summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/Makefile.am77
-rw-r--r--mysql-test/README.stress120
-rwxr-xr-xmysql-test/create-test-result4
-rw-r--r--mysql-test/include/add_anonymous_users.inc7
-rw-r--r--mysql-test/include/big_test.inc4
-rw-r--r--mysql-test/include/check-testcase.test2
-rw-r--r--mysql-test/include/common-tests.inc1832
-rw-r--r--mysql-test/include/delete_anonymous_users.inc5
-rw-r--r--mysql-test/include/federated.inc23
-rw-r--r--mysql-test/include/federated_cleanup.inc11
-rw-r--r--mysql-test/include/get_binlog_dump_thread_id.inc22
-rw-r--r--mysql-test/include/gis_generic.inc249
-rw-r--r--mysql-test/include/gis_keys.inc46
-rw-r--r--mysql-test/include/have_archive.inc6
-rw-r--r--mysql-test/include/have_bug25714.inc7
-rw-r--r--mysql-test/include/have_eucjpms.inc4
-rw-r--r--mysql-test/include/have_federated_db.inc4
-rw-r--r--mysql-test/include/have_geometry.inc6
-rw-r--r--mysql-test/include/have_isam.inc4
-rw-r--r--mysql-test/include/have_log_bin.inc4
-rw-r--r--mysql-test/include/have_lowercase1.inc4
-rw-r--r--mysql-test/include/have_multi_ndb.inc4
-rw-r--r--mysql-test/include/have_ndb.inc13
-rw-r--r--mysql-test/include/have_openssl.inc4
-rw-r--r--mysql-test/include/have_openssl_1.inc4
-rw-r--r--mysql-test/include/have_outfile.inc2
-rw-r--r--mysql-test/include/have_ssl.inc4
-rw-r--r--mysql-test/include/have_udf.inc16
-rw-r--r--mysql-test/include/im_check_env.inc25
-rw-r--r--mysql-test/include/innodb_rollback_on_timeout.inc37
-rw-r--r--mysql-test/include/loaddata_autocom.inc21
-rw-r--r--mysql-test/include/master-slave.inc5
-rw-r--r--mysql-test/include/mysqltest_while.inc137
-rw-r--r--mysql-test/include/ndb_backup.inc24
-rw-r--r--mysql-test/include/ndb_backup_print.inc6
-rw-r--r--mysql-test/include/ndb_default_cluster.inc4
-rw-r--r--mysql-test/include/not_as_root.inc4
-rw-r--r--mysql-test/include/ps_conv.inc18
-rw-r--r--mysql-test/include/ps_create.inc4
-rw-r--r--mysql-test/include/ps_modify.inc8
-rw-r--r--mysql-test/include/ps_query.inc6
-rw-r--r--mysql-test/include/rpl_stmt_seq.inc2
-rw-r--r--mysql-test/include/show_binlog_events.inc4
-rw-r--r--mysql-test/include/sp-vars.inc131
-rw-r--r--mysql-test/include/strict_autoinc.inc32
-rw-r--r--mysql-test/include/system_db_struct.inc2
-rw-r--r--mysql-test/include/test_outfile.inc2
-rw-r--r--mysql-test/include/testdb_only.inc30
-rw-r--r--mysql-test/include/uses_vardir.inc14
-rw-r--r--mysql-test/include/varchar.inc239
-rw-r--r--mysql-test/include/wait_for_slave_io_to_stop.inc33
-rw-r--r--mysql-test/include/wait_for_slave_param.inc26
-rw-r--r--mysql-test/include/wait_for_slave_sql_to_stop.inc30
-rw-r--r--mysql-test/include/wait_for_slave_to_start.inc35
-rw-r--r--mysql-test/include/wait_for_slave_to_stop.inc37
-rw-r--r--mysql-test/include/wait_show_pattern.inc51
-rw-r--r--mysql-test/include/wait_slave_status.inc129
-rw-r--r--mysql-test/include/windows.inc9
-rw-r--r--mysql-test/install_test_db.sh38
-rw-r--r--mysql-test/lib/mtr_cases.pl73
-rw-r--r--mysql-test/lib/mtr_diff.pl14
-rw-r--r--mysql-test/lib/mtr_gcov.pl14
-rw-r--r--mysql-test/lib/mtr_gprof.pl14
-rw-r--r--mysql-test/lib/mtr_im.pl18
-rw-r--r--mysql-test/lib/mtr_io.pl15
-rw-r--r--mysql-test/lib/mtr_match.pl14
-rw-r--r--mysql-test/lib/mtr_misc.pl95
-rw-r--r--mysql-test/lib/mtr_process.pl266
-rw-r--r--mysql-test/lib/mtr_report.pl166
-rw-r--r--mysql-test/lib/mtr_stress.pl21
-rw-r--r--mysql-test/lib/mtr_timer.pl50
-rw-r--r--mysql-test/lib/mtr_unique.pl16
-rw-r--r--mysql-test/my_create_tables.c673
-rw-r--r--mysql-test/my_manage.c890
-rw-r--r--mysql-test/my_manage.h137
-rwxr-xr-xmysql-test/mysql-stress-test.pl1149
-rw-r--r--mysql-test/mysql-test-run-shell.sh534
-rwxr-xr-xmysql-test/mysql-test-run.pl873
-rw-r--r--mysql-test/mysql_test_run_new.c1908
-rw-r--r--mysql-test/ndb/Makefile.am1
-rw-r--r--mysql-test/ndb/basic.result10
-rw-r--r--mysql-test/ndb/ndb_config_1_node.ini45
-rw-r--r--mysql-test/ndb/ndb_config_2_node.ini16
-rw-r--r--mysql-test/ndb/ndb_config_4_node.ini54
-rw-r--r--mysql-test/ndb/ndbcluster.sh119
-rw-r--r--mysql-test/ndb/restart.test2
-rw-r--r--mysql-test/purify.supp (renamed from mysql-test/suppress.purify)0
-rw-r--r--mysql-test/r/alias.result4
-rw-r--r--mysql-test/r/alter_table-big.result18
-rw-r--r--mysql-test/r/alter_table.result151
-rw-r--r--mysql-test/r/analyse.result47
-rw-r--r--mysql-test/r/analyze.result10
-rw-r--r--mysql-test/r/ansi.result2
-rw-r--r--mysql-test/r/archive-big.result19
-rw-r--r--mysql-test/r/archive.result6148
-rw-r--r--mysql-test/r/archive_gis.result544
-rw-r--r--mysql-test/r/auto_increment.result47
-rw-r--r--mysql-test/r/backup.result4
-rw-r--r--mysql-test/r/bdb.result636
-rw-r--r--mysql-test/r/bdb_gis.result583
-rw-r--r--mysql-test/r/bdb_notembedded.result35
-rw-r--r--mysql-test/r/bench_count_distinct.result2
-rw-r--r--mysql-test/r/bigint.result275
-rw-r--r--mysql-test/r/binary.result59
-rw-r--r--mysql-test/r/binlog.result570
-rw-r--r--mysql-test/r/binlog_innodb.result23
-rw-r--r--mysql-test/r/binlog_killed.result12
-rw-r--r--mysql-test/r/blackhole.result23
-rw-r--r--mysql-test/r/bool.result18
-rw-r--r--mysql-test/r/bootstrap.result8
-rw-r--r--mysql-test/r/case.result59
-rw-r--r--mysql-test/r/cast.result169
-rw-r--r--mysql-test/r/check.result17
-rw-r--r--mysql-test/r/client_xml.result88
-rw-r--r--mysql-test/r/comments.result15
-rw-r--r--mysql-test/r/compare.result11
-rw-r--r--mysql-test/r/compress.result2159
-rw-r--r--mysql-test/r/connect.result6
-rw-r--r--mysql-test/r/count_distinct.result13
-rw-r--r--mysql-test/r/count_distinct2.result2
-rw-r--r--mysql-test/r/create.result932
-rw-r--r--mysql-test/r/create_not_windows.result14
-rw-r--r--mysql-test/r/create_select_tmp.result1
-rw-r--r--mysql-test/r/csv.result97
-rw-r--r--mysql-test/r/ctype_ascii.result177
-rw-r--r--mysql-test/r/ctype_big5.result17
-rw-r--r--mysql-test/r/ctype_collate.result20
-rw-r--r--mysql-test/r/ctype_cp1250_ch.result1
-rw-r--r--mysql-test/r/ctype_cp1251.result2
-rwxr-xr-x[-rw-r--r--]mysql-test/r/ctype_cp932.result5941
-rw-r--r--mysql-test/r/ctype_cp932_binlog.result40
-rwxr-xr-xmysql-test/r/ctype_eucjpms.result9827
-rw-r--r--mysql-test/r/ctype_euckr.result2
-rw-r--r--mysql-test/r/ctype_gb2312.result2
-rw-r--r--mysql-test/r/ctype_gbk.result12
-rw-r--r--mysql-test/r/ctype_latin1.result4
-rw-r--r--mysql-test/r/ctype_latin1_de.result10
-rw-r--r--mysql-test/r/ctype_latin2_ch.result1
-rw-r--r--mysql-test/r/ctype_ldml.result296
-rw-r--r--mysql-test/r/ctype_many.result346
-rw-r--r--mysql-test/r/ctype_mb.result8
-rw-r--r--mysql-test/r/ctype_recoding.result25
-rw-r--r--mysql-test/r/ctype_tis620.result68
-rw-r--r--mysql-test/r/ctype_uca.result343
-rw-r--r--mysql-test/r/ctype_ucs.result142
-rw-r--r--mysql-test/r/ctype_ucs2_def.result15
-rw-r--r--mysql-test/r/ctype_ucs_binlog.result27
-rw-r--r--mysql-test/r/ctype_ujis.result32
-rw-r--r--mysql-test/r/ctype_utf8.result365
-rw-r--r--mysql-test/r/date_formats.result61
-rw-r--r--mysql-test/r/default.result208
-rw-r--r--mysql-test/r/delayed.result226
-rw-r--r--mysql-test/r/delete.result96
-rw-r--r--mysql-test/r/derived.result39
-rw-r--r--mysql-test/r/distinct.result193
-rw-r--r--mysql-test/r/drop.result15
-rw-r--r--mysql-test/r/drop_temp_table.result7
-rw-r--r--mysql-test/r/endspace.result46
-rw-r--r--mysql-test/r/error_simulation.result19
-rw-r--r--mysql-test/r/errors.result36
-rw-r--r--mysql-test/r/execution_constants.result12
-rw-r--r--mysql-test/r/explain.result34
-rw-r--r--mysql-test/r/federated.result1940
-rw-r--r--mysql-test/r/federated_archive.result48
-rw-r--r--mysql-test/r/federated_bug_13118.result39
-rw-r--r--mysql-test/r/federated_bug_25714.result56
-rw-r--r--mysql-test/r/federated_innodb.result34
-rw-r--r--mysql-test/r/fix_priv_tables.result36
-rw-r--r--mysql-test/r/flush.result9
-rw-r--r--mysql-test/r/flush2.result12
-rw-r--r--mysql-test/r/flush_block_commit_notembedded.result15
-rw-r--r--mysql-test/r/flush_read_lock_kill.result9
-rw-r--r--mysql-test/r/flush_table.result3
-rw-r--r--mysql-test/r/fulltext.result51
-rw-r--r--mysql-test/r/fulltext3.result13
-rw-r--r--mysql-test/r/fulltext_distinct.result2
-rw-r--r--mysql-test/r/fulltext_left_join.result7
-rw-r--r--mysql-test/r/fulltext_order_by.result6
-rw-r--r--mysql-test/r/fulltext_update.result2
-rw-r--r--mysql-test/r/func_compress.result32
-rw-r--r--mysql-test/r/func_concat.result13
-rw-r--r--mysql-test/r/func_date_add.result53
-rw-r--r--mysql-test/r/func_default.result7
-rw-r--r--mysql-test/r/func_equal.result21
-rw-r--r--mysql-test/r/func_gconcat.result211
-rw-r--r--mysql-test/r/func_group.result778
-rw-r--r--mysql-test/r/func_if.result46
-rw-r--r--mysql-test/r/func_in.result284
-rw-r--r--mysql-test/r/func_like.result4
-rw-r--r--mysql-test/r/func_math.result216
-rw-r--r--mysql-test/r/func_misc.result127
-rw-r--r--mysql-test/r/func_op.result2
-rw-r--r--mysql-test/r/func_regexp.result7
-rw-r--r--mysql-test/r/func_sapdb.result54
-rw-r--r--mysql-test/r/func_set.result6
-rw-r--r--mysql-test/r/func_str.result1195
-rw-r--r--mysql-test/r/func_system.result10
-rw-r--r--mysql-test/r/func_test.result31
-rw-r--r--mysql-test/r/func_time.result434
-rw-r--r--mysql-test/r/func_timestamp.result2
-rw-r--r--mysql-test/r/gis-rtree.result53
-rw-r--r--mysql-test/r/gis.result249
-rw-r--r--mysql-test/r/grant.result675
-rw-r--r--mysql-test/r/grant2.result331
-rw-r--r--mysql-test/r/grant3.result140
-rw-r--r--mysql-test/r/grant_cache.result16
-rw-r--r--mysql-test/r/greedy_optimizer.result657
-rw-r--r--mysql-test/r/group_by.result314
-rw-r--r--mysql-test/r/group_min_max.result2309
-rw-r--r--mysql-test/r/handler.result41
-rw-r--r--mysql-test/r/have_bug25714.require2
-rw-r--r--mysql-test/r/have_eucjpms.require2
-rw-r--r--mysql-test/r/have_federated_db.require2
-rw-r--r--mysql-test/r/have_log_bin.require (renamed from mysql-test/r/have_isam.require)2
-rw-r--r--mysql-test/r/have_mysql_upgrade.result2
-rw-r--r--mysql-test/r/have_ndb_status_ok.require2
-rw-r--r--mysql-test/r/have_perror.require2
-rw-r--r--mysql-test/r/have_ssl.require (renamed from mysql-test/r/have_openssl.require)2
-rw-r--r--mysql-test/r/have_udf.require2
-rw-r--r--mysql-test/r/have_udf_example.require2
-rw-r--r--mysql-test/r/having.result251
-rw-r--r--mysql-test/r/heap.result461
-rw-r--r--mysql-test/r/heap_btree.result34
-rw-r--r--mysql-test/r/heap_hash.result40
-rw-r--r--mysql-test/r/help.result16
-rw-r--r--mysql-test/r/im_daemon_life_cycle.result26
-rw-r--r--mysql-test/r/im_life_cycle.result73
-rw-r--r--mysql-test/r/im_options_set.result22
-rw-r--r--mysql-test/r/im_options_unset.result17
-rw-r--r--mysql-test/r/im_utils.result96
-rw-r--r--mysql-test/r/index_merge.result518
-rw-r--r--mysql-test/r/index_merge_bdb.result136
-rw-r--r--mysql-test/r/index_merge_innodb.result284
-rw-r--r--mysql-test/r/index_merge_innodb2.result136
-rw-r--r--mysql-test/r/index_merge_ror.result207
-rw-r--r--mysql-test/r/index_merge_ror_cpk.result120
-rw-r--r--mysql-test/r/information_schema.result1392
-rw-r--r--mysql-test/r/information_schema_chmod.result5
-rw-r--r--mysql-test/r/information_schema_db.result211
-rw-r--r--mysql-test/r/information_schema_inno.result27
-rw-r--r--mysql-test/r/init_connect.result116
-rw-r--r--mysql-test/r/init_file.result16
-rw-r--r--mysql-test/r/innodb-big.result100
-rw-r--r--mysql-test/r/innodb-deadlock.result11
-rw-r--r--mysql-test/r/innodb-replace.result4
-rw-r--r--mysql-test/r/innodb-ucs2.result313
-rw-r--r--mysql-test/r/innodb.result1470
-rw-r--r--mysql-test/r/innodb_gis.result583
-rw-r--r--mysql-test/r/innodb_mysql.result1035
-rw-r--r--mysql-test/r/innodb_notembedded.result20
-rw-r--r--mysql-test/r/innodb_timeout_rollback.result35
-rw-r--r--mysql-test/r/innodb_unsafe_binlog.result48
-rw-r--r--mysql-test/r/insert.result319
-rw-r--r--mysql-test/r/insert_notembedded.result107
-rw-r--r--mysql-test/r/insert_select-binlog.result10
-rw-r--r--mysql-test/r/insert_select.result136
-rw-r--r--mysql-test/r/insert_update.result194
-rw-r--r--mysql-test/r/is_debug_build.require2
-rw-r--r--mysql-test/r/isam.result12
-rw-r--r--mysql-test/r/join.result494
-rw-r--r--mysql-test/r/join_crash.result15
-rw-r--r--mysql-test/r/join_nested.result1746
-rw-r--r--mysql-test/r/join_outer.result330
-rw-r--r--mysql-test/r/key.result122
-rw-r--r--mysql-test/r/key_cache.result39
-rw-r--r--mysql-test/r/keywords.result29
-rw-r--r--mysql-test/r/kill.result100
-rw-r--r--mysql-test/r/limit.result14
-rw-r--r--mysql-test/r/loaddata.result139
-rw-r--r--mysql-test/r/loaddata_autocom_innodb.result21
-rw-r--r--mysql-test/r/loaddata_autocom_ndb.result23
-rw-r--r--mysql-test/r/lock.result5
-rw-r--r--mysql-test/r/lock_multi.result52
-rw-r--r--mysql-test/r/long_tmpdir.result3
-rw-r--r--mysql-test/r/lowercase1.require2
-rw-r--r--mysql-test/r/lowercase_fs_off.result1
-rw-r--r--mysql-test/r/lowercase_mixed_tmpdir.result6
-rw-r--r--mysql-test/r/lowercase_table.result25
-rw-r--r--mysql-test/r/lowercase_table2.result9
-rw-r--r--mysql-test/r/lowercase_table3.result2
-rw-r--r--mysql-test/r/lowercase_table_grant.result8
-rw-r--r--mysql-test/r/lowercase_view.result133
-rw-r--r--mysql-test/r/merge.result106
-rw-r--r--mysql-test/r/metadata.result92
-rw-r--r--mysql-test/r/mix_innodb_myisam_binlog.result337
-rw-r--r--mysql-test/r/multi_statement.result1
-rw-r--r--mysql-test/r/multi_update.result94
-rw-r--r--mysql-test/r/myisam.result795
-rw-r--r--mysql-test/r/mysql.result181
-rw-r--r--mysql-test/r/mysql_client.result18
-rw-r--r--mysql-test/r/mysql_upgrade.result81
-rw-r--r--mysql-test/r/mysqlbinlog-cp932.result19
-rw-r--r--mysql-test/r/mysqlbinlog.result365
-rw-r--r--mysql-test/r/mysqlbinlog2.result1067
-rw-r--r--mysql-test/r/mysqlcheck.result44
-rw-r--r--mysql-test/r/mysqldump-compat.result4
-rw-r--r--mysql-test/r/mysqldump-max.result279
-rw-r--r--mysql-test/r/mysqldump.result1961
-rw-r--r--mysql-test/r/mysqlshow.result126
-rw-r--r--mysql-test/r/mysqltest.result41
-rw-r--r--mysql-test/r/named_pipe.result2153
-rw-r--r--mysql-test/r/ndb_alter_table.result31
-rw-r--r--mysql-test/r/ndb_alter_table2.result42
-rw-r--r--mysql-test/r/ndb_autodiscover.result39
-rw-r--r--mysql-test/r/ndb_backup_print.result64
-rw-r--r--mysql-test/r/ndb_basic.result118
-rw-r--r--mysql-test/r/ndb_bitfield.result216
-rw-r--r--mysql-test/r/ndb_blob.result70
-rw-r--r--mysql-test/r/ndb_bug26793.result8
-rw-r--r--mysql-test/r/ndb_cache.result182
-rw-r--r--mysql-test/r/ndb_cache2.result623
-rw-r--r--mysql-test/r/ndb_cache_multi.result72
-rw-r--r--mysql-test/r/ndb_cache_multi2.result75
-rw-r--r--mysql-test/r/ndb_charset.result115
-rw-r--r--mysql-test/r/ndb_condition_pushdown.result1914
-rw-r--r--mysql-test/r/ndb_config.result12
-rw-r--r--mysql-test/r/ndb_default_cluster.require2
-rw-r--r--mysql-test/r/ndb_gis.result1088
-rw-r--r--mysql-test/r/ndb_grant.result38
-rw-r--r--mysql-test/r/ndb_index_ordered.result123
-rw-r--r--mysql-test/r/ndb_index_unique.result54
-rw-r--r--mysql-test/r/ndb_insert.result221
-rw-r--r--mysql-test/r/ndb_load.result4
-rw-r--r--mysql-test/r/ndb_lock.result31
-rw-r--r--mysql-test/r/ndb_multi.result6
-rw-r--r--mysql-test/r/ndb_read_multi_range.result426
-rw-r--r--mysql-test/r/ndb_replace.result80
-rw-r--r--mysql-test/r/ndb_restore.result130
-rw-r--r--mysql-test/r/ndb_restore_different_endian_data.result200
-rw-r--r--mysql-test/r/ndb_restore_print.result321
-rw-r--r--mysql-test/r/ndb_single_user.result60
-rw-r--r--mysql-test/r/ndb_subquery.result25
-rw-r--r--mysql-test/r/ndb_trigger.result290
-rw-r--r--mysql-test/r/ndb_types.result31
-rw-r--r--mysql-test/r/ndb_update.result17
-rw-r--r--mysql-test/r/negation_elimination.result2
-rw-r--r--mysql-test/r/not_as_root.require2
-rw-r--r--mysql-test/r/not_embedded_server.result2
-rw-r--r--mysql-test/r/null.result78
-rw-r--r--mysql-test/r/null_key.result15
-rw-r--r--mysql-test/r/odbc.result2
-rw-r--r--mysql-test/r/olap.result203
-rw-r--r--mysql-test/r/openssl_1.result158
-rw-r--r--mysql-test/r/order_by.result123
-rw-r--r--mysql-test/r/outfile.resultbin988 -> 2135 bytes
-rw-r--r--mysql-test/r/parser_precedence.result747
-rw-r--r--mysql-test/r/perror.result1
-rw-r--r--mysql-test/r/preload.result44
-rw-r--r--mysql-test/r/ps.result617
-rw-r--r--mysql-test/r/ps_11bugs.result33
-rw-r--r--mysql-test/r/ps_1general.result97
-rw-r--r--mysql-test/r/ps_2myisam.result974
-rw-r--r--mysql-test/r/ps_3innodb.result974
-rw-r--r--mysql-test/r/ps_4heap.result980
-rw-r--r--mysql-test/r/ps_5merge.result1940
-rw-r--r--mysql-test/r/ps_6bdb.result974
-rw-r--r--mysql-test/r/ps_7ndb.result974
-rw-r--r--mysql-test/r/ps_grant.result12
-rw-r--r--mysql-test/r/query_cache.result612
-rw-r--r--mysql-test/r/query_cache_notembedded.result250
-rw-r--r--mysql-test/r/query_cache_with_views.result196
-rw-r--r--mysql-test/r/range.result326
-rw-r--r--mysql-test/r/read_only.result49
-rw-r--r--mysql-test/r/rename.result11
-rw-r--r--mysql-test/r/repair.result9
-rw-r--r--mysql-test/r/replace.result10
-rw-r--r--mysql-test/r/round.result272
-rw-r--r--mysql-test/r/row.result155
-rw-r--r--mysql-test/r/rowid_order_bdb.result186
-rw-r--r--mysql-test/r/rowid_order_innodb.result186
-rw-r--r--mysql-test/r/rpl000001.result28
-rw-r--r--mysql-test/r/rpl000004.result4
-rw-r--r--mysql-test/r/rpl000009.result3
-rw-r--r--mysql-test/r/rpl000015.result6
-rw-r--r--mysql-test/r/rpl000017.result1
-rw-r--r--mysql-test/r/rpl_EE_error.result4
-rw-r--r--mysql-test/r/rpl_auto_increment.result229
-rw-r--r--mysql-test/r/rpl_auto_increment_11932.result47
-rw-r--r--mysql-test/r/rpl_change_master.result28
-rw-r--r--mysql-test/r/rpl_charset.result193
-rw-r--r--mysql-test/r/rpl_charset_sjis.result26
-rw-r--r--mysql-test/r/rpl_create_database.result32
-rw-r--r--mysql-test/r/rpl_critical_errors.result1
-rw-r--r--mysql-test/r/rpl_critical_errors.result.txt56
-rw-r--r--mysql-test/r/rpl_ddl.result616
-rw-r--r--mysql-test/r/rpl_deadlock.result46
-rw-r--r--mysql-test/r/rpl_delete_all.result2
-rw-r--r--mysql-test/r/rpl_do_grant.result11
-rw-r--r--mysql-test/r/rpl_drop_db.result2
-rw-r--r--mysql-test/r/rpl_error_ignored_table.result24
-rw-r--r--mysql-test/r/rpl_failed_optimize.result6
-rw-r--r--mysql-test/r/rpl_flush_log_loop.result9
-rw-r--r--mysql-test/r/rpl_flush_tables.result39
-rw-r--r--mysql-test/r/rpl_get_lock.result2
-rw-r--r--mysql-test/r/rpl_grant.result77
-rw-r--r--mysql-test/r/rpl_ignore_revoke.result30
-rw-r--r--mysql-test/r/rpl_ignore_table.result20
-rw-r--r--mysql-test/r/rpl_init_slave.result3
-rw-r--r--mysql-test/r/rpl_innodb.result4
-rw-r--r--mysql-test/r/rpl_insert_delayed.result54
-rw-r--r--mysql-test/r/rpl_insert_id.result336
-rw-r--r--mysql-test/r/rpl_known_bugs_detection.result133
-rw-r--r--mysql-test/r/rpl_loaddata.result44
-rw-r--r--mysql-test/r/rpl_loaddata_charset.result37
-rw-r--r--mysql-test/r/rpl_loaddata_rule_m.result14
-rw-r--r--mysql-test/r/rpl_loaddata_rule_s.result7
-rw-r--r--mysql-test/r/rpl_loaddatalocal.result17
-rw-r--r--mysql-test/r/rpl_locale.result4
-rw-r--r--mysql-test/r/rpl_log.result132
-rw-r--r--mysql-test/r/rpl_log_pos.result89
-rw-r--r--mysql-test/r/rpl_master_pos_wait.result2
-rw-r--r--mysql-test/r/rpl_max_relay_size.result27
-rw-r--r--mysql-test/r/rpl_misc_functions.result38
-rw-r--r--mysql-test/r/rpl_multi_delete.result9
-rw-r--r--mysql-test/r/rpl_multi_query.result4
-rw-r--r--mysql-test/r/rpl_multi_update.result13
-rw-r--r--mysql-test/r/rpl_multi_update3.result1
-rw-r--r--mysql-test/r/rpl_ndb_innodb_trans.result103
-rw-r--r--mysql-test/r/rpl_openssl.result5
-rw-r--r--mysql-test/r/rpl_packet.result9
-rw-r--r--mysql-test/r/rpl_replicate_do.result39
-rw-r--r--mysql-test/r/rpl_reset_slave.result8
-rw-r--r--mysql-test/r/rpl_rewrite_db.result19
-rw-r--r--mysql-test/r/rpl_rotate_logs.result44
-rw-r--r--mysql-test/r/rpl_server_id1.result2
-rw-r--r--mysql-test/r/rpl_server_id2.result2
-rw-r--r--mysql-test/r/rpl_session_var.result53
-rw-r--r--mysql-test/r/rpl_skip_error.result20
-rw-r--r--mysql-test/r/rpl_slave_status.result1
-rw-r--r--mysql-test/r/rpl_sp.result534
-rw-r--r--mysql-test/r/rpl_sp_effects.result215
-rw-r--r--mysql-test/r/rpl_ssl.result95
-rw-r--r--mysql-test/r/rpl_temporary.result55
-rw-r--r--mysql-test/r/rpl_timezone.result105
-rw-r--r--mysql-test/r/rpl_trigger.result970
-rw-r--r--mysql-test/r/rpl_trunc_binlog.result13
-rw-r--r--mysql-test/r/rpl_until.result174
-rw-r--r--mysql-test/r/rpl_user_variables.result269
-rw-r--r--mysql-test/r/rpl_variables.result11
-rw-r--r--mysql-test/r/rpl_view.result115
-rw-r--r--mysql-test/r/schema.result12
-rw-r--r--mysql-test/r/select.result1699
-rw-r--r--mysql-test/r/select_found.result2
-rw-r--r--mysql-test/r/select_safe.result5
-rw-r--r--mysql-test/r/server_id.require2
-rw-r--r--mysql-test/r/server_id1.require2
-rw-r--r--mysql-test/r/shm.result2155
-rw-r--r--mysql-test/r/show_check.result764
-rw-r--r--mysql-test/r/skip_grants.result72
-rw-r--r--mysql-test/r/skip_name_resolve.result7
-rw-r--r--mysql-test/r/sp-big.result62
-rw-r--r--mysql-test/r/sp-code.result736
-rw-r--r--mysql-test/r/sp-destruct.result83
-rw-r--r--mysql-test/r/sp-dynamic.result391
-rw-r--r--mysql-test/r/sp-error.result1467
-rw-r--r--mysql-test/r/sp-prelocking.result322
-rw-r--r--mysql-test/r/sp-security.result522
-rw-r--r--mysql-test/r/sp-threads.result91
-rw-r--r--mysql-test/r/sp-ucs2.result14
-rw-r--r--mysql-test/r/sp-vars.result1204
-rw-r--r--mysql-test/r/sp.result6583
-rw-r--r--mysql-test/r/sp_notembedded.result221
-rw-r--r--mysql-test/r/sp_stress_case.result120
-rw-r--r--mysql-test/r/sp_trans.result532
-rw-r--r--mysql-test/r/sp_trans_log.result20
-rw-r--r--mysql-test/r/sql_mode.result357
-rw-r--r--mysql-test/r/ssl-big.result3
-rw-r--r--mysql-test/r/ssl.result2159
-rw-r--r--mysql-test/r/ssl_8k_key.result (renamed from mysql-test/r/have_openssl_1.require)0
-rw-r--r--mysql-test/r/ssl_compress.result2165
-rw-r--r--mysql-test/r/ssl_connect.result1
-rw-r--r--mysql-test/r/status.result74
-rw-r--r--mysql-test/r/strict.result1402
-rw-r--r--mysql-test/r/strict_autoinc_1myisam.result28
-rw-r--r--mysql-test/r/strict_autoinc_2innodb.result28
-rw-r--r--mysql-test/r/strict_autoinc_3heap.result28
-rw-r--r--mysql-test/r/strict_autoinc_4bdb.result28
-rw-r--r--mysql-test/r/strict_autoinc_5ndb.result28
-rw-r--r--mysql-test/r/subselect.result1244
-rw-r--r--mysql-test/r/subselect2.result16
-rw-r--r--mysql-test/r/subselect3.result762
-rw-r--r--mysql-test/r/subselect_innodb.result93
-rw-r--r--mysql-test/r/subselect_notembedded.result3
-rw-r--r--mysql-test/r/sum_distinct-big.result107
-rw-r--r--mysql-test/r/sum_distinct.result97
-rw-r--r--mysql-test/r/symlink.result71
-rw-r--r--mysql-test/r/synchronization.result1
-rw-r--r--mysql-test/r/sysdate_is_now.result4
-rw-r--r--mysql-test/r/system_mysql_db.result64
-rw-r--r--mysql-test/r/temp_table.result50
-rw-r--r--mysql-test/r/testdb_only.require2
-rw-r--r--mysql-test/r/timezone2.result42
-rw-r--r--mysql-test/r/timezone_grant.result25
-rw-r--r--mysql-test/r/trigger-compat.result48
-rw-r--r--mysql-test/r/trigger-grant.result396
-rw-r--r--mysql-test/r/trigger-trans.result143
-rw-r--r--mysql-test/r/trigger.result1964
-rw-r--r--mysql-test/r/truncate.result7
-rw-r--r--mysql-test/r/type_binary.result148
-rw-r--r--mysql-test/r/type_bit.result675
-rw-r--r--mysql-test/r/type_bit_innodb.result413
-rw-r--r--mysql-test/r/type_blob.result171
-rw-r--r--mysql-test/r/type_date.result107
-rw-r--r--mysql-test/r/type_datetime.result369
-rw-r--r--mysql-test/r/type_decimal.result461
-rw-r--r--mysql-test/r/type_enum.result59
-rw-r--r--mysql-test/r/type_float.result121
-rw-r--r--mysql-test/r/type_newdecimal-big.result26
-rw-r--r--mysql-test/r/type_newdecimal.result1502
-rw-r--r--mysql-test/r/type_ranges.result231
-rw-r--r--mysql-test/r/type_set.result21
-rw-r--r--mysql-test/r/type_time.result49
-rw-r--r--mysql-test/r/type_timestamp.result47
-rw-r--r--mysql-test/r/type_uint.result4
-rw-r--r--mysql-test/r/type_varchar.result491
-rw-r--r--mysql-test/r/type_year.result12
-rw-r--r--mysql-test/r/udf.result330
-rw-r--r--mysql-test/r/union.result195
-rw-r--r--mysql-test/r/update.result115
-rw-r--r--mysql-test/r/user_limits.result96
-rw-r--r--mysql-test/r/user_var-binlog.result41
-rw-r--r--mysql-test/r/user_var.result162
-rw-r--r--mysql-test/r/varbinary.result54
-rw-r--r--mysql-test/r/variables-big.result20
-rw-r--r--mysql-test/r/variables.result324
-rw-r--r--mysql-test/r/view.result3605
-rw-r--r--mysql-test/r/view_grant.result921
-rw-r--r--mysql-test/r/wait_timeout.result14
-rw-r--r--mysql-test/r/warnings.result136
-rw-r--r--mysql-test/r/windows.result7
-rw-r--r--mysql-test/r/xa.result57
-rw-r--r--mysql-test/std_data/14897.frmbin0 -> 8608 bytes
-rw-r--r--mysql-test/std_data/Index.xml71
-rw-r--r--mysql-test/std_data/bug16266.000001bin0 -> 532 bytes
-rw-r--r--mysql-test/std_data/bug19371.MYDbin0 -> 40 bytes
-rw-r--r--mysql-test/std_data/bug19371.MYIbin0 -> 1024 bytes
-rw-r--r--mysql-test/std_data/bug19371.frmbin0 -> 8578 bytes
-rw-r--r--mysql-test/std_data/cacert.pem17
-rw-r--r--mysql-test/std_data/client-cert.pem42
-rw-r--r--mysql-test/std_data/client-key.pem9
-rw-r--r--mysql-test/std_data/init_file.dat29
-rw-r--r--mysql-test/std_data/loaddata5.dat6
-rw-r--r--mysql-test/std_data/loaddata6.dat1
-rw-r--r--mysql-test/std_data/loaddata_dq.dat3
-rw-r--r--mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Databin0 -> 47900 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Databin0 -> 17608 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctlbin0 -> 24644 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.logbin0 -> 44 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctlbin0 -> 24644 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.logbin0 -> 44 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Databin0 -> 17656 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Databin0 -> 47852 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctlbin0 -> 24644 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.logbin0 -> 44 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctlbin0 -> 24644 bytes
-rw-r--r--mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.logbin0 -> 44 bytes
-rw-r--r--mysql-test/std_data/ndb_config_mycnf1.cnf15
-rw-r--r--mysql-test/std_data/ndb_config_mycnf2.cnf31
-rw-r--r--mysql-test/std_data/rpl_timezone.dat2
-rw-r--r--mysql-test/std_data/server-cert-des.pem16
-rw-r--r--mysql-test/std_data/server-cert.pem42
-rw-r--r--mysql-test/std_data/server-key-des.pem18
-rw-r--r--mysql-test/std_data/server-key.pem9
-rw-r--r--mysql-test/std_data/server8k-cert.pem51
-rw-r--r--mysql-test/std_data/server8k-key.pem99
-rw-r--r--mysql-test/std_data/trunc_binlog.000001bin119 -> 174 bytes
-rw-r--r--mysql-test/std_data/untrusted-cacert.pem53
-rw-r--r--mysql-test/std_data/vchar.frmbin0 -> 8616 bytes
-rw-r--r--mysql-test/suite/funcs_1/README.txt134
-rw-r--r--mysql-test/suite/funcs_1/bitdata/bitdata_master.test6
-rw-r--r--mysql-test/suite/funcs_1/cursors/cursors_master.test4
-rw-r--r--mysql-test/suite/funcs_1/data/innodb_tb1.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/innodb_tb2.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/innodb_tb3.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/innodb_tb4.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/memory_tb1.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/memory_tb2.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/memory_tb3.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/memory_tb4.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/myisam_tb1.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/myisam_tb2.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/myisam_tb3.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/myisam_tb4.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/t3.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/t4.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/t7.txt10
-rw-r--r--mysql-test/suite/funcs_1/data/t9.txt10
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc60
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_load.inc122
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_master.inc3953
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc56
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc28
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables.inc62
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc33
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc80
-rwxr-xr-xmysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc51
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc49
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc49
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc49
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc49
-rw-r--r--mysql-test/suite/funcs_1/include/create_database.inc6
-rw-r--r--mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc10
-rw-r--r--mysql-test/suite/funcs_1/include/create_user_no_super.inc11
-rw-r--r--mysql-test/suite/funcs_1/include/innodb_tb1.inc69
-rw-r--r--mysql-test/suite/funcs_1/include/innodb_tb2.inc61
-rw-r--r--mysql-test/suite/funcs_1/include/innodb_tb3.inc68
-rw-r--r--mysql-test/suite/funcs_1/include/innodb_tb4.inc68
-rw-r--r--mysql-test/suite/funcs_1/include/memory_tb1.inc63
-rw-r--r--mysql-test/suite/funcs_1/include/memory_tb2.inc64
-rw-r--r--mysql-test/suite/funcs_1/include/memory_tb3.inc66
-rw-r--r--mysql-test/suite/funcs_1/include/memory_tb4.inc70
-rw-r--r--mysql-test/suite/funcs_1/include/myisam_tb1.inc68
-rw-r--r--mysql-test/suite/funcs_1/include/myisam_tb2.inc80
-rw-r--r--mysql-test/suite/funcs_1/include/myisam_tb3.inc68
-rw-r--r--mysql-test/suite/funcs_1/include/myisam_tb4.inc88
-rw-r--r--mysql-test/suite/funcs_1/include/show_connection.inc14
-rw-r--r--mysql-test/suite/funcs_1/include/sp_tb.inc68
-rwxr-xr-xmysql-test/suite/funcs_1/lib/DataGen_local.pl1247
-rwxr-xr-xmysql-test/suite/funcs_1/lib/DataGen_modify.pl3960
-rw-r--r--mysql-test/suite/funcs_1/r/datadict_help_tables_build.result22
-rw-r--r--mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result18
-rw-r--r--mysql-test/suite/funcs_1/r/innodb__datadict.result12914
-rw-r--r--mysql-test/suite/funcs_1/r/innodb__load.result1
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_bitdata.result67
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_cursors.result81
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_func_view.result5088
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_storedproc.result22539
-rwxr-xr-xmysql-test/suite/funcs_1/r/innodb_storedproc_02.result1387
-rwxr-xr-xmysql-test/suite/funcs_1/r/innodb_storedproc_03.result490
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_storedproc_06.result399
-rwxr-xr-xmysql-test/suite/funcs_1/r/innodb_storedproc_07.result172
-rwxr-xr-xmysql-test/suite/funcs_1/r/innodb_storedproc_08.result637
-rwxr-xr-xmysql-test/suite/funcs_1/r/innodb_storedproc_10.result321
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_0102.result364
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_03.result751
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_0407.result480
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_08.result499
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_09.result271
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result399
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_trig_frkey.result140
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_triggers.result2331
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_views.result11448
-rw-r--r--mysql-test/suite/funcs_1/r/memory__datadict.result12812
-rw-r--r--mysql-test/suite/funcs_1/r/memory__load.result1
-rw-r--r--mysql-test/suite/funcs_1/r/memory_bitdata.result68
-rw-r--r--mysql-test/suite/funcs_1/r/memory_cursors.result78
-rw-r--r--mysql-test/suite/funcs_1/r/memory_func_view.result5088
-rw-r--r--mysql-test/suite/funcs_1/r/memory_storedproc.result22539
-rwxr-xr-xmysql-test/suite/funcs_1/r/memory_storedproc_02.result1387
-rwxr-xr-xmysql-test/suite/funcs_1/r/memory_storedproc_03.result490
-rw-r--r--mysql-test/suite/funcs_1/r/memory_storedproc_06.result399
-rwxr-xr-xmysql-test/suite/funcs_1/r/memory_storedproc_07.result172
-rwxr-xr-xmysql-test/suite/funcs_1/r/memory_storedproc_08.result637
-rwxr-xr-xmysql-test/suite/funcs_1/r/memory_storedproc_10.result321
-rw-r--r--mysql-test/suite/funcs_1/r/memory_trig_0102.result360
-rw-r--r--mysql-test/suite/funcs_1/r/memory_trig_03.result747
-rw-r--r--mysql-test/suite/funcs_1/r/memory_trig_0407.result476
-rw-r--r--mysql-test/suite/funcs_1/r/memory_trig_08.result495
-rw-r--r--mysql-test/suite/funcs_1/r/memory_trig_09.result267
-rw-r--r--mysql-test/suite/funcs_1/r/memory_trig_1011ext.result402
-rw-r--r--mysql-test/suite/funcs_1/r/memory_triggers.result2262
-rw-r--r--mysql-test/suite/funcs_1/r/memory_views.result11453
-rw-r--r--mysql-test/suite/funcs_1/r/myisam__datadict.result13066
-rw-r--r--mysql-test/suite/funcs_1/r/myisam__load.result1
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_bitdata.result76
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_cursors.result84
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_func_view.result5088
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_storedproc.result22539
-rwxr-xr-xmysql-test/suite/funcs_1/r/myisam_storedproc_02.result1387
-rwxr-xr-xmysql-test/suite/funcs_1/r/myisam_storedproc_03.result490
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_storedproc_06.result399
-rwxr-xr-xmysql-test/suite/funcs_1/r/myisam_storedproc_07.result172
-rwxr-xr-xmysql-test/suite/funcs_1/r/myisam_storedproc_08.result637
-rwxr-xr-xmysql-test/suite/funcs_1/r/myisam_storedproc_10.result321
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_trig_0102.result364
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_trig_03.result751
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_trig_0407.result480
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_trig_08.result499
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_trig_09.result271
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result406
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_triggers.result2266
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_views.result11443
-rw-r--r--mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc9
-rw-r--r--mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc68
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_02.inc1531
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_03.inc464
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_06.inc452
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_07.inc118
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_08.inc118
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc30
-rwxr-xr-xmysql-test/suite/funcs_1/storedproc/storedproc_10.inc288
-rw-r--r--mysql-test/suite/funcs_1/storedproc/storedproc_master.inc29346
-rw-r--r--mysql-test/suite/funcs_1/t/datadict_help_tables_build.test73
-rw-r--r--mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test27
-rw-r--r--mysql-test/suite/funcs_1/t/disabled.def15
-rw-r--r--mysql-test/suite/funcs_1/t/innodb__datadict.test11
-rw-r--r--mysql-test/suite/funcs_1/t/innodb__load.test47
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_bitdata.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_cursors.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_func_view.test16
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_storedproc.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/innodb_storedproc_02.test9
-rwxr-xr-xmysql-test/suite/funcs_1/t/innodb_storedproc_03.test9
-rwxr-xr-xmysql-test/suite/funcs_1/t/innodb_storedproc_06.test9
-rwxr-xr-xmysql-test/suite/funcs_1/t/innodb_storedproc_07.test9
-rwxr-xr-xmysql-test/suite/funcs_1/t/innodb_storedproc_08.test9
-rwxr-xr-xmysql-test/suite/funcs_1/t/innodb_storedproc_10.test9
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_0102.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_03.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_0407.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_08.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_09.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_trig_frkey.test34
-rw-r--r--mysql-test/suite/funcs_1/t/innodb_views.test46
-rw-r--r--mysql-test/suite/funcs_1/t/memory__datadict.test9
-rw-r--r--mysql-test/suite/funcs_1/t/memory__load.test45
-rw-r--r--mysql-test/suite/funcs_1/t/memory_bitdata.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_cursors.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_func_view.test15
-rw-r--r--mysql-test/suite/funcs_1/t/memory_storedproc.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/memory_storedproc_02.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/memory_storedproc_03.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/memory_storedproc_06.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/memory_storedproc_07.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/memory_storedproc_08.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/memory_storedproc_10.test6
-rw-r--r--mysql-test/suite/funcs_1/t/memory_trig_0102.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_trig_03.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_trig_0407.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_trig_08.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_trig_09.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_trig_1011ext.test32
-rw-r--r--mysql-test/suite/funcs_1/t/memory_views.test44
-rw-r--r--mysql-test/suite/funcs_1/t/myisam__datadict.test10
-rw-r--r--mysql-test/suite/funcs_1/t/myisam__load.test45
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_bitdata.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_cursors.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_func_view.test15
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_storedproc.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/myisam_storedproc_02.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/myisam_storedproc_03.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/myisam_storedproc_06.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/myisam_storedproc_07.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/myisam_storedproc_08.test6
-rwxr-xr-xmysql-test/suite/funcs_1/t/myisam_storedproc_10.test6
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_trig_0102.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_trig_03.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_trig_0407.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_trig_08.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_trig_09.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test32
-rw-r--r--mysql-test/suite/funcs_1/t/myisam_views.test49
-rw-r--r--mysql-test/suite/funcs_1/triggers/trig_frkey.inc93
-rw-r--r--mysql-test/suite/funcs_1/triggers/trig_frkey2.inc244
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_0102.inc447
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_03.inc735
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_0407.inc611
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_08.inc531
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_09.inc318
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc401
-rw-r--r--mysql-test/suite/funcs_1/triggers/triggers_master.test2818
-rw-r--r--mysql-test/suite/funcs_1/views/func_view.inc1405
-rw-r--r--mysql-test/suite/funcs_1/views/fv1.inc5
-rw-r--r--mysql-test/suite/funcs_1/views/fv2.inc5
-rw-r--r--mysql-test/suite/funcs_1/views/fv_cast.inc4
-rw-r--r--mysql-test/suite/funcs_1/views/fv_if1.inc4
-rw-r--r--mysql-test/suite/funcs_1/views/fv_if2.inc4
-rw-r--r--mysql-test/suite/funcs_1/views/fv_ifnull.inc4
-rw-r--r--mysql-test/suite/funcs_1/views/views_master.inc4036
-rw-r--r--mysql-test/suite/funcs_2/charset/charset_master.test606
-rw-r--r--mysql-test/suite/funcs_2/data/charset_utf8.txt2527
-rw-r--r--mysql-test/suite/funcs_2/include/check_charset.inc40
-rw-r--r--mysql-test/suite/funcs_2/include/check_charset_ucs2.inc22
-rw-r--r--mysql-test/suite/funcs_2/include/check_charset_utf8.inc21
-rwxr-xr-xmysql-test/suite/funcs_2/lib/gen_charset_utf8.pl60
-rw-r--r--mysql-test/suite/funcs_2/r/innodb_charset.result119156
-rw-r--r--mysql-test/suite/funcs_2/r/memory_charset.result119156
-rw-r--r--mysql-test/suite/funcs_2/r/myisam_charset.result119156
-rw-r--r--mysql-test/suite/funcs_2/r/ndb_charset.result119156
-rw-r--r--mysql-test/suite/funcs_2/readme.txt22
-rw-r--r--mysql-test/suite/funcs_2/t/innodb_charset.test11
-rw-r--r--mysql-test/suite/funcs_2/t/memory_charset.test9
-rw-r--r--mysql-test/suite/funcs_2/t/myisam_charset.test9
-rw-r--r--mysql-test/suite/funcs_2/t/ndb_charset.test12
-rw-r--r--mysql-test/suite/large_tests/README.TXT13
-rw-r--r--mysql-test/suite/large_tests/r/alter_table.result37
-rw-r--r--mysql-test/suite/large_tests/t/alter_table.test47
-rw-r--r--mysql-test/t/alias.test3
-rw-r--r--mysql-test/t/alter_table-big.test62
-rw-r--r--mysql-test/t/alter_table.test136
-rw-r--r--mysql-test/t/analyse.test8
-rw-r--r--mysql-test/t/analyze.test15
-rw-r--r--mysql-test/t/archive-big.test25
-rw-r--r--mysql-test/t/archive.test85
-rw-r--r--mysql-test/t/archive_gis.test3
-rw-r--r--mysql-test/t/auto_increment.test36
-rwxr-xr-xmysql-test/t/backup-master.sh2
-rw-r--r--mysql-test/t/backup.test21
-rw-r--r--mysql-test/t/bdb.test75
-rw-r--r--mysql-test/t/bdb_gis.test4
-rw-r--r--mysql-test/t/bdb_notembedded.test38
-rw-r--r--mysql-test/t/bigint.test206
-rw-r--r--mysql-test/t/binary.test52
-rw-r--r--mysql-test/t/binlog-master.opt1
-rw-r--r--mysql-test/t/binlog.test109
-rw-r--r--mysql-test/t/binlog_innodb.test39
-rw-r--r--mysql-test/t/binlog_killed.test248
-rw-r--r--mysql-test/t/blackhole.test25
-rw-r--r--mysql-test/t/bool.test10
-rw-r--r--mysql-test/t/bootstrap.test49
-rw-r--r--mysql-test/t/case.test24
-rw-r--r--mysql-test/t/cast.test87
-rw-r--r--mysql-test/t/check.test22
-rw-r--r--mysql-test/t/client_xml.test23
-rw-r--r--mysql-test/t/comments.test33
-rw-r--r--mysql-test/t/compare.test9
-rw-r--r--mysql-test/t/compress.test18
-rw-r--r--mysql-test/t/connect.test2
-rw-r--r--mysql-test/t/count_distinct.test21
-rw-r--r--mysql-test/t/count_distinct2.test2
-rw-r--r--mysql-test/t/count_distinct3.test4
-rw-r--r--mysql-test/t/create.test559
-rw-r--r--mysql-test/t/create_not_windows.test21
-rw-r--r--mysql-test/t/create_select_tmp.test1
-rw-r--r--mysql-test/t/csv.test109
-rw-r--r--mysql-test/t/ctype_ascii.test13
-rw-r--r--mysql-test/t/ctype_big5.test19
-rw-r--r--mysql-test/t/ctype_collate.test59
-rw-r--r--mysql-test/t/ctype_cp1250_ch.test4
-rw-r--r--mysql-test/t/ctype_cp1251.test2
-rw-r--r--mysql-test/t/ctype_cp932.test81
-rw-r--r--mysql-test/t/ctype_cp932_binlog.test27
-rw-r--r--mysql-test/t/ctype_eucjpms.test382
-rw-r--r--mysql-test/t/ctype_gbk.test10
-rw-r--r--mysql-test/t/ctype_latin1.test7
-rw-r--r--mysql-test/t/ctype_latin1_de.test10
-rw-r--r--mysql-test/t/ctype_latin2_ch.test2
-rw-r--r--mysql-test/t/ctype_ldml-master.opt2
-rw-r--r--mysql-test/t/ctype_ldml.test63
-rw-r--r--mysql-test/t/ctype_many.test8
-rw-r--r--mysql-test/t/ctype_recoding.test14
-rw-r--r--mysql-test/t/ctype_uca.test81
-rw-r--r--mysql-test/t/ctype_ucs.test133
-rw-r--r--mysql-test/t/ctype_ucs2_def-master.opt2
-rw-r--r--mysql-test/t/ctype_ucs2_def.test28
-rw-r--r--mysql-test/t/ctype_ucs_binlog.test5
-rw-r--r--mysql-test/t/ctype_ujis.test42
-rw-r--r--mysql-test/t/ctype_utf8.test286
-rw-r--r--mysql-test/t/date_formats.test11
-rw-r--r--mysql-test/t/default.test149
-rw-r--r--mysql-test/t/delayed.test218
-rw-r--r--mysql-test/t/delete.test118
-rw-r--r--mysql-test/t/derived.test50
-rw-r--r--mysql-test/t/disabled.def7
-rw-r--r--mysql-test/t/distinct.test210
-rw-r--r--mysql-test/t/drop.test41
-rw-r--r--mysql-test/t/drop_temp_table.test7
-rw-r--r--mysql-test/t/endspace.test8
-rw-r--r--mysql-test/t/error_simulation-master.opt1
-rw-r--r--mysql-test/t/error_simulation.test29
-rw-r--r--mysql-test/t/errors.test40
-rw-r--r--mysql-test/t/execution_constants.test77
-rw-r--r--mysql-test/t/explain.test24
-rw-r--r--mysql-test/t/federated.test1689
-rw-r--r--mysql-test/t/federated_archive.test58
-rw-r--r--mysql-test/t/federated_bug_13118.test42
-rw-r--r--mysql-test/t/federated_bug_25714.test47
-rw-r--r--mysql-test/t/federated_innodb-slave.opt1
-rw-r--r--mysql-test/t/federated_innodb.test34
-rw-r--r--mysql-test/t/fix_priv_tables.test73
-rw-r--r--mysql-test/t/flush.test42
-rw-r--r--mysql-test/t/flush2-master.opt1
-rw-r--r--mysql-test/t/flush2.test9
-rw-r--r--mysql-test/t/flush_block_commit_notembedded.test34
-rw-r--r--mysql-test/t/flush_read_lock_kill-master.opt1
-rw-r--r--mysql-test/t/flush_read_lock_kill.test49
-rw-r--r--mysql-test/t/flush_table.test7
-rw-r--r--mysql-test/t/fulltext.test24
-rw-r--r--mysql-test/t/fulltext3.test24
-rw-r--r--mysql-test/t/fulltext_left_join.test13
-rw-r--r--mysql-test/t/fulltext_order_by.test6
-rw-r--r--mysql-test/t/fulltext_var.test8
-rw-r--r--mysql-test/t/func_compress.test16
-rw-r--r--mysql-test/t/func_concat.test14
-rw-r--r--mysql-test/t/func_date_add.test50
-rw-r--r--mysql-test/t/func_default.test10
-rw-r--r--mysql-test/t/func_des_encrypt.test2
-rw-r--r--mysql-test/t/func_encrypt.test2
-rw-r--r--mysql-test/t/func_equal.test13
-rw-r--r--mysql-test/t/func_gconcat.test170
-rw-r--r--mysql-test/t/func_group.test389
-rw-r--r--mysql-test/t/func_if.test38
-rw-r--r--mysql-test/t/func_in.test255
-rw-r--r--mysql-test/t/func_math.test132
-rw-r--r--mysql-test/t/func_misc.test127
-rw-r--r--mysql-test/t/func_regexp.test11
-rw-r--r--mysql-test/t/func_sapdb.test16
-rw-r--r--mysql-test/t/func_set.test2
-rw-r--r--mysql-test/t/func_str.test435
-rw-r--r--mysql-test/t/func_test.test19
-rw-r--r--mysql-test/t/func_time.test300
-rw-r--r--mysql-test/t/func_timestamp.test6
-rw-r--r--mysql-test/t/gis-rtree.test51
-rw-r--r--mysql-test/t/gis.test181
-rw-r--r--mysql-test/t/grant.test697
-rw-r--r--mysql-test/t/grant2.test436
-rw-r--r--mysql-test/t/grant3-master.opt1
-rw-r--r--mysql-test/t/grant3.test136
-rw-r--r--mysql-test/t/grant_cache.test6
-rw-r--r--mysql-test/t/greedy_optimizer.test313
-rw-r--r--mysql-test/t/group_by.test186
-rw-r--r--mysql-test/t/group_min_max.test894
-rw-r--r--mysql-test/t/handler.test85
-rw-r--r--mysql-test/t/having.test256
-rw-r--r--mysql-test/t/heap.test265
-rw-r--r--mysql-test/t/heap_btree.test40
-rw-r--r--mysql-test/t/heap_hash.test27
-rw-r--r--mysql-test/t/im_daemon_life_cycle-im.opt3
-rw-r--r--mysql-test/t/im_daemon_life_cycle.imtest98
-rw-r--r--mysql-test/t/im_life_cycle-im.opt1
-rw-r--r--mysql-test/t/im_life_cycle.imtest203
-rw-r--r--mysql-test/t/im_options_set.imtest116
-rw-r--r--mysql-test/t/im_options_unset.imtest124
-rw-r--r--mysql-test/t/im_utils-im.opt1
-rw-r--r--mysql-test/t/im_utils.imtest105
-rw-r--r--mysql-test/t/index_merge.test465
-rw-r--r--mysql-test/t/index_merge_bdb.test52
-rw-r--r--mysql-test/t/index_merge_innodb.test302
-rw-r--r--mysql-test/t/index_merge_innodb2.test52
-rw-r--r--mysql-test/t/index_merge_ror.test267
-rw-r--r--mysql-test/t/index_merge_ror_cpk.test111
-rw-r--r--mysql-test/t/information_schema.test1100
-rw-r--r--mysql-test/t/information_schema_chmod.test23
-rw-r--r--mysql-test/t/information_schema_db.test212
-rw-r--r--mysql-test/t/information_schema_inno.test23
-rw-r--r--mysql-test/t/init_connect.test214
-rw-r--r--mysql-test/t/init_file.test12
-rw-r--r--mysql-test/t/innodb-big.test152
-rw-r--r--mysql-test/t/innodb-deadlock.test27
-rw-r--r--mysql-test/t/innodb-replace.test4
-rw-r--r--mysql-test/t/innodb-ucs2.test226
-rw-r--r--mysql-test/t/innodb.test842
-rw-r--r--mysql-test/t/innodb_cache.test4
-rw-r--r--mysql-test/t/innodb_gis.test4
-rw-r--r--mysql-test/t/innodb_mysql-master.opt1
-rw-r--r--mysql-test/t/innodb_mysql.test776
-rw-r--r--mysql-test/t/innodb_notembedded.test40
-rw-r--r--mysql-test/t/innodb_timeout_rollback-master.opt1
-rw-r--r--mysql-test/t/innodb_timeout_rollback.test5
-rw-r--r--mysql-test/t/innodb_unsafe_binlog-master.opt1
-rw-r--r--mysql-test/t/innodb_unsafe_binlog.test67
-rw-r--r--mysql-test/t/insert.test235
-rw-r--r--mysql-test/t/insert_notembedded.test154
-rw-r--r--mysql-test/t/insert_select-binlog.test1
-rw-r--r--mysql-test/t/insert_select.test139
-rw-r--r--mysql-test/t/insert_update.test169
-rw-r--r--mysql-test/t/isam.test249
-rw-r--r--mysql-test/t/join.test309
-rw-r--r--mysql-test/t/join_crash.test15
-rw-r--r--mysql-test/t/join_nested.test1200
-rw-r--r--mysql-test/t/join_outer.test233
-rw-r--r--mysql-test/t/key.test98
-rw-r--r--mysql-test/t/key_cache.test41
-rw-r--r--mysql-test/t/keywords.test30
-rw-r--r--mysql-test/t/kill.test226
-rwxr-xr-xmysql-test/t/kill_n_check.sh147
-rw-r--r--mysql-test/t/limit.test23
-rw-r--r--mysql-test/t/loaddata.test176
-rw-r--r--mysql-test/t/loaddata_autocom_innodb.test4
-rw-r--r--mysql-test/t/loaddata_autocom_ndb.test4
-rw-r--r--mysql-test/t/lock.test2
-rw-r--r--mysql-test/t/lock_multi.test162
-rwxr-xr-xmysql-test/t/log.sh24
-rw-r--r--mysql-test/t/long_tmpdir-master.opt1
-rw-r--r--mysql-test/t/long_tmpdir-master.sh3
-rw-r--r--mysql-test/t/long_tmpdir.test9
-rw-r--r--mysql-test/t/lowercase_fs_off.test1
-rw-r--r--mysql-test/t/lowercase_mixed_tmpdir-master.opt2
-rw-r--r--mysql-test/t/lowercase_mixed_tmpdir-master.sh6
-rw-r--r--mysql-test/t/lowercase_mixed_tmpdir.test12
-rw-r--r--mysql-test/t/lowercase_table.test21
-rw-r--r--mysql-test/t/lowercase_table2.test11
-rw-r--r--mysql-test/t/lowercase_table3.test2
-rw-r--r--mysql-test/t/lowercase_view-master.opt1
-rw-r--r--mysql-test/t/lowercase_view.test140
-rw-r--r--mysql-test/t/merge.test72
-rw-r--r--mysql-test/t/metadata.test51
-rw-r--r--mysql-test/t/mix_innodb_myisam_binlog.test185
-rw-r--r--mysql-test/t/multi_statement.test4
-rw-r--r--mysql-test/t/multi_update.test118
-rw-r--r--mysql-test/t/myisam.test191
-rw-r--r--mysql-test/t/mysql.test284
-rw-r--r--mysql-test/t/mysql_client.test89
-rw-r--r--mysql-test/t/mysql_client_test.opt1
-rw-r--r--mysql-test/t/mysql_client_test.test3
-rw-r--r--mysql-test/t/mysql_delimiter.sql61
-rwxr-xr-xmysql-test/t/mysql_delimiter_19799.sql1
-rw-r--r--mysql-test/t/mysql_delimiter_source.sql8
-rw-r--r--mysql-test/t/mysql_upgrade.test70
-rw-r--r--mysql-test/t/mysqladmin.test3
-rw-r--r--mysql-test/t/mysqlbinlog-cp932-master.opt1
-rw-r--r--mysql-test/t/mysqlbinlog-cp932.test22
-rw-r--r--mysql-test/t/mysqlbinlog.test197
-rw-r--r--mysql-test/t/mysqlbinlog2.test43
-rw-r--r--mysql-test/t/mysqlcheck.test34
-rw-r--r--mysql-test/t/mysqldump-compat.opt1
-rw-r--r--mysql-test/t/mysqldump-compat.test13
-rw-r--r--mysql-test/t/mysqldump-max.test68
-rw-r--r--mysql-test/t/mysqldump.test1106
-rw-r--r--mysql-test/t/mysqlshow.test36
-rw-r--r--mysql-test/t/mysqltest.test256
-rw-r--r--mysql-test/t/named_pipe-master.opt1
-rw-r--r--mysql-test/t/named_pipe.test14
-rw-r--r--mysql-test/t/ndb_alter_table.test22
-rw-r--r--mysql-test/t/ndb_alter_table2.test83
-rw-r--r--mysql-test/t/ndb_autodiscover.test79
-rw-r--r--mysql-test/t/ndb_autodiscover3.test12
-rw-r--r--mysql-test/t/ndb_backup_print.test66
-rw-r--r--mysql-test/t/ndb_basic.test111
-rw-r--r--mysql-test/t/ndb_bitfield.test122
-rw-r--r--mysql-test/t/ndb_blob.test61
-rw-r--r--mysql-test/t/ndb_bug26793.test35
-rw-r--r--mysql-test/t/ndb_cache.test106
-rw-r--r--mysql-test/t/ndb_cache2.test361
-rw-r--r--mysql-test/t/ndb_cache_multi.test65
-rw-r--r--mysql-test/t/ndb_cache_multi2.test95
-rw-r--r--mysql-test/t/ndb_charset.test80
-rw-r--r--mysql-test/t/ndb_condition_pushdown.test2747
-rw-r--r--mysql-test/t/ndb_config.test15
-rw-r--r--mysql-test/t/ndb_gis.test5
-rw-r--r--mysql-test/t/ndb_grant.later13
-rw-r--r--mysql-test/t/ndb_index_ordered.test55
-rw-r--r--mysql-test/t/ndb_index_unique.test39
-rw-r--r--mysql-test/t/ndb_insert.test177
-rw-r--r--mysql-test/t/ndb_load.test4
-rw-r--r--mysql-test/t/ndb_lock.test45
-rw-r--r--mysql-test/t/ndb_multi.test7
-rw-r--r--mysql-test/t/ndb_read_multi_range.test315
-rw-r--r--mysql-test/t/ndb_replace.test76
-rw-r--r--mysql-test/t/ndb_restore.test138
-rw-r--r--mysql-test/t/ndb_restore_different_endian_data.test185
-rw-r--r--mysql-test/t/ndb_restore_print.test189
-rw-r--r--mysql-test/t/ndb_single_user.test120
-rw-r--r--mysql-test/t/ndb_subquery.test24
-rw-r--r--mysql-test/t/ndb_trigger.test200
-rw-r--r--mysql-test/t/ndb_types.test23
-rw-r--r--mysql-test/t/ndb_update.test10
-rw-r--r--mysql-test/t/null.test38
-rw-r--r--mysql-test/t/null_key.test2
-rw-r--r--mysql-test/t/olap.test72
-rw-r--r--mysql-test/t/openssl_1.test139
-rw-r--r--mysql-test/t/order_by.test79
-rw-r--r--mysql-test/t/outfile.test103
-rw-r--r--mysql-test/t/overflow.test2
-rw-r--r--mysql-test/t/parser_precedence.test333
-rw-r--r--mysql-test/t/perror.test19
-rw-r--r--mysql-test/t/ps-master.opt1
-rw-r--r--mysql-test/t/ps.test685
-rw-r--r--mysql-test/t/ps_11bugs.test34
-rw-r--r--mysql-test/t/ps_1general.test59
-rw-r--r--mysql-test/t/ps_4heap.test10
-rw-r--r--mysql-test/t/ps_5merge.test8
-rw-r--r--mysql-test/t/ps_grant.test16
-rw-r--r--mysql-test/t/query_cache.test501
-rw-r--r--mysql-test/t/query_cache_notembedded.test124
-rw-r--r--mysql-test/t/query_cache_with_views.test130
-rw-r--r--mysql-test/t/range.test243
-rw-r--r--mysql-test/t/read_only.test120
-rw-r--r--mysql-test/t/rename.test22
-rw-r--r--mysql-test/t/repair.test2
-rw-r--r--mysql-test/t/replace.test18
-rw-r--r--mysql-test/t/round.test145
-rw-r--r--mysql-test/t/row.test72
-rw-r--r--mysql-test/t/rowid_order_bdb.test108
-rw-r--r--mysql-test/t/rowid_order_innodb.test108
-rw-r--r--mysql-test/t/rpl000001.test28
-rw-r--r--mysql-test/t/rpl000004.test4
-rw-r--r--mysql-test/t/rpl000009.test4
-rw-r--r--mysql-test/t/rpl000010-slave.opt2
-rwxr-xr-xmysql-test/t/rpl000015-slave.sh2
-rw-r--r--mysql-test/t/rpl000015.test4
-rwxr-xr-xmysql-test/t/rpl000017-slave.sh6
-rw-r--r--mysql-test/t/rpl000017.test3
-rw-r--r--mysql-test/t/rpl_EE_error.test4
-rw-r--r--mysql-test/t/rpl_auto_increment-master.opt1
-rw-r--r--mysql-test/t/rpl_auto_increment.test142
-rw-r--r--mysql-test/t/rpl_auto_increment_11932.test63
-rw-r--r--mysql-test/t/rpl_change_master.test20
-rw-r--r--mysql-test/t/rpl_charset.test47
-rw-r--r--mysql-test/t/rpl_charset_sjis.test25
-rw-r--r--mysql-test/t/rpl_create_database.test1
-rw-r--r--mysql-test/t/rpl_critical_errors.test66
-rw-r--r--mysql-test/t/rpl_ddl.test164
-rw-r--r--mysql-test/t/rpl_deadlock.test19
-rw-r--r--mysql-test/t/rpl_delete_all.test2
-rw-r--r--mysql-test/t/rpl_do_grant.test16
-rw-r--r--mysql-test/t/rpl_drop_db.test7
-rw-r--r--mysql-test/t/rpl_dual_pos_advance.test6
-rw-r--r--mysql-test/t/rpl_empty_master_crash.test2
-rw-r--r--mysql-test/t/rpl_error_ignored_table.test6
-rw-r--r--mysql-test/t/rpl_failed_optimize.test3
-rw-r--r--mysql-test/t/rpl_flush_log_loop-master.opt2
-rwxr-xr-xmysql-test/t/rpl_flush_log_loop-master.sh6
-rw-r--r--mysql-test/t/rpl_flush_log_loop-slave.opt2
-rwxr-xr-xmysql-test/t/rpl_flush_log_loop-slave.sh6
-rw-r--r--mysql-test/t/rpl_flush_log_loop.test5
-rw-r--r--mysql-test/t/rpl_flush_tables.test6
-rw-r--r--mysql-test/t/rpl_get_lock.test7
-rw-r--r--mysql-test/t/rpl_grant.test42
-rw-r--r--mysql-test/t/rpl_ignore_revoke-slave.opt1
-rw-r--r--mysql-test/t/rpl_ignore_revoke.test51
-rw-r--r--mysql-test/t/rpl_ignore_table-slave.opt2
-rw-r--r--mysql-test/t/rpl_ignore_table.test24
-rw-r--r--mysql-test/t/rpl_init_slave.test6
-rw-r--r--mysql-test/t/rpl_innodb.test4
-rw-r--r--mysql-test/t/rpl_insert_delayed.test97
-rw-r--r--mysql-test/t/rpl_insert_id.test306
-rw-r--r--mysql-test/t/rpl_known_bugs_detection-master.opt1
-rw-r--r--mysql-test/t/rpl_known_bugs_detection.test90
-rw-r--r--mysql-test/t/rpl_loaddata.test55
-rw-r--r--mysql-test/t/rpl_loaddata_charset.test33
-rw-r--r--mysql-test/t/rpl_loaddata_rule_m.test12
-rw-r--r--mysql-test/t/rpl_loaddata_rule_s.test7
-rw-r--r--mysql-test/t/rpl_loaddatalocal.test31
-rw-r--r--mysql-test/t/rpl_locale.test2
-rw-r--r--mysql-test/t/rpl_log.test10
-rw-r--r--mysql-test/t/rpl_log_pos.test39
-rw-r--r--mysql-test/t/rpl_max_relay_size.test9
-rwxr-xr-xmysql-test/t/rpl_misc_functions-slave.sh2
-rw-r--r--mysql-test/t/rpl_misc_functions.test86
-rw-r--r--mysql-test/t/rpl_multi_delete.test26
-rw-r--r--mysql-test/t/rpl_multi_query.test3
-rw-r--r--mysql-test/t/rpl_multi_update.test23
-rw-r--r--mysql-test/t/rpl_multi_update3.test3
-rw-r--r--mysql-test/t/rpl_ndb_innodb_trans-slave.opt1
-rw-r--r--mysql-test/t/rpl_ndb_innodb_trans.test66
-rw-r--r--mysql-test/t/rpl_openssl.test7
-rw-r--r--mysql-test/t/rpl_packet.test33
-rw-r--r--mysql-test/t/rpl_redirect.test2
-rw-r--r--mysql-test/t/rpl_relayrotate-slave.opt3
-rw-r--r--mysql-test/t/rpl_relayspace.test16
-rw-r--r--mysql-test/t/rpl_replicate_do.test38
-rw-r--r--mysql-test/t/rpl_reset_slave.test9
-rw-r--r--mysql-test/t/rpl_rewrite_db.test12
-rwxr-xr-xmysql-test/t/rpl_rotate_logs-slave.sh4
-rw-r--r--mysql-test/t/rpl_rotate_logs.test51
-rw-r--r--mysql-test/t/rpl_session_var.test64
-rw-r--r--mysql-test/t/rpl_skip_error.test24
-rw-r--r--mysql-test/t/rpl_slave_status.test4
-rw-r--r--mysql-test/t/rpl_sp-master.opt1
-rw-r--r--mysql-test/t/rpl_sp-slave.opt1
-rw-r--r--mysql-test/t/rpl_sp.test579
-rw-r--r--mysql-test/t/rpl_sp_effects-master.opt1
-rw-r--r--mysql-test/t/rpl_sp_effects-slave.opt1
-rw-r--r--mysql-test/t/rpl_sp_effects.test203
-rw-r--r--mysql-test/t/rpl_ssl.test79
-rw-r--r--mysql-test/t/rpl_temporary.test49
-rw-r--r--mysql-test/t/rpl_timezone-slave.opt2
-rw-r--r--mysql-test/t/rpl_timezone.test96
-rw-r--r--mysql-test/t/rpl_trigger.test469
-rw-r--r--mysql-test/t/rpl_trunc_binlog.test27
-rw-r--r--mysql-test/t/rpl_until.test25
-rw-r--r--mysql-test/t/rpl_user_variables.test339
-rw-r--r--mysql-test/t/rpl_variables-master.opt1
-rw-r--r--mysql-test/t/rpl_variables.test14
-rw-r--r--mysql-test/t/rpl_view-slave.opt1
-rw-r--r--mysql-test/t/rpl_view.test164
-rw-r--r--mysql-test/t/schema.test14
-rw-r--r--mysql-test/t/select.test1179
-rw-r--r--mysql-test/t/select_safe.test3
-rw-r--r--mysql-test/t/shm-master.opt1
-rw-r--r--mysql-test/t/shm.test19
-rw-r--r--mysql-test/t/show_check-master.opt1
-rw-r--r--mysql-test/t/show_check.test488
-rw-r--r--mysql-test/t/skip_grants-master.opt1
-rw-r--r--mysql-test/t/skip_grants.test118
-rw-r--r--mysql-test/t/skip_name_resolve.test10
-rw-r--r--mysql-test/t/sp-big.test85
-rw-r--r--mysql-test/t/sp-code.test524
-rw-r--r--mysql-test/t/sp-destruct.test141
-rw-r--r--mysql-test/t/sp-dynamic.test360
-rw-r--r--mysql-test/t/sp-error.test2121
-rw-r--r--mysql-test/t/sp-prelocking.test390
-rw-r--r--mysql-test/t/sp-security.test888
-rw-r--r--mysql-test/t/sp-threads.test185
-rw-r--r--mysql-test/t/sp-ucs2.test28
-rw-r--r--mysql-test/t/sp-vars.test1414
-rw-r--r--mysql-test/t/sp.test7705
-rw-r--r--mysql-test/t/sp_notembedded.test287
-rw-r--r--mysql-test/t/sp_stress_case.test89
-rw-r--r--mysql-test/t/sp_trans.test565
-rw-r--r--mysql-test/t/sp_trans_log.test33
-rw-r--r--mysql-test/t/sql_mode.test171
-rw-r--r--mysql-test/t/ssl-big.test56
-rw-r--r--mysql-test/t/ssl.test17
-rw-r--r--mysql-test/t/ssl_8k_key.test6
-rw-r--r--mysql-test/t/ssl_compress.test22
-rw-r--r--mysql-test/t/ssl_connect.test13
-rw-r--r--mysql-test/t/status.test144
-rw-r--r--mysql-test/t/strict.test1267
-rw-r--r--mysql-test/t/strict_autoinc_1myisam.test8
-rw-r--r--mysql-test/t/strict_autoinc_2innodb.test10
-rw-r--r--mysql-test/t/strict_autoinc_3heap.test8
-rw-r--r--mysql-test/t/strict_autoinc_4bdb.test10
-rw-r--r--mysql-test/t/strict_autoinc_5ndb.test10
-rw-r--r--mysql-test/t/subselect.test988
-rw-r--r--mysql-test/t/subselect3.test591
-rw-r--r--mysql-test/t/subselect_innodb.test77
-rw-r--r--mysql-test/t/subselect_notembedded.test9
-rw-r--r--mysql-test/t/sum_distinct-big.test67
-rw-r--r--mysql-test/t/sum_distinct.test95
-rw-r--r--mysql-test/t/symlink.test91
-rw-r--r--mysql-test/t/synchronization.test7
-rw-r--r--mysql-test/t/sysdate_is_now-master.opt1
-rw-r--r--mysql-test/t/sysdate_is_now.test11
-rw-r--r--mysql-test/t/system_mysql_db.test5
-rw-r--r--mysql-test/t/system_mysql_db_fix30020-master.opt (renamed from mysql-test/t/system_mysql_db_fix-master.opt)0
-rw-r--r--mysql-test/t/system_mysql_db_fix30020.test (renamed from mysql-test/t/system_mysql_db_fix.test)22
-rw-r--r--mysql-test/t/system_mysql_db_fix40123-master.opt1
-rw-r--r--mysql-test/t/system_mysql_db_fix40123.test86
-rw-r--r--mysql-test/t/temp_table-master.opt2
-rw-r--r--mysql-test/t/temp_table.test33
-rw-r--r--mysql-test/t/timezone2.test27
-rw-r--r--mysql-test/t/timezone_grant.test35
-rw-r--r--mysql-test/t/trigger-compat.test96
-rw-r--r--mysql-test/t/trigger-grant.test751
-rw-r--r--mysql-test/t/trigger-trans.test132
-rw-r--r--mysql-test/t/trigger.test2220
-rw-r--r--mysql-test/t/truncate.test17
-rw-r--r--mysql-test/t/type_binary.test102
-rw-r--r--mysql-test/t/type_bit.test321
-rw-r--r--mysql-test/t/type_bit_innodb.test147
-rw-r--r--mysql-test/t/type_blob.test96
-rw-r--r--mysql-test/t/type_date.test68
-rw-r--r--mysql-test/t/type_datetime.test219
-rw-r--r--mysql-test/t/type_decimal.test166
-rw-r--r--mysql-test/t/type_enum.test50
-rw-r--r--mysql-test/t/type_float.test60
-rw-r--r--mysql-test/t/type_newdecimal-big.test50
-rw-r--r--mysql-test/t/type_newdecimal.test1200
-rw-r--r--mysql-test/t/type_ranges.test21
-rw-r--r--mysql-test/t/type_set.test17
-rw-r--r--mysql-test/t/type_time.test37
-rw-r--r--mysql-test/t/type_timestamp.test19
-rw-r--r--mysql-test/t/type_varchar.test200
-rw-r--r--mysql-test/t/type_year.test10
-rw-r--r--mysql-test/t/udf.test365
-rw-r--r--mysql-test/t/union.test140
-rw-r--r--mysql-test/t/update.test120
-rw-r--r--mysql-test/t/user_limits.test169
-rw-r--r--mysql-test/t/user_var-binlog.test7
-rw-r--r--mysql-test/t/user_var.test103
-rw-r--r--mysql-test/t/utils.sh55
-rw-r--r--mysql-test/t/varbinary.test47
-rw-r--r--mysql-test/t/variables-big.test20
-rw-r--r--mysql-test/t/variables-master.opt1
-rw-r--r--mysql-test/t/variables.test295
-rw-r--r--mysql-test/t/view.test3460
-rw-r--r--mysql-test/t/view_grant.test1187
-rwxr-xr-xmysql-test/t/wait_for_process.sh114
-rwxr-xr-xmysql-test/t/wait_for_socket.sh94
-rw-r--r--mysql-test/t/wait_timeout-master.opt2
-rw-r--r--mysql-test/t/wait_timeout.test91
-rw-r--r--mysql-test/t/warnings.test66
-rw-r--r--mysql-test/t/windows.test8
-rw-r--r--mysql-test/t/xa.test76
-rw-r--r--mysql-test/valgrind.supp100
1268 files changed, 909713 insertions, 15555 deletions
diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am
index 02a1a801d36..75d00457d14 100644
--- a/mysql-test/Makefile.am
+++ b/mysql-test/Makefile.am
@@ -1,9 +1,9 @@
-# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+# Copyright (C) 2000-2006 MySQL AB
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
+# License as published by the Free Software Foundation; version 2
+# of the License.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,41 +32,42 @@ endif
benchdir_root= $(prefix)
testdir = $(benchdir_root)/mysql-test
-EXTRA_SCRIPTS = mysql-test-run-shell.sh install_test_db.sh \
- valgrind.supp $(PRESCRIPTS)
-EXTRA_DIST = $(EXTRA_SCRIPTS)
-GENSCRIPTS = mysql-test-run-shell mysql-test-run install_test_db mtr lib/init_db.sql
-PRESCRIPTS = mysql-test-run.pl
+EXTRA_SCRIPTS = mysql-test-run-shell.sh install_test_db.sh valgrind.supp $(PRESCRIPTS)
+EXTRA_DIST = $(EXTRA_SCRIPTS) suite
+GENSCRIPTS = mysql-test-run-shell mysql-test-run install_test_db mtr
+PRESCRIPTS = mysql-test-run.pl mysql-stress-test.pl
test_SCRIPTS = $(GENSCRIPTS) $(PRESCRIPTS)
-test_DATA = std_data/client-key.pem \
- std_data/client-cert.pem \
- std_data/cacert.pem \
- std_data/server-cert.pem \
- std_data/server-key.pem
-CLEANFILES = $(GENSCRIPTS) $(test_DATA)
+CLEANFILES = $(GENSCRIPTS)
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I..
-noinst_HEADERS = my_manage.h
-
dist-hook:
mkdir -p $(distdir)/t $(distdir)/r $(distdir)/include \
- $(distdir)/std_data $(distdir)/lib
+ $(distdir)/std_data \
+ $(distdir)/std_data/ndb_backup50_data_be $(distdir)/std_data/ndb_backup50_data_le \
+ $(distdir)/lib
-$(INSTALL_DATA) $(srcdir)/t/*.def $(distdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.test $(distdir)/t
+ -$(INSTALL_DATA) $(srcdir)/t/*.imtest $(distdir)/t
+ $(INSTALL_DATA) $(srcdir)/t/*.sql $(distdir)/t
-$(INSTALL_DATA) $(srcdir)/t/*.disabled $(distdir)/t
- $(INSTALL_DATA) $(srcdir)/t/*.opt $(srcdir)/t/*.sh $(srcdir)/t/*.slave-mi $(distdir)/t
+ $(INSTALL_DATA) $(srcdir)/t/*.opt $(srcdir)/t/*.slave-mi $(distdir)/t
+ $(INSTALL_SCRIPT) $(srcdir)/t/*.sh $(distdir)/t
$(INSTALL_DATA) $(srcdir)/include/*.inc $(distdir)/include
$(INSTALL_DATA) $(srcdir)/include/*.test $(distdir)/include
$(INSTALL_DATA) $(srcdir)/r/*.result $(srcdir)/r/*.require $(distdir)/r
$(INSTALL_DATA) $(srcdir)/std_data/Moscow_leap $(distdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/Index.xml $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.dat $(srcdir)/std_data/*.000001 $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/des_key_file $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.pem $(distdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/*.frm $(distdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/*.MY* $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(distdir)/std_data
- $(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(distdir)/lib
+ $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_be/BACKUP* $(distdir)/std_data/ndb_backup50_data_be
+ $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_le/BACKUP* $(distdir)/std_data/ndb_backup50_data_le
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib
-
+ -rm -rf `find $(distdir)/suite -type d -name SCCS`
install-data-local:
$(mkinstalldirs) \
@@ -74,13 +75,17 @@ install-data-local:
$(DESTDIR)$(testdir)/r \
$(DESTDIR)$(testdir)/include \
$(DESTDIR)$(testdir)/std_data \
+ $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_be \
+ $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_le \
$(DESTDIR)$(testdir)/lib
$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(testdir)
-$(INSTALL_DATA) $(srcdir)/t/*.def $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.test $(DESTDIR)$(testdir)/t
+ -$(INSTALL_DATA) $(srcdir)/t/*.imtest $(DESTDIR)$(testdir)/t
+ $(INSTALL_DATA) $(srcdir)/t/*.sql $(DESTDIR)$(testdir)/t
-$(INSTALL_DATA) $(srcdir)/t/*.disabled $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.opt $(DESTDIR)$(testdir)/t
- $(INSTALL_DATA) $(srcdir)/t/*.sh $(DESTDIR)$(testdir)/t
+ $(INSTALL_SCRIPT) $(srcdir)/t/*.sh $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/t/*.slave-mi $(DESTDIR)$(testdir)/t
$(INSTALL_DATA) $(srcdir)/r/*.result $(DESTDIR)$(testdir)/r
$(INSTALL_DATA) $(srcdir)/r/*.require $(DESTDIR)$(testdir)/r
@@ -91,24 +96,24 @@ install-data-local:
$(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/des_key_file $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/Moscow_leap $(DESTDIR)$(testdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/Index.xml $(DESTDIR)$(testdir)/std_data
$(INSTALL_DATA) $(srcdir)/std_data/*.pem $(DESTDIR)$(testdir)/std_data
- $(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(DESTDIR)$(testdir)/lib
+ $(INSTALL_DATA) $(srcdir)/std_data/*.frm $(DESTDIR)$(testdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/*.MY* $(DESTDIR)$(testdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data
+ $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_be/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_be
+ $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_le/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_le
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib
+ for f in `(cd $(srcdir); find suite -type f | grep -v SCCS)`; \
+ do \
+ d=$(DESTDIR)$(testdir)/`dirname $$f`; \
+ mkdir -p $$d ; \
+ $(INSTALL_DATA) $(srcdir)/$$f $$d ; \
+ done
uninstall-local:
@RM@ -f -r $(DESTDIR)$(testdir)
-std_data/client-key.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/client-cert.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/cacert.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/server-cert.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/server-key.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-
# mtr - a shortcut for executing mysql-test-run.pl
mtr:
$(RM) -f mtr
@@ -119,11 +124,6 @@ mysql-test-run:
$(RM) -f mysql-test-run
$(LN_S) mysql-test-run.pl mysql-test-run
-# Build init_db.sql by executing mysql_create_system_tables
-lib/init_db.sql:
- $(top_builddir)/scripts/mysql_create_system_tables \
- test . \@HOSTNAME\@ > lib/init_db.sql
-
SUFFIXES = .sh
.sh:
@@ -139,6 +139,7 @@ SUFFIXES = .sh
-e 's!@''PERL''@!@PERL@!' \
-e 's!@''VERSION''@!@VERSION@!' \
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
+ -e 's!@''MYSQL_TCP_PORT_DEFAULT''@!@MYSQL_TCP_PORT_DEFAULT@!' \
-e 's!@''MYSQL_BASE_VERSION''@!@MYSQL_BASE_VERSION@!' \
-e 's!@''MYSQL_UNIX_ADDR''@!@MYSQL_UNIX_ADDR@!' \
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
diff --git a/mysql-test/README.stress b/mysql-test/README.stress
new file mode 100644
index 00000000000..6be4e9a0236
--- /dev/null
+++ b/mysql-test/README.stress
@@ -0,0 +1,120 @@
+
+Overview
+--------
+
+The stress script is designed to perform testing of the MySQL server in
+a multi-threaded environment.
+
+All functionality regarding stress testing is implemented in the
+mysql-stress-test.pl script.
+
+The stress script allows:
+
+ - To stress test the mysqltest binary test engine.
+ - To stress test the regular test suite and any additional test suites
+ (such as mysql-test-extra-5.0).
+ - To specify files with lists of tests both for initialization of
+ stress db and for further testing itself.
+ - To define the number of threads to be concurrently used in testing.
+ - To define limitations for the test run. such as the number of tests or
+ loops for execution or duration of testing, delay between test
+ executions, and so forth.
+ - To get a readable log file that can be used for identification of
+ errors that occur during testing.
+
+There are two ways to run the mysql-stress-test.pl script:
+
+ - For most cases, it is enough to use the options below for starting
+ the stress test from the mysql-test-run wrapper. In this case, the
+ server is run automatically, all preparation steps are performed,
+ and after that the stress test is started.
+
+ - In advanced case, you can run the mysql-stress-test.pl script directly.
+ But this requires that you perform some preparation steps and to specify
+ a bunch of options as well, so this invocation method may be a bit
+ complicated.
+
+Usage
+-----
+
+The following mysql-test-run options are specific to stress-testing:
+
+--stress
+ Enable stress mode
+
+--stress-suite=<suite name>
+ Test suite name to use in stress testing. We assume that all suites
+ are located in the mysql-test/suite directory.
+ There is one special suite name - <main|default> that corresponds
+ to the regular test suite located in the mysql-test directory.
+
+--stress-threads=<number of threads>
+ The number of threads to use in stress testing.
+
+--stress-tests-file=<filename with list of tests>
+ The file that contains the list of tests (without .test suffix) to use in
+ stress testing. The default filename is stress_tests.txt and the default
+ location of this file is suite/<suite name>/stress_tests.txt
+
+--stress-init-file=<filename with list of tests>
+ The file that contains list of tests (without .test suffix) to use in
+ stress testing for initialization of the stress db. These tests will be
+ executed only once before starting the test itself. The default filename
+ is stress_init.txt and the default location of this file is
+ suite/<suite name>/stress_init.txt
+
+--stress-mode=<method which will be used for choosing tests from the list>
+ Possible values are: random(default), seq
+
+ There are two possible modes that affect the order of test selection
+ from the list:
+ - In random mode, tests are selected in random order
+ - In seq mode, each thread executes tests in a loop one by one in
+ the order specified in the list file.
+
+--stress-test-count=<number>
+ Total number of tests that will be executed concurrently by all threads
+
+--stress-loop-count=<number>
+ Total number of loops in seq mode that will be executed concurrently
+ by all threads
+
+--stress-test-duration=<number>
+ Duration of stress testing in seconds
+
+Examples
+--------
+
+1. Example of a simple command line to start a stress test:
+
+ mysql-test-run --stress alias
+
+Runs a stress test with default values for number of threads and number
+of tests, with test 'alias' from suite 'main'.
+
+2. Using in stress testing tests from other suites:
+
+ - mysql-test-run --stress --stress-threads=10 --stress-test-count=1000 \
+ --stress-suite=example --stress-tests-file=testslist.txt
+
+ Runs a stress test with 10 threads, executes 1000 tests by all
+ threads, tests are used from suite 'example', the list of tests is
+ taken from file 'testslist.txt'
+
+ - mysql-test-run --stress --stress-threads=10 --stress-test-count=1000 \
+ --stress-suite=example sum_distinct
+
+ Runs stress test with 10 threads, executes 1000 tests by all
+ threads, tests are used from suite 'example', the list of tests
+ contains only one test 'sum_distinct'
+
+3. Debugging of issues found with stress test
+
+ Right now, the stress test is not fully integrated in mysql-test-run
+ and does not support the --gdb option. To debug issues found with the
+ stress test, you must start the MySQL server separately under a debugger
+ and then run the stress test like this:
+
+ - mysql-test-run --extern --stress --stress-threads=10 \
+ --stress-test-count=1000 --stress-suite=example \
+ sum_distinct
diff --git a/mysql-test/create-test-result b/mysql-test/create-test-result
index b9be2300976..ad19cdf08a1 100755
--- a/mysql-test/create-test-result
+++ b/mysql-test/create-test-result
@@ -6,7 +6,7 @@
# to start mysqld yourself and run mysqltest -r
RESULT_DIR=r
-if [ -z $EDITOR] ; then
+if [ -z "$EDITOR" ] ; then
EDITOR=vi
fi
@@ -24,7 +24,7 @@ function usage()
test_name=$1
-[ -z $test_name ] && usage
+[ -z "$test_name" ] && usage
result_file=$RESULT_DIR/$test_name.result
reject_file=$RESULT_DIR/$test_name.reject
diff --git a/mysql-test/include/add_anonymous_users.inc b/mysql-test/include/add_anonymous_users.inc
new file mode 100644
index 00000000000..a59aa971d59
--- /dev/null
+++ b/mysql-test/include/add_anonymous_users.inc
@@ -0,0 +1,7 @@
+# Allow anonymous users to connect
+disable_warnings;
+disable_query_log;
+INSERT INTO mysql.user (host, user) VALUES ('localhost','');
+FLUSH PRIVILEGES;
+enable_query_log;
+enable_warnings;
diff --git a/mysql-test/include/big_test.inc b/mysql-test/include/big_test.inc
new file mode 100644
index 00000000000..6b149540c96
--- /dev/null
+++ b/mysql-test/include/big_test.inc
@@ -0,0 +1,4 @@
+--require r/big_test.require
+disable_query_log;
+eval select $BIG_TEST as using_big_test;
+enable_query_log;
diff --git a/mysql-test/include/check-testcase.test b/mysql-test/include/check-testcase.test
index d67e73470b0..30cb7391f30 100644
--- a/mysql-test/include/check-testcase.test
+++ b/mysql-test/include/check-testcase.test
@@ -37,6 +37,8 @@ select * from help_keyword;
select * from help_relation;
select * from help_relation;
select * from host;
+select * from proc;
+select * from procs_priv;
select * from tables_priv;
select * from time_zone;
select * from time_zone_leap_second;
diff --git a/mysql-test/include/common-tests.inc b/mysql-test/include/common-tests.inc
new file mode 100644
index 00000000000..882ac689498
--- /dev/null
+++ b/mysql-test/include/common-tests.inc
@@ -0,0 +1,1832 @@
+#
+# This file contains a generic set of test that is run from
+# different test scripts to test for example ssl encrypted
+# and compressed connection
+#
+#
+
+#
+# Simple select test
+#
+
+--disable_warnings
+drop table if exists t1,t2,t3,t4;
+--enable_warnings
+
+CREATE TABLE t1 (
+ Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
+ Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
+);
+
+INSERT INTO t1 VALUES (9410,9412);
+
+select period from t1;
+select * from t1;
+select t1.* from t1;
+
+#
+# Create test table
+#
+
+CREATE TABLE t2 (
+ auto int not null auto_increment,
+ fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
+ companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
+ fld3 char(30) DEFAULT '' NOT NULL,
+ fld4 char(35) DEFAULT '' NOT NULL,
+ fld5 char(35) DEFAULT '' NOT NULL,
+ fld6 char(4) DEFAULT '' NOT NULL,
+ UNIQUE fld1 (fld1),
+ KEY fld3 (fld3),
+ PRIMARY KEY (auto)
+);
+
+#
+# Populate table
+#
+
+--disable_query_log
+INSERT INTO t2 VALUES (1,000001,00,'Omaha','teethe','neat','');
+INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
+INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
+INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
+INSERT INTO t2 VALUES (5,011501,37,'bewilderingly','wallet','balled','');
+INSERT INTO t2 VALUES (6,011701,37,'astound','parters','persist','W');
+INSERT INTO t2 VALUES (7,011702,37,'admonishing','eschew','attainments','');
+INSERT INTO t2 VALUES (8,011703,37,'sumac','quitter','fanatic','');
+INSERT INTO t2 VALUES (9,012001,37,'flanking','neat','measures','FAS');
+INSERT INTO t2 VALUES (10,012003,37,'combed','Steinberg','rightfulness','');
+INSERT INTO t2 VALUES (11,012004,37,'subjective','jarring','capably','');
+INSERT INTO t2 VALUES (12,012005,37,'scatterbrain','tinily','impulsive','');
+INSERT INTO t2 VALUES (13,012301,37,'Eulerian','balled','starlet','');
+INSERT INTO t2 VALUES (14,012302,36,'dubbed','persist','terminators','');
+INSERT INTO t2 VALUES (15,012303,37,'Kane','attainments','untying','');
+INSERT INTO t2 VALUES (16,012304,37,'overlay','fanatic','announces','FAS');
+INSERT INTO t2 VALUES (17,012305,37,'perturb','measures','featherweight','FAS');
+INSERT INTO t2 VALUES (18,012306,37,'goblins','rightfulness','pessimist','FAS');
+INSERT INTO t2 VALUES (19,012501,37,'annihilates','capably','daughter','');
+INSERT INTO t2 VALUES (20,012602,37,'Wotan','impulsive','decliner','FAS');
+INSERT INTO t2 VALUES (21,012603,37,'snatching','starlet','lawgiver','');
+INSERT INTO t2 VALUES (22,012604,37,'concludes','terminators','stated','');
+INSERT INTO t2 VALUES (23,012605,37,'laterally','untying','readable','');
+INSERT INTO t2 VALUES (24,012606,37,'yelped','announces','attrition','');
+INSERT INTO t2 VALUES (25,012701,37,'grazing','featherweight','cascade','FAS');
+INSERT INTO t2 VALUES (26,012702,37,'Baird','pessimist','motors','FAS');
+INSERT INTO t2 VALUES (27,012703,37,'celery','daughter','interrogate','');
+INSERT INTO t2 VALUES (28,012704,37,'misunderstander','decliner','pests','W');
+INSERT INTO t2 VALUES (29,013601,37,'handgun','lawgiver','stairway','');
+INSERT INTO t2 VALUES (30,013602,37,'foldout','stated','dopers','FAS');
+INSERT INTO t2 VALUES (31,013603,37,'mystic','readable','testicle','W');
+INSERT INTO t2 VALUES (32,013604,37,'succumbed','attrition','Parsifal','W');
+INSERT INTO t2 VALUES (33,013605,37,'Nabisco','cascade','leavings','');
+INSERT INTO t2 VALUES (34,013606,37,'fingerings','motors','postulation','W');
+INSERT INTO t2 VALUES (35,013607,37,'aging','interrogate','squeaking','');
+INSERT INTO t2 VALUES (36,013608,37,'afield','pests','contrasted','');
+INSERT INTO t2 VALUES (37,013609,37,'ammonium','stairway','leftover','');
+INSERT INTO t2 VALUES (38,013610,37,'boat','dopers','whiteners','');
+INSERT INTO t2 VALUES (39,013801,37,'intelligibility','testicle','erases','W');
+INSERT INTO t2 VALUES (40,013802,37,'Augustine','Parsifal','Punjab','W');
+INSERT INTO t2 VALUES (41,013803,37,'teethe','leavings','Merritt','');
+INSERT INTO t2 VALUES (42,013804,37,'dreaded','postulation','Quixotism','');
+INSERT INTO t2 VALUES (43,013901,37,'scholastics','squeaking','sweetish','FAS');
+INSERT INTO t2 VALUES (44,016001,37,'audiology','contrasted','dogging','FAS');
+INSERT INTO t2 VALUES (45,016201,37,'wallet','leftover','scornfully','FAS');
+INSERT INTO t2 VALUES (46,016202,37,'parters','whiteners','bellow','');
+INSERT INTO t2 VALUES (47,016301,37,'eschew','erases','bills','');
+INSERT INTO t2 VALUES (48,016302,37,'quitter','Punjab','cupboard','FAS');
+INSERT INTO t2 VALUES (49,016303,37,'neat','Merritt','sureties','FAS');
+INSERT INTO t2 VALUES (50,016304,37,'Steinberg','Quixotism','puddings','');
+INSERT INTO t2 VALUES (51,018001,37,'jarring','sweetish','tapestry','');
+INSERT INTO t2 VALUES (52,018002,37,'tinily','dogging','fetters','');
+INSERT INTO t2 VALUES (53,018003,37,'balled','scornfully','bivalves','');
+INSERT INTO t2 VALUES (54,018004,37,'persist','bellow','incurring','');
+INSERT INTO t2 VALUES (55,018005,37,'attainments','bills','Adolph','');
+INSERT INTO t2 VALUES (56,018007,37,'fanatic','cupboard','pithed','');
+INSERT INTO t2 VALUES (57,018008,37,'measures','sureties','emergency','');
+INSERT INTO t2 VALUES (58,018009,37,'rightfulness','puddings','Miles','');
+INSERT INTO t2 VALUES (59,018010,37,'capably','tapestry','trimmings','');
+INSERT INTO t2 VALUES (60,018012,37,'impulsive','fetters','tragedies','W');
+INSERT INTO t2 VALUES (61,018013,37,'starlet','bivalves','skulking','W');
+INSERT INTO t2 VALUES (62,018014,37,'terminators','incurring','flint','');
+INSERT INTO t2 VALUES (63,018015,37,'untying','Adolph','flopping','W');
+INSERT INTO t2 VALUES (64,018016,37,'announces','pithed','relaxing','FAS');
+INSERT INTO t2 VALUES (65,018017,37,'featherweight','emergency','offload','FAS');
+INSERT INTO t2 VALUES (66,018018,37,'pessimist','Miles','suites','W');
+INSERT INTO t2 VALUES (67,018019,37,'daughter','trimmings','lists','FAS');
+INSERT INTO t2 VALUES (68,018020,37,'decliner','tragedies','animized','FAS');
+INSERT INTO t2 VALUES (69,018021,37,'lawgiver','skulking','multilayer','W');
+INSERT INTO t2 VALUES (70,018022,37,'stated','flint','standardizes','FAS');
+INSERT INTO t2 VALUES (71,018023,37,'readable','flopping','Judas','');
+INSERT INTO t2 VALUES (72,018024,37,'attrition','relaxing','vacuuming','W');
+INSERT INTO t2 VALUES (73,018025,37,'cascade','offload','dentally','W');
+INSERT INTO t2 VALUES (74,018026,37,'motors','suites','humanness','W');
+INSERT INTO t2 VALUES (75,018027,37,'interrogate','lists','inch','W');
+INSERT INTO t2 VALUES (76,018028,37,'pests','animized','Weissmuller','W');
+INSERT INTO t2 VALUES (77,018029,37,'stairway','multilayer','irresponsibly','W');
+INSERT INTO t2 VALUES (78,018030,37,'dopers','standardizes','luckily','FAS');
+INSERT INTO t2 VALUES (79,018032,37,'testicle','Judas','culled','W');
+INSERT INTO t2 VALUES (80,018033,37,'Parsifal','vacuuming','medical','FAS');
+INSERT INTO t2 VALUES (81,018034,37,'leavings','dentally','bloodbath','FAS');
+INSERT INTO t2 VALUES (82,018035,37,'postulation','humanness','subschema','W');
+INSERT INTO t2 VALUES (83,018036,37,'squeaking','inch','animals','W');
+INSERT INTO t2 VALUES (84,018037,37,'contrasted','Weissmuller','Micronesia','');
+INSERT INTO t2 VALUES (85,018038,37,'leftover','irresponsibly','repetitions','');
+INSERT INTO t2 VALUES (86,018039,37,'whiteners','luckily','Antares','');
+INSERT INTO t2 VALUES (87,018040,37,'erases','culled','ventilate','W');
+INSERT INTO t2 VALUES (88,018041,37,'Punjab','medical','pityingly','');
+INSERT INTO t2 VALUES (89,018042,37,'Merritt','bloodbath','interdependent','');
+INSERT INTO t2 VALUES (90,018043,37,'Quixotism','subschema','Graves','FAS');
+INSERT INTO t2 VALUES (91,018044,37,'sweetish','animals','neonatal','');
+INSERT INTO t2 VALUES (92,018045,37,'dogging','Micronesia','scribbled','FAS');
+INSERT INTO t2 VALUES (93,018046,37,'scornfully','repetitions','chafe','W');
+INSERT INTO t2 VALUES (94,018048,37,'bellow','Antares','honoring','');
+INSERT INTO t2 VALUES (95,018049,37,'bills','ventilate','realtor','');
+INSERT INTO t2 VALUES (96,018050,37,'cupboard','pityingly','elite','');
+INSERT INTO t2 VALUES (97,018051,37,'sureties','interdependent','funereal','');
+INSERT INTO t2 VALUES (98,018052,37,'puddings','Graves','abrogating','');
+INSERT INTO t2 VALUES (99,018053,50,'tapestry','neonatal','sorters','');
+INSERT INTO t2 VALUES (100,018054,37,'fetters','scribbled','Conley','');
+INSERT INTO t2 VALUES (101,018055,37,'bivalves','chafe','lectured','');
+INSERT INTO t2 VALUES (102,018056,37,'incurring','honoring','Abraham','');
+INSERT INTO t2 VALUES (103,018057,37,'Adolph','realtor','Hawaii','W');
+INSERT INTO t2 VALUES (104,018058,37,'pithed','elite','cage','');
+INSERT INTO t2 VALUES (105,018059,36,'emergency','funereal','hushes','');
+INSERT INTO t2 VALUES (106,018060,37,'Miles','abrogating','Simla','');
+INSERT INTO t2 VALUES (107,018061,37,'trimmings','sorters','reporters','');
+INSERT INTO t2 VALUES (108,018101,37,'tragedies','Conley','Dutchman','FAS');
+INSERT INTO t2 VALUES (109,018102,37,'skulking','lectured','descendants','FAS');
+INSERT INTO t2 VALUES (110,018103,37,'flint','Abraham','groupings','FAS');
+INSERT INTO t2 VALUES (111,018104,37,'flopping','Hawaii','dissociate','');
+INSERT INTO t2 VALUES (112,018201,37,'relaxing','cage','coexist','W');
+INSERT INTO t2 VALUES (113,018202,37,'offload','hushes','Beebe','');
+INSERT INTO t2 VALUES (114,018402,37,'suites','Simla','Taoism','');
+INSERT INTO t2 VALUES (115,018403,37,'lists','reporters','Connally','');
+INSERT INTO t2 VALUES (116,018404,37,'animized','Dutchman','fetched','FAS');
+INSERT INTO t2 VALUES (117,018405,37,'multilayer','descendants','checkpoints','FAS');
+INSERT INTO t2 VALUES (118,018406,37,'standardizes','groupings','rusting','');
+INSERT INTO t2 VALUES (119,018409,37,'Judas','dissociate','galling','');
+INSERT INTO t2 VALUES (120,018601,37,'vacuuming','coexist','obliterates','');
+INSERT INTO t2 VALUES (121,018602,37,'dentally','Beebe','traitor','');
+INSERT INTO t2 VALUES (122,018603,37,'humanness','Taoism','resumes','FAS');
+INSERT INTO t2 VALUES (123,018801,37,'inch','Connally','analyzable','FAS');
+INSERT INTO t2 VALUES (124,018802,37,'Weissmuller','fetched','terminator','FAS');
+INSERT INTO t2 VALUES (125,018803,37,'irresponsibly','checkpoints','gritty','FAS');
+INSERT INTO t2 VALUES (126,018804,37,'luckily','rusting','firearm','W');
+INSERT INTO t2 VALUES (127,018805,37,'culled','galling','minima','');
+INSERT INTO t2 VALUES (128,018806,37,'medical','obliterates','Selfridge','');
+INSERT INTO t2 VALUES (129,018807,37,'bloodbath','traitor','disable','');
+INSERT INTO t2 VALUES (130,018808,37,'subschema','resumes','witchcraft','W');
+INSERT INTO t2 VALUES (131,018809,37,'animals','analyzable','betroth','W');
+INSERT INTO t2 VALUES (132,018810,37,'Micronesia','terminator','Manhattanize','');
+INSERT INTO t2 VALUES (133,018811,37,'repetitions','gritty','imprint','');
+INSERT INTO t2 VALUES (134,018812,37,'Antares','firearm','peeked','');
+INSERT INTO t2 VALUES (135,019101,37,'ventilate','minima','swelling','');
+INSERT INTO t2 VALUES (136,019102,37,'pityingly','Selfridge','interrelationships','W');
+INSERT INTO t2 VALUES (137,019103,37,'interdependent','disable','riser','');
+INSERT INTO t2 VALUES (138,019201,37,'Graves','witchcraft','Gandhian','W');
+INSERT INTO t2 VALUES (139,030501,37,'neonatal','betroth','peacock','A');
+INSERT INTO t2 VALUES (140,030502,50,'scribbled','Manhattanize','bee','A');
+INSERT INTO t2 VALUES (141,030503,37,'chafe','imprint','kanji','');
+INSERT INTO t2 VALUES (142,030504,37,'honoring','peeked','dental','');
+INSERT INTO t2 VALUES (143,031901,37,'realtor','swelling','scarf','FAS');
+INSERT INTO t2 VALUES (144,036001,37,'elite','interrelationships','chasm','A');
+INSERT INTO t2 VALUES (145,036002,37,'funereal','riser','insolence','A');
+INSERT INTO t2 VALUES (146,036004,37,'abrogating','Gandhian','syndicate','');
+INSERT INTO t2 VALUES (147,036005,37,'sorters','peacock','alike','');
+INSERT INTO t2 VALUES (148,038001,37,'Conley','bee','imperial','A');
+INSERT INTO t2 VALUES (149,038002,37,'lectured','kanji','convulsion','A');
+INSERT INTO t2 VALUES (150,038003,37,'Abraham','dental','railway','A');
+INSERT INTO t2 VALUES (151,038004,37,'Hawaii','scarf','validate','A');
+INSERT INTO t2 VALUES (152,038005,37,'cage','chasm','normalizes','A');
+INSERT INTO t2 VALUES (153,038006,37,'hushes','insolence','comprehensive','');
+INSERT INTO t2 VALUES (154,038007,37,'Simla','syndicate','chewing','');
+INSERT INTO t2 VALUES (155,038008,37,'reporters','alike','denizen','');
+INSERT INTO t2 VALUES (156,038009,37,'Dutchman','imperial','schemer','');
+INSERT INTO t2 VALUES (157,038010,37,'descendants','convulsion','chronicle','');
+INSERT INTO t2 VALUES (158,038011,37,'groupings','railway','Kline','');
+INSERT INTO t2 VALUES (159,038012,37,'dissociate','validate','Anatole','');
+INSERT INTO t2 VALUES (160,038013,37,'coexist','normalizes','partridges','');
+INSERT INTO t2 VALUES (161,038014,37,'Beebe','comprehensive','brunch','');
+INSERT INTO t2 VALUES (162,038015,37,'Taoism','chewing','recruited','');
+INSERT INTO t2 VALUES (163,038016,37,'Connally','denizen','dimensions','W');
+INSERT INTO t2 VALUES (164,038017,37,'fetched','schemer','Chicana','W');
+INSERT INTO t2 VALUES (165,038018,37,'checkpoints','chronicle','announced','');
+INSERT INTO t2 VALUES (166,038101,37,'rusting','Kline','praised','FAS');
+INSERT INTO t2 VALUES (167,038102,37,'galling','Anatole','employing','');
+INSERT INTO t2 VALUES (168,038103,37,'obliterates','partridges','linear','');
+INSERT INTO t2 VALUES (169,038104,37,'traitor','brunch','quagmire','');
+INSERT INTO t2 VALUES (170,038201,37,'resumes','recruited','western','A');
+INSERT INTO t2 VALUES (171,038202,37,'analyzable','dimensions','relishing','');
+INSERT INTO t2 VALUES (172,038203,37,'terminator','Chicana','serving','A');
+INSERT INTO t2 VALUES (173,038204,37,'gritty','announced','scheduling','');
+INSERT INTO t2 VALUES (174,038205,37,'firearm','praised','lore','');
+INSERT INTO t2 VALUES (175,038206,37,'minima','employing','eventful','');
+INSERT INTO t2 VALUES (176,038208,37,'Selfridge','linear','arteriole','A');
+INSERT INTO t2 VALUES (177,042801,37,'disable','quagmire','disentangle','');
+INSERT INTO t2 VALUES (178,042802,37,'witchcraft','western','cured','A');
+INSERT INTO t2 VALUES (179,046101,37,'betroth','relishing','Fenton','W');
+INSERT INTO t2 VALUES (180,048001,37,'Manhattanize','serving','avoidable','A');
+INSERT INTO t2 VALUES (181,048002,37,'imprint','scheduling','drains','A');
+INSERT INTO t2 VALUES (182,048003,37,'peeked','lore','detectably','FAS');
+INSERT INTO t2 VALUES (183,048004,37,'swelling','eventful','husky','');
+INSERT INTO t2 VALUES (184,048005,37,'interrelationships','arteriole','impelling','');
+INSERT INTO t2 VALUES (185,048006,37,'riser','disentangle','undoes','');
+INSERT INTO t2 VALUES (186,048007,37,'Gandhian','cured','evened','');
+INSERT INTO t2 VALUES (187,048008,37,'peacock','Fenton','squeezes','');
+INSERT INTO t2 VALUES (188,048101,37,'bee','avoidable','destroyer','FAS');
+INSERT INTO t2 VALUES (189,048102,37,'kanji','drains','rudeness','');
+INSERT INTO t2 VALUES (190,048201,37,'dental','detectably','beaner','FAS');
+INSERT INTO t2 VALUES (191,048202,37,'scarf','husky','boorish','');
+INSERT INTO t2 VALUES (192,048203,37,'chasm','impelling','Everhart','');
+INSERT INTO t2 VALUES (193,048204,37,'insolence','undoes','encompass','A');
+INSERT INTO t2 VALUES (194,048205,37,'syndicate','evened','mushrooms','');
+INSERT INTO t2 VALUES (195,048301,37,'alike','squeezes','Alison','A');
+INSERT INTO t2 VALUES (196,048302,37,'imperial','destroyer','externally','FAS');
+INSERT INTO t2 VALUES (197,048303,37,'convulsion','rudeness','pellagra','');
+INSERT INTO t2 VALUES (198,048304,37,'railway','beaner','cult','');
+INSERT INTO t2 VALUES (199,048305,37,'validate','boorish','creek','A');
+INSERT INTO t2 VALUES (200,048401,37,'normalizes','Everhart','Huffman','');
+INSERT INTO t2 VALUES (201,048402,37,'comprehensive','encompass','Majorca','FAS');
+INSERT INTO t2 VALUES (202,048403,37,'chewing','mushrooms','governing','A');
+INSERT INTO t2 VALUES (203,048404,37,'denizen','Alison','gadfly','FAS');
+INSERT INTO t2 VALUES (204,048405,37,'schemer','externally','reassigned','FAS');
+INSERT INTO t2 VALUES (205,048406,37,'chronicle','pellagra','intentness','W');
+INSERT INTO t2 VALUES (206,048407,37,'Kline','cult','craziness','');
+INSERT INTO t2 VALUES (207,048408,37,'Anatole','creek','psychic','');
+INSERT INTO t2 VALUES (208,048409,37,'partridges','Huffman','squabbled','');
+INSERT INTO t2 VALUES (209,048410,37,'brunch','Majorca','burlesque','');
+INSERT INTO t2 VALUES (210,048411,37,'recruited','governing','capped','');
+INSERT INTO t2 VALUES (211,048412,37,'dimensions','gadfly','extracted','A');
+INSERT INTO t2 VALUES (212,048413,37,'Chicana','reassigned','DiMaggio','');
+INSERT INTO t2 VALUES (213,048601,37,'announced','intentness','exclamation','FAS');
+INSERT INTO t2 VALUES (214,048602,37,'praised','craziness','subdirectory','');
+INSERT INTO t2 VALUES (215,048603,37,'employing','psychic','fangs','');
+INSERT INTO t2 VALUES (216,048604,37,'linear','squabbled','buyer','A');
+INSERT INTO t2 VALUES (217,048801,37,'quagmire','burlesque','pithing','A');
+INSERT INTO t2 VALUES (218,050901,37,'western','capped','transistorizing','A');
+INSERT INTO t2 VALUES (219,051201,37,'relishing','extracted','nonbiodegradable','');
+INSERT INTO t2 VALUES (220,056002,37,'serving','DiMaggio','dislocate','');
+INSERT INTO t2 VALUES (221,056003,37,'scheduling','exclamation','monochromatic','FAS');
+INSERT INTO t2 VALUES (222,056004,37,'lore','subdirectory','batting','');
+INSERT INTO t2 VALUES (223,056102,37,'eventful','fangs','postcondition','A');
+INSERT INTO t2 VALUES (224,056203,37,'arteriole','buyer','catalog','FAS');
+INSERT INTO t2 VALUES (225,056204,37,'disentangle','pithing','Remus','');
+INSERT INTO t2 VALUES (226,058003,37,'cured','transistorizing','devices','A');
+INSERT INTO t2 VALUES (227,058004,37,'Fenton','nonbiodegradable','bike','A');
+INSERT INTO t2 VALUES (228,058005,37,'avoidable','dislocate','qualify','');
+INSERT INTO t2 VALUES (229,058006,37,'drains','monochromatic','detained','');
+INSERT INTO t2 VALUES (230,058007,37,'detectably','batting','commended','');
+INSERT INTO t2 VALUES (231,058101,37,'husky','postcondition','civilize','');
+INSERT INTO t2 VALUES (232,058102,37,'impelling','catalog','Elmhurst','');
+INSERT INTO t2 VALUES (233,058103,37,'undoes','Remus','anesthetizing','');
+INSERT INTO t2 VALUES (234,058105,37,'evened','devices','deaf','');
+INSERT INTO t2 VALUES (235,058111,37,'squeezes','bike','Brigham','');
+INSERT INTO t2 VALUES (236,058112,37,'destroyer','qualify','title','');
+INSERT INTO t2 VALUES (237,058113,37,'rudeness','detained','coarse','');
+INSERT INTO t2 VALUES (238,058114,37,'beaner','commended','combinations','');
+INSERT INTO t2 VALUES (239,058115,37,'boorish','civilize','grayness','');
+INSERT INTO t2 VALUES (240,058116,37,'Everhart','Elmhurst','innumerable','FAS');
+INSERT INTO t2 VALUES (241,058117,37,'encompass','anesthetizing','Caroline','A');
+INSERT INTO t2 VALUES (242,058118,37,'mushrooms','deaf','fatty','FAS');
+INSERT INTO t2 VALUES (243,058119,37,'Alison','Brigham','eastbound','');
+INSERT INTO t2 VALUES (244,058120,37,'externally','title','inexperienced','');
+INSERT INTO t2 VALUES (245,058121,37,'pellagra','coarse','hoarder','A');
+INSERT INTO t2 VALUES (246,058122,37,'cult','combinations','scotch','W');
+INSERT INTO t2 VALUES (247,058123,37,'creek','grayness','passport','A');
+INSERT INTO t2 VALUES (248,058124,37,'Huffman','innumerable','strategic','FAS');
+INSERT INTO t2 VALUES (249,058125,37,'Majorca','Caroline','gated','');
+INSERT INTO t2 VALUES (250,058126,37,'governing','fatty','flog','');
+INSERT INTO t2 VALUES (251,058127,37,'gadfly','eastbound','Pipestone','');
+INSERT INTO t2 VALUES (252,058128,37,'reassigned','inexperienced','Dar','');
+INSERT INTO t2 VALUES (253,058201,37,'intentness','hoarder','Corcoran','');
+INSERT INTO t2 VALUES (254,058202,37,'craziness','scotch','flyers','A');
+INSERT INTO t2 VALUES (255,058303,37,'psychic','passport','competitions','W');
+INSERT INTO t2 VALUES (256,058304,37,'squabbled','strategic','suppliers','FAS');
+INSERT INTO t2 VALUES (257,058602,37,'burlesque','gated','skips','');
+INSERT INTO t2 VALUES (258,058603,37,'capped','flog','institutes','');
+INSERT INTO t2 VALUES (259,058604,37,'extracted','Pipestone','troop','A');
+INSERT INTO t2 VALUES (260,058605,37,'DiMaggio','Dar','connective','W');
+INSERT INTO t2 VALUES (261,058606,37,'exclamation','Corcoran','denies','');
+INSERT INTO t2 VALUES (262,058607,37,'subdirectory','flyers','polka','');
+INSERT INTO t2 VALUES (263,060401,36,'fangs','competitions','observations','FAS');
+INSERT INTO t2 VALUES (264,061701,36,'buyer','suppliers','askers','');
+INSERT INTO t2 VALUES (265,066201,36,'pithing','skips','homeless','FAS');
+INSERT INTO t2 VALUES (266,066501,36,'transistorizing','institutes','Anna','');
+INSERT INTO t2 VALUES (267,068001,36,'nonbiodegradable','troop','subdirectories','W');
+INSERT INTO t2 VALUES (268,068002,36,'dislocate','connective','decaying','FAS');
+INSERT INTO t2 VALUES (269,068005,36,'monochromatic','denies','outwitting','W');
+INSERT INTO t2 VALUES (270,068006,36,'batting','polka','Harpy','W');
+INSERT INTO t2 VALUES (271,068007,36,'postcondition','observations','crazed','');
+INSERT INTO t2 VALUES (272,068008,36,'catalog','askers','suffocate','');
+INSERT INTO t2 VALUES (273,068009,36,'Remus','homeless','provers','FAS');
+INSERT INTO t2 VALUES (274,068010,36,'devices','Anna','technically','');
+INSERT INTO t2 VALUES (275,068011,36,'bike','subdirectories','Franklinizations','');
+INSERT INTO t2 VALUES (276,068202,36,'qualify','decaying','considered','');
+INSERT INTO t2 VALUES (277,068302,36,'detained','outwitting','tinnily','');
+INSERT INTO t2 VALUES (278,068303,36,'commended','Harpy','uninterruptedly','');
+INSERT INTO t2 VALUES (279,068401,36,'civilize','crazed','whistled','A');
+INSERT INTO t2 VALUES (280,068501,36,'Elmhurst','suffocate','automate','');
+INSERT INTO t2 VALUES (281,068502,36,'anesthetizing','provers','gutting','W');
+INSERT INTO t2 VALUES (282,068503,36,'deaf','technically','surreptitious','');
+INSERT INTO t2 VALUES (283,068602,36,'Brigham','Franklinizations','Choctaw','');
+INSERT INTO t2 VALUES (284,068603,36,'title','considered','cooks','');
+INSERT INTO t2 VALUES (285,068701,36,'coarse','tinnily','millivolt','FAS');
+INSERT INTO t2 VALUES (286,068702,36,'combinations','uninterruptedly','counterpoise','');
+INSERT INTO t2 VALUES (287,068703,36,'grayness','whistled','Gothicism','');
+INSERT INTO t2 VALUES (288,076001,36,'innumerable','automate','feminine','');
+INSERT INTO t2 VALUES (289,076002,36,'Caroline','gutting','metaphysically','W');
+INSERT INTO t2 VALUES (290,076101,36,'fatty','surreptitious','sanding','A');
+INSERT INTO t2 VALUES (291,076102,36,'eastbound','Choctaw','contributorily','');
+INSERT INTO t2 VALUES (292,076103,36,'inexperienced','cooks','receivers','FAS');
+INSERT INTO t2 VALUES (293,076302,36,'hoarder','millivolt','adjourn','');
+INSERT INTO t2 VALUES (294,076303,36,'scotch','counterpoise','straggled','A');
+INSERT INTO t2 VALUES (295,076304,36,'passport','Gothicism','druggists','');
+INSERT INTO t2 VALUES (296,076305,36,'strategic','feminine','thanking','FAS');
+INSERT INTO t2 VALUES (297,076306,36,'gated','metaphysically','ostrich','');
+INSERT INTO t2 VALUES (298,076307,36,'flog','sanding','hopelessness','FAS');
+INSERT INTO t2 VALUES (299,076402,36,'Pipestone','contributorily','Eurydice','');
+INSERT INTO t2 VALUES (300,076501,36,'Dar','receivers','excitation','W');
+INSERT INTO t2 VALUES (301,076502,36,'Corcoran','adjourn','presumes','FAS');
+INSERT INTO t2 VALUES (302,076701,36,'flyers','straggled','imaginable','FAS');
+INSERT INTO t2 VALUES (303,078001,36,'competitions','druggists','concoct','W');
+INSERT INTO t2 VALUES (304,078002,36,'suppliers','thanking','peering','W');
+INSERT INTO t2 VALUES (305,078003,36,'skips','ostrich','Phelps','FAS');
+INSERT INTO t2 VALUES (306,078004,36,'institutes','hopelessness','ferociousness','FAS');
+INSERT INTO t2 VALUES (307,078005,36,'troop','Eurydice','sentences','');
+INSERT INTO t2 VALUES (308,078006,36,'connective','excitation','unlocks','');
+INSERT INTO t2 VALUES (309,078007,36,'denies','presumes','engrossing','W');
+INSERT INTO t2 VALUES (310,078008,36,'polka','imaginable','Ruth','');
+INSERT INTO t2 VALUES (311,078101,36,'observations','concoct','tying','');
+INSERT INTO t2 VALUES (312,078103,36,'askers','peering','exclaimers','');
+INSERT INTO t2 VALUES (313,078104,36,'homeless','Phelps','synergy','');
+INSERT INTO t2 VALUES (314,078105,36,'Anna','ferociousness','Huey','W');
+INSERT INTO t2 VALUES (315,082101,36,'subdirectories','sentences','merging','');
+INSERT INTO t2 VALUES (316,083401,36,'decaying','unlocks','judges','A');
+INSERT INTO t2 VALUES (317,084001,36,'outwitting','engrossing','Shylock','W');
+INSERT INTO t2 VALUES (318,084002,36,'Harpy','Ruth','Miltonism','');
+INSERT INTO t2 VALUES (319,086001,36,'crazed','tying','hen','W');
+INSERT INTO t2 VALUES (320,086102,36,'suffocate','exclaimers','honeybee','FAS');
+INSERT INTO t2 VALUES (321,086201,36,'provers','synergy','towers','');
+INSERT INTO t2 VALUES (322,088001,36,'technically','Huey','dilutes','W');
+INSERT INTO t2 VALUES (323,088002,36,'Franklinizations','merging','numerals','FAS');
+INSERT INTO t2 VALUES (324,088003,36,'considered','judges','democracy','FAS');
+INSERT INTO t2 VALUES (325,088004,36,'tinnily','Shylock','Ibero-','');
+INSERT INTO t2 VALUES (326,088101,36,'uninterruptedly','Miltonism','invalids','');
+INSERT INTO t2 VALUES (327,088102,36,'whistled','hen','behavior','');
+INSERT INTO t2 VALUES (328,088103,36,'automate','honeybee','accruing','');
+INSERT INTO t2 VALUES (329,088104,36,'gutting','towers','relics','A');
+INSERT INTO t2 VALUES (330,088105,36,'surreptitious','dilutes','rackets','');
+INSERT INTO t2 VALUES (331,088106,36,'Choctaw','numerals','Fischbein','W');
+INSERT INTO t2 VALUES (332,088201,36,'cooks','democracy','phony','W');
+INSERT INTO t2 VALUES (333,088203,36,'millivolt','Ibero-','cross','FAS');
+INSERT INTO t2 VALUES (334,088204,36,'counterpoise','invalids','cleanup','');
+INSERT INTO t2 VALUES (335,088302,37,'Gothicism','behavior','conspirator','');
+INSERT INTO t2 VALUES (336,088303,37,'feminine','accruing','label','FAS');
+INSERT INTO t2 VALUES (337,088305,37,'metaphysically','relics','university','');
+INSERT INTO t2 VALUES (338,088402,37,'sanding','rackets','cleansed','FAS');
+INSERT INTO t2 VALUES (339,088501,36,'contributorily','Fischbein','ballgown','');
+INSERT INTO t2 VALUES (340,088502,36,'receivers','phony','starlet','');
+INSERT INTO t2 VALUES (341,088503,36,'adjourn','cross','aqueous','');
+INSERT INTO t2 VALUES (342,098001,58,'straggled','cleanup','portrayal','A');
+INSERT INTO t2 VALUES (343,098002,58,'druggists','conspirator','despising','W');
+INSERT INTO t2 VALUES (344,098003,58,'thanking','label','distort','W');
+INSERT INTO t2 VALUES (345,098004,58,'ostrich','university','palmed','');
+INSERT INTO t2 VALUES (346,098005,58,'hopelessness','cleansed','faced','');
+INSERT INTO t2 VALUES (347,098006,58,'Eurydice','ballgown','silverware','');
+INSERT INTO t2 VALUES (348,141903,29,'excitation','starlet','assessor','');
+INSERT INTO t2 VALUES (349,098008,58,'presumes','aqueous','spiders','');
+INSERT INTO t2 VALUES (350,098009,58,'imaginable','portrayal','artificially','');
+INSERT INTO t2 VALUES (351,098010,58,'concoct','despising','reminiscence','');
+INSERT INTO t2 VALUES (352,098011,58,'peering','distort','Mexican','');
+INSERT INTO t2 VALUES (353,098012,58,'Phelps','palmed','obnoxious','');
+INSERT INTO t2 VALUES (354,098013,58,'ferociousness','faced','fragile','');
+INSERT INTO t2 VALUES (355,098014,58,'sentences','silverware','apprehensible','');
+INSERT INTO t2 VALUES (356,098015,58,'unlocks','assessor','births','');
+INSERT INTO t2 VALUES (357,098016,58,'engrossing','spiders','garages','');
+INSERT INTO t2 VALUES (358,098017,58,'Ruth','artificially','panty','');
+INSERT INTO t2 VALUES (359,098018,58,'tying','reminiscence','anteater','');
+INSERT INTO t2 VALUES (360,098019,58,'exclaimers','Mexican','displacement','A');
+INSERT INTO t2 VALUES (361,098020,58,'synergy','obnoxious','drovers','A');
+INSERT INTO t2 VALUES (362,098021,58,'Huey','fragile','patenting','A');
+INSERT INTO t2 VALUES (363,098022,58,'merging','apprehensible','far','A');
+INSERT INTO t2 VALUES (364,098023,58,'judges','births','shrieks','');
+INSERT INTO t2 VALUES (365,098024,58,'Shylock','garages','aligning','W');
+INSERT INTO t2 VALUES (366,098025,37,'Miltonism','panty','pragmatism','');
+INSERT INTO t2 VALUES (367,106001,36,'hen','anteater','fevers','W');
+INSERT INTO t2 VALUES (368,108001,36,'honeybee','displacement','reexamines','A');
+INSERT INTO t2 VALUES (369,108002,36,'towers','drovers','occupancies','');
+INSERT INTO t2 VALUES (370,108003,36,'dilutes','patenting','sweats','FAS');
+INSERT INTO t2 VALUES (371,108004,36,'numerals','far','modulators','');
+INSERT INTO t2 VALUES (372,108005,36,'democracy','shrieks','demand','W');
+INSERT INTO t2 VALUES (373,108007,36,'Ibero-','aligning','Madeira','');
+INSERT INTO t2 VALUES (374,108008,36,'invalids','pragmatism','Viennese','W');
+INSERT INTO t2 VALUES (375,108009,36,'behavior','fevers','chillier','W');
+INSERT INTO t2 VALUES (376,108010,36,'accruing','reexamines','wildcats','FAS');
+INSERT INTO t2 VALUES (377,108011,36,'relics','occupancies','gentle','');
+INSERT INTO t2 VALUES (378,108012,36,'rackets','sweats','Angles','W');
+INSERT INTO t2 VALUES (379,108101,36,'Fischbein','modulators','accuracies','');
+INSERT INTO t2 VALUES (380,108102,36,'phony','demand','toggle','');
+INSERT INTO t2 VALUES (381,108103,36,'cross','Madeira','Mendelssohn','W');
+INSERT INTO t2 VALUES (382,108111,50,'cleanup','Viennese','behaviorally','');
+INSERT INTO t2 VALUES (383,108105,36,'conspirator','chillier','Rochford','');
+INSERT INTO t2 VALUES (384,108106,36,'label','wildcats','mirror','W');
+INSERT INTO t2 VALUES (385,108107,36,'university','gentle','Modula','');
+INSERT INTO t2 VALUES (386,108108,50,'cleansed','Angles','clobbering','');
+INSERT INTO t2 VALUES (387,108109,36,'ballgown','accuracies','chronography','');
+INSERT INTO t2 VALUES (388,108110,36,'starlet','toggle','Eskimoizeds','');
+INSERT INTO t2 VALUES (389,108201,36,'aqueous','Mendelssohn','British','W');
+INSERT INTO t2 VALUES (390,108202,36,'portrayal','behaviorally','pitfalls','');
+INSERT INTO t2 VALUES (391,108203,36,'despising','Rochford','verify','W');
+INSERT INTO t2 VALUES (392,108204,36,'distort','mirror','scatter','FAS');
+INSERT INTO t2 VALUES (393,108205,36,'palmed','Modula','Aztecan','');
+INSERT INTO t2 VALUES (394,108301,36,'faced','clobbering','acuity','W');
+INSERT INTO t2 VALUES (395,108302,36,'silverware','chronography','sinking','W');
+INSERT INTO t2 VALUES (396,112101,36,'assessor','Eskimoizeds','beasts','FAS');
+INSERT INTO t2 VALUES (397,112102,36,'spiders','British','Witt','W');
+INSERT INTO t2 VALUES (398,113701,36,'artificially','pitfalls','physicists','FAS');
+INSERT INTO t2 VALUES (399,116001,36,'reminiscence','verify','folksong','A');
+INSERT INTO t2 VALUES (400,116201,36,'Mexican','scatter','strokes','FAS');
+INSERT INTO t2 VALUES (401,116301,36,'obnoxious','Aztecan','crowder','');
+INSERT INTO t2 VALUES (402,116302,36,'fragile','acuity','merry','');
+INSERT INTO t2 VALUES (403,116601,36,'apprehensible','sinking','cadenced','');
+INSERT INTO t2 VALUES (404,116602,36,'births','beasts','alimony','A');
+INSERT INTO t2 VALUES (405,116603,36,'garages','Witt','principled','A');
+INSERT INTO t2 VALUES (406,116701,36,'panty','physicists','golfing','');
+INSERT INTO t2 VALUES (407,116702,36,'anteater','folksong','undiscovered','');
+INSERT INTO t2 VALUES (408,118001,36,'displacement','strokes','irritates','');
+INSERT INTO t2 VALUES (409,118002,36,'drovers','crowder','patriots','A');
+INSERT INTO t2 VALUES (410,118003,36,'patenting','merry','rooms','FAS');
+INSERT INTO t2 VALUES (411,118004,36,'far','cadenced','towering','W');
+INSERT INTO t2 VALUES (412,118005,36,'shrieks','alimony','displease','');
+INSERT INTO t2 VALUES (413,118006,36,'aligning','principled','photosensitive','');
+INSERT INTO t2 VALUES (414,118007,36,'pragmatism','golfing','inking','');
+INSERT INTO t2 VALUES (415,118008,36,'fevers','undiscovered','gainers','');
+INSERT INTO t2 VALUES (416,118101,36,'reexamines','irritates','leaning','A');
+INSERT INTO t2 VALUES (417,118102,36,'occupancies','patriots','hydrant','A');
+INSERT INTO t2 VALUES (418,118103,36,'sweats','rooms','preserve','');
+INSERT INTO t2 VALUES (419,118202,36,'modulators','towering','blinded','A');
+INSERT INTO t2 VALUES (420,118203,36,'demand','displease','interactions','A');
+INSERT INTO t2 VALUES (421,118204,36,'Madeira','photosensitive','Barry','');
+INSERT INTO t2 VALUES (422,118302,36,'Viennese','inking','whiteness','A');
+INSERT INTO t2 VALUES (423,118304,36,'chillier','gainers','pastimes','W');
+INSERT INTO t2 VALUES (424,118305,36,'wildcats','leaning','Edenization','');
+INSERT INTO t2 VALUES (425,118306,36,'gentle','hydrant','Muscat','');
+INSERT INTO t2 VALUES (426,118307,36,'Angles','preserve','assassinated','');
+INSERT INTO t2 VALUES (427,123101,36,'accuracies','blinded','labeled','');
+INSERT INTO t2 VALUES (428,123102,36,'toggle','interactions','glacial','A');
+INSERT INTO t2 VALUES (429,123301,36,'Mendelssohn','Barry','implied','W');
+INSERT INTO t2 VALUES (430,126001,36,'behaviorally','whiteness','bibliographies','W');
+INSERT INTO t2 VALUES (431,126002,36,'Rochford','pastimes','Buchanan','');
+INSERT INTO t2 VALUES (432,126003,36,'mirror','Edenization','forgivably','FAS');
+INSERT INTO t2 VALUES (433,126101,36,'Modula','Muscat','innuendo','A');
+INSERT INTO t2 VALUES (434,126301,36,'clobbering','assassinated','den','FAS');
+INSERT INTO t2 VALUES (435,126302,36,'chronography','labeled','submarines','W');
+INSERT INTO t2 VALUES (436,126402,36,'Eskimoizeds','glacial','mouthful','A');
+INSERT INTO t2 VALUES (437,126601,36,'British','implied','expiring','');
+INSERT INTO t2 VALUES (438,126602,36,'pitfalls','bibliographies','unfulfilled','FAS');
+INSERT INTO t2 VALUES (439,126702,36,'verify','Buchanan','precession','');
+INSERT INTO t2 VALUES (440,128001,36,'scatter','forgivably','nullified','');
+INSERT INTO t2 VALUES (441,128002,36,'Aztecan','innuendo','affects','');
+INSERT INTO t2 VALUES (442,128003,36,'acuity','den','Cynthia','');
+INSERT INTO t2 VALUES (443,128004,36,'sinking','submarines','Chablis','A');
+INSERT INTO t2 VALUES (444,128005,36,'beasts','mouthful','betterments','FAS');
+INSERT INTO t2 VALUES (445,128007,36,'Witt','expiring','advertising','');
+INSERT INTO t2 VALUES (446,128008,36,'physicists','unfulfilled','rubies','A');
+INSERT INTO t2 VALUES (447,128009,36,'folksong','precession','southwest','FAS');
+INSERT INTO t2 VALUES (448,128010,36,'strokes','nullified','superstitious','A');
+INSERT INTO t2 VALUES (449,128011,36,'crowder','affects','tabernacle','W');
+INSERT INTO t2 VALUES (450,128012,36,'merry','Cynthia','silk','A');
+INSERT INTO t2 VALUES (451,128013,36,'cadenced','Chablis','handsomest','A');
+INSERT INTO t2 VALUES (452,128014,36,'alimony','betterments','Persian','A');
+INSERT INTO t2 VALUES (453,128015,36,'principled','advertising','analog','W');
+INSERT INTO t2 VALUES (454,128016,36,'golfing','rubies','complex','W');
+INSERT INTO t2 VALUES (455,128017,36,'undiscovered','southwest','Taoist','');
+INSERT INTO t2 VALUES (456,128018,36,'irritates','superstitious','suspend','');
+INSERT INTO t2 VALUES (457,128019,36,'patriots','tabernacle','relegated','');
+INSERT INTO t2 VALUES (458,128020,36,'rooms','silk','awesome','W');
+INSERT INTO t2 VALUES (459,128021,36,'towering','handsomest','Bruxelles','');
+INSERT INTO t2 VALUES (460,128022,36,'displease','Persian','imprecisely','A');
+INSERT INTO t2 VALUES (461,128023,36,'photosensitive','analog','televise','');
+INSERT INTO t2 VALUES (462,128101,36,'inking','complex','braking','');
+INSERT INTO t2 VALUES (463,128102,36,'gainers','Taoist','true','FAS');
+INSERT INTO t2 VALUES (464,128103,36,'leaning','suspend','disappointing','FAS');
+INSERT INTO t2 VALUES (465,128104,36,'hydrant','relegated','navally','W');
+INSERT INTO t2 VALUES (466,128106,36,'preserve','awesome','circus','');
+INSERT INTO t2 VALUES (467,128107,36,'blinded','Bruxelles','beetles','');
+INSERT INTO t2 VALUES (468,128108,36,'interactions','imprecisely','trumps','');
+INSERT INTO t2 VALUES (469,128202,36,'Barry','televise','fourscore','W');
+INSERT INTO t2 VALUES (470,128203,36,'whiteness','braking','Blackfoots','');
+INSERT INTO t2 VALUES (471,128301,36,'pastimes','true','Grady','');
+INSERT INTO t2 VALUES (472,128302,36,'Edenization','disappointing','quiets','FAS');
+INSERT INTO t2 VALUES (473,128303,36,'Muscat','navally','floundered','FAS');
+INSERT INTO t2 VALUES (474,128304,36,'assassinated','circus','profundity','W');
+INSERT INTO t2 VALUES (475,128305,36,'labeled','beetles','Garrisonian','W');
+INSERT INTO t2 VALUES (476,128307,36,'glacial','trumps','Strauss','');
+INSERT INTO t2 VALUES (477,128401,36,'implied','fourscore','cemented','FAS');
+INSERT INTO t2 VALUES (478,128502,36,'bibliographies','Blackfoots','contrition','A');
+INSERT INTO t2 VALUES (479,128503,36,'Buchanan','Grady','mutations','');
+INSERT INTO t2 VALUES (480,128504,36,'forgivably','quiets','exhibits','W');
+INSERT INTO t2 VALUES (481,128505,36,'innuendo','floundered','tits','');
+INSERT INTO t2 VALUES (482,128601,36,'den','profundity','mate','A');
+INSERT INTO t2 VALUES (483,128603,36,'submarines','Garrisonian','arches','');
+INSERT INTO t2 VALUES (484,128604,36,'mouthful','Strauss','Moll','');
+INSERT INTO t2 VALUES (485,128702,36,'expiring','cemented','ropers','');
+INSERT INTO t2 VALUES (486,128703,36,'unfulfilled','contrition','bombast','');
+INSERT INTO t2 VALUES (487,128704,36,'precession','mutations','difficultly','A');
+INSERT INTO t2 VALUES (488,138001,36,'nullified','exhibits','adsorption','');
+INSERT INTO t2 VALUES (489,138002,36,'affects','tits','definiteness','FAS');
+INSERT INTO t2 VALUES (490,138003,36,'Cynthia','mate','cultivation','A');
+INSERT INTO t2 VALUES (491,138004,36,'Chablis','arches','heals','A');
+INSERT INTO t2 VALUES (492,138005,36,'betterments','Moll','Heusen','W');
+INSERT INTO t2 VALUES (493,138006,36,'advertising','ropers','target','FAS');
+INSERT INTO t2 VALUES (494,138007,36,'rubies','bombast','cited','A');
+INSERT INTO t2 VALUES (495,138008,36,'southwest','difficultly','congresswoman','W');
+INSERT INTO t2 VALUES (496,138009,36,'superstitious','adsorption','Katherine','');
+INSERT INTO t2 VALUES (497,138102,36,'tabernacle','definiteness','titter','A');
+INSERT INTO t2 VALUES (498,138103,36,'silk','cultivation','aspire','A');
+INSERT INTO t2 VALUES (499,138104,36,'handsomest','heals','Mardis','');
+INSERT INTO t2 VALUES (500,138105,36,'Persian','Heusen','Nadia','W');
+INSERT INTO t2 VALUES (501,138201,36,'analog','target','estimating','FAS');
+INSERT INTO t2 VALUES (502,138302,36,'complex','cited','stuck','A');
+INSERT INTO t2 VALUES (503,138303,36,'Taoist','congresswoman','fifteenth','A');
+INSERT INTO t2 VALUES (504,138304,36,'suspend','Katherine','Colombo','');
+INSERT INTO t2 VALUES (505,138401,29,'relegated','titter','survey','A');
+INSERT INTO t2 VALUES (506,140102,29,'awesome','aspire','staffing','');
+INSERT INTO t2 VALUES (507,140103,29,'Bruxelles','Mardis','obtain','');
+INSERT INTO t2 VALUES (508,140104,29,'imprecisely','Nadia','loaded','');
+INSERT INTO t2 VALUES (509,140105,29,'televise','estimating','slaughtered','');
+INSERT INTO t2 VALUES (510,140201,29,'braking','stuck','lights','A');
+INSERT INTO t2 VALUES (511,140701,29,'true','fifteenth','circumference','');
+INSERT INTO t2 VALUES (512,141501,29,'disappointing','Colombo','dull','A');
+INSERT INTO t2 VALUES (513,141502,29,'navally','survey','weekly','A');
+INSERT INTO t2 VALUES (514,141901,29,'circus','staffing','wetness','');
+INSERT INTO t2 VALUES (515,141902,29,'beetles','obtain','visualized','');
+INSERT INTO t2 VALUES (516,142101,29,'trumps','loaded','Tannenbaum','');
+INSERT INTO t2 VALUES (517,142102,29,'fourscore','slaughtered','moribund','');
+INSERT INTO t2 VALUES (518,142103,29,'Blackfoots','lights','demultiplex','');
+INSERT INTO t2 VALUES (519,142701,29,'Grady','circumference','lockings','');
+INSERT INTO t2 VALUES (520,143001,29,'quiets','dull','thugs','FAS');
+INSERT INTO t2 VALUES (521,143501,29,'floundered','weekly','unnerves','');
+INSERT INTO t2 VALUES (522,143502,29,'profundity','wetness','abut','');
+INSERT INTO t2 VALUES (523,148001,29,'Garrisonian','visualized','Chippewa','A');
+INSERT INTO t2 VALUES (524,148002,29,'Strauss','Tannenbaum','stratifications','A');
+INSERT INTO t2 VALUES (525,148003,29,'cemented','moribund','signaled','');
+INSERT INTO t2 VALUES (526,148004,29,'contrition','demultiplex','Italianizes','A');
+INSERT INTO t2 VALUES (527,148005,29,'mutations','lockings','algorithmic','A');
+INSERT INTO t2 VALUES (528,148006,29,'exhibits','thugs','paranoid','FAS');
+INSERT INTO t2 VALUES (529,148007,29,'tits','unnerves','camping','A');
+INSERT INTO t2 VALUES (530,148009,29,'mate','abut','signifying','A');
+INSERT INTO t2 VALUES (531,148010,29,'arches','Chippewa','Patrice','W');
+INSERT INTO t2 VALUES (532,148011,29,'Moll','stratifications','search','A');
+INSERT INTO t2 VALUES (533,148012,29,'ropers','signaled','Angeles','A');
+INSERT INTO t2 VALUES (534,148013,29,'bombast','Italianizes','semblance','');
+INSERT INTO t2 VALUES (535,148023,36,'difficultly','algorithmic','taxed','');
+INSERT INTO t2 VALUES (536,148015,29,'adsorption','paranoid','Beatrice','');
+INSERT INTO t2 VALUES (537,148016,29,'definiteness','camping','retrace','');
+INSERT INTO t2 VALUES (538,148017,29,'cultivation','signifying','lockout','');
+INSERT INTO t2 VALUES (539,148018,29,'heals','Patrice','grammatic','');
+INSERT INTO t2 VALUES (540,148019,29,'Heusen','search','helmsman','');
+INSERT INTO t2 VALUES (541,148020,29,'target','Angeles','uniform','W');
+INSERT INTO t2 VALUES (542,148021,29,'cited','semblance','hamming','');
+INSERT INTO t2 VALUES (543,148022,29,'congresswoman','taxed','disobedience','');
+INSERT INTO t2 VALUES (544,148101,29,'Katherine','Beatrice','captivated','A');
+INSERT INTO t2 VALUES (545,148102,29,'titter','retrace','transferals','A');
+INSERT INTO t2 VALUES (546,148201,29,'aspire','lockout','cartographer','A');
+INSERT INTO t2 VALUES (547,148401,29,'Mardis','grammatic','aims','FAS');
+INSERT INTO t2 VALUES (548,148402,29,'Nadia','helmsman','Pakistani','');
+INSERT INTO t2 VALUES (549,148501,29,'estimating','uniform','burglarized','FAS');
+INSERT INTO t2 VALUES (550,148502,29,'stuck','hamming','saucepans','A');
+INSERT INTO t2 VALUES (551,148503,29,'fifteenth','disobedience','lacerating','A');
+INSERT INTO t2 VALUES (552,148504,29,'Colombo','captivated','corny','');
+INSERT INTO t2 VALUES (553,148601,29,'survey','transferals','megabytes','FAS');
+INSERT INTO t2 VALUES (554,148602,29,'staffing','cartographer','chancellor','');
+INSERT INTO t2 VALUES (555,150701,29,'obtain','aims','bulk','A');
+INSERT INTO t2 VALUES (556,152101,29,'loaded','Pakistani','commits','A');
+INSERT INTO t2 VALUES (557,152102,29,'slaughtered','burglarized','meson','W');
+INSERT INTO t2 VALUES (558,155202,36,'lights','saucepans','deputies','');
+INSERT INTO t2 VALUES (559,155203,29,'circumference','lacerating','northeaster','A');
+INSERT INTO t2 VALUES (560,155204,29,'dull','corny','dipole','');
+INSERT INTO t2 VALUES (561,155205,29,'weekly','megabytes','machining','0');
+INSERT INTO t2 VALUES (562,156001,29,'wetness','chancellor','therefore','');
+INSERT INTO t2 VALUES (563,156002,29,'visualized','bulk','Telefunken','');
+INSERT INTO t2 VALUES (564,156102,29,'Tannenbaum','commits','salvaging','');
+INSERT INTO t2 VALUES (565,156301,29,'moribund','meson','Corinthianizes','A');
+INSERT INTO t2 VALUES (566,156302,29,'demultiplex','deputies','restlessly','A');
+INSERT INTO t2 VALUES (567,156303,29,'lockings','northeaster','bromides','');
+INSERT INTO t2 VALUES (568,156304,29,'thugs','dipole','generalized','A');
+INSERT INTO t2 VALUES (569,156305,29,'unnerves','machining','mishaps','');
+INSERT INTO t2 VALUES (570,156306,29,'abut','therefore','quelling','');
+INSERT INTO t2 VALUES (571,156501,29,'Chippewa','Telefunken','spiritual','A');
+INSERT INTO t2 VALUES (572,158001,29,'stratifications','salvaging','beguiles','FAS');
+INSERT INTO t2 VALUES (573,158002,29,'signaled','Corinthianizes','Trobriand','FAS');
+INSERT INTO t2 VALUES (574,158101,29,'Italianizes','restlessly','fleeing','A');
+INSERT INTO t2 VALUES (575,158102,29,'algorithmic','bromides','Armour','A');
+INSERT INTO t2 VALUES (576,158103,29,'paranoid','generalized','chin','A');
+INSERT INTO t2 VALUES (577,158201,29,'camping','mishaps','provers','A');
+INSERT INTO t2 VALUES (578,158202,29,'signifying','quelling','aeronautic','A');
+INSERT INTO t2 VALUES (579,158203,29,'Patrice','spiritual','voltage','W');
+INSERT INTO t2 VALUES (580,158204,29,'search','beguiles','sash','');
+INSERT INTO t2 VALUES (581,158301,29,'Angeles','Trobriand','anaerobic','A');
+INSERT INTO t2 VALUES (582,158302,29,'semblance','fleeing','simultaneous','A');
+INSERT INTO t2 VALUES (583,158303,29,'taxed','Armour','accumulating','A');
+INSERT INTO t2 VALUES (584,158304,29,'Beatrice','chin','Medusan','A');
+INSERT INTO t2 VALUES (585,158305,29,'retrace','provers','shouted','A');
+INSERT INTO t2 VALUES (586,158306,29,'lockout','aeronautic','freakish','');
+INSERT INTO t2 VALUES (587,158501,29,'grammatic','voltage','index','FAS');
+INSERT INTO t2 VALUES (588,160301,29,'helmsman','sash','commercially','');
+INSERT INTO t2 VALUES (589,166101,50,'uniform','anaerobic','mistiness','A');
+INSERT INTO t2 VALUES (590,166102,50,'hamming','simultaneous','endpoint','');
+INSERT INTO t2 VALUES (591,168001,29,'disobedience','accumulating','straight','A');
+INSERT INTO t2 VALUES (592,168002,29,'captivated','Medusan','flurried','');
+INSERT INTO t2 VALUES (593,168003,29,'transferals','shouted','denotative','A');
+INSERT INTO t2 VALUES (594,168101,29,'cartographer','freakish','coming','FAS');
+INSERT INTO t2 VALUES (595,168102,29,'aims','index','commencements','FAS');
+INSERT INTO t2 VALUES (596,168103,29,'Pakistani','commercially','gentleman','');
+INSERT INTO t2 VALUES (597,168104,29,'burglarized','mistiness','gifted','');
+INSERT INTO t2 VALUES (598,168202,29,'saucepans','endpoint','Shanghais','');
+INSERT INTO t2 VALUES (599,168301,29,'lacerating','straight','sportswriting','A');
+INSERT INTO t2 VALUES (600,168502,29,'corny','flurried','sloping','A');
+INSERT INTO t2 VALUES (601,168503,29,'megabytes','denotative','navies','');
+INSERT INTO t2 VALUES (602,168601,29,'chancellor','coming','leaflet','A');
+INSERT INTO t2 VALUES (603,173001,40,'bulk','commencements','shooter','');
+INSERT INTO t2 VALUES (604,173701,40,'commits','gentleman','Joplin','FAS');
+INSERT INTO t2 VALUES (605,173702,40,'meson','gifted','babies','');
+INSERT INTO t2 VALUES (606,176001,40,'deputies','Shanghais','subdivision','FAS');
+INSERT INTO t2 VALUES (607,176101,40,'northeaster','sportswriting','burstiness','W');
+INSERT INTO t2 VALUES (608,176201,40,'dipole','sloping','belted','FAS');
+INSERT INTO t2 VALUES (609,176401,40,'machining','navies','assails','FAS');
+INSERT INTO t2 VALUES (610,176501,40,'therefore','leaflet','admiring','W');
+INSERT INTO t2 VALUES (611,176601,40,'Telefunken','shooter','swaying','0');
+INSERT INTO t2 VALUES (612,176602,40,'salvaging','Joplin','Goldstine','FAS');
+INSERT INTO t2 VALUES (613,176603,40,'Corinthianizes','babies','fitting','');
+INSERT INTO t2 VALUES (614,178001,40,'restlessly','subdivision','Norwalk','W');
+INSERT INTO t2 VALUES (615,178002,40,'bromides','burstiness','weakening','W');
+INSERT INTO t2 VALUES (616,178003,40,'generalized','belted','analogy','FAS');
+INSERT INTO t2 VALUES (617,178004,40,'mishaps','assails','deludes','');
+INSERT INTO t2 VALUES (618,178005,40,'quelling','admiring','cokes','');
+INSERT INTO t2 VALUES (619,178006,40,'spiritual','swaying','Clayton','');
+INSERT INTO t2 VALUES (620,178007,40,'beguiles','Goldstine','exhausts','');
+INSERT INTO t2 VALUES (621,178008,40,'Trobriand','fitting','causality','');
+INSERT INTO t2 VALUES (622,178101,40,'fleeing','Norwalk','sating','FAS');
+INSERT INTO t2 VALUES (623,178102,40,'Armour','weakening','icon','');
+INSERT INTO t2 VALUES (624,178103,40,'chin','analogy','throttles','');
+INSERT INTO t2 VALUES (625,178201,40,'provers','deludes','communicants','FAS');
+INSERT INTO t2 VALUES (626,178202,40,'aeronautic','cokes','dehydrate','FAS');
+INSERT INTO t2 VALUES (627,178301,40,'voltage','Clayton','priceless','FAS');
+INSERT INTO t2 VALUES (628,178302,40,'sash','exhausts','publicly','');
+INSERT INTO t2 VALUES (629,178401,40,'anaerobic','causality','incidentals','FAS');
+INSERT INTO t2 VALUES (630,178402,40,'simultaneous','sating','commonplace','');
+INSERT INTO t2 VALUES (631,178403,40,'accumulating','icon','mumbles','');
+INSERT INTO t2 VALUES (632,178404,40,'Medusan','throttles','furthermore','W');
+INSERT INTO t2 VALUES (633,178501,40,'shouted','communicants','cautioned','W');
+INSERT INTO t2 VALUES (634,186002,37,'freakish','dehydrate','parametrized','A');
+INSERT INTO t2 VALUES (635,186102,37,'index','priceless','registration','A');
+INSERT INTO t2 VALUES (636,186201,40,'commercially','publicly','sadly','FAS');
+INSERT INTO t2 VALUES (637,186202,40,'mistiness','incidentals','positioning','');
+INSERT INTO t2 VALUES (638,186203,40,'endpoint','commonplace','babysitting','');
+INSERT INTO t2 VALUES (639,186302,37,'straight','mumbles','eternal','A');
+INSERT INTO t2 VALUES (640,188007,37,'flurried','furthermore','hoarder','');
+INSERT INTO t2 VALUES (641,188008,37,'denotative','cautioned','congregates','');
+INSERT INTO t2 VALUES (642,188009,37,'coming','parametrized','rains','');
+INSERT INTO t2 VALUES (643,188010,37,'commencements','registration','workers','W');
+INSERT INTO t2 VALUES (644,188011,37,'gentleman','sadly','sags','A');
+INSERT INTO t2 VALUES (645,188012,37,'gifted','positioning','unplug','W');
+INSERT INTO t2 VALUES (646,188013,37,'Shanghais','babysitting','garage','A');
+INSERT INTO t2 VALUES (647,188014,37,'sportswriting','eternal','boulder','A');
+INSERT INTO t2 VALUES (648,188015,37,'sloping','hoarder','hollowly','A');
+INSERT INTO t2 VALUES (649,188016,37,'navies','congregates','specifics','');
+INSERT INTO t2 VALUES (650,188017,37,'leaflet','rains','Teresa','');
+INSERT INTO t2 VALUES (651,188102,37,'shooter','workers','Winsett','');
+INSERT INTO t2 VALUES (652,188103,37,'Joplin','sags','convenient','A');
+INSERT INTO t2 VALUES (653,188202,37,'babies','unplug','buckboards','FAS');
+INSERT INTO t2 VALUES (654,188301,40,'subdivision','garage','amenities','');
+INSERT INTO t2 VALUES (655,188302,40,'burstiness','boulder','resplendent','FAS');
+INSERT INTO t2 VALUES (656,188303,40,'belted','hollowly','priding','FAS');
+INSERT INTO t2 VALUES (657,188401,37,'assails','specifics','configurations','');
+INSERT INTO t2 VALUES (658,188402,37,'admiring','Teresa','untidiness','A');
+INSERT INTO t2 VALUES (659,188503,37,'swaying','Winsett','Brice','W');
+INSERT INTO t2 VALUES (660,188504,37,'Goldstine','convenient','sews','FAS');
+INSERT INTO t2 VALUES (661,188505,37,'fitting','buckboards','participated','');
+INSERT INTO t2 VALUES (662,190701,37,'Norwalk','amenities','Simon','FAS');
+INSERT INTO t2 VALUES (663,190703,50,'weakening','resplendent','certificates','');
+INSERT INTO t2 VALUES (664,191701,37,'analogy','priding','Fitzpatrick','');
+INSERT INTO t2 VALUES (665,191702,37,'deludes','configurations','Evanston','A');
+INSERT INTO t2 VALUES (666,191703,37,'cokes','untidiness','misted','');
+INSERT INTO t2 VALUES (667,196001,37,'Clayton','Brice','textures','A');
+INSERT INTO t2 VALUES (668,196002,37,'exhausts','sews','save','');
+INSERT INTO t2 VALUES (669,196003,37,'causality','participated','count','');
+INSERT INTO t2 VALUES (670,196101,37,'sating','Simon','rightful','A');
+INSERT INTO t2 VALUES (671,196103,37,'icon','certificates','chaperone','');
+INSERT INTO t2 VALUES (672,196104,37,'throttles','Fitzpatrick','Lizzy','A');
+INSERT INTO t2 VALUES (673,196201,37,'communicants','Evanston','clenched','A');
+INSERT INTO t2 VALUES (674,196202,37,'dehydrate','misted','effortlessly','');
+INSERT INTO t2 VALUES (675,196203,37,'priceless','textures','accessed','');
+INSERT INTO t2 VALUES (676,198001,37,'publicly','save','beaters','A');
+INSERT INTO t2 VALUES (677,198003,37,'incidentals','count','Hornblower','FAS');
+INSERT INTO t2 VALUES (678,198004,37,'commonplace','rightful','vests','A');
+INSERT INTO t2 VALUES (679,198005,37,'mumbles','chaperone','indulgences','FAS');
+INSERT INTO t2 VALUES (680,198006,37,'furthermore','Lizzy','infallibly','A');
+INSERT INTO t2 VALUES (681,198007,37,'cautioned','clenched','unwilling','FAS');
+INSERT INTO t2 VALUES (682,198008,37,'parametrized','effortlessly','excrete','FAS');
+INSERT INTO t2 VALUES (683,198009,37,'registration','accessed','spools','A');
+INSERT INTO t2 VALUES (684,198010,37,'sadly','beaters','crunches','FAS');
+INSERT INTO t2 VALUES (685,198011,37,'positioning','Hornblower','overestimating','FAS');
+INSERT INTO t2 VALUES (686,198012,37,'babysitting','vests','ineffective','');
+INSERT INTO t2 VALUES (687,198013,37,'eternal','indulgences','humiliation','A');
+INSERT INTO t2 VALUES (688,198014,37,'hoarder','infallibly','sophomore','');
+INSERT INTO t2 VALUES (689,198015,37,'congregates','unwilling','star','');
+INSERT INTO t2 VALUES (690,198017,37,'rains','excrete','rifles','');
+INSERT INTO t2 VALUES (691,198018,37,'workers','spools','dialysis','');
+INSERT INTO t2 VALUES (692,198019,37,'sags','crunches','arriving','');
+INSERT INTO t2 VALUES (693,198020,37,'unplug','overestimating','indulge','');
+INSERT INTO t2 VALUES (694,198021,37,'garage','ineffective','clockers','');
+INSERT INTO t2 VALUES (695,198022,37,'boulder','humiliation','languages','');
+INSERT INTO t2 VALUES (696,198023,50,'hollowly','sophomore','Antarctica','A');
+INSERT INTO t2 VALUES (697,198024,37,'specifics','star','percentage','');
+INSERT INTO t2 VALUES (698,198101,37,'Teresa','rifles','ceiling','A');
+INSERT INTO t2 VALUES (699,198103,37,'Winsett','dialysis','specification','');
+INSERT INTO t2 VALUES (700,198105,37,'convenient','arriving','regimented','A');
+INSERT INTO t2 VALUES (701,198106,37,'buckboards','indulge','ciphers','');
+INSERT INTO t2 VALUES (702,198201,37,'amenities','clockers','pictures','A');
+INSERT INTO t2 VALUES (703,198204,37,'resplendent','languages','serpents','A');
+INSERT INTO t2 VALUES (704,198301,53,'priding','Antarctica','allot','A');
+INSERT INTO t2 VALUES (705,198302,53,'configurations','percentage','realized','A');
+INSERT INTO t2 VALUES (706,198303,53,'untidiness','ceiling','mayoral','A');
+INSERT INTO t2 VALUES (707,198304,53,'Brice','specification','opaquely','A');
+INSERT INTO t2 VALUES (708,198401,37,'sews','regimented','hostess','FAS');
+INSERT INTO t2 VALUES (709,198402,37,'participated','ciphers','fiftieth','');
+INSERT INTO t2 VALUES (710,198403,37,'Simon','pictures','incorrectly','');
+INSERT INTO t2 VALUES (711,202101,37,'certificates','serpents','decomposition','FAS');
+INSERT INTO t2 VALUES (712,202301,37,'Fitzpatrick','allot','stranglings','');
+INSERT INTO t2 VALUES (713,202302,37,'Evanston','realized','mixture','FAS');
+INSERT INTO t2 VALUES (714,202303,37,'misted','mayoral','electroencephalography','FAS');
+INSERT INTO t2 VALUES (715,202304,37,'textures','opaquely','similarities','FAS');
+INSERT INTO t2 VALUES (716,202305,37,'save','hostess','charges','W');
+INSERT INTO t2 VALUES (717,202601,37,'count','fiftieth','freest','FAS');
+INSERT INTO t2 VALUES (718,202602,37,'rightful','incorrectly','Greenberg','FAS');
+INSERT INTO t2 VALUES (719,202605,37,'chaperone','decomposition','tinting','');
+INSERT INTO t2 VALUES (720,202606,37,'Lizzy','stranglings','expelled','W');
+INSERT INTO t2 VALUES (721,202607,37,'clenched','mixture','warm','');
+INSERT INTO t2 VALUES (722,202901,37,'effortlessly','electroencephalography','smoothed','');
+INSERT INTO t2 VALUES (723,202902,37,'accessed','similarities','deductions','FAS');
+INSERT INTO t2 VALUES (724,202903,37,'beaters','charges','Romano','W');
+INSERT INTO t2 VALUES (725,202904,37,'Hornblower','freest','bitterroot','');
+INSERT INTO t2 VALUES (726,202907,37,'vests','Greenberg','corset','');
+INSERT INTO t2 VALUES (727,202908,37,'indulgences','tinting','securing','');
+INSERT INTO t2 VALUES (728,203101,37,'infallibly','expelled','environing','FAS');
+INSERT INTO t2 VALUES (729,203103,37,'unwilling','warm','cute','');
+INSERT INTO t2 VALUES (730,203104,37,'excrete','smoothed','Crays','');
+INSERT INTO t2 VALUES (731,203105,37,'spools','deductions','heiress','FAS');
+INSERT INTO t2 VALUES (732,203401,37,'crunches','Romano','inform','FAS');
+INSERT INTO t2 VALUES (733,203402,37,'overestimating','bitterroot','avenge','');
+INSERT INTO t2 VALUES (734,203404,37,'ineffective','corset','universals','');
+INSERT INTO t2 VALUES (735,203901,37,'humiliation','securing','Kinsey','W');
+INSERT INTO t2 VALUES (736,203902,37,'sophomore','environing','ravines','FAS');
+INSERT INTO t2 VALUES (737,203903,37,'star','cute','bestseller','');
+INSERT INTO t2 VALUES (738,203906,37,'rifles','Crays','equilibrium','');
+INSERT INTO t2 VALUES (739,203907,37,'dialysis','heiress','extents','0');
+INSERT INTO t2 VALUES (740,203908,37,'arriving','inform','relatively','');
+INSERT INTO t2 VALUES (741,203909,37,'indulge','avenge','pressure','FAS');
+INSERT INTO t2 VALUES (742,206101,37,'clockers','universals','critiques','FAS');
+INSERT INTO t2 VALUES (743,206201,37,'languages','Kinsey','befouled','');
+INSERT INTO t2 VALUES (744,206202,37,'Antarctica','ravines','rightfully','FAS');
+INSERT INTO t2 VALUES (745,206203,37,'percentage','bestseller','mechanizing','FAS');
+INSERT INTO t2 VALUES (746,206206,37,'ceiling','equilibrium','Latinizes','');
+INSERT INTO t2 VALUES (747,206207,37,'specification','extents','timesharing','');
+INSERT INTO t2 VALUES (748,206208,37,'regimented','relatively','Aden','');
+INSERT INTO t2 VALUES (749,208001,37,'ciphers','pressure','embassies','');
+INSERT INTO t2 VALUES (750,208002,37,'pictures','critiques','males','FAS');
+INSERT INTO t2 VALUES (751,208003,37,'serpents','befouled','shapelessly','FAS');
+INSERT INTO t2 VALUES (752,208004,37,'allot','rightfully','genres','FAS');
+INSERT INTO t2 VALUES (753,208008,37,'realized','mechanizing','mastering','');
+INSERT INTO t2 VALUES (754,208009,37,'mayoral','Latinizes','Newtonian','');
+INSERT INTO t2 VALUES (755,208010,37,'opaquely','timesharing','finishers','FAS');
+INSERT INTO t2 VALUES (756,208011,37,'hostess','Aden','abates','');
+INSERT INTO t2 VALUES (757,208101,37,'fiftieth','embassies','teem','');
+INSERT INTO t2 VALUES (758,208102,37,'incorrectly','males','kiting','FAS');
+INSERT INTO t2 VALUES (759,208103,37,'decomposition','shapelessly','stodgy','FAS');
+INSERT INTO t2 VALUES (760,208104,37,'stranglings','genres','scalps','FAS');
+INSERT INTO t2 VALUES (761,208105,37,'mixture','mastering','feed','FAS');
+INSERT INTO t2 VALUES (762,208110,37,'electroencephalography','Newtonian','guitars','');
+INSERT INTO t2 VALUES (763,208111,37,'similarities','finishers','airships','');
+INSERT INTO t2 VALUES (764,208112,37,'charges','abates','store','');
+INSERT INTO t2 VALUES (765,208113,37,'freest','teem','denounces','');
+INSERT INTO t2 VALUES (766,208201,37,'Greenberg','kiting','Pyle','FAS');
+INSERT INTO t2 VALUES (767,208203,37,'tinting','stodgy','Saxony','');
+INSERT INTO t2 VALUES (768,208301,37,'expelled','scalps','serializations','FAS');
+INSERT INTO t2 VALUES (769,208302,37,'warm','feed','Peruvian','FAS');
+INSERT INTO t2 VALUES (770,208305,37,'smoothed','guitars','taxonomically','FAS');
+INSERT INTO t2 VALUES (771,208401,37,'deductions','airships','kingdom','A');
+INSERT INTO t2 VALUES (772,208402,37,'Romano','store','stint','A');
+INSERT INTO t2 VALUES (773,208403,37,'bitterroot','denounces','Sault','A');
+INSERT INTO t2 VALUES (774,208404,37,'corset','Pyle','faithful','');
+INSERT INTO t2 VALUES (775,208501,37,'securing','Saxony','Ganymede','FAS');
+INSERT INTO t2 VALUES (776,208502,37,'environing','serializations','tidiness','FAS');
+INSERT INTO t2 VALUES (777,208503,37,'cute','Peruvian','gainful','FAS');
+INSERT INTO t2 VALUES (778,208504,37,'Crays','taxonomically','contrary','FAS');
+INSERT INTO t2 VALUES (779,208505,37,'heiress','kingdom','Tipperary','FAS');
+INSERT INTO t2 VALUES (780,210101,37,'inform','stint','tropics','W');
+INSERT INTO t2 VALUES (781,210102,37,'avenge','Sault','theorizers','');
+INSERT INTO t2 VALUES (782,210103,37,'universals','faithful','renew','0');
+INSERT INTO t2 VALUES (783,210104,37,'Kinsey','Ganymede','already','');
+INSERT INTO t2 VALUES (784,210105,37,'ravines','tidiness','terminal','');
+INSERT INTO t2 VALUES (785,210106,37,'bestseller','gainful','Hegelian','');
+INSERT INTO t2 VALUES (786,210107,37,'equilibrium','contrary','hypothesizer','');
+INSERT INTO t2 VALUES (787,210401,37,'extents','Tipperary','warningly','FAS');
+INSERT INTO t2 VALUES (788,213201,37,'relatively','tropics','journalizing','FAS');
+INSERT INTO t2 VALUES (789,213203,37,'pressure','theorizers','nested','');
+INSERT INTO t2 VALUES (790,213204,37,'critiques','renew','Lars','');
+INSERT INTO t2 VALUES (791,213205,37,'befouled','already','saplings','');
+INSERT INTO t2 VALUES (792,213206,37,'rightfully','terminal','foothill','');
+INSERT INTO t2 VALUES (793,213207,37,'mechanizing','Hegelian','labeled','');
+INSERT INTO t2 VALUES (794,216101,37,'Latinizes','hypothesizer','imperiously','FAS');
+INSERT INTO t2 VALUES (795,216103,37,'timesharing','warningly','reporters','FAS');
+INSERT INTO t2 VALUES (796,218001,37,'Aden','journalizing','furnishings','FAS');
+INSERT INTO t2 VALUES (797,218002,37,'embassies','nested','precipitable','FAS');
+INSERT INTO t2 VALUES (798,218003,37,'males','Lars','discounts','FAS');
+INSERT INTO t2 VALUES (799,218004,37,'shapelessly','saplings','excises','FAS');
+INSERT INTO t2 VALUES (800,143503,50,'genres','foothill','Stalin','');
+INSERT INTO t2 VALUES (801,218006,37,'mastering','labeled','despot','FAS');
+INSERT INTO t2 VALUES (802,218007,37,'Newtonian','imperiously','ripeness','FAS');
+INSERT INTO t2 VALUES (803,218008,37,'finishers','reporters','Arabia','');
+INSERT INTO t2 VALUES (804,218009,37,'abates','furnishings','unruly','');
+INSERT INTO t2 VALUES (805,218010,37,'teem','precipitable','mournfulness','');
+INSERT INTO t2 VALUES (806,218011,37,'kiting','discounts','boom','FAS');
+INSERT INTO t2 VALUES (807,218020,37,'stodgy','excises','slaughter','A');
+INSERT INTO t2 VALUES (808,218021,50,'scalps','Stalin','Sabine','');
+INSERT INTO t2 VALUES (809,218022,37,'feed','despot','handy','FAS');
+INSERT INTO t2 VALUES (810,218023,37,'guitars','ripeness','rural','');
+INSERT INTO t2 VALUES (811,218024,37,'airships','Arabia','organizer','');
+INSERT INTO t2 VALUES (812,218101,37,'store','unruly','shipyard','FAS');
+INSERT INTO t2 VALUES (813,218102,37,'denounces','mournfulness','civics','FAS');
+INSERT INTO t2 VALUES (814,218103,37,'Pyle','boom','inaccuracy','FAS');
+INSERT INTO t2 VALUES (815,218201,37,'Saxony','slaughter','rules','FAS');
+INSERT INTO t2 VALUES (816,218202,37,'serializations','Sabine','juveniles','FAS');
+INSERT INTO t2 VALUES (817,218203,37,'Peruvian','handy','comprised','W');
+INSERT INTO t2 VALUES (818,218204,37,'taxonomically','rural','investigations','');
+INSERT INTO t2 VALUES (819,218205,37,'kingdom','organizer','stabilizes','A');
+INSERT INTO t2 VALUES (820,218301,37,'stint','shipyard','seminaries','FAS');
+INSERT INTO t2 VALUES (821,218302,37,'Sault','civics','Hunter','A');
+INSERT INTO t2 VALUES (822,218401,37,'faithful','inaccuracy','sporty','FAS');
+INSERT INTO t2 VALUES (823,218402,37,'Ganymede','rules','test','FAS');
+INSERT INTO t2 VALUES (824,218403,37,'tidiness','juveniles','weasels','');
+INSERT INTO t2 VALUES (825,218404,37,'gainful','comprised','CERN','');
+INSERT INTO t2 VALUES (826,218407,37,'contrary','investigations','tempering','');
+INSERT INTO t2 VALUES (827,218408,37,'Tipperary','stabilizes','afore','FAS');
+INSERT INTO t2 VALUES (828,218409,37,'tropics','seminaries','Galatean','');
+INSERT INTO t2 VALUES (829,218410,37,'theorizers','Hunter','techniques','W');
+INSERT INTO t2 VALUES (830,226001,37,'renew','sporty','error','');
+INSERT INTO t2 VALUES (831,226002,37,'already','test','veranda','');
+INSERT INTO t2 VALUES (832,226003,37,'terminal','weasels','severely','');
+INSERT INTO t2 VALUES (833,226004,37,'Hegelian','CERN','Cassites','FAS');
+INSERT INTO t2 VALUES (834,226005,37,'hypothesizer','tempering','forthcoming','');
+INSERT INTO t2 VALUES (835,226006,37,'warningly','afore','guides','');
+INSERT INTO t2 VALUES (836,226007,37,'journalizing','Galatean','vanish','FAS');
+INSERT INTO t2 VALUES (837,226008,37,'nested','techniques','lied','A');
+INSERT INTO t2 VALUES (838,226203,37,'Lars','error','sawtooth','FAS');
+INSERT INTO t2 VALUES (839,226204,37,'saplings','veranda','fated','FAS');
+INSERT INTO t2 VALUES (840,226205,37,'foothill','severely','gradually','');
+INSERT INTO t2 VALUES (841,226206,37,'labeled','Cassites','widens','');
+INSERT INTO t2 VALUES (842,226207,37,'imperiously','forthcoming','preclude','');
+INSERT INTO t2 VALUES (843,226208,37,'reporters','guides','Jobrel','');
+INSERT INTO t2 VALUES (844,226209,37,'furnishings','vanish','hooker','');
+INSERT INTO t2 VALUES (845,226210,37,'precipitable','lied','rainstorm','');
+INSERT INTO t2 VALUES (846,226211,37,'discounts','sawtooth','disconnects','');
+INSERT INTO t2 VALUES (847,228001,37,'excises','fated','cruelty','');
+INSERT INTO t2 VALUES (848,228004,37,'Stalin','gradually','exponentials','A');
+INSERT INTO t2 VALUES (849,228005,37,'despot','widens','affective','A');
+INSERT INTO t2 VALUES (850,228006,37,'ripeness','preclude','arteries','');
+INSERT INTO t2 VALUES (851,228007,37,'Arabia','Jobrel','Crosby','FAS');
+INSERT INTO t2 VALUES (852,228008,37,'unruly','hooker','acquaint','');
+INSERT INTO t2 VALUES (853,228009,37,'mournfulness','rainstorm','evenhandedly','');
+INSERT INTO t2 VALUES (854,228101,37,'boom','disconnects','percentage','');
+INSERT INTO t2 VALUES (855,228108,37,'slaughter','cruelty','disobedience','');
+INSERT INTO t2 VALUES (856,228109,37,'Sabine','exponentials','humility','');
+INSERT INTO t2 VALUES (857,228110,37,'handy','affective','gleaning','A');
+INSERT INTO t2 VALUES (858,228111,37,'rural','arteries','petted','A');
+INSERT INTO t2 VALUES (859,228112,37,'organizer','Crosby','bloater','A');
+INSERT INTO t2 VALUES (860,228113,37,'shipyard','acquaint','minion','A');
+INSERT INTO t2 VALUES (861,228114,37,'civics','evenhandedly','marginal','A');
+INSERT INTO t2 VALUES (862,228115,37,'inaccuracy','percentage','apiary','A');
+INSERT INTO t2 VALUES (863,228116,37,'rules','disobedience','measures','');
+INSERT INTO t2 VALUES (864,228117,37,'juveniles','humility','precaution','');
+INSERT INTO t2 VALUES (865,228118,37,'comprised','gleaning','repelled','');
+INSERT INTO t2 VALUES (866,228119,37,'investigations','petted','primary','FAS');
+INSERT INTO t2 VALUES (867,228120,37,'stabilizes','bloater','coverings','');
+INSERT INTO t2 VALUES (868,228121,37,'seminaries','minion','Artemia','A');
+INSERT INTO t2 VALUES (869,228122,37,'Hunter','marginal','navigate','');
+INSERT INTO t2 VALUES (870,228201,37,'sporty','apiary','spatial','');
+INSERT INTO t2 VALUES (871,228206,37,'test','measures','Gurkha','');
+INSERT INTO t2 VALUES (872,228207,37,'weasels','precaution','meanwhile','A');
+INSERT INTO t2 VALUES (873,228208,37,'CERN','repelled','Melinda','A');
+INSERT INTO t2 VALUES (874,228209,37,'tempering','primary','Butterfield','');
+INSERT INTO t2 VALUES (875,228210,37,'afore','coverings','Aldrich','A');
+INSERT INTO t2 VALUES (876,228211,37,'Galatean','Artemia','previewing','A');
+INSERT INTO t2 VALUES (877,228212,37,'techniques','navigate','glut','A');
+INSERT INTO t2 VALUES (878,228213,37,'error','spatial','unaffected','');
+INSERT INTO t2 VALUES (879,228214,37,'veranda','Gurkha','inmate','');
+INSERT INTO t2 VALUES (880,228301,37,'severely','meanwhile','mineral','');
+INSERT INTO t2 VALUES (881,228305,37,'Cassites','Melinda','impending','A');
+INSERT INTO t2 VALUES (882,228306,37,'forthcoming','Butterfield','meditation','A');
+INSERT INTO t2 VALUES (883,228307,37,'guides','Aldrich','ideas','');
+INSERT INTO t2 VALUES (884,228308,37,'vanish','previewing','miniaturizes','W');
+INSERT INTO t2 VALUES (885,228309,37,'lied','glut','lewdly','');
+INSERT INTO t2 VALUES (886,228310,37,'sawtooth','unaffected','title','');
+INSERT INTO t2 VALUES (887,228311,37,'fated','inmate','youthfulness','');
+INSERT INTO t2 VALUES (888,228312,37,'gradually','mineral','creak','FAS');
+INSERT INTO t2 VALUES (889,228313,37,'widens','impending','Chippewa','');
+INSERT INTO t2 VALUES (890,228314,37,'preclude','meditation','clamored','');
+INSERT INTO t2 VALUES (891,228401,65,'Jobrel','ideas','freezes','');
+INSERT INTO t2 VALUES (892,228402,65,'hooker','miniaturizes','forgivably','FAS');
+INSERT INTO t2 VALUES (893,228403,65,'rainstorm','lewdly','reduce','FAS');
+INSERT INTO t2 VALUES (894,228404,65,'disconnects','title','McGovern','W');
+INSERT INTO t2 VALUES (895,228405,65,'cruelty','youthfulness','Nazis','W');
+INSERT INTO t2 VALUES (896,228406,65,'exponentials','creak','epistle','W');
+INSERT INTO t2 VALUES (897,228407,65,'affective','Chippewa','socializes','W');
+INSERT INTO t2 VALUES (898,228408,65,'arteries','clamored','conceptions','');
+INSERT INTO t2 VALUES (899,228409,65,'Crosby','freezes','Kevin','');
+INSERT INTO t2 VALUES (900,228410,65,'acquaint','forgivably','uncovering','');
+INSERT INTO t2 VALUES (901,230301,37,'evenhandedly','reduce','chews','FAS');
+INSERT INTO t2 VALUES (902,230302,37,'percentage','McGovern','appendixes','FAS');
+INSERT INTO t2 VALUES (903,230303,37,'disobedience','Nazis','raining','');
+INSERT INTO t2 VALUES (904,018062,37,'humility','epistle','infest','');
+INSERT INTO t2 VALUES (905,230501,37,'gleaning','socializes','compartment','');
+INSERT INTO t2 VALUES (906,230502,37,'petted','conceptions','minting','');
+INSERT INTO t2 VALUES (907,230503,37,'bloater','Kevin','ducks','');
+INSERT INTO t2 VALUES (908,230504,37,'minion','uncovering','roped','A');
+INSERT INTO t2 VALUES (909,230505,37,'marginal','chews','waltz','');
+INSERT INTO t2 VALUES (910,230506,37,'apiary','appendixes','Lillian','');
+INSERT INTO t2 VALUES (911,230507,37,'measures','raining','repressions','A');
+INSERT INTO t2 VALUES (912,230508,37,'precaution','infest','chillingly','');
+INSERT INTO t2 VALUES (913,230509,37,'repelled','compartment','noncritical','');
+INSERT INTO t2 VALUES (914,230901,37,'primary','minting','lithograph','');
+INSERT INTO t2 VALUES (915,230902,37,'coverings','ducks','spongers','');
+INSERT INTO t2 VALUES (916,230903,37,'Artemia','roped','parenthood','');
+INSERT INTO t2 VALUES (917,230904,37,'navigate','waltz','posed','');
+INSERT INTO t2 VALUES (918,230905,37,'spatial','Lillian','instruments','');
+INSERT INTO t2 VALUES (919,230906,37,'Gurkha','repressions','filial','');
+INSERT INTO t2 VALUES (920,230907,37,'meanwhile','chillingly','fixedly','');
+INSERT INTO t2 VALUES (921,230908,37,'Melinda','noncritical','relives','');
+INSERT INTO t2 VALUES (922,230909,37,'Butterfield','lithograph','Pandora','');
+INSERT INTO t2 VALUES (923,230910,37,'Aldrich','spongers','watering','A');
+INSERT INTO t2 VALUES (924,230911,37,'previewing','parenthood','ungrateful','');
+INSERT INTO t2 VALUES (925,230912,37,'glut','posed','secures','');
+INSERT INTO t2 VALUES (926,230913,37,'unaffected','instruments','chastisers','');
+INSERT INTO t2 VALUES (927,230914,37,'inmate','filial','icon','');
+INSERT INTO t2 VALUES (928,231304,37,'mineral','fixedly','reuniting','A');
+INSERT INTO t2 VALUES (929,231305,37,'impending','relives','imagining','A');
+INSERT INTO t2 VALUES (930,231306,37,'meditation','Pandora','abiding','A');
+INSERT INTO t2 VALUES (931,231307,37,'ideas','watering','omnisciently','');
+INSERT INTO t2 VALUES (932,231308,37,'miniaturizes','ungrateful','Britannic','');
+INSERT INTO t2 VALUES (933,231309,37,'lewdly','secures','scholastics','A');
+INSERT INTO t2 VALUES (934,231310,37,'title','chastisers','mechanics','A');
+INSERT INTO t2 VALUES (935,231311,37,'youthfulness','icon','humidly','A');
+INSERT INTO t2 VALUES (936,231312,37,'creak','reuniting','masterpiece','');
+INSERT INTO t2 VALUES (937,231313,37,'Chippewa','imagining','however','');
+INSERT INTO t2 VALUES (938,231314,37,'clamored','abiding','Mendelian','');
+INSERT INTO t2 VALUES (939,231315,37,'freezes','omnisciently','jarred','');
+INSERT INTO t2 VALUES (940,232102,37,'forgivably','Britannic','scolds','');
+INSERT INTO t2 VALUES (941,232103,37,'reduce','scholastics','infatuate','');
+INSERT INTO t2 VALUES (942,232104,37,'McGovern','mechanics','willed','A');
+INSERT INTO t2 VALUES (943,232105,37,'Nazis','humidly','joyfully','');
+INSERT INTO t2 VALUES (944,232106,37,'epistle','masterpiece','Microsoft','');
+INSERT INTO t2 VALUES (945,232107,37,'socializes','however','fibrosities','');
+INSERT INTO t2 VALUES (946,232108,37,'conceptions','Mendelian','Baltimorean','');
+INSERT INTO t2 VALUES (947,232601,37,'Kevin','jarred','equestrian','');
+INSERT INTO t2 VALUES (948,232602,37,'uncovering','scolds','Goodrich','');
+INSERT INTO t2 VALUES (949,232603,37,'chews','infatuate','apish','A');
+INSERT INTO t2 VALUES (950,232605,37,'appendixes','willed','Adlerian','');
+INSERT INTO t2 VALUES (5950,1232605,37,'appendixes','willed','Adlerian','');
+INSERT INTO t2 VALUES (5951,1232606,37,'appendixes','willed','Adlerian','');
+INSERT INTO t2 VALUES (5952,1232607,37,'appendixes','willed','Adlerian','');
+INSERT INTO t2 VALUES (5953,1232608,37,'appendixes','willed','Adlerian','');
+INSERT INTO t2 VALUES (5954,1232609,37,'appendixes','willed','Adlerian','');
+INSERT INTO t2 VALUES (951,232606,37,'raining','joyfully','Tropez','');
+INSERT INTO t2 VALUES (952,232607,37,'infest','Microsoft','nouns','');
+INSERT INTO t2 VALUES (953,232608,37,'compartment','fibrosities','distracting','');
+INSERT INTO t2 VALUES (954,232609,37,'minting','Baltimorean','mutton','');
+INSERT INTO t2 VALUES (955,236104,37,'ducks','equestrian','bridgeable','A');
+INSERT INTO t2 VALUES (956,236105,37,'roped','Goodrich','stickers','A');
+INSERT INTO t2 VALUES (957,236106,37,'waltz','apish','transcontinental','A');
+INSERT INTO t2 VALUES (958,236107,37,'Lillian','Adlerian','amateurish','');
+INSERT INTO t2 VALUES (959,236108,37,'repressions','Tropez','Gandhian','');
+INSERT INTO t2 VALUES (960,236109,37,'chillingly','nouns','stratified','');
+INSERT INTO t2 VALUES (961,236110,37,'noncritical','distracting','chamberlains','');
+INSERT INTO t2 VALUES (962,236111,37,'lithograph','mutton','creditably','');
+INSERT INTO t2 VALUES (963,236112,37,'spongers','bridgeable','philosophic','');
+INSERT INTO t2 VALUES (964,236113,37,'parenthood','stickers','ores','');
+INSERT INTO t2 VALUES (965,238005,37,'posed','transcontinental','Carleton','');
+INSERT INTO t2 VALUES (966,238006,37,'instruments','amateurish','tape','A');
+INSERT INTO t2 VALUES (967,238007,37,'filial','Gandhian','afloat','A');
+INSERT INTO t2 VALUES (968,238008,37,'fixedly','stratified','goodness','A');
+INSERT INTO t2 VALUES (969,238009,37,'relives','chamberlains','welcoming','');
+INSERT INTO t2 VALUES (970,238010,37,'Pandora','creditably','Pinsky','FAS');
+INSERT INTO t2 VALUES (971,238011,37,'watering','philosophic','halting','');
+INSERT INTO t2 VALUES (972,238012,37,'ungrateful','ores','bibliography','');
+INSERT INTO t2 VALUES (973,238013,37,'secures','Carleton','decoding','');
+INSERT INTO t2 VALUES (974,240401,41,'chastisers','tape','variance','A');
+INSERT INTO t2 VALUES (975,240402,41,'icon','afloat','allowed','A');
+INSERT INTO t2 VALUES (976,240901,41,'reuniting','goodness','dire','A');
+INSERT INTO t2 VALUES (977,240902,41,'imagining','welcoming','dub','A');
+INSERT INTO t2 VALUES (978,241801,41,'abiding','Pinsky','poisoning','');
+INSERT INTO t2 VALUES (979,242101,41,'omnisciently','halting','Iraqis','A');
+INSERT INTO t2 VALUES (980,242102,41,'Britannic','bibliography','heaving','');
+INSERT INTO t2 VALUES (981,242201,41,'scholastics','decoding','population','A');
+INSERT INTO t2 VALUES (982,242202,41,'mechanics','variance','bomb','A');
+INSERT INTO t2 VALUES (983,242501,41,'humidly','allowed','Majorca','A');
+INSERT INTO t2 VALUES (984,242502,41,'masterpiece','dire','Gershwins','');
+INSERT INTO t2 VALUES (985,246201,41,'however','dub','explorers','');
+INSERT INTO t2 VALUES (986,246202,41,'Mendelian','poisoning','libretto','A');
+INSERT INTO t2 VALUES (987,246203,41,'jarred','Iraqis','occurred','');
+INSERT INTO t2 VALUES (988,246204,41,'scolds','heaving','Lagos','');
+INSERT INTO t2 VALUES (989,246205,41,'infatuate','population','rats','');
+INSERT INTO t2 VALUES (990,246301,41,'willed','bomb','bankruptcies','A');
+INSERT INTO t2 VALUES (991,246302,41,'joyfully','Majorca','crying','');
+INSERT INTO t2 VALUES (992,248001,41,'Microsoft','Gershwins','unexpected','');
+INSERT INTO t2 VALUES (993,248002,41,'fibrosities','explorers','accessed','A');
+INSERT INTO t2 VALUES (994,248003,41,'Baltimorean','libretto','colorful','A');
+INSERT INTO t2 VALUES (995,248004,41,'equestrian','occurred','versatility','A');
+INSERT INTO t2 VALUES (996,248005,41,'Goodrich','Lagos','cosy','');
+INSERT INTO t2 VALUES (997,248006,41,'apish','rats','Darius','A');
+INSERT INTO t2 VALUES (998,248007,41,'Adlerian','bankruptcies','mastering','A');
+INSERT INTO t2 VALUES (999,248008,41,'Tropez','crying','Asiaticizations','A');
+INSERT INTO t2 VALUES (1000,248009,41,'nouns','unexpected','offerers','A');
+INSERT INTO t2 VALUES (1001,248010,41,'distracting','accessed','uncles','A');
+INSERT INTO t2 VALUES (1002,248011,41,'mutton','colorful','sleepwalk','');
+INSERT INTO t2 VALUES (1003,248012,41,'bridgeable','versatility','Ernestine','');
+INSERT INTO t2 VALUES (1004,248013,41,'stickers','cosy','checksumming','');
+INSERT INTO t2 VALUES (1005,248014,41,'transcontinental','Darius','stopped','');
+INSERT INTO t2 VALUES (1006,248015,41,'amateurish','mastering','sicker','');
+INSERT INTO t2 VALUES (1007,248016,41,'Gandhian','Asiaticizations','Italianization','');
+INSERT INTO t2 VALUES (1008,248017,41,'stratified','offerers','alphabetic','');
+INSERT INTO t2 VALUES (1009,248018,41,'chamberlains','uncles','pharmaceutic','');
+INSERT INTO t2 VALUES (1010,248019,41,'creditably','sleepwalk','creator','');
+INSERT INTO t2 VALUES (1011,248020,41,'philosophic','Ernestine','chess','');
+INSERT INTO t2 VALUES (1012,248021,41,'ores','checksumming','charcoal','');
+INSERT INTO t2 VALUES (1013,248101,41,'Carleton','stopped','Epiphany','A');
+INSERT INTO t2 VALUES (1014,248102,41,'tape','sicker','bulldozes','A');
+INSERT INTO t2 VALUES (1015,248201,41,'afloat','Italianization','Pygmalion','A');
+INSERT INTO t2 VALUES (1016,248202,41,'goodness','alphabetic','caressing','A');
+INSERT INTO t2 VALUES (1017,248203,41,'welcoming','pharmaceutic','Palestine','A');
+INSERT INTO t2 VALUES (1018,248204,41,'Pinsky','creator','regimented','A');
+INSERT INTO t2 VALUES (1019,248205,41,'halting','chess','scars','A');
+INSERT INTO t2 VALUES (1020,248206,41,'bibliography','charcoal','realest','A');
+INSERT INTO t2 VALUES (1021,248207,41,'decoding','Epiphany','diffusing','A');
+INSERT INTO t2 VALUES (1022,248208,41,'variance','bulldozes','clubroom','A');
+INSERT INTO t2 VALUES (1023,248209,41,'allowed','Pygmalion','Blythe','A');
+INSERT INTO t2 VALUES (1024,248210,41,'dire','caressing','ahead','');
+INSERT INTO t2 VALUES (1025,248211,50,'dub','Palestine','reviver','');
+INSERT INTO t2 VALUES (1026,250501,34,'poisoning','regimented','retransmitting','A');
+INSERT INTO t2 VALUES (1027,250502,34,'Iraqis','scars','landslide','');
+INSERT INTO t2 VALUES (1028,250503,34,'heaving','realest','Eiffel','');
+INSERT INTO t2 VALUES (1029,250504,34,'population','diffusing','absentee','');
+INSERT INTO t2 VALUES (1030,250505,34,'bomb','clubroom','aye','');
+INSERT INTO t2 VALUES (1031,250601,34,'Majorca','Blythe','forked','A');
+INSERT INTO t2 VALUES (1032,250602,34,'Gershwins','ahead','Peruvianizes','');
+INSERT INTO t2 VALUES (1033,250603,34,'explorers','reviver','clerked','');
+INSERT INTO t2 VALUES (1034,250604,34,'libretto','retransmitting','tutor','');
+INSERT INTO t2 VALUES (1035,250605,34,'occurred','landslide','boulevard','');
+INSERT INTO t2 VALUES (1036,251001,34,'Lagos','Eiffel','shuttered','');
+INSERT INTO t2 VALUES (1037,251002,34,'rats','absentee','quotes','A');
+INSERT INTO t2 VALUES (1038,251003,34,'bankruptcies','aye','Caltech','');
+INSERT INTO t2 VALUES (1039,251004,34,'crying','forked','Mossberg','');
+INSERT INTO t2 VALUES (1040,251005,34,'unexpected','Peruvianizes','kept','');
+INSERT INTO t2 VALUES (1041,251301,34,'accessed','clerked','roundly','');
+INSERT INTO t2 VALUES (1042,251302,34,'colorful','tutor','features','A');
+INSERT INTO t2 VALUES (1043,251303,34,'versatility','boulevard','imaginable','A');
+INSERT INTO t2 VALUES (1044,251304,34,'cosy','shuttered','controller','');
+INSERT INTO t2 VALUES (1045,251305,34,'Darius','quotes','racial','');
+INSERT INTO t2 VALUES (1046,251401,34,'mastering','Caltech','uprisings','A');
+INSERT INTO t2 VALUES (1047,251402,34,'Asiaticizations','Mossberg','narrowed','A');
+INSERT INTO t2 VALUES (1048,251403,34,'offerers','kept','cannot','A');
+INSERT INTO t2 VALUES (1049,251404,34,'uncles','roundly','vest','');
+INSERT INTO t2 VALUES (1050,251405,34,'sleepwalk','features','famine','');
+INSERT INTO t2 VALUES (1051,251406,34,'Ernestine','imaginable','sugars','');
+INSERT INTO t2 VALUES (1052,251801,34,'checksumming','controller','exterminated','A');
+INSERT INTO t2 VALUES (1053,251802,34,'stopped','racial','belays','');
+INSERT INTO t2 VALUES (1054,252101,34,'sicker','uprisings','Hodges','A');
+INSERT INTO t2 VALUES (1055,252102,34,'Italianization','narrowed','translatable','');
+INSERT INTO t2 VALUES (1056,252301,34,'alphabetic','cannot','duality','A');
+INSERT INTO t2 VALUES (1057,252302,34,'pharmaceutic','vest','recording','A');
+INSERT INTO t2 VALUES (1058,252303,34,'creator','famine','rouses','A');
+INSERT INTO t2 VALUES (1059,252304,34,'chess','sugars','poison','');
+INSERT INTO t2 VALUES (1060,252305,34,'charcoal','exterminated','attitude','');
+INSERT INTO t2 VALUES (1061,252306,34,'Epiphany','belays','dusted','');
+INSERT INTO t2 VALUES (1062,252307,34,'bulldozes','Hodges','encompasses','');
+INSERT INTO t2 VALUES (1063,252308,34,'Pygmalion','translatable','presentation','');
+INSERT INTO t2 VALUES (1064,252309,34,'caressing','duality','Kantian','');
+INSERT INTO t2 VALUES (1065,256001,34,'Palestine','recording','imprecision','A');
+INSERT INTO t2 VALUES (1066,256002,34,'regimented','rouses','saving','');
+INSERT INTO t2 VALUES (1067,256003,34,'scars','poison','maternal','');
+INSERT INTO t2 VALUES (1068,256004,34,'realest','attitude','hewed','');
+INSERT INTO t2 VALUES (1069,256005,34,'diffusing','dusted','kerosene','');
+INSERT INTO t2 VALUES (1070,258001,34,'clubroom','encompasses','Cubans','');
+INSERT INTO t2 VALUES (1071,258002,34,'Blythe','presentation','photographers','');
+INSERT INTO t2 VALUES (1072,258003,34,'ahead','Kantian','nymph','A');
+INSERT INTO t2 VALUES (1073,258004,34,'reviver','imprecision','bedlam','A');
+INSERT INTO t2 VALUES (1074,258005,34,'retransmitting','saving','north','A');
+INSERT INTO t2 VALUES (1075,258006,34,'landslide','maternal','Schoenberg','A');
+INSERT INTO t2 VALUES (1076,258007,34,'Eiffel','hewed','botany','A');
+INSERT INTO t2 VALUES (1077,258008,34,'absentee','kerosene','curs','');
+INSERT INTO t2 VALUES (1078,258009,34,'aye','Cubans','solidification','');
+INSERT INTO t2 VALUES (1079,258010,34,'forked','photographers','inheritresses','');
+INSERT INTO t2 VALUES (1080,258011,34,'Peruvianizes','nymph','stiller','');
+INSERT INTO t2 VALUES (1081,258101,68,'clerked','bedlam','t1','A');
+INSERT INTO t2 VALUES (1082,258102,68,'tutor','north','suite','A');
+INSERT INTO t2 VALUES (1083,258103,34,'boulevard','Schoenberg','ransomer','');
+INSERT INTO t2 VALUES (1084,258104,68,'shuttered','botany','Willy','');
+INSERT INTO t2 VALUES (1085,258105,68,'quotes','curs','Rena','A');
+INSERT INTO t2 VALUES (1086,258106,68,'Caltech','solidification','Seattle','A');
+INSERT INTO t2 VALUES (1087,258107,68,'Mossberg','inheritresses','relaxes','A');
+INSERT INTO t2 VALUES (1088,258108,68,'kept','stiller','exclaim','');
+INSERT INTO t2 VALUES (1089,258109,68,'roundly','t1','implicated','A');
+INSERT INTO t2 VALUES (1090,258110,68,'features','suite','distinguish','');
+INSERT INTO t2 VALUES (1091,258111,68,'imaginable','ransomer','assayed','');
+INSERT INTO t2 VALUES (1092,258112,68,'controller','Willy','homeowner','');
+INSERT INTO t2 VALUES (1093,258113,68,'racial','Rena','and','');
+INSERT INTO t2 VALUES (1094,258201,34,'uprisings','Seattle','stealth','');
+INSERT INTO t2 VALUES (1095,258202,34,'narrowed','relaxes','coinciding','A');
+INSERT INTO t2 VALUES (1096,258203,34,'cannot','exclaim','founder','A');
+INSERT INTO t2 VALUES (1097,258204,34,'vest','implicated','environing','');
+INSERT INTO t2 VALUES (1098,258205,34,'famine','distinguish','jewelry','');
+INSERT INTO t2 VALUES (1099,258301,34,'sugars','assayed','lemons','A');
+INSERT INTO t2 VALUES (1100,258401,34,'exterminated','homeowner','brokenness','A');
+INSERT INTO t2 VALUES (1101,258402,34,'belays','and','bedpost','A');
+INSERT INTO t2 VALUES (1102,258403,34,'Hodges','stealth','assurers','A');
+INSERT INTO t2 VALUES (1103,258404,34,'translatable','coinciding','annoyers','');
+INSERT INTO t2 VALUES (1104,258405,34,'duality','founder','affixed','');
+INSERT INTO t2 VALUES (1105,258406,34,'recording','environing','warbling','');
+INSERT INTO t2 VALUES (1106,258407,34,'rouses','jewelry','seriously','');
+INSERT INTO t2 VALUES (1107,228123,37,'poison','lemons','boasted','');
+INSERT INTO t2 VALUES (1108,250606,34,'attitude','brokenness','Chantilly','');
+INSERT INTO t2 VALUES (1109,208405,37,'dusted','bedpost','Iranizes','');
+INSERT INTO t2 VALUES (1110,212101,37,'encompasses','assurers','violinist','');
+INSERT INTO t2 VALUES (1111,218206,37,'presentation','annoyers','extramarital','');
+INSERT INTO t2 VALUES (1112,150401,37,'Kantian','affixed','spates','');
+INSERT INTO t2 VALUES (1113,248212,41,'imprecision','warbling','cloakroom','');
+INSERT INTO t2 VALUES (1114,128026,00,'saving','seriously','gazer','');
+INSERT INTO t2 VALUES (1115,128024,00,'maternal','boasted','hand','');
+INSERT INTO t2 VALUES (1116,128027,00,'hewed','Chantilly','tucked','');
+INSERT INTO t2 VALUES (1117,128025,00,'kerosene','Iranizes','gems','');
+INSERT INTO t2 VALUES (1118,128109,00,'Cubans','violinist','clinker','');
+INSERT INTO t2 VALUES (1119,128705,00,'photographers','extramarital','refiner','');
+INSERT INTO t2 VALUES (1120,126303,00,'nymph','spates','callus','');
+INSERT INTO t2 VALUES (1121,128308,00,'bedlam','cloakroom','leopards','');
+INSERT INTO t2 VALUES (1122,128204,00,'north','gazer','comfortingly','');
+INSERT INTO t2 VALUES (1123,128205,00,'Schoenberg','hand','generically','');
+INSERT INTO t2 VALUES (1124,128206,00,'botany','tucked','getters','');
+INSERT INTO t2 VALUES (1125,128207,00,'curs','gems','sexually','');
+INSERT INTO t2 VALUES (1126,118205,00,'solidification','clinker','spear','');
+INSERT INTO t2 VALUES (1127,116801,00,'inheritresses','refiner','serums','');
+INSERT INTO t2 VALUES (1128,116803,00,'stiller','callus','Italianization','');
+INSERT INTO t2 VALUES (1129,116804,00,'t1','leopards','attendants','');
+INSERT INTO t2 VALUES (1130,116802,00,'suite','comfortingly','spies','');
+INSERT INTO t2 VALUES (1131,128605,00,'ransomer','generically','Anthony','');
+INSERT INTO t2 VALUES (1132,118308,00,'Willy','getters','planar','');
+INSERT INTO t2 VALUES (1133,113702,00,'Rena','sexually','cupped','');
+INSERT INTO t2 VALUES (1134,113703,00,'Seattle','spear','cleanser','');
+INSERT INTO t2 VALUES (1135,112103,00,'relaxes','serums','commuters','');
+INSERT INTO t2 VALUES (1136,118009,00,'exclaim','Italianization','honeysuckle','');
+INSERT INTO t2 VALUES (5136,1118009,00,'exclaim','Italianization','honeysuckle','');
+INSERT INTO t2 VALUES (1137,138011,00,'implicated','attendants','orphanage','');
+INSERT INTO t2 VALUES (1138,138010,00,'distinguish','spies','skies','');
+INSERT INTO t2 VALUES (1139,138012,00,'assayed','Anthony','crushers','');
+INSERT INTO t2 VALUES (1140,068304,00,'homeowner','planar','Puritan','');
+INSERT INTO t2 VALUES (1141,078009,00,'and','cupped','squeezer','');
+INSERT INTO t2 VALUES (1142,108013,00,'stealth','cleanser','bruises','');
+INSERT INTO t2 VALUES (1143,084004,00,'coinciding','commuters','bonfire','');
+INSERT INTO t2 VALUES (1144,083402,00,'founder','honeysuckle','Colombo','');
+INSERT INTO t2 VALUES (1145,084003,00,'environing','orphanage','nondecreasing','');
+INSERT INTO t2 VALUES (1146,088504,00,'jewelry','skies','innocents','');
+INSERT INTO t2 VALUES (1147,088005,00,'lemons','crushers','masked','');
+INSERT INTO t2 VALUES (1148,088007,00,'brokenness','Puritan','file','');
+INSERT INTO t2 VALUES (1149,088006,00,'bedpost','squeezer','brush','');
+INSERT INTO t2 VALUES (1150,148025,00,'assurers','bruises','mutilate','');
+INSERT INTO t2 VALUES (1151,148024,00,'annoyers','bonfire','mommy','');
+INSERT INTO t2 VALUES (1152,138305,00,'affixed','Colombo','bulkheads','');
+INSERT INTO t2 VALUES (1153,138306,00,'warbling','nondecreasing','undeclared','');
+INSERT INTO t2 VALUES (1154,152701,00,'seriously','innocents','displacements','');
+INSERT INTO t2 VALUES (1155,148505,00,'boasted','masked','nieces','');
+INSERT INTO t2 VALUES (1156,158003,00,'Chantilly','file','coeducation','');
+INSERT INTO t2 VALUES (1157,156201,00,'Iranizes','brush','brassy','');
+INSERT INTO t2 VALUES (1158,156202,00,'violinist','mutilate','authenticator','');
+INSERT INTO t2 VALUES (1159,158307,00,'extramarital','mommy','Washoe','');
+INSERT INTO t2 VALUES (1160,158402,00,'spates','bulkheads','penny','');
+INSERT INTO t2 VALUES (1161,158401,00,'cloakroom','undeclared','Flagler','');
+INSERT INTO t2 VALUES (1162,068013,00,'gazer','displacements','stoned','');
+INSERT INTO t2 VALUES (1163,068012,00,'hand','nieces','cranes','');
+INSERT INTO t2 VALUES (1164,068203,00,'tucked','coeducation','masterful','');
+INSERT INTO t2 VALUES (1165,088205,00,'gems','brassy','biracial','');
+INSERT INTO t2 VALUES (1166,068704,00,'clinker','authenticator','steamships','');
+INSERT INTO t2 VALUES (1167,068604,00,'refiner','Washoe','windmills','');
+INSERT INTO t2 VALUES (1168,158502,00,'callus','penny','exploit','');
+INSERT INTO t2 VALUES (1169,123103,00,'leopards','Flagler','riverfront','');
+INSERT INTO t2 VALUES (1170,148026,00,'comfortingly','stoned','sisterly','');
+INSERT INTO t2 VALUES (1171,123302,00,'generically','cranes','sharpshoot','');
+INSERT INTO t2 VALUES (1172,076503,00,'getters','masterful','mittens','');
+INSERT INTO t2 VALUES (1173,126304,00,'sexually','biracial','interdependency','');
+INSERT INTO t2 VALUES (1174,068306,00,'spear','steamships','policy','');
+INSERT INTO t2 VALUES (1175,143504,00,'serums','windmills','unleashing','');
+INSERT INTO t2 VALUES (1176,160201,00,'Italianization','exploit','pretenders','');
+INSERT INTO t2 VALUES (1177,148028,00,'attendants','riverfront','overstatements','');
+INSERT INTO t2 VALUES (1178,148027,00,'spies','sisterly','birthed','');
+INSERT INTO t2 VALUES (1179,143505,00,'Anthony','sharpshoot','opportunism','');
+INSERT INTO t2 VALUES (1180,108014,00,'planar','mittens','showroom','');
+INSERT INTO t2 VALUES (1181,076104,00,'cupped','interdependency','compromisingly','');
+INSERT INTO t2 VALUES (1182,078106,00,'cleanser','policy','Medicare','');
+INSERT INTO t2 VALUES (1183,126102,00,'commuters','unleashing','corresponds','');
+INSERT INTO t2 VALUES (1184,128029,00,'honeysuckle','pretenders','hardware','');
+INSERT INTO t2 VALUES (1185,128028,00,'orphanage','overstatements','implant','');
+INSERT INTO t2 VALUES (1186,018410,00,'skies','birthed','Alicia','');
+INSERT INTO t2 VALUES (1187,128110,00,'crushers','opportunism','requesting','');
+INSERT INTO t2 VALUES (1188,148506,00,'Puritan','showroom','produced','');
+INSERT INTO t2 VALUES (1189,123303,00,'squeezer','compromisingly','criticizes','');
+INSERT INTO t2 VALUES (1190,123304,00,'bruises','Medicare','backer','');
+INSERT INTO t2 VALUES (1191,068504,00,'bonfire','corresponds','positively','');
+INSERT INTO t2 VALUES (1192,068305,00,'Colombo','hardware','colicky','');
+INSERT INTO t2 VALUES (1193,000000,00,'nondecreasing','implant','thrillingly','');
+--enable_query_log
+
+#
+# Search with a key
+#
+
+select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
+select fld3 from t2 where fld3 like "%cultivation" ;
+
+#
+# Search with a key using sorting and limit the same time
+#
+
+select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
+select fld3,companynr from t2 where companynr = 58 order by fld3;
+
+select fld3 from t2 order by fld3 desc limit 10;
+select fld3 from t2 order by fld3 desc limit 5;
+select fld3 from t2 order by fld3 desc limit 5,5;
+
+#
+# Search with a key having a constant with each unique key.
+# The table is read directly with read-next on fld3
+#
+
+select t2.fld3 from t2 where fld3 = 'honeysuckle';
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
+select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
+select t2.fld3 from t2 where fld3 LIKE 'h%le';
+
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
+select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
+
+#
+# Test using INDEX and IGNORE INDEX
+#
+
+explain select t2.fld3 from t2 where fld3 = 'honeysuckle';
+
+explain select fld3 from t2 ignore index (fld3) where fld3 = 'honeysuckle';
+explain select fld3 from t2 use index (fld1) where fld3 = 'honeysuckle';
+
+explain select fld3 from t2 use index (fld3) where fld3 = 'honeysuckle';
+explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
+
+#
+# NOTE NOTE NOTE
+# The next should give an error
+#
+
+-- error 1176
+explain select fld3 from t2 ignore index (fld3,not_used);
+-- error 1176
+explain select fld3 from t2 use index (not_used);
+
+#
+# Test sorting with a used key (there is no need for sorting)
+#
+
+select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+explain select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
+
+#
+# Search with a key having a constant with many occurrences
+# The table is read directly with read-next having fld3 to get the
+# occurrences
+#
+
+select fld1,fld3 from t2 where companynr = 37 and fld3 = 'appendixes';
+
+#
+# Search with bunched 'or's.
+# If one can limit the key to a certain interval only the possible
+# alternatives will be gone through
+#
+
+select fld1 from t2 where fld1=250501 or fld1="250502";
+explain select fld1 from t2 where fld1=250501 or fld1="250502";
+select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+explain select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+
+#
+# Search with a key with LIKE constant
+# If the like starts with a certain letter key will be used.
+#
+
+select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
+select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
+select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
+select fld1,fld3 from t2 where fld1 like "25050%";
+select fld1,fld3 from t2 where fld1 like "25050_";
+
+#
+# Search using distinct. An automatic grouping will be done over all the fields,
+# if only distinct is used. In any other case a temporary table will always
+# be created. If only the field used for sorting is from the main register,
+# it will be sorted first before the distinct table is created.
+#
+
+select distinct companynr from t2;
+select distinct companynr from t2 order by companynr;
+select distinct companynr from t2 order by companynr desc;
+select distinct t2.fld3,period from t2,t1 where companynr=37 and fld3 like "O%";
+
+select distinct fld3 from t2 where companynr = 34 order by fld3;
+select distinct fld3 from t2 limit 10;
+select distinct fld3 from t2 having fld3 like "A%" limit 10;
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%";
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" order by a limit 10;
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%" limit 10;
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" limit 10;
+
+# make a big table.
+
+create table t3 (
+ period int not null,
+ name char(32) not null,
+ companynr int not null,
+ price double(11,0),
+ price2 double(11,0),
+ key (period),
+ key (name)
+);
+
+--disable_query_log
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1001,"Iranizes",37,5987435,234724);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1002,"violinist",37,28357832,8723648);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1003,"extramarital",37,39654943,235872);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1004,"spates",78,726498,72987523);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1005,"cloakroom",78,98439034,823742);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1006,"gazer",101,834598,27348324);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1007,"hand",154,983543950,29837423);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1008,"tucked",311,234298,3275892);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1009,"gems",447,2374834,9872392);
+INSERT INTO t3 (period,name,companynr,price,price2) VALUES (1010,"clinker",512,786542,76234234);
+--enable_query_log
+
+create temporary table tmp engine = myisam select * from t3;
+
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+#insert into tmp select * from t3;
+#insert into t3 select * from tmp;
+
+alter table t3 add t2nr int not null auto_increment primary key first;
+
+drop table tmp;
+
+# big table done
+
+SET SQL_BIG_TABLES=1;
+select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10;
+SET SQL_BIG_TABLES=0;
+select distinct concat(fld3," ",fld3) from t2,t3 where t2.fld1=t3.t2nr order by fld3 limit 10;
+select distinct fld5 from t2 limit 10;
+
+#
+# Force use of remove_dupp
+#
+
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+SET SQL_BIG_TABLES=1; # Force use of MyISAM
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+SET SQL_BIG_TABLES=0;
+select distinct fld3,repeat("a",length(fld3)),count(*) from t2 group by companynr,fld3 limit 100,10;
+
+#
+# A big order by that should trigger a merge in filesort
+#
+
+select distinct companynr,rtrim(space(512+companynr)) from t3 order by 1,2;
+
+#
+# Search with distinct and order by with many table.
+#
+
+select distinct fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by fld3;
+
+#
+# Here the last fld3 is optimized away from the order by
+#
+
+explain select t3.t2nr,fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by t3.t2nr,fld3;
+
+#
+# Some test with ORDER BY and limit
+#
+
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
+
+#
+# Search with a constant table.
+#
+
+select period from t1;
+select period from t1 where period=1900;
+select fld3,period from t1,t2 where fld1 = 011401 order by period;
+
+#
+# Search with a constant table and several keyparts. (Rows are read only once
+# in the beginning of the search)
+#
+
+select fld3,period from t2,t3 where t2.fld1 = 011401 and t2.fld1=t3.t2nr and t3.period=1001;
+
+explain select fld3,period from t2,t3 where t2.fld1 = 011401 and t3.t2nr=t2.fld1 and 1001 = t3.period;
+
+#
+# Search with a constant table and several rows from another table
+#
+
+select fld3,period from t2,t1 where companynr*10 = 37*10;
+
+#
+# Search with a table reference and without a key.
+# t3 will be the main table.
+#
+
+select fld3,period,price,price2 from t2,t3 where t2.fld1=t3.t2nr and period >= 1001 and period <= 1002 and t2.companynr = 37 order by fld3,period, price;
+
+#
+# Search with an interval on a table with full key on reference table.
+# Here t2 will be the main table and only records matching the
+# t2nr will be checked.
+#
+
+select t2.fld1,fld3,period,price,price2 from t2,t3 where t2.fld1>= 18201 and t2.fld1 <= 18811 and t2.fld1=t3.t2nr and period = 1001 and t2.companynr = 37;
+
+#
+# We need another table for join stuff..
+#
+
+create table t4 (
+ companynr tinyint(2) unsigned zerofill NOT NULL default '00',
+ companyname char(30) NOT NULL default '',
+ PRIMARY KEY (companynr),
+ UNIQUE KEY companyname(companyname)
+) ENGINE=MyISAM MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
+
+--disable_query_log
+INSERT INTO t4 (companynr, companyname) VALUES (29,'company 1');
+INSERT INTO t4 (companynr, companyname) VALUES (34,'company 2');
+INSERT INTO t4 (companynr, companyname) VALUES (36,'company 3');
+INSERT INTO t4 (companynr, companyname) VALUES (37,'company 4');
+INSERT INTO t4 (companynr, companyname) VALUES (40,'company 5');
+INSERT INTO t4 (companynr, companyname) VALUES (41,'company 6');
+INSERT INTO t4 (companynr, companyname) VALUES (53,'company 7');
+INSERT INTO t4 (companynr, companyname) VALUES (58,'company 8');
+INSERT INTO t4 (companynr, companyname) VALUES (65,'company 9');
+INSERT INTO t4 (companynr, companyname) VALUES (68,'company 10');
+INSERT INTO t4 (companynr, companyname) VALUES (50,'company 11');
+INSERT INTO t4 (companynr, companyname) VALUES (00,'Unknown');
+--enable_query_log
+
+#
+# Test of stright join to force a full join.
+#
+
+select STRAIGHT_JOIN t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+
+select SQL_SMALL_RESULT t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+
+#
+# Full join (same alias)
+#
+
+select * from t1,t1 t12;
+select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
+
+#
+# Test of left join.
+#
+insert into t2 (fld1, companynr) values (999999,99);
+
+select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
+explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+delete from t2 where fld1=999999;
+
+#
+# Test left join optimization
+
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+# Following can't be optimized
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+
+#
+# Joins with forms.
+#
+
+select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+
+#
+# Search using 'or' with the same referens group.
+# An interval search will be done first with the first table and after that
+# the other table is referenced with a key with a 'test if key in use' for
+# each record
+#
+
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
+
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t2.fld1 = 38208 or t2.fld1 = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t3.t2nr = 38208 or t3.t2nr = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+
+#
+# Test of many parenthesis levels
+#
+
+select period from t1 where (((period > 0) or period < 10000 or (period = 1900)) and (period=1900 and period <= 1901) or (period=1903 and (period=1903)) and period>=1902) or ((period=1904 or period=1905) or (period=1906 or period>1907)) or (period=1908 and period = 1909);
+select period from t1 where ((period > 0 and period < 1) or (((period > 0 and period < 100) and (period > 10)) or (period > 10)) or (period > 0 and (period > 5 or period > 6)));
+
+select a.fld1 from t2 as a,t2 b where ((a.fld1 = 250501 and a.fld1=b.fld1) or a.fld1=250502 or a.fld1=250503 or (a.fld1=250505 and a.fld1<=b.fld1 and b.fld1>=a.fld1)) and a.fld1=b.fld1;
+
+select fld1 from t2 where fld1 in (250502,98005,98006,250503,250605,250606) and fld1 >=250502 and fld1 not in (250605,250606);
+
+select fld1 from t2 where fld1 between 250502 and 250504;
+
+select fld3 from t2 where (((fld3 like "_%L%" ) or (fld3 like "%ok%")) and ( fld3 like "L%" or fld3 like "G%")) and fld3 like "L%" ;
+
+#
+# Group on one table.
+# optimizer: sort table by group and send rows.
+#
+
+select count(*) from t1;
+select companynr,count(*),sum(fld1) from t2 group by companynr;
+select companynr,count(*) from t2 group by companynr order by companynr desc limit 5;
+select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
+select companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+select /*! SQL_SMALL_RESULT */ companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+select companynr,count(price),sum(price),min(price),max(price),avg(price) from t3 group by companynr ;
+select distinct mod(companynr,10) from t4 group by companynr;
+select distinct 1 from t4 group by companynr;
+select count(distinct fld1) from t2;
+select companynr,count(distinct fld1) from t2 group by companynr;
+select companynr,count(*) from t2 group by companynr;
+select companynr,count(distinct concat(fld1,repeat(65,1000))) from t2 group by companynr;
+select companynr,count(distinct concat(fld1,repeat(65,200))) from t2 group by companynr;
+select companynr,count(distinct floor(fld1/100)) from t2 group by companynr;
+select companynr,count(distinct concat(repeat(65,1000),floor(fld1/100))) from t2 group by companynr;
+
+#
+# group with where on a key field
+#
+
+select sum(fld1),fld3 from t2 where fld3="Romans" group by fld1 limit 10;
+select name,count(*) from t3 where name='cloakroom' group by name;
+select name,count(*) from t3 where name='cloakroom' and price>10 group by name;
+select count(*) from t3 where name='cloakroom' and price2=823742;
+select name,count(*) from t3 where name='cloakroom' and price2=823742 group by name;
+select name,count(*) from t3 where name >= "extramarital" and price <= 39654943 group by name;
+select t2.fld3,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+
+#
+# Group with extra not group fields.
+#
+
+select companynr|0,companyname from t4 group by 1;
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by t2.companynr order by companyname;
+select t2.fld1,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+
+#
+# Calculation with group functions
+#
+
+select sum(Period)/count(*) from t1;
+select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
+select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
+
+#
+# Group with order on not first table
+# optimizer: sort table by group and write group records to tmp table.
+# sort tmp_table and send rows.
+#
+
+select companynr,count(*) from t2 group by companynr order by 2 desc;
+select companynr,count(*) from t2 where companynr > 40 group by companynr order by 2 desc;
+select t2.fld4,t2.fld1,count(price),sum(price),min(price),max(price),avg(price) from t3,t2 where t3.companynr = 37 and t2.fld1 = t3.t2nr group by fld1,t2.fld4;
+
+#
+# group by with many tables
+# optimizer: create tmp table with group-by uniq index.
+# write with update to tmp table.
+# sort tmp table according to order (or group if no order)
+# send rows
+#
+
+select t3.companynr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 group by companynr,fld3;
+select t2.companynr,count(*),min(fld3),max(fld3),sum(price),avg(price) from t2,t3 where t3.companynr >= 30 and t3.companynr <= 58 and t3.t2nr = t2.fld1 and 1+1=2 group by t2.companynr;
+
+#
+# group with many tables and long group on many tables. group on formula
+# optimizer: create tmp table with neaded fields
+# sort tmp table by group and calculate sums to new table
+# if different order by than group, sort tmp table
+# send rows
+#
+
+select t3.companynr+0,t3.t2nr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 37 group by 1,t3.t2nr,fld3,fld3,fld3,fld3,fld3 order by fld1;
+
+#
+# WHERE const folding
+# optimize: If there is a "field = const" part in the where, change all
+# instances of field in the and level to const.
+# All instances of const = const are checked once and removed.
+#
+
+#
+# Where -> t3.t2nr = 98005 and t2.fld1 = 98005
+#
+
+select sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1= t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008;
+
+select t2.fld1,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1 = t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008 or t3.t2nr = t2.fld1 and t2.fld1 = 38008 group by t2.fld1;
+
+explain select fld3 from t2 where 1>2 or 2>3;
+explain select fld3 from t2 where fld1=fld1;
+
+#
+# HAVING
+#
+
+select companynr,fld1 from t2 HAVING fld1=250501 or fld1=250502;
+select companynr,fld1 from t2 WHERE fld1>=250501 HAVING fld1<=250502;
+select companynr,count(*) as count,sum(fld1) as sum from t2 group by companynr having count > 40 and sum/count >= 120000;
+select companynr from t2 group by companynr having count(*) > 40 and sum(fld1)/count(*) >= 120000 ;
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by companyname having t2.companynr >= 40;
+
+#
+# MIN(), MAX() and COUNT() optimizing
+#
+
+select count(*) from t2;
+select count(*) from t2 where fld1 < 098024;
+# PS does correct pre-zero here. MySQL can't do it as it returns a number.
+--disable_ps_protocol
+select min(fld1) from t2 where fld1>= 098024;
+--enable_ps_protocol
+select max(fld1) from t2 where fld1>= 098024;
+select count(*) from t3 where price2=76234234;
+select count(*) from t3 where companynr=512 and price2=76234234;
+explain select min(fld1),max(fld1),count(*) from t2;
+# PS does correct pre-zero here. MySQL can't do it as it returns a number.
+--disable_ps_protocol
+select min(fld1),max(fld1),count(*) from t2;
+--enable_ps_protocol
+select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742;
+select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78;
+select t2nr,count(*) from t3 where name='gems' group by t2nr limit 20;
+select max(t2nr) from t3 where price=983543950;
+
+#
+# Test of alias
+#
+
+select t1.period from t3 = t1 limit 1;
+select t1.period from t1 as t1 limit 1;
+select t1.period as "Nuvarande period" from t1 as t1 limit 1;
+select period as ok_period from t1 limit 1;
+select period as ok_period from t1 group by ok_period limit 1;
+select 1+1 as summa from t1 group by summa limit 1;
+select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
+
+#
+# Some simple show commands
+#
+
+show tables;
+show tables from test like "s%";
+show tables from test like "t?";
+# We mask out the Privileges column because it differs with embedded server
+--replace_column 8 #
+show full columns from t2;
+--replace_column 8 #
+show full columns from t2 from test like 'f%';
+--replace_column 8 #
+show full columns from t2 from test like 's%';
+show keys from t2;
+
+drop table t4, t3, t2, t1;
+
+
+CREATE TABLE t1 (
+ cont_nr int(11) NOT NULL auto_increment,
+ ver_nr int(11) NOT NULL default '0',
+ aufnr int(11) NOT NULL default '0',
+ username varchar(50) NOT NULL default '',
+ hdl_nr int(11) NOT NULL default '0',
+ eintrag date NOT NULL default '0000-00-00',
+ st_klasse varchar(40) NOT NULL default '',
+ st_wert varchar(40) NOT NULL default '',
+ st_zusatz varchar(40) NOT NULL default '',
+ st_bemerkung varchar(255) NOT NULL default '',
+ kunden_art varchar(40) NOT NULL default '',
+ mcbs_knr int(11) default NULL,
+ mcbs_aufnr int(11) NOT NULL default '0',
+ schufa_status char(1) default '?',
+ bemerkung text,
+ wirknetz text,
+ wf_igz int(11) NOT NULL default '0',
+ tarifcode varchar(80) default NULL,
+ recycle char(1) default NULL,
+ sim varchar(30) default NULL,
+ mcbs_tpl varchar(30) default NULL,
+ emp_nr int(11) NOT NULL default '0',
+ laufzeit int(11) default NULL,
+ hdl_name varchar(30) default NULL,
+ prov_hdl_nr int(11) NOT NULL default '0',
+ auto_wirknetz varchar(50) default NULL,
+ auto_billing varchar(50) default NULL,
+ touch timestamp NOT NULL,
+ kategorie varchar(50) default NULL,
+ kundentyp varchar(20) NOT NULL default '',
+ sammel_rech_msisdn varchar(30) NOT NULL default '',
+ p_nr varchar(9) NOT NULL default '',
+ suffix char(3) NOT NULL default '',
+ PRIMARY KEY (cont_nr),
+ KEY idx_aufnr(aufnr),
+ KEY idx_hdl_nr(hdl_nr),
+ KEY idx_st_klasse(st_klasse),
+ KEY ver_nr(ver_nr),
+ KEY eintrag_idx(eintrag),
+ KEY emp_nr_idx(emp_nr),
+ KEY wf_igz(wf_igz),
+ KEY touch(touch),
+ KEY hdl_tag(eintrag,hdl_nr),
+ KEY prov_hdl_nr(prov_hdl_nr),
+ KEY mcbs_aufnr(mcbs_aufnr),
+ KEY kundentyp(kundentyp),
+ KEY p_nr(p_nr,suffix)
+) ENGINE=MyISAM;
+
+INSERT INTO t1 VALUES (3359356,405,3359356,'Mustermann Musterfrau',52500,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1485525,2122316,'+','','N',1909160,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',3,24,'MobilCom Shop Koeln',52500,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359357,468,3359357,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1503580,2139699,'+','','P',1909171,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359358,407,3359358,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1501358,2137473,'N','','N',1909159,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359359,468,3359359,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1507831,2143894,'+','','P',1909162,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359360,0,0,'Mustermann Musterfrau',29674907,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1900169997,2414578,'+',NULL,'N',1909148,'',NULL,NULL,'RV99066_2',20,NULL,'POS',29674907,NULL,NULL,20010202105916,'Mobilfunk','','','97317481','007');
+INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag storniert','','(7001-84):Storno, Kd. möchte nicht mehr','privat',NULL,0,'+','','P',1909150,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+
+--disable_ps_protocol
+SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
+--enable_ps_protocol
+drop table t1;
diff --git a/mysql-test/include/delete_anonymous_users.inc b/mysql-test/include/delete_anonymous_users.inc
new file mode 100644
index 00000000000..9f642223748
--- /dev/null
+++ b/mysql-test/include/delete_anonymous_users.inc
@@ -0,0 +1,5 @@
+# Remove anonymous users added by add_anonymous_users.inc
+disable_query_log;
+DELETE FROM mysql.user where host='localhost' and user='';
+FLUSH PRIVILEGES;
+enable_query_log;
diff --git a/mysql-test/include/federated.inc b/mysql-test/include/federated.inc
new file mode 100644
index 00000000000..7bdb2efaa8b
--- /dev/null
+++ b/mysql-test/include/federated.inc
@@ -0,0 +1,23 @@
+--source include/have_log_bin.inc
+--source include/not_embedded.inc
+--source ./include/have_federated_db.inc
+
+source ./include/master-slave.inc;
+
+# remote table creation
+
+connection slave;
+#--replicate-ignore-db=federated
+stop slave;
+
+--disable_warnings
+# at this point, we are connected to master
+DROP DATABASE IF EXISTS federated;
+--enable_warnings
+CREATE DATABASE federated;
+
+connection master;
+--disable_warnings
+DROP DATABASE IF EXISTS federated;
+--enable_warnings
+CREATE DATABASE federated;
diff --git a/mysql-test/include/federated_cleanup.inc b/mysql-test/include/federated_cleanup.inc
new file mode 100644
index 00000000000..17a6e1e5100
--- /dev/null
+++ b/mysql-test/include/federated_cleanup.inc
@@ -0,0 +1,11 @@
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+--enable_warnings
+
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+--enable_warnings
diff --git a/mysql-test/include/get_binlog_dump_thread_id.inc b/mysql-test/include/get_binlog_dump_thread_id.inc
new file mode 100644
index 00000000000..bfc8506b39e
--- /dev/null
+++ b/mysql-test/include/get_binlog_dump_thread_id.inc
@@ -0,0 +1,22 @@
+--exec $MYSQL test -e "show processlist" > $MYSQLTEST_VARDIR/tmp/bl_dump_thread_id
+--disable_warnings
+drop table if exists t999;
+--enable_warnings
+# Create a table to hold the process list
+create temporary table t999(
+ id int,
+ user char(255),
+ host char(255),
+ db char(255),
+ Command char(255),
+ time int,
+ State char(255),
+ info char(255)
+);
+# Load processlist into table, headers will create seom warnings
+--disable_warnings
+--replace_result $MYSQLTEST_VARDIR "."
+eval LOAD DATA INFILE "$MYSQLTEST_VARDIR/tmp/bl_dump_thread_id" into table t999;
+--enable_warnings
+let $id = `select Id from t999 where Command="Binlog Dump"`;
+drop table t999;
diff --git a/mysql-test/include/gis_generic.inc b/mysql-test/include/gis_generic.inc
new file mode 100644
index 00000000000..70e82a13364
--- /dev/null
+++ b/mysql-test/include/gis_generic.inc
@@ -0,0 +1,249 @@
+--source include/have_geometry.inc
+
+#
+# Spatial objects
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+--enable_warnings
+
+CREATE TABLE gis_point (fid INTEGER, g POINT);
+CREATE TABLE gis_line (fid INTEGER, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER, g GEOMETRY);
+
+SHOW CREATE TABLE gis_point;
+SHOW FIELDS FROM gis_point;
+SHOW FIELDS FROM gis_line;
+SHOW FIELDS FROM gis_polygon;
+SHOW FIELDS FROM gis_multi_point;
+SHOW FIELDS FROM gis_multi_line;
+SHOW FIELDS FROM gis_multi_polygon;
+SHOW FIELDS FROM gis_geometrycollection;
+SHOW FIELDS FROM gis_geometry;
+
+
+INSERT INTO gis_point VALUES
+(101, PointFromText('POINT(10 10)')),
+(102, PointFromText('POINT(20 10)')),
+(103, PointFromText('POINT(20 20)')),
+(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
+
+INSERT INTO gis_line VALUES
+(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
+(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
+(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
+
+INSERT INTO gis_polygon VALUES
+(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
+(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
+(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
+
+INSERT INTO gis_multi_point VALUES
+(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
+(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
+(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
+
+INSERT INTO gis_multi_line VALUES
+(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
+(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
+(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
+
+
+INSERT INTO gis_multi_polygon VALUES
+(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
+
+INSERT INTO gis_geometrycollection VALUES
+(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
+(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
+
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+
+SELECT fid, AsText(g) FROM gis_point ORDER by fid;
+SELECT fid, AsText(g) FROM gis_line ORDER by fid;
+SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
+SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
+SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
+SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
+SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
+SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
+
+SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
+SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
+SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+
+SELECT fid, X(g) FROM gis_point ORDER by fid;
+SELECT fid, Y(g) FROM gis_point ORDER by fid;
+explain extended select X(g),Y(g) FROM gis_point;
+
+SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
+SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
+SELECT fid, GLength(g) FROM gis_line ORDER by fid;
+SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
+SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
+SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
+SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+
+SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
+
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
+SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
+
+SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
+SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
+SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
+SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+
+SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+explain extended SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+
+#
+# Check that ALTER TABLE doesn't loose geometry type
+#
+CREATE TABLE t1 (
+ gp point,
+ ln linestring,
+ pg polygon,
+ mp multipoint,
+ mln multilinestring,
+ mpg multipolygon,
+ gc geometrycollection,
+ gm geometry
+);
+
+SHOW FIELDS FROM t1;
+ALTER TABLE t1 ADD fid INT;
+SHOW FIELDS FROM t1;
+DROP TABLE t1;
+
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+-- error 1416
+insert into t1 values ('Garbage');
+-- error 1416
+insert IGNORE into t1 values ('Garbage');
+
+drop table t1;
+
+create table t1 (fl geometry not null);
+--error 1416
+insert into t1 values (1);
+--error 1416
+insert into t1 values (1.11);
+--error 1416
+insert into t1 values ("qwerty");
+--error 1048
+insert into t1 values (pointfromtext('point(1,1)'));
+
+drop table t1;
+
+--echo End of 4.1 tests
+
+
+#
+# Bug#24563: MBROverlaps does not seem to function propertly
+# Bug#54888: MBROverlaps missing in 5.1?
+#
+
+# Test all MBR* functions and their non-MBR-prefixed aliases,
+# using shifted squares to verify the spatial relations.
+
+CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
+
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+
+# Overlaps needs a few more tests, with point and line dimensions
+
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/include/gis_keys.inc b/mysql-test/include/gis_keys.inc
new file mode 100644
index 00000000000..c75311f062a
--- /dev/null
+++ b/mysql-test/include/gis_keys.inc
@@ -0,0 +1,46 @@
+--source include/have_geometry.inc
+
+#
+# Spatial objects with keys
+#
+
+#
+# Bug #30825: Problems when putting a non-spatial index on a GIS column
+#
+
+CREATE TABLE t1 (p POINT);
+CREATE TABLE t2 (p POINT, INDEX(p));
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+
+# no index, returns 1 as expected
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+
+# with index, returns 1 as expected
+# EXPLAIN shows that the index is not used though
+# due to the "most rows covered anyway, so a scan is more effective" rule
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+
+# adding another row to the table so that
+# the "most rows covered" rule doesn't kick in anymore
+# now EXPLAIN shows the index used on the table
+# and we're getting the wrong result again
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+EXPLAIN
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+
+EXPLAIN
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+
+DROP TABLE t1, t2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/include/have_archive.inc b/mysql-test/include/have_archive.inc
index f7fb942e83e..262f66076a8 100644
--- a/mysql-test/include/have_archive.inc
+++ b/mysql-test/include/have_archive.inc
@@ -1,4 +1,4 @@
--- require r/have_archive.require
-disable_query_log;
+--require r/have_archive.require
+--disable_query_log
show variables like "have_archive";
-enable_query_log;
+--enable_query_log
diff --git a/mysql-test/include/have_bug25714.inc b/mysql-test/include/have_bug25714.inc
new file mode 100644
index 00000000000..0c09ae1a035
--- /dev/null
+++ b/mysql-test/include/have_bug25714.inc
@@ -0,0 +1,7 @@
+#
+# Check if the variable MYSQL_BUG25714 is set
+#
+--require r/have_bug25714.require
+disable_query_log;
+eval select LENGTH("$MYSQL_BUG25714") > 0 as "have_bug25714_exe";
+enable_query_log;
diff --git a/mysql-test/include/have_eucjpms.inc b/mysql-test/include/have_eucjpms.inc
new file mode 100644
index 00000000000..a5e1a5ac547
--- /dev/null
+++ b/mysql-test/include/have_eucjpms.inc
@@ -0,0 +1,4 @@
+-- require r/have_eucjpms.require
+disable_query_log;
+show collation like "eucjpms_japanese_ci";
+enable_query_log;
diff --git a/mysql-test/include/have_federated_db.inc b/mysql-test/include/have_federated_db.inc
new file mode 100644
index 00000000000..e4cf1366fda
--- /dev/null
+++ b/mysql-test/include/have_federated_db.inc
@@ -0,0 +1,4 @@
+-- require r/have_federated_db.require
+disable_query_log;
+show variables like "have_federated_engine";
+enable_query_log;
diff --git a/mysql-test/include/have_geometry.inc b/mysql-test/include/have_geometry.inc
index 169c3a41ee7..f0ec22af172 100644
--- a/mysql-test/include/have_geometry.inc
+++ b/mysql-test/include/have_geometry.inc
@@ -1,4 +1,4 @@
--- require r/have_geometry.require
-disable_query_log;
+--require r/have_geometry.require
+--disable_query_log
show variables like "have_geometry";
-enable_query_log;
+--enable_query_log
diff --git a/mysql-test/include/have_isam.inc b/mysql-test/include/have_isam.inc
deleted file mode 100644
index 830170c921f..00000000000
--- a/mysql-test/include/have_isam.inc
+++ /dev/null
@@ -1,4 +0,0 @@
--- require r/have_isam.require
-disable_query_log;
-show variables like "have_isam";
-enable_query_log;
diff --git a/mysql-test/include/have_log_bin.inc b/mysql-test/include/have_log_bin.inc
new file mode 100644
index 00000000000..11530dc953e
--- /dev/null
+++ b/mysql-test/include/have_log_bin.inc
@@ -0,0 +1,4 @@
+-- require r/have_log_bin.require
+disable_query_log;
+show variables like "log_bin";
+enable_query_log;
diff --git a/mysql-test/include/have_lowercase1.inc b/mysql-test/include/have_lowercase1.inc
new file mode 100644
index 00000000000..1b33432dbe3
--- /dev/null
+++ b/mysql-test/include/have_lowercase1.inc
@@ -0,0 +1,4 @@
+--require r/lowercase1.require
+--disable_query_log
+show variables like 'lower_case_table_names';
+--enable_query_log
diff --git a/mysql-test/include/have_multi_ndb.inc b/mysql-test/include/have_multi_ndb.inc
index 844c4d78774..45a551274f7 100644
--- a/mysql-test/include/have_multi_ndb.inc
+++ b/mysql-test/include/have_multi_ndb.inc
@@ -11,8 +11,6 @@ drop table if exists t1, t2;
flush tables;
--require r/have_ndb.require
show variables like "have_ndbcluster";
-#--require r/server_id.require
-#show variables like "server_id";
enable_query_log;
# Check that server2 has NDB support
@@ -24,8 +22,6 @@ drop table if exists t1, t2;
flush tables;
--require r/have_ndb.require
show variables like "have_ndbcluster";
-#--require r@r/server_id1.require
-#show variables like "server_id";
enable_query_log;
# Set the default connection to 'server1'
diff --git a/mysql-test/include/have_ndb.inc b/mysql-test/include/have_ndb.inc
index 9b85197abe8..721d79392b7 100644
--- a/mysql-test/include/have_ndb.inc
+++ b/mysql-test/include/have_ndb.inc
@@ -1,8 +1,13 @@
---exec test x$NDB_STATUS_OK = x1
+# Check that server is compiled and started with support for NDB
-- require r/have_ndb.require
disable_query_log;
show variables like "have_ndbcluster";
enable_query_log;
-#connect (server1,127.0.0.1,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
-#connect (server2,127.0.0.1,root,,test,$MASTER_MYPORT1,$MASTER_MYSOCK1);
-#connection server1;
+
+# Check that NDB is installed and known to be working
+-- require r/have_ndb_status_ok.require
+disable_query_log;
+eval select "$NDB_STATUS_OK" as ndb_status_ok;
+enable_query_log;
+
+
diff --git a/mysql-test/include/have_openssl.inc b/mysql-test/include/have_openssl.inc
deleted file mode 100644
index 54c5b04b3e4..00000000000
--- a/mysql-test/include/have_openssl.inc
+++ /dev/null
@@ -1,4 +0,0 @@
--- require r/have_openssl.require
-disable_query_log;
-show variables like "have_openssl";
-enable_query_log;
diff --git a/mysql-test/include/have_openssl_1.inc b/mysql-test/include/have_openssl_1.inc
deleted file mode 100644
index 887309c7e23..00000000000
--- a/mysql-test/include/have_openssl_1.inc
+++ /dev/null
@@ -1,4 +0,0 @@
--- require r/have_openssl_1.require
-disable_query_log;
-SHOW STATUS LIKE 'Ssl_cipher';
-enable_query_log;
diff --git a/mysql-test/include/have_outfile.inc b/mysql-test/include/have_outfile.inc
index 31e95f4810a..ae4a2723840 100644
--- a/mysql-test/include/have_outfile.inc
+++ b/mysql-test/include/have_outfile.inc
@@ -1,5 +1,5 @@
-- require r/have_outfile.require
disable_query_log;
select load_file(concat(@tmpdir,"/outfile.test"));
---exec rm $MYSQL_TEST_DIR/var/tmp/outfile.test
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile.test
enable_query_log;
diff --git a/mysql-test/include/have_ssl.inc b/mysql-test/include/have_ssl.inc
new file mode 100644
index 00000000000..fab57d630e5
--- /dev/null
+++ b/mysql-test/include/have_ssl.inc
@@ -0,0 +1,4 @@
+-- require r/have_ssl.require
+disable_query_log;
+show variables like "have_ssl";
+enable_query_log;
diff --git a/mysql-test/include/have_udf.inc b/mysql-test/include/have_udf.inc
new file mode 100644
index 00000000000..42b9942f74d
--- /dev/null
+++ b/mysql-test/include/have_udf.inc
@@ -0,0 +1,16 @@
+#
+# Check if server has support for loading udf's
+# i.e it will support dlopen
+#
+--require r/have_udf.require
+disable_query_log;
+show variables like "have_dynamic_loading";
+enable_query_log;
+
+#
+# Check if the variable UDF_EXAMPLE_LIB is set
+#
+--require r/have_udf_example.require
+disable_query_log;
+eval select LENGTH("$UDF_EXAMPLE_LIB") > 0 as "have_udf_example_lib";
+enable_query_log;
diff --git a/mysql-test/include/im_check_env.inc b/mysql-test/include/im_check_env.inc
new file mode 100644
index 00000000000..019e0984614
--- /dev/null
+++ b/mysql-test/include/im_check_env.inc
@@ -0,0 +1,25 @@
+# This file is intended to be used in each IM-test. It contains stamements,
+# that ensure that starting conditions (environment) for the IM-test are as
+# expected.
+
+# Check the running instances.
+
+--connect (mysql1_con,localhost,root,,mysql,$IM_MYSQLD1_PORT,$IM_MYSQLD1_SOCK)
+
+--connection mysql1_con
+
+SHOW VARIABLES LIKE 'server_id';
+
+--source include/not_windows.inc
+
+--connection default
+
+# Let IM detect that mysqld1 is online. This delay should be longer than
+# monitoring interval.
+
+--sleep 2
+
+# Check that IM understands that mysqld1 is online, while mysqld2 is
+# offline.
+
+SHOW INSTANCES;
diff --git a/mysql-test/include/innodb_rollback_on_timeout.inc b/mysql-test/include/innodb_rollback_on_timeout.inc
new file mode 100644
index 00000000000..73c7374c79e
--- /dev/null
+++ b/mysql-test/include/innodb_rollback_on_timeout.inc
@@ -0,0 +1,37 @@
+#
+# Bug #24200: Provide backwards compatibility mode for 4.x "rollback on
+# transaction timeout"
+#
+show variables like 'innodb_rollback_on_timeout';
+create table t1 (a int unsigned not null primary key) engine = innodb;
+insert into t1 values (1);
+commit;
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+connection con2;
+begin work;
+insert into t1 values (2);
+select * from t1;
+
+connection con1;
+begin work;
+insert into t1 values (5);
+select * from t1;
+# Lock wait timeout set to 2 seconds in <THIS TEST>-master.opt; this
+# statement will time out; in 5.0.13+, it will not roll back transaction.
+--error ER_LOCK_WAIT_TIMEOUT
+insert into t1 values (2);
+# On 5.0.13+, this should give ==> 1, 5
+select * from t1;
+commit;
+
+connection con2;
+select * from t1;
+commit;
+
+connection default;
+select * from t1;
+drop table t1;
+disconnect con1;
+disconnect con2;
diff --git a/mysql-test/include/loaddata_autocom.inc b/mysql-test/include/loaddata_autocom.inc
new file mode 100644
index 00000000000..e5071c73c49
--- /dev/null
+++ b/mysql-test/include/loaddata_autocom.inc
@@ -0,0 +1,21 @@
+# Test if the engine does autocommit in LOAD DATA INFILE, or not
+# (NDB wants to do, others don't).
+
+eval SET SESSION STORAGE_ENGINE = $engine_type;
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (a text, b text);
+start transaction;
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+commit;
+select count(*) from t1;
+truncate table t1;
+start transaction;
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+rollback;
+select count(*) from t1;
+
+drop table t1;
diff --git a/mysql-test/include/master-slave.inc b/mysql-test/include/master-slave.inc
index 9ef5489f346..0c27a1d8225 100644
--- a/mysql-test/include/master-slave.inc
+++ b/mysql-test/include/master-slave.inc
@@ -1,3 +1,6 @@
+# Replication tests need binlog
+source include/have_log_bin.inc;
+
connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,);
connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
@@ -8,7 +11,7 @@ connection slave;
--disable_warnings
stop slave;
--enable_warnings
---require r/slave-stopped.result
+--require r/slave-stopped.result
show status like 'Slave_running';
connection master;
--disable_warnings
diff --git a/mysql-test/include/mysqltest_while.inc b/mysql-test/include/mysqltest_while.inc
deleted file mode 100644
index 90b05ee2695..00000000000
--- a/mysql-test/include/mysqltest_while.inc
+++ /dev/null
@@ -1,137 +0,0 @@
-let $1 = 10;
-while ($1)
-{
-while ($1)
-{
-while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- while ($1)
-{
- echo $1;
- dec $1;
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
-}
diff --git a/mysql-test/include/ndb_backup.inc b/mysql-test/include/ndb_backup.inc
new file mode 100644
index 00000000000..f0a883d4e11
--- /dev/null
+++ b/mysql-test/include/ndb_backup.inc
@@ -0,0 +1,24 @@
+######################################################
+# By JBM 2006-02-16 So that the code is not repeated #
+# in test cases and can be reused. #
+######################################################
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "start backup" >> $NDB_TOOLS_OUTPUT
+
+# there is no neat way to find the backupid, this is a hack to find it...
+
+--exec $NDB_TOOLS_DIR/ndb_select_all --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -d sys --delimiter=',' SYSTAB_0 | grep 520093696 > $MYSQLTEST_VARDIR/tmp.dat
+
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
+
+DELETE FROM test.backup_info;
+
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+
+--replace_column 1 <the_backup_id>
+
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+
+let the_backup_id=`select @the_backup_id`;
+
+DROP TABLE test.backup_info;
+
diff --git a/mysql-test/include/ndb_backup_print.inc b/mysql-test/include/ndb_backup_print.inc
new file mode 100644
index 00000000000..57fb279491c
--- /dev/null
+++ b/mysql-test/include/ndb_backup_print.inc
@@ -0,0 +1,6 @@
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults $ndb_restore_opts -b $the_backup_id -n 1 $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id $ndb_restore_filter > $MYSQLTEST_VARDIR/tmp/tmp.dat
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults $ndb_restore_opts -b $the_backup_id -n 2 $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id $ndb_restore_filter >> $MYSQLTEST_VARDIR/tmp/tmp.dat
+--exec sort $MYSQLTEST_VARDIR/tmp/tmp.dat
+--exec rm -f $MYSQLTEST_VARDIR/tmp/tmp.dat
+--let ndb_restore_opts=
+--let ndb_restore_filter=
diff --git a/mysql-test/include/ndb_default_cluster.inc b/mysql-test/include/ndb_default_cluster.inc
new file mode 100644
index 00000000000..de7eda3c596
--- /dev/null
+++ b/mysql-test/include/ndb_default_cluster.inc
@@ -0,0 +1,4 @@
+-- require r/ndb_default_cluster.require
+disable_query_log;
+show status like "Ndb_config_from_host";
+enable_query_log;
diff --git a/mysql-test/include/not_as_root.inc b/mysql-test/include/not_as_root.inc
new file mode 100644
index 00000000000..e0277ea593e
--- /dev/null
+++ b/mysql-test/include/not_as_root.inc
@@ -0,0 +1,4 @@
+-- require r/not_as_root.require
+disable_query_log;
+eval select "$MYSQL_TEST_ROOT" as running_as_root;
+enable_query_log;
diff --git a/mysql-test/include/ps_conv.inc b/mysql-test/include/ps_conv.inc
index 348526202ec..195d1061664 100644
--- a/mysql-test/include/ps_conv.inc
+++ b/mysql-test/include/ps_conv.inc
@@ -104,7 +104,7 @@ drop table t5 ;
# c5 integer, c6 bigint, c7 float, c8 double,
# c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
# c13 date, c14 datetime, c15 timestamp(14), c16 time,
-# c17 year, c18 bit, c19 bool, c20 char,
+# c17 year, c18 tinyint, c19 bool, c20 char,
# c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
# c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
# c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -1152,42 +1152,42 @@ select '-- select .. where date/time column = .. --' as test_sequence ;
######## SELECT .. WHERE column(date/time/..)=value(CHAR(n)/LONGTEXT) ########
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
######## SELECT .. WHERE column(date/time/..)=value(DATETIME/LONGBLOB) ########
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
c17= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
c17= CAST('1991-01-01 01:01:01' as datetime)" ;
execute stmt1 ;
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
diff --git a/mysql-test/include/ps_create.inc b/mysql-test/include/ps_create.inc
index dfc9c494b46..b2a6fc4b920 100644
--- a/mysql-test/include/ps_create.inc
+++ b/mysql-test/include/ps_create.inc
@@ -33,8 +33,8 @@ eval create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
- c13 date, c14 datetime, c15 timestamp(14), c16 time,
- c17 year, c18 bit, c19 bool, c20 char,
+ c13 date, c14 datetime, c15 timestamp, c16 time,
+ c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
diff --git a/mysql-test/include/ps_modify.inc b/mysql-test/include/ps_modify.inc
index eb6820934f3..633c317f4b2 100644
--- a/mysql-test/include/ps_modify.inc
+++ b/mysql-test/include/ps_modify.inc
@@ -59,7 +59,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
## truncate a table
---error 1295
prepare stmt1 from 'truncate table t1' ;
@@ -175,11 +174,8 @@ where a=2
limit 1';
execute stmt1 ;
select a,b from t1 where b = 'bla' ;
-# currently (May 2004, Version 4.1) it is impossible
--- error 1064
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
--disable_query_log
select '------ insert tests ------' as test_sequence ;
diff --git a/mysql-test/include/ps_query.inc b/mysql-test/include/ps_query.inc
index a2eac09d121..e96d666eaec 100644
--- a/mysql-test/include/ps_query.inc
+++ b/mysql-test/include/ps_query.inc
@@ -299,10 +299,8 @@ set @arg00=1;
prepare stmt1 from ' select a,b from t1 order by a
limit 1 ';
execute stmt1 ;
-# currently (May 2004, Version 4.1) it is impossible
--- error 1064
-prepare stmt1 from ' select a,b from t1
-limit ? ';
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
##### parameter used in many places
set @arg00='b' ;
diff --git a/mysql-test/include/rpl_stmt_seq.inc b/mysql-test/include/rpl_stmt_seq.inc
index d56ee02e33c..3c91505d0d6 100644
--- a/mysql-test/include/rpl_stmt_seq.inc
+++ b/mysql-test/include/rpl_stmt_seq.inc
@@ -7,7 +7,7 @@
###############################################################
# Debug options : To debug this test script
###############################################################
-let $showbinlog= 0;
+let $show_binlog= 0;
let $manipulate= 1;
######## The typical test sequence
diff --git a/mysql-test/include/show_binlog_events.inc b/mysql-test/include/show_binlog_events.inc
new file mode 100644
index 00000000000..5d60fb19cb5
--- /dev/null
+++ b/mysql-test/include/show_binlog_events.inc
@@ -0,0 +1,4 @@
+--let $binlog_start=98
+--replace_column 5 #
+--replace_regex /\/\* xid=.* \*\//\/* XID *\//
+--eval show binlog events from $binlog_start
diff --git a/mysql-test/include/sp-vars.inc b/mysql-test/include/sp-vars.inc
new file mode 100644
index 00000000000..c241af2fb54
--- /dev/null
+++ b/mysql-test/include/sp-vars.inc
@@ -0,0 +1,131 @@
+delimiter |;
+
+# --------------------------------------------------------------------------
+
+CREATE PROCEDURE sp_vars_check_dflt()
+BEGIN
+ DECLARE v1 TINYINT DEFAULT 1e200;
+ DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
+ DECLARE v2 TINYINT DEFAULT -1e200;
+ DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
+ DECLARE v3 TINYINT DEFAULT 300;
+ DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
+ DECLARE v4 TINYINT DEFAULT -300;
+ DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
+
+ DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
+ DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
+ DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
+ DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
+
+ DECLARE v7 TINYINT DEFAULT '10';
+ DECLARE v8 TINYINT DEFAULT '10 ';
+ DECLARE v9 TINYINT DEFAULT ' 10 ';
+ DECLARE v10 TINYINT DEFAULT 'String 10 ';
+ DECLARE v11 TINYINT DEFAULT 'String10';
+ DECLARE v12 TINYINT DEFAULT '10 String';
+ DECLARE v13 TINYINT DEFAULT '10String';
+ DECLARE v14 TINYINT DEFAULT concat('10', ' ');
+ DECLARE v15 TINYINT DEFAULT concat(' ', '10');
+ DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
+
+ DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
+ DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
+ DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
+ DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
+
+ SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
+ SELECT v5, v5u, v6, v6u;
+ SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
+ SELECT v17, v18, v19, v20;
+END|
+
+# --------------------------------------------------------------------------
+
+CREATE PROCEDURE sp_vars_check_assignment()
+BEGIN
+ DECLARE i1, i2, i3, i4 TINYINT;
+ DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
+ DECLARE d1, d2, d3 DECIMAL(64, 2);
+
+ SET i1 = 1e200;
+ SET i2 = -1e200;
+ SET i3 = 300;
+ SET i4 = -300;
+
+ SELECT i1, i2, i3, i4;
+
+ SET i1 = 10 * 10 * 10;
+ SET i2 = -10 * 10 * 10;
+ SET i3 = sign(10 * 10) * 10 * 20;
+ SET i4 = sign(-10 * 10) * -10 * 20;
+
+ SELECT i1, i2, i3, i4;
+
+ SET u1 = 1e200;
+ SET u2 = -1e200;
+ SET u3 = 300;
+ SET u4 = -300;
+
+ SELECT u1, u2, u3, u4;
+
+ SET u1 = 10 * 10 * 10;
+ SET u2 = -10 * 10 * 10;
+ SET u3 = sign(10 * 10) * 10 * 20;
+ SET u4 = sign(-10 * 10) * -10 * 20;
+
+ SELECT u1, u2, u3, u4;
+
+ SET d1 = 1234;
+ SET d2 = 1234.12;
+ SET d3 = 1234.1234;
+
+ SELECT d1, d2, d3;
+
+ SET d1 = 12 * 100 + 34;
+ SET d2 = 12 * 100 + 34 + 0.12;
+ SET d3 = 12 * 100 + 34 + 0.1234;
+
+ SELECT d1, d2, d3;
+END|
+
+# --------------------------------------------------------------------------
+
+CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
+BEGIN
+ RETURN 1e200;
+END|
+
+# --------------------------------------------------------------------------
+
+CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
+BEGIN
+ RETURN 10 * 10 * 10;
+END|
+
+# --------------------------------------------------------------------------
+
+CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
+BEGIN
+ RETURN 'Hello, world';
+END|
+
+# --------------------------------------------------------------------------
+
+CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
+BEGIN
+ RETURN 12 * 10 + 34 + 0.1234;
+END|
+
+# --------------------------------------------------------------------------
+
+CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
+BEGIN
+ DECLARE div_zero INTEGER;
+ SELECT 1/0 INTO div_zero;
+ RETURN div_zero;
+END|
+
+# --------------------------------------------------------------------------
+
+delimiter ;|
diff --git a/mysql-test/include/strict_autoinc.inc b/mysql-test/include/strict_autoinc.inc
new file mode 100644
index 00000000000..823efcc2040
--- /dev/null
+++ b/mysql-test/include/strict_autoinc.inc
@@ -0,0 +1,32 @@
+#
+# Test for strict-mode autoincrement
+#
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+set @org_mode=@@sql_mode;
+eval create table t1
+(
+ `a` tinyint(4) NOT NULL auto_increment,
+ primary key (`a`)
+) engine = $type ;
+set @@sql_mode='strict_all_tables';
+--error ER_WARN_DATA_OUT_OF_RANGE
+insert into t1 values(1000);
+select count(*) from t1;
+
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+--error ER_WARN_DATA_OUT_OF_RANGE
+insert into t1 values(null);
+select count(*) from t1;
+
+set @@sql_mode=@org_mode;
+insert into t1 values(null);
+select * from t1;
+
+drop table t1;
+
+# End of test
diff --git a/mysql-test/include/system_db_struct.inc b/mysql-test/include/system_db_struct.inc
index 5a7aa26c65a..c66590b2fd8 100644
--- a/mysql-test/include/system_db_struct.inc
+++ b/mysql-test/include/system_db_struct.inc
@@ -10,3 +10,5 @@ show create table user;
show create table func;
show create table tables_priv;
show create table columns_priv;
+show create table procs_priv;
+show create table proc;
diff --git a/mysql-test/include/test_outfile.inc b/mysql-test/include/test_outfile.inc
index 0bede4938c6..b67e67a4dd4 100644
--- a/mysql-test/include/test_outfile.inc
+++ b/mysql-test/include/test_outfile.inc
@@ -1 +1 @@
-eval select "Outfile OK" into outfile "$MYSQL_TEST_DIR/var/tmp/outfile.test";
+eval select "Outfile OK" into outfile "$MYSQLTEST_VARDIR/tmp/outfile.test";
diff --git a/mysql-test/include/testdb_only.inc b/mysql-test/include/testdb_only.inc
new file mode 100644
index 00000000000..ddc3f123d45
--- /dev/null
+++ b/mysql-test/include/testdb_only.inc
@@ -0,0 +1,30 @@
+#################### include/testdb_only.inc ######################
+# #
+# We must prevent to work on databases created by customers, #
+# because we DROP/CREATE/MODIFY objects with sometimes common #
+# names like STAFF, EMPLOYEE etc. #
+# #
+# Therefore we check the environment variable USE_RUNNING_SERVER. #
+# USE_RUNNING_SERVER is exported by "mysql-test-run" and could #
+# contain the following values: #
+# 0 -- mysql-test-run was started without the --extern option #
+# That means the test will be performed within the test #
+# area 'mysql-test/var/...' . #
+# 1 -- mysql-test-run was started with the --extern option #
+# That means the test will be performed by an already #
+# running server and data modifications will most probably #
+# outside of the common test area 'mysql-test/var/...' . #
+# #
+# If USE_RUNNING_SERVER is not 0 the test will be skipped. #
+# #
+###################################################################
+
+--disable_query_log
+eval set @USE_RUNNING_SERVER= '$USE_RUNNING_SERVER';
+--require r/testdb_only.require
+SELECT 'use extern server'
+ AS "Variable_name ",
+ IF(@USE_RUNNING_SERVER= '1','YES',
+ IF(@USE_RUNNING_SERVER= '0','NO','UNEXPECTED'))
+ AS "Value" ;
+--enable_query_log
diff --git a/mysql-test/include/uses_vardir.inc b/mysql-test/include/uses_vardir.inc
new file mode 100644
index 00000000000..950de698a43
--- /dev/null
+++ b/mysql-test/include/uses_vardir.inc
@@ -0,0 +1,14 @@
+#
+# Some tests uses LOAD DATA with a relative path
+# and need to see for example ../std_data
+#
+# Also if an absolute path was used, the server might be started
+# with --secure-file-priv and wouldn't be allowed to LOAD a file
+# outside of it's vardir anyway
+#
+
+
+if (`select LOCATE('$MYSQLTEST_VARDIR', REPLACE(@@datadir, '\\\\', '/')) != 1`)
+{
+ skip Need mysqld in MYSQLTEST_VARDIR;
+}
diff --git a/mysql-test/include/varchar.inc b/mysql-test/include/varchar.inc
new file mode 100644
index 00000000000..70b563e871c
--- /dev/null
+++ b/mysql-test/include/varchar.inc
@@ -0,0 +1,239 @@
+# Initialise
+--disable_warnings
+drop table if exists t1,t2,t3;
+--enable_warnings
+
+disable_query_log;
+select "--- Testing varchar ---";
+enable_query_log;
+
+#
+# Simple basic test that endspace is saved
+#
+
+create table t1 (v varchar(10), c char(10), t text);
+insert into t1 values('+ ', '+ ', '+ ');
+set @a=repeat(' ',20);
+insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
+select concat('*',v,'*',c,'*',t,'*') from t1;
+
+# Check how columns are copied
+show create table t1;
+create table t2 like t1;
+show create table t2;
+create table t3 select * from t1;
+show create table t3;
+alter table t1 modify c varchar(10);
+show create table t1;
+alter table t1 modify v char(10);
+show create table t1;
+alter table t1 modify t varchar(10);
+show create table t1;
+select concat('*',v,'*',c,'*',t,'*') from t1;
+drop table t1,t2,t3;
+
+#
+# Testing of keys
+#
+create table t1 (v varchar(10), c char(10), t text, key(v), key(c), key(t(10)));
+show create table t1;
+disable_query_log;
+let $1=10;
+while ($1)
+{
+ let $2=27;
+ eval set @space=repeat(' ',10-$1);
+ while ($2)
+ {
+ eval set @char=char(ascii('a')+$2-1);
+ insert into t1 values(concat(@char,@space),concat(@char,@space),concat(@char,@space));
+ dec $2;
+ }
+ dec $1;
+}
+enable_query_log;
+select count(*) from t1;
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+select count(*) from t1 where c='a';
+select count(*) from t1 where t='a';
+select count(*) from t1 where v='a ';
+select count(*) from t1 where c='a ';
+select count(*) from t1 where t='a ';
+select count(*) from t1 where v between 'a' and 'a ';
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+select count(*) from t1 where v like 'a%';
+select count(*) from t1 where c like 'a%';
+select count(*) from t1 where t like 'a%';
+select count(*) from t1 where v like 'a %';
+# Test results differ for BDB, see comments in bdb.test
+# and they are also different from MySAM test results.
+--replace_column 9 #
+explain select count(*) from t1 where v='a ';
+--replace_column 9 #
+explain select count(*) from t1 where c='a ';
+--replace_column 9 #
+explain select count(*) from t1 where t='a ';
+--replace_column 9 #
+explain select count(*) from t1 where v like 'a%';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+
+--error 1062
+alter table t1 add unique(v);
+alter table t1 add key(v);
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
+--replace_column 6 # 9 #
+explain select * from t1 where v='a';
+
+# GROUP BY
+
+select v,count(*) from t1 group by v limit 10;
+select v,count(t) from t1 group by v limit 10;
+select v,count(c) from t1 group by v limit 10;
+select sql_big_result v,count(t) from t1 group by v limit 10;
+select sql_big_result v,count(c) from t1 group by v limit 10;
+select c,count(*) from t1 group by c limit 10;
+select c,count(t) from t1 group by c limit 10;
+select sql_big_result c,count(t) from t1 group by c limit 10;
+select t,count(*) from t1 group by t limit 10;
+select t,count(t) from t1 group by t limit 10;
+select sql_big_result t,count(t) from t1 group by t limit 10;
+
+#
+# Test varchar > 255 bytes
+#
+
+alter table t1 modify v varchar(300), drop key v, drop key v_2, add key v (v);
+show create table t1;
+select count(*) from t1 where v='a';
+select count(*) from t1 where v='a ';
+select count(*) from t1 where v between 'a' and 'a ';
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+select count(*) from t1 where v like 'a%';
+select count(*) from t1 where v like 'a %';
+--replace_column 9 #
+explain select count(*) from t1 where v='a ';
+--replace_column 9 #
+explain select count(*) from t1 where v like 'a%';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+--replace_column 9 #
+explain select * from t1 where v='a';
+
+# GROUP BY
+
+select v,count(*) from t1 group by v limit 10;
+select v,count(t) from t1 group by v limit 10;
+select sql_big_result v,count(t) from t1 group by v limit 10;
+
+#
+# Test varchar > 255 bytes, key < 255
+#
+
+alter table t1 drop key v, add key v (v(30));
+show create table t1;
+select count(*) from t1 where v='a';
+select count(*) from t1 where v='a ';
+select count(*) from t1 where v between 'a' and 'a ';
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+select count(*) from t1 where v like 'a%';
+select count(*) from t1 where v like 'a %';
+--replace_column 9 #
+explain select count(*) from t1 where v='a ';
+--replace_column 9 #
+explain select count(*) from t1 where v like 'a%';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+--replace_column 9 #
+explain select * from t1 where v='a';
+
+# GROUP BY
+
+select v,count(*) from t1 group by v limit 10;
+select v,count(t) from t1 group by v limit 10;
+select sql_big_result v,count(t) from t1 group by v limit 10;
+
+#
+# Test varchar > 512 (special case for GROUP BY becasue of
+# CONVERT_IF_BIGGER_TO_BLOB define)
+#
+
+alter table t1 modify v varchar(600), drop key v, add key v (v);
+show create table t1;
+select v,count(*) from t1 group by v limit 10;
+select v,count(t) from t1 group by v limit 10;
+select sql_big_result v,count(t) from t1 group by v limit 10;
+
+drop table t1;
+
+#
+# Test unique keys
+#
+
+create table t1 (a char(10), unique (a));
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+
+alter table t1 modify a varchar(10);
+--error 1062
+insert into t1 values ('a '),('a '),('a '),('a ');
+--error 1062
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+update t1 set a='a ' where a like 'a%';
+select concat(a,'.') from t1;
+update t1 set a='abc ' where a like 'a ';
+select concat(a,'.') from t1;
+update t1 set a='a ' where a like 'a %';
+select concat(a,'.') from t1;
+update t1 set a='a ' where a like 'a ';
+select concat(a,'.') from t1;
+drop table t1;
+
+#
+# test show create table
+#
+
+create table t1 (v varchar(10), c char(10), t text, key(v(5)), key(c(5)), key(t(5)));
+show create table t1;
+drop table t1;
+create table t1 (v char(10) character set utf8);
+show create table t1;
+drop table t1;
+
+create table t1 (v varchar(10), c char(10)) row_format=fixed;
+show create table t1;
+insert into t1 values('a','a'),('a ','a ');
+select concat('*',v,'*',c,'*') from t1;
+drop table t1;
+
+#
+# Test long varchars
+#
+
+create table t1 (v varchar(65530), key(v(10)));
+insert into t1 values(repeat('a',65530));
+select length(v) from t1 where v=repeat('a',65530);
+drop table t1;
+
+#
+# Bug #9489: problem with hash indexes
+# Bug #10802: Index is not used if table using BDB engine on HP-UX
+#
+
+create table t1(a int, b varchar(12), key ba(b, a));
+insert into t1 values (1, 'A'), (20, NULL);
+explain select * from t1 where a=20 and b is null;
+select * from t1 where a=20 and b is null;
+drop table t1;
diff --git a/mysql-test/include/wait_for_slave_io_to_stop.inc b/mysql-test/include/wait_for_slave_io_to_stop.inc
new file mode 100644
index 00000000000..004f8bbbd8d
--- /dev/null
+++ b/mysql-test/include/wait_for_slave_io_to_stop.inc
@@ -0,0 +1,33 @@
+###################################################
+#Author: Jeb
+#Date: 2007-06-11
+#Purpose: used for io errors on the slave. If Slave gets an io
+# error, the io trhead should stop
+#Details:
+# 1) Fill in and setup variables
+# 2) loop through looking for
+# sql threads to stop
+# 3) If loops too long die.
+####################################################
+connection slave;
+let $my_show= SHOW SLAVE STATUS;
+let $sql_running= Slave_IO_Running;
+let $row_number= 1;
+let $run= 1;
+let $counter= 300;
+
+while ($run)
+{
+ let $io_result= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, $row_number);
+ if (`SELECT '$io_result' = 'No'`){
+ let $run= 0;
+ }
+ sleep 0.1;
+ if (!$counter){
+ --echo "Failed while waiting for slave IO thread to stop"
+ SHOW SLAVE STATUS;
+ exit;
+ }
+ dec $counter;
+}
+
diff --git a/mysql-test/include/wait_for_slave_param.inc b/mysql-test/include/wait_for_slave_param.inc
new file mode 100644
index 00000000000..fed97195aba
--- /dev/null
+++ b/mysql-test/include/wait_for_slave_param.inc
@@ -0,0 +1,26 @@
+# include/wait_for_slave_param.inc
+#
+# SUMMARY
+#
+# Waits until SHOW SLAVE STATUS has returned a spicified value.
+#
+# USAGE
+#
+# let $slave_param= Slave_SQL_Running;
+# let $slave_param_value= No;
+# --source include/slave_wait_param.inc
+
+let $slave_wait_param_counter= 300;
+let $slave_value= query_get_value("SHOW SLAVE STATUS", $slave_param, 1);
+while (`select "$slave_value" != "$slave_param_value"`)
+{
+ dec $slave_wait_param_counter;
+ if (!$slave_wait_param_counter)
+ {
+ --echo ERROR: failed while waiting for slave parameter $slave_param: $slave_param_value
+ query_vertical show slave status;
+ exit;
+ }
+ sleep 0.1;
+ let $slave_value= query_get_value("SHOW SLAVE STATUS", $slave_param, 1);
+}
diff --git a/mysql-test/include/wait_for_slave_sql_to_stop.inc b/mysql-test/include/wait_for_slave_sql_to_stop.inc
new file mode 100644
index 00000000000..ee765c81f6a
--- /dev/null
+++ b/mysql-test/include/wait_for_slave_sql_to_stop.inc
@@ -0,0 +1,30 @@
+###################################################
+#Author: Jeb
+#Date: 2007-06-11
+#Purpose: used for SQL errors on the slave. If Slave gets a sql
+# error, the SQL trhead should stop
+#Details:
+# 1) Fill in and setup variables
+# 2) loop through looking for
+# sql threads to stop
+# 3) If loops too long die.
+####################################################
+connection slave;
+let $row_number= 1;
+let $run= 1;
+let $counter= 300;
+
+while ($run)
+{
+ let $sql_result= query_get_value("SHOW SLAVE STATUS", Slave_SQL_Running, $row_number);
+ if (`SELECT '$sql_result' = 'No'`){
+ let $run= 0;
+ }
+ sleep 0.1;
+ if (!$counter){
+ --echo "Failed while waiting for slave SQL thread to stop"
+ SHOW SLAVE STATUS;
+ exit;
+ }
+ dec $counter;
+}
diff --git a/mysql-test/include/wait_for_slave_to_start.inc b/mysql-test/include/wait_for_slave_to_start.inc
new file mode 100644
index 00000000000..84e1d646efe
--- /dev/null
+++ b/mysql-test/include/wait_for_slave_to_start.inc
@@ -0,0 +1,35 @@
+###################################################
+#Author: Jeb
+#Date: 2007-06-11
+#Purpose: To wait a brief time for slave to start
+#Details:
+# 1) Fill in and setup variables
+# 2) loop through looking for both
+# io and sql threads to start
+# 3) If loops too long die.
+####################################################
+connection slave;
+let $row_number= 1;
+let $run= 1;
+let $counter= 300;
+
+while ($run)
+{
+ let $io_result= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, $row_number);
+ if (`SELECT '$io_result' = 'Yes'`){
+
+ let $sql_result= query_get_value("SHOW SLAVE STATUS", Slave_SQL_Running, $row_number);
+ if (`SELECT '$sql_result' = 'Yes'`){
+ let $run= 0;
+ }
+ }
+ sleep 0.1;
+ if (!$counter){
+ --echo "Failed while waiting for slave to start"
+ SHOW SLAVE STATUS;
+ exit;
+ }
+ dec $counter;
+}
+
+
diff --git a/mysql-test/include/wait_for_slave_to_stop.inc b/mysql-test/include/wait_for_slave_to_stop.inc
new file mode 100644
index 00000000000..13acbecb835
--- /dev/null
+++ b/mysql-test/include/wait_for_slave_to_stop.inc
@@ -0,0 +1,37 @@
+###################################################
+#Author: Jeb
+#Date: 2007-06-11
+#Purpose: To replace the mysqltest.c executable
+# wait_for_slave_to_stop function and
+# return this to the test language.
+#Details:
+# 1) Fill in and setup variables
+# 2) loop through looking for both
+# io and sql threads to stop
+# 3) If loops too long die.
+####################################################
+connection slave;
+let $row_number= 1;
+let $run= 1;
+let $counter= 300;
+
+while ($run)
+{
+ let $io_result= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, $row_number);
+ if (`SELECT '$io_result' = 'No'`){
+
+ let $sql_result= query_get_value("SHOW SLAVE STATUS", Slave_SQL_Running, $row_number);
+ if (`SELECT '$sql_result' = 'No'`){
+ let $run= 0;
+ }
+ }
+ sleep 0.1;
+ if (!$counter){
+ --echo "Failed while waiting for slave to stop"
+ SHOW SLAVE STATUS;
+ exit;
+ }
+ dec $counter;
+}
+
+
diff --git a/mysql-test/include/wait_show_pattern.inc b/mysql-test/include/wait_show_pattern.inc
new file mode 100644
index 00000000000..c9f84ce7f08
--- /dev/null
+++ b/mysql-test/include/wait_show_pattern.inc
@@ -0,0 +1,51 @@
+# include/wait_show_pattern.inc
+#
+# SUMMARY
+#
+# Waits until output produced by SHOW statement which particular type is
+# specified as parameter matches certain pattern or maximum time reached.
+#
+# NOTES
+#
+# Only the first row produced by the parameter statement is checked.
+#
+# USAGE
+#
+# let $show_type= <Tail of SHOW statement>;
+# let $show_pattern= 'Pattern to be used for LIKE matching';
+# --source wait_show_pattern.inc
+#
+# EXAMPLES
+#
+# alter_table-big.test, wait_slave_status.inc
+#
+# SEE ALSO
+#
+# wait_slave_status.inc, wait_condition.inc (>=5.1)
+#
+###############################################################################
+
+--disable_query_log
+
+# We accept to wait maximum 30 seconds (0.2 sec/loop).
+let $wait_counter= 150;
+while ($wait_counter)
+{
+ let $result= `SHOW $show_type`;
+ let $success= `SELECT '$result' LIKE $show_pattern`;
+ if ($success)
+ {
+ let $wait_counter= 0;
+ }
+ if (!$success)
+ {
+ real_sleep 0.2;
+ dec $wait_counter;
+ }
+}
+if (!$success)
+{
+ echo Timeout in wait_show_pattern.inc \$show_type= $show_type \$show_pattern= $show_pattern (\$result= '$result');
+}
+
+--enable_query_log
diff --git a/mysql-test/include/wait_slave_status.inc b/mysql-test/include/wait_slave_status.inc
new file mode 100644
index 00000000000..d8d048527cf
--- /dev/null
+++ b/mysql-test/include/wait_slave_status.inc
@@ -0,0 +1,129 @@
+# include/wait_slave_status.inc
+#
+# Created by Matthias Leich
+#
+# SUMMARY
+#
+# Waits until slave has reached certain state or maximum time reached.
+#
+# (This script will not work, when the SHOW command delivers more than one
+# result record, because only the first record will be caught.)
+#
+# USAGE
+#
+# Set $result_pattern in test file and source this file:
+#
+# let $result_pattern= <pattern used for LIKE on the result of
+# SHOW STATUS SLAVE>
+# --include wait_slave_status.inc
+#
+# EXAMPLE
+#
+# The script rpl_until.test:
+# ...
+# --replace_result $MASTER_MYPORT MASTER_MYPORT
+# --replace_column 1 # 9 # 23 # 33 #
+# --vertical_results show slave status;
+#
+# outputs
+# show slave status;
+# Slave_IO_State #
+# Master_Host 127.0.0.1
+# Master_User root
+# Master_Port MASTER_MYPORT
+# Connect_Retry 1
+# Master_Log_File master-bin.000001
+# Read_Master_Log_Pos 776
+# Relay_Log_File slave-relay-bin.000004
+# Relay_Log_Pos #
+# Relay_Master_Log_File master-bin.000001
+# Slave_IO_Running Yes
+# Slave_SQL_Running No
+# Replicate_Do_DB
+# Replicate_Ignore_DB
+# Replicate_Do_Table
+# Replicate_Ignore_Table
+# Replicate_Wild_Do_Table
+# Replicate_Wild_Ignore_Table
+# Last_Errno 0
+# Last_Error
+# Skip_Counter 0
+# Exec_Master_Log_Pos 319
+# Relay_Log_Space #
+# Until_Condition Master
+# Until_Log_File master-bin.000001
+# Until_Log_Pos 319
+# Master_SSL_Allowed No
+# Master_SSL_CA_File
+# Master_SSL_CA_Path
+# Master_SSL_Cert
+# Master_SSL_Cipher
+# Master_SSL_Key
+# Seconds_Behind_Master #
+#
+# The main problem with the "show slave status;" in rpl_until is, that
+# depending on the total test engine power and the current load caused by
+# other processes, the expected slave status might be not reached though
+# it will happen in maybe some seconds.
+#
+# The typical problem with rpl_until is that Slave_IO_Running is "No"
+# instead of "Yes".
+#
+# The expected result follows the LIKE pattern:
+#
+# let $result_pattern= '%127.0.0.1%root%1%master-bin.000001%776%slave-relay-bin.000004%master-bin.000001%Yes%No%0%0%319%Master%master-bin.000001%319%No%';
+#
+# The Slave_IO_Running value is the "Yes" just after the "master-bin.000001".
+#
+# How to get this pattern ?
+#
+# Any lines "--replace_result ..." and "--replace_colum ..." just before
+# the SHOW TABLE STATUS and of course the expected result itself
+# show us columns where the content must be unified, because it is non
+# deterministic or it depends on the current test environment.
+#
+# Unfortunately "--replace_result ..." and "--replace_colum ..." do not
+# affect the result of our assignment let $my_val= `SHOW SLAVE STATUS`;
+# Therefore such content must be covered by '%'.
+#
+# Please be careful. A more simple pattern might be dangerous, because we
+# might get "wrong" matches. Example: There might be several "Yes" and "No"
+# within one result row.
+#
+###############################################################################
+
+# We do not want to print the auxiliary commands, because they are not of
+# interest and their amount will vary depending how fast we get the
+# desired state.
+--disable_query_log
+
+# The protocol should show
+# - the setting of $result_pattern and
+# - that this file is sourced ,
+# because this increases the chance to use the protocol as replay script.
+eval SELECT "let \$result_pattern= $result_pattern ;" AS "";
+SELECT '--source include/wait_slave_status.inc' AS "";
+
+let $show_type= SLAVE STATUS;
+let $show_pattern= $result_pattern;
+--enable_query_log
+
+--source include/wait_show_pattern.inc
+
+if (!$success)
+{
+let $message= ! Attention: Timeout in wait_slave_status.inc.
+ | Possible reasons with decreasing probability:
+ | - The LIKE pattern is wrong, because the
+ | testcase was altered or the layout of the
+ | SHOW SLAVE STATUS result set changed.
+ | - There is a new bug within the replication.
+ | - We met an extreme testing environment and timeout is
+ | too small.;
+--source include/show_msg80.inc
+--echo DEBUG INFO START (wait_slave_status.inc):
+--echo $result_pattern
+--vertical_results
+show slave status;
+--echo DEBUG INFO END
+}
diff --git a/mysql-test/include/windows.inc b/mysql-test/include/windows.inc
index 05ec7b0e021..88553d8aa59 100644
--- a/mysql-test/include/windows.inc
+++ b/mysql-test/include/windows.inc
@@ -1,4 +1,5 @@
---require r/true.require
-disable_query_log;
-select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") as "TRUE";
-enable_query_log;
+if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") = 0`)
+{
+ skip Need windows;
+}
+
diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh
index c30583503dc..716f7f31383 100644
--- a/mysql-test/install_test_db.sh
+++ b/mysql-test/install_test_db.sh
@@ -1,6 +1,18 @@
#!/bin/sh
# Copyright (C) 1997-2006 MySQL AB
-# For a more info consult the file COPYRIGHT distributed with this file
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This scripts creates the privilege tables db, host, user, tables_priv,
# columns_priv in the mysql database, as well as the func table.
@@ -10,7 +22,7 @@ if [ x$1 = x"--bin" ]; then
BINARY_DIST=1
bindir=../bin
- scriptdir=../bin
+ scriptdir=bin
libexecdir=../libexec
# Check if it's a binary distribution or a 'make install'
@@ -21,7 +33,7 @@ if [ x$1 = x"--bin" ]; then
then
execdir=../../sbin
bindir=../../bin
- scriptdir=../../bin
+ scriptdir=../bin
libexecdir=../../libexec
else
execdir=../bin
@@ -31,7 +43,7 @@ else
execdir=../sql
bindir=../client
fix_bin=.
- scriptdir=../scripts
+ scriptdir=scripts
libexecdir=../libexec
fi
@@ -55,14 +67,17 @@ fi
mdata=$data/mysql
EXTRA_ARG=""
-if test ! -x $execdir/mysqld
+mysqld=
+if test -x $execdir/mysqld
then
+ mysqld=$execdir/mysqld
+else
if test ! -x $libexecdir/mysqld
then
echo "mysqld is missing - looked in $execdir and in $libexecdir"
exit 1
else
- execdir=$libexecdir
+ mysqld=$libexecdir/mysqld
fi
fi
@@ -85,15 +100,14 @@ if [ x$BINARY_DIST = x1 ] ; then
basedir=..
else
basedir=.
-EXTRA_ARG="--language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/"
+EXTRA_ARG="--windows"
fi
-mysqld_boot=" $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables \
- --basedir=$basedir --datadir=$ldata --skip-innodb --skip-ndbcluster --skip-bdb \
- $EXTRA_ARG"
-echo "running $mysqld_boot"
+INSTALL_CMD="$scriptdir/mysql_install_db --no-defaults $EXTRA_ARG --basedir=$basedir --datadir=mysql-test/$ldata --srcdir=."
+echo "running $INSTALL_CMD"
-if $scriptdir/mysql_create_system_tables test $mdata $hostname | $mysqld_boot
+cd ..
+if $INSTALL_CMD
then
exit 0
else
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl
index 2eda77db08e..5aabb7f8863 100644
--- a/mysql-test/lib/mtr_cases.pl
+++ b/mysql-test/lib/mtr_cases.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2005-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
@@ -13,6 +27,26 @@ sub collect_one_test_case ($$$$$$$);
sub mtr_options_from_test_file($$);
+my $do_test;
+my $skip_test;
+
+sub init_pattern {
+ my ($from, $what)= @_;
+ if ( $from =~ /[a-z0-9]/ ) {
+ # Does not contain any regex, make the pattern match
+ # beginning of string
+ $from= "^$from";
+ }
+ else {
+ # Check that pattern is a valid regex
+ eval { "" =~/$from/; 1 } or
+ mtr_error("Invalid regex '$from' passed to $what\nPerl says: $@");
+ }
+ return $from;
+}
+
+
+
##############################################################################
#
# Collect information about test cases we are to run
@@ -25,6 +59,9 @@ sub collect_test_cases ($) {
my $testdir;
my $resdir;
+ $do_test= init_pattern($::opt_do_test, "--do-test");
+ $skip_test= init_pattern($::opt_skip_test, "--skip-test");
+
if ( $suite eq "main" )
{
$testdir= "$::glob_mysql_test_dir/t";
@@ -148,8 +185,7 @@ sub collect_test_cases ($) {
}
# Skip tests that does not match the --do-test= filter
- next if $::opt_do_test and
- ! defined mtr_match_prefix($elem,$::opt_do_test);
+ next if ($do_test and not $tname =~ /$do_test/o);
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled,
$component_id);
@@ -274,7 +310,7 @@ sub collect_one_test_case($$$$$$$) {
# Skip some tests but include in list, just mark them to skip
# ----------------------------------------------------------------------
- if ( $::opt_skip_test and defined mtr_match_prefix($tname,$::opt_skip_test) )
+ if ( $skip_test and $tname =~ /$skip_test/o )
{
$tinfo->{'skip'}= 1;
return;
@@ -491,6 +527,17 @@ sub collect_one_test_case($$$$$$$) {
{
mtr_options_from_test_file($tinfo,"$testdir/${tname}.test");
+ if ( defined $::used_default_engine )
+ {
+ # Different default engine is used
+ # tag test to require that engine
+ $tinfo->{'ndb_test'}= 1
+ if ( $::used_default_engine =~ /^ndb/i );
+
+ $tinfo->{'innodb_test'}= 1
+ if ( $::used_default_engine =~ /^innodb/i );
+ }
+
if ( $tinfo->{'big_test'} and ! $::opt_big_test )
{
$tinfo->{'skip'}= 1;
@@ -571,6 +618,25 @@ sub collect_one_test_case($$$$$$$) {
}
}
+ if ( $tinfo->{'need_binlog'} )
+ {
+ if (grep(/^--skip-log-bin/, @::opt_extra_mysqld_opt) )
+ {
+ $tinfo->{'skip'}= 1;
+ $tinfo->{'comment'}= "Test need binlog";
+ return;
+ }
+ }
+ else
+ {
+ if ( $::mysql_version_id >= 50100 )
+ {
+ # Test does not need binlog, add --skip-binlog to
+ # the options used when starting it
+ push(@{$tinfo->{'master_opt'}}, "--skip-log-bin");
+ }
+ }
+
}
}
@@ -583,6 +649,7 @@ our @tags=
["include/have_binlog_format_row.inc", "binlog_format", "row"],
["include/have_binlog_format_statement.inc", "binlog_format", "stmt"],
["include/have_binlog_format_mixed.inc", "binlog_format", "mixed"],
+ ["include/have_log_bin.inc", "need_binlog", 1],
["include/big_test.inc", "big_test", 1],
["include/have_debug.inc", "need_debug", 1],
["include/have_ndb.inc", "ndb_test", 1],
diff --git a/mysql-test/lib/mtr_diff.pl b/mysql-test/lib/mtr_diff.pl
index 4e927ff4e37..26e556de5e8 100644
--- a/mysql-test/lib/mtr_diff.pl
+++ b/mysql-test/lib/mtr_diff.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2005 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
diff --git a/mysql-test/lib/mtr_gcov.pl b/mysql-test/lib/mtr_gcov.pl
index 71d3d6a2a43..a2de1fcbdff 100644
--- a/mysql-test/lib/mtr_gcov.pl
+++ b/mysql-test/lib/mtr_gcov.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2004, 2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
diff --git a/mysql-test/lib/mtr_gprof.pl b/mysql-test/lib/mtr_gprof.pl
index cc874eebfe5..f6615301dd7 100644
--- a/mysql-test/lib/mtr_gprof.pl
+++ b/mysql-test/lib/mtr_gprof.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2004 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
diff --git a/mysql-test/lib/mtr_im.pl b/mysql-test/lib/mtr_im.pl
index ca17516278e..c8e332498d7 100644
--- a/mysql-test/lib/mtr_im.pl
+++ b/mysql-test/lib/mtr_im.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
@@ -582,7 +596,7 @@ sub mtr_im_start($$) {
mtr_add_arg($args, $opt);
}
- $im->{'pid'} =
+ $im->{'spawner_pid'} =
mtr_spawn(
$::exe_im, # path to the executable
$args, # cmd-line args
@@ -593,7 +607,7 @@ sub mtr_im_start($$) {
{ append_log_file => 1 } # append log files
);
- unless ( $im->{'pid'} )
+ unless ( $im->{'spawner_pid'} )
{
mtr_error('Could not start Instance Manager.')
}
diff --git a/mysql-test/lib/mtr_io.pl b/mysql-test/lib/mtr_io.pl
index 09749bc74e3..570a58875c2 100644
--- a/mysql-test/lib/mtr_io.pl
+++ b/mysql-test/lib/mtr_io.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2004-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
@@ -41,6 +55,7 @@ sub mtr_get_pid_from_file ($) {
# Read pid number from file
my $pid= <FILE>;
+ chomp $pid;
close FILE;
return $pid if $pid=~ /^(\d+)/;
diff --git a/mysql-test/lib/mtr_match.pl b/mysql-test/lib/mtr_match.pl
index 66b639c7f8e..96aa43f4fa2 100644
--- a/mysql-test/lib/mtr_match.pl
+++ b/mysql-test/lib/mtr_match.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2004-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
diff --git a/mysql-test/lib/mtr_misc.pl b/mysql-test/lib/mtr_misc.pl
index 931c93f52a1..226f73a21de 100644
--- a/mysql-test/lib/mtr_misc.pl
+++ b/mysql-test/lib/mtr_misc.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2004-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
@@ -7,8 +21,6 @@
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 ($$@);
@@ -28,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($)
{
@@ -85,9 +73,10 @@ sub mtr_add_arg ($$@) {
##############################################################################
-# Note - More specific paths should be given before less specific. For examle
-# /client/debug should be listed before /client
-
+#
+# NOTE! More specific paths should be given before less specific.
+# For example /client/debug should be listed before /client
+#
sub mtr_path_exists (@) {
foreach my $path ( @_ )
{
@@ -103,9 +92,11 @@ sub mtr_path_exists (@) {
}
}
-# Note - More specific paths should be given before less specific. For examle
-# /client/debug should be listed before /client
+#
+# NOTE! More specific paths should be given before less specific.
+# For example /client/debug should be listed before /client
+#
sub mtr_script_exists (@) {
foreach my $path ( @_ )
{
@@ -128,9 +119,11 @@ sub mtr_script_exists (@) {
}
}
-# Note - More specific paths should be given before less specific. For examle
-# /client/debug should be listed before /client
+#
+# NOTE! More specific paths should be given before less specific.
+# For example /client/debug should be listed before /client
+#
sub mtr_file_exists (@) {
foreach my $path ( @_ )
{
@@ -139,13 +132,16 @@ sub mtr_file_exists (@) {
return "";
}
-# Note - More specific paths should be given before less specific. For examle
-# /client/debug should be listed before /client
+#
+# NOTE! More specific paths should be given before less specific.
+# For example /client/debug should be listed before /client
+#
sub mtr_exe_maybe_exists (@) {
my @path= @_;
map {$_.= ".exe"} @path if $::glob_win32;
+ map {$_.= ".nlm"} @path if $::glob_netware;
foreach my $path ( @path )
{
if($::glob_win32)
@@ -160,9 +156,11 @@ sub mtr_exe_maybe_exists (@) {
return "";
}
-# Note - More specific paths should be given before less specific. For examle
-# /client/debug should be listed before /client
+#
+# NOTE! More specific paths should be given before less specific.
+# For example /client/debug should be listed before /client
+#
sub mtr_exe_exists (@) {
my @path= @_;
if (my $path= mtr_exe_maybe_exists(@path))
@@ -185,7 +183,7 @@ sub mtr_copy_dir($$) {
my $from_dir= shift;
my $to_dir= shift;
-# mtr_verbose("Copying from $from_dir to $to_dir");
+ # mtr_verbose("Copying from $from_dir to $to_dir");
mkpath("$to_dir");
opendir(DIR, "$from_dir")
@@ -206,22 +204,15 @@ sub mtr_copy_dir($$) {
sub mtr_rmtree($) {
my ($dir)= @_;
- my $need_file_find= 0;
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
-
- local $SIG{__WARN__}= sub {
- $need_file_find= 1;
- mtr_warning($_[0]);
- };
- rmtree($dir);
- }
- if ( $need_file_find ) {
+ # 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;
diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl
index ad0fea465d6..a60b2822a14 100644
--- a/mysql-test/lib/mtr_process.pl
+++ b/mysql-test/lib/mtr_process.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2004-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
@@ -24,8 +38,8 @@ sub mtr_kill_processes ($);
sub mtr_ping_with_timeout($);
sub mtr_ping_port ($);
-# static in C
-sub spawn_impl ($$$$$$$$);
+# Local function
+sub spawn_impl ($$$$$$$);
##############################################################################
#
@@ -33,18 +47,16 @@ sub spawn_impl ($$$$$$$$);
#
##############################################################################
-# This function try to mimic the C version used in "netware/mysql_test_run.c"
-
sub mtr_run ($$$$$$;$) {
my $path= shift;
my $arg_list_t= shift;
my $input= shift;
my $output= shift;
my $error= shift;
- my $pid_file= shift;
+ my $pid_file= shift; # Not used
my $spawn_opts= shift;
- return spawn_impl($path,$arg_list_t,'run',$input,$output,$error,$pid_file,
+ return spawn_impl($path,$arg_list_t,'run',$input,$output,$error,
$spawn_opts);
}
@@ -54,10 +66,10 @@ sub mtr_run_test ($$$$$$;$) {
my $input= shift;
my $output= shift;
my $error= shift;
- my $pid_file= shift;
+ my $pid_file= shift; # Not used
my $spawn_opts= shift;
- return spawn_impl($path,$arg_list_t,'test',$input,$output,$error,$pid_file,
+ return spawn_impl($path,$arg_list_t,'test',$input,$output,$error,
$spawn_opts);
}
@@ -67,51 +79,46 @@ sub mtr_spawn ($$$$$$;$) {
my $input= shift;
my $output= shift;
my $error= shift;
- my $pid_file= shift;
+ my $pid_file= shift; # Not used
my $spawn_opts= shift;
- return spawn_impl($path,$arg_list_t,'spawn',$input,$output,$error,$pid_file,
+ return spawn_impl($path,$arg_list_t,'spawn',$input,$output,$error,
$spawn_opts);
}
-##############################################################################
-#
-# If $join is set, we return the error code, else we return the PID
-#
-##############################################################################
-sub spawn_impl ($$$$$$$$) {
+sub spawn_impl ($$$$$$$) {
my $path= shift;
my $arg_list_t= shift;
my $mode= shift;
my $input= shift;
my $output= shift;
my $error= shift;
- my $pid_file= shift; # FIXME
my $spawn_opts= shift;
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;
@@ -136,15 +143,12 @@ sub spawn_impl ($$$$$$$$) {
if ( $pid )
{
+ select(STDOUT) if $::glob_win32_perl;
return spawn_parent_impl($pid,$mode,$path);
}
else
{
# Child, redirect output and exec
- # FIXME I tried POSIX::setsid() here to detach and, I hoped,
- # avoid zombies. But everything went wild, somehow the parent
- # became a deamon as well, and was hard to kill ;-)
- # Need to catch SIGCHLD and do waitpid or something instead......
$SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't
@@ -161,9 +165,6 @@ sub spawn_impl ($$$$$$$$) {
{
# Don't redirect stdout on ActiveState perl since this is
# just another thread in the same process.
- # Should be fixed so that the thread that is created with fork
- # executes the exe in another process and wait's for it to return.
- # In the meanwhile, we get all the output from mysqld's to screen
}
elsif ( ! open(STDOUT,$log_file_open_mode,$output) )
{
@@ -173,7 +174,7 @@ sub spawn_impl ($$$$$$$$) {
if ( $error )
{
- if ( $output eq $error )
+ if ( !$::glob_win32_perl and $output eq $error )
{
if ( ! open(STDERR,">&STDOUT") )
{
@@ -245,9 +246,7 @@ sub spawn_parent_impl {
# We do blocking waitpid() until we get the return from the
# "mysqltest" call. But if a mysqld process dies that we
# started, we take this as an error, and kill mysqltest.
- #
- # FIXME is this as it should be? Can't mysqld terminate
- # normally from running a test case?
+
my $exit_value= -1;
my $saved_exit_value;
@@ -436,7 +435,6 @@ sub mtr_kill_leftovers () {
# We scan the "var/run/" directory for other process id's to kill
- # FIXME $path_run_dir or something
my $rundir= "$::opt_vardir/run";
mtr_debug("Processing PID files in directory '$rundir'...");
@@ -540,72 +538,92 @@ sub mtr_kill_leftovers () {
}
-# Check that all processes in list are killed
-# The argument is a list of 'ports', 'pids', 'pidfiles' and 'socketfiles'
-# for which shutdown has been started. Make sure they all get killed
-# in one way or the other.
#
-# FIXME On Cygwin, and maybe some other platforms, $srv->{'pid'} and
-# the pid in $srv->{'pidfile'} will not be the same PID. We need to try to kill
-# both I think.
-
+# Check that all processes in "spec" are shutdown gracefully
+# else kill them off hard
+#
sub mtr_check_stop_servers ($) {
my $spec= shift;
# Return if no processes are defined
return if ! @$spec;
- #mtr_report("mtr_check_stop_servers");
+ mtr_verbose("mtr_check_stop_servers");
+ # ----------------------------------------------------------------------
+ # Wait until servers in "spec" has stopped listening
+ # to their ports or timeout occurs
+ # ----------------------------------------------------------------------
mtr_ping_with_timeout(\@$spec);
# ----------------------------------------------------------------------
- # We loop with waitpid() nonblocking to see how many of the ones we
- # are to kill, actually got killed by mysqladmin or ndb_mgm
- #
- # Note that we don't rely on this, the mysqld server might have stopped
- # listening to the port, but still be alive. But it is a start.
+ # Use waitpid() nonblocking for a little while, to see how
+ # many process's will exit sucessfully.
+ # This is the normal case.
# ----------------------------------------------------------------------
-
+ my $wait_counter= 50; # Max number of times to redo the loop
foreach my $srv ( @$spec )
{
+ my $pid= $srv->{'pid'};
my $ret_pid;
- if ( $srv->{'pid'} )
+ if ( $pid )
{
- $ret_pid= waitpid($srv->{'pid'},&WNOHANG);
- if ($ret_pid == $srv->{'pid'})
+ $ret_pid= waitpid($pid,&WNOHANG);
+ if ($ret_pid == $pid)
{
mtr_verbose("Caught exit of process $ret_pid");
$srv->{'pid'}= 0;
}
+ elsif ($ret_pid == 0)
+ {
+ mtr_verbose("Process $pid is still alive");
+ if ($wait_counter-- > 0)
+ {
+ # Give the processes more time to exit
+ select(undef, undef, undef, (0.1));
+ redo;
+ }
+ }
else
{
- # mtr_warning("caught exit of unknown child $ret_pid");
+ mtr_warning("caught exit of unknown child $ret_pid");
}
}
}
# ----------------------------------------------------------------------
- # We know the process was started from this file, so there is a PID
- # saved, or else we have nothing to do.
- # Might be that is is recorded to be missing, but we failed to
- # take away the PID file earlier, then we do it now.
+ # The processes that haven't yet exited need to
+ # be killed hard, put them in "kill_pids" hash
# ----------------------------------------------------------------------
-
- my %mysqld_pids;
-
+ my %kill_pids;
foreach my $srv ( @$spec )
{
- if ( $srv->{'pid'} )
+ my $pid= $srv->{'pid'};
+ if ( $pid )
{
- $mysqld_pids{$srv->{'pid'}}= 1;
+ # Server is still alive, put it in list to be hard killed
+ if ($::glob_win32_perl)
+ {
+ # Kill the real process if it's known
+ $pid= $srv->{'real_pid'} if ($srv->{'real_pid'});
+ }
+ $kill_pids{$pid}= 1;
+
+ # Write a message to the process's error log (if it has one)
+ # that it's being killed hard.
+ if ( defined $srv->{'errfile'} )
+ {
+ mtr_tofile($srv->{'errfile'}, "Note: Forcing kill of process $pid\n");
+ }
+ mtr_warning("Forcing kill of process $pid");
+
}
else
{
- # Server is dead, we remove the pidfile if any
- # Race, could have been removed between I tested with -f
- # and the unlink() below, so I better check again with -f
-
+ # Server is dead, remove the pidfile if it exists
+ #
+ # Race, could have been removed between test with -f
+ # and the unlink() below, so better check again with -f
if ( -f $srv->{'pidfile'} and ! unlink($srv->{'pidfile'}) and
-f $srv->{'pidfile'} )
{
@@ -614,69 +632,45 @@ sub mtr_check_stop_servers ($) {
}
}
- # ----------------------------------------------------------------------
- # If all the processes in list already have been killed,
- # then we don't have to do anything.
- # ----------------------------------------------------------------------
-
- if ( ! keys %mysqld_pids )
+ if ( ! keys %kill_pids )
{
+ # All processes has exited gracefully
return;
}
- # ----------------------------------------------------------------------
- # In mtr_mysqladmin_shutdown() we only waited for the mysqld servers
- # not to listen to the port. But we are not sure we got them all
- # killed. If we suspect it lives, try nice kill with SIG_TERM. Note
- # that for true Win32 processes, kill(0,$pid) will not return 1.
- # ----------------------------------------------------------------------
-
- start_reap_all(); # Avoid zombies
-
- my @mysqld_pids= keys %mysqld_pids;
- mtr_kill_processes(\@mysqld_pids);
-
- stop_reap_all(); # Get into control again
+ mtr_kill_processes(\%kill_pids);
# ----------------------------------------------------------------------
- # Now, we check if all we can find using kill(0,$pid) are dead,
- # and just assume the rest are. We cleanup socket and PID files.
+ # All processes are killed, cleanup leftover files
# ----------------------------------------------------------------------
-
{
my $errors= 0;
foreach my $srv ( @$spec )
{
if ( $srv->{'pid'} )
{
- if ( kill(0,$srv->{'pid'}) )
+ # Server has been hard killed, clean it's resources
+ foreach my $file ($srv->{'pidfile'}, $srv->{'sockfile'})
{
- # FIXME In Cygwin there seem to be some fast reuse
- # of PIDs, so dying may not be the right thing to do.
- $errors++;
- mtr_warning("can't kill process $srv->{'pid'}");
- }
- else
- {
- # We managed to kill it at last
- # FIXME In Cygwin, we will get here even if the process lives.
+ # Know it is dead so should be no race, careful anyway
+ if ( defined $file and -f $file and ! unlink($file) and -f $file )
+ {
+ $errors++;
+ mtr_warning("couldn't delete $file");
+ }
+ }
- # Not needed as we know the process is dead, but to be safe
- # we unlink and check success in two steps. We first unlink
- # without checking the error code, and then check if the
- # file still exists.
+ if ($::glob_win32_perl and $srv->{'real_pid'})
+ {
+ # Wait for the pseudo pid - if the real_pid was known
+ # the pseudo pid has not been waited for yet, wai blocking
+ # since it's "such a simple program"
+ mtr_verbose("Wait for pseudo process $srv->{'pid'}");
+ my $ret_pid= waitpid($srv->{'pid'}, 0);
+ mtr_verbose("Pseudo process $ret_pid died");
+ }
- foreach my $file ($srv->{'pidfile'}, $srv->{'sockfile'})
- {
- # Know it is dead so should be no race, careful anyway
- if ( defined $file and -f $file and ! unlink($file) and -f $file )
- {
- $errors++;
- mtr_warning("couldn't delete $file");
- }
- }
- $srv->{'pid'}= 0;
- }
+ $srv->{'pid'}= 0;
}
}
if ( $errors )
@@ -694,12 +688,9 @@ sub mtr_check_stop_servers ($) {
}
}
}
-
- # FIXME We just assume they are all dead, for Cygwin we are not
- # really sure
-
}
+
# Wait for all the process in the list to terminate
sub mtr_wait_blocking($) {
my $admin_pids= shift;
@@ -948,6 +939,12 @@ sub check_expected_crash_and_restart($)
}
}
}
+
+ if ($::instance_manager->{'spawner_pid'} eq $ret_pid)
+ {
+ return;
+ }
+
mtr_warning("check_expected_crash_and_restart couldn't find an entry for pid: $ret_pid");
}
@@ -1050,7 +1047,7 @@ sub sleep_until_file_created ($$$) {
{
if ( -r $pidfile )
{
- return $pid;
+ return 1;
}
# Check if it died after the fork() was successful
@@ -1082,9 +1079,9 @@ sub sleep_until_file_created ($$$) {
sub mtr_kill_processes ($) {
my $pids = shift;
- mtr_verbose("mtr_kill_processes " . join(" ", @$pids));
+ mtr_verbose("mtr_kill_processes (" . join(" ", keys %{$pids}) . ")");
- foreach my $pid (@$pids)
+ foreach my $pid (keys %{$pids})
{
if ($pid <= 0)
@@ -1093,11 +1090,26 @@ sub mtr_kill_processes ($) {
next;
}
- foreach my $sig (15, 9)
+ my $signaled_procs= kill(9, $pid);
+ if ($signaled_procs == 0)
{
- last if mtr_im_kill_process([ $pid ], $sig, 10, 1);
+ # No such process existed, assume it's killed
+ mtr_verbose("killed $pid(no such process)");
+ }
+ else
+ {
+ my $ret_pid= waitpid($pid,0);
+ if ($ret_pid == $pid)
+ {
+ mtr_verbose("killed $pid(got the pid)");
+ }
+ elsif ($ret_pid == -1)
+ {
+ mtr_verbose("killed $pid(got -1)");
+ }
}
}
+ mtr_verbose("done killing processes");
}
diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl
index a2c16e1941a..1694ad1cb2e 100644
--- a/mysql-test/lib/mtr_report.pl
+++ b/mysql-test/lib/mtr_report.pl
@@ -1,10 +1,25 @@
# -*- cperl -*-
+# Copyright (C) 2004-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
# same name.
use strict;
+use warnings;
sub mtr_report_test_name($);
sub mtr_report_test_passed($);
@@ -12,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 ();
@@ -24,6 +38,9 @@ sub mtr_child_error (@);
sub mtr_debug (@);
sub mtr_verbose (@);
+my $tot_real_time= 0;
+
+
##############################################################################
#
@@ -31,58 +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 $result_file_name= shift;
-
- # The reject and log files have been dumped to
- # to filenames based on the result_file's name
- my $tname= basename($result_file_name);
- $tname=~ s/\..*$//;
-
- my $reject_file= "r/$tname.reject";
- my $result_file= "r/$tname.result";
- my $log_file= "r/$tname.log";
- my $eval_file= "r/$tname.eval";
-
- if ( $::opt_suite ne "main" )
- {
- $reject_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$reject_file";
- $result_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$result_file";
- $eval_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$eval_file";
- $log_file= "$::glob_mysql_test_dir/suite/$::opt_suite/$log_file";
- }
-
- if ( -f $eval_file )
- {
- $result_file= $eval_file;
- }
-
- 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'};
}
@@ -92,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 ]");
}
}
@@ -128,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 ($) {
@@ -141,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");;
}
}
@@ -220,15 +196,19 @@ sub mtr_report_stats ($) {
"of what went wrong.\n",
"If you want to report this error, please read first ",
"the documentation at\n",
- "http://www.mysql.com/doc/en/MySQL_test_suite.html\n";
+ "http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html\n";
+ }
+ if (!$::opt_extern)
+ {
+ print "The servers were restarted $tot_restarts times\n";
}
- print
- "The servers were restarted $tot_restarts times\n";
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");
}
# ----------------------------------------------------------------------
@@ -256,6 +236,7 @@ sub mtr_report_stats ($) {
{
foreach my $errlog ( sort glob("$::opt_vardir/log/*.err") )
{
+ my $testname= "";
unless ( open(ERR, $errlog) )
{
mtr_warning("can't read $errlog");
@@ -271,14 +252,30 @@ sub mtr_report_stats ($) {
{
next; # Skip these lines
}
+ if ( /CURRENT_TEST: (.*)/ )
+ {
+ $testname= $1;
+ }
if ( /$pattern/ )
{
$found_problems= 1;
- print WARN $_;
+ print WARN basename($errlog) . ": $testname: $_";
}
}
}
}
+
+ if ( $::opt_check_testcases )
+ {
+ # Look for warnings produced by mysqltest in testname.warnings
+ foreach my $test_warning_file
+ ( glob("$::glob_mysql_test_dir/r/*.warnings") )
+ {
+ $found_problems= 1;
+ print WARN "Check myqltest warnings in $test_warning_file\n";
+ }
+ }
+
if ( $found_problems )
{
mtr_warning("Got errors/warnings while running tests, please examine",
@@ -329,7 +326,7 @@ sub mtr_report_stats ($) {
if ( $tot_failed != 0 || $found_problems)
{
- mtr_error("there where failing test cases");
+ mtr_error("there were failing test cases");
}
}
@@ -364,35 +361,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_stress.pl b/mysql-test/lib/mtr_stress.pl
index a7d4b68b69d..93b06b32c5f 100644
--- a/mysql-test/lib/mtr_stress.pl
+++ b/mysql-test/lib/mtr_stress.pl
@@ -1,4 +1,18 @@
# -*- cperl -*-
+# Copyright (C) 2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
@@ -122,7 +136,7 @@ sub run_stress_test ()
mtr_init_args(\$args);
- mtr_add_arg($args, "--server-socket=%s", $::master->[0]->{'path_mysock'});
+ mtr_add_arg($args, "--server-socket=%s", $::master->[0]->{'path_sock'});
mtr_add_arg($args, "--server-user=%s", $::opt_user);
mtr_add_arg($args, "--server-database=%s", "test");
mtr_add_arg($args, "--stress-suite-basedir=%s", $::glob_mysql_test_dir);
@@ -140,7 +154,7 @@ sub run_stress_test ()
if ( $::opt_stress_init_file )
{
- mtr_add_arg($args, "--stress-init-file=%", $::opt_stress_init_file);
+ mtr_add_arg($args, "--stress-init-file=%s", $::opt_stress_init_file);
}
if ( !$::opt_stress_loop_count && !$::opt_stress_test_count &&
@@ -168,10 +182,9 @@ sub run_stress_test ()
#Run stress test
mtr_run("$::glob_mysql_test_dir/mysql-stress-test.pl", $args, "", "", "", "");
-
if ( ! $::glob_use_embedded_server )
{
- stop_masters();
+ stop_all_servers();
}
}
diff --git a/mysql-test/lib/mtr_timer.pl b/mysql-test/lib/mtr_timer.pl
index 06374716c62..326fbea74ec 100644
--- a/mysql-test/lib/mtr_timer.pl
+++ b/mysql-test/lib/mtr_timer.pl
@@ -1,10 +1,23 @@
# -*- cperl -*-
+# Copyright (C) 2005-2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
# same name.
-use Socket;
use Errno;
use strict;
@@ -38,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);
}
@@ -61,31 +72,36 @@ 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
# clearing the signal handler.
$SIG{INT}= 'DEFAULT';
+ $SIG{TERM}= sub {
+ mtr_verbose("timer $$ woke up, exiting!");
+ exit(0);
+ };
+
$0= "mtr_timer(timers,$name,$duration)";
- mtr_verbose("timer child $name, sleep $duration");
sleep($duration);
+ mtr_verbose("timer $$ expired after $duration seconds");
exit(0);
}
}
@@ -95,16 +111,14 @@ 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?!
- kill(9, $tpid);
+ kill(15, $tpid);
# As the timers are so simple programs, we trust them to terminate,
# and use blocking wait for it. We wait just to avoid a zombie.
@@ -115,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");
}
@@ -139,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/lib/mtr_unique.pl b/mysql-test/lib/mtr_unique.pl
index 3adc8413576..a668fc097c7 100644
--- a/mysql-test/lib/mtr_unique.pl
+++ b/mysql-test/lib/mtr_unique.pl
@@ -1,3 +1,19 @@
+# -*- cperl -*-
+# Copyright (C) 2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
#
# This file is used from mysql-test-run.pl when choosing
# port numbers and directories to use for running mysqld.
diff --git a/mysql-test/my_create_tables.c b/mysql-test/my_create_tables.c
deleted file mode 100644
index 06a6fabf022..00000000000
--- a/mysql-test/my_create_tables.c
+++ /dev/null
@@ -1,673 +0,0 @@
-#include <stdio.h>
-#include <errno.h>
-#ifndef __WIN__
-#include <dirent.h>
-#endif
-#include <string.h>
-#ifdef __NETWARE__
-#include <screen.h>
-#include <proc.h>
-#else
-#include <sys/types.h>
-#ifndef __WIN__
-#include <sys/wait.h>
-#include <unistd.h>
-#else
-#include <direct.h>
-#include <stdlib.h>
-#include <stdio.h>
-#endif
-#endif
-#include <ctype.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <assert.h>
-#include "my_manage.h"
-
-/*
- Synopsis:
- This function testes a exist file
-
-Arguments:
- mdata: path to data
- file_name: name of file
-Output:
- A zero value indicates that file is exist.
-*/
-bool test_sys_file(const char *mdata,const char *file_name)
-{
- struct stat file;
- char path_file_name[PATH_MAX];
- snprintf(path_file_name, PATH_MAX, "%s/%s", mdata, file_name);
- return(stat(path_file_name,&file));
-}
-
-/*
- Synopsis:
- This function creates a file with sql requstes for creating
- system data files.
-
-Arguments:
- mdata: path to data
- output_file: file name for output file
- test: to create system files with test data
-Output:
- A zero value indicates a success.
-*/
-bool create_system_files(const char *mdata,const char *output_file, bool test)
-{
- FILE *out;
-
- out = fopen(output_file, "w+");
-
- if (!out)
- return 1;
-
- if (test_sys_file(mdata,"mysql"))
- {
- fprintf(out,"CREATE DATABASE mysql;\n");
- }
-
- if (test && test_sys_file(mdata,"test"))
- {
- fprintf(out,"CREATE DATABASE test;\n");
- }
-
- fprintf(out,"USE mysql;\n");
-
- if (test_sys_file(mdata,"mysql/db.frm"))
- {
- fprintf(out,
- "CREATE TABLE 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') DEFAULT 'N' NOT NULL,"
- "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "PRIMARY KEY Host (Host,Db,User),"
- "KEY User (User))"
- "engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Database privileges';\n");
-
- if (test)
- {
- fprintf(out,"INSERT INTO db VALUES ('%%','test','','Y','Y','Y','Y'"
- ",'Y','Y','N','Y','Y','Y','Y','Y');\n");
- fprintf(out,"INSERT INTO db VALUES ('%%','test\\_%%','','Y','Y','Y'"
- ",'Y','Y','Y','N','Y','Y','Y','Y','Y');\n");
- }
- }
-
- if (test_sys_file(mdata,"mysql/host.frm"))
- {
- fprintf(out,
- "CREATE TABLE host ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "PRIMARY KEY Host (Host,Db))"
- "engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Host privileges; Merged with database privileges';\n");
- }
-
-
- if (test_sys_file(mdata,"mysql/user.frm"))
- {
-#ifdef __WIN__
- WSADATA wsa_data;
-#endif
- char hostname[FN_REFLEN];
-
-#ifdef __WIN__
- if (WSAStartup(MAKEWORD( 2, 2 ),&wsa_data))
- return 1;
-#endif
- if (gethostname(hostname, FN_REFLEN))
- return 1;
-#ifdef __WIN__
- WSACleanup( );
-#endif
-
- if (strchr(hostname, '.') == NULL)
- strcat(hostname, "%");
-
- fprintf(out,
- "CREATE TABLE user ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Password char(41) binary DEFAULT '' NOT NULL,"
- "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "File_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,"
- "ssl_cipher BLOB NOT NULL,"
- "x509_issuer BLOB NOT NULL,"
- "x509_subject BLOB NOT NULL,"
- "max_questions int(11) unsigned DEFAULT 0 NOT NULL,"
- "max_updates int(11) unsigned DEFAULT 0 NOT NULL,"
- "max_connections int(11) unsigned DEFAULT 0 NOT NULL,"
- "PRIMARY KEY Host (Host,User)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Users and global privileges';\n");
-
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO user VALUES ('localhost','root',''"
- ",'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'"
- ",'Y','Y','Y','Y','Y','','','','',0,0,0);\n");
- fprintf(out,
- "INSERT INTO user VALUES ('%s','root','','Y','Y',"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',"
- "'Y','Y','Y','Y','','','','',0,0,0);\n",hostname);
- fprintf(out,
- "REPLACE INTO user VALUES ('127.0.0.1','root','',"
- "'Y','Y','Y','Y','Y','Y',"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'"
- ",'Y','','','','',0,0,0);\n");
- fprintf(out,"INSERT INTO user (host,user) values ('localhost','');\n");
- fprintf(out,"INSERT INTO user (host,user) values ('%s','');\n",hostname);
- }
- else
- {
- fprintf(out,
- "INSERT INTO user VALUES ('localhost','root','',"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',"
- "'Y','Y','Y','Y','','','','',0,0,0);\n");
-#ifndef __WIN__
- fprintf(out,
- "INSERT INTO user VALUES ('%s','root','','Y','Y',"
- "'Y','Y','Y','Y','Y','Y'"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','',''"
- ",'','',0,0,0);\n",hostname);
- fprintf(out,"INSERT INTO user (host,user) values ('%s','');\n",hostname);
- fprintf(out,"INSERT INTO user (host,user) values ('localhost','');\n");
-#else
- fprintf(out,
- "INSERT INTO user VALUES ('localhost','','','Y','Y','Y'"
- ",'Y','Y','Y','Y','Y','Y'"
- ",'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','',"
- "'','',0,0,0);\n");
-#endif
- }
- }
-
-
- if (test_sys_file(mdata,"mysql/func.frm"))
- {
- fprintf(out,
- "CREATE TABLE func ("
- "name char(64) binary DEFAULT '' NOT NULL,"
- "ret tinyint(1) DEFAULT '0' NOT NULL,"
- "dl char(128) DEFAULT '' NOT NULL,"
- "type enum ('function','aggregate') NOT NULL,"
- "PRIMARY KEY (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='User defined functions';\n");
- }
-
- if (test_sys_file(mdata,"mysql/tables_priv.frm"))
- {
- fprintf(out,
- "CREATE TABLE tables_priv ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Table_name char(64) binary DEFAULT '' NOT NULL,"
- "Grantor char(77) DEFAULT '' NOT NULL,"
- "Timestamp timestamp(14),"
- "Table_priv set('Select','Insert','Update','Delete',"
- "'Create','Drop','Grant','References','Index','Alter')"
- " DEFAULT '' NOT NULL,"
- "Column_priv set('Select','Insert','Update','References')"
- " DEFAULT '' NOT NULL,"
- "PRIMARY KEY (Host,Db,User,Table_name),"
- "KEY Grantor (Grantor)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Table privileges';\n");
- }
-
- if (test_sys_file(mdata,"mysql/columns_priv.frm"))
- {
- fprintf(out,
- "CREATE TABLE columns_priv ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Table_name char(64) binary DEFAULT '' NOT NULL,"
- "Column_name char(64) binary DEFAULT '' NOT NULL,"
- "Timestamp timestamp(14),"
- "Column_priv set('Select','Insert','Update','References')"
- " DEFAULT '' NOT NULL,"
- "PRIMARY KEY (Host,Db,User,Table_name,Column_name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Column privileges';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_topic.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_topic ("
- "help_topic_id int unsigned not null,"
- "name varchar(64) not null,"
- "help_category_id smallint unsigned not null,"
- "description text not null,"
- "example text not null,"
- "url varchar(128) not null,"
- "primary key (help_topic_id),"
- "unique index (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='help topics';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_category.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_category ("
- "help_category_id smallint unsigned not null,"
- "name varchar(64) not null,"
- "parent_category_id smallint unsigned null,"
- "url varchar(128) not null,"
- "primary key (help_category_id),"
- "unique index (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='help categories';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_keyword.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_keyword ("
- "help_keyword_id int unsigned not null,"
- "name varchar(64) not null,"
- "primary key (help_keyword_id),"
- "unique index (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='help keywords';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_relation.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_relation ("
- "help_topic_id int unsigned not null references help_topic,"
- "help_keyword_id int unsigned not null references help_keyword,"
- "primary key (help_keyword_id, help_topic_id)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='keyword-topic relation';\n");
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_name.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_name ("
- "Name char(64) NOT NULL,"
- "Time_zone_id int unsigned NOT NULL,"
- "PRIMARY KEY Name (Name)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zone names';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES"
- "('MET', 1), ('UTC', 2), ('Universal', 2), "
- "('Europe/Moscow',3), ('leap/Europe/Moscow',4),"
- "('Japan', 5);\n");
-
- }
- }
-
-
- if (test_sys_file(mdata,"mysql/time_zone.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone ("
- "Time_zone_id int unsigned NOT NULL auto_increment,"
- "Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,"
- "PRIMARY KEY TzId (Time_zone_id)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zones';\n");
-
- if (test)
- {
- fprintf(out,"INSERT INTO time_zone (Time_zone_id, Use_leap_seconds)"
- "VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N');\n");
- }
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_transition.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_transition ("
- "Time_zone_id int unsigned NOT NULL,"
- "Transition_time bigint signed NOT NULL,"
- "Transition_type_id int unsigned NOT NULL,"
- "PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zone transitions';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_transition"
- "(Time_zone_id, Transition_time, Transition_type_id)"
- "VALUES"
- " (1, -1693706400, 0) ,(1, -1680483600, 1)"
- ",(1, -1663455600, 2) ,(1, -1650150000, 3)"
- ",(1, -1632006000, 2) ,(1, -1618700400, 3)"
- ",(1, -938905200, 2) ,(1, -857257200, 3)"
- ",(1, -844556400, 2) ,(1, -828226800, 3)"
- ",(1, -812502000, 2) ,(1, -796777200, 3)"
- ",(1, 228877200, 2) ,(1, 243997200, 3)"
- ",(1, 260326800, 2) ,(1, 276051600, 3)"
- ",(1, 291776400, 2) ,(1, 307501200, 3)"
- ",(1, 323830800, 2) ,(1, 338950800, 3)"
- ",(1, 354675600, 2) ,(1, 370400400, 3)"
- ",(1, 386125200, 2) ,(1, 401850000, 3)"
- ",(1, 417574800, 2) ,(1, 433299600, 3)"
- ",(1, 449024400, 2) ,(1, 465354000, 3)"
- ",(1, 481078800, 2) ,(1, 496803600, 3)"
- ",(1, 512528400, 2) ,(1, 528253200, 3)"
- ",(1, 543978000, 2) ,(1, 559702800, 3)"
- ",(1, 575427600, 2) ,(1, 591152400, 3)"
- ",(1, 606877200, 2) ,(1, 622602000, 3)"
- ",(1, 638326800, 2) ,(1, 654656400, 3)"
- ",(1, 670381200, 2) ,(1, 686106000, 3)"
- ",(1, 701830800, 2) ,(1, 717555600, 3)"
- ",(1, 733280400, 2) ,(1, 749005200, 3)"
- ",(1, 764730000, 2) ,(1, 780454800, 3)"
- ",(1, 796179600, 2) ,(1, 811904400, 3)"
- ",(1, 828234000, 2) ,(1, 846378000, 3)"
- ",(1, 859683600, 2) ,(1, 877827600, 3)"
- ",(1, 891133200, 2) ,(1, 909277200, 3)"
- ",(1, 922582800, 2) ,(1, 941331600, 3)"
- ",(1, 954032400, 2) ,(1, 972781200, 3)"
- ",(1, 985482000, 2) ,(1, 1004230800, 3)"
- ",(1, 1017536400, 2) ,(1, 1035680400, 3)"
- ",(1, 1048986000, 2) ,(1, 1067130000, 3)"
- ",(1, 1080435600, 2) ,(1, 1099184400, 3)"
- ",(1, 1111885200, 2) ,(1, 1130634000, 3)"
- ",(1, 1143334800, 2) ,(1, 1162083600, 3)"
- ",(1, 1174784400, 2) ,(1, 1193533200, 3)"
- ",(1, 1206838800, 2) ,(1, 1224982800, 3)"
- ",(1, 1238288400, 2) ,(1, 1256432400, 3)"
- ",(1, 1269738000, 2) ,(1, 1288486800, 3)"
- ",(1, 1301187600, 2) ,(1, 1319936400, 3)"
- ",(1, 1332637200, 2) ,(1, 1351386000, 3)"
- ",(1, 1364691600, 2) ,(1, 1382835600, 3)"
- ",(1, 1396141200, 2) ,(1, 1414285200, 3)"
- ",(1, 1427590800, 2) ,(1, 1445734800, 3)"
- ",(1, 1459040400, 2) ,(1, 1477789200, 3)"
- ",(1, 1490490000, 2) ,(1, 1509238800, 3)"
- ",(1, 1521939600, 2) ,(1, 1540688400, 3)"
- ",(1, 1553994000, 2) ,(1, 1572138000, 3)"
- ",(1, 1585443600, 2) ,(1, 1603587600, 3)"
- ",(1, 1616893200, 2) ,(1, 1635642000, 3)"
- ",(1, 1648342800, 2) ,(1, 1667091600, 3)"
- ",(1, 1679792400, 2) ,(1, 1698541200, 3)"
- ",(1, 1711846800, 2) ,(1, 1729990800, 3)"
- ",(1, 1743296400, 2) ,(1, 1761440400, 3)"
- ",(1, 1774746000, 2) ,(1, 1792890000, 3)"
- ",(1, 1806195600, 2) ,(1, 1824944400, 3)"
- ",(1, 1837645200, 2) ,(1, 1856394000, 3)"
- ",(1, 1869094800, 2) ,(1, 1887843600, 3)"
- ",(1, 1901149200, 2) ,(1, 1919293200, 3)"
- ",(1, 1932598800, 2) ,(1, 1950742800, 3)"
- ",(1, 1964048400, 2) ,(1, 1982797200, 3)"
- ",(1, 1995498000, 2) ,(1, 2014246800, 3)"
- ",(1, 2026947600, 2) ,(1, 2045696400, 3)"
- ",(1, 2058397200, 2) ,(1, 2077146000, 3)"
- ",(1, 2090451600, 2) ,(1, 2108595600, 3)"
- ",(1, 2121901200, 2) ,(1, 2140045200, 3)"
- ",(3, -1688265000, 2) ,(3, -1656819048, 1)"
- ",(3, -1641353448, 2) ,(3, -1627965048, 3)"
- ",(3, -1618716648, 1) ,(3, -1596429048, 3)"
- ",(3, -1593829848, 5) ,(3, -1589860800, 4)"
- ",(3, -1542427200, 5) ,(3, -1539493200, 6)"
- ",(3, -1525323600, 5) ,(3, -1522728000, 4)"
- ",(3, -1491188400, 7) ,(3, -1247536800, 4)"
- ",(3, 354920400, 5) ,(3, 370728000, 4)"
- ",(3, 386456400, 5) ,(3, 402264000, 4)"
- ",(3, 417992400, 5) ,(3, 433800000, 4)"
- ",(3, 449614800, 5) ,(3, 465346800, 8)"
- ",(3, 481071600, 9) ,(3, 496796400, 8)"
- ",(3, 512521200, 9) ,(3, 528246000, 8)"
- ",(3, 543970800, 9) ,(3, 559695600, 8)"
- ",(3, 575420400, 9) ,(3, 591145200, 8)"
- ",(3, 606870000, 9) ,(3, 622594800, 8)"
- ",(3, 638319600, 9) ,(3, 654649200, 8)"
- ",(3, 670374000, 10) ,(3, 686102400, 11)"
- ",(3, 695779200, 8) ,(3, 701812800, 5)"
- ",(3, 717534000, 4) ,(3, 733273200, 9)"
- ",(3, 748998000, 8) ,(3, 764722800, 9)"
- ",(3, 780447600, 8) ,(3, 796172400, 9)"
- ",(3, 811897200, 8) ,(3, 828226800, 9)"
- ",(3, 846370800, 8) ,(3, 859676400, 9)"
- ",(3, 877820400, 8) ,(3, 891126000, 9)"
- ",(3, 909270000, 8) ,(3, 922575600, 9)"
- ",(3, 941324400, 8) ,(3, 954025200, 9)"
- ",(3, 972774000, 8) ,(3, 985474800, 9)"
- ",(3, 1004223600, 8) ,(3, 1017529200, 9)"
- ",(3, 1035673200, 8) ,(3, 1048978800, 9)"
- ",(3, 1067122800, 8) ,(3, 1080428400, 9)"
- ",(3, 1099177200, 8) ,(3, 1111878000, 9)"
- ",(3, 1130626800, 8) ,(3, 1143327600, 9)"
- ",(3, 1162076400, 8) ,(3, 1174777200, 9)"
- ",(3, 1193526000, 8) ,(3, 1206831600, 9)"
- ",(3, 1224975600, 8) ,(3, 1238281200, 9)"
- ",(3, 1256425200, 8) ,(3, 1269730800, 9)"
- ",(3, 1288479600, 8) ,(3, 1301180400, 9)"
- ",(3, 1319929200, 8) ,(3, 1332630000, 9)"
- ",(3, 1351378800, 8) ,(3, 1364684400, 9)"
- ",(3, 1382828400, 8) ,(3, 1396134000, 9)"
- ",(3, 1414278000, 8) ,(3, 1427583600, 9)"
- ",(3, 1445727600, 8) ,(3, 1459033200, 9)"
- ",(3, 1477782000, 8) ,(3, 1490482800, 9)"
- ",(3, 1509231600, 8) ,(3, 1521932400, 9)"
- ",(3, 1540681200, 8) ,(3, 1553986800, 9)"
- ",(3, 1572130800, 8) ,(3, 1585436400, 9)"
- ",(3, 1603580400, 8) ,(3, 1616886000, 9)"
- ",(3, 1635634800, 8) ,(3, 1648335600, 9)"
- ",(3, 1667084400, 8) ,(3, 1679785200, 9)"
- ",(3, 1698534000, 8) ,(3, 1711839600, 9)"
- ",(3, 1729983600, 8) ,(3, 1743289200, 9)"
- ",(3, 1761433200, 8) ,(3, 1774738800, 9)"
- ",(3, 1792882800, 8) ,(3, 1806188400, 9)"
- ",(3, 1824937200, 8) ,(3, 1837638000, 9)"
- ",(3, 1856386800, 8) ,(3, 1869087600, 9)"
- ",(3, 1887836400, 8) ,(3, 1901142000, 9)"
- ",(3, 1919286000, 8) ,(3, 1932591600, 9)"
- ",(3, 1950735600, 8) ,(3, 1964041200, 9)"
- ",(3, 1982790000, 8) ,(3, 1995490800, 9)"
- ",(3, 2014239600, 8) ,(3, 2026940400, 9)"
- ",(3, 2045689200, 8) ,(3, 2058390000, 9)"
- ",(3, 2077138800, 8) ,(3, 2090444400, 9)"
- ",(3, 2108588400, 8) ,(3, 2121894000, 9)"
- ",(3, 2140038000, 8)"
- ",(4, -1688265000, 2) ,(4, -1656819048, 1)"
- ",(4, -1641353448, 2) ,(4, -1627965048, 3)"
- ",(4, -1618716648, 1) ,(4, -1596429048, 3)"
- ",(4, -1593829848, 5) ,(4, -1589860800, 4)"
- ",(4, -1542427200, 5) ,(4, -1539493200, 6)"
- ",(4, -1525323600, 5) ,(4, -1522728000, 4)"
- ",(4, -1491188400, 7) ,(4, -1247536800, 4)"
- ",(4, 354920409, 5) ,(4, 370728010, 4)"
- ",(4, 386456410, 5) ,(4, 402264011, 4)"
- ",(4, 417992411, 5) ,(4, 433800012, 4)"
- ",(4, 449614812, 5) ,(4, 465346812, 8)"
- ",(4, 481071612, 9) ,(4, 496796413, 8)"
- ",(4, 512521213, 9) ,(4, 528246013, 8)"
- ",(4, 543970813, 9) ,(4, 559695613, 8)"
- ",(4, 575420414, 9) ,(4, 591145214, 8)"
- ",(4, 606870014, 9) ,(4, 622594814, 8)"
- ",(4, 638319615, 9) ,(4, 654649215, 8)"
- ",(4, 670374016, 10) ,(4, 686102416, 11)"
- ",(4, 695779216, 8) ,(4, 701812816, 5)"
- ",(4, 717534017, 4) ,(4, 733273217, 9)"
- ",(4, 748998018, 8) ,(4, 764722818, 9)"
- ",(4, 780447619, 8) ,(4, 796172419, 9)"
- ",(4, 811897219, 8) ,(4, 828226820, 9)"
- ",(4, 846370820, 8) ,(4, 859676420, 9)"
- ",(4, 877820421, 8) ,(4, 891126021, 9)"
- ",(4, 909270021, 8) ,(4, 922575622, 9)"
- ",(4, 941324422, 8) ,(4, 954025222, 9)"
- ",(4, 972774022, 8) ,(4, 985474822, 9)"
- ",(4, 1004223622, 8) ,(4, 1017529222, 9)"
- ",(4, 1035673222, 8) ,(4, 1048978822, 9)"
- ",(4, 1067122822, 8) ,(4, 1080428422, 9)"
- ",(4, 1099177222, 8) ,(4, 1111878022, 9)"
- ",(4, 1130626822, 8) ,(4, 1143327622, 9)"
- ",(4, 1162076422, 8) ,(4, 1174777222, 9)"
- ",(4, 1193526022, 8) ,(4, 1206831622, 9)"
- ",(4, 1224975622, 8) ,(4, 1238281222, 9)"
- ",(4, 1256425222, 8) ,(4, 1269730822, 9)"
- ",(4, 1288479622, 8) ,(4, 1301180422, 9)"
- ",(4, 1319929222, 8) ,(4, 1332630022, 9)"
- ",(4, 1351378822, 8) ,(4, 1364684422, 9)"
- ",(4, 1382828422, 8) ,(4, 1396134022, 9)"
- ",(4, 1414278022, 8) ,(4, 1427583622, 9)"
- ",(4, 1445727622, 8) ,(4, 1459033222, 9)"
- ",(4, 1477782022, 8) ,(4, 1490482822, 9)"
- ",(4, 1509231622, 8) ,(4, 1521932422, 9)"
- ",(4, 1540681222, 8) ,(4, 1553986822, 9)"
- ",(4, 1572130822, 8) ,(4, 1585436422, 9)"
- ",(4, 1603580422, 8) ,(4, 1616886022, 9)"
- ",(4, 1635634822, 8) ,(4, 1648335622, 9)"
- ",(4, 1667084422, 8) ,(4, 1679785222, 9)"
- ",(4, 1698534022, 8) ,(4, 1711839622, 9)"
- ",(4, 1729983622, 8) ,(4, 1743289222, 9)"
- ",(4, 1761433222, 8) ,(4, 1774738822, 9)"
- ",(4, 1792882822, 8) ,(4, 1806188422, 9)"
- ",(4, 1824937222, 8) ,(4, 1837638022, 9)"
- ",(4, 1856386822, 8) ,(4, 1869087622, 9)"
- ",(4, 1887836422, 8) ,(4, 1901142022, 9)"
- ",(4, 1919286022, 8) ,(4, 1932591622, 9)"
- ",(4, 1950735622, 8) ,(4, 1964041222, 9)"
- ",(4, 1982790022, 8) ,(4, 1995490822, 9)"
- ",(4, 2014239622, 8) ,(4, 2026940422, 9)"
- ",(4, 2045689222, 8) ,(4, 2058390022, 9)"
- ",(4, 2077138822, 8) ,(4, 2090444422, 9)"
- ",(4, 2108588422, 8) ,(4, 2121894022, 9)"
- ",(4, 2140038022, 8), (5, -1009875600, 1);\n");
-
-
- }
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_transition_type.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_transition_type ("
- "Time_zone_id int unsigned NOT NULL,"
- "Transition_type_id int unsigned NOT NULL,"
- "Offset int signed DEFAULT 0 NOT NULL,"
- "Is_DST tinyint unsigned DEFAULT 0 NOT NULL,"
- "Abbreviation char(8) DEFAULT '' NOT NULL,"
- "PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zone transition types';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_transition_type (Time_zone_id,"
- "Transition_type_id, Offset, Is_DST, Abbreviation) VALUES"
- "(1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET')"
- ",(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET')"
- ",(2, 0, 0, 0, 'UTC')"
- ",(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST')"
- ",(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST')"
- ",(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD')"
- ",(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET')"
- ",(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD')"
- ",(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET')"
- ",(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST')"
- ",(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST')"
- ",(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD')"
- ",(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET')"
- ",(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD')"
- ",(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET')"
- ",(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST');\n");
-
- }
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_leap_second.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_leap_second ("
- "Transition_time bigint signed NOT NULL,"
- "Correction int signed NOT NULL,"
- "PRIMARY KEY TranTime (Transition_time)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Leap seconds information for time zones';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_leap_second "
- "(Transition_time, Correction) VALUES "
- "(78796800, 1) ,(94694401, 2) ,(126230402, 3)"
- ",(157766403, 4) ,(189302404, 5) ,(220924805, 6)"
- ",(252460806, 7) ,(283996807, 8) ,(315532808, 9)"
- ",(362793609, 10) ,(394329610, 11) ,(425865611, 12)"
- ",(489024012, 13) ,(567993613, 14) ,(631152014, 15)"
- ",(662688015, 16) ,(709948816, 17) ,(741484817, 18)"
- ",(773020818, 19) ,(820454419, 20) ,(867715220, 21)"
- ",(915148821, 22);\n");
- }
- }
-
- return fclose(out);
-}
diff --git a/mysql-test/my_manage.c b/mysql-test/my_manage.c
deleted file mode 100644
index 919d3bd0529..00000000000
--- a/mysql-test/my_manage.c
+++ /dev/null
@@ -1,890 +0,0 @@
-/*
- Copyright (c) 2003 Novell, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include <stdio.h>
-#include <errno.h>
-#ifndef __WIN__
-#include <dirent.h>
-#endif
-#include <string.h>
-#ifdef __NETWARE__
-#include <screen.h>
-#include <proc.h>
-#else
-#include <sys/types.h>
-#ifndef __WIN__
-#include <sys/wait.h>
-#include <unistd.h>
-#include <signal.h>
-#include <fnmatch.h> /* FIXME HAVE_FNMATCH_H or something */
-#else
-#include <direct.h>
-#include <stdlib.h>
-#include <stdio.h>
-#endif
-#endif
-#include <ctype.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <assert.h>
-
-#include "my_manage.h"
-
-#ifndef __NETWARE__
-#define ASSERT assert
-extern char **environ;
-#endif
-
-
-
-/******************************************************************************
-
- macros
-
-******************************************************************************/
-
-/******************************************************************************
-
- global variables
-
-******************************************************************************/
-
-/******************************************************************************
-
- functions
-
-******************************************************************************/
-
-/******************************************************************************
-
- init_args()
-
- Init an argument list.
-
-******************************************************************************/
-
-void init_args(arg_list_t *al)
-{
- ASSERT(al != NULL);
-
- al->argc= 0;
- al->size= ARG_BUF;
- al->argv= malloc(al->size * sizeof(char *));
- ASSERT(al->argv != NULL);
-
- return;
-}
-
-/******************************************************************************
-
- add_arg()
-
- Add an argument to a list.
-
-******************************************************************************/
-
-void add_arg(arg_list_t *al, const char *format, ...)
-{
- va_list ap;
- char temp[FN_REFLEN];
-
- ASSERT(al != NULL);
-
- /* increase size */
- if (al->argc >= (int)al->size)
- {
- al->size+= ARG_BUF;
- al->argv= realloc(al->argv, al->size * sizeof(char *));
- ASSERT(al->argv != NULL);
- }
-
- if (format)
- {
- va_start(ap, format);
- vsprintf(temp, format, ap);
- va_end(ap);
-
- al->argv[al->argc]= malloc(strlen(temp)+1);
- ASSERT(al->argv[al->argc] != NULL);
- strcpy(al->argv[al->argc], temp);
-
- ++(al->argc);
- }
- else
- {
- al->argv[al->argc]= NULL;
- }
-
- return;
-}
-
-/******************************************************************************
-
- free_args()
-
- Free an argument list.
-
-******************************************************************************/
-
-void free_args(arg_list_t *al)
-{
- int i;
-
- ASSERT(al != NULL);
-
- for (i= 0; i < al->argc; i++)
- {
- ASSERT(al->argv[i] != NULL);
- free(al->argv[i]);
- al->argv[i]= NULL;
- }
-
- free(al->argv);
- al->argc= 0;
- al->argv= NULL;
-
- return;
-}
-
-/******************************************************************************
-
- sleep_until_file_deleted()
-
- Sleep until the given file is no longer found.
-
-******************************************************************************/
-
-#ifndef __WIN__
-int sleep_until_file_deleted(char *pid_file)
-#else
-int sleep_until_file_deleted(HANDLE pid_file)
-#endif
-{
- int err= 0; /* Initiate to supress warning */
-#ifndef __WIN__
- struct stat buf;
- int i;
-
- for (i= 0; (i < TRY_MAX) && (err= !stat(pid_file, &buf)); i++) sleep(1);
-
- if (err != 0) err= errno;
-#else
- err= (WaitForSingleObject(pid_file, TRY_MAX*1000) == WAIT_TIMEOUT);
-#endif
- return err;
-}
-
-/******************************************************************************
-
- sleep_until_file_exists()
-
- Sleep until the given file exists.
-
-******************************************************************************/
-
-#ifndef __WIN__
-int sleep_until_file_exists(char *pid_file)
-#else
-int sleep_until_file_exists(HANDLE pid_file)
-#endif
-{
- int err= 0; /* Initiate to supress warning */
-#ifndef __WIN__
- struct stat buf;
- int i;
-
- for (i= 0; (i < TRY_MAX) && (err= stat(pid_file, &buf)); i++) sleep(1);
-
- if (err != 0) err= errno;
-#else
- err= (WaitForSingleObject(pid_file, TRY_MAX*1000) == WAIT_TIMEOUT);
-#endif
- return err;
-}
-
-/******************************************************************************
-
- wait_for_server_start()
-
- Wait for the server on the given port to start.
-
-******************************************************************************/
-
-int wait_for_server_start(char *bin_dir __attribute__((unused)),
- char *mysqladmin_file,
- char *user, char *password, int port,char *tmp_dir)
-{
- arg_list_t al;
- int err= 0;
-#ifndef __WIN__
- int i;
-#endif
- char trash[FN_REFLEN];
-
- /* mysqladmin file */
- snprintf(trash, FN_REFLEN, "%s/trash.out",tmp_dir);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqladmin_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--port=%u", port);
- add_arg(&al, "--user=%s", user);
- add_arg(&al, "--password=%s", password);
- add_arg(&al, "--silent");
-
-/* #ifdef NOT_USED */
-#ifndef __NETWARE__
- add_arg(&al, "-O");
- add_arg(&al, "connect_timeout=10");
- add_arg(&al, "-w");
-#endif
-
- add_arg(&al, "--host=localhost");
-#ifndef __NETWARE__
- add_arg(&al, "--protocol=tcp");
-#endif
- add_arg(&al, "ping");
-
- /*
- NetWare does not support the connect timeout in the TCP/IP stack
- -- we will try the ping multiple times
- */
-#ifndef __WIN__
- for (i= 0; (i < TRY_MAX)
- && (err= spawn(mysqladmin_file, &al, TRUE, NULL,
- trash, NULL, NULL)); i++) sleep(1);
-#else
- err= spawn(mysqladmin_file, &al, TRUE, NULL,trash, NULL, NULL);
-#endif
-
- /* free args */
- free_args(&al);
-
- return err;
-}
-
-/******************************************************************************
-
- spawn()
-
- Spawn the given path with the given arguments.
-
-******************************************************************************/
-
-#ifdef __NETWARE__
-int spawn(char *path, arg_list_t *al, int join, char *input,
- char *output, char *error, char *pid_file)
-{
- pid_t pid;
- int result= 0;
- wiring_t wiring= { FD_UNUSED, FD_UNUSED, FD_UNUSED };
- unsigned long flags= PROC_CURRENT_SPACE | PROC_INHERIT_CWD;
-
- /* open wiring */
- if (input)
- wiring.infd= open(input, O_RDONLY);
-
- if (output)
- wiring.outfd= open(output, O_WRONLY | O_CREAT | O_TRUNC);
-
- if (error)
- wiring.errfd= open(error, O_WRONLY | O_CREAT | O_TRUNC);
-
- /* procve requires a NULL */
- add_arg(al, NULL);
-
- /* go */
- pid= procve(path, flags, NULL, &wiring, NULL, NULL, 0,
- NULL, (const char **)al->argv);
-
- /* close wiring */
- if (wiring.infd != -1)
- close(wiring.infd);
-
- if (wiring.outfd != -1)
- close(wiring.outfd);
-
- if (wiring.errfd != -1)
- close(wiring.errfd);
-
- return result;
-}
-#elif __WIN__
-
-int spawn(char *path, arg_list_t *al, int join, char *input,
- char *output, char *error, HANDLE *pid)
-{
- bool result;
- int i;
- STARTUPINFO startup_info;
- PROCESS_INFORMATION process_information;
- DWORD exit_code;
- char win_args[1024]= "";
-
- /* Skip the first parameter */
- for (i= 1; i < al->argc; i++)
- {
- ASSERT(al->argv[i] != NULL);
- strcat(win_args,al->argv[i]);
- strcat(win_args," ");
- }
-
- memset(&startup_info,0,sizeof(STARTUPINFO));
- startup_info.cb= sizeof(STARTUPINFO);
-
- if (input)
- freopen(input, "rb", stdin);
-
- if (output)
- freopen(output, "wb", stdout);
-
- if (error)
- freopen(error, "wb", stderr);
-
- result= CreateProcess(
- path,
- (LPSTR)&win_args,
- NULL,
- NULL,
- TRUE,
- 0,
- NULL,
- NULL,
- &startup_info,
- &process_information
- );
-
- if (result && process_information.hProcess)
- {
- if (join)
- {
- if (WaitForSingleObject(process_information.hProcess, mysqld_timeout)
- == WAIT_TIMEOUT)
- {
- exit_code= -1;
- }
- else
- {
- GetExitCodeProcess(process_information.hProcess, &exit_code);
- }
- CloseHandle(process_information.hProcess);
- }
- else
- {
- exit_code= 0;
- }
- if (pid != NULL)
- *pid= process_information.hProcess;
- }
- else
- {
- exit_code= -1;
- }
- if (input)
- freopen("CONIN$","rb",stdin);
- if (output)
- freopen("CONOUT$","wb",stdout);
- if (error)
- freopen("CONOUT$","wb",stderr);
-
- return exit_code;
-}
-#else
-int spawn(char *path, arg_list_t *al, int join, char *input,
- char *output, char *error, char *pid_file __attribute__((unused)))
-{
- pid_t pid;
- int res_exec= 0;
- int result= 0;
-
- pid= fork();
-
- if (pid == -1)
- {
- fprintf(stderr, "fork was't created\n");
- /* We can't create the fork...exit with error */
- return EXIT_FAILURE;
- }
-
- if (pid > 0)
- {
- /* The parent process is waiting for child process if join is not zero */
- if (join)
- {
- waitpid(pid, &result, 0);
- if (WIFEXITED(result) != 0)
- {
- result= WEXITSTATUS(result);
- }
- else
- {
- result= EXIT_FAILURE;
- }
- }
- }
- else
- {
-
- /* Child process */
- add_arg(al, NULL);
-
- /* Reassign streams */
- if (input)
- freopen(input, "r", stdin);
-
- if (output)
- freopen(output, "w", stdout);
-
- if (error)
- freopen(error, "w", stderr);
-
- /* Spawn the process */
- if ((res_exec= execve(path, al->argv, environ)) < 0)
- exit(EXIT_FAILURE);
-
- /* Restore streams */
- if (input)
- freopen("/dev/tty", "r", stdin);
-
- if (output)
- freopen("/dev/tty", "w", stdout);
-
- if (error)
- freopen("/dev/tty", "w", stderr);
-
- exit(0);
- }
-
- return result;
-}
-#endif
-/******************************************************************************
-
- stop_server()
-
- Stop the server with the given port and pid file.
-
-******************************************************************************/
-
-int stop_server(char *bin_dir __attribute__((unused)), char *mysqladmin_file,
- char *user, char *password, int port,
-#ifndef __WIN__
- char *pid_file,
-#else
- HANDLE pid_file,
-#endif
- char *tmp_dir)
-{
- arg_list_t al;
- int err= 0;
- char trash[FN_REFLEN];
-
- snprintf(trash, FN_REFLEN, "%s/trash.out",tmp_dir);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqladmin_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--port=%u", port);
- add_arg(&al, "--user=%s", user);
- add_arg(&al, "--password=%s", password);
- add_arg(&al, "-O");
- add_arg(&al, "shutdown_timeout=20");
-#ifndef __NETWARE__
- add_arg(&al, "--protocol=tcp");
-#endif
- add_arg(&al, "shutdown");
-
- /* spawn */
- if ((err= spawn(mysqladmin_file, &al, TRUE, NULL,
- trash, NULL, NULL)) == 0)
- {
- sleep_until_file_deleted(pid_file);
- }
- else
- {
-#ifndef __WIN__
- pid_t pid= get_server_pid(pid_file);
-
- /* shutdown failed - kill server */
- kill_server(pid);
-
- sleep(TRY_MAX);
-
- /* remove pid file if possible */
- err= remove(pid_file);
-#else
- TerminateProcess(pid_file,err);
-#endif
- }
-
- /* free args */
- free_args(&al);
-
- return err;
-}
-
-/******************************************************************************
-
- get_server_pid()
-
- Get the VM id with the given pid file.
-
-******************************************************************************/
-
-#ifndef __WIN__
-pid_t get_server_pid(char *pid_file)
-{
- char buf[FN_REFLEN];
- int fd, err;
- char *p;
- pid_t id= 0;
-
- /* discover id */
- fd= open(pid_file, O_RDONLY);
-
- err= read(fd, buf, FN_REFLEN);
-
- close(fd);
-
- if (err > 0)
- {
- /* terminate string */
- if ((p= strchr(buf, '\n')) != NULL)
- {
- *p= '\0';
-
- /* check for a '\r' */
- if ((p= strchr(buf, '\r')) != NULL)
- {
- *p= '\0';
- }
- }
- else
- {
- buf[err]= '\0';
- }
-
- id= strtol(buf, NULL, 0);
- }
-
- return id;
-}
-
-/******************************************************************************
-
- kill_server()
-
- Force a kill of the server with the given pid.
-
-******************************************************************************/
-
-void kill_server(pid_t pid)
-{
- if (pid > 0)
- {
-#if !defined(__NETWARE__)
- /* Send SIGTERM to pid */
- kill(pid, SIGTERM);
-#else /* __NETWARE__ */
- /* destroy vm */
- NXVmDestroy(pid);
-#endif
- }
-}
-#endif
-/******************************************************************************
-
- del_tree()
-
- Delete the directory and subdirectories.
-
-******************************************************************************/
-
-void del_tree(char *dir)
-{
-#ifndef __WIN__
- DIR *parent= opendir(dir);
- struct dirent *entry;
- char temp[FN_REFLEN];
-
- if (parent == NULL)
- {
- return;
- }
-
- while ((entry= readdir(parent)) != NULL)
- {
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", dir, entry->d_name);
-
- if (entry->d_name[0] == '.')
- {
- /* Skip */
- }
- else
- {
-/* FIXME missing test in acinclude.m4 */
-#ifndef STRUCT_DIRENT_HAS_D_TYPE
- struct stat st;
-
- if (lstat(entry->d_name, &st) == -1)
- {
- /* FIXME error */
- return;
- }
- if (S_ISDIR(st.st_mode))
-#else
- if (S_ISDIR(entry->d_type))
-#endif
- {
- /* delete subdirectory */
- del_tree(temp);
- }
- else
- {
- /* remove file */
- remove(temp);
- }
- }
- }
- /* remove directory */
- rmdir(dir);
-#else
- struct _finddata_t parent;
-#if defined(_MSC_VER) && _MSC_VER > 1200
- intptr_t handle;
-#else
- long handle;
-#endif /* _MSC_VER && _MSC_VER > 1200 */
- char temp[FN_REFLEN];
- char mask[FN_REFLEN];
-
- snprintf(mask,FN_REFLEN,"%s/*.*",dir);
-
- if ((handle=_findfirst(mask,&parent)) == -1L)
- {
- return;
- }
-
- do
- {
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", dir, parent.name);
- if (parent.name[0] == '.')
- {
- /* Skip */
- }
- else
- if (parent.attrib & _A_SUBDIR)
- {
- /* delete subdirectory */
- del_tree(temp);
- }
- else
- {
- /* remove file */
- remove(temp);
- }
- } while (_findnext(handle,&parent) == 0);
-
- _findclose(handle);
-
- /* remove directory */
- _rmdir(dir);
-#endif
-}
-
-/******************************************************************************
-
- removef()
-
-******************************************************************************/
-
-int removef(const char *format, ...)
-{
-#ifdef __NETWARE__
- va_list ap;
- char path[FN_REFLEN];
-
- va_start(ap, format);
-
- vsnprintf(path, FN_REFLEN, format, ap);
-
- va_end(ap);
- return remove(path);
-
-#elif __WIN__
- {
- va_list ap;
- char path[FN_REFLEN];
- struct _finddata_t parent;
-#if defined(_MSC_VER) && _MSC_VER > 1200
- intptr_t handle;
-#else
- long handle;
-#endif /* _MSC_VER && _MSC_VER > 1200 */
- char temp[FN_REFLEN];
- char *p;
-
- va_start(ap, format);
-
- vsnprintf(path, FN_REFLEN, format, ap);
-
- va_end(ap);
-
- p= path + strlen(path);
- while (*p != '\\' && *p != '/' && p > path) p--;
-
- if ((handle=_findfirst(path,&parent)) == -1L)
- {
- /* if there is not files....it's ok */
- return 0;
- }
-
- *p= '\0';
-
- do
- {
- if (! (parent.attrib & _A_SUBDIR))
- {
- snprintf(temp, FN_REFLEN, "%s/%s", path, parent.name);
- remove(temp);
- }
- }while (_findnext(handle,&parent) == 0);
-
- _findclose(handle);
- }
-#else
- DIR *parent;
- struct dirent *entry;
- char temp[FN_REFLEN];
- va_list ap;
- char path[FN_REFLEN];
- char *p;
- /* Get path with mask */
- va_start(ap, format);
-
- vsnprintf(path, FN_REFLEN, format, ap);
-
- va_end(ap);
-
- p= path + strlen(path);
- while (*p != '\\' && *p != '/' && p > path) p--;
- *p= '\0';
- p++;
-
- parent= opendir(path);
-
- if (parent == NULL)
- {
- return 1; /* Error, directory missing */
- }
-
- while ((entry= readdir(parent)) != NULL)
- {
- /* entry is not directory and entry matches with mask */
-#ifndef STRUCT_DIRENT_HAS_D_TYPE
- struct stat st;
-
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", path, entry->d_name);
-
- if (lstat(temp, &st) == -1)
- {
- return 1; /* Error couldn't lstat file */
- }
-
- if (!S_ISDIR(st.st_mode) && !fnmatch(p, entry->d_name,0))
-#else
- if (!S_ISDIR(entry->d_type) && !fnmatch(p, entry->d_name,0))
-#endif
- {
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", path, entry->d_name);
- /* Delete only files */
- remove(temp);
- }
- }
-#endif
- return 0;
-}
-
-/******************************************************************************
-
- get_basedir()
-
-******************************************************************************/
-
-void get_basedir(char *argv0, char *basedir)
-{
- char temp[FN_REFLEN];
- char *p;
- int position;
-
- ASSERT(argv0 != NULL);
- ASSERT(basedir != NULL);
-
- strcpy(temp, strlwr(argv0));
- while ((p= strchr(temp, '\\')) != NULL) *p= '/';
-
- if ((position= strinstr(temp, "/bin/")) != 0)
- {
- p= temp + position;
- *p= '\0';
- strcpy(basedir, temp);
- }
-}
-
-uint strinstr(reg1 const char *str,reg4 const char *search)
-{
- reg2 my_string i,j;
- my_string start= (my_string) str;
-
- skipp:
- while (*str != '\0')
- {
- if (*str++ == *search)
- {
- i=(my_string) str;
- j= (my_string) search+1;
- while (*j)
- if (*i++ != *j++) goto skipp;
- return ((uint) (str - start));
- }
- }
- return (0);
-}
-
-/******************************************************************************
-
- remove_empty_file()
-
-******************************************************************************/
-
-void remove_empty_file(const char *file_name)
-{
- struct stat file;
-
- if (!stat(file_name,&file))
- {
- if (!file.st_size)
- remove(file_name);
- }
-}
diff --git a/mysql-test/my_manage.h b/mysql-test/my_manage.h
deleted file mode 100644
index 5df77b01af8..00000000000
--- a/mysql-test/my_manage.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- Copyright (c) 2002 Novell, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifndef _MY_MANAGE
-#define _MY_MANAGE
-
-/******************************************************************************
-
- includes
-
-******************************************************************************/
-
-#include <stdlib.h>
-#ifndef __WIN__
-#include <unistd.h>
-#endif
-#ifndef __NETWARE__
-#include <string.h>
-#include <my_global.h>
-#include <m_string.h>
-
-#ifndef __WIN__
-#define strnicmp strncasecmp
-#define strlwr(STRARG) (STRARG)
-#else
-int my_vsnprintf_(char *to, size_t n, const char* value, ...);
-#endif
-#endif
-
-/******************************************************************************
-
- macros
-
-******************************************************************************/
-
-#define ARG_BUF 10
-#define TRY_MAX 5
-
-#ifdef __WIN__
-#define PATH_MAX _MAX_PATH
-#define NAME_MAX _MAX_FNAME
-#define kill(A,B) TerminateProcess((HANDLE)A,0)
-#define NOT_NEED_PID 0
-#define MASTER_PID 1
-#define SLAVE_PID 2
-#define mysqld_timeout 60000
-
-int pid_mode;
-bool run_server;
-bool skip_first_param;
-
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#endif
-
-
-/******************************************************************************
-
- structures
-
-******************************************************************************/
-
-typedef struct
-{
-
- int argc;
- char **argv;
-
- size_t size;
-
-} arg_list_t;
-
-#ifdef __WIN__
-typedef int pid_t;
-#endif
-/******************************************************************************
-
- global variables
-
-******************************************************************************/
-
-/******************************************************************************
-
- prototypes
-
-******************************************************************************/
-
-void init_args(arg_list_t *);
-void add_arg(arg_list_t *, const char *, ...);
-void free_args(arg_list_t *);
-
-#ifndef __WIN__
-int sleep_until_file_exists(char *);
-int sleep_until_file_deleted(char *);
-#else
-int sleep_until_file_exists(HANDLE);
-int sleep_until_file_deleted(HANDLE);
-#endif
-int wait_for_server_start(char *, char *, char *, char *, int,char *);
-
-#ifndef __WIN__
-int spawn(char *, arg_list_t *, int, char *, char *, char *, char *);
-#else
-int spawn(char *, arg_list_t *, int , char *, char *, char *, HANDLE *);
-#endif
-
-#ifndef __WIN__
-int stop_server(char *, char *, char *, char *, int, char *,char *);
-pid_t get_server_pid(char *);
-void kill_server(pid_t pid);
-#else
-int stop_server(char *, char *, char *, char *, int, HANDLE,char *);
-#endif
-void del_tree(char *);
-int removef(const char *, ...);
-
-void get_basedir(char *, char *);
-void remove_empty_file(const char *file_name);
-
-bool create_system_files(const char *mdata,const char *output_file, bool test);
-
-#endif /* _MY_MANAGE */
diff --git a/mysql-test/mysql-stress-test.pl b/mysql-test/mysql-stress-test.pl
new file mode 100755
index 00000000000..3061506da51
--- /dev/null
+++ b/mysql-test/mysql-stress-test.pl
@@ -0,0 +1,1149 @@
+#!/usr/bin/perl
+# ======================================================================
+# MySQL server stress test system
+# ======================================================================
+#
+##########################################################################
+#
+# SCENARIOS AND REQUIREMENTS
+#
+# The system should perform stress testing of MySQL server with
+# following requirements and basic scenarios:
+#
+# Basic requirements:
+#
+# Design of stress script should allow one:
+#
+# - To stress test the mysqltest binary test engine.
+# - To stress test the regular test suite and any additional test suites
+# (such as mysql-test-extra-5.0).
+# - To specify files with lists of tests both for initialization of
+# stress db and for further testing itself.
+# - To define the number of threads to be concurrently used in testing.
+# - To define limitations for the test run. such as the number of tests or
+# loops for execution or duration of testing, delay between test
+# executions, and so forth.
+# - To get a readable log file that can be used for identification of
+# errors that occur during testing.
+#
+# Basic scenarios:
+#
+# * It should be possible to run stress script in standalone mode
+# which will allow to create various scenarios of stress workloads:
+#
+# simple ones:
+#
+# box #1:
+# - one instance of script with list of tests #1
+#
+# and more advanced ones:
+#
+# box #1:
+# - one instance of script with list of tests #1
+# - another instance of script with list of tests #2
+# box #2:
+# - one instance of script with list of tests #3
+# - another instance of script with list of tests #4
+# that will recreate whole database to back it to clean
+# state
+#
+# One kind of such complex scenarios maybe continued testing
+# when we want to run stress tests from many boxes with various
+# lists of tests that will last very long time. And in such case
+# we need some wrapper for MySQL server that will restart it in
+# case of crashes.
+#
+# * It should be possible to run stress script in ad-hoc mode from
+# shell or perl versions of mysql-test-run. This allows developers
+# to reproduce and debug errors that was found in continued stress
+# testing
+#
+########################################################################
+
+use Config;
+
+if (!defined($Config{useithreads}))
+{
+ die <<EOF;
+It is unable to run threaded version of stress test on this system
+due to disabled ithreads. Please check that installed perl binary
+was built with support of ithreads.
+EOF
+}
+
+use threads;
+use threads::shared;
+
+use IO::Socket;
+use Sys::Hostname;
+use File::Copy;
+use File::Spec;
+use File::Find;
+use File::Basename;
+use File::Path;
+use Cwd;
+
+use Data::Dumper;
+use Getopt::Long;
+
+my $stress_suite_version="1.0";
+
+$|=1;
+
+$opt_server_host="";
+$opt_server_logs_dir="";
+$opt_help="";
+$opt_server_port="";
+$opt_server_socket="";
+$opt_server_user="";
+$opt_server_password="";
+$opt_server_database="";
+$opt_cleanup="";
+$opt_verbose="";
+$opt_log_error_details="";
+
+
+$opt_suite="main";
+$opt_stress_suite_basedir="";
+$opt_stress_basedir="";
+$opt_stress_datadir="";
+$opt_test_suffix="";
+
+$opt_stress_mode="random";
+
+$opt_loop_count=0;
+$opt_test_count=0;
+$opt_test_duration=0;
+$opt_abort_on_error=0;
+$opt_sleep_time = 0;
+$opt_threads=1;
+$pid_file="mysql_stress_test.pid";
+$opt_mysqltest= ($^O =~ /mswin32/i) ? "mysqltest.exe" : "mysqltest";
+$opt_check_tests_file="";
+@mysqltest_args=("--silent", "-v", "--skip-safemalloc");
+
+# Client ip address
+$client_ip=inet_ntoa((gethostbyname(hostname()))[4]);
+$client_ip=~ s/\.//g;
+
+%tests_files=(client => {mtime => 0, data => []},
+ initdb => {mtime => 0, data => []});
+
+# Error codes and sub-strings with corresponding severity
+#
+# S1 - Critical errors - cause immediately abort of testing. These errors
+# could be caused by server crash or impossibility
+# of test execution
+#
+# S2 - Serious errors - these errors are bugs for sure as it knowns that
+# they shouldn't appear during stress testing
+#
+# S3 - Non-seriuos errros - these errors could be caused by fact that
+# we execute simultaneously statements that
+# affect tests executed by other threads
+
+%error_strings = ( 'Failed in mysql_real_connect()' => S1,
+ 'not found (Errcode: 2)' => S1 );
+
+%error_codes = ( 1012 => S2, 1015 => S2, 1021 => S2,
+ 1027 => S2, 1037 => S2, 1038 => S2,
+ 1039 => S2, 1040 => S2, 1046 => S2,
+ 1180 => S2, 1181 => S2, 1203 => S2,
+ 1205 => S2, 1206 => S2, 1207 => S2,
+ 1223 => S2, 2013 => S1);
+
+share(%test_counters);
+%test_counters=( loop_count => 0, test_count=>0);
+
+share($exiting);
+$exiting=0;
+
+share($test_counters_lock);
+$test_counters_lock=0;
+share($log_file_lock);
+$log_file_lock=0;
+
+$SIG{INT}= \&sig_INT_handler;
+$SIG{TERM}= \&sig_TERM_handler;
+
+
+GetOptions("server-host=s", "server-logs-dir=s", "server-port=s",
+ "server-socket=s", "server-user=s", "server-password=s",
+ "server-database=s",
+ "stress-suite-basedir=s", "suite=s", "stress-init-file:s",
+ "stress-tests-file:s", "stress-basedir=s", "stress-mode=s",
+ "stress-datadir=s",
+ "threads=s", "sleep-time=s", "loop-count=i", "test-count=i",
+ "test-duration=i", "test-suffix=s", "check-tests-file",
+ "verbose", "log-error-details", "cleanup", "mysqltest=s",
+ "abort-on-error", "help") || usage();
+
+usage() if ($opt_help);
+
+#$opt_abort_on_error=1;
+
+$test_dirname=get_timestamp();
+$test_dirname.="-$opt_test_suffix" if ($opt_test_suffix ne '');
+
+print <<EOF;
+#############################################################
+ CONFIGURATION STAGE
+#############################################################
+EOF
+
+if ($opt_stress_basedir eq '' || $opt_stress_suite_basedir eq '' ||
+ $opt_server_logs_dir eq '')
+{
+ die <<EOF;
+
+Options --stress-basedir, --stress-suite-basedir and --server-logs-dir are
+required. Please use these options to specify proper basedir for
+client, test suite and location of server logs.
+
+stress-basedir: '$opt_stress_basedir'
+stress-suite-basedir: '$opt_stress_suite_basedir'
+server-logs-dir: '$opt_server_logs_dir'
+
+EOF
+}
+
+#Workaround for case when we got relative but not absolute path
+$opt_stress_basedir=File::Spec->rel2abs($opt_stress_basedir);
+$opt_stress_suite_basedir=File::Spec->rel2abs($opt_stress_suite_basedir);
+$opt_server_logs_dir=File::Spec->rel2abs($opt_server_logs_dir);
+
+if ($opt_stress_datadir ne '')
+{
+ $opt_stress_datadir=File::Spec->rel2abs($opt_stress_datadir);
+}
+
+if (! -d "$opt_stress_basedir")
+{
+ die <<EOF;
+
+Directory '$opt_stress_basedir' does not exist.
+Use --stress-basedir option to specify proper basedir for client
+
+EOF
+}
+
+if (!-d $opt_stress_suite_basedir)
+{
+ die <<EOF;
+
+Directory '$opt_stress_suite_basedir' does not exist.
+Use --stress-suite-basedir option to specify proper basedir for test suite
+
+EOF
+}
+
+$test_dataset_dir=$opt_stress_suite_basedir;
+if ($opt_stress_datadir ne '')
+{
+ if (-d $opt_stress_datadir)
+ {
+ $test_dataset_dir=$opt_stress_datadir;
+
+ }
+ else
+ {
+ die <<EOF;
+Directory '$opt_stress_datadir' not exists. Please specify proper one
+with --stress-datadir option.
+EOF
+ }
+}
+
+if ($^O =~ /mswin32/i)
+{
+ $test_dataset_dir=~ s/\\/\\\\/g;
+}
+else
+{
+ $test_dataset_dir.="/";
+}
+
+
+
+if (!-d $opt_server_logs_dir)
+{
+ die <<EOF;
+
+Directory server-logs-dir '$opt_server_logs_dir' does not exist.
+Use --server-logs-dir option to specify proper directory for storing
+logs
+
+EOF
+}
+else
+{
+ #Create sub-directory for test session logs
+ mkpath(File::Spec->catdir($opt_server_logs_dir, $test_dirname), 0, 0755);
+ #Define filename of global session log file
+ $stress_log_file=File::Spec->catfile($opt_server_logs_dir, $test_dirname,
+ "mysql-stress-test.log");
+}
+
+if ($opt_suite ne '' && $opt_suite ne 'main' && $opt_suite ne 'default')
+{
+ $test_suite_dir=File::Spec->catdir($opt_stress_suite_basedir, "suite", $opt_suite);
+}
+else
+{
+ $test_suite_dir= $opt_stress_suite_basedir;
+}
+
+if (!-d $test_suite_dir)
+{
+ die <<EOF
+
+Directory '$test_suite_dir' does not exist.
+Use --suite options to specify proper dir for test suite
+
+EOF
+}
+
+$test_suite_t_path=File::Spec->catdir($test_suite_dir,'t');
+$test_suite_r_path=File::Spec->catdir($test_suite_dir,'r');
+
+foreach my $suite_dir ($test_suite_t_path, $test_suite_r_path)
+{
+ if (!-d $suite_dir)
+ {
+ die <<EOF;
+
+Directory '$suite_dir' does not exist.
+Please ensure that you specified proper source location for
+test/result files with --stress-suite-basedir option and name
+of test suite with --suite option
+
+EOF
+ }
+}
+
+$test_t_path=File::Spec->catdir($opt_stress_basedir,'t');
+$test_r_path=File::Spec->catdir($opt_stress_basedir,'r');
+
+foreach $test_dir ($test_t_path, $test_r_path)
+{
+ if (-d $test_dir)
+ {
+ if ($opt_cleanup)
+ {
+ #Delete existing 't', 'r', 'r/*' subfolders in $stress_basedir
+ rmtree("$test_dir", 0, 0);
+ print "Cleanup $test_dir\n";
+ }
+ else
+ {
+ die <<EOF;
+Directory '$test_dir' already exist.
+Please ensure that you specified proper location of working dir
+for current test run with --stress-basedir option or in case of staled
+directories use --cleanup option to remove ones
+EOF
+ }
+ }
+ #Create empty 't', 'r' subfolders that will be filled later
+ mkpath("$test_dir", 0, 0777);
+}
+
+if (!defined($opt_stress_tests_file) && !defined($opt_stress_init_file))
+{
+ die <<EOF;
+You should run stress script either with --stress-tests-file or with
+--stress-init-file otions. See help for details.
+EOF
+}
+
+if (defined($opt_stress_tests_file))
+{
+ if ($opt_stress_tests_file eq '')
+ {
+ #Default location of file with set of tests for current test run
+ $tests_files{client}->{filename}= File::Spec->catfile($opt_stress_suite_basedir,
+ "testslist_client.txt");
+ }
+ else
+ {
+ $tests_files{client}->{filename}= $opt_stress_tests_file;
+ }
+
+ if (!-f $tests_files{client}->{filename})
+ {
+ die <<EOF;
+
+File '$tests_files{client}->{filename}' with list of tests not exists.
+Please ensure that this file exists, readable or specify another one with
+--stress-tests-file option.
+
+EOF
+ }
+}
+
+if (defined($opt_stress_init_file))
+{
+ if ($opt_stress_init_file eq '')
+ {
+ #Default location of file with set of tests for current test run
+ $tests_files{initdb}->{filename}= File::Spec->catfile($opt_stress_suite_basedir,
+ "testslist_initdb.txt");
+ }
+ else
+ {
+ $tests_files{initdb}->{filename}= $opt_stress_init_file;
+ }
+
+ if (!-f $tests_files{initdb}->{filename})
+ {
+ die <<EOF;
+
+File '$tests_files{initdb}->{filename}' with list of tests for initialization of database
+for stress test not exists.
+Please ensure that this file exists, readable or specify another one with
+--stress-init-file option.
+
+EOF
+ }
+}
+
+if ($opt_stress_mode !~ /^(random|seq)$/)
+{
+ die <<EOF
+Was specified wrong --stress-mode. Correct values 'random' and 'seq'.
+EOF
+}
+
+if (open(TEST, "$opt_mysqltest -V |"))
+{
+ $mysqltest_version=join("",<TEST>);
+ close(TEST);
+ print "FOUND MYSQLTEST BINARY: ", $mysqltest_version,"\n";
+}
+else
+{
+ die <<EOF;
+ERROR: mysqltest binary $opt_mysqltest not found $!.
+You must either specify file location explicitly using --mysqltest
+option, or make sure path to mysqltest binary is listed
+in your PATH environment variable.
+EOF
+}
+
+#
+#Adding mysql server specific command line options for mysqltest binary
+#
+$opt_server_host= $opt_server_host ? $opt_server_host : "localhost";
+$opt_server_port= $opt_server_port ? $opt_server_port : "3306";
+$opt_server_user= $opt_server_user ? $opt_server_user : "root";
+$opt_server_socket= $opt_server_socket ? $opt_server_socket : "/tmp/mysql.sock";
+$opt_server_database= $opt_server_database ? $opt_server_database : "test";
+
+unshift @mysqltest_args, "--host=$opt_server_host";
+unshift @mysqltest_args, "--port=$opt_server_port";
+unshift @mysqltest_args, "--user=$opt_server_user";
+unshift @mysqltest_args, "--password=$opt_server_password";
+unshift @mysqltest_args, "--socket=$opt_server_socket";
+unshift @mysqltest_args, "--database=$opt_server_database";
+
+#Export variables that could be used in tests
+$ENV{MYSQL_TEST_DIR}=$test_dataset_dir;
+$ENV{MASTER_MYPORT}=$opt_server_port;
+$ENV{MASTER_MYSOCK}=$opt_server_socket;
+
+print <<EOF;
+TEST-SUITE-BASEDIR: $opt_stress_suite_basedir
+SUITE: $opt_suite
+TEST-BASE-DIR: $opt_stress_basedir
+TEST-DATADIR: $test_dataset_dir
+SERVER-LOGS-DIR: $opt_server_logs_dir
+
+THREADS: $opt_threads
+TEST-MODE: $opt_stress_mode
+
+EOF
+
+#-------------------------------------------------------------------------------
+#At this stage we've already checked all needed pathes/files
+#and ready to start the test
+#-------------------------------------------------------------------------------
+
+if (defined($opt_stress_tests_file) || defined($opt_stress_init_file))
+{
+ print <<EOF;
+#############################################################
+ PREPARATION STAGE
+#############################################################
+EOF
+
+ #Copy Test files from network share to 't' folder
+ print "\nCopying Test files from $test_suite_t_path to $test_t_path folder...";
+ find({wanted=>\&copy_test_files, bydepth=>1}, "$test_suite_t_path");
+ print "Done\n";
+
+ #$test_r_path/r0 dir reserved for initdb
+ $count_start= defined($opt_stress_init_file) ? 0 : 1;
+
+ our $r_folder='';
+ print "\nCreating 'r' folder and copying Protocol files to each 'r#' sub-folder...";
+ for($count=$count_start; $count <= $opt_threads; $count++)
+ {
+ $r_folder = File::Spec->catdir($test_r_path, "r".$count);
+ mkpath("$r_folder", 0, 0777);
+
+ find(\&copy_result_files,"$test_suite_r_path");
+ }
+ print "Done\n\n";
+}
+
+if (defined($opt_stress_init_file))
+{
+ print <<EOF;
+#############################################################
+ INITIALIZATION STAGE
+#############################################################
+EOF
+
+ #Set limits for stress db initialization
+ %limits=(loop_count => 1, test_count => undef);
+
+ #Read list of tests from $opt_stress_init_file
+ read_tests_names($tests_files{initdb});
+ test_loop($client_ip, 0, 'seq', $tests_files{initdb});
+ #print Dumper($tests_files{initdb}),"\n";
+ print <<EOF;
+
+Done initialization of stress database by tests from
+$tests_files{initdb}->{filename} file.
+
+EOF
+}
+
+if (defined($opt_stress_tests_file))
+{
+ print <<EOF;
+#############################################################
+ STRESS TEST RUNNING STAGE
+#############################################################
+EOF
+
+ $exiting=0;
+ #Read list of tests from $opt_stress_tests_file
+ read_tests_names($tests_files{client});
+
+ #Reset current counter and set limits
+ %test_counters=( loop_count => 0, test_count=>0);
+ %limits=(loop_count => $opt_loop_count, test_count => $opt_test_count);
+
+ if (($opt_loop_count && $opt_threads > $opt_loop_count) ||
+ ($opt_test_count && $opt_threads > $opt_test_count))
+ {
+ warn <<EOF;
+
+WARNING: Possible inaccuracies in number of executed loops or
+ tests because number of threads bigger than number of
+ loops or tests:
+
+ Threads will be started: $opt_threads
+ Loops will be executed: $opt_loop_count
+ Tests will be executed: $opt_test_count
+
+EOF
+ }
+
+ #Create threads (number depending on the variable )
+ for ($id=1; $id<=$opt_threads && !$exiting; $id++)
+ {
+ $thrd[$id] = threads->create("test_loop", $client_ip, $id,
+ $opt_stress_mode, $tests_files{client});
+
+ print "main: Thread ID $id TID ",$thrd[$id]->tid," started\n";
+ select(undef, undef, undef, 0.5);
+ }
+
+ if ($opt_test_duration)
+ {
+ sleep($opt_test_duration);
+ kill INT, $$; #Interrupt child threads
+ }
+
+ #Let other threads to process INT signal
+ sleep(1);
+
+ for ($id=1; $id<=$opt_threads;$id++)
+ {
+ if (defined($thrd[$id]))
+ {
+ $thrd[$id]->join();
+ }
+ }
+ print "EXIT\n";
+}
+
+sub test_init
+{
+ my ($env)=@_;
+
+ $env->{session_id}=$env->{ip}."_".$env->{thread_id};
+ $env->{r_folder}='r'.$env->{thread_id};
+ $env->{screen_logs}=File::Spec->catdir($opt_server_logs_dir, $test_dirname,
+ "screen_logs", $env->{session_id});
+ $env->{reject_logs}=File::Spec->catdir($opt_server_logs_dir, $test_dirname,
+ "reject_logs", $env->{session_id});
+
+ mkpath($env->{screen_logs}, 0, 0755) unless (-d $env->{screen_logs});
+ mkpath($env->{reject_logs}, 0, 0755) unless (-d $env->{reject_logs});
+
+ $env->{session_log}= File::Spec->catfile($env->{screen_logs}, $env->{session_id}.".log");
+}
+
+sub test_execute
+{
+ my $env= shift;
+ my $test_name= shift;
+
+ my $g_start= "";
+ my $g_end= "";
+ my $mysqltest_cmd= "";
+ my @mysqltest_test_args=();
+ my @stderr=();
+
+ #Get time stamp
+ $g_start = get_timestamp();
+ $env->{errors}={};
+ @{$env->{test_status}}=();
+
+ my $test_file= $test_name.".test";
+ my $result_file= $test_name.".result";
+ my $reject_file = $test_name.'.reject';
+ my $output_file = $env->{session_id}.'_'.$test_name.'_'.$g_start."_".$env->{test_count}.'.txt';
+
+ my $test_filename = File::Spec->catfile($test_t_path, $test_file);
+ my $result_filename = File::Spec->catdir($test_r_path, $env->{r_folder}, $result_file);
+ my $reject_filename = File::Spec->catdir($test_r_path, $env->{r_folder}, $reject_file);
+ my $output_filename = File::Spec->catfile($env->{screen_logs}, $output_file);
+
+
+ push @mysqltest_test_args, "--basedir=$opt_stress_suite_basedir/",
+ "--tmpdir=$opt_stress_basedir",
+ "-x $test_filename",
+ "-R $result_filename",
+ "2>$output_filename";
+
+ $cmd= "$opt_mysqltest --no-defaults ".join(" ", @mysqltest_args)." ".
+ join(" ", @mysqltest_test_args);
+
+ system($cmd);
+
+ $exit_value = $? >> 8;
+ $signal_num = $? & 127;
+ $dumped_core = $? & 128;
+
+ my $tid= threads->self->tid;
+
+ if (-s $output_filename > 0)
+ {
+ #Read stderr for further analysis
+ open (STDERR_LOG, $output_filename) or
+ warn "Can't open file $output_filename";
+ @stderr=<STDERR_LOG>;
+ close(STDERR_LOG);
+
+ if ($opt_verbose)
+ {
+ $session_debug_file="$opt_stress_basedir/error$tid.txt";
+
+ stress_log($session_debug_file,
+ "Something wrong happened during execution of this command line:");
+ stress_log($session_debug_file, "MYSQLTEST CMD - $cmd");
+ stress_log($session_debug_file, "STDERR:".join("",@stderr));
+
+ stress_log($session_debug_file, "EXIT STATUS:\n1. EXIT: $exit_value \n".
+ "2. SIGNAL: $signal_num\n".
+ "3. CORE: $dumped_core\n");
+ }
+ }
+
+ #If something wrong trying to analyse stderr
+ if ($exit_value || $signal_num)
+ {
+ if (@stderr)
+ {
+ foreach my $line (@stderr)
+ {
+ #FIXME: we should handle case when for one sub-string/code
+ # we have several different error messages
+ # Now for both codes/substrings we assume that
+ # first found message will represent error
+
+ #Check line for error codes
+ if (($err_msg, $err_code)= $line=~/failed: ((\d+):.+?$)/)
+ {
+ if (!exists($error_codes{$err_code}))
+ {
+ $severity="S3";
+ $err_code=0;
+ }
+ else
+ {
+ $severity=$error_codes{$err_code};
+ }
+
+ if (!exists($env->{errors}->{$severity}->{$err_code}))
+ {
+ $env->{errors}->{$severity}->{$err_code}=[0, $err_msg];
+ }
+ $env->{errors}->{$severity}->{$err_code}->[0]++;
+ $env->{errors}->{$severity}->{total}++;
+ }
+
+ #Check line for error patterns
+ foreach $err_string (keys %error_strings)
+ {
+ $pattern= quotemeta $err_string;
+ if ($line =~ /$pattern/i)
+ {
+ my $severity= $error_strings{$err_string};
+ if (!exists($env->{errors}->{$severity}->{$err_string}))
+ {
+ $env->{errors}->{$severity}->{$err_string}=[0, $line];
+ }
+ $env->{errors}->{$severity}->{$err_string}->[0]++;
+ $env->{errors}->{$severity}->{total}++;
+ }
+ }
+ }
+ }
+ else
+ {
+ $env->{errors}->{S3}->{'Unknown error'}=
+ [1,"Unknown error. Nothing was output to STDERR"];
+ $env->{errors}->{S3}->{total}=1;
+ }
+ }
+
+ #
+ #FIXME: Here we can perform further analysis of recognized
+ # error codes
+ #
+
+ foreach my $severity (sort {$a cmp $b} keys %{$env->{errors}})
+ {
+ my $total=$env->{errors}->{$severity}->{total};
+ if ($total)
+ {
+ push @{$env->{test_status}}, "Severity $severity: $total";
+ $env->{errors}->{total}=+$total;
+ }
+ }
+
+ #FIXME: Should we take into account $exit_value here?
+ # Now we assume that all stringified errors(i.e. errors without
+ # error codes) which are not exist in %error_string structure
+ # are OK
+ if (!$env->{errors}->{total})
+ {
+ push @{$env->{test_status}},"No Errors. Test Passed OK";
+ }
+
+ log_session_errors($env, $test_file);
+
+ if (!$exiting && ($signal_num == 2 || $signal_num == 15 ||
+ ($opt_abort_on_error && $env->{errors}->{S1} > 0)))
+ {
+ #mysqltest was interrupted with INT or TERM signals or test was
+ #ran with --abort-on-error option and we got errors with severity S1
+ #so we assume that we should cancel testing and exit
+ $exiting=1;
+ print STDERR<<EOF;
+WARNING:
+ mysqltest was interrupted with INT or TERM signals or test was
+ ran with --abort-on-error option and we got errors with severity S1
+ (test cann't connect to the server or server crashed) so we assume that
+ we should cancel testing and exit. Please check log file for this thread
+ in $stress_log_file or
+ inspect below output of the last test case executed with mysqltest to
+ find out cause of error.
+
+ Output of mysqltest:
+ @stderr
+
+EOF
+ }
+
+ if (-e $reject_filename)
+ {
+ move_to_logs($env->{reject_logs}, $reject_filename, $reject_file);
+ }
+
+ if (-e $output_filename)
+ {
+ move_to_logs($env->{screen_logs}, $output_filename, $output_file);
+ }
+
+}
+
+sub test_loop
+{
+ my %client_env=();
+ my $test_name="";
+
+ # KEY for session identification: IP-THREAD_ID
+ $client_env{ip} = shift;
+ $client_env{thread_id} = shift;
+
+ $client_env{mode} = shift;
+ $client_env{tests_file}=shift;
+
+ $client_env{test_seq_idx}=0;
+
+ #Initialize session variables
+ test_init(\%client_env);
+
+LOOP:
+
+ while(!$exiting)
+ {
+ if ($opt_check_tests_file)
+ {
+ #Check if tests_file was modified and reread it in this case
+ read_tests_names($client_env{tests_file}, 0);
+ }
+
+ {
+ lock($test_counters_lock);
+
+ if (($limits{loop_count} && $limits{loop_count} <= $test_counters{loop_count}*1) ||
+ ($limits{test_count} && $limits{test_count} <= $test_counters{test_count}*1) )
+ {
+ $exiting=1;
+ next LOOP;
+ }
+ }
+
+ #Get random file name
+ if (($test_name = get_test(\%client_env)) ne '')
+ {
+ {
+ lock($test_counters_lock);
+
+ #Save current counters values
+ $client_env{loop_count}=$test_counters{loop_count};
+ $client_env{test_count}=$test_counters{test_count};
+ }
+ #Run test and analyze results
+ test_execute(\%client_env, $test_name);
+
+ print "test_loop[".$limits{loop_count}.":".
+ $limits{test_count}." ".
+ $client_env{loop_count}.":".
+ $client_env{test_count}."]:".
+ " TID ".$client_env{thread_id}.
+ " test: '$test_name' ".
+ " Errors: ".join(" ",@{$client_env{test_status}}),"\n";
+ print "\n";
+ }
+
+ sleep($opt_sleep_time) if($opt_sleep_time);
+
+ }
+}
+
+sub move_to_logs ($$$)
+{
+ my $path_to_logs = shift;
+ my $src_file = shift;
+ my $random_filename = shift;
+
+ my $dst_file = File::Spec->catfile($path_to_logs, $random_filename);
+
+ move ($src_file, $dst_file) or warn<<EOF;
+ERROR: move_to_logs: File $src_file cannot be moved to $dst_file: $!
+EOF
+}
+
+sub copy_test_files ()
+{
+ if (/\.test$/)
+ {
+ $src_file = $File::Find::name;
+ #print "## $File::Find::topdir - $File::Find::dir - $src_file\n";
+
+ if ($File::Find::topdir eq $File::Find::dir && $src_file !~ /SCCS/)
+ {
+ $test_filename = basename($src_file);
+ $dst_file = File::Spec->catfile($test_t_path, $test_filename);
+
+ copy($src_file, $dst_file) or die "ERROR: copy_test_files: File cannot be copied. $!";
+ }
+ }
+}
+
+sub copy_result_files ()
+{
+ if (/\.result$/)
+ {
+ $src_file = $File::Find::name;
+
+ if ($File::Find::topdir eq $File::Find::dir && $src_file !~ /SCCS/)
+ {
+ $result_filename = basename($src_file) ;
+ $dst_file = File::Spec->catfile($r_folder, $result_filename);
+
+ copy($src_file, $dst_file) or die "ERROR: copy_result_files: File cannot be copied. $!";
+ }
+ }
+}
+
+sub get_timestamp
+{
+ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$ydat,$isdst) = localtime();
+
+ return sprintf("%04d%02d%02d%02d%02d%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec);
+}
+
+sub read_tests_names
+{
+ my $tests_file = shift;
+ my $force_load = shift;
+
+ if ($force_load || ( (stat($tests_file->{filename}))[9] != $tests_file->{mtime}) )
+ {
+ open (TEST, $tests_file->{filename}) || die ("Could not open file <".
+ $tests_file->{filename}."> $!");
+ @{$tests_file->{data}}= grep {!/^[#\r\n]|^$/} map { s/[\r\n]//g; $_ } <TEST>;
+
+ close (TEST);
+ $tests_file->{mtime}=(stat(_))[9];
+ }
+}
+
+sub get_random_test
+{
+ my $envt=shift;
+ my $tests= $envt->{tests_file}->{data};
+
+ my $random = int(rand(@{$tests}));
+ my $test = $tests->[$random];
+
+ return $test;
+}
+
+sub get_next_test
+{
+ my $envt=shift;
+ my $test;
+
+ if (@{$envt->{tests_file}->{data}})
+ {
+ $test=${$envt->{tests_file}->{data}}[$envt->{test_seq_idx}];
+ $envt->{test_seq_idx}++;
+ }
+
+ #If we reach bound of array, reset seq index and increment loop counter
+ if ($envt->{test_seq_idx} == scalar(@{$envt->{tests_file}->{data}}))
+ {
+ $envt->{test_seq_idx}=0;
+ {
+ lock($test_counters_lock);
+ $test_counters{loop_count}++;
+ }
+ }
+
+ return $test;
+}
+
+sub get_test
+{
+ my $envt=shift;
+
+ {
+ lock($test_counters_lock);
+ $test_counters{test_count}++;
+ }
+
+ if ($envt->{mode} eq 'seq')
+ {
+ return get_next_test($envt);
+ }
+ elsif ($envt->{mode} eq 'random')
+ {
+ return get_random_test($envt);
+ }
+}
+
+sub stress_log
+{
+ my ($log_file, $line)=@_;
+
+ {
+ open(SLOG,">>$log_file") or warn "Error during opening log file $log_file";
+ print SLOG $line,"\n";
+ close(SLOG);
+ }
+}
+
+sub log_session_errors
+{
+ my ($env, $test_name) = @_;
+ my $line='';
+
+ {
+ lock ($log_file_lock);
+
+ #header in the begining of log file
+ if (!-e $stress_log_file)
+ {
+ stress_log($stress_log_file,
+ "TestID TID Suite TestFileName Found Errors");
+ stress_log($stress_log_file,
+ "=======================================================");
+ }
+
+ $line=sprintf('%6d %3d %10s %20s %s', $env->{test_count}, threads->self->tid,
+ $opt_suite, $test_name,
+ join(",", @{$env->{test_status}}));
+
+ stress_log($stress_log_file, $line);
+ #stress_log_with_lock($stress_log_file, "\n");
+
+ if ($opt_log_error_details)
+ {
+ foreach $severity (sort {$a cmp $b} keys %{$env->{errors}})
+ {
+ stress_log($stress_log_file, "");
+ foreach $error (keys %{$env->{errors}->{$severity}})
+ {
+ if ($error ne 'total')
+ {
+ stress_log($stress_log_file, "$severity: Count:".
+ $env->{errors}->{$severity}->{$error}->[0].
+ " Error:". $env->{errors}->{$severity}->{$error}->[1]);
+ }
+ }
+ }
+ }
+ }
+}
+
+sub sig_INT_handler
+{
+ $SIG{INT}= \&sig_INT_handler;
+ $exiting=1;
+ print STDERR "$$: Got INT signal-------------------------------------------\n";
+
+}
+
+sub sig_TERM_handler
+{
+ $SIG{TERM}= \&sig_TERM_handler;
+ $exiting=1;
+ print STDERR "$$: Got TERM signal\n";
+}
+
+sub usage
+{
+ print <<EOF;
+
+The MySQL Stress suite Ver $stress_suite_version
+
+mysql-stress-test.pl --stress-basedir=<dir> --stress-suite-basedir=<dir> --server-logs-dir=<dir>
+
+--server-host
+--server-port
+--server-socket
+--server-user
+--server-password
+--server-logs-dir
+ Directory where all clients session logs will be stored. Usually
+ this is shared directory associated with server that used
+ in testing
+
+ Required option.
+
+--stress-suite-basedir=<dir>
+ Directory that has r/ t/ subfolders with test/result files
+ which will be used for testing. Also by default we are looking
+ in this directory for 'stress-tests.txt' file which contains
+ list of tests. It is possible to specify other location of this
+ file with --stress-tests-file option.
+
+ Required option.
+
+--stress-basedir=<dir>
+ Working directory for this test run. This directory will be used
+ as temporary location for results tracking during testing
+
+ Required option.
+
+--stress-datadir=<dir>
+ Location of data files used which will be used in testing.
+ By default we search for these files in <dir>/data where dir
+ is value of --stress-suite-basedir option.
+
+--stress-init-file[=/path/to/file with tests for initialization of stress db]
+ Using of this option allows to perform initialization of database
+ by execution of test files. List of tests will be taken either from
+ specified file or if it omited from default file 'stress-init.txt'
+ located in <--stress-suite-basedir/--suite> dir
+
+--stress-tests-file[=/path/to/file with tests]
+ Using of this option allows to run stress test itself. Tests for testing
+ will be taken either from specified file or if it omited from default
+ file 'stress-tests.txt' located in <--stress-suite-basedir/--suite> dir
+
+--stress-mode= [random|seq]
+ There are two possible modes which affect order of selecting tests
+ from the list:
+ - in random mode tests will be selected in random order
+ - in seq mode each thread will execute tests in the loop one by one as
+ they specified in the list file.
+
+--sleep-time=<time in seconds>
+ Delay between test execution. Could be usefull in continued testsing
+ when one of instance of stress script perform periodical cleanup or
+ recreating of some database objects
+
+--threads=#number of threads
+ Define number of threads
+
+--check-tests-file
+ Check file with list of tests. If file was modified it will force to
+ reread list of tests. Could be usefull in continued testing for
+ adding/removing tests without script interruption
+
+--mysqltest=/path/to/mysqltest binary
+
+--verbose
+
+--cleanup
+ Force to clean up working directory (specified with --stress-basedir)
+
+--log-error-details
+ Enable errors details in the global error log file. (Default: off)
+
+--test-count=<number of executed tests before we have to exit>
+--loop-count=<number of executed loops in sequential mode before we have to exit>
+--test-duration=<number of seconds that stress test should run>
+
+Example of tool usage:
+
+perl mysql-stress-test.pl \
+--stress-suite-basedir=/opt/qa/mysql-test-extra-5.0/mysql-test \
+--stress-basedir=/opt/qa/test \
+--server-logs-dir=/opt/qa/logs \
+--test-count=20 \
+--stress-tests-file=innodb-tests.txt \
+--stress-init-file=innodb-init.txt \
+--threads=5 \
+--suite=funcs_1 \
+--mysqltest=/opt/mysql/mysql-5.0/client/mysqltest \
+--server-user=root \
+--server-database=test \
+--cleanup \
+
+EOF
+exit(0);
+}
+
+
diff --git a/mysql-test/mysql-test-run-shell.sh b/mysql-test/mysql-test-run-shell.sh
index 544721cf40d..e0f151904f8 100644
--- a/mysql-test/mysql-test-run-shell.sh
+++ b/mysql-test/mysql-test-run-shell.sh
@@ -17,7 +17,18 @@ USE_MANAGER=0
MY_TZ=GMT-3
TZ=$MY_TZ; export TZ # for UNIX_TIMESTAMP tests to work
LOCAL_SOCKET=@MYSQL_UNIX_ADDR@
-MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
+
+if [ -z "$MYSQL_TCP_PORT" ]; then
+ MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
+ if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then
+ ESP=`getent services mysql/tcp`
+ if [ $? -eq 0 ]; then
+ MYSQL_TCP_PORT=`echo "$ESP"|sed -e's-^[a-z]*[ ]*\([0-9]*\)/[a-z]*$-\1-g'`
+ fi
+ fi
+fi
+
+umask 022
# For query_cache test
case `uname` in
@@ -110,6 +121,20 @@ wait_for_pid()
#$WAIT_PID pid $SLEEP_TIME_FOR_DELETE
}
+# Check that valgrind is installed
+find_valgrind()
+{
+ FIND_VALGRIND=`which valgrind` # this will print an error if not found
+ # Give good warning to the user and stop
+ if [ -z "$FIND_VALGRIND" ] ; then
+ $ECHO "You need to have the 'valgrind' program in your PATH to run mysql-test-run with option --valgrind. Valgrind's home page is http://valgrind.kde.org ."
+ exit 1
+ fi
+ # >=2.1.2 requires the --tool option, some versions write to stdout, some to stderr
+ valgrind --help 2>&1 | grep "\-\-tool" > /dev/null && FIND_VALGRIND="$FIND_VALGRIND --tool=memcheck"
+ FIND_VALGRIND="$FIND_VALGRIND --alignment=8 --leak-check=yes --num-callers=16 --suppressions=$MYSQL_TEST_DIR/valgrind.supp"
+}
+
# No paths below as we can't be sure where the program is!
SED=sed
@@ -166,19 +191,14 @@ if [ -d ./sql ] ; then
SOURCE_DIST=1
else
BINARY_DIST=1
-fi
-# ... one level for tar.gz, two levels for a RPM installation
-if [ -d ./bin ] ; then
- # this is not perfect: we have
- # /usr/share/mysql/ # mysql-test-run is here, so this is "$MYSQL_TEST_DIR"
- # /usr/bin/ # with MySQL client programs
- # so the existence of "/usr/share/bin/" would make this test fail.
- BASEDIR=`pwd`
-else
- cd ..
- BASEDIR=`pwd`
+ # ... one level for tar.gz, two levels for a RPM installation
+ if [ ! -f ./bin/mysql_upgrade ] ; then
+ # Has to be RPM installation
+ cd ..
+ fi
fi
+BASEDIR=`pwd`
cd $MYSQL_TEST_DIR
MYSQL_TEST_WINDIR=$MYSQL_TEST_DIR
@@ -194,14 +214,23 @@ TOT_SKIP=0
TOT_PASS=0
TOT_FAIL=0
TOT_TEST=0
+GOT_WARNINGS=0
USERT=0
SYST=0
REALT=0
FAST_START=""
MYSQL_TMP_DIR=$MYSQL_TEST_DIR/var/tmp
-SLAVE_LOAD_TMPDIR=../tmp #needs to be same length to test logging
+export MYSQL_TMP_DIR
+
+# Use a relative path for where the slave will find the dumps
+# generated by "LOAD DATA" on the master. The path is relative
+# since it must have fixed length to test logging
+# i.e otherwise the output from "SHOW MASTER STATUS" will vary
+# with the strlen() of MYSQL_TEST_DIR
+SLAVE_LOAD_TMPDIR=../tmp
+
RES_SPACE=" "
-MYSQLD_SRC_DIRS="strings mysys include extra regex isam merge myisam \
+MYSQLD_SRC_DIRS="strings mysys include extra regex myisam \
myisammrg heap sql"
MY_LOG_DIR="$MYSQL_TEST_DIR/var/log"
#
@@ -211,6 +240,13 @@ LD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/zlib/.libs:$LD_LI
DYLD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/zlib/.libs:$DYLD_LIBRARY_PATH"
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
+#
+# Allow anyone in the group to see the generated database files
+#
+UMASK=0660
+UMASK_DIR=0770
+export UMASK UMASK_DIR
+
MASTER_RUNNING=0
MASTER1_RUNNING=0
MASTER_MYPORT=9306
@@ -251,9 +287,11 @@ FAILED_CASES=
EXTRA_MASTER_OPT=""
EXTRA_MYSQL_TEST_OPT=""
+EXTRA_MYSQLCHECK_OPT=""
EXTRA_MYSQLDUMP_OPT=""
+EXTRA_MYSQLSHOW_OPT=""
EXTRA_MYSQLBINLOG_OPT=""
-USE_RUNNING_SERVER=""
+USE_RUNNING_SERVER=0
USE_NDBCLUSTER=@USE_NDBCLUSTER@
USE_NDBCLUSTER_ONLY=0
USE_RUNNING_NDBCLUSTER=""
@@ -283,6 +321,17 @@ NDB_MGM_EXTRA_OPTS=
NDB_MGMD_EXTRA_OPTS=
NDBD_EXTRA_OPTS=
+DO_STRESS=""
+STRESS_SUITE="main"
+STRESS_MODE="random"
+STRESS_THREADS=5
+STRESS_TEST_COUNT=""
+STRESS_LOOP_COUNT=""
+STRESS_TEST_DURATION=""
+STRESS_INIT_FILE=""
+STRESS_TEST_FILE=""
+STRESS_TEST=""
+
$ECHO "Logging: $0 $*" # To ensure we see all arguments in the output, for the test analysis tool
while test $# -gt 0; do
@@ -290,13 +339,13 @@ while test $# -gt 0; do
--embedded-server)
USE_EMBEDDED_SERVER=1
USE_MANAGER=0 NO_SLAVE=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
USE_NDBCLUSTER=""
TEST_MODE="$TEST_MODE embedded" ;;
--purify)
USE_PURIFY=1
USE_MANAGER=0
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
TEST_MODE="$TEST_MODE purify" ;;
--user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;;
--force) FORCE=1 ;;
@@ -307,8 +356,8 @@ while test $# -gt 0; do
MASTER_MYSQLD=`$ECHO "$1" | $SED -e "s;--master-binary=;;"` ;;
--slave-binary=*)
SLAVE_MYSQLD=`$ECHO "$1" | $SED -e "s;--slave-binary=;;"` ;;
- --local) USE_RUNNING_SERVER="" ;;
- --extern) USE_RUNNING_SERVER="1" ;;
+ --local) USE_RUNNING_SERVER=0 ;;
+ --extern) USE_RUNNING_SERVER=1 ;;
--with-ndbcluster)
USE_NDBCLUSTER="--ndbcluster" ;;
--with-ndbcluster-only)
@@ -336,20 +385,20 @@ while test $# -gt 0; do
--ndbcluster_port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster_port=;;"` ;;
--with-openssl)
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT \
- --ssl-ca=$BASEDIR/SSL/cacert.pem \
- --ssl-cert=$BASEDIR/SSL/server-cert.pem \
- --ssl-key=$BASEDIR/SSL/server-key.pem"
+ --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
+ --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert.pem \
+ --ssl-key=$MYSQL_TEST_DIR/std_data/server-key.pem"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT \
- --ssl-ca=$BASEDIR/SSL/cacert.pem \
- --ssl-cert=$BASEDIR/SSL/server-cert.pem \
- --ssl-key=$BASEDIR/SSL/server-key.pem"
- MYSQL_TEST_SSL_OPTS="--ssl-ca=$BASEDIR/SSL/cacert.pem \
- --ssl-cert=$BASEDIR/SSL/client-cert.pem \
- --ssl-key=$BASEDIR/SSL/client-key.pem" ;;
+ --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
+ --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert.pem \
+ --ssl-key=$MYSQL_TEST_DIR/std_data/server-key.pem"
+ MYSQL_TEST_SSL_OPTS="--ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
+ --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem \
+ --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem" ;;
--no-manager | --skip-manager) USE_MANAGER=0 ;;
--manager)
USE_MANAGER=1
- USE_RUNNING_SERVER=
+ USE_RUNNING_SERVER=0
;;
--start-and-exit)
START_AND_EXIT=1
@@ -378,6 +427,35 @@ while test $# -gt 0; do
DO_BENCH=1
NO_SLAVE=1
;;
+ --stress)
+ DO_STRESS=1
+ NO_SLAVE=1
+ SKIP_SLAVE=1
+ ;;
+ --stress-suite=*)
+ STRESS_SUITE=`$ECHO "$1" | $SED -e "s;--stress-suite=;;"`
+ ;;
+ --stress-threads=*)
+ STRESS_THREADS=`$ECHO "$1" | $SED -e "s;--stress-threads=;;"`
+ ;;
+ --stress-test-file=*)
+ STRESS_TEST_FILE=`$ECHO "$1" | $SED -e "s;--stress-test-file=;;"`
+ ;;
+ --stress-init-file=*)
+ STRESS_INIT_FILE=`$ECHO "$1" | $SED -e "s;--stress-init-file=;;"`
+ ;;
+ --stress-mode=*)
+ STRESS_MODE=`$ECHO "$1" | $SED -e "s;--stress-mode=;;"`
+ ;;
+ --stress-loop-count=*)
+ STRESS_LOOP_COUNT=`$ECHO "$1" | $SED -e "s;--stress-loop-count=;;"`
+ ;;
+ --stress-test-count=*)
+ STRESS_TEST_COUNT=`$ECHO "$1" | $SED -e "s;--stress-test-count=;;"`
+ ;;
+ --stress-test-duration=*)
+ STRESS_TEST_DURATION=`$ECHO "$1" | $SED -e "s;--stress-test-duration=;;"`
+ ;;
--big*) # Actually --big-test
EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;;
--compress)
@@ -418,7 +496,7 @@ while test $# -gt 0; do
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
# This needs to be checked properly
# USE_MANAGER=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
;;
--client-gdb )
if [ x$BINARY_DIST = x1 ] ; then
@@ -431,7 +509,7 @@ while test $# -gt 0; do
--manual-gdb )
DO_GDB=1
MANUAL_GDB=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
;;
@@ -440,25 +518,18 @@ while test $# -gt 0; do
$ECHO "Note: you will get more meaningful output on a source distribution compiled with debugging option when running tests with --ddd option"
fi
DO_DDD=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
;;
--valgrind | --valgrind-all)
- VALGRIND=`which valgrind` # this will print an error if not found
- # Give good warning to the user and stop
- if [ -z "$VALGRIND" ] ; then
- $ECHO "You need to have the 'valgrind' program in your PATH to run mysql-test-run with option --valgrind. Valgrind's home page is http://valgrind.kde.org ."
- exit 1
- fi
- # >=2.1.2 requires the --tool option, some versions write to stdout, some to stderr
- valgrind --help 2>&1 | grep "\-\-tool" > /dev/null && VALGRIND="$VALGRIND --tool=memcheck"
- VALGRIND="$VALGRIND --alignment=8 --leak-check=yes --num-callers=16"
+ find_valgrind;
+ VALGRIND=$FIND_VALGRIND
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-safemalloc --skip-bdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc --skip-bdb"
SLEEP_TIME_AFTER_RESTART=10
SLEEP_TIME_FOR_DELETE=60
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
if test "$1" = "--valgrind-all"
then
VALGRIND="$VALGRIND -v --show-reachable=yes"
@@ -468,6 +539,14 @@ while test $# -gt 0; do
TMP=`$ECHO "$1" | $SED -e "s;--valgrind-options=;;"`
VALGRIND="$VALGRIND $TMP"
;;
+ --valgrind-mysqltest | --valgrind-mysqltest-all)
+ find_valgrind;
+ VALGRIND_MYSQLTEST=$FIND_VALGRIND
+ if test "$1" = "--valgrind-mysqltest-all"
+ then
+ VALGRIND_MYSQLTEST="$VALGRIND_MYSQLTEST -v --show-reachable=yes"
+ fi
+ ;;
--skip-ndbcluster | --skip-ndb)
USE_NDBCLUSTER=""
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-ndbcluster"
@@ -481,14 +560,18 @@ while test $# -gt 0; do
STRACE_CLIENT=1
;;
--debug)
- EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT \
+ EXTRA_MASTER_MYSQLD_TRACE=" \
--debug=d:t:i:A,$MYSQL_TEST_DIR/var/log/master.trace"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT \
--debug=d:t:i:A,$MYSQL_TEST_DIR/var/log/slave.trace"
EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT \
--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqltest.trace"
+ EXTRA_MYSQLCHECK_OPT="$EXTRA_MYSQLCHECK_OPT \
+ --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlcheck.trace"
EXTRA_MYSQLDUMP_OPT="$EXTRA_MYSQLDUMP_OPT \
--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqldump.trace"
+ EXTRA_MYSQLSHOW_OPT="$EXTRA_MYSQLSHOW_OPT \
+ --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlshow.trace"
EXTRA_MYSQLBINLOG_OPT="$EXTRA_MYSQLBINLOG_OPT \
--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlbinlog.trace"
EXTRA_MYSQL_CLIENT_TEST_OPT="--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysql_client_test.trace"
@@ -496,6 +579,9 @@ while test $# -gt 0; do
--fast)
FAST_START=1
;;
+ --use-old-data)
+ USE_OLD_DATA=1
+ ;;
--comment=*)
TMP=`$ECHO "$1" | $SED -e "s;--comment=;;"`
echo
@@ -540,10 +626,9 @@ SLAVE_MYERR="$MYSQL_TEST_DIR/var/log/slave.err"
CURRENT_TEST="$MYSQL_TEST_DIR/var/log/current_test"
SMALL_SERVER="--key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M"
-export MASTER_MYPORT MASTER_MYPORT1 SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1
+export MASTER_MYPORT SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1
-NDBCLUSTER_BASE_PORT=`expr $NDBCLUSTER_PORT + 2`
-NDBCLUSTER_OPTS="--port=$NDBCLUSTER_PORT --port-base=$NDBCLUSTER_BASE_PORT --data-dir=$MYSQL_TEST_DIR/var --ndb_mgm-extra-opts=$NDB_MGM_EXTRA_OPTS --ndb_mgmd-extra-opts=$NDB_MGMD_EXTRA_OPTS --ndbd-extra-opts=$NDBD_EXTRA_OPTS"
+NDBCLUSTER_OPTS="--port=$NDBCLUSTER_PORT --data-dir=$MYSQL_TEST_DIR/var --ndb_mgm-extra-opts=$NDB_MGM_EXTRA_OPTS --ndb_mgmd-extra-opts=$NDB_MGMD_EXTRA_OPTS --ndbd-extra-opts=$NDBD_EXTRA_OPTS"
NDB_BACKUP_DIR=$MYSQL_TEST_DIR/var/ndbcluster-$NDBCLUSTER_PORT
NDB_TOOLS_OUTPUT=$MYSQL_TEST_DIR/var/log/ndb_tools.log
@@ -563,6 +648,11 @@ fi
[ -d $MYSQL_TEST_DIR/var/run ] || mkdir $MYSQL_TEST_DIR/var/run
[ -d $MYSQL_TEST_DIR/var/log ] || mkdir $MYSQL_TEST_DIR/var/log
+# Use 'test', not '[' as the shell builtin might not have '-L
+if test ! -L "$MYSQL_TEST_DIR/var/std_data_ln" ; then
+ ln -s $MYSQL_TEST_DIR/std_data/ $MYSQL_TEST_DIR/var/std_data_ln
+fi
+
if test ${COLUMNS:-0} -lt 80 ; then COLUMNS=80 ; fi
E=`$EXPR $COLUMNS - 8`
DASH72=`$ECHO '-------------------------------------------------------'|$CUT -c 1-$E`
@@ -572,7 +662,7 @@ DASH72=`$ECHO '-------------------------------------------------------'|$CUT -c
if [ x$SOURCE_DIST = x1 ] ; then
if [ "x$USE_EMBEDDED_SERVER" = "x1" ] ; then
if [ -f "$BASEDIR/libmysqld/examples/mysqltest_embedded" ] ; then
- MYSQL_TEST="$VALGRIND $BASEDIR/libmysqld/examples/mysqltest_embedded"
+ MYSQL_TEST="$BASEDIR/libmysqld/examples/mysqltest_embedded"
else
echo "Fatal error: Cannot find embedded server 'mysqltest_embedded'" 1>&2
exit 1
@@ -592,6 +682,11 @@ if [ x$SOURCE_DIST = x1 ] ; then
fi
MYSQL_CLIENT_TEST="$BASEDIR/tests/mysql_client_test"
fi
+ if [ -f "$BASEDIR/client/.libs/mysqlcheck" ] ; then
+ MYSQL_CHECK="$BASEDIR/client/.libs/mysqlcheck"
+ else
+ MYSQL_CHECK="$BASEDIR/client/mysqlcheck"
+ fi
if [ -f "$BASEDIR/client/.libs/mysqldump" ] ; then
MYSQL_DUMP="$BASEDIR/client/.libs/mysqldump"
else
@@ -602,6 +697,11 @@ if [ x$SOURCE_DIST = x1 ] ; then
else
MYSQL_IMPORT="$BASEDIR/client/mysqlimport"
fi
+ if [ -f "$BASEDIR/client/.libs/mysqlshow" ] ; then
+ MYSQL_SHOW="$BASEDIR/client/.libs/mysqlshow"
+ else
+ MYSQL_SHOW="$BASEDIR/client/mysqlshow"
+ fi
if [ -f "$BASEDIR/client/.libs/mysqlbinlog" ] ; then
MYSQL_BINLOG="$BASEDIR/client/.libs/mysqlbinlog"
else
@@ -615,9 +715,9 @@ if [ x$SOURCE_DIST = x1 ] ; then
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$BASEDIR/extra/mysql_waitpid"
MYSQL_MY_PRINT_DEFAULTS="$BASEDIR/extra/my_print_defaults"
- MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqlmanagerc"
- MYSQL_MANAGER="$BASEDIR/tools/mysqlmanager"
- MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqlmanager-pwgen"
+ MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc"
+ MYSQL_MANAGER="$BASEDIR/tools/mysqltestmanager"
+ MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen"
MYSQL="$CLIENT_BINDIR/mysql"
LANGUAGE="$BASEDIR/sql/share/english/"
CHARSETSDIR="$BASEDIR/sql/share/charsets"
@@ -677,15 +777,17 @@ else
TESTS_BINDIR="$BASEDIR/bin"
fi
MYSQL_TEST="$CLIENT_BINDIR/mysqltest"
+ MYSQL_CHECK="$CLIENT_BINDIR/mysqlcheck"
MYSQL_DUMP="$CLIENT_BINDIR/mysqldump"
+ MYSQL_SHOW="$CLIENT_BINDIR/mysqlshow"
MYSQL_IMPORT="$CLIENT_BINDIR/mysqlimport"
MYSQL_BINLOG="$CLIENT_BINDIR/mysqlbinlog"
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$CLIENT_BINDIR/mysql_waitpid"
MYSQL_MY_PRINT_DEFAULTS="$CLIENT_BINDIR/my_print_defaults"
- MYSQL_MANAGER="$CLIENT_BINDIR/mysqlmanager"
- MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqlmanagerc"
- MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqlmanager-pwgen"
+ MYSQL_MANAGER="$CLIENT_BINDIR/mysqltestmanager"
+ MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc"
+ MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen"
MYSQL="$CLIENT_BINDIR/mysql"
INSTALL_DB="./install_test_db --bin"
MYSQL_FIX_SYSTEM_TABLES="$CLIENT_BINDIR/mysql_fix_privilege_tables"
@@ -701,7 +803,7 @@ else
fi
if [ "x$USE_EMBEDDED_SERVER" = "x1" ] ; then
if [ -f "$CLIENT_BINDIR/mysqltest_embedded" ] ; then
- MYSQL_TEST="$VALGRIND $CLIENT_BINDIR/mysqltest_embedded"
+ MYSQL_TEST="$CLIENT_BINDIR/mysqltest_embedded"
else
echo "Fatal error: Cannot find embedded server 'mysqltest_embedded'" 1>&2
exit 1
@@ -729,11 +831,11 @@ fi
# If we should run all tests cases, we will use a local server for that
-if [ -z "$1" ]
+if [ -z "$1" -a -z "$DO_STRESS" ]
then
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
fi
-if [ -n "$USE_RUNNING_SERVER" ]
+if [ $USE_RUNNING_SERVER -eq 1 ]
then
MASTER_MYSOCK=$LOCAL_SOCKET;
DBUSER=${DBUSER:-test}
@@ -758,12 +860,14 @@ fi
# Save path and name of mysqldump
MYSQL_DUMP_DIR="$MYSQL_DUMP"
export MYSQL_DUMP_DIR
+MYSQL_CHECK="$MYSQL_CHECK --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLCHECK_OPT"
MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
+MYSQL_SHOW="$MYSQL_SHOW -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT"
+MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT"
MYSQL_IMPORT="$MYSQL_IMPORT -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
-MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR $EXTRA_MYSQLBINLOG_OPT"
MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose"
MYSQL="$MYSQL --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD"
-export MYSQL MYSQL_DUMP MYSQL_IMPORT MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES
+export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORT
export CLIENT_BINDIR MYSQL_CLIENT_TEST CHARSETSDIR MYSQL_MY_PRINT_DEFAULTS
export NDB_TOOLS_DIR
export NDB_MGM
@@ -781,7 +885,10 @@ if [ x$USE_TIMER = x1 ] ; then
fi
MYSQL_TEST_BIN=$MYSQL_TEST
MYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS"
+
+# Export MYSQL_TEST variable for use from .test files
export MYSQL_TEST
+
GDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.client
GDB_MASTER_INIT=$MYSQL_TMP_DIR/gdbinit.master
GDB_SLAVE_INIT=$MYSQL_TMP_DIR/gdbinit.slave
@@ -791,10 +898,13 @@ GPROF_DIR=$MYSQL_TMP_DIR/gprof
GPROF_MASTER=$GPROF_DIR/master.gprof
GPROF_SLAVE=$GPROF_DIR/slave.gprof
TIMEFILE="$MYSQL_TEST_DIR/var/log/mysqltest-time"
+MYSQLTEST_LOG="$MYSQL_TEST_DIR/var/log/mysqltest.log"
if [ -n "$DO_CLIENT_GDB" -o -n "$DO_GDB" ] ; then
XTERM=`which xterm`
fi
+export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES CLIENT_BINDIR MASTER_MYSOCK
+
#++
# Function Definitions
#--
@@ -825,7 +935,7 @@ show_failed_diff ()
$DIFF -c $result_file $reject_file
echo "-------------------------------------------------------"
echo "Please follow the instructions outlined at"
- echo "http://dev.mysql.com/doc/mysql/en/reporting-mysqltest-bugs.html"
+ echo "http://forge.mysql.com/wiki/MySQL_Internals_Porting#Debugging_a_MySQL_Server"
echo "to find the reason to this problem and how to report this."
echo ""
fi
@@ -905,6 +1015,7 @@ report_current_test () {
fi
}
+
report_stats () {
if [ $TOT_FAIL = 0 ]; then
$ECHO "All $TOT_TEST tests were successful."
@@ -918,12 +1029,12 @@ report_stats () {
$ECHO "Failed ${TOT_FAIL}/${TOT_TEST} tests, ${whole}.${deci}% were successful."
$ECHO ""
$ECHO "The log files in $MY_LOG_DIR may give you some hint"
- $ECHO "of what when wrong."
+ $ECHO "of what went wrong."
$ECHO "If you want to report this error, please read first the documentation at"
$ECHO "http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html"
fi
- if test -z "$USE_RUNNING_SERVER"
+ if [ $USE_RUNNING_SERVER -eq 0 ]
then
# Report if there was any fatal warnings/errors in the log files
@@ -935,32 +1046,45 @@ report_stats () {
| $SED -e 's!Warning: Table:.* on rename!!g' \
> $MY_LOG_DIR/warnings.tmp
- found_error=0
# Find errors
- for i in "^Warning:" "^Error:" "^==.* at 0x"
+ for i in "^Warning:" "^Error:" "^==.* at 0x" "InnoDB: Warning"
do
if $GREP "$i" $MY_LOG_DIR/warnings.tmp >> $MY_LOG_DIR/warnings
then
- found_error=1
+ GOT_WARNINGS=1
fi
done
$RM -f $MY_LOG_DIR/warnings.tmp
- if [ $found_error = "1" ]
+ if [ $GOT_WARNINGS = "1" ]
then
echo "WARNING: Got errors/warnings while running tests. Please examine"
echo "$MY_LOG_DIR/warnings for details."
fi
+
+ fi # USE_RUNNING_SERVER
+
+ # Check valgrind errors from mysqltest
+ if [ ! -z "$VALGRIND_MYSQLTEST" ]
+ then
+ if $GREP "ERROR SUMMARY" $MYSQLTEST_LOG | $GREP -v "0 errors" > /dev/null
+ then
+ $ECHO "Valgrind detected errors!"
+ $GREP "ERROR SUMMARY" $MYSQLTEST_LOG | $GREP -v "0 errors"
+ $ECHO "See $MYSQLTEST_LOG"
+ fi
fi
}
mysql_install_db () {
$ECHO "Removing Stale Files"
- $RM -rf $MASTER_MYDDIR $MASTER_MYDDIR"1" $SLAVE_MYDDIR $MY_LOG_DIR/*
- $ECHO "Installing Master Databases"
- $INSTALL_DB
- if [ $? != 0 ]; then
+ if [ -z "$USE_OLD_DATA" ]; then
+ $RM -rf $MASTER_MYDDIR $MASTER_MYDDIR"1"
+ $ECHO "Installing Master Databases"
+ $INSTALL_DB
+ if [ $? != 0 ]; then
error "Could not install master test DBs"
- exit 1
+ exit 1
+ fi
fi
if [ ! -z "$USE_NDBCLUSTER" ]
then
@@ -972,6 +1096,7 @@ mysql_install_db () {
fi
fi
$ECHO "Installing Slave Databases"
+ $RM -rf $SLAVE_MYDDIR $MY_LOG_DIR/*
$INSTALL_DB -slave
if [ $? != 0 ]; then
error "Could not install slave test DBs"
@@ -1140,7 +1265,7 @@ start_ndbcluster()
else
NDBCLUSTER_EXTRA_OPTS="--small"
fi
- ./ndb/ndbcluster $NDBCLUSTER_OPTS $NDBCLUSTER_EXTRA_OPTS --initial || NDB_STATUS_OK=0
+ ./ndb/ndbcluster $NDBCLUSTER_OPTS --character-sets-dir=$CHARSETSDIR $NDBCLUSTER_EXTRA_OPTS --initial || NDB_STATUS_OK=0
if [ x$NDB_STATUS_OK != x1 ] ; then
if [ x$FORCE != x1 ] ; then
exit 1
@@ -1207,12 +1332,17 @@ start_master()
this_master_myport=$MASTER_MYPORT
NOT_FIRST_MASTER_EXTRA_OPTS=""
fi
- if [ -z "$DO_BENCH" ]
+ if [ -n "$EXTRA_MASTER_MYSQLD_TRACE" ]
+ then
+ CURR_MASTER_MYSQLD_TRACE="$EXTRA_MASTER_MYSQLD_TRACE$1"
+ fi
+ if [ -z "$DO_BENCH" -a -z "$DO_STRESS" ]
then
master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1 \
--server-id=$id \
--basedir=$MY_BASEDIR \
--port=$this_master_myport \
+ --port-open-timeout=380 \
--local-infile \
--exit-info=256 \
--core \
@@ -1225,17 +1355,19 @@ start_master()
--default-character-set=$CHARACTER_SET \
--tmpdir=$MYSQL_TMP_DIR \
--language=$LANGUAGE \
- --innodb_data_file_path=ibdata1:50M \
+ --innodb_data_file_path=ibdata1:128M:autoextend \
--open-files-limit=1024 \
+ --log-bin-trust-function-creators \
$MASTER_40_ARGS \
$SMALL_SERVER \
$EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \
- $NOT_FIRST_MASTER_EXTRA_OPTS"
+ $NOT_FIRST_MASTER_EXTRA_OPTS $CURR_MASTER_MYSQLD_TRACE"
else
master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1 \
--server-id=$id --rpl-recovery-rank=1 \
--basedir=$MY_BASEDIR --init-rpl-role=master \
--port=$this_master_myport \
+ --port-open-timeout=380 \
--local-infile \
--datadir=$MASTER_MYDDIR$1 \
--pid-file=$MASTER_MYPID$1 \
@@ -1246,7 +1378,8 @@ start_master()
$USE_NDBCLUSTER \
--tmpdir=$MYSQL_TMP_DIR \
--language=$LANGUAGE \
- --innodb_data_file_path=ibdata1:50M \
+ --innodb_data_file_path=ibdata1:128M:autoextend \
+ --log-bin-trust-function-creators \
$MASTER_40_ARGS \
$SMALL_SERVER \
$EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \
@@ -1367,6 +1500,7 @@ start_slave()
--datadir=$slave_datadir \
--pid-file=$slave_pid \
--port=$slave_port \
+ --port-open-timeout=380 \
--socket=$slave_sock \
--character-sets-dir=$CHARSETSDIR \
--default-character-set=$CHARACTER_SET \
@@ -1379,6 +1513,7 @@ start_slave()
--report-port=$slave_port \
--master-retry-count=10 \
-O slave_net_timeout=10 \
+ --log-bin-trust-function-creators \
$SMALL_SERVER \
$EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT"
CUR_MYERR=$slave_err
@@ -1507,18 +1642,21 @@ stop_master ()
mysql_stop ()
{
- $ECHO "Ending Tests"
- $ECHO "Shutting-down MySQL daemon"
- $ECHO ""
- stop_master
- stop_master 1
- $ECHO "Master shutdown finished"
- stop_slave
- stop_slave 1
- stop_slave 2
- $ECHO "Slave shutdown finished"
- stop_ndbcluster
- return 1
+ if [ "$MASTER_RUNNING" = 1 ]
+ then
+ $ECHO "Ending Tests"
+ $ECHO "Shutting-down MySQL daemon"
+ $ECHO ""
+ stop_master
+ stop_master 1
+ $ECHO "Master shutdown finished"
+ stop_slave
+ stop_slave 1
+ stop_slave 2
+ $ECHO "Slave shutdown finished"
+ stop_ndbcluster
+ fi
+ return 1
}
mysql_restart ()
@@ -1546,13 +1684,7 @@ run_testcase ()
tsrcdir=$TESTDIR/$tname-src
result_file="r/$tname.result"
echo $tname > $CURRENT_TEST
- SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0`
- if [ -f "$TESTDIR/$tname.disabled" ]
- then
- comment=`$CAT $TESTDIR/$tname.disabled`;
- disable_test $tname "$comment"
- return
- fi
+ SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0 \& \( $tname : federated \) = 0`
NDBCLUSTER_TEST=`$EXPR \( $tname : '.*ndb.*' \) != 0`
if [ "x$USE_NDBCLUSTER_ONLY" = "x1" -a "x$NDBCLUSTER_TEST" != "x1" ] ; then
skip_test $tname
@@ -1587,6 +1719,22 @@ run_testcase ()
return
fi
+# if [ -f "$TESTDIR/$tname.disabled" ]
+# then
+# comment=`$CAT $TESTDIR/$tname.disabled`;
+# disable_test $tname "$comment"
+# return
+# fi
+ if [ -f "$TESTDIR/disabled.def" ] ; then
+ comment=`$GREP "^$tname *: *" $TESTDIR/disabled.def`;
+ if [ -n "$comment" ]
+ then
+ comment=`echo $comment | sed 's/^[^:]*: *//'`
+ disable_test $tname "$comment"
+ return
+ fi
+ fi
+
if [ "x$USE_EMBEDDED_SERVER" != "x1" ] ; then
# Stop all slave threads, so that we don't have useless reconnection
# attempts and error messages in case the slave and master servers restart.
@@ -1609,7 +1757,7 @@ run_testcase ()
done
fi
- if [ -z "$USE_RUNNING_SERVER" ] ;
+ if [ $USE_RUNNING_SERVER -eq 0 ] ;
then
if [ -f $master_opt_file ] ;
then
@@ -1636,7 +1784,7 @@ run_testcase ()
stop_master 1
report_current_test $tname
start_master
- if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" ] ; then
+ if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then
start_master 1
fi
TZ=$MY_TZ; export TZ
@@ -1652,7 +1800,7 @@ run_testcase ()
stop_master 1
report_current_test $tname
start_master
- if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" ] ; then
+ if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then
start_master 1
fi
else
@@ -1711,13 +1859,17 @@ run_testcase ()
$RM -f r/$tname.*reject
mysql_test_args="-R $result_file $EXTRA_MYSQL_TEST_OPT"
if [ -z "$DO_CLIENT_GDB" ] ; then
- `$MYSQL_TEST $mysql_test_args < $tf 2> $TIMEFILE`;
+ `$VALGRIND_MYSQLTEST $MYSQL_TEST $mysql_test_args < $tf 2> $TIMEFILE`;
else
do_gdb_test "$mysql_test_args" "$tf"
fi
res=$?
+ # Save the testcase log to mysqltest log file
+ echo "CURRENT_TEST: $tname" >> $MYSQLTEST_LOG
+ cat $TIMEFILE >> $MYSQLTEST_LOG
+
pname=`$ECHO "$tname "|$CUT -c 1-24`
RES="$pname"
@@ -1754,7 +1906,7 @@ run_testcase ()
if [ x$FORCE != x1 ] ; then
$ECHO "Aborting: $tname failed in $TEST_MODE mode. To continue, re-run with '--force'."
$ECHO
- if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \
+ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then
mysql_stop
@@ -1763,18 +1915,143 @@ run_testcase ()
exit 1
fi
FAILED_CASES="$FAILED_CASES $tname"
- if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \
+ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then
mysql_restart
fi
- $ECHO "Resuming Tests"
- $ECHO ""
fi
fi
fi
}
+run_stress_test()
+{
+
+ STRESS_BASEDIR="$MYSQL_TEST_DIR/var/stress"
+
+ #Clean-up old stress test basedir
+ if [ -d $STRESS_BASEDIR ] ; then
+ $RM -rf $STRESS_BASEDIR
+ fi
+ #Create stress test basedir
+ mkdir $STRESS_BASEDIR
+
+ if [ "$STRESS_SUITE" != "main" -a "$STRESS_SUITE" != "default" ] ; then
+ STRESS_SUITE_DIR="$MYSQL_TEST_DIR/suite/$STRESS_SUITE"
+ else
+ STRESS_SUITE_DIR="$MYSQL_TEST_DIR"
+ fi
+
+ if [ -d "$STRESS_SUITE_DIR" ] ; then
+ STRESS_SUITE_T_DIR="$STRESS_SUITE_DIR/t"
+ STRESS_SUITE_R_DIR="$STRESS_SUITE_DIR/r"
+ #FIXME: check that dirs above are exist
+ else
+ echo "Directory $STRESS_SUITE_DIR with test suite doesn't exists. Abort stress testing"
+ exit 1
+ fi
+
+ if [ -n "$STRESS_TEST" ] ; then
+ STRESS_TEST_FILE="$STRESS_BASEDIR/stress_tests.txt"
+ echo $STRESS_TEST > $STRESS_TEST_FILE
+ elif [ -n "$STRESS_TEST_FILE" ] ; then
+ STRESS_TEST_FILE="$STRESS_SUITE_DIR/$STRESS_TEST_FILE"
+ if [ ! -f "$STRESS_TEST_FILE" ] ; then
+ echo "Specified file $STRESS_TEST_FILE with list of tests does not exist"
+ echo "Please ensure that file exists and has proper permissions"
+ exit 1
+ fi
+ else
+ STRESS_TEST_FILE="$STRESS_SUITE_DIR/stress_tests.txt"
+ if [ ! -f "$STRESS_TEST_FILE" ] ; then
+ echo "Default file $STRESS_TEST_FILE with list of tests does not exist."
+ echo "Please use --stress-test-file option to specify custom one or you can"
+ echo "just specify name of test for testing as last argument in command line"
+ exit 1
+ fi
+ fi
+
+ if [ -n "$STRESS_INIT_FILE" ] ; then
+ STRESS_INIT_FILE="$STRESS_SUITE_DIR/$STRESS_INIT_FILE"
+ if [ ! -f "$STRESS_INIT_FILE" ] ; then
+ echo "Specified file $STRESS_INIT_FILE with list of tests doesn't exist."
+ echo "Please ensure that file exists and has proper permissions"
+ exit 1
+ fi
+ else
+ STRESS_INIT_FILE="$STRESS_SUITE_DIR/stress_init.txt"
+ #Check for default init file
+ if [ ! -f "$STRESS_INIT_FILE" ] ; then
+ STRESS_INIT_FILE=""
+ fi
+ fi
+
+ if [ "$STRESS_MODE" != "random" -a "$STRESS_MODE" != "seq" ] ; then
+ echo "You specified wrong mode '$STRESS_MODE' for stress test."
+ echo "Correct values are 'random' or 'seq'"
+ exit 1
+ fi
+
+ STRESS_TEST_ARGS="--server-socket=$MASTER_MYSOCK \
+ --server-user=$DBUSER \
+ --server-database=$DB \
+ --stress-suite-basedir=$MYSQL_TEST_DIR \
+ --suite=$STRESS_SUITE \
+ --stress-tests-file=$STRESS_TEST_FILE \
+ --stress-basedir=$STRESS_BASEDIR \
+ --server-logs-dir=$STRESS_BASEDIR \
+ --stress-mode=$STRESS_MODE \
+ --mysqltest=$CLIENT_BINDIR/mysqltest \
+ --threads=$STRESS_THREADS \
+ --verbose \
+ --cleanup \
+ --log-error-details \
+ --abort-on-error"
+
+ if [ -n "$STRESS_INIT_FILE" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --stress-init-file=$STRESS_INIT_FILE"
+ fi
+
+ if [ -z "$STRESS_LOOP_COUNT" -a -z "$STRESS_TEST_COUNT" -a
+ -z "$STRESS_TEST_DURATION" ] ; then
+
+ #Limit stress testing with 20 loops in case when any limit parameter
+ #was specified
+ STRESS_TEST_COUNT=20
+ fi
+
+ if [ -n "$STRESS_LOOP_COUNT" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --loop-count=$STRESS_LOOP_COUNT"
+ fi
+
+ if [ -n "$STRESS_TEST_COUNT" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --test-count=$STRESS_TEST_COUNT"
+ fi
+
+ if [ -n "$STRESS_TEST_DURATION" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --test-duration=$STRESS_TEST_DURATION"
+ fi
+
+ echo "Stress test related variables:"
+ echo "TESTS - $1"
+ echo "STRESS - $DO_STRESS"
+ echo "STRESS_SUITE - $STRESS_SUITE"
+ echo "STRESS_TEST_FILE - $STRESS_TEST_FILE"
+ echo "STRESS_INIT_FILE - $STRESS_INIT_FILE"
+ echo "STRESS_THREADS - $STRESS_THREADS"
+ echo "STRESS_MODE - $STRESS_MODE"
+ echo "STRESS_TEST_COUNT - $STRESS_TEST_COUNT"
+ echo "STRESS_LOOP_COUNT - $STRESS_LOOP_COUNT"
+ echo "STRESS_TEST_DURATION - $STRESS_TEST_DURATION"
+
+ #echo "$STRESS_TEST_ARGS";
+ #Run stress test
+ $MYSQL_TEST_DIR/mysql-stress-test.pl $STRESS_TEST_ARGS
+
+
+}
+
######################################################################
# Main script starts here
######################################################################
@@ -1784,7 +2061,7 @@ run_testcase ()
[ "$DO_GCOV" ] && gcov_prepare
[ "$DO_GPROF" ] && gprof_prepare
-if [ -z "$USE_RUNNING_SERVER" ]
+if [ $USE_RUNNING_SERVER -eq 0 ]
then
if [ -z "$FAST_START" ]
then
@@ -1793,7 +2070,7 @@ then
$MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK1 -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
$MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
$MYSQLADMIN --no-defaults --host=$hostname --port=$MASTER_MYPORT -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
- $MYSQLADMIN --no-defaults --host=$hostname --port=$MASTER_MYPORT+1 -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
+ $MYSQLADMIN --no-defaults --host=$hostname --port=`expr $MASTER_MYPORT+1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
$MYSQLADMIN --no-defaults --host=$hostname --port=$SLAVE_MYPORT -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
$MYSQLADMIN --no-defaults --host=$hostname --port=`expr $SLAVE_MYPORT + 1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
sleep_until_file_deleted 0 $MASTER_MYPID
@@ -1819,17 +2096,25 @@ then
# Remove files that can cause problems
$RM -rf $MYSQL_TEST_DIR/var/ndbcluster
- $RM -f $MYSQL_TEST_DIR/var/run/* $MYSQL_TEST_DIR/var/tmp/*
+ $RM -rf $MYSQL_TEST_DIR/var/run/* $MYSQL_TEST_DIR/var/tmp/*
# Remove old berkeley db log files that can confuse the server
$RM -f $MASTER_MYDDIR/log.*
$RM -f $MASTER_MYDDIR"1"/log.*
+ # Remove old log and reject files
+ $RM -f r/*.reject r/*.progress r/*.log r/*.warnings
+
wait_for_master=$SLEEP_TIME_FOR_FIRST_MASTER
wait_for_slave=$SLEEP_TIME_FOR_FIRST_SLAVE
$ECHO "Installing Test Databases"
mysql_install_db
+ if [ -n "$1" -a `expr "X$*" : '.*ndb'` -eq 0 ]
+ then
+ USE_NDBCLUSTER=""
+ fi
+
start_manager
mysql_start
$ECHO "Loading Standard Test Databases"
@@ -1838,6 +2123,9 @@ fi
$ECHO "Starting Tests"
+# Some test cases need USE_RUNNING_SERVER
+export USE_RUNNING_SERVER
+
#
# This can probably be deleted
#
@@ -1875,6 +2163,32 @@ then
exit
fi
+#
+# Stress testing
+#
+if [ "$DO_STRESS" = 1 ]
+then
+
+ if [ -n "$1" ] ; then
+ STRESS_TEST="$1";
+ fi
+
+ if [ $USE_RUNNING_SERVER -eq 0 ] ; then
+ start_master
+ fi
+
+ run_stress_test
+
+ if [ $USE_RUNNING_SERVER -eq 0 ] ; then
+ mysql_stop
+ stop_manager
+ fi
+
+ exit
+
+fi
+
+
$ECHO
if [ x$USE_TIMER = x1 ] ; then
$ECHO "TEST RESULT TIME (ms)"
@@ -1910,7 +2224,7 @@ fi
$ECHO $DASH72
$ECHO
-if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && [ -z "$DO_DDD" ]
+if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && [ -z "$DO_DDD" ]
then
mysql_stop
fi
@@ -1925,6 +2239,8 @@ if [ $TOT_FAIL -ne 0 ]; then
$ECHO "mysql-test-run in $TEST_MODE mode: *** Failing the test(s):$FAILED_CASES"
$ECHO
exit 1
-else
- exit 0
fi
+if [ $GOT_WARNINGS -ne 0 ]; then
+ exit 1
+fi
+exit 0
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 6df64ced2f9..799a37220cc 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_running_ndbcluster= 0;
@@ -141,8 +138,10 @@ our $opt_verbose= 0; # Verbose output, enable with --verbose
our $exe_master_mysqld;
our $exe_mysql;
our $exe_mysqladmin;
+our $exe_mysql_upgrade;
our $exe_mysqlbinlog;
our $exe_mysql_client_test;
+our $exe_bug25714;
our $exe_mysqld;
our $exe_mysqlcheck;
our $exe_mysqldump;
@@ -150,6 +149,7 @@ our $exe_mysqlslap;
our $exe_mysqlimport;
our $exe_mysqlshow;
our $exe_mysql_fix_system_tables;
+our $file_mysql_fix_privilege_tables;
our $exe_mysqltest;
our $exe_ndbd;
our $exe_ndb_mgmd;
@@ -201,6 +201,7 @@ our $opt_client_ddd;
our $opt_manual_gdb;
our $opt_manual_ddd;
our $opt_manual_debug;
+our $opt_mtr_build_thread=0;
our $opt_debugger;
our $opt_client_debugger;
@@ -215,20 +216,24 @@ our $clusters;
our $instance_manager;
+our $opt_master_myport;
+our $opt_slave_myport;
+our $im_port;
+our $im_mysqld1_port;
+our $im_mysqld2_port;
our $opt_ndbcluster_port;
our $opt_ndbconnectstring;
our $opt_ndbcluster_port_slave;
our $opt_ndbconnectstring_slave;
our $opt_record;
-our $opt_report_features;
+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= 0;
+our $max_master_num= 1;
our $use_innodb;
our $opt_skip_test;
our $opt_skip_im;
@@ -268,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;
@@ -291,11 +291,13 @@ our $path_ndb_examples_dir;
our $exe_ndb_example;
our $path_ndb_testrun_log;
+our $path_sql_dir;
+
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;
@@ -313,6 +315,7 @@ my $num_saved_cores= 0; # Number of core files saved in vardir/log/ so far.
sub main ();
sub initial_setup ();
sub command_line_setup ();
+sub set_mtr_build_thread_ports($);
sub datadir_list_setup ();
sub executable_setup ();
sub environment_setup ();
@@ -342,7 +345,7 @@ sub do_before_start_slave ($);
sub ndbd_start ($$$);
sub ndb_mgmd_start ($);
sub mysqld_start ($$$);
-sub mysqld_arguments ($$$$$);
+sub mysqld_arguments ($$$$);
sub stop_all_servers ();
sub run_mysqltest ($);
sub usage ($);
@@ -452,7 +455,6 @@ sub main () {
mtr_exit(0);
}
-
##############################################################################
#
# Default settings
@@ -466,28 +468,13 @@ sub command_line_setup () {
$opt_suite= "main"; # Special default suite
my $opt_comment;
- my $opt_master_myport= 9306;
- my $opt_slave_myport= 9308;
+ $opt_master_myport= 9306;
+ $opt_slave_myport= 9308;
$opt_ndbcluster_port= 9310;
$opt_ndbcluster_port_slave= 9311;
- my $im_port= 9312;
- my $im_mysqld1_port= 9313;
- my $im_mysqld2_port= 9314;
-
- #
- # To make it easier for different devs to work on the same host,
- # an environment variable can be used to control all ports. A small
- # number is to be used, 0 - 16 or similar.
- #
- # Note the MASTER_MYPORT has to be set the same in all 4.x and 5.x
- # versions of this script, else a 4.0 test run might conflict with a
- # 5.1 test run, even if different MTR_BUILD_THREAD is used. This means
- # all port numbers might not be used in this version of the script.
- #
- # Also note the limiteation of ports we are allowed to hand out. This
- # differs between operating systems and configuration, see
- # http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html
- # But a fairly safe range seems to be 5001 - 32767
+ $im_port= 9312;
+ $im_mysqld1_port= 9313;
+ $im_mysqld2_port= 9314;
# If so requested, we try to avail ourselves of a unique build thread number.
if ( $ENV{'MTR_BUILD_THREAD'} ) {
@@ -500,21 +487,7 @@ sub command_line_setup () {
if ( $ENV{'MTR_BUILD_THREAD'} )
{
- # Up to two masters, up to three slaves
- $opt_master_myport= $ENV{'MTR_BUILD_THREAD'} * 10 + 10000; # and 1
- $opt_slave_myport= $opt_master_myport + 2; # and 3 4
- $opt_ndbcluster_port= $opt_master_myport + 5;
- $opt_ndbcluster_port_slave= $opt_master_myport + 6;
- $im_port= $opt_master_myport + 7;
- $im_mysqld1_port= $opt_master_myport + 8;
- $im_mysqld2_port= $opt_master_myport + 9;
- }
-
- if ( $opt_master_myport < 5001 or $opt_master_myport + 10 >= 32767 )
- {
- mtr_error("MTR_BUILD_THREAD number results in a port",
- "outside 5001 - 32767",
- "($opt_master_myport - $opt_master_myport + 10)");
+ set_mtr_build_thread_ports($ENV{'MTR_BUILD_THREAD'});
}
# This is needed for test log evaluation in "gen-build-status-page"
@@ -538,7 +511,7 @@ sub command_line_setup () {
'compress' => \$opt_compress,
'bench' => \$opt_bench,
'small-bench' => \$opt_small_bench,
- 'with-ndbcluster' => \$opt_with_ndbcluster,
+ 'with-ndbcluster|ndb' => \$opt_with_ndbcluster,
'vs-config' => \$opt_vs_config,
# Control what test suites or cases to run
@@ -566,6 +539,7 @@ sub command_line_setup () {
'im-port=i' => \$im_port, # Instance Manager port.
'im-mysqld1-port=i' => \$im_mysqld1_port, # Port of mysqld, controlled by IM
'im-mysqld2-port=i' => \$im_mysqld2_port, # Port of mysqld, controlled by IM
+ 'mtr-build-thread=i' => \$opt_mtr_build_thread,
# Test case authoring
'record' => \$opt_record,
@@ -636,7 +610,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,
@@ -649,6 +622,15 @@ sub command_line_setup () {
$glob_scriptname= basename($0);
+ if ($opt_mtr_build_thread != 0)
+ {
+ set_mtr_build_thread_ports($opt_mtr_build_thread)
+ }
+ elsif ($ENV{'MTR_BUILD_THREAD'})
+ {
+ $opt_mtr_build_thread= $ENV{'MTR_BUILD_THREAD'};
+ }
+
# We require that we are in the "mysql-test" directory
# to run mysql-test-run
if (! -f $glob_scriptname)
@@ -663,9 +645,7 @@ sub command_line_setup () {
$source_dist= 1;
}
- $glob_hostname= mtr_short_hostname();
-
- # Find the absolute path to the test directory
+ # Find the absolute path to the test directory
$glob_mysql_test_dir= cwd();
if ( $glob_cygwin_perl )
{
@@ -710,9 +690,12 @@ sub command_line_setup () {
"$glob_basedir/client_debug",
vs_config_dirs('client', ''),
"$glob_basedir/client",
- "$glob_basedir/bin/");
+ "$glob_basedir/bin");
- $exe_mysqld= mtr_exe_exists (vs_config_dirs('sql', 'mysqld'),
+ if (!$opt_extern)
+ {
+ $exe_mysqld= mtr_exe_exists (vs_config_dirs('sql', 'mysqld'),
+ vs_config_dirs('sql', 'mysqld-debug'),
"$glob_basedir/sql/mysqld",
"$path_client_bindir/mysqld-max-nt",
"$path_client_bindir/mysqld-max",
@@ -721,10 +704,17 @@ sub command_line_setup () {
"$path_client_bindir/mysqld-debug",
"$path_client_bindir/mysqld-max",
"$glob_basedir/libexec/mysqld",
- "$glob_basedir/bin/mysqld");
+ "$glob_basedir/bin/mysqld",
+ "$glob_basedir/sbin/mysqld");
- # Use the mysqld found above to find out what features are available
- collect_mysqld_features();
+ # Use the mysqld found above to find out what features are available
+ collect_mysqld_features();
+ }
+ else
+ {
+ $mysqld_variables{'port'}= 3306;
+ $mysqld_variables{'master-port'}= 3306;
+ }
if ( $opt_comment )
{
@@ -761,7 +751,7 @@ sub command_line_setup () {
# --------------------------------------------------------------------------
# NOTE if the default binlog format is changed, this has to be changed
$used_binlog_format= "stmt";
- if ( $mysql_version_id >= 50100 )
+ if (!$opt_extern && $mysql_version_id >= 50100 )
{
$used_binlog_format= "mixed"; # Default value for binlog format
@@ -775,6 +765,26 @@ sub command_line_setup () {
mtr_report("Using binlog format '$used_binlog_format'");
}
+
+ # --------------------------------------------------------------------------
+ # Find out default storage engine being used(if any)
+ # --------------------------------------------------------------------------
+ if ( $opt_with_ndbcluster )
+ {
+ # --ndb or --with-ndbcluster turns on --default-storage-engine=ndbcluster
+ push(@opt_extra_mysqld_opt, "--default-storage-engine=ndbcluster");
+ }
+
+ foreach my $arg ( @opt_extra_mysqld_opt )
+ {
+ if ( $arg =~ /default-storage-engine=(\S+)/ )
+ {
+ $used_default_engine= $1;
+ }
+ }
+ mtr_report("Using default engine '$used_default_engine'")
+ if defined $used_default_engine;
+
# --------------------------------------------------------------------------
# Check if we should speed up tests by trying to run on tmpfs
# --------------------------------------------------------------------------
@@ -796,7 +806,7 @@ sub command_line_setup () {
{
mtr_report("Using tmpfs in $fs");
$opt_mem= "$fs/var";
- $opt_mem .= $ENV{'MTR_BUILD_THREAD'} if $ENV{'MTR_BUILD_THREAD'};
+ $opt_mem .= $opt_mtr_build_thread if $opt_mtr_build_thread;
last;
}
}
@@ -847,16 +857,19 @@ sub command_line_setup () {
# --------------------------------------------------------------------------
# Check im suport
# --------------------------------------------------------------------------
- if ( $mysql_version_id < 50000 )
+ if ($opt_extern)
+ {
+ mtr_report("Disable instance manager when running with extern mysqld");
+ $opt_skip_im= 1;
+ }
+ elsif ( $mysql_version_id < 50000 )
{
# Instance manager is not supported until 5.0
$opt_skip_im= 1;
-
}
-
- if ( $glob_win32 )
+ elsif ( $glob_win32 )
{
- mtr_report("Disable Instance manager - not supported on Windows");
+ mtr_report("Disable Instance manager - testing not supported on Windows");
$opt_skip_im= 1;
}
@@ -879,6 +892,9 @@ sub command_line_setup () {
$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");
@@ -897,10 +913,6 @@ sub command_line_setup () {
# --------------------------------------------------------------------------
# Ndb cluster flags
# --------------------------------------------------------------------------
- if ( $opt_with_ndbcluster and !$opt_bench)
- {
- mtr_error("Can only use --with-ndbcluster togheter with --bench");
- }
if ( $opt_ndbconnectstring )
{
@@ -1053,8 +1065,6 @@ sub command_line_setup () {
# socket path names.
$sockdir = tempdir(CLEANUP => 0) if ( length($sockdir) >= 70 );
- # Put this into a hash, will be a C struct
-
$master->[0]=
{
pid => 0,
@@ -1062,7 +1072,6 @@ sub command_line_setup () {
idx => 0,
path_myddir => "$opt_vardir/master-data",
path_myerr => "$opt_vardir/log/master.err",
- path_mylog => "$opt_vardir/log/master.log",
path_pid => "$opt_vardir/run/master.pid",
path_sock => "$sockdir/master.sock",
port => $opt_master_myport,
@@ -1078,7 +1087,6 @@ sub command_line_setup () {
idx => 1,
path_myddir => "$opt_vardir/master1-data",
path_myerr => "$opt_vardir/log/master1.err",
- path_mylog => "$opt_vardir/log/master1.log",
path_pid => "$opt_vardir/run/master1.pid",
path_sock => "$sockdir/master1.sock",
port => $opt_master_myport + 1,
@@ -1094,7 +1102,6 @@ sub command_line_setup () {
idx => 0,
path_myddir => "$opt_vardir/slave-data",
path_myerr => "$opt_vardir/log/slave.err",
- path_mylog => "$opt_vardir/log/slave.log",
path_pid => "$opt_vardir/run/slave.pid",
path_sock => "$sockdir/slave.sock",
port => $opt_slave_myport,
@@ -1111,7 +1118,6 @@ sub command_line_setup () {
idx => 1,
path_myddir => "$opt_vardir/slave1-data",
path_myerr => "$opt_vardir/log/slave1.err",
- path_mylog => "$opt_vardir/log/slave1.log",
path_pid => "$opt_vardir/run/slave1.pid",
path_sock => "$sockdir/slave1.sock",
port => $opt_slave_myport + 1,
@@ -1127,7 +1133,6 @@ sub command_line_setup () {
idx => 2,
path_myddir => "$opt_vardir/slave2-data",
path_myerr => "$opt_vardir/log/slave2.err",
- path_mylog => "$opt_vardir/log/slave2.log",
path_pid => "$opt_vardir/run/slave2.pid",
path_sock => "$sockdir/slave2.sock",
port => $opt_slave_myport + 2,
@@ -1221,9 +1226,10 @@ sub command_line_setup () {
{
# Turn off features not supported when running with extern server
$opt_skip_rpl= 1;
+ $opt_skip_ndbcluster= 1;
# Setup master->[0] with the settings for the extern server
- $master->[0]->{'path_sock'}= $opt_socket if $opt_socket;
+ $master->[0]->{'path_sock'}= $opt_socket ? $opt_socket : "/tmp/mysql.sock";
mtr_report("Using extern server at '$master->[0]->{path_sock}'");
}
else
@@ -1253,6 +1259,49 @@ sub command_line_setup () {
}
}
+#
+# To make it easier for different devs to work on the same host,
+# an environment variable can be used to control all ports. A small
+# number is to be used, 0 - 16 or similar.
+#
+# Note the MASTER_MYPORT has to be set the same in all 4.x and 5.x
+# versions of this script, else a 4.0 test run might conflict with a
+# 5.1 test run, even if different MTR_BUILD_THREAD is used. This means
+# all port numbers might not be used in this version of the script.
+#
+# Also note the limitation of ports we are allowed to hand out. This
+# differs between operating systems and configuration, see
+# http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html
+# But a fairly safe range seems to be 5001 - 32767
+#
+
+sub set_mtr_build_thread_ports($) {
+ my $mtr_build_thread= shift;
+
+ if ( lc($mtr_build_thread) eq 'auto' ) {
+ print "Requesting build thread... ";
+ $ENV{'MTR_BUILD_THREAD'} = $mtr_build_thread = mtr_require_unique_id_and_wait("/tmp/mysql-test-ports", 200, 299);
+ print "got ".$mtr_build_thread."\n";
+ }
+
+ # Up to two masters, up to three slaves
+ $opt_master_myport= $mtr_build_thread * 10 + 10000; # and 1
+ $opt_slave_myport= $opt_master_myport + 2; # and 3 4
+ $opt_ndbcluster_port= $opt_master_myport + 5;
+ $opt_ndbcluster_port_slave= $opt_master_myport + 6;
+ $im_port= $opt_master_myport + 7;
+ $im_mysqld1_port= $opt_master_myport + 8;
+ $im_mysqld2_port= $opt_master_myport + 9;
+
+ if ( $opt_master_myport < 5001 or $opt_master_myport + 10 >= 32767 )
+ {
+ mtr_error("MTR_BUILD_THREAD number results in a port",
+ "outside 5001 - 32767",
+ "($opt_master_myport - $opt_master_myport + 10)");
+ }
+}
+
+
sub datadir_list_setup () {
# Make a list of all data_dirs
@@ -1285,12 +1334,13 @@ sub datadir_list_setup () {
sub collect_mysqld_features () {
my $found_variable_list_start= 0;
+ my $tmpdir= tempdir(CLEANUP => 0); # Directory removed by this function
#
# Execute "mysqld --no-defaults --help --verbose" to get a
- # of all features and settings
+ # list of all features and settings
#
- my $list= `$exe_mysqld --no-defaults --verbose --help`;
+ my $list= `$exe_mysqld --no-defaults --datadir=$tmpdir --verbose --help`;
foreach my $line (split('\n', $list))
{
@@ -1345,13 +1395,47 @@ sub collect_mysqld_features () {
}
}
}
-
+ rmtree($tmpdir);
mtr_error("Could not find version of MySQL") unless $mysql_version_id;
mtr_error("Could not find variabes list") unless $found_variable_list_start;
}
+sub run_query($$) {
+ my ($mysqld, $query)= @_;
+
+ my $args;
+ mtr_init_args(\$args);
+
+ mtr_add_arg($args, "--no-defaults");
+ mtr_add_arg($args, "--user=%s", $opt_user);
+ mtr_add_arg($args, "--port=%d", $mysqld->{'port'});
+ mtr_add_arg($args, "--socket=%s", $mysqld->{'path_sock'});
+ mtr_add_arg($args, "--silent"); # Tab separated output
+ mtr_add_arg($args, "-e '%s'", $query);
+
+ my $cmd= "$exe_mysql " . join(' ', @$args);
+ mtr_verbose("cmd: $cmd");
+ return `$cmd`;
+}
+
+
+sub collect_mysqld_features_from_running_server ()
+{
+ my $list= run_query($master->[0], "use mysql; SHOW VARIABLES");
+
+ foreach my $line (split('\n', $list))
+ {
+ # Put variables into hash
+ if ( $line =~ /^([\S]+)[ \t]+(.*?)\r?$/ )
+ {
+ print "$1=\"$2\"\n";
+ $mysqld_variables{$1}= $2;
+ }
+ }
+}
+
sub executable_setup_im () {
# Look for instance manager binary - mysqlmanager
@@ -1446,56 +1530,78 @@ sub executable_setup () {
$exe_mysqlbinlog= mtr_exe_exists("$path_client_bindir/mysqlbinlog");
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
$exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
- if ( $mysql_version_id >= 50100 )
- {
- $exe_mysqlslap= mtr_exe_exists("$path_client_bindir/mysqlslap");
- }
- if ( ! $glob_win32 )
+ if (!$opt_extern)
{
- # Look for mysql_fix_system_table script
- $exe_mysql_fix_system_tables=
- mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables",
- "$path_client_bindir/mysql_fix_privilege_tables");
- }
+ # Look for SQL scripts directory
+ if ( mtr_file_exists("$path_share/mysql_system_tables.sql") ne "")
+ {
+ # The SQL scripts are in path_share
+ $path_sql_dir= $path_share;
+ }
+ else
+ {
+ $path_sql_dir= mtr_path_exists("$glob_basedir/share",
+ "$glob_basedir/scripts");
+ }
- if ( ! $opt_skip_ndbcluster and executable_setup_ndb())
- {
- mtr_warning("Could not find all required ndb binaries, " .
- "all ndb tests will fail, use --skip-ndbcluster to " .
- "skip testing it.");
+ if ( $mysql_version_id >= 50100 ) {
+ $exe_mysqlslap= mtr_exe_exists("$path_client_bindir/mysqlslap");
+ }
+ if ( $mysql_version_id >= 50000 and !$glob_use_embedded_server ) {
+ $exe_mysql_upgrade= mtr_exe_exists("$path_client_bindir/mysql_upgrade")
+ } else {
+ $exe_mysql_upgrade= "";
+ }
- foreach my $cluster (@{$clusters})
- {
- $cluster->{"executable_setup_failed"}= 1;
+ if ( ! $glob_win32 ) {
+ # Look for mysql_fix_system_table script
+ $exe_mysql_fix_system_tables=
+ mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables",
+ "$path_client_bindir/mysql_fix_privilege_tables");
}
- }
- if ( ! $opt_skip_im and executable_setup_im())
- {
- mtr_warning("Could not find all required instance manager binaries, " .
- "all im tests will fail, use --skip-im to " .
- "continue without instance manager");
- $instance_manager->{"executable_setup_failed"}= 1;
- }
+ # Look for mysql_fix_privilege_tables.sql script
+ $file_mysql_fix_privilege_tables=
+ mtr_file_exists("$glob_basedir/scripts/mysql_fix_privilege_tables.sql",
+ "$glob_basedir/share/mysql_fix_privilege_tables.sql");
+
+ if ( ! $opt_skip_ndbcluster and executable_setup_ndb()) {
+ mtr_warning("Could not find all required ndb binaries, " .
+ "all ndb tests will fail, use --skip-ndbcluster to " .
+ "skip testing it.");
+
+ foreach my $cluster (@{$clusters}) {
+ $cluster->{"executable_setup_failed"}= 1;
+ }
+ }
+
+ if ( ! $opt_skip_im and executable_setup_im()) {
+ mtr_warning("Could not find all required instance manager binaries, " .
+ "all im tests will fail, use --skip-im to " .
+ "continue without instance manager");
+ $instance_manager->{"executable_setup_failed"}= 1;
+ }
+
+ # Look for the udf_example library
+ $lib_udf_example=
+ mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
+ "$glob_basedir/sql/.libs/udf_example.so",);
- # Look for the udf_example library
- $lib_udf_example=
- mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
- "$glob_basedir/sql/.libs/udf_example.so",);
+ }
# Look for mysqltest executable
if ( $glob_use_embedded_server )
{
$exe_mysqltest=
- mtr_exe_exists(vs_config_dirs('libmysqld/examples', 'mysqltest_embedded'),
- "$glob_basedir/libmysqld/examples/mysqltest_embedded",
+ mtr_exe_exists(vs_config_dirs('libmysqld/examples','mysqltest_embedded'),
+ "$glob_basedir/libmysqld/examples/mysqltest_embedded",
"$path_client_bindir/mysqltest_embedded");
}
else
{
- $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
+ $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
}
# Look for mysql_client_test executable which may _not_ exist in
@@ -1514,6 +1620,12 @@ sub executable_setup () {
"$glob_basedir/tests/mysql_client_test",
"$glob_basedir/bin/mysql_client_test");
}
+
+ # Look for bug25714 executable which may _not_ exist in
+ # some versions, test using it should be skipped
+ $exe_bug25714=
+ mtr_exe_maybe_exists(vs_config_dirs('tests', 'bug25714'),
+ "$glob_basedir/tests/bug25714");
}
@@ -1551,7 +1663,7 @@ sub mysql_client_test_arguments()
mtr_add_arg($args, "--port=$master->[0]->{'port'}");
mtr_add_arg($args, "--socket=$master->[0]->{'path_sock'}");
- if ( $mysql_version_id >= 50000 )
+ if ( $opt_extern || $mysql_version_id >= 50000 )
{
mtr_add_arg($args, "--vardir=$opt_vardir")
}
@@ -1575,6 +1687,33 @@ sub mysql_client_test_arguments()
return join(" ", $exe, @$args);
}
+sub mysql_upgrade_arguments()
+{
+ my $exe= $exe_mysql_upgrade;
+
+ my $args;
+ mtr_init_args(\$args);
+# if ( $opt_valgrind_mysql_ugrade )
+# {
+# valgrind_arguments($args, \$exe);
+# }
+
+ mtr_add_arg($args, "--no-defaults");
+ mtr_add_arg($args, "--user=root");
+ mtr_add_arg($args, "--port=$master->[0]->{'port'}");
+ mtr_add_arg($args, "--socket=$master->[0]->{'path_sock'}");
+ mtr_add_arg($args, "--datadir=$master->[0]->{'path_myddir'}");
+ mtr_add_arg($args, "--basedir=$glob_basedir");
+
+ if ( $opt_debug )
+ {
+ mtr_add_arg($args,
+ "--debug=d:t:A,$path_vardir_trace/log/mysql_upgrade.trace");
+ }
+
+ return join(" ", $exe, @$args);
+}
+
# Note that some env is setup in spawn/run, in "mtr_process.pl"
sub environment_setup () {
@@ -1590,7 +1729,8 @@ sub environment_setup () {
if ( $source_dist )
{
push(@ld_library_paths, "$glob_basedir/libmysql/.libs/",
- "$glob_basedir/libmysql_r/.libs/");
+ "$glob_basedir/libmysql_r/.libs/",
+ "$glob_basedir/zlib.libs/");
}
else
{
@@ -1643,6 +1783,17 @@ sub environment_setup () {
split(':', $ENV{'DYLD_LIBRARY_PATH'}) : ());
mtr_debug("DYLD_LIBRARY_PATH: $ENV{'DYLD_LIBRARY_PATH'}");
+ # The environment variable used for shared libs on AIX
+ $ENV{'SHLIB_PATH'}= join(":", @ld_library_paths,
+ $ENV{'SHLIB_PATH'} ?
+ split(':', $ENV{'SHLIB_PATH'}) : ());
+ mtr_debug("SHLIB_PATH: $ENV{'SHLIB_PATH'}");
+
+ # The environment variable used for shared libs on hp-ux
+ $ENV{'LIBPATH'}= join(":", @ld_library_paths,
+ $ENV{'LIBPATH'} ?
+ split(':', $ENV{'LIBPATH'}) : ());
+ mtr_debug("LIBPATH: $ENV{'LIBPATH'}");
# --------------------------------------------------------------------------
# Also command lines in .opt files may contain env vars
@@ -1651,6 +1802,18 @@ sub environment_setup () {
$ENV{'CHARSETSDIR'}= $path_charsetsdir;
$ENV{'UMASK'}= "0660"; # The octal *string*
$ENV{'UMASK_DIR'}= "0770"; # The octal *string*
+
+ #
+ # MySQL tests can produce output in various character sets
+ # (especially, ctype_xxx.test). To avoid confusing Perl
+ # with output which is incompatible with the current locale
+ # settings, we reset the current values of LC_ALL and LC_CTYPE to "C".
+ # For details, please see
+ # Bug#27636 tests fails if LC_* variables set to *_*.UTF-8
+ #
+ $ENV{'LC_ALL'}= "C";
+ $ENV{'LC_CTYPE'}= "C";
+
$ENV{'LC_COLLATE'}= "C";
$ENV{'USE_RUNNING_SERVER'}= $opt_extern;
$ENV{'MYSQL_TEST_DIR'}= $glob_mysql_test_dir;
@@ -1665,8 +1828,15 @@ sub environment_setup () {
$ENV{'SLAVE_MYPORT1'}= $slave->[1]->{'port'};
$ENV{'SLAVE_MYPORT2'}= $slave->[2]->{'port'};
$ENV{'MYSQL_TCP_PORT'}= $mysqld_variables{'port'};
+ $ENV{'DEFAULT_MASTER_PORT'}= $mysqld_variables{'master-port'};
+
+ $ENV{'IM_PATH_SOCK'}= $instance_manager->{path_sock};
+ $ENV{'IM_USERNAME'}= $instance_manager->{admin_login};
+ $ENV{'IM_PASSWORD'}= $instance_manager->{admin_password};
+ $ENV{MTR_BUILD_THREAD}= $opt_mtr_build_thread;
+
+ $ENV{'EXE_MYSQL'}= $exe_mysql;
- $ENV{MTR_BUILD_THREAD}= 0 unless $ENV{MTR_BUILD_THREAD}; # Set if not set
# ----------------------------------------------------
# Setup env for NDB
@@ -1811,8 +1981,8 @@ sub environment_setup () {
# ----------------------------------------------------
my $cmdline_mysqlbinlog=
mtr_native_path($exe_mysqlbinlog) .
- " --no-defaults --local-load=$opt_tmpdir";
- if ( $mysql_version_id >= 50000 )
+ " --no-defaults";
+ if (!$opt_extern && $mysql_version_id >= 50000 )
{
$cmdline_mysqlbinlog .=" --character-sets-dir=$path_charsetsdir";
}
@@ -1837,14 +2007,27 @@ sub environment_setup () {
$ENV{'MYSQL'}= $cmdline_mysql;
# ----------------------------------------------------
+ # Setup env so childs can execute bug25714
+ # ----------------------------------------------------
+ $ENV{'MYSQL_BUG25714'}= $exe_bug25714;
+
+ # ----------------------------------------------------
# Setup env so childs can execute mysql_client_test
# ----------------------------------------------------
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
# ----------------------------------------------------
+ # Setup env so childs can execute mysql_upgrade
+ # ----------------------------------------------------
+ if ( !$opt_extern && $mysql_version_id >= 50000 )
+ {
+ $ENV{'MYSQL_UPGRADE'}= mysql_upgrade_arguments();
+ }
+
+ # ----------------------------------------------------
# Setup env so childs can execute mysql_fix_system_tables
# ----------------------------------------------------
- if ( ! $glob_win32 )
+ if ( !$opt_extern && ! $glob_win32 )
{
my $cmdline_mysql_fix_system_tables=
"$exe_mysql_fix_system_tables --no-defaults --host=localhost " .
@@ -1853,7 +2036,9 @@ sub environment_setup () {
"--port=$master->[0]->{'port'} " .
"--socket=$master->[0]->{'path_sock'}";
$ENV{'MYSQL_FIX_SYSTEM_TABLES'}= $cmdline_mysql_fix_system_tables;
+
}
+ $ENV{'MYSQL_FIX_PRIVILEGE_TABLES'}= $file_mysql_fix_privilege_tables;
# ----------------------------------------------------
# Setup env so childs can execute my_print_defaults
@@ -2126,6 +2311,12 @@ sub setup_vardir() {
}
closedir(DIR);
}
+
+ # Remove old log files
+ foreach my $name (glob("r/*.progress r/*.log r/*.warnings"))
+ {
+ unlink($name);
+ }
}
@@ -2168,7 +2359,10 @@ sub check_ssl_support ($) {
if ($opt_skip_ssl || $opt_extern)
{
- mtr_report("Skipping SSL");
+ if (!$opt_extern)
+ {
+ mtr_report("Skipping SSL");
+ }
$opt_ssl_supported= 0;
$opt_ssl= 0;
return;
@@ -2231,6 +2425,7 @@ sub vs_config_dirs ($$) {
}
return ("$glob_basedir/$path_part/release/$exe",
+ "$glob_basedir/$path_part/relwithdebinfo/$exe",
"$glob_basedir/$path_part/debug/$exe");
}
@@ -2243,9 +2438,12 @@ sub vs_config_dirs ($$) {
sub check_ndbcluster_support ($) {
my $mysqld_variables= shift;
- if ($opt_skip_ndbcluster)
+ if ($opt_skip_ndbcluster || $opt_extern)
{
- mtr_report("Skipping ndbcluster");
+ if (!$opt_extern)
+ {
+ mtr_report("Skipping ndbcluster");
+ }
$opt_skip_ndbcluster_slave= 1;
return;
}
@@ -2383,10 +2581,19 @@ sub ndbcluster_wait_started($$){
sub mysqld_wait_started($){
my $mysqld= shift;
- my $res= sleep_until_file_created($mysqld->{'path_pid'},
- $mysqld->{'start_timeout'},
- $mysqld->{'pid'});
- return $res == 0;
+ if (sleep_until_file_created($mysqld->{'path_pid'},
+ $mysqld->{'start_timeout'},
+ $mysqld->{'pid'}) == 0)
+ {
+ # Failed to wait for pid file
+ return 1;
+ }
+
+ # Get the "real pid" of the process, it will be used for killing
+ # the process in ActiveState's perl on windows
+ $mysqld->{'real_pid'}= mtr_get_pid_from_file($mysqld->{'path_pid'});
+
+ return 0;
}
@@ -2513,8 +2720,8 @@ sub ndbcluster_start ($$) {
sub rm_ndbcluster_tables ($) {
my $dir= shift;
- foreach my $bin ( glob("$dir/cluster/apply_status*"),
- glob("$dir/cluster/schema*") )
+ foreach my $bin ( glob("$dir/mysql/apply_status*"),
+ glob("$dir/mysql/schema*"))
{
unlink($bin);
}
@@ -2661,7 +2868,10 @@ sub initialize_servers () {
}
else
{
- mtr_report("No need to create '$opt_vardir' it already exists");
+ if ($opt_verbose)
+ {
+ mtr_report("No need to create '$opt_vardir' it already exists");
+ }
}
}
else
@@ -2683,13 +2893,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'});
}
@@ -2779,42 +2992,13 @@ sub install_db ($$) {
my $type= shift;
my $data_dir= shift;
- my $init_db_sql= "lib/init_db.sql";
- my $init_db_sql_tmp= "/tmp/init_db.sql$$";
- my $args;
-
mtr_report("Installing \u$type Database");
- open(IN, $init_db_sql)
- or mtr_error("Can't open $init_db_sql: $!");
- open(OUT, ">", $init_db_sql_tmp)
- or mtr_error("Can't write to $init_db_sql_tmp: $!");
- while (<IN>)
- {
- chomp;
- s/\@HOSTNAME\@/$glob_hostname/;
- if ( /^\s*$/ )
- {
- print OUT "\n";
- }
- elsif (/;$/)
- {
- print OUT "$_\n";
- }
- else
- {
- print OUT "$_ ";
- }
- }
- close OUT;
- close IN;
+ my $args;
mtr_init_args(\$args);
-
mtr_add_arg($args, "--no-defaults");
mtr_add_arg($args, "--bootstrap");
- mtr_add_arg($args, "--console");
- mtr_add_arg($args, "--skip-grant-tables");
mtr_add_arg($args, "--basedir=%s", $path_my_basedir);
mtr_add_arg($args, "--datadir=%s", $data_dir);
mtr_add_arg($args, "--skip-innodb");
@@ -2834,21 +3018,67 @@ sub install_db ($$) {
mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
}
+ # If DISABLE_GRANT_OPTIONS is defined when the server is compiled (e.g.,
+ # configure --disable-grant-options), mysqld will not recognize the
+ # --bootstrap or --skip-grant-tables options. The user can set
+ # MYSQLD_BOOTSTRAP to the full path to a mysqld which does accept
+ # --bootstrap, to accommodate this.
+ my $exe_mysqld_bootstrap = $ENV{'MYSQLD_BOOTSTRAP'} || $exe_mysqld;
+
+ # ----------------------------------------------------------------------
+ # export MYSQLD_BOOTSTRAP_CMD variable containing <path>/mysqld <args>
+ # ----------------------------------------------------------------------
+ $ENV{'MYSQLD_BOOTSTRAP_CMD'}= "$exe_mysqld_bootstrap " . join(" ", @$args);
+
+ # ----------------------------------------------------------------------
+ # Create the bootstrap.sql file
+ # ----------------------------------------------------------------------
+ my $bootstrap_sql_file= "$opt_vardir/tmp/bootstrap.sql";
+
+ # Use the mysql database for system tables
+ mtr_tofile($bootstrap_sql_file, "use mysql");
+
+ # Add the offical mysql system tables
+ # for a production system
+ mtr_appendfile_to_file("$path_sql_dir/mysql_system_tables.sql",
+ $bootstrap_sql_file);
+
+ # Add the mysql system tables initial data
+ # for a production system
+ mtr_appendfile_to_file("$path_sql_dir/mysql_system_tables_data.sql",
+ $bootstrap_sql_file);
+
+ # Add test data for timezone - this is just a subset, on a real
+ # system these tables will be populated either by mysql_tzinfo_to_sql
+ # or by downloading the timezone table package from our website
+ mtr_appendfile_to_file("$path_sql_dir/mysql_test_data_timezone.sql",
+ $bootstrap_sql_file);
+
+ # Fill help tables, just an empty file when running from bk repo
+ # but will be replaced by a real fill_help_tables.sql when
+ # building the source dist
+ mtr_appendfile_to_file("$path_sql_dir/fill_help_tables.sql",
+ $bootstrap_sql_file);
+
+ # Remove anonymous users
+ 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 " . join(" ", @$args) . "\n");
+ "$exe_mysqld_bootstrap " . join(" ", @$args) . "\n");
+
- if ( mtr_run($exe_mysqld, $args, $init_db_sql_tmp,
+ if ( mtr_run($exe_mysqld_bootstrap, $args, $bootstrap_sql_file,
$path_bootstrap_log, $path_bootstrap_log,
"", { append_log_file => 1 }) != 0 )
{
- unlink($init_db_sql_tmp);
mtr_error("Error executing mysqld --bootstrap\n" .
- "Could not install $type test DBs");
+ "Could not install system database from $bootstrap_sql_file\n" .
+ "see $path_bootstrap_log for errors");
}
- unlink($init_db_sql_tmp);
}
@@ -2916,6 +3146,7 @@ language = $path_language
character-sets-dir = $path_charsetsdir
basedir = $path_my_basedir
server_id = $server_id
+shutdown-delay = 10
skip-stack-trace
skip-innodb
skip-ndbcluster
@@ -3051,17 +3282,17 @@ sub do_before_run_mysqltest($)
unlink("$result_dir/$tname.log");
unlink("$result_dir/$tname.warnings");
- if ( $mysql_version_id < 50000 )
- {
- # Set environment variable NDB_STATUS_OK to 1
- # if script decided to run mysqltest cluster _is_ installed ok
- $ENV{'NDB_STATUS_OK'} = "1";
- }
- elsif ( $mysql_version_id < 50100 )
+ if (!$opt_extern)
{
- # Set environment variable NDB_STATUS_OK to YES
- # if script decided to run mysqltest cluster _is_ installed ok
- $ENV{'NDB_STATUS_OK'} = "YES";
+ if ( $mysql_version_id < 50000 ) {
+ # Set environment variable NDB_STATUS_OK to 1
+ # if script decided to run mysqltest cluster _is_ installed ok
+ $ENV{'NDB_STATUS_OK'} = "1";
+ } elsif ( $mysql_version_id < 50100 ) {
+ # Set environment variable NDB_STATUS_OK to YES
+ # if script decided to run mysqltest cluster _is_ installed ok
+ $ENV{'NDB_STATUS_OK'} = "YES";
+ }
}
}
@@ -3109,14 +3340,14 @@ sub find_testcase_skipped_reason($)
# Set default message
$tinfo->{'comment'}= "Detected by testcase(no log file)";
- # Open mysqltest.log
+ # Open mysqltest-time(the mysqltest log file)
my $F= IO::File->new($path_timefile)
or return;
my $reason;
while ( my $line= <$F> )
{
- # Look for "reason: <reason fo skiping test>"
+ # Look for "reason: <reason for skipping test>"
if ( $line =~ /reason: (.*)/ )
{
$reason= $1;
@@ -3132,56 +3363,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
@@ -3274,10 +3455,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);
}
@@ -3382,7 +3559,6 @@ sub report_failure_and_restart ($) {
my $tinfo= shift;
mtr_report_test_failed($tinfo);
- mtr_show_failed_diff($tinfo->{'result_file'});
print "\n";
if ( $opt_force )
{
@@ -3391,13 +3567,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 )
@@ -3424,6 +3600,9 @@ sub do_before_start_master ($) {
# FIXME what about second master.....
+ # Don't delete anything if starting dirty
+ return if ($opt_start_dirty);
+
foreach my $bin ( glob("$opt_vardir/log/master*-bin*") )
{
unlink($bin);
@@ -3455,6 +3634,9 @@ sub do_before_start_slave ($) {
my $tname= $tinfo->{'name'};
my $init_script= $tinfo->{'master_sh'};
+ # Don't delete anything if starting dirty
+ return if ($opt_start_dirty);
+
foreach my $bin ( glob("$opt_vardir/log/slave*-bin*") )
{
unlink($bin);
@@ -3481,21 +3663,20 @@ sub do_before_start_slave ($) {
}
-sub mysqld_arguments ($$$$$) {
+sub mysqld_arguments ($$$$) {
my $args= shift;
- my $type= shift;
- my $idx= shift;
+ my $mysqld= shift;
my $extra_opt= shift;
my $slave_master_info= shift;
+ my $idx= $mysqld->{'idx'};
my $sidx= ""; # Index as string, 0 is empty string
- if ( $idx > 0 )
+ if ( $idx> 0 )
{
- $sidx= "$idx";
+ $sidx= $idx;
}
my $prefix= ""; # If mysqltest server arg
-
if ( $glob_use_embedded_server )
{
$prefix= "--server-arg=";
@@ -3503,10 +3684,23 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--no-defaults", $prefix);
- mtr_add_arg($args, "%s--console", $prefix);
mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir);
mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir);
+ if ( $mysql_version_id >= 50036)
+ {
+ # By default, prevent the started mysqld to access files outside of vardir
+ my $secure_file_dir= $opt_vardir;
+ if ( $opt_suite ne "main" )
+ {
+ # When running a suite other than default allow the mysqld
+ # access to subdirs of mysql-test/ in order to make it possible
+ # to "load data" from the suites data/ directory.
+ $secure_file_dir= $glob_mysql_test_dir;
+ }
+ mtr_add_arg($args, "%s--secure-file-priv=%s", $prefix, $secure_file_dir);
+ }
+
if ( $mysql_version_id >= 50000 )
{
mtr_add_arg($args, "%s--log-bin-trust-function-creators", $prefix);
@@ -3516,6 +3710,18 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--language=%s", $prefix, $path_language);
mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
+ # Increase default connect_timeout to avoid intermittent
+ # disconnects when test servers are put under load
+ # see BUG#28359
+ mtr_add_arg($args, "%s--connect-timeout=60", $prefix);
+
+ # When mysqld is run by a root user(euid is 0), it will fail
+ # to start unless we specify what user to run as. If not running
+ # as root it will be ignored, see BUG#30630
+ if (!(grep(/^--user/, @$extra_opt, @opt_extra_mysqld_opt))) {
+ mtr_add_arg($args, "%s--user=root");
+ }
+
if ( $opt_valgrind_mysqld )
{
mtr_add_arg($args, "%s--skip-safemalloc", $prefix);
@@ -3526,35 +3732,54 @@ sub mysqld_arguments ($$$$$) {
}
}
- my $pidfile;
+ mtr_add_arg($args, "%s--pid-file=%s", $prefix,
+ $mysqld->{'path_pid'});
- if ( $type eq 'master' )
+ mtr_add_arg($args, "%s--port=%d", $prefix,
+ $mysqld->{'port'});
+
+ mtr_add_arg($args, "%s--socket=%s", $prefix,
+ $mysqld->{'path_sock'});
+
+ mtr_add_arg($args, "%s--datadir=%s", $prefix,
+ $mysqld->{'path_myddir'});
+
+
+ if ( $mysql_version_id >= 50106 )
{
- my $id= $idx > 0 ? $idx + 101 : 1;
+ # Turn on logging to bothe tables and file
+ mtr_add_arg($args, "%s--log-output=table,file", $prefix);
+ }
+
+ my $log_base_path= "$opt_vardir/log/$mysqld->{'type'}$sidx";
+ mtr_add_arg($args, "%s--log=%s.log", $prefix, $log_base_path);
+ mtr_add_arg($args,
+ "%s--log-slow-queries=%s-slow.log", $prefix, $log_base_path);
- if (! $opt_skip_master_binlog)
+ # Check if "extra_opt" contains --skip-log-bin
+ my $skip_binlog= grep(/^--skip-log-bin/, @$extra_opt, @opt_extra_mysqld_opt);
+ if ( $mysqld->{'type'} eq 'master' )
+ {
+ if (! ($opt_skip_master_binlog || $skip_binlog) )
{
mtr_add_arg($args, "%s--log-bin=%s/log/master-bin%s", $prefix,
$opt_vardir, $sidx);
}
- mtr_add_arg($args, "%s--pid-file=%s", $prefix,
- $master->[$idx]->{'path_pid'});
- mtr_add_arg($args, "%s--port=%d", $prefix,
- $master->[$idx]->{'port'});
- mtr_add_arg($args, "%s--server-id=%d", $prefix, $id);
- mtr_add_arg($args, "%s--socket=%s", $prefix,
- $master->[$idx]->{'path_sock'});
- mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:10M:autoextend", $prefix);
+
+ mtr_add_arg($args, "%s--server-id=%d", $prefix,
+ $idx > 0 ? $idx + 101 : 1);
+
+ mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:10M:autoextend",
+ $prefix);
+
mtr_add_arg($args, "%s--local-infile", $prefix);
- mtr_add_arg($args, "%s--datadir=%s", $prefix,
- $master->[$idx]->{'path_myddir'});
if ( $idx > 0 or !$use_innodb)
{
mtr_add_arg($args, "%s--skip-innodb", $prefix);
}
- my $cluster= $clusters->[$master->[$idx]->{'cluster'}];
+ my $cluster= $clusters->[$mysqld->{'cluster'}];
if ( $opt_skip_ndbcluster ||
!$cluster->{'pid'})
{
@@ -3570,28 +3795,14 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--ndb-extra-logging", $prefix);
}
}
-
- if ( $mysql_version_id <= 50106 )
- {
- # Force mysqld to use log files up until 5.1.6
- mtr_add_arg($args, "%s--log=%s", $prefix, $master->[0]->{'path_mylog'});
- }
- else
- {
- # Turn on logging, will be sent to tables
- mtr_add_arg($args, "%s--log=", $prefix);
- }
}
-
- if ( $type eq 'slave' )
+ else
{
- my $slave_server_id= 2 + $idx;
- my $slave_rpl_rank= $slave_server_id;
+ mtr_error("unknown mysqld type")
+ unless $mysqld->{'type'} eq 'slave';
- mtr_add_arg($args, "%s--datadir=%s", $prefix,
- $slave->[$idx]->{'path_myddir'});
mtr_add_arg($args, "%s--init-rpl-role=slave", $prefix);
- if (! $opt_skip_slave_binlog)
+ if (! ( $opt_skip_slave_binlog || $skip_binlog ))
{
mtr_add_arg($args, "%s--log-bin=%s/log/slave%s-bin", $prefix,
$opt_vardir, $sidx); # FIXME use own dir for binlogs
@@ -3599,18 +3810,14 @@ sub mysqld_arguments ($$$$$) {
}
mtr_add_arg($args, "%s--master-retry-count=10", $prefix);
- mtr_add_arg($args, "%s--pid-file=%s", $prefix,
- $slave->[$idx]->{'path_pid'});
- mtr_add_arg($args, "%s--port=%d", $prefix,
- $slave->[$idx]->{'port'});
+
mtr_add_arg($args, "%s--relay-log=%s/log/slave%s-relay-bin", $prefix,
$opt_vardir, $sidx);
mtr_add_arg($args, "%s--report-host=127.0.0.1", $prefix);
mtr_add_arg($args, "%s--report-port=%d", $prefix,
- $slave->[$idx]->{'port'});
+ $mysqld->{'port'});
mtr_add_arg($args, "%s--report-user=root", $prefix);
mtr_add_arg($args, "%s--skip-innodb", $prefix);
- mtr_add_arg($args, "%s--skip-ndbcluster", $prefix);
mtr_add_arg($args, "%s--skip-slave-start", $prefix);
# Directory where slaves find the dumps generated by "load data"
@@ -3619,8 +3826,6 @@ sub mysqld_arguments ($$$$$) {
my $slave_load_path= "../tmp";
mtr_add_arg($args, "%s--slave-load-tmpdir=%s", $prefix,
$slave_load_path);
- mtr_add_arg($args, "%s--socket=%s", $prefix,
- $slave->[$idx]->{'path_sock'});
mtr_add_arg($args, "%s--set-variable=slave_net_timeout=10", $prefix);
if ( @$slave_master_info )
@@ -3638,13 +3843,16 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--master-password=", $prefix);
mtr_add_arg($args, "%s--master-port=%d", $prefix,
$master->[0]->{'port'}); # First master
+
+ my $slave_server_id= 2 + $idx;
+ my $slave_rpl_rank= $slave_server_id;
mtr_add_arg($args, "%s--server-id=%d", $prefix, $slave_server_id);
mtr_add_arg($args, "%s--rpl-recovery-rank=%d", $prefix, $slave_rpl_rank);
}
if ( $opt_skip_ndbcluster_slave ||
- $slave->[$idx]->{'cluster'} == -1 ||
- !$clusters->[$slave->[$idx]->{'cluster'}]->{'pid'} )
+ $mysqld->{'cluster'} == -1 ||
+ !$clusters->[$mysqld->{'cluster'}]->{'pid'} )
{
mtr_add_arg($args, "%s--skip-ndbcluster", $prefix);
}
@@ -3652,41 +3860,22 @@ sub mysqld_arguments ($$$$$) {
{
mtr_add_arg($args, "%s--ndbcluster", $prefix);
mtr_add_arg($args, "%s--ndb-connectstring=%s", $prefix,
- $clusters->[$slave->[$idx]->{'cluster'}]->{'connect_string'});
+ $clusters->[$mysqld->{'cluster'}]->{'connect_string'});
+
if ( $mysql_version_id >= 50100 )
{
mtr_add_arg($args, "%s--ndb-extra-logging", $prefix);
}
}
- if ( $mysql_version_id <= 50106 )
- {
- # Force mysqld to use log files up until 5.1.6
- mtr_add_arg($args, "%s--log=%s", $prefix, $slave->[0]->{'path_mylog'});
- }
- else
- {
- # Turn on logging, will be sent to tables
- mtr_add_arg($args, "%s--log=", $prefix);
- }
-
} # end slave
if ( $opt_debug )
{
- if ( $type eq 'master' )
- {
- mtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/master%s.trace",
- $prefix, $path_vardir_trace, $sidx);
- }
- if ( $type eq 'slave' )
- {
- mtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/slave%s.trace",
- $prefix, $path_vardir_trace, $sidx);
- }
+ mtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/%s%s.trace",
+ $prefix, $path_vardir_trace, $mysqld->{'type'}, $sidx);
}
- # FIXME always set nowdays??? SMALL_SERVER
mtr_add_arg($args, "%s--key_buffer_size=1M", $prefix);
mtr_add_arg($args, "%s--sort_buffer=256K", $prefix);
mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix);
@@ -3712,22 +3901,18 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--gdb", $prefix);
}
- # If we should run all tests cases, we will use a local server for that
-
- if ( -w "/" )
- {
- # We are running as root; We need to add the --root argument
- mtr_add_arg($args, "%s--user=root", $prefix);
- }
-
my $found_skip_core= 0;
foreach my $arg ( @opt_extra_mysqld_opt, @$extra_opt )
{
- # Allow --skip-core-file to be set in master.opt file
+ # Allow --skip-core-file to be set in <testname>-[master|slave].opt file
if ($arg eq "--skip-core-file")
{
$found_skip_core= 1;
}
+ elsif ($skip_binlog and mtr_match_prefix($arg, "--binlog-format"))
+ {
+ ; # Dont add --binlog-format when running without binlog
+ }
else
{
mtr_add_arg($args, "%s%s", $prefix, $arg);
@@ -3743,7 +3928,7 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--rpl-recovery-rank=1", $prefix);
mtr_add_arg($args, "%s--init-rpl-role=master", $prefix);
}
- elsif ( $type eq 'master' )
+ elsif ( $mysqld->{'type'} eq 'master' )
{
mtr_add_arg($args, "%s--open-files-limit=1024", $prefix);
}
@@ -3794,7 +3979,7 @@ sub mysqld_start ($$$) {
valgrind_arguments($args, \$exe);
}
- mysqld_arguments($args,$type,$idx,$extra_opt,$slave_master_info);
+ mysqld_arguments($args,$mysqld,$extra_opt,$slave_master_info);
if ( $opt_gdb || $opt_manual_gdb)
{
@@ -3861,11 +4046,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.")
@@ -3886,9 +4071,11 @@ sub stop_all_servers () {
push(@kill_pids,{
pid => $mysqld->{'pid'},
+ real_pid => $mysqld->{'real_pid'},
pidfile => $mysqld->{'path_pid'},
sockfile => $mysqld->{'path_sock'},
port => $mysqld->{'port'},
+ errfile => $mysqld->{'path_myerr'},
});
$mysqld->{'pid'}= 0; # Assume we are done with it
@@ -4092,9 +4279,11 @@ sub run_testcase_stop_servers($$$) {
push(@kill_pids,{
pid => $mysqld->{'pid'},
+ real_pid => $mysqld->{'real_pid'},
pidfile => $mysqld->{'path_pid'},
sockfile => $mysqld->{'path_sock'},
port => $mysqld->{'port'},
+ errfile => $mysqld->{'path_myerr'},
});
$mysqld->{'pid'}= 0; # Assume we are done with it
@@ -4142,9 +4331,11 @@ sub run_testcase_stop_servers($$$) {
push(@kill_pids,{
pid => $mysqld->{'pid'},
+ real_pid => $mysqld->{'real_pid'},
pidfile => $mysqld->{'path_pid'},
sockfile => $mysqld->{'path_sock'},
port => $mysqld->{'port'},
+ errfile => $mysqld->{'path_myerr'},
});
@@ -4245,12 +4436,12 @@ sub run_testcase_start_servers($) {
# tables ok FIXME This is a workaround so that only one mysqld
# create the tables
if ( ! sleep_until_file_created(
- "$master->[0]->{'path_myddir'}/cluster/apply_status.ndb",
+ "$master->[0]->{'path_myddir'}/mysql/apply_status.ndb",
$master->[0]->{'start_timeout'},
$master->[0]->{'pid'}))
{
- $tinfo->{'comment'}= "Failed to create 'cluster/apply_status' table";
+ $tinfo->{'comment'}= "Failed to create 'mysql/apply_status' table";
return 1;
}
}
@@ -4445,6 +4636,7 @@ sub run_mysqltest ($) {
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, "--logdir=%s/log", $opt_vardir);
# Log line number and time for each line in .test file
mtr_add_arg($args, "--mark-progress")
@@ -4541,7 +4733,7 @@ sub run_mysqltest ($) {
if ( $glob_use_embedded_server )
{
- mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]);
+ mysqld_arguments($args,$master->[0],$tinfo->{'master_opt'},[]);
}
# ----------------------------------------------------------------------
@@ -4565,12 +4757,13 @@ sub run_mysqltest ($) {
mtr_add_arg($args, "%s", $_) for @args_saved;
}
- mtr_add_arg($args, "--test-file");
- mtr_add_arg($args, $tinfo->{'path'});
+ 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");
- mtr_add_arg($args, $tinfo->{'result_file'});
+ mtr_add_arg($args, "--result-file=%s", $tinfo->{'result_file'});
}
if ( $opt_record )
@@ -4796,7 +4989,6 @@ sub debugger_arguments {
{
mtr_error("Unknown argument \"$debugger\" passed to --debugger");
}
-
}
@@ -4823,7 +5015,7 @@ sub valgrind_arguments {
}
# Add valgrind options, can be overriden by user
- mtr_add_arg($args, '%s', $_) for (split(' ', $opt_valgrind_options));
+ mtr_add_arg($args, '%s', $opt_valgrind_options);
mtr_add_arg($args, $$exe);
@@ -4850,10 +5042,10 @@ sub usage ($) {
if ( $message )
{
- print STDERR "$message \n";
+ print STDERR "$message\n";
}
- print STDERR <<HERE;
+ print <<HERE;
$0 [ OPTIONS ] [ TESTCASE ]
@@ -4870,7 +5062,7 @@ Options to control what engine/variation to run
skip-ssl Dont start server with support for ssl connections
bench Run the benchmark suite
small-bench Run the benchmarks with --small-tests --small-tables
- with-ndbcluster Use cluster as default table type for benchmark
+ ndb|with-ndbcluster Use cluster as default table type
vs-config Visual Studio configuration used to create executables
(default: MTR_VS_CONFIG environment variable)
@@ -4896,12 +5088,16 @@ Options to control what test suites or cases to run
skip-ndb[cluster] Skip all tests that need cluster
skip-ndb[cluster]-slave Skip all tests that need a slave cluster
ndb-extra Run extra tests from ndb directory
- do-test=PREFIX Run test cases which name are prefixed with PREFIX
+ do-test=PREFIX or REGEX
+ Run test cases which name are prefixed with PREFIX
+ or fulfills REGEX
+ skip-test=PREFIX or REGEX
+ Skip test cases which name are prefixed with PREFIX
+ or fulfills REGEX
start-from=PREFIX Run test cases starting from test prefixed with PREFIX
suite=NAME Run the test suite named NAME. The default is "main"
skip-rpl Skip the replication test cases.
skip-im Don't start IM, and skip the IM test cases
- skip-test=PREFIX Skip test cases which name are prefixed with PREFIX
big-test Set the environment variable BIG_TEST, which can be
checked from test cases.
@@ -4911,6 +5107,8 @@ Options that specify ports
slave_port=PORT Specify the port number used by the first slave
ndbcluster-port=PORT Specify the port number used by cluster
ndbcluster-port-slave=PORT Specify the port number used by slave cluster
+ mtr-build-thread=# Specify unique collection of ports. Can also be set by
+ setting the environment variable MTR_BUILD_THREAD.
Options for test case authoring
@@ -4943,6 +5141,8 @@ Options for debugging the product
running test(s)
manual-gdb Let user manually start mysqld in gdb, before running
test(s)
+ manual-ddd Let user manually start mysqld in ddd, before running
+ test(s)
master-binary=PATH Specify the master "mysqld" to use
slave-binary=PATH Specify the slave "mysqld" to use
strace-client Create strace output for mysqltest client
@@ -4977,7 +5177,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/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c
deleted file mode 100644
index 8beebefd298..00000000000
--- a/mysql-test/mysql_test_run_new.c
+++ /dev/null
@@ -1,1908 +0,0 @@
-/*
- Copyright (c) 2002, 2003 Novell, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#ifndef __WIN__
-#include <dirent.h>
-#endif
-#include <string.h>
-#ifdef __NETWARE__
-#include <screen.h>
-#include <nks/vm.h>
-#endif
-#include <ctype.h>
-#include <sys/stat.h>
-#ifndef __WIN__
-#include <unistd.h>
-#endif
-#include <fcntl.h>
-#ifdef __NETWARE__
-#include <sys/mode.h>
-#endif
-#ifdef __WIN__
-#include <windows.h>
-#include <shlwapi.h>
-#include <direct.h>
-#endif
-
-#include "my_manage.h"
-
-/******************************************************************************
-
- macros
-
-******************************************************************************/
-
-#define HEADER "TEST RESULT \n"
-#define DASH "-------------------------------------------------------\n"
-
-#define NW_TEST_SUFFIX ".nw-test"
-#define NW_RESULT_SUFFIX ".nw-result"
-#define TEST_SUFFIX ".test"
-#define RESULT_SUFFIX ".result"
-#define REJECT_SUFFIX ".reject"
-#define OUT_SUFFIX ".out"
-#define ERR_SUFFIX ".err"
-
-const char *TEST_PASS= "[ pass ]";
-const char *TEST_SKIP= "[ skip ]";
-const char *TEST_FAIL= "[ fail ]";
-const char *TEST_BAD= "[ bad ]";
-const char *TEST_IGNORE= "[ignore]";
-
-/******************************************************************************
-
- global variables
-
-******************************************************************************/
-
-#ifdef __NETWARE__
-static char base_dir[FN_REFLEN]= "sys:/mysql";
-#else
-static char base_dir[FN_REFLEN]= "..";
-#endif
-static char db[FN_LEN]= "test";
-static char user[FN_LEN]= "root";
-static char password[FN_LEN]= "";
-
-int master_port= 9306;
-int slave_port= 9307;
-
-#if !defined(__NETWARE__) && !defined(__WIN__)
-static char master_socket[FN_REFLEN]= "./var/tmp/master.sock";
-static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock";
-#endif
-
-#define MAX_COUNT_TESTES 1024
-
-#ifdef __WIN__
-# define sting_compare_func _stricmp
-#else
-# ifdef HAVE_STRCASECMP
-# define sting_compare_func strcasecmp
-# else
-# define sting_compare_func strcmp
-# endif
-#endif
-
-/* comma delimited list of tests to skip or empty string */
-#ifndef __WIN__
-static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix ";
-#else
-/*
- The most ignore testes contain the calls of system command
-
- lowercase_table3 is disabled by Gerg
- system_mysql_db_fix is disabled by Gerg
- sp contains a command system
- rpl_EE_error contains a command system
- rpl_loaddatalocal contains a command system
- ndb_autodiscover contains a command system
- rpl_rotate_logs contains a command system
- repair contains a command system
- rpl_trunc_binlog contains a command system
- mysqldump contains a command system
- rpl000001 makes non-exit loop...temporary skiped
-*/
-static char skip_test[FN_REFLEN]=
-" lowercase_table3 ,"
-" system_mysql_db_fix ,"
-" sp ,"
-" rpl_EE_error ,"
-" rpl_loaddatalocal ,"
-" ndb_autodiscover ,"
-" rpl_rotate_logs ,"
-" repair ,"
-" rpl_trunc_binlog ,"
-" mysqldump ,"
-" rpl000001 ,"
-
-" derived ,"
-" group_by ,"
-" select ,"
-" rpl000015 ,"
-" subselect ";
-#endif
-static char ignore_test[FN_REFLEN]= "";
-
-static char bin_dir[FN_REFLEN];
-static char mysql_test_dir[FN_REFLEN];
-static char test_dir[FN_REFLEN];
-static char mysql_tmp_dir[FN_REFLEN];
-static char result_dir[FN_REFLEN];
-static char master_dir[FN_REFLEN];
-static char slave_dir[FN_REFLEN];
-static char slave1_dir[FN_REFLEN];
-static char slave2_dir[FN_REFLEN];
-static char lang_dir[FN_REFLEN];
-static char char_dir[FN_REFLEN];
-
-static char mysqladmin_file[FN_REFLEN];
-static char mysqld_file[FN_REFLEN];
-static char mysqltest_file[FN_REFLEN];
-#ifndef __WIN__
-static char master_pid[FN_REFLEN];
-static char slave_pid[FN_REFLEN];
-static char sh_file[FN_REFLEN]= "/bin/sh";
-#else
-static HANDLE master_pid;
-static HANDLE slave_pid;
-#endif
-
-static char master_opt[FN_REFLEN]= "";
-static char slave_opt[FN_REFLEN]= "";
-
-static char slave_master_info[FN_REFLEN]= "";
-
-static char master_init_script[FN_REFLEN]= "";
-static char slave_init_script[FN_REFLEN]= "";
-
-/* OpenSSL */
-static char ca_cert[FN_REFLEN];
-static char server_cert[FN_REFLEN];
-static char server_key[FN_REFLEN];
-static char client_cert[FN_REFLEN];
-static char client_key[FN_REFLEN];
-
-int total_skip= 0;
-int total_pass= 0;
-int total_fail= 0;
-int total_test= 0;
-
-int total_ignore= 0;
-
-int use_openssl= FALSE;
-int master_running= FALSE;
-int slave_running= FALSE;
-int skip_slave= TRUE;
-int single_test= TRUE;
-
-int restarts= 0;
-
-FILE *log_fd= NULL;
-
-static char argument[FN_REFLEN];
-
-/******************************************************************************
-
- functions
-
-******************************************************************************/
-
-/******************************************************************************
-
- prototypes
-
-******************************************************************************/
-
-void report_stats();
-void install_db(char *);
-void mysql_install_db();
-void start_master();
-void start_slave();
-void mysql_start();
-void stop_slave();
-void stop_master();
-void mysql_stop();
-void mysql_restart();
-int read_option(char *, char *);
-void run_test(char *);
-void setup(char *);
-void vlog(const char *, va_list);
-void mlog(const char *, ...);
-void log_info(const char *, ...);
-void log_error(const char *, ...);
-void log_errno(const char *, ...);
-void die(const char *);
-char *str_tok(char* dest, char *string, const char *delim);
-#ifndef __WIN__
-void run_init_script(const char *script_name);
-#endif
-/******************************************************************************
-
- report_stats()
-
- Report the gathered statistics.
-
-******************************************************************************/
-
-void report_stats()
-{
- if (total_fail == 0)
- {
- mlog("\nAll %d test(s) were successful.\n", total_test);
- }
- else
- {
- double percent= ((double)total_pass / total_test) * 100;
-
- mlog("\nFailed %u/%u test(s), %.02f%% successful.\n",
- total_fail, total_test, percent);
- mlog("\nThe .out and .err files in %s may give you some\n", result_dir);
- mlog("hint of what when wrong.\n");
- mlog("\nIf you want to report this error, please first read "
- "the documentation\n");
- mlog("at: http://www.mysql.com/doc/M/y/MySQL_test_suite.html\n");
- }
-}
-
-/******************************************************************************
-
- install_db()
-
- Install the a database.
-
-******************************************************************************/
-
-void install_db(char *datadir)
-{
- arg_list_t al;
- int err;
- char input[FN_REFLEN];
- char output[FN_REFLEN];
- char error[FN_REFLEN];
-
- /* input file */
-#ifdef __NETWARE__
- snprintf(input, FN_REFLEN, "%s/bin/init_db.sql", base_dir);
-#else
- snprintf(input, FN_REFLEN, "%s/mysql-test/init_db.sql", base_dir);
-#endif
- snprintf(output, FN_REFLEN, "%s/install.out", datadir);
- snprintf(error, FN_REFLEN, "%s/install.err", datadir);
-
- if (create_system_files(datadir,input, TRUE))
- die("Unable to create init_db.sql.");
- /* args */
- init_args(&al);
- add_arg(&al, mysqld_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--bootstrap");
- add_arg(&al, "--skip-grant-tables");
- add_arg(&al, "--basedir=%s", base_dir);
- add_arg(&al, "--datadir=%s", datadir);
- add_arg(&al, "--skip-innodb");
- add_arg(&al, "--skip-ndbcluster");
- add_arg(&al, "--skip-bdb");
-#ifndef __NETWARE__
- add_arg(&al, "--character-sets-dir=%s", char_dir);
- add_arg(&al, "--language=%s", lang_dir);
-#endif
-// added
- add_arg(&al, "--default-character-set=latin1");
- add_arg(&al, "--innodb_data_file_path=ibdata1:50M");
-
- /* spawn */
- if ((err= spawn(mysqld_file, &al, TRUE, input, output, error, NULL)) != 0)
- {
- die("Unable to create database.");
- }
-
- /* free args */
- free_args(&al);
-}
-
-/******************************************************************************
-
- mysql_install_db()
-
- Install the test databases.
-
-******************************************************************************/
-
-void mysql_install_db()
-{
- char temp[FN_REFLEN];
-
- /* var directory */
- snprintf(temp, FN_REFLEN, "%s/var", mysql_test_dir);
-
- /* create var directory */
-#ifndef __WIN__
- mkdir(temp, S_IRWXU);
- /* create subdirectories */
- mlog("Creating test-suite folders...\n");
- snprintf(temp, FN_REFLEN, "%s/var/run", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-
- snprintf(temp, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-
- snprintf(temp, FN_REFLEN, "%s/var/slave1-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave1-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave1-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-
- snprintf(temp, FN_REFLEN, "%s/var/slave2-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave2-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave2-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-#else
- mkdir(temp);
- /* create subdirectories */
- mlog("Creating test-suite folders...\n");
- snprintf(temp, FN_REFLEN, "%s/var/run", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/mysql", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/test", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/mysql", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/test", mysql_test_dir);
- mkdir(temp);
-#endif
-
- /* install databases */
- mlog("Creating test databases for master... \n");
- install_db(master_dir);
- mlog("Creating test databases for slave... \n");
- install_db(slave_dir);
- install_db(slave1_dir);
- install_db(slave2_dir);
-}
-
-/******************************************************************************
-
- start_master()
-
- Start the master server.
-
-******************************************************************************/
-
-void start_master()
-{
- arg_list_t al;
- int err;
- char master_out[FN_REFLEN];
- char master_err[FN_REFLEN];
- char temp2[FN_REFLEN];
-
- /* remove old berkeley db log files that can confuse the server */
- removef("%s/log.*", master_dir);
-
- /* remove stale binary logs */
- removef("%s/var/log/*-bin.*", mysql_test_dir);
-
- /* remove stale binary logs */
- removef("%s/var/log/*.index", mysql_test_dir);
-
- /* remove master.info file */
- removef("%s/master.info", master_dir);
-
- /* remove relay files */
- removef("%s/var/log/*relay*", mysql_test_dir);
-
- /* remove relay-log.info file */
- removef("%s/relay-log.info", master_dir);
-
- /* init script */
- if (master_init_script[0] != 0)
- {
-#ifdef __NETWARE__
- /* TODO: use the scripts */
- if (strinstr(master_init_script, "repair_part2-master.sh") != 0)
- {
- FILE *fp;
-
- /* create an empty index file */
- snprintf(temp, FN_REFLEN, "%s/test/t1.MYI", master_dir);
- fp= fopen(temp, "wb+");
-
- fputs("1", fp);
-
- fclose(fp);
- }
-#elif !defined(__WIN__)
- run_init_script(master_init_script);
-#endif
- }
-
- /* redirection files */
- snprintf(master_out, FN_REFLEN, "%s/var/run/master%u.out",
- mysql_test_dir, restarts);
- snprintf(master_err, FN_REFLEN, "%s/var/run/master%u.err",
- mysql_test_dir, restarts);
-#ifndef __WIN__
- snprintf(temp2,FN_REFLEN,"%s/var",mysql_test_dir);
- mkdir(temp2,S_IRWXU);
- snprintf(temp2,FN_REFLEN,"%s/var/log",mysql_test_dir);
- mkdir(temp2,S_IRWXU);
-#else
- snprintf(temp2,FN_REFLEN,"%s/var",mysql_test_dir);
- mkdir(temp2);
- snprintf(temp2,FN_REFLEN,"%s/var/log",mysql_test_dir);
- mkdir(temp2);
-#endif
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqld_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--log-bin=%s/var/log/master-bin",mysql_test_dir);
- add_arg(&al, "--server-id=1");
- add_arg(&al, "--basedir=%s", base_dir);
- add_arg(&al, "--port=%u", master_port);
-#if !defined(__NETWARE__) && !defined(__WIN__)
- add_arg(&al, "--socket=%s",master_socket);
-#endif
- add_arg(&al, "--local-infile");
- add_arg(&al, "--core");
- add_arg(&al, "--datadir=%s", master_dir);
-#ifndef __WIN__
- add_arg(&al, "--pid-file=%s", master_pid);
-#endif
- add_arg(&al, "--character-sets-dir=%s", char_dir);
- add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
- add_arg(&al, "--language=%s", lang_dir);
-
- add_arg(&al, "--rpl-recovery-rank=1");
- add_arg(&al, "--init-rpl-role=master");
- add_arg(&al, "--default-character-set=latin1");
-// add_arg(&al, "--innodb_data_file_path=ibdata1:50M");
-#ifdef DEBUG /* only for debug builds */
- add_arg(&al, "--debug");
-#endif
-
- if (use_openssl)
- {
- add_arg(&al, "--ssl-ca=%s", ca_cert);
- add_arg(&al, "--ssl-cert=%s", server_cert);
- add_arg(&al, "--ssl-key=%s", server_key);
- }
-
- /* $MASTER_40_ARGS */
- add_arg(&al, "--rpl-recovery-rank=1");
- add_arg(&al, "--init-rpl-role=master");
-
- /* $SMALL_SERVER */
- add_arg(&al, "-O");
- add_arg(&al, "key_buffer_size=1M");
- add_arg(&al, "-O");
- add_arg(&al, "sort_buffer=256K");
- add_arg(&al, "-O");
- add_arg(&al, "max_heap_table_size=1M");
-
- /* $EXTRA_MASTER_OPT */
- if (master_opt[0] != 0)
- {
- char *p;
-
- p= (char *)str_tok(argument, master_opt, " \t");
- if (!strstr(master_opt, "timezone"))
- {
- while (p)
- {
- add_arg(&al, "%s", p);
- p= (char *)str_tok(argument, NULL, " \t");
- }
- }
- }
-
- /* remove the pid file if it exists */
-#ifndef __WIN__
- remove(master_pid);
-#endif
-
- /* spawn */
-#ifdef __WIN__
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- master_out, master_err, &master_pid)) == 0)
-#else
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- master_out, master_err, master_pid)) == 0)
-#endif
- {
- sleep_until_file_exists(master_pid);
-
- if ((err= wait_for_server_start(bin_dir, mysqladmin_file, user, password,
- master_port, mysql_tmp_dir)) == 0)
- {
- master_running= TRUE;
- }
- else
- {
- log_error("The master server went down early.");
- }
- }
- else
- {
- log_error("Unable to start master server.");
- }
-
- /* free_args */
- free_args(&al);
-}
-
-/******************************************************************************
-
- start_slave()
-
- Start the slave server.
-
-******************************************************************************/
-
-void start_slave()
-{
- arg_list_t al;
- int err;
- char slave_out[FN_REFLEN];
- char slave_err[FN_REFLEN];
-
- /* skip? */
- if (skip_slave) return;
-
- /* remove stale binary logs */
- removef("%s/*-bin.*", slave_dir);
-
- /* remove stale binary logs */
- removef("%s/*.index", slave_dir);
-
- /* remove master.info file */
- removef("%s/master.info", slave_dir);
-
- /* remove relay files */
- removef("%s/var/log/*relay*", mysql_test_dir);
-
- /* remove relay-log.info file */
- removef("%s/relay-log.info", slave_dir);
-
- /* init script */
- if (slave_init_script[0] != 0)
- {
-#ifdef __NETWARE__
- /* TODO: use the scripts */
- if (strinstr(slave_init_script, "rpl000016-slave.sh") != 0)
- {
- /* create empty master.info file */
- snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir);
- close(open(temp, O_WRONLY | O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO));
- }
- else if (strinstr(slave_init_script, "rpl000017-slave.sh") != 0)
- {
- FILE *fp;
-
- /* create a master.info file */
- snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir);
- fp= fopen(temp, "wb+");
-
- fputs("master-bin.000001\n", fp);
- fputs("4\n", fp);
- fputs("127.0.0.1\n", fp);
- fputs("replicate\n", fp);
- fputs("aaaaaaaaaaaaaaab\n", fp);
- fputs("9306\n", fp);
- fputs("1\n", fp);
- fputs("0\n", fp);
-
- fclose(fp);
- }
- else if (strinstr(slave_init_script, "rpl_rotate_logs-slave.sh") != 0)
- {
- /* create empty master.info file */
- snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir);
- close(open(temp, O_WRONLY | O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO));
- }
-#elif !defined(__WIN__)
- run_init_script(slave_init_script);
-#endif
- }
-
- /* redirection files */
- snprintf(slave_out, FN_REFLEN, "%s/var/run/slave%u.out",
- mysql_test_dir, restarts);
- snprintf(slave_err, FN_REFLEN, "%s/var/run/slave%u.err",
- mysql_test_dir, restarts);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqld_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--log-bin=slave-bin");
- add_arg(&al, "--relay_log=slave-relay-bin");
- add_arg(&al, "--basedir=%s", base_dir);
-#if !defined(__NETWARE__) && !defined(__WIN__)
- add_arg(&al, "--socket=%s",slave_socket);
-#endif
- add_arg(&al, "--port=%u", slave_port);
- add_arg(&al, "--datadir=%s", slave_dir);
-#ifndef __WIN__
- add_arg(&al, "--pid-file=%s", slave_pid);
-#endif
- add_arg(&al, "--character-sets-dir=%s", char_dir);
- add_arg(&al, "--core");
- add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
- add_arg(&al, "--language=%s", lang_dir);
-
- add_arg(&al, "--exit-info=256");
- add_arg(&al, "--log-slave-updates");
- add_arg(&al, "--init-rpl-role=slave");
- add_arg(&al, "--skip-innodb");
- add_arg(&al, "--skip-slave-start");
- add_arg(&al, "--slave-load-tmpdir=../../var/tmp");
-
- add_arg(&al, "--report-user=%s", user);
- add_arg(&al, "--report-host=127.0.0.1");
- add_arg(&al, "--report-port=%u", slave_port);
-
- add_arg(&al, "--master-retry-count=10");
- add_arg(&al, "-O");
- add_arg(&al, "slave_net_timeout=10");
- add_arg(&al, "--log-slave-updates");
- add_arg(&al, "--log=%s/var/log/slave.log", mysql_test_dir);
- add_arg(&al, "--default-character-set=latin1");
- add_arg(&al, "--skip-ndbcluster");
-
-#ifdef DEBUG /* only for debug builds */
- add_arg(&al, "--debug");
-#endif
-
- if (use_openssl)
- {
- add_arg(&al, "--ssl-ca=%s", ca_cert);
- add_arg(&al, "--ssl-cert=%s", server_cert);
- add_arg(&al, "--ssl-key=%s", server_key);
- }
-
- /* slave master info */
- if (slave_master_info[0] != 0)
- {
- char *p;
-
- p= (char *)str_tok(argument, slave_master_info, " \t");
-
- while (p)
- {
- add_arg(&al, "%s", p);
- p= (char *)str_tok(argument, NULL, " \t");
- }
- }
- else
- {
- add_arg(&al, "--master-user=%s", user);
- add_arg(&al, "--master-password=%s", password);
- add_arg(&al, "--master-host=127.0.0.1");
- add_arg(&al, "--master-port=%u", master_port);
- add_arg(&al, "--master-connect-retry=1");
- add_arg(&al, "--server-id=2");
- add_arg(&al, "--rpl-recovery-rank=2");
- }
-
- /* small server */
- add_arg(&al, "-O");
- add_arg(&al, "key_buffer_size=1M");
- add_arg(&al, "-O");
- add_arg(&al, "sort_buffer=256K");
- add_arg(&al, "-O");
- add_arg(&al, "max_heap_table_size=1M");
-
-
- /* opt args */
- if (slave_opt[0] != 0)
- {
- char *p;
-
- p= (char *)str_tok(argument, slave_opt, " \t");
-
- while (p)
- {
- add_arg(&al, "%s", p);
- p= (char *)str_tok(argument, NULL, " \t");
- }
- }
-
- /* remove the pid file if it exists */
-#ifndef __WIN__
- remove(slave_pid);
-#endif
- /* spawn */
-#ifdef __WIN__
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- slave_out, slave_err, &slave_pid)) == 0)
-#else
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- slave_out, slave_err, slave_pid)) == 0)
-#endif
- {
- sleep_until_file_exists(slave_pid);
-
- if ((err= wait_for_server_start(bin_dir, mysqladmin_file, user, password,
- slave_port, mysql_tmp_dir)) == 0)
- {
- slave_running= TRUE;
- }
- else
- {
- log_error("The slave server went down early.");
- }
- }
- else
- {
- log_error("Unable to start slave server.");
- }
-
- /* free args */
- free_args(&al);
-}
-
-/******************************************************************************
-
- mysql_start()
-
- Start the mysql servers.
-
-******************************************************************************/
-
-void mysql_start()
-{
-
-
- printf("loading master...\r");
- start_master();
-
- printf("loading slave...\r");
- start_slave();
-
- /* activate the test screen */
-#ifdef __NETWARE__
- ActivateScreen(getscreenhandle());
-#endif
-}
-
-/******************************************************************************
-
- stop_slave()
-
- Stop the slave server.
-
-******************************************************************************/
-
-void stop_slave()
-{
- int err;
-
- /* running? */
- if (!slave_running) return;
-
- /* stop */
- if ((err= stop_server(bin_dir, mysqladmin_file, user, password,
- slave_port, slave_pid, mysql_tmp_dir)) == 0)
- {
- slave_running= FALSE;
- }
- else
- {
- log_error("Unable to stop slave server.");
- }
-}
-
-/******************************************************************************
-
- stop_master()
-
- Stop the master server.
-
-******************************************************************************/
-
-void stop_master()
-{
- int err;
-
- /* running? */
- if (!master_running) return;
-
- if ((err= stop_server(bin_dir, mysqladmin_file, user, password,
- master_port, master_pid, mysql_tmp_dir)) == 0)
- {
- master_running= FALSE;
- }
- else
- {
- log_error("Unable to stop master server.");
- }
-}
-
-/******************************************************************************
-
- mysql_stop()
-
- Stop the mysql servers.
-
-******************************************************************************/
-
-void mysql_stop()
-{
-
- stop_master();
-
- stop_slave();
-
- /* activate the test screen */
-#ifdef __NETWARE__
- ActivateScreen(getscreenhandle());
-#endif
-}
-
-/******************************************************************************
-
- mysql_restart()
-
- Restart the mysql servers.
-
-******************************************************************************/
-
-void mysql_restart()
-{
-/* log_info("Restarting the MySQL server(s): %u", ++restarts); */
-
- mysql_stop();
-
- mlog(DASH);
- sleep(1);
-
- mysql_start();
-}
-
-/******************************************************************************
-
- read_option()
-
- Read the option file.
-
-******************************************************************************/
-
-int read_option(char *opt_file, char *opt)
-{
- int fd, err;
- char *p;
- char buf[FN_REFLEN];
-
- /* copy current option */
- strncpy(buf, opt, FN_REFLEN);
-
- /* open options file */
- fd= open(opt_file, O_RDONLY);
- err= read(fd, opt, FN_REFLEN);
- close(fd);
-
- if (err > 0)
- {
- /* terminate string */
- if ((p= strchr(opt, '\n')) != NULL)
- {
- *p= 0;
-
- /* check for a '\r' */
- if ((p= strchr(opt, '\r')) != NULL)
- {
- *p= 0;
- }
- }
- else
- {
- opt[err]= 0;
- }
-
- /* check for $MYSQL_TEST_DIR */
- if ((p= strstr(opt, "$MYSQL_TEST_DIR")) != NULL)
- {
- char temp[FN_REFLEN];
-
- *p= 0;
-
- strcpy(temp, p + strlen("$MYSQL_TEST_DIR"));
- strcat(opt, mysql_test_dir);
- strcat(opt, temp);
- }
- /* Check for double backslash and replace it with single bakslash */
- if ((p= strstr(opt, "\\\\")) != NULL)
- {
- /* bmove is guranteed to work byte by byte */
- bmove(p, p+1, strlen(p)+1);
- }
- }
- else
- {
- /* clear option */
- *opt= 0;
- }
-
- /* compare current option with previous */
- return strcmp(opt, buf);
-}
-
-/******************************************************************************
-
- run_test()
-
- Run the given test case.
-
-******************************************************************************/
-
-void run_test(char *test)
-{
- char temp[FN_REFLEN];
- const char *rstr;
- int skip= FALSE, ignore=FALSE;
- int restart= FALSE;
- int flag= FALSE;
- struct stat info;
-
- /* skip tests in the skip list */
- snprintf(temp, FN_REFLEN, " %s ", test);
- skip= (strinstr(skip_test, temp) != 0);
- if (skip == FALSE)
- ignore= (strinstr(ignore_test, temp) != 0);
-
- snprintf(master_init_script, FN_REFLEN, "%s/%s-master.sh", test_dir, test);
- snprintf(slave_init_script, FN_REFLEN, "%s/%s-slave.sh", test_dir, test);
-#ifdef __WIN__
- if (! stat(master_init_script, &info))
- skip= TRUE;
- if (!stat(slave_init_script, &info))
- skip= TRUE;
-#endif
- if (ignore)
- {
- /* show test */
- mlog("%-46s ", test);
-
- /* ignore */
- rstr= TEST_IGNORE;
- ++total_ignore;
- }
- else if (!skip) /* skip test? */
- {
- char test_file[FN_REFLEN];
- char master_opt_file[FN_REFLEN];
- char slave_opt_file[FN_REFLEN];
- char slave_master_info_file[FN_REFLEN];
- char result_file[FN_REFLEN];
- char reject_file[FN_REFLEN];
- char out_file[FN_REFLEN];
- char err_file[FN_REFLEN];
- int err;
- arg_list_t al;
- /* skip slave? */
- flag= skip_slave;
- skip_slave= (strncmp(test, "rpl", 3) != 0);
- if (flag != skip_slave) restart= TRUE;
-
- /* create files */
- snprintf(master_opt_file, FN_REFLEN, "%s/%s-master.opt", test_dir, test);
- snprintf(slave_opt_file, FN_REFLEN, "%s/%s-slave.opt", test_dir, test);
- snprintf(slave_master_info_file, FN_REFLEN, "%s/%s.slave-mi",
- test_dir, test);
- snprintf(reject_file, FN_REFLEN, "%s/%s%s",
- result_dir, test, REJECT_SUFFIX);
- snprintf(out_file, FN_REFLEN, "%s/%s%s", result_dir, test, OUT_SUFFIX);
- snprintf(err_file, FN_REFLEN, "%s/%s%s", result_dir, test, ERR_SUFFIX);
-
- /* netware specific files */
- snprintf(test_file, FN_REFLEN, "%s/%s%s", test_dir, test, NW_TEST_SUFFIX);
- if (stat(test_file, &info))
- {
- snprintf(test_file, FN_REFLEN, "%s/%s%s", test_dir, test, TEST_SUFFIX);
- if (access(test_file,0))
- {
- printf("Invalid test name %s, %s file not found\n",test,test_file);
- return;
- }
- }
-
- snprintf(result_file, FN_REFLEN, "%s/%s%s",
- result_dir, test, NW_RESULT_SUFFIX);
- if (stat(result_file, &info))
- {
- snprintf(result_file, FN_REFLEN, "%s/%s%s",
- result_dir, test, RESULT_SUFFIX);
- }
-
- /* init scripts */
- if (stat(master_init_script, &info))
- master_init_script[0]= 0;
- else
- restart= TRUE;
-
- if (stat(slave_init_script, &info))
- slave_init_script[0]= 0;
- else
- restart= TRUE;
-
- /* read options */
- if (read_option(master_opt_file, master_opt)) restart= TRUE;
- if (read_option(slave_opt_file, slave_opt)) restart= TRUE;
- if (read_option(slave_master_info_file, slave_master_info)) restart= TRUE;
-
- /* cleanup previous run */
- remove(reject_file);
- remove(out_file);
- remove(err_file);
-
- /* start or restart? */
- if (!master_running) mysql_start();
- else if (restart) mysql_restart();
-
- /* show test */
- mlog("%-46s ", test);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqltest_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--port=%u", master_port);
-#if !defined(__NETWARE__) && !defined(__WIN__)
- add_arg(&al, "--socket=%s", master_socket);
- add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
-#endif
- add_arg(&al, "--database=%s", db);
- add_arg(&al, "--user=%s", user);
- add_arg(&al, "--password=%s", password);
- add_arg(&al, "--silent");
- add_arg(&al, "--basedir=%s/", mysql_test_dir);
- add_arg(&al, "--host=127.0.0.1");
- add_arg(&al, "--skip-safemalloc");
- add_arg(&al, "-v");
- add_arg(&al, "-R");
- add_arg(&al, "%s", result_file);
-
-
- if (use_openssl)
- {
- add_arg(&al, "--ssl-ca=%s", ca_cert);
- add_arg(&al, "--ssl-cert=%s", client_cert);
- add_arg(&al, "--ssl-key=%s", client_key);
- }
-
- /* spawn */
- err= spawn(mysqltest_file, &al, TRUE, test_file, out_file, err_file, NULL);
- /* free args */
- free_args(&al);
-
- remove_empty_file(out_file);
- remove_empty_file(err_file);
-
- if (err == 0)
- {
- /* pass */
- rstr= TEST_PASS;
- ++total_pass;
-
- /* increment total */
- ++total_test;
- }
- else if (err == 2)
- {
- /* skip */
- rstr= TEST_SKIP;
- ++total_skip;
- }
- else if (err == 1)
- {
- /* fail */
- rstr= TEST_FAIL;
- ++total_fail;
-
- /* increment total */
- ++total_test;
- }
- else
- {
- rstr= TEST_BAD;
- }
- }
- else /* early skips */
- {
- /* show test */
- mlog("%-46s ", test);
-
- /* skip */
- rstr= TEST_SKIP;
- ++total_skip;
- }
-
- /* result */
- mlog("%-14s\n", rstr);
-}
-
-/******************************************************************************
-
- vlog()
-
- Log the message.
-
-******************************************************************************/
-
-void vlog(const char *format, va_list ap)
-{
- vfprintf(stdout, format, ap);
- fflush(stdout);
-
- if (log_fd)
- {
- vfprintf(log_fd, format, ap);
- fflush(log_fd);
- }
-}
-
-/******************************************************************************
-
- log()
-
- Log the message.
-
-******************************************************************************/
-
-void mlog(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- vlog(format, ap);
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- log_info()
-
- Log the given information.
-
-******************************************************************************/
-
-void log_info(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- mlog("-- INFO : ");
- vlog(format, ap);
- mlog("\n");
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- log_error()
-
- Log the given error.
-
-******************************************************************************/
-
-void log_error(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- mlog("-- ERROR: ");
- vlog(format, ap);
- mlog("\n");
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- log_errno()
-
- Log the given error and errno.
-
-******************************************************************************/
-
-void log_errno(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- mlog("-- ERROR: (%003u) ", errno);
- vlog(format, ap);
- mlog("\n");
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- die()
-
- Exit the application.
-
-******************************************************************************/
-
-void die(const char *msg)
-{
- log_error(msg);
-#ifdef __NETWARE__
- pressanykey();
-#endif
- exit(-1);
-}
-
-/******************************************************************************
-
- setup()
-
- Setup the mysql test enviornment.
-
-******************************************************************************/
-
-void setup(char *file __attribute__((unused)))
-{
- char temp[FN_REFLEN];
-#if defined(__WIN__) || defined(__NETWARE__)
- char file_path[FN_REFLEN*2];
-#endif
- char *p;
- int position;
-
- /* set the timezone for the timestamp test */
-#ifdef __WIN__
- _putenv( "TZ=GMT-3" );
-#else
- putenv((char *)"TZ=GMT-3");
-#endif
- /* find base dir */
-#ifdef __NETWARE__
- strcpy(temp, strlwr(file));
- while ((p= strchr(temp, '\\')) != NULL) *p= '/';
-#else
- getcwd(temp, FN_REFLEN);
- position= strlen(temp);
- temp[position]= '/';
- temp[position+1]= 0;
-#ifdef __WIN__
- while ((p= strchr(temp, '\\')) != NULL) *p= '/';
-#endif
-#endif
-
- if ((position= strinstr(temp, "/mysql-test/")) != 0)
- {
- p= temp + position - 1;
- *p= 0;
- strcpy(base_dir, temp);
- }
-
- log_info("Currect directory: %s",base_dir);
-
-#ifdef __NETWARE__
- /* setup paths */
- snprintf(bin_dir, FN_REFLEN, "%s/bin", base_dir);
- snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir);
- snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir);
- snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir);
- snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- snprintf(lang_dir, FN_REFLEN, "%s/share/english", base_dir);
- snprintf(char_dir, FN_REFLEN, "%s/share/charsets", base_dir);
-
-#ifdef HAVE_OPENSSL
- use_openssl= TRUE;
-#endif /* HAVE_OPENSSL */
-
- /* OpenSSL paths */
- snprintf(ca_cert, FN_REFLEN, "%s/SSL/cacert.pem", base_dir);
- snprintf(server_cert, FN_REFLEN, "%s/SSL/server-cert.pem", base_dir);
- snprintf(server_key, FN_REFLEN, "%s/SSL/server-key.pem", base_dir);
- snprintf(client_cert, FN_REFLEN, "%s/SSL/client-cert.pem", base_dir);
- snprintf(client_key, FN_REFLEN, "%s/SSL/client-key.pem", base_dir);
-
- /* setup files */
- snprintf(mysqld_file, FN_REFLEN, "%s/mysqld", bin_dir);
- snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest", bin_dir);
- snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin", bin_dir);
- snprintf(master_pid, FN_REFLEN, "%s/var/run/master.pid", mysql_test_dir);
- snprintf(slave_pid, FN_REFLEN, "%s/var/run/slave.pid", mysql_test_dir);
-#elif __WIN__
- /* setup paths */
-#ifdef _DEBUG
- snprintf(bin_dir, FN_REFLEN, "%s/client_debug", base_dir);
-#else
- snprintf(bin_dir, FN_REFLEN, "%s/client_release", base_dir);
-#endif
- snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir);
- snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir);
- snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir);
- snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- snprintf(lang_dir, FN_REFLEN, "%s/share/english", base_dir);
- snprintf(char_dir, FN_REFLEN, "%s/share/charsets", base_dir);
-
-#ifdef HAVE_OPENSSL
- use_openssl= TRUE;
-#endif /* HAVE_OPENSSL */
-
- /* OpenSSL paths */
- snprintf(ca_cert, FN_REFLEN, "%s/SSL/cacert.pem", base_dir);
- snprintf(server_cert, FN_REFLEN, "%s/SSL/server-cert.pem", base_dir);
- snprintf(server_key, FN_REFLEN, "%s/SSL/server-key.pem", base_dir);
- snprintf(client_cert, FN_REFLEN, "%s/SSL/client-cert.pem", base_dir);
- snprintf(client_key, FN_REFLEN, "%s/SSL/client-key.pem", base_dir);
-
- /* setup files */
-#ifdef _DEBUG
- snprintf(mysqld_file, FN_REFLEN, "%s/mysqld-debug.exe", bin_dir);
-#else
- snprintf(mysqld_file, FN_REFLEN, "%s/mysqld.exe", bin_dir);
-#endif
- snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest.exe", bin_dir);
- snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin.exe", bin_dir);
-#else
- /* setup paths */
- snprintf(bin_dir, FN_REFLEN, "%s/client", base_dir);
- snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir);
- snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir);
- snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir);
- snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- snprintf(slave1_dir, FN_REFLEN, "%s/var/slave1-data", mysql_test_dir);
- snprintf(slave2_dir, FN_REFLEN, "%s/var/slave2-data", mysql_test_dir);
- snprintf(lang_dir, FN_REFLEN, "%s/sql/share/english", base_dir);
- snprintf(char_dir, FN_REFLEN, "%s/sql/share/charsets", base_dir);
-
-#ifdef HAVE_OPENSSL
- use_openssl= TRUE;
-#endif /* HAVE_OPENSSL */
-
- /* OpenSSL paths */
- snprintf(ca_cert, FN_REFLEN, "%s/SSL/cacert.pem", base_dir);
- snprintf(server_cert, FN_REFLEN, "%s/SSL/server-cert.pem", base_dir);
- snprintf(server_key, FN_REFLEN, "%s/SSL/server-key.pem", base_dir);
- snprintf(client_cert, FN_REFLEN, "%s/SSL/client-cert.pem", base_dir);
- snprintf(client_key, FN_REFLEN, "%s/SSL/client-key.pem", base_dir);
-
- /* setup files */
- snprintf(mysqld_file, FN_REFLEN, "%s/sql/mysqld", base_dir);
- snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest", bin_dir);
- snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin", bin_dir);
- snprintf(master_pid, FN_REFLEN, "%s/var/run/master.pid", mysql_test_dir);
- snprintf(slave_pid, FN_REFLEN, "%s/var/run/slave.pid", mysql_test_dir);
-
- snprintf(master_socket,FN_REFLEN, "%s/var/tmp/master.sock", mysql_test_dir);
- snprintf(slave_socket,FN_REFLEN, "%s/var/tmp/slave.sock", mysql_test_dir);
-
-#endif
- /* create log file */
- snprintf(temp, FN_REFLEN, "%s/mysql-test-run.log", mysql_test_dir);
- if ((log_fd= fopen(temp, "w+")) == NULL)
- {
- log_errno("Unable to create log file.");
- }
-
- /* prepare skip test list */
- while ((p= strchr(skip_test, ',')) != NULL) *p= ' ';
- strcpy(temp, strlwr(skip_test));
- snprintf(skip_test, FN_REFLEN, " %s ", temp);
-
- /* environment */
-#ifdef __NETWARE__
- setenv("MYSQL_TEST_DIR", mysql_test_dir, 1);
- snprintf(file_path, FN_REFLEN*2,
- "%s/client/mysqldump --no-defaults -u root --port=%u",
- bin_dir, master_port);
- setenv("MYSQL_DUMP", file_path, 1);
- snprintf(file_path, FN_REFLEN*2,
- "%s/client/mysqlbinlog --no-defaults --local-load=%s",
- bin_dir, mysql_tmp_dir);
- setenv("MYSQL_BINLOG", file_path, 1);
-#elif __WIN__
- snprintf(file_path,FN_REFLEN,"MYSQL_TEST_DIR=%s",mysql_test_dir);
- _putenv(file_path);
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_DUMP=%s/mysqldump.exe --no-defaults -uroot --port=%u",
- bin_dir, master_port);
- _putenv(file_path);
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_BINLOG=%s/mysqlbinlog.exe --no-defaults --local-load=%s",
- bin_dir, mysql_tmp_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "TESTS_BINDIR=%s/tests", base_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "CHARSETSDIR=%s/sql/share/charsets", base_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL=%s/mysql --port=%u ",
- bin_dir, master_port);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_FIX_SYSTEM_TABLES=%s/scripts/mysql_fix_privilege_tables --no-defaults "
- "--host=localhost --port=%u "
- "--basedir=%s --bindir=%s --verbose",
- base_dir,master_port, base_dir, bin_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "NDB_TOOLS_DIR=%s/ndb/tools", base_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "CLIENT_BINDIR=%s", bin_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_CLIENT_TEST=%s/tests/mysql_client_test --no-defaults --testcase "
- "--user=root --port=%u --silent",
- base_dir, master_port);
- _putenv(file_path);
-
-#else
- {
- static char env_MYSQL_TEST_DIR[FN_REFLEN*2];
- static char env_MYSQL_DUMP[FN_REFLEN*2];
- static char env_MYSQL_BINLOG[FN_REFLEN*2];
- static char env_MASTER_MYSOCK[FN_REFLEN*2];
- static char env_TESTS_BINDIR[FN_REFLEN*2];
- static char env_CHARSETSDIR[FN_REFLEN*2];
- static char env_MYSQL[FN_REFLEN*2];
- static char env_MYSQL_FIX_SYSTEM_TABLES[FN_REFLEN*2];
- static char env_NDB_TOOLS_DIR[FN_REFLEN*2];
- static char env_CLIENT_BINDIR[FN_REFLEN*2];
- static char env_MYSQL_CLIENT_TEST[FN_REFLEN*2];
-
- snprintf(env_MYSQL_TEST_DIR,FN_REFLEN*2,
- "MYSQL_TEST_DIR=%s",mysql_test_dir);
- putenv(env_MYSQL_TEST_DIR);
-
- snprintf(env_MYSQL_DUMP, FN_REFLEN*2,"MYSQL_DUMP=%s/mysqldump --no-defaults "
- "-uroot --port=%u --socket=%s ",
- bin_dir, master_port, master_socket);
- putenv(env_MYSQL_DUMP);
-
- snprintf(env_MYSQL_BINLOG, FN_REFLEN*2,
- "MYSQL_BINLOG=%s/mysqlbinlog --no-defaults --local-load=%s -uroot ",
- bin_dir, mysql_tmp_dir);
- putenv(env_MYSQL_BINLOG);
-
- snprintf(env_MASTER_MYSOCK, FN_REFLEN*2,
- "MASTER_MYSOCK=%s", master_socket);
- putenv(env_MASTER_MYSOCK);
-
- snprintf(env_TESTS_BINDIR, FN_REFLEN*2,
- "TESTS_BINDIR=%s/tests", base_dir);
- putenv(env_TESTS_BINDIR);
-
- snprintf(env_CHARSETSDIR, FN_REFLEN*2,
- "CHARSETSDIR=%s/sql/share/charsets", base_dir);
- putenv(env_CHARSETSDIR);
-
- snprintf(env_MYSQL, FN_REFLEN*2,
- "MYSQL=%s/mysql --port=%u --socket=%s -uroot ",
- bin_dir, master_port, master_socket);
- putenv(env_MYSQL);
-
- snprintf(env_MYSQL_FIX_SYSTEM_TABLES, FN_REFLEN*2,
- "MYSQL_FIX_SYSTEM_TABLES=%s/scripts/mysql_fix_privilege_tables --no-defaults "
- "--host=localhost --port=%u --socket=%s "
- "--basedir=%s --bindir=%s --verbose -uroot ",
- base_dir,master_port, master_socket, base_dir, bin_dir);
- putenv(env_MYSQL_FIX_SYSTEM_TABLES);
-
- snprintf(env_NDB_TOOLS_DIR, FN_REFLEN*2,
- "NDB_TOOLS_DIR=%s/ndb/tools", base_dir);
- putenv(env_NDB_TOOLS_DIR);
-
- snprintf(env_CLIENT_BINDIR, FN_REFLEN*2,
- "CLIENT_BINDIR=%s", bin_dir);
- putenv(env_CLIENT_BINDIR);
-
- snprintf(env_MYSQL_CLIENT_TEST, FN_REFLEN*2,
- "MYSQL_CLIENT_TEST=%s/tests/mysql_client_test --no-defaults --testcase "
- "--user=root --socket=%s --port=%u --silent",
- base_dir, master_socket, master_port);
- putenv(env_MYSQL_CLIENT_TEST);
-
- }
-
-#endif
-
-#ifndef __WIN__
- putenv((char *)"MASTER_MYPORT=9306");
- putenv((char *)"SLAVE_MYPORT=9307");
- putenv((char *)"MYSQL_TCP_PORT=3306");
-
-#else
- _putenv("MASTER_MYPORT=9306");
- _putenv("SLAVE_MYPORT=9307");
- _putenv("MYSQL_TCP_PORT=3306");
-#endif
-
-}
-
-/*
- Compare names of testes for right order
-*/
-int compare( const void *arg1, const void *arg2 )
-{
- return sting_compare_func( * ( char** ) arg1, * ( char** ) arg2 );
-}
-
-
-
-/******************************************************************************
-
- main()
-
-******************************************************************************/
-
-int main(int argc, char **argv)
-{
- int is_ignore_list= 0;
- char **names= 0;
- char **testes= 0;
- int name_index;
- int index;
- char var_dir[FN_REFLEN];
- /* setup */
- setup(argv[0]);
-
- /* delete all file in var */
- snprintf(var_dir,FN_REFLEN,"%s/var",mysql_test_dir);
- del_tree(var_dir);
-
- /*
- The --ignore option is comma saperated list of test cases to skip and
- should be very first command line option to the test suite.
-
- The usage is now:
- mysql_test_run --ignore=test1,test2 test3 test4
- where test1 and test2 are test cases to ignore
- and test3 and test4 are test cases to run.
- */
- if (argc >= 2 && !strnicmp(argv[1], "--ignore=", sizeof("--ignore=")-1))
- {
- char *temp, *token;
- temp= strdup(strchr(argv[1],'=') + 1);
- for (token=str_tok(argument, temp, ","); token != NULL;
- token=str_tok(argument, NULL, ","))
- {
- if (strlen(ignore_test) + strlen(token) + 2 <= FN_REFLEN-1)
- sprintf(ignore_test+strlen(ignore_test), " %s ", token);
- else
- {
- free(temp);
- die("ignore list too long.");
- }
- }
- free(temp);
- is_ignore_list= 1;
- }
- /* header */
-#ifndef __WIN__
- mlog("MySQL Server %s, for %s (%s)\n\n", VERSION, SYSTEM_TYPE, MACHINE_TYPE);
-#else
- mlog("MySQL Server ---, for %s (%s)\n\n", SYSTEM_TYPE, MACHINE_TYPE);
-#endif
-
- mlog("Initializing Tests...\n");
-
- /* install test databases */
- mysql_install_db();
-
- mlog("Starting Tests...\n");
-
- mlog("\n");
- mlog(HEADER);
- mlog(DASH);
-
- if ( argc > 1 + is_ignore_list )
- {
- int i;
-
- /* single test */
- single_test= TRUE;
-
- for (i= 1 + is_ignore_list; i < argc; i++)
- {
- /* run given test */
- run_test(argv[i]);
- }
- }
- else
- {
- /* run all tests */
- testes= malloc(MAX_COUNT_TESTES*sizeof(void*));
- if (!testes)
- die("can not allcate memory for sorting");
- names= testes;
- name_index= 0;
-#ifndef __WIN__
- struct dirent *entry;
- DIR *parent;
- char test[FN_LEN];
- int position;
-
- /* FIXME are we sure the list is sorted if using readdir()? */
- if ((parent= opendir(test_dir)) == NULL) /* Not thread safe */
- die("Unable to open tests directory.");
- else
- {
- while ((entry= readdir(parent)) != NULL) /* Not thread safe */
- {
- strcpy(test, strlwr(entry->d_name));
- /* find the test suffix */
- if ((position= strinstr(test, TEST_SUFFIX)) != 0)
- {
- if (name_index < MAX_COUNT_TESTES)
- {
- /* null terminate at the suffix */
- *(test + position - 1)= '\0';
- /* insert test */
- *names= malloc(FN_REFLEN);
- strcpy(*names,test);
- names++;
- name_index++;
- }
- else
- die("can not sort files, array is overloaded");
- }
- }
- closedir(parent);
- }
-#else
- {
- struct _finddata_t dir;
- int* handle;
- char test[FN_LEN];
- char mask[FN_REFLEN];
- int position;
-
- /* single test */
- single_test= FALSE;
-
- snprintf(mask,FN_REFLEN,"%s/*.test",test_dir);
-
- if ((handle=_findfirst(mask,&dir)) == -1L)
- {
- die("Unable to open tests directory.");
- }
-
-
- do
- {
- if (!(dir.attrib & _A_SUBDIR))
- {
- strcpy(test, strlwr(dir.name));
-
- /* find the test suffix */
- if ((position= strinstr(test, TEST_SUFFIX)) != 0)
- {
- if (name_index < MAX_COUNT_TESTES)
- {
- /* null terminate at the suffix */
- *(test + position - 1)= '\0';
- /* insert test */
- *names= malloc(FN_REFLEN);
- strcpy(*names,test);
- names++;
- name_index++;
- }
- else
- die("can not sort files, array is overloaded");
- }
- }
- }while (_findnext(handle,&dir) == 0);
-
- _findclose(handle);
- }
-#endif
- qsort( (void *)testes, name_index, sizeof( char * ), compare );
-
- for (index= 0; index < name_index; index++)
- {
- run_test(testes[index]);
- free(testes[index]);
- }
-
- free(testes);
- }
-
- /* stop server */
- mysql_stop();
-
- mlog(DASH);
- mlog("\n");
-
- mlog("Ending Tests...\n");
-
- /* report stats */
- report_stats();
-
- /* close log */
- if (log_fd) fclose(log_fd);
-
- /* keep results up */
-#ifdef __NETWARE__
- pressanykey();
-#endif
- return 0;
-}
-
-
-/*
- Synopsis:
- This function breaks the string into a sequence of tokens. The difference
- between this function and strtok is that it respects the quoted string i.e.
- it skips any delimiter character within the quoted part of the string.
- It return tokens by eliminating quote character. It modifies the input string
- passed. It will work with whitespace delimeter but may not work properly with
- other delimeter. If the delimeter will contain any quote character, then
- function will not tokenize and will return null string.
- e.g. if input string is
- --init-slave="set global max_connections=500" --skip-external-locking
- then the output will two string i.e.
- --init-slave=set global max_connections=500
- --skip-external-locking
-
-Arguments:
- string: input string
- delim: set of delimiter character
-Output:
- return the null terminated token of NULL.
-*/
-char *str_tok(char* dest, char *string, const char *delim)
-{
- char *token;
- char *ptr_end_token= NULL;
- char *ptr_quote= NULL;
- char *ptr_token= NULL;
- int count_quotes= 0;
-
- *dest = '\0';
- if (strchr(delim,'\'') || strchr(delim,'\"'))
- return NULL;
-
- token= (char*)strtok(string, delim);
- if (token)
- {
- /* double quote is found */
- if (strchr(token,'\"'))
- {
- do
- {
- if (count_quotes & 1)
- {
- if (*dest == '\0')
- sprintf(dest,"%s", ptr_token);
- else
- sprintf(dest,"%s %s", dest, ptr_token);
- ptr_token= (char*)strtok(NULL, delim);
- if (!ptr_token)
- break;
- }
- else
- {
- ptr_token= token;
- }
- if (ptr_quote = strchr(ptr_token,'\"'))
- {
- ptr_end_token= ptr_token + strlen(ptr_token);
- do
- {
-#ifndef __WIN__
- bmove(ptr_quote, ptr_quote+1, ptr_end_token - ptr_quote);
-#endif
- count_quotes++;
- } while (ptr_quote != NULL && (ptr_quote = strchr(ptr_quote+1,'\"')));
- }
- /* there are unpair quotes we have to search next quote*/
- } while (count_quotes & 1);
- if (ptr_token != NULL)
- {
- if (*dest == '\0')
- sprintf(dest,"%s", ptr_token);
- else
- sprintf(dest,"%s %s",dest,ptr_token);
- }
- }
- else
- {
- sprintf(dest,"%s",token);
- }
- }
- return token ? dest : NULL;
-}
-
-#ifndef __WIN__
-/*
- Synopsis:
- This function run scripts files on Linux and Netware
-
-Arguments:
- script_name: name of script file
-
-Output:
- nothing
-*/
-
-void run_init_script(const char *script_name)
-{
- arg_list_t al;
- int err;
-
- /* args */
- init_args(&al);
- add_arg(&al, sh_file);
- add_arg(&al, script_name);
-
- /* spawn */
- if ((err= spawn(sh_file, &al, TRUE, NULL, NULL, NULL, NULL)) != 0)
- {
- die("Unable to run script.");
- }
-
- /* free args */
- free_args(&al);
-}
-#endif
diff --git a/mysql-test/ndb/Makefile.am b/mysql-test/ndb/Makefile.am
index 502ccee099e..178e40fb19a 100644
--- a/mysql-test/ndb/Makefile.am
+++ b/mysql-test/ndb/Makefile.am
@@ -14,7 +14,6 @@ SUFFIXES = .sh
@RM@ -f $@ $@-t
@SED@ \
-e 's!@''ndb_port''@!$(ndb_port)!g' \
- -e 's!@''ndb_port_base''@!$(ndb_port_base)!g' \
-e 's!@''ndbbindir''@!$(ndbbindir)!g' \
-e 's!@''ndbtoolsdir''@!$(ndbtoolsdir)!g' \
$< > $@-t
diff --git a/mysql-test/ndb/basic.result b/mysql-test/ndb/basic.result
index 5ebd20a7f83..9d2b18881b9 100644
--- a/mysql-test/ndb/basic.result
+++ b/mysql-test/ndb/basic.result
@@ -26,17 +26,17 @@ CONNECT [<connectstring>] Connect to management server (reconnect i
QUIT Quit management client
<severity> = ALERT | CRITICAL | ERROR | WARNING | INFO | DEBUG
-<category> = STARTUP | SHUTDOWN | STATISTICS | CHECKPOINT | NODERESTART | CONNECTION | INFO | ERROR | GREP | DEBUG | BACKUP
+<category> = STARTUP | SHUTDOWN | STATISTICS | CHECKPOINT | NODERESTART | CONNECTION | INFO | ERROR | CONGESTION | DEBUG | BACKUP
<level> = 0 - 15
<id> = ALL | Any database node id
Connected to Management Server at: localhost:1186
-Node 1: started (Version 4.1.9)
-Node 2: started (Version 4.1.9)
+Node 1: started (Version 5.0.3)
+Node 2: started (Version 5.0.3)
-Node 1: started (Version 4.1.9)
+Node 1: started (Version 5.0.3)
-Node 2: started (Version 4.1.9)
+Node 2: started (Version 5.0.3)
Executing CLUSTERLOG on node 1 OK!
Executing CLUSTERLOG on node 2 OK!
diff --git a/mysql-test/ndb/ndb_config_1_node.ini b/mysql-test/ndb/ndb_config_1_node.ini
new file mode 100644
index 00000000000..68533396930
--- /dev/null
+++ b/mysql-test/ndb/ndb_config_1_node.ini
@@ -0,0 +1,45 @@
+[ndbd default]
+NoOfReplicas= 1
+MaxNoOfConcurrentTransactions= 64
+MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
+DataMemory= CHOOSE_DataMemory
+IndexMemory= CHOOSE_IndexMemory
+Diskless= CHOOSE_Diskless
+TimeBetweenWatchDogCheck= 30000
+DataDir= CHOOSE_FILESYSTEM
+MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
+
+#
+# Increase timeouts to cater for slow test-machines
+# (possibly running several tests in parallell)
+#
+HeartbeatIntervalDbDb= 30000
+HeartbeatIntervalDbApi= 30000
+#TransactionDeadlockDetectionTimeout= 7500
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
+
+[ndb_mgmd]
+HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
+DataDir= CHOOSE_FILESYSTEM #
+PortNumber= CHOOSE_PORT_MGM
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
diff --git a/mysql-test/ndb/ndb_config_2_node.ini b/mysql-test/ndb/ndb_config_2_node.ini
index c831a5c7ffa..55c9c285310 100644
--- a/mysql-test/ndb/ndb_config_2_node.ini
+++ b/mysql-test/ndb/ndb_config_2_node.ini
@@ -1,5 +1,6 @@
[ndbd default]
NoOfReplicas= 2
+MaxNoOfConcurrentTransactions= 64
MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
DataMemory= CHOOSE_DataMemory
IndexMemory= CHOOSE_IndexMemory
@@ -7,6 +8,17 @@ Diskless= CHOOSE_Diskless
TimeBetweenWatchDogCheck= 30000
DataDir= CHOOSE_FILESYSTEM
MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
+
+#
+# Increase timeouts to cater for slow test-machines
+# (possibly running several tests in parallell)
+#
+HeartbeatIntervalDbDb= 30000
+HeartbeatIntervalDbApi= 30000
+#TransactionDeadlockDetectionTimeout= 7500
[ndbd]
HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
@@ -15,6 +27,7 @@ HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
HostName= CHOOSE_HOSTNAME_2 # hostname is a valid network adress
[ndb_mgmd]
+HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
DataDir= CHOOSE_FILESYSTEM #
PortNumber= CHOOSE_PORT_MGM
@@ -25,6 +38,3 @@ PortNumber= CHOOSE_PORT_MGM
[mysqld]
[mysqld]
-
-[tcp default]
-PortNumber= CHOOSE_PORT_TRANSPORTER
diff --git a/mysql-test/ndb/ndb_config_4_node.ini b/mysql-test/ndb/ndb_config_4_node.ini
new file mode 100644
index 00000000000..779432e1660
--- /dev/null
+++ b/mysql-test/ndb/ndb_config_4_node.ini
@@ -0,0 +1,54 @@
+[ndbd default]
+NoOfReplicas= 2
+MaxNoOfConcurrentTransactions= 64
+MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
+DataMemory= CHOOSE_DataMemory
+IndexMemory= CHOOSE_IndexMemory
+Diskless= CHOOSE_Diskless
+TimeBetweenWatchDogCheck= 30000
+DataDir= CHOOSE_FILESYSTEM
+MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
+
+#
+# Increase timeouts to cater for slow test-machines
+# (possibly running several tests in parallell)
+#
+HeartbeatIntervalDbDb= 30000
+HeartbeatIntervalDbApi= 30000
+#TransactionDeadlockDetectionTimeout= 7500
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_2 # hostname is a valid network adress
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_3 # hostname is a valid network adress
+
+[ndbd]
+HostName= CHOOSE_HOSTNAME_4 # hostname is a valid network adress
+
+[ndb_mgmd]
+HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress
+DataDir= CHOOSE_FILESYSTEM #
+PortNumber= CHOOSE_PORT_MGM
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
+
+[mysqld]
diff --git a/mysql-test/ndb/ndbcluster.sh b/mysql-test/ndb/ndbcluster.sh
index 16bb3a9b122..be08781361e 100644
--- a/mysql-test/ndb/ndbcluster.sh
+++ b/mysql-test/ndb/ndbcluster.sh
@@ -1,12 +1,23 @@
#!/bin/sh
# Copyright (C) 2004 MySQL AB
-# For a more info consult the file COPYRIGHT distributed with this file
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# This scripts starts the table handler ndbcluster
# configurable parameters, make sure to change in mysqlcluterd as well
port=@ndb_port@
-port_base=@ndb_port_base@
fsdir=`pwd`
# end configurable parameters
@@ -52,15 +63,21 @@ stop_ndb=
initial_ndb=
status_ndb=
ndb_diskless=0
+ndbd_nodes=2
+relative_config_data_dir=
+opt_core=
ndb_no_ord=512
+ndb_no_attr=2048
ndb_con_op=105000
ndb_dmem=80M
ndb_imem=24M
+VERBOSE=100
NDB_MGM_EXTRA_OPTS=
NDB_MGMD_EXTRA_OPTS=
NDBD_EXTRA_OPTS=
+CHARSETSDIR=
while test $# -gt 0; do
case "$1" in
@@ -77,6 +94,9 @@ while test $# -gt 0; do
--debug*)
flags_ndb="$flags_ndb $1"
;;
+ --ndbd-nodes=*)
+ ndbd_nodes=`echo "$1" | sed -e "s;--ndbd-nodes=;;"`
+ ;;
--status)
status_ndb=1
;;
@@ -92,11 +112,14 @@ while test $# -gt 0; do
--data-dir=*)
fsdir=`echo "$1" | sed -e "s;--data-dir=;;"`
;;
+ --relative-config-data-dir)
+ relative_config_data_dir=1
+ ;;
--port=*)
port=`echo "$1" | sed -e "s;--port=;;"`
;;
--port-base=*)
- port_base=`echo "$1" | sed -e "s;--port-base=;;"`
+ $ECHO "--port-base option depricated. Ignored."
;;
--ndb_mgm-extra-opts=*)
NDB_MGM_EXTRA_OPTS=`echo "$1" | sed -e "s;--ndb_mgm-extra-opts=;;"`
@@ -107,6 +130,15 @@ while test $# -gt 0; do
--ndbd-extra-opts=*)
NDBD_EXTRA_OPTS=`echo "$1" | sed -e "s;--ndbd-extra-opts=;;"`
;;
+ --character-sets-dir=*)
+ CHARSETSDIR=`echo "$1" | sed -e "s;--character-sets-dir=;;"`
+ ;;
+ --core)
+ opt_core="--core"
+ ;;
+ --verbose=*)
+ VERBOSE=`echo "$1" | sed -e "s;--verbose=;;"`
+ ;;
-- ) shift; break ;;
--* ) $ECHO "Unrecognized option: $1"; exit 1 ;;
* ) break ;;
@@ -115,9 +147,10 @@ while test $# -gt 0; do
done
fs_ndb="$fsdir/ndbcluster-$port"
+config_ini=ndb/ndb_config_${ndbd_nodes}_node.ini
NDB_HOME=
-if [ ! -x "$fsdir" ]; then
+if [ ! -d "$fsdir" ]; then
echo "$fsdir missing"
exit 1
fi
@@ -133,11 +166,15 @@ if [ ! -x "$exec_waiter" ]; then
echo "$exec_waiter missing"
exit 1
fi
+if [ ! -f "$config_ini" ]; then
+ echo "$config_ini missing, unsupported number of nodes"
+ exit 1
+fi
-exec_mgmtclient="$exec_mgmtclient --no-defaults $NDB_MGM_EXTRA_OPTS"
-exec_mgmtsrvr="$exec_mgmtsrvr --no-defaults $NDB_MGMD_EXTRA_OPTS"
-exec_ndb="$exec_ndb --no-defaults $NDBD_EXTRA_OPTS"
-exec_waiter="$exec_waiter --no-defaults"
+exec_mgmtclient="$exec_mgmtclient --no-defaults $opt_core $NDB_MGM_EXTRA_OPTS"
+exec_mgmtsrvr="$exec_mgmtsrvr --no-defaults $opt_core $NDB_MGMD_EXTRA_OPTS"
+exec_ndb="$exec_ndb --no-defaults $opt_core $NDBD_EXTRA_OPTS --character-sets-dir=$CHARSETSDIR"
+exec_waiter="$exec_waiter --no-defaults $opt_core"
ndb_host="localhost"
ndb_mgmd_port=$port
@@ -181,19 +218,24 @@ fi
# Start management server as deamon
# Edit file system path and ports in config file
+if [ $relative_config_data_dir ] ; then
+ config_fs_ndb="."
+else
+ config_fs_ndb=$fs_ndb
+fi
if [ $initial_ndb ] ; then
- rm -f $fs_ndb/ndb_* 2>&1 | cat > /dev/null
+ rm -rf $fs_ndb/ndb_* 2>&1 | cat > /dev/null
sed \
+ -e s,"CHOOSE_MaxNoOfAttributes","$ndb_no_attr",g \
-e s,"CHOOSE_MaxNoOfOrderedIndexes","$ndb_no_ord",g \
-e s,"CHOOSE_MaxNoOfConcurrentOperations","$ndb_con_op",g \
-e s,"CHOOSE_DataMemory","$ndb_dmem",g \
-e s,"CHOOSE_IndexMemory","$ndb_imem",g \
-e s,"CHOOSE_Diskless","$ndb_diskless",g \
-e s,"CHOOSE_HOSTNAME_".*,"$ndb_host",g \
- -e s,"CHOOSE_FILESYSTEM","$fs_ndb",g \
+ -e s,"CHOOSE_FILESYSTEM","$config_fs_ndb",g \
-e s,"CHOOSE_PORT_MGM","$ndb_mgmd_port",g \
- -e s,"CHOOSE_PORT_TRANSPORTER","$port_base",g \
- < ndb/ndb_config_2_node.ini \
+ < "$config_ini" \
> "$fs_ndb/config.ini"
fi
@@ -204,46 +246,51 @@ if ( cd "$fs_ndb" ; $exec_mgmtsrvr -f config.ini ) ; then :; else
echo "Unable to start $exec_mgmtsrvr from `pwd`"
exit 1
fi
-if sleep_until_file_created $fs_ndb/ndb_3.pid 120
-then :; else
- exit 1
-fi
-cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
-
-# Start database node
-
-echo "Starting ndbd"
-( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
-if sleep_until_file_created $fs_ndb/ndb_1.pid 120
+if sleep_until_file_created $fs_ndb/ndb_`expr $ndbd_nodes + 1`.pid 120
then :; else
- stop_default_ndbcluster
exit 1
fi
cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
# Start database node
-echo "Starting ndbd"
-( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
-if sleep_until_file_created $fs_ndb/ndb_2.pid 120
-then :; else
- stop_default_ndbcluster
- exit 1
-fi
-cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
+id=1
+while [ $id -le $ndbd_nodes ]
+do
+ if [ `expr $VERBOSE \> 1` = 1 ] ; then
+ echo "Starting ndbd $id($ndbd_nodes)"
+ fi
+ ( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
+ if sleep_until_file_created $fs_ndb/ndb_${id}.pid 120
+ then :; else
+ stop_default_ndbcluster
+ exit 1
+ fi
+ cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
+ id=`expr $id + 1`
+done
# test if Ndb Cluster starts properly
-echo "Waiting for started..."
-if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else
- echo "Ndbcluster startup failed"
+if [ `expr $VERBOSE \> 1` = 1 ] ; then
+ echo "Waiting for NDB data nodes to start..."
+fi
+if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1 ; then :; else
+ if [ `expr $VERBOSE \> 0` = 1 ] ; then
+ echo "Ndbcluster startup failed"
+ fi
stop_default_ndbcluster
exit 1
fi
+if [ `expr $VERBOSE \> 1` = 1 ] ; then
+ echo "Ok"
+fi
cat `find "$fs_ndb" -name 'ndb_*.pid'` > $fs_ndb/$pidfile
-status_ndbcluster
+if [ `expr $VERBOSE \> 2` = 1 ] ; then
+ status_ndbcluster
+fi
}
status_ndbcluster() {
diff --git a/mysql-test/ndb/restart.test b/mysql-test/ndb/restart.test
index 6ea9e919368..4b4584dd739 100644
--- a/mysql-test/ndb/restart.test
+++ b/mysql-test/ndb/restart.test
@@ -8,5 +8,5 @@ sleep 5
all clusterlog connection=8
sleep 1
1 restart
-sleep 5
+sleep 10
clusterlog on all
diff --git a/mysql-test/suppress.purify b/mysql-test/purify.supp
index 58553130c51..58553130c51 100644
--- a/mysql-test/suppress.purify
+++ b/mysql-test/purify.supp
diff --git a/mysql-test/r/alias.result b/mysql-test/r/alias.result
index 587c21e9129..6f0315da234 100644
--- a/mysql-test/r/alias.result
+++ b/mysql-test/r/alias.result
@@ -27,7 +27,7 @@ hdl_name varchar(30) default NULL,
prov_hdl_nr int(11) NOT NULL default '0',
auto_wirknetz varchar(50) default NULL,
auto_billing varchar(50) default NULL,
-touch timestamp(14) NOT NULL,
+touch timestamp NOT NULL,
kategorie varchar(50) default NULL,
kundentyp varchar(20) NOT NULL default '',
sammel_rech_msisdn varchar(30) NOT NULL default '',
@@ -58,6 +58,8 @@ INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05
SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
Kundentyp kategorie
Privat (Private Nutzung) Mobilfunk
+Warnings:
+Warning 1052 Column 'kundentyp' in group statement is ambiguous
drop table t1;
CREATE TABLE t1 (
AUFNR varchar(12) NOT NULL default '',
diff --git a/mysql-test/r/alter_table-big.result b/mysql-test/r/alter_table-big.result
new file mode 100644
index 00000000000..873978c60de
--- /dev/null
+++ b/mysql-test/r/alter_table-big.result
@@ -0,0 +1,18 @@
+drop table if exists t1, t2;
+create table t1 (n1 int, n2 int, n3 int,
+key (n1, n2, n3),
+key (n2, n3, n1),
+key (n3, n1, n2));
+create table t2 (i int);
+alter table t1 disable keys;
+reset master;
+alter table t1 enable keys;;
+insert into t2 values (1);
+insert into t1 values (1, 1, 1);
+show binlog events in 'master-bin.000001' from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # use `test`; insert into t2 values (1)
+master-bin.000001 # Query 1 # use `test`; alter table t1 enable keys
+master-bin.000001 # Query 1 # use `test`; insert into t1 values (1, 1, 1)
+drop tables t1, t2;
+End of 5.0 tests
diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result
index 8957e1ee7a1..95c652055ec 100644
--- a/mysql-test/r/alter_table.result
+++ b/mysql-test/r/alter_table.result
@@ -52,9 +52,9 @@ KEY NAME (NAME));
ALTER TABLE t1 CHANGE NAME NAME CHAR(80) not null;
SHOW FULL COLUMNS FROM t1;
Field Type Collation Null Key Default Extra Privileges Comment
-GROUP_ID int(10) unsigned NULL PRI 0 #
-LANG_ID smallint(5) unsigned NULL PRI 0 #
-NAME char(80) latin1_swedish_ci MUL #
+GROUP_ID int(10) unsigned NULL NO PRI 0 #
+LANG_ID smallint(5) unsigned NULL NO PRI 0 #
+NAME char(80) latin1_swedish_ci NO MUL NULL #
DROP TABLE t1;
create table t1 (n int);
insert into t1 values(9),(3),(12),(10);
@@ -179,7 +179,7 @@ alter table t1 rename t2;
alter table t2 rename t1, add c char(10) comment "no comment";
show columns from t1;
Field Type Null Key Default Extra
-i int(10) unsigned PRI NULL auto_increment
+i int(10) unsigned NO PRI NULL auto_increment
c char(10) YES NULL
drop table t1;
create table t1 (a int, b int);
@@ -314,7 +314,7 @@ INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
SHOW INDEX FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 3 NULL NULL BTREE
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
ALTER TABLE t1 ENABLE KEYS;
UNLOCK TABLES;
CHECK TABLES t1;
@@ -338,7 +338,7 @@ INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
SHOW INDEX FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
ALTER TABLE t1 ENABLE KEYS;
SHOW INDEX FROM t1;
@@ -389,7 +389,7 @@ alter table t1 modify a varchar(10);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` varchar(10) NOT NULL default '',
+ `a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`)
flush tables;
@@ -397,7 +397,7 @@ alter table t1 modify a varchar(10) not null;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` varchar(10) NOT NULL default '',
+ `a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`)
drop table if exists t1, t2;
@@ -405,17 +405,26 @@ create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, p
insert into t1 (a) values(1);
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 MyISAM 9 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
+t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
alter table t1 modify a int;
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 MyISAM 9 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
+t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
drop table t1;
create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
insert into t1 (a) values(1);
+Warnings:
+Warning 1364 Field 'b' doesn't have a default value
+Warning 1364 Field 'c' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'e' doesn't have a default value
+Warning 1364 Field 'f' doesn't have a default value
+Warning 1364 Field 'g' doesn't have a default value
+Warning 1364 Field 'h' doesn't have a default value
+Warning 1364 Field 'i' doesn't have a default value
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 MyISAM 9 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
+t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
drop table t1;
set names koi8r;
create table t1 (a char(10) character set koi8r);
@@ -427,7 +436,7 @@ alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
a hex(a)
ÔÅÓÔ F2E5F1F2
-alter table t1 change a a binary(10);
+alter table t1 change a a binary(4);
select a,hex(a) from t1;
a hex(a)
òåñò F2E5F1F2
@@ -501,7 +510,7 @@ ALTER TABLE t1 DROP PRIMARY KEY;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` int(11) default NULL,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
@@ -514,6 +523,10 @@ alter table t1 drop key no_such_key;
ERROR 42000: Can't DROP 'no_such_key'; check that column/key exists
alter table t1 drop key a;
drop table t1;
+CREATE TABLE T12207(a int) ENGINE=MYISAM;
+ALTER TABLE T12207 DISCARD TABLESPACE;
+ERROR HY000: Table storage engine for 'T12207' doesn't have this option
+DROP TABLE T12207;
create table t1 (a text) character set koi8r;
insert into t1 values (_koi8r'ÔÅÓÔ');
select hex(a) from t1;
@@ -649,16 +662,16 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par
t1 0 a 1 a A NULL NULL NULL YES BTREE
t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
drop table t1;
-create database mysqltest1;
+create database mysqltest;
create table t1 (c1 int);
-alter table t1 rename mysqltest1.t1;
+alter table t1 rename mysqltest.t1;
drop table t1;
ERROR 42S02: Unknown table 't1'
-alter table mysqltest1.t1 rename t1;
+alter table mysqltest.t1 rename t1;
drop table t1;
create table t1 (c1 int);
-use mysqltest1;
-drop database mysqltest1;
+use mysqltest;
+drop database mysqltest;
alter table test.t1 rename t1;
ERROR 3D000: No database selected
alter table test.t1 rename test.t1;
@@ -803,8 +816,102 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
alter table table_24562 order by no_such_col;
ERROR 42S22: Unknown column 'no_such_col' in 'order clause'
drop table table_24562;
-CREATE TABLE t1 (c1 CHAR(255));
-INSERT INTO t1 VALUES (REPEAT("x", 255)), (REPEAT("x", 255));
-ALTER TABLE t1 ADD UNIQUE (c1);
-ERROR 23000: Duplicate entry 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' for key 1
+create table t1 (mycol int(10) not null);
+alter table t1 alter column mycol set default 0;
+desc t1;
+Field Type Null Key Default Extra
+mycol int(10) NO 0
+drop table t1;
+create table t1 (t varchar(255) default null, key t (t(80)))
+engine=myisam default charset=latin1;
+alter table t1 change t t text;
+drop table t1;
+CREATE TABLE t1 (a varchar(500));
+ALTER TABLE t1 ADD b GEOMETRY NOT NULL, ADD SPATIAL INDEX(b);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(500) default NULL,
+ `b` geometry NOT NULL,
+ SPATIAL KEY `b` (`b`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+ALTER TABLE t1 ADD KEY(b(50));
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(500) default NULL,
+ `b` geometry NOT NULL,
+ SPATIAL KEY `b` (`b`),
+ KEY `b_2` (`b`(50))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+ALTER TABLE t1 ADD c POINT;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(500) default NULL,
+ `b` geometry NOT NULL,
+ `c` point default NULL,
+ SPATIAL KEY `b` (`b`),
+ KEY `b_2` (`b`(50))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+CREATE TABLE t2 (a INT, KEY (a(20)));
+ERROR HY000: Incorrect sub part key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique sub keys
+ALTER TABLE t1 ADD d INT;
+ALTER TABLE t1 ADD KEY (d(20));
+ERROR HY000: Incorrect sub part key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique sub keys
DROP TABLE t1;
+create table t1(id int(8) primary key auto_increment) engine=heap;
+insert into t1 values (null);
+insert into t1 values (null);
+select * from t1;
+id
+1
+2
+alter table t1 auto_increment = 50;
+alter table t1 engine = myisam;
+insert into t1 values (null);
+select * from t1;
+id
+1
+2
+50
+alter table t1 engine = heap;
+insert into t1 values (null);
+select * from t1;
+id
+1
+2
+50
+51
+drop table t1;
+set @orig_sql_mode = @@sql_mode;
+set sql_mode="no_zero_date";
+create table t1(f1 int);
+alter table t1 add column f2 datetime not null, add column f21 date not null;
+insert into t1 values(1,'2000-01-01','2000-01-01');
+alter table t1 add column f3 datetime not null;
+ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'f3' at row 1
+alter table t1 add column f3 date not null;
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'f3' at row 1
+alter table t1 add column f4 datetime not null default '2002-02-02',
+add column f41 date not null;
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'f41' at row 1
+alter table t1 add column f4 datetime not null default '2002-02-02',
+add column f41 date not null default '2002-02-02';
+select * from t1;
+f1 f2 f21 f4 f41
+1 2000-01-01 00:00:00 2000-01-01 2002-02-02 00:00:00 2002-02-02
+drop table t1;
+set sql_mode= @orig_sql_mode;
+create table t1 (c char(10) default "Two");
+lock table t1 write;
+insert into t1 values ();
+alter table t1 modify c char(10) default "Three";
+unlock tables;
+select * from t1;
+c
+Two
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
diff --git a/mysql-test/r/analyse.result b/mysql-test/r/analyse.result
index fd1b0a1bb86..49722d5b0ab 100644
--- a/mysql-test/r/analyse.result
+++ b/mysql-test/r/analyse.result
@@ -36,16 +36,16 @@ create table t2 select * from t1 where 0=1 procedure analyse();
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `Field_name` binary(255) NOT NULL default '',
- `Min_value` binary(255) default NULL,
- `Max_value` binary(255) default NULL,
+ `Field_name` varbinary(255) NOT NULL default '',
+ `Min_value` varbinary(255) default NULL,
+ `Max_value` varbinary(255) default NULL,
`Min_length` bigint(11) NOT NULL default '0',
`Max_length` bigint(11) NOT NULL default '0',
`Empties_or_zeros` bigint(11) NOT NULL default '0',
`Nulls` bigint(11) NOT NULL default '0',
- `Avg_value_or_avg_length` binary(255) NOT NULL default '',
- `Std` binary(255) default NULL,
- `Optimal_fieldtype` binary(64) NOT NULL default ''
+ `Avg_value_or_avg_length` varbinary(255) NOT NULL default '',
+ `Std` varbinary(255) default NULL,
+ `Optimal_fieldtype` varbinary(64) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1 where 0=1 procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
@@ -55,16 +55,16 @@ create table t2 select * from t1 where 0=1 procedure analyse();
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `Field_name` binary(255) NOT NULL default '',
- `Min_value` binary(255) default NULL,
- `Max_value` binary(255) default NULL,
+ `Field_name` varbinary(255) NOT NULL default '',
+ `Min_value` varbinary(255) default NULL,
+ `Max_value` varbinary(255) default NULL,
`Min_length` bigint(11) NOT NULL default '0',
`Max_length` bigint(11) NOT NULL default '0',
`Empties_or_zeros` bigint(11) NOT NULL default '0',
`Nulls` bigint(11) NOT NULL default '0',
- `Avg_value_or_avg_length` binary(255) NOT NULL default '',
- `Std` binary(255) default NULL,
- `Optimal_fieldtype` binary(64) NOT NULL default ''
+ `Avg_value_or_avg_length` varbinary(255) NOT NULL default '',
+ `Std` varbinary(255) default NULL,
+ `Optimal_fieldtype` varbinary(64) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t2;
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
@@ -78,16 +78,16 @@ create table t2 select * from t1 where 0=1 procedure analyse();
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `Field_name` binary(255) NOT NULL default '',
- `Min_value` binary(255) default NULL,
- `Max_value` binary(255) default NULL,
+ `Field_name` varbinary(255) NOT NULL default '',
+ `Min_value` varbinary(255) default NULL,
+ `Max_value` varbinary(255) default NULL,
`Min_length` bigint(11) NOT NULL default '0',
`Max_length` bigint(11) NOT NULL default '0',
`Empties_or_zeros` bigint(11) NOT NULL default '0',
`Nulls` bigint(11) NOT NULL default '0',
- `Avg_value_or_avg_length` binary(255) NOT NULL default '',
- `Std` binary(255) default NULL,
- `Optimal_fieldtype` binary(64) NOT NULL default ''
+ `Avg_value_or_avg_length` varbinary(255) NOT NULL default '',
+ `Std` varbinary(255) default NULL,
+ `Optimal_fieldtype` varbinary(64) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t2;
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
@@ -102,6 +102,13 @@ select * from t1 procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
test.t1.v " \\ 1 19 0 0 3.7619 NULL ENUM('"','""','"c','\'\0\\"','\'','\'\'','\'b','a\0\0\0b','a\0','a""""b','a\'\'\'\'b','abc','abc\'def\\hij"klm\0opq','a\\\\\\\\b','b\'','c"','d\\','The\ZEnd','\\','\\d','\\\\') NOT NULL
drop table t1;
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+insert into t1 values(2.2);
+select * from t1 procedure analyse();
+Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
+test.t1.df 1.1 2.2 13 13 0 0 1.65000 0.55000 ENUM('1.1','2.2') NOT NULL
+drop table t1;
create table t1 (d double);
insert into t1 values (100000);
select * from t1 procedure analyse (1,1);
@@ -131,8 +138,8 @@ insert into t2 values (1, 'USA'),(2,'India'), (3,'Finland');
select product, sum(profit),avg(profit) from t1 group by product with rollup procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
test.t1.product Computer TV 2 8 0 0 4.2500 NULL ENUM('Computer','Phone','TV') NOT NULL
-sum(profit) 10 6900 2 4 0 0 1946 2868 ENUM('10','275','600','6900') NOT NULL
-avg(profit) 10.0000 1380.0000 7 9 0 0 394.6875 570.2003 ENUM('10.0000','68.7500','120.0000','1380.0000') NOT NULL
+sum(profit) 10 6900 11 11 0 0 1946.2500 2867.6719 ENUM('10','275','600','6900') NOT NULL
+avg(profit) 10.0000 1380.0000 16 16 0 0 394.68750000 570.20033144 ENUM('10.0000','68.7500','120.0000','1380.0000') NOT NULL
drop table t1,t2;
create table t1 (f1 double(10,5), f2 char(10), f3 double(10,5));
insert into t1 values (5.999, "5.9999", 5.99999), (9.555, "9.5555", 9.55555);
diff --git a/mysql-test/r/analyze.result b/mysql-test/r/analyze.result
index bded22c4859..7b476c3cca2 100644
--- a/mysql-test/r/analyze.result
+++ b/mysql-test/r/analyze.result
@@ -30,6 +30,15 @@ check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
+create table t1 (a mediumtext, fulltext key key1(a)) charset utf8 collate utf8_general_ci engine myisam;
+insert into t1 values ('hello');
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+drop table t1;
CREATE TABLE t1 (a int);
prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()";
execute stmt1;
@@ -37,6 +46,7 @@ Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_
execute stmt1;
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
deallocate prepare stmt1;
+drop table t1;
create temporary table t1(a int, index(a));
insert into t1 values('1'),('2'),('3'),('4'),('5');
analyze table t1;
diff --git a/mysql-test/r/ansi.result b/mysql-test/r/ansi.result
index 4eda9654efc..cc4b6b5fa65 100644
--- a/mysql-test/r/ansi.result
+++ b/mysql-test/r/ansi.result
@@ -2,7 +2,7 @@ drop table if exists t1;
set sql_mode="MySQL40";
select @@sql_mode;
@@sql_mode
-MYSQL40
+MYSQL40,HIGH_NOT_PRECEDENCE
set @@sql_mode="ANSI";
select @@sql_mode;
@@sql_mode
diff --git a/mysql-test/r/archive-big.result b/mysql-test/r/archive-big.result
new file mode 100644
index 00000000000..7dbdb490017
--- /dev/null
+++ b/mysql-test/r/archive-big.result
@@ -0,0 +1,19 @@
+CREATE TABLE t1(a BLOB) ENGINE=ARCHIVE;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/r/archive.result b/mysql-test/r/archive.result
index 2626b439059..a0b13b14b17 100644
--- a/mysql-test/r/archive.result
+++ b/mysql-test/r/archive.result
@@ -184,6 +184,20 @@ fld1 fld3
250503 heaving
250504 population
250505 bomb
+create table t3 engine=archive select * from t2;
+select * from t3 where fld3='bonfire';
+auto fld1 companynr fld3 fld4 fld5 fld6
+1191 068504 00 bonfire corresponds positively
+select count(*) from t3;
+count(*)
+1199
+rename table t3 to t4;
+select * from t4 where fld3='bonfire';
+auto fld1 companynr fld3 fld4 fld5 fld6
+1191 068504 00 bonfire corresponds positively
+select count(*) from t4;
+count(*)
+1199
INSERT INTO t2 VALUES (1,000001,00,'Omaha','teethe','neat','');
INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
@@ -2601,20 +2615,3644 @@ auto fld1 companynr fld3 fld4 fld5 fld6
2 011401 37 breaking dreaded Steinberg W
3 011402 37 Romans scholastics jarring
4 011403 37 intercepted audiology tinily
-create table t3 engine=archive select * from t2;
-select * from t3 where fld3='bonfire';
+INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
+INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
+INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
+OPTIMIZE TABLE t2 EXTENDED;
+Table Op Msg_type Msg_text
+test.t2 optimize status OK
+SELECT * FROM t2;
auto fld1 companynr fld3 fld4 fld5 fld6
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+5 011501 37 bewilderingly wallet balled
+6 011701 37 astound parters persist W
+7 011702 37 admonishing eschew attainments
+8 011703 37 sumac quitter fanatic
+9 012001 37 flanking neat measures FAS
+10 012003 37 combed Steinberg rightfulness
+11 012004 37 subjective jarring capably
+12 012005 37 scatterbrain tinily impulsive
+13 012301 37 Eulerian balled starlet
+14 012302 36 dubbed persist terminators
+15 012303 37 Kane attainments untying
+16 012304 37 overlay fanatic announces FAS
+17 012305 37 perturb measures featherweight FAS
+18 012306 37 goblins rightfulness pessimist FAS
+19 012501 37 annihilates capably daughter
+20 012602 37 Wotan impulsive decliner FAS
+21 012603 37 snatching starlet lawgiver
+22 012604 37 concludes terminators stated
+23 012605 37 laterally untying readable
+24 012606 37 yelped announces attrition
+25 012701 37 grazing featherweight cascade FAS
+26 012702 37 Baird pessimist motors FAS
+27 012703 37 celery daughter interrogate
+28 012704 37 misunderstander decliner pests W
+29 013601 37 handgun lawgiver stairway
+30 013602 37 foldout stated dopers FAS
+31 013603 37 mystic readable testicle W
+32 013604 37 succumbed attrition Parsifal W
+33 013605 37 Nabisco cascade leavings
+34 013606 37 fingerings motors postulation W
+35 013607 37 aging interrogate squeaking
+36 013608 37 afield pests contrasted
+37 013609 37 ammonium stairway leftover
+38 013610 37 boat dopers whiteners
+39 013801 37 intelligibility testicle erases W
+40 013802 37 Augustine Parsifal Punjab W
+41 013803 37 teethe leavings Merritt
+42 013804 37 dreaded postulation Quixotism
+43 013901 37 scholastics squeaking sweetish FAS
+44 016001 37 audiology contrasted dogging FAS
+45 016201 37 wallet leftover scornfully FAS
+46 016202 37 parters whiteners bellow
+47 016301 37 eschew erases bills
+48 016302 37 quitter Punjab cupboard FAS
+49 016303 37 neat Merritt sureties FAS
+50 016304 37 Steinberg Quixotism puddings
+51 018001 37 jarring sweetish tapestry
+52 018002 37 tinily dogging fetters
+53 018003 37 balled scornfully bivalves
+54 018004 37 persist bellow incurring
+55 018005 37 attainments bills Adolph
+56 018007 37 fanatic cupboard pithed
+57 018008 37 measures sureties emergency
+58 018009 37 rightfulness puddings Miles
+59 018010 37 capably tapestry trimmings
+60 018012 37 impulsive fetters tragedies W
+61 018013 37 starlet bivalves skulking W
+62 018014 37 terminators incurring flint
+63 018015 37 untying Adolph flopping W
+64 018016 37 announces pithed relaxing FAS
+65 018017 37 featherweight emergency offload FAS
+66 018018 37 pessimist Miles suites W
+67 018019 37 daughter trimmings lists FAS
+68 018020 37 decliner tragedies animized FAS
+69 018021 37 lawgiver skulking multilayer W
+70 018022 37 stated flint standardizes FAS
+71 018023 37 readable flopping Judas
+72 018024 37 attrition relaxing vacuuming W
+73 018025 37 cascade offload dentally W
+74 018026 37 motors suites humanness W
+75 018027 37 interrogate lists inch W
+76 018028 37 pests animized Weissmuller W
+77 018029 37 stairway multilayer irresponsibly W
+78 018030 37 dopers standardizes luckily FAS
+79 018032 37 testicle Judas culled W
+80 018033 37 Parsifal vacuuming medical FAS
+81 018034 37 leavings dentally bloodbath FAS
+82 018035 37 postulation humanness subschema W
+83 018036 37 squeaking inch animals W
+84 018037 37 contrasted Weissmuller Micronesia
+85 018038 37 leftover irresponsibly repetitions
+86 018039 37 whiteners luckily Antares
+87 018040 37 erases culled ventilate W
+88 018041 37 Punjab medical pityingly
+89 018042 37 Merritt bloodbath interdependent
+90 018043 37 Quixotism subschema Graves FAS
+91 018044 37 sweetish animals neonatal
+92 018045 37 dogging Micronesia scribbled FAS
+93 018046 37 scornfully repetitions chafe W
+94 018048 37 bellow Antares honoring
+95 018049 37 bills ventilate realtor
+96 018050 37 cupboard pityingly elite
+97 018051 37 sureties interdependent funereal
+98 018052 37 puddings Graves abrogating
+99 018053 50 tapestry neonatal sorters
+100 018054 37 fetters scribbled Conley
+101 018055 37 bivalves chafe lectured
+102 018056 37 incurring honoring Abraham
+103 018057 37 Adolph realtor Hawaii W
+104 018058 37 pithed elite cage
+105 018059 36 emergency funereal hushes
+106 018060 37 Miles abrogating Simla
+107 018061 37 trimmings sorters reporters
+108 018101 37 tragedies Conley Dutchman FAS
+109 018102 37 skulking lectured descendants FAS
+110 018103 37 flint Abraham groupings FAS
+111 018104 37 flopping Hawaii dissociate
+112 018201 37 relaxing cage coexist W
+113 018202 37 offload hushes Beebe
+114 018402 37 suites Simla Taoism
+115 018403 37 lists reporters Connally
+116 018404 37 animized Dutchman fetched FAS
+117 018405 37 multilayer descendants checkpoints FAS
+118 018406 37 standardizes groupings rusting
+119 018409 37 Judas dissociate galling
+120 018601 37 vacuuming coexist obliterates
+121 018602 37 dentally Beebe traitor
+122 018603 37 humanness Taoism resumes FAS
+123 018801 37 inch Connally analyzable FAS
+124 018802 37 Weissmuller fetched terminator FAS
+125 018803 37 irresponsibly checkpoints gritty FAS
+126 018804 37 luckily rusting firearm W
+127 018805 37 culled galling minima
+128 018806 37 medical obliterates Selfridge
+129 018807 37 bloodbath traitor disable
+130 018808 37 subschema resumes witchcraft W
+131 018809 37 animals analyzable betroth W
+132 018810 37 Micronesia terminator Manhattanize
+133 018811 37 repetitions gritty imprint
+134 018812 37 Antares firearm peeked
+135 019101 37 ventilate minima swelling
+136 019102 37 pityingly Selfridge interrelationships W
+137 019103 37 interdependent disable riser
+138 019201 37 Graves witchcraft Gandhian W
+139 030501 37 neonatal betroth peacock A
+140 030502 50 scribbled Manhattanize bee A
+141 030503 37 chafe imprint kanji
+142 030504 37 honoring peeked dental
+143 031901 37 realtor swelling scarf FAS
+144 036001 37 elite interrelationships chasm A
+145 036002 37 funereal riser insolence A
+146 036004 37 abrogating Gandhian syndicate
+147 036005 37 sorters peacock alike
+148 038001 37 Conley bee imperial A
+149 038002 37 lectured kanji convulsion A
+150 038003 37 Abraham dental railway A
+151 038004 37 Hawaii scarf validate A
+152 038005 37 cage chasm normalizes A
+153 038006 37 hushes insolence comprehensive
+154 038007 37 Simla syndicate chewing
+155 038008 37 reporters alike denizen
+156 038009 37 Dutchman imperial schemer
+157 038010 37 descendants convulsion chronicle
+158 038011 37 groupings railway Kline
+159 038012 37 dissociate validate Anatole
+160 038013 37 coexist normalizes partridges
+161 038014 37 Beebe comprehensive brunch
+162 038015 37 Taoism chewing recruited
+163 038016 37 Connally denizen dimensions W
+164 038017 37 fetched schemer Chicana W
+165 038018 37 checkpoints chronicle announced
+166 038101 37 rusting Kline praised FAS
+167 038102 37 galling Anatole employing
+168 038103 37 obliterates partridges linear
+169 038104 37 traitor brunch quagmire
+170 038201 37 resumes recruited western A
+171 038202 37 analyzable dimensions relishing
+172 038203 37 terminator Chicana serving A
+173 038204 37 gritty announced scheduling
+174 038205 37 firearm praised lore
+175 038206 37 minima employing eventful
+176 038208 37 Selfridge linear arteriole A
+177 042801 37 disable quagmire disentangle
+178 042802 37 witchcraft western cured A
+179 046101 37 betroth relishing Fenton W
+180 048001 37 Manhattanize serving avoidable A
+181 048002 37 imprint scheduling drains A
+182 048003 37 peeked lore detectably FAS
+183 048004 37 swelling eventful husky
+184 048005 37 interrelationships arteriole impelling
+185 048006 37 riser disentangle undoes
+186 048007 37 Gandhian cured evened
+187 048008 37 peacock Fenton squeezes
+188 048101 37 bee avoidable destroyer FAS
+189 048102 37 kanji drains rudeness
+190 048201 37 dental detectably beaner FAS
+191 048202 37 scarf husky boorish
+192 048203 37 chasm impelling Everhart
+193 048204 37 insolence undoes encompass A
+194 048205 37 syndicate evened mushrooms
+195 048301 37 alike squeezes Alison A
+196 048302 37 imperial destroyer externally FAS
+197 048303 37 convulsion rudeness pellagra
+198 048304 37 railway beaner cult
+199 048305 37 validate boorish creek A
+200 048401 37 normalizes Everhart Huffman
+201 048402 37 comprehensive encompass Majorca FAS
+202 048403 37 chewing mushrooms governing A
+203 048404 37 denizen Alison gadfly FAS
+204 048405 37 schemer externally reassigned FAS
+205 048406 37 chronicle pellagra intentness W
+206 048407 37 Kline cult craziness
+207 048408 37 Anatole creek psychic
+208 048409 37 partridges Huffman squabbled
+209 048410 37 brunch Majorca burlesque
+210 048411 37 recruited governing capped
+211 048412 37 dimensions gadfly extracted A
+212 048413 37 Chicana reassigned DiMaggio
+213 048601 37 announced intentness exclamation FAS
+214 048602 37 praised craziness subdirectory
+215 048603 37 employing psychic fangs
+216 048604 37 linear squabbled buyer A
+217 048801 37 quagmire burlesque pithing A
+218 050901 37 western capped transistorizing A
+219 051201 37 relishing extracted nonbiodegradable
+220 056002 37 serving DiMaggio dislocate
+221 056003 37 scheduling exclamation monochromatic FAS
+222 056004 37 lore subdirectory batting
+223 056102 37 eventful fangs postcondition A
+224 056203 37 arteriole buyer catalog FAS
+225 056204 37 disentangle pithing Remus
+226 058003 37 cured transistorizing devices A
+227 058004 37 Fenton nonbiodegradable bike A
+228 058005 37 avoidable dislocate qualify
+229 058006 37 drains monochromatic detained
+230 058007 37 detectably batting commended
+231 058101 37 husky postcondition civilize
+232 058102 37 impelling catalog Elmhurst
+233 058103 37 undoes Remus anesthetizing
+234 058105 37 evened devices deaf
+235 058111 37 squeezes bike Brigham
+236 058112 37 destroyer qualify title
+237 058113 37 rudeness detained coarse
+238 058114 37 beaner commended combinations
+239 058115 37 boorish civilize grayness
+240 058116 37 Everhart Elmhurst innumerable FAS
+241 058117 37 encompass anesthetizing Caroline A
+242 058118 37 mushrooms deaf fatty FAS
+243 058119 37 Alison Brigham eastbound
+244 058120 37 externally title inexperienced
+245 058121 37 pellagra coarse hoarder A
+246 058122 37 cult combinations scotch W
+247 058123 37 creek grayness passport A
+248 058124 37 Huffman innumerable strategic FAS
+249 058125 37 Majorca Caroline gated
+250 058126 37 governing fatty flog
+251 058127 37 gadfly eastbound Pipestone
+252 058128 37 reassigned inexperienced Dar
+253 058201 37 intentness hoarder Corcoran
+254 058202 37 craziness scotch flyers A
+255 058303 37 psychic passport competitions W
+256 058304 37 squabbled strategic suppliers FAS
+257 058602 37 burlesque gated skips
+258 058603 37 capped flog institutes
+259 058604 37 extracted Pipestone troop A
+260 058605 37 DiMaggio Dar connective W
+261 058606 37 exclamation Corcoran denies
+262 058607 37 subdirectory flyers polka
+263 060401 36 fangs competitions observations FAS
+264 061701 36 buyer suppliers askers
+265 066201 36 pithing skips homeless FAS
+266 066501 36 transistorizing institutes Anna
+267 068001 36 nonbiodegradable troop subdirectories W
+268 068002 36 dislocate connective decaying FAS
+269 068005 36 monochromatic denies outwitting W
+270 068006 36 batting polka Harpy W
+271 068007 36 postcondition observations crazed
+272 068008 36 catalog askers suffocate
+273 068009 36 Remus homeless provers FAS
+274 068010 36 devices Anna technically
+275 068011 36 bike subdirectories Franklinizations
+276 068202 36 qualify decaying considered
+277 068302 36 detained outwitting tinnily
+278 068303 36 commended Harpy uninterruptedly
+279 068401 36 civilize crazed whistled A
+280 068501 36 Elmhurst suffocate automate
+281 068502 36 anesthetizing provers gutting W
+282 068503 36 deaf technically surreptitious
+283 068602 36 Brigham Franklinizations Choctaw
+284 068603 36 title considered cooks
+285 068701 36 coarse tinnily millivolt FAS
+286 068702 36 combinations uninterruptedly counterpoise
+287 068703 36 grayness whistled Gothicism
+288 076001 36 innumerable automate feminine
+289 076002 36 Caroline gutting metaphysically W
+290 076101 36 fatty surreptitious sanding A
+291 076102 36 eastbound Choctaw contributorily
+292 076103 36 inexperienced cooks receivers FAS
+293 076302 36 hoarder millivolt adjourn
+294 076303 36 scotch counterpoise straggled A
+295 076304 36 passport Gothicism druggists
+296 076305 36 strategic feminine thanking FAS
+297 076306 36 gated metaphysically ostrich
+298 076307 36 flog sanding hopelessness FAS
+299 076402 36 Pipestone contributorily Eurydice
+300 076501 36 Dar receivers excitation W
+301 076502 36 Corcoran adjourn presumes FAS
+302 076701 36 flyers straggled imaginable FAS
+303 078001 36 competitions druggists concoct W
+304 078002 36 suppliers thanking peering W
+305 078003 36 skips ostrich Phelps FAS
+306 078004 36 institutes hopelessness ferociousness FAS
+307 078005 36 troop Eurydice sentences
+308 078006 36 connective excitation unlocks
+309 078007 36 denies presumes engrossing W
+310 078008 36 polka imaginable Ruth
+311 078101 36 observations concoct tying
+312 078103 36 askers peering exclaimers
+313 078104 36 homeless Phelps synergy
+314 078105 36 Anna ferociousness Huey W
+315 082101 36 subdirectories sentences merging
+316 083401 36 decaying unlocks judges A
+317 084001 36 outwitting engrossing Shylock W
+318 084002 36 Harpy Ruth Miltonism
+319 086001 36 crazed tying hen W
+320 086102 36 suffocate exclaimers honeybee FAS
+321 086201 36 provers synergy towers
+322 088001 36 technically Huey dilutes W
+323 088002 36 Franklinizations merging numerals FAS
+324 088003 36 considered judges democracy FAS
+325 088004 36 tinnily Shylock Ibero-
+326 088101 36 uninterruptedly Miltonism invalids
+327 088102 36 whistled hen behavior
+328 088103 36 automate honeybee accruing
+329 088104 36 gutting towers relics A
+330 088105 36 surreptitious dilutes rackets
+331 088106 36 Choctaw numerals Fischbein W
+332 088201 36 cooks democracy phony W
+333 088203 36 millivolt Ibero- cross FAS
+334 088204 36 counterpoise invalids cleanup
+335 088302 37 Gothicism behavior conspirator
+336 088303 37 feminine accruing label FAS
+337 088305 37 metaphysically relics university
+338 088402 37 sanding rackets cleansed FAS
+339 088501 36 contributorily Fischbein ballgown
+340 088502 36 receivers phony starlet
+341 088503 36 adjourn cross aqueous
+342 098001 58 straggled cleanup portrayal A
+343 098002 58 druggists conspirator despising W
+344 098003 58 thanking label distort W
+345 098004 58 ostrich university palmed
+346 098005 58 hopelessness cleansed faced
+347 098006 58 Eurydice ballgown silverware
+348 141903 29 excitation starlet assessor
+349 098008 58 presumes aqueous spiders
+350 098009 58 imaginable portrayal artificially
+351 098010 58 concoct despising reminiscence
+352 098011 58 peering distort Mexican
+353 098012 58 Phelps palmed obnoxious
+354 098013 58 ferociousness faced fragile
+355 098014 58 sentences silverware apprehensible
+356 098015 58 unlocks assessor births
+357 098016 58 engrossing spiders garages
+358 098017 58 Ruth artificially panty
+359 098018 58 tying reminiscence anteater
+360 098019 58 exclaimers Mexican displacement A
+361 098020 58 synergy obnoxious drovers A
+362 098021 58 Huey fragile patenting A
+363 098022 58 merging apprehensible far A
+364 098023 58 judges births shrieks
+365 098024 58 Shylock garages aligning W
+366 098025 37 Miltonism panty pragmatism
+367 106001 36 hen anteater fevers W
+368 108001 36 honeybee displacement reexamines A
+369 108002 36 towers drovers occupancies
+370 108003 36 dilutes patenting sweats FAS
+371 108004 36 numerals far modulators
+372 108005 36 democracy shrieks demand W
+373 108007 36 Ibero- aligning Madeira
+374 108008 36 invalids pragmatism Viennese W
+375 108009 36 behavior fevers chillier W
+376 108010 36 accruing reexamines wildcats FAS
+377 108011 36 relics occupancies gentle
+378 108012 36 rackets sweats Angles W
+379 108101 36 Fischbein modulators accuracies
+380 108102 36 phony demand toggle
+381 108103 36 cross Madeira Mendelssohn W
+382 108111 50 cleanup Viennese behaviorally
+383 108105 36 conspirator chillier Rochford
+384 108106 36 label wildcats mirror W
+385 108107 36 university gentle Modula
+386 108108 50 cleansed Angles clobbering
+387 108109 36 ballgown accuracies chronography
+388 108110 36 starlet toggle Eskimoizeds
+389 108201 36 aqueous Mendelssohn British W
+390 108202 36 portrayal behaviorally pitfalls
+391 108203 36 despising Rochford verify W
+392 108204 36 distort mirror scatter FAS
+393 108205 36 palmed Modula Aztecan
+394 108301 36 faced clobbering acuity W
+395 108302 36 silverware chronography sinking W
+396 112101 36 assessor Eskimoizeds beasts FAS
+397 112102 36 spiders British Witt W
+398 113701 36 artificially pitfalls physicists FAS
+399 116001 36 reminiscence verify folksong A
+400 116201 36 Mexican scatter strokes FAS
+401 116301 36 obnoxious Aztecan crowder
+402 116302 36 fragile acuity merry
+403 116601 36 apprehensible sinking cadenced
+404 116602 36 births beasts alimony A
+405 116603 36 garages Witt principled A
+406 116701 36 panty physicists golfing
+407 116702 36 anteater folksong undiscovered
+408 118001 36 displacement strokes irritates
+409 118002 36 drovers crowder patriots A
+410 118003 36 patenting merry rooms FAS
+411 118004 36 far cadenced towering W
+412 118005 36 shrieks alimony displease
+413 118006 36 aligning principled photosensitive
+414 118007 36 pragmatism golfing inking
+415 118008 36 fevers undiscovered gainers
+416 118101 36 reexamines irritates leaning A
+417 118102 36 occupancies patriots hydrant A
+418 118103 36 sweats rooms preserve
+419 118202 36 modulators towering blinded A
+420 118203 36 demand displease interactions A
+421 118204 36 Madeira photosensitive Barry
+422 118302 36 Viennese inking whiteness A
+423 118304 36 chillier gainers pastimes W
+424 118305 36 wildcats leaning Edenization
+425 118306 36 gentle hydrant Muscat
+426 118307 36 Angles preserve assassinated
+427 123101 36 accuracies blinded labeled
+428 123102 36 toggle interactions glacial A
+429 123301 36 Mendelssohn Barry implied W
+430 126001 36 behaviorally whiteness bibliographies W
+431 126002 36 Rochford pastimes Buchanan
+432 126003 36 mirror Edenization forgivably FAS
+433 126101 36 Modula Muscat innuendo A
+434 126301 36 clobbering assassinated den FAS
+435 126302 36 chronography labeled submarines W
+436 126402 36 Eskimoizeds glacial mouthful A
+437 126601 36 British implied expiring
+438 126602 36 pitfalls bibliographies unfulfilled FAS
+439 126702 36 verify Buchanan precession
+440 128001 36 scatter forgivably nullified
+441 128002 36 Aztecan innuendo affects
+442 128003 36 acuity den Cynthia
+443 128004 36 sinking submarines Chablis A
+444 128005 36 beasts mouthful betterments FAS
+445 128007 36 Witt expiring advertising
+446 128008 36 physicists unfulfilled rubies A
+447 128009 36 folksong precession southwest FAS
+448 128010 36 strokes nullified superstitious A
+449 128011 36 crowder affects tabernacle W
+450 128012 36 merry Cynthia silk A
+451 128013 36 cadenced Chablis handsomest A
+452 128014 36 alimony betterments Persian A
+453 128015 36 principled advertising analog W
+454 128016 36 golfing rubies complex W
+455 128017 36 undiscovered southwest Taoist
+456 128018 36 irritates superstitious suspend
+457 128019 36 patriots tabernacle relegated
+458 128020 36 rooms silk awesome W
+459 128021 36 towering handsomest Bruxelles
+460 128022 36 displease Persian imprecisely A
+461 128023 36 photosensitive analog televise
+462 128101 36 inking complex braking
+463 128102 36 gainers Taoist true FAS
+464 128103 36 leaning suspend disappointing FAS
+465 128104 36 hydrant relegated navally W
+466 128106 36 preserve awesome circus
+467 128107 36 blinded Bruxelles beetles
+468 128108 36 interactions imprecisely trumps
+469 128202 36 Barry televise fourscore W
+470 128203 36 whiteness braking Blackfoots
+471 128301 36 pastimes true Grady
+472 128302 36 Edenization disappointing quiets FAS
+473 128303 36 Muscat navally floundered FAS
+474 128304 36 assassinated circus profundity W
+475 128305 36 labeled beetles Garrisonian W
+476 128307 36 glacial trumps Strauss
+477 128401 36 implied fourscore cemented FAS
+478 128502 36 bibliographies Blackfoots contrition A
+479 128503 36 Buchanan Grady mutations
+480 128504 36 forgivably quiets exhibits W
+481 128505 36 innuendo floundered tits
+482 128601 36 den profundity mate A
+483 128603 36 submarines Garrisonian arches
+484 128604 36 mouthful Strauss Moll
+485 128702 36 expiring cemented ropers
+486 128703 36 unfulfilled contrition bombast
+487 128704 36 precession mutations difficultly A
+488 138001 36 nullified exhibits adsorption
+489 138002 36 affects tits definiteness FAS
+490 138003 36 Cynthia mate cultivation A
+491 138004 36 Chablis arches heals A
+492 138005 36 betterments Moll Heusen W
+493 138006 36 advertising ropers target FAS
+494 138007 36 rubies bombast cited A
+495 138008 36 southwest difficultly congresswoman W
+496 138009 36 superstitious adsorption Katherine
+497 138102 36 tabernacle definiteness titter A
+498 138103 36 silk cultivation aspire A
+499 138104 36 handsomest heals Mardis
+500 138105 36 Persian Heusen Nadia W
+501 138201 36 analog target estimating FAS
+502 138302 36 complex cited stuck A
+503 138303 36 Taoist congresswoman fifteenth A
+504 138304 36 suspend Katherine Colombo
+505 138401 29 relegated titter survey A
+506 140102 29 awesome aspire staffing
+507 140103 29 Bruxelles Mardis obtain
+508 140104 29 imprecisely Nadia loaded
+509 140105 29 televise estimating slaughtered
+510 140201 29 braking stuck lights A
+511 140701 29 true fifteenth circumference
+512 141501 29 disappointing Colombo dull A
+513 141502 29 navally survey weekly A
+514 141901 29 circus staffing wetness
+515 141902 29 beetles obtain visualized
+516 142101 29 trumps loaded Tannenbaum
+517 142102 29 fourscore slaughtered moribund
+518 142103 29 Blackfoots lights demultiplex
+519 142701 29 Grady circumference lockings
+520 143001 29 quiets dull thugs FAS
+521 143501 29 floundered weekly unnerves
+522 143502 29 profundity wetness abut
+523 148001 29 Garrisonian visualized Chippewa A
+524 148002 29 Strauss Tannenbaum stratifications A
+525 148003 29 cemented moribund signaled
+526 148004 29 contrition demultiplex Italianizes A
+527 148005 29 mutations lockings algorithmic A
+528 148006 29 exhibits thugs paranoid FAS
+529 148007 29 tits unnerves camping A
+530 148009 29 mate abut signifying A
+531 148010 29 arches Chippewa Patrice W
+532 148011 29 Moll stratifications search A
+533 148012 29 ropers signaled Angeles A
+534 148013 29 bombast Italianizes semblance
+535 148023 36 difficultly algorithmic taxed
+536 148015 29 adsorption paranoid Beatrice
+537 148016 29 definiteness camping retrace
+538 148017 29 cultivation signifying lockout
+539 148018 29 heals Patrice grammatic
+540 148019 29 Heusen search helmsman
+541 148020 29 target Angeles uniform W
+542 148021 29 cited semblance hamming
+543 148022 29 congresswoman taxed disobedience
+544 148101 29 Katherine Beatrice captivated A
+545 148102 29 titter retrace transferals A
+546 148201 29 aspire lockout cartographer A
+547 148401 29 Mardis grammatic aims FAS
+548 148402 29 Nadia helmsman Pakistani
+549 148501 29 estimating uniform burglarized FAS
+550 148502 29 stuck hamming saucepans A
+551 148503 29 fifteenth disobedience lacerating A
+552 148504 29 Colombo captivated corny
+553 148601 29 survey transferals megabytes FAS
+554 148602 29 staffing cartographer chancellor
+555 150701 29 obtain aims bulk A
+556 152101 29 loaded Pakistani commits A
+557 152102 29 slaughtered burglarized meson W
+558 155202 36 lights saucepans deputies
+559 155203 29 circumference lacerating northeaster A
+560 155204 29 dull corny dipole
+561 155205 29 weekly megabytes machining 0
+562 156001 29 wetness chancellor therefore
+563 156002 29 visualized bulk Telefunken
+564 156102 29 Tannenbaum commits salvaging
+565 156301 29 moribund meson Corinthianizes A
+566 156302 29 demultiplex deputies restlessly A
+567 156303 29 lockings northeaster bromides
+568 156304 29 thugs dipole generalized A
+569 156305 29 unnerves machining mishaps
+570 156306 29 abut therefore quelling
+571 156501 29 Chippewa Telefunken spiritual A
+572 158001 29 stratifications salvaging beguiles FAS
+573 158002 29 signaled Corinthianizes Trobriand FAS
+574 158101 29 Italianizes restlessly fleeing A
+575 158102 29 algorithmic bromides Armour A
+576 158103 29 paranoid generalized chin A
+577 158201 29 camping mishaps provers A
+578 158202 29 signifying quelling aeronautic A
+579 158203 29 Patrice spiritual voltage W
+580 158204 29 search beguiles sash
+581 158301 29 Angeles Trobriand anaerobic A
+582 158302 29 semblance fleeing simultaneous A
+583 158303 29 taxed Armour accumulating A
+584 158304 29 Beatrice chin Medusan A
+585 158305 29 retrace provers shouted A
+586 158306 29 lockout aeronautic freakish
+587 158501 29 grammatic voltage index FAS
+588 160301 29 helmsman sash commercially
+589 166101 50 uniform anaerobic mistiness A
+590 166102 50 hamming simultaneous endpoint
+591 168001 29 disobedience accumulating straight A
+592 168002 29 captivated Medusan flurried
+593 168003 29 transferals shouted denotative A
+594 168101 29 cartographer freakish coming FAS
+595 168102 29 aims index commencements FAS
+596 168103 29 Pakistani commercially gentleman
+597 168104 29 burglarized mistiness gifted
+598 168202 29 saucepans endpoint Shanghais
+599 168301 29 lacerating straight sportswriting A
+600 168502 29 corny flurried sloping A
+601 168503 29 megabytes denotative navies
+602 168601 29 chancellor coming leaflet A
+603 173001 40 bulk commencements shooter
+604 173701 40 commits gentleman Joplin FAS
+605 173702 40 meson gifted babies
+606 176001 40 deputies Shanghais subdivision FAS
+607 176101 40 northeaster sportswriting burstiness W
+608 176201 40 dipole sloping belted FAS
+609 176401 40 machining navies assails FAS
+610 176501 40 therefore leaflet admiring W
+611 176601 40 Telefunken shooter swaying 0
+612 176602 40 salvaging Joplin Goldstine FAS
+613 176603 40 Corinthianizes babies fitting
+614 178001 40 restlessly subdivision Norwalk W
+615 178002 40 bromides burstiness weakening W
+616 178003 40 generalized belted analogy FAS
+617 178004 40 mishaps assails deludes
+618 178005 40 quelling admiring cokes
+619 178006 40 spiritual swaying Clayton
+620 178007 40 beguiles Goldstine exhausts
+621 178008 40 Trobriand fitting causality
+622 178101 40 fleeing Norwalk sating FAS
+623 178102 40 Armour weakening icon
+624 178103 40 chin analogy throttles
+625 178201 40 provers deludes communicants FAS
+626 178202 40 aeronautic cokes dehydrate FAS
+627 178301 40 voltage Clayton priceless FAS
+628 178302 40 sash exhausts publicly
+629 178401 40 anaerobic causality incidentals FAS
+630 178402 40 simultaneous sating commonplace
+631 178403 40 accumulating icon mumbles
+632 178404 40 Medusan throttles furthermore W
+633 178501 40 shouted communicants cautioned W
+634 186002 37 freakish dehydrate parametrized A
+635 186102 37 index priceless registration A
+636 186201 40 commercially publicly sadly FAS
+637 186202 40 mistiness incidentals positioning
+638 186203 40 endpoint commonplace babysitting
+639 186302 37 straight mumbles eternal A
+640 188007 37 flurried furthermore hoarder
+641 188008 37 denotative cautioned congregates
+642 188009 37 coming parametrized rains
+643 188010 37 commencements registration workers W
+644 188011 37 gentleman sadly sags A
+645 188012 37 gifted positioning unplug W
+646 188013 37 Shanghais babysitting garage A
+647 188014 37 sportswriting eternal boulder A
+648 188015 37 sloping hoarder hollowly A
+649 188016 37 navies congregates specifics
+650 188017 37 leaflet rains Teresa
+651 188102 37 shooter workers Winsett
+652 188103 37 Joplin sags convenient A
+653 188202 37 babies unplug buckboards FAS
+654 188301 40 subdivision garage amenities
+655 188302 40 burstiness boulder resplendent FAS
+656 188303 40 belted hollowly priding FAS
+657 188401 37 assails specifics configurations
+658 188402 37 admiring Teresa untidiness A
+659 188503 37 swaying Winsett Brice W
+660 188504 37 Goldstine convenient sews FAS
+661 188505 37 fitting buckboards participated
+662 190701 37 Norwalk amenities Simon FAS
+663 190703 50 weakening resplendent certificates
+664 191701 37 analogy priding Fitzpatrick
+665 191702 37 deludes configurations Evanston A
+666 191703 37 cokes untidiness misted
+667 196001 37 Clayton Brice textures A
+668 196002 37 exhausts sews save
+669 196003 37 causality participated count
+670 196101 37 sating Simon rightful A
+671 196103 37 icon certificates chaperone
+672 196104 37 throttles Fitzpatrick Lizzy A
+673 196201 37 communicants Evanston clenched A
+674 196202 37 dehydrate misted effortlessly
+675 196203 37 priceless textures accessed
+676 198001 37 publicly save beaters A
+677 198003 37 incidentals count Hornblower FAS
+678 198004 37 commonplace rightful vests A
+679 198005 37 mumbles chaperone indulgences FAS
+680 198006 37 furthermore Lizzy infallibly A
+681 198007 37 cautioned clenched unwilling FAS
+682 198008 37 parametrized effortlessly excrete FAS
+683 198009 37 registration accessed spools A
+684 198010 37 sadly beaters crunches FAS
+685 198011 37 positioning Hornblower overestimating FAS
+686 198012 37 babysitting vests ineffective
+687 198013 37 eternal indulgences humiliation A
+688 198014 37 hoarder infallibly sophomore
+689 198015 37 congregates unwilling star
+690 198017 37 rains excrete rifles
+691 198018 37 workers spools dialysis
+692 198019 37 sags crunches arriving
+693 198020 37 unplug overestimating indulge
+694 198021 37 garage ineffective clockers
+695 198022 37 boulder humiliation languages
+696 198023 50 hollowly sophomore Antarctica A
+697 198024 37 specifics star percentage
+698 198101 37 Teresa rifles ceiling A
+699 198103 37 Winsett dialysis specification
+700 198105 37 convenient arriving regimented A
+701 198106 37 buckboards indulge ciphers
+702 198201 37 amenities clockers pictures A
+703 198204 37 resplendent languages serpents A
+704 198301 53 priding Antarctica allot A
+705 198302 53 configurations percentage realized A
+706 198303 53 untidiness ceiling mayoral A
+707 198304 53 Brice specification opaquely A
+708 198401 37 sews regimented hostess FAS
+709 198402 37 participated ciphers fiftieth
+710 198403 37 Simon pictures incorrectly
+711 202101 37 certificates serpents decomposition FAS
+712 202301 37 Fitzpatrick allot stranglings
+713 202302 37 Evanston realized mixture FAS
+714 202303 37 misted mayoral electroencephalography FAS
+715 202304 37 textures opaquely similarities FAS
+716 202305 37 save hostess charges W
+717 202601 37 count fiftieth freest FAS
+718 202602 37 rightful incorrectly Greenberg FAS
+719 202605 37 chaperone decomposition tinting
+720 202606 37 Lizzy stranglings expelled W
+721 202607 37 clenched mixture warm
+722 202901 37 effortlessly electroencephalography smoothed
+723 202902 37 accessed similarities deductions FAS
+724 202903 37 beaters charges Romano W
+725 202904 37 Hornblower freest bitterroot
+726 202907 37 vests Greenberg corset
+727 202908 37 indulgences tinting securing
+728 203101 37 infallibly expelled environing FAS
+729 203103 37 unwilling warm cute
+730 203104 37 excrete smoothed Crays
+731 203105 37 spools deductions heiress FAS
+732 203401 37 crunches Romano inform FAS
+733 203402 37 overestimating bitterroot avenge
+734 203404 37 ineffective corset universals
+735 203901 37 humiliation securing Kinsey W
+736 203902 37 sophomore environing ravines FAS
+737 203903 37 star cute bestseller
+738 203906 37 rifles Crays equilibrium
+739 203907 37 dialysis heiress extents 0
+740 203908 37 arriving inform relatively
+741 203909 37 indulge avenge pressure FAS
+742 206101 37 clockers universals critiques FAS
+743 206201 37 languages Kinsey befouled
+744 206202 37 Antarctica ravines rightfully FAS
+745 206203 37 percentage bestseller mechanizing FAS
+746 206206 37 ceiling equilibrium Latinizes
+747 206207 37 specification extents timesharing
+748 206208 37 regimented relatively Aden
+749 208001 37 ciphers pressure embassies
+750 208002 37 pictures critiques males FAS
+751 208003 37 serpents befouled shapelessly FAS
+752 208004 37 allot rightfully genres FAS
+753 208008 37 realized mechanizing mastering
+754 208009 37 mayoral Latinizes Newtonian
+755 208010 37 opaquely timesharing finishers FAS
+756 208011 37 hostess Aden abates
+757 208101 37 fiftieth embassies teem
+758 208102 37 incorrectly males kiting FAS
+759 208103 37 decomposition shapelessly stodgy FAS
+760 208104 37 stranglings genres scalps FAS
+761 208105 37 mixture mastering feed FAS
+762 208110 37 electroencephalography Newtonian guitars
+763 208111 37 similarities finishers airships
+764 208112 37 charges abates store
+765 208113 37 freest teem denounces
+766 208201 37 Greenberg kiting Pyle FAS
+767 208203 37 tinting stodgy Saxony
+768 208301 37 expelled scalps serializations FAS
+769 208302 37 warm feed Peruvian FAS
+770 208305 37 smoothed guitars taxonomically FAS
+771 208401 37 deductions airships kingdom A
+772 208402 37 Romano store stint A
+773 208403 37 bitterroot denounces Sault A
+774 208404 37 corset Pyle faithful
+775 208501 37 securing Saxony Ganymede FAS
+776 208502 37 environing serializations tidiness FAS
+777 208503 37 cute Peruvian gainful FAS
+778 208504 37 Crays taxonomically contrary FAS
+779 208505 37 heiress kingdom Tipperary FAS
+780 210101 37 inform stint tropics W
+781 210102 37 avenge Sault theorizers
+782 210103 37 universals faithful renew 0
+783 210104 37 Kinsey Ganymede already
+784 210105 37 ravines tidiness terminal
+785 210106 37 bestseller gainful Hegelian
+786 210107 37 equilibrium contrary hypothesizer
+787 210401 37 extents Tipperary warningly FAS
+788 213201 37 relatively tropics journalizing FAS
+789 213203 37 pressure theorizers nested
+790 213204 37 critiques renew Lars
+791 213205 37 befouled already saplings
+792 213206 37 rightfully terminal foothill
+793 213207 37 mechanizing Hegelian labeled
+794 216101 37 Latinizes hypothesizer imperiously FAS
+795 216103 37 timesharing warningly reporters FAS
+796 218001 37 Aden journalizing furnishings FAS
+797 218002 37 embassies nested precipitable FAS
+798 218003 37 males Lars discounts FAS
+799 218004 37 shapelessly saplings excises FAS
+800 143503 50 genres foothill Stalin
+801 218006 37 mastering labeled despot FAS
+802 218007 37 Newtonian imperiously ripeness FAS
+803 218008 37 finishers reporters Arabia
+804 218009 37 abates furnishings unruly
+805 218010 37 teem precipitable mournfulness
+806 218011 37 kiting discounts boom FAS
+807 218020 37 stodgy excises slaughter A
+808 218021 50 scalps Stalin Sabine
+809 218022 37 feed despot handy FAS
+810 218023 37 guitars ripeness rural
+811 218024 37 airships Arabia organizer
+812 218101 37 store unruly shipyard FAS
+813 218102 37 denounces mournfulness civics FAS
+814 218103 37 Pyle boom inaccuracy FAS
+815 218201 37 Saxony slaughter rules FAS
+816 218202 37 serializations Sabine juveniles FAS
+817 218203 37 Peruvian handy comprised W
+818 218204 37 taxonomically rural investigations
+819 218205 37 kingdom organizer stabilizes A
+820 218301 37 stint shipyard seminaries FAS
+821 218302 37 Sault civics Hunter A
+822 218401 37 faithful inaccuracy sporty FAS
+823 218402 37 Ganymede rules test FAS
+824 218403 37 tidiness juveniles weasels
+825 218404 37 gainful comprised CERN
+826 218407 37 contrary investigations tempering
+827 218408 37 Tipperary stabilizes afore FAS
+828 218409 37 tropics seminaries Galatean
+829 218410 37 theorizers Hunter techniques W
+830 226001 37 renew sporty error
+831 226002 37 already test veranda
+832 226003 37 terminal weasels severely
+833 226004 37 Hegelian CERN Cassites FAS
+834 226005 37 hypothesizer tempering forthcoming
+835 226006 37 warningly afore guides
+836 226007 37 journalizing Galatean vanish FAS
+837 226008 37 nested techniques lied A
+838 226203 37 Lars error sawtooth FAS
+839 226204 37 saplings veranda fated FAS
+840 226205 37 foothill severely gradually
+841 226206 37 labeled Cassites widens
+842 226207 37 imperiously forthcoming preclude
+843 226208 37 reporters guides Jobrel
+844 226209 37 furnishings vanish hooker
+845 226210 37 precipitable lied rainstorm
+846 226211 37 discounts sawtooth disconnects
+847 228001 37 excises fated cruelty
+848 228004 37 Stalin gradually exponentials A
+849 228005 37 despot widens affective A
+850 228006 37 ripeness preclude arteries
+851 228007 37 Arabia Jobrel Crosby FAS
+852 228008 37 unruly hooker acquaint
+853 228009 37 mournfulness rainstorm evenhandedly
+854 228101 37 boom disconnects percentage
+855 228108 37 slaughter cruelty disobedience
+856 228109 37 Sabine exponentials humility
+857 228110 37 handy affective gleaning A
+858 228111 37 rural arteries petted A
+859 228112 37 organizer Crosby bloater A
+860 228113 37 shipyard acquaint minion A
+861 228114 37 civics evenhandedly marginal A
+862 228115 37 inaccuracy percentage apiary A
+863 228116 37 rules disobedience measures
+864 228117 37 juveniles humility precaution
+865 228118 37 comprised gleaning repelled
+866 228119 37 investigations petted primary FAS
+867 228120 37 stabilizes bloater coverings
+868 228121 37 seminaries minion Artemia A
+869 228122 37 Hunter marginal navigate
+870 228201 37 sporty apiary spatial
+871 228206 37 test measures Gurkha
+872 228207 37 weasels precaution meanwhile A
+873 228208 37 CERN repelled Melinda A
+874 228209 37 tempering primary Butterfield
+875 228210 37 afore coverings Aldrich A
+876 228211 37 Galatean Artemia previewing A
+877 228212 37 techniques navigate glut A
+878 228213 37 error spatial unaffected
+879 228214 37 veranda Gurkha inmate
+880 228301 37 severely meanwhile mineral
+881 228305 37 Cassites Melinda impending A
+882 228306 37 forthcoming Butterfield meditation A
+883 228307 37 guides Aldrich ideas
+884 228308 37 vanish previewing miniaturizes W
+885 228309 37 lied glut lewdly
+886 228310 37 sawtooth unaffected title
+887 228311 37 fated inmate youthfulness
+888 228312 37 gradually mineral creak FAS
+889 228313 37 widens impending Chippewa
+890 228314 37 preclude meditation clamored
+891 228401 65 Jobrel ideas freezes
+892 228402 65 hooker miniaturizes forgivably FAS
+893 228403 65 rainstorm lewdly reduce FAS
+894 228404 65 disconnects title McGovern W
+895 228405 65 cruelty youthfulness Nazis W
+896 228406 65 exponentials creak epistle W
+897 228407 65 affective Chippewa socializes W
+898 228408 65 arteries clamored conceptions
+899 228409 65 Crosby freezes Kevin
+900 228410 65 acquaint forgivably uncovering
+901 230301 37 evenhandedly reduce chews FAS
+902 230302 37 percentage McGovern appendixes FAS
+903 230303 37 disobedience Nazis raining
+904 018062 37 humility epistle infest
+905 230501 37 gleaning socializes compartment
+906 230502 37 petted conceptions minting
+907 230503 37 bloater Kevin ducks
+908 230504 37 minion uncovering roped A
+909 230505 37 marginal chews waltz
+910 230506 37 apiary appendixes Lillian
+911 230507 37 measures raining repressions A
+912 230508 37 precaution infest chillingly
+913 230509 37 repelled compartment noncritical
+914 230901 37 primary minting lithograph
+915 230902 37 coverings ducks spongers
+916 230903 37 Artemia roped parenthood
+917 230904 37 navigate waltz posed
+918 230905 37 spatial Lillian instruments
+919 230906 37 Gurkha repressions filial
+920 230907 37 meanwhile chillingly fixedly
+921 230908 37 Melinda noncritical relives
+922 230909 37 Butterfield lithograph Pandora
+923 230910 37 Aldrich spongers watering A
+924 230911 37 previewing parenthood ungrateful
+925 230912 37 glut posed secures
+926 230913 37 unaffected instruments chastisers
+927 230914 37 inmate filial icon
+928 231304 37 mineral fixedly reuniting A
+929 231305 37 impending relives imagining A
+930 231306 37 meditation Pandora abiding A
+931 231307 37 ideas watering omnisciently
+932 231308 37 miniaturizes ungrateful Britannic
+933 231309 37 lewdly secures scholastics A
+934 231310 37 title chastisers mechanics A
+935 231311 37 youthfulness icon humidly A
+936 231312 37 creak reuniting masterpiece
+937 231313 37 Chippewa imagining however
+938 231314 37 clamored abiding Mendelian
+939 231315 37 freezes omnisciently jarred
+940 232102 37 forgivably Britannic scolds
+941 232103 37 reduce scholastics infatuate
+942 232104 37 McGovern mechanics willed A
+943 232105 37 Nazis humidly joyfully
+944 232106 37 epistle masterpiece Microsoft
+945 232107 37 socializes however fibrosities
+946 232108 37 conceptions Mendelian Baltimorean
+947 232601 37 Kevin jarred equestrian
+948 232602 37 uncovering scolds Goodrich
+949 232603 37 chews infatuate apish A
+950 232605 37 appendixes willed Adlerian
+5950 1232605 37 appendixes willed Adlerian
+5951 1232606 37 appendixes willed Adlerian
+5952 1232607 37 appendixes willed Adlerian
+5953 1232608 37 appendixes willed Adlerian
+5954 1232609 37 appendixes willed Adlerian
+951 232606 37 raining joyfully Tropez
+952 232607 37 infest Microsoft nouns
+953 232608 37 compartment fibrosities distracting
+954 232609 37 minting Baltimorean mutton
+955 236104 37 ducks equestrian bridgeable A
+956 236105 37 roped Goodrich stickers A
+957 236106 37 waltz apish transcontinental A
+958 236107 37 Lillian Adlerian amateurish
+959 236108 37 repressions Tropez Gandhian
+960 236109 37 chillingly nouns stratified
+961 236110 37 noncritical distracting chamberlains
+962 236111 37 lithograph mutton creditably
+963 236112 37 spongers bridgeable philosophic
+964 236113 37 parenthood stickers ores
+965 238005 37 posed transcontinental Carleton
+966 238006 37 instruments amateurish tape A
+967 238007 37 filial Gandhian afloat A
+968 238008 37 fixedly stratified goodness A
+969 238009 37 relives chamberlains welcoming
+970 238010 37 Pandora creditably Pinsky FAS
+971 238011 37 watering philosophic halting
+972 238012 37 ungrateful ores bibliography
+973 238013 37 secures Carleton decoding
+974 240401 41 chastisers tape variance A
+975 240402 41 icon afloat allowed A
+976 240901 41 reuniting goodness dire A
+977 240902 41 imagining welcoming dub A
+978 241801 41 abiding Pinsky poisoning
+979 242101 41 omnisciently halting Iraqis A
+980 242102 41 Britannic bibliography heaving
+981 242201 41 scholastics decoding population A
+982 242202 41 mechanics variance bomb A
+983 242501 41 humidly allowed Majorca A
+984 242502 41 masterpiece dire Gershwins
+985 246201 41 however dub explorers
+986 246202 41 Mendelian poisoning libretto A
+987 246203 41 jarred Iraqis occurred
+988 246204 41 scolds heaving Lagos
+989 246205 41 infatuate population rats
+990 246301 41 willed bomb bankruptcies A
+991 246302 41 joyfully Majorca crying
+992 248001 41 Microsoft Gershwins unexpected
+993 248002 41 fibrosities explorers accessed A
+994 248003 41 Baltimorean libretto colorful A
+995 248004 41 equestrian occurred versatility A
+996 248005 41 Goodrich Lagos cosy
+997 248006 41 apish rats Darius A
+998 248007 41 Adlerian bankruptcies mastering A
+999 248008 41 Tropez crying Asiaticizations A
+1000 248009 41 nouns unexpected offerers A
+1001 248010 41 distracting accessed uncles A
+1002 248011 41 mutton colorful sleepwalk
+1003 248012 41 bridgeable versatility Ernestine
+1004 248013 41 stickers cosy checksumming
+1005 248014 41 transcontinental Darius stopped
+1006 248015 41 amateurish mastering sicker
+1007 248016 41 Gandhian Asiaticizations Italianization
+1008 248017 41 stratified offerers alphabetic
+1009 248018 41 chamberlains uncles pharmaceutic
+1010 248019 41 creditably sleepwalk creator
+1011 248020 41 philosophic Ernestine chess
+1012 248021 41 ores checksumming charcoal
+1013 248101 41 Carleton stopped Epiphany A
+1014 248102 41 tape sicker bulldozes A
+1015 248201 41 afloat Italianization Pygmalion A
+1016 248202 41 goodness alphabetic caressing A
+1017 248203 41 welcoming pharmaceutic Palestine A
+1018 248204 41 Pinsky creator regimented A
+1019 248205 41 halting chess scars A
+1020 248206 41 bibliography charcoal realest A
+1021 248207 41 decoding Epiphany diffusing A
+1022 248208 41 variance bulldozes clubroom A
+1023 248209 41 allowed Pygmalion Blythe A
+1024 248210 41 dire caressing ahead
+1025 248211 50 dub Palestine reviver
+1026 250501 34 poisoning regimented retransmitting A
+1027 250502 34 Iraqis scars landslide
+1028 250503 34 heaving realest Eiffel
+1029 250504 34 population diffusing absentee
+1030 250505 34 bomb clubroom aye
+1031 250601 34 Majorca Blythe forked A
+1032 250602 34 Gershwins ahead Peruvianizes
+1033 250603 34 explorers reviver clerked
+1034 250604 34 libretto retransmitting tutor
+1035 250605 34 occurred landslide boulevard
+1036 251001 34 Lagos Eiffel shuttered
+1037 251002 34 rats absentee quotes A
+1038 251003 34 bankruptcies aye Caltech
+1039 251004 34 crying forked Mossberg
+1040 251005 34 unexpected Peruvianizes kept
+1041 251301 34 accessed clerked roundly
+1042 251302 34 colorful tutor features A
+1043 251303 34 versatility boulevard imaginable A
+1044 251304 34 cosy shuttered controller
+1045 251305 34 Darius quotes racial
+1046 251401 34 mastering Caltech uprisings A
+1047 251402 34 Asiaticizations Mossberg narrowed A
+1048 251403 34 offerers kept cannot A
+1049 251404 34 uncles roundly vest
+1050 251405 34 sleepwalk features famine
+1051 251406 34 Ernestine imaginable sugars
+1052 251801 34 checksumming controller exterminated A
+1053 251802 34 stopped racial belays
+1054 252101 34 sicker uprisings Hodges A
+1055 252102 34 Italianization narrowed translatable
+1056 252301 34 alphabetic cannot duality A
+1057 252302 34 pharmaceutic vest recording A
+1058 252303 34 creator famine rouses A
+1059 252304 34 chess sugars poison
+1060 252305 34 charcoal exterminated attitude
+1061 252306 34 Epiphany belays dusted
+1062 252307 34 bulldozes Hodges encompasses
+1063 252308 34 Pygmalion translatable presentation
+1064 252309 34 caressing duality Kantian
+1065 256001 34 Palestine recording imprecision A
+1066 256002 34 regimented rouses saving
+1067 256003 34 scars poison maternal
+1068 256004 34 realest attitude hewed
+1069 256005 34 diffusing dusted kerosene
+1070 258001 34 clubroom encompasses Cubans
+1071 258002 34 Blythe presentation photographers
+1072 258003 34 ahead Kantian nymph A
+1073 258004 34 reviver imprecision bedlam A
+1074 258005 34 retransmitting saving north A
+1075 258006 34 landslide maternal Schoenberg A
+1076 258007 34 Eiffel hewed botany A
+1077 258008 34 absentee kerosene curs
+1078 258009 34 aye Cubans solidification
+1079 258010 34 forked photographers inheritresses
+1080 258011 34 Peruvianizes nymph stiller
+1081 258101 68 clerked bedlam t1 A
+1082 258102 68 tutor north suite A
+1083 258103 34 boulevard Schoenberg ransomer
+1084 258104 68 shuttered botany Willy
+1085 258105 68 quotes curs Rena A
+1086 258106 68 Caltech solidification Seattle A
+1087 258107 68 Mossberg inheritresses relaxes A
+1088 258108 68 kept stiller exclaim
+1089 258109 68 roundly t1 implicated A
+1090 258110 68 features suite distinguish
+1091 258111 68 imaginable ransomer assayed
+1092 258112 68 controller Willy homeowner
+1093 258113 68 racial Rena and
+1094 258201 34 uprisings Seattle stealth
+1095 258202 34 narrowed relaxes coinciding A
+1096 258203 34 cannot exclaim founder A
+1097 258204 34 vest implicated environing
+1098 258205 34 famine distinguish jewelry
+1099 258301 34 sugars assayed lemons A
+1100 258401 34 exterminated homeowner brokenness A
+1101 258402 34 belays and bedpost A
+1102 258403 34 Hodges stealth assurers A
+1103 258404 34 translatable coinciding annoyers
+1104 258405 34 duality founder affixed
+1105 258406 34 recording environing warbling
+1106 258407 34 rouses jewelry seriously
+1107 228123 37 poison lemons boasted
+1108 250606 34 attitude brokenness Chantilly
+1109 208405 37 dusted bedpost Iranizes
+1110 212101 37 encompasses assurers violinist
+1111 218206 37 presentation annoyers extramarital
+1112 150401 37 Kantian affixed spates
+1113 248212 41 imprecision warbling cloakroom
+1114 128026 00 saving seriously gazer
+1115 128024 00 maternal boasted hand
+1116 128027 00 hewed Chantilly tucked
+1117 128025 00 kerosene Iranizes gems
+1118 128109 00 Cubans violinist clinker
+1119 128705 00 photographers extramarital refiner
+1120 126303 00 nymph spates callus
+1121 128308 00 bedlam cloakroom leopards
+1122 128204 00 north gazer comfortingly
+1123 128205 00 Schoenberg hand generically
+1124 128206 00 botany tucked getters
+1125 128207 00 curs gems sexually
+1126 118205 00 solidification clinker spear
+1127 116801 00 inheritresses refiner serums
+1128 116803 00 stiller callus Italianization
+1129 116804 00 t1 leopards attendants
+1130 116802 00 suite comfortingly spies
+1131 128605 00 ransomer generically Anthony
+1132 118308 00 Willy getters planar
+1133 113702 00 Rena sexually cupped
+1134 113703 00 Seattle spear cleanser
+1135 112103 00 relaxes serums commuters
+1136 118009 00 exclaim Italianization honeysuckle
+5136 1118009 00 exclaim Italianization honeysuckle
+1137 138011 00 implicated attendants orphanage
+1138 138010 00 distinguish spies skies
+1139 138012 00 assayed Anthony crushers
+1140 068304 00 homeowner planar Puritan
+1141 078009 00 and cupped squeezer
+1142 108013 00 stealth cleanser bruises
+1143 084004 00 coinciding commuters bonfire
+1144 083402 00 founder honeysuckle Colombo
+1145 084003 00 environing orphanage nondecreasing
+1146 088504 00 jewelry skies innocents
+1147 088005 00 lemons crushers masked
+1148 088007 00 brokenness Puritan file
+1149 088006 00 bedpost squeezer brush
+1150 148025 00 assurers bruises mutilate
+1151 148024 00 annoyers bonfire mommy
+1152 138305 00 affixed Colombo bulkheads
+1153 138306 00 warbling nondecreasing undeclared
+1154 152701 00 seriously innocents displacements
+1155 148505 00 boasted masked nieces
+1156 158003 00 Chantilly file coeducation
+1157 156201 00 Iranizes brush brassy
+1158 156202 00 violinist mutilate authenticator
+1159 158307 00 extramarital mommy Washoe
+1160 158402 00 spates bulkheads penny
+1161 158401 00 cloakroom undeclared Flagler
+1162 068013 00 gazer displacements stoned
+1163 068012 00 hand nieces cranes
+1164 068203 00 tucked coeducation masterful
+1165 088205 00 gems brassy biracial
+1166 068704 00 clinker authenticator steamships
+1167 068604 00 refiner Washoe windmills
+1168 158502 00 callus penny exploit
+1169 123103 00 leopards Flagler riverfront
+1170 148026 00 comfortingly stoned sisterly
+1171 123302 00 generically cranes sharpshoot
+1172 076503 00 getters masterful mittens
+1173 126304 00 sexually biracial interdependency
+1174 068306 00 spear steamships policy
+1175 143504 00 serums windmills unleashing
+1176 160201 00 Italianization exploit pretenders
+1177 148028 00 attendants riverfront overstatements
+1178 148027 00 spies sisterly birthed
+1179 143505 00 Anthony sharpshoot opportunism
+1180 108014 00 planar mittens showroom
+1181 076104 00 cupped interdependency compromisingly
+1182 078106 00 cleanser policy Medicare
+1183 126102 00 commuters unleashing corresponds
+1184 128029 00 honeysuckle pretenders hardware
+1185 128028 00 orphanage overstatements implant
+1186 018410 00 skies birthed Alicia
+1187 128110 00 crushers opportunism requesting
+1188 148506 00 Puritan showroom produced
+1189 123303 00 squeezer compromisingly criticizes
+1190 123304 00 bruises Medicare backer
1191 068504 00 bonfire corresponds positively
-select count(*) from t3;
-count(*)
-1203
-rename table t3 to t4;
-select * from t4 where fld3='bonfire';
+1192 068305 00 Colombo hardware colicky
+1193 000000 00 nondecreasing implant thrillingly
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+REPAIR TABLE t2;
+Table Op Msg_type Msg_text
+test.t2 repair status OK
+SELECT * FROM t2;
auto fld1 companynr fld3 fld4 fld5 fld6
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+5 011501 37 bewilderingly wallet balled
+6 011701 37 astound parters persist W
+7 011702 37 admonishing eschew attainments
+8 011703 37 sumac quitter fanatic
+9 012001 37 flanking neat measures FAS
+10 012003 37 combed Steinberg rightfulness
+11 012004 37 subjective jarring capably
+12 012005 37 scatterbrain tinily impulsive
+13 012301 37 Eulerian balled starlet
+14 012302 36 dubbed persist terminators
+15 012303 37 Kane attainments untying
+16 012304 37 overlay fanatic announces FAS
+17 012305 37 perturb measures featherweight FAS
+18 012306 37 goblins rightfulness pessimist FAS
+19 012501 37 annihilates capably daughter
+20 012602 37 Wotan impulsive decliner FAS
+21 012603 37 snatching starlet lawgiver
+22 012604 37 concludes terminators stated
+23 012605 37 laterally untying readable
+24 012606 37 yelped announces attrition
+25 012701 37 grazing featherweight cascade FAS
+26 012702 37 Baird pessimist motors FAS
+27 012703 37 celery daughter interrogate
+28 012704 37 misunderstander decliner pests W
+29 013601 37 handgun lawgiver stairway
+30 013602 37 foldout stated dopers FAS
+31 013603 37 mystic readable testicle W
+32 013604 37 succumbed attrition Parsifal W
+33 013605 37 Nabisco cascade leavings
+34 013606 37 fingerings motors postulation W
+35 013607 37 aging interrogate squeaking
+36 013608 37 afield pests contrasted
+37 013609 37 ammonium stairway leftover
+38 013610 37 boat dopers whiteners
+39 013801 37 intelligibility testicle erases W
+40 013802 37 Augustine Parsifal Punjab W
+41 013803 37 teethe leavings Merritt
+42 013804 37 dreaded postulation Quixotism
+43 013901 37 scholastics squeaking sweetish FAS
+44 016001 37 audiology contrasted dogging FAS
+45 016201 37 wallet leftover scornfully FAS
+46 016202 37 parters whiteners bellow
+47 016301 37 eschew erases bills
+48 016302 37 quitter Punjab cupboard FAS
+49 016303 37 neat Merritt sureties FAS
+50 016304 37 Steinberg Quixotism puddings
+51 018001 37 jarring sweetish tapestry
+52 018002 37 tinily dogging fetters
+53 018003 37 balled scornfully bivalves
+54 018004 37 persist bellow incurring
+55 018005 37 attainments bills Adolph
+56 018007 37 fanatic cupboard pithed
+57 018008 37 measures sureties emergency
+58 018009 37 rightfulness puddings Miles
+59 018010 37 capably tapestry trimmings
+60 018012 37 impulsive fetters tragedies W
+61 018013 37 starlet bivalves skulking W
+62 018014 37 terminators incurring flint
+63 018015 37 untying Adolph flopping W
+64 018016 37 announces pithed relaxing FAS
+65 018017 37 featherweight emergency offload FAS
+66 018018 37 pessimist Miles suites W
+67 018019 37 daughter trimmings lists FAS
+68 018020 37 decliner tragedies animized FAS
+69 018021 37 lawgiver skulking multilayer W
+70 018022 37 stated flint standardizes FAS
+71 018023 37 readable flopping Judas
+72 018024 37 attrition relaxing vacuuming W
+73 018025 37 cascade offload dentally W
+74 018026 37 motors suites humanness W
+75 018027 37 interrogate lists inch W
+76 018028 37 pests animized Weissmuller W
+77 018029 37 stairway multilayer irresponsibly W
+78 018030 37 dopers standardizes luckily FAS
+79 018032 37 testicle Judas culled W
+80 018033 37 Parsifal vacuuming medical FAS
+81 018034 37 leavings dentally bloodbath FAS
+82 018035 37 postulation humanness subschema W
+83 018036 37 squeaking inch animals W
+84 018037 37 contrasted Weissmuller Micronesia
+85 018038 37 leftover irresponsibly repetitions
+86 018039 37 whiteners luckily Antares
+87 018040 37 erases culled ventilate W
+88 018041 37 Punjab medical pityingly
+89 018042 37 Merritt bloodbath interdependent
+90 018043 37 Quixotism subschema Graves FAS
+91 018044 37 sweetish animals neonatal
+92 018045 37 dogging Micronesia scribbled FAS
+93 018046 37 scornfully repetitions chafe W
+94 018048 37 bellow Antares honoring
+95 018049 37 bills ventilate realtor
+96 018050 37 cupboard pityingly elite
+97 018051 37 sureties interdependent funereal
+98 018052 37 puddings Graves abrogating
+99 018053 50 tapestry neonatal sorters
+100 018054 37 fetters scribbled Conley
+101 018055 37 bivalves chafe lectured
+102 018056 37 incurring honoring Abraham
+103 018057 37 Adolph realtor Hawaii W
+104 018058 37 pithed elite cage
+105 018059 36 emergency funereal hushes
+106 018060 37 Miles abrogating Simla
+107 018061 37 trimmings sorters reporters
+108 018101 37 tragedies Conley Dutchman FAS
+109 018102 37 skulking lectured descendants FAS
+110 018103 37 flint Abraham groupings FAS
+111 018104 37 flopping Hawaii dissociate
+112 018201 37 relaxing cage coexist W
+113 018202 37 offload hushes Beebe
+114 018402 37 suites Simla Taoism
+115 018403 37 lists reporters Connally
+116 018404 37 animized Dutchman fetched FAS
+117 018405 37 multilayer descendants checkpoints FAS
+118 018406 37 standardizes groupings rusting
+119 018409 37 Judas dissociate galling
+120 018601 37 vacuuming coexist obliterates
+121 018602 37 dentally Beebe traitor
+122 018603 37 humanness Taoism resumes FAS
+123 018801 37 inch Connally analyzable FAS
+124 018802 37 Weissmuller fetched terminator FAS
+125 018803 37 irresponsibly checkpoints gritty FAS
+126 018804 37 luckily rusting firearm W
+127 018805 37 culled galling minima
+128 018806 37 medical obliterates Selfridge
+129 018807 37 bloodbath traitor disable
+130 018808 37 subschema resumes witchcraft W
+131 018809 37 animals analyzable betroth W
+132 018810 37 Micronesia terminator Manhattanize
+133 018811 37 repetitions gritty imprint
+134 018812 37 Antares firearm peeked
+135 019101 37 ventilate minima swelling
+136 019102 37 pityingly Selfridge interrelationships W
+137 019103 37 interdependent disable riser
+138 019201 37 Graves witchcraft Gandhian W
+139 030501 37 neonatal betroth peacock A
+140 030502 50 scribbled Manhattanize bee A
+141 030503 37 chafe imprint kanji
+142 030504 37 honoring peeked dental
+143 031901 37 realtor swelling scarf FAS
+144 036001 37 elite interrelationships chasm A
+145 036002 37 funereal riser insolence A
+146 036004 37 abrogating Gandhian syndicate
+147 036005 37 sorters peacock alike
+148 038001 37 Conley bee imperial A
+149 038002 37 lectured kanji convulsion A
+150 038003 37 Abraham dental railway A
+151 038004 37 Hawaii scarf validate A
+152 038005 37 cage chasm normalizes A
+153 038006 37 hushes insolence comprehensive
+154 038007 37 Simla syndicate chewing
+155 038008 37 reporters alike denizen
+156 038009 37 Dutchman imperial schemer
+157 038010 37 descendants convulsion chronicle
+158 038011 37 groupings railway Kline
+159 038012 37 dissociate validate Anatole
+160 038013 37 coexist normalizes partridges
+161 038014 37 Beebe comprehensive brunch
+162 038015 37 Taoism chewing recruited
+163 038016 37 Connally denizen dimensions W
+164 038017 37 fetched schemer Chicana W
+165 038018 37 checkpoints chronicle announced
+166 038101 37 rusting Kline praised FAS
+167 038102 37 galling Anatole employing
+168 038103 37 obliterates partridges linear
+169 038104 37 traitor brunch quagmire
+170 038201 37 resumes recruited western A
+171 038202 37 analyzable dimensions relishing
+172 038203 37 terminator Chicana serving A
+173 038204 37 gritty announced scheduling
+174 038205 37 firearm praised lore
+175 038206 37 minima employing eventful
+176 038208 37 Selfridge linear arteriole A
+177 042801 37 disable quagmire disentangle
+178 042802 37 witchcraft western cured A
+179 046101 37 betroth relishing Fenton W
+180 048001 37 Manhattanize serving avoidable A
+181 048002 37 imprint scheduling drains A
+182 048003 37 peeked lore detectably FAS
+183 048004 37 swelling eventful husky
+184 048005 37 interrelationships arteriole impelling
+185 048006 37 riser disentangle undoes
+186 048007 37 Gandhian cured evened
+187 048008 37 peacock Fenton squeezes
+188 048101 37 bee avoidable destroyer FAS
+189 048102 37 kanji drains rudeness
+190 048201 37 dental detectably beaner FAS
+191 048202 37 scarf husky boorish
+192 048203 37 chasm impelling Everhart
+193 048204 37 insolence undoes encompass A
+194 048205 37 syndicate evened mushrooms
+195 048301 37 alike squeezes Alison A
+196 048302 37 imperial destroyer externally FAS
+197 048303 37 convulsion rudeness pellagra
+198 048304 37 railway beaner cult
+199 048305 37 validate boorish creek A
+200 048401 37 normalizes Everhart Huffman
+201 048402 37 comprehensive encompass Majorca FAS
+202 048403 37 chewing mushrooms governing A
+203 048404 37 denizen Alison gadfly FAS
+204 048405 37 schemer externally reassigned FAS
+205 048406 37 chronicle pellagra intentness W
+206 048407 37 Kline cult craziness
+207 048408 37 Anatole creek psychic
+208 048409 37 partridges Huffman squabbled
+209 048410 37 brunch Majorca burlesque
+210 048411 37 recruited governing capped
+211 048412 37 dimensions gadfly extracted A
+212 048413 37 Chicana reassigned DiMaggio
+213 048601 37 announced intentness exclamation FAS
+214 048602 37 praised craziness subdirectory
+215 048603 37 employing psychic fangs
+216 048604 37 linear squabbled buyer A
+217 048801 37 quagmire burlesque pithing A
+218 050901 37 western capped transistorizing A
+219 051201 37 relishing extracted nonbiodegradable
+220 056002 37 serving DiMaggio dislocate
+221 056003 37 scheduling exclamation monochromatic FAS
+222 056004 37 lore subdirectory batting
+223 056102 37 eventful fangs postcondition A
+224 056203 37 arteriole buyer catalog FAS
+225 056204 37 disentangle pithing Remus
+226 058003 37 cured transistorizing devices A
+227 058004 37 Fenton nonbiodegradable bike A
+228 058005 37 avoidable dislocate qualify
+229 058006 37 drains monochromatic detained
+230 058007 37 detectably batting commended
+231 058101 37 husky postcondition civilize
+232 058102 37 impelling catalog Elmhurst
+233 058103 37 undoes Remus anesthetizing
+234 058105 37 evened devices deaf
+235 058111 37 squeezes bike Brigham
+236 058112 37 destroyer qualify title
+237 058113 37 rudeness detained coarse
+238 058114 37 beaner commended combinations
+239 058115 37 boorish civilize grayness
+240 058116 37 Everhart Elmhurst innumerable FAS
+241 058117 37 encompass anesthetizing Caroline A
+242 058118 37 mushrooms deaf fatty FAS
+243 058119 37 Alison Brigham eastbound
+244 058120 37 externally title inexperienced
+245 058121 37 pellagra coarse hoarder A
+246 058122 37 cult combinations scotch W
+247 058123 37 creek grayness passport A
+248 058124 37 Huffman innumerable strategic FAS
+249 058125 37 Majorca Caroline gated
+250 058126 37 governing fatty flog
+251 058127 37 gadfly eastbound Pipestone
+252 058128 37 reassigned inexperienced Dar
+253 058201 37 intentness hoarder Corcoran
+254 058202 37 craziness scotch flyers A
+255 058303 37 psychic passport competitions W
+256 058304 37 squabbled strategic suppliers FAS
+257 058602 37 burlesque gated skips
+258 058603 37 capped flog institutes
+259 058604 37 extracted Pipestone troop A
+260 058605 37 DiMaggio Dar connective W
+261 058606 37 exclamation Corcoran denies
+262 058607 37 subdirectory flyers polka
+263 060401 36 fangs competitions observations FAS
+264 061701 36 buyer suppliers askers
+265 066201 36 pithing skips homeless FAS
+266 066501 36 transistorizing institutes Anna
+267 068001 36 nonbiodegradable troop subdirectories W
+268 068002 36 dislocate connective decaying FAS
+269 068005 36 monochromatic denies outwitting W
+270 068006 36 batting polka Harpy W
+271 068007 36 postcondition observations crazed
+272 068008 36 catalog askers suffocate
+273 068009 36 Remus homeless provers FAS
+274 068010 36 devices Anna technically
+275 068011 36 bike subdirectories Franklinizations
+276 068202 36 qualify decaying considered
+277 068302 36 detained outwitting tinnily
+278 068303 36 commended Harpy uninterruptedly
+279 068401 36 civilize crazed whistled A
+280 068501 36 Elmhurst suffocate automate
+281 068502 36 anesthetizing provers gutting W
+282 068503 36 deaf technically surreptitious
+283 068602 36 Brigham Franklinizations Choctaw
+284 068603 36 title considered cooks
+285 068701 36 coarse tinnily millivolt FAS
+286 068702 36 combinations uninterruptedly counterpoise
+287 068703 36 grayness whistled Gothicism
+288 076001 36 innumerable automate feminine
+289 076002 36 Caroline gutting metaphysically W
+290 076101 36 fatty surreptitious sanding A
+291 076102 36 eastbound Choctaw contributorily
+292 076103 36 inexperienced cooks receivers FAS
+293 076302 36 hoarder millivolt adjourn
+294 076303 36 scotch counterpoise straggled A
+295 076304 36 passport Gothicism druggists
+296 076305 36 strategic feminine thanking FAS
+297 076306 36 gated metaphysically ostrich
+298 076307 36 flog sanding hopelessness FAS
+299 076402 36 Pipestone contributorily Eurydice
+300 076501 36 Dar receivers excitation W
+301 076502 36 Corcoran adjourn presumes FAS
+302 076701 36 flyers straggled imaginable FAS
+303 078001 36 competitions druggists concoct W
+304 078002 36 suppliers thanking peering W
+305 078003 36 skips ostrich Phelps FAS
+306 078004 36 institutes hopelessness ferociousness FAS
+307 078005 36 troop Eurydice sentences
+308 078006 36 connective excitation unlocks
+309 078007 36 denies presumes engrossing W
+310 078008 36 polka imaginable Ruth
+311 078101 36 observations concoct tying
+312 078103 36 askers peering exclaimers
+313 078104 36 homeless Phelps synergy
+314 078105 36 Anna ferociousness Huey W
+315 082101 36 subdirectories sentences merging
+316 083401 36 decaying unlocks judges A
+317 084001 36 outwitting engrossing Shylock W
+318 084002 36 Harpy Ruth Miltonism
+319 086001 36 crazed tying hen W
+320 086102 36 suffocate exclaimers honeybee FAS
+321 086201 36 provers synergy towers
+322 088001 36 technically Huey dilutes W
+323 088002 36 Franklinizations merging numerals FAS
+324 088003 36 considered judges democracy FAS
+325 088004 36 tinnily Shylock Ibero-
+326 088101 36 uninterruptedly Miltonism invalids
+327 088102 36 whistled hen behavior
+328 088103 36 automate honeybee accruing
+329 088104 36 gutting towers relics A
+330 088105 36 surreptitious dilutes rackets
+331 088106 36 Choctaw numerals Fischbein W
+332 088201 36 cooks democracy phony W
+333 088203 36 millivolt Ibero- cross FAS
+334 088204 36 counterpoise invalids cleanup
+335 088302 37 Gothicism behavior conspirator
+336 088303 37 feminine accruing label FAS
+337 088305 37 metaphysically relics university
+338 088402 37 sanding rackets cleansed FAS
+339 088501 36 contributorily Fischbein ballgown
+340 088502 36 receivers phony starlet
+341 088503 36 adjourn cross aqueous
+342 098001 58 straggled cleanup portrayal A
+343 098002 58 druggists conspirator despising W
+344 098003 58 thanking label distort W
+345 098004 58 ostrich university palmed
+346 098005 58 hopelessness cleansed faced
+347 098006 58 Eurydice ballgown silverware
+348 141903 29 excitation starlet assessor
+349 098008 58 presumes aqueous spiders
+350 098009 58 imaginable portrayal artificially
+351 098010 58 concoct despising reminiscence
+352 098011 58 peering distort Mexican
+353 098012 58 Phelps palmed obnoxious
+354 098013 58 ferociousness faced fragile
+355 098014 58 sentences silverware apprehensible
+356 098015 58 unlocks assessor births
+357 098016 58 engrossing spiders garages
+358 098017 58 Ruth artificially panty
+359 098018 58 tying reminiscence anteater
+360 098019 58 exclaimers Mexican displacement A
+361 098020 58 synergy obnoxious drovers A
+362 098021 58 Huey fragile patenting A
+363 098022 58 merging apprehensible far A
+364 098023 58 judges births shrieks
+365 098024 58 Shylock garages aligning W
+366 098025 37 Miltonism panty pragmatism
+367 106001 36 hen anteater fevers W
+368 108001 36 honeybee displacement reexamines A
+369 108002 36 towers drovers occupancies
+370 108003 36 dilutes patenting sweats FAS
+371 108004 36 numerals far modulators
+372 108005 36 democracy shrieks demand W
+373 108007 36 Ibero- aligning Madeira
+374 108008 36 invalids pragmatism Viennese W
+375 108009 36 behavior fevers chillier W
+376 108010 36 accruing reexamines wildcats FAS
+377 108011 36 relics occupancies gentle
+378 108012 36 rackets sweats Angles W
+379 108101 36 Fischbein modulators accuracies
+380 108102 36 phony demand toggle
+381 108103 36 cross Madeira Mendelssohn W
+382 108111 50 cleanup Viennese behaviorally
+383 108105 36 conspirator chillier Rochford
+384 108106 36 label wildcats mirror W
+385 108107 36 university gentle Modula
+386 108108 50 cleansed Angles clobbering
+387 108109 36 ballgown accuracies chronography
+388 108110 36 starlet toggle Eskimoizeds
+389 108201 36 aqueous Mendelssohn British W
+390 108202 36 portrayal behaviorally pitfalls
+391 108203 36 despising Rochford verify W
+392 108204 36 distort mirror scatter FAS
+393 108205 36 palmed Modula Aztecan
+394 108301 36 faced clobbering acuity W
+395 108302 36 silverware chronography sinking W
+396 112101 36 assessor Eskimoizeds beasts FAS
+397 112102 36 spiders British Witt W
+398 113701 36 artificially pitfalls physicists FAS
+399 116001 36 reminiscence verify folksong A
+400 116201 36 Mexican scatter strokes FAS
+401 116301 36 obnoxious Aztecan crowder
+402 116302 36 fragile acuity merry
+403 116601 36 apprehensible sinking cadenced
+404 116602 36 births beasts alimony A
+405 116603 36 garages Witt principled A
+406 116701 36 panty physicists golfing
+407 116702 36 anteater folksong undiscovered
+408 118001 36 displacement strokes irritates
+409 118002 36 drovers crowder patriots A
+410 118003 36 patenting merry rooms FAS
+411 118004 36 far cadenced towering W
+412 118005 36 shrieks alimony displease
+413 118006 36 aligning principled photosensitive
+414 118007 36 pragmatism golfing inking
+415 118008 36 fevers undiscovered gainers
+416 118101 36 reexamines irritates leaning A
+417 118102 36 occupancies patriots hydrant A
+418 118103 36 sweats rooms preserve
+419 118202 36 modulators towering blinded A
+420 118203 36 demand displease interactions A
+421 118204 36 Madeira photosensitive Barry
+422 118302 36 Viennese inking whiteness A
+423 118304 36 chillier gainers pastimes W
+424 118305 36 wildcats leaning Edenization
+425 118306 36 gentle hydrant Muscat
+426 118307 36 Angles preserve assassinated
+427 123101 36 accuracies blinded labeled
+428 123102 36 toggle interactions glacial A
+429 123301 36 Mendelssohn Barry implied W
+430 126001 36 behaviorally whiteness bibliographies W
+431 126002 36 Rochford pastimes Buchanan
+432 126003 36 mirror Edenization forgivably FAS
+433 126101 36 Modula Muscat innuendo A
+434 126301 36 clobbering assassinated den FAS
+435 126302 36 chronography labeled submarines W
+436 126402 36 Eskimoizeds glacial mouthful A
+437 126601 36 British implied expiring
+438 126602 36 pitfalls bibliographies unfulfilled FAS
+439 126702 36 verify Buchanan precession
+440 128001 36 scatter forgivably nullified
+441 128002 36 Aztecan innuendo affects
+442 128003 36 acuity den Cynthia
+443 128004 36 sinking submarines Chablis A
+444 128005 36 beasts mouthful betterments FAS
+445 128007 36 Witt expiring advertising
+446 128008 36 physicists unfulfilled rubies A
+447 128009 36 folksong precession southwest FAS
+448 128010 36 strokes nullified superstitious A
+449 128011 36 crowder affects tabernacle W
+450 128012 36 merry Cynthia silk A
+451 128013 36 cadenced Chablis handsomest A
+452 128014 36 alimony betterments Persian A
+453 128015 36 principled advertising analog W
+454 128016 36 golfing rubies complex W
+455 128017 36 undiscovered southwest Taoist
+456 128018 36 irritates superstitious suspend
+457 128019 36 patriots tabernacle relegated
+458 128020 36 rooms silk awesome W
+459 128021 36 towering handsomest Bruxelles
+460 128022 36 displease Persian imprecisely A
+461 128023 36 photosensitive analog televise
+462 128101 36 inking complex braking
+463 128102 36 gainers Taoist true FAS
+464 128103 36 leaning suspend disappointing FAS
+465 128104 36 hydrant relegated navally W
+466 128106 36 preserve awesome circus
+467 128107 36 blinded Bruxelles beetles
+468 128108 36 interactions imprecisely trumps
+469 128202 36 Barry televise fourscore W
+470 128203 36 whiteness braking Blackfoots
+471 128301 36 pastimes true Grady
+472 128302 36 Edenization disappointing quiets FAS
+473 128303 36 Muscat navally floundered FAS
+474 128304 36 assassinated circus profundity W
+475 128305 36 labeled beetles Garrisonian W
+476 128307 36 glacial trumps Strauss
+477 128401 36 implied fourscore cemented FAS
+478 128502 36 bibliographies Blackfoots contrition A
+479 128503 36 Buchanan Grady mutations
+480 128504 36 forgivably quiets exhibits W
+481 128505 36 innuendo floundered tits
+482 128601 36 den profundity mate A
+483 128603 36 submarines Garrisonian arches
+484 128604 36 mouthful Strauss Moll
+485 128702 36 expiring cemented ropers
+486 128703 36 unfulfilled contrition bombast
+487 128704 36 precession mutations difficultly A
+488 138001 36 nullified exhibits adsorption
+489 138002 36 affects tits definiteness FAS
+490 138003 36 Cynthia mate cultivation A
+491 138004 36 Chablis arches heals A
+492 138005 36 betterments Moll Heusen W
+493 138006 36 advertising ropers target FAS
+494 138007 36 rubies bombast cited A
+495 138008 36 southwest difficultly congresswoman W
+496 138009 36 superstitious adsorption Katherine
+497 138102 36 tabernacle definiteness titter A
+498 138103 36 silk cultivation aspire A
+499 138104 36 handsomest heals Mardis
+500 138105 36 Persian Heusen Nadia W
+501 138201 36 analog target estimating FAS
+502 138302 36 complex cited stuck A
+503 138303 36 Taoist congresswoman fifteenth A
+504 138304 36 suspend Katherine Colombo
+505 138401 29 relegated titter survey A
+506 140102 29 awesome aspire staffing
+507 140103 29 Bruxelles Mardis obtain
+508 140104 29 imprecisely Nadia loaded
+509 140105 29 televise estimating slaughtered
+510 140201 29 braking stuck lights A
+511 140701 29 true fifteenth circumference
+512 141501 29 disappointing Colombo dull A
+513 141502 29 navally survey weekly A
+514 141901 29 circus staffing wetness
+515 141902 29 beetles obtain visualized
+516 142101 29 trumps loaded Tannenbaum
+517 142102 29 fourscore slaughtered moribund
+518 142103 29 Blackfoots lights demultiplex
+519 142701 29 Grady circumference lockings
+520 143001 29 quiets dull thugs FAS
+521 143501 29 floundered weekly unnerves
+522 143502 29 profundity wetness abut
+523 148001 29 Garrisonian visualized Chippewa A
+524 148002 29 Strauss Tannenbaum stratifications A
+525 148003 29 cemented moribund signaled
+526 148004 29 contrition demultiplex Italianizes A
+527 148005 29 mutations lockings algorithmic A
+528 148006 29 exhibits thugs paranoid FAS
+529 148007 29 tits unnerves camping A
+530 148009 29 mate abut signifying A
+531 148010 29 arches Chippewa Patrice W
+532 148011 29 Moll stratifications search A
+533 148012 29 ropers signaled Angeles A
+534 148013 29 bombast Italianizes semblance
+535 148023 36 difficultly algorithmic taxed
+536 148015 29 adsorption paranoid Beatrice
+537 148016 29 definiteness camping retrace
+538 148017 29 cultivation signifying lockout
+539 148018 29 heals Patrice grammatic
+540 148019 29 Heusen search helmsman
+541 148020 29 target Angeles uniform W
+542 148021 29 cited semblance hamming
+543 148022 29 congresswoman taxed disobedience
+544 148101 29 Katherine Beatrice captivated A
+545 148102 29 titter retrace transferals A
+546 148201 29 aspire lockout cartographer A
+547 148401 29 Mardis grammatic aims FAS
+548 148402 29 Nadia helmsman Pakistani
+549 148501 29 estimating uniform burglarized FAS
+550 148502 29 stuck hamming saucepans A
+551 148503 29 fifteenth disobedience lacerating A
+552 148504 29 Colombo captivated corny
+553 148601 29 survey transferals megabytes FAS
+554 148602 29 staffing cartographer chancellor
+555 150701 29 obtain aims bulk A
+556 152101 29 loaded Pakistani commits A
+557 152102 29 slaughtered burglarized meson W
+558 155202 36 lights saucepans deputies
+559 155203 29 circumference lacerating northeaster A
+560 155204 29 dull corny dipole
+561 155205 29 weekly megabytes machining 0
+562 156001 29 wetness chancellor therefore
+563 156002 29 visualized bulk Telefunken
+564 156102 29 Tannenbaum commits salvaging
+565 156301 29 moribund meson Corinthianizes A
+566 156302 29 demultiplex deputies restlessly A
+567 156303 29 lockings northeaster bromides
+568 156304 29 thugs dipole generalized A
+569 156305 29 unnerves machining mishaps
+570 156306 29 abut therefore quelling
+571 156501 29 Chippewa Telefunken spiritual A
+572 158001 29 stratifications salvaging beguiles FAS
+573 158002 29 signaled Corinthianizes Trobriand FAS
+574 158101 29 Italianizes restlessly fleeing A
+575 158102 29 algorithmic bromides Armour A
+576 158103 29 paranoid generalized chin A
+577 158201 29 camping mishaps provers A
+578 158202 29 signifying quelling aeronautic A
+579 158203 29 Patrice spiritual voltage W
+580 158204 29 search beguiles sash
+581 158301 29 Angeles Trobriand anaerobic A
+582 158302 29 semblance fleeing simultaneous A
+583 158303 29 taxed Armour accumulating A
+584 158304 29 Beatrice chin Medusan A
+585 158305 29 retrace provers shouted A
+586 158306 29 lockout aeronautic freakish
+587 158501 29 grammatic voltage index FAS
+588 160301 29 helmsman sash commercially
+589 166101 50 uniform anaerobic mistiness A
+590 166102 50 hamming simultaneous endpoint
+591 168001 29 disobedience accumulating straight A
+592 168002 29 captivated Medusan flurried
+593 168003 29 transferals shouted denotative A
+594 168101 29 cartographer freakish coming FAS
+595 168102 29 aims index commencements FAS
+596 168103 29 Pakistani commercially gentleman
+597 168104 29 burglarized mistiness gifted
+598 168202 29 saucepans endpoint Shanghais
+599 168301 29 lacerating straight sportswriting A
+600 168502 29 corny flurried sloping A
+601 168503 29 megabytes denotative navies
+602 168601 29 chancellor coming leaflet A
+603 173001 40 bulk commencements shooter
+604 173701 40 commits gentleman Joplin FAS
+605 173702 40 meson gifted babies
+606 176001 40 deputies Shanghais subdivision FAS
+607 176101 40 northeaster sportswriting burstiness W
+608 176201 40 dipole sloping belted FAS
+609 176401 40 machining navies assails FAS
+610 176501 40 therefore leaflet admiring W
+611 176601 40 Telefunken shooter swaying 0
+612 176602 40 salvaging Joplin Goldstine FAS
+613 176603 40 Corinthianizes babies fitting
+614 178001 40 restlessly subdivision Norwalk W
+615 178002 40 bromides burstiness weakening W
+616 178003 40 generalized belted analogy FAS
+617 178004 40 mishaps assails deludes
+618 178005 40 quelling admiring cokes
+619 178006 40 spiritual swaying Clayton
+620 178007 40 beguiles Goldstine exhausts
+621 178008 40 Trobriand fitting causality
+622 178101 40 fleeing Norwalk sating FAS
+623 178102 40 Armour weakening icon
+624 178103 40 chin analogy throttles
+625 178201 40 provers deludes communicants FAS
+626 178202 40 aeronautic cokes dehydrate FAS
+627 178301 40 voltage Clayton priceless FAS
+628 178302 40 sash exhausts publicly
+629 178401 40 anaerobic causality incidentals FAS
+630 178402 40 simultaneous sating commonplace
+631 178403 40 accumulating icon mumbles
+632 178404 40 Medusan throttles furthermore W
+633 178501 40 shouted communicants cautioned W
+634 186002 37 freakish dehydrate parametrized A
+635 186102 37 index priceless registration A
+636 186201 40 commercially publicly sadly FAS
+637 186202 40 mistiness incidentals positioning
+638 186203 40 endpoint commonplace babysitting
+639 186302 37 straight mumbles eternal A
+640 188007 37 flurried furthermore hoarder
+641 188008 37 denotative cautioned congregates
+642 188009 37 coming parametrized rains
+643 188010 37 commencements registration workers W
+644 188011 37 gentleman sadly sags A
+645 188012 37 gifted positioning unplug W
+646 188013 37 Shanghais babysitting garage A
+647 188014 37 sportswriting eternal boulder A
+648 188015 37 sloping hoarder hollowly A
+649 188016 37 navies congregates specifics
+650 188017 37 leaflet rains Teresa
+651 188102 37 shooter workers Winsett
+652 188103 37 Joplin sags convenient A
+653 188202 37 babies unplug buckboards FAS
+654 188301 40 subdivision garage amenities
+655 188302 40 burstiness boulder resplendent FAS
+656 188303 40 belted hollowly priding FAS
+657 188401 37 assails specifics configurations
+658 188402 37 admiring Teresa untidiness A
+659 188503 37 swaying Winsett Brice W
+660 188504 37 Goldstine convenient sews FAS
+661 188505 37 fitting buckboards participated
+662 190701 37 Norwalk amenities Simon FAS
+663 190703 50 weakening resplendent certificates
+664 191701 37 analogy priding Fitzpatrick
+665 191702 37 deludes configurations Evanston A
+666 191703 37 cokes untidiness misted
+667 196001 37 Clayton Brice textures A
+668 196002 37 exhausts sews save
+669 196003 37 causality participated count
+670 196101 37 sating Simon rightful A
+671 196103 37 icon certificates chaperone
+672 196104 37 throttles Fitzpatrick Lizzy A
+673 196201 37 communicants Evanston clenched A
+674 196202 37 dehydrate misted effortlessly
+675 196203 37 priceless textures accessed
+676 198001 37 publicly save beaters A
+677 198003 37 incidentals count Hornblower FAS
+678 198004 37 commonplace rightful vests A
+679 198005 37 mumbles chaperone indulgences FAS
+680 198006 37 furthermore Lizzy infallibly A
+681 198007 37 cautioned clenched unwilling FAS
+682 198008 37 parametrized effortlessly excrete FAS
+683 198009 37 registration accessed spools A
+684 198010 37 sadly beaters crunches FAS
+685 198011 37 positioning Hornblower overestimating FAS
+686 198012 37 babysitting vests ineffective
+687 198013 37 eternal indulgences humiliation A
+688 198014 37 hoarder infallibly sophomore
+689 198015 37 congregates unwilling star
+690 198017 37 rains excrete rifles
+691 198018 37 workers spools dialysis
+692 198019 37 sags crunches arriving
+693 198020 37 unplug overestimating indulge
+694 198021 37 garage ineffective clockers
+695 198022 37 boulder humiliation languages
+696 198023 50 hollowly sophomore Antarctica A
+697 198024 37 specifics star percentage
+698 198101 37 Teresa rifles ceiling A
+699 198103 37 Winsett dialysis specification
+700 198105 37 convenient arriving regimented A
+701 198106 37 buckboards indulge ciphers
+702 198201 37 amenities clockers pictures A
+703 198204 37 resplendent languages serpents A
+704 198301 53 priding Antarctica allot A
+705 198302 53 configurations percentage realized A
+706 198303 53 untidiness ceiling mayoral A
+707 198304 53 Brice specification opaquely A
+708 198401 37 sews regimented hostess FAS
+709 198402 37 participated ciphers fiftieth
+710 198403 37 Simon pictures incorrectly
+711 202101 37 certificates serpents decomposition FAS
+712 202301 37 Fitzpatrick allot stranglings
+713 202302 37 Evanston realized mixture FAS
+714 202303 37 misted mayoral electroencephalography FAS
+715 202304 37 textures opaquely similarities FAS
+716 202305 37 save hostess charges W
+717 202601 37 count fiftieth freest FAS
+718 202602 37 rightful incorrectly Greenberg FAS
+719 202605 37 chaperone decomposition tinting
+720 202606 37 Lizzy stranglings expelled W
+721 202607 37 clenched mixture warm
+722 202901 37 effortlessly electroencephalography smoothed
+723 202902 37 accessed similarities deductions FAS
+724 202903 37 beaters charges Romano W
+725 202904 37 Hornblower freest bitterroot
+726 202907 37 vests Greenberg corset
+727 202908 37 indulgences tinting securing
+728 203101 37 infallibly expelled environing FAS
+729 203103 37 unwilling warm cute
+730 203104 37 excrete smoothed Crays
+731 203105 37 spools deductions heiress FAS
+732 203401 37 crunches Romano inform FAS
+733 203402 37 overestimating bitterroot avenge
+734 203404 37 ineffective corset universals
+735 203901 37 humiliation securing Kinsey W
+736 203902 37 sophomore environing ravines FAS
+737 203903 37 star cute bestseller
+738 203906 37 rifles Crays equilibrium
+739 203907 37 dialysis heiress extents 0
+740 203908 37 arriving inform relatively
+741 203909 37 indulge avenge pressure FAS
+742 206101 37 clockers universals critiques FAS
+743 206201 37 languages Kinsey befouled
+744 206202 37 Antarctica ravines rightfully FAS
+745 206203 37 percentage bestseller mechanizing FAS
+746 206206 37 ceiling equilibrium Latinizes
+747 206207 37 specification extents timesharing
+748 206208 37 regimented relatively Aden
+749 208001 37 ciphers pressure embassies
+750 208002 37 pictures critiques males FAS
+751 208003 37 serpents befouled shapelessly FAS
+752 208004 37 allot rightfully genres FAS
+753 208008 37 realized mechanizing mastering
+754 208009 37 mayoral Latinizes Newtonian
+755 208010 37 opaquely timesharing finishers FAS
+756 208011 37 hostess Aden abates
+757 208101 37 fiftieth embassies teem
+758 208102 37 incorrectly males kiting FAS
+759 208103 37 decomposition shapelessly stodgy FAS
+760 208104 37 stranglings genres scalps FAS
+761 208105 37 mixture mastering feed FAS
+762 208110 37 electroencephalography Newtonian guitars
+763 208111 37 similarities finishers airships
+764 208112 37 charges abates store
+765 208113 37 freest teem denounces
+766 208201 37 Greenberg kiting Pyle FAS
+767 208203 37 tinting stodgy Saxony
+768 208301 37 expelled scalps serializations FAS
+769 208302 37 warm feed Peruvian FAS
+770 208305 37 smoothed guitars taxonomically FAS
+771 208401 37 deductions airships kingdom A
+772 208402 37 Romano store stint A
+773 208403 37 bitterroot denounces Sault A
+774 208404 37 corset Pyle faithful
+775 208501 37 securing Saxony Ganymede FAS
+776 208502 37 environing serializations tidiness FAS
+777 208503 37 cute Peruvian gainful FAS
+778 208504 37 Crays taxonomically contrary FAS
+779 208505 37 heiress kingdom Tipperary FAS
+780 210101 37 inform stint tropics W
+781 210102 37 avenge Sault theorizers
+782 210103 37 universals faithful renew 0
+783 210104 37 Kinsey Ganymede already
+784 210105 37 ravines tidiness terminal
+785 210106 37 bestseller gainful Hegelian
+786 210107 37 equilibrium contrary hypothesizer
+787 210401 37 extents Tipperary warningly FAS
+788 213201 37 relatively tropics journalizing FAS
+789 213203 37 pressure theorizers nested
+790 213204 37 critiques renew Lars
+791 213205 37 befouled already saplings
+792 213206 37 rightfully terminal foothill
+793 213207 37 mechanizing Hegelian labeled
+794 216101 37 Latinizes hypothesizer imperiously FAS
+795 216103 37 timesharing warningly reporters FAS
+796 218001 37 Aden journalizing furnishings FAS
+797 218002 37 embassies nested precipitable FAS
+798 218003 37 males Lars discounts FAS
+799 218004 37 shapelessly saplings excises FAS
+800 143503 50 genres foothill Stalin
+801 218006 37 mastering labeled despot FAS
+802 218007 37 Newtonian imperiously ripeness FAS
+803 218008 37 finishers reporters Arabia
+804 218009 37 abates furnishings unruly
+805 218010 37 teem precipitable mournfulness
+806 218011 37 kiting discounts boom FAS
+807 218020 37 stodgy excises slaughter A
+808 218021 50 scalps Stalin Sabine
+809 218022 37 feed despot handy FAS
+810 218023 37 guitars ripeness rural
+811 218024 37 airships Arabia organizer
+812 218101 37 store unruly shipyard FAS
+813 218102 37 denounces mournfulness civics FAS
+814 218103 37 Pyle boom inaccuracy FAS
+815 218201 37 Saxony slaughter rules FAS
+816 218202 37 serializations Sabine juveniles FAS
+817 218203 37 Peruvian handy comprised W
+818 218204 37 taxonomically rural investigations
+819 218205 37 kingdom organizer stabilizes A
+820 218301 37 stint shipyard seminaries FAS
+821 218302 37 Sault civics Hunter A
+822 218401 37 faithful inaccuracy sporty FAS
+823 218402 37 Ganymede rules test FAS
+824 218403 37 tidiness juveniles weasels
+825 218404 37 gainful comprised CERN
+826 218407 37 contrary investigations tempering
+827 218408 37 Tipperary stabilizes afore FAS
+828 218409 37 tropics seminaries Galatean
+829 218410 37 theorizers Hunter techniques W
+830 226001 37 renew sporty error
+831 226002 37 already test veranda
+832 226003 37 terminal weasels severely
+833 226004 37 Hegelian CERN Cassites FAS
+834 226005 37 hypothesizer tempering forthcoming
+835 226006 37 warningly afore guides
+836 226007 37 journalizing Galatean vanish FAS
+837 226008 37 nested techniques lied A
+838 226203 37 Lars error sawtooth FAS
+839 226204 37 saplings veranda fated FAS
+840 226205 37 foothill severely gradually
+841 226206 37 labeled Cassites widens
+842 226207 37 imperiously forthcoming preclude
+843 226208 37 reporters guides Jobrel
+844 226209 37 furnishings vanish hooker
+845 226210 37 precipitable lied rainstorm
+846 226211 37 discounts sawtooth disconnects
+847 228001 37 excises fated cruelty
+848 228004 37 Stalin gradually exponentials A
+849 228005 37 despot widens affective A
+850 228006 37 ripeness preclude arteries
+851 228007 37 Arabia Jobrel Crosby FAS
+852 228008 37 unruly hooker acquaint
+853 228009 37 mournfulness rainstorm evenhandedly
+854 228101 37 boom disconnects percentage
+855 228108 37 slaughter cruelty disobedience
+856 228109 37 Sabine exponentials humility
+857 228110 37 handy affective gleaning A
+858 228111 37 rural arteries petted A
+859 228112 37 organizer Crosby bloater A
+860 228113 37 shipyard acquaint minion A
+861 228114 37 civics evenhandedly marginal A
+862 228115 37 inaccuracy percentage apiary A
+863 228116 37 rules disobedience measures
+864 228117 37 juveniles humility precaution
+865 228118 37 comprised gleaning repelled
+866 228119 37 investigations petted primary FAS
+867 228120 37 stabilizes bloater coverings
+868 228121 37 seminaries minion Artemia A
+869 228122 37 Hunter marginal navigate
+870 228201 37 sporty apiary spatial
+871 228206 37 test measures Gurkha
+872 228207 37 weasels precaution meanwhile A
+873 228208 37 CERN repelled Melinda A
+874 228209 37 tempering primary Butterfield
+875 228210 37 afore coverings Aldrich A
+876 228211 37 Galatean Artemia previewing A
+877 228212 37 techniques navigate glut A
+878 228213 37 error spatial unaffected
+879 228214 37 veranda Gurkha inmate
+880 228301 37 severely meanwhile mineral
+881 228305 37 Cassites Melinda impending A
+882 228306 37 forthcoming Butterfield meditation A
+883 228307 37 guides Aldrich ideas
+884 228308 37 vanish previewing miniaturizes W
+885 228309 37 lied glut lewdly
+886 228310 37 sawtooth unaffected title
+887 228311 37 fated inmate youthfulness
+888 228312 37 gradually mineral creak FAS
+889 228313 37 widens impending Chippewa
+890 228314 37 preclude meditation clamored
+891 228401 65 Jobrel ideas freezes
+892 228402 65 hooker miniaturizes forgivably FAS
+893 228403 65 rainstorm lewdly reduce FAS
+894 228404 65 disconnects title McGovern W
+895 228405 65 cruelty youthfulness Nazis W
+896 228406 65 exponentials creak epistle W
+897 228407 65 affective Chippewa socializes W
+898 228408 65 arteries clamored conceptions
+899 228409 65 Crosby freezes Kevin
+900 228410 65 acquaint forgivably uncovering
+901 230301 37 evenhandedly reduce chews FAS
+902 230302 37 percentage McGovern appendixes FAS
+903 230303 37 disobedience Nazis raining
+904 018062 37 humility epistle infest
+905 230501 37 gleaning socializes compartment
+906 230502 37 petted conceptions minting
+907 230503 37 bloater Kevin ducks
+908 230504 37 minion uncovering roped A
+909 230505 37 marginal chews waltz
+910 230506 37 apiary appendixes Lillian
+911 230507 37 measures raining repressions A
+912 230508 37 precaution infest chillingly
+913 230509 37 repelled compartment noncritical
+914 230901 37 primary minting lithograph
+915 230902 37 coverings ducks spongers
+916 230903 37 Artemia roped parenthood
+917 230904 37 navigate waltz posed
+918 230905 37 spatial Lillian instruments
+919 230906 37 Gurkha repressions filial
+920 230907 37 meanwhile chillingly fixedly
+921 230908 37 Melinda noncritical relives
+922 230909 37 Butterfield lithograph Pandora
+923 230910 37 Aldrich spongers watering A
+924 230911 37 previewing parenthood ungrateful
+925 230912 37 glut posed secures
+926 230913 37 unaffected instruments chastisers
+927 230914 37 inmate filial icon
+928 231304 37 mineral fixedly reuniting A
+929 231305 37 impending relives imagining A
+930 231306 37 meditation Pandora abiding A
+931 231307 37 ideas watering omnisciently
+932 231308 37 miniaturizes ungrateful Britannic
+933 231309 37 lewdly secures scholastics A
+934 231310 37 title chastisers mechanics A
+935 231311 37 youthfulness icon humidly A
+936 231312 37 creak reuniting masterpiece
+937 231313 37 Chippewa imagining however
+938 231314 37 clamored abiding Mendelian
+939 231315 37 freezes omnisciently jarred
+940 232102 37 forgivably Britannic scolds
+941 232103 37 reduce scholastics infatuate
+942 232104 37 McGovern mechanics willed A
+943 232105 37 Nazis humidly joyfully
+944 232106 37 epistle masterpiece Microsoft
+945 232107 37 socializes however fibrosities
+946 232108 37 conceptions Mendelian Baltimorean
+947 232601 37 Kevin jarred equestrian
+948 232602 37 uncovering scolds Goodrich
+949 232603 37 chews infatuate apish A
+950 232605 37 appendixes willed Adlerian
+5950 1232605 37 appendixes willed Adlerian
+5951 1232606 37 appendixes willed Adlerian
+5952 1232607 37 appendixes willed Adlerian
+5953 1232608 37 appendixes willed Adlerian
+5954 1232609 37 appendixes willed Adlerian
+951 232606 37 raining joyfully Tropez
+952 232607 37 infest Microsoft nouns
+953 232608 37 compartment fibrosities distracting
+954 232609 37 minting Baltimorean mutton
+955 236104 37 ducks equestrian bridgeable A
+956 236105 37 roped Goodrich stickers A
+957 236106 37 waltz apish transcontinental A
+958 236107 37 Lillian Adlerian amateurish
+959 236108 37 repressions Tropez Gandhian
+960 236109 37 chillingly nouns stratified
+961 236110 37 noncritical distracting chamberlains
+962 236111 37 lithograph mutton creditably
+963 236112 37 spongers bridgeable philosophic
+964 236113 37 parenthood stickers ores
+965 238005 37 posed transcontinental Carleton
+966 238006 37 instruments amateurish tape A
+967 238007 37 filial Gandhian afloat A
+968 238008 37 fixedly stratified goodness A
+969 238009 37 relives chamberlains welcoming
+970 238010 37 Pandora creditably Pinsky FAS
+971 238011 37 watering philosophic halting
+972 238012 37 ungrateful ores bibliography
+973 238013 37 secures Carleton decoding
+974 240401 41 chastisers tape variance A
+975 240402 41 icon afloat allowed A
+976 240901 41 reuniting goodness dire A
+977 240902 41 imagining welcoming dub A
+978 241801 41 abiding Pinsky poisoning
+979 242101 41 omnisciently halting Iraqis A
+980 242102 41 Britannic bibliography heaving
+981 242201 41 scholastics decoding population A
+982 242202 41 mechanics variance bomb A
+983 242501 41 humidly allowed Majorca A
+984 242502 41 masterpiece dire Gershwins
+985 246201 41 however dub explorers
+986 246202 41 Mendelian poisoning libretto A
+987 246203 41 jarred Iraqis occurred
+988 246204 41 scolds heaving Lagos
+989 246205 41 infatuate population rats
+990 246301 41 willed bomb bankruptcies A
+991 246302 41 joyfully Majorca crying
+992 248001 41 Microsoft Gershwins unexpected
+993 248002 41 fibrosities explorers accessed A
+994 248003 41 Baltimorean libretto colorful A
+995 248004 41 equestrian occurred versatility A
+996 248005 41 Goodrich Lagos cosy
+997 248006 41 apish rats Darius A
+998 248007 41 Adlerian bankruptcies mastering A
+999 248008 41 Tropez crying Asiaticizations A
+1000 248009 41 nouns unexpected offerers A
+1001 248010 41 distracting accessed uncles A
+1002 248011 41 mutton colorful sleepwalk
+1003 248012 41 bridgeable versatility Ernestine
+1004 248013 41 stickers cosy checksumming
+1005 248014 41 transcontinental Darius stopped
+1006 248015 41 amateurish mastering sicker
+1007 248016 41 Gandhian Asiaticizations Italianization
+1008 248017 41 stratified offerers alphabetic
+1009 248018 41 chamberlains uncles pharmaceutic
+1010 248019 41 creditably sleepwalk creator
+1011 248020 41 philosophic Ernestine chess
+1012 248021 41 ores checksumming charcoal
+1013 248101 41 Carleton stopped Epiphany A
+1014 248102 41 tape sicker bulldozes A
+1015 248201 41 afloat Italianization Pygmalion A
+1016 248202 41 goodness alphabetic caressing A
+1017 248203 41 welcoming pharmaceutic Palestine A
+1018 248204 41 Pinsky creator regimented A
+1019 248205 41 halting chess scars A
+1020 248206 41 bibliography charcoal realest A
+1021 248207 41 decoding Epiphany diffusing A
+1022 248208 41 variance bulldozes clubroom A
+1023 248209 41 allowed Pygmalion Blythe A
+1024 248210 41 dire caressing ahead
+1025 248211 50 dub Palestine reviver
+1026 250501 34 poisoning regimented retransmitting A
+1027 250502 34 Iraqis scars landslide
+1028 250503 34 heaving realest Eiffel
+1029 250504 34 population diffusing absentee
+1030 250505 34 bomb clubroom aye
+1031 250601 34 Majorca Blythe forked A
+1032 250602 34 Gershwins ahead Peruvianizes
+1033 250603 34 explorers reviver clerked
+1034 250604 34 libretto retransmitting tutor
+1035 250605 34 occurred landslide boulevard
+1036 251001 34 Lagos Eiffel shuttered
+1037 251002 34 rats absentee quotes A
+1038 251003 34 bankruptcies aye Caltech
+1039 251004 34 crying forked Mossberg
+1040 251005 34 unexpected Peruvianizes kept
+1041 251301 34 accessed clerked roundly
+1042 251302 34 colorful tutor features A
+1043 251303 34 versatility boulevard imaginable A
+1044 251304 34 cosy shuttered controller
+1045 251305 34 Darius quotes racial
+1046 251401 34 mastering Caltech uprisings A
+1047 251402 34 Asiaticizations Mossberg narrowed A
+1048 251403 34 offerers kept cannot A
+1049 251404 34 uncles roundly vest
+1050 251405 34 sleepwalk features famine
+1051 251406 34 Ernestine imaginable sugars
+1052 251801 34 checksumming controller exterminated A
+1053 251802 34 stopped racial belays
+1054 252101 34 sicker uprisings Hodges A
+1055 252102 34 Italianization narrowed translatable
+1056 252301 34 alphabetic cannot duality A
+1057 252302 34 pharmaceutic vest recording A
+1058 252303 34 creator famine rouses A
+1059 252304 34 chess sugars poison
+1060 252305 34 charcoal exterminated attitude
+1061 252306 34 Epiphany belays dusted
+1062 252307 34 bulldozes Hodges encompasses
+1063 252308 34 Pygmalion translatable presentation
+1064 252309 34 caressing duality Kantian
+1065 256001 34 Palestine recording imprecision A
+1066 256002 34 regimented rouses saving
+1067 256003 34 scars poison maternal
+1068 256004 34 realest attitude hewed
+1069 256005 34 diffusing dusted kerosene
+1070 258001 34 clubroom encompasses Cubans
+1071 258002 34 Blythe presentation photographers
+1072 258003 34 ahead Kantian nymph A
+1073 258004 34 reviver imprecision bedlam A
+1074 258005 34 retransmitting saving north A
+1075 258006 34 landslide maternal Schoenberg A
+1076 258007 34 Eiffel hewed botany A
+1077 258008 34 absentee kerosene curs
+1078 258009 34 aye Cubans solidification
+1079 258010 34 forked photographers inheritresses
+1080 258011 34 Peruvianizes nymph stiller
+1081 258101 68 clerked bedlam t1 A
+1082 258102 68 tutor north suite A
+1083 258103 34 boulevard Schoenberg ransomer
+1084 258104 68 shuttered botany Willy
+1085 258105 68 quotes curs Rena A
+1086 258106 68 Caltech solidification Seattle A
+1087 258107 68 Mossberg inheritresses relaxes A
+1088 258108 68 kept stiller exclaim
+1089 258109 68 roundly t1 implicated A
+1090 258110 68 features suite distinguish
+1091 258111 68 imaginable ransomer assayed
+1092 258112 68 controller Willy homeowner
+1093 258113 68 racial Rena and
+1094 258201 34 uprisings Seattle stealth
+1095 258202 34 narrowed relaxes coinciding A
+1096 258203 34 cannot exclaim founder A
+1097 258204 34 vest implicated environing
+1098 258205 34 famine distinguish jewelry
+1099 258301 34 sugars assayed lemons A
+1100 258401 34 exterminated homeowner brokenness A
+1101 258402 34 belays and bedpost A
+1102 258403 34 Hodges stealth assurers A
+1103 258404 34 translatable coinciding annoyers
+1104 258405 34 duality founder affixed
+1105 258406 34 recording environing warbling
+1106 258407 34 rouses jewelry seriously
+1107 228123 37 poison lemons boasted
+1108 250606 34 attitude brokenness Chantilly
+1109 208405 37 dusted bedpost Iranizes
+1110 212101 37 encompasses assurers violinist
+1111 218206 37 presentation annoyers extramarital
+1112 150401 37 Kantian affixed spates
+1113 248212 41 imprecision warbling cloakroom
+1114 128026 00 saving seriously gazer
+1115 128024 00 maternal boasted hand
+1116 128027 00 hewed Chantilly tucked
+1117 128025 00 kerosene Iranizes gems
+1118 128109 00 Cubans violinist clinker
+1119 128705 00 photographers extramarital refiner
+1120 126303 00 nymph spates callus
+1121 128308 00 bedlam cloakroom leopards
+1122 128204 00 north gazer comfortingly
+1123 128205 00 Schoenberg hand generically
+1124 128206 00 botany tucked getters
+1125 128207 00 curs gems sexually
+1126 118205 00 solidification clinker spear
+1127 116801 00 inheritresses refiner serums
+1128 116803 00 stiller callus Italianization
+1129 116804 00 t1 leopards attendants
+1130 116802 00 suite comfortingly spies
+1131 128605 00 ransomer generically Anthony
+1132 118308 00 Willy getters planar
+1133 113702 00 Rena sexually cupped
+1134 113703 00 Seattle spear cleanser
+1135 112103 00 relaxes serums commuters
+1136 118009 00 exclaim Italianization honeysuckle
+5136 1118009 00 exclaim Italianization honeysuckle
+1137 138011 00 implicated attendants orphanage
+1138 138010 00 distinguish spies skies
+1139 138012 00 assayed Anthony crushers
+1140 068304 00 homeowner planar Puritan
+1141 078009 00 and cupped squeezer
+1142 108013 00 stealth cleanser bruises
+1143 084004 00 coinciding commuters bonfire
+1144 083402 00 founder honeysuckle Colombo
+1145 084003 00 environing orphanage nondecreasing
+1146 088504 00 jewelry skies innocents
+1147 088005 00 lemons crushers masked
+1148 088007 00 brokenness Puritan file
+1149 088006 00 bedpost squeezer brush
+1150 148025 00 assurers bruises mutilate
+1151 148024 00 annoyers bonfire mommy
+1152 138305 00 affixed Colombo bulkheads
+1153 138306 00 warbling nondecreasing undeclared
+1154 152701 00 seriously innocents displacements
+1155 148505 00 boasted masked nieces
+1156 158003 00 Chantilly file coeducation
+1157 156201 00 Iranizes brush brassy
+1158 156202 00 violinist mutilate authenticator
+1159 158307 00 extramarital mommy Washoe
+1160 158402 00 spates bulkheads penny
+1161 158401 00 cloakroom undeclared Flagler
+1162 068013 00 gazer displacements stoned
+1163 068012 00 hand nieces cranes
+1164 068203 00 tucked coeducation masterful
+1165 088205 00 gems brassy biracial
+1166 068704 00 clinker authenticator steamships
+1167 068604 00 refiner Washoe windmills
+1168 158502 00 callus penny exploit
+1169 123103 00 leopards Flagler riverfront
+1170 148026 00 comfortingly stoned sisterly
+1171 123302 00 generically cranes sharpshoot
+1172 076503 00 getters masterful mittens
+1173 126304 00 sexually biracial interdependency
+1174 068306 00 spear steamships policy
+1175 143504 00 serums windmills unleashing
+1176 160201 00 Italianization exploit pretenders
+1177 148028 00 attendants riverfront overstatements
+1178 148027 00 spies sisterly birthed
+1179 143505 00 Anthony sharpshoot opportunism
+1180 108014 00 planar mittens showroom
+1181 076104 00 cupped interdependency compromisingly
+1182 078106 00 cleanser policy Medicare
+1183 126102 00 commuters unleashing corresponds
+1184 128029 00 honeysuckle pretenders hardware
+1185 128028 00 orphanage overstatements implant
+1186 018410 00 skies birthed Alicia
+1187 128110 00 crushers opportunism requesting
+1188 148506 00 Puritan showroom produced
+1189 123303 00 squeezer compromisingly criticizes
+1190 123304 00 bruises Medicare backer
1191 068504 00 bonfire corresponds positively
-select count(*) from t4;
-count(*)
-1203
+1192 068305 00 Colombo hardware colicky
+1193 000000 00 nondecreasing implant thrillingly
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+INSERT INTO t2 VALUES (1,000001,00,'Omaha','teethe','neat','') , (2,011401,37,'breaking','dreaded','Steinberg','W') , (3,011402,37,'Romans','scholastics','jarring','') , (4,011403,37,'intercepted','audiology','tinily','');
+SELECT * FROM t2;
+auto fld1 companynr fld3 fld4 fld5 fld6
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+5 011501 37 bewilderingly wallet balled
+6 011701 37 astound parters persist W
+7 011702 37 admonishing eschew attainments
+8 011703 37 sumac quitter fanatic
+9 012001 37 flanking neat measures FAS
+10 012003 37 combed Steinberg rightfulness
+11 012004 37 subjective jarring capably
+12 012005 37 scatterbrain tinily impulsive
+13 012301 37 Eulerian balled starlet
+14 012302 36 dubbed persist terminators
+15 012303 37 Kane attainments untying
+16 012304 37 overlay fanatic announces FAS
+17 012305 37 perturb measures featherweight FAS
+18 012306 37 goblins rightfulness pessimist FAS
+19 012501 37 annihilates capably daughter
+20 012602 37 Wotan impulsive decliner FAS
+21 012603 37 snatching starlet lawgiver
+22 012604 37 concludes terminators stated
+23 012605 37 laterally untying readable
+24 012606 37 yelped announces attrition
+25 012701 37 grazing featherweight cascade FAS
+26 012702 37 Baird pessimist motors FAS
+27 012703 37 celery daughter interrogate
+28 012704 37 misunderstander decliner pests W
+29 013601 37 handgun lawgiver stairway
+30 013602 37 foldout stated dopers FAS
+31 013603 37 mystic readable testicle W
+32 013604 37 succumbed attrition Parsifal W
+33 013605 37 Nabisco cascade leavings
+34 013606 37 fingerings motors postulation W
+35 013607 37 aging interrogate squeaking
+36 013608 37 afield pests contrasted
+37 013609 37 ammonium stairway leftover
+38 013610 37 boat dopers whiteners
+39 013801 37 intelligibility testicle erases W
+40 013802 37 Augustine Parsifal Punjab W
+41 013803 37 teethe leavings Merritt
+42 013804 37 dreaded postulation Quixotism
+43 013901 37 scholastics squeaking sweetish FAS
+44 016001 37 audiology contrasted dogging FAS
+45 016201 37 wallet leftover scornfully FAS
+46 016202 37 parters whiteners bellow
+47 016301 37 eschew erases bills
+48 016302 37 quitter Punjab cupboard FAS
+49 016303 37 neat Merritt sureties FAS
+50 016304 37 Steinberg Quixotism puddings
+51 018001 37 jarring sweetish tapestry
+52 018002 37 tinily dogging fetters
+53 018003 37 balled scornfully bivalves
+54 018004 37 persist bellow incurring
+55 018005 37 attainments bills Adolph
+56 018007 37 fanatic cupboard pithed
+57 018008 37 measures sureties emergency
+58 018009 37 rightfulness puddings Miles
+59 018010 37 capably tapestry trimmings
+60 018012 37 impulsive fetters tragedies W
+61 018013 37 starlet bivalves skulking W
+62 018014 37 terminators incurring flint
+63 018015 37 untying Adolph flopping W
+64 018016 37 announces pithed relaxing FAS
+65 018017 37 featherweight emergency offload FAS
+66 018018 37 pessimist Miles suites W
+67 018019 37 daughter trimmings lists FAS
+68 018020 37 decliner tragedies animized FAS
+69 018021 37 lawgiver skulking multilayer W
+70 018022 37 stated flint standardizes FAS
+71 018023 37 readable flopping Judas
+72 018024 37 attrition relaxing vacuuming W
+73 018025 37 cascade offload dentally W
+74 018026 37 motors suites humanness W
+75 018027 37 interrogate lists inch W
+76 018028 37 pests animized Weissmuller W
+77 018029 37 stairway multilayer irresponsibly W
+78 018030 37 dopers standardizes luckily FAS
+79 018032 37 testicle Judas culled W
+80 018033 37 Parsifal vacuuming medical FAS
+81 018034 37 leavings dentally bloodbath FAS
+82 018035 37 postulation humanness subschema W
+83 018036 37 squeaking inch animals W
+84 018037 37 contrasted Weissmuller Micronesia
+85 018038 37 leftover irresponsibly repetitions
+86 018039 37 whiteners luckily Antares
+87 018040 37 erases culled ventilate W
+88 018041 37 Punjab medical pityingly
+89 018042 37 Merritt bloodbath interdependent
+90 018043 37 Quixotism subschema Graves FAS
+91 018044 37 sweetish animals neonatal
+92 018045 37 dogging Micronesia scribbled FAS
+93 018046 37 scornfully repetitions chafe W
+94 018048 37 bellow Antares honoring
+95 018049 37 bills ventilate realtor
+96 018050 37 cupboard pityingly elite
+97 018051 37 sureties interdependent funereal
+98 018052 37 puddings Graves abrogating
+99 018053 50 tapestry neonatal sorters
+100 018054 37 fetters scribbled Conley
+101 018055 37 bivalves chafe lectured
+102 018056 37 incurring honoring Abraham
+103 018057 37 Adolph realtor Hawaii W
+104 018058 37 pithed elite cage
+105 018059 36 emergency funereal hushes
+106 018060 37 Miles abrogating Simla
+107 018061 37 trimmings sorters reporters
+108 018101 37 tragedies Conley Dutchman FAS
+109 018102 37 skulking lectured descendants FAS
+110 018103 37 flint Abraham groupings FAS
+111 018104 37 flopping Hawaii dissociate
+112 018201 37 relaxing cage coexist W
+113 018202 37 offload hushes Beebe
+114 018402 37 suites Simla Taoism
+115 018403 37 lists reporters Connally
+116 018404 37 animized Dutchman fetched FAS
+117 018405 37 multilayer descendants checkpoints FAS
+118 018406 37 standardizes groupings rusting
+119 018409 37 Judas dissociate galling
+120 018601 37 vacuuming coexist obliterates
+121 018602 37 dentally Beebe traitor
+122 018603 37 humanness Taoism resumes FAS
+123 018801 37 inch Connally analyzable FAS
+124 018802 37 Weissmuller fetched terminator FAS
+125 018803 37 irresponsibly checkpoints gritty FAS
+126 018804 37 luckily rusting firearm W
+127 018805 37 culled galling minima
+128 018806 37 medical obliterates Selfridge
+129 018807 37 bloodbath traitor disable
+130 018808 37 subschema resumes witchcraft W
+131 018809 37 animals analyzable betroth W
+132 018810 37 Micronesia terminator Manhattanize
+133 018811 37 repetitions gritty imprint
+134 018812 37 Antares firearm peeked
+135 019101 37 ventilate minima swelling
+136 019102 37 pityingly Selfridge interrelationships W
+137 019103 37 interdependent disable riser
+138 019201 37 Graves witchcraft Gandhian W
+139 030501 37 neonatal betroth peacock A
+140 030502 50 scribbled Manhattanize bee A
+141 030503 37 chafe imprint kanji
+142 030504 37 honoring peeked dental
+143 031901 37 realtor swelling scarf FAS
+144 036001 37 elite interrelationships chasm A
+145 036002 37 funereal riser insolence A
+146 036004 37 abrogating Gandhian syndicate
+147 036005 37 sorters peacock alike
+148 038001 37 Conley bee imperial A
+149 038002 37 lectured kanji convulsion A
+150 038003 37 Abraham dental railway A
+151 038004 37 Hawaii scarf validate A
+152 038005 37 cage chasm normalizes A
+153 038006 37 hushes insolence comprehensive
+154 038007 37 Simla syndicate chewing
+155 038008 37 reporters alike denizen
+156 038009 37 Dutchman imperial schemer
+157 038010 37 descendants convulsion chronicle
+158 038011 37 groupings railway Kline
+159 038012 37 dissociate validate Anatole
+160 038013 37 coexist normalizes partridges
+161 038014 37 Beebe comprehensive brunch
+162 038015 37 Taoism chewing recruited
+163 038016 37 Connally denizen dimensions W
+164 038017 37 fetched schemer Chicana W
+165 038018 37 checkpoints chronicle announced
+166 038101 37 rusting Kline praised FAS
+167 038102 37 galling Anatole employing
+168 038103 37 obliterates partridges linear
+169 038104 37 traitor brunch quagmire
+170 038201 37 resumes recruited western A
+171 038202 37 analyzable dimensions relishing
+172 038203 37 terminator Chicana serving A
+173 038204 37 gritty announced scheduling
+174 038205 37 firearm praised lore
+175 038206 37 minima employing eventful
+176 038208 37 Selfridge linear arteriole A
+177 042801 37 disable quagmire disentangle
+178 042802 37 witchcraft western cured A
+179 046101 37 betroth relishing Fenton W
+180 048001 37 Manhattanize serving avoidable A
+181 048002 37 imprint scheduling drains A
+182 048003 37 peeked lore detectably FAS
+183 048004 37 swelling eventful husky
+184 048005 37 interrelationships arteriole impelling
+185 048006 37 riser disentangle undoes
+186 048007 37 Gandhian cured evened
+187 048008 37 peacock Fenton squeezes
+188 048101 37 bee avoidable destroyer FAS
+189 048102 37 kanji drains rudeness
+190 048201 37 dental detectably beaner FAS
+191 048202 37 scarf husky boorish
+192 048203 37 chasm impelling Everhart
+193 048204 37 insolence undoes encompass A
+194 048205 37 syndicate evened mushrooms
+195 048301 37 alike squeezes Alison A
+196 048302 37 imperial destroyer externally FAS
+197 048303 37 convulsion rudeness pellagra
+198 048304 37 railway beaner cult
+199 048305 37 validate boorish creek A
+200 048401 37 normalizes Everhart Huffman
+201 048402 37 comprehensive encompass Majorca FAS
+202 048403 37 chewing mushrooms governing A
+203 048404 37 denizen Alison gadfly FAS
+204 048405 37 schemer externally reassigned FAS
+205 048406 37 chronicle pellagra intentness W
+206 048407 37 Kline cult craziness
+207 048408 37 Anatole creek psychic
+208 048409 37 partridges Huffman squabbled
+209 048410 37 brunch Majorca burlesque
+210 048411 37 recruited governing capped
+211 048412 37 dimensions gadfly extracted A
+212 048413 37 Chicana reassigned DiMaggio
+213 048601 37 announced intentness exclamation FAS
+214 048602 37 praised craziness subdirectory
+215 048603 37 employing psychic fangs
+216 048604 37 linear squabbled buyer A
+217 048801 37 quagmire burlesque pithing A
+218 050901 37 western capped transistorizing A
+219 051201 37 relishing extracted nonbiodegradable
+220 056002 37 serving DiMaggio dislocate
+221 056003 37 scheduling exclamation monochromatic FAS
+222 056004 37 lore subdirectory batting
+223 056102 37 eventful fangs postcondition A
+224 056203 37 arteriole buyer catalog FAS
+225 056204 37 disentangle pithing Remus
+226 058003 37 cured transistorizing devices A
+227 058004 37 Fenton nonbiodegradable bike A
+228 058005 37 avoidable dislocate qualify
+229 058006 37 drains monochromatic detained
+230 058007 37 detectably batting commended
+231 058101 37 husky postcondition civilize
+232 058102 37 impelling catalog Elmhurst
+233 058103 37 undoes Remus anesthetizing
+234 058105 37 evened devices deaf
+235 058111 37 squeezes bike Brigham
+236 058112 37 destroyer qualify title
+237 058113 37 rudeness detained coarse
+238 058114 37 beaner commended combinations
+239 058115 37 boorish civilize grayness
+240 058116 37 Everhart Elmhurst innumerable FAS
+241 058117 37 encompass anesthetizing Caroline A
+242 058118 37 mushrooms deaf fatty FAS
+243 058119 37 Alison Brigham eastbound
+244 058120 37 externally title inexperienced
+245 058121 37 pellagra coarse hoarder A
+246 058122 37 cult combinations scotch W
+247 058123 37 creek grayness passport A
+248 058124 37 Huffman innumerable strategic FAS
+249 058125 37 Majorca Caroline gated
+250 058126 37 governing fatty flog
+251 058127 37 gadfly eastbound Pipestone
+252 058128 37 reassigned inexperienced Dar
+253 058201 37 intentness hoarder Corcoran
+254 058202 37 craziness scotch flyers A
+255 058303 37 psychic passport competitions W
+256 058304 37 squabbled strategic suppliers FAS
+257 058602 37 burlesque gated skips
+258 058603 37 capped flog institutes
+259 058604 37 extracted Pipestone troop A
+260 058605 37 DiMaggio Dar connective W
+261 058606 37 exclamation Corcoran denies
+262 058607 37 subdirectory flyers polka
+263 060401 36 fangs competitions observations FAS
+264 061701 36 buyer suppliers askers
+265 066201 36 pithing skips homeless FAS
+266 066501 36 transistorizing institutes Anna
+267 068001 36 nonbiodegradable troop subdirectories W
+268 068002 36 dislocate connective decaying FAS
+269 068005 36 monochromatic denies outwitting W
+270 068006 36 batting polka Harpy W
+271 068007 36 postcondition observations crazed
+272 068008 36 catalog askers suffocate
+273 068009 36 Remus homeless provers FAS
+274 068010 36 devices Anna technically
+275 068011 36 bike subdirectories Franklinizations
+276 068202 36 qualify decaying considered
+277 068302 36 detained outwitting tinnily
+278 068303 36 commended Harpy uninterruptedly
+279 068401 36 civilize crazed whistled A
+280 068501 36 Elmhurst suffocate automate
+281 068502 36 anesthetizing provers gutting W
+282 068503 36 deaf technically surreptitious
+283 068602 36 Brigham Franklinizations Choctaw
+284 068603 36 title considered cooks
+285 068701 36 coarse tinnily millivolt FAS
+286 068702 36 combinations uninterruptedly counterpoise
+287 068703 36 grayness whistled Gothicism
+288 076001 36 innumerable automate feminine
+289 076002 36 Caroline gutting metaphysically W
+290 076101 36 fatty surreptitious sanding A
+291 076102 36 eastbound Choctaw contributorily
+292 076103 36 inexperienced cooks receivers FAS
+293 076302 36 hoarder millivolt adjourn
+294 076303 36 scotch counterpoise straggled A
+295 076304 36 passport Gothicism druggists
+296 076305 36 strategic feminine thanking FAS
+297 076306 36 gated metaphysically ostrich
+298 076307 36 flog sanding hopelessness FAS
+299 076402 36 Pipestone contributorily Eurydice
+300 076501 36 Dar receivers excitation W
+301 076502 36 Corcoran adjourn presumes FAS
+302 076701 36 flyers straggled imaginable FAS
+303 078001 36 competitions druggists concoct W
+304 078002 36 suppliers thanking peering W
+305 078003 36 skips ostrich Phelps FAS
+306 078004 36 institutes hopelessness ferociousness FAS
+307 078005 36 troop Eurydice sentences
+308 078006 36 connective excitation unlocks
+309 078007 36 denies presumes engrossing W
+310 078008 36 polka imaginable Ruth
+311 078101 36 observations concoct tying
+312 078103 36 askers peering exclaimers
+313 078104 36 homeless Phelps synergy
+314 078105 36 Anna ferociousness Huey W
+315 082101 36 subdirectories sentences merging
+316 083401 36 decaying unlocks judges A
+317 084001 36 outwitting engrossing Shylock W
+318 084002 36 Harpy Ruth Miltonism
+319 086001 36 crazed tying hen W
+320 086102 36 suffocate exclaimers honeybee FAS
+321 086201 36 provers synergy towers
+322 088001 36 technically Huey dilutes W
+323 088002 36 Franklinizations merging numerals FAS
+324 088003 36 considered judges democracy FAS
+325 088004 36 tinnily Shylock Ibero-
+326 088101 36 uninterruptedly Miltonism invalids
+327 088102 36 whistled hen behavior
+328 088103 36 automate honeybee accruing
+329 088104 36 gutting towers relics A
+330 088105 36 surreptitious dilutes rackets
+331 088106 36 Choctaw numerals Fischbein W
+332 088201 36 cooks democracy phony W
+333 088203 36 millivolt Ibero- cross FAS
+334 088204 36 counterpoise invalids cleanup
+335 088302 37 Gothicism behavior conspirator
+336 088303 37 feminine accruing label FAS
+337 088305 37 metaphysically relics university
+338 088402 37 sanding rackets cleansed FAS
+339 088501 36 contributorily Fischbein ballgown
+340 088502 36 receivers phony starlet
+341 088503 36 adjourn cross aqueous
+342 098001 58 straggled cleanup portrayal A
+343 098002 58 druggists conspirator despising W
+344 098003 58 thanking label distort W
+345 098004 58 ostrich university palmed
+346 098005 58 hopelessness cleansed faced
+347 098006 58 Eurydice ballgown silverware
+348 141903 29 excitation starlet assessor
+349 098008 58 presumes aqueous spiders
+350 098009 58 imaginable portrayal artificially
+351 098010 58 concoct despising reminiscence
+352 098011 58 peering distort Mexican
+353 098012 58 Phelps palmed obnoxious
+354 098013 58 ferociousness faced fragile
+355 098014 58 sentences silverware apprehensible
+356 098015 58 unlocks assessor births
+357 098016 58 engrossing spiders garages
+358 098017 58 Ruth artificially panty
+359 098018 58 tying reminiscence anteater
+360 098019 58 exclaimers Mexican displacement A
+361 098020 58 synergy obnoxious drovers A
+362 098021 58 Huey fragile patenting A
+363 098022 58 merging apprehensible far A
+364 098023 58 judges births shrieks
+365 098024 58 Shylock garages aligning W
+366 098025 37 Miltonism panty pragmatism
+367 106001 36 hen anteater fevers W
+368 108001 36 honeybee displacement reexamines A
+369 108002 36 towers drovers occupancies
+370 108003 36 dilutes patenting sweats FAS
+371 108004 36 numerals far modulators
+372 108005 36 democracy shrieks demand W
+373 108007 36 Ibero- aligning Madeira
+374 108008 36 invalids pragmatism Viennese W
+375 108009 36 behavior fevers chillier W
+376 108010 36 accruing reexamines wildcats FAS
+377 108011 36 relics occupancies gentle
+378 108012 36 rackets sweats Angles W
+379 108101 36 Fischbein modulators accuracies
+380 108102 36 phony demand toggle
+381 108103 36 cross Madeira Mendelssohn W
+382 108111 50 cleanup Viennese behaviorally
+383 108105 36 conspirator chillier Rochford
+384 108106 36 label wildcats mirror W
+385 108107 36 university gentle Modula
+386 108108 50 cleansed Angles clobbering
+387 108109 36 ballgown accuracies chronography
+388 108110 36 starlet toggle Eskimoizeds
+389 108201 36 aqueous Mendelssohn British W
+390 108202 36 portrayal behaviorally pitfalls
+391 108203 36 despising Rochford verify W
+392 108204 36 distort mirror scatter FAS
+393 108205 36 palmed Modula Aztecan
+394 108301 36 faced clobbering acuity W
+395 108302 36 silverware chronography sinking W
+396 112101 36 assessor Eskimoizeds beasts FAS
+397 112102 36 spiders British Witt W
+398 113701 36 artificially pitfalls physicists FAS
+399 116001 36 reminiscence verify folksong A
+400 116201 36 Mexican scatter strokes FAS
+401 116301 36 obnoxious Aztecan crowder
+402 116302 36 fragile acuity merry
+403 116601 36 apprehensible sinking cadenced
+404 116602 36 births beasts alimony A
+405 116603 36 garages Witt principled A
+406 116701 36 panty physicists golfing
+407 116702 36 anteater folksong undiscovered
+408 118001 36 displacement strokes irritates
+409 118002 36 drovers crowder patriots A
+410 118003 36 patenting merry rooms FAS
+411 118004 36 far cadenced towering W
+412 118005 36 shrieks alimony displease
+413 118006 36 aligning principled photosensitive
+414 118007 36 pragmatism golfing inking
+415 118008 36 fevers undiscovered gainers
+416 118101 36 reexamines irritates leaning A
+417 118102 36 occupancies patriots hydrant A
+418 118103 36 sweats rooms preserve
+419 118202 36 modulators towering blinded A
+420 118203 36 demand displease interactions A
+421 118204 36 Madeira photosensitive Barry
+422 118302 36 Viennese inking whiteness A
+423 118304 36 chillier gainers pastimes W
+424 118305 36 wildcats leaning Edenization
+425 118306 36 gentle hydrant Muscat
+426 118307 36 Angles preserve assassinated
+427 123101 36 accuracies blinded labeled
+428 123102 36 toggle interactions glacial A
+429 123301 36 Mendelssohn Barry implied W
+430 126001 36 behaviorally whiteness bibliographies W
+431 126002 36 Rochford pastimes Buchanan
+432 126003 36 mirror Edenization forgivably FAS
+433 126101 36 Modula Muscat innuendo A
+434 126301 36 clobbering assassinated den FAS
+435 126302 36 chronography labeled submarines W
+436 126402 36 Eskimoizeds glacial mouthful A
+437 126601 36 British implied expiring
+438 126602 36 pitfalls bibliographies unfulfilled FAS
+439 126702 36 verify Buchanan precession
+440 128001 36 scatter forgivably nullified
+441 128002 36 Aztecan innuendo affects
+442 128003 36 acuity den Cynthia
+443 128004 36 sinking submarines Chablis A
+444 128005 36 beasts mouthful betterments FAS
+445 128007 36 Witt expiring advertising
+446 128008 36 physicists unfulfilled rubies A
+447 128009 36 folksong precession southwest FAS
+448 128010 36 strokes nullified superstitious A
+449 128011 36 crowder affects tabernacle W
+450 128012 36 merry Cynthia silk A
+451 128013 36 cadenced Chablis handsomest A
+452 128014 36 alimony betterments Persian A
+453 128015 36 principled advertising analog W
+454 128016 36 golfing rubies complex W
+455 128017 36 undiscovered southwest Taoist
+456 128018 36 irritates superstitious suspend
+457 128019 36 patriots tabernacle relegated
+458 128020 36 rooms silk awesome W
+459 128021 36 towering handsomest Bruxelles
+460 128022 36 displease Persian imprecisely A
+461 128023 36 photosensitive analog televise
+462 128101 36 inking complex braking
+463 128102 36 gainers Taoist true FAS
+464 128103 36 leaning suspend disappointing FAS
+465 128104 36 hydrant relegated navally W
+466 128106 36 preserve awesome circus
+467 128107 36 blinded Bruxelles beetles
+468 128108 36 interactions imprecisely trumps
+469 128202 36 Barry televise fourscore W
+470 128203 36 whiteness braking Blackfoots
+471 128301 36 pastimes true Grady
+472 128302 36 Edenization disappointing quiets FAS
+473 128303 36 Muscat navally floundered FAS
+474 128304 36 assassinated circus profundity W
+475 128305 36 labeled beetles Garrisonian W
+476 128307 36 glacial trumps Strauss
+477 128401 36 implied fourscore cemented FAS
+478 128502 36 bibliographies Blackfoots contrition A
+479 128503 36 Buchanan Grady mutations
+480 128504 36 forgivably quiets exhibits W
+481 128505 36 innuendo floundered tits
+482 128601 36 den profundity mate A
+483 128603 36 submarines Garrisonian arches
+484 128604 36 mouthful Strauss Moll
+485 128702 36 expiring cemented ropers
+486 128703 36 unfulfilled contrition bombast
+487 128704 36 precession mutations difficultly A
+488 138001 36 nullified exhibits adsorption
+489 138002 36 affects tits definiteness FAS
+490 138003 36 Cynthia mate cultivation A
+491 138004 36 Chablis arches heals A
+492 138005 36 betterments Moll Heusen W
+493 138006 36 advertising ropers target FAS
+494 138007 36 rubies bombast cited A
+495 138008 36 southwest difficultly congresswoman W
+496 138009 36 superstitious adsorption Katherine
+497 138102 36 tabernacle definiteness titter A
+498 138103 36 silk cultivation aspire A
+499 138104 36 handsomest heals Mardis
+500 138105 36 Persian Heusen Nadia W
+501 138201 36 analog target estimating FAS
+502 138302 36 complex cited stuck A
+503 138303 36 Taoist congresswoman fifteenth A
+504 138304 36 suspend Katherine Colombo
+505 138401 29 relegated titter survey A
+506 140102 29 awesome aspire staffing
+507 140103 29 Bruxelles Mardis obtain
+508 140104 29 imprecisely Nadia loaded
+509 140105 29 televise estimating slaughtered
+510 140201 29 braking stuck lights A
+511 140701 29 true fifteenth circumference
+512 141501 29 disappointing Colombo dull A
+513 141502 29 navally survey weekly A
+514 141901 29 circus staffing wetness
+515 141902 29 beetles obtain visualized
+516 142101 29 trumps loaded Tannenbaum
+517 142102 29 fourscore slaughtered moribund
+518 142103 29 Blackfoots lights demultiplex
+519 142701 29 Grady circumference lockings
+520 143001 29 quiets dull thugs FAS
+521 143501 29 floundered weekly unnerves
+522 143502 29 profundity wetness abut
+523 148001 29 Garrisonian visualized Chippewa A
+524 148002 29 Strauss Tannenbaum stratifications A
+525 148003 29 cemented moribund signaled
+526 148004 29 contrition demultiplex Italianizes A
+527 148005 29 mutations lockings algorithmic A
+528 148006 29 exhibits thugs paranoid FAS
+529 148007 29 tits unnerves camping A
+530 148009 29 mate abut signifying A
+531 148010 29 arches Chippewa Patrice W
+532 148011 29 Moll stratifications search A
+533 148012 29 ropers signaled Angeles A
+534 148013 29 bombast Italianizes semblance
+535 148023 36 difficultly algorithmic taxed
+536 148015 29 adsorption paranoid Beatrice
+537 148016 29 definiteness camping retrace
+538 148017 29 cultivation signifying lockout
+539 148018 29 heals Patrice grammatic
+540 148019 29 Heusen search helmsman
+541 148020 29 target Angeles uniform W
+542 148021 29 cited semblance hamming
+543 148022 29 congresswoman taxed disobedience
+544 148101 29 Katherine Beatrice captivated A
+545 148102 29 titter retrace transferals A
+546 148201 29 aspire lockout cartographer A
+547 148401 29 Mardis grammatic aims FAS
+548 148402 29 Nadia helmsman Pakistani
+549 148501 29 estimating uniform burglarized FAS
+550 148502 29 stuck hamming saucepans A
+551 148503 29 fifteenth disobedience lacerating A
+552 148504 29 Colombo captivated corny
+553 148601 29 survey transferals megabytes FAS
+554 148602 29 staffing cartographer chancellor
+555 150701 29 obtain aims bulk A
+556 152101 29 loaded Pakistani commits A
+557 152102 29 slaughtered burglarized meson W
+558 155202 36 lights saucepans deputies
+559 155203 29 circumference lacerating northeaster A
+560 155204 29 dull corny dipole
+561 155205 29 weekly megabytes machining 0
+562 156001 29 wetness chancellor therefore
+563 156002 29 visualized bulk Telefunken
+564 156102 29 Tannenbaum commits salvaging
+565 156301 29 moribund meson Corinthianizes A
+566 156302 29 demultiplex deputies restlessly A
+567 156303 29 lockings northeaster bromides
+568 156304 29 thugs dipole generalized A
+569 156305 29 unnerves machining mishaps
+570 156306 29 abut therefore quelling
+571 156501 29 Chippewa Telefunken spiritual A
+572 158001 29 stratifications salvaging beguiles FAS
+573 158002 29 signaled Corinthianizes Trobriand FAS
+574 158101 29 Italianizes restlessly fleeing A
+575 158102 29 algorithmic bromides Armour A
+576 158103 29 paranoid generalized chin A
+577 158201 29 camping mishaps provers A
+578 158202 29 signifying quelling aeronautic A
+579 158203 29 Patrice spiritual voltage W
+580 158204 29 search beguiles sash
+581 158301 29 Angeles Trobriand anaerobic A
+582 158302 29 semblance fleeing simultaneous A
+583 158303 29 taxed Armour accumulating A
+584 158304 29 Beatrice chin Medusan A
+585 158305 29 retrace provers shouted A
+586 158306 29 lockout aeronautic freakish
+587 158501 29 grammatic voltage index FAS
+588 160301 29 helmsman sash commercially
+589 166101 50 uniform anaerobic mistiness A
+590 166102 50 hamming simultaneous endpoint
+591 168001 29 disobedience accumulating straight A
+592 168002 29 captivated Medusan flurried
+593 168003 29 transferals shouted denotative A
+594 168101 29 cartographer freakish coming FAS
+595 168102 29 aims index commencements FAS
+596 168103 29 Pakistani commercially gentleman
+597 168104 29 burglarized mistiness gifted
+598 168202 29 saucepans endpoint Shanghais
+599 168301 29 lacerating straight sportswriting A
+600 168502 29 corny flurried sloping A
+601 168503 29 megabytes denotative navies
+602 168601 29 chancellor coming leaflet A
+603 173001 40 bulk commencements shooter
+604 173701 40 commits gentleman Joplin FAS
+605 173702 40 meson gifted babies
+606 176001 40 deputies Shanghais subdivision FAS
+607 176101 40 northeaster sportswriting burstiness W
+608 176201 40 dipole sloping belted FAS
+609 176401 40 machining navies assails FAS
+610 176501 40 therefore leaflet admiring W
+611 176601 40 Telefunken shooter swaying 0
+612 176602 40 salvaging Joplin Goldstine FAS
+613 176603 40 Corinthianizes babies fitting
+614 178001 40 restlessly subdivision Norwalk W
+615 178002 40 bromides burstiness weakening W
+616 178003 40 generalized belted analogy FAS
+617 178004 40 mishaps assails deludes
+618 178005 40 quelling admiring cokes
+619 178006 40 spiritual swaying Clayton
+620 178007 40 beguiles Goldstine exhausts
+621 178008 40 Trobriand fitting causality
+622 178101 40 fleeing Norwalk sating FAS
+623 178102 40 Armour weakening icon
+624 178103 40 chin analogy throttles
+625 178201 40 provers deludes communicants FAS
+626 178202 40 aeronautic cokes dehydrate FAS
+627 178301 40 voltage Clayton priceless FAS
+628 178302 40 sash exhausts publicly
+629 178401 40 anaerobic causality incidentals FAS
+630 178402 40 simultaneous sating commonplace
+631 178403 40 accumulating icon mumbles
+632 178404 40 Medusan throttles furthermore W
+633 178501 40 shouted communicants cautioned W
+634 186002 37 freakish dehydrate parametrized A
+635 186102 37 index priceless registration A
+636 186201 40 commercially publicly sadly FAS
+637 186202 40 mistiness incidentals positioning
+638 186203 40 endpoint commonplace babysitting
+639 186302 37 straight mumbles eternal A
+640 188007 37 flurried furthermore hoarder
+641 188008 37 denotative cautioned congregates
+642 188009 37 coming parametrized rains
+643 188010 37 commencements registration workers W
+644 188011 37 gentleman sadly sags A
+645 188012 37 gifted positioning unplug W
+646 188013 37 Shanghais babysitting garage A
+647 188014 37 sportswriting eternal boulder A
+648 188015 37 sloping hoarder hollowly A
+649 188016 37 navies congregates specifics
+650 188017 37 leaflet rains Teresa
+651 188102 37 shooter workers Winsett
+652 188103 37 Joplin sags convenient A
+653 188202 37 babies unplug buckboards FAS
+654 188301 40 subdivision garage amenities
+655 188302 40 burstiness boulder resplendent FAS
+656 188303 40 belted hollowly priding FAS
+657 188401 37 assails specifics configurations
+658 188402 37 admiring Teresa untidiness A
+659 188503 37 swaying Winsett Brice W
+660 188504 37 Goldstine convenient sews FAS
+661 188505 37 fitting buckboards participated
+662 190701 37 Norwalk amenities Simon FAS
+663 190703 50 weakening resplendent certificates
+664 191701 37 analogy priding Fitzpatrick
+665 191702 37 deludes configurations Evanston A
+666 191703 37 cokes untidiness misted
+667 196001 37 Clayton Brice textures A
+668 196002 37 exhausts sews save
+669 196003 37 causality participated count
+670 196101 37 sating Simon rightful A
+671 196103 37 icon certificates chaperone
+672 196104 37 throttles Fitzpatrick Lizzy A
+673 196201 37 communicants Evanston clenched A
+674 196202 37 dehydrate misted effortlessly
+675 196203 37 priceless textures accessed
+676 198001 37 publicly save beaters A
+677 198003 37 incidentals count Hornblower FAS
+678 198004 37 commonplace rightful vests A
+679 198005 37 mumbles chaperone indulgences FAS
+680 198006 37 furthermore Lizzy infallibly A
+681 198007 37 cautioned clenched unwilling FAS
+682 198008 37 parametrized effortlessly excrete FAS
+683 198009 37 registration accessed spools A
+684 198010 37 sadly beaters crunches FAS
+685 198011 37 positioning Hornblower overestimating FAS
+686 198012 37 babysitting vests ineffective
+687 198013 37 eternal indulgences humiliation A
+688 198014 37 hoarder infallibly sophomore
+689 198015 37 congregates unwilling star
+690 198017 37 rains excrete rifles
+691 198018 37 workers spools dialysis
+692 198019 37 sags crunches arriving
+693 198020 37 unplug overestimating indulge
+694 198021 37 garage ineffective clockers
+695 198022 37 boulder humiliation languages
+696 198023 50 hollowly sophomore Antarctica A
+697 198024 37 specifics star percentage
+698 198101 37 Teresa rifles ceiling A
+699 198103 37 Winsett dialysis specification
+700 198105 37 convenient arriving regimented A
+701 198106 37 buckboards indulge ciphers
+702 198201 37 amenities clockers pictures A
+703 198204 37 resplendent languages serpents A
+704 198301 53 priding Antarctica allot A
+705 198302 53 configurations percentage realized A
+706 198303 53 untidiness ceiling mayoral A
+707 198304 53 Brice specification opaquely A
+708 198401 37 sews regimented hostess FAS
+709 198402 37 participated ciphers fiftieth
+710 198403 37 Simon pictures incorrectly
+711 202101 37 certificates serpents decomposition FAS
+712 202301 37 Fitzpatrick allot stranglings
+713 202302 37 Evanston realized mixture FAS
+714 202303 37 misted mayoral electroencephalography FAS
+715 202304 37 textures opaquely similarities FAS
+716 202305 37 save hostess charges W
+717 202601 37 count fiftieth freest FAS
+718 202602 37 rightful incorrectly Greenberg FAS
+719 202605 37 chaperone decomposition tinting
+720 202606 37 Lizzy stranglings expelled W
+721 202607 37 clenched mixture warm
+722 202901 37 effortlessly electroencephalography smoothed
+723 202902 37 accessed similarities deductions FAS
+724 202903 37 beaters charges Romano W
+725 202904 37 Hornblower freest bitterroot
+726 202907 37 vests Greenberg corset
+727 202908 37 indulgences tinting securing
+728 203101 37 infallibly expelled environing FAS
+729 203103 37 unwilling warm cute
+730 203104 37 excrete smoothed Crays
+731 203105 37 spools deductions heiress FAS
+732 203401 37 crunches Romano inform FAS
+733 203402 37 overestimating bitterroot avenge
+734 203404 37 ineffective corset universals
+735 203901 37 humiliation securing Kinsey W
+736 203902 37 sophomore environing ravines FAS
+737 203903 37 star cute bestseller
+738 203906 37 rifles Crays equilibrium
+739 203907 37 dialysis heiress extents 0
+740 203908 37 arriving inform relatively
+741 203909 37 indulge avenge pressure FAS
+742 206101 37 clockers universals critiques FAS
+743 206201 37 languages Kinsey befouled
+744 206202 37 Antarctica ravines rightfully FAS
+745 206203 37 percentage bestseller mechanizing FAS
+746 206206 37 ceiling equilibrium Latinizes
+747 206207 37 specification extents timesharing
+748 206208 37 regimented relatively Aden
+749 208001 37 ciphers pressure embassies
+750 208002 37 pictures critiques males FAS
+751 208003 37 serpents befouled shapelessly FAS
+752 208004 37 allot rightfully genres FAS
+753 208008 37 realized mechanizing mastering
+754 208009 37 mayoral Latinizes Newtonian
+755 208010 37 opaquely timesharing finishers FAS
+756 208011 37 hostess Aden abates
+757 208101 37 fiftieth embassies teem
+758 208102 37 incorrectly males kiting FAS
+759 208103 37 decomposition shapelessly stodgy FAS
+760 208104 37 stranglings genres scalps FAS
+761 208105 37 mixture mastering feed FAS
+762 208110 37 electroencephalography Newtonian guitars
+763 208111 37 similarities finishers airships
+764 208112 37 charges abates store
+765 208113 37 freest teem denounces
+766 208201 37 Greenberg kiting Pyle FAS
+767 208203 37 tinting stodgy Saxony
+768 208301 37 expelled scalps serializations FAS
+769 208302 37 warm feed Peruvian FAS
+770 208305 37 smoothed guitars taxonomically FAS
+771 208401 37 deductions airships kingdom A
+772 208402 37 Romano store stint A
+773 208403 37 bitterroot denounces Sault A
+774 208404 37 corset Pyle faithful
+775 208501 37 securing Saxony Ganymede FAS
+776 208502 37 environing serializations tidiness FAS
+777 208503 37 cute Peruvian gainful FAS
+778 208504 37 Crays taxonomically contrary FAS
+779 208505 37 heiress kingdom Tipperary FAS
+780 210101 37 inform stint tropics W
+781 210102 37 avenge Sault theorizers
+782 210103 37 universals faithful renew 0
+783 210104 37 Kinsey Ganymede already
+784 210105 37 ravines tidiness terminal
+785 210106 37 bestseller gainful Hegelian
+786 210107 37 equilibrium contrary hypothesizer
+787 210401 37 extents Tipperary warningly FAS
+788 213201 37 relatively tropics journalizing FAS
+789 213203 37 pressure theorizers nested
+790 213204 37 critiques renew Lars
+791 213205 37 befouled already saplings
+792 213206 37 rightfully terminal foothill
+793 213207 37 mechanizing Hegelian labeled
+794 216101 37 Latinizes hypothesizer imperiously FAS
+795 216103 37 timesharing warningly reporters FAS
+796 218001 37 Aden journalizing furnishings FAS
+797 218002 37 embassies nested precipitable FAS
+798 218003 37 males Lars discounts FAS
+799 218004 37 shapelessly saplings excises FAS
+800 143503 50 genres foothill Stalin
+801 218006 37 mastering labeled despot FAS
+802 218007 37 Newtonian imperiously ripeness FAS
+803 218008 37 finishers reporters Arabia
+804 218009 37 abates furnishings unruly
+805 218010 37 teem precipitable mournfulness
+806 218011 37 kiting discounts boom FAS
+807 218020 37 stodgy excises slaughter A
+808 218021 50 scalps Stalin Sabine
+809 218022 37 feed despot handy FAS
+810 218023 37 guitars ripeness rural
+811 218024 37 airships Arabia organizer
+812 218101 37 store unruly shipyard FAS
+813 218102 37 denounces mournfulness civics FAS
+814 218103 37 Pyle boom inaccuracy FAS
+815 218201 37 Saxony slaughter rules FAS
+816 218202 37 serializations Sabine juveniles FAS
+817 218203 37 Peruvian handy comprised W
+818 218204 37 taxonomically rural investigations
+819 218205 37 kingdom organizer stabilizes A
+820 218301 37 stint shipyard seminaries FAS
+821 218302 37 Sault civics Hunter A
+822 218401 37 faithful inaccuracy sporty FAS
+823 218402 37 Ganymede rules test FAS
+824 218403 37 tidiness juveniles weasels
+825 218404 37 gainful comprised CERN
+826 218407 37 contrary investigations tempering
+827 218408 37 Tipperary stabilizes afore FAS
+828 218409 37 tropics seminaries Galatean
+829 218410 37 theorizers Hunter techniques W
+830 226001 37 renew sporty error
+831 226002 37 already test veranda
+832 226003 37 terminal weasels severely
+833 226004 37 Hegelian CERN Cassites FAS
+834 226005 37 hypothesizer tempering forthcoming
+835 226006 37 warningly afore guides
+836 226007 37 journalizing Galatean vanish FAS
+837 226008 37 nested techniques lied A
+838 226203 37 Lars error sawtooth FAS
+839 226204 37 saplings veranda fated FAS
+840 226205 37 foothill severely gradually
+841 226206 37 labeled Cassites widens
+842 226207 37 imperiously forthcoming preclude
+843 226208 37 reporters guides Jobrel
+844 226209 37 furnishings vanish hooker
+845 226210 37 precipitable lied rainstorm
+846 226211 37 discounts sawtooth disconnects
+847 228001 37 excises fated cruelty
+848 228004 37 Stalin gradually exponentials A
+849 228005 37 despot widens affective A
+850 228006 37 ripeness preclude arteries
+851 228007 37 Arabia Jobrel Crosby FAS
+852 228008 37 unruly hooker acquaint
+853 228009 37 mournfulness rainstorm evenhandedly
+854 228101 37 boom disconnects percentage
+855 228108 37 slaughter cruelty disobedience
+856 228109 37 Sabine exponentials humility
+857 228110 37 handy affective gleaning A
+858 228111 37 rural arteries petted A
+859 228112 37 organizer Crosby bloater A
+860 228113 37 shipyard acquaint minion A
+861 228114 37 civics evenhandedly marginal A
+862 228115 37 inaccuracy percentage apiary A
+863 228116 37 rules disobedience measures
+864 228117 37 juveniles humility precaution
+865 228118 37 comprised gleaning repelled
+866 228119 37 investigations petted primary FAS
+867 228120 37 stabilizes bloater coverings
+868 228121 37 seminaries minion Artemia A
+869 228122 37 Hunter marginal navigate
+870 228201 37 sporty apiary spatial
+871 228206 37 test measures Gurkha
+872 228207 37 weasels precaution meanwhile A
+873 228208 37 CERN repelled Melinda A
+874 228209 37 tempering primary Butterfield
+875 228210 37 afore coverings Aldrich A
+876 228211 37 Galatean Artemia previewing A
+877 228212 37 techniques navigate glut A
+878 228213 37 error spatial unaffected
+879 228214 37 veranda Gurkha inmate
+880 228301 37 severely meanwhile mineral
+881 228305 37 Cassites Melinda impending A
+882 228306 37 forthcoming Butterfield meditation A
+883 228307 37 guides Aldrich ideas
+884 228308 37 vanish previewing miniaturizes W
+885 228309 37 lied glut lewdly
+886 228310 37 sawtooth unaffected title
+887 228311 37 fated inmate youthfulness
+888 228312 37 gradually mineral creak FAS
+889 228313 37 widens impending Chippewa
+890 228314 37 preclude meditation clamored
+891 228401 65 Jobrel ideas freezes
+892 228402 65 hooker miniaturizes forgivably FAS
+893 228403 65 rainstorm lewdly reduce FAS
+894 228404 65 disconnects title McGovern W
+895 228405 65 cruelty youthfulness Nazis W
+896 228406 65 exponentials creak epistle W
+897 228407 65 affective Chippewa socializes W
+898 228408 65 arteries clamored conceptions
+899 228409 65 Crosby freezes Kevin
+900 228410 65 acquaint forgivably uncovering
+901 230301 37 evenhandedly reduce chews FAS
+902 230302 37 percentage McGovern appendixes FAS
+903 230303 37 disobedience Nazis raining
+904 018062 37 humility epistle infest
+905 230501 37 gleaning socializes compartment
+906 230502 37 petted conceptions minting
+907 230503 37 bloater Kevin ducks
+908 230504 37 minion uncovering roped A
+909 230505 37 marginal chews waltz
+910 230506 37 apiary appendixes Lillian
+911 230507 37 measures raining repressions A
+912 230508 37 precaution infest chillingly
+913 230509 37 repelled compartment noncritical
+914 230901 37 primary minting lithograph
+915 230902 37 coverings ducks spongers
+916 230903 37 Artemia roped parenthood
+917 230904 37 navigate waltz posed
+918 230905 37 spatial Lillian instruments
+919 230906 37 Gurkha repressions filial
+920 230907 37 meanwhile chillingly fixedly
+921 230908 37 Melinda noncritical relives
+922 230909 37 Butterfield lithograph Pandora
+923 230910 37 Aldrich spongers watering A
+924 230911 37 previewing parenthood ungrateful
+925 230912 37 glut posed secures
+926 230913 37 unaffected instruments chastisers
+927 230914 37 inmate filial icon
+928 231304 37 mineral fixedly reuniting A
+929 231305 37 impending relives imagining A
+930 231306 37 meditation Pandora abiding A
+931 231307 37 ideas watering omnisciently
+932 231308 37 miniaturizes ungrateful Britannic
+933 231309 37 lewdly secures scholastics A
+934 231310 37 title chastisers mechanics A
+935 231311 37 youthfulness icon humidly A
+936 231312 37 creak reuniting masterpiece
+937 231313 37 Chippewa imagining however
+938 231314 37 clamored abiding Mendelian
+939 231315 37 freezes omnisciently jarred
+940 232102 37 forgivably Britannic scolds
+941 232103 37 reduce scholastics infatuate
+942 232104 37 McGovern mechanics willed A
+943 232105 37 Nazis humidly joyfully
+944 232106 37 epistle masterpiece Microsoft
+945 232107 37 socializes however fibrosities
+946 232108 37 conceptions Mendelian Baltimorean
+947 232601 37 Kevin jarred equestrian
+948 232602 37 uncovering scolds Goodrich
+949 232603 37 chews infatuate apish A
+950 232605 37 appendixes willed Adlerian
+5950 1232605 37 appendixes willed Adlerian
+5951 1232606 37 appendixes willed Adlerian
+5952 1232607 37 appendixes willed Adlerian
+5953 1232608 37 appendixes willed Adlerian
+5954 1232609 37 appendixes willed Adlerian
+951 232606 37 raining joyfully Tropez
+952 232607 37 infest Microsoft nouns
+953 232608 37 compartment fibrosities distracting
+954 232609 37 minting Baltimorean mutton
+955 236104 37 ducks equestrian bridgeable A
+956 236105 37 roped Goodrich stickers A
+957 236106 37 waltz apish transcontinental A
+958 236107 37 Lillian Adlerian amateurish
+959 236108 37 repressions Tropez Gandhian
+960 236109 37 chillingly nouns stratified
+961 236110 37 noncritical distracting chamberlains
+962 236111 37 lithograph mutton creditably
+963 236112 37 spongers bridgeable philosophic
+964 236113 37 parenthood stickers ores
+965 238005 37 posed transcontinental Carleton
+966 238006 37 instruments amateurish tape A
+967 238007 37 filial Gandhian afloat A
+968 238008 37 fixedly stratified goodness A
+969 238009 37 relives chamberlains welcoming
+970 238010 37 Pandora creditably Pinsky FAS
+971 238011 37 watering philosophic halting
+972 238012 37 ungrateful ores bibliography
+973 238013 37 secures Carleton decoding
+974 240401 41 chastisers tape variance A
+975 240402 41 icon afloat allowed A
+976 240901 41 reuniting goodness dire A
+977 240902 41 imagining welcoming dub A
+978 241801 41 abiding Pinsky poisoning
+979 242101 41 omnisciently halting Iraqis A
+980 242102 41 Britannic bibliography heaving
+981 242201 41 scholastics decoding population A
+982 242202 41 mechanics variance bomb A
+983 242501 41 humidly allowed Majorca A
+984 242502 41 masterpiece dire Gershwins
+985 246201 41 however dub explorers
+986 246202 41 Mendelian poisoning libretto A
+987 246203 41 jarred Iraqis occurred
+988 246204 41 scolds heaving Lagos
+989 246205 41 infatuate population rats
+990 246301 41 willed bomb bankruptcies A
+991 246302 41 joyfully Majorca crying
+992 248001 41 Microsoft Gershwins unexpected
+993 248002 41 fibrosities explorers accessed A
+994 248003 41 Baltimorean libretto colorful A
+995 248004 41 equestrian occurred versatility A
+996 248005 41 Goodrich Lagos cosy
+997 248006 41 apish rats Darius A
+998 248007 41 Adlerian bankruptcies mastering A
+999 248008 41 Tropez crying Asiaticizations A
+1000 248009 41 nouns unexpected offerers A
+1001 248010 41 distracting accessed uncles A
+1002 248011 41 mutton colorful sleepwalk
+1003 248012 41 bridgeable versatility Ernestine
+1004 248013 41 stickers cosy checksumming
+1005 248014 41 transcontinental Darius stopped
+1006 248015 41 amateurish mastering sicker
+1007 248016 41 Gandhian Asiaticizations Italianization
+1008 248017 41 stratified offerers alphabetic
+1009 248018 41 chamberlains uncles pharmaceutic
+1010 248019 41 creditably sleepwalk creator
+1011 248020 41 philosophic Ernestine chess
+1012 248021 41 ores checksumming charcoal
+1013 248101 41 Carleton stopped Epiphany A
+1014 248102 41 tape sicker bulldozes A
+1015 248201 41 afloat Italianization Pygmalion A
+1016 248202 41 goodness alphabetic caressing A
+1017 248203 41 welcoming pharmaceutic Palestine A
+1018 248204 41 Pinsky creator regimented A
+1019 248205 41 halting chess scars A
+1020 248206 41 bibliography charcoal realest A
+1021 248207 41 decoding Epiphany diffusing A
+1022 248208 41 variance bulldozes clubroom A
+1023 248209 41 allowed Pygmalion Blythe A
+1024 248210 41 dire caressing ahead
+1025 248211 50 dub Palestine reviver
+1026 250501 34 poisoning regimented retransmitting A
+1027 250502 34 Iraqis scars landslide
+1028 250503 34 heaving realest Eiffel
+1029 250504 34 population diffusing absentee
+1030 250505 34 bomb clubroom aye
+1031 250601 34 Majorca Blythe forked A
+1032 250602 34 Gershwins ahead Peruvianizes
+1033 250603 34 explorers reviver clerked
+1034 250604 34 libretto retransmitting tutor
+1035 250605 34 occurred landslide boulevard
+1036 251001 34 Lagos Eiffel shuttered
+1037 251002 34 rats absentee quotes A
+1038 251003 34 bankruptcies aye Caltech
+1039 251004 34 crying forked Mossberg
+1040 251005 34 unexpected Peruvianizes kept
+1041 251301 34 accessed clerked roundly
+1042 251302 34 colorful tutor features A
+1043 251303 34 versatility boulevard imaginable A
+1044 251304 34 cosy shuttered controller
+1045 251305 34 Darius quotes racial
+1046 251401 34 mastering Caltech uprisings A
+1047 251402 34 Asiaticizations Mossberg narrowed A
+1048 251403 34 offerers kept cannot A
+1049 251404 34 uncles roundly vest
+1050 251405 34 sleepwalk features famine
+1051 251406 34 Ernestine imaginable sugars
+1052 251801 34 checksumming controller exterminated A
+1053 251802 34 stopped racial belays
+1054 252101 34 sicker uprisings Hodges A
+1055 252102 34 Italianization narrowed translatable
+1056 252301 34 alphabetic cannot duality A
+1057 252302 34 pharmaceutic vest recording A
+1058 252303 34 creator famine rouses A
+1059 252304 34 chess sugars poison
+1060 252305 34 charcoal exterminated attitude
+1061 252306 34 Epiphany belays dusted
+1062 252307 34 bulldozes Hodges encompasses
+1063 252308 34 Pygmalion translatable presentation
+1064 252309 34 caressing duality Kantian
+1065 256001 34 Palestine recording imprecision A
+1066 256002 34 regimented rouses saving
+1067 256003 34 scars poison maternal
+1068 256004 34 realest attitude hewed
+1069 256005 34 diffusing dusted kerosene
+1070 258001 34 clubroom encompasses Cubans
+1071 258002 34 Blythe presentation photographers
+1072 258003 34 ahead Kantian nymph A
+1073 258004 34 reviver imprecision bedlam A
+1074 258005 34 retransmitting saving north A
+1075 258006 34 landslide maternal Schoenberg A
+1076 258007 34 Eiffel hewed botany A
+1077 258008 34 absentee kerosene curs
+1078 258009 34 aye Cubans solidification
+1079 258010 34 forked photographers inheritresses
+1080 258011 34 Peruvianizes nymph stiller
+1081 258101 68 clerked bedlam t1 A
+1082 258102 68 tutor north suite A
+1083 258103 34 boulevard Schoenberg ransomer
+1084 258104 68 shuttered botany Willy
+1085 258105 68 quotes curs Rena A
+1086 258106 68 Caltech solidification Seattle A
+1087 258107 68 Mossberg inheritresses relaxes A
+1088 258108 68 kept stiller exclaim
+1089 258109 68 roundly t1 implicated A
+1090 258110 68 features suite distinguish
+1091 258111 68 imaginable ransomer assayed
+1092 258112 68 controller Willy homeowner
+1093 258113 68 racial Rena and
+1094 258201 34 uprisings Seattle stealth
+1095 258202 34 narrowed relaxes coinciding A
+1096 258203 34 cannot exclaim founder A
+1097 258204 34 vest implicated environing
+1098 258205 34 famine distinguish jewelry
+1099 258301 34 sugars assayed lemons A
+1100 258401 34 exterminated homeowner brokenness A
+1101 258402 34 belays and bedpost A
+1102 258403 34 Hodges stealth assurers A
+1103 258404 34 translatable coinciding annoyers
+1104 258405 34 duality founder affixed
+1105 258406 34 recording environing warbling
+1106 258407 34 rouses jewelry seriously
+1107 228123 37 poison lemons boasted
+1108 250606 34 attitude brokenness Chantilly
+1109 208405 37 dusted bedpost Iranizes
+1110 212101 37 encompasses assurers violinist
+1111 218206 37 presentation annoyers extramarital
+1112 150401 37 Kantian affixed spates
+1113 248212 41 imprecision warbling cloakroom
+1114 128026 00 saving seriously gazer
+1115 128024 00 maternal boasted hand
+1116 128027 00 hewed Chantilly tucked
+1117 128025 00 kerosene Iranizes gems
+1118 128109 00 Cubans violinist clinker
+1119 128705 00 photographers extramarital refiner
+1120 126303 00 nymph spates callus
+1121 128308 00 bedlam cloakroom leopards
+1122 128204 00 north gazer comfortingly
+1123 128205 00 Schoenberg hand generically
+1124 128206 00 botany tucked getters
+1125 128207 00 curs gems sexually
+1126 118205 00 solidification clinker spear
+1127 116801 00 inheritresses refiner serums
+1128 116803 00 stiller callus Italianization
+1129 116804 00 t1 leopards attendants
+1130 116802 00 suite comfortingly spies
+1131 128605 00 ransomer generically Anthony
+1132 118308 00 Willy getters planar
+1133 113702 00 Rena sexually cupped
+1134 113703 00 Seattle spear cleanser
+1135 112103 00 relaxes serums commuters
+1136 118009 00 exclaim Italianization honeysuckle
+5136 1118009 00 exclaim Italianization honeysuckle
+1137 138011 00 implicated attendants orphanage
+1138 138010 00 distinguish spies skies
+1139 138012 00 assayed Anthony crushers
+1140 068304 00 homeowner planar Puritan
+1141 078009 00 and cupped squeezer
+1142 108013 00 stealth cleanser bruises
+1143 084004 00 coinciding commuters bonfire
+1144 083402 00 founder honeysuckle Colombo
+1145 084003 00 environing orphanage nondecreasing
+1146 088504 00 jewelry skies innocents
+1147 088005 00 lemons crushers masked
+1148 088007 00 brokenness Puritan file
+1149 088006 00 bedpost squeezer brush
+1150 148025 00 assurers bruises mutilate
+1151 148024 00 annoyers bonfire mommy
+1152 138305 00 affixed Colombo bulkheads
+1153 138306 00 warbling nondecreasing undeclared
+1154 152701 00 seriously innocents displacements
+1155 148505 00 boasted masked nieces
+1156 158003 00 Chantilly file coeducation
+1157 156201 00 Iranizes brush brassy
+1158 156202 00 violinist mutilate authenticator
+1159 158307 00 extramarital mommy Washoe
+1160 158402 00 spates bulkheads penny
+1161 158401 00 cloakroom undeclared Flagler
+1162 068013 00 gazer displacements stoned
+1163 068012 00 hand nieces cranes
+1164 068203 00 tucked coeducation masterful
+1165 088205 00 gems brassy biracial
+1166 068704 00 clinker authenticator steamships
+1167 068604 00 refiner Washoe windmills
+1168 158502 00 callus penny exploit
+1169 123103 00 leopards Flagler riverfront
+1170 148026 00 comfortingly stoned sisterly
+1171 123302 00 generically cranes sharpshoot
+1172 076503 00 getters masterful mittens
+1173 126304 00 sexually biracial interdependency
+1174 068306 00 spear steamships policy
+1175 143504 00 serums windmills unleashing
+1176 160201 00 Italianization exploit pretenders
+1177 148028 00 attendants riverfront overstatements
+1178 148027 00 spies sisterly birthed
+1179 143505 00 Anthony sharpshoot opportunism
+1180 108014 00 planar mittens showroom
+1181 076104 00 cupped interdependency compromisingly
+1182 078106 00 cleanser policy Medicare
+1183 126102 00 commuters unleashing corresponds
+1184 128029 00 honeysuckle pretenders hardware
+1185 128028 00 orphanage overstatements implant
+1186 018410 00 skies birthed Alicia
+1187 128110 00 crushers opportunism requesting
+1188 148506 00 Puritan showroom produced
+1189 123303 00 squeezer compromisingly criticizes
+1190 123304 00 bruises Medicare backer
+1191 068504 00 bonfire corresponds positively
+1192 068305 00 Colombo hardware colicky
+1193 000000 00 nondecreasing implant thrillingly
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
DELETE FROM t2;
ERROR HY000: Table storage engine for 't2' doesn't have this option
SELECT * FROM t2;
@@ -3822,6 +7460,13 @@ auto fld1 companynr fld3 fld4 fld5 fld6
2 011401 37 breaking dreaded Steinberg W
3 011402 37 Romans scholastics jarring
4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
@@ -5033,6 +8678,13 @@ auto fld1 companynr fld3 fld4 fld5 fld6
2 011401 37 breaking dreaded Steinberg W
3 011402 37 Romans scholastics jarring
4 011403 37 intercepted audiology tinily
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
TRUNCATE TABLE t2;
ERROR HY000: Table storage engine for 't2' doesn't have this option
SELECT * FROM t2;
@@ -6243,4 +9895,2480 @@ auto fld1 companynr fld3 fld4 fld5 fld6
2 011401 37 breaking dreaded Steinberg W
3 011402 37 Romans scholastics jarring
4 011403 37 intercepted audiology tinily
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+CHECK TABLE t2;
+Table Op Msg_type Msg_text
+test.t2 check status OK
+SELECT * FROM t2;
+auto fld1 companynr fld3 fld4 fld5 fld6
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+5 011501 37 bewilderingly wallet balled
+6 011701 37 astound parters persist W
+7 011702 37 admonishing eschew attainments
+8 011703 37 sumac quitter fanatic
+9 012001 37 flanking neat measures FAS
+10 012003 37 combed Steinberg rightfulness
+11 012004 37 subjective jarring capably
+12 012005 37 scatterbrain tinily impulsive
+13 012301 37 Eulerian balled starlet
+14 012302 36 dubbed persist terminators
+15 012303 37 Kane attainments untying
+16 012304 37 overlay fanatic announces FAS
+17 012305 37 perturb measures featherweight FAS
+18 012306 37 goblins rightfulness pessimist FAS
+19 012501 37 annihilates capably daughter
+20 012602 37 Wotan impulsive decliner FAS
+21 012603 37 snatching starlet lawgiver
+22 012604 37 concludes terminators stated
+23 012605 37 laterally untying readable
+24 012606 37 yelped announces attrition
+25 012701 37 grazing featherweight cascade FAS
+26 012702 37 Baird pessimist motors FAS
+27 012703 37 celery daughter interrogate
+28 012704 37 misunderstander decliner pests W
+29 013601 37 handgun lawgiver stairway
+30 013602 37 foldout stated dopers FAS
+31 013603 37 mystic readable testicle W
+32 013604 37 succumbed attrition Parsifal W
+33 013605 37 Nabisco cascade leavings
+34 013606 37 fingerings motors postulation W
+35 013607 37 aging interrogate squeaking
+36 013608 37 afield pests contrasted
+37 013609 37 ammonium stairway leftover
+38 013610 37 boat dopers whiteners
+39 013801 37 intelligibility testicle erases W
+40 013802 37 Augustine Parsifal Punjab W
+41 013803 37 teethe leavings Merritt
+42 013804 37 dreaded postulation Quixotism
+43 013901 37 scholastics squeaking sweetish FAS
+44 016001 37 audiology contrasted dogging FAS
+45 016201 37 wallet leftover scornfully FAS
+46 016202 37 parters whiteners bellow
+47 016301 37 eschew erases bills
+48 016302 37 quitter Punjab cupboard FAS
+49 016303 37 neat Merritt sureties FAS
+50 016304 37 Steinberg Quixotism puddings
+51 018001 37 jarring sweetish tapestry
+52 018002 37 tinily dogging fetters
+53 018003 37 balled scornfully bivalves
+54 018004 37 persist bellow incurring
+55 018005 37 attainments bills Adolph
+56 018007 37 fanatic cupboard pithed
+57 018008 37 measures sureties emergency
+58 018009 37 rightfulness puddings Miles
+59 018010 37 capably tapestry trimmings
+60 018012 37 impulsive fetters tragedies W
+61 018013 37 starlet bivalves skulking W
+62 018014 37 terminators incurring flint
+63 018015 37 untying Adolph flopping W
+64 018016 37 announces pithed relaxing FAS
+65 018017 37 featherweight emergency offload FAS
+66 018018 37 pessimist Miles suites W
+67 018019 37 daughter trimmings lists FAS
+68 018020 37 decliner tragedies animized FAS
+69 018021 37 lawgiver skulking multilayer W
+70 018022 37 stated flint standardizes FAS
+71 018023 37 readable flopping Judas
+72 018024 37 attrition relaxing vacuuming W
+73 018025 37 cascade offload dentally W
+74 018026 37 motors suites humanness W
+75 018027 37 interrogate lists inch W
+76 018028 37 pests animized Weissmuller W
+77 018029 37 stairway multilayer irresponsibly W
+78 018030 37 dopers standardizes luckily FAS
+79 018032 37 testicle Judas culled W
+80 018033 37 Parsifal vacuuming medical FAS
+81 018034 37 leavings dentally bloodbath FAS
+82 018035 37 postulation humanness subschema W
+83 018036 37 squeaking inch animals W
+84 018037 37 contrasted Weissmuller Micronesia
+85 018038 37 leftover irresponsibly repetitions
+86 018039 37 whiteners luckily Antares
+87 018040 37 erases culled ventilate W
+88 018041 37 Punjab medical pityingly
+89 018042 37 Merritt bloodbath interdependent
+90 018043 37 Quixotism subschema Graves FAS
+91 018044 37 sweetish animals neonatal
+92 018045 37 dogging Micronesia scribbled FAS
+93 018046 37 scornfully repetitions chafe W
+94 018048 37 bellow Antares honoring
+95 018049 37 bills ventilate realtor
+96 018050 37 cupboard pityingly elite
+97 018051 37 sureties interdependent funereal
+98 018052 37 puddings Graves abrogating
+99 018053 50 tapestry neonatal sorters
+100 018054 37 fetters scribbled Conley
+101 018055 37 bivalves chafe lectured
+102 018056 37 incurring honoring Abraham
+103 018057 37 Adolph realtor Hawaii W
+104 018058 37 pithed elite cage
+105 018059 36 emergency funereal hushes
+106 018060 37 Miles abrogating Simla
+107 018061 37 trimmings sorters reporters
+108 018101 37 tragedies Conley Dutchman FAS
+109 018102 37 skulking lectured descendants FAS
+110 018103 37 flint Abraham groupings FAS
+111 018104 37 flopping Hawaii dissociate
+112 018201 37 relaxing cage coexist W
+113 018202 37 offload hushes Beebe
+114 018402 37 suites Simla Taoism
+115 018403 37 lists reporters Connally
+116 018404 37 animized Dutchman fetched FAS
+117 018405 37 multilayer descendants checkpoints FAS
+118 018406 37 standardizes groupings rusting
+119 018409 37 Judas dissociate galling
+120 018601 37 vacuuming coexist obliterates
+121 018602 37 dentally Beebe traitor
+122 018603 37 humanness Taoism resumes FAS
+123 018801 37 inch Connally analyzable FAS
+124 018802 37 Weissmuller fetched terminator FAS
+125 018803 37 irresponsibly checkpoints gritty FAS
+126 018804 37 luckily rusting firearm W
+127 018805 37 culled galling minima
+128 018806 37 medical obliterates Selfridge
+129 018807 37 bloodbath traitor disable
+130 018808 37 subschema resumes witchcraft W
+131 018809 37 animals analyzable betroth W
+132 018810 37 Micronesia terminator Manhattanize
+133 018811 37 repetitions gritty imprint
+134 018812 37 Antares firearm peeked
+135 019101 37 ventilate minima swelling
+136 019102 37 pityingly Selfridge interrelationships W
+137 019103 37 interdependent disable riser
+138 019201 37 Graves witchcraft Gandhian W
+139 030501 37 neonatal betroth peacock A
+140 030502 50 scribbled Manhattanize bee A
+141 030503 37 chafe imprint kanji
+142 030504 37 honoring peeked dental
+143 031901 37 realtor swelling scarf FAS
+144 036001 37 elite interrelationships chasm A
+145 036002 37 funereal riser insolence A
+146 036004 37 abrogating Gandhian syndicate
+147 036005 37 sorters peacock alike
+148 038001 37 Conley bee imperial A
+149 038002 37 lectured kanji convulsion A
+150 038003 37 Abraham dental railway A
+151 038004 37 Hawaii scarf validate A
+152 038005 37 cage chasm normalizes A
+153 038006 37 hushes insolence comprehensive
+154 038007 37 Simla syndicate chewing
+155 038008 37 reporters alike denizen
+156 038009 37 Dutchman imperial schemer
+157 038010 37 descendants convulsion chronicle
+158 038011 37 groupings railway Kline
+159 038012 37 dissociate validate Anatole
+160 038013 37 coexist normalizes partridges
+161 038014 37 Beebe comprehensive brunch
+162 038015 37 Taoism chewing recruited
+163 038016 37 Connally denizen dimensions W
+164 038017 37 fetched schemer Chicana W
+165 038018 37 checkpoints chronicle announced
+166 038101 37 rusting Kline praised FAS
+167 038102 37 galling Anatole employing
+168 038103 37 obliterates partridges linear
+169 038104 37 traitor brunch quagmire
+170 038201 37 resumes recruited western A
+171 038202 37 analyzable dimensions relishing
+172 038203 37 terminator Chicana serving A
+173 038204 37 gritty announced scheduling
+174 038205 37 firearm praised lore
+175 038206 37 minima employing eventful
+176 038208 37 Selfridge linear arteriole A
+177 042801 37 disable quagmire disentangle
+178 042802 37 witchcraft western cured A
+179 046101 37 betroth relishing Fenton W
+180 048001 37 Manhattanize serving avoidable A
+181 048002 37 imprint scheduling drains A
+182 048003 37 peeked lore detectably FAS
+183 048004 37 swelling eventful husky
+184 048005 37 interrelationships arteriole impelling
+185 048006 37 riser disentangle undoes
+186 048007 37 Gandhian cured evened
+187 048008 37 peacock Fenton squeezes
+188 048101 37 bee avoidable destroyer FAS
+189 048102 37 kanji drains rudeness
+190 048201 37 dental detectably beaner FAS
+191 048202 37 scarf husky boorish
+192 048203 37 chasm impelling Everhart
+193 048204 37 insolence undoes encompass A
+194 048205 37 syndicate evened mushrooms
+195 048301 37 alike squeezes Alison A
+196 048302 37 imperial destroyer externally FAS
+197 048303 37 convulsion rudeness pellagra
+198 048304 37 railway beaner cult
+199 048305 37 validate boorish creek A
+200 048401 37 normalizes Everhart Huffman
+201 048402 37 comprehensive encompass Majorca FAS
+202 048403 37 chewing mushrooms governing A
+203 048404 37 denizen Alison gadfly FAS
+204 048405 37 schemer externally reassigned FAS
+205 048406 37 chronicle pellagra intentness W
+206 048407 37 Kline cult craziness
+207 048408 37 Anatole creek psychic
+208 048409 37 partridges Huffman squabbled
+209 048410 37 brunch Majorca burlesque
+210 048411 37 recruited governing capped
+211 048412 37 dimensions gadfly extracted A
+212 048413 37 Chicana reassigned DiMaggio
+213 048601 37 announced intentness exclamation FAS
+214 048602 37 praised craziness subdirectory
+215 048603 37 employing psychic fangs
+216 048604 37 linear squabbled buyer A
+217 048801 37 quagmire burlesque pithing A
+218 050901 37 western capped transistorizing A
+219 051201 37 relishing extracted nonbiodegradable
+220 056002 37 serving DiMaggio dislocate
+221 056003 37 scheduling exclamation monochromatic FAS
+222 056004 37 lore subdirectory batting
+223 056102 37 eventful fangs postcondition A
+224 056203 37 arteriole buyer catalog FAS
+225 056204 37 disentangle pithing Remus
+226 058003 37 cured transistorizing devices A
+227 058004 37 Fenton nonbiodegradable bike A
+228 058005 37 avoidable dislocate qualify
+229 058006 37 drains monochromatic detained
+230 058007 37 detectably batting commended
+231 058101 37 husky postcondition civilize
+232 058102 37 impelling catalog Elmhurst
+233 058103 37 undoes Remus anesthetizing
+234 058105 37 evened devices deaf
+235 058111 37 squeezes bike Brigham
+236 058112 37 destroyer qualify title
+237 058113 37 rudeness detained coarse
+238 058114 37 beaner commended combinations
+239 058115 37 boorish civilize grayness
+240 058116 37 Everhart Elmhurst innumerable FAS
+241 058117 37 encompass anesthetizing Caroline A
+242 058118 37 mushrooms deaf fatty FAS
+243 058119 37 Alison Brigham eastbound
+244 058120 37 externally title inexperienced
+245 058121 37 pellagra coarse hoarder A
+246 058122 37 cult combinations scotch W
+247 058123 37 creek grayness passport A
+248 058124 37 Huffman innumerable strategic FAS
+249 058125 37 Majorca Caroline gated
+250 058126 37 governing fatty flog
+251 058127 37 gadfly eastbound Pipestone
+252 058128 37 reassigned inexperienced Dar
+253 058201 37 intentness hoarder Corcoran
+254 058202 37 craziness scotch flyers A
+255 058303 37 psychic passport competitions W
+256 058304 37 squabbled strategic suppliers FAS
+257 058602 37 burlesque gated skips
+258 058603 37 capped flog institutes
+259 058604 37 extracted Pipestone troop A
+260 058605 37 DiMaggio Dar connective W
+261 058606 37 exclamation Corcoran denies
+262 058607 37 subdirectory flyers polka
+263 060401 36 fangs competitions observations FAS
+264 061701 36 buyer suppliers askers
+265 066201 36 pithing skips homeless FAS
+266 066501 36 transistorizing institutes Anna
+267 068001 36 nonbiodegradable troop subdirectories W
+268 068002 36 dislocate connective decaying FAS
+269 068005 36 monochromatic denies outwitting W
+270 068006 36 batting polka Harpy W
+271 068007 36 postcondition observations crazed
+272 068008 36 catalog askers suffocate
+273 068009 36 Remus homeless provers FAS
+274 068010 36 devices Anna technically
+275 068011 36 bike subdirectories Franklinizations
+276 068202 36 qualify decaying considered
+277 068302 36 detained outwitting tinnily
+278 068303 36 commended Harpy uninterruptedly
+279 068401 36 civilize crazed whistled A
+280 068501 36 Elmhurst suffocate automate
+281 068502 36 anesthetizing provers gutting W
+282 068503 36 deaf technically surreptitious
+283 068602 36 Brigham Franklinizations Choctaw
+284 068603 36 title considered cooks
+285 068701 36 coarse tinnily millivolt FAS
+286 068702 36 combinations uninterruptedly counterpoise
+287 068703 36 grayness whistled Gothicism
+288 076001 36 innumerable automate feminine
+289 076002 36 Caroline gutting metaphysically W
+290 076101 36 fatty surreptitious sanding A
+291 076102 36 eastbound Choctaw contributorily
+292 076103 36 inexperienced cooks receivers FAS
+293 076302 36 hoarder millivolt adjourn
+294 076303 36 scotch counterpoise straggled A
+295 076304 36 passport Gothicism druggists
+296 076305 36 strategic feminine thanking FAS
+297 076306 36 gated metaphysically ostrich
+298 076307 36 flog sanding hopelessness FAS
+299 076402 36 Pipestone contributorily Eurydice
+300 076501 36 Dar receivers excitation W
+301 076502 36 Corcoran adjourn presumes FAS
+302 076701 36 flyers straggled imaginable FAS
+303 078001 36 competitions druggists concoct W
+304 078002 36 suppliers thanking peering W
+305 078003 36 skips ostrich Phelps FAS
+306 078004 36 institutes hopelessness ferociousness FAS
+307 078005 36 troop Eurydice sentences
+308 078006 36 connective excitation unlocks
+309 078007 36 denies presumes engrossing W
+310 078008 36 polka imaginable Ruth
+311 078101 36 observations concoct tying
+312 078103 36 askers peering exclaimers
+313 078104 36 homeless Phelps synergy
+314 078105 36 Anna ferociousness Huey W
+315 082101 36 subdirectories sentences merging
+316 083401 36 decaying unlocks judges A
+317 084001 36 outwitting engrossing Shylock W
+318 084002 36 Harpy Ruth Miltonism
+319 086001 36 crazed tying hen W
+320 086102 36 suffocate exclaimers honeybee FAS
+321 086201 36 provers synergy towers
+322 088001 36 technically Huey dilutes W
+323 088002 36 Franklinizations merging numerals FAS
+324 088003 36 considered judges democracy FAS
+325 088004 36 tinnily Shylock Ibero-
+326 088101 36 uninterruptedly Miltonism invalids
+327 088102 36 whistled hen behavior
+328 088103 36 automate honeybee accruing
+329 088104 36 gutting towers relics A
+330 088105 36 surreptitious dilutes rackets
+331 088106 36 Choctaw numerals Fischbein W
+332 088201 36 cooks democracy phony W
+333 088203 36 millivolt Ibero- cross FAS
+334 088204 36 counterpoise invalids cleanup
+335 088302 37 Gothicism behavior conspirator
+336 088303 37 feminine accruing label FAS
+337 088305 37 metaphysically relics university
+338 088402 37 sanding rackets cleansed FAS
+339 088501 36 contributorily Fischbein ballgown
+340 088502 36 receivers phony starlet
+341 088503 36 adjourn cross aqueous
+342 098001 58 straggled cleanup portrayal A
+343 098002 58 druggists conspirator despising W
+344 098003 58 thanking label distort W
+345 098004 58 ostrich university palmed
+346 098005 58 hopelessness cleansed faced
+347 098006 58 Eurydice ballgown silverware
+348 141903 29 excitation starlet assessor
+349 098008 58 presumes aqueous spiders
+350 098009 58 imaginable portrayal artificially
+351 098010 58 concoct despising reminiscence
+352 098011 58 peering distort Mexican
+353 098012 58 Phelps palmed obnoxious
+354 098013 58 ferociousness faced fragile
+355 098014 58 sentences silverware apprehensible
+356 098015 58 unlocks assessor births
+357 098016 58 engrossing spiders garages
+358 098017 58 Ruth artificially panty
+359 098018 58 tying reminiscence anteater
+360 098019 58 exclaimers Mexican displacement A
+361 098020 58 synergy obnoxious drovers A
+362 098021 58 Huey fragile patenting A
+363 098022 58 merging apprehensible far A
+364 098023 58 judges births shrieks
+365 098024 58 Shylock garages aligning W
+366 098025 37 Miltonism panty pragmatism
+367 106001 36 hen anteater fevers W
+368 108001 36 honeybee displacement reexamines A
+369 108002 36 towers drovers occupancies
+370 108003 36 dilutes patenting sweats FAS
+371 108004 36 numerals far modulators
+372 108005 36 democracy shrieks demand W
+373 108007 36 Ibero- aligning Madeira
+374 108008 36 invalids pragmatism Viennese W
+375 108009 36 behavior fevers chillier W
+376 108010 36 accruing reexamines wildcats FAS
+377 108011 36 relics occupancies gentle
+378 108012 36 rackets sweats Angles W
+379 108101 36 Fischbein modulators accuracies
+380 108102 36 phony demand toggle
+381 108103 36 cross Madeira Mendelssohn W
+382 108111 50 cleanup Viennese behaviorally
+383 108105 36 conspirator chillier Rochford
+384 108106 36 label wildcats mirror W
+385 108107 36 university gentle Modula
+386 108108 50 cleansed Angles clobbering
+387 108109 36 ballgown accuracies chronography
+388 108110 36 starlet toggle Eskimoizeds
+389 108201 36 aqueous Mendelssohn British W
+390 108202 36 portrayal behaviorally pitfalls
+391 108203 36 despising Rochford verify W
+392 108204 36 distort mirror scatter FAS
+393 108205 36 palmed Modula Aztecan
+394 108301 36 faced clobbering acuity W
+395 108302 36 silverware chronography sinking W
+396 112101 36 assessor Eskimoizeds beasts FAS
+397 112102 36 spiders British Witt W
+398 113701 36 artificially pitfalls physicists FAS
+399 116001 36 reminiscence verify folksong A
+400 116201 36 Mexican scatter strokes FAS
+401 116301 36 obnoxious Aztecan crowder
+402 116302 36 fragile acuity merry
+403 116601 36 apprehensible sinking cadenced
+404 116602 36 births beasts alimony A
+405 116603 36 garages Witt principled A
+406 116701 36 panty physicists golfing
+407 116702 36 anteater folksong undiscovered
+408 118001 36 displacement strokes irritates
+409 118002 36 drovers crowder patriots A
+410 118003 36 patenting merry rooms FAS
+411 118004 36 far cadenced towering W
+412 118005 36 shrieks alimony displease
+413 118006 36 aligning principled photosensitive
+414 118007 36 pragmatism golfing inking
+415 118008 36 fevers undiscovered gainers
+416 118101 36 reexamines irritates leaning A
+417 118102 36 occupancies patriots hydrant A
+418 118103 36 sweats rooms preserve
+419 118202 36 modulators towering blinded A
+420 118203 36 demand displease interactions A
+421 118204 36 Madeira photosensitive Barry
+422 118302 36 Viennese inking whiteness A
+423 118304 36 chillier gainers pastimes W
+424 118305 36 wildcats leaning Edenization
+425 118306 36 gentle hydrant Muscat
+426 118307 36 Angles preserve assassinated
+427 123101 36 accuracies blinded labeled
+428 123102 36 toggle interactions glacial A
+429 123301 36 Mendelssohn Barry implied W
+430 126001 36 behaviorally whiteness bibliographies W
+431 126002 36 Rochford pastimes Buchanan
+432 126003 36 mirror Edenization forgivably FAS
+433 126101 36 Modula Muscat innuendo A
+434 126301 36 clobbering assassinated den FAS
+435 126302 36 chronography labeled submarines W
+436 126402 36 Eskimoizeds glacial mouthful A
+437 126601 36 British implied expiring
+438 126602 36 pitfalls bibliographies unfulfilled FAS
+439 126702 36 verify Buchanan precession
+440 128001 36 scatter forgivably nullified
+441 128002 36 Aztecan innuendo affects
+442 128003 36 acuity den Cynthia
+443 128004 36 sinking submarines Chablis A
+444 128005 36 beasts mouthful betterments FAS
+445 128007 36 Witt expiring advertising
+446 128008 36 physicists unfulfilled rubies A
+447 128009 36 folksong precession southwest FAS
+448 128010 36 strokes nullified superstitious A
+449 128011 36 crowder affects tabernacle W
+450 128012 36 merry Cynthia silk A
+451 128013 36 cadenced Chablis handsomest A
+452 128014 36 alimony betterments Persian A
+453 128015 36 principled advertising analog W
+454 128016 36 golfing rubies complex W
+455 128017 36 undiscovered southwest Taoist
+456 128018 36 irritates superstitious suspend
+457 128019 36 patriots tabernacle relegated
+458 128020 36 rooms silk awesome W
+459 128021 36 towering handsomest Bruxelles
+460 128022 36 displease Persian imprecisely A
+461 128023 36 photosensitive analog televise
+462 128101 36 inking complex braking
+463 128102 36 gainers Taoist true FAS
+464 128103 36 leaning suspend disappointing FAS
+465 128104 36 hydrant relegated navally W
+466 128106 36 preserve awesome circus
+467 128107 36 blinded Bruxelles beetles
+468 128108 36 interactions imprecisely trumps
+469 128202 36 Barry televise fourscore W
+470 128203 36 whiteness braking Blackfoots
+471 128301 36 pastimes true Grady
+472 128302 36 Edenization disappointing quiets FAS
+473 128303 36 Muscat navally floundered FAS
+474 128304 36 assassinated circus profundity W
+475 128305 36 labeled beetles Garrisonian W
+476 128307 36 glacial trumps Strauss
+477 128401 36 implied fourscore cemented FAS
+478 128502 36 bibliographies Blackfoots contrition A
+479 128503 36 Buchanan Grady mutations
+480 128504 36 forgivably quiets exhibits W
+481 128505 36 innuendo floundered tits
+482 128601 36 den profundity mate A
+483 128603 36 submarines Garrisonian arches
+484 128604 36 mouthful Strauss Moll
+485 128702 36 expiring cemented ropers
+486 128703 36 unfulfilled contrition bombast
+487 128704 36 precession mutations difficultly A
+488 138001 36 nullified exhibits adsorption
+489 138002 36 affects tits definiteness FAS
+490 138003 36 Cynthia mate cultivation A
+491 138004 36 Chablis arches heals A
+492 138005 36 betterments Moll Heusen W
+493 138006 36 advertising ropers target FAS
+494 138007 36 rubies bombast cited A
+495 138008 36 southwest difficultly congresswoman W
+496 138009 36 superstitious adsorption Katherine
+497 138102 36 tabernacle definiteness titter A
+498 138103 36 silk cultivation aspire A
+499 138104 36 handsomest heals Mardis
+500 138105 36 Persian Heusen Nadia W
+501 138201 36 analog target estimating FAS
+502 138302 36 complex cited stuck A
+503 138303 36 Taoist congresswoman fifteenth A
+504 138304 36 suspend Katherine Colombo
+505 138401 29 relegated titter survey A
+506 140102 29 awesome aspire staffing
+507 140103 29 Bruxelles Mardis obtain
+508 140104 29 imprecisely Nadia loaded
+509 140105 29 televise estimating slaughtered
+510 140201 29 braking stuck lights A
+511 140701 29 true fifteenth circumference
+512 141501 29 disappointing Colombo dull A
+513 141502 29 navally survey weekly A
+514 141901 29 circus staffing wetness
+515 141902 29 beetles obtain visualized
+516 142101 29 trumps loaded Tannenbaum
+517 142102 29 fourscore slaughtered moribund
+518 142103 29 Blackfoots lights demultiplex
+519 142701 29 Grady circumference lockings
+520 143001 29 quiets dull thugs FAS
+521 143501 29 floundered weekly unnerves
+522 143502 29 profundity wetness abut
+523 148001 29 Garrisonian visualized Chippewa A
+524 148002 29 Strauss Tannenbaum stratifications A
+525 148003 29 cemented moribund signaled
+526 148004 29 contrition demultiplex Italianizes A
+527 148005 29 mutations lockings algorithmic A
+528 148006 29 exhibits thugs paranoid FAS
+529 148007 29 tits unnerves camping A
+530 148009 29 mate abut signifying A
+531 148010 29 arches Chippewa Patrice W
+532 148011 29 Moll stratifications search A
+533 148012 29 ropers signaled Angeles A
+534 148013 29 bombast Italianizes semblance
+535 148023 36 difficultly algorithmic taxed
+536 148015 29 adsorption paranoid Beatrice
+537 148016 29 definiteness camping retrace
+538 148017 29 cultivation signifying lockout
+539 148018 29 heals Patrice grammatic
+540 148019 29 Heusen search helmsman
+541 148020 29 target Angeles uniform W
+542 148021 29 cited semblance hamming
+543 148022 29 congresswoman taxed disobedience
+544 148101 29 Katherine Beatrice captivated A
+545 148102 29 titter retrace transferals A
+546 148201 29 aspire lockout cartographer A
+547 148401 29 Mardis grammatic aims FAS
+548 148402 29 Nadia helmsman Pakistani
+549 148501 29 estimating uniform burglarized FAS
+550 148502 29 stuck hamming saucepans A
+551 148503 29 fifteenth disobedience lacerating A
+552 148504 29 Colombo captivated corny
+553 148601 29 survey transferals megabytes FAS
+554 148602 29 staffing cartographer chancellor
+555 150701 29 obtain aims bulk A
+556 152101 29 loaded Pakistani commits A
+557 152102 29 slaughtered burglarized meson W
+558 155202 36 lights saucepans deputies
+559 155203 29 circumference lacerating northeaster A
+560 155204 29 dull corny dipole
+561 155205 29 weekly megabytes machining 0
+562 156001 29 wetness chancellor therefore
+563 156002 29 visualized bulk Telefunken
+564 156102 29 Tannenbaum commits salvaging
+565 156301 29 moribund meson Corinthianizes A
+566 156302 29 demultiplex deputies restlessly A
+567 156303 29 lockings northeaster bromides
+568 156304 29 thugs dipole generalized A
+569 156305 29 unnerves machining mishaps
+570 156306 29 abut therefore quelling
+571 156501 29 Chippewa Telefunken spiritual A
+572 158001 29 stratifications salvaging beguiles FAS
+573 158002 29 signaled Corinthianizes Trobriand FAS
+574 158101 29 Italianizes restlessly fleeing A
+575 158102 29 algorithmic bromides Armour A
+576 158103 29 paranoid generalized chin A
+577 158201 29 camping mishaps provers A
+578 158202 29 signifying quelling aeronautic A
+579 158203 29 Patrice spiritual voltage W
+580 158204 29 search beguiles sash
+581 158301 29 Angeles Trobriand anaerobic A
+582 158302 29 semblance fleeing simultaneous A
+583 158303 29 taxed Armour accumulating A
+584 158304 29 Beatrice chin Medusan A
+585 158305 29 retrace provers shouted A
+586 158306 29 lockout aeronautic freakish
+587 158501 29 grammatic voltage index FAS
+588 160301 29 helmsman sash commercially
+589 166101 50 uniform anaerobic mistiness A
+590 166102 50 hamming simultaneous endpoint
+591 168001 29 disobedience accumulating straight A
+592 168002 29 captivated Medusan flurried
+593 168003 29 transferals shouted denotative A
+594 168101 29 cartographer freakish coming FAS
+595 168102 29 aims index commencements FAS
+596 168103 29 Pakistani commercially gentleman
+597 168104 29 burglarized mistiness gifted
+598 168202 29 saucepans endpoint Shanghais
+599 168301 29 lacerating straight sportswriting A
+600 168502 29 corny flurried sloping A
+601 168503 29 megabytes denotative navies
+602 168601 29 chancellor coming leaflet A
+603 173001 40 bulk commencements shooter
+604 173701 40 commits gentleman Joplin FAS
+605 173702 40 meson gifted babies
+606 176001 40 deputies Shanghais subdivision FAS
+607 176101 40 northeaster sportswriting burstiness W
+608 176201 40 dipole sloping belted FAS
+609 176401 40 machining navies assails FAS
+610 176501 40 therefore leaflet admiring W
+611 176601 40 Telefunken shooter swaying 0
+612 176602 40 salvaging Joplin Goldstine FAS
+613 176603 40 Corinthianizes babies fitting
+614 178001 40 restlessly subdivision Norwalk W
+615 178002 40 bromides burstiness weakening W
+616 178003 40 generalized belted analogy FAS
+617 178004 40 mishaps assails deludes
+618 178005 40 quelling admiring cokes
+619 178006 40 spiritual swaying Clayton
+620 178007 40 beguiles Goldstine exhausts
+621 178008 40 Trobriand fitting causality
+622 178101 40 fleeing Norwalk sating FAS
+623 178102 40 Armour weakening icon
+624 178103 40 chin analogy throttles
+625 178201 40 provers deludes communicants FAS
+626 178202 40 aeronautic cokes dehydrate FAS
+627 178301 40 voltage Clayton priceless FAS
+628 178302 40 sash exhausts publicly
+629 178401 40 anaerobic causality incidentals FAS
+630 178402 40 simultaneous sating commonplace
+631 178403 40 accumulating icon mumbles
+632 178404 40 Medusan throttles furthermore W
+633 178501 40 shouted communicants cautioned W
+634 186002 37 freakish dehydrate parametrized A
+635 186102 37 index priceless registration A
+636 186201 40 commercially publicly sadly FAS
+637 186202 40 mistiness incidentals positioning
+638 186203 40 endpoint commonplace babysitting
+639 186302 37 straight mumbles eternal A
+640 188007 37 flurried furthermore hoarder
+641 188008 37 denotative cautioned congregates
+642 188009 37 coming parametrized rains
+643 188010 37 commencements registration workers W
+644 188011 37 gentleman sadly sags A
+645 188012 37 gifted positioning unplug W
+646 188013 37 Shanghais babysitting garage A
+647 188014 37 sportswriting eternal boulder A
+648 188015 37 sloping hoarder hollowly A
+649 188016 37 navies congregates specifics
+650 188017 37 leaflet rains Teresa
+651 188102 37 shooter workers Winsett
+652 188103 37 Joplin sags convenient A
+653 188202 37 babies unplug buckboards FAS
+654 188301 40 subdivision garage amenities
+655 188302 40 burstiness boulder resplendent FAS
+656 188303 40 belted hollowly priding FAS
+657 188401 37 assails specifics configurations
+658 188402 37 admiring Teresa untidiness A
+659 188503 37 swaying Winsett Brice W
+660 188504 37 Goldstine convenient sews FAS
+661 188505 37 fitting buckboards participated
+662 190701 37 Norwalk amenities Simon FAS
+663 190703 50 weakening resplendent certificates
+664 191701 37 analogy priding Fitzpatrick
+665 191702 37 deludes configurations Evanston A
+666 191703 37 cokes untidiness misted
+667 196001 37 Clayton Brice textures A
+668 196002 37 exhausts sews save
+669 196003 37 causality participated count
+670 196101 37 sating Simon rightful A
+671 196103 37 icon certificates chaperone
+672 196104 37 throttles Fitzpatrick Lizzy A
+673 196201 37 communicants Evanston clenched A
+674 196202 37 dehydrate misted effortlessly
+675 196203 37 priceless textures accessed
+676 198001 37 publicly save beaters A
+677 198003 37 incidentals count Hornblower FAS
+678 198004 37 commonplace rightful vests A
+679 198005 37 mumbles chaperone indulgences FAS
+680 198006 37 furthermore Lizzy infallibly A
+681 198007 37 cautioned clenched unwilling FAS
+682 198008 37 parametrized effortlessly excrete FAS
+683 198009 37 registration accessed spools A
+684 198010 37 sadly beaters crunches FAS
+685 198011 37 positioning Hornblower overestimating FAS
+686 198012 37 babysitting vests ineffective
+687 198013 37 eternal indulgences humiliation A
+688 198014 37 hoarder infallibly sophomore
+689 198015 37 congregates unwilling star
+690 198017 37 rains excrete rifles
+691 198018 37 workers spools dialysis
+692 198019 37 sags crunches arriving
+693 198020 37 unplug overestimating indulge
+694 198021 37 garage ineffective clockers
+695 198022 37 boulder humiliation languages
+696 198023 50 hollowly sophomore Antarctica A
+697 198024 37 specifics star percentage
+698 198101 37 Teresa rifles ceiling A
+699 198103 37 Winsett dialysis specification
+700 198105 37 convenient arriving regimented A
+701 198106 37 buckboards indulge ciphers
+702 198201 37 amenities clockers pictures A
+703 198204 37 resplendent languages serpents A
+704 198301 53 priding Antarctica allot A
+705 198302 53 configurations percentage realized A
+706 198303 53 untidiness ceiling mayoral A
+707 198304 53 Brice specification opaquely A
+708 198401 37 sews regimented hostess FAS
+709 198402 37 participated ciphers fiftieth
+710 198403 37 Simon pictures incorrectly
+711 202101 37 certificates serpents decomposition FAS
+712 202301 37 Fitzpatrick allot stranglings
+713 202302 37 Evanston realized mixture FAS
+714 202303 37 misted mayoral electroencephalography FAS
+715 202304 37 textures opaquely similarities FAS
+716 202305 37 save hostess charges W
+717 202601 37 count fiftieth freest FAS
+718 202602 37 rightful incorrectly Greenberg FAS
+719 202605 37 chaperone decomposition tinting
+720 202606 37 Lizzy stranglings expelled W
+721 202607 37 clenched mixture warm
+722 202901 37 effortlessly electroencephalography smoothed
+723 202902 37 accessed similarities deductions FAS
+724 202903 37 beaters charges Romano W
+725 202904 37 Hornblower freest bitterroot
+726 202907 37 vests Greenberg corset
+727 202908 37 indulgences tinting securing
+728 203101 37 infallibly expelled environing FAS
+729 203103 37 unwilling warm cute
+730 203104 37 excrete smoothed Crays
+731 203105 37 spools deductions heiress FAS
+732 203401 37 crunches Romano inform FAS
+733 203402 37 overestimating bitterroot avenge
+734 203404 37 ineffective corset universals
+735 203901 37 humiliation securing Kinsey W
+736 203902 37 sophomore environing ravines FAS
+737 203903 37 star cute bestseller
+738 203906 37 rifles Crays equilibrium
+739 203907 37 dialysis heiress extents 0
+740 203908 37 arriving inform relatively
+741 203909 37 indulge avenge pressure FAS
+742 206101 37 clockers universals critiques FAS
+743 206201 37 languages Kinsey befouled
+744 206202 37 Antarctica ravines rightfully FAS
+745 206203 37 percentage bestseller mechanizing FAS
+746 206206 37 ceiling equilibrium Latinizes
+747 206207 37 specification extents timesharing
+748 206208 37 regimented relatively Aden
+749 208001 37 ciphers pressure embassies
+750 208002 37 pictures critiques males FAS
+751 208003 37 serpents befouled shapelessly FAS
+752 208004 37 allot rightfully genres FAS
+753 208008 37 realized mechanizing mastering
+754 208009 37 mayoral Latinizes Newtonian
+755 208010 37 opaquely timesharing finishers FAS
+756 208011 37 hostess Aden abates
+757 208101 37 fiftieth embassies teem
+758 208102 37 incorrectly males kiting FAS
+759 208103 37 decomposition shapelessly stodgy FAS
+760 208104 37 stranglings genres scalps FAS
+761 208105 37 mixture mastering feed FAS
+762 208110 37 electroencephalography Newtonian guitars
+763 208111 37 similarities finishers airships
+764 208112 37 charges abates store
+765 208113 37 freest teem denounces
+766 208201 37 Greenberg kiting Pyle FAS
+767 208203 37 tinting stodgy Saxony
+768 208301 37 expelled scalps serializations FAS
+769 208302 37 warm feed Peruvian FAS
+770 208305 37 smoothed guitars taxonomically FAS
+771 208401 37 deductions airships kingdom A
+772 208402 37 Romano store stint A
+773 208403 37 bitterroot denounces Sault A
+774 208404 37 corset Pyle faithful
+775 208501 37 securing Saxony Ganymede FAS
+776 208502 37 environing serializations tidiness FAS
+777 208503 37 cute Peruvian gainful FAS
+778 208504 37 Crays taxonomically contrary FAS
+779 208505 37 heiress kingdom Tipperary FAS
+780 210101 37 inform stint tropics W
+781 210102 37 avenge Sault theorizers
+782 210103 37 universals faithful renew 0
+783 210104 37 Kinsey Ganymede already
+784 210105 37 ravines tidiness terminal
+785 210106 37 bestseller gainful Hegelian
+786 210107 37 equilibrium contrary hypothesizer
+787 210401 37 extents Tipperary warningly FAS
+788 213201 37 relatively tropics journalizing FAS
+789 213203 37 pressure theorizers nested
+790 213204 37 critiques renew Lars
+791 213205 37 befouled already saplings
+792 213206 37 rightfully terminal foothill
+793 213207 37 mechanizing Hegelian labeled
+794 216101 37 Latinizes hypothesizer imperiously FAS
+795 216103 37 timesharing warningly reporters FAS
+796 218001 37 Aden journalizing furnishings FAS
+797 218002 37 embassies nested precipitable FAS
+798 218003 37 males Lars discounts FAS
+799 218004 37 shapelessly saplings excises FAS
+800 143503 50 genres foothill Stalin
+801 218006 37 mastering labeled despot FAS
+802 218007 37 Newtonian imperiously ripeness FAS
+803 218008 37 finishers reporters Arabia
+804 218009 37 abates furnishings unruly
+805 218010 37 teem precipitable mournfulness
+806 218011 37 kiting discounts boom FAS
+807 218020 37 stodgy excises slaughter A
+808 218021 50 scalps Stalin Sabine
+809 218022 37 feed despot handy FAS
+810 218023 37 guitars ripeness rural
+811 218024 37 airships Arabia organizer
+812 218101 37 store unruly shipyard FAS
+813 218102 37 denounces mournfulness civics FAS
+814 218103 37 Pyle boom inaccuracy FAS
+815 218201 37 Saxony slaughter rules FAS
+816 218202 37 serializations Sabine juveniles FAS
+817 218203 37 Peruvian handy comprised W
+818 218204 37 taxonomically rural investigations
+819 218205 37 kingdom organizer stabilizes A
+820 218301 37 stint shipyard seminaries FAS
+821 218302 37 Sault civics Hunter A
+822 218401 37 faithful inaccuracy sporty FAS
+823 218402 37 Ganymede rules test FAS
+824 218403 37 tidiness juveniles weasels
+825 218404 37 gainful comprised CERN
+826 218407 37 contrary investigations tempering
+827 218408 37 Tipperary stabilizes afore FAS
+828 218409 37 tropics seminaries Galatean
+829 218410 37 theorizers Hunter techniques W
+830 226001 37 renew sporty error
+831 226002 37 already test veranda
+832 226003 37 terminal weasels severely
+833 226004 37 Hegelian CERN Cassites FAS
+834 226005 37 hypothesizer tempering forthcoming
+835 226006 37 warningly afore guides
+836 226007 37 journalizing Galatean vanish FAS
+837 226008 37 nested techniques lied A
+838 226203 37 Lars error sawtooth FAS
+839 226204 37 saplings veranda fated FAS
+840 226205 37 foothill severely gradually
+841 226206 37 labeled Cassites widens
+842 226207 37 imperiously forthcoming preclude
+843 226208 37 reporters guides Jobrel
+844 226209 37 furnishings vanish hooker
+845 226210 37 precipitable lied rainstorm
+846 226211 37 discounts sawtooth disconnects
+847 228001 37 excises fated cruelty
+848 228004 37 Stalin gradually exponentials A
+849 228005 37 despot widens affective A
+850 228006 37 ripeness preclude arteries
+851 228007 37 Arabia Jobrel Crosby FAS
+852 228008 37 unruly hooker acquaint
+853 228009 37 mournfulness rainstorm evenhandedly
+854 228101 37 boom disconnects percentage
+855 228108 37 slaughter cruelty disobedience
+856 228109 37 Sabine exponentials humility
+857 228110 37 handy affective gleaning A
+858 228111 37 rural arteries petted A
+859 228112 37 organizer Crosby bloater A
+860 228113 37 shipyard acquaint minion A
+861 228114 37 civics evenhandedly marginal A
+862 228115 37 inaccuracy percentage apiary A
+863 228116 37 rules disobedience measures
+864 228117 37 juveniles humility precaution
+865 228118 37 comprised gleaning repelled
+866 228119 37 investigations petted primary FAS
+867 228120 37 stabilizes bloater coverings
+868 228121 37 seminaries minion Artemia A
+869 228122 37 Hunter marginal navigate
+870 228201 37 sporty apiary spatial
+871 228206 37 test measures Gurkha
+872 228207 37 weasels precaution meanwhile A
+873 228208 37 CERN repelled Melinda A
+874 228209 37 tempering primary Butterfield
+875 228210 37 afore coverings Aldrich A
+876 228211 37 Galatean Artemia previewing A
+877 228212 37 techniques navigate glut A
+878 228213 37 error spatial unaffected
+879 228214 37 veranda Gurkha inmate
+880 228301 37 severely meanwhile mineral
+881 228305 37 Cassites Melinda impending A
+882 228306 37 forthcoming Butterfield meditation A
+883 228307 37 guides Aldrich ideas
+884 228308 37 vanish previewing miniaturizes W
+885 228309 37 lied glut lewdly
+886 228310 37 sawtooth unaffected title
+887 228311 37 fated inmate youthfulness
+888 228312 37 gradually mineral creak FAS
+889 228313 37 widens impending Chippewa
+890 228314 37 preclude meditation clamored
+891 228401 65 Jobrel ideas freezes
+892 228402 65 hooker miniaturizes forgivably FAS
+893 228403 65 rainstorm lewdly reduce FAS
+894 228404 65 disconnects title McGovern W
+895 228405 65 cruelty youthfulness Nazis W
+896 228406 65 exponentials creak epistle W
+897 228407 65 affective Chippewa socializes W
+898 228408 65 arteries clamored conceptions
+899 228409 65 Crosby freezes Kevin
+900 228410 65 acquaint forgivably uncovering
+901 230301 37 evenhandedly reduce chews FAS
+902 230302 37 percentage McGovern appendixes FAS
+903 230303 37 disobedience Nazis raining
+904 018062 37 humility epistle infest
+905 230501 37 gleaning socializes compartment
+906 230502 37 petted conceptions minting
+907 230503 37 bloater Kevin ducks
+908 230504 37 minion uncovering roped A
+909 230505 37 marginal chews waltz
+910 230506 37 apiary appendixes Lillian
+911 230507 37 measures raining repressions A
+912 230508 37 precaution infest chillingly
+913 230509 37 repelled compartment noncritical
+914 230901 37 primary minting lithograph
+915 230902 37 coverings ducks spongers
+916 230903 37 Artemia roped parenthood
+917 230904 37 navigate waltz posed
+918 230905 37 spatial Lillian instruments
+919 230906 37 Gurkha repressions filial
+920 230907 37 meanwhile chillingly fixedly
+921 230908 37 Melinda noncritical relives
+922 230909 37 Butterfield lithograph Pandora
+923 230910 37 Aldrich spongers watering A
+924 230911 37 previewing parenthood ungrateful
+925 230912 37 glut posed secures
+926 230913 37 unaffected instruments chastisers
+927 230914 37 inmate filial icon
+928 231304 37 mineral fixedly reuniting A
+929 231305 37 impending relives imagining A
+930 231306 37 meditation Pandora abiding A
+931 231307 37 ideas watering omnisciently
+932 231308 37 miniaturizes ungrateful Britannic
+933 231309 37 lewdly secures scholastics A
+934 231310 37 title chastisers mechanics A
+935 231311 37 youthfulness icon humidly A
+936 231312 37 creak reuniting masterpiece
+937 231313 37 Chippewa imagining however
+938 231314 37 clamored abiding Mendelian
+939 231315 37 freezes omnisciently jarred
+940 232102 37 forgivably Britannic scolds
+941 232103 37 reduce scholastics infatuate
+942 232104 37 McGovern mechanics willed A
+943 232105 37 Nazis humidly joyfully
+944 232106 37 epistle masterpiece Microsoft
+945 232107 37 socializes however fibrosities
+946 232108 37 conceptions Mendelian Baltimorean
+947 232601 37 Kevin jarred equestrian
+948 232602 37 uncovering scolds Goodrich
+949 232603 37 chews infatuate apish A
+950 232605 37 appendixes willed Adlerian
+5950 1232605 37 appendixes willed Adlerian
+5951 1232606 37 appendixes willed Adlerian
+5952 1232607 37 appendixes willed Adlerian
+5953 1232608 37 appendixes willed Adlerian
+5954 1232609 37 appendixes willed Adlerian
+951 232606 37 raining joyfully Tropez
+952 232607 37 infest Microsoft nouns
+953 232608 37 compartment fibrosities distracting
+954 232609 37 minting Baltimorean mutton
+955 236104 37 ducks equestrian bridgeable A
+956 236105 37 roped Goodrich stickers A
+957 236106 37 waltz apish transcontinental A
+958 236107 37 Lillian Adlerian amateurish
+959 236108 37 repressions Tropez Gandhian
+960 236109 37 chillingly nouns stratified
+961 236110 37 noncritical distracting chamberlains
+962 236111 37 lithograph mutton creditably
+963 236112 37 spongers bridgeable philosophic
+964 236113 37 parenthood stickers ores
+965 238005 37 posed transcontinental Carleton
+966 238006 37 instruments amateurish tape A
+967 238007 37 filial Gandhian afloat A
+968 238008 37 fixedly stratified goodness A
+969 238009 37 relives chamberlains welcoming
+970 238010 37 Pandora creditably Pinsky FAS
+971 238011 37 watering philosophic halting
+972 238012 37 ungrateful ores bibliography
+973 238013 37 secures Carleton decoding
+974 240401 41 chastisers tape variance A
+975 240402 41 icon afloat allowed A
+976 240901 41 reuniting goodness dire A
+977 240902 41 imagining welcoming dub A
+978 241801 41 abiding Pinsky poisoning
+979 242101 41 omnisciently halting Iraqis A
+980 242102 41 Britannic bibliography heaving
+981 242201 41 scholastics decoding population A
+982 242202 41 mechanics variance bomb A
+983 242501 41 humidly allowed Majorca A
+984 242502 41 masterpiece dire Gershwins
+985 246201 41 however dub explorers
+986 246202 41 Mendelian poisoning libretto A
+987 246203 41 jarred Iraqis occurred
+988 246204 41 scolds heaving Lagos
+989 246205 41 infatuate population rats
+990 246301 41 willed bomb bankruptcies A
+991 246302 41 joyfully Majorca crying
+992 248001 41 Microsoft Gershwins unexpected
+993 248002 41 fibrosities explorers accessed A
+994 248003 41 Baltimorean libretto colorful A
+995 248004 41 equestrian occurred versatility A
+996 248005 41 Goodrich Lagos cosy
+997 248006 41 apish rats Darius A
+998 248007 41 Adlerian bankruptcies mastering A
+999 248008 41 Tropez crying Asiaticizations A
+1000 248009 41 nouns unexpected offerers A
+1001 248010 41 distracting accessed uncles A
+1002 248011 41 mutton colorful sleepwalk
+1003 248012 41 bridgeable versatility Ernestine
+1004 248013 41 stickers cosy checksumming
+1005 248014 41 transcontinental Darius stopped
+1006 248015 41 amateurish mastering sicker
+1007 248016 41 Gandhian Asiaticizations Italianization
+1008 248017 41 stratified offerers alphabetic
+1009 248018 41 chamberlains uncles pharmaceutic
+1010 248019 41 creditably sleepwalk creator
+1011 248020 41 philosophic Ernestine chess
+1012 248021 41 ores checksumming charcoal
+1013 248101 41 Carleton stopped Epiphany A
+1014 248102 41 tape sicker bulldozes A
+1015 248201 41 afloat Italianization Pygmalion A
+1016 248202 41 goodness alphabetic caressing A
+1017 248203 41 welcoming pharmaceutic Palestine A
+1018 248204 41 Pinsky creator regimented A
+1019 248205 41 halting chess scars A
+1020 248206 41 bibliography charcoal realest A
+1021 248207 41 decoding Epiphany diffusing A
+1022 248208 41 variance bulldozes clubroom A
+1023 248209 41 allowed Pygmalion Blythe A
+1024 248210 41 dire caressing ahead
+1025 248211 50 dub Palestine reviver
+1026 250501 34 poisoning regimented retransmitting A
+1027 250502 34 Iraqis scars landslide
+1028 250503 34 heaving realest Eiffel
+1029 250504 34 population diffusing absentee
+1030 250505 34 bomb clubroom aye
+1031 250601 34 Majorca Blythe forked A
+1032 250602 34 Gershwins ahead Peruvianizes
+1033 250603 34 explorers reviver clerked
+1034 250604 34 libretto retransmitting tutor
+1035 250605 34 occurred landslide boulevard
+1036 251001 34 Lagos Eiffel shuttered
+1037 251002 34 rats absentee quotes A
+1038 251003 34 bankruptcies aye Caltech
+1039 251004 34 crying forked Mossberg
+1040 251005 34 unexpected Peruvianizes kept
+1041 251301 34 accessed clerked roundly
+1042 251302 34 colorful tutor features A
+1043 251303 34 versatility boulevard imaginable A
+1044 251304 34 cosy shuttered controller
+1045 251305 34 Darius quotes racial
+1046 251401 34 mastering Caltech uprisings A
+1047 251402 34 Asiaticizations Mossberg narrowed A
+1048 251403 34 offerers kept cannot A
+1049 251404 34 uncles roundly vest
+1050 251405 34 sleepwalk features famine
+1051 251406 34 Ernestine imaginable sugars
+1052 251801 34 checksumming controller exterminated A
+1053 251802 34 stopped racial belays
+1054 252101 34 sicker uprisings Hodges A
+1055 252102 34 Italianization narrowed translatable
+1056 252301 34 alphabetic cannot duality A
+1057 252302 34 pharmaceutic vest recording A
+1058 252303 34 creator famine rouses A
+1059 252304 34 chess sugars poison
+1060 252305 34 charcoal exterminated attitude
+1061 252306 34 Epiphany belays dusted
+1062 252307 34 bulldozes Hodges encompasses
+1063 252308 34 Pygmalion translatable presentation
+1064 252309 34 caressing duality Kantian
+1065 256001 34 Palestine recording imprecision A
+1066 256002 34 regimented rouses saving
+1067 256003 34 scars poison maternal
+1068 256004 34 realest attitude hewed
+1069 256005 34 diffusing dusted kerosene
+1070 258001 34 clubroom encompasses Cubans
+1071 258002 34 Blythe presentation photographers
+1072 258003 34 ahead Kantian nymph A
+1073 258004 34 reviver imprecision bedlam A
+1074 258005 34 retransmitting saving north A
+1075 258006 34 landslide maternal Schoenberg A
+1076 258007 34 Eiffel hewed botany A
+1077 258008 34 absentee kerosene curs
+1078 258009 34 aye Cubans solidification
+1079 258010 34 forked photographers inheritresses
+1080 258011 34 Peruvianizes nymph stiller
+1081 258101 68 clerked bedlam t1 A
+1082 258102 68 tutor north suite A
+1083 258103 34 boulevard Schoenberg ransomer
+1084 258104 68 shuttered botany Willy
+1085 258105 68 quotes curs Rena A
+1086 258106 68 Caltech solidification Seattle A
+1087 258107 68 Mossberg inheritresses relaxes A
+1088 258108 68 kept stiller exclaim
+1089 258109 68 roundly t1 implicated A
+1090 258110 68 features suite distinguish
+1091 258111 68 imaginable ransomer assayed
+1092 258112 68 controller Willy homeowner
+1093 258113 68 racial Rena and
+1094 258201 34 uprisings Seattle stealth
+1095 258202 34 narrowed relaxes coinciding A
+1096 258203 34 cannot exclaim founder A
+1097 258204 34 vest implicated environing
+1098 258205 34 famine distinguish jewelry
+1099 258301 34 sugars assayed lemons A
+1100 258401 34 exterminated homeowner brokenness A
+1101 258402 34 belays and bedpost A
+1102 258403 34 Hodges stealth assurers A
+1103 258404 34 translatable coinciding annoyers
+1104 258405 34 duality founder affixed
+1105 258406 34 recording environing warbling
+1106 258407 34 rouses jewelry seriously
+1107 228123 37 poison lemons boasted
+1108 250606 34 attitude brokenness Chantilly
+1109 208405 37 dusted bedpost Iranizes
+1110 212101 37 encompasses assurers violinist
+1111 218206 37 presentation annoyers extramarital
+1112 150401 37 Kantian affixed spates
+1113 248212 41 imprecision warbling cloakroom
+1114 128026 00 saving seriously gazer
+1115 128024 00 maternal boasted hand
+1116 128027 00 hewed Chantilly tucked
+1117 128025 00 kerosene Iranizes gems
+1118 128109 00 Cubans violinist clinker
+1119 128705 00 photographers extramarital refiner
+1120 126303 00 nymph spates callus
+1121 128308 00 bedlam cloakroom leopards
+1122 128204 00 north gazer comfortingly
+1123 128205 00 Schoenberg hand generically
+1124 128206 00 botany tucked getters
+1125 128207 00 curs gems sexually
+1126 118205 00 solidification clinker spear
+1127 116801 00 inheritresses refiner serums
+1128 116803 00 stiller callus Italianization
+1129 116804 00 t1 leopards attendants
+1130 116802 00 suite comfortingly spies
+1131 128605 00 ransomer generically Anthony
+1132 118308 00 Willy getters planar
+1133 113702 00 Rena sexually cupped
+1134 113703 00 Seattle spear cleanser
+1135 112103 00 relaxes serums commuters
+1136 118009 00 exclaim Italianization honeysuckle
+5136 1118009 00 exclaim Italianization honeysuckle
+1137 138011 00 implicated attendants orphanage
+1138 138010 00 distinguish spies skies
+1139 138012 00 assayed Anthony crushers
+1140 068304 00 homeowner planar Puritan
+1141 078009 00 and cupped squeezer
+1142 108013 00 stealth cleanser bruises
+1143 084004 00 coinciding commuters bonfire
+1144 083402 00 founder honeysuckle Colombo
+1145 084003 00 environing orphanage nondecreasing
+1146 088504 00 jewelry skies innocents
+1147 088005 00 lemons crushers masked
+1148 088007 00 brokenness Puritan file
+1149 088006 00 bedpost squeezer brush
+1150 148025 00 assurers bruises mutilate
+1151 148024 00 annoyers bonfire mommy
+1152 138305 00 affixed Colombo bulkheads
+1153 138306 00 warbling nondecreasing undeclared
+1154 152701 00 seriously innocents displacements
+1155 148505 00 boasted masked nieces
+1156 158003 00 Chantilly file coeducation
+1157 156201 00 Iranizes brush brassy
+1158 156202 00 violinist mutilate authenticator
+1159 158307 00 extramarital mommy Washoe
+1160 158402 00 spates bulkheads penny
+1161 158401 00 cloakroom undeclared Flagler
+1162 068013 00 gazer displacements stoned
+1163 068012 00 hand nieces cranes
+1164 068203 00 tucked coeducation masterful
+1165 088205 00 gems brassy biracial
+1166 068704 00 clinker authenticator steamships
+1167 068604 00 refiner Washoe windmills
+1168 158502 00 callus penny exploit
+1169 123103 00 leopards Flagler riverfront
+1170 148026 00 comfortingly stoned sisterly
+1171 123302 00 generically cranes sharpshoot
+1172 076503 00 getters masterful mittens
+1173 126304 00 sexually biracial interdependency
+1174 068306 00 spear steamships policy
+1175 143504 00 serums windmills unleashing
+1176 160201 00 Italianization exploit pretenders
+1177 148028 00 attendants riverfront overstatements
+1178 148027 00 spies sisterly birthed
+1179 143505 00 Anthony sharpshoot opportunism
+1180 108014 00 planar mittens showroom
+1181 076104 00 cupped interdependency compromisingly
+1182 078106 00 cleanser policy Medicare
+1183 126102 00 commuters unleashing corresponds
+1184 128029 00 honeysuckle pretenders hardware
+1185 128028 00 orphanage overstatements implant
+1186 018410 00 skies birthed Alicia
+1187 128110 00 crushers opportunism requesting
+1188 148506 00 Puritan showroom produced
+1189 123303 00 squeezer compromisingly criticizes
+1190 123304 00 bruises Medicare backer
+1191 068504 00 bonfire corresponds positively
+1192 068305 00 Colombo hardware colicky
+1193 000000 00 nondecreasing implant thrillingly
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg W
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+SELECT COUNT(auto) FROM t2;
+COUNT(auto)
+1213
+INSERT DELAYED INTO t2 VALUES (99999,011403,37,'the','delayed','insert','');
+INSERT INTO t2 VALUES (100000,000001,00,'after','delayed','insert','');
+SELECT COUNT(auto) FROM t2;
+COUNT(auto)
+1215
+ALTER TABLE t2 DROP COLUMN fld6;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `auto` int(11) default NULL,
+ `fld1` int(6) unsigned zerofill NOT NULL default '000000',
+ `companynr` tinyint(2) unsigned zerofill NOT NULL default '00',
+ `fld3` char(30) NOT NULL default '',
+ `fld4` char(35) NOT NULL default '',
+ `fld5` char(35) NOT NULL default ''
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+SELECT * from t2 WHERE auto != 100000;
+auto fld1 companynr fld3 fld4 fld5
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+5 011501 37 bewilderingly wallet balled
+6 011701 37 astound parters persist
+7 011702 37 admonishing eschew attainments
+8 011703 37 sumac quitter fanatic
+9 012001 37 flanking neat measures
+10 012003 37 combed Steinberg rightfulness
+11 012004 37 subjective jarring capably
+12 012005 37 scatterbrain tinily impulsive
+13 012301 37 Eulerian balled starlet
+14 012302 36 dubbed persist terminators
+15 012303 37 Kane attainments untying
+16 012304 37 overlay fanatic announces
+17 012305 37 perturb measures featherweight
+18 012306 37 goblins rightfulness pessimist
+19 012501 37 annihilates capably daughter
+20 012602 37 Wotan impulsive decliner
+21 012603 37 snatching starlet lawgiver
+22 012604 37 concludes terminators stated
+23 012605 37 laterally untying readable
+24 012606 37 yelped announces attrition
+25 012701 37 grazing featherweight cascade
+26 012702 37 Baird pessimist motors
+27 012703 37 celery daughter interrogate
+28 012704 37 misunderstander decliner pests
+29 013601 37 handgun lawgiver stairway
+30 013602 37 foldout stated dopers
+31 013603 37 mystic readable testicle
+32 013604 37 succumbed attrition Parsifal
+33 013605 37 Nabisco cascade leavings
+34 013606 37 fingerings motors postulation
+35 013607 37 aging interrogate squeaking
+36 013608 37 afield pests contrasted
+37 013609 37 ammonium stairway leftover
+38 013610 37 boat dopers whiteners
+39 013801 37 intelligibility testicle erases
+40 013802 37 Augustine Parsifal Punjab
+41 013803 37 teethe leavings Merritt
+42 013804 37 dreaded postulation Quixotism
+43 013901 37 scholastics squeaking sweetish
+44 016001 37 audiology contrasted dogging
+45 016201 37 wallet leftover scornfully
+46 016202 37 parters whiteners bellow
+47 016301 37 eschew erases bills
+48 016302 37 quitter Punjab cupboard
+49 016303 37 neat Merritt sureties
+50 016304 37 Steinberg Quixotism puddings
+51 018001 37 jarring sweetish tapestry
+52 018002 37 tinily dogging fetters
+53 018003 37 balled scornfully bivalves
+54 018004 37 persist bellow incurring
+55 018005 37 attainments bills Adolph
+56 018007 37 fanatic cupboard pithed
+57 018008 37 measures sureties emergency
+58 018009 37 rightfulness puddings Miles
+59 018010 37 capably tapestry trimmings
+60 018012 37 impulsive fetters tragedies
+61 018013 37 starlet bivalves skulking
+62 018014 37 terminators incurring flint
+63 018015 37 untying Adolph flopping
+64 018016 37 announces pithed relaxing
+65 018017 37 featherweight emergency offload
+66 018018 37 pessimist Miles suites
+67 018019 37 daughter trimmings lists
+68 018020 37 decliner tragedies animized
+69 018021 37 lawgiver skulking multilayer
+70 018022 37 stated flint standardizes
+71 018023 37 readable flopping Judas
+72 018024 37 attrition relaxing vacuuming
+73 018025 37 cascade offload dentally
+74 018026 37 motors suites humanness
+75 018027 37 interrogate lists inch
+76 018028 37 pests animized Weissmuller
+77 018029 37 stairway multilayer irresponsibly
+78 018030 37 dopers standardizes luckily
+79 018032 37 testicle Judas culled
+80 018033 37 Parsifal vacuuming medical
+81 018034 37 leavings dentally bloodbath
+82 018035 37 postulation humanness subschema
+83 018036 37 squeaking inch animals
+84 018037 37 contrasted Weissmuller Micronesia
+85 018038 37 leftover irresponsibly repetitions
+86 018039 37 whiteners luckily Antares
+87 018040 37 erases culled ventilate
+88 018041 37 Punjab medical pityingly
+89 018042 37 Merritt bloodbath interdependent
+90 018043 37 Quixotism subschema Graves
+91 018044 37 sweetish animals neonatal
+92 018045 37 dogging Micronesia scribbled
+93 018046 37 scornfully repetitions chafe
+94 018048 37 bellow Antares honoring
+95 018049 37 bills ventilate realtor
+96 018050 37 cupboard pityingly elite
+97 018051 37 sureties interdependent funereal
+98 018052 37 puddings Graves abrogating
+99 018053 50 tapestry neonatal sorters
+100 018054 37 fetters scribbled Conley
+101 018055 37 bivalves chafe lectured
+102 018056 37 incurring honoring Abraham
+103 018057 37 Adolph realtor Hawaii
+104 018058 37 pithed elite cage
+105 018059 36 emergency funereal hushes
+106 018060 37 Miles abrogating Simla
+107 018061 37 trimmings sorters reporters
+108 018101 37 tragedies Conley Dutchman
+109 018102 37 skulking lectured descendants
+110 018103 37 flint Abraham groupings
+111 018104 37 flopping Hawaii dissociate
+112 018201 37 relaxing cage coexist
+113 018202 37 offload hushes Beebe
+114 018402 37 suites Simla Taoism
+115 018403 37 lists reporters Connally
+116 018404 37 animized Dutchman fetched
+117 018405 37 multilayer descendants checkpoints
+118 018406 37 standardizes groupings rusting
+119 018409 37 Judas dissociate galling
+120 018601 37 vacuuming coexist obliterates
+121 018602 37 dentally Beebe traitor
+122 018603 37 humanness Taoism resumes
+123 018801 37 inch Connally analyzable
+124 018802 37 Weissmuller fetched terminator
+125 018803 37 irresponsibly checkpoints gritty
+126 018804 37 luckily rusting firearm
+127 018805 37 culled galling minima
+128 018806 37 medical obliterates Selfridge
+129 018807 37 bloodbath traitor disable
+130 018808 37 subschema resumes witchcraft
+131 018809 37 animals analyzable betroth
+132 018810 37 Micronesia terminator Manhattanize
+133 018811 37 repetitions gritty imprint
+134 018812 37 Antares firearm peeked
+135 019101 37 ventilate minima swelling
+136 019102 37 pityingly Selfridge interrelationships
+137 019103 37 interdependent disable riser
+138 019201 37 Graves witchcraft Gandhian
+139 030501 37 neonatal betroth peacock
+140 030502 50 scribbled Manhattanize bee
+141 030503 37 chafe imprint kanji
+142 030504 37 honoring peeked dental
+143 031901 37 realtor swelling scarf
+144 036001 37 elite interrelationships chasm
+145 036002 37 funereal riser insolence
+146 036004 37 abrogating Gandhian syndicate
+147 036005 37 sorters peacock alike
+148 038001 37 Conley bee imperial
+149 038002 37 lectured kanji convulsion
+150 038003 37 Abraham dental railway
+151 038004 37 Hawaii scarf validate
+152 038005 37 cage chasm normalizes
+153 038006 37 hushes insolence comprehensive
+154 038007 37 Simla syndicate chewing
+155 038008 37 reporters alike denizen
+156 038009 37 Dutchman imperial schemer
+157 038010 37 descendants convulsion chronicle
+158 038011 37 groupings railway Kline
+159 038012 37 dissociate validate Anatole
+160 038013 37 coexist normalizes partridges
+161 038014 37 Beebe comprehensive brunch
+162 038015 37 Taoism chewing recruited
+163 038016 37 Connally denizen dimensions
+164 038017 37 fetched schemer Chicana
+165 038018 37 checkpoints chronicle announced
+166 038101 37 rusting Kline praised
+167 038102 37 galling Anatole employing
+168 038103 37 obliterates partridges linear
+169 038104 37 traitor brunch quagmire
+170 038201 37 resumes recruited western
+171 038202 37 analyzable dimensions relishing
+172 038203 37 terminator Chicana serving
+173 038204 37 gritty announced scheduling
+174 038205 37 firearm praised lore
+175 038206 37 minima employing eventful
+176 038208 37 Selfridge linear arteriole
+177 042801 37 disable quagmire disentangle
+178 042802 37 witchcraft western cured
+179 046101 37 betroth relishing Fenton
+180 048001 37 Manhattanize serving avoidable
+181 048002 37 imprint scheduling drains
+182 048003 37 peeked lore detectably
+183 048004 37 swelling eventful husky
+184 048005 37 interrelationships arteriole impelling
+185 048006 37 riser disentangle undoes
+186 048007 37 Gandhian cured evened
+187 048008 37 peacock Fenton squeezes
+188 048101 37 bee avoidable destroyer
+189 048102 37 kanji drains rudeness
+190 048201 37 dental detectably beaner
+191 048202 37 scarf husky boorish
+192 048203 37 chasm impelling Everhart
+193 048204 37 insolence undoes encompass
+194 048205 37 syndicate evened mushrooms
+195 048301 37 alike squeezes Alison
+196 048302 37 imperial destroyer externally
+197 048303 37 convulsion rudeness pellagra
+198 048304 37 railway beaner cult
+199 048305 37 validate boorish creek
+200 048401 37 normalizes Everhart Huffman
+201 048402 37 comprehensive encompass Majorca
+202 048403 37 chewing mushrooms governing
+203 048404 37 denizen Alison gadfly
+204 048405 37 schemer externally reassigned
+205 048406 37 chronicle pellagra intentness
+206 048407 37 Kline cult craziness
+207 048408 37 Anatole creek psychic
+208 048409 37 partridges Huffman squabbled
+209 048410 37 brunch Majorca burlesque
+210 048411 37 recruited governing capped
+211 048412 37 dimensions gadfly extracted
+212 048413 37 Chicana reassigned DiMaggio
+213 048601 37 announced intentness exclamation
+214 048602 37 praised craziness subdirectory
+215 048603 37 employing psychic fangs
+216 048604 37 linear squabbled buyer
+217 048801 37 quagmire burlesque pithing
+218 050901 37 western capped transistorizing
+219 051201 37 relishing extracted nonbiodegradable
+220 056002 37 serving DiMaggio dislocate
+221 056003 37 scheduling exclamation monochromatic
+222 056004 37 lore subdirectory batting
+223 056102 37 eventful fangs postcondition
+224 056203 37 arteriole buyer catalog
+225 056204 37 disentangle pithing Remus
+226 058003 37 cured transistorizing devices
+227 058004 37 Fenton nonbiodegradable bike
+228 058005 37 avoidable dislocate qualify
+229 058006 37 drains monochromatic detained
+230 058007 37 detectably batting commended
+231 058101 37 husky postcondition civilize
+232 058102 37 impelling catalog Elmhurst
+233 058103 37 undoes Remus anesthetizing
+234 058105 37 evened devices deaf
+235 058111 37 squeezes bike Brigham
+236 058112 37 destroyer qualify title
+237 058113 37 rudeness detained coarse
+238 058114 37 beaner commended combinations
+239 058115 37 boorish civilize grayness
+240 058116 37 Everhart Elmhurst innumerable
+241 058117 37 encompass anesthetizing Caroline
+242 058118 37 mushrooms deaf fatty
+243 058119 37 Alison Brigham eastbound
+244 058120 37 externally title inexperienced
+245 058121 37 pellagra coarse hoarder
+246 058122 37 cult combinations scotch
+247 058123 37 creek grayness passport
+248 058124 37 Huffman innumerable strategic
+249 058125 37 Majorca Caroline gated
+250 058126 37 governing fatty flog
+251 058127 37 gadfly eastbound Pipestone
+252 058128 37 reassigned inexperienced Dar
+253 058201 37 intentness hoarder Corcoran
+254 058202 37 craziness scotch flyers
+255 058303 37 psychic passport competitions
+256 058304 37 squabbled strategic suppliers
+257 058602 37 burlesque gated skips
+258 058603 37 capped flog institutes
+259 058604 37 extracted Pipestone troop
+260 058605 37 DiMaggio Dar connective
+261 058606 37 exclamation Corcoran denies
+262 058607 37 subdirectory flyers polka
+263 060401 36 fangs competitions observations
+264 061701 36 buyer suppliers askers
+265 066201 36 pithing skips homeless
+266 066501 36 transistorizing institutes Anna
+267 068001 36 nonbiodegradable troop subdirectories
+268 068002 36 dislocate connective decaying
+269 068005 36 monochromatic denies outwitting
+270 068006 36 batting polka Harpy
+271 068007 36 postcondition observations crazed
+272 068008 36 catalog askers suffocate
+273 068009 36 Remus homeless provers
+274 068010 36 devices Anna technically
+275 068011 36 bike subdirectories Franklinizations
+276 068202 36 qualify decaying considered
+277 068302 36 detained outwitting tinnily
+278 068303 36 commended Harpy uninterruptedly
+279 068401 36 civilize crazed whistled
+280 068501 36 Elmhurst suffocate automate
+281 068502 36 anesthetizing provers gutting
+282 068503 36 deaf technically surreptitious
+283 068602 36 Brigham Franklinizations Choctaw
+284 068603 36 title considered cooks
+285 068701 36 coarse tinnily millivolt
+286 068702 36 combinations uninterruptedly counterpoise
+287 068703 36 grayness whistled Gothicism
+288 076001 36 innumerable automate feminine
+289 076002 36 Caroline gutting metaphysically
+290 076101 36 fatty surreptitious sanding
+291 076102 36 eastbound Choctaw contributorily
+292 076103 36 inexperienced cooks receivers
+293 076302 36 hoarder millivolt adjourn
+294 076303 36 scotch counterpoise straggled
+295 076304 36 passport Gothicism druggists
+296 076305 36 strategic feminine thanking
+297 076306 36 gated metaphysically ostrich
+298 076307 36 flog sanding hopelessness
+299 076402 36 Pipestone contributorily Eurydice
+300 076501 36 Dar receivers excitation
+301 076502 36 Corcoran adjourn presumes
+302 076701 36 flyers straggled imaginable
+303 078001 36 competitions druggists concoct
+304 078002 36 suppliers thanking peering
+305 078003 36 skips ostrich Phelps
+306 078004 36 institutes hopelessness ferociousness
+307 078005 36 troop Eurydice sentences
+308 078006 36 connective excitation unlocks
+309 078007 36 denies presumes engrossing
+310 078008 36 polka imaginable Ruth
+311 078101 36 observations concoct tying
+312 078103 36 askers peering exclaimers
+313 078104 36 homeless Phelps synergy
+314 078105 36 Anna ferociousness Huey
+315 082101 36 subdirectories sentences merging
+316 083401 36 decaying unlocks judges
+317 084001 36 outwitting engrossing Shylock
+318 084002 36 Harpy Ruth Miltonism
+319 086001 36 crazed tying hen
+320 086102 36 suffocate exclaimers honeybee
+321 086201 36 provers synergy towers
+322 088001 36 technically Huey dilutes
+323 088002 36 Franklinizations merging numerals
+324 088003 36 considered judges democracy
+325 088004 36 tinnily Shylock Ibero-
+326 088101 36 uninterruptedly Miltonism invalids
+327 088102 36 whistled hen behavior
+328 088103 36 automate honeybee accruing
+329 088104 36 gutting towers relics
+330 088105 36 surreptitious dilutes rackets
+331 088106 36 Choctaw numerals Fischbein
+332 088201 36 cooks democracy phony
+333 088203 36 millivolt Ibero- cross
+334 088204 36 counterpoise invalids cleanup
+335 088302 37 Gothicism behavior conspirator
+336 088303 37 feminine accruing label
+337 088305 37 metaphysically relics university
+338 088402 37 sanding rackets cleansed
+339 088501 36 contributorily Fischbein ballgown
+340 088502 36 receivers phony starlet
+341 088503 36 adjourn cross aqueous
+342 098001 58 straggled cleanup portrayal
+343 098002 58 druggists conspirator despising
+344 098003 58 thanking label distort
+345 098004 58 ostrich university palmed
+346 098005 58 hopelessness cleansed faced
+347 098006 58 Eurydice ballgown silverware
+348 141903 29 excitation starlet assessor
+349 098008 58 presumes aqueous spiders
+350 098009 58 imaginable portrayal artificially
+351 098010 58 concoct despising reminiscence
+352 098011 58 peering distort Mexican
+353 098012 58 Phelps palmed obnoxious
+354 098013 58 ferociousness faced fragile
+355 098014 58 sentences silverware apprehensible
+356 098015 58 unlocks assessor births
+357 098016 58 engrossing spiders garages
+358 098017 58 Ruth artificially panty
+359 098018 58 tying reminiscence anteater
+360 098019 58 exclaimers Mexican displacement
+361 098020 58 synergy obnoxious drovers
+362 098021 58 Huey fragile patenting
+363 098022 58 merging apprehensible far
+364 098023 58 judges births shrieks
+365 098024 58 Shylock garages aligning
+366 098025 37 Miltonism panty pragmatism
+367 106001 36 hen anteater fevers
+368 108001 36 honeybee displacement reexamines
+369 108002 36 towers drovers occupancies
+370 108003 36 dilutes patenting sweats
+371 108004 36 numerals far modulators
+372 108005 36 democracy shrieks demand
+373 108007 36 Ibero- aligning Madeira
+374 108008 36 invalids pragmatism Viennese
+375 108009 36 behavior fevers chillier
+376 108010 36 accruing reexamines wildcats
+377 108011 36 relics occupancies gentle
+378 108012 36 rackets sweats Angles
+379 108101 36 Fischbein modulators accuracies
+380 108102 36 phony demand toggle
+381 108103 36 cross Madeira Mendelssohn
+382 108111 50 cleanup Viennese behaviorally
+383 108105 36 conspirator chillier Rochford
+384 108106 36 label wildcats mirror
+385 108107 36 university gentle Modula
+386 108108 50 cleansed Angles clobbering
+387 108109 36 ballgown accuracies chronography
+388 108110 36 starlet toggle Eskimoizeds
+389 108201 36 aqueous Mendelssohn British
+390 108202 36 portrayal behaviorally pitfalls
+391 108203 36 despising Rochford verify
+392 108204 36 distort mirror scatter
+393 108205 36 palmed Modula Aztecan
+394 108301 36 faced clobbering acuity
+395 108302 36 silverware chronography sinking
+396 112101 36 assessor Eskimoizeds beasts
+397 112102 36 spiders British Witt
+398 113701 36 artificially pitfalls physicists
+399 116001 36 reminiscence verify folksong
+400 116201 36 Mexican scatter strokes
+401 116301 36 obnoxious Aztecan crowder
+402 116302 36 fragile acuity merry
+403 116601 36 apprehensible sinking cadenced
+404 116602 36 births beasts alimony
+405 116603 36 garages Witt principled
+406 116701 36 panty physicists golfing
+407 116702 36 anteater folksong undiscovered
+408 118001 36 displacement strokes irritates
+409 118002 36 drovers crowder patriots
+410 118003 36 patenting merry rooms
+411 118004 36 far cadenced towering
+412 118005 36 shrieks alimony displease
+413 118006 36 aligning principled photosensitive
+414 118007 36 pragmatism golfing inking
+415 118008 36 fevers undiscovered gainers
+416 118101 36 reexamines irritates leaning
+417 118102 36 occupancies patriots hydrant
+418 118103 36 sweats rooms preserve
+419 118202 36 modulators towering blinded
+420 118203 36 demand displease interactions
+421 118204 36 Madeira photosensitive Barry
+422 118302 36 Viennese inking whiteness
+423 118304 36 chillier gainers pastimes
+424 118305 36 wildcats leaning Edenization
+425 118306 36 gentle hydrant Muscat
+426 118307 36 Angles preserve assassinated
+427 123101 36 accuracies blinded labeled
+428 123102 36 toggle interactions glacial
+429 123301 36 Mendelssohn Barry implied
+430 126001 36 behaviorally whiteness bibliographies
+431 126002 36 Rochford pastimes Buchanan
+432 126003 36 mirror Edenization forgivably
+433 126101 36 Modula Muscat innuendo
+434 126301 36 clobbering assassinated den
+435 126302 36 chronography labeled submarines
+436 126402 36 Eskimoizeds glacial mouthful
+437 126601 36 British implied expiring
+438 126602 36 pitfalls bibliographies unfulfilled
+439 126702 36 verify Buchanan precession
+440 128001 36 scatter forgivably nullified
+441 128002 36 Aztecan innuendo affects
+442 128003 36 acuity den Cynthia
+443 128004 36 sinking submarines Chablis
+444 128005 36 beasts mouthful betterments
+445 128007 36 Witt expiring advertising
+446 128008 36 physicists unfulfilled rubies
+447 128009 36 folksong precession southwest
+448 128010 36 strokes nullified superstitious
+449 128011 36 crowder affects tabernacle
+450 128012 36 merry Cynthia silk
+451 128013 36 cadenced Chablis handsomest
+452 128014 36 alimony betterments Persian
+453 128015 36 principled advertising analog
+454 128016 36 golfing rubies complex
+455 128017 36 undiscovered southwest Taoist
+456 128018 36 irritates superstitious suspend
+457 128019 36 patriots tabernacle relegated
+458 128020 36 rooms silk awesome
+459 128021 36 towering handsomest Bruxelles
+460 128022 36 displease Persian imprecisely
+461 128023 36 photosensitive analog televise
+462 128101 36 inking complex braking
+463 128102 36 gainers Taoist true
+464 128103 36 leaning suspend disappointing
+465 128104 36 hydrant relegated navally
+466 128106 36 preserve awesome circus
+467 128107 36 blinded Bruxelles beetles
+468 128108 36 interactions imprecisely trumps
+469 128202 36 Barry televise fourscore
+470 128203 36 whiteness braking Blackfoots
+471 128301 36 pastimes true Grady
+472 128302 36 Edenization disappointing quiets
+473 128303 36 Muscat navally floundered
+474 128304 36 assassinated circus profundity
+475 128305 36 labeled beetles Garrisonian
+476 128307 36 glacial trumps Strauss
+477 128401 36 implied fourscore cemented
+478 128502 36 bibliographies Blackfoots contrition
+479 128503 36 Buchanan Grady mutations
+480 128504 36 forgivably quiets exhibits
+481 128505 36 innuendo floundered tits
+482 128601 36 den profundity mate
+483 128603 36 submarines Garrisonian arches
+484 128604 36 mouthful Strauss Moll
+485 128702 36 expiring cemented ropers
+486 128703 36 unfulfilled contrition bombast
+487 128704 36 precession mutations difficultly
+488 138001 36 nullified exhibits adsorption
+489 138002 36 affects tits definiteness
+490 138003 36 Cynthia mate cultivation
+491 138004 36 Chablis arches heals
+492 138005 36 betterments Moll Heusen
+493 138006 36 advertising ropers target
+494 138007 36 rubies bombast cited
+495 138008 36 southwest difficultly congresswoman
+496 138009 36 superstitious adsorption Katherine
+497 138102 36 tabernacle definiteness titter
+498 138103 36 silk cultivation aspire
+499 138104 36 handsomest heals Mardis
+500 138105 36 Persian Heusen Nadia
+501 138201 36 analog target estimating
+502 138302 36 complex cited stuck
+503 138303 36 Taoist congresswoman fifteenth
+504 138304 36 suspend Katherine Colombo
+505 138401 29 relegated titter survey
+506 140102 29 awesome aspire staffing
+507 140103 29 Bruxelles Mardis obtain
+508 140104 29 imprecisely Nadia loaded
+509 140105 29 televise estimating slaughtered
+510 140201 29 braking stuck lights
+511 140701 29 true fifteenth circumference
+512 141501 29 disappointing Colombo dull
+513 141502 29 navally survey weekly
+514 141901 29 circus staffing wetness
+515 141902 29 beetles obtain visualized
+516 142101 29 trumps loaded Tannenbaum
+517 142102 29 fourscore slaughtered moribund
+518 142103 29 Blackfoots lights demultiplex
+519 142701 29 Grady circumference lockings
+520 143001 29 quiets dull thugs
+521 143501 29 floundered weekly unnerves
+522 143502 29 profundity wetness abut
+523 148001 29 Garrisonian visualized Chippewa
+524 148002 29 Strauss Tannenbaum stratifications
+525 148003 29 cemented moribund signaled
+526 148004 29 contrition demultiplex Italianizes
+527 148005 29 mutations lockings algorithmic
+528 148006 29 exhibits thugs paranoid
+529 148007 29 tits unnerves camping
+530 148009 29 mate abut signifying
+531 148010 29 arches Chippewa Patrice
+532 148011 29 Moll stratifications search
+533 148012 29 ropers signaled Angeles
+534 148013 29 bombast Italianizes semblance
+535 148023 36 difficultly algorithmic taxed
+536 148015 29 adsorption paranoid Beatrice
+537 148016 29 definiteness camping retrace
+538 148017 29 cultivation signifying lockout
+539 148018 29 heals Patrice grammatic
+540 148019 29 Heusen search helmsman
+541 148020 29 target Angeles uniform
+542 148021 29 cited semblance hamming
+543 148022 29 congresswoman taxed disobedience
+544 148101 29 Katherine Beatrice captivated
+545 148102 29 titter retrace transferals
+546 148201 29 aspire lockout cartographer
+547 148401 29 Mardis grammatic aims
+548 148402 29 Nadia helmsman Pakistani
+549 148501 29 estimating uniform burglarized
+550 148502 29 stuck hamming saucepans
+551 148503 29 fifteenth disobedience lacerating
+552 148504 29 Colombo captivated corny
+553 148601 29 survey transferals megabytes
+554 148602 29 staffing cartographer chancellor
+555 150701 29 obtain aims bulk
+556 152101 29 loaded Pakistani commits
+557 152102 29 slaughtered burglarized meson
+558 155202 36 lights saucepans deputies
+559 155203 29 circumference lacerating northeaster
+560 155204 29 dull corny dipole
+561 155205 29 weekly megabytes machining
+562 156001 29 wetness chancellor therefore
+563 156002 29 visualized bulk Telefunken
+564 156102 29 Tannenbaum commits salvaging
+565 156301 29 moribund meson Corinthianizes
+566 156302 29 demultiplex deputies restlessly
+567 156303 29 lockings northeaster bromides
+568 156304 29 thugs dipole generalized
+569 156305 29 unnerves machining mishaps
+570 156306 29 abut therefore quelling
+571 156501 29 Chippewa Telefunken spiritual
+572 158001 29 stratifications salvaging beguiles
+573 158002 29 signaled Corinthianizes Trobriand
+574 158101 29 Italianizes restlessly fleeing
+575 158102 29 algorithmic bromides Armour
+576 158103 29 paranoid generalized chin
+577 158201 29 camping mishaps provers
+578 158202 29 signifying quelling aeronautic
+579 158203 29 Patrice spiritual voltage
+580 158204 29 search beguiles sash
+581 158301 29 Angeles Trobriand anaerobic
+582 158302 29 semblance fleeing simultaneous
+583 158303 29 taxed Armour accumulating
+584 158304 29 Beatrice chin Medusan
+585 158305 29 retrace provers shouted
+586 158306 29 lockout aeronautic freakish
+587 158501 29 grammatic voltage index
+588 160301 29 helmsman sash commercially
+589 166101 50 uniform anaerobic mistiness
+590 166102 50 hamming simultaneous endpoint
+591 168001 29 disobedience accumulating straight
+592 168002 29 captivated Medusan flurried
+593 168003 29 transferals shouted denotative
+594 168101 29 cartographer freakish coming
+595 168102 29 aims index commencements
+596 168103 29 Pakistani commercially gentleman
+597 168104 29 burglarized mistiness gifted
+598 168202 29 saucepans endpoint Shanghais
+599 168301 29 lacerating straight sportswriting
+600 168502 29 corny flurried sloping
+601 168503 29 megabytes denotative navies
+602 168601 29 chancellor coming leaflet
+603 173001 40 bulk commencements shooter
+604 173701 40 commits gentleman Joplin
+605 173702 40 meson gifted babies
+606 176001 40 deputies Shanghais subdivision
+607 176101 40 northeaster sportswriting burstiness
+608 176201 40 dipole sloping belted
+609 176401 40 machining navies assails
+610 176501 40 therefore leaflet admiring
+611 176601 40 Telefunken shooter swaying
+612 176602 40 salvaging Joplin Goldstine
+613 176603 40 Corinthianizes babies fitting
+614 178001 40 restlessly subdivision Norwalk
+615 178002 40 bromides burstiness weakening
+616 178003 40 generalized belted analogy
+617 178004 40 mishaps assails deludes
+618 178005 40 quelling admiring cokes
+619 178006 40 spiritual swaying Clayton
+620 178007 40 beguiles Goldstine exhausts
+621 178008 40 Trobriand fitting causality
+622 178101 40 fleeing Norwalk sating
+623 178102 40 Armour weakening icon
+624 178103 40 chin analogy throttles
+625 178201 40 provers deludes communicants
+626 178202 40 aeronautic cokes dehydrate
+627 178301 40 voltage Clayton priceless
+628 178302 40 sash exhausts publicly
+629 178401 40 anaerobic causality incidentals
+630 178402 40 simultaneous sating commonplace
+631 178403 40 accumulating icon mumbles
+632 178404 40 Medusan throttles furthermore
+633 178501 40 shouted communicants cautioned
+634 186002 37 freakish dehydrate parametrized
+635 186102 37 index priceless registration
+636 186201 40 commercially publicly sadly
+637 186202 40 mistiness incidentals positioning
+638 186203 40 endpoint commonplace babysitting
+639 186302 37 straight mumbles eternal
+640 188007 37 flurried furthermore hoarder
+641 188008 37 denotative cautioned congregates
+642 188009 37 coming parametrized rains
+643 188010 37 commencements registration workers
+644 188011 37 gentleman sadly sags
+645 188012 37 gifted positioning unplug
+646 188013 37 Shanghais babysitting garage
+647 188014 37 sportswriting eternal boulder
+648 188015 37 sloping hoarder hollowly
+649 188016 37 navies congregates specifics
+650 188017 37 leaflet rains Teresa
+651 188102 37 shooter workers Winsett
+652 188103 37 Joplin sags convenient
+653 188202 37 babies unplug buckboards
+654 188301 40 subdivision garage amenities
+655 188302 40 burstiness boulder resplendent
+656 188303 40 belted hollowly priding
+657 188401 37 assails specifics configurations
+658 188402 37 admiring Teresa untidiness
+659 188503 37 swaying Winsett Brice
+660 188504 37 Goldstine convenient sews
+661 188505 37 fitting buckboards participated
+662 190701 37 Norwalk amenities Simon
+663 190703 50 weakening resplendent certificates
+664 191701 37 analogy priding Fitzpatrick
+665 191702 37 deludes configurations Evanston
+666 191703 37 cokes untidiness misted
+667 196001 37 Clayton Brice textures
+668 196002 37 exhausts sews save
+669 196003 37 causality participated count
+670 196101 37 sating Simon rightful
+671 196103 37 icon certificates chaperone
+672 196104 37 throttles Fitzpatrick Lizzy
+673 196201 37 communicants Evanston clenched
+674 196202 37 dehydrate misted effortlessly
+675 196203 37 priceless textures accessed
+676 198001 37 publicly save beaters
+677 198003 37 incidentals count Hornblower
+678 198004 37 commonplace rightful vests
+679 198005 37 mumbles chaperone indulgences
+680 198006 37 furthermore Lizzy infallibly
+681 198007 37 cautioned clenched unwilling
+682 198008 37 parametrized effortlessly excrete
+683 198009 37 registration accessed spools
+684 198010 37 sadly beaters crunches
+685 198011 37 positioning Hornblower overestimating
+686 198012 37 babysitting vests ineffective
+687 198013 37 eternal indulgences humiliation
+688 198014 37 hoarder infallibly sophomore
+689 198015 37 congregates unwilling star
+690 198017 37 rains excrete rifles
+691 198018 37 workers spools dialysis
+692 198019 37 sags crunches arriving
+693 198020 37 unplug overestimating indulge
+694 198021 37 garage ineffective clockers
+695 198022 37 boulder humiliation languages
+696 198023 50 hollowly sophomore Antarctica
+697 198024 37 specifics star percentage
+698 198101 37 Teresa rifles ceiling
+699 198103 37 Winsett dialysis specification
+700 198105 37 convenient arriving regimented
+701 198106 37 buckboards indulge ciphers
+702 198201 37 amenities clockers pictures
+703 198204 37 resplendent languages serpents
+704 198301 53 priding Antarctica allot
+705 198302 53 configurations percentage realized
+706 198303 53 untidiness ceiling mayoral
+707 198304 53 Brice specification opaquely
+708 198401 37 sews regimented hostess
+709 198402 37 participated ciphers fiftieth
+710 198403 37 Simon pictures incorrectly
+711 202101 37 certificates serpents decomposition
+712 202301 37 Fitzpatrick allot stranglings
+713 202302 37 Evanston realized mixture
+714 202303 37 misted mayoral electroencephalography
+715 202304 37 textures opaquely similarities
+716 202305 37 save hostess charges
+717 202601 37 count fiftieth freest
+718 202602 37 rightful incorrectly Greenberg
+719 202605 37 chaperone decomposition tinting
+720 202606 37 Lizzy stranglings expelled
+721 202607 37 clenched mixture warm
+722 202901 37 effortlessly electroencephalography smoothed
+723 202902 37 accessed similarities deductions
+724 202903 37 beaters charges Romano
+725 202904 37 Hornblower freest bitterroot
+726 202907 37 vests Greenberg corset
+727 202908 37 indulgences tinting securing
+728 203101 37 infallibly expelled environing
+729 203103 37 unwilling warm cute
+730 203104 37 excrete smoothed Crays
+731 203105 37 spools deductions heiress
+732 203401 37 crunches Romano inform
+733 203402 37 overestimating bitterroot avenge
+734 203404 37 ineffective corset universals
+735 203901 37 humiliation securing Kinsey
+736 203902 37 sophomore environing ravines
+737 203903 37 star cute bestseller
+738 203906 37 rifles Crays equilibrium
+739 203907 37 dialysis heiress extents
+740 203908 37 arriving inform relatively
+741 203909 37 indulge avenge pressure
+742 206101 37 clockers universals critiques
+743 206201 37 languages Kinsey befouled
+744 206202 37 Antarctica ravines rightfully
+745 206203 37 percentage bestseller mechanizing
+746 206206 37 ceiling equilibrium Latinizes
+747 206207 37 specification extents timesharing
+748 206208 37 regimented relatively Aden
+749 208001 37 ciphers pressure embassies
+750 208002 37 pictures critiques males
+751 208003 37 serpents befouled shapelessly
+752 208004 37 allot rightfully genres
+753 208008 37 realized mechanizing mastering
+754 208009 37 mayoral Latinizes Newtonian
+755 208010 37 opaquely timesharing finishers
+756 208011 37 hostess Aden abates
+757 208101 37 fiftieth embassies teem
+758 208102 37 incorrectly males kiting
+759 208103 37 decomposition shapelessly stodgy
+760 208104 37 stranglings genres scalps
+761 208105 37 mixture mastering feed
+762 208110 37 electroencephalography Newtonian guitars
+763 208111 37 similarities finishers airships
+764 208112 37 charges abates store
+765 208113 37 freest teem denounces
+766 208201 37 Greenberg kiting Pyle
+767 208203 37 tinting stodgy Saxony
+768 208301 37 expelled scalps serializations
+769 208302 37 warm feed Peruvian
+770 208305 37 smoothed guitars taxonomically
+771 208401 37 deductions airships kingdom
+772 208402 37 Romano store stint
+773 208403 37 bitterroot denounces Sault
+774 208404 37 corset Pyle faithful
+775 208501 37 securing Saxony Ganymede
+776 208502 37 environing serializations tidiness
+777 208503 37 cute Peruvian gainful
+778 208504 37 Crays taxonomically contrary
+779 208505 37 heiress kingdom Tipperary
+780 210101 37 inform stint tropics
+781 210102 37 avenge Sault theorizers
+782 210103 37 universals faithful renew
+783 210104 37 Kinsey Ganymede already
+784 210105 37 ravines tidiness terminal
+785 210106 37 bestseller gainful Hegelian
+786 210107 37 equilibrium contrary hypothesizer
+787 210401 37 extents Tipperary warningly
+788 213201 37 relatively tropics journalizing
+789 213203 37 pressure theorizers nested
+790 213204 37 critiques renew Lars
+791 213205 37 befouled already saplings
+792 213206 37 rightfully terminal foothill
+793 213207 37 mechanizing Hegelian labeled
+794 216101 37 Latinizes hypothesizer imperiously
+795 216103 37 timesharing warningly reporters
+796 218001 37 Aden journalizing furnishings
+797 218002 37 embassies nested precipitable
+798 218003 37 males Lars discounts
+799 218004 37 shapelessly saplings excises
+800 143503 50 genres foothill Stalin
+801 218006 37 mastering labeled despot
+802 218007 37 Newtonian imperiously ripeness
+803 218008 37 finishers reporters Arabia
+804 218009 37 abates furnishings unruly
+805 218010 37 teem precipitable mournfulness
+806 218011 37 kiting discounts boom
+807 218020 37 stodgy excises slaughter
+808 218021 50 scalps Stalin Sabine
+809 218022 37 feed despot handy
+810 218023 37 guitars ripeness rural
+811 218024 37 airships Arabia organizer
+812 218101 37 store unruly shipyard
+813 218102 37 denounces mournfulness civics
+814 218103 37 Pyle boom inaccuracy
+815 218201 37 Saxony slaughter rules
+816 218202 37 serializations Sabine juveniles
+817 218203 37 Peruvian handy comprised
+818 218204 37 taxonomically rural investigations
+819 218205 37 kingdom organizer stabilizes
+820 218301 37 stint shipyard seminaries
+821 218302 37 Sault civics Hunter
+822 218401 37 faithful inaccuracy sporty
+823 218402 37 Ganymede rules test
+824 218403 37 tidiness juveniles weasels
+825 218404 37 gainful comprised CERN
+826 218407 37 contrary investigations tempering
+827 218408 37 Tipperary stabilizes afore
+828 218409 37 tropics seminaries Galatean
+829 218410 37 theorizers Hunter techniques
+830 226001 37 renew sporty error
+831 226002 37 already test veranda
+832 226003 37 terminal weasels severely
+833 226004 37 Hegelian CERN Cassites
+834 226005 37 hypothesizer tempering forthcoming
+835 226006 37 warningly afore guides
+836 226007 37 journalizing Galatean vanish
+837 226008 37 nested techniques lied
+838 226203 37 Lars error sawtooth
+839 226204 37 saplings veranda fated
+840 226205 37 foothill severely gradually
+841 226206 37 labeled Cassites widens
+842 226207 37 imperiously forthcoming preclude
+843 226208 37 reporters guides Jobrel
+844 226209 37 furnishings vanish hooker
+845 226210 37 precipitable lied rainstorm
+846 226211 37 discounts sawtooth disconnects
+847 228001 37 excises fated cruelty
+848 228004 37 Stalin gradually exponentials
+849 228005 37 despot widens affective
+850 228006 37 ripeness preclude arteries
+851 228007 37 Arabia Jobrel Crosby
+852 228008 37 unruly hooker acquaint
+853 228009 37 mournfulness rainstorm evenhandedly
+854 228101 37 boom disconnects percentage
+855 228108 37 slaughter cruelty disobedience
+856 228109 37 Sabine exponentials humility
+857 228110 37 handy affective gleaning
+858 228111 37 rural arteries petted
+859 228112 37 organizer Crosby bloater
+860 228113 37 shipyard acquaint minion
+861 228114 37 civics evenhandedly marginal
+862 228115 37 inaccuracy percentage apiary
+863 228116 37 rules disobedience measures
+864 228117 37 juveniles humility precaution
+865 228118 37 comprised gleaning repelled
+866 228119 37 investigations petted primary
+867 228120 37 stabilizes bloater coverings
+868 228121 37 seminaries minion Artemia
+869 228122 37 Hunter marginal navigate
+870 228201 37 sporty apiary spatial
+871 228206 37 test measures Gurkha
+872 228207 37 weasels precaution meanwhile
+873 228208 37 CERN repelled Melinda
+874 228209 37 tempering primary Butterfield
+875 228210 37 afore coverings Aldrich
+876 228211 37 Galatean Artemia previewing
+877 228212 37 techniques navigate glut
+878 228213 37 error spatial unaffected
+879 228214 37 veranda Gurkha inmate
+880 228301 37 severely meanwhile mineral
+881 228305 37 Cassites Melinda impending
+882 228306 37 forthcoming Butterfield meditation
+883 228307 37 guides Aldrich ideas
+884 228308 37 vanish previewing miniaturizes
+885 228309 37 lied glut lewdly
+886 228310 37 sawtooth unaffected title
+887 228311 37 fated inmate youthfulness
+888 228312 37 gradually mineral creak
+889 228313 37 widens impending Chippewa
+890 228314 37 preclude meditation clamored
+891 228401 65 Jobrel ideas freezes
+892 228402 65 hooker miniaturizes forgivably
+893 228403 65 rainstorm lewdly reduce
+894 228404 65 disconnects title McGovern
+895 228405 65 cruelty youthfulness Nazis
+896 228406 65 exponentials creak epistle
+897 228407 65 affective Chippewa socializes
+898 228408 65 arteries clamored conceptions
+899 228409 65 Crosby freezes Kevin
+900 228410 65 acquaint forgivably uncovering
+901 230301 37 evenhandedly reduce chews
+902 230302 37 percentage McGovern appendixes
+903 230303 37 disobedience Nazis raining
+904 018062 37 humility epistle infest
+905 230501 37 gleaning socializes compartment
+906 230502 37 petted conceptions minting
+907 230503 37 bloater Kevin ducks
+908 230504 37 minion uncovering roped
+909 230505 37 marginal chews waltz
+910 230506 37 apiary appendixes Lillian
+911 230507 37 measures raining repressions
+912 230508 37 precaution infest chillingly
+913 230509 37 repelled compartment noncritical
+914 230901 37 primary minting lithograph
+915 230902 37 coverings ducks spongers
+916 230903 37 Artemia roped parenthood
+917 230904 37 navigate waltz posed
+918 230905 37 spatial Lillian instruments
+919 230906 37 Gurkha repressions filial
+920 230907 37 meanwhile chillingly fixedly
+921 230908 37 Melinda noncritical relives
+922 230909 37 Butterfield lithograph Pandora
+923 230910 37 Aldrich spongers watering
+924 230911 37 previewing parenthood ungrateful
+925 230912 37 glut posed secures
+926 230913 37 unaffected instruments chastisers
+927 230914 37 inmate filial icon
+928 231304 37 mineral fixedly reuniting
+929 231305 37 impending relives imagining
+930 231306 37 meditation Pandora abiding
+931 231307 37 ideas watering omnisciently
+932 231308 37 miniaturizes ungrateful Britannic
+933 231309 37 lewdly secures scholastics
+934 231310 37 title chastisers mechanics
+935 231311 37 youthfulness icon humidly
+936 231312 37 creak reuniting masterpiece
+937 231313 37 Chippewa imagining however
+938 231314 37 clamored abiding Mendelian
+939 231315 37 freezes omnisciently jarred
+940 232102 37 forgivably Britannic scolds
+941 232103 37 reduce scholastics infatuate
+942 232104 37 McGovern mechanics willed
+943 232105 37 Nazis humidly joyfully
+944 232106 37 epistle masterpiece Microsoft
+945 232107 37 socializes however fibrosities
+946 232108 37 conceptions Mendelian Baltimorean
+947 232601 37 Kevin jarred equestrian
+948 232602 37 uncovering scolds Goodrich
+949 232603 37 chews infatuate apish
+950 232605 37 appendixes willed Adlerian
+5950 1232605 37 appendixes willed Adlerian
+5951 1232606 37 appendixes willed Adlerian
+5952 1232607 37 appendixes willed Adlerian
+5953 1232608 37 appendixes willed Adlerian
+5954 1232609 37 appendixes willed Adlerian
+951 232606 37 raining joyfully Tropez
+952 232607 37 infest Microsoft nouns
+953 232608 37 compartment fibrosities distracting
+954 232609 37 minting Baltimorean mutton
+955 236104 37 ducks equestrian bridgeable
+956 236105 37 roped Goodrich stickers
+957 236106 37 waltz apish transcontinental
+958 236107 37 Lillian Adlerian amateurish
+959 236108 37 repressions Tropez Gandhian
+960 236109 37 chillingly nouns stratified
+961 236110 37 noncritical distracting chamberlains
+962 236111 37 lithograph mutton creditably
+963 236112 37 spongers bridgeable philosophic
+964 236113 37 parenthood stickers ores
+965 238005 37 posed transcontinental Carleton
+966 238006 37 instruments amateurish tape
+967 238007 37 filial Gandhian afloat
+968 238008 37 fixedly stratified goodness
+969 238009 37 relives chamberlains welcoming
+970 238010 37 Pandora creditably Pinsky
+971 238011 37 watering philosophic halting
+972 238012 37 ungrateful ores bibliography
+973 238013 37 secures Carleton decoding
+974 240401 41 chastisers tape variance
+975 240402 41 icon afloat allowed
+976 240901 41 reuniting goodness dire
+977 240902 41 imagining welcoming dub
+978 241801 41 abiding Pinsky poisoning
+979 242101 41 omnisciently halting Iraqis
+980 242102 41 Britannic bibliography heaving
+981 242201 41 scholastics decoding population
+982 242202 41 mechanics variance bomb
+983 242501 41 humidly allowed Majorca
+984 242502 41 masterpiece dire Gershwins
+985 246201 41 however dub explorers
+986 246202 41 Mendelian poisoning libretto
+987 246203 41 jarred Iraqis occurred
+988 246204 41 scolds heaving Lagos
+989 246205 41 infatuate population rats
+990 246301 41 willed bomb bankruptcies
+991 246302 41 joyfully Majorca crying
+992 248001 41 Microsoft Gershwins unexpected
+993 248002 41 fibrosities explorers accessed
+994 248003 41 Baltimorean libretto colorful
+995 248004 41 equestrian occurred versatility
+996 248005 41 Goodrich Lagos cosy
+997 248006 41 apish rats Darius
+998 248007 41 Adlerian bankruptcies mastering
+999 248008 41 Tropez crying Asiaticizations
+1000 248009 41 nouns unexpected offerers
+1001 248010 41 distracting accessed uncles
+1002 248011 41 mutton colorful sleepwalk
+1003 248012 41 bridgeable versatility Ernestine
+1004 248013 41 stickers cosy checksumming
+1005 248014 41 transcontinental Darius stopped
+1006 248015 41 amateurish mastering sicker
+1007 248016 41 Gandhian Asiaticizations Italianization
+1008 248017 41 stratified offerers alphabetic
+1009 248018 41 chamberlains uncles pharmaceutic
+1010 248019 41 creditably sleepwalk creator
+1011 248020 41 philosophic Ernestine chess
+1012 248021 41 ores checksumming charcoal
+1013 248101 41 Carleton stopped Epiphany
+1014 248102 41 tape sicker bulldozes
+1015 248201 41 afloat Italianization Pygmalion
+1016 248202 41 goodness alphabetic caressing
+1017 248203 41 welcoming pharmaceutic Palestine
+1018 248204 41 Pinsky creator regimented
+1019 248205 41 halting chess scars
+1020 248206 41 bibliography charcoal realest
+1021 248207 41 decoding Epiphany diffusing
+1022 248208 41 variance bulldozes clubroom
+1023 248209 41 allowed Pygmalion Blythe
+1024 248210 41 dire caressing ahead
+1025 248211 50 dub Palestine reviver
+1026 250501 34 poisoning regimented retransmitting
+1027 250502 34 Iraqis scars landslide
+1028 250503 34 heaving realest Eiffel
+1029 250504 34 population diffusing absentee
+1030 250505 34 bomb clubroom aye
+1031 250601 34 Majorca Blythe forked
+1032 250602 34 Gershwins ahead Peruvianizes
+1033 250603 34 explorers reviver clerked
+1034 250604 34 libretto retransmitting tutor
+1035 250605 34 occurred landslide boulevard
+1036 251001 34 Lagos Eiffel shuttered
+1037 251002 34 rats absentee quotes
+1038 251003 34 bankruptcies aye Caltech
+1039 251004 34 crying forked Mossberg
+1040 251005 34 unexpected Peruvianizes kept
+1041 251301 34 accessed clerked roundly
+1042 251302 34 colorful tutor features
+1043 251303 34 versatility boulevard imaginable
+1044 251304 34 cosy shuttered controller
+1045 251305 34 Darius quotes racial
+1046 251401 34 mastering Caltech uprisings
+1047 251402 34 Asiaticizations Mossberg narrowed
+1048 251403 34 offerers kept cannot
+1049 251404 34 uncles roundly vest
+1050 251405 34 sleepwalk features famine
+1051 251406 34 Ernestine imaginable sugars
+1052 251801 34 checksumming controller exterminated
+1053 251802 34 stopped racial belays
+1054 252101 34 sicker uprisings Hodges
+1055 252102 34 Italianization narrowed translatable
+1056 252301 34 alphabetic cannot duality
+1057 252302 34 pharmaceutic vest recording
+1058 252303 34 creator famine rouses
+1059 252304 34 chess sugars poison
+1060 252305 34 charcoal exterminated attitude
+1061 252306 34 Epiphany belays dusted
+1062 252307 34 bulldozes Hodges encompasses
+1063 252308 34 Pygmalion translatable presentation
+1064 252309 34 caressing duality Kantian
+1065 256001 34 Palestine recording imprecision
+1066 256002 34 regimented rouses saving
+1067 256003 34 scars poison maternal
+1068 256004 34 realest attitude hewed
+1069 256005 34 diffusing dusted kerosene
+1070 258001 34 clubroom encompasses Cubans
+1071 258002 34 Blythe presentation photographers
+1072 258003 34 ahead Kantian nymph
+1073 258004 34 reviver imprecision bedlam
+1074 258005 34 retransmitting saving north
+1075 258006 34 landslide maternal Schoenberg
+1076 258007 34 Eiffel hewed botany
+1077 258008 34 absentee kerosene curs
+1078 258009 34 aye Cubans solidification
+1079 258010 34 forked photographers inheritresses
+1080 258011 34 Peruvianizes nymph stiller
+1081 258101 68 clerked bedlam t1
+1082 258102 68 tutor north suite
+1083 258103 34 boulevard Schoenberg ransomer
+1084 258104 68 shuttered botany Willy
+1085 258105 68 quotes curs Rena
+1086 258106 68 Caltech solidification Seattle
+1087 258107 68 Mossberg inheritresses relaxes
+1088 258108 68 kept stiller exclaim
+1089 258109 68 roundly t1 implicated
+1090 258110 68 features suite distinguish
+1091 258111 68 imaginable ransomer assayed
+1092 258112 68 controller Willy homeowner
+1093 258113 68 racial Rena and
+1094 258201 34 uprisings Seattle stealth
+1095 258202 34 narrowed relaxes coinciding
+1096 258203 34 cannot exclaim founder
+1097 258204 34 vest implicated environing
+1098 258205 34 famine distinguish jewelry
+1099 258301 34 sugars assayed lemons
+1100 258401 34 exterminated homeowner brokenness
+1101 258402 34 belays and bedpost
+1102 258403 34 Hodges stealth assurers
+1103 258404 34 translatable coinciding annoyers
+1104 258405 34 duality founder affixed
+1105 258406 34 recording environing warbling
+1106 258407 34 rouses jewelry seriously
+1107 228123 37 poison lemons boasted
+1108 250606 34 attitude brokenness Chantilly
+1109 208405 37 dusted bedpost Iranizes
+1110 212101 37 encompasses assurers violinist
+1111 218206 37 presentation annoyers extramarital
+1112 150401 37 Kantian affixed spates
+1113 248212 41 imprecision warbling cloakroom
+1114 128026 00 saving seriously gazer
+1115 128024 00 maternal boasted hand
+1116 128027 00 hewed Chantilly tucked
+1117 128025 00 kerosene Iranizes gems
+1118 128109 00 Cubans violinist clinker
+1119 128705 00 photographers extramarital refiner
+1120 126303 00 nymph spates callus
+1121 128308 00 bedlam cloakroom leopards
+1122 128204 00 north gazer comfortingly
+1123 128205 00 Schoenberg hand generically
+1124 128206 00 botany tucked getters
+1125 128207 00 curs gems sexually
+1126 118205 00 solidification clinker spear
+1127 116801 00 inheritresses refiner serums
+1128 116803 00 stiller callus Italianization
+1129 116804 00 t1 leopards attendants
+1130 116802 00 suite comfortingly spies
+1131 128605 00 ransomer generically Anthony
+1132 118308 00 Willy getters planar
+1133 113702 00 Rena sexually cupped
+1134 113703 00 Seattle spear cleanser
+1135 112103 00 relaxes serums commuters
+1136 118009 00 exclaim Italianization honeysuckle
+5136 1118009 00 exclaim Italianization honeysuckle
+1137 138011 00 implicated attendants orphanage
+1138 138010 00 distinguish spies skies
+1139 138012 00 assayed Anthony crushers
+1140 068304 00 homeowner planar Puritan
+1141 078009 00 and cupped squeezer
+1142 108013 00 stealth cleanser bruises
+1143 084004 00 coinciding commuters bonfire
+1144 083402 00 founder honeysuckle Colombo
+1145 084003 00 environing orphanage nondecreasing
+1146 088504 00 jewelry skies innocents
+1147 088005 00 lemons crushers masked
+1148 088007 00 brokenness Puritan file
+1149 088006 00 bedpost squeezer brush
+1150 148025 00 assurers bruises mutilate
+1151 148024 00 annoyers bonfire mommy
+1152 138305 00 affixed Colombo bulkheads
+1153 138306 00 warbling nondecreasing undeclared
+1154 152701 00 seriously innocents displacements
+1155 148505 00 boasted masked nieces
+1156 158003 00 Chantilly file coeducation
+1157 156201 00 Iranizes brush brassy
+1158 156202 00 violinist mutilate authenticator
+1159 158307 00 extramarital mommy Washoe
+1160 158402 00 spates bulkheads penny
+1161 158401 00 cloakroom undeclared Flagler
+1162 068013 00 gazer displacements stoned
+1163 068012 00 hand nieces cranes
+1164 068203 00 tucked coeducation masterful
+1165 088205 00 gems brassy biracial
+1166 068704 00 clinker authenticator steamships
+1167 068604 00 refiner Washoe windmills
+1168 158502 00 callus penny exploit
+1169 123103 00 leopards Flagler riverfront
+1170 148026 00 comfortingly stoned sisterly
+1171 123302 00 generically cranes sharpshoot
+1172 076503 00 getters masterful mittens
+1173 126304 00 sexually biracial interdependency
+1174 068306 00 spear steamships policy
+1175 143504 00 serums windmills unleashing
+1176 160201 00 Italianization exploit pretenders
+1177 148028 00 attendants riverfront overstatements
+1178 148027 00 spies sisterly birthed
+1179 143505 00 Anthony sharpshoot opportunism
+1180 108014 00 planar mittens showroom
+1181 076104 00 cupped interdependency compromisingly
+1182 078106 00 cleanser policy Medicare
+1183 126102 00 commuters unleashing corresponds
+1184 128029 00 honeysuckle pretenders hardware
+1185 128028 00 orphanage overstatements implant
+1186 018410 00 skies birthed Alicia
+1187 128110 00 crushers opportunism requesting
+1188 148506 00 Puritan showroom produced
+1189 123303 00 squeezer compromisingly criticizes
+1190 123304 00 bruises Medicare backer
+1191 068504 00 bonfire corresponds positively
+1192 068305 00 Colombo hardware colicky
+1193 000000 00 nondecreasing implant thrillingly
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+1 000001 00 Omaha teethe neat
+2 011401 37 breaking dreaded Steinberg
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+2 011401 37 breaking dreaded Steinberg
+3 011402 37 Romans scholastics jarring
+4 011403 37 intercepted audiology tinily
+99999 011403 37 the delayed insert
drop table t1, t2, t4;
+create table t1 (i int) engine=archive;
+insert into t1 values (1);
+repair table t1 use_frm;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+select * from t1;
+i
+1
+drop table t1;
+create table t1(a longblob) engine=archive;
+insert into t1 set a='';
+insert into t1 set a='a';
+check table t1 extended;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
diff --git a/mysql-test/r/archive_gis.result b/mysql-test/r/archive_gis.result
new file mode 100644
index 00000000000..3137d43ec3a
--- /dev/null
+++ b/mysql-test/r/archive_gis.result
@@ -0,0 +1,544 @@
+SET storage_engine=archive;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE gis_point (fid INTEGER, g POINT);
+CREATE TABLE gis_line (fid INTEGER, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER, g GEOMETRY);
+SHOW CREATE TABLE gis_point;
+Table Create Table
+gis_point CREATE TABLE `gis_point` (
+ `fid` int(11) default NULL,
+ `g` point default NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+SHOW FIELDS FROM gis_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g point YES NULL
+SHOW FIELDS FROM gis_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g linestring YES NULL
+SHOW FIELDS FROM gis_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g polygon YES NULL
+SHOW FIELDS FROM gis_multi_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipoint YES NULL
+SHOW FIELDS FROM gis_multi_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multilinestring YES NULL
+SHOW FIELDS FROM gis_multi_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipolygon YES NULL
+SHOW FIELDS FROM gis_geometrycollection;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometrycollection YES NULL
+SHOW FIELDS FROM gis_geometry;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometry YES NULL
+INSERT INTO gis_point VALUES
+(101, PointFromText('POINT(10 10)')),
+(102, PointFromText('POINT(20 10)')),
+(103, PointFromText('POINT(20 20)')),
+(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
+INSERT INTO gis_line VALUES
+(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
+(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
+(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
+INSERT INTO gis_polygon VALUES
+(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
+(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
+(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
+INSERT INTO gis_multi_point VALUES
+(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
+(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
+(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
+INSERT INTO gis_multi_line VALUES
+(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
+(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
+(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
+INSERT INTO gis_multi_polygon VALUES
+(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
+INSERT INTO gis_geometrycollection VALUES
+(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
+(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+SELECT fid, AsText(g) FROM gis_point ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+SELECT fid, AsText(g) FROM gis_line ORDER by fid;
+fid AsText(g)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
+fid AsText(g)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
+fid AsText(g)
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
+fid AsText(g)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
+fid AsText(g)
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
+fid AsText(g)
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
+fid Dimension(g)
+101 0
+102 0
+103 0
+104 0
+105 1
+106 1
+107 1
+108 2
+109 2
+110 2
+111 0
+112 0
+113 0
+114 1
+115 1
+116 1
+117 2
+118 2
+119 2
+120 1
+121 1
+SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
+fid GeometryType(g)
+101 POINT
+102 POINT
+103 POINT
+104 POINT
+105 LINESTRING
+106 LINESTRING
+107 LINESTRING
+108 POLYGON
+109 POLYGON
+110 POLYGON
+111 MULTIPOINT
+112 MULTIPOINT
+113 MULTIPOINT
+114 MULTILINESTRING
+115 MULTILINESTRING
+116 MULTILINESTRING
+117 MULTIPOLYGON
+118 MULTIPOLYGON
+119 MULTIPOLYGON
+120 GEOMETRYCOLLECTION
+121 GEOMETRYCOLLECTION
+SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
+fid IsEmpty(g)
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
+fid AsText(Envelope(g))
+101 POLYGON((10 10,10 10,10 10,10 10,10 10))
+102 POLYGON((20 10,20 10,20 10,20 10,20 10))
+103 POLYGON((20 20,20 20,20 20,20 20,20 20))
+104 POLYGON((10 20,10 20,10 20,10 20,10 20))
+105 POLYGON((0 0,10 0,10 10,0 10,0 0))
+106 POLYGON((10 10,20 10,20 20,10 20,10 10))
+107 POLYGON((10 10,40 10,40 10,10 10,10 10))
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0))
+110 POLYGON((0 0,30 0,30 30,0 30,0 0))
+111 POLYGON((0 0,20 0,20 20,0 20,0 0))
+112 POLYGON((1 1,21 1,21 21,1 21,1 1))
+113 POLYGON((3 6,4 6,4 10,3 10,3 6))
+114 POLYGON((10 0,16 0,16 48,10 48,10 0))
+115 POLYGON((10 0,10 0,10 48,10 48,10 0))
+116 POLYGON((1 2,21 2,21 8,1 8,1 2))
+117 POLYGON((28 0,84 0,84 42,28 42,28 0))
+118 POLYGON((28 0,84 0,84 42,28 42,28 0))
+119 POLYGON((0 0,3 0,3 3,0 3,0 0))
+120 POLYGON((0 0,10 0,10 10,0 10,0 0))
+121 POLYGON((3 6,44 6,44 9,3 9,3 6))
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
+Warnings:
+Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
+SELECT fid, X(g) FROM gis_point ORDER by fid;
+fid X(g)
+101 10
+102 20
+103 20
+104 10
+SELECT fid, Y(g) FROM gis_point ORDER by fid;
+fid Y(g)
+101 10
+102 10
+103 20
+104 20
+explain extended select X(g),Y(g) FROM gis_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
+Warnings:
+Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
+SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(StartPoint(g))
+105 POINT(0 0)
+106 POINT(10 10)
+107 POINT(10 10)
+SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(EndPoint(g))
+105 POINT(10 0)
+106 POINT(10 10)
+107 POINT(40 10)
+SELECT fid, GLength(g) FROM gis_line ORDER by fid;
+fid GLength(g)
+105 24.142135623731
+106 40
+107 30
+SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
+fid NumPoints(g)
+105 3
+106 5
+107 2
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
+fid AsText(PointN(g, 2))
+105 POINT(0 10)
+106 POINT(20 10)
+107 POINT(40 10)
+SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
+fid IsClosed(g)
+105 0
+106 1
+107 0
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
+fid AsText(Centroid(g))
+108 POINT(15 15)
+109 POINT(25.416666666667 25.416666666667)
+110 POINT(20 10)
+SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
+fid Area(g)
+108 100
+109 2400
+110 450
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
+fid AsText(ExteriorRing(g))
+108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
+110 LINESTRING(0 0,30 0,30 30,0 0)
+SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
+fid NumInteriorRings(g)
+108 0
+109 1
+110 0
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
+fid AsText(InteriorRingN(g, 1))
+108 NULL
+109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+110 NULL
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
+SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
+fid IsClosed(g)
+114 0
+115 0
+116 0
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
+fid AsText(Centroid(g))
+117 POINT(55.588527753042 17.426536064114)
+118 POINT(55.588527753042 17.426536064114)
+119 POINT(2 2)
+SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
+fid Area(g)
+117 1684.5
+118 1684.5
+119 4.5
+SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
+fid NumGeometries(g)
+111 4
+112 4
+113 2
+SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
+fid NumGeometries(g)
+114 2
+115 1
+116 2
+SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
+fid NumGeometries(g)
+117 2
+118 2
+119 1
+SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
+fid NumGeometries(g)
+120 2
+121 2
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
+fid AsText(GeometryN(g, 2))
+111 POINT(10 10)
+112 POINT(11 11)
+113 POINT(4 10)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
+fid AsText(GeometryN(g, 2))
+114 LINESTRING(16 0,16 23,16 48)
+115 NULL
+116 LINESTRING(2 5,5 8,21 7)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
+fid AsText(GeometryN(g, 2))
+117 POLYGON((59 18,67 18,67 13,59 13,59 18))
+118 POLYGON((59 18,67 18,67 13,59 13,59 18))
+119 NULL
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 2))
+120 LINESTRING(0 0,10 10)
+121 LINESTRING(3 6,7 9)
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 1))
+120 POINT(0 0)
+121 POINT(44 6)
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
+SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+first second w c o e d t i r
+120 120 1 1 0 1 0 0 1 0
+120 121 0 0 1 0 0 0 1 0
+121 120 0 0 1 0 0 0 1 0
+121 121 1 1 0 1 0 0 1 0
+explain extended SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+1 SIMPLE g2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE t1 (
+gp point,
+ln linestring,
+pg polygon,
+mp multipoint,
+mln multilinestring,
+mpg multipolygon,
+gc geometrycollection,
+gm geometry
+);
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+ALTER TABLE t1 ADD fid INT;
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+fid int(11) YES NULL
+DROP TABLE t1;
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+insert into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert IGNORE into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+drop table t1;
+create table t1 (fl geometry not null);
+insert into t1 values (1);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (1.11);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values ("qwerty");
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (pointfromtext('point(1,1)'));
+ERROR 23000: Column 'fl' cannot be null
+drop table t1;
+End of 4.1 tests
+CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrcontains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrdisjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrequal
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrintersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbroverlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrtouches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrwithin
+big,center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+contains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+disjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+equals
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+intersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+overlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+touches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+within
+big,center
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+overlaps
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+overlaps
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+Overlaps(@horiz1, @vert1)
+0
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+Overlaps(@horiz1, @horiz2)
+1
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+Overlaps(@horiz1, @horiz3)
+0
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+Overlaps(@horiz1, @point1)
+0
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+Overlaps(@horiz1, @point2)
+0
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/auto_increment.result b/mysql-test/r/auto_increment.result
index c1b7b753bd4..90ba00e1019 100644
--- a/mysql-test/r/auto_increment.result
+++ b/mysql-test/r/auto_increment.result
@@ -143,7 +143,7 @@ explain extended select last_insert_id();
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache last_insert_id() AS `last_insert_id()`
+Note 1003 select last_insert_id() AS `last_insert_id()`
insert into t1 set i = 254;
ERROR 23000: Duplicate entry '254' for key 1
select last_insert_id();
@@ -163,7 +163,7 @@ last_insert_id()
255
insert into t1 set i = null;
Warnings:
-Warning 1264 Data truncated; out of range for column 'i' at row 1
+Warning 1264 Out of range value adjusted for column 'i' at row 1
select last_insert_id();
last_insert_id()
255
@@ -232,7 +232,7 @@ a b
delete from t1 where a=0;
update t1 set a=NULL where b=6;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 4
+Warning 1048 Column 'a' cannot be null
update t1 set a=300 where b=7;
SET SQL_MODE='';
insert into t1(a,b)values(NULL,8);
@@ -274,7 +274,7 @@ a b
delete from t1 where a=0;
update t1 set a=NULL where b=13;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 9
+Warning 1048 Column 'a' cannot be null
update t1 set a=500 where b=14;
select * from t1 order by b;
a b
@@ -401,3 +401,42 @@ a t1a
9 3
drop table t1, t2;
End of 4.1 tests
+CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`));
+insert into t1 (b) values (1);
+replace into t1 (b) values (2), (1), (3);
+select * from t1;
+a b
+3 1
+2 2
+4 3
+truncate table t1;
+insert into t1 (b) values (1);
+replace into t1 (b) values (2);
+replace into t1 (b) values (1);
+replace into t1 (b) values (3);
+select * from t1;
+a b
+3 1
+2 2
+4 3
+drop table t1;
+create table t1 (rowid int not null auto_increment, val int not null,primary
+key (rowid), unique(val));
+replace into t1 (val) values ('1'),('2');
+replace into t1 (val) values ('1'),('2');
+insert into t1 (val) values ('1'),('2');
+ERROR 23000: Duplicate entry '1' for key 2
+select * from t1;
+rowid val
+3 1
+4 2
+drop table t1;
+create table t1 (a int not null auto_increment primary key, val int);
+insert into t1 (val) values (1);
+update t1 set a=2 where a=1;
+insert into t1 (val) values (1);
+select * from t1;
+a val
+2 1
+3 1
+drop table t1;
diff --git a/mysql-test/r/backup.result b/mysql-test/r/backup.result
index e53c3c3eb55..14313ba490f 100644
--- a/mysql-test/r/backup.result
+++ b/mysql-test/r/backup.result
@@ -4,6 +4,7 @@ create table t4(n int);
backup table t4 to '../bogus';
Table Op Msg_type Msg_text
test.t4 backup error Failed copying .frm file (errno: X)
+test.t4 backup Error Can't create/write to file 'MYSQLTEST_VARDIR/bogus/t4.frm' (Errcode: X)
test.t4 backup status Operation failed
backup table t4 to '../tmp';
Table Op Msg_type Msg_text
@@ -11,6 +12,7 @@ test.t4 backup status OK
backup table t4 to '../tmp';
Table Op Msg_type Msg_text
test.t4 backup error Failed copying .frm file (errno: X)
+test.t4 backup Error Can't create/write to file 'MYSQLTEST_VARDIR/tmp/t4.frm' (Errcode: X)
test.t4 backup status Operation failed
drop table t4;
restore table t4 from '../tmp';
@@ -28,6 +30,8 @@ drop table t1;
restore table t1 from '../bogus';
Table Op Msg_type Msg_text
t1 restore error Failed copying .frm file
+Warnings:
+Error 29 File 'MYSQLTEST_VARDIR/bogus/t1.frm' not found (Errcode: X)
restore table t1 from '../tmp';
Table Op Msg_type Msg_text
test.t1 restore status OK
diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result
index 9fb42a0f6fd..3356d23053f 100644
--- a/mysql-test/r/bdb.result
+++ b/mysql-test/r/bdb.result
@@ -136,17 +136,17 @@ update ignore t1 set id=1023 where id=1010;
select * from t1 where parent_id=102 order by parent_id,id;
id parent_id level
1008 102 2
-1010 102 2
1015 102 2
+1010 102 2
explain select level from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const 1 Using where; Using index
+1 SIMPLE t1 ref level level 1 const X Using index
explain select level,id from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const 1 Using where; Using index
+1 SIMPLE t1 ref level level 1 const X Using index
explain select level,id,parent_id from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const 1 Using where
+1 SIMPLE t1 ref level level 1 const X
select level,id from t1 where level=1;
level id
1 1002
@@ -625,7 +625,7 @@ id parent_id level
1016 102 2
explain select level from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const 1 Using where; Using index
+1 SIMPLE t1 ref level level 1 const X Using index
select level,id from t1 where level=1;
level id
1 1004
@@ -737,6 +737,11 @@ a
1
2
3
+select a from t1 natural join t1 as t2 where b >= @a order by a;
+a
+1
+2
+3
update t1 set a=5 where a=1;
select a from t1;
a
@@ -1303,3 +1308,624 @@ count(*)
3
drop table t1, t2;
End of 4.1 tests
+create temporary table t1 (a int, primary key(a)) engine=bdb;
+select * from t1;
+a
+alter table t1 add b int;
+select * from t1;
+a b
+drop table t1;
+set storage_engine=bdb;
+drop table if exists t1,t2,t3;
+--- Testing varchar ---
+--- Testing varchar ---
+create table t1 (v varchar(10), c char(10), t text);
+insert into t1 values('+ ', '+ ', '+ ');
+set @a=repeat(' ',20);
+insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
+Warnings:
+Note 1265 Data truncated for column 'v' at row 1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+ *+*+ *
+*+ *+*+ *
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+create table t2 like t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+create table t3 select * from t1;
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+alter table t1 modify c varchar(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` text
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+alter table t1 modify v char(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` text
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+alter table t1 modify t varchar(10);
+Warnings:
+Note 1265 Data truncated for column 't' at row 2
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` varchar(10) default NULL
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+*+*+ *
+*+*+*+ *
+drop table t1,t2,t3;
+create table t1 (v varchar(10), c char(10), t text, key(v), key(c), key(t(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `v` (`v`),
+ KEY `c` (`c`),
+ KEY `t` (`t`(10))
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+select count(*) from t1;
+count(*)
+270
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where c='a';
+count(*)
+10
+select count(*) from t1 where t='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where c='a ';
+count(*)
+10
+select count(*) from t1 where t='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where c like 'a%';
+count(*)
+11
+select count(*) from t1 where t like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+explain select count(*) from t1 where c='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c c 11 const # Using where
+explain select count(*) from t1 where t='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref t t 13 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 13 NULL # Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+alter table t1 add unique(v);
+ERROR 23000: Duplicate entry '{ ' for key 1
+alter table t1 add key(v);
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
+qq
+*a*a*a*
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v,v_2 # 13 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(*) from t1 group by c limit 10;
+c count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(*) from t1 group by t limit 10;
+t count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 modify v varchar(300), drop key v, drop key v_2, add key v (v);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(300) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`)
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 303 NULL # Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 drop key v, add key v (v(30));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(300) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`(30))
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 33 NULL # Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 modify v varchar(600), drop key v, add key v (v);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(600) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`)
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+drop table t1;
+create table t1 (a char(10), unique (a));
+insert into t1 values ('a ');
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a' for key 1
+alter table t1 modify a varchar(10);
+insert into t1 values ('a '),('a '),('a '),('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+update t1 set a='a ' where a like 'a%';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='abc ' where a like 'a ';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='a ' where a like 'a %';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='a ' where a like 'a ';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+drop table t1;
+create table t1 (v varchar(10), c char(10), t text, key(v(5)), key(c(5)), key(t(5)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `v` (`v`(5)),
+ KEY `c` (`c`(5)),
+ KEY `t` (`t`(5))
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v char(10) character set utf8);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) character set utf8 default NULL
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(10), c char(10)) row_format=fixed;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
+insert into t1 values('a','a'),('a ','a ');
+select concat('*',v,'*',c,'*') from t1;
+concat('*',v,'*',c,'*')
+*a*a*
+*a *a*
+drop table t1;
+create table t1 (v varchar(65530), key(v(10)));
+insert into t1 values(repeat('a',65530));
+select length(v) from t1 where v=repeat('a',65530);
+length(v)
+65530
+drop table t1;
+create table t1(a int, b varchar(12), key ba(b, a));
+insert into t1 values (1, 'A'), (20, NULL);
+explain select * from t1 where a=20 and b is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref ba ba 20 const,const 1 Using where
+select * from t1 where a=20 and b is null;
+a b
+20 NULL
+drop table t1;
+create table t1 (v varchar(65530), key(v));
+Warnings:
+Warning 1071 Specified key was too long; max key length is MAX_KEY_LENGTH bytes
+drop table if exists t1;
+create table t1 (v varchar(65536));
+Warnings:
+Note 1246 Converting column 'v' from VARCHAR to TEXT
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` mediumtext
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(65530) character set utf8);
+Warnings:
+Note 1246 Converting column 'v' from VARCHAR to TEXT
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` mediumtext character set utf8
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+drop table t1;
+set storage_engine=MyISAM;
+create table t1 (a varchar(255) character set utf8,
+b varchar(255) character set utf8,
+c varchar(255) character set utf8,
+d varchar(255) character set utf8,
+key (a,b,c,d)) engine=bdb;
+drop table t1;
+create table t1 (a varchar(255) character set utf8,
+b varchar(255) character set utf8,
+c varchar(255) character set utf8,
+d varchar(255) character set utf8,
+e varchar(255) character set utf8,
+key (a,b,c,d,e)) engine=bdb;
+ERROR 42000: Specified key was too long; max key length is 3072 bytes
+set autocommit=0;
+create table t1 (a int) engine=bdb;
+commit;
+alter table t1 add primary key(a);
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/bdb_gis.result b/mysql-test/r/bdb_gis.result
new file mode 100644
index 00000000000..6651421b51c
--- /dev/null
+++ b/mysql-test/r/bdb_gis.result
@@ -0,0 +1,583 @@
+SET storage_engine=bdb;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE gis_point (fid INTEGER, g POINT);
+CREATE TABLE gis_line (fid INTEGER, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER, g GEOMETRY);
+SHOW CREATE TABLE gis_point;
+Table Create Table
+gis_point CREATE TABLE `gis_point` (
+ `fid` int(11) default NULL,
+ `g` point default NULL
+) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
+SHOW FIELDS FROM gis_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g point YES NULL
+SHOW FIELDS FROM gis_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g linestring YES NULL
+SHOW FIELDS FROM gis_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g polygon YES NULL
+SHOW FIELDS FROM gis_multi_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipoint YES NULL
+SHOW FIELDS FROM gis_multi_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multilinestring YES NULL
+SHOW FIELDS FROM gis_multi_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipolygon YES NULL
+SHOW FIELDS FROM gis_geometrycollection;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometrycollection YES NULL
+SHOW FIELDS FROM gis_geometry;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometry YES NULL
+INSERT INTO gis_point VALUES
+(101, PointFromText('POINT(10 10)')),
+(102, PointFromText('POINT(20 10)')),
+(103, PointFromText('POINT(20 20)')),
+(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
+INSERT INTO gis_line VALUES
+(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
+(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
+(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
+INSERT INTO gis_polygon VALUES
+(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
+(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
+(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
+INSERT INTO gis_multi_point VALUES
+(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
+(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
+(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
+INSERT INTO gis_multi_line VALUES
+(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
+(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
+(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
+INSERT INTO gis_multi_polygon VALUES
+(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
+INSERT INTO gis_geometrycollection VALUES
+(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
+(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+SELECT fid, AsText(g) FROM gis_point ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+SELECT fid, AsText(g) FROM gis_line ORDER by fid;
+fid AsText(g)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
+fid AsText(g)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
+fid AsText(g)
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
+fid AsText(g)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
+fid AsText(g)
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
+fid AsText(g)
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
+fid Dimension(g)
+101 0
+102 0
+103 0
+104 0
+105 1
+106 1
+107 1
+108 2
+109 2
+110 2
+111 0
+112 0
+113 0
+114 1
+115 1
+116 1
+117 2
+118 2
+119 2
+120 1
+121 1
+SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
+fid GeometryType(g)
+101 POINT
+102 POINT
+103 POINT
+104 POINT
+105 LINESTRING
+106 LINESTRING
+107 LINESTRING
+108 POLYGON
+109 POLYGON
+110 POLYGON
+111 MULTIPOINT
+112 MULTIPOINT
+113 MULTIPOINT
+114 MULTILINESTRING
+115 MULTILINESTRING
+116 MULTILINESTRING
+117 MULTIPOLYGON
+118 MULTIPOLYGON
+119 MULTIPOLYGON
+120 GEOMETRYCOLLECTION
+121 GEOMETRYCOLLECTION
+SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
+fid IsEmpty(g)
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
+fid AsText(Envelope(g))
+101 POLYGON((10 10,10 10,10 10,10 10,10 10))
+102 POLYGON((20 10,20 10,20 10,20 10,20 10))
+103 POLYGON((20 20,20 20,20 20,20 20,20 20))
+104 POLYGON((10 20,10 20,10 20,10 20,10 20))
+105 POLYGON((0 0,10 0,10 10,0 10,0 0))
+106 POLYGON((10 10,20 10,20 20,10 20,10 10))
+107 POLYGON((10 10,40 10,40 10,10 10,10 10))
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0))
+110 POLYGON((0 0,30 0,30 30,0 30,0 0))
+111 POLYGON((0 0,20 0,20 20,0 20,0 0))
+112 POLYGON((1 1,21 1,21 21,1 21,1 1))
+113 POLYGON((3 6,4 6,4 10,3 10,3 6))
+114 POLYGON((10 0,16 0,16 48,10 48,10 0))
+115 POLYGON((10 0,10 0,10 48,10 48,10 0))
+116 POLYGON((1 2,21 2,21 8,1 8,1 2))
+117 POLYGON((28 0,84 0,84 42,28 42,28 0))
+118 POLYGON((28 0,84 0,84 42,28 42,28 0))
+119 POLYGON((0 0,3 0,3 3,0 3,0 0))
+120 POLYGON((0 0,10 0,10 10,0 10,0 0))
+121 POLYGON((3 6,44 6,44 9,3 9,3 6))
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
+Warnings:
+Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
+SELECT fid, X(g) FROM gis_point ORDER by fid;
+fid X(g)
+101 10
+102 20
+103 20
+104 10
+SELECT fid, Y(g) FROM gis_point ORDER by fid;
+fid Y(g)
+101 10
+102 10
+103 20
+104 20
+explain extended select X(g),Y(g) FROM gis_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
+Warnings:
+Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
+SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(StartPoint(g))
+105 POINT(0 0)
+106 POINT(10 10)
+107 POINT(10 10)
+SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(EndPoint(g))
+105 POINT(10 0)
+106 POINT(10 10)
+107 POINT(40 10)
+SELECT fid, GLength(g) FROM gis_line ORDER by fid;
+fid GLength(g)
+105 24.142135623731
+106 40
+107 30
+SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
+fid NumPoints(g)
+105 3
+106 5
+107 2
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
+fid AsText(PointN(g, 2))
+105 POINT(0 10)
+106 POINT(20 10)
+107 POINT(40 10)
+SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
+fid IsClosed(g)
+105 0
+106 1
+107 0
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
+fid AsText(Centroid(g))
+108 POINT(15 15)
+109 POINT(25.416666666667 25.416666666667)
+110 POINT(20 10)
+SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
+fid Area(g)
+108 100
+109 2400
+110 450
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
+fid AsText(ExteriorRing(g))
+108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
+110 LINESTRING(0 0,30 0,30 30,0 0)
+SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
+fid NumInteriorRings(g)
+108 0
+109 1
+110 0
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
+fid AsText(InteriorRingN(g, 1))
+108 NULL
+109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+110 NULL
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
+SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
+fid IsClosed(g)
+114 0
+115 0
+116 0
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
+fid AsText(Centroid(g))
+117 POINT(55.588527753042 17.426536064114)
+118 POINT(55.588527753042 17.426536064114)
+119 POINT(2 2)
+SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
+fid Area(g)
+117 1684.5
+118 1684.5
+119 4.5
+SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
+fid NumGeometries(g)
+111 4
+112 4
+113 2
+SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
+fid NumGeometries(g)
+114 2
+115 1
+116 2
+SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
+fid NumGeometries(g)
+117 2
+118 2
+119 1
+SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
+fid NumGeometries(g)
+120 2
+121 2
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
+fid AsText(GeometryN(g, 2))
+111 POINT(10 10)
+112 POINT(11 11)
+113 POINT(4 10)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
+fid AsText(GeometryN(g, 2))
+114 LINESTRING(16 0,16 23,16 48)
+115 NULL
+116 LINESTRING(2 5,5 8,21 7)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
+fid AsText(GeometryN(g, 2))
+117 POLYGON((59 18,67 18,67 13,59 13,59 18))
+118 POLYGON((59 18,67 18,67 13,59 13,59 18))
+119 NULL
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 2))
+120 LINESTRING(0 0,10 10)
+121 LINESTRING(3 6,7 9)
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 1))
+120 POINT(0 0)
+121 POINT(44 6)
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
+SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+first second w c o e d t i r
+120 120 1 1 0 1 0 0 1 0
+120 121 0 0 1 0 0 0 1 0
+121 120 0 0 1 0 0 0 1 0
+121 121 1 1 0 1 0 0 1 0
+explain extended SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+1 SIMPLE g2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE t1 (
+gp point,
+ln linestring,
+pg polygon,
+mp multipoint,
+mln multilinestring,
+mpg multipolygon,
+gc geometrycollection,
+gm geometry
+);
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+ALTER TABLE t1 ADD fid INT;
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+fid int(11) YES NULL
+DROP TABLE t1;
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+insert into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert IGNORE into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+drop table t1;
+create table t1 (fl geometry not null);
+insert into t1 values (1);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (1.11);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values ("qwerty");
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (pointfromtext('point(1,1)'));
+ERROR 23000: Column 'fl' cannot be null
+drop table t1;
+End of 4.1 tests
+CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrcontains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrdisjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrequal
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrintersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbroverlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrtouches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrwithin
+big,center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+contains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+disjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+equals
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+intersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+overlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+touches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+within
+big,center
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+overlaps
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+overlaps
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+Overlaps(@horiz1, @vert1)
+0
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+Overlaps(@horiz1, @horiz2)
+1
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+Overlaps(@horiz1, @horiz3)
+0
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+Overlaps(@horiz1, @point1)
+0
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+Overlaps(@horiz1, @point2)
+0
+DROP TABLE t1;
+End of 5.0 tests
+CREATE TABLE t1 (p POINT);
+CREATE TABLE t2 (p POINT, INDEX(p));
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+1
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref p p 28 const 1 Using where
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+1
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+EXPLAIN
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL p NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+EXPLAIN
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+DROP TABLE t1, t2;
+End of 5.0 tests
diff --git a/mysql-test/r/bdb_notembedded.result b/mysql-test/r/bdb_notembedded.result
new file mode 100644
index 00000000000..14cb5fad915
--- /dev/null
+++ b/mysql-test/r/bdb_notembedded.result
@@ -0,0 +1,35 @@
+set autocommit=1;
+reset master;
+create table bug16206 (a int);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
+f n Query 1 n use `test`; create table bug16206 (a int)
+f n Query 1 n use `test`; insert into bug16206 values(1)
+f n Query 1 n use `test`; insert into bug16206 values(2)
+drop table bug16206;
+reset master;
+create table bug16206 (a int) engine= bdb;
+insert into bug16206 values(0);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+insert into bug16206 values(3);
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
+f n Query 1 n use `test`; create table bug16206 (a int) engine= bdb
+f n Query 1 n use `test`; insert into bug16206 values(0)
+f n Query 1 n use `test`; insert into bug16206 values(1)
+f n Query 1 n use `test`; BEGIN
+f n Query 1 n use `test`; insert into bug16206 values(2)
+f n Query 1 n use `test`; COMMIT
+f n Query 1 n use `test`; insert into bug16206 values(3)
+drop table bug16206;
+set autocommit=0;
+End of 5.0 tests
diff --git a/mysql-test/r/bench_count_distinct.result b/mysql-test/r/bench_count_distinct.result
index fcc0c0948b3..62312870f59 100644
--- a/mysql-test/r/bench_count_distinct.result
+++ b/mysql-test/r/bench_count_distinct.result
@@ -7,5 +7,5 @@ explain extended select count(distinct n) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL n 4 NULL 200 Using index
Warnings:
-Note 1003 select count(distinct test.t1.n) AS `count(distinct n)` from test.t1
+Note 1003 select count(distinct `test`.`t1`.`n`) AS `count(distinct n)` from `test`.`t1`
drop table t1;
diff --git a/mysql-test/r/bigint.result b/mysql-test/r/bigint.result
index e9a457c9dfa..064304b27aa 100644
--- a/mysql-test/r/bigint.result
+++ b/mysql-test/r/bigint.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1, t2;
select 0,256,00000000000000065536,2147483647,-2147483648,2147483648,+4294967296;
0 256 00000000000000065536 2147483647 -2147483648 2147483648 4294967296
0 256 65536 2147483647 -2147483648 2147483648 4294967296
@@ -7,7 +7,7 @@ select 9223372036854775807,-009223372036854775808;
9223372036854775807 -9223372036854775808
select +9999999999999999999,-9999999999999999999;
9999999999999999999 -9999999999999999999
-9999999999999999999 -10000000000000000000
+9999999999999999999 -9999999999999999999
select cast(9223372036854775808 as unsigned)+1;
cast(9223372036854775808 as unsigned)+1
9223372036854775809
@@ -16,13 +16,13 @@ select 9223372036854775808+1;
9223372036854775809
select -(0-3),round(-(0-3)), round(9999999999999999999);
-(0-3) round(-(0-3)) round(9999999999999999999)
-3 3 10000000000000000000
+3 3 9999999999999999999
select 1,11,101,1001,10001,100001,1000001,10000001,100000001,1000000001,10000000001,100000000001,1000000000001,10000000000001,100000000000001,1000000000000001,10000000000000001,100000000000000001,1000000000000000001,10000000000000000001;
1 11 101 1001 10001 100001 1000001 10000001 100000001 1000000001 10000000001 100000000001 1000000000001 10000000000001 100000000000001 1000000000000001 10000000000000001 100000000000000001 1000000000000000001 10000000000000000001
1 11 101 1001 10001 100001 1000001 10000001 100000001 1000000001 10000000001 100000000001 1000000000001 10000000000001 100000000000001 1000000000000001 10000000000000001 100000000000000001 1000000000000000001 10000000000000000001
select -1,-11,-101,-1001,-10001,-100001,-1000001,-10000001,-100000001,-1000000001,-10000000001,-100000000001,-1000000000001,-10000000000001,-100000000000001,-1000000000000001,-10000000000000001,-100000000000000001,-1000000000000000001,-10000000000000000001;
-1 -11 -101 -1001 -10001 -100001 -1000001 -10000001 -100000001 -1000000001 -10000000001 -100000000001 -1000000000001 -10000000000001 -100000000000001 -1000000000000001 -10000000000000001 -100000000000000001 -1000000000000000001 -10000000000000000001
--1 -11 -101 -1001 -10001 -100001 -1000001 -10000001 -100000001 -1000000001 -10000000001 -100000000001 -1000000000001 -10000000000001 -100000000000001 -1000000000000001 -10000000000000001 -100000000000000001 -1000000000000000001 -10000000000000000000
+-1 -11 -101 -1001 -10001 -100001 -1000001 -10000001 -100000001 -1000000001 -10000000001 -100000000001 -1000000000001 -10000000000001 -100000000000001 -1000000000000001 -10000000000000001 -100000000000000001 -1000000000000000001 -10000000000000000001
select conv(1,10,16),conv((1<<2)-1,10,16),conv((1<<10)-2,10,16),conv((1<<16)-3,10,16),conv((1<<25)-4,10,16),conv((1<<31)-5,10,16),conv((1<<36)-6,10,16),conv((1<<47)-7,10,16),conv((1<<48)-8,10,16),conv((1<<55)-9,10,16),conv((1<<56)-10,10,16),conv((1<<63)-11,10,16);
conv(1,10,16) conv((1<<2)-1,10,16) conv((1<<10)-2,10,16) conv((1<<16)-3,10,16) conv((1<<25)-4,10,16) conv((1<<31)-5,10,16) conv((1<<36)-6,10,16) conv((1<<47)-7,10,16) conv((1<<48)-8,10,16) conv((1<<55)-9,10,16) conv((1<<56)-10,10,16) conv((1<<63)-11,10,16)
1 3 3FE FFFD 1FFFFFC 7FFFFFFB FFFFFFFFA 7FFFFFFFFFF9 FFFFFFFFFFF8 7FFFFFFFFFFFF7 FFFFFFFFFFFFF6 7FFFFFFFFFFFFFF5
@@ -46,6 +46,14 @@ a
drop table t1;
create table t1 ( a int not null default 1, big bigint );
insert into t1 (big) values (-1),(12345678901234567),(9223372036854775807),(18446744073709551615);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'big' at row 4
+select * from t1;
+a big
+1 -1
+1 12345678901234567
+1 9223372036854775807
+1 9223372036854775807
select min(big),max(big),max(big)-1 from t1;
min(big) max(big) max(big)-1
-1 9223372036854775807 9223372036854775806
@@ -53,26 +61,51 @@ select min(big),max(big),max(big)-1 from t1 group by a;
min(big) max(big) max(big)-1
-1 9223372036854775807 9223372036854775806
alter table t1 modify big bigint unsigned not null;
+Warnings:
+Warning 1264 Out of range value adjusted for column 'big' at row 1
+select min(big),max(big),max(big)-1 from t1;
+min(big) max(big) max(big)-1
+0 9223372036854775807 9223372036854775806
+select min(big),max(big),max(big)-1 from t1 group by a;
+min(big) max(big) max(big)-1
+0 9223372036854775807 9223372036854775806
+insert into t1 (big) values (18446744073709551615);
+select * from t1;
+a big
+1 0
+1 12345678901234567
+1 9223372036854775807
+1 9223372036854775807
+1 18446744073709551615
select min(big),max(big),max(big)-1 from t1;
min(big) max(big) max(big)-1
-12345678901234567 18446744073709551615 18446744073709551614
+0 18446744073709551615 18446744073709551614
select min(big),max(big),max(big)-1 from t1 group by a;
min(big) max(big) max(big)-1
-12345678901234567 18446744073709551615 18446744073709551614
+0 18446744073709551615 18446744073709551614
alter table t1 add key (big);
select min(big),max(big),max(big)-1 from t1;
min(big) max(big) max(big)-1
-12345678901234567 18446744073709551615 18446744073709551614
+0 18446744073709551615 18446744073709551614
select min(big),max(big),max(big)-1 from t1 group by a;
min(big) max(big) max(big)-1
-12345678901234567 18446744073709551615 18446744073709551614
+0 18446744073709551615 18446744073709551614
alter table t1 modify big bigint not null;
+Warnings:
+Warning 1264 Out of range value adjusted for column 'big' at row 5
+select * from t1;
+a big
+1 0
+1 12345678901234567
+1 9223372036854775807
+1 9223372036854775807
+1 9223372036854775807
select min(big),max(big),max(big)-1 from t1;
min(big) max(big) max(big)-1
--1 9223372036854775807 9223372036854775806
+0 9223372036854775807 9223372036854775806
select min(big),max(big),max(big)-1 from t1 group by a;
min(big) max(big) max(big)-1
--1 9223372036854775807 9223372036854775806
+0 9223372036854775807 9223372036854775806
drop table t1;
create table t1 (id bigint auto_increment primary key, a int) auto_increment=9999999999;
insert into t1 values (null,1);
@@ -89,13 +122,15 @@ insert into t1 values (10000000000000000000.0);
insert into t1 values ('10000000000000000000');
select * from t1;
quantity
--8446744073709551616
+10000000000000000000
10000000000000000000
10000000000000000000
drop table t1;
SELECT '0x8000000000000001'+0;
'0x8000000000000001'+0
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: '0x8000000000000001'
create table t1 (
value64 bigint unsigned not null,
value32 integer not null,
@@ -135,3 +170,221 @@ t2.value64=t1.value64;
value64 value32 value64 value32
9223372036854775807 2 9223372036854775807 4
drop table t1, t2;
+create table t1 select 1 as 'a';
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(1) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 select 9223372036854775809 as 'a';
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bigint(19) unsigned NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select * from t1;
+a
+9223372036854775809
+drop table t1;
+DROP DATABASE IF EXISTS `scott`;
+Warnings:
+Note 1008 Can't drop database 'scott'; database doesn't exist
+create table t1 (a char(100), b varchar(100), c text, d blob);
+insert into t1 values(
+18446744073709551615,18446744073709551615,
+18446744073709551615, 18446744073709551615
+);
+insert into t1 values (-1 | 0,-1 | 0,-1 | 0 ,-1 | 0);
+select * from t1;
+a b c d
+18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
+18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
+drop table t1;
+create table t1 ( quantity decimal(2) unsigned);
+insert into t1 values (500), (-500), (~0), (-1);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'quantity' at row 1
+Warning 1264 Out of range value adjusted for column 'quantity' at row 2
+Warning 1264 Out of range value adjusted for column 'quantity' at row 3
+Warning 1264 Out of range value adjusted for column 'quantity' at row 4
+select * from t1;
+quantity
+99
+0
+99
+0
+drop table t1;
+CREATE TABLE t1 (
+`col1` INT(1) NULL,
+`col2` INT(2) NULL,
+`col3` INT(3) NULL,
+`col4` INT(4) NULL,
+`col5` INT(5) NULL,
+`col6` INT(6) NULL,
+`col7` INT(7) NULL,
+`col8` INT(8) NULL,
+`col9` INT(9) NULL,
+`col10` BIGINT(10) NULL,
+`col11` BIGINT(11) NULL,
+`col12` BIGINT(12) NULL,
+`col13` BIGINT(13) NULL,
+`col14` BIGINT(14) NULL,
+`col15` BIGINT(15) NULL,
+`col16` BIGINT(16) NULL,
+`col17` BIGINT(17) NULL,
+`col18` BIGINT(18) NULL,
+`col19` DECIMAL(19, 0) NULL,
+`col20` DECIMAL(20, 0) NULL,
+`col21` DECIMAL(21, 0) NULL,
+`col22` DECIMAL(22, 0) NULL,
+`col23` DECIMAL(23, 0) NULL,
+`col24` DECIMAL(24, 0) NULL,
+`col25` DECIMAL(25, 0) NULL,
+`col26` DECIMAL(26, 0) NULL,
+`col27` DECIMAL(27, 0) NULL,
+`col28` DECIMAL(28, 0) NULL,
+`col29` DECIMAL(29, 0) NULL,
+`col30` DECIMAL(30, 0) NULL,
+`col31` DECIMAL(31, 0) NULL,
+`col32` DECIMAL(32, 0) NULL,
+`col33` DECIMAL(33, 0) NULL,
+`col34` DECIMAL(34, 0) NULL,
+`col35` DECIMAL(35, 0) NULL,
+`col36` DECIMAL(36, 0) NULL,
+`col37` DECIMAL(37, 0) NULL,
+`col38` DECIMAL(38, 0) NULL,
+`fix1` DECIMAL(38, 1) NULL,
+`fix2` DECIMAL(38, 2) NULL,
+`fix3` DECIMAL(38, 3) NULL,
+`fix4` DECIMAL(38, 4) NULL,
+`fix5` DECIMAL(38, 5) NULL,
+`fix6` DECIMAL(38, 6) NULL,
+`fix7` DECIMAL(38, 7) NULL,
+`fix8` DECIMAL(38, 8) NULL,
+`fix9` DECIMAL(38, 9) NULL,
+`fix10` DECIMAL(38, 10) NULL,
+`fix11` DECIMAL(38, 11) NULL,
+`fix12` DECIMAL(38, 12) NULL,
+`fix13` DECIMAL(38, 13) NULL,
+`fix14` DECIMAL(38, 14) NULL,
+`fix15` DECIMAL(38, 15) NULL,
+`fix16` DECIMAL(38, 16) NULL,
+`fix17` DECIMAL(38, 17) NULL,
+`fix18` DECIMAL(38, 18) NULL,
+`fix19` DECIMAL(38, 19) NULL,
+`fix20` DECIMAL(38, 20) NULL,
+`fix21` DECIMAL(38, 21) NULL,
+`fix22` DECIMAL(38, 22) NULL,
+`fix23` DECIMAL(38, 23) NULL,
+`fix24` DECIMAL(38, 24) NULL,
+`fix25` DECIMAL(38, 25) NULL,
+`fix26` DECIMAL(38, 26) NULL,
+`fix27` DECIMAL(38, 27) NULL,
+`fix28` DECIMAL(38, 28) NULL,
+`fix29` DECIMAL(38, 29) NULL,
+`fix30` DECIMAL(38, 30) NULL
+);
+INSERT INTO t1(`col1`, `col2`, `col3`, `col4`, `col5`, `col6`, `col7`, `col8`, `col9`, `col10`, `col11`, `col12`, `col13`, `col14`, `col15`, `col16`, `col17`, `col18`, `col19`, `col20`, `col21`, `col22`, `col23`, `col24`, `col25`, `col26`, `col27`, `col28`, `col29`, `col30`, `col31`, `col32`, `col33`, `col34`, `col35`, `col36`, `col37`, `col38`, `fix1`, `fix2`, `fix3`, `fix4`, `fix5`, `fix6`, `fix7`, `fix8`, `fix9`, `fix10`, `fix11`, `fix12`, `fix13`, `fix14`, `fix15`, `fix16`, `fix17`, `fix18`, `fix19`, `fix20`, `fix21`, `fix22`, `fix23`, `fix24`, `fix25`, `fix26`, `fix27`, `fix28`, `fix29`, `fix30`)
+VALUES (9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999,
+9999999999, 99999999999, 999999999999, 9999999999999, 99999999999999,
+999999999999999, 9999999999999999, 99999999999999999, 999999999999999999,
+9999999999999999999, 99999999999999999999, 999999999999999999999,
+9999999999999999999999, 99999999999999999999999, 999999999999999999999999,
+9999999999999999999999999, 99999999999999999999999999,
+999999999999999999999999999, 9999999999999999999999999999,
+99999999999999999999999999999, 999999999999999999999999999999,
+9999999999999999999999999999999, 99999999999999999999999999999999,
+999999999999999999999999999999999, 9999999999999999999999999999999999,
+99999999999999999999999999999999999, 999999999999999999999999999999999999,
+9999999999999999999999999999999999999, 99999999999999999999999999999999999999,
+9999999999999999999999999999999999999.9,
+999999999999999999999999999999999999.99,
+99999999999999999999999999999999999.999,
+9999999999999999999999999999999999.9999,
+999999999999999999999999999999999.99999,
+99999999999999999999999999999999.999999,
+9999999999999999999999999999999.9999999,
+999999999999999999999999999999.99999999,
+99999999999999999999999999999.999999999,
+9999999999999999999999999999.9999999999,
+999999999999999999999999999.99999999999,
+99999999999999999999999999.999999999999,
+9999999999999999999999999.9999999999999,
+999999999999999999999999.99999999999999,
+99999999999999999999999.999999999999999,
+9999999999999999999999.9999999999999999,
+999999999999999999999.99999999999999999,
+99999999999999999999.999999999999999999,
+9999999999999999999.9999999999999999999,
+999999999999999999.99999999999999999999,
+99999999999999999.999999999999999999999,
+9999999999999999.9999999999999999999999,
+999999999999999.99999999999999999999999,
+99999999999999.999999999999999999999999,
+9999999999999.9999999999999999999999999,
+999999999999.99999999999999999999999999,
+99999999999.999999999999999999999999999,
+9999999999.9999999999999999999999999999,
+999999999.99999999999999999999999999999,
+99999999.999999999999999999999999999999);
+SELECT * FROM t1;
+col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 fix1 fix2 fix3 fix4 fix5 fix6 fix7 fix8 fix9 fix10 fix11 fix12 fix13 fix14 fix15 fix16 fix17 fix18 fix19 fix20 fix21 fix22 fix23 fix24 fix25 fix26 fix27 fix28 fix29 fix30
+9 99 999 9999 99999 999999 9999999 99999999 999999999 9999999999 99999999999 999999999999 9999999999999 99999999999999 999999999999999 9999999999999999 99999999999999999 999999999999999999 9999999999999999999 99999999999999999999 999999999999999999999 9999999999999999999999 99999999999999999999999 999999999999999999999999 9999999999999999999999999 99999999999999999999999999 999999999999999999999999999 9999999999999999999999999999 99999999999999999999999999999 999999999999999999999999999999 9999999999999999999999999999999 99999999999999999999999999999999 999999999999999999999999999999999 9999999999999999999999999999999999 99999999999999999999999999999999999 999999999999999999999999999999999999 9999999999999999999999999999999999999 99999999999999999999999999999999999999 9999999999999999999999999999999999999.9 999999999999999999999999999999999999.99 99999999999999999999999999999999999.999 9999999999999999999999999999999999.9999 999999999999999999999999999999999.99999 99999999999999999999999999999999.999999 9999999999999999999999999999999.9999999 999999999999999999999999999999.99999999 99999999999999999999999999999.999999999 9999999999999999999999999999.9999999999 999999999999999999999999999.99999999999 99999999999999999999999999.999999999999 9999999999999999999999999.9999999999999 999999999999999999999999.99999999999999 99999999999999999999999.999999999999999 9999999999999999999999.9999999999999999 999999999999999999999.99999999999999999 99999999999999999999.999999999999999999 9999999999999999999.9999999999999999999 999999999999999999.99999999999999999999 99999999999999999.999999999999999999999 9999999999999999.9999999999999999999999 999999999999999.99999999999999999999999 99999999999999.999999999999999999999999 9999999999999.9999999999999999999999999 999999999999.99999999999999999999999999 99999999999.999999999999999999999999999 9999999999.9999999999999999999999999999 999999999.99999999999999999999999999999 99999999.999999999999999999999999999999
+DROP TABLE t1;
+create table t1 (bigint_col bigint unsigned);
+insert into t1 values (17666000000000000000);
+select * from t1 where bigint_col=17666000000000000000;
+bigint_col
+17666000000000000000
+select * from t1 where bigint_col='17666000000000000000';
+bigint_col
+17666000000000000000
+drop table t1;
+
+bug 19955 -- mod is signed with bigint
+select cast(10000002383263201056 as unsigned) mod 50 as result;
+result
+6
+create table t1 (c1 bigint unsigned);
+insert into t1 values (10000002383263201056);
+select c1 mod 50 as result from t1;
+result
+6
+drop table t1;
+select cast(19999999999999999999 as signed);
+cast(19999999999999999999 as signed)
+9223372036854775807
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select cast(-19999999999999999999 as signed);
+cast(-19999999999999999999 as signed)
+-9223372036854775808
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select -9223372036854775808;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def -9223372036854775808 8 20 20 N 32897 0 63
+-9223372036854775808
+-9223372036854775808
+select -(9223372036854775808);
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def -(9223372036854775808) 8 20 20 N 32897 0 63
+-(9223372036854775808)
+-9223372036854775808
+select -((9223372036854775808));
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def -((9223372036854775808)) 8 20 20 N 32897 0 63
+-((9223372036854775808))
+-9223372036854775808
+select -(-(9223372036854775808));
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def -(-(9223372036854775808)) 246 21 19 N 129 0 63
+-(-(9223372036854775808))
+9223372036854775808
+select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
+--9223372036854775808 ---9223372036854775808 ----9223372036854775808
+9223372036854775808 -9223372036854775808 9223372036854775808
+select -(-9223372036854775808), -(-(-9223372036854775808));
+-(-9223372036854775808) -(-(-9223372036854775808))
+9223372036854775808 -9223372036854775808
diff --git a/mysql-test/r/binary.result b/mysql-test/r/binary.result
index 5b5f673b071..c8b3768b7ce 100644
--- a/mysql-test/r/binary.result
+++ b/mysql-test/r/binary.result
@@ -85,7 +85,7 @@ NULL
select b from t1 having binary b like '';
b
drop table t1;
-create table t1 (a char(15) binary, b binary(15));
+create table t1 (a char(3) binary, b binary(3));
insert into t1 values ('aaa','bbb'),('AAA','BBB');
select upper(a),upper(b) from t1;
upper(a) upper(b)
@@ -141,3 +141,60 @@ t1 CREATE TABLE `t1` (
`a` binary(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
+create table t1 (col1 binary(4));
+insert into t1 values ('a'),('a ');
+select hex(col1) from t1;
+hex(col1)
+61000000
+61200000
+alter table t1 modify col1 binary(10);
+select hex(col1) from t1;
+hex(col1)
+61000000000000000000
+61200000000000000000
+insert into t1 values ('b'),('b ');
+select hex(col1) from t1;
+hex(col1)
+61000000000000000000
+61200000000000000000
+62000000000000000000
+62200000000000000000
+drop table t1;
+CREATE TABLE t1 (
+a binary(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+index idx(a)
+);
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029087575');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029080707');
+SELECT hex(a) FROM t1 order by a;
+hex(a)
+1F9480179366F2BF567E1C4B964C1EF029080707
+1F9480179366F2BF567E1C4B964C1EF029082020
+1F9480179366F2BF567E1C4B964C1EF029087575
+EXPLAIN SELECT hex(a) FROM t1 order by a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx 20 NULL 3 Using index
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+hex(a)
+1F9480179366F2BF567E1C4B964C1EF029082020
+EXPLAIN
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx idx 20 const 1 Using where; Using index
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF02908');
+hex(a)
+DROP TABLE t1;
+CREATE TABLE t1 (
+id numeric(20) NOT NULL,
+lang varchar(8) NOT NULL,
+msg varchar(32) NOT NULL,
+PRIMARY KEY (id,lang)
+);
+INSERT INTO t1 VALUES (33, 'en', 'zzzzzzz');
+INSERT INTO t1 VALUES (31, 'en', 'xxxxxxx');
+INSERT INTO t1 VALUES (32, 'en', 'yyyyyyy');
+SELECT * FROM t1 WHERE id=32;
+id lang msg
+32 en yyyyyyy
+DROP TABLE t1;
diff --git a/mysql-test/r/binlog.result b/mysql-test/r/binlog.result
new file mode 100644
index 00000000000..0a199c87545
--- /dev/null
+++ b/mysql-test/r/binlog.result
@@ -0,0 +1,570 @@
+drop table if exists t1, t2;
+reset master;
+create table t1 (a int) engine=innodb;
+create table t2 (a int) engine=innodb;
+begin;
+insert t1 values (5);
+commit;
+begin;
+insert t2 values (5);
+commit;
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=innodb
+master-bin.000001 # Query 1 # use `test`; create table t2 (a int) engine=innodb
+master-bin.000001 # Query 1 # use `test`; BEGIN
+master-bin.000001 # Query 1 # use `test`; insert t1 values (5)
+master-bin.000001 # Xid 1 # COMMIT /* XID */
+master-bin.000001 # Query 1 # use `test`; BEGIN
+master-bin.000001 # Query 1 # use `test`; insert t2 values (5)
+master-bin.000001 # Xid 1 # COMMIT /* XID */
+drop table t1,t2;
+reset master;
+create table t1 (n int) engine=innodb;
+begin;
+commit;
+drop table t1;
+show binlog events in 'master-bin.000001' from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # use `test`; create table t1 (n int) engine=innodb
+master-bin.000001 # Query 1 # use `test`; BEGIN
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(100 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(99 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(98 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(97 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(96 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(95 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(94 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(93 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(92 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(91 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(90 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(89 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(88 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(87 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(86 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(85 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(84 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(83 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(82 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(81 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(80 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(79 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(78 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(77 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(76 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(75 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(74 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(73 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(72 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(71 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(70 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(69 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(68 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(67 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(66 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(65 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(64 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(63 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(62 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(61 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(60 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(59 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(58 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(57 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(56 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(55 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(54 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(53 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(52 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(51 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(50 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(49 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(48 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(47 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(46 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(45 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(44 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(43 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(42 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(41 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(40 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(39 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(38 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(37 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(36 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(35 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(34 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(33 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(32 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(31 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(30 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(29 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(28 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(27 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(26 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(25 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(24 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(23 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(22 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(21 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(20 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(19 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(18 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(17 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(16 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(15 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(14 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(13 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(12 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(11 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(10 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(9 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(8 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(7 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(6 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(5 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(4 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(3 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(2 + 4)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values(1 + 4)
+master-bin.000001 # Xid 1 # COMMIT /* XID */
+master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
+show binlog events in 'master-bin.000002' from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Query 1 # use `test`; drop table t1
+set @ac = @@autocommit;
+set autocommit= 0;
+reset master;
+create table t1(n int) engine=innodb;
+begin;
+insert into t1 values (1);
+insert into t1 values (2);
+insert into t1 values (3);
+commit;
+drop table t1;
+show binlog events from 0;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
+master-bin.000001 98 Query 1 197 use `test`; create table t1(n int) engine=innodb
+master-bin.000001 197 Query 1 265 use `test`; BEGIN
+master-bin.000001 265 Query 1 353 use `test`; insert into t1 values (1)
+master-bin.000001 353 Query 1 441 use `test`; insert into t1 values (2)
+master-bin.000001 441 Query 1 529 use `test`; insert into t1 values (3)
+master-bin.000001 529 Xid 1 556 COMMIT /* XID */
+master-bin.000001 556 Query 1 632 use `test`; drop table t1
+set @bcs = @@binlog_cache_size;
+set global binlog_cache_size=4096;
+reset master;
+create table t1 (a int) engine=innodb;
+show binlog events from 0;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
+master-bin.000001 98 Query 1 198 use `test`; create table t1 (a int) engine=innodb
+master-bin.000001 198 Query 1 266 use `test`; BEGIN
+master-bin.000001 266 Query 1 357 use `test`; insert into t1 values( 400 )
+master-bin.000001 357 Query 1 448 use `test`; insert into t1 values( 399 )
+master-bin.000001 448 Query 1 539 use `test`; insert into t1 values( 398 )
+master-bin.000001 539 Query 1 630 use `test`; insert into t1 values( 397 )
+master-bin.000001 630 Query 1 721 use `test`; insert into t1 values( 396 )
+master-bin.000001 721 Query 1 812 use `test`; insert into t1 values( 395 )
+master-bin.000001 812 Query 1 903 use `test`; insert into t1 values( 394 )
+master-bin.000001 903 Query 1 994 use `test`; insert into t1 values( 393 )
+master-bin.000001 994 Query 1 1085 use `test`; insert into t1 values( 392 )
+master-bin.000001 1085 Query 1 1176 use `test`; insert into t1 values( 391 )
+master-bin.000001 1176 Query 1 1267 use `test`; insert into t1 values( 390 )
+master-bin.000001 1267 Query 1 1358 use `test`; insert into t1 values( 389 )
+master-bin.000001 1358 Query 1 1449 use `test`; insert into t1 values( 388 )
+master-bin.000001 1449 Query 1 1540 use `test`; insert into t1 values( 387 )
+master-bin.000001 1540 Query 1 1631 use `test`; insert into t1 values( 386 )
+master-bin.000001 1631 Query 1 1722 use `test`; insert into t1 values( 385 )
+master-bin.000001 1722 Query 1 1813 use `test`; insert into t1 values( 384 )
+master-bin.000001 1813 Query 1 1904 use `test`; insert into t1 values( 383 )
+master-bin.000001 1904 Query 1 1995 use `test`; insert into t1 values( 382 )
+master-bin.000001 1995 Query 1 2086 use `test`; insert into t1 values( 381 )
+master-bin.000001 2086 Query 1 2177 use `test`; insert into t1 values( 380 )
+master-bin.000001 2177 Query 1 2268 use `test`; insert into t1 values( 379 )
+master-bin.000001 2268 Query 1 2359 use `test`; insert into t1 values( 378 )
+master-bin.000001 2359 Query 1 2450 use `test`; insert into t1 values( 377 )
+master-bin.000001 2450 Query 1 2541 use `test`; insert into t1 values( 376 )
+master-bin.000001 2541 Query 1 2632 use `test`; insert into t1 values( 375 )
+master-bin.000001 2632 Query 1 2723 use `test`; insert into t1 values( 374 )
+master-bin.000001 2723 Query 1 2814 use `test`; insert into t1 values( 373 )
+master-bin.000001 2814 Query 1 2905 use `test`; insert into t1 values( 372 )
+master-bin.000001 2905 Query 1 2996 use `test`; insert into t1 values( 371 )
+master-bin.000001 2996 Query 1 3087 use `test`; insert into t1 values( 370 )
+master-bin.000001 3087 Query 1 3178 use `test`; insert into t1 values( 369 )
+master-bin.000001 3178 Query 1 3269 use `test`; insert into t1 values( 368 )
+master-bin.000001 3269 Query 1 3360 use `test`; insert into t1 values( 367 )
+master-bin.000001 3360 Query 1 3451 use `test`; insert into t1 values( 366 )
+master-bin.000001 3451 Query 1 3542 use `test`; insert into t1 values( 365 )
+master-bin.000001 3542 Query 1 3633 use `test`; insert into t1 values( 364 )
+master-bin.000001 3633 Query 1 3724 use `test`; insert into t1 values( 363 )
+master-bin.000001 3724 Query 1 3815 use `test`; insert into t1 values( 362 )
+master-bin.000001 3815 Query 1 3906 use `test`; insert into t1 values( 361 )
+master-bin.000001 3906 Query 1 3997 use `test`; insert into t1 values( 360 )
+master-bin.000001 3997 Query 1 4088 use `test`; insert into t1 values( 359 )
+master-bin.000001 4088 Query 1 4179 use `test`; insert into t1 values( 358 )
+master-bin.000001 4179 Query 1 4270 use `test`; insert into t1 values( 357 )
+master-bin.000001 4270 Query 1 4361 use `test`; insert into t1 values( 356 )
+master-bin.000001 4361 Query 1 4452 use `test`; insert into t1 values( 355 )
+master-bin.000001 4452 Query 1 4543 use `test`; insert into t1 values( 354 )
+master-bin.000001 4543 Query 1 4634 use `test`; insert into t1 values( 353 )
+master-bin.000001 4634 Query 1 4725 use `test`; insert into t1 values( 352 )
+master-bin.000001 4725 Query 1 4816 use `test`; insert into t1 values( 351 )
+master-bin.000001 4816 Query 1 4907 use `test`; insert into t1 values( 350 )
+master-bin.000001 4907 Query 1 4998 use `test`; insert into t1 values( 349 )
+master-bin.000001 4998 Query 1 5089 use `test`; insert into t1 values( 348 )
+master-bin.000001 5089 Query 1 5180 use `test`; insert into t1 values( 347 )
+master-bin.000001 5180 Query 1 5271 use `test`; insert into t1 values( 346 )
+master-bin.000001 5271 Query 1 5362 use `test`; insert into t1 values( 345 )
+master-bin.000001 5362 Query 1 5453 use `test`; insert into t1 values( 344 )
+master-bin.000001 5453 Query 1 5544 use `test`; insert into t1 values( 343 )
+master-bin.000001 5544 Query 1 5635 use `test`; insert into t1 values( 342 )
+master-bin.000001 5635 Query 1 5726 use `test`; insert into t1 values( 341 )
+master-bin.000001 5726 Query 1 5817 use `test`; insert into t1 values( 340 )
+master-bin.000001 5817 Query 1 5908 use `test`; insert into t1 values( 339 )
+master-bin.000001 5908 Query 1 5999 use `test`; insert into t1 values( 338 )
+master-bin.000001 5999 Query 1 6090 use `test`; insert into t1 values( 337 )
+master-bin.000001 6090 Query 1 6181 use `test`; insert into t1 values( 336 )
+master-bin.000001 6181 Query 1 6272 use `test`; insert into t1 values( 335 )
+master-bin.000001 6272 Query 1 6363 use `test`; insert into t1 values( 334 )
+master-bin.000001 6363 Query 1 6454 use `test`; insert into t1 values( 333 )
+master-bin.000001 6454 Query 1 6545 use `test`; insert into t1 values( 332 )
+master-bin.000001 6545 Query 1 6636 use `test`; insert into t1 values( 331 )
+master-bin.000001 6636 Query 1 6727 use `test`; insert into t1 values( 330 )
+master-bin.000001 6727 Query 1 6818 use `test`; insert into t1 values( 329 )
+master-bin.000001 6818 Query 1 6909 use `test`; insert into t1 values( 328 )
+master-bin.000001 6909 Query 1 7000 use `test`; insert into t1 values( 327 )
+master-bin.000001 7000 Query 1 7091 use `test`; insert into t1 values( 326 )
+master-bin.000001 7091 Query 1 7182 use `test`; insert into t1 values( 325 )
+master-bin.000001 7182 Query 1 7273 use `test`; insert into t1 values( 324 )
+master-bin.000001 7273 Query 1 7364 use `test`; insert into t1 values( 323 )
+master-bin.000001 7364 Query 1 7455 use `test`; insert into t1 values( 322 )
+master-bin.000001 7455 Query 1 7546 use `test`; insert into t1 values( 321 )
+master-bin.000001 7546 Query 1 7637 use `test`; insert into t1 values( 320 )
+master-bin.000001 7637 Query 1 7728 use `test`; insert into t1 values( 319 )
+master-bin.000001 7728 Query 1 7819 use `test`; insert into t1 values( 318 )
+master-bin.000001 7819 Query 1 7910 use `test`; insert into t1 values( 317 )
+master-bin.000001 7910 Query 1 8001 use `test`; insert into t1 values( 316 )
+master-bin.000001 8001 Query 1 8092 use `test`; insert into t1 values( 315 )
+master-bin.000001 8092 Query 1 8183 use `test`; insert into t1 values( 314 )
+master-bin.000001 8183 Query 1 8274 use `test`; insert into t1 values( 313 )
+master-bin.000001 8274 Query 1 8365 use `test`; insert into t1 values( 312 )
+master-bin.000001 8365 Query 1 8456 use `test`; insert into t1 values( 311 )
+master-bin.000001 8456 Query 1 8547 use `test`; insert into t1 values( 310 )
+master-bin.000001 8547 Query 1 8638 use `test`; insert into t1 values( 309 )
+master-bin.000001 8638 Query 1 8729 use `test`; insert into t1 values( 308 )
+master-bin.000001 8729 Query 1 8820 use `test`; insert into t1 values( 307 )
+master-bin.000001 8820 Query 1 8911 use `test`; insert into t1 values( 306 )
+master-bin.000001 8911 Query 1 9002 use `test`; insert into t1 values( 305 )
+master-bin.000001 9002 Query 1 9093 use `test`; insert into t1 values( 304 )
+master-bin.000001 9093 Query 1 9184 use `test`; insert into t1 values( 303 )
+master-bin.000001 9184 Query 1 9275 use `test`; insert into t1 values( 302 )
+master-bin.000001 9275 Query 1 9366 use `test`; insert into t1 values( 301 )
+master-bin.000001 9366 Query 1 9457 use `test`; insert into t1 values( 300 )
+master-bin.000001 9457 Query 1 9548 use `test`; insert into t1 values( 299 )
+master-bin.000001 9548 Query 1 9639 use `test`; insert into t1 values( 298 )
+master-bin.000001 9639 Query 1 9730 use `test`; insert into t1 values( 297 )
+master-bin.000001 9730 Query 1 9821 use `test`; insert into t1 values( 296 )
+master-bin.000001 9821 Query 1 9912 use `test`; insert into t1 values( 295 )
+master-bin.000001 9912 Query 1 10003 use `test`; insert into t1 values( 294 )
+master-bin.000001 10003 Query 1 10094 use `test`; insert into t1 values( 293 )
+master-bin.000001 10094 Query 1 10185 use `test`; insert into t1 values( 292 )
+master-bin.000001 10185 Query 1 10276 use `test`; insert into t1 values( 291 )
+master-bin.000001 10276 Query 1 10367 use `test`; insert into t1 values( 290 )
+master-bin.000001 10367 Query 1 10458 use `test`; insert into t1 values( 289 )
+master-bin.000001 10458 Query 1 10549 use `test`; insert into t1 values( 288 )
+master-bin.000001 10549 Query 1 10640 use `test`; insert into t1 values( 287 )
+master-bin.000001 10640 Query 1 10731 use `test`; insert into t1 values( 286 )
+master-bin.000001 10731 Query 1 10822 use `test`; insert into t1 values( 285 )
+master-bin.000001 10822 Query 1 10913 use `test`; insert into t1 values( 284 )
+master-bin.000001 10913 Query 1 11004 use `test`; insert into t1 values( 283 )
+master-bin.000001 11004 Query 1 11095 use `test`; insert into t1 values( 282 )
+master-bin.000001 11095 Query 1 11186 use `test`; insert into t1 values( 281 )
+master-bin.000001 11186 Query 1 11277 use `test`; insert into t1 values( 280 )
+master-bin.000001 11277 Query 1 11368 use `test`; insert into t1 values( 279 )
+master-bin.000001 11368 Query 1 11459 use `test`; insert into t1 values( 278 )
+master-bin.000001 11459 Query 1 11550 use `test`; insert into t1 values( 277 )
+master-bin.000001 11550 Query 1 11641 use `test`; insert into t1 values( 276 )
+master-bin.000001 11641 Query 1 11732 use `test`; insert into t1 values( 275 )
+master-bin.000001 11732 Query 1 11823 use `test`; insert into t1 values( 274 )
+master-bin.000001 11823 Query 1 11914 use `test`; insert into t1 values( 273 )
+master-bin.000001 11914 Query 1 12005 use `test`; insert into t1 values( 272 )
+master-bin.000001 12005 Query 1 12096 use `test`; insert into t1 values( 271 )
+master-bin.000001 12096 Query 1 12187 use `test`; insert into t1 values( 270 )
+master-bin.000001 12187 Query 1 12278 use `test`; insert into t1 values( 269 )
+master-bin.000001 12278 Query 1 12369 use `test`; insert into t1 values( 268 )
+master-bin.000001 12369 Query 1 12460 use `test`; insert into t1 values( 267 )
+master-bin.000001 12460 Query 1 12551 use `test`; insert into t1 values( 266 )
+master-bin.000001 12551 Query 1 12642 use `test`; insert into t1 values( 265 )
+master-bin.000001 12642 Query 1 12733 use `test`; insert into t1 values( 264 )
+master-bin.000001 12733 Query 1 12824 use `test`; insert into t1 values( 263 )
+master-bin.000001 12824 Query 1 12915 use `test`; insert into t1 values( 262 )
+master-bin.000001 12915 Query 1 13006 use `test`; insert into t1 values( 261 )
+master-bin.000001 13006 Query 1 13097 use `test`; insert into t1 values( 260 )
+master-bin.000001 13097 Query 1 13188 use `test`; insert into t1 values( 259 )
+master-bin.000001 13188 Query 1 13279 use `test`; insert into t1 values( 258 )
+master-bin.000001 13279 Query 1 13370 use `test`; insert into t1 values( 257 )
+master-bin.000001 13370 Query 1 13461 use `test`; insert into t1 values( 256 )
+master-bin.000001 13461 Query 1 13552 use `test`; insert into t1 values( 255 )
+master-bin.000001 13552 Query 1 13643 use `test`; insert into t1 values( 254 )
+master-bin.000001 13643 Query 1 13734 use `test`; insert into t1 values( 253 )
+master-bin.000001 13734 Query 1 13825 use `test`; insert into t1 values( 252 )
+master-bin.000001 13825 Query 1 13916 use `test`; insert into t1 values( 251 )
+master-bin.000001 13916 Query 1 14007 use `test`; insert into t1 values( 250 )
+master-bin.000001 14007 Query 1 14098 use `test`; insert into t1 values( 249 )
+master-bin.000001 14098 Query 1 14189 use `test`; insert into t1 values( 248 )
+master-bin.000001 14189 Query 1 14280 use `test`; insert into t1 values( 247 )
+master-bin.000001 14280 Query 1 14371 use `test`; insert into t1 values( 246 )
+master-bin.000001 14371 Query 1 14462 use `test`; insert into t1 values( 245 )
+master-bin.000001 14462 Query 1 14553 use `test`; insert into t1 values( 244 )
+master-bin.000001 14553 Query 1 14644 use `test`; insert into t1 values( 243 )
+master-bin.000001 14644 Query 1 14735 use `test`; insert into t1 values( 242 )
+master-bin.000001 14735 Query 1 14826 use `test`; insert into t1 values( 241 )
+master-bin.000001 14826 Query 1 14917 use `test`; insert into t1 values( 240 )
+master-bin.000001 14917 Query 1 15008 use `test`; insert into t1 values( 239 )
+master-bin.000001 15008 Query 1 15099 use `test`; insert into t1 values( 238 )
+master-bin.000001 15099 Query 1 15190 use `test`; insert into t1 values( 237 )
+master-bin.000001 15190 Query 1 15281 use `test`; insert into t1 values( 236 )
+master-bin.000001 15281 Query 1 15372 use `test`; insert into t1 values( 235 )
+master-bin.000001 15372 Query 1 15463 use `test`; insert into t1 values( 234 )
+master-bin.000001 15463 Query 1 15554 use `test`; insert into t1 values( 233 )
+master-bin.000001 15554 Query 1 15645 use `test`; insert into t1 values( 232 )
+master-bin.000001 15645 Query 1 15736 use `test`; insert into t1 values( 231 )
+master-bin.000001 15736 Query 1 15827 use `test`; insert into t1 values( 230 )
+master-bin.000001 15827 Query 1 15918 use `test`; insert into t1 values( 229 )
+master-bin.000001 15918 Query 1 16009 use `test`; insert into t1 values( 228 )
+master-bin.000001 16009 Query 1 16100 use `test`; insert into t1 values( 227 )
+master-bin.000001 16100 Query 1 16191 use `test`; insert into t1 values( 226 )
+master-bin.000001 16191 Query 1 16282 use `test`; insert into t1 values( 225 )
+master-bin.000001 16282 Query 1 16373 use `test`; insert into t1 values( 224 )
+master-bin.000001 16373 Query 1 16464 use `test`; insert into t1 values( 223 )
+master-bin.000001 16464 Query 1 16555 use `test`; insert into t1 values( 222 )
+master-bin.000001 16555 Query 1 16646 use `test`; insert into t1 values( 221 )
+master-bin.000001 16646 Query 1 16737 use `test`; insert into t1 values( 220 )
+master-bin.000001 16737 Query 1 16828 use `test`; insert into t1 values( 219 )
+master-bin.000001 16828 Query 1 16919 use `test`; insert into t1 values( 218 )
+master-bin.000001 16919 Query 1 17010 use `test`; insert into t1 values( 217 )
+master-bin.000001 17010 Query 1 17101 use `test`; insert into t1 values( 216 )
+master-bin.000001 17101 Query 1 17192 use `test`; insert into t1 values( 215 )
+master-bin.000001 17192 Query 1 17283 use `test`; insert into t1 values( 214 )
+master-bin.000001 17283 Query 1 17374 use `test`; insert into t1 values( 213 )
+master-bin.000001 17374 Query 1 17465 use `test`; insert into t1 values( 212 )
+master-bin.000001 17465 Query 1 17556 use `test`; insert into t1 values( 211 )
+master-bin.000001 17556 Query 1 17647 use `test`; insert into t1 values( 210 )
+master-bin.000001 17647 Query 1 17738 use `test`; insert into t1 values( 209 )
+master-bin.000001 17738 Query 1 17829 use `test`; insert into t1 values( 208 )
+master-bin.000001 17829 Query 1 17920 use `test`; insert into t1 values( 207 )
+master-bin.000001 17920 Query 1 18011 use `test`; insert into t1 values( 206 )
+master-bin.000001 18011 Query 1 18102 use `test`; insert into t1 values( 205 )
+master-bin.000001 18102 Query 1 18193 use `test`; insert into t1 values( 204 )
+master-bin.000001 18193 Query 1 18284 use `test`; insert into t1 values( 203 )
+master-bin.000001 18284 Query 1 18375 use `test`; insert into t1 values( 202 )
+master-bin.000001 18375 Query 1 18466 use `test`; insert into t1 values( 201 )
+master-bin.000001 18466 Query 1 18557 use `test`; insert into t1 values( 200 )
+master-bin.000001 18557 Query 1 18648 use `test`; insert into t1 values( 199 )
+master-bin.000001 18648 Query 1 18739 use `test`; insert into t1 values( 198 )
+master-bin.000001 18739 Query 1 18830 use `test`; insert into t1 values( 197 )
+master-bin.000001 18830 Query 1 18921 use `test`; insert into t1 values( 196 )
+master-bin.000001 18921 Query 1 19012 use `test`; insert into t1 values( 195 )
+master-bin.000001 19012 Query 1 19103 use `test`; insert into t1 values( 194 )
+master-bin.000001 19103 Query 1 19194 use `test`; insert into t1 values( 193 )
+master-bin.000001 19194 Query 1 19285 use `test`; insert into t1 values( 192 )
+master-bin.000001 19285 Query 1 19376 use `test`; insert into t1 values( 191 )
+master-bin.000001 19376 Query 1 19467 use `test`; insert into t1 values( 190 )
+master-bin.000001 19467 Query 1 19558 use `test`; insert into t1 values( 189 )
+master-bin.000001 19558 Query 1 19649 use `test`; insert into t1 values( 188 )
+master-bin.000001 19649 Query 1 19740 use `test`; insert into t1 values( 187 )
+master-bin.000001 19740 Query 1 19831 use `test`; insert into t1 values( 186 )
+master-bin.000001 19831 Query 1 19922 use `test`; insert into t1 values( 185 )
+master-bin.000001 19922 Query 1 20013 use `test`; insert into t1 values( 184 )
+master-bin.000001 20013 Query 1 20104 use `test`; insert into t1 values( 183 )
+master-bin.000001 20104 Query 1 20195 use `test`; insert into t1 values( 182 )
+master-bin.000001 20195 Query 1 20286 use `test`; insert into t1 values( 181 )
+master-bin.000001 20286 Query 1 20377 use `test`; insert into t1 values( 180 )
+master-bin.000001 20377 Query 1 20468 use `test`; insert into t1 values( 179 )
+master-bin.000001 20468 Query 1 20559 use `test`; insert into t1 values( 178 )
+master-bin.000001 20559 Query 1 20650 use `test`; insert into t1 values( 177 )
+master-bin.000001 20650 Query 1 20741 use `test`; insert into t1 values( 176 )
+master-bin.000001 20741 Query 1 20832 use `test`; insert into t1 values( 175 )
+master-bin.000001 20832 Query 1 20923 use `test`; insert into t1 values( 174 )
+master-bin.000001 20923 Query 1 21014 use `test`; insert into t1 values( 173 )
+master-bin.000001 21014 Query 1 21105 use `test`; insert into t1 values( 172 )
+master-bin.000001 21105 Query 1 21196 use `test`; insert into t1 values( 171 )
+master-bin.000001 21196 Query 1 21287 use `test`; insert into t1 values( 170 )
+master-bin.000001 21287 Query 1 21378 use `test`; insert into t1 values( 169 )
+master-bin.000001 21378 Query 1 21469 use `test`; insert into t1 values( 168 )
+master-bin.000001 21469 Query 1 21560 use `test`; insert into t1 values( 167 )
+master-bin.000001 21560 Query 1 21651 use `test`; insert into t1 values( 166 )
+master-bin.000001 21651 Query 1 21742 use `test`; insert into t1 values( 165 )
+master-bin.000001 21742 Query 1 21833 use `test`; insert into t1 values( 164 )
+master-bin.000001 21833 Query 1 21924 use `test`; insert into t1 values( 163 )
+master-bin.000001 21924 Query 1 22015 use `test`; insert into t1 values( 162 )
+master-bin.000001 22015 Query 1 22106 use `test`; insert into t1 values( 161 )
+master-bin.000001 22106 Query 1 22197 use `test`; insert into t1 values( 160 )
+master-bin.000001 22197 Query 1 22288 use `test`; insert into t1 values( 159 )
+master-bin.000001 22288 Query 1 22379 use `test`; insert into t1 values( 158 )
+master-bin.000001 22379 Query 1 22470 use `test`; insert into t1 values( 157 )
+master-bin.000001 22470 Query 1 22561 use `test`; insert into t1 values( 156 )
+master-bin.000001 22561 Query 1 22652 use `test`; insert into t1 values( 155 )
+master-bin.000001 22652 Query 1 22743 use `test`; insert into t1 values( 154 )
+master-bin.000001 22743 Query 1 22834 use `test`; insert into t1 values( 153 )
+master-bin.000001 22834 Query 1 22925 use `test`; insert into t1 values( 152 )
+master-bin.000001 22925 Query 1 23016 use `test`; insert into t1 values( 151 )
+master-bin.000001 23016 Query 1 23107 use `test`; insert into t1 values( 150 )
+master-bin.000001 23107 Query 1 23198 use `test`; insert into t1 values( 149 )
+master-bin.000001 23198 Query 1 23289 use `test`; insert into t1 values( 148 )
+master-bin.000001 23289 Query 1 23380 use `test`; insert into t1 values( 147 )
+master-bin.000001 23380 Query 1 23471 use `test`; insert into t1 values( 146 )
+master-bin.000001 23471 Query 1 23562 use `test`; insert into t1 values( 145 )
+master-bin.000001 23562 Query 1 23653 use `test`; insert into t1 values( 144 )
+master-bin.000001 23653 Query 1 23744 use `test`; insert into t1 values( 143 )
+master-bin.000001 23744 Query 1 23835 use `test`; insert into t1 values( 142 )
+master-bin.000001 23835 Query 1 23926 use `test`; insert into t1 values( 141 )
+master-bin.000001 23926 Query 1 24017 use `test`; insert into t1 values( 140 )
+master-bin.000001 24017 Query 1 24108 use `test`; insert into t1 values( 139 )
+master-bin.000001 24108 Query 1 24199 use `test`; insert into t1 values( 138 )
+master-bin.000001 24199 Query 1 24290 use `test`; insert into t1 values( 137 )
+master-bin.000001 24290 Query 1 24381 use `test`; insert into t1 values( 136 )
+master-bin.000001 24381 Query 1 24472 use `test`; insert into t1 values( 135 )
+master-bin.000001 24472 Query 1 24563 use `test`; insert into t1 values( 134 )
+master-bin.000001 24563 Query 1 24654 use `test`; insert into t1 values( 133 )
+master-bin.000001 24654 Query 1 24745 use `test`; insert into t1 values( 132 )
+master-bin.000001 24745 Query 1 24836 use `test`; insert into t1 values( 131 )
+master-bin.000001 24836 Query 1 24927 use `test`; insert into t1 values( 130 )
+master-bin.000001 24927 Query 1 25018 use `test`; insert into t1 values( 129 )
+master-bin.000001 25018 Query 1 25109 use `test`; insert into t1 values( 128 )
+master-bin.000001 25109 Query 1 25200 use `test`; insert into t1 values( 127 )
+master-bin.000001 25200 Query 1 25291 use `test`; insert into t1 values( 126 )
+master-bin.000001 25291 Query 1 25382 use `test`; insert into t1 values( 125 )
+master-bin.000001 25382 Query 1 25473 use `test`; insert into t1 values( 124 )
+master-bin.000001 25473 Query 1 25564 use `test`; insert into t1 values( 123 )
+master-bin.000001 25564 Query 1 25655 use `test`; insert into t1 values( 122 )
+master-bin.000001 25655 Query 1 25746 use `test`; insert into t1 values( 121 )
+master-bin.000001 25746 Query 1 25837 use `test`; insert into t1 values( 120 )
+master-bin.000001 25837 Query 1 25928 use `test`; insert into t1 values( 119 )
+master-bin.000001 25928 Query 1 26019 use `test`; insert into t1 values( 118 )
+master-bin.000001 26019 Query 1 26110 use `test`; insert into t1 values( 117 )
+master-bin.000001 26110 Query 1 26201 use `test`; insert into t1 values( 116 )
+master-bin.000001 26201 Query 1 26292 use `test`; insert into t1 values( 115 )
+master-bin.000001 26292 Query 1 26383 use `test`; insert into t1 values( 114 )
+master-bin.000001 26383 Query 1 26474 use `test`; insert into t1 values( 113 )
+master-bin.000001 26474 Query 1 26565 use `test`; insert into t1 values( 112 )
+master-bin.000001 26565 Query 1 26656 use `test`; insert into t1 values( 111 )
+master-bin.000001 26656 Query 1 26747 use `test`; insert into t1 values( 110 )
+master-bin.000001 26747 Query 1 26838 use `test`; insert into t1 values( 109 )
+master-bin.000001 26838 Query 1 26929 use `test`; insert into t1 values( 108 )
+master-bin.000001 26929 Query 1 27020 use `test`; insert into t1 values( 107 )
+master-bin.000001 27020 Query 1 27111 use `test`; insert into t1 values( 106 )
+master-bin.000001 27111 Query 1 27202 use `test`; insert into t1 values( 105 )
+master-bin.000001 27202 Query 1 27293 use `test`; insert into t1 values( 104 )
+master-bin.000001 27293 Query 1 27384 use `test`; insert into t1 values( 103 )
+master-bin.000001 27384 Query 1 27475 use `test`; insert into t1 values( 102 )
+master-bin.000001 27475 Query 1 27566 use `test`; insert into t1 values( 101 )
+master-bin.000001 27566 Query 1 27657 use `test`; insert into t1 values( 100 )
+master-bin.000001 27657 Query 1 27747 use `test`; insert into t1 values( 99 )
+master-bin.000001 27747 Query 1 27837 use `test`; insert into t1 values( 98 )
+master-bin.000001 27837 Query 1 27927 use `test`; insert into t1 values( 97 )
+master-bin.000001 27927 Query 1 28017 use `test`; insert into t1 values( 96 )
+master-bin.000001 28017 Query 1 28107 use `test`; insert into t1 values( 95 )
+master-bin.000001 28107 Query 1 28197 use `test`; insert into t1 values( 94 )
+master-bin.000001 28197 Query 1 28287 use `test`; insert into t1 values( 93 )
+master-bin.000001 28287 Query 1 28377 use `test`; insert into t1 values( 92 )
+master-bin.000001 28377 Query 1 28467 use `test`; insert into t1 values( 91 )
+master-bin.000001 28467 Query 1 28557 use `test`; insert into t1 values( 90 )
+master-bin.000001 28557 Query 1 28647 use `test`; insert into t1 values( 89 )
+master-bin.000001 28647 Query 1 28737 use `test`; insert into t1 values( 88 )
+master-bin.000001 28737 Query 1 28827 use `test`; insert into t1 values( 87 )
+master-bin.000001 28827 Query 1 28917 use `test`; insert into t1 values( 86 )
+master-bin.000001 28917 Query 1 29007 use `test`; insert into t1 values( 85 )
+master-bin.000001 29007 Query 1 29097 use `test`; insert into t1 values( 84 )
+master-bin.000001 29097 Query 1 29187 use `test`; insert into t1 values( 83 )
+master-bin.000001 29187 Query 1 29277 use `test`; insert into t1 values( 82 )
+master-bin.000001 29277 Query 1 29367 use `test`; insert into t1 values( 81 )
+master-bin.000001 29367 Query 1 29457 use `test`; insert into t1 values( 80 )
+master-bin.000001 29457 Query 1 29547 use `test`; insert into t1 values( 79 )
+master-bin.000001 29547 Query 1 29637 use `test`; insert into t1 values( 78 )
+master-bin.000001 29637 Query 1 29727 use `test`; insert into t1 values( 77 )
+master-bin.000001 29727 Query 1 29817 use `test`; insert into t1 values( 76 )
+master-bin.000001 29817 Query 1 29907 use `test`; insert into t1 values( 75 )
+master-bin.000001 29907 Query 1 29997 use `test`; insert into t1 values( 74 )
+master-bin.000001 29997 Query 1 30087 use `test`; insert into t1 values( 73 )
+master-bin.000001 30087 Query 1 30177 use `test`; insert into t1 values( 72 )
+master-bin.000001 30177 Query 1 30267 use `test`; insert into t1 values( 71 )
+master-bin.000001 30267 Query 1 30357 use `test`; insert into t1 values( 70 )
+master-bin.000001 30357 Query 1 30447 use `test`; insert into t1 values( 69 )
+master-bin.000001 30447 Query 1 30537 use `test`; insert into t1 values( 68 )
+master-bin.000001 30537 Query 1 30627 use `test`; insert into t1 values( 67 )
+master-bin.000001 30627 Query 1 30717 use `test`; insert into t1 values( 66 )
+master-bin.000001 30717 Query 1 30807 use `test`; insert into t1 values( 65 )
+master-bin.000001 30807 Query 1 30897 use `test`; insert into t1 values( 64 )
+master-bin.000001 30897 Query 1 30987 use `test`; insert into t1 values( 63 )
+master-bin.000001 30987 Query 1 31077 use `test`; insert into t1 values( 62 )
+master-bin.000001 31077 Query 1 31167 use `test`; insert into t1 values( 61 )
+master-bin.000001 31167 Query 1 31257 use `test`; insert into t1 values( 60 )
+master-bin.000001 31257 Query 1 31347 use `test`; insert into t1 values( 59 )
+master-bin.000001 31347 Query 1 31437 use `test`; insert into t1 values( 58 )
+master-bin.000001 31437 Query 1 31527 use `test`; insert into t1 values( 57 )
+master-bin.000001 31527 Query 1 31617 use `test`; insert into t1 values( 56 )
+master-bin.000001 31617 Query 1 31707 use `test`; insert into t1 values( 55 )
+master-bin.000001 31707 Query 1 31797 use `test`; insert into t1 values( 54 )
+master-bin.000001 31797 Query 1 31887 use `test`; insert into t1 values( 53 )
+master-bin.000001 31887 Query 1 31977 use `test`; insert into t1 values( 52 )
+master-bin.000001 31977 Query 1 32067 use `test`; insert into t1 values( 51 )
+master-bin.000001 32067 Query 1 32157 use `test`; insert into t1 values( 50 )
+master-bin.000001 32157 Query 1 32247 use `test`; insert into t1 values( 49 )
+master-bin.000001 32247 Query 1 32337 use `test`; insert into t1 values( 48 )
+master-bin.000001 32337 Query 1 32427 use `test`; insert into t1 values( 47 )
+master-bin.000001 32427 Query 1 32517 use `test`; insert into t1 values( 46 )
+master-bin.000001 32517 Query 1 32607 use `test`; insert into t1 values( 45 )
+master-bin.000001 32607 Query 1 32697 use `test`; insert into t1 values( 44 )
+master-bin.000001 32697 Query 1 32787 use `test`; insert into t1 values( 43 )
+master-bin.000001 32787 Query 1 32877 use `test`; insert into t1 values( 42 )
+master-bin.000001 32877 Query 1 32967 use `test`; insert into t1 values( 41 )
+master-bin.000001 32967 Query 1 33057 use `test`; insert into t1 values( 40 )
+master-bin.000001 33057 Query 1 33147 use `test`; insert into t1 values( 39 )
+master-bin.000001 33147 Query 1 33237 use `test`; insert into t1 values( 38 )
+master-bin.000001 33237 Query 1 33327 use `test`; insert into t1 values( 37 )
+master-bin.000001 33327 Query 1 33417 use `test`; insert into t1 values( 36 )
+master-bin.000001 33417 Query 1 33507 use `test`; insert into t1 values( 35 )
+master-bin.000001 33507 Query 1 33597 use `test`; insert into t1 values( 34 )
+master-bin.000001 33597 Query 1 33687 use `test`; insert into t1 values( 33 )
+master-bin.000001 33687 Query 1 33777 use `test`; insert into t1 values( 32 )
+master-bin.000001 33777 Query 1 33867 use `test`; insert into t1 values( 31 )
+master-bin.000001 33867 Query 1 33957 use `test`; insert into t1 values( 30 )
+master-bin.000001 33957 Query 1 34047 use `test`; insert into t1 values( 29 )
+master-bin.000001 34047 Query 1 34137 use `test`; insert into t1 values( 28 )
+master-bin.000001 34137 Query 1 34227 use `test`; insert into t1 values( 27 )
+master-bin.000001 34227 Query 1 34317 use `test`; insert into t1 values( 26 )
+master-bin.000001 34317 Query 1 34407 use `test`; insert into t1 values( 25 )
+master-bin.000001 34407 Query 1 34497 use `test`; insert into t1 values( 24 )
+master-bin.000001 34497 Query 1 34587 use `test`; insert into t1 values( 23 )
+master-bin.000001 34587 Query 1 34677 use `test`; insert into t1 values( 22 )
+master-bin.000001 34677 Query 1 34767 use `test`; insert into t1 values( 21 )
+master-bin.000001 34767 Query 1 34857 use `test`; insert into t1 values( 20 )
+master-bin.000001 34857 Query 1 34947 use `test`; insert into t1 values( 19 )
+master-bin.000001 34947 Query 1 35037 use `test`; insert into t1 values( 18 )
+master-bin.000001 35037 Query 1 35127 use `test`; insert into t1 values( 17 )
+master-bin.000001 35127 Query 1 35217 use `test`; insert into t1 values( 16 )
+master-bin.000001 35217 Query 1 35307 use `test`; insert into t1 values( 15 )
+master-bin.000001 35307 Query 1 35397 use `test`; insert into t1 values( 14 )
+master-bin.000001 35397 Query 1 35487 use `test`; insert into t1 values( 13 )
+master-bin.000001 35487 Query 1 35577 use `test`; insert into t1 values( 12 )
+master-bin.000001 35577 Query 1 35667 use `test`; insert into t1 values( 11 )
+master-bin.000001 35667 Query 1 35757 use `test`; insert into t1 values( 10 )
+master-bin.000001 35757 Query 1 35846 use `test`; insert into t1 values( 9 )
+master-bin.000001 35846 Query 1 35935 use `test`; insert into t1 values( 8 )
+master-bin.000001 35935 Query 1 36024 use `test`; insert into t1 values( 7 )
+master-bin.000001 36024 Query 1 36113 use `test`; insert into t1 values( 6 )
+master-bin.000001 36113 Query 1 36202 use `test`; insert into t1 values( 5 )
+master-bin.000001 36202 Query 1 36291 use `test`; insert into t1 values( 4 )
+master-bin.000001 36291 Query 1 36380 use `test`; insert into t1 values( 3 )
+master-bin.000001 36380 Query 1 36469 use `test`; insert into t1 values( 2 )
+master-bin.000001 36469 Query 1 36558 use `test`; insert into t1 values( 1 )
+master-bin.000001 36558 Xid 1 36585 COMMIT /* XID */
+master-bin.000001 36585 Rotate 1 36629 master-bin.000002;pos=4
+drop table t1;
+set global binlog_cache_size=@bcs;
+set session autocommit = @ac;
+End of 5.0 tests
diff --git a/mysql-test/r/binlog_innodb.result b/mysql-test/r/binlog_innodb.result
new file mode 100644
index 00000000000..93414a13ba1
--- /dev/null
+++ b/mysql-test/r/binlog_innodb.result
@@ -0,0 +1,23 @@
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 0
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 0
+create table t1 (a int) engine=innodb;
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 1
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 1
+begin;
+delete from t1;
+commit;
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 2
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 1
+drop table t1;
diff --git a/mysql-test/r/binlog_killed.result b/mysql-test/r/binlog_killed.result
new file mode 100644
index 00000000000..ba4f38fb4c1
--- /dev/null
+++ b/mysql-test/r/binlog_killed.result
@@ -0,0 +1,12 @@
+create table t1 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
+create table t2 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=MyISAM;
+create table t3 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
+select get_lock("a", 20);
+get_lock("a", 20)
+1
+reset master;
+insert into t2 values (null, null), (null, get_lock("a", 10));
+select @result /* must be zero either way */;
+@result
+0
+drop table t1,t2,t3;
diff --git a/mysql-test/r/blackhole.result b/mysql-test/r/blackhole.result
index 2d020e0eed7..5ab4931b53b 100644
--- a/mysql-test/r/blackhole.result
+++ b/mysql-test/r/blackhole.result
@@ -73,7 +73,7 @@ explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 fulltext a a 0 1 Using where
Warnings:
-Note 1003 select test.t1.a AS `a`,test.t1.b AS `b` from test.t1 where (match test.t1.a,test.t1.b against (_latin1'collections'))
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (match `test`.`t1`.`a`,`test`.`t1`.`b` against (_latin1'collections'))
select * from t1 where MATCH(a,b) AGAINST ("indexes");
a b
Full-text indexes are called collections
@@ -92,7 +92,7 @@ insert into t1 values(1);
insert ignore into t1 values(1);
replace into t1 values(100);
create table t2 (a varchar(200)) engine=blackhole;
-load data infile '../../std_data/words.dat' into table t2;
+load data infile '../std_data_ln/words.dat' into table t2;
alter table t1 add b int;
alter table t1 drop b;
create table t3 like t1;
@@ -105,8 +105,8 @@ a
select * from t3;
a
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 # Start 1 # Server ver: VERSION, Binlog ver: 3
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
master-bin.000001 # Query 1 # use `test`; drop table t1,t2
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=blackhole
master-bin.000001 # Query 1 # use `test`; delete from t1 where a=10
@@ -115,8 +115,8 @@ master-bin.000001 # Query 1 # use `test`; insert into t1 values(1)
master-bin.000001 # Query 1 # use `test`; insert ignore into t1 values(1)
master-bin.000001 # Query 1 # use `test`; replace into t1 values(100)
master-bin.000001 # Query 1 # use `test`; create table t2 (a varchar(200)) engine=blackhole
-master-bin.000001 # Create_file 1 # db=test;table=t2;file_id=1;block_len=581
-master-bin.000001 # Exec_load 1 # ;file_id=1
+master-bin.000001 # Begin_load_query 1 # ;file_id=1;block_len=581
+master-bin.000001 # Execute_load_query 1 # use `test`; load data infile '../std_data_ln/words.dat' into table t2 ;file_id=1
master-bin.000001 # Query 1 # use `test`; alter table t1 add b int
master-bin.000001 # Query 1 # use `test`; alter table t1 drop b
master-bin.000001 # Query 1 # use `test`; create table t3 like t1
@@ -127,3 +127,14 @@ CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
INSERT DELAYED INTO t1 VALUES(1);
ERROR HY000: Table storage engine for 't1' doesn't have this option
DROP TABLE t1;
+CREATE TABLE t1(a INT, b INT) ENGINE=BLACKHOLE;
+DELETE FROM t1 WHERE a=10;
+ALTER TABLE t1 ADD INDEX(a);
+DELETE FROM t1 WHERE a=10;
+ALTER TABLE t1 DROP INDEX a;
+ALTER TABLE t1 ADD UNIQUE INDEX(a);
+DELETE FROM t1 WHERE a=10;
+ALTER TABLE t1 DROP INDEX a;
+ALTER TABLE t1 ADD PRIMARY KEY(a);
+DELETE FROM t1 WHERE a=10;
+DROP TABLE t1;
diff --git a/mysql-test/r/bool.result b/mysql-test/r/bool.result
index a054eceec0c..184046a2d6f 100644
--- a/mysql-test/r/bool.result
+++ b/mysql-test/r/bool.result
@@ -33,6 +33,24 @@ a
SELECT * FROM t1 where (1 AND a) IS NULL;
a
NULL
+set sql_mode='high_not_precedence';
+select * from t1 where not a between 2 and 3;
+a
+set sql_mode=default;
+select * from t1 where not a between 2 and 3;
+a
+0
+1
+select a, a is false, a is true, a is unknown from t1;
+a a is false a is true a is unknown
+0 1 0 0
+1 0 1 0
+NULL 0 0 1
+select a, a is not false, a is not true, a is not unknown from t1;
+a a is not false a is not true a is not unknown
+0 0 1 1
+1 1 0 1
+NULL 1 1 0
SET @a=0, @b=0;
SELECT * FROM t1 WHERE NULL AND (@a:=@a+1);
a
diff --git a/mysql-test/r/bootstrap.result b/mysql-test/r/bootstrap.result
new file mode 100644
index 00000000000..3301ca74324
--- /dev/null
+++ b/mysql-test/r/bootstrap.result
@@ -0,0 +1,8 @@
+drop table if exists t1;
+drop table t1;
+drop table t1;
+ERROR 42S02: Unknown table 't1'
+set @my_max_allowed_packet= @@max_allowed_packet;
+set global max_allowed_packet=100*@@max_allowed_packet;
+set global max_allowed_packet=@my_max_allowed_packet;
+drop table t1;
diff --git a/mysql-test/r/case.result b/mysql-test/r/case.result
index a5495d0fc3e..cf358e6a404 100644
--- a/mysql-test/r/case.result
+++ b/mysql-test/r/case.result
@@ -66,7 +66,7 @@ explain extended select case a when 1 then 2 when 2 then 3 else 0 end as fcase,
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
Warnings:
-Note 1003 select (case test.t1.a when 1 then 2 when 2 then 3 else 0 end) AS `fcase`,count(0) AS `count(*)` from test.t1 group by (case test.t1.a when 1 then 2 when 2 then 3 else 0 end)
+Note 1003 select (case `test`.`t1`.`a` when 1 then 2 when 2 then 3 else 0 end) AS `fcase`,count(0) AS `count(*)` from `test`.`t1` group by (case `test`.`t1`.`a` when 1 then 2 when 2 then 3 else 0 end)
select case a when 1 then "one" when 2 then "two" else "nothing" end as fcase, count(*) from t1 group by fcase;
fcase count(*)
nothing 2
@@ -91,20 +91,26 @@ CASE WHEN 1 THEN 'a' ELSE 1.0 END AS c5,
CASE WHEN 1 THEN 1.0 ELSE 'a' END AS c6,
CASE WHEN 1 THEN 1 ELSE 1.0 END AS c7,
CASE WHEN 1 THEN 1.0 ELSE 1 END AS c8,
-CASE WHEN 1 THEN 1.0 END AS c9
+CASE WHEN 1 THEN 1.0 END AS c9,
+CASE WHEN 1 THEN 0.1e1 else 0.1 END AS c10,
+CASE WHEN 1 THEN 0.1e1 else 1 END AS c11,
+CASE WHEN 1 THEN 0.1e1 else '1' END AS c12
;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` char(1) character set latin1 collate latin1_danish_ci NOT NULL default '',
- `c2` char(1) character set latin1 collate latin1_danish_ci NOT NULL default '',
- `c3` binary(1) NOT NULL default '',
- `c4` binary(1) NOT NULL default '',
- `c5` binary(3) NOT NULL default '',
- `c6` binary(3) NOT NULL default '',
- `c7` double(3,1) NOT NULL default '0.0',
- `c8` double(3,1) NOT NULL default '0.0',
- `c9` double(3,1) default NULL
+ `c1` varchar(1) character set latin1 collate latin1_danish_ci NOT NULL default '',
+ `c2` varchar(1) character set latin1 collate latin1_danish_ci NOT NULL default '',
+ `c3` varbinary(1) NOT NULL default '',
+ `c4` varbinary(1) NOT NULL default '',
+ `c5` varbinary(4) NOT NULL default '',
+ `c6` varbinary(4) NOT NULL default '',
+ `c7` decimal(2,1) NOT NULL default '0.0',
+ `c8` decimal(2,1) NOT NULL default '0.0',
+ `c9` decimal(2,1) default NULL,
+ `c10` double NOT NULL default '0',
+ `c11` double NOT NULL default '0',
+ `c12` varbinary(5) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT CASE
@@ -141,17 +147,17 @@ COALESCE('a' COLLATE latin1_bin,'b');
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select coalesce(1) AS `COALESCE(1)`,coalesce(1.0) AS `COALESCE(1.0)`,coalesce(_latin1'a') AS `COALESCE('a')`,coalesce(1,1.0) AS `COALESCE(1,1.0)`,coalesce(1,_latin1'1') AS `COALESCE(1,'1')`,coalesce(1.1,_latin1'1') AS `COALESCE(1.1,'1')`,coalesce((_latin1'a' collate _latin1'latin1_bin'),_latin1'b') AS `COALESCE('a' COLLATE latin1_bin,'b')`
+Note 1003 select coalesce(1) AS `COALESCE(1)`,coalesce(1.0) AS `COALESCE(1.0)`,coalesce(_latin1'a') AS `COALESCE('a')`,coalesce(1,1.0) AS `COALESCE(1,1.0)`,coalesce(1,_latin1'1') AS `COALESCE(1,'1')`,coalesce(1.1,_latin1'1') AS `COALESCE(1.1,'1')`,coalesce((_latin1'a' collate latin1_bin),_latin1'b') AS `COALESCE('a' COLLATE latin1_bin,'b')`
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`COALESCE(1)` int(1) NOT NULL default '0',
- `COALESCE(1.0)` double(3,1) NOT NULL default '0.0',
- `COALESCE('a')` char(1) NOT NULL default '',
- `COALESCE(1,1.0)` double(3,1) NOT NULL default '0.0',
- `COALESCE(1,'1')` binary(1) NOT NULL default '',
- `COALESCE(1.1,'1')` binary(3) NOT NULL default '',
- `COALESCE('a' COLLATE latin1_bin,'b')` char(1) character set latin1 collate latin1_bin NOT NULL default ''
+ `COALESCE(1.0)` decimal(2,1) NOT NULL default '0.0',
+ `COALESCE('a')` varchar(1) NOT NULL default '',
+ `COALESCE(1,1.0)` decimal(2,1) NOT NULL default '0.0',
+ `COALESCE(1,'1')` varbinary(1) NOT NULL default '',
+ `COALESCE(1.1,'1')` varbinary(4) NOT NULL default '',
+ `COALESCE('a' COLLATE latin1_bin,'b')` varchar(1) character set latin1 collate latin1_bin NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT 'case+union+test'
@@ -177,3 +183,20 @@ from t1 where b=3 group by b;
min(a) min(case when 1=1 then a else NULL end) min(case when 1!=1 then NULL else a end)
2 2 2
drop table t1;
+CREATE TABLE t1 (EMPNUM INT);
+INSERT INTO t1 VALUES (0), (2);
+CREATE TABLE t2 (EMPNUM DECIMAL (4, 2));
+INSERT INTO t2 VALUES (0.0), (9.0);
+SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
+t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
+FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
+CEMPNUM EMPMUM1 EMPNUM2
+0.00 0 0.00
+2.00 2 NULL
+SELECT IFNULL(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
+t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
+FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
+CEMPNUM EMPMUM1 EMPNUM2
+0.00 0 0.00
+2.00 2 NULL
+DROP TABLE t1,t2;
diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result
index f6f46bd4079..524ff48d69e 100644
--- a/mysql-test/r/cast.result
+++ b/mysql-test/r/cast.result
@@ -4,6 +4,11 @@ CAST(1-2 AS UNSIGNED)
select CAST(CAST(1-2 AS UNSIGNED) AS SIGNED INTEGER);
CAST(CAST(1-2 AS UNSIGNED) AS SIGNED INTEGER)
-1
+select CAST('10 ' as unsigned integer);
+CAST('10 ' as unsigned integer)
+10
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: '10 '
select cast(-5 as unsigned) | 1, cast(-5 as unsigned) & -1;
cast(-5 as unsigned) | 1 cast(-5 as unsigned) & -1
18446744073709551611 18446744073709551611
@@ -39,6 +44,15 @@ cast("1:2:3" as TIME)
select CONVERT("2004-01-22 21:45:33",DATE);
CONVERT("2004-01-22 21:45:33",DATE)
2004-01-22
+select 10+'10';
+10+'10'
+20
+select 10.0+'10';
+10.0+'10'
+20
+select 10E+0+'10';
+10E+0+'10'
+20
select CONVERT(DATE "2004-01-22 21:45:33" USING latin1);
CONVERT(DATE "2004-01-22 21:45:33" USING latin1)
2004-01-22 21:45:33
@@ -48,12 +62,18 @@ CONVERT(DATE "2004-01-22 21:45:33",CHAR)
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
CONVERT(DATE "2004-01-22 21:45:33",CHAR(4))
2004
+Warnings:
+Warning 1292 Truncated incorrect CHAR(4) value: '2004-01-22 21:45:33'
select CONVERT(DATE "2004-01-22 21:45:33",BINARY(4));
CONVERT(DATE "2004-01-22 21:45:33",BINARY(4))
2004
+Warnings:
+Warning 1292 Truncated incorrect BINARY(4) value: '2004-01-22 21:45:33'
select CAST(DATE "2004-01-22 21:45:33" AS BINARY(4));
CAST(DATE "2004-01-22 21:45:33" AS BINARY(4))
2004
+Warnings:
+Warning 1292 Truncated incorrect BINARY(4) value: '2004-01-22 21:45:33'
select CAST(0xb3 as signed);
CAST(0xb3 as signed)
179
@@ -66,6 +86,31 @@ CAST(0xffffffffffffffff as unsigned)
select CAST(0xfffffffffffffffe as signed);
CAST(0xfffffffffffffffe as signed)
-2
+select cast('-10a' as signed integer);
+cast('-10a' as signed integer)
+-10
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: '-10a'
+select cast('a10' as unsigned integer);
+cast('a10' as unsigned integer)
+0
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: 'a10'
+select 10+'a';
+10+'a'
+10
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'a'
+select 10.0+cast('a' as decimal);
+10.0+cast('a' as decimal)
+10.0
+Warnings:
+Warning 1292 Truncated incorrect DECIMAL value: 'a'
+select 10E+0+'a';
+10E+0+'a'
+10
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'a'
select cast('18446744073709551616' as unsigned);
cast('18446744073709551616' as unsigned)
18446744073709551615
@@ -112,7 +157,7 @@ create table t1 select cast(_koi8r'ÔÅÓÔ' as char character set cp1251) as t;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `t` char(4) character set cp1251 NOT NULL default ''
+ `t` varchar(4) character set cp1251 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
select
@@ -120,26 +165,37 @@ cast(_latin1'ab' AS char) as c1,
cast(_latin1'a ' AS char) as c2,
cast(_latin1'abc' AS char(2)) as c3,
cast(_latin1'a ' AS char(2)) as c4,
-cast(_latin1'a' AS char(2)) as c5;
+hex(cast(_latin1'a' AS char(2))) as c5;
c1 c2 c3 c4 c5
-ab a ab a a
+ab a ab a 6100
+Warnings:
+Warning 1292 Truncated incorrect BINARY(2) value: 'abc'
+Warning 1292 Truncated incorrect BINARY(2) value: 'a '
+select cast(1000 as CHAR(3));
+cast(1000 as CHAR(3))
+100
+Warnings:
+Warning 1292 Truncated incorrect BINARY(3) value: '1000'
create table t1 select
cast(_latin1'ab' AS char) as c1,
cast(_latin1'a ' AS char) as c2,
cast(_latin1'abc' AS char(2)) as c3,
cast(_latin1'a ' AS char(2)) as c4,
cast(_latin1'a' AS char(2)) as c5;
-select * from t1;
-c1 c2 c3 c4 c5
-ab a ab a a
+Warnings:
+Warning 1292 Truncated incorrect BINARY(2) value: 'abc'
+Warning 1292 Truncated incorrect BINARY(2) value: 'a '
+select c1,c2,c3,c4,hex(c5) from t1;
+c1 c2 c3 c4 hex(c5)
+ab a ab a 6100
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` binary(2) NOT NULL default '',
- `c2` binary(2) NOT NULL default '',
- `c3` binary(2) NOT NULL default '',
- `c4` binary(2) NOT NULL default '',
- `c5` binary(2) NOT NULL default ''
+ `c1` varbinary(2) NOT NULL default '',
+ `c2` varbinary(2) NOT NULL default '',
+ `c3` varbinary(2) NOT NULL default '',
+ `c4` varbinary(2) NOT NULL default '',
+ `c5` varbinary(2) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
select
@@ -150,26 +206,32 @@ cast(_koi8r'Æ ' AS nchar(2)) as c4,
cast(_koi8r'Æ' AS nchar(2)) as c5;
c1 c2 c3 c4 c5
фг ф фг ф ф
+Warnings:
+Warning 1292 Truncated incorrect CHAR(4) value: 'фгх'
+Warning 1292 Truncated incorrect CHAR(3) value: 'Ñ„ '
create table t1 select
cast(_koi8r'ÆÇ' AS nchar) as c1,
cast(_koi8r'Æ ' AS nchar) as c2,
cast(_koi8r'ÆÇÈ' AS nchar(2)) as c3,
cast(_koi8r'Æ ' AS nchar(2)) as c4,
cast(_koi8r'Æ' AS nchar(2)) as c5;
+Warnings:
+Warning 1292 Truncated incorrect CHAR(4) value: 'фгх'
+Warning 1292 Truncated incorrect CHAR(3) value: 'Ñ„ '
select * from t1;
c1 c2 c3 c4 c5
-фг ф фг ф ф
+фг ф фг ф ф
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` char(2) character set utf8 NOT NULL default '',
- `c2` char(2) character set utf8 NOT NULL default '',
- `c3` char(2) character set utf8 NOT NULL default '',
- `c4` char(2) character set utf8 NOT NULL default '',
- `c5` char(2) character set utf8 NOT NULL default ''
+ `c1` varchar(2) character set utf8 NOT NULL default '',
+ `c2` varchar(2) character set utf8 NOT NULL default '',
+ `c3` varchar(2) character set utf8 NOT NULL default '',
+ `c4` varchar(2) character set utf8 NOT NULL default '',
+ `c5` varchar(2) character set utf8 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
-create table t1 (a binary(10), b char(10) character set koi8r);
+create table t1 (a binary(4), b char(4) character set koi8r);
insert into t1 values (_binary'ÔÅÓÔ',_binary'ÔÅÓÔ');
select a,b,cast(a as char character set cp1251),cast(b as binary) from t1;
a b cast(a as char character set cp1251) cast(b as binary)
@@ -211,6 +273,10 @@ a CAST(a AS CHAR(3))
aac aac
aab aab
aaa aaa
+Warnings:
+Warning 1292 Truncated incorrect BINARY(2) value: 'aaa'
+Warning 1292 Truncated incorrect BINARY(2) value: 'aab'
+Warning 1292 Truncated incorrect BINARY(2) value: 'aac'
SELECT a, CAST(a AS UNSIGNED) FROM t1 ORDER BY CAST(a AS CHAR) ;
a CAST(a AS UNSIGNED)
aaa 3
@@ -221,6 +287,10 @@ a CAST(a AS CHAR(2))
aaa aa
aab aa
aac aa
+Warnings:
+Warning 1292 Truncated incorrect BINARY(2) value: 'aaa'
+Warning 1292 Truncated incorrect BINARY(2) value: 'aab'
+Warning 1292 Truncated incorrect BINARY(2) value: 'aac'
DROP TABLE t1;
select date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour);
date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour)
@@ -264,9 +334,6 @@ cast(repeat('1',20) as signed)
-7335632962598440505
Warnings:
Warning 1105 Cast to signed converted positive out-of-range integer to it's negative complement
-select cast(19999999999999999999 as unsigned);
-cast(19999999999999999999 as unsigned)
-18446744073709551615
select cast(1.0e+300 as signed int);
cast(1.0e+300 as signed int)
9223372036854775807
@@ -277,6 +344,9 @@ SELECT f1 AS double_val, CAST(f1 AS SIGNED INT) AS cast_val FROM t1;
double_val cast_val
-1e+30 -9223372036854775808
1e+30 9223372036854775807
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: '-1e+30'
+Warning 1292 Truncated incorrect INTEGER value: '1e+30'
DROP TABLE t1;
select isnull(date(NULL)), isnull(cast(NULL as DATE));
isnull(date(NULL)) isnull(cast(NULL as DATE))
@@ -288,3 +358,60 @@ SELECT CAST(cast('01-01-01' as date) AS SIGNED);
CAST(cast('01-01-01' as date) AS SIGNED)
20010101
End of 4.1 tests
+select cast('1.2' as decimal(3,2));
+cast('1.2' as decimal(3,2))
+1.20
+select 1e18 * cast('1.2' as decimal(3,2));
+1e18 * cast('1.2' as decimal(3,2))
+1.2e+18
+select cast(cast('1.2' as decimal(3,2)) as signed);
+cast(cast('1.2' as decimal(3,2)) as signed)
+1
+set @v1=1e18;
+select cast(@v1 as decimal(22, 2));
+cast(@v1 as decimal(22, 2))
+1000000000000000000.00
+select cast(-1e18 as decimal(22,2));
+cast(-1e18 as decimal(22,2))
+-1000000000000000000.00
+create table t1(s1 time);
+insert into t1 values ('11:11:11');
+select cast(s1 as decimal(7,2)) from t1;
+cast(s1 as decimal(7,2))
+99999.99
+Warnings:
+Error 1264 Out of range value adjusted for column 'cast(s1 as decimal(7,2))' at row 1
+drop table t1;
+CREATE TABLE t1 (v varchar(10), tt tinytext, t text,
+mt mediumtext, lt longtext);
+INSERT INTO t1 VALUES ('1.01', '2.02', '3.03', '4.04', '5.05');
+SELECT CAST(v AS DECIMAL), CAST(tt AS DECIMAL), CAST(t AS DECIMAL),
+CAST(mt AS DECIMAL), CAST(lt AS DECIMAL) from t1;
+CAST(v AS DECIMAL) CAST(tt AS DECIMAL) CAST(t AS DECIMAL) CAST(mt AS DECIMAL) CAST(lt AS DECIMAL)
+1 2 3 4 5
+DROP TABLE t1;
+select cast(NULL as decimal(6)) as t1;
+t1
+NULL
+set names latin1;
+select hex(cast('a' as char(2) binary));
+hex(cast('a' as char(2) binary))
+61
+select hex(cast('a' as binary(2)));
+hex(cast('a' as binary(2)))
+6100
+select hex(cast('a' as char(2) binary));
+hex(cast('a' as char(2) binary))
+61
+CREATE TABLE t1 (d1 datetime);
+INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL),
+('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00');
+SELECT cast(date(d1) as signed) FROM t1;
+cast(date(d1) as signed)
+20070719
+NULL
+20070719
+NULL
+20070719
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/check.result b/mysql-test/r/check.result
index 26dbc9e345c..03219d0977e 100644
--- a/mysql-test/r/check.result
+++ b/mysql-test/r/check.result
@@ -5,3 +5,20 @@ insert into t1 values (200000);
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
+Create table t1(f1 int);
+Create table t2(f1 int);
+Create view v1 as Select * from t1;
+Check Table v1,t2;
+Table Op Msg_type Msg_text
+test.v1 check status OK
+test.t2 check status OK
+drop view v1;
+drop table t1, t2;
+CREATE TEMPORARY TABLE t1(a INT);
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+REPAIR TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+DROP TABLE t1;
diff --git a/mysql-test/r/client_xml.result b/mysql-test/r/client_xml.result
new file mode 100644
index 00000000000..ed5e8f2c1b8
--- /dev/null
+++ b/mysql-test/r/client_xml.result
@@ -0,0 +1,88 @@
+create table t1 (
+`a&b` int,
+`a<b` int,
+`a>b` text
+);
+insert into t1 values (1, 2, 'a&b a<b a>b');
+<?xml version="1.0"?>
+
+<resultset statement="select * from t1
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <row>
+ <field name="a&amp;b">1</field>
+ <field name="a&lt;b">2</field>
+ <field name="a&gt;b">a&amp;b a&lt;b a&gt;b</field>
+ </row>
+</resultset>
+<?xml version="1.0"?>
+<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<database name="test">
+ <table_structure name="t1">
+ <field Field="a&amp;b" Type="int(11)" Null="YES" Key="" Extra="" />
+ <field Field="a&lt;b" Type="int(11)" Null="YES" Key="" Extra="" />
+ <field Field="a&gt;b" Type="text" Null="YES" Key="" Extra="" />
+ </table_structure>
+ <table_data name="t1">
+ <row>
+ <field name="a&amp;b">1</field>
+ <field name="a&lt;b">2</field>
+ <field name="a&gt;b">a&amp;b a&lt;b a&gt;b</field>
+ </row>
+ </table_data>
+</database>
+</mysqldump>
+<?xml version="1.0"?>
+
+<resultset statement="select count(*) from t1
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <row>
+ <field name="count(*)">1</field>
+ </row>
+</resultset>
+<?xml version="1.0"?>
+
+<resultset statement="select 1 &lt; 2 from dual
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <row>
+ <field name="1 &lt; 2">1</field>
+ </row>
+</resultset>
+<?xml version="1.0"?>
+
+<resultset statement="select 1 &gt; 2 from dual
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <row>
+ <field name="1 &gt; 2">0</field>
+ </row>
+</resultset>
+<?xml version="1.0"?>
+
+<resultset statement="select 1 &amp; 3 from dual
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <row>
+ <field name="1 &amp; 3">1</field>
+ </row>
+</resultset>
+<?xml version="1.0"?>
+
+<resultset statement="select null from dual
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <row>
+ <field name="NULL" xsi:nil="true" />
+ </row>
+</resultset>
+<?xml version="1.0"?>
+
+<resultset statement="select 1 limit 0
+" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></resultset>
+--------------
+select 1 limit 0
+--------------
+
+<?xml version="1.0"?>
+
+<resultset statement="select 1 limit 0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></resultset>
+Empty set
+
+Bye
+drop table t1;
diff --git a/mysql-test/r/comments.result b/mysql-test/r/comments.result
index a9106ce0538..1040c3fc8e9 100644
--- a/mysql-test/r/comments.result
+++ b/mysql-test/r/comments.result
@@ -26,3 +26,18 @@ select 1 # The rest of the row will be ignored
1
1
/* line with only comment */;
+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/compare.result b/mysql-test/r/compare.result
index 6f667aabac0..c141b255716 100644
--- a/mysql-test/r/compare.result
+++ b/mysql-test/r/compare.result
@@ -42,3 +42,14 @@ CHAR(31) = '' '' = CHAR(31)
SELECT CHAR(30) = '', '' = CHAR(30);
CHAR(30) = '' '' = CHAR(30)
0 0
+create table t1 (a tinyint(1),b binary(1));
+insert into t1 values (0x01,0x01);
+select * from t1 where a=b;
+a b
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+select * from t1 where a=b and b=0x01;
+a b
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+drop table if exists t1;
diff --git a/mysql-test/r/compress.result b/mysql-test/r/compress.result
new file mode 100644
index 00000000000..cce66fd84ef
--- /dev/null
+++ b/mysql-test/r/compress.result
@@ -0,0 +1,2159 @@
+SHOW STATUS LIKE 'Compression';
+Variable_name Value
+Compression ON
+drop table if exists t1,t2,t3,t4;
+CREATE TABLE t1 (
+Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
+Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
+);
+INSERT INTO t1 VALUES (9410,9412);
+select period from t1;
+period
+9410
+select * from t1;
+Period Varor_period
+9410 9412
+select t1.* from t1;
+Period Varor_period
+9410 9412
+CREATE TABLE t2 (
+auto int not null auto_increment,
+fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
+companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
+fld3 char(30) DEFAULT '' NOT NULL,
+fld4 char(35) DEFAULT '' NOT NULL,
+fld5 char(35) DEFAULT '' NOT NULL,
+fld6 char(4) DEFAULT '' NOT NULL,
+UNIQUE fld1 (fld1),
+KEY fld3 (fld3),
+PRIMARY KEY (auto)
+);
+select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
+fld3
+imaginable
+select fld3 from t2 where fld3 like "%cultivation" ;
+fld3
+cultivation
+select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3,companynr from t2 where companynr = 58 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3 from t2 order by fld3 desc limit 10;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select fld3 from t2 order by fld3 desc limit 5;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+select fld3 from t2 order by fld3 desc limit 5,5;
+fld3
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select t2.fld3 from t2 where fld3 = 'honeysuckle';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'h%le';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
+fld3
+select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
+fld3
+explain select t2.fld3 from t2 where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld1) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3,not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+explain select fld3 from t2 use index (not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+fld3
+honeysuckle
+honoring
+explain select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld3 fld3 30 NULL 2 Using where; Using index
+select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
+fld1 fld3
+148504 Colombo
+068305 Colombo
+000000 nondecreasing
+select fld1,fld3 from t2 where companynr = 37 and fld3 = 'appendixes';
+fld1 fld3
+232605 appendixes
+1232605 appendixes
+1232606 appendixes
+1232607 appendixes
+1232608 appendixes
+1232609 appendixes
+select fld1 from t2 where fld1=250501 or fld1="250502";
+fld1
+250501
+250502
+explain select fld1 from t2 where fld1=250501 or fld1="250502";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 2 Using where; Using index
+select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+fld1
+250501
+250502
+250505
+250601
+explain select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
+select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
+fld1 fld3
+218401 faithful
+018007 fanatic
+228311 fated
+018017 featherweight
+218022 feed
+088303 feminine
+058004 Fenton
+038017 fetched
+018054 fetters
+208101 fiftieth
+238007 filial
+013606 fingerings
+218008 finishers
+038205 firearm
+188505 fitting
+202301 Fitzpatrick
+238008 fixedly
+012001 flanking
+018103 flint
+018104 flopping
+188007 flurried
+013602 foldout
+226205 foothill
+232102 forgivably
+228306 forthcoming
+186002 freakish
+208113 freest
+231315 freezes
+036002 funereal
+226209 furnishings
+198006 furthermore
+select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
+fld3
+select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
+fld3
+Chantilly
+select fld1,fld3 from t2 where fld1 like "25050%";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select fld1,fld3 from t2 where fld1 like "25050_";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select distinct companynr from t2;
+companynr
+00
+37
+36
+50
+58
+29
+40
+53
+65
+41
+34
+68
+select distinct companynr from t2 order by companynr;
+companynr
+00
+29
+34
+36
+37
+40
+41
+50
+53
+58
+65
+68
+select distinct companynr from t2 order by companynr desc;
+companynr
+68
+65
+58
+53
+50
+41
+40
+37
+36
+34
+29
+00
+select distinct t2.fld3,period from t2,t1 where companynr=37 and fld3 like "O%";
+fld3 period
+obliterates 9410
+offload 9410
+opaquely 9410
+organizer 9410
+overestimating 9410
+overlay 9410
+select distinct fld3 from t2 where companynr = 34 order by fld3;
+fld3
+absentee
+accessed
+ahead
+alphabetic
+Asiaticizations
+attitude
+aye
+bankruptcies
+belays
+Blythe
+bomb
+boulevard
+bulldozes
+cannot
+caressing
+charcoal
+checksumming
+chess
+clubroom
+colorful
+cosy
+creator
+crying
+Darius
+diffusing
+duality
+Eiffel
+Epiphany
+Ernestine
+explorers
+exterminated
+famine
+forked
+Gershwins
+heaving
+Hodges
+Iraqis
+Italianization
+Lagos
+landslide
+libretto
+Majorca
+mastering
+narrowed
+occurred
+offerers
+Palestine
+Peruvianizes
+pharmaceutic
+poisoning
+population
+Pygmalion
+rats
+realest
+recording
+regimented
+retransmitting
+reviver
+rouses
+scars
+sicker
+sleepwalk
+stopped
+sugars
+translatable
+uncles
+unexpected
+uprisings
+versatility
+vest
+select distinct fld3 from t2 limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct fld3 from t2 having fld3 like "A%" limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%";
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+Adl
+adm
+Ado
+ads
+adv
+aer
+aff
+afi
+afl
+afo
+agi
+ahe
+aim
+air
+Ald
+alg
+ali
+all
+alp
+alr
+ama
+ame
+amm
+ana
+and
+ane
+Ang
+ani
+Ann
+Ant
+api
+app
+aqu
+Ara
+arc
+Arm
+arr
+Art
+Asi
+ask
+asp
+ass
+ast
+att
+aud
+Aug
+aut
+ave
+avo
+awe
+aye
+Azt
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" order by a limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%" limit 10;
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+create table t3 (
+period int not null,
+name char(32) not null,
+companynr int not null,
+price double(11,0),
+price2 double(11,0),
+key (period),
+key (name)
+);
+create temporary table tmp engine = myisam select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+alter table t3 add t2nr int not null auto_increment primary key first;
+drop table tmp;
+SET SQL_BIG_TABLES=1;
+select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10;
+namn
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+SET SQL_BIG_TABLES=0;
+select distinct concat(fld3," ",fld3) from t2,t3 where t2.fld1=t3.t2nr order by fld3 limit 10;
+concat(fld3," ",fld3)
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+select distinct fld5 from t2 limit 10;
+fld5
+neat
+Steinberg
+jarring
+tinily
+balled
+persist
+attainments
+fanatic
+measures
+rightfulness
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=1;
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=0;
+select distinct fld3,repeat("a",length(fld3)),count(*) from t2 group by companynr,fld3 limit 100,10;
+fld3 repeat("a",length(fld3)) count(*)
+circus aaaaaa 1
+cited aaaaa 1
+Colombo aaaaaaa 1
+congresswoman aaaaaaaaaaaaa 1
+contrition aaaaaaaaaa 1
+corny aaaaa 1
+cultivation aaaaaaaaaaa 1
+definiteness aaaaaaaaaaaa 1
+demultiplex aaaaaaaaaaa 1
+disappointing aaaaaaaaaaaaa 1
+select distinct companynr,rtrim(space(512+companynr)) from t3 order by 1,2;
+companynr rtrim(space(512+companynr))
+37
+78
+101
+154
+311
+447
+512
+select distinct fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by fld3;
+fld3
+explain select t3.t2nr,fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by t3.t2nr,fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL fld1 NULL NULL NULL 1199 Using where; Using temporary; Using filesort
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.fld1 1 Using where; Using index
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index period period 4 NULL 41810
+1 SIMPLE t1 ref period period 4 test.t3.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index period period 4 NULL 41810
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+select period from t1;
+period
+9410
+select period from t1 where period=1900;
+period
+select fld3,period from t1,t2 where fld1 = 011401 order by period;
+fld3 period
+breaking 9410
+select fld3,period from t2,t3 where t2.fld1 = 011401 and t2.fld1=t3.t2nr and t3.period=1001;
+fld3 period
+breaking 1001
+explain select fld3,period from t2,t3 where t2.fld1 = 011401 and t3.t2nr=t2.fld1 and 1001 = t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const fld1 fld1 4 const 1
+1 SIMPLE t3 const PRIMARY,period PRIMARY 4 const 1
+select fld3,period from t2,t1 where companynr*10 = 37*10;
+fld3 period
+breaking 9410
+Romans 9410
+intercepted 9410
+bewilderingly 9410
+astound 9410
+admonishing 9410
+sumac 9410
+flanking 9410
+combed 9410
+subjective 9410
+scatterbrain 9410
+Eulerian 9410
+Kane 9410
+overlay 9410
+perturb 9410
+goblins 9410
+annihilates 9410
+Wotan 9410
+snatching 9410
+concludes 9410
+laterally 9410
+yelped 9410
+grazing 9410
+Baird 9410
+celery 9410
+misunderstander 9410
+handgun 9410
+foldout 9410
+mystic 9410
+succumbed 9410
+Nabisco 9410
+fingerings 9410
+aging 9410
+afield 9410
+ammonium 9410
+boat 9410
+intelligibility 9410
+Augustine 9410
+teethe 9410
+dreaded 9410
+scholastics 9410
+audiology 9410
+wallet 9410
+parters 9410
+eschew 9410
+quitter 9410
+neat 9410
+Steinberg 9410
+jarring 9410
+tinily 9410
+balled 9410
+persist 9410
+attainments 9410
+fanatic 9410
+measures 9410
+rightfulness 9410
+capably 9410
+impulsive 9410
+starlet 9410
+terminators 9410
+untying 9410
+announces 9410
+featherweight 9410
+pessimist 9410
+daughter 9410
+decliner 9410
+lawgiver 9410
+stated 9410
+readable 9410
+attrition 9410
+cascade 9410
+motors 9410
+interrogate 9410
+pests 9410
+stairway 9410
+dopers 9410
+testicle 9410
+Parsifal 9410
+leavings 9410
+postulation 9410
+squeaking 9410
+contrasted 9410
+leftover 9410
+whiteners 9410
+erases 9410
+Punjab 9410
+Merritt 9410
+Quixotism 9410
+sweetish 9410
+dogging 9410
+scornfully 9410
+bellow 9410
+bills 9410
+cupboard 9410
+sureties 9410
+puddings 9410
+fetters 9410
+bivalves 9410
+incurring 9410
+Adolph 9410
+pithed 9410
+Miles 9410
+trimmings 9410
+tragedies 9410
+skulking 9410
+flint 9410
+flopping 9410
+relaxing 9410
+offload 9410
+suites 9410
+lists 9410
+animized 9410
+multilayer 9410
+standardizes 9410
+Judas 9410
+vacuuming 9410
+dentally 9410
+humanness 9410
+inch 9410
+Weissmuller 9410
+irresponsibly 9410
+luckily 9410
+culled 9410
+medical 9410
+bloodbath 9410
+subschema 9410
+animals 9410
+Micronesia 9410
+repetitions 9410
+Antares 9410
+ventilate 9410
+pityingly 9410
+interdependent 9410
+Graves 9410
+neonatal 9410
+chafe 9410
+honoring 9410
+realtor 9410
+elite 9410
+funereal 9410
+abrogating 9410
+sorters 9410
+Conley 9410
+lectured 9410
+Abraham 9410
+Hawaii 9410
+cage 9410
+hushes 9410
+Simla 9410
+reporters 9410
+Dutchman 9410
+descendants 9410
+groupings 9410
+dissociate 9410
+coexist 9410
+Beebe 9410
+Taoism 9410
+Connally 9410
+fetched 9410
+checkpoints 9410
+rusting 9410
+galling 9410
+obliterates 9410
+traitor 9410
+resumes 9410
+analyzable 9410
+terminator 9410
+gritty 9410
+firearm 9410
+minima 9410
+Selfridge 9410
+disable 9410
+witchcraft 9410
+betroth 9410
+Manhattanize 9410
+imprint 9410
+peeked 9410
+swelling 9410
+interrelationships 9410
+riser 9410
+Gandhian 9410
+peacock 9410
+bee 9410
+kanji 9410
+dental 9410
+scarf 9410
+chasm 9410
+insolence 9410
+syndicate 9410
+alike 9410
+imperial 9410
+convulsion 9410
+railway 9410
+validate 9410
+normalizes 9410
+comprehensive 9410
+chewing 9410
+denizen 9410
+schemer 9410
+chronicle 9410
+Kline 9410
+Anatole 9410
+partridges 9410
+brunch 9410
+recruited 9410
+dimensions 9410
+Chicana 9410
+announced 9410
+praised 9410
+employing 9410
+linear 9410
+quagmire 9410
+western 9410
+relishing 9410
+serving 9410
+scheduling 9410
+lore 9410
+eventful 9410
+arteriole 9410
+disentangle 9410
+cured 9410
+Fenton 9410
+avoidable 9410
+drains 9410
+detectably 9410
+husky 9410
+impelling 9410
+undoes 9410
+evened 9410
+squeezes 9410
+destroyer 9410
+rudeness 9410
+beaner 9410
+boorish 9410
+Everhart 9410
+encompass 9410
+mushrooms 9410
+Alison 9410
+externally 9410
+pellagra 9410
+cult 9410
+creek 9410
+Huffman 9410
+Majorca 9410
+governing 9410
+gadfly 9410
+reassigned 9410
+intentness 9410
+craziness 9410
+psychic 9410
+squabbled 9410
+burlesque 9410
+capped 9410
+extracted 9410
+DiMaggio 9410
+exclamation 9410
+subdirectory 9410
+Gothicism 9410
+feminine 9410
+metaphysically 9410
+sanding 9410
+Miltonism 9410
+freakish 9410
+index 9410
+straight 9410
+flurried 9410
+denotative 9410
+coming 9410
+commencements 9410
+gentleman 9410
+gifted 9410
+Shanghais 9410
+sportswriting 9410
+sloping 9410
+navies 9410
+leaflet 9410
+shooter 9410
+Joplin 9410
+babies 9410
+assails 9410
+admiring 9410
+swaying 9410
+Goldstine 9410
+fitting 9410
+Norwalk 9410
+analogy 9410
+deludes 9410
+cokes 9410
+Clayton 9410
+exhausts 9410
+causality 9410
+sating 9410
+icon 9410
+throttles 9410
+communicants 9410
+dehydrate 9410
+priceless 9410
+publicly 9410
+incidentals 9410
+commonplace 9410
+mumbles 9410
+furthermore 9410
+cautioned 9410
+parametrized 9410
+registration 9410
+sadly 9410
+positioning 9410
+babysitting 9410
+eternal 9410
+hoarder 9410
+congregates 9410
+rains 9410
+workers 9410
+sags 9410
+unplug 9410
+garage 9410
+boulder 9410
+specifics 9410
+Teresa 9410
+Winsett 9410
+convenient 9410
+buckboards 9410
+amenities 9410
+resplendent 9410
+sews 9410
+participated 9410
+Simon 9410
+certificates 9410
+Fitzpatrick 9410
+Evanston 9410
+misted 9410
+textures 9410
+save 9410
+count 9410
+rightful 9410
+chaperone 9410
+Lizzy 9410
+clenched 9410
+effortlessly 9410
+accessed 9410
+beaters 9410
+Hornblower 9410
+vests 9410
+indulgences 9410
+infallibly 9410
+unwilling 9410
+excrete 9410
+spools 9410
+crunches 9410
+overestimating 9410
+ineffective 9410
+humiliation 9410
+sophomore 9410
+star 9410
+rifles 9410
+dialysis 9410
+arriving 9410
+indulge 9410
+clockers 9410
+languages 9410
+Antarctica 9410
+percentage 9410
+ceiling 9410
+specification 9410
+regimented 9410
+ciphers 9410
+pictures 9410
+serpents 9410
+allot 9410
+realized 9410
+mayoral 9410
+opaquely 9410
+hostess 9410
+fiftieth 9410
+incorrectly 9410
+decomposition 9410
+stranglings 9410
+mixture 9410
+electroencephalography 9410
+similarities 9410
+charges 9410
+freest 9410
+Greenberg 9410
+tinting 9410
+expelled 9410
+warm 9410
+smoothed 9410
+deductions 9410
+Romano 9410
+bitterroot 9410
+corset 9410
+securing 9410
+environing 9410
+cute 9410
+Crays 9410
+heiress 9410
+inform 9410
+avenge 9410
+universals 9410
+Kinsey 9410
+ravines 9410
+bestseller 9410
+equilibrium 9410
+extents 9410
+relatively 9410
+pressure 9410
+critiques 9410
+befouled 9410
+rightfully 9410
+mechanizing 9410
+Latinizes 9410
+timesharing 9410
+Aden 9410
+embassies 9410
+males 9410
+shapelessly 9410
+mastering 9410
+Newtonian 9410
+finishers 9410
+abates 9410
+teem 9410
+kiting 9410
+stodgy 9410
+feed 9410
+guitars 9410
+airships 9410
+store 9410
+denounces 9410
+Pyle 9410
+Saxony 9410
+serializations 9410
+Peruvian 9410
+taxonomically 9410
+kingdom 9410
+stint 9410
+Sault 9410
+faithful 9410
+Ganymede 9410
+tidiness 9410
+gainful 9410
+contrary 9410
+Tipperary 9410
+tropics 9410
+theorizers 9410
+renew 9410
+already 9410
+terminal 9410
+Hegelian 9410
+hypothesizer 9410
+warningly 9410
+journalizing 9410
+nested 9410
+Lars 9410
+saplings 9410
+foothill 9410
+labeled 9410
+imperiously 9410
+reporters 9410
+furnishings 9410
+precipitable 9410
+discounts 9410
+excises 9410
+Stalin 9410
+despot 9410
+ripeness 9410
+Arabia 9410
+unruly 9410
+mournfulness 9410
+boom 9410
+slaughter 9410
+Sabine 9410
+handy 9410
+rural 9410
+organizer 9410
+shipyard 9410
+civics 9410
+inaccuracy 9410
+rules 9410
+juveniles 9410
+comprised 9410
+investigations 9410
+stabilizes 9410
+seminaries 9410
+Hunter 9410
+sporty 9410
+test 9410
+weasels 9410
+CERN 9410
+tempering 9410
+afore 9410
+Galatean 9410
+techniques 9410
+error 9410
+veranda 9410
+severely 9410
+Cassites 9410
+forthcoming 9410
+guides 9410
+vanish 9410
+lied 9410
+sawtooth 9410
+fated 9410
+gradually 9410
+widens 9410
+preclude 9410
+evenhandedly 9410
+percentage 9410
+disobedience 9410
+humility 9410
+gleaning 9410
+petted 9410
+bloater 9410
+minion 9410
+marginal 9410
+apiary 9410
+measures 9410
+precaution 9410
+repelled 9410
+primary 9410
+coverings 9410
+Artemia 9410
+navigate 9410
+spatial 9410
+Gurkha 9410
+meanwhile 9410
+Melinda 9410
+Butterfield 9410
+Aldrich 9410
+previewing 9410
+glut 9410
+unaffected 9410
+inmate 9410
+mineral 9410
+impending 9410
+meditation 9410
+ideas 9410
+miniaturizes 9410
+lewdly 9410
+title 9410
+youthfulness 9410
+creak 9410
+Chippewa 9410
+clamored 9410
+freezes 9410
+forgivably 9410
+reduce 9410
+McGovern 9410
+Nazis 9410
+epistle 9410
+socializes 9410
+conceptions 9410
+Kevin 9410
+uncovering 9410
+chews 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+raining 9410
+infest 9410
+compartment 9410
+minting 9410
+ducks 9410
+roped 9410
+waltz 9410
+Lillian 9410
+repressions 9410
+chillingly 9410
+noncritical 9410
+lithograph 9410
+spongers 9410
+parenthood 9410
+posed 9410
+instruments 9410
+filial 9410
+fixedly 9410
+relives 9410
+Pandora 9410
+watering 9410
+ungrateful 9410
+secures 9410
+poison 9410
+dusted 9410
+encompasses 9410
+presentation 9410
+Kantian 9410
+select fld3,period,price,price2 from t2,t3 where t2.fld1=t3.t2nr and period >= 1001 and period <= 1002 and t2.companynr = 37 order by fld3,period, price;
+fld3 period price price2
+admonishing 1002 28357832 8723648
+analyzable 1002 28357832 8723648
+annihilates 1001 5987435 234724
+Antares 1002 28357832 8723648
+astound 1001 5987435 234724
+audiology 1001 5987435 234724
+Augustine 1002 28357832 8723648
+Baird 1002 28357832 8723648
+bewilderingly 1001 5987435 234724
+breaking 1001 5987435 234724
+Conley 1001 5987435 234724
+dentally 1002 28357832 8723648
+dissociate 1002 28357832 8723648
+elite 1001 5987435 234724
+eschew 1001 5987435 234724
+Eulerian 1001 5987435 234724
+flanking 1001 5987435 234724
+foldout 1002 28357832 8723648
+funereal 1002 28357832 8723648
+galling 1002 28357832 8723648
+Graves 1001 5987435 234724
+grazing 1001 5987435 234724
+groupings 1001 5987435 234724
+handgun 1001 5987435 234724
+humility 1002 28357832 8723648
+impulsive 1002 28357832 8723648
+inch 1001 5987435 234724
+intelligibility 1001 5987435 234724
+jarring 1001 5987435 234724
+lawgiver 1001 5987435 234724
+lectured 1002 28357832 8723648
+Merritt 1002 28357832 8723648
+neonatal 1001 5987435 234724
+offload 1002 28357832 8723648
+parters 1002 28357832 8723648
+pityingly 1002 28357832 8723648
+puddings 1002 28357832 8723648
+Punjab 1001 5987435 234724
+quitter 1002 28357832 8723648
+realtor 1001 5987435 234724
+relaxing 1001 5987435 234724
+repetitions 1001 5987435 234724
+resumes 1001 5987435 234724
+Romans 1002 28357832 8723648
+rusting 1001 5987435 234724
+scholastics 1001 5987435 234724
+skulking 1002 28357832 8723648
+stated 1002 28357832 8723648
+suites 1002 28357832 8723648
+sureties 1001 5987435 234724
+testicle 1002 28357832 8723648
+tinily 1002 28357832 8723648
+tragedies 1001 5987435 234724
+trimmings 1001 5987435 234724
+vacuuming 1001 5987435 234724
+ventilate 1001 5987435 234724
+wallet 1001 5987435 234724
+Weissmuller 1002 28357832 8723648
+Wotan 1002 28357832 8723648
+select t2.fld1,fld3,period,price,price2 from t2,t3 where t2.fld1>= 18201 and t2.fld1 <= 18811 and t2.fld1=t3.t2nr and period = 1001 and t2.companynr = 37;
+fld1 fld3 period price price2
+018201 relaxing 1001 5987435 234724
+018601 vacuuming 1001 5987435 234724
+018801 inch 1001 5987435 234724
+018811 repetitions 1001 5987435 234724
+create table t4 (
+companynr tinyint(2) unsigned zerofill NOT NULL default '00',
+companyname char(30) NOT NULL default '',
+PRIMARY KEY (companynr),
+UNIQUE KEY companyname(companyname)
+) ENGINE=MyISAM MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
+select STRAIGHT_JOIN t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select SQL_SMALL_RESULT t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select * from t1,t1 t12;
+Period Varor_period Period Varor_period
+9410 9412 9410 9412
+select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
+fld1 fld1
+250501 250501
+250502 250501
+250503 250501
+250504 250501
+250505 250501
+250501 250502
+250502 250502
+250503 250502
+250504 250502
+250505 250502
+250501 250503
+250502 250503
+250503 250503
+250504 250503
+250505 250503
+250501 250504
+250502 250504
+250503 250504
+250504 250504
+250505 250504
+250501 250505
+250502 250505
+250503 250505
+250504 250505
+250505 250505
+insert into t2 (fld1, companynr) values (999999,99);
+select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+companynr companyname
+99 NULL
+select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
+count(*)
+1199
+explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+companynr companyname
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+count(*)
+1200
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+delete from t2 where fld1=999999;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+companynr companynr
+37 36
+41 40
+explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t2.fld1 = 38208 or t2.fld1 = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t3.t2nr = 38208 or t3.t2nr = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select period from t1 where (((period > 0) or period < 10000 or (period = 1900)) and (period=1900 and period <= 1901) or (period=1903 and (period=1903)) and period>=1902) or ((period=1904 or period=1905) or (period=1906 or period>1907)) or (period=1908 and period = 1909);
+period
+9410
+select period from t1 where ((period > 0 and period < 1) or (((period > 0 and period < 100) and (period > 10)) or (period > 10)) or (period > 0 and (period > 5 or period > 6)));
+period
+9410
+select a.fld1 from t2 as a,t2 b where ((a.fld1 = 250501 and a.fld1=b.fld1) or a.fld1=250502 or a.fld1=250503 or (a.fld1=250505 and a.fld1<=b.fld1 and b.fld1>=a.fld1)) and a.fld1=b.fld1;
+fld1
+250501
+250502
+250503
+250505
+select fld1 from t2 where fld1 in (250502,98005,98006,250503,250605,250606) and fld1 >=250502 and fld1 not in (250605,250606);
+fld1
+250502
+250503
+select fld1 from t2 where fld1 between 250502 and 250504;
+fld1
+250502
+250503
+250504
+select fld3 from t2 where (((fld3 like "_%L%" ) or (fld3 like "%ok%")) and ( fld3 like "L%" or fld3 like "G%")) and fld3 like "L%" ;
+fld3
+label
+labeled
+labeled
+landslide
+laterally
+leaflet
+lewdly
+Lillian
+luckily
+select count(*) from t1;
+count(*)
+1
+select companynr,count(*),sum(fld1) from t2 group by companynr;
+companynr count(*) sum(fld1)
+00 82 10355753
+29 95 14473298
+34 70 17788966
+36 215 22786296
+37 588 83602098
+40 37 6618386
+41 52 12816335
+50 11 1595438
+53 4 793210
+58 23 2254293
+65 10 2284055
+68 12 3097288
+select companynr,count(*) from t2 group by companynr order by companynr desc limit 5;
+companynr count(*)
+68 12
+65 10
+58 23
+53 4
+50 11
+select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+Warnings:
+Note 1003 select count(0) AS `count(*)`,min(`test`.`t2`.`fld4`) AS `min(fld4)`,max(`test`.`t2`.`fld4`) AS `max(fld4)`,sum(`test`.`t2`.`fld1`) AS `sum(fld1)`,avg(`test`.`t2`.`fld1`) AS `avg(fld1)`,std(`test`.`t2`.`fld1`) AS `std(fld1)`,variance(`test`.`t2`.`fld1`) AS `variance(fld1)` from `test`.`t2` where ((`test`.`t2`.`companynr` = 34) and (`test`.`t2`.`fld4` <> _latin1''))
+select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
+companynr count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+00 82 Anthony windmills 10355753 126289.6707 115550.9757 13352027981.7087
+29 95 abut wetness 14473298 152350.5053 8368.5480 70032594.9026
+34 70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+select companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select /*! SQL_SMALL_RESULT */ companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select companynr,count(price),sum(price),min(price),max(price),avg(price) from t3 group by companynr ;
+companynr count(price) sum(price) min(price) max(price) avg(price)
+37 12543 309394878010 5987435 39654943 24666736.6667
+78 8362 414611089292 726498 98439034 49582766.0000
+101 4181 3489454238 834598 834598 834598.0000
+154 4181 4112197254950 983543950 983543950 983543950.0000
+311 4181 979599938 234298 234298 234298.0000
+447 4181 9929180954 2374834 2374834 2374834.0000
+512 4181 3288532102 786542 786542 786542.0000
+select distinct mod(companynr,10) from t4 group by companynr;
+mod(companynr,10)
+0
+9
+4
+6
+7
+1
+3
+8
+5
+select distinct 1 from t4 group by companynr;
+1
+1
+select count(distinct fld1) from t2;
+count(distinct fld1)
+1199
+select companynr,count(distinct fld1) from t2 group by companynr;
+companynr count(distinct fld1)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(*) from t2 group by companynr;
+companynr count(*)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,1000))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,1000)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,200))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,200)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct floor(fld1/100)) from t2 group by companynr;
+companynr count(distinct floor(fld1/100))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select companynr,count(distinct concat(repeat(65,1000),floor(fld1/100))) from t2 group by companynr;
+companynr count(distinct concat(repeat(65,1000),floor(fld1/100)))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select sum(fld1),fld3 from t2 where fld3="Romans" group by fld1 limit 10;
+sum(fld1) fld3
+11402 Romans
+select name,count(*) from t3 where name='cloakroom' group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name='cloakroom' and price>10 group by name;
+name count(*)
+cloakroom 4181
+select count(*) from t3 where name='cloakroom' and price2=823742;
+count(*)
+4181
+select name,count(*) from t3 where name='cloakroom' and price2=823742 group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name >= "extramarital" and price <= 39654943 group by name;
+name count(*)
+extramarital 4181
+gazer 4181
+gems 4181
+Iranizes 4181
+spates 4181
+tucked 4181
+violinist 4181
+select t2.fld3,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld3 count(*)
+spates 4181
+select companynr|0,companyname from t4 group by 1;
+companynr|0 companyname
+0 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by t2.companynr order by companyname;
+companynr companyname count(*)
+29 company 1 95
+68 company 10 12
+50 company 11 11
+34 company 2 70
+36 company 3 215
+37 company 4 588
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+00 Unknown 82
+select t2.fld1,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld1 count(*)
+158402 4181
+select sum(Period)/count(*) from t1;
+sum(Period)/count(*)
+9410.0000
+select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
+companynr count sum diff func
+37 12543 309394878010 0.0000 464091
+78 8362 414611089292 0.0000 652236
+101 4181 3489454238 0.0000 422281
+154 4181 4112197254950 0.0000 643874
+311 4181 979599938 0.0000 1300291
+447 4181 9929180954 0.0000 1868907
+512 4181 3288532102 0.0000 2140672
+select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
+companynr avg
+154 983543950.0000
+select companynr,count(*) from t2 group by companynr order by 2 desc;
+companynr count(*)
+37 588
+36 215
+29 95
+00 82
+34 70
+41 52
+40 37
+58 23
+68 12
+50 11
+65 10
+53 4
+select companynr,count(*) from t2 where companynr > 40 group by companynr order by 2 desc;
+companynr count(*)
+41 52
+58 23
+68 12
+50 11
+65 10
+53 4
+select t2.fld4,t2.fld1,count(price),sum(price),min(price),max(price),avg(price) from t3,t2 where t3.companynr = 37 and t2.fld1 = t3.t2nr group by fld1,t2.fld4;
+fld4 fld1 count(price) sum(price) min(price) max(price) avg(price)
+teethe 000001 1 5987435 5987435 5987435 5987435.0000
+dreaded 011401 1 5987435 5987435 5987435 5987435.0000
+scholastics 011402 1 28357832 28357832 28357832 28357832.0000
+audiology 011403 1 39654943 39654943 39654943 39654943.0000
+wallet 011501 1 5987435 5987435 5987435 5987435.0000
+parters 011701 1 5987435 5987435 5987435 5987435.0000
+eschew 011702 1 28357832 28357832 28357832 28357832.0000
+quitter 011703 1 39654943 39654943 39654943 39654943.0000
+neat 012001 1 5987435 5987435 5987435 5987435.0000
+Steinberg 012003 1 39654943 39654943 39654943 39654943.0000
+balled 012301 1 5987435 5987435 5987435 5987435.0000
+persist 012302 1 28357832 28357832 28357832 28357832.0000
+attainments 012303 1 39654943 39654943 39654943 39654943.0000
+capably 012501 1 5987435 5987435 5987435 5987435.0000
+impulsive 012602 1 28357832 28357832 28357832 28357832.0000
+starlet 012603 1 39654943 39654943 39654943 39654943.0000
+featherweight 012701 1 5987435 5987435 5987435 5987435.0000
+pessimist 012702 1 28357832 28357832 28357832 28357832.0000
+daughter 012703 1 39654943 39654943 39654943 39654943.0000
+lawgiver 013601 1 5987435 5987435 5987435 5987435.0000
+stated 013602 1 28357832 28357832 28357832 28357832.0000
+readable 013603 1 39654943 39654943 39654943 39654943.0000
+testicle 013801 1 5987435 5987435 5987435 5987435.0000
+Parsifal 013802 1 28357832 28357832 28357832 28357832.0000
+leavings 013803 1 39654943 39654943 39654943 39654943.0000
+squeaking 013901 1 5987435 5987435 5987435 5987435.0000
+contrasted 016001 1 5987435 5987435 5987435 5987435.0000
+leftover 016201 1 5987435 5987435 5987435 5987435.0000
+whiteners 016202 1 28357832 28357832 28357832 28357832.0000
+erases 016301 1 5987435 5987435 5987435 5987435.0000
+Punjab 016302 1 28357832 28357832 28357832 28357832.0000
+Merritt 016303 1 39654943 39654943 39654943 39654943.0000
+sweetish 018001 1 5987435 5987435 5987435 5987435.0000
+dogging 018002 1 28357832 28357832 28357832 28357832.0000
+scornfully 018003 1 39654943 39654943 39654943 39654943.0000
+fetters 018012 1 28357832 28357832 28357832 28357832.0000
+bivalves 018013 1 39654943 39654943 39654943 39654943.0000
+skulking 018021 1 5987435 5987435 5987435 5987435.0000
+flint 018022 1 28357832 28357832 28357832 28357832.0000
+flopping 018023 1 39654943 39654943 39654943 39654943.0000
+Judas 018032 1 28357832 28357832 28357832 28357832.0000
+vacuuming 018033 1 39654943 39654943 39654943 39654943.0000
+medical 018041 1 5987435 5987435 5987435 5987435.0000
+bloodbath 018042 1 28357832 28357832 28357832 28357832.0000
+subschema 018043 1 39654943 39654943 39654943 39654943.0000
+interdependent 018051 1 5987435 5987435 5987435 5987435.0000
+Graves 018052 1 28357832 28357832 28357832 28357832.0000
+neonatal 018053 1 39654943 39654943 39654943 39654943.0000
+sorters 018061 1 5987435 5987435 5987435 5987435.0000
+epistle 018062 1 28357832 28357832 28357832 28357832.0000
+Conley 018101 1 5987435 5987435 5987435 5987435.0000
+lectured 018102 1 28357832 28357832 28357832 28357832.0000
+Abraham 018103 1 39654943 39654943 39654943 39654943.0000
+cage 018201 1 5987435 5987435 5987435 5987435.0000
+hushes 018202 1 28357832 28357832 28357832 28357832.0000
+Simla 018402 1 28357832 28357832 28357832 28357832.0000
+reporters 018403 1 39654943 39654943 39654943 39654943.0000
+coexist 018601 1 5987435 5987435 5987435 5987435.0000
+Beebe 018602 1 28357832 28357832 28357832 28357832.0000
+Taoism 018603 1 39654943 39654943 39654943 39654943.0000
+Connally 018801 1 5987435 5987435 5987435 5987435.0000
+fetched 018802 1 28357832 28357832 28357832 28357832.0000
+checkpoints 018803 1 39654943 39654943 39654943 39654943.0000
+gritty 018811 1 5987435 5987435 5987435 5987435.0000
+firearm 018812 1 28357832 28357832 28357832 28357832.0000
+minima 019101 1 5987435 5987435 5987435 5987435.0000
+Selfridge 019102 1 28357832 28357832 28357832 28357832.0000
+disable 019103 1 39654943 39654943 39654943 39654943.0000
+witchcraft 019201 1 5987435 5987435 5987435 5987435.0000
+betroth 030501 1 5987435 5987435 5987435 5987435.0000
+Manhattanize 030502 1 28357832 28357832 28357832 28357832.0000
+imprint 030503 1 39654943 39654943 39654943 39654943.0000
+swelling 031901 1 5987435 5987435 5987435 5987435.0000
+interrelationships 036001 1 5987435 5987435 5987435 5987435.0000
+riser 036002 1 28357832 28357832 28357832 28357832.0000
+bee 038001 1 5987435 5987435 5987435 5987435.0000
+kanji 038002 1 28357832 28357832 28357832 28357832.0000
+dental 038003 1 39654943 39654943 39654943 39654943.0000
+railway 038011 1 5987435 5987435 5987435 5987435.0000
+validate 038012 1 28357832 28357832 28357832 28357832.0000
+normalizes 038013 1 39654943 39654943 39654943 39654943.0000
+Kline 038101 1 5987435 5987435 5987435 5987435.0000
+Anatole 038102 1 28357832 28357832 28357832 28357832.0000
+partridges 038103 1 39654943 39654943 39654943 39654943.0000
+recruited 038201 1 5987435 5987435 5987435 5987435.0000
+dimensions 038202 1 28357832 28357832 28357832 28357832.0000
+Chicana 038203 1 39654943 39654943 39654943 39654943.0000
+select t3.companynr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 group by companynr,fld3;
+companynr fld3 sum(price)
+512 boat 786542
+512 capably 786542
+512 cupboard 786542
+512 decliner 786542
+512 descendants 786542
+512 dopers 786542
+512 erases 786542
+512 Micronesia 786542
+512 Miles 786542
+512 skies 786542
+select t2.companynr,count(*),min(fld3),max(fld3),sum(price),avg(price) from t2,t3 where t3.companynr >= 30 and t3.companynr <= 58 and t3.t2nr = t2.fld1 and 1+1=2 group by t2.companynr;
+companynr count(*) min(fld3) max(fld3) sum(price) avg(price)
+00 1 Omaha Omaha 5987435 5987435.0000
+36 1 dubbed dubbed 28357832 28357832.0000
+37 83 Abraham Wotan 1908978016 22999735.1325
+50 2 scribbled tapestry 68012775 34006387.5000
+select t3.companynr+0,t3.t2nr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 37 group by 1,t3.t2nr,fld3,fld3,fld3,fld3,fld3 order by fld1;
+t3.companynr+0 t2nr fld3 sum(price)
+37 1 Omaha 5987435
+37 11401 breaking 5987435
+37 11402 Romans 28357832
+37 11403 intercepted 39654943
+37 11501 bewilderingly 5987435
+37 11701 astound 5987435
+37 11702 admonishing 28357832
+37 11703 sumac 39654943
+37 12001 flanking 5987435
+37 12003 combed 39654943
+37 12301 Eulerian 5987435
+37 12302 dubbed 28357832
+37 12303 Kane 39654943
+37 12501 annihilates 5987435
+37 12602 Wotan 28357832
+37 12603 snatching 39654943
+37 12701 grazing 5987435
+37 12702 Baird 28357832
+37 12703 celery 39654943
+37 13601 handgun 5987435
+37 13602 foldout 28357832
+37 13603 mystic 39654943
+37 13801 intelligibility 5987435
+37 13802 Augustine 28357832
+37 13803 teethe 39654943
+37 13901 scholastics 5987435
+37 16001 audiology 5987435
+37 16201 wallet 5987435
+37 16202 parters 28357832
+37 16301 eschew 5987435
+37 16302 quitter 28357832
+37 16303 neat 39654943
+37 18001 jarring 5987435
+37 18002 tinily 28357832
+37 18003 balled 39654943
+37 18012 impulsive 28357832
+37 18013 starlet 39654943
+37 18021 lawgiver 5987435
+37 18022 stated 28357832
+37 18023 readable 39654943
+37 18032 testicle 28357832
+37 18033 Parsifal 39654943
+37 18041 Punjab 5987435
+37 18042 Merritt 28357832
+37 18043 Quixotism 39654943
+37 18051 sureties 5987435
+37 18052 puddings 28357832
+37 18053 tapestry 39654943
+37 18061 trimmings 5987435
+37 18062 humility 28357832
+37 18101 tragedies 5987435
+37 18102 skulking 28357832
+37 18103 flint 39654943
+37 18201 relaxing 5987435
+37 18202 offload 28357832
+37 18402 suites 28357832
+37 18403 lists 39654943
+37 18601 vacuuming 5987435
+37 18602 dentally 28357832
+37 18603 humanness 39654943
+37 18801 inch 5987435
+37 18802 Weissmuller 28357832
+37 18803 irresponsibly 39654943
+37 18811 repetitions 5987435
+37 18812 Antares 28357832
+37 19101 ventilate 5987435
+37 19102 pityingly 28357832
+37 19103 interdependent 39654943
+37 19201 Graves 5987435
+37 30501 neonatal 5987435
+37 30502 scribbled 28357832
+37 30503 chafe 39654943
+37 31901 realtor 5987435
+37 36001 elite 5987435
+37 36002 funereal 28357832
+37 38001 Conley 5987435
+37 38002 lectured 28357832
+37 38003 Abraham 39654943
+37 38011 groupings 5987435
+37 38012 dissociate 28357832
+37 38013 coexist 39654943
+37 38101 rusting 5987435
+37 38102 galling 28357832
+37 38103 obliterates 39654943
+37 38201 resumes 5987435
+37 38202 analyzable 28357832
+37 38203 terminator 39654943
+select sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1= t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008;
+sum(price)
+234298
+select t2.fld1,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1 = t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008 or t3.t2nr = t2.fld1 and t2.fld1 = 38008 group by t2.fld1;
+fld1 sum(price)
+038008 234298
+explain select fld3 from t2 where 1>2 or 2>3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select fld3 from t2 where fld1=fld1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select companynr,fld1 from t2 HAVING fld1=250501 or fld1=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,fld1 from t2 WHERE fld1>=250501 HAVING fld1<=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,count(*) as count,sum(fld1) as sum from t2 group by companynr having count > 40 and sum/count >= 120000;
+companynr count sum
+00 82 10355753
+29 95 14473298
+34 70 17788966
+37 588 83602098
+41 52 12816335
+select companynr from t2 group by companynr having count(*) > 40 and sum(fld1)/count(*) >= 120000 ;
+companynr
+00
+29
+34
+37
+41
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by companyname having t2.companynr >= 40;
+companynr companyname count(*)
+68 company 10 12
+50 company 11 11
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+select count(*) from t2;
+count(*)
+1199
+select count(*) from t2 where fld1 < 098024;
+count(*)
+387
+select min(fld1) from t2 where fld1>= 098024;
+min(fld1)
+98024
+select max(fld1) from t2 where fld1>= 098024;
+max(fld1)
+1232609
+select count(*) from t3 where price2=76234234;
+count(*)
+4181
+select count(*) from t3 where companynr=512 and price2=76234234;
+count(*)
+4181
+explain select min(fld1),max(fld1),count(*) from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select min(fld1),max(fld1),count(*) from t2;
+min(fld1) max(fld1) count(*)
+0 1232609 1199
+select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742;
+min(t2nr) max(t2nr)
+2115 2115
+select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78;
+count(*) min(t2nr) max(t2nr)
+4181 4 41804
+select t2nr,count(*) from t3 where name='gems' group by t2nr limit 20;
+t2nr count(*)
+9 1
+19 1
+29 1
+39 1
+49 1
+59 1
+69 1
+79 1
+89 1
+99 1
+109 1
+119 1
+129 1
+139 1
+149 1
+159 1
+169 1
+179 1
+189 1
+199 1
+select max(t2nr) from t3 where price=983543950;
+max(t2nr)
+41807
+select t1.period from t3 = t1 limit 1;
+period
+1001
+select t1.period from t1 as t1 limit 1;
+period
+9410
+select t1.period as "Nuvarande period" from t1 as t1 limit 1;
+Nuvarande period
+9410
+select period as ok_period from t1 limit 1;
+ok_period
+9410
+select period as ok_period from t1 group by ok_period limit 1;
+ok_period
+9410
+select 1+1 as summa from t1 group by summa limit 1;
+summa
+2
+select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
+Nuvarande period
+9410
+show tables;
+Tables_in_test
+t1
+t2
+t3
+t4
+show tables from test like "s%";
+Tables_in_test (s%)
+show tables from test like "t?";
+Tables_in_test (t?)
+show full columns from t2;
+Field Type Collation Null Key Default Extra Privileges Comment
+auto int(11) NULL NO PRI NULL auto_increment #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+companynr tinyint(2) unsigned zerofill NULL NO 00 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 'f%';
+Field Type Collation Null Key Default Extra Privileges Comment
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 's%';
+Field Type Collation Null Key Default Extra Privileges Comment
+show keys from t2;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+drop table t4, t3, t2, t1;
+CREATE TABLE t1 (
+cont_nr int(11) NOT NULL auto_increment,
+ver_nr int(11) NOT NULL default '0',
+aufnr int(11) NOT NULL default '0',
+username varchar(50) NOT NULL default '',
+hdl_nr int(11) NOT NULL default '0',
+eintrag date NOT NULL default '0000-00-00',
+st_klasse varchar(40) NOT NULL default '',
+st_wert varchar(40) NOT NULL default '',
+st_zusatz varchar(40) NOT NULL default '',
+st_bemerkung varchar(255) NOT NULL default '',
+kunden_art varchar(40) NOT NULL default '',
+mcbs_knr int(11) default NULL,
+mcbs_aufnr int(11) NOT NULL default '0',
+schufa_status char(1) default '?',
+bemerkung text,
+wirknetz text,
+wf_igz int(11) NOT NULL default '0',
+tarifcode varchar(80) default NULL,
+recycle char(1) default NULL,
+sim varchar(30) default NULL,
+mcbs_tpl varchar(30) default NULL,
+emp_nr int(11) NOT NULL default '0',
+laufzeit int(11) default NULL,
+hdl_name varchar(30) default NULL,
+prov_hdl_nr int(11) NOT NULL default '0',
+auto_wirknetz varchar(50) default NULL,
+auto_billing varchar(50) default NULL,
+touch timestamp NOT NULL,
+kategorie varchar(50) default NULL,
+kundentyp varchar(20) NOT NULL default '',
+sammel_rech_msisdn varchar(30) NOT NULL default '',
+p_nr varchar(9) NOT NULL default '',
+suffix char(3) NOT NULL default '',
+PRIMARY KEY (cont_nr),
+KEY idx_aufnr(aufnr),
+KEY idx_hdl_nr(hdl_nr),
+KEY idx_st_klasse(st_klasse),
+KEY ver_nr(ver_nr),
+KEY eintrag_idx(eintrag),
+KEY emp_nr_idx(emp_nr),
+KEY wf_igz(wf_igz),
+KEY touch(touch),
+KEY hdl_tag(eintrag,hdl_nr),
+KEY prov_hdl_nr(prov_hdl_nr),
+KEY mcbs_aufnr(mcbs_aufnr),
+KEY kundentyp(kundentyp),
+KEY p_nr(p_nr,suffix)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (3359356,405,3359356,'Mustermann Musterfrau',52500,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1485525,2122316,'+','','N',1909160,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',3,24,'MobilCom Shop Koeln',52500,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359357,468,3359357,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1503580,2139699,'+','','P',1909171,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359358,407,3359358,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1501358,2137473,'N','','N',1909159,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359359,468,3359359,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1507831,2143894,'+','','P',1909162,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359360,0,0,'Mustermann Musterfrau',29674907,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1900169997,2414578,'+',NULL,'N',1909148,'',NULL,NULL,'RV99066_2',20,NULL,'POS',29674907,NULL,NULL,20010202105916,'Mobilfunk','','','97317481','007');
+INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag storniert','','(7001-84):Storno, Kd. möchte nicht mehr','privat',NULL,0,'+','','P',1909150,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
+Kundentyp kategorie
+Privat (Private Nutzung) Mobilfunk
+Warnings:
+Warning 1052 Column 'kundentyp' in group statement is ambiguous
+drop table t1;
+SHOW STATUS LIKE 'Compression';
+Variable_name Value
+Compression ON
diff --git a/mysql-test/r/connect.result b/mysql-test/r/connect.result
index b9c1e3e5542..4f49f77d46c 100644
--- a/mysql-test/r/connect.result
+++ b/mysql-test/r/connect.result
@@ -9,6 +9,8 @@ help_keyword
help_relation
help_topic
host
+proc
+procs_priv
tables_priv
time_zone
time_zone_leap_second
@@ -34,6 +36,8 @@ help_keyword
help_relation
help_topic
host
+proc
+procs_priv
tables_priv
time_zone
time_zone_leap_second
@@ -67,6 +71,8 @@ help_keyword
help_relation
help_topic
host
+proc
+procs_priv
tables_priv
time_zone
time_zone_leap_second
diff --git a/mysql-test/r/count_distinct.result b/mysql-test/r/count_distinct.result
index 16460580d6c..a21748359b9 100644
--- a/mysql-test/r/count_distinct.result
+++ b/mysql-test/r/count_distinct.result
@@ -53,3 +53,16 @@ select count(distinct f) from t1;
count(distinct f)
0
drop table t1;
+create table t1 (a char(3), b char(20), primary key (a, b));
+insert into t1 values ('ABW', 'Dutch'), ('ABW', 'English');
+select count(distinct a) from t1 group by b;
+count(distinct a)
+1
+1
+drop table t1;
+create table t1 (f1 int, f2 int);
+insert into t1 values (0,1),(1,2);
+select count(distinct if(f1,3,f2)) from t1;
+count(distinct if(f1,3,f2))
+2
+drop table t1;
diff --git a/mysql-test/r/count_distinct2.result b/mysql-test/r/count_distinct2.result
index 131e3b325ec..b92665b5c56 100644
--- a/mysql-test/r/count_distinct2.result
+++ b/mysql-test/r/count_distinct2.result
@@ -116,7 +116,7 @@ count(distinct n)
5000
show status like 'Created_tmp_disk_tables';
Variable_name Value
-Created_tmp_disk_tables 1
+Created_tmp_disk_tables 0
drop table t1;
create table t1 (s text);
flush status;
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index aa25c55f394..3d7486b6ba2 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -13,7 +13,7 @@ Warnings:
Note 1050 Table 't1' already exists
insert into t1 values (""),(null);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'b' at row 2
+Warning 1048 Column 'b' cannot be null
select * from t1;
b
@@ -46,12 +46,24 @@ create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ERROR 42000: Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int);
ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long
-create table test (a datetime default now());
+create table t1 (a datetime default now());
ERROR 42000: Invalid default value for 'a'
-create table test (a datetime on update now());
+create table t1 (a datetime on update now());
ERROR HY000: Invalid ON UPDATE clause for 'a' column
-create table test (a int default 100 auto_increment);
+create table t1 (a int default 100 auto_increment);
ERROR 42000: Invalid default value for 'a'
+create table t1 (a tinyint default 1000);
+ERROR 42000: Invalid default value for 'a'
+create table t1 (a varchar(5) default 'abcdef');
+ERROR 42000: Invalid default value for 'a'
+create table t1 (a varchar(5) default 'abcde');
+insert into t1 values();
+select * from t1;
+a
+abcde
+alter table t1 alter column a set default 'abcdef';
+ERROR 42000: Invalid default value for 'a'
+drop table t1;
create table 1ea10 (1a20 int,1e int);
insert into 1ea10 values(1,1);
select 1ea10.1a20,1e+ 1e+10 from 1ea10;
@@ -102,12 +114,12 @@ drop table t2;
create table t2 select now() as a , curtime() as b, curdate() as c , 1+1 as d , 1.0 + 1 as e , 33333333333333333 + 3 as f;
describe t2;
Field Type Null Key Default Extra
-a datetime 0000-00-00 00:00:00
-b time 00:00:00
-c date 0000-00-00
-d bigint(17) 0
-e double(18,1) 0.0
-f bigint(17) 0
+a datetime NO 0000-00-00 00:00:00
+b time NO 00:00:00
+c date NO 0000-00-00
+d int(3) NO 0
+e decimal(3,1) NO 0.0
+f bigint(19) NO 0
drop table t2;
create table t2 select CAST("2001-12-29" AS DATE) as d, CAST("20:45:11" AS TIME) as t, CAST("2001-12-29 20:45:11" AS DATETIME) as dt;
describe t2;
@@ -154,7 +166,7 @@ create table t1 (a int not null, b int, primary key(a), key (b), key (b), key (b
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` int(11) default NULL,
PRIMARY KEY (`a`),
KEY `b` (`b`),
@@ -200,25 +212,25 @@ drop table if exists t1;
SET SESSION storage_engine="heap";
SELECT @@storage_engine;
@@storage_engine
-HEAP
+MEMORY
CREATE TABLE t1 (a int not null);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0'
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+ `a` int(11) NOT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
drop table t1;
SET SESSION storage_engine="gemini";
ERROR 42000: Unknown table engine 'gemini'
SELECT @@storage_engine;
@@storage_engine
-HEAP
+MEMORY
CREATE TABLE t1 (a int not null);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0'
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+ `a` int(11) NOT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
SET SESSION storage_engine=default;
drop table t1;
create table t1 ( k1 varchar(2), k2 int, primary key(k1,k2));
@@ -252,6 +264,7 @@ insert into t1 values (1,1);
create table if not exists t1 select 2;
Warnings:
Note 1050 Table 't1' already exists
+Warning 1364 Field 'a' doesn't have a default value
select * from t1;
a b
1 1
@@ -290,14 +303,14 @@ create table t3 like t1;
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
`name` char(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t3;
id name
create table if not exists t3 like t1;
Warnings:
-Warning 1050 Table 't3' already exists
+Note 1050 Table 't3' already exists
select @@warning_count;
@@warning_count
1
@@ -305,7 +318,7 @@ create temporary table t3 like t2;
show create table t3;
Table Create Table
t3 CREATE TEMPORARY TABLE `t3` (
- `id` int(11) NOT NULL default '0'
+ `id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t3;
id
@@ -313,7 +326,7 @@ drop table t3;
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
`name` char(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t3;
@@ -325,14 +338,14 @@ create temporary table t3 like mysqltest.t3;
show create table t3;
Table Create Table
t3 CREATE TEMPORARY TABLE `t3` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
`name` char(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
create table t2 like t3;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
`name` char(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t2;
@@ -354,25 +367,25 @@ drop database mysqltest;
SET SESSION storage_engine="heap";
SELECT @@storage_engine;
@@storage_engine
-HEAP
+MEMORY
CREATE TABLE t1 (a int not null);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0'
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+ `a` int(11) NOT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
drop table t1;
SET SESSION storage_engine="gemini";
ERROR 42000: Unknown table engine 'gemini'
SELECT @@storage_engine;
@@storage_engine
-HEAP
+MEMORY
CREATE TABLE t1 (a int not null);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0'
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+ `a` int(11) NOT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
SET SESSION storage_engine=default;
drop table t1;
create table t1(a int,b int,c int unsigned,d date,e char,f datetime,g time,h blob);
@@ -411,13 +424,13 @@ from t1;
explain t2;
Field Type Null Key Default Extra
a int(11) YES NULL
-b bigint(11) 0
-c bigint(11) 0
+b bigint(11) NO 0
+c bigint(11) unsigned NO 0
d date YES NULL
-e char(1)
+e varchar(1) NO
f datetime YES NULL
g time YES NULL
-h longblob
+h longblob NO NULL
dd time YES NULL
select * from t2;
a b c d e f g h dd
@@ -434,16 +447,16 @@ t2 CREATE TABLE `t2` (
`ifnull(c,c)` mediumint(8) default NULL,
`ifnull(d,d)` int(11) default NULL,
`ifnull(e,e)` bigint(20) default NULL,
- `ifnull(f,f)` float(24,2) default NULL,
- `ifnull(g,g)` double(53,3) default NULL,
+ `ifnull(f,f)` float(3,2) default NULL,
+ `ifnull(g,g)` double(4,3) default NULL,
`ifnull(h,h)` decimal(5,4) default NULL,
`ifnull(i,i)` year(4) default NULL,
`ifnull(j,j)` date default NULL,
- `ifnull(k,k)` datetime NOT NULL default '0000-00-00 00:00:00',
+ `ifnull(k,k)` timestamp NOT NULL default '0000-00-00 00:00:00',
`ifnull(l,l)` datetime default NULL,
- `ifnull(m,m)` char(1) default NULL,
- `ifnull(n,n)` char(3) default NULL,
- `ifnull(o,o)` char(10) default NULL
+ `ifnull(m,m)` varchar(1) default NULL,
+ `ifnull(n,n)` varchar(3) default NULL,
+ `ifnull(o,o)` varchar(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1,t2;
create table t1(str varchar(10) default 'def',strnull varchar(10),intg int default '10',rel double default '3.14');
@@ -496,9 +509,11 @@ drop database mysqltest;
select database();
database()
NULL
+create user mysqltest_1;
select database(), user();
database() user()
NULL mysqltest_1@localhost
+drop user mysqltest_1;
use test;
create table t1 (a int, index `primary` (a));
ERROR 42000: Incorrect index name 'primary'
@@ -580,11 +595,10 @@ create table t1(t1.name int);
create table t2(test.t2.name int);
drop table t1,t2;
CREATE TABLE t1 (f1 VARCHAR(255) CHARACTER SET utf8);
-CREATE TABLE t2 AS SELECT LEFT(f1,86) AS f2 FROM t1 UNION SELECT LEFT(f1,86)
-AS f2 FROM t1;
+CREATE TABLE t2 AS SELECT LEFT(f1,171) AS f2 FROM t1 UNION SELECT LEFT(f1,171) AS f2 FROM t1;
DESC t2;
Field Type Null Key Default Extra
-f2 varchar(86) YES NULL
+f2 varchar(171) YES NULL
DROP TABLE t1,t2;
CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1;
SELECT * FROM t12913;
@@ -595,9 +609,16 @@ create database mysqltest;
use mysqltest;
drop database mysqltest;
create table test.t1 like x;
-ERROR 42000: Incorrect database name 'NULL'
+ERROR 3D000: No database selected
drop table if exists test.t1;
create database mysqltest;
+use mysqltest;
+create view v1 as select 'foo' from dual;
+create table t1 like v1;
+ERROR HY000: 'mysqltest.v1' is not BASE TABLE
+drop view v1;
+drop database mysqltest;
+create database mysqltest;
create database if not exists mysqltest character set latin2;
Warnings:
Note 1007 Can't create database 'mysqltest'; database exists
@@ -618,7 +639,7 @@ primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(112) character set utf8 collate utf8_bin NOT NULL default '',
+ `a` varchar(112) character set utf8 collate utf8_bin NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -633,8 +654,36 @@ b int not null, primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
- `b` int(11) NOT NULL default '0',
+ `a` varchar(12) character set utf8 collate utf8_bin NOT NULL,
+ `b` int(11) NOT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (
+a varchar(12) charset utf8 collate utf8_bin not null,
+b int not null, primary key (a)
+) select a, 1 as c from t2 ;
+Warnings:
+Warning 1364 Field 'b' doesn't have a default value
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `b` int(11) NOT NULL,
+ `a` varchar(12) character set utf8 collate utf8_bin NOT NULL,
+ `c` int(1) NOT NULL default '0',
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (
+a varchar(12) charset utf8 collate utf8_bin not null,
+b int null, primary key (a)
+) select a, 1 as c from t2 ;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `b` int(11) default NULL,
+ `a` varchar(12) character set utf8 collate utf8_bin NOT NULL,
+ `c` int(1) NOT NULL default '0',
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -645,8 +694,8 @@ b int not null, primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
- `b` int(11) NOT NULL default '0',
+ `a` varchar(12) character set utf8 collate utf8_bin NOT NULL,
+ `b` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -658,7 +707,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
- `b` int(11) NOT NULL default '0',
+ `b` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2;
@@ -700,4 +749,787 @@ t2 CREATE TABLE `t2` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2;
create table t1(a set("a,b","c,d") not null);
-ERROR HY000: Illegal set 'a,b' value found during parsing
+ERROR 22007: Illegal set 'a,b' value found during parsing
+create table t1 (i int) engine=myisam max_rows=100000000000;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295
+alter table t1 max_rows=100;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=100
+alter table t1 max_rows=100000000000;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295
+drop table t1;
+create table t1 select * from t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+create table t1 select * from t1;
+ERROR HY000: You can't specify target table 't1' for update in FROM clause
+create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce'
+create table t1 (primary key(a)) select "b" as b;
+ERROR 42000: Key column 'a' doesn't exist in table
+create table t1 (a int);
+create table if not exists t1 select 1 as a, 2 as b;
+ERROR 21S01: Column count doesn't match value count at row 1
+drop table t1;
+create table t1 (primary key (a)) (select 1 as a) union all (select 1 as a);
+ERROR 23000: Duplicate entry '1' for key 1
+create table t1 (i int);
+create table t1 select 1 as i;
+ERROR 42S01: Table 't1' already exists
+create table if not exists t1 select 1 as i;
+Warnings:
+Note 1050 Table 't1' already exists
+select * from t1;
+i
+1
+create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce'
+select * from t1;
+i
+1
+alter table t1 add primary key (i);
+create table if not exists t1 (select 2 as i) union all (select 2 as i);
+ERROR 23000: Duplicate entry '2' for key 1
+select * from t1;
+i
+1
+2
+drop table t1;
+create temporary table t1 (j int);
+create table if not exists t1 select 1;
+Warnings:
+Note 1050 Table 't1' already exists
+select * from t1;
+j
+1
+drop temporary table t1;
+select * from t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+drop table t1;
+ERROR 42S02: Unknown table 't1'
+create table t1 (i int);
+insert into t1 values (1), (2);
+lock tables t1 read;
+create table t2 select * from t1;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+create table if not exists t2 select * from t1;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+unlock tables;
+create table t2 (j int);
+lock tables t1 read;
+create table t2 select * from t1;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+create table if not exists t2 select * from t1;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+unlock tables;
+lock table t1 read, t2 read;
+create table t2 select * from t1;
+ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
+create table if not exists t2 select * from t1;
+ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
+unlock tables;
+lock table t1 read, t2 write;
+create table t2 select * from t1;
+ERROR 42S01: Table 't2' already exists
+create table if not exists t2 select * from t1;
+Warnings:
+Note 1050 Table 't2' already exists
+select * from t1;
+i
+1
+2
+unlock tables;
+drop table t2;
+lock tables t1 read;
+create temporary table t2 select * from t1;
+create temporary table if not exists t2 select * from t1;
+Warnings:
+Note 1050 Table 't2' already exists
+select * from t2;
+i
+1
+2
+1
+2
+unlock tables;
+drop table t1, t2;
+create table t1 (upgrade int);
+drop table t1;
+create table t1 (
+c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int,
+c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int,
+key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16)
+);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) default NULL,
+ `c2` int(11) default NULL,
+ `c3` int(11) default NULL,
+ `c4` int(11) default NULL,
+ `c5` int(11) default NULL,
+ `c6` int(11) default NULL,
+ `c7` int(11) default NULL,
+ `c8` int(11) default NULL,
+ `c9` int(11) default NULL,
+ `c10` int(11) default NULL,
+ `c11` int(11) default NULL,
+ `c12` int(11) default NULL,
+ `c13` int(11) default NULL,
+ `c14` int(11) default NULL,
+ `c15` int(11) default NULL,
+ `c16` int(11) default NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+flush tables;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) default NULL,
+ `c2` int(11) default NULL,
+ `c3` int(11) default NULL,
+ `c4` int(11) default NULL,
+ `c5` int(11) default NULL,
+ `c6` int(11) default NULL,
+ `c7` int(11) default NULL,
+ `c8` int(11) default NULL,
+ `c9` int(11) default NULL,
+ `c10` int(11) default NULL,
+ `c11` int(11) default NULL,
+ `c12` int(11) default NULL,
+ `c13` int(11) default NULL,
+ `c14` int(11) default NULL,
+ `c15` int(11) default NULL,
+ `c16` int(11) default NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int);
+alter table t1
+add key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+add key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) default NULL,
+ `c2` int(11) default NULL,
+ `c3` int(11) default NULL,
+ `c4` int(11) default NULL,
+ `c5` int(11) default NULL,
+ `c6` int(11) default NULL,
+ `c7` int(11) default NULL,
+ `c8` int(11) default NULL,
+ `c9` int(11) default NULL,
+ `c10` int(11) default NULL,
+ `c11` int(11) default NULL,
+ `c12` int(11) default NULL,
+ `c13` int(11) default NULL,
+ `c14` int(11) default NULL,
+ `c15` int(11) default NULL,
+ `c16` int(11) default NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+flush tables;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) default NULL,
+ `c2` int(11) default NULL,
+ `c3` int(11) default NULL,
+ `c4` int(11) default NULL,
+ `c5` int(11) default NULL,
+ `c6` int(11) default NULL,
+ `c7` int(11) default NULL,
+ `c8` int(11) default NULL,
+ `c9` int(11) default NULL,
+ `c10` int(11) default NULL,
+ `c11` int(11) default NULL,
+ `c12` int(11) default NULL,
+ `c13` int(11) default NULL,
+ `c14` int(11) default NULL,
+ `c15` int(11) default NULL,
+ `c16` int(11) default NULL,
+ KEY `a001_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a002_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a003_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a004_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a005_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a006_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a007_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a008_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a009_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a010_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a011_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a012_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a013_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a014_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a015_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a016_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a017_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a018_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a019_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a020_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a021_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a022_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a023_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a024_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a025_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a026_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a027_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a028_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a029_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a030_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a031_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a032_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a033_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a034_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a035_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a036_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a037_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a038_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a039_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a040_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a041_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a042_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a043_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a044_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a045_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a046_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a047_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a048_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a049_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a050_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a051_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a052_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a053_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a054_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a055_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a056_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a057_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a058_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a059_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a060_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a061_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
+ KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 add key
+a065_long_123456789_123456789_123456789_123456789_123456789_1234 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+ERROR 42000: Too many keys specified; max 64 keys allowed
+drop table t1;
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int,
+c16 int, c17 int);
+alter table t1 add key i1 (
+c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16, c17);
+ERROR 42000: Too many key parts specified; max 16 parts allowed
+alter table t1 add key
+a001_long_123456789_123456789_123456789_123456789_123456789_12345 (c1);
+ERROR 42000: Identifier name 'a001_long_123456789_123456789_123456789_123456789_123456789_12345' is too long
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) default NULL,
+ `c2` int(11) default NULL,
+ `c3` int(11) default NULL,
+ `c4` int(11) default NULL,
+ `c5` int(11) default NULL,
+ `c6` int(11) default NULL,
+ `c7` int(11) default NULL,
+ `c8` int(11) default NULL,
+ `c9` int(11) default NULL,
+ `c10` int(11) default NULL,
+ `c11` int(11) default NULL,
+ `c12` int(11) default NULL,
+ `c13` int(11) default NULL,
+ `c14` int(11) default NULL,
+ `c15` int(11) default NULL,
+ `c16` int(11) default NULL,
+ `c17` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+
+Bug #26104 Bug on foreign key class constructor
+
+Check that ref_columns is initalized correctly in the constructor
+and semantic checks in mysql_prepare_table work.
+
+We do not need a storage engine that supports foreign keys
+for this test, as the checks are purely syntax-based, and the
+syntax is supported for all engines.
+
+drop table if exists t1,t2;
+create table t1(a int not null, b int not null, primary key (a, b));
+create table t2(a int not null, b int not null, c int not null, primary key (a),
+foreign key fk_bug26104 (b,c) references t1(a));
+ERROR 42000: Incorrect foreign key definition for 'fk_bug26104': Key reference and table reference don't match
+drop table t1;
+create table t1(f1 int,f2 int);
+insert into t1 value(1,1),(1,2),(1,3),(2,1),(2,2),(2,3);
+flush status;
+create table t2 select sql_big_result f1,count(f2) from t1 group by f1;
+show status like 'handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 0
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 7
+drop table t1,t2;
+End of 5.0 tests
diff --git a/mysql-test/r/create_not_windows.result b/mysql-test/r/create_not_windows.result
new file mode 100644
index 00000000000..b975c98c2b1
--- /dev/null
+++ b/mysql-test/r/create_not_windows.result
@@ -0,0 +1,14 @@
+drop table if exists `about:text`;
+create table `about:text` (
+_id int not null auto_increment,
+`about:text` varchar(255) not null default '',
+primary key (_id)
+);
+show create table `about:text`;
+Table Create Table
+about:text CREATE TABLE `about:text` (
+ `_id` int(11) NOT NULL auto_increment,
+ `about:text` varchar(255) NOT NULL default '',
+ PRIMARY KEY (`_id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table `about:text`;
diff --git a/mysql-test/r/create_select_tmp.result b/mysql-test/r/create_select_tmp.result
index b99bf3e3591..668547bcff9 100644
--- a/mysql-test/r/create_select_tmp.result
+++ b/mysql-test/r/create_select_tmp.result
@@ -17,3 +17,4 @@ CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=MYISAM SELECT a FROM t1;
ERROR 23000: Duplicate entry '1' for key 1
select * from t2;
ERROR 42S02: Table 'test.t2' doesn't exist
+drop table t1;
diff --git a/mysql-test/r/csv.result b/mysql-test/r/csv.result
index 7c7bcc3440c..dca4e349c8a 100644
--- a/mysql-test/r/csv.result
+++ b/mysql-test/r/csv.result
@@ -4975,3 +4975,100 @@ c1
4
5
DROP TABLE bug14672;
+create table t1 (a int) engine=csv;
+insert t1 values (1);
+delete from t1;
+affected rows: 1
+delete from t1;
+affected rows: 0
+insert t1 values (1),(2);
+delete from t1;
+affected rows: 2
+insert t1 values (1),(2),(3);
+flush tables;
+delete from t1;
+affected rows: 3
+insert t1 values (1),(2),(3),(4);
+flush tables;
+select count(*) from t1;
+count(*)
+4
+delete from t1;
+affected rows: 4
+insert t1 values (1),(2),(3),(4),(5);
+truncate table t1;
+affected rows: 0
+drop table t1;
+create table bug15205 (val int(11) default null) engine=csv;
+create table bug15205_2 (val int(11) default null) engine=csv;
+select * from bug15205;
+ERROR HY000: Got error 1 from storage engine
+select * from bug15205_2;
+val
+select * from bug15205;
+val
+drop table bug15205;
+drop table bug15205_2;
+set names latin1;
+create table t1 (
+c varchar(1),
+name varchar(64)
+) character set latin1 engine=csv;
+insert into t1 values (0xC0,'LATIN CAPITAL LETTER A WITH GRAVE');
+insert into t1 values (0xE0,'LATIN SMALL LETTER A WITH GRAVE');
+insert into t1 values (0xEE,'LATIN SMALL LETTER I WITH CIRCUMFLEX');
+insert into t1 values (0xFE,'LATIN SMALL LETTER THORN');
+insert into t1 values (0xF7,'DIVISION SIGN');
+insert into t1 values (0xFF,'LATIN SMALL LETTER Y WITH DIAERESIS');
+select hex(c), c, name from t1 order by 1;
+hex(c) c name
+C0 À LATIN CAPITAL LETTER A WITH GRAVE
+E0 à LATIN SMALL LETTER A WITH GRAVE
+EE î LATIN SMALL LETTER I WITH CIRCUMFLEX
+F7 ÷ DIVISION SIGN
+FE þ LATIN SMALL LETTER THORN
+FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS
+drop table t1;
+create table t1(a datetime) engine=csv;
+insert into t1 values();
+select * from t1;
+a
+0000-00-00 00:00:00
+drop table t1;
+create table t1(a set('foo','bar')) engine=csv;
+insert into t1 values();
+select * from t1;
+a
+
+drop table t1;
+create table t1(a varchar(32)) engine=csv;
+insert into t1 values();
+select * from t1;
+a
+
+drop table t1;
+create table t1(a int) engine=csv;
+insert into t1 values();
+select * from t1;
+a
+0
+drop table t1;
+create table t1(a blob) engine=csv;
+insert into t1 values();
+select * from t1;
+a
+
+drop table t1;
+create table t1(a bit(1)) engine=csv;
+insert into t1 values();
+select BIN(a) from t1;
+BIN(a)
+0
+drop table t1;
+create table t1(a enum('foo','bar') default 'foo') engine=csv;
+insert into t1 values();
+select * from t1;
+a
+foo
+drop table t1;
+End of 5.0 tests
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/ctype_big5.result b/mysql-test/r/ctype_big5.result
index a2651db6308..b190273cc64 100644
--- a/mysql-test/r/ctype_big5.result
+++ b/mysql-test/r/ctype_big5.result
@@ -54,6 +54,8 @@ location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
select cast(a as char(1)) from t1;
cast(a as char(1))
@@ -203,3 +205,18 @@ drop table t1;
select hex(convert(_big5 0xC84041 using ucs2));
hex(convert(_big5 0xC84041 using ucs2))
003F0041
+End of 4.1 tests
+set names big5;
+create table t1 (a blob);
+insert into t1 values (0xEE00);
+select * into outfile 'test/t1.txt' from t1;
+delete from t1;
+select hex(load_file('MYSQLTEST_VARDIR/master-data/test/t1.txt'));;
+hex(load_file('MYSQLTEST_VARDIR/master-data/test/t1.txt'))
+5CEE5C300A
+load data infile 't1.txt' into table t1;
+select hex(a) from t1;
+hex(a)
+EE00
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/ctype_collate.result b/mysql-test/r/ctype_collate.result
index cdf890f2c6c..7e9513f06e9 100644
--- a/mysql-test/r/ctype_collate.result
+++ b/mysql-test/r/ctype_collate.result
@@ -484,11 +484,11 @@ ERROR HY000: Unknown collation: 'koi8r'
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `latin1_f` char(32) NOT NULL default ''
+ `latin1_f` char(32) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW FIELDS FROM t1;
Field Type Null Key Default Extra
-latin1_f char(32)
+latin1_f char(32) NO NULL
ALTER TABLE t1 CHANGE latin1_f
latin1_f CHAR(32) CHARACTER SET latin1 COLLATE latin1_bin;
SHOW CREATE TABLE t1;
@@ -595,3 +595,19 @@ EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
DROP TABLE t1;
+create table t1(f1 varchar(10) character set latin2 collate latin2_hungarian_ci, key(f1));
+insert into t1 set f1=0x3F3F9DC73F;
+insert into t1 set f1=0x3F3F1E563F;
+insert into t1 set f1=0x3F3F;
+check table t1 extended;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
+create table t1 (a varchar(2) character set latin7 collate latin7_general_ci,key(a));
+insert into t1 set a=0x4c20;
+insert into t1 set a=0x6c;
+insert into t1 set a=0x4c98;
+check table t1 extended;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
diff --git a/mysql-test/r/ctype_cp1250_ch.result b/mysql-test/r/ctype_cp1250_ch.result
index b55849e4e12..73f415732cd 100644
--- a/mysql-test/r/ctype_cp1250_ch.result
+++ b/mysql-test/r/ctype_cp1250_ch.result
@@ -1,3 +1,4 @@
+DROP TABLE IF EXISTS t1;
SHOW COLLATION LIKE 'cp1250_czech_cs';
Collation Charset Id Default Compiled Sortlen
cp1250_czech_cs cp1250 34 Yes 2
diff --git a/mysql-test/r/ctype_cp1251.result b/mysql-test/r/ctype_cp1251.result
index c65055e726d..47797af3cbe 100644
--- a/mysql-test/r/ctype_cp1251.result
+++ b/mysql-test/r/ctype_cp1251.result
@@ -23,7 +23,7 @@ a
b
c
drop table t1;
-create table t1 (a char(15) binary, b binary(15)) character set cp1251;
+create table t1 (a char(3) binary, b binary(3)) character set cp1251;
insert into t1 values ('aaa','bbb'),('AAA','BBB');
select upper(a),upper(b) from t1;
upper(a) upper(b)
diff --git a/mysql-test/r/ctype_cp932.result b/mysql-test/r/ctype_cp932.result
index b384eaa144d..e3598f00777 100644..100755
--- a/mysql-test/r/ctype_cp932.result
+++ b/mysql-test/r/ctype_cp932.result
@@ -360,7 +360,7 @@ INSERT INTO t1 VALUES
(0xF9E8),(0xF9E9),(0xF9EA),(0xF9EB),(0xF9EC),(0xF9ED),(0xF9EE),(0xF9EF),
(0xF9F0),(0xF9F1),(0xF9F2),(0xF9F3),(0xF9F4),(0xF9F5),(0xF9F6),(0xF9F7),
(0xF9F8),(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC);
-SELECT HEX(c1) FROM t1 ORDER BY BINARY c1;
+SELECT HEX(c1) FROM t1;
HEX(c1)
05
7E
@@ -829,6 +829,394 @@ EEF9
EEFA
EEFB
EEFC
+FA40
+FA41
+FA42
+FA43
+FA44
+FA45
+FA46
+FA47
+FA48
+FA49
+FA4A
+FA4B
+FA4C
+FA4D
+FA4E
+FA4F
+FA50
+FA51
+FA52
+FA53
+FA54
+FA55
+FA56
+FA57
+FA58
+FA59
+FA5A
+FA5B
+FA5C
+FA5D
+FA5E
+FA5F
+FA60
+FA61
+FA62
+FA63
+FA64
+FA65
+FA66
+FA67
+FA68
+FA69
+FA6A
+FA6B
+FA6C
+FA6D
+FA6E
+FA6F
+FA70
+FA71
+FA72
+FA73
+FA74
+FA75
+FA76
+FA77
+FA78
+FA79
+FA7A
+FA7B
+FA7C
+FA7D
+FA7E
+FA80
+FA81
+FA82
+FA83
+FA84
+FA85
+FA86
+FA87
+FA88
+FA89
+FA8A
+FA8B
+FA8C
+FA8D
+FA8E
+FA8F
+FA90
+FA91
+FA92
+FA93
+FA94
+FA95
+FA96
+FA97
+FA98
+FA99
+FA9A
+FA9B
+FA9C
+FA9D
+FA9E
+FA9F
+FAA0
+FAA1
+FAA2
+FAA3
+FAA4
+FAA5
+FAA6
+FAA7
+FAA8
+FAA9
+FAAA
+FAAB
+FAAC
+FAAD
+FAAE
+FAAF
+FAB0
+FAB1
+FAB2
+FAB3
+FAB4
+FAB5
+FAB6
+FAB7
+FAB8
+FAB9
+FABA
+FABB
+FABC
+FABD
+FABE
+FABF
+FAC0
+FAC1
+FAC2
+FAC3
+FAC4
+FAC5
+FAC6
+FAC7
+FAC8
+FAC9
+FACA
+FACB
+FACC
+FACD
+FACE
+FACF
+FAD0
+FAD1
+FAD2
+FAD3
+FAD4
+FAD5
+FAD6
+FAD7
+FAD8
+FAD9
+FADA
+FADB
+FADC
+FADD
+FADE
+FADF
+FAE0
+FAE1
+FAE2
+FAE3
+FAE4
+FAE5
+FAE6
+FAE7
+FAE8
+FAE9
+FAEA
+FAEB
+FAEC
+FAED
+FAEE
+FAEF
+FAF0
+FAF1
+FAF2
+FAF3
+FAF4
+FAF5
+FAF6
+FAF7
+FAF8
+FAF9
+FAFA
+FAFB
+FAFC
+FB40
+FB41
+FB42
+FB43
+FB44
+FB45
+FB46
+FB47
+FB48
+FB49
+FB4A
+FB4B
+FB4C
+FB4D
+FB4E
+FB4F
+FB50
+FB51
+FB52
+FB53
+FB54
+FB55
+FB56
+FB57
+FB58
+FB59
+FB5A
+FB5B
+FB5C
+FB5D
+FB5E
+FB5F
+FB60
+FB61
+FB62
+FB63
+FB64
+FB65
+FB66
+FB67
+FB68
+FB69
+FB6A
+FB6B
+FB6C
+FB6D
+FB6E
+FB6F
+FB70
+FB71
+FB72
+FB73
+FB74
+FB75
+FB76
+FB77
+FB78
+FB79
+FB7A
+FB7B
+FB7C
+FB7D
+FB7E
+FB80
+FB81
+FB82
+FB83
+FB84
+FB85
+FB86
+FB87
+FB88
+FB89
+FB8A
+FB8B
+FB8C
+FB8D
+FB8E
+FB8F
+FB90
+FB91
+FB92
+FB93
+FB94
+FB95
+FB96
+FB97
+FB98
+FB99
+FB9A
+FB9B
+FB9C
+FB9D
+FB9E
+FB9F
+FBA0
+FBA1
+FBA2
+FBA3
+FBA4
+FBA5
+FBA6
+FBA7
+FBA8
+FBA9
+FBAA
+FBAB
+FBAC
+FBAD
+FBAE
+FBAF
+FBB0
+FBB1
+FBB2
+FBB3
+FBB4
+FBB5
+FBB6
+FBB7
+FBB8
+FBB9
+FBBA
+FBBB
+FBBC
+FBBD
+FBBE
+FBBF
+FBC0
+FBC1
+FBC2
+FBC3
+FBC4
+FBC5
+FBC6
+FBC7
+FBC8
+FBC9
+FBCA
+FBCB
+FBCC
+FBCD
+FBCE
+FBCF
+FBD0
+FBD1
+FBD2
+FBD3
+FBD4
+FBD5
+FBD6
+FBD7
+FBD8
+FBD9
+FBDA
+FBDB
+FBDC
+FBDD
+FBDE
+FBDF
+FBE0
+FBE1
+FBE2
+FBE3
+FBE4
+FBE5
+FBE6
+FBE7
+FBE8
+FBE9
+FBEA
+FBEB
+FBEC
+FBED
+FBEE
+FBEF
+FBF0
+FBF1
+FBF2
+FBF3
+FBF4
+FBF5
+FBF6
+FBF7
+FBF8
+FBF9
+FBFA
+FBFB
+FBFC
+FC40
+FC41
+FC42
+FC43
+FC44
+FC45
+FC46
+FC47
+FC48
+FC49
+FC4A
+FC4B
F040
F041
F042
@@ -2709,459 +3097,19 @@ F9F9
F9FA
F9FB
F9FC
-FA40
-FA41
-FA42
-FA43
-FA44
-FA45
-FA46
-FA47
-FA48
-FA49
-FA4A
-FA4B
-FA4C
-FA4D
-FA4E
-FA4F
-FA50
-FA51
-FA52
-FA53
-FA54
-FA55
-FA56
-FA57
-FA58
-FA59
-FA5A
-FA5B
-FA5C
-FA5D
-FA5E
-FA5F
-FA60
-FA61
-FA62
-FA63
-FA64
-FA65
-FA66
-FA67
-FA68
-FA69
-FA6A
-FA6B
-FA6C
-FA6D
-FA6E
-FA6F
-FA70
-FA71
-FA72
-FA73
-FA74
-FA75
-FA76
-FA77
-FA78
-FA79
-FA7A
-FA7B
-FA7C
-FA7D
-FA7E
-FA80
-FA81
-FA82
-FA83
-FA84
-FA85
-FA86
-FA87
-FA88
-FA89
-FA8A
-FA8B
-FA8C
-FA8D
-FA8E
-FA8F
-FA90
-FA91
-FA92
-FA93
-FA94
-FA95
-FA96
-FA97
-FA98
-FA99
-FA9A
-FA9B
-FA9C
-FA9D
-FA9E
-FA9F
-FAA0
-FAA1
-FAA2
-FAA3
-FAA4
-FAA5
-FAA6
-FAA7
-FAA8
-FAA9
-FAAA
-FAAB
-FAAC
-FAAD
-FAAE
-FAAF
-FAB0
-FAB1
-FAB2
-FAB3
-FAB4
-FAB5
-FAB6
-FAB7
-FAB8
-FAB9
-FABA
-FABB
-FABC
-FABD
-FABE
-FABF
-FAC0
-FAC1
-FAC2
-FAC3
-FAC4
-FAC5
-FAC6
-FAC7
-FAC8
-FAC9
-FACA
-FACB
-FACC
-FACD
-FACE
-FACF
-FAD0
-FAD1
-FAD2
-FAD3
-FAD4
-FAD5
-FAD6
-FAD7
-FAD8
-FAD9
-FADA
-FADB
-FADC
-FADD
-FADE
-FADF
-FAE0
-FAE1
-FAE2
-FAE3
-FAE4
-FAE5
-FAE6
-FAE7
-FAE8
-FAE9
-FAEA
-FAEB
-FAEC
-FAED
-FAEE
-FAEF
-FAF0
-FAF1
-FAF2
-FAF3
-FAF4
-FAF5
-FAF6
-FAF7
-FAF8
-FAF9
-FAFA
-FAFB
-FAFC
-FB40
-FB41
-FB42
-FB43
-FB44
-FB45
-FB46
-FB47
-FB48
-FB49
-FB4A
-FB4B
-FB4C
-FB4D
-FB4E
-FB4F
-FB50
-FB51
-FB52
-FB53
-FB54
-FB55
-FB56
-FB57
-FB58
-FB59
-FB5A
-FB5B
-FB5C
-FB5D
-FB5E
-FB5F
-FB60
-FB61
-FB62
-FB63
-FB64
-FB65
-FB66
-FB67
-FB68
-FB69
-FB6A
-FB6B
-FB6C
-FB6D
-FB6E
-FB6F
-FB70
-FB71
-FB72
-FB73
-FB74
-FB75
-FB76
-FB77
-FB78
-FB79
-FB7A
-FB7B
-FB7C
-FB7D
-FB7E
-FB80
-FB81
-FB82
-FB83
-FB84
-FB85
-FB86
-FB87
-FB88
-FB89
-FB8A
-FB8B
-FB8C
-FB8D
-FB8E
-FB8F
-FB90
-FB91
-FB92
-FB93
-FB94
-FB95
-FB96
-FB97
-FB98
-FB99
-FB9A
-FB9B
-FB9C
-FB9D
-FB9E
-FB9F
-FBA0
-FBA1
-FBA2
-FBA3
-FBA4
-FBA5
-FBA6
-FBA7
-FBA8
-FBA9
-FBAA
-FBAB
-FBAC
-FBAD
-FBAE
-FBAF
-FBB0
-FBB1
-FBB2
-FBB3
-FBB4
-FBB5
-FBB6
-FBB7
-FBB8
-FBB9
-FBBA
-FBBB
-FBBC
-FBBD
-FBBE
-FBBF
-FBC0
-FBC1
-FBC2
-FBC3
-FBC4
-FBC5
-FBC6
-FBC7
-FBC8
-FBC9
-FBCA
-FBCB
-FBCC
-FBCD
-FBCE
-FBCF
-FBD0
-FBD1
-FBD2
-FBD3
-FBD4
-FBD5
-FBD6
-FBD7
-FBD8
-FBD9
-FBDA
-FBDB
-FBDC
-FBDD
-FBDE
-FBDF
-FBE0
-FBE1
-FBE2
-FBE3
-FBE4
-FBE5
-FBE6
-FBE7
-FBE8
-FBE9
-FBEA
-FBEB
-FBEC
-FBED
-FBEE
-FBEF
-FBF0
-FBF1
-FBF2
-FBF3
-FBF4
-FBF5
-FBF6
-FBF7
-FBF8
-FBF9
-FBFA
-FBFB
-FBFC
-FC40
-FC41
-FC42
-FC43
-FC44
-FC45
-FC46
-FC47
-FC48
-FC49
-FC4A
-FC4B
-CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1 ORDER BY BINARY c1;
-SELECT HEX(c1) FROM t2 ORDER BY BINARY c1;
+CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1;
+SELECT HEX(c1) FROM t2;
HEX(c1)
0005
007E
2015
-2116
-2116
-2121
-2121
-2160
-2160
-2161
-2161
-2162
-2162
-2163
-2163
-2164
-2164
-2165
-2165
-2166
-2166
-2167
-2167
-2168
-2168
-2169
-2169
-2170
-2170
-2171
-2171
-2172
-2172
-2173
-2173
-2174
-2174
-2175
-2175
-2176
-2176
-2177
-2177
-2178
-2178
-2179
-2179
-2211
-221A
-221F
-2220
+FF3C
+FF5E
2225
-2229
-222A
-222B
-222E
-2235
-2235
-2252
-2261
-22A5
-22BF
+FF0D
+FFE0
+FFE1
+FFE2
2460
2461
2462
@@ -3182,696 +3130,830 @@ HEX(c1)
2471
2472
2473
-301D
-301F
-3231
-3231
-3232
-3239
-32A4
-32A5
-32A6
-32A7
-32A8
-3303
-330D
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+3349
3314
-3318
3322
-3323
-3326
+334D
+3318
3327
-332B
+3303
3336
-333B
-3349
-334A
-334D
3351
3357
-337B
-337C
-337D
-337E
-338E
-338F
+330D
+3326
+3323
+332B
+334A
+333B
339C
339D
339E
-33A1
+338E
+338F
33C4
+33A1
+337B
+301D
+301F
+2116
33CD
+2121
+32A4
+32A5
+32A6
+32A7
+32A8
+3231
+3232
+3239
+337E
+337D
+337C
+2252
+2261
+222B
+222E
+2211
+221A
+22A5
+2220
+221F
+22BF
+2235
+2229
+222A
+7E8A
+891C
+9348
+9288
+84DC
+4FC9
+70BB
+6631
+68C8
+92F9
+66FB
+5F45
4E28
-4E28
-4EE1
4EE1
4EFC
-4EFC
-4F00
4F00
4F03
-4F03
-4F39
4F39
4F56
-4F56
-4F8A
-4F8A
-4F92
4F92
-4F94
-4F94
-4F9A
+4F8A
4F9A
-4FC9
-4FC9
-4FCD
+4F94
4FCD
+5040
+5022
4FFF
-4FFF
-501E
501E
-5022
-5022
-5040
-5040
-5042
-5042
-5046
5046
5070
-5070
-5094
+5042
5094
-50D8
-50D8
-50F4
50F4
-514A
+50D8
514A
5164
-5164
-519D
519D
51BE
-51BE
51EC
-51EC
-5215
5215
529C
-529C
-52A6
52A6
-52AF
-52AF
-52C0
52C0
52DB
-52DB
-5300
5300
5307
-5307
-5324
5324
5372
-5372
-5393
5393
53B2
-53B2
53DD
-53DD
-548A
-548A
-549C
+FA0E
549C
+548A
54A9
-54A9
-54FF
54FF
5586
-5586
-5759
5759
5765
-5765
-57AC
57AC
-57C7
-57C7
-57C8
57C8
-589E
+57C7
+FA0F
+FA10
589E
58B2
-58B2
-590B
590B
5953
-5953
595B
-595B
-595D
595D
5963
-5963
-59A4
59A4
59BA
-59BA
-5B56
5B56
5BC0
-5BC0
-5BD8
+752F
5BD8
5BEC
-5BEC
-5C1E
5C1E
5CA6
-5CA6
-5CBA
5CBA
5CF5
-5CF5
-5D27
5D27
-5D42
-5D42
5D53
-5D53
-5D6D
+FA11
+5D42
5D6D
5DB8
-5DB8
5DB9
-5DB9
-5DD0
5DD0
5F21
-5F21
-5F34
5F34
-5F45
-5F45
-5F67
5F67
5FB7
-5FB7
-5FDE
5FDE
605D
-605D
-6085
6085
608A
-608A
-60D5
-60D5
60DE
-60DE
-60F2
+60D5
+6120
60F2
6111
-6111
-6120
-6120
-6130
-6130
-6137
6137
-6198
+6130
6198
6213
-6213
-62A6
62A6
63F5
-63F5
6460
-6460
-649D
649D
64CE
-64CE
-654E
654E
6600
-6600
-6609
-6609
6615
-6615
-661E
+663B
+6609
+662E
661E
6624
-6624
-662E
-662E
-6631
-6631
-663B
-663B
-6657
+6665
6657
6659
-6659
-6665
-6665
-6673
+FA12
6673
6699
-6699
-66A0
66A0
66B2
-66B2
66BF
-66BF
-66FA
66FA
-66FB
-66FB
670E
-670E
-6766
+F929
6766
67BB
-67BB
-67C0
+6852
67C0
6801
-6801
6844
-6844
-6852
-6852
-68C8
-68C8
68CF
-68CF
-6968
+FA13
6968
+FA14
6998
-6998
-69E2
69E2
6A30
-6A30
-6A46
-6A46
-6A6B
6A6B
+6A46
6A73
-6A73
-6A7E
6A7E
6AE2
-6AE2
-6AE4
6AE4
6BD6
-6BD6
-6C3F
6C3F
6C5C
-6C5C
-6C6F
-6C6F
6C86
-6C86
-6CDA
+6C6F
6CDA
6D04
-6D04
-6D6F
-6D6F
-6D87
6D87
-6D96
+6D6F
6D96
6DAC
-6DAC
-6DCF
6DCF
-6DF2
-6DF2
6DF8
-6DF8
-6DFC
+6DF2
6DFC
-6E27
-6E27
-6E39
6E39
-6E3C
-6E3C
-6E5C
6E5C
+6E27
+6E3C
6EBF
-6EBF
-6F88
6F88
6FB5
-6FB5
-6FF5
6FF5
7005
-7005
7007
-7007
-7028
7028
7085
-7085
-70AB
70AB
-70BB
-70BB
-7104
-7104
-710F
710F
+7104
+715C
7146
-7146
-7147
7147
-715C
-715C
-71C1
+FA15
71C1
71FE
-71FE
-72B1
72B1
72BE
-72BE
-7324
7324
+FA16
7377
-7377
-73BD
73BD
73C9
-73C9
-73D2
-73D2
-73D6
73D6
73E3
-73E3
-73F5
-73F5
-7407
+73D2
7407
+73F5
7426
-7426
-7429
-7429
-742A
742A
-742E
+7429
742E
7462
-7462
-7489
7489
749F
-749F
-7501
7501
-752F
-752F
756F
-756F
-7682
7682
-769B
-769B
-769C
769C
769E
-769E
-76A6
+769B
76A6
+FA17
7746
-7746
-7821
+52AF
7821
784E
-784E
-7864
7864
787A
-787A
-7930
7930
+FA18
+FA19
+FA1A
7994
-7994
-799B
+FA1B
799B
7AD1
-7AD1
7AE7
-7AE7
-7AEB
+FA1C
7AEB
7B9E
-7B9E
-7D48
+FA1D
7D48
7D5C
-7D5C
-7DA0
-7DA0
-7DB7
7DB7
+7DA0
7DD6
-7DD6
-7E52
7E52
-7E8A
-7E8A
7F47
-7F47
-7FA1
7FA1
+FA1E
8301
-8301
-8362
8362
837F
-837F
-83C7
83C7
83F6
-83F6
-8448
8448
84B4
-84B4
-84DC
-84DC
8553
-8553
-8559
8559
856B
-856B
-85B0
+FA1F
85B0
-8807
+FA20
+FA21
8807
88F5
-88F5
-891C
-891C
-8A12
8A12
8A37
-8A37
8A79
-8A79
-8AA7
8AA7
8ABE
-8ABE
-8ADF
8ADF
+FA22
8AF6
-8AF6
-8B53
8B53
8B7F
-8B7F
-8CF0
8CF0
8CF4
-8CF4
-8D12
8D12
8D76
-8D76
-8ECF
+FA23
8ECF
+FA24
+FA25
9067
-9067
-90DE
90DE
-9115
+FA26
9115
9127
-9127
-91D7
-91D7
-91DA
91DA
+91D7
91DE
-91DE
-91E4
-91E4
-91E5
-91E5
-91ED
91ED
91EE
-91EE
-9206
+91E4
+91E5
9206
-920A
-920A
-9210
9210
-9239
-9239
-923A
+920A
923A
-923C
-923C
-9240
9240
+923C
924E
-924E
-9251
-9251
9259
-9259
-9267
+9251
+9239
9267
-9277
+92A7
9277
9278
-9278
-9288
-9288
-92A7
-92A7
-92D0
+92E7
+92D7
+92D9
92D0
-92D3
-92D3
-92D5
+FA27
92D5
-92D7
+92E0
+92D3
+9325
+9321
+92FB
+FA28
+931E
+92FF
+931D
+9302
+9370
+9357
+93A4
+93C6
+93DE
+93F8
+9431
+9445
+9448
+9592
+F9DC
+FA29
+969D
+96AF
+9733
+973B
+9743
+974D
+974F
+9751
+9755
+9857
+9865
+FA2A
+FA2B
+9927
+FA2C
+999E
+9A4E
+9AD9
+9ADC
+9B75
+9B72
+9B8F
+9BB1
+9BBB
+9C00
+9D70
+9D6B
+FA2D
+9E19
+9ED1
+2170
+2171
+2172
+2173
+2174
+2175
+2176
+2177
+2178
+2179
+FFE2
+FFE4
+FF07
+FF02
+2170
+2171
+2172
+2173
+2174
+2175
+2176
+2177
+2178
+2179
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+FFE2
+FFE4
+FF07
+FF02
+3231
+2116
+2121
+2235
+7E8A
+891C
+9348
+9288
+84DC
+4FC9
+70BB
+6631
+68C8
+92F9
+66FB
+5F45
+4E28
+4EE1
+4EFC
+4F00
+4F03
+4F39
+4F56
+4F92
+4F8A
+4F9A
+4F94
+4FCD
+5040
+5022
+4FFF
+501E
+5046
+5070
+5042
+5094
+50F4
+50D8
+514A
+5164
+519D
+51BE
+51EC
+5215
+529C
+52A6
+52C0
+52DB
+5300
+5307
+5324
+5372
+5393
+53B2
+53DD
+FA0E
+549C
+548A
+54A9
+54FF
+5586
+5759
+5765
+57AC
+57C8
+57C7
+FA0F
+FA10
+589E
+58B2
+590B
+5953
+595B
+595D
+5963
+59A4
+59BA
+5B56
+5BC0
+752F
+5BD8
+5BEC
+5C1E
+5CA6
+5CBA
+5CF5
+5D27
+5D53
+FA11
+5D42
+5D6D
+5DB8
+5DB9
+5DD0
+5F21
+5F34
+5F67
+5FB7
+5FDE
+605D
+6085
+608A
+60DE
+60D5
+6120
+60F2
+6111
+6137
+6130
+6198
+6213
+62A6
+63F5
+6460
+649D
+64CE
+654E
+6600
+6615
+663B
+6609
+662E
+661E
+6624
+6665
+6657
+6659
+FA12
+6673
+6699
+66A0
+66B2
+66BF
+66FA
+670E
+F929
+6766
+67BB
+6852
+67C0
+6801
+6844
+68CF
+FA13
+6968
+FA14
+6998
+69E2
+6A30
+6A6B
+6A46
+6A73
+6A7E
+6AE2
+6AE4
+6BD6
+6C3F
+6C5C
+6C86
+6C6F
+6CDA
+6D04
+6D87
+6D6F
+6D96
+6DAC
+6DCF
+6DF8
+6DF2
+6DFC
+6E39
+6E5C
+6E27
+6E3C
+6EBF
+6F88
+6FB5
+6FF5
+7005
+7007
+7028
+7085
+70AB
+710F
+7104
+715C
+7146
+7147
+FA15
+71C1
+71FE
+72B1
+72BE
+7324
+FA16
+7377
+73BD
+73C9
+73D6
+73E3
+73D2
+7407
+73F5
+7426
+742A
+7429
+742E
+7462
+7489
+749F
+7501
+756F
+7682
+769C
+769E
+769B
+76A6
+FA17
+7746
+52AF
+7821
+784E
+7864
+787A
+7930
+FA18
+FA19
+FA1A
+7994
+FA1B
+799B
+7AD1
+7AE7
+FA1C
+7AEB
+7B9E
+FA1D
+7D48
+7D5C
+7DB7
+7DA0
+7DD6
+7E52
+7F47
+7FA1
+FA1E
+8301
+8362
+837F
+83C7
+83F6
+8448
+84B4
+8553
+8559
+856B
+FA1F
+85B0
+FA20
+FA21
+8807
+88F5
+8A12
+8A37
+8A79
+8AA7
+8ABE
+8ADF
+FA22
+8AF6
+8B53
+8B7F
+8CF0
+8CF4
+8D12
+8D76
+FA23
+8ECF
+FA24
+FA25
+9067
+90DE
+FA26
+9115
+9127
+91DA
+91D7
+91DE
+91ED
+91EE
+91E4
+91E5
+9206
+9210
+920A
+923A
+9240
+923C
+924E
+9259
+9251
+9239
+9267
+92A7
+9277
+9278
+92E7
92D7
92D9
-92D9
-92E0
+92D0
+FA27
+92D5
92E0
-92E7
-92E7
-92F9
-92F9
-92FB
+92D3
+9325
+9321
92FB
+FA28
+931E
92FF
-92FF
-9302
-9302
931D
-931D
-931E
-931E
-9321
-9321
-9325
-9325
-9348
-9348
-9357
-9357
-9370
+9302
9370
+9357
93A4
-93A4
-93C6
93C6
93DE
-93DE
-93F8
93F8
9431
-9431
-9445
9445
9448
-9448
-9592
9592
-969D
+F9DC
+FA29
969D
96AF
-96AF
-9733
9733
973B
-973B
-9743
9743
974D
-974D
-974F
974F
9751
-9751
-9755
9755
9857
-9857
-9865
9865
+FA2A
+FA2B
9927
-9927
-999E
+FA2C
999E
9A4E
-9A4E
-9AD9
9AD9
9ADC
-9ADC
-9B72
-9B72
9B75
-9B75
-9B8F
+9B72
9B8F
9BB1
-9BB1
9BBB
-9BBB
-9C00
9C00
-9D6B
-9D6B
-9D70
9D70
+9D6B
+FA2D
9E19
-9E19
-9ED1
9ED1
E000
E001
@@ -5753,90 +5835,8 @@ E754
E755
E756
E757
-F929
-F929
-F9DC
-F9DC
-FA0E
-FA0E
-FA0F
-FA0F
-FA10
-FA10
-FA11
-FA11
-FA12
-FA12
-FA13
-FA13
-FA14
-FA14
-FA15
-FA15
-FA16
-FA16
-FA17
-FA17
-FA18
-FA18
-FA19
-FA19
-FA1A
-FA1A
-FA1B
-FA1B
-FA1C
-FA1C
-FA1D
-FA1D
-FA1E
-FA1E
-FA1F
-FA1F
-FA20
-FA20
-FA21
-FA21
-FA22
-FA22
-FA23
-FA23
-FA24
-FA24
-FA25
-FA25
-FA26
-FA26
-FA27
-FA27
-FA28
-FA28
-FA29
-FA29
-FA2A
-FA2A
-FA2B
-FA2B
-FA2C
-FA2C
-FA2D
-FA2D
-FF02
-FF02
-FF07
-FF07
-FF0D
-FF3C
-FF5E
-FFE0
-FFE1
-FFE2
-FFE2
-FFE2
-FFE4
-FFE4
-CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2 ORDER BY BINARY c1;
-SELECT HEX(c1) FROM t3 ORDER BY BINARY c1;
+CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2;
+SELECT HEX(c1) FROM t3;
HEX(c1)
05
7E
@@ -5847,19 +5847,7 @@ HEX(c1)
817C
8191
8192
-81BE
-81BF
81CA
-81CA
-81CA
-81DA
-81DB
-81DF
-81E0
-81E3
-81E6
-81E6
-81E7
8740
8741
8742
@@ -5881,24 +5869,14 @@ HEX(c1)
8752
8753
8754
-8754
8755
-8755
-8756
8756
8757
-8757
-8758
8758
8759
-8759
-875A
875A
875B
-875B
875C
-875C
-875D
875D
875F
8760
@@ -5927,26 +5905,794 @@ HEX(c1)
8780
8781
8782
-8782
8783
8784
-8784
8785
8786
8787
8788
8789
878A
-878A
878B
878C
878D
878E
878F
+81E0
+81DF
+81E7
8793
8794
+81E3
+81DB
+81DA
8798
8799
+81E6
+81BF
+81BE
+FA5C
+FA5D
+FA5E
+FA5F
+FA60
+FA61
+FA62
+FA63
+FA64
+FA65
+FA66
+FA67
+FA68
+FA69
+FA6A
+FA6B
+FA6C
+FA6D
+FA6E
+FA6F
+FA70
+FA71
+FA72
+FA73
+FA74
+FA75
+FA76
+FA77
+FA78
+FA79
+FA7A
+FA7B
+FA7C
+FA7D
+FA7E
+FA80
+FA81
+FA82
+FA83
+FA84
+FA85
+FA86
+FA87
+FA88
+FA89
+FA8A
+FA8B
+FA8C
+FA8D
+FA8E
+FA8F
+FA90
+FA91
+FA92
+FA93
+FA94
+FA95
+FA96
+FA97
+FA98
+FA99
+FA9A
+FA9B
+FA9C
+FA9D
+FA9E
+FA9F
+FAA0
+FAA1
+FAA2
+FAA3
+FAA4
+FAA5
+FAA6
+FAA7
+FAA8
+FAA9
+FAAA
+FAAB
+FAAC
+FAAD
+FAAE
+FAAF
+FAB0
+FAB1
+FAB2
+FAB3
+FAB4
+FAB5
+FAB6
+FAB7
+FAB8
+FAB9
+FABA
+FABB
+FABC
+FABD
+FABE
+FABF
+FAC0
+FAC1
+FAC2
+FAC3
+FAC4
+FAC5
+FAC6
+FAC7
+FAC8
+FAC9
+FACA
+FACB
+FACC
+FACD
+FACE
+FACF
+FAD0
+FAD1
+FAD2
+FAD3
+FAD4
+FAD5
+FAD6
+FAD7
+FAD8
+FAD9
+FADA
+FADB
+FADC
+FADD
+FADE
+FADF
+FAE0
+FAE1
+FAE2
+FAE3
+FAE4
+FAE5
+FAE6
+FAE7
+FAE8
+FAE9
+FAEA
+FAEB
+FAEC
+FAED
+FAEE
+FAEF
+FAF0
+FAF1
+FAF2
+FAF3
+FAF4
+FAF5
+FAF6
+FAF7
+FAF8
+FAF9
+FAFA
+FAFB
+FAFC
+FB40
+FB41
+FB42
+FB43
+FB44
+FB45
+FB46
+FB47
+FB48
+FB49
+FB4A
+FB4B
+FB4C
+FB4D
+FB4E
+FB4F
+FB50
+FB51
+FB52
+FB53
+FB54
+FB55
+FB56
+FB57
+FB58
+FB59
+FB5A
+FB5B
+FB5C
+FB5D
+FB5E
+FB5F
+FB60
+FB61
+FB62
+FB63
+FB64
+FB65
+FB66
+FB67
+FB68
+FB69
+FB6A
+FB6B
+FB6C
+FB6D
+FB6E
+FB6F
+FB70
+FB71
+FB72
+FB73
+FB74
+FB75
+FB76
+FB77
+FB78
+FB79
+FB7A
+FB7B
+FB7C
+FB7D
+FB7E
+FB80
+FB81
+FB82
+FB83
+FB84
+FB85
+FB86
+FB87
+FB88
+FB89
+FB8A
+FB8B
+FB8C
+FB8D
+FB8E
+FB8F
+FB90
+FB91
+FB92
+FB93
+FB94
+FB95
+FB96
+FB97
+FB98
+FB99
+FB9A
+FB9B
+FB9C
+FB9D
+FB9E
+FB9F
+FBA0
+FBA1
+FBA2
+FBA3
+FBA4
+FBA5
+FBA6
+FBA7
+FBA8
+FBA9
+FBAA
+FBAB
+FBAC
+FBAD
+FBAE
+FBAF
+FBB0
+FBB1
+FBB2
+FBB3
+FBB4
+FBB5
+FBB6
+FBB7
+FBB8
+FBB9
+FBBA
+FBBB
+FBBC
+FBBD
+FBBE
+FBBF
+FBC0
+FBC1
+FBC2
+FBC3
+FBC4
+FBC5
+FBC6
+FBC7
+FBC8
+FBC9
+FBCA
+FBCB
+FBCC
+FBCD
+FBCE
+FBCF
+FBD0
+FBD1
+FBD2
+FBD3
+FBD4
+FBD5
+FBD6
+FBD7
+FBD8
+FBD9
+FBDA
+FBDB
+FBDC
+FBDD
+FBDE
+FBDF
+FBE0
+FBE1
+FBE2
+FBE3
+FBE4
+FBE5
+FBE6
+FBE7
+FBE8
+FBE9
+FBEA
+FBEB
+FBEC
+FBED
+FBEE
+FBEF
+FBF0
+FBF1
+FBF2
+FBF3
+FBF4
+FBF5
+FBF6
+FBF7
+FBF8
+FBF9
+FBFA
+FBFB
+FBFC
+FC40
+FC41
+FC42
+FC43
+FC44
+FC45
+FC46
+FC47
+FC48
+FC49
+FC4A
+FC4B
+FA40
+FA41
+FA42
+FA43
+FA44
+FA45
+FA46
+FA47
+FA48
+FA49
+81CA
+FA55
+FA56
+FA57
+FA40
+FA41
+FA42
+FA43
+FA44
+FA45
+FA46
+FA47
+FA48
+FA49
+8754
+8755
+8756
+8757
+8758
+8759
+875A
+875B
+875C
+875D
+81CA
+FA55
+FA56
+FA57
+878A
+8782
+8784
+81E6
+FA5C
+FA5D
+FA5E
+FA5F
+FA60
+FA61
+FA62
+FA63
+FA64
+FA65
+FA66
+FA67
+FA68
+FA69
+FA6A
+FA6B
+FA6C
+FA6D
+FA6E
+FA6F
+FA70
+FA71
+FA72
+FA73
+FA74
+FA75
+FA76
+FA77
+FA78
+FA79
+FA7A
+FA7B
+FA7C
+FA7D
+FA7E
+FA80
+FA81
+FA82
+FA83
+FA84
+FA85
+FA86
+FA87
+FA88
+FA89
+FA8A
+FA8B
+FA8C
+FA8D
+FA8E
+FA8F
+FA90
+FA91
+FA92
+FA93
+FA94
+FA95
+FA96
+FA97
+FA98
+FA99
+FA9A
+FA9B
+FA9C
+FA9D
+FA9E
+FA9F
+FAA0
+FAA1
+FAA2
+FAA3
+FAA4
+FAA5
+FAA6
+FAA7
+FAA8
+FAA9
+FAAA
+FAAB
+FAAC
+FAAD
+FAAE
+FAAF
+FAB0
+FAB1
+FAB2
+FAB3
+FAB4
+FAB5
+FAB6
+FAB7
+FAB8
+FAB9
+FABA
+FABB
+FABC
+FABD
+FABE
+FABF
+FAC0
+FAC1
+FAC2
+FAC3
+FAC4
+FAC5
+FAC6
+FAC7
+FAC8
+FAC9
+FACA
+FACB
+FACC
+FACD
+FACE
+FACF
+FAD0
+FAD1
+FAD2
+FAD3
+FAD4
+FAD5
+FAD6
+FAD7
+FAD8
+FAD9
+FADA
+FADB
+FADC
+FADD
+FADE
+FADF
+FAE0
+FAE1
+FAE2
+FAE3
+FAE4
+FAE5
+FAE6
+FAE7
+FAE8
+FAE9
+FAEA
+FAEB
+FAEC
+FAED
+FAEE
+FAEF
+FAF0
+FAF1
+FAF2
+FAF3
+FAF4
+FAF5
+FAF6
+FAF7
+FAF8
+FAF9
+FAFA
+FAFB
+FAFC
+FB40
+FB41
+FB42
+FB43
+FB44
+FB45
+FB46
+FB47
+FB48
+FB49
+FB4A
+FB4B
+FB4C
+FB4D
+FB4E
+FB4F
+FB50
+FB51
+FB52
+FB53
+FB54
+FB55
+FB56
+FB57
+FB58
+FB59
+FB5A
+FB5B
+FB5C
+FB5D
+FB5E
+FB5F
+FB60
+FB61
+FB62
+FB63
+FB64
+FB65
+FB66
+FB67
+FB68
+FB69
+FB6A
+FB6B
+FB6C
+FB6D
+FB6E
+FB6F
+FB70
+FB71
+FB72
+FB73
+FB74
+FB75
+FB76
+FB77
+FB78
+FB79
+FB7A
+FB7B
+FB7C
+FB7D
+FB7E
+FB80
+FB81
+FB82
+FB83
+FB84
+FB85
+FB86
+FB87
+FB88
+FB89
+FB8A
+FB8B
+FB8C
+FB8D
+FB8E
+FB8F
+FB90
+FB91
+FB92
+FB93
+FB94
+FB95
+FB96
+FB97
+FB98
+FB99
+FB9A
+FB9B
+FB9C
+FB9D
+FB9E
+FB9F
+FBA0
+FBA1
+FBA2
+FBA3
+FBA4
+FBA5
+FBA6
+FBA7
+FBA8
+FBA9
+FBAA
+FBAB
+FBAC
+FBAD
+FBAE
+FBAF
+FBB0
+FBB1
+FBB2
+FBB3
+FBB4
+FBB5
+FBB6
+FBB7
+FBB8
+FBB9
+FBBA
+FBBB
+FBBC
+FBBD
+FBBE
+FBBF
+FBC0
+FBC1
+FBC2
+FBC3
+FBC4
+FBC5
+FBC6
+FBC7
+FBC8
+FBC9
+FBCA
+FBCB
+FBCC
+FBCD
+FBCE
+FBCF
+FBD0
+FBD1
+FBD2
+FBD3
+FBD4
+FBD5
+FBD6
+FBD7
+FBD8
+FBD9
+FBDA
+FBDB
+FBDC
+FBDD
+FBDE
+FBDF
+FBE0
+FBE1
+FBE2
+FBE3
+FBE4
+FBE5
+FBE6
+FBE7
+FBE8
+FBE9
+FBEA
+FBEB
+FBEC
+FBED
+FBEE
+FBEF
+FBF0
+FBF1
+FBF2
+FBF3
+FBF4
+FBF5
+FBF6
+FBF7
+FBF8
+FBF9
+FBFA
+FBFB
+FBFC
+FC40
+FC41
+FC42
+FC43
+FC44
+FC45
+FC46
+FC47
+FC48
+FC49
+FC4A
+FC4B
F040
F041
F042
@@ -7827,755 +8573,2748 @@ F9F9
F9FA
F9FB
F9FC
-FA40
-FA40
-FA41
-FA41
-FA42
-FA42
-FA43
-FA43
-FA44
-FA44
-FA45
-FA45
-FA46
-FA46
-FA47
-FA47
-FA48
-FA48
-FA49
-FA49
-FA55
-FA55
-FA56
-FA56
-FA57
-FA57
-FA5C
-FA5C
-FA5D
-FA5D
-FA5E
-FA5E
-FA5F
-FA5F
-FA60
-FA60
-FA61
-FA61
-FA62
-FA62
-FA63
-FA63
-FA64
-FA64
-FA65
-FA65
-FA66
-FA66
-FA67
-FA67
-FA68
-FA68
-FA69
-FA69
-FA6A
-FA6A
-FA6B
-FA6B
-FA6C
-FA6C
-FA6D
-FA6D
-FA6E
-FA6E
-FA6F
-FA6F
-FA70
-FA70
-FA71
-FA71
-FA72
-FA72
-FA73
-FA73
-FA74
-FA74
-FA75
-FA75
-FA76
-FA76
-FA77
-FA77
-FA78
-FA78
-FA79
-FA79
-FA7A
-FA7A
-FA7B
-FA7B
-FA7C
-FA7C
-FA7D
-FA7D
-FA7E
-FA7E
-FA80
-FA80
-FA81
-FA81
-FA82
-FA82
-FA83
-FA83
-FA84
-FA84
-FA85
-FA85
-FA86
-FA86
-FA87
-FA87
-FA88
-FA88
-FA89
-FA89
-FA8A
-FA8A
-FA8B
-FA8B
-FA8C
-FA8C
-FA8D
-FA8D
-FA8E
-FA8E
-FA8F
-FA8F
-FA90
-FA90
-FA91
-FA91
-FA92
-FA92
-FA93
-FA93
-FA94
-FA94
-FA95
-FA95
-FA96
-FA96
-FA97
-FA97
-FA98
-FA98
-FA99
-FA99
-FA9A
-FA9A
-FA9B
-FA9B
-FA9C
-FA9C
-FA9D
-FA9D
-FA9E
-FA9E
-FA9F
-FA9F
-FAA0
-FAA0
-FAA1
+CREATE TABLE t4 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t1;
+SELECT HEX(c1) FROM t4;
+HEX(c1)
+05
+7E
+A1BD
+A1C0
+A1C1
+A1C2
+A1DD
+A1F1
+A1F2
+A2CC
+ADA1
+ADA2
+ADA3
+ADA4
+ADA5
+ADA6
+ADA7
+ADA8
+ADA9
+ADAA
+ADAB
+ADAC
+ADAD
+ADAE
+ADAF
+ADB0
+ADB1
+ADB2
+ADB3
+ADB4
+ADB5
+ADB6
+ADB7
+ADB8
+ADB9
+ADBA
+ADBB
+ADBC
+ADBD
+ADBE
+ADC0
+ADC1
+ADC2
+ADC3
+ADC4
+ADC5
+ADC6
+ADC7
+ADC8
+ADC9
+ADCA
+ADCB
+ADCC
+ADCD
+ADCE
+ADCF
+ADD0
+ADD1
+ADD2
+ADD3
+ADD4
+ADD5
+ADD6
+ADDF
+ADE0
+ADE1
+ADE2
+ADE3
+ADE4
+ADE5
+ADE6
+ADE7
+ADE8
+ADE9
+ADEA
+ADEB
+ADEC
+ADED
+ADEE
+ADEF
+A2E2
+A2E1
+A2E9
+ADF3
+ADF4
+A2E5
+A2DD
+A2DC
+ADF8
+ADF9
+A2E8
+A2C1
+A2C0
+8FD4E3
+8FDCDF
+8FE4E9
+8FE3F8
+8FD9A1
+8FB1BB
+8FF4AE
+8FC2AD
+8FC3FC
+8FE4D0
+8FC2BF
+8FBCF4
+8FB0A9
+8FB0C8
+8FF4AF
+8FB0D2
+8FB0D4
+8FB0E3
+8FB0EE
+8FB1A7
+8FB1A3
+8FB1AC
+8FB1A9
+8FB1BE
+8FB1DF
+8FB1D8
+8FB1C8
+8FB1D7
+8FB1E3
+8FB1F4
+8FB1E1
+8FB2A3
+8FF4B0
+8FB2BB
+8FB2E6
+8FB2ED
+8FB2F5
+8FB2FC
+8FF4B1
+8FB3B5
+8FB3D8
+8FB3DB
+8FB3E5
+8FB3EE
+8FB3FB
+8FF4B2
+8FF4B3
+8FB4C0
+8FB4C7
+8FB4D0
+8FB4DE
+8FF4B4
+8FB5AA
+8FF4B5
+8FB5AF
+8FB5C4
+8FB5E8
+8FF4B6
+8FB7C2
+8FB7E4
+8FB7E8
+8FB7E7
+8FF4B7
+8FF4B8
+8FF4B9
+8FB8CE
+8FB8E1
+8FB8F5
+8FB8F7
+8FB8F8
+8FB8FC
+8FB9AF
+8FB9B7
+8FBABE
+8FBADB
+8FCDAA
+8FBAE1
+8FF4BA
+8FBAEB
+8FBBB3
+8FBBB8
+8FF4BB
+8FBBCA
+8FF4BC
+8FF4BD
+8FBBD0
+8FBBDE
+8FBBF4
+8FBBF5
+8FBBF9
+8FBCE4
+8FBCED
+8FBCFE
+8FF4BE
+8FBDC2
+8FBDE7
+8FF4BF
+8FBDF0
+8FBEB0
+8FBEAC
+8FF4C0
+8FBEB3
+8FBEBD
+8FBECD
+8FBEC9
+8FBEE4
+8FBFA8
+8FBFC9
+8FC0C4
+8FC0E4
+8FC0F4
+8FC1A6
+8FF4C1
+8FC1F5
+8FC1FC
+8FF4C2
+8FC1F8
+8FC2AB
+8FC2A1
+8FC2A5
+8FF4C3
+8FC2B8
+8FC2BA
+8FF4C4
+8FC2C4
+8FC2D2
+8FC2D7
+8FC2DB
+8FC2DE
+8FC2ED
+8FC2F0
+8FF4C5
+8FC3A1
+8FC3B5
+8FC3C9
+8FC3B9
+8FF4C6
+8FC3D8
+8FC3FE
+8FF4C7
+8FC4CC
+8FF4C8
+8FC4D9
+8FC4EA
+8FC4FD
+8FF4C9
+8FC5A7
+8FC5B5
+8FC5B6
+8FF4CA
+8FC5D5
+8FC6B8
+8FC6D7
+8FC6E0
+8FC6EA
+8FC6E3
+8FC7A1
+8FC7AB
+8FC7C7
+8FC7C3
+8FC7CB
+8FC7CF
+8FC7D9
+8FF4CB
+8FF4CC
+8FC7E6
+8FC7EE
+8FC7FC
+8FC7EB
+8FC7F0
+8FC8B1
+8FC8E5
+8FC8F8
+8FC9A6
+8FC9AB
+8FC9AD
+8FF4CD
+8FC9CA
+8FC9D3
+8FC9E9
+8FC9E3
+8FC9FC
+8FC9F4
+8FC9F5
+8FF4CE
+8FCAB3
+8FCABD
+8FCAEF
+8FCAF1
+8FCBAE
+8FF4CF
+8FCBCA
+8FCBE6
+8FCBEA
+8FCBF0
+8FCBF4
+8FCBEE
+8FCCA5
+8FCBF9
+8FCCAB
+8FCCAE
+8FCCAD
+8FCCB2
+8FCCC2
+8FCCD0
+8FCCD9
+8FF4D0
+8FCDBB
+8FF4D1
+8FCEBB
+8FF4D2
+8FCEBA
+8FCEC3
+8FF4D3
+8FCEF2
+8FB3DD
+8FCFD5
+8FCFE2
+8FCFE9
+8FCFED
+8FF4D4
+8FF4D5
+8FF4D6
+8FF4D7
+8FD0E5
+8FF4D8
+8FD0E9
+8FD1E8
+8FF4D9
+8FF4DA
+8FD1EC
+8FD2BB
+8FF4DB
+8FD3E1
+8FD3E8
+8FD4A7
+8FF4DC
+8FF4DD
+8FD4D4
+8FD4F2
+8FD5AE
+8FF4DE
+8FD7DE
+8FF4DF
+8FD8A2
+8FD8B7
+8FD8C1
+8FD8D1
+8FD8F4
+8FD9C6
+8FD9C8
+8FD9D1
+8FF4E0
+8FF4E1
+8FF4E2
+8FF4E3
+8FF4E4
+8FDCD3
+8FDDC8
+8FDDD4
+8FDDEA
+8FDDFA
+8FDEA4
+8FDEB0
+8FF4E5
+8FDEB5
+8FDECB
+8FF4E6
+8FDFB9
+8FF4E7
+8FDFC3
+8FF4E8
+8FF4E9
+8FE0D9
+8FF4EA
+8FF4EB
+8FE1E2
+8FF4EC
+8FF4ED
+8FF4EE
+8FE2C7
+8FE3A8
+8FE3A6
+8FE3A9
+8FE3AF
+8FE3B0
+8FE3AA
+8FE3AB
+8FE3BC
+8FE3C1
+8FE3BF
+8FE3D5
+8FE3D8
+8FE3D6
+8FE3DF
+8FE3E3
+8FE3E1
+8FE3D4
+8FE3E9
+8FE4A6
+8FE3F1
+8FE3F2
+8FE4CB
+8FE4C1
+8FE4C3
+8FE4BE
+8FF4EF
+8FE4C0
+8FE4C7
+8FE4BF
+8FE4E0
+8FE4DE
+8FE4D1
+8FF4F0
+8FE4DC
+8FE4D2
+8FE4DB
+8FE4D4
+8FE4FA
+8FE4EF
+8FE5B3
+8FE5BF
+8FE5C9
+8FE5D0
+8FE5E2
+8FE5EA
+8FE5EB
+8FF4F1
+8FF4F2
+8FF4F3
+8FE6E8
+8FE6EF
+8FE7AC
+8FF4F4
+8FE7AE
+8FF4F5
+8FE7B1
+8FF4F6
+8FE7B2
+8FE8B1
+8FE8B6
+8FF4F7
+8FF4F8
+8FE8DD
+8FF4F9
+8FF4FA
+8FE9D1
+8FF4FB
+8FE9ED
+8FEACD
+8FF4FC
+8FEADB
+8FEAE6
+8FEAEA
+8FEBA5
+8FEBFB
+8FEBFA
+8FF4FD
+8FECD6
+8FF4FE
+8FF3F3
+8FF3F4
+8FF3F5
+8FF3F6
+8FF3F7
+8FF3F8
+8FF3F9
+8FF3FA
+8FF3FB
+8FF3FC
+A2CC
+8FA2C3
+8FF4A9
+8FF4AA
+8FF3F3
+8FF3F4
+8FF3F5
+8FF3F6
+8FF3F7
+8FF3F8
+8FF3F9
+8FF3FA
+8FF3FB
+8FF3FC
+ADB5
+ADB6
+ADB7
+ADB8
+ADB9
+ADBA
+ADBB
+ADBC
+ADBD
+ADBE
+A2CC
+8FA2C3
+8FF4A9
+8FF4AA
+ADEA
+ADE2
+ADE4
+A2E8
+8FD4E3
+8FDCDF
+8FE4E9
+8FE3F8
+8FD9A1
+8FB1BB
+8FF4AE
+8FC2AD
+8FC3FC
+8FE4D0
+8FC2BF
+8FBCF4
+8FB0A9
+8FB0C8
+8FF4AF
+8FB0D2
+8FB0D4
+8FB0E3
+8FB0EE
+8FB1A7
+8FB1A3
+8FB1AC
+8FB1A9
+8FB1BE
+8FB1DF
+8FB1D8
+8FB1C8
+8FB1D7
+8FB1E3
+8FB1F4
+8FB1E1
+8FB2A3
+8FF4B0
+8FB2BB
+8FB2E6
+8FB2ED
+8FB2F5
+8FB2FC
+8FF4B1
+8FB3B5
+8FB3D8
+8FB3DB
+8FB3E5
+8FB3EE
+8FB3FB
+8FF4B2
+8FF4B3
+8FB4C0
+8FB4C7
+8FB4D0
+8FB4DE
+8FF4B4
+8FB5AA
+8FF4B5
+8FB5AF
+8FB5C4
+8FB5E8
+8FF4B6
+8FB7C2
+8FB7E4
+8FB7E8
+8FB7E7
+8FF4B7
+8FF4B8
+8FF4B9
+8FB8CE
+8FB8E1
+8FB8F5
+8FB8F7
+8FB8F8
+8FB8FC
+8FB9AF
+8FB9B7
+8FBABE
+8FBADB
+8FCDAA
+8FBAE1
+8FF4BA
+8FBAEB
+8FBBB3
+8FBBB8
+8FF4BB
+8FBBCA
+8FF4BC
+8FF4BD
+8FBBD0
+8FBBDE
+8FBBF4
+8FBBF5
+8FBBF9
+8FBCE4
+8FBCED
+8FBCFE
+8FF4BE
+8FBDC2
+8FBDE7
+8FF4BF
+8FBDF0
+8FBEB0
+8FBEAC
+8FF4C0
+8FBEB3
+8FBEBD
+8FBECD
+8FBEC9
+8FBEE4
+8FBFA8
+8FBFC9
+8FC0C4
+8FC0E4
+8FC0F4
+8FC1A6
+8FF4C1
+8FC1F5
+8FC1FC
+8FF4C2
+8FC1F8
+8FC2AB
+8FC2A1
+8FC2A5
+8FF4C3
+8FC2B8
+8FC2BA
+8FF4C4
+8FC2C4
+8FC2D2
+8FC2D7
+8FC2DB
+8FC2DE
+8FC2ED
+8FC2F0
+8FF4C5
+8FC3A1
+8FC3B5
+8FC3C9
+8FC3B9
+8FF4C6
+8FC3D8
+8FC3FE
+8FF4C7
+8FC4CC
+8FF4C8
+8FC4D9
+8FC4EA
+8FC4FD
+8FF4C9
+8FC5A7
+8FC5B5
+8FC5B6
+8FF4CA
+8FC5D5
+8FC6B8
+8FC6D7
+8FC6E0
+8FC6EA
+8FC6E3
+8FC7A1
+8FC7AB
+8FC7C7
+8FC7C3
+8FC7CB
+8FC7CF
+8FC7D9
+8FF4CB
+8FF4CC
+8FC7E6
+8FC7EE
+8FC7FC
+8FC7EB
+8FC7F0
+8FC8B1
+8FC8E5
+8FC8F8
+8FC9A6
+8FC9AB
+8FC9AD
+8FF4CD
+8FC9CA
+8FC9D3
+8FC9E9
+8FC9E3
+8FC9FC
+8FC9F4
+8FC9F5
+8FF4CE
+8FCAB3
+8FCABD
+8FCAEF
+8FCAF1
+8FCBAE
+8FF4CF
+8FCBCA
+8FCBE6
+8FCBEA
+8FCBF0
+8FCBF4
+8FCBEE
+8FCCA5
+8FCBF9
+8FCCAB
+8FCCAE
+8FCCAD
+8FCCB2
+8FCCC2
+8FCCD0
+8FCCD9
+8FF4D0
+8FCDBB
+8FF4D1
+8FCEBB
+8FF4D2
+8FCEBA
+8FCEC3
+8FF4D3
+8FCEF2
+8FB3DD
+8FCFD5
+8FCFE2
+8FCFE9
+8FCFED
+8FF4D4
+8FF4D5
+8FF4D6
+8FF4D7
+8FD0E5
+8FF4D8
+8FD0E9
+8FD1E8
+8FF4D9
+8FF4DA
+8FD1EC
+8FD2BB
+8FF4DB
+8FD3E1
+8FD3E8
+8FD4A7
+8FF4DC
+8FF4DD
+8FD4D4
+8FD4F2
+8FD5AE
+8FF4DE
+8FD7DE
+8FF4DF
+8FD8A2
+8FD8B7
+8FD8C1
+8FD8D1
+8FD8F4
+8FD9C6
+8FD9C8
+8FD9D1
+8FF4E0
+8FF4E1
+8FF4E2
+8FF4E3
+8FF4E4
+8FDCD3
+8FDDC8
+8FDDD4
+8FDDEA
+8FDDFA
+8FDEA4
+8FDEB0
+8FF4E5
+8FDEB5
+8FDECB
+8FF4E6
+8FDFB9
+8FF4E7
+8FDFC3
+8FF4E8
+8FF4E9
+8FE0D9
+8FF4EA
+8FF4EB
+8FE1E2
+8FF4EC
+8FF4ED
+8FF4EE
+8FE2C7
+8FE3A8
+8FE3A6
+8FE3A9
+8FE3AF
+8FE3B0
+8FE3AA
+8FE3AB
+8FE3BC
+8FE3C1
+8FE3BF
+8FE3D5
+8FE3D8
+8FE3D6
+8FE3DF
+8FE3E3
+8FE3E1
+8FE3D4
+8FE3E9
+8FE4A6
+8FE3F1
+8FE3F2
+8FE4CB
+8FE4C1
+8FE4C3
+8FE4BE
+8FF4EF
+8FE4C0
+8FE4C7
+8FE4BF
+8FE4E0
+8FE4DE
+8FE4D1
+8FF4F0
+8FE4DC
+8FE4D2
+8FE4DB
+8FE4D4
+8FE4FA
+8FE4EF
+8FE5B3
+8FE5BF
+8FE5C9
+8FE5D0
+8FE5E2
+8FE5EA
+8FE5EB
+8FF4F1
+8FF4F2
+8FF4F3
+8FE6E8
+8FE6EF
+8FE7AC
+8FF4F4
+8FE7AE
+8FF4F5
+8FE7B1
+8FF4F6
+8FE7B2
+8FE8B1
+8FE8B6
+8FF4F7
+8FF4F8
+8FE8DD
+8FF4F9
+8FF4FA
+8FE9D1
+8FF4FB
+8FE9ED
+8FEACD
+8FF4FC
+8FEADB
+8FEAE6
+8FEAEA
+8FEBA5
+8FEBFB
+8FEBFA
+8FF4FD
+8FECD6
+8FF4FE
+F5A1
+F5A2
+F5A3
+F5A4
+F5A5
+F5A6
+F5A7
+F5A8
+F5A9
+F5AA
+F5AB
+F5AC
+F5AD
+F5AE
+F5AF
+F5B0
+F5B1
+F5B2
+F5B3
+F5B4
+F5B5
+F5B6
+F5B7
+F5B8
+F5B9
+F5BA
+F5BB
+F5BC
+F5BD
+F5BE
+F5BF
+F5C0
+F5C1
+F5C2
+F5C3
+F5C4
+F5C5
+F5C6
+F5C7
+F5C8
+F5C9
+F5CA
+F5CB
+F5CC
+F5CD
+F5CE
+F5CF
+F5D0
+F5D1
+F5D2
+F5D3
+F5D4
+F5D5
+F5D6
+F5D7
+F5D8
+F5D9
+F5DA
+F5DB
+F5DC
+F5DD
+F5DE
+F5DF
+F5E0
+F5E1
+F5E2
+F5E3
+F5E4
+F5E5
+F5E6
+F5E7
+F5E8
+F5E9
+F5EA
+F5EB
+F5EC
+F5ED
+F5EE
+F5EF
+F5F0
+F5F1
+F5F2
+F5F3
+F5F4
+F5F5
+F5F6
+F5F7
+F5F8
+F5F9
+F5FA
+F5FB
+F5FC
+F5FD
+F5FE
+F6A1
+F6A2
+F6A3
+F6A4
+F6A5
+F6A6
+F6A7
+F6A8
+F6A9
+F6AA
+F6AB
+F6AC
+F6AD
+F6AE
+F6AF
+F6B0
+F6B1
+F6B2
+F6B3
+F6B4
+F6B5
+F6B6
+F6B7
+F6B8
+F6B9
+F6BA
+F6BB
+F6BC
+F6BD
+F6BE
+F6BF
+F6C0
+F6C1
+F6C2
+F6C3
+F6C4
+F6C5
+F6C6
+F6C7
+F6C8
+F6C9
+F6CA
+F6CB
+F6CC
+F6CD
+F6CE
+F6CF
+F6D0
+F6D1
+F6D2
+F6D3
+F6D4
+F6D5
+F6D6
+F6D7
+F6D8
+F6D9
+F6DA
+F6DB
+F6DC
+F6DD
+F6DE
+F6DF
+F6E0
+F6E1
+F6E2
+F6E3
+F6E4
+F6E5
+F6E6
+F6E7
+F6E8
+F6E9
+F6EA
+F6EB
+F6EC
+F6ED
+F6EE
+F6EF
+F6F0
+F6F1
+F6F2
+F6F3
+F6F4
+F6F5
+F6F6
+F6F7
+F6F8
+F6F9
+F6FA
+F6FB
+F6FC
+F6FD
+F6FE
+F7A1
+F7A2
+F7A3
+F7A4
+F7A5
+F7A6
+F7A7
+F7A8
+F7A9
+F7AA
+F7AB
+F7AC
+F7AD
+F7AE
+F7AF
+F7B0
+F7B1
+F7B2
+F7B3
+F7B4
+F7B5
+F7B6
+F7B7
+F7B8
+F7B9
+F7BA
+F7BB
+F7BC
+F7BD
+F7BE
+F7BF
+F7C0
+F7C1
+F7C2
+F7C3
+F7C4
+F7C5
+F7C6
+F7C7
+F7C8
+F7C9
+F7CA
+F7CB
+F7CC
+F7CD
+F7CE
+F7CF
+F7D0
+F7D1
+F7D2
+F7D3
+F7D4
+F7D5
+F7D6
+F7D7
+F7D8
+F7D9
+F7DA
+F7DB
+F7DC
+F7DD
+F7DE
+F7DF
+F7E0
+F7E1
+F7E2
+F7E3
+F7E4
+F7E5
+F7E6
+F7E7
+F7E8
+F7E9
+F7EA
+F7EB
+F7EC
+F7ED
+F7EE
+F7EF
+F7F0
+F7F1
+F7F2
+F7F3
+F7F4
+F7F5
+F7F6
+F7F7
+F7F8
+F7F9
+F7FA
+F7FB
+F7FC
+F7FD
+F7FE
+F8A1
+F8A2
+F8A3
+F8A4
+F8A5
+F8A6
+F8A7
+F8A8
+F8A9
+F8AA
+F8AB
+F8AC
+F8AD
+F8AE
+F8AF
+F8B0
+F8B1
+F8B2
+F8B3
+F8B4
+F8B5
+F8B6
+F8B7
+F8B8
+F8B9
+F8BA
+F8BB
+F8BC
+F8BD
+F8BE
+F8BF
+F8C0
+F8C1
+F8C2
+F8C3
+F8C4
+F8C5
+F8C6
+F8C7
+F8C8
+F8C9
+F8CA
+F8CB
+F8CC
+F8CD
+F8CE
+F8CF
+F8D0
+F8D1
+F8D2
+F8D3
+F8D4
+F8D5
+F8D6
+F8D7
+F8D8
+F8D9
+F8DA
+F8DB
+F8DC
+F8DD
+F8DE
+F8DF
+F8E0
+F8E1
+F8E2
+F8E3
+F8E4
+F8E5
+F8E6
+F8E7
+F8E8
+F8E9
+F8EA
+F8EB
+F8EC
+F8ED
+F8EE
+F8EF
+F8F0
+F8F1
+F8F2
+F8F3
+F8F4
+F8F5
+F8F6
+F8F7
+F8F8
+F8F9
+F8FA
+F8FB
+F8FC
+F8FD
+F8FE
+F9A1
+F9A2
+F9A3
+F9A4
+F9A5
+F9A6
+F9A7
+F9A8
+F9A9
+F9AA
+F9AB
+F9AC
+F9AD
+F9AE
+F9AF
+F9B0
+F9B1
+F9B2
+F9B3
+F9B4
+F9B5
+F9B6
+F9B7
+F9B8
+F9B9
+F9BA
+F9BB
+F9BC
+F9BD
+F9BE
+F9BF
+F9C0
+F9C1
+F9C2
+F9C3
+F9C4
+F9C5
+F9C6
+F9C7
+F9C8
+F9C9
+F9CA
+F9CB
+F9CC
+F9CD
+F9CE
+F9CF
+F9D0
+F9D1
+F9D2
+F9D3
+F9D4
+F9D5
+F9D6
+F9D7
+F9D8
+F9D9
+F9DA
+F9DB
+F9DC
+F9DD
+F9DE
+F9DF
+F9E0
+F9E1
+F9E2
+F9E3
+F9E4
+F9E5
+F9E6
+F9E7
+F9E8
+F9E9
+F9EA
+F9EB
+F9EC
+F9ED
+F9EE
+F9EF
+F9F0
+F9F1
+F9F2
+F9F3
+F9F4
+F9F5
+F9F6
+F9F7
+F9F8
+F9F9
+F9FA
+F9FB
+F9FC
+F9FD
+F9FE
FAA1
FAA2
-FAA2
FAA3
-FAA3
-FAA4
FAA4
FAA5
-FAA5
-FAA6
FAA6
FAA7
-FAA7
-FAA8
FAA8
FAA9
-FAA9
-FAAA
FAAA
FAAB
-FAAB
-FAAC
FAAC
FAAD
-FAAD
FAAE
-FAAE
-FAAF
FAAF
FAB0
-FAB0
-FAB1
FAB1
FAB2
-FAB2
-FAB3
FAB3
FAB4
-FAB4
FAB5
-FAB5
-FAB6
FAB6
FAB7
-FAB7
-FAB8
FAB8
FAB9
-FAB9
-FABA
FABA
FABB
-FABB
FABC
-FABC
-FABD
FABD
FABE
-FABE
-FABF
FABF
FAC0
-FAC0
-FAC1
FAC1
FAC2
-FAC2
-FAC3
FAC3
FAC4
-FAC4
-FAC5
FAC5
FAC6
-FAC6
-FAC7
FAC7
FAC8
-FAC8
-FAC9
FAC9
FACA
-FACA
FACB
-FACB
-FACC
FACC
FACD
-FACD
-FACE
FACE
FACF
-FACF
-FAD0
FAD0
FAD1
-FAD1
FAD2
-FAD2
-FAD3
FAD3
FAD4
-FAD4
-FAD5
FAD5
FAD6
-FAD6
-FAD7
FAD7
FAD8
-FAD8
FAD9
-FAD9
-FADA
FADA
FADB
-FADB
-FADC
FADC
FADD
-FADD
-FADE
FADE
FADF
-FADF
-FAE0
FAE0
FAE1
-FAE1
-FAE2
FAE2
FAE3
-FAE3
-FAE4
FAE4
FAE5
-FAE5
-FAE6
FAE6
FAE7
-FAE7
FAE8
-FAE8
-FAE9
FAE9
FAEA
-FAEA
-FAEB
FAEB
FAEC
-FAEC
-FAED
FAED
FAEE
-FAEE
FAEF
-FAEF
-FAF0
FAF0
FAF1
-FAF1
-FAF2
FAF2
FAF3
-FAF3
-FAF4
FAF4
FAF5
-FAF5
FAF6
-FAF6
-FAF7
FAF7
FAF8
-FAF8
-FAF9
FAF9
FAFA
-FAFA
-FAFB
FAFB
FAFC
-FAFC
-FB40
-FB40
-FB41
-FB41
-FB42
-FB42
-FB43
-FB43
-FB44
-FB44
-FB45
-FB45
-FB46
-FB46
-FB47
-FB47
-FB48
-FB48
-FB49
-FB49
-FB4A
-FB4A
-FB4B
-FB4B
-FB4C
-FB4C
-FB4D
-FB4D
-FB4E
-FB4E
-FB4F
-FB4F
-FB50
-FB50
-FB51
-FB51
-FB52
-FB52
-FB53
-FB53
-FB54
-FB54
-FB55
-FB55
-FB56
-FB56
-FB57
-FB57
-FB58
-FB58
-FB59
-FB59
-FB5A
-FB5A
-FB5B
-FB5B
-FB5C
-FB5C
-FB5D
-FB5D
-FB5E
-FB5E
-FB5F
-FB5F
-FB60
-FB60
-FB61
-FB61
-FB62
-FB62
-FB63
-FB63
-FB64
-FB64
-FB65
-FB65
-FB66
-FB66
-FB67
-FB67
-FB68
-FB68
-FB69
-FB69
-FB6A
-FB6A
-FB6B
-FB6B
-FB6C
-FB6C
-FB6D
-FB6D
-FB6E
-FB6E
-FB6F
-FB6F
-FB70
-FB70
-FB71
-FB71
-FB72
-FB72
-FB73
-FB73
-FB74
-FB74
-FB75
-FB75
-FB76
-FB76
-FB77
-FB77
-FB78
-FB78
-FB79
-FB79
-FB7A
-FB7A
-FB7B
-FB7B
-FB7C
-FB7C
-FB7D
-FB7D
-FB7E
-FB7E
-FB80
-FB80
-FB81
-FB81
-FB82
-FB82
-FB83
-FB83
-FB84
-FB84
-FB85
-FB85
-FB86
-FB86
-FB87
-FB87
-FB88
-FB88
-FB89
-FB89
-FB8A
-FB8A
-FB8B
-FB8B
-FB8C
-FB8C
-FB8D
-FB8D
-FB8E
-FB8E
-FB8F
-FB8F
-FB90
-FB90
-FB91
-FB91
-FB92
-FB92
-FB93
-FB93
-FB94
-FB94
-FB95
-FB95
-FB96
-FB96
-FB97
-FB97
-FB98
-FB98
-FB99
-FB99
-FB9A
-FB9A
-FB9B
-FB9B
-FB9C
-FB9C
-FB9D
-FB9D
-FB9E
-FB9E
-FB9F
-FB9F
-FBA0
-FBA0
-FBA1
+FAFD
+FAFE
FBA1
FBA2
-FBA2
-FBA3
FBA3
FBA4
-FBA4
FBA5
-FBA5
-FBA6
FBA6
FBA7
-FBA7
-FBA8
FBA8
FBA9
-FBA9
-FBAA
FBAA
FBAB
-FBAB
-FBAC
FBAC
FBAD
-FBAD
-FBAE
FBAE
FBAF
-FBAF
-FBB0
FBB0
FBB1
-FBB1
-FBB2
FBB2
FBB3
-FBB3
FBB4
-FBB4
-FBB5
FBB5
FBB6
-FBB6
-FBB7
FBB7
FBB8
-FBB8
-FBB9
FBB9
FBBA
-FBBA
FBBB
-FBBB
-FBBC
FBBC
FBBD
-FBBD
-FBBE
FBBE
FBBF
-FBBF
-FBC0
FBC0
FBC1
-FBC1
FBC2
-FBC2
-FBC3
FBC3
FBC4
-FBC4
-FBC5
FBC5
FBC6
-FBC6
-FBC7
FBC7
FBC8
-FBC8
-FBC9
FBC9
FBCA
-FBCA
-FBCB
FBCB
FBCC
-FBCC
-FBCD
FBCD
FBCE
-FBCE
-FBCF
FBCF
FBD0
-FBD0
FBD1
-FBD1
-FBD2
FBD2
FBD3
-FBD3
-FBD4
FBD4
FBD5
-FBD5
-FBD6
FBD6
FBD7
-FBD7
FBD8
-FBD8
-FBD9
FBD9
FBDA
-FBDA
-FBDB
FBDB
FBDC
-FBDC
-FBDD
FBDD
FBDE
-FBDE
FBDF
-FBDF
-FBE0
FBE0
FBE1
-FBE1
-FBE2
FBE2
FBE3
-FBE3
-FBE4
FBE4
FBE5
-FBE5
-FBE6
FBE6
FBE7
-FBE7
-FBE8
FBE8
FBE9
-FBE9
-FBEA
FBEA
FBEB
-FBEB
-FBEC
FBEC
FBED
-FBED
FBEE
-FBEE
-FBEF
FBEF
FBF0
-FBF0
-FBF1
FBF1
FBF2
-FBF2
-FBF3
FBF3
FBF4
-FBF4
FBF5
-FBF5
-FBF6
FBF6
FBF7
-FBF7
-FBF8
FBF8
FBF9
-FBF9
-FBFA
FBFA
FBFB
-FBFB
FBFC
-FBFC
-FC40
-FC40
-FC41
-FC41
-FC42
-FC42
-FC43
-FC43
-FC44
-FC44
-FC45
-FC45
-FC46
-FC46
-FC47
-FC47
-FC48
-FC48
-FC49
-FC49
-FC4A
-FC4A
-FC4B
-FC4B
+FBFD
+FBFE
+FCA1
+FCA2
+FCA3
+FCA4
+FCA5
+FCA6
+FCA7
+FCA8
+FCA9
+FCAA
+FCAB
+FCAC
+FCAD
+FCAE
+FCAF
+FCB0
+FCB1
+FCB2
+FCB3
+FCB4
+FCB5
+FCB6
+FCB7
+FCB8
+FCB9
+FCBA
+FCBB
+FCBC
+FCBD
+FCBE
+FCBF
+FCC0
+FCC1
+FCC2
+FCC3
+FCC4
+FCC5
+FCC6
+FCC7
+FCC8
+FCC9
+FCCA
+FCCB
+FCCC
+FCCD
+FCCE
+FCCF
+FCD0
+FCD1
+FCD2
+FCD3
+FCD4
+FCD5
+FCD6
+FCD7
+FCD8
+FCD9
+FCDA
+FCDB
+FCDC
+FCDD
+FCDE
+FCDF
+FCE0
+FCE1
+FCE2
+FCE3
+FCE4
+FCE5
+FCE6
+FCE7
+FCE8
+FCE9
+FCEA
+FCEB
+FCEC
+FCED
+FCEE
+FCEF
+FCF0
+FCF1
+FCF2
+FCF3
+FCF4
+FCF5
+FCF6
+FCF7
+FCF8
+FCF9
+FCFA
+FCFB
+FCFC
+FCFD
+FCFE
+FDA1
+FDA2
+FDA3
+FDA4
+FDA5
+FDA6
+FDA7
+FDA8
+FDA9
+FDAA
+FDAB
+FDAC
+FDAD
+FDAE
+FDAF
+FDB0
+FDB1
+FDB2
+FDB3
+FDB4
+FDB5
+FDB6
+FDB7
+FDB8
+FDB9
+FDBA
+FDBB
+FDBC
+FDBD
+FDBE
+FDBF
+FDC0
+FDC1
+FDC2
+FDC3
+FDC4
+FDC5
+FDC6
+FDC7
+FDC8
+FDC9
+FDCA
+FDCB
+FDCC
+FDCD
+FDCE
+FDCF
+FDD0
+FDD1
+FDD2
+FDD3
+FDD4
+FDD5
+FDD6
+FDD7
+FDD8
+FDD9
+FDDA
+FDDB
+FDDC
+FDDD
+FDDE
+FDDF
+FDE0
+FDE1
+FDE2
+FDE3
+FDE4
+FDE5
+FDE6
+FDE7
+FDE8
+FDE9
+FDEA
+FDEB
+FDEC
+FDED
+FDEE
+FDEF
+FDF0
+FDF1
+FDF2
+FDF3
+FDF4
+FDF5
+FDF6
+FDF7
+FDF8
+FDF9
+FDFA
+FDFB
+FDFC
+FDFD
+FDFE
+FEA1
+FEA2
+FEA3
+FEA4
+FEA5
+FEA6
+FEA7
+FEA8
+FEA9
+FEAA
+FEAB
+FEAC
+FEAD
+FEAE
+FEAF
+FEB0
+FEB1
+FEB2
+FEB3
+FEB4
+FEB5
+FEB6
+FEB7
+FEB8
+FEB9
+FEBA
+FEBB
+FEBC
+FEBD
+FEBE
+FEBF
+FEC0
+FEC1
+FEC2
+FEC3
+FEC4
+FEC5
+FEC6
+FEC7
+FEC8
+FEC9
+FECA
+FECB
+FECC
+FECD
+FECE
+FECF
+FED0
+FED1
+FED2
+FED3
+FED4
+FED5
+FED6
+FED7
+FED8
+FED9
+FEDA
+FEDB
+FEDC
+FEDD
+FEDE
+FEDF
+FEE0
+FEE1
+FEE2
+FEE3
+FEE4
+FEE5
+FEE6
+FEE7
+FEE8
+FEE9
+FEEA
+FEEB
+FEEC
+FEED
+FEEE
+FEEF
+FEF0
+FEF1
+FEF2
+FEF3
+FEF4
+FEF5
+FEF6
+FEF7
+FEF8
+FEF9
+FEFA
+FEFB
+FEFC
+FEFD
+FEFE
+8FF5A1
+8FF5A2
+8FF5A3
+8FF5A4
+8FF5A5
+8FF5A6
+8FF5A7
+8FF5A8
+8FF5A9
+8FF5AA
+8FF5AB
+8FF5AC
+8FF5AD
+8FF5AE
+8FF5AF
+8FF5B0
+8FF5B1
+8FF5B2
+8FF5B3
+8FF5B4
+8FF5B5
+8FF5B6
+8FF5B7
+8FF5B8
+8FF5B9
+8FF5BA
+8FF5BB
+8FF5BC
+8FF5BD
+8FF5BE
+8FF5BF
+8FF5C0
+8FF5C1
+8FF5C2
+8FF5C3
+8FF5C4
+8FF5C5
+8FF5C6
+8FF5C7
+8FF5C8
+8FF5C9
+8FF5CA
+8FF5CB
+8FF5CC
+8FF5CD
+8FF5CE
+8FF5CF
+8FF5D0
+8FF5D1
+8FF5D2
+8FF5D3
+8FF5D4
+8FF5D5
+8FF5D6
+8FF5D7
+8FF5D8
+8FF5D9
+8FF5DA
+8FF5DB
+8FF5DC
+8FF5DD
+8FF5DE
+8FF5DF
+8FF5E0
+8FF5E1
+8FF5E2
+8FF5E3
+8FF5E4
+8FF5E5
+8FF5E6
+8FF5E7
+8FF5E8
+8FF5E9
+8FF5EA
+8FF5EB
+8FF5EC
+8FF5ED
+8FF5EE
+8FF5EF
+8FF5F0
+8FF5F1
+8FF5F2
+8FF5F3
+8FF5F4
+8FF5F5
+8FF5F6
+8FF5F7
+8FF5F8
+8FF5F9
+8FF5FA
+8FF5FB
+8FF5FC
+8FF5FD
+8FF5FE
+8FF6A1
+8FF6A2
+8FF6A3
+8FF6A4
+8FF6A5
+8FF6A6
+8FF6A7
+8FF6A8
+8FF6A9
+8FF6AA
+8FF6AB
+8FF6AC
+8FF6AD
+8FF6AE
+8FF6AF
+8FF6B0
+8FF6B1
+8FF6B2
+8FF6B3
+8FF6B4
+8FF6B5
+8FF6B6
+8FF6B7
+8FF6B8
+8FF6B9
+8FF6BA
+8FF6BB
+8FF6BC
+8FF6BD
+8FF6BE
+8FF6BF
+8FF6C0
+8FF6C1
+8FF6C2
+8FF6C3
+8FF6C4
+8FF6C5
+8FF6C6
+8FF6C7
+8FF6C8
+8FF6C9
+8FF6CA
+8FF6CB
+8FF6CC
+8FF6CD
+8FF6CE
+8FF6CF
+8FF6D0
+8FF6D1
+8FF6D2
+8FF6D3
+8FF6D4
+8FF6D5
+8FF6D6
+8FF6D7
+8FF6D8
+8FF6D9
+8FF6DA
+8FF6DB
+8FF6DC
+8FF6DD
+8FF6DE
+8FF6DF
+8FF6E0
+8FF6E1
+8FF6E2
+8FF6E3
+8FF6E4
+8FF6E5
+8FF6E6
+8FF6E7
+8FF6E8
+8FF6E9
+8FF6EA
+8FF6EB
+8FF6EC
+8FF6ED
+8FF6EE
+8FF6EF
+8FF6F0
+8FF6F1
+8FF6F2
+8FF6F3
+8FF6F4
+8FF6F5
+8FF6F6
+8FF6F7
+8FF6F8
+8FF6F9
+8FF6FA
+8FF6FB
+8FF6FC
+8FF6FD
+8FF6FE
+8FF7A1
+8FF7A2
+8FF7A3
+8FF7A4
+8FF7A5
+8FF7A6
+8FF7A7
+8FF7A8
+8FF7A9
+8FF7AA
+8FF7AB
+8FF7AC
+8FF7AD
+8FF7AE
+8FF7AF
+8FF7B0
+8FF7B1
+8FF7B2
+8FF7B3
+8FF7B4
+8FF7B5
+8FF7B6
+8FF7B7
+8FF7B8
+8FF7B9
+8FF7BA
+8FF7BB
+8FF7BC
+8FF7BD
+8FF7BE
+8FF7BF
+8FF7C0
+8FF7C1
+8FF7C2
+8FF7C3
+8FF7C4
+8FF7C5
+8FF7C6
+8FF7C7
+8FF7C8
+8FF7C9
+8FF7CA
+8FF7CB
+8FF7CC
+8FF7CD
+8FF7CE
+8FF7CF
+8FF7D0
+8FF7D1
+8FF7D2
+8FF7D3
+8FF7D4
+8FF7D5
+8FF7D6
+8FF7D7
+8FF7D8
+8FF7D9
+8FF7DA
+8FF7DB
+8FF7DC
+8FF7DD
+8FF7DE
+8FF7DF
+8FF7E0
+8FF7E1
+8FF7E2
+8FF7E3
+8FF7E4
+8FF7E5
+8FF7E6
+8FF7E7
+8FF7E8
+8FF7E9
+8FF7EA
+8FF7EB
+8FF7EC
+8FF7ED
+8FF7EE
+8FF7EF
+8FF7F0
+8FF7F1
+8FF7F2
+8FF7F3
+8FF7F4
+8FF7F5
+8FF7F6
+8FF7F7
+8FF7F8
+8FF7F9
+8FF7FA
+8FF7FB
+8FF7FC
+8FF7FD
+8FF7FE
+8FF8A1
+8FF8A2
+8FF8A3
+8FF8A4
+8FF8A5
+8FF8A6
+8FF8A7
+8FF8A8
+8FF8A9
+8FF8AA
+8FF8AB
+8FF8AC
+8FF8AD
+8FF8AE
+8FF8AF
+8FF8B0
+8FF8B1
+8FF8B2
+8FF8B3
+8FF8B4
+8FF8B5
+8FF8B6
+8FF8B7
+8FF8B8
+8FF8B9
+8FF8BA
+8FF8BB
+8FF8BC
+8FF8BD
+8FF8BE
+8FF8BF
+8FF8C0
+8FF8C1
+8FF8C2
+8FF8C3
+8FF8C4
+8FF8C5
+8FF8C6
+8FF8C7
+8FF8C8
+8FF8C9
+8FF8CA
+8FF8CB
+8FF8CC
+8FF8CD
+8FF8CE
+8FF8CF
+8FF8D0
+8FF8D1
+8FF8D2
+8FF8D3
+8FF8D4
+8FF8D5
+8FF8D6
+8FF8D7
+8FF8D8
+8FF8D9
+8FF8DA
+8FF8DB
+8FF8DC
+8FF8DD
+8FF8DE
+8FF8DF
+8FF8E0
+8FF8E1
+8FF8E2
+8FF8E3
+8FF8E4
+8FF8E5
+8FF8E6
+8FF8E7
+8FF8E8
+8FF8E9
+8FF8EA
+8FF8EB
+8FF8EC
+8FF8ED
+8FF8EE
+8FF8EF
+8FF8F0
+8FF8F1
+8FF8F2
+8FF8F3
+8FF8F4
+8FF8F5
+8FF8F6
+8FF8F7
+8FF8F8
+8FF8F9
+8FF8FA
+8FF8FB
+8FF8FC
+8FF8FD
+8FF8FE
+8FF9A1
+8FF9A2
+8FF9A3
+8FF9A4
+8FF9A5
+8FF9A6
+8FF9A7
+8FF9A8
+8FF9A9
+8FF9AA
+8FF9AB
+8FF9AC
+8FF9AD
+8FF9AE
+8FF9AF
+8FF9B0
+8FF9B1
+8FF9B2
+8FF9B3
+8FF9B4
+8FF9B5
+8FF9B6
+8FF9B7
+8FF9B8
+8FF9B9
+8FF9BA
+8FF9BB
+8FF9BC
+8FF9BD
+8FF9BE
+8FF9BF
+8FF9C0
+8FF9C1
+8FF9C2
+8FF9C3
+8FF9C4
+8FF9C5
+8FF9C6
+8FF9C7
+8FF9C8
+8FF9C9
+8FF9CA
+8FF9CB
+8FF9CC
+8FF9CD
+8FF9CE
+8FF9CF
+8FF9D0
+8FF9D1
+8FF9D2
+8FF9D3
+8FF9D4
+8FF9D5
+8FF9D6
+8FF9D7
+8FF9D8
+8FF9D9
+8FF9DA
+8FF9DB
+8FF9DC
+8FF9DD
+8FF9DE
+8FF9DF
+8FF9E0
+8FF9E1
+8FF9E2
+8FF9E3
+8FF9E4
+8FF9E5
+8FF9E6
+8FF9E7
+8FF9E8
+8FF9E9
+8FF9EA
+8FF9EB
+8FF9EC
+8FF9ED
+8FF9EE
+8FF9EF
+8FF9F0
+8FF9F1
+8FF9F2
+8FF9F3
+8FF9F4
+8FF9F5
+8FF9F6
+8FF9F7
+8FF9F8
+8FF9F9
+8FF9FA
+8FF9FB
+8FF9FC
+8FF9FD
+8FF9FE
+8FFAA1
+8FFAA2
+8FFAA3
+8FFAA4
+8FFAA5
+8FFAA6
+8FFAA7
+8FFAA8
+8FFAA9
+8FFAAA
+8FFAAB
+8FFAAC
+8FFAAD
+8FFAAE
+8FFAAF
+8FFAB0
+8FFAB1
+8FFAB2
+8FFAB3
+8FFAB4
+8FFAB5
+8FFAB6
+8FFAB7
+8FFAB8
+8FFAB9
+8FFABA
+8FFABB
+8FFABC
+8FFABD
+8FFABE
+8FFABF
+8FFAC0
+8FFAC1
+8FFAC2
+8FFAC3
+8FFAC4
+8FFAC5
+8FFAC6
+8FFAC7
+8FFAC8
+8FFAC9
+8FFACA
+8FFACB
+8FFACC
+8FFACD
+8FFACE
+8FFACF
+8FFAD0
+8FFAD1
+8FFAD2
+8FFAD3
+8FFAD4
+8FFAD5
+8FFAD6
+8FFAD7
+8FFAD8
+8FFAD9
+8FFADA
+8FFADB
+8FFADC
+8FFADD
+8FFADE
+8FFADF
+8FFAE0
+8FFAE1
+8FFAE2
+8FFAE3
+8FFAE4
+8FFAE5
+8FFAE6
+8FFAE7
+8FFAE8
+8FFAE9
+8FFAEA
+8FFAEB
+8FFAEC
+8FFAED
+8FFAEE
+8FFAEF
+8FFAF0
+8FFAF1
+8FFAF2
+8FFAF3
+8FFAF4
+8FFAF5
+8FFAF6
+8FFAF7
+8FFAF8
+8FFAF9
+8FFAFA
+8FFAFB
+8FFAFC
+8FFAFD
+8FFAFE
+8FFBA1
+8FFBA2
+8FFBA3
+8FFBA4
+8FFBA5
+8FFBA6
+8FFBA7
+8FFBA8
+8FFBA9
+8FFBAA
+8FFBAB
+8FFBAC
+8FFBAD
+8FFBAE
+8FFBAF
+8FFBB0
+8FFBB1
+8FFBB2
+8FFBB3
+8FFBB4
+8FFBB5
+8FFBB6
+8FFBB7
+8FFBB8
+8FFBB9
+8FFBBA
+8FFBBB
+8FFBBC
+8FFBBD
+8FFBBE
+8FFBBF
+8FFBC0
+8FFBC1
+8FFBC2
+8FFBC3
+8FFBC4
+8FFBC5
+8FFBC6
+8FFBC7
+8FFBC8
+8FFBC9
+8FFBCA
+8FFBCB
+8FFBCC
+8FFBCD
+8FFBCE
+8FFBCF
+8FFBD0
+8FFBD1
+8FFBD2
+8FFBD3
+8FFBD4
+8FFBD5
+8FFBD6
+8FFBD7
+8FFBD8
+8FFBD9
+8FFBDA
+8FFBDB
+8FFBDC
+8FFBDD
+8FFBDE
+8FFBDF
+8FFBE0
+8FFBE1
+8FFBE2
+8FFBE3
+8FFBE4
+8FFBE5
+8FFBE6
+8FFBE7
+8FFBE8
+8FFBE9
+8FFBEA
+8FFBEB
+8FFBEC
+8FFBED
+8FFBEE
+8FFBEF
+8FFBF0
+8FFBF1
+8FFBF2
+8FFBF3
+8FFBF4
+8FFBF5
+8FFBF6
+8FFBF7
+8FFBF8
+8FFBF9
+8FFBFA
+8FFBFB
+8FFBFC
+8FFBFD
+8FFBFE
+8FFCA1
+8FFCA2
+8FFCA3
+8FFCA4
+8FFCA5
+8FFCA6
+8FFCA7
+8FFCA8
+8FFCA9
+8FFCAA
+8FFCAB
+8FFCAC
+8FFCAD
+8FFCAE
+8FFCAF
+8FFCB0
+8FFCB1
+8FFCB2
+8FFCB3
+8FFCB4
+8FFCB5
+8FFCB6
+8FFCB7
+8FFCB8
+8FFCB9
+8FFCBA
+8FFCBB
+8FFCBC
+8FFCBD
+8FFCBE
+8FFCBF
+8FFCC0
+8FFCC1
+8FFCC2
+8FFCC3
+8FFCC4
+8FFCC5
+8FFCC6
+8FFCC7
+8FFCC8
+8FFCC9
+8FFCCA
+8FFCCB
+8FFCCC
+8FFCCD
+8FFCCE
+8FFCCF
+8FFCD0
+8FFCD1
+8FFCD2
+8FFCD3
+8FFCD4
+8FFCD5
+8FFCD6
+8FFCD7
+8FFCD8
+8FFCD9
+8FFCDA
+8FFCDB
+8FFCDC
+8FFCDD
+8FFCDE
+8FFCDF
+8FFCE0
+8FFCE1
+8FFCE2
+8FFCE3
+8FFCE4
+8FFCE5
+8FFCE6
+8FFCE7
+8FFCE8
+8FFCE9
+8FFCEA
+8FFCEB
+8FFCEC
+8FFCED
+8FFCEE
+8FFCEF
+8FFCF0
+8FFCF1
+8FFCF2
+8FFCF3
+8FFCF4
+8FFCF5
+8FFCF6
+8FFCF7
+8FFCF8
+8FFCF9
+8FFCFA
+8FFCFB
+8FFCFC
+8FFCFD
+8FFCFE
+8FFDA1
+8FFDA2
+8FFDA3
+8FFDA4
+8FFDA5
+8FFDA6
+8FFDA7
+8FFDA8
+8FFDA9
+8FFDAA
+8FFDAB
+8FFDAC
+8FFDAD
+8FFDAE
+8FFDAF
+8FFDB0
+8FFDB1
+8FFDB2
+8FFDB3
+8FFDB4
+8FFDB5
+8FFDB6
+8FFDB7
+8FFDB8
+8FFDB9
+8FFDBA
+8FFDBB
+8FFDBC
+8FFDBD
+8FFDBE
+8FFDBF
+8FFDC0
+8FFDC1
+8FFDC2
+8FFDC3
+8FFDC4
+8FFDC5
+8FFDC6
+8FFDC7
+8FFDC8
+8FFDC9
+8FFDCA
+8FFDCB
+8FFDCC
+8FFDCD
+8FFDCE
+8FFDCF
+8FFDD0
+8FFDD1
+8FFDD2
+8FFDD3
+8FFDD4
+8FFDD5
+8FFDD6
+8FFDD7
+8FFDD8
+8FFDD9
+8FFDDA
+8FFDDB
+8FFDDC
+8FFDDD
+8FFDDE
+8FFDDF
+8FFDE0
+8FFDE1
+8FFDE2
+8FFDE3
+8FFDE4
+8FFDE5
+8FFDE6
+8FFDE7
+8FFDE8
+8FFDE9
+8FFDEA
+8FFDEB
+8FFDEC
+8FFDED
+8FFDEE
+8FFDEF
+8FFDF0
+8FFDF1
+8FFDF2
+8FFDF3
+8FFDF4
+8FFDF5
+8FFDF6
+8FFDF7
+8FFDF8
+8FFDF9
+8FFDFA
+8FFDFB
+8FFDFC
+8FFDFD
+8FFDFE
+8FFEA1
+8FFEA2
+8FFEA3
+8FFEA4
+8FFEA5
+8FFEA6
+8FFEA7
+8FFEA8
+8FFEA9
+8FFEAA
+8FFEAB
+8FFEAC
+8FFEAD
+8FFEAE
+8FFEAF
+8FFEB0
+8FFEB1
+8FFEB2
+8FFEB3
+8FFEB4
+8FFEB5
+8FFEB6
+8FFEB7
+8FFEB8
+8FFEB9
+8FFEBA
+8FFEBB
+8FFEBC
+8FFEBD
+8FFEBE
+8FFEBF
+8FFEC0
+8FFEC1
+8FFEC2
+8FFEC3
+8FFEC4
+8FFEC5
+8FFEC6
+8FFEC7
+8FFEC8
+8FFEC9
+8FFECA
+8FFECB
+8FFECC
+8FFECD
+8FFECE
+8FFECF
+8FFED0
+8FFED1
+8FFED2
+8FFED3
+8FFED4
+8FFED5
+8FFED6
+8FFED7
+8FFED8
+8FFED9
+8FFEDA
+8FFEDB
+8FFEDC
+8FFEDD
+8FFEDE
+8FFEDF
+8FFEE0
+8FFEE1
+8FFEE2
+8FFEE3
+8FFEE4
+8FFEE5
+8FFEE6
+8FFEE7
+8FFEE8
+8FFEE9
+8FFEEA
+8FFEEB
+8FFEEC
+8FFEED
+8FFEEE
+8FFEEF
+8FFEF0
+8FFEF1
+8FFEF2
+8FFEF3
+8FFEF4
+8FFEF5
+8FFEF6
+8FFEF7
+8FFEF8
+8FFEF9
+8FFEFA
+8FFEFB
+8FFEFC
+8FFEFD
+8FFEFE
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
+DROP TABLE t4;
SET collation_connection='cp932_japanese_ci';
create table t1 select repeat('a',4000) a;
delete from t1;
@@ -8586,46 +11325,6 @@ cp932_japanese_ci 6109
cp932_japanese_ci 61
cp932_japanese_ci 6120
drop table t1;
-create table t1 engine=innodb select repeat('a',50) as c1;
-alter table t1 add index(c1(5));
-insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
-select collation(c1) from t1 limit 1;
-collation(c1)
-cp932_japanese_ci
-select c1 from t1 where c1 like 'abcdef%' order by c1;
-c1
-abcdefg
-select c1 from t1 where c1 like 'abcde1%' order by c1;
-c1
-abcde100
-abcde110
-abcde111
-select c1 from t1 where c1 like 'abcde11%' order by c1;
-c1
-abcde110
-abcde111
-select c1 from t1 where c1 like 'abcde111%' order by c1;
-c1
-abcde111
-drop table t1;
-select @@collation_connection;
-@@collation_connection
-cp932_japanese_ci
-create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
-insert into t1 values('abcdef');
-insert into t1 values('_bcdef');
-insert into t1 values('a_cdef');
-insert into t1 values('ab_def');
-insert into t1 values('abc_ef');
-insert into t1 values('abcd_f');
-insert into t1 values('abcde_');
-select c1 as c1u from t1 where c1 like 'ab\_def';
-c1u
-ab_def
-select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
-c2h
-ab_def
-drop table t1;
SET collation_connection='cp932_bin';
create table t1 select repeat('a',4000) a;
delete from t1;
@@ -8636,43 +11335,59 @@ cp932_bin 6109
cp932_bin 61
cp932_bin 6120
drop table t1;
-create table t1 engine=innodb select repeat('a',50) as c1;
-alter table t1 add index(c1(5));
-insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
-select collation(c1) from t1 limit 1;
-collation(c1)
-cp932_bin
-select c1 from t1 where c1 like 'abcdef%' order by c1;
-c1
-abcdefg
-select c1 from t1 where c1 like 'abcde1%' order by c1;
-c1
-abcde100
-abcde110
-abcde111
-select c1 from t1 where c1 like 'abcde11%' order by c1;
-c1
-abcde110
-abcde111
-select c1 from t1 where c1 like 'abcde111%' order by c1;
-c1
-abcde111
+create table t2 (a char(1));
+insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+create table t1 (
+a varchar(2) character set cp932
+) engine=myisam;
+insert into t1
+select unhex(concat(t24.a, t23.a, t22.a, t21.a))
+from t2 t21, t2 t22, t2 t23, t2 t24;
+delete from t1 where a='';
+alter table t1 add key(a);
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
+drop table t2;
+create table t1 (col1 varchar(1)) character set cp932;
+insert into t1 values ('a');
+insert into t1 values ('ab');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+select * from t1;
+col1
+a
+a
+insert into t1 values ('abc');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+select * from t1;
+col1
+a
+a
+a
drop table t1;
-select @@collation_connection;
-@@collation_connection
-cp932_bin
-create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
-insert into t1 values('abcdef');
-insert into t1 values('_bcdef');
-insert into t1 values('a_cdef');
-insert into t1 values('ab_def');
-insert into t1 values('abc_ef');
-insert into t1 values('abcd_f');
-insert into t1 values('abcde_');
-select c1 as c1u from t1 where c1 like 'ab\_def';
-c1u
-ab_def
-select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
-c2h
-ab_def
+ƒ\
+ƒ\
+c_cp932
+ƒ\
+ƒ\
+ƒ\
+ソ
+ソ
+ƒ\
+ƒ\
+set names utf8;
+create table t1 (a text) default character set cp932;
+insert into t1 values (_utf8 0xE38182);
+show warnings;
+Level Code Message
+select * from t1;
+a
+ã‚
+select hex(a) from t1;
+hex(a)
+82A0
drop table t1;
diff --git a/mysql-test/r/ctype_cp932_binlog.result b/mysql-test/r/ctype_cp932_binlog.result
index 89f0ae71f4f..3385cd20ec4 100644
--- a/mysql-test/r/ctype_cp932_binlog.result
+++ b/mysql-test/r/ctype_cp932_binlog.result
@@ -6,14 +6,40 @@ CREATE TABLE t1(f1 blob);
PREPARE stmt1 FROM 'INSERT INTO t1 VALUES(?)';
SET @var1= x'8300';
EXECUTE stmt1 USING @var1;
-SHOW BINLOG EVENTS FROM 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 # Query 1 # use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=95,COLLATION_CONNECTION=95,COLLATION_DATABASE=95,COLLATION_SERVER=8
-master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(f1 blob)
-master-bin.000001 # Query 1 # use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=95,COLLATION_CONNECTION=95,COLLATION_DATABASE=95,COLLATION_SERVER=8
-master-bin.000001 # User var 1 # @`var1`=_binary 0x8300 COLLATE binary
-master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(@'var1')
+SHOW BINLOG EVENTS FROM 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 188 use `test`; CREATE TABLE t1(f1 blob)
+master-bin.000001 188 Query 1 283 use `test`; INSERT INTO t1 VALUES(0x8300)
SELECT HEX(f1) FROM t1;
HEX(f1)
8300
DROP table t1;
+CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1,
+s2 CHAR(50) CHARACTER SET cp932,
+d DECIMAL(10,2))|
+CREATE PROCEDURE bug18293 (IN ins1 CHAR(50),
+IN ins2 CHAR(50) CHARACTER SET cp932,
+IN ind DECIMAL(10,2))
+BEGIN
+INSERT INTO t4 VALUES (ins1, ins2, ind);
+END|
+CALL bug18293("Foo's a Bar", _cp932 0xED40ED41ED42, 47.93)|
+SELECT HEX(s1),HEX(s2),d FROM t4|
+HEX(s1) HEX(s2) d
+466F6F2773206120426172 ED40ED41ED42 47.93
+DROP PROCEDURE bug18293|
+DROP TABLE t4|
+SHOW BINLOG EVENTS FROM 362|
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 362 Query 1 528 use `test`; CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1,
+s2 CHAR(50) CHARACTER SET cp932,
+d DECIMAL(10,2))
+master-bin.000001 528 Query 1 776 use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE bug18293 (IN ins1 CHAR(50),
+IN ins2 CHAR(50) CHARACTER SET cp932,
+IN ind DECIMAL(10,2))
+BEGIN
+INSERT INTO t4 VALUES (ins1, ins2, ind);
+END
+master-bin.000001 776 Query 1 995 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93))
+master-bin.000001 995 Query 1 1084 use `test`; DROP PROCEDURE bug18293
+master-bin.000001 1084 Query 1 1163 use `test`; DROP TABLE t4
diff --git a/mysql-test/r/ctype_eucjpms.result b/mysql-test/r/ctype_eucjpms.result
new file mode 100755
index 00000000000..ad9666d0c86
--- /dev/null
+++ b/mysql-test/r/ctype_eucjpms.result
@@ -0,0 +1,9827 @@
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+set names eucjpms;
+set character_set_database = eucjpms;
+CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = eucjpms;
+INSERT INTO t1 VALUES
+(0x5C),(0x7E),(0xA1B1),(0xA1BD),(0xA1C0),(0xA1C1),(0xA1C2),(0xA1DD),(0xA1F1),(0xA1F2),(0xA1EF),(0xA2CC),(0x8FA2B7),(0x8FA2C3);
+INSERT INTO t1 VALUES
+(0xADA1),(0xADA2),(0xADA3),(0xADA4),(0xADA5),(0xADA6),(0xADA7),(0xADA8),
+(0xADA9),(0xADAA),(0xADAB),(0xADAC),(0xADAD),(0xADAE),(0xADAF),(0xADB0),
+(0xADB1),(0xADB2),(0xADB3),(0xADB4),(0xADB5),(0xADB6),(0xADB7),(0xADB8),
+(0xADB9),(0xADBA),(0xADBB),(0xADBC),(0xADBD),(0xADBE),(0xADC0),(0xADC1),
+(0xADC2),(0xADC3),(0xADC4),(0xADC5),(0xADC6),(0xADC7),(0xADC8),(0xADC9),
+(0xADCA),(0xADCB),(0xADCC),(0xADCD),(0xADCE),(0xADCF),(0xADD0),(0xADD1),
+(0xADD2),(0xADD3),(0xADD4),(0xADD5),(0xADD6),(0xADDF),(0xADE0),(0xADE1),
+(0xADE2),(0xADE3),(0xADE4),(0xADE5),(0xADE6),(0xADE7),(0xADE8),(0xADE9),
+(0xADEA),(0xADEB),(0xADEC),(0xADED),(0xADEE),(0xADEF),(0xADF0),(0xADF1),
+(0xADF2),(0xADF3),(0xADF4),(0xADF5),(0xADF6),(0xADF7),(0xADF8),(0xADF9),
+(0xADFA),(0xADFB),(0xADFC);
+INSERT INTO t1 VALUES
+(0x8FF3F3),(0x8FF3F4),(0x8FF3F5),(0x8FF3F6),(0x8FF3F7),(0x8FF3F8),(0x8FF3F9),(0x8FF3FA),
+(0x8FF3FB),(0x8FF3FC),(0x8FF3FD),(0x8FF3FE),(0x8FF4A1),(0x8FF4A2),(0x8FF4A3),(0x8FF4A4),
+(0x8FF4A5),(0x8FF4A6),(0x8FF4A7),(0x8FF4A8),(0xA2CC),(0x8FA2C3),(0x8FF4A9),(0x8FF4AA),
+(0x8FF4AB),(0x8FF4AC),(0x8FF4AD),(0xA2E8),(0x8FD4E3),(0x8FDCDF),(0x8FE4E9),(0x8FE3F8),
+(0x8FD9A1),(0x8FB1BB),(0x8FF4AE),(0x8FC2AD),(0x8FC3FC),(0x8FE4D0),(0x8FC2BF),(0x8FBCF4),
+(0x8FB0A9),(0x8FB0C8),(0x8FF4AF),(0x8FB0D2),(0x8FB0D4),(0x8FB0E3),(0x8FB0EE),(0x8FB1A7),
+(0x8FB1A3),(0x8FB1AC),(0x8FB1A9),(0x8FB1BE),(0x8FB1DF),(0x8FB1D8),(0x8FB1C8),(0x8FB1D7),
+(0x8FB1E3),(0x8FB1F4),(0x8FB1E1),(0x8FB2A3),(0x8FF4B0),(0x8FB2BB),(0x8FB2E6),(0x8FB2ED),
+(0x8FB2F5),(0x8FB2FC),(0x8FF4B1),(0x8FB3B5),(0x8FB3D8),(0x8FB3DB),(0x8FB3E5),(0x8FB3EE),
+(0x8FB3FB),(0x8FF4B2),(0x8FF4B3),(0x8FB4C0),(0x8FB4C7),(0x8FB4D0),(0x8FB4DE),(0x8FF4B4),
+(0x8FB5AA),(0x8FF4B5),(0x8FB5AF),(0x8FB5C4),(0x8FB5E8),(0x8FF4B6),(0x8FB7C2),(0x8FB7E4),
+(0x8FB7E8),(0x8FB7E7),(0x8FF4B7),(0x8FF4B8),(0x8FF4B9),(0x8FB8CE),(0x8FB8E1),(0x8FB8F5),
+(0x8FB8F7),(0x8FB8F8),(0x8FB8FC),(0x8FB9AF),(0x8FB9B7),(0x8FBABE),(0x8FBADB),(0x8FCDAA),
+(0x8FBAE1),(0x8FF4BA),(0x8FBAEB),(0x8FBBB3),(0x8FBBB8),(0x8FF4BB),(0x8FBBCA),(0x8FF4BC),
+(0x8FF4BD),(0x8FBBD0),(0x8FBBDE),(0x8FBBF4),(0x8FBBF5),(0x8FBBF9),(0x8FBCE4),(0x8FBCED),
+(0x8FBCFE),(0x8FF4BE),(0x8FBDC2),(0x8FBDE7),(0x8FF4BF),(0x8FBDF0),(0x8FBEB0),(0x8FBEAC),
+(0x8FF4C0),(0x8FBEB3),(0x8FBEBD),(0x8FBECD),(0x8FBEC9),(0x8FBEE4),(0x8FBFA8),(0x8FBFC9),
+(0x8FC0C4),(0x8FC0E4),(0x8FC0F4),(0x8FC1A6),(0x8FF4C1),(0x8FC1F5),(0x8FC1FC),(0x8FF4C2),
+(0x8FC1F8),(0x8FC2AB),(0x8FC2A1),(0x8FC2A5),(0x8FF4C3),(0x8FC2B8),(0x8FC2BA),(0x8FF4C4),
+(0x8FC2C4),(0x8FC2D2),(0x8FC2D7),(0x8FC2DB),(0x8FC2DE),(0x8FC2ED),(0x8FC2F0),(0x8FF4C5),
+(0x8FC3A1),(0x8FC3B5),(0x8FC3C9),(0x8FC3B9),(0x8FF4C6),(0x8FC3D8),(0x8FC3FE),(0x8FF4C7),
+(0x8FC4CC),(0x8FF4C8),(0x8FC4D9),(0x8FC4EA),(0x8FC4FD),(0x8FF4C9),(0x8FC5A7),(0x8FC5B5),
+(0x8FC5B6),(0x8FF4CA),(0x8FC5D5),(0x8FC6B8),(0x8FC6D7),(0x8FC6E0),(0x8FC6EA),(0x8FC6E3),
+(0x8FC7A1),(0x8FC7AB),(0x8FC7C7),(0x8FC7C3),(0x8FC7CB),(0x8FC7CF),(0x8FC7D9),(0x8FF4CB),
+(0x8FF4CC),(0x8FC7E6),(0x8FC7EE),(0x8FC7FC),(0x8FC7EB),(0x8FC7F0),(0x8FC8B1),(0x8FC8E5),
+(0x8FC8F8),(0x8FC9A6),(0x8FC9AB),(0x8FC9AD),(0x8FF4CD),(0x8FC9CA),(0x8FC9D3),(0x8FC9E9),
+(0x8FC9E3),(0x8FC9FC),(0x8FC9F4),(0x8FC9F5),(0x8FF4CE),(0x8FCAB3),(0x8FCABD),(0x8FCAEF),
+(0x8FCAF1),(0x8FCBAE),(0x8FF4CF),(0x8FCBCA),(0x8FCBE6),(0x8FCBEA),(0x8FCBF0),(0x8FCBF4),
+(0x8FCBEE),(0x8FCCA5),(0x8FCBF9),(0x8FCCAB),(0x8FCCAE),(0x8FCCAD),(0x8FCCB2),(0x8FCCC2),
+(0x8FCCD0),(0x8FCCD9),(0x8FF4D0),(0x8FCDBB),(0x8FF4D1),(0x8FCEBB),(0x8FF4D2),(0x8FCEBA),
+(0x8FCEC3),(0x8FF4D3),(0x8FCEF2),(0x8FB3DD),(0x8FCFD5),(0x8FCFE2),(0x8FCFE9),(0x8FCFED),
+(0x8FF4D4),(0x8FF4D5),(0x8FF4D6),(0x8FF4D7),(0x8FD0E5),(0x8FF4D8),(0x8FD0E9),(0x8FD1E8),
+(0x8FF4D9),(0x8FF4DA),(0x8FD1EC),(0x8FD2BB),(0x8FF4DB),(0x8FD3E1),(0x8FD3E8),(0x8FD4A7),
+(0x8FF4DC),(0x8FF4DD),(0x8FD4D4),(0x8FD4F2),(0x8FD5AE),(0x8FF4DE),(0x8FD7DE),(0x8FF4DF),
+(0x8FD8A2),(0x8FD8B7),(0x8FD8C1),(0x8FD8D1),(0x8FD8F4),(0x8FD9C6),(0x8FD9C8),(0x8FD9D1),
+(0x8FF4E0),(0x8FF4E1),(0x8FF4E2),(0x8FF4E3),(0x8FF4E4),(0x8FDCD3),(0x8FDDC8),(0x8FDDD4),
+(0x8FDDEA),(0x8FDDFA),(0x8FDEA4),(0x8FDEB0),(0x8FF4E5),(0x8FDEB5),(0x8FDECB),(0x8FF4E6),
+(0x8FDFB9),(0x8FF4E7),(0x8FDFC3),(0x8FF4E8),(0x8FF4E9),(0x8FE0D9),(0x8FF4EA),(0x8FF4EB),
+(0x8FE1E2),(0x8FF4EC),(0x8FF4ED),(0x8FF4EE),(0x8FE2C7),(0x8FE3A8),(0x8FE3A6),(0x8FE3A9),
+(0x8FE3AF),(0x8FE3B0),(0x8FE3AA),(0x8FE3AB),(0x8FE3BC),(0x8FE3C1),(0x8FE3BF),(0x8FE3D5),
+(0x8FE3D8),(0x8FE3D6),(0x8FE3DF),(0x8FE3E3),(0x8FE3E1),(0x8FE3D4),(0x8FE3E9),(0x8FE4A6),
+(0x8FE3F1),(0x8FE3F2),(0x8FE4CB),(0x8FE4C1),(0x8FE4C3),(0x8FE4BE),(0x8FF4EF),(0x8FE4C0),
+(0x8FE4C7),(0x8FE4BF),(0x8FE4E0),(0x8FE4DE),(0x8FE4D1),(0x8FF4F0),(0x8FE4DC),(0x8FE4D2),
+(0x8FE4DB),(0x8FE4D4),(0x8FE4FA),(0x8FE4EF),(0x8FE5B3),(0x8FE5BF),(0x8FE5C9),(0x8FE5D0),
+(0x8FE5E2),(0x8FE5EA),(0x8FE5EB),(0x8FF4F1),(0x8FF4F2),(0x8FF4F3),(0x8FE6E8),(0x8FE6EF),
+(0x8FE7AC),(0x8FF4F4),(0x8FE7AE),(0x8FF4F5),(0x8FE7B1),(0x8FF4F6),(0x8FE7B2),(0x8FE8B1),
+(0x8FE8B6),(0x8FF4F7),(0x8FF4F8),(0x8FE8DD),(0x8FF4F9),(0x8FF4FA),(0x8FE9D1),(0x8FF4FB),
+(0x8FE9ED),(0x8FEACD),(0x8FF4FC),(0x8FEADB),(0x8FEAE6),(0x8FEAEA),(0x8FEBA5),(0x8FEBFB),
+(0x8FEBFA),(0x8FF4FD),(0x8FECD6),(0x8FF4FE);
+INSERT INTO t1 VALUES
+(0xF5A1),(0xF5A2),(0xF5A3),(0xF5A4),(0xF5A5),(0xF5A6),(0xF5A7),(0xF5A8),
+(0xF5A9),(0xF5AA),(0xF5AB),(0xF5AC),(0xF5AD),(0xF5AE),(0xF5AF),(0xF5B0),
+(0xF5B1),(0xF5B2),(0xF5B3),(0xF5B4),(0xF5B5),(0xF5B6),(0xF5B7),(0xF5B8),
+(0xF5B9),(0xF5BA),(0xF5BB),(0xF5BC),(0xF5BD),(0xF5BE),(0xF5BF),(0xF5C0),
+(0xF5C1),(0xF5C2),(0xF5C3),(0xF5C4),(0xF5C5),(0xF5C6),(0xF5C7),(0xF5C8),
+(0xF5C9),(0xF5CA),(0xF5CB),(0xF5CC),(0xF5CD),(0xF5CE),(0xF5CF),(0xF5D0),
+(0xF5D1),(0xF5D2),(0xF5D3),(0xF5D4),(0xF5D5),(0xF5D6),(0xF5D7),(0xF5D8),
+(0xF5D9),(0xF5DA),(0xF5DB),(0xF5DC),(0xF5DD),(0xF5DE),(0xF5DF),(0xF5E0),
+(0xF5E1),(0xF5E2),(0xF5E3),(0xF5E4),(0xF5E5),(0xF5E6),(0xF5E7),(0xF5E8),
+(0xF5E9),(0xF5EA),(0xF5EB),(0xF5EC),(0xF5ED),(0xF5EE),(0xF5EF),(0xF5F0),
+(0xF5F1),(0xF5F2),(0xF5F3),(0xF5F4),(0xF5F5),(0xF5F6),(0xF5F7),(0xF5F8),
+(0xF5F9),(0xF5FA),(0xF5FB),(0xF5FC),(0xF5FD),(0xF5FE),
+(0xF6A1),(0xF6A2),(0xF6A3),(0xF6A4),(0xF6A5),(0xF6A6),(0xF6A7),(0xF6A8),
+(0xF6A9),(0xF6AA),(0xF6AB),(0xF6AC),(0xF6AD),(0xF6AE),(0xF6AF),(0xF6B0),
+(0xF6B1),(0xF6B2),(0xF6B3),(0xF6B4),(0xF6B5),(0xF6B6),(0xF6B7),(0xF6B8),
+(0xF6B9),(0xF6BA),(0xF6BB),(0xF6BC),(0xF6BD),(0xF6BE),(0xF6BF),(0xF6C0),
+(0xF6C1),(0xF6C2),(0xF6C3),(0xF6C4),(0xF6C5),(0xF6C6),(0xF6C7),(0xF6C8),
+(0xF6C9),(0xF6CA),(0xF6CB),(0xF6CC),(0xF6CD),(0xF6CE),(0xF6CF),(0xF6D0),
+(0xF6D1),(0xF6D2),(0xF6D3),(0xF6D4),(0xF6D5),(0xF6D6),(0xF6D7),(0xF6D8),
+(0xF6D9),(0xF6DA),(0xF6DB),(0xF6DC),(0xF6DD),(0xF6DE),(0xF6DF),(0xF6E0),
+(0xF6E1),(0xF6E2),(0xF6E3),(0xF6E4),(0xF6E5),(0xF6E6),(0xF6E7),(0xF6E8),
+(0xF6E9),(0xF6EA),(0xF6EB),(0xF6EC),(0xF6ED),(0xF6EE),(0xF6EF),(0xF6F0),
+(0xF6F1),(0xF6F2),(0xF6F3),(0xF6F4),(0xF6F5),(0xF6F6),(0xF6F7),(0xF6F8),
+(0xF6F9),(0xF6FA),(0xF6FB),(0xF6FC),(0xF6FD),(0xF6FE),
+(0xF7A1),(0xF7A2),(0xF7A3),(0xF7A4),(0xF7A5),(0xF7A6),(0xF7A7),(0xF7A8),
+(0xF7A9),(0xF7AA),(0xF7AB),(0xF7AC),(0xF7AD),(0xF7AE),(0xF7AF),(0xF7B0),
+(0xF7B1),(0xF7B2),(0xF7B3),(0xF7B4),(0xF7B5),(0xF7B6),(0xF7B7),(0xF7B8),
+(0xF7B9),(0xF7BA),(0xF7BB),(0xF7BC),(0xF7BD),(0xF7BE),(0xF7BF),(0xF7C0),
+(0xF7C1),(0xF7C2),(0xF7C3),(0xF7C4),(0xF7C5),(0xF7C6),(0xF7C7),(0xF7C8),
+(0xF7C9),(0xF7CA),(0xF7CB),(0xF7CC),(0xF7CD),(0xF7CE),(0xF7CF),(0xF7D0),
+(0xF7D1),(0xF7D2),(0xF7D3),(0xF7D4),(0xF7D5),(0xF7D6),(0xF7D7),(0xF7D8),
+(0xF7D9),(0xF7DA),(0xF7DB),(0xF7DC),(0xF7DD),(0xF7DE),(0xF7DF),(0xF7E0),
+(0xF7E1),(0xF7E2),(0xF7E3),(0xF7E4),(0xF7E5),(0xF7E6),(0xF7E7),(0xF7E8),
+(0xF7E9),(0xF7EA),(0xF7EB),(0xF7EC),(0xF7ED),(0xF7EE),(0xF7EF),(0xF7F0),
+(0xF7F1),(0xF7F2),(0xF7F3),(0xF7F4),(0xF7F5),(0xF7F6),(0xF7F7),(0xF7F8),
+(0xF7F9),(0xF7FA),(0xF7FB),(0xF7FC),(0xF7FD),(0xF7FE),
+(0xF8A1),(0xF8A2),(0xF8A3),(0xF8A4),(0xF8A5),(0xF8A6),(0xF8A7),(0xF8A8),
+(0xF8A9),(0xF8AA),(0xF8AB),(0xF8AC),(0xF8AD),(0xF8AE),(0xF8AF),(0xF8B0),
+(0xF8B1),(0xF8B2),(0xF8B3),(0xF8B4),(0xF8B5),(0xF8B6),(0xF8B7),(0xF8B8),
+(0xF8B9),(0xF8BA),(0xF8BB),(0xF8BC),(0xF8BD),(0xF8BE),(0xF8BF),(0xF8C0),
+(0xF8C1),(0xF8C2),(0xF8C3),(0xF8C4),(0xF8C5),(0xF8C6),(0xF8C7),(0xF8C8),
+(0xF8C9),(0xF8CA),(0xF8CB),(0xF8CC),(0xF8CD),(0xF8CE),(0xF8CF),(0xF8D0),
+(0xF8D1),(0xF8D2),(0xF8D3),(0xF8D4),(0xF8D5),(0xF8D6),(0xF8D7),(0xF8D8),
+(0xF8D9),(0xF8DA),(0xF8DB),(0xF8DC),(0xF8DD),(0xF8DE),(0xF8DF),(0xF8E0),
+(0xF8E1),(0xF8E2),(0xF8E3),(0xF8E4),(0xF8E5),(0xF8E6),(0xF8E7),(0xF8E8),
+(0xF8E9),(0xF8EA),(0xF8EB),(0xF8EC),(0xF8ED),(0xF8EE),(0xF8EF),(0xF8F0),
+(0xF8F1),(0xF8F2),(0xF8F3),(0xF8F4),(0xF8F5),(0xF8F6),(0xF8F7),(0xF8F8),
+(0xF8F9),(0xF8FA),(0xF8FB),(0xF8FC),(0xF8FD),(0xF8FE),
+(0xF9A1),(0xF9A2),(0xF9A3),(0xF9A4),(0xF9A5),(0xF9A6),(0xF9A7),(0xF9A8),
+(0xF9A9),(0xF9AA),(0xF9AB),(0xF9AC),(0xF9AD),(0xF9AE),(0xF9AF),(0xF9B0),
+(0xF9B1),(0xF9B2),(0xF9B3),(0xF9B4),(0xF9B5),(0xF9B6),(0xF9B7),(0xF9B8),
+(0xF9B9),(0xF9BA),(0xF9BB),(0xF9BC),(0xF9BD),(0xF9BE),(0xF9BF),(0xF9C0),
+(0xF9C1),(0xF9C2),(0xF9C3),(0xF9C4),(0xF9C5),(0xF9C6),(0xF9C7),(0xF9C8),
+(0xF9C9),(0xF9CA),(0xF9CB),(0xF9CC),(0xF9CD),(0xF9CE),(0xF9CF),(0xF9D0),
+(0xF9D1),(0xF9D2),(0xF9D3),(0xF9D4),(0xF9D5),(0xF9D6),(0xF9D7),(0xF9D8),
+(0xF9D9),(0xF9DA),(0xF9DB),(0xF9DC),(0xF9DD),(0xF9DE),(0xF9DF),(0xF9E0),
+(0xF9E1),(0xF9E2),(0xF9E3),(0xF9E4),(0xF9E5),(0xF9E6),(0xF9E7),(0xF9E8),
+(0xF9E9),(0xF9EA),(0xF9EB),(0xF9EC),(0xF9ED),(0xF9EE),(0xF9EF),(0xF9F0),
+(0xF9F1),(0xF9F2),(0xF9F3),(0xF9F4),(0xF9F5),(0xF9F6),(0xF9F7),(0xF9F8),
+(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC),(0xF9FD),(0xF9FE),
+(0xFAA1),(0xFAA2),(0xFAA3),(0xFAA4),(0xFAA5),(0xFAA6),(0xFAA7),(0xFAA8),
+(0xFAA9),(0xFAAA),(0xFAAB),(0xFAAC),(0xFAAD),(0xFAAE),(0xFAAF),(0xFAB0),
+(0xFAB1),(0xFAB2),(0xFAB3),(0xFAB4),(0xFAB5),(0xFAB6),(0xFAB7),(0xFAB8),
+(0xFAB9),(0xFABA),(0xFABB),(0xFABC),(0xFABD),(0xFABE),(0xFABF),(0xFAC0),
+(0xFAC1),(0xFAC2),(0xFAC3),(0xFAC4),(0xFAC5),(0xFAC6),(0xFAC7),(0xFAC8),
+(0xFAC9),(0xFACA),(0xFACB),(0xFACC),(0xFACD),(0xFACE),(0xFACF),(0xFAD0),
+(0xFAD1),(0xFAD2),(0xFAD3),(0xFAD4),(0xFAD5),(0xFAD6),(0xFAD7),(0xFAD8),
+(0xFAD9),(0xFADA),(0xFADB),(0xFADC),(0xFADD),(0xFADE),(0xFADF),(0xFAE0),
+(0xFAE1),(0xFAE2),(0xFAE3),(0xFAE4),(0xFAE5),(0xFAE6),(0xFAE7),(0xFAE8),
+(0xFAE9),(0xFAEA),(0xFAEB),(0xFAEC),(0xFAED),(0xFAEE),(0xFAEF),(0xFAF0),
+(0xFAF1),(0xFAF2),(0xFAF3),(0xFAF4),(0xFAF5),(0xFAF6),(0xFAF7),(0xFAF8),
+(0xFAF9),(0xFAFA),(0xFAFB),(0xFAFC),(0xFAFD),(0xFAFE),
+(0xFBA1),(0xFBA2),(0xFBA3),(0xFBA4),(0xFBA5),(0xFBA6),(0xFBA7),(0xFBA8),
+(0xFBA9),(0xFBAA),(0xFBAB),(0xFBAC),(0xFBAD),(0xFBAE),(0xFBAF),(0xFBB0),
+(0xFBB1),(0xFBB2),(0xFBB3),(0xFBB4),(0xFBB5),(0xFBB6),(0xFBB7),(0xFBB8),
+(0xFBB9),(0xFBBA),(0xFBBB),(0xFBBC),(0xFBBD),(0xFBBE),(0xFBBF),(0xFBC0),
+(0xFBC1),(0xFBC2),(0xFBC3),(0xFBC4),(0xFBC5),(0xFBC6),(0xFBC7),(0xFBC8),
+(0xFBC9),(0xFBCA),(0xFBCB),(0xFBCC),(0xFBCD),(0xFBCE),(0xFBCF),(0xFBD0),
+(0xFBD1),(0xFBD2),(0xFBD3),(0xFBD4),(0xFBD5),(0xFBD6),(0xFBD7),(0xFBD8),
+(0xFBD9),(0xFBDA),(0xFBDB),(0xFBDC),(0xFBDD),(0xFBDE),(0xFBDF),(0xFBE0),
+(0xFBE1),(0xFBE2),(0xFBE3),(0xFBE4),(0xFBE5),(0xFBE6),(0xFBE7),(0xFBE8),
+(0xFBE9),(0xFBEA),(0xFBEB),(0xFBEC),(0xFBED),(0xFBEE),(0xFBEF),(0xFBF0),
+(0xFBF1),(0xFBF2),(0xFBF3),(0xFBF4),(0xFBF5),(0xFBF6),(0xFBF7),(0xFBF8),
+(0xFBF9),(0xFBFA),(0xFBFB),(0xFBFC),(0xFBFD),(0xFBFE),
+(0xFCA1),(0xFCA2),(0xFCA3),(0xFCA4),(0xFCA5),(0xFCA6),(0xFCA7),(0xFCA8),
+(0xFCA9),(0xFCAA),(0xFCAB),(0xFCAC),(0xFCAD),(0xFCAE),(0xFCAF),(0xFCB0),
+(0xFCB1),(0xFCB2),(0xFCB3),(0xFCB4),(0xFCB5),(0xFCB6),(0xFCB7),(0xFCB8),
+(0xFCB9),(0xFCBA),(0xFCBB),(0xFCBC),(0xFCBD),(0xFCBE),(0xFCBF),(0xFCC0),
+(0xFCC1),(0xFCC2),(0xFCC3),(0xFCC4),(0xFCC5),(0xFCC6),(0xFCC7),(0xFCC8),
+(0xFCC9),(0xFCCA),(0xFCCB),(0xFCCC),(0xFCCD),(0xFCCE),(0xFCCF),(0xFCD0),
+(0xFCD1),(0xFCD2),(0xFCD3),(0xFCD4),(0xFCD5),(0xFCD6),(0xFCD7),(0xFCD8),
+(0xFCD9),(0xFCDA),(0xFCDB),(0xFCDC),(0xFCDD),(0xFCDE),(0xFCDF),(0xFCE0),
+(0xFCE1),(0xFCE2),(0xFCE3),(0xFCE4),(0xFCE5),(0xFCE6),(0xFCE7),(0xFCE8),
+(0xFCE9),(0xFCEA),(0xFCEB),(0xFCEC),(0xFCED),(0xFCEE),(0xFCEF),(0xFCF0),
+(0xFCF1),(0xFCF2),(0xFCF3),(0xFCF4),(0xFCF5),(0xFCF6),(0xFCF7),(0xFCF8),
+(0xFCF9),(0xFCFA),(0xFCFB),(0xFCFC),(0xFCFD),(0xFCFE),
+(0xFDA1),(0xFDA2),(0xFDA3),(0xFDA4),(0xFDA5),(0xFDA6),(0xFDA7),(0xFDA8),
+(0xFDA9),(0xFDAA),(0xFDAB),(0xFDAC),(0xFDAD),(0xFDAE),(0xFDAF),(0xFDB0),
+(0xFDB1),(0xFDB2),(0xFDB3),(0xFDB4),(0xFDB5),(0xFDB6),(0xFDB7),(0xFDB8),
+(0xFDB9),(0xFDBA),(0xFDBB),(0xFDBC),(0xFDBD),(0xFDBE),(0xFDBF),(0xFDC0),
+(0xFDC1),(0xFDC2),(0xFDC3),(0xFDC4),(0xFDC5),(0xFDC6),(0xFDC7),(0xFDC8),
+(0xFDC9),(0xFDCA),(0xFDCB),(0xFDCC),(0xFDCD),(0xFDCE),(0xFDCF),(0xFDD0),
+(0xFDD1),(0xFDD2),(0xFDD3),(0xFDD4),(0xFDD5),(0xFDD6),(0xFDD7),(0xFDD8),
+(0xFDD9),(0xFDDA),(0xFDDB),(0xFDDC),(0xFDDD),(0xFDDE),(0xFDDF),(0xFDE0),
+(0xFDE1),(0xFDE2),(0xFDE3),(0xFDE4),(0xFDE5),(0xFDE6),(0xFDE7),(0xFDE8),
+(0xFDE9),(0xFDEA),(0xFDEB),(0xFDEC),(0xFDED),(0xFDEE),(0xFDEF),(0xFDF0),
+(0xFDF1),(0xFDF2),(0xFDF3),(0xFDF4),(0xFDF5),(0xFDF6),(0xFDF7),(0xFDF8),
+(0xFDF9),(0xFDFA),(0xFDFB),(0xFDFC),(0xFDFD),(0xFDFE),
+(0xFEA1),(0xFEA2),(0xFEA3),(0xFEA4),(0xFEA5),(0xFEA6),(0xFEA7),(0xFEA8),
+(0xFEA9),(0xFEAA),(0xFEAB),(0xFEAC),(0xFEAD),(0xFEAE),(0xFEAF),(0xFEB0),
+(0xFEB1),(0xFEB2),(0xFEB3),(0xFEB4),(0xFEB5),(0xFEB6),(0xFEB7),(0xFEB8),
+(0xFEB9),(0xFEBA),(0xFEBB),(0xFEBC),(0xFEBD),(0xFEBE),(0xFEBF),(0xFEC0),
+(0xFEC1),(0xFEC2),(0xFEC3),(0xFEC4),(0xFEC5),(0xFEC6),(0xFEC7),(0xFEC8),
+(0xFEC9),(0xFECA),(0xFECB),(0xFECC),(0xFECD),(0xFECE),(0xFECF),(0xFED0),
+(0xFED1),(0xFED2),(0xFED3),(0xFED4),(0xFED5),(0xFED6),(0xFED7),(0xFED8),
+(0xFED9),(0xFEDA),(0xFEDB),(0xFEDC),(0xFEDD),(0xFEDE),(0xFEDF),(0xFEE0),
+(0xFEE1),(0xFEE2),(0xFEE3),(0xFEE4),(0xFEE5),(0xFEE6),(0xFEE7),(0xFEE8),
+(0xFEE9),(0xFEEA),(0xFEEB),(0xFEEC),(0xFEED),(0xFEEE),(0xFEEF),(0xFEF0),
+(0xFEF1),(0xFEF2),(0xFEF3),(0xFEF4),(0xFEF5),(0xFEF6),(0xFEF7),(0xFEF8),
+(0xFEF9),(0xFEFA),(0xFEFB),(0xFEFC),(0xFEFD),(0xFEFE),
+(0x8FF5A1),(0x8FF5A2),(0x8FF5A3),(0x8FF5A4),(0x8FF5A5),(0x8FF5A6),(0x8FF5A7),(0x8FF5A8),
+(0x8FF5A9),(0x8FF5AA),(0x8FF5AB),(0x8FF5AC),(0x8FF5AD),(0x8FF5AE),(0x8FF5AF),(0x8FF5B0),
+(0x8FF5B1),(0x8FF5B2),(0x8FF5B3),(0x8FF5B4),(0x8FF5B5),(0x8FF5B6),(0x8FF5B7),(0x8FF5B8),
+(0x8FF5B9),(0x8FF5BA),(0x8FF5BB),(0x8FF5BC),(0x8FF5BD),(0x8FF5BE),(0x8FF5BF),(0x8FF5C0),
+(0x8FF5C1),(0x8FF5C2),(0x8FF5C3),(0x8FF5C4),(0x8FF5C5),(0x8FF5C6),(0x8FF5C7),(0x8FF5C8),
+(0x8FF5C9),(0x8FF5CA),(0x8FF5CB),(0x8FF5CC),(0x8FF5CD),(0x8FF5CE),(0x8FF5CF),(0x8FF5D0),
+(0x8FF5D1),(0x8FF5D2),(0x8FF5D3),(0x8FF5D4),(0x8FF5D5),(0x8FF5D6),(0x8FF5D7),(0x8FF5D8),
+(0x8FF5D9),(0x8FF5DA),(0x8FF5DB),(0x8FF5DC),(0x8FF5DD),(0x8FF5DE),(0x8FF5DF),(0x8FF5E0),
+(0x8FF5E1),(0x8FF5E2),(0x8FF5E3),(0x8FF5E4),(0x8FF5E5),(0x8FF5E6),(0x8FF5E7),(0x8FF5E8),
+(0x8FF5E9),(0x8FF5EA),(0x8FF5EB),(0x8FF5EC),(0x8FF5ED),(0x8FF5EE),(0x8FF5EF),(0x8FF5F0),
+(0x8FF5F1),(0x8FF5F2),(0x8FF5F3),(0x8FF5F4),(0x8FF5F5),(0x8FF5F6),(0x8FF5F7),(0x8FF5F8),
+(0x8FF5F9),(0x8FF5FA),(0x8FF5FB),(0x8FF5FC),(0x8FF5FD),(0x8FF5FE),
+(0x8FF6A1),(0x8FF6A2),(0x8FF6A3),(0x8FF6A4),(0x8FF6A5),(0x8FF6A6),(0x8FF6A7),(0x8FF6A8),
+(0x8FF6A9),(0x8FF6AA),(0x8FF6AB),(0x8FF6AC),(0x8FF6AD),(0x8FF6AE),(0x8FF6AF),(0x8FF6B0),
+(0x8FF6B1),(0x8FF6B2),(0x8FF6B3),(0x8FF6B4),(0x8FF6B5),(0x8FF6B6),(0x8FF6B7),(0x8FF6B8),
+(0x8FF6B9),(0x8FF6BA),(0x8FF6BB),(0x8FF6BC),(0x8FF6BD),(0x8FF6BE),(0x8FF6BF),(0x8FF6C0),
+(0x8FF6C1),(0x8FF6C2),(0x8FF6C3),(0x8FF6C4),(0x8FF6C5),(0x8FF6C6),(0x8FF6C7),(0x8FF6C8),
+(0x8FF6C9),(0x8FF6CA),(0x8FF6CB),(0x8FF6CC),(0x8FF6CD),(0x8FF6CE),(0x8FF6CF),(0x8FF6D0),
+(0x8FF6D1),(0x8FF6D2),(0x8FF6D3),(0x8FF6D4),(0x8FF6D5),(0x8FF6D6),(0x8FF6D7),(0x8FF6D8),
+(0x8FF6D9),(0x8FF6DA),(0x8FF6DB),(0x8FF6DC),(0x8FF6DD),(0x8FF6DE),(0x8FF6DF),(0x8FF6E0),
+(0x8FF6E1),(0x8FF6E2),(0x8FF6E3),(0x8FF6E4),(0x8FF6E5),(0x8FF6E6),(0x8FF6E7),(0x8FF6E8),
+(0x8FF6E9),(0x8FF6EA),(0x8FF6EB),(0x8FF6EC),(0x8FF6ED),(0x8FF6EE),(0x8FF6EF),(0x8FF6F0),
+(0x8FF6F1),(0x8FF6F2),(0x8FF6F3),(0x8FF6F4),(0x8FF6F5),(0x8FF6F6),(0x8FF6F7),(0x8FF6F8),
+(0x8FF6F9),(0x8FF6FA),(0x8FF6FB),(0x8FF6FC),(0x8FF6FD),(0x8FF6FE),
+(0x8FF7A1),(0x8FF7A2),(0x8FF7A3),(0x8FF7A4),(0x8FF7A5),(0x8FF7A6),(0x8FF7A7),(0x8FF7A8),
+(0x8FF7A9),(0x8FF7AA),(0x8FF7AB),(0x8FF7AC),(0x8FF7AD),(0x8FF7AE),(0x8FF7AF),(0x8FF7B0),
+(0x8FF7B1),(0x8FF7B2),(0x8FF7B3),(0x8FF7B4),(0x8FF7B5),(0x8FF7B6),(0x8FF7B7),(0x8FF7B8),
+(0x8FF7B9),(0x8FF7BA),(0x8FF7BB),(0x8FF7BC),(0x8FF7BD),(0x8FF7BE),(0x8FF7BF),(0x8FF7C0),
+(0x8FF7C1),(0x8FF7C2),(0x8FF7C3),(0x8FF7C4),(0x8FF7C5),(0x8FF7C6),(0x8FF7C7),(0x8FF7C8),
+(0x8FF7C9),(0x8FF7CA),(0x8FF7CB),(0x8FF7CC),(0x8FF7CD),(0x8FF7CE),(0x8FF7CF),(0x8FF7D0),
+(0x8FF7D1),(0x8FF7D2),(0x8FF7D3),(0x8FF7D4),(0x8FF7D5),(0x8FF7D6),(0x8FF7D7),(0x8FF7D8),
+(0x8FF7D9),(0x8FF7DA),(0x8FF7DB),(0x8FF7DC),(0x8FF7DD),(0x8FF7DE),(0x8FF7DF),(0x8FF7E0),
+(0x8FF7E1),(0x8FF7E2),(0x8FF7E3),(0x8FF7E4),(0x8FF7E5),(0x8FF7E6),(0x8FF7E7),(0x8FF7E8),
+(0x8FF7E9),(0x8FF7EA),(0x8FF7EB),(0x8FF7EC),(0x8FF7ED),(0x8FF7EE),(0x8FF7EF),(0x8FF7F0),
+(0x8FF7F1),(0x8FF7F2),(0x8FF7F3),(0x8FF7F4),(0x8FF7F5),(0x8FF7F6),(0x8FF7F7),(0x8FF7F8),
+(0x8FF7F9),(0x8FF7FA),(0x8FF7FB),(0x8FF7FC),(0x8FF7FD),(0x8FF7FE),
+(0x8FF8A1),(0x8FF8A2),(0x8FF8A3),(0x8FF8A4),(0x8FF8A5),(0x8FF8A6),(0x8FF8A7),(0x8FF8A8),
+(0x8FF8A9),(0x8FF8AA),(0x8FF8AB),(0x8FF8AC),(0x8FF8AD),(0x8FF8AE),(0x8FF8AF),(0x8FF8B0),
+(0x8FF8B1),(0x8FF8B2),(0x8FF8B3),(0x8FF8B4),(0x8FF8B5),(0x8FF8B6),(0x8FF8B7),(0x8FF8B8),
+(0x8FF8B9),(0x8FF8BA),(0x8FF8BB),(0x8FF8BC),(0x8FF8BD),(0x8FF8BE),(0x8FF8BF),(0x8FF8C0),
+(0x8FF8C1),(0x8FF8C2),(0x8FF8C3),(0x8FF8C4),(0x8FF8C5),(0x8FF8C6),(0x8FF8C7),(0x8FF8C8),
+(0x8FF8C9),(0x8FF8CA),(0x8FF8CB),(0x8FF8CC),(0x8FF8CD),(0x8FF8CE),(0x8FF8CF),(0x8FF8D0),
+(0x8FF8D1),(0x8FF8D2),(0x8FF8D3),(0x8FF8D4),(0x8FF8D5),(0x8FF8D6),(0x8FF8D7),(0x8FF8D8),
+(0x8FF8D9),(0x8FF8DA),(0x8FF8DB),(0x8FF8DC),(0x8FF8DD),(0x8FF8DE),(0x8FF8DF),(0x8FF8E0),
+(0x8FF8E1),(0x8FF8E2),(0x8FF8E3),(0x8FF8E4),(0x8FF8E5),(0x8FF8E6),(0x8FF8E7),(0x8FF8E8),
+(0x8FF8E9),(0x8FF8EA),(0x8FF8EB),(0x8FF8EC),(0x8FF8ED),(0x8FF8EE),(0x8FF8EF),(0x8FF8F0),
+(0x8FF8F1),(0x8FF8F2),(0x8FF8F3),(0x8FF8F4),(0x8FF8F5),(0x8FF8F6),(0x8FF8F7),(0x8FF8F8),
+(0x8FF8F9),(0x8FF8FA),(0x8FF8FB),(0x8FF8FC),(0x8FF8FD),(0x8FF8FE),
+(0x8FF9A1),(0x8FF9A2),(0x8FF9A3),(0x8FF9A4),(0x8FF9A5),(0x8FF9A6),(0x8FF9A7),(0x8FF9A8),
+(0x8FF9A9),(0x8FF9AA),(0x8FF9AB),(0x8FF9AC),(0x8FF9AD),(0x8FF9AE),(0x8FF9AF),(0x8FF9B0),
+(0x8FF9B1),(0x8FF9B2),(0x8FF9B3),(0x8FF9B4),(0x8FF9B5),(0x8FF9B6),(0x8FF9B7),(0x8FF9B8),
+(0x8FF9B9),(0x8FF9BA),(0x8FF9BB),(0x8FF9BC),(0x8FF9BD),(0x8FF9BE),(0x8FF9BF),(0x8FF9C0),
+(0x8FF9C1),(0x8FF9C2),(0x8FF9C3),(0x8FF9C4),(0x8FF9C5),(0x8FF9C6),(0x8FF9C7),(0x8FF9C8),
+(0x8FF9C9),(0x8FF9CA),(0x8FF9CB),(0x8FF9CC),(0x8FF9CD),(0x8FF9CE),(0x8FF9CF),(0x8FF9D0),
+(0x8FF9D1),(0x8FF9D2),(0x8FF9D3),(0x8FF9D4),(0x8FF9D5),(0x8FF9D6),(0x8FF9D7),(0x8FF9D8),
+(0x8FF9D9),(0x8FF9DA),(0x8FF9DB),(0x8FF9DC),(0x8FF9DD),(0x8FF9DE),(0x8FF9DF),(0x8FF9E0),
+(0x8FF9E1),(0x8FF9E2),(0x8FF9E3),(0x8FF9E4),(0x8FF9E5),(0x8FF9E6),(0x8FF9E7),(0x8FF9E8),
+(0x8FF9E9),(0x8FF9EA),(0x8FF9EB),(0x8FF9EC),(0x8FF9ED),(0x8FF9EE),(0x8FF9EF),(0x8FF9F0),
+(0x8FF9F1),(0x8FF9F2),(0x8FF9F3),(0x8FF9F4),(0x8FF9F5),(0x8FF9F6),(0x8FF9F7),(0x8FF9F8),
+(0x8FF9F9),(0x8FF9FA),(0x8FF9FB),(0x8FF9FC),(0x8FF9FD),(0x8FF9FE),
+(0x8FFAA1),(0x8FFAA2),(0x8FFAA3),(0x8FFAA4),(0x8FFAA5),(0x8FFAA6),(0x8FFAA7),(0x8FFAA8),
+(0x8FFAA9),(0x8FFAAA),(0x8FFAAB),(0x8FFAAC),(0x8FFAAD),(0x8FFAAE),(0x8FFAAF),(0x8FFAB0),
+(0x8FFAB1),(0x8FFAB2),(0x8FFAB3),(0x8FFAB4),(0x8FFAB5),(0x8FFAB6),(0x8FFAB7),(0x8FFAB8),
+(0x8FFAB9),(0x8FFABA),(0x8FFABB),(0x8FFABC),(0x8FFABD),(0x8FFABE),(0x8FFABF),(0x8FFAC0),
+(0x8FFAC1),(0x8FFAC2),(0x8FFAC3),(0x8FFAC4),(0x8FFAC5),(0x8FFAC6),(0x8FFAC7),(0x8FFAC8),
+(0x8FFAC9),(0x8FFACA),(0x8FFACB),(0x8FFACC),(0x8FFACD),(0x8FFACE),(0x8FFACF),(0x8FFAD0),
+(0x8FFAD1),(0x8FFAD2),(0x8FFAD3),(0x8FFAD4),(0x8FFAD5),(0x8FFAD6),(0x8FFAD7),(0x8FFAD8),
+(0x8FFAD9),(0x8FFADA),(0x8FFADB),(0x8FFADC),(0x8FFADD),(0x8FFADE),(0x8FFADF),(0x8FFAE0),
+(0x8FFAE1),(0x8FFAE2),(0x8FFAE3),(0x8FFAE4),(0x8FFAE5),(0x8FFAE6),(0x8FFAE7),(0x8FFAE8),
+(0x8FFAE9),(0x8FFAEA),(0x8FFAEB),(0x8FFAEC),(0x8FFAED),(0x8FFAEE),(0x8FFAEF),(0x8FFAF0),
+(0x8FFAF1),(0x8FFAF2),(0x8FFAF3),(0x8FFAF4),(0x8FFAF5),(0x8FFAF6),(0x8FFAF7),(0x8FFAF8),
+(0x8FFAF9),(0x8FFAFA),(0x8FFAFB),(0x8FFAFC),(0x8FFAFD),(0x8FFAFE),
+(0x8FFBA1),(0x8FFBA2),(0x8FFBA3),(0x8FFBA4),(0x8FFBA5),(0x8FFBA6),(0x8FFBA7),(0x8FFBA8),
+(0x8FFBA9),(0x8FFBAA),(0x8FFBAB),(0x8FFBAC),(0x8FFBAD),(0x8FFBAE),(0x8FFBAF),(0x8FFBB0),
+(0x8FFBB1),(0x8FFBB2),(0x8FFBB3),(0x8FFBB4),(0x8FFBB5),(0x8FFBB6),(0x8FFBB7),(0x8FFBB8),
+(0x8FFBB9),(0x8FFBBA),(0x8FFBBB),(0x8FFBBC),(0x8FFBBD),(0x8FFBBE),(0x8FFBBF),(0x8FFBC0),
+(0x8FFBC1),(0x8FFBC2),(0x8FFBC3),(0x8FFBC4),(0x8FFBC5),(0x8FFBC6),(0x8FFBC7),(0x8FFBC8),
+(0x8FFBC9),(0x8FFBCA),(0x8FFBCB),(0x8FFBCC),(0x8FFBCD),(0x8FFBCE),(0x8FFBCF),(0x8FFBD0),
+(0x8FFBD1),(0x8FFBD2),(0x8FFBD3),(0x8FFBD4),(0x8FFBD5),(0x8FFBD6),(0x8FFBD7),(0x8FFBD8),
+(0x8FFBD9),(0x8FFBDA),(0x8FFBDB),(0x8FFBDC),(0x8FFBDD),(0x8FFBDE),(0x8FFBDF),(0x8FFBE0),
+(0x8FFBE1),(0x8FFBE2),(0x8FFBE3),(0x8FFBE4),(0x8FFBE5),(0x8FFBE6),(0x8FFBE7),(0x8FFBE8),
+(0x8FFBE9),(0x8FFBEA),(0x8FFBEB),(0x8FFBEC),(0x8FFBED),(0x8FFBEE),(0x8FFBEF),(0x8FFBF0),
+(0x8FFBF1),(0x8FFBF2),(0x8FFBF3),(0x8FFBF4),(0x8FFBF5),(0x8FFBF6),(0x8FFBF7),(0x8FFBF8),
+(0x8FFBF9),(0x8FFBFA),(0x8FFBFB),(0x8FFBFC),(0x8FFBFD),(0x8FFBFE),
+(0x8FFCA1),(0x8FFCA2),(0x8FFCA3),(0x8FFCA4),(0x8FFCA5),(0x8FFCA6),(0x8FFCA7),(0x8FFCA8),
+(0x8FFCA9),(0x8FFCAA),(0x8FFCAB),(0x8FFCAC),(0x8FFCAD),(0x8FFCAE),(0x8FFCAF),(0x8FFCB0),
+(0x8FFCB1),(0x8FFCB2),(0x8FFCB3),(0x8FFCB4),(0x8FFCB5),(0x8FFCB6),(0x8FFCB7),(0x8FFCB8),
+(0x8FFCB9),(0x8FFCBA),(0x8FFCBB),(0x8FFCBC),(0x8FFCBD),(0x8FFCBE),(0x8FFCBF),(0x8FFCC0),
+(0x8FFCC1),(0x8FFCC2),(0x8FFCC3),(0x8FFCC4),(0x8FFCC5),(0x8FFCC6),(0x8FFCC7),(0x8FFCC8),
+(0x8FFCC9),(0x8FFCCA),(0x8FFCCB),(0x8FFCCC),(0x8FFCCD),(0x8FFCCE),(0x8FFCCF),(0x8FFCD0),
+(0x8FFCD1),(0x8FFCD2),(0x8FFCD3),(0x8FFCD4),(0x8FFCD5),(0x8FFCD6),(0x8FFCD7),(0x8FFCD8),
+(0x8FFCD9),(0x8FFCDA),(0x8FFCDB),(0x8FFCDC),(0x8FFCDD),(0x8FFCDE),(0x8FFCDF),(0x8FFCE0),
+(0x8FFCE1),(0x8FFCE2),(0x8FFCE3),(0x8FFCE4),(0x8FFCE5),(0x8FFCE6),(0x8FFCE7),(0x8FFCE8),
+(0x8FFCE9),(0x8FFCEA),(0x8FFCEB),(0x8FFCEC),(0x8FFCED),(0x8FFCEE),(0x8FFCEF),(0x8FFCF0),
+(0x8FFCF1),(0x8FFCF2),(0x8FFCF3),(0x8FFCF4),(0x8FFCF5),(0x8FFCF6),(0x8FFCF7),(0x8FFCF8),
+(0x8FFCF9),(0x8FFCFA),(0x8FFCFB),(0x8FFCFC),(0x8FFCFD),(0x8FFCFE),
+(0x8FFDA1),(0x8FFDA2),(0x8FFDA3),(0x8FFDA4),(0x8FFDA5),(0x8FFDA6),(0x8FFDA7),(0x8FFDA8),
+(0x8FFDA9),(0x8FFDAA),(0x8FFDAB),(0x8FFDAC),(0x8FFDAD),(0x8FFDAE),(0x8FFDAF),(0x8FFDB0),
+(0x8FFDB1),(0x8FFDB2),(0x8FFDB3),(0x8FFDB4),(0x8FFDB5),(0x8FFDB6),(0x8FFDB7),(0x8FFDB8),
+(0x8FFDB9),(0x8FFDBA),(0x8FFDBB),(0x8FFDBC),(0x8FFDBD),(0x8FFDBE),(0x8FFDBF),(0x8FFDC0),
+(0x8FFDC1),(0x8FFDC2),(0x8FFDC3),(0x8FFDC4),(0x8FFDC5),(0x8FFDC6),(0x8FFDC7),(0x8FFDC8),
+(0x8FFDC9),(0x8FFDCA),(0x8FFDCB),(0x8FFDCC),(0x8FFDCD),(0x8FFDCE),(0x8FFDCF),(0x8FFDD0),
+(0x8FFDD1),(0x8FFDD2),(0x8FFDD3),(0x8FFDD4),(0x8FFDD5),(0x8FFDD6),(0x8FFDD7),(0x8FFDD8),
+(0x8FFDD9),(0x8FFDDA),(0x8FFDDB),(0x8FFDDC),(0x8FFDDD),(0x8FFDDE),(0x8FFDDF),(0x8FFDE0),
+(0x8FFDE1),(0x8FFDE2),(0x8FFDE3),(0x8FFDE4),(0x8FFDE5),(0x8FFDE6),(0x8FFDE7),(0x8FFDE8),
+(0x8FFDE9),(0x8FFDEA),(0x8FFDEB),(0x8FFDEC),(0x8FFDED),(0x8FFDEE),(0x8FFDEF),(0x8FFDF0),
+(0x8FFDF1),(0x8FFDF2),(0x8FFDF3),(0x8FFDF4),(0x8FFDF5),(0x8FFDF6),(0x8FFDF7),(0x8FFDF8),
+(0x8FFDF9),(0x8FFDFA),(0x8FFDFB),(0x8FFDFC),(0x8FFDFD),(0x8FFDFE),
+(0x8FFEA1),(0x8FFEA2),(0x8FFEA3),(0x8FFEA4),(0x8FFEA5),(0x8FFEA6),(0x8FFEA7),(0x8FFEA8),
+(0x8FFEA9),(0x8FFEAA),(0x8FFEAB),(0x8FFEAC),(0x8FFEAD),(0x8FFEAE),(0x8FFEAF),(0x8FFEB0),
+(0x8FFEB1),(0x8FFEB2),(0x8FFEB3),(0x8FFEB4),(0x8FFEB5),(0x8FFEB6),(0x8FFEB7),(0x8FFEB8),
+(0x8FFEB9),(0x8FFEBA),(0x8FFEBB),(0x8FFEBC),(0x8FFEBD),(0x8FFEBE),(0x8FFEBF),(0x8FFEC0),
+(0x8FFEC1),(0x8FFEC2),(0x8FFEC3),(0x8FFEC4),(0x8FFEC5),(0x8FFEC6),(0x8FFEC7),(0x8FFEC8),
+(0x8FFEC9),(0x8FFECA),(0x8FFECB),(0x8FFECC),(0x8FFECD),(0x8FFECE),(0x8FFECF),(0x8FFED0),
+(0x8FFED1),(0x8FFED2),(0x8FFED3),(0x8FFED4),(0x8FFED5),(0x8FFED6),(0x8FFED7),(0x8FFED8),
+(0x8FFED9),(0x8FFEDA),(0x8FFEDB),(0x8FFEDC),(0x8FFEDD),(0x8FFEDE),(0x8FFEDF),(0x8FFEE0),
+(0x8FFEE1),(0x8FFEE2),(0x8FFEE3),(0x8FFEE4),(0x8FFEE5),(0x8FFEE6),(0x8FFEE7),(0x8FFEE8),
+(0x8FFEE9),(0x8FFEEA),(0x8FFEEB),(0x8FFEEC),(0x8FFEED),(0x8FFEEE),(0x8FFEEF),(0x8FFEF0),
+(0x8FFEF1),(0x8FFEF2),(0x8FFEF3),(0x8FFEF4),(0x8FFEF5),(0x8FFEF6),(0x8FFEF7),(0x8FFEF8),
+(0x8FFEF9),(0x8FFEFA),(0x8FFEFB),(0x8FFEFC),(0x8FFEFD),(0x8FFEFE);
+SELECT HEX(c1) FROM t1;
+HEX(c1)
+5C
+7E
+A1B1
+A1BD
+A1C0
+A1C1
+A1C2
+A1DD
+A1F1
+A1F2
+A1EF
+A2CC
+8FA2B7
+8FA2C3
+ADA1
+ADA2
+ADA3
+ADA4
+ADA5
+ADA6
+ADA7
+ADA8
+ADA9
+ADAA
+ADAB
+ADAC
+ADAD
+ADAE
+ADAF
+ADB0
+ADB1
+ADB2
+ADB3
+ADB4
+ADB5
+ADB6
+ADB7
+ADB8
+ADB9
+ADBA
+ADBB
+ADBC
+ADBD
+ADBE
+ADC0
+ADC1
+ADC2
+ADC3
+ADC4
+ADC5
+ADC6
+ADC7
+ADC8
+ADC9
+ADCA
+ADCB
+ADCC
+ADCD
+ADCE
+ADCF
+ADD0
+ADD1
+ADD2
+ADD3
+ADD4
+ADD5
+ADD6
+ADDF
+ADE0
+ADE1
+ADE2
+ADE3
+ADE4
+ADE5
+ADE6
+ADE7
+ADE8
+ADE9
+ADEA
+ADEB
+ADEC
+ADED
+ADEE
+ADEF
+ADF0
+ADF1
+ADF2
+ADF3
+ADF4
+ADF5
+ADF6
+ADF7
+ADF8
+ADF9
+ADFA
+ADFB
+ADFC
+8FF3F3
+8FF3F4
+8FF3F5
+8FF3F6
+8FF3F7
+8FF3F8
+8FF3F9
+8FF3FA
+8FF3FB
+8FF3FC
+8FF3FD
+8FF3FE
+8FF4A1
+8FF4A2
+8FF4A3
+8FF4A4
+8FF4A5
+8FF4A6
+8FF4A7
+8FF4A8
+A2CC
+8FA2C3
+8FF4A9
+8FF4AA
+8FF4AB
+8FF4AC
+8FF4AD
+A2E8
+8FD4E3
+8FDCDF
+8FE4E9
+8FE3F8
+8FD9A1
+8FB1BB
+8FF4AE
+8FC2AD
+8FC3FC
+8FE4D0
+8FC2BF
+8FBCF4
+8FB0A9
+8FB0C8
+8FF4AF
+8FB0D2
+8FB0D4
+8FB0E3
+8FB0EE
+8FB1A7
+8FB1A3
+8FB1AC
+8FB1A9
+8FB1BE
+8FB1DF
+8FB1D8
+8FB1C8
+8FB1D7
+8FB1E3
+8FB1F4
+8FB1E1
+8FB2A3
+8FF4B0
+8FB2BB
+8FB2E6
+8FB2ED
+8FB2F5
+8FB2FC
+8FF4B1
+8FB3B5
+8FB3D8
+8FB3DB
+8FB3E5
+8FB3EE
+8FB3FB
+8FF4B2
+8FF4B3
+8FB4C0
+8FB4C7
+8FB4D0
+8FB4DE
+8FF4B4
+8FB5AA
+8FF4B5
+8FB5AF
+8FB5C4
+8FB5E8
+8FF4B6
+8FB7C2
+8FB7E4
+8FB7E8
+8FB7E7
+8FF4B7
+8FF4B8
+8FF4B9
+8FB8CE
+8FB8E1
+8FB8F5
+8FB8F7
+8FB8F8
+8FB8FC
+8FB9AF
+8FB9B7
+8FBABE
+8FBADB
+8FCDAA
+8FBAE1
+8FF4BA
+8FBAEB
+8FBBB3
+8FBBB8
+8FF4BB
+8FBBCA
+8FF4BC
+8FF4BD
+8FBBD0
+8FBBDE
+8FBBF4
+8FBBF5
+8FBBF9
+8FBCE4
+8FBCED
+8FBCFE
+8FF4BE
+8FBDC2
+8FBDE7
+8FF4BF
+8FBDF0
+8FBEB0
+8FBEAC
+8FF4C0
+8FBEB3
+8FBEBD
+8FBECD
+8FBEC9
+8FBEE4
+8FBFA8
+8FBFC9
+8FC0C4
+8FC0E4
+8FC0F4
+8FC1A6
+8FF4C1
+8FC1F5
+8FC1FC
+8FF4C2
+8FC1F8
+8FC2AB
+8FC2A1
+8FC2A5
+8FF4C3
+8FC2B8
+8FC2BA
+8FF4C4
+8FC2C4
+8FC2D2
+8FC2D7
+8FC2DB
+8FC2DE
+8FC2ED
+8FC2F0
+8FF4C5
+8FC3A1
+8FC3B5
+8FC3C9
+8FC3B9
+8FF4C6
+8FC3D8
+8FC3FE
+8FF4C7
+8FC4CC
+8FF4C8
+8FC4D9
+8FC4EA
+8FC4FD
+8FF4C9
+8FC5A7
+8FC5B5
+8FC5B6
+8FF4CA
+8FC5D5
+8FC6B8
+8FC6D7
+8FC6E0
+8FC6EA
+8FC6E3
+8FC7A1
+8FC7AB
+8FC7C7
+8FC7C3
+8FC7CB
+8FC7CF
+8FC7D9
+8FF4CB
+8FF4CC
+8FC7E6
+8FC7EE
+8FC7FC
+8FC7EB
+8FC7F0
+8FC8B1
+8FC8E5
+8FC8F8
+8FC9A6
+8FC9AB
+8FC9AD
+8FF4CD
+8FC9CA
+8FC9D3
+8FC9E9
+8FC9E3
+8FC9FC
+8FC9F4
+8FC9F5
+8FF4CE
+8FCAB3
+8FCABD
+8FCAEF
+8FCAF1
+8FCBAE
+8FF4CF
+8FCBCA
+8FCBE6
+8FCBEA
+8FCBF0
+8FCBF4
+8FCBEE
+8FCCA5
+8FCBF9
+8FCCAB
+8FCCAE
+8FCCAD
+8FCCB2
+8FCCC2
+8FCCD0
+8FCCD9
+8FF4D0
+8FCDBB
+8FF4D1
+8FCEBB
+8FF4D2
+8FCEBA
+8FCEC3
+8FF4D3
+8FCEF2
+8FB3DD
+8FCFD5
+8FCFE2
+8FCFE9
+8FCFED
+8FF4D4
+8FF4D5
+8FF4D6
+8FF4D7
+8FD0E5
+8FF4D8
+8FD0E9
+8FD1E8
+8FF4D9
+8FF4DA
+8FD1EC
+8FD2BB
+8FF4DB
+8FD3E1
+8FD3E8
+8FD4A7
+8FF4DC
+8FF4DD
+8FD4D4
+8FD4F2
+8FD5AE
+8FF4DE
+8FD7DE
+8FF4DF
+8FD8A2
+8FD8B7
+8FD8C1
+8FD8D1
+8FD8F4
+8FD9C6
+8FD9C8
+8FD9D1
+8FF4E0
+8FF4E1
+8FF4E2
+8FF4E3
+8FF4E4
+8FDCD3
+8FDDC8
+8FDDD4
+8FDDEA
+8FDDFA
+8FDEA4
+8FDEB0
+8FF4E5
+8FDEB5
+8FDECB
+8FF4E6
+8FDFB9
+8FF4E7
+8FDFC3
+8FF4E8
+8FF4E9
+8FE0D9
+8FF4EA
+8FF4EB
+8FE1E2
+8FF4EC
+8FF4ED
+8FF4EE
+8FE2C7
+8FE3A8
+8FE3A6
+8FE3A9
+8FE3AF
+8FE3B0
+8FE3AA
+8FE3AB
+8FE3BC
+8FE3C1
+8FE3BF
+8FE3D5
+8FE3D8
+8FE3D6
+8FE3DF
+8FE3E3
+8FE3E1
+8FE3D4
+8FE3E9
+8FE4A6
+8FE3F1
+8FE3F2
+8FE4CB
+8FE4C1
+8FE4C3
+8FE4BE
+8FF4EF
+8FE4C0
+8FE4C7
+8FE4BF
+8FE4E0
+8FE4DE
+8FE4D1
+8FF4F0
+8FE4DC
+8FE4D2
+8FE4DB
+8FE4D4
+8FE4FA
+8FE4EF
+8FE5B3
+8FE5BF
+8FE5C9
+8FE5D0
+8FE5E2
+8FE5EA
+8FE5EB
+8FF4F1
+8FF4F2
+8FF4F3
+8FE6E8
+8FE6EF
+8FE7AC
+8FF4F4
+8FE7AE
+8FF4F5
+8FE7B1
+8FF4F6
+8FE7B2
+8FE8B1
+8FE8B6
+8FF4F7
+8FF4F8
+8FE8DD
+8FF4F9
+8FF4FA
+8FE9D1
+8FF4FB
+8FE9ED
+8FEACD
+8FF4FC
+8FEADB
+8FEAE6
+8FEAEA
+8FEBA5
+8FEBFB
+8FEBFA
+8FF4FD
+8FECD6
+8FF4FE
+F5A1
+F5A2
+F5A3
+F5A4
+F5A5
+F5A6
+F5A7
+F5A8
+F5A9
+F5AA
+F5AB
+F5AC
+F5AD
+F5AE
+F5AF
+F5B0
+F5B1
+F5B2
+F5B3
+F5B4
+F5B5
+F5B6
+F5B7
+F5B8
+F5B9
+F5BA
+F5BB
+F5BC
+F5BD
+F5BE
+F5BF
+F5C0
+F5C1
+F5C2
+F5C3
+F5C4
+F5C5
+F5C6
+F5C7
+F5C8
+F5C9
+F5CA
+F5CB
+F5CC
+F5CD
+F5CE
+F5CF
+F5D0
+F5D1
+F5D2
+F5D3
+F5D4
+F5D5
+F5D6
+F5D7
+F5D8
+F5D9
+F5DA
+F5DB
+F5DC
+F5DD
+F5DE
+F5DF
+F5E0
+F5E1
+F5E2
+F5E3
+F5E4
+F5E5
+F5E6
+F5E7
+F5E8
+F5E9
+F5EA
+F5EB
+F5EC
+F5ED
+F5EE
+F5EF
+F5F0
+F5F1
+F5F2
+F5F3
+F5F4
+F5F5
+F5F6
+F5F7
+F5F8
+F5F9
+F5FA
+F5FB
+F5FC
+F5FD
+F5FE
+F6A1
+F6A2
+F6A3
+F6A4
+F6A5
+F6A6
+F6A7
+F6A8
+F6A9
+F6AA
+F6AB
+F6AC
+F6AD
+F6AE
+F6AF
+F6B0
+F6B1
+F6B2
+F6B3
+F6B4
+F6B5
+F6B6
+F6B7
+F6B8
+F6B9
+F6BA
+F6BB
+F6BC
+F6BD
+F6BE
+F6BF
+F6C0
+F6C1
+F6C2
+F6C3
+F6C4
+F6C5
+F6C6
+F6C7
+F6C8
+F6C9
+F6CA
+F6CB
+F6CC
+F6CD
+F6CE
+F6CF
+F6D0
+F6D1
+F6D2
+F6D3
+F6D4
+F6D5
+F6D6
+F6D7
+F6D8
+F6D9
+F6DA
+F6DB
+F6DC
+F6DD
+F6DE
+F6DF
+F6E0
+F6E1
+F6E2
+F6E3
+F6E4
+F6E5
+F6E6
+F6E7
+F6E8
+F6E9
+F6EA
+F6EB
+F6EC
+F6ED
+F6EE
+F6EF
+F6F0
+F6F1
+F6F2
+F6F3
+F6F4
+F6F5
+F6F6
+F6F7
+F6F8
+F6F9
+F6FA
+F6FB
+F6FC
+F6FD
+F6FE
+F7A1
+F7A2
+F7A3
+F7A4
+F7A5
+F7A6
+F7A7
+F7A8
+F7A9
+F7AA
+F7AB
+F7AC
+F7AD
+F7AE
+F7AF
+F7B0
+F7B1
+F7B2
+F7B3
+F7B4
+F7B5
+F7B6
+F7B7
+F7B8
+F7B9
+F7BA
+F7BB
+F7BC
+F7BD
+F7BE
+F7BF
+F7C0
+F7C1
+F7C2
+F7C3
+F7C4
+F7C5
+F7C6
+F7C7
+F7C8
+F7C9
+F7CA
+F7CB
+F7CC
+F7CD
+F7CE
+F7CF
+F7D0
+F7D1
+F7D2
+F7D3
+F7D4
+F7D5
+F7D6
+F7D7
+F7D8
+F7D9
+F7DA
+F7DB
+F7DC
+F7DD
+F7DE
+F7DF
+F7E0
+F7E1
+F7E2
+F7E3
+F7E4
+F7E5
+F7E6
+F7E7
+F7E8
+F7E9
+F7EA
+F7EB
+F7EC
+F7ED
+F7EE
+F7EF
+F7F0
+F7F1
+F7F2
+F7F3
+F7F4
+F7F5
+F7F6
+F7F7
+F7F8
+F7F9
+F7FA
+F7FB
+F7FC
+F7FD
+F7FE
+F8A1
+F8A2
+F8A3
+F8A4
+F8A5
+F8A6
+F8A7
+F8A8
+F8A9
+F8AA
+F8AB
+F8AC
+F8AD
+F8AE
+F8AF
+F8B0
+F8B1
+F8B2
+F8B3
+F8B4
+F8B5
+F8B6
+F8B7
+F8B8
+F8B9
+F8BA
+F8BB
+F8BC
+F8BD
+F8BE
+F8BF
+F8C0
+F8C1
+F8C2
+F8C3
+F8C4
+F8C5
+F8C6
+F8C7
+F8C8
+F8C9
+F8CA
+F8CB
+F8CC
+F8CD
+F8CE
+F8CF
+F8D0
+F8D1
+F8D2
+F8D3
+F8D4
+F8D5
+F8D6
+F8D7
+F8D8
+F8D9
+F8DA
+F8DB
+F8DC
+F8DD
+F8DE
+F8DF
+F8E0
+F8E1
+F8E2
+F8E3
+F8E4
+F8E5
+F8E6
+F8E7
+F8E8
+F8E9
+F8EA
+F8EB
+F8EC
+F8ED
+F8EE
+F8EF
+F8F0
+F8F1
+F8F2
+F8F3
+F8F4
+F8F5
+F8F6
+F8F7
+F8F8
+F8F9
+F8FA
+F8FB
+F8FC
+F8FD
+F8FE
+F9A1
+F9A2
+F9A3
+F9A4
+F9A5
+F9A6
+F9A7
+F9A8
+F9A9
+F9AA
+F9AB
+F9AC
+F9AD
+F9AE
+F9AF
+F9B0
+F9B1
+F9B2
+F9B3
+F9B4
+F9B5
+F9B6
+F9B7
+F9B8
+F9B9
+F9BA
+F9BB
+F9BC
+F9BD
+F9BE
+F9BF
+F9C0
+F9C1
+F9C2
+F9C3
+F9C4
+F9C5
+F9C6
+F9C7
+F9C8
+F9C9
+F9CA
+F9CB
+F9CC
+F9CD
+F9CE
+F9CF
+F9D0
+F9D1
+F9D2
+F9D3
+F9D4
+F9D5
+F9D6
+F9D7
+F9D8
+F9D9
+F9DA
+F9DB
+F9DC
+F9DD
+F9DE
+F9DF
+F9E0
+F9E1
+F9E2
+F9E3
+F9E4
+F9E5
+F9E6
+F9E7
+F9E8
+F9E9
+F9EA
+F9EB
+F9EC
+F9ED
+F9EE
+F9EF
+F9F0
+F9F1
+F9F2
+F9F3
+F9F4
+F9F5
+F9F6
+F9F7
+F9F8
+F9F9
+F9FA
+F9FB
+F9FC
+F9FD
+F9FE
+FAA1
+FAA2
+FAA3
+FAA4
+FAA5
+FAA6
+FAA7
+FAA8
+FAA9
+FAAA
+FAAB
+FAAC
+FAAD
+FAAE
+FAAF
+FAB0
+FAB1
+FAB2
+FAB3
+FAB4
+FAB5
+FAB6
+FAB7
+FAB8
+FAB9
+FABA
+FABB
+FABC
+FABD
+FABE
+FABF
+FAC0
+FAC1
+FAC2
+FAC3
+FAC4
+FAC5
+FAC6
+FAC7
+FAC8
+FAC9
+FACA
+FACB
+FACC
+FACD
+FACE
+FACF
+FAD0
+FAD1
+FAD2
+FAD3
+FAD4
+FAD5
+FAD6
+FAD7
+FAD8
+FAD9
+FADA
+FADB
+FADC
+FADD
+FADE
+FADF
+FAE0
+FAE1
+FAE2
+FAE3
+FAE4
+FAE5
+FAE6
+FAE7
+FAE8
+FAE9
+FAEA
+FAEB
+FAEC
+FAED
+FAEE
+FAEF
+FAF0
+FAF1
+FAF2
+FAF3
+FAF4
+FAF5
+FAF6
+FAF7
+FAF8
+FAF9
+FAFA
+FAFB
+FAFC
+FAFD
+FAFE
+FBA1
+FBA2
+FBA3
+FBA4
+FBA5
+FBA6
+FBA7
+FBA8
+FBA9
+FBAA
+FBAB
+FBAC
+FBAD
+FBAE
+FBAF
+FBB0
+FBB1
+FBB2
+FBB3
+FBB4
+FBB5
+FBB6
+FBB7
+FBB8
+FBB9
+FBBA
+FBBB
+FBBC
+FBBD
+FBBE
+FBBF
+FBC0
+FBC1
+FBC2
+FBC3
+FBC4
+FBC5
+FBC6
+FBC7
+FBC8
+FBC9
+FBCA
+FBCB
+FBCC
+FBCD
+FBCE
+FBCF
+FBD0
+FBD1
+FBD2
+FBD3
+FBD4
+FBD5
+FBD6
+FBD7
+FBD8
+FBD9
+FBDA
+FBDB
+FBDC
+FBDD
+FBDE
+FBDF
+FBE0
+FBE1
+FBE2
+FBE3
+FBE4
+FBE5
+FBE6
+FBE7
+FBE8
+FBE9
+FBEA
+FBEB
+FBEC
+FBED
+FBEE
+FBEF
+FBF0
+FBF1
+FBF2
+FBF3
+FBF4
+FBF5
+FBF6
+FBF7
+FBF8
+FBF9
+FBFA
+FBFB
+FBFC
+FBFD
+FBFE
+FCA1
+FCA2
+FCA3
+FCA4
+FCA5
+FCA6
+FCA7
+FCA8
+FCA9
+FCAA
+FCAB
+FCAC
+FCAD
+FCAE
+FCAF
+FCB0
+FCB1
+FCB2
+FCB3
+FCB4
+FCB5
+FCB6
+FCB7
+FCB8
+FCB9
+FCBA
+FCBB
+FCBC
+FCBD
+FCBE
+FCBF
+FCC0
+FCC1
+FCC2
+FCC3
+FCC4
+FCC5
+FCC6
+FCC7
+FCC8
+FCC9
+FCCA
+FCCB
+FCCC
+FCCD
+FCCE
+FCCF
+FCD0
+FCD1
+FCD2
+FCD3
+FCD4
+FCD5
+FCD6
+FCD7
+FCD8
+FCD9
+FCDA
+FCDB
+FCDC
+FCDD
+FCDE
+FCDF
+FCE0
+FCE1
+FCE2
+FCE3
+FCE4
+FCE5
+FCE6
+FCE7
+FCE8
+FCE9
+FCEA
+FCEB
+FCEC
+FCED
+FCEE
+FCEF
+FCF0
+FCF1
+FCF2
+FCF3
+FCF4
+FCF5
+FCF6
+FCF7
+FCF8
+FCF9
+FCFA
+FCFB
+FCFC
+FCFD
+FCFE
+FDA1
+FDA2
+FDA3
+FDA4
+FDA5
+FDA6
+FDA7
+FDA8
+FDA9
+FDAA
+FDAB
+FDAC
+FDAD
+FDAE
+FDAF
+FDB0
+FDB1
+FDB2
+FDB3
+FDB4
+FDB5
+FDB6
+FDB7
+FDB8
+FDB9
+FDBA
+FDBB
+FDBC
+FDBD
+FDBE
+FDBF
+FDC0
+FDC1
+FDC2
+FDC3
+FDC4
+FDC5
+FDC6
+FDC7
+FDC8
+FDC9
+FDCA
+FDCB
+FDCC
+FDCD
+FDCE
+FDCF
+FDD0
+FDD1
+FDD2
+FDD3
+FDD4
+FDD5
+FDD6
+FDD7
+FDD8
+FDD9
+FDDA
+FDDB
+FDDC
+FDDD
+FDDE
+FDDF
+FDE0
+FDE1
+FDE2
+FDE3
+FDE4
+FDE5
+FDE6
+FDE7
+FDE8
+FDE9
+FDEA
+FDEB
+FDEC
+FDED
+FDEE
+FDEF
+FDF0
+FDF1
+FDF2
+FDF3
+FDF4
+FDF5
+FDF6
+FDF7
+FDF8
+FDF9
+FDFA
+FDFB
+FDFC
+FDFD
+FDFE
+FEA1
+FEA2
+FEA3
+FEA4
+FEA5
+FEA6
+FEA7
+FEA8
+FEA9
+FEAA
+FEAB
+FEAC
+FEAD
+FEAE
+FEAF
+FEB0
+FEB1
+FEB2
+FEB3
+FEB4
+FEB5
+FEB6
+FEB7
+FEB8
+FEB9
+FEBA
+FEBB
+FEBC
+FEBD
+FEBE
+FEBF
+FEC0
+FEC1
+FEC2
+FEC3
+FEC4
+FEC5
+FEC6
+FEC7
+FEC8
+FEC9
+FECA
+FECB
+FECC
+FECD
+FECE
+FECF
+FED0
+FED1
+FED2
+FED3
+FED4
+FED5
+FED6
+FED7
+FED8
+FED9
+FEDA
+FEDB
+FEDC
+FEDD
+FEDE
+FEDF
+FEE0
+FEE1
+FEE2
+FEE3
+FEE4
+FEE5
+FEE6
+FEE7
+FEE8
+FEE9
+FEEA
+FEEB
+FEEC
+FEED
+FEEE
+FEEF
+FEF0
+FEF1
+FEF2
+FEF3
+FEF4
+FEF5
+FEF6
+FEF7
+FEF8
+FEF9
+FEFA
+FEFB
+FEFC
+FEFD
+FEFE
+8FF5A1
+8FF5A2
+8FF5A3
+8FF5A4
+8FF5A5
+8FF5A6
+8FF5A7
+8FF5A8
+8FF5A9
+8FF5AA
+8FF5AB
+8FF5AC
+8FF5AD
+8FF5AE
+8FF5AF
+8FF5B0
+8FF5B1
+8FF5B2
+8FF5B3
+8FF5B4
+8FF5B5
+8FF5B6
+8FF5B7
+8FF5B8
+8FF5B9
+8FF5BA
+8FF5BB
+8FF5BC
+8FF5BD
+8FF5BE
+8FF5BF
+8FF5C0
+8FF5C1
+8FF5C2
+8FF5C3
+8FF5C4
+8FF5C5
+8FF5C6
+8FF5C7
+8FF5C8
+8FF5C9
+8FF5CA
+8FF5CB
+8FF5CC
+8FF5CD
+8FF5CE
+8FF5CF
+8FF5D0
+8FF5D1
+8FF5D2
+8FF5D3
+8FF5D4
+8FF5D5
+8FF5D6
+8FF5D7
+8FF5D8
+8FF5D9
+8FF5DA
+8FF5DB
+8FF5DC
+8FF5DD
+8FF5DE
+8FF5DF
+8FF5E0
+8FF5E1
+8FF5E2
+8FF5E3
+8FF5E4
+8FF5E5
+8FF5E6
+8FF5E7
+8FF5E8
+8FF5E9
+8FF5EA
+8FF5EB
+8FF5EC
+8FF5ED
+8FF5EE
+8FF5EF
+8FF5F0
+8FF5F1
+8FF5F2
+8FF5F3
+8FF5F4
+8FF5F5
+8FF5F6
+8FF5F7
+8FF5F8
+8FF5F9
+8FF5FA
+8FF5FB
+8FF5FC
+8FF5FD
+8FF5FE
+8FF6A1
+8FF6A2
+8FF6A3
+8FF6A4
+8FF6A5
+8FF6A6
+8FF6A7
+8FF6A8
+8FF6A9
+8FF6AA
+8FF6AB
+8FF6AC
+8FF6AD
+8FF6AE
+8FF6AF
+8FF6B0
+8FF6B1
+8FF6B2
+8FF6B3
+8FF6B4
+8FF6B5
+8FF6B6
+8FF6B7
+8FF6B8
+8FF6B9
+8FF6BA
+8FF6BB
+8FF6BC
+8FF6BD
+8FF6BE
+8FF6BF
+8FF6C0
+8FF6C1
+8FF6C2
+8FF6C3
+8FF6C4
+8FF6C5
+8FF6C6
+8FF6C7
+8FF6C8
+8FF6C9
+8FF6CA
+8FF6CB
+8FF6CC
+8FF6CD
+8FF6CE
+8FF6CF
+8FF6D0
+8FF6D1
+8FF6D2
+8FF6D3
+8FF6D4
+8FF6D5
+8FF6D6
+8FF6D7
+8FF6D8
+8FF6D9
+8FF6DA
+8FF6DB
+8FF6DC
+8FF6DD
+8FF6DE
+8FF6DF
+8FF6E0
+8FF6E1
+8FF6E2
+8FF6E3
+8FF6E4
+8FF6E5
+8FF6E6
+8FF6E7
+8FF6E8
+8FF6E9
+8FF6EA
+8FF6EB
+8FF6EC
+8FF6ED
+8FF6EE
+8FF6EF
+8FF6F0
+8FF6F1
+8FF6F2
+8FF6F3
+8FF6F4
+8FF6F5
+8FF6F6
+8FF6F7
+8FF6F8
+8FF6F9
+8FF6FA
+8FF6FB
+8FF6FC
+8FF6FD
+8FF6FE
+8FF7A1
+8FF7A2
+8FF7A3
+8FF7A4
+8FF7A5
+8FF7A6
+8FF7A7
+8FF7A8
+8FF7A9
+8FF7AA
+8FF7AB
+8FF7AC
+8FF7AD
+8FF7AE
+8FF7AF
+8FF7B0
+8FF7B1
+8FF7B2
+8FF7B3
+8FF7B4
+8FF7B5
+8FF7B6
+8FF7B7
+8FF7B8
+8FF7B9
+8FF7BA
+8FF7BB
+8FF7BC
+8FF7BD
+8FF7BE
+8FF7BF
+8FF7C0
+8FF7C1
+8FF7C2
+8FF7C3
+8FF7C4
+8FF7C5
+8FF7C6
+8FF7C7
+8FF7C8
+8FF7C9
+8FF7CA
+8FF7CB
+8FF7CC
+8FF7CD
+8FF7CE
+8FF7CF
+8FF7D0
+8FF7D1
+8FF7D2
+8FF7D3
+8FF7D4
+8FF7D5
+8FF7D6
+8FF7D7
+8FF7D8
+8FF7D9
+8FF7DA
+8FF7DB
+8FF7DC
+8FF7DD
+8FF7DE
+8FF7DF
+8FF7E0
+8FF7E1
+8FF7E2
+8FF7E3
+8FF7E4
+8FF7E5
+8FF7E6
+8FF7E7
+8FF7E8
+8FF7E9
+8FF7EA
+8FF7EB
+8FF7EC
+8FF7ED
+8FF7EE
+8FF7EF
+8FF7F0
+8FF7F1
+8FF7F2
+8FF7F3
+8FF7F4
+8FF7F5
+8FF7F6
+8FF7F7
+8FF7F8
+8FF7F9
+8FF7FA
+8FF7FB
+8FF7FC
+8FF7FD
+8FF7FE
+8FF8A1
+8FF8A2
+8FF8A3
+8FF8A4
+8FF8A5
+8FF8A6
+8FF8A7
+8FF8A8
+8FF8A9
+8FF8AA
+8FF8AB
+8FF8AC
+8FF8AD
+8FF8AE
+8FF8AF
+8FF8B0
+8FF8B1
+8FF8B2
+8FF8B3
+8FF8B4
+8FF8B5
+8FF8B6
+8FF8B7
+8FF8B8
+8FF8B9
+8FF8BA
+8FF8BB
+8FF8BC
+8FF8BD
+8FF8BE
+8FF8BF
+8FF8C0
+8FF8C1
+8FF8C2
+8FF8C3
+8FF8C4
+8FF8C5
+8FF8C6
+8FF8C7
+8FF8C8
+8FF8C9
+8FF8CA
+8FF8CB
+8FF8CC
+8FF8CD
+8FF8CE
+8FF8CF
+8FF8D0
+8FF8D1
+8FF8D2
+8FF8D3
+8FF8D4
+8FF8D5
+8FF8D6
+8FF8D7
+8FF8D8
+8FF8D9
+8FF8DA
+8FF8DB
+8FF8DC
+8FF8DD
+8FF8DE
+8FF8DF
+8FF8E0
+8FF8E1
+8FF8E2
+8FF8E3
+8FF8E4
+8FF8E5
+8FF8E6
+8FF8E7
+8FF8E8
+8FF8E9
+8FF8EA
+8FF8EB
+8FF8EC
+8FF8ED
+8FF8EE
+8FF8EF
+8FF8F0
+8FF8F1
+8FF8F2
+8FF8F3
+8FF8F4
+8FF8F5
+8FF8F6
+8FF8F7
+8FF8F8
+8FF8F9
+8FF8FA
+8FF8FB
+8FF8FC
+8FF8FD
+8FF8FE
+8FF9A1
+8FF9A2
+8FF9A3
+8FF9A4
+8FF9A5
+8FF9A6
+8FF9A7
+8FF9A8
+8FF9A9
+8FF9AA
+8FF9AB
+8FF9AC
+8FF9AD
+8FF9AE
+8FF9AF
+8FF9B0
+8FF9B1
+8FF9B2
+8FF9B3
+8FF9B4
+8FF9B5
+8FF9B6
+8FF9B7
+8FF9B8
+8FF9B9
+8FF9BA
+8FF9BB
+8FF9BC
+8FF9BD
+8FF9BE
+8FF9BF
+8FF9C0
+8FF9C1
+8FF9C2
+8FF9C3
+8FF9C4
+8FF9C5
+8FF9C6
+8FF9C7
+8FF9C8
+8FF9C9
+8FF9CA
+8FF9CB
+8FF9CC
+8FF9CD
+8FF9CE
+8FF9CF
+8FF9D0
+8FF9D1
+8FF9D2
+8FF9D3
+8FF9D4
+8FF9D5
+8FF9D6
+8FF9D7
+8FF9D8
+8FF9D9
+8FF9DA
+8FF9DB
+8FF9DC
+8FF9DD
+8FF9DE
+8FF9DF
+8FF9E0
+8FF9E1
+8FF9E2
+8FF9E3
+8FF9E4
+8FF9E5
+8FF9E6
+8FF9E7
+8FF9E8
+8FF9E9
+8FF9EA
+8FF9EB
+8FF9EC
+8FF9ED
+8FF9EE
+8FF9EF
+8FF9F0
+8FF9F1
+8FF9F2
+8FF9F3
+8FF9F4
+8FF9F5
+8FF9F6
+8FF9F7
+8FF9F8
+8FF9F9
+8FF9FA
+8FF9FB
+8FF9FC
+8FF9FD
+8FF9FE
+8FFAA1
+8FFAA2
+8FFAA3
+8FFAA4
+8FFAA5
+8FFAA6
+8FFAA7
+8FFAA8
+8FFAA9
+8FFAAA
+8FFAAB
+8FFAAC
+8FFAAD
+8FFAAE
+8FFAAF
+8FFAB0
+8FFAB1
+8FFAB2
+8FFAB3
+8FFAB4
+8FFAB5
+8FFAB6
+8FFAB7
+8FFAB8
+8FFAB9
+8FFABA
+8FFABB
+8FFABC
+8FFABD
+8FFABE
+8FFABF
+8FFAC0
+8FFAC1
+8FFAC2
+8FFAC3
+8FFAC4
+8FFAC5
+8FFAC6
+8FFAC7
+8FFAC8
+8FFAC9
+8FFACA
+8FFACB
+8FFACC
+8FFACD
+8FFACE
+8FFACF
+8FFAD0
+8FFAD1
+8FFAD2
+8FFAD3
+8FFAD4
+8FFAD5
+8FFAD6
+8FFAD7
+8FFAD8
+8FFAD9
+8FFADA
+8FFADB
+8FFADC
+8FFADD
+8FFADE
+8FFADF
+8FFAE0
+8FFAE1
+8FFAE2
+8FFAE3
+8FFAE4
+8FFAE5
+8FFAE6
+8FFAE7
+8FFAE8
+8FFAE9
+8FFAEA
+8FFAEB
+8FFAEC
+8FFAED
+8FFAEE
+8FFAEF
+8FFAF0
+8FFAF1
+8FFAF2
+8FFAF3
+8FFAF4
+8FFAF5
+8FFAF6
+8FFAF7
+8FFAF8
+8FFAF9
+8FFAFA
+8FFAFB
+8FFAFC
+8FFAFD
+8FFAFE
+8FFBA1
+8FFBA2
+8FFBA3
+8FFBA4
+8FFBA5
+8FFBA6
+8FFBA7
+8FFBA8
+8FFBA9
+8FFBAA
+8FFBAB
+8FFBAC
+8FFBAD
+8FFBAE
+8FFBAF
+8FFBB0
+8FFBB1
+8FFBB2
+8FFBB3
+8FFBB4
+8FFBB5
+8FFBB6
+8FFBB7
+8FFBB8
+8FFBB9
+8FFBBA
+8FFBBB
+8FFBBC
+8FFBBD
+8FFBBE
+8FFBBF
+8FFBC0
+8FFBC1
+8FFBC2
+8FFBC3
+8FFBC4
+8FFBC5
+8FFBC6
+8FFBC7
+8FFBC8
+8FFBC9
+8FFBCA
+8FFBCB
+8FFBCC
+8FFBCD
+8FFBCE
+8FFBCF
+8FFBD0
+8FFBD1
+8FFBD2
+8FFBD3
+8FFBD4
+8FFBD5
+8FFBD6
+8FFBD7
+8FFBD8
+8FFBD9
+8FFBDA
+8FFBDB
+8FFBDC
+8FFBDD
+8FFBDE
+8FFBDF
+8FFBE0
+8FFBE1
+8FFBE2
+8FFBE3
+8FFBE4
+8FFBE5
+8FFBE6
+8FFBE7
+8FFBE8
+8FFBE9
+8FFBEA
+8FFBEB
+8FFBEC
+8FFBED
+8FFBEE
+8FFBEF
+8FFBF0
+8FFBF1
+8FFBF2
+8FFBF3
+8FFBF4
+8FFBF5
+8FFBF6
+8FFBF7
+8FFBF8
+8FFBF9
+8FFBFA
+8FFBFB
+8FFBFC
+8FFBFD
+8FFBFE
+8FFCA1
+8FFCA2
+8FFCA3
+8FFCA4
+8FFCA5
+8FFCA6
+8FFCA7
+8FFCA8
+8FFCA9
+8FFCAA
+8FFCAB
+8FFCAC
+8FFCAD
+8FFCAE
+8FFCAF
+8FFCB0
+8FFCB1
+8FFCB2
+8FFCB3
+8FFCB4
+8FFCB5
+8FFCB6
+8FFCB7
+8FFCB8
+8FFCB9
+8FFCBA
+8FFCBB
+8FFCBC
+8FFCBD
+8FFCBE
+8FFCBF
+8FFCC0
+8FFCC1
+8FFCC2
+8FFCC3
+8FFCC4
+8FFCC5
+8FFCC6
+8FFCC7
+8FFCC8
+8FFCC9
+8FFCCA
+8FFCCB
+8FFCCC
+8FFCCD
+8FFCCE
+8FFCCF
+8FFCD0
+8FFCD1
+8FFCD2
+8FFCD3
+8FFCD4
+8FFCD5
+8FFCD6
+8FFCD7
+8FFCD8
+8FFCD9
+8FFCDA
+8FFCDB
+8FFCDC
+8FFCDD
+8FFCDE
+8FFCDF
+8FFCE0
+8FFCE1
+8FFCE2
+8FFCE3
+8FFCE4
+8FFCE5
+8FFCE6
+8FFCE7
+8FFCE8
+8FFCE9
+8FFCEA
+8FFCEB
+8FFCEC
+8FFCED
+8FFCEE
+8FFCEF
+8FFCF0
+8FFCF1
+8FFCF2
+8FFCF3
+8FFCF4
+8FFCF5
+8FFCF6
+8FFCF7
+8FFCF8
+8FFCF9
+8FFCFA
+8FFCFB
+8FFCFC
+8FFCFD
+8FFCFE
+8FFDA1
+8FFDA2
+8FFDA3
+8FFDA4
+8FFDA5
+8FFDA6
+8FFDA7
+8FFDA8
+8FFDA9
+8FFDAA
+8FFDAB
+8FFDAC
+8FFDAD
+8FFDAE
+8FFDAF
+8FFDB0
+8FFDB1
+8FFDB2
+8FFDB3
+8FFDB4
+8FFDB5
+8FFDB6
+8FFDB7
+8FFDB8
+8FFDB9
+8FFDBA
+8FFDBB
+8FFDBC
+8FFDBD
+8FFDBE
+8FFDBF
+8FFDC0
+8FFDC1
+8FFDC2
+8FFDC3
+8FFDC4
+8FFDC5
+8FFDC6
+8FFDC7
+8FFDC8
+8FFDC9
+8FFDCA
+8FFDCB
+8FFDCC
+8FFDCD
+8FFDCE
+8FFDCF
+8FFDD0
+8FFDD1
+8FFDD2
+8FFDD3
+8FFDD4
+8FFDD5
+8FFDD6
+8FFDD7
+8FFDD8
+8FFDD9
+8FFDDA
+8FFDDB
+8FFDDC
+8FFDDD
+8FFDDE
+8FFDDF
+8FFDE0
+8FFDE1
+8FFDE2
+8FFDE3
+8FFDE4
+8FFDE5
+8FFDE6
+8FFDE7
+8FFDE8
+8FFDE9
+8FFDEA
+8FFDEB
+8FFDEC
+8FFDED
+8FFDEE
+8FFDEF
+8FFDF0
+8FFDF1
+8FFDF2
+8FFDF3
+8FFDF4
+8FFDF5
+8FFDF6
+8FFDF7
+8FFDF8
+8FFDF9
+8FFDFA
+8FFDFB
+8FFDFC
+8FFDFD
+8FFDFE
+8FFEA1
+8FFEA2
+8FFEA3
+8FFEA4
+8FFEA5
+8FFEA6
+8FFEA7
+8FFEA8
+8FFEA9
+8FFEAA
+8FFEAB
+8FFEAC
+8FFEAD
+8FFEAE
+8FFEAF
+8FFEB0
+8FFEB1
+8FFEB2
+8FFEB3
+8FFEB4
+8FFEB5
+8FFEB6
+8FFEB7
+8FFEB8
+8FFEB9
+8FFEBA
+8FFEBB
+8FFEBC
+8FFEBD
+8FFEBE
+8FFEBF
+8FFEC0
+8FFEC1
+8FFEC2
+8FFEC3
+8FFEC4
+8FFEC5
+8FFEC6
+8FFEC7
+8FFEC8
+8FFEC9
+8FFECA
+8FFECB
+8FFECC
+8FFECD
+8FFECE
+8FFECF
+8FFED0
+8FFED1
+8FFED2
+8FFED3
+8FFED4
+8FFED5
+8FFED6
+8FFED7
+8FFED8
+8FFED9
+8FFEDA
+8FFEDB
+8FFEDC
+8FFEDD
+8FFEDE
+8FFEDF
+8FFEE0
+8FFEE1
+8FFEE2
+8FFEE3
+8FFEE4
+8FFEE5
+8FFEE6
+8FFEE7
+8FFEE8
+8FFEE9
+8FFEEA
+8FFEEB
+8FFEEC
+8FFEED
+8FFEEE
+8FFEEF
+8FFEF0
+8FFEF1
+8FFEF2
+8FFEF3
+8FFEF4
+8FFEF5
+8FFEF6
+8FFEF7
+8FFEF8
+8FFEF9
+8FFEFA
+8FFEFB
+8FFEFC
+8FFEFD
+8FFEFE
+CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1;
+SELECT HEX(c1) FROM t2;
+HEX(c1)
+005C
+007E
+FFE3
+2015
+FF3C
+FF5E
+2225
+FF0D
+FFE0
+FFE1
+FFE5
+FFE2
+FF5E
+FFE4
+2460
+2461
+2462
+2463
+2464
+2465
+2466
+2467
+2468
+2469
+246A
+246B
+246C
+246D
+246E
+246F
+2470
+2471
+2472
+2473
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+3349
+3314
+3322
+334D
+3318
+3327
+3303
+3336
+3351
+3357
+330D
+3326
+3323
+332B
+334A
+333B
+339C
+339D
+339E
+338E
+338F
+33C4
+33A1
+337B
+301D
+301F
+2116
+33CD
+2121
+32A4
+32A5
+32A6
+32A7
+32A8
+3231
+3232
+3239
+337E
+337D
+337C
+2252
+2261
+222B
+222E
+2211
+221A
+22A5
+2220
+221F
+22BF
+2235
+2229
+222A
+2170
+2171
+2172
+2173
+2174
+2175
+2176
+2177
+2178
+2179
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+FFE2
+FFE4
+FF07
+FF02
+3231
+2116
+2121
+2235
+7E8A
+891C
+9348
+9288
+84DC
+4FC9
+70BB
+6631
+68C8
+92F9
+66FB
+5F45
+4E28
+4EE1
+4EFC
+4F00
+4F03
+4F39
+4F56
+4F92
+4F8A
+4F9A
+4F94
+4FCD
+5040
+5022
+4FFF
+501E
+5046
+5070
+5042
+5094
+50F4
+50D8
+514A
+5164
+519D
+51BE
+51EC
+5215
+529C
+52A6
+52C0
+52DB
+5300
+5307
+5324
+5372
+5393
+53B2
+53DD
+FA0E
+549C
+548A
+54A9
+54FF
+5586
+5759
+5765
+57AC
+57C8
+57C7
+FA0F
+FA10
+589E
+58B2
+590B
+5953
+595B
+595D
+5963
+59A4
+59BA
+5B56
+5BC0
+752F
+5BD8
+5BEC
+5C1E
+5CA6
+5CBA
+5CF5
+5D27
+5D53
+FA11
+5D42
+5D6D
+5DB8
+5DB9
+5DD0
+5F21
+5F34
+5F67
+5FB7
+5FDE
+605D
+6085
+608A
+60DE
+60D5
+6120
+60F2
+6111
+6137
+6130
+6198
+6213
+62A6
+63F5
+6460
+649D
+64CE
+654E
+6600
+6615
+663B
+6609
+662E
+661E
+6624
+6665
+6657
+6659
+FA12
+6673
+6699
+66A0
+66B2
+66BF
+66FA
+670E
+F929
+6766
+67BB
+6852
+67C0
+6801
+6844
+68CF
+FA13
+6968
+FA14
+6998
+69E2
+6A30
+6A6B
+6A46
+6A73
+6A7E
+6AE2
+6AE4
+6BD6
+6C3F
+6C5C
+6C86
+6C6F
+6CDA
+6D04
+6D87
+6D6F
+6D96
+6DAC
+6DCF
+6DF8
+6DF2
+6DFC
+6E39
+6E5C
+6E27
+6E3C
+6EBF
+6F88
+6FB5
+6FF5
+7005
+7007
+7028
+7085
+70AB
+710F
+7104
+715C
+7146
+7147
+FA15
+71C1
+71FE
+72B1
+72BE
+7324
+FA16
+7377
+73BD
+73C9
+73D6
+73E3
+73D2
+7407
+73F5
+7426
+742A
+7429
+742E
+7462
+7489
+749F
+7501
+756F
+7682
+769C
+769E
+769B
+76A6
+FA17
+7746
+52AF
+7821
+784E
+7864
+787A
+7930
+FA18
+FA19
+FA1A
+7994
+FA1B
+799B
+7AD1
+7AE7
+FA1C
+7AEB
+7B9E
+FA1D
+7D48
+7D5C
+7DB7
+7DA0
+7DD6
+7E52
+7F47
+7FA1
+FA1E
+8301
+8362
+837F
+83C7
+83F6
+8448
+84B4
+8553
+8559
+856B
+FA1F
+85B0
+FA20
+FA21
+8807
+88F5
+8A12
+8A37
+8A79
+8AA7
+8ABE
+8ADF
+FA22
+8AF6
+8B53
+8B7F
+8CF0
+8CF4
+8D12
+8D76
+FA23
+8ECF
+FA24
+FA25
+9067
+90DE
+FA26
+9115
+9127
+91DA
+91D7
+91DE
+91ED
+91EE
+91E4
+91E5
+9206
+9210
+920A
+923A
+9240
+923C
+924E
+9259
+9251
+9239
+9267
+92A7
+9277
+9278
+92E7
+92D7
+92D9
+92D0
+FA27
+92D5
+92E0
+92D3
+9325
+9321
+92FB
+FA28
+931E
+92FF
+931D
+9302
+9370
+9357
+93A4
+93C6
+93DE
+93F8
+9431
+9445
+9448
+9592
+F9DC
+FA29
+969D
+96AF
+9733
+973B
+9743
+974D
+974F
+9751
+9755
+9857
+9865
+FA2A
+FA2B
+9927
+FA2C
+999E
+9A4E
+9AD9
+9ADC
+9B75
+9B72
+9B8F
+9BB1
+9BBB
+9C00
+9D70
+9D6B
+FA2D
+9E19
+9ED1
+E000
+E001
+E002
+E003
+E004
+E005
+E006
+E007
+E008
+E009
+E00A
+E00B
+E00C
+E00D
+E00E
+E00F
+E010
+E011
+E012
+E013
+E014
+E015
+E016
+E017
+E018
+E019
+E01A
+E01B
+E01C
+E01D
+E01E
+E01F
+E020
+E021
+E022
+E023
+E024
+E025
+E026
+E027
+E028
+E029
+E02A
+E02B
+E02C
+E02D
+E02E
+E02F
+E030
+E031
+E032
+E033
+E034
+E035
+E036
+E037
+E038
+E039
+E03A
+E03B
+E03C
+E03D
+E03E
+E03F
+E040
+E041
+E042
+E043
+E044
+E045
+E046
+E047
+E048
+E049
+E04A
+E04B
+E04C
+E04D
+E04E
+E04F
+E050
+E051
+E052
+E053
+E054
+E055
+E056
+E057
+E058
+E059
+E05A
+E05B
+E05C
+E05D
+E05E
+E05F
+E060
+E061
+E062
+E063
+E064
+E065
+E066
+E067
+E068
+E069
+E06A
+E06B
+E06C
+E06D
+E06E
+E06F
+E070
+E071
+E072
+E073
+E074
+E075
+E076
+E077
+E078
+E079
+E07A
+E07B
+E07C
+E07D
+E07E
+E07F
+E080
+E081
+E082
+E083
+E084
+E085
+E086
+E087
+E088
+E089
+E08A
+E08B
+E08C
+E08D
+E08E
+E08F
+E090
+E091
+E092
+E093
+E094
+E095
+E096
+E097
+E098
+E099
+E09A
+E09B
+E09C
+E09D
+E09E
+E09F
+E0A0
+E0A1
+E0A2
+E0A3
+E0A4
+E0A5
+E0A6
+E0A7
+E0A8
+E0A9
+E0AA
+E0AB
+E0AC
+E0AD
+E0AE
+E0AF
+E0B0
+E0B1
+E0B2
+E0B3
+E0B4
+E0B5
+E0B6
+E0B7
+E0B8
+E0B9
+E0BA
+E0BB
+E0BC
+E0BD
+E0BE
+E0BF
+E0C0
+E0C1
+E0C2
+E0C3
+E0C4
+E0C5
+E0C6
+E0C7
+E0C8
+E0C9
+E0CA
+E0CB
+E0CC
+E0CD
+E0CE
+E0CF
+E0D0
+E0D1
+E0D2
+E0D3
+E0D4
+E0D5
+E0D6
+E0D7
+E0D8
+E0D9
+E0DA
+E0DB
+E0DC
+E0DD
+E0DE
+E0DF
+E0E0
+E0E1
+E0E2
+E0E3
+E0E4
+E0E5
+E0E6
+E0E7
+E0E8
+E0E9
+E0EA
+E0EB
+E0EC
+E0ED
+E0EE
+E0EF
+E0F0
+E0F1
+E0F2
+E0F3
+E0F4
+E0F5
+E0F6
+E0F7
+E0F8
+E0F9
+E0FA
+E0FB
+E0FC
+E0FD
+E0FE
+E0FF
+E100
+E101
+E102
+E103
+E104
+E105
+E106
+E107
+E108
+E109
+E10A
+E10B
+E10C
+E10D
+E10E
+E10F
+E110
+E111
+E112
+E113
+E114
+E115
+E116
+E117
+E118
+E119
+E11A
+E11B
+E11C
+E11D
+E11E
+E11F
+E120
+E121
+E122
+E123
+E124
+E125
+E126
+E127
+E128
+E129
+E12A
+E12B
+E12C
+E12D
+E12E
+E12F
+E130
+E131
+E132
+E133
+E134
+E135
+E136
+E137
+E138
+E139
+E13A
+E13B
+E13C
+E13D
+E13E
+E13F
+E140
+E141
+E142
+E143
+E144
+E145
+E146
+E147
+E148
+E149
+E14A
+E14B
+E14C
+E14D
+E14E
+E14F
+E150
+E151
+E152
+E153
+E154
+E155
+E156
+E157
+E158
+E159
+E15A
+E15B
+E15C
+E15D
+E15E
+E15F
+E160
+E161
+E162
+E163
+E164
+E165
+E166
+E167
+E168
+E169
+E16A
+E16B
+E16C
+E16D
+E16E
+E16F
+E170
+E171
+E172
+E173
+E174
+E175
+E176
+E177
+E178
+E179
+E17A
+E17B
+E17C
+E17D
+E17E
+E17F
+E180
+E181
+E182
+E183
+E184
+E185
+E186
+E187
+E188
+E189
+E18A
+E18B
+E18C
+E18D
+E18E
+E18F
+E190
+E191
+E192
+E193
+E194
+E195
+E196
+E197
+E198
+E199
+E19A
+E19B
+E19C
+E19D
+E19E
+E19F
+E1A0
+E1A1
+E1A2
+E1A3
+E1A4
+E1A5
+E1A6
+E1A7
+E1A8
+E1A9
+E1AA
+E1AB
+E1AC
+E1AD
+E1AE
+E1AF
+E1B0
+E1B1
+E1B2
+E1B3
+E1B4
+E1B5
+E1B6
+E1B7
+E1B8
+E1B9
+E1BA
+E1BB
+E1BC
+E1BD
+E1BE
+E1BF
+E1C0
+E1C1
+E1C2
+E1C3
+E1C4
+E1C5
+E1C6
+E1C7
+E1C8
+E1C9
+E1CA
+E1CB
+E1CC
+E1CD
+E1CE
+E1CF
+E1D0
+E1D1
+E1D2
+E1D3
+E1D4
+E1D5
+E1D6
+E1D7
+E1D8
+E1D9
+E1DA
+E1DB
+E1DC
+E1DD
+E1DE
+E1DF
+E1E0
+E1E1
+E1E2
+E1E3
+E1E4
+E1E5
+E1E6
+E1E7
+E1E8
+E1E9
+E1EA
+E1EB
+E1EC
+E1ED
+E1EE
+E1EF
+E1F0
+E1F1
+E1F2
+E1F3
+E1F4
+E1F5
+E1F6
+E1F7
+E1F8
+E1F9
+E1FA
+E1FB
+E1FC
+E1FD
+E1FE
+E1FF
+E200
+E201
+E202
+E203
+E204
+E205
+E206
+E207
+E208
+E209
+E20A
+E20B
+E20C
+E20D
+E20E
+E20F
+E210
+E211
+E212
+E213
+E214
+E215
+E216
+E217
+E218
+E219
+E21A
+E21B
+E21C
+E21D
+E21E
+E21F
+E220
+E221
+E222
+E223
+E224
+E225
+E226
+E227
+E228
+E229
+E22A
+E22B
+E22C
+E22D
+E22E
+E22F
+E230
+E231
+E232
+E233
+E234
+E235
+E236
+E237
+E238
+E239
+E23A
+E23B
+E23C
+E23D
+E23E
+E23F
+E240
+E241
+E242
+E243
+E244
+E245
+E246
+E247
+E248
+E249
+E24A
+E24B
+E24C
+E24D
+E24E
+E24F
+E250
+E251
+E252
+E253
+E254
+E255
+E256
+E257
+E258
+E259
+E25A
+E25B
+E25C
+E25D
+E25E
+E25F
+E260
+E261
+E262
+E263
+E264
+E265
+E266
+E267
+E268
+E269
+E26A
+E26B
+E26C
+E26D
+E26E
+E26F
+E270
+E271
+E272
+E273
+E274
+E275
+E276
+E277
+E278
+E279
+E27A
+E27B
+E27C
+E27D
+E27E
+E27F
+E280
+E281
+E282
+E283
+E284
+E285
+E286
+E287
+E288
+E289
+E28A
+E28B
+E28C
+E28D
+E28E
+E28F
+E290
+E291
+E292
+E293
+E294
+E295
+E296
+E297
+E298
+E299
+E29A
+E29B
+E29C
+E29D
+E29E
+E29F
+E2A0
+E2A1
+E2A2
+E2A3
+E2A4
+E2A5
+E2A6
+E2A7
+E2A8
+E2A9
+E2AA
+E2AB
+E2AC
+E2AD
+E2AE
+E2AF
+E2B0
+E2B1
+E2B2
+E2B3
+E2B4
+E2B5
+E2B6
+E2B7
+E2B8
+E2B9
+E2BA
+E2BB
+E2BC
+E2BD
+E2BE
+E2BF
+E2C0
+E2C1
+E2C2
+E2C3
+E2C4
+E2C5
+E2C6
+E2C7
+E2C8
+E2C9
+E2CA
+E2CB
+E2CC
+E2CD
+E2CE
+E2CF
+E2D0
+E2D1
+E2D2
+E2D3
+E2D4
+E2D5
+E2D6
+E2D7
+E2D8
+E2D9
+E2DA
+E2DB
+E2DC
+E2DD
+E2DE
+E2DF
+E2E0
+E2E1
+E2E2
+E2E3
+E2E4
+E2E5
+E2E6
+E2E7
+E2E8
+E2E9
+E2EA
+E2EB
+E2EC
+E2ED
+E2EE
+E2EF
+E2F0
+E2F1
+E2F2
+E2F3
+E2F4
+E2F5
+E2F6
+E2F7
+E2F8
+E2F9
+E2FA
+E2FB
+E2FC
+E2FD
+E2FE
+E2FF
+E300
+E301
+E302
+E303
+E304
+E305
+E306
+E307
+E308
+E309
+E30A
+E30B
+E30C
+E30D
+E30E
+E30F
+E310
+E311
+E312
+E313
+E314
+E315
+E316
+E317
+E318
+E319
+E31A
+E31B
+E31C
+E31D
+E31E
+E31F
+E320
+E321
+E322
+E323
+E324
+E325
+E326
+E327
+E328
+E329
+E32A
+E32B
+E32C
+E32D
+E32E
+E32F
+E330
+E331
+E332
+E333
+E334
+E335
+E336
+E337
+E338
+E339
+E33A
+E33B
+E33C
+E33D
+E33E
+E33F
+E340
+E341
+E342
+E343
+E344
+E345
+E346
+E347
+E348
+E349
+E34A
+E34B
+E34C
+E34D
+E34E
+E34F
+E350
+E351
+E352
+E353
+E354
+E355
+E356
+E357
+E358
+E359
+E35A
+E35B
+E35C
+E35D
+E35E
+E35F
+E360
+E361
+E362
+E363
+E364
+E365
+E366
+E367
+E368
+E369
+E36A
+E36B
+E36C
+E36D
+E36E
+E36F
+E370
+E371
+E372
+E373
+E374
+E375
+E376
+E377
+E378
+E379
+E37A
+E37B
+E37C
+E37D
+E37E
+E37F
+E380
+E381
+E382
+E383
+E384
+E385
+E386
+E387
+E388
+E389
+E38A
+E38B
+E38C
+E38D
+E38E
+E38F
+E390
+E391
+E392
+E393
+E394
+E395
+E396
+E397
+E398
+E399
+E39A
+E39B
+E39C
+E39D
+E39E
+E39F
+E3A0
+E3A1
+E3A2
+E3A3
+E3A4
+E3A5
+E3A6
+E3A7
+E3A8
+E3A9
+E3AA
+E3AB
+E3AC
+E3AD
+E3AE
+E3AF
+E3B0
+E3B1
+E3B2
+E3B3
+E3B4
+E3B5
+E3B6
+E3B7
+E3B8
+E3B9
+E3BA
+E3BB
+E3BC
+E3BD
+E3BE
+E3BF
+E3C0
+E3C1
+E3C2
+E3C3
+E3C4
+E3C5
+E3C6
+E3C7
+E3C8
+E3C9
+E3CA
+E3CB
+E3CC
+E3CD
+E3CE
+E3CF
+E3D0
+E3D1
+E3D2
+E3D3
+E3D4
+E3D5
+E3D6
+E3D7
+E3D8
+E3D9
+E3DA
+E3DB
+E3DC
+E3DD
+E3DE
+E3DF
+E3E0
+E3E1
+E3E2
+E3E3
+E3E4
+E3E5
+E3E6
+E3E7
+E3E8
+E3E9
+E3EA
+E3EB
+E3EC
+E3ED
+E3EE
+E3EF
+E3F0
+E3F1
+E3F2
+E3F3
+E3F4
+E3F5
+E3F6
+E3F7
+E3F8
+E3F9
+E3FA
+E3FB
+E3FC
+E3FD
+E3FE
+E3FF
+E400
+E401
+E402
+E403
+E404
+E405
+E406
+E407
+E408
+E409
+E40A
+E40B
+E40C
+E40D
+E40E
+E40F
+E410
+E411
+E412
+E413
+E414
+E415
+E416
+E417
+E418
+E419
+E41A
+E41B
+E41C
+E41D
+E41E
+E41F
+E420
+E421
+E422
+E423
+E424
+E425
+E426
+E427
+E428
+E429
+E42A
+E42B
+E42C
+E42D
+E42E
+E42F
+E430
+E431
+E432
+E433
+E434
+E435
+E436
+E437
+E438
+E439
+E43A
+E43B
+E43C
+E43D
+E43E
+E43F
+E440
+E441
+E442
+E443
+E444
+E445
+E446
+E447
+E448
+E449
+E44A
+E44B
+E44C
+E44D
+E44E
+E44F
+E450
+E451
+E452
+E453
+E454
+E455
+E456
+E457
+E458
+E459
+E45A
+E45B
+E45C
+E45D
+E45E
+E45F
+E460
+E461
+E462
+E463
+E464
+E465
+E466
+E467
+E468
+E469
+E46A
+E46B
+E46C
+E46D
+E46E
+E46F
+E470
+E471
+E472
+E473
+E474
+E475
+E476
+E477
+E478
+E479
+E47A
+E47B
+E47C
+E47D
+E47E
+E47F
+E480
+E481
+E482
+E483
+E484
+E485
+E486
+E487
+E488
+E489
+E48A
+E48B
+E48C
+E48D
+E48E
+E48F
+E490
+E491
+E492
+E493
+E494
+E495
+E496
+E497
+E498
+E499
+E49A
+E49B
+E49C
+E49D
+E49E
+E49F
+E4A0
+E4A1
+E4A2
+E4A3
+E4A4
+E4A5
+E4A6
+E4A7
+E4A8
+E4A9
+E4AA
+E4AB
+E4AC
+E4AD
+E4AE
+E4AF
+E4B0
+E4B1
+E4B2
+E4B3
+E4B4
+E4B5
+E4B6
+E4B7
+E4B8
+E4B9
+E4BA
+E4BB
+E4BC
+E4BD
+E4BE
+E4BF
+E4C0
+E4C1
+E4C2
+E4C3
+E4C4
+E4C5
+E4C6
+E4C7
+E4C8
+E4C9
+E4CA
+E4CB
+E4CC
+E4CD
+E4CE
+E4CF
+E4D0
+E4D1
+E4D2
+E4D3
+E4D4
+E4D5
+E4D6
+E4D7
+E4D8
+E4D9
+E4DA
+E4DB
+E4DC
+E4DD
+E4DE
+E4DF
+E4E0
+E4E1
+E4E2
+E4E3
+E4E4
+E4E5
+E4E6
+E4E7
+E4E8
+E4E9
+E4EA
+E4EB
+E4EC
+E4ED
+E4EE
+E4EF
+E4F0
+E4F1
+E4F2
+E4F3
+E4F4
+E4F5
+E4F6
+E4F7
+E4F8
+E4F9
+E4FA
+E4FB
+E4FC
+E4FD
+E4FE
+E4FF
+E500
+E501
+E502
+E503
+E504
+E505
+E506
+E507
+E508
+E509
+E50A
+E50B
+E50C
+E50D
+E50E
+E50F
+E510
+E511
+E512
+E513
+E514
+E515
+E516
+E517
+E518
+E519
+E51A
+E51B
+E51C
+E51D
+E51E
+E51F
+E520
+E521
+E522
+E523
+E524
+E525
+E526
+E527
+E528
+E529
+E52A
+E52B
+E52C
+E52D
+E52E
+E52F
+E530
+E531
+E532
+E533
+E534
+E535
+E536
+E537
+E538
+E539
+E53A
+E53B
+E53C
+E53D
+E53E
+E53F
+E540
+E541
+E542
+E543
+E544
+E545
+E546
+E547
+E548
+E549
+E54A
+E54B
+E54C
+E54D
+E54E
+E54F
+E550
+E551
+E552
+E553
+E554
+E555
+E556
+E557
+E558
+E559
+E55A
+E55B
+E55C
+E55D
+E55E
+E55F
+E560
+E561
+E562
+E563
+E564
+E565
+E566
+E567
+E568
+E569
+E56A
+E56B
+E56C
+E56D
+E56E
+E56F
+E570
+E571
+E572
+E573
+E574
+E575
+E576
+E577
+E578
+E579
+E57A
+E57B
+E57C
+E57D
+E57E
+E57F
+E580
+E581
+E582
+E583
+E584
+E585
+E586
+E587
+E588
+E589
+E58A
+E58B
+E58C
+E58D
+E58E
+E58F
+E590
+E591
+E592
+E593
+E594
+E595
+E596
+E597
+E598
+E599
+E59A
+E59B
+E59C
+E59D
+E59E
+E59F
+E5A0
+E5A1
+E5A2
+E5A3
+E5A4
+E5A5
+E5A6
+E5A7
+E5A8
+E5A9
+E5AA
+E5AB
+E5AC
+E5AD
+E5AE
+E5AF
+E5B0
+E5B1
+E5B2
+E5B3
+E5B4
+E5B5
+E5B6
+E5B7
+E5B8
+E5B9
+E5BA
+E5BB
+E5BC
+E5BD
+E5BE
+E5BF
+E5C0
+E5C1
+E5C2
+E5C3
+E5C4
+E5C5
+E5C6
+E5C7
+E5C8
+E5C9
+E5CA
+E5CB
+E5CC
+E5CD
+E5CE
+E5CF
+E5D0
+E5D1
+E5D2
+E5D3
+E5D4
+E5D5
+E5D6
+E5D7
+E5D8
+E5D9
+E5DA
+E5DB
+E5DC
+E5DD
+E5DE
+E5DF
+E5E0
+E5E1
+E5E2
+E5E3
+E5E4
+E5E5
+E5E6
+E5E7
+E5E8
+E5E9
+E5EA
+E5EB
+E5EC
+E5ED
+E5EE
+E5EF
+E5F0
+E5F1
+E5F2
+E5F3
+E5F4
+E5F5
+E5F6
+E5F7
+E5F8
+E5F9
+E5FA
+E5FB
+E5FC
+E5FD
+E5FE
+E5FF
+E600
+E601
+E602
+E603
+E604
+E605
+E606
+E607
+E608
+E609
+E60A
+E60B
+E60C
+E60D
+E60E
+E60F
+E610
+E611
+E612
+E613
+E614
+E615
+E616
+E617
+E618
+E619
+E61A
+E61B
+E61C
+E61D
+E61E
+E61F
+E620
+E621
+E622
+E623
+E624
+E625
+E626
+E627
+E628
+E629
+E62A
+E62B
+E62C
+E62D
+E62E
+E62F
+E630
+E631
+E632
+E633
+E634
+E635
+E636
+E637
+E638
+E639
+E63A
+E63B
+E63C
+E63D
+E63E
+E63F
+E640
+E641
+E642
+E643
+E644
+E645
+E646
+E647
+E648
+E649
+E64A
+E64B
+E64C
+E64D
+E64E
+E64F
+E650
+E651
+E652
+E653
+E654
+E655
+E656
+E657
+E658
+E659
+E65A
+E65B
+E65C
+E65D
+E65E
+E65F
+E660
+E661
+E662
+E663
+E664
+E665
+E666
+E667
+E668
+E669
+E66A
+E66B
+E66C
+E66D
+E66E
+E66F
+E670
+E671
+E672
+E673
+E674
+E675
+E676
+E677
+E678
+E679
+E67A
+E67B
+E67C
+E67D
+E67E
+E67F
+E680
+E681
+E682
+E683
+E684
+E685
+E686
+E687
+E688
+E689
+E68A
+E68B
+E68C
+E68D
+E68E
+E68F
+E690
+E691
+E692
+E693
+E694
+E695
+E696
+E697
+E698
+E699
+E69A
+E69B
+E69C
+E69D
+E69E
+E69F
+E6A0
+E6A1
+E6A2
+E6A3
+E6A4
+E6A5
+E6A6
+E6A7
+E6A8
+E6A9
+E6AA
+E6AB
+E6AC
+E6AD
+E6AE
+E6AF
+E6B0
+E6B1
+E6B2
+E6B3
+E6B4
+E6B5
+E6B6
+E6B7
+E6B8
+E6B9
+E6BA
+E6BB
+E6BC
+E6BD
+E6BE
+E6BF
+E6C0
+E6C1
+E6C2
+E6C3
+E6C4
+E6C5
+E6C6
+E6C7
+E6C8
+E6C9
+E6CA
+E6CB
+E6CC
+E6CD
+E6CE
+E6CF
+E6D0
+E6D1
+E6D2
+E6D3
+E6D4
+E6D5
+E6D6
+E6D7
+E6D8
+E6D9
+E6DA
+E6DB
+E6DC
+E6DD
+E6DE
+E6DF
+E6E0
+E6E1
+E6E2
+E6E3
+E6E4
+E6E5
+E6E6
+E6E7
+E6E8
+E6E9
+E6EA
+E6EB
+E6EC
+E6ED
+E6EE
+E6EF
+E6F0
+E6F1
+E6F2
+E6F3
+E6F4
+E6F5
+E6F6
+E6F7
+E6F8
+E6F9
+E6FA
+E6FB
+E6FC
+E6FD
+E6FE
+E6FF
+E700
+E701
+E702
+E703
+E704
+E705
+E706
+E707
+E708
+E709
+E70A
+E70B
+E70C
+E70D
+E70E
+E70F
+E710
+E711
+E712
+E713
+E714
+E715
+E716
+E717
+E718
+E719
+E71A
+E71B
+E71C
+E71D
+E71E
+E71F
+E720
+E721
+E722
+E723
+E724
+E725
+E726
+E727
+E728
+E729
+E72A
+E72B
+E72C
+E72D
+E72E
+E72F
+E730
+E731
+E732
+E733
+E734
+E735
+E736
+E737
+E738
+E739
+E73A
+E73B
+E73C
+E73D
+E73E
+E73F
+E740
+E741
+E742
+E743
+E744
+E745
+E746
+E747
+E748
+E749
+E74A
+E74B
+E74C
+E74D
+E74E
+E74F
+E750
+E751
+E752
+E753
+E754
+E755
+E756
+E757
+CREATE TABLE t3 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t2;
+SELECT HEX(c1) FROM t3;
+HEX(c1)
+5C
+7E
+A1B1
+A1BD
+A1C0
+A1C1
+A1C2
+A1DD
+A1F1
+A1F2
+A1EF
+A2CC
+A1C1
+8FA2C3
+ADA1
+ADA2
+ADA3
+ADA4
+ADA5
+ADA6
+ADA7
+ADA8
+ADA9
+ADAA
+ADAB
+ADAC
+ADAD
+ADAE
+ADAF
+ADB0
+ADB1
+ADB2
+ADB3
+ADB4
+ADB5
+ADB6
+ADB7
+ADB8
+ADB9
+ADBA
+ADBB
+ADBC
+ADBD
+ADBE
+ADC0
+ADC1
+ADC2
+ADC3
+ADC4
+ADC5
+ADC6
+ADC7
+ADC8
+ADC9
+ADCA
+ADCB
+ADCC
+ADCD
+ADCE
+ADCF
+ADD0
+ADD1
+ADD2
+ADD3
+ADD4
+ADD5
+ADD6
+ADDF
+ADE0
+ADE1
+ADE2
+ADE3
+ADE4
+ADE5
+ADE6
+ADE7
+ADE8
+ADE9
+ADEA
+ADEB
+ADEC
+ADED
+ADEE
+ADEF
+A2E2
+A2E1
+A2E9
+ADF3
+ADF4
+A2E5
+A2DD
+A2DC
+ADF8
+ADF9
+A2E8
+A2C1
+A2C0
+8FF3F3
+8FF3F4
+8FF3F5
+8FF3F6
+8FF3F7
+8FF3F8
+8FF3F9
+8FF3FA
+8FF3FB
+8FF3FC
+ADB5
+ADB6
+ADB7
+ADB8
+ADB9
+ADBA
+ADBB
+ADBC
+ADBD
+ADBE
+A2CC
+8FA2C3
+8FF4A9
+8FF4AA
+ADEA
+ADE2
+ADE4
+A2E8
+8FD4E3
+8FDCDF
+8FE4E9
+8FE3F8
+8FD9A1
+8FB1BB
+8FF4AE
+8FC2AD
+8FC3FC
+8FE4D0
+8FC2BF
+8FBCF4
+8FB0A9
+8FB0C8
+8FF4AF
+8FB0D2
+8FB0D4
+8FB0E3
+8FB0EE
+8FB1A7
+8FB1A3
+8FB1AC
+8FB1A9
+8FB1BE
+8FB1DF
+8FB1D8
+8FB1C8
+8FB1D7
+8FB1E3
+8FB1F4
+8FB1E1
+8FB2A3
+8FF4B0
+8FB2BB
+8FB2E6
+8FB2ED
+8FB2F5
+8FB2FC
+8FF4B1
+8FB3B5
+8FB3D8
+8FB3DB
+8FB3E5
+8FB3EE
+8FB3FB
+8FF4B2
+8FF4B3
+8FB4C0
+8FB4C7
+8FB4D0
+8FB4DE
+8FF4B4
+8FB5AA
+8FF4B5
+8FB5AF
+8FB5C4
+8FB5E8
+8FF4B6
+8FB7C2
+8FB7E4
+8FB7E8
+8FB7E7
+8FF4B7
+8FF4B8
+8FF4B9
+8FB8CE
+8FB8E1
+8FB8F5
+8FB8F7
+8FB8F8
+8FB8FC
+8FB9AF
+8FB9B7
+8FBABE
+8FBADB
+8FCDAA
+8FBAE1
+8FF4BA
+8FBAEB
+8FBBB3
+8FBBB8
+8FF4BB
+8FBBCA
+8FF4BC
+8FF4BD
+8FBBD0
+8FBBDE
+8FBBF4
+8FBBF5
+8FBBF9
+8FBCE4
+8FBCED
+8FBCFE
+8FF4BE
+8FBDC2
+8FBDE7
+8FF4BF
+8FBDF0
+8FBEB0
+8FBEAC
+8FF4C0
+8FBEB3
+8FBEBD
+8FBECD
+8FBEC9
+8FBEE4
+8FBFA8
+8FBFC9
+8FC0C4
+8FC0E4
+8FC0F4
+8FC1A6
+8FF4C1
+8FC1F5
+8FC1FC
+8FF4C2
+8FC1F8
+8FC2AB
+8FC2A1
+8FC2A5
+8FF4C3
+8FC2B8
+8FC2BA
+8FF4C4
+8FC2C4
+8FC2D2
+8FC2D7
+8FC2DB
+8FC2DE
+8FC2ED
+8FC2F0
+8FF4C5
+8FC3A1
+8FC3B5
+8FC3C9
+8FC3B9
+8FF4C6
+8FC3D8
+8FC3FE
+8FF4C7
+8FC4CC
+8FF4C8
+8FC4D9
+8FC4EA
+8FC4FD
+8FF4C9
+8FC5A7
+8FC5B5
+8FC5B6
+8FF4CA
+8FC5D5
+8FC6B8
+8FC6D7
+8FC6E0
+8FC6EA
+8FC6E3
+8FC7A1
+8FC7AB
+8FC7C7
+8FC7C3
+8FC7CB
+8FC7CF
+8FC7D9
+8FF4CB
+8FF4CC
+8FC7E6
+8FC7EE
+8FC7FC
+8FC7EB
+8FC7F0
+8FC8B1
+8FC8E5
+8FC8F8
+8FC9A6
+8FC9AB
+8FC9AD
+8FF4CD
+8FC9CA
+8FC9D3
+8FC9E9
+8FC9E3
+8FC9FC
+8FC9F4
+8FC9F5
+8FF4CE
+8FCAB3
+8FCABD
+8FCAEF
+8FCAF1
+8FCBAE
+8FF4CF
+8FCBCA
+8FCBE6
+8FCBEA
+8FCBF0
+8FCBF4
+8FCBEE
+8FCCA5
+8FCBF9
+8FCCAB
+8FCCAE
+8FCCAD
+8FCCB2
+8FCCC2
+8FCCD0
+8FCCD9
+8FF4D0
+8FCDBB
+8FF4D1
+8FCEBB
+8FF4D2
+8FCEBA
+8FCEC3
+8FF4D3
+8FCEF2
+8FB3DD
+8FCFD5
+8FCFE2
+8FCFE9
+8FCFED
+8FF4D4
+8FF4D5
+8FF4D6
+8FF4D7
+8FD0E5
+8FF4D8
+8FD0E9
+8FD1E8
+8FF4D9
+8FF4DA
+8FD1EC
+8FD2BB
+8FF4DB
+8FD3E1
+8FD3E8
+8FD4A7
+8FF4DC
+8FF4DD
+8FD4D4
+8FD4F2
+8FD5AE
+8FF4DE
+8FD7DE
+8FF4DF
+8FD8A2
+8FD8B7
+8FD8C1
+8FD8D1
+8FD8F4
+8FD9C6
+8FD9C8
+8FD9D1
+8FF4E0
+8FF4E1
+8FF4E2
+8FF4E3
+8FF4E4
+8FDCD3
+8FDDC8
+8FDDD4
+8FDDEA
+8FDDFA
+8FDEA4
+8FDEB0
+8FF4E5
+8FDEB5
+8FDECB
+8FF4E6
+8FDFB9
+8FF4E7
+8FDFC3
+8FF4E8
+8FF4E9
+8FE0D9
+8FF4EA
+8FF4EB
+8FE1E2
+8FF4EC
+8FF4ED
+8FF4EE
+8FE2C7
+8FE3A8
+8FE3A6
+8FE3A9
+8FE3AF
+8FE3B0
+8FE3AA
+8FE3AB
+8FE3BC
+8FE3C1
+8FE3BF
+8FE3D5
+8FE3D8
+8FE3D6
+8FE3DF
+8FE3E3
+8FE3E1
+8FE3D4
+8FE3E9
+8FE4A6
+8FE3F1
+8FE3F2
+8FE4CB
+8FE4C1
+8FE4C3
+8FE4BE
+8FF4EF
+8FE4C0
+8FE4C7
+8FE4BF
+8FE4E0
+8FE4DE
+8FE4D1
+8FF4F0
+8FE4DC
+8FE4D2
+8FE4DB
+8FE4D4
+8FE4FA
+8FE4EF
+8FE5B3
+8FE5BF
+8FE5C9
+8FE5D0
+8FE5E2
+8FE5EA
+8FE5EB
+8FF4F1
+8FF4F2
+8FF4F3
+8FE6E8
+8FE6EF
+8FE7AC
+8FF4F4
+8FE7AE
+8FF4F5
+8FE7B1
+8FF4F6
+8FE7B2
+8FE8B1
+8FE8B6
+8FF4F7
+8FF4F8
+8FE8DD
+8FF4F9
+8FF4FA
+8FE9D1
+8FF4FB
+8FE9ED
+8FEACD
+8FF4FC
+8FEADB
+8FEAE6
+8FEAEA
+8FEBA5
+8FEBFB
+8FEBFA
+8FF4FD
+8FECD6
+8FF4FE
+F5A1
+F5A2
+F5A3
+F5A4
+F5A5
+F5A6
+F5A7
+F5A8
+F5A9
+F5AA
+F5AB
+F5AC
+F5AD
+F5AE
+F5AF
+F5B0
+F5B1
+F5B2
+F5B3
+F5B4
+F5B5
+F5B6
+F5B7
+F5B8
+F5B9
+F5BA
+F5BB
+F5BC
+F5BD
+F5BE
+F5BF
+F5C0
+F5C1
+F5C2
+F5C3
+F5C4
+F5C5
+F5C6
+F5C7
+F5C8
+F5C9
+F5CA
+F5CB
+F5CC
+F5CD
+F5CE
+F5CF
+F5D0
+F5D1
+F5D2
+F5D3
+F5D4
+F5D5
+F5D6
+F5D7
+F5D8
+F5D9
+F5DA
+F5DB
+F5DC
+F5DD
+F5DE
+F5DF
+F5E0
+F5E1
+F5E2
+F5E3
+F5E4
+F5E5
+F5E6
+F5E7
+F5E8
+F5E9
+F5EA
+F5EB
+F5EC
+F5ED
+F5EE
+F5EF
+F5F0
+F5F1
+F5F2
+F5F3
+F5F4
+F5F5
+F5F6
+F5F7
+F5F8
+F5F9
+F5FA
+F5FB
+F5FC
+F5FD
+F5FE
+F6A1
+F6A2
+F6A3
+F6A4
+F6A5
+F6A6
+F6A7
+F6A8
+F6A9
+F6AA
+F6AB
+F6AC
+F6AD
+F6AE
+F6AF
+F6B0
+F6B1
+F6B2
+F6B3
+F6B4
+F6B5
+F6B6
+F6B7
+F6B8
+F6B9
+F6BA
+F6BB
+F6BC
+F6BD
+F6BE
+F6BF
+F6C0
+F6C1
+F6C2
+F6C3
+F6C4
+F6C5
+F6C6
+F6C7
+F6C8
+F6C9
+F6CA
+F6CB
+F6CC
+F6CD
+F6CE
+F6CF
+F6D0
+F6D1
+F6D2
+F6D3
+F6D4
+F6D5
+F6D6
+F6D7
+F6D8
+F6D9
+F6DA
+F6DB
+F6DC
+F6DD
+F6DE
+F6DF
+F6E0
+F6E1
+F6E2
+F6E3
+F6E4
+F6E5
+F6E6
+F6E7
+F6E8
+F6E9
+F6EA
+F6EB
+F6EC
+F6ED
+F6EE
+F6EF
+F6F0
+F6F1
+F6F2
+F6F3
+F6F4
+F6F5
+F6F6
+F6F7
+F6F8
+F6F9
+F6FA
+F6FB
+F6FC
+F6FD
+F6FE
+F7A1
+F7A2
+F7A3
+F7A4
+F7A5
+F7A6
+F7A7
+F7A8
+F7A9
+F7AA
+F7AB
+F7AC
+F7AD
+F7AE
+F7AF
+F7B0
+F7B1
+F7B2
+F7B3
+F7B4
+F7B5
+F7B6
+F7B7
+F7B8
+F7B9
+F7BA
+F7BB
+F7BC
+F7BD
+F7BE
+F7BF
+F7C0
+F7C1
+F7C2
+F7C3
+F7C4
+F7C5
+F7C6
+F7C7
+F7C8
+F7C9
+F7CA
+F7CB
+F7CC
+F7CD
+F7CE
+F7CF
+F7D0
+F7D1
+F7D2
+F7D3
+F7D4
+F7D5
+F7D6
+F7D7
+F7D8
+F7D9
+F7DA
+F7DB
+F7DC
+F7DD
+F7DE
+F7DF
+F7E0
+F7E1
+F7E2
+F7E3
+F7E4
+F7E5
+F7E6
+F7E7
+F7E8
+F7E9
+F7EA
+F7EB
+F7EC
+F7ED
+F7EE
+F7EF
+F7F0
+F7F1
+F7F2
+F7F3
+F7F4
+F7F5
+F7F6
+F7F7
+F7F8
+F7F9
+F7FA
+F7FB
+F7FC
+F7FD
+F7FE
+F8A1
+F8A2
+F8A3
+F8A4
+F8A5
+F8A6
+F8A7
+F8A8
+F8A9
+F8AA
+F8AB
+F8AC
+F8AD
+F8AE
+F8AF
+F8B0
+F8B1
+F8B2
+F8B3
+F8B4
+F8B5
+F8B6
+F8B7
+F8B8
+F8B9
+F8BA
+F8BB
+F8BC
+F8BD
+F8BE
+F8BF
+F8C0
+F8C1
+F8C2
+F8C3
+F8C4
+F8C5
+F8C6
+F8C7
+F8C8
+F8C9
+F8CA
+F8CB
+F8CC
+F8CD
+F8CE
+F8CF
+F8D0
+F8D1
+F8D2
+F8D3
+F8D4
+F8D5
+F8D6
+F8D7
+F8D8
+F8D9
+F8DA
+F8DB
+F8DC
+F8DD
+F8DE
+F8DF
+F8E0
+F8E1
+F8E2
+F8E3
+F8E4
+F8E5
+F8E6
+F8E7
+F8E8
+F8E9
+F8EA
+F8EB
+F8EC
+F8ED
+F8EE
+F8EF
+F8F0
+F8F1
+F8F2
+F8F3
+F8F4
+F8F5
+F8F6
+F8F7
+F8F8
+F8F9
+F8FA
+F8FB
+F8FC
+F8FD
+F8FE
+F9A1
+F9A2
+F9A3
+F9A4
+F9A5
+F9A6
+F9A7
+F9A8
+F9A9
+F9AA
+F9AB
+F9AC
+F9AD
+F9AE
+F9AF
+F9B0
+F9B1
+F9B2
+F9B3
+F9B4
+F9B5
+F9B6
+F9B7
+F9B8
+F9B9
+F9BA
+F9BB
+F9BC
+F9BD
+F9BE
+F9BF
+F9C0
+F9C1
+F9C2
+F9C3
+F9C4
+F9C5
+F9C6
+F9C7
+F9C8
+F9C9
+F9CA
+F9CB
+F9CC
+F9CD
+F9CE
+F9CF
+F9D0
+F9D1
+F9D2
+F9D3
+F9D4
+F9D5
+F9D6
+F9D7
+F9D8
+F9D9
+F9DA
+F9DB
+F9DC
+F9DD
+F9DE
+F9DF
+F9E0
+F9E1
+F9E2
+F9E3
+F9E4
+F9E5
+F9E6
+F9E7
+F9E8
+F9E9
+F9EA
+F9EB
+F9EC
+F9ED
+F9EE
+F9EF
+F9F0
+F9F1
+F9F2
+F9F3
+F9F4
+F9F5
+F9F6
+F9F7
+F9F8
+F9F9
+F9FA
+F9FB
+F9FC
+F9FD
+F9FE
+FAA1
+FAA2
+FAA3
+FAA4
+FAA5
+FAA6
+FAA7
+FAA8
+FAA9
+FAAA
+FAAB
+FAAC
+FAAD
+FAAE
+FAAF
+FAB0
+FAB1
+FAB2
+FAB3
+FAB4
+FAB5
+FAB6
+FAB7
+FAB8
+FAB9
+FABA
+FABB
+FABC
+FABD
+FABE
+FABF
+FAC0
+FAC1
+FAC2
+FAC3
+FAC4
+FAC5
+FAC6
+FAC7
+FAC8
+FAC9
+FACA
+FACB
+FACC
+FACD
+FACE
+FACF
+FAD0
+FAD1
+FAD2
+FAD3
+FAD4
+FAD5
+FAD6
+FAD7
+FAD8
+FAD9
+FADA
+FADB
+FADC
+FADD
+FADE
+FADF
+FAE0
+FAE1
+FAE2
+FAE3
+FAE4
+FAE5
+FAE6
+FAE7
+FAE8
+FAE9
+FAEA
+FAEB
+FAEC
+FAED
+FAEE
+FAEF
+FAF0
+FAF1
+FAF2
+FAF3
+FAF4
+FAF5
+FAF6
+FAF7
+FAF8
+FAF9
+FAFA
+FAFB
+FAFC
+FAFD
+FAFE
+FBA1
+FBA2
+FBA3
+FBA4
+FBA5
+FBA6
+FBA7
+FBA8
+FBA9
+FBAA
+FBAB
+FBAC
+FBAD
+FBAE
+FBAF
+FBB0
+FBB1
+FBB2
+FBB3
+FBB4
+FBB5
+FBB6
+FBB7
+FBB8
+FBB9
+FBBA
+FBBB
+FBBC
+FBBD
+FBBE
+FBBF
+FBC0
+FBC1
+FBC2
+FBC3
+FBC4
+FBC5
+FBC6
+FBC7
+FBC8
+FBC9
+FBCA
+FBCB
+FBCC
+FBCD
+FBCE
+FBCF
+FBD0
+FBD1
+FBD2
+FBD3
+FBD4
+FBD5
+FBD6
+FBD7
+FBD8
+FBD9
+FBDA
+FBDB
+FBDC
+FBDD
+FBDE
+FBDF
+FBE0
+FBE1
+FBE2
+FBE3
+FBE4
+FBE5
+FBE6
+FBE7
+FBE8
+FBE9
+FBEA
+FBEB
+FBEC
+FBED
+FBEE
+FBEF
+FBF0
+FBF1
+FBF2
+FBF3
+FBF4
+FBF5
+FBF6
+FBF7
+FBF8
+FBF9
+FBFA
+FBFB
+FBFC
+FBFD
+FBFE
+FCA1
+FCA2
+FCA3
+FCA4
+FCA5
+FCA6
+FCA7
+FCA8
+FCA9
+FCAA
+FCAB
+FCAC
+FCAD
+FCAE
+FCAF
+FCB0
+FCB1
+FCB2
+FCB3
+FCB4
+FCB5
+FCB6
+FCB7
+FCB8
+FCB9
+FCBA
+FCBB
+FCBC
+FCBD
+FCBE
+FCBF
+FCC0
+FCC1
+FCC2
+FCC3
+FCC4
+FCC5
+FCC6
+FCC7
+FCC8
+FCC9
+FCCA
+FCCB
+FCCC
+FCCD
+FCCE
+FCCF
+FCD0
+FCD1
+FCD2
+FCD3
+FCD4
+FCD5
+FCD6
+FCD7
+FCD8
+FCD9
+FCDA
+FCDB
+FCDC
+FCDD
+FCDE
+FCDF
+FCE0
+FCE1
+FCE2
+FCE3
+FCE4
+FCE5
+FCE6
+FCE7
+FCE8
+FCE9
+FCEA
+FCEB
+FCEC
+FCED
+FCEE
+FCEF
+FCF0
+FCF1
+FCF2
+FCF3
+FCF4
+FCF5
+FCF6
+FCF7
+FCF8
+FCF9
+FCFA
+FCFB
+FCFC
+FCFD
+FCFE
+FDA1
+FDA2
+FDA3
+FDA4
+FDA5
+FDA6
+FDA7
+FDA8
+FDA9
+FDAA
+FDAB
+FDAC
+FDAD
+FDAE
+FDAF
+FDB0
+FDB1
+FDB2
+FDB3
+FDB4
+FDB5
+FDB6
+FDB7
+FDB8
+FDB9
+FDBA
+FDBB
+FDBC
+FDBD
+FDBE
+FDBF
+FDC0
+FDC1
+FDC2
+FDC3
+FDC4
+FDC5
+FDC6
+FDC7
+FDC8
+FDC9
+FDCA
+FDCB
+FDCC
+FDCD
+FDCE
+FDCF
+FDD0
+FDD1
+FDD2
+FDD3
+FDD4
+FDD5
+FDD6
+FDD7
+FDD8
+FDD9
+FDDA
+FDDB
+FDDC
+FDDD
+FDDE
+FDDF
+FDE0
+FDE1
+FDE2
+FDE3
+FDE4
+FDE5
+FDE6
+FDE7
+FDE8
+FDE9
+FDEA
+FDEB
+FDEC
+FDED
+FDEE
+FDEF
+FDF0
+FDF1
+FDF2
+FDF3
+FDF4
+FDF5
+FDF6
+FDF7
+FDF8
+FDF9
+FDFA
+FDFB
+FDFC
+FDFD
+FDFE
+FEA1
+FEA2
+FEA3
+FEA4
+FEA5
+FEA6
+FEA7
+FEA8
+FEA9
+FEAA
+FEAB
+FEAC
+FEAD
+FEAE
+FEAF
+FEB0
+FEB1
+FEB2
+FEB3
+FEB4
+FEB5
+FEB6
+FEB7
+FEB8
+FEB9
+FEBA
+FEBB
+FEBC
+FEBD
+FEBE
+FEBF
+FEC0
+FEC1
+FEC2
+FEC3
+FEC4
+FEC5
+FEC6
+FEC7
+FEC8
+FEC9
+FECA
+FECB
+FECC
+FECD
+FECE
+FECF
+FED0
+FED1
+FED2
+FED3
+FED4
+FED5
+FED6
+FED7
+FED8
+FED9
+FEDA
+FEDB
+FEDC
+FEDD
+FEDE
+FEDF
+FEE0
+FEE1
+FEE2
+FEE3
+FEE4
+FEE5
+FEE6
+FEE7
+FEE8
+FEE9
+FEEA
+FEEB
+FEEC
+FEED
+FEEE
+FEEF
+FEF0
+FEF1
+FEF2
+FEF3
+FEF4
+FEF5
+FEF6
+FEF7
+FEF8
+FEF9
+FEFA
+FEFB
+FEFC
+FEFD
+FEFE
+8FF5A1
+8FF5A2
+8FF5A3
+8FF5A4
+8FF5A5
+8FF5A6
+8FF5A7
+8FF5A8
+8FF5A9
+8FF5AA
+8FF5AB
+8FF5AC
+8FF5AD
+8FF5AE
+8FF5AF
+8FF5B0
+8FF5B1
+8FF5B2
+8FF5B3
+8FF5B4
+8FF5B5
+8FF5B6
+8FF5B7
+8FF5B8
+8FF5B9
+8FF5BA
+8FF5BB
+8FF5BC
+8FF5BD
+8FF5BE
+8FF5BF
+8FF5C0
+8FF5C1
+8FF5C2
+8FF5C3
+8FF5C4
+8FF5C5
+8FF5C6
+8FF5C7
+8FF5C8
+8FF5C9
+8FF5CA
+8FF5CB
+8FF5CC
+8FF5CD
+8FF5CE
+8FF5CF
+8FF5D0
+8FF5D1
+8FF5D2
+8FF5D3
+8FF5D4
+8FF5D5
+8FF5D6
+8FF5D7
+8FF5D8
+8FF5D9
+8FF5DA
+8FF5DB
+8FF5DC
+8FF5DD
+8FF5DE
+8FF5DF
+8FF5E0
+8FF5E1
+8FF5E2
+8FF5E3
+8FF5E4
+8FF5E5
+8FF5E6
+8FF5E7
+8FF5E8
+8FF5E9
+8FF5EA
+8FF5EB
+8FF5EC
+8FF5ED
+8FF5EE
+8FF5EF
+8FF5F0
+8FF5F1
+8FF5F2
+8FF5F3
+8FF5F4
+8FF5F5
+8FF5F6
+8FF5F7
+8FF5F8
+8FF5F9
+8FF5FA
+8FF5FB
+8FF5FC
+8FF5FD
+8FF5FE
+8FF6A1
+8FF6A2
+8FF6A3
+8FF6A4
+8FF6A5
+8FF6A6
+8FF6A7
+8FF6A8
+8FF6A9
+8FF6AA
+8FF6AB
+8FF6AC
+8FF6AD
+8FF6AE
+8FF6AF
+8FF6B0
+8FF6B1
+8FF6B2
+8FF6B3
+8FF6B4
+8FF6B5
+8FF6B6
+8FF6B7
+8FF6B8
+8FF6B9
+8FF6BA
+8FF6BB
+8FF6BC
+8FF6BD
+8FF6BE
+8FF6BF
+8FF6C0
+8FF6C1
+8FF6C2
+8FF6C3
+8FF6C4
+8FF6C5
+8FF6C6
+8FF6C7
+8FF6C8
+8FF6C9
+8FF6CA
+8FF6CB
+8FF6CC
+8FF6CD
+8FF6CE
+8FF6CF
+8FF6D0
+8FF6D1
+8FF6D2
+8FF6D3
+8FF6D4
+8FF6D5
+8FF6D6
+8FF6D7
+8FF6D8
+8FF6D9
+8FF6DA
+8FF6DB
+8FF6DC
+8FF6DD
+8FF6DE
+8FF6DF
+8FF6E0
+8FF6E1
+8FF6E2
+8FF6E3
+8FF6E4
+8FF6E5
+8FF6E6
+8FF6E7
+8FF6E8
+8FF6E9
+8FF6EA
+8FF6EB
+8FF6EC
+8FF6ED
+8FF6EE
+8FF6EF
+8FF6F0
+8FF6F1
+8FF6F2
+8FF6F3
+8FF6F4
+8FF6F5
+8FF6F6
+8FF6F7
+8FF6F8
+8FF6F9
+8FF6FA
+8FF6FB
+8FF6FC
+8FF6FD
+8FF6FE
+8FF7A1
+8FF7A2
+8FF7A3
+8FF7A4
+8FF7A5
+8FF7A6
+8FF7A7
+8FF7A8
+8FF7A9
+8FF7AA
+8FF7AB
+8FF7AC
+8FF7AD
+8FF7AE
+8FF7AF
+8FF7B0
+8FF7B1
+8FF7B2
+8FF7B3
+8FF7B4
+8FF7B5
+8FF7B6
+8FF7B7
+8FF7B8
+8FF7B9
+8FF7BA
+8FF7BB
+8FF7BC
+8FF7BD
+8FF7BE
+8FF7BF
+8FF7C0
+8FF7C1
+8FF7C2
+8FF7C3
+8FF7C4
+8FF7C5
+8FF7C6
+8FF7C7
+8FF7C8
+8FF7C9
+8FF7CA
+8FF7CB
+8FF7CC
+8FF7CD
+8FF7CE
+8FF7CF
+8FF7D0
+8FF7D1
+8FF7D2
+8FF7D3
+8FF7D4
+8FF7D5
+8FF7D6
+8FF7D7
+8FF7D8
+8FF7D9
+8FF7DA
+8FF7DB
+8FF7DC
+8FF7DD
+8FF7DE
+8FF7DF
+8FF7E0
+8FF7E1
+8FF7E2
+8FF7E3
+8FF7E4
+8FF7E5
+8FF7E6
+8FF7E7
+8FF7E8
+8FF7E9
+8FF7EA
+8FF7EB
+8FF7EC
+8FF7ED
+8FF7EE
+8FF7EF
+8FF7F0
+8FF7F1
+8FF7F2
+8FF7F3
+8FF7F4
+8FF7F5
+8FF7F6
+8FF7F7
+8FF7F8
+8FF7F9
+8FF7FA
+8FF7FB
+8FF7FC
+8FF7FD
+8FF7FE
+8FF8A1
+8FF8A2
+8FF8A3
+8FF8A4
+8FF8A5
+8FF8A6
+8FF8A7
+8FF8A8
+8FF8A9
+8FF8AA
+8FF8AB
+8FF8AC
+8FF8AD
+8FF8AE
+8FF8AF
+8FF8B0
+8FF8B1
+8FF8B2
+8FF8B3
+8FF8B4
+8FF8B5
+8FF8B6
+8FF8B7
+8FF8B8
+8FF8B9
+8FF8BA
+8FF8BB
+8FF8BC
+8FF8BD
+8FF8BE
+8FF8BF
+8FF8C0
+8FF8C1
+8FF8C2
+8FF8C3
+8FF8C4
+8FF8C5
+8FF8C6
+8FF8C7
+8FF8C8
+8FF8C9
+8FF8CA
+8FF8CB
+8FF8CC
+8FF8CD
+8FF8CE
+8FF8CF
+8FF8D0
+8FF8D1
+8FF8D2
+8FF8D3
+8FF8D4
+8FF8D5
+8FF8D6
+8FF8D7
+8FF8D8
+8FF8D9
+8FF8DA
+8FF8DB
+8FF8DC
+8FF8DD
+8FF8DE
+8FF8DF
+8FF8E0
+8FF8E1
+8FF8E2
+8FF8E3
+8FF8E4
+8FF8E5
+8FF8E6
+8FF8E7
+8FF8E8
+8FF8E9
+8FF8EA
+8FF8EB
+8FF8EC
+8FF8ED
+8FF8EE
+8FF8EF
+8FF8F0
+8FF8F1
+8FF8F2
+8FF8F3
+8FF8F4
+8FF8F5
+8FF8F6
+8FF8F7
+8FF8F8
+8FF8F9
+8FF8FA
+8FF8FB
+8FF8FC
+8FF8FD
+8FF8FE
+8FF9A1
+8FF9A2
+8FF9A3
+8FF9A4
+8FF9A5
+8FF9A6
+8FF9A7
+8FF9A8
+8FF9A9
+8FF9AA
+8FF9AB
+8FF9AC
+8FF9AD
+8FF9AE
+8FF9AF
+8FF9B0
+8FF9B1
+8FF9B2
+8FF9B3
+8FF9B4
+8FF9B5
+8FF9B6
+8FF9B7
+8FF9B8
+8FF9B9
+8FF9BA
+8FF9BB
+8FF9BC
+8FF9BD
+8FF9BE
+8FF9BF
+8FF9C0
+8FF9C1
+8FF9C2
+8FF9C3
+8FF9C4
+8FF9C5
+8FF9C6
+8FF9C7
+8FF9C8
+8FF9C9
+8FF9CA
+8FF9CB
+8FF9CC
+8FF9CD
+8FF9CE
+8FF9CF
+8FF9D0
+8FF9D1
+8FF9D2
+8FF9D3
+8FF9D4
+8FF9D5
+8FF9D6
+8FF9D7
+8FF9D8
+8FF9D9
+8FF9DA
+8FF9DB
+8FF9DC
+8FF9DD
+8FF9DE
+8FF9DF
+8FF9E0
+8FF9E1
+8FF9E2
+8FF9E3
+8FF9E4
+8FF9E5
+8FF9E6
+8FF9E7
+8FF9E8
+8FF9E9
+8FF9EA
+8FF9EB
+8FF9EC
+8FF9ED
+8FF9EE
+8FF9EF
+8FF9F0
+8FF9F1
+8FF9F2
+8FF9F3
+8FF9F4
+8FF9F5
+8FF9F6
+8FF9F7
+8FF9F8
+8FF9F9
+8FF9FA
+8FF9FB
+8FF9FC
+8FF9FD
+8FF9FE
+8FFAA1
+8FFAA2
+8FFAA3
+8FFAA4
+8FFAA5
+8FFAA6
+8FFAA7
+8FFAA8
+8FFAA9
+8FFAAA
+8FFAAB
+8FFAAC
+8FFAAD
+8FFAAE
+8FFAAF
+8FFAB0
+8FFAB1
+8FFAB2
+8FFAB3
+8FFAB4
+8FFAB5
+8FFAB6
+8FFAB7
+8FFAB8
+8FFAB9
+8FFABA
+8FFABB
+8FFABC
+8FFABD
+8FFABE
+8FFABF
+8FFAC0
+8FFAC1
+8FFAC2
+8FFAC3
+8FFAC4
+8FFAC5
+8FFAC6
+8FFAC7
+8FFAC8
+8FFAC9
+8FFACA
+8FFACB
+8FFACC
+8FFACD
+8FFACE
+8FFACF
+8FFAD0
+8FFAD1
+8FFAD2
+8FFAD3
+8FFAD4
+8FFAD5
+8FFAD6
+8FFAD7
+8FFAD8
+8FFAD9
+8FFADA
+8FFADB
+8FFADC
+8FFADD
+8FFADE
+8FFADF
+8FFAE0
+8FFAE1
+8FFAE2
+8FFAE3
+8FFAE4
+8FFAE5
+8FFAE6
+8FFAE7
+8FFAE8
+8FFAE9
+8FFAEA
+8FFAEB
+8FFAEC
+8FFAED
+8FFAEE
+8FFAEF
+8FFAF0
+8FFAF1
+8FFAF2
+8FFAF3
+8FFAF4
+8FFAF5
+8FFAF6
+8FFAF7
+8FFAF8
+8FFAF9
+8FFAFA
+8FFAFB
+8FFAFC
+8FFAFD
+8FFAFE
+8FFBA1
+8FFBA2
+8FFBA3
+8FFBA4
+8FFBA5
+8FFBA6
+8FFBA7
+8FFBA8
+8FFBA9
+8FFBAA
+8FFBAB
+8FFBAC
+8FFBAD
+8FFBAE
+8FFBAF
+8FFBB0
+8FFBB1
+8FFBB2
+8FFBB3
+8FFBB4
+8FFBB5
+8FFBB6
+8FFBB7
+8FFBB8
+8FFBB9
+8FFBBA
+8FFBBB
+8FFBBC
+8FFBBD
+8FFBBE
+8FFBBF
+8FFBC0
+8FFBC1
+8FFBC2
+8FFBC3
+8FFBC4
+8FFBC5
+8FFBC6
+8FFBC7
+8FFBC8
+8FFBC9
+8FFBCA
+8FFBCB
+8FFBCC
+8FFBCD
+8FFBCE
+8FFBCF
+8FFBD0
+8FFBD1
+8FFBD2
+8FFBD3
+8FFBD4
+8FFBD5
+8FFBD6
+8FFBD7
+8FFBD8
+8FFBD9
+8FFBDA
+8FFBDB
+8FFBDC
+8FFBDD
+8FFBDE
+8FFBDF
+8FFBE0
+8FFBE1
+8FFBE2
+8FFBE3
+8FFBE4
+8FFBE5
+8FFBE6
+8FFBE7
+8FFBE8
+8FFBE9
+8FFBEA
+8FFBEB
+8FFBEC
+8FFBED
+8FFBEE
+8FFBEF
+8FFBF0
+8FFBF1
+8FFBF2
+8FFBF3
+8FFBF4
+8FFBF5
+8FFBF6
+8FFBF7
+8FFBF8
+8FFBF9
+8FFBFA
+8FFBFB
+8FFBFC
+8FFBFD
+8FFBFE
+8FFCA1
+8FFCA2
+8FFCA3
+8FFCA4
+8FFCA5
+8FFCA6
+8FFCA7
+8FFCA8
+8FFCA9
+8FFCAA
+8FFCAB
+8FFCAC
+8FFCAD
+8FFCAE
+8FFCAF
+8FFCB0
+8FFCB1
+8FFCB2
+8FFCB3
+8FFCB4
+8FFCB5
+8FFCB6
+8FFCB7
+8FFCB8
+8FFCB9
+8FFCBA
+8FFCBB
+8FFCBC
+8FFCBD
+8FFCBE
+8FFCBF
+8FFCC0
+8FFCC1
+8FFCC2
+8FFCC3
+8FFCC4
+8FFCC5
+8FFCC6
+8FFCC7
+8FFCC8
+8FFCC9
+8FFCCA
+8FFCCB
+8FFCCC
+8FFCCD
+8FFCCE
+8FFCCF
+8FFCD0
+8FFCD1
+8FFCD2
+8FFCD3
+8FFCD4
+8FFCD5
+8FFCD6
+8FFCD7
+8FFCD8
+8FFCD9
+8FFCDA
+8FFCDB
+8FFCDC
+8FFCDD
+8FFCDE
+8FFCDF
+8FFCE0
+8FFCE1
+8FFCE2
+8FFCE3
+8FFCE4
+8FFCE5
+8FFCE6
+8FFCE7
+8FFCE8
+8FFCE9
+8FFCEA
+8FFCEB
+8FFCEC
+8FFCED
+8FFCEE
+8FFCEF
+8FFCF0
+8FFCF1
+8FFCF2
+8FFCF3
+8FFCF4
+8FFCF5
+8FFCF6
+8FFCF7
+8FFCF8
+8FFCF9
+8FFCFA
+8FFCFB
+8FFCFC
+8FFCFD
+8FFCFE
+8FFDA1
+8FFDA2
+8FFDA3
+8FFDA4
+8FFDA5
+8FFDA6
+8FFDA7
+8FFDA8
+8FFDA9
+8FFDAA
+8FFDAB
+8FFDAC
+8FFDAD
+8FFDAE
+8FFDAF
+8FFDB0
+8FFDB1
+8FFDB2
+8FFDB3
+8FFDB4
+8FFDB5
+8FFDB6
+8FFDB7
+8FFDB8
+8FFDB9
+8FFDBA
+8FFDBB
+8FFDBC
+8FFDBD
+8FFDBE
+8FFDBF
+8FFDC0
+8FFDC1
+8FFDC2
+8FFDC3
+8FFDC4
+8FFDC5
+8FFDC6
+8FFDC7
+8FFDC8
+8FFDC9
+8FFDCA
+8FFDCB
+8FFDCC
+8FFDCD
+8FFDCE
+8FFDCF
+8FFDD0
+8FFDD1
+8FFDD2
+8FFDD3
+8FFDD4
+8FFDD5
+8FFDD6
+8FFDD7
+8FFDD8
+8FFDD9
+8FFDDA
+8FFDDB
+8FFDDC
+8FFDDD
+8FFDDE
+8FFDDF
+8FFDE0
+8FFDE1
+8FFDE2
+8FFDE3
+8FFDE4
+8FFDE5
+8FFDE6
+8FFDE7
+8FFDE8
+8FFDE9
+8FFDEA
+8FFDEB
+8FFDEC
+8FFDED
+8FFDEE
+8FFDEF
+8FFDF0
+8FFDF1
+8FFDF2
+8FFDF3
+8FFDF4
+8FFDF5
+8FFDF6
+8FFDF7
+8FFDF8
+8FFDF9
+8FFDFA
+8FFDFB
+8FFDFC
+8FFDFD
+8FFDFE
+8FFEA1
+8FFEA2
+8FFEA3
+8FFEA4
+8FFEA5
+8FFEA6
+8FFEA7
+8FFEA8
+8FFEA9
+8FFEAA
+8FFEAB
+8FFEAC
+8FFEAD
+8FFEAE
+8FFEAF
+8FFEB0
+8FFEB1
+8FFEB2
+8FFEB3
+8FFEB4
+8FFEB5
+8FFEB6
+8FFEB7
+8FFEB8
+8FFEB9
+8FFEBA
+8FFEBB
+8FFEBC
+8FFEBD
+8FFEBE
+8FFEBF
+8FFEC0
+8FFEC1
+8FFEC2
+8FFEC3
+8FFEC4
+8FFEC5
+8FFEC6
+8FFEC7
+8FFEC8
+8FFEC9
+8FFECA
+8FFECB
+8FFECC
+8FFECD
+8FFECE
+8FFECF
+8FFED0
+8FFED1
+8FFED2
+8FFED3
+8FFED4
+8FFED5
+8FFED6
+8FFED7
+8FFED8
+8FFED9
+8FFEDA
+8FFEDB
+8FFEDC
+8FFEDD
+8FFEDE
+8FFEDF
+8FFEE0
+8FFEE1
+8FFEE2
+8FFEE3
+8FFEE4
+8FFEE5
+8FFEE6
+8FFEE7
+8FFEE8
+8FFEE9
+8FFEEA
+8FFEEB
+8FFEEC
+8FFEED
+8FFEEE
+8FFEEF
+8FFEF0
+8FFEF1
+8FFEF2
+8FFEF3
+8FFEF4
+8FFEF5
+8FFEF6
+8FFEF7
+8FFEF8
+8FFEF9
+8FFEFA
+8FFEFB
+8FFEFC
+8FFEFD
+8FFEFE
+CREATE TABLE t4 SELECT CONVERT(c1 USING cp932) AS c1 FROM t1;
+SELECT HEX(c1) FROM t4;
+HEX(c1)
+5C
+7E
+8150
+815C
+815F
+8160
+8161
+817C
+8191
+8192
+818F
+81CA
+8160
+FA55
+8740
+8741
+8742
+8743
+8744
+8745
+8746
+8747
+8748
+8749
+874A
+874B
+874C
+874D
+874E
+874F
+8750
+8751
+8752
+8753
+8754
+8755
+8756
+8757
+8758
+8759
+875A
+875B
+875C
+875D
+875F
+8760
+8761
+8762
+8763
+8764
+8765
+8766
+8767
+8768
+8769
+876A
+876B
+876C
+876D
+876E
+876F
+8770
+8771
+8772
+8773
+8774
+8775
+877E
+8780
+8781
+8782
+8783
+8784
+8785
+8786
+8787
+8788
+8789
+878A
+878B
+878C
+878D
+878E
+878F
+81E0
+81DF
+81E7
+8793
+8794
+81E3
+81DB
+81DA
+8798
+8799
+81E6
+81BF
+81BE
+FA40
+FA41
+FA42
+FA43
+FA44
+FA45
+FA46
+FA47
+FA48
+FA49
+8754
+8755
+8756
+8757
+8758
+8759
+875A
+875B
+875C
+875D
+81CA
+FA55
+FA56
+FA57
+878A
+8782
+8784
+81E6
+FA5C
+FA5D
+FA5E
+FA5F
+FA60
+FA61
+FA62
+FA63
+FA64
+FA65
+FA66
+FA67
+FA68
+FA69
+FA6A
+FA6B
+FA6C
+FA6D
+FA6E
+FA6F
+FA70
+FA71
+FA72
+FA73
+FA74
+FA75
+FA76
+FA77
+FA78
+FA79
+FA7A
+FA7B
+FA7C
+FA7D
+FA7E
+FA80
+FA81
+FA82
+FA83
+FA84
+FA85
+FA86
+FA87
+FA88
+FA89
+FA8A
+FA8B
+FA8C
+FA8D
+FA8E
+FA8F
+FA90
+FA91
+FA92
+FA93
+FA94
+FA95
+FA96
+FA97
+FA98
+FA99
+FA9A
+FA9B
+FA9C
+FA9D
+FA9E
+FA9F
+FAA0
+FAA1
+FAA2
+FAA3
+FAA4
+FAA5
+FAA6
+FAA7
+FAA8
+FAA9
+FAAA
+FAAB
+FAAC
+FAAD
+FAAE
+FAAF
+FAB0
+FAB1
+FAB2
+FAB3
+FAB4
+FAB5
+FAB6
+FAB7
+FAB8
+FAB9
+FABA
+FABB
+FABC
+FABD
+FABE
+FABF
+FAC0
+FAC1
+FAC2
+FAC3
+FAC4
+FAC5
+FAC6
+FAC7
+FAC8
+FAC9
+FACA
+FACB
+FACC
+FACD
+FACE
+FACF
+FAD0
+FAD1
+FAD2
+FAD3
+FAD4
+FAD5
+FAD6
+FAD7
+FAD8
+FAD9
+FADA
+FADB
+FADC
+FADD
+FADE
+FADF
+FAE0
+FAE1
+FAE2
+FAE3
+FAE4
+FAE5
+FAE6
+FAE7
+FAE8
+FAE9
+FAEA
+FAEB
+FAEC
+FAED
+FAEE
+FAEF
+FAF0
+FAF1
+FAF2
+FAF3
+FAF4
+FAF5
+FAF6
+FAF7
+FAF8
+FAF9
+FAFA
+FAFB
+FAFC
+FB40
+FB41
+FB42
+FB43
+FB44
+FB45
+FB46
+FB47
+FB48
+FB49
+FB4A
+FB4B
+FB4C
+FB4D
+FB4E
+FB4F
+FB50
+FB51
+FB52
+FB53
+FB54
+FB55
+FB56
+FB57
+FB58
+FB59
+FB5A
+FB5B
+FB5C
+FB5D
+FB5E
+FB5F
+FB60
+FB61
+FB62
+FB63
+FB64
+FB65
+FB66
+FB67
+FB68
+FB69
+FB6A
+FB6B
+FB6C
+FB6D
+FB6E
+FB6F
+FB70
+FB71
+FB72
+FB73
+FB74
+FB75
+FB76
+FB77
+FB78
+FB79
+FB7A
+FB7B
+FB7C
+FB7D
+FB7E
+FB80
+FB81
+FB82
+FB83
+FB84
+FB85
+FB86
+FB87
+FB88
+FB89
+FB8A
+FB8B
+FB8C
+FB8D
+FB8E
+FB8F
+FB90
+FB91
+FB92
+FB93
+FB94
+FB95
+FB96
+FB97
+FB98
+FB99
+FB9A
+FB9B
+FB9C
+FB9D
+FB9E
+FB9F
+FBA0
+FBA1
+FBA2
+FBA3
+FBA4
+FBA5
+FBA6
+FBA7
+FBA8
+FBA9
+FBAA
+FBAB
+FBAC
+FBAD
+FBAE
+FBAF
+FBB0
+FBB1
+FBB2
+FBB3
+FBB4
+FBB5
+FBB6
+FBB7
+FBB8
+FBB9
+FBBA
+FBBB
+FBBC
+FBBD
+FBBE
+FBBF
+FBC0
+FBC1
+FBC2
+FBC3
+FBC4
+FBC5
+FBC6
+FBC7
+FBC8
+FBC9
+FBCA
+FBCB
+FBCC
+FBCD
+FBCE
+FBCF
+FBD0
+FBD1
+FBD2
+FBD3
+FBD4
+FBD5
+FBD6
+FBD7
+FBD8
+FBD9
+FBDA
+FBDB
+FBDC
+FBDD
+FBDE
+FBDF
+FBE0
+FBE1
+FBE2
+FBE3
+FBE4
+FBE5
+FBE6
+FBE7
+FBE8
+FBE9
+FBEA
+FBEB
+FBEC
+FBED
+FBEE
+FBEF
+FBF0
+FBF1
+FBF2
+FBF3
+FBF4
+FBF5
+FBF6
+FBF7
+FBF8
+FBF9
+FBFA
+FBFB
+FBFC
+FC40
+FC41
+FC42
+FC43
+FC44
+FC45
+FC46
+FC47
+FC48
+FC49
+FC4A
+FC4B
+F040
+F041
+F042
+F043
+F044
+F045
+F046
+F047
+F048
+F049
+F04A
+F04B
+F04C
+F04D
+F04E
+F04F
+F050
+F051
+F052
+F053
+F054
+F055
+F056
+F057
+F058
+F059
+F05A
+F05B
+F05C
+F05D
+F05E
+F05F
+F060
+F061
+F062
+F063
+F064
+F065
+F066
+F067
+F068
+F069
+F06A
+F06B
+F06C
+F06D
+F06E
+F06F
+F070
+F071
+F072
+F073
+F074
+F075
+F076
+F077
+F078
+F079
+F07A
+F07B
+F07C
+F07D
+F07E
+F080
+F081
+F082
+F083
+F084
+F085
+F086
+F087
+F088
+F089
+F08A
+F08B
+F08C
+F08D
+F08E
+F08F
+F090
+F091
+F092
+F093
+F094
+F095
+F096
+F097
+F098
+F099
+F09A
+F09B
+F09C
+F09D
+F09E
+F09F
+F0A0
+F0A1
+F0A2
+F0A3
+F0A4
+F0A5
+F0A6
+F0A7
+F0A8
+F0A9
+F0AA
+F0AB
+F0AC
+F0AD
+F0AE
+F0AF
+F0B0
+F0B1
+F0B2
+F0B3
+F0B4
+F0B5
+F0B6
+F0B7
+F0B8
+F0B9
+F0BA
+F0BB
+F0BC
+F0BD
+F0BE
+F0BF
+F0C0
+F0C1
+F0C2
+F0C3
+F0C4
+F0C5
+F0C6
+F0C7
+F0C8
+F0C9
+F0CA
+F0CB
+F0CC
+F0CD
+F0CE
+F0CF
+F0D0
+F0D1
+F0D2
+F0D3
+F0D4
+F0D5
+F0D6
+F0D7
+F0D8
+F0D9
+F0DA
+F0DB
+F0DC
+F0DD
+F0DE
+F0DF
+F0E0
+F0E1
+F0E2
+F0E3
+F0E4
+F0E5
+F0E6
+F0E7
+F0E8
+F0E9
+F0EA
+F0EB
+F0EC
+F0ED
+F0EE
+F0EF
+F0F0
+F0F1
+F0F2
+F0F3
+F0F4
+F0F5
+F0F6
+F0F7
+F0F8
+F0F9
+F0FA
+F0FB
+F0FC
+F140
+F141
+F142
+F143
+F144
+F145
+F146
+F147
+F148
+F149
+F14A
+F14B
+F14C
+F14D
+F14E
+F14F
+F150
+F151
+F152
+F153
+F154
+F155
+F156
+F157
+F158
+F159
+F15A
+F15B
+F15C
+F15D
+F15E
+F15F
+F160
+F161
+F162
+F163
+F164
+F165
+F166
+F167
+F168
+F169
+F16A
+F16B
+F16C
+F16D
+F16E
+F16F
+F170
+F171
+F172
+F173
+F174
+F175
+F176
+F177
+F178
+F179
+F17A
+F17B
+F17C
+F17D
+F17E
+F180
+F181
+F182
+F183
+F184
+F185
+F186
+F187
+F188
+F189
+F18A
+F18B
+F18C
+F18D
+F18E
+F18F
+F190
+F191
+F192
+F193
+F194
+F195
+F196
+F197
+F198
+F199
+F19A
+F19B
+F19C
+F19D
+F19E
+F19F
+F1A0
+F1A1
+F1A2
+F1A3
+F1A4
+F1A5
+F1A6
+F1A7
+F1A8
+F1A9
+F1AA
+F1AB
+F1AC
+F1AD
+F1AE
+F1AF
+F1B0
+F1B1
+F1B2
+F1B3
+F1B4
+F1B5
+F1B6
+F1B7
+F1B8
+F1B9
+F1BA
+F1BB
+F1BC
+F1BD
+F1BE
+F1BF
+F1C0
+F1C1
+F1C2
+F1C3
+F1C4
+F1C5
+F1C6
+F1C7
+F1C8
+F1C9
+F1CA
+F1CB
+F1CC
+F1CD
+F1CE
+F1CF
+F1D0
+F1D1
+F1D2
+F1D3
+F1D4
+F1D5
+F1D6
+F1D7
+F1D8
+F1D9
+F1DA
+F1DB
+F1DC
+F1DD
+F1DE
+F1DF
+F1E0
+F1E1
+F1E2
+F1E3
+F1E4
+F1E5
+F1E6
+F1E7
+F1E8
+F1E9
+F1EA
+F1EB
+F1EC
+F1ED
+F1EE
+F1EF
+F1F0
+F1F1
+F1F2
+F1F3
+F1F4
+F1F5
+F1F6
+F1F7
+F1F8
+F1F9
+F1FA
+F1FB
+F1FC
+F240
+F241
+F242
+F243
+F244
+F245
+F246
+F247
+F248
+F249
+F24A
+F24B
+F24C
+F24D
+F24E
+F24F
+F250
+F251
+F252
+F253
+F254
+F255
+F256
+F257
+F258
+F259
+F25A
+F25B
+F25C
+F25D
+F25E
+F25F
+F260
+F261
+F262
+F263
+F264
+F265
+F266
+F267
+F268
+F269
+F26A
+F26B
+F26C
+F26D
+F26E
+F26F
+F270
+F271
+F272
+F273
+F274
+F275
+F276
+F277
+F278
+F279
+F27A
+F27B
+F27C
+F27D
+F27E
+F280
+F281
+F282
+F283
+F284
+F285
+F286
+F287
+F288
+F289
+F28A
+F28B
+F28C
+F28D
+F28E
+F28F
+F290
+F291
+F292
+F293
+F294
+F295
+F296
+F297
+F298
+F299
+F29A
+F29B
+F29C
+F29D
+F29E
+F29F
+F2A0
+F2A1
+F2A2
+F2A3
+F2A4
+F2A5
+F2A6
+F2A7
+F2A8
+F2A9
+F2AA
+F2AB
+F2AC
+F2AD
+F2AE
+F2AF
+F2B0
+F2B1
+F2B2
+F2B3
+F2B4
+F2B5
+F2B6
+F2B7
+F2B8
+F2B9
+F2BA
+F2BB
+F2BC
+F2BD
+F2BE
+F2BF
+F2C0
+F2C1
+F2C2
+F2C3
+F2C4
+F2C5
+F2C6
+F2C7
+F2C8
+F2C9
+F2CA
+F2CB
+F2CC
+F2CD
+F2CE
+F2CF
+F2D0
+F2D1
+F2D2
+F2D3
+F2D4
+F2D5
+F2D6
+F2D7
+F2D8
+F2D9
+F2DA
+F2DB
+F2DC
+F2DD
+F2DE
+F2DF
+F2E0
+F2E1
+F2E2
+F2E3
+F2E4
+F2E5
+F2E6
+F2E7
+F2E8
+F2E9
+F2EA
+F2EB
+F2EC
+F2ED
+F2EE
+F2EF
+F2F0
+F2F1
+F2F2
+F2F3
+F2F4
+F2F5
+F2F6
+F2F7
+F2F8
+F2F9
+F2FA
+F2FB
+F2FC
+F340
+F341
+F342
+F343
+F344
+F345
+F346
+F347
+F348
+F349
+F34A
+F34B
+F34C
+F34D
+F34E
+F34F
+F350
+F351
+F352
+F353
+F354
+F355
+F356
+F357
+F358
+F359
+F35A
+F35B
+F35C
+F35D
+F35E
+F35F
+F360
+F361
+F362
+F363
+F364
+F365
+F366
+F367
+F368
+F369
+F36A
+F36B
+F36C
+F36D
+F36E
+F36F
+F370
+F371
+F372
+F373
+F374
+F375
+F376
+F377
+F378
+F379
+F37A
+F37B
+F37C
+F37D
+F37E
+F380
+F381
+F382
+F383
+F384
+F385
+F386
+F387
+F388
+F389
+F38A
+F38B
+F38C
+F38D
+F38E
+F38F
+F390
+F391
+F392
+F393
+F394
+F395
+F396
+F397
+F398
+F399
+F39A
+F39B
+F39C
+F39D
+F39E
+F39F
+F3A0
+F3A1
+F3A2
+F3A3
+F3A4
+F3A5
+F3A6
+F3A7
+F3A8
+F3A9
+F3AA
+F3AB
+F3AC
+F3AD
+F3AE
+F3AF
+F3B0
+F3B1
+F3B2
+F3B3
+F3B4
+F3B5
+F3B6
+F3B7
+F3B8
+F3B9
+F3BA
+F3BB
+F3BC
+F3BD
+F3BE
+F3BF
+F3C0
+F3C1
+F3C2
+F3C3
+F3C4
+F3C5
+F3C6
+F3C7
+F3C8
+F3C9
+F3CA
+F3CB
+F3CC
+F3CD
+F3CE
+F3CF
+F3D0
+F3D1
+F3D2
+F3D3
+F3D4
+F3D5
+F3D6
+F3D7
+F3D8
+F3D9
+F3DA
+F3DB
+F3DC
+F3DD
+F3DE
+F3DF
+F3E0
+F3E1
+F3E2
+F3E3
+F3E4
+F3E5
+F3E6
+F3E7
+F3E8
+F3E9
+F3EA
+F3EB
+F3EC
+F3ED
+F3EE
+F3EF
+F3F0
+F3F1
+F3F2
+F3F3
+F3F4
+F3F5
+F3F6
+F3F7
+F3F8
+F3F9
+F3FA
+F3FB
+F3FC
+F440
+F441
+F442
+F443
+F444
+F445
+F446
+F447
+F448
+F449
+F44A
+F44B
+F44C
+F44D
+F44E
+F44F
+F450
+F451
+F452
+F453
+F454
+F455
+F456
+F457
+F458
+F459
+F45A
+F45B
+F45C
+F45D
+F45E
+F45F
+F460
+F461
+F462
+F463
+F464
+F465
+F466
+F467
+F468
+F469
+F46A
+F46B
+F46C
+F46D
+F46E
+F46F
+F470
+F471
+F472
+F473
+F474
+F475
+F476
+F477
+F478
+F479
+F47A
+F47B
+F47C
+F47D
+F47E
+F480
+F481
+F482
+F483
+F484
+F485
+F486
+F487
+F488
+F489
+F48A
+F48B
+F48C
+F48D
+F48E
+F48F
+F490
+F491
+F492
+F493
+F494
+F495
+F496
+F497
+F498
+F499
+F49A
+F49B
+F49C
+F49D
+F49E
+F49F
+F4A0
+F4A1
+F4A2
+F4A3
+F4A4
+F4A5
+F4A6
+F4A7
+F4A8
+F4A9
+F4AA
+F4AB
+F4AC
+F4AD
+F4AE
+F4AF
+F4B0
+F4B1
+F4B2
+F4B3
+F4B4
+F4B5
+F4B6
+F4B7
+F4B8
+F4B9
+F4BA
+F4BB
+F4BC
+F4BD
+F4BE
+F4BF
+F4C0
+F4C1
+F4C2
+F4C3
+F4C4
+F4C5
+F4C6
+F4C7
+F4C8
+F4C9
+F4CA
+F4CB
+F4CC
+F4CD
+F4CE
+F4CF
+F4D0
+F4D1
+F4D2
+F4D3
+F4D4
+F4D5
+F4D6
+F4D7
+F4D8
+F4D9
+F4DA
+F4DB
+F4DC
+F4DD
+F4DE
+F4DF
+F4E0
+F4E1
+F4E2
+F4E3
+F4E4
+F4E5
+F4E6
+F4E7
+F4E8
+F4E9
+F4EA
+F4EB
+F4EC
+F4ED
+F4EE
+F4EF
+F4F0
+F4F1
+F4F2
+F4F3
+F4F4
+F4F5
+F4F6
+F4F7
+F4F8
+F4F9
+F4FA
+F4FB
+F4FC
+F540
+F541
+F542
+F543
+F544
+F545
+F546
+F547
+F548
+F549
+F54A
+F54B
+F54C
+F54D
+F54E
+F54F
+F550
+F551
+F552
+F553
+F554
+F555
+F556
+F557
+F558
+F559
+F55A
+F55B
+F55C
+F55D
+F55E
+F55F
+F560
+F561
+F562
+F563
+F564
+F565
+F566
+F567
+F568
+F569
+F56A
+F56B
+F56C
+F56D
+F56E
+F56F
+F570
+F571
+F572
+F573
+F574
+F575
+F576
+F577
+F578
+F579
+F57A
+F57B
+F57C
+F57D
+F57E
+F580
+F581
+F582
+F583
+F584
+F585
+F586
+F587
+F588
+F589
+F58A
+F58B
+F58C
+F58D
+F58E
+F58F
+F590
+F591
+F592
+F593
+F594
+F595
+F596
+F597
+F598
+F599
+F59A
+F59B
+F59C
+F59D
+F59E
+F59F
+F5A0
+F5A1
+F5A2
+F5A3
+F5A4
+F5A5
+F5A6
+F5A7
+F5A8
+F5A9
+F5AA
+F5AB
+F5AC
+F5AD
+F5AE
+F5AF
+F5B0
+F5B1
+F5B2
+F5B3
+F5B4
+F5B5
+F5B6
+F5B7
+F5B8
+F5B9
+F5BA
+F5BB
+F5BC
+F5BD
+F5BE
+F5BF
+F5C0
+F5C1
+F5C2
+F5C3
+F5C4
+F5C5
+F5C6
+F5C7
+F5C8
+F5C9
+F5CA
+F5CB
+F5CC
+F5CD
+F5CE
+F5CF
+F5D0
+F5D1
+F5D2
+F5D3
+F5D4
+F5D5
+F5D6
+F5D7
+F5D8
+F5D9
+F5DA
+F5DB
+F5DC
+F5DD
+F5DE
+F5DF
+F5E0
+F5E1
+F5E2
+F5E3
+F5E4
+F5E5
+F5E6
+F5E7
+F5E8
+F5E9
+F5EA
+F5EB
+F5EC
+F5ED
+F5EE
+F5EF
+F5F0
+F5F1
+F5F2
+F5F3
+F5F4
+F5F5
+F5F6
+F5F7
+F5F8
+F5F9
+F5FA
+F5FB
+F5FC
+F640
+F641
+F642
+F643
+F644
+F645
+F646
+F647
+F648
+F649
+F64A
+F64B
+F64C
+F64D
+F64E
+F64F
+F650
+F651
+F652
+F653
+F654
+F655
+F656
+F657
+F658
+F659
+F65A
+F65B
+F65C
+F65D
+F65E
+F65F
+F660
+F661
+F662
+F663
+F664
+F665
+F666
+F667
+F668
+F669
+F66A
+F66B
+F66C
+F66D
+F66E
+F66F
+F670
+F671
+F672
+F673
+F674
+F675
+F676
+F677
+F678
+F679
+F67A
+F67B
+F67C
+F67D
+F67E
+F680
+F681
+F682
+F683
+F684
+F685
+F686
+F687
+F688
+F689
+F68A
+F68B
+F68C
+F68D
+F68E
+F68F
+F690
+F691
+F692
+F693
+F694
+F695
+F696
+F697
+F698
+F699
+F69A
+F69B
+F69C
+F69D
+F69E
+F69F
+F6A0
+F6A1
+F6A2
+F6A3
+F6A4
+F6A5
+F6A6
+F6A7
+F6A8
+F6A9
+F6AA
+F6AB
+F6AC
+F6AD
+F6AE
+F6AF
+F6B0
+F6B1
+F6B2
+F6B3
+F6B4
+F6B5
+F6B6
+F6B7
+F6B8
+F6B9
+F6BA
+F6BB
+F6BC
+F6BD
+F6BE
+F6BF
+F6C0
+F6C1
+F6C2
+F6C3
+F6C4
+F6C5
+F6C6
+F6C7
+F6C8
+F6C9
+F6CA
+F6CB
+F6CC
+F6CD
+F6CE
+F6CF
+F6D0
+F6D1
+F6D2
+F6D3
+F6D4
+F6D5
+F6D6
+F6D7
+F6D8
+F6D9
+F6DA
+F6DB
+F6DC
+F6DD
+F6DE
+F6DF
+F6E0
+F6E1
+F6E2
+F6E3
+F6E4
+F6E5
+F6E6
+F6E7
+F6E8
+F6E9
+F6EA
+F6EB
+F6EC
+F6ED
+F6EE
+F6EF
+F6F0
+F6F1
+F6F2
+F6F3
+F6F4
+F6F5
+F6F6
+F6F7
+F6F8
+F6F9
+F6FA
+F6FB
+F6FC
+F740
+F741
+F742
+F743
+F744
+F745
+F746
+F747
+F748
+F749
+F74A
+F74B
+F74C
+F74D
+F74E
+F74F
+F750
+F751
+F752
+F753
+F754
+F755
+F756
+F757
+F758
+F759
+F75A
+F75B
+F75C
+F75D
+F75E
+F75F
+F760
+F761
+F762
+F763
+F764
+F765
+F766
+F767
+F768
+F769
+F76A
+F76B
+F76C
+F76D
+F76E
+F76F
+F770
+F771
+F772
+F773
+F774
+F775
+F776
+F777
+F778
+F779
+F77A
+F77B
+F77C
+F77D
+F77E
+F780
+F781
+F782
+F783
+F784
+F785
+F786
+F787
+F788
+F789
+F78A
+F78B
+F78C
+F78D
+F78E
+F78F
+F790
+F791
+F792
+F793
+F794
+F795
+F796
+F797
+F798
+F799
+F79A
+F79B
+F79C
+F79D
+F79E
+F79F
+F7A0
+F7A1
+F7A2
+F7A3
+F7A4
+F7A5
+F7A6
+F7A7
+F7A8
+F7A9
+F7AA
+F7AB
+F7AC
+F7AD
+F7AE
+F7AF
+F7B0
+F7B1
+F7B2
+F7B3
+F7B4
+F7B5
+F7B6
+F7B7
+F7B8
+F7B9
+F7BA
+F7BB
+F7BC
+F7BD
+F7BE
+F7BF
+F7C0
+F7C1
+F7C2
+F7C3
+F7C4
+F7C5
+F7C6
+F7C7
+F7C8
+F7C9
+F7CA
+F7CB
+F7CC
+F7CD
+F7CE
+F7CF
+F7D0
+F7D1
+F7D2
+F7D3
+F7D4
+F7D5
+F7D6
+F7D7
+F7D8
+F7D9
+F7DA
+F7DB
+F7DC
+F7DD
+F7DE
+F7DF
+F7E0
+F7E1
+F7E2
+F7E3
+F7E4
+F7E5
+F7E6
+F7E7
+F7E8
+F7E9
+F7EA
+F7EB
+F7EC
+F7ED
+F7EE
+F7EF
+F7F0
+F7F1
+F7F2
+F7F3
+F7F4
+F7F5
+F7F6
+F7F7
+F7F8
+F7F9
+F7FA
+F7FB
+F7FC
+F840
+F841
+F842
+F843
+F844
+F845
+F846
+F847
+F848
+F849
+F84A
+F84B
+F84C
+F84D
+F84E
+F84F
+F850
+F851
+F852
+F853
+F854
+F855
+F856
+F857
+F858
+F859
+F85A
+F85B
+F85C
+F85D
+F85E
+F85F
+F860
+F861
+F862
+F863
+F864
+F865
+F866
+F867
+F868
+F869
+F86A
+F86B
+F86C
+F86D
+F86E
+F86F
+F870
+F871
+F872
+F873
+F874
+F875
+F876
+F877
+F878
+F879
+F87A
+F87B
+F87C
+F87D
+F87E
+F880
+F881
+F882
+F883
+F884
+F885
+F886
+F887
+F888
+F889
+F88A
+F88B
+F88C
+F88D
+F88E
+F88F
+F890
+F891
+F892
+F893
+F894
+F895
+F896
+F897
+F898
+F899
+F89A
+F89B
+F89C
+F89D
+F89E
+F89F
+F8A0
+F8A1
+F8A2
+F8A3
+F8A4
+F8A5
+F8A6
+F8A7
+F8A8
+F8A9
+F8AA
+F8AB
+F8AC
+F8AD
+F8AE
+F8AF
+F8B0
+F8B1
+F8B2
+F8B3
+F8B4
+F8B5
+F8B6
+F8B7
+F8B8
+F8B9
+F8BA
+F8BB
+F8BC
+F8BD
+F8BE
+F8BF
+F8C0
+F8C1
+F8C2
+F8C3
+F8C4
+F8C5
+F8C6
+F8C7
+F8C8
+F8C9
+F8CA
+F8CB
+F8CC
+F8CD
+F8CE
+F8CF
+F8D0
+F8D1
+F8D2
+F8D3
+F8D4
+F8D5
+F8D6
+F8D7
+F8D8
+F8D9
+F8DA
+F8DB
+F8DC
+F8DD
+F8DE
+F8DF
+F8E0
+F8E1
+F8E2
+F8E3
+F8E4
+F8E5
+F8E6
+F8E7
+F8E8
+F8E9
+F8EA
+F8EB
+F8EC
+F8ED
+F8EE
+F8EF
+F8F0
+F8F1
+F8F2
+F8F3
+F8F4
+F8F5
+F8F6
+F8F7
+F8F8
+F8F9
+F8FA
+F8FB
+F8FC
+F940
+F941
+F942
+F943
+F944
+F945
+F946
+F947
+F948
+F949
+F94A
+F94B
+F94C
+F94D
+F94E
+F94F
+F950
+F951
+F952
+F953
+F954
+F955
+F956
+F957
+F958
+F959
+F95A
+F95B
+F95C
+F95D
+F95E
+F95F
+F960
+F961
+F962
+F963
+F964
+F965
+F966
+F967
+F968
+F969
+F96A
+F96B
+F96C
+F96D
+F96E
+F96F
+F970
+F971
+F972
+F973
+F974
+F975
+F976
+F977
+F978
+F979
+F97A
+F97B
+F97C
+F97D
+F97E
+F980
+F981
+F982
+F983
+F984
+F985
+F986
+F987
+F988
+F989
+F98A
+F98B
+F98C
+F98D
+F98E
+F98F
+F990
+F991
+F992
+F993
+F994
+F995
+F996
+F997
+F998
+F999
+F99A
+F99B
+F99C
+F99D
+F99E
+F99F
+F9A0
+F9A1
+F9A2
+F9A3
+F9A4
+F9A5
+F9A6
+F9A7
+F9A8
+F9A9
+F9AA
+F9AB
+F9AC
+F9AD
+F9AE
+F9AF
+F9B0
+F9B1
+F9B2
+F9B3
+F9B4
+F9B5
+F9B6
+F9B7
+F9B8
+F9B9
+F9BA
+F9BB
+F9BC
+F9BD
+F9BE
+F9BF
+F9C0
+F9C1
+F9C2
+F9C3
+F9C4
+F9C5
+F9C6
+F9C7
+F9C8
+F9C9
+F9CA
+F9CB
+F9CC
+F9CD
+F9CE
+F9CF
+F9D0
+F9D1
+F9D2
+F9D3
+F9D4
+F9D5
+F9D6
+F9D7
+F9D8
+F9D9
+F9DA
+F9DB
+F9DC
+F9DD
+F9DE
+F9DF
+F9E0
+F9E1
+F9E2
+F9E3
+F9E4
+F9E5
+F9E6
+F9E7
+F9E8
+F9E9
+F9EA
+F9EB
+F9EC
+F9ED
+F9EE
+F9EF
+F9F0
+F9F1
+F9F2
+F9F3
+F9F4
+F9F5
+F9F6
+F9F7
+F9F8
+F9F9
+F9FA
+F9FB
+F9FC
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE t3;
+DROP TABLE t4;
+CREATE TABLE t1(c1 varchar(10)) default character set = eucjpms;
+insert into t1 values(_ucs2 0x00F7);
+insert into t1 values(_eucjpms 0xA1E0);
+insert into t1 values(_ujis 0xA1E0);
+insert into t1 values(_sjis 0x8180);
+insert into t1 values(_cp932 0x8180);
+SELECT HEX(c1) FROM t1;
+HEX(c1)
+A1E0
+A1E0
+A1E0
+A1E0
+A1E0
+DROP TABLE t1;
+SET collation_connection='eucjpms_japanese_ci';
+create table t1 select repeat('a',4000) a;
+delete from t1;
+insert into t1 values ('a'), ('a '), ('a\t');
+select collation(a),hex(a) from t1 order by a;
+collation(a) hex(a)
+eucjpms_japanese_ci 6109
+eucjpms_japanese_ci 61
+eucjpms_japanese_ci 6120
+drop table t1;
+SET collation_connection='eucjpms_bin';
+create table t1 select repeat('a',4000) a;
+delete from t1;
+insert into t1 values ('a'), ('a '), ('a\t');
+select collation(a),hex(a) from t1 order by a;
+collation(a) hex(a)
+eucjpms_bin 6109
+eucjpms_bin 61
+eucjpms_bin 6120
+drop table t1;
+select hex(convert(_eucjpms 0xA5FE41 using ucs2));
+hex(convert(_eucjpms 0xA5FE41 using ucs2))
+003F0041
+select hex(convert(_eucjpms 0x8FABF841 using ucs2));
+hex(convert(_eucjpms 0x8FABF841 using ucs2))
+003F0041
diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result
index 2d9f8d217e6..b9619370d4c 100644
--- a/mysql-test/r/ctype_euckr.result
+++ b/mysql-test/r/ctype_euckr.result
@@ -54,6 +54,8 @@ location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
select cast(a as char(1)) from t1;
cast(a as char(1))
diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result
index 04c318e83a8..90c94c3b299 100644
--- a/mysql-test/r/ctype_gb2312.result
+++ b/mysql-test/r/ctype_gb2312.result
@@ -54,6 +54,8 @@ location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
select cast(a as char(1)) from t1;
cast(a as char(1))
diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result
index 064c0bc2acf..fe90c7bff29 100644
--- a/mysql-test/r/ctype_gbk.result
+++ b/mysql-test/r/ctype_gbk.result
@@ -54,6 +54,8 @@ location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
select cast(a as char(1)) from t1;
cast(a as char(1))
@@ -179,3 +181,13 @@ DROP TABLE t1;
select hex(convert(_gbk 0xA14041 using ucs2));
hex(convert(_gbk 0xA14041 using ucs2))
003F0041
+create table t1 (c1 text not null, c2 text not null) character set gbk;
+alter table t1 change c1 c1 mediumtext character set gbk not null;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` mediumtext NOT NULL,
+ `c2` text NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=gbk
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result
index f8e07e1eb6f..0c0b7f81b69 100644
--- a/mysql-test/r/ctype_latin1.result
+++ b/mysql-test/r/ctype_latin1.result
@@ -391,3 +391,7 @@ ABC €°§ß²³µ~ äöüÄÖÜ áéíóú ÀÈÌÒÙ @ abc
SELECT convert(@str collate latin1_swedish_ci using utf8);
convert(@str collate latin1_swedish_ci using utf8)
ABC €°§ß²³µ~ äöüÄÖÜ áéíóú ÀÈÌÒÙ @ abc
+select hex(cast(_ascii 0x7f as char(1) character set latin1));
+hex(cast(_ascii 0x7f as char(1) character set latin1))
+7F
+End of 5.0 tests
diff --git a/mysql-test/r/ctype_latin1_de.result b/mysql-test/r/ctype_latin1_de.result
index f57d8c191bf..f60dc175cd6 100644
--- a/mysql-test/r/ctype_latin1_de.result
+++ b/mysql-test/r/ctype_latin1_de.result
@@ -220,11 +220,11 @@ select * from t1 where match a against ("te*" in boolean mode)+0;
a
test
drop table t1;
-create table t1 (word varchar(255) not null, word2 varchar(255) not null, index(word));
+create table t1 (word varchar(255) not null, word2 varchar(255) not null default '', index(word));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `word` varchar(255) collate latin1_german2_ci NOT NULL default '',
+ `word` varchar(255) collate latin1_german2_ci NOT NULL,
`word2` varchar(255) collate latin1_german2_ci NOT NULL default '',
KEY `word` (`word`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci
@@ -338,3 +338,9 @@ ss
ss
ß
DROP TABLE t1;
+create table t1 (s1 char(5) character set latin1 collate latin1_german2_ci);
+insert into t1 values (0xf6) /* this is o-umlaut */;
+select * from t1 where length(s1)=1 and s1='oe';
+s1
+drop table t1;
diff --git a/mysql-test/r/ctype_latin2_ch.result b/mysql-test/r/ctype_latin2_ch.result
index 2b3765c07c4..5b607872737 100644
--- a/mysql-test/r/ctype_latin2_ch.result
+++ b/mysql-test/r/ctype_latin2_ch.result
@@ -28,3 +28,4 @@ select * from t1 ignore index (primary) where tt like 'AA%';
id tt
select * from t1 where tt like '%AA%';
id tt
+drop table t1;
diff --git a/mysql-test/r/ctype_ldml.result b/mysql-test/r/ctype_ldml.result
new file mode 100644
index 00000000000..f3d3ff700f0
--- /dev/null
+++ b/mysql-test/r/ctype_ldml.result
@@ -0,0 +1,296 @@
+drop table if exists t1;
+set names utf8;
+show variables like 'character_sets_dir%';
+Variable_name Value
+character_sets_dir MYSQL_TEST_DIR/std_data/
+show collation like 'utf8_test_ci';
+Collation Charset Id Default Compiled Sortlen
+utf8_test_ci utf8 240 8
+create table t1 (c1 char(1) character set utf8 collate utf8_test_ci);
+insert into t1 values ('a');
+select * from t1 where c1='b';
+c1
+a
+drop table t1;
+show collation like 'ucs2_test_ci';
+Collation Charset Id Default Compiled Sortlen
+ucs2_test_ci ucs2 241 8
+create table t1 (c1 char(1) character set ucs2 collate ucs2_test_ci);
+insert into t1 values ('a');
+select * from t1 where c1='b';
+c1
+a
+drop table t1;
+show collation like 'ucs2_vn_ci';
+Collation Charset Id Default Compiled Sortlen
+ucs2_vn_ci ucs2 242 8
+create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
+insert into t1 values (0x0061),(0x0041),(0x00E0),(0x00C0),(0x1EA3),(0x1EA2),
+(0x00E3),(0x00C3),(0x00E1),(0x00C1),(0x1EA1),(0x1EA0);
+insert into t1 values (0x0103),(0x0102),(0x1EB1),(0x1EB0),(0x1EB3),(0x1EB2),
+(0x1EB5),(0x1EB4),(0x1EAF),(0x1EAE),(0x1EB7),(0x1EB6);
+insert into t1 values (0x00E2),(0x00C2),(0x1EA7),(0x1EA6),(0x1EA9),(0x1EA8),
+(0x1EAB),(0x1EAA),(0x1EA5),(0x1EA4),(0x1EAD),(0x1EAC);
+insert into t1 values ('b'),('B'),('c'),('C');
+insert into t1 values ('d'),('D'),(0x0111),(0x0110);
+insert into t1 values (0x0065),(0x0045),(0x00E8),(0x00C8),(0x1EBB),(0x1EBA),
+(0x1EBD),(0x1EBC),(0x00E9),(0x00C9),(0x1EB9),(0x1EB8);
+insert into t1 values (0x00EA),(0x00CA),(0x1EC1),(0x1EC0),(0x1EC3),(0x1EC2),
+(0x1EC5),(0x1EC4),(0x1EBF),(0x1EBE),(0x1EC7),(0x1EC6);
+insert into t1 values ('g'),('G'),('h'),('H');
+insert into t1 values (0x0069),(0x0049),(0x00EC),(0x00CC),(0x1EC9),(0x1EC8),
+(0x0129),(0x0128),(0x00ED),(0x00CD),(0x1ECB),(0x1ECA);
+insert into t1 values ('k'),('K'),('l'),('L'),('m'),('M');
+insert into t1 values (0x006F),(0x004F),(0x00F2),(0x00D2),(0x1ECF),(0x1ECE),
+(0x00F5),(0x00D5),(0x00F3),(0x00D3),(0x1ECD),(0x1ECC);
+insert into t1 values (0x00F4),(0x00D4),(0x1ED3),(0x1ED2),(0x1ED5),(0x1ED4),
+(0x1ED7),(0x1ED6),(0x1ED1),(0x1ED0),(0x1ED9),(0x1ED8);
+insert into t1 values (0x01A1),(0x01A0),(0x1EDD),(0x1EDC),(0x1EDF),(0x1EDE),
+(0x1EE1),(0x1EE0),(0x1EDB),(0x1EDA),(0x1EE3),(0x1EE2);
+insert into t1 values ('p'),('P'),('q'),('Q'),('r'),('R'),('s'),('S'),('t'),('T');
+insert into t1 values (0x0075),(0x0055),(0x00F9),(0x00D9),(0x1EE7),(0x1EE6),
+(0x0169),(0x0168),(0x00FA),(0x00DA),(0x1EE5),(0x1EE4);
+insert into t1 values (0x01B0),(0x01AF),(0x1EEB),(0x1EEA),(0x1EED),(0x1EEC),
+(0x1EEF),(0x1EEE),(0x1EE9),(0x1EE8),(0x1EF1),(0x1EF0);
+insert into t1 values ('v'),('V'),('x'),('X');
+insert into t1 values (0x0079),(0x0059),(0x1EF3),(0x1EF2),(0x1EF7),(0x1EF6),
+(0x1EF9),(0x1EF8),(0x00FD),(0x00DD),(0x1EF5),(0x1EF4);
+select hex(c1) as h, c1 from t1 order by c1, h;
+h c1
+0041 A
+0061 a
+00C0 À
+00C1 Ã
+00C3 Ã
+00E0 à
+00E1 á
+00E3 ã
+1EA0 Ạ
+1EA1 ạ
+1EA2 Ả
+1EA3 ả
+0102 Ä‚
+0103 ă
+1EAE Ắ
+1EAF ắ
+1EB0 Ằ
+1EB1 ằ
+1EB2 Ẳ
+1EB3 ẳ
+1EB4 Ẵ
+1EB5 ẵ
+1EB6 Ặ
+1EB7 ặ
+00C2 Â
+00E2 â
+1EA4 Ấ
+1EA5 ấ
+1EA6 Ầ
+1EA7 ầ
+1EA8 Ẩ
+1EA9 ẩ
+1EAA Ẫ
+1EAB ẫ
+1EAC Ậ
+1EAD ậ
+0042 B
+0062 b
+0043 C
+0063 c
+0044 D
+0064 d
+0110 Ä
+0111 Ä‘
+0045 E
+0065 e
+00C8 È
+00C9 É
+00E8 è
+00E9 é
+1EB8 Ẹ
+1EB9 ẹ
+1EBA Ẻ
+1EBB ẻ
+1EBC Ẽ
+1EBD ẽ
+00CA Ê
+00EA ê
+1EBE Ế
+1EBF ế
+1EC0 Ề
+1EC1 á»
+1EC2 Ể
+1EC3 ể
+1EC4 Ễ
+1EC5 á»…
+1EC6 Ệ
+1EC7 ệ
+0047 G
+0067 g
+0048 H
+0068 h
+0049 I
+0069 i
+00CC Ì
+00CD Ã
+00EC ì
+00ED í
+0128 Ĩ
+0129 Ä©
+1EC8 Ỉ
+1EC9 ỉ
+1ECA Ị
+1ECB ị
+004B K
+006B k
+004C L
+006C l
+004D M
+006D m
+004F O
+006F o
+00D2 Ã’
+00D3 Ó
+00D5 Õ
+00F2 ò
+00F3 ó
+00F5 õ
+1ECC Ọ
+1ECD á»
+1ECE Ỏ
+1ECF á»
+00D4 Ô
+00F4 ô
+1ED0 á»
+1ED1 ố
+1ED2 á»’
+1ED3 ồ
+1ED4 á»”
+1ED5 ổ
+1ED6 á»–
+1ED7 á»—
+1ED8 Ộ
+1ED9 á»™
+01A0 Æ 
+01A1 Æ¡
+1EDA Ớ
+1EDB á»›
+1EDC Ờ
+1EDD á»
+1EDE Ở
+1EDF ở
+1EE0 á» 
+1EE1 ỡ
+1EE2 Ợ
+1EE3 ợ
+0050 P
+0070 p
+0051 Q
+0071 q
+0052 R
+0072 r
+0053 S
+0073 s
+0054 T
+0074 t
+0055 U
+0075 u
+00D9 Ù
+00DA Ú
+00F9 ù
+00FA ú
+0168 Ũ
+0169 Å©
+1EE4 Ụ
+1EE5 ụ
+1EE6 Ủ
+1EE7 ủ
+01AF Ư
+01B0 Æ°
+1EE8 Ứ
+1EE9 ứ
+1EEA Ừ
+1EEB ừ
+1EEC Ử
+1EED á»­
+1EEE á»®
+1EEF ữ
+1EF0 á»°
+1EF1 á»±
+0056 V
+0076 v
+0058 X
+0078 x
+0059 Y
+0079 y
+00DD Ã
+00FD ý
+1EF2 Ỳ
+1EF3 ỳ
+1EF4 á»´
+1EF5 ỵ
+1EF6 Ỷ
+1EF7 á»·
+1EF8 Ỹ
+1EF9 ỹ
+select group_concat(hex(c1) order by hex(c1)) from t1 group by c1;
+group_concat(hex(c1) order by hex(c1))
+0041,0061,00C0,00C1,00C3,00E0,00E1,00E3,1EA0,1EA1,1EA2,1EA3
+0102,0103,1EAE,1EAF,1EB0,1EB1,1EB2,1EB3,1EB4,1EB5,1EB6,1EB7
+00C2,00E2,1EA4,1EA5,1EA6,1EA7,1EA8,1EA9,1EAA,1EAB,1EAC,1EAD
+0042,0062
+0043,0063
+0044,0064
+0110,0111
+0045,0065,00C8,00C9,00E8,00E9,1EB8,1EB9,1EBA,1EBB,1EBC,1EBD
+00CA,00EA,1EBE,1EBF,1EC0,1EC1,1EC2,1EC3,1EC4,1EC5,1EC6,1EC7
+0047,0067
+0048,0068
+0049,0069,00CC,00CD,00EC,00ED,0128,0129,1EC8,1EC9,1ECA,1ECB
+004B,006B
+004C,006C
+004D,006D
+004F,006F,00D2,00D3,00D5,00F2,00F3,00F5,1ECC,1ECD,1ECE,1ECF
+00D4,00F4,1ED0,1ED1,1ED2,1ED3,1ED4,1ED5,1ED6,1ED7,1ED8,1ED9
+01A0,01A1,1EDA,1EDB,1EDC,1EDD,1EDE,1EDF,1EE0,1EE1,1EE2,1EE3
+0050,0070
+0051,0071
+0052,0072
+0053,0073
+0054,0074
+0055,0075,00D9,00DA,00F9,00FA,0168,0169,1EE4,1EE5,1EE6,1EE7
+01AF,01B0,1EE8,1EE9,1EEA,1EEB,1EEC,1EED,1EEE,1EEF,1EF0,1EF1
+0056,0076
+0058,0078
+0059,0079,00DD,00FD,1EF2,1EF3,1EF4,1EF5,1EF6,1EF7,1EF8,1EF9
+select group_concat(c1 order by hex(c1) SEPARATOR '') from t1 group by c1;
+group_concat(c1 order by hex(c1) SEPARATOR '')
+AaÀÃÃàáãẠạẢả
+ĂăẮắẰằẲẳẴẵẶặ
+ÂâẤấẦầẨẩẪẫẬậ
+Bb
+Cc
+Dd
+ÄÄ‘
+EeÈÉèéẸẹẺẻẼẽ
+ÊêẾếỀá»á»‚ểỄễỆệ
+Gg
+Hh
+IiÃŒÃìíĨĩỈỉỊị
+Kk
+Ll
+Mm
+OoÒÓÕòóõỌá»á»Žá»
+Ôôá»á»‘ỒồỔổỖỗỘộ
+ƠơỚớỜá»á»žá»Ÿá» á»¡á»¢á»£
+Pp
+Qq
+Rr
+Ss
+Tt
+UuÙÚùúŨũỤụỦủ
+ƯưỨứỪừỬửỮữỰự
+Vv
+Xx
+YyÃýỲỳỴỵỶỷỸỹ
+drop table t1;
diff --git a/mysql-test/r/ctype_many.result b/mysql-test/r/ctype_many.result
index 8bfc6e98226..125a3fc4286 100644
--- a/mysql-test/r/ctype_many.result
+++ b/mysql-test/r/ctype_many.result
@@ -2,44 +2,44 @@ DROP TABLE IF EXISTS t1;
SET CHARACTER SET latin1;
CREATE TABLE t1 (
comment CHAR(32) ASCII NOT NULL,
-koi8_ru_f CHAR(32) CHARACTER SET koi8r NOT NULL
+koi8_ru_f CHAR(32) CHARACTER SET koi8r NOT NULL default ''
) CHARSET=latin5;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `comment` char(32) character set latin1 NOT NULL default '',
+ `comment` char(32) character set latin1 NOT NULL,
`koi8_ru_f` char(32) character set koi8r NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin5
ALTER TABLE t1 CHANGE comment comment CHAR(32) CHARACTER SET latin2 NOT NULL;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `comment` char(32) character set latin2 NOT NULL default '',
+ `comment` char(32) character set latin2 NOT NULL,
`koi8_ru_f` char(32) character set koi8r NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin5
ALTER TABLE t1 ADD latin5_f CHAR(32) NOT NULL;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `comment` char(32) character set latin2 NOT NULL default '',
+ `comment` char(32) character set latin2 NOT NULL,
`koi8_ru_f` char(32) character set koi8r NOT NULL default '',
- `latin5_f` char(32) NOT NULL default ''
+ `latin5_f` char(32) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin5
ALTER TABLE t1 DEFAULT CHARSET=latin2;
ALTER TABLE t1 ADD latin2_f CHAR(32) NOT NULL;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `comment` char(32) NOT NULL default '',
+ `comment` char(32) NOT NULL,
`koi8_ru_f` char(32) character set koi8r NOT NULL default '',
- `latin5_f` char(32) character set latin5 NOT NULL default '',
- `latin2_f` char(32) NOT NULL default ''
+ `latin5_f` char(32) character set latin5 NOT NULL,
+ `latin2_f` char(32) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin2
ALTER TABLE t1 DROP latin2_f, DROP latin5_f;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `comment` char(32) NOT NULL default '',
+ `comment` char(32) NOT NULL,
`koi8_ru_f` char(32) character set koi8r NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin2
INSERT INTO t1 (koi8_ru_f,comment) VALUES ('a','LAT SMALL A');
@@ -219,7 +219,7 @@ z LAT CAPIT Z 2
Ñ CYR CAPIT E 2
ÑŽ CYR CAPIT YU 2
Ñ CYR CAPIT YA 2
-ALTER TABLE t1 ADD utf8_f CHAR(32) CHARACTER SET utf8 NOT NULL;
+ALTER TABLE t1 ADD utf8_f CHAR(32) CHARACTER SET utf8 NOT NULL default '';
UPDATE t1 SET utf8_f=CONVERT(koi8_ru_f USING utf8);
SET CHARACTER SET koi8r;
SELECT * FROM t1;
@@ -340,7 +340,7 @@ CYR CAPIT SOFT SIGN ø ø
CYR CAPIT E ü ü
CYR CAPIT YU à à
CYR CAPIT YA ñ ñ
-ALTER TABLE t1 ADD bin_f CHAR(32) BYTE NOT NULL;
+ALTER TABLE t1 ADD bin_f CHAR(1) BYTE NOT NULL default '';
UPDATE t1 SET bin_f=koi8_ru_f;
SELECT COUNT(DISTINCT bin_f),COUNT(DISTINCT koi8_ru_f),COUNT(DISTINCT utf8_f) FROM t1;
COUNT(DISTINCT bin_f) COUNT(DISTINCT koi8_ru_f) COUNT(DISTINCT utf8_f)
@@ -1331,146 +1331,146 @@ UPDATE t1 SET greek_f=CONVERT(ucs2_f USING greek) WHERE comment LIKE _latin2'GRE
UPDATE t1 SET armscii8_f=CONVERT(ucs2_f USING armscii8) WHERE comment LIKE _latin2'ARM%';
UPDATE t1 SET utf8_f=CONVERT(ucs2_f USING utf8) WHERE utf8_f=_utf8'';
UPDATE t1 SET ucs2_f=CONVERT(utf8_f USING ucs2) WHERE ucs2_f=_ucs2'';
-SELECT * FROM t1;
-comment koi8_ru_f utf8_f bin_f ucs2_f armscii8_f greek_f
-LAT SMALL A a a a a
-LAT SMALL B b b b b
-LAT SMALL C c c c c
-LAT SMALL D d d d d
-LAT SMALL E e e e e
-LAT SMALL F f f f f
-LAT SMALL G g g g g
-LAT SMALL H h h h h
-LAT SMALL I i i i i
-LAT SMALL J j j j j
-LAT SMALL K k k k k
-LAT SMALL L l l l l
-LAT SMALL M m m m m
-LAT SMALL N n n n n
-LAT SMALL O o o o o
-LAT SMALL P p p p p
-LAT SMALL Q q q q q
-LAT SMALL R r r r r
-LAT SMALL S s s s s
-LAT SMALL T t t t t
-LAT SMALL U u u u u
-LAT SMALL V v v v v
-LAT SMALL W w w w w
-LAT SMALL X x x x x
-LAT SMALL Y y y y y
-LAT SMALL Z z z z z
-LAT CAPIT A A A A A
-LAT CAPIT B B B B B
-LAT CAPIT C C C C C
-LAT CAPIT D D D D D
-LAT CAPIT E E E E E
-LAT CAPIT F F F F F
-LAT CAPIT G G G G G
-LAT CAPIT H H H H H
-LAT CAPIT I I I I I
-LAT CAPIT J J J J J
-LAT CAPIT K K K K K
-LAT CAPIT L L L L L
-LAT CAPIT M M M M M
-LAT CAPIT N N N N N
-LAT CAPIT O O O O O
-LAT CAPIT P P P P P
-LAT CAPIT Q Q Q Q Q
-LAT CAPIT R R R R R
-LAT CAPIT S S S S S
-LAT CAPIT T T T T T
-LAT CAPIT U U U U U
-LAT CAPIT V V V V V
-LAT CAPIT W W W W W
-LAT CAPIT X X X X X
-LAT CAPIT Y Y Y Y Y
-LAT CAPIT Z Z Z Z Z
-CYR SMALL A а а Á а
-CYR SMALL BE б б  б
-CYR SMALL VE в в × Ð²
-CYR SMALL GE г г Ç Ð³
-CYR SMALL DE д д Ä Ð´
-CYR SMALL IE е е Šе
-CYR SMALL IO Ñ‘ Ñ‘ £ Ñ‘
-CYR SMALL ZHE ж ж Ö Ð¶
-CYR SMALL ZE з з Ú Ð·
-CYR SMALL I и и É Ð¸
-CYR SMALL KA к к Ë Ðº
-CYR SMALL EL л л Ì Ð»
-CYR SMALL EM м м Í Ð¼
-CYR SMALL EN н н Πн
-CYR SMALL O о о Ï Ð¾
-CYR SMALL PE п п Рп
-CYR SMALL ER Ñ€ Ñ€ Ò Ñ€
-CYR SMALL ES Ñ Ñ Ó Ñ
-CYR SMALL TE Ñ‚ Ñ‚ Ô Ñ‚
-CYR SMALL U у у Õ Ñƒ
-CYR SMALL EF Ñ„ Ñ„ Æ Ñ„
-CYR SMALL HA Ñ… Ñ… È Ñ…
-CYR SMALL TSE ц ц à ц
-CYR SMALL CHE ч ч Þ Ñ‡
-CYR SMALL SHA ш ш Û Ñˆ
-CYR SMALL SCHA щ щ Ý Ñ‰
-CYR SMALL HARD SIGN ÑŠ ÑŠ ß ÑŠ
-CYR SMALL YERU Ñ‹ Ñ‹ Ù Ñ‹
-CYR SMALL SOFT SIGN ÑŒ ÑŒ Ø ÑŒ
-CYR SMALL E Ñ Ñ Ü Ñ
-CYR SMALL YU ÑŽ ÑŽ À ÑŽ
-CYR SMALL YA Ñ Ñ Ñ Ñ
-CYR CAPIT A Ð Ð á Ð
-CYR CAPIT BE Б Б â Б
-CYR CAPIT VE Ð’ Ð’ ÷ Ð’
-CYR CAPIT GE Г Г ç Г
-CYR CAPIT DE Д Д ä Д
-CYR CAPIT IE Е Е å Е
-CYR CAPIT IO Ð Ð ³ Ð
-CYR CAPIT ZHE Ж Ж ö Ж
-CYR CAPIT ZE З З ú З
-CYR CAPIT I И И é И
-CYR CAPIT KA К К ë К
-CYR CAPIT EL Л Л ì Л
-CYR CAPIT EM Ðœ Ðœ í Ðœ
-CYR CAPIT EN Ð Ð î Ð
-CYR CAPIT O О О ï О
-CYR CAPIT PE П П ð П
-CYR CAPIT ER Р Р ò Р
-CYR CAPIT ES С С ó С
-CYR CAPIT TE Т Т ô Т
-CYR CAPIT U У У õ У
-CYR CAPIT EF Ф Ф æ Ф
-CYR CAPIT HA Ð¥ Ð¥ è Ð¥
-CYR CAPIT TSE Ц Ц ã Ц
-CYR CAPIT CHE Ч Ч þ Ч
-CYR CAPIT SHA Ш Ш û Ш
-CYR CAPIT SCHA Щ Щ ý Щ
-CYR CAPIT HARD SIGN Ъ Ъ ÿ Ъ
-CYR CAPIT YERU Ы Ы ù Ы
-CYR CAPIT SOFT SIGN Ь Ь ø Ь
-CYR CAPIT E Э Э ü Э
-CYR CAPIT YU Ю Ю à Ю
-CYR CAPIT YA Я Я ñ Я
-GREEK CAPIT ALPHA Α Α Α
-GREEK CAPIT BETA Î’ Î’ Î’
-GREEK CAPIT GAMMA Γ Γ Γ
-GREEK CAPIT DELTA Δ Δ Δ
-GREEK CAPIT EPSILON Ε Ε Ε
-GREEK SMALL ALPHA α α α
-GREEK SMALL BETA β β β
-GREEK SMALL GAMMA γ γ γ
-GREEK SMALL DELTA δ δ δ
-GREEK SMALL EPSILON ε ε ε
-ARMENIAN CAPIT AYB Ô± Ô± Ô±
-ARMENIAN CAPIT BEN Ô² Ô² Ô²
-ARMENIAN CAPIT GIM Ô³ Ô³ Ô³
-ARMENIAN CAPIT DA Ô´ Ô´ Ô´
-ARMENIAN CAPIT ECH Ôµ Ôµ Ôµ
-ARMENIAN CAPIT ZA Ô¶ Ô¶ Ô¶
-ARMENIAN SMALL YAB Õ¡ Õ¡ Õ¡
-ARMENIAN SMALL BEN Õ¢ Õ¢ Õ¢
-ARMENIAN SMALL GIM Õ£ Õ£ Õ£
-ARMENIAN SMALL DA Õ¤ Õ¤ Õ¤
-ARMENIAN SMALL ECH Õ¥ Õ¥ Õ¥
-ARMENIAN SMALL ZA Õ¦ Õ¦ Õ¦
+SELECT comment, koi8_ru_f, utf8_f, hex(bin_f), ucs2_f, armscii8_f, greek_f FROM t1;
+comment koi8_ru_f utf8_f hex(bin_f) ucs2_f armscii8_f greek_f
+LAT SMALL A a a 61 a
+LAT SMALL B b b 62 b
+LAT SMALL C c c 63 c
+LAT SMALL D d d 64 d
+LAT SMALL E e e 65 e
+LAT SMALL F f f 66 f
+LAT SMALL G g g 67 g
+LAT SMALL H h h 68 h
+LAT SMALL I i i 69 i
+LAT SMALL J j j 6A j
+LAT SMALL K k k 6B k
+LAT SMALL L l l 6C l
+LAT SMALL M m m 6D m
+LAT SMALL N n n 6E n
+LAT SMALL O o o 6F o
+LAT SMALL P p p 70 p
+LAT SMALL Q q q 71 q
+LAT SMALL R r r 72 r
+LAT SMALL S s s 73 s
+LAT SMALL T t t 74 t
+LAT SMALL U u u 75 u
+LAT SMALL V v v 76 v
+LAT SMALL W w w 77 w
+LAT SMALL X x x 78 x
+LAT SMALL Y y y 79 y
+LAT SMALL Z z z 7A z
+LAT CAPIT A A A 41 A
+LAT CAPIT B B B 42 B
+LAT CAPIT C C C 43 C
+LAT CAPIT D D D 44 D
+LAT CAPIT E E E 45 E
+LAT CAPIT F F F 46 F
+LAT CAPIT G G G 47 G
+LAT CAPIT H H H 48 H
+LAT CAPIT I I I 49 I
+LAT CAPIT J J J 4A J
+LAT CAPIT K K K 4B K
+LAT CAPIT L L L 4C L
+LAT CAPIT M M M 4D M
+LAT CAPIT N N N 4E N
+LAT CAPIT O O O 4F O
+LAT CAPIT P P P 50 P
+LAT CAPIT Q Q Q 51 Q
+LAT CAPIT R R R 52 R
+LAT CAPIT S S S 53 S
+LAT CAPIT T T T 54 T
+LAT CAPIT U U U 55 U
+LAT CAPIT V V V 56 V
+LAT CAPIT W W W 57 W
+LAT CAPIT X X X 58 X
+LAT CAPIT Y Y Y 59 Y
+LAT CAPIT Z Z Z 5A Z
+CYR SMALL A а а C1 а
+CYR SMALL BE б б C2 б
+CYR SMALL VE в в D7 в
+CYR SMALL GE г г C7 г
+CYR SMALL DE д д C4 д
+CYR SMALL IE е е C5 е
+CYR SMALL IO Ñ‘ Ñ‘ A3 Ñ‘
+CYR SMALL ZHE ж ж D6 ж
+CYR SMALL ZE з з DA з
+CYR SMALL I и и C9 и
+CYR SMALL KA к к CB к
+CYR SMALL EL л л CC л
+CYR SMALL EM м м CD м
+CYR SMALL EN н н CE н
+CYR SMALL O о о CF о
+CYR SMALL PE п п D0 п
+CYR SMALL ER р р D2 р
+CYR SMALL ES Ñ Ñ D3 Ñ
+CYR SMALL TE Ñ‚ Ñ‚ D4 Ñ‚
+CYR SMALL U у у D5 у
+CYR SMALL EF Ñ„ Ñ„ C6 Ñ„
+CYR SMALL HA Ñ… Ñ… C8 Ñ…
+CYR SMALL TSE ц ц C3 ц
+CYR SMALL CHE ч ч DE ч
+CYR SMALL SHA ш ш DB ш
+CYR SMALL SCHA щ щ DD щ
+CYR SMALL HARD SIGN ÑŠ ÑŠ DF ÑŠ
+CYR SMALL YERU Ñ‹ Ñ‹ D9 Ñ‹
+CYR SMALL SOFT SIGN ь ь D8 ь
+CYR SMALL E Ñ Ñ DC Ñ
+CYR SMALL YU ÑŽ ÑŽ C0 ÑŽ
+CYR SMALL YA Ñ Ñ D1 Ñ
+CYR CAPIT A Ð Ð E1 Ð
+CYR CAPIT BE Б Б E2 Б
+CYR CAPIT VE Ð’ Ð’ F7 Ð’
+CYR CAPIT GE Г Г E7 Г
+CYR CAPIT DE Д Д E4 Д
+CYR CAPIT IE Е Е E5 Е
+CYR CAPIT IO Ð Ð B3 Ð
+CYR CAPIT ZHE Ж Ж F6 Ж
+CYR CAPIT ZE З З FA З
+CYR CAPIT I И И E9 И
+CYR CAPIT KA К К EB К
+CYR CAPIT EL Л Л EC Л
+CYR CAPIT EM М М ED М
+CYR CAPIT EN Ð Ð EE Ð
+CYR CAPIT O О О EF О
+CYR CAPIT PE П П F0 П
+CYR CAPIT ER Р Р F2 Р
+CYR CAPIT ES С С F3 С
+CYR CAPIT TE Т Т F4 Т
+CYR CAPIT U У У F5 У
+CYR CAPIT EF Ф Ф E6 Ф
+CYR CAPIT HA Х Х E8 Х
+CYR CAPIT TSE Ц Ц E3 Ц
+CYR CAPIT CHE Ч Ч FE Ч
+CYR CAPIT SHA Ш Ш FB Ш
+CYR CAPIT SCHA Щ Щ FD Щ
+CYR CAPIT HARD SIGN Ъ Ъ FF Ъ
+CYR CAPIT YERU Ы Ы F9 Ы
+CYR CAPIT SOFT SIGN Ь Ь F8 Ь
+CYR CAPIT E Э Э FC Э
+CYR CAPIT YU Ю Ю E0 Ю
+CYR CAPIT YA Я Я F1 Я
+GREEK CAPIT ALPHA Α 00 Α Α
+GREEK CAPIT BETA Î’ 00 Î’ Î’
+GREEK CAPIT GAMMA Γ 00 Γ Γ
+GREEK CAPIT DELTA Δ 00 Δ Δ
+GREEK CAPIT EPSILON Ε 00 Ε Ε
+GREEK SMALL ALPHA α 00 α α
+GREEK SMALL BETA β 00 β β
+GREEK SMALL GAMMA γ 00 γ γ
+GREEK SMALL DELTA δ 00 δ δ
+GREEK SMALL EPSILON ε 00 ε ε
+ARMENIAN CAPIT AYB Ô± 00 Ô± Ô±
+ARMENIAN CAPIT BEN Ô² 00 Ô² Ô²
+ARMENIAN CAPIT GIM Ô³ 00 Ô³ Ô³
+ARMENIAN CAPIT DA Ô´ 00 Ô´ Ô´
+ARMENIAN CAPIT ECH Ôµ 00 Ôµ Ôµ
+ARMENIAN CAPIT ZA Ô¶ 00 Ô¶ Ô¶
+ARMENIAN SMALL YAB Õ¡ 00 Õ¡ Õ¡
+ARMENIAN SMALL BEN Õ¢ 00 Õ¢ Õ¢
+ARMENIAN SMALL GIM Õ£ 00 Õ£ Õ£
+ARMENIAN SMALL DA Õ¤ 00 Õ¤ Õ¤
+ARMENIAN SMALL ECH Õ¥ 00 Õ¥ Õ¥
+ARMENIAN SMALL ZA Õ¦ 00 Õ¦ Õ¦
SET CHARACTER SET 'binary';
SELECT * FROM t1;
comment koi8_ru_f utf8_f bin_f ucs2_f armscii8_f greek_f
@@ -1590,28 +1590,28 @@ CYR CAPIT SOFT SIGN ø Ь ø ,
CYR CAPIT E ü Э ü -
CYR CAPIT YU à Ю à .
CYR CAPIT YA ñ Я ñ /
-GREEK CAPIT ALPHA Α ‘ Á
-GREEK CAPIT BETA Î’ ’ Â
-GREEK CAPIT GAMMA Γ “ Ã
-GREEK CAPIT DELTA Δ ” Ä
-GREEK CAPIT EPSILON Ε • Å
-GREEK SMALL ALPHA α ± á
-GREEK SMALL BETA β ² â
-GREEK SMALL GAMMA γ ³ ã
-GREEK SMALL DELTA δ ´ ä
-GREEK SMALL EPSILON ε µ å
-ARMENIAN CAPIT AYB Ô± 1 ²
-ARMENIAN CAPIT BEN Ô² 2 ´
-ARMENIAN CAPIT GIM Ô³ 3 ¶
-ARMENIAN CAPIT DA Ô´ 4 ¸
-ARMENIAN CAPIT ECH Ôµ 5 º
-ARMENIAN CAPIT ZA Ô¶ 6 ¼
-ARMENIAN SMALL YAB Õ¡ a ³
-ARMENIAN SMALL BEN Õ¢ b µ
-ARMENIAN SMALL GIM Õ£ c ·
-ARMENIAN SMALL DA Õ¤ d ¹
-ARMENIAN SMALL ECH Õ¥ e »
-ARMENIAN SMALL ZA Õ¦ f ½
+GREEK CAPIT ALPHA Α
+GREEK CAPIT BETA Î’
+GREEK CAPIT GAMMA Γ
+GREEK CAPIT DELTA Δ
+GREEK CAPIT EPSILON Ε
+GREEK SMALL ALPHA α
+GREEK SMALL BETA β
+GREEK SMALL GAMMA γ
+GREEK SMALL DELTA δ
+GREEK SMALL EPSILON ε
+ARMENIAN CAPIT AYB Ô±
+ARMENIAN CAPIT BEN Ô²
+ARMENIAN CAPIT GIM Ô³
+ARMENIAN CAPIT DA Ô´
+ARMENIAN CAPIT ECH Ôµ
+ARMENIAN CAPIT ZA Ô¶
+ARMENIAN SMALL YAB Õ¡
+ARMENIAN SMALL BEN Õ¢
+ARMENIAN SMALL GIM Õ£
+ARMENIAN SMALL DA Õ¤
+ARMENIAN SMALL ECH Õ¥
+ARMENIAN SMALL ZA Õ¦
SELECT min(comment),count(*) FROM t1 GROUP BY ucs2_f;
min(comment) count(*)
LAT CAPIT A 2
diff --git a/mysql-test/r/ctype_mb.result b/mysql-test/r/ctype_mb.result
index dbdb9c1343c..f6e14e1a78f 100644
--- a/mysql-test/r/ctype_mb.result
+++ b/mysql-test/r/ctype_mb.result
@@ -3,16 +3,16 @@ CREATE TABLE t1 SELECT _utf8'test' as c1, _utf8'теÑÑ‚' as c2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` char(4) character set utf8 NOT NULL default '',
- `c2` char(4) character set utf8 NOT NULL default ''
+ `c1` varchar(4) character set utf8 NOT NULL default '',
+ `c2` varchar(4) character set utf8 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DELETE FROM t1;
ALTER TABLE t1 ADD c3 CHAR(4) CHARACTER SET utf8;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` char(4) character set utf8 NOT NULL default '',
- `c2` char(4) character set utf8 NOT NULL default '',
+ `c1` varchar(4) character set utf8 NOT NULL default '',
+ `c2` varchar(4) character set utf8 NOT NULL default '',
`c3` char(4) character set utf8 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd');
diff --git a/mysql-test/r/ctype_recoding.result b/mysql-test/r/ctype_recoding.result
index 2daa2d5ba0b..3f8ab75957b 100644
--- a/mysql-test/r/ctype_recoding.result
+++ b/mysql-test/r/ctype_recoding.result
@@ -50,11 +50,11 @@ Tables_in_test
SHOW CREATE TABLE ÔÁÂÌÉÃÁ;
Table Create Table
ÔÁÂÌÉÃÁ CREATE TABLE `ÔÁÂÌÉÃÁ` (
- `ÐÏÌÅ` char(32) character set koi8r NOT NULL default '' COMMENT 'ËÏÍÍÅÎÔÁÒÉÊ ÐÏÌÑ'
+ `ÐÏÌÅ` char(32) character set koi8r NOT NULL COMMENT 'ËÏÍÍÅÎÔÁÒÉÊ ÐÏÌÑ'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='ËÏÍÍÅÎÔÁÒÉÊ ÔÁÂÌÉÃÙ'
SHOW FIELDS FROM ÔÁÂÌÉÃÁ;
Field Type Null Key Default Extra
-ÐÏÌÅ char(32)
+ÐÏÌÅ char(32) NO NULL
SET CHARACTER SET cp1251;
SHOW TABLES;
Tables_in_test
@@ -62,11 +62,11 @@ Tables_in_test
SHOW CREATE TABLE òàáëèöà;
Table Create Table
òàáëèöà CREATE TABLE `òàáëèöà` (
- `ïîëå` char(32) character set koi8r NOT NULL default '' COMMENT 'êîììåíòàðèé ïîëÿ'
+ `ïîëå` char(32) character set koi8r NOT NULL COMMENT 'êîììåíòàðèé ïîëÿ'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='êîììåíòàðèé òàáëèöû'
SHOW FIELDS FROM òàáëèöà;
Field Type Null Key Default Extra
-ïîëå char(32)
+ïîëå char(32) NO NULL
SET CHARACTER SET utf8;
SHOW TABLES;
Tables_in_test
@@ -74,11 +74,11 @@ Tables_in_test
SHOW CREATE TABLE таблица;
Table Create Table
таблица CREATE TABLE `таблица` (
- `поле` char(32) character set koi8r NOT NULL default '' COMMENT 'комментарий полÑ'
+ `поле` char(32) character set koi8r NOT NULL COMMENT 'комментарий полÑ'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы'
SHOW FIELDS FROM таблица;
Field Type Null Key Default Extra
-поле char(32)
+поле char(32) NO NULL
SET CHARACTER SET koi8r;
DROP TABLE ÔÁÂÌÉÃÁ;
SET CHARACTER SET default;
@@ -171,8 +171,8 @@ create table t1 (a char(10) character set koi8r, b text character set koi8r);
insert into t1 values ('test','test');
insert into t1 values ('ÊÃÕË','ÊÃÕË');
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'b' at row 1
+Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'a' at row 1
+Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'b' at row 1
drop table t1;
set names koi8r;
create table t1 (a char(10) character set cp1251);
@@ -187,6 +187,14 @@ select * from t1 where a=_latin1'×ÁÓÑ';
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
drop table t1;
set names latin1;
+set names ascii;
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a');
+select * from t1 where a='a';
+a
+a
+drop table t1;
+set names latin1;
create table t1 (a char(10) character set utf8 collate utf8_bin);
insert into t1 values (' xxx');
select * from t1 where a=lpad('xxx',10,' ');
@@ -258,3 +266,4 @@ t1 CREATE TABLE `t1` (
drop table t1;
create table t1(a char character set latin1 default _cp1251 0xFF);
ERROR 42000: Invalid default value for 'a'
+End of 4.1 tests
diff --git a/mysql-test/r/ctype_tis620.result b/mysql-test/r/ctype_tis620.result
index 9d13d7cd34b..dae694cf3d5 100644
--- a/mysql-test/r/ctype_tis620.result
+++ b/mysql-test/r/ctype_tis620.result
@@ -259,8 +259,8 @@ WU
¡Ñ³°ªÒ
¡Ñ³°Ô¡Ò
¡Ñ³·ÔÁÒ
-¡Ñ¹µì
¡Ñ¹µÔ¡Ã
+¡Ñ¹µì
¡Ñ¹¸ÔªÒ
¡Ñ¹¸ÔÁÒ
¡Ñ¹ÂÒÃѵ¹ì
@@ -272,8 +272,8 @@ WU
¡Ò­¨¹ÇÃó
¡Ò­¨¹Ò
¡Ò¹´Ò
-¡Ò¹µì
¡Ò¹µìÃÇÕ
+¡Ò¹µì
¡ÒÂÊÔ·¸Ôì
¡ÒÃÇÔÍÃ
¡ÒÃسÕ
@@ -350,8 +350,8 @@ WU
à¡ÕÂõÔÈÑ¡´Ôì
à¡ÕÂõÔÊÇÑÊ´Ôì
à¡×éÍ¡ÙÅ
-á¡éÇ
á¡éÇã¨
+á¡éÇ
â¡Ážѹ¸ì
â¡àÁÈ
â¡ÅºÍÅ ¤Í¹à¹ç¤ªÑè¹Êì
@@ -368,8 +368,8 @@ WU
¢¨Ãà¡ÕÂõÔ
¢¨ÃÈÃÕ
¢¨ÃÈÑ¡´Ôì
-¢¹ÔÉ°ì
¢¹ÔÉ°Ò
+¢¹ÔÉ°ì
¢ÇÑ­ã¨
¢ÇÑ­ªÑÂ
¢ÇÑ­à´×͹
@@ -412,8 +412,8 @@ WU
ठÊËÒÂÍÔÁà»ê¡«ì
à¤.«Õ.¾Õ. áÁªªÕ¹à¹ÍÃÕè
षշÕÅÔÊ«Ôè§
-ह áÁ¡«ì (»ÃÐà·Èä·Â)
ह áÁç¡«ì (»ÃÐà·Èä·Â)
+ह áÁ¡«ì (»ÃÐà·Èä·Â)
à¤Ã×ÍÇÑÅÂì
᤹¹Ù ÍÔ¹àµÍÃìà·Ã´
á¤Ð¨éÍÂ
@@ -494,12 +494,12 @@ WU
¨ÓàÃÔ­
¨ÓÅͧ
¨Ô³³ì
-¨Ôµµì
¨Ôµµì¹ÔÉÒ
¨ÔµµÁÒÊ
¨ÔµµÒ
¨ÔµµÔ
¨ÔµµÔ¹¹Ñ¹·ì
+¨Ôµµì
¨ÔµÃÅ´Ò
¨ÔµÃÒ
¨ÔµÃÒÀóì
@@ -627,10 +627,10 @@ WU
ªÇ¹¾ÔÈ
ªÇÅÔµ
ªÇÔÈÒ
-ªèÍ
ªèͩѵÃ
ªèÍ·Ô¾Âì
ªèÍÍÑ­ªÑ­
+ªèÍ
ªÐ¹ÔÅ
ªÐÍé͹
ªÑªªÑÂ
@@ -758,12 +758,12 @@ WU
³¸ÔµÒ
³ÀÑ·Ã
³Àѷáóì
-³Ã§¤ì
³Ã§¤ìªÑÂ
³Ã§¤ì¾ÑªÃì
³Ã§¤ìÄ·¸Ôì
³Ã§¤ìÇÔ·Âì
³Ã§¤ìÈÑ¡´Ôì
+³Ã§¤ì
³Ã§ÃÑ¡Éì
³Ã§Ä·¸Ôì
³Ã§ÈÑ¡´Ôì
@@ -862,11 +862,11 @@ WU
µÐÇѹ
µÑ觨Ñè§ËÅÍ´ä¿
µÒà¿ç´
-µØê
µØ꡵Ò
µØéÁ
µØëÂ
µØÅÒÅѡɳì
+µØê
àµçÁà´ª
àµ×͹ã¨
àµ×͹µÒ
@@ -917,8 +917,8 @@ WU
·Ñº·ÔÁ
·ÑȹÇÃó
·ÑȹվÃ
-·ÑȹÕÂì
·ÑȹÕÂÒ
+·ÑȹÕÂì
·ÑÈÇÃó
·èÒ·ÃÒÂá¨é§ÇѲ¹Ò
·Ô¦ÑÁ¾Ã
@@ -1088,8 +1088,8 @@ WU
¹Ã¾Å
¹ÃÀÑ·Ãì
¹ÃÒ
-¹ÃÔ¹·Ãì
¹ÃÔ¹·Ãìà´ª
+¹ÃÔ¹·Ãì
¹ÃÔÈ
¹ÃÔÉ°
¹ÃÕ
@@ -1115,8 +1115,8 @@ WU
¹Ñ·¸Á¹
¹Ñ¹ªÑÂ
¹Ñ¹·ªÑÂ
-¹Ñ¹·¹ì
¹Ñ¹·¹Ò
+¹Ñ¹·¹ì
¹Ñ¹·¾Ã
¹Ñ¹·¾Å
¹Ñ¹·ÁÒÊ
@@ -1148,14 +1148,14 @@ WU
¹Ôà«Ð
¹Ô´
¹Ô´Ò
-¹ÔµÂì
¹ÔµÂÒ
+¹ÔµÂì
¹ÔµÔ
¹ÔµÔ¾§Éì
¹ÔµÔÁÒ
¹Ô·ÃÒ
-¹Ô·Ñȹì
¹Ô·ÑȹÕÂì
+¹Ô·Ñȹì
¹Ô¸ÔÇ´Õ
¹Ô»»Í¹à¾¹µì(»ÃÐà·Èä·Â)
¹Ô¾¹¸ì
@@ -1349,8 +1349,8 @@ WU
»ÃÒ³ÕÂì
»ÃÒâÁ·Âì
»ÃÒö¹Ò
-»ÃÔ­­ì
»ÃÔ­­Ò
+»ÃÔ­­ì
»ÃÔ­´Ò
»ÃÔ³´Ò
»ÃÔ·ÑÈ
@@ -1454,10 +1454,10 @@ WU
¾§ÉìÈÑ¡´Ôì
¾§ÉìÊѹµì
¾§Éì͹ѹµì
-¾¨¹ì
¾¨¹Ò
¾¨¹Òö
¾¨¹ÕÂì
+¾¨¹ì
¾¨ÁÒ¹
¾¨ÁÒÅÂì
¾¹Á
@@ -1504,8 +1504,8 @@ WU
¾ÃÊÇÃäì
¾ÃËÁ¾Ñ²¹ì
¾ÃéÍÁªÑÂ
-¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì
¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì ¨Ó¡Ñ´
+¾ÃлÃÐá´§ Î͹´éÒ¤ÒÃìÊì
¾ÃÐÃÒÁ 3 ¤ÒÃìà«ç¹àµÍÃì
¾ÃÐÃÒÁ 3 Î͹´éÒ¤ÒÃìÊì
¾ÃÔéÁà¾ÃÒ
@@ -1604,10 +1604,10 @@ WU
¾Ùŷͧ¾Ãç;à¾ÍÃìµÕé_
¾ÙżÅ
à¾ç§ ¿Ù ËÅÔ¹
-à¾çªÃì
ྪÃÃѵ¹ì
ྪÃÅ´Ò
ྪÃÔ¹·Ãì
+à¾çªÃì
à¾ç­¨Ñ¹·Ãì
à¾ç­·Ô¾Âì
à¾ç­¹ÀÒ
@@ -1831,7 +1831,6 @@ WU
ÃÒàÁÈÃì
ÃÒÂÕ¹
Ã×è¹ÇÃÒËì
-ÃØé§
ÃØ觷ԾÂì
ÃØ觷ÔÇÒ
ÃØ觹ÀÒ
@@ -1840,11 +1839,12 @@ WU
ÃØè§Ãѵ¹ì
ÃØè§ÃÑÈÁÕ
ÃØè§àÃ×ͧ
-ÃØè§âè¹ì
ÃØè§âè¹ì¢¹Êè§
+ÃØè§âè¹ì
ÃØé§ÅÒÇÃó
ÃØè§ÇÔ·Âì
ÃØè§ÍÃس
+ÃØé§
ÃبÒ
ÃبÒÀÒ
ÃØËйÒ
@@ -1861,8 +1861,8 @@ WU
áþᾤ ¤Í¹ÊµÃѤªÑè¹
âç§Ò¹àËÅç¡¡Ãا෾Ï
âè¹ì»ÃÐàÊÃÔ°
-Ä·¸Ôì
Ä·¸ÔªÑÂ
+Ä·¸Ôì
ÅÅÔ´Ò
ÅÅÔµÒ
ÅÐÁèÍÁ
@@ -2050,8 +2050,8 @@ WU
ÇÔäÅÇÃó
ÇÔÇ
ÇÔÇÃø¹ì
-ÇÔÇѲ¹ì
ÇÔÇѲ¹ìªÑÂ
+ÇÔÇѲ¹ì
ÇÔȹÕ
ÇÔÈÃص
ÇÔÈÒÅ
@@ -2146,11 +2146,11 @@ WU
ÈÈÔÇÔÁÅ
ÈÈÔÉÒ
ÈÑ¡´Ò
-ÈÑ¡´Ôì
ÈÑ¡´ÔìªÑÂ
ÈÑ¡´ÔìàªÇ§
ÈÑ¡´Ôì´Ò
ÈÑ¡´ÔìÇÔºÙÅÂì
+ÈÑ¡´Ôì
ÈÑ¡ÃÔ¹·Ãì
ÈѹʹÕÂì
ÈÒ¹µÔᏴì
@@ -2348,18 +2348,18 @@ WU
ÊÓÃÒ­
ÊÓÄ·¸Ôì
ÊÓÅÕ
-ÊÔ§Ëì
ÊÔ§Ëì¾Å
ÊÔ§ËÒ
+ÊÔ§Ëì
ÊԵҹѹ
ÊÔµÒ¾Ã
ÊÔ·¸Ò
-ÊÔ·¸Ôì
ÊÔ·¸ÔªÑÂ
ÊÔ·¸Ôà´ª
ÊÔ·¸Ô¾Ã
ÊÔ·¸Ô¾Ãó
ÊÔ·¸Ô¾Å
+ÊÔ·¸Ôì
ÊÔ¹·ÇÕ
ÊÔÃÔªÑÂ
ÊÔÃÔà´ª
@@ -2393,15 +2393,15 @@ WU
ÊØ¢ÊÇÑÊ´Ôì¡Å¡ÒÃ
ÊØ¢Êѹµì
ÊØ¢ØÁ
-Êؤ¹¸ì
Êؤ¹¸Ò
+Êؤ¹¸ì
ÊبÒÃÕ
ÊبԵ
ÊبԵµÒ
ÊبԵÃÒ
ÊبԹ´Ò
-ÊبԹµì
ÊبԹµ¹ì
+ÊبԹµì
ÊتÅ
ÊتÑÂ
ÊتҴÒ
@@ -2443,13 +2443,13 @@ WU
ÊظԴÒ
ÊظÔÈÑ¡´Ôì
ÊظÕ
-ÊظÕÃì
ÊظÕÃÒ
+ÊظÕÃì
Êع·Ã
Êع·ÃÕ
Êعѷ·Õ
-Êعѹ·ì
Êعѹ·Ò
+Êعѹ·ì
ÊعԵÒ
ÊعÔÈÒ
ÊعÔÉÒ
@@ -2511,10 +2511,10 @@ WU
ÊØÃÈÑ¡´Ôì
ÊØÃÊÔ·¸Ôì
ÊØÃѪ¹Õ¡Ã
-ÊØÃѵ¹ì
ÊØÃѵ¹Ç´Õ
ÊØÃѵ¹ìÇ´Õ
ÊØÃѵ¹Ò
+ÊØÃѵ¹ì
ÊØÃѵÂÒ
ÊØÃÒ§¤¹Ò
ÊØÃÔªÑÂ
@@ -2529,8 +2529,8 @@ WU
ÊØÃÕ¸Ò¾Ã
ÊØÃÕ¾Ã
ÊØÃÕÁÒÈ
-ÊØÃÕÂì
ÊØÃÕÂì¾Ã
+ÊØÃÕÂì
ÊØÃÕÃѵ¹ì
ÊØÅÑ´´Ò
ÊØÇÀÑ·Ãì
@@ -2540,9 +2540,9 @@ WU
ÊØÇÃóÕ
ÊØÇÃóÕÂì
ÊØÇÃѵ¹ì
-ÊØÇѲ¹ì
ÊØÇѲ¹ìªÑÂ
ÊØÇѲ¹Ò
+ÊØÇѲ¹ì
ÊØÇѵªÑÂ
ÊØÇÒÃÕ
ÊØÇÔªÑÂ
@@ -2623,8 +2623,8 @@ WU
͹¹·ì
͹ÇѪ
͹ѭ­Ò
-͹ѹµì
͹ѹµÈÑ¡´Ôì
+͹ѹµì
͹ءԵÔ
͹ءÙÅ
͹تÒ
@@ -2770,8 +2770,8 @@ WU
ÍÒÃÒ¾Ã
ÍÒÃÔÂÒ
ÍÒÃÕ
-ÍÒÃÕÂì
ÍÒÃÕÂì àÊÁÒ©ÔÁ (ä·Âູ¡Ñ¹
+ÍÒÃÕÂì
ÍÒÃÕÃѵ¹ì
ÍÒÃÕÇÃó
ÍÓ¹ÇÂ
diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result
index 3d8bd33fb19..e676d5a5ca0 100644
--- a/mysql-test/r/ctype_uca.result
+++ b/mysql-test/r/ctype_uca.result
@@ -1905,6 +1905,222 @@ Z,z,Ź,ź,Ż,ż,Ž,ž
Ç
Ç‚
ǃ
+select group_concat(c1 order by c1) from t1 group by c1 collate utf8_esperanto_ci;
+group_concat(c1 order by c1)
+÷
+×
+A,a,À,Ã,Â,Ã,Ä,Ã…,à,á,â,ã,ä,Ã¥,Ä€,Ä,Ä‚,ă,Ä„,Ä…,Ç,ÇŽ,Çž,ÇŸ,Ç ,Ç¡,Ǻ,Ç»
+AA,Aa,aA,aa
+Æ,æ,Ǣ,ǣ,Ǽ,ǽ
+B,b
+Æ€
+Ƃ,ƃ
+C,c,Ç,ç,Ć,ć,ÄŠ,Ä‹,ÄŒ,Ä
+CH,Ch,cH,ch
+Ĉ,ĉ
+Ƈ,ƈ
+D,d,ÄŽ,Ä
+DZ,Dz,dZ,dz,DŽ,Dž,dž,DZ,Dz,dz
+Ä,Ä‘
+Ɖ
+ÆŠ
+Ƌ,ƌ
+Ã,ð
+E,e,È,É,Ê,Ë,è,é,ê,ë,Ē,ē,Ĕ,ĕ,Ė,ė,Ę,ę,Ě,ě
+ÆŽ,Ç
+F,f
+Æ‘,Æ’
+G,g,Ğ,ğ,Ġ,ġ,Ģ,ģ,Ǧ,ǧ,Ǵ,ǵ
+Äœ,Ä
+Ǥ,ǥ
+Æ“
+Æ”
+Æ¢,Æ£
+H,h
+Ĥ,ĥ
+ƕ,Ƕ
+Ħ,ħ
+I,i,ÃŒ,Ã,ÃŽ,Ã,ì,í,î,ï,Ĩ,Ä©,Ī,Ä«,Ĭ,Ä­,Ä®,į,Ä°,Ç,Ç
+IJ,Ij,iJ,ij,IJ,ij
+ı
+Æ—
+Æ–
+J,j,Ç°
+Ĵ,ĵ
+K,k,Ķ,ķ,Ǩ,ǩ
+Ƙ,ƙ
+L,l,Ĺ,ĺ,Ļ,ļ,Ľ,ľ
+Ä¿,Å€
+LJ,Lj,lJ,lj,LJ,Lj,lj
+LL,Ll,lL,ll
+Å,Å‚
+Æš
+Æ›
+M,m
+N,n,Ñ,ñ,Ń,ń,Ņ,ņ,Ň,ň,Ǹ,ǹ
+NJ,Nj,nJ,nj,NJ,Nj,nj
+Æž
+ÅŠ,Å‹
+O,o,Ã’,Ó,Ô,Õ,Ö,ò,ó,ô,õ,ö,ÅŒ,Å,ÅŽ,Å,Å,Å‘,Æ ,Æ¡,Ç‘,Ç’,Ǫ,Ç«,Ǭ,Ç­
+OE,Oe,oE,oe,Å’,Å“
+Ø,ø,Ǿ,ǿ
+Ɔ
+ÆŸ
+P,p
+Ƥ,ƥ
+Q,q
+ĸ
+R,r,Ŕ,ŕ,Ŗ,ŗ,Ř,ř
+RR,Rr,rR,rr
+Ʀ
+S,s,Åš,Å›,Åž,ÅŸ,Å ,Å¡,Å¿
+SS,Ss,sS,ss,ß
+Åœ,Å
+Æ©
+ƪ
+T,t,Ţ,ţ,Ť,ť
+ƾ
+Ŧ,ŧ
+Æ«
+Ƭ,ƭ
+Æ®
+U,u,Ù,Ú,Û,Ü,ù,ú,û,ü,Ũ,ũ,Ū,ū,Ů,ů,Ű,ű,Ų,ų,Ư,ư,Ǔ,ǔ,Ǖ,ǖ,Ǘ,ǘ,Ǚ,ǚ,Ǜ,ǜ
+Ŭ,ŭ
+Ɯ
+Ʊ
+V,v
+Ʋ
+W,w,Ŵ,ŵ
+X,x
+Y,y,Ã,ý,ÿ,Ŷ,Å·,Ÿ
+Ƴ,ƴ
+Z,z,Ź,ź,Ż,ż,Ž,ž
+Ƶ,ƶ
+Ʒ,Ǯ,ǯ
+Ƹ,ƹ
+ƺ
+Þ,þ
+Æ¿,Ç·
+Æ»
+Ƨ,ƨ
+Ƽ,ƽ
+Æ„,Æ…
+ʼn
+Ç€
+Ç‚
+ǃ
+select group_concat(c1 order by c1) from t1 group by c1 collate utf8_hungarian_ci;
+group_concat(c1 order by c1)
+÷
+×
+A,a,À,Ã,Â,Ã,Ä,Ã…,à,á,â,ã,ä,Ã¥,Ä€,Ä,Ä‚,ă,Ä„,Ä…,Ç,ÇŽ,Çž,ÇŸ,Ç ,Ç¡,Ǻ,Ç»
+AA,Aa,aA,aa
+Æ,æ,Ǣ,ǣ,Ǽ,ǽ
+B,b
+Æ€
+Ƃ,ƃ
+C,c,Ç,ç,Ć,ć,Ĉ,ĉ,ÄŠ,Ä‹,ÄŒ,Ä
+CH,Ch,cH,ch
+Ƈ,ƈ
+D,d,ÄŽ,Ä
+DZ,Dz,dZ,dz,DŽ,Dž,dž,DZ,Dz,dz
+Ä,Ä‘
+Ɖ
+ÆŠ
+Ƌ,ƌ
+Ã,ð
+E,e,È,É,Ê,Ë,è,é,ê,ë,Ē,ē,Ĕ,ĕ,Ė,ė,Ę,ę,Ě,ě
+ÆŽ,Ç
+F,f
+Æ‘,Æ’
+G,g,Äœ,Ä,Äž,ÄŸ,Ä ,Ä¡,Ä¢,Ä£,Ǧ,ǧ,Ç´,ǵ
+Ǥ,ǥ
+Æ“
+Æ”
+Æ¢,Æ£
+H,h,Ĥ,ĥ
+ƕ,Ƕ
+Ħ,ħ
+I,i,ÃŒ,Ã,ÃŽ,Ã,ì,í,î,ï,Ĩ,Ä©,Ī,Ä«,Ĭ,Ä­,Ä®,į,Ä°,Ç,Ç
+IJ,Ij,iJ,ij,IJ,ij
+ı
+Æ—
+Æ–
+J,j,Ĵ,ĵ,ǰ
+K,k,Ķ,ķ,Ǩ,ǩ
+Ƙ,ƙ
+L,l,Ĺ,ĺ,Ļ,ļ,Ľ,ľ
+Ä¿,Å€
+LJ,Lj,lJ,lj,LJ,Lj,lj
+LL,Ll,lL,ll
+Å,Å‚
+Æš
+Æ›
+M,m
+N,n,Ñ,ñ,Ń,ń,Ņ,ņ,Ň,ň,Ǹ,ǹ
+NJ,Nj,nJ,nj,NJ,Nj,nj
+Æž
+ÅŠ,Å‹
+O,o,Ã’,Ó,Ô,Õ,ò,ó,ô,õ,ÅŒ,Å,ÅŽ,Å,Æ ,Æ¡,Ç‘,Ç’,Ǫ,Ç«,Ǭ,Ç­
+OE,Oe,oE,oe,Å’,Å“
+Ö,ö,Å,Å‘
+Ø,ø,Ǿ,ǿ
+Ɔ
+ÆŸ
+P,p
+Ƥ,ƥ
+Q,q
+ĸ
+R,r,Ŕ,ŕ,Ŗ,ŗ,Ř,ř
+RR,Rr,rR,rr
+Ʀ
+S,s,Åš,Å›,Åœ,Å,Åž,ÅŸ,Å ,Å¡,Å¿
+SS,Ss,sS,ss,ß
+Æ©
+ƪ
+T,t,Ţ,ţ,Ť,ť
+ƾ
+Ŧ,ŧ
+Æ«
+Ƭ,ƭ
+Æ®
+U,u,Ù,Ú,Û,ù,ú,û,Ũ,ũ,Ū,ū,Ŭ,ŭ,Ů,ů,Ų,ų,Ư,ư,Ǔ,ǔ,Ǖ,ǖ,Ǘ,ǘ,Ǚ,ǚ,Ǜ,ǜ
+Ü,ü,Ű,ű
+Ɯ
+Ʊ
+V,v
+Ʋ
+W,w,Ŵ,ŵ
+X,x
+Y,y,Ã,ý,ÿ,Ŷ,Å·,Ÿ
+Ƴ,ƴ
+Z,z,Ź,ź,Ż,ż,Ž,ž
+Ƶ,ƶ
+Ʒ,Ǯ,ǯ
+Ƹ,ƹ
+ƺ
+Þ,þ
+Æ¿,Ç·
+Æ»
+Ƨ,ƨ
+Ƽ,ƽ
+Æ„,Æ…
+ʼn
+Ç€
+Ç‚
+ǃ
drop table t1;
SET NAMES utf8;
CREATE TABLE t1 (c varchar(255) NOT NULL COLLATE utf8_general_ci, INDEX (c));
@@ -2373,6 +2589,8 @@ location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
select cast(a as char(1)) from t1;
cast(a as char(1))
@@ -2425,3 +2643,128 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
c2h
ab_def
drop table t1;
+CREATE TABLE t1 (id int, a varchar(30) character set utf8);
+INSERT INTO t1 VALUES (1, _ucs2 0x01310069), (2, _ucs2 0x01310131);
+INSERT INTO t1 VALUES (3, _ucs2 0x00690069), (4, _ucs2 0x01300049);
+INSERT INTO t1 VALUES (5, _ucs2 0x01300130), (6, _ucs2 0x00490049);
+SELECT a, length(a) la, @l:=lower(a) l, length(@l) ll, @u:=upper(a) u, length(@u) lu
+FROM t1 ORDER BY id;
+a la l ll u lu
+ıi 3 ıi 3 II 2
+ıı 4 ıı 4 II 2
+ii 2 ii 2 II 2
+Ä°I 3 ii 2 Ä°I 3
+Ä°Ä° 4 ii 2 Ä°Ä° 4
+II 2 ii 2 II 2
+ALTER TABLE t1 MODIFY a VARCHAR(30) character set utf8 collate utf8_turkish_ci;
+SELECT a, length(a) la, @l:=lower(a) l, length(@l) ll, @u:=upper(a) u, length(@u) lu
+FROM t1 ORDER BY id;
+a la l ll u lu
+ıi 3 ıi 3 Iİ 3
+ıı 4 ıı 4 II 2
+ii 2 ii 2 Ä°Ä° 4
+İI 3 iı 3 İI 3
+Ä°Ä° 4 ii 2 Ä°Ä° 4
+II 2 ıı 4 II 2
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 text character set ucs2 collate ucs2_polish_ci NOT NULL
+) ENGINE=MyISAM;
+insert into t1 values (''),('a');
+SELECT COUNT(*), c1 FROM t1 GROUP BY c1;
+COUNT(*) c1
+1
+1 a
+DROP TABLE IF EXISTS t1;
+set names utf8;
+create table t1 (
+a varchar(255),
+key a(a)
+) character set utf8 collate utf8_danish_ci;
+insert into t1 values ('åaaaa'),('ååaaa'),('aaaaa');
+select a as like_a from t1 where a like 'a%';
+like_a
+aaaaa
+select a as like_aa from t1 where a like 'aa%';
+like_aa
+aaaaa
+select a as like_aaa from t1 where a like 'aaa%';
+like_aaa
+aaaaa
+select a as like_aaaa from t1 where a like 'aaaa%';
+like_aaaa
+aaaaa
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+like_aaaaa
+aaaaa
+alter table t1 convert to character set ucs2 collate ucs2_danish_ci;
+select a as like_a from t1 where a like 'a%';
+like_a
+aaaaa
+select a as like_aa from t1 where a like 'aa%';
+like_aa
+aaaaa
+select a as like_aaa from t1 where a like 'aaa%';
+like_aaa
+aaaaa
+select a as like_aaaa from t1 where a like 'aaaa%';
+like_aaaa
+aaaaa
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+like_aaaaa
+aaaaa
+drop table t1;
+create table t1 (
+a varchar(255),
+key(a)
+) character set utf8 collate utf8_spanish2_ci;
+insert into t1 values ('aaaaa'),('lllll'),('zzzzz');
+select a as like_l from t1 where a like 'l%';
+like_l
+lllll
+select a as like_ll from t1 where a like 'll%';
+like_ll
+lllll
+select a as like_lll from t1 where a like 'lll%';
+like_lll
+lllll
+select a as like_llll from t1 where a like 'llll%';
+like_llll
+lllll
+select a as like_lllll from t1 where a like 'lllll%';
+like_lllll
+lllll
+alter table t1 convert to character set ucs2 collate ucs2_spanish2_ci;
+select a as like_l from t1 where a like 'l%';
+like_l
+lllll
+select a as like_ll from t1 where a like 'll%';
+like_ll
+lllll
+select a as like_lll from t1 where a like 'lll%';
+like_lll
+lllll
+select a as like_llll from t1 where a like 'llll%';
+like_llll
+lllll
+select a as like_lllll from t1 where a like 'lllll%';
+like_lllll
+lllll
+drop table t1;
+create table t1 (
+a varchar(255),
+key a(a)
+) character set utf8 collate utf8_czech_ci;
+insert into t1 values
+('b'),('c'),('d'),('e'),('f'),('g'),('h'),('ch'),('i'),('j');
+select * from t1 where a like 'c%';
+a
+c
+ch
+alter table t1 convert to character set ucs2 collate ucs2_czech_ci;
+select * from t1 where a like 'c%';
+a
+c
+ch
+drop table t1;
+End for 5.0 tests
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result
index fef13b19ae8..82f21eb086d 100644
--- a/mysql-test/r/ctype_ucs.result
+++ b/mysql-test/r/ctype_ucs.result
@@ -23,16 +23,24 @@ select binary 'a a' > 'a', binary 'a \0' > 'a', binary 'a\0' > 'a';
binary 'a a' > 'a' binary 'a \0' > 'a' binary 'a\0' > 'a'
1 1 1
SET CHARACTER SET koi8r;
-CREATE TABLE t1 (word VARCHAR(64) CHARACTER SET ucs2);
-INSERT INTO t1 VALUES (_koi8r'ò'), (X'2004');
+CREATE TABLE t1 (word VARCHAR(64) CHARACTER SET ucs2, word2 CHAR(64) CHARACTER SET ucs2);
+INSERT INTO t1 VALUES (_koi8r'ò',_koi8r'ò'), (X'2004',X'2004');
SELECT hex(word) FROM t1 ORDER BY word;
hex(word)
0420
2004
+SELECT hex(word2) FROM t1 ORDER BY word2;
+hex(word2)
+0420
+2004
DELETE FROM t1;
-INSERT INTO t1 VALUES (X'042000200020'), (X'200400200020');
+INSERT INTO t1 VALUES (X'042000200020',X'042000200020'), (X'200400200020', X'200400200020');
SELECT hex(word) FROM t1 ORDER BY word;
hex(word)
+042000200020
+200400200020
+SELECT hex(word2) FROM t1 ORDER BY word2;
+hex(word2)
0420
2004
DROP TABLE t1;
@@ -66,8 +74,8 @@ RPAD(_ucs2 X'0420',10,_ucs2 X'0421') r;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `l` char(10) character set ucs2 NOT NULL default '',
- `r` char(10) character set ucs2 NOT NULL default ''
+ `l` varchar(10) character set ucs2 NOT NULL default '',
+ `r` varchar(10) character set ucs2 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
create table t2(f1 Char(30));
@@ -85,10 +93,10 @@ create table t1 (a varchar(10) character set ucs2, key(a));
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
explain select * from t1 where a like 'abc%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a a 21 NULL 1 Using where; Using index
+1 SIMPLE t1 range a a 23 NULL 1 Using where; Using index
explain select * from t1 where a like concat('abc','%');
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a a 21 NULL 1 Using where; Using index
+1 SIMPLE t1 range a a 23 NULL 1 Using where; Using index
select * from t1 where a like "abc%";
a
abc
@@ -313,7 +321,7 @@ aardvark 0
aardvarz 0
EXPLAIN SELECT word FROM t1 ORDER BY word;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL PRIMARY 128 NULL 6 Using index
+1 SIMPLE t1 index NULL PRIMARY 130 NULL 6 Using index
SELECT word FROM t1 ORDER by word;
word
a
@@ -337,7 +345,7 @@ INSERT INTO t1 (word) VALUES ("aardvara");
INSERT INTO t1 (word) VALUES ("aardvarz");
EXPLAIN SELECT * FROM t1 ORDER BY WORD;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL PRIMARY 128 NULL 6 Using index
+1 SIMPLE t1 index NULL PRIMARY 130 NULL 6 Using index
SELECT * FROM t1 ORDER BY word;
word
a
@@ -663,7 +671,7 @@ DROP TABLE t1;
CREATE TABLE t1 (Field1 int(10) unsigned default '0');
INSERT INTO t1 VALUES ('-1');
Warnings:
-Warning 1265 Data truncated for column 'Field1' at row 1
+Warning 1264 Out of range value adjusted for column 'Field1' at row 1
DROP TABLE t1;
SET NAMES latin1;
SELECT CONVERT(103, CHAR(50) UNICODE);
@@ -810,3 +818,117 @@ a
abcd
DROP TABLE t1;
End of 4.1 tests
+CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3));
+INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
+update t1 set b=a;
+SELECT * FROM t1;
+a b
+1.1 1.100
+2.1 2.100
+DROP TABLE t1;
+create table t1 (utext varchar(20) character set ucs2);
+insert into t1 values ("lily");
+insert into t1 values ("river");
+prepare stmt from 'select utext from t1 where utext like ?';
+set @param1='%%';
+execute stmt using @param1;
+utext
+lily
+river
+execute stmt using @param1;
+utext
+lily
+river
+select utext from t1 where utext like '%%';
+utext
+lily
+river
+drop table t1;
+deallocate prepare stmt;
+set names latin1;
+set character_set_connection=ucs2;
+select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
+soundex('') soundex('he') soundex('hello all folks') soundex('#3556 in bugdb')
+ H000 H4142 I51231
+select hex(soundex('')),hex(soundex('he')),hex(soundex('hello all folks')),hex(soundex('#3556 in bugdb'));
+hex(soundex('')) hex(soundex('he')) hex(soundex('hello all folks')) hex(soundex('#3556 in bugdb'))
+ 0048003000300030 00480034003100340032 004900350031003200330031
+select 'mood' sounds like 'mud';
+'mood' sounds like 'mud'
+1
+select hex(soundex(_ucs2 0x041004110412));
+hex(soundex(_ucs2 0x041004110412))
+0410003000300030
+select hex(soundex(_ucs2 0x00BF00C0));
+hex(soundex(_ucs2 0x00BF00C0))
+00C0003000300030
+set names latin1;
+create table t1(a blob, b text charset utf8, c text charset ucs2);
+select data_type, character_octet_length, character_maximum_length
+from information_schema.columns where table_name='t1';
+data_type character_octet_length character_maximum_length
+blob 65535 65535
+text 65535 65535
+text 65535 32767
+drop table t1;
+create table t1 (a char(1) character set ucs2);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+hex(group_concat(a))
+0061002C0062002C0063
+select collation(group_concat(a)) from t1;
+collation(group_concat(a))
+ucs2_general_ci
+drop table t1;
+set names latin1;
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+set character_set_connection=ucs2;
+select hex(group_concat(a separator ',')) from t1;
+hex(group_concat(a separator ','))
+612C622C63
+select collation(group_concat(a separator ',')) from t1;
+collation(group_concat(a separator ','))
+latin1_swedish_ci
+drop table t1;
+set names latin1;
+create table t1 (s1 char(1) character set ascii, s2 char(1) character set ucs2);
+insert into t1 (s1) values (0x7f);
+update t1 set s2 = s1;
+select hex(s2) from t1;
+hex(s2)
+007F
+select hex(convert(s1 using latin1)) from t1;
+hex(convert(s1 using latin1))
+7F
+drop table t1;
+create table t1 (a varchar(15) character set ascii not null, b int);
+insert into t1 values ('a',1);
+select concat(a,if(b<10,_ucs2 0x0061,_ucs2 0x0062)) from t1;
+concat(a,if(b<10,_ucs2 0x0061,_ucs2 0x0062))
+aa
+select concat(a,if(b>10,_ucs2 0x0061,_ucs2 0x0062)) from t1;
+concat(a,if(b>10,_ucs2 0x0061,_ucs2 0x0062))
+ab
+select * from t1 where a=if(b<10,_ucs2 0x0061,_ucs2 0x0062);
+a b
+a 1
+select * from t1 where a=if(b>10,_ucs2 0x0061,_ucs2 0x0062);
+a b
+select concat(a,if(b<10,_ucs2 0x00C0,_ucs2 0x0062)) from t1;
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
+select concat(a,if(b>10,_ucs2 0x00C0,_ucs2 0x0062)) from t1;
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
+select concat(a,if(b<10,_ucs2 0x0062,_ucs2 0x00C0)) from t1;
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
+select concat(a,if(b>10,_ucs2 0x0062,_ucs2 0x00C0)) from t1;
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
+select * from t1 where a=if(b<10,_ucs2 0x00C0,_ucs2 0x0062);
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '='
+select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '='
+drop table t1;
+select hex(char(0x41 using ucs2));
+hex(char(0x41 using ucs2))
+0041
+End of 5.0 tests
diff --git a/mysql-test/r/ctype_ucs2_def.result b/mysql-test/r/ctype_ucs2_def.result
index 2f9dc4ae616..d838c5d66b0 100644
--- a/mysql-test/r/ctype_ucs2_def.result
+++ b/mysql-test/r/ctype_ucs2_def.result
@@ -7,3 +7,18 @@ character_set_server ucs2
DROP TABLE IF EXISTS t1;
create table t1 (a int);
drop table t1;
+End of 4.1 tests
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+hex(group_concat(a))
+612C622C63
+drop table t1;
+CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
+col2 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
+UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C');
+INSERT INTO t1 VALUES('A ', 'A ');
+ERROR 23000: Duplicate entry '' for key 1
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/ctype_ucs_binlog.result b/mysql-test/r/ctype_ucs_binlog.result
index 29718fa32a1..2657bf60c04 100644
--- a/mysql-test/r/ctype_ucs_binlog.result
+++ b/mysql-test/r/ctype_ucs_binlog.result
@@ -3,13 +3,24 @@ create table t2 (c char(30)) charset=ucs2;
set @v=convert('abc' using ucs2);
reset master;
insert into t2 values (@v);
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 User var 1 79 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
-master-bin.000001 119 Query 1 119 use `test`; insert into t2 values (@v)
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 User var 1 138 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
+master-bin.000001 138 Query 1 227 use `test`; insert into t2 values (@v)
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`;
-use test;
-SET TIMESTAMP=10000;
-insert into t2 values (@v);
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`/*!*/;
+use test/*!*/;
+SET TIMESTAMP=10000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t2 values (@v)/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t2;
diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result
index 77258ba1730..091d96c56d3 100644
--- a/mysql-test/r/ctype_ujis.result
+++ b/mysql-test/r/ctype_ujis.result
@@ -123,7 +123,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=ujis
SHOW COLUMNS FROM t1;
Field Type Null Key Default Extra
-a char(1)
+a char(1) NO
b enum('¤¢','¤¤') YES NULL
DROP TABLE t1;
CREATE TABLE t1
@@ -2313,3 +2313,33 @@ hex(convert(_ujis 0xA5FE41 using ucs2))
select hex(convert(_ujis 0x8FABF841 using ucs2));
hex(convert(_ujis 0x8FABF841 using ucs2))
003F0041
+DROP TABLE IF EXISTS t1, t2;
+DROP PROCEDURE IF EXISTS sp1;
+set names ujis;
+set character_set_database = ujis;
+set character_set_server = ujis;
+CREATE TABLE t1(c1 char(2)) default charset = ujis;
+CREATE TABLE t2(c2 char(2)) default charset = ujis;
+INSERT INTO t1 VALUES(_ujis 0xA4A2);
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE a CHAR(2) CHARSET ujis;
+DECLARE cur1 CURSOR FOR SELECT c1 FROM t1;
+OPEN cur1;
+FETCH cur1 INTO a;
+INSERT INTO t2 VALUES (a);
+CLOSE cur1;
+END|
+CALL sp1();
+SELECT c1,c2 FROM t1,t2;
+c1 c2
+¤¢ ¤¢
+SELECT hex(convert(_latin1 0xA4A2 using ujis)),hex(c2) FROM t1,t2;
+hex(convert(_latin1 0xA4A2 using ujis)) hex(c2)
+8FA2F0A1F1 A4A2
+DROP PROCEDURE sp1;
+DROP TABLE t1;
+DROP TABLE t2;
+set names default;
+set character_set_database=default;
+set character_set_server=default;
diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result
index 24f29b23e87..4a15da71ee2 100644
--- a/mysql-test/r/ctype_utf8.result
+++ b/mysql-test/r/ctype_utf8.result
@@ -124,7 +124,7 @@ create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d");
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` char(10) character set utf8 default NULL
+ `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varchar(10) character set utf8 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
date_format("2004-01-19 10:10:10", "%Y-%m-%d")
@@ -219,7 +219,7 @@ drop table t1;
create table t1 (s1 char(10) character set utf8);
insert into t1 values (0x41FF);
Warnings:
-Warning 1265 Data truncated for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
41
@@ -227,7 +227,7 @@ drop table t1;
create table t1 (s1 varchar(10) character set utf8);
insert into t1 values (0x41FF);
Warnings:
-Warning 1265 Data truncated for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
41
@@ -235,7 +235,7 @@ drop table t1;
create table t1 (s1 text character set utf8);
insert into t1 values (0x41FF);
Warnings:
-Warning 1265 Data truncated for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1
select hex(s1) from t1;
hex(s1)
41
@@ -307,7 +307,7 @@ create table t2 select ifnull(a,a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `ifnull(a,a)` char(5) character set utf8 default NULL
+ `ifnull(a,a)` varchar(5) character set utf8 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t2;
ifnull(a,a)
@@ -435,7 +435,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`c` char(10) character set utf8 default NULL,
UNIQUE KEY `a` USING HASH (`c`(1))
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa');
ERROR 23000: Duplicate entry 'aa' for key 1
@@ -471,7 +471,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`c` char(10) character set utf8 default NULL,
UNIQUE KEY `a` USING BTREE (`c`(1))
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa');
ERROR 23000: Duplicate entry 'aa' for key 1
@@ -593,7 +593,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`c` char(10) character set utf8 collate utf8_bin default NULL,
UNIQUE KEY `a` USING HASH (`c`(1))
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa');
ERROR 23000: Duplicate entry 'aa' for key 1
@@ -629,7 +629,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`c` char(10) character set utf8 collate utf8_bin default NULL,
UNIQUE KEY `a` USING BTREE (`c`(1))
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
insert into t1 values ('aa');
ERROR 23000: Duplicate entry 'aa' for key 1
@@ -831,8 +831,8 @@ create table t2 select concat(a,_utf8'') as a, concat(b,_utf8'')as b from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` char(5) character set utf8 NOT NULL default '',
- `b` char(15) character set utf8 NOT NULL default ''
+ `a` varchar(5) character set utf8 NOT NULL default '',
+ `b` varchar(15) character set utf8 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2;
drop table t1;
@@ -854,6 +854,18 @@ select * from t1 where soundex(a) = soundex('test');
id a
1 Test
drop table t1;
+select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB);
+soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)
+阅000
+select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB));
+hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB))
+E99885303030
+select soundex(_utf8 0xD091D092D093);
+soundex(_utf8 0xD091D092D093)
+Б000
+select hex(soundex(_utf8 0xD091D092D093));
+hex(soundex(_utf8 0xD091D092D093))
+D091303030
SET collation_connection='utf8_general_ci';
create table t1 select repeat('a',4000) a;
delete from t1;
@@ -1086,18 +1098,6 @@ select * from t1 where a like "%abc\d%";
a
abcd
drop table t1;
-set names utf8;
-create table t1 (a char(3), b varchar(10));
-insert into t1 values ('bar','kostja');
-prepare my_stmt from "select * from t1 where a=?";
-set @a:='bar';
-execute my_stmt using @a;
-a b
-bar kostja
-set @a:=NULL;
-execute my_stmt using @a;
-a b
-drop table t1;
CREATE TABLE t1 (
a varchar(255) NOT NULL default '',
KEY a (a)
@@ -1131,6 +1131,18 @@ LENGTH(bug)
100
DROP TABLE t2;
DROP TABLE t1;
+CREATE TABLE t1 (item varchar(255)) default character set utf8;
+INSERT INTO t1 VALUES (N'\\');
+INSERT INTO t1 VALUES (_utf8'\\');
+INSERT INTO t1 VALUES (N'Cote d\'Ivoire');
+INSERT INTO t1 VALUES (_utf8'Cote d\'Ivoire');
+SELECT item FROM t1 ORDER BY item;
+item
+Cote d'Ivoire
+Cote d'Ivoire
+\
+\
+DROP TABLE t1;
SET NAMES utf8;
DROP TABLE IF EXISTS t1;
Warnings:
@@ -1449,3 +1461,310 @@ substr(Z.a,-1) a
3 123
6 456
drop table t1;
+CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
+INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
+SELECT id FROM t1;
+id
+xxx
+aa
+yyy
+aa
+SELECT DISTINCT id FROM t1;
+id
+xxx
+aa
+yyy
+SELECT DISTINCT id FROM t1 ORDER BY id;
+id
+aa
+xxx
+yyy
+DROP TABLE t1;
+create table t1 (
+a varchar(26) not null
+) default character set utf8;
+insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz');
+select * from t1;
+a
+abcdefghijklmnopqrstuvwxyz
+alter table t1 change a a varchar(20) character set utf8 not null;
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select * from t1;
+a
+abcdefghijklmnopqrst
+alter table t1 change a a char(15) character set utf8 not null;
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select * from t1;
+a
+abcdefghijklmno
+alter table t1 change a a char(10) character set utf8 not null;
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select * from t1;
+a
+abcdefghij
+alter table t1 change a a varchar(5) character set utf8 not null;
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select * from t1;
+a
+abcde
+drop table t1;
+create table t1 (
+a varchar(4000) not null
+) default character set utf8;
+insert into t1 values (repeat('a',4000));
+alter table t1 change a a varchar(3000) character set utf8 not null;
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select length(a) from t1;
+length(a)
+3000
+drop table t1;
+set names utf8;
+select hex(char(1 using utf8));
+hex(char(1 using utf8))
+01
+select char(0xd1,0x8f using utf8);
+char(0xd1,0x8f using utf8)
+select char(0xd18f using utf8);
+char(0xd18f using utf8)
+select char(53647 using utf8);
+char(53647 using utf8)
+select char(0xff,0x8f using utf8);
+char(0xff,0x8f using utf8)
+
+Warnings:
+Warning 1300 Invalid utf8 character string: 'FF8F'
+select convert(char(0xff,0x8f) using utf8);
+convert(char(0xff,0x8f) using utf8)
+
+Warnings:
+Warning 1300 Invalid utf8 character string: 'FF8F'
+set sql_mode=traditional;
+select char(0xff,0x8f using utf8);
+char(0xff,0x8f using utf8)
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'FF8F'
+select char(195 using utf8);
+char(195 using utf8)
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'C3'
+select char(196 using utf8);
+char(196 using utf8)
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'C4'
+select char(2557 using utf8);
+char(2557 using utf8)
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'FD'
+select convert(char(0xff,0x8f) using utf8);
+convert(char(0xff,0x8f) using utf8)
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'FF8F'
+select hex(convert(char(2557 using latin1) using utf8));
+hex(convert(char(2557 using latin1) using utf8))
+09C3BD
+select hex(char(195));
+hex(char(195))
+C3
+select hex(char(196));
+hex(char(196))
+C4
+select hex(char(2557));
+hex(char(2557))
+09FD
+set names utf8;
+create table t1 (a char(1)) default character set utf8;
+create table t2 (a char(1)) default character set utf8;
+insert into t1 values('a'),('a'),(0xE38182),(0xE38182);
+insert into t1 values('i'),('i'),(0xE38184),(0xE38184);
+select * from t1 union distinct select * from t2;
+a
+a
+ã‚
+i
+ã„
+drop table t1,t2;
+set names utf8;
+create table t1 (a char(10), b varchar(10));
+insert into t1 values ('bar','kostja');
+insert into t1 values ('kostja','bar');
+prepare my_stmt from "select * from t1 where a=?";
+set @a:='bar';
+execute my_stmt using @a;
+a b
+bar kostja
+set @a:='kostja';
+execute my_stmt using @a;
+a b
+kostja bar
+set @a:=null;
+execute my_stmt using @a;
+a b
+drop table if exists t1;
+drop table if exists t1;
+drop view if exists v1, v2;
+set names utf8;
+create table t1(col1 varchar(12) character set utf8 collate utf8_unicode_ci);
+insert into t1 values('t1_val');
+create view v1 as select 'v1_val' as col1;
+select coercibility(col1), collation(col1) from v1;
+coercibility(col1) collation(col1)
+4 utf8_general_ci
+create view v2 as select col1 from v1 union select col1 from t1;
+select coercibility(col1), collation(col1)from v2;
+coercibility(col1) collation(col1)
+2 utf8_unicode_ci
+2 utf8_unicode_ci
+drop view v1, v2;
+create view v1 as select 'v1_val' collate utf8_swedish_ci as col1;
+select coercibility(col1), collation(col1) from v1;
+coercibility(col1) collation(col1)
+0 utf8_swedish_ci
+create view v2 as select col1 from v1 union select col1 from t1;
+select coercibility(col1), collation(col1) from v2;
+coercibility(col1) collation(col1)
+0 utf8_swedish_ci
+0 utf8_swedish_ci
+drop view v1, v2;
+drop table t1;
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, N'x', N'y')) from t1;
+concat(a, if(b>10, N'x', N'y'))
+ay
+select concat(a, if(b>10, N'æ', N'ß')) from t1;
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+drop table t1;
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, _utf8'x', _utf8'y')) from t1;
+concat(a, if(b>10, _utf8'x', _utf8'y'))
+ay
+select concat(a, if(b>10, _utf8'æ', _utf8'ß')) from t1;
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+drop table t1;
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, _utf8 0x78, _utf8 0x79)) from t1;
+concat(a, if(b>10, _utf8 0x78, _utf8 0x79))
+ay
+select concat(a, if(b>10, _utf8 0xC3A6, _utf8 0xC3AF)) from t1;
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+drop table t1;
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
+concat(a, if(b>10, 'x' 'x', 'y' 'y'))
+ayy
+select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1;
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+drop table t1;
+CREATE TABLE t1 (
+colA int(11) NOT NULL,
+colB varchar(255) character set utf8 NOT NULL,
+PRIMARY KEY (colA)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar');
+CREATE TABLE t2 (
+colA int(11) NOT NULL,
+colB varchar(255) character set utf8 NOT NULL,
+KEY bad (colA,colB(3))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar');
+SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB
+WHERE t1.colA < 3;
+colA colB colA colB
+1 foo 1 foo
+2 foo bar 2 foo bar
+DROP TABLE t1, t2;
+SELECT 'н1234567890' UNION SELECT _binary '1';
+н1234567890
+н1234567890
+1
+SELECT 'н1234567890' UNION SELECT 1;
+н1234567890
+н1234567890
+1
+SELECT '1' UNION SELECT 'н1234567890';
+1
+1
+н1234567890
+SELECT 1 UNION SELECT 'н1234567890';
+1
+1
+н1234567890
+CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8;
+CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT);
+INSERT INTO t1 (c) VALUES ('н1234567890');
+INSERT INTO t2 (b, i) VALUES ('1', 1);
+SELECT c FROM t1 UNION SELECT b FROM t2;
+c
+н1234567890
+1
+SELECT c FROM t1 UNION SELECT i FROM t2;
+c
+н1234567890
+1
+SELECT b FROM t2 UNION SELECT c FROM t1;
+b
+1
+н1234567890
+SELECT i FROM t2 UNION SELECT c FROM t1;
+i
+1
+н1234567890
+DROP TABLE t1, t2;
+set sql_mode=traditional;
+select hex(char(0xFF using utf8));
+hex(char(0xFF using utf8))
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'FF'
+select hex(convert(0xFF using utf8));
+hex(convert(0xFF using utf8))
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'FF'
+select hex(_utf8 0x616263FF);
+ERROR HY000: Invalid utf8 character string: 'FF'
+select hex(_utf8 X'616263FF');
+ERROR HY000: Invalid utf8 character string: 'FF'
+select hex(_utf8 B'001111111111');
+ERROR HY000: Invalid utf8 character string: 'FF'
+select (_utf8 X'616263FF');
+ERROR HY000: Invalid utf8 character string: 'FF'
+set sql_mode=default;
+select hex(char(0xFF using utf8));
+hex(char(0xFF using utf8))
+
+Warnings:
+Warning 1300 Invalid utf8 character string: 'FF'
+select hex(convert(0xFF using utf8));
+hex(convert(0xFF using utf8))
+
+Warnings:
+Warning 1300 Invalid utf8 character string: 'FF'
+select hex(_utf8 0x616263FF);
+ERROR HY000: Invalid utf8 character string: 'FF'
+select hex(_utf8 X'616263FF');
+ERROR HY000: Invalid utf8 character string: 'FF'
+select hex(_utf8 B'001111111111');
+ERROR HY000: Invalid utf8 character string: 'FF'
+select (_utf8 X'616263FF');
+ERROR HY000: Invalid utf8 character string: 'FF'
diff --git a/mysql-test/r/date_formats.result b/mysql-test/r/date_formats.result
index 07cc37fe6bc..6833a7f1594 100644
--- a/mysql-test/r/date_formats.result
+++ b/mysql-test/r/date_formats.result
@@ -79,10 +79,17 @@ concat('%d-%m-%Y',' ','%H:%i:%s.%f'));
str_to_date(concat('15-01-2001',' 2:59:58.999'),
concat('%d-%m-%Y',' ','%H:%i:%s.%f'))
2001-01-15 02:59:58.999000
+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
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'),
('03-01-02 8:11:2.123456', '%y-%m-%d %H:%i:%S.%#'),
+('0003-01-02 8:11:2.123456', '%Y-%m-%d %H:%i:%S.%#'),
+('03-01-02 8:11:2.123456', '%Y-%m-%d %H:%i:%S.%#'),
('2003-01-02 10:11:12 PM', '%Y-%m-%d %h:%i:%S %p'),
('2003-01-02 01:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f%p'),
('2003-01-02 02:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f %p'),
@@ -114,6 +121,8 @@ select date,format,str_to_date(date, format) as str_to_date from t1;
date format str_to_date
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
+0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02
+03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
@@ -145,6 +154,8 @@ select date,format,concat('',str_to_date(date, format)) as con from t1;
date format con
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
+0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02
+03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
@@ -176,6 +187,8 @@ select date,format,cast(str_to_date(date, format) as datetime) as datetime from
date format datetime
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
+0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02
+03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450
@@ -207,6 +220,8 @@ select date,format,DATE(str_to_date(date, format)) as date2 from t1;
date format date2
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02
+0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02
+03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02
@@ -238,6 +253,8 @@ select date,format,TIME(str_to_date(date, format)) as time from t1;
date format time
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 08:11:02
+0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02
+03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 22:11:12
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.123450
@@ -269,6 +286,8 @@ select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1;
date format time2
2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 10:11:12
03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 08:11:02
+0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02
+03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02
2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 22:11:12
2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.123450
2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.123450
@@ -335,6 +354,22 @@ Tuesday 52 2001 %W %V %Y NULL
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
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
@@ -353,6 +388,22 @@ Tuesday 52 2001 %W %V %Y NULL
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
truncate table t1;
insert into t1 values
('10:20:10AM', '%h:%i:%s'),
@@ -362,14 +413,14 @@ select date,format,str_to_date(date, format) as str_to_date from t1;
date format str_to_date
10:20:10AM %h:%i:%s 0000-00-00 10:20:10
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12
-03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 0003-01-02 22:11:12
+03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
Warnings:
Warning 1292 Truncated incorrect datetime value: '10:20:10AM'
select date,format,concat(str_to_date(date, format),'') as con from t1;
date format con
10:20:10AM %h:%i:%s 0000-00-00 10:20:10
2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12
-03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 0003-01-02 22:11:12
+03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12
Warnings:
Warning 1292 Truncated incorrect datetime value: '10:20:10AM'
drop table t1;
@@ -391,11 +442,13 @@ NULL
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
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 Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select makedate(1997,1) AS `makedate(1997,1)`,addtime(_latin1'31.12.97 11.59.59.999999 PM',_latin1'31.12.97 11.59.59.999999 PM') AS `addtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002")`,subtime(_latin1'31.12.97 11.59.59.999999 PM',_latin1'31.12.97 11.59.59.999999 PM') AS `subtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002")`,timediff(_latin1'01.01.97 11:59:59.000001 PM',_latin1'31.12.95 11:59:59.000002 PM') AS `timediff("01.01.97 11:59:59.000001 PM","31.12.95 11:59:59.000002 PM")`,cast(str_to_date(_latin1'15-01-2001 12:59:59',_latin1'%d-%m-%Y %H:%i:%S') as time) AS `cast(str_to_date("15-01-2001 12:59:59", "%d-%m-%Y %H:%i:%S") as TIME)`,maketime(23,11,12) AS `maketime(23,11,12)`,microsecond(_latin1'1997-12-31 23:59:59.000001') AS `microsecond("1997-12-31 23:59:59.000001")`
+Note 1003 select makedate(1997,1) AS `makedate(1997,1)`,addtime(_latin1'31.12.97 11.59.59.999999 PM',_latin1'1 1.1.1.000002') AS `addtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002")`,subtime(_latin1'31.12.97 11.59.59.999999 PM',_latin1'1 1.1.1.000002') AS `subtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002")`,timediff(_latin1'01.01.97 11:59:59.000001 PM',_latin1'31.12.95 11:59:59.000002 PM') AS `timediff("01.01.97 11:59:59.000001 PM","31.12.95 11:59:59.000002 PM")`,cast(str_to_date(_latin1'15-01-2001 12:59:59',_latin1'%d-%m-%Y %H:%i:%S') as time) AS `cast(str_to_date("15-01-2001 12:59:59", "%d-%m-%Y %H:%i:%S") as TIME)`,maketime(23,11,12) AS `maketime(23,11,12)`,microsecond(_latin1'1997-12-31 23:59:59.000001') AS `microsecond("1997-12-31 23:59:59.000001")`
create table t1 (d date);
insert into t1 values ('2004-07-14'),('2005-07-14');
select date_format(d,"%d") from t1 order by 1;
@@ -428,7 +481,7 @@ str_to_date(a,b)
create table t2 select str_to_date(a,b) from t1;
describe t2;
Field Type Null Key Default Extra
-str_to_date(a,b) binary(29) YES NULL
+str_to_date(a,b) datetime YES NULL
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1,
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S") as f2,
str_to_date("2003-01-02", "%Y-%m-%d") as f3,
diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result
new file mode 100644
index 00000000000..e2eda69c2e7
--- /dev/null
+++ b/mysql-test/r/default.result
@@ -0,0 +1,208 @@
+drop table if exists t1,t2,t3,t4,t5,t6;
+drop database if exists mysqltest;
+CREATE TABLE t1 (a varchar(30) binary NOT NULL DEFAULT ' ',
+b varchar(1) binary NOT NULL DEFAULT ' ',
+c varchar(4) binary NOT NULL DEFAULT '0000',
+d tinyblob NULL,
+e tinyblob NULL,
+f tinyblob NULL,
+g tinyblob NULL,
+h tinyblob NULL,
+i tinyblob NULL,
+j tinyblob NULL,
+k tinyblob NULL,
+l tinyblob NULL,
+m tinyblob NULL,
+n tinyblob NULL,
+o tinyblob NULL,
+p tinyblob NULL,
+q varchar(30) binary NOT NULL DEFAULT ' ',
+r varchar(30) binary NOT NULL DEFAULT ' ',
+s tinyblob NULL,
+t varchar(4) binary NOT NULL DEFAULT ' ',
+u varchar(1) binary NOT NULL DEFAULT ' ',
+v varchar(30) binary NOT NULL DEFAULT ' ',
+w varchar(30) binary NOT NULL DEFAULT ' ',
+x tinyblob NULL,
+y varchar(5) binary NOT NULL DEFAULT ' ',
+z varchar(20) binary NOT NULL DEFAULT ' ',
+a1 varchar(30) binary NOT NULL DEFAULT ' ',
+b1 tinyblob NULL)
+ENGINE=InnoDB DEFAULT CHARACTER SET = latin1 COLLATE latin1_bin;
+INSERT into t1 (b) values ('1');
+SHOW WARNINGS;
+Level Code Message
+SELECT * from t1;
+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 a1 b1
+ 1 0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
+CREATE TABLE t2 (a varchar(30) binary NOT NULL DEFAULT ' ',
+b varchar(1) binary NOT NULL DEFAULT ' ',
+c varchar(4) binary NOT NULL DEFAULT '0000',
+d tinyblob NULL,
+e tinyblob NULL,
+f tinyblob NULL,
+g tinyblob NULL,
+h tinyblob NULL,
+i tinyblob NULL,
+j tinyblob NULL,
+k tinyblob NULL,
+l tinyblob NULL,
+m tinyblob NULL,
+n tinyblob NULL,
+o tinyblob NULL,
+p tinyblob NULL,
+q varchar(30) binary NOT NULL DEFAULT ' ',
+r varchar(30) binary NOT NULL DEFAULT ' ',
+s tinyblob NULL,
+t varchar(4) binary NOT NULL DEFAULT ' ',
+u varchar(1) binary NOT NULL DEFAULT ' ',
+v varchar(30) binary NOT NULL DEFAULT ' ',
+w varchar(30) binary NOT NULL DEFAULT ' ',
+x tinyblob NULL,
+y varchar(5) binary NOT NULL DEFAULT ' ',
+z varchar(20) binary NOT NULL DEFAULT ' ',
+a1 varchar(30) binary NOT NULL DEFAULT ' ',
+b1 tinyblob NULL)
+ENGINE=MyISAM DEFAULT CHARACTER SET = latin1 COLLATE latin1_bin;
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` varchar(30) collate latin1_bin NOT NULL default ' ',
+ `b` varchar(1) collate latin1_bin NOT NULL default ' ',
+ `c` varchar(4) collate latin1_bin NOT NULL default '0000',
+ `d` tinyblob,
+ `e` tinyblob,
+ `f` tinyblob,
+ `g` tinyblob,
+ `h` tinyblob,
+ `i` tinyblob,
+ `j` tinyblob,
+ `k` tinyblob,
+ `l` tinyblob,
+ `m` tinyblob,
+ `n` tinyblob,
+ `o` tinyblob,
+ `p` tinyblob,
+ `q` varchar(30) collate latin1_bin NOT NULL default ' ',
+ `r` varchar(30) collate latin1_bin NOT NULL default ' ',
+ `s` tinyblob,
+ `t` varchar(4) collate latin1_bin NOT NULL default ' ',
+ `u` varchar(1) collate latin1_bin NOT NULL default ' ',
+ `v` varchar(30) collate latin1_bin NOT NULL default ' ',
+ `w` varchar(30) collate latin1_bin NOT NULL default ' ',
+ `x` tinyblob,
+ `y` varchar(5) collate latin1_bin NOT NULL default ' ',
+ `z` varchar(20) collate latin1_bin NOT NULL default ' ',
+ `a1` varchar(30) collate latin1_bin NOT NULL default ' ',
+ `b1` tinyblob
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin
+INSERT into t2 (b) values ('1');
+SHOW WARNINGS;
+Level Code Message
+SELECT * from t2;
+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 a1 b1
+ 1 0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
+drop table t1;
+drop table t2;
+create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00');
+insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT);
+Warnings:
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+insert into bug20691 (i) values (2);
+Warnings:
+Warning 1364 Field 'd' doesn't have a default value
+desc bug20691;
+Field Type Null Key Default Extra
+i int(11) YES NULL
+d datetime NO NULL
+dn datetime NO 0000-00-00 00:00:00
+insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT);
+Warnings:
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+insert into bug20691 (i) values (4);
+Warnings:
+Warning 1364 Field 'd' doesn't have a default value
+insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT);
+Warnings:
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+SET sql_mode = 'ALLOW_INVALID_DATES';
+insert into bug20691 values (6, DEFAULT, DEFAULT), (6, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (6, DEFAULT, DEFAULT);
+Warnings:
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+SET sql_mode = 'STRICT_ALL_TABLES';
+insert into bug20691 values (7, DEFAULT, DEFAULT), (7, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (7, DEFAULT, DEFAULT);
+ERROR HY000: Field 'd' doesn't have a default value
+select * from bug20691 order by i asc;
+i d dn
+1 0000-00-00 00:00:00 0000-00-00 00:00:00
+1 1975-07-10 07:10:03 1978-01-13 14:08:51
+1 0000-00-00 00:00:00 0000-00-00 00:00:00
+2 0000-00-00 00:00:00 0000-00-00 00:00:00
+3 0000-00-00 00:00:00 0000-00-00 00:00:00
+3 1975-07-10 07:10:03 1978-01-13 14:08:51
+3 0000-00-00 00:00:00 0000-00-00 00:00:00
+4 0000-00-00 00:00:00 0000-00-00 00:00:00
+5 0000-00-00 00:00:00 0000-00-00 00:00:00
+5 1975-07-10 07:10:03 1978-01-13 14:08:51
+5 0000-00-00 00:00:00 0000-00-00 00:00:00
+6 0000-00-00 00:00:00 0000-00-00 00:00:00
+6 1975-07-10 07:10:03 1978-01-13 14:08:51
+6 0000-00-00 00:00:00 0000-00-00 00:00:00
+drop table bug20691;
+SET sql_mode = '';
+create table bug20691 (
+a set('one', 'two', 'three') not null,
+b enum('small', 'medium', 'large', 'enormous', 'ellisonego') not null,
+c time not null,
+d date not null,
+e int not null,
+f long not null,
+g blob not null,
+h datetime not null,
+i decimal not null,
+x int);
+insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 1);
+insert into bug20691 (x) values (2);
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
+Warning 1364 Field 'c' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'e' doesn't have a default value
+Warning 1364 Field 'f' doesn't have a default value
+Warning 1364 Field 'g' doesn't have a default value
+Warning 1364 Field 'h' doesn't have a default value
+Warning 1364 Field 'i' doesn't have a default value
+insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 3);
+insert into bug20691 values (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 4);
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
+Warning 1364 Field 'b' doesn't have a default value
+Warning 1364 Field 'c' doesn't have a default value
+Warning 1364 Field 'd' doesn't have a default value
+Warning 1364 Field 'e' doesn't have a default value
+Warning 1364 Field 'f' doesn't have a default value
+Warning 1364 Field 'g' doesn't have a default value
+Warning 1364 Field 'h' doesn't have a default value
+Warning 1364 Field 'i' doesn't have a default value
+select * from bug20691 order by x asc;
+a b c d e f g h i x
+two large 00:00:05 0007-01-01 11 13 17 0019-01-01 00:00:00 23 1
+ small 00:00:00 0000-00-00 0 0000-00-00 00:00:00 0 2
+two large 00:00:05 0007-01-01 11 13 17 0019-01-01 00:00:00 23 3
+ 00:00:00 0000-00-00 0 0000-00-00 00:00:00 0 4
+drop table bug20691;
+create table t1 (id int not null);
+insert into t1 values(default);
+Warnings:
+Warning 1364 Field 'id' doesn't have a default value
+create view v1 (c) as select id from t1;
+insert into t1 values(default);
+Warnings:
+Warning 1364 Field 'id' doesn't have a default value
+drop view v1;
+drop table t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/delayed.result b/mysql-test/r/delayed.result
index ceb511a7891..b37679847be 100644
--- a/mysql-test/r/delayed.result
+++ b/mysql-test/r/delayed.result
@@ -7,6 +7,7 @@ insert delayed into t1 set a = 4;
insert delayed into t1 set a = 5, tmsp = 19711006010203;
insert delayed into t1 (a, tmsp) values (6, 19711006010203);
insert delayed into t1 (a, tmsp) values (7, NULL);
+FLUSH TABLE t1;
insert into t1 set a = 8,tmsp=19711006010203;
select * from t1 where tmsp=0;
a tmsp
@@ -22,6 +23,10 @@ insert delayed into t1 values (null,"c");
insert delayed into t1 values (3,"d"),(null,"e");
insert delayed into t1 values (3,"this will give an","error");
ERROR 21S01: Column count doesn't match value count at row 1
+FLUSH TABLE t1;
+show status like 'not_flushed_delayed_rows';
+Variable_name Value
+Not_flushed_delayed_rows 0
select * from t1;
a b
1 b
@@ -29,3 +34,224 @@ a b
3 d
4 e
drop table t1;
+create table t1 (a int not null primary key);
+insert into t1 values (1);
+insert delayed into t1 values (1);
+select * from t1;
+a
+1
+drop table t1;
+CREATE TABLE t1 ( a int(10) NOT NULL auto_increment, PRIMARY KEY (a));
+insert delayed into t1 values(null);
+insert into t1 values(null);
+insert into t1 values(null);
+insert delayed into t1 values(null);
+insert delayed into t1 values(null);
+insert delayed into t1 values(null);
+insert into t1 values(null);
+insert into t1 values(null);
+insert into t1 values(null);
+delete from t1 where a=6;
+insert delayed into t1 values(null);
+insert delayed into t1 values(null);
+insert delayed into t1 values(null);
+insert delayed into t1 values(null);
+FLUSH TABLE t1;
+select * from t1 order by a;
+a
+1
+2
+3
+4
+5
+7
+8
+9
+10
+11
+12
+13
+DROP TABLE t1;
+SET @bug20627_old_auto_increment_offset=
+@@auto_increment_offset= 2;
+SET @bug20627_old_auto_increment_increment=
+@@auto_increment_increment= 3;
+SET @bug20627_old_session_auto_increment_offset=
+@@session.auto_increment_offset= 4;
+SET @bug20627_old_session_auto_increment_increment=
+@@session.auto_increment_increment= 5;
+SET @@auto_increment_offset= 2;
+SET @@auto_increment_increment= 3;
+SET @@session.auto_increment_offset= 4;
+SET @@session.auto_increment_increment= 5;
+CREATE TABLE t1 (
+c1 INT NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (c1)
+);
+INSERT INTO t1 VALUES (NULL),(NULL),(NULL);
+SELECT * FROM t1;
+c1
+4
+9
+14
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 INT NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (c1)
+);
+INSERT DELAYED INTO t1 VALUES (NULL),(NULL),(NULL);
+FLUSH TABLE t1;
+SELECT * FROM t1;
+c1
+4
+9
+14
+DROP TABLE t1;
+SET @@auto_increment_offset=
+@bug20627_old_auto_increment_offset;
+SET @@auto_increment_increment=
+@bug20627_old_auto_increment_increment;
+SET @@session.auto_increment_offset=
+@bug20627_old_session_auto_increment_offset;
+SET @@session.auto_increment_increment=
+@bug20627_old_session_auto_increment_increment;
+SET @bug20830_old_auto_increment_offset=
+@@auto_increment_offset= 2;
+SET @bug20830_old_auto_increment_increment=
+@@auto_increment_increment= 3;
+SET @bug20830_old_session_auto_increment_offset=
+@@session.auto_increment_offset= 4;
+SET @bug20830_old_session_auto_increment_increment=
+@@session.auto_increment_increment= 5;
+SET @@auto_increment_offset= 2;
+SET @@auto_increment_increment= 3;
+SET @@session.auto_increment_offset= 4;
+SET @@session.auto_increment_increment= 5;
+CREATE TABLE t1 (
+c1 INT(11) NOT NULL AUTO_INCREMENT,
+c2 INT(11) DEFAULT NULL,
+PRIMARY KEY (c1)
+);
+SET insert_id= 14;
+INSERT INTO t1 VALUES(NULL, 11), (NULL, 12), (NULL, 13);
+INSERT INTO t1 VALUES(NULL, 21), (NULL, 22), (NULL, 23);
+INSERT INTO t1 VALUES( 69, 31), (NULL, 32), (NULL, 33);
+INSERT INTO t1 VALUES(NULL, 41), (NULL, 42), (NULL, 43);
+SET insert_id= 114;
+INSERT INTO t1 VALUES(NULL, 51), (NULL, 52), (NULL, 53);
+INSERT INTO t1 VALUES(NULL, 61), (NULL, 62), (NULL, 63);
+INSERT INTO t1 VALUES( 49, 71), (NULL, 72), (NULL, 73);
+INSERT INTO t1 VALUES(NULL, 81), (NULL, 82), (NULL, 83);
+SET insert_id= 114;
+INSERT INTO t1 VALUES(NULL, 91);
+ERROR 23000: Duplicate entry '114' for key 1
+INSERT INTO t1 VALUES (NULL, 92), (NULL, 93);
+SELECT * FROM t1;
+c1 c2
+14 11
+19 12
+24 13
+29 21
+34 22
+39 23
+69 31
+74 32
+79 33
+84 41
+89 42
+94 43
+114 51
+119 52
+124 53
+129 61
+134 62
+139 63
+49 71
+144 72
+149 73
+154 81
+159 82
+164 83
+169 92
+174 93
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+26
+SELECT SUM(c1) FROM t1;
+SUM(c1)
+2569
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 INT(11) NOT NULL AUTO_INCREMENT,
+c2 INT(11) DEFAULT NULL,
+PRIMARY KEY (c1)
+);
+SET insert_id= 14;
+INSERT DELAYED INTO t1 VALUES(NULL, 11), (NULL, 12), (NULL, 13);
+INSERT DELAYED INTO t1 VALUES(NULL, 21), (NULL, 22), (NULL, 23);
+INSERT DELAYED INTO t1 VALUES( 69, 31), (NULL, 32), (NULL, 33);
+INSERT DELAYED INTO t1 VALUES(NULL, 41), (NULL, 42), (NULL, 43);
+SET insert_id= 114;
+INSERT DELAYED INTO t1 VALUES(NULL, 51), (NULL, 52), (NULL, 53);
+INSERT DELAYED INTO t1 VALUES(NULL, 61), (NULL, 62), (NULL, 63);
+INSERT DELAYED INTO t1 VALUES( 49, 71), (NULL, 72), (NULL, 73);
+INSERT DELAYED INTO t1 VALUES(NULL, 81), (NULL, 82), (NULL, 83);
+SET insert_id= 114;
+INSERT DELAYED INTO t1 VALUES(NULL, 91);
+INSERT DELAYED INTO t1 VALUES (NULL, 92), (NULL, 93);
+FLUSH TABLE t1;
+SELECT * FROM t1;
+c1 c2
+14 11
+19 12
+24 13
+29 21
+34 22
+39 23
+69 31
+74 32
+79 33
+84 41
+89 42
+94 43
+114 51
+119 52
+124 53
+129 61
+134 62
+139 63
+49 71
+144 72
+149 73
+154 81
+159 82
+164 83
+169 92
+174 93
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+26
+SELECT SUM(c1) FROM t1;
+SUM(c1)
+2569
+DROP TABLE t1;
+SET @@auto_increment_offset=
+@bug20830_old_auto_increment_offset;
+SET @@auto_increment_increment=
+@bug20830_old_auto_increment_increment;
+SET @@session.auto_increment_offset=
+@bug20830_old_session_auto_increment_offset;
+SET @@session.auto_increment_increment=
+@bug20830_old_session_auto_increment_increment;
+CREATE TABLE t1(a BIT);
+INSERT DELAYED INTO t1 VALUES(1);
+FLUSH TABLE t1;
+SELECT HEX(a) FROM t1;
+HEX(a)
+1
+DROP TABLE t1;
+CREATE TABLE t1(c1 INT) ENGINE=MyISAM;
+CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
+INSERT DELAYED INTO t2 VALUES(1);
+ERROR HY000: Table storage engine for 't2' doesn't have this option
+DROP TABLE t1, t2;
diff --git a/mysql-test/r/delete.result b/mysql-test/r/delete.result
index 5dd37e6b98d..eb93c69d960 100644
--- a/mysql-test/r/delete.result
+++ b/mysql-test/r/delete.result
@@ -1,4 +1,4 @@
-drop table if exists t1,t11,t12,t2;
+drop table if exists t1,t2,t3,t11,t12;
CREATE TABLE t1 (a tinyint(3), b tinyint(5));
INSERT INTO t1 VALUES (1,1);
INSERT LOW_PRIORITY INTO t1 VALUES (1,2);
@@ -176,16 +176,6 @@ create table t1 (a int);
delete `4.t1` from t1 as `4.t1` where `4.t1`.a = 5;
delete FROM `4.t1` USING t1 as `4.t1` where `4.t1`.a = 5;
drop table t1;
-create table t1(a date not null);
-insert into t1 values (0);
-select * from t1 where a is null;
-a
-0000-00-00
-delete from t1 where a is null;
-select count(*) from t1;
-count(*)
-0
-drop table t1;
create table t1(f1 int primary key);
insert into t1 values (4),(3),(1),(2);
delete from t1 where (@a:= f1) order by f1 limit 1;
@@ -205,3 +195,87 @@ KEY `date` (`date`)
DELETE FROM t1 ORDER BY date ASC, time ASC LIMIT 1;
drop table t1;
End of 4.1 tests
+CREATE TABLE t1 (a int not null,b int not null);
+CREATE TABLE t2 (a int not null, b int not null, primary key (a,b));
+CREATE TABLE t3 (a int not null, b int not null, primary key (a,b));
+insert into t1 values (1,1),(2,1),(1,3);
+insert into t2 values (1,1),(2,2),(3,3);
+insert into t3 values (1,1),(2,1),(1,3);
+select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b;
+a b a b a b
+1 1 1 1 1 1
+2 1 2 2 2 1
+1 3 1 1 1 3
+explain select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 8 test.t2.b,test.t1.b 1 Using index
+delete t2.*,t3.* from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b;
+select * from t3;
+a b
+drop table t1,t2,t3;
+create table t1(a date not null);
+insert into t1 values (0);
+select * from t1 where a is null;
+a
+0000-00-00
+delete from t1 where a is null;
+select count(*) from t1;
+count(*)
+0
+drop table t1;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+DELETE FROM t1 ORDER BY x;
+ERROR 42S22: Unknown column 'x' in 'order clause'
+DELETE FROM t1 ORDER BY t2.x;
+ERROR 42S22: Unknown column 't2.x' in 'order clause'
+DELETE FROM t1 ORDER BY (SELECT x);
+ERROR 42S22: Unknown column 'x' in 'field list'
+DROP TABLE t1;
+CREATE TABLE t1 (
+a INT
+);
+CREATE TABLE t2 (
+a INT
+);
+CREATE DATABASE db1;
+CREATE TABLE db1.t1 (
+a INT
+);
+INSERT INTO db1.t1 (a) SELECT * FROM t1;
+CREATE DATABASE db2;
+CREATE TABLE db2.t1 (
+a INT
+);
+INSERT INTO db2.t1 (a) SELECT * FROM t2;
+DELETE FROM t1 alias USING t1, t2 alias WHERE t1.a = alias.a;
+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 'alias USING t1, t2 alias WHERE t1.a = alias.a' at line 1
+DELETE FROM alias USING t1, t2 alias WHERE t1.a = alias.a;
+DELETE FROM t1, alias USING t1, t2 alias WHERE t1.a = alias.a;
+DELETE FROM t1, t2 USING t1, t2 alias WHERE t1.a = alias.a;
+ERROR 42S02: Unknown table 't2' in MULTI DELETE
+DELETE FROM db1.t1 alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+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 'alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a' at line 1
+DELETE FROM alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+ERROR 42S02: Unknown table 'alias' in MULTI DELETE
+DELETE FROM db2.alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+DELETE FROM t1 USING t1 WHERE a = 1;
+SELECT * FROM t1;
+a
+DELETE FROM t1 alias USING t1 alias WHERE a = 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 'alias USING t1 alias WHERE a = 2' at line 1
+SELECT * FROM t1;
+a
+DROP TABLE t1, t2;
+DROP DATABASE db1;
+DROP DATABASE db2;
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (0);
+DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
+ERROR 42000: Incorrect number of arguments for FUNCTION test.f1; expected 0, got 1
+DROP TABLE t1;
+DROP FUNCTION f1;
+End of 5.0 tests
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result
index b4d9a921178..81502c7b430 100644
--- a/mysql-test/r/derived.result
+++ b/mysql-test/r/derived.result
@@ -111,7 +111,7 @@ a b
1 a
2 b
3 c
-explain select * from (select * from t1,t2 where t1.a=t2.a) t1;
+explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
2 DERIVED t2 system NULL NULL NULL NULL 1
@@ -149,8 +149,8 @@ SELECT * FROM (SELECT (SELECT * FROM (SELECT 1 as a) as a )) as b;
(SELECT * FROM (SELECT 1 as a) as a )
1
select * from (select 1 as a) b left join (select 2 as a) c using(a);
-a a
-1 NULL
+a
+1
SELECT * FROM (SELECT 1 UNION SELECT a) b;
ERROR 42S22: Unknown column 'a' in 'field list'
SELECT 1 as a FROM (SELECT a UNION SELECT 1) b;
@@ -202,6 +202,7 @@ drop table t1,t2;
SELECT a.x FROM (SELECT 1 AS x) AS a HAVING a.x = 1;
x
1
+create user mysqltest_1;
create table t1 select 1 as a;
select 2 as a from (select * from t1) b;
ERROR 3D000: No database selected
@@ -276,7 +277,7 @@ select * from t1;
N M
3 0
delete P1.*,p2.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS p2 ON P1.N = p2.N;
-ERROR HY000: The target table p2 of the DELETE is not updatable
+ERROR 42S02: Unknown table 'p2' in MULTI DELETE
delete P1.* from `t1` AS P1 INNER JOIN (SELECT aaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
ERROR 42S22: Unknown column 'aaa' in 'field list'
drop table t1;
@@ -318,14 +319,15 @@ create table t2 (a int, b int, primary key (a));
insert into t2 values (1,7),(2,7);
explain select a from t2 where a>1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
+1 SIMPLE t2 index PRIMARY PRIMARY 4 NULL 2 Using where; Using index
explain select a from (select a from t2 where a>1) tt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
-2 DERIVED t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
+2 DERIVED t2 index PRIMARY PRIMARY 4 NULL 2 Using where; Using index
drop table t2;
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
-insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
+insert into t1 values (128, 'rozn', 2, curdate(), 10),
+(128, 'rozn', 1, curdate(), 10);
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
min max avg
10.00 10.00 10
@@ -339,6 +341,11 @@ select distinct sum(b) from (select a,b from t1) y group by a;
sum(b)
4
drop table t1;
+CREATE TABLE t1 (a char(10), b char(10));
+INSERT INTO t1 VALUES ('root','localhost'), ('root','%');
+SELECT * FROM (SELECT (SELECT a.a FROM t1 AS a WHERE a.a = b.a) FROM t1 AS b) AS c;
+ERROR 21000: Subquery returns more than 1 row
+DROP TABLE t1;
create table t1(a int);
create table t2(a int);
create table t3(a int);
@@ -358,3 +365,21 @@ a
3
3
drop table t1, t2, t3;
+create table t1 (a int);
+create table t2 (a int);
+select * from (select * from t1,t2) foo;
+ERROR 42S21: Duplicate column name 'a'
+drop table t1,t2;
+create table t1 (ID int unsigned not null auto_increment,
+DATA varchar(5) not null, primary key (ID));
+create table t2 (ID int unsigned not null auto_increment,
+DATA varchar(5) not null, FID int unsigned not null,
+primary key (ID));
+select A.* from (t1 inner join (select * from t2) as A on t1.ID = A.FID);
+ID DATA FID
+select t2.* from ((select * from t1) as A inner join t2 on A.ID = t2.FID);
+ID DATA FID
+select t2.* from (select * from t1) as A inner join t2 on A.ID = t2.FID;
+ID DATA FID
+drop table t1, t2;
+drop user mysqltest_1;
diff --git a/mysql-test/r/distinct.result b/mysql-test/r/distinct.result
index 7334c9b2da4..8cfe5aa78b5 100644
--- a/mysql-test/r/distinct.result
+++ b/mysql-test/r/distinct.result
@@ -212,7 +212,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using index
explain SELECT distinct a from t3 order by a desc limit 2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t3 index NULL a 5 NULL 204 Using index
+1 SIMPLE t3 index NULL a 5 NULL 10 Using index
explain SELECT distinct a,b from t3 order by a+1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t3 ALL NULL NULL NULL NULL 204 Using temporary; Using filesort
@@ -388,8 +388,8 @@ SELECT DISTINCTROW email, shipcode FROM t1, t2 WHERE t1.infoID=t2.infoID;
email shipcode
test1@testdomain.com Z001
test2@testdomain.com Z001
-test3@testdomain.com Z001
test2@testdomain.com R002
+test3@testdomain.com Z001
SELECT DISTINCTROW email FROM t1 ORDER BY dateentered DESC;
email
test1@testdomain.com
@@ -457,12 +457,12 @@ drop table t1,t2;
CREATE TABLE t1 (
html varchar(5) default NULL,
rin int(11) default '0',
-out int(11) default '0'
+rout int(11) default '0'
) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('1',1,0);
-SELECT DISTINCT html,SUM(out)/(SUM(rin)+1) as 'prod' FROM t1 GROUP BY rin;
+SELECT DISTINCT html,SUM(rout)/(SUM(rin)+1) as 'prod' FROM t1 GROUP BY rin;
html prod
-1 0.00
+1 0.0000
drop table t1;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
@@ -526,18 +526,19 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 4 NULL 3 Using index
EXPLAIN SELECT a,b FROM t1 GROUP BY a,b;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
EXPLAIN SELECT DISTINCT a,b FROM t1 GROUP BY a,b;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL NULL NULL NULL NULL 3
-CREATE TABLE t2(a INT, b INT, c INT, d INT, PRIMARY KEY (a,b));
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
+CREATE TABLE t2(a INT, b INT NOT NULL, c INT NOT NULL, d INT,
+PRIMARY KEY (a,b));
INSERT INTO t2 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
EXPLAIN SELECT DISTINCT a FROM t2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 index NULL PRIMARY 8 NULL 3 Using index
EXPLAIN SELECT DISTINCT a,a FROM t2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 index NULL PRIMARY 8 NULL 3 Using index; Using temporary
+1 SIMPLE t2 index NULL PRIMARY 8 NULL 3 Using index
EXPLAIN SELECT DISTINCT b,a FROM t2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 index NULL PRIMARY 8 NULL 3 Using index
@@ -553,8 +554,16 @@ id select_type table type possible_keys key key_len ref rows Extra
CREATE UNIQUE INDEX c_b_unq ON t2 (c,b);
EXPLAIN SELECT DISTINCT a,b,d FROM t2 GROUP BY c,b,d;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using filesort
DROP TABLE t1,t2;
+create table t1 (id int, dsc varchar(50));
+insert into t1 values (1, "line number one"), (2, "line number two"), (3, "line number three");
+select distinct id, IFNULL(dsc, '-') from t1;
+id IFNULL(dsc, '-')
+1 line number one
+2 line number two
+3 line number three
+drop table t1;
CREATE TABLE t1 (a int primary key, b int);
INSERT INTO t1 (a,b) values (1,1), (2,3), (3,2);
explain SELECT DISTINCT a, b FROM t1 ORDER BY b;
@@ -566,62 +575,110 @@ a b
3 2
2 3
DROP TABLE t1;
-DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-INSERT INTO t1 VALUES (1,1,'ORANGE');
-INSERT INTO t1 VALUES (2,2,'APPLE');
-INSERT INTO t1 VALUES (3,2,'APPLE');
-INSERT INTO t1 VALUES (4,3,'PEAR');
-SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v1, @v2;
-@v1 @v2
-2 APPLE
-SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
-fruit_name HAVING fruit_name = 'APPLE';
-SELECT @v3, @v4;
-@v3 @v4
-2 APPLE
-SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
-fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8;
-@v5 @v6 @v7 @v8
-2 APPLE 2 APPLE
-SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
-WHERE fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8, @v9, @v10;
-@v5 @v6 @v7 @v8 @v9 @v10
-2 APPLE 2 APPLE 4 APPLEAPPLE
-SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
-@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v11, @v12, @v13, @v14;
-@v11 @v12 @v13 @v14
-4 APPLEAPPLE 4 APPLEAPPLE
-SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v15, @v16;
-@v15 @v16
-4 APPLEAPPLE
-SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v17, @v18;
-@v17 @v18
-4 Bob
-DROP TABLE IF EXISTS t2;
-CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
-'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
-SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
-'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
-SELECT @v19, @v20;
-@v19 @v20
-2 APPLE
-SELECT * FROM t2;
-fruit_id fruit_name
-2 APPLE
-2 APPLE
+CREATE TABLE t1 (
+ID int(11) NOT NULL auto_increment,
+x varchar(20) default NULL,
+y decimal(10,0) default NULL,
+PRIMARY KEY (ID),
+KEY (y)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+INSERT INTO t1 VALUES
+(1,'ba','-1'),
+(2,'ba','1150'),
+(306,'ba','-1'),
+(307,'ba','1150'),
+(611,'ba','-1'),
+(612,'ba','1150');
+select count(distinct x,y) from t1;
+count(distinct x,y)
+2
+select count(distinct concat(x,y)) from t1;
+count(distinct concat(x,y))
+2
+drop table t1;
+CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES (1, 101);
+INSERT INTO t1 SELECT a + 1, a + 101 FROM t1;
+INSERT INTO t1 SELECT a + 2, a + 102 FROM t1;
+INSERT INTO t1 SELECT a + 4, a + 104 FROM t1;
+INSERT INTO t1 SELECT a + 8, a + 108 FROM t1;
+EXPLAIN SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL PRIMARY 8 NULL 16 Using where; Using index
+SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
+a a
+DROP TABLE t1;
+CREATE TABLE t1 (a CHAR(1));
+INSERT INTO t1 VALUES('A'), (0);
+SELECT a FROM t1 WHERE a=0;
+a
+A
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'A'
+SELECT DISTINCT a FROM t1 WHERE a=0;
+a
+A
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'A'
+DROP TABLE t1;
+CREATE TABLE t1 (a DATE);
+INSERT INTO t1 VALUES ('1972-07-29'), ('1972-02-06');
+EXPLAIN SELECT (SELECT DISTINCT a FROM t1 WHERE a = '2002-08-03');
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
+2 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
+EXPLAIN SELECT (SELECT DISTINCT ADDDATE(a,1) FROM t1
+WHERE ADDDATE(a,1) = '2002-08-03');
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
+2 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
+CREATE TABLE t2 (a CHAR(5) CHARACTER SET latin1 COLLATE latin1_general_ci);
+INSERT INTO t2 VALUES (0xf6);
+INSERT INTO t2 VALUES ('oe');
+SELECT COUNT(*) FROM (SELECT DISTINCT a FROM t2) dt;
+COUNT(*)
+2
+SELECT COUNT(*) FROM
+(SELECT DISTINCT a FROM t2 WHERE a='oe' COLLATE latin1_german2_ci) dt;
+COUNT(*)
+2
+DROP TABLE t1, t2;
+CREATE TABLE t1 (a INT, UNIQUE (a));
+INSERT INTO t1 VALUES (4),(null),(2),(1),(null),(3);
+EXPLAIN SELECT DISTINCT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 6 Using index
+SELECT DISTINCT a FROM t1;
+a
+NULL
+1
+2
+3
+4
+EXPLAIN SELECT a FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 6 Using index
+SELECT a FROM t1 GROUP BY a;
+a
+NULL
+1
+2
+3
+4
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES(1,1),(1,2),(1,3);
+SELECT DISTINCT a, b FROM t1;
+a b
+1 1
+1 2
+1 3
+SELECT DISTINCT a, a, b FROM t1;
+a a b
+1 1 1
+1 1 2
+1 1 3
DROP TABLE t1;
-DROP TABLE t2;
+End of 5.0 tests
diff --git a/mysql-test/r/drop.result b/mysql-test/r/drop.result
index b07cf16aa64..ff11905aa34 100644
--- a/mysql-test/r/drop.result
+++ b/mysql-test/r/drop.result
@@ -46,6 +46,7 @@ unlock tables;
create database mysqltest;
show databases;
Database
+information_schema
mysql
mysqltest
test
@@ -56,6 +57,7 @@ unlock tables;
drop database mysqltest;
show databases;
Database
+information_schema
mysql
test
drop database mysqltest;
@@ -70,3 +72,16 @@ show tables;
Tables_in_test
t1
drop table t1;
+drop database if exists mysqltest;
+drop table if exists t1;
+create table t1 (i int);
+lock tables t1 read;
+create database mysqltest;
+drop table t1;
+show open tables;
+drop database mysqltest;
+select 1;
+1
+1
+unlock tables;
+End of 5.0 tests
diff --git a/mysql-test/r/drop_temp_table.result b/mysql-test/r/drop_temp_table.result
index 40afd621676..96481341bd6 100644
--- a/mysql-test/r/drop_temp_table.result
+++ b/mysql-test/r/drop_temp_table.result
@@ -1,3 +1,4 @@
+drop database if exists `drop-temp+table-test`;
reset master;
create database `drop-temp+table-test`;
use `drop-temp+table-test`;
@@ -11,13 +12,11 @@ select get_lock("a",10);
get_lock("a",10)
1
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 # Start 1 # Server ver: VERSION, Binlog ver: 3
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
master-bin.000001 # Query 1 # create database `drop-temp+table-test`
master-bin.000001 # Query 1 # use `drop-temp+table-test`; create temporary table shortn1 (a int)
master-bin.000001 # Query 1 # use `drop-temp+table-test`; create temporary table `table:name` (a int)
master-bin.000001 # Query 1 # use `drop-temp+table-test`; create temporary table shortn2 (a int)
-master-bin.000001 # Query 1 # use `drop-temp+table-test`; SET ONE_SHOT CHARACTER_SET_CLIENT=33,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=8
master-bin.000001 # Query 1 # use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `drop-temp+table-test`.`shortn2`,`drop-temp+table-test`.`table:name`,`drop-temp+table-test`.`shortn1`
-master-bin.000001 # Query 1 # use `drop-temp+table-test`; DO RELEASE_LOCK("a")
drop database `drop-temp+table-test`;
diff --git a/mysql-test/r/endspace.result b/mysql-test/r/endspace.result
index 96210a0e16d..003ee7ffd5e 100644
--- a/mysql-test/r/endspace.result
+++ b/mysql-test/r/endspace.result
@@ -43,7 +43,7 @@ teststring
teststring
explain select * from t1 order by text1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL key1 32 NULL 3 Using index
+1 SIMPLE t1 index NULL key1 34 NULL 3 Using index
alter table t1 modify text1 char(32) binary not null;
check table t1;
Table Op Msg_type Msg_text
@@ -98,16 +98,16 @@ concat('|', text1, '|')
|teststring |
explain select concat('|', text1, '|') from t1 where text1='teststring ';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range key1 key1 22 NULL 2 Using where
-select * from t1 where text1 like 'teststring_%';
-text1
-teststring
-teststring
-select * from t1 where text1='teststring' or text1 like 'teststring_%';
-text1
-teststring
-teststring
-teststring
+1 SIMPLE t1 ref key1 key1 22 const 2 Using where
+select concat('|', text1, '|') from t1 where text1 like 'teststring_%';
+concat('|', text1, '|')
+|teststring |
+|teststring |
+select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
+concat('|', text1, '|')
+|teststring |
+|teststring|
+|teststring |
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
concat('|', text1, '|')
|teststring|
@@ -121,14 +121,14 @@ concat('|', text1, '|')
drop table t1;
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) pack_keys=0;
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
-select * from t1 where text1='teststring' or text1 like 'teststring_%';
-text1
-teststring
-teststring
-select * from t1 where text1='teststring' or text1 >= 'teststring\t';
-text1
-teststring
-teststring
+select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
+concat('|', text1, '|')
+|teststring |
+|teststring|
+select concat('|', text1, '|') from t1 where text1='teststring' or text1 >= 'teststring\t';
+concat('|', text1, '|')
+|teststring |
+|teststring|
drop table t1;
create table t1 (text1 varchar(32) not NULL, KEY key1 using BTREE (text1)) engine=heap;
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
@@ -151,7 +151,7 @@ teststring
teststring
explain select * from t1 order by text1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL key1 32 NULL 3
+1 SIMPLE t1 index NULL key1 34 NULL 3
alter table t1 modify text1 char(32) binary not null;
select * from t1 order by text1;
text1
@@ -178,7 +178,7 @@ teststring
teststring
explain select * from t1 order by text1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL key1 32 NULL 3 Using index
+1 SIMPLE t1 index NULL key1 34 NULL 3 Using index
alter table t1 modify text1 char(32) binary not null;
select * from t1 order by text1;
text1
@@ -200,13 +200,13 @@ teststring
teststring
select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
text1 length(text1)
-teststring 10
teststring 11
+teststring 10
teststring 11
select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
text1 length(text1)
-teststring 10
teststring 11
+teststring 10
teststring 11
select concat('|', text1, '|') from t1 order by text1;
concat('|', text1, '|')
diff --git a/mysql-test/r/error_simulation.result b/mysql-test/r/error_simulation.result
new file mode 100644
index 00000000000..805e8fabbd8
--- /dev/null
+++ b/mysql-test/r/error_simulation.result
@@ -0,0 +1,19 @@
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE t1 (
+a varchar(32) character set utf8 collate utf8_bin NOT NULL,
+b varchar(32) character set utf8 collate utf8_bin NOT NULL )
+ENGINE=MyISAM DEFAULT CHARSET=utf8;
+INSERT INTO t1 VALUES
+('AAAAAAAAAA','AAAAAAAAAA'), ('AAAAAAAAAB','AAAAAAAAAB '),
+('AAAAAAAAAB','AAAAAAAAAB'), ('AAAAAAAAAC','AAAAAAAAAC'),
+('AAAAAAAAAD','AAAAAAAAAD'), ('AAAAAAAAAE','AAAAAAAAAE'),
+('AAAAAAAAAF','AAAAAAAAAF'), ('AAAAAAAAAG','AAAAAAAAAG'),
+('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'),
+('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK');
+set tmp_table_size=1024;
+SELECT MAX(a) FROM t1 GROUP BY a,b;
+ERROR 23000: Can't write; duplicate key in table ''
+set tmp_table_size=default;
+DROP TABLE t1;
diff --git a/mysql-test/r/errors.result b/mysql-test/r/errors.result
index d0011c8deb6..022a32d9c9b 100644
--- a/mysql-test/r/errors.result
+++ b/mysql-test/r/errors.result
@@ -9,9 +9,9 @@ create table t1 (a int);
select count(test.t1.b) from t1;
ERROR 42S22: Unknown column 'test.t1.b' in 'field list'
select count(not_existing_database.t1) from t1;
-ERROR 42S02: Unknown table 'not_existing_database' in field list
+ERROR 42S22: Unknown column 'not_existing_database.t1' in 'field list'
select count(not_existing_database.t1.a) from t1;
-ERROR 42S02: Unknown table 'not_existing_database.t1' in field list
+ERROR 42S22: Unknown column 'not_existing_database.t1.a' in 'field list'
select count(not_existing_database.t1.a) from not_existing_database.t1;
Got one of the listed errors
select 1 from t1 order by 2;
@@ -23,3 +23,35 @@ ERROR 42S22: Unknown column 't1.b' in 'order clause'
select count(*),b from t1;
ERROR 42S22: Unknown column 'b' in 'field list'
drop table t1;
+create table t1 (a int(256));
+ERROR 42000: Display width out of range for column 'a' (max = 255)
+set sql_mode='traditional';
+create table t1 (a varchar(66000));
+ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
+set sql_mode=default;
+CREATE TABLE t1 (a INT);
+SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
+a
+INSERT INTO t1 VALUES(1);
+SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
+a
+1
+INSERT INTO t1 VALUES(2),(3);
+SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
+a
+1
+DROP TABLE t1;
+CREATE TABLE t1( a INT );
+SELECT b FROM t1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+SHOW ERRORS;
+Level Code Message
+Error 1054 Unknown column 'b' in 'field list'
+CREATE TABLE t2 SELECT b FROM t1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+SHOW ERRORS;
+Level Code Message
+Error 1054 Unknown column 'b' in 'field list'
+INSERT INTO t1 SELECT b FROM t1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+DROP TABLE t1;
diff --git a/mysql-test/r/execution_constants.result b/mysql-test/r/execution_constants.result
new file mode 100644
index 00000000000..293c88dc506
--- /dev/null
+++ b/mysql-test/r/execution_constants.result
@@ -0,0 +1,12 @@
+CREATE TABLE `t_bug21476` (
+`ID_BOARD` smallint(5) unsigned NOT NULL default '0',
+`ID_MEMBER` mediumint(8) unsigned NOT NULL default '0',
+`logTime` int(10) unsigned NOT NULL default '0',
+`ID_MSG` mediumint(8) unsigned NOT NULL default '0',
+PRIMARY KEY (`ID_MEMBER`,`ID_BOARD`),
+KEY `logTime` (`logTime`)
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci;
+INSERT INTO `t_bug21476` VALUES (2,2,1154870939,0),(1,2,1154870957,0),(2,183,1154941362,0),(2,84,1154904301,0),(1,84,1154905867,0),(2,13,1154947484,10271),(3,84,1154880549,0),(1,6,1154892183,0),(2,25,1154947581,10271),(3,25,1154904760,0),(1,25,1154947373,10271),(1,179,1154899992,0),(2,179,1154899410,0),(5,25,1154901666,0),(2,329,1154902026,0),(3,329,1154902040,0),(1,329,1154902058,0),(1,13,1154930841,0),(3,85,1154904987,0),(1,183,1154929665,0),(3,13,1154931268,0),(1,85,1154936888,0),(1,169,1154937959,0),(2,169,1154941717,0),(3,183,1154939810,0),(3,169,1154941734,0);
+Assertion: mysql_errno 1436 == 1436
+DROP TABLE `t_bug21476`;
+End of 5.0 tests.
diff --git a/mysql-test/r/explain.result b/mysql-test/r/explain.result
index 047e2c1456e..24ff44945bf 100644
--- a/mysql-test/r/explain.result
+++ b/mysql-test/r/explain.result
@@ -53,3 +53,37 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE ÔÁÂ ref ÉÎÄ0,ÉÎÄ01 ÉÎÄ0 5 const 1 Using where; Using index
drop table ÔÁÂ;
set names latin1;
+select 3 into @v1;
+explain select 3 into @v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
+create table t1(f1 int, f2 int);
+insert into t1 values (1,1);
+create view v1 as select * from t1 where f1=1;
+explain extended select * from v1 where f2=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+Warnings:
+Note 1003 select '1' AS `f1`,'1' AS `f2` from `test`.`t1` where 1
+explain extended select * from t1 where 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+Warnings:
+Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2` from `test`.`t1` where 0
+explain extended select * from t1 where 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+Warnings:
+Note 1003 select '1' AS `f1`,'1' AS `f2` from `test`.`t1` where 1
+explain extended select * from t1 having 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible HAVING
+Warnings:
+Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2` from `test`.`t1` having 0
+explain extended select * from t1 having 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+Warnings:
+Note 1003 select '1' AS `f1`,'1' AS `f2` from `test`.`t1` having 1
+drop view v1;
+drop table t1;
diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result
new file mode 100644
index 00000000000..2e7d0ddcea7
--- /dev/null
+++ b/mysql-test/r/federated.result
@@ -0,0 +1,1940 @@
+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;
+stop slave;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP TABLE IF EXISTS federated.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:@/too/many/items/federated/t1';
+ERROR HY000: Can't create federated table. The data source connection string 'mysql://root@127.0.0.1:@/too/many/items/federated/t1' is not in the correct format
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1';
+ERROR HY000: Can't create federated table. The data source connection string 'mysql://root@127.0.0.1' is not in the correct format
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t3';
+SELECT * FROM federated.t1;
+ERROR HY000: The foreign data source you are trying to reference does not exist. Data source error: error: 1146 'Table 'federated.t3' doesn't exist'
+DROP TABLE federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://user:pass@127.0.0.1:SLAVE_PORT/federated/t1';
+SELECT * FROM federated.t1;
+ERROR HY000: Unable to connect to foreign data source: Access denied for user 'user'@'localhost' (using password: YES)
+DROP TABLE federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t1 (id, name) VALUES (2, 'fee');
+SELECT * FROM federated.t1;
+id name
+1 foo
+2 fee
+DELETE FROM federated.t1;
+DROP TABLE federated.t1;
+DROP TABLE IF EXISTS federated.t2;
+Warnings:
+Note 1051 Unknown table 't2'
+CREATE TABLE federated.t2 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+SHOW CREATE TABLE federated.t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
+INSERT INTO federated.t2 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t2 (id, name) VALUES (2, 'fee');
+SELECT * FROM federated.t2;
+id name
+1 foo
+2 fee
+DROP TABLE federated.t2;
+DROP TABLE IF EXISTS federated.t1;
+DROP TABLE IF EXISTS federated.`t1%`;
+Warnings:
+Note 1051 Unknown table 't1%'
+CREATE TABLE federated.`t1%` (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1%';
+INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t1 (id, name) VALUES (2, 'fee');
+SELECT * FROM federated.t1;
+id name
+1 foo
+2 fee
+DELETE FROM federated.t1;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.`t1%` (
+`id` int(20) NOT NULL,
+`name` varchar(32) NOT NULL default ''
+ )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1%';
+INSERT INTO federated.`t1%` (id, name) VALUES (1, 'foo');
+INSERT INTO federated.`t1%` (id, name) VALUES (2, 'fee');
+SELECT * FROM federated.`t1%`;
+id name
+1 foo
+2 fee
+DELETE FROM federated.`t1%`;
+DROP TABLE IF EXISTS federated.`t1%`;
+DROP TABLE IF EXISTS federated.`t1%`;
+DROP TABLE IF EXISTS federated.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32) NOT NULL default '',
+`other` int(20) NOT NULL default '0',
+`created` datetime default '2004-04-04 04:04:04',
+PRIMARY KEY (`id`))
+DEFAULT CHARSET=latin1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32) NOT NULL default '',
+`other` int(20) NOT NULL default '0',
+`created` datetime default '2004-04-04 04:04:04',
+PRIMARY KEY (`id`))
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (name, other) VALUES ('First Name', 11111);
+INSERT INTO federated.t1 (name, other) VALUES ('Second Name', 22222);
+INSERT INTO federated.t1 (name, other) VALUES ('Third Name', 33333);
+INSERT INTO federated.t1 (name, other) VALUES ('Fourth Name', 44444);
+INSERT INTO federated.t1 (name, other) VALUES ('Fifth Name', 55555);
+INSERT INTO federated.t1 (name, other) VALUES ('Sixth Name', 66666);
+INSERT INTO federated.t1 (name, other) VALUES ('Seventh Name', 77777);
+INSERT INTO federated.t1 (name, other) VALUES ('Eigth Name', 88888);
+INSERT INTO federated.t1 (name, other) VALUES ('Ninth Name', 99999);
+INSERT INTO federated.t1 (name, other) VALUES ('Tenth Name', 101010);
+SELECT * FROM federated.t1;
+id name other created
+1 First Name 11111 2004-04-04 04:04:04
+2 Second Name 22222 2004-04-04 04:04:04
+3 Third Name 33333 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+8 Eigth Name 88888 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+10 Tenth Name 101010 2004-04-04 04:04:04
+SELECT * FROM federated.t1 WHERE id = 5;
+id name other created
+5 Fifth Name 55555 2004-04-04 04:04:04
+SELECT * FROM federated.t1 WHERE name = 'Sixth Name';
+id name other created
+6 Sixth Name 66666 2004-04-04 04:04:04
+SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
+id name other created
+6 Sixth Name 66666 2004-04-04 04:04:04
+SELECT * FROM federated.t1 WHERE name = 'Sixth Name' AND other = 44444;
+id name other created
+SELECT * FROM federated.t1 WHERE name like '%th%';
+id name other created
+3 Third Name 33333 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+8 Eigth Name 88888 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+10 Tenth Name 101010 2004-04-04 04:04:04
+UPDATE federated.t1 SET name = '3rd name' WHERE id = 3;
+SELECT * FROM federated.t1 WHERE name = '3rd name';
+id name other created
+3 3rd name 33333 2004-04-04 04:04:04
+UPDATE federated.t1 SET name = 'Third name' WHERE name = '3rd name';
+SELECT * FROM federated.t1 WHERE name = 'Third name';
+id name other created
+3 Third name 33333 2004-04-04 04:04:04
+SELECT * FROM federated.t1 ORDER BY id DESC;
+id name other created
+10 Tenth Name 101010 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+8 Eigth Name 88888 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+3 Third name 33333 2004-04-04 04:04:04
+2 Second Name 22222 2004-04-04 04:04:04
+1 First Name 11111 2004-04-04 04:04:04
+SELECT * FROM federated.t1 ORDER BY name;
+id name other created
+8 Eigth Name 88888 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+1 First Name 11111 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+2 Second Name 22222 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+10 Tenth Name 101010 2004-04-04 04:04:04
+3 Third name 33333 2004-04-04 04:04:04
+SELECT * FROM federated.t1 ORDER BY name DESC;
+id name other created
+3 Third name 33333 2004-04-04 04:04:04
+10 Tenth Name 101010 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+2 Second Name 22222 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+1 First Name 11111 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+8 Eigth Name 88888 2004-04-04 04:04:04
+SELECT * FROM federated.t1 ORDER BY name ASC;
+id name other created
+8 Eigth Name 88888 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+1 First Name 11111 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+2 Second Name 22222 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+10 Tenth Name 101010 2004-04-04 04:04:04
+3 Third name 33333 2004-04-04 04:04:04
+SELECT * FROM federated.t1 GROUP BY other;
+id name other created
+1 First Name 11111 2004-04-04 04:04:04
+2 Second Name 22222 2004-04-04 04:04:04
+3 Third name 33333 2004-04-04 04:04:04
+4 Fourth Name 44444 2004-04-04 04:04:04
+5 Fifth Name 55555 2004-04-04 04:04:04
+6 Sixth Name 66666 2004-04-04 04:04:04
+7 Seventh Name 77777 2004-04-04 04:04:04
+8 Eigth Name 88888 2004-04-04 04:04:04
+9 Ninth Name 99999 2004-04-04 04:04:04
+10 Tenth Name 101010 2004-04-04 04:04:04
+DELETE FROM federated.t1 WHERE id = 5;
+SELECT * FROM federated.t1 WHERE id = 5;
+id name other created
+DELETE FROM federated.t1;
+SELECT * FROM federated.t1 WHERE id = 5;
+id name other created
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32) NOT NULL default '',
+`other` int(20) NOT NULL default '0',
+`created` datetime NOT NULL,
+PRIMARY KEY (`id`),
+key name(`name`),
+key other(`other`),
+key created(`created`))
+DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32) NOT NULL default '',
+`other` int(20) NOT NULL default '0',
+`created` datetime NOT NULL,
+PRIMARY KEY (`id`),
+key name(`name`),
+key other(`other`),
+key created(`created`))
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('First Name', 11111, '2004-01-01 01:01:01');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Second Name', 22222, '2004-01-23 02:43:00');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Third Name', 33333, '2004-02-14 02:14:00');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Fourth Name', 44444, '2003-04-05 00:00:00');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Fifth Name', 55555, '2001-02-02 02:02:02');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Sixth Name', 66666, '2005-06-06 15:30:00');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Seventh Name', 77777, '2003-12-12 18:32:00');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Eigth Name', 88888, '2005-03-12 11:00:00');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Ninth Name', 99999, '2005-03-12 11:00:01');
+INSERT INTO federated.t1 (name, other, created)
+VALUES ('Tenth Name', 101010, '2005-03-12 12:00:01');
+SELECT * FROM federated.t1;
+id name other created
+1 First Name 11111 2004-01-01 01:01:01
+2 Second Name 22222 2004-01-23 02:43:00
+3 Third Name 33333 2004-02-14 02:14:00
+4 Fourth Name 44444 2003-04-05 00:00:00
+5 Fifth Name 55555 2001-02-02 02:02:02
+6 Sixth Name 66666 2005-06-06 15:30:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+8 Eigth Name 88888 2005-03-12 11:00:00
+9 Ninth Name 99999 2005-03-12 11:00:01
+10 Tenth Name 101010 2005-03-12 12:00:01
+SELECT * FROM federated.t1 WHERE id = 5;
+id name other created
+5 Fifth Name 55555 2001-02-02 02:02:02
+SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
+id name other created
+6 Sixth Name 66666 2005-06-06 15:30:00
+SELECT * FROM federated.t1 WHERE other = 44444;
+id name other created
+4 Fourth Name 44444 2003-04-05 00:00:00
+SELECT * FROM federated.t1 WHERE name like '%th%';
+id name other created
+3 Third Name 33333 2004-02-14 02:14:00
+4 Fourth Name 44444 2003-04-05 00:00:00
+5 Fifth Name 55555 2001-02-02 02:02:02
+6 Sixth Name 66666 2005-06-06 15:30:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+8 Eigth Name 88888 2005-03-12 11:00:00
+9 Ninth Name 99999 2005-03-12 11:00:01
+10 Tenth Name 101010 2005-03-12 12:00:01
+UPDATE federated.t1 SET name = '3rd name' WHERE id = 3;
+SELECT * FROM federated.t1 WHERE name = '3rd name';
+id name other created
+3 3rd name 33333 2004-02-14 02:14:00
+UPDATE federated.t1 SET name = 'Third name' WHERE name = '3rd name';
+SELECT * FROM federated.t1 WHERE name = 'Third name';
+id name other created
+3 Third name 33333 2004-02-14 02:14:00
+SELECT * FROM federated.t1 ORDER BY id DESC;
+id name other created
+10 Tenth Name 101010 2005-03-12 12:00:01
+9 Ninth Name 99999 2005-03-12 11:00:01
+8 Eigth Name 88888 2005-03-12 11:00:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+6 Sixth Name 66666 2005-06-06 15:30:00
+5 Fifth Name 55555 2001-02-02 02:02:02
+4 Fourth Name 44444 2003-04-05 00:00:00
+3 Third name 33333 2004-02-14 02:14:00
+2 Second Name 22222 2004-01-23 02:43:00
+1 First Name 11111 2004-01-01 01:01:01
+SELECT * FROM federated.t1 ORDER BY name;
+id name other created
+8 Eigth Name 88888 2005-03-12 11:00:00
+5 Fifth Name 55555 2001-02-02 02:02:02
+1 First Name 11111 2004-01-01 01:01:01
+4 Fourth Name 44444 2003-04-05 00:00:00
+9 Ninth Name 99999 2005-03-12 11:00:01
+2 Second Name 22222 2004-01-23 02:43:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+6 Sixth Name 66666 2005-06-06 15:30:00
+10 Tenth Name 101010 2005-03-12 12:00:01
+3 Third name 33333 2004-02-14 02:14:00
+SELECT * FROM federated.t1 ORDER BY name DESC;
+id name other created
+3 Third name 33333 2004-02-14 02:14:00
+10 Tenth Name 101010 2005-03-12 12:00:01
+6 Sixth Name 66666 2005-06-06 15:30:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+2 Second Name 22222 2004-01-23 02:43:00
+9 Ninth Name 99999 2005-03-12 11:00:01
+4 Fourth Name 44444 2003-04-05 00:00:00
+1 First Name 11111 2004-01-01 01:01:01
+5 Fifth Name 55555 2001-02-02 02:02:02
+8 Eigth Name 88888 2005-03-12 11:00:00
+SELECT * FROM federated.t1 ORDER BY name ASC;
+id name other created
+8 Eigth Name 88888 2005-03-12 11:00:00
+5 Fifth Name 55555 2001-02-02 02:02:02
+1 First Name 11111 2004-01-01 01:01:01
+4 Fourth Name 44444 2003-04-05 00:00:00
+9 Ninth Name 99999 2005-03-12 11:00:01
+2 Second Name 22222 2004-01-23 02:43:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+6 Sixth Name 66666 2005-06-06 15:30:00
+10 Tenth Name 101010 2005-03-12 12:00:01
+3 Third name 33333 2004-02-14 02:14:00
+SELECT * FROM federated.t1 GROUP BY other;
+id name other created
+1 First Name 11111 2004-01-01 01:01:01
+2 Second Name 22222 2004-01-23 02:43:00
+3 Third name 33333 2004-02-14 02:14:00
+4 Fourth Name 44444 2003-04-05 00:00:00
+5 Fifth Name 55555 2001-02-02 02:02:02
+6 Sixth Name 66666 2005-06-06 15:30:00
+7 Seventh Name 77777 2003-12-12 18:32:00
+8 Eigth Name 88888 2005-03-12 11:00:00
+9 Ninth Name 99999 2005-03-12 11:00:01
+10 Tenth Name 101010 2005-03-12 12:00:01
+DELETE FROM federated.t1 WHERE id = 5;
+SELECT * FROM federated.t1 WHERE id = 5;
+id name other created
+DELETE FROM federated.t1;
+SELECT * FROM federated.t1 WHERE id = 5;
+id name other created
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32),
+`other` varchar(20),
+PRIMARY KEY (`id`) );
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32),
+`other` varchar(20),
+PRIMARY KEY (`id`) )
+ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (name, other) VALUES ('First Name', 11111);
+INSERT INTO federated.t1 (name, other) VALUES ('Second Name', NULL);
+INSERT INTO federated.t1 (name, other) VALUES ('Third Name', 33333);
+INSERT INTO federated.t1 (name, other) VALUES (NULL, NULL);
+INSERT INTO federated.t1 (name, other) VALUES ('Fifth Name', 55555);
+INSERT INTO federated.t1 (name, other) VALUES ('Sixth Name', 66666);
+INSERT INTO federated.t1 (name) VALUES ('Seventh Name');
+INSERT INTO federated.t1 (name, other) VALUES ('Eigth Name', 88888);
+INSERT INTO federated.t1 (name, other) VALUES ('Ninth Name', 99999);
+INSERT INTO federated.t1 (other) VALUES ('fee fie foe fum');
+SELECT * FROM federated.t1 WHERE other IS NULL;
+id name other
+2 Second Name NULL
+4 NULL NULL
+7 Seventh Name NULL
+SELECT * FROM federated.t1 WHERE name IS NULL;
+id name other
+4 NULL NULL
+10 NULL fee fie foe fum
+SELECT * FROM federated.t1 WHERE name IS NULL and other IS NULL;
+id name other
+4 NULL NULL
+SELECT * FROM federated.t1 WHERE name IS NULL or other IS NULL;
+id name other
+2 Second Name NULL
+4 NULL NULL
+7 Seventh Name NULL
+10 NULL fee fie foe fum
+UPDATE federated.t1
+SET name = 'Fourth Name', other = 'four four four'
+WHERE name IS NULL AND other IS NULL;
+UPDATE federated.t1 SET other = 'two two two two' WHERE name = 'Second Name';
+UPDATE federated.t1 SET other = 'seven seven' WHERE name like 'Sev%';
+UPDATE federated.t1 SET name = 'Tenth Name' WHERE other like 'fee fie%';
+SELECT * FROM federated.t1 WHERE name IS NULL OR other IS NULL ;
+id name other
+SELECT * FROM federated.t1;
+id name other
+1 First Name 11111
+2 Second Name two two two two
+3 Third Name 33333
+4 Fourth Name four four four
+5 Fifth Name 55555
+6 Sixth Name 66666
+7 Seventh Name seven seven
+8 Eigth Name 88888
+9 Ninth Name 99999
+10 Tenth Name fee fie foe fum
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32) NOT NULL DEFAULT '',
+`other` varchar(20) NOT NULL DEFAULT '',
+PRIMARY KEY (`id`),
+KEY nameoth (name, other) );
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`name` varchar(32) NOT NULL DEFAULT '',
+`other` varchar(20) NOT NULL DEFAULT '',
+PRIMARY KEY (`id`),
+KEY nameoth (name, other))
+ENGINE="FEDERATED" DEFAULT
+CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (name, other) VALUES ('First Name', '1111');
+INSERT INTO federated.t1 (name, other) VALUES ('Second Name', '2222');
+INSERT INTO federated.t1 (name, other) VALUES ('Third Name', '3333');
+SELECT * FROM federated.t1 WHERE name = 'Second Name';
+id name other
+2 Second Name 2222
+SELECT * FROM federated.t1 WHERE other = '2222';
+id name other
+2 Second Name 2222
+SELECT * FROM federated.t1 WHERE name = 'Third Name';
+id name other
+3 Third Name 3333
+SELECT * FROM federated.t1 WHERE name = 'Third Name' AND other = '3333';
+id name other
+3 Third Name 3333
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int NOT NULL auto_increment,
+`name` char(32) NOT NULL DEFAULT '',
+`bincol` binary(1) NOT NULL,
+`floatval` decimal(5,2) NOT NULL DEFAULT 0.0,
+`other` int NOT NULL DEFAULT 0,
+PRIMARY KEY (id),
+KEY nameoth(name, other),
+KEY bincol(bincol),
+KEY floatval(floatval));
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int NOT NULL auto_increment,
+`name` char(32) NOT NULL DEFAULT '',
+`bincol` binary(1) NOT NULL,
+`floatval` decimal(5,2) NOT NULL DEFAULT 0.0,
+`other` int NOT NULL DEFAULT 0,
+PRIMARY KEY (id),
+KEY nameoth(name,other),
+KEY bincol(bincol),
+KEY floatval(floatval))
+ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (name, bincol, floatval, other)
+VALUES ('first', 0x65, 11.11, 1111);
+INSERT INTO federated.t1 (name, bincol, floatval, other)
+VALUES ('second', 0x66, 22.22, 2222);
+INSERT INTO federated.t1 (name, bincol, floatval, other)
+VALUES ('third', 'g', 22.22, 2222);
+SELECT * FROM federated.t1;
+id name bincol floatval other
+1 first e 11.11 1111
+2 second f 22.22 2222
+3 third g 22.22 2222
+SELECT * FROM federated.t1 WHERE name = 'second';
+id name bincol floatval other
+2 second f 22.22 2222
+SELECT * FROM federated.t1 WHERE bincol= 'f';
+id name bincol floatval other
+2 second f 22.22 2222
+SELECT * FROM federated.t1 WHERE bincol= 0x66;
+id name bincol floatval other
+2 second f 22.22 2222
+SELECT * FROM federated.t1 WHERE bincol= 0x67;
+id name bincol floatval other
+3 third g 22.22 2222
+SELECT * FROM federated.t1 WHERE bincol= 'g';
+id name bincol floatval other
+3 third g 22.22 2222
+SELECT * FROM federated.t1 WHERE floatval=11.11;
+id name bincol floatval other
+1 first e 11.11 1111
+SELECT * FROM federated.t1 WHERE name='third';
+id name bincol floatval other
+3 third g 22.22 2222
+SELECT * FROM federated.t1 WHERE other=2222;
+id name bincol floatval other
+2 second f 22.22 2222
+3 third g 22.22 2222
+SELECT * FROM federated.t1 WHERE name='third' and other=2222;
+id name bincol floatval other
+3 third g 22.22 2222
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int NOT NULL auto_increment,
+`col1` int(10) NOT NULL DEFAULT 0,
+`col2` varchar(64) NOT NULL DEFAULT '',
+`col3` int(20) NOT NULL,
+`col4` int(40) NOT NULL,
+primary key (`id`, `col1`, `col2`, `col3`, `col4`),
+key col1(col1),
+key col2(col2),
+key col3(col3),
+key col4(col4));
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int NOT NULL auto_increment,
+`col1` int(10) NOT NULL DEFAULT 0,
+`col2` varchar(64) NOT NULL DEFAULT '',
+`col3` int(20) NOT NULL,
+`col4` int(40) NOT NULL,
+primary key (`id`, `col1`, `col2`, `col3`, `col4`),
+key col1(col1),
+key col2(col2),
+key col3(col3),
+key col4(col4))
+ENGINE="FEDERATED"
+ CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (1, 'one One', 11, 1111);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (2, 'Two two', 22, 2222);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (3, 'three Three', 33, 33333);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (4, 'fourfourfour', 444, 4444444);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (5, 'five 5 five five 5', 5, 55555);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (6, 'six six Sixsix', 6666, 6);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (7, 'seven Sevenseven', 77777, 7777);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (8, 'eight eight eight', 88888, 88);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (9, 'nine Nine', 999999, 999999);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES (10, 'Tenth ten TEN', 1010101, 1010);
+SELECT * FROM federated.t1 WHERE col2 = 'two two';
+id col1 col2 col3 col4
+2 2 Two two 22 2222
+SELECT * FROM federated.t1 WHERE col2 = 'two Two';
+id col1 col2 col3 col4
+2 2 Two two 22 2222
+SELECT * FROM federated.t1 WHERE id = 3;
+id col1 col2 col3 col4
+3 3 three Three 33 33333
+SELECT * FROM federated.t1 WHERE id = 3 AND col1 = 3;
+id col1 col2 col3 col4
+3 3 three Three 33 33333
+SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'Two two';
+id col1 col2 col3 col4
+SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'fourfourfour';
+id col1 col2 col3 col4
+4 4 fourfourfour 444 4444444
+SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
+AND col3 = 5;
+id col1 col2 col3 col4
+5 5 five 5 five five 5 5 55555
+SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
+AND col3 = 5
+AND col4 = 55555;
+id col1 col2 col3 col4
+5 5 five 5 five five 5 5 55555
+SELECT * FROM federated.t1 WHERE id = 5
+AND col2 = 'Two two' AND col3 = 22
+AND col4 = 33;
+id col1 col2 col3 col4
+SELECT * FROM federated.t1 WHERE id = 5
+AND col2 = 'five 5 five five 5' AND col3 = 5
+AND col4 = 55555;
+id col1 col2 col3 col4
+5 5 five 5 five five 5 5 55555
+SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'five 5 five five 5')
+OR (col2 = 'three Three' AND col3 = 33);
+id col1 col2 col3 col4
+5 5 five 5 five five 5 5 55555
+3 3 three Three 33 33333
+SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'Two two')
+OR (col2 = 444 AND col3 = 4444444);
+id col1 col2 col3 col4
+SELECT * FROM federated.t1 WHERE id = 1
+OR col1 = 10
+OR col2 = 'Two two'
+OR col3 = 33
+OR col4 = 4444444;
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+4 4 fourfourfour 444 4444444
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE id > 5;
+id col1 col2 col3 col4
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+8 8 eight eight eight 88888 88
+9 9 nine Nine 999999 999999
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE id >= 5;
+id col1 col2 col3 col4
+5 5 five 5 five five 5 5 55555
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+8 8 eight eight eight 88888 88
+9 9 nine Nine 999999 999999
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE id < 5;
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+4 4 fourfourfour 444 4444444
+SELECT * FROM federated.t1 WHERE id <= 5;
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+4 4 fourfourfour 444 4444444
+5 5 five 5 five five 5 5 55555
+SELECT * FROM federated.t1 WHERE id != 5;
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+4 4 fourfourfour 444 4444444
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+8 8 eight eight eight 88888 88
+9 9 nine Nine 999999 999999
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE id > 3 AND id < 7;
+id col1 col2 col3 col4
+4 4 fourfourfour 444 4444444
+5 5 five 5 five five 5 5 55555
+6 6 six six Sixsix 6666 6
+SELECT * FROM federated.t1 WHERE id > 3 AND id <= 7;
+id col1 col2 col3 col4
+4 4 fourfourfour 444 4444444
+5 5 five 5 five five 5 5 55555
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+SELECT * FROM federated.t1 WHERE id >= 3 AND id <= 7;
+id col1 col2 col3 col4
+3 3 three Three 33 33333
+4 4 fourfourfour 444 4444444
+5 5 five 5 five five 5 5 55555
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+SELECT * FROM federated.t1 WHERE id < 3 AND id <= 7;
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+SELECT * FROM federated.t1 WHERE id < 3 AND id > 7;
+id col1 col2 col3 col4
+SELECT * FROM federated.t1 WHERE id < 3 OR id > 7;
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+8 8 eight eight eight 88888 88
+9 9 nine Nine 999999 999999
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE col2 = 'three Three';
+id col1 col2 col3 col4
+3 3 three Three 33 33333
+SELECT * FROM federated.t1 WHERE col2 > 'one';
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE col2 LIKE 's%';
+id col1 col2 col3 col4
+7 7 seven Sevenseven 77777 7777
+6 6 six six Sixsix 6666 6
+SELECT * FROM federated.t1 WHERE col2 LIKE 'si%';
+id col1 col2 col3 col4
+6 6 six six Sixsix 6666 6
+SELECT * FROM federated.t1 WHERE col2 LIKE 'se%';
+id col1 col2 col3 col4
+7 7 seven Sevenseven 77777 7777
+SELECT * FROM federated.t1 WHERE col2 NOT LIKE 'e%';
+id col1 col2 col3 col4
+1 1 one One 11 1111
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+4 4 fourfourfour 444 4444444
+5 5 five 5 five five 5 5 55555
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+9 9 nine Nine 999999 999999
+10 10 Tenth ten TEN 1010101 1010
+SELECT * FROM federated.t1 WHERE col2 <> 'one One';
+id col1 col2 col3 col4
+4 4 fourfourfour 444 4444444
+5 5 five 5 five five 5 5 55555
+8 8 eight eight eight 88888 88
+9 9 nine Nine 999999 999999
+2 2 Two two 22 2222
+3 3 three Three 33 33333
+6 6 six six Sixsix 6666 6
+7 7 seven Sevenseven 77777 7777
+10 10 Tenth ten TEN 1010101 1010
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`col1` varchar(8) NOT NULL DEFAULT '',
+`col2` varchar(128) NOT NULL DEFAULT '',
+`col3` varchar(20) NOT NULL DEFAULT '',
+`col4` varchar(40) NOT NULL DEFAULT '',
+primary key (`col1`, `col2`, `col3`, `col4`),
+key 3key(`col2`,`col3`,`col4`),
+key 2key (`col3`,`col4`),
+key col4(col4));
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`col1` varchar(8) NOT NULL DEFAULT '',
+`col2` varchar(128) NOT NULL DEFAULT '',
+`col3` varchar(20) NOT NULL DEFAULT '',
+`col4` varchar(40) NOT NULL DEFAULT '',
+primary key (`col1`, `col2`, `col3`, `col4`),
+key 3key(`col2`,`col3`,`col4`),
+key 2key (`col3`,`col4`),
+key col4(col4))
+ENGINE="FEDERATED"
+ CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('aaaa', 'aaaaaaaaaaaaaaaaaaa', 'ababababab', 'acacacacacacacac');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('bbbb', 'bbbbbbbbbbbbbbbbbbb', 'bababababa', 'bcbcbcbcbcbcbcbc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('cccc', 'ccccccccccccccccccc', 'cacacacaca', 'cbcbcbcbcbcbcbcb');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('dddd', 'ddddddddddddddddddd', 'dadadadada', 'dcdcdcdcdcdcdcdc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('eeee', 'eeeeeeeeeeeeeeeeeee', 'eaeaeaeaea', 'ecececececececec');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('ffff', 'fffffffffffffffffff', 'fafafafafa', 'fcfcfcfcfcfcfcfc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('gggg', 'ggggggggggggggggggg', 'gagagagaga', 'gcgcgcgcgcgcgcgc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+VALUES ('hhhh', 'hhhhhhhhhhhhhhhhhhh', 'hahahahaha', 'hchchchchchchchc');
+SELECT * FROM federated.t1 WHERE col1 = 'cccc';
+col1 col2 col3 col4
+cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
+SELECT * FROM federated.t1 WHERE col2 = 'eeeeeeeeeeeeeeeeeee';
+col1 col2 col3 col4
+eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
+SELECT * FROM federated.t1 WHERE col3 = 'bababababa';
+col1 col2 col3 col4
+bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
+SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col2 = 'ggggggggggggggggggg';
+col1 col2 col3 col4
+gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
+SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col3 = 'gagagagaga';
+col1 col2 col3 col4
+gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
+SELECT * FROM federated.t1 WHERE col1 = 'ffff' AND col4 = 'fcfcfcfcfcfcfcfc';
+col1 col2 col3 col4
+ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
+SELECT * FROM federated.t1 WHERE col1 > 'bbbb';
+col1 col2 col3 col4
+cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
+dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
+eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
+ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
+gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
+hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
+SELECT * FROM federated.t1 WHERE col1 >= 'bbbb';
+col1 col2 col3 col4
+bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
+cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
+dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
+eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
+ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
+gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
+hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
+SELECT * FROM federated.t1 WHERE col1 < 'bbbb';
+col1 col2 col3 col4
+aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
+SELECT * FROM federated.t1 WHERE col1 <= 'bbbb';
+col1 col2 col3 col4
+aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
+bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
+SELECT * FROM federated.t1 WHERE col1 <> 'bbbb';
+col1 col2 col3 col4
+aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
+cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
+dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
+eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
+ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
+gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
+hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
+SELECT * FROM federated.t1 WHERE col1 LIKE 'b%';
+col1 col2 col3 col4
+bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
+SELECT * FROM federated.t1 WHERE col4 LIKE '%b%';
+col1 col2 col3 col4
+bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
+cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
+SELECT * FROM federated.t1 WHERE col1 NOT LIKE 'c%';
+col1 col2 col3 col4
+aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
+bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
+dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
+eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
+ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
+gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
+hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
+SELECT * FROM federated.t1 WHERE col4 NOT LIKE '%c%';
+col1 col2 col3 col4
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`col1` varchar(8) NOT NULL DEFAULT '',
+`col2` int(8) NOT NULL DEFAULT 0,
+`col3` varchar(8) NOT NULL DEFAULT '',
+primary key (`col1`, `col2`, `col3`));
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`col1` varchar(8) NOT NULL DEFAULT '',
+`col2` varchar(8) NOT NULL DEFAULT '',
+`col3` varchar(8) NOT NULL DEFAULT '',
+primary key (`col1`, `col2`, `col3`))
+ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 VALUES ('a00', '110', 'cc0');
+INSERT INTO federated.t1 VALUES ('aaa', '111', 'ccc');
+INSERT INTO federated.t1 VALUES ('bbb', '222', 'yyy');
+INSERT INTO federated.t1 VALUES ('ccc', '111', 'zzz');
+INSERT INTO federated.t1 VALUES ('ccd', '112', 'zzzz');
+SELECT col3 FROM federated.t1 WHERE (
+(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
+(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
+col3
+ccc
+yyy
+zzz
+SELECT col3 FROM federated.t1 WHERE (
+(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
+(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
+col3
+ccc
+yyy
+zzz
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int,
+`name` varchar(32),
+`floatval` float,
+`other` int)
+DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int,
+`name` varchar(32),
+`floatval` float,
+`other` int)
+ENGINE="FEDERATED"
+DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 values (NULL, NULL, NULL, NULL);
+INSERT INTO federated.t1 values ();
+INSERT INTO federated.t1 (id) VALUES (1);
+INSERT INTO federated.t1 (name, floatval, other)
+VALUES ('foo', 33.33333332, NULL);
+INSERT INTO federated.t1 (name, floatval, other)
+VALUES (0, 00.3333, NULL);
+SELECT * FROM federated.t1;
+id name floatval other
+NULL NULL NULL NULL
+NULL NULL NULL NULL
+1 NULL NULL NULL
+NULL foo 33.3333 NULL
+NULL 0 0.3333 NULL
+SELECT count(*) FROM federated.t1
+WHERE id IS NULL
+AND name IS NULL
+AND floatval IS NULL
+AND other IS NULL;
+count(*)
+2
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`blurb_id` int NOT NULL DEFAULT 0,
+`blurb` text default '',
+PRIMARY KEY (blurb_id))
+DEFAULT CHARSET=latin1;
+Warnings:
+Warning 1101 BLOB/TEXT column 'blurb' can't have a default value
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`blurb_id` int NOT NULL DEFAULT 0,
+`blurb` text default '',
+PRIMARY KEY (blurb_id))
+ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+Warnings:
+Warning 1101 BLOB/TEXT column 'blurb' can't have a default value
+INSERT INTO federated.t1 VALUES (1, " MySQL supports a number of column types in several categories: numeric types, date and time types, and string (character) types. This chapter first gives an overview of these column types, and then provides a more detailed description of the properties of the types in each category, and a summary of the column type storage requirements. The overview is intentionally brief. The more detailed descriptions should be consulted for additional information about particular column types, such as the allowable formats in which you can specify values.");
+INSERT INTO federated.t1 VALUES (2, "All arithmetic is done using signed BIGINT or DOUBLE values, so you should not use unsigned big integers larger than 9223372036854775807 (63 bits) except with bit functions! If you do that, some of the last digits in the result may be wrong because of rounding errors when converting a BIGINT value to a DOUBLE.");
+INSERT INTO federated.t1 VALUES (3, " A floating-point number. p represents the precision. It can be from 0 to 24 for a single-precision floating-point number and from 25 to 53 for a double-precision floating-point number. These types are like the FLOAT and DOUBLE types described immediately following. FLOAT(p) has the same range as the corresponding FLOAT and DOUBLE types, but the display size and number of decimals are undefined. ");
+INSERT INTO federated.t1 VALUES(4, "Die Übersetzung einer so umfangreichen technischen Dokumentation wie des MySQL-Referenzhandbuchs ist schon eine besondere Herausforderung. Zumindest für jemanden, der seine Zielsprache ernst nimmt:");
+SELECT * FROM federated.t1;
+blurb_id blurb
+1 MySQL supports a number of column types in several categories: numeric types, date and time types, and string (character) types. This chapter first gives an overview of these column types, and then provides a more detailed description of the properties of the types in each category, and a summary of the column type storage requirements. The overview is intentionally brief. The more detailed descriptions should be consulted for additional information about particular column types, such as the allowable formats in which you can specify values.
+2 All arithmetic is done using signed BIGINT or DOUBLE values, so you should not use unsigned big integers larger than 9223372036854775807 (63 bits) except with bit functions! If you do that, some of the last digits in the result may be wrong because of rounding errors when converting a BIGINT value to a DOUBLE.
+3 A floating-point number. p represents the precision. It can be from 0 to 24 for a single-precision floating-point number and from 25 to 53 for a double-precision floating-point number. These types are like the FLOAT and DOUBLE types described immediately following. FLOAT(p) has the same range as the corresponding FLOAT and DOUBLE types, but the display size and number of decimals are undefined.
+4 Die Übersetzung einer so umfangreichen technischen Dokumentation wie des MySQL-Referenzhandbuchs ist schon eine besondere Herausforderung. Zumindest für jemanden, der seine Zielsprache ernst nimmt:
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`a` int NOT NULL,
+`b` int NOT NULL,
+`c` int NOT NULL,
+PRIMARY KEY (a),key(b));
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`a` int NOT NULL,
+`b` int NOT NULL,
+`c` int NOT NULL,
+PRIMARY KEY (a),
+KEY (b))
+ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 VALUES (3,3,3),(1,1,1),(2,2,2),(4,4,4);
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8
+int, i9 int, i10 int, i11 int, i12 int, i13 int, i14 int, i15 int, i16 int, i17
+int, i18 int, i19 int, i20 int, i21 int, i22 int, i23 int, i24 int, i25 int,
+i26 int, i27 int, i28 int, i29 int, i30 int, i31 int, i32 int, i33 int, i34
+int, i35 int, i36 int, i37 int, i38 int, i39 int, i40 int, i41 int, i42 int,
+i43 int, i44 int, i45 int, i46 int, i47 int, i48 int, i49 int, i50 int, i51
+int, i52 int, i53 int, i54 int, i55 int, i56 int, i57 int, i58 int, i59 int,
+i60 int, i61 int, i62 int, i63 int, i64 int, i65 int, i66 int, i67 int, i68
+int, i69 int, i70 int, i71 int, i72 int, i73 int, i74 int, i75 int, i76 int,
+i77 int, i78 int, i79 int, i80 int, i81 int, i82 int, i83 int, i84 int, i85
+int, i86 int, i87 int, i88 int, i89 int, i90 int, i91 int, i92 int, i93 int,
+i94 int, i95 int, i96 int, i97 int, i98 int, i99 int, i100 int, i101 int, i102
+int, i103 int, i104 int, i105 int, i106 int, i107 int, i108 int, i109 int, i110
+int, i111 int, i112 int, i113 int, i114 int, i115 int, i116 int, i117 int, i118
+int, i119 int, i120 int, i121 int, i122 int, i123 int, i124 int, i125 int, i126
+int, i127 int, i128 int, i129 int, i130 int, i131 int, i132 int, i133 int, i134
+int, i135 int, i136 int, i137 int, i138 int, i139 int, i140 int, i141 int, i142
+int, i143 int, i144 int, i145 int, i146 int, i147 int, i148 int, i149 int, i150
+int, i151 int, i152 int, i153 int, i154 int, i155 int, i156 int, i157 int, i158
+int, i159 int, i160 int, i161 int, i162 int, i163 int, i164 int, i165 int, i166
+int, i167 int, i168 int, i169 int, i170 int, i171 int, i172 int, i173 int, i174
+int, i175 int, i176 int, i177 int, i178 int, i179 int, i180 int, i181 int, i182
+int, i183 int, i184 int, i185 int, i186 int, i187 int, i188 int, i189 int, i190
+int, i191 int, i192 int, i193 int, i194 int, i195 int, i196 int, i197 int, i198
+int, i199 int, i200 int, i201 int, i202 int, i203 int, i204 int, i205 int, i206
+int, i207 int, i208 int, i209 int, i210 int, i211 int, i212 int, i213 int, i214
+int, i215 int, i216 int, i217 int, i218 int, i219 int, i220 int, i221 int, i222
+int, i223 int, i224 int, i225 int, i226 int, i227 int, i228 int, i229 int, i230
+int, i231 int, i232 int, i233 int, i234 int, i235 int, i236 int, i237 int, i238
+int, i239 int, i240 int, i241 int, i242 int, i243 int, i244 int, i245 int, i246
+int, i247 int, i248 int, i249 int, i250 int, i251 int, i252 int, i253 int, i254
+int, i255 int, i256 int, i257 int, i258 int, i259 int, i260 int, i261 int, i262
+int, i263 int, i264 int, i265 int, i266 int, i267 int, i268 int, i269 int, i270
+int, i271 int, i272 int, i273 int, i274 int, i275 int, i276 int, i277 int, i278
+int, i279 int, i280 int, i281 int, i282 int, i283 int, i284 int, i285 int, i286
+int, i287 int, i288 int, i289 int, i290 int, i291 int, i292 int, i293 int, i294
+int, i295 int, i296 int, i297 int, i298 int, i299 int, i300 int, i301 int, i302
+int, i303 int, i304 int, i305 int, i306 int, i307 int, i308 int, i309 int, i310
+int, i311 int, i312 int, i313 int, i314 int, i315 int, i316 int, i317 int, i318
+int, i319 int, i320 int, i321 int, i322 int, i323 int, i324 int, i325 int, i326
+int, i327 int, i328 int, i329 int, i330 int, i331 int, i332 int, i333 int, i334
+int, i335 int, i336 int, i337 int, i338 int, i339 int, i340 int, i341 int, i342
+int, i343 int, i344 int, i345 int, i346 int, i347 int, i348 int, i349 int, i350
+int, i351 int, i352 int, i353 int, i354 int, i355 int, i356 int, i357 int, i358
+int, i359 int, i360 int, i361 int, i362 int, i363 int, i364 int, i365 int, i366
+int, i367 int, i368 int, i369 int, i370 int, i371 int, i372 int, i373 int, i374
+int, i375 int, i376 int, i377 int, i378 int, i379 int, i380 int, i381 int, i382
+int, i383 int, i384 int, i385 int, i386 int, i387 int, i388 int, i389 int, i390
+int, i391 int, i392 int, i393 int, i394 int, i395 int, i396 int, i397 int, i398
+int, i399 int, i400 int, i401 int, i402 int, i403 int, i404 int, i405 int, i406
+int, i407 int, i408 int, i409 int, i410 int, i411 int, i412 int, i413 int, i414
+int, i415 int, i416 int, i417 int, i418 int, i419 int, i420 int, i421 int, i422
+int, i423 int, i424 int, i425 int, i426 int, i427 int, i428 int, i429 int, i430
+int, i431 int, i432 int, i433 int, i434 int, i435 int, i436 int, i437 int, i438
+int, i439 int, i440 int, i441 int, i442 int, i443 int, i444 int, i445 int, i446
+int, i447 int, i448 int, i449 int, i450 int, i451 int, i452 int, i453 int, i454
+int, i455 int, i456 int, i457 int, i458 int, i459 int, i460 int, i461 int, i462
+int, i463 int, i464 int, i465 int, i466 int, i467 int, i468 int, i469 int, i470
+int, i471 int, i472 int, i473 int, i474 int, i475 int, i476 int, i477 int, i478
+int, i479 int, i480 int, i481 int, i482 int, i483 int, i484 int, i485 int, i486
+int, i487 int, i488 int, i489 int, i490 int, i491 int, i492 int, i493 int, i494
+int, i495 int, i496 int, i497 int, i498 int, i499 int, i500 int, i501 int, i502
+int, i503 int, i504 int, i505 int, i506 int, i507 int, i508 int, i509 int, i510
+int, i511 int, i512 int, i513 int, i514 int, i515 int, i516 int, i517 int, i518
+int, i519 int, i520 int, i521 int, i522 int, i523 int, i524 int, i525 int, i526
+int, i527 int, i528 int, i529 int, i530 int, i531 int, i532 int, i533 int, i534
+int, i535 int, i536 int, i537 int, i538 int, i539 int, i540 int, i541 int, i542
+int, i543 int, i544 int, i545 int, i546 int, i547 int, i548 int, i549 int, i550
+int, i551 int, i552 int, i553 int, i554 int, i555 int, i556 int, i557 int, i558
+int, i559 int, i560 int, i561 int, i562 int, i563 int, i564 int, i565 int, i566
+int, i567 int, i568 int, i569 int, i570 int, i571 int, i572 int, i573 int, i574
+int, i575 int, i576 int, i577 int, i578 int, i579 int, i580 int, i581 int, i582
+int, i583 int, i584 int, i585 int, i586 int, i587 int, i588 int, i589 int, i590
+int, i591 int, i592 int, i593 int, i594 int, i595 int, i596 int, i597 int, i598
+int, i599 int, i600 int, i601 int, i602 int, i603 int, i604 int, i605 int, i606
+int, i607 int, i608 int, i609 int, i610 int, i611 int, i612 int, i613 int, i614
+int, i615 int, i616 int, i617 int, i618 int, i619 int, i620 int, i621 int, i622
+int, i623 int, i624 int, i625 int, i626 int, i627 int, i628 int, i629 int, i630
+int, i631 int, i632 int, i633 int, i634 int, i635 int, i636 int, i637 int, i638
+int, i639 int, i640 int, i641 int, i642 int, i643 int, i644 int, i645 int, i646
+int, i647 int, i648 int, i649 int, i650 int, i651 int, i652 int, i653 int, i654
+int, i655 int, i656 int, i657 int, i658 int, i659 int, i660 int, i661 int, i662
+int, i663 int, i664 int, i665 int, i666 int, i667 int, i668 int, i669 int, i670
+int, i671 int, i672 int, i673 int, i674 int, i675 int, i676 int, i677 int, i678
+int, i679 int, i680 int, i681 int, i682 int, i683 int, i684 int, i685 int, i686
+int, i687 int, i688 int, i689 int, i690 int, i691 int, i692 int, i693 int, i694
+int, i695 int, i696 int, i697 int, i698 int, i699 int, i700 int, i701 int, i702
+int, i703 int, i704 int, i705 int, i706 int, i707 int, i708 int, i709 int, i710
+int, i711 int, i712 int, i713 int, i714 int, i715 int, i716 int, i717 int, i718
+int, i719 int, i720 int, i721 int, i722 int, i723 int, i724 int, i725 int, i726
+int, i727 int, i728 int, i729 int, i730 int, i731 int, i732 int, i733 int, i734
+int, i735 int, i736 int, i737 int, i738 int, i739 int, i740 int, i741 int, i742
+int, i743 int, i744 int, i745 int, i746 int, i747 int, i748 int, i749 int, i750
+int, i751 int, i752 int, i753 int, i754 int, i755 int, i756 int, i757 int, i758
+int, i759 int, i760 int, i761 int, i762 int, i763 int, i764 int, i765 int, i766
+int, i767 int, i768 int, i769 int, i770 int, i771 int, i772 int, i773 int, i774
+int, i775 int, i776 int, i777 int, i778 int, i779 int, i780 int, i781 int, i782
+int, i783 int, i784 int, i785 int, i786 int, i787 int, i788 int, i789 int, i790
+int, i791 int, i792 int, i793 int, i794 int, i795 int, i796 int, i797 int, i798
+int, i799 int, i800 int, i801 int, i802 int, i803 int, i804 int, i805 int, i806
+int, i807 int, i808 int, i809 int, i810 int, i811 int, i812 int, i813 int, i814
+int, i815 int, i816 int, i817 int, i818 int, i819 int, i820 int, i821 int, i822
+int, i823 int, i824 int, i825 int, i826 int, i827 int, i828 int, i829 int, i830
+int, i831 int, i832 int, i833 int, i834 int, i835 int, i836 int, i837 int, i838
+int, i839 int, i840 int, i841 int, i842 int, i843 int, i844 int, i845 int, i846
+int, i847 int, i848 int, i849 int, i850 int, i851 int, i852 int, i853 int, i854
+int, i855 int, i856 int, i857 int, i858 int, i859 int, i860 int, i861 int, i862
+int, i863 int, i864 int, i865 int, i866 int, i867 int, i868 int, i869 int, i870
+int, i871 int, i872 int, i873 int, i874 int, i875 int, i876 int, i877 int, i878
+int, i879 int, i880 int, i881 int, i882 int, i883 int, i884 int, i885 int, i886
+int, i887 int, i888 int, i889 int, i890 int, i891 int, i892 int, i893 int, i894
+int, i895 int, i896 int, i897 int, i898 int, i899 int, i900 int, i901 int, i902
+int, i903 int, i904 int, i905 int, i906 int, i907 int, i908 int, i909 int, i910
+int, i911 int, i912 int, i913 int, i914 int, i915 int, i916 int, i917 int, i918
+int, i919 int, i920 int, i921 int, i922 int, i923 int, i924 int, i925 int, i926
+int, i927 int, i928 int, i929 int, i930 int, i931 int, i932 int, i933 int, i934
+int, i935 int, i936 int, i937 int, i938 int, i939 int, i940 int, i941 int, i942
+int, i943 int, i944 int, i945 int, i946 int, i947 int, i948 int, i949 int, i950
+int, i951 int, i952 int, i953 int, i954 int, i955 int, i956 int, i957 int, i958
+int, i959 int, i960 int, i961 int, i962 int, i963 int, i964 int, i965 int, i966
+int, i967 int, i968 int, i969 int, i970 int, i971 int, i972 int, i973 int, i974
+int, i975 int, i976 int, i977 int, i978 int, i979 int, i980 int, i981 int, i982
+int, i983 int, i984 int, i985 int, i986 int, i987 int, i988 int, i989 int, i990
+int, i991 int, i992 int, i993 int, i994 int, i995 int, i996 int, i997 int, i998
+int, i999 int, i1000 int, b varchar(256)) row_format=dynamic;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1
+(i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8
+int, i9 int, i10 int, i11 int, i12 int, i13 int, i14 int, i15 int, i16 int,
+i17 int, i18 int, i19 int, i20 int, i21 int, i22 int, i23 int, i24 int, i25 int,
+i26 int, i27 int, i28 int, i29 int, i30 int, i31 int, i32 int, i33 int, i34
+int, i35 int, i36 int, i37 int, i38 int, i39 int, i40 int, i41 int, i42 int,
+i43 int, i44 int, i45 int, i46 int, i47 int, i48 int, i49 int, i50 int, i51
+int, i52 int, i53 int, i54 int, i55 int, i56 int, i57 int, i58 int, i59 int,
+i60 int, i61 int, i62 int, i63 int, i64 int, i65 int, i66 int, i67 int, i68
+int, i69 int, i70 int, i71 int, i72 int, i73 int, i74 int, i75 int, i76 int,
+i77 int, i78 int, i79 int, i80 int, i81 int, i82 int, i83 int, i84 int, i85
+int, i86 int, i87 int, i88 int, i89 int, i90 int, i91 int, i92 int, i93 int,
+i94 int, i95 int, i96 int, i97 int, i98 int, i99 int, i100 int, i101 int, i102
+int, i103 int, i104 int, i105 int, i106 int, i107 int, i108 int, i109 int, i110
+int, i111 int, i112 int, i113 int, i114 int, i115 int, i116 int, i117 int, i118
+int, i119 int, i120 int, i121 int, i122 int, i123 int, i124 int, i125 int, i126
+int, i127 int, i128 int, i129 int, i130 int, i131 int, i132 int, i133 int, i134
+int, i135 int, i136 int, i137 int, i138 int, i139 int, i140 int, i141 int, i142
+int, i143 int, i144 int, i145 int, i146 int, i147 int, i148 int, i149 int, i150
+int, i151 int, i152 int, i153 int, i154 int, i155 int, i156 int, i157 int, i158
+int, i159 int, i160 int, i161 int, i162 int, i163 int, i164 int, i165 int, i166
+int, i167 int, i168 int, i169 int, i170 int, i171 int, i172 int, i173 int, i174
+int, i175 int, i176 int, i177 int, i178 int, i179 int, i180 int, i181 int, i182
+int, i183 int, i184 int, i185 int, i186 int, i187 int, i188 int, i189 int, i190
+int, i191 int, i192 int, i193 int, i194 int, i195 int, i196 int, i197 int, i198
+int, i199 int, i200 int, i201 int, i202 int, i203 int, i204 int, i205 int, i206
+int, i207 int, i208 int, i209 int, i210 int, i211 int, i212 int, i213 int, i214
+int, i215 int, i216 int, i217 int, i218 int, i219 int, i220 int, i221 int, i222
+int, i223 int, i224 int, i225 int, i226 int, i227 int, i228 int, i229 int, i230
+int, i231 int, i232 int, i233 int, i234 int, i235 int, i236 int, i237 int, i238
+int, i239 int, i240 int, i241 int, i242 int, i243 int, i244 int, i245 int, i246
+int, i247 int, i248 int, i249 int, i250 int, i251 int, i252 int, i253 int, i254
+int, i255 int, i256 int, i257 int, i258 int, i259 int, i260 int, i261 int, i262
+int, i263 int, i264 int, i265 int, i266 int, i267 int, i268 int, i269 int, i270
+int, i271 int, i272 int, i273 int, i274 int, i275 int, i276 int, i277 int, i278
+int, i279 int, i280 int, i281 int, i282 int, i283 int, i284 int, i285 int, i286
+int, i287 int, i288 int, i289 int, i290 int, i291 int, i292 int, i293 int, i294
+int, i295 int, i296 int, i297 int, i298 int, i299 int, i300 int, i301 int, i302
+int, i303 int, i304 int, i305 int, i306 int, i307 int, i308 int, i309 int, i310
+int, i311 int, i312 int, i313 int, i314 int, i315 int, i316 int, i317 int, i318
+int, i319 int, i320 int, i321 int, i322 int, i323 int, i324 int, i325 int, i326
+int, i327 int, i328 int, i329 int, i330 int, i331 int, i332 int, i333 int, i334
+int, i335 int, i336 int, i337 int, i338 int, i339 int, i340 int, i341 int, i342
+int, i343 int, i344 int, i345 int, i346 int, i347 int, i348 int, i349 int, i350
+int, i351 int, i352 int, i353 int, i354 int, i355 int, i356 int, i357 int, i358
+int, i359 int, i360 int, i361 int, i362 int, i363 int, i364 int, i365 int, i366
+int, i367 int, i368 int, i369 int, i370 int, i371 int, i372 int, i373 int, i374
+int, i375 int, i376 int, i377 int, i378 int, i379 int, i380 int, i381 int, i382
+int, i383 int, i384 int, i385 int, i386 int, i387 int, i388 int, i389 int, i390
+int, i391 int, i392 int, i393 int, i394 int, i395 int, i396 int, i397 int, i398
+int, i399 int, i400 int, i401 int, i402 int, i403 int, i404 int, i405 int, i406
+int, i407 int, i408 int, i409 int, i410 int, i411 int, i412 int, i413 int, i414
+int, i415 int, i416 int, i417 int, i418 int, i419 int, i420 int, i421 int, i422
+int, i423 int, i424 int, i425 int, i426 int, i427 int, i428 int, i429 int, i430
+int, i431 int, i432 int, i433 int, i434 int, i435 int, i436 int, i437 int, i438
+int, i439 int, i440 int, i441 int, i442 int, i443 int, i444 int, i445 int, i446
+int, i447 int, i448 int, i449 int, i450 int, i451 int, i452 int, i453 int, i454
+int, i455 int, i456 int, i457 int, i458 int, i459 int, i460 int, i461 int, i462
+int, i463 int, i464 int, i465 int, i466 int, i467 int, i468 int, i469 int, i470
+int, i471 int, i472 int, i473 int, i474 int, i475 int, i476 int, i477 int, i478
+int, i479 int, i480 int, i481 int, i482 int, i483 int, i484 int, i485 int, i486
+int, i487 int, i488 int, i489 int, i490 int, i491 int, i492 int, i493 int, i494
+int, i495 int, i496 int, i497 int, i498 int, i499 int, i500 int, i501 int, i502
+int, i503 int, i504 int, i505 int, i506 int, i507 int, i508 int, i509 int, i510
+int, i511 int, i512 int, i513 int, i514 int, i515 int, i516 int, i517 int, i518
+int, i519 int, i520 int, i521 int, i522 int, i523 int, i524 int, i525 int, i526
+int, i527 int, i528 int, i529 int, i530 int, i531 int, i532 int, i533 int, i534
+int, i535 int, i536 int, i537 int, i538 int, i539 int, i540 int, i541 int, i542
+int, i543 int, i544 int, i545 int, i546 int, i547 int, i548 int, i549 int, i550
+int, i551 int, i552 int, i553 int, i554 int, i555 int, i556 int, i557 int, i558
+int, i559 int, i560 int, i561 int, i562 int, i563 int, i564 int, i565 int, i566
+int, i567 int, i568 int, i569 int, i570 int, i571 int, i572 int, i573 int, i574
+int, i575 int, i576 int, i577 int, i578 int, i579 int, i580 int, i581 int, i582
+int, i583 int, i584 int, i585 int, i586 int, i587 int, i588 int, i589 int, i590
+int, i591 int, i592 int, i593 int, i594 int, i595 int, i596 int, i597 int, i598
+int, i599 int, i600 int, i601 int, i602 int, i603 int, i604 int, i605 int, i606
+int, i607 int, i608 int, i609 int, i610 int, i611 int, i612 int, i613 int, i614
+int, i615 int, i616 int, i617 int, i618 int, i619 int, i620 int, i621 int, i622
+int, i623 int, i624 int, i625 int, i626 int, i627 int, i628 int, i629 int, i630
+int, i631 int, i632 int, i633 int, i634 int, i635 int, i636 int, i637 int, i638
+int, i639 int, i640 int, i641 int, i642 int, i643 int, i644 int, i645 int, i646
+int, i647 int, i648 int, i649 int, i650 int, i651 int, i652 int, i653 int, i654
+int, i655 int, i656 int, i657 int, i658 int, i659 int, i660 int, i661 int, i662
+int, i663 int, i664 int, i665 int, i666 int, i667 int, i668 int, i669 int, i670
+int, i671 int, i672 int, i673 int, i674 int, i675 int, i676 int, i677 int, i678
+int, i679 int, i680 int, i681 int, i682 int, i683 int, i684 int, i685 int, i686
+int, i687 int, i688 int, i689 int, i690 int, i691 int, i692 int, i693 int, i694
+int, i695 int, i696 int, i697 int, i698 int, i699 int, i700 int, i701 int, i702
+int, i703 int, i704 int, i705 int, i706 int, i707 int, i708 int, i709 int, i710
+int, i711 int, i712 int, i713 int, i714 int, i715 int, i716 int, i717 int, i718
+int, i719 int, i720 int, i721 int, i722 int, i723 int, i724 int, i725 int, i726
+int, i727 int, i728 int, i729 int, i730 int, i731 int, i732 int, i733 int, i734
+int, i735 int, i736 int, i737 int, i738 int, i739 int, i740 int, i741 int, i742
+int, i743 int, i744 int, i745 int, i746 int, i747 int, i748 int, i749 int, i750
+int, i751 int, i752 int, i753 int, i754 int, i755 int, i756 int, i757 int, i758
+int, i759 int, i760 int, i761 int, i762 int, i763 int, i764 int, i765 int, i766
+int, i767 int, i768 int, i769 int, i770 int, i771 int, i772 int, i773 int, i774
+int, i775 int, i776 int, i777 int, i778 int, i779 int, i780 int, i781 int, i782
+int, i783 int, i784 int, i785 int, i786 int, i787 int, i788 int, i789 int, i790
+int, i791 int, i792 int, i793 int, i794 int, i795 int, i796 int, i797 int, i798
+int, i799 int, i800 int, i801 int, i802 int, i803 int, i804 int, i805 int, i806
+int, i807 int, i808 int, i809 int, i810 int, i811 int, i812 int, i813 int, i814
+int, i815 int, i816 int, i817 int, i818 int, i819 int, i820 int, i821 int, i822
+int, i823 int, i824 int, i825 int, i826 int, i827 int, i828 int, i829 int, i830
+int, i831 int, i832 int, i833 int, i834 int, i835 int, i836 int, i837 int, i838
+int, i839 int, i840 int, i841 int, i842 int, i843 int, i844 int, i845 int, i846
+int, i847 int, i848 int, i849 int, i850 int, i851 int, i852 int, i853 int, i854
+int, i855 int, i856 int, i857 int, i858 int, i859 int, i860 int, i861 int, i862
+int, i863 int, i864 int, i865 int, i866 int, i867 int, i868 int, i869 int, i870
+int, i871 int, i872 int, i873 int, i874 int, i875 int, i876 int, i877 int, i878
+int, i879 int, i880 int, i881 int, i882 int, i883 int, i884 int, i885 int, i886
+int, i887 int, i888 int, i889 int, i890 int, i891 int, i892 int, i893 int, i894
+int, i895 int, i896 int, i897 int, i898 int, i899 int, i900 int, i901 int, i902
+int, i903 int, i904 int, i905 int, i906 int, i907 int, i908 int, i909 int, i910
+int, i911 int, i912 int, i913 int, i914 int, i915 int, i916 int, i917 int, i918
+int, i919 int, i920 int, i921 int, i922 int, i923 int, i924 int, i925 int, i926
+int, i927 int, i928 int, i929 int, i930 int, i931 int, i932 int, i933 int, i934
+int, i935 int, i936 int, i937 int, i938 int, i939 int, i940 int, i941 int, i942
+int, i943 int, i944 int, i945 int, i946 int, i947 int, i948 int, i949 int, i950
+int, i951 int, i952 int, i953 int, i954 int, i955 int, i956 int, i957 int, i958
+int, i959 int, i960 int, i961 int, i962 int, i963 int, i964 int, i965 int, i966
+int, i967 int, i968 int, i969 int, i970 int, i971 int, i972 int, i973 int, i974
+int, i975 int, i976 int, i977 int, i978 int, i979 int, i980 int, i981 int, i982
+int, i983 int, i984 int, i985 int, i986 int, i987 int, i988 int, i989 int, i990
+int, i991 int, i992 int, i993 int, i994 int, i995 int, i996 int, i997 int, i998
+int, i999 int, i1000 int, b varchar(256))
+row_format=dynamic
+ENGINE="FEDERATED"
+DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1
+values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, "PatrickG");
+UPDATE federated.t1 SET b=repeat('a',256);
+UPDATE federated.t1 SET i1=0, i2=0, i3=0, i4=0, i5=0, i6=0, i7=0, i8=0, i9=0, i10=0;
+SELECT * FROM federated.t1 WHERE i9=0 and i10=0;
+i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 i22 i23 i24 i25 i26 i27 i28 i29 i30 i31 i32 i33 i34 i35 i36 i37 i38 i39 i40 i41 i42 i43 i44 i45 i46 i47 i48 i49 i50 i51 i52 i53 i54 i55 i56 i57 i58 i59 i60 i61 i62 i63 i64 i65 i66 i67 i68 i69 i70 i71 i72 i73 i74 i75 i76 i77 i78 i79 i80 i81 i82 i83 i84 i85 i86 i87 i88 i89 i90 i91 i92 i93 i94 i95 i96 i97 i98 i99 i100 i101 i102 i103 i104 i105 i106 i107 i108 i109 i110 i111 i112 i113 i114 i115 i116 i117 i118 i119 i120 i121 i122 i123 i124 i125 i126 i127 i128 i129 i130 i131 i132 i133 i134 i135 i136 i137 i138 i139 i140 i141 i142 i143 i144 i145 i146 i147 i148 i149 i150 i151 i152 i153 i154 i155 i156 i157 i158 i159 i160 i161 i162 i163 i164 i165 i166 i167 i168 i169 i170 i171 i172 i173 i174 i175 i176 i177 i178 i179 i180 i181 i182 i183 i184 i185 i186 i187 i188 i189 i190 i191 i192 i193 i194 i195 i196 i197 i198 i199 i200 i201 i202 i203 i204 i205 i206 i207 i208 i209 i210 i211 i212 i213 i214 i215 i216 i217 i218 i219 i220 i221 i222 i223 i224 i225 i226 i227 i228 i229 i230 i231 i232 i233 i234 i235 i236 i237 i238 i239 i240 i241 i242 i243 i244 i245 i246 i247 i248 i249 i250 i251 i252 i253 i254 i255 i256 i257 i258 i259 i260 i261 i262 i263 i264 i265 i266 i267 i268 i269 i270 i271 i272 i273 i274 i275 i276 i277 i278 i279 i280 i281 i282 i283 i284 i285 i286 i287 i288 i289 i290 i291 i292 i293 i294 i295 i296 i297 i298 i299 i300 i301 i302 i303 i304 i305 i306 i307 i308 i309 i310 i311 i312 i313 i314 i315 i316 i317 i318 i319 i320 i321 i322 i323 i324 i325 i326 i327 i328 i329 i330 i331 i332 i333 i334 i335 i336 i337 i338 i339 i340 i341 i342 i343 i344 i345 i346 i347 i348 i349 i350 i351 i352 i353 i354 i355 i356 i357 i358 i359 i360 i361 i362 i363 i364 i365 i366 i367 i368 i369 i370 i371 i372 i373 i374 i375 i376 i377 i378 i379 i380 i381 i382 i383 i384 i385 i386 i387 i388 i389 i390 i391 i392 i393 i394 i395 i396 i397 i398 i399 i400 i401 i402 i403 i404 i405 i406 i407 i408 i409 i410 i411 i412 i413 i414 i415 i416 i417 i418 i419 i420 i421 i422 i423 i424 i425 i426 i427 i428 i429 i430 i431 i432 i433 i434 i435 i436 i437 i438 i439 i440 i441 i442 i443 i444 i445 i446 i447 i448 i449 i450 i451 i452 i453 i454 i455 i456 i457 i458 i459 i460 i461 i462 i463 i464 i465 i466 i467 i468 i469 i470 i471 i472 i473 i474 i475 i476 i477 i478 i479 i480 i481 i482 i483 i484 i485 i486 i487 i488 i489 i490 i491 i492 i493 i494 i495 i496 i497 i498 i499 i500 i501 i502 i503 i504 i505 i506 i507 i508 i509 i510 i511 i512 i513 i514 i515 i516 i517 i518 i519 i520 i521 i522 i523 i524 i525 i526 i527 i528 i529 i530 i531 i532 i533 i534 i535 i536 i537 i538 i539 i540 i541 i542 i543 i544 i545 i546 i547 i548 i549 i550 i551 i552 i553 i554 i555 i556 i557 i558 i559 i560 i561 i562 i563 i564 i565 i566 i567 i568 i569 i570 i571 i572 i573 i574 i575 i576 i577 i578 i579 i580 i581 i582 i583 i584 i585 i586 i587 i588 i589 i590 i591 i592 i593 i594 i595 i596 i597 i598 i599 i600 i601 i602 i603 i604 i605 i606 i607 i608 i609 i610 i611 i612 i613 i614 i615 i616 i617 i618 i619 i620 i621 i622 i623 i624 i625 i626 i627 i628 i629 i630 i631 i632 i633 i634 i635 i636 i637 i638 i639 i640 i641 i642 i643 i644 i645 i646 i647 i648 i649 i650 i651 i652 i653 i654 i655 i656 i657 i658 i659 i660 i661 i662 i663 i664 i665 i666 i667 i668 i669 i670 i671 i672 i673 i674 i675 i676 i677 i678 i679 i680 i681 i682 i683 i684 i685 i686 i687 i688 i689 i690 i691 i692 i693 i694 i695 i696 i697 i698 i699 i700 i701 i702 i703 i704 i705 i706 i707 i708 i709 i710 i711 i712 i713 i714 i715 i716 i717 i718 i719 i720 i721 i722 i723 i724 i725 i726 i727 i728 i729 i730 i731 i732 i733 i734 i735 i736 i737 i738 i739 i740 i741 i742 i743 i744 i745 i746 i747 i748 i749 i750 i751 i752 i753 i754 i755 i756 i757 i758 i759 i760 i761 i762 i763 i764 i765 i766 i767 i768 i769 i770 i771 i772 i773 i774 i775 i776 i777 i778 i779 i780 i781 i782 i783 i784 i785 i786 i787 i788 i789 i790 i791 i792 i793 i794 i795 i796 i797 i798 i799 i800 i801 i802 i803 i804 i805 i806 i807 i808 i809 i810 i811 i812 i813 i814 i815 i816 i817 i818 i819 i820 i821 i822 i823 i824 i825 i826 i827 i828 i829 i830 i831 i832 i833 i834 i835 i836 i837 i838 i839 i840 i841 i842 i843 i844 i845 i846 i847 i848 i849 i850 i851 i852 i853 i854 i855 i856 i857 i858 i859 i860 i861 i862 i863 i864 i865 i866 i867 i868 i869 i870 i871 i872 i873 i874 i875 i876 i877 i878 i879 i880 i881 i882 i883 i884 i885 i886 i887 i888 i889 i890 i891 i892 i893 i894 i895 i896 i897 i898 i899 i900 i901 i902 i903 i904 i905 i906 i907 i908 i909 i910 i911 i912 i913 i914 i915 i916 i917 i918 i919 i920 i921 i922 i923 i924 i925 i926 i927 i928 i929 i930 i931 i932 i933 i934 i935 i936 i937 i938 i939 i940 i941 i942 i943 i944 i945 i946 i947 i948 i949 i950 i951 i952 i953 i954 i955 i956 i957 i958 i959 i960 i961 i962 i963 i964 i965 i966 i967 i968 i969 i970 i971 i972 i973 i974 i975 i976 i977 i978 i979 i980 i981 i982 i983 i984 i985 i986 i987 i988 i989 i990 i991 i992 i993 i994 i995 i996 i997 i998 i999 i1000 b
+0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+UPDATE federated.t1 SET i50=20;
+SELECT * FROM federated.t1;
+i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 i22 i23 i24 i25 i26 i27 i28 i29 i30 i31 i32 i33 i34 i35 i36 i37 i38 i39 i40 i41 i42 i43 i44 i45 i46 i47 i48 i49 i50 i51 i52 i53 i54 i55 i56 i57 i58 i59 i60 i61 i62 i63 i64 i65 i66 i67 i68 i69 i70 i71 i72 i73 i74 i75 i76 i77 i78 i79 i80 i81 i82 i83 i84 i85 i86 i87 i88 i89 i90 i91 i92 i93 i94 i95 i96 i97 i98 i99 i100 i101 i102 i103 i104 i105 i106 i107 i108 i109 i110 i111 i112 i113 i114 i115 i116 i117 i118 i119 i120 i121 i122 i123 i124 i125 i126 i127 i128 i129 i130 i131 i132 i133 i134 i135 i136 i137 i138 i139 i140 i141 i142 i143 i144 i145 i146 i147 i148 i149 i150 i151 i152 i153 i154 i155 i156 i157 i158 i159 i160 i161 i162 i163 i164 i165 i166 i167 i168 i169 i170 i171 i172 i173 i174 i175 i176 i177 i178 i179 i180 i181 i182 i183 i184 i185 i186 i187 i188 i189 i190 i191 i192 i193 i194 i195 i196 i197 i198 i199 i200 i201 i202 i203 i204 i205 i206 i207 i208 i209 i210 i211 i212 i213 i214 i215 i216 i217 i218 i219 i220 i221 i222 i223 i224 i225 i226 i227 i228 i229 i230 i231 i232 i233 i234 i235 i236 i237 i238 i239 i240 i241 i242 i243 i244 i245 i246 i247 i248 i249 i250 i251 i252 i253 i254 i255 i256 i257 i258 i259 i260 i261 i262 i263 i264 i265 i266 i267 i268 i269 i270 i271 i272 i273 i274 i275 i276 i277 i278 i279 i280 i281 i282 i283 i284 i285 i286 i287 i288 i289 i290 i291 i292 i293 i294 i295 i296 i297 i298 i299 i300 i301 i302 i303 i304 i305 i306 i307 i308 i309 i310 i311 i312 i313 i314 i315 i316 i317 i318 i319 i320 i321 i322 i323 i324 i325 i326 i327 i328 i329 i330 i331 i332 i333 i334 i335 i336 i337 i338 i339 i340 i341 i342 i343 i344 i345 i346 i347 i348 i349 i350 i351 i352 i353 i354 i355 i356 i357 i358 i359 i360 i361 i362 i363 i364 i365 i366 i367 i368 i369 i370 i371 i372 i373 i374 i375 i376 i377 i378 i379 i380 i381 i382 i383 i384 i385 i386 i387 i388 i389 i390 i391 i392 i393 i394 i395 i396 i397 i398 i399 i400 i401 i402 i403 i404 i405 i406 i407 i408 i409 i410 i411 i412 i413 i414 i415 i416 i417 i418 i419 i420 i421 i422 i423 i424 i425 i426 i427 i428 i429 i430 i431 i432 i433 i434 i435 i436 i437 i438 i439 i440 i441 i442 i443 i444 i445 i446 i447 i448 i449 i450 i451 i452 i453 i454 i455 i456 i457 i458 i459 i460 i461 i462 i463 i464 i465 i466 i467 i468 i469 i470 i471 i472 i473 i474 i475 i476 i477 i478 i479 i480 i481 i482 i483 i484 i485 i486 i487 i488 i489 i490 i491 i492 i493 i494 i495 i496 i497 i498 i499 i500 i501 i502 i503 i504 i505 i506 i507 i508 i509 i510 i511 i512 i513 i514 i515 i516 i517 i518 i519 i520 i521 i522 i523 i524 i525 i526 i527 i528 i529 i530 i531 i532 i533 i534 i535 i536 i537 i538 i539 i540 i541 i542 i543 i544 i545 i546 i547 i548 i549 i550 i551 i552 i553 i554 i555 i556 i557 i558 i559 i560 i561 i562 i563 i564 i565 i566 i567 i568 i569 i570 i571 i572 i573 i574 i575 i576 i577 i578 i579 i580 i581 i582 i583 i584 i585 i586 i587 i588 i589 i590 i591 i592 i593 i594 i595 i596 i597 i598 i599 i600 i601 i602 i603 i604 i605 i606 i607 i608 i609 i610 i611 i612 i613 i614 i615 i616 i617 i618 i619 i620 i621 i622 i623 i624 i625 i626 i627 i628 i629 i630 i631 i632 i633 i634 i635 i636 i637 i638 i639 i640 i641 i642 i643 i644 i645 i646 i647 i648 i649 i650 i651 i652 i653 i654 i655 i656 i657 i658 i659 i660 i661 i662 i663 i664 i665 i666 i667 i668 i669 i670 i671 i672 i673 i674 i675 i676 i677 i678 i679 i680 i681 i682 i683 i684 i685 i686 i687 i688 i689 i690 i691 i692 i693 i694 i695 i696 i697 i698 i699 i700 i701 i702 i703 i704 i705 i706 i707 i708 i709 i710 i711 i712 i713 i714 i715 i716 i717 i718 i719 i720 i721 i722 i723 i724 i725 i726 i727 i728 i729 i730 i731 i732 i733 i734 i735 i736 i737 i738 i739 i740 i741 i742 i743 i744 i745 i746 i747 i748 i749 i750 i751 i752 i753 i754 i755 i756 i757 i758 i759 i760 i761 i762 i763 i764 i765 i766 i767 i768 i769 i770 i771 i772 i773 i774 i775 i776 i777 i778 i779 i780 i781 i782 i783 i784 i785 i786 i787 i788 i789 i790 i791 i792 i793 i794 i795 i796 i797 i798 i799 i800 i801 i802 i803 i804 i805 i806 i807 i808 i809 i810 i811 i812 i813 i814 i815 i816 i817 i818 i819 i820 i821 i822 i823 i824 i825 i826 i827 i828 i829 i830 i831 i832 i833 i834 i835 i836 i837 i838 i839 i840 i841 i842 i843 i844 i845 i846 i847 i848 i849 i850 i851 i852 i853 i854 i855 i856 i857 i858 i859 i860 i861 i862 i863 i864 i865 i866 i867 i868 i869 i870 i871 i872 i873 i874 i875 i876 i877 i878 i879 i880 i881 i882 i883 i884 i885 i886 i887 i888 i889 i890 i891 i892 i893 i894 i895 i896 i897 i898 i899 i900 i901 i902 i903 i904 i905 i906 i907 i908 i909 i910 i911 i912 i913 i914 i915 i916 i917 i918 i919 i920 i921 i922 i923 i924 i925 i926 i927 i928 i929 i930 i931 i932 i933 i934 i935 i936 i937 i938 i939 i940 i941 i942 i943 i944 i945 i946 i947 i948 i949 i950 i951 i952 i953 i954 i955 i956 i957 i958 i959 i960 i961 i962 i963 i964 i965 i966 i967 i968 i969 i970 i971 i972 i973 i974 i975 i976 i977 i978 i979 i980 i981 i982 i983 i984 i985 i986 i987 i988 i989 i990 i991 i992 i993 i994 i995 i996 i997 i998 i999 i1000 b
+0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 20 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+DELETE FROM federated.t1 WHERE i51=20;
+SELECT * FROM federated.t1;
+i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 i22 i23 i24 i25 i26 i27 i28 i29 i30 i31 i32 i33 i34 i35 i36 i37 i38 i39 i40 i41 i42 i43 i44 i45 i46 i47 i48 i49 i50 i51 i52 i53 i54 i55 i56 i57 i58 i59 i60 i61 i62 i63 i64 i65 i66 i67 i68 i69 i70 i71 i72 i73 i74 i75 i76 i77 i78 i79 i80 i81 i82 i83 i84 i85 i86 i87 i88 i89 i90 i91 i92 i93 i94 i95 i96 i97 i98 i99 i100 i101 i102 i103 i104 i105 i106 i107 i108 i109 i110 i111 i112 i113 i114 i115 i116 i117 i118 i119 i120 i121 i122 i123 i124 i125 i126 i127 i128 i129 i130 i131 i132 i133 i134 i135 i136 i137 i138 i139 i140 i141 i142 i143 i144 i145 i146 i147 i148 i149 i150 i151 i152 i153 i154 i155 i156 i157 i158 i159 i160 i161 i162 i163 i164 i165 i166 i167 i168 i169 i170 i171 i172 i173 i174 i175 i176 i177 i178 i179 i180 i181 i182 i183 i184 i185 i186 i187 i188 i189 i190 i191 i192 i193 i194 i195 i196 i197 i198 i199 i200 i201 i202 i203 i204 i205 i206 i207 i208 i209 i210 i211 i212 i213 i214 i215 i216 i217 i218 i219 i220 i221 i222 i223 i224 i225 i226 i227 i228 i229 i230 i231 i232 i233 i234 i235 i236 i237 i238 i239 i240 i241 i242 i243 i244 i245 i246 i247 i248 i249 i250 i251 i252 i253 i254 i255 i256 i257 i258 i259 i260 i261 i262 i263 i264 i265 i266 i267 i268 i269 i270 i271 i272 i273 i274 i275 i276 i277 i278 i279 i280 i281 i282 i283 i284 i285 i286 i287 i288 i289 i290 i291 i292 i293 i294 i295 i296 i297 i298 i299 i300 i301 i302 i303 i304 i305 i306 i307 i308 i309 i310 i311 i312 i313 i314 i315 i316 i317 i318 i319 i320 i321 i322 i323 i324 i325 i326 i327 i328 i329 i330 i331 i332 i333 i334 i335 i336 i337 i338 i339 i340 i341 i342 i343 i344 i345 i346 i347 i348 i349 i350 i351 i352 i353 i354 i355 i356 i357 i358 i359 i360 i361 i362 i363 i364 i365 i366 i367 i368 i369 i370 i371 i372 i373 i374 i375 i376 i377 i378 i379 i380 i381 i382 i383 i384 i385 i386 i387 i388 i389 i390 i391 i392 i393 i394 i395 i396 i397 i398 i399 i400 i401 i402 i403 i404 i405 i406 i407 i408 i409 i410 i411 i412 i413 i414 i415 i416 i417 i418 i419 i420 i421 i422 i423 i424 i425 i426 i427 i428 i429 i430 i431 i432 i433 i434 i435 i436 i437 i438 i439 i440 i441 i442 i443 i444 i445 i446 i447 i448 i449 i450 i451 i452 i453 i454 i455 i456 i457 i458 i459 i460 i461 i462 i463 i464 i465 i466 i467 i468 i469 i470 i471 i472 i473 i474 i475 i476 i477 i478 i479 i480 i481 i482 i483 i484 i485 i486 i487 i488 i489 i490 i491 i492 i493 i494 i495 i496 i497 i498 i499 i500 i501 i502 i503 i504 i505 i506 i507 i508 i509 i510 i511 i512 i513 i514 i515 i516 i517 i518 i519 i520 i521 i522 i523 i524 i525 i526 i527 i528 i529 i530 i531 i532 i533 i534 i535 i536 i537 i538 i539 i540 i541 i542 i543 i544 i545 i546 i547 i548 i549 i550 i551 i552 i553 i554 i555 i556 i557 i558 i559 i560 i561 i562 i563 i564 i565 i566 i567 i568 i569 i570 i571 i572 i573 i574 i575 i576 i577 i578 i579 i580 i581 i582 i583 i584 i585 i586 i587 i588 i589 i590 i591 i592 i593 i594 i595 i596 i597 i598 i599 i600 i601 i602 i603 i604 i605 i606 i607 i608 i609 i610 i611 i612 i613 i614 i615 i616 i617 i618 i619 i620 i621 i622 i623 i624 i625 i626 i627 i628 i629 i630 i631 i632 i633 i634 i635 i636 i637 i638 i639 i640 i641 i642 i643 i644 i645 i646 i647 i648 i649 i650 i651 i652 i653 i654 i655 i656 i657 i658 i659 i660 i661 i662 i663 i664 i665 i666 i667 i668 i669 i670 i671 i672 i673 i674 i675 i676 i677 i678 i679 i680 i681 i682 i683 i684 i685 i686 i687 i688 i689 i690 i691 i692 i693 i694 i695 i696 i697 i698 i699 i700 i701 i702 i703 i704 i705 i706 i707 i708 i709 i710 i711 i712 i713 i714 i715 i716 i717 i718 i719 i720 i721 i722 i723 i724 i725 i726 i727 i728 i729 i730 i731 i732 i733 i734 i735 i736 i737 i738 i739 i740 i741 i742 i743 i744 i745 i746 i747 i748 i749 i750 i751 i752 i753 i754 i755 i756 i757 i758 i759 i760 i761 i762 i763 i764 i765 i766 i767 i768 i769 i770 i771 i772 i773 i774 i775 i776 i777 i778 i779 i780 i781 i782 i783 i784 i785 i786 i787 i788 i789 i790 i791 i792 i793 i794 i795 i796 i797 i798 i799 i800 i801 i802 i803 i804 i805 i806 i807 i808 i809 i810 i811 i812 i813 i814 i815 i816 i817 i818 i819 i820 i821 i822 i823 i824 i825 i826 i827 i828 i829 i830 i831 i832 i833 i834 i835 i836 i837 i838 i839 i840 i841 i842 i843 i844 i845 i846 i847 i848 i849 i850 i851 i852 i853 i854 i855 i856 i857 i858 i859 i860 i861 i862 i863 i864 i865 i866 i867 i868 i869 i870 i871 i872 i873 i874 i875 i876 i877 i878 i879 i880 i881 i882 i883 i884 i885 i886 i887 i888 i889 i890 i891 i892 i893 i894 i895 i896 i897 i898 i899 i900 i901 i902 i903 i904 i905 i906 i907 i908 i909 i910 i911 i912 i913 i914 i915 i916 i917 i918 i919 i920 i921 i922 i923 i924 i925 i926 i927 i928 i929 i930 i931 i932 i933 i934 i935 i936 i937 i938 i939 i940 i941 i942 i943 i944 i945 i946 i947 i948 i949 i950 i951 i952 i953 i954 i955 i956 i957 i958 i959 i960 i961 i962 i963 i964 i965 i966 i967 i968 i969 i970 i971 i972 i973 i974 i975 i976 i977 i978 i979 i980 i981 i982 i983 i984 i985 i986 i987 i988 i989 i990 i991 i992 i993 i994 i995 i996 i997 i998 i999 i1000 b
+0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 20 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+DELETE FROM federated.t1 WHERE i50=20;
+SELECT * FROM federated.t1;
+i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 i22 i23 i24 i25 i26 i27 i28 i29 i30 i31 i32 i33 i34 i35 i36 i37 i38 i39 i40 i41 i42 i43 i44 i45 i46 i47 i48 i49 i50 i51 i52 i53 i54 i55 i56 i57 i58 i59 i60 i61 i62 i63 i64 i65 i66 i67 i68 i69 i70 i71 i72 i73 i74 i75 i76 i77 i78 i79 i80 i81 i82 i83 i84 i85 i86 i87 i88 i89 i90 i91 i92 i93 i94 i95 i96 i97 i98 i99 i100 i101 i102 i103 i104 i105 i106 i107 i108 i109 i110 i111 i112 i113 i114 i115 i116 i117 i118 i119 i120 i121 i122 i123 i124 i125 i126 i127 i128 i129 i130 i131 i132 i133 i134 i135 i136 i137 i138 i139 i140 i141 i142 i143 i144 i145 i146 i147 i148 i149 i150 i151 i152 i153 i154 i155 i156 i157 i158 i159 i160 i161 i162 i163 i164 i165 i166 i167 i168 i169 i170 i171 i172 i173 i174 i175 i176 i177 i178 i179 i180 i181 i182 i183 i184 i185 i186 i187 i188 i189 i190 i191 i192 i193 i194 i195 i196 i197 i198 i199 i200 i201 i202 i203 i204 i205 i206 i207 i208 i209 i210 i211 i212 i213 i214 i215 i216 i217 i218 i219 i220 i221 i222 i223 i224 i225 i226 i227 i228 i229 i230 i231 i232 i233 i234 i235 i236 i237 i238 i239 i240 i241 i242 i243 i244 i245 i246 i247 i248 i249 i250 i251 i252 i253 i254 i255 i256 i257 i258 i259 i260 i261 i262 i263 i264 i265 i266 i267 i268 i269 i270 i271 i272 i273 i274 i275 i276 i277 i278 i279 i280 i281 i282 i283 i284 i285 i286 i287 i288 i289 i290 i291 i292 i293 i294 i295 i296 i297 i298 i299 i300 i301 i302 i303 i304 i305 i306 i307 i308 i309 i310 i311 i312 i313 i314 i315 i316 i317 i318 i319 i320 i321 i322 i323 i324 i325 i326 i327 i328 i329 i330 i331 i332 i333 i334 i335 i336 i337 i338 i339 i340 i341 i342 i343 i344 i345 i346 i347 i348 i349 i350 i351 i352 i353 i354 i355 i356 i357 i358 i359 i360 i361 i362 i363 i364 i365 i366 i367 i368 i369 i370 i371 i372 i373 i374 i375 i376 i377 i378 i379 i380 i381 i382 i383 i384 i385 i386 i387 i388 i389 i390 i391 i392 i393 i394 i395 i396 i397 i398 i399 i400 i401 i402 i403 i404 i405 i406 i407 i408 i409 i410 i411 i412 i413 i414 i415 i416 i417 i418 i419 i420 i421 i422 i423 i424 i425 i426 i427 i428 i429 i430 i431 i432 i433 i434 i435 i436 i437 i438 i439 i440 i441 i442 i443 i444 i445 i446 i447 i448 i449 i450 i451 i452 i453 i454 i455 i456 i457 i458 i459 i460 i461 i462 i463 i464 i465 i466 i467 i468 i469 i470 i471 i472 i473 i474 i475 i476 i477 i478 i479 i480 i481 i482 i483 i484 i485 i486 i487 i488 i489 i490 i491 i492 i493 i494 i495 i496 i497 i498 i499 i500 i501 i502 i503 i504 i505 i506 i507 i508 i509 i510 i511 i512 i513 i514 i515 i516 i517 i518 i519 i520 i521 i522 i523 i524 i525 i526 i527 i528 i529 i530 i531 i532 i533 i534 i535 i536 i537 i538 i539 i540 i541 i542 i543 i544 i545 i546 i547 i548 i549 i550 i551 i552 i553 i554 i555 i556 i557 i558 i559 i560 i561 i562 i563 i564 i565 i566 i567 i568 i569 i570 i571 i572 i573 i574 i575 i576 i577 i578 i579 i580 i581 i582 i583 i584 i585 i586 i587 i588 i589 i590 i591 i592 i593 i594 i595 i596 i597 i598 i599 i600 i601 i602 i603 i604 i605 i606 i607 i608 i609 i610 i611 i612 i613 i614 i615 i616 i617 i618 i619 i620 i621 i622 i623 i624 i625 i626 i627 i628 i629 i630 i631 i632 i633 i634 i635 i636 i637 i638 i639 i640 i641 i642 i643 i644 i645 i646 i647 i648 i649 i650 i651 i652 i653 i654 i655 i656 i657 i658 i659 i660 i661 i662 i663 i664 i665 i666 i667 i668 i669 i670 i671 i672 i673 i674 i675 i676 i677 i678 i679 i680 i681 i682 i683 i684 i685 i686 i687 i688 i689 i690 i691 i692 i693 i694 i695 i696 i697 i698 i699 i700 i701 i702 i703 i704 i705 i706 i707 i708 i709 i710 i711 i712 i713 i714 i715 i716 i717 i718 i719 i720 i721 i722 i723 i724 i725 i726 i727 i728 i729 i730 i731 i732 i733 i734 i735 i736 i737 i738 i739 i740 i741 i742 i743 i744 i745 i746 i747 i748 i749 i750 i751 i752 i753 i754 i755 i756 i757 i758 i759 i760 i761 i762 i763 i764 i765 i766 i767 i768 i769 i770 i771 i772 i773 i774 i775 i776 i777 i778 i779 i780 i781 i782 i783 i784 i785 i786 i787 i788 i789 i790 i791 i792 i793 i794 i795 i796 i797 i798 i799 i800 i801 i802 i803 i804 i805 i806 i807 i808 i809 i810 i811 i812 i813 i814 i815 i816 i817 i818 i819 i820 i821 i822 i823 i824 i825 i826 i827 i828 i829 i830 i831 i832 i833 i834 i835 i836 i837 i838 i839 i840 i841 i842 i843 i844 i845 i846 i847 i848 i849 i850 i851 i852 i853 i854 i855 i856 i857 i858 i859 i860 i861 i862 i863 i864 i865 i866 i867 i868 i869 i870 i871 i872 i873 i874 i875 i876 i877 i878 i879 i880 i881 i882 i883 i884 i885 i886 i887 i888 i889 i890 i891 i892 i893 i894 i895 i896 i897 i898 i899 i900 i901 i902 i903 i904 i905 i906 i907 i908 i909 i910 i911 i912 i913 i914 i915 i916 i917 i918 i919 i920 i921 i922 i923 i924 i925 i926 i927 i928 i929 i930 i931 i932 i933 i934 i935 i936 i937 i938 i939 i940 i941 i942 i943 i944 i945 i946 i947 i948 i949 i950 i951 i952 i953 i954 i955 i956 i957 i958 i959 i960 i961 i962 i963 i964 i965 i966 i967 i968 i969 i970 i971 i972 i973 i974 i975 i976 i977 i978 i979 i980 i981 i982 i983 i984 i985 i986 i987 i988 i989 i990 i991 i992 i993 i994 i995 i996 i997 i998 i999 i1000 b
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (id int NOT NULL auto_increment, code char(20) NOT NULL, fileguts blob NOT NULL, creation_date datetime, entered_time datetime default '2004-04-04 04:04:04', PRIMARY KEY(id), index(code), index(fileguts(10))) DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+id int NOT NULL auto_increment,
+code char(20) NOT NULL,
+fileguts blob NOT NULL,
+creation_date datetime,
+entered_time datetime default '2004-04-04 04:04:04',
+PRIMARY KEY(id),
+index(code),
+index(fileguts(10)))
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (code, fileguts, creation_date) VALUES ('ASDFWERQWETWETAWETA', '*()w*09*$()*#)(*09*^90*d)(*s()d8g)(s*ned)(*)(s*d)(*hn(d*)(*sbn)D((#$*(#*%%&#&^$#&#&#&#&^&#*&*#$*&^*(&#(&Q*&&(*!&!(*&*(#&*(%&#<S-F8>*<S-F8><S-F8><S-F8>#<S-F8>#<S-F8>#<S-F8>[[', '2003-03-03 03:03:03');
+INSERT INTO federated.t1 (code, fileguts, creation_date) VALUES ('DEUEUEUEUEUEUEUEUEU', '*()w*09*$()*#)(*09*^90*d)(*s()d8g)(s*ned)(*)(s*d)(*hn(d*)(*sbn)D((#$*(#*%%&#&^$#&#&#&#&^&#*&*#$*&^*(&#(&Q*&&(*!&!(*&*(#&*(%&#<S-F8>*<S-F8><S-F8><S-F8>#<S-F8>#<S-F8>#<S-F8>[[', '2004-04-04 04:04:04');
+INSERT INTO federated.t1 (code, fileguts, creation_date) VALUES ('DEUEUEUEUEUEUEUEUEU', 'jimbob', '2004-04-04 04:04:04');
+SELECT * FROM federated.t1;
+id code fileguts creation_date entered_time
+1 ASDFWERQWETWETAWETA *()w*09*$()*#)(*09*^90*d)(*s()d8g)(s*ned)(*)(s*d)(*hn(d*)(*sbn)D((#$*(#*%%&#&^$#&#&#&#&^&#*&*#$*&^*(&#(&Q*&&(*!&!(*&*(#&*(%&#<S-F8>*<S-F8><S-F8><S-F8>#<S-F8>#<S-F8>#<S-F8>[[ 2003-03-03 03:03:03 2004-04-04 04:04:04
+2 DEUEUEUEUEUEUEUEUEU *()w*09*$()*#)(*09*^90*d)(*s()d8g)(s*ned)(*)(s*d)(*hn(d*)(*sbn)D((#$*(#*%%&#&^$#&#&#&#&^&#*&*#$*&^*(&#(&Q*&&(*!&!(*&*(#&*(%&#<S-F8>*<S-F8><S-F8><S-F8>#<S-F8>#<S-F8>#<S-F8>[[ 2004-04-04 04:04:04 2004-04-04 04:04:04
+3 DEUEUEUEUEUEUEUEUEU jimbob 2004-04-04 04:04:04 2004-04-04 04:04:04
+SELECT * FROM federated.t1 WHERE fileguts = 'jimbob';
+id code fileguts creation_date entered_time
+3 DEUEUEUEUEUEUEUEUEU jimbob 2004-04-04 04:04:04 2004-04-04 04:04:04
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (`a` BLOB);
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`a` BLOB)
+ENGINE="FEDERATED"
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 VALUES (0x00);
+INSERT INTO federated.t1 VALUES (0x0001);
+INSERT INTO federated.t1 VALUES (0x0100);
+SELECT HEX(a) FROM federated.t1;
+HEX(a)
+00
+0001
+0100
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`country_id` int(20) NOT NULL DEFAULT 0,
+`name` varchar(32),
+`other` varchar(20),
+PRIMARY KEY (`id`),
+key (country_id));
+DROP TABLE IF EXISTS federated.countries;
+Warnings:
+Note 1051 Unknown table 'countries'
+CREATE TABLE federated.countries (
+`id` int(20) NOT NULL auto_increment,
+`country` varchar(32),
+PRIMARY KEY (id));
+INSERT INTO federated.countries (country) VALUES ('India');
+INSERT INTO federated.countries (country) VALUES ('Germany');
+INSERT INTO federated.countries (country) VALUES ('Italy');
+INSERT INTO federated.countries (country) VALUES ('Finland');
+INSERT INTO federated.countries (country) VALUES ('Ukraine');
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+`country_id` int(20) NOT NULL DEFAULT 0,
+`name` varchar(32),
+`other` varchar(20),
+PRIMARY KEY (`id`),
+KEY (country_id) )
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Kumar', 1, 11111);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Lenz', 2, 22222);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Marizio', 3, 33333);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Monty', 4, 33333);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Sanja', 5, 33333);
+SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
+federated.t1.other AS other, federated.countries.country AS country
+FROM federated.t1, federated.countries WHERE
+federated.t1.country_id = federated.countries.id;
+name country_id other country
+Kumar 1 11111 India
+Lenz 2 22222 Germany
+Marizio 3 33333 Italy
+Monty 4 33333 Finland
+Sanja 5 33333 Ukraine
+SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
+federated.t1.other AS other, federated.countries.country AS country
+FROM federated.t1 INNER JOIN federated.countries ON
+federated.t1.country_id = federated.countries.id;
+name country_id other country
+Kumar 1 11111 India
+Lenz 2 22222 Germany
+Marizio 3 33333 Italy
+Monty 4 33333 Finland
+Sanja 5 33333 Ukraine
+SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
+federated.t1.other AS other, federated.countries.country AS country
+FROM federated.t1 INNER JOIN federated.countries ON
+federated.t1.country_id = federated.countries.id
+WHERE federated.t1.name = 'Monty';
+name country_id other country
+Monty 4 33333 Finland
+SELECT federated.t1.*, federated.countries.country
+FROM federated.t1 LEFT JOIN federated.countries
+ON federated.t1.country_id = federated.countries.id
+ORDER BY federated.countries.id;
+id country_id name other country
+1 1 Kumar 11111 India
+2 2 Lenz 22222 Germany
+3 3 Marizio 33333 Italy
+4 4 Monty 33333 Finland
+5 5 Sanja 33333 Ukraine
+SELECT federated.t1.*, federated.countries.country
+FROM federated.t1 LEFT JOIN federated.countries
+ON federated.t1.country_id = federated.countries.id
+ORDER BY federated.countries.country;
+id country_id name other country
+4 4 Monty 33333 Finland
+2 2 Lenz 22222 Germany
+1 1 Kumar 11111 India
+3 3 Marizio 33333 Italy
+5 5 Sanja 33333 Ukraine
+SELECT federated.t1.*, federated.countries.country
+FROM federated.t1 RIGHT JOIN federated.countries
+ON federated.t1.country_id = federated.countries.id
+ORDER BY federated.t1.country_id;
+id country_id name other country
+1 1 Kumar 11111 India
+2 2 Lenz 22222 Germany
+3 3 Marizio 33333 Italy
+4 4 Monty 33333 Finland
+5 5 Sanja 33333 Ukraine
+DROP TABLE federated.countries;
+OPTIMIZE TABLE federated.t1;
+Table Op Msg_type Msg_text
+federated.t1 optimize status OK
+REPAIR TABLE federated.t1;
+Table Op Msg_type Msg_text
+federated.t1 repair status OK
+REPAIR TABLE federated.t1 QUICK;
+Table Op Msg_type Msg_text
+federated.t1 repair status OK
+REPAIR TABLE federated.t1 EXTENDED;
+Table Op Msg_type Msg_text
+federated.t1 repair status OK
+REPAIR TABLE federated.t1 USE_FRM;
+Table Op Msg_type Msg_text
+federated.t1 repair status OK
+DROP TABLE IF EXISTS federated.normal_table;
+CREATE TABLE federated.normal_table (
+`id` int(4) NOT NULL,
+`name` varchar(10) default NULL
+) DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.alter_me;
+CREATE TABLE federated.alter_me (
+`id` int(4) NOT NULL,
+`name` varchar(10) default NULL,
+PRIMARY KEY (`id`)
+) ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/normal_table';
+INSERT INTO federated.alter_me (id, name) VALUES (1, 'Monty');
+INSERT INTO federated.alter_me (id, name) VALUES (2, 'David');
+SELECT * FROM federated.alter_me;
+id name
+1 Monty
+2 David
+ALTER TABLE federated.alter_me MODIFY COLUMN id int(16) NOT NULL;
+ERROR HY000: Table storage engine for 'alter_me' doesn't have this option
+SELECT * FROM federated.alter_me;
+id name
+1 Monty
+2 David
+DROP TABLE federated.alter_me;
+DROP TABLE federated.normal_table;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`bitty` bit(3)
+) DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`bitty` bit(3)
+) ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 VALUES (b'001');
+INSERT INTO federated.t1 VALUES (b'010');
+INSERT INTO federated.t1 VALUES (b'011');
+INSERT INTO federated.t1 VALUES (b'100');
+INSERT INTO federated.t1 VALUES (b'101');
+INSERT INTO federated.t1 VALUES (b'110');
+INSERT INTO federated.t1 VALUES (b'111');
+select * FROM federated.t1;
+bitty
+
+
+
+
+
+
+
+drop table federated.t1;
+drop table federated.t1;
+DROP TABLE IF EXISTS federated.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+PRIMARY KEY (`id`));
+DROP TABLE IF EXISTS federated.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE federated.t1 (
+`id` int(20) NOT NULL auto_increment,
+PRIMARY KEY (`id`)
+)
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+4
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5
+SELECT * FROM federated.t1;
+id
+1
+2
+3
+4
+5
+DROP TABLE federated.t1;
+DROP TABLE federated.t1;
+DROP TABLE IF EXISTS federated.bug_17377_table;
+CREATE TABLE federated.bug_17377_table (
+`fld_cid` bigint(20) NOT NULL auto_increment,
+`fld_name` varchar(255) NOT NULL default '',
+`fld_parentid` bigint(20) NOT NULL default '0',
+`fld_delt` int(1) NOT NULL default '0',
+PRIMARY KEY (`fld_cid`),
+KEY `fld_parentid` (`fld_parentid`),
+KEY `fld_delt` (`fld_delt`),
+KEY `fld_cid` (`fld_cid`)
+) ENGINE=MyISAM;
+insert into federated.bug_17377_table( fld_name )
+values
+("Mats"), ("Sivert"), ("Sigvard"), ("Torgny"), ("Torkel");
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`fld_cid` bigint(20) NOT NULL auto_increment,
+`fld_name` varchar(255) NOT NULL default '',
+`fld_parentid` bigint(20) NOT NULL default '0',
+`fld_delt` int(1) NOT NULL default '0',
+PRIMARY KEY (`fld_cid`),
+KEY `fld_parentid` (`fld_parentid`),
+KEY `fld_delt` (`fld_delt`),
+KEY `fld_cid` (`fld_cid`)
+) ENGINE=FEDERATED
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/bug_17377_table';
+select * from federated.t1 where fld_parentid=0 and fld_delt=0
+order by fld_name;
+fld_cid fld_name fld_parentid fld_delt
+1 Mats 0 0
+3 Sigvard 0 0
+2 Sivert 0 0
+4 Torgny 0 0
+5 Torkel 0 0
+select * from federated.t1 where fld_parentid=0 and fld_delt=0;
+fld_cid fld_name fld_parentid fld_delt
+1 Mats 0 0
+2 Sivert 0 0
+3 Sigvard 0 0
+4 Torgny 0 0
+5 Torkel 0 0
+DROP TABLE federated.t1;
+DROP TABLE federated.bug_17377_table;
+create table federated.t1 (i1 int, i2 int, i3 int);
+create table federated.t2 (id int, c1 varchar(20), c2 varchar(20));
+create table federated.t1 (i1 int, i2 int, i3 int) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+create table federated.t2 (id int, c1 varchar(20), c2 varchar(20)) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t2';
+insert into federated.t1 values (1,5,10),(3,7,12),(4,5,2),(9,10,15),(2,2,2);
+insert into federated.t2 values (9,"abc","def"),(5,"opq","lmn"),(2,"test t","t test");
+select * from federated.t1 order by i1;
+i1 i2 i3
+1 5 10
+2 2 2
+3 7 12
+4 5 2
+9 10 15
+select * from federated.t2;
+id c1 c2
+9 abc def
+5 opq lmn
+2 test t t test
+update federated.t1,federated.t2 set t1.i2=15, t2.c2="ppc" where t1.i1=t2.id;
+select * from federated.t1 order by i1;
+i1 i2 i3
+1 5 10
+2 15 2
+3 7 12
+4 5 2
+9 15 15
+select * from federated.t2 order by id;
+id c1 c2
+2 test t ppc
+5 opq lmn
+9 abc ppc
+delete federated.t1.*,federated.t2.* from federated.t1,federated.t2 where t1.i2=t2.id;
+select * from federated.t1 order by i1;
+i1 i2 i3
+2 15 2
+3 7 12
+9 15 15
+select * from federated.t2 order by id;
+id c1 c2
+2 test t ppc
+9 abc ppc
+drop table federated.t1, federated.t2;
+drop table federated.t1, federated.t2;
+create table federated.t1 (i1 int, i2 int, i3 int, primary key (i1));
+create table federated.t2 (id int, c1 varchar(20), c2 varchar(20), primary key (id));
+create table federated.t1 (i1 int auto_increment not null, i2 int, i3 int, primary key (i1)) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+create table federated.t2 (id int auto_increment not null, c1 varchar(20), c2 varchar(20), primary key(id)) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t2';
+insert into federated.t1 values (1,5,10),(3,7,12),(4,5,2),(9,10,15),(2,2,2);
+insert into federated.t2 values (9,"abc","def"),(5,"opq","lmn"),(2,"test t","t test");
+select * from federated.t1 order by i1;
+i1 i2 i3
+1 5 10
+2 2 2
+3 7 12
+4 5 2
+9 10 15
+select * from federated.t2 order by id;
+id c1 c2
+2 test t t test
+5 opq lmn
+9 abc def
+update federated.t1,federated.t2 set t1.i2=15, t2.c2="ppc" where t1.i1=t2.id;
+select * from federated.t1 order by i1;
+i1 i2 i3
+1 5 10
+2 15 2
+3 7 12
+4 5 2
+9 15 15
+select * from federated.t2 order by id;
+id c1 c2
+2 test t ppc
+5 opq lmn
+9 abc ppc
+delete federated.t1.*,federated.t2.* from federated.t1,federated.t2 where t1.i2=t2.id;
+select * from federated.t1 order by i1;
+i1 i2 i3
+2 15 2
+3 7 12
+9 15 15
+select * from federated.t2 order by id;
+id c1 c2
+2 test t ppc
+9 abc ppc
+drop table federated.t1, federated.t2;
+drop table federated.t1, federated.t2;
+DROP TABLE IF EXISTS federated.test;
+CREATE TABLE federated.test (
+`id` int(11) NOT NULL,
+`val1` varchar(255) NOT NULL,
+`val2` varchar(255) NOT NULL,
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.test_local;
+DROP TABLE IF EXISTS federated.test_remote;
+CREATE TABLE federated.test_local (
+`id` int(11) NOT NULL,
+`val1` varchar(255) NOT NULL,
+`val2` varchar(255) NOT NULL,
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+INSERT INTO federated.test_local VALUES (1, 'foo', 'bar'),
+(2, 'bar', 'foo');
+CREATE TABLE federated.test_remote (
+`id` int(11) NOT NULL,
+`val1` varchar(255) NOT NULL,
+`val2` varchar(255) NOT NULL,
+PRIMARY KEY (`id`)
+) ENGINE=FEDERATED DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/test';
+insert into federated.test_remote select * from federated.test_local;
+select * from federated.test_remote;
+id val1 val2
+1 foo bar
+2 bar foo
+delete from federated.test_remote where id in (1,2);
+insert into federated.test_remote select * from federated.test_local;
+select * from federated.test_remote;
+id val1 val2
+2 bar foo
+1 foo bar
+DROP TABLE federated.test_local;
+DROP TABLE federated.test_remote;
+DROP TABLE federated.test;
+drop table if exists federated.t1;
+create table federated.t1 (a int, b int, c int);
+drop table if exists federated.t1;
+drop table if exists federated.t2;
+create table federated.t1 (a int, b int, c int) engine=federated connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+create trigger federated.t1_bi before insert on federated.t1 for each row set new.c= new.a * new.b;
+create table federated.t2 (a int, b int);
+insert into federated.t2 values (13, 17), (19, 23);
+insert into federated.t1 (a, b) values (1, 2), (3, 5), (7, 11);
+select * from federated.t1;
+a b c
+1 2 2
+3 5 15
+7 11 77
+delete from federated.t1;
+insert into federated.t1 (a, b) select * from federated.t2;
+select * from federated.t1;
+a b c
+13 17 221
+19 23 437
+delete from federated.t1;
+load data infile '../std_data_ln/loaddata5.dat' into table federated.t1 fields terminated by '' enclosed by '' ignore 1 lines (a, b);
+select * from federated.t1;
+a b c
+3 4 12
+5 6 30
+drop tables federated.t1, federated.t2;
+drop table federated.t1;
+create table t1 (id int not null auto_increment primary key, val int);
+create table t1
+(id int not null auto_increment primary key, val int) engine=federated
+connection='mysql://root@127.0.0.1:SLAVE_PORT/test/t1';
+insert into t1 values (1,0),(2,0);
+update t1 set val = NULL where id = 1;
+select * from t1;
+id val
+1 NULL
+2 0
+select * from t1;
+id val
+1 NULL
+2 0
+drop table t1;
+drop table t1;
+create table t1 (a longblob not null);
+create table t1
+(a longblob not null) engine=federated
+connection='mysql://root@127.0.0.1:SLAVE_PORT/test/t1';
+insert into t1 values (repeat('a',5000));
+select length(a) from t1;
+length(a)
+5000
+select length(a) from t1;
+length(a)
+5000
+drop table t1;
+drop table t1;
+DROP TABLE IF EXISTS federated.test;
+CREATE TABLE federated.test (
+`i` int(11) NOT NULL,
+`j` int(11) NOT NULL,
+`c` varchar(30) default NULL,
+PRIMARY KEY (`i`,`j`),
+UNIQUE KEY `i` (`i`,`c`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.test1;
+DROP TABLE IF EXISTS federated.test2;
+create table federated.test1 (
+i int not null,
+j int not null,
+c varchar(30),
+primary key (i,j),
+unique key (i, c))
+engine = federated
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/test';
+create table federated.test2 (
+i int default null,
+j int not null,
+c varchar(30),
+key (i))
+engine = federated
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/test';
+drop table federated.test1, federated.test2;
+drop table federated.test;
+set names utf8;
+create table federated.t1 (a varchar(64)) DEFAULT CHARSET=utf8;
+insert into federated.t1 values (0x6DC3A56E6164);
+select hex(a) from federated.t1;
+hex(a)
+6DC3A56E6164
+create table federated.t1 (a varchar(64))
+ENGINE=FEDERATED
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
+DEFAULT CHARSET=utf8;
+set names utf8;
+select hex(a) from federated.t1;
+hex(a)
+6DC3A56E6164
+insert into federated.t1 values (0xC3A4C3B6C3BCC39F);
+insert into federated.t1 values (0xD18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E);
+select hex(a) from federated.t1;
+hex(a)
+6DC3A56E6164
+C3A4C3B6C3BCC39F
+D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
+select hex(a) from federated.t1;
+hex(a)
+6DC3A56E6164
+C3A4C3B6C3BCC39F
+D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
+drop table federated.t1;
+drop table federated.t1;
+CREATE TABLE federated.t1 (
+categoryId int(11) NOT NULL AUTO_INCREMENT,
+domainId varchar(745) NOT NULL DEFAULT '',
+categoryName varchar(255) NOT NULL DEFAULT '',
+PRIMARY KEY (categoryId),
+UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+KEY idx_category_domainId (domainId)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TABLE federated.t1 (
+categoryId int(11) NOT NULL AUTO_INCREMENT,
+domainId varchar(745) NOT NULL DEFAULT '',
+categoryName varchar(255) NOT NULL DEFAULT '',
+PRIMARY KEY (categoryId),
+UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+KEY idx_category_domainId (domainId)
+) ENGINE=FEDERATED DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+insert into federated.t1 (domainId, categoryName) values ( '1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231 300', '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 250');
+insert into federated.t1 (domainId, categoryName) values ( '12312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312 301', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 250');
+insert into federated.t1 (domainId, categoryName) values ('a', 'b');
+select categoryId from federated.t1 order by domainId, categoryName;
+categoryId
+1
+2
+3
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+categoryId
+3
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+categoryId
+3
+select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' order by categoryId;
+categoryId
+1
+2
+drop table federated.t1;
+drop table federated.t1;
+create table federated.t1 (a int primary key, b varchar(64))
+DEFAULT CHARSET=utf8;
+create table federated.t1 (a int primary key, b varchar(64))
+ENGINE=FEDERATED
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
+ DEFAULT CHARSET=utf8;
+insert ignore into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+select * from federated.t1;
+a b
+1 Larry
+2 Curly
+truncate federated.t1;
+replace into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+select * from federated.t1;
+a b
+1 Moe
+2 Curly
+update ignore federated.t1 set a=a+1;
+select * from federated.t1;
+a b
+1 Moe
+3 Curly
+drop table federated.t1;
+drop table federated.t1;
+create table federated.t1 (a int primary key, b varchar(64))
+DEFAULT CHARSET=utf8;
+create table federated.t1 (a int primary key, b varchar(64))
+ENGINE=FEDERATED
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
+ DEFAULT CHARSET=utf8;
+insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe")
+on duplicate key update a=a+100;
+ERROR 23000: Can't write; duplicate key in table 't1'
+select * from federated.t1;
+a b
+1 Larry
+2 Curly
+drop table federated.t1;
+drop table federated.t1;
+
+Bug#18287 create federated table always times out, error 1159 ' '
+
+Test that self-references work
+
+create table federated.t1 (a int primary key);
+create table federated.t2 (a int primary key)
+ENGINE=FEDERATED
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+insert into federated.t1 (a) values (1);
+select * from federated.t2;
+a
+1
+drop table federated.t1, federated.t2;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
diff --git a/mysql-test/r/federated_archive.result b/mysql-test/r/federated_archive.result
new file mode 100644
index 00000000000..3fd7cb2acd4
--- /dev/null
+++ b/mysql-test/r/federated_archive.result
@@ -0,0 +1,48 @@
+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;
+stop slave;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP TABLE IF EXISTS federated.archive_table;
+CREATE TABLE federated.archive_table (
+`id` int(4) NOT NULL,
+`name` varchar(54) default NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int(4) NOT NULL,
+`name` varchar(54) default NULL,
+PRIMARY KEY (`id`)
+)
+ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/archive_table';
+INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t1 (id, name) VALUES (2, 'bar');
+SELECT * FROM federated.t1;
+id name
+1 foo
+2 bar
+DELETE FROM federated.t1 WHERE id = 1;
+ERROR HY000: Got error 10000 'Error on remote system: 1031: Table storage engine for 'archive_table' doesn't have this option' from FEDERATED
+SELECT * FROM federated.t1;
+id name
+1 foo
+2 bar
+UPDATE federated.t1 SET name='baz' WHERE id = 1;
+ERROR HY000: Got error 10000 'Error on remote system: 1031: Table storage engine for 'archive_table' doesn't have this option' from FEDERATED
+SELECT * FROM federated.t1;
+id name
+1 foo
+2 bar
+DROP TABLE federated.t1;
+DROP TABLE federated.archive_table;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
diff --git a/mysql-test/r/federated_bug_13118.result b/mysql-test/r/federated_bug_13118.result
new file mode 100644
index 00000000000..cc14dae87d9
--- /dev/null
+++ b/mysql-test/r/federated_bug_13118.result
@@ -0,0 +1,39 @@
+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;
+stop slave;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP TABLE IF EXISTS federated.bug_13118_table;
+CREATE TABLE federated.bug_13118_table (
+`foo` integer,
+`bar` integer
+);
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`foo` integer,
+`bar` integer
+) ENGINE="FEDERATED"
+ CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/bug_13118_table';
+SELECT * from federated.t1;
+foo bar
+INSERT INTO federated.t1 VALUES (1,1);
+SELECT * FROM federated.t1;
+foo bar
+1 1
+INSERT INTO federated.t1 VALUES (1,1);
+SELECT * FROM federated.t1;
+foo bar
+1 1
+1 1
+DROP TABLE federated.t1;
+DROP TABLE federated.bug_13118_table;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
diff --git a/mysql-test/r/federated_bug_25714.result b/mysql-test/r/federated_bug_25714.result
new file mode 100644
index 00000000000..12554f7af3a
--- /dev/null
+++ b/mysql-test/r/federated_bug_25714.result
@@ -0,0 +1,56 @@
+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;
+stop slave;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP TABLE IF EXISTS federated.bug_13118_table;
+CREATE TABLE federated.t1 (
+`id` int auto_increment primary key,
+`value` int
+) ENGINE=MyISAM;
+INSERT INTO federated.t1 SET value=1;
+INSERT INTO federated.t1 SET value=2;
+INSERT INTO federated.t1 SET value=2;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+`id` int auto_increment primary key,
+`value` int
+) ENGINE=FEDERATED
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+SELECT * from federated.t1;
+id value
+1 1
+2 2
+3 2
+INSERT INTO federated.t1 SET value=4;
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+4
+
+5 inserted
+6 inserted
+
+7 inserted
+8 inserted
+SELECT * from federated.t1;
+id value
+1 1
+2 2
+3 2
+4 4
+5 54
+6 55
+7 54
+8 55
+DROP TABLE federated.t1;
+DROP TABLE federated.t1;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
diff --git a/mysql-test/r/federated_innodb.result b/mysql-test/r/federated_innodb.result
new file mode 100644
index 00000000000..70ba3acb279
--- /dev/null
+++ b/mysql-test/r/federated_innodb.result
@@ -0,0 +1,34 @@
+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;
+stop slave;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+DROP DATABASE IF EXISTS federated;
+CREATE DATABASE federated;
+create table federated.t1 (a int primary key, b varchar(64))
+engine=myisam;
+create table federated.t1 (a int primary key, b varchar(64))
+engine=federated
+connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
+insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+ERROR 23000: Can't write; duplicate key in table 't1'
+select * from federated.t1;
+a b
+1 Larry
+2 Curly
+truncate federated.t1;
+alter table federated.t1 engine=innodb;
+insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+ERROR 23000: Can't write; duplicate key in table 't1'
+select * from federated.t1;
+a b
+drop table federated.t1;
+drop table federated.t1;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
+DROP TABLE IF EXISTS federated.t1;
+DROP DATABASE IF EXISTS federated;
diff --git a/mysql-test/r/fix_priv_tables.result b/mysql-test/r/fix_priv_tables.result
new file mode 100644
index 00000000000..e54330a5520
--- /dev/null
+++ b/mysql-test/r/fix_priv_tables.result
@@ -0,0 +1,36 @@
+drop table if exists t1,t1aa,t2aa;
+DROP DATABASE IF EXISTS testdb;
+CREATE DATABASE testdb;
+CREATE TABLE testdb.t1 (
+c1 INT,
+c3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
+CREATE VIEW testdb.v1 AS
+SELECT * FROM testdb.t1;
+GRANT CREATE VIEW, SHOW VIEW ON testdb.v1 TO 'show_view_tbl'@'localhost';
+SHOW GRANTS FOR 'show_view_tbl'@'localhost';
+Grants for show_view_tbl@localhost
+GRANT USAGE ON *.* TO 'show_view_tbl'@'localhost'
+GRANT CREATE VIEW, SHOW VIEW ON `testdb`.`v1` TO 'show_view_tbl'@'localhost'
+
+GRANT SELECT(c1) on testdb.v1 to 'select_only_c1'@localhost;
+SHOW GRANTS FOR 'select_only_c1'@'localhost';
+Grants for select_only_c1@localhost
+GRANT USAGE ON *.* TO 'select_only_c1'@'localhost'
+GRANT SELECT (c1) ON `testdb`.`v1` TO 'select_only_c1'@'localhost'
+
+"after fix privs"
+SHOW GRANTS FOR 'show_view_tbl'@'localhost';
+Grants for show_view_tbl@localhost
+GRANT USAGE ON *.* TO 'show_view_tbl'@'localhost'
+GRANT CREATE VIEW, SHOW VIEW ON `testdb`.`v1` TO 'show_view_tbl'@'localhost'
+
+SHOW GRANTS FOR 'select_only_c1'@'localhost';
+Grants for select_only_c1@localhost
+GRANT USAGE ON *.* TO 'select_only_c1'@'localhost'
+GRANT SELECT (c1) ON `testdb`.`v1` TO 'select_only_c1'@'localhost'
+
+DROP USER 'show_view_tbl'@'localhost';
+DROP USER 'select_only_c1'@'localhost';
+DROP VIEW testdb.v1;
+DROP TABLE testdb.t1;
+DROP DATABASE testdb;
diff --git a/mysql-test/r/flush.result b/mysql-test/r/flush.result
index 83b8b769f67..7eb7fd16edb 100644
--- a/mysql-test/r/flush.result
+++ b/mysql-test/r/flush.result
@@ -8,7 +8,7 @@ n
3
flush tables with read lock;
drop table t2;
-ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
+ERROR HY000: Can't execute the query because you have a conflicting read lock
drop table t2;
unlock tables;
create database mysqltest;
@@ -48,3 +48,10 @@ lock table t1 read, t2 read, t3 read;
flush tables with read lock;
unlock tables;
drop table t1, t2, t3;
+create table t1 (c1 int);
+create table t2 (c1 int);
+lock table t1 write;
+flush tables with read lock;
+insert into t2 values(1);
+unlock tables;
+drop table t1, t2;
diff --git a/mysql-test/r/flush2.result b/mysql-test/r/flush2.result
new file mode 100644
index 00000000000..13bcc371ef6
--- /dev/null
+++ b/mysql-test/r/flush2.result
@@ -0,0 +1,12 @@
+flush logs;
+set global expire_logs_days = 3;
+show variables like 'log_bin%';
+Variable_name Value
+log_bin OFF
+log_bin_trust_function_creators ON
+flush logs;
+show variables like 'log_bin%';
+Variable_name Value
+log_bin OFF
+log_bin_trust_function_creators ON
+set global expire_logs_days = 0;
diff --git a/mysql-test/r/flush_block_commit_notembedded.result b/mysql-test/r/flush_block_commit_notembedded.result
new file mode 100644
index 00000000000..599efeb3e2d
--- /dev/null
+++ b/mysql-test/r/flush_block_commit_notembedded.result
@@ -0,0 +1,15 @@
+create table t1 (a int) engine=innodb;
+reset master;
+set autocommit=0;
+insert t1 values (1);
+flush tables with read lock;
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 98
+commit;
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 98
+unlock tables;
+drop table t1;
+set autocommit=1;
diff --git a/mysql-test/r/flush_read_lock_kill.result b/mysql-test/r/flush_read_lock_kill.result
new file mode 100644
index 00000000000..6703b6bd533
--- /dev/null
+++ b/mysql-test/r/flush_read_lock_kill.result
@@ -0,0 +1,9 @@
+drop table if exists t1;
+create table t1 (kill_id int);
+insert into t1 values(connection_id());
+flush tables with read lock;
+select ((@id := kill_id) - kill_id) from t1;
+((@id := kill_id) - kill_id)
+0
+kill connection @id;
+drop table t1;
diff --git a/mysql-test/r/flush_table.result b/mysql-test/r/flush_table.result
index 2ef4ab5b52b..db54d2e53ef 100644
--- a/mysql-test/r/flush_table.result
+++ b/mysql-test/r/flush_table.result
@@ -101,3 +101,6 @@ table_id
Record-02
handler t1 close;
drop table t1;
+FLUSH TABLES WITH READ LOCK ;
+FLUSH TABLES WITH READ LOCK ;
+UNLOCK TABLES;
diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result
index af41adf3a24..29fb430bb97 100644
--- a/mysql-test/r/fulltext.result
+++ b/mysql-test/r/fulltext.result
@@ -17,7 +17,7 @@ explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 fulltext a a 0 1 Using where
Warnings:
-Note 1003 select test.t1.a AS `a`,test.t1.b AS `b` from test.t1 where (match test.t1.a,test.t1.b against (_latin1'collections'))
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (match `test`.`t1`.`a`,`test`.`t1`.`b` against (_latin1'collections'))
select * from t1 where MATCH(a,b) AGAINST ("indexes");
a b
Full-text indexes are called collections
@@ -78,7 +78,7 @@ explain extended select * from t1 where MATCH(a,b) AGAINST("support -collections
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 fulltext a a 0 1 Using where
Warnings:
-Note 1003 select test.t1.a AS `a`,test.t1.b AS `b` from test.t1 where (match test.t1.a,test.t1.b against (_latin1'support -collections' in boolean mode))
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (match `test`.`t1`.`a`,`test`.`t1`.`b` against (_latin1'support -collections' in boolean mode))
select * from t1 where MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE);
a b
MySQL has now support for full-text search
@@ -130,6 +130,9 @@ a b
select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
a b
MySQL has now support for full-text search
+select * from t1 where MATCH a,b AGAINST ('"now support"' IN BOOLEAN MODE);
+a b
+MySQL has now support for full-text search
select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE);
a b
MySQL has now support for full-text search
@@ -151,8 +154,6 @@ a b
select * from t1 where MATCH a,b AGAINST ('+collections -supp* -foobar*' IN BOOLEAN MODE);
a b
Full-text indexes are called collections
-select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
-a b
select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE);
a b
Full-text search in MySQL implements vector space model
@@ -220,14 +221,14 @@ select t1.id FROM t2 as ttxt,t1,t1 as ticket2
WHERE ticket2.id = ttxt.ticket AND t1.id = ticket2.ticket and
match(ttxt.inhalt) against ('foobar');
id
-select t1.id FROM t2 as ttxt,t1 INNER JOIN t1 as ticket2 ON
-ticket2.id = ttxt.ticket
-WHERE t1.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
+select ticket2.id FROM t2 as ttxt,t2 INNER JOIN t1 as ticket2 ON
+ticket2.id = t2.ticket
+WHERE ticket2.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
id
INSERT INTO t1 VALUES (3,3);
-select t1.id FROM t2 as ttxt,t1
-INNER JOIN t1 as ticket2 ON ticket2.id = ttxt.ticket
-WHERE t1.id = ticket2.ticket and
+select ticket2.id FROM t2 as ttxt,t2
+INNER JOIN t1 as ticket2 ON ticket2.id = t2.ticket
+WHERE ticket2.id = ticket2.ticket and
match(ttxt.inhalt) against ('foobar');
id
3
@@ -336,8 +337,8 @@ insert into t2 values (1, 1, 'xxfoo');
insert into t2 values (2, 1, 'xxbar');
insert into t2 values (3, 1, 'xxbuz');
select * from t1 join t2 using(`t1_id`) where match (t1.name, t2.name) against('xxfoo' in boolean mode);
-t1_id name t2_id t1_id name
-1 data1 1 1 xxfoo
+t1_id name t2_id name
+1 data1 1 xxfoo
select * from t2 where match name against ('*a*b*c*d*e*f*' in boolean mode);
t2_id t1_id name
drop table t1,t2;
@@ -371,10 +372,10 @@ t collation(t) FORMAT(MATCH t AGAINST ('Osnabruck'),6)
aus Osnabrück utf8_general_ci 1.591140
alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
Warnings:
-Warning 1265 Data truncated for column 't' at row 3
-Warning 1265 Data truncated for column 't' at row 4
-Warning 1265 Data truncated for column 't' at row 5
-Warning 1265 Data truncated for column 't' at row 6
+Warning 1366 Incorrect string value: '\xD0\xAD\xD1\x82\xD0\xBE...' for column 't' at row 3
+Warning 1366 Incorrect string value: '\xD0\x9E\xD1\x82\xD0\xBB...' for column 't' at row 4
+Warning 1366 Incorrect string value: '\xD0\x9D\xD0\xB5 \xD0...' for column 't' at row 5
+Warning 1366 Incorrect string value: '\xD0\xB8 \xD0\xB1\xD1...' for column 't' at row 6
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück');
t collation(t)
aus Osnabrück latin1_german2_ci
@@ -436,15 +437,23 @@ SELECT a FROM t1 WHERE MATCH a AGAINST('testword\'\'' IN BOOLEAN MODE);
a
testword''
DROP TABLE t1;
+CREATE TABLE t1 (a VARCHAR(10000), FULLTEXT(a));
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(10000) default NULL,
+ FULLTEXT KEY `a` (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t1;
CREATE TABLE t1 (a TEXT, FULLTEXT KEY(a));
INSERT INTO t1 VALUES('test'),('test1'),('test');
-PREPARE stmt from "SELECT a, MATCH(a) AGAINST('test1 test') FROM t1 WHERE MATCH(a) AGAINST('test1 test')";
+PREPARE stmt from "SELECT a, FORMAT(MATCH(a) AGAINST('test1 test'),6) FROM t1 WHERE MATCH(a) AGAINST('test1 test')";
EXECUTE stmt;
-a MATCH(a) AGAINST('test1 test')
-test1 0.68526661396027
+a FORMAT(MATCH(a) AGAINST('test1 test'),6)
+test1 0.685267
EXECUTE stmt;
-a MATCH(a) AGAINST('test1 test')
-test1 0.68526661396027
+a FORMAT(MATCH(a) AGAINST('test1 test'),6)
+test1 0.685267
DEALLOCATE PREPARE stmt;
DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(255), FULLTEXT(a));
diff --git a/mysql-test/r/fulltext3.result b/mysql-test/r/fulltext3.result
new file mode 100644
index 00000000000..019d5f472ed
--- /dev/null
+++ b/mysql-test/r/fulltext3.result
@@ -0,0 +1,13 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(a VARCHAR(255) CHARACTER SET gbk, FULLTEXT(a));
+SET NAMES utf8;
+INSERT INTO t1 VALUES(0xF043616161),(0xBEF361616197C22061616161);
+SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST(0x97C22061616161 IN BOOLEAN MODE);
+HEX(a)
+BEF361616197C22061616161
+DELETE FROM t1 LIMIT 1;
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+SET NAMES latin1;
+DROP TABLE t1;
diff --git a/mysql-test/r/fulltext_distinct.result b/mysql-test/r/fulltext_distinct.result
index de0668ff28c..7fd42fab646 100644
--- a/mysql-test/r/fulltext_distinct.result
+++ b/mysql-test/r/fulltext_distinct.result
@@ -8,6 +8,8 @@ KEY kt(tag),
KEY kv(value(15)),
FULLTEXT KEY kvf(value)
) ENGINE=MyISAM;
+Warnings:
+Warning 1101 BLOB/TEXT column 'value' can't have a default value
CREATE TABLE t2 (
id_t2 mediumint unsigned NOT NULL default '0',
id_t1 mediumint unsigned NOT NULL default '0',
diff --git a/mysql-test/r/fulltext_left_join.result b/mysql-test/r/fulltext_left_join.result
index fdf11c14cc4..ea4cacf2fab 100644
--- a/mysql-test/r/fulltext_left_join.result
+++ b/mysql-test/r/fulltext_left_join.result
@@ -90,3 +90,10 @@ id link name relevance
1 1 string 0
2 0 string 0
DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (b INT, c TEXT, KEY(b));
+INSERT INTO t1 VALUES(1);
+INSERT INTO t2(b,c) VALUES(2,'castle'),(3,'castle');
+SELECT * FROM t1 LEFT JOIN t2 ON a=b WHERE MATCH(c) AGAINST('+castle' IN BOOLEAN MODE);
+a b c
+DROP TABLE t1, t2;
diff --git a/mysql-test/r/fulltext_order_by.result b/mysql-test/r/fulltext_order_by.result
index 0b77153248e..bc466b5aba7 100644
--- a/mysql-test/r/fulltext_order_by.result
+++ b/mysql-test/r/fulltext_order_by.result
@@ -1,4 +1,4 @@
-DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1,t2,t3;
CREATE TABLE t1 (
a INT AUTO_INCREMENT PRIMARY KEY,
message CHAR(20),
@@ -126,7 +126,7 @@ group by
a.text, b.id, b.betreff
order by
match(b.betreff) against ('+abc' in boolean mode) desc;
-ERROR 42S02: Unknown table 'b' in order clause
+ERROR 42S22: Unknown column 'b.betreff' in 'order clause'
select a.text, b.id, b.betreff
from
t2 a inner join t3 b on a.id = b.forum inner join
@@ -142,7 +142,7 @@ where
match(c.beitrag) against ('+abc' in boolean mode)
order by
match(b.betreff) against ('+abc' in boolean mode) desc;
-ERROR 42S02: Unknown table 'b' in order clause
+ERROR 42S22: Unknown column 'b.betreff' in 'order clause'
select a.text, b.id, b.betreff
from
t2 a inner join t3 b on a.id = b.forum inner join
diff --git a/mysql-test/r/fulltext_update.result b/mysql-test/r/fulltext_update.result
index 5d3f95b318c..4a615c88fdd 100644
--- a/mysql-test/r/fulltext_update.result
+++ b/mysql-test/r/fulltext_update.result
@@ -9,6 +9,8 @@ name VARCHAR(80) DEFAULT '' NOT NULL,
FULLTEXT(url,description,shortdesc,longdesc),
PRIMARY KEY(gnr)
);
+Warnings:
+Warning 1101 BLOB/TEXT column 'longdesc' can't have a default value
insert into test (url,shortdesc,longdesc,description,name) VALUES
("http:/test.at", "kurz", "lang","desc", "name");
insert into test (url,shortdesc,longdesc,description,name) VALUES
diff --git a/mysql-test/r/func_compress.result b/mysql-test/r/func_compress.result
index ed8d66e9327..4a3454cf658 100644
--- a/mysql-test/r/func_compress.result
+++ b/mysql-test/r/func_compress.result
@@ -11,7 +11,7 @@ explain extended select uncompress(compress(@test_compress_string));
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache uncompress(compress((@test_compress_string))) AS `uncompress(compress(@test_compress_string))`
+Note 1003 select uncompress(compress((@test_compress_string))) AS `uncompress(compress(@test_compress_string))`
select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string);
uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)
1
@@ -19,7 +19,7 @@ explain extended select uncompressed_length(compress(@test_compress_string))=len
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache (uncompressed_length(compress((@test_compress_string))) = length((@test_compress_string))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)`
+Note 1003 select (uncompressed_length(compress((@test_compress_string))) = length((@test_compress_string))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)`
select uncompressed_length(compress(@test_compress_string));
uncompressed_length(compress(@test_compress_string))
117
@@ -89,3 +89,31 @@ compress(a) is null
0
drop table t1;
End of 4.1 tests
+create table t1 (a varchar(32) not null);
+insert into t1 values ('foo');
+explain select * from t1 where uncompress(a) is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+Warnings:
+Error 1259 ZLIB: Input data corrupted
+select * from t1 where uncompress(a) is null;
+a
+foo
+Warnings:
+Error 1259 ZLIB: Input data corrupted
+explain select *, uncompress(a) from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+select *, uncompress(a) from t1;
+a uncompress(a)
+foo NULL
+Warnings:
+Error 1259 ZLIB: Input data corrupted
+select *, uncompress(a), uncompress(a) is null from t1;
+a uncompress(a) uncompress(a) is null
+foo NULL 1
+Warnings:
+Error 1259 ZLIB: Input data corrupted
+Error 1259 ZLIB: Input data corrupted
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result
index 94f1f640523..66808afd4e9 100644
--- a/mysql-test/r/func_concat.result
+++ b/mysql-test/r/func_concat.result
@@ -63,7 +63,11 @@ a0
select 'a' union select concat('a', -0.0);
a
a
-good
+a0.0
+select 'a' union select concat('a', -0.0000);
+a
+a
+a0.0000
select concat((select x from (select 'a' as x) as t1 ),
(select y from (select 'b' as y) as t2 )) from (select 1 union select 2 )
as t3;
@@ -71,3 +75,10 @@ concat((select x from (select 'a' as x) as t1 ),
(select y from (select 'b' as y) as t2 ))
ab
ab
+create table t1(f1 varchar(6)) charset=utf8;
+insert into t1 values ("123456");
+select concat(f1, 2) a from t1 union select 'x' a from t1;
+a
+1234562
+x
+drop table t1;
diff --git a/mysql-test/r/func_date_add.result b/mysql-test/r/func_date_add.result
index f4091ff4c0e..a7f2383848d 100644
--- a/mysql-test/r/func_date_add.result
+++ b/mysql-test/r/func_date_add.result
@@ -4,7 +4,7 @@ visitor_id int(10) unsigned DEFAULT '0' NOT NULL,
group_id int(10) unsigned DEFAULT '0' NOT NULL,
hits int(10) unsigned DEFAULT '0' NOT NULL,
sessions int(10) unsigned DEFAULT '0' NOT NULL,
-ts timestamp(14),
+ts timestamp,
PRIMARY KEY (visitor_id,group_id)
)/*! engine=MyISAM */;
INSERT INTO t1 VALUES (465931136,7,2,2,20000318160952);
@@ -45,3 +45,54 @@ visitor_id mts
465931136 2000-03-18 16:09:53
1092858576 2000-03-19 01:34:45
drop table t1;
+set sql_mode='traditional';
+create table t1 (d date);
+insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
+ERROR 22008: Datetime function: datetime field overflow
+insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
+ERROR 22008: Datetime function: datetime field overflow
+insert into t1 values (date_add(NULL, INTERVAL 1 DAY));
+insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY));
+set sql_mode='';
+insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
+insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
+insert into t1 values (date_add(NULL, INTERVAL 1 DAY));
+insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY));
+select * from t1;
+d
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+drop table t1;
+End of 4.1 tests
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY;
+CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY
+2006-09-27
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH;
+CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH
+2006-10-26
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR;
+CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR
+2007-09-26
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK;
+CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK
+2006-10-03
+create table t1 (a int, b varchar(10));
+insert into t1 values (1, '2001-01-01'),(2, '2002-02-02');
+select '2007-01-01' + interval a day from t1;
+'2007-01-01' + interval a day
+2007-01-02
+2007-01-03
+select b + interval a day from t1;
+b + interval a day
+2001-01-02
+2002-02-04
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_default.result b/mysql-test/r/func_default.result
index 2993d79a870..84ead3b73c7 100644
--- a/mysql-test/r/func_default.result
+++ b/mysql-test/r/func_default.result
@@ -8,7 +8,7 @@ explain extended select default(str), default(strnull), default(intg), default(r
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
Warnings:
-Note 1003 select default(test.t1.str) AS `default(str)`,default(test.t1.strnull) AS `default(strnull)`,default(test.t1.intg) AS `default(intg)`,default(test.t1.rel) AS `default(rel)` from test.t1
+Note 1003 select default('') AS `default(str)`,default('') AS `default(strnull)`,default('0') AS `default(intg)`,default('0') AS `default(rel)` from `test`.`t1`
select * from t1 where str <> default(str);
str strnull intg rel
0 0
@@ -16,3 +16,8 @@ explain select * from t1 where str <> default(str);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
drop table t1;
+CREATE TABLE t1 (id int(11), s varchar(20));
+INSERT INTO t1 VALUES (1, 'one'), (2, 'two'), (3, 'three');
+SELECT s, 32 AS mi FROM t1 GROUP BY s HAVING DEFAULT(mi) IS NULL;
+ERROR HY000: Field 'mi' doesn't have a default value
+DROP TABLE t1;
diff --git a/mysql-test/r/func_equal.result b/mysql-test/r/func_equal.result
index 352b76f2744..4750af6e8d8 100644
--- a/mysql-test/r/func_equal.result
+++ b/mysql-test/r/func_equal.result
@@ -1,7 +1,7 @@
drop table if exists t1,t2;
-select 0<=>0,0.0<=>0.0,"A"<=>"A",NULL<=>NULL;
-0<=>0 0.0<=>0.0 "A"<=>"A" NULL<=>NULL
-1 1 1 1
+select 0<=>0,0.0<=>0.0,0E0=0E0,"A"<=>"A",NULL<=>NULL;
+0<=>0 0.0<=>0.0 0E0=0E0 "A"<=>"A" NULL<=>NULL
+1 1 1 1 1
select 1<=>0,0<=>NULL,NULL<=>0;
1<=>0 0<=>NULL NULL<=>0
0 0 0
@@ -11,6 +11,12 @@ select 1.0<=>0.0,0.0<=>NULL,NULL<=>0.0;
select "A"<=>"B","A"<=>NULL,NULL<=>"A";
"A"<=>"B" "A"<=>NULL NULL<=>"A"
0 0 0
+select 0<=>0.0, 0.0<=>0E0, 0E0<=>"0", 10.0<=>1E1, 10<=>10.0, 10<=>1E1;
+0<=>0.0 0.0<=>0E0 0E0<=>"0" 10.0<=>1E1 10<=>10.0 10<=>1E1
+1 1 1 1 1 1
+select 1.0<=>0E1,10<=>NULL,NULL<=>0.0, NULL<=>0E0;
+1.0<=>0E1 10<=>NULL NULL<=>0.0 NULL<=>0E0
+0 0 0 0
create table t1 (id int, value int);
create table t2 (id int, value int);
insert into t1 values (1,null);
@@ -27,3 +33,12 @@ id value
select * from t1 where id <=> value or value<=>id;
id value
drop table t1,t2;
+create table t1 (a bigint unsigned);
+insert into t1 values (4828532208463511553);
+select * from t1 where a = '4828532208463511553';
+a
+4828532208463511553
+select * from t1 where a in ('4828532208463511553');
+a
+4828532208463511553
+drop table t1;
diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result
index fa8a1e2cf6d..73f756bc1d2 100644
--- a/mysql-test/r/func_gconcat.result
+++ b/mysql-test/r/func_gconcat.result
@@ -18,7 +18,7 @@ explain extended select grp,group_concat(c) from t1 group by grp;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 Using filesort
Warnings:
-Note 1003 select test.t1.grp AS `grp`,group_concat(test.t1.c separator ',') AS `group_concat(c)` from test.t1 group by test.t1.grp
+Note 1003 select `test`.`t1`.`grp` AS `grp`,group_concat(`test`.`t1`.`c` separator ',') AS `group_concat(c)` from `test`.`t1` group by `test`.`t1`.`grp`
select grp,group_concat(a,c) from t1 group by grp;
grp group_concat(a,c)
1 1a
@@ -88,7 +88,7 @@ explain extended select grp,group_concat(distinct c order by c desc) from t1 gro
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 Using filesort
Warnings:
-Note 1003 select test.t1.grp AS `grp`,group_concat(distinct test.t1.c order by test.t1.c separator ',') AS `group_concat(distinct c order by c desc)` from test.t1 group by test.t1.grp
+Note 1003 select `test`.`t1`.`grp` AS `grp`,group_concat(distinct `test`.`t1`.`c` order by `test`.`t1`.`c` DESC separator ',') AS `group_concat(distinct c order by c desc)` from `test`.`t1` group by `test`.`t1`.`grp`
select grp,group_concat(c order by c separator ",") from t1 group by grp;
grp group_concat(c order by c separator ",")
1 a
@@ -108,7 +108,7 @@ explain extended select grp,group_concat(distinct c order by c separator ",") fr
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 Using filesort
Warnings:
-Note 1003 select test.t1.grp AS `grp`,group_concat(distinct test.t1.c order by test.t1.c separator ',') AS `group_concat(distinct c order by c separator ",")` from test.t1 group by test.t1.grp
+Note 1003 select `test`.`t1`.`grp` AS `grp`,group_concat(distinct `test`.`t1`.`c` order by `test`.`t1`.`c` ASC separator ',') AS `group_concat(distinct c order by c separator ",")` from `test`.`t1` group by `test`.`t1`.`grp`
select grp,group_concat(distinct c order by c desc separator ",") from t1 group by grp;
grp group_concat(distinct c order by c desc separator ",")
1 a
@@ -126,9 +126,9 @@ grp group_concat(a separator "")+0
3 456789
select grp, group_concat(a separator "")+0.0 from t1 group by grp;
grp group_concat(a separator "")+0.0
-1 1
-2 23
-3 456789
+1 1.0
+2 23.0
+3 456789.0
select grp, ROUND(group_concat(a separator "")) from t1 group by grp;
grp ROUND(group_concat(a separator ""))
1 1
@@ -158,10 +158,10 @@ show warnings;
Level Code Message
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
set group_concat_max_len = 1024;
-select group_concat(sum(a)) from t1 group by grp;
+select group_concat(sum(c)) from t1 group by grp;
ERROR HY000: Invalid use of group function
select grp,group_concat(c order by 2) from t1 group by grp;
-ERROR 42S22: Unknown column '2' in 'group statement'
+ERROR 42S22: Unknown column '2' in 'order clause'
drop table t1;
create table t1 ( URL_ID int(11), URL varchar(80));
create table t2 ( REQ_ID int(11), URL_ID int(11));
@@ -453,7 +453,7 @@ create table t2 select group_concat(a) as a from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` longtext character set cp1250
+ `a` varchar(400) character set cp1250 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select collation(group_concat(a,_koi8r'test')) from t1;
collation(group_concat(a,_koi8r'test'))
@@ -521,6 +521,13 @@ a group_concat(distinct b order by b)
2 3,7
NULL 1,2,3,4,7
drop table t1;
+create table t1 (a char(3), b char(20), primary key (a, b));
+insert into t1 values ('ABW', 'Dutch'), ('ABW', 'English');
+select group_concat(a) from t1 group by b;
+group_concat(a)
+ABW
+ABW
+drop table t1;
CREATE TABLE t1 (
aID smallint(5) unsigned NOT NULL auto_increment,
sometitle varchar(255) NOT NULL default '',
@@ -599,6 +606,58 @@ count(distinct (f1+1))
1
3
drop table t1;
+create table t1 (f1 int unsigned, f2 varchar(255));
+insert into t1 values (1,repeat('a',255)),(2,repeat('b',255));
+select f2,group_concat(f1) from t1 group by f2;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 f2 f2 253 255 255 Y 0 0 8
+def group_concat(f1) 253 400 1 Y 128 0 63
+f2 group_concat(f1)
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2
+drop table t1;
+set names latin1;
+create table t1 (a char, b char);
+insert into t1 values ('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b');
+create table t2 select group_concat(b) as a from t1 where a = 'a';
+create table t3 (select group_concat(a) as a from t1 where a = 'a') union
+(select group_concat(b) as a from t1 where a = 'b');
+select charset(a) from t2;
+charset(a)
+latin1
+select charset(a) from t3;
+charset(a)
+latin1
+latin1
+drop table t1, t2, t3;
+set names default;
+create table t1 (c1 varchar(10), c2 int);
+select charset(group_concat(c1 order by c2)) from t1;
+charset(group_concat(c1 order by c2))
+latin1
+drop table t1;
+CREATE TABLE t1 (a INT(10), b LONGTEXT, PRIMARY KEY (a));
+SET GROUP_CONCAT_MAX_LEN = 20000000;
+INSERT INTO t1 VALUES (1,REPEAT(CONCAT('A',CAST(CHAR(0) AS BINARY),'B'), 40000));
+INSERT INTO t1 SELECT a + 1, b FROM t1;
+SELECT a, CHAR_LENGTH(b) FROM t1;
+a CHAR_LENGTH(b)
+1 120000
+2 120000
+SELECT CHAR_LENGTH( GROUP_CONCAT(b) ) FROM t1;
+CHAR_LENGTH( GROUP_CONCAT(b) )
+240001
+SET GROUP_CONCAT_MAX_LEN = 1024;
+DROP TABLE t1;
+CREATE TABLE t1 (a int, b int);
+INSERT INTO t1 VALUES (2,1), (1,2), (2,2), (1,3);
+SELECT GROUP_CONCAT(a), x
+FROM (SELECT a, GROUP_CONCAT(b) x FROM t1 GROUP BY a) AS s
+GROUP BY x;
+GROUP_CONCAT(a) x
+2 1,2
+1 2,3
+DROP TABLE t1;
set names utf8;
create table t1
(
@@ -669,3 +728,137 @@ f2 group_concat(f1)
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2
drop table t1;
+CREATE TABLE t1(a TEXT, b CHAR(20));
+INSERT INTO t1 VALUES ("one.1","one.1"),("two.2","two.2"),("one.3","one.3");
+SELECT GROUP_CONCAT(DISTINCT UCASE(a)) FROM t1;
+GROUP_CONCAT(DISTINCT UCASE(a))
+ONE.1,TWO.2,ONE.3
+SELECT GROUP_CONCAT(DISTINCT UCASE(b)) FROM t1;
+GROUP_CONCAT(DISTINCT UCASE(b))
+ONE.1,TWO.2,ONE.3
+DROP TABLE t1;
+CREATE TABLE t1( a VARCHAR( 10 ), b INT );
+INSERT INTO t1 VALUES ( repeat( 'a', 10 ), 1),
+( repeat( 'b', 10 ), 2);
+SET group_concat_max_len = 20;
+SELECT GROUP_CONCAT( a ) FROM t1;
+GROUP_CONCAT( a )
+aaaaaaaaaa,bbbbbbbbb
+Warnings:
+Warning 1260 1 line(s) were cut by GROUP_CONCAT()
+SELECT GROUP_CONCAT( DISTINCT a ) FROM t1;
+GROUP_CONCAT( DISTINCT a )
+aaaaaaaaaa,bbbbbbbbb
+Warnings:
+Warning 1260 1 line(s) were cut by GROUP_CONCAT()
+SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
+GROUP_CONCAT( a ORDER BY b )
+aaaaaaaaaa,bbbbbbbbb
+Warnings:
+Warning 1260 1 line(s) were cut by GROUP_CONCAT()
+SELECT GROUP_CONCAT( DISTINCT a ORDER BY b ) FROM t1;
+GROUP_CONCAT( DISTINCT a ORDER BY b )
+aaaaaaaaaa,bbbbbbbbb
+Warnings:
+Warning 1260 1 line(s) were cut by GROUP_CONCAT()
+SET group_concat_max_len = DEFAULT;
+DROP TABLE t1;
+SET group_concat_max_len= 65535;
+CREATE TABLE t1( a TEXT, b INTEGER );
+INSERT INTO t1 VALUES ( 'a', 0 ), ( 'b', 1 );
+SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
+GROUP_CONCAT( a ORDER BY b )
+a,b
+SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
+GROUP_CONCAT(DISTINCT a ORDER BY b)
+a,b
+SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
+GROUP_CONCAT(DISTINCT a)
+a,b
+SET group_concat_max_len= 10;
+SELECT GROUP_CONCAT(a ORDER BY b) FROM t1;
+GROUP_CONCAT(a ORDER BY b)
+a,b
+SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
+GROUP_CONCAT(DISTINCT a ORDER BY b)
+a,b
+SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
+GROUP_CONCAT(DISTINCT a)
+a,b
+SET group_concat_max_len= 65535;
+CREATE TABLE t2( a TEXT );
+INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
+INSERT INTO t2 VALUES( REPEAT( 'b', 5000 ) );
+INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
+SELECT LENGTH( GROUP_CONCAT( DISTINCT a ) ) FROM t2;
+LENGTH( GROUP_CONCAT( DISTINCT a ) )
+10001
+CREATE TABLE t3( a TEXT, b INT );
+INSERT INTO t3 VALUES( REPEAT( 'a', 65534 ), 1 );
+INSERT INTO t3 VALUES( REPEAT( 'a', 65535 ), 2 );
+INSERT INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 );
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 1;
+LENGTH( GROUP_CONCAT( a ) )
+65534
+SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 2;
+LENGTH( GROUP_CONCAT( a ) )
+65535
+SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 3;
+LENGTH( GROUP_CONCAT( a ) )
+65535
+SET group_concat_max_len= DEFAULT;
+DROP TABLE t1, t2, t3;
+set names latin1;
+create table t1 (id int, name varchar(20)) DEFAULT CHARSET=utf8;
+insert into t1 (id, name) values (1, "óra");
+insert into t1 (id, name) values (2, "óra");
+select b.id, group_concat(b.name) from t1 a, t1 b group by b.id;
+id group_concat(b.name)
+1 óra,óra
+2 óra,óra
+drop table t1;
+create table t1(a bit not null);
+insert into t1 values (), (), ();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
+select group_concat(distinct a) from t1;
+group_concat(distinct a)
+0
+select group_concat(distinct a order by a) from t1;
+group_concat(distinct a order by a)
+0
+drop table t1;
+create table t1(a bit(2) not null);
+insert into t1 values (1), (0), (0), (3), (1);
+select group_concat(distinct a) from t1;
+group_concat(distinct a)
+1,0,3
+select group_concat(distinct a order by a) from t1;
+group_concat(distinct a order by a)
+0,1,3
+select group_concat(distinct a order by a desc) from t1;
+group_concat(distinct a order by a desc)
+3,1,0
+drop table t1;
+create table t1(a bit(2), b varchar(10), c bit);
+insert into t1 values (1, 'a', 0), (0, 'b', 1), (0, 'c', 0), (3, 'd', 1),
+(1, 'e', 1), (3, 'f', 1), (0, 'g', 1);
+select group_concat(distinct a, c) from t1;
+group_concat(distinct a, c)
+10,01,00,31,11
+select group_concat(distinct a, c order by a) from t1;
+group_concat(distinct a, c order by a)
+00,01,11,10,31
+select group_concat(distinct a, c) from t1;
+group_concat(distinct a, c)
+10,01,00,31,11
+select group_concat(distinct a, c order by a, c) from t1;
+group_concat(distinct a, c order by a, c)
+00,01,10,11,31
+select group_concat(distinct a, c order by a desc, c desc) from t1;
+group_concat(distinct a, c order by a desc, c desc)
+31,11,10,01,00
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result
index 04f6ebe6398..3a2cb26910a 100644
--- a/mysql-test/r/func_group.result
+++ b/mysql-test/r/func_group.result
@@ -1,4 +1,9 @@
drop table if exists t1,t2;
+set @sav_dpi= @@div_precision_increment;
+set div_precision_increment= 5;
+show variables like 'div_precision_increment';
+Variable_name Value
+div_precision_increment 5
create table t1 (grp int, a bigint unsigned, c char(10) not null);
insert into t1 values (1,1,"a");
insert into t1 values (2,2,"b");
@@ -44,13 +49,13 @@ count(distinct a) count(distinct grp)
6 3
select sum(all a),count(all a),avg(all a),std(all a),variance(all a),bit_or(all a),bit_and(all a),min(all a),max(all a),min(all c),max(all c) from t1;
sum(all a) count(all a) avg(all a) std(all a) variance(all a) bit_or(all a) bit_and(all a) min(all a) max(all a) min(all c) max(all c)
-21 6 3.5000 1.7078 2.9167 7 0 1 6 E
+21 6 3.50000 1.70783 2.91667 7 0 1 6 E
select grp, sum(a),count(a),avg(a),std(a),variance(a),bit_or(a),bit_and(a),min(a),max(a),min(c),max(c) from t1 group by grp;
grp sum(a) count(a) avg(a) std(a) variance(a) bit_or(a) bit_and(a) min(a) max(a) min(c) max(c)
NULL NULL 0 NULL NULL NULL 0 18446744073709551615 NULL NULL
-1 1 1 1.0000 0.0000 0.0000 1 1 1 1 a a
-2 5 2 2.5000 0.5000 0.2500 3 2 2 3 b c
-3 15 3 5.0000 0.8165 0.6667 7 4 4 6 C E
+1 1 1 1.00000 0.00000 0.00000 1 1 1 1 a a
+2 5 2 2.50000 0.50000 0.25000 3 2 2 3 b c
+3 15 3 5.00000 0.81650 0.66667 7 4 4 6 C E
select grp, sum(a)+count(a)+avg(a)+std(a)+variance(a)+bit_or(a)+bit_and(a)+min(a)+max(a)+min(c)+max(c) as sum from t1 group by grp;
grp sum
NULL NULL
@@ -74,12 +79,12 @@ CREATE TABLE t2 (id int(11),name char(20));
INSERT INTO t2 VALUES (1,'Set One'),(2,'Set Two');
select id, avg(value1), std(value1), variance(value1) from t1 group by id;
id avg(value1) std(value1) variance(value1)
-1 1.000000 0.816497 0.666667
-2 11.000000 0.816497 0.666667
+1 1.0000000 0.816497 0.666667
+2 11.0000000 0.816497 0.666667
select name, avg(value1), std(value1), variance(value1) from t1, t2 where t1.id = t2.id group by t1.id;
name avg(value1) std(value1) variance(value1)
-Set One 1.000000 0.816497 0.666667
-Set Two 11.000000 0.816497 0.666667
+Set One 1.0000000 0.816497 0.666667
+Set Two 11.0000000 0.816497 0.666667
drop table t1,t2;
create table t1 (id int not null);
create table t2 (id int not null,rating int null);
@@ -87,9 +92,29 @@ insert into t1 values(1),(2),(3);
insert into t2 values(1, 3),(2, NULL),(2, NULL),(3, 2),(3, NULL);
select t1.id, avg(rating) from t1 left join t2 on ( t1.id = t2.id ) group by t1.id;
id avg(rating)
-1 3.0000
+1 3.00000
2 NULL
-3 2.0000
+3 2.00000
+select sql_small_result t2.id, avg(rating) from t2 group by t2.id;
+id avg(rating)
+1 3.00000
+2 NULL
+3 2.00000
+select sql_big_result t2.id, avg(rating) from t2 group by t2.id;
+id avg(rating)
+1 3.00000
+2 NULL
+3 2.00000
+select sql_small_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;
+id avg(rating+0.0e0)
+1 3
+2 NULL
+3 2
+select sql_big_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;
+id avg(rating+0.0e0)
+1 3
+2 NULL
+3 2
drop table t1,t2;
create table t1 (a smallint(6) primary key, c char(10), b text);
INSERT INTO t1 VALUES (1,'1','1');
@@ -183,12 +208,12 @@ insert into t2 values('BBB', 20, 1.0);
select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;
a1 a2 a1 a2
10 aaa AAA 10
-10 NULL AAA 10
-10 bbb AAA 10
-20 zzz AAA 10
10 aaa BBB 20
+10 NULL AAA 10
10 NULL BBB 20
+10 bbb AAA 10
10 bbb BBB 20
+20 zzz AAA 10
20 zzz BBB 20
select max(t1.a1), max(t2.a1) from t1, t2 where t2.a2=9;
max(t1.a1) max(t2.a1)
@@ -245,27 +270,27 @@ insert into t1 values (2,1);
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
-2 1 1 1.0000 0.0000 1 1 1 1
+2 1 1 1.00000 0.00000 1 1 1 1
select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
-2 1 1 1.0000 0.0000 1 1 1 1
+2 1 1 1.00000 0.00000 1 1 1 1
insert into t1 values (3,1);
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
-2 1 1 1.0000 0.0000 1 1 1 1
-3 1 1 1.0000 0.0000 1 1 1 1
+2 1 1 1.00000 0.00000 1 1 1 1
+3 1 1 1.00000 0.00000 1 1 1 1
select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b), bit_xor(b) from t1 group by a;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b) bit_xor(b)
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0 0
-2 1 1 1.0000 0.0000 1 1 1 1 1
-3 1 1 1.0000 0.0000 1 1 1 1 1
+2 1 1 1.00000 0.00000 1 1 1 1 1
+3 1 1 1.00000 0.00000 1 1 1 1 1
explain extended select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b), bit_xor(b) from t1 group by a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using filesort
Warnings:
-Note 1003 select sql_big_result test.t1.a AS `a`,count(test.t1.b) AS `count(b)`,sum(test.t1.b) AS `sum(b)`,avg(test.t1.b) AS `avg(b)`,std(test.t1.b) AS `std(b)`,min(test.t1.b) AS `min(b)`,max(test.t1.b) AS `max(b)`,bit_and(test.t1.b) AS `bit_and(b)`,bit_or(test.t1.b) AS `bit_or(b)`,bit_xor(test.t1.b) AS `bit_xor(b)` from test.t1 group by test.t1.a
+Note 1003 select sql_big_result `test`.`t1`.`a` AS `a`,count(`test`.`t1`.`b`) AS `count(b)`,sum(`test`.`t1`.`b`) AS `sum(b)`,avg(`test`.`t1`.`b`) AS `avg(b)`,std(`test`.`t1`.`b`) AS `std(b)`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)`,bit_and(`test`.`t1`.`b`) AS `bit_and(b)`,bit_or(`test`.`t1`.`b`) AS `bit_or(b)`,bit_xor(`test`.`t1`.`b`) AS `bit_xor(b)` from `test`.`t1` group by `test`.`t1`.`a`
drop table t1;
create table t1 (col int);
insert into t1 values (-1), (-2), (-3);
@@ -315,12 +340,14 @@ insert into t1 values('GTM',3,'DAL',0.070,date'1977-09-23');
insert into t1 values('SSJ',null,'CHI',null,date'1974-03-19');
insert into t1 values('KKK',3,'ATL',null,null);
insert into t1 values('XXX',null,'MIN',null,null);
+insert into t1 values('WWW',1,'LED',null,null);
insert into t2 values('TKF','Seattle','WA','AME');
insert into t2 values('LCC','Los Angeles','CA','TWU');
insert into t2 values('DEN','Denver','CO','BDL');
insert into t2 values('SDC','San Diego','CA','TWU');
insert into t2 values('NOL','New Orleans','LA','GTM');
insert into t2 values('LAK','Los Angeles','CA','TWU');
+insert into t2 values('AAA','AAA','AA','AME');
select * from t1;
a1 a2 a3 a4 a5
AME 0 SEA 0.1 1942-02-19
@@ -337,6 +364,7 @@ GTM 3 DAL 0.07 1977-09-23
SSJ NULL CHI NULL 1974-03-19
KKK 3 ATL NULL NULL
XXX NULL MIN NULL NULL
+WWW 1 LED NULL NULL
select * from t2;
a1 a2 a3 a4
TKF Seattle WA AME
@@ -345,6 +373,7 @@ DEN Denver CO BDL
SDC San Diego CA TWU
NOL New Orleans LA GTM
LAK Los Angeles CA TWU
+AAA AAA AA AME
explain
select min(a1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
@@ -474,7 +503,7 @@ CHI Los Angeles
explain
select max(a3) from t1 where a2 is null and a2 = 2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
select max(a3) from t1 where a2 is null and a2 = 2;
max(a3)
NULL
@@ -572,15 +601,15 @@ AME AME
explain
select min(a1) from t1 where a1 > 'KKK' or a1 < 'XXX';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 0 NULL 15 Using where; Using index
+1 SIMPLE t1 index PRIMARY PRIMARY 3 NULL 15 Using where; Using index
explain
select min(a1) from t1 where a1 != 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 3 NULL 14 Using where; Using index
+1 SIMPLE t1 index PRIMARY PRIMARY 3 NULL 15 Using where; Using index
explain
select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range k1 k1 3 NULL 5 Using where; Using index
+1 SIMPLE t1 range k1 k1 3 NULL 6 Using where; Using index
explain
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
id select_type table type possible_keys key key_len ref rows Extra
@@ -589,40 +618,40 @@ id select_type table type possible_keys key key_len ref rows Extra
explain
select min(a4 - 0.01) from t1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k2 12 NULL 14 Using index
+1 SIMPLE t1 index NULL k2 12 NULL 15 Using index
explain
select max(a4 + 0.01) from t1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k2 12 NULL 14 Using index
+1 SIMPLE t1 index NULL k2 12 NULL 15 Using index
explain
select min(a3) from t1 where (a2 +1 ) is null;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
+1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
explain
select min(a3) from t1 where (a2 + 1) = 2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
+1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
explain
select min(a3) from t1 where 2 = (a2 + 1);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
+1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
explain
select min(a2) from t1 where a2 < 2 * a2 - 8;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
+1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
explain
select min(a1) from t1 where a1 between a3 and 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 14 Using where
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 15 Using where
explain
select min(a4) from t1 where (a4 + 0.01) between 0.07 and 0.08;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL k2 12 NULL 14 Using where; Using index
+1 SIMPLE t1 index NULL k2 12 NULL 15 Using where; Using index
explain
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index
-1 SIMPLE t1 index NULL PRIMARY 3 NULL 14 Using index
+1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index
drop table t1, t2;
create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
insert into t1 values (1, 3);
@@ -645,6 +674,11 @@ select charset(max(a)), coercibility(max(a)),
charset(min(a)), coercibility(min(a)) from t1;
charset(max(a)) coercibility(max(a)) charset(min(a)) coercibility(min(a))
latin2 2 latin2 2
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` char(1) character set latin2 default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
create table t2 select max(a),min(a) from t1;
show create table t2;
Table Create Table
@@ -652,6 +686,13 @@ t2 CREATE TABLE `t2` (
`max(a)` char(1) character set latin2 default NULL,
`min(a)` char(1) character set latin2 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t2;
+create table t2 select concat(a) from t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `concat(a)` varchar(1) character set latin2 default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2,t1;
create table t1 (a int);
insert into t1 values (1);
@@ -752,7 +793,7 @@ drop table t2;
create table t2 select f2 from (select now() f2 from t1) a;
show columns from t2;
Field Type Null Key Default Extra
-f2 datetime 0000-00-00 00:00:00
+f2 datetime NO 0000-00-00 00:00:00
drop table t2, t1;
CREATE TABLE t1(
id int PRIMARY KEY,
@@ -780,144 +821,6 @@ SELECT MAX(id) FROM t1 WHERE id < 3 AND a=2 AND b=6;
MAX(id)
NULL
DROP TABLE t1;
-create table t1m (a int) engine=myisam;
-create table t1i (a int) engine=innodb;
-create table t2m (a int) engine=myisam;
-create table t2i (a int) engine=innodb;
-insert into t2m values (5);
-insert into t2i values (5);
-select min(a) from t1m;
-min(a)
-NULL
-select min(7) from t1m;
-min(7)
-NULL
-select min(7) from DUAL;
-min(7)
-7
-explain select min(7) from t2m join t1m;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
-select min(7) from t2m join t1m;
-min(7)
-NULL
-select max(a) from t1m;
-max(a)
-NULL
-select max(7) from t1m;
-max(7)
-NULL
-select max(7) from DUAL;
-max(7)
-7
-explain select max(7) from t2m join t1m;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
-select max(7) from t2m join t1m;
-max(7)
-NULL
-select 1, min(a) from t1m where a=99;
-1 min(a)
-1 NULL
-select 1, min(a) from t1m where 1=99;
-1 min(a)
-1 NULL
-select 1, min(1) from t1m where a=99;
-1 min(1)
-1 NULL
-select 1, min(1) from t1m where 1=99;
-1 min(1)
-1 NULL
-select 1, max(a) from t1m where a=99;
-1 max(a)
-1 NULL
-select 1, max(a) from t1m where 1=99;
-1 max(a)
-1 NULL
-select 1, max(1) from t1m where a=99;
-1 max(1)
-1 NULL
-select 1, max(1) from t1m where 1=99;
-1 max(1)
-1 NULL
-select min(a) from t1i;
-min(a)
-NULL
-select min(7) from t1i;
-min(7)
-NULL
-select min(7) from DUAL;
-min(7)
-7
-explain select min(7) from t2i join t1i;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2i ALL NULL NULL NULL NULL 1
-1 SIMPLE t1i ALL NULL NULL NULL NULL 1
-select min(7) from t2i join t1i;
-min(7)
-NULL
-select max(a) from t1i;
-max(a)
-NULL
-select max(7) from t1i;
-max(7)
-NULL
-select max(7) from DUAL;
-max(7)
-7
-explain select max(7) from t2i join t1i;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2i ALL NULL NULL NULL NULL 1
-1 SIMPLE t1i ALL NULL NULL NULL NULL 1
-select max(7) from t2i join t1i;
-max(7)
-NULL
-select 1, min(a) from t1i where a=99;
-1 min(a)
-1 NULL
-select 1, min(a) from t1i where 1=99;
-1 min(a)
-1 NULL
-select 1, min(1) from t1i where a=99;
-1 min(1)
-1 NULL
-select 1, min(1) from t1i where 1=99;
-1 min(1)
-1 NULL
-select 1, max(a) from t1i where a=99;
-1 max(a)
-1 NULL
-select 1, max(a) from t1i where 1=99;
-1 max(a)
-1 NULL
-select 1, max(1) from t1i where a=99;
-1 max(1)
-1 NULL
-select 1, max(1) from t1i where 1=99;
-1 max(1)
-1 NULL
-explain select count(*), min(7), max(7) from t1m, t1i;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found
-1 SIMPLE t1i ALL NULL NULL NULL NULL 1
-select count(*), min(7), max(7) from t1m, t1i;
-count(*) min(7) max(7)
-0 NULL NULL
-explain select count(*), min(7), max(7) from t1m, t2i;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found
-1 SIMPLE t2i ALL NULL NULL NULL NULL 1
-select count(*), min(7), max(7) from t1m, t2i;
-count(*) min(7) max(7)
-0 NULL NULL
-explain select count(*), min(7), max(7) from t2m, t1i;
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2m system NULL NULL NULL NULL 1
-1 SIMPLE t1i ALL NULL NULL NULL NULL 1
-select count(*), min(7), max(7) from t2m, t1i;
-count(*) min(7) max(7)
-0 NULL NULL
-drop table t1m, t1i, t2m, t2i;
CREATE TABLE t1 (id int PRIMARY KEY, b char(3), INDEX(b));
INSERT INTO t1 VALUES (1,'xx'), (2,'aa');
SELECT * FROM t1;
@@ -942,11 +845,22 @@ EXPLAIN SELECT MAX(b) FROM t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
DROP TABLE t1;
+CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin;
+INSERT INTO t1 VALUES
+(1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")),
+(1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff"));
+SELECT MAX(b) FROM t1;
+MAX(b)
+__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________zz
+EXPLAIN SELECT MAX(b) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4
+DROP TABLE t1;
CREATE TABLE t1 (a INT, b INT);
INSERT INTO t1 VALUES (1,1),(1,2),(2,3);
SELECT (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
(SELECT COUNT(DISTINCT t1.b))
-1
+2
1
SELECT (SELECT COUNT(DISTINCT 12)) FROM t1 GROUP BY t1.a;
(SELECT COUNT(DISTINCT 12))
@@ -956,5 +870,521 @@ SELECT AVG(2), BIT_AND(2), BIT_OR(2), BIT_XOR(2), COUNT(*), COUNT(12),
COUNT(DISTINCT 12), MIN(2),MAX(2),STD(2), VARIANCE(2),SUM(2),
GROUP_CONCAT(2),GROUP_CONCAT(DISTINCT 2);
AVG(2) BIT_AND(2) BIT_OR(2) BIT_XOR(2) COUNT(*) COUNT(12) COUNT(DISTINCT 12) MIN(2) MAX(2) STD(2) VARIANCE(2) SUM(2) GROUP_CONCAT(2) GROUP_CONCAT(DISTINCT 2)
-2.0000 2 2 2 1 1 1 2 2 0.0000 0.0000 2 2 2
+2.00000 2 2 2 1 1 1 2 2 0.00000 0.00000 2 2 2
+DROP TABLE t1;
+create table t2 (ff double);
+insert into t2 values (2.2);
+select cast(sum(distinct ff) as decimal(5,2)) from t2;
+cast(sum(distinct ff) as decimal(5,2))
+2.20
+select cast(sum(distinct ff) as signed) from t2;
+cast(sum(distinct ff) as signed)
+2
+select cast(variance(ff) as decimal(10,3)) from t2;
+cast(variance(ff) as decimal(10,3))
+0.000
+select cast(min(ff) as decimal(5,2)) from t2;
+cast(min(ff) as decimal(5,2))
+2.20
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+insert into t1 values(2.2);
+select cast(sum(distinct df) as signed) from t1;
+cast(sum(distinct df) as signed)
+3
+select cast(min(df) as signed) from t1;
+cast(min(df) as signed)
+0
+select 1e8 * sum(distinct df) from t1;
+1e8 * sum(distinct df)
+330000000
+select 1e8 * min(df) from t1;
+1e8 * min(df)
+110000000
+create table t3 (ifl int);
+insert into t3 values(1), (2);
+select cast(min(ifl) as decimal(5,2)) from t3;
+cast(min(ifl) as decimal(5,2))
+1.00
+drop table t1, t2, t3;
+CREATE TABLE t1 (id int(11),value1 float(10,2));
+INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00), (2,13.00);
+select id, stddev_pop(value1), var_pop(value1), stddev_samp(value1), var_samp(value1) from t1 group by id;
+id stddev_pop(value1) var_pop(value1) stddev_samp(value1) var_samp(value1)
+1 0.816497 0.666667 1.000000 1.000000
+2 1.118034 1.250000 1.290994 1.666667
+DROP TABLE t1;
+CREATE TABLE t1 (col1 decimal(16,12));
+INSERT INTO t1 VALUES (-5.00000000001),(-5.00000000002),(-5.00000000003),(-5.00000000000),(-5.00000000001),(-5.00000000002);
+insert into t1 select * from t1;
+select col1,count(col1),sum(col1),avg(col1) from t1 group by col1;
+col1 count(col1) sum(col1) avg(col1)
+-5.000000000030 2 -10.000000000060 -5.00000000003000000
+-5.000000000020 4 -20.000000000080 -5.00000000002000000
+-5.000000000010 4 -20.000000000040 -5.00000000001000000
+-5.000000000000 2 -10.000000000000 -5.00000000000000000
+DROP TABLE t1;
+create table t1 (col1 decimal(16,12));
+insert into t1 values (-5.00000000001);
+insert into t1 values (-5.00000000001);
+select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
+col1 sum(col1) max(col1) min(col1)
+-5.000000000010 -10.000000000020 -5.000000000010 -5.000000000010
+delete from t1;
+insert into t1 values (5.00000000001);
+insert into t1 values (5.00000000001);
+select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
+col1 sum(col1) max(col1) min(col1)
+5.000000000010 10.000000000020 5.000000000010 5.000000000010
+DROP TABLE t1;
+CREATE TABLE t1 (a VARCHAR(400));
+INSERT INTO t1 (a) VALUES ("A"), ("a"), ("a "), ("a "),
+("B"), ("b"), ("b "), ("b ");
+SELECT COUNT(DISTINCT a) FROM t1;
+COUNT(DISTINCT a)
+2
+DROP TABLE t1;
+CREATE TABLE t1 (a int, b int, c int);
+INSERT INTO t1 (a, b, c) VALUES
+(1,1,1), (1,1,2), (1,1,3),
+(1,2,1), (1,2,2), (1,2,3),
+(1,3,1), (1,3,2), (1,3,3),
+(2,1,1), (2,1,2), (2,1,3),
+(2,2,1), (2,2,2), (2,2,3),
+(2,3,1), (2,3,2), (2,3,3),
+(3,1,1), (3,1,2), (3,1,3),
+(3,2,1), (3,2,2), (3,2,3),
+(3,3,1), (3,3,2), (3,3,3);
+SELECT b/c as v, a FROM t1 ORDER BY v;
+v a
+0.33333 3
+0.33333 1
+0.33333 2
+0.50000 1
+0.50000 2
+0.50000 3
+0.66667 2
+0.66667 1
+0.66667 3
+1.00000 3
+1.00000 2
+1.00000 3
+1.00000 1
+1.00000 2
+1.00000 3
+1.00000 2
+1.00000 1
+1.00000 1
+1.50000 3
+1.50000 2
+1.50000 1
+2.00000 1
+2.00000 3
+2.00000 2
+3.00000 3
+3.00000 2
+3.00000 1
+SELECT b/c as v, SUM(a) FROM t1 GROUP BY v;
+v SUM(a)
+0.33333 6
+0.50000 6
+0.66667 6
+1.00000 18
+1.50000 6
+2.00000 6
+3.00000 6
+SELECT SUM(a) FROM t1 GROUP BY b/c;
+SUM(a)
+6
+6
+6
+18
+6
+6
+6
+DROP TABLE t1;
+set div_precision_increment= @sav_dpi;
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
+INSERT INTO t1 VALUES (1,1), (2,2);
+CREATE TABLE t2 (a INT PRIMARY KEY, b INT);
+INSERT INTO t2 VALUES (1,1), (3,3);
+SELECT SQL_NO_CACHE
+(SELECT SUM(c.a) FROM t1 ttt, t2 ccc
+WHERE ttt.a = ccc.b AND ttt.a = t.a GROUP BY ttt.a) AS minid
+FROM t1 t, t2 c WHERE t.a = c.b;
+minid
+1
+DROP TABLE t1,t2;
+create table t1 select variance(0);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `variance(0)` double(8,4) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 select stddev(0);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `stddev(0)` double(8,4) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table bug22555 (i smallint primary key auto_increment, s1 smallint, s2 smallint, e decimal(30,10), o double);
+insert into bug22555 (s1, s2, e, o) values (53, 78, 11.4276528, 6.828112), (17, 78, 5.916793, 1.8502951), (18, 76, 2.679231, 9.17975591), (31, 62, 6.07831, 0.1), (19, 41, 5.37463, 15.1), (83, 73, 14.567426, 7.959222), (92, 53, 6.10151, 13.1856852), (7, 12, 13.92272, 3.442007), (92, 35, 11.95358909, 6.01376678), (38, 84, 2.572, 7.904571);
+select std(s1/s2) from bug22555 group by i;
+std(s1/s2)
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+select std(e) from bug22555 group by i;
+std(e)
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+0.00000000000000
+select std(o) from bug22555 group by i;
+std(o)
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+drop table bug22555;
+create table bug22555 (i smallint, s1 smallint, s2 smallint, o1 double, o2 double, e1 decimal, e2 decimal);
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+select i, count(*) from bug22555 group by i;
+i count(*)
+1 1
+2 1
+3 1
+select std(s1/s2) from bug22555 where i=1;
+std(s1/s2)
+0.00000000
+select std(s1/s2) from bug22555 where i=2;
+std(s1/s2)
+0.00000000
+select std(s1/s2) from bug22555 where i=3;
+std(s1/s2)
+0.00000000
+select std(s1/s2) from bug22555 where i=1 group by i;
+std(s1/s2)
+0.00000000
+select std(s1/s2) from bug22555 where i=2 group by i;
+std(s1/s2)
+0.00000000
+select std(s1/s2) from bug22555 where i=3 group by i;
+std(s1/s2)
+0.00000000
+select std(s1/s2) from bug22555 group by i order by i;
+std(s1/s2)
+0.00000000
+0.00000000
+0.00000000
+select i, count(*), std(o1/o2) from bug22555 group by i order by i;
+i count(*) std(o1/o2)
+1 1 0
+2 1 0
+3 1 0
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+i count(*) std(e1/e2)
+1 1 0.00000000
+2 1 0.00000000
+3 1 0.00000000
+set @saved_div_precision_increment=@@div_precision_increment;
+set div_precision_increment=19;
+select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
+i count(*) variance(s1/s2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
+i count(*) variance(o1/o2)
+1 1 0
+2 1 0
+3 1 0
+select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
+i count(*) variance(e1/e2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+i count(*) std(s1/s2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+select i, count(*), std(o1/o2) from bug22555 group by i order by i;
+i count(*) std(o1/o2)
+1 1 0
+2 1 0
+3 1 0
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+i count(*) std(e1/e2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+set div_precision_increment=20;
+select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
+i count(*) variance(s1/s2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
+i count(*) variance(o1/o2)
+1 1 0
+2 1 0
+3 1 0
+select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
+i count(*) variance(e1/e2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+i count(*) std(s1/s2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+select i, count(*), std(o1/o2) from bug22555 group by i order by i;
+i count(*) std(o1/o2)
+1 1 0
+2 1 0
+3 1 0
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+i count(*) std(e1/e2)
+1 1 0.000000000000000000000000000000
+2 1 0.000000000000000000000000000000
+3 1 0.000000000000000000000000000000
+set @@div_precision_increment=@saved_div_precision_increment;
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+i count(*) std(s1/s2)
+1 4 0.00000000
+2 4 0.00000000
+3 4 0.00000000
+select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
+i count(*) round(std(o1/o2), 16)
+1 4 0.0000000000000000
+2 4 0.0000000000000000
+3 4 0.0000000000000000
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+i count(*) std(e1/e2)
+1 4 0.00000000
+2 4 0.00000000
+3 4 0.00000000
+select std(s1/s2) from bug22555;
+std(s1/s2)
+0.21325764
+select std(o1/o2) from bug22555;
+std(o1/o2)
+0.21325763586649
+select std(e1/e2) from bug22555;
+std(e1/e2)
+0.21325764
+set @saved_div_precision_increment=@@div_precision_increment;
+set div_precision_increment=19;
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+i count(*) std(s1/s2)
+1 4 0.000000000000000000000000000000
+2 4 0.000000000000000000000000000000
+3 4 0.000000000000000000000000000000
+select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
+i count(*) round(std(o1/o2), 16)
+1 4 0.0000000000000000
+2 4 0.0000000000000000
+3 4 0.0000000000000000
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+i count(*) std(e1/e2)
+1 4 0.000000000000000000000000000000
+2 4 0.000000000000000000000000000000
+3 4 0.000000000000000000000000000000
+select round(std(s1/s2), 17) from bug22555;
+round(std(s1/s2), 17)
+0.21325763586649341
+select std(o1/o2) from bug22555;
+std(o1/o2)
+0.21325763586649
+select round(std(e1/e2), 17) from bug22555;
+round(std(e1/e2), 17)
+0.21325763586649341
+set div_precision_increment=20;
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+i count(*) std(s1/s2)
+1 4 0.000000000000000000000000000000
+2 4 0.000000000000000000000000000000
+3 4 0.000000000000000000000000000000
+select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
+i count(*) round(std(o1/o2), 16)
+1 4 0.0000000000000000
+2 4 0.0000000000000000
+3 4 0.0000000000000000
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+i count(*) std(e1/e2)
+1 4 0.000000000000000000000000000000
+2 4 0.000000000000000000000000000000
+3 4 0.000000000000000000000000000000
+select round(std(s1/s2), 17) from bug22555;
+round(std(s1/s2), 17)
+0.21325763586649341
+select std(o1/o2) from bug22555;
+std(o1/o2)
+0.21325763586649
+select round(std(e1/e2), 17) from bug22555;
+round(std(e1/e2), 17)
+0.21325763586649341
+set @@div_precision_increment=@saved_div_precision_increment;
+drop table bug22555;
+create table bug22555 (s smallint, o double, e decimal);
+insert into bug22555 values (1,1,1),(2,2,2),(3,3,3),(6,6,6),(7,7,7);
+select var_samp(s), var_pop(s) from bug22555;
+var_samp(s) var_pop(s)
+6.7000 5.3600
+select var_samp(o), var_pop(o) from bug22555;
+var_samp(o) var_pop(o)
+6.7 5.36
+select var_samp(e), var_pop(e) from bug22555;
+var_samp(e) var_pop(e)
+6.7000 5.3600
+drop table bug22555;
+create table bug22555 (s smallint, o double, e decimal);
+insert into bug22555 values (null,null,null),(null,null,null);
+select var_samp(s) as 'null', var_pop(s) as 'null' from bug22555;
+null null
+NULL NULL
+select var_samp(o) as 'null', var_pop(o) as 'null' from bug22555;
+null null
+NULL NULL
+select var_samp(e) as 'null', var_pop(e) as 'null' from bug22555;
+null null
+NULL NULL
+insert into bug22555 values (1,1,1);
+select var_samp(s) as 'null', var_pop(s) as '0' from bug22555;
+null 0
+NULL 0.0000
+select var_samp(o) as 'null', var_pop(o) as '0' from bug22555;
+null 0
+NULL 0
+select var_samp(e) as 'null', var_pop(e) as '0' from bug22555;
+null 0
+NULL 0.0000
+insert into bug22555 values (2,2,2);
+select var_samp(s) as '0.5', var_pop(s) as '0.25' from bug22555;
+0.5 0.25
+0.5000 0.2500
+select var_samp(o) as '0.5', var_pop(o) as '0.25' from bug22555;
+0.5 0.25
+0.5 0.25
+select var_samp(e) as '0.5', var_pop(e) as '0.25' from bug22555;
+0.5 0.25
+0.5000 0.2500
+drop table bug22555;
+create table t1 (a decimal(20));
+insert into t1 values (12345678901234567890);
+select count(a) from t1;
+count(a)
+1
+select count(distinct a) from t1;
+count(distinct a)
+1
+drop table t1;
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
+INSERT INTO t1 SELECT a, b+8 FROM t1;
+INSERT INTO t1 SELECT a, b+16 FROM t1;
+INSERT INTO t1 SELECT a, b+32 FROM t1;
+INSERT INTO t1 SELECT a, b+64 FROM t1;
+INSERT INTO t1 SELECT a, b+128 FROM t1;
+INSERT INTO t1 SELECT a, b+256 FROM t1;
+INSERT INTO t1 SELECT a, b+512 FROM t1;
+INSERT INTO t1 SELECT a, b+1024 FROM t1;
+INSERT INTO t1 SELECT a, b+2048 FROM t1;
+INSERT INTO t1 SELECT a, b+4096 FROM t1;
+INSERT INTO t1 SELECT a, b+8192 FROM t1;
+INSERT INTO t1 SELECT a, b+16384 FROM t1;
+INSERT INTO t1 SELECT a, b+32768 FROM t1;
+SELECT a,COUNT(DISTINCT b) AS cnt FROM t1 GROUP BY a HAVING cnt > 50;
+a cnt
+1 65536
+SELECT a,SUM(DISTINCT b) AS sumation FROM t1 GROUP BY a HAVING sumation > 50;
+a sumation
+1 2147516416
+SELECT a,AVG(DISTINCT b) AS average FROM t1 GROUP BY a HAVING average > 50;
+a average
+1 32768.5000
+DROP TABLE t1;
+CREATE TABLE t1 ( a INT, b INT, KEY(a) );
+INSERT INTO t1 VALUES (NULL, 1), (NULL, 2);
+EXPLAIN SELECT MIN(a), MIN(b) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+SELECT MIN(a), MIN(b) FROM t1;
+MIN(a) MIN(b)
+NULL 1
+CREATE TABLE t2( a INT, b INT, c INT, KEY(a, b) );
+INSERT INTO t2 ( a, b, c ) VALUES ( 1, NULL, 2 ), ( 1, 3, 4 ), ( 1, 4, 4 );
+EXPLAIN SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref a a 5 const 2 Using where
+SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
+MIN(b) MIN(c)
+3 2
+CREATE TABLE t3 (a INT, b INT, c int, KEY(a, b));
+INSERT INTO t3 VALUES (1, NULL, 1), (2, NULL, 2), (2, NULL, 2), (3, NULL, 3);
+EXPLAIN SELECT MIN(a), MIN(b) FROM t3 where a = 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+SELECT MIN(a), MIN(b) FROM t3 where a = 2;
+MIN(a) MIN(b)
+2 NULL
+CREATE TABLE t4 (a INT, b INT, c int, KEY(a, b));
+INSERT INTO t4 VALUES (1, 1, 1), (2, NULL, 2), (2, NULL, 2), (3, 1, 3);
+EXPLAIN SELECT MIN(a), MIN(b) FROM t4 where a = 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+SELECT MIN(a), MIN(b) FROM t4 where a = 2;
+MIN(a) MIN(b)
+2 NULL
+SELECT MIN(b), min(c) FROM t4 where a = 2;
+MIN(b) min(c)
+NULL 2
+CREATE TABLE t5( a INT, b INT, KEY( a, b) );
+INSERT INTO t5 VALUES( 1, 1 ), ( 1, 2 );
+EXPLAIN SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
+MIN(a) MIN(b)
+1 1
+SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
+MIN(a) MIN(b)
+1 2
+DROP TABLE t1, t2, t3, t4, t5;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 values (),(),();
+SELECT (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ) as x FROM t1
+GROUP BY x;
+x
+0
+SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
+1
+1
DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_if.result b/mysql-test/r/func_if.result
index 2c8f19f1754..c75e37fa0a4 100644
--- a/mysql-test/r/func_if.result
+++ b/mysql-test/r/func_if.result
@@ -43,22 +43,27 @@ explain extended select if(u=1,st,binary st) s from t1 where st like "%a%" order
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where; Using filesort
Warnings:
-Note 1003 select if((test.t1.u = 1),test.t1.st,cast(test.t1.st as char charset binary)) AS `s` from test.t1 where (test.t1.st like _latin1'%a%') order by if((test.t1.u = 1),test.t1.st,cast(test.t1.st as char charset binary))
-select nullif(u=0, 'test') from t1;
-nullif(u=0, 'test')
+Note 1003 select if((`test`.`t1`.`u` = 1),`test`.`t1`.`st`,cast(`test`.`t1`.`st` as char charset binary)) AS `s` from `test`.`t1` where (`test`.`t1`.`st` like _latin1'%a%') order by if((`test`.`t1`.`u` = 1),`test`.`t1`.`st`,cast(`test`.`t1`.`st` as char charset binary))
+select nullif(u, 1) from t1;
+nullif(u, 1)
NULL
NULL
NULL
NULL
NULL
-1
-1
-explain extended select nullif(u=0, 'test') from t1;
+0
+0
+explain extended select nullif(u, 1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
Warnings:
-Note 1003 select nullif((test.t1.u = 0),_latin1'test') AS `nullif(u=0, 'test')` from test.t1
+Note 1003 select nullif(`test`.`t1`.`u`,1) AS `nullif(u, 1)` from `test`.`t1`
drop table t1;
+select nullif(1,'test');
+nullif(1,'test')
+1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'test'
select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
NULLIF(NULL,NULL) NULLIF(NULL,1) NULLIF(NULL,1.0) NULLIF(NULL,"test")
NULL NULL NULL NULL
@@ -86,6 +91,23 @@ drop table t1;
SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL;
NULLIF(5,5) IS NULL NULLIF(5,5) IS NOT NULL
1 0
+CREATE TABLE `t1` (
+`id` int(11) NOT NULL ,
+`date` int(10) default NULL,
+`text` varchar(32) NOT NULL
+);
+INSERT INTO t1 VALUES (1,1110000000,'Day 1'),(2,1111000000,'Day 2'),(3,1112000000,'Day 3');
+SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord ASC;
+id date_ord text
+1 05-03-2005 Day 1
+2 16-03-2005 Day 2
+3 28-03-2005 Day 3
+SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord DESC;
+id date_ord text
+3 28-03-2005 Day 3
+2 16-03-2005 Day 2
+1 05-03-2005 Day 1
+DROP TABLE t1;
CREATE TABLE t1 (a CHAR(10));
INSERT INTO t1 VALUES ('aaa'), (NULL), (''), ('bbb');
SELECT a, NULLIF(a,'') FROM t1;
@@ -99,3 +121,13 @@ a NULLIF(a,'')
NULL NULL
NULL
DROP TABLE t1;
+create table t1 (f1 int, f2 int);
+insert into t1 values(1,1),(0,0);
+select f1, f2, if(f1, 40.0, 5.00) from t1 group by f1 order by f2;
+f1 f2 if(f1, 40.0, 5.00)
+0 0 5.00
+1 1 40.00
+drop table t1;
+select if(0, 18446744073709551610, 18446744073709551610);
+if(0, 18446744073709551610, 18446744073709551610)
+18446744073709551610
diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result
index f74c63f7260..99b16d29eb9 100644
--- a/mysql-test/r/func_in.result
+++ b/mysql-test/r/func_in.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1, t2;
select 1 in (1,2,3);
1 in (1,2,3)
1
@@ -119,7 +119,7 @@ c char(1) character set latin1 collate latin1_danish_ci
insert into t1 values ('A','B','C');
insert into t1 values ('a','c','c');
select * from t1 where a in (b);
-ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ' IN '
+ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
select * from t1 where a in (b,c);
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT), (latin1_swedish_ci,IMPLICIT), (latin1_danish_ci,IMPLICIT) for operation ' IN '
select * from t1 where 'a' in (a,b,c);
@@ -146,7 +146,7 @@ explain extended select * from t1 where 'a' in (a,b,c collate latin1_bin);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1003 select test.t1.a AS `a`,test.t1.b AS `b`,test.t1.c AS `c` from test.t1 where (_latin1'a' in (test.t1.a,test.t1.b,(test.t1.c collate _latin1'latin1_bin')))
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where (_latin1'a' in (`test`.`t1`.`a`,`test`.`t1`.`b`,(`test`.`t1`.`c` collate latin1_bin)))
drop table t1;
set names utf8;
create table t1 (a char(10) character set utf8 not null);
@@ -187,7 +187,7 @@ select 1 in ('1.1',2);
select 1 in ('1.1',2.0);
1 in ('1.1',2.0)
0
-create table t1 (a char(20) character set binary);
+create table t1 (a char(2) character set binary);
insert into t1 values ('aa'), ('bb');
select * from t1 where a in (NULL, 'aa');
a
@@ -210,3 +210,279 @@ SELECT * FROM t1;
NULL
DROP TABLE t1;
End of 4.1 tests
+CREATE TABLE t1 (a int PRIMARY KEY);
+INSERT INTO t1 VALUES (44), (45), (46);
+SELECT * FROM t1 WHERE a IN (45);
+a
+45
+SELECT * FROM t1 WHERE a NOT IN (0, 45);
+a
+44
+46
+SELECT * FROM t1 WHERE a NOT IN (45);
+a
+44
+46
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45);
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` <> 45)
+SELECT * FROM v1;
+a
+44
+46
+DROP VIEW v1;
+DROP TABLE t1;
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, filler char(200), key(a));
+insert into t2 select C.a*2, 'no' from t1 A, t1 B, t1 C;
+insert into t2 select C.a*2+1, 'yes' from t1 C;
+explain
+select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range a a 5 NULL 12 Using where
+select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
+a filler
+1 yes
+3 yes
+5 yes
+7 yes
+9 yes
+11 yes
+13 yes
+15 yes
+17 yes
+19 yes
+explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range a a 5 NULL 912 Using where
+explain select * from t2 force index(a) where a <> 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range a a 5 NULL 912 Using where
+drop table t2;
+create table t2 (a datetime, filler char(200), key(a));
+insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
+'no' from t1 A, t1 B, t1 C where C.a % 2 = 0;
+insert into t2 select '2006-04-25 10:00:00' + interval C.a*2+1 minute,
+'yes' from t1 C;
+explain
+select * from t2 where a NOT IN (
+'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
+'2006-04-25 10:06:00', '2006-04-25 10:08:00');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range a a 9 NULL 18 Using where
+select * from t2 where a NOT IN (
+'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
+'2006-04-25 10:06:00', '2006-04-25 10:08:00');
+a filler
+2006-04-25 10:01:00 yes
+2006-04-25 10:03:00 yes
+2006-04-25 10:05:00 yes
+2006-04-25 10:07:00 yes
+2006-04-25 10:09:00 yes
+2006-04-25 10:11:00 yes
+2006-04-25 10:13:00 yes
+2006-04-25 10:15:00 yes
+2006-04-25 10:17:00 yes
+2006-04-25 10:19:00 yes
+drop table t2;
+create table t2 (a varchar(10), filler char(200), key(a));
+insert into t2 select 'foo', 'no' from t1 A, t1 B;
+insert into t2 select 'barbar', 'no' from t1 A, t1 B;
+insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B;
+insert into t2 values ('fon', '1'), ('fop','1'), ('barbaq','1'),
+('barbas','1'), ('bazbazbay', '1'),('zz','1');
+explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range a a 13 NULL 7 Using where
+drop table t2;
+create table t2 (a decimal(10,5), filler char(200), key(a));
+insert into t2 select 345.67890, 'no' from t1 A, t1 B;
+insert into t2 select 43245.34, 'no' from t1 A, t1 B;
+insert into t2 select 64224.56344, 'no' from t1 A, t1 B;
+insert into t2 values (0, '1'), (22334.123,'1'), (33333,'1'),
+(55555,'1'), (77777, '1');
+explain
+select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range a a 7 NULL 7 Using where
+select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
+a filler
+0.00000 1
+22334.12300 1
+33333.00000 1
+55555.00000 1
+77777.00000 1
+drop table t2;
+create table t2 (a int, key(a), b int);
+insert into t2 values (1,1),(2,2);
+set @cnt= 1;
+set @str="update t2 set b=1 where a not in (";
+select count(*) from (
+select @str:=concat(@str, @cnt:=@cnt+1, ",")
+from t1 A, t1 B, t1 C, t1 D) Z;
+count(*)
+10000
+set @str:=concat(@str, "10000)");
+select substr(@str, 1, 50);
+substr(@str, 1, 50)
+update t2 set b=1 where a not in (2,3,4,5,6,7,8,9,
+prepare s from @str;
+execute s;
+deallocate prepare s;
+set @str=NULL;
+drop table t2;
+drop table t1;
+create table t1 (
+some_id smallint(5) unsigned,
+key (some_id)
+);
+insert into t1 values (1),(2);
+select some_id from t1 where some_id not in(2,-1);
+some_id
+1
+select some_id from t1 where some_id not in(-4,-1,-4);
+some_id
+1
+2
+select some_id from t1 where some_id not in(-4,-1,3423534,2342342);
+some_id
+1
+2
+select some_id from t1 where some_id not in('-1', '0');
+some_id
+1
+2
+drop table t1;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
+CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
+INSERT INTO t2 VALUES (3,2),(4,2);
+CREATE TABLE t3 (a int PRIMARY KEY);
+INSERT INTO t3 VALUES (1),(2),(3),(4);
+CREATE TABLE t4 (a int PRIMARY KEY);
+INSERT INTO t4 VALUES (1),(2);
+EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
+JOIN t1 ON t3.a=t1.a
+JOIN t2 ON t3.a=t2.a
+JOIN t4 WHERE t4.a IN (t1.b, t2.b);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index PRIMARY PRIMARY 4 NULL 4 Using index
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
+SELECT STRAIGHT_JOIN * FROM t3
+JOIN t1 ON t3.a=t1.a
+JOIN t2 ON t3.a=t2.a
+JOIN t4 WHERE t4.a IN (t1.b, t2.b);
+a a b a b a
+3 3 1 3 2 1
+3 3 1 3 2 2
+4 4 1 4 2 1
+4 4 1 4 2 2
+EXPLAIN SELECT STRAIGHT_JOIN
+(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+FROM t3, t1, t2
+WHERE t3.a=t1.a AND t3.a=t2.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t3 index PRIMARY PRIMARY 4 NULL 4 Using index
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t3.a 1
+2 DEPENDENT SUBQUERY t4 index NULL PRIMARY 4 NULL 2 Using where; Using index
+SELECT STRAIGHT_JOIN
+(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+FROM t3, t1, t2
+WHERE t3.a=t1.a AND t3.a=t2.a;
+(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+3
+3
+DROP TABLE t1,t2,t3,t4;
+CREATE TABLE t1(a BIGINT UNSIGNED);
+INSERT INTO t1 VALUES (0xFFFFFFFFFFFFFFFF);
+SELECT * FROM t1 WHERE a=-1 OR a=-2 ;
+a
+SELECT * FROM t1 WHERE a IN (-1, -2);
+a
+CREATE TABLE t2 (a BIGINT UNSIGNED);
+insert into t2 values(13491727406643098568),
+(0x7fffffefffffffff),
+(0x7ffffffeffffffff),
+(0x7fffffffefffffff),
+(0x7ffffffffeffffff),
+(0x7fffffffffefffff),
+(0x7ffffffffffeffff),
+(0x7fffffffffffefff),
+(0x7ffffffffffffeff),
+(0x7fffffffffffffef),
+(0x7ffffffffffffffe),
+(0x7fffffffffffffff),
+(0x8000000000000000),
+(0x8000000000000001),
+(0x8000000000000002),
+(0x8000000000000300),
+(0x8000000000000400),
+(0x8000000000000401),
+(0x8000000000004001),
+(0x8000000000040001),
+(0x8000000000400001),
+(0x8000000004000001),
+(0x8000000040000001),
+(0x8000000400000001),
+(0x8000004000000001),
+(0x8000040000000001);
+SELECT HEX(a) FROM t2 WHERE a IN
+(CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
+42);
+HEX(a)
+BB3C3E98175D33C8
+SELECT HEX(a) FROM t2 WHERE a IN
+(CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
+CAST(0x7fffffffffffffff AS UNSIGNED),
+CAST(0x8000000000000000 AS UNSIGNED),
+CAST(0x8000000000000400 AS UNSIGNED),
+CAST(0x8000000000000401 AS UNSIGNED),
+42);
+HEX(a)
+BB3C3E98175D33C8
+7FFFFFFFFFFFFFFF
+8000000000000000
+8000000000000400
+8000000000000401
+SELECT HEX(a) FROM t2 WHERE a IN
+(CAST(0x7fffffffffffffff AS UNSIGNED),
+CAST(0x8000000000000001 AS UNSIGNED));
+HEX(a)
+7FFFFFFFFFFFFFFF
+8000000000000001
+SELECT HEX(a) FROM t2 WHERE a IN
+(CAST(0x7ffffffffffffffe AS UNSIGNED),
+CAST(0x7fffffffffffffff AS UNSIGNED));
+HEX(a)
+7FFFFFFFFFFFFFFE
+7FFFFFFFFFFFFFFF
+SELECT HEX(a) FROM t2 WHERE a IN
+(0x7ffffffffffffffe,
+0x7fffffffffffffff,
+'abc');
+HEX(a)
+7FFFFFFFFFFFFFFE
+7FFFFFFFFFFFFFFF
+CREATE TABLE t3 (a BIGINT UNSIGNED);
+INSERT INTO t3 VALUES (9223372036854775551);
+SELECT HEX(a) FROM t3 WHERE a IN (9223372036854775807, 42);
+HEX(a)
+CREATE TABLE t4 (a DATE);
+INSERT INTO t4 VALUES ('1972-02-06'), ('1972-07-29');
+SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29');
+a
+1972-02-06
+Warnings:
+Warning 1292 Incorrect date value: '19772-07-29' for column 'a' at row 1
+DROP TABLE t1,t2,t3,t4;
+CREATE TABLE t1 (id int not null);
+INSERT INTO t1 VALUES (1),(2);
+SELECT id FROM t1 WHERE id IN(4564, (SELECT IF(1=0,1,1/0)) );
+id
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_like.result b/mysql-test/r/func_like.result
index bc658f9f7de..7e6fedb9403 100644
--- a/mysql-test/r/func_like.result
+++ b/mysql-test/r/func_like.result
@@ -3,10 +3,10 @@ create table t1 (a varchar(10), key(a));
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
explain select * from t1 where a like 'abc%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a a 11 NULL 1 Using where; Using index
+1 SIMPLE t1 index a a 13 NULL 5 Using where; Using index
explain select * from t1 where a like concat('abc','%');
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a a 11 NULL 1 Using where; Using index
+1 SIMPLE t1 index a a 13 NULL 5 Using where; Using index
select * from t1 where a like "abc%";
a
abc
diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result
index 11a3d14fb65..150b6003dbe 100644
--- a/mysql-test/r/func_math.result
+++ b/mysql-test/r/func_math.result
@@ -90,7 +90,7 @@ explain extended select rand(999999),rand();
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache rand(999999) AS `rand(999999)`,rand() AS `rand()`
+Note 1003 select rand(999999) AS `rand(999999)`,rand() AS `rand()`
select pi(),format(sin(pi()/2),6),format(cos(pi()/2),6),format(abs(tan(pi())),6),format(cot(1),6),format(asin(1),6),format(acos(0),6),format(atan(1),6);
pi() format(sin(pi()/2),6) format(cos(pi()/2),6) format(abs(tan(pi())),6) format(cot(1),6) format(asin(1),6) format(acos(0),6) format(atan(1),6)
3.141593 1.000000 0.000000 0.000000 0.642093 1.570796 1.570796 0.785398
@@ -120,6 +120,9 @@ ASIN(0.8+0.2)
SELECT ASIN(1.2-0.2);
ASIN(1.2-0.2)
1.5707963267949
+select format(4.55, 1), format(4.551, 1);
+format(4.55, 1) format(4.551, 1)
+4.6 4.6
explain extended select degrees(pi()),radians(360);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
@@ -127,15 +130,34 @@ Warnings:
Note 1003 select degrees(pi()) AS `degrees(pi())`,radians(360) AS `radians(360)`
select rand(rand);
ERROR 42S22: Unknown column 'rand' in 'field list'
+create table t1 (col1 int, col2 decimal(60,30));
+insert into t1 values(1,1234567890.12345);
+select format(col2,7) from t1;
+format(col2,7)
+1,234,567,890.1234500
+select format(col2,8) from t1;
+format(col2,8)
+1,234,567,890.12345000
+insert into t1 values(7,1234567890123456.12345);
+select format(col2,6) from t1 where col1=7;
+format(col2,6)
+1,234,567,890,123,456.123450
+drop table t1;
+select ceil(0.09);
+ceil(0.09)
+1
+select ceil(0.000000000000000009);
+ceil(0.000000000000000009)
+1
create table t1 select round(1, 6);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `round(1, 6)` double(7,6) NOT NULL default '0.000000'
+ `round(1, 6)` int(1) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
round(1, 6)
-1.000000
+1
drop table t1;
select abs(-2) * -2;
abs(-2) * -2
@@ -151,3 +173,191 @@ select a from t1 where a='http://www.foo.com/' order by abs(timediff(ts, 0));
a
http://www.foo.com/
drop table t1;
+set sql_mode='traditional';
+select ln(-1);
+ln(-1)
+NULL
+Warnings:
+Error 1365 Division by 0
+select log10(-1);
+log10(-1)
+NULL
+Warnings:
+Error 1365 Division by 0
+select log2(-1);
+log2(-1)
+NULL
+Warnings:
+Error 1365 Division by 0
+select log(2,-1);
+log(2,-1)
+NULL
+Warnings:
+Error 1365 Division by 0
+select log(-2,1);
+log(-2,1)
+NULL
+Warnings:
+Error 1365 Division by 0
+set sql_mode='';
+select round(111,-10);
+round(111,-10)
+0
+select round(-5000111000111000155,-1);
+round(-5000111000111000155,-1)
+-5000111000111000160
+select round(15000111000111000155,-1);
+round(15000111000111000155,-1)
+15000111000111000160
+select truncate(-5000111000111000155,-1);
+truncate(-5000111000111000155,-1)
+-5000111000111000150
+select truncate(15000111000111000155,-1);
+truncate(15000111000111000155,-1)
+15000111000111000150
+set names utf8;
+create table t1
+(f1 varchar(32) not null,
+f2 smallint(5) unsigned not null,
+f3 int(10) unsigned not null default '0')
+engine=myisam default charset=utf8;
+insert into t1 values ('zombie',0,0),('gold',1,10000),('silver',2,10000);
+create table t2
+(f1 int(10) unsigned not null,
+f2 int(10) unsigned not null,
+f3 smallint(5) unsigned not null)
+engine=myisam default charset=utf8;
+insert into t2 values (16777216,16787215,1),(33554432,33564431,2);
+select format(t2.f2-t2.f1+1,0) from t1,t2
+where t1.f2 = t2.f3 order by t1.f1;
+format(t2.f2-t2.f1+1,0)
+10,000
+10,000
+drop table t1, t2;
+set names default;
+select cast(-2 as unsigned), 18446744073709551614, -2;
+cast(-2 as unsigned) 18446744073709551614 -2
+18446744073709551614 18446744073709551614 -2
+select abs(cast(-2 as unsigned)), abs(18446744073709551614), abs(-2);
+abs(cast(-2 as unsigned)) abs(18446744073709551614) abs(-2)
+18446744073709551614 18446744073709551614 2
+select ceiling(cast(-2 as unsigned)), ceiling(18446744073709551614), ceiling(-2);
+ceiling(cast(-2 as unsigned)) ceiling(18446744073709551614) ceiling(-2)
+18446744073709551614 18446744073709551614 -2
+select floor(cast(-2 as unsigned)), floor(18446744073709551614), floor(-2);
+floor(cast(-2 as unsigned)) floor(18446744073709551614) floor(-2)
+18446744073709551614 18446744073709551614 -2
+select format(cast(-2 as unsigned), 2), format(18446744073709551614, 2), format(-2, 2);
+format(cast(-2 as unsigned), 2) format(18446744073709551614, 2) format(-2, 2)
+18,446,744,073,709,551,614.00 18,446,744,073,709,551,614.00 -2.00
+select sqrt(cast(-2 as unsigned)), sqrt(18446744073709551614), sqrt(-2);
+sqrt(cast(-2 as unsigned)) sqrt(18446744073709551614) sqrt(-2)
+4294967296 4294967296 NULL
+select round(cast(-2 as unsigned), 1), round(18446744073709551614, 1), round(-2, 1);
+round(cast(-2 as unsigned), 1) round(18446744073709551614, 1) round(-2, 1)
+18446744073709551614 18446744073709551614 -2
+select round(4, cast(-2 as unsigned)), round(4, 18446744073709551614), round(4, -2);
+round(4, cast(-2 as unsigned)) round(4, 18446744073709551614) round(4, -2)
+4 4 0
+select truncate(cast(-2 as unsigned), 1), truncate(18446744073709551614, 1), truncate(-2, 1);
+truncate(cast(-2 as unsigned), 1) truncate(18446744073709551614, 1) truncate(-2, 1)
+18446744073709551614 18446744073709551614 -2
+select truncate(4, cast(-2 as unsigned)), truncate(4, 18446744073709551614), truncate(4, -2);
+truncate(4, cast(-2 as unsigned)) truncate(4, 18446744073709551614) truncate(4, -2)
+4 4 0
+select round(10000000000000000000, -19), truncate(10000000000000000000, -19);
+round(10000000000000000000, -19) truncate(10000000000000000000, -19)
+10000000000000000000 10000000000000000000
+select round(1e0, -309), truncate(1e0, -309);
+round(1e0, -309) truncate(1e0, -309)
+0 0
+select round(1e1,308), truncate(1e1, 308);
+round(1e1,308) truncate(1e1, 308)
+10 10
+select round(1e1, 2147483648), truncate(1e1, 2147483648);
+round(1e1, 2147483648) truncate(1e1, 2147483648)
+10 10
+select round(1.1e1, 4294967295), truncate(1.1e1, 4294967295);
+round(1.1e1, 4294967295) truncate(1.1e1, 4294967295)
+11 11
+select round(1.12e1, 4294967296), truncate(1.12e1, 4294967296);
+round(1.12e1, 4294967296) truncate(1.12e1, 4294967296)
+11.2 11.2
+select round(1.5, 2147483640), truncate(1.5, 2147483640);
+round(1.5, 2147483640) truncate(1.5, 2147483640)
+1.500000000000000000000000000000 1.500000000000000000000000000000
+select round(1.5, -2147483649), round(1.5, 2147483648);
+round(1.5, -2147483649) round(1.5, 2147483648)
+0 1.500000000000000000000000000000
+select truncate(1.5, -2147483649), truncate(1.5, 2147483648);
+truncate(1.5, -2147483649) truncate(1.5, 2147483648)
+0 1.500000000000000000000000000000
+select round(1.5, -4294967296), round(1.5, 4294967296);
+round(1.5, -4294967296) round(1.5, 4294967296)
+0 1.500000000000000000000000000000
+select truncate(1.5, -4294967296), truncate(1.5, 4294967296);
+truncate(1.5, -4294967296) truncate(1.5, 4294967296)
+0 1.500000000000000000000000000000
+select round(1.5, -9223372036854775808), round(1.5, 9223372036854775808);
+round(1.5, -9223372036854775808) round(1.5, 9223372036854775808)
+0 1.500000000000000000000000000000
+select truncate(1.5, -9223372036854775808), truncate(1.5, 9223372036854775808);
+truncate(1.5, -9223372036854775808) truncate(1.5, 9223372036854775808)
+0 1.500000000000000000000000000000
+select round(1.5, 18446744073709551615), truncate(1.5, 18446744073709551615);
+round(1.5, 18446744073709551615) truncate(1.5, 18446744073709551615)
+1.500000000000000000000000000000 1.500000000000000000000000000000
+select round(18446744073709551614, -1), truncate(18446744073709551614, -1);
+round(18446744073709551614, -1) truncate(18446744073709551614, -1)
+18446744073709551610 18446744073709551610
+select round(4, -4294967200), truncate(4, -4294967200);
+round(4, -4294967200) truncate(4, -4294967200)
+0 0
+select mod(cast(-2 as unsigned), 3), mod(18446744073709551614, 3), mod(-2, 3);
+mod(cast(-2 as unsigned), 3) mod(18446744073709551614, 3) mod(-2, 3)
+2 2 -2
+select mod(5, cast(-2 as unsigned)), mod(5, 18446744073709551614), mod(5, -2);
+mod(5, cast(-2 as unsigned)) mod(5, 18446744073709551614) mod(5, -2)
+5 5 1
+select pow(cast(-2 as unsigned), 5), pow(18446744073709551614, 5), pow(-2, 5);
+pow(cast(-2 as unsigned), 5) pow(18446744073709551614, 5) pow(-2, 5)
+2.1359870359209e+96 2.1359870359209e+96 -32
+CREATE TABLE t1 (a timestamp, b varchar(20), c bit(1));
+INSERT INTO t1 VALUES('1998-09-23', 'str1', 1), ('2003-03-25', 'str2', 0);
+SELECT a DIV 900 y FROM t1 GROUP BY y;
+y
+22201025555
+22255916666
+SELECT DISTINCT a DIV 900 y FROM t1;
+y
+22201025555
+22255916666
+SELECT b DIV 900 y FROM t1 GROUP BY y;
+y
+0
+SELECT c DIV 900 y FROM t1 GROUP BY y;
+y
+0
+DROP TABLE t1;
+CREATE TABLE t1(a LONGBLOB);
+INSERT INTO t1 VALUES('1'),('2'),('3');
+SELECT DISTINCT (a DIV 254576881) FROM t1;
+(a DIV 254576881)
+0
+SELECT (a DIV 254576881) FROM t1 UNION ALL
+SELECT (a DIV 254576881) FROM t1;
+(a DIV 254576881)
+0
+0
+0
+0
+0
+0
+DROP TABLE t1;
+CREATE TABLE t1(a SET('a','b','c'));
+INSERT INTO t1 VALUES ('a');
+SELECT a DIV 2 FROM t1 UNION SELECT a DIV 2 FROM t1;
+a DIV 2
+0
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result
index 246713489b4..c941790c35b 100644
--- a/mysql-test/r/func_misc.result
+++ b/mysql-test/r/func_misc.result
@@ -25,6 +25,8 @@ length(uuid()) charset(uuid()) length(unhex(replace(uuid(),_utf8'-',_utf8'')))
select length(format('nan', 2)) > 0;
length(format('nan', 2)) > 0
1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'nan'
select concat("$",format(2500,2));
concat("$",format(2500,2))
$2,500.00
@@ -49,14 +51,6 @@ select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
a
2004-01-06 12:34:00
drop table t1;
-create table t1 as select uuid(), length(uuid());
-show create table t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `uuid()` char(36) character set utf8 NOT NULL default '',
- `length(uuid())` int(10) NOT NULL default '0'
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-drop table t1;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (conn CHAR(7), connection_id INT);
INSERT INTO t1 VALUES ('default', CONNECTION_ID());
@@ -97,3 +91,120 @@ select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
export_set(3, _latin1'foo', _utf8'bar', ',', 4)
foo,foo,bar,bar
End of 4.1 tests
+create table t1 as select uuid(), length(uuid());
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `uuid()` varchar(36) character set utf8 NOT NULL default '',
+ `length(uuid())` int(10) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (a timestamp default '2005-05-05 01:01:01',
+b timestamp default '2005-05-05 01:01:01');
+insert into t1 set a = now();
+select sleep(3);
+sleep(3)
+0
+update t1 set b = now();
+select timediff(b, a) >= '00:00:03' from t1;
+timediff(b, a) >= '00:00:03'
+1
+drop table t1;
+set global query_cache_size=1355776;
+create table t1 (a int);
+insert into t1 values (1),(1),(1);
+create table t2 (a datetime default null, b datetime default null);
+insert into t2 set a = now();
+select a from t1 where sleep(1);
+a
+update t2 set b = now() where b is null;
+insert into t2 set a = now();
+select a from t1 where sleep(a);
+a
+update t2 set b = now() where b is null;
+insert into t2 set a = now();
+select a from t1 where sleep(1);
+a
+update t2 set b = now() where b is null;
+select timediff(b, a) >= '00:00:03' from t2;
+timediff(b, a) >= '00:00:03'
+1
+1
+1
+drop table t2;
+drop table t1;
+set global query_cache_size=default;
+create table t1 select INET_ATON('255.255.0.1') as `a`;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bigint(21) unsigned default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+drop table if exists table_26093;
+drop function if exists func_26093_a;
+drop function if exists func_26093_b;
+create table table_26093(a int);
+insert into table_26093 values
+(1), (2), (3), (4), (5),
+(6), (7), (8), (9), (10);
+create function func_26093_a(x int) returns int
+begin
+set @invoked := @invoked + 1;
+return x;
+end//
+create function func_26093_b(x int, y int) returns int
+begin
+set @invoked := @invoked + 1;
+return x;
+end//
+select avg(a) from table_26093;
+avg(a)
+5.5000
+select benchmark(100, (select avg(a) from table_26093));
+benchmark(100, (select avg(a) from table_26093))
+0
+set @invoked := 0;
+select benchmark(100, (select avg(func_26093_a(a)) from table_26093));
+benchmark(100, (select avg(func_26093_a(a)) from table_26093))
+0
+select @invoked;
+@invoked
+10
+set @invoked := 0;
+select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093));
+benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093))
+0
+select @invoked;
+@invoked
+1000
+select benchmark(100, (select (a) from table_26093));
+ERROR 21000: Subquery returns more than 1 row
+select benchmark(100, (select 1, 1));
+ERROR 21000: Operand should contain 1 column(s)
+drop table table_26093;
+drop function func_26093_a;
+drop function func_26093_b;
+SELECT NAME_CONST('test', NOW());
+ERROR HY000: Incorrect arguments to NAME_CONST
+SELECT NAME_CONST('test', UPPER('test'));
+ERROR HY000: Incorrect arguments to NAME_CONST
+SELECT NAME_CONST('test', NULL);
+test
+NULL
+SELECT NAME_CONST('test', 1);
+test
+1
+SELECT NAME_CONST('test', -1);
+test
+-1
+SELECT NAME_CONST('test', 1.0);
+test
+1.0
+SELECT NAME_CONST('test', -1.0);
+test
+-1.0
+SELECT NAME_CONST('test', 'test');
+test
+test
+End of 5.0 tests
diff --git a/mysql-test/r/func_op.result b/mysql-test/r/func_op.result
index 9870af2c6f9..24685d07f3d 100644
--- a/mysql-test/r/func_op.result
+++ b/mysql-test/r/func_op.result
@@ -1,6 +1,6 @@
select 1+1,1-1,1+1*2,8/5,8%5,mod(8,5),mod(8,5)|0,-(1+1)*-2;
1+1 1-1 1+1*2 8/5 8%5 mod(8,5) mod(8,5)|0 -(1+1)*-2
-2 0 3 1.60 3 3 3 4
+2 0 3 1.6000 3 3 3 4
explain extended select 1+1,1-1,1+1*2,8/5,8%5,mod(8,5),mod(8,5)|0,-(1+1)*-2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
diff --git a/mysql-test/r/func_regexp.result b/mysql-test/r/func_regexp.result
index 8228d6982d3..2366947d2a7 100644
--- a/mysql-test/r/func_regexp.result
+++ b/mysql-test/r/func_regexp.result
@@ -40,7 +40,7 @@ explain extended select * from t1 where xxx regexp('is a test of some long text
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
Warnings:
-Note 1003 select test.t1.xxx AS `xxx` from test.t1 where (test.t1.xxx regexp _latin1'is a test of some long text to')
+Note 1003 select 'this is a test of some long text to see what happens' AS `xxx` from `test`.`t1` where ('this is a test of some long text to see what happens' regexp _latin1'is a test of some long text to')
select * from t1 where xxx regexp('is a test of some long text to ');
xxx
this is a test of some long text to see what happens
@@ -98,3 +98,8 @@ R2
R3
deallocate prepare stmt1;
drop table t1;
+End of 4.1 tests
+SELECT 1 REGEXP NULL;
+1 REGEXP NULL
+NULL
+End of 5.0 tests
diff --git a/mysql-test/r/func_sapdb.result b/mysql-test/r/func_sapdb.result
index 7c46b966dab..4db0416bdce 100644
--- a/mysql-test/r/func_sapdb.result
+++ b/mysql-test/r/func_sapdb.result
@@ -56,15 +56,31 @@ subdate("1997-12-31 23:59:59.000001", 10)
select datediff("1997-12-31 23:59:59.000001","1997-12-30");
datediff("1997-12-31 23:59:59.000001","1997-12-30")
1
+select datediff("1997-11-30 23:59:59.000001","1997-12-31");
+datediff("1997-11-30 23:59:59.000001","1997-12-31")
+-31
+SET @@SQL_MODE="ALLOW_INVALID_DATES";
select datediff("1997-11-31 23:59:59.000001","1997-12-31");
datediff("1997-11-31 23:59:59.000001","1997-12-31")
-30
-select datediff("1997-11-31 23:59:59.000001",null);
-datediff("1997-11-31 23:59:59.000001",null)
+SET @@SQL_MODE="";
+select datediff("1997-11-31 23:59:59.000001","1997-12-31");
+datediff("1997-11-31 23:59:59.000001","1997-12-31")
+NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1997-11-31 23:59:59.000001'
+select datediff("1997-11-30 23:59:59.000001",null);
+datediff("1997-11-30 23:59:59.000001",null)
NULL
-select weekofyear("1997-11-31 23:59:59.000001");
-weekofyear("1997-11-31 23:59:59.000001")
-49
+select weekofyear("1997-11-30 23:59:59.000001");
+weekofyear("1997-11-30 23:59:59.000001")
+48
+select makedate(03,1);
+makedate(03,1)
+2003-01-01
+select makedate('0003',1);
+makedate('0003',1)
+2003-01-01
select makedate(1997,1);
makedate(1997,1)
1997-01-01
@@ -77,6 +93,9 @@ makedate(9999,365)
select makedate(9999,366);
makedate(9999,366)
NULL
+select makedate(100,1);
+makedate(100,1)
+0100-01-01
select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002");
addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002")
1998-01-02 01:01:01.000001
@@ -175,12 +194,12 @@ date("1997-12-31 23:59:59.000001") as f8,
time("1997-12-31 23:59:59.000001") as f9;
describe t1;
Field Type Null Key Default Extra
-f1 date 0000-00-00
+f1 date NO 0000-00-00
f2 datetime YES NULL
f3 time YES NULL
f4 time YES NULL
f5 time YES NULL
-f6 time 00:00:00
+f6 time YES NULL
f7 datetime YES NULL
f8 date YES NULL
f9 time YES NULL
@@ -207,16 +226,17 @@ ttt qqq
NULL NULL
NULL NULL
2001-01-01 02:02:02 26:02:02
-SELECT TIMEDIFF(t1,t4) As ttt, TIMEDIFF(t2, t3) As qqq from test;
-ttt qqq
--744:00:00 NULL
-838:59:59 22:58:58
--838:59:59 -22:58:58
-NULL 26:02:02
-00:00:00 -26:02:02
-NULL NULL
-NULL NULL
-00:00:00 -24:00:00
+SELECT TIMEDIFF(t1, t4) As ttt, TIMEDIFF(t2, t3) As qqq,
+TIMEDIFF(t3, t2) As eee, TIMEDIFF(t2, t4) As rrr from test;
+ttt qqq eee rrr
+-744:00:00 NULL NULL NULL
+838:59:59 22:58:58 -22:58:58 NULL
+-838:59:59 -22:58:58 22:58:58 NULL
+NULL 26:02:02 -26:02:02 NULL
+00:00:00 -26:02:02 26:02:02 NULL
+NULL NULL NULL NULL
+NULL NULL NULL NULL
+00:00:00 -24:00:00 24:00:00 NULL
Warnings:
Warning 1292 Truncated incorrect time value: '26305:01:02'
Warning 1292 Truncated incorrect time value: '-26305:01:02'
diff --git a/mysql-test/r/func_set.result b/mysql-test/r/func_set.result
index ca6e0a8c319..aa71cee0752 100644
--- a/mysql-test/r/func_set.result
+++ b/mysql-test/r/func_set.result
@@ -30,6 +30,12 @@ Y-N-N-Y-N Y,N,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,
select elt(2,1),field(NULL,"a","b","c");
elt(2,1) field(NULL,"a","b","c")
NULL 0
+select field("b","a",NULL),field(1,0,NULL)+0,field(1.0,0.0,NULL)+0.0,field(1.0e1,0.0e1,NULL)+0.0e1;
+field("b","a",NULL) field(1,0,NULL)+0 field(1.0,0.0,NULL)+0.0 field(1.0e1,0.0e1,NULL)+0.0e1
+0 0 0.0 0
+select field(NULL,"a",NULL),field(NULL,0,NULL)+0,field(NULL,0.0,NULL)+0.0,field(NULL,0.0e1,NULL)+0.0e1;
+field(NULL,"a",NULL) field(NULL,0,NULL)+0 field(NULL,0.0,NULL)+0.0 field(NULL,0.0e1,NULL)+0.0e1
+0 0 0.0 0
select find_in_set("","a,b,c"),find_in_set("","a,b,c,"),find_in_set("",",a,b,c");
find_in_set("","a,b,c") find_in_set("","a,b,c,") find_in_set("",",a,b,c")
0 4 1
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result
index af6a4d20cff..e0b4161a6a0 100644
--- a/mysql-test/r/func_str.result
+++ b/mysql-test/r/func_str.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1,t2;
set names latin1;
select 'hello',"'hello'",'""hello""','''h''e''l''l''o''',"hel""lo",'hel\'lo';
hello 'hello' ""hello"" 'h'e'l'l'o' hel"lo hel'lo
@@ -21,6 +21,9 @@ length(_latin1'\n\t\n\b\0\\_\\%\\')
select concat('monty',' was here ','again'),length('hello'),char(ascii('h')),ord('h');
concat('monty',' was here ','again') length('hello') char(ascii('h')) ord('h')
monty was here again 5 h 104
+select hex(char(256));
+hex(char(256))
+0100
select locate('he','hello'),locate('he','hello',2),locate('lo','hello',2) ;
locate('he','hello') locate('he','hello',2) locate('lo','hello',2)
1 0 4
@@ -30,6 +33,9 @@ instr('hello','HE') instr('hello',binary 'HE') instr(binary 'hello','HE')
select position(binary 'll' in 'hello'),position('a' in binary 'hello');
position(binary 'll' in 'hello') position('a' in binary 'hello')
3 0
+select left('hello',null), right('hello',null);
+left('hello',null) right('hello',null)
+NULL NULL
select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5) ;
left('hello',2) right('hello',2) substring('hello',2,2) mid('hello',1,5)
he lo el hello
@@ -165,6 +171,9 @@ the king of the
select concat(':',ltrim(' left '),':',rtrim(' right '),':');
concat(':',ltrim(' left '),':',rtrim(' right '),':')
:left : right:
+select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':');
+concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':')
+:left : right:
select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':');
concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':')
:left: right:
@@ -284,7 +293,7 @@ lpad('STRING', 20, CONCAT('p','a','d') )
padpadpadpadpaSTRING
select LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'),GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD');
LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD') GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD')
-HAROLD HARRY
+NULL NULL
select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0");
least(1,2,3) | greatest(16,32,8) least(5,4)*1 greatest(-1.0,1.0)*1 least(3,2,1)*1.0 greatest(1,1.1,1.0) least("10",9) greatest("A","B","0")
33 4 1.0 1.0 1.1 9 B
@@ -350,6 +359,8 @@ Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - t
select position("0" in "baaa" in (1)),position("0" in "1" in (1,2,3)),position("sql" in ("mysql"));
position("0" in "baaa" in (1)) position("0" in "1" in (1,2,3)) position("sql" in ("mysql"))
1 0 3
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'baaa'
select position(("1" in (1,2,3)) in "01");
position(("1" in (1,2,3)) in "01")
2
@@ -376,7 +387,7 @@ category int(10) unsigned default NULL,
program int(10) unsigned default NULL,
bugdesc text,
created datetime default NULL,
-modified timestamp(14) NOT NULL,
+modified timestamp NOT NULL,
bugstatus int(10) unsigned default NULL,
submitter int(10) unsigned default NULL
) ENGINE=MyISAM;
@@ -507,9 +518,9 @@ select FIELD(_latin2'b','A','B');
ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'field'
select FIELD('b',_latin2'A','B');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'field'
-select FIELD('b',_latin2'A','B',1);
-FIELD('b',_latin2'A','B',1)
-1
+select FIELD('1',_latin2'3','2',1);
+FIELD('1',_latin2'3','2',1)
+3
select POSITION(_latin1'B' IN _latin1'abcd');
POSITION(_latin1'B' IN _latin1'abcd')
2
@@ -534,9 +545,9 @@ select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2);
SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2)
abcdabc
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin2'd',2);
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'substr_index'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'substring_index'
select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_general_ci,_latin1'd' COLLATE latin1_bin,2);
-ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'substr_index'
+ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'substring_index'
select _latin1'B' between _latin1'a' and _latin1'c';
_latin1'B' between _latin1'a' and _latin1'c'
1
@@ -593,7 +604,7 @@ collation(hex(130)) coercibility(hex(130))
latin1_swedish_ci 4
select collation(char(130)), coercibility(hex(130));
collation(char(130)) coercibility(hex(130))
-latin1_swedish_ci 4
+binary 4
select collation(format(130,10)), coercibility(format(130,10));
collation(format(130,10)) coercibility(format(130,10))
latin1_swedish_ci 4
@@ -711,37 +722,37 @@ Warning 1265 Data truncated for column 'format(130,10)' at row 1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `bin(130)` char(64) NOT NULL default '',
- `oct(130)` char(64) NOT NULL default '',
- `conv(130,16,10)` char(64) NOT NULL default '',
- `hex(130)` char(6) NOT NULL default '',
- `char(130)` char(1) NOT NULL default '',
- `format(130,10)` char(4) NOT NULL default '',
- `left(_latin2'a',1)` char(1) character set latin2 NOT NULL default '',
- `right(_latin2'a',1)` char(1) character set latin2 NOT NULL default '',
- `lcase(_latin2'a')` char(1) character set latin2 NOT NULL default '',
- `ucase(_latin2'a')` char(1) character set latin2 NOT NULL default '',
- `substring(_latin2'a',1,1)` char(1) character set latin2 NOT NULL default '',
- `concat(_latin2'a',_latin2'b')` char(2) character set latin2 NOT NULL default '',
- `lpad(_latin2'a',4,_latin2'b')` char(4) character set latin2 NOT NULL default '',
- `rpad(_latin2'a',4,_latin2'b')` char(4) character set latin2 NOT NULL default '',
- `concat_ws(_latin2'a',_latin2'b')` char(1) character set latin2 NOT NULL default '',
- `make_set(255,_latin2'a',_latin2'b',_latin2'c')` char(5) character set latin2 NOT NULL default '',
- `export_set(255,_latin2'y',_latin2'n',_latin2' ')` char(127) character set latin2 NOT NULL default '',
- `trim(_latin2' a ')` char(3) character set latin2 NOT NULL default '',
- `ltrim(_latin2' a ')` char(3) character set latin2 NOT NULL default '',
- `rtrim(_latin2' a ')` char(3) character set latin2 NOT NULL default '',
- `trim(LEADING _latin2' ' FROM _latin2' a ')` char(3) character set latin2 NOT NULL default '',
- `trim(TRAILING _latin2' ' FROM _latin2' a ')` char(3) character set latin2 NOT NULL default '',
- `trim(BOTH _latin2' ' FROM _latin2' a ')` char(3) character set latin2 NOT NULL default '',
- `repeat(_latin2'a',10)` char(10) character set latin2 NOT NULL default '',
- `reverse(_latin2'ab')` char(2) character set latin2 NOT NULL default '',
- `quote(_latin2'ab')` char(6) character set latin2 NOT NULL default '',
- `soundex(_latin2'ab')` char(4) character set latin2 NOT NULL default '',
- `substring(_latin2'ab',1)` char(2) character set latin2 NOT NULL default '',
- `insert(_latin2'abcd',2,3,_latin2'ef')` char(6) character set latin2 NOT NULL default '',
- `replace(_latin2'abcd',_latin2'b',_latin2'B')` char(4) character set latin2 NOT NULL default '',
- `encode('abcd','ab')` binary(4) NOT NULL default ''
+ `bin(130)` varchar(64) NOT NULL default '',
+ `oct(130)` varchar(64) NOT NULL default '',
+ `conv(130,16,10)` varchar(64) NOT NULL default '',
+ `hex(130)` varchar(6) NOT NULL default '',
+ `char(130)` varbinary(4) NOT NULL default '',
+ `format(130,10)` varchar(4) NOT NULL default '',
+ `left(_latin2'a',1)` varchar(1) character set latin2 NOT NULL default '',
+ `right(_latin2'a',1)` varchar(1) character set latin2 NOT NULL default '',
+ `lcase(_latin2'a')` varchar(1) character set latin2 NOT NULL default '',
+ `ucase(_latin2'a')` varchar(1) character set latin2 NOT NULL default '',
+ `substring(_latin2'a',1,1)` varchar(1) character set latin2 NOT NULL default '',
+ `concat(_latin2'a',_latin2'b')` varchar(2) character set latin2 NOT NULL default '',
+ `lpad(_latin2'a',4,_latin2'b')` varchar(4) character set latin2 NOT NULL default '',
+ `rpad(_latin2'a',4,_latin2'b')` varchar(4) character set latin2 NOT NULL default '',
+ `concat_ws(_latin2'a',_latin2'b')` varchar(1) character set latin2 NOT NULL default '',
+ `make_set(255,_latin2'a',_latin2'b',_latin2'c')` varchar(5) character set latin2 NOT NULL default '',
+ `export_set(255,_latin2'y',_latin2'n',_latin2' ')` varchar(127) character set latin2 NOT NULL default '',
+ `trim(_latin2' a ')` varchar(3) character set latin2 NOT NULL default '',
+ `ltrim(_latin2' a ')` varchar(3) character set latin2 NOT NULL default '',
+ `rtrim(_latin2' a ')` varchar(3) character set latin2 NOT NULL default '',
+ `trim(LEADING _latin2' ' FROM _latin2' a ')` varchar(3) character set latin2 NOT NULL default '',
+ `trim(TRAILING _latin2' ' FROM _latin2' a ')` varchar(3) character set latin2 NOT NULL default '',
+ `trim(BOTH _latin2' ' FROM _latin2' a ')` varchar(3) character set latin2 NOT NULL default '',
+ `repeat(_latin2'a',10)` varchar(10) character set latin2 NOT NULL default '',
+ `reverse(_latin2'ab')` varchar(2) character set latin2 NOT NULL default '',
+ `quote(_latin2'ab')` varchar(6) character set latin2 NOT NULL default '',
+ `soundex(_latin2'ab')` varchar(4) character set latin2 NOT NULL default '',
+ `substring(_latin2'ab',1)` varchar(2) character set latin2 NOT NULL default '',
+ `insert(_latin2'abcd',2,3,_latin2'ef')` varchar(6) character set latin2 NOT NULL default '',
+ `replace(_latin2'abcd',_latin2'b',_latin2'B')` varchar(4) character set latin2 NOT NULL default '',
+ `encode('abcd','ab')` varbinary(4) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a char character set latin2);
@@ -806,13 +817,16 @@ explain extended select md5('hello'), sha('abc'), sha1('abc'), soundex(''), 'moo
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select md5(_latin1'hello') AS `md5('hello')`,sha(_latin1'abc') AS `sha('abc')`,sha(_latin1'abc') AS `sha1('abc')`,soundex(_latin1'') AS `soundex('')`,(soundex(_latin1'mood') = soundex(_latin1'mud')) AS `'mood' sounds like 'mud'`,aes_decrypt(aes_encrypt(_latin1'abc',_latin1'1'),_latin1'1') AS `aes_decrypt(aes_encrypt('abc','1'),'1')`,concat(_latin1'*',repeat(_latin1' ',5),_latin1'*') AS `concat('*',space(5),'*')`,reverse(_latin1'abc') AS `reverse('abc')`,rpad(_latin1'a',4,_latin1'1') AS `rpad('a',4,'1')`,lpad(_latin1'a',4,_latin1'1') AS `lpad('a',4,'1')`,concat_ws(_latin1',',_latin1'',NULL,_latin1'a') AS `concat_ws(',','',NULL,'a')`,make_set(255,_latin2'a',_latin2'b',_latin2'c') AS `make_set(255,_latin2'a',_latin2'b',_latin2'c')`,elt(2,1) AS `elt(2,1)`,locate(_latin1'a',_latin1'b',2) AS `locate("a","b",2)`,format(130,10) AS `format(130,10)`,char(0) AS `char(0)`,conv(130,16,10) AS `conv(130,16,10)`,hex(130) AS `hex(130)`,cast(_latin1'HE' as char charset binary) AS `binary 'HE'`,export_set(255,_latin2'y',_latin2'n',_latin2' ') AS `export_set(255,_latin2'y',_latin2'n',_latin2' ')`,field((_latin1'b' collate _latin1'latin1_bin'),_latin1'A',_latin1'B') AS `FIELD('b' COLLATE latin1_bin,'A','B')`,find_in_set(_latin1'B',_latin1'a,b,c,d') AS `FIND_IN_SET(_latin1'B',_latin1'a,b,c,d')`,collation(conv(130,16,10)) AS `collation(conv(130,16,10))`,coercibility(conv(130,16,10)) AS `coercibility(conv(130,16,10))`,length(_latin1'\n \r\0\\_\\%\\') AS `length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n \r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n \r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,concat(_latin1'monty',_latin1' was here ',_latin1'again') AS `concat('monty',' was here ','again')`,length(_latin1'hello') AS `length('hello')`,char(ascii(_latin1'h')) AS `char(ascii('h'))`,ord(_latin1'h') AS `ord('h')`,quote((1 / 0)) AS `quote(1/0)`,crc32(_latin1'123') AS `crc32("123")`,replace(_latin1'aaaa',_latin1'a',_latin1'b') AS `replace('aaaa','a','b')`,insert(_latin1'txs',2,1,_latin1'hi') AS `insert('txs',2,1,'hi')`,left(_latin2'a',1) AS `left(_latin2'a',1)`,right(_latin2'a',1) AS `right(_latin2'a',1)`,lcase(_latin2'a') AS `lcase(_latin2'a')`,ucase(_latin2'a') AS `ucase(_latin2'a')`,substr(_latin1'abcdefg',3,2) AS `SUBSTR('abcdefg',3,2)`,substr_index(_latin1'1abcd;2abcd;3abcd;4abcd',_latin1';',2) AS `substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2)`,trim(_latin2' a ') AS `trim(_latin2' a ')`,ltrim(_latin2' a ') AS `ltrim(_latin2' a ')`,rtrim(_latin2' a ') AS `rtrim(_latin2' a ')`,decode(encode(repeat(_latin1'a',100000),'monty'),'monty') AS `decode(encode(repeat("a",100000),"monty"),"monty")`
+Note 1003 select md5(_latin1'hello') AS `md5('hello')`,sha(_latin1'abc') AS `sha('abc')`,sha(_latin1'abc') AS `sha1('abc')`,soundex(_latin1'') AS `soundex('')`,(soundex(_latin1'mood') = soundex(_latin1'mud')) AS `'mood' sounds like 'mud'`,aes_decrypt(aes_encrypt(_latin1'abc',_latin1'1'),_latin1'1') AS `aes_decrypt(aes_encrypt('abc','1'),'1')`,concat(_latin1'*',repeat(_latin1' ',5),_latin1'*') AS `concat('*',space(5),'*')`,reverse(_latin1'abc') AS `reverse('abc')`,rpad(_latin1'a',4,_latin1'1') AS `rpad('a',4,'1')`,lpad(_latin1'a',4,_latin1'1') AS `lpad('a',4,'1')`,concat_ws(_latin1',',_latin1'',NULL,_latin1'a') AS `concat_ws(',','',NULL,'a')`,make_set(255,_latin2'a',_latin2'b',_latin2'c') AS `make_set(255,_latin2'a',_latin2'b',_latin2'c')`,elt(2,1) AS `elt(2,1)`,locate(_latin1'a',_latin1'b',2) AS `locate("a","b",2)`,format(130,10) AS `format(130,10)`,char(0) AS `char(0)`,conv(130,16,10) AS `conv(130,16,10)`,hex(130) AS `hex(130)`,cast(_latin1'HE' as char charset binary) AS `binary 'HE'`,export_set(255,_latin2'y',_latin2'n',_latin2' ') AS `export_set(255,_latin2'y',_latin2'n',_latin2' ')`,field((_latin1'b' collate latin1_bin),_latin1'A',_latin1'B') AS `FIELD('b' COLLATE latin1_bin,'A','B')`,find_in_set(_latin1'B',_latin1'a,b,c,d') AS `FIND_IN_SET(_latin1'B',_latin1'a,b,c,d')`,collation(conv(130,16,10)) AS `collation(conv(130,16,10))`,coercibility(conv(130,16,10)) AS `coercibility(conv(130,16,10))`,length(_latin1'\n \r\0\\_\\%\\') AS `length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n \r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n \r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,concat(_latin1'monty',_latin1' was here ',_latin1'again') AS `concat('monty',' was here ','again')`,length(_latin1'hello') AS `length('hello')`,char(ascii(_latin1'h')) AS `char(ascii('h'))`,ord(_latin1'h') AS `ord('h')`,quote((1 / 0)) AS `quote(1/0)`,crc32(_latin1'123') AS `crc32("123")`,replace(_latin1'aaaa',_latin1'a',_latin1'b') AS `replace('aaaa','a','b')`,insert(_latin1'txs',2,1,_latin1'hi') AS `insert('txs',2,1,'hi')`,left(_latin2'a',1) AS `left(_latin2'a',1)`,right(_latin2'a',1) AS `right(_latin2'a',1)`,lcase(_latin2'a') AS `lcase(_latin2'a')`,ucase(_latin2'a') AS `ucase(_latin2'a')`,substr(_latin1'abcdefg',3,2) AS `SUBSTR('abcdefg',3,2)`,substring_index(_latin1'1abcd;2abcd;3abcd;4abcd',_latin1';',2) AS `substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2)`,trim(_latin2' a ') AS `trim(_latin2' a ')`,ltrim(_latin2' a ') AS `ltrim(_latin2' a ')`,rtrim(_latin2' a ') AS `rtrim(_latin2' a ')`,decode(encode(repeat(_latin1'a',100000),'monty'),'monty') AS `decode(encode(repeat("a",100000),"monty"),"monty")`
SELECT lpad(12345, 5, "#");
lpad(12345, 5, "#")
12345
SELECT conv(71, 10, 36), conv('1Z', 36, 10);
conv(71, 10, 36) conv('1Z', 36, 10)
1Z 71
+SELECT conv(71, 10, 37), conv('1Z', 37, 10), conv(0,1,10),conv(0,0,10), conv(0,-1,10);
+conv(71, 10, 37) conv('1Z', 37, 10) conv(0,1,10) conv(0,0,10) conv(0,-1,10)
+NULL NULL NULL NULL NULL
create table t1 (id int(1), str varchar(10)) DEFAULT CHARSET=utf8;
insert into t1 values (1,'aaaaaaaaaa'), (2,'bbbbbbbbbb');
create table t2 (id int(1), str varchar(10)) DEFAULT CHARSET=utf8;
@@ -826,16 +840,16 @@ drop table t1, t2;
create table t1 (c1 INT, c2 INT UNSIGNED);
insert into t1 values ('21474836461','21474836461');
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
insert into t1 values ('-21474836461','-21474836461');
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
show warnings;
Level Code Message
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
select * from t1;
c1 c2
2147483647 4294967295
@@ -856,6 +870,12 @@ NULL
select trim('xyz' from null) as "must_be_null";
must_be_null
NULL
+select trim(leading NULL from 'kate') as "must_be_null";
+must_be_null
+NULL
+select trim(trailing NULL from 'xyz') as "must_be_null";
+must_be_null
+NULL
CREATE TABLE t1 (
id int(11) NOT NULL auto_increment,
a bigint(20) unsigned default NULL,
@@ -1042,38 +1062,1105 @@ EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(s) > 'ab';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1003 select test.t1.s AS `s` from test.t1 where (trim(test.t1.s) > _latin1'ab')
+Note 1003 select `test`.`t1`.`s` AS `s` from `test`.`t1` where (trim(`test`.`t1`.`s`) > _latin1'ab')
EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM('y' FROM s) > 'ab';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1003 select test.t1.s AS `s` from test.t1 where (trim(both _latin1'y' from test.t1.s) > _latin1'ab')
+Note 1003 select `test`.`t1`.`s` AS `s` from `test`.`t1` where (trim(both _latin1'y' from `test`.`t1`.`s`) > _latin1'ab')
EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(LEADING 'y' FROM s) > 'ab';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1003 select test.t1.s AS `s` from test.t1 where (trim(leading _latin1'y' from test.t1.s) > _latin1'ab')
+Note 1003 select `test`.`t1`.`s` AS `s` from `test`.`t1` where (trim(leading _latin1'y' from `test`.`t1`.`s`) > _latin1'ab')
EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(TRAILING 'y' FROM s) > 'ab';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1003 select test.t1.s AS `s` from test.t1 where (trim(trailing _latin1'y' from test.t1.s) > _latin1'ab')
+Note 1003 select `test`.`t1`.`s` AS `s` from `test`.`t1` where (trim(trailing _latin1'y' from `test`.`t1`.`s`) > _latin1'ab')
EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(BOTH 'y' FROM s) > 'ab';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1003 select test.t1.s AS `s` from test.t1 where (trim(both _latin1'y' from test.t1.s) > _latin1'ab')
+Note 1003 select `test`.`t1`.`s` AS `s` from `test`.`t1` where (trim(both _latin1'y' from `test`.`t1`.`s`) > _latin1'ab')
DROP TABLE t1;
create table t1(f1 varchar(4));
explain extended select encode(f1,'zxcv') as 'enc' from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select encode(test.t1.f1,'zxcv') AS `enc` from test.t1
+Note 1003 select encode('','zxcv') AS `enc` from `test`.`t1`
explain extended select decode(f1,'zxcv') as 'enc' from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select decode(test.t1.f1,'zxcv') AS `enc` from test.t1
+Note 1003 select decode('','zxcv') AS `enc` from `test`.`t1`
drop table t1;
End of 4.1 tests
+create table t1 (d decimal default null);
+insert into t1 values (null);
+select format(d, 2) from t1;
+format(d, 2)
+NULL
+drop table t1;
+create table t1 (c varchar(40));
+insert into t1 values ('y,abc'),('y,abc');
+select c, substring_index(lcase(c), @q:=',', -1) as res from t1;
+c res
+y,abc abc
+y,abc abc
+drop table t1;
+select cast(rtrim(' 20.06 ') as decimal(19,2));
+cast(rtrim(' 20.06 ') as decimal(19,2))
+20.06
+select cast(ltrim(' 20.06 ') as decimal(19,2));
+cast(ltrim(' 20.06 ') as decimal(19,2))
+20.06
+select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
+cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2))
+20.06
+select conv("18383815659218730760",10,10) + 0;
+conv("18383815659218730760",10,10) + 0
+1.8383815659219e+19
+select "18383815659218730760" + 0;
+"18383815659218730760" + 0
+1.8383815659219e+19
+CREATE TABLE t1 (code varchar(10));
+INSERT INTO t1 VALUES ('a12'), ('A12'), ('a13');
+SELECT ASCII(code), code FROM t1 WHERE code='A12';
+ASCII(code) code
+97 a12
+65 A12
+SELECT ASCII(code), code FROM t1 WHERE code='A12' AND ASCII(code)=65;
+ASCII(code) code
+65 A12
+INSERT INTO t1 VALUES ('a12 '), ('A12 ');
+SELECT LENGTH(code), code FROM t1 WHERE code='A12';
+LENGTH(code) code
+3 a12
+3 A12
+4 a12
+5 A12
+SELECT LENGTH(code), code FROM t1 WHERE code='A12' AND LENGTH(code)=5;
+LENGTH(code) code
+5 A12
+ALTER TABLE t1 ADD INDEX (code);
+CREATE TABLE t2 (id varchar(10) PRIMARY KEY);
+INSERT INTO t2 VALUES ('a11'), ('a12'), ('a13'), ('a14');
+SELECT * FROM t1 INNER JOIN t2 ON t1.code=t2.id
+WHERE t2.id='a12' AND (LENGTH(code)=5 OR code < 'a00');
+code id
+A12 a12
+EXPLAIN EXTENDED
+SELECT * FROM t1 INNER JOIN t2 ON code=id
+WHERE id='a12' AND (LENGTH(code)=5 OR code < 'a00');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const PRIMARY PRIMARY 12 const 1 Using index
+1 SIMPLE t1 ref code code 13 const 3 Using where; Using index
+Warnings:
+Note 1003 select `test`.`t1`.`code` AS `code`,'a12' AS `id` from `test`.`t1` join `test`.`t2` where ((`test`.`t1`.`code` = _latin1'a12') and (length(`test`.`t1`.`code`) = 5))
+DROP TABLE t1,t2;
+select locate('he','hello',-2);
+locate('he','hello',-2)
+0
+select locate('lo','hello',-4294967295);
+locate('lo','hello',-4294967295)
+0
+select locate('lo','hello',4294967295);
+locate('lo','hello',4294967295)
+0
+select locate('lo','hello',-4294967296);
+locate('lo','hello',-4294967296)
+0
+select locate('lo','hello',4294967296);
+locate('lo','hello',4294967296)
+0
+select locate('lo','hello',-4294967297);
+locate('lo','hello',-4294967297)
+0
+select locate('lo','hello',4294967297);
+locate('lo','hello',4294967297)
+0
+select locate('lo','hello',-18446744073709551615);
+locate('lo','hello',-18446744073709551615)
+0
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select locate('lo','hello',18446744073709551615);
+locate('lo','hello',18446744073709551615)
+0
+select locate('lo','hello',-18446744073709551616);
+locate('lo','hello',-18446744073709551616)
+0
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select locate('lo','hello',18446744073709551616);
+locate('lo','hello',18446744073709551616)
+0
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select locate('lo','hello',-18446744073709551617);
+locate('lo','hello',-18446744073709551617)
+0
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select locate('lo','hello',18446744073709551617);
+locate('lo','hello',18446744073709551617)
+0
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select left('hello', 10);
+left('hello', 10)
+hello
+select left('hello', 0);
+left('hello', 0)
+
+select left('hello', -1);
+left('hello', -1)
+
+select left('hello', -4294967295);
+left('hello', -4294967295)
+
+select left('hello', 4294967295);
+left('hello', 4294967295)
+hello
+select left('hello', -4294967296);
+left('hello', -4294967296)
+
+select left('hello', 4294967296);
+left('hello', 4294967296)
+hello
+select left('hello', -4294967297);
+left('hello', -4294967297)
+
+select left('hello', 4294967297);
+left('hello', 4294967297)
+hello
+select left('hello', -18446744073709551615);
+left('hello', -18446744073709551615)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select left('hello', 18446744073709551615);
+left('hello', 18446744073709551615)
+hello
+select left('hello', -18446744073709551616);
+left('hello', -18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select left('hello', 18446744073709551616);
+left('hello', 18446744073709551616)
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select left('hello', -18446744073709551617);
+left('hello', -18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select left('hello', 18446744073709551617);
+left('hello', 18446744073709551617)
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select right('hello', 10);
+right('hello', 10)
+hello
+select right('hello', 0);
+right('hello', 0)
+
+select right('hello', -1);
+right('hello', -1)
+
+select right('hello', -4294967295);
+right('hello', -4294967295)
+
+select right('hello', 4294967295);
+right('hello', 4294967295)
+hello
+select right('hello', -4294967296);
+right('hello', -4294967296)
+
+select right('hello', 4294967296);
+right('hello', 4294967296)
+hello
+select right('hello', -4294967297);
+right('hello', -4294967297)
+
+select right('hello', 4294967297);
+right('hello', 4294967297)
+hello
+select right('hello', -18446744073709551615);
+right('hello', -18446744073709551615)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select right('hello', 18446744073709551615);
+right('hello', 18446744073709551615)
+hello
+select right('hello', -18446744073709551616);
+right('hello', -18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select right('hello', 18446744073709551616);
+right('hello', 18446744073709551616)
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select right('hello', -18446744073709551617);
+right('hello', -18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select right('hello', 18446744073709551617);
+right('hello', 18446744073709551617)
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 2, -1);
+substring('hello', 2, -1)
+
+select substring('hello', -1, 1);
+substring('hello', -1, 1)
+o
+select substring('hello', -2, 1);
+substring('hello', -2, 1)
+l
+select substring('hello', -4294967295, 1);
+substring('hello', -4294967295, 1)
+
+select substring('hello', 4294967295, 1);
+substring('hello', 4294967295, 1)
+
+select substring('hello', -4294967296, 1);
+substring('hello', -4294967296, 1)
+
+select substring('hello', 4294967296, 1);
+substring('hello', 4294967296, 1)
+
+select substring('hello', -4294967297, 1);
+substring('hello', -4294967297, 1)
+
+select substring('hello', 4294967297, 1);
+substring('hello', 4294967297, 1)
+
+select substring('hello', -18446744073709551615, 1);
+substring('hello', -18446744073709551615, 1)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 18446744073709551615, 1);
+substring('hello', 18446744073709551615, 1)
+
+select substring('hello', -18446744073709551616, 1);
+substring('hello', -18446744073709551616, 1)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 18446744073709551616, 1);
+substring('hello', 18446744073709551616, 1)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', -18446744073709551617, 1);
+substring('hello', -18446744073709551617, 1)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 18446744073709551617, 1);
+substring('hello', 18446744073709551617, 1)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 1, -1);
+substring('hello', 1, -1)
+
+select substring('hello', 1, -4294967295);
+substring('hello', 1, -4294967295)
+
+select substring('hello', 1, 4294967295);
+substring('hello', 1, 4294967295)
+hello
+select substring('hello', 1, -4294967296);
+substring('hello', 1, -4294967296)
+
+select substring('hello', 1, 4294967296);
+substring('hello', 1, 4294967296)
+hello
+select substring('hello', 1, -4294967297);
+substring('hello', 1, -4294967297)
+
+select substring('hello', 1, 4294967297);
+substring('hello', 1, 4294967297)
+hello
+select substring('hello', 1, -18446744073709551615);
+substring('hello', 1, -18446744073709551615)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 1, 18446744073709551615);
+substring('hello', 1, 18446744073709551615)
+hello
+select substring('hello', 1, -18446744073709551616);
+substring('hello', 1, -18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 1, 18446744073709551616);
+substring('hello', 1, 18446744073709551616)
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 1, -18446744073709551617);
+substring('hello', 1, -18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 1, 18446744073709551617);
+substring('hello', 1, 18446744073709551617)
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', -1, -1);
+substring('hello', -1, -1)
+
+select substring('hello', -4294967295, -4294967295);
+substring('hello', -4294967295, -4294967295)
+
+select substring('hello', 4294967295, 4294967295);
+substring('hello', 4294967295, 4294967295)
+
+select substring('hello', -4294967296, -4294967296);
+substring('hello', -4294967296, -4294967296)
+
+select substring('hello', 4294967296, 4294967296);
+substring('hello', 4294967296, 4294967296)
+
+select substring('hello', -4294967297, -4294967297);
+substring('hello', -4294967297, -4294967297)
+
+select substring('hello', 4294967297, 4294967297);
+substring('hello', 4294967297, 4294967297)
+
+select substring('hello', -18446744073709551615, -18446744073709551615);
+substring('hello', -18446744073709551615, -18446744073709551615)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 18446744073709551615, 18446744073709551615);
+substring('hello', 18446744073709551615, 18446744073709551615)
+
+select substring('hello', -18446744073709551616, -18446744073709551616);
+substring('hello', -18446744073709551616, -18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 18446744073709551616, 18446744073709551616);
+substring('hello', 18446744073709551616, 18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', -18446744073709551617, -18446744073709551617);
+substring('hello', -18446744073709551617, -18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select substring('hello', 18446744073709551617, 18446744073709551617);
+substring('hello', 18446744073709551617, 18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', -1, 1, 'hi');
+insert('hello', -1, 1, 'hi')
+hello
+select insert('hello', -4294967295, 1, 'hi');
+insert('hello', -4294967295, 1, 'hi')
+hello
+select insert('hello', 4294967295, 1, 'hi');
+insert('hello', 4294967295, 1, 'hi')
+hello
+select insert('hello', -4294967296, 1, 'hi');
+insert('hello', -4294967296, 1, 'hi')
+hello
+select insert('hello', 4294967296, 1, 'hi');
+insert('hello', 4294967296, 1, 'hi')
+hello
+select insert('hello', -4294967297, 1, 'hi');
+insert('hello', -4294967297, 1, 'hi')
+hello
+select insert('hello', 4294967297, 1, 'hi');
+insert('hello', 4294967297, 1, 'hi')
+hello
+select insert('hello', -18446744073709551615, 1, 'hi');
+insert('hello', -18446744073709551615, 1, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 18446744073709551615, 1, 'hi');
+insert('hello', 18446744073709551615, 1, 'hi')
+hello
+select insert('hello', -18446744073709551616, 1, 'hi');
+insert('hello', -18446744073709551616, 1, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 18446744073709551616, 1, 'hi');
+insert('hello', 18446744073709551616, 1, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', -18446744073709551617, 1, 'hi');
+insert('hello', -18446744073709551617, 1, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 18446744073709551617, 1, 'hi');
+insert('hello', 18446744073709551617, 1, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 1, -1, 'hi');
+insert('hello', 1, -1, 'hi')
+hi
+select insert('hello', 1, -4294967295, 'hi');
+insert('hello', 1, -4294967295, 'hi')
+hi
+select insert('hello', 1, 4294967295, 'hi');
+insert('hello', 1, 4294967295, 'hi')
+hi
+select insert('hello', 1, -4294967296, 'hi');
+insert('hello', 1, -4294967296, 'hi')
+hi
+select insert('hello', 1, 4294967296, 'hi');
+insert('hello', 1, 4294967296, 'hi')
+hi
+select insert('hello', 1, -4294967297, 'hi');
+insert('hello', 1, -4294967297, 'hi')
+hi
+select insert('hello', 1, 4294967297, 'hi');
+insert('hello', 1, 4294967297, 'hi')
+hi
+select insert('hello', 1, -18446744073709551615, 'hi');
+insert('hello', 1, -18446744073709551615, 'hi')
+hi
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 1, 18446744073709551615, 'hi');
+insert('hello', 1, 18446744073709551615, 'hi')
+hi
+select insert('hello', 1, -18446744073709551616, 'hi');
+insert('hello', 1, -18446744073709551616, 'hi')
+hi
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 1, 18446744073709551616, 'hi');
+insert('hello', 1, 18446744073709551616, 'hi')
+hi
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 1, -18446744073709551617, 'hi');
+insert('hello', 1, -18446744073709551617, 'hi')
+hi
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 1, 18446744073709551617, 'hi');
+insert('hello', 1, 18446744073709551617, 'hi')
+hi
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', -1, -1, 'hi');
+insert('hello', -1, -1, 'hi')
+hello
+select insert('hello', -4294967295, -4294967295, 'hi');
+insert('hello', -4294967295, -4294967295, 'hi')
+hello
+select insert('hello', 4294967295, 4294967295, 'hi');
+insert('hello', 4294967295, 4294967295, 'hi')
+hello
+select insert('hello', -4294967296, -4294967296, 'hi');
+insert('hello', -4294967296, -4294967296, 'hi')
+hello
+select insert('hello', 4294967296, 4294967296, 'hi');
+insert('hello', 4294967296, 4294967296, 'hi')
+hello
+select insert('hello', -4294967297, -4294967297, 'hi');
+insert('hello', -4294967297, -4294967297, 'hi')
+hello
+select insert('hello', 4294967297, 4294967297, 'hi');
+insert('hello', 4294967297, 4294967297, 'hi')
+hello
+select insert('hello', -18446744073709551615, -18446744073709551615, 'hi');
+insert('hello', -18446744073709551615, -18446744073709551615, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 18446744073709551615, 18446744073709551615, 'hi');
+insert('hello', 18446744073709551615, 18446744073709551615, 'hi')
+hello
+select insert('hello', -18446744073709551616, -18446744073709551616, 'hi');
+insert('hello', -18446744073709551616, -18446744073709551616, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 18446744073709551616, 18446744073709551616, 'hi');
+insert('hello', 18446744073709551616, 18446744073709551616, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', -18446744073709551617, -18446744073709551617, 'hi');
+insert('hello', -18446744073709551617, -18446744073709551617, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select insert('hello', 18446744073709551617, 18446744073709551617, 'hi');
+insert('hello', 18446744073709551617, 18446744073709551617, 'hi')
+hello
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select repeat('hello', -1);
+repeat('hello', -1)
+
+select repeat('hello', -4294967295);
+repeat('hello', -4294967295)
+
+select repeat('hello', 4294967295);
+repeat('hello', 4294967295)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select repeat('hello', -4294967296);
+repeat('hello', -4294967296)
+
+select repeat('hello', 4294967296);
+repeat('hello', 4294967296)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select repeat('hello', -4294967297);
+repeat('hello', -4294967297)
+
+select repeat('hello', 4294967297);
+repeat('hello', 4294967297)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select repeat('hello', -18446744073709551615);
+repeat('hello', -18446744073709551615)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select repeat('hello', 18446744073709551615);
+repeat('hello', 18446744073709551615)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select repeat('hello', -18446744073709551616);
+repeat('hello', -18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select repeat('hello', 18446744073709551616);
+repeat('hello', 18446744073709551616)
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select repeat('hello', -18446744073709551617);
+repeat('hello', -18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select repeat('hello', 18446744073709551617);
+repeat('hello', 18446744073709551617)
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select space(-1);
+space(-1)
+
+select space(-4294967295);
+space(-4294967295)
+
+select space(4294967295);
+space(4294967295)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select space(-4294967296);
+space(-4294967296)
+
+select space(4294967296);
+space(4294967296)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select space(-4294967297);
+space(-4294967297)
+
+select space(4294967297);
+space(4294967297)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select space(-18446744073709551615);
+space(-18446744073709551615)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select space(18446744073709551615);
+space(18446744073709551615)
+NULL
+Warnings:
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select space(-18446744073709551616);
+space(-18446744073709551616)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select space(18446744073709551616);
+space(18446744073709551616)
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select space(-18446744073709551617);
+space(-18446744073709551617)
+
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select space(18446744073709551617);
+space(18446744073709551617)
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
+select rpad('hello', -1, '1');
+rpad('hello', -1, '1')
+NULL
+select rpad('hello', -4294967295, '1');
+rpad('hello', -4294967295, '1')
+NULL
+select rpad('hello', 4294967295, '1');
+rpad('hello', 4294967295, '1')
+NULL
+Warnings:
+Warning 1301 Result of rpad() was larger than max_allowed_packet (1048576) - truncated
+select rpad('hello', -4294967296, '1');
+rpad('hello', -4294967296, '1')
+NULL
+select rpad('hello', 4294967296, '1');
+rpad('hello', 4294967296, '1')
+NULL
+Warnings:
+Warning 1301 Result of rpad() was larger than max_allowed_packet (1048576) - truncated
+select rpad('hello', -4294967297, '1');
+rpad('hello', -4294967297, '1')
+NULL
+select rpad('hello', 4294967297, '1');
+rpad('hello', 4294967297, '1')
+NULL
+Warnings:
+Warning 1301 Result of rpad() was larger than max_allowed_packet (1048576) - truncated
+select rpad('hello', -18446744073709551615, '1');
+rpad('hello', -18446744073709551615, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select rpad('hello', 18446744073709551615, '1');
+rpad('hello', 18446744073709551615, '1')
+NULL
+Warnings:
+Warning 1301 Result of rpad() was larger than max_allowed_packet (1048576) - truncated
+select rpad('hello', -18446744073709551616, '1');
+rpad('hello', -18446744073709551616, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select rpad('hello', 18446744073709551616, '1');
+rpad('hello', 18446744073709551616, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of rpad() was larger than max_allowed_packet (1048576) - truncated
+select rpad('hello', -18446744073709551617, '1');
+rpad('hello', -18446744073709551617, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select rpad('hello', 18446744073709551617, '1');
+rpad('hello', 18446744073709551617, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of rpad() was larger than max_allowed_packet (1048576) - truncated
+select lpad('hello', -1, '1');
+lpad('hello', -1, '1')
+NULL
+select lpad('hello', -4294967295, '1');
+lpad('hello', -4294967295, '1')
+NULL
+select lpad('hello', 4294967295, '1');
+lpad('hello', 4294967295, '1')
+NULL
+Warnings:
+Warning 1301 Result of lpad() was larger than max_allowed_packet (1048576) - truncated
+select lpad('hello', -4294967296, '1');
+lpad('hello', -4294967296, '1')
+NULL
+select lpad('hello', 4294967296, '1');
+lpad('hello', 4294967296, '1')
+NULL
+Warnings:
+Warning 1301 Result of lpad() was larger than max_allowed_packet (1048576) - truncated
+select lpad('hello', -4294967297, '1');
+lpad('hello', -4294967297, '1')
+NULL
+select lpad('hello', 4294967297, '1');
+lpad('hello', 4294967297, '1')
+NULL
+Warnings:
+Warning 1301 Result of lpad() was larger than max_allowed_packet (1048576) - truncated
+select lpad('hello', -18446744073709551615, '1');
+lpad('hello', -18446744073709551615, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select lpad('hello', 18446744073709551615, '1');
+lpad('hello', 18446744073709551615, '1')
+NULL
+Warnings:
+Warning 1301 Result of lpad() was larger than max_allowed_packet (1048576) - truncated
+select lpad('hello', -18446744073709551616, '1');
+lpad('hello', -18446744073709551616, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select lpad('hello', 18446744073709551616, '1');
+lpad('hello', 18446744073709551616, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of lpad() was larger than max_allowed_packet (1048576) - truncated
+select lpad('hello', -18446744073709551617, '1');
+lpad('hello', -18446744073709551617, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+select lpad('hello', 18446744073709551617, '1');
+lpad('hello', 18446744073709551617, '1')
+NULL
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1301 Result of lpad() was larger than max_allowed_packet (1048576) - truncated
+SET @orig_sql_mode = @@SQL_MODE;
+SET SQL_MODE=traditional;
+SELECT CHAR(0xff,0x8f USING utf8);
+CHAR(0xff,0x8f USING utf8)
+NULL
+Warnings:
+Error 1300 Invalid utf8 character string: 'FF8F'
+SELECT CHAR(0xff,0x8f USING utf8) IS NULL;
+CHAR(0xff,0x8f USING utf8) IS NULL
+1
+Warnings:
+Error 1300 Invalid utf8 character string: 'FF8F'
+SET SQL_MODE=@orig_sql_mode;
+select substring('abc', cast(2 as unsigned int));
+substring('abc', cast(2 as unsigned int))
+bc
+select repeat('a', cast(2 as unsigned int));
+repeat('a', cast(2 as unsigned int))
+aa
+select rpad('abc', cast(5 as unsigned integer), 'x');
+rpad('abc', cast(5 as unsigned integer), 'x')
+abcxx
+select lpad('abc', cast(5 as unsigned integer), 'x');
+lpad('abc', cast(5 as unsigned integer), 'x')
+xxabc
+create table t1(f1 longtext);
+insert into t1 values ("123"),("456");
+select substring(f1,1,1) from t1 group by 1;
+substring(f1,1,1)
+1
+4
+create table t2(f1 varchar(3));
+insert into t1 values ("123"),("456");
+select substring(f1,4,1), substring(f1,-4,1) from t2;
+substring(f1,4,1) substring(f1,-4,1)
+drop table t1,t2;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE `t1` (
+`id` varchar(20) NOT NULL,
+`tire` tinyint(3) unsigned NOT NULL,
+PRIMARY KEY (`id`)
+);
+INSERT INTO `t1` (`id`, `tire`) VALUES ('A', 0), ('B', 1),('C', 2);
+SELECT REPEAT( '#', tire ) AS A,
+REPEAT( '#', tire % 999 ) AS B, tire FROM `t1`;
+A B tire
+ 0
+# # 1
+## ## 2
+SELECT REPEAT('0', CAST(0 AS UNSIGNED));
+REPEAT('0', CAST(0 AS UNSIGNED))
+
+SELECT REPEAT('0', -2);
+REPEAT('0', -2)
+
+SELECT REPEAT('0', 2);
+REPEAT('0', 2)
+00
+DROP TABLE t1;
+SELECT UNHEX('G');
+UNHEX('G')
+NULL
+SELECT UNHEX('G') IS NULL;
+UNHEX('G') IS NULL
+1
+SELECT INSERT('abc', 3, 3, '1234');
+INSERT('abc', 3, 3, '1234')
+ab1234
+SELECT INSERT('abc', 4, 3, '1234');
+INSERT('abc', 4, 3, '1234')
+abc1234
+SELECT INSERT('abc', 5, 3, '1234');
+INSERT('abc', 5, 3, '1234')
+abc
+SELECT INSERT('abc', 6, 3, '1234');
+INSERT('abc', 6, 3, '1234')
+abc
+CREATE TABLE t1 (a INT);
+CREATE VIEW v1 AS SELECT CRC32(a) AS C FROM t1;
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+SELECT CRC32(a), COUNT(*) FROM t1 GROUP BY 1;
+CRC32(a) COUNT(*)
+450215437 1
+498629140 1
+1790921346 1
+1842515611 1
+2212294583 1
+2226203566 1
+2366072709 1
+2707236321 1
+4088798008 1
+4194326291 1
+SELECT CRC32(a), COUNT(*) FROM t1 GROUP BY 1 ORDER BY 1;
+CRC32(a) COUNT(*)
+450215437 1
+498629140 1
+1790921346 1
+1842515611 1
+2212294583 1
+2226203566 1
+2366072709 1
+2707236321 1
+4088798008 1
+4194326291 1
+SELECT * FROM (SELECT CRC32(a) FROM t1) t2;
+CRC32(a)
+2212294583
+450215437
+1842515611
+4088798008
+2226203566
+498629140
+1790921346
+4194326291
+2366072709
+2707236321
+CREATE TABLE t2 SELECT CRC32(a) FROM t1;
+desc t2;
+Field Type Null Key Default Extra
+CRC32(a) int(10) unsigned YES NULL
+SELECT * FROM v1;
+C
+2212294583
+450215437
+1842515611
+4088798008
+2226203566
+498629140
+1790921346
+4194326291
+2366072709
+2707236321
+SELECT * FROM (SELECT * FROM v1) x;
+C
+2212294583
+450215437
+1842515611
+4088798008
+2226203566
+498629140
+1790921346
+4194326291
+2366072709
+2707236321
+DROP TABLE t1, t2;
+DROP VIEW v1;
+SELECT LOCATE('foo', NULL) FROM DUAL;
+LOCATE('foo', NULL)
+NULL
+SELECT LOCATE(NULL, 'o') FROM DUAL;
+LOCATE(NULL, 'o')
+NULL
+SELECT LOCATE(NULL, NULL) FROM DUAL;
+LOCATE(NULL, NULL)
+NULL
+SELECT LOCATE('foo', NULL) IS NULL FROM DUAL;
+LOCATE('foo', NULL) IS NULL
+1
+SELECT LOCATE(NULL, 'o') IS NULL FROM DUAL;
+LOCATE(NULL, 'o') IS NULL
+1
+SELECT LOCATE(NULL, NULL) IS NULL FROM DUAL;
+LOCATE(NULL, NULL) IS NULL
+1
+SELECT ISNULL(LOCATE('foo', NULL)) FROM DUAL;
+ISNULL(LOCATE('foo', NULL))
+1
+SELECT ISNULL(LOCATE(NULL, 'o')) FROM DUAL;
+ISNULL(LOCATE(NULL, 'o'))
+1
+SELECT ISNULL(LOCATE(NULL, NULL)) FROM DUAL;
+ISNULL(LOCATE(NULL, NULL))
+1
+SELECT LOCATE('foo', NULL) <=> NULL FROM DUAL;
+LOCATE('foo', NULL) <=> NULL
+1
+SELECT LOCATE(NULL, 'o') <=> NULL FROM DUAL;
+LOCATE(NULL, 'o') <=> NULL
+1
+SELECT LOCATE(NULL, NULL) <=> NULL FROM DUAL;
+LOCATE(NULL, NULL) <=> NULL
+1
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a varchar(10), p varchar(10));
+INSERT INTO t1 VALUES (1, 'foo', 'o');
+INSERT INTO t1 VALUES (2, 'foo', NULL);
+INSERT INTO t1 VALUES (3, NULL, 'o');
+INSERT INTO t1 VALUES (4, NULL, NULL);
+SELECT id, LOCATE(a,p) FROM t1;
+id LOCATE(a,p)
+1 0
+2 NULL
+3 NULL
+4 NULL
+SELECT id, LOCATE(a,p) IS NULL FROM t1;
+id LOCATE(a,p) IS NULL
+1 0
+2 1
+3 1
+4 1
+SELECT id, ISNULL(LOCATE(a,p)) FROM t1;
+id ISNULL(LOCATE(a,p))
+1 0
+2 1
+3 1
+4 1
+SELECT id, LOCATE(a,p) <=> NULL FROM t1;
+id LOCATE(a,p) <=> NULL
+1 0
+2 1
+3 1
+4 1
+SELECT id FROM t1 WHERE LOCATE(a,p) IS NULL;
+id
+2
+3
+4
+SELECT id FROM t1 WHERE LOCATE(a,p) <=> NULL;
+id
+2
+3
+4
+DROP TABLE t1;
+SELECT SUBSTR('foo',1,0) FROM DUAL;
+SUBSTR('foo',1,0)
+
+SELECT SUBSTR('foo',1,CAST(0 AS SIGNED)) FROM DUAL;
+SUBSTR('foo',1,CAST(0 AS SIGNED))
+
+SELECT SUBSTR('foo',1,CAST(0 AS UNSIGNED)) FROM DUAL;
+SUBSTR('foo',1,CAST(0 AS UNSIGNED))
+
+CREATE TABLE t1 (a varchar(10), len int unsigned);
+INSERT INTO t1 VALUES ('bar', 2), ('foo', 0);
+SELECT SUBSTR(a,1,len) FROM t1;
+SUBSTR(a,1,len)
+ba
+
+DROP TABLE t1;
+CREATE TABLE t1 AS SELECT CHAR(0x414243) as c1;
+SELECT HEX(c1) from t1;
+HEX(c1)
+414243
+DROP TABLE t1;
+CREATE VIEW v1 AS SELECT CHAR(0x414243) as c1;
+SELECT HEX(c1) from v1;
+HEX(c1)
+414243
+DROP VIEW v1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_system.result b/mysql-test/r/func_system.result
index d49da90fa28..00bef09715d 100644
--- a/mysql-test/r/func_system.result
+++ b/mysql-test/r/func_system.result
@@ -41,13 +41,13 @@ explain extended select database(), user();
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache database() AS `database()`,user() AS `user()`
+Note 1003 select database() AS `database()`,user() AS `user()`
create table t1 (version char(40)) select database(), user(), version() as 'version';
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `database()` char(34) character set utf8 default NULL,
- `user()` char(77) character set utf8 NOT NULL default '',
+ `database()` varchar(34) character set utf8 default NULL,
+ `user()` varchar(77) character set utf8 NOT NULL default '',
`version` char(40) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -61,8 +61,8 @@ create table t1 select charset(_utf8'a'), collation(_utf8'a');
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `charset(_utf8'a')` char(64) character set utf8 NOT NULL default '',
- `collation(_utf8'a')` char(64) character set utf8 NOT NULL default ''
+ `charset(_utf8'a')` varchar(64) character set utf8 NOT NULL default '',
+ `collation(_utf8'a')` varchar(64) character set utf8 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
select TRUE,FALSE,NULL;
diff --git a/mysql-test/r/func_test.result b/mysql-test/r/func_test.result
index 39ec94bc3aa..65293398155 100644
--- a/mysql-test/r/func_test.result
+++ b/mysql-test/r/func_test.result
@@ -77,9 +77,9 @@ select * from t1 where 1 xor 1;
a
explain extended select * from t1 where 1 xor 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
Warnings:
-Note 1003 select test.t1.a AS `a` from test.t1 where (1 xor 1)
+Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 0
select - a from t1;
- a
-1
@@ -87,7 +87,7 @@ explain extended select - a from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
Warnings:
-Note 1003 select -(test.t1.a) AS `- a` from test.t1
+Note 1003 select -('1') AS `- a` from `test`.`t1`
drop table t1;
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
@@ -108,7 +108,7 @@ explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select (_koi8r'a' = (_koi8r'A' collate _latin1'koi8r_general_ci')) AS `_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci`
+Note 1003 select (_koi8r'a' = (_koi8r'A' collate koi8r_general_ci)) AS `_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci`
select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin;
_koi8r'a' = _koi8r'A' COLLATE koi8r_bin
0
@@ -166,7 +166,6 @@ CREATE TABLE t2 ( access_id smallint(6) NOT NULL default '0', name varchar(20
INSERT INTO t2 VALUES (1,'Everyone',2),(2,'Help',3),(3,'Customer Support',1);
SELECT f_acc.rank, a1.rank, a2.rank FROM t1 LEFT JOIN t1 f1 ON (f1.access_id=1 AND f1.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a1 ON (a1.access_id = f1.access_id) LEFT JOIN t1 f2 ON (f2.access_id=3 AND f2.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a2 ON (a2.access_id = f2.access_id), t2 f_acc WHERE LEAST(a1.rank,a2.rank) = f_acc.rank;
rank rank rank
-2 2 NULL
DROP TABLE t1,t2;
CREATE TABLE t1 (d varchar(6), k int);
INSERT INTO t1 VALUES (NULL, 2);
@@ -258,3 +257,25 @@ NULL
select mod(NULL, 2.0) as 'NULL';
NULL
NULL
+create table t1 (a int, b int);
+insert into t1 values (1,2), (2,3), (3,4), (4,5);
+select * from t1 where a not between 1 and 2;
+a b
+3 4
+4 5
+select * from t1 where a not between 1 and 2 and b not between 3 and 4;
+a b
+4 5
+drop table t1;
+SELECT GREATEST(1,NULL) FROM DUAL;
+GREATEST(1,NULL)
+NULL
+SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL;
+LEAST('xxx','aaa',NULL,'yyy')
+NULL
+SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL;
+LEAST(1.1,1.2,NULL,1.0)
+NULL
+SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL;
+GREATEST(1.5E+2,1.3E+2,NULL)
+NULL
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index fc218067d29..74859be4d04 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -1,4 +1,5 @@
drop table if exists t1,t2,t3;
+set time_zone="+03:00";
select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days(date_add(curdate(), interval 1 day))-to_days(curdate()),weekday("1997-11-29");
from_days(to_days("960101")) to_days(960201)-to_days("19960101") to_days(date_add(curdate(), interval 1 day))-to_days(curdate()) weekday("1997-11-29")
1996-01-01 31 1 5
@@ -247,9 +248,13 @@ date_add("1997-12-31 23:59:59",INTERVAL -100000 DAY)
select date_add("1997-12-31 23:59:59",INTERVAL 100000 MONTH);
date_add("1997-12-31 23:59:59",INTERVAL 100000 MONTH)
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
select date_add("1997-12-31 23:59:59",INTERVAL -100000 YEAR);
date_add("1997-12-31 23:59:59",INTERVAL -100000 YEAR)
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
select date_add("1997-12-31 23:59:59",INTERVAL "10000:1" MINUTE_SECOND);
date_add("1997-12-31 23:59:59",INTERVAL "10000:1" MINUTE_SECOND)
1998-01-07 22:40:00
@@ -301,9 +306,13 @@ NULL
select date_add("9999-12-31 23:59:59",INTERVAL 1 SECOND);
date_add("9999-12-31 23:59:59",INTERVAL 1 SECOND)
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
select date_sub("0000-00-00 00:00:00",INTERVAL 1 SECOND);
date_sub("0000-00-00 00:00:00",INTERVAL 1 SECOND)
NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 00:00:00'
select date_add('1998-01-30',Interval 1 month);
date_add('1998-01-30',Interval 1 month)
1998-02-28
@@ -354,6 +363,42 @@ extract(SECOND FROM "1999-01-02 10:11:12")
select extract(MONTH FROM "2001-02-00");
extract(MONTH FROM "2001-02-00")
2
+SELECT EXTRACT(QUARTER FROM '2004-01-15') AS quarter;
+quarter
+1
+SELECT EXTRACT(QUARTER FROM '2004-02-15') AS quarter;
+quarter
+1
+SELECT EXTRACT(QUARTER FROM '2004-03-15') AS quarter;
+quarter
+1
+SELECT EXTRACT(QUARTER FROM '2004-04-15') AS quarter;
+quarter
+2
+SELECT EXTRACT(QUARTER FROM '2004-05-15') AS quarter;
+quarter
+2
+SELECT EXTRACT(QUARTER FROM '2004-06-15') AS quarter;
+quarter
+2
+SELECT EXTRACT(QUARTER FROM '2004-07-15') AS quarter;
+quarter
+3
+SELECT EXTRACT(QUARTER FROM '2004-08-15') AS quarter;
+quarter
+3
+SELECT EXTRACT(QUARTER FROM '2004-09-15') AS quarter;
+quarter
+3
+SELECT EXTRACT(QUARTER FROM '2004-10-15') AS quarter;
+quarter
+4
+SELECT EXTRACT(QUARTER FROM '2004-11-15') AS quarter;
+quarter
+4
+SELECT EXTRACT(QUARTER FROM '2004-12-15') AS quarter;
+quarter
+4
SELECT DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
9999-12-31 00:00:00
@@ -381,15 +426,23 @@ SELECT "1900-01-01 00:00:00" + INTERVAL 1<<20 HOUR;
SELECT "1900-01-01 00:00:00" + INTERVAL 1<<38 SECOND;
"1900-01-01 00:00:00" + INTERVAL 1<<38 SECOND
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
SELECT "1900-01-01 00:00:00" + INTERVAL 1<<33 MINUTE;
"1900-01-01 00:00:00" + INTERVAL 1<<33 MINUTE
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
SELECT "1900-01-01 00:00:00" + INTERVAL 1<<30 HOUR;
"1900-01-01 00:00:00" + INTERVAL 1<<30 HOUR
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
SELECT "1900-01-01 00:00:00" + INTERVAL "1000000000:214748364700" MINUTE_SECOND;
"1900-01-01 00:00:00" + INTERVAL "1000000000:214748364700" MINUTE_SECOND
NULL
+Warnings:
+Warning 1441 Datetime function: datetime field overflow
create table t1 (ctime varchar(20));
insert into t1 values ('2001-01-12 12:23:40');
select ctime, hour(ctime) from t1;
@@ -432,6 +485,9 @@ insert into t1 values ("0000-00-00", "0000-00-00", "0000-00-00", "0000-00-00");
select dayofyear("0000-00-00"),dayofyear(d),dayofyear(dt),dayofyear(t),dayofyear(c) from t1;
dayofyear("0000-00-00") dayofyear(d) dayofyear(dt) dayofyear(t) dayofyear(c)
NULL NULL NULL NULL NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
select dayofmonth("0000-00-00"),dayofmonth(d),dayofmonth(dt),dayofmonth(t),dayofmonth(c) from t1;
dayofmonth("0000-00-00") dayofmonth(d) dayofmonth(dt) dayofmonth(t) dayofmonth(c)
0 0 0 0 0
@@ -444,22 +500,31 @@ quarter("0000-00-00") quarter(d) quarter(dt) quarter(t) quarter(c)
select week("0000-00-00"),week(d),week(dt),week(t),week(c) from t1;
week("0000-00-00") week(d) week(dt) week(t) week(c)
NULL NULL NULL NULL NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
select year("0000-00-00"),year(d),year(dt),year(t),year(c) from t1;
year("0000-00-00") year(d) year(dt) year(t) year(c)
0 0 0 0 0
select yearweek("0000-00-00"),yearweek(d),yearweek(dt),yearweek(t),yearweek(c) from t1;
yearweek("0000-00-00") yearweek(d) yearweek(dt) yearweek(t) yearweek(c)
NULL NULL NULL NULL NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
select to_days("0000-00-00"),to_days(d),to_days(dt),to_days(t),to_days(c) from t1;
to_days("0000-00-00") to_days(d) to_days(dt) to_days(t) to_days(c)
NULL NULL NULL NULL NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
select extract(MONTH FROM "0000-00-00"),extract(MONTH FROM d),extract(MONTH FROM dt),extract(MONTH FROM t),extract(MONTH FROM c) from t1;
extract(MONTH FROM "0000-00-00") extract(MONTH FROM d) extract(MONTH FROM dt) extract(MONTH FROM t) extract(MONTH FROM c)
0 0 0 0 0
drop table t1;
CREATE TABLE t1 ( start datetime default NULL);
INSERT INTO t1 VALUES ('2002-10-21 00:00:00'),('2002-10-28 00:00:00'),('2002-11-04 00:00:00');
-CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL);
+CREATE TABLE t2 ( ctime1 timestamp NOT NULL, ctime2 timestamp NOT NULL);
INSERT INTO t2 VALUES (20021029165106,20021105164731);
CREATE TABLE t3 (ctime1 char(19) NOT NULL, ctime2 char(19) NOT NULL);
INSERT INTO t3 VALUES ("2002-10-29 16:51:06","2002-11-05 16:47:31");
@@ -583,11 +648,140 @@ date_add(date,INTERVAL "1 1:1" DAY_MINUTE)
select date_add(date,INTERVAL "1 1:1:1" DAY_SECOND) from t1;
date_add(date,INTERVAL "1 1:1:1" DAY_SECOND)
2003-01-03 01:01:01
+select date_add(date,INTERVAL "1" WEEK) from t1;
+date_add(date,INTERVAL "1" WEEK)
+2003-01-09
+select date_add(date,INTERVAL "1" QUARTER) from t1;
+date_add(date,INTERVAL "1" QUARTER)
+2003-04-02
+select timestampadd(MINUTE, 1, date) from t1;
+timestampadd(MINUTE, 1, date)
+2003-01-02 00:01:00
+select timestampadd(WEEK, 1, date) from t1;
+timestampadd(WEEK, 1, date)
+2003-01-09
+select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
+timestampadd(SQL_TSI_SECOND, 1, date)
+2003-01-02 00:00:01
+select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1;
+timestampadd(SQL_TSI_FRAC_SECOND, 1, date)
+2003-01-02 00:00:00.000001
+select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a;
+a
+3
+select timestampdiff(YEAR, '2002-05-01', '2001-01-01') as a;
+a
+-1
+select timestampdiff(QUARTER, '2002-05-01', '2001-01-01') as a;
+a
+-5
+select timestampdiff(MONTH, '2000-03-28', '2000-02-29') as a;
+a
+0
+select timestampdiff(MONTH, '1991-03-28', '2000-02-29') as a;
+a
+107
+select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a;
+a
+12
+select timestampdiff(SQL_TSI_HOUR, '2001-02-01', '2001-05-01') as a;
+a
+2136
+select timestampdiff(SQL_TSI_DAY, '2001-02-01', '2001-05-01') as a;
+a
+89
+select timestampdiff(SQL_TSI_MINUTE, '2001-02-01 12:59:59', '2001-05-01 12:58:59') as a;
+a
+128159
+select timestampdiff(SQL_TSI_SECOND, '2001-02-01 12:59:59', '2001-05-01 12:58:58') as a;
+a
+7689539
+select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a;
+a
+7689538999999
+select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1,
+timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2,
+timestampdiff(SQL_TSI_DAY, '1996-02-01', '1996-03-01') as a3,
+timestampdiff(SQL_TSI_DAY, '2000-02-01', '2000-03-01') as a4;
+a1 a2 a3 a4
+28 28 29 29
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:27');
+TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:27')
+0
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:28');
+TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:28')
+1
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:29');
+TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:29')
+1
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:27');
+TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:27')
+1
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:28');
+TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:28')
+2
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:29');
+TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:29')
+2
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:27');
+TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:27')
+0
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:28');
+TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:28')
+1
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:29');
+TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:29')
+1
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:27');
+TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:27')
+1
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:28');
+TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:28')
+2
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:29');
+TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:29')
+2
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:27');
+TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:27')
+0
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:28');
+TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:28')
+1
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:29');
+TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:29')
+1
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:27');
+TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:27')
+1
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:28');
+TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:28')
+2
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:29');
+TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:29')
+2
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:27');
+TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:27')
+0
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:28');
+TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:28')
+1
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:29');
+TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:29')
+1
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:27');
+TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:27')
+1
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:28');
+TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:28')
+2
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:29');
+TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:29')
+2
select date_add(time,INTERVAL 1 SECOND) from t1;
date_add(time,INTERVAL 1 SECOND)
NULL
Warnings:
-Warning 1264 Data truncated; out of range for column 'time' at row 1
+Warning 1264 Out of range value adjusted for column 'time' at row 1
drop table t1;
select last_day('2000-02-05') as f1, last_day('2002-12-31') as f2,
last_day('2003-03-32') as f3, last_day('2003-04-01') as f4,
@@ -601,7 +795,7 @@ create table t1 select last_day('2000-02-05') as a,
from_days(to_days("960101")) as b;
describe t1;
Field Type Null Key Default Extra
-a date 0000-00-00
+a date NO 0000-00-00
b date YES NULL
select * from t1;
a b
@@ -645,12 +839,12 @@ explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_d
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache period_add(_latin1'9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,_latin1'9404') AS `period_diff(199505,"9404")`,from_days(to_days(_latin1'960101')) AS `from_days(to_days("960101"))`,dayofmonth(_latin1'1997-01-02') AS `dayofmonth("1997-01-02")`,month(_latin1'1997-01-02') AS `month("1997-01-02")`,monthname(_latin1'1972-03-04') AS `monthname("1972-03-04")`,dayofyear(_latin1'0000-00-00') AS `dayofyear("0000-00-00")`,hour(_latin1'1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute(_latin1'23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week(_latin1'1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek(_latin1'2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year(_latin1'98-02-03') AS `year("98-02-03")`,(weekday(to_days(curdate())) - weekday(to_days(now()))) AS `weekday(curdate())-weekday(now())`,dayname(to_days(_latin1'1962-03-03')) AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec(_latin1'0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format(_latin1'1997-01-02 03:04:05',_latin1'%M %W %D %Y %y %m %d %h %i %s %w') AS `date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")`,from_unixtime(unix_timestamp(_latin1'1994-03-02 10:11:12')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,(_latin1'1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,(_latin1'1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from _latin1'1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)`
-SET @TMP=NOW();
+Note 1003 select period_add(_latin1'9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,_latin1'9404') AS `period_diff(199505,"9404")`,from_days(to_days(_latin1'960101')) AS `from_days(to_days("960101"))`,dayofmonth(_latin1'1997-01-02') AS `dayofmonth("1997-01-02")`,month(_latin1'1997-01-02') AS `month("1997-01-02")`,monthname(_latin1'1972-03-04') AS `monthname("1972-03-04")`,dayofyear(_latin1'0000-00-00') AS `dayofyear("0000-00-00")`,hour(_latin1'1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute(_latin1'23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week(_latin1'1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek(_latin1'2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year(_latin1'98-02-03') AS `year("98-02-03")`,(weekday(curdate()) - weekday(now())) AS `weekday(curdate())-weekday(now())`,dayname(_latin1'1962-03-03') AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec(_latin1'0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format(_latin1'1997-01-02 03:04:05',_latin1'%M %W %D %Y %y %m %d %h %i %s %w') AS `date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")`,from_unixtime(unix_timestamp(_latin1'1994-03-02 10:11:12')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,(_latin1'1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,(_latin1'1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from _latin1'1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,(_latin1'1997-12-31 23:59:59' + interval 1 second) AS `date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)`
+SET @TMP='2007-08-01 12:22:49';
CREATE TABLE t1 (d DATETIME);
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
+INSERT INTO t1 VALUES ('2007-08-01 12:22:59');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:01');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:20');
SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
count(*)
3
@@ -711,9 +905,11 @@ f1
select f1 from t1 where cast("2006-1-1" as date) between date(f1) and date(f3);
f1
2006-01-01
-select f1 from t1 where cast("2006-1-1" as date) between f1 and 'zzz';
+select f1 from t1 where cast("2006-1-1" as date) between f1 and cast('zzz' as date);
f1
-2006-01-01
+Warnings:
+Warning 1292 Truncated incorrect datetime value: 'zzz'
+Warning 1292 Truncated incorrect datetime value: 'zzz'
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
f1
2006-01-01
@@ -809,7 +1005,7 @@ CREATE TABLE t1(f1 TIME);
INSERT INTO t1 VALUES('916:00:00 a');
Warnings:
Warning 1265 Data truncated for column 'f1' at row 1
-Warning 1264 Data truncated; out of range for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
SELECT * FROM t1;
f1
838:59:59
@@ -831,6 +1027,15 @@ fmtddate field2
Sep-4 12:00AM abcd
DROP TABLE testBug8868;
SET NAMES DEFAULT;
+CREATE TABLE t1 (
+a TIMESTAMP
+);
+INSERT INTO t1 VALUES (now()), (now());
+SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
+1
+1
+1
+DROP TABLE t1;
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
union
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
@@ -859,3 +1064,210 @@ week(20061108), week(20061108.01), week(20061108085411.000002);
isnull(week(now() + 0)) isnull(week(now() + 0.2)) week(20061108) week(20061108.01) week(20061108085411.000002)
0 0 45 45 45
End of 4.1 tests
+explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
+timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
+Warnings:
+Note 1003 select timestampdiff(WEEK,_latin1'2001-02-01',_latin1'2001-05-01') AS `a1`,timestampdiff(SECOND_FRAC,_latin1'2001-02-01 12:59:59.120000',_latin1'2001-05-01 12:58:58.119999') AS `a2`
+select last_day('2005-00-00');
+last_day('2005-00-00')
+NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '2005-00-00'
+select last_day('2005-00-01');
+last_day('2005-00-01')
+NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '2005-00-01'
+select last_day('2005-01-00');
+last_day('2005-01-00')
+NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '2005-01-00'
+select time_format('100:00:00', '%H %k %h %I %l');
+time_format('100:00:00', '%H %k %h %I %l')
+100 100 04 04 4
+create table t1 (a timestamp default '2005-05-05 01:01:01',
+b timestamp default '2005-05-05 01:01:01');
+create function t_slow_sysdate() returns timestamp
+begin
+do sleep(2);
+return sysdate();
+end;
+//
+insert into t1 set a = sysdate(), b = t_slow_sysdate();//
+create trigger t_before before insert on t1
+for each row begin
+set new.b = t_slow_sysdate();
+end
+//
+insert into t1 set a = sysdate();
+select a != b from t1;
+a != b
+1
+1
+drop trigger t_before;
+drop function t_slow_sysdate;
+drop table t1;
+create table t1 (a datetime, i int, b datetime);
+insert into t1 select sysdate(), sleep(1), sysdate() from dual;
+select a != b from t1;
+a != b
+1
+drop table t1;
+create procedure t_sysdate()
+begin
+select sysdate() into @a;
+do sleep(2);
+select sysdate() into @b;
+select @a != @b;
+end;
+//
+call t_sysdate();
+@a != @b
+1
+drop procedure t_sysdate;
+select timestampdiff(month,'2004-09-11','2004-09-11');
+timestampdiff(month,'2004-09-11','2004-09-11')
+0
+select timestampdiff(month,'2004-09-11','2005-09-11');
+timestampdiff(month,'2004-09-11','2005-09-11')
+12
+select timestampdiff(month,'2004-09-11','2006-09-11');
+timestampdiff(month,'2004-09-11','2006-09-11')
+24
+select timestampdiff(month,'2004-09-11','2007-09-11');
+timestampdiff(month,'2004-09-11','2007-09-11')
+36
+select timestampdiff(month,'2005-09-11','2004-09-11');
+timestampdiff(month,'2005-09-11','2004-09-11')
+-12
+select timestampdiff(month,'2005-09-11','2003-09-11');
+timestampdiff(month,'2005-09-11','2003-09-11')
+-24
+select timestampdiff(month,'2004-02-28','2005-02-28');
+timestampdiff(month,'2004-02-28','2005-02-28')
+12
+select timestampdiff(month,'2004-02-29','2005-02-28');
+timestampdiff(month,'2004-02-29','2005-02-28')
+11
+select timestampdiff(month,'2004-02-28','2005-02-28');
+timestampdiff(month,'2004-02-28','2005-02-28')
+12
+select timestampdiff(month,'2004-03-29','2005-03-28');
+timestampdiff(month,'2004-03-29','2005-03-28')
+11
+select timestampdiff(month,'2003-02-28','2004-02-29');
+timestampdiff(month,'2003-02-28','2004-02-29')
+12
+select timestampdiff(month,'2003-02-28','2005-02-28');
+timestampdiff(month,'2003-02-28','2005-02-28')
+24
+select timestampdiff(month,'1999-09-11','2001-10-10');
+timestampdiff(month,'1999-09-11','2001-10-10')
+24
+select timestampdiff(month,'1999-09-11','2001-9-11');
+timestampdiff(month,'1999-09-11','2001-9-11')
+24
+select timestampdiff(year,'1999-09-11','2001-9-11');
+timestampdiff(year,'1999-09-11','2001-9-11')
+2
+select timestampdiff(year,'2004-02-28','2005-02-28');
+timestampdiff(year,'2004-02-28','2005-02-28')
+1
+select timestampdiff(year,'2004-02-29','2005-02-28');
+timestampdiff(year,'2004-02-29','2005-02-28')
+0
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, day date);
+CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, day date);
+INSERT INTO t1 VALUES
+(1, '2005-06-01'), (2, '2005-02-01'), (3, '2005-07-01');
+INSERT INTO t2 VALUES
+(1, '2005-08-01'), (2, '2005-06-15'), (3, '2005-07-15');
+SELECT * FROM t1, t2
+WHERE t1.day BETWEEN
+'2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+id day id day
+1 2005-06-01 1 2005-08-01
+3 2005-07-01 1 2005-08-01
+1 2005-06-01 2 2005-06-15
+1 2005-06-01 3 2005-07-15
+3 2005-07-01 3 2005-07-15
+SELECT * FROM t1, t2
+WHERE CAST(t1.day AS DATE) BETWEEN
+'2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+id day id day
+1 2005-06-01 1 2005-08-01
+3 2005-07-01 1 2005-08-01
+1 2005-06-01 2 2005-06-15
+1 2005-06-01 3 2005-07-15
+3 2005-07-01 3 2005-07-15
+DROP TABLE t1,t2;
+set time_zone= @@global.time_zone;
+SET NAMES latin1;
+SET character_set_results = NULL;
+SHOW VARIABLES LIKE 'character_set_results';
+Variable_name Value
+character_set_results
+CREATE TABLE testBug8868 (field1 DATE, field2 VARCHAR(32) CHARACTER SET BINARY);
+INSERT INTO testBug8868 VALUES ('2006-09-04', 'abcd');
+SELECT DATE_FORMAT(field1,'%b-%e %l:%i%p') as fmtddate, field2 FROM testBug8868;
+fmtddate field2
+Sep-4 12:00AM abcd
+DROP TABLE testBug8868;
+SET NAMES DEFAULT;
+select str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
+str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE
+NULL
+create table t1 (field DATE);
+insert into t1 values ('2006-11-06');
+select * from t1 where field < '2006-11-06 04:08:36.0';
+field
+2006-11-06
+select * from t1 where field = '2006-11-06 04:08:36.0';
+field
+select * from t1 where field = '2006-11-06';
+field
+2006-11-06
+select * from t1 where CAST(field as DATETIME) < '2006-11-06 04:08:36.0';
+field
+2006-11-06
+select * from t1 where CAST(field as DATE) < '2006-11-06 04:08:36.0';
+field
+2006-11-06
+drop table t1;
+CREATE TABLE t1 (a int, t1 time, t2 time, d date, PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1, '10:00:00', NULL, NULL),
+(2, '11:00:00', '11:15:00', '1972-02-06');
+SELECT t1, t2, SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ), QUARTER(d)
+FROM t1;
+t1 t2 SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ) QUARTER(d)
+10:00:00 NULL NULL NULL
+11:00:00 11:15:00 00:15:00 1
+SELECT t1, t2, SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ), QUARTER(d)
+FROM t1 ORDER BY a DESC;
+t1 t2 SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ) QUARTER(d)
+11:00:00 11:15:00 00:15:00 1
+10:00:00 NULL NULL NULL
+DROP TABLE t1;
+SELECT TIME_FORMAT(SEC_TO_TIME(a),"%H:%i:%s") FROM (SELECT 3020399 AS a UNION SELECT 3020398 ) x GROUP BY 1;
+TIME_FORMAT(SEC_TO_TIME(a),"%H:%i:%s")
+838:59:58
+838:59:59
+set names latin1;
+create table t1 (a varchar(15) character set ascii not null);
+insert into t1 values ('070514-000000');
+select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1;
+concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull'))
+#
+set names swe7;
+select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1;
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (swe7_swedish_ci,COERCIBLE) for operation 'concat'
+set names latin1;
+set lc_time_names=fr_FR;
+select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1;
+ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation 'concat'
+set lc_time_names=en_US;
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/func_timestamp.result b/mysql-test/r/func_timestamp.result
index d9912f08b72..495fedea9e6 100644
--- a/mysql-test/r/func_timestamp.result
+++ b/mysql-test/r/func_timestamp.result
@@ -1,4 +1,5 @@
drop table if exists t1;
+set time_zone="+03:00";
create table t1 (Zeit time, Tag tinyint not null, Monat tinyint not null,
Jahr smallint not null, index(Tag), index(Monat), index(Jahr) );
insert into t1 values ("09:26:00",16,9,1998),("09:26:00",16,9,1998);
@@ -9,3 +10,4 @@ Date Unix
1998-9-16 09:26:00 905927160
1998-9-16 09:26:00 905927160
drop table t1;
+set time_zone= @@global.time_zone;
diff --git a/mysql-test/r/gis-rtree.result b/mysql-test/r/gis-rtree.result
index 3df316acd77..99bfede3ee0 100644
--- a/mysql-test/r/gis-rtree.result
+++ b/mysql-test/r/gis-rtree.result
@@ -8,9 +8,9 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`fid` int(11) NOT NULL auto_increment,
- `g` geometry NOT NULL default '',
+ `g` geometry NOT NULL,
PRIMARY KEY (`fid`),
- SPATIAL KEY `g` (`g`(32))
+ SPATIAL KEY `g` (`g`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(150 150, 150 150)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(149 149, 151 151)'));
@@ -167,7 +167,7 @@ count(*)
150
EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range g g 32 NULL 7 Using where
+1 SIMPLE t1 range g g 34 NULL 8 Using where
SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
fid AsText(g)
1 LINESTRING(150 150,150 150)
@@ -291,9 +291,9 @@ SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`fid` int(11) NOT NULL auto_increment,
- `g` geometry NOT NULL default '',
+ `g` geometry NOT NULL,
PRIMARY KEY (`fid`),
- SPATIAL KEY `g` (`g`(32))
+ SPATIAL KEY `g` (`g`)
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1
SELECT count(*) FROM t2;
count(*)
@@ -301,7 +301,7 @@ count(*)
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range g g 32 NULL 4 Using where
+1 SIMPLE t2 range g g 34 NULL 4 Using where
SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
fid AsText(g)
@@ -758,7 +758,6 @@ SPATIAL KEY(g)
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
drop table t1;
CREATE TABLE t1 (
-geoobjid INT NOT NULL,
line LINESTRING NOT NULL,
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
name VARCHAR(32),
@@ -802,9 +801,11 @@ CREATE TABLE t1 (st varchar(100));
INSERT INTO t1 VALUES ("Fake string");
CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
INSERT INTO t2 SELECT GeomFromText(st) FROM t1;
-ERROR HY000: Unknown error
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
drop table t1, t2;
CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`(32))) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+Warnings:
+Warning 1101 BLOB/TEXT column 'geometry' can't have a default value
INSERT INTO t1 (geometry) VALUES
(PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
-66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999,
@@ -821,6 +822,8 @@ CREATE TABLE t1 (
c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+Warnings:
+Warning 1101 BLOB/TEXT column 'c1' can't have a default value
INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999,
@@ -835,6 +838,8 @@ CREATE TABLE t1 (
c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+Warnings:
+Warning 1101 BLOB/TEXT column 'c1' can't have a default value
INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999,
@@ -1451,3 +1456,35 @@ insert into t1 values (PointFromWKB(POINT(1.8033161362863e-130, 9.1248812352444e
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, 2.2761049594727e-159)));
insert into t1 values (PointFromWKB(POINT(1.94906280228e+289, 1.2338789709327e-178)));
drop table t1;
+CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) );
+INSERT INTO t1(foo) VALUES (NULL);
+ERROR 23000: Column 'foo' cannot be null
+INSERT INTO t1() VALUES ();
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+INSERT INTO t1(foo) VALUES ('');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+DROP TABLE t1;
+CREATE TABLE t1 (a INT AUTO_INCREMENT, b POINT NOT NULL, KEY (a), SPATIAL KEY (b));
+INSERT INTO t1 (b) VALUES (GeomFromText('POINT(1 2)'));
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, b GEOMETRY NOT NULL, SPATIAL KEY b(b));
+INSERT INTO t1 VALUES (1, GEOMFROMTEXT('LINESTRING(1102218.456 1,2000000 2)'));
+INSERT INTO t1 VALUES (2, GEOMFROMTEXT('LINESTRING(1102218.456 1,2000000 2)'));
+SELECT COUNT(*) FROM t1 WHERE
+MBRINTERSECTS(b, GEOMFROMTEXT('LINESTRING(1 1,1102219 2)') );
+COUNT(*)
+2
+SELECT COUNT(*) FROM t1 IGNORE INDEX (b) WHERE
+MBRINTERSECTS(b, GEOMFROMTEXT('LINESTRING(1 1,1102219 2)') );
+COUNT(*)
+2
+DROP TABLE t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
index 55f70e59fcf..40c70721347 100644
--- a/mysql-test/r/gis.result
+++ b/mysql-test/r/gis.result
@@ -9,35 +9,35 @@ CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMET
CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
SHOW FIELDS FROM gis_point;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g point YES NULL
SHOW FIELDS FROM gis_line;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g linestring YES NULL
SHOW FIELDS FROM gis_polygon;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g polygon YES NULL
SHOW FIELDS FROM gis_multi_point;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g multipoint YES NULL
SHOW FIELDS FROM gis_multi_line;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g multilinestring YES NULL
SHOW FIELDS FROM gis_multi_polygon;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g multipolygon YES NULL
SHOW FIELDS FROM gis_geometrycollection;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g geometrycollection YES NULL
SHOW FIELDS FROM gis_geometry;
Field Type Null Key Default Extra
-fid int(11) PRI 0
+fid int(11) NO PRI NULL
g geometry YES NULL
INSERT INTO gis_point VALUES
(101, PointFromText('POINT(10 10)')),
@@ -228,7 +228,7 @@ explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelo
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
Warnings:
-Note 1003 select dimension(test.gis_geometry.g) AS `Dimension(g)`,geometrytype(test.gis_geometry.g) AS `GeometryType(g)`,isempty(test.gis_geometry.g) AS `IsEmpty(g)`,astext(envelope(test.gis_geometry.g)) AS `AsText(Envelope(g))` from test.gis_geometry
+Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
SELECT fid, X(g) FROM gis_point;
fid X(g)
101 10
@@ -245,7 +245,7 @@ explain extended select X(g),Y(g) FROM gis_point;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
Warnings:
-Note 1003 select x(test.gis_point.g) AS `X(g)`,y(test.gis_point.g) AS `Y(g)` from test.gis_point
+Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
SELECT fid, AsText(StartPoint(g)) FROM gis_line;
fid AsText(StartPoint(g))
105 POINT(0 0)
@@ -280,7 +280,7 @@ explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),Num
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select astext(startpoint(test.gis_line.g)) AS `AsText(StartPoint(g))`,astext(endpoint(test.gis_line.g)) AS `AsText(EndPoint(g))`,glength(test.gis_line.g) AS `GLength(g)`,numpoints(test.gis_line.g) AS `NumPoints(g)`,astext(pointn(test.gis_line.g,2)) AS `AsText(PointN(g, 2))`,isclosed(test.gis_line.g) AS `IsClosed(g)` from test.gis_line
+Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
SELECT fid, AsText(Centroid(g)) FROM gis_polygon;
fid AsText(Centroid(g))
108 POINT(15 15)
@@ -310,7 +310,7 @@ explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumI
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select astext(centroid(test.gis_polygon.g)) AS `AsText(Centroid(g))`,area(test.gis_polygon.g) AS `Area(g)`,astext(exteriorring(test.gis_polygon.g)) AS `AsText(ExteriorRing(g))`,numinteriorrings(test.gis_polygon.g) AS `NumInteriorRings(g)`,astext(interiorringn(test.gis_polygon.g,1)) AS `AsText(InteriorRingN(g, 1))` from test.gis_polygon
+Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
SELECT fid, IsClosed(g) FROM gis_multi_line;
fid IsClosed(g)
114 0
@@ -349,7 +349,7 @@ explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select test.gis_multi_point.fid AS `fid`,numgeometries(test.gis_multi_point.g) AS `NumGeometries(g)` from test.gis_multi_point
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
fid AsText(GeometryN(g, 2))
111 POINT(10 10)
@@ -377,7 +377,7 @@ explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select test.gis_multi_point.fid AS `fid`,astext(geometryn(test.gis_multi_point.g,2)) AS `AsText(GeometryN(g, 2))` from test.gis_multi_point
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
SELECT g1.fid as first, g2.fid as second,
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
@@ -385,7 +385,7 @@ Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
first second w c o e d t i r
120 120 1 1 0 1 0 0 1 0
-120 121 0 0 0 0 0 0 1 0
+120 121 0 0 1 0 0 0 1 0
121 120 0 0 1 0 0 0 1 0
121 121 1 1 0 1 0 0 1 0
explain extended SELECT g1.fid as first, g2.fid as second,
@@ -397,7 +397,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
1 SIMPLE g2 ALL NULL NULL NULL NULL 2
Warnings:
-Note 1003 select test.g1.fid AS `first`,test.g2.fid AS `second`,within(test.g1.g,test.g2.g) AS `w`,contains(test.g1.g,test.g2.g) AS `c`,overlaps(test.g1.g,test.g2.g) AS `o`,equals(test.g1.g,test.g2.g) AS `e`,disjoint(test.g1.g,test.g2.g) AS `d`,touches(test.g1.g,test.g2.g) AS `t`,intersects(test.g1.g,test.g2.g) AS `i`,crosses(test.g1.g,test.g2.g) AS `r` from test.gis_geometrycollection g1 join test.gis_geometrycollection g2 order by test.g1.fid,test.g2.fid
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
CREATE TABLE t1 (
gp point,
@@ -430,7 +430,7 @@ mln multilinestring YES NULL
mpg multipolygon YES NULL
gc geometrycollection YES NULL
gm geometry YES NULL
-fid int(11) 0
+fid int(11) NO NULL
DROP TABLE t1;
SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))))
@@ -461,9 +461,9 @@ Note 1003 select issimple(multipoint(point(3,6),point(4,10))) AS `issimple(Multi
create table t1 (a geometry not null);
insert into t1 values (GeomFromText('Point(1 2)'));
insert into t1 values ('Garbage');
-ERROR HY000: Unknown error
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
insert IGNORE into t1 values ('Garbage');
-ERROR HY000: Unknown error
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
alter table t1 add spatial index(a);
drop table t1;
create table t1(a geometry not null, spatial index(a));
@@ -574,15 +574,17 @@ INSERT INTO t1 VALUES(GeomFromText('POINT(367894677 368542487)'));
INSERT INTO t1 VALUES(GeomFromText('POINT(580848489 219587743)'));
INSERT INTO t1 VALUES(GeomFromText('POINT(11247614 782797569)'));
drop table t1;
-create table t1 select POINT(1,3);
+create table t1 select GeomFromWKB(POINT(1,3));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `POINT(1,3)` longblob
+ `GeomFromWKB(POINT(1,3))` geometry default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
CREATE TABLE `t1` (`object_id` bigint(20) unsigned NOT NULL default '0', `geo`
geometry NOT NULL default '') ENGINE=MyISAM ;
+Warnings:
+Warning 1101 BLOB/TEXT column 'geo' can't have a default value
insert into t1 values ('85984',GeomFromText('MULTIPOLYGON(((-115.006363
36.305435,-114.992394 36.305202,-114.991219 36.305975,-114.991163
36.306845,-114.989432 36.309452,-114.978275 36.312642,-114.977363
@@ -655,6 +657,16 @@ t1 where object_id=85984;
object_id geometrytype(geo) ISSIMPLE(GEO) ASTEXT(centroid(geo))
85984 MULTIPOLYGON 0 POINT(-114.87787186923 36.33101763469)
drop table t1;
+create table t1 (fl geometry not null);
+insert into t1 values (1);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (1.11);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values ("qwerty");
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (pointfromtext('point(1,1)'));
+ERROR 23000: Column 'fl' cannot be null
+drop table t1;
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
(asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))))
POINT(10 10)
@@ -673,8 +685,8 @@ asbinary(g)
drop table t1;
create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b));
alter table t1 disable keys;
-load data infile '../../std_data/bad_gis_data.dat' into table t1;
-ERROR 01000: Data truncated; NULL supplied to NOT NULL column 'b' at row 1
+load data infile '../std_data_ln/bad_gis_data.dat' into table t1;
+ERROR 22004: Column was set to data type implicit default; NULL supplied for NOT NULL column 'b' at row 1
alter table t1 enable keys;
drop table t1;
create table t1 (a int, b blob);
@@ -731,3 +743,194 @@ a
NULL
DROP TABLE t1;
End of 4.1 tests
+create table t1 (s1 geometry not null,s2 char(100));
+create trigger t1_bu before update on t1 for each row set new.s1 = null;
+insert into t1 values (null,null);
+ERROR 23000: Column 's1' cannot be null
+drop table t1;
+drop procedure if exists fn3;
+create function fn3 () returns point return GeomFromText("point(1 1)");
+show create function fn3;
+Function sql_mode Create Function
+fn3 CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point
+return GeomFromText("point(1 1)")
+select astext(fn3());
+astext(fn3())
+POINT(1 1)
+drop function fn3;
+create table t1(pt POINT);
+alter table t1 add primary key pti(pt);
+drop table t1;
+create table t1(pt GEOMETRY);
+alter table t1 add primary key pti(pt);
+ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
+alter table t1 add primary key pti(pt(20));
+drop table t1;
+create table t1 select GeomFromText('point(1 1)');
+desc t1;
+Field Type Null Key Default Extra
+GeomFromText('point(1 1)') geometry YES NULL
+drop table t1;
+create table t1 (g geometry not null);
+insert into t1 values(default);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+drop table t1;
+CREATE TABLE t1 (a GEOMETRY);
+CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1;
+CREATE VIEW v2 AS SELECT a FROM t1;
+DESCRIBE v1;
+Field Type Null Key Default Extra
+GeomFromwkb(ASBINARY(a)) geometry YES NULL
+DESCRIBE v2;
+Field Type Null Key Default Extra
+a geometry YES NULL
+DROP VIEW v1,v2;
+DROP TABLE t1;
+create table t1 (name VARCHAR(100), square GEOMETRY);
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrcontains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrdisjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrequal
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrintersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbroverlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrtouches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrwithin
+big,center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+contains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+disjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+equals
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+intersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+overlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+touches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+within
+big,center
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+overlaps
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+overlaps
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+Overlaps(@horiz1, @vert1)
+0
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+Overlaps(@horiz1, @horiz2)
+1
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+Overlaps(@horiz1, @horiz3)
+0
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+Overlaps(@horiz1, @point1)
+0
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+Overlaps(@horiz1, @point2)
+0
+DROP TABLE t1;
+create table t1(f1 geometry, f2 point, f3 linestring);
+select f1 from t1 union select f1 from t1;
+f1
+insert into t1 (f2,f3) values (GeomFromText('POINT(1 1)'),
+GeomFromText('LINESTRING(0 0,1 1,2 2)'));
+select AsText(f2),AsText(f3) from t1;
+AsText(f2) AsText(f3)
+POINT(1 1) LINESTRING(0 0,1 1,2 2)
+select AsText(a) from (select f2 as a from t1 union select f3 from t1) t;
+AsText(a)
+POINT(1 1)
+LINESTRING(0 0,1 1,2 2)
+create table t2 as select f2 as a from t1 union select f3 from t1;
+desc t2;
+Field Type Null Key Default Extra
+a point YES NULL
+select AsText(a) from t2;
+AsText(a)
+POINT(1 1)
+LINESTRING(0 0,1 1,2 2)
+drop table t1, t2;
+SELECT 1;
+1
+1
+CREATE TABLE t1 (p POINT);
+CREATE TABLE t2 (p POINT, INDEX(p));
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+1
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 system p NULL NULL NULL 1
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+1
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+EXPLAIN
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref p p 28 const 1 Using where
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+EXPLAIN
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+DROP TABLE t1, t2;
+End of 5.0 tests
+End of 5.0 tests
diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result
index 4e4e2ccff48..855352a2195 100644
--- a/mysql-test/r/grant.result
+++ b/mysql-test/r/grant.result
@@ -1,4 +1,5 @@
drop table if exists t1;
+drop database if exists mysqltest;
SET NAMES binary;
delete from mysql.user where user='mysqltest_1';
delete from mysql.db where user='mysqltest_1';
@@ -10,8 +11,8 @@ GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
grant delete on mysqltest.* to mysqltest_1@localhost;
select * from mysql.user where user="mysqltest_1";
-Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
-localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N SPECIFIED EDH-RSA-DES-CBC3-SHA 0 0 0
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N N N N N N SPECIFIED EDH-RSA-DES-CBC3-SHA 0 0 0 0
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'
@@ -41,15 +42,15 @@ delete from mysql.user where user='mysqltest_1';
flush privileges;
grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 10;
select * from mysql.user where user="mysqltest_1";
-Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
-localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N 10 0 0
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 10 0 0 0
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10
grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 20 max_connections_per_hour 30;
select * from mysql.user where user="mysqltest_1";
-Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
-localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N 10 20 30
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 10 20 30 0
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30
@@ -84,7 +85,7 @@ revoke LOCK TABLES, ALTER on mysqltest.* from mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, CREATE TEMPORARY TABLES ON `mysqltest`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, CREATE TEMPORARY TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `mysqltest`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
delete from mysql.user where user='mysqltest_1';
flush privileges;
@@ -157,6 +158,10 @@ select 1;
1
1
insert into mysql.user (host, user) values ('localhost', 'test11');
+Warnings:
+Warning 1364 Field 'ssl_cipher' doesn't have a default value
+Warning 1364 Field 'x509_issuer' doesn't have a default value
+Warning 1364 Field 'x509_subject' doesn't have a default value
insert into mysql.db (host, db, user, select_priv) values
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
alter table mysql.db order by db asc;
@@ -233,24 +238,26 @@ Grants for drop_user@localhost
GRANT USAGE ON *.* TO 'drop_user'@'localhost'
drop user drop_user@localhost;
revoke all privileges, grant option from drop_user@localhost;
-ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users
+ERROR HY000: Can't revoke all privileges for one or more of the requested users
grant select(a) on test.t1 to drop_user1@localhost;
grant select on test.t1 to drop_user2@localhost;
grant select on test.* to drop_user3@localhost;
grant select on *.* to drop_user4@localhost;
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
-ERROR HY000: Can't drop one or more of the requested users
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
drop_user3@localhost, drop_user4@localhost;
+ERROR HY000: Can't revoke all privileges for one or more of the requested users
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
+ERROR HY000: Operation DROP USER failed for 'drop_user1'@'localhost','drop_user2'@'localhost','drop_user3'@'localhost','drop_user4'@'localhost'
drop table t1;
grant usage on *.* to mysqltest_1@localhost identified by "password";
-grant select, update, insert on test.* to mysqltest@localhost;
+grant select, update, insert on test.* to mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
+GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'mysqltest_1'@'localhost'
drop user mysqltest_1@localhost;
SET NAMES koi8r;
CREATE DATABASE ÂÄ;
@@ -274,6 +281,7 @@ Grants for ÀÚÅÒ@localhost
GRANT USAGE ON *.* TO 'ÀÚÅÒ'@'localhost'
GRANT SELECT (ËÏÌ) ON `ÂÄ`.`ÔÁÂ` TO 'ÀÚÅÒ'@'localhost'
REVOKE SELECT (ËÏÌ) ON ÂÄ.ÔÁÂ FROM ÀÚÅÒ@localhost;
+DROP USER ÀÚÅÒ@localhost;
DROP DATABASE ÂÄ;
SET NAMES latin1;
USE test;
@@ -349,12 +357,12 @@ show grants for grant_user@localhost;
Grants for grant_user@localhost
GRANT USAGE ON *.* TO 'grant_user'@'localhost'
GRANT INSERT (a, d, c, b) ON `test`.`t1` TO 'grant_user'@'localhost'
-select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
+select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv order by Column_name;
Host Db User Table_name Column_name Column_priv
-localhost test grant_user t1 b Insert
-localhost test grant_user t1 d Insert
localhost test grant_user t1 a Insert
+localhost test grant_user t1 b Insert
localhost test grant_user t1 c Insert
+localhost test grant_user t1 d Insert
revoke ALL PRIVILEGES on t1 from grant_user@localhost;
show grants for grant_user@localhost;
Grants for grant_user@localhost
@@ -373,19 +381,35 @@ grant update (a) on mysqltest_1.t1 to mysqltest_3@localhost;
grant select (b) on mysqltest_1.t2 to mysqltest_3@localhost;
grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
-show grants for mysqltest_3@localhost;
-Grants for mysqltest_3@localhost
-GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
-GRANT SELECT (b) ON `mysqltest_1`.`t2` TO 'mysqltest_3'@'localhost'
-GRANT UPDATE (a) ON `mysqltest_1`.`t1` TO 'mysqltest_3'@'localhost'
-GRANT UPDATE (d) ON `mysqltest_2`.`t2` TO 'mysqltest_3'@'localhost'
-GRANT SELECT (c) ON `mysqltest_2`.`t1` TO 'mysqltest_3'@'localhost'
+SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
+WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_3'@'localhost' NULL mysqltest_1 t1 a UPDATE NO
+'mysqltest_3'@'localhost' NULL mysqltest_2 t1 c SELECT NO
+'mysqltest_3'@'localhost' NULL mysqltest_1 t2 b SELECT NO
+'mysqltest_3'@'localhost' NULL mysqltest_2 t2 d UPDATE NO
+SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
+WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
+WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
+WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ ORDER BY TABLE_CATALOG,PRIVILEGE_TYPE;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_3'@'localhost' NULL USAGE NO
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'q' in table 't1'
+update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1;
+ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'd' in table 't2'
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1'
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
-ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
+ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1'
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 's' in table 't1'
update mysqltest_1.t1, mysqltest_2.t2 set a=10,d=10;
@@ -407,7 +431,7 @@ flush privileges;
use mysqltest_1;
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
-ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'a' in table 't1'
+ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1'
use mysqltest_2;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't1'
@@ -428,6 +452,35 @@ delete from mysql.columns_priv where user="mysqltest_3";
flush privileges;
drop database mysqltest_1;
drop database mysqltest_2;
+SHOW PRIVILEGES;
+Privilege Context Comment
+Alter Tables To alter the table
+Alter routine Functions,Procedures To alter or drop stored functions/procedures
+Create Databases,Tables,Indexes To create new databases and tables
+Create routine Functions,Procedures To use CREATE FUNCTION/PROCEDURE
+Create temporary tables Databases To use CREATE TEMPORARY TABLE
+Create view Tables To create new views
+Create user Server Admin To create new users
+Delete Tables To delete existing rows
+Drop Databases,Tables To drop databases, tables, and views
+Execute Functions,Procedures To execute stored routines
+File File access on server To read and write files on the server
+Grant option Databases,Tables,Functions,Procedures To give to other users those privileges you possess
+Index Tables To create or drop indexes
+Insert Tables To insert data into tables
+Lock tables Databases To use LOCK TABLES (together with SELECT privilege)
+Process Server Admin To view the plain text of currently executing queries
+References Databases,Tables To have references on tables
+Reload Server Admin To reload or refresh tables, logs and privileges
+Replication client Server Admin To ask where the slave or master servers are
+Replication slave Server Admin To read binary log events from the master
+Select Tables To retrieve rows from table
+Show databases Server Admin To see all databases with SHOW DATABASES
+Show view Tables To see views with SHOW CREATE VIEW
+Shutdown Server Admin To shut down the server
+Super Server Admin To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.
+Update Tables To update existing rows
+Usage Server Admin No privileges - allow connect only
create database mysqltest;
create table mysqltest.t1 (a int,b int,c int);
grant all on mysqltest.t1 to mysqltest_1@localhost;
@@ -436,14 +489,127 @@ ERROR 42000: INSERT,CREATE command denied to user 'mysqltest_1'@'localhost' for
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
delete from mysql.user where user=_binary'mysqltest_1';
drop database mysqltest;
+CREATE USER dummy@localhost;
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.dummytable (dummyfield INT);
+CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
+GRANT ALL PRIVILEGES ON mysqltest.dummytable TO dummy@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.dummyview TO dummy@localhost;
+SHOW GRANTS FOR dummy@localhost;
+Grants for dummy@localhost
+GRANT USAGE ON *.* TO 'dummy'@'localhost'
+GRANT ALL PRIVILEGES ON `mysqltest`.`dummyview` TO 'dummy'@'localhost'
+GRANT ALL PRIVILEGES ON `mysqltest`.`dummytable` TO 'dummy'@'localhost'
+use INFORMATION_SCHEMA;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+TABLE_SCHEMA TABLE_NAME PRIVILEGES
+mysqltest dummytable ALTER, CREATE, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, SHOW VIEW, UPDATE
+mysqltest dummyview ALTER, CREATE, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, SHOW VIEW, UPDATE
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR dummy@localhost;
+Grants for dummy@localhost
+GRANT USAGE ON *.* TO 'dummy'@'localhost'
+GRANT ALL PRIVILEGES ON `mysqltest`.`dummyview` TO 'dummy'@'localhost'
+GRANT ALL PRIVILEGES ON `mysqltest`.`dummytable` TO 'dummy'@'localhost'
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+TABLE_SCHEMA TABLE_NAME PRIVILEGES
+mysqltest dummytable ALTER, CREATE, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, SHOW VIEW, UPDATE
+mysqltest dummyview ALTER, CREATE, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, SHOW VIEW, UPDATE
+SHOW FIELDS FROM mysql.tables_priv;
+Field Type Null Key Default Extra
+Host char(60) NO PRI
+Db char(64) NO PRI
+User char(16) NO PRI
+Table_name char(64) NO PRI
+Grantor char(77) NO MUL
+Timestamp timestamp NO CURRENT_TIMESTAMP
+Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') NO
+Column_priv set('Select','Insert','Update','References') NO
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
+DROP USER dummy@localhost;
+DROP DATABASE mysqltest;
+CREATE USER dummy@localhost;
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.dummytable (dummyfield INT);
+CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
+GRANT CREATE VIEW ON mysqltest.dummytable TO dummy@localhost;
+GRANT CREATE VIEW ON mysqltest.dummyview TO dummy@localhost;
+SHOW GRANTS FOR dummy@localhost;
+Grants for dummy@localhost
+GRANT USAGE ON *.* TO 'dummy'@'localhost'
+GRANT CREATE VIEW ON `mysqltest`.`dummyview` TO 'dummy'@'localhost'
+GRANT CREATE VIEW ON `mysqltest`.`dummytable` TO 'dummy'@'localhost'
+use INFORMATION_SCHEMA;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+TABLE_SCHEMA TABLE_NAME PRIVILEGES
+mysqltest dummytable CREATE VIEW
+mysqltest dummyview CREATE VIEW
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR dummy@localhost;
+Grants for dummy@localhost
+GRANT USAGE ON *.* TO 'dummy'@'localhost'
+GRANT CREATE VIEW ON `mysqltest`.`dummyview` TO 'dummy'@'localhost'
+GRANT CREATE VIEW ON `mysqltest`.`dummytable` TO 'dummy'@'localhost'
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+TABLE_SCHEMA TABLE_NAME PRIVILEGES
+mysqltest dummytable CREATE VIEW
+mysqltest dummyview CREATE VIEW
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
+DROP USER dummy@localhost;
+DROP DATABASE mysqltest;
+CREATE USER dummy@localhost;
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.dummytable (dummyfield INT);
+CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
+GRANT SHOW VIEW ON mysqltest.dummytable TO dummy@localhost;
+GRANT SHOW VIEW ON mysqltest.dummyview TO dummy@localhost;
+SHOW GRANTS FOR dummy@localhost;
+Grants for dummy@localhost
+GRANT USAGE ON *.* TO 'dummy'@'localhost'
+GRANT SHOW VIEW ON `mysqltest`.`dummyview` TO 'dummy'@'localhost'
+GRANT SHOW VIEW ON `mysqltest`.`dummytable` TO 'dummy'@'localhost'
+use INFORMATION_SCHEMA;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+TABLE_SCHEMA TABLE_NAME PRIVILEGES
+mysqltest dummytable SHOW VIEW
+mysqltest dummyview SHOW VIEW
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR dummy@localhost;
+Grants for dummy@localhost
+GRANT USAGE ON *.* TO 'dummy'@'localhost'
+GRANT SHOW VIEW ON `mysqltest`.`dummyview` TO 'dummy'@'localhost'
+GRANT SHOW VIEW ON `mysqltest`.`dummytable` TO 'dummy'@'localhost'
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+TABLE_SCHEMA TABLE_NAME PRIVILEGES
+mysqltest dummytable SHOW VIEW
+mysqltest dummyview SHOW VIEW
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
+DROP USER dummy@localhost;
+DROP DATABASE mysqltest;
use mysql;
insert into tables_priv values ('','test_db','mysqltest_1','test_table','test_grantor',CURRENT_TIMESTAMP,'Select','Select');
flush privileges;
delete from tables_priv where host = '' and user = 'mysqltest_1';
flush privileges;
+use test;
set @user123="non-existent";
select * from mysql.db where user=@user123;
-Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv
+Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv
set names koi8r;
create database ÂÄ;
grant select on ÂÄ.* to root@localhost;
@@ -465,8 +631,7 @@ show grants for root@localhost;
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
set names latin1;
-insert into mysql.user (host, user) values ('', 'mysqltest_7');
-flush privileges;
+create user mysqltest_7@;
set password for mysqltest_7@ = password('systpass');
show grants for mysqltest_7@;
Grants for mysqltest_7@
@@ -503,3 +668,463 @@ revoke all privileges, grant option from user27515@localhost;
drop user user27515@localhost;
drop database db27515;
End of 4.1 tests
+use test;
+create table t1 (a int);
+create table t2 as select * from mysql.user where user='';
+delete from mysql.user where user='';
+flush privileges;
+create user mysqltest_8@'';
+create user mysqltest_8;
+create user mysqltest_8@host8;
+create user mysqltest_8@'';
+ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@''
+create user mysqltest_8;
+ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'%'
+create user mysqltest_8@host8;
+ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'host8'
+select user, QUOTE(host) from mysql.user where user="mysqltest_8";
+user QUOTE(host)
+mysqltest_8 ''
+mysqltest_8 '%'
+mysqltest_8 'host8'
+Schema privileges
+grant select on mysqltest.* to mysqltest_8@'';
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@''
+grant select on mysqltest.* to mysqltest_8@;
+show grants for mysqltest_8@;
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@''
+grant select on mysqltest.* to mysqltest_8;
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@'%'
+select * from information_schema.schema_privileges
+where grantee like "'mysqltest_8'%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_8'@'%' NULL mysqltest SELECT NO
+'mysqltest_8'@'' NULL mysqltest SELECT NO
+select * from t1;
+a
+revoke select on mysqltest.* from mysqltest_8@'';
+revoke select on mysqltest.* from mysqltest_8;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+select * from information_schema.schema_privileges
+where grantee like "'mysqltest_8'%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+flush privileges;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+show grants for mysqltest_8@;
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+grant select on mysqltest.* to mysqltest_8@'';
+flush privileges;
+show grants for mysqltest_8@;
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@''
+revoke select on mysqltest.* from mysqltest_8@'';
+flush privileges;
+Column privileges
+grant update (a) on t1 to mysqltest_8@'';
+grant update (a) on t1 to mysqltest_8;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
+flush privileges;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
+select * from information_schema.column_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_8'@'%' NULL test t1 a UPDATE NO
+'mysqltest_8'@'' NULL test t1 a UPDATE NO
+select * from t1;
+a
+revoke update (a) on t1 from mysqltest_8@'';
+revoke update (a) on t1 from mysqltest_8;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+select * from information_schema.column_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+flush privileges;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+Table privileges
+grant update on t1 to mysqltest_8@'';
+grant update on t1 to mysqltest_8;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
+flush privileges;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
+select * from information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_8'@'%' NULL test t1 UPDATE NO
+'mysqltest_8'@'' NULL test t1 UPDATE NO
+select * from t1;
+a
+revoke update on t1 from mysqltest_8@'';
+revoke update on t1 from mysqltest_8;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+select * from information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+flush privileges;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+"DROP USER" should clear privileges
+grant all privileges on mysqltest.* to mysqltest_8@'';
+grant select on mysqltest.* to mysqltest_8@'';
+grant update on t1 to mysqltest_8@'';
+grant update (a) on t1 to mysqltest_8@'';
+grant all privileges on mysqltest.* to mysqltest_8;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@''
+GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
+select * from information_schema.user_privileges
+where grantee like "'mysqltest_8'%";
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_8'@'host8' NULL USAGE NO
+'mysqltest_8'@'%' NULL USAGE NO
+'mysqltest_8'@'' NULL USAGE NO
+select * from t1;
+a
+flush privileges;
+show grants for mysqltest_8@'';
+Grants for mysqltest_8@
+GRANT USAGE ON *.* TO 'mysqltest_8'@''
+GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@''
+GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
+drop user mysqltest_8@'';
+show grants for mysqltest_8@'';
+ERROR 42000: There is no such grant defined for user 'mysqltest_8' on host ''
+show grants for mysqltest_8;
+Grants for mysqltest_8@%
+GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
+GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
+select * from information_schema.user_privileges
+where grantee like "'mysqltest_8'%";
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_8'@'host8' NULL USAGE NO
+'mysqltest_8'@'%' NULL USAGE NO
+drop user mysqltest_8;
+connect(localhost,mysqltest_8,,test,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'mysqltest_8'@'localhost' (using password: NO)
+show grants for mysqltest_8;
+ERROR 42000: There is no such grant defined for user 'mysqltest_8' on host '%'
+drop user mysqltest_8@host8;
+show grants for mysqltest_8@host8;
+ERROR 42000: There is no such grant defined for user 'mysqltest_8' on host 'host8'
+insert into mysql.user select * from t2;
+flush privileges;
+drop table t2;
+drop table t1;
+CREATE DATABASE mysqltest3;
+use mysqltest3;
+CREATE TABLE t_nn (c1 INT);
+CREATE VIEW v_nn AS SELECT * FROM t_nn;
+CREATE DATABASE mysqltest2;
+use mysqltest2;
+CREATE TABLE t_nn (c1 INT);
+CREATE VIEW v_nn AS SELECT * FROM t_nn;
+CREATE VIEW v_yn AS SELECT * FROM t_nn;
+CREATE VIEW v_gy AS SELECT * FROM t_nn;
+CREATE VIEW v_ny AS SELECT * FROM t_nn;
+CREATE VIEW v_yy AS SELECT * FROM t_nn WHERE c1=55;
+GRANT SHOW VIEW ON mysqltest2.v_ny TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+GRANT SELECT ON mysqltest2.v_yn TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+SHOW CREATE VIEW mysqltest2.v_nn;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
+SHOW CREATE TABLE mysqltest2.v_nn;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
+SHOW CREATE VIEW mysqltest2.v_yn;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
+SHOW CREATE TABLE mysqltest2.v_yn;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
+SHOW CREATE TABLE mysqltest2.v_ny;
+View Create View
+v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
+SHOW CREATE VIEW mysqltest2.v_ny;
+View Create View
+v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
+SHOW CREATE TABLE mysqltest3.t_nn;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
+SHOW CREATE VIEW mysqltest3.t_nn;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
+SHOW CREATE VIEW mysqltest3.v_nn;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
+SHOW CREATE TABLE mysqltest3.v_nn;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
+SHOW CREATE TABLE mysqltest2.t_nn;
+Table Create Table
+t_nn CREATE TABLE `t_nn` (
+ `c1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SHOW CREATE VIEW mysqltest2.t_nn;
+ERROR HY000: 'mysqltest2.t_nn' is not VIEW
+SHOW CREATE VIEW mysqltest2.v_yy;
+View Create View
+v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
+SHOW CREATE TABLE mysqltest2.v_yy;
+View Create View
+v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
+SHOW CREATE TABLE mysqltest2.v_nn;
+View Create View
+v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
+SHOW CREATE VIEW mysqltest2.v_nn;
+View Create View
+v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
+SHOW CREATE TABLE mysqltest2.t_nn;
+Table Create Table
+t_nn CREATE TABLE `t_nn` (
+ `c1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+SHOW CREATE VIEW mysqltest2.t_nn;
+ERROR HY000: 'mysqltest2.t_nn' is not VIEW
+DROP VIEW mysqltest2.v_nn;
+DROP VIEW mysqltest2.v_yn;
+DROP VIEW mysqltest2.v_ny;
+DROP VIEW mysqltest2.v_yy;
+DROP TABLE mysqltest2.t_nn;
+DROP DATABASE mysqltest2;
+DROP VIEW mysqltest3.v_nn;
+DROP TABLE mysqltest3.t_nn;
+DROP DATABASE mysqltest3;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
+DROP USER 'mysqltest_1'@'localhost';
+use test;
+create user mysqltest1_thisisreallytoolong;
+ERROR HY000: String 'mysqltest1_thisisreallytoolong' is too long for user name (should be no longer than 16)
+GRANT CREATE ON mysqltest.* TO 1234567890abcdefGHIKL@localhost;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+REVOKE CREATE ON mysqltest.* FROM 1234567890abcdefGHIKL@localhost;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+GRANT CREATE ON t1 TO 1234567890abcdefGHIKL@localhost;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+GRANT CREATE ON t1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+REVOKE CREATE ON t1 FROM 1234567890abcdefGHIKL@localhost;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+GRANT EXECUTE ON PROCEDURE p1 TO 1234567890abcdefGHIKL@localhost;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+GRANT EXECUTE ON PROCEDURE p1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+REVOKE EXECUTE ON PROCEDURE p1 FROM 1234567890abcdefGHIKL@localhost;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+GRANT PROCESS ON * TO user@localhost;
+ERROR 3D000: No database selected
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+DROP DATABASE IF EXISTS mysqltest3;
+DROP DATABASE IF EXISTS mysqltest4;
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+CREATE DATABASE mysqltest3;
+CREATE DATABASE mysqltest4;
+CREATE PROCEDURE mysqltest1.p_def() SQL SECURITY DEFINER
+SELECT 1;
+CREATE PROCEDURE mysqltest2.p_inv() SQL SECURITY INVOKER
+SELECT 1;
+CREATE FUNCTION mysqltest3.f_def() RETURNS INT SQL SECURITY DEFINER
+RETURN 1;
+CREATE FUNCTION mysqltest4.f_inv() RETURNS INT SQL SECURITY INVOKER
+RETURN 1;
+GRANT EXECUTE ON PROCEDURE mysqltest1.p_def TO mysqltest_1@localhost;
+GRANT EXECUTE ON PROCEDURE mysqltest2.p_inv TO mysqltest_1@localhost;
+GRANT EXECUTE ON FUNCTION mysqltest3.f_def TO mysqltest_1@localhost;
+GRANT EXECUTE ON FUNCTION mysqltest4.f_inv TO mysqltest_1@localhost;
+GRANT ALL PRIVILEGES ON test.* TO mysqltest_1@localhost;
+
+---> connection: bug9504_con1
+use mysqltest1;
+use mysqltest2;
+use mysqltest3;
+use mysqltest4;
+use test;
+CALL mysqltest1.p_def();
+1
+1
+CALL mysqltest2.p_inv();
+1
+1
+SELECT mysqltest3.f_def();
+mysqltest3.f_def()
+1
+SELECT mysqltest4.f_inv();
+mysqltest4.f_inv()
+1
+
+---> connection: default
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+DROP DATABASE mysqltest3;
+DROP DATABASE mysqltest4;
+DROP USER mysqltest_1@localhost;
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+GRANT ALL PRIVILEGES ON mysqltest1.* TO mysqltest_1@localhost;
+GRANT SELECT ON mysqltest2.* TO mysqltest_1@localhost;
+CREATE PROCEDURE mysqltest1.p1() SQL SECURITY INVOKER
+SELECT 1;
+
+---> connection: bug27337_con1
+CREATE TABLE t1(c INT);
+ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table 't1'
+CALL mysqltest1.p1();
+1
+1
+CREATE TABLE t1(c INT);
+ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table 't1'
+
+---> connection: bug27337_con2
+CREATE TABLE t1(c INT);
+ERROR 42000: CREATE command denied to user 'mysqltest_1'@'localhost' for table 't1'
+SHOW TABLES;
+Tables_in_mysqltest2
+
+---> connection: default
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+DROP USER mysqltest_1@localhost;
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+CREATE TABLE mysqltest1.t1(c INT);
+CREATE TABLE mysqltest2.t2(c INT);
+GRANT SELECT ON mysqltest1.t1 TO mysqltest_1@localhost;
+GRANT SELECT ON mysqltest2.t2 TO mysqltest_2@localhost;
+
+---> connection: bug27337_con1
+SHOW TABLES FROM mysqltest1;
+Tables_in_mysqltest1
+t1
+PREPARE stmt1 FROM 'SHOW TABLES FROM mysqltest1';
+EXECUTE stmt1;
+Tables_in_mysqltest1
+t1
+
+---> connection: bug27337_con2
+SHOW COLUMNS FROM mysqltest2.t2;
+Field Type Null Key Default Extra
+c int(11) YES NULL
+PREPARE stmt2 FROM 'SHOW COLUMNS FROM mysqltest2.t2';
+EXECUTE stmt2;
+Field Type Null Key Default Extra
+c int(11) YES NULL
+
+---> connection: default
+REVOKE SELECT ON mysqltest1.t1 FROM mysqltest_1@localhost;
+REVOKE SELECT ON mysqltest2.t2 FROM mysqltest_2@localhost;
+
+---> connection: bug27337_con1
+SHOW TABLES FROM mysqltest1;
+ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest1'
+EXECUTE stmt1;
+ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest1'
+
+---> connection: bug27337_con2
+SHOW COLUMNS FROM mysqltest2.t2;
+ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2'
+EXECUTE stmt2;
+ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2'
+
+---> connection: default
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+DROP USER mysqltest_1@localhost;
+use test;
+CREATE TABLE t1 (f1 int, f2 int);
+INSERT INTO t1 VALUES(1,1), (2,2);
+CREATE DATABASE db27878;
+GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
+GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
+GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
+use db27878;
+CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
+use db27878;
+UPDATE v1 SET f2 = 4;
+ERROR HY000: View 'db27878.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM test.t1;
+f1 f2
+1 1
+2 2
+REVOKE UPDATE (f1) ON `test`.`t1` FROM 'mysqltest_1'@'localhost';
+REVOKE SELECT ON `test`.* FROM 'mysqltest_1'@'localhost';
+REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
+DROP DATABASE db27878;
+use test;
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/grant2.result b/mysql-test/r/grant2.result
index 36d4e51119d..e3c92ecc7c8 100644
--- a/mysql-test/r/grant2.result
+++ b/mysql-test/r/grant2.result
@@ -6,16 +6,42 @@ delete from mysql.db where user like 'mysqltest\_%';
delete from mysql.tables_priv where user like 'mysqltest\_%';
delete from mysql.columns_priv where user like 'mysqltest\_%';
flush privileges;
+grant all privileges on `my\_1`.* to mysqltest_1@localhost with grant option;
+grant create user on *.* to mysqltest_1@localhost;
+create user mysqltest_2@localhost;
+grant select on `my\_1`.* to mysqltest_2@localhost;
+grant select on `my\_1`.* to mysqltest_2@localhost identified by 'pass';
+ERROR 42000: You must have privileges to update tables in the mysql database to be able to change passwords for others
+grant update on mysql.* to mysqltest_1@localhost;
+grant select on `my\_1`.* to mysqltest_2@localhost identified by 'pass';
+grant select on `my\_1`.* to mysqltest_3@localhost;
+grant insert on mysql.* to mysqltest_1@localhost;
+grant select on `my\_1`.* to mysqltest_3@localhost;
+grant select on `my\_1`.* to mysqltest_4@localhost identified by 'pass';
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option;
+grant create user on *.* to mysqltest_1@localhost;
select current_user();
current_user()
mysqltest_1@localhost
grant all privileges on `my\_1`.* to mysqltest_2@localhost with grant option;
grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'my_%'
+set @@sql_mode='NO_AUTO_CREATE_USER';
+select @@sql_mode;
+@@sql_mode
+NO_AUTO_CREATE_USER
+grant select on `my\_1`.* to mysqltest_4@localhost with grant option;
+ERROR 42000: Can't find any matching row in the user table
+grant select on `my\_1`.* to mysqltest_4@localhost identified by 'mypass'
+with grant option;
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
-GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
+GRANT CREATE USER ON *.* TO 'mysqltest_1'@'localhost'
GRANT ALL PRIVILEGES ON `my\_%`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
show grants for mysqltest_2@localhost;
Grants for mysqltest_2@localhost
@@ -33,6 +59,7 @@ current_user()
mysqltest_1@localhost
show databases;
Database
+information_schema
mysqltest_1
test
grant all privileges on `mysqltest_1`.* to mysqltest_1@localhost with grant option;
@@ -56,9 +83,9 @@ GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
GRANT SELECT, INSERT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
insert into t1 values (1, 'I can''t change it!');
update t1 set data='I can change it!' where id = 1;
-ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
+ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1'
insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!';
-ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
+ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1'
select * from t1;
id data
1 I can't change it!
@@ -80,6 +107,192 @@ delete from mysql.columns_priv where user like 'mysqltest\_%';
flush privileges;
drop database mysqltest;
use test;
+create user mysqltest_1@host1;
+create user mysqltest_2@host2;
+create user mysqltest_3@host3;
+create user mysqltest_4@host4;
+create user mysqltest_5@host5;
+create user mysqltest_6@host6;
+create user mysqltest_7@host7;
+flush privileges;
+drop user mysqltest_3@host3;
+drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
+mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
+create database mysqltest_1;
+grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
+set sql_log_off = 1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+set sql_log_bin = 0;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+delete from mysql.user where user like 'mysqltest\_1';
+delete from mysql.db where user like 'mysqltest\_1';
+drop database mysqltest_1;
+flush privileges;
+set sql_mode='maxdb';
+drop table if exists t1, t2;
+create table t1(c1 int);
+create table t2(c1 int, c2 int);
+create user 'mysqltest_1';
+create user 'mysqltest_1';
+ERROR HY000: Operation CREATE USER failed for 'mysqltest_1'@'%'
+create user 'mysqltest_2' identified by 'Mysqltest-2';
+create user 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
+grant select on *.* to 'mysqltest_2';
+grant insert on test.* to 'mysqltest_2';
+grant update on test.t1 to 'mysqltest_2';
+grant update (c2) on test.t2 to 'mysqltest_2';
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+host user password
+% mysqltest_1
+% mysqltest_2 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
+% mysqltest_3 fffffffffffffffffffffffffffffffffffffffff
+select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
+host db user
+% test mysqltest_2
+select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
+host db user table_name
+% test mysqltest_2 t1
+% test mysqltest_2 t2
+select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
+host db user table_name column_name
+% test mysqltest_2 t2 c2
+show grants for 'mysqltest_1';
+Grants for mysqltest_1@%
+GRANT USAGE ON *.* TO 'mysqltest_1'@'%'
+show grants for 'mysqltest_2';
+Grants for mysqltest_2@%
+GRANT SELECT ON *.* TO 'mysqltest_2'@'%' IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1'
+GRANT INSERT ON "test".* TO 'mysqltest_2'@'%'
+GRANT UPDATE (c2) ON "test"."t2" TO 'mysqltest_2'@'%'
+GRANT UPDATE ON "test"."t1" TO 'mysqltest_2'@'%'
+drop user 'mysqltest_1';
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+host user password
+% mysqltest_2 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
+% mysqltest_3 fffffffffffffffffffffffffffffffffffffffff
+select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
+host db user
+% test mysqltest_2
+select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
+host db user table_name
+% test mysqltest_2 t1
+% test mysqltest_2 t2
+select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
+host db user table_name column_name
+% test mysqltest_2 t2 c2
+show grants for 'mysqltest_1';
+ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
+rename user 'mysqltest_2' to 'mysqltest_1';
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+host user password
+% mysqltest_1 *BD447CBA355AF58578D3AE33BA2E2CD388BA08D1
+% mysqltest_3 fffffffffffffffffffffffffffffffffffffffff
+select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
+host db user
+% test mysqltest_1
+select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
+host db user table_name
+% test mysqltest_1 t1
+% test mysqltest_1 t2
+select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
+host db user table_name column_name
+% test mysqltest_1 t2 c2
+show grants for 'mysqltest_1';
+Grants for mysqltest_1@%
+GRANT SELECT ON *.* TO 'mysqltest_1'@'%' IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1'
+GRANT INSERT ON "test".* TO 'mysqltest_1'@'%'
+GRANT UPDATE (c2) ON "test"."t2" TO 'mysqltest_1'@'%'
+GRANT UPDATE ON "test"."t1" TO 'mysqltest_1'@'%'
+drop user 'mysqltest_1', 'mysqltest_3';
+drop user 'mysqltest_1';
+ERROR HY000: Operation DROP USER failed for 'mysqltest_1'@'%'
+drop table t1, t2;
+insert into mysql.db set user='mysqltest_1', db='%', host='%';
+flush privileges;
+show grants for 'mysqltest_1';
+ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
+revoke all privileges, grant option from 'mysqltest_1';
+ERROR HY000: Can't revoke all privileges for one or more of the requested users
+drop user 'mysqltest_1';
+select host,db,user from mysql.db where user = 'mysqltest_1' order by host,db,user;
+host db user
+insert into mysql.tables_priv set host='%', db='test', user='mysqltest_1', table_name='t1';
+flush privileges;
+show grants for 'mysqltest_1';
+ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
+drop user 'mysqltest_1';
+select host,db,user,table_name from mysql.tables_priv where user = 'mysqltest_1' order by host,db,user,table_name;
+host db user table_name
+insert into mysql.columns_priv set host='%', db='test', user='mysqltest_1', table_name='t1', column_name='c1';
+flush privileges;
+show grants for 'mysqltest_1';
+ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%'
+drop user 'mysqltest_1';
+select host,db,user,table_name,column_name from mysql.columns_priv where user = 'mysqltest_1' order by host,db,user,table_name,column_name;
+host db user table_name column_name
+create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+create user 'mysqltest_1', 'mysqltest_2' identified by 'Mysqltest-2', 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
+rename user 'mysqltest_1' to 'mysqltest_1a', 'mysqltest_2' TO 'mysqltest_2a', 'mysqltest_3' TO 'mysqltest_3a';
+drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+ERROR HY000: Operation DROP USER failed for 'mysqltest_1'@'%','mysqltest_2'@'%','mysqltest_3'@'%'
+drop user 'mysqltest_1a', 'mysqltest_2a', 'mysqltest_3a';
+create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+create user 'mysqltest_1a', 'mysqltest_2', 'mysqltest_3a';
+ERROR HY000: Operation CREATE USER failed for 'mysqltest_2'@'%'
+rename user 'mysqltest_1a' to 'mysqltest_1b', 'mysqltest_2a' TO 'mysqltest_2b', 'mysqltest_3a' TO 'mysqltest_3b';
+ERROR HY000: Operation RENAME USER failed for 'mysqltest_2a'@'%'
+drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+drop user 'mysqltest_1b', 'mysqltest_2b', 'mysqltest_3b';
+ERROR HY000: Operation DROP USER failed for 'mysqltest_2b'@'%'
+create user 'mysqltest_2' identified by 'Mysqltest-2';
+drop user 'mysqltest_2' identified by 'Mysqltest-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 'identified by 'Mysqltest-2'' at line 1
+drop user 'mysqltest_2';
+create user '%@b'@'b';
+show grants for '%@b'@'b';
+Grants for %@b@b
+GRANT USAGE ON *.* TO '%@b'@'b'
+grant select on mysql.* to '%@b'@'b';
+show grants for '%@b'@'b';
+Grants for %@b@b
+GRANT USAGE ON *.* TO '%@b'@'b'
+GRANT SELECT ON "mysql".* TO '%@b'@'b'
+rename user '%@b'@'b' to '%@a'@'a';
+show grants for '%@b'@'b';
+ERROR 42000: There is no such grant defined for user '%@b' on host 'b'
+show grants for '%@a'@'a';
+Grants for %@a@a
+GRANT USAGE ON *.* TO '%@a'@'a'
+GRANT SELECT ON "mysql".* TO '%@a'@'a'
+drop user '%@a'@'a';
+create user mysqltest_2@localhost;
+grant create user on *.* to mysqltest_2@localhost;
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 'user'
+create user mysqltest_A@'%';
+rename user mysqltest_A@'%' to mysqltest_B@'%';
+drop user mysqltest_B@'%';
+drop user mysqltest_2@localhost;
+create user mysqltest_3@localhost;
+grant INSERT,DELETE,UPDATE on mysql.* to mysqltest_3@localhost;
+show grants;
+Grants for mysqltest_3@localhost
+GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
+GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO 'mysqltest_3'@'localhost'
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 'user'
+insert into mysql.user set host='%', user='mysqltest_B';
+Warnings:
+Warning 1364 Field 'ssl_cipher' doesn't have a default value
+Warning 1364 Field 'x509_issuer' doesn't have a default value
+Warning 1364 Field 'x509_subject' doesn't have a default value
+create user mysqltest_A@'%';
+rename user mysqltest_B@'%' to mysqltest_C@'%';
+drop user mysqltest_C@'%';
+drop user mysqltest_A@'%';
+drop user mysqltest_3@localhost;
+set @@sql_mode='';
create database mysqltest_1;
create table mysqltest_1.t1 (i int);
insert into mysqltest_1.t1 values (1),(2),(3);
@@ -131,25 +344,99 @@ set password for 'mysqltest_1'@'localhost' = password('');
revoke all on *.* from 'mysqltest_1'@'localhost';
unlock tables;
drop user 'mysqltest_1'@'localhost';
-insert into mysql.user (user, host) values
-('mysqltest_1', 'host1'),
-('mysqltest_2', 'host2'),
-('mysqltest_3', 'host3'),
-('mysqltest_4', 'host4'),
-('mysqltest_5', 'host5'),
-('mysqltest_6', 'host6'),
-('mysqltest_7', 'host7');
+create database TESTDB;
+create table t2(a int);
+create temporary table t1 as select * from mysql.user;
+delete from mysql.user where host='localhost';
+INSERT INTO mysql.user VALUES
+('%','mysqltest_1',password('password'),'N','N','N','N','N','N',
+'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N',
+'','','','',0,0,0,0);
+INSERT INTO mysql.db VALUES
+('%','TESTDB','mysqltest_1','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','N','Y','Y','Y','
+Y','N');
+Warnings:
+Warning 1265 Data truncated for column 'Alter_routine_priv' at row 1
+FLUSH PRIVILEGES;
+create database TEStdb;
+Got one of the listed errors
+delete from mysql.user;
+delete from mysql.db where host='%' and user='mysqltest_1' and db='TESTDB';
+insert into mysql.user select * from t1;
+drop table t1, t2;
+drop database TESTDB;
flush privileges;
-drop user mysqltest_3@host3;
-drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
-mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
+grant all privileges on test.* to `a@`@localhost;
+grant execute on * to `a@`@localhost;
+create table t2 (s1 int);
+insert into t2 values (1);
+drop function if exists f2;
+create function f2 () returns int begin declare v int; select s1 from t2
+into v; return v; end//
+select f2();
+f2()
+1
+drop function f2;
+drop table t2;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM `a@`@localhost;
+drop user `a@`@localhost;
+drop database if exists mysqltest_1;
+drop database if exists mysqltest_2;
+drop user mysqltest_u1@localhost;
create database mysqltest_1;
-grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
-set sql_log_off = 1;
-ERROR HY000: Access denied; you need the SUPER privilege for this operation
-set sql_log_bin = 0;
-ERROR HY000: Access denied; you need the SUPER privilege for this operation
-delete from mysql.user where user like 'mysqltest\_1';
-delete from mysql.db where user like 'mysqltest\_1';
+create database mysqltest_2;
+grant all on mysqltest_1.* to mysqltest_u1@localhost;
+use mysqltest_2;
+create table t1 (i int);
+show create table mysqltest_2.t1;
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
+create table t1 like mysqltest_2.t1;
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
+grant select on mysqltest_2.t1 to mysqltest_u1@localhost;
+show create table mysqltest_2.t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+create table t1 like mysqltest_2.t1;
+use test;
drop database mysqltest_1;
-flush privileges;
+drop database mysqltest_2;
+drop user mysqltest_u1@localhost;
+grant all on `mysqltest\_%`.* to mysqltest_1@localhost with grant option;
+grant usage on *.* to mysqltest_2@localhost;
+create database mysqltest_1;
+use mysqltest_1;
+create table t1 (f1 int);
+grant create on `mysqltest\_1`.* to mysqltest_2@localhost;
+grant select on mysqltest_1.t1 to mysqltest_2@localhost;
+create database mysqltest_3;
+ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest_3'
+use mysqltest_1;
+create table t2(f1 int);
+select * from t1;
+f1
+drop database mysqltest_1;
+revoke all privileges, grant option from mysqltest_1@localhost;
+revoke all privileges, grant option from mysqltest_2@localhost;
+drop user mysqltest_1@localhost;
+drop user mysqltest_2@localhost;
+CREATE DATABASE db1;
+USE db1;
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1,1),(2,2);
+CREATE TABLE t2 (b INT, c INT);
+INSERT INTO t2 VALUES (1,100),(2,200);
+GRANT SELECT ON t1 TO mysqltest1@localhost;
+GRANT SELECT (b) ON t2 TO mysqltest1@localhost;
+USE db1;
+SELECT c FROM t2;
+ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
+SELECT * FROM t2;
+ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
+SELECT * FROM t1 JOIN t2 USING (b);
+ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
+DROP TABLE db1.t1, db1.t2;
+DROP USER mysqltest1@localhost;
+DROP DATABASE db1;
+End of 5.0 tests
diff --git a/mysql-test/r/grant3.result b/mysql-test/r/grant3.result
new file mode 100644
index 00000000000..cc7f46855b2
--- /dev/null
+++ b/mysql-test/r/grant3.result
@@ -0,0 +1,140 @@
+SET NAMES binary;
+drop table if exists t1;
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+create user mysqltest_1@localhost;
+grant create user on *.* to mysqltest_1@localhost;
+grant select on `my\_1`.* to mysqltest_1@localhost with grant option;
+grant select on `my\_1`.* to mysqltest_2@localhost;
+ERROR 42000: You are not allowed to create a user with GRANT
+create user mysqltest_2@localhost;
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+grant select on test.* to CUser@localhost;
+grant select on test.* to CUser@LOCALHOST;
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
+user host db select_priv
+CUser LOCALHOST test Y
+CUser localhost test Y
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
+user host db select_priv
+CUser localhost test Y
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
+user host db select_priv
+DROP USER CUser@localhost;
+DROP USER CUser@LOCALHOST;
+create table t1 (a int);
+grant select on test.t1 to CUser@localhost;
+grant select on test.t1 to CUser@LOCALHOST;
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+user host db Table_name Table_priv Column_priv
+CUser LOCALHOST test t1 Select
+CUser localhost test t1 Select
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+user host db Table_name Table_priv Column_priv
+CUser localhost test t1 Select
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+user host db Table_name Table_priv Column_priv
+DROP USER CUser@localhost;
+DROP USER CUser@LOCALHOST;
+grant select(a) on test.t1 to CUser@localhost;
+grant select(a) on test.t1 to CUser@LOCALHOST;
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+user host db Table_name Table_priv Column_priv
+CUser LOCALHOST test t1 Select
+CUser localhost test t1 Select
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+user host db Table_name Table_priv Column_priv
+CUser localhost test t1 Select
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+user host
+CUser LOCALHOST
+CUser localhost
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+user host db Table_name Table_priv Column_priv
+DROP USER CUser@localhost;
+DROP USER CUser@LOCALHOST;
+drop table t1;
+grant select on test.* to CUser2@localhost;
+grant select on test.* to CUser2@LOCALHOST;
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
+user host
+CUser2 LOCALHOST
+CUser2 localhost
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
+user host db select_priv
+CUser2 LOCALHOST test Y
+CUser2 localhost test Y
+REVOKE SELECT ON test.* FROM 'CUser2'@'LOCALHOST';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
+user host
+CUser2 LOCALHOST
+CUser2 localhost
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
+user host db select_priv
+CUser2 localhost test Y
+REVOKE SELECT ON test.* FROM 'CUser2'@'localhost';
+flush privileges;
+SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
+user host
+CUser2 LOCALHOST
+CUser2 localhost
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
+user host db select_priv
+DROP USER CUser2@localhost;
+DROP USER CUser2@LOCALHOST;
diff --git a/mysql-test/r/grant_cache.result b/mysql-test/r/grant_cache.result
index 2c6840d77d0..925a5918c1b 100644
--- a/mysql-test/r/grant_cache.result
+++ b/mysql-test/r/grant_cache.result
@@ -60,7 +60,7 @@ Variable_name Value
Qcache_hits 0
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 0
+Qcache_not_cached 5
select "user1";
user1
user1
@@ -72,7 +72,7 @@ Variable_name Value
Qcache_hits 0
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 1
+Qcache_not_cached 9
select * from t1;
a b c
1 1 1
@@ -85,7 +85,7 @@ Variable_name Value
Qcache_hits 1
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 1
+Qcache_not_cached 12
select a from t1 ;
a
1
@@ -98,7 +98,7 @@ Variable_name Value
Qcache_hits 2
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 1
+Qcache_not_cached 15
select c from t1;
c
1
@@ -111,7 +111,7 @@ Variable_name Value
Qcache_hits 3
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 1
+Qcache_not_cached 18
show grants for current_user();
Grants for @localhost
GRANT USAGE ON *.* TO ''@'localhost'
@@ -144,7 +144,7 @@ Variable_name Value
Qcache_hits 7
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 2
+Qcache_not_cached 22
select "user3";
user3
user3
@@ -168,7 +168,7 @@ Variable_name Value
Qcache_hits 7
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 7
+Qcache_not_cached 30
select "user4";
user4
user4
@@ -198,7 +198,7 @@ Variable_name Value
Qcache_hits 8
show status like "Qcache_not_cached";
Variable_name Value
-Qcache_not_cached 8
+Qcache_not_cached 34
set names binary;
delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
diff --git a/mysql-test/r/greedy_optimizer.result b/mysql-test/r/greedy_optimizer.result
new file mode 100644
index 00000000000..1da49fbedb0
--- /dev/null
+++ b/mysql-test/r/greedy_optimizer.result
@@ -0,0 +1,657 @@
+drop table if exists t1,t2,t3,t4,t5,t6,t7;
+create table t1 (
+c11 integer,c12 integer,c13 integer,c14 integer,c15 integer,c16 integer,
+primary key (c11)
+);
+create table t2 (
+c21 integer,c22 integer,c23 integer,c24 integer,c25 integer,c26 integer
+);
+create table t3 (
+c31 integer,c32 integer,c33 integer,c34 integer,c35 integer,c36 integer,
+primary key (c31)
+);
+create table t4 (
+c41 integer,c42 integer,c43 integer,c44 integer,c45 integer,c46 integer
+);
+create table t5 (
+c51 integer,c52 integer,c53 integer,c54 integer,c55 integer,c56 integer,
+primary key (c51)
+);
+create table t6 (
+c61 integer,c62 integer,c63 integer,c64 integer,c65 integer,c66 integer
+);
+create table t7 (
+c71 integer,c72 integer,c73 integer,c74 integer,c75 integer,c76 integer,
+primary key (c71)
+);
+insert into t1 values (1,2,3,4,5,6);
+insert into t1 values (2,2,3,4,5,6);
+insert into t1 values (3,2,3,4,5,6);
+insert into t2 values (1,2,3,4,5,6);
+insert into t2 values (2,2,3,4,5,6);
+insert into t2 values (3,2,3,4,5,6);
+insert into t2 values (4,2,3,4,5,6);
+insert into t2 values (5,2,3,4,5,6);
+insert into t2 values (6,2,3,4,5,6);
+insert into t3 values (1,2,3,4,5,6);
+insert into t3 values (2,2,3,4,5,6);
+insert into t3 values (3,2,3,4,5,6);
+insert into t3 values (4,2,3,4,5,6);
+insert into t3 values (5,2,3,4,5,6);
+insert into t3 values (6,2,3,4,5,6);
+insert into t3 values (7,2,3,4,5,6);
+insert into t3 values (8,2,3,4,5,6);
+insert into t3 values (9,2,3,4,5,6);
+insert into t4 values (1,2,3,4,5,6);
+insert into t4 values (2,2,3,4,5,6);
+insert into t4 values (3,2,3,4,5,6);
+insert into t4 values (4,2,3,4,5,6);
+insert into t4 values (5,2,3,4,5,6);
+insert into t4 values (6,2,3,4,5,6);
+insert into t4 values (7,2,3,4,5,6);
+insert into t4 values (8,2,3,4,5,6);
+insert into t4 values (9,2,3,4,5,6);
+insert into t4 values (10,2,3,4,5,6);
+insert into t4 values (11,2,3,4,5,6);
+insert into t4 values (12,2,3,4,5,6);
+insert into t5 values (1,2,3,4,5,6);
+insert into t5 values (2,2,3,4,5,6);
+insert into t5 values (3,2,3,4,5,6);
+insert into t5 values (4,2,3,4,5,6);
+insert into t5 values (5,2,3,4,5,6);
+insert into t5 values (6,2,3,4,5,6);
+insert into t5 values (7,2,3,4,5,6);
+insert into t5 values (8,2,3,4,5,6);
+insert into t5 values (9,2,3,4,5,6);
+insert into t5 values (10,2,3,4,5,6);
+insert into t5 values (11,2,3,4,5,6);
+insert into t5 values (12,2,3,4,5,6);
+insert into t5 values (13,2,3,4,5,6);
+insert into t5 values (14,2,3,4,5,6);
+insert into t5 values (15,2,3,4,5,6);
+insert into t6 values (1,2,3,4,5,6);
+insert into t6 values (2,2,3,4,5,6);
+insert into t6 values (3,2,3,4,5,6);
+insert into t6 values (4,2,3,4,5,6);
+insert into t6 values (5,2,3,4,5,6);
+insert into t6 values (6,2,3,4,5,6);
+insert into t6 values (7,2,3,4,5,6);
+insert into t6 values (8,2,3,4,5,6);
+insert into t6 values (9,2,3,4,5,6);
+insert into t6 values (10,2,3,4,5,6);
+insert into t6 values (11,2,3,4,5,6);
+insert into t6 values (12,2,3,4,5,6);
+insert into t6 values (13,2,3,4,5,6);
+insert into t6 values (14,2,3,4,5,6);
+insert into t6 values (15,2,3,4,5,6);
+insert into t6 values (16,2,3,4,5,6);
+insert into t6 values (17,2,3,4,5,6);
+insert into t6 values (18,2,3,4,5,6);
+insert into t7 values (1,2,3,4,5,6);
+insert into t7 values (2,2,3,4,5,6);
+insert into t7 values (3,2,3,4,5,6);
+insert into t7 values (4,2,3,4,5,6);
+insert into t7 values (5,2,3,4,5,6);
+insert into t7 values (6,2,3,4,5,6);
+insert into t7 values (7,2,3,4,5,6);
+insert into t7 values (8,2,3,4,5,6);
+insert into t7 values (9,2,3,4,5,6);
+insert into t7 values (10,2,3,4,5,6);
+insert into t7 values (11,2,3,4,5,6);
+insert into t7 values (12,2,3,4,5,6);
+insert into t7 values (13,2,3,4,5,6);
+insert into t7 values (14,2,3,4,5,6);
+insert into t7 values (15,2,3,4,5,6);
+insert into t7 values (16,2,3,4,5,6);
+insert into t7 values (17,2,3,4,5,6);
+insert into t7 values (18,2,3,4,5,6);
+insert into t7 values (19,2,3,4,5,6);
+insert into t7 values (20,2,3,4,5,6);
+insert into t7 values (21,2,3,4,5,6);
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+62
+select @@optimizer_prune_level;
+@@optimizer_prune_level
+1
+set optimizer_search_depth=63;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+63
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+set optimizer_prune_level=0;
+select @@optimizer_prune_level;
+@@optimizer_prune_level
+0
+set optimizer_search_depth=0;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+0
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+set optimizer_search_depth=1;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+1
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+set optimizer_search_depth=62;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+62
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 274.418727
+set optimizer_prune_level=1;
+select @@optimizer_prune_level;
+@@optimizer_prune_level
+1
+set optimizer_search_depth=0;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+0
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+set optimizer_search_depth=1;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+1
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+set optimizer_search_depth=62;
+select @@optimizer_search_depth;
+@@optimizer_search_depth
+62
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 821.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
+1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
+show status like 'Last_query_cost';
+Variable_name Value
+Last_query_cost 794.837037
+drop table t1,t2,t3,t4,t5,t6,t7;
diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result
index f717c16742f..053c2901509 100644
--- a/mysql-test/r/group_by.result
+++ b/mysql-test/r/group_by.result
@@ -117,7 +117,7 @@ bug_file_loc text,
bug_severity enum('blocker','critical','major','normal','minor','trivial','enhancement') DEFAULT 'blocker' NOT NULL,
bug_status enum('','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED') DEFAULT 'NEW' NOT NULL,
creation_ts datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
-delta_ts timestamp(14),
+delta_ts timestamp,
short_desc mediumtext,
long_desc mediumtext,
op_sys enum('All','Windows 3.1','Windows 95','Windows 98','Windows NT','Windows 2000','Linux','other') DEFAULT 'All' NOT NULL,
@@ -288,7 +288,7 @@ explain extended select sql_big_result spid,sum(userid) from t1 group by spid de
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using filesort
Warnings:
-Note 1003 select sql_big_result test.t1.spID AS `spid`,sum(test.t1.userID) AS `sum(userid)` from test.t1 group by test.t1.spID desc
+Note 1003 select sql_big_result `test`.`t1`.`spID` AS `spid`,sum(`test`.`t1`.`userID`) AS `sum(userid)` from `test`.`t1` group by `test`.`t1`.`spID` desc
explain select sql_big_result spid,sum(userid) from t1 group by spid desc order by null;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using filesort
@@ -303,10 +303,10 @@ spid sum(userid)
1 1
explain select sql_big_result score,count(*) from t1 group by score desc;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL score 3 NULL 8 Using index
+1 SIMPLE t1 index NULL score 3 NULL 8 Using index; Using filesort
explain select sql_big_result score,count(*) from t1 group by score desc order by null;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL score 3 NULL 8 Using index
+1 SIMPLE t1 index NULL score 3 NULL 8 Using index; Using filesort
select sql_big_result score,count(*) from t1 group by score desc;
score count(*)
3 5
@@ -440,12 +440,12 @@ create table t2 (user_id integer not null, date date);
insert into t2 values (1, '2002-06-09'),(2, '2002-06-09'),(1, '2002-06-09'),(3, '2002-06-09'),(4, '2002-06-09'),(4, '2002-06-09');
select u.gender as gender, count(distinct u.id) as dist_count, (count(distinct u.id)/5*100) as percentage from t1 u, t2 l where l.user_id = u.id group by u.gender;
gender dist_count percentage
-F 3 60.00
-M 1 20.00
+F 3 60.0000
+M 1 20.0000
select u.gender as gender, count(distinct u.id) as dist_count, (count(distinct u.id)/5*100) as percentage from t1 u, t2 l where l.user_id = u.id group by u.gender order by percentage;
gender dist_count percentage
-M 1 20.00
-F 3 60.00
+M 1 20.0000
+F 3 60.0000
drop table t1,t2;
CREATE TABLE t1 (ID1 int, ID2 int, ID int NOT NULL AUTO_INCREMENT,PRIMARY KEY(ID
));
@@ -696,7 +696,7 @@ from t1 x3, t1 x4, t1 C, t1 D where x3.a < 3 and x4.a < 4 and D.a < 4;
delete from t2 where a = 2 and b = 'val-2' order by a,b,c,d limit 30;
explain select c from t2 where a = 2 and b = 'val-2' group by c;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref PRIMARY,a PRIMARY 400 const,const 6 Using where
+1 SIMPLE t2 ref PRIMARY,a PRIMARY 402 const,const 6 Using where
select c from t2 where a = 2 and b = 'val-2' group by c;
c
val-74
@@ -745,18 +745,12 @@ CREATE TABLE t1 (id varchar(20) NOT NULL);
INSERT INTO t1 VALUES ('trans1'), ('trans2');
CREATE TABLE t2 (id varchar(20) NOT NULL, err_comment blob NOT NULL);
INSERT INTO t2 VALUES ('trans1', 'a problem');
-SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS err_comment
-FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY err_comment;
-COUNT(DISTINCT(t1.id)) err_comment
+SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS comment
+FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY comment;
+COUNT(DISTINCT(t1.id)) comment
1 NULL
1 a problem
DROP TABLE t1, t2;
-CREATE TABLE t1 (n int);
-INSERT INTO t1 VALUES (1);
-SELECT n+1 AS n FROM t1 GROUP BY n;
-n
-2
-DROP TABLE t1;
create table t1 (f1 date);
insert into t1 values('2005-06-06');
insert into t1 values('2005-06-06');
@@ -764,6 +758,14 @@ select date(left(f1+0,8)) from t1 group by 1;
date(left(f1+0,8))
2005-06-06
drop table t1;
+CREATE TABLE t1 (n int);
+INSERT INTO t1 VALUES (1);
+SELECT n+1 AS n FROM t1 GROUP BY n;
+n
+2
+Warnings:
+Warning 1052 Column 'n' in group statement is ambiguous
+DROP TABLE t1;
create table t1(f1 varchar(5) key);
insert into t1 values (1),(2);
select sql_buffer_result max(f1) is null from t1;
@@ -800,8 +802,12 @@ a
set sql_mode='';
SELECT a FROM t1 HAVING 'a' > 1;
a
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'a'
SELECT a FROM t1 HAVING "a" > 1;
a
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'a'
SELECT a FROM t1 HAVING `a` > 1;
a
2
@@ -835,3 +841,275 @@ avg(t2.f1)
SELECT avg(t2.f1) FROM t1, t2 where t2.f2 = 'SIR' GROUP BY t1.f1;
avg(t2.f1)
DROP TABLE t1, t2;
+create table t1 (c1 char(3), c2 char(3));
+create table t2 (c3 char(3), c4 char(3));
+insert into t1 values ('aaa', 'bb1'), ('aaa', 'bb2');
+insert into t2 values ('aaa', 'bb1'), ('aaa', 'bb2');
+select t1.c1 as c2 from t1, t2 where t1.c2 = t2.c4
+group by c2;
+c2
+aaa
+aaa
+Warnings:
+Warning 1052 Column 'c2' in group statement is ambiguous
+show warnings;
+Level Code Message
+Warning 1052 Column 'c2' in group statement is ambiguous
+select t1.c1 as c2 from t1, t2 where t1.c2 = t2.c4
+group by t1.c1;
+c2
+aaa
+show warnings;
+Level Code Message
+drop table t1, t2;
+CREATE TABLE t1 (a tinyint(3), b varchar(255), PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1,'-----'), (6,'Allemagne'), (17,'Autriche'),
+(25,'Belgique'), (54,'Danemark'), (62,'Espagne'), (68,'France');
+CREATE TABLE t2 (a tinyint(3), b tinyint(3), PRIMARY KEY (a), KEY b (b));
+INSERT INTO t2 VALUES (1,1), (2,1), (6,6), (18,17), (15,25), (16,25),
+(17,25), (10,54), (5,62),(3,68);
+CREATE VIEW v1 AS select t1.a, concat(t1.b,'') AS b, t1.b as real_b from t1;
+explain
+SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
+where t2.b=v1.a GROUP BY t2.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index b b 2 NULL 10 Using index
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 1 test.t2.b 1
+SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
+where t2.b=v1.a GROUP BY t2.b;
+a b real_b
+1 ----- -----
+6 Allemagne Allemagne
+17 Autriche Autriche
+25 Belgique Belgique
+54 Danemark Danemark
+62 Espagne Espagne
+68 France France
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT, key (b));
+INSERT INTO t1 VALUES (1, 1);
+INSERT INTO t1 SELECT a + 1 , MOD(a + 1 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 2 , MOD(a + 2 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 4 , MOD(a + 4 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 8 , MOD(a + 8 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 16, MOD(a + 16, 20) FROM t1;
+INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20) FROM t1;
+INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20) FROM t1;
+SELECT MIN(b), MAX(b) from t1;
+MIN(b) MAX(b)
+0 19
+EXPLAIN SELECT b, sum(1) FROM t1 GROUP BY b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL b 5 NULL 128 Using index
+EXPLAIN SELECT SQL_BIG_RESULT b, sum(1) FROM t1 GROUP BY b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL b 5 NULL 128 Using index; Using filesort
+SELECT b, sum(1) FROM t1 GROUP BY b;
+b sum(1)
+0 6
+1 7
+2 7
+3 7
+4 7
+5 7
+6 7
+7 7
+8 7
+9 6
+10 6
+11 6
+12 6
+13 6
+14 6
+15 6
+16 6
+17 6
+18 6
+19 6
+SELECT SQL_BIG_RESULT b, sum(1) FROM t1 GROUP BY b;
+b sum(1)
+0 6
+1 7
+2 7
+3 7
+4 7
+5 7
+6 7
+7 7
+8 7
+9 6
+10 6
+11 6
+12 6
+13 6
+14 6
+15 6
+16 6
+17 6
+18 6
+19 6
+DROP TABLE t1;
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
+INSERT INTO t1 VALUES (1,1),(2,1),(3,2),(4,2),(5,3),(6,3);
+SET SQL_MODE = 'ONLY_FULL_GROUP_BY';
+SELECT MAX(a)-MIN(a) FROM t1 GROUP BY b;
+MAX(a)-MIN(a)
+1
+1
+1
+SELECT CEILING(MIN(a)) FROM t1 GROUP BY b;
+CEILING(MIN(a))
+1
+3
+5
+SELECT CASE WHEN AVG(a)>=0 THEN 'Positive' ELSE 'Negative' END FROM t1
+GROUP BY b;
+CASE WHEN AVG(a)>=0 THEN 'Positive' ELSE 'Negative' END
+Positive
+Positive
+Positive
+SELECT a + 1 FROM t1 GROUP BY a;
+a + 1
+2
+3
+4
+5
+6
+7
+SELECT a + b FROM t1 GROUP BY b;
+ERROR 42000: 'test.t1.a' isn't in GROUP BY
+SELECT (SELECT t1_outer.a FROM t1 AS t1_inner GROUP BY b LIMIT 1)
+FROM t1 AS t1_outer;
+(SELECT t1_outer.a FROM t1 AS t1_inner GROUP BY b LIMIT 1)
+1
+2
+3
+4
+5
+6
+SELECT 1 FROM t1 as t1_outer GROUP BY a
+HAVING (SELECT t1_outer.a FROM t1 AS t1_inner GROUP BY b LIMIT 1);
+1
+1
+1
+1
+1
+1
+1
+SELECT (SELECT t1_outer.a FROM t1 AS t1_inner LIMIT 1)
+FROM t1 AS t1_outer GROUP BY t1_outer.b;
+ERROR 42000: 'test.t1_outer.a' isn't in GROUP BY
+SELECT 1 FROM t1 as t1_outer GROUP BY a
+HAVING (SELECT t1_outer.b FROM t1 AS t1_inner LIMIT 1);
+ERROR 42S22: Unknown column 'test.t1_outer.b' in 'field list'
+SELECT (SELECT SUM(t1_inner.a) FROM t1 AS t1_inner LIMIT 1)
+FROM t1 AS t1_outer GROUP BY t1_outer.b;
+(SELECT SUM(t1_inner.a) FROM t1 AS t1_inner LIMIT 1)
+21
+21
+21
+SELECT (SELECT SUM(t1_inner.a) FROM t1 AS t1_inner GROUP BY t1_inner.b LIMIT 1)
+FROM t1 AS t1_outer;
+(SELECT SUM(t1_inner.a) FROM t1 AS t1_inner GROUP BY t1_inner.b LIMIT 1)
+3
+3
+3
+3
+3
+3
+SELECT (SELECT SUM(t1_outer.a) FROM t1 AS t1_inner LIMIT 1)
+FROM t1 AS t1_outer GROUP BY t1_outer.b;
+ERROR 42000: 'test.t1_outer.a' isn't in GROUP BY
+SELECT 1 FROM t1 as t1_outer
+WHERE (SELECT t1_outer.b FROM t1 AS t1_inner GROUP BY t1_inner.b LIMIT 1);
+1
+1
+1
+1
+1
+1
+1
+SELECT b FROM t1 GROUP BY b HAVING CEILING(b) > 0;
+b
+1
+2
+3
+SELECT 1 FROM t1 GROUP BY b HAVING b = 2 OR b = 3 OR SUM(a) > 12;
+1
+1
+1
+SELECT 1 FROM t1 GROUP BY b HAVING ROW (b,b) = ROW (1,1);
+1
+1
+SELECT 1 FROM t1 GROUP BY b HAVING a = 2;
+ERROR 42S22: Unknown column 'a' in 'having clause'
+SELECT 1 FROM t1 GROUP BY SUM(b);
+ERROR HY000: Invalid use of group function
+SELECT b FROM t1 AS t1_outer GROUP BY a HAVING t1_outer.a IN
+(SELECT SUM(t1_inner.b)+t1_outer.b FROM t1 AS t1_inner GROUP BY t1_inner.a
+HAVING SUM(t1_inner.b)+t1_outer.b > 5);
+ERROR 42000: 'test.t1_outer.b' isn't in GROUP BY
+DROP TABLE t1;
+SET SQL_MODE = '';
+SET SQL_MODE = 'ONLY_FULL_GROUP_BY';
+create table t1(f1 int, f2 int);
+select * from t1 group by f1;
+ERROR 42000: 'test.t1.f2' isn't in GROUP BY
+select * from t1 group by f2;
+ERROR 42000: 'test.t1.f1' isn't in GROUP BY
+select * from t1 group by f1, f2;
+f1 f2
+select t1.f1,t.* from t1, t1 t group by 1;
+ERROR 42000: 'test.t.f1' isn't in GROUP BY
+drop table t1;
+SET SQL_MODE = '';
+CREATE TABLE t1(
+a INT,
+b INT NOT NULL,
+c INT NOT NULL,
+d INT,
+UNIQUE KEY (c,b)
+);
+INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
+SELECT c,b,d FROM t1 GROUP BY c,b,d;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+c b d
+1 1 50
+3 2 40
+3 1 4
+EXPLAIN SELECT c,b,d FROM t1 ORDER BY c,b,d;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
+SELECT c,b,d FROM t1 ORDER BY c,b,d;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
+SELECT c,b,d FROM t1 GROUP BY c,b;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b FROM t1 GROUP BY c,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL c 8 NULL 3 Using index
+SELECT c,b FROM t1 GROUP BY c,b;
+c b
+1 1
+3 1
+3 2
+DROP TABLE t1;
diff --git a/mysql-test/r/group_min_max.result b/mysql-test/r/group_min_max.result
new file mode 100644
index 00000000000..2e5193f8563
--- /dev/null
+++ b/mysql-test/r/group_min_max.result
@@ -0,0 +1,2309 @@
+drop table if exists t1;
+create table t1 (
+a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
+);
+insert into t1 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
+create index idx_t1_0 on t1 (a1);
+create index idx_t1_1 on t1 (a1,a2,b,c);
+create index idx_t1_2 on t1 (a1,a2,b);
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+drop table if exists t2;
+create table t2 (
+a1 char(64), a2 char(64) not null, b char(16), c char(16), d char(16), dummy char(64) default ' '
+);
+insert into t2 select * from t1;
+insert into t2 (a1, a2, b, c, d) values
+('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
+('a','a','a',NULL,'xyz'),
+('a','a','b',NULL,'xyz'),
+('a','b','a',NULL,'xyz'),
+('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
+('d','b','b',NULL,'xyz'),
+('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
+('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),
+('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
+('a','a','a',NULL,'xyz'),
+('a','a','b',NULL,'xyz'),
+('a','b','a',NULL,'xyz'),
+('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
+('d','b','b',NULL,'xyz'),
+('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
+('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz');
+create index idx_t2_0 on t2 (a1);
+create index idx_t2_1 on t2 (a1,a2,b,c);
+create index idx_t2_2 on t2 (a1,a2,b);
+analyze table t2;
+Table Op Msg_type Msg_text
+test.t2 analyze status Table is already up to date
+drop table if exists t3;
+create table t3 (
+a1 char(1), a2 char(1), b char(1), c char(4) not null, d char(3), dummy char(1) default ' '
+);
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+create index idx_t3_0 on t3 (a1);
+create index idx_t3_1 on t3 (a1,a2,b,c);
+create index idx_t3_2 on t3 (a1,a2,b);
+analyze table t3;
+Table Op Msg_type Msg_text
+test.t3 analyze status Table is already up to date
+explain select a1, min(a2) from t1 group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
+explain select a1, max(a2) from t1 group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 65 NULL 5 Using index for group-by
+explain select a1, min(a2), max(a2) from t1 group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
+explain select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+explain select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+explain select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 # NULL # Using index for group-by
+explain select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
+explain select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+explain select min(a2) from t1 group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
+explain select a2, min(c), max(c) from t1 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+select a1, min(a2) from t1 group by a1;
+a1 min(a2)
+a a
+b a
+c a
+d a
+select a1, max(a2) from t1 group by a1;
+a1 max(a2)
+a b
+b b
+c b
+d b
+select a1, min(a2), max(a2) from t1 group by a1;
+a1 min(a2) max(a2)
+a a b
+b a b
+c a b
+d a b
+select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a a111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b;
+a1 a2 b max(c) min(c)
+a a a d111 a111
+a a b h112 e112
+a b a l121 i121
+a b b p122 m122
+b a a d211 a211
+b a b h212 e212
+b b a l221 i221
+b b b p222 m222
+c a a d311 a311
+c a b h312 e312
+c b a l321 i321
+c b b p322 m322
+d a a d411 a411
+d a b h412 e412
+d b a l421 i421
+d b b p422 m422
+select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b;
+a1 a2 b max(c) min(c)
+a a NULL a999 a777
+a a a d111 a111
+a a b h112 e112
+a b a l121 i121
+a b b p122 m122
+b a a d211 a211
+b a b h212 e212
+b b a l221 i221
+b b b p222 m222
+c a NULL c999 c777
+c a a d311 a311
+c a b h312 e312
+c b a l321 i321
+c b b p322 m322
+d a a d411 a411
+d a b h412 e412
+d b a l421 i421
+d b b p422 m422
+e a a NULL NULL
+e a b NULL NULL
+select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1;
+min(a2) a1 max(a2) min(a2) a1
+a a b a a
+a b b a b
+a c b a c
+a d b a d
+select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b;
+a1 b min(c) a1 max(c) b a2 max(c) max(c)
+a a a111 a d111 a a d111 d111
+a b e112 a h112 b a h112 h112
+a a i121 a l121 a b l121 l121
+a b m122 a p122 b b p122 p122
+b a a211 b d211 a a d211 d211
+b b e212 b h212 b a h212 h212
+b a i221 b l221 a b l221 l221
+b b m222 b p222 b b p222 p222
+c a a311 c d311 a a d311 d311
+c b e312 c h312 b a h312 h312
+c a i321 c l321 a b l321 l321
+c b m322 c p322 b b p322 p322
+d a a411 d d411 a a d411 d411
+d b e412 d h412 b a h412 h412
+d a i421 d l421 a b l421 l421
+d b m422 d p422 b b p422 p422
+select min(a2) from t1 group by a1;
+min(a2)
+a
+a
+a
+a
+select a2, min(c), max(c) from t1 group by a1,a2,b;
+a2 min(c) max(c)
+a a111 d111
+a e112 h112
+b i121 l121
+b m122 p122
+a a211 d211
+a e212 h212
+b i221 l221
+b m222 p222
+a a311 d311
+a e312 h312
+b i321 l321
+b m322 p322
+a a411 d411
+a e412 h412
+b i421 l421
+b m422 p422
+explain select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a a111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+a1 max(c)
+a d111
+a h112
+a l121
+a p122
+c d311
+c h312
+c l321
+c p322
+d d411
+d h412
+d l421
+d p422
+select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a a111 d111
+a a b e112 h112
+b a a a211 d211
+b a b e212 h212
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+a1 a2 b max(c)
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+a1 a2 b max(c)
+a b a l121
+a b b p122
+b b a l221
+b b b p222
+c b a l321
+c b b p322
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a b a i121 l121
+a b b m122 p122
+b b a i221 l221
+b b b m222 p222
+c b a i321 l321
+c b b m322 p322
+d b a i421 l421
+d b b m422 p422
+select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+a1 min(c) max(c)
+b a211 d211
+b e212 h212
+b i221 l221
+b m222 p222
+c a311 d311
+c e312 h312
+c i321 l321
+c m322 p322
+d a411 d411
+d e412 h412
+d i421 l421
+d m422 p422
+select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
+a1 max(c)
+a d111
+a h112
+a l121
+a p122
+b d211
+b h212
+b l221
+b p222
+d d411
+d h412
+d l421
+d p422
+select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
+a1 a2 b max(c)
+a a NULL a999
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a NULL c999
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+a a a a111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a NULL c777 c999
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a NULL c777 c999
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+e a a NULL NULL
+e a b NULL NULL
+select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+a1 a2 b max(c)
+a a NULL a999
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+c a NULL c999
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+e a a NULL
+e a b NULL
+select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+a1 max(c)
+a a999
+a d111
+a h112
+a l121
+a p122
+c c999
+c d311
+c h312
+c l321
+c p322
+d d411
+d h412
+d l421
+d p422
+e NULL
+e NULL
+select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+a a a a111 d111
+a a b e112 h112
+b a a a211 d211
+b a b e212 h212
+c a NULL c777 c999
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+e a a NULL NULL
+e a b NULL NULL
+select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+a1 a2 b max(c)
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+a1 a2 b min(c) max(c)
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+a1 a2 b max(c)
+a b a l121
+a b b p122
+b b a l221
+b b b p222
+c b a l321
+c b b p322
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a b a i121 l121
+a b b m122 p122
+b b a i221 l221
+b b b m222 p222
+c b a i321 l321
+c b b m322 p322
+d b a i421 l421
+d b b m422 p422
+select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+a1 min(c) max(c)
+b a211 d211
+b e212 h212
+b i221 l221
+b m222 p222
+c c777 c999
+c a311 d311
+c e312 h312
+c i321 l321
+c m322 p322
+d a411 d411
+d e412 h412
+d i421 l421
+d m422 p422
+e NULL NULL
+e NULL NULL
+select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
+a1 max(c)
+a a999
+a d111
+a h112
+a l121
+a p122
+b d211
+b h212
+b l221
+b p222
+d d411
+d h412
+d l421
+d p422
+explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 5 Using where; Using index for group-by
+explain select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 5 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using where; Using index for group-by
+explain select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using where; Using index for group-by
+explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 5 Using where; Using index for group-by
+explain select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 5 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
+explain select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 range NULL idx_t3_1 6 NULL 4 Using where; Using index for group-by
+explain select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 range NULL idx_t3_1 6 NULL 4 Using where; Using index for group-by
+select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+a1 a2 b max(c) min(c)
+a a b h112 e112
+b a b h212 e212
+c a b h312 e312
+d a b h412 e412
+select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+a1 max(c) min(c)
+a h112 e112
+b h212 e212
+c h312 e312
+d h412 e412
+select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2;
+a1 a2 b max(c)
+a a b h112
+a b b p122
+b a b h212
+b b b p222
+c a b h312
+c b b p322
+d a b h412
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2;
+a1 a2 b min(c) max(c)
+a a b e112 h112
+a b b m122 p122
+b a b e212 h212
+b b b m222 p222
+c a b e312 h312
+c b b m322 p322
+d a b e412 h412
+d b b m422 p422
+select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2;
+a1 a2 max(c)
+a a h112
+a b p122
+b a h212
+b b p222
+c a h312
+c b p322
+d a h412
+d b p422
+select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+a1 a2 b max(c) min(c)
+a a b h112 e112
+b a b h212 e212
+c a b h312 e312
+d a b h412 e412
+e a b NULL NULL
+select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+a1 max(c) min(c)
+a h112 e112
+b h212 e212
+c h312 e312
+d h412 e412
+e NULL NULL
+select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2;
+a1 a2 b max(c)
+a a b h112
+a b b p122
+b a b h212
+b b b p222
+c a b h312
+c b b p322
+d a b h412
+d b b p422
+e a b NULL
+select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2;
+a1 a2 b min(c) max(c)
+a a b e112 h112
+a b b m122 p122
+b a b e212 h212
+b b b m222 p222
+c a b e312 h312
+c b b m322 p322
+d a b e412 h412
+d b b m422 p422
+e a b NULL NULL
+select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2;
+a1 a2 max(c)
+a a h112
+a b p122
+b a h212
+b b p222
+c a h312
+c b p322
+d a h412
+d b p422
+e a NULL
+select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+a1 a2 b max(c) min(c)
+a a b h112 e112
+b a b h212 e212
+c a b h312 e312
+select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+a1 max(c) min(c)
+a h112 e112
+b h212 e212
+c h312 e312
+explain select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 5 Using where; Using index for group-by
+explain select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL 5 Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
+select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+a1 a2 b min(c)
+a a NULL a777
+c a NULL c777
+select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+a1 a2 b max(c)
+a a NULL a999
+c a NULL c999
+select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2;
+a1 a2 b min(c)
+a a NULL a777
+c a NULL c777
+select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2;
+a1 a2 b max(c)
+a a NULL a999
+c a NULL c999
+select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+c a NULL c777 c999
+select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+c a NULL c777 c999
+explain select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a b111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a b211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a a b311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a b411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b;
+a1 a2 b max(c)
+a a b h112
+a b a l121
+a b b p122
+b a b h212
+b b a l221
+b b b p222
+c a b h312
+c b a l321
+c b b p322
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a b g112 h112
+a b a i121 l121
+a b b m122 p122
+b a b f212 h212
+b b a i221 l221
+b b b m222 p222
+c a b f312 h312
+c b a i321 l321
+c b b m322 p322
+d a b f412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b;
+a1 a2 b max(c)
+select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a k121
+b a a d211
+b a b h212
+b b a k221
+c a a d311
+c a b h312
+c b a j321
+d a a d411
+d a b h412
+d b a j421
+select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a a111 d111
+a a b e112 h112
+a b a i121 k121
+b a a a211 d211
+b a b e212 h212
+b b a i221 k221
+c a a a311 d311
+c a b e312 h312
+c b a i321 j321
+d a a a411 d411
+d a b e412 h412
+d b a i421 j421
+select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a b111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a b211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a a b311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a b411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a a111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a c111 d111
+a a b e112 g112
+b a a b211 d211
+b a b e212 f212
+c a a b311 d311
+c a b e312 f312
+d a a b411 d411
+d a b e412 f412
+select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a a111 c111
+b a a a211 c211
+c a a a311 c311
+d a a a411 c411
+d a b g412 g412
+d b a k421 k421
+select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a c111 d111
+a a b e112 h112
+b a a b211 d211
+b a b e212 h212
+c a a b311 d311
+c a b e312 h312
+d a a b411 d411
+d a b e412 h412
+select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a b111 d111
+a a b e112 h112
+b a a b211 d211
+b a b e212 h212
+c a a b311 d311
+c a b e312 h312
+d a a b411 d411
+d a b e412 h412
+select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a NULL c999
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a b111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a b211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a NULL c777 c999
+c a a b311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a b411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b;
+a1 a2 b max(c)
+a a b h112
+a b a l121
+a b b p122
+b a b h212
+b b a l221
+b b b p222
+c a b h312
+c b a l321
+c b b p322
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a b g112 h112
+a b a i121 l121
+a b b m122 p122
+b a b f212 h212
+b b a i221 l221
+b b b m222 p222
+c a b f312 h312
+c b a i321 l321
+c b b m322 p322
+d a b f412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b;
+a1 a2 b max(c)
+select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b;
+a1 a2 b max(c)
+a a NULL a999
+a a a d111
+a a b h112
+a b a k121
+b a a d211
+b a b h212
+b b a k221
+c a NULL c999
+c a a d311
+c a b h312
+c b a j321
+d a a d411
+d a b h412
+d b a j421
+select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+a a a a111 d111
+a a b e112 h112
+a b a i121 k121
+b a a a211 d211
+b a b e212 h212
+b b a i221 k221
+c a NULL c777 c999
+c a a a311 d311
+c a b e312 h312
+c b a i321 j321
+d a a a411 d411
+d a b e412 h412
+d b a i421 j421
+select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+a1 a2 b max(c)
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a NULL c999
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a b111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a b211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a NULL c777 c999
+c a a b311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a b411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+a1 a2 b max(c)
+a a NULL a999
+a a a d111
+a a b h112
+a b a l121
+a b b p122
+b a a d211
+b a b h212
+b b a l221
+b b b p222
+c a NULL c999
+c a a d311
+c a b h312
+c b a l321
+c b b p322
+d a a d411
+d a b h412
+d b a l421
+d b b p422
+select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+a a a a111 d111
+a a b e112 h112
+a b a i121 l121
+a b b m122 p122
+b a a a211 d211
+b a b e212 h212
+b b a i221 l221
+b b b m222 p222
+c a NULL c777 c999
+c a a a311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a a411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a c111 d111
+a a b e112 g112
+b a a b211 d211
+b a b e212 f212
+c a NULL c777 c999
+c a a b311 d311
+c a b e312 f312
+d a a b411 d411
+d a b e412 f412
+select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a NULL a777 a999
+a a a a111 c111
+b a a a211 c211
+c a a a311 c311
+d a a a411 c411
+d a b g412 g412
+d b a k421 k421
+select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a c111 d111
+a a b e112 h112
+b a a b211 d211
+b a b e212 h212
+c a NULL c777 c999
+c a a b311 d311
+c a b e312 h312
+d a a b411 d411
+d a b e412 h412
+explain select a1,a2,b,min(c),max(c) from t1
+where exists ( select * from t2 where t2.c = t1.c )
+group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
+2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+explain select a1,a2,b,min(c),max(c) from t1
+where exists ( select * from t2 where t2.c > 'b1' )
+group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+2 SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+explain select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
+select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a b e112 h112
+b a b e212 h212
+c a b e312 h312
+c b b m322 p322
+d a b e412 h412
+d b b m422 p422
+select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a c111 d111
+a a b e112 h112
+b a a b211 d211
+b a b e212 h212
+c a a b311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a b411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a b a i121 l121
+b b a i221 l221
+c b a i321 l321
+d b a i421 l421
+select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+a1 a2 b min(c)
+b b a k221
+c b a k321
+d b a k421
+select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+a1 a2 b min(c)
+b b a k221
+c b a k321
+d b a k421
+select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+a1 a2 b min(c)
+select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b;
+a1 a2 b min(c)
+select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a b e112 h112
+b a b e212 h212
+c a b e312 h312
+c b b m322 p322
+d a b e412 h412
+d b b m422 p422
+e a b NULL NULL
+select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a a a c111 d111
+a a b e112 h112
+b a a b211 d211
+b a b e212 h212
+c a NULL c777 c999
+c a a b311 d311
+c a b e312 h312
+c b a i321 l321
+c b b m322 p322
+d a a b411 d411
+d a b e412 h412
+d b a i421 l421
+d b b m422 p422
+select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+a1 a2 b min(c) max(c)
+a b a i121 l121
+b b a i221 l221
+c b a i321 l321
+d b a i421 l421
+select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+a1 a2 b min(c)
+b b a k221
+c b a k321
+d b a k421
+select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+a1 a2 b min(c)
+b b a k221
+c b a k321
+d b a k421
+select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+a1 a2 b min(c)
+explain select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL # Using where; Using index
+explain select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+a1 a2 b
+a a b
+b a b
+c a b
+c b b
+d a b
+d b b
+select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+a1 a2 b
+a b a
+b b a
+c b a
+d b a
+select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+a1 a2 b c
+a b a i121
+select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+a1 a2 b
+select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+a1 a2 b
+a a b
+b a b
+c a b
+c b b
+d a b
+d b b
+e a b
+select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+a1 a2 b
+a b a
+b b a
+c b a
+d b a
+select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+a1 a2 b c
+a b a i121
+select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+a1 a2 b
+explain select distinct a1,a2,b from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
+explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select distinct b from t1 where (a2 >= 'b') and (b = 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using where; Using index
+explain select distinct a1,a2,b from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using index for group-by
+explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select distinct b from t2 where (a2 >= 'b') and (b = 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_2 146 NULL 164 Using where; Using index
+select distinct a1,a2,b from t1;
+a1 a2 b
+a a a
+a a b
+a b a
+a b b
+b a a
+b a b
+b b a
+b b b
+c a a
+c a b
+c b a
+c b b
+d a a
+d a b
+d b a
+d b b
+select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a');
+a1 a2 b
+a b a
+b b a
+c b a
+d b a
+select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+a1 a2 b c
+a b a i121
+select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+a1 a2 b
+select distinct b from t1 where (a2 >= 'b') and (b = 'a');
+b
+a
+select distinct a1,a2,b from t2;
+a1 a2 b
+a a NULL
+a a a
+a a b
+a b a
+a b b
+b a a
+b a b
+b b a
+b b b
+c a NULL
+c a a
+c a b
+c b a
+c b b
+d a a
+d a b
+d b a
+d b b
+e a a
+e a b
+select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a');
+a1 a2 b
+a b a
+b b a
+c b a
+d b a
+select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+a1 a2 b c
+a b a i121
+select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+a1 a2 b
+select distinct b from t2 where (a2 >= 'b') and (b = 'a');
+b
+a
+select distinct t_00.a1
+from t1 t_00
+where exists ( select * from t2 where a1 = t_00.a1 );
+a1
+a
+b
+c
+d
+select distinct a1,a1 from t1;
+a1 a1
+a a
+b b
+c c
+d d
+select distinct a2,a1,a2,a1 from t1;
+a2 a1 a2 a1
+a a a a
+b a b a
+a b a b
+b b b b
+a c a c
+b c b c
+a d a d
+b d b d
+select distinct t1.a1,t2.a1 from t1,t2;
+a1 a1
+a a
+b a
+c a
+d a
+a b
+b b
+c b
+d b
+a c
+b c
+c c
+d c
+a d
+b d
+c d
+d d
+a e
+b e
+c e
+d e
+explain select distinct a1,a2,b from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
+explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
+explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
+explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
+explain select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by; Using temporary; Using filesort
+explain select distinct a1,a2,b from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using index for group-by
+explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL # Using where; Using index
+explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
+explain select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by; Using temporary; Using filesort
+select distinct a1,a2,b from t1;
+a1 a2 b
+a a a
+a a b
+a b a
+a b b
+b a a
+b a b
+b b a
+b b b
+c a a
+c a b
+c b a
+c b b
+d a a
+d a b
+d b a
+d b b
+select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+a1 a2 b
+a b a
+b b a
+c b a
+d b a
+select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+a1 a2 b c
+a b a i121
+select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+a1 a2 b
+select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+b
+a
+select distinct a1,a2,b from t2;
+a1 a2 b
+a a NULL
+a a a
+a a b
+a b a
+a b b
+b a a
+b a b
+b b a
+b b b
+c a NULL
+c a a
+c a b
+c b a
+c b b
+d a a
+d a b
+d b a
+d b b
+e a a
+e a b
+select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+a1 a2 b
+a b a
+b b a
+c b a
+d b a
+select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+a1 a2 b c
+a b a i121
+select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+a1 a2 b
+select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+b
+a
+explain select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using where; Using index
+explain select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
+explain select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 Using where; Using index
+explain select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using where; Using index
+explain select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 Using where; Using index
+select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
+count(distinct a1,a2,b)
+4
+select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+count(distinct a1,a2,b,c)
+1
+select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+count(distinct a1,a2,b)
+0
+select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
+count(distinct b)
+1
+select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
+ord(a1) + count(distinct a1,a2,b)
+104
+explain select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
+explain select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using index for group-by
+select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
+a1 a2 b concat(min(c), max(c))
+a a a a111d111
+a a b e112h112
+a b a i121l121
+a b b m122p122
+b a a a211d211
+b a b e212h212
+b b a i221l221
+b b b m222p222
+c a a a311d311
+c a b e312h312
+c b a i321l321
+c b b m322p322
+select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
+concat(a1,min(c)) b
+aa111 a
+ae112 b
+ai121 a
+am122 b
+ba211 a
+be212 b
+bi221 a
+bm222 b
+ca311 a
+ce312 b
+ci321 a
+cm322 b
+select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
+concat(a1,min(c)) b max(c)
+aa111 a d111
+ae112 b h112
+ai121 a l121
+am122 b p122
+ba211 a d211
+be212 b h212
+bi221 a l221
+bm222 b p222
+ca311 a d311
+ce312 b h312
+ci321 a l321
+cm322 b p322
+select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+concat(a1,a2) b min(c) max(c)
+aa a a111 d111
+aa b e112 h112
+ab a i121 l121
+ab b m122 p122
+ba a a211 d211
+ba b e212 h212
+bb a i221 l221
+bb b m222 p222
+ca a a311 d311
+ca b e312 h312
+cb a i321 l321
+cb b m322 p322
+select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
+concat(ord(min(b)),ord(max(b))) min(b) max(b)
+9798 a b
+9798 a b
+9798 a b
+9798 a b
+9798 a b
+9798 a b
+9798 a b
+9798 a b
+explain select a1,a2,b,d,min(c),max(c) from t1 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using temporary; Using filesort
+explain select a1,a2,b,d from t1 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using temporary; Using filesort
+explain select a1,a2,min(b),max(b) from t1
+where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 76 Using where; Using index
+explain select a1,a2,b,min(c),max(c) from t1
+where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 Using where; Using temporary; Using filesort
+explain select a1,a2,b,c from t1
+where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 Using where; Using temporary; Using filesort
+explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+explain select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 76 Using where; Using index
+explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
+a1 a2 min(b) c
+a a a a111
+explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b = 'a') group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+explain select a1,a2,b,min(c),max(c) from t2
+where (c > 'a000') and (c <= 'd999') and (c like '_8__') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
+explain select a1, a2, b, c, min(d), max(d) from t1 group by a1,a2,b,c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using temporary; Using filesort
+explain select a1,a2,count(a2) from t1 group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using index
+explain select a1,a2,count(a2) from t1 where (a1 > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 128 Using where; Using index
+explain select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 128 Using where; Using index
+explain select distinct(a1) from t1 where ord(a2) = 98;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
+select distinct(a1) from t1 where ord(a2) = 98;
+a1
+a
+b
+c
+d
+explain select a1 from t1 where a2 = 'b' group by a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using where; Using index for group-by
+select a1 from t1 where a2 = 'b' group by a1;
+a1
+a
+b
+c
+d
+explain select distinct a1 from t1 where a2 = 'b';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using where; Using index for group-by
+select distinct a1 from t1 where a2 = 'b';
+a1
+a
+b
+c
+d
+drop table t1,t2,t3;
+create table t1 (c1 int not null,c2 int not null, primary key(c1,c2));
+insert into t1 (c1,c2) values
+(10,1),(10,2),(10,3),(20,4),(20,5),(20,6),(30,7),(30,8),(30,9);
+select distinct c1, c2 from t1 order by c2;
+c1 c2
+10 1
+10 2
+10 3
+20 4
+20 5
+20 6
+30 7
+30 8
+30 9
+select c1,min(c2) as c2 from t1 group by c1 order by c2;
+c1 c2
+10 1
+20 4
+30 7
+select c1,c2 from t1 group by c1,c2 order by c2;
+c1 c2
+10 1
+10 2
+10 3
+20 4
+20 5
+20 6
+30 7
+30 8
+30 9
+drop table t1;
+CREATE TABLE t1 (a varchar(5), b int(11), PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES ('AA',1), ('AA',2), ('AA',3), ('BB',1), ('AA',4);
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+SELECT a FROM t1 WHERE a='AA' GROUP BY a;
+a
+AA
+SELECT a FROM t1 WHERE a='BB' GROUP BY a;
+a
+BB
+EXPLAIN SELECT a FROM t1 WHERE a='AA' GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref PRIMARY PRIMARY 7 const 3 Using where; Using index
+EXPLAIN SELECT a FROM t1 WHERE a='BB' GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref PRIMARY PRIMARY 7 const 1 Using where; Using index
+SELECT DISTINCT a FROM t1 WHERE a='BB';
+a
+BB
+SELECT DISTINCT a FROM t1 WHERE a LIKE 'B%';
+a
+BB
+SELECT a FROM t1 WHERE a LIKE 'B%' GROUP BY a;
+a
+BB
+DROP TABLE t1;
+CREATE TABLE t1 (
+a int(11) NOT NULL DEFAULT '0',
+b varchar(16) COLLATE latin1_general_ci NOT NULL DEFAULT '',
+PRIMARY KEY (a,b)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+CREATE PROCEDURE a(x INT)
+BEGIN
+DECLARE rnd INT;
+DECLARE cnt INT;
+WHILE x > 0 DO
+SET rnd= x % 100;
+SET cnt = (SELECT COUNT(*) FROM t1 WHERE a = rnd);
+INSERT INTO t1(a,b) VALUES (rnd, CAST(cnt AS CHAR));
+SET x= x - 1;
+END WHILE;
+END|
+CALL a(1000);
+SELECT a FROM t1 WHERE a=0;
+a
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+SELECT DISTINCT a FROM t1 WHERE a=0;
+a
+0
+SELECT COUNT(DISTINCT a) FROM t1 WHERE a=0;
+COUNT(DISTINCT a)
+1
+DROP TABLE t1;
+DROP PROCEDURE a;
+CREATE TABLE t1 (a varchar(64) NOT NULL default '', PRIMARY KEY(a));
+INSERT INTO t1 (a) VALUES
+(''), ('CENTRAL'), ('EASTERN'), ('GREATER LONDON'),
+('NORTH CENTRAL'), ('NORTH EAST'), ('NORTH WEST'), ('SCOTLAND'),
+('SOUTH EAST'), ('SOUTH WEST'), ('WESTERN');
+EXPLAIN SELECT DISTINCT a,a FROM t1 ORDER BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL PRIMARY 66 NULL 12 Using index for group-by
+SELECT DISTINCT a,a FROM t1 ORDER BY a;
+a a
+
+CENTRAL CENTRAL
+EASTERN EASTERN
+GREATER LONDON GREATER LONDON
+NORTH CENTRAL NORTH CENTRAL
+NORTH EAST NORTH EAST
+NORTH WEST NORTH WEST
+SCOTLAND SCOTLAND
+SOUTH EAST SOUTH EAST
+SOUTH WEST SOUTH WEST
+WESTERN WESTERN
+DROP TABLE t1;
+CREATE TABLE t1 (id1 INT, id2 INT);
+CREATE TABLE t2 (id2 INT, id3 INT, id5 INT);
+CREATE TABLE t3 (id3 INT, id4 INT);
+CREATE TABLE t4 (id4 INT);
+CREATE TABLE t5 (id5 INT, id6 INT);
+CREATE TABLE t6 (id6 INT);
+INSERT INTO t1 VALUES(1,1);
+INSERT INTO t2 VALUES(1,1,1);
+INSERT INTO t3 VALUES(1,1);
+INSERT INTO t4 VALUES(1);
+INSERT INTO t5 VALUES(1,1);
+INSERT INTO t6 VALUES(1);
+SELECT * FROM
+t1
+NATURAL JOIN
+(t2 JOIN (t3 NATURAL JOIN t4, t5 NATURAL JOIN t6)
+ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5));
+id2 id1 id3 id5 id4 id3 id6 id5
+1 1 1 1 1 1 1 1
+SELECT * FROM
+t1
+NATURAL JOIN
+(((t3 NATURAL JOIN t4) join (t5 NATURAL JOIN t6) on t3.id4 = t5.id5) JOIN t2
+ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5));
+id2 id1 id4 id3 id6 id5 id3 id5
+1 1 1 1 1 1 1 1
+SELECT * FROM t1 NATURAL JOIN ((t3 join (t5 NATURAL JOIN t6)) JOIN t2);
+id2 id1 id3 id4 id6 id5 id3 id5
+1 1 1 1 1 1 1 1
+SELECT * FROM
+(t2 JOIN (t3 NATURAL JOIN t4, t5 NATURAL JOIN t6)
+ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5))
+NATURAL JOIN
+t1;
+id2 id3 id5 id4 id3 id6 id5 id1
+1 1 1 1 1 1 1 1
+SELECT * FROM
+(t2 JOIN ((t3 NATURAL JOIN t4) join (t5 NATURAL JOIN t6)))
+NATURAL JOIN
+t1;
+id2 id3 id5 id4 id3 id6 id5 id1
+1 1 1 1 1 1 1 1
+DROP TABLE t1,t2,t3,t4,t5,t6;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b), KEY b (b));
+INSERT INTO t1 VALUES (1,1),(1,2),(1,0),(1,3);
+explain SELECT MAX(b), a FROM t1 WHERE b < 2 AND a = 1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY,b PRIMARY 8 NULL 1 Using where; Using index for group-by
+SELECT MAX(b), a FROM t1 WHERE b < 2 AND a = 1 GROUP BY a;
+MAX(b) a
+1 1
+SELECT MIN(b), a FROM t1 WHERE b > 1 AND a = 1 GROUP BY a;
+MIN(b) a
+2 1
+CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c));
+INSERT INTO t2 SELECT a,b,b FROM t1;
+explain SELECT MIN(c) FROM t2 WHERE b = 2 and a = 1 and c > 1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range PRIMARY PRIMARY 12 NULL 1 Using where; Using index for group-by
+SELECT MIN(c) FROM t2 WHERE b = 2 and a = 1 and c > 1 GROUP BY a;
+MIN(c)
+2
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT, b INT, INDEX (a,b));
+INSERT INTO t1 (a, b) VALUES (1,1), (1,2), (1,3), (1,4), (1,5),
+(2,2), (2,3), (2,1), (3,1), (4,1), (4,2), (4,3), (4,4), (4,5), (4,6);
+EXPLAIN SELECT max(b), a FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL a 5 NULL 8 Using index for group-by
+FLUSH STATUS;
+SELECT max(b), a FROM t1 GROUP BY a;
+max(b) a
+5 1
+3 2
+1 3
+6 4
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 0
+EXPLAIN SELECT max(b), a FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL a 5 NULL 8 Using index for group-by
+FLUSH STATUS;
+CREATE TABLE t2 SELECT max(b), a FROM t1 GROUP BY a;
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 0
+FLUSH STATUS;
+SELECT * FROM (SELECT max(b), a FROM t1 GROUP BY a) b;
+max(b) a
+5 1
+3 2
+1 3
+6 4
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 0
+FLUSH STATUS;
+(SELECT max(b), a FROM t1 GROUP BY a) UNION
+(SELECT max(b), a FROM t1 GROUP BY a);
+max(b) a
+5 1
+3 2
+1 3
+6 4
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 16
+Handler_read_next 0
+EXPLAIN (SELECT max(b), a FROM t1 GROUP BY a) UNION
+(SELECT max(b), a FROM t1 GROUP BY a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 range NULL a 5 NULL 8 Using index for group-by
+2 UNION t1 range NULL a 5 NULL 8 Using index for group-by
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
+EXPLAIN SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
+FROM t1 AS t1_outer;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1_outer index NULL a 10 NULL 15 Using index
+2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
+EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE EXISTS
+(SELECT max(b) FROM t1 GROUP BY a HAVING a < 2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1_outer index NULL a 10 NULL 15 Using index
+2 SUBQUERY t1 index NULL a 10 NULL 8 Using index
+EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE
+(SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) > 12;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
+EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE
+a IN (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1_outer index NULL a 10 NULL 15 Using where; Using index
+2 DEPENDENT SUBQUERY t1 index NULL a 10 NULL 8 Using index
+EXPLAIN SELECT 1 FROM t1 AS t1_outer GROUP BY a HAVING
+a > (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1_outer range NULL a 5 NULL 8 Using index for group-by
+2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
+EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2
+ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
+AND t1_outer1.b = t1_outer2.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index
+1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index
+2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
+EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
+FROM t1 AS t1_outer) x2 FROM t1 AS t1_outer2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using index
+2 SUBQUERY t1_outer index NULL a 10 NULL 15 Using index
+3 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
+CREATE TABLE t3 LIKE t1;
+FLUSH STATUS;
+INSERT INTO t3 SELECT a,MAX(b) FROM t1 GROUP BY a;
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 0
+DELETE FROM t3;
+FLUSH STATUS;
+INSERT INTO t3 SELECT 1, (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2)
+FROM t1 LIMIT 1;
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 0
+FLUSH STATUS;
+DELETE FROM t3 WHERE (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) > 10000;
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 0
+FLUSH STATUS;
+DELETE FROM t3 WHERE (SELECT (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) x
+FROM t1) > 10000;
+Warnings:
+Error 1242 Subquery returns more than 1 row
+SHOW STATUS LIKE 'handler_read__e%';
+Variable_name Value
+Handler_read_key 8
+Handler_read_next 1
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (a int, INDEX idx(a));
+INSERT INTO t1 VALUES
+(4), (2), (1), (2), (4), (2), (1), (4),
+(4), (2), (1), (2), (2), (4), (1), (4);
+EXPLAIN SELECT DISTINCT(a) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx 5 NULL 9 Using index for group-by
+SELECT DISTINCT(a) FROM t1;
+a
+1
+2
+4
+EXPLAIN SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL idx 5 NULL 9 Using index for group-by
+SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
+a
+1
+2
+4
+DROP TABLE t1;
diff --git a/mysql-test/r/handler.result b/mysql-test/r/handler.result
index e88d359e0ef..dc3750e16ea 100644
--- a/mysql-test/r/handler.result
+++ b/mysql-test/r/handler.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1,t3,t4,t5;
create table t1 (a int, b char(10), key a(a), key b(a,b));
insert into t1 values
(17,"ddd"),(18,"eee"),(19,"fff"),(19,"yyy"),
@@ -463,3 +463,42 @@ Table Op Msg_type Msg_text
test.t1 optimize status OK
proceed with the normal connection
drop table t1;
+create table t1 (c1 int);
+insert into t1 values (14397);
+flush tables with read lock;
+drop table t1;
+ERROR HY000: Can't execute the query because you have a conflicting read lock
+send the below to another connection, do not wait for the result
+drop table t1;
+proceed with the normal connection
+select * from t1;
+c1
+14397
+unlock tables;
+read the result from the other connection
+proceed with the normal connection
+select * from t1;
+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 HY000: 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 HY000: 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/have_bug25714.require b/mysql-test/r/have_bug25714.require
new file mode 100644
index 00000000000..5acc378dcf7
--- /dev/null
+++ b/mysql-test/r/have_bug25714.require
@@ -0,0 +1,2 @@
+have_bug25714_exe
+1
diff --git a/mysql-test/r/have_eucjpms.require b/mysql-test/r/have_eucjpms.require
new file mode 100644
index 00000000000..f35621b2c1a
--- /dev/null
+++ b/mysql-test/r/have_eucjpms.require
@@ -0,0 +1,2 @@
+Collation Charset Id Default Compiled Sortlen
+eucjpms_japanese_ci eucjpms 97 Yes Yes 1
diff --git a/mysql-test/r/have_federated_db.require b/mysql-test/r/have_federated_db.require
new file mode 100644
index 00000000000..f4c521a8f35
--- /dev/null
+++ b/mysql-test/r/have_federated_db.require
@@ -0,0 +1,2 @@
+Variable_name Value
+have_federated_engine YES
diff --git a/mysql-test/r/have_isam.require b/mysql-test/r/have_log_bin.require
index 9b4142361ed..d4fd77e4f8d 100644
--- a/mysql-test/r/have_isam.require
+++ b/mysql-test/r/have_log_bin.require
@@ -1,2 +1,2 @@
Variable_name Value
-have_isam YES
+log_bin ON
diff --git a/mysql-test/r/have_mysql_upgrade.result b/mysql-test/r/have_mysql_upgrade.result
new file mode 100644
index 00000000000..952bea420f9
--- /dev/null
+++ b/mysql-test/r/have_mysql_upgrade.result
@@ -0,0 +1,2 @@
+have_mysql_upgrade
+1
diff --git a/mysql-test/r/have_ndb_status_ok.require b/mysql-test/r/have_ndb_status_ok.require
new file mode 100644
index 00000000000..8a82871234b
--- /dev/null
+++ b/mysql-test/r/have_ndb_status_ok.require
@@ -0,0 +1,2 @@
+ndb_status_ok
+YES
diff --git a/mysql-test/r/have_perror.require b/mysql-test/r/have_perror.require
new file mode 100644
index 00000000000..260687c87f0
--- /dev/null
+++ b/mysql-test/r/have_perror.require
@@ -0,0 +1,2 @@
+have_perror
+1
diff --git a/mysql-test/r/have_openssl.require b/mysql-test/r/have_ssl.require
index dae48a472b5..9bdffdf0c13 100644
--- a/mysql-test/r/have_openssl.require
+++ b/mysql-test/r/have_ssl.require
@@ -1,2 +1,2 @@
Variable_name Value
-have_openssl YES
+have_ssl YES
diff --git a/mysql-test/r/have_udf.require b/mysql-test/r/have_udf.require
new file mode 100644
index 00000000000..2d21f65e4ac
--- /dev/null
+++ b/mysql-test/r/have_udf.require
@@ -0,0 +1,2 @@
+Variable_name Value
+have_dynamic_loading YES
diff --git a/mysql-test/r/have_udf_example.require b/mysql-test/r/have_udf_example.require
new file mode 100644
index 00000000000..e60fab1dbe0
--- /dev/null
+++ b/mysql-test/r/have_udf_example.require
@@ -0,0 +1,2 @@
+have_udf_example_lib
+1
diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result
index 7b4340a133b..f113304c767 100644
--- a/mysql-test/r/having.result
+++ b/mysql-test/r/having.result
@@ -1,4 +1,4 @@
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3;
create table t1 (a int);
select count(a) as b from t1 where a=0 having b > 0;
b
@@ -12,7 +12,7 @@ explain extended select count(a) as b from t1 where a=0 having b >=0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
Warnings:
-Note 1003 select count(test.t1.a) AS `b` from test.t1 where (test.t1.a = 0) having (count(test.t1.a) >= 0)
+Note 1003 select count('0') AS `b` from `test`.`t1` where 0 having (`b` >= 0)
drop table t1;
CREATE TABLE t1 (
raw_id int(10) NOT NULL default '0',
@@ -177,3 +177,250 @@ FROM t1 INNER JOIN t2 ON t1.a=t2.a LEFT JOIN t3 ON t2.b=t3.b
GROUP BY t1.a, t2.b HAVING MAX(t3.flag)=0;
a
DROP TABLE t1,t2,t3;
+create table t1 (col1 int, col2 varchar(5), col_t1 int);
+create table t2 (col1 int, col2 varchar(5), col_t2 int);
+create table t3 (col1 int, col2 varchar(5), col_t3 int);
+insert into t1 values(10,'hello',10);
+insert into t1 values(20,'hello',20);
+insert into t1 values(30,'hello',30);
+insert into t1 values(10,'bye',10);
+insert into t1 values(10,'sam',10);
+insert into t1 values(10,'bob',10);
+insert into t2 select * from t1;
+insert into t3 select * from t1;
+select count(*) from t1 group by col1 having col1 = 10;
+count(*)
+4
+select count(*) as count_col1 from t1 group by col1 having col1 = 10;
+count_col1
+4
+select count(*) as count_col1 from t1 as tmp1 group by col1 having col1 = 10;
+count_col1
+4
+select count(*) from t1 group by col2 having col2 = 'hello';
+count(*)
+3
+select count(*) from t1 group by col2 having col1 = 10;
+ERROR 42S22: Unknown column 'col1' in 'having clause'
+select col1 as count_col1 from t1 as tmp1 group by col1 having col1 = 10;
+count_col1
+10
+select col1 as count_col1 from t1 as tmp1 group by col1 having count_col1 = 10;
+count_col1
+10
+select col1 as count_col1 from t1 as tmp1 group by count_col1 having col1 = 10;
+count_col1
+10
+select col1 as count_col1 from t1 as tmp1 group by count_col1 having count_col1 = 10;
+count_col1
+10
+select col1 as count_col1,col2 from t1 as tmp1 group by col1,col2 having col1 = 10;
+count_col1 col2
+10 bob
+10 bye
+10 hello
+10 sam
+select col1 as count_col1,col2 from t1 as tmp1 group by col1,col2 having count_col1 = 10;
+count_col1 col2
+10 bob
+10 bye
+10 hello
+10 sam
+select col1 as count_col1,col2 from t1 as tmp1 group by col1,col2 having col2 = 'hello';
+count_col1 col2
+10 hello
+20 hello
+30 hello
+select col1 as count_col1,col2 as group_col2 from t1 as tmp1 group by col1,col2 having group_col2 = 'hello';
+count_col1 group_col2
+10 hello
+20 hello
+30 hello
+select sum(col1) as co12 from t1 group by col2 having col2 10;
+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 '10' at line 1
+select sum(col1) as co2, count(col2) as cc from t1 group by col1 having col1 =10;
+co2 cc
+40 4
+select t2.col2 from t2 group by t2.col1, t2.col2 having t1.col1 <= 10;
+ERROR 42S22: Unknown column 't1.col1' in 'having clause'
+select t1.col1 from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2 having t2.col1 <= 10);
+col1
+10
+20
+30
+10
+10
+10
+select t1.col1 from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2
+having t2.col1 <=
+(select min(t3.col1) from t3));
+col1
+10
+20
+30
+10
+10
+10
+select t1.col1 from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2 having t1.col1 <= 10);
+col1
+10
+10
+10
+10
+select t1.col1 as tmp_col from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2 having tmp_col <= 10);
+tmp_col
+10
+10
+10
+10
+select t1.col1 from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2 having col_t1 <= 10);
+col1
+10
+10
+10
+10
+select sum(col1) from t1
+group by col_t1
+having (select col_t1 from t2 where col_t1 = col_t2 order by col_t2 limit 1);
+sum(col1)
+40
+20
+30
+select t1.col1 from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2 having col_t1 <= 10)
+having col_t1 <= 20;
+ERROR 42S22: Unknown column 'col_t1' in 'having clause'
+select t1.col1 from t1
+where t1.col2 in
+(select t2.col2 from t2
+group by t2.col1, t2.col2 having col_t1 <= 10)
+group by col_t1
+having col_t1 <= 20;
+col1
+10
+select col_t1, sum(col1) from t1
+group by col_t1
+having col_t1 > 10 and
+exists (select sum(t2.col1) from t2
+group by t2.col2 having t2.col2 > 'b');
+col_t1 sum(col1)
+20 20
+30 30
+select sum(col1) from t1
+group by col_t1
+having col_t1 in (select sum(t2.col1) from t2
+group by t2.col2, t2.col1 having t2.col1 = t1.col1);
+ERROR 42S22: Unknown column 't1.col1' in 'having clause'
+select sum(col1) from t1
+group by col_t1
+having col_t1 in (select sum(t2.col1) from t2
+group by t2.col2, t2.col1 having t2.col1 = col_t1);
+sum(col1)
+40
+20
+30
+select t1.col1, t2.col1 from t1, t2 where t1.col1 = t2.col1
+group by t1.col1, t2.col1 having col1 = 2;
+ERROR 23000: Column 'col1' in having clause is ambiguous
+select t1.col1*10+t2.col1 from t1,t2 where t1.col1=t2.col1
+group by t1.col1, t2.col1 having col1 = 2;
+ERROR 23000: Column 'col1' in having clause is ambiguous
+drop table t1, t2, t3;
+create table t1 (s1 int);
+insert into t1 values (1),(2),(3);
+select count(*) from t1 group by s1 having s1 is null;
+count(*)
+select s1*0 as s1 from t1 group by s1 having s1 <> 0;
+s1
+0
+0
+0
+Warnings:
+Warning 1052 Column 's1' in group statement is ambiguous
+Warning 1052 Column 's1' in having clause is ambiguous
+select s1*0 from t1 group by s1 having s1 = 0;
+s1*0
+select s1 from t1 group by 1 having 1 = 0;
+s1
+select count(s1) from t1 group by s1 having count(1+1)=2;
+count(s1)
+select count(s1) from t1 group by s1 having s1*0=0;
+count(s1)
+1
+1
+1
+select * from t1 a, t1 b group by a.s1 having s1 is null;
+ERROR 23000: Column 's1' in having clause is ambiguous
+drop table t1;
+create table t1 (s1 char character set latin1 collate latin1_german1_ci);
+insert into t1 values ('ü'),('y');
+Warnings:
+Warning 1265 Data truncated for column 's1' at row 1
+select s1,count(s1) from t1
+group by s1 collate latin1_swedish_ci having s1 = 'y';
+s1 count(s1)
+y 1
+drop table t1;
+DROP SCHEMA IF EXISTS HU;
+CREATE SCHEMA HU ;
+USE HU ;
+CREATE TABLE STAFF
+(EMPNUM CHAR(3) NOT NULL UNIQUE,
+EMPNAME CHAR(20),
+GRADE DECIMAL(4),
+CITY CHAR(15));
+CREATE TABLE PROJ
+(PNUM CHAR(3) NOT NULL UNIQUE,
+PNAME CHAR(20),
+PTYPE CHAR(6),
+BUDGET DECIMAL(9),
+CITY CHAR(15));
+INSERT INTO STAFF VALUES ('E1','Alice',12,'Deale');
+INSERT INTO STAFF VALUES ('E2','Betty',10,'Vienna');
+INSERT INTO STAFF VALUES ('E3','Carmen',13,'Vienna');
+INSERT INTO STAFF VALUES ('E4','Don',12,'Deale');
+INSERT INTO STAFF VALUES ('E5','Ed',13,'Akron');
+INSERT INTO PROJ VALUES ('P1','MXSS','Design',10000,'Deale');
+INSERT INTO PROJ VALUES ('P2','CALM','Code',30000,'Vienna');
+INSERT INTO PROJ VALUES ('P3','SDP','Test',30000,'Tampa');
+INSERT INTO PROJ VALUES ('P4','SDP','Design',20000,'Deale');
+INSERT INTO PROJ VALUES ('P5','IRM','Test',10000,'Vienna');
+INSERT INTO PROJ VALUES ('P6','PAYR','Design',50000,'Deale');
+SELECT EMPNUM, GRADE*1000
+FROM HU.STAFF WHERE GRADE * 1000 >
+ANY (SELECT SUM(BUDGET) FROM HU.PROJ
+GROUP BY CITY, PTYPE
+HAVING HU.PROJ.CITY = HU.STAFF.CITY);
+EMPNUM GRADE*1000
+E3 13000
+DROP SCHEMA HU;
+USE test;
+create table t1(f1 int);
+select f1 from t1 having max(f1)=f1;
+f1
+select f1 from t1 group by f1 having max(f1)=f1;
+f1
+set session sql_mode='ONLY_FULL_GROUP_BY';
+select f1 from t1 having max(f1)=f1;
+ERROR 42000: non-grouping field 'f1' is used in HAVING clause
+select f1 from t1 group by f1 having max(f1)=f1;
+f1
+set session sql_mode='';
+drop table t1;
diff --git a/mysql-test/r/heap.result b/mysql-test/r/heap.result
index b19ccca2f44..906c431b834 100644
--- a/mysql-test/r/heap.result
+++ b/mysql-test/r/heap.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1,t2,t3;
create table t1 (a int not null,b int not null, primary key (a)) engine=heap comment="testing heaps" avg_row_length=100 min_rows=1 max_rows=100;
insert into t1 values(1,1),(2,2),(3,3),(4,4);
delete from t1 where a=1 or a=0;
@@ -40,7 +40,7 @@ a b
4 4
drop table t1;
create table t1 (a int not null) engine=heap;
-insert into t1 values (869751),(736494),(226312),(802616);
+insert into t1 values (869751),(736494),(226312),(802616),(728912);
select * from t1 where a > 736494;
a
869751
@@ -249,16 +249,425 @@ a
3
2
drop table t1;
+set storage_engine=HEAP;
+create table t1 (v varchar(10), c char(10), t varchar(50));
+insert into t1 values('+ ', '+ ', '+ ');
+set @a=repeat(' ',20);
+insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
+Warnings:
+Note 1265 Data truncated for column 'v' at row 1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+ *+*+ *
+*+ *+*+ *
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` varchar(50) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+create table t2 like t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` varchar(50) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+create table t3 select * from t1;
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` varchar(50) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+alter table t1 modify c varchar(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` varchar(50) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+alter table t1 modify v char(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` varchar(50) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+alter table t1 modify t varchar(10);
+Warnings:
+Warning 1265 Data truncated for column 't' at row 2
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` varchar(10) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+*+*+ *
+*+*+*+ *
+drop table t1,t2,t3;
+create table t1 (v varchar(10), c char(10), t varchar(50), key(v), key(c), key(t(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` varchar(50) default NULL,
+ KEY `v` (`v`),
+ KEY `c` (`c`),
+ KEY `t` (`t`(10))
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+select count(*) from t1;
+count(*)
+270
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where c='a';
+count(*)
+10
+select count(*) from t1 where t='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where c='a ';
+count(*)
+10
+select count(*) from t1 where t='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where c like 'a%';
+count(*)
+11
+select count(*) from t1 where t like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const 10 Using where
+explain select count(*) from t1 where c='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c c 11 const 10 Using where
+explain select count(*) from t1 where t='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref t t 13 const 10 Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL v NULL NULL NULL 271 Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const 10 Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const 10 Using where
+alter table t1 add unique(v);
+ERROR 23000: Duplicate entry '{ ' for key 1
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a' order by length(concat('*',v,'*',c,'*',t,'*'));
+qq
+*a*a*a*
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const 10 Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result trim(v),count(t) from t1 group by v limit 10;
+trim(v) count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result trim(v),count(c) from t1 group by v limit 10;
+trim(v) count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(*) from t1 group by c limit 10;
+c count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(*) from t1 group by t limit 10;
+t count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result trim(t),count(t) from t1 group by t limit 10;
+trim(t) count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+drop table t1;
+create table t1 (a char(10), unique (a));
+insert into t1 values ('a');
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a' for key 1
+alter table t1 modify a varchar(10);
+insert into t1 values ('a '),('a '),('a '),('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+update t1 set a='a ' where a like 'a ';
+update t1 set a='a ' where a like 'a ';
+drop table t1;
+create table t1 (v varchar(10), c char(10), t varchar(50), key using btree (v), key using btree (c), key using btree (t(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` varchar(50) default NULL,
+ KEY `v` USING BTREE (`v`),
+ KEY `c` USING BTREE (`c`),
+ KEY `t` USING BTREE (`t`(10))
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+select count(*) from t1;
+count(*)
+270
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where c='a';
+count(*)
+10
+select count(*) from t1 where t='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where c='a ';
+count(*)
+10
+select count(*) from t1 where t='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+explain select count(*) from t1 where c='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c c 11 const # Using where
+explain select count(*) from t1 where t='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref t t 13 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 13 NULL # Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+alter table t1 add unique(v);
+ERROR 23000: Duplicate entry '{ ' for key 1
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a' order by length(concat('*',v,'*',c,'*',t,'*'));
+qq
+*a*a*a*
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where
+drop table t1;
+create table t1 (a char(10), unique using btree (a)) engine=heap;
+insert into t1 values ('a');
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a' for key 1
+alter table t1 modify a varchar(10);
+insert into t1 values ('a '),('a '),('a '),('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+update t1 set a='a ' where a like 'a ';
+update t1 set a='a ' where a like 'a ';
+drop table t1;
+create table t1 (v varchar(10), c char(10), t varchar(50), key(v(5)), key(c(5)), key(t(5)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` varchar(50) default NULL,
+ KEY `v` (`v`(5)),
+ KEY `c` (`c`(5)),
+ KEY `t` (`t`(5))
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(65530), key(v(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(65530) default NULL,
+ KEY `v` (`v`(10))
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+insert into t1 values(repeat('a',65530));
+select length(v) from t1 where v=repeat('a',65530);
+length(v)
+65530
+drop table t1;
+set storage_engine=MyISAM;
create table t1 (a bigint unsigned auto_increment primary key, b int,
key (b, a)) engine=heap;
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
+insert t1 (b) values (1),(1),(1),(1),(1),(1),(1),(1);
select * from t1;
a b
1 1
@@ -272,14 +681,7 @@ a b
drop table t1;
create table t1 (a int not null, b int not null auto_increment,
primary key(a, b), key(b)) engine=heap;
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
+insert t1 (a) values (1),(1),(1),(1),(1),(1),(1),(1);
select * from t1;
a b
1 1
@@ -291,6 +693,9 @@ a b
1 7
1 8
drop table t1;
+create table t1 (a int not null, b int not null auto_increment,
+primary key(a, b)) engine=heap;
+ERROR 42000: Incorrect table definition; there can be only one auto column and it must be defined as a key
create table t1 (c char(255), primary key(c(90)));
insert into t1 values ("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
insert into t1 values ("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
@@ -306,3 +711,23 @@ select * from t1 where a = 0;
a
0
drop table t1;
+create table t1 (c char(10)) engine=memory;
+create table t2 (c varchar(10)) engine=memory;
+show table status like 't_';
+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 MEMORY 10 Fixed 0 11 0 # 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 0 12 0 # 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+drop table t1, t2;
+CREATE TABLE t1(a VARCHAR(1), b VARCHAR(2), c VARCHAR(256),
+KEY(a), KEY(b), KEY(c)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('a','aa',REPEAT('a', 256)),('a','aa',REPEAT('a',256));
+SELECT COUNT(*) FROM t1 WHERE a='a';
+COUNT(*)
+2
+SELECT COUNT(*) FROM t1 WHERE b='aa';
+COUNT(*)
+2
+SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256);
+COUNT(*)
+2
+DROP TABLE t1;
diff --git a/mysql-test/r/heap_btree.result b/mysql-test/r/heap_btree.result
index 639fe1ff897..c20dfbe80d2 100644
--- a/mysql-test/r/heap_btree.result
+++ b/mysql-test/r/heap_btree.result
@@ -40,7 +40,7 @@ a b
4 4
drop table t1;
create table t1 (a int not null) engine=heap;
-insert into t1 values (869751),(736494),(226312),(802616);
+insert into t1 values (869751),(736494),(226312),(802616),(728912);
select * from t1 where a > 736494;
a
869751
@@ -73,7 +73,7 @@ engine=heap;
insert into t1 values (1,1),(2,2),(1,3),(2,4),(2,5),(2,6);
explain select * from t1 where x=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref x x 4 const 1 Using where
+1 SIMPLE t1 ref x x 4 const 1
select * from t1 where x=1;
x y
1 1
@@ -134,7 +134,7 @@ a b
1 1
explain select * from tx where b=x;
id select_type table type possible_keys key key_len ref rows Extra
-x SIMPLE tx ref b b x const x Using where
+x SIMPLE tx ref b b x const x
drop table t1;
create table t1 (id int unsigned not null, primary key using BTREE (id)) engine=HEAP;
insert into t1 values(1);
@@ -248,7 +248,7 @@ a
DROP TABLE t1;
create table t1(a int not null, key using btree(a)) engine=heap;
insert into t1 values (2), (2), (2), (1), (1), (3), (3), (3), (3);
-select a from t1 where a > 2;
+select a from t1 where a > 2 order by a;
a
3
3
@@ -258,7 +258,7 @@ delete from t1 where a < 4;
select a from t1 order by a;
a
insert into t1 values (2), (2), (2), (1), (1), (3), (3), (3), (3);
-select a from t1 where a > 4;
+select a from t1 where a > 4 order by a;
a
delete from t1 where a > 4;
select a from t1 order by a;
@@ -272,7 +272,7 @@ a
3
3
3
-select a from t1 where a > 3;
+select a from t1 where a > 3 order by a;
a
delete from t1 where a >= 2;
select a from t1 order by a;
@@ -315,3 +315,25 @@ a
1
DROP TABLE t1;
End of 4.1 tests
+CREATE TABLE t1(val INT, KEY USING BTREE(val)) ENGINE=memory;
+INSERT INTO t1 VALUES(0);
+SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1';
+INDEX_LENGTH
+21
+UPDATE t1 SET val=1;
+SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1';
+INDEX_LENGTH
+21
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES(NULL),(NULL);
+DROP TABLE t1;
+create table t1(a varchar(255), b varchar(255),
+key using btree (a,b)) engine=memory;
+insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0);
+select * from t1 where a is null;
+a b
+NULL NULL
+NULL 1
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/heap_hash.result b/mysql-test/r/heap_hash.result
index 11b280997e5..cb47573b502 100644
--- a/mysql-test/r/heap_hash.result
+++ b/mysql-test/r/heap_hash.result
@@ -40,7 +40,7 @@ a b
4 4
drop table t1;
create table t1 (a int not null) engine=heap;
-insert into t1 values (869751),(736494),(226312),(802616);
+insert into t1 values (869751),(736494),(226312),(802616),(728912);
select * from t1 where a > 736494;
a
869751
@@ -291,28 +291,28 @@ insert into t1 (name) values ('Matt'), ('Lilu'), ('Corbin'), ('Carly'),
insert into t2 select * from t1;
explain select * from t1 where name='matt';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 20 const 1 Using where
+1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 22 const 1 Using where
explain select * from t2 where name='matt';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 20 const 1 Using where
+1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 22 const 1 Using where
explain select * from t1 where name='Lilu';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 20 const 1 Using where
+1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 22 const 1 Using where
explain select * from t2 where name='Lilu';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 20 const 1 Using where
+1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 22 const 1 Using where
explain select * from t1 where name='Phil';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 20 const 1 Using where
+1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 22 const 1 Using where
explain select * from t2 where name='Phil';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 20 const 1 Using where
+1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 22 const 1 Using where
explain select * from t1 where name='Lilu';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 20 const 1 Using where
+1 SIMPLE t1 ref heap_idx,btree_idx btree_idx 22 const 1 Using where
explain select * from t2 where name='Lilu';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 20 const 1 Using where
+1 SIMPLE t2 ref btree_idx,heap_idx btree_idx 22 const 1 Using where
insert into t1 (name) select name from t2;
insert into t1 (name) select name from t2;
insert into t1 (name) select name from t2;
@@ -325,7 +325,7 @@ count(*)
7
explain select * from t1 ignore index (btree_idx) where name='matt';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref heap_idx heap_idx 20 const 7 Using where
+1 SIMPLE t1 ref heap_idx heap_idx 22 const 7 Using where
show index from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 id NULL 91 NULL NULL HASH
@@ -353,8 +353,8 @@ t3 1 a 1 a NULL NULL NULL NULL HASH
t3 1 a 2 b NULL 13 NULL NULL HASH
explain select * from t1 ignore key(btree_idx), t3 where t1.name='matt' and t3.a = concat('',t1.name) and t3.b=t1.name;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref heap_idx heap_idx 20 const 7 Using where
-1 SIMPLE t3 ref a a 40 func,const 7 Using where
+1 SIMPLE t1 ref heap_idx heap_idx 22 const 7 Using where
+1 SIMPLE t3 ref a a 44 func,const 7 Using where
drop table t1, t2, t3;
create temporary table t1 ( a int, index (a) ) engine=memory;
insert into t1 values (1),(2),(3),(4),(5);
@@ -366,3 +366,19 @@ explain select a from t1 where a in (1,3);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range a a 5 NULL 4 Using where
drop table t1;
+End of 4.1 tests
+CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+col2 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('A', 'A');
+INSERT INTO t1 VALUES('A ', 'A ');
+ERROR 23000: Duplicate entry 'A -A ' for key 1
+DROP TABLE t1;
+CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+col2 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('A', 'A');
+INSERT INTO t1 VALUES('A ', 'A ');
+ERROR 23000: Duplicate entry 'A -A ' for key 1
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/help.result b/mysql-test/r/help.result
index 690d7dee5dc..de8ed249528 100644
--- a/mysql-test/r/help.result
+++ b/mysql-test/r/help.result
@@ -1,32 +1,48 @@
insert into mysql.help_category(help_category_id,name)values(10001,'impossible_category_1');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @category1_id:= 10001;
@category1_id:= 10001
10001
insert into mysql.help_category(help_category_id,name)values(10002,'impossible_category_2');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @category2_id:= 10002;
@category2_id:= 10002
10002
insert into mysql.help_category(help_category_id,name,parent_category_id)values(10003,'impossible_category_3',@category2_id);
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @category3_id:= 10003;
@category3_id:= 10003
10003
insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10101,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @topic1_id:= 10101;
@topic1_id:= 10101
10101
insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10102,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @topic2_id:= 10102;
@topic2_id:= 10102
10102
insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10103,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @topic3_id:= 10103;
@topic3_id:= 10103
10103
insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10104,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @topic4_id:= 10104;
@topic4_id:= 10104
10104
insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10105,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7');
+Warnings:
+Warning 1364 Field 'url' doesn't have a default value
select @topic5_id:= 10105;
@topic5_id:= 10105
10105
diff --git a/mysql-test/r/im_daemon_life_cycle.result b/mysql-test/r/im_daemon_life_cycle.result
new file mode 100644
index 00000000000..1a0741e7caf
--- /dev/null
+++ b/mysql-test/r/im_daemon_life_cycle.result
@@ -0,0 +1,26 @@
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+SHOW INSTANCES;
+instance_name status
+mysqld1 online
+mysqld2 offline
+Killing the process...
+Waiting...
+Success: the process was restarted.
+Success: server is ready to accept connection on socket.
+
+--------------------------------------------------------------------
+-- Test for BUG#12751
+--------------------------------------------------------------------
+START INSTANCE mysqld2;
+Success: the process has been started.
+Killing the process...
+Waiting...
+Success: the process was restarted.
+Success: server is ready to accept connection on socket.
+SHOW INSTANCE STATUS mysqld1;
+instance_name status version
+mysqld1 STATE VERSION
+STOP INSTANCE mysqld2;
+Success: the process has been stopped.
diff --git a/mysql-test/r/im_life_cycle.result b/mysql-test/r/im_life_cycle.result
new file mode 100644
index 00000000000..a9ad85d5947
--- /dev/null
+++ b/mysql-test/r/im_life_cycle.result
@@ -0,0 +1,73 @@
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+SHOW INSTANCES;
+instance_name status
+mysqld1 online
+mysqld2 offline
+
+--------------------------------------------------------------------
+-- 1.1.2.
+--------------------------------------------------------------------
+START INSTANCE mysqld2;
+Success: the process has been started.
+SHOW VARIABLES LIKE 'port';
+Variable_name Value
+port IM_MYSQLD2_PORT
+
+--------------------------------------------------------------------
+-- 1.1.3.
+--------------------------------------------------------------------
+STOP INSTANCE mysqld2;
+Success: the process has been stopped.
+
+--------------------------------------------------------------------
+-- 1.1.4.
+--------------------------------------------------------------------
+START INSTANCE mysqld3;
+ERROR HY000: Bad instance name. Check that the instance with such a name exists
+START INSTANCE mysqld1;
+ERROR HY000: The instance is already started
+
+--------------------------------------------------------------------
+-- 1.1.5.
+--------------------------------------------------------------------
+STOP INSTANCE mysqld3;
+ERROR HY000: Bad instance name. Check that the instance with such a name exists
+
+--------------------------------------------------------------------
+-- 1.1.6.
+--------------------------------------------------------------------
+Killing the process...
+Waiting...
+Success: the process was restarted.
+SHOW INSTANCES;
+instance_name status
+mysqld1 online
+mysqld2 offline
+
+--------------------------------------------------------------------
+-- 1.1.7.
+--------------------------------------------------------------------
+START INSTANCE mysqld2;
+Success: the process has been started.
+Killing the process...
+Waiting...
+Success: the process was killed.
+
+--------------------------------------------------------------------
+-- 1.1.8.
+--------------------------------------------------------------------
+SHOW INSTANCE STATUS;
+ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
+
+--------------------------------------------------------------------
+-- BUG#12813
+--------------------------------------------------------------------
+START INSTANCE mysqld1,mysqld2,mysqld3;
+ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
+STOP INSTANCE mysqld1,mysqld2,mysqld3;
+ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
+STOP INSTANCE mysqld2;
+ERROR HY000: Cannot stop instance. Perhaps the instance is not started, or was started manually, so IM cannot find the pidfile.
+End of 5.0 tests
diff --git a/mysql-test/r/im_options_set.result b/mysql-test/r/im_options_set.result
new file mode 100644
index 00000000000..f7b7e8eaef7
--- /dev/null
+++ b/mysql-test/r/im_options_set.result
@@ -0,0 +1,22 @@
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+SHOW INSTANCES;
+instance_name status
+mysqld1 online
+mysqld2 offline
+SET mysqld1.server_id = 11;
+server_id =11
+server_id = 2
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+SET mysqld2.server_id = 12;
+server_id =11
+server_id =12
+FLUSH INSTANCES;
+server_id =11
+server_id =12
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
diff --git a/mysql-test/r/im_options_unset.result b/mysql-test/r/im_options_unset.result
new file mode 100644
index 00000000000..2ab775e611a
--- /dev/null
+++ b/mysql-test/r/im_options_unset.result
@@ -0,0 +1,17 @@
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+SHOW INSTANCES;
+instance_name status
+mysqld1 online
+mysqld2 offline
+UNSET mysqld1.server_id;
+server_id = 2
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+UNSET mysqld2.server_id;
+FLUSH INSTANCES;
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
diff --git a/mysql-test/r/im_utils.result b/mysql-test/r/im_utils.result
new file mode 100644
index 00000000000..626f24b4635
--- /dev/null
+++ b/mysql-test/r/im_utils.result
@@ -0,0 +1,96 @@
+SHOW VARIABLES LIKE 'server_id';
+Variable_name Value
+server_id 1
+SHOW INSTANCES;
+instance_name status
+mysqld1 online
+mysqld2 offline
+SHOW INSTANCE OPTIONS mysqld1;
+option_name value
+instance_name VALUE
+mysqld-path VALUE
+socket VALUE
+pid-file VALUE
+port VALUE
+datadir VALUE
+log VALUE
+log-error VALUE
+log-slow-queries VALUE
+language VALUE
+character-sets-dir VALUE
+basedir VALUE
+server_id VALUE
+skip-stack-trace VALUE
+skip-innodb VALUE
+skip-ndbcluster VALUE
+skip-bdb VALUE
+SHOW INSTANCE OPTIONS mysqld2;
+option_name value
+instance_name VALUE
+mysqld-path VALUE
+nonguarded VALUE
+socket VALUE
+pid-file VALUE
+port VALUE
+datadir VALUE
+log VALUE
+log-error VALUE
+log-slow-queries VALUE
+language VALUE
+character-sets-dir VALUE
+basedir VALUE
+server_id VALUE
+skip-stack-trace VALUE
+skip-innodb VALUE
+skip-ndbcluster VALUE
+skip-bdb VALUE
+START INSTANCE mysqld2;
+Success: the process has been started.
+STOP INSTANCE mysqld2;
+Success: the process has been stopped.
+SHOW mysqld1 LOG FILES;
+Logfile Path File size
+ERROR LOG PATH FILE_SIZE
+GENERAL LOG PATH FILE_SIZE
+SLOW LOG PATH FILE_SIZE
+SHOW mysqld2 LOG FILES;
+Logfile Path File size
+ERROR LOG PATH FILE_SIZE
+GENERAL LOG PATH FILE_SIZE
+SLOW LOG PATH FILE_SIZE
+SHOW mysqld1 LOG ERROR 10;
+Log
+LOG_DATA
+SHOW mysqld1 LOG SLOW 10;
+Log
+LOG_DATA
+SHOW mysqld1 LOG GENERAL 10;
+Log
+LOG_DATA
+SHOW mysqld1 LOG ERROR 10, 2;
+Log
+LOG_DATA
+SHOW mysqld1 LOG SLOW 10, 2;
+Log
+LOG_DATA
+SHOW mysqld1 LOG GENERAL 10, 2;
+Log
+LOG_DATA
+SHOW mysqld2 LOG ERROR 10;
+Log
+LOG_DATA
+SHOW mysqld2 LOG SLOW 10;
+Log
+LOG_DATA
+SHOW mysqld2 LOG GENERAL 10;
+Log
+LOG_DATA
+SHOW mysqld2 LOG ERROR 10, 2;
+Log
+LOG_DATA
+SHOW mysqld2 LOG SLOW 10, 2;
+Log
+LOG_DATA
+SHOW mysqld2 LOG GENERAL 10, 2;
+Log
+LOG_DATA
diff --git a/mysql-test/r/index_merge.result b/mysql-test/r/index_merge.result
new file mode 100644
index 00000000000..15aa636d740
--- /dev/null
+++ b/mysql-test/r/index_merge.result
@@ -0,0 +1,518 @@
+drop table if exists t0, t1, t2, t3, t4;
+create table t0
+(
+key1 int not null,
+INDEX i1(key1)
+);
+alter table t0 add key2 int not null, add index i2(key2);
+alter table t0 add key3 int not null, add index i3(key3);
+alter table t0 add key4 int not null, add index i4(key4);
+alter table t0 add key5 int not null, add index i5(key5);
+alter table t0 add key6 int not null, add index i6(key6);
+alter table t0 add key7 int not null, add index i7(key7);
+alter table t0 add key8 int not null, add index i8(key8);
+update t0 set key2=key1,key3=key1,key4=key1,key5=key1,key6=key1,key7=key1,key8=1024-key1;
+analyze table t0;
+Table Op Msg_type Msg_text
+test.t0 analyze status OK
+explain select * from t0 where key1 < 3 or key1 > 1020;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 range i1 i1 4 NULL 78 Using where
+explain
+select * from t0 where key1 < 3 or key2 > 1020;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 45 Using sort_union(i1,i2); Using where
+select * from t0 where key1 < 3 or key2 > 1020;
+key1 key2 key3 key4 key5 key6 key7 key8
+1 1 1 1 1 1 1 1023
+2 2 2 2 2 2 2 1022
+1021 1021 1021 1021 1021 1021 1021 3
+1022 1022 1022 1022 1022 1022 1022 2
+1023 1023 1023 1023 1023 1023 1023 1
+1024 1024 1024 1024 1024 1024 1024 0
+explain select * from t0 where key1 < 3 or key2 <4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 7 Using sort_union(i1,i2); Using where
+explain
+select * from t0 where (key1 > 30 and key1<35) or (key2 >32 and key2 < 40);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 11 Using sort_union(i1,i2); Using where
+select * from t0 where (key1 > 30 and key1<35) or (key2 >32 and key2 < 40);
+key1 key2 key3 key4 key5 key6 key7 key8
+31 31 31 31 31 31 31 993
+32 32 32 32 32 32 32 992
+33 33 33 33 33 33 33 991
+34 34 34 34 34 34 34 990
+35 35 35 35 35 35 35 989
+36 36 36 36 36 36 36 988
+37 37 37 37 37 37 37 987
+38 38 38 38 38 38 38 986
+39 39 39 39 39 39 39 985
+explain select * from t0 ignore index (i2) where key1 < 3 or key2 <4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1 NULL NULL NULL 1024 Using where
+explain select * from t0 where (key1 < 3 or key2 <4) and key3 = 50;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ref i1,i2,i3 i3 4 const 1 Using where
+explain select * from t0 use index (i1,i2) where (key1 < 3 or key2 <4) and key3 = 50;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 7 Using sort_union(i1,i2); Using where
+explain select * from t0 where (key1 > 1 or key2 > 2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
+explain select * from t0 force index (i1,i2) where (key1 > 1 or key2 > 2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 1024 Using sort_union(i1,i2); Using where
+explain
+select * from t0 where key1<3 or key2<3 or (key1>5 and key1<8) or
+(key1>10 and key1<12) or (key2>100 and key2<110);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 17 Using sort_union(i1,i2); Using where
+explain select * from t0 where key2 = 45 or key1 <=> null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 range i1,i2 i2 4 NULL 1 Using where
+explain select * from t0 where key2 = 45 or key1 is not null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
+explain select * from t0 where key2 = 45 or key1 is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ref i2 i2 4 const 1
+explain select * from t0 where key2=10 or key3=3 or key4 <=> null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i2,i3,i4 i2,i3 4,4 NULL 2 Using union(i2,i3); Using where
+explain select * from t0 where key2=10 or key3=3 or key4 is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i2,i3 i2,i3 4,4 NULL 2 Using union(i2,i3); Using where
+explain select key1 from t0 where (key1 <=> null) or (key2 < 5) or
+(key3=10) or (key4 <=> null);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i4 i2,i3 4,4 NULL 6 Using sort_union(i2,i3); Using where
+explain select key1 from t0 where (key1 <=> null) or (key1 < 5) or
+(key3=10) or (key4 <=> null);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i3,i4 i1,i3 4,4 NULL 6 Using sort_union(i1,i3); Using where
+explain select * from t0 where
+(key1 < 3 or key2 < 3) and (key3 < 4 or key4 < 4) and (key5 < 5 or key6 < 5);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i4,i5,i6 i1,i2 4,4 NULL 6 Using sort_union(i1,i2); Using where
+explain
+select * from t0 where (key1 < 3 or key2 < 6) and (key1 < 7 or key3 < 4);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3 i1,i2 4,4 NULL 9 Using sort_union(i1,i2); Using where
+select * from t0 where (key1 < 3 or key2 < 6) and (key1 < 7 or key3 < 4);
+key1 key2 key3 key4 key5 key6 key7 key8
+1 1 1 1 1 1 1 1023
+2 2 2 2 2 2 2 1022
+3 3 3 3 3 3 3 1021
+4 4 4 4 4 4 4 1020
+5 5 5 5 5 5 5 1019
+explain select * from t0 where
+(key1 < 3 or key2 < 3) and (key3 < 4 or key4 < 4) and (key5 < 2 or key6 < 2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i4,i5,i6 i1,i2 4,4 NULL 6 Using sort_union(i1,i2); Using where
+explain select * from t0 where
+(key1 < 3 or key2 < 3) and (key3 < 100);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 range i1,i2,i3 i3 4 NULL 95 Using where
+explain select * from t0 where
+(key1 < 3 or key2 < 3) and (key3 < 1000);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1,i2,i3 NULL NULL NULL 1024 Using where
+explain select * from t0 where
+((key1 < 4 or key2 < 4) and (key2 <5 or key3 < 4))
+or
+key2 > 5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1,i2,i3 NULL NULL NULL 1024 Using where
+explain select * from t0 where
+((key1 < 4 or key2 < 4) and (key2 <5 or key3 < 4))
+or
+key1 < 7;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3 i1,i2 4,4 NULL 10 Using sort_union(i1,i2); Using where
+select * from t0 where
+((key1 < 4 or key2 < 4) and (key2 <5 or key3 < 4))
+or
+key1 < 7;
+key1 key2 key3 key4 key5 key6 key7 key8
+1 1 1 1 1 1 1 1023
+2 2 2 2 2 2 2 1022
+3 3 3 3 3 3 3 1021
+4 4 4 4 4 4 4 1020
+5 5 5 5 5 5 5 1019
+6 6 6 6 6 6 6 1018
+explain select * from t0 where
+((key1 < 4 or key2 < 4) and (key3 <5 or key5 < 4))
+or
+((key5 < 5 or key6 < 6) and (key7 <7 or key8 < 4));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i5,i6,i7,i8 i1,i2,i5,i6 4,4,4,4 NULL 19 Using sort_union(i1,i2,i5,i6); Using where
+explain select * from t0 where
+((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+or
+((key7 <7 or key8 < 4) and (key5 < 5 or key6 < 6));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i5,i6,i7,i8 i3,i5,i7,i8 4,4,4,4 NULL 20 Using sort_union(i3,i5,i7,i8); Using where
+explain select * from t0 where
+((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+or
+((key3 <7 or key5 < 2) and (key5 < 5 or key6 < 6));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i5,i6 i3,i5 4,4 NULL 11 Using sort_union(i3,i5); Using where
+explain select * from t0 where
+((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+or
+(((key3 <7 and key7 < 6) or key5 < 2) and (key5 < 5 or key6 < 6));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i5,i6,i7 i3,i5 4,4 NULL 11 Using sort_union(i3,i5); Using where
+explain select * from t0 where
+((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+or
+((key3 >=5 or key5 < 2) and (key5 < 5 or key6 < 6));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1,i2,i3,i5,i6 NULL NULL NULL 1024 Using where
+explain select * from t0 force index(i1, i2, i3, i4, i5, i6 ) where
+((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+or
+((key3 >=5 or key5 < 2) and (key5 < 5 or key6 < 6));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2,i3,i5,i6 i3,i5 0,4 NULL 1024 Using sort_union(i3,i5); Using where
+select * from t0 where key1 < 5 or key8 < 4 order by key1;
+key1 key2 key3 key4 key5 key6 key7 key8
+1 1 1 1 1 1 1 1023
+2 2 2 2 2 2 2 1022
+3 3 3 3 3 3 3 1021
+4 4 4 4 4 4 4 1020
+1021 1021 1021 1021 1021 1021 1021 3
+1022 1022 1022 1022 1022 1022 1022 2
+1023 1023 1023 1023 1023 1023 1023 1
+1024 1024 1024 1024 1024 1024 1024 0
+explain
+select * from t0 where key1 < 5 or key8 < 4 order by key1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i8 i1,i8 4,4 NULL 9 Using sort_union(i1,i8); Using where; Using filesort
+create table t2 like t0;
+insert into t2 select * from t0;
+alter table t2 add index i1_3(key1, key3);
+alter table t2 add index i2_3(key2, key3);
+alter table t2 drop index i1;
+alter table t2 drop index i2;
+alter table t2 add index i321(key3, key2, key1);
+explain select key3 from t2 where key1 = 100 or key2 = 100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index_merge i1_3,i2_3 i1_3,i2_3 4,4 NULL 2 Using sort_union(i1_3,i2_3); Using where
+explain select key3 from t2 where key1 <100 or key2 < 100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index i1_3,i2_3 i321 12 NULL 1024 Using where; Using index
+explain select key7 from t2 where key1 <100 or key2 < 100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL i1_3,i2_3 NULL NULL NULL 1024 Using where
+create table t4 (
+key1a int not null,
+key1b int not null,
+key2 int not null,
+key2_1 int not null,
+key2_2 int not null,
+key3 int not null,
+index i1a (key1a, key1b),
+index i1b (key1b, key1a),
+index i2_1(key2, key2_1),
+index i2_2(key2, key2_1)
+);
+insert into t4 select key1,key1,key1 div 10, key1 % 10, key1 % 10, key1 from t0;
+select * from t4 where key1a = 3 or key1b = 4;
+key1a key1b key2 key2_1 key2_2 key3
+3 3 0 3 3 3
+4 4 0 4 4 4
+explain select * from t4 where key1a = 3 or key1b = 4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 index_merge i1a,i1b i1a,i1b 4,4 NULL 2 Using sort_union(i1a,i1b); Using where
+explain select * from t4 where key2 = 1 and (key2_1 = 1 or key3 = 5);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ref i2_1,i2_2 i2_1 4 const 10 Using where
+explain select * from t4 where key2 = 1 and (key2_1 = 1 or key2_2 = 5);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ref i2_1,i2_2 i2_1 4 const 10 Using where
+explain select * from t4 where key2_1 = 1 or key2_2 = 5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 1024 Using where
+create table t1 like t0;
+insert into t1 select * from t0;
+explain select * from t0 left join t1 on (t0.key1=t1.key1)
+where t0.key1=3 or t0.key2=4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where
+1 SIMPLE t1 ref i1 i1 4 test.t0.key1 1
+select * from t0 left join t1 on (t0.key1=t1.key1)
+where t0.key1=3 or t0.key2=4;
+key1 key2 key3 key4 key5 key6 key7 key8 key1 key2 key3 key4 key5 key6 key7 key8
+3 3 3 3 3 3 3 1021 3 3 3 3 3 3 3 1021
+4 4 4 4 4 4 4 1020 4 4 4 4 4 4 4 1020
+explain
+select * from t0,t1 where (t0.key1=t1.key1) and ( t0.key1=3 or t0.key2=4);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where
+1 SIMPLE t1 ref i1 i1 4 test.t0.key1 1
+explain
+select * from t0,t1 where (t0.key1=t1.key1) and
+(t0.key1=3 or t0.key2=4) and t1.key1<200;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
+1 SIMPLE t1 ref i1 i1 4 test.t0.key1 1
+explain
+select * from t0,t1 where (t0.key1=t1.key1) and
+(t0.key1=3 or t0.key2<4) and t1.key1=2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ref i1,i2 i1 4 const 1 Using where
+1 SIMPLE t1 ref i1 i1 4 const 1
+explain select * from t0,t1 where t0.key1 = 5 and
+(t1.key1 = t0.key1 or t1.key8 = t0.key1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ref i1 i1 4 const 1
+1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 2 Using union(i1,i8); Using where
+explain select * from t0,t1 where t0.key1 < 3 and
+(t1.key1 = t0.key1 or t1.key8 = t0.key1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 range i1 i1 4 NULL 3 Using where
+1 SIMPLE t1 ALL i1,i8 NULL NULL NULL 1024 Range checked for each record (index map: 0x81)
+explain select * from t1 where key1=3 or key2=4
+union select * from t1 where key1<4 or key3=5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 index_merge i1,i2 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where
+2 UNION t1 index_merge i1,i3 i1,i3 4,4 NULL 5 Using sort_union(i1,i3); Using where
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
+explain select * from (select * from t1 where key1 = 3 or key2 =3) as Z where key8 >5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 1
+2 DERIVED t1 index_merge i1,i2 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where; Using index
+create table t3 like t0;
+insert into t3 select * from t0;
+alter table t3 add key9 int not null, add index i9(key9);
+alter table t3 add keyA int not null, add index iA(keyA);
+alter table t3 add keyB int not null, add index iB(keyB);
+alter table t3 add keyC int not null, add index iC(keyC);
+update t3 set key9=key1,keyA=key1,keyB=key1,keyC=key1;
+explain select * from t3 where
+key1=1 or key2=2 or key3=3 or key4=4 or
+key5=5 or key6=6 or key7=7 or key8=8 or
+key9=9 or keyA=10 or keyB=11 or keyC=12;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index_merge i1,i2,i3,i4,i5,i6,i7,i8,i9,iA,iB,iC i1,i2,i3,i4,i5,i6,i7,i8,i9,iA,iB,iC 4,4,4,4,4,4,4,4,4,4,4,4 NULL 12 Using union(i1,i2,i3,i4,i5,i6,i7,i8,i9,iA,iB,iC); Using where
+select * from t3 where
+key1=1 or key2=2 or key3=3 or key4=4 or
+key5=5 or key6=6 or key7=7 or key8=8 or
+key9=9 or keyA=10 or keyB=11 or keyC=12;
+key1 key2 key3 key4 key5 key6 key7 key8 key9 keyA keyB keyC
+1 1 1 1 1 1 1 1023 1 1 1 1
+2 2 2 2 2 2 2 1022 2 2 2 2
+3 3 3 3 3 3 3 1021 3 3 3 3
+4 4 4 4 4 4 4 1020 4 4 4 4
+5 5 5 5 5 5 5 1019 5 5 5 5
+6 6 6 6 6 6 6 1018 6 6 6 6
+7 7 7 7 7 7 7 1017 7 7 7 7
+9 9 9 9 9 9 9 1015 9 9 9 9
+10 10 10 10 10 10 10 1014 10 10 10 10
+11 11 11 11 11 11 11 1013 11 11 11 11
+12 12 12 12 12 12 12 1012 12 12 12 12
+1016 1016 1016 1016 1016 1016 1016 8 1016 1016 1016 1016
+explain select * from t0 where key1 < 3 or key2 < 4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 7 Using sort_union(i1,i2); Using where
+select * from t0 where key1 < 3 or key2 < 4;
+key1 key2 key3 key4 key5 key6 key7 key8
+1 1 1 1 1 1 1 1023
+2 2 2 2 2 2 2 1022
+3 3 3 3 3 3 3 1021
+update t0 set key8=123 where key1 < 3 or key2 < 4;
+select * from t0 where key1 < 3 or key2 < 4;
+key1 key2 key3 key4 key5 key6 key7 key8
+1 1 1 1 1 1 1 123
+2 2 2 2 2 2 2 123
+3 3 3 3 3 3 3 123
+delete from t0 where key1 < 3 or key2 < 4;
+select * from t0 where key1 < 3 or key2 < 4;
+key1 key2 key3 key4 key5 key6 key7 key8
+select count(*) from t0;
+count(*)
+1021
+drop table t4;
+create table t4 (a int);
+insert into t4 values (1),(4),(3);
+set @save_join_buffer_size=@@join_buffer_size;
+set join_buffer_size= 4000;
+explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+where (A.key1 < 500000 or A.key2 < 3)
+and (B.key1 < 500000 or B.key2 < 3);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
+1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
+select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+where (A.key1 < 500000 or A.key2 < 3)
+and (B.key1 < 500000 or B.key2 < 3);
+max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+10240
+update t0 set key1=1;
+explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+where (A.key1 = 1 or A.key2 = 1)
+and (B.key1 = 1 or B.key2 = 1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where
+1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where
+select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+where (A.key1 = 1 or A.key2 = 1)
+and (B.key1 = 1 or B.key2 = 1);
+max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+8194
+alter table t0 add filler1 char(200), add filler2 char(200), add filler3 char(200);
+update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500;
+explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+from t0 as A, t0 as B
+where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
+and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
+1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
+select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+from t0 as A, t0 as B
+where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
+and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
+max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+8186
+set join_buffer_size= @save_join_buffer_size;
+drop table t0, t1, t2, t3, t4;
+CREATE TABLE t1 (
+cola char(3) not null, colb char(3) not null, filler char(200),
+key(cola), key(colb)
+);
+INSERT INTO t1 VALUES ('foo','bar', 'ZZ'),('fuz','baz', 'ZZ');
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+select count(*) from t1;
+count(*)
+8704
+explain select * from t1 WHERE cola = 'foo' AND colb = 'bar';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge cola,colb cola,colb 3,3 NULL 24 Using intersect(cola,colb); Using where
+explain select * from t1 force index(cola,colb) WHERE cola = 'foo' AND colb = 'bar';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge cola,colb cola,colb 3,3 NULL 24 Using intersect(cola,colb); Using where
+drop table t1;
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (
+a int, b int,
+filler1 char(200), filler2 char(200),
+key(a),key(b)
+);
+insert into t1 select @v:= A.a, @v, 't1', 'filler2' from t0 A, t0 B, t0 C;
+create table t2 like t1;
+create table t3 (
+a int, b int,
+filler1 char(200), filler2 char(200),
+key(a),key(b)
+) engine=merge union=(t1,t2);
+explain select * from t1 where a=1 and b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge a,b a,b 5,5 NULL # Using intersect(a,b); Using where
+explain select * from t3 where a=1 and b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index_merge a,b a,b 5,5 NULL # Using intersect(a,b); Using where
+drop table t3;
+drop table t0, t1, t2;
+CREATE TABLE t1(a INT);
+INSERT INTO t1 VALUES(1);
+CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b));
+INSERT INTO t2(a,b) VALUES
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(1,2);
+LOCK TABLES t1 WRITE, t2 WRITE;
+INSERT INTO t2(a,b) VALUES(1,2);
+SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1;
+a
+1
+1
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+CREATE TABLE `t1` (
+`a` int(11) DEFAULT NULL,
+`filler` char(200) DEFAULT NULL,
+`b` int(11) DEFAULT NULL,
+KEY `a` (`a`),
+KEY `b` (`b`)
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+insert into t1 values
+(0, 'filler', 0), (1, 'filler', 1), (2, 'filler', 2), (3, 'filler', 3),
+(4, 'filler', 4), (5, 'filler', 5), (6, 'filler', 6), (7, 'filler', 7),
+(8, 'filler', 8), (9, 'filler', 9), (0, 'filler', 0), (1, 'filler', 1),
+(2, 'filler', 2), (3, 'filler', 3), (4, 'filler', 4), (5, 'filler', 5),
+(6, 'filler', 6), (7, 'filler', 7), (8, 'filler', 8), (9, 'filler', 9),
+(10, 'filler', 10), (11, 'filler', 11), (12, 'filler', 12), (13, 'filler', 13),
+(14, 'filler', 14), (15, 'filler', 15), (16, 'filler', 16), (17, 'filler', 17),
+(18, 'filler', 18), (19, 'filler', 19), (4, '5 ', 0), (5, '4 ', 0),
+(4, '4 ', 0), (4, 'qq ', 5), (5, 'qq ', 4), (4, 'zz ', 4);
+create table t2(
+`a` int(11) DEFAULT NULL,
+`filler` char(200) DEFAULT NULL,
+`b` int(11) DEFAULT NULL,
+KEY USING BTREE (`a`),
+KEY USING BTREE (`b`)
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+insert into t2 select * from t1;
+must use sort-union rather than union:
+explain select * from t1 where a=4 or b=4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge a,b a,b 5,5 NULL # Using sort_union(a,b); Using where
+select * from t1 where a=4 or b=4;
+a filler b
+4 4 0
+4 5 0
+4 filler 4
+4 filler 4
+4 qq 5
+4 zz 4
+5 qq 4
+select * from t1 ignore index(a,b) where a=4 or b=4;
+a filler b
+4 4 0
+4 5 0
+4 filler 4
+4 filler 4
+4 qq 5
+4 zz 4
+5 qq 4
+must use union, not sort-union:
+explain select * from t2 where a=4 or b=4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index_merge a,b a,b 5,5 NULL # Using union(a,b); Using where
+select * from t2 where a=4 or b=4;
+a filler b
+4 4 0
+4 5 0
+4 filler 4
+4 filler 4
+4 qq 5
+4 zz 4
+5 qq 4
+drop table t1, t2;
diff --git a/mysql-test/r/index_merge_bdb.result b/mysql-test/r/index_merge_bdb.result
new file mode 100644
index 00000000000..3113bf95d3a
--- /dev/null
+++ b/mysql-test/r/index_merge_bdb.result
@@ -0,0 +1,136 @@
+drop table if exists t1;
+create table t1 (
+pk int primary key,
+key1 int,
+key2 int,
+filler char(200),
+filler2 char(200),
+index(key1),
+index(key2)
+) engine=bdb;
+select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 );
+pk key1 key2 filler filler2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+9 9 9 filler-data filler-data-2
+10 10 10 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+5 5 5 filler-data filler-data-2
+6 6 6 filler-data filler-data-2
+7 7 7 filler-data filler-data-2
+8 8 8 filler-data filler-data-2
+set @maxv=1000;
+select * from t1 where
+(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+or key1=18 or key1=60;
+pk key1 key2 filler filler2
+18 18 18 filler-data filler-data-2
+60 60 60 filler-data filler-data-2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+select * from t1 where
+(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+or key1 < 3 or key1 > @maxv-11;
+pk key1 key2 filler filler2
+990 990 990 filler-data filler-data-2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+select * from t1 where
+(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+or
+(key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10);
+pk key1 key2 filler filler2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+select * from t1 where
+(pk > 10 and pk < 15) or (pk >= 50 and pk < 55 )
+or
+(key1 < 5) or (key1 > @maxv-10);
+pk key1 key2 filler filler2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+drop table t1;
diff --git a/mysql-test/r/index_merge_innodb.result b/mysql-test/r/index_merge_innodb.result
new file mode 100644
index 00000000000..c0c850ee310
--- /dev/null
+++ b/mysql-test/r/index_merge_innodb.result
@@ -0,0 +1,284 @@
+drop table if exists t1,t2;
+create table t1
+(
+key1 int not null,
+key2 int not null,
+INDEX i1(key1),
+INDEX i2(key2)
+) engine=innodb;
+explain select * from t1 where key1 < 5 or key2 > 197;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge i1,i2 i1,i2 4,4 NULL 8 Using sort_union(i1,i2); Using where
+select * from t1 where key1 < 5 or key2 > 197;
+key1 key2
+0 200
+1 199
+2 198
+3 197
+4 196
+explain select * from t1 where key1 < 3 or key2 > 195;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge i1,i2 i1,i2 4,4 NULL 8 Using sort_union(i1,i2); Using where
+select * from t1 where key1 < 3 or key2 > 195;
+key1 key2
+0 200
+1 199
+2 198
+3 197
+4 196
+alter table t1 add str1 char (255) not null,
+add zeroval int not null default 0,
+add str2 char (255) not null,
+add str3 char (255) not null;
+update t1 set str1='aaa', str2='bbb', str3=concat(key2, '-', key1 div 2, '_' ,if(key1 mod 2 = 0, 'a', 'A'));
+alter table t1 add primary key (str1, zeroval, str2, str3);
+explain select * from t1 where key1 < 5 or key2 > 197;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge i1,i2 i1,i2 4,4 NULL 8 Using sort_union(i1,i2); Using where
+select * from t1 where key1 < 5 or key2 > 197;
+key1 key2 str1 zeroval str2 str3
+4 196 aaa 0 bbb 196-2_a
+3 197 aaa 0 bbb 197-1_A
+2 198 aaa 0 bbb 198-1_a
+1 199 aaa 0 bbb 199-0_A
+0 200 aaa 0 bbb 200-0_a
+explain select * from t1 where key1 < 3 or key2 > 195;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge i1,i2 i1,i2 4,4 NULL 8 Using sort_union(i1,i2); Using where
+select * from t1 where key1 < 3 or key2 > 195;
+key1 key2 str1 zeroval str2 str3
+4 196 aaa 0 bbb 196-2_a
+3 197 aaa 0 bbb 197-1_A
+2 198 aaa 0 bbb 198-1_a
+1 199 aaa 0 bbb 199-0_A
+0 200 aaa 0 bbb 200-0_a
+drop table t1;
+create table t1 (
+pk integer not null auto_increment primary key,
+key1 integer,
+key2 integer not null,
+filler char (200),
+index (key1),
+index (key2)
+) engine=innodb;
+show warnings;
+Level Code Message
+explain select pk from t1 where key1 = 1 and key2 = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,4 NULL 1 Using intersect(key1,key2); Using where; Using index
+select pk from t1 where key2 = 1 and key1 = 1;
+pk
+26
+27
+select pk from t1 ignore index(key1,key2) where key2 = 1 and key1 = 1;
+pk
+26
+27
+drop table t1;
+create table t1 (
+pk int primary key auto_increment,
+key1a int,
+key2a int,
+key1b int,
+key2b int,
+dummy1 int,
+dummy2 int,
+dummy3 int,
+dummy4 int,
+key3a int,
+key3b int,
+filler1 char (200),
+index i1(key1a, key1b),
+index i2(key2a, key2b),
+index i3(key3a, key3b)
+) engine=innodb;
+create table t2 (a int);
+insert into t2 values (0),(1),(2),(3),(4),(NULL);
+insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
+select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
+insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
+select key1a, key1b, key2a, key2b, key3a, key3b from t1;
+insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
+select key1a, key1b, key2a, key2b, key3a, key3b from t1;
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+select count(*) from t1;
+count(*)
+5184
+explain select count(*) from t1 where
+key1a = 2 and key1b is null and key2a = 2 and key2b is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge i1,i2 i1,i2 10,10 NULL 3 Using intersect(i1,i2); Using where; Using index
+select count(*) from t1 where
+key1a = 2 and key1b is null and key2a = 2 and key2b is null;
+count(*)
+4
+explain select count(*) from t1 where
+key1a = 2 and key1b is null and key3a = 2 and key3b is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge i1,i3 i1,i3 10,10 NULL 3 Using intersect(i1,i3); Using where; Using index
+select count(*) from t1 where
+key1a = 2 and key1b is null and key3a = 2 and key3b is null;
+count(*)
+4
+drop table t1,t2;
+create table t1 (
+id1 int,
+id2 date ,
+index idx2 (id1,id2),
+index idx1 (id2)
+) engine = innodb;
+insert into t1 values(1,'20040101'), (2,'20040102');
+select * from t1 where id1 = 1 and id2= '20040101';
+id1 id2
+1 2004-01-01
+drop table t1;
+drop view if exists v1;
+CREATE TABLE t1 (
+`oid` int(11) unsigned NOT NULL auto_increment,
+`fk_bbk_niederlassung` int(11) unsigned NOT NULL,
+`fk_wochentag` int(11) unsigned NOT NULL,
+`uhrzeit_von` time NOT NULL COMMENT 'HH:MM',
+`uhrzeit_bis` time NOT NULL COMMENT 'HH:MM',
+`geloescht` tinyint(4) NOT NULL,
+`version` int(5) NOT NULL,
+PRIMARY KEY (`oid`),
+KEY `fk_bbk_niederlassung` (`fk_bbk_niederlassung`),
+KEY `fk_wochentag` (`fk_wochentag`),
+KEY `ix_version` (`version`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+insert into t1 values
+(1, 38, 1, '08:00:00', '13:00:00', 0, 1),
+(2, 38, 2, '08:00:00', '13:00:00', 0, 1),
+(3, 38, 3, '08:00:00', '13:00:00', 0, 1),
+(4, 38, 4, '08:00:00', '13:00:00', 0, 1),
+(5, 38, 5, '08:00:00', '13:00:00', 0, 1),
+(6, 38, 5, '08:00:00', '13:00:00', 1, 2),
+(7, 38, 3, '08:00:00', '13:00:00', 1, 2),
+(8, 38, 1, '08:00:00', '13:00:00', 1, 2),
+(9, 38, 2, '08:00:00', '13:00:00', 1, 2),
+(10, 38, 4, '08:00:00', '13:00:00', 1, 2),
+(11, 38, 1, '08:00:00', '13:00:00', 0, 3),
+(12, 38, 2, '08:00:00', '13:00:00', 0, 3),
+(13, 38, 3, '08:00:00', '13:00:00', 0, 3),
+(14, 38, 4, '08:00:00', '13:00:00', 0, 3),
+(15, 38, 5, '08:00:00', '13:00:00', 0, 3),
+(16, 38, 4, '08:00:00', '13:00:00', 0, 4),
+(17, 38, 5, '08:00:00', '13:00:00', 0, 4),
+(18, 38, 1, '08:00:00', '13:00:00', 0, 4),
+(19, 38, 2, '08:00:00', '13:00:00', 0, 4),
+(20, 38, 3, '08:00:00', '13:00:00', 0, 4),
+(21, 7, 1, '08:00:00', '13:00:00', 0, 1),
+(22, 7, 2, '08:00:00', '13:00:00', 0, 1),
+(23, 7, 3, '08:00:00', '13:00:00', 0, 1),
+(24, 7, 4, '08:00:00', '13:00:00', 0, 1),
+(25, 7, 5, '08:00:00', '13:00:00', 0, 1);
+create view v1 as
+select
+zeit1.oid AS oid,
+zeit1.fk_bbk_niederlassung AS fk_bbk_niederlassung,
+zeit1.fk_wochentag AS fk_wochentag,
+zeit1.uhrzeit_von AS uhrzeit_von,
+zeit1.uhrzeit_bis AS uhrzeit_bis,
+zeit1.geloescht AS geloescht,
+zeit1.version AS version
+from
+t1 zeit1
+where
+(zeit1.version =
+(select max(zeit2.version) AS `max(version)`
+ from t1 zeit2
+where
+((zeit1.fk_bbk_niederlassung = zeit2.fk_bbk_niederlassung) and
+(zeit1.fk_wochentag = zeit2.fk_wochentag) and
+(zeit1.uhrzeit_von = zeit2.uhrzeit_von) and
+(zeit1.uhrzeit_bis = zeit2.uhrzeit_bis)
+)
+)
+)
+and (zeit1.geloescht = 0);
+select * from v1 where oid = 21;
+oid fk_bbk_niederlassung fk_wochentag uhrzeit_von uhrzeit_bis geloescht version
+21 7 1 08:00:00 13:00:00 0 1
+drop view v1;
+drop table t1;
+CREATE TABLE t1(
+t_cpac varchar(2) NOT NULL,
+t_vers varchar(4) NOT NULL,
+t_rele varchar(2) NOT NULL,
+t_cust varchar(4) NOT NULL,
+filler1 char(250) default NULL,
+filler2 char(250) default NULL,
+PRIMARY KEY (t_cpac,t_vers,t_rele,t_cust),
+UNIQUE KEY IX_4 (t_cust,t_cpac,t_vers,t_rele),
+KEY IX_5 (t_vers,t_rele,t_cust)
+) ENGINE=InnoDB;
+insert into t1 values
+('tm','2.5 ','a ',' ','',''), ('tm','2.5U','a ','stnd','',''),
+('da','3.3 ','b ',' ','',''), ('da','3.3U','b ','stnd','',''),
+('tl','7.6 ','a ',' ','',''), ('tt','7.6 ','a ',' ','',''),
+('bc','B61 ','a ',' ','',''), ('bp','B61 ','a ',' ','',''),
+('ca','B61 ','a ',' ','',''), ('ci','B61 ','a ',' ','',''),
+('cp','B61 ','a ',' ','',''), ('dm','B61 ','a ',' ','',''),
+('ec','B61 ','a ',' ','',''), ('ed','B61 ','a ',' ','',''),
+('fm','B61 ','a ',' ','',''), ('nt','B61 ','a ',' ','',''),
+('qm','B61 ','a ',' ','',''), ('tc','B61 ','a ',' ','',''),
+('td','B61 ','a ',' ','',''), ('tf','B61 ','a ',' ','',''),
+('tg','B61 ','a ',' ','',''), ('ti','B61 ','a ',' ','',''),
+('tp','B61 ','a ',' ','',''), ('ts','B61 ','a ',' ','',''),
+('wh','B61 ','a ',' ','',''), ('bc','B61U','a ','stnd','',''),
+('bp','B61U','a ','stnd','',''), ('ca','B61U','a ','stnd','',''),
+('ci','B61U','a ','stnd','',''), ('cp','B61U','a ','stnd','',''),
+('dm','B61U','a ','stnd','',''), ('ec','B61U','a ','stnd','',''),
+('fm','B61U','a ','stnd','',''), ('nt','B61U','a ','stnd','',''),
+('qm','B61U','a ','stnd','',''), ('tc','B61U','a ','stnd','',''),
+('td','B61U','a ','stnd','',''), ('tf','B61U','a ','stnd','',''),
+('tg','B61U','a ','stnd','',''), ('ti','B61U','a ','stnd','',''),
+('tp','B61U','a ','stnd','',''), ('ts','B61U','a ','stnd','',''),
+('wh','B61U','a ','stnd','','');
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `t_cpac` varchar(2) NOT NULL,
+ `t_vers` varchar(4) NOT NULL,
+ `t_rele` varchar(2) NOT NULL,
+ `t_cust` varchar(4) NOT NULL,
+ `filler1` char(250) default NULL,
+ `filler2` char(250) default NULL,
+ PRIMARY KEY (`t_cpac`,`t_vers`,`t_rele`,`t_cust`),
+ UNIQUE KEY `IX_4` (`t_cust`,`t_cpac`,`t_vers`,`t_rele`),
+ KEY `IX_5` (`t_vers`,`t_rele`,`t_cust`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+select t_vers,t_rele,t_cust,filler1 from t1 where t_vers = '7.6';
+t_vers t_rele t_cust filler1
+7.6 a
+7.6 a
+select t_vers,t_rele,t_cust,filler1 from t1 where t_vers = '7.6'
+ and t_rele='a' and t_cust = ' ';
+t_vers t_rele t_cust filler1
+7.6 a
+7.6 a
+drop table t1;
+create table t1 (
+pk int(11) not null auto_increment,
+a int(11) not null default '0',
+b int(11) not null default '0',
+c int(11) not null default '0',
+filler1 datetime, filler2 varchar(15),
+filler3 longtext,
+kp1 varchar(4), kp2 varchar(7),
+kp3 varchar(2), kp4 varchar(4),
+kp5 varchar(7),
+filler4 char(1),
+primary key (pk),
+key idx1(a,b,c),
+key idx2(c),
+key idx3(kp1,kp2,kp3,kp4,kp5)
+) engine=innodb default charset=latin1;
+set @fill=NULL;
+SELECT COUNT(*) FROM t1 WHERE b = 0 AND a = 0 AND c = 13286427 AND
+kp1='279' AND kp2='ELM0678' AND kp3='6' AND kp4='10' AND kp5 = 'R ';
+COUNT(*)
+1
+drop table t1;
diff --git a/mysql-test/r/index_merge_innodb2.result b/mysql-test/r/index_merge_innodb2.result
new file mode 100644
index 00000000000..91dd989fe90
--- /dev/null
+++ b/mysql-test/r/index_merge_innodb2.result
@@ -0,0 +1,136 @@
+drop table if exists t1;
+create table t1 (
+pk int primary key,
+key1 int,
+key2 int,
+filler char(200),
+filler2 char(200),
+index(key1),
+index(key2)
+) engine=innodb;
+select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 );
+pk key1 key2 filler filler2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+9 9 9 filler-data filler-data-2
+10 10 10 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+5 5 5 filler-data filler-data-2
+6 6 6 filler-data filler-data-2
+7 7 7 filler-data filler-data-2
+8 8 8 filler-data filler-data-2
+set @maxv=1000;
+select * from t1 where
+(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+or key1=18 or key1=60;
+pk key1 key2 filler filler2
+18 18 18 filler-data filler-data-2
+60 60 60 filler-data filler-data-2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+select * from t1 where
+(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+or key1 < 3 or key1 > @maxv-11;
+pk key1 key2 filler filler2
+990 990 990 filler-data filler-data-2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+select * from t1 where
+(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+or
+(key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10);
+pk key1 key2 filler filler2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+select * from t1 where
+(pk > 10 and pk < 15) or (pk >= 50 and pk < 55 )
+or
+(key1 < 5) or (key1 > @maxv-10);
+pk key1 key2 filler filler2
+1 1 1 filler-data filler-data-2
+2 2 2 filler-data filler-data-2
+3 3 3 filler-data filler-data-2
+4 4 4 filler-data filler-data-2
+991 991 991 filler-data filler-data-2
+992 992 992 filler-data filler-data-2
+993 993 993 filler-data filler-data-2
+994 994 994 filler-data filler-data-2
+995 995 995 filler-data filler-data-2
+996 996 996 filler-data filler-data-2
+997 997 997 filler-data filler-data-2
+998 998 998 filler-data filler-data-2
+999 999 999 filler-data filler-data-2
+1000 1000 1000 filler-data filler-data-2
+11 11 11 filler-data filler-data-2
+12 12 12 filler-data filler-data-2
+13 13 13 filler-data filler-data-2
+14 14 14 filler-data filler-data-2
+50 50 50 filler-data filler-data-2
+51 51 51 filler-data filler-data-2
+52 52 52 filler-data filler-data-2
+53 53 53 filler-data filler-data-2
+54 54 54 filler-data filler-data-2
+drop table t1;
diff --git a/mysql-test/r/index_merge_ror.result b/mysql-test/r/index_merge_ror.result
new file mode 100644
index 00000000000..5d08125be53
--- /dev/null
+++ b/mysql-test/r/index_merge_ror.result
@@ -0,0 +1,207 @@
+drop table if exists t0,t1,t2;
+select count(*) from t1;
+count(*)
+64801
+explain select key1,key2 from t1 where key1=100 and key2=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 58 Using intersect(key1,key2); Using where; Using index
+select key1,key2 from t1 where key1=100 and key2=100;
+key1 key2
+100 100
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+key1 key2 key3 key4 filler1
+100 100 100 100 key1-key2-key3-key4
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, -1, -1, 'key1-key2');
+insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 100, 100, 'key4-key3');
+explain select key1,key2,filler1 from t1 where key1=100 and key2=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 58 Using intersect(key1,key2); Using where
+select key1,key2,filler1 from t1 where key1=100 and key2=100;
+key1 key2 filler1
+100 100 key1-key2-key3-key4
+100 100 key1-key2
+explain select key1,key2 from t1 where key1=100 and key2=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 58 Using intersect(key1,key2); Using where; Using index
+select key1,key2 from t1 where key1=100 and key2=100;
+key1 key2
+100 100
+100 100
+explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
+select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+key1 key2 key3 key4
+100 100 100 100
+100 100 -1 -1
+-1 -1 100 100
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+key1 key2 key3 key4 filler1
+100 100 100 100 key1-key2-key3-key4
+100 100 -1 -1 key1-key2
+-1 -1 100 100 key4-key3
+explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 2 Using intersect(key1,key2,key3); Using where; Using index
+select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
+key1 key2 key3
+100 100 100
+insert into t1 (key1,key2,key3,key4,filler1) values (101,101,101,101, 'key1234-101');
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=101;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 83 Using union(intersect(key1,key2),key3); Using where
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=101;
+key1 key2 key3 key4 filler1
+100 100 100 100 key1-key2-key3-key4
+100 100 -1 -1 key1-key2
+101 101 101 101 key1234-101
+select key1,key2, filler1 from t1 where key1=100 and key2=100;
+key1 key2 filler1
+100 100 key1-key2-key3-key4
+100 100 key1-key2
+update t1 set filler1='to be deleted' where key1=100 and key2=100;
+update t1 set key1=200,key2=200 where key1=100 and key2=100;
+delete from t1 where key1=200 and key2=200;
+select key1,key2,filler1 from t1 where key2=100 and key2=200;
+key1 key2 filler1
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 152 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+key1 key2 key3 key4 filler1
+-1 -1 100 100 key4-key3
+delete from t1 where key3=100 and key4=100;
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 152 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+key1 key2 key3 key4 filler1
+explain select key1,key2 from t1 where key1=100 and key2=100;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 57 Using intersect(key1,key2); Using where; Using index
+select key1,key2 from t1 where key1=100 and key2=100;
+key1 key2
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-1');
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-2');
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-3');
+explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 136 Using union(key3,intersect(key1,key2),key4); Using where
+select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+key1 key2 key3 key4 filler1
+100 100 200 200 key1-key2-key3-key4-3
+100 100 200 200 key1-key2-key3-key4-2
+100 100 200 200 key1-key2-key3-key4-1
+insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, -1, 200,'key4');
+explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 146 Using union(key3,intersect(key1,key2),key4); Using where
+select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+key1 key2 key3 key4 filler1
+100 100 200 200 key1-key2-key3-key4-3
+100 100 200 200 key1-key2-key3-key4-2
+100 100 200 200 key1-key2-key3-key4-1
+-1 -1 -1 200 key4
+insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 200, -1,'key3');
+explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 156 Using union(key3,intersect(key1,key2),key4); Using where
+select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+key1 key2 key3 key4 filler1
+100 100 200 200 key1-key2-key3-key4-3
+100 100 200 200 key1-key2-key3-key4-2
+100 100 200 200 key1-key2-key3-key4-1
+-1 -1 -1 200 key4
+-1 -1 200 -1 key3
+explain select * from t1 where st_a=1 and st_b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b st_a,st_b 4,4 NULL 2637 Using intersect(st_a,st_b); Using where
+explain select st_a,st_b from t1 where st_a=1 and st_b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b st_a,st_b 4,4 NULL 2637 Using intersect(st_a,st_b); Using where; Using index
+explain select st_a from t1 ignore index (st_a) where st_a=1 and st_b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,stb_swt1a_2b,stb_swt1b,st_b st_b 4 const 15093 Using where
+explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a sta_swt21a 12 const,const,const 971
+explain select * from t1 where st_b=1 and swt1b=1 and swt2b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref stb_swt1a_2b,stb_swt1b,st_b stb_swt1a_2b 8 const,const 3879 Using where
+explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt12a,stb_swt1a_2b 12,12 NULL 44 Using intersect(sta_swt12a,stb_swt1a_2b); Using where
+explain select * from t1 ignore index (sta_swt21a, stb_swt1a_2b)
+where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,st_a,stb_swt1b,st_b sta_swt12a,stb_swt1b 12,8 NULL 44 Using intersect(sta_swt12a,stb_swt1b); Using where
+explain select * from t1 ignore index (sta_swt21a, sta_swt12a, stb_swt1a_2b)
+where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt1a,sta_swt2a,st_a,stb_swt1b,st_b sta_swt1a,sta_swt2a,stb_swt1b 8,8,8 NULL 43 Using intersect(sta_swt1a,sta_swt2a,stb_swt1b); Using where
+explain select * from t1 ignore index (sta_swt21a, sta_swt12a, stb_swt1a_2b, stb_swt1b)
+where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt1a,sta_swt2a,st_a,st_b sta_swt1a,sta_swt2a,st_b 8,8,4 NULL 168 Using intersect(sta_swt1a,sta_swt2a,st_b); Using where
+explain select * from t1
+where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt12a,stb_swt1a_2b 12,12 NULL 44 Using intersect(sta_swt12a,stb_swt1a_2b); Using where
+explain select * from t1
+where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 174 Using intersect(sta_swt1a,stb_swt1b); Using where
+explain select st_a from t1
+where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 174 Using intersect(sta_swt1a,stb_swt1b); Using where; Using index
+explain select st_a from t1
+where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 174 Using intersect(sta_swt1a,stb_swt1b); Using where; Using index
+drop table t0,t1;
+create table t2 (
+a char(10),
+b char(10),
+filler1 char(255),
+filler2 char(255),
+key(a(5)),
+key(b(5))
+);
+select count(a) from t2 where a='BBBBBBBB';
+count(a)
+4
+select count(a) from t2 where b='BBBBBBBB';
+count(a)
+4
+expla_or_bin select count(a_or_b) from t2 where a_or_b='AAAAAAAA' a_or_bnd a_or_b='AAAAAAAA';
+id select_type ta_or_ba_or_ble type possia_or_ble_keys key key_len ref rows Extra_or_b
+1 SIMPLE t2 ref a_or_b,a_or_b a_or_b 6 const 4 Using where
+select count(a) from t2 where a='AAAAAAAA' and b='AAAAAAAA';
+count(a)
+4
+select count(a) from t2 ignore index(a,b) where a='AAAAAAAA' and b='AAAAAAAA';
+count(a)
+4
+insert into t2 values ('ab', 'ab', 'uh', 'oh');
+explain select a from t2 where a='ab';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref a a 6 const 1 Using where
+drop table t2;
+CREATE TABLE t1(c1 INT, c2 INT DEFAULT 0, c3 CHAR(255) DEFAULT '',
+KEY(c1), KEY(c2), KEY(c3));
+INSERT INTO t1(c1) VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),
+(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
+INSERT INTO t1 VALUES(0,0,0);
+CREATE TABLE t2(c1 int);
+INSERT INTO t2 VALUES(1);
+DELETE t1 FROM t1,t2 WHERE t1.c1=0 AND t1.c2=0;
+SELECT * FROM t1;
+c1 c2 c3
+DROP TABLE t1,t2;
diff --git a/mysql-test/r/index_merge_ror_cpk.result b/mysql-test/r/index_merge_ror_cpk.result
new file mode 100644
index 00000000000..79bb1297abf
--- /dev/null
+++ b/mysql-test/r/index_merge_ror_cpk.result
@@ -0,0 +1,120 @@
+drop table if exists t1;
+create table t1
+(
+pk1 int not null,
+pk2 int not null,
+key1 int not null,
+key2 int not null,
+pktail1ok int not null,
+pktail2ok int not null,
+pktail3bad int not null,
+pktail4bad int not null,
+pktail5bad int not null,
+pk2copy int not null,
+badkey int not null,
+filler1 char (200),
+filler2 char (200),
+key (key1),
+key (key2),
+/* keys with tails from CPK members */
+key (pktail1ok, pk1),
+key (pktail2ok, pk1, pk2),
+key (pktail3bad, pk2, pk1),
+key (pktail4bad, pk1, pk2copy),
+key (pktail5bad, pk1, pk2, pk2copy),
+primary key (pk1, pk2)
+) engine=innodb;
+explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY,key1 PRIMARY 8 NULL 9 Using where
+select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
+pk1 pk2 key1 key2 pktail1ok pktail2ok pktail3bad pktail4bad pktail5bad pk2copy badkey filler1 filler2
+1 10 0 0 0 0 0 0 0 10 0 filler-data-10 filler2
+1 11 0 0 0 0 0 0 0 11 0 filler-data-11 filler2
+1 12 0 0 0 0 0 0 0 12 0 filler-data-12 filler2
+1 13 0 0 0 0 0 0 0 13 0 filler-data-13 filler2
+1 14 0 0 0 0 0 0 0 14 0 filler-data-14 filler2
+1 15 0 0 0 0 0 0 0 15 0 filler-data-15 filler2
+1 16 0 0 0 0 0 0 0 16 0 filler-data-16 filler2
+1 17 0 0 0 0 0 0 0 17 0 filler-data-17 filler2
+1 18 0 0 0 0 0 0 0 18 0 filler-data-18 filler2
+1 19 0 0 0 0 0 0 0 19 0 filler-data-19 filler2
+explain select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 4,4 NULL 1 Using intersect(key1,key2); Using where; Using index
+select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
+pk1 pk2
+95 50
+95 51
+95 52
+95 53
+95 54
+95 55
+95 56
+95 57
+95 58
+95 59
+explain select * from t1 where badkey=1 and key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref key1 key1 4 const 100 Using where
+explain select * from t1 where pk1 < 7500 and key1 = 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge PRIMARY,key1 key1,PRIMARY 4,4 NULL ROWS Using intersect(key1,PRIMARY); Using where
+explain select * from t1 where pktail1ok=1 and key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,pktail1ok key1,pktail1ok 4,4 NULL 1 Using intersect(key1,pktail1ok); Using where
+explain select * from t1 where pktail2ok=1 and key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,pktail2ok key1,pktail2ok 4,4 NULL 1 Using intersect(key1,pktail2ok); Using where
+select ' The following is actually a deficiency, it uses sort_union currently:' as 'note:';
+note:
+ The following is actually a deficiency, it uses sort_union currently:
+explain select * from t1 where (pktail2ok=1 and pk1< 50000) or key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge PRIMARY,key1,pktail2ok pktail2ok,key1 8,4 NULL 199 Using sort_union(pktail2ok,key1); Using where
+explain select * from t1 where pktail3bad=1 and key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref key1,pktail3bad key1 4 const 100 Using where
+explain select * from t1 where pktail4bad=1 and key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref key1,pktail4bad key1 4 const 100 Using where
+explain select * from t1 where pktail5bad=1 and key1=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref key1,pktail5bad key1 4 const 100 Using where
+explain select pk1,pk2,key1,key2 from t1 where key1 = 10 and key2=10 limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 4,4 NULL 1 Using intersect(key1,key2); Using where; Using index
+select pk1,pk2,key1,key2 from t1 where key1 = 10 and key2=10 limit 10;
+pk1 pk2 key1 key2
+95 50 10 10
+95 51 10 10
+95 52 10 10
+95 53 10 10
+95 54 10 10
+95 55 10 10
+95 56 10 10
+95 57 10 10
+95 58 10 10
+95 59 10 10
+drop table t1;
+create table t1
+(
+RUNID varchar(22),
+SUBMITNR varchar(5),
+ORDERNR char(1) ,
+PROGRAMM varchar(8),
+TESTID varchar(4),
+UCCHECK char(1),
+ETEXT varchar(80),
+ETEXT_TYPE char(1),
+INFO char(1),
+SEVERITY tinyint(3),
+TADIRFLAG char(1),
+PRIMARY KEY (RUNID,SUBMITNR,ORDERNR,PROGRAMM,TESTID,UCCHECK),
+KEY `TVERM~KEY` (PROGRAMM,TESTID,UCCHECK)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+update t1 set `ETEXT` = '', `ETEXT_TYPE`='', `INFO`='', `SEVERITY`='', `TADIRFLAG`=''
+WHERE
+`RUNID`= '' AND `SUBMITNR`= '' AND `ORDERNR`='' AND `PROGRAMM`='' AND
+`TESTID`='' AND `UCCHECK`='';
+drop table t1;
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
new file mode 100644
index 00000000000..0c6a1855072
--- /dev/null
+++ b/mysql-test/r/information_schema.result
@@ -0,0 +1,1392 @@
+DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5;
+DROP VIEW IF EXISTS v1;
+show variables where variable_name like "skip_show_database";
+Variable_name Value
+skip_show_database OFF
+grant select, update, execute on test.* to mysqltest_2@localhost;
+grant select, update on test.* to mysqltest_1@localhost;
+create user mysqltest_3@localhost;
+create user mysqltest_3;
+select * from information_schema.SCHEMATA where schema_name > 'm';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+select schema_name from information_schema.schemata;
+schema_name
+information_schema
+mysql
+test
+show databases like 't%';
+Database (t%)
+test
+show databases;
+Database
+information_schema
+mysql
+test
+show databases where `database` = 't%';
+Database
+create database mysqltest;
+create table mysqltest.t1(a int, b VARCHAR(30), KEY string_data (b));
+create table test.t2(a int);
+create table t3(a int, KEY a_data (a));
+create table mysqltest.t4(a int);
+create table t5 (id int auto_increment primary key);
+insert into t5 values (10);
+create view v1 (c) as select table_name from information_schema.TABLES;
+select * from v1;
+c
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+columns_priv
+db
+func
+help_category
+help_keyword
+help_relation
+help_topic
+host
+proc
+procs_priv
+tables_priv
+time_zone
+time_zone_leap_second
+time_zone_name
+time_zone_transition
+time_zone_transition_type
+user
+t1
+t4
+t2
+t3
+t5
+v1
+select c,table_name from v1
+inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
+where v1.c like "t%";
+c table_name
+TABLES TABLES
+TABLE_CONSTRAINTS TABLE_CONSTRAINTS
+TABLE_PRIVILEGES TABLE_PRIVILEGES
+TRIGGERS TRIGGERS
+tables_priv tables_priv
+time_zone time_zone
+time_zone_leap_second time_zone_leap_second
+time_zone_name time_zone_name
+time_zone_transition time_zone_transition
+time_zone_transition_type time_zone_transition_type
+t1 t1
+t4 t4
+t2 t2
+t3 t3
+t5 t5
+select c,table_name from v1
+left join information_schema.TABLES v2 on (v1.c=v2.table_name)
+where v1.c like "t%";
+c table_name
+TABLES TABLES
+TABLE_CONSTRAINTS TABLE_CONSTRAINTS
+TABLE_PRIVILEGES TABLE_PRIVILEGES
+TRIGGERS TRIGGERS
+tables_priv tables_priv
+time_zone time_zone
+time_zone_leap_second time_zone_leap_second
+time_zone_name time_zone_name
+time_zone_transition time_zone_transition
+time_zone_transition_type time_zone_transition_type
+t1 t1
+t4 t4
+t2 t2
+t3 t3
+t5 t5
+select c, v2.table_name from v1
+right join information_schema.TABLES v2 on (v1.c=v2.table_name)
+where v1.c like "t%";
+c table_name
+TABLES TABLES
+TABLE_CONSTRAINTS TABLE_CONSTRAINTS
+TABLE_PRIVILEGES TABLE_PRIVILEGES
+TRIGGERS TRIGGERS
+tables_priv tables_priv
+time_zone time_zone
+time_zone_leap_second time_zone_leap_second
+time_zone_name time_zone_name
+time_zone_transition time_zone_transition
+time_zone_transition_type time_zone_transition_type
+t1 t1
+t4 t4
+t2 t2
+t3 t3
+t5 t5
+select table_name from information_schema.TABLES
+where table_schema = "mysqltest" and table_name like "t%";
+table_name
+t1
+t4
+select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysqltest t1 1 mysqltest string_data 1 b A NULL NULL NULL YES BTREE
+show keys from t3 where Key_name = "a_data";
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t3 1 a_data 1 a A NULL NULL NULL YES BTREE
+show tables like 't%';
+Tables_in_test (t%)
+t2
+t3
+t5
+show table status;
+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
+t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
+t3 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
+t5 MyISAM 10 Fixed 1 7 7 # 2048 0 11 # # NULL latin1_swedish_ci NULL
+v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+show full columns from t3 like "a%";
+Field Type Collation Null Key Default Extra Privileges Comment
+a int(11) NULL YES MUL NULL select,insert,update,references
+show full columns from mysql.db like "Insert%";
+Field Type Collation Null Key Default Extra Privileges Comment
+Insert_priv enum('N','Y') utf8_general_ci NO N select,insert,update,references
+show full columns from v1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c varchar(64) utf8_general_ci NO select,insert,update,references
+select * from information_schema.COLUMNS where table_name="t1"
+and column_name= "a";
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL mysqltest t1 a 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+show columns from mysqltest.t1 where field like "%a%";
+Field Type Null Key Default Extra
+a int(11) YES NULL
+create view mysqltest.v1 (c) as select a from mysqltest.t1;
+grant select (a) on mysqltest.t1 to mysqltest_2@localhost;
+grant select on mysqltest.v1 to mysqltest_3;
+select table_name, column_name, privileges from information_schema.columns
+where table_schema = 'mysqltest' and table_name = 't1';
+table_name column_name privileges
+t1 a select
+show columns from mysqltest.t1;
+Field Type Null Key Default Extra
+a int(11) YES NULL
+select table_name, column_name, privileges from information_schema.columns
+where table_schema = 'mysqltest' and table_name = 'v1';
+table_name column_name privileges
+v1 c select
+drop view v1, mysqltest.v1;
+drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
+drop database mysqltest;
+select * from information_schema.CHARACTER_SETS
+where CHARACTER_SET_NAME like 'latin1%';
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+latin1 latin1_swedish_ci cp1252 West European 1
+SHOW CHARACTER SET LIKE 'latin1%';
+Charset Description Default collation Maxlen
+latin1 cp1252 West European latin1_swedish_ci 1
+SHOW CHARACTER SET WHERE charset like 'latin1%';
+Charset Description Default collation Maxlen
+latin1 cp1252 West European latin1_swedish_ci 1
+select * from information_schema.COLLATIONS
+where COLLATION_NAME like 'latin1%';
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+latin1_german1_ci latin1 5 # 1
+latin1_swedish_ci latin1 8 Yes # 1
+latin1_danish_ci latin1 15 # 1
+latin1_german2_ci latin1 31 # 2
+latin1_bin latin1 47 # 1
+latin1_general_ci latin1 48 # 1
+latin1_general_cs latin1 49 # 1
+latin1_spanish_ci latin1 94 # 1
+SHOW COLLATION LIKE 'latin1%';
+Collation Charset Id Default Compiled Sortlen
+latin1_german1_ci latin1 5 # 1
+latin1_swedish_ci latin1 8 Yes # 1
+latin1_danish_ci latin1 15 # 1
+latin1_german2_ci latin1 31 # 2
+latin1_bin latin1 47 # 1
+latin1_general_ci latin1 48 # 1
+latin1_general_cs latin1 49 # 1
+latin1_spanish_ci latin1 94 # 1
+SHOW COLLATION WHERE collation like 'latin1%';
+Collation Charset Id Default Compiled Sortlen
+latin1_german1_ci latin1 5 # 1
+latin1_swedish_ci latin1 8 Yes # 1
+latin1_danish_ci latin1 15 # 1
+latin1_german2_ci latin1 31 # 2
+latin1_bin latin1 47 # 1
+latin1_general_ci latin1 48 # 1
+latin1_general_cs latin1 49 # 1
+latin1_spanish_ci latin1 94 # 1
+select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
+where COLLATION_NAME like 'latin1%';
+COLLATION_NAME CHARACTER_SET_NAME
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+drop procedure if exists sel2;
+drop function if exists sub1;
+drop function if exists sub2;
+create function sub1(i int) returns int
+return i+1;
+create procedure sel2()
+begin
+select * from t1;
+select * from t2;
+end|
+select parameter_style, sql_data_access, dtd_identifier
+from information_schema.routines;
+parameter_style sql_data_access dtd_identifier
+SQL CONTAINS SQL NULL
+SQL CONTAINS SQL int(11)
+show procedure status;
+Db Name Type Definer Modified Created Security_type Comment
+test sel2 PROCEDURE root@localhost # # DEFINER
+show function status;
+Db Name Type Definer Modified Created Security_type Comment
+test sub1 FUNCTION root@localhost # # DEFINER
+select a.ROUTINE_NAME from information_schema.ROUTINES a,
+information_schema.SCHEMATA b where
+a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
+ROUTINE_NAME
+sel2
+sub1
+explain select a.ROUTINE_NAME from information_schema.ROUTINES a,
+information_schema.SCHEMATA b where
+a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE # ALL NULL NULL NULL NULL 2
+1 SIMPLE # ALL NULL NULL NULL NULL 2 Using where
+select a.ROUTINE_NAME, b.name from information_schema.ROUTINES a,
+mysql.proc b where a.ROUTINE_NAME = convert(b.name using utf8) order by 1;
+ROUTINE_NAME name
+sel2 sel2
+sub1 sub1
+select count(*) from information_schema.ROUTINES;
+count(*)
+2
+create view v1 as select routine_schema, routine_name from information_schema.routines
+order by routine_schema, routine_name;
+select * from v1;
+routine_schema routine_name
+test sel2
+test sub1
+drop view v1;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+ROUTINE_NAME ROUTINE_DEFINITION
+show create function sub1;
+ERROR 42000: FUNCTION sub1 does not exist
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+ROUTINE_NAME ROUTINE_DEFINITION
+sel2 NULL
+sub1 NULL
+grant all privileges on test.* to mysqltest_1@localhost;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+ROUTINE_NAME ROUTINE_DEFINITION
+sel2 NULL
+sub1 NULL
+create function sub2(i int) returns int
+return i+1;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+ROUTINE_NAME ROUTINE_DEFINITION
+sel2 NULL
+sub1 NULL
+sub2 return i+1
+show create procedure sel2;
+Procedure sql_mode Create Procedure
+sel2 NULL
+show create function sub1;
+Function sql_mode Create Function
+sub1 NULL
+show create function sub2;
+Function sql_mode Create Function
+sub2 CREATE DEFINER=`mysqltest_1`@`localhost` FUNCTION `sub2`(i int) RETURNS int(11)
+return i+1
+show function status like "sub2";
+Db Name Type Definer Modified Created Security_type Comment
+test sub2 FUNCTION mysqltest_1@localhost # # DEFINER
+drop function sub2;
+show create procedure sel2;
+Procedure sql_mode Create Procedure
+sel2 CREATE DEFINER=`root`@`localhost` PROCEDURE `sel2`()
+begin
+select * from t1;
+select * from t2;
+end
+create view v0 (c) as select schema_name from information_schema.schemata;
+select * from v0;
+c
+information_schema
+mysql
+test
+explain select * from v0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE # ALL NULL NULL NULL NULL 2
+create view v1 (c) as select table_name from information_schema.tables
+where table_name="v1";
+select * from v1;
+c
+v1
+create view v2 (c) as select column_name from information_schema.columns
+where table_name="v2";
+select * from v2;
+c
+c
+create view v3 (c) as select CHARACTER_SET_NAME from information_schema.character_sets
+where CHARACTER_SET_NAME like "latin1%";
+select * from v3;
+c
+latin1
+create view v4 (c) as select COLLATION_NAME from information_schema.collations
+where COLLATION_NAME like "latin1%";
+select * from v4;
+c
+latin1_german1_ci
+latin1_swedish_ci
+latin1_danish_ci
+latin1_german2_ci
+latin1_bin
+latin1_general_ci
+latin1_general_cs
+latin1_spanish_ci
+show keys from v4;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+select * from information_schema.views where TABLE_NAME like "v%";
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL test v0 /* ALGORITHM=UNDEFINED */ select `schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO root@localhost DEFINER
+NULL test v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_NAME` AS `c` from `information_schema`.`tables` where (`tables`.`TABLE_NAME` = _utf8'v1') NONE NO root@localhost DEFINER
+NULL test v2 /* ALGORITHM=UNDEFINED */ select `columns`.`COLUMN_NAME` AS `c` from `information_schema`.`columns` where (`columns`.`TABLE_NAME` = _utf8'v2') NONE NO root@localhost DEFINER
+NULL test v3 /* ALGORITHM=UNDEFINED */ select `character_sets`.`CHARACTER_SET_NAME` AS `c` from `information_schema`.`character_sets` where (`character_sets`.`CHARACTER_SET_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
+NULL test v4 /* ALGORITHM=UNDEFINED */ select `collations`.`COLLATION_NAME` AS `c` from `information_schema`.`collations` where (`collations`.`COLLATION_NAME` like _utf8'latin1%') NONE NO root@localhost DEFINER
+drop view v0, v1, v2, v3, v4;
+create table t1 (a int);
+grant select,update,insert on t1 to mysqltest_1@localhost;
+grant select (a), update (a),insert(a), references(a) on t1 to mysqltest_1@localhost;
+grant all on test.* to mysqltest_1@localhost with grant option;
+select * from information_schema.USER_PRIVILEGES where grantee like '%mysqltest_1%';
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_1'@'localhost' NULL USAGE NO
+select * from information_schema.SCHEMA_PRIVILEGES where grantee like '%mysqltest_1%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_1'@'localhost' NULL test SELECT YES
+'mysqltest_1'@'localhost' NULL test INSERT YES
+'mysqltest_1'@'localhost' NULL test UPDATE YES
+'mysqltest_1'@'localhost' NULL test DELETE YES
+'mysqltest_1'@'localhost' NULL test CREATE YES
+'mysqltest_1'@'localhost' NULL test DROP YES
+'mysqltest_1'@'localhost' NULL test REFERENCES YES
+'mysqltest_1'@'localhost' NULL test INDEX YES
+'mysqltest_1'@'localhost' NULL test ALTER YES
+'mysqltest_1'@'localhost' NULL test CREATE TEMPORARY TABLES YES
+'mysqltest_1'@'localhost' NULL test LOCK TABLES YES
+'mysqltest_1'@'localhost' NULL test EXECUTE YES
+'mysqltest_1'@'localhost' NULL test CREATE VIEW YES
+'mysqltest_1'@'localhost' NULL test SHOW VIEW YES
+'mysqltest_1'@'localhost' NULL test CREATE ROUTINE YES
+'mysqltest_1'@'localhost' NULL test ALTER ROUTINE YES
+select * from information_schema.TABLE_PRIVILEGES where grantee like '%mysqltest_1%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_1'@'localhost' NULL test t1 SELECT NO
+'mysqltest_1'@'localhost' NULL test t1 INSERT NO
+'mysqltest_1'@'localhost' NULL test t1 UPDATE NO
+select * from information_schema.COLUMN_PRIVILEGES where grantee like '%mysqltest_1%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'mysqltest_1'@'localhost' NULL test t1 a SELECT NO
+'mysqltest_1'@'localhost' NULL test t1 a INSERT NO
+'mysqltest_1'@'localhost' NULL test t1 a UPDATE NO
+'mysqltest_1'@'localhost' NULL test t1 a REFERENCES NO
+delete from mysql.user where user like 'mysqltest%';
+delete from mysql.db where user like 'mysqltest%';
+delete from mysql.tables_priv where user like 'mysqltest%';
+delete from mysql.columns_priv where user like 'mysqltest%';
+flush privileges;
+drop table t1;
+create table t1 (a int null, primary key(a));
+alter table t1 add constraint constraint_1 unique (a);
+alter table t1 add constraint unique key_1(a);
+alter table t1 add constraint constraint_2 unique key_2(a);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) NOT NULL default '0',
+ PRIMARY KEY (`a`),
+ UNIQUE KEY `constraint_1` (`a`),
+ UNIQUE KEY `key_1` (`a`),
+ UNIQUE KEY `key_2` (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select * from information_schema.TABLE_CONSTRAINTS where
+TABLE_SCHEMA= "test";
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL test PRIMARY test t1 PRIMARY KEY
+NULL test constraint_1 test t1 UNIQUE
+NULL test key_1 test t1 UNIQUE
+NULL test key_2 test t1 UNIQUE
+select * from information_schema.KEY_COLUMN_USAGE where
+TABLE_SCHEMA= "test";
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL test PRIMARY NULL test t1 a 1 NULL NULL NULL NULL
+NULL test constraint_1 NULL test t1 a 1 NULL NULL NULL NULL
+NULL test key_1 NULL test t1 a 1 NULL NULL NULL NULL
+NULL test key_2 NULL test t1 a 1 NULL NULL NULL NULL
+select table_name from information_schema.TABLES where table_schema like "test%";
+table_name
+t1
+select table_name,column_name from information_schema.COLUMNS where table_schema like "test%";
+table_name column_name
+t1 a
+select ROUTINE_NAME from information_schema.ROUTINES;
+ROUTINE_NAME
+sel2
+sub1
+delete from mysql.user where user='mysqltest_1';
+drop table t1;
+drop procedure sel2;
+drop function sub1;
+create table t1(a int);
+create view v1 (c) as select a from t1 with check option;
+create view v2 (c) as select a from t1 WITH LOCAL CHECK OPTION;
+create view v3 (c) as select a from t1 WITH CASCADED CHECK OPTION;
+select * from information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL test v1 /* ALGORITHM=UNDEFINED */ select `test`.`t1`.`a` AS `c` from `test`.`t1` CASCADED YES root@localhost DEFINER
+NULL test v2 /* ALGORITHM=UNDEFINED */ select `test`.`t1`.`a` AS `c` from `test`.`t1` LOCAL YES root@localhost DEFINER
+NULL test v3 /* ALGORITHM=UNDEFINED */ select `test`.`t1`.`a` AS `c` from `test`.`t1` CASCADED YES root@localhost DEFINER
+grant select (a) on test.t1 to joe@localhost with grant option;
+select * from INFORMATION_SCHEMA.COLUMN_PRIVILEGES;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'joe'@'localhost' NULL test t1 a SELECT YES
+select * from INFORMATION_SCHEMA.TABLE_PRIVILEGES;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+drop view v1, v2, v3;
+drop table t1;
+delete from mysql.user where user='joe';
+delete from mysql.db where user='joe';
+delete from mysql.tables_priv where user='joe';
+delete from mysql.columns_priv where user='joe';
+flush privileges;
+create table t1 (a int not null auto_increment,b int, primary key (a));
+insert into t1 values (1,1),(NULL,3),(NULL,4);
+select AUTO_INCREMENT from information_schema.tables where table_name = 't1';
+AUTO_INCREMENT
+4
+drop table t1;
+create table t1 (s1 int);
+insert into t1 values (0),(9),(0);
+select s1 from t1 where s1 in (select version from
+information_schema.tables) union select version from
+information_schema.tables;
+s1
+0
+10
+drop table t1;
+SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
+Table Create Table
+CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '',
+ `DESCRIPTION` varchar(60) NOT NULL default '',
+ `MAXLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+set names latin2;
+SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
+Table Create Table
+CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '',
+ `DESCRIPTION` varchar(60) NOT NULL default '',
+ `MAXLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+set names latin1;
+create table t1 select * from information_schema.CHARACTER_SETS
+where CHARACTER_SET_NAME like "latin1";
+select * from t1;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+latin1 latin1_swedish_ci cp1252 West European 1
+alter table t1 default character set utf8;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '',
+ `DESCRIPTION` varchar(60) NOT NULL default '',
+ `MAXLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+drop table t1;
+create view v1 as select * from information_schema.TABLES;
+drop view v1;
+create table t1(a NUMERIC(5,3), b NUMERIC(5,1), c float(5,2),
+d NUMERIC(6,4), e float, f DECIMAL(6,3), g int(11), h DOUBLE(10,3),
+i DOUBLE);
+select COLUMN_NAME,COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH,
+CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
+from information_schema.columns where table_name= 't1';
+COLUMN_NAME COLUMN_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE
+a decimal(5,3) NULL NULL 5 3
+b decimal(5,1) NULL NULL 5 1
+c float(5,2) NULL NULL 5 2
+d decimal(6,4) NULL NULL 6 4
+e float NULL NULL 12 NULL
+f decimal(6,3) NULL NULL 6 3
+g int(11) NULL NULL 10 0
+h double(10,3) NULL NULL 10 3
+i double NULL NULL 22 NULL
+drop table t1;
+create table t115 as select table_name, column_name, column_type
+from information_schema.columns where table_name = 'proc';
+select * from t115;
+table_name column_name column_type
+proc db char(64)
+proc name char(64)
+proc type enum('FUNCTION','PROCEDURE')
+proc specific_name char(64)
+proc language enum('SQL')
+proc sql_data_access enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
+proc is_deterministic enum('YES','NO')
+proc security_type enum('INVOKER','DEFINER')
+proc param_list blob
+proc returns char(64)
+proc body longblob
+proc definer char(77)
+proc created timestamp
+proc modified timestamp
+proc sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE')
+proc comment char(64)
+drop table t115;
+create procedure p108 () begin declare c cursor for select data_type
+from information_schema.columns; open c; open c; end;//
+call p108()//
+ERROR 24000: Cursor is already open
+drop procedure p108;
+create view v1 as select A1.table_name from information_schema.TABLES A1
+where table_name= "user";
+select * from v1;
+table_name
+user
+drop view v1;
+create view vo as select 'a' union select 'a';
+show index from vo;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+select * from information_schema.TABLE_CONSTRAINTS where
+TABLE_NAME= "vo";
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+select * from information_schema.KEY_COLUMN_USAGE where
+TABLE_NAME= "vo";
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+drop view vo;
+select TABLE_NAME,TABLE_TYPE,ENGINE
+from information_schema.tables
+where table_schema='information_schema' limit 2;
+TABLE_NAME TABLE_TYPE ENGINE
+CHARACTER_SETS SYSTEM VIEW MEMORY
+COLLATIONS SYSTEM VIEW MEMORY
+show tables from information_schema like "T%";
+Tables_in_information_schema (T%)
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+create database information_schema;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+show full tables like "T%";
+Tables_in_information_schema (T%) Table_type
+TABLES SYSTEM VIEW
+TABLE_CONSTRAINTS SYSTEM VIEW
+TABLE_PRIVILEGES SYSTEM VIEW
+TRIGGERS SYSTEM VIEW
+create table t1(a int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use test;
+show tables;
+Tables_in_test
+use information_schema;
+show tables like "T%";
+Tables_in_information_schema (T%)
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+select table_name from tables where table_name='user';
+table_name
+user
+select column_name, privileges from columns
+where table_name='user' and column_name like '%o%';
+column_name privileges
+Host select,insert,update,references
+Password select,insert,update,references
+Drop_priv select,insert,update,references
+Reload_priv select,insert,update,references
+Shutdown_priv select,insert,update,references
+Process_priv select,insert,update,references
+Show_db_priv select,insert,update,references
+Lock_tables_priv select,insert,update,references
+Show_view_priv select,insert,update,references
+Create_routine_priv select,insert,update,references
+Alter_routine_priv select,insert,update,references
+max_questions select,insert,update,references
+max_connections select,insert,update,references
+max_user_connections select,insert,update,references
+use test;
+create function sub1(i int) returns int
+return i+1;
+create table t1(f1 int);
+create view v2 (c) as select f1 from t1;
+create view v3 (c) as select sub1(1);
+create table t4(f1 int, KEY f1_key (f1));
+drop table t1;
+drop function sub1;
+select table_name from information_schema.views
+where table_schema='test';
+table_name
+v2
+v3
+Warnings:
+Warning 1356 View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+Warning 1356 View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select table_name from information_schema.views
+where table_schema='test';
+table_name
+v2
+v3
+Warnings:
+Warning 1356 View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+Warning 1356 View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select column_name from information_schema.columns
+where table_schema='test';
+column_name
+f1
+Warnings:
+Warning 1356 View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+Warning 1356 View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select index_name from information_schema.statistics where table_schema='test';
+index_name
+f1_key
+select constraint_name from information_schema.table_constraints
+where table_schema='test';
+constraint_name
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `test`.`t1`.`f1` AS `c` from `t1`
+Warnings:
+Warning 1356 View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+show create table v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `sub1`(1) AS `c`
+Warnings:
+Warning 1356 View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+drop view v2;
+drop view v3;
+drop table t4;
+select * from information_schema.table_names;
+ERROR 42S02: Unknown table 'table_names' in information_schema
+select column_type from information_schema.columns
+where table_schema="information_schema" and table_name="COLUMNS" and
+(column_name="character_set_name" or column_name="collation_name");
+column_type
+varchar(64)
+varchar(64)
+select TABLE_ROWS from information_schema.tables where
+table_schema="information_schema" and table_name="COLUMNS";
+TABLE_ROWS
+NULL
+select table_type from information_schema.tables
+where table_schema="mysql" and table_name="user";
+table_type
+BASE TABLE
+show open tables where `table` like "user";
+Database Table In_use Name_locked
+mysql user 0 0
+show status where variable_name like "%database%";
+Variable_name Value
+Com_show_databases 3
+show variables where variable_name like "skip_show_databas";
+Variable_name Value
+show global status like "Threads_running";
+Variable_name Value
+Threads_running #
+create table t1(f1 int);
+create table t2(f2 int);
+create view v1 as select * from t1, t2;
+set @got_val= (select count(*) from information_schema.columns);
+drop view v1;
+drop table t1, t2;
+CREATE TABLE t_crashme ( f1 BIGINT);
+CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1;
+CREATE VIEW a2 AS SELECT t_CRASHME FROM a1;
+count(*)
+101
+drop view a2, a1;
+drop table t_crashme;
+select table_schema,table_name, column_name from
+information_schema.columns
+where data_type = 'longtext';
+table_schema table_name column_name
+information_schema COLUMNS COLUMN_DEFAULT
+information_schema COLUMNS COLUMN_TYPE
+information_schema ROUTINES ROUTINE_DEFINITION
+information_schema ROUTINES SQL_MODE
+information_schema TRIGGERS ACTION_CONDITION
+information_schema TRIGGERS ACTION_STATEMENT
+information_schema TRIGGERS SQL_MODE
+information_schema TRIGGERS DEFINER
+information_schema VIEWS VIEW_DEFINITION
+select table_name, column_name, data_type from information_schema.columns
+where data_type = 'datetime';
+table_name column_name data_type
+ROUTINES CREATED datetime
+ROUTINES LAST_ALTERED datetime
+TABLES CREATE_TIME datetime
+TABLES UPDATE_TIME datetime
+TABLES CHECK_TIME datetime
+TRIGGERS CREATED datetime
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
+WHERE NOT EXISTS
+(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
+WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
+AND A.TABLE_NAME = B.TABLE_NAME);
+COUNT(*)
+0
+create table t1
+( x_bigint BIGINT,
+x_integer INTEGER,
+x_smallint SMALLINT,
+x_decimal DECIMAL(5,3),
+x_numeric NUMERIC(5,3),
+x_real REAL,
+x_float FLOAT,
+x_double_precision DOUBLE PRECISION );
+SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE TABLE_NAME= 't1';
+COLUMN_NAME CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH
+x_bigint NULL NULL
+x_integer NULL NULL
+x_smallint NULL NULL
+x_decimal NULL NULL
+x_numeric NULL NULL
+x_real NULL NULL
+x_float NULL NULL
+x_double_precision NULL NULL
+drop table t1;
+grant select on test.* to mysqltest_4@localhost;
+SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
+where COLUMN_NAME='TABLE_NAME';
+TABLE_NAME COLUMN_NAME PRIVILEGES
+COLUMNS TABLE_NAME select
+COLUMN_PRIVILEGES TABLE_NAME select
+KEY_COLUMN_USAGE TABLE_NAME select
+STATISTICS TABLE_NAME select
+TABLES TABLE_NAME select
+TABLE_CONSTRAINTS TABLE_NAME select
+TABLE_PRIVILEGES TABLE_NAME select
+VIEWS TABLE_NAME select
+delete from mysql.user where user='mysqltest_4';
+delete from mysql.db where user='mysqltest_4';
+flush privileges;
+SELECT table_schema, count(*) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA;
+table_schema count(*)
+information_schema 16
+mysql 17
+create table t1 (i int, j int);
+create trigger trg1 before insert on t1 for each row
+begin
+if new.j > 10 then
+set new.j := 10;
+end if;
+end|
+create trigger trg2 before update on t1 for each row
+begin
+if old.i % 2 = 0 then
+set new.j := -1;
+end if;
+end|
+create trigger trg3 after update on t1 for each row
+begin
+if new.j = -1 then
+set @fired:= "Yes";
+end if;
+end|
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 begin
+if new.j > 10 then
+set new.j := 10;
+end if;
+end BEFORE NULL root@localhost
+trg2 UPDATE t1 begin
+if old.i % 2 = 0 then
+set new.j := -1;
+end if;
+end BEFORE NULL root@localhost
+trg3 UPDATE t1 begin
+if new.j = -1 then
+set @fired:= "Yes";
+end if;
+end AFTER NULL root@localhost
+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 test trg1 INSERT NULL test t1 0 NULL begin
+if new.j > 10 then
+set new.j := 10;
+end if;
+end ROW BEFORE NULL NULL OLD NEW NULL root@localhost
+NULL test trg2 UPDATE NULL test t1 0 NULL begin
+if old.i % 2 = 0 then
+set new.j := -1;
+end if;
+end ROW BEFORE NULL NULL OLD NEW NULL root@localhost
+NULL test trg3 UPDATE NULL test t1 0 NULL begin
+if new.j = -1 then
+set @fired:= "Yes";
+end if;
+end ROW AFTER NULL NULL OLD NEW NULL root@localhost
+drop trigger trg1;
+drop trigger trg2;
+drop trigger trg3;
+drop table t1;
+create database mysqltest;
+create table mysqltest.t1 (f1 int, f2 int);
+create table mysqltest.t2 (f1 int);
+grant select (f1) on mysqltest.t1 to user1@localhost;
+grant select on mysqltest.t2 to user2@localhost;
+grant select on mysqltest.* to user3@localhost;
+grant select on *.* to user4@localhost;
+select * from information_schema.column_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user1'@'localhost' NULL mysqltest t1 f1 SELECT NO
+select * from information_schema.table_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.schema_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.user_privileges order by grantee;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user1'@'localhost' NULL USAGE NO
+show grants;
+Grants for user1@localhost
+GRANT USAGE ON *.* TO 'user1'@'localhost'
+GRANT SELECT (f1) ON `mysqltest`.`t1` TO 'user1'@'localhost'
+select * from information_schema.column_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.table_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user2'@'localhost' NULL mysqltest t2 SELECT NO
+select * from information_schema.schema_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.user_privileges order by grantee;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user2'@'localhost' NULL USAGE NO
+show grants;
+Grants for user2@localhost
+GRANT USAGE ON *.* TO 'user2'@'localhost'
+GRANT SELECT ON `mysqltest`.`t2` TO 'user2'@'localhost'
+select * from information_schema.column_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.table_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.schema_privileges order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'user3'@'localhost' NULL mysqltest SELECT NO
+select * from information_schema.user_privileges order by grantee;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user3'@'localhost' NULL USAGE NO
+show grants;
+Grants for user3@localhost
+GRANT USAGE ON *.* TO 'user3'@'localhost'
+GRANT SELECT ON `mysqltest`.* TO 'user3'@'localhost'
+select * from information_schema.column_privileges where grantee like '%user%'
+order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user1'@'localhost' NULL mysqltest t1 f1 SELECT NO
+select * from information_schema.table_privileges where grantee like '%user%'
+order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user2'@'localhost' NULL mysqltest t2 SELECT NO
+select * from information_schema.schema_privileges where grantee like '%user%'
+order by grantee;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'user3'@'localhost' NULL mysqltest SELECT NO
+select * from information_schema.user_privileges where grantee like '%user%'
+order by grantee;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user1'@'localhost' NULL USAGE NO
+'user2'@'localhost' NULL USAGE NO
+'user3'@'localhost' NULL USAGE NO
+'user4'@'localhost' NULL SELECT NO
+show grants;
+Grants for user4@localhost
+GRANT SELECT ON *.* TO 'user4'@'localhost'
+drop user user1@localhost, user2@localhost, user3@localhost, user4@localhost;
+use test;
+drop database mysqltest;
+drop procedure if exists p1;
+drop procedure if exists p2;
+create procedure p1 () modifies sql data set @a = 5;
+create procedure p2 () set @a = 5;
+select sql_data_access from information_schema.routines
+where specific_name like 'p%';
+sql_data_access
+MODIFIES SQL DATA
+CONTAINS SQL
+drop procedure p1;
+drop procedure p2;
+show create database information_schema;
+Database Create Database
+information_schema CREATE DATABASE `information_schema` /*!40100 DEFAULT CHARACTER SET utf8 */
+create table t1(f1 LONGBLOB, f2 LONGTEXT);
+select column_name,data_type,CHARACTER_OCTET_LENGTH,
+CHARACTER_MAXIMUM_LENGTH
+from information_schema.columns
+where table_name='t1';
+column_name data_type CHARACTER_OCTET_LENGTH CHARACTER_MAXIMUM_LENGTH
+f1 longblob 4294967295 4294967295
+f2 longtext 4294967295 4294967295
+drop table t1;
+create table t1(f1 tinyint, f2 SMALLINT, f3 mediumint, f4 int,
+f5 BIGINT, f6 BIT, f7 bit(64));
+select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
+from information_schema.columns
+where table_name='t1';
+column_name NUMERIC_PRECISION NUMERIC_SCALE
+f1 3 0
+f2 5 0
+f3 7 0
+f4 10 0
+f5 19 0
+f6 1 NULL
+f7 64 NULL
+drop table t1;
+create table t1 (f1 integer);
+create trigger tr1 after insert on t1 for each row set @test_var=42;
+use information_schema;
+select trigger_schema, trigger_name from triggers where
+trigger_name='tr1';
+trigger_schema trigger_name
+test tr1
+use test;
+drop table t1;
+create table t1 (a int not null, b int);
+use information_schema;
+select column_name, column_default from columns
+where table_schema='test' and table_name='t1';
+column_name column_default
+a NULL
+b NULL
+use test;
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) NO NULL
+b int(11) YES NULL
+drop table t1;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+SHOW TABLE STATUS FROM test
+WHERE name IN ( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
+WHERE TABLE_SCHEMA='test' AND TABLE_TYPE='BASE TABLE');
+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 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
+t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
+DROP TABLE t1,t2;
+create table t1(f1 int);
+create view v1 (c) as select f1 from t1;
+select database();
+database()
+NULL
+show fields from test.v1;
+Field Type Null Key Default Extra
+c int(11) YES NULL
+drop view v1;
+drop table t1;
+alter database information_schema;
+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
+drop database information_schema;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop table information_schema.tables;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table information_schema.tables;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+create temporary table schemata(f1 char(10));
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE PROCEDURE p1 ()
+BEGIN
+SELECT 'foo' FROM DUAL;
+END |
+ERROR 42000: Unknown database 'information_schema'
+select ROUTINE_NAME from routines;
+ROUTINE_NAME
+grant all on information_schema.* to 'user1'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant select on information_schema.* to 'user1'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use test;
+create table t1(id int);
+insert into t1(id) values (1);
+select 1 from (select 1 from test.t1) a;
+1
+1
+use information_schema;
+select 1 from (select 1 from test.t1) a;
+1
+1
+use test;
+drop table t1;
+create table t1 (f1 int(11));
+create view v1 as select * from t1;
+drop table t1;
+select table_type from information_schema.tables
+where table_name="v1";
+table_type
+VIEW
+drop view v1;
+create temporary table t1(f1 int, index(f1));
+show columns from t1;
+Field Type Null Key Default Extra
+f1 int(11) YES MUL NULL
+describe t1;
+Field Type Null Key Default Extra
+f1 int(11) YES MUL NULL
+show indexes from t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 1 f1 1 f1 A NULL NULL NULL YES BTREE
+drop table t1;
+create table t1(f1 binary(32), f2 varbinary(64));
+select character_maximum_length, character_octet_length
+from information_schema.columns where table_name='t1';
+character_maximum_length character_octet_length
+32 32
+64 64
+drop table t1;
+CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), f3 BIGINT);
+INSERT INTO t1 SET f1 = 1, f2 = 'Schoenenbourg', f3 = 1;
+CREATE FUNCTION func2() RETURNS BIGINT RETURN 1;
+CREATE FUNCTION func1() RETURNS BIGINT
+BEGIN
+RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS);
+END//
+CREATE VIEW v1 AS SELECT 1 FROM t1
+WHERE f3 = (SELECT func2 ());
+SELECT func1();
+func1()
+1
+DROP TABLE t1;
+DROP VIEW v1;
+DROP FUNCTION func1;
+DROP FUNCTION func2;
+select column_type, group_concat(table_schema, '.', table_name), count(*) as num
+from information_schema.columns where
+table_schema='information_schema' and
+(column_type = 'varchar(7)' or column_type = 'varchar(20)')
+group by column_type order by num;
+column_type group_concat(table_schema, '.', table_name) num
+varchar(20) information_schema.COLUMNS 1
+varchar(7) information_schema.ROUTINES,information_schema.VIEWS 2
+create table t1(f1 char(1) not null, f2 char(9) not null)
+default character set utf8;
+select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from
+information_schema.columns where table_schema='test' and table_name = 't1';
+CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH
+1 3
+9 27
+drop table t1;
+use mysql;
+INSERT INTO `proc` VALUES ('test','','PROCEDURE','','SQL','CONTAINS_SQL',
+'NO','DEFINER','','','BEGIN\r\n \r\nEND','root@%','2006-03-02 18:40:03',
+'2006-03-02 18:40:03','','');
+select routine_name from information_schema.routines;
+routine_name
+
+delete from proc where name='';
+use test;
+grant select on test.* to mysqltest_1@localhost;
+create table t1 (id int);
+create view v1 as select * from t1;
+create definer = mysqltest_1@localhost
+sql security definer view v2 as select 1;
+select * from information_schema.views
+where table_name='v1' or table_name='v2';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL test v1 NONE YES root@localhost DEFINER
+NULL test v2 /* ALGORITHM=UNDEFINED */ select 1 AS `1` NONE NO mysqltest_1@localhost DEFINER
+drop view v1, v2;
+drop table t1;
+drop user mysqltest_1@localhost;
+set @a:= '.';
+create table t1(f1 char(5));
+create table t2(f1 char(5));
+select concat(@a, table_name), @a, table_name
+from information_schema.tables where table_schema = 'test';
+concat(@a, table_name) @a table_name
+.t1 . t1
+.t2 . t2
+drop table t1,t2;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+CREATE PROCEDURE p1() SET @a= 1;
+CREATE FUNCTION f1() RETURNS INT RETURN @a + 1;
+CREATE USER mysql_bug20230@localhost;
+GRANT EXECUTE ON PROCEDURE p1 TO mysql_bug20230@localhost;
+GRANT EXECUTE ON FUNCTION f1 TO mysql_bug20230@localhost;
+SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES;
+ROUTINE_NAME ROUTINE_DEFINITION
+f1 RETURN @a + 1
+p1 SET @a= 1
+SHOW CREATE PROCEDURE p1;
+Procedure sql_mode Create Procedure
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
+SET @a= 1
+SHOW CREATE FUNCTION f1;
+Function sql_mode Create Function
+f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
+RETURN @a + 1
+SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES;
+ROUTINE_NAME ROUTINE_DEFINITION
+f1 NULL
+p1 NULL
+SHOW CREATE PROCEDURE p1;
+Procedure sql_mode Create Procedure
+p1 NULL
+SHOW CREATE FUNCTION f1;
+Function sql_mode Create Function
+f1 NULL
+CALL p1();
+SELECT f1();
+f1()
+2
+DROP FUNCTION f1;
+DROP PROCEDURE p1;
+DROP USER mysql_bug20230@localhost;
+SELECT t.table_name, c1.column_name
+FROM information_schema.tables t
+INNER JOIN
+information_schema.columns c1
+ON t.table_schema = c1.table_schema AND
+t.table_name = c1.table_name
+WHERE t.table_schema = 'information_schema' AND
+c1.ordinal_position =
+( SELECT COALESCE(MIN(c2.ordinal_position),1)
+FROM information_schema.columns c2
+WHERE c2.table_schema = t.table_schema AND
+c2.table_name = t.table_name AND
+c2.column_name LIKE '%SCHEMA%'
+ );
+table_name column_name
+CHARACTER_SETS CHARACTER_SET_NAME
+COLLATIONS COLLATION_NAME
+COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+COLUMNS TABLE_SCHEMA
+COLUMN_PRIVILEGES TABLE_SCHEMA
+KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
+ROUTINES ROUTINE_SCHEMA
+SCHEMATA SCHEMA_NAME
+SCHEMA_PRIVILEGES TABLE_SCHEMA
+STATISTICS TABLE_SCHEMA
+TABLES TABLE_SCHEMA
+TABLE_CONSTRAINTS CONSTRAINT_SCHEMA
+TABLE_PRIVILEGES TABLE_SCHEMA
+TRIGGERS TRIGGER_SCHEMA
+USER_PRIVILEGES GRANTEE
+VIEWS TABLE_SCHEMA
+SELECT t.table_name, c1.column_name
+FROM information_schema.tables t
+INNER JOIN
+information_schema.columns c1
+ON t.table_schema = c1.table_schema AND
+t.table_name = c1.table_name
+WHERE t.table_schema = 'information_schema' AND
+c1.ordinal_position =
+( SELECT COALESCE(MIN(c2.ordinal_position),1)
+FROM information_schema.columns c2
+WHERE c2.table_schema = 'information_schema' AND
+c2.table_name = t.table_name AND
+c2.column_name LIKE '%SCHEMA%'
+ );
+table_name column_name
+CHARACTER_SETS CHARACTER_SET_NAME
+COLLATIONS COLLATION_NAME
+COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+COLUMNS TABLE_SCHEMA
+COLUMN_PRIVILEGES TABLE_SCHEMA
+KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
+ROUTINES ROUTINE_SCHEMA
+SCHEMATA SCHEMA_NAME
+SCHEMA_PRIVILEGES TABLE_SCHEMA
+STATISTICS TABLE_SCHEMA
+TABLES TABLE_SCHEMA
+TABLE_CONSTRAINTS CONSTRAINT_SCHEMA
+TABLE_PRIVILEGES TABLE_SCHEMA
+TRIGGERS TRIGGER_SCHEMA
+USER_PRIVILEGES GRANTEE
+VIEWS TABLE_SCHEMA
+SELECT MAX(table_name) FROM information_schema.tables;
+MAX(table_name)
+VIEWS
+SELECT table_name from information_schema.tables
+WHERE table_name=(SELECT MAX(table_name)
+FROM information_schema.tables);
+table_name
+VIEWS
+DROP TABLE IF EXISTS bug23037;
+DROP FUNCTION IF EXISTS get_value;
+SELECT COLUMN_NAME, MD5(COLUMN_DEFAULT), LENGTH(COLUMN_DEFAULT) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='bug23037';
+COLUMN_NAME MD5(COLUMN_DEFAULT) LENGTH(COLUMN_DEFAULT)
+fld1 7cf7a6782be951a1f2464a350da926a5 65532
+SELECT MD5(get_value());
+MD5(get_value())
+7cf7a6782be951a1f2464a350da926a5
+SELECT COLUMN_NAME, MD5(COLUMN_DEFAULT), LENGTH(COLUMN_DEFAULT), COLUMN_DEFAULT=get_value() FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='bug23037';
+COLUMN_NAME MD5(COLUMN_DEFAULT) LENGTH(COLUMN_DEFAULT) COLUMN_DEFAULT=get_value()
+fld1 7cf7a6782be951a1f2464a350da926a5 65532 1
+DROP TABLE bug23037;
+DROP FUNCTION get_value;
+create view v1 as
+select table_schema as object_schema,
+table_name as object_name,
+table_type as object_type
+from information_schema.tables
+order by object_schema;
+explain select * from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE tables ALL NULL NULL NULL NULL 2 Using filesort
+explain select * from (select table_name from information_schema.tables) as a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
+2 DERIVED tables ALL NULL NULL NULL NULL 2
+drop view v1;
+create table t1 (f1 int(11));
+create table t2 (f1 int(11), f2 int(11));
+select table_name from information_schema.tables
+where table_schema = 'test' and table_name not in
+(select table_name from information_schema.columns
+where table_schema = 'test' and column_name = 'f3');
+table_name
+t1
+t2
+drop table t1,t2;
+select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
+(select cast(table_name as char) from information_schema.tables
+order by table_name limit 1) limit 1;
+f1
+1
+select t.table_name, group_concat(t.table_schema, '.', t.table_name),
+count(*) as num1
+from information_schema.tables t
+inner join information_schema.columns c1
+on t.table_schema = c1.table_schema AND t.table_name = c1.table_name
+where t.table_schema = 'information_schema' and
+c1.ordinal_position =
+(select isnull(c2.column_type) -
+isnull(group_concat(c2.table_schema, '.', c2.table_name)) +
+count(*) as num
+from information_schema.columns c2 where
+c2.table_schema='information_schema' and
+(c2.column_type = 'varchar(7)' or c2.column_type = 'varchar(20)')
+group by c2.column_type order by num limit 1)
+group by t.table_name order by num1, t.table_name;
+table_name group_concat(t.table_schema, '.', t.table_name) num1
+CHARACTER_SETS information_schema.CHARACTER_SETS 1
+COLLATIONS information_schema.COLLATIONS 1
+COLLATION_CHARACTER_SET_APPLICABILITY information_schema.COLLATION_CHARACTER_SET_APPLICABILITY 1
+COLUMNS information_schema.COLUMNS 1
+COLUMN_PRIVILEGES information_schema.COLUMN_PRIVILEGES 1
+KEY_COLUMN_USAGE information_schema.KEY_COLUMN_USAGE 1
+ROUTINES information_schema.ROUTINES 1
+SCHEMATA information_schema.SCHEMATA 1
+SCHEMA_PRIVILEGES information_schema.SCHEMA_PRIVILEGES 1
+STATISTICS information_schema.STATISTICS 1
+TABLES information_schema.TABLES 1
+TABLE_CONSTRAINTS information_schema.TABLE_CONSTRAINTS 1
+TABLE_PRIVILEGES information_schema.TABLE_PRIVILEGES 1
+TRIGGERS information_schema.TRIGGERS 1
+USER_PRIVILEGES information_schema.USER_PRIVILEGES 1
+VIEWS information_schema.VIEWS 1
+create table t1(f1 int);
+create view v1 as select f1+1 as a from t1;
+create table t2 (f1 int, f2 int);
+create view v2 as select f1+1 as a, f2 as b from t2;
+select table_name, is_updatable from information_schema.views;
+table_name is_updatable
+v1 NO
+v2 YES
+delete from v1;
+drop view v1,v2;
+drop table t1,t2;
+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
+t1_ai INSERT t1 set @a = new.a + new.b + new.c AFTER NULL root@localhost
+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
+select trigger_name from information_schema.triggers
+where event_object_table='t1';
+trigger_name
+drop user mysqltest_1@localhost;
+drop database mysqltest;
+create table t1 (
+f1 varchar(50),
+f2 varchar(50) not null,
+f3 varchar(50) default '',
+f4 varchar(50) default NULL,
+f5 bigint not null,
+f6 bigint not null default 10,
+f7 datetime not null,
+f8 datetime default '2006-01-01'
+);
+select column_default from information_schema.columns where table_name= 't1';
+column_default
+NULL
+NULL
+
+NULL
+NULL
+10
+NULL
+2006-01-01 00:00:00
+show columns from t1;
+Field Type Null Key Default Extra
+f1 varchar(50) YES NULL
+f2 varchar(50) NO NULL
+f3 varchar(50) YES
+f4 varchar(50) YES NULL
+f5 bigint(20) NO NULL
+f6 bigint(20) NO 10
+f7 datetime NO NULL
+f8 datetime YES 2006-01-01 00:00:00
+drop table t1;
+End of 5.0 tests.
+show fields from information_schema.table_names;
+ERROR 42S02: Unknown table 'table_names' in information_schema
+show keys from information_schema.table_names;
+ERROR 42S02: Unknown table 'table_names' in information_schema
diff --git a/mysql-test/r/information_schema_chmod.result b/mysql-test/r/information_schema_chmod.result
new file mode 100644
index 00000000000..36124559439
--- /dev/null
+++ b/mysql-test/r/information_schema_chmod.result
@@ -0,0 +1,5 @@
+create database mysqltest;
+create table mysqltest.t1(a int);
+select table_schema from information_schema.tables where table_schema='mysqltest';
+table_schema
+drop database mysqltest;
diff --git a/mysql-test/r/information_schema_db.result b/mysql-test/r/information_schema_db.result
new file mode 100644
index 00000000000..dd1f0295277
--- /dev/null
+++ b/mysql-test/r/information_schema_db.result
@@ -0,0 +1,211 @@
+drop table if exists t1,t2;
+drop view if exists v1,v2;
+drop function if exists f1;
+drop function if exists f2;
+use INFORMATION_SCHEMA;
+show tables;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+show tables from INFORMATION_SCHEMA like 'T%';
+Tables_in_information_schema (T%)
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+create database `inf%`;
+create database mbase;
+use `inf%`;
+show tables;
+Tables_in_inf%
+grant all privileges on `inf%`.* to 'mysqltest_1'@'localhost';
+grant all privileges on `mbase`.* to 'mysqltest_1'@'localhost';
+create table t1 (f1 int);
+create function func1(curr_int int) returns int
+begin
+declare ret_val int;
+select max(f1) from t1 into ret_val;
+return ret_val;
+end|
+create view v1 as select f1 from t1 where f1 = func1(f1);
+create function func2() returns int return 1;
+use mbase;
+create procedure p1 ()
+begin
+select table_name from information_schema.key_column_usage
+order by table_name;
+end|
+create table t1
+(f1 int(10) unsigned not null,
+f2 varchar(100) not null,
+primary key (f1), unique key (f2));
+select * from information_schema.tables;
+call mbase.p1();
+call mbase.p1();
+call mbase.p1();
+use `inf%`;
+drop user mysqltest_1@localhost;
+drop table t1;
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='inf%' and func2();
+table_name table_type table_comment
+v1 VIEW View 'inf%.v1' references invalid table(s) or column(s) or function(s) or define
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='inf%' and func2();
+table_name table_type table_comment
+v1 VIEW View 'inf%.v1' references invalid table(s) or column(s) or function(s) or define
+drop view v1;
+drop function func1;
+drop function func2;
+drop database `inf%`;
+drop procedure mbase.p1;
+drop database mbase;
+use test;
+create table t1 (i int);
+create function f1 () returns int return (select max(i) from t1);
+create view v1 as select f1();
+create table t2 (id int);
+create function f2 () returns int return (select max(i) from t2);
+create view v2 as select f2();
+drop table t2;
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='test';
+table_name table_type table_comment
+t1 BASE TABLE
+v1 VIEW VIEW
+v2 VIEW VIEW
+drop table t1;
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='test';
+table_name table_type table_comment
+v1 VIEW VIEW
+v2 VIEW VIEW
+drop function f1;
+drop function f2;
+drop view v1, v2;
+create database testdb_1;
+create user testdb_1@localhost;
+grant all on testdb_1.* to testdb_1@localhost with grant option;
+create user testdb_2@localhost;
+grant all on test.* to testdb_2@localhost with grant option;
+use testdb_1;
+create table t1 (f1 char(4));
+create view v1 as select f1 from t1;
+grant insert on v1 to testdb_2@localhost;
+create view v5 as select f1 from t1;
+grant show view on v5 to testdb_2@localhost;
+create definer=`no_such_user`@`no_such_host` view v6 as select f1 from t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use testdb_1;
+create view v6 as select f1 from t1;
+grant show view on v6 to testdb_2@localhost;
+create table t2 (f1 char(4));
+create definer=`no_such_user`@`no_such_host` view v7 as select * from t2;
+Warnings:
+Note 1449 There is no 'no_such_user'@'no_such_host' registered
+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
+v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v6` AS select `t1`.`f1` AS `f1` from `t1`
+show create view testdb_1.v7;
+View Create View
+v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2`
+Warnings:
+Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+show fields from testdb_1.v7;
+Field Type Null Key Default Extra
+f1 null YES NULL
+Warnings:
+Note 1449 There is no 'no_such_user'@'no_such_host' registered
+create table t3 (f1 char(4), f2 char(4));
+create view v3 as select f1,f2 from t3;
+grant insert(f1), insert(f2) on v3 to testdb_2@localhost;
+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
+show create view testdb_1.v5;
+View Create View
+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`
+show fields from testdb_1.v6;
+Field Type Null Key Default Extra
+show create view testdb_1.v6;
+View Create View
+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`
+show fields from testdb_1.v7;
+Field Type Null Key Default Extra
+f1 null YES NULL
+Warnings:
+Note 1449 There is no 'no_such_user'@'no_such_host' registered
+show create view testdb_1.v7;
+View Create View
+v7 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such_user`@`no_such_host` SQL SECURITY DEFINER VIEW `v7` AS select `testdb_1`.`t2`.`f1` AS `f1` from `t2`
+Warnings:
+Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+revoke insert(f1) on v3 from testdb_2@localhost;
+revoke show view on v5 from testdb_2@localhost;
+use testdb_1;
+revoke show view on v6 from testdb_2@localhost;
+show fields from testdb_1.v5;
+ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v5'
+show create view testdb_1.v5;
+ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v5'
+show fields from testdb_1.v6;
+ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v6'
+show create view testdb_1.v6;
+ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v6'
+show fields from testdb_1.v7;
+ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v7'
+show create view testdb_1.v7;
+ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v7'
+show create view v4;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show fields from v4;
+Field Type Null Key Default Extra
+f1 null YES NULL
+f2 char(4) YES NULL
+show fields from v2;
+Field Type Null Key Default Extra
+f1 char(4) YES NULL
+show fields from testdb_1.v1;
+Field Type Null Key Default Extra
+f1 char(4) YES NULL
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1`
+show create view testdb_1.v1;
+ERROR 42000: SHOW VIEW command denied to user 'testdb_2'@'localhost' for table 'v1'
+select table_name from information_schema.columns a
+where a.table_name = 'v2';
+table_name
+v2
+select view_definition from information_schema.views a
+where a.table_name = 'v2';
+view_definition
+/* ALGORITHM=UNDEFINED */ select `v1`.`f1` AS `f1` from `testdb_1`.`v1`
+select view_definition from information_schema.views a
+where a.table_name = 'testdb_1.v1';
+view_definition
+select * from v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+use test;
+drop view testdb_1.v1, v2, testdb_1.v3, v4;
+drop database testdb_1;
+drop user testdb_1@localhost;
+drop user testdb_2@localhost;
diff --git a/mysql-test/r/information_schema_inno.result b/mysql-test/r/information_schema_inno.result
new file mode 100644
index 00000000000..fb6584673f6
--- /dev/null
+++ b/mysql-test/r/information_schema_inno.result
@@ -0,0 +1,27 @@
+DROP TABLE IF EXISTS t1,t2,t3;
+CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
+CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id, id),
+FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE,
+FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB;
+CREATE TABLE t3 (id INT PRIMARY KEY, t2_id INT, INDEX par_ind (t2_id),
+FOREIGN KEY (id, t2_id) REFERENCES t2(t1_id, id) ON DELETE CASCADE) ENGINE=INNODB;
+select * from information_schema.TABLE_CONSTRAINTS where
+TABLE_SCHEMA= "test";
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL test PRIMARY test t1 PRIMARY KEY
+NULL test PRIMARY test t2 PRIMARY KEY
+NULL test t2_ibfk_1 test t2 FOREIGN KEY
+NULL test t2_ibfk_2 test t2 FOREIGN KEY
+NULL test PRIMARY test t3 PRIMARY KEY
+NULL test t3_ibfk_1 test t3 FOREIGN KEY
+select * from information_schema.KEY_COLUMN_USAGE where
+TABLE_SCHEMA= "test";
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL test PRIMARY NULL test t1 id 1 NULL NULL NULL NULL
+NULL test PRIMARY NULL test t2 id 1 NULL NULL NULL NULL
+NULL test t2_ibfk_1 NULL test t2 t1_id 1 1 test t1 id
+NULL test t2_ibfk_2 NULL test t2 t1_id 1 1 test t1 id
+NULL test PRIMARY NULL test t3 id 1 NULL NULL NULL NULL
+NULL test t3_ibfk_1 NULL test t3 id 1 1 test t2 t1_id
+NULL test t3_ibfk_1 NULL test t3 t2_id 2 2 test t2 id
+drop table t3, t2, t1;
diff --git a/mysql-test/r/init_connect.result b/mysql-test/r/init_connect.result
index db1e72dfca9..f5ec0bdc932 100644
--- a/mysql-test/r/init_connect.result
+++ b/mysql-test/r/init_connect.result
@@ -12,7 +12,7 @@ set GLOBAL init_connect=DEFAULT;
select @a;
@a
NULL
-set global init_connect="create table t1(a char(10));\
+set global init_connect="drop table if exists t1; create table t1(a char(10));\
insert into t1 values ('\0');insert into t1 values('abc')";
select hex(a) from t1;
hex(a)
@@ -22,3 +22,117 @@ set GLOBAL init_connect="adsfsdfsdfs";
select @a;
Got one of the listed errors
drop table t1;
+End of 4.1 tests
+create table t1 (x int);
+insert into t1 values (3), (5), (7);
+create table t2 (y int);
+create user mysqltest1@localhost;
+grant all privileges on test.* to mysqltest1@localhost;
+set global init_connect="create procedure p1() select * from t1";
+call p1();
+x
+3
+5
+7
+drop procedure p1;
+set global init_connect="create procedure p1(x int)\
+begin\
+ select count(*) from t1;\
+ select * from t1;\
+ set @x = x;
+end";
+call p1(42);
+count(*)
+3
+x
+3
+5
+7
+select @x;
+@x
+42
+set global init_connect="call p1(4711)";
+select @x;
+@x
+4711
+set global init_connect="drop procedure if exists p1";
+call p1();
+ERROR 42000: PROCEDURE test.p1 does not exist
+create procedure p1(out sum int)
+begin
+declare n int default 0;
+declare c cursor for select * from t1;
+declare exit handler for not found
+begin
+close c;
+set sum = n;
+end;
+open c;
+loop
+begin
+declare x int;
+fetch c into x;
+if x > 3 then
+set n = n + x;
+end if;
+end;
+end loop;
+end|
+set global init_connect="call p1(@sum)";
+select @sum;
+@sum
+12
+drop procedure p1;
+create procedure p1(tbl char(10), v int)
+begin
+set @s = concat('insert into ', tbl, ' values (?)');
+set @v = v;
+prepare stmt1 from @s;
+execute stmt1 using @v;
+deallocate prepare stmt1;
+end|
+set global init_connect="call p1('t1', 11)";
+select * from t1;
+x
+3
+5
+7
+11
+drop procedure p1;
+create function f1() returns int
+begin
+declare n int;
+select count(*) into n from t1;
+return n;
+end|
+set global init_connect="set @x = f1()";
+select @x;
+@x
+4
+set global init_connect="create view v1 as select f1()";
+select * from v1;
+f1()
+4
+set global init_connect="drop view v1";
+select * from v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+drop function f1;
+create trigger trg1
+after insert on t2
+for each row
+insert into t1 values (new.y);
+set global init_connect="insert into t2 values (13), (17), (19)";
+select * from t1;
+x
+3
+5
+7
+11
+13
+17
+19
+drop trigger trg1;
+set global init_connect="set @a='a\\0c'";
+revoke all privileges, grant option from mysqltest1@localhost;
+drop user mysqltest1@localhost;
+drop table t1, t2;
diff --git a/mysql-test/r/init_file.result b/mysql-test/r/init_file.result
index 509d382aadd..6394014f3e5 100644
--- a/mysql-test/r/init_file.result
+++ b/mysql-test/r/init_file.result
@@ -6,4 +6,18 @@ YEAR(@X)-YEAR(@Y)
0
DROP DATABASE init_file;
ok
-End of 4.1 tests
+end of 4.1 tests
+select * from t1;
+x
+3
+5
+7
+11
+13
+select * from t2;
+y
+30
+3
+11
+13
+drop table t1, t2;
diff --git a/mysql-test/r/innodb-big.result b/mysql-test/r/innodb-big.result
new file mode 100644
index 00000000000..84bb02d445e
--- /dev/null
+++ b/mysql-test/r/innodb-big.result
@@ -0,0 +1,100 @@
+DROP TABLE IF EXISTS t1, t2, t3, t4;
+CREATE TABLE t1 (id INTEGER) ENGINE=MYISAM;
+CREATE TABLE t2 (id INTEGER primary key) ENGINE=INNODB;
+CREATE TABLE t3 (a char(32) primary key,id INTEGER) ENGINE=INNODB;
+CREATE TABLE t4 (a char(32) primary key,id INTEGER) ENGINE=MYISAM;
+INSERT INTO t1 (id) VALUES (1);
+INSERT INTO t1 SELECT id+1 FROM t1;
+INSERT INTO t1 SELECT id+2 FROM t1;
+INSERT INTO t1 SELECT id+4 FROM t1;
+INSERT INTO t1 SELECT id+8 FROM t1;
+INSERT INTO t1 SELECT id+16 FROM t1;
+INSERT INTO t1 SELECT id+32 FROM t1;
+INSERT INTO t1 SELECT id+64 FROM t1;
+INSERT INTO t1 SELECT id+128 FROM t1;
+INSERT INTO t1 SELECT id+256 FROM t1;
+INSERT INTO t1 SELECT id+512 FROM t1;
+INSERT INTO t1 SELECT id+1024 FROM t1;
+INSERT INTO t1 SELECT id+2048 FROM t1;
+INSERT INTO t1 SELECT id+4096 FROM t1;
+INSERT INTO t1 SELECT id+8192 FROM t1;
+INSERT INTO t1 SELECT id+16384 FROM t1;
+INSERT INTO t1 SELECT id+32768 FROM t1;
+INSERT INTO t1 SELECT id+65536 FROM t1;
+INSERT INTO t1 SELECT id+131072 FROM t1;
+INSERT INTO t1 SELECT id+262144 FROM t1;
+INSERT INTO t1 SELECT id+524288 FROM t1;
+INSERT INTO t1 SELECT id+1048576 FROM t1;
+INSERT INTO t2 SELECT * FROM t1;
+INSERT INTO t3 SELECT concat(id),id from t2 ORDER BY -id;
+INSERT INTO t4 SELECT * from t3 ORDER BY concat(a);
+select sum(id) from t3;
+sum(id)
+2199024304128
+drop table t1,t2,t3,t4;
+CREATE TABLE t1 (f1 int NOT NULL) ENGINE=InnoDB;
+CREATE TABLE t2 (f2 int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
+CREATE TRIGGER t1_bi before INSERT
+ON t1 FOR EACH ROW
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLSTATE '40001' SET @a:= 'deadlock';
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
+INSERT INTO t2 (f2) VALUES (1);
+DELETE FROM t2 WHERE f2 = 1;
+END;|
+CREATE PROCEDURE proc24989()
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLSTATE '40001' SET @b:= 'deadlock';
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
+INSERT INTO t2 (f2) VALUES (1);
+DELETE FROM t2 WHERE f2 = 1;
+END;|
+create procedure proc24989_2()
+deterministic
+begin
+declare continue handler for sqlexception
+select 'Outer handler' as 'exception';
+insert into t1 values(1);
+select "continued";
+end|
+start transaction;
+insert into t1 values(1);
+start transaction;
+insert into t2 values(123);
+insert into t1 values(1);
+insert into t1 values(1);
+ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+select @a;
+@a
+NULL
+select * from t2;
+f2
+commit;
+start transaction;
+insert into t1 values(1);
+start transaction;
+insert into t2 values(123);
+call proc24989();
+insert into t1 values(1);
+select @a,@b;
+@a @b
+exception deadlock
+select * from t2;
+f2
+commit;
+start transaction;
+insert into t1 values(1);
+start transaction;
+insert into t2 values(123);
+call proc24989_2();
+insert into t1 values(1);
+commit;
+exception
+Outer handler
+continued
+continued
+select * from t2;
+f2
+drop procedure proc24989;
+drop procedure proc24989_2;
+drop table t1,t2;
diff --git a/mysql-test/r/innodb-deadlock.result b/mysql-test/r/innodb-deadlock.result
index 2ca82101fb4..b6a3373e8c6 100644
--- a/mysql-test/r/innodb-deadlock.result
+++ b/mysql-test/r/innodb-deadlock.result
@@ -94,3 +94,14 @@ id x
300 300
commit;
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/innodb-replace.result b/mysql-test/r/innodb-replace.result
index b7edcc49e56..77e0aeb38fd 100644
--- a/mysql-test/r/innodb-replace.result
+++ b/mysql-test/r/innodb-replace.result
@@ -2,11 +2,11 @@ drop table if exists t1;
create table t1 (c1 char(5) unique not null, c2 int, stamp timestamp) engine=innodb;
select * from t1;
c1 c2 stamp
-replace delayed into t1 (c1, c2) values ( "text1","11"),( "text2","12");
+replace delayed into t1 (c1, c2) values ( "text1","11");
ERROR HY000: Table storage engine for 't1' doesn't have this option
select * from t1;
c1 c2 stamp
-replace delayed into t1 (c1, c2) values ( "text1","12"),( "text2","13"),( "text3","14", "a" ),( "text4","15", "b" );
+replace delayed into t1 (c1, c2) values ( "text1","12");
ERROR HY000: Table storage engine for 't1' doesn't have this option
select * from t1;
c1 c2 stamp
diff --git a/mysql-test/r/innodb-ucs2.result b/mysql-test/r/innodb-ucs2.result
new file mode 100644
index 00000000000..a1c73c912b2
--- /dev/null
+++ b/mysql-test/r/innodb-ucs2.result
@@ -0,0 +1,313 @@
+create table t1 (
+a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
+insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
+insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+a hex(b) hex(c) filler
+1 61626364656667 61626364656667 boo
+4 D0B1 D0B1 eight
+4 5B 5B five
+4 E880BD E880BD four
+4 E880BDD0B1E880BD E880BDD0B1E880BD seven
+4 E880BDE880BD E880BDE880BD six
+3 71727374757677 71727374757677 three
+2 696A6B696C6D6E 696A6B696C6D6E two
+select a,hex(b),hex(c),filler from t2 order by filler;
+a hex(b) hex(c) filler
+4 05630563 05630563 email
+4 0563 0563 email
+4 05612020 05612020 email
+4 01FC 01FC email
+4 0120 0120 email
+4 00640065 00640065 email
+4 00E400E50068 00E400E50068 email
+4 0000E400 0000E400 email
+4 0000563001FC0563 0000563001FC0563 email
+1 0061006200630064006500660067 0061006200630064006500660067 one
+3 0071007200730074007500760077 0071007200730074007500760077 three
+2 0069006A006B0069006C006D006E 0069006A006B0069006C006D006E two
+drop table t1;
+drop table t2;
+create table t1 (
+a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
+insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
+insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+a hex(b) hex(c) filler
+1 61626364656667 61626364656667 boo
+4 D0B1 D0B1 eight
+4 5B 5B five
+4 E880BD E880BD four
+4 E880BDD0B1E880BD E880BDD0B1E880BD seven
+4 E880BDE880BD E880BDE880BD six
+3 71727374757677 71727374757677 three
+2 696A6B696C6D6E 696A6B696C6D6E two
+select a,hex(b),hex(c),filler from t2 order by filler;
+a hex(b) hex(c) filler
+4 05630563 05630563 email
+4 0563 0563 email
+4 05612020 05612020 email
+4 01FC 01FC email
+4 0120 0120 email
+4 00640065 00640065 email
+4 00E400E50068 00E400E50068 email
+4 0000E400 0000E400 email
+4 0000563001FC0563 0000563001FC0563 email
+1 0061006200630064006500660067 0061006200630064006500660067 one
+3 0071007200730074007500760077 0071007200730074007500760077 three
+2 0069006A006B0069006C006D006E 0069006A006B0069006C006D006E two
+drop table t1;
+drop table t2;
+create table t1 (
+a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
+insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
+insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+a hex(b) hex(c) filler
+1 61626364656667 61626364656667 boo
+4 D0B1 D0B1 eight
+4 5B 5B five
+4 E880BD E880BD four
+4 E880BDD0B1E880BD E880BDD0B1E880BD seven
+4 E880BDE880BD E880BDE880BD six
+3 71727374757677 71727374757677 three
+2 696A6B696C6D6E 696A6B696C6D6E two
+select a,hex(b),hex(c),filler from t2 order by filler;
+a hex(b) hex(c) filler
+4 0120 0120 email
+4 01FC 01FC email
+4 0563 0563 email
+4 0000563001FC0563 0000563001FC0563 email
+4 0000E400 0000E400 email
+4 00640065 00640065 email
+4 00E400E50068 00E400E50068 email
+4 05612020 05612020 email
+4 05630563 05630563 email
+1 0061006200630064006500660067 0061006200630064006500660067 one
+3 0071007200730074007500760077 0071007200730074007500760077 three
+2 0069006A006B0069006C006D006E 0069006A006B0069006C006D006E two
+drop table t1;
+drop table t2;
+create table t1 (
+a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+a hex(b) hex(c) filler
+1 61626364656667 61626364656667 boo
+4 D0B1 D0B1 eight
+4 5B 5B five
+4 E880BD E880BD four
+3 71727374757677 71727374757677 three
+2 696A6B696C6D6E 696A6B696C6D6E two
+select a,hex(b),hex(c),filler from t2 order by filler;
+a hex(b) hex(c) filler
+4 0000E400 0000E400 email
+4 00640065 00640065 email
+4 00E400E50068 00E400E50068 email
+4 0120 0120 email
+4 01FC 01FC email
+4 05612020 05612020 email
+4 0563 0563 email
+1 61626364656667 61626364656667 one
+3 71727374757677 71727374757677 three
+2 696A6B696C6D6E 696A6B696C6D6E two
+drop table t1;
+drop table t2;
+commit;
+CREATE TABLE t1 (
+ind enum('0','1','2') NOT NULL default '0',
+string1 varchar(250) NOT NULL,
+PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE t2 (
+ind enum('0','1','2') NOT NULL default '0',
+string1 varchar(250) NOT NULL,
+PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=ucs2;
+INSERT INTO t1 VALUES ('1', ''),('2', '');
+INSERT INTO t2 VALUES ('1', ''),('2', '');
+SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1;
+hex(ind) hex(string1)
+31
+32
+SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1;
+hex(ind) hex(string1)
+0031
+0032
+drop table t1,t2;
+CREATE TABLE t1 (
+ind set('0','1','2') NOT NULL default '0',
+string1 varchar(250) NOT NULL,
+PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE t2 (
+ind set('0','1','2') NOT NULL default '0',
+string1 varchar(250) NOT NULL,
+PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=ucs2;
+INSERT INTO t1 VALUES ('1', ''),('2', '');
+INSERT INTO t2 VALUES ('1', ''),('2', '');
+SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1;
+hex(ind) hex(string1)
+31
+32
+SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1;
+hex(ind) hex(string1)
+0031
+0032
+drop table t1,t2;
+CREATE TABLE t1 (
+ind bit not null,
+string1 varchar(250) NOT NULL,
+PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE t2 (
+ind bit not null,
+string1 varchar(250) NOT NULL,
+PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=ucs2;
+insert into t1 values(0,''),(1,'');
+insert into t2 values(0,''),(1,'');
+select hex(ind),hex(string1) from t1 order by string1;
+hex(ind) hex(string1)
+0
+1
+select hex(ind),hex(string1) from t2 order by string1;
+hex(ind) hex(string1)
+0
+1
+drop table t1,t2;
+create table t2 (
+a int, b char(10), filler char(10), primary key(a, b(2))
+) character set utf8 engine = innodb;
+insert into t2 values (1,'abcdefg','one');
+insert into t2 values (2,'ijkilmn','two');
+insert into t2 values (3, 'qrstuvw','three');
+update t2 set a=5, filler='booo' where a=1;
+drop table t2;
+create table t2 (
+a int, b char(10), filler char(10), primary key(a, b(2))
+) character set ucs2 engine = innodb;
+insert into t2 values (1,'abcdefg','one');
+insert into t2 values (2,'ijkilmn','two');
+insert into t2 values (3, 'qrstuvw','three');
+update t2 set a=5, filler='booo' where a=1;
+drop table t2;
+create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8;
+insert into t1 values(1,'abcdefg'),(2,'defghijk');
+insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
+insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
+select a,hex(b) from t1 order by b;
+a hex(b)
+1 61626364656667
+2 6465666768696A6B
+6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1
+7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2
+update t1 set b = 'three' where a = 6;
+drop table t1;
+create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8;
+insert into t1 values(1,'abcdefg'),(2,'defghijk');
+insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
+insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
+select a,hex(b) from t1 order by b;
+a hex(b)
+1 61626364656667
+2 6465666768696A6B
+6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1
+7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2
+update t1 set b = 'three' where a = 6;
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index c4fae109bd4..6082a30bce3 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -141,13 +141,13 @@ id parent_id level
1015 102 2
explain select level from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const # Using where; Using index
+1 SIMPLE t1 ref level level 1 const # Using index
explain select level,id from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const # Using where; Using index
+1 SIMPLE t1 ref level level 1 const # Using index
explain select level,id,parent_id from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const # Using where
+1 SIMPLE t1 ref level level 1 const #
select level,id from t1 where level=1;
level id
1 1002
@@ -249,6 +249,40 @@ n
4
5
6
+set autocommit=0;
+begin;
+savepoint `my_savepoint`;
+insert into t1 values (7);
+savepoint `savept2`;
+insert into t1 values (3);
+select n from t1;
+n
+3
+4
+5
+6
+7
+savepoint savept3;
+rollback to savepoint savept2;
+rollback to savepoint savept3;
+ERROR 42000: SAVEPOINT savept3 does not exist
+rollback to savepoint savept2;
+release savepoint `my_savepoint`;
+select n from t1;
+n
+4
+5
+6
+7
+rollback to savepoint `my_savepoint`;
+ERROR 42000: SAVEPOINT my_savepoint does not exist
+rollback to savepoint savept2;
+ERROR 42000: SAVEPOINT savept2 does not exist
+insert into t1 values (8);
+savepoint sv;
+commit;
+savepoint sv;
+set autocommit=1;
rollback;
drop table t1;
create table t1 (n int not null primary key) engine=innodb;
@@ -609,7 +643,7 @@ id parent_id level
1016 102 2
explain select level from t1 where level=1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref level level 1 const # Using where; Using index
+1 SIMPLE t1 ref level level 1 const # Using index
select level,id from t1 where level=1;
level id
1 1004
@@ -721,6 +755,11 @@ a
1
2
3
+select a from t1 natural join t1 as t2 where b >= @a order by a;
+a
+1
+2
+3
update t1 set a=5 where a=1;
select a from t1;
a
@@ -870,7 +909,7 @@ insert into mysqltest.t3 values(1);
commit;
drop database mysqltest;
show tables from mysqltest;
-Got one of the listed errors
+ERROR 42000: Unknown database 'mysqltest'
set autocommit=0;
create table t1 (a int not null) engine= innodb;
insert into t1 values(1),(2);
@@ -931,16 +970,16 @@ drop table t1;
create table t1 (t int not null default 1, key (t)) engine=innodb;
desc t1;
Field Type Null Key Default Extra
-t int(11) MUL 1
+t int(11) NO MUL 1
drop table t1;
CREATE TABLE t1 (
number bigint(20) NOT NULL default '0',
cname char(15) NOT NULL default '',
carrier_id smallint(6) NOT NULL default '0',
privacy tinyint(4) NOT NULL default '0',
-last_mod_date timestamp(14) NOT NULL,
+last_mod_date timestamp NOT NULL,
last_mod_id smallint(6) NOT NULL default '0',
-last_app_date timestamp(14) NOT NULL,
+last_app_date timestamp NOT NULL,
last_app_id smallint(6) default '-1',
version smallint(6) NOT NULL default '0',
assigned_scps int(11) default '0',
@@ -957,9 +996,9 @@ number bigint(20) NOT NULL default '0',
cname char(15) NOT NULL default '',
carrier_id smallint(6) NOT NULL default '0',
privacy tinyint(4) NOT NULL default '0',
-last_mod_date timestamp(14) NOT NULL,
+last_mod_date timestamp NOT NULL,
last_mod_id smallint(6) NOT NULL default '0',
-last_app_date timestamp(14) NOT NULL,
+last_app_date timestamp NOT NULL,
last_app_id smallint(6) default '-1',
version smallint(6) NOT NULL default '0',
assigned_scps int(11) default '0',
@@ -1047,6 +1086,39 @@ 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 1
+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 98
+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 1
+show master status /* there must be no UPDATE query event */;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 98
+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
@@ -1326,8 +1398,8 @@ truncate table t1;
insert into t1 (a) values (NULL),(NULL);
SELECT * from t1;
a
-3
-4
+1
+2
drop table t1;
CREATE TABLE t1 (`id 1` INT NOT NULL, PRIMARY KEY (`id 1`)) ENGINE=INNODB;
CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (`t1_id`) REFERENCES `t1`(`id 1`) ON DELETE CASCADE ) ENGINE=INNODB;
@@ -1339,11 +1411,11 @@ insert into `t2`values ( 1 ) ;
create table `t3` (`id` int( 11 ) not null default '0',key `id` ( `id` ) ,constraint `t2_id_fk` foreign key ( `id` ) references `t2` (`id` )) engine = innodb;
insert into `t3`values ( 1 ) ;
delete t3,t2,t1 from t1,t2,t3 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
-ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`))
update t1,t2,t3 set t3.id=5, t2.id=6, t1.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
-ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`))
update t3 set t3.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
-ERROR 42S02: Unknown table 't1' in where clause
+ERROR 42S22: Unknown column 't1.id' in 'where clause'
drop table t3,t2,t1;
create table t1(
id int primary key,
@@ -1353,7 +1425,7 @@ foreign key(pid) references t1(id) on delete cascade) engine=innodb;
insert into t1 values(0,0),(1,0),(2,1),(3,2),(4,3),(5,4),(6,5),(7,6),
(8,7),(9,8),(10,9),(11,10),(12,11),(13,12),(14,13),(15,14);
delete from t1 where id=0;
-ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t1`, CONSTRAINT `t1_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `t1` (`id`) ON DELETE CASCADE)
delete from t1 where id=15;
delete from t1 where id=0;
drop table t1;
@@ -1376,7 +1448,7 @@ CREATE TABLE t1 (
`id` int(10) unsigned NOT NULL auto_increment,
`id_object` int(10) unsigned default '0',
`id_version` int(10) unsigned NOT NULL default '1',
-label varchar(100) NOT NULL default '',
+`label` varchar(100) NOT NULL default '',
`description` text,
PRIMARY KEY (`id`),
KEY `id_object` (`id_object`),
@@ -1390,8 +1462,8 @@ PRIMARY KEY (`id`),
KEY `id_version` (`id_version`)
) ENGINE=InnoDB;
INSERT INTO t2 VALUES("3524", "1"),("3525", "1"),("1794", "4"),("102", "5"),("1822", "6"),("3382", "9");
-SELECT t2.id, t1.label FROM t2 INNER JOIN
-(SELECT t1.id_object as id_object FROM t1 WHERE t1.label LIKE '%test%') AS lbl
+SELECT t2.id, t1.`label` FROM t2 INNER JOIN
+(SELECT t1.id_object as id_object FROM t1 WHERE t1.`label` LIKE '%test%') AS lbl
ON (t2.id = lbl.id_object) INNER JOIN t1 ON (t2.id = t1.id_object);
id label
3382 Test
@@ -1409,27 +1481,33 @@ insert t2 select * from t1;
insert t3 select * from t1;
checksum table t1, t2, t3, t4 quick;
Table Checksum
-test.t1 968604391
+test.t1 2948697075
test.t2 NULL
test.t3 NULL
test.t4 NULL
+Warnings:
+Error 1146 Table 'test.t4' doesn't exist
checksum table t1, t2, t3, t4;
Table Checksum
-test.t1 968604391
-test.t2 968604391
-test.t3 968604391
+test.t1 2948697075
+test.t2 2948697075
+test.t3 2948697075
test.t4 NULL
+Warnings:
+Error 1146 Table 'test.t4' doesn't exist
checksum table t1, t2, t3, t4 extended;
Table Checksum
-test.t1 968604391
-test.t2 968604391
-test.t3 968604391
+test.t1 2948697075
+test.t2 2948697075
+test.t3 2948697075
test.t4 NULL
+Warnings:
+Error 1146 Table 'test.t4' doesn't exist
drop table t1,t2,t3;
create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb;
insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt');
-select name2 from t1 union all select name from t1 union all select id from t1;
-name2
+select trim(name2) from t1 union all select trim(name) from t1 union all select trim(id) from t1;
+trim(name2)
fff
sss
ttt
@@ -1448,14 +1526,14 @@ create table t2 (id int(11) not null, constraint t1_id_fk foreign key ( id ) ref
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `id` int(11) NOT NULL default '0',
- `id2` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
+ `id2` int(11) NOT NULL,
UNIQUE KEY `id` (`id`,`id2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
KEY `t1_id_fk` (`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1463,7 +1541,7 @@ create index id on t2 (id);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
KEY `id` (`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1471,7 +1549,7 @@ create index id2 on t2 (id);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
KEY `id` (`id`),
KEY `id2` (`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
@@ -1482,7 +1560,7 @@ Got one of the listed errors
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
KEY `id` (`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1491,8 +1569,8 @@ create table t2 (id int(11) not null, id2 int(11) not null, constraint t1_id_fk
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
- `id2` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
+ `id2` int(11) NOT NULL,
KEY `t1_id_fk` (`id`,`id2`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`, `id2`) REFERENCES `t1` (`id`, `id2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1500,8 +1578,8 @@ create unique index id on t2 (id,id2);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
- `id2` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
+ `id2` int(11) NOT NULL,
UNIQUE KEY `id` (`id`,`id2`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`, `id2`) REFERENCES `t1` (`id`, `id2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1510,8 +1588,8 @@ create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2),cons
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
- `id2` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
+ `id2` int(11) NOT NULL,
UNIQUE KEY `id` (`id`,`id2`),
KEY `t1_id_fk` (`id2`,`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id2`, `id`) REFERENCES `t1` (`id`, `id2`)
@@ -1521,8 +1599,8 @@ create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2), con
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
- `id2` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
+ `id2` int(11) NOT NULL,
UNIQUE KEY `id` (`id`,`id2`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1531,8 +1609,8 @@ create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2),cons
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `id` int(11) NOT NULL default '0',
- `id2` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
+ `id2` int(11) NOT NULL,
UNIQUE KEY `id` (`id`,`id2`),
KEY `t1_id_fk` (`id2`,`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id2`, `id`) REFERENCES `t1` (`id`, `id2`)
@@ -1543,7 +1621,7 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`id` int(11) NOT NULL auto_increment,
- `id2` int(11) NOT NULL default '0',
+ `id2` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`,`id2`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
@@ -1554,7 +1632,7 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`id` int(11) NOT NULL auto_increment,
- `id2` int(11) NOT NULL default '0',
+ `id2` int(11) NOT NULL,
KEY `t1_id_fk` (`id`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@@ -1563,14 +1641,14 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`id` int(11) NOT NULL auto_increment,
- `id2` int(11) NOT NULL default '0',
+ `id2` int(11) NOT NULL,
KEY `id_test` (`id`),
KEY `id_test2` (`id`,`id2`),
CONSTRAINT `t1_id_fk` FOREIGN KEY (`id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t2;
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;
-ERROR HY000: Can't create table './test/t2.frm' (errno: 150)
+ERROR 42000: Incorrect foreign key definition for 't1_id_fk': Key reference and table reference don't match
create table t2 (a int auto_increment primary key, b int, index(b), foreign key (b) references t1(id), unique(b)) engine=innodb;
show create table t2;
Table Create Table
@@ -1595,29 +1673,6 @@ t2 CREATE TABLE `t2` (
CONSTRAINT `t2_ibfk_2` FOREIGN KEY (`b`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t2, t1;
-show status like "binlog_cache_use";
-Variable_name Value
-Binlog_cache_use 25
-show status like "binlog_cache_disk_use";
-Variable_name Value
-Binlog_cache_disk_use 0
-create table t1 (a int) engine=innodb;
-show status like "binlog_cache_use";
-Variable_name Value
-Binlog_cache_use 26
-show status like "binlog_cache_disk_use";
-Variable_name Value
-Binlog_cache_disk_use 1
-begin;
-delete from t1;
-commit;
-show status like "binlog_cache_use";
-Variable_name Value
-Binlog_cache_use 27
-show status like "binlog_cache_disk_use";
-Variable_name Value
-Binlog_cache_disk_use 1
-drop table t1;
create table t1 (c char(10), index (c,c)) engine=innodb;
ERROR 42S21: Duplicate column name 'c'
create table t1 (c1 char(10), c2 char(10), index (c1,c2,c1)) engine=innodb;
@@ -1694,34 +1749,940 @@ select min(b) from t1 where a='8';
min(b)
6
drop table t1;
-create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
-insert into test_checksum values (1),(2);
+create table t1 (x bigint unsigned not null primary key) engine=innodb;
+insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1);
+select * from t1;
+x
+18446744073709551600
+18446744073709551601
+select count(*) from t1 where x>0;
+count(*)
+2
+select count(*) from t1 where x=0;
+count(*)
+0
+select count(*) from t1 where x<0;
+count(*)
+0
+select count(*) from t1 where x < -16;
+count(*)
+0
+select count(*) from t1 where x = -16;
+count(*)
+0
+explain select count(*) from t1 where x > -16;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 2 Using where; Using index
+select count(*) from t1 where x > -16;
+count(*)
+2
+select * from t1 where x > -16;
+x
+18446744073709551600
+18446744073709551601
+select count(*) from t1 where x = 18446744073709551601;
+count(*)
+1
+drop table t1;
+show status like "Innodb_buffer_pool_pages_total";
+Variable_name Value
+Innodb_buffer_pool_pages_total 512
+show status like "Innodb_page_size";
+Variable_name Value
+Innodb_page_size 16384
+show status like "Innodb_rows_deleted";
+Variable_name Value
+Innodb_rows_deleted 72
+show status like "Innodb_rows_inserted";
+Variable_name Value
+Innodb_rows_inserted 29732
+show status like "Innodb_rows_updated";
+Variable_name Value
+Innodb_rows_updated 29532
+show status like "Innodb_row_lock_waits";
+Variable_name Value
+Innodb_row_lock_waits 0
+show status like "Innodb_row_lock_current_waits";
+Variable_name Value
+Innodb_row_lock_current_waits 0
+show status like "Innodb_row_lock_time";
+Variable_name Value
+Innodb_row_lock_time 0
+show status like "Innodb_row_lock_time_max";
+Variable_name Value
+Innodb_row_lock_time_max 0
+show status like "Innodb_row_lock_time_avg";
+Variable_name Value
+Innodb_row_lock_time_avg 0
+show variables like "innodb_sync_spin_loops";
+Variable_name Value
+innodb_sync_spin_loops 20
+set global innodb_sync_spin_loops=1000;
+show variables like "innodb_sync_spin_loops";
+Variable_name Value
+innodb_sync_spin_loops 1000
+set global innodb_sync_spin_loops=0;
+show variables like "innodb_sync_spin_loops";
+Variable_name Value
+innodb_sync_spin_loops 0
+set global innodb_sync_spin_loops=20;
+show variables like "innodb_sync_spin_loops";
+Variable_name Value
+innodb_sync_spin_loops 20
+show variables like "innodb_thread_concurrency";
+Variable_name Value
+innodb_thread_concurrency 8
+set global innodb_thread_concurrency=1001;
+show variables like "innodb_thread_concurrency";
+Variable_name Value
+innodb_thread_concurrency 1000
+set global innodb_thread_concurrency=0;
+show variables like "innodb_thread_concurrency";
+Variable_name Value
+innodb_thread_concurrency 0
+set global innodb_thread_concurrency=16;
+show variables like "innodb_thread_concurrency";
+Variable_name Value
+innodb_thread_concurrency 16
+show variables like "innodb_concurrency_tickets";
+Variable_name Value
+innodb_concurrency_tickets 500
+set global innodb_concurrency_tickets=1000;
+show variables like "innodb_concurrency_tickets";
+Variable_name Value
+innodb_concurrency_tickets 1000
+set global innodb_concurrency_tickets=0;
+show variables like "innodb_concurrency_tickets";
+Variable_name Value
+innodb_concurrency_tickets 1
+set global innodb_concurrency_tickets=500;
+show variables like "innodb_concurrency_tickets";
+Variable_name Value
+innodb_concurrency_tickets 500
+show variables like "innodb_thread_sleep_delay";
+Variable_name Value
+innodb_thread_sleep_delay 10000
+set global innodb_thread_sleep_delay=100000;
+show variables like "innodb_thread_sleep_delay";
+Variable_name Value
+innodb_thread_sleep_delay 100000
+set global innodb_thread_sleep_delay=0;
+show variables like "innodb_thread_sleep_delay";
+Variable_name Value
+innodb_thread_sleep_delay 0
+set global innodb_thread_sleep_delay=10000;
+show variables like "innodb_thread_sleep_delay";
+Variable_name Value
+innodb_thread_sleep_delay 10000
+set storage_engine=INNODB;
+drop table if exists t1,t2,t3;
+--- Testing varchar ---
+--- Testing varchar ---
+create table t1 (v varchar(10), c char(10), t text);
+insert into t1 values('+ ', '+ ', '+ ');
+set @a=repeat(' ',20);
+insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
+Warnings:
+Note 1265 Data truncated for column 'v' at row 1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+ *+*+ *
+*+ *+*+ *
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+create table t2 like t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+create table t3 select * from t1;
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+alter table t1 modify c varchar(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` text
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+alter table t1 modify v char(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` text
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+alter table t1 modify t varchar(10);
+Warnings:
+Note 1265 Data truncated for column 't' at row 2
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` varchar(10) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+*+*+ *
+*+*+*+ *
+drop table t1,t2,t3;
+create table t1 (v varchar(10), c char(10), t text, key(v), key(c), key(t(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `v` (`v`),
+ KEY `c` (`c`),
+ KEY `t` (`t`(10))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+select count(*) from t1;
+count(*)
+270
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where c='a';
+count(*)
+10
+select count(*) from t1 where t='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where c='a ';
+count(*)
+10
+select count(*) from t1 where t='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where c like 'a%';
+count(*)
+11
+select count(*) from t1 where t like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where; Using index
+explain select count(*) from t1 where c='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c c 11 const # Using where; Using index
+explain select count(*) from t1 where t='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref t t 13 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 13 NULL # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where; Using index
+alter table t1 add unique(v);
+ERROR 23000: Duplicate entry '{ ' for key 1
+alter table t1 add key(v);
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
+qq
+*a*a*a*
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v,v_2 # 13 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(*) from t1 group by c limit 10;
+c count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(*) from t1 group by t limit 10;
+t count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 modify v varchar(300), drop key v, drop key v_2, add key v (v);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(300) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where; Using index
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 303 NULL # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where; Using index
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 drop key v, add key v (v(30));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(300) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`(30))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 33 NULL # Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 modify v varchar(600), drop key v, add key v (v);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(600) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+drop table t1;
+create table t1 (a char(10), unique (a));
+insert into t1 values ('a ');
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a' for key 1
+alter table t1 modify a varchar(10);
+insert into t1 values ('a '),('a '),('a '),('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+update t1 set a='a ' where a like 'a%';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='abc ' where a like 'a ';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='a ' where a like 'a %';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='a ' where a like 'a ';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+drop table t1;
+create table t1 (v varchar(10), c char(10), t text, key(v(5)), key(c(5)), key(t(5)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `v` (`v`(5)),
+ KEY `c` (`c`(5)),
+ KEY `t` (`t`(5))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v char(10) character set utf8);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) character set utf8 default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(10), c char(10)) row_format=fixed;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
+insert into t1 values('a','a'),('a ','a ');
+select concat('*',v,'*',c,'*') from t1;
+concat('*',v,'*',c,'*')
+*a*a*
+*a *a*
+drop table t1;
+create table t1 (v varchar(65530), key(v(10)));
+insert into t1 values(repeat('a',65530));
+select length(v) from t1 where v=repeat('a',65530);
+length(v)
+65530
+drop table t1;
+create table t1(a int, b varchar(12), key ba(b, a));
+insert into t1 values (1, 'A'), (20, NULL);
+explain select * from t1 where a=20 and b is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref ba ba 20 const,const 1 Using where; Using index
+select * from t1 where a=20 and b is null;
+a b
+20 NULL
+drop table t1;
+create table t1 (v varchar(65530), key(v));
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+drop table t1;
+create table t1 (v varchar(65536));
+Warnings:
+Note 1246 Converting column 'v' from VARCHAR to TEXT
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` mediumtext
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(65530) character set utf8);
+Warnings:
+Note 1246 Converting column 'v' from VARCHAR to TEXT
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` mediumtext character set utf8
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1;
+set storage_engine=MyISAM;
+create table t1 (v varchar(16384)) engine=innodb;
+drop table t1;
+create table t1 (a char(1), b char(1), key(a, b)) engine=innodb;
+insert into t1 values ('8', '6'), ('4', '7');
+select min(a) from t1;
+min(a)
+4
+select min(b) from t1 where a='8';
+min(b)
+6
+drop table t1;
+CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`)) ENGINE=innodb;
+insert into t1 (b) values (1);
+replace into t1 (b) values (2), (1), (3);
+select * from t1;
+a b
+3 1
+2 2
+4 3
+truncate table t1;
+insert into t1 (b) values (1);
+replace into t1 (b) values (2);
+replace into t1 (b) values (1);
+replace into t1 (b) values (3);
+select * from t1;
+a b
+3 1
+2 2
+4 3
+drop table t1;
+create table t1 (rowid int not null auto_increment, val int not null,primary
+key (rowid), unique(val)) engine=innodb;
+replace into t1 (val) values ('1'),('2');
+replace into t1 (val) values ('1'),('2');
+insert into t1 (val) values ('1'),('2');
+ERROR 23000: Duplicate entry '1' for key 2
+select * from t1;
+rowid val
+3 1
+4 2
+drop table t1;
+create table t1 (a int not null auto_increment primary key, val int) engine=InnoDB;
+insert into t1 (val) values (1);
+update t1 set a=2 where a=1;
+insert into t1 (val) values (1);
+ERROR 23000: Duplicate entry '2' for key 1
+select * from t1;
+a val
+2 1
+drop table t1;
+CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
+INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
+SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
+GRADE
+252
+SELECT GRADE FROM t1 WHERE GRADE= 151;
+GRADE
+151
+DROP TABLE t1;
+create table t1 (f1 varchar(10), f2 varchar(10), primary key (f1,f2)) engine=innodb;
+create table t2 (f3 varchar(10), f4 varchar(10), key (f4)) engine=innodb;
+insert into t2 values ('aa','cc');
+insert into t1 values ('aa','bb'),('aa','cc');
+delete t1 from t1,t2 where f1=f3 and f4='cc';
+select * from t1;
+f1 f2
+drop table t1,t2;
+CREATE TABLE t1 (
+id INTEGER NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)
+) ENGINE=InnoDB;
+CREATE TABLE t2 (
+id INTEGER NOT NULL,
+FOREIGN KEY (id) REFERENCES t1 (id)
+) ENGINE=InnoDB;
+INSERT INTO t1 (id) VALUES (NULL);
+SELECT * FROM t1;
+id
+1
+TRUNCATE t1;
+INSERT INTO t1 (id) VALUES (NULL);
+SELECT * FROM t1;
+id
+1
+DELETE FROM t1;
+TRUNCATE t1;
+INSERT INTO t1 (id) VALUES (NULL);
+SELECT * FROM t1;
+id
+1
+DROP TABLE t2, t1;
+CREATE TABLE t1
+(
+id INT PRIMARY KEY
+) ENGINE=InnoDB;
+CREATE TEMPORARY TABLE t2
+(
+id INT NOT NULL PRIMARY KEY,
+b INT,
+FOREIGN KEY (b) REFERENCES test.t1(id)
+) ENGINE=InnoDB;
+Got one of the listed errors
+DROP TABLE t1;
+create table t1 (col1 varchar(2000), index (col1(767)))
+character set = latin1 engine = innodb;
+create table t2 (col1 char(255), index (col1))
+character set = latin1 engine = innodb;
+create table t3 (col1 binary(255), index (col1))
+character set = latin1 engine = innodb;
+create table t4 (col1 varchar(767), index (col1))
+character set = latin1 engine = innodb;
+create table t5 (col1 varchar(767) primary key)
+character set = latin1 engine = innodb;
+create table t6 (col1 varbinary(767) primary key)
+character set = latin1 engine = innodb;
+create table t7 (col1 text, index(col1(767)))
+character set = latin1 engine = innodb;
+create table t8 (col1 blob, index(col1(767)))
+character set = latin1 engine = innodb;
+create table t9 (col1 varchar(512), col2 varchar(512), index(col1, col2))
+character set = latin1 engine = innodb;
+show create table t9;
+Table Create Table
+t9 CREATE TABLE `t9` (
+ `col1` varchar(512) default NULL,
+ `col2` varchar(512) default NULL,
+ KEY `col1` (`col1`,`col2`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1, t2, t3, t4, t5, t6, t7, t8, t9;
+create table t1 (col1 varchar(768), index(col1))
+character set = latin1 engine = innodb;
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+create table t2 (col1 varbinary(768), index(col1))
+character set = latin1 engine = innodb;
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+create table t3 (col1 text, index(col1(768)))
+character set = latin1 engine = innodb;
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+create table t4 (col1 blob, index(col1(768)))
+character set = latin1 engine = innodb;
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `col1` varchar(768) default NULL,
+ KEY `col1` (`col1`(767))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1, t2, t3, t4;
+create table t1 (col1 varchar(768) primary key)
+character set = latin1 engine = innodb;
+ERROR 42000: Specified key was too long; max key length is 767 bytes
+create table t2 (col1 varbinary(768) primary key)
+character set = latin1 engine = innodb;
+ERROR 42000: Specified key was too long; max key length is 767 bytes
+create table t3 (col1 text, primary key(col1(768)))
+character set = latin1 engine = innodb;
+ERROR 42000: Specified key was too long; max key length is 767 bytes
+create table t4 (col1 blob, primary key(col1(768)))
+character set = latin1 engine = innodb;
+ERROR 42000: Specified key was too long; max key length is 767 bytes
+CREATE TABLE t1
+(
+id INT PRIMARY KEY
+) ENGINE=InnoDB;
+CREATE TABLE t2
+(
+v INT,
+CONSTRAINT c1 FOREIGN KEY (v) REFERENCES t1(id)
+) ENGINE=InnoDB;
+INSERT INTO t2 VALUES(2);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c1` FOREIGN KEY (`v`) REFERENCES `t1` (`id`))
+INSERT INTO t1 VALUES(1);
+INSERT INTO t2 VALUES(1);
+DELETE FROM t1 WHERE id = 1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c1` FOREIGN KEY (`v`) REFERENCES `t1` (`id`))
+DROP TABLE t1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+SET FOREIGN_KEY_CHECKS=0;
+DROP TABLE t1;
+SET FOREIGN_KEY_CHECKS=1;
+INSERT INTO t2 VALUES(3);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c1` FOREIGN KEY (`v`) REFERENCES `t1` (`id`))
+DROP TABLE t2;
+create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
+insert into t1 values (1),(2);
set autocommit=0;
-checksum table test_checksum;
+checksum table t1;
Table Checksum
-test.test_checksum 1531596814
-insert into test_checksum values(3);
-checksum table test_checksum;
+test.t1 1531596814
+insert into t1 values(3);
+checksum table t1;
Table Checksum
-test.test_checksum 1531596814
+test.t1 1531596814
commit;
-checksum table test_checksum;
+checksum table t1;
Table Checksum
-test.test_checksum 2050879373
+test.t1 2050879373
commit;
-drop table test_checksum;
-create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
-insert into test_checksum values (1),(2);
+drop table t1;
+create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
+insert into t1 values (1),(2);
set autocommit=1;
-checksum table test_checksum;
+checksum table t1;
Table Checksum
-test.test_checksum 1531596814
+test.t1 1531596814
set autocommit=1;
-insert into test_checksum values(3);
-checksum table test_checksum;
+insert into t1 values(3);
+checksum table t1;
Table Checksum
-test.test_checksum 2050879373
-drop table test_checksum;
+test.t1 2050879373
+drop table t1;
set foreign_key_checks=0;
create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = innodb;
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
@@ -1754,46 +2715,150 @@ rename table t3 to t1;
ERROR HY000: Error on rename of './test/t3' to './test/t1' (errno: 150)
set foreign_key_checks=1;
drop table t2,t3;
-create table t2 (
-a int, b char(10), filler char(10), primary key(a, b(2))
-) character set utf8 engine = innodb;
-insert into t2 values (1,'abcdefg','one');
-insert into t2 values (2,'ijkilmn','two');
-insert into t2 values (3, 'qrstuvw','three');
-update t2 set a=5, filler='booo' where a=1;
-drop table t2;
-create table t2 (
-a int, b char(10), filler char(10), primary key(a, b(2))
-) character set ucs2 engine = innodb;
-insert into t2 values (1,'abcdefg','one');
-insert into t2 values (2,'ijkilmn','two');
-insert into t2 values (3, 'qrstuvw','three');
-update t2 set a=5, filler='booo' where a=1;
-drop table t2;
-create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8;
-insert into t1 values(1,'abcdefg'),(2,'defghijk');
-insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
-insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
-select a,hex(b) from t1 order by b;
-a hex(b)
-1 61626364656667
-2 6465666768696A6B
-6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1
-7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2
-update t1 set b = 'three' where a = 6;
-drop table t1;
-create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8;
-insert into t1 values(1,'abcdefg'),(2,'defghijk');
-insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
-insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
-select a,hex(b) from t1 order by b;
-a hex(b)
-1 61626364656667
-2 6465666768696A6B
-6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1
-7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2
-update t1 set b = 'three' where a = 6;
+create table t1(a int primary key) row_format=redundant engine=innodb;
+create table t2(a int primary key,constraint foreign key(a)references t1(a)) row_format=compact engine=innodb;
+create table t3(a int primary key) row_format=compact engine=innodb;
+create table t4(a int primary key,constraint foreign key(a)references t3(a)) row_format=redundant engine=innodb;
+insert into t1 values(1);
+insert into t3 values(1);
+insert into t2 values(2);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`))
+insert into t4 values(2);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`))
+insert into t2 values(1);
+insert into t4 values(1);
+update t1 set a=2;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`))
+update t2 set a=2;
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`))
+update t3 set a=2;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`))
+update t4 set a=2;
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`))
+truncate t1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`))
+truncate t3;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`))
+truncate t2;
+truncate t4;
+truncate t1;
+truncate t3;
+drop table t4,t3,t2,t1;
+create table t1 (a varchar(255) character set utf8,
+b varchar(255) character set utf8,
+c varchar(255) character set utf8,
+d varchar(255) character set utf8,
+key (a,b,c,d)) engine=innodb;
drop table t1;
+create table t1 (a varchar(255) character set utf8,
+b varchar(255) character set utf8,
+c varchar(255) character set utf8,
+d varchar(255) character set utf8,
+e varchar(255) character set utf8,
+key (a,b,c,d,e)) engine=innodb;
+ERROR 42000: Specified key was too long; max key length is 3072 bytes
+create table t1 (s1 varbinary(2),primary key (s1)) engine=innodb;
+create table t2 (s1 binary(2),primary key (s1)) engine=innodb;
+create table t3 (s1 varchar(2) binary,primary key (s1)) engine=innodb;
+create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
+insert into t1 values (0x41),(0x4120),(0x4100);
+insert into t2 values (0x41),(0x4120),(0x4100);
+ERROR 23000: Duplicate entry 'A' for key 1
+insert into t2 values (0x41),(0x4120);
+insert into t3 values (0x41),(0x4120),(0x4100);
+ERROR 23000: Duplicate entry 'A ' for key 1
+insert into t3 values (0x41),(0x4100);
+insert into t4 values (0x41),(0x4120),(0x4100);
+ERROR 23000: Duplicate entry 'A' for key 1
+insert into t4 values (0x41),(0x4100);
+select hex(s1) from t1;
+hex(s1)
+41
+4100
+4120
+select hex(s1) from t2;
+hex(s1)
+4100
+4120
+select hex(s1) from t3;
+hex(s1)
+4100
+41
+select hex(s1) from t4;
+hex(s1)
+4100
+41
+drop table t1,t2,t3,t4;
+create table t1 (a int primary key,s1 varbinary(3) not null unique) engine=innodb;
+create table t2 (s1 binary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
+insert into t1 values(1,0x4100),(2,0x41),(3,0x4120),(4,0x42);
+insert into t2 values(0x42);
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+insert into t2 values(0x41);
+select hex(s1) from t2;
+hex(s1)
+4100
+update t1 set s1=0x123456 where a=2;
+select hex(s1) from t2;
+hex(s1)
+4100
+update t1 set s1=0x12 where a=1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+update t1 set s1=0x12345678 where a=1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+update t1 set s1=0x123457 where a=1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+update t1 set s1=0x1220 where a=1;
+select hex(s1) from t2;
+hex(s1)
+1220
+update t1 set s1=0x1200 where a=1;
+select hex(s1) from t2;
+hex(s1)
+1200
+update t1 set s1=0x4200 where a=1;
+select hex(s1) from t2;
+hex(s1)
+4200
+delete from t1 where a=1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+delete from t1 where a=2;
+update t2 set s1=0x4120;
+delete from t1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+delete from t1 where a!=3;
+select a,hex(s1) from t1;
+a hex(s1)
+3 4120
+select hex(s1) from t2;
+hex(s1)
+4120
+drop table t2,t1;
+create table t1 (a int primary key,s1 varchar(2) binary not null unique) engine=innodb;
+create table t2 (s1 char(2) binary not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
+insert into t1 values(1,0x4100),(2,0x41);
+insert into t2 values(0x41);
+select hex(s1) from t2;
+hex(s1)
+41
+update t1 set s1=0x1234 where a=1;
+select hex(s1) from t2;
+hex(s1)
+41
+update t1 set s1=0x12 where a=2;
+select hex(s1) from t2;
+hex(s1)
+12
+delete from t1 where a=1;
+delete from t1 where a=2;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c` FOREIGN KEY (`s1`) REFERENCES `t1` (`s1`) ON UPDATE CASCADE)
+select a,hex(s1) from t1;
+a hex(s1)
+2 12
+select hex(s1) from t2;
+hex(s1)
+12
+drop table t2,t1;
CREATE TABLE t1(a INT, PRIMARY KEY(a)) ENGINE=InnoDB;
CREATE TABLE t2(a INT) ENGINE=InnoDB;
ALTER TABLE t2 ADD FOREIGN KEY (a) REFERENCES t1(a);
@@ -1807,3 +2872,152 @@ t2 CREATE TABLE `t2` (
KEY `t2_ibfk_0` (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t2,t1;
+create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+insert into t1(a) values (1),(2),(3);
+commit;
+set autocommit = 0;
+update t1 set b = 5 where a = 2;
+create trigger t1t before insert on t1 for each row begin set NEW.b = NEW.a * 10 + 5, NEW.c = NEW.a / 10; end |
+set autocommit = 0;
+insert into t1(a) values (10),(20),(30),(40),(50),(60),(70),(80),(90),(100),
+(11),(21),(31),(41),(51),(61),(71),(81),(91),(101),
+(12),(22),(32),(42),(52),(62),(72),(82),(92),(102),
+(13),(23),(33),(43),(53),(63),(73),(83),(93),(103),
+(14),(24),(34),(44),(54),(64),(74),(84),(94),(104);
+commit;
+commit;
+drop trigger t1t;
+drop table t1;
+create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t2(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t3(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t4(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t5(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+insert into t1(a) values (1),(2),(3);
+insert into t2(a) values (1),(2),(3);
+insert into t3(a) values (1),(2),(3);
+insert into t4(a) values (1),(2),(3);
+insert into t3(a) values (5),(7),(8);
+insert into t4(a) values (5),(7),(8);
+insert into t5(a) values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12);
+create trigger t1t before insert on t1 for each row begin
+INSERT INTO t2 SET a = NEW.a;
+end |
+create trigger t2t before insert on t2 for each row begin
+DELETE FROM t3 WHERE a = NEW.a;
+end |
+create trigger t3t before delete on t3 for each row begin
+UPDATE t4 SET b = b + 1 WHERE a = OLD.a;
+end |
+create trigger t4t before update on t4 for each row begin
+UPDATE t5 SET b = b + 1 where a = NEW.a;
+end |
+commit;
+set autocommit = 0;
+update t1 set b = b + 5 where a = 1;
+update t2 set b = b + 5 where a = 1;
+update t3 set b = b + 5 where a = 1;
+update t4 set b = b + 5 where a = 1;
+insert into t5(a) values(20);
+set autocommit = 0;
+insert into t1(a) values(7);
+insert into t2(a) values(8);
+delete from t2 where a = 3;
+update t4 set b = b + 1 where a = 3;
+commit;
+drop trigger t1t;
+drop trigger t2t;
+drop trigger t3t;
+drop trigger t4t;
+drop table t1, t2, t3, t4, t5;
+create table t1(a date) engine=innodb;
+create table t2(a date, key(a)) engine=innodb;
+insert into t1 values('2005-10-01');
+insert into t2 values('2005-10-01');
+select * from t1, t2
+where t2.a between t1.a - interval 2 day and t1.a + interval 2 day;
+a a
+2005-10-01 2005-10-01
+drop table t1, t2;
+CREATE TABLE t1 (DB_ROW_ID int) engine=innodb;
+ERROR HY000: Can't create table './test/t1.frm' (errno: -1)
+CREATE TABLE t1 (
+a BIGINT(20) NOT NULL,
+PRIMARY KEY (a)
+) ENGINE=INNODB DEFAULT CHARSET=UTF8;
+CREATE TABLE t2 (
+a BIGINT(20) NOT NULL,
+b VARCHAR(128) NOT NULL,
+c TEXT NOT NULL,
+PRIMARY KEY (a,b),
+KEY idx_t2_b_c (b,c(200)),
+CONSTRAINT t_fk FOREIGN KEY (a) REFERENCES t1 (a)
+ON DELETE CASCADE
+) ENGINE=INNODB DEFAULT CHARSET=UTF8;
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1, 'bar', 'vbar');
+INSERT INTO t2 VALUES (1, 'BAR2', 'VBAR');
+INSERT INTO t2 VALUES (1, 'bar_bar', 'bibi');
+INSERT INTO t2 VALUES (1, 'customer_over', '1');
+SELECT * FROM t2 WHERE b = 'customer_over';
+a b c
+1 customer_over 1
+SELECT * FROM t2 WHERE BINARY b = 'customer_over';
+a b c
+1 customer_over 1
+SELECT DISTINCT p0.a FROM t2 p0 WHERE p0.b = 'customer_over';
+a
+1
+/* Bang: Empty result set, above was expected: */
+SELECT DISTINCT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over';
+a
+1
+SELECT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over';
+a
+1
+drop table t2, t1;
+create table t1 (g geometry not null, spatial gk(g)) engine=innodb;
+ERROR HY000: The used table type doesn't support SPATIAL indexes
+CREATE TABLE t1 (a INT, INDEX(a)) ENGINE=InnoDB;
+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;
+ALTER TABLE t2 MODIFY a INT NOT NULL;
+ERROR HY000: Error on rename of '#sql-temporary' to './test/t2' (errno: 150)
+DELETE FROM t1;
+DROP TABLE t2,t1;
+CREATE TABLE t1 (a VARCHAR(5) COLLATE utf8_unicode_ci PRIMARY KEY)
+ENGINE=InnoDB;
+INSERT INTO t1 VALUES (0xEFBCA4EFBCA4EFBCA4);
+DELETE FROM t1;
+INSERT INTO t1 VALUES ('DDD');
+SELECT * FROM t1;
+a
+DDD
+DROP TABLE t1;
+CREATE TABLE t1 (id int PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB
+AUTO_INCREMENT=42;
+INSERT INTO t1 VALUES (0),(347),(0);
+SELECT * FROM t1;
+id
+42
+347
+348
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) NOT NULL auto_increment,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=349 DEFAULT CHARSET=latin1
+CREATE TABLE t2 (id int PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t2 VALUES(42),(347),(348);
+ALTER TABLE t1 ADD CONSTRAINT t1_t2 FOREIGN KEY (id) REFERENCES t2(id);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) NOT NULL auto_increment,
+ PRIMARY KEY (`id`),
+ CONSTRAINT `t1_t2` FOREIGN KEY (`id`) REFERENCES `t2` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=349 DEFAULT CHARSET=latin1
+DROP TABLE t1,t2;
diff --git a/mysql-test/r/innodb_gis.result b/mysql-test/r/innodb_gis.result
new file mode 100644
index 00000000000..bfe8c984b7b
--- /dev/null
+++ b/mysql-test/r/innodb_gis.result
@@ -0,0 +1,583 @@
+SET storage_engine=innodb;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE gis_point (fid INTEGER, g POINT);
+CREATE TABLE gis_line (fid INTEGER, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER, g GEOMETRY);
+SHOW CREATE TABLE gis_point;
+Table Create Table
+gis_point CREATE TABLE `gis_point` (
+ `fid` int(11) default NULL,
+ `g` point default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SHOW FIELDS FROM gis_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g point YES NULL
+SHOW FIELDS FROM gis_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g linestring YES NULL
+SHOW FIELDS FROM gis_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g polygon YES NULL
+SHOW FIELDS FROM gis_multi_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipoint YES NULL
+SHOW FIELDS FROM gis_multi_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multilinestring YES NULL
+SHOW FIELDS FROM gis_multi_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipolygon YES NULL
+SHOW FIELDS FROM gis_geometrycollection;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometrycollection YES NULL
+SHOW FIELDS FROM gis_geometry;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometry YES NULL
+INSERT INTO gis_point VALUES
+(101, PointFromText('POINT(10 10)')),
+(102, PointFromText('POINT(20 10)')),
+(103, PointFromText('POINT(20 20)')),
+(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
+INSERT INTO gis_line VALUES
+(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
+(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
+(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
+INSERT INTO gis_polygon VALUES
+(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
+(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
+(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
+INSERT INTO gis_multi_point VALUES
+(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
+(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
+(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
+INSERT INTO gis_multi_line VALUES
+(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
+(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
+(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
+INSERT INTO gis_multi_polygon VALUES
+(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
+INSERT INTO gis_geometrycollection VALUES
+(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
+(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+SELECT fid, AsText(g) FROM gis_point ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+SELECT fid, AsText(g) FROM gis_line ORDER by fid;
+fid AsText(g)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
+fid AsText(g)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
+fid AsText(g)
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
+fid AsText(g)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
+fid AsText(g)
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
+fid AsText(g)
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
+fid Dimension(g)
+101 0
+102 0
+103 0
+104 0
+105 1
+106 1
+107 1
+108 2
+109 2
+110 2
+111 0
+112 0
+113 0
+114 1
+115 1
+116 1
+117 2
+118 2
+119 2
+120 1
+121 1
+SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
+fid GeometryType(g)
+101 POINT
+102 POINT
+103 POINT
+104 POINT
+105 LINESTRING
+106 LINESTRING
+107 LINESTRING
+108 POLYGON
+109 POLYGON
+110 POLYGON
+111 MULTIPOINT
+112 MULTIPOINT
+113 MULTIPOINT
+114 MULTILINESTRING
+115 MULTILINESTRING
+116 MULTILINESTRING
+117 MULTIPOLYGON
+118 MULTIPOLYGON
+119 MULTIPOLYGON
+120 GEOMETRYCOLLECTION
+121 GEOMETRYCOLLECTION
+SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
+fid IsEmpty(g)
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
+fid AsText(Envelope(g))
+101 POLYGON((10 10,10 10,10 10,10 10,10 10))
+102 POLYGON((20 10,20 10,20 10,20 10,20 10))
+103 POLYGON((20 20,20 20,20 20,20 20,20 20))
+104 POLYGON((10 20,10 20,10 20,10 20,10 20))
+105 POLYGON((0 0,10 0,10 10,0 10,0 0))
+106 POLYGON((10 10,20 10,20 20,10 20,10 10))
+107 POLYGON((10 10,40 10,40 10,10 10,10 10))
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0))
+110 POLYGON((0 0,30 0,30 30,0 30,0 0))
+111 POLYGON((0 0,20 0,20 20,0 20,0 0))
+112 POLYGON((1 1,21 1,21 21,1 21,1 1))
+113 POLYGON((3 6,4 6,4 10,3 10,3 6))
+114 POLYGON((10 0,16 0,16 48,10 48,10 0))
+115 POLYGON((10 0,10 0,10 48,10 48,10 0))
+116 POLYGON((1 2,21 2,21 8,1 8,1 2))
+117 POLYGON((28 0,84 0,84 42,28 42,28 0))
+118 POLYGON((28 0,84 0,84 42,28 42,28 0))
+119 POLYGON((0 0,3 0,3 3,0 3,0 0))
+120 POLYGON((0 0,10 0,10 10,0 10,0 0))
+121 POLYGON((3 6,44 6,44 9,3 9,3 6))
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
+Warnings:
+Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
+SELECT fid, X(g) FROM gis_point ORDER by fid;
+fid X(g)
+101 10
+102 20
+103 20
+104 10
+SELECT fid, Y(g) FROM gis_point ORDER by fid;
+fid Y(g)
+101 10
+102 10
+103 20
+104 20
+explain extended select X(g),Y(g) FROM gis_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
+Warnings:
+Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
+SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(StartPoint(g))
+105 POINT(0 0)
+106 POINT(10 10)
+107 POINT(10 10)
+SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(EndPoint(g))
+105 POINT(10 0)
+106 POINT(10 10)
+107 POINT(40 10)
+SELECT fid, GLength(g) FROM gis_line ORDER by fid;
+fid GLength(g)
+105 24.142135623731
+106 40
+107 30
+SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
+fid NumPoints(g)
+105 3
+106 5
+107 2
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
+fid AsText(PointN(g, 2))
+105 POINT(0 10)
+106 POINT(20 10)
+107 POINT(40 10)
+SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
+fid IsClosed(g)
+105 0
+106 1
+107 0
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
+fid AsText(Centroid(g))
+108 POINT(15 15)
+109 POINT(25.416666666667 25.416666666667)
+110 POINT(20 10)
+SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
+fid Area(g)
+108 100
+109 2400
+110 450
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
+fid AsText(ExteriorRing(g))
+108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
+110 LINESTRING(0 0,30 0,30 30,0 0)
+SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
+fid NumInteriorRings(g)
+108 0
+109 1
+110 0
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
+fid AsText(InteriorRingN(g, 1))
+108 NULL
+109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+110 NULL
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
+SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
+fid IsClosed(g)
+114 0
+115 0
+116 0
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
+fid AsText(Centroid(g))
+117 POINT(55.588527753042 17.426536064114)
+118 POINT(55.588527753042 17.426536064114)
+119 POINT(2 2)
+SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
+fid Area(g)
+117 1684.5
+118 1684.5
+119 4.5
+SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
+fid NumGeometries(g)
+111 4
+112 4
+113 2
+SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
+fid NumGeometries(g)
+114 2
+115 1
+116 2
+SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
+fid NumGeometries(g)
+117 2
+118 2
+119 1
+SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
+fid NumGeometries(g)
+120 2
+121 2
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
+fid AsText(GeometryN(g, 2))
+111 POINT(10 10)
+112 POINT(11 11)
+113 POINT(4 10)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
+fid AsText(GeometryN(g, 2))
+114 LINESTRING(16 0,16 23,16 48)
+115 NULL
+116 LINESTRING(2 5,5 8,21 7)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
+fid AsText(GeometryN(g, 2))
+117 POLYGON((59 18,67 18,67 13,59 13,59 18))
+118 POLYGON((59 18,67 18,67 13,59 13,59 18))
+119 NULL
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 2))
+120 LINESTRING(0 0,10 10)
+121 LINESTRING(3 6,7 9)
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 1))
+120 POINT(0 0)
+121 POINT(44 6)
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
+SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+first second w c o e d t i r
+120 120 1 1 0 1 0 0 1 0
+120 121 0 0 1 0 0 0 1 0
+121 120 0 0 1 0 0 0 1 0
+121 121 1 1 0 1 0 0 1 0
+explain extended SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+1 SIMPLE g2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE t1 (
+gp point,
+ln linestring,
+pg polygon,
+mp multipoint,
+mln multilinestring,
+mpg multipolygon,
+gc geometrycollection,
+gm geometry
+);
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+ALTER TABLE t1 ADD fid INT;
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+fid int(11) YES NULL
+DROP TABLE t1;
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+insert into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert IGNORE into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+drop table t1;
+create table t1 (fl geometry not null);
+insert into t1 values (1);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (1.11);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values ("qwerty");
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (pointfromtext('point(1,1)'));
+ERROR 23000: Column 'fl' cannot be null
+drop table t1;
+End of 4.1 tests
+CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrcontains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrdisjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrequal
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrintersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbroverlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrtouches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrwithin
+big,center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+contains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+disjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+equals
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+intersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+overlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+touches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+within
+big,center
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+overlaps
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+overlaps
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+Overlaps(@horiz1, @vert1)
+0
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+Overlaps(@horiz1, @horiz2)
+1
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+Overlaps(@horiz1, @horiz3)
+0
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+Overlaps(@horiz1, @point1)
+0
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+Overlaps(@horiz1, @point2)
+0
+DROP TABLE t1;
+End of 5.0 tests
+CREATE TABLE t1 (p POINT);
+CREATE TABLE t2 (p POINT, INDEX(p));
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+1
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref p p 28 const 1 Using where
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+1
+INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
+INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
+EXPLAIN
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+EXPLAIN
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref p p 28 const 1 Using where
+SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+EXPLAIN
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
+SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
+COUNT(*)
+2
+DROP TABLE t1, t2;
+End of 5.0 tests
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index 93b93c6253c..d5f014b6840 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -1,4 +1,4 @@
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3,t4;
create table t1 (
c_id int(11) not null default '0',
org_id int(11) default null,
@@ -104,29 +104,12 @@ SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` =
id1
2
DROP TABLE t1, t2;
-DROP TABLE IF EXISTS t2, t1;
-CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE= InnoDB;
-CREATE TABLE t2 (
-i INT NOT NULL,
-FOREIGN KEY (i) REFERENCES t1 (i) ON DELETE NO ACTION
-) ENGINE= InnoDB;
-INSERT INTO t1 VALUES (1);
-INSERT INTO t2 VALUES (1);
-DELETE IGNORE FROM t1 WHERE i = 1;
-Warnings:
-Error 1217 Cannot delete or update a parent row: a foreign key constraint fails
-SELECT * FROM t1, t2;
-i i
-1 1
-DROP TABLE t2, t1;
-flush status;
create table t1 (c1 int) engine=innodb;
handler t1 open;
handler t1 read first;
c1
-show /*!50002 GLOBAL */ status like 'Handler_rollback';
-Variable_name Value
-Handler_rollback 0
+Before and after comparison
+0
drop table t1;
CREATE TABLE t1(c1 TEXT, UNIQUE (c1(1)), cnt INT DEFAULT 1)
ENGINE=INNODB CHARACTER SET UTF8;
@@ -182,6 +165,466 @@ t1.a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
DROP TABLE t1;
+End of 4.1 tests
+create table t1m (a int) engine=myisam;
+create table t1i (a int) engine=innodb;
+create table t2m (a int) engine=myisam;
+create table t2i (a int) engine=innodb;
+insert into t2m values (5);
+insert into t2i values (5);
+select min(a) from t1m;
+min(a)
+NULL
+select min(7) from t1m;
+min(7)
+NULL
+select min(7) from DUAL;
+min(7)
+7
+explain select min(7) from t2m join t1m;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select min(7) from t2m join t1m;
+min(7)
+NULL
+select max(a) from t1m;
+max(a)
+NULL
+select max(7) from t1m;
+max(7)
+NULL
+select max(7) from DUAL;
+max(7)
+7
+explain select max(7) from t2m join t1m;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select max(7) from t2m join t1m;
+max(7)
+NULL
+select 1, min(a) from t1m where a=99;
+1 min(a)
+1 NULL
+select 1, min(a) from t1m where 1=99;
+1 min(a)
+1 NULL
+select 1, min(1) from t1m where a=99;
+1 min(1)
+1 NULL
+select 1, min(1) from t1m where 1=99;
+1 min(1)
+1 NULL
+select 1, max(a) from t1m where a=99;
+1 max(a)
+1 NULL
+select 1, max(a) from t1m where 1=99;
+1 max(a)
+1 NULL
+select 1, max(1) from t1m where a=99;
+1 max(1)
+1 NULL
+select 1, max(1) from t1m where 1=99;
+1 max(1)
+1 NULL
+select min(a) from t1i;
+min(a)
+NULL
+select min(7) from t1i;
+min(7)
+NULL
+select min(7) from DUAL;
+min(7)
+7
+explain select min(7) from t2i join t1i;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2i ALL NULL NULL NULL NULL 1
+1 SIMPLE t1i ALL NULL NULL NULL NULL 1
+select min(7) from t2i join t1i;
+min(7)
+NULL
+select max(a) from t1i;
+max(a)
+NULL
+select max(7) from t1i;
+max(7)
+NULL
+select max(7) from DUAL;
+max(7)
+7
+explain select max(7) from t2i join t1i;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2i ALL NULL NULL NULL NULL 1
+1 SIMPLE t1i ALL NULL NULL NULL NULL 1
+select max(7) from t2i join t1i;
+max(7)
+NULL
+select 1, min(a) from t1i where a=99;
+1 min(a)
+1 NULL
+select 1, min(a) from t1i where 1=99;
+1 min(a)
+1 NULL
+select 1, min(1) from t1i where a=99;
+1 min(1)
+1 NULL
+select 1, min(1) from t1i where 1=99;
+1 min(1)
+1 NULL
+select 1, max(a) from t1i where a=99;
+1 max(a)
+1 NULL
+select 1, max(a) from t1i where 1=99;
+1 max(a)
+1 NULL
+select 1, max(1) from t1i where a=99;
+1 max(1)
+1 NULL
+select 1, max(1) from t1i where 1=99;
+1 max(1)
+1 NULL
+explain select count(*), min(7), max(7) from t1m, t1i;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found
+1 SIMPLE t1i ALL NULL NULL NULL NULL 1
+select count(*), min(7), max(7) from t1m, t1i;
+count(*) min(7) max(7)
+0 NULL NULL
+explain select count(*), min(7), max(7) from t1m, t2i;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found
+1 SIMPLE t2i ALL NULL NULL NULL NULL 1
+select count(*), min(7), max(7) from t1m, t2i;
+count(*) min(7) max(7)
+0 NULL NULL
+explain select count(*), min(7), max(7) from t2m, t1i;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2m system NULL NULL NULL NULL 1
+1 SIMPLE t1i ALL NULL NULL NULL NULL 1
+select count(*), min(7), max(7) from t2m, t1i;
+count(*) min(7) max(7)
+0 NULL NULL
+drop table t1m, t1i, t2m, t2i;
+create table t1 (
+a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
+);
+insert into t1 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
+create table t4 (
+pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
+) engine=innodb;
+insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
+create index idx12672_0 on t4 (a1);
+create index idx12672_1 on t4 (a1,a2,b,c);
+create index idx12672_2 on t4 (a1,a2,b);
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+select distinct a1 from t4 where pk_col not in (1,2,3,4);
+a1
+a
+b
+c
+d
+drop table t1,t4;
+DROP TABLE IF EXISTS t2, t1;
+CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE= InnoDB;
+CREATE TABLE t2 (
+i INT NOT NULL,
+FOREIGN KEY (i) REFERENCES t1 (i) ON DELETE NO ACTION
+) ENGINE= InnoDB;
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1);
+DELETE IGNORE FROM t1 WHERE i = 1;
+Warnings:
+Error 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`i`) REFERENCES `t1` (`i`) ON DELETE NO ACTION)
+SELECT * FROM t1, t2;
+i i
+1 1
+DROP TABLE t2, t1;
+End of 4.1 tests.
+create table t1 (
+a varchar(30), b varchar(30), primary key(a), key(b)
+) engine=innodb;
+select distinct a from t1;
+a
+drop table t1;
+create table t1(a int, key(a)) engine=innodb;
+insert into t1 values(1);
+select a, count(a) from t1 group by a with rollup;
+a count(a)
+1 1
+NULL 1
+drop table t1;
+create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
+insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
+alter table t1 drop primary key, add primary key (f2, f1);
+explain select distinct f1 a, f1 b from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
+explain select distinct f1, f2 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL PRIMARY 5 NULL 3 Using index for group-by; Using temporary
+drop table t1;
+CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
+INDEX (name)) ENGINE=InnoDB;
+CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
+FOREIGN KEY (fkey) REFERENCES t2(id)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
+INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
+EXPLAIN
+SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
+WHERE t1.name LIKE 'A%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
+1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
+EXPLAIN
+SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
+WHERE t1.name LIKE 'A%' OR FALSE;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where
+DROP TABLE t1,t2;
+create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
+character set utf8 collate utf8_general_ci;
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+insert into t1 values('aaa');
+drop table t1;
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB;
+INSERT INTO t1 VALUES ( 1 , 1 , 1);
+INSERT INTO t1 SELECT a + 1 , MOD(a + 1 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 2 , MOD(a + 2 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 4 , MOD(a + 4 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 8 , MOD(a + 8 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 16, MOD(a + 16, 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20), 1 FROM t1;
+EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL b 5 NULL 128
+EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using filesort
+DROP TABLE t1;
+CREATE TABLE t1 (
+id int NOT NULL,
+name varchar(20) NOT NULL,
+dept varchar(20) NOT NULL,
+age tinyint(3) unsigned NOT NULL,
+PRIMARY KEY (id),
+INDEX (name,dept)
+) ENGINE=InnoDB;
+INSERT INTO t1(id, dept, age, name) VALUES
+(3987, 'cs1', 10, 'rs1'), (3988, 'cs2', 20, 'rs1'), (3995, 'cs3', 10, 'rs2'),
+(3996, 'cs4', 20, 'rs2'), (4003, 'cs5', 10, 'rs3'), (4004, 'cs6', 20, 'rs3'),
+(4011, 'cs7', 10, 'rs4'), (4012, 'cs8', 20, 'rs4'), (4019, 'cs9', 10, 'rs5'),
+(4020, 'cs10', 20, 'rs5'),(4027, 'cs11', 10, 'rs6'),(4028, 'cs12', 20, 'rs6');
+EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range name name 44 NULL 2 Using where; Using index for group-by
+SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+name dept
+rs5 cs10
+rs5 cs9
+DELETE FROM t1;
+EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range name name 44 NULL 2 Using where; Using index for group-by
+SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+name dept
+DROP TABLE t1;
+show variables like 'innodb_rollback_on_timeout';
+Variable_name Value
+innodb_rollback_on_timeout OFF
+create table t1 (a int unsigned not null primary key) engine = innodb;
+insert into t1 values (1);
+commit;
+begin work;
+insert into t1 values (2);
+select * from t1;
+a
+1
+2
+begin work;
+insert into t1 values (5);
+select * from t1;
+a
+1
+5
+insert into t1 values (2);
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+select * from t1;
+a
+1
+5
+commit;
+select * from t1;
+a
+1
+2
+commit;
+select * from t1;
+a
+1
+2
+5
+drop table t1;
+set @save_qcache_size=@@global.query_cache_size;
+set @save_qcache_type=@@global.query_cache_type;
+set global query_cache_size=10*1024*1024;
+set global query_cache_type=1;
+drop table if exists `test`;
+Warnings:
+Note 1051 Unknown table 'test'
+CREATE TABLE `test` (`test1` varchar(3) NOT NULL,
+`test2` varchar(4) NOT NULL,PRIMARY KEY (`test1`))
+ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678');
+select * from test;
+test1 test2
+tes 5678
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '1234')
+ON DUPLICATE KEY UPDATE `test2` = '1234';
+select * from test;
+test1 test2
+tes 1234
+flush tables;
+select * from test;
+test1 test2
+tes 1234
+drop table test;
+set global query_cache_type=@save_qcache_type;
+set global query_cache_size=@save_qcache_size;
+create table t1(
+id int auto_increment,
+c char(1) not null,
+counter int not null default 1,
+primary key (id),
+unique key (c)
+) engine=innodb;
+insert into t1 (id, c) values
+(NULL, 'a'),
+(NULL, 'a')
+on duplicate key update id = values(id), counter = counter + 1;
+select * from t1;
+id c counter
+2 a 2
+insert into t1 (id, c) values
+(NULL, 'b')
+on duplicate key update id = values(id), counter = counter + 1;
+select * from t1;
+id c counter
+2 a 2
+3 b 1
+truncate table t1;
+insert into t1 (id, c) values (NULL, 'a');
+select * from t1;
+id c counter
+1 a 1
+insert into t1 (id, c) values (NULL, 'b'), (NULL, 'b')
+on duplicate key update id = values(id), c = values(c), counter = counter + 1;
+select * from t1;
+id c counter
+1 a 1
+3 b 2
+insert into t1 (id, c) values (NULL, 'a')
+on duplicate key update id = values(id), c = values(c), counter = counter + 1;
+select * from t1;
+id c counter
+3 b 2
+4 a 2
+drop table t1;
+CREATE TABLE t1(
+id int AUTO_INCREMENT PRIMARY KEY,
+stat_id int NOT NULL,
+acct_id int DEFAULT NULL,
+INDEX idx1 (stat_id, acct_id),
+INDEX idx2 (acct_id)
+) ENGINE=MyISAM;
+CREATE TABLE t2(
+id int AUTO_INCREMENT PRIMARY KEY,
+stat_id int NOT NULL,
+acct_id int DEFAULT NULL,
+INDEX idx1 (stat_id, acct_id),
+INDEX idx2 (acct_id)
+) ENGINE=InnoDB;
+INSERT INTO t1(stat_id,acct_id) VALUES
+(1,759), (2,831), (3,785), (4,854), (1,921),
+(1,553), (2,589), (3,743), (2,827), (2,545),
+(4,779), (4,783), (1,597), (1,785), (4,832),
+(1,741), (1,833), (3,788), (2,973), (1,907);
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+UPDATE t1 SET acct_id=785
+WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id);
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+40960
+SELECT COUNT(*) FROM t1 WHERE acct_id=785;
+COUNT(*)
+8702
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx1,idx2 idx1 9 NULL 2 Using where; Using index
+INSERT INTO t2 SELECT * FROM t1;
+OPTIMIZE TABLE t2;
+Table Op Msg_type Msg_text
+test.t2 optimize status OK
+EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range idx1,idx2 idx1 9 NULL 2 Using where; Using index
+DROP TABLE t1,t2;
+create table t1(a int) engine=innodb;
+alter table t1 comment '123';
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='123'
+drop table t1;
CREATE TABLE t1 (a CHAR(2), KEY (a)) ENGINE = InnoDB DEFAULT CHARSET=UTF8;
INSERT INTO t1 VALUES ('uk'),('bg');
SELECT * FROM t1 WHERE a = 'uk';
@@ -218,4 +661,554 @@ UPDATE t3 SET a = 'us' WHERE a = 'uk';
SELECT * FROM t3 WHERE a = 'uk';
a
DROP TABLE t1,t2,t3;
-End of 4.1 tests
+create table t1 (a int) engine=innodb;
+select * from t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+drop table t1;
+drop table t2;
+ERROR 42S02: Unknown table 't2'
+create table t2 (a int);
+drop table t2;
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+switch to connection c1
+SET AUTOCOMMIT=0;
+INSERT INTO t2 VALUES (1);
+switch to connection c2
+SET AUTOCOMMIT=0;
+LOCK TABLES t1 READ, t2 READ;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+switch to connection c1
+COMMIT;
+INSERT INTO t1 VALUES (1);
+switch to connection default
+SET AUTOCOMMIT=default;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (
+id int NOT NULL auto_increment PRIMARY KEY,
+b int NOT NULL,
+c datetime NOT NULL,
+INDEX idx_b(b),
+INDEX idx_c(c)
+) ENGINE=InnoDB;
+CREATE TABLE t2 (
+b int NOT NULL auto_increment PRIMARY KEY,
+c datetime NOT NULL
+) ENGINE= MyISAM;
+INSERT INTO t2(c) VALUES ('2007-01-01');
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t1(b,c) SELECT b,c FROM t2;
+UPDATE t2 SET c='2007-01-02';
+INSERT INTO t1(b,c) SELECT b,c FROM t2;
+UPDATE t2 SET c='2007-01-03';
+INSERT INTO t1(b,c) SELECT b,c FROM t2;
+set @@sort_buffer_size=8192;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+3072
+EXPLAIN
+SELECT COUNT(*) FROM t1
+WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL idx_b,idx_c NULL NULL NULL # Using where
+SELECT COUNT(*) FROM t1
+WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+COUNT(*)
+3072
+EXPLAIN
+SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
+WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge idx_b,idx_c idx_c,idx_b 8,4 NULL # Using sort_union(idx_c,idx_b); Using where
+SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
+WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+COUNT(*)
+3072
+set @@sort_buffer_size=default;
+DROP TABLE t1,t2;
+drop table if exists t1;
+create table t1 (a int) engine=innodb;
+alter table t1 alter a set default 1;
+drop table t1;
+
+Bug#24918 drop table and lock / inconsistent between
+perm and temp tables
+
+Check transactional tables under LOCK TABLES
+
+drop table if exists t24918, t24918_tmp, t24918_trans, t24918_trans_tmp,
+t24918_access;
+create table t24918_access (id int);
+create table t24918 (id int) engine=myisam;
+create temporary table t24918_tmp (id int) engine=myisam;
+create table t24918_trans (id int) engine=innodb;
+create temporary table t24918_trans_tmp (id int) engine=innodb;
+lock table t24918 write, t24918_tmp write, t24918_trans write, t24918_trans_tmp write;
+drop table t24918;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+drop table t24918_trans;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+drop table t24918_trans_tmp;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+drop table t24918_tmp;
+select * from t24918_access;
+ERROR HY000: Table 't24918_access' was not locked with LOCK TABLES
+unlock tables;
+drop table t24918_access;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY bkey (b)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1,2),(3,2),(2,2),(4,2),(5,2),(6,2),(7,2),(8,2);
+INSERT INTO t1 SELECT a + 8, 2 FROM t1;
+INSERT INTO t1 SELECT a + 16, 1 FROM t1;
+EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a;
+id 1
+select_type SIMPLE
+table t1
+type ref
+possible_keys bkey
+key bkey
+key_len 5
+ref const
+rows 16
+Extra Using where; Using index
+SELECT * FROM t1 WHERE b=2 ORDER BY a;
+a b
+1 2
+2 2
+3 2
+4 2
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+11 2
+12 2
+13 2
+14 2
+15 2
+16 2
+EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
+id 1
+select_type SIMPLE
+table t1
+type range
+possible_keys bkey
+key bkey
+key_len 5
+ref NULL
+rows 16
+Extra Using where; Using index; Using filesort
+SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
+a b
+1 2
+2 2
+3 2
+4 2
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+11 2
+12 2
+13 2
+14 2
+15 2
+16 2
+17 1
+18 1
+19 1
+20 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+30 1
+31 1
+32 1
+EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
+id 1
+select_type SIMPLE
+table t1
+type range
+possible_keys bkey
+key bkey
+key_len 5
+ref NULL
+rows 16
+Extra Using where; Using index
+SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
+a b
+17 1
+18 1
+19 1
+20 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+30 1
+31 1
+32 1
+1 2
+2 2
+3 2
+4 2
+5 2
+6 2
+7 2
+8 2
+9 2
+10 2
+11 2
+12 2
+13 2
+14 2
+15 2
+16 2
+CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a), KEY bkey (b,c))
+ENGINE=InnoDB;
+INSERT INTO t2 VALUES (1,1,1),(3,1,1),(2,1,1),(4,1,1);
+INSERT INTO t2 SELECT a + 4, 1, 1 FROM t2;
+INSERT INTO t2 SELECT a + 8, 1, 1 FROM t2;
+EXPLAIN SELECT * FROM t2 WHERE b=1 ORDER BY a;
+id 1
+select_type SIMPLE
+table t2
+type ref
+possible_keys bkey
+key bkey
+key_len 5
+ref const
+rows 8
+Extra Using where; Using index; Using filesort
+SELECT * FROM t2 WHERE b=1 ORDER BY a;
+a b c
+1 1 1
+2 1 1
+3 1 1
+4 1 1
+5 1 1
+6 1 1
+7 1 1
+8 1 1
+9 1 1
+10 1 1
+11 1 1
+12 1 1
+13 1 1
+14 1 1
+15 1 1
+16 1 1
+EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
+id 1
+select_type SIMPLE
+table t2
+type ref
+possible_keys bkey
+key bkey
+key_len 10
+ref const,const
+rows 8
+Extra Using where; Using index
+SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
+a b c
+1 1 1
+2 1 1
+3 1 1
+4 1 1
+5 1 1
+6 1 1
+7 1 1
+8 1 1
+9 1 1
+10 1 1
+11 1 1
+12 1 1
+13 1 1
+14 1 1
+15 1 1
+16 1 1
+EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a;
+id 1
+select_type SIMPLE
+table t2
+type ref
+possible_keys bkey
+key bkey
+key_len 10
+ref const,const
+rows 8
+Extra Using where; Using index
+SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a;
+a b c
+1 1 1
+2 1 1
+3 1 1
+4 1 1
+5 1 1
+6 1 1
+7 1 1
+8 1 1
+9 1 1
+10 1 1
+11 1 1
+12 1 1
+13 1 1
+14 1 1
+15 1 1
+16 1 1
+EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a;
+id 1
+select_type SIMPLE
+table t2
+type ref
+possible_keys bkey
+key bkey
+key_len 10
+ref const,const
+rows 8
+Extra Using where; Using index
+SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a;
+a b c
+1 1 1
+2 1 1
+3 1 1
+4 1 1
+5 1 1
+6 1 1
+7 1 1
+8 1 1
+9 1 1
+10 1 1
+11 1 1
+12 1 1
+13 1 1
+14 1 1
+15 1 1
+16 1 1
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT, PRIMARY KEY (a)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+INSERT INTO t1 SELECT a + 8 FROM t1;
+INSERT INTO t1 SELECT a + 16 FROM t1;
+CREATE PROCEDURE p1 ()
+BEGIN
+DECLARE i INT DEFAULT 50;
+DECLARE cnt INT;
+START TRANSACTION;
+ALTER TABLE t1 ENGINE=InnoDB;
+COMMIT;
+START TRANSACTION;
+WHILE (i > 0) DO
+SET i = i - 1;
+SELECT COUNT(*) INTO cnt FROM t1 LOCK IN SHARE MODE;
+END WHILE;
+COMMIT;
+END;|
+CALL p1();
+CALL p1();
+CALL p1();
+DROP PROCEDURE p1;
+DROP TABLE t1;
+create table t1(a text) engine=innodb default charset=utf8;
+insert into t1 values('aaa');
+alter table t1 add index(a(1024));
+Warnings:
+Warning 1071 Specified key was too long; max key length is 767 bytes
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` text,
+ 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;
+CREATE TABLE t1(
+a INT,
+b INT NOT NULL,
+c INT NOT NULL,
+d INT,
+UNIQUE KEY (c,b)
+) engine=innodb;
+INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
+SELECT c,b,d FROM t1 GROUP BY c,b,d;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b,d FROM t1 ORDER BY c,b,d;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
+SELECT c,b,d FROM t1 ORDER BY c,b,d;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL c 8 NULL 3
+SELECT c,b,d FROM t1 GROUP BY c,b;
+c b d
+1 1 50
+3 1 4
+3 2 40
+EXPLAIN SELECT c,b FROM t1 GROUP BY c,b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL c 8 NULL 3 Using index
+SELECT c,b FROM t1 GROUP BY c,b;
+c b
+1 1
+3 1
+3 2
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB;
+INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2);
+EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
+id 1
+select_type SIMPLE
+table t1
+type ref
+possible_keys b
+key b
+key_len 5
+ref const
+rows 1
+Extra Using where; Using index
+SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
+a b
+2 2
+3 2
+EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
+id 1
+select_type SIMPLE
+table t1
+type ref
+possible_keys b
+key b
+key_len 5
+ref const
+rows 1
+Extra Using where; Using index
+SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
+a b
+3 2
+2 2
+EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a ASC;
+id 1
+select_type SIMPLE
+table t1
+type index
+possible_keys NULL
+key b
+key_len 5
+ref NULL
+rows 3
+Extra Using index
+SELECT * FROM t1 ORDER BY b ASC, a ASC;
+a b
+1 1
+2 2
+3 2
+EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a DESC;
+id 1
+select_type SIMPLE
+table t1
+type index
+possible_keys NULL
+key b
+key_len 5
+ref NULL
+rows 3
+Extra Using index
+SELECT * FROM t1 ORDER BY b DESC, a DESC;
+a b
+3 2
+2 2
+1 1
+EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a DESC;
+id 1
+select_type SIMPLE
+table t1
+type index
+possible_keys NULL
+key b
+key_len 5
+ref NULL
+rows 3
+Extra Using index; Using filesort
+SELECT * FROM t1 ORDER BY b ASC, a DESC;
+a b
+1 1
+3 2
+2 2
+EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a ASC;
+id 1
+select_type SIMPLE
+table t1
+type index
+possible_keys NULL
+key b
+key_len 5
+ref NULL
+rows 3
+Extra Using index; Using filesort
+SELECT * FROM t1 ORDER BY b DESC, a ASC;
+a b
+2 2
+3 2
+1 1
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/innodb_notembedded.result b/mysql-test/r/innodb_notembedded.result
new file mode 100644
index 00000000000..cc13a429dfc
--- /dev/null
+++ b/mysql-test/r/innodb_notembedded.result
@@ -0,0 +1,20 @@
+drop table if exists t1;
+create table t1 (col1 integer primary key, col2 integer) engine=innodb;
+insert t1 values (1,100);
+create function f1 () returns integer begin
+declare var1 int;
+select col2 into var1 from t1 where col1=1 for update;
+return var1;
+end|
+start transaction;
+select f1();
+f1()
+100
+update t1 set col2=0 where col1=1;
+select * from t1;
+col1 col2
+1 100
+rollback;
+rollback;
+drop table t1;
+drop function f1;
diff --git a/mysql-test/r/innodb_timeout_rollback.result b/mysql-test/r/innodb_timeout_rollback.result
new file mode 100644
index 00000000000..b25a2bbd815
--- /dev/null
+++ b/mysql-test/r/innodb_timeout_rollback.result
@@ -0,0 +1,35 @@
+show variables like 'innodb_rollback_on_timeout';
+Variable_name Value
+innodb_rollback_on_timeout ON
+create table t1 (a int unsigned not null primary key) engine = innodb;
+insert into t1 values (1);
+commit;
+begin work;
+insert into t1 values (2);
+select * from t1;
+a
+1
+2
+begin work;
+insert into t1 values (5);
+select * from t1;
+a
+1
+5
+insert into t1 values (2);
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+select * from t1;
+a
+1
+commit;
+select * from t1;
+a
+1
+2
+commit;
+select * from t1;
+a
+1
+2
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/innodb_unsafe_binlog.result b/mysql-test/r/innodb_unsafe_binlog.result
new file mode 100644
index 00000000000..4a4f0e0fae5
--- /dev/null
+++ b/mysql-test/r/innodb_unsafe_binlog.result
@@ -0,0 +1,48 @@
+drop table if exists t1,t2;
+create table t1 (id int not null, f_id int not null, f int not null,
+primary key(f_id, id)) engine=innodb;
+create table t2 (id int not null,s_id int not null,s varchar(200),
+primary key(id)) engine=innodb;
+INSERT INTO t1 VALUES (8, 1, 3);
+INSERT INTO t1 VALUES (1, 2, 1);
+INSERT INTO t2 VALUES (1, 0, '');
+INSERT INTO t2 VALUES (8, 1, '');
+commit;
+DELETE ml.* FROM t1 AS ml LEFT JOIN t2 AS mm ON (mm.id=ml.id)
+WHERE mm.id IS NULL;
+select ml.* from t1 as ml left join t2 as mm on (mm.id=ml.id)
+where mm.id is null lock in share mode;
+id f_id f
+drop table t1,t2;
+create table t1 (id int not null, f_id int not null, f int not null,
+primary key(id),key(f_id)) engine=innodb;
+create table t2 (id int not null,s_id int not null,s varchar(200),
+primary key(id),key(s_id)) engine=innodb;
+INSERT INTO t1 VALUES (8, 1, 3);
+INSERT INTO t1 VALUES (1, 2, 1);
+INSERT INTO t2 VALUES (1, 0, '');
+INSERT INTO t2 VALUES (8, 1, '');
+commit;
+delete ml.* from t1 as ml left join t2 as mm on (mm.s_id=ml.f_id) where mm.s is null;
+select ml.* from t1 as ml left join t2 as mm on (mm.s_id=ml.f_id) where mm.s is null lock in share mode;
+id f_id f
+drop table t1,t2;
+create table t1(a int not null, b int, primary key(a)) engine=innodb;
+insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2);
+commit;
+set autocommit = 0;
+select * from t1 lock in share mode;
+a b
+1 1
+2 2
+3 1
+4 2
+5 1
+6 2
+update t1 set b = 5 where b = 1;
+set autocommit = 0;
+select * from t1 where a = 2 and b = 2 for update;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+commit;
+commit;
+drop table t1;
diff --git a/mysql-test/r/insert.result b/mysql-test/r/insert.result
index 71b10699fa9..8a0a3ba848c 100644
--- a/mysql-test/r/insert.result
+++ b/mysql-test/r/insert.result
@@ -1,4 +1,4 @@
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3;
create table t1 (a int not null);
insert into t1 values (1);
insert into t1 values (a+2);
@@ -63,7 +63,7 @@ insert into t1 values(NULL);
ERROR 23000: Column 'id' cannot be null
insert into t1 values (1), (NULL), (2);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'id' at row 2
+Warning 1048 Column 'id' cannot be null
select * from t1;
id
1
@@ -157,20 +157,20 @@ f_float_3_1_u 0.0
set @value= "1e+1111111111a";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
Warnings:
-Warning 1265 Data truncated for column 'f_double' at row 1
-Warning 1265 Data truncated for column 'f_float' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float' at row 1
-Warning 1265 Data truncated for column 'f_double_7_2' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_7_2' at row 1
-Warning 1265 Data truncated for column 'f_float_4_3' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_4_3' at row 1
-Warning 1265 Data truncated for column 'f_double_u' at row 1
-Warning 1265 Data truncated for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_7_2' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_7_2' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_4_3' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_4_3' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
select * from t1 where number =last_insert_id();
number 4
original_value 1e+1111111111a
@@ -185,21 +185,21 @@ f_float_3_1_u 99.9
set @value= "-1e+1111111111a";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
Warnings:
-Warning 1265 Data truncated for column 'f_double' at row 1
-Warning 1265 Data truncated for column 'f_float' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float' at row 1
-Warning 1265 Data truncated for column 'f_double_7_2' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_7_2' at row 1
-Warning 1265 Data truncated for column 'f_float_4_3' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_4_3' at row 1
-Warning 1265 Data truncated for column 'f_double_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_u' at row 1
-Warning 1265 Data truncated for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1265 Data truncated for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1265 Data truncated for column 'f_float_3_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_7_2' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_7_2' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_4_3' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_4_3' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
select * from t1 where number =last_insert_id();
number 5
original_value -1e+1111111111a
@@ -212,57 +212,20 @@ f_float_u 0
f_double_15_1_u 0.0
f_float_3_1_u 0.0
set @value= 1e+1111111111;
-insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
-Warnings:
-Warning 1264 Data truncated; out of range for column 'f_float' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_7_2' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_4_3' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
-select * from t1 where number =last_insert_id();
-number 6
-original_value 1.7976931348623e+308
-f_double 1.79769313486232e+308
-f_float 3.40282e+38
-f_double_7_2 99999.99
-f_float_4_3 9.999
-f_double_u 1.79769313486232e+308
-f_float_u 3.40282e+38
-f_double_15_1_u 99999999999999.9
-f_float_3_1_u 99.9
+ERROR 22007: Illegal double '1e+1111111111' value found during parsing
set @value= -1e+1111111111;
-insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
-Warnings:
-Warning 1264 Data truncated; out of range for column 'f_float' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_7_2' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_4_3' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
-select * from t1 where number =last_insert_id();
-number 7
-original_value -1.7976931348623e+308
-f_double -1.79769313486232e+308
-f_float -3.40282e+38
-f_double_7_2 -99999.99
-f_float_4_3 -9.999
-f_double_u 0
-f_float_u 0
-f_double_15_1_u 0.0
-f_float_3_1_u 0.0
+ERROR 22007: Illegal double '1e+1111111111' value found during parsing
set @value= 1e+111;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
Warnings:
-Warning 1264 Data truncated; out of range for column 'f_float' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_7_2' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_4_3' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_7_2' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_4_3' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
select * from t1 where number =last_insert_id();
-number 8
+number 6
original_value 1e+111
f_double 1e+111
f_float 3.40282e+38
@@ -275,15 +238,15 @@ f_float_3_1_u 99.9
set @value= -1e+111;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
Warnings:
-Warning 1264 Data truncated; out of range for column 'f_float' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_7_2' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_4_3' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_7_2' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_4_3' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
select * from t1 where number =last_insert_id();
-number 9
+number 7
original_value -1e+111
f_double -1e+111
f_float -3.40282e+38
@@ -296,7 +259,7 @@ f_float_3_1_u 0.0
set @value= 1;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
select * from t1 where number =last_insert_id();
-number 10
+number 8
original_value 1
f_double 1
f_float 1
@@ -309,12 +272,12 @@ f_float_3_1_u 1.0
set @value= -1;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
Warnings:
-Warning 1264 Data truncated; out of range for column 'f_double_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_double_15_1_u' at row 1
-Warning 1264 Data truncated; out of range for column 'f_float_3_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_double_15_1_u' at row 1
+Warning 1264 Out of range value adjusted for column 'f_float_3_1_u' at row 1
select * from t1 where number =last_insert_id();
-number 11
+number 9
original_value -1
f_double -1
f_float -1
@@ -325,3 +288,177 @@ f_float_u 0
f_double_15_1_u 0.0
f_float_3_1_u 0.0
drop table t1;
+create table t1(id1 int not null auto_increment primary key, t char(12));
+create table t2(id2 int not null, t char(12));
+create table t3(id3 int not null, t char(12), index(id3));
+select count(*) from t2;
+count(*)
+500
+insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
+select count(*) from t2;
+count(*)
+25500
+drop table t1,t2,t3;
+create table t1 (id int primary key, data int);
+insert into t1 values (1, 1), (2, 2), (3, 3);
+select row_count();
+row_count()
+3
+insert ignore into t1 values (1, 1);
+select row_count();
+row_count()
+0
+replace into t1 values (1, 11);
+select row_count();
+row_count()
+2
+replace into t1 values (4, 4);
+select row_count();
+row_count()
+1
+insert into t1 values (2, 2) on duplicate key update data= data + 10;
+select row_count();
+row_count()
+2
+insert into t1 values (5, 5) on duplicate key update data= data + 10;
+select row_count();
+row_count()
+1
+drop table t1;
+create table t1 (f1 int unique, f2 int);
+create table t2 (f3 int, f4 int);
+create view v1 as select * from t1, t2 where f1= f3;
+insert into t1 values (1,11), (2,22);
+insert into t2 values (1,12), (2,24);
+insert into v1 (f1) values (3) on duplicate key update f3= f3 + 10;
+ERROR HY000: Can not modify more than one base table through a join view 'test.v1'
+insert into v1 (f1) values (3) on duplicate key update f1= f3 + 10;
+select * from t1;
+f1 f2
+1 11
+2 22
+3 NULL
+insert into v1 (f1) values (3) on duplicate key update f1= f3 + 10;
+select * from t1;
+f1 f2
+1 11
+2 22
+12 NULL
+drop view v1;
+drop table t1,t2;
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+CREATE TABLE t1 (i INT);
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+INSERT INTO t1 VALUES (1);
+RETURN 1;
+END |
+CREATE FUNCTION f2() RETURNS INT
+BEGIN
+INSERT DELAYED INTO t1 VALUES (2);
+RETURN 1;
+END |
+SELECT f1();
+f1()
+1
+SELECT f2();
+f2()
+1
+INSERT INTO t1 VALUES (3);
+INSERT DELAYED INTO t1 VALUES (4);
+INSERT INTO t1 VALUES (f1());
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+INSERT DELAYED INTO t1 VALUES (f1());
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+INSERT INTO t1 VALUES (f2());
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+INSERT DELAYED INTO t1 VALUES (f2());
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+INSERT INTO t1 VALUES (NEW.i);
+INSERT INTO t1 VALUES (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+INSERT DELAYED INTO t1 VALUES (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+SELECT * FROM t1;
+i
+1
+2
+3
+4
+DROP FUNCTION f2;
+DROP FUNCTION f1;
+DROP TABLE t1;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (i INT);
+CREATE TABLE t2 (i INT);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+INSERT DELAYED INTO t2 VALUES (NEW.i);
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+INSERT DELAYED INTO t2 VALUES (NEW.i);
+CREATE TRIGGER t1_bd BEFORE DELETE ON t1 FOR EACH ROW
+INSERT DELAYED INTO t2 VALUES (OLD.i);
+INSERT INTO t1 VALUES (1);
+INSERT DELAYED INTO t1 VALUES (2);
+SELECT * FROM t1;
+i
+1
+2
+UPDATE t1 SET i = 3 WHERE i = 1;
+SELECT * FROM t1;
+i
+3
+2
+DELETE FROM t1 WHERE i = 3;
+SELECT * FROM t1;
+i
+2
+SELECT * FROM t2;
+i
+1
+2
+3
+3
+DROP TABLE t1, t2;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (i INT);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+SET @a= NEW.i;
+SET @a= 0;
+INSERT DELAYED INTO t1 VALUES (1);
+SELECT @a;
+@a
+1
+INSERT DELAYED INTO t1 VALUES (2);
+SELECT @a;
+@a
+2
+DROP TABLE t1;
+CREATE TABLE t1 (i INT);
+CREATE TABLE t2 (i INT);
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+INSERT INTO t2 VALUES (NEW.i);
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+INSERT DELAYED INTO t2 VALUES (NEW.i);
+CREATE TRIGGER t1_ad AFTER DELETE ON t1 FOR EACH ROW
+INSERT DELAYED INTO t2 VALUES (OLD.i);
+INSERT DELAYED INTO t1 VALUES (1);
+SELECT * FROM t1;
+i
+1
+UPDATE t1 SET i = 2 WHERE i = 1;
+SELECT * FROM t1;
+i
+2
+DELETE FROM t1 WHERE i = 2;
+SELECT * FROM t1;
+i
+SELECT * FROM t2;
+i
+1
+2
+2
+DROP TABLE t1, t2;
+End of 5.0 tests.
diff --git a/mysql-test/r/insert_notembedded.result b/mysql-test/r/insert_notembedded.result
new file mode 100644
index 00000000000..816060b7ec9
--- /dev/null
+++ b/mysql-test/r/insert_notembedded.result
@@ -0,0 +1,107 @@
+drop table if exists t1;
+create table t1 (n int);
+create view v1 as select * from t1;
+insert delayed into v1 values (1);
+ERROR HY000: 'test.v1' is not BASE TABLE
+drop table t1;
+drop view v1;
+CREATE DATABASE meow;
+CREATE TABLE table_target ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE TABLE table_target2 ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE TABLE table_target3 ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE VIEW view_target2 AS SELECT mexs_id,messzeit FROM table_target2;
+CREATE SQL SECURITY INVOKER VIEW view_target3 AS SELECT mexs_id,messzeit FROM table_target3;
+CREATE TABLE table_stations ( mexs_id VARCHAR(8), icao VARCHAR(4), country CHAR(2), PRIMARY KEY (mexs_id), UNIQUE KEY icao (icao), KEY country (country), CONSTRAINT stations_ibfk_8 FOREIGN KEY (country) REFERENCES countries (country) ON UPDATE CASCADE);
+INSERT INTO table_stations VALUES ('87654321','XXXX','YY');
+CREATE TABLE table_countries ( country CHAR(2), iso_short_en VARCHAR(64), PRIMARY KEY (country));
+INSERT INTO table_countries VALUES ('YY','Entenhausen');
+CREATE ALGORITHM=MERGE SQL SECURITY INVOKER VIEW view_stations AS select table_stations.mexs_id AS mexs_id, table_stations.icao AS icao, table_stations.country AS landescode from (table_stations join table_countries on((table_stations.country = table_countries.country)));
+CREATE TABLE table_source ( id varchar(4), datetime TIMESTAMP, PRIMARY KEY (id));
+INSERT INTO table_source VALUES ('XXXX','2006-07-12 07:50:00');
+GRANT SELECT ON table_source TO user20989@localhost;
+GRANT SELECT ON table_countries TO user20989@localhost;
+GRANT SELECT ON table_stations TO user20989@localhost;
+GRANT SELECT ON view_stations TO user20989@localhost;
+GRANT SELECT ON table_target TO user20989@localhost;
+GRANT SELECT ON table_target2 TO user20989@localhost;
+GRANT INSERT,DELETE,SELECT ON view_target3 TO user20989@localhost;
+REPLACE INTO table_target
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN table_target AS old
+USING (mexs_id);
+ERROR 42000: INSERT,DELETE command denied to user 'user20989'@'localhost' for table 'table_target'
+REPLACE INTO view_target2
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target2 AS old
+USING (mexs_id);
+ERROR 42000: INSERT,DELETE command denied to user 'user20989'@'localhost' for table 'view_target2'
+REPLACE INTO view_target3
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target3 AS old
+USING (mexs_id);
+ERROR HY000: View 'meow.view_target3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+GRANT INSERT,DELETE ON table_target TO user20989@localhost;
+GRANT INSERT,DELETE,SELECT ON view_target2 TO user20989@localhost;
+GRANT INSERT,DELETE,SELECT ON table_target3 TO user20989@localhost;
+REPLACE INTO table_target
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN table_target AS old
+USING (mexs_id);
+REPLACE INTO table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00');
+ERROR 42000: INSERT,DELETE command denied to user 'user20989'@'localhost' for table 'table_target2'
+REPLACE INTO view_target2 VALUES ('12X45Y78','2006-07-12 07:50:00');
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target2 AS old
+USING (mexs_id);
+mexs_id messzeit
+87654321 2006-07-12 07:50:00
+REPLACE INTO view_target2
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target2 AS old
+USING (mexs_id);
+REPLACE INTO view_target3
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target3 AS old
+USING (mexs_id);
+SELECT * FROM table_target;
+mexs_id messzeit
+87654321 2006-07-12 07:50:00
+SELECT * FROM view_target2;
+mexs_id messzeit
+12X45Y78 2006-07-12 07:50:00
+87654321 2006-07-12 07:50:00
+SELECT * FROM view_target3;
+mexs_id messzeit
+87654321 2006-07-12 07:50:00
+DROP VIEW view_stations;
+DROP TABLE table_source;
+DROP TABLE table_countries;
+DROP TABLE table_stations;
+DROP TABLE table_target;
+DROP TABLE table_target2;
+DROP TABLE table_target3;
+DROP VIEW view_target2;
+DROP VIEW view_target3;
+DROP USER user20989@localhost;
+DROP DATABASE meow;
diff --git a/mysql-test/r/insert_select-binlog.result b/mysql-test/r/insert_select-binlog.result
index bca28059787..76f460b1de2 100644
--- a/mysql-test/r/insert_select-binlog.result
+++ b/mysql-test/r/insert_select-binlog.result
@@ -6,9 +6,9 @@ reset master;
insert into t1 select * from t2;
ERROR 23000: Duplicate entry '2' for key 1
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; insert into t1 select * from t2
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
+master-bin.000001 98 Query 1 192 use `test`; insert into t1 select * from t2
select * from t1;
a
1
@@ -20,6 +20,6 @@ reset master;
create table t2(unique(a)) select a from t1;
ERROR 23000: Duplicate entry '1' for key 1
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
drop table t1;
diff --git a/mysql-test/r/insert_select.result b/mysql-test/r/insert_select.result
index 601eb2aa0bc..7a37f49125a 100644
--- a/mysql-test/r/insert_select.result
+++ b/mysql-test/r/insert_select.result
@@ -606,8 +606,8 @@ NULL 2 100
create table t2(No int not null, Field int not null, Count int not null);
insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'No' at row 1
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'No' at row 2
+Warning 1048 Column 'No' cannot be null
+Warning 1048 Column 'No' cannot be null
select * from t2;
No Field Count
0 1 100
@@ -664,9 +664,9 @@ insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= a +
insert into t1 select t2.a from t2 on duplicate key update a= a + t2.b;
ERROR 23000: Column 'a' in field list is ambiguous
insert into t1 select t2.a from t2 on duplicate key update t2.a= a + t2.b;
-ERROR 42S02: Unknown table 't2' in field list
+ERROR 42S22: Unknown column 't2.a' in 'field list'
insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= t1.a + t2.b;
-ERROR 42S02: Unknown table 't2' in field list
+ERROR 42S22: Unknown column 't2.b' in 'field list'
drop table t1,t2,t3;
create table t1(f1 varchar(5) key);
insert into t1(f1) select if(max(f1) is null, '2000',max(f1)+1) from t1;
@@ -684,11 +684,20 @@ insert into t1(x,y) select x,z from t2 on duplicate key update x=values(x);
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z);
ERROR 42S22: Unknown column 'z' in 'field list'
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x);
-ERROR 42S02: Unknown table 't2' in field list
+ERROR 42S22: Unknown column 't2.x' in 'field list'
drop table t1,t2;
CREATE TABLE t1 (a int PRIMARY KEY);
INSERT INTO t1 values (1), (2);
+flush status;
INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1;
+show status like 'Handler_read%';
+Variable_name Value
+Handler_read_first 1
+Handler_read_key 0
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 1
DROP TABLE t1;
CREATE TABLE t1 (
f1 int(10) unsigned NOT NULL auto_increment PRIMARY KEY,
@@ -716,3 +725,120 @@ SELECT * FROM t1;
f1 f2
1
DROP TABLE t1, t2;
+CREATE TABLE t1 (x int, y int);
+CREATE TABLE t2 (z int, y int);
+CREATE TABLE t3 (a int, b int);
+INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
+DROP TABLE IF EXISTS t1,t2,t3;
+CREATE DATABASE bug21774_1;
+CREATE DATABASE bug21774_2;
+CREATE TABLE bug21774_1.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
+CREATE TABLE bug21774_2.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
+CREATE TABLE bug21774_1.t2(id VARCHAR(10) NOT NULL,label VARCHAR(255));
+INSERT INTO bug21774_2.t1 SELECT t1.* FROM bug21774_1.t1;
+use bug21774_1;
+INSERT INTO bug21774_2.t1 SELECT t1.* FROM t1;
+DROP DATABASE bug21774_1;
+DROP DATABASE bug21774_2;
+USE test;
+create table t1(f1 int primary key, f2 int);
+insert into t1 values (1,1);
+affected rows: 1
+insert into t1 values (1,1) on duplicate key update f2=1;
+affected rows: 0
+insert into t1 values (1,1) on duplicate key update f2=2;
+affected rows: 2
+select * from t1;
+f1 f2
+1 2
+drop table t1;
+create table t1(f1 int primary key auto_increment, f2 int unique);
+insert into t1(f2) values(1);
+select @@identity;
+@@identity
+1
+insert ignore t1(f2) values(1);
+select @@identity;
+@@identity
+0
+insert ignore t1(f2) select 1;
+select @@identity;
+@@identity
+0
+drop table t1;
+CREATE TABLE t1 (f1 INT, f2 INT );
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT);
+INSERT INTO t1 VALUES (1,1),(2,2),(10,10);
+INSERT INTO t2 (f1, f2) SELECT f1, f2 FROM t1;
+INSERT INTO t2 (f1, f2)
+SELECT f1, f1 FROM t2 src WHERE f1 < 2
+ON DUPLICATE KEY UPDATE f1 = 100 + src.f1;
+SELECT * FROM t2;
+f1 f2
+101 1
+2 2
+10 10
+DROP TABLE t1, t2;
+SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+CREATE TABLE t1 (c VARCHAR(30), INDEX ix_c (c(10)));
+CREATE TABLE t2 (d VARCHAR(10));
+INSERT INTO t1 (c) VALUES ('7_chars'), ('13_characters');
+EXPLAIN
+SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters') FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+2 SUBQUERY t1 ref ix_c ix_c 13 const 1 Using where
+SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters') FROM t1;
+(SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters')
+13
+13
+INSERT INTO t2 (d)
+SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters') FROM t1;
+INSERT INTO t2 (d)
+SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='7_chars') FROM t1;
+INSERT INTO t2 (d)
+SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c IN (SELECT t1.c FROM t1))
+FROM t1;
+SELECT * FROM t2;
+d
+13
+13
+7
+7
+20
+20
+DROP TABLE t1,t2;
+CREATE TABLE t1 (
+id INT AUTO_INCREMENT PRIMARY KEY,
+prev_id INT,
+join_id INT DEFAULT 0);
+INSERT INTO t1 (prev_id) VALUES (NULL), (1), (2);
+SELECT * FROM t1;
+id prev_id join_id
+1 NULL 0
+2 1 0
+3 2 0
+CREATE TABLE t2 (join_id INT);
+INSERT INTO t2 (join_id) VALUES (0);
+INSERT INTO t1 (prev_id) SELECT id
+FROM t2 LEFT JOIN t1 ON t1.join_id = t2.join_id
+ORDER BY id DESC LIMIT 1;
+SELECT * FROM t1;
+id prev_id join_id
+1 NULL 0
+2 1 0
+3 2 0
+4 3 0
+DROP TABLE t1,t2;
+#
+# Bug#30384: Having SQL_BUFFER_RESULT option in the
+# CREATE .. KEY(..) .. SELECT led to creating corrupted index.
+#
+create table t1(f1 int);
+insert into t1 values(1),(2),(3);
+create table t2 (key(f1)) engine=myisam select sql_buffer_result f1 from t1;
+check table t2 extended;
+Table Op Msg_type Msg_text
+test.t2 check status OK
+drop table t1,t2;
+##################################################################
diff --git a/mysql-test/r/insert_update.result b/mysql-test/r/insert_update.result
index c41aab29853..20cde86101e 100644
--- a/mysql-test/r/insert_update.result
+++ b/mysql-test/r/insert_update.result
@@ -1,4 +1,4 @@
-DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
INSERT t1 VALUES (1,2,10), (3,4,20);
INSERT t1 VALUES (5,6,30) ON DUPLICATE KEY UPDATE c=c+100;
@@ -60,12 +60,12 @@ explain extended SELECT *, VALUES(a) FROM t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
Warnings:
-Note 1003 select test.t1.a AS `a`,test.t1.b AS `b`,test.t1.c AS `c`,values(test.t1.a) AS `VALUES(a)` from test.t1
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,values(`test`.`t1`.`a`) AS `VALUES(a)` from `test`.`t1`
explain extended select * from t1 where values(a);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
Warnings:
-Note 1003 select test.t1.a AS `a`,test.t1.b AS `b`,test.t1.c AS `c` from test.t1 where values(test.t1.a)
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where values(`test`.`t1`.`a`)
DROP TABLE t1;
create table t1(a int primary key, b int);
insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5);
@@ -219,3 +219,191 @@ SELECT * FROM t1;
a b
45 2
DROP TABLE t1;
+CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
+INSERT INTO t1 SELECT 1, j;
+ERROR 42S22: Unknown column 'j' in 'field list'
+DROP TABLE t1;
+CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
+CREATE TABLE t2 (a INT, b INT);
+CREATE TABLE t3 (a INT, c INT);
+INSERT INTO t1 SELECT 1, a FROM t2 NATURAL JOIN t3
+ON DUPLICATE KEY UPDATE j= a;
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t1 VALUES (1, 1);
+INSERT INTO t2 VALUES (1), (3);
+INSERT INTO t1 SELECT 1, COUNT(*) FROM t2 ON DUPLICATE KEY UPDATE j= a;
+ERROR 42S22: Unknown column 'a' in 'field list'
+DROP TABLE t1,t2;
+SET SQL_MODE = 'TRADITIONAL';
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL);
+INSERT INTO t1 (a) VALUES (1);
+ERROR HY000: Field 'b' doesn't have a default value
+INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE a = b;
+ERROR HY000: Field 'b' doesn't have a default value
+INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = b;
+ERROR HY000: Field 'b' doesn't have a default value
+SELECT * FROM t1;
+a b
+DROP TABLE t1;
+CREATE TABLE t1 (f1 INT AUTO_INCREMENT PRIMARY KEY,
+f2 VARCHAR(5) NOT NULL UNIQUE);
+INSERT t1 (f2) VALUES ('test') ON DUPLICATE KEY UPDATE f1 = LAST_INSERT_ID(f1);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+INSERT t1 (f2) VALUES ('test') ON DUPLICATE KEY UPDATE f1 = LAST_INSERT_ID(f1);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+DROP TABLE t1;
+SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
+CREATE TABLE `t1` (
+`id` int(11) PRIMARY KEY auto_increment,
+`f1` varchar(10) NOT NULL UNIQUE
+);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+SELECT * FROM t1;
+id f1
+1 test1
+INSERT IGNORE INTO t1 (f1) VALUES ("test2")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT * FROM t1;
+id f1
+1 test1
+2 test2
+INSERT IGNORE INTO t1 (f1) VALUES ("test2")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2
+SELECT * FROM t1;
+id f1
+1 test1
+2 test2
+INSERT IGNORE INTO t1 (f1) VALUES ("test3")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3
+SELECT * FROM t1;
+id f1
+1 test1
+2 test2
+3 test3
+DROP TABLE t1;
+CREATE TABLE `t1` (
+`id` int(11) PRIMARY KEY auto_increment,
+`f1` varchar(10) NOT NULL UNIQUE
+);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+SELECT * FROM t1;
+id f1
+1 test1
+INSERT IGNORE INTO t1 (f1) VALUES ("test1"),("test4")
+ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+SELECT * FROM t1;
+id f1
+1 test1
+2 test4
+DROP TABLE t1;
+CREATE TABLE `t1` (
+`id` int(11) PRIMARY KEY auto_increment,
+`f1` varchar(10) NOT NULL UNIQUE,
+tim1 timestamp default '2003-01-01 00:00:00' on update current_timestamp
+);
+INSERT INTO t1 (f1) VALUES ("test1");
+SELECT id, f1 FROM t1;
+id f1
+1 test1
+REPLACE INTO t1 VALUES (0,"test1",null);
+SELECT id, f1 FROM t1;
+id f1
+0 test1
+DROP TABLE t1;
+SET SQL_MODE='';
+CREATE TABLE t1 (
+id INT AUTO_INCREMENT PRIMARY KEY,
+c1 CHAR(1) UNIQUE KEY,
+cnt INT DEFAULT 1
+);
+INSERT INTO t1 (c1) VALUES ('A'), ('B'), ('C');
+SELECT * FROM t1;
+id c1 cnt
+1 A 1
+2 B 1
+3 C 1
+INSERT INTO t1 (c1) VALUES ('A'), ('X'), ('Y'), ('Z')
+ON DUPLICATE KEY UPDATE cnt=cnt+1;
+SELECT * FROM t1;
+id c1 cnt
+1 A 2
+2 B 1
+3 C 1
+4 X 1
+5 Y 1
+6 Z 1
+DROP TABLE t1;
+CREATE TABLE t1 (
+id INT AUTO_INCREMENT PRIMARY KEY,
+c1 INT NOT NULL,
+cnt INT DEFAULT 1
+);
+INSERT INTO t1 (id,c1) VALUES (1,10);
+SELECT * FROM t1;
+id c1 cnt
+1 10 1
+CREATE TABLE t2 (id INT, c1 INT);
+INSERT INTO t2 VALUES (1,NULL), (2,2);
+INSERT INTO t1 (id,c1) SELECT 1,NULL
+ON DUPLICATE KEY UPDATE c1=NULL;
+ERROR 23000: Column 'c1' cannot be null
+SELECT * FROM t1;
+id c1 cnt
+1 10 1
+INSERT IGNORE INTO t1 (id,c1) SELECT 1,NULL
+ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
+Warnings:
+Warning 1048 Column 'c1' cannot be null
+Error 1048 Column 'c1' cannot be null
+SELECT * FROM t1;
+id c1 cnt
+1 0 2
+INSERT IGNORE INTO t1 (id,c1) SELECT * FROM t2
+ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
+Warnings:
+Warning 1048 Column 'c1' cannot be null
+Error 1048 Column 'c1' cannot be null
+SELECT * FROM t1;
+id c1 cnt
+1 0 3
+2 2 1
+DROP TABLE t1;
+create table t1(f1 int primary key,
+f2 timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP);
+insert into t1(f1) values(1);
+select @stamp1:=f2 from t1;
+@stamp1:=f2
+#
+insert into t1(f1) values(1) on duplicate key update f1=1;
+select @stamp2:=f2 from t1;
+@stamp2:=f2
+#
+select if( @stamp1 = @stamp2, "correct", "wrong");
+if( @stamp1 = @stamp2, "correct", "wrong")
+correct
+drop table t1;
diff --git a/mysql-test/r/is_debug_build.require b/mysql-test/r/is_debug_build.require
new file mode 100644
index 00000000000..4d77bcdc1ed
--- /dev/null
+++ b/mysql-test/r/is_debug_build.require
@@ -0,0 +1,2 @@
+instr(version(), "debug") > 0
+1
diff --git a/mysql-test/r/isam.result b/mysql-test/r/isam.result
index 52eb2d73ed5..cb308a1c71d 100644
--- a/mysql-test/r/isam.result
+++ b/mysql-test/r/isam.result
@@ -65,14 +65,14 @@ test.t2 check error Table 't2' was not locked with LOCK TABLES
test.t1 check status OK
show columns from t1;
Field Type Null Key Default Extra
-a int(11) PRI 0
-b int(11) MUL 0
-c int(11) 0
+a int(11) PRI
+b int(11) MUL
+c int(11)
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment
-a int(11) NULL PRI 0 select,insert,update,references
-b int(11) NULL MUL 0 select,insert,update,references
-c int(11) NULL 0 select,insert,update,references
+a int(11) NULL PRI select,insert,update,references
+b int(11) NULL MUL select,insert,update,references
+c int(11) NULL select,insert,update,references
show index from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 a A 4 NULL NULL BTREE
diff --git a/mysql-test/r/join.result b/mysql-test/r/join.result
index 9ac8825fcb8..80dd055a170 100644
--- a/mysql-test/r/join.result
+++ b/mysql-test/r/join.result
@@ -10,21 +10,21 @@ SELECT * FROM t1 INNER JOIN t2;
S1 S1
1 2
SELECT * from t1 JOIN t2 USING (S1);
-S1 S1
+S1
SELECT * FROM t1 INNER JOIN t2 USING (S1);
-S1 S1
+S1
SELECT * from t1 CROSS JOIN t2;
S1 S1
1 2
SELECT * from t1 LEFT JOIN t2 USING(S1);
-S1 S1
-1 NULL
+S1
+1
SELECT * from t1 LEFT JOIN t2 ON(t2.S1=2);
S1 S1
1 2
SELECT * from t1 RIGHT JOIN t2 USING(S1);
-S1 S1
-NULL 2
+S1
+2
SELECT * from t1 RIGHT JOIN t2 ON(t1.S1=1);
S1 S1
1 2
@@ -127,6 +127,12 @@ a
2
select t1.a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a) left join t1 as t32 using (a) left join t1 as t33 using (a) left join t1 as t34 using (a) left join t1 as t35 using (a) left join t1 as t36 using (a) left join t1 as t37 using (a) left join t1 as t38 using (a) left join t1 as t39 using (a) left join t1 as t40 using (a) left join t1 as t41 using (a) left join t1 as t42 using (a) left join t1 as t43 using (a) left join t1 as t44 using (a) left join t1 as t45 using (a) left join t1 as t46 using (a) left join t1 as t47 using (a) left join t1 as t48 using (a) left join t1 as t49 using (a) left join t1 as t50 using (a) left join t1 as t51 using (a) left join t1 as t52 using (a) left join t1 as t53 using (a) left join t1 as t54 using (a) left join t1 as t55 using (a) left join t1 as t56 using (a) left join t1 as t57 using (a) left join t1 as t58 using (a) left join t1 as t59 using (a) left join t1 as t60 using (a) left join t1 as t61 using (a) left join t1 as t62 using (a) left join t1 as t63 using (a) left join t1 as t64 using (a) left join t1 as t65 using (a);
ERROR HY000: Too many tables; MySQL can only use XX tables in a join
+select a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a);
+a
+1
+2
+select a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a) left join t1 as t32 using (a) left join t1 as t33 using (a) left join t1 as t34 using (a) left join t1 as t35 using (a) left join t1 as t36 using (a) left join t1 as t37 using (a) left join t1 as t38 using (a) left join t1 as t39 using (a) left join t1 as t40 using (a) left join t1 as t41 using (a) left join t1 as t42 using (a) left join t1 as t43 using (a) left join t1 as t44 using (a) left join t1 as t45 using (a) left join t1 as t46 using (a) left join t1 as t47 using (a) left join t1 as t48 using (a) left join t1 as t49 using (a) left join t1 as t50 using (a) left join t1 as t51 using (a) left join t1 as t52 using (a) left join t1 as t53 using (a) left join t1 as t54 using (a) left join t1 as t55 using (a) left join t1 as t56 using (a) left join t1 as t57 using (a) left join t1 as t58 using (a) left join t1 as t59 using (a) left join t1 as t60 using (a) left join t1 as t61 using (a) left join t1 as t62 using (a) left join t1 as t63 using (a) left join t1 as t64 using (a) left join t1 as t65 using (a);
+ERROR HY000: Too many tables; MySQL can only use XX tables in a join
drop table t1;
CREATE TABLE t1 (
a int(11) NOT NULL,
@@ -146,9 +152,12 @@ CREATE TABLE t1 (d DATE NOT NULL);
CREATE TABLE t2 (d DATE NOT NULL);
INSERT INTO t1 (d) VALUES ('2001-08-01'),('0000-00-00');
SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE t2.d IS NULL;
-d d
-2001-08-01 NULL
-0000-00-00 NULL
+d
+2001-08-01
+0000-00-00
+SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE d IS NULL;
+d
+0000-00-00
SELECT * from t1 WHERE t1.d IS NULL;
d
0000-00-00
@@ -271,6 +280,12 @@ cust 20
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE lr.siteid = 'rivercats' AND emp.emp_id = 'psmith';
rate_code base_rate
cust 20
+SELECT rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE emp.emp_id = 'psmith' AND siteid = 'rivercats';
+rate_code base_rate
+cust 20
+SELECT rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE siteid = 'rivercats' AND emp.emp_id = 'psmith';
+rate_code base_rate
+cust 20
drop table t1,t2;
CREATE TABLE t1 (ID INTEGER NOT NULL PRIMARY KEY, Value1 VARCHAR(255));
CREATE TABLE t2 (ID INTEGER NOT NULL PRIMARY KEY, Value2 VARCHAR(255));
@@ -296,43 +311,43 @@ insert into t1 values(1),(2);
insert into t2 values(2),(3);
insert into t3 values (2),(4);
select * from t1 natural left join t2;
-i i
-1 NULL
-2 2
+i
+1
+2
select * from t1 left join t2 on (t1.i=t2.i);
i i
1 NULL
2 2
select * from t1 natural left join t2 natural left join t3;
-i i i
-1 NULL NULL
-2 2 2
+i
+1
+2
select * from t1 left join t2 on (t1.i=t2.i) left join t3 on (t2.i=t3.i);
i i i
1 NULL NULL
2 2 2
select * from t3 natural right join t2;
-i i
-2 2
-NULL 3
+i
+2
+3
select * from t3 right join t2 on (t3.i=t2.i);
i i
2 2
NULL 3
select * from t3 natural right join t2 natural right join t1;
-i i i
-NULL NULL 1
-2 2 2
+i
+1
+2
select * from t3 right join t2 on (t3.i=t2.i) right join t1 on (t2.i=t1.i);
i i i
NULL NULL 1
2 2 2
select * from t1,t2 natural left join t3 order by t1.i,t2.i,t3.i;
-i i i
-1 2 2
-1 3 NULL
-2 2 2
-2 3 NULL
+i i
+1 2
+1 3
+2 2
+2 3
select * from t1,t2 left join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
i i i
1 2 2
@@ -352,11 +367,11 @@ i i i
2 2 2
2 3 NULL
select * from t1,t2 natural right join t3 order by t1.i,t2.i,t3.i;
-i i i
-1 NULL 4
-1 2 2
-2 NULL 4
-2 2 2
+i i
+1 4
+1 2
+2 4
+2 2
select * from t1,t2 right join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
i i i
1 NULL 4
@@ -426,3 +441,420 @@ e
0
0
DROP TABLE t1,t2;
+create table t1 (c int, b int);
+create table t2 (a int, b int);
+create table t3 (b int, c int);
+create table t4 (y int, c int);
+create table t5 (y int, z int);
+create table t6 (a int, c int);
+insert into t1 values (10,1);
+insert into t1 values (3 ,1);
+insert into t1 values (3 ,2);
+insert into t2 values (2, 1);
+insert into t3 values (1, 3);
+insert into t3 values (1,10);
+insert into t4 values (11,3);
+insert into t4 values (2, 3);
+insert into t5 values (11,4);
+insert into t6 values (2, 3);
+create algorithm=merge view v1a as
+select * from t1 natural join t2;
+create algorithm=merge view v1b(a,b,c) as
+select * from t1 natural join t2;
+create algorithm=merge view v1c as
+select b as a, c as b, a as c from t1 natural join t2;
+create algorithm=merge view v1d(b, a, c) as
+select a as c, c as b, b as a from t1 natural join t2;
+create algorithm=merge view v2a as
+select t1.c, t1.b, t2.a from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
+create algorithm=merge view v2b as
+select t1.c as b, t1.b as a, t2.a as c
+from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
+create algorithm=merge view v3a as
+select * from t1 natural join t2 natural join t3;
+create algorithm=merge view v3b as
+select * from t1 natural join (t2 natural join t3);
+create algorithm=merge view v4 as
+select * from v2a natural join v3a;
+select * from (t1 natural join t2) natural join (t3 natural join t4);
+b c a y
+1 3 2 11
+1 3 2 2
+select * from (t1 natural join t2) natural left join (t3 natural join t4);
+b c a y
+1 10 2 NULL
+1 3 2 11
+1 3 2 2
+select * from (t3 natural join t4) natural right join (t1 natural join t2);
+b c a y
+1 10 2 NULL
+1 3 2 11
+1 3 2 2
+select * from (t1 natural left join t2) natural left join (t3 natural left join t4);
+b c a y
+1 10 2 NULL
+1 3 2 11
+1 3 2 2
+2 3 NULL NULL
+select * from (t4 natural right join t3) natural right join (t2 natural right join t1);
+b c a y
+1 10 2 NULL
+1 3 2 11
+1 3 2 2
+2 3 NULL NULL
+select * from t1 natural join t2 natural join t3 natural join t4;
+c b a y
+3 1 2 11
+3 1 2 2
+select * from ((t1 natural join t2) natural join t3) natural join t4;
+c b a y
+3 1 2 11
+3 1 2 2
+select * from t1 natural join (t2 natural join (t3 natural join t4));
+c b a y
+3 1 2 11
+3 1 2 2
+select * from t5 natural right join (t4 natural right join ((t2 natural right join t1) natural right join t3));
+y c b a z
+11 3 1 2 4
+2 3 1 2 NULL
+NULL 10 1 2 NULL
+select * from (t1 natural join t2), (t3 natural join t4);
+b c a c b y
+1 10 2 3 1 11
+1 10 2 3 1 2
+1 3 2 3 1 11
+1 3 2 3 1 2
+select * from t5 natural join ((t1 natural join t2), (t3 natural join t4));
+y z b c a c b
+11 4 1 10 2 3 1
+11 4 1 3 2 3 1
+select * from ((t1 natural join t2), (t3 natural join t4)) natural join t5;
+y b c a c b z
+11 1 10 2 3 1 4
+11 1 3 2 3 1 4
+select * from t5 natural join ((t1 natural join t2) cross join (t3 natural join t4));
+y z b c a c b
+11 4 1 10 2 3 1
+11 4 1 3 2 3 1
+select * from ((t1 natural join t2) cross join (t3 natural join t4)) natural join t5;
+y b c a c b z
+11 1 10 2 3 1 4
+11 1 3 2 3 1 4
+select * from (t1 join t2 using (b)) join (t3 join t4 using (c)) using (c);
+c b a b y
+3 1 2 1 11
+3 1 2 1 2
+select * from (t1 join t2 using (b)) natural join (t3 join t4 using (c));
+b c a y
+1 3 2 11
+1 3 2 2
+select a,b,c from (t1 natural join t2) natural join (t3 natural join t4)
+where b + 1 = y or b + 10 = y group by b,c,a having min(b) < max(y) order by a;
+a b c
+2 1 3
+select * from (t1 natural join t2) natural left join (t3 natural join t4)
+where b + 1 = y or b + 10 = y group by b,c,a,y having min(b) < max(y) order by a, y;
+b c a y
+1 3 2 2
+1 3 2 11
+select * from (t3 natural join t4) natural right join (t1 natural join t2)
+where b + 1 = y or b + 10 = y group by b,c,a,y having min(b) < max(y) order by a, y;
+b c a y
+1 3 2 2
+1 3 2 11
+select * from t1 natural join t2 where t1.c > t2.a;
+b c a
+1 10 2
+1 3 2
+select * from t1 natural join t2 where t1.b > t2.b;
+b c a
+select * from t1 natural left join (t4 natural join t5) where t5.z is not NULL;
+c b y z
+3 1 11 4
+3 2 11 4
+select * from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
+c b a b y c
+3 1 2 1 2 3
+3 2 2 1 2 3
+select * from (t2 join t4 on b + 1 = y) join t1 on t1.c = t4.c;
+a b y c c b
+2 1 2 3 3 1
+2 1 2 3 3 2
+select * from t1 natural join (t2 join t4 on b + 1 = y);
+c b a y
+3 1 2 2
+select * from (t1 cross join t2) join (t3 cross join t4) on (a < y and t2.b < t3.c);
+c b a b b c y c
+10 1 2 1 1 3 11 3
+10 1 2 1 1 10 11 3
+3 1 2 1 1 3 11 3
+3 1 2 1 1 10 11 3
+3 2 2 1 1 3 11 3
+3 2 2 1 1 10 11 3
+select * from (t1, t2) join (t3, t4) on (a < y and t2.b < t3.c);
+c b a b b c y c
+10 1 2 1 1 3 11 3
+10 1 2 1 1 10 11 3
+3 1 2 1 1 3 11 3
+3 1 2 1 1 10 11 3
+3 2 2 1 1 3 11 3
+3 2 2 1 1 10 11 3
+select * from (t1 natural join t2) join (t3 natural join t4) on a = y;
+b c a c b y
+1 10 2 3 1 2
+1 3 2 3 1 2
+select * from ((t3 join (t1 join t2 on c > a) on t3.b < t2.a) join t4 on y > t1.c) join t5 on z = t1.b + 3;
+b c c b a b y c y z
+1 3 10 1 2 1 11 3 11 4
+1 10 10 1 2 1 11 3 11 4
+1 3 3 1 2 1 11 3 11 4
+1 10 3 1 2 1 11 3 11 4
+select * from t1 natural join t2 where t1.b > 0;
+b c a
+1 10 2
+1 3 2
+select * from t1 natural join (t4 natural join t5) where t4.y > 7;
+c b y z
+3 1 11 4
+3 2 11 4
+select * from (t4 natural join t5) natural join t1 where t4.y > 7;
+c y z b
+3 11 4 1
+3 11 4 2
+select * from t1 natural left join (t4 natural join t5) where t4.y > 7;
+c b y z
+3 1 11 4
+3 2 11 4
+select * from (t4 natural join t5) natural right join t1 where t4.y > 7;
+c b y z
+3 1 11 4
+3 2 11 4
+select * from (t1 natural join t2) join (t3 natural join t4) on t1.b = t3.b;
+b c a c b y
+1 10 2 3 1 11
+1 10 2 3 1 2
+1 3 2 3 1 11
+1 3 2 3 1 2
+select t1.*, t2.* from t1 natural join t2;
+c b a b
+10 1 2 1
+3 1 2 1
+select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) natural join (t3 natural join t4);
+c b a b b c y c
+3 1 2 1 1 3 11 3
+3 1 2 1 1 3 2 3
+select * from (select * from t1 natural join t2) as t12
+natural join
+(select * from t3 natural join t4) as t34;
+b c a y
+1 3 2 11
+1 3 2 2
+select * from (select * from t1 natural join t2) as t12
+natural left join
+(select * from t3 natural join t4) as t34;
+b c a y
+1 10 2 NULL
+1 3 2 11
+1 3 2 2
+select * from (select * from t3 natural join t4) as t34
+natural right join
+(select * from t1 natural join t2) as t12;
+b c a y
+1 10 2 NULL
+1 3 2 11
+1 3 2 2
+select * from v1a;
+b c a
+1 10 2
+1 3 2
+select * from v1b;
+a b c
+1 10 2
+1 3 2
+select * from v1c;
+a b c
+1 10 2
+1 3 2
+select * from v1d;
+b a c
+2 10 1
+2 3 1
+select * from v2a;
+c b a
+3 1 2
+3 2 2
+select * from v2b;
+b a c
+3 1 2
+3 2 2
+select * from v3a;
+b c a
+1 10 2
+1 3 2
+select * from v3b;
+c b a
+10 1 2
+3 1 2
+select * from v4;
+c b a
+3 1 2
+select * from v1a natural join v2a;
+b c a
+1 3 2
+select v2a.* from v1a natural join v2a;
+c b a
+3 1 2
+select * from v1b join v2a on v1b.b = v2a.c;
+a b c c b a
+1 3 2 3 1 2
+1 3 2 3 2 2
+select * from v1c join v2a on v1c.b = v2a.c;
+a b c c b a
+1 3 2 3 1 2
+1 3 2 3 2 2
+select * from v1d join v2a on v1d.a = v2a.c;
+b a c c b a
+2 3 1 3 1 2
+2 3 1 3 2 2
+select * from v1a join (t3 natural join t4) on a = y;
+b c a c b y
+1 10 2 3 1 2
+1 3 2 3 1 2
+select * from t1 natural join (t3 cross join t4);
+ERROR 23000: Column 'c' in from clause is ambiguous
+select * from (t3 cross join t4) natural join t1;
+ERROR 23000: Column 'c' in from clause is ambiguous
+select * from t1 join (t2, t3) using (b);
+ERROR 23000: Column 'b' in from clause is ambiguous
+select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
+ERROR 23000: Column 'c' in from clause is ambiguous
+select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
+ERROR 23000: Column 'c' in from clause is ambiguous
+select * from t6 natural join ((t1 natural join t2), (t3 natural join t4));
+ERROR 23000: Column 'c' in from clause is ambiguous
+select * from (t1 join t2 on t1.b=t2.b) natural join (t3 natural join t4);
+ERROR 23000: Column 'b' in from clause is ambiguous
+select * from (t3 natural join t4) natural join (t1 join t2 on t1.b=t2.b);
+ERROR 23000: Column 'b' in from clause is ambiguous
+select * from (t3 join (t4 natural join t5) on (b < z))
+natural join
+(t1 natural join t2);
+ERROR 23000: Column 'c' in from clause is ambiguous
+select * from (t1 natural join t2) natural join (t3 join (t4 natural join t5) on (b < z));
+ERROR 23000: Column 'c' in from clause is ambiguous
+select t1.b from v1a;
+ERROR 42S22: Unknown column 't1.b' in 'field list'
+select * from v1a join v1b on t1.b = t2.b;
+ERROR 42S22: Unknown column 't1.b' in 'on clause'
+select * from information_schema.statistics join information_schema.columns
+using(table_name,column_name) where table_name='user';
+TABLE_NAME COLUMN_NAME TABLE_CATALOG TABLE_SCHEMA NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT TABLE_CATALOG TABLE_SCHEMA ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+user Host NULL mysql 0 mysql PRIMARY 1 A NULL NULL NULL BTREE NULL mysql 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI #
+user User NULL mysql 0 mysql PRIMARY 2 A 3 NULL NULL BTREE NULL mysql 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI #
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+drop table t5;
+drop table t6;
+drop view v1a;
+drop view v1b;
+drop view v1c;
+drop view v1d;
+drop view v2a;
+drop view v2b;
+drop view v3a;
+drop view v3b;
+drop view v4;
+create table t1 (a1 int, a2 int);
+create table t2 (a1 int, b int);
+create table t3 (c1 int, c2 int);
+create table t4 (c2 int);
+insert into t1 values (1,1);
+insert into t2 values (1,1);
+insert into t3 values (1,1);
+insert into t4 values (1);
+select * from t1 join t2 using (a1) join t3 on b=c1 join t4 using (c2);
+c2 a1 a2 b c1
+1 1 1 1 1
+select * from t3 join (t1 join t2 using (a1)) on b=c1 join t4 using (c2);
+c2 c1 a1 a2 b
+1 1 1 1 1
+select a2 from t1 join t2 using (a1) join t3 on b=c1 join t4 using (c2);
+a2
+1
+select a2 from t3 join (t1 join t2 using (a1)) on b=c1 join t4 using (c2);
+a2
+1
+select a2 from ((t1 join t2 using (a1)) join t3 on b=c1) join t4 using (c2);
+a2
+1
+select a2 from ((t1 natural join t2) join t3 on b=c1) natural join t4;
+a2
+1
+drop table t1,t2,t3,t4;
+create table t1 (c int, b int);
+create table t2 (a int, b int);
+create table t3 (b int, c int);
+create table t4 (y int, c int);
+create table t5 (y int, z int);
+insert into t1 values (3,2);
+insert into t2 values (1,2);
+insert into t3 values (2,3);
+insert into t4 values (1,3);
+insert into t5 values (1,4);
+prepare stmt1 from "select * from ((t3 natural join (t1 natural join t2))
+natural join t4) natural join t5";
+execute stmt1;
+y c b a z
+1 3 2 1 4
+select * from ((t3 natural join (t1 natural join t2)) natural join t4)
+natural join t5;
+y c b a z
+1 3 2 1 4
+drop table t1, t2, t3, t4, t5;
+CREATE TABLE t1 (ID INTEGER, Name VARCHAR(50));
+CREATE TABLE t2 (Test_ID INTEGER);
+CREATE VIEW v1 (Test_ID, Description) AS SELECT ID, Name FROM t1;
+CREATE TABLE tv1 SELECT Description AS Name FROM v1 JOIN t2
+USING (Test_ID);
+DESCRIBE tv1;
+Field Type Null Key Default Extra
+Name varchar(50) YES NULL
+CREATE TABLE tv2 SELECT Description AS Name FROM v1 JOIN t2
+ON v1.Test_ID = t2.Test_ID;
+DESCRIBE tv2;
+Field Type Null Key Default Extra
+Name varchar(50) YES NULL
+DROP VIEW v1;
+DROP TABLE t1,t2,tv1,tv2;
+create table t1 (a int, b int);
+insert into t1 values
+(NULL, 1),
+(NULL, 2),
+(NULL, 3),
+(NULL, 4);
+create table t2 (a int not null, primary key(a));
+insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t3 (a int not null, primary key(a));
+insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+flush status;
+select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
+a b a a
+explain select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 Using index
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
+We expect rnd_next=5, and read_key must be 0 because of short-cutting:
+show status like 'Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 0
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 5
+drop table t1, t2, t3;
+End of 5.0 tests.
diff --git a/mysql-test/r/join_crash.result b/mysql-test/r/join_crash.result
index c1671ea7e20..f1a3b4956a8 100644
--- a/mysql-test/r/join_crash.result
+++ b/mysql-test/r/join_crash.result
@@ -75,18 +75,11 @@ t1.client_ptr as client_ptr,
t1.comments as comments,
sum( t3.amount_received ) + sum( t3.adjustment ) as total_budget
from
-t1 ,
t2 as client_period ,
-t2 as project_period
-left join
-t3
-on
-t3.project_ptr = t1.project_id
-and t3.date_received <= '2001-03-22 14:15:09'
- left join
-t4
-on
-t4.client_id = t1.client_ptr
+t2 as project_period,
+t3 left join t1 on (t3.project_ptr = t1.project_id and
+t3.date_received <= '2001-03-22 14:15:09')
+left join t4 on t4.client_id = t1.client_ptr
where
1
and ( client_period.period_type = 'client_table'
diff --git a/mysql-test/r/join_nested.result b/mysql-test/r/join_nested.result
new file mode 100644
index 00000000000..daf63579e9c
--- /dev/null
+++ b/mysql-test/r/join_nested.result
@@ -0,0 +1,1746 @@
+DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
+CREATE TABLE t0 (a int, b int, c int);
+CREATE TABLE t1 (a int, b int, c int);
+CREATE TABLE t2 (a int, b int, c int);
+CREATE TABLE t3 (a int, b int, c int);
+CREATE TABLE t4 (a int, b int, c int);
+CREATE TABLE t5 (a int, b int, c int);
+CREATE TABLE t6 (a int, b int, c int);
+CREATE TABLE t7 (a int, b int, c int);
+CREATE TABLE t8 (a int, b int, c int);
+CREATE TABLE t9 (a int, b int, c int);
+INSERT INTO t0 VALUES (1,1,0), (1,2,0), (2,2,0);
+INSERT INTO t1 VALUES (1,3,0), (2,2,0), (3,2,0);
+INSERT INTO t2 VALUES (3,3,0), (4,2,0), (5,3,0);
+INSERT INTO t3 VALUES (1,2,0), (2,2,0);
+INSERT INTO t4 VALUES (3,2,0), (4,2,0);
+INSERT INTO t5 VALUES (3,1,0), (2,2,0), (3,3,0);
+INSERT INTO t6 VALUES (3,2,0), (6,2,0), (6,1,0);
+INSERT INTO t7 VALUES (1,1,0), (2,2,0);
+INSERT INTO t8 VALUES (0,2,0), (1,2,0);
+INSERT INTO t9 VALUES (1,1,0), (1,2,0), (3,3,0);
+SELECT t2.a,t2.b
+FROM t2;
+a b
+3 3
+4 2
+5 3
+SELECT t3.a,t3.b
+FROM t3;
+a b
+1 2
+2 2
+SELECT t4.a,t4.b
+FROM t4;
+a b
+3 2
+4 2
+SELECT t3.a,t3.b,t4.a,t4.b
+FROM t3,t4;
+a b a b
+1 2 3 2
+2 2 3 2
+1 2 4 2
+2 2 4 2
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t2.b=t4.b;
+a b a b a b
+3 3 NULL NULL NULL NULL
+4 2 1 2 3 2
+4 2 1 2 4 2
+4 2 2 2 3 2
+4 2 2 2 4 2
+5 3 NULL NULL NULL NULL
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b;
+a b a b a b
+3 3 NULL NULL NULL NULL
+4 2 1 2 3 2
+4 2 1 2 4 2
+5 3 NULL NULL NULL NULL
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t2.b=t4.b
+WHERE t3.a=1 OR t3.c IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((`test`.`t4`.`b` = `test`.`t2`.`b`)) where ((`test`.`t3`.`a` = 1) or isnull(`test`.`t3`.`c`))
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t2.b=t4.b
+WHERE t3.a=1 OR t3.c IS NULL;
+a b a b a b
+3 3 NULL NULL NULL NULL
+4 2 1 2 3 2
+4 2 1 2 4 2
+5 3 NULL NULL NULL NULL
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t2.b=t4.b
+WHERE t3.a>1 OR t3.c IS NULL;
+a b a b a b
+3 3 NULL NULL NULL NULL
+4 2 2 2 3 2
+4 2 2 2 4 2
+5 3 NULL NULL NULL NULL
+SELECT t5.a,t5.b
+FROM t5;
+a b
+3 1
+2 2
+3 3
+SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+FROM t3,t4,t5;
+a b a b a b
+1 2 3 2 3 1
+2 2 3 2 3 1
+1 2 4 2 3 1
+2 2 4 2 3 1
+1 2 3 2 2 2
+2 2 3 2 2 2
+1 2 4 2 2 2
+2 2 4 2 2 2
+1 2 3 2 3 3
+2 2 3 2 3 3
+1 2 4 2 3 3
+2 2 4 2 3 3
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+FROM t2
+LEFT JOIN
+(t3, t4, t5)
+ON t2.b=t4.b;
+a b a b a b a b
+3 3 NULL NULL NULL NULL NULL NULL
+4 2 1 2 3 2 3 1
+4 2 1 2 3 2 2 2
+4 2 1 2 3 2 3 3
+4 2 1 2 4 2 3 1
+4 2 1 2 4 2 2 2
+4 2 1 2 4 2 3 3
+4 2 2 2 3 2 3 1
+4 2 2 2 3 2 2 2
+4 2 2 2 3 2 3 3
+4 2 2 2 4 2 3 1
+4 2 2 2 4 2 2 2
+4 2 2 2 4 2 3 3
+5 3 NULL NULL NULL NULL NULL NULL
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+FROM t2
+LEFT JOIN
+(t3, t4, t5)
+ON t2.b=t4.b
+WHERE t3.a>1 OR t3.c IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+1 SIMPLE t5 ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b` from `test`.`t2` left join (`test`.`t3` join `test`.`t4` join `test`.`t5`) on((`test`.`t4`.`b` = `test`.`t2`.`b`)) where ((`test`.`t3`.`a` > 1) or isnull(`test`.`t3`.`c`))
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+FROM t2
+LEFT JOIN
+(t3, t4, t5)
+ON t2.b=t4.b
+WHERE t3.a>1 OR t3.c IS NULL;
+a b a b a b a b
+3 3 NULL NULL NULL NULL NULL NULL
+4 2 2 2 3 2 3 1
+4 2 2 2 3 2 2 2
+4 2 2 2 3 2 3 3
+4 2 2 2 4 2 3 1
+4 2 2 2 4 2 2 2
+4 2 2 2 4 2 3 3
+5 3 NULL NULL NULL NULL NULL NULL
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+FROM t2
+LEFT JOIN
+(t3, t4, t5)
+ON t2.b=t4.b
+WHERE (t3.a>1 OR t3.c IS NULL) AND
+(t5.a<3 OR t5.c IS NULL);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+1 SIMPLE t5 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b` from `test`.`t2` left join (`test`.`t3` join `test`.`t4` join `test`.`t5`) on((`test`.`t4`.`b` = `test`.`t2`.`b`)) where (((`test`.`t3`.`a` > 1) or isnull(`test`.`t3`.`c`)) and ((`test`.`t5`.`a` < 3) or isnull(`test`.`t5`.`c`)))
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+FROM t2
+LEFT JOIN
+(t3, t4, t5)
+ON t2.b=t4.b
+WHERE (t3.a>1 OR t3.c IS NULL) AND
+(t5.a<3 OR t5.c IS NULL);
+a b a b a b a b
+3 3 NULL NULL NULL NULL NULL NULL
+4 2 2 2 3 2 2 2
+4 2 2 2 4 2 2 2
+5 3 NULL NULL NULL NULL NULL NULL
+SELECT t6.a,t6.b
+FROM t6;
+a b
+3 2
+6 2
+6 1
+SELECT t7.a,t7.b
+FROM t7;
+a b
+1 1
+2 2
+SELECT t6.a,t6.b,t7.a,t7.b
+FROM t6,t7;
+a b a b
+3 2 1 1
+3 2 2 2
+6 2 1 1
+6 2 2 2
+6 1 1 1
+6 1 2 2
+SELECT t8.a,t8.b
+FROM t8;
+a b
+0 2
+1 2
+EXPLAIN EXTENDED
+SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM (t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3
+1 SIMPLE t8 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t7`.`b` = `test`.`t8`.`b`) and (`test`.`t6`.`b` < 10))) where 1
+SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM (t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10;
+a b a b a b
+3 2 1 1 NULL NULL
+3 2 2 2 0 2
+3 2 2 2 1 2
+6 2 1 1 NULL NULL
+6 2 2 2 0 2
+6 2 2 2 1 2
+6 1 1 1 NULL NULL
+6 1 2 2 0 2
+6 1 2 2 1 2
+SELECT t5.a,t5.b
+FROM t5;
+a b
+3 1
+2 2
+3 3
+SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b;
+a b a b a b a b
+3 1 3 2 1 1 NULL NULL
+3 1 6 2 1 1 NULL NULL
+2 2 3 2 2 2 0 2
+2 2 3 2 2 2 1 2
+2 2 6 2 2 2 0 2
+2 2 6 2 2 2 1 2
+3 3 NULL NULL NULL NULL NULL NULL
+SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b AND
+(t8.a < 1 OR t8.c IS NULL);
+a b a b a b a b
+3 1 3 2 1 1 NULL NULL
+3 1 6 2 1 1 NULL NULL
+2 2 3 2 2 2 0 2
+2 2 6 2 2 2 0 2
+3 3 NULL NULL NULL NULL NULL NULL
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b;
+a b a b a b
+3 3 NULL NULL NULL NULL
+4 2 1 2 3 2
+4 2 1 2 4 2
+5 3 NULL NULL NULL NULL
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b;
+a b a b a b a b a b a b a b
+3 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+3 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL
+4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL
+5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+3 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+3 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+3 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+3 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+4 2 1 2 3 2 2 2 3 2 2 2 0 2
+4 2 1 2 3 2 2 2 3 2 2 2 1 2
+4 2 1 2 3 2 2 2 6 2 2 2 0 2
+4 2 1 2 3 2 2 2 6 2 2 2 1 2
+4 2 1 2 4 2 2 2 3 2 2 2 0 2
+4 2 1 2 4 2 2 2 3 2 2 2 1 2
+4 2 1 2 4 2 2 2 6 2 2 2 0 2
+4 2 1 2 4 2 2 2 6 2 2 2 1 2
+5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+5 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+3 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+WHERE t2.a > 3 AND
+(t6.a < 6 OR t6.c IS NULL);
+a b a b a b a b a b a b a b
+4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+4 2 1 2 3 2 2 2 3 2 2 2 0 2
+4 2 1 2 3 2 2 2 3 2 2 2 1 2
+4 2 1 2 4 2 2 2 3 2 2 2 0 2
+4 2 1 2 4 2 2 2 3 2 2 2 1 2
+5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+SELECT t1.a,t1.b
+FROM t1;
+a b
+1 3
+2 2
+3 2
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2);
+a b a b a b a b a b a b a b a b
+1 3 3 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+1 3 3 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+1 3 3 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+1 3 3 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+1 3 3 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+1 3 3 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+1 3 3 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+1 3 4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+1 3 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL
+1 3 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+1 3 4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+1 3 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL
+1 3 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+1 3 5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+1 3 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+1 3 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+1 3 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+1 3 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+1 3 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+1 3 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
+3 2 3 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+3 2 3 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+3 2 3 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+3 2 3 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+3 2 3 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+3 2 3 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+3 2 3 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+3 2 4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL
+3 2 4 2 1 2 3 2 2 2 3 2 2 2 0 2
+3 2 4 2 1 2 3 2 2 2 3 2 2 2 1 2
+3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2
+3 2 4 2 1 2 3 2 2 2 6 2 2 2 1 2
+3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+3 2 4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL
+3 2 4 2 1 2 4 2 2 2 3 2 2 2 0 2
+3 2 4 2 1 2 4 2 2 2 3 2 2 2 1 2
+3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2
+3 2 4 2 1 2 4 2 2 2 6 2 2 2 1 2
+3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+3 2 5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+3 2 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+3 2 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2)
+WHERE (t2.a >= 4 OR t2.c IS NULL);
+a b a b a b a b a b a b a b a b
+1 3 4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+1 3 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL
+1 3 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+1 3 4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+1 3 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL
+1 3 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+1 3 5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+1 3 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+1 3 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+1 3 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+1 3 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+1 3 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+1 3 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
+3 2 4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL
+3 2 4 2 1 2 3 2 2 2 3 2 2 2 0 2
+3 2 4 2 1 2 3 2 2 2 3 2 2 2 1 2
+3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2
+3 2 4 2 1 2 3 2 2 2 6 2 2 2 1 2
+3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+3 2 4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL
+3 2 4 2 1 2 4 2 2 2 3 2 2 2 0 2
+3 2 4 2 1 2 4 2 2 2 3 2 2 2 1 2
+3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2
+3 2 4 2 1 2 4 2 2 2 6 2 2 2 1 2
+3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+3 2 5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+3 2 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+3 2 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+SELECT t0.a,t0.b
+FROM t0;
+a b
+1 1
+1 2
+2 2
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2)
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+1 SIMPLE t5 ALL NULL NULL NULL NULL 3
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3
+1 SIMPLE t8 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2)
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL);
+a b a b a b a b a b a b a b a b a b
+1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
+1 2 3 2 4 2 1 2 3 2 3 1 3 2 1 1 NULL NULL
+1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL
+1 2 3 2 4 2 1 2 3 2 2 2 3 2 2 2 0 2
+1 2 3 2 4 2 1 2 3 2 2 2 3 2 2 2 1 2
+1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2
+1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 1 2
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL
+1 2 3 2 4 2 1 2 4 2 3 1 3 2 1 1 NULL NULL
+1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL
+1 2 3 2 4 2 1 2 4 2 2 2 3 2 2 2 0 2
+1 2 3 2 4 2 1 2 4 2 2 2 3 2 2 2 1 2
+1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2
+1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 1 2
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL
+1 2 3 2 5 3 NULL NULL NULL NULL 3 1 3 2 1 1 NULL NULL
+1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL
+1 2 3 2 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 0 2
+1 2 3 2 5 3 NULL NULL NULL NULL 2 2 3 2 2 2 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2
+1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t5 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t8 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
+SELECT t9.a,t9.b
+FROM t9;
+a b
+1 1
+1 2
+3 3
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+a b a b a b a b a b a b a b a b a b a b
+1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 1
+1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
+1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
+1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 1
+1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 1
+1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 2
+1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2
+1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
+1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2
+1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 2
+SELECT t1.a,t1.b
+FROM t1;
+a b
+1 3
+2 2
+3 2
+SELECT t2.a,t2.b
+FROM t2;
+a b
+3 3
+4 2
+5 3
+SELECT t3.a,t3.b
+FROM t3;
+a b
+1 2
+2 2
+SELECT t2.a,t2.b,t3.a,t3.b
+FROM t2
+LEFT JOIN
+t3
+ON t2.b=t3.b;
+a b a b
+3 3 NULL NULL
+4 2 1 2
+4 2 2 2
+5 3 NULL NULL
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
+FROM t1, t2
+LEFT JOIN
+t3
+ON t2.b=t3.b
+WHERE t1.a <= 2;
+a b a b a b
+1 3 3 3 NULL NULL
+2 2 3 3 NULL NULL
+1 3 4 2 1 2
+1 3 4 2 2 2
+2 2 4 2 1 2
+2 2 4 2 2 2
+1 3 5 3 NULL NULL
+2 2 5 3 NULL NULL
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
+FROM t1, t3
+RIGHT JOIN
+t2
+ON t2.b=t3.b
+WHERE t1.a <= 2;
+a b a b a b
+1 3 3 3 NULL NULL
+2 2 3 3 NULL NULL
+1 3 4 2 1 2
+1 3 4 2 2 2
+2 2 4 2 1 2
+2 2 4 2 2 2
+1 3 5 3 NULL NULL
+2 2 5 3 NULL NULL
+SELECT t3.a,t3.b,t4.a,t4.b
+FROM t3,t4;
+a b a b
+1 2 3 2
+2 2 3 2
+1 2 4 2
+2 2 4 2
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b;
+a b a b a b
+3 3 NULL NULL NULL NULL
+4 2 1 2 3 2
+4 2 1 2 4 2
+5 3 NULL NULL NULL NULL
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t1, t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b
+WHERE t1.a <= 2;
+a b a b a b a b
+1 3 3 3 NULL NULL NULL NULL
+2 2 3 3 NULL NULL NULL NULL
+1 3 4 2 1 2 3 2
+1 3 4 2 1 2 4 2
+2 2 4 2 1 2 3 2
+2 2 4 2 1 2 4 2
+1 3 5 3 NULL NULL NULL NULL
+2 2 5 3 NULL NULL NULL NULL
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t1, (t3, t4)
+RIGHT JOIN
+t2
+ON t3.a=1 AND t2.b=t4.b
+WHERE t1.a <= 2;
+a b a b a b a b
+1 3 3 3 NULL NULL NULL NULL
+2 2 3 3 NULL NULL NULL NULL
+1 3 4 2 1 2 3 2
+1 3 4 2 1 2 4 2
+2 2 4 2 1 2 3 2
+2 2 4 2 1 2 4 2
+1 3 5 3 NULL NULL NULL NULL
+2 2 5 3 NULL NULL NULL NULL
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t1, (t3, t4)
+RIGHT JOIN
+t2
+ON t3.a=1 AND t2.b=t4.b
+WHERE t1.a <= 2;
+a b a b a b a b
+1 3 3 3 NULL NULL NULL NULL
+2 2 3 3 NULL NULL NULL NULL
+1 3 4 2 1 2 3 2
+1 3 4 2 1 2 4 2
+2 2 4 2 1 2 3 2
+2 2 4 2 1 2 4 2
+1 3 5 3 NULL NULL NULL NULL
+2 2 5 3 NULL NULL NULL NULL
+EXPLAIN EXTENDED
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM t1, (t3, t4)
+RIGHT JOIN
+t2
+ON t3.a=1 AND t2.b=t4.b
+WHERE t1.a <= 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t1` join `test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) where (`test`.`t1`.`a` <= 2)
+CREATE INDEX idx_b ON t2(b);
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM (t3,t4)
+LEFT JOIN
+(t1,t2)
+ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t3`.`a` = 1) and (`test`.`t3`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` = `test`.`t4`.`b`))) where 1
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+FROM (t3,t4)
+LEFT JOIN
+(t1,t2)
+ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
+a b a b a b
+4 2 1 2 3 2
+4 2 1 2 3 2
+4 2 1 2 3 2
+NULL NULL 2 2 3 2
+4 2 1 2 4 2
+4 2 1 2 4 2
+4 2 1 2 4 2
+NULL NULL 2 2 4 2
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t5 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t8 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
+CREATE INDEX idx_b ON t4(b);
+CREATE INDEX idx_b ON t5(b);
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 Using where
+1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 Using where
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t8 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
+CREATE INDEX idx_b ON t8(b);
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 Using where
+1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 Using where
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 Using where
+1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
+CREATE INDEX idx_b ON t1(b);
+CREATE INDEX idx_a ON t0(a);
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 ref idx_a idx_a 5 const 1 Using where
+1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 2 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 Using where
+1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 Using where
+1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3 Using where
+1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 Using where
+1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+FROM t0,t1
+LEFT JOIN
+(
+t2
+LEFT JOIN
+(t3, t4)
+ON t3.a=1 AND t2.b=t4.b,
+t5
+LEFT JOIN
+(
+(t6, t7)
+LEFT JOIN
+t8
+ON t7.b=t8.b AND t6.b < 10
+)
+ON t6.b >= 2 AND t5.b=t7.b
+)
+ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+(t1.a != 2),
+t9
+WHERE t0.a=1 AND
+t0.b=t1.b AND
+(t2.a >= 4 OR t2.c IS NULL) AND
+(t3.a < 5 OR t3.c IS NULL) AND
+(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+(t5.a >=2 OR t5.c IS NULL) AND
+(t6.a >=4 OR t6.c IS NULL) AND
+(t7.a <= 2 OR t7.c IS NULL) AND
+(t8.a < 1 OR t8.c IS NULL) AND
+(t8.b=t9.b OR t8.c IS NULL) AND
+(t9.a=1);
+a b a b a b a b a b a b a b a b a b a b
+1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 1
+1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
+1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
+1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 1
+1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 1
+1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 2
+1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2
+1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
+1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2
+1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2 1 2
+1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 2
+SELECT t2.a,t2.b
+FROM t2;
+a b
+3 3
+4 2
+5 3
+SELECT t3.a,t3.b
+FROM t3;
+a b
+1 2
+2 2
+SELECT t2.a,t2.b,t3.a,t3.b
+FROM t2 LEFT JOIN t3 ON t2.b=t3.b
+WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
+a b a b
+4 2 1 2
+4 2 2 2
+5 3 NULL NULL
+SELECT t2.a,t2.b,t3.a,t3.b
+FROM t2 LEFT JOIN (t3) ON t2.b=t3.b
+WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
+a b a b
+4 2 1 2
+4 2 2 2
+5 3 NULL NULL
+ALTER TABLE t3
+CHANGE COLUMN a a1 int,
+CHANGE COLUMN c c1 int;
+SELECT t2.a,t2.b,t3.a1,t3.b
+FROM t2 LEFT JOIN t3 ON t2.b=t3.b
+WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
+a b a1 b
+4 2 1 2
+4 2 2 2
+5 3 NULL NULL
+SELECT t2.a,t2.b,t3.a1,t3.b
+FROM t2 NATURAL LEFT JOIN t3
+WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
+a b a1 b
+4 2 1 2
+4 2 2 2
+5 3 NULL NULL
+DROP TABLE t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (a int);
+CREATE TABLE t3 (a int);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (2);
+INSERT INTO t3 VALUES (2);
+INSERT INTO t1 VALUES (2);
+SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.a=t3.a;
+a a a
+1 NULL NULL
+2 2 2
+SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
+a a a
+1 NULL NULL
+2 2 2
+DELETE FROM t1 WHERE a=2;
+SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
+a a a
+1 NULL NULL
+DELETE FROM t2;
+SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
+a a a
+1 NULL NULL
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1(a int, key (a));
+CREATE TABLE t2(b int, key (b));
+CREATE TABLE t3(c int, key (c));
+INSERT INTO t1 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
+INSERT INTO t2 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
+INSERT INTO t3 VALUES (0), (1), (2), (3), (4), (5);
+EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON c < 3 and b = c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 21 Using index
+1 SIMPLE t3 index c c 5 NULL 6 Using index
+1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
+EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 21 Using index
+1 SIMPLE t3 index c c 5 NULL 6 Using index
+1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
+SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+a b c
+NULL 0 0
+NULL 1 1
+NULL 2 2
+0 0 0
+0 1 1
+0 2 2
+1 0 0
+1 1 1
+1 2 2
+2 0 0
+2 1 1
+2 2 2
+3 0 0
+3 1 1
+3 2 2
+4 0 0
+4 1 1
+4 2 2
+5 0 0
+5 1 1
+5 2 2
+6 0 0
+6 1 1
+6 2 2
+7 0 0
+7 1 1
+7 2 2
+8 0 0
+8 1 1
+8 2 2
+9 0 0
+9 1 1
+9 2 2
+10 0 0
+10 1 1
+10 2 2
+11 0 0
+11 1 1
+11 2 2
+12 0 0
+12 1 1
+12 2 2
+13 0 0
+13 1 1
+13 2 2
+14 0 0
+14 1 1
+14 2 2
+15 0 0
+15 1 1
+15 2 2
+16 0 0
+16 1 1
+16 2 2
+17 0 0
+17 1 1
+17 2 2
+18 0 0
+18 1 1
+18 2 2
+19 0 0
+19 1 1
+19 2 2
+DELETE FROM t3;
+EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 21 Using index
+1 SIMPLE t3 index c c 5 NULL 0 Using index
+1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
+SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+a b c
+NULL NULL NULL
+0 NULL NULL
+1 NULL NULL
+2 NULL NULL
+3 NULL NULL
+4 NULL NULL
+5 NULL NULL
+6 NULL NULL
+7 NULL NULL
+8 NULL NULL
+9 NULL NULL
+10 NULL NULL
+11 NULL NULL
+12 NULL NULL
+13 NULL NULL
+14 NULL NULL
+15 NULL NULL
+16 NULL NULL
+17 NULL NULL
+18 NULL NULL
+19 NULL NULL
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (c11 int);
+CREATE TABLE t2 (c21 int);
+CREATE TABLE t3 (c31 int);
+INSERT INTO t1 VALUES (4), (5);
+SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
+c11 c21
+4 NULL
+5 NULL
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 system NULL NULL NULL NULL 0 const row not found
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
+c11 c21 c31
+4 NULL NULL
+5 NULL NULL
+EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+1 SIMPLE t2 ALL NULL NULL NULL NULL 0
+1 SIMPLE t3 ALL NULL NULL NULL NULL 0
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (goods int(12) NOT NULL, price varchar(128) NOT NULL);
+INSERT INTO t1 VALUES (23, 2340), (26, 9900);
+CREATE TABLE t2 (goods int(12), name varchar(50), shop char(2));
+INSERT INTO t2 VALUES (23, 'as300', 'fr'), (26, 'as600', 'fr');
+create table t3 (groupid int(12) NOT NULL, goodsid int(12) NOT NULL);
+INSERT INTO t3 VALUES (3,23), (6,26);
+CREATE TABLE t4 (groupid int(12));
+INSERT INTO t4 VALUES (1), (2), (3), (4), (5), (6);
+SELECT * FROM
+(SELECT DISTINCT gl.groupid, gp.price
+FROM t4 gl
+LEFT JOIN
+(t3 g INNER JOIN t2 p ON g.goodsid = p.goods
+INNER JOIN t1 gp ON p.goods = gp.goods)
+ON gl.groupid = g.groupid and p.shop = 'fr') t;
+groupid price
+1 NULL
+2 NULL
+3 2340
+4 NULL
+5 NULL
+6 9900
+CREATE VIEW v1 AS
+SELECT g.groupid groupid, p.goods goods,
+p.name name, p.shop shop,
+gp.price price
+FROM t3 g INNER JOIN t2 p ON g.goodsid = p.goods
+INNER JOIN t1 gp on p.goods = gp.goods;
+CREATE VIEW v2 AS
+SELECT DISTINCT g.groupid, fr.price
+FROM t4 g
+LEFT JOIN
+v1 fr on g.groupid = fr.groupid and fr.shop = 'fr';
+SELECT * FROM v2;
+groupid price
+1 NULL
+2 NULL
+3 2340
+4 NULL
+5 NULL
+6 9900
+SELECT * FROM
+(SELECT DISTINCT g.groupid, fr.price
+FROM t4 g
+LEFT JOIN
+v1 fr on g.groupid = fr.groupid and fr.shop = 'fr') t;
+groupid price
+1 NULL
+2 NULL
+3 2340
+4 NULL
+5 NULL
+6 9900
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3,t4;
+CREATE TABLE t1(a int);
+CREATE TABLE t2(b int);
+CREATE TABLE t3(c int, d int);
+CREATE TABLE t4(d int);
+CREATE TABLE t5(e int, f int);
+CREATE TABLE t6(f int);
+CREATE VIEW v1 AS
+SELECT e FROM t5 JOIN t6 ON t5.e=t6.f;
+CREATE VIEW v2 AS
+SELECT e FROM t5 NATURAL JOIN t6;
+SELECT t1.a FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c JOIN t4 USING(d);
+a
+SELECT t1.x FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c JOIN t4 USING(d);
+ERROR 42S22: Unknown column 't1.x' in 'field list'
+SELECT t1.a FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c NATURAL JOIN t4;
+a
+SELECT t1.x FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c NATURAL JOIN t4;
+ERROR 42S22: Unknown column 't1.x' in 'field list'
+SELECT v1.e FROM v1 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+e
+SELECT v1.x FROM v1 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+ERROR 42S22: Unknown column 'v1.x' in 'field list'
+SELECT v2.e FROM v2 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+e
+SELECT v2.x FROM v2 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+ERROR 42S22: Unknown column 'v2.x' in 'field list'
+DROP VIEW v1, v2;
+DROP TABLE t1, t2, t3, t4, t5, t6;
+create table t1 (id1 int(11) not null);
+insert into t1 values (1),(2);
+create table t2 (id2 int(11) not null);
+insert into t2 values (1),(2),(3),(4);
+create table t3 (id3 char(16) not null);
+insert into t3 values ('100');
+create table t4 (id2 int(11) not null, id3 char(16));
+create table t5 (id1 int(11) not null, key (id1));
+insert into t5 values (1),(2),(1);
+create view v1 as
+select t4.id3 from t4 join t2 on t4.id2 = t2.id2;
+select t1.id1 from t1 inner join (t3 left join v1 on t3.id3 = v1.id3);
+id1
+1
+2
+drop view v1;
+drop table t1, t2, t3, t4, t5;
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3);
+create table t1(a int);
+insert into t1 select A.a + 10*(B.a) from t0 A, t0 B;
+create table t2 (a int, b int);
+insert into t2 values (1,1), (2,2), (3,3);
+create table t3(a int, b int, filler char(200), key(a));
+insert into t3 select a,a,'filler' from t1;
+insert into t3 select a,a,'filler' from t1;
+create table t4 like t3;
+insert into t4 select * from t3;
+insert into t4 select * from t3;
+create table t5 like t4;
+insert into t5 select * from t4;
+insert into t5 select * from t4;
+create table t6 like t5;
+insert into t6 select * from t5;
+insert into t6 select * from t5;
+create table t7 like t6;
+insert into t7 select * from t6;
+insert into t7 select * from t6;
+explain select * from t4 join
+t2 left join (t3 join t5 on t5.a=t3.b) on t3.a=t2.b where t4.a<=>t3.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL X
+1 SIMPLE t3 ref a a 5 test.t2.b X
+1 SIMPLE t5 ref a a 5 test.t3.b X
+1 SIMPLE t4 ref a a 5 test.t3.b X Using where
+explain select * from (t4 join t6 on t6.a=t4.b) right join t3 on t4.a=t3.b
+join t2 left join (t5 join t7 on t7.a=t5.b) on t5.a=t2.b where t3.a<=>t2.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL X
+1 SIMPLE t3 ref a a 5 test.t2.b X Using where
+1 SIMPLE t4 ref a a 5 test.t3.b X
+1 SIMPLE t6 ref a a 5 test.t4.b X
+1 SIMPLE t5 ref a a 5 test.t2.b X
+1 SIMPLE t7 ref a a 5 test.t5.b X
+explain select * from t2 left join
+(t3 left join (t4 join t6 on t6.a=t4.b) on t4.a=t3.b
+join t5 on t5.a=t3.b) on t3.a=t2.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL X
+1 SIMPLE t3 ref a a 5 test.t2.b X
+1 SIMPLE t4 ref a a 5 test.t3.b X
+1 SIMPLE t6 ref a a 5 test.t4.b X
+1 SIMPLE t5 ref a a 5 test.t3.b X
+drop table t0, t1, t2, t3, t4, t5, t6, t7;
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, filler char(100), key(a));
+insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
+create table t3 like t2;
+insert into t3 select * from t2;
+explain select * from t1 left join
+(t2 left join t3 on (t2.a = t3.a))
+on (t1.a = t2.a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 10
+1 SIMPLE t2 ref a a 5 test.t1.a 1
+1 SIMPLE t3 ref a a 5 test.t2.a 1
+drop table t1, t2, t3;
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, type varchar(10));
+CREATE TABLE t2 (pid int NOT NULL PRIMARY KEY, type varchar(10));
+CREATE TABLE t3 (cid int NOT NULL PRIMARY KEY,
+id int NOT NULL,
+pid int NOT NULL);
+INSERT INTO t1 VALUES (1, 'A'), (3, 'C');
+INSERT INTO t2 VALUES (1, 'A'), (3, 'C');
+INSERT INTO t3 VALUES (1, 1, 1), (3, 3, 3);
+SELECT * FROM t1 p LEFT JOIN (t3 JOIN t1)
+ON (t1.id=t3.id AND t1.type='B' AND p.id=t3.id)
+LEFT JOIN t2 ON (t3.pid=t2.pid)
+WHERE p.id=1;
+id type cid id pid id type pid type
+1 A NULL NULL NULL NULL NULL NULL NULL
+CREATE VIEW v1 AS
+SELECT t3.* FROM t3 JOIN t1 ON t1.id=t3.id AND t1.type='B';
+SELECT * FROM t1 p LEFT JOIN v1 ON p.id=v1.id
+LEFT JOIN t2 ON v1.pid=t2.pid
+WHERE p.id=1;
+id type cid id pid pid type
+1 A NULL NULL NULL NULL NULL
+DROP VIEW v1;
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t2 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t3 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t4 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t5 (id1 int PRIMARY KEY, id2 int);
+SELECT t1.id1 AS id, t5.id1 AS ngroupbynsa
+FROM t1 INNER JOIN t2 ON t2.id2 = t1.id1
+LEFT OUTER JOIN
+(t3 INNER JOIN t4 ON t4.id1 = t3.id2 INNER JOIN t5 ON t4.id2 = t5.id1)
+ON t3.id2 IS NOT NULL
+WHERE t1.id1=2;
+id ngroupbynsa
+PREPARE stmt FROM
+"SELECT t1.id1 AS id, t5.id1 AS ngroupbynsa
+ FROM t1 INNER JOIN t2 ON t2.id2 = t1.id1
+ LEFT OUTER JOIN
+ (t3 INNER JOIN t4 ON t4.id1 = t3.id2 INNER JOIN t5 ON t4.id2 = t5.id1)
+ ON t3.id2 IS NOT NULL
+ WHERE t1.id1=2";
+EXECUTE stmt;
+id ngroupbynsa
+EXECUTE stmt;
+id ngroupbynsa
+EXECUTE stmt;
+id ngroupbynsa
+EXECUTE stmt;
+id ngroupbynsa
+INSERT INTO t1 VALUES (1,1), (2,1), (3,2);
+INSERT INTO t2 VALUES (2,1), (3,2), (4,3);
+INSERT INTO t3 VALUES (1,1), (3,2), (2,NULL);
+INSERT INTO t4 VALUES (1,1), (2,1), (3,3);
+INSERT INTO t5 VALUES (1,1), (2,2), (3,3), (4,3);
+EXECUTE stmt;
+id ngroupbynsa
+2 1
+2 1
+EXECUTE stmt;
+id ngroupbynsa
+2 1
+2 1
+EXECUTE stmt;
+id ngroupbynsa
+2 1
+2 1
+EXECUTE stmt;
+id ngroupbynsa
+2 1
+2 1
+SELECT t1.id1 AS id, t5.id1 AS ngroupbynsa
+FROM t1 INNER JOIN t2 ON t2.id2 = t1.id1
+LEFT OUTER JOIN
+(t3 INNER JOIN t4 ON t4.id1 = t3.id2 INNER JOIN t5 ON t4.id2 = t5.id1)
+ON t3.id2 IS NOT NULL
+WHERE t1.id1=2;
+id ngroupbynsa
+2 1
+2 1
+DROP TABLE t1,t2,t3,t4,t5;
+CREATE TABLE t1 (
+id int NOT NULL PRIMARY KEY,
+ct int DEFAULT NULL,
+pc int DEFAULT NULL,
+INDEX idx_ct (ct),
+INDEX idx_pc (pc)
+);
+INSERT INTO t1 VALUES
+(1,NULL,NULL),(2,NULL,NULL),(3,NULL,NULL),(4,NULL,NULL),(5,NULL,NULL);
+CREATE TABLE t2 (
+id int NOT NULL PRIMARY KEY,
+sr int NOT NULL,
+nm varchar(255) NOT NULL,
+INDEX idx_sr (sr)
+);
+INSERT INTO t2 VALUES
+(2441905,4308,'LesAbymes'),(2441906,4308,'Anse-Bertrand');
+CREATE TABLE t3 (
+id int NOT NULL PRIMARY KEY,
+ct int NOT NULL,
+ln int NOT NULL,
+INDEX idx_ct (ct),
+INDEX idx_ln (ln)
+);
+CREATE TABLE t4 (
+id int NOT NULL PRIMARY KEY,
+nm varchar(255) NOT NULL
+);
+INSERT INTO t4 VALUES (4308,'Guadeloupe'),(4309,'Martinique');
+SELECT t1.*
+FROM t1 LEFT JOIN
+(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
+WHERE t1.id='5';
+id ct pc
+5 NULL NULL
+SELECT t1.*, t4.nm
+FROM t1 LEFT JOIN
+(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
+LEFT JOIN t4 ON t2.sr=t4.id
+WHERE t1.id='5';
+id ct pc nm
+5 NULL NULL NULL
+DROP TABLE t1,t2,t3,t4;
+CREATE TABLE t1 (a INT, b INT);
+CREATE TABLE t2 (a INT);
+CREATE TABLE t3 (a INT, c INT);
+CREATE TABLE t4 (a INT, c INT);
+CREATE TABLE t5 (a INT, c INT);
+SELECT b FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
+LEFT JOIN t5 USING (a)) USING (a);
+b
+SELECT c FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
+LEFT JOIN t5 USING (a)) USING (a);
+ERROR 23000: Column 'c' in field list is ambiguous
+SELECT b FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
+JOIN t5 USING (a)) USING (a);
+b
+SELECT c FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
+JOIN t5 USING (a)) USING (a);
+ERROR 23000: Column 'c' in field list is ambiguous
+DROP TABLE t1,t2,t3,t4,t5;
+CREATE TABLE t1 (a INT, b INT);
+CREATE TABLE t2 (a INT, b INT);
+CREATE TABLE t3 (a INT, b INT);
+INSERT INTO t1 VALUES (1,1);
+INSERT INTO t2 VALUES (1,1);
+INSERT INTO t3 VALUES (1,1);
+SELECT * FROM t1 JOIN (t2 JOIN t3 USING (b)) USING (a);
+ERROR 23000: Column 'a' in from clause is ambiguous
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (
+carrier char(2) default NULL,
+id int NOT NULL auto_increment PRIMARY KEY
+);
+INSERT INTO t1 VALUES
+('CO',235371754),('CO',235376554),('CO',235376884),('CO',235377874),
+('CO',231060394),('CO',231059224),('CO',231059314),('CO',231060484),
+('CO',231060274),('CO',231060124),('CO',231060244),('CO',231058594),
+('CO',231058924),('CO',231058504),('CO',231059344),('CO',231060424),
+('CO',231059554),('CO',231060304),('CO',231059644),('CO',231059464),
+('CO',231059764),('CO',231058294),('CO',231058624),('CO',231058864),
+('CO',231059374),('CO',231059584),('CO',231059734),('CO',231059014),
+('CO',231059854),('CO',231059494),('CO',231059794),('CO',231058534),
+('CO',231058324),('CO',231058684),('CO',231059524),('CO',231059974);
+CREATE TABLE t2 (
+scan_date date default NULL,
+package_id int default NULL,
+INDEX scan_date(scan_date),
+INDEX package_id(package_id)
+);
+INSERT INTO t2 VALUES
+('2008-12-29',231062944),('2008-12-29',231065764),('2008-12-29',231066124),
+('2008-12-29',231060094),('2008-12-29',231061054),('2008-12-29',231065644),
+('2008-12-29',231064384),('2008-12-29',231064444),('2008-12-29',231073774),
+('2008-12-29',231058594),('2008-12-29',231059374),('2008-12-29',231066004),
+('2008-12-29',231068494),('2008-12-29',231070174),('2008-12-29',231071884),
+('2008-12-29',231063274),('2008-12-29',231063754),('2008-12-29',231064144),
+('2008-12-29',231069424),('2008-12-29',231073714),('2008-12-29',231058414),
+('2008-12-29',231060994),('2008-12-29',231069154),('2008-12-29',231068614),
+('2008-12-29',231071464),('2008-12-29',231074014),('2008-12-29',231059614),
+('2008-12-29',231059074),('2008-12-29',231059464),('2008-12-29',231069094),
+('2008-12-29',231067294),('2008-12-29',231070144),('2008-12-29',231073804),
+('2008-12-29',231072634),('2008-12-29',231058294),('2008-12-29',231065344),
+('2008-12-29',231066094),('2008-12-29',231069034),('2008-12-29',231058594),
+('2008-12-29',231059854),('2008-12-29',231059884),('2008-12-29',231059914),
+('2008-12-29',231063664),('2008-12-29',231063814),('2008-12-29',231063904);
+CREATE TABLE t3 (
+package_id int default NULL,
+INDEX package_id(package_id)
+);
+INSERT INTO t3 VALUES
+(231058294),(231058324),(231058354),(231058384),(231058414),(231058444),
+(231058474),(231058504),(231058534),(231058564),(231058594),(231058624),
+(231058684),(231058744),(231058804),(231058864),(231058924),(231058954),
+(231059014),(231059074),(231059104),(231059134),(231059164),(231059194),
+(231059224),(231059254),(231059284),(231059314),(231059344),(231059374),
+(231059404),(231059434),(231059464),(231059494),(231059524),(231059554),
+(231059584),(231059614),(231059644),(231059674),(231059704),(231059734),
+(231059764),(231059794),(231059824),(231059854),(231059884),(231059914),
+(231059944),(231059974),(231060004),(231060034),(231060064),(231060094),
+(231060124),(231060154),(231060184),(231060214),(231060244),(231060274),
+(231060304),(231060334),(231060364),(231060394),(231060424),(231060454),
+(231060484),(231060514),(231060544),(231060574),(231060604),(231060634),
+(231060664),(231060694),(231060724),(231060754),(231060784),(231060814),
+(231060844),(231060874),(231060904),(231060934),(231060964),(231060994),
+(231061024),(231061054),(231061084),(231061144),(231061174),(231061204),
+(231061234),(231061294),(231061354),(231061384),(231061414),(231061474),
+(231061564),(231061594),(231061624),(231061684),(231061714),(231061774),
+(231061804),(231061894),(231061984),(231062074),(231062134),(231062224),
+(231062254),(231062314),(231062374),(231062434),(231062494),(231062554),
+(231062584),(231062614),(231062644),(231062704),(231062734),(231062794),
+(231062854),(231062884),(231062944),(231063004),(231063034),(231063064),
+(231063124),(231063154),(231063184),(231063214),(231063274),(231063334),
+(231063394),(231063424),(231063454),(231063514),(231063574),(231063664);
+CREATE TABLE t4 (
+carrier char(2) NOT NULL default '' PRIMARY KEY,
+id int(11) default NULL,
+INDEX id(id)
+);
+INSERT INTO t4 VALUES
+('99',6),('SK',456),('UA',486),('AI',1081),('OS',1111),('VS',1510);
+CREATE TABLE t5 (
+carrier_id int default NULL,
+INDEX carrier_id(carrier_id)
+);
+INSERT INTO t5 VALUES
+(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(456),(456),(456),
+(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),
+(456),(486),(1081),(1111),(1111),(1111),(1111),(1510);
+SELECT COUNT(*)
+FROM((t2 JOIN t1 ON t2.package_id = t1.id)
+JOIN t3 ON t3.package_id = t1.id);
+COUNT(*)
+6
+EXPLAIN
+SELECT COUNT(*)
+FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
+JOIN t3 ON t3.package_id = t1.id)
+LEFT JOIN
+(t5 JOIN t4 ON t5.carrier_id = t4.id)
+ON t4.carrier = t1.carrier;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index package_id package_id 5 NULL 45 Using index
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.package_id 1
+1 SIMPLE t4 eq_ref PRIMARY,id PRIMARY 2 test.t1.carrier 1
+1 SIMPLE t5 ref carrier_id carrier_id 5 test.t4.id 22 Using index
+1 SIMPLE t3 ref package_id package_id 5 test.t1.id 1 Using where; Using index
+SELECT COUNT(*)
+FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
+JOIN t3 ON t3.package_id = t1.id)
+LEFT JOIN
+(t5 JOIN t4 ON t5.carrier_id = t4.id)
+ON t4.carrier = t1.carrier;
+COUNT(*)
+6
+DROP TABLE t1,t2,t3,t4,t5;
+End of 5.0 tests
diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result
index d5ae1a58e83..1366a8fe97a 100644
--- a/mysql-test/r/join_outer.result
+++ b/mysql-test/r/join_outer.result
@@ -1,4 +1,4 @@
-drop table if exists t1,t2,t3,t4,t5;
+drop table if exists t0,t1,t2,t3,t4,t5;
CREATE TABLE t1 (
grp int(11) default NULL,
a bigint(20) unsigned default NULL,
@@ -106,11 +106,11 @@ grp a c id a c d a
3 6 D 3 6 C 6 6
NULL NULL NULL NULL NULL NULL NULL
explain select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t1.a=t3.a);
-ERROR 42000: Cross dependency found in OUTER JOIN; examine your ON conditions
+ERROR 42S22: Unknown column 't3.a' in 'on clause'
select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t1.a=t3.a);
-ERROR 42000: Cross dependency found in OUTER JOIN; examine your ON conditions
+ERROR 42S22: Unknown column 't3.a' in 'on clause'
select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
-ERROR 42000: Cross dependency found in OUTER JOIN; examine your ON conditions
+ERROR 42S22: Unknown column 't3.a' in 'on clause'
select t1.*,t2.* from t1 inner join t2 using (a);
grp a c id a c d
1 1 a 1 1 a 1
@@ -124,8 +124,8 @@ grp a c id a c d
3 5 C 3 5 B 5
3 6 D 3 6 C 6
select t1.*,t2.* from t1 natural join t2;
-grp a c id d
-1 1 a 1 1
+grp a c id a c d
+1 1 a 1 1 a 1
drop table t1,t2;
CREATE TABLE t1 (
usr_id INT unsigned NOT NULL,
@@ -200,7 +200,7 @@ INSERT INTO t1 VALUES (10363,'Tecniques de Comunicacio Oral i Escrita','Tecnicas
INSERT INTO t1 VALUES (11403,'Projecte Fi de Carrera','Proyecto Fin de Carrera','Projecte Fi de Carrera','PFC',9.0,NULL,NULL,NULL);
INSERT INTO t1 VALUES (11404,'+lgebra lineal','Algebra lineal','+lgebra lineal','+lgebra lineal',15.0,NULL,NULL,NULL);
INSERT INTO t1 VALUES (11405,'+lgebra lineal','Algebra lineal','+lgebra lineal','+lgebra lineal',18.0,NULL,NULL,NULL);
-INSERT INTO t1 VALUES (11406,'Calcul Infinitesimal','Cßlculo Infinitesimal','Calcul Infinitesimal','Calcul Infinitesimal',15.0,NULL,NULL,NULL);
+INSERT INTO t1 VALUES (11406,'Calcul Infinitesimal','Cßlculo Infinitesimal','Calcul Infinitesimal','Calcul Infinitesimal',15.0,NULL,NULL,NULL);
CREATE TABLE t2 (
idAssignatura int(11) DEFAULT '0' NOT NULL,
Grup int(11) DEFAULT '0' NOT NULL,
@@ -356,13 +356,7 @@ select t1.name, t2.name, t2.id, t2.owner, t3.id from t1 left join t2 on (t1.id =
name name id owner id
Antonio Paz El Gato 1 1 1
Antonio Paz Perrito 2 1 1
-Lilliana Angelovska NULL NULL NULL 1
-Thimble Smith NULL NULL NULL 1
-Antonio Paz NULL NULL NULL 2
-Lilliana Angelovska NULL NULL NULL 2
-Thimble Smith NULL NULL NULL 2
-Antonio Paz NULL NULL NULL 3
-Lilliana Angelovska NULL NULL NULL 3
+NULL NULL NULL NULL 2
Thimble Smith Happy 3 3 3
drop table t1,t2;
create table t1 (id int not null, str char(10), index(str));
@@ -406,7 +400,7 @@ insert into t3 values (1);
insert into t4 values (1,1);
insert into t5 values (1,1);
explain select * from t3 left join t4 on t4.seq_1_id = t2.t2_id left join t1 on t1.t1_id = t4.seq_0_id left join t5 on t5.seq_0_id = t1.t1_id left join t2 on t2.t2_id = t5.seq_1_id where t3.t3_id = 23;
-ERROR 42000: Cross dependency found in OUTER JOIN; examine your ON conditions
+ERROR 42S22: Unknown column 't2.t2_id' in 'on clause'
drop table t1,t2,t3,t4,t5;
create table t1 (n int, m int, o int, key(n));
create table t2 (n int not null, m int, o int, primary key(n));
@@ -467,10 +461,10 @@ count color
15 white
7 green
select * from t2 natural join t1;
-count color name
-10 green lime
-7 green lime
-5 black grape
+color count name
+green 10 lime
+green 7 lime
+black 5 grape
select t2.count, t1.name from t2 natural join t1;
count name
10 lime
@@ -604,6 +598,8 @@ id int(11) DEFAULT '0' NOT NULL,
name tinytext DEFAULT '' NOT NULL,
UNIQUE id (id)
);
+Warnings:
+Warning 1101 BLOB/TEXT column 'name' can't have a default value
INSERT INTO t1 VALUES (1,'yes'),(2,'no');
CREATE TABLE t2 (
id int(11) DEFAULT '0' NOT NULL,
@@ -634,7 +630,7 @@ insert into t2 values (10,1),(20,2),(30,3);
explain select * from t2 left join t1 on t1.fooID = t2.fooID and t1.fooID = 30;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 index NULL PRIMARY 4 NULL 3 Using index
-1 SIMPLE t1 const PRIMARY PRIMARY 2 const 1 Using where; Using index
+1 SIMPLE t1 const PRIMARY PRIMARY 2 const 1 Using index
select * from t2 left join t1 on t1.fooID = t2.fooID and t1.fooID = 30;
fooID barID fooID
10 1 NULL
@@ -653,9 +649,22 @@ insert into t1 values(1),(2);
insert into t2 values(2),(3);
insert into t3 values(2),(4);
select * from t1 natural left join t2 natural left join t3;
-i i i
-1 NULL NULL
-2 2 2
+i
+1
+2
+select * from t1 natural left join t2 where (t2.i is not null)=0;
+i
+1
+select * from t1 natural left join t2 where (t2.i is not null) is not null;
+i
+1
+2
+select * from t1 natural left join t2 where (i is not null)=0;
+i
+select * from t1 natural left join t2 where (i is not null) is not null;
+i
+1
+2
drop table t1,t2,t3;
create table t1 (f1 integer,f2 integer,f3 integer);
create table t2 (f2 integer,f4 integer);
@@ -663,7 +672,7 @@ create table t3 (f3 integer,f5 integer);
select * from t1
left outer join t2 using (f2)
left outer join t3 using (f3);
-ERROR 42S22: Unknown column 'test.t2.f3' in 'on clause'
+f3 f2 f1 f4 f5
drop table t1,t2,t3;
create table t1 (a1 int, a2 int);
create table t2 (b1 int not null, b2 int);
@@ -728,14 +737,14 @@ explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
(t2 s left join t1 m on m.match_id = 1)
order by m.match_id desc;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE s ALL NULL NULL NULL NULL 10
-1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using where
+1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
+1 SIMPLE m const match_id,match_id_2 match_id 1 const 1
explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
(t2 s left join t1 m on m.match_id = 1)
order by UUX desc;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
-1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using where
+1 SIMPLE m const match_id,match_id_2 match_id 1 const 1
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
(t2 s left join t1 m on m.match_id = 1)
order by UUX desc;
@@ -755,7 +764,7 @@ t2 s straight_join t1 m where m.match_id = 1
order by UUX desc;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
-1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using where
+1 SIMPLE m const match_id,match_id_2 match_id 1 const 1
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
t2 s straight_join t1 m where m.match_id = 1
order by UUX desc;
@@ -810,32 +819,91 @@ t2.flag_value IS NULL;
flag_name flag_value
flag2 NULL
DROP TABLE t1,t2;
-CREATE TABLE invoice (
+CREATE TABLE t1 (
id int(11) unsigned NOT NULL auto_increment,
text_id int(10) unsigned default NULL,
PRIMARY KEY (id)
);
-INSERT INTO invoice VALUES("1", "0");
-INSERT INTO invoice VALUES("2", "10");
-CREATE TABLE text_table (
+INSERT INTO t1 VALUES("1", "0");
+INSERT INTO t1 VALUES("2", "10");
+CREATE TABLE t2 (
text_id char(3) NOT NULL default '',
language_id char(3) NOT NULL default '',
text_data text,
PRIMARY KEY (text_id,language_id)
);
-INSERT INTO text_table VALUES("0", "EN", "0-EN");
-INSERT INTO text_table VALUES("0", "SV", "0-SV");
-INSERT INTO text_table VALUES("10", "EN", "10-EN");
-INSERT INTO text_table VALUES("10", "SV", "10-SV");
-SELECT invoice.id, invoice.text_id, text_table.text_data
-FROM invoice LEFT JOIN text_table
-ON invoice.text_id = text_table.text_id
-AND text_table.language_id = 'SV'
- WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%');
+INSERT INTO t2 VALUES("0", "EN", "0-EN");
+INSERT INTO t2 VALUES("0", "SV", "0-SV");
+INSERT INTO t2 VALUES("10", "EN", "10-EN");
+INSERT INTO t2 VALUES("10", "SV", "10-SV");
+SELECT t1.id, t1.text_id, t2.text_data
+FROM t1 LEFT JOIN t2
+ON t1.text_id = t2.text_id
+AND t2.language_id = 'SV'
+ WHERE (t1.id LIKE '%' OR t2.text_data LIKE '%');
id text_id text_data
1 0 0-SV
2 10 10-SV
-DROP TABLE invoice, text_table;
+DROP TABLE t1, t2;
+CREATE TABLE t0 (a0 int PRIMARY KEY);
+CREATE TABLE t1 (a1 int PRIMARY KEY);
+CREATE TABLE t2 (a2 int);
+CREATE TABLE t3 (a3 int);
+INSERT INTO t0 VALUES (1);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1), (2);
+INSERT INTO t3 VALUES (1), (2);
+SELECT * FROM t1 LEFT JOIN t2 ON a1=0;
+a1 a2
+1 NULL
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON a1=0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
+a1 a2 a3
+1 NULL NULL
+EXPLAIN SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2
+SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
+a0 a1 a2 a3
+1 1 NULL NULL
+EXPLAIN SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 system PRIMARY NULL NULL NULL 1
+1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2
+INSERT INTO t0 VALUES (0);
+INSERT INTO t1 VALUES (0);
+SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=5 WHERE a0=a1 AND a0=1;
+a0 a1 a2 a3
+1 1 NULL NULL
+EXPLAIN SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=5 WHERE a0=a1 AND a0=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t0 const PRIMARY PRIMARY 4 const 1 Using index
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2
+drop table t1,t2;
+create table t1 (a int, b int);
+insert into t1 values (1,1),(2,2),(3,3);
+create table t2 (a int, b int);
+insert into t2 values (1,1), (2,2);
+select * from t2 right join t1 on t2.a=t1.a;
+a b a b
+1 1 1 1
+2 2 2 2
+NULL NULL 3 3
+select straight_join * from t2 right join t1 on t2.a=t1.a;
+a b a b
+1 1 1 1
+2 2 2 2
+NULL NULL 3 3
+DROP TABLE t0,t1,t2,t3;
CREATE TABLE t1 (a int PRIMARY KEY, b int);
CREATE TABLE t2 (a int PRIMARY KEY, b int);
INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (4,2);
@@ -881,8 +949,61 @@ aaaaa
bbbbb
Warnings:
Warning 1260 2 line(s) were cut by GROUP_CONCAT()
+select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by a;
+group_concat(t1.b,t2.c)
+aaaaa
+bbbbb
+Warnings:
+Warning 1260 2 line(s) were cut by GROUP_CONCAT()
+select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by a;
+group_concat(t1.b,t2.c)
+aaaaa
+bbbbb
+Warnings:
+Warning 1260 2 line(s) were cut by GROUP_CONCAT()
drop table t1, t2;
set group_concat_max_len=default;
+create table t1 (gid smallint(5) unsigned not null, x int(11) not null, y int(11) not null, art int(11) not null, primary key (gid,x,y));
+insert t1 values (1, -5, -8, 2), (1, 2, 2, 1), (1, 1, 1, 1);
+create table t2 (gid smallint(5) unsigned not null, x int(11) not null, y int(11) not null, id int(11) not null, primary key (gid,id,x,y), key id (id));
+insert t2 values (1, -5, -8, 1), (1, 1, 1, 1), (1, 2, 2, 1);
+create table t3 ( set_id smallint(5) unsigned not null, id tinyint(4) unsigned not null, name char(12) not null, primary key (id,set_id));
+insert t3 values (0, 1, 'a'), (1, 1, 'b'), (0, 2, 'c'), (1, 2, 'd'), (1, 3, 'e'), (1, 4, 'f'), (1, 5, 'g'), (1, 6, 'h');
+explain select name from t1 left join t2 on t1.x = t2.x and t1.y = t2.y
+left join t3 on t1.art = t3.id where t2.id =1 and t2.x = -5 and t2.y =-8
+and t1.gid =1 and t2.gid =1 and t3.set_id =1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 10 const,const,const 1
+1 SIMPLE t2 const PRIMARY,id PRIMARY 14 const,const,const,const 1 Using index
+1 SIMPLE t3 const PRIMARY PRIMARY 3 const,const 1
+drop tables t1,t2,t3;
+CREATE TABLE t1 (EMPNUM INT, GRP INT);
+INSERT INTO t1 VALUES (0, 10);
+INSERT INTO t1 VALUES (2, 30);
+CREATE TABLE t2 (EMPNUM INT, NAME CHAR(5));
+INSERT INTO t2 VALUES (0, 'KERI');
+INSERT INTO t2 VALUES (9, 'BARRY');
+CREATE VIEW v1 AS
+SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS EMPNUM, NAME, GRP
+FROM t2 LEFT OUTER JOIN t1 ON t2.EMPNUM=t1.EMPNUM;
+SELECT * FROM v1;
+EMPNUM NAME GRP
+0 KERI 10
+9 BARRY NULL
+SELECT * FROM v1 WHERE EMPNUM < 10;
+EMPNUM NAME GRP
+0 KERI 10
+9 BARRY NULL
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (c11 int);
+CREATE TABLE t2 (c21 int);
+INSERT INTO t1 VALUES (30), (40), (50);
+INSERT INTO t2 VALUES (300), (400), (500);
+SELECT * FROM t1 LEFT JOIN t2 ON (c11=c21 AND c21=30) WHERE c11=40;
+c11 c21
+40 NULL
+DROP TABLE t1, t2;
CREATE TABLE t1 (a int PRIMARY KEY, b int);
CREATE TABLE t2 (a int PRIMARY KEY, b int);
INSERT INTO t1 VALUES (1,2), (2,1), (3,2), (4,3), (5,6), (6,5), (7,8), (8,7), (9,10);
@@ -1009,10 +1130,127 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using where
+1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b-2, t2.b, t2.b-1);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using where
+1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
+DROP TABLE t1,t2;
+DROP VIEW IF EXISTS v1,v2;
+DROP TABLE IF EXISTS t1,t2;
+CREATE TABLE t1 (a int);
+CREATE table t2 (b int);
+INSERT INTO t1 VALUES (1), (2), (3), (4), (1), (1), (3);
+INSERT INTO t2 VALUES (2), (3);
+CREATE VIEW v1 AS SELECT a FROM t1 JOIN t2 ON t1.a=t2.b;
+CREATE VIEW v2 AS SELECT b FROM t2 JOIN t1 ON t2.b=t1.a;
+SELECT v1.a, v2. b
+FROM v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3)
+GROUP BY v1.a;
+a b
+2 NULL
+3 3
+SELECT v1.a, v2. b
+FROM { OJ v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3) }
+GROUP BY v1.a;
+a b
+2 NULL
+3 3
+DROP VIEW v1,v2;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+INSERT INTO t2 VALUES (2), (3);
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1);
+a b
+1 NULL
+2 2
+3 3
+4 NULL
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1 OR 1);
+a b
+1 NULL
+2 2
+3 3
+4 NULL
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (0 OR 1);
+a b
+1 NULL
+2 2
+3 3
+4 NULL
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 2=2);
+a b
+1 NULL
+2 2
+3 3
+4 NULL
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 1=0);
+a b
+1 NULL
+2 2
+3 3
+4 NULL
+DROP TABLE t1,t2;
+CREATE TABLE t1 (
+f1 varchar(16) collate latin1_swedish_ci PRIMARY KEY,
+f2 varchar(16) collate latin1_swedish_ci
+);
+CREATE TABLE t2 (
+f1 varchar(16) collate latin1_swedish_ci PRIMARY KEY,
+f3 varchar(16) collate latin1_swedish_ci
+);
+INSERT INTO t1 VALUES ('bla','blah');
+INSERT INTO t2 VALUES ('bla','sheep');
+SELECT * FROM t1 JOIN t2 USING(f1) WHERE f1='Bla';
+f1 f2 f3
+bla blah sheep
+SELECT * FROM t1 LEFT JOIN t2 USING(f1) WHERE f1='bla';
+f1 f2 f3
+bla blah sheep
+SELECT * FROM t1 LEFT JOIN t2 USING(f1) WHERE f1='Bla';
+f1 f2 f3
+bla blah sheep
+DROP TABLE t1,t2;
+CREATE TABLE t1 (id int PRIMARY KEY, a varchar(8));
+CREATE TABLE t2 (id int NOT NULL, b int NOT NULL, INDEX idx(id));
+INSERT INTO t1 VALUES
+(1,'aaaaaaa'), (5,'eeeeeee'), (4,'ddddddd'), (2,'bbbbbbb'), (3,'ccccccc');
+INSERT INTO t2 VALUES
+(3,10), (2,20), (5,30), (3,20), (5,10), (3,40), (3,30), (2,10), (2,40);
+EXPLAIN
+SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists
+flush status;
+SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
+id a
+1 aaaaaaa
+4 ddddddd
+show status like 'Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 5
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 6
+DROP TABLE t1,t2;
+CREATE TABLE t1 (c int PRIMARY KEY, e int NOT NULL);
+INSERT INTO t1 VALUES (1,0), (2,1);
+CREATE TABLE t2 (d int PRIMARY KEY);
+INSERT INTO t2 VALUES (1), (2), (3);
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 index NULL PRIMARY 4 NULL 3 Using where; Using index; Not exists
+SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
+c e d
+1 0 NULL
+SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d<=>NULL;
+c e d
+1 0 NULL
DROP TABLE t1,t2;
diff --git a/mysql-test/r/key.result b/mysql-test/r/key.result
index 75fc469460e..2fc751c63bf 100644
--- a/mysql-test/r/key.result
+++ b/mysql-test/r/key.result
@@ -110,7 +110,11 @@ name_id name
SELECT * FROM t2 WHERE name='[T,U]_axpby';
name_id name
2 [T,U]_axpby
-drop table t1,t2;
+CREATE TABLE t3 SELECT * FROM t2 WHERE name='[T,U]_axpby';
+SELECT * FROM t2 WHERE name='[T,U]_axpby';
+name_id name
+2 [T,U]_axpby
+drop table t1,t2,t3;
create table t1
(
SEQNO numeric(12 ) not null,
@@ -155,8 +159,8 @@ CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
UNIQUE (c,i));
INSERT INTO t1 (c) VALUES (NULL),(NULL);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'c' at row 1
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'c' at row 2
+Warning 1048 Column 'c' cannot be null
+Warning 1048 Column 'c' cannot be null
SELECT * FROM t1;
c i
1
@@ -212,14 +216,14 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
explain select 1 from t1 where id =2 or id=3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
+1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 7 Using where; Using index
explain select name from t1 where id =2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
ALTER TABLE t1 DROP PRIMARY KEY, ADD INDEX (id);
explain select 1 from t1 where id =2;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref id id 4 const 1 Using where; Using index
+1 SIMPLE t1 ref id id 4 const 1 Using index
drop table t1;
CREATE TABLE t1 (numeropost mediumint(8) unsigned NOT NULL default '0', numreponse int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (numeropost,numreponse), UNIQUE KEY numreponse (numreponse));
INSERT INTO t1 (numeropost,numreponse) VALUES ('1','1'),('1','2'),('2','3'),('2','4');
@@ -332,13 +336,13 @@ UNIQUE i1idx (i1),
UNIQUE i2idx (i2));
desc t1;
Field Type Null Key Default Extra
-i1 int(11) PRI 0
-i2 int(11) UNI 0
+i1 int(11) NO PRI NULL
+i2 int(11) NO UNI NULL
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `i1` int(11) NOT NULL default '0',
- `i2` int(11) NOT NULL default '0',
+ `i1` int(11) NOT NULL,
+ `i2` int(11) NOT NULL,
UNIQUE KEY `i1idx` (`i1`),
UNIQUE KEY `i2idx` (`i2`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
@@ -359,3 +363,103 @@ c1 c2
2 Test String
3
Test String
+drop table t1;
+create table t1 (a varchar(10), b varchar(10), key(a(10),b(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(10) default NULL,
+ `b` varchar(10) default NULL,
+ KEY `a` (`a`,`b`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify b varchar(20);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(10) default NULL,
+ `b` varchar(20) default NULL,
+ KEY `a` (`a`,`b`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify a varchar(20);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varchar(20) default NULL,
+ `b` varchar(20) default NULL,
+ KEY `a` (`a`,`b`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (a int not null primary key, b varchar(20) not null unique);
+desc t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+b varchar(20) NO UNI NULL
+drop table t1;
+create table t1 (a int not null primary key, b int not null unique);
+desc t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+b int(11) NO UNI NULL
+drop table t1;
+create table t1 (a int not null primary key, b varchar(20) not null, unique (b(10)));
+desc t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+b varchar(20) NO UNI NULL
+drop table t1;
+create table t1 (a int not null primary key, b varchar(20) not null, c varchar(20) not null, unique(b(10),c(10)));
+desc t1;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+b varchar(20) NO MUL NULL
+c varchar(20) NO NULL
+drop table t1;
+CREATE TABLE t1 (
+a INTEGER auto_increment PRIMARY KEY,
+b INTEGER NOT NULL,
+c INTEGER NOT NULL,
+d CHAR(64)
+);
+CREATE TABLE t2 (
+a INTEGER auto_increment PRIMARY KEY,
+b INTEGER NOT NULL,
+c SMALLINT NOT NULL,
+d DATETIME NOT NULL,
+e SMALLINT NOT NULL,
+f INTEGER NOT NULL,
+g INTEGER NOT NULL,
+h SMALLINT NOT NULL,
+i INTEGER NOT NULL,
+j INTEGER NOT NULL,
+UNIQUE INDEX (b),
+INDEX (b, d, e, f, g, h, i, j, c),
+INDEX (c)
+);
+INSERT INTO t2 VALUES
+(NULL, 1, 254, '1000-01-01 00:00:00', 257, 0, 0, 0, 0, 0),
+(NULL, 2, 1, '2004-11-30 12:00:00', 1, 0, 0, 0, 0, 0),
+(NULL, 3, 1, '2004-11-30 12:00:00', 1, 0, 0, 2, -21600, 0),
+(NULL, 4, 1, '2004-11-30 12:00:00', 1, 0, 0, 2, -10800, 0),
+(NULL, 5, 1, '2004-11-30 12:00:00', 1, 0, 0, 5, -10800, 0),
+(NULL, 6, 1, '2004-11-30 12:00:00', 102, 0, 0, 0, 0, 0),
+(NULL, 7, 1, '2004-11-30 12:00:00', 105, 2, 0, 0, 0, 0),
+(NULL, 8, 1, '2004-11-30 12:00:00', 105, 10, 0, 0, 0, 0);
+INSERT INTO t1 (b, c, d) VALUES
+(3388000, -553000, NULL),
+(3388000, -553000, NULL);
+SELECT *
+FROM t2 c JOIN t1 pa ON c.b = pa.a
+WHERE c.c = 1
+ORDER BY c.b, c.d
+;
+a b c d e f g h i j a b c d
+2 2 1 2004-11-30 12:00:00 1 0 0 0 0 0 2 3388000 -553000 NULL
+DROP TABLE t1, t2;
+CREATE TABLE t1( a TINYINT, KEY(a) ) ENGINE=MyISAM;
+INSERT INTO t1 VALUES( 1 );
+ALTER TABLE t1 DISABLE KEYS;
+EXPLAIN SELECT MAX(a) FROM t1 FORCE INDEX(a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 1
+DROP TABLE t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/key_cache.result b/mysql-test/r/key_cache.result
index d7f34268675..08d8059f61b 100644
--- a/mysql-test/r/key_cache.result
+++ b/mysql-test/r/key_cache.result
@@ -191,7 +191,7 @@ cache index t1 in unknown_key_cache;
ERROR HY000: Unknown key cache 'unknown_key_cache'
cache index t1 key (unknown_key) in keycache1;
Table Op Msg_type Msg_text
-test.t1 assign_to_keycache error Key 'unknown_key' doesn't exist in table 't1'
+test.t1 assign_to_keycache Error Key 'unknown_key' doesn't exist in table 't1'
test.t1 assign_to_keycache status Operation failed
select @@keycache2.key_buffer_size;
@@keycache2.key_buffer_size
@@ -282,12 +282,15 @@ insert t1 values ('aaabbb');
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
+set @my_key_cache_block_size= @@global.key_cache_block_size;
set GLOBAL key_cache_block_size=2048;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
+set global key_cache_block_size= @my_key_cache_block_size;
CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY);
+SET @my_key_cache_block_size= @@global.key_cache_block_size;
SET GLOBAL key_cache_block_size=1536;
INSERT INTO t1 VALUES (1);
SELECT @@key_cache_block_size;
@@ -329,3 +332,37 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1,t2;
+set global key_cache_block_size= @my_key_cache_block_size;
+set @@global.key_buffer_size=0;
+Warnings:
+Warning 1438 Cannot drop default keycache
+select @@global.key_buffer_size;
+@@global.key_buffer_size
+2097152
+SET @bug28478_key_cache_block_size= @@global.key_cache_block_size;
+SET GLOBAL key_cache_block_size= 1536;
+CREATE TABLE t1 (
+id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+c1 CHAR(150),
+c2 CHAR(150),
+c3 CHAR(150),
+KEY(c1, c2, c3)
+) ENGINE= MyISAM;
+INSERT INTO t1 (c1, c2, c3) VALUES
+('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
+('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
+('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
+('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
+('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
+('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
+INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
+INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
+INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+SHOW VARIABLES LIKE 'key_cache_block_size';
+Variable_name Value
+key_cache_block_size 1536
+SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
+DROP TABLE t1;
diff --git a/mysql-test/r/keywords.result b/mysql-test/r/keywords.result
index c218379110f..c14ae584c86 100644
--- a/mysql-test/r/keywords.result
+++ b/mysql-test/r/keywords.result
@@ -1,12 +1,14 @@
drop table if exists t1;
-create table t1 (time time, date date, timestamp timestamp);
-insert into t1 values ("12:22:22","97:02:03","1997-01-02");
+create table t1 (time time, date date, timestamp timestamp,
+quarter int, week int, year int, timestampadd int, timestampdiff int);
+insert into t1 values ("12:22:22","97:02:03","1997-01-02",1,2,3,4,5);
select * from t1;
-time date timestamp
-12:22:22 1997-02-03 1997-01-02 00:00:00
-select t1.time+0,t1.date+0,t1.timestamp+0,concat(date," ",time) from t1;
-t1.time+0 t1.date+0 t1.timestamp+0 concat(date," ",time)
-122222 19970203 19970102000000 1997-02-03 12:22:22
+time date timestamp quarter week year timestampadd timestampdiff
+12:22:22 1997-02-03 1997-01-02 00:00:00 1 2 3 4 5
+select t1.time+0,t1.date+0,t1.timestamp+0,concat(date," ",time),
+t1.quarter+t1.week, t1.year+timestampadd, timestampdiff from t1;
+t1.time+0 t1.date+0 t1.timestamp+0 concat(date," ",time) t1.quarter+t1.week t1.year+timestampadd timestampdiff
+122222 19970203 19970102000000 1997-02-03 12:22:22 3 7 5
drop table t1;
create table events(binlog int);
insert into events values(1);
@@ -14,3 +16,16 @@ select events.binlog from events;
binlog
1
drop table events;
+create table t1 (connection int, b int);
+create procedure p1()
+begin
+declare connection int;
+select max(t1.connection) into connection from t1;
+select concat("max=",connection) 'p1';
+end|
+insert into t1 (connection) values (1);
+call p1();
+p1
+max=1
+drop procedure p1;
+drop table t1;
diff --git a/mysql-test/r/kill.result b/mysql-test/r/kill.result
index 2a88f1ce3a8..7ddabe74c5f 100644
--- a/mysql-test/r/kill.result
+++ b/mysql-test/r/kill.result
@@ -5,8 +5,6 @@ select ((@id := kill_id) - kill_id) from t1;
((@id := kill_id) - kill_id)
0
kill @id;
-select 1;
-Got one of the listed errors
select ((@id := kill_id) - kill_id) from t1;
((@id := kill_id) - kill_id)
0
@@ -24,10 +22,106 @@ create table t2 (id int unsigned not null);
insert into t2 select id from t1;
create table t3 (kill_id int);
insert into t3 values(connection_id());
-select id from t1 where id in (select distinct id from t2);
+select id from t1 where id in (select distinct a.id from t2 a, t2 b, t2 c, t2 d group by a.id, b.id, c.id, d.id having a.id between 10 and 20);
select ((@id := kill_id) - kill_id) from t3;
((@id := kill_id) - kill_id)
0
kill @id;
Got one of the listed errors
drop table t1, t2, t3;
+select get_lock("a", 10);
+get_lock("a", 10)
+1
+select get_lock("a", 10);
+get_lock("a", 10)
+NULL
+select 1;
+1
+1
+select RELEASE_LOCK("a");
+RELEASE_LOCK("a")
+1
+create table t1(f1 int);
+create function bug27563() returns int(11)
+deterministic
+begin
+declare continue handler for sqlstate '70100' set @a:= 'killed';
+declare continue handler for sqlexception set @a:= 'exception';
+set @a= get_lock("lock27563", 10);
+return 1;
+end|
+select get_lock("lock27563",10);
+get_lock("lock27563",10)
+1
+insert into t1 values (bug27563());
+ERROR 70100: Query execution was interrupted
+select @a;
+@a
+NULL
+select * from t1;
+f1
+insert into t1 values(0);
+update t1 set f1= bug27563();
+ERROR 70100: Query execution was interrupted
+select @a;
+@a
+NULL
+select * from t1;
+f1
+0
+insert into t1 values(1);
+delete from t1 where bug27563() is null;
+ERROR 70100: Query execution was interrupted
+select @a;
+@a
+NULL
+select * from t1;
+f1
+0
+1
+select * from t1 where f1= bug27563();
+ERROR 70100: Query execution was interrupted
+select @a;
+@a
+NULL
+create procedure proc27563()
+begin
+declare continue handler for sqlstate '70100' set @a:= 'killed';
+declare continue handler for sqlexception set @a:= 'exception';
+select get_lock("lock27563",10);
+select "shouldn't be selected";
+end|
+call proc27563();
+get_lock("lock27563",10)
+NULL
+ERROR 70100: Query execution was interrupted
+select @a;
+@a
+NULL
+create table t2 (f2 int);
+create trigger trg27563 before insert on t1 for each row
+begin
+declare continue handler for sqlstate '70100' set @a:= 'killed';
+declare continue handler for sqlexception set @a:= 'exception';
+set @a:= get_lock("lock27563",10);
+insert into t2 values(1);
+end|
+insert into t1 values(2),(3);
+ERROR 70100: Query execution was interrupted
+select @a;
+@a
+NULL
+select * from t1;
+f1
+0
+1
+select * from t2;
+f2
+select release_lock("lock27563");
+release_lock("lock27563")
+1
+drop table t1, t2;
+drop function bug27563;
+drop procedure proc27563;
+PREPARE stmt FROM 'EXPLAIN SELECT * FROM t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40 WHERE a1=a2 AND a2=a3 AND a3=a4 AND a4=a5 AND a5=a6 AND a6=a7 AND a7=a8 AND a8=a9 AND a9=a10 AND a10=a11 AND a11=a12 AND a12=a13 AND a13=a14 AND a14=a15 AND a15=a16 AND a16=a17 AND a17=a18 AND a18=a19 AND a19=a20 AND a20=a21 AND a21=a22 AND a22=a23 AND a23=a24 AND a24=a25 AND a25=a26 AND a26=a27 AND a27=a28 AND a28=a29 AND a29=a30 AND a30=a31 AND a31=a32 AND a32=a33 AND a33=a34 AND a34=a35 AND a35=a36 AND a36=a37 AND a37=a38 AND a38=a39 AND a39=a40 ';
+EXECUTE stmt;
diff --git a/mysql-test/r/limit.result b/mysql-test/r/limit.result
index 92803ec3449..01d7d7ca218 100644
--- a/mysql-test/r/limit.result
+++ b/mysql-test/r/limit.result
@@ -1,5 +1,5 @@
drop table if exists t1;
-create table t1 (a int primary key, b int not null);
+create table t1 (a int not null default 0 primary key, b int not null default 0);
insert into t1 () values ();
insert into t1 values (1,1),(2,1),(3,1);
update t1 set a=4 where b=1 limit 1;
@@ -90,3 +90,15 @@ id select_type table type possible_keys key key_len ref rows Extra
select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
28
+drop table t1;
+prepare s from "select 1 limit ?";
+set @a='qwe';
+execute s using @a;
+ERROR HY000: Incorrect arguments to EXECUTE
+prepare s from "select 1 limit 1, ?";
+execute s using @a;
+ERROR HY000: Incorrect arguments to EXECUTE
+prepare s from "select 1 limit ?, ?";
+execute s using @a, @a;
+ERROR HY000: Incorrect arguments to EXECUTE
+End of 5.0 tests
diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result
index 83a0788b793..7fff2700779 100644
--- a/mysql-test/r/loaddata.result
+++ b/mysql-test/r/loaddata.result
@@ -1,6 +1,6 @@
-drop table if exists t1,t2;
+drop table if exists t1, t2;
create table t1 (a date, b date, c date not null, d date);
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',';
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',';
Warnings:
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'c' at row 1
@@ -8,7 +8,7 @@ Warning 1265 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'a' at row 2
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 2
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
SELECT * from t1;
a b c d
0000-00-00 NULL 0000-00-00 0000-00-00
@@ -16,7 +16,7 @@ a b c d
2003-03-03 2003-03-03 2003-03-03 NULL
2003-03-03 2003-03-03 2003-03-03 NULL
truncate table t1;
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
Warnings:
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'd' at row 1
@@ -29,7 +29,7 @@ NULL 0000-00-00 0000-00-00 0000-00-00
NULL 2003-03-03 2003-03-03 NULL
drop table t1;
create table t1 (a text, b text);
-load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
Warnings:
Warning 1261 Row 3 doesn't contain data for all columns
select concat('|',a,'|'), concat('|',b,'|') from t1;
@@ -41,11 +41,11 @@ Field 3,'Field 4|
|Field 6| | 'Field 7'|
drop table t1;
create table t1 (a int, b char(10));
-load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
Warnings:
-Warning 1265 Data truncated for column 'a' at row 3
+Warning 1366 Incorrect integer value: 'error ' for column 'a' at row 3
Warning 1262 Row 3 was truncated; it contained more data than there were input columns
-Warning 1265 Data truncated for column 'a' at row 5
+Warning 1366 Incorrect integer value: 'wrong end ' for column 'a' at row 5
Warning 1262 Row 5 was truncated; it contained more data than there were input columns
select * from t1;
a b
@@ -55,9 +55,10 @@ a b
3 row 3
0 1234567890
truncate table t1;
-load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
Warnings:
-Warning 1265 Data truncated for column 'a' at row 4
+Warning 1366 Incorrect integer value: '
+' for column 'a' at row 4
Warning 1261 Row 4 doesn't contain data for all columns
select * from t1;
a b
@@ -78,7 +79,7 @@ id
SET @@SQL_MODE=@OLD_SQL_MODE;
drop table t1;
create table t1 (a varchar(20), b varchar(20));
-load data infile '../../std_data/loaddata5.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
+load data infile '../std_data_ln/loaddata_dq.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
select * from t1;
a b
field1 field2
@@ -116,7 +117,7 @@ id c1
14 .rr.
15 .rrr.
16 .rrrr.
-SELECT * INTO OUTFILE 'MYSQL_TEST_DIR/var/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
+SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
r1r rrrr
r2r rrrrrr
r3r rrrrrrrr
@@ -133,9 +134,121 @@ r13r r.rr.r
r14r r.rrrr.r
r15r r.rrrrrr.r
r16r r.rrrrrrrr.r
-LOAD DATA INFILE 'MYSQL_TEST_DIR/var/tmp/t1' INTO TABLE t2 FIELDS ENCLOSED BY 'r';
+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;
id c1 c2
SELECT t1.id, c1, c2 FROM t1 RIGHT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
id c1 c2
DROP TABLE t1,t2;
+create table t1 (a int default 100, b int, c varchar(60));
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set b=@b+10, c=concat("b=",@b);
+select * from t1;
+a b c
+NULL 20 b=10
+NULL 25 b=15
+truncate table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set c= if(a is null,"oops",a);
+select * from t1;
+a b c
+NULL NULL oops
+NULL NULL oops
+truncate table t1;
+set @c:=123;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, b) set c= if(@a is null,@c,b);
+select * from t1;
+a b c
+100 10 123
+100 15 123
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, @b);
+select * from t1;
+a b c
+100 10 123
+100 15 123
+100 NULL NULL
+100 NULL NULL
+select @a, @b;
+@a @b
+NULL 15
+truncate table t1;
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, b) set c="Wow";
+select * from t1;
+a b c
+1 2 Wow
+3 4 Wow
+5 6 Wow
+truncate table t1;
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, b) set c=concat(a,"+",b,"+",@c,"+",b,"+",if(c is null,"NIL",c));
+select * from t1;
+a b c
+1 2 1+2+123+2+NIL
+3 4 3+4+123+4+NIL
+5 6 5+6+123+6+NIL
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, @b);
+ERROR HY000: Can't load value from file with fixed size rows to variable
+create table t2 (num int primary key, str varchar(10));
+insert into t2 values (10,'Ten'), (15,'Fifteen');
+truncate table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@dummy,@n) set a= @n, c= (select str from t2 where num=@n);
+select * from t1;
+a b c
+10 NULL Ten
+15 NULL Fifteen
+show variables like "secure_file_pri%";
+Variable_name Value
+secure_file_priv MYSQLTEST_VARDIR/
+select @@secure_file_priv;
+@@secure_file_priv
+MYSQLTEST_VARDIR/
+set @@secure_file_priv= 0;
+ERROR HY000: Variable 'secure_file_priv' is a read only variable
+truncate table t1;
+load data infile 'MYSQL_TEST_DIR/t/loaddata.test' into table t1;
+ERROR HY000: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
+select * from t1;
+a b c
+select load_file("MYSQL_TEST_DIR/t/loaddata.test");
+load_file("MYSQL_TEST_DIR/t/loaddata.test")
+NULL
+drop table t1, t2;
+create table t1(f1 int);
+insert into t1 values(1),(null);
+create table t2(f2 int auto_increment primary key);
+select * from t2;
+f2
+1
+2
+SET @@SQL_MODE=@OLD_SQL_MODE;
+drop table t1,t2;
+create table t1(f1 int, f2 timestamp not null default current_timestamp);
+create table t2(f1 int);
+insert into t2 values(1),(2);
+Warnings:
+Warning 1261 Row 1 doesn't contain data for all columns
+Warning 1261 Row 2 doesn't contain data for all columns
+select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
+f1
+1
+2
+delete from t1;
+Warnings:
+Warning 1261 Row 1 doesn't contain data for all columns
+Warning 1261 Row 2 doesn't contain data for all columns
+select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
+f1
+1
+2
+drop table t1,t2;
+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;
+c1 c2 c3 c4
+10 1970-02-01 01:02:03 1.1e-100 1.1e+100
+SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY '-' FROM t1;
+-10- -1970\-02\-01 01:02:03- -1.1e\-100- -1.1e+100-
+EOF
+TRUNCATE t1;
+LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 FIELDS ENCLOSED BY '-';
+SELECT * FROM t1;
+c1 c2 c3 c4
+10 1970-02-01 01:02:03 1.1e-100 1.1e+100
+DROP TABLE t1;
diff --git a/mysql-test/r/loaddata_autocom_innodb.result b/mysql-test/r/loaddata_autocom_innodb.result
new file mode 100644
index 00000000000..10da6b5dde7
--- /dev/null
+++ b/mysql-test/r/loaddata_autocom_innodb.result
@@ -0,0 +1,21 @@
+SET SESSION STORAGE_ENGINE = InnoDB;
+drop table if exists t1;
+create table t1 (a text, b text);
+start transaction;
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+Warnings:
+Warning 1261 Row 3 doesn't contain data for all columns
+commit;
+select count(*) from t1;
+count(*)
+4
+truncate table t1;
+start transaction;
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+Warnings:
+Warning 1261 Row 3 doesn't contain data for all columns
+rollback;
+select count(*) from t1;
+count(*)
+0
+drop table t1;
diff --git a/mysql-test/r/loaddata_autocom_ndb.result b/mysql-test/r/loaddata_autocom_ndb.result
new file mode 100644
index 00000000000..94e5f825fa2
--- /dev/null
+++ b/mysql-test/r/loaddata_autocom_ndb.result
@@ -0,0 +1,23 @@
+SET SESSION STORAGE_ENGINE = ndbcluster;
+drop table if exists t1;
+create table t1 (a text, b text);
+start transaction;
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+Warnings:
+Warning 1261 Row 3 doesn't contain data for all columns
+commit;
+select count(*) from t1;
+count(*)
+4
+truncate table t1;
+start transaction;
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+Warnings:
+Warning 1261 Row 3 doesn't contain data for all columns
+rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+select count(*) from t1;
+count(*)
+4
+drop table t1;
diff --git a/mysql-test/r/lock.result b/mysql-test/r/lock.result
index 2fe03b9fc14..a5a78ecc986 100644
--- a/mysql-test/r/lock.result
+++ b/mysql-test/r/lock.result
@@ -40,8 +40,9 @@ test.t1 check status OK
lock tables t1 write;
check table t2;
Table Op Msg_type Msg_text
-test.t2 check error Table 't2' was not locked with LOCK TABLES
-insert into t1 select nr from t1;
+test.t2 check Error Table 't2' was not locked with LOCK TABLES
+test.t2 check error Corrupt
+insert into t1 select index1,nr from t1;
ERROR HY000: Table 't1' was not locked with LOCK TABLES
unlock tables;
lock tables t1 write, t1 as t1_alias read;
diff --git a/mysql-test/r/lock_multi.result b/mysql-test/r/lock_multi.result
index 59b683b1917..af49e1a27dc 100644
--- a/mysql-test/r/lock_multi.result
+++ b/mysql-test/r/lock_multi.result
@@ -36,3 +36,55 @@ insert t1 select * from t2;
drop table t2;
ERROR 42S02: Table 'test.t2' doesn't exist
drop table t1;
+create table t1(a int);
+lock tables t1 write;
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) YES NULL
+unlock tables;
+drop table t1;
+CREATE DATABASE mysqltest_1;
+FLUSH TABLES WITH READ LOCK;
+DROP DATABASE mysqltest_1;
+DROP DATABASE mysqltest_1;
+ERROR HY000: Can't execute the query because you have a conflicting read lock
+UNLOCK TABLES;
+DROP DATABASE mysqltest_1;
+ERROR HY000: Can't drop database 'mysqltest_1'; database doesn't exist
+use mysql;
+LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE;
+FLUSH TABLES;
+use mysql;
+SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1;
+OPTIMIZE TABLES columns_priv, db, host, user;
+Table Op Msg_type Msg_text
+mysql.columns_priv optimize status OK
+mysql.db optimize status OK
+mysql.host optimize status OK
+mysql.user optimize status OK
+UNLOCK TABLES;
+Select_priv
+N
+use test;
+use test;
+CREATE TABLE t1 (c1 int);
+LOCK TABLE t1 WRITE;
+FLUSH TABLES WITH READ LOCK;
+CREATE TABLE t2 (c1 int);
+UNLOCK TABLES;
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+CREATE TABLE t1 (c1 int);
+LOCK TABLE t1 WRITE;
+FLUSH TABLES WITH READ LOCK;
+CREATE TABLE t2 AS SELECT * FROM t1;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+UNLOCK TABLES;
+UNLOCK TABLES;
+DROP TABLE t1;
+create table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb;
+lock tables t1 write;
+alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //
+alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //
+unlock tables;
+drop table t1;
diff --git a/mysql-test/r/long_tmpdir.result b/mysql-test/r/long_tmpdir.result
new file mode 100644
index 00000000000..7e6dd34ced1
--- /dev/null
+++ b/mysql-test/r/long_tmpdir.result
@@ -0,0 +1,3 @@
+create view v1 as select table_name from information_schema.tables;
+drop view v1;
+End of 5.0 tests
diff --git a/mysql-test/r/lowercase1.require b/mysql-test/r/lowercase1.require
new file mode 100644
index 00000000000..0341f838f7b
--- /dev/null
+++ b/mysql-test/r/lowercase1.require
@@ -0,0 +1,2 @@
+Variable_name Value
+lower_case_table_names 1
diff --git a/mysql-test/r/lowercase_fs_off.result b/mysql-test/r/lowercase_fs_off.result
index f610b959a47..ecb21261987 100644
--- a/mysql-test/r/lowercase_fs_off.result
+++ b/mysql-test/r/lowercase_fs_off.result
@@ -8,4 +8,5 @@ create database d2;
ERROR 42000: Access denied for user 'sample'@'localhost' to database 'd2'
create database D1;
ERROR 42000: Access denied for user 'sample'@'localhost' to database 'D1'
+drop user 'sample'@'localhost';
drop database if exists d1;
diff --git a/mysql-test/r/lowercase_mixed_tmpdir.result b/mysql-test/r/lowercase_mixed_tmpdir.result
new file mode 100644
index 00000000000..e11b5e4c286
--- /dev/null
+++ b/mysql-test/r/lowercase_mixed_tmpdir.result
@@ -0,0 +1,6 @@
+drop table if exists t1;
+create table t1 (id int) engine=myisam;
+insert into t1 values (1);
+create temporary table t2 select * from t1;
+drop temporary table t2;
+drop table t1;
diff --git a/mysql-test/r/lowercase_table.result b/mysql-test/r/lowercase_table.result
index ef379cebaa9..6df3cf61ddb 100644
--- a/mysql-test/r/lowercase_table.result
+++ b/mysql-test/r/lowercase_table.result
@@ -1,6 +1,7 @@
drop table if exists t1,t2,t3,t4;
drop table if exists t0,t5,t6,t7,t8,t9;
drop database if exists mysqltest;
+drop view if exists v0, v1, v2, v3, v4;
create table T1 (id int primary key, Word varchar(40) not null, Index(Word));
create table t4 (id int primary key, Word varchar(40) not null);
INSERT INTO T1 VALUES (1, 'a'), (2, 'b'), (3, 'c');
@@ -83,3 +84,27 @@ create table t2 like T1;
drop table t1, t2;
show tables;
Tables_in_test
+set names utf8;
+drop table if exists Ä°,Ä°Ä°;
+create table Ä° (s1 int);
+show create table Ä°;
+Table Create Table
+Ä° CREATE TABLE `i` (
+ `s1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show tables;
+Tables_in_test
+i
+drop table Ä°;
+create table Ä°Ä° (s1 int);
+show create table Ä°Ä°;
+Table Create Table
+Ä°Ä° CREATE TABLE `ii` (
+ `s1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show tables;
+Tables_in_test
+ii
+drop table Ä°Ä°;
+set names latin1;
+End of 5.0 tests
diff --git a/mysql-test/r/lowercase_table2.result b/mysql-test/r/lowercase_table2.result
index 44235cbf900..e369fb7e482 100644
--- a/mysql-test/r/lowercase_table2.result
+++ b/mysql-test/r/lowercase_table2.result
@@ -165,3 +165,12 @@ create table t1Aa (col1 int);
select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
col1
drop table t2aA, t1Aa;
+create database mysqltest_LC2;
+use mysqltest_LC2;
+create table myUC (i int);
+select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES
+where TABLE_SCHEMA ='mysqltest_LC2';
+TABLE_SCHEMA TABLE_NAME
+mysqltest_LC2 myUC
+use test;
+drop database mysqltest_LC2;
diff --git a/mysql-test/r/lowercase_table3.result b/mysql-test/r/lowercase_table3.result
index 2c31936f89e..995a2c0d08a 100644
--- a/mysql-test/r/lowercase_table3.result
+++ b/mysql-test/r/lowercase_table3.result
@@ -6,5 +6,5 @@ drop table t1;
flush tables;
CREATE TABLE t1 (a int) ENGINE=INNODB;
SELECT * from T1;
-ERROR HY000: Got error 1 from storage engine
+ERROR 42S02: Table 'test.T1' doesn't exist
drop table t1;
diff --git a/mysql-test/r/lowercase_table_grant.result b/mysql-test/r/lowercase_table_grant.result
index 3889bd418db..c3813d57074 100644
--- a/mysql-test/r/lowercase_table_grant.result
+++ b/mysql-test/r/lowercase_table_grant.result
@@ -6,8 +6,8 @@ Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
select * from db where user = 'mysqltest_1';
-Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv
-localhost mysqltest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y
+Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv
+localhost mysqltest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y
update db set db = 'MYSQLtest' where db = 'mysqltest' and user = 'mysqltest_1' and host = 'localhost';
flush privileges;
show grants for mysqltest_1@localhost;
@@ -15,8 +15,8 @@ Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
select * from db where user = 'mysqltest_1';
-Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv
-localhost MYSQLtest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y
+Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv
+localhost MYSQLtest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y
delete from db where db = 'MYSQLtest' and user = 'mysqltest_1' and host = 'localhost';
flush privileges;
drop user mysqltest_1@localhost;
diff --git a/mysql-test/r/lowercase_view.result b/mysql-test/r/lowercase_view.result
new file mode 100644
index 00000000000..f09725dafcb
--- /dev/null
+++ b/mysql-test/r/lowercase_view.result
@@ -0,0 +1,133 @@
+drop table if exists t1Aa,t2Aa,v1Aa,v2Aa;
+drop view if exists t1Aa,t2Aa,v1Aa,v2Aa;
+drop database if exists MySQLTest;
+create database MySQLTest;
+use MySQLTest;
+create table TaB (Field int);
+create view ViE as select * from TAb;
+show create table VIe;
+View Create View
+vie CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vie` AS select `tab`.`Field` AS `Field` from `tab`
+drop database MySQLTest;
+use test;
+create table t1Aa (col1 int);
+create table t2aA (col1 int);
+create view v1Aa as select * from t1aA;
+create view v2aA as select * from v1aA;
+create view v3Aa as select v2Aa.col1 from v2aA,t2Aa where v2Aa.col1 = t2aA.col1;
+update v2aA set col1 = (select max(col1) from v1Aa);
+ERROR HY000: The definition of table 'v1Aa' prevents operation UPDATE on table 'v2aA'.
+update v2Aa set col1 = (select max(col1) from t1Aa);
+ERROR HY000: The definition of table 'v2Aa' prevents operation UPDATE on table 'v2Aa'.
+update v2aA set col1 = (select max(col1) from v2Aa);
+ERROR HY000: You can't specify target table 'v2aA' for update in FROM clause
+update v2aA,t2Aa set v2Aa.col1 = (select max(col1) from v1aA) where v2aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1aA' prevents operation UPDATE on table 'v2aA'.
+update t1aA,t2Aa set t1Aa.col1 = (select max(col1) from v1Aa) where t1aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1Aa' prevents operation UPDATE on table 't1aA'.
+update v1aA,t2Aa set v1Aa.col1 = (select max(col1) from v1aA) where v1Aa.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 'v1aA' for update in FROM clause
+update t2Aa,v2Aa set v2aA.col1 = (select max(col1) from v1aA) where v2Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1aA' prevents operation UPDATE on table 't2Aa'.
+update t2Aa,t1Aa set t1aA.col1 = (select max(col1) from v1Aa) where t1Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1Aa' prevents operation UPDATE on table 't2Aa'.
+update t2Aa,v1aA set v1Aa.col1 = (select max(col1) from v1aA) where v1Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1aA' prevents operation UPDATE on table 't2Aa'.
+update v2aA,t2Aa set v2Aa.col1 = (select max(col1) from t1aA) where v2aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2aA' prevents operation UPDATE on table 'v2aA'.
+update t1Aa,t2Aa set t1aA.col1 = (select max(col1) from t1Aa) where t1aA.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 't1Aa' for update in FROM clause
+update v1aA,t2Aa set v1Aa.col1 = (select max(col1) from t1Aa) where v1aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1aA' prevents operation UPDATE on table 'v1aA'.
+update t2Aa,v2Aa set v2aA.col1 = (select max(col1) from t1aA) where v2Aa.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 't2Aa' for update in FROM clause
+update t2Aa,t1Aa set t1aA.col1 = (select max(col1) from t1Aa) where t1aA.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 't2Aa' for update in FROM clause
+update t2Aa,v1Aa set v1aA.col1 = (select max(col1) from t1Aa) where v1Aa.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 't2Aa' for update in FROM clause
+update v2aA,t2Aa set v2Aa.col1 = (select max(col1) from v2aA) where v2Aa.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 'v2aA' for update in FROM clause
+update t1aA,t2Aa set t1Aa.col1 = (select max(col1) from v2aA) where t1aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2aA' prevents operation UPDATE on table 't1aA'.
+update v1aA,t2Aa set v1Aa.col1 = (select max(col1) from v2Aa) where v1aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2Aa' prevents operation UPDATE on table 'v1aA'.
+update t2Aa,v2aA set v2Aa.col1 = (select max(col1) from v2aA) where v2Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2aA' prevents operation UPDATE on table 't2Aa'.
+update t2Aa,t1Aa set t1aA.col1 = (select max(col1) from v2aA) where t1Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2aA' prevents operation UPDATE on table 't2Aa'.
+update t2Aa,v1Aa set v1aA.col1 = (select max(col1) from v2Aa) where v1Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2Aa' prevents operation UPDATE on table 't2Aa'.
+update v3aA set v3Aa.col1 = (select max(col1) from v1aA);
+ERROR HY000: The definition of table 'v1aA' prevents operation UPDATE on table 'v3aA'.
+update v3aA set v3Aa.col1 = (select max(col1) from t1aA);
+ERROR HY000: The definition of table 'v3aA' prevents operation UPDATE on table 'v3aA'.
+update v3aA set v3Aa.col1 = (select max(col1) from v2aA);
+ERROR HY000: The definition of table 'v2aA' prevents operation UPDATE on table 'v3aA'.
+update v3aA set v3Aa.col1 = (select max(col1) from v3aA);
+ERROR HY000: You can't specify target table 'v3aA' for update in FROM clause
+delete from v2Aa where col1 = (select max(col1) from v1Aa);
+ERROR HY000: The definition of table 'v1Aa' prevents operation DELETE on table 'v2Aa'.
+delete from v2aA where col1 = (select max(col1) from t1Aa);
+ERROR HY000: The definition of table 'v2aA' prevents operation DELETE on table 'v2aA'.
+delete from v2Aa where col1 = (select max(col1) from v2aA);
+ERROR HY000: You can't specify target table 'v2Aa' for update in FROM clause
+delete v2Aa from v2aA,t2Aa where (select max(col1) from v1aA) > 0 and v2Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1aA' prevents operation DELETE on table 'v2aA'.
+delete t1aA from t1Aa,t2Aa where (select max(col1) from v1Aa) > 0 and t1aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1Aa' prevents operation DELETE on table 't1Aa'.
+delete v1aA from v1Aa,t2Aa where (select max(col1) from v1aA) > 0 and v1Aa.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 'v1Aa' for update in FROM clause
+delete v2aA from v2Aa,t2Aa where (select max(col1) from t1Aa) > 0 and v2aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2Aa' prevents operation DELETE on table 'v2Aa'.
+delete t1aA from t1Aa,t2Aa where (select max(col1) from t1aA) > 0 and t1Aa.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 't1Aa' for update in FROM clause
+delete v1aA from v1Aa,t2Aa where (select max(col1) from t1aA) > 0 and v1aA.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v1Aa' prevents operation DELETE on table 'v1Aa'.
+delete v2Aa from v2aA,t2Aa where (select max(col1) from v2Aa) > 0 and v2aA.col1 = t2aA.col1;
+ERROR HY000: You can't specify target table 'v2aA' for update in FROM clause
+delete t1Aa from t1aA,t2Aa where (select max(col1) from v2Aa) > 0 and t1Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2Aa' prevents operation DELETE on table 't1aA'.
+delete v1Aa from v1aA,t2Aa where (select max(col1) from v2aA) > 0 and v1Aa.col1 = t2aA.col1;
+ERROR HY000: The definition of table 'v2aA' prevents operation DELETE on table 'v1aA'.
+insert into v2Aa values ((select max(col1) from v1aA));
+ERROR HY000: The definition of table 'v1aA' prevents operation INSERT on table 'v2Aa'.
+insert into t1aA values ((select max(col1) from v1Aa));
+ERROR HY000: The definition of table 'v1Aa' prevents operation INSERT on table 't1aA'.
+insert into v2aA values ((select max(col1) from v1aA));
+ERROR HY000: The definition of table 'v1aA' prevents operation INSERT on table 'v2aA'.
+insert into v2Aa values ((select max(col1) from t1Aa));
+ERROR HY000: The definition of table 'v2Aa' prevents operation INSERT on table 'v2Aa'.
+insert into t1aA values ((select max(col1) from t1Aa));
+ERROR HY000: You can't specify target table 't1aA' for update in FROM clause
+insert into v2aA values ((select max(col1) from t1aA));
+ERROR HY000: The definition of table 'v2aA' prevents operation INSERT on table 'v2aA'.
+insert into v2Aa values ((select max(col1) from v2aA));
+ERROR HY000: You can't specify target table 'v2Aa' for update in FROM clause
+insert into t1Aa values ((select max(col1) from v2Aa));
+ERROR HY000: The definition of table 'v2Aa' prevents operation INSERT on table 't1Aa'.
+insert into v2aA values ((select max(col1) from v2Aa));
+ERROR HY000: You can't specify target table 'v2aA' for update in FROM clause
+insert into v3Aa (col1) values ((select max(col1) from v1Aa));
+ERROR HY000: The definition of table 'v1Aa' prevents operation INSERT on table 'v3Aa'.
+insert into v3aA (col1) values ((select max(col1) from t1aA));
+ERROR HY000: The definition of table 'v3aA' prevents operation INSERT on table 'v3aA'.
+insert into v3Aa (col1) values ((select max(col1) from v2aA));
+ERROR HY000: The definition of table 'v2aA' prevents operation INSERT on table 'v3Aa'.
+drop view v3aA,v2Aa,v1aA;
+drop table t1Aa,t2Aa;
+create table t1Aa (col1 int);
+create view v1Aa as select col1 from t1Aa as AaA;
+show create view v1AA;
+View Create View
+v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA`
+drop view v1AA;
+select Aaa.col1 from t1Aa as AaA;
+col1
+create view v1Aa as select Aaa.col1 from t1Aa as AaA;
+drop view v1AA;
+create view v1Aa as select AaA.col1 from t1Aa as AaA;
+show create view v1AA;
+View Create View
+v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA`
+drop view v1AA;
+drop table t1Aa;
diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result
index b12e4eb2d3a..24a56fbf575 100644
--- a/mysql-test/r/merge.result
+++ b/mysql-test/r/merge.result
@@ -39,7 +39,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t3 range a a 4 NULL 18 Using where
explain select * from t3 where a > 10 and a < 20;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t3 range a a 4 NULL 16 Using where
+1 SIMPLE t3 range a a 4 NULL 17 Using where
select * from t3 where a = 10;
a b
10 Testing
@@ -56,8 +56,8 @@ a b
4 Testing
5 table
5 table
-6 t1
6 t2
+6 t1
7 Testing
7 Testing
8 table
@@ -172,7 +172,7 @@ a b
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` char(20) default NULL,
KEY `a` (`a`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)
@@ -187,7 +187,7 @@ create table t5 (a int not null, b char(20), key(a)) engine=MERGE UNION=(test.t1
show create table t5;
Table Create Table
t5 CREATE TABLE `t5` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` char(20) default NULL,
KEY `a` (`a`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`mysqltest`.`t6`)
@@ -260,16 +260,16 @@ ENGINE=MERGE UNION=(t1,t2);
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `incr` int(11) NOT NULL default '0',
- `othr` int(11) NOT NULL default '0',
+ `incr` int(11) NOT NULL,
+ `othr` int(11) NOT NULL,
PRIMARY KEY (`incr`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)
alter table t3 drop primary key;
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `incr` int(11) NOT NULL default '0',
- `othr` int(11) NOT NULL default '0'
+ `incr` int(11) NOT NULL,
+ `othr` int(11) NOT NULL
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)
drop table t3,t2,t1;
create table t1 (a int not null, key(a)) engine=merge;
@@ -296,28 +296,28 @@ create table t6 (a int not null, b int not null auto_increment, primary key(a,b)
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `a` int(11) NOT NULL default '0',
- `b` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
+ `b` int(11) NOT NULL,
KEY `a` (`a`,`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create table t4;
Table Create Table
t4 CREATE TABLE `t4` (
- `a` int(11) NOT NULL default '0',
- `b` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
+ `b` int(11) NOT NULL,
KEY `a` (`a`,`b`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)
show create table t5;
Table Create Table
t5 CREATE TABLE `t5` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` int(11) NOT NULL auto_increment,
PRIMARY KEY (`a`,`b`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=FIRST UNION=(`t1`,`t2`)
show create table t6;
Table Create Table
t6 CREATE TABLE `t6` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` int(11) NOT NULL auto_increment,
PRIMARY KEY (`a`,`b`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`t1`,`t2`)
@@ -382,8 +382,8 @@ alter table t4 UNION=(t1,t2,t3);
show create table t4;
Table Create Table
t4 CREATE TABLE `t4` (
- `a` int(11) NOT NULL default '0',
- `b` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
+ `b` int(11) NOT NULL,
KEY `a` (`a`,`b`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`,`t3`)
select * from t4 order by a,b;
@@ -408,8 +408,8 @@ alter table t4 INSERT_METHOD=FIRST;
show create table t4;
Table Create Table
t4 CREATE TABLE `t4` (
- `a` int(11) NOT NULL default '0',
- `b` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
+ `b` int(11) NOT NULL,
KEY `a` (`a`,`b`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=FIRST UNION=(`t1`,`t2`,`t3`)
insert into t4 values (4,1),(4,2);
@@ -614,19 +614,19 @@ KEY files (fileset_id,fileset_root_id)
EXPLAIN SELECT * FROM t2 IGNORE INDEX (files) WHERE fileset_id = 2
AND file_code BETWEEN '0000000115' AND '0000000120' LIMIT 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range PRIMARY PRIMARY 33 NULL 5 Using where
+1 SIMPLE t2 range PRIMARY PRIMARY 35 NULL 5 Using where
EXPLAIN SELECT * FROM t2 WHERE fileset_id = 2
AND file_code BETWEEN '0000000115' AND '0000000120' LIMIT 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range PRIMARY,files PRIMARY 33 NULL 5 Using where
+1 SIMPLE t2 range PRIMARY,files PRIMARY 35 NULL 5 Using where
EXPLAIN SELECT * FROM t1 WHERE fileset_id = 2
AND file_code BETWEEN '0000000115' AND '0000000120' LIMIT 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range PRIMARY,files PRIMARY 33 NULL 5 Using where
+1 SIMPLE t1 range PRIMARY,files PRIMARY 35 NULL 5 Using where
EXPLAIN SELECT * FROM t2 WHERE fileset_id = 2
AND file_code = '0000000115' LIMIT 1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 const PRIMARY,files PRIMARY 33 const,const 1
+1 SIMPLE t2 const PRIMARY,files PRIMARY 35 const,const 1
DROP TABLE t2, t1;
create table t1 (x int, y int, index xy(x, y));
create table t2 (x int, y int, index xy(x, y));
@@ -650,6 +650,8 @@ create table t3 engine=merge union=(t1, t2) select * from t1;
ERROR HY000: You can't specify target table 't1' for update in FROM clause
create table t3 engine=merge union=(t1, t2) select * from t2;
ERROR HY000: You can't specify target table 't2' for update in FROM clause
+create table t3 engine=merge union=(t1, t2) select (select max(a) from t2);
+ERROR HY000: You can't specify target table 't2' for update in FROM clause
drop table t1, t2;
create table t1 (
a double(14,4),
@@ -801,11 +803,6 @@ CREATE TABLE tm1(a SMALLINT, b SMALLINT, KEY(a)) ENGINE=MERGE UNION=(t1);
SELECT * FROM tm1;
ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
DROP TABLE t1, tm1;
-CREATE TABLE t1(c1 INT) ENGINE=MyISAM;
-CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
-INSERT DELAYED INTO t2 VALUES(1);
-ERROR HY000: Table storage engine for 't2' doesn't have this option
-DROP TABLE t1, t2;
CREATE TABLE t1(c1 VARCHAR(1));
CREATE TABLE m1 LIKE t1;
ALTER TABLE m1 ENGINE=MERGE UNION=(t1);
@@ -830,3 +827,58 @@ SELECT COUNT(*) FROM t3 WHERE a=0xDF AND b=2;
COUNT(*)
2
DROP TABLE t1,t2,t3;
+create table t1 (b bit(1));
+create table t2 (b bit(1));
+create table tm (b bit(1)) engine = merge union = (t1,t2);
+select * from tm;
+b
+drop table tm, t1, t2;
+create table t1 (a int) insert_method = last engine = merge;
+insert into t1 values (1);
+ERROR HY000: Table 't1' is read only
+create table t2 (a int) engine = myisam;
+alter table t1 union (t2);
+insert into t1 values (1);
+alter table t1 insert_method = no;
+insert into t1 values (1);
+ERROR HY000: Table 't1' is read only
+drop table t2;
+drop table t1;
+CREATE TABLE tm1(a INT) ENGINE=MERGE UNION=(t1, t2);
+SELECT * FROM tm1;
+ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
+CHECK TABLE tm1;
+Table Op Msg_type Msg_text
+test.tm1 check Error Table 'test.t1' is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check Error Table 'test.t2' is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check Error Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check error Corrupt
+CREATE TABLE t1(a INT);
+SELECT * FROM tm1;
+ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
+CHECK TABLE tm1;
+Table Op Msg_type Msg_text
+test.tm1 check Error Table 'test.t2' is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check Error Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check error Corrupt
+CREATE TABLE t2(a BLOB);
+SELECT * FROM tm1;
+ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
+CHECK TABLE tm1;
+Table Op Msg_type Msg_text
+test.tm1 check Error Table 'test.t2' is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check Error Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
+test.tm1 check error Corrupt
+ALTER TABLE t2 MODIFY a INT;
+SELECT * FROM tm1;
+a
+CHECK TABLE tm1;
+Table Op Msg_type Msg_text
+test.tm1 check status OK
+DROP TABLE tm1, t1, t2;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2 (c1 INT) ENGINE=MERGE UNION=(t1) INSERT_METHOD=FIRST;
+CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2;
+ERROR HY000: You can't specify target table 't1' for update in FROM clause
+DROP TABLE t1, t2;
+End of 5.0 tests
diff --git a/mysql-test/r/metadata.result b/mysql-test/r/metadata.result
index 6297f9cdcb5..4a776b6a253 100644
--- a/mysql-test/r/metadata.result
+++ b/mysql-test/r/metadata.result
@@ -2,9 +2,9 @@ drop table if exists t1,t2;
select 1, 1.0, -1, "hello", NULL;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def 1 8 1 1 N 32897 0 63
-def 1.0 5 3 3 N 32897 1 63
+def 1.0 246 4 3 N 129 1 63
def -1 8 2 2 N 32897 0 63
-def hello 254 5 5 N 1 31 8
+def hello 253 5 5 N 1 31 8
def NULL 6 0 0 Y 32896 0 63
1 1.0 -1 hello NULL
1 1.0 -1 hello NULL
@@ -18,7 +18,7 @@ def test t1 t1 d d 3 11 0 Y 32768 0 63
def test t1 t1 e e 8 20 0 Y 32768 0 63
def test t1 t1 f f 4 3 0 Y 32768 2 63
def test t1 t1 g g 5 4 0 Y 32768 3 63
-def test t1 t1 h h 0 7 0 Y 32768 4 63
+def test t1 t1 h h 246 7 0 Y 0 4 63
def test t1 t1 i i 13 4 0 Y 32864 0 63
def test t1 t1 j j 10 10 0 Y 128 0 63
def test t1 t1 k k 7 19 0 N 1249 0 63
@@ -96,3 +96,89 @@ i
2
affected rows: 1
affected rows: 0
+create table t1 (id int(10));
+insert into t1 values (1);
+CREATE VIEW v1 AS select t1.id as id from t1;
+CREATE VIEW v2 AS select t1.id as renamed from t1;
+CREATE VIEW v3 AS select t1.id + 12 as renamed from t1;
+select * from v1 group by id limit 1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 id id 3 10 1 Y 32768 0 63
+id
+1
+select * from v1 group by id limit 0;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 id id 3 10 0 Y 32768 0 63
+id
+select * from v1 where id=1000 group by id;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 id id 3 10 0 Y 32768 0 63
+id
+select * from v1 where id=1 group by id;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 id id 3 10 1 Y 32768 0 63
+id
+1
+select * from v2 where renamed=1 group by renamed;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v2 id renamed 3 10 1 Y 32768 0 63
+renamed
+1
+select * from v3 where renamed=1 group by renamed;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def v3 renamed 8 12 0 Y 32896 0 63
+renamed
+drop table t1;
+drop view v1,v2,v3;
+select a.* from (select 2147483648 as v_large) a;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def a v_large v_large 8 10 10 N 32769 0 63
+v_large
+2147483648
+select a.* from (select 214748364 as v_small) a;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def a v_small v_small 3 9 9 N 32769 0 63
+v_small
+214748364
+CREATE TABLE t1 (c1 CHAR(1));
+CREATE TABLE t2 (c2 CHAR(1));
+CREATE VIEW v1 AS SELECT t1.c1 FROM t1;
+CREATE VIEW v2 AS SELECT t2.c2 FROM t2;
+INSERT INTO t1 VALUES ('1'), ('2'), ('3');
+INSERT INTO t2 VALUES ('1'), ('2'), ('3'), ('2');
+SELECT v1.c1 FROM v1 JOIN t2 ON c1=c2 ORDER BY 1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 c1 c1 254 1 1 Y 0 0 8
+c1
+1
+2
+2
+3
+SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 c1 c1 254 1 1 Y 0 0 8
+def test t2 v2 c2 c2 254 1 1 Y 0 0 8
+c1 c2
+1 1
+2 2
+3 3
+2 2
+SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2 GROUP BY v1.c1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 c1 c1 254 1 1 Y 32768 0 8
+def test t2 v2 c2 c2 254 1 1 Y 0 0 8
+c1 c2
+1 1
+2 2
+3 3
+SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2 GROUP BY v1.c1 ORDER BY v2.c2;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 v1 c1 c1 254 1 1 Y 32768 0 8
+def test t2 v2 c2 c2 254 1 1 Y 0 0 8
+c1 c2
+1 1
+2 2
+3 3
+DROP VIEW v1,v2;
+DROP TABLE t1,t2;
+End of 5.0 tests
diff --git a/mysql-test/r/mix_innodb_myisam_binlog.result b/mysql-test/r/mix_innodb_myisam_binlog.result
index f8de0336e63..5777bd890b2 100644
--- a/mysql-test/r/mix_innodb_myisam_binlog.result
+++ b/mysql-test/r/mix_innodb_myisam_binlog.result
@@ -6,12 +6,12 @@ begin;
insert into t1 values(1);
insert into t2 select * from t1;
commit;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(1)
-master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
-master-bin.000001 244 Query 1 244 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(1)
+master-bin.000001 253 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 347 Xid 1 # COMMIT /* XID */
delete from t1;
delete from t2;
reset master;
@@ -21,12 +21,12 @@ insert into t2 select * from t1;
rollback;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(2)
-master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
-master-bin.000001 244 Query 1 244 use `test`; ROLLBACK
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(2)
+master-bin.000001 253 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 347 Query 1 # use `test`; ROLLBACK
delete from t1;
delete from t2;
reset master;
@@ -39,15 +39,15 @@ rollback to savepoint my_savepoint;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
commit;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(3)
-master-bin.000001 178 Query 1 79 use `test`; savepoint my_savepoint
-master-bin.000001 235 Query 1 79 use `test`; insert into t1 values(4)
-master-bin.000001 294 Query 1 79 use `test`; insert into t2 select * from t1
-master-bin.000001 360 Query 1 79 use `test`; rollback to savepoint my_savepoint
-master-bin.000001 429 Query 1 429 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(3)
+master-bin.000001 253 Query 1 # use `test`; savepoint my_savepoint
+master-bin.000001 338 Query 1 # use `test`; insert into t1 values(4)
+master-bin.000001 425 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 519 Query 1 # use `test`; rollback to savepoint my_savepoint
+master-bin.000001 616 Xid 1 # COMMIT /* XID */
delete from t1;
delete from t2;
reset master;
@@ -65,16 +65,16 @@ select a from t1 order by a;
a
5
7
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(5)
-master-bin.000001 178 Query 1 79 use `test`; savepoint my_savepoint
-master-bin.000001 235 Query 1 79 use `test`; insert into t1 values(6)
-master-bin.000001 294 Query 1 79 use `test`; insert into t2 select * from t1
-master-bin.000001 360 Query 1 79 use `test`; rollback to savepoint my_savepoint
-master-bin.000001 429 Query 1 79 use `test`; insert into t1 values(7)
-master-bin.000001 488 Query 1 488 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(5)
+master-bin.000001 253 Query 1 # use `test`; savepoint my_savepoint
+master-bin.000001 338 Query 1 # use `test`; insert into t1 values(6)
+master-bin.000001 425 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 519 Query 1 # use `test`; rollback to savepoint my_savepoint
+master-bin.000001 616 Query 1 # use `test`; insert into t1 values(7)
+master-bin.000001 703 Xid 1 # COMMIT /* XID */
delete from t1;
delete from t2;
reset master;
@@ -87,41 +87,43 @@ insert into t2 select * from t1;
select get_lock("a",10);
get_lock("a",10)
1
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(8)
-master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
-master-bin.000001 244 Query 1 244 use `test`; ROLLBACK
-master-bin.000001 287 Query 1 287 use `test`; DO RELEASE_LOCK("a")
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(8)
+master-bin.000001 253 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 347 Query 1 # use `test`; ROLLBACK
delete from t1;
delete from t2;
reset master;
insert into t1 values(9);
insert into t2 select * from t1;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; insert into t1 values(9)
-master-bin.000001 138 Query 1 138 use `test`; insert into t2 select * from t1
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; insert into t1 values(9)
+master-bin.000001 185 Xid 1 # COMMIT /* XID */
+master-bin.000001 212 Query 1 # use `test`; insert into t2 select * from t1
delete from t1;
delete from t2;
reset master;
insert into t1 values(10);
begin;
insert into t2 select * from t1;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; insert into t1 values(10)
-master-bin.000001 139 Query 1 139 use `test`; insert into t2 select * from t1
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; insert into t1 values(10)
+master-bin.000001 186 Xid 1 # COMMIT /* XID */
+master-bin.000001 213 Query 1 # use `test`; insert into t2 select * from t1
insert into t1 values(11);
commit;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; insert into t1 values(10)
-master-bin.000001 139 Query 1 139 use `test`; insert into t2 select * from t1
-master-bin.000001 205 Query 1 205 use `test`; BEGIN
-master-bin.000001 245 Query 1 205 use `test`; insert into t1 values(11)
-master-bin.000001 305 Query 1 305 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; insert into t1 values(10)
+master-bin.000001 186 Xid 1 # COMMIT /* XID */
+master-bin.000001 213 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 307 Query 1 # use `test`; BEGIN
+master-bin.000001 375 Query 1 # use `test`; insert into t1 values(11)
+master-bin.000001 463 Xid 1 # COMMIT /* XID */
alter table t2 engine=INNODB;
delete from t1;
delete from t2;
@@ -130,12 +132,12 @@ begin;
insert into t1 values(12);
insert into t2 select * from t1;
commit;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(12)
-master-bin.000001 179 Query 1 79 use `test`; insert into t2 select * from t1
-master-bin.000001 245 Query 1 245 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(12)
+master-bin.000001 254 Query 1 # use `test`; insert into t2 select * from t1
+master-bin.000001 348 Xid 1 # COMMIT /* XID */
delete from t1;
delete from t2;
reset master;
@@ -143,8 +145,8 @@ begin;
insert into t1 values(13);
insert into t2 select * from t1;
rollback;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
delete from t1;
delete from t2;
reset master;
@@ -155,11 +157,11 @@ insert into t1 values(15);
insert into t2 select * from t1;
rollback to savepoint my_savepoint;
commit;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(14)
-master-bin.000001 179 Query 1 179 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(14)
+master-bin.000001 254 Xid 1 # COMMIT /* XID */
delete from t1;
delete from t2;
reset master;
@@ -175,12 +177,12 @@ select a from t1 order by a;
a
16
18
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(16)
-master-bin.000001 179 Query 1 79 use `test`; insert into t1 values(18)
-master-bin.000001 239 Query 1 239 use `test`; COMMIT
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(16)
+master-bin.000001 254 Query 1 # use `test`; insert into t1 values(18)
+master-bin.000001 342 Xid 1 # COMMIT /* XID */
delete from t1;
delete from t2;
alter table t2 type=MyISAM;
@@ -215,6 +217,8 @@ create temporary table t1 (a int) engine=myisam;
commit;
insert t1 values (1);
rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
create table t0 (n int);
insert t0 select * from t1;
set autocommit=1;
@@ -225,32 +229,167 @@ insert into t2 values (3);
select get_lock("lock1",60);
get_lock("lock1",60)
1
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; BEGIN
-master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(16)
-master-bin.000001 179 Query 1 79 use `test`; insert into t1 values(18)
-master-bin.000001 239 Query 1 239 use `test`; COMMIT
-master-bin.000001 280 Query 1 280 use `test`; delete from t1
-master-bin.000001 329 Query 1 329 use `test`; delete from t2
-master-bin.000001 378 Query 1 378 use `test`; alter table t2 type=MyISAM
-master-bin.000001 439 Query 1 439 use `test`; insert into t1 values (1)
-master-bin.000001 499 Query 1 499 use `test`; insert into t2 values (20)
-master-bin.000001 560 Query 1 560 use `test`; drop table t1,t2
-master-bin.000001 611 Query 1 611 use `test`; BEGIN
-master-bin.000001 651 Query 1 611 use `test`; create temporary table ti (a int) engine=innodb
-master-bin.000001 733 Query 1 733 use `test`; ROLLBACK
-master-bin.000001 776 Query 1 776 use `test`; insert into ti values(1)
-master-bin.000001 835 Query 1 835 use `test`; BEGIN
-master-bin.000001 875 Query 1 835 use `test`; create temporary table t1 (a int) engine=myisam
-master-bin.000001 957 Query 1 957 use `test`; COMMIT
-master-bin.000001 998 Query 1 998 use `test`; create table t0 (n int)
-master-bin.000001 1056 Query 1 1056 use `test`; insert t0 select * from t1
-master-bin.000001 1117 Query 1 1117 use `test`; DO RELEASE_LOCK("a")
-master-bin.000001 1172 Query 1 1172 use `test`; insert into t0 select GET_LOCK("lock1",null)
-master-bin.000001 1251 Query 1 1251 use `test`; create table t2 (n int) engine=innodb
-master-bin.000001 1323 Query 1 1323 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=33,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=8
-master-bin.000001 1457 Query 1 1457 use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti`
-master-bin.000001 1558 Query 1 1558 use `test`; DO RELEASE_LOCK("lock1")
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 # use `test`; BEGIN
+master-bin.000001 166 Query 1 # use `test`; insert into t1 values(16)
+master-bin.000001 254 Query 1 # use `test`; insert into t1 values(18)
+master-bin.000001 342 Xid 1 # COMMIT /* XID */
+master-bin.000001 369 Query 1 # use `test`; delete from t1
+master-bin.000001 446 Xid 1 # COMMIT /* XID */
+master-bin.000001 473 Query 1 # use `test`; delete from t2
+master-bin.000001 550 Xid 1 # COMMIT /* XID */
+master-bin.000001 577 Query 1 # use `test`; alter table t2 type=MyISAM
+master-bin.000001 666 Query 1 # use `test`; insert into t1 values (1)
+master-bin.000001 754 Xid 1 # COMMIT /* XID */
+master-bin.000001 781 Query 1 # use `test`; insert into t2 values (20)
+master-bin.000001 870 Query 1 # use `test`; drop table t1,t2
+master-bin.000001 949 Query 1 # use `test`; create temporary table ti (a int) engine=innodb
+master-bin.000001 1059 Query 1 # use `test`; insert into ti values(1)
+master-bin.000001 1146 Xid 1 # COMMIT /* XID */
+master-bin.000001 1173 Query 1 # use `test`; create temporary table t1 (a int) engine=myisam
+master-bin.000001 1283 Query 1 # use `test`; insert t1 values (1)
+master-bin.000001 1366 Query 1 # use `test`; create table t0 (n int)
+master-bin.000001 1452 Query 1 # use `test`; insert t0 select * from t1
+master-bin.000001 1541 Query 1 # use `test`; insert into t0 select GET_LOCK("lock1",null)
+master-bin.000001 1648 Query 1 # use `test`; create table t2 (n int) engine=innodb
+master-bin.000001 1748 Query 1 # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti`
do release_lock("lock1");
drop table t0,t2;
+reset master;
+create table t1 (a int) engine=innodb;
+create table t2 (a int) engine=myisam;
+select get_lock("a",10);
+get_lock("a",10)
+1
+begin;
+insert into t1 values(8);
+insert into t2 select * from t1;
+select get_lock("a",10);
+get_lock("a",10)
+1
+select
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
+is not null;
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
+is not null
+1
+select
+@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
+@a not like "%#%error_code=%error_code=%";
+@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
+1 1
+drop table t1, t2;
+create temporary table tt (a int unique);
+create table ti (a int) engine=innodb;
+reset master;
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 98
+begin;
+insert into ti values (1);
+insert into ti values (2) ;
+insert into tt select * from ti;
+rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+select count(*) from tt /* 2 */;
+count(*)
+2
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 507
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # use `test`; BEGIN
+master-bin.000001 # Query 1 # use `test`; insert into ti values (1)
+master-bin.000001 # Query 1 # use `test`; insert into ti values (2)
+master-bin.000001 # Query 1 # use `test`; insert into tt select * from ti
+master-bin.000001 # Query 1 # use `test`; ROLLBACK
+select count(*) from ti /* zero */;
+count(*)
+0
+insert into ti select * from tt;
+select * from ti /* that is what slave would miss - a bug */;
+a
+1
+2
+delete from ti;
+delete from tt where a=1;
+reset master;
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 98
+begin;
+insert into ti values (1);
+insert into ti values (2) /* to make the dup error in the following */;
+insert into tt select * from ti /* one affected and error */;
+ERROR 23000: Duplicate entry '2' for key 1
+rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 581
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # use `test`; BEGIN
+master-bin.000001 # Query 1 # use `test`; insert into ti values (1)
+master-bin.000001 # Query 1 # use `test`; insert into ti values (2) /* to make the dup error in the following */
+master-bin.000001 # Query 1 # use `test`; insert into tt select * from ti /* one affected and error */
+master-bin.000001 # Query 1 # use `test`; ROLLBACK
+select count(*) from ti /* zero */;
+count(*)
+0
+insert into ti select * from tt;
+select * from tt /* that is what otherwise slave missed - the bug */;
+a
+1
+2
+drop table ti;
+drop function if exists bug27417;
+drop table if exists t1,t2;
+CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM;
+CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a));
+create function bug27417(n int)
+RETURNS int(11)
+begin
+insert into t1 values (null);
+return n;
+end|
+reset master;
+insert into t2 values (bug27417(1));
+insert into t2 select bug27417(2);
+reset master;
+insert into t2 values (bug27417(2));
+ERROR 23000: Duplicate entry '2' for key 1
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 98
+/* only (!) with fixes for #23333 will show there is the query */;
+select count(*) from t1 /* must be 3 */;
+count(*)
+3
+reset master;
+select count(*) from t2;
+count(*)
+2
+delete from t2 where a=bug27417(3);
+select count(*) from t2 /* nothing got deleted */;
+count(*)
+2
+show master status;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 195
+/* the query must be in regardless of #23333 */;
+select count(*) from t1 /* must be 5 */;
+count(*)
+5
+delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */;
+affected rows: 0
+select count(*) from t1 /* must be 7 */;
+count(*)
+7
+drop function bug27417;
+drop table t1,t2;
+end of tests
diff --git a/mysql-test/r/multi_statement.result b/mysql-test/r/multi_statement.result
index 3a8d86bf349..ff19cbdd698 100644
--- a/mysql-test/r/multi_statement.result
+++ b/mysql-test/r/multi_statement.result
@@ -1,3 +1,4 @@
+DROP TABLE IF EXISTS t1;
select 1;
1
1
diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result
index ee62bd3bce6..0f624e3ee8d 100644
--- a/mysql-test/r/multi_update.result
+++ b/mysql-test/r/multi_update.result
@@ -1,5 +1,6 @@
drop table if exists t1,t2,t3;
drop database if exists mysqltest;
+drop view if exists v1;
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
delete from mysql.user where user=_binary'mysqltest_1';
@@ -134,16 +135,16 @@ create table t1 (n numeric(10));
create table t2 (n numeric(10));
insert into t2 values (1),(2),(4),(8),(16),(32);
select * from t2 left outer join t1 using (n);
-n n
-1 NULL
-2 NULL
-4 NULL
-8 NULL
-16 NULL
-32 NULL
+n
+1
+2
+4
+8
+16
+32
delete t1,t2 from t2 left outer join t1 using (n);
select * from t2 left outer join t1 using (n);
-n n
+n
drop table t1,t2 ;
create table t1 (n int(10) not null primary key, d int(10));
create table t2 (n int(10) not null primary key, d int(10));
@@ -480,3 +481,80 @@ create table t2(a int);
delete from t1,t2 using t1,t2 where t1.a=(select a from t1);
ERROR HY000: You can't specify target table 't1' for update in FROM clause
drop table t1, t2;
+create table t1 ( c char(8) not null ) engine=innodb;
+insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
+insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
+alter table t1 add b char(8) not null;
+alter table t1 add a char(8) not null;
+alter table t1 add primary key (a,b,c);
+update t1 set a=c, b=c;
+create table t2 like t1;
+insert into t2 select * from t1;
+delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
+drop table t1,t2;
+create table t1 ( c char(8) not null ) engine=bdb;
+insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
+insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
+alter table t1 add b char(8) not null;
+alter table t1 add a char(8) not null;
+alter table t1 add primary key (a,b,c);
+update t1 set a=c, b=c;
+create table t2 like t1;
+insert into t2 select * from t1;
+delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
+drop table t1,t2;
+create table t1 (a int, b int);
+insert into t1 values (1, 2), (2, 3), (3, 4);
+create table t2 (a int);
+insert into t2 values (10), (20), (30);
+create view v1 as select a as b, a/10 as a from t2;
+lock table t1 write;
+alter table t1 add column c int default 100 after a;
+update t1, v1 set t1.b=t1.a+t1.b+v1.b where t1.a=v1.a;
+unlock tables;
+select * from t1;
+a c b
+1 100 13
+2 100 25
+3 100 37
+select * from t2;
+a
+10
+20
+30
+drop view v1;
+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=MyISAM 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 1
+select * from t2 /* must be (3,1), (4,4) */;
+a b
+3 1
+4 4
+show master status /* there must be the UPDATE query event */;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 189
+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 1
+show master status /* there must be the UPDATE query event */;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 204
+drop table t1, t2;
+end of tests
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index 4aae100695a..176d0e97012 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -408,8 +408,8 @@ Table Op Msg_type Msg_text
test.t1 repair status OK
select concat(a,'.') from t1 where a='aaa';
concat(a,'.')
-aaa.
aaa .
+aaa.
select concat(a,'.') from t1 where binary a='aaa';
concat(a,'.')
aaa.
@@ -461,20 +461,27 @@ concat(a,'.')
a .
drop table t1;
create table t1 (a int not null auto_increment primary key, b text not null, unique b (b(20)));
-insert into t1 (b) values ('a'),('a '),('a ');
+insert into t1 (b) values ('a'),('b'),('c');
select concat(b,'.') from t1;
concat(b,'.')
a.
-a .
-a .
+b.
+c.
update t1 set b='b ' where a=2;
update t1 set b='b ' where a > 1;
ERROR 23000: Duplicate entry 'b ' for key 2
+insert into t1 (b) values ('b');
+ERROR 23000: Duplicate entry 'b' for key 2
+select * from t1;
+a b
+1 a
+2 b
+3 c
delete from t1 where b='b';
select a,concat(b,'.') from t1;
a concat(b,'.')
1 a.
-3 a .
+3 c.
drop table t1;
create table t1 (a int not null);
create table t2 (a int not null, primary key (a));
@@ -544,19 +551,25 @@ insert t1 values (1, "aaa", "bbb"), (NULL, "", "ccccc"), (0, NULL, "");
insert t2 select * from t1;
checksum table t1, t2, t3 quick;
Table Checksum
-test.t1 968604391
+test.t1 2948697075
test.t2 NULL
test.t3 NULL
+Warnings:
+Error 1146 Table 'test.t3' doesn't exist
checksum table t1, t2, t3;
Table Checksum
-test.t1 968604391
-test.t2 968604391
+test.t1 2948697075
+test.t2 2948697075
test.t3 NULL
+Warnings:
+Error 1146 Table 'test.t3' doesn't exist
checksum table t1, t2, t3 extended;
Table Checksum
-test.t1 968604391
-test.t2 968604391
+test.t1 2948697075
+test.t2 2948697075
test.t3 NULL
+Warnings:
+Error 1146 Table 'test.t3' doesn't exist
drop table t1,t2;
create table t1 (a int, key (a));
show keys from t1;
@@ -619,20 +632,6 @@ check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
-create table t1 (a int, key(a));
-insert into t1 values (1),(2),(3),(4),(NULL),(NULL),(NULL),(NULL);
-analyze table t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
-alter table t1 disable keys;
-alter table t1 enable keys;
-show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
-drop table t1;
create table t1 (c1 int);
insert into t1 values (1),(2),(3),(4);
checksum table t1;
@@ -842,7 +841,7 @@ _id
DELETE FROM t1 WHERE _id < 8;
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 MyISAM 9 Dynamic 2 # # # # 140 # # # # # #
+t1 MyISAM 10 Dynamic 2 # # # # 140 # # # # # #
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
@@ -854,7 +853,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
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 MyISAM 9 Dynamic 2 # # # # 0 # # # # # #
+t1 MyISAM 10 Dynamic 2 # # # # 0 # # # # # #
SELECT _id FROM t1;
_id
8
@@ -901,7 +900,7 @@ _id
DELETE FROM t1 WHERE _id < 8;
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 MyISAM 9 Dynamic 2 # # # # 140 # # # # # #
+t1 MyISAM 10 Dynamic 2 # # # # 140 # # # # # #
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
@@ -913,7 +912,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
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 MyISAM 9 Dynamic 2 # # # # 140 # # # # # #
+t1 MyISAM 10 Dynamic 2 # # # # 140 # # # # # #
SELECT _id FROM t1;
_id
8
@@ -942,7 +941,7 @@ DROP TABLE t1;
CREATE TABLE t1 (c1 TEXT) AVG_ROW_LENGTH=70100 MAX_ROWS=4100100100;
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 MyISAM 9 Dynamic X X X 72057594037927935 X X X X X X latin1_swedish_ci X max_rows=4100100100 avg_row_length=70100
+t1 MyISAM 10 Dynamic X X X 72057594037927935 X X X X X X latin1_swedish_ci X max_rows=4100100100 avg_row_length=70100
DROP TABLE t1;
CREATE TABLE t1 (c1 TEXT NOT NULL, KEY c1 (c1(10))) ENGINE=MyISAM;
INSERT INTO t1 VALUES
@@ -1095,3 +1094,741 @@ length(c1) c1
2 B
DROP TABLE t1;
End of 4.1 tests
+set storage_engine=MyISAM;
+drop table if exists t1,t2,t3;
+--- Testing varchar ---
+--- Testing varchar ---
+create table t1 (v varchar(10), c char(10), t text);
+insert into t1 values('+ ', '+ ', '+ ');
+set @a=repeat(' ',20);
+insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
+Warnings:
+Note 1265 Data truncated for column 'v' at row 1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+ *+*+ *
+*+ *+*+ *
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+create table t2 like t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+create table t3 select * from t1;
+show create table t3;
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify c varchar(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify v char(10);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify t varchar(10);
+Warnings:
+Note 1265 Data truncated for column 't' at row 2
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) default NULL,
+ `c` varchar(10) default NULL,
+ `t` varchar(10) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select concat('*',v,'*',c,'*',t,'*') from t1;
+concat('*',v,'*',c,'*',t,'*')
+*+*+*+ *
+*+*+*+ *
+drop table t1,t2,t3;
+create table t1 (v varchar(10), c char(10), t text, key(v), key(c), key(t(10)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `v` (`v`),
+ KEY `c` (`c`),
+ KEY `t` (`t`(10))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select count(*) from t1;
+count(*)
+270
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where c='a';
+count(*)
+10
+select count(*) from t1 where t='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where c='a ';
+count(*)
+10
+select count(*) from t1 where t='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where c like 'a%';
+count(*)
+11
+select count(*) from t1 where t like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where; Using index
+explain select count(*) from t1 where c='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c c 11 const # Using where; Using index
+explain select count(*) from t1 where t='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref t t 13 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 13 NULL # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const # Using where; Using index
+alter table t1 add unique(v);
+ERROR 23000: Duplicate entry '{ ' for key 1
+alter table t1 add key(v);
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
+qq
+*a*a*a*
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+*a *a*a *
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v,v_2 # 13 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(c) from t1 group by v limit 10;
+v count(c)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(*) from t1 group by c limit 10;
+c count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result c,count(t) from t1 group by c limit 10;
+c count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(*) from t1 group by t limit 10;
+t count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result t,count(t) from t1 group by t limit 10;
+t count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 modify v varchar(300), drop key v, drop key v_2, add key v (v);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(300) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where; Using index
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 303 NULL # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where; Using index
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where; Using index
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 303 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 drop key v, add key v (v(30));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(300) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`(30))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select count(*) from t1 where v='a';
+count(*)
+10
+select count(*) from t1 where v='a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ';
+count(*)
+10
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+count(*)
+10
+select count(*) from t1 where v like 'a%';
+count(*)
+11
+select count(*) from t1 where v like 'a %';
+count(*)
+9
+explain select count(*) from t1 where v='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select count(*) from t1 where v like 'a%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 33 NULL # Using where
+explain select count(*) from t1 where v between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+explain select * from t1 where v='a';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 33 const # Using where
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+alter table t1 modify v varchar(600), drop key v, add key v (v);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(600) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `c` (`c`),
+ KEY `t` (`t`(10)),
+ KEY `v` (`v`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select v,count(*) from t1 group by v limit 10;
+v count(*)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+select sql_big_result v,count(t) from t1 group by v limit 10;
+v count(t)
+a 1
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
+drop table t1;
+create table t1 (a char(10), unique (a));
+insert into t1 values ('a ');
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a' for key 1
+alter table t1 modify a varchar(10);
+insert into t1 values ('a '),('a '),('a '),('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+insert into t1 values ('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+update t1 set a='a ' where a like 'a%';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='abc ' where a like 'a ';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='a ' where a like 'a %';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+update t1 set a='a ' where a like 'a ';
+select concat(a,'.') from t1;
+concat(a,'.')
+a .
+drop table t1;
+create table t1 (v varchar(10), c char(10), t text, key(v(5)), key(c(5)), key(t(5)));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL,
+ `t` text,
+ KEY `v` (`v`(5)),
+ KEY `c` (`c`(5)),
+ KEY `t` (`t`(5))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v char(10) character set utf8);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` char(10) character set utf8 default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(10), c char(10)) row_format=fixed;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(10) default NULL,
+ `c` char(10) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
+insert into t1 values('a','a'),('a ','a ');
+select concat('*',v,'*',c,'*') from t1;
+concat('*',v,'*',c,'*')
+*a*a*
+*a *a*
+drop table t1;
+create table t1 (v varchar(65530), key(v(10)));
+insert into t1 values(repeat('a',65530));
+select length(v) from t1 where v=repeat('a',65530);
+length(v)
+65530
+drop table t1;
+create table t1(a int, b varchar(12), key ba(b, a));
+insert into t1 values (1, 'A'), (20, NULL);
+explain select * from t1 where a=20 and b is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref ba ba 20 const,const 1 Using where; Using index
+select * from t1 where a=20 and b is null;
+a b
+20 NULL
+drop table t1;
+create table t1 (v varchar(65530), key(v));
+Warnings:
+Warning 1071 Specified key was too long; max key length is 1000 bytes
+drop table if exists t1;
+create table t1 (v varchar(65536));
+Warnings:
+Note 1246 Converting column 'v' from VARCHAR to TEXT
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` mediumtext
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(65530) character set utf8);
+Warnings:
+Note 1246 Converting column 'v' from VARCHAR to TEXT
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` mediumtext character set utf8
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (v varchar(65535));
+ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
+set storage_engine=MyISAM;
+create table t1 (a int) engine=myisam;
+drop table if exists t1;
+Warnings:
+Error 2 Can't find file: 't1' (errno: 2)
+create table t1 (a int) engine=myisam;
+drop table t1;
+Got one of the listed errors
+create table t1 (a int) engine=myisam;
+drop table t1;
+Got one of the listed errors
+drop table t1;
+ERROR 42S02: Unknown table 't1'
+set @save_concurrent_insert=@@concurrent_insert;
+set global concurrent_insert=1;
+create table t1 (a int);
+insert into t1 values (1),(2),(3),(4),(5);
+lock table t1 read local;
+insert into t1 values(6),(7);
+unlock tables;
+delete from t1 where a>=3 and a<=4;
+lock table t1 read local;
+set global concurrent_insert=2;
+insert into t1 values (8),(9);
+unlock tables;
+insert into t1 values (10),(11),(12);
+select * from t1;
+a
+1
+2
+11
+10
+5
+6
+7
+8
+9
+12
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
+create table t1 (a int, b varchar(30) default "hello");
+insert into t1 (a) values (1),(2),(3),(4),(5);
+lock table t1 read local;
+insert into t1 (a) values(6),(7);
+unlock tables;
+delete from t1 where a>=3 and a<=4;
+lock table t1 read local;
+set global concurrent_insert=2;
+insert into t1 (a) values (8),(9);
+unlock tables;
+insert into t1 (a) values (10),(11),(12);
+select a from t1;
+a
+1
+2
+11
+10
+5
+6
+7
+8
+9
+12
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
+set global concurrent_insert=@save_concurrent_insert;
+create table t1 (a int, key(a));
+insert into t1 values (1),(2),(3),(4),(NULL),(NULL),(NULL),(NULL);
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+show keys from t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 1 a 1 a A 8 NULL NULL YES BTREE
+alter table t1 disable keys;
+alter table t1 enable keys;
+show keys from t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 1 a 1 a A 8 NULL NULL YES BTREE
+drop table t1;
+create table t1 (c1 int) engine=myisam pack_keys=0;
+create table t2 (c1 int) engine=myisam pack_keys=1;
+create table t3 (c1 int) engine=myisam pack_keys=default;
+create table t4 (c1 int) engine=myisam pack_keys=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 '2' at line 1
+drop table t1, t2, t3;
+CREATE TABLE t1(a INT, b INT, KEY inx (a), UNIQUE KEY uinx (b)) ENGINE=MyISAM;
+INSERT INTO t1(a,b) VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
+SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
+a
+1
+ALTER TABLE t1 DISABLE KEYS;
+SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
+a
+1
+SELECT a FROM t1 USE INDEX (inx) WHERE a=1;
+a
+1
+SELECT b FROM t1 FORCE INDEX (uinx) WHERE b=1;
+b
+1
+SELECT b FROM t1 USE INDEX (uinx) WHERE b=1;
+b
+1
+SELECT a FROM t1 FORCE INDEX (inx,uinx) WHERE a=1;
+a
+1
+ALTER TABLE t1 ENABLE KEYS;
+SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
+a
+1
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT, c2 INT, UNIQUE INDEX (c1), INDEX (c2)) ENGINE=MYISAM;
+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 MyISAM 10 Fixed 0 # # # 1024 # # # # # # #
+INSERT INTO t1 VALUES (1,1);
+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 MyISAM 10 Fixed 1 # # # 3072 # # # # # # #
+ALTER TABLE t1 DISABLE KEYS;
+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 MyISAM 10 Fixed 1 # # # 3072 # # # # # # #
+ALTER TABLE t1 ENABLE KEYS;
+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 MyISAM 10 Fixed 1 # # # 3072 # # # # # # #
+ALTER TABLE t1 DISABLE KEYS;
+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 MyISAM 10 Fixed 1 # # # 3072 # # # # # # #
+ALTER TABLE t1 ENABLE KEYS;
+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 MyISAM 10 Fixed 1 # # # 3072 # # # # # # #
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result
new file mode 100644
index 00000000000..c6e589a5fb7
--- /dev/null
+++ b/mysql-test/r/mysql.result
@@ -0,0 +1,181 @@
+drop table if exists t1;
+create table t1(a int);
+insert into t1 values(1);
+ERROR at line 9: DELIMITER must be followed by a 'delimiter' character or string
+
+Test default delimiter ;
+a
+1
+
+Test delimiter without arg
+
+Test delimiter :
+a
+1
+
+Test delimiter :
+a
+1
+
+Test delimiter :;
+a
+1
+
+Test delimiter //
+a
+1
+
+Test delimiter MySQL
+a
+1
+
+Test delimiter delimiter
+a
+1
+Tables_in_test
+t1
+t2
+t3
+Tables_in_test
+t1
+_
+Test delimiter : from command line
+a
+1
+_
+Test delimiter :; from command line
+a
+1
+_
+Test 'go' command(vertical output) G
+*************************** 1. row ***************************
+a: 1
+_
+Test 'go' command g
+a
+1
+drop table t1;
+create table t1(a int);
+lock tables t1 write;
+database()
+test
+unlock tables;
+drop table t1;
++----------------------+------------+--------+
+| concat('>',col1,'<') | col2 | col3 |
++----------------------+------------+--------+
+| >a < | b | 123421 |
+| >a < | 0123456789 | 4 |
+| >abcd< | | 4 |
++----------------------+------------+--------+
++-------------------+
+| __tañgè Ñãmé |
++-------------------+
+| John Doe |
++-------------------+
++-------------------+
+| John Doe |
++-------------------+
+| __tañgè Ñãmé |
++-------------------+
++------+------+---------------------------+
+| i | j | k |
++------+------+---------------------------+
+| 1 | NULL | NULL |
+| NULL | NULL | <-----------------------> |
+| NULL | NULL | <----- |
+| NULL | NULL | Τη γλώσσα |
+| NULL | NULL | á›–áš´ áš·á›–á› |
++------+------+---------------------------+
+i j k
+NULL 1 NULL
+Field Type Null Key Default Extra
+i int(11) YES NULL
+j int(11) NO NULL
+k int(11) YES NULL
++------+---+------+
+| i | j | k |
++------+---+------+
+| NULL | 1 | NULL |
++------+---+------+
++-------+---------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+---------+------+-----+---------+-------+
+| i | int(11) | YES | | NULL | |
+| j | int(11) | NO | | NULL | |
+| k | int(11) | YES | | NULL | |
++-------+---------+------+-----+---------+-------+
+i s1
+1 x
+2 NULL
+3
++------+------+
+| i | s1 |
++------+------+
+| 1 | x |
+| 2 | NULL |
+| 3 | |
++------+------+
+unhex('zz')
+NULL
++-------------+
+| unhex('zz') |
++-------------+
+| NULL |
++-------------+
+create table t1(a int, b varchar(255), c int);
+Field Type Null Key Default Extra
+a int(11) YES NULL
+b varchar(255) YES NULL
+c int(11) YES NULL
+Field Type Null Key Default Extra
+a int(11) YES NULL
+b varchar(255) YES NULL
+c int(11) YES NULL
+drop table t1;
+1
+1
+ERROR 1064 (42000) at line 3: 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
+ERROR at line 1: USE must be followed by a database name
+\
+\\
+';
+';
+create table t17583 (a int);
+insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+select count(*) from t17583;
+count(*)
+1280
+drop table t17583;
+Test connect without db- or host-name => reconnect
+Test connect with dbname only => new dbname, old hostname
+ERROR 1064 (42000) at line 1: 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 'connecttest' at line 1
+Test connect with _invalid_ dbname only => new invalid dbname, old hostname
+ERROR 1049 (42000) at line 1: Unknown database 'invalid'
+ERROR 1049 (42000) at line 1: Unknown database 'invalid'
+Test connect with dbname + hostname
+Test connect with dbname + _invalid_ hostname
+ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
+ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
+The commands reported in the bug report
+ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyril has found a bug :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
+Too long dbname
+ERROR 1049 (42000) at line 1: Unknown database 'test_really_long_dbnamexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+Too long hostname
+ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
+1
+1
+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
diff --git a/mysql-test/r/mysql_client.result b/mysql-test/r/mysql_client.result
deleted file mode 100644
index 5375deb250d..00000000000
--- a/mysql-test/r/mysql_client.result
+++ /dev/null
@@ -1,18 +0,0 @@
-1
-1
-ERROR 1064 (42000) at line 3: 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
-ERROR at line 1: USE must be followed by a database name
-create table t17583 (a int);
-insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-select count(*) from t17583;
-count(*)
-1280
-drop table t17583;
-End of 4.1 tests.
diff --git a/mysql-test/r/mysql_upgrade.result b/mysql-test/r/mysql_upgrade.result
new file mode 100644
index 00000000000..b3b606bd1fc
--- /dev/null
+++ b/mysql-test/r/mysql_upgrade.result
@@ -0,0 +1,81 @@
+Run mysql_upgrade once
+mysql.columns_priv OK
+mysql.db OK
+mysql.func OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+Run it again - should say already completed
+This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
+Force should run it regardless of wether it's been run before
+mysql.columns_priv OK
+mysql.db OK
+mysql.func OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
+GRANT ALL ON *.* TO mysqltest1@'%';
+Run mysql_upgrade with password protected account
+mysql.columns_priv OK
+mysql.db OK
+mysql.func OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+DROP USER mysqltest1@'%';
+Run mysql_upgrade with a non existing server socket
+mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
+FATAL ERROR: Upgrade failed
+set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
+mysql.columns_priv OK
+mysql.db OK
+mysql.func OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+set GLOBAL sql_mode=default;
diff --git a/mysql-test/r/mysqlbinlog-cp932.result b/mysql-test/r/mysqlbinlog-cp932.result
new file mode 100644
index 00000000000..1640a3b1642
--- /dev/null
+++ b/mysql-test/r/mysqlbinlog-cp932.result
@@ -0,0 +1,19 @@
+flush logs;
+create table t3 (f text character set utf8);
+create table t4 (f text character set cp932);
+flush logs;
+rename table t3 to t03, t4 to t04;
+select HEX(f) from t03;
+HEX(f)
+E382BD
+select HEX(f) from t3;
+HEX(f)
+E382BD
+select HEX(f) from t04;
+HEX(f)
+835C
+select HEX(f) from t4;
+HEX(f)
+835C
+drop table t3, t4, t03, t04;
+End of 5.0 tests
diff --git a/mysql-test/r/mysqlbinlog.result b/mysql-test/r/mysqlbinlog.result
index bade0ca9b46..d16a4c39a11 100644
--- a/mysql-test/r/mysqlbinlog.result
+++ b/mysql-test/r/mysqlbinlog.result
@@ -1,109 +1,328 @@
set timestamp=1000000000;
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3,t4,t5,t03,t04;
create table t1 (word varchar(20));
create table t2 (id int auto_increment not null primary key);
insert into t1 values ("abirvalg");
insert into t2 values ();
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
insert into t1 values ("Alas");
flush logs;
--- Local --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1000000000;
-drop table if exists t1,t2;
-SET TIMESTAMP=1000000000;
-create table t1 (word varchar(20));
-SET TIMESTAMP=1000000000;
-create table t2 (id int auto_increment not null primary key);
-SET TIMESTAMP=1000000000;
-insert into t1 values ("abirvalg");
-SET INSERT_ID=1;
-SET TIMESTAMP=1000000000;
-insert into t2 values ();
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-1-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-2-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-3-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-4-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-5-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+drop table if exists t1,t2,t3,t4,t5,t03,t04/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create table t1 (word varchar(20))/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create table t2 (id int auto_increment not null primary key)/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 values ("abirvalg")/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t2 values ()/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-1-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-2-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-3-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-4-0' INTO table t1/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Broken LOAD DATA --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1000000000;
-insert into t1 values ("Alas");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values ("Alas")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --database --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=1;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=1/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1000000000;
-insert into t1 values ("Alas");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values ("Alas")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Remote --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1000000000;
-drop table if exists t1,t2;
-SET TIMESTAMP=1000000000;
-create table t1 (word varchar(20));
-SET TIMESTAMP=1000000000;
-create table t2 (id int auto_increment not null primary key);
-SET TIMESTAMP=1000000000;
-insert into t1 values ("abirvalg");
-SET INSERT_ID=1;
-SET TIMESTAMP=1000000000;
-insert into t2 values ();
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-1-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-2-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-3-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-4-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
-LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-5-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+drop table if exists t1,t2,t3,t4,t5,t03,t04/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create table t1 (word varchar(20))/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create table t2 (id int auto_increment not null primary key)/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 values ("abirvalg")/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t2 values ()/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-1-2' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-2-2' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-3-2' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-4-2' INTO table t1/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Broken LOAD DATA --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1000000000;
-insert into t1 values ("Alas");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values ("Alas")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --database --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=1;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=1/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1000000000;
-insert into t1 values ("Alas");
-flush logs;
-create table t3 (f text character set utf8);
-create table t4 (f text character set cp932);
-flush logs;
-rename table t3 to t03, t4 to t04;
-select HEX(f) from t03;
-HEX(f)
-E382BD
-select HEX(f) from t3;
-HEX(f)
-E382BD
-select HEX(f) from t04;
-HEX(f)
-835C
-select HEX(f) from t4;
-HEX(f)
-835C
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values ("Alas")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+
+--- reading stdin --
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1108844556/*!*/;
+BEGIN/*!*/;
+SET TIMESTAMP=1108844555/*!*/;
+insert t1 values (1)/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1108844556/*!*/;
+BEGIN/*!*/;
+SET TIMESTAMP=1108844555/*!*/;
+insert t1 values (1)/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+drop table t1,t2;
flush logs;
select * from t5 /* must be (1),(1) */;
a
1
1
-drop table t1, t2, t03, t04, t3, t4, t5;
+drop table t5;
+flush logs;
+create table t5 (c1 int, c2 varchar(128) character set latin1 not null);
+insert into t5 values (1, date_format('2001-01-01','%W'));
+set lc_time_names=de_DE;
+insert into t5 values (2, date_format('2001-01-01','%W'));
+set lc_time_names=en_US;
+insert into t5 values (3, date_format('2001-01-01','%W'));
+select * from t5 order by c1;
+c1 c2
+1 Monday
+2 Montag
+3 Monday
+flush logs;
+drop table t5;
+select * from t5 order by c1;
+c1 c2
+1 Monday
+2 Montag
+3 Monday
+drop table t5;
+drop procedure if exists p1;
+flush logs;
+create procedure p1()
+begin
+select 1;
+end;
+//
+flush logs;
+call p1();
+1
+1
+drop procedure p1;
+call p1();
+ERROR 42000: PROCEDURE test.p1 does not exist
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+CREATE DEFINER=`root`@`localhost` procedure p1()
+begin
+select 1;
+end/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+call p1();
+1
+1
+drop procedure p1;
+flush logs;
+create table t1 (a varchar(64) character set utf8);
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=latin1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=latin1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1 character set koi8r;
+select hex(a) from t1;
+hex(a)
+C3BF
+D0AA
+C3BF
+C3BF
+D0AA
+C3BF
+D0AA
+drop table t1;
+flush logs;
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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 varchar(64) character set utf8)/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-6-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.collation_database=7/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-7-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.collation_database=DEFAULT/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-8-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-9-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.collation_database=7/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-a-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.collation_database=DEFAULT/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-b-0' INTO table t1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-c-0' INTO table t1 character set koi8r/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+drop table t1/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+CREATE TABLE t1 (c1 CHAR(10));
+flush logs;
+INSERT INTO t1 VALUES ('0123456789');
+flush logs;
+DROP TABLE t1;
+# Query thread_id=REMOVED exec_time=REMOVED error_code=REMOVED
+flush logs;
+create table t1(a int);
+insert into t1 values(connection_id());
+flush logs;
+drop table t1;
+1
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/mysqlbinlog2.result b/mysql-test/r/mysqlbinlog2.result
index 3c1b85e05a1..03b0e16d32a 100644
--- a/mysql-test/r/mysqlbinlog2.result
+++ b/mysql-test/r/mysqlbinlog2.result
@@ -16,431 +16,792 @@ insert into t1 values(null, "f");
--- Local --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=1;
-use test;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=1/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+SET INSERT_ID=4/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+
+--- start and stop positions ---
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+SET INSERT_ID=4/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=3;
-use test;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=3/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Local with 2 binlogs on command line --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=1;
-use test;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=1/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+SET INSERT_ID=4/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=3;
-use test;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=3/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Remote --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=1;
-use test;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=1/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+SET INSERT_ID=4/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+
+--- start and stop positions ---
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+SET INSERT_ID=4/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=3;
-use test;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=3/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Remote with 2 binlogs on command line --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=1;
-use test;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=1/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+SET INSERT_ID=4/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET INSERT_ID=3;
-use test;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-use test;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET INSERT_ID=3/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+DELIMITER ;
+DELIMITER /*!*/;
+SET INSERT_ID=6/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- to-last-log --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-use test;
-SET TIMESTAMP=1579609942;
-create table t1 (a int auto_increment not null primary key, b char(3));
-SET INSERT_ID=1;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "a");
-SET INSERT_ID=2;
-SET TIMESTAMP=1579609942;
-insert into t1 values(null, "b");
-SET INSERT_ID=3;
-SET TIMESTAMP=1579609944;
-insert into t1 values(null, "c");
-SET INSERT_ID=4;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "d");
-SET INSERT_ID=5;
-SET TIMESTAMP=1579609946;
-insert into t1 values(null, "e");
-SET INSERT_ID=6;
-SET TIMESTAMP=1579609943;
-insert into t1 values(null, "f");
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+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))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "a")/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1579609942/*!*/;
+insert into t1 values(null, "b")/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1579609944/*!*/;
+insert into t1 values(null, "c")/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "d")/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1579609946/*!*/;
+insert into t1 values(null, "e")/*!*/;
+SET INSERT_ID=6/*!*/;
+SET TIMESTAMP=1579609943/*!*/;
+insert into t1 values(null, "f")/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- end of test --
drop table t1;
diff --git a/mysql-test/r/mysqlcheck.result b/mysql-test/r/mysqlcheck.result
new file mode 100644
index 00000000000..b2820df8f4c
--- /dev/null
+++ b/mysql-test/r/mysqlcheck.result
@@ -0,0 +1,44 @@
+DROP TABLE IF EXISTS t1;
+drop view if exists v1;
+drop database if exists client_test_db;
+mysql.columns_priv OK
+mysql.db OK
+mysql.func OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+mysql.columns_priv OK
+mysql.db OK
+mysql.func OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+create table t1 (a int);
+create view v1 as select * from t1;
+test.t1 OK
+test.t1 OK
+drop view v1;
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/mysqldump-compat.result b/mysql-test/r/mysqldump-compat.result
new file mode 100644
index 00000000000..f15cc7a1d7a
--- /dev/null
+++ b/mysql-test/r/mysqldump-compat.result
@@ -0,0 +1,4 @@
+CREATE DATABASE mysqldump_30126;
+USE mysqldump_30126;
+CREATE TABLE t1 (c1 int);
+DROP DATABASE mysqldump_30126;
diff --git a/mysql-test/r/mysqldump-max.result b/mysql-test/r/mysqldump-max.result
new file mode 100644
index 00000000000..261c7a7f197
--- /dev/null
+++ b/mysql-test/r/mysqldump-max.result
@@ -0,0 +1,279 @@
+drop table if exists t1, t2, t3, t4, t5, t6;
+create table t1 (id int(8), name varchar(32));
+create table t2 (id int(8), name varchar(32)) ENGINE="MyISAM";
+create table t3 (id int(8), name varchar(32)) ENGINE="MEMORY";
+create table t4 (id int(8), name varchar(32)) ENGINE="HEAP";
+create table t5 (id int(8), name varchar(32)) ENGINE="ARCHIVE";
+create table t6 (id int(8), name varchar(32)) ENGINE="InnoDB";
+insert into t1 values (1, 'first value');
+insert into t1 values (2, 'first value');
+insert into t1 values (3, 'first value');
+insert into t1 values (4, 'first value');
+insert into t1 values (5, 'first value');
+insert into t2 values (1, 'first value');
+insert into t2 values (2, 'first value');
+insert into t2 values (3, 'first value');
+insert into t2 values (4, 'first value');
+insert into t2 values (5, 'first value');
+insert into t3 values (1, 'first value');
+insert into t3 values (2, 'first value');
+insert into t3 values (3, 'first value');
+insert into t3 values (4, 'first value');
+insert into t3 values (5, 'first value');
+insert into t4 values (1, 'first value');
+insert into t4 values (2, 'first value');
+insert into t4 values (3, 'first value');
+insert into t4 values (4, 'first value');
+insert into t4 values (5, 'first value');
+insert into t5 values (1, 'first value');
+insert into t5 values (2, 'first value');
+insert into t5 values (3, 'first value');
+insert into t5 values (4, 'first value');
+insert into t5 values (5, 'first value');
+insert into t6 values (1, 'first value');
+insert into t6 values (2, 'first value');
+insert into t6 values (3, 'first value');
+insert into t6 values (4, 'first value');
+insert into t6 values (5, 'first value');
+select * from t1;
+id name
+1 first value
+2 first value
+3 first value
+4 first value
+5 first value
+select * from t2;
+id name
+1 first value
+2 first value
+3 first value
+4 first value
+5 first value
+select * from t3;
+id name
+1 first value
+2 first value
+3 first value
+4 first value
+5 first value
+select * from t4;
+id name
+1 first value
+2 first value
+3 first value
+4 first value
+5 first value
+select * from t5;
+id name
+1 first value
+2 first value
+3 first value
+4 first value
+5 first value
+select * from t6;
+id name
+1 first value
+2 first value
+3 first value
+4 first value
+5 first value
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT DELAYED IGNORE INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+INSERT DELAYED IGNORE INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t3` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
+INSERT DELAYED IGNORE INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t4`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t4` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
+INSERT DELAYED IGNORE INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t5`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t5` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
+INSERT DELAYED IGNORE INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t6`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t6` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
+INSERT IGNORE INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t6` ENABLE KEYS */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT DELAYED INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+INSERT DELAYED INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t3` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
+INSERT DELAYED INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t4`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t4` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
+INSERT DELAYED INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t5`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t5` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
+INSERT DELAYED INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
+DROP TABLE IF EXISTS `t6`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t6` (
+ `id` int(8) default NULL,
+ `name` varchar(32) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
+INSERT INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
+/*!40000 ALTER TABLE `t6` ENABLE KEYS */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+drop table t5;
+drop table t6;
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index 498fee2d037..ca0aa399a56 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -1,4 +1,8 @@
-DROP TABLE IF EXISTS t1, `"t"1`, t2, t3;
+DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa, t3;
+drop database if exists mysqldump_test_db;
+drop database if exists db1;
+drop database if exists db2;
+drop view if exists v1, v2, v3;
CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (1), (2);
<?xml version="1.0"?>
@@ -18,21 +22,38 @@ INSERT INTO t1 VALUES (1), (2);
</database>
</mysqldump>
DROP TABLE t1;
-CREATE TABLE t1 (a decimal(240, 20));
+#
+# Bug #2005
+#
+CREATE TABLE t1 (a decimal(64, 20));
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
("0987654321098765432109876543210987654321");
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
- `a` decimal(240,20) default NULL
+ `a` decimal(64,20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('0987654321098765432109876543210987654321.00000000000000000000');
+SET character_set_client = @saved_cs_client;
+INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('987654321098765432109876543210987654321.00000000000000000000');
DROP TABLE t1;
+#
+# Bug #2055
+#
CREATE TABLE t1 (a double);
-INSERT INTO t1 VALUES (-9e999999);
+INSERT INTO t1 VALUES ('-9e999999');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES (RES);
DROP TABLE t1;
+#
+# Bug #3361 mysqldump quotes DECIMAL values inconsistently
+#
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
INSERT INTO t1 VALUES (1.2345, 2.3456);
INSERT INTO t1 VALUES ('1.2345', 2.3456);
@@ -43,36 +64,48 @@ INSERT INTO t1 VALUES ('1.2345', 2.3456);
INSERT INTO t1 VALUES ("1.2345", 2.3456);
ERROR 42S22: Unknown column '1.2345' in 'field list'
SET SQL_MODE=@OLD_SQL_MODE;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
);
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -82,16 +115,22 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` decimal(10,5) default NULL,
`b` float default NULL
);
+SET character_set_client = @saved_cs_client;
INSERT INTO `t1` VALUES ('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456),('1.23450',2.3456);
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -107,7 +146,7 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
<table_structure name="t1">
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
<field Field="b" Type="text" Null="YES" Key="" Extra="" />
- <field Field="c" Type="char(3)" Null="YES" Key="" Extra="" />
+ <field Field="c" Type="varchar(3)" Null="YES" Key="" Extra="" />
</table_structure>
<table_data name="t1">
<row>
@@ -124,6 +163,9 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
</database>
</mysqldump>
DROP TABLE t1;
+#
+# Bug #1707
+#
CREATE TABLE t1 (`a"b"` char(2));
INSERT INTO t1 VALUES ("1\""), ("\"2");
<?xml version="1.0"?>
@@ -143,6 +185,10 @@ INSERT INTO t1 VALUES ("1\""), ("\"2");
</database>
</mysqldump>
DROP TABLE t1;
+#
+# Bug #1994
+# Bug #4261
+#
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
@@ -150,14 +196,19 @@ INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=koi8r;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
@@ -165,6 +216,7 @@ INSERT INTO `t1` VALUES ('абцде');
INSERT INTO `t1` VALUES (NULL);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -175,42 +227,57 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1;
+#
+# Bug #2634
+#
CREATE TABLE t1 (a int) ENGINE=MYISAM;
INSERT INTO t1 VALUES (1), (2);
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL40' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (1),(2);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (1),(2);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -218,30 +285,45 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1;
+#
+# Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
+#
create table ```a` (i int);
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE ```a` (
`i` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
drop table ```a`;
+#
+# Bug #2591 "mysqldump quotes names inconsistently"
+#
create table t1(a int);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -251,19 +333,25 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1" (
"a" int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -276,19 +364,25 @@ set global sql_mode='ANSI_QUOTES';
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -298,19 +392,25 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1" (
"a" int(11) default NULL
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -319,6 +419,9 @@ UNLOCK TABLES;
set global sql_mode='';
drop table t1;
+#
+# Bug #2705 'mysqldump --tab extra output'
+#
create table t1(a int);
insert into t1 values (1),(2),(3);
@@ -326,13 +429,19 @@ insert into t1 values (1),(2),(3);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
@@ -344,11 +453,16 @@ CREATE TABLE `t1` (
2
3
drop table t1;
+#
+# Bug #6101: create database problem
+#
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
@@ -357,6 +471,7 @@ drop table t1;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `test`;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -372,6 +487,8 @@ create database mysqldump_test_db character set latin2 collate latin2_bin;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
@@ -380,6 +497,7 @@ create database mysqldump_test_db character set latin2 collate latin2_bin;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_test_db` /*!40100 DEFAULT CHARACTER SET latin2 COLLATE latin2_bin */;
USE `mysqldump_test_db`;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -390,6 +508,12 @@ USE `mysqldump_test_db`;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
drop database mysqldump_test_db;
+#
+# Bug #7020
+# Check that we don't dump in UTF8 in compatible mode by default,
+# but use the default compiled values, or the values given in
+# --default-character-set=xxx. However, we should dump in UTF8
+# if it is explicitely set.
CREATE TABLE t1 (a CHAR(10));
INSERT INTO t1 VALUES (_latin1 'ÄÖÜß');
@@ -397,20 +521,26 @@ INSERT INTO t1 VALUES (_latin1 'ÄÖÜß');
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES ('ÄÖÜß');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -420,60 +550,85 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+#
+# Bug#8063: make test mysqldump [ fail ]
+# We cannot tes this command because its output depends
+# on --default-character-set incompiled into "mysqldump" program.
+# If the future we can move this command into a separate test with
+# checking that "mysqldump" is compiled with "latin1"
+#
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES ('Ž™šá');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES ('Ž™šá');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL323' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` char(10) default NULL
) TYPE=MyISAM;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES ('ÄÖÜß');
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -481,6 +636,9 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1;
+#
+# WL #2319: Exclude Tables from dump
+#
CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
INSERT INTO t1 VALUES (1),(2),(3);
@@ -490,20 +648,26 @@ INSERT INTO t2 VALUES (4),(5),(6);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
INSERT INTO `t2` VALUES (4),(5),(6);
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -515,6 +679,9 @@ UNLOCK TABLES;
DROP TABLE t1;
DROP TABLE t2;
+#
+# Bug #8830
+#
CREATE TABLE t1 (`b` blob);
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
@@ -522,20 +689,26 @@ INSERT INTO `t1` VALUES (0x602010000280100005E71A);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`b` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -546,28 +719,37 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1;
-CREATE TABLE t1 (a decimal(240, 20));
-INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
-("0987654321098765432109876543210987654321");
+#
+# Test for --insert-ignore
+#
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1),(2),(3);
+INSERT INTO t1 VALUES (4),(5),(6);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
- `a` decimal(240,20) default NULL
+ `a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
-INSERT IGNORE INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('0987654321098765432109876543210987654321.00000000000000000000');
+INSERT IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -582,18 +764,24 @@ UNLOCK TABLES;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
- `a` decimal(240,20) default NULL
+ `a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
-INSERT DELAYED IGNORE INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('0987654321098765432109876543210987654321.00000000000000000000');
+INSERT DELAYED IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -604,6 +792,10 @@ INSERT DELAYED IGNORE INTO `t1` VALUES ('12345678901234567890123456789012345678
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1;
+#
+# Bug #10286: mysqldump -c crashes on table that has many fields with long
+# names
+#
create table t1 (
F_c4ca4238a0b923820dcc509a6f75849b int,
F_c81e728d9d4c2f636f067f89cc14862c int,
@@ -941,11 +1133,15 @@ insert into t1 (F_8d3bba7425e7c98c50f52ca1b52d3735) values (1);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`F_c4ca4238a0b923820dcc509a6f75849b` int(11) default NULL,
`F_c81e728d9d4c2f636f067f89cc14862c` int(11) default NULL,
@@ -1278,12 +1474,14 @@ CREATE TABLE `t1` (
`F_6faa8040da20ef399b63a72d0e4ab575` int(11) default NULL,
`F_fe73f687e5bc5280214e0486b273a5f9` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` (`F_c4ca4238a0b923820dcc509a6f75849b`, `F_c81e728d9d4c2f636f067f89cc14862c`, `F_eccbc87e4b5ce2fe28308fd9f2a7baf3`, `F_a87ff679a2f3e71d9181a67b7542122c`, `F_e4da3b7fbbce2345d7772b0674a318d5`, `F_1679091c5a880faf6fb5e6087eb1b2dc`, `F_8f14e45fceea167a5a36dedd4bea2543`, `F_c9f0f895fb98ab9159f51fd0297e236d`, `F_45c48cce2e2d7fbdea1afc51c7c6ad26`, `F_d3d9446802a44259755d38e6d163e820`, `F_6512bd43d9caa6e02c990b0a82652dca`, `F_c20ad4d76fe97759aa27a0c99bff6710`, `F_c51ce410c124a10e0db5e4b97fc2af39`, `F_aab3238922bcc25a6f606eb525ffdc56`, `F_9bf31c7ff062936a96d3c8bd1f8f2ff3`, `F_c74d97b01eae257e44aa9d5bade97baf`, `F_70efdf2ec9b086079795c442636b55fb`, `F_6f4922f45568161a8cdf4ad2299f6d23`, `F_1f0e3dad99908345f7439f8ffabdffc4`, `F_98f13708210194c475687be6106a3b84`, `F_3c59dc048e8850243be8079a5c74d079`, `F_b6d767d2f8ed5d21a44b0e5886680cb9`, `F_37693cfc748049e45d87b8c7d8b9aacd`, `F_1ff1de774005f8da13f42943881c655f`, `F_8e296a067a37563370ded05f5a3bf3ec`, `F_4e732ced3463d06de0ca9a15b6153677`, `F_02e74f10e0327ad868d138f2b4fdd6f0`, `F_33e75ff09dd601bbe69f351039152189`, `F_6ea9ab1baa0efb9e19094440c317e21b`, `F_34173cb38f07f89ddbebc2ac9128303f`, `F_c16a5320fa475530d9583c34fd356ef5`, `F_6364d3f0f495b6ab9dcf8d3b5c6e0b01`, `F_182be0c5cdcd5072bb1864cdee4d3d6e`, `F_e369853df766fa44e1ed0ff613f563bd`, `F_1c383cd30b7c298ab50293adfecb7b18`, `F_19ca14e7ea6328a42e0eb13d585e4c22`, `F_a5bfc9e07964f8dddeb95fc584cd965d`, `F_a5771bce93e200c36f7cd9dfd0e5deaa`, `F_d67d8ab4f4c10bf22aa353e27879133c`, `F_d645920e395fedad7bbbed0eca3fe2e0`, `F_3416a75f4cea9109507cacd8e2f2aefc`, `F_a1d0c6e83f027327d8461063f4ac58a6`, `F_17e62166fc8586dfa4d1bc0e1742c08b`, `F_f7177163c833dff4b38fc8d2872f1ec6`, `F_6c8349cc7260ae62e3b1396831a8398f`, `F_d9d4f495e875a2e075a1a4a6e1b9770f`, `F_67c6a1e7ce56d3d6fa748ab6d9af3fd7`, `F_642e92efb79421734881b53e1e1b18b6`, `F_f457c545a9ded88f18ecee47145a72c0`, `F_c0c7c76d30bd3dcaefc96f40275bdc0a`, `F_2838023a778dfaecdc212708f721b788`, `F_9a1158154dfa42caddbd0694a4e9bdc8`, `F_d82c8d1619ad8176d665453cfb2e55f0`, `F_a684eceee76fc522773286a895bc8436`, `F_b53b3a3d6ab90ce0268229151c9bde11`, `F_9f61408e3afb633e50cdf1b20de6f466`, `F_72b32a1f754ba1c09b3695e0cb6cde7f`, `F_66f041e16a60928b05a7e228a89c3799`, `F_093f65e080a295f8076b1c5722a46aa2`, `F_072b030ba126b2f4b2374f342be9ed44`, `F_7f39f8317fbdb1988ef4c628eba02591`, `F_44f683a84163b3523afe57c2e008bc8c`, `F_03afdbd66e7929b125f8597834fa83a4`, `F_ea5d2f1c4608232e07d3aa3d998e5135`, `F_fc490ca45c00b1249bbe3554a4fdf6fb`, `F_3295c76acbf4caaed33c36b1b5fc2cb1`, `F_735b90b4568125ed6c3f678819b6e058`, `F_a3f390d88e4c41f2747bfa2f1b5f87db`, `F_14bfa6bb14875e45bba028a21ed38046`, `F_7cbbc409ec990f19c78c75bd1e06f215`, `F_e2c420d928d4bf8ce0ff2ec19b371514`, `F_32bb90e8976aab5298d5da10fe66f21d`, `F_d2ddea18f00665ce8623e36bd4e3c7c5`, `F_ad61ab143223efbc24c7d2583be69251`, `F_d09bf41544a3365a46c9077ebb5e35c3`, `F_fbd7939d674997cdb4692d34de8633c4`, `F_28dd2c7955ce926456240b2ff0100bde`, `F_35f4a8d465e6e1edc05f3d8ab658c551`, `F_d1fe173d08e959397adf34b1d77e88d7`, `F_f033ab37c30201f73f142449d037028d`, `F_43ec517d68b6edd3015b3edc9a11367b`, `F_9778d5d219c5080b9a6a17bef029331c`, `F_fe9fc289c3ff0af142b6d3bead98a923`, `F_68d30a9594728bc39aa24be94b319d21`, `F_3ef815416f775098fe977004015c6193`, `F_93db85ed909c13838ff95ccfa94cebd9`, `F_c7e1249ffc03eb9ded908c236bd1996d`, `F_2a38a4a9316c49e5a833517c45d31070`, `F_7647966b7343c29048673252e490f736`, `F_8613985ec49eb8f757ae6439e879bb2a`, `F_54229abfcfa5649e7003b83dd4755294`, `F_92cc227532d17e56e07902b254dfad10`, `F_98dce83da57b0395e163467c9dae521b`, `F_f4b9ec30ad9f68f89b29639786cb62ef`, `F_812b4ba287f5ee0bc9d43bbf5bbe87fb`, `F_26657d5ff9020d2abefe558796b99584`, `F_e2ef524fbf3d9fe611d5a8e90fefdc9c`, `F_ed3d2c21991e3bef5e069713af9fa6ca`, `F_ac627ab1ccbdb62ec96e702f07f6425b`, `F_f899139df5e1059396431415e770c6dd`, `F_38b3eff8baf56627478ec76a704e9b52`, `F_ec8956637a99787bd197eacd77acce5e`, `F_6974ce5ac660610b44d9b9fed0ff9548`, `F_c9e1074f5b3f9fc8ea15d152add07294`, `F_65b9eea6e1cc6bb9f0cd2a47751a186f`, `F_f0935e4cd5920aa6c7c996a5ee53a70f`, `F_a97da629b098b75c294dffdc3e463904`, `F_a3c65c2974270fd093ee8a9bf8ae7d0b`, `F_2723d092b63885e0d7c260cc007e8b9d`, `F_5f93f983524def3dca464469d2cf9f3e`, `F_698d51a19d8a121ce581499d7b701668`, `F_7f6ffaa6bb0b408017b62254211691b5`, `F_73278a4a86960eeb576a8fd4c9ec6997`, `F_5fd0b37cd7dbbb00f97ba6ce92bf5add`, `F_2b44928ae11fb9384c4cf38708677c48`, `F_c45147dee729311ef5b5c3003946c48f`, `F_eb160de1de89d9058fcb0b968dbbbd68`, `F_5ef059938ba799aaa845e1c2e8a762bd`, `F_07e1cd7dca89a1678042477183b7ac3f`, `F_da4fb5c6e93e74d3df8527599fa62642`, `F_4c56ff4ce4aaf9573aa5dff913df997a`, `F_a0a080f42e6f13b3a2df133f073095dd`, `F_202cb962ac59075b964b07152d234b70`, `F_c8ffe9a587b126f152ed3d89a146b445`, `F_3def184ad8f4755ff269862ea77393dd`, `F_069059b7ef840f0c74a814ec9237b6ec`, `F_ec5decca5ed3d6b8079e2e7e7bacc9f2`, `F_76dc611d6ebaafc66cc0879c71b5db5c`, `F_d1f491a404d6854880943e5c3cd9ca25`, `F_9b8619251a19057cff70779273e95aa6`, `F_1afa34a7f984eeabdbb0a7d494132ee5`, `F_65ded5353c5ee48d0b7d48c591b8f430`, `F_9fc3d7152ba9336a670e36d0ed79bc43`, `F_02522a2b2726fb0a03bb19f2d8d9524d`, `F_7f1de29e6da19d22b51c68001e7e0e54`, `F_42a0e188f5033bc65bf8d78622277c4e`, `F_3988c7f88ebcb58c6ce932b957b6f332`, `F_013d407166ec4fa56eb1e1f8cbe183b9`, `F_e00da03b685a0dd18fb6a08af0923de0`, `F_1385974ed5904a438616ff7bdb3f7439`, `F_0f28b5d49b3020afeecd95b4009adf4c`, `F_a8baa56554f96369ab93e4f3bb068c22`, `F_903ce9225fca3e988c2af215d4e544d3`, `F_0a09c8844ba8f0936c20bd791130d6b6`, `F_2b24d495052a8ce66358eb576b8912c8`, `F_a5e00132373a7031000fd987a3c9f87b`, `F_8d5e957f297893487bd98fa830fa6413`, `F_47d1e990583c9c67424d369f3414728e`, `F_f2217062e9a397a1dca429e7d70bc6ca`, `F_7ef605fc8dba5425d6965fbd4c8fbe1f`, `F_a8f15eda80c50adb0e71943adc8015cf`, `F_37a749d808e46495a8da1e5352d03cae`, `F_b3e3e393c77e35a4a3f3cbd1e429b5dc`, `F_1d7f7abc18fcb43975065399b0d1e48e`, `F_2a79ea27c279e471f4d180b08d62b00a`, `F_1c9ac0159c94d8d0cbedc973445af2da`, `F_6c4b761a28b734fe93831e3fb400ce87`, `F_06409663226af2f3114485aa4e0a23b4`, `F_140f6969d5213fd0ece03148e62e461e`, `F_b73ce398c39f506af761d2277d853a92`, `F_bd4c9ab730f5513206b999ec0d90d1fb`, `F_82aa4b0af34c2313a562076992e50aa3`, `F_0777d5c17d4066b82ab86dff8a46af6f`, `F_fa7cdfad1a5aaf8370ebeda47a1ff1c3`, `F_9766527f2b5d3e95d4a733fcfb77bd7e`, `F_7e7757b1e12abcb736ab9a754ffb617a`, `F_5878a7ab84fb43402106c575658472fa`, `F_006f52e9102a8d3be2fe5614f42ba989`, `F_3636638817772e42b59d74cff571fbb3`, `F_149e9677a5989fd342ae44213df68868`, `F_a4a042cf4fd6bfb47701cbc8a1653ada`, `F_1ff8a7b5dc7a7d1f0ed65aaa29c04b1e`, `F_f7e6c85504ce6e82442c770f7c8606f0`, `F_bf8229696f7a3bb4700cfddef19fa23f`, `F_82161242827b703e6acf9c726942a1e4`, `F_38af86134b65d0f10fe33d30dd76442e`, `F_96da2f590cd7246bbde0051047b0d6f7`, `F_8f85517967795eeef66c225f7883bdcb`, `F_8f53295a73878494e9bc8dd6c3c7104f`, `F_045117b0e0a11a242b9765e79cbf113f`, `F_fc221309746013ac554571fbd180e1c8`, `F_4c5bde74a8f110656874902f07378009`, `F_cedebb6e872f539bef8c3f919874e9d7`, `F_6cdd60ea0045eb7a6ec44c54d29ed402`, `F_eecca5b6365d9607ee5a9d336962c534`, `F_9872ed9fc22fc182d371c3e9ed316094`, `F_31fefc0e570cb3860f2a6d4b38c6490d`, `F_9dcb88e0137649590b755372b040afad`, `F_a2557a7b2e94197ff767970b67041697`, `F_cfecdb276f634854f3ef915e2e980c31`, `F_0aa1883c6411f7873cb83dacb17b0afc`, `F_58a2fc6ed39fd083f55d4182bf88826d`, `F_bd686fd640be98efaae0091fa301e613`, `F_a597e50502f5ff68e3e25b9114205d4a`, `F_0336dcbab05b9d5ad24f4333c7658a0e`, `F_084b6fbb10729ed4da8c3d3f5a3ae7c9`, `F_85d8ce590ad8981ca2c8286f79f59954`, `F_0e65972dce68dad4d52d063967f0a705`, `F_84d9ee44e457ddef7f2c4f25dc8fa865`, `F_3644a684f98ea8fe223c713b77189a77`, `F_757b505cfd34c64c85ca5b5690ee5293`, `F_854d6fae5ee42911677c739ee1734486`, `F_e2c0be24560d78c5e599c2a9c9d0bbd2`, `F_274ad4786c3abca69fa097b85867d9a4`, `F_eae27d77ca20db309e056e3d2dcd7d69`, `F_7eabe3a1649ffa2b3ff8c02ebfd5659f`, `F_69adc1e107f7f7d035d7baf04342e1ca`, `F_091d584fced301b442654dd8c23b3fc9`, `F_b1d10e7bafa4421218a51b1e1f1b0ba2`, `F_6f3ef77ac0e3619e98159e9b6febf557`, `F_eb163727917cbba1eea208541a643e74`, `F_1534b76d325a8f591b52d302e7181331`, `F_979d472a84804b9f647bc185a877a8b5`, `F_ca46c1b9512a7a8315fa3c5a946e8265`, `F_3b8a614226a953a8cd9526fca6fe9ba5`, `F_45fbc6d3e05ebd93369ce542e8f2322d`, `F_63dc7ed1010d3c3b8269faf0ba7491d4`, `F_e96ed478dab8595a7dbda4cbcbee168f`, `F_c0e190d8267e36708f955d7ab048990d`, `F_ec8ce6abb3e952a85b8551ba726a1227`, `F_060ad92489947d410d897474079c1477`, `F_bcbe3365e6ac95ea2c0343a2395834dd`, `F_115f89503138416a242f40fb7d7f338e`, `F_13fe9d84310e77f13a6d184dbf1232f3`, `F_d1c38a09acc34845c6be3a127a5aacaf`, `F_9cfdf10e8fc047a44b08ed031e1f0ed1`, `F_705f2172834666788607efbfca35afb3`, `F_74db120f0a8e5646ef5a30154e9f6deb`, `F_57aeee35c98205091e18d1140e9f38cf`, `F_6da9003b743b65f4c0ccd295cc484e57`, `F_9b04d152845ec0a378394003c96da594`, `F_be83ab3ecd0db773eb2dc1b0a17836a1`, `F_e165421110ba03099a1c0393373c5b43`, `F_289dff07669d7a23de0ef88d2f7129e7`, `F_577ef1154f3240ad5b9b413aa7346a1e`, `F_01161aaa0b6d1345dd8fe4e481144d84`, `F_539fd53b59e3bb12d203f45a912eeaf2`, `F_ac1dd209cbcc5e5d1c6e28598e8cbbe8`, `F_555d6702c950ecb729a966504af0a635`, `F_335f5352088d7d9bf74191e006d8e24c`, `F_f340f1b1f65b6df5b5e3f94d95b11daf`, `F_e4a6222cdb5b34375400904f03d8e6a5`, `F_cb70ab375662576bd1ac5aaf16b3fca4`, `F_9188905e74c28e489b44e954ec0b9bca`, `F_0266e33d3f546cb5436a10798e657d97`, `F_38db3aed920cf82ab059bfccbd02be6a`, `F_3cec07e9ba5f5bb252d13f5f431e4bbb`, `F_621bf66ddb7c962aa0d22ac97d69b793`, `F_077e29b11be80ab57e1a2ecabb7da330`, `F_6c9882bbac1c7093bd25041881277658`, `F_19f3cd308f1455b3fa09a282e0d496f4`, `F_03c6b06952c750899bb03d998e631860`, `F_c24cd76e1ce41366a4bbe8a49b02a028`, `F_c52f1bd66cc19d05628bd8bf27af3ad6`, `F_fe131d7f5a6b38b23cc967316c13dae2`, `F_f718499c1c8cef6730f9fd03c8125cab`, `F_d96409bf894217686ba124d7356686c9`, `F_502e4a16930e414107ee22b6198c578f`, `F_cfa0860e83a4c3a763a7e62d825349f7`, `F_a4f23670e1833f3fdb077ca70bbd5d66`, `F_b1a59b315fc9a3002ce38bbe070ec3f5`, `F_36660e59856b4de58a219bcf4e27eba3`, `F_8c19f571e251e61cb8dd3612f26d5ecf`, `F_d6baf65e0b240ce177cf70da146c8dc8`, `F_e56954b4f6347e897f954495eab16a88`, `F_f7664060cc52bc6f3d620bcedc94a4b6`, `F_eda80a3d5b344bc40f3bc04f65b7a357`, `F_8f121ce07d74717e0b1f21d122e04521`, `F_06138bc5af6023646ede0e1f7c1eac75`, `F_39059724f73a9969845dfe4146c5660e`, `F_7f100b7b36092fb9b06dfb4fac360931`, `F_7a614fd06c325499f1680b9896beedeb`, `F_4734ba6f3de83d861c3176a6273cac6d`, `F_d947bf06a885db0d477d707121934ff8`, `F_63923f49e5241343aa7acb6a06a751e7`, `F_db8e1af0cb3aca1ae2d0018624204529`, `F_20f07591c6fcb220ffe637cda29bb3f6`, `F_07cdfd23373b17c6b337251c22b7ea57`, `F_d395771085aab05244a4fb8fd91bf4ee`, `F_92c8c96e4c37100777c7190b76d28233`, `F_e3796ae838835da0b6f6ea37bcf8bcb7`, `F_6a9aeddfc689c1d0e3b9ccc3ab651bc5`, `F_0f49c89d1e7298bb9930789c8ed59d48`, `F_46ba9f2a6976570b0353203ec4474217`, `F_0e01938fc48a2cfb5f2217fbfb00722d`, `F_16a5cdae362b8d27a1d8f8c7b78b4330`, `F_918317b57931b6b7a7d29490fe5ec9f9`, `F_48aedb8880cab8c45637abc7493ecddd`, `F_839ab46820b524afda05122893c2fe8e`, `F_f90f2aca5c640289d0a29417bcb63a37`, `F_9c838d2e45b2ad1094d42f4ef36764f6`, `F_1700002963a49da13542e0726b7bb758`, `F_53c3bce66e43be4f209556518c2fcb54`, `F_6883966fd8f918a4aa29be29d2c386fb`, `F_49182f81e6a13cf5eaa496d51fea6406`, `F_d296c101daa88a51f6ca8cfc1ac79b50`, `F_9fd81843ad7f202f26c1a174c7357585`, `F_26e359e83860db1d11b6acca57d8ea88`, `F_ef0d3930a7b6c95bd2b32ed45989c61f`, `F_94f6d7e04a4d452035300f18b984988c`, `F_34ed066df378efacc9b924ec161e7639`, `F_577bcc914f9e55d5e4e4f82f9f00e7d4`, `F_11b9842e0a271ff252c1903e7132cd68`, `F_37bc2f75bf1bcfe8450a1a41c200364c`, `F_496e05e1aea0a9c4655800e8a7b9ea28`, `F_b2eb7349035754953b57a32e2841bda5`, `F_8e98d81f8217304975ccb23337bb5761`, `F_a8c88a0055f636e4a163a5e3d16adab7`, `F_eddea82ad2755b24c4e168c5fc2ebd40`, `F_06eb61b839a0cefee4967c67ccb099dc`, `F_9dfcd5e558dfa04aaf37f137a1d9d3e5`, `F_950a4152c2b4aa3ad78bdd6b366cc179`, `F_158f3069a435b314a80bdcb024f8e422`, `F_758874998f5bd0c393da094e1967a72b`, `F_ad13a2a07ca4b7642959dc0c4c740ab6`, `F_3fe94a002317b5f9259f82690aeea4cd`, `F_5b8add2a5d98b1a652ea7fd72d942dac`, `F_432aca3a1e345e339f35a30c8f65edce`, `F_8d3bba7425e7c98c50f52ca1b52d3735`, `F_320722549d1751cf3f247855f937b982`, `F_caf1a3dfb505ffed0d024130f58c5cfa`, `F_5737c6ec2e0716f3d8a7a5c4e0de0d9a`, `F_bc6dc48b743dc5d013b1abaebd2faed2`, `F_f2fc990265c712c49d51a18a32b39f0c`, `F_89f0fd5c927d466d6ec9a21b9ac34ffa`, `F_a666587afda6e89aec274a3657558a27`, `F_b83aac23b9528732c23cc7352950e880`, `F_cd00692c3bfe59267d5ecfac5310286c`, `F_6faa8040da20ef399b63a72d0e4ab575`, `F_fe73f687e5bc5280214e0486b273a5f9`) VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1294,6 +1492,9 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
drop table t1;
+#
+# Test for --add-drop-database
+#
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (1),(2),(3);
@@ -1301,6 +1502,8 @@ INSERT INTO t1 VALUES (1),(2),(3);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
@@ -1312,15 +1515,19 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET l
USE `test`;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (1),(2),(3);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1331,6 +1538,9 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1;
+#
+# Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
+#
CREATE DATABASE mysqldump_test_db;
USE mysqldump_test_db;
CREATE TABLE t1 ( a INT );
@@ -1342,18 +1552,27 @@ INSERT INTO t2 VALUES (1), (2);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1368,18 +1587,27 @@ CREATE TABLE `t2` (
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1389,8 +1617,35 @@ CREATE TABLE `t2` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+<?xml version="1.0"?>
+<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<database name="mysqldump_test_db">
+ <table_structure name="t1">
+ <field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
+ </table_structure>
+ <table_structure name="t2">
+ <field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
+ </table_structure>
+</database>
+</mysqldump>
+<?xml version="1.0"?>
+<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<database name="mysqldump_test_db">
+ <table_structure name="t1">
+ <field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
+ </table_structure>
+ <table_structure name="t2">
+ <field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
+ </table_structure>
+</database>
+</mysqldump>
DROP TABLE t1, t2;
DROP DATABASE mysqldump_test_db;
+#
+# Testing with tables and databases that don't exists
+# or contains illegal characters
+# (Bug #9358 mysqldump crashes if tablename starts with \)
+#
create database mysqldump_test_db;
use mysqldump_test_db;
create table t1(a varchar(30) primary key, b int not null);
@@ -1399,19 +1654,17 @@ create table t3(a varchar(30) primary key, b int not null);
test_sequence
------ Testing with illegal table names ------
mysqldump: Couldn't find table: "\d-2-1.sql"
-
mysqldump: Couldn't find table: "\t1"
-
mysqldump: Couldn't find table: "\t1"
-
mysqldump: Couldn't find table: "\\t1"
-
mysqldump: Couldn't find table: "t\1"
-
mysqldump: Couldn't find table: "t\1"
-
mysqldump: Couldn't find table: "t/1"
-
+mysqldump: Couldn't find table: "T_1"
+mysqldump: Couldn't find table: "T%1"
+mysqldump: Couldn't find table: "T'1"
+mysqldump: Couldn't find table: "T_1"
+mysqldump: Couldn't find table: "T_"
test_sequence
------ Testing with illegal database names ------
mysqldump: Got error: 1049: Unknown database 'mysqldump_test_d' when selecting the database
@@ -1419,6 +1672,9 @@ mysqldump: Got error: 1102: Incorrect database name 'mysqld\ump_test_db' when se
drop table t1, t2, t3;
drop database mysqldump_test_db;
use test;
+#
+# Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
+#
create table t1 (a int(10));
create table t2 (pk int primary key auto_increment,
a int(10), b varchar(30), c datetime, d blob, e text);
@@ -1475,6 +1731,9 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
</database>
</mysqldump>
drop table t1, t2;
+#
+# BUG #12123
+#
create table t1 (a text character set utf8, b text character set latin1);
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
select * from t1;
@@ -1485,7 +1744,13 @@ select * from t1;
a b
Osnabrück Köln
drop table t1;
+#
+# BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
+#
--fields-optionally-enclosed-by="
+#
+# BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
+#
create table `t1` (
t1_name varchar(255) default null,
t1_id int(10) unsigned not null auto_increment,
@@ -1523,6 +1788,9 @@ t1 CREATE TABLE `t1` (
KEY `t1_name` (`t1_name`)
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
drop table `t1`;
+#
+# Bug #18536: wrong table order
+#
create table t1(a int);
create table t2(a int);
create table t3(a int);
@@ -1531,22 +1799,34 @@ create table t3(a int);
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t3` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t2` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1557,6 +1837,9 @@ CREATE TABLE `t2` (
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
drop table t1, t2, t3;
+#
+# Bug #21288: mysqldump segmentation fault when using --where
+#
create table t1 (a int);
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` WHERE xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx': 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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 (1064)
mysqldump: Got error: 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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 when retrieving data from server
@@ -1565,15 +1848,21 @@ mysqldump: Got error: 1064: You have an error in your SQL syntax; check the manu
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1584,6 +1873,10 @@ CREATE TABLE `t1` (
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
drop table t1;
+#
+# BUG#13926: --order-by-primary fails if PKEY contains quote character
+#
+DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a b` INT,
`c"d` INT,
@@ -1591,23 +1884,29 @@ CREATE TABLE `t1` (
PRIMARY KEY (`a b`, `c"d`, `e``f`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
insert into t1 values (0815, 4711, 2006);
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE "t1" (
"a b" int(11) NOT NULL default '0',
"c""d" int(11) NOT NULL default '0',
"e`f" int(11) NOT NULL default '0',
PRIMARY KEY ("a b","c""d","e`f")
);
+SET character_set_client = @saved_cs_client;
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
INSERT INTO "t1" VALUES (815,4711,2006);
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1619,23 +1918,29 @@ UNLOCK TABLES;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
CREATE TABLE `t1` (
`a b` int(11) NOT NULL default '0',
`c"d` int(11) NOT NULL default '0',
`e``f` int(11) NOT NULL default '0',
PRIMARY KEY (`a b`,`c"d`,`e``f`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (815,4711,2006);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1647,3 +1952,1619 @@ UNLOCK TABLES;
DROP TABLE `t1`;
End of 4.1 tests
+#
+# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
+#
+create database db1;
+use db1;
+CREATE TABLE t2 (
+a varchar(30) default NULL,
+KEY a (a(5))
+);
+INSERT INTO t2 VALUES ('alfred');
+INSERT INTO t2 VALUES ('angie');
+INSERT INTO t2 VALUES ('bingo');
+INSERT INTO t2 VALUES ('waffle');
+INSERT INTO t2 VALUES ('lemon');
+create view v2 as select * from t2 where a like 'a%' with check option;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `a` varchar(30) default NULL,
+ KEY `a` (`a`(5))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t2` WRITE;
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+INSERT INTO `t2` VALUES ('alfred'),('angie'),('bingo'),('waffle'),('lemon');
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v2`;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE TABLE `v2` (
+ `a` varchar(30)
+) */;
+/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where (`t2`.`a` like _latin1'a%') */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop table t2;
+drop view v2;
+drop database db1;
+use test;
+#
+# Bug 10713 mysqldump includes database in create view and referenced tables
+#
+create database db2;
+use db2;
+create table t1 (a int);
+create table t2 (a int, b varchar(10), primary key(a));
+insert into t2 values (1, "on"), (2, "off"), (10, "pol"), (12, "meg");
+insert into t1 values (289), (298), (234), (456), (789);
+create view v1 as select * from t2;
+create view v2 as select * from t1;
+drop table t1, t2;
+drop view v1, v2;
+drop database db2;
+use test;
+create database db1;
+use db1;
+show tables;
+Tables_in_db1
+t1
+t2
+v1
+v2
+select * from t2 order by a;
+a b
+1 on
+2 off
+10 pol
+12 meg
+drop table t1, t2;
+drop database db1;
+use test;
+create table t1(a int);
+create view v1 as select * from t1;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v1`;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE TABLE `v1` (
+ `a` int(11)
+) */;
+/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v1` AS select `t1`.`a` AS `a` from `t1` */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop view v1;
+drop table t1;
+#
+# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
+#
+create database mysqldump_test_db;
+use mysqldump_test_db;
+CREATE TABLE t2 (
+a varchar(30) default NULL,
+KEY a (a(5))
+);
+INSERT INTO t2 VALUES ('alfred');
+INSERT INTO t2 VALUES ('angie');
+INSERT INTO t2 VALUES ('bingo');
+INSERT INTO t2 VALUES ('waffle');
+INSERT INTO t2 VALUES ('lemon');
+create view v2 as select * from t2 where a like 'a%' with check option;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `a` varchar(30) default NULL,
+ KEY `a` (`a`(5))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t2` WRITE;
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+INSERT INTO `t2` VALUES ('alfred'),('angie'),('bingo'),('waffle'),('lemon');
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v2`;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE TABLE `v2` (
+ `a` varchar(30)
+) */;
+/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where (`t2`.`a` like _latin1'a%') */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop table t2;
+drop view v2;
+drop database mysqldump_test_db;
+use test;
+#
+# Bug #9756
+#
+CREATE TABLE t1 (a char(10));
+INSERT INTO t1 VALUES ('\'');
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` char(10) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES ('\'');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+DROP TABLE t1;
+#
+# Bug #10927 mysqldump: Can't reload dump with view that consist of other view
+#
+create table t1(a int, b int, c varchar(30));
+insert into t1 values(1, 2, "one"), (2, 4, "two"), (3, 6, "three");
+create view v3 as
+select * from t1;
+create view v1 as
+select * from v3 where b in (1, 2, 3, 4, 5, 6, 7);
+create view v2 as
+select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL,
+ `b` int(11) default NULL,
+ `c` varchar(30) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1,2,'one'),(2,4,'two'),(3,6,'three');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v1`;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE TABLE `v1` (
+ `a` int(11),
+ `b` int(11),
+ `c` varchar(30)
+) */;
+DROP TABLE IF EXISTS `v2`;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE TABLE `v2` (
+ `a` int(11)
+) */;
+DROP TABLE IF EXISTS `v3`;
+/*!50001 DROP VIEW IF EXISTS `v3`*/;
+/*!50001 CREATE TABLE `v3` (
+ `a` int(11),
+ `b` int(11),
+ `c` varchar(30)
+) */;
+/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v1` AS select `v3`.`a` AS `a`,`v3`.`b` AS `b`,`v3`.`c` AS `c` from `v3` where (`v3`.`b` in (1,2,3,4,5,6,7)) */;
+/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v2` AS select `v3`.`a` AS `a` from (`v3` join `v1`) where ((`v1`.`a` = `v3`.`a`) and (`v3`.`b` = 3)) limit 1 */;
+/*!50001 DROP TABLE `v3`*/;
+/*!50001 DROP VIEW IF EXISTS `v3`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v3` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b`,`t1`.`c` AS `c` from `t1` */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop view v1, v2, v3;
+drop table t1;
+#
+# Test for dumping triggers
+#
+CREATE TABLE t1 (a int, b bigint default NULL);
+CREATE TABLE t2 (a int);
+create trigger trg1 before insert on t1 for each row
+begin
+if new.a > 10 then
+set new.a := 10;
+set new.a := 11;
+end if;
+end|
+create trigger trg2 before update on t1 for each row begin
+if old.a % 2 = 0 then set new.b := 12; end if;
+end|
+set sql_mode="traditional"|
+create trigger trg3 after update on t1 for each row
+begin
+if new.a = -1 then
+set @fired:= "Yes";
+end if;
+end|
+create trigger trg4 before insert on t2 for each row
+begin
+if new.a > 10 then
+set @fired:= "No";
+end if;
+end|
+set sql_mode=default|
+show triggers like "t1";
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 begin
+if new.a > 10 then
+set new.a := 10;
+set new.a := 11;
+end if;
+end BEFORE 0000-00-00 00:00:00 root@localhost
+trg2 UPDATE t1 begin
+if old.a % 2 = 0 then set new.b := 12; end if;
+end BEFORE 0000-00-00 00:00:00 root@localhost
+trg3 UPDATE t1 begin
+if new.a = -1 then
+set @fired:= "Yes";
+end if;
+end AFTER 0000-00-00 00:00:00 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
+INSERT INTO t1 (a) VALUES (1),(2),(3),(22);
+update t1 set a = 4 where a=3;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL,
+ `b` bigint(20) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1,NULL),(2,NULL),(4,NULL),(11,NULL);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+
+/*!50003 SET @SAVE_SQL_MODE=@@SQL_MODE*/;
+
+DELIMITER ;;
+/*!50003 SET SESSION SQL_MODE="" */;;
+/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg1` BEFORE INSERT ON `t1` FOR EACH ROW begin
+if new.a > 10 then
+set new.a := 10;
+set new.a := 11;
+end if;
+end */;;
+
+/*!50003 SET SESSION SQL_MODE="" */;;
+/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg2` BEFORE UPDATE ON `t1` FOR EACH ROW begin
+if old.a % 2 = 0 then set new.b := 12; end if;
+end */;;
+
+/*!50003 SET SESSION SQL_MODE="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER" */;;
+/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg3` AFTER UPDATE ON `t1` FOR EACH ROW begin
+if new.a = -1 then
+set @fired:= "Yes";
+end if;
+end */;;
+
+DELIMITER ;
+/*!50003 SET SESSION SQL_MODE=@SAVE_SQL_MODE*/;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t2` WRITE;
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+UNLOCK TABLES;
+
+/*!50003 SET @SAVE_SQL_MODE=@@SQL_MODE*/;
+
+DELIMITER ;;
+/*!50003 SET SESSION SQL_MODE="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER" */;;
+/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `trg4` BEFORE INSERT ON `t2` FOR EACH ROW begin
+if new.a > 10 then
+set @fired:= "No";
+end if;
+end */;;
+
+DELIMITER ;
+/*!50003 SET SESSION SQL_MODE=@SAVE_SQL_MODE*/;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL,
+ `b` bigint(20) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1,NULL),(2,NULL),(4,NULL),(11,NULL);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t2` WRITE;
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop table t1;
+show tables;
+Tables_in_test
+t1
+t2
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 begin
+if new.a > 10 then
+set new.a := 10;
+set new.a := 11;
+end if;
+end BEFORE # root@localhost
+trg2 UPDATE t1 begin
+if old.a % 2 = 0 then set new.b := 12; end if;
+end BEFORE # root@localhost
+trg3 UPDATE t1 begin
+if new.a = -1 then
+set @fired:= "Yes";
+end if;
+end AFTER # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
+trg4 INSERT t2 begin
+if new.a > 10 then
+set @fired:= "No";
+end if;
+end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
+DROP TABLE t1, t2;
+#
+# Bugs #9136, #12917: problems with --defaults-extra-file option
+#
+--port=1234
+--port=1234
+#
+# Test of fix to BUG 12597
+#
+DROP TABLE IF EXISTS `test1`;
+Warnings:
+Note 1051 Unknown table 'test1'
+CREATE TABLE `test1` (
+`a1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+DROP TABLE IF EXISTS `test2`;
+Warnings:
+Note 1051 Unknown table 'test2'
+CREATE TABLE `test2` (
+`a2` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TRIGGER `testref` BEFORE INSERT ON `test1` FOR EACH ROW BEGIN
+INSERT INTO test2 SET a2 = NEW.a1; END //
+INSERT INTO `test1` VALUES (1);
+SELECT * FROM `test2`;
+a2
+1
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+testref INSERT test1 BEGIN
+INSERT INTO test2 SET a2 = NEW.a1; END BEFORE NULL root@localhost
+SELECT * FROM `test1`;
+a1
+1
+SELECT * FROM `test2`;
+a2
+1
+DROP TRIGGER testref;
+DROP TABLE test1;
+DROP TABLE test2;
+#
+# BUG#9056 - mysqldump does not dump routines
+#
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS bug9056_func1;
+DROP FUNCTION IF EXISTS bug9056_func2;
+DROP PROCEDURE IF EXISTS bug9056_proc1;
+DROP PROCEDURE IF EXISTS bug9056_proc2;
+DROP PROCEDURE IF EXISTS `a'b`;
+CREATE TABLE t1 (id int);
+INSERT INTO t1 VALUES(1), (2), (3), (4), (5);
+CREATE FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) RETURN a+b //
+CREATE PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
+BEGIN SELECT a+b INTO c; end //
+create function bug9056_func2(f1 char binary) returns char binary
+begin
+set f1= concat( 'hello', f1 );
+return f1;
+end //
+CREATE PROCEDURE bug9056_proc2(OUT a INT)
+BEGIN
+select sum(id) from t1 into a;
+END //
+set sql_mode='ansi';
+create procedure `a'b` () select 1;
+set sql_mode='';
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `id` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2),(3),(4),(5);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DELIMITER ;;
+/*!50003 DROP FUNCTION IF EXISTS `bug9056_func1` */;;
+/*!50003 SET SESSION SQL_MODE=""*/;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11)
+RETURN a+b */;;
+/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
+/*!50003 DROP FUNCTION IF EXISTS `bug9056_func2` */;;
+/*!50003 SET SESSION SQL_MODE=""*/;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) CHARSET latin1
+begin
+set f1= concat( 'hello', f1 );
+return f1;
+end */;;
+/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
+/*!50003 DROP PROCEDURE IF EXISTS `a'b` */;;
+/*!50003 SET SESSION SQL_MODE="REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI"*/;;
+/*!50003 CREATE*/ /*!50020 DEFINER="root"@"localhost"*/ /*!50003 PROCEDURE "a'b"()
+select 1 */;;
+/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
+/*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc1` */;;
+/*!50003 SET SESSION SQL_MODE=""*/;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
+BEGIN SELECT a+b INTO c; end */;;
+/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
+/*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc2` */;;
+/*!50003 SET SESSION SQL_MODE=""*/;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc2`(OUT a INT)
+BEGIN
+select sum(id) from t1 into a;
+END */;;
+/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
+DELIMITER ;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+DROP FUNCTION bug9056_func1;
+DROP FUNCTION bug9056_func2;
+DROP PROCEDURE bug9056_proc1;
+DROP PROCEDURE bug9056_proc2;
+DROP PROCEDURE `a'b`;
+drop table t1;
+#
+# BUG# 13052 - mysqldump timestamp reloads broken
+#
+drop table if exists t1;
+create table t1 (`d` timestamp, unique (`d`));
+set time_zone='+00:00';
+insert into t1 values ('2003-10-25 22:00:00'),('2003-10-25 23:00:00');
+select * from t1;
+d
+2003-10-25 22:00:00
+2003-10-25 23:00:00
+set time_zone='Europe/Moscow';
+select * from t1;
+d
+2003-10-26 02:00:00
+2003-10-26 02:00:00
+set global time_zone='Europe/Moscow';
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `d` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ UNIQUE KEY `d` (`d`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES ('2003-10-25 22:00:00'),('2003-10-25 23:00:00');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `d` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ UNIQUE KEY `d` (`d`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES ('2003-10-26 02:00:00'),('2003-10-26 02:00:00');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop table t1;
+set global time_zone=default;
+set time_zone=default;
+#
+# Test of fix to BUG 13146 - ansi quotes break loading of triggers
+#
+DROP TABLE IF EXISTS `t1 test`;
+DROP TABLE IF EXISTS `t2 test`;
+CREATE TABLE `t1 test` (
+`a1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TABLE `t2 test` (
+`a2` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TRIGGER `test trig` BEFORE INSERT ON `t1 test` FOR EACH ROW BEGIN
+INSERT INTO `t2 test` SET a2 = NEW.a1; END //
+INSERT INTO `t1 test` VALUES (1);
+INSERT INTO `t1 test` VALUES (2);
+INSERT INTO `t1 test` VALUES (3);
+SELECT * FROM `t2 test`;
+a2
+1
+2
+3
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS "t1 test";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE "t1 test" (
+ "a1" int(11) default NULL
+);
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES "t1 test" WRITE;
+/*!40000 ALTER TABLE "t1 test" DISABLE KEYS */;
+INSERT INTO "t1 test" VALUES (1),(2),(3);
+/*!40000 ALTER TABLE "t1 test" ENABLE KEYS */;
+UNLOCK TABLES;
+
+/*!50003 SET @SAVE_SQL_MODE=@@SQL_MODE*/;
+
+DELIMITER ;;
+/*!50003 SET SESSION SQL_MODE="" */;;
+/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `test trig` BEFORE INSERT ON `t1 test` FOR EACH ROW BEGIN
+INSERT INTO `t2 test` SET a2 = NEW.a1; END */;;
+
+DELIMITER ;
+/*!50003 SET SESSION SQL_MODE=@SAVE_SQL_MODE*/;
+DROP TABLE IF EXISTS "t2 test";
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE "t2 test" (
+ "a2" int(11) default NULL
+);
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES "t2 test" WRITE;
+/*!40000 ALTER TABLE "t2 test" DISABLE KEYS */;
+INSERT INTO "t2 test" VALUES (1),(2),(3);
+/*!40000 ALTER TABLE "t2 test" ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+DROP TRIGGER `test trig`;
+DROP TABLE `t1 test`;
+DROP TABLE `t2 test`;
+#
+# BUG# 12838 mysqldump -x with views exits with error
+#
+drop table if exists t1;
+create table t1 (a int, b varchar(32), c varchar(32));
+insert into t1 values (1, 'first value', 'xxxx');
+insert into t1 values (2, 'second value', 'tttt');
+insert into t1 values (3, 'third value', 'vvv vvv');
+create view v1 as select * from t1;
+create view v0 as select * from v1;
+create view v2 as select * from v0;
+select * from v2;
+a b c
+1 first value xxxx
+2 second value tttt
+3 third value vvv vvv
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL,
+ `b` varchar(32) default NULL,
+ `c` varchar(32) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1,'first value','xxxx'),(2,'second value','tttt'),(3,'third value','vvv vvv');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v0`;
+/*!50001 DROP VIEW IF EXISTS `v0`*/;
+/*!50001 CREATE TABLE `v0` (
+ `a` int(11),
+ `b` varchar(32),
+ `c` varchar(32)
+) */;
+DROP TABLE IF EXISTS `v1`;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE TABLE `v1` (
+ `a` int(11),
+ `b` varchar(32),
+ `c` varchar(32)
+) */;
+DROP TABLE IF EXISTS `v2`;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE TABLE `v2` (
+ `a` int(11),
+ `b` varchar(32),
+ `c` varchar(32)
+) */;
+
+USE `test`;
+/*!50001 DROP TABLE `v0`*/;
+/*!50001 DROP VIEW IF EXISTS `v0`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v0` AS select `v1`.`a` AS `a`,`v1`.`b` AS `b`,`v1`.`c` AS `c` from `v1` */;
+/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b`,`t1`.`c` AS `c` from `t1` */;
+/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP VIEW IF EXISTS `v2`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v2` AS select `v0`.`a` AS `a`,`v0`.`b` AS `b`,`v0`.`c` AS `c` from `v0` */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop view v2;
+drop view v0;
+drop view v1;
+drop table t1;
+#
+# BUG#14554 - mysqldump does not separate words "ROW" and "BEGIN"
+# for tables with trigger created in the IGNORE_SPACE sql mode.
+#
+SET @old_sql_mode = @@SQL_MODE;
+SET SQL_MODE = IGNORE_SPACE;
+CREATE TABLE t1 (a INT);
+CREATE TRIGGER tr1 BEFORE INSERT ON t1
+FOR EACH ROW
+BEGIN
+SET new.a = 0;
+END|
+SET SQL_MODE = @old_sql_mode;
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `test`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+
+/*!50003 SET @SAVE_SQL_MODE=@@SQL_MODE*/;
+
+DELIMITER ;;
+/*!50003 SET SESSION SQL_MODE="IGNORE_SPACE" */;;
+/*!50003 CREATE */ /*!50017 DEFINER=`root`@`localhost` */ /*!50003 TRIGGER `tr1` BEFORE INSERT ON `t1` FOR EACH ROW BEGIN
+SET new.a = 0;
+END */;;
+
+DELIMITER ;
+/*!50003 SET SESSION SQL_MODE=@SAVE_SQL_MODE*/;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+DROP TRIGGER tr1;
+DROP TABLE t1;
+#
+# Bug #13318: Bad result with empty field and --hex-blob
+#
+create table t1 (a binary(1), b blob);
+insert into t1 values ('','');
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` binary(1) default NULL,
+ `b` blob
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (0x00,'');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` binary(1) default NULL,
+ `b` blob
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (0x00,'');
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop table t1;
+#
+# Bug 14871 Invalid view dump output
+#
+create table t1 (a int);
+insert into t1 values (289), (298), (234), (456), (789);
+create definer = CURRENT_USER view v1 as select * from t1;
+create SQL SECURITY INVOKER view v2 as select * from t1;
+create view v3 as select * from t1 with local check option;
+create algorithm=merge view v4 as select * from t1 with cascaded check option;
+create algorithm =temptable view v5 as select * from t1;
+drop table t1;
+drop view v1, v2, v3, v4, v5;
+show tables;
+Tables_in_test
+t1
+v1
+v2
+v3
+v4
+v5
+select * from v3 order by a;
+a
+234
+289
+298
+456
+789
+drop table t1;
+drop view v1, v2, v3, v4, v5;
+#
+# Bug #16878 dump of trigger
+#
+create table t1 (a int, created datetime);
+create table t2 (b int, created datetime);
+create trigger tr1 before insert on t1 for each row set
+new.created=now();
+create trigger tr2 after insert on t1
+for each row
+begin
+insert into t2 set b=new.a and created=new.created;
+end|
+drop trigger tr1;
+drop trigger tr2;
+drop table t1, t2;
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+tr1 INSERT t1 set
+new.created=now() BEFORE # root@localhost
+tr2 INSERT t1 begin
+insert into t2 set b=new.a and created=new.created;
+end AFTER # root@localhost
+drop trigger tr1;
+drop trigger tr2;
+drop table t1, t2;
+#
+# Bug#18462 mysqldump does not dump view structures correctly
+#
+create table t (qty int, price int);
+insert into t values(3, 50);
+insert into t values(5, 51);
+create view v1 as select qty, price, qty*price as value from t;
+create view v2 as select qty from v1;
+mysqldump {
+/*!50001 DROP TABLE `v1`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v1` AS select `t`.`qty` AS `qty`,`t`.`price` AS `price`,(`t`.`qty` * `t`.`price`) AS `value` from `t` */;
+
+} mysqldump {
+/*!50001 DROP TABLE `v2`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v2` AS select `v1`.`qty` AS `qty` from `v1` */;
+
+} mysqldump
+drop view v1;
+drop view v2;
+drop table t;
+#
+# Bug#14857 Reading dump files with single statement stored routines fails.
+# fixed by patch for bug#16878
+#
+/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
+return 42 */|
+/*!50003 CREATE PROCEDURE `p`()
+select 42 */|
+show create function f;
+Function sql_mode Create Function
+f CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS bigint(20)
+return 42
+show create procedure p;
+Procedure sql_mode Create Procedure
+p CREATE DEFINER=`root`@`localhost` PROCEDURE `p`()
+select 42
+drop function f;
+drop procedure p;
+#
+# Bug #17371 Unable to dump a schema with invalid views
+#
+create table t1 ( id serial );
+create view v1 as select * from t1;
+drop table t1;
+mysqldump {
+
+-- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
+
+} mysqldump
+drop view v1;
+# BUG#17201 Spurious 'DROP DATABASE' in output,
+# also confusion between tables and views.
+# Example code from Markus Popp
+create database mysqldump_test_db;
+use mysqldump_test_db;
+create table t1 (id int);
+create view v1 as select * from t1;
+insert into t1 values (1232131);
+insert into t1 values (4711);
+insert into t1 values (3231);
+insert into t1 values (0815);
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+/*!40000 DROP DATABASE IF EXISTS `mysqldump_test_db`*/;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_test_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `mysqldump_test_db`;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `id` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1232131),(4711),(3231),(815);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `v1`;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE TABLE `v1` (
+ `id` int(11)
+) */;
+
+USE `mysqldump_test_db`;
+/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP VIEW IF EXISTS `v1`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `v1` AS select `t1`.`id` AS `id` from `t1` */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+drop view v1;
+drop table t1;
+drop database mysqldump_test_db;
+#
+# Bug21014 Segmentation fault of mysqldump on view
+#
+create database mysqldump_tables;
+use mysqldump_tables;
+create table basetable ( id serial, tag varchar(64) );
+create database mysqldump_views;
+use mysqldump_views;
+create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_tables.basetable;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_tables` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `mysqldump_tables`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `basetable` (
+ `id` bigint(20) unsigned NOT NULL auto_increment,
+ `tag` varchar(64) default NULL,
+ UNIQUE KEY `id` (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_views` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `mysqldump_views`;
+/*!50001 CREATE TABLE `nasishnasifu` (
+ `id` bigint(20) unsigned
+) */;
+
+USE `mysqldump_tables`;
+
+USE `mysqldump_views`;
+/*!50001 DROP TABLE `nasishnasifu`*/;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `mysqldump_views`.`nasishnasifu` AS select `mysqldump_tables`.`basetable`.`id` AS `id` from `mysqldump_tables`.`basetable` */;
+drop view nasishnasifu;
+drop database mysqldump_views;
+drop table mysqldump_tables.basetable;
+drop database mysqldump_tables;
+#
+# Bug20221 Dumping of multiple databases containing view(s) yields maleformed dumps
+#
+create database mysqldump_dba;
+use mysqldump_dba;
+create table t1 (f1 int, f2 int);
+insert into t1 values (1,1);
+create view v1 as select f1, f2 from t1;
+create database mysqldump_dbb;
+use mysqldump_dbb;
+create table t1 (f1 int, f2 int);
+insert into t1 values (2,2);
+create view v1 as select f1, f2 from t1;
+drop view v1;
+drop table t1;
+drop database mysqldump_dbb;
+use mysqldump_dba;
+drop view v1;
+drop table t1;
+drop database mysqldump_dba;
+select * from mysqldump_dba.v1;
+f1 f2
+1 1
+select * from mysqldump_dbb.v1;
+f1 f2
+2 2
+use mysqldump_dba;
+drop view v1;
+drop table t1;
+drop database mysqldump_dba;
+use mysqldump_dbb;
+drop view v1;
+drop table t1;
+drop database mysqldump_dbb;
+use test;
+#
+# Bug#21215 mysqldump creating incomplete backups without warning
+#
+create user mysqltest_1@localhost;
+create table t1(a int, b varchar(34));
+reset master;
+mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
+mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
+grant RELOAD on *.* to mysqltest_1@localhost;
+mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
+mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
+grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
+CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=537;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL,
+ `b` varchar(34) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+drop table t1;
+drop user mysqltest_1@localhost;
+#
+# Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
+# information_schema database.
+#
+# Bug #21424 mysqldump failing to export/import views
+#
+create database mysqldump_myDB;
+use mysqldump_myDB;
+create user myDB_User@localhost;
+grant create, create view, select, insert on mysqldump_myDB.* to myDB_User@localhost;
+create table t1 (c1 int);
+insert into t1 values (3);
+use mysqldump_myDB;
+create table u1 (f1 int);
+insert into u1 values (4);
+create view v1 (c1) as select * from t1;
+use mysqldump_myDB;
+drop view v1;
+drop table t1;
+drop table u1;
+revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
+drop user myDB_User@localhost;
+drop database mysqldump_myDB;
+flush privileges;
+# Bug #21424 continues from here.
+# Restore. Flush Privileges test ends.
+#
+use mysqldump_myDB;
+select * from mysqldump_myDB.v1;
+c1
+3
+select * from mysqldump_myDB.u1;
+f1
+4
+use mysqldump_myDB;
+drop view v1;
+drop table t1;
+drop table u1;
+revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
+drop user myDB_User@localhost;
+drop database mysqldump_myDB;
+use test;
+#
+# Bug #19745: mysqldump --xml produces invalid xml
+#
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (f1 int(10), data MEDIUMBLOB);
+INSERT INTO t1 VALUES(1,0xff00fef0);
+<?xml version="1.0"?>
+<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<database name="test">
+ <table_structure name="t1">
+ <field Field="f1" Type="int(10)" Null="YES" Key="" Extra="" />
+ <field Field="data" Type="mediumblob" Null="YES" Key="" Extra="" />
+ </table_structure>
+ <table_data name="t1">
+ <row>
+ <field name="f1">1</field>
+ <field name="data" xsi:type="xs:hexBinary">FF00FEF0</field>
+ </row>
+ </table_data>
+</database>
+</mysqldump>
+DROP TABLE t1;
+#
+# Bug#26346: stack + buffer overrun in mysqldump
+#
+CREATE TABLE t1(a int);
+INSERT INTO t1 VALUES (1), (2);
+mysqldump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+DROP TABLE t1;
+CREATE TABLE t2 (a int);
+CREATE TABLE t3 (a int);
+CREATE TABLE t1 (a int) ENGINE=merge UNION=(t2, t3);
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t2`,`t3`);
+SET character_set_client = @saved_cs_client;
+DROP TABLE IF EXISTS `t2`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t2` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t2` WRITE;
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+UNLOCK TABLES;
+DROP TABLE IF EXISTS `t3`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t3` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t3` WRITE;
+/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
+/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+DROP TABLE t1, t2, t3;
+#
+# Bug #23491: MySQLDump prefix function call in a view by database name
+#
+create database bug23491_original;
+create database bug23491_restore;
+use bug23491_original;
+create table t1 (c1 int);
+create view v1 as select * from t1;
+create procedure p1() select 1;
+create function f1() returns int return 1;
+create view v2 as select f1();
+create function f2() returns int return f1();
+create view v3 as select bug23491_original.f1();
+use bug23491_restore;
+show create view bug23491_restore.v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `f1`() AS `f1()`
+show create view bug23491_restore.v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `bug23491_original`.`f1`() AS `bug23491_original.f1()`
+drop database bug23491_original;
+drop database bug23491_restore;
+use test;
+#
+# Bug 27293: mysqldump crashes when dumping routines
+# defined by a different user
+#
+# Bug #22761: mysqldump reports no errors when using
+# --routines without mysql.proc privileges
+#
+create database mysqldump_test_db;
+grant all privileges on mysqldump_test_db.* to user1;
+grant all privileges on mysqldump_test_db.* to user2;
+create procedure mysqldump_test_db.sp1() select 'hello';
+
+/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;
+DELIMITER ;;
+
+-- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
+-- does user2 have permissions on mysql.proc?
+
+DELIMITER ;
+
+/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;
+DELIMITER ;;
+/*!50003 SET SESSION SQL_MODE=""*/;;
+/*!50003 CREATE*/ /*!50020 DEFINER=`user1`@`%`*/ /*!50003 PROCEDURE `sp1`()
+select 'hello' */;;
+/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
+DELIMITER ;
+drop procedure sp1;
+drop user user1;
+drop user user2;
+drop database mysqldump_test_db;
+#
+# Bug #28522: buffer overrun by '\0' byte using --hex-blob.
+#
+CREATE TABLE t1 (c1 INT, c2 LONGBLOB);
+INSERT INTO t1 SET c1=11, c2=REPEAT('q',509);
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `c1` int(11) default NULL,
+ `c2` longblob
+);
+SET character_set_client = @saved_cs_client;
+INSERT INTO `t1` VALUES (11,0x7171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171);
+DROP TABLE t1;
+#
+# Bug #28524: mysqldump --skip-add-drop-table is not
+# compatible with views
+#
+CREATE VIEW v1 AS SELECT 1;
+DROP VIEW v1;
+SELECT * FROM v1;
+1
+1
+DROP VIEW v1;
+#
+# Bug #29788: mysqldump discards the NO_AUTO_VALUE_ON_ZERO value of
+# the SQL_MODE variable after the dumping of triggers.
+#
+CREATE TABLE t1 (c1 INT);
+CREATE TRIGGER t1bd BEFORE DELETE ON t1 FOR EACH ROW BEGIN END;
+CREATE TABLE t2 (c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
+SET @TMP_SQL_MODE = @@SQL_MODE;
+SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO';
+INSERT INTO t2 VALUES (0), (1), (2);
+SET SQL_MODE = @TMP_SQL_MODE;
+SELECT * FROM t2;
+c1
+0
+1
+2
+SELECT * FROM t2;
+c1
+0
+1
+2
+DROP TABLE t1,t2;
+#
+# Bug#29815: new option for suppressing last line of mysqldump:
+# "Dump completed on"
+#
+# --skip-dump-date:
+--
+
+
+
+-- Dump completed
+# --dump-date:
+--
+
+
+
+-- Dump completed on DATE
+# --dump-date (default):
+--
+
+
+
+-- Dump completed on DATE
+#
+# End of 5.0 tests
+#
diff --git a/mysql-test/r/mysqlshow.result b/mysql-test/r/mysqlshow.result
new file mode 100644
index 00000000000..2bf8a58de4e
--- /dev/null
+++ b/mysql-test/r/mysqlshow.result
@@ -0,0 +1,126 @@
+DROP TABLE IF EXISTS t1,t2,test1,test2;
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1),(2),(3);
+CREATE TABLE t2 (a int, b int);
+show tables;
+Tables_in_test
+t1
+t2
+select "--------------------" as "";
+
+--------------------
+Database: test
++--------+
+| Tables |
++--------+
+| t1 |
+| t2 |
++--------+
+select "---- -v ------------" as "";
+
+---- -v ------------
+Database: test
++--------+----------+
+| Tables | Columns |
++--------+----------+
+| t1 | 1 |
+| t2 | 2 |
++--------+----------+
+2 rows in set.
+
+select "---- -v -v ---------" as "";
+
+---- -v -v ---------
+Database: test
++--------+----------+------------+
+| Tables | Columns | Total Rows |
++--------+----------+------------+
+| t1 | 1 | 3 |
+| t2 | 2 | 0 |
++--------+----------+------------+
+2 rows in set.
+
+select "----- -t -----------" as "";
+
+----- -t -----------
+Database: test
++--------+------------+
+| Tables | table_type |
++--------+------------+
+| t1 | BASE TABLE |
+| t2 | BASE TABLE |
++--------+------------+
+select "---- -v -t ---------" as "";
+
+---- -v -t ---------
+Database: test
++--------+------------+----------+
+| Tables | table_type | Columns |
++--------+------------+----------+
+| t1 | BASE TABLE | 1 |
+| t2 | BASE TABLE | 2 |
++--------+------------+----------+
+2 rows in set.
+
+select "---- -v -v -t ------" as "";
+
+---- -v -v -t ------
+Database: test
++--------+------------+----------+------------+
+| Tables | table_type | Columns | Total Rows |
++--------+------------+----------+------------+
+| t1 | BASE TABLE | 1 | 3 |
+| t2 | BASE TABLE | 2 | 0 |
++--------+------------+----------+------------+
+2 rows in set.
+
+DROP TABLE t1, t2;
+Database: information_schema
++---------------------------------------+
+| Tables |
++---------------------------------------+
+| CHARACTER_SETS |
+| COLLATIONS |
+| COLLATION_CHARACTER_SET_APPLICABILITY |
+| COLUMNS |
+| COLUMN_PRIVILEGES |
+| KEY_COLUMN_USAGE |
+| ROUTINES |
+| SCHEMATA |
+| SCHEMA_PRIVILEGES |
+| STATISTICS |
+| TABLES |
+| TABLE_CONSTRAINTS |
+| TABLE_PRIVILEGES |
+| TRIGGERS |
+| USER_PRIVILEGES |
+| VIEWS |
++---------------------------------------+
+Database: INFORMATION_SCHEMA
++---------------------------------------+
+| Tables |
++---------------------------------------+
+| CHARACTER_SETS |
+| COLLATIONS |
+| COLLATION_CHARACTER_SET_APPLICABILITY |
+| COLUMNS |
+| COLUMN_PRIVILEGES |
+| KEY_COLUMN_USAGE |
+| ROUTINES |
+| SCHEMATA |
+| SCHEMA_PRIVILEGES |
+| STATISTICS |
+| TABLES |
+| TABLE_CONSTRAINTS |
+| TABLE_PRIVILEGES |
+| TRIGGERS |
+| USER_PRIVILEGES |
+| VIEWS |
++---------------------------------------+
+Wildcard: inf_rmation_schema
++--------------------+
+| Databases |
++--------------------+
+| information_schema |
++--------------------+
+End of 5.0 tests
diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result
index c71fbc4f5e0..d03e21b1bb0 100644
--- a/mysql-test/r/mysqltest.result
+++ b/mysql-test/r/mysqltest.result
@@ -180,7 +180,7 @@ mysqltest: At line 1: Invalid argument to error: '1sssss' - the errno may only c
mysqltest: At line 1: The sqlstate must be exactly 5 chars long
mysqltest: At line 1: The sqlstate may only consist of digits[0-9] and _uppercase_ letters
mysqltest: At line 1: The sqlstate must be exactly 5 chars long
-mysqltest: At line 1: Not available in this version of mysqltest
+mysqltest: At line 1: Unknown SQL error name 'E9999'
mysqltest: At line 1: Invalid argument to error: '999e9' - the errno may only consist of digits[0-9]
mysqltest: At line 1: Invalid argument to error: '9b' - the errno may only consist of digits[0-9]
mysqltest: At line 1: Too many errorcodes specified
@@ -268,11 +268,32 @@ mysqltest: At line 1: Missing assignment operator in let
1
# Execute: echo $success ;
1
+# Check if let $B = $A is an assignment per value.
+let $A = initial value of A;
+let $B = initial value of B;
+let $B = $A
+# Content of $A is: initial value of B
+let $A = changed value of A;
+# Content of $B is: initial value of B
+let $B = changed value of B;
+# Content of $A is: changed value of A
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
@@ -331,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"
@@ -402,7 +425,6 @@ mysqltest: At line 1: Wrong column number to replace_column in 'replace_column a
mysqltest: At line 1: Wrong column number to replace_column in 'replace_column a 1'
mysqltest: At line 1: Wrong column number to replace_column in 'replace_column 1 b c '
mysqltest: At line 1: Invalid integer argument "10!"
-mysqltest: At line 1: End of line junk detected: "!"
mysqltest: At line 1: Invalid integer argument "a"
mysqltest: At line 1: Missing required argument 'connection name' to command 'connect'
mysqltest: At line 1: Missing required argument 'connection name' to command 'connect'
@@ -412,10 +434,12 @@ mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: 1
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal option to connect: SMTP
OK
-mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 7: Connection limit exhausted, you can have max 128 connections
+mysqltest: The test didn't produce any output
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 2: Connection test_con1 already exists
connect(localhost,root,,test,MASTER_PORT,MASTER_SOCKET);
+show tables;
+ERROR 3D000: No database selected
Output from mysqltest-x.inc
Output from mysqltest-x.inc
Output from mysqltest-x.inc
@@ -451,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);
@@ -463,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);
@@ -510,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/named_pipe.result b/mysql-test/r/named_pipe.result
new file mode 100644
index 00000000000..5d22fe4a69b
--- /dev/null
+++ b/mysql-test/r/named_pipe.result
@@ -0,0 +1,2153 @@
+drop table if exists t1,t2,t3,t4;
+CREATE TABLE t1 (
+Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
+Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
+);
+INSERT INTO t1 VALUES (9410,9412);
+select period from t1;
+period
+9410
+select * from t1;
+Period Varor_period
+9410 9412
+select t1.* from t1;
+Period Varor_period
+9410 9412
+CREATE TABLE t2 (
+auto int not null auto_increment,
+fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
+companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
+fld3 char(30) DEFAULT '' NOT NULL,
+fld4 char(35) DEFAULT '' NOT NULL,
+fld5 char(35) DEFAULT '' NOT NULL,
+fld6 char(4) DEFAULT '' NOT NULL,
+UNIQUE fld1 (fld1),
+KEY fld3 (fld3),
+PRIMARY KEY (auto)
+);
+select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
+fld3
+imaginable
+select fld3 from t2 where fld3 like "%cultivation" ;
+fld3
+cultivation
+select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3,companynr from t2 where companynr = 58 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3 from t2 order by fld3 desc limit 10;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select fld3 from t2 order by fld3 desc limit 5;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+select fld3 from t2 order by fld3 desc limit 5,5;
+fld3
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select t2.fld3 from t2 where fld3 = 'honeysuckle';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'h%le';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
+fld3
+select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
+fld3
+explain select t2.fld3 from t2 where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld1) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3,not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+explain select fld3 from t2 use index (not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+fld3
+honeysuckle
+honoring
+explain select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld3 fld3 30 NULL 2 Using where; Using index
+select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
+fld1 fld3
+148504 Colombo
+068305 Colombo
+000000 nondecreasing
+select fld1,fld3 from t2 where companynr = 37 and fld3 = 'appendixes';
+fld1 fld3
+232605 appendixes
+1232605 appendixes
+1232606 appendixes
+1232607 appendixes
+1232608 appendixes
+1232609 appendixes
+select fld1 from t2 where fld1=250501 or fld1="250502";
+fld1
+250501
+250502
+explain select fld1 from t2 where fld1=250501 or fld1="250502";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 2 Using where; Using index
+select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+fld1
+250501
+250502
+250505
+250601
+explain select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
+select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
+fld1 fld3
+218401 faithful
+018007 fanatic
+228311 fated
+018017 featherweight
+218022 feed
+088303 feminine
+058004 Fenton
+038017 fetched
+018054 fetters
+208101 fiftieth
+238007 filial
+013606 fingerings
+218008 finishers
+038205 firearm
+188505 fitting
+202301 Fitzpatrick
+238008 fixedly
+012001 flanking
+018103 flint
+018104 flopping
+188007 flurried
+013602 foldout
+226205 foothill
+232102 forgivably
+228306 forthcoming
+186002 freakish
+208113 freest
+231315 freezes
+036002 funereal
+226209 furnishings
+198006 furthermore
+select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
+fld3
+select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
+fld3
+Chantilly
+select fld1,fld3 from t2 where fld1 like "25050%";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select fld1,fld3 from t2 where fld1 like "25050_";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select distinct companynr from t2;
+companynr
+00
+37
+36
+50
+58
+29
+40
+53
+65
+41
+34
+68
+select distinct companynr from t2 order by companynr;
+companynr
+00
+29
+34
+36
+37
+40
+41
+50
+53
+58
+65
+68
+select distinct companynr from t2 order by companynr desc;
+companynr
+68
+65
+58
+53
+50
+41
+40
+37
+36
+34
+29
+00
+select distinct t2.fld3,period from t2,t1 where companynr=37 and fld3 like "O%";
+fld3 period
+obliterates 9410
+offload 9410
+opaquely 9410
+organizer 9410
+overestimating 9410
+overlay 9410
+select distinct fld3 from t2 where companynr = 34 order by fld3;
+fld3
+absentee
+accessed
+ahead
+alphabetic
+Asiaticizations
+attitude
+aye
+bankruptcies
+belays
+Blythe
+bomb
+boulevard
+bulldozes
+cannot
+caressing
+charcoal
+checksumming
+chess
+clubroom
+colorful
+cosy
+creator
+crying
+Darius
+diffusing
+duality
+Eiffel
+Epiphany
+Ernestine
+explorers
+exterminated
+famine
+forked
+Gershwins
+heaving
+Hodges
+Iraqis
+Italianization
+Lagos
+landslide
+libretto
+Majorca
+mastering
+narrowed
+occurred
+offerers
+Palestine
+Peruvianizes
+pharmaceutic
+poisoning
+population
+Pygmalion
+rats
+realest
+recording
+regimented
+retransmitting
+reviver
+rouses
+scars
+sicker
+sleepwalk
+stopped
+sugars
+translatable
+uncles
+unexpected
+uprisings
+versatility
+vest
+select distinct fld3 from t2 limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct fld3 from t2 having fld3 like "A%" limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%";
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+Adl
+adm
+Ado
+ads
+adv
+aer
+aff
+afi
+afl
+afo
+agi
+ahe
+aim
+air
+Ald
+alg
+ali
+all
+alp
+alr
+ama
+ame
+amm
+ana
+and
+ane
+Ang
+ani
+Ann
+Ant
+api
+app
+aqu
+Ara
+arc
+Arm
+arr
+Art
+Asi
+ask
+asp
+ass
+ast
+att
+aud
+Aug
+aut
+ave
+avo
+awe
+aye
+Azt
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" order by a limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%" limit 10;
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+create table t3 (
+period int not null,
+name char(32) not null,
+companynr int not null,
+price double(11,0),
+price2 double(11,0),
+key (period),
+key (name)
+);
+create temporary table tmp engine = myisam select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+alter table t3 add t2nr int not null auto_increment primary key first;
+drop table tmp;
+SET SQL_BIG_TABLES=1;
+select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10;
+namn
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+SET SQL_BIG_TABLES=0;
+select distinct concat(fld3," ",fld3) from t2,t3 where t2.fld1=t3.t2nr order by fld3 limit 10;
+concat(fld3," ",fld3)
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+select distinct fld5 from t2 limit 10;
+fld5
+neat
+Steinberg
+jarring
+tinily
+balled
+persist
+attainments
+fanatic
+measures
+rightfulness
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=1;
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=0;
+select distinct fld3,repeat("a",length(fld3)),count(*) from t2 group by companynr,fld3 limit 100,10;
+fld3 repeat("a",length(fld3)) count(*)
+circus aaaaaa 1
+cited aaaaa 1
+Colombo aaaaaaa 1
+congresswoman aaaaaaaaaaaaa 1
+contrition aaaaaaaaaa 1
+corny aaaaa 1
+cultivation aaaaaaaaaaa 1
+definiteness aaaaaaaaaaaa 1
+demultiplex aaaaaaaaaaa 1
+disappointing aaaaaaaaaaaaa 1
+select distinct companynr,rtrim(space(512+companynr)) from t3 order by 1,2;
+companynr rtrim(space(512+companynr))
+37
+78
+101
+154
+311
+447
+512
+select distinct fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by fld3;
+fld3
+explain select t3.t2nr,fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by t3.t2nr,fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL fld1 NULL NULL NULL 1199 Using where; Using temporary; Using filesort
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.fld1 1 Using where; Using index
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index period period 4 NULL 41810
+1 SIMPLE t1 ref period period 4 test.t3.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index period period 4 NULL 41810
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+select period from t1;
+period
+9410
+select period from t1 where period=1900;
+period
+select fld3,period from t1,t2 where fld1 = 011401 order by period;
+fld3 period
+breaking 9410
+select fld3,period from t2,t3 where t2.fld1 = 011401 and t2.fld1=t3.t2nr and t3.period=1001;
+fld3 period
+breaking 1001
+explain select fld3,period from t2,t3 where t2.fld1 = 011401 and t3.t2nr=t2.fld1 and 1001 = t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const fld1 fld1 4 const 1
+1 SIMPLE t3 const PRIMARY,period PRIMARY 4 const 1
+select fld3,period from t2,t1 where companynr*10 = 37*10;
+fld3 period
+breaking 9410
+Romans 9410
+intercepted 9410
+bewilderingly 9410
+astound 9410
+admonishing 9410
+sumac 9410
+flanking 9410
+combed 9410
+subjective 9410
+scatterbrain 9410
+Eulerian 9410
+Kane 9410
+overlay 9410
+perturb 9410
+goblins 9410
+annihilates 9410
+Wotan 9410
+snatching 9410
+concludes 9410
+laterally 9410
+yelped 9410
+grazing 9410
+Baird 9410
+celery 9410
+misunderstander 9410
+handgun 9410
+foldout 9410
+mystic 9410
+succumbed 9410
+Nabisco 9410
+fingerings 9410
+aging 9410
+afield 9410
+ammonium 9410
+boat 9410
+intelligibility 9410
+Augustine 9410
+teethe 9410
+dreaded 9410
+scholastics 9410
+audiology 9410
+wallet 9410
+parters 9410
+eschew 9410
+quitter 9410
+neat 9410
+Steinberg 9410
+jarring 9410
+tinily 9410
+balled 9410
+persist 9410
+attainments 9410
+fanatic 9410
+measures 9410
+rightfulness 9410
+capably 9410
+impulsive 9410
+starlet 9410
+terminators 9410
+untying 9410
+announces 9410
+featherweight 9410
+pessimist 9410
+daughter 9410
+decliner 9410
+lawgiver 9410
+stated 9410
+readable 9410
+attrition 9410
+cascade 9410
+motors 9410
+interrogate 9410
+pests 9410
+stairway 9410
+dopers 9410
+testicle 9410
+Parsifal 9410
+leavings 9410
+postulation 9410
+squeaking 9410
+contrasted 9410
+leftover 9410
+whiteners 9410
+erases 9410
+Punjab 9410
+Merritt 9410
+Quixotism 9410
+sweetish 9410
+dogging 9410
+scornfully 9410
+bellow 9410
+bills 9410
+cupboard 9410
+sureties 9410
+puddings 9410
+fetters 9410
+bivalves 9410
+incurring 9410
+Adolph 9410
+pithed 9410
+Miles 9410
+trimmings 9410
+tragedies 9410
+skulking 9410
+flint 9410
+flopping 9410
+relaxing 9410
+offload 9410
+suites 9410
+lists 9410
+animized 9410
+multilayer 9410
+standardizes 9410
+Judas 9410
+vacuuming 9410
+dentally 9410
+humanness 9410
+inch 9410
+Weissmuller 9410
+irresponsibly 9410
+luckily 9410
+culled 9410
+medical 9410
+bloodbath 9410
+subschema 9410
+animals 9410
+Micronesia 9410
+repetitions 9410
+Antares 9410
+ventilate 9410
+pityingly 9410
+interdependent 9410
+Graves 9410
+neonatal 9410
+chafe 9410
+honoring 9410
+realtor 9410
+elite 9410
+funereal 9410
+abrogating 9410
+sorters 9410
+Conley 9410
+lectured 9410
+Abraham 9410
+Hawaii 9410
+cage 9410
+hushes 9410
+Simla 9410
+reporters 9410
+Dutchman 9410
+descendants 9410
+groupings 9410
+dissociate 9410
+coexist 9410
+Beebe 9410
+Taoism 9410
+Connally 9410
+fetched 9410
+checkpoints 9410
+rusting 9410
+galling 9410
+obliterates 9410
+traitor 9410
+resumes 9410
+analyzable 9410
+terminator 9410
+gritty 9410
+firearm 9410
+minima 9410
+Selfridge 9410
+disable 9410
+witchcraft 9410
+betroth 9410
+Manhattanize 9410
+imprint 9410
+peeked 9410
+swelling 9410
+interrelationships 9410
+riser 9410
+Gandhian 9410
+peacock 9410
+bee 9410
+kanji 9410
+dental 9410
+scarf 9410
+chasm 9410
+insolence 9410
+syndicate 9410
+alike 9410
+imperial 9410
+convulsion 9410
+railway 9410
+validate 9410
+normalizes 9410
+comprehensive 9410
+chewing 9410
+denizen 9410
+schemer 9410
+chronicle 9410
+Kline 9410
+Anatole 9410
+partridges 9410
+brunch 9410
+recruited 9410
+dimensions 9410
+Chicana 9410
+announced 9410
+praised 9410
+employing 9410
+linear 9410
+quagmire 9410
+western 9410
+relishing 9410
+serving 9410
+scheduling 9410
+lore 9410
+eventful 9410
+arteriole 9410
+disentangle 9410
+cured 9410
+Fenton 9410
+avoidable 9410
+drains 9410
+detectably 9410
+husky 9410
+impelling 9410
+undoes 9410
+evened 9410
+squeezes 9410
+destroyer 9410
+rudeness 9410
+beaner 9410
+boorish 9410
+Everhart 9410
+encompass 9410
+mushrooms 9410
+Alison 9410
+externally 9410
+pellagra 9410
+cult 9410
+creek 9410
+Huffman 9410
+Majorca 9410
+governing 9410
+gadfly 9410
+reassigned 9410
+intentness 9410
+craziness 9410
+psychic 9410
+squabbled 9410
+burlesque 9410
+capped 9410
+extracted 9410
+DiMaggio 9410
+exclamation 9410
+subdirectory 9410
+Gothicism 9410
+feminine 9410
+metaphysically 9410
+sanding 9410
+Miltonism 9410
+freakish 9410
+index 9410
+straight 9410
+flurried 9410
+denotative 9410
+coming 9410
+commencements 9410
+gentleman 9410
+gifted 9410
+Shanghais 9410
+sportswriting 9410
+sloping 9410
+navies 9410
+leaflet 9410
+shooter 9410
+Joplin 9410
+babies 9410
+assails 9410
+admiring 9410
+swaying 9410
+Goldstine 9410
+fitting 9410
+Norwalk 9410
+analogy 9410
+deludes 9410
+cokes 9410
+Clayton 9410
+exhausts 9410
+causality 9410
+sating 9410
+icon 9410
+throttles 9410
+communicants 9410
+dehydrate 9410
+priceless 9410
+publicly 9410
+incidentals 9410
+commonplace 9410
+mumbles 9410
+furthermore 9410
+cautioned 9410
+parametrized 9410
+registration 9410
+sadly 9410
+positioning 9410
+babysitting 9410
+eternal 9410
+hoarder 9410
+congregates 9410
+rains 9410
+workers 9410
+sags 9410
+unplug 9410
+garage 9410
+boulder 9410
+specifics 9410
+Teresa 9410
+Winsett 9410
+convenient 9410
+buckboards 9410
+amenities 9410
+resplendent 9410
+sews 9410
+participated 9410
+Simon 9410
+certificates 9410
+Fitzpatrick 9410
+Evanston 9410
+misted 9410
+textures 9410
+save 9410
+count 9410
+rightful 9410
+chaperone 9410
+Lizzy 9410
+clenched 9410
+effortlessly 9410
+accessed 9410
+beaters 9410
+Hornblower 9410
+vests 9410
+indulgences 9410
+infallibly 9410
+unwilling 9410
+excrete 9410
+spools 9410
+crunches 9410
+overestimating 9410
+ineffective 9410
+humiliation 9410
+sophomore 9410
+star 9410
+rifles 9410
+dialysis 9410
+arriving 9410
+indulge 9410
+clockers 9410
+languages 9410
+Antarctica 9410
+percentage 9410
+ceiling 9410
+specification 9410
+regimented 9410
+ciphers 9410
+pictures 9410
+serpents 9410
+allot 9410
+realized 9410
+mayoral 9410
+opaquely 9410
+hostess 9410
+fiftieth 9410
+incorrectly 9410
+decomposition 9410
+stranglings 9410
+mixture 9410
+electroencephalography 9410
+similarities 9410
+charges 9410
+freest 9410
+Greenberg 9410
+tinting 9410
+expelled 9410
+warm 9410
+smoothed 9410
+deductions 9410
+Romano 9410
+bitterroot 9410
+corset 9410
+securing 9410
+environing 9410
+cute 9410
+Crays 9410
+heiress 9410
+inform 9410
+avenge 9410
+universals 9410
+Kinsey 9410
+ravines 9410
+bestseller 9410
+equilibrium 9410
+extents 9410
+relatively 9410
+pressure 9410
+critiques 9410
+befouled 9410
+rightfully 9410
+mechanizing 9410
+Latinizes 9410
+timesharing 9410
+Aden 9410
+embassies 9410
+males 9410
+shapelessly 9410
+mastering 9410
+Newtonian 9410
+finishers 9410
+abates 9410
+teem 9410
+kiting 9410
+stodgy 9410
+feed 9410
+guitars 9410
+airships 9410
+store 9410
+denounces 9410
+Pyle 9410
+Saxony 9410
+serializations 9410
+Peruvian 9410
+taxonomically 9410
+kingdom 9410
+stint 9410
+Sault 9410
+faithful 9410
+Ganymede 9410
+tidiness 9410
+gainful 9410
+contrary 9410
+Tipperary 9410
+tropics 9410
+theorizers 9410
+renew 9410
+already 9410
+terminal 9410
+Hegelian 9410
+hypothesizer 9410
+warningly 9410
+journalizing 9410
+nested 9410
+Lars 9410
+saplings 9410
+foothill 9410
+labeled 9410
+imperiously 9410
+reporters 9410
+furnishings 9410
+precipitable 9410
+discounts 9410
+excises 9410
+Stalin 9410
+despot 9410
+ripeness 9410
+Arabia 9410
+unruly 9410
+mournfulness 9410
+boom 9410
+slaughter 9410
+Sabine 9410
+handy 9410
+rural 9410
+organizer 9410
+shipyard 9410
+civics 9410
+inaccuracy 9410
+rules 9410
+juveniles 9410
+comprised 9410
+investigations 9410
+stabilizes 9410
+seminaries 9410
+Hunter 9410
+sporty 9410
+test 9410
+weasels 9410
+CERN 9410
+tempering 9410
+afore 9410
+Galatean 9410
+techniques 9410
+error 9410
+veranda 9410
+severely 9410
+Cassites 9410
+forthcoming 9410
+guides 9410
+vanish 9410
+lied 9410
+sawtooth 9410
+fated 9410
+gradually 9410
+widens 9410
+preclude 9410
+evenhandedly 9410
+percentage 9410
+disobedience 9410
+humility 9410
+gleaning 9410
+petted 9410
+bloater 9410
+minion 9410
+marginal 9410
+apiary 9410
+measures 9410
+precaution 9410
+repelled 9410
+primary 9410
+coverings 9410
+Artemia 9410
+navigate 9410
+spatial 9410
+Gurkha 9410
+meanwhile 9410
+Melinda 9410
+Butterfield 9410
+Aldrich 9410
+previewing 9410
+glut 9410
+unaffected 9410
+inmate 9410
+mineral 9410
+impending 9410
+meditation 9410
+ideas 9410
+miniaturizes 9410
+lewdly 9410
+title 9410
+youthfulness 9410
+creak 9410
+Chippewa 9410
+clamored 9410
+freezes 9410
+forgivably 9410
+reduce 9410
+McGovern 9410
+Nazis 9410
+epistle 9410
+socializes 9410
+conceptions 9410
+Kevin 9410
+uncovering 9410
+chews 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+raining 9410
+infest 9410
+compartment 9410
+minting 9410
+ducks 9410
+roped 9410
+waltz 9410
+Lillian 9410
+repressions 9410
+chillingly 9410
+noncritical 9410
+lithograph 9410
+spongers 9410
+parenthood 9410
+posed 9410
+instruments 9410
+filial 9410
+fixedly 9410
+relives 9410
+Pandora 9410
+watering 9410
+ungrateful 9410
+secures 9410
+poison 9410
+dusted 9410
+encompasses 9410
+presentation 9410
+Kantian 9410
+select fld3,period,price,price2 from t2,t3 where t2.fld1=t3.t2nr and period >= 1001 and period <= 1002 and t2.companynr = 37 order by fld3,period, price;
+fld3 period price price2
+admonishing 1002 28357832 8723648
+analyzable 1002 28357832 8723648
+annihilates 1001 5987435 234724
+Antares 1002 28357832 8723648
+astound 1001 5987435 234724
+audiology 1001 5987435 234724
+Augustine 1002 28357832 8723648
+Baird 1002 28357832 8723648
+bewilderingly 1001 5987435 234724
+breaking 1001 5987435 234724
+Conley 1001 5987435 234724
+dentally 1002 28357832 8723648
+dissociate 1002 28357832 8723648
+elite 1001 5987435 234724
+eschew 1001 5987435 234724
+Eulerian 1001 5987435 234724
+flanking 1001 5987435 234724
+foldout 1002 28357832 8723648
+funereal 1002 28357832 8723648
+galling 1002 28357832 8723648
+Graves 1001 5987435 234724
+grazing 1001 5987435 234724
+groupings 1001 5987435 234724
+handgun 1001 5987435 234724
+humility 1002 28357832 8723648
+impulsive 1002 28357832 8723648
+inch 1001 5987435 234724
+intelligibility 1001 5987435 234724
+jarring 1001 5987435 234724
+lawgiver 1001 5987435 234724
+lectured 1002 28357832 8723648
+Merritt 1002 28357832 8723648
+neonatal 1001 5987435 234724
+offload 1002 28357832 8723648
+parters 1002 28357832 8723648
+pityingly 1002 28357832 8723648
+puddings 1002 28357832 8723648
+Punjab 1001 5987435 234724
+quitter 1002 28357832 8723648
+realtor 1001 5987435 234724
+relaxing 1001 5987435 234724
+repetitions 1001 5987435 234724
+resumes 1001 5987435 234724
+Romans 1002 28357832 8723648
+rusting 1001 5987435 234724
+scholastics 1001 5987435 234724
+skulking 1002 28357832 8723648
+stated 1002 28357832 8723648
+suites 1002 28357832 8723648
+sureties 1001 5987435 234724
+testicle 1002 28357832 8723648
+tinily 1002 28357832 8723648
+tragedies 1001 5987435 234724
+trimmings 1001 5987435 234724
+vacuuming 1001 5987435 234724
+ventilate 1001 5987435 234724
+wallet 1001 5987435 234724
+Weissmuller 1002 28357832 8723648
+Wotan 1002 28357832 8723648
+select t2.fld1,fld3,period,price,price2 from t2,t3 where t2.fld1>= 18201 and t2.fld1 <= 18811 and t2.fld1=t3.t2nr and period = 1001 and t2.companynr = 37;
+fld1 fld3 period price price2
+018201 relaxing 1001 5987435 234724
+018601 vacuuming 1001 5987435 234724
+018801 inch 1001 5987435 234724
+018811 repetitions 1001 5987435 234724
+create table t4 (
+companynr tinyint(2) unsigned zerofill NOT NULL default '00',
+companyname char(30) NOT NULL default '',
+PRIMARY KEY (companynr),
+UNIQUE KEY companyname(companyname)
+) ENGINE=MyISAM MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
+select STRAIGHT_JOIN t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select SQL_SMALL_RESULT t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select * from t1,t1 t12;
+Period Varor_period Period Varor_period
+9410 9412 9410 9412
+select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
+fld1 fld1
+250501 250501
+250502 250501
+250503 250501
+250504 250501
+250505 250501
+250501 250502
+250502 250502
+250503 250502
+250504 250502
+250505 250502
+250501 250503
+250502 250503
+250503 250503
+250504 250503
+250505 250503
+250501 250504
+250502 250504
+250503 250504
+250504 250504
+250505 250504
+250501 250505
+250502 250505
+250503 250505
+250504 250505
+250505 250505
+insert into t2 (fld1, companynr) values (999999,99);
+select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+companynr companyname
+99 NULL
+select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
+count(*)
+1199
+explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+companynr companyname
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+count(*)
+1200
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+delete from t2 where fld1=999999;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+companynr companynr
+37 36
+41 40
+explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t2.fld1 = 38208 or t2.fld1 = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t3.t2nr = 38208 or t3.t2nr = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select period from t1 where (((period > 0) or period < 10000 or (period = 1900)) and (period=1900 and period <= 1901) or (period=1903 and (period=1903)) and period>=1902) or ((period=1904 or period=1905) or (period=1906 or period>1907)) or (period=1908 and period = 1909);
+period
+9410
+select period from t1 where ((period > 0 and period < 1) or (((period > 0 and period < 100) and (period > 10)) or (period > 10)) or (period > 0 and (period > 5 or period > 6)));
+period
+9410
+select a.fld1 from t2 as a,t2 b where ((a.fld1 = 250501 and a.fld1=b.fld1) or a.fld1=250502 or a.fld1=250503 or (a.fld1=250505 and a.fld1<=b.fld1 and b.fld1>=a.fld1)) and a.fld1=b.fld1;
+fld1
+250501
+250502
+250503
+250505
+select fld1 from t2 where fld1 in (250502,98005,98006,250503,250605,250606) and fld1 >=250502 and fld1 not in (250605,250606);
+fld1
+250502
+250503
+select fld1 from t2 where fld1 between 250502 and 250504;
+fld1
+250502
+250503
+250504
+select fld3 from t2 where (((fld3 like "_%L%" ) or (fld3 like "%ok%")) and ( fld3 like "L%" or fld3 like "G%")) and fld3 like "L%" ;
+fld3
+label
+labeled
+labeled
+landslide
+laterally
+leaflet
+lewdly
+Lillian
+luckily
+select count(*) from t1;
+count(*)
+1
+select companynr,count(*),sum(fld1) from t2 group by companynr;
+companynr count(*) sum(fld1)
+00 82 10355753
+29 95 14473298
+34 70 17788966
+36 215 22786296
+37 588 83602098
+40 37 6618386
+41 52 12816335
+50 11 1595438
+53 4 793210
+58 23 2254293
+65 10 2284055
+68 12 3097288
+select companynr,count(*) from t2 group by companynr order by companynr desc limit 5;
+companynr count(*)
+68 12
+65 10
+58 23
+53 4
+50 11
+select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+Warnings:
+Note 1003 select count(0) AS `count(*)`,min(`test`.`t2`.`fld4`) AS `min(fld4)`,max(`test`.`t2`.`fld4`) AS `max(fld4)`,sum(`test`.`t2`.`fld1`) AS `sum(fld1)`,avg(`test`.`t2`.`fld1`) AS `avg(fld1)`,std(`test`.`t2`.`fld1`) AS `std(fld1)`,variance(`test`.`t2`.`fld1`) AS `variance(fld1)` from `test`.`t2` where ((`test`.`t2`.`companynr` = 34) and (`test`.`t2`.`fld4` <> _latin1''))
+select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
+companynr count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+00 82 Anthony windmills 10355753 126289.6707 115550.9757 13352027981.7087
+29 95 abut wetness 14473298 152350.5053 8368.5480 70032594.9026
+34 70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+select companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select /*! SQL_SMALL_RESULT */ companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select companynr,count(price),sum(price),min(price),max(price),avg(price) from t3 group by companynr ;
+companynr count(price) sum(price) min(price) max(price) avg(price)
+37 12543 309394878010 5987435 39654943 24666736.6667
+78 8362 414611089292 726498 98439034 49582766.0000
+101 4181 3489454238 834598 834598 834598.0000
+154 4181 4112197254950 983543950 983543950 983543950.0000
+311 4181 979599938 234298 234298 234298.0000
+447 4181 9929180954 2374834 2374834 2374834.0000
+512 4181 3288532102 786542 786542 786542.0000
+select distinct mod(companynr,10) from t4 group by companynr;
+mod(companynr,10)
+0
+9
+4
+6
+7
+1
+3
+8
+5
+select distinct 1 from t4 group by companynr;
+1
+1
+select count(distinct fld1) from t2;
+count(distinct fld1)
+1199
+select companynr,count(distinct fld1) from t2 group by companynr;
+companynr count(distinct fld1)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(*) from t2 group by companynr;
+companynr count(*)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,1000))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,1000)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,200))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,200)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct floor(fld1/100)) from t2 group by companynr;
+companynr count(distinct floor(fld1/100))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select companynr,count(distinct concat(repeat(65,1000),floor(fld1/100))) from t2 group by companynr;
+companynr count(distinct concat(repeat(65,1000),floor(fld1/100)))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select sum(fld1),fld3 from t2 where fld3="Romans" group by fld1 limit 10;
+sum(fld1) fld3
+11402 Romans
+select name,count(*) from t3 where name='cloakroom' group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name='cloakroom' and price>10 group by name;
+name count(*)
+cloakroom 4181
+select count(*) from t3 where name='cloakroom' and price2=823742;
+count(*)
+4181
+select name,count(*) from t3 where name='cloakroom' and price2=823742 group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name >= "extramarital" and price <= 39654943 group by name;
+name count(*)
+extramarital 4181
+gazer 4181
+gems 4181
+Iranizes 4181
+spates 4181
+tucked 4181
+violinist 4181
+select t2.fld3,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld3 count(*)
+spates 4181
+select companynr|0,companyname from t4 group by 1;
+companynr|0 companyname
+0 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by t2.companynr order by companyname;
+companynr companyname count(*)
+29 company 1 95
+68 company 10 12
+50 company 11 11
+34 company 2 70
+36 company 3 215
+37 company 4 588
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+00 Unknown 82
+select t2.fld1,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld1 count(*)
+158402 4181
+select sum(Period)/count(*) from t1;
+sum(Period)/count(*)
+9410.0000
+select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
+companynr count sum diff func
+37 12543 309394878010 0.0000 464091
+78 8362 414611089292 0.0000 652236
+101 4181 3489454238 0.0000 422281
+154 4181 4112197254950 0.0000 643874
+311 4181 979599938 0.0000 1300291
+447 4181 9929180954 0.0000 1868907
+512 4181 3288532102 0.0000 2140672
+select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
+companynr avg
+154 983543950.0000
+select companynr,count(*) from t2 group by companynr order by 2 desc;
+companynr count(*)
+37 588
+36 215
+29 95
+00 82
+34 70
+41 52
+40 37
+58 23
+68 12
+50 11
+65 10
+53 4
+select companynr,count(*) from t2 where companynr > 40 group by companynr order by 2 desc;
+companynr count(*)
+41 52
+58 23
+68 12
+50 11
+65 10
+53 4
+select t2.fld4,t2.fld1,count(price),sum(price),min(price),max(price),avg(price) from t3,t2 where t3.companynr = 37 and t2.fld1 = t3.t2nr group by fld1,t2.fld4;
+fld4 fld1 count(price) sum(price) min(price) max(price) avg(price)
+teethe 000001 1 5987435 5987435 5987435 5987435.0000
+dreaded 011401 1 5987435 5987435 5987435 5987435.0000
+scholastics 011402 1 28357832 28357832 28357832 28357832.0000
+audiology 011403 1 39654943 39654943 39654943 39654943.0000
+wallet 011501 1 5987435 5987435 5987435 5987435.0000
+parters 011701 1 5987435 5987435 5987435 5987435.0000
+eschew 011702 1 28357832 28357832 28357832 28357832.0000
+quitter 011703 1 39654943 39654943 39654943 39654943.0000
+neat 012001 1 5987435 5987435 5987435 5987435.0000
+Steinberg 012003 1 39654943 39654943 39654943 39654943.0000
+balled 012301 1 5987435 5987435 5987435 5987435.0000
+persist 012302 1 28357832 28357832 28357832 28357832.0000
+attainments 012303 1 39654943 39654943 39654943 39654943.0000
+capably 012501 1 5987435 5987435 5987435 5987435.0000
+impulsive 012602 1 28357832 28357832 28357832 28357832.0000
+starlet 012603 1 39654943 39654943 39654943 39654943.0000
+featherweight 012701 1 5987435 5987435 5987435 5987435.0000
+pessimist 012702 1 28357832 28357832 28357832 28357832.0000
+daughter 012703 1 39654943 39654943 39654943 39654943.0000
+lawgiver 013601 1 5987435 5987435 5987435 5987435.0000
+stated 013602 1 28357832 28357832 28357832 28357832.0000
+readable 013603 1 39654943 39654943 39654943 39654943.0000
+testicle 013801 1 5987435 5987435 5987435 5987435.0000
+Parsifal 013802 1 28357832 28357832 28357832 28357832.0000
+leavings 013803 1 39654943 39654943 39654943 39654943.0000
+squeaking 013901 1 5987435 5987435 5987435 5987435.0000
+contrasted 016001 1 5987435 5987435 5987435 5987435.0000
+leftover 016201 1 5987435 5987435 5987435 5987435.0000
+whiteners 016202 1 28357832 28357832 28357832 28357832.0000
+erases 016301 1 5987435 5987435 5987435 5987435.0000
+Punjab 016302 1 28357832 28357832 28357832 28357832.0000
+Merritt 016303 1 39654943 39654943 39654943 39654943.0000
+sweetish 018001 1 5987435 5987435 5987435 5987435.0000
+dogging 018002 1 28357832 28357832 28357832 28357832.0000
+scornfully 018003 1 39654943 39654943 39654943 39654943.0000
+fetters 018012 1 28357832 28357832 28357832 28357832.0000
+bivalves 018013 1 39654943 39654943 39654943 39654943.0000
+skulking 018021 1 5987435 5987435 5987435 5987435.0000
+flint 018022 1 28357832 28357832 28357832 28357832.0000
+flopping 018023 1 39654943 39654943 39654943 39654943.0000
+Judas 018032 1 28357832 28357832 28357832 28357832.0000
+vacuuming 018033 1 39654943 39654943 39654943 39654943.0000
+medical 018041 1 5987435 5987435 5987435 5987435.0000
+bloodbath 018042 1 28357832 28357832 28357832 28357832.0000
+subschema 018043 1 39654943 39654943 39654943 39654943.0000
+interdependent 018051 1 5987435 5987435 5987435 5987435.0000
+Graves 018052 1 28357832 28357832 28357832 28357832.0000
+neonatal 018053 1 39654943 39654943 39654943 39654943.0000
+sorters 018061 1 5987435 5987435 5987435 5987435.0000
+epistle 018062 1 28357832 28357832 28357832 28357832.0000
+Conley 018101 1 5987435 5987435 5987435 5987435.0000
+lectured 018102 1 28357832 28357832 28357832 28357832.0000
+Abraham 018103 1 39654943 39654943 39654943 39654943.0000
+cage 018201 1 5987435 5987435 5987435 5987435.0000
+hushes 018202 1 28357832 28357832 28357832 28357832.0000
+Simla 018402 1 28357832 28357832 28357832 28357832.0000
+reporters 018403 1 39654943 39654943 39654943 39654943.0000
+coexist 018601 1 5987435 5987435 5987435 5987435.0000
+Beebe 018602 1 28357832 28357832 28357832 28357832.0000
+Taoism 018603 1 39654943 39654943 39654943 39654943.0000
+Connally 018801 1 5987435 5987435 5987435 5987435.0000
+fetched 018802 1 28357832 28357832 28357832 28357832.0000
+checkpoints 018803 1 39654943 39654943 39654943 39654943.0000
+gritty 018811 1 5987435 5987435 5987435 5987435.0000
+firearm 018812 1 28357832 28357832 28357832 28357832.0000
+minima 019101 1 5987435 5987435 5987435 5987435.0000
+Selfridge 019102 1 28357832 28357832 28357832 28357832.0000
+disable 019103 1 39654943 39654943 39654943 39654943.0000
+witchcraft 019201 1 5987435 5987435 5987435 5987435.0000
+betroth 030501 1 5987435 5987435 5987435 5987435.0000
+Manhattanize 030502 1 28357832 28357832 28357832 28357832.0000
+imprint 030503 1 39654943 39654943 39654943 39654943.0000
+swelling 031901 1 5987435 5987435 5987435 5987435.0000
+interrelationships 036001 1 5987435 5987435 5987435 5987435.0000
+riser 036002 1 28357832 28357832 28357832 28357832.0000
+bee 038001 1 5987435 5987435 5987435 5987435.0000
+kanji 038002 1 28357832 28357832 28357832 28357832.0000
+dental 038003 1 39654943 39654943 39654943 39654943.0000
+railway 038011 1 5987435 5987435 5987435 5987435.0000
+validate 038012 1 28357832 28357832 28357832 28357832.0000
+normalizes 038013 1 39654943 39654943 39654943 39654943.0000
+Kline 038101 1 5987435 5987435 5987435 5987435.0000
+Anatole 038102 1 28357832 28357832 28357832 28357832.0000
+partridges 038103 1 39654943 39654943 39654943 39654943.0000
+recruited 038201 1 5987435 5987435 5987435 5987435.0000
+dimensions 038202 1 28357832 28357832 28357832 28357832.0000
+Chicana 038203 1 39654943 39654943 39654943 39654943.0000
+select t3.companynr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 group by companynr,fld3;
+companynr fld3 sum(price)
+512 boat 786542
+512 capably 786542
+512 cupboard 786542
+512 decliner 786542
+512 descendants 786542
+512 dopers 786542
+512 erases 786542
+512 Micronesia 786542
+512 Miles 786542
+512 skies 786542
+select t2.companynr,count(*),min(fld3),max(fld3),sum(price),avg(price) from t2,t3 where t3.companynr >= 30 and t3.companynr <= 58 and t3.t2nr = t2.fld1 and 1+1=2 group by t2.companynr;
+companynr count(*) min(fld3) max(fld3) sum(price) avg(price)
+00 1 Omaha Omaha 5987435 5987435.0000
+36 1 dubbed dubbed 28357832 28357832.0000
+37 83 Abraham Wotan 1908978016 22999735.1325
+50 2 scribbled tapestry 68012775 34006387.5000
+select t3.companynr+0,t3.t2nr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 37 group by 1,t3.t2nr,fld3,fld3,fld3,fld3,fld3 order by fld1;
+t3.companynr+0 t2nr fld3 sum(price)
+37 1 Omaha 5987435
+37 11401 breaking 5987435
+37 11402 Romans 28357832
+37 11403 intercepted 39654943
+37 11501 bewilderingly 5987435
+37 11701 astound 5987435
+37 11702 admonishing 28357832
+37 11703 sumac 39654943
+37 12001 flanking 5987435
+37 12003 combed 39654943
+37 12301 Eulerian 5987435
+37 12302 dubbed 28357832
+37 12303 Kane 39654943
+37 12501 annihilates 5987435
+37 12602 Wotan 28357832
+37 12603 snatching 39654943
+37 12701 grazing 5987435
+37 12702 Baird 28357832
+37 12703 celery 39654943
+37 13601 handgun 5987435
+37 13602 foldout 28357832
+37 13603 mystic 39654943
+37 13801 intelligibility 5987435
+37 13802 Augustine 28357832
+37 13803 teethe 39654943
+37 13901 scholastics 5987435
+37 16001 audiology 5987435
+37 16201 wallet 5987435
+37 16202 parters 28357832
+37 16301 eschew 5987435
+37 16302 quitter 28357832
+37 16303 neat 39654943
+37 18001 jarring 5987435
+37 18002 tinily 28357832
+37 18003 balled 39654943
+37 18012 impulsive 28357832
+37 18013 starlet 39654943
+37 18021 lawgiver 5987435
+37 18022 stated 28357832
+37 18023 readable 39654943
+37 18032 testicle 28357832
+37 18033 Parsifal 39654943
+37 18041 Punjab 5987435
+37 18042 Merritt 28357832
+37 18043 Quixotism 39654943
+37 18051 sureties 5987435
+37 18052 puddings 28357832
+37 18053 tapestry 39654943
+37 18061 trimmings 5987435
+37 18062 humility 28357832
+37 18101 tragedies 5987435
+37 18102 skulking 28357832
+37 18103 flint 39654943
+37 18201 relaxing 5987435
+37 18202 offload 28357832
+37 18402 suites 28357832
+37 18403 lists 39654943
+37 18601 vacuuming 5987435
+37 18602 dentally 28357832
+37 18603 humanness 39654943
+37 18801 inch 5987435
+37 18802 Weissmuller 28357832
+37 18803 irresponsibly 39654943
+37 18811 repetitions 5987435
+37 18812 Antares 28357832
+37 19101 ventilate 5987435
+37 19102 pityingly 28357832
+37 19103 interdependent 39654943
+37 19201 Graves 5987435
+37 30501 neonatal 5987435
+37 30502 scribbled 28357832
+37 30503 chafe 39654943
+37 31901 realtor 5987435
+37 36001 elite 5987435
+37 36002 funereal 28357832
+37 38001 Conley 5987435
+37 38002 lectured 28357832
+37 38003 Abraham 39654943
+37 38011 groupings 5987435
+37 38012 dissociate 28357832
+37 38013 coexist 39654943
+37 38101 rusting 5987435
+37 38102 galling 28357832
+37 38103 obliterates 39654943
+37 38201 resumes 5987435
+37 38202 analyzable 28357832
+37 38203 terminator 39654943
+select sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1= t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008;
+sum(price)
+234298
+select t2.fld1,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1 = t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008 or t3.t2nr = t2.fld1 and t2.fld1 = 38008 group by t2.fld1;
+fld1 sum(price)
+038008 234298
+explain select fld3 from t2 where 1>2 or 2>3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select fld3 from t2 where fld1=fld1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select companynr,fld1 from t2 HAVING fld1=250501 or fld1=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,fld1 from t2 WHERE fld1>=250501 HAVING fld1<=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,count(*) as count,sum(fld1) as sum from t2 group by companynr having count > 40 and sum/count >= 120000;
+companynr count sum
+00 82 10355753
+29 95 14473298
+34 70 17788966
+37 588 83602098
+41 52 12816335
+select companynr from t2 group by companynr having count(*) > 40 and sum(fld1)/count(*) >= 120000 ;
+companynr
+00
+29
+34
+37
+41
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by companyname having t2.companynr >= 40;
+companynr companyname count(*)
+68 company 10 12
+50 company 11 11
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+select count(*) from t2;
+count(*)
+1199
+select count(*) from t2 where fld1 < 098024;
+count(*)
+387
+select min(fld1) from t2 where fld1>= 098024;
+min(fld1)
+98024
+select max(fld1) from t2 where fld1>= 098024;
+max(fld1)
+1232609
+select count(*) from t3 where price2=76234234;
+count(*)
+4181
+select count(*) from t3 where companynr=512 and price2=76234234;
+count(*)
+4181
+explain select min(fld1),max(fld1),count(*) from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select min(fld1),max(fld1),count(*) from t2;
+min(fld1) max(fld1) count(*)
+0 1232609 1199
+select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742;
+min(t2nr) max(t2nr)
+2115 2115
+select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78;
+count(*) min(t2nr) max(t2nr)
+4181 4 41804
+select t2nr,count(*) from t3 where name='gems' group by t2nr limit 20;
+t2nr count(*)
+9 1
+19 1
+29 1
+39 1
+49 1
+59 1
+69 1
+79 1
+89 1
+99 1
+109 1
+119 1
+129 1
+139 1
+149 1
+159 1
+169 1
+179 1
+189 1
+199 1
+select max(t2nr) from t3 where price=983543950;
+max(t2nr)
+41807
+select t1.period from t3 = t1 limit 1;
+period
+1001
+select t1.period from t1 as t1 limit 1;
+period
+9410
+select t1.period as "Nuvarande period" from t1 as t1 limit 1;
+Nuvarande period
+9410
+select period as ok_period from t1 limit 1;
+ok_period
+9410
+select period as ok_period from t1 group by ok_period limit 1;
+ok_period
+9410
+select 1+1 as summa from t1 group by summa limit 1;
+summa
+2
+select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
+Nuvarande period
+9410
+show tables;
+Tables_in_test
+t1
+t2
+t3
+t4
+show tables from test like "s%";
+Tables_in_test (s%)
+show tables from test like "t?";
+Tables_in_test (t?)
+show full columns from t2;
+Field Type Collation Null Key Default Extra Privileges Comment
+auto int(11) NULL NO PRI NULL auto_increment #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+companynr tinyint(2) unsigned zerofill NULL NO 00 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 'f%';
+Field Type Collation Null Key Default Extra Privileges Comment
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 's%';
+Field Type Collation Null Key Default Extra Privileges Comment
+show keys from t2;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+drop table t4, t3, t2, t1;
+CREATE TABLE t1 (
+cont_nr int(11) NOT NULL auto_increment,
+ver_nr int(11) NOT NULL default '0',
+aufnr int(11) NOT NULL default '0',
+username varchar(50) NOT NULL default '',
+hdl_nr int(11) NOT NULL default '0',
+eintrag date NOT NULL default '0000-00-00',
+st_klasse varchar(40) NOT NULL default '',
+st_wert varchar(40) NOT NULL default '',
+st_zusatz varchar(40) NOT NULL default '',
+st_bemerkung varchar(255) NOT NULL default '',
+kunden_art varchar(40) NOT NULL default '',
+mcbs_knr int(11) default NULL,
+mcbs_aufnr int(11) NOT NULL default '0',
+schufa_status char(1) default '?',
+bemerkung text,
+wirknetz text,
+wf_igz int(11) NOT NULL default '0',
+tarifcode varchar(80) default NULL,
+recycle char(1) default NULL,
+sim varchar(30) default NULL,
+mcbs_tpl varchar(30) default NULL,
+emp_nr int(11) NOT NULL default '0',
+laufzeit int(11) default NULL,
+hdl_name varchar(30) default NULL,
+prov_hdl_nr int(11) NOT NULL default '0',
+auto_wirknetz varchar(50) default NULL,
+auto_billing varchar(50) default NULL,
+touch timestamp NOT NULL,
+kategorie varchar(50) default NULL,
+kundentyp varchar(20) NOT NULL default '',
+sammel_rech_msisdn varchar(30) NOT NULL default '',
+p_nr varchar(9) NOT NULL default '',
+suffix char(3) NOT NULL default '',
+PRIMARY KEY (cont_nr),
+KEY idx_aufnr(aufnr),
+KEY idx_hdl_nr(hdl_nr),
+KEY idx_st_klasse(st_klasse),
+KEY ver_nr(ver_nr),
+KEY eintrag_idx(eintrag),
+KEY emp_nr_idx(emp_nr),
+KEY wf_igz(wf_igz),
+KEY touch(touch),
+KEY hdl_tag(eintrag,hdl_nr),
+KEY prov_hdl_nr(prov_hdl_nr),
+KEY mcbs_aufnr(mcbs_aufnr),
+KEY kundentyp(kundentyp),
+KEY p_nr(p_nr,suffix)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (3359356,405,3359356,'Mustermann Musterfrau',52500,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1485525,2122316,'+','','N',1909160,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',3,24,'MobilCom Shop Koeln',52500,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359357,468,3359357,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1503580,2139699,'+','','P',1909171,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359358,407,3359358,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1501358,2137473,'N','','N',1909159,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359359,468,3359359,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1507831,2143894,'+','','P',1909162,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359360,0,0,'Mustermann Musterfrau',29674907,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1900169997,2414578,'+',NULL,'N',1909148,'',NULL,NULL,'RV99066_2',20,NULL,'POS',29674907,NULL,NULL,20010202105916,'Mobilfunk','','','97317481','007');
+INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag storniert','','(7001-84):Storno, Kd. möchte nicht mehr','privat',NULL,0,'+','','P',1909150,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
+Kundentyp kategorie
+Privat (Private Nutzung) Mobilfunk
+Warnings:
+Warning 1052 Column 'kundentyp' in group statement is ambiguous
+drop table t1;
diff --git a/mysql-test/r/ndb_alter_table.result b/mysql-test/r/ndb_alter_table.result
index b5fceba7cee..89999eca051 100644
--- a/mysql-test/r/ndb_alter_table.result
+++ b/mysql-test/r/ndb_alter_table.result
@@ -1,4 +1,4 @@
-DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1, t2;
drop database if exists mysqltest;
CREATE TABLE t1 (
a INT NOT NULL,
@@ -34,13 +34,13 @@ col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null,
col6 int not null, to_be_deleted int) ENGINE=ndbcluster;
show table status;
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 9 Dynamic 0 0 0 NULL 0 0 1 NULL NULL NULL latin1_swedish_ci NULL
+t1 ndbcluster 10 Dynamic 0 0 # # 0 # 1 # # # latin1_swedish_ci NULL #
SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
insert into t1 values
(0,4,3,5,"PENDING",1,7),(NULL,4,3,5,"PENDING",1,7),(31,4,3,5,"PENDING",1,7), (7,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7), (100,4,3,5,"PENDING",1,7), (99,4,3,5,"PENDING",1,7), (8,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7);
show table status;
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 9 Dynamic 9 0 0 NULL 0 0 102 NULL NULL NULL latin1_swedish_ci NULL
+t1 ndbcluster 10 Dynamic 9 96 # # 0 # 102 # # # latin1_swedish_ci NULL #
select * from t1 order by col1;
col1 col2 col3 col4 col5 col6 to_be_deleted
0 4 3 5 PENDING 1 7
@@ -60,7 +60,7 @@ change column col2 fourth varchar(30) not null after col3,
modify column col6 int not null first;
show table status;
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 9 Dynamic 9 0 0 NULL 0 0 102 NULL NULL NULL latin1_swedish_ci NULL
+t1 ndbcluster 10 Dynamic 9 152 # # 0 # 102 # # # latin1_swedish_ci NULL #
select * from t1 order by col1;
col6 col1 col3 fourth col4 col4_5 col5 col7 col8
1 0 3 4 5 PENDING 0000-00-00 00:00:00
@@ -75,7 +75,7 @@ col6 col1 col3 fourth col4 col4_5 col5 col7 col8
insert into t1 values (2, NULL,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
show table status;
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 9 Dynamic 10 0 0 NULL 0 0 103 NULL NULL NULL latin1_swedish_ci NULL
+t1 ndbcluster 10 Dynamic 10 152 # # 0 # 103 # # # latin1_swedish_ci NULL #
select * from t1 order by col1;
col6 col1 col3 fourth col4 col4_5 col5 col7 col8
1 0 3 4 5 PENDING 0000-00-00 00:00:00
@@ -315,3 +315,24 @@ unique key tx1 (c002, c003, c004, c005)) engine=ndb;
create index tx2
on t1 (c010, c011, c012, c013);
drop table t1;
+create table t1 (a int primary key auto_increment, b int) engine=ndb;
+insert into t1 (b) values (101),(102),(103);
+select * from t1 where a = 3;
+a b
+3 103
+alter table t1 rename t2;
+insert into t2 (b) values (201),(202),(203);
+select * from t2 where a = 6;
+a b
+6 203
+alter table t2 add c int;
+insert into t2 (b) values (301),(302),(303);
+select * from t2 where a = 9;
+a b c
+9 303 NULL
+alter table t2 rename t1;
+insert into t1 (b) values (401),(402),(403);
+select * from t1 where a = 12;
+a b c
+12 403 NULL
+drop table t1;
diff --git a/mysql-test/r/ndb_alter_table2.result b/mysql-test/r/ndb_alter_table2.result
new file mode 100644
index 00000000000..399578dc97b
--- /dev/null
+++ b/mysql-test/r/ndb_alter_table2.result
@@ -0,0 +1,42 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+a INT NOT NULL PRIMARY KEY,
+b INT NOT NULL
+) ENGINE=ndbcluster;
+BEGIN;
+INSERT INTO t1 VALUES (9410,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9411,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9412,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9413,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9414,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9415,9412);
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+drop table t1;
+CREATE TABLE t1 (
+a INT NOT NULL PRIMARY KEY,
+b INT NOT NULL,
+c INT NOT NULL
+) ENGINE=ndbcluster;
+select * from t1;
+ERROR HY000: Got error 241 'Invalid schema object version' from ndbcluster
+select * from t1;
+a b c
+select * from t1;
+a b c
+select * from t1;
+a b c
+select * from t1;
+a b c
+select * from t1;
+a b c
+drop table t1;
diff --git a/mysql-test/r/ndb_autodiscover.result b/mysql-test/r/ndb_autodiscover.result
index c61270c02a8..01ea884a8ba 100644
--- a/mysql-test/r/ndb_autodiscover.result
+++ b/mysql-test/r/ndb_autodiscover.result
@@ -107,7 +107,7 @@ Handler_discover 0
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `id` int(11) NOT NULL default '0',
+ `id` int(11) NOT NULL,
`name` char(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
@@ -146,8 +146,8 @@ Handler_discover 1
flush tables;
show table status;
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
-t6 MyISAM 9 Fixed 1 260 # # # 0 NULL # # NULL # NULL
-t7 ndbcluster 9 Fixed 1 0 # # # 0 NULL # # NULL # NULL
+t6 MyISAM 10 Fixed 1 260 # # # 0 NULL # # NULL # NULL #
+t7 ndbcluster 10 Fixed 1 276 # # # 0 NULL # # NULL # NULL #
show status like 'handler_discover%';
Variable_name Value
Handler_discover 2
@@ -169,6 +169,25 @@ show status like 'handler_discover%';
Variable_name Value
Handler_discover 0
drop table t4;
+ERROR 42S02: Unknown table 't4'
+create table t4(
+id int not null primary key,
+name char(27)
+) engine=ndb;
+insert into t4 values (1, "Automatic");
+select * from t4;
+id name
+1 Automatic
+select * from t4;
+ERROR 42S02: Table 'test.t4' doesn't exist
+drop table if exists t4;
+Warnings:
+Error 155 Table 'test.t4' doesn't exist
+drop table t5;
+ERROR 42S02: Unknown table 't5'
+drop table if exists t5;
+Warnings:
+Note 1051 Unknown table 't5'
flush status;
create table t4(
id int not null primary key,
@@ -355,11 +374,17 @@ drop table t1;
use test2;
drop table t2;
drop database test2;
-show databases;
-Database
-mysql
-test
use test;
+drop database if exists test_only_ndb_tables;
+create database test_only_ndb_tables;
+use test_only_ndb_tables;
+create table t1 (a int primary key) engine=ndb;
+select * from t1;
+a
+select * from t1;
+ERROR HY000: Can't lock file (errno: 157)
+use test;
+drop database test_only_ndb_tables;
CREATE TABLE t9 (
a int NOT NULL PRIMARY KEY,
b int
diff --git a/mysql-test/r/ndb_backup_print.result b/mysql-test/r/ndb_backup_print.result
new file mode 100644
index 00000000000..fdd929802b2
--- /dev/null
+++ b/mysql-test/r/ndb_backup_print.result
@@ -0,0 +1,64 @@
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+Connected to Management Server at: :
+Waiting for completed, this may take several minutes
+Node : Backup started from node
+Node : Backup started from node completed
+ StartGCP: StopGCP:
+ #Records: #LogRecords:
+ Data: bytes Log: bytes
+create table t1
+(pk int key
+,a1 BIT(1), a2 BIT(5), a3 BIT(33), a4 BIT(63), a5 BIT(64)
+,b1 TINYINT, b2 TINYINT UNSIGNED
+,c1 SMALLINT, c2 SMALLINT UNSIGNED
+,d1 INT, d2 INT UNSIGNED
+,e1 BIGINT, e2 BIGINT UNSIGNED
+,f1 CHAR(1) BINARY, f2 CHAR(32) BINARY, f3 CHAR(255) BINARY
+,g1 VARCHAR(32) BINARY, g2 VARCHAR(255) BINARY, g3 VARCHAR(1000) BINARY
+,h1 BINARY(1), h2 BINARY(8), h3 BINARY(255)
+,i1 VARBINARY(32), i2 VARBINARY(255), i3 VARBINARY(1000)
+) engine ndb;
+insert into t1 values
+(1
+,0x1, 0x17, 0x789a, 0x789abcde, 0xfedc0001
+,127, 255
+,32767, 65535
+,2147483647, 4294967295
+,9223372036854775807, 18446744073709551615
+,'1','12345678901234567890123456789012','123456789'
+ ,'1','12345678901234567890123456789012','123456789'
+ ,0x12,0x123456789abcdef0, 0x012345
+,0x12,0x123456789abcdef0, 0x00123450
+);
+insert into t1 values
+(2
+,0, 0, 0, 0, 0
+,-128, 0
+,-32768, 0
+,-2147483648, 0
+,-9223372036854775808, 0
+,'','',''
+ ,'','',''
+ ,0x0,0x0,0x0
+,0x0,0x0,0x0
+);
+insert into t1 values
+(3
+,NULL,NULL,NULL,NULL,NULL
+,NULL,NULL
+,NULL,NULL
+,NULL,NULL
+,NULL,NULL
+,NULL,NULL,NULL
+,NULL,NULL,NULL
+,NULL,NULL,NULL
+,NULL,NULL,NULL
+);
+Connected to Management Server at: :
+Waiting for completed, this may take several minutes
+Node : Backup started from node
+Node : Backup started from node completed
+ StartGCP: StopGCP:
+ #Records: #LogRecords:
+ Data: bytes Log: bytes
diff --git a/mysql-test/r/ndb_basic.result b/mysql-test/r/ndb_basic.result
index 68c8bc01a14..346b1d5741b 100644
--- a/mysql-test/r/ndb_basic.result
+++ b/mysql-test/r/ndb_basic.result
@@ -577,7 +577,7 @@ create table t1
(a bigint, b bigint, c bigint, d bigint,
primary key (a,b,c,d))
engine=ndb
-max_rows=200000000;
+max_rows=800000000;
Warnings:
Warning 1105 Ndb might have problems storing the max amount of rows specified
insert into t1 values
@@ -667,6 +667,12 @@ counter datavalue
57 newval
58 newval
drop table t1;
+create table t1 (a int primary key auto_increment) engine = ndb;
+insert into t1() values (),(),(),(),(),(),(),(),(),(),(),();
+insert into t1(a) values (20),(28);
+insert into t1() values (),(),(),(),(),(),(),(),(),(),(),();
+insert into t1() values (21), (22);
+drop table t1;
CREATE TABLE t1 ( b INT ) PACK_KEYS = 0 ENGINE = ndb;
select * from t1;
b
@@ -726,3 +732,113 @@ i j x y z
drop table t1;
drop table t2;
drop table t3;
+create table atablewithareallylongandirritatingname (a int);
+insert into atablewithareallylongandirritatingname values (2);
+select * from atablewithareallylongandirritatingname;
+a
+2
+drop table atablewithareallylongandirritatingname;
+create table t1 (f1 varchar(50), f2 text,f3 int, primary key(f1)) engine=NDB;
+insert into t1 (f1,f2,f3)VALUES("111111","aaaaaa",1);
+insert into t1 (f1,f2,f3)VALUES("222222","bbbbbb",2);
+select * from t1 order by f1;
+f1 f2 f3
+111111 aaaaaa 1
+222222 bbbbbb 2
+select * from t1 order by f2;
+f1 f2 f3
+111111 aaaaaa 1
+222222 bbbbbb 2
+select * from t1 order by f3;
+f1 f2 f3
+111111 aaaaaa 1
+222222 bbbbbb 2
+drop table t1;
+Illegal ndb error code: 1186
+CREATE TABLE t1 (
+a VARBINARY(40) NOT NULL,
+b VARCHAR (256) CHARACTER SET UTF8 NOT NULL,
+c VARCHAR(256) CHARACTER SET UTF8 NOT NULL,
+PRIMARY KEY (b,c)) ENGINE=ndbcluster;
+INSERT INTO t1 VALUES
+("a","ab","abc"),("b","abc","abcd"),("c","abc","ab"),("d","ab","ab"),("e","abc","abc");
+SELECT * FROM t1 ORDER BY a;
+a b c
+a ab abc
+b abc abcd
+c abc ab
+d ab ab
+e abc abc
+DROP TABLE t1;
+create table t1 (a int not null primary key, b int not null) engine=ndb;
+create table t2 (a int not null primary key, b int not null) engine=ndb;
+insert into t1 values (1,10), (2,20), (3,30);
+insert into t2 values (1,10), (2,20), (3,30);
+select * from t1 order by a;
+a b
+1 10
+2 20
+3 30
+delete from t1 where a > 0 order by a desc limit 1;
+select * from t1 order by a;
+a b
+1 10
+2 20
+delete from t1,t2 using t1,t2 where t1.a = t2.a;
+select * from t2 order by a;
+a b
+3 30
+drop table t1,t2;
+create table t1 (a int not null primary key, b int not null) engine=ndb;
+insert into t1 values (1,10), (2,20), (3,30);
+insert into t1 set a=1, b=100;
+ERROR 23000: Duplicate entry '1' for key 1
+insert ignore into t1 set a=1, b=100;
+select * from t1 order by a;
+a b
+1 10
+2 20
+3 30
+insert into t1 set a=1, b=1000 on duplicate key update b=b+1;
+select * from t1 order by a;
+a b
+1 11
+2 20
+3 30
+drop table t1;
+create table t1 (a int not null primary key, b int not null) engine=ndb;
+create table t2 (c int not null primary key, d int not null) engine=ndb;
+insert into t1 values (1,10), (2,10), (3,30), (4, 30);
+insert into t2 values (1,10), (2,10), (3,30), (4, 30);
+update t1 set a = 1 where a = 3;
+ERROR 23000: Duplicate entry '1' for key 1
+select * from t1 order by a;
+a b
+1 10
+2 10
+3 30
+4 30
+update t1 set b = 1 where a > 1 order by a desc limit 1;
+select * from t1 order by a;
+a b
+1 10
+2 10
+3 30
+4 1
+update t1,t2 set a = 1, c = 1 where a = 3 and c = 3;
+ERROR 23000: Duplicate entry '1' for key 1
+select * from t1 order by a;
+a b
+1 10
+2 10
+3 30
+4 1
+update ignore t1,t2 set a = 1, c = 1 where a = 3 and c = 3;
+select * from t1 order by a;
+a b
+1 10
+2 10
+3 30
+4 1
+drop table t1,t2;
+End of 5.0 tests
diff --git a/mysql-test/r/ndb_bitfield.result b/mysql-test/r/ndb_bitfield.result
new file mode 100644
index 00000000000..389e19f2893
--- /dev/null
+++ b/mysql-test/r/ndb_bitfield.result
@@ -0,0 +1,216 @@
+drop table if exists t1;
+create table t1 (
+pk1 int not null primary key,
+b bit(64)
+) engine=ndbcluster;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `pk1` int(11) NOT NULL,
+ `b` bit(64) default NULL,
+ PRIMARY KEY (`pk1`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+insert into t1 values
+(0,b'1111111111111111111111111111111111111111111111111111111111111111'),
+(1,b'1000000000000000000000000000000000000000000000000000000000000000'),
+(2,b'0000000000000000000000000000000000000000000000000000000000000001'),
+(3,b'1010101010101010101010101010101010101010101010101010101010101010'),
+(4,b'0101010101010101010101010101010101010101010101010101010101010101');
+select hex(b) from t1 order by pk1;
+hex(b)
+FFFFFFFFFFFFFFFF
+8000000000000000
+1
+AAAAAAAAAAAAAAAA
+5555555555555555
+drop table t1;
+create table t1 (
+pk1 int not null primary key,
+b bit(9)
+) engine=ndbcluster;
+insert into t1 values
+(0,b'000000000'),
+(1,b'000000001'),
+(2,b'000000010'),
+(3,b'000000011'),
+(4,b'000000100');
+select hex(b) from t1 order by pk1;
+hex(b)
+0
+1
+2
+3
+4
+update t1 set b = b + b'101010101';
+select hex(b) from t1 order by pk1;
+hex(b)
+155
+156
+157
+158
+159
+drop table t1;
+create table t1 (a bit(7), b bit(9)) engine = ndbcluster;
+insert into t1 values
+(94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),
+(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),
+(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),
+(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),
+(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),
+(44, 307), (68, 454), (57, 135);
+select a+0 from t1 order by a;
+a+0
+0
+4
+5
+9
+23
+24
+28
+29
+30
+31
+34
+44
+49
+56
+57
+59
+60
+61
+68
+68
+75
+77
+78
+79
+87
+88
+94
+94
+104
+106
+108
+111
+116
+118
+119
+122
+123
+127
+select b+0 from t1 order by b;
+b+0
+36
+42
+46
+67
+83
+118
+123
+133
+135
+152
+177
+178
+188
+202
+206
+245
+280
+307
+343
+345
+349
+351
+363
+368
+368
+379
+380
+390
+398
+399
+403
+411
+411
+438
+446
+454
+468
+499
+drop table t1;
+create table t1 (
+dummyKey INTEGER NOT NULL,
+a001 TINYINT,
+a010 TINYINT,
+a012 TINYINT,
+a015 TINYINT,
+a016 TINYINT,
+a017 TINYINT,
+a019 TINYINT,
+a029 TINYINT,
+a030 TINYINT,
+a031 TINYINT,
+a032 TINYINT,
+a042 TINYINT,
+a043 TINYINT,
+a044 TINYINT,
+a3001 TINYINT,
+a3002 TINYINT,
+a3003 TINYINT,
+a3004 TINYINT,
+a3005 TINYINT,
+a3021 TINYINT,
+a3022 TINYINT,
+a BIT(6),
+b BIT(6),
+c BIT(6),
+d TINYINT,
+e TINYINT,
+f TINYINT,
+g TINYINT,
+h TINYINT,
+i TINYINT,
+j TINYINT,
+k TINYINT,
+l TINYINT,
+m TINYINT,
+n TINYINT,
+o TINYINT,
+a034 TINYINT,
+PRIMARY KEY USING HASH (dummyKey) ) engine=ndb;
+INSERT INTO `t1` VALUES
+(1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000001',b'111111',b'111110',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000010',b'000000',b'111101',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000100',b'001111',b'111011',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'001000',b'110000',b'110111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'010000',b'100001',b'101111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x01,0x3F,0x3E,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x02,0x00,0x3D,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x04,0x0F,0x3B,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x08,0x30,0x37,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x10,0x21,0x2F,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x20,0x12,0x1F,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x00,0x0C,0x3F,4,5,5,5,5,5,5,5,5,5,3,2,1);
+INSERT INTO `t1` VALUES (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x3F,0x00,0x00,4,5,5,5,5,5,5,5,5,5,3,2,1);
+drop table t1;
+create table t1 (
+pk1 bit(9) not null primary key,
+b int
+) engine=ndbcluster;
+ERROR HY000: Can't create table './test/t1.frm' (errno: 906)
+create table t1 (
+pk1 int not null primary key,
+b bit(9),
+key(b)
+) engine=ndbcluster;
+ERROR HY000: Can't create table './test/t1.frm' (errno: 906)
+create table t1 (
+pk1 int primary key,
+b bit(32) not null
+) engine=ndbcluster;
+insert into t1 values (1,1);
+drop table t1;
diff --git a/mysql-test/r/ndb_blob.result b/mysql-test/r/ndb_blob.result
index e3289961fb8..2864b1dc7c9 100644
--- a/mysql-test/r/ndb_blob.result
+++ b/mysql-test/r/ndb_blob.result
@@ -76,6 +76,8 @@ commit;
select a from t1 where d is null;
a
1
+delete from t1 where a=45567;
+commit;
delete from t1 where a=1;
delete from t1 where a=2;
commit;
@@ -134,7 +136,7 @@ insert into t1 values(2,@b2,222,@d2);
commit;
explain select * from t1 where c = 111;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref c c 4 const 10 Using where
+1 SIMPLE t1 ref c c 4 const 10
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
from t1 where c=111;
a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3)
@@ -500,3 +502,69 @@ select count(*) from t1;
count(*)
0
drop table t1;
+create table t1 (
+a varchar(40) not null,
+b mediumint not null,
+t text,
+c varchar(2) not null,
+d bigint not null,
+primary key (a,b,c),
+key (c,a),
+unique key (d)
+) engine=ndb;
+insert into t1 (a,b,c,d,t) values ('a',1110,'a',1,@v1);
+insert into t1 (a,b,c,d,t) values ('b',1110,'a',2,@v2);
+insert into t1 (a,b,c,d,t) values ('a',1110,'b',3,@v3);
+insert into t1 (a,b,c,d,t) values ('b',1110,'b',4,@v4);
+select a,b,c,d,sha1(t) from t1 order by c,a;
+a b c d sha1(t)
+a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5
+b 1110 a 2 b238654911689bfb626a3ef9dba4a1ca074e6a5e
+a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612
+b 1110 b 4 NULL
+select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='a';
+a b c d sha1(t)
+a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5
+select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='b';
+a b c d sha1(t)
+a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612
+update t1 set t=@v4 where a='b' and b=1110 and c='a';
+update t1 set t=@v2 where a='b' and b=1110 and c='b';
+select a,b,c,d,sha1(t) from t1 order by c,a;
+a b c d sha1(t)
+a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5
+b 1110 a 2 NULL
+a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612
+b 1110 b 4 b238654911689bfb626a3ef9dba4a1ca074e6a5e
+update t1 set t=@v2 where d=2;
+update t1 set t=@v4 where d=4;
+select a,b,c,d,sha1(t) from t1 order by c,a;
+a b c d sha1(t)
+a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5
+b 1110 a 2 b238654911689bfb626a3ef9dba4a1ca074e6a5e
+a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612
+b 1110 b 4 NULL
+update t1 set t=@v4 where a='b' and c='a';
+update t1 set t=@v2 where a='b' and c='b';
+select a,b,c,d,sha1(t) from t1 order by c,a;
+a b c d sha1(t)
+a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5
+b 1110 a 2 NULL
+a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612
+b 1110 b 4 b238654911689bfb626a3ef9dba4a1ca074e6a5e
+update t1 set t=@v2 where b+d=1112;
+update t1 set t=@v4 where b+d=1114;
+select a,b,c,d,sha1(t) from t1 order by c,a;
+a b c d sha1(t)
+a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5
+b 1110 a 2 b238654911689bfb626a3ef9dba4a1ca074e6a5e
+a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612
+b 1110 b 4 NULL
+delete from t1 where a='a' and b=1110 and c='a';
+delete from t1 where a='b' and c='a';
+delete from t1 where d=3;
+delete from t1 where b+d=1114;
+select count(*) from t1;
+count(*)
+0
+drop table t1;
diff --git a/mysql-test/r/ndb_bug26793.result b/mysql-test/r/ndb_bug26793.result
new file mode 100644
index 00000000000..a9a8a798546
--- /dev/null
+++ b/mysql-test/r/ndb_bug26793.result
@@ -0,0 +1,8 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE `test` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`t` VARCHAR( 10 ) NOT NULL
+) ENGINE = ndbcluster;
+GRANT USAGE ON *.* TO user1@localhost IDENTIFIED BY 'pass';
+DROP TABLE `test`.`test`;
+drop user user1@localhost;
diff --git a/mysql-test/r/ndb_cache.result b/mysql-test/r/ndb_cache.result
index 714e1831267..478663b1aa1 100644
--- a/mysql-test/r/ndb_cache.result
+++ b/mysql-test/r/ndb_cache.result
@@ -1,43 +1,191 @@
+drop table if exists t1;
+set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776;
reset query cache;
flush status;
-drop table if exists t1,t2;
-CREATE TABLE t1 (a int) ENGINE=ndbcluster;
-CREATE TABLE t2 (a int);
+CREATE TABLE t1 ( pk int not null primary key,
+a int, b int not null, c varchar(20)) ENGINE=ndbcluster;
+insert into t1 value (1, 2, 3, 'First row');
select * from t1;
-a
+pk a b c
+1 2 3 First row
show status like "Qcache_queries_in_cache";
Variable_name Value
-Qcache_queries_in_cache 0
+Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
-Qcache_inserts 0
+Qcache_inserts 1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
-select * from t2;
-a
+select * from t1;
+pk a b c
+1 2 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+update t1 set a=3 where pk=1;
+select * from t1;
+pk a b c
+1 3 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+insert into t1 value (2, 7, 8, 'Second row');
+insert into t1 value (4, 5, 6, 'Fourth row');
+select * from t1 order by pk;
+pk a b c
+1 3 3 First row
+2 7 8 Second row
+4 5 6 Fourth row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from t1 order by pk;
+pk a b c
+1 3 3 First row
+2 7 8 Second row
+4 5 6 Fourth row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+select * from t1 where b=3;
+pk a b c
+1 3 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+select * from t1 where b=3;
+pk a b c
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 3
+delete from t1 where c='Fourth row';
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+select * from t1 where b=3;
+pk a b c
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 3
+use test;
+select * from t1 order by pk;
+pk a b c
+1 3 3 First row
+2 7 8 Second row
+select * from t1 where b=3;
+pk a b c
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 4
+update t1 set a=4 where b=3;
+use test;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 4 3 First row
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 4 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 7
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 5
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 4 3 First row
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 4 3 First row
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
-Qcache_inserts 1
+Qcache_inserts 7
show status like "Qcache_hits";
Variable_name Value
-Qcache_hits 0
-select * from t1;
-a
-select * from t2;
-a
+Qcache_hits 7
+begin;
+update t1 set a=5 where pk=1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 7
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 7
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 4 3 First row
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
-Qcache_inserts 1
+Qcache_inserts 8
show status like "Qcache_hits";
Variable_name Value
-Qcache_hits 1
-drop table t1, t2;
+Qcache_hits 7
+commit;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 8
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 7
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 5 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 9
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 7
+select * from t1 order by pk desc;
+pk a b c
+2 7 8 Second row
+1 5 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 9
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 8
+drop table t1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
SET GLOBAL query_cache_size=0;
diff --git a/mysql-test/r/ndb_cache2.result b/mysql-test/r/ndb_cache2.result
new file mode 100644
index 00000000000..2876002f864
--- /dev/null
+++ b/mysql-test/r/ndb_cache2.result
@@ -0,0 +1,623 @@
+drop table if exists t1, t2, t3, t4, t5;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+set GLOBAL ndb_cache_check_time=100;
+reset query cache;
+flush status;
+CREATE TABLE t1 (
+pk int not null primary key,
+a1 int,
+b1 int not null,
+c1 varchar(20)
+) ENGINE=ndb;
+CREATE TABLE t2 (
+pk int not null primary key,
+a2 int,
+b2 int not null
+) ENGINE=ndb;
+CREATE TABLE t3 (
+pk int not null primary key,
+a3 int,
+b3 int not null,
+c3 int not null,
+d3 varchar(20)
+) ENGINE=ndb;
+CREATE TABLE t4 (
+a4 int,
+b4 int not null,
+c4 char(20)
+) ENGINE=ndbcluster;
+CREATE TABLE t5 (
+pk int not null primary key,
+a5 int,
+b5 int not null,
+c5 varchar(255)
+) ENGINE=ndbcluster;
+insert into t1 value (1, 2, 3, 'First row');
+insert into t2 value (1, 2, 3);
+insert into t3 value (1, 2, 3, 4, '3 - First row');
+insert into t4 value (2, 3, '4 - First row');
+insert into t5 value (1, 2, 3, '5 - First row');
+select * from t1;
+pk a1 b1 c1
+1 2 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1;
+pk a1 b1 c1
+1 2 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+update t1 set a1=3 where pk=1;
+select * from t1;
+pk a1 b1 c1
+1 3 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+insert into t1 value (2, 7, 8, 'Second row');
+insert into t1 value (4, 5, 6, 'Fourth row');
+select * from t1 order by pk desc;
+pk a1 b1 c1
+4 5 6 Fourth row
+2 7 8 Second row
+1 3 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from t1 order by pk desc;
+pk a1 b1 c1
+4 5 6 Fourth row
+2 7 8 Second row
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+select * from t1 where b1=3;
+pk a1 b1 c1
+1 3 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+select * from t1 where b1=3;
+pk a1 b1 c1
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 3
+delete from t1 where c1='Fourth row';
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+select * from t1 where b1=3;
+pk a1 b1 c1
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 3
+use test;
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 3 3 First row
+select * from t1 where b1=3;
+pk a1 b1 c1
+1 3 3 First row
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 4
+update t1 set a1=4 where b1=3;
+use test;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 4 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 4 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 7
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 5
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 4 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 4 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 7
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 7
+select * from t2;
+pk a2 b2
+1 2 3
+select * from t3;
+pk a3 b3 c3 d3
+1 2 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+2 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 2 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+flush status;
+begin;
+update t1 set a1=5 where pk=1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 4
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 4 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+commit;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 5 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 5 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+flush status;
+begin;
+update t1 set a1=6 where pk=1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 4
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 5 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 5 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 6 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+commit;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+flush status;
+begin;
+insert into t1 set pk=5, a1=6, b1=3, c1="New row";
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 4
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 where pk=5;
+pk a1 b1 c1
+select * from t1 order by pk desc;
+pk a1 b1 c1
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 where pk=5;
+pk a1 b1 c1
+5 6 3 New row
+select * from t1 where pk=5;
+pk a1 b1 c1
+5 6 3 New row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+2 7 8 Second row
+1 6 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+commit;
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+flush status;
+begin;
+delete from t1 where pk=2;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 4
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 where pk=2;
+pk a1 b1 c1
+2 7 8 Second row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+2 7 8 Second row
+1 6 3 First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 where pk=2;
+pk a1 b1 c1
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 6 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 6 3 First row
+select * from t1 where pk=2;
+pk a1 b1 c1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+commit;
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 6 3 First row
+select * from t1 where pk=2;
+pk a1 b1 c1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 6
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 4
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+flush status;
+begin;
+update t1 set a1=9 where pk=1;
+update t2 set a2=9 where pk=1;
+update t3 set a3=9 where pk=1;
+update t4 set a4=9 where a4=2;
+update t5 set a5=9 where pk=1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 6 3 First row
+select * from t2;
+pk a2 b2
+1 2 3
+select * from t3;
+pk a3 b3 c3 d3
+1 2 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+2 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 2 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 5
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 9 3 First row
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 9 3 First row
+select * from t2;
+pk a2 b2
+1 9 3
+select * from t3;
+pk a3 b3 c3 d3
+1 9 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+9 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 9 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 5
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+commit;
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 9 3 First row
+select * from t2;
+pk a2 b2
+1 9 3
+select * from t3;
+pk a3 b3 c3 d3
+1 9 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+9 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 9 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 10
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 9 3 First row
+select * from t2;
+pk a2 b2
+1 9 3
+select * from t3;
+pk a3 b3 c3 d3
+1 9 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+9 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 9 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 10
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 5
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 9 3 First row
+select * from t2;
+pk a2 b2
+1 9 3
+select * from t3;
+pk a3 b3 c3 d3
+1 9 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+9 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 9 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 10
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 10
+select * from t1 order by pk desc;
+pk a1 b1 c1
+5 6 3 New row
+1 9 3 First row
+select * from t2;
+pk a2 b2
+1 9 3
+select * from t3;
+pk a3 b3 c3 d3
+1 9 3 4 3 - First row
+select * from t4;
+a4 b4 c4
+9 3 4 - First row
+select * from t5;
+pk a5 b5 c5
+1 9 3 5 - First row
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 5
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 10
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 15
+drop table t1, t2, t3, t4, t5;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+SET GLOBAL query_cache_size=0;
+SET GLOBAL ndb_cache_check_time=0;
diff --git a/mysql-test/r/ndb_cache_multi.result b/mysql-test/r/ndb_cache_multi.result
new file mode 100644
index 00000000000..c7135ed9e8a
--- /dev/null
+++ b/mysql-test/r/ndb_cache_multi.result
@@ -0,0 +1,72 @@
+drop table if exists t1, t2;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+reset query cache;
+flush status;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+reset query cache;
+flush status;
+create table t1 (a int) engine=ndbcluster;
+create table t2 (a int) engine=ndbcluster;
+insert into t1 value (2);
+insert into t2 value (3);
+select * from t1;
+a
+2
+select * from t2;
+a
+3
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 2
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1;
+a
+2
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+update t1 set a=3 where a=2;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 2
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1;
+a
+3
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 2
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+drop table t1, t2;
diff --git a/mysql-test/r/ndb_cache_multi2.result b/mysql-test/r/ndb_cache_multi2.result
new file mode 100644
index 00000000000..53767bb6d3c
--- /dev/null
+++ b/mysql-test/r/ndb_cache_multi2.result
@@ -0,0 +1,75 @@
+drop table if exists t1, t2;
+== Connected to server1 ==
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+set GLOBAL ndb_cache_check_time=1;
+reset query cache;
+flush status;
+== Connected to server2 ==
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+set GLOBAL ndb_cache_check_time=1;
+reset query cache;
+flush status;
+== Connected to server1 ==
+create table t1 (a int) engine=ndbcluster;
+create table t2 (a int) engine=ndbcluster;
+insert into t1 value (2);
+insert into t2 value (3);
+select * from t1;
+a
+2
+select a != 3 from t1;
+a != 3
+1
+select * from t2;
+a
+3
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 3
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+== Connected to server2 ==
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1;
+a
+2
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+update t1 set a=3 where a=2;
+== Connected to server1 ==
+select * from t1;
+a
+3
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 3
+drop table t1, t2;
+set GLOBAL query_cache_size=0;
+set GLOBAL ndb_cache_check_time=0;
+reset query cache;
+flush status;
+set GLOBAL query_cache_size=0;
+set GLOBAL ndb_cache_check_time=0;
+reset query cache;
+flush status;
diff --git a/mysql-test/r/ndb_charset.result b/mysql-test/r/ndb_charset.result
index b014050b69f..9e519c39496 100644
--- a/mysql-test/r/ndb_charset.result
+++ b/mysql-test/r/ndb_charset.result
@@ -47,6 +47,40 @@ a
aAa
drop table t1;
create table t1 (
+a varchar(20) character set latin1 collate latin1_swedish_ci primary key
+) engine=ndb;
+insert into t1 values ('A'),('b '),('C '),('d '),('E'),('f');
+insert into t1 values('b');
+ERROR 23000: Duplicate entry 'b' for key 1
+insert into t1 values('a ');
+ERROR 23000: Duplicate entry 'a ' for key 1
+select a,length(a) from t1 order by a;
+a length(a)
+A 1
+b 2
+C 3
+d 7
+E 1
+f 1
+select a,length(a) from t1 order by a desc;
+a length(a)
+f 1
+E 1
+d 7
+C 3
+b 2
+A 1
+select * from t1 where a = 'a';
+a
+A
+select * from t1 where a = 'a ';
+a
+A
+select * from t1 where a = 'd';
+a
+d
+drop table t1;
+create table t1 (
p int primary key,
a char(3) character set latin1 collate latin1_bin not null,
unique key(a)
@@ -99,6 +133,42 @@ p a
drop table t1;
create table t1 (
p int primary key,
+a varchar(20) character set latin1 collate latin1_swedish_ci not null,
+unique key(a)
+) engine=ndb;
+insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
+insert into t1 values(99,'b');
+ERROR 23000: Duplicate entry '' for key 0
+insert into t1 values(99,'a ');
+ERROR 23000: Duplicate entry '' for key 0
+select a,length(a) from t1 order by a;
+a length(a)
+A 1
+b 2
+C 3
+d 7
+E 1
+f 1
+select a,length(a) from t1 order by a desc;
+a length(a)
+f 1
+E 1
+d 7
+C 3
+b 2
+A 1
+select * from t1 where a = 'a';
+p a
+1 A
+select * from t1 where a = 'a ';
+p a
+1 A
+select * from t1 where a = 'd';
+p a
+4 d
+drop table t1;
+create table t1 (
+p int primary key,
a char(3) character set latin1 collate latin1_bin not null,
index(a)
) engine=ndb;
@@ -190,6 +260,51 @@ p a
6 AAA
drop table t1;
create table t1 (
+p int primary key,
+a varchar(20) character set latin1 collate latin1_swedish_ci not null,
+index(a, p)
+) engine=ndb;
+insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
+insert into t1 values (7,'a'),(8,'B '),(9,'c '),(10,'D'),(11,'e'),(12,'F ');
+select p,a,length(a) from t1 order by a, p;
+p a length(a)
+1 A 1
+7 a 1
+2 b 2
+8 B 2
+3 C 3
+9 c 3
+4 d 7
+10 D 1
+5 E 1
+11 e 1
+6 f 1
+12 F 3
+select * from t1 where a = 'a ' order by a desc, p desc;
+p a
+7 a
+1 A
+select * from t1 where a >= 'D' order by a, p;
+p a
+4 d
+10 D
+5 E
+11 e
+6 f
+12 F
+select * from t1 where a < 'D' order by a, p;
+p a
+1 A
+7 a
+2 b
+8 B
+3 C
+9 c
+select count(*) from t1 x, t1 y, t1 z where x.a = y.a and y.a = z.a;
+count(*)
+48
+drop table t1;
+create table t1 (
a char(10) primary key
) engine=ndbcluster default charset=latin1;
insert into t1 values ('aaabb');
diff --git a/mysql-test/r/ndb_condition_pushdown.result b/mysql-test/r/ndb_condition_pushdown.result
new file mode 100644
index 00000000000..d49c0cd983e
--- /dev/null
+++ b/mysql-test/r/ndb_condition_pushdown.result
@@ -0,0 +1,1914 @@
+DROP TABLE IF EXISTS t1,t2;
+CREATE TABLE t1 (
+auto int(5) unsigned NOT NULL auto_increment,
+string char(10),
+vstring varchar(10),
+bin binary(2),
+vbin varbinary(7),
+tiny tinyint(4) DEFAULT '0' NOT NULL ,
+short smallint(6) DEFAULT '1' NOT NULL ,
+medium mediumint(8) DEFAULT '0' NOT NULL,
+long_int int(11) DEFAULT '0' NOT NULL,
+longlong bigint(13) DEFAULT '0' NOT NULL,
+real_float float(13,1) DEFAULT 0.0 NOT NULL,
+real_double double(16,4),
+real_decimal decimal(16,4),
+utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
+ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
+umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
+ulong int(11) unsigned DEFAULT '0' NOT NULL,
+ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
+bits bit(3),
+options enum('zero','one','two','three','four') not null,
+flags set('zero','one','two','three','four') not null,
+date_field date,
+year_field year,
+time_field time,
+date_time datetime,
+time_stamp timestamp,
+PRIMARY KEY (auto)
+) engine=ndb;
+insert into t1 values
+(NULL,"aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1.1,1,1,1,1,1,
+b'001','one','one',
+'1901-01-01','1901',
+'01:01:01','1901-01-01 01:01:01',NULL),
+(NULL,"bbbb","bbbb",0xBBBB,0xBBBB,-2,-2,-2,-2,-2,2.2,2.2,2.2,2,2,2,2,2,
+b'010','two','one,two',
+'1902-02-02','1902',
+'02:02:02','1902-02-02 02:02:02',NULL),
+(NULL,"cccc","cccc",0xCCCC,0xCCCC,-3,-3,-3,-3,-3,3.3,3.3,3.3,3,3,3,3,3,
+b'011','three','one,two,three',
+'1903-03-03','1903',
+'03:03:03','1903-03-03 03:03:03',NULL),
+(NULL,"dddd","dddd",0xDDDD,0xDDDD,-4,-4,-4,-4,-4,4.4,4.4,4.4,4,4,4,4,4,
+b'100','four','one,two,three,four',
+'1904-04-04','1904',
+'04:04:04','1904-04-04 04:04:04',NULL);
+CREATE TABLE t2 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 int unsigned, attr3 VARCHAR(10) ) ENGINE=ndbcluster;
+insert into t2 values (0,0,0, "a"),(1,1,1,"b"),(2,2,NULL,NULL),(3,3,3,"d"),(4,4,4,"e"),(5,5,5,"f");
+CREATE TABLE t3 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 bigint unsigned, attr3 tinyint unsigned, attr4 VARCHAR(10) ) ENGINE=ndbcluster;
+insert into t3 values (0,0,0,0,"a"),(1,1,9223372036854775803,1,"b"),(2,2,9223372036854775804,2,"c"),(3,3,9223372036854775805,3,"d"),(4,4,9223372036854775806,4,"e"),(5,5,9223372036854775807,5,"f");
+CREATE TABLE t4 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 bigint unsigned, attr3 tinyint unsigned, attr4 VARCHAR(10) , KEY (attr1)) ENGINE=ndbcluster;
+insert into t4 values (0,0,0,0,"a"),(1,1,9223372036854775803,1,"b"),(2,2,9223372036854775804,2,"c"),(3,3,9223372036854775805,3,"d"),(4,4,9223372036854775806,4,"e"),(5,5,9223372036854775807,5,"f");
+set @old_ecpd = @@session.engine_condition_pushdown;
+set engine_condition_pushdown = off;
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+bits = b'001' and
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+auto
+1
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+bits != b'001' and
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+auto
+2
+3
+4
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+bits > b'001' and
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+auto
+2
+3
+4
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+bits >= b'001' and
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+auto
+1
+2
+3
+4
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+bits < b'100' and
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+auto
+1
+2
+3
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 and
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+bits <= b'100' and
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+auto
+1
+2
+3
+4
+select auto from t1 where
+string like "b%" and
+vstring like "b%" and
+bin like concat(0xBB, '%') and
+vbin like concat(0xBB, '%')
+order by auto;
+auto
+2
+select auto from t1 where
+string not like "b%" and
+vstring not like "b%" and
+bin not like concat(0xBB, '%') and
+vbin not like concat(0xBB, '%')
+order by auto;
+auto
+1
+3
+4
+select auto from t1 where
+(string between "aaaa" and "cccc") and
+(vstring between "aaaa" and "cccc") and
+(bin between 0xAAAA and 0xCCCC) and
+(vbin between 0xAAAA and 0xCCCC) and
+(tiny between -3 and -1) and
+(short between -3 and -1) and
+(medium between -3 and -1) and
+(long_int between -3 and -1) and
+(longlong between -3 and -1) and
+(utiny between 1 and 3) and
+(ushort between 1 and 3) and
+(umedium between 1 and 3) and
+(ulong between 1 and 3) and
+(ulonglong between 1 and 3) and
+(bits between b'001' and b'011') and
+(options between 'one' and 'three') and
+(flags between 'one' and 'one,two,three') and
+(date_field between '1901-01-01' and '1903-03-03') and
+(year_field between '1901' and '1903') and
+(time_field between '01:01:01' and '03:03:03') and
+(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+auto
+1
+3
+select auto from t1 where
+("aaaa" between string and string) and
+("aaaa" between vstring and vstring) and
+(0xAAAA between bin and bin) and
+(0xAAAA between vbin and vbin) and
+(-1 between tiny and tiny) and
+(-1 between short and short) and
+(-1 between medium and medium) and
+(-1 between long_int and long_int) and
+(-1 between longlong and longlong) and
+(1 between utiny and utiny) and
+(1 between ushort and ushort) and
+(1 between umedium and umedium) and
+(1 between ulong and ulong) and
+(1 between ulonglong and ulonglong) and
+(b'001' between bits and bits) and
+('one' between options and options) and
+('one' between flags and flags) and
+('1901-01-01' between date_field and date_field) and
+('1901' between year_field and year_field) and
+('01:01:01' between time_field and time_field) and
+('1901-01-01 01:01:01' between date_time and date_time)
+order by auto;
+auto
+1
+select auto from t1 where
+(string not between "aaaa" and "cccc") and
+(vstring not between "aaaa" and "cccc") and
+(bin not between 0xAAAA and 0xCCCC) and
+(vbin not between 0xAAAA and 0xCCCC) and
+(tiny not between -3 and -1) and
+(short not between -3 and -1) and
+(medium not between -3 and -1) and
+(long_int not between -3 and -1) and
+(longlong not between -3 and -1) and
+(utiny not between 1 and 3) and
+(ushort not between 1 and 3) and
+(umedium not between 1 and 3) and
+(ulong not between 1 and 3) and
+(ulonglong not between 1 and 3) and
+(bits not between b'001' and b'011') and
+(options not between 'one' and 'three') and
+(flags not between 'one' and 'one,two,three') and
+(date_field not between '1901-01-01' and '1903-03-03') and
+(year_field not between '1901' and '1903') and
+(time_field not between '01:01:01' and '03:03:03') and
+(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+auto
+4
+select auto from t1 where
+("aaaa" not between string and string) and
+("aaaa" not between vstring and vstring) and
+(0xAAAA not between bin and bin) and
+(0xAAAA not between vbin and vbin) and
+(-1 not between tiny and tiny) and
+(-1 not between short and short) and
+(-1 not between medium and medium) and
+(-1 not between long_int and long_int) and
+(-1 not between longlong and longlong) and
+(1 not between utiny and utiny) and
+(1 not between ushort and ushort) and
+(1 not between umedium and umedium) and
+(1 not between ulong and ulong) and
+(1 not between ulonglong and ulonglong) and
+(b'001' not between bits and bits) and
+('one' not between options and options) and
+('one' not between flags and flags) and
+('1901-01-01' not between date_field and date_field) and
+('1901' not between year_field and year_field) and
+('01:01:01' not between time_field and time_field) and
+('1901-01-01 01:01:01' not between date_time and date_time)
+order by auto;
+auto
+2
+3
+4
+select auto from t1 where
+string in("aaaa","cccc") and
+vstring in("aaaa","cccc") and
+bin in(0xAAAA,0xCCCC) and
+vbin in(0xAAAA,0xCCCC) and
+tiny in(-1,-3) and
+short in(-1,-3) and
+medium in(-1,-3) and
+long_int in(-1,-3) and
+longlong in(-1,-3) and
+utiny in(1,3) and
+ushort in(1,3) and
+umedium in(1,3) and
+ulong in(1,3) and
+ulonglong in(1,3) and
+bits in(b'001',b'011') and
+options in('one','three') and
+flags in('one','one,two,three') and
+date_field in('1901-01-01','1903-03-03') and
+year_field in('1901','1903') and
+time_field in('01:01:01','03:03:03') and
+date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+auto
+1
+3
+select auto from t1 where
+"aaaa" in(string) and
+"aaaa" in(vstring) and
+0xAAAA in(bin) and
+0xAAAA in(vbin) and
+(-1 in(tiny)) and
+(-1 in(short)) and
+(-1 in(medium)) and
+(-1 in(long_int)) and
+(-1 in(longlong)) and
+1 in(utiny) and
+1 in(ushort) and
+1 in(umedium) and
+1 in(ulong) and
+1 in(ulonglong) and
+b'001' in(bits) and
+'one' in(options) and
+'one' in(flags) and
+'1901-01-01' in(date_field) and
+'1901' in(year_field) and
+'01:01:01' in(time_field) and
+'1901-01-01 01:01:01' in(date_time)
+order by auto;
+auto
+1
+select auto from t1 where
+string not in("aaaa","cccc") and
+vstring not in("aaaa","cccc") and
+bin not in(0xAAAA,0xCCCC) and
+vbin not in(0xAAAA,0xCCCC) and
+tiny not in(-1,-3) and
+short not in(-1,-3) and
+medium not in(-1,-3) and
+long_int not in(-1,-3) and
+longlong not in(-1,-3) and
+utiny not in(1,3) and
+ushort not in(1,3) and
+umedium not in(1,3) and
+ulong not in(1,3) and
+ulonglong not in(1,3) and
+bits not in(b'001',b'011') and
+options not in('one','three') and
+flags not in('one','one,two,three') and
+date_field not in('1901-01-01','1903-03-03') and
+year_field not in('1901','1903') and
+time_field not in('01:01:01','03:03:03') and
+date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+auto
+2
+4
+select auto from t1 where
+"aaaa" not in(string) and
+"aaaa" not in(vstring) and
+0xAAAA not in(bin) and
+0xAAAA not in(vbin) and
+(-1 not in(tiny)) and
+(-1 not in(short)) and
+(-1 not in(medium)) and
+(-1 not in(long_int)) and
+(-1 not in(longlong)) and
+1 not in(utiny) and
+1 not in(ushort) and
+1 not in(umedium) and
+1 not in(ulong) and
+1 not in(ulonglong) and
+b'001' not in(bits) and
+'one' not in(options) and
+'one' not in(flags) and
+'1901-01-01' not in(date_field) and
+'1901' not in(year_field) and
+'01:01:01' not in(time_field) and
+'1901-01-01 01:01:01' not in(date_time)
+order by auto;
+auto
+2
+3
+4
+select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
+pk1 attr1 attr2 attr3
+2 2 NULL NULL
+3 3 3 d
+select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
+pk1 attr1 attr2 attr3
+3 3 3 d
+4 4 4 e
+5 5 5 f
+select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
+pk1 attr1 attr2 attr3 attr4
+2 2 9223372036854775804 2 c
+4 4 9223372036854775806 4 e
+5 5 9223372036854775807 5 f
+select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
+pk1 attr1 attr2 attr3 pk1 attr1 attr2 attr3 attr4
+0 0 0 a 0 0 0 0 a
+select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
+pk1 attr1 attr2 attr3 attr4
+2 2 9223372036854775804 2 c
+4 4 9223372036854775806 4 e
+select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
+pk1 attr1 attr2 attr3 attr4 pk1 attr1 attr2 attr3 attr4
+2 2 9223372036854775804 2 c 2 2 9223372036854775804 2 c
+3 3 9223372036854775805 3 d 3 3 9223372036854775805 3 d
+4 4 9223372036854775806 4 e 4 4 9223372036854775806 4 e
+set engine_condition_pushdown = on;
+explain
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+auto
+1
+explain
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+auto
+2
+3
+4
+explain
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+auto
+2
+3
+4
+explain
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+auto
+1
+2
+3
+4
+explain
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+auto
+1
+2
+3
+explain
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+auto
+1
+2
+3
+4
+create index medium_index on t1(medium);
+explain
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref medium_index medium_index 3 const 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+auto
+1
+explain
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 20 Using where with pushed condition; Using filesort
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+auto
+2
+3
+4
+explain
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+auto
+2
+3
+4
+explain
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+auto
+1
+2
+3
+4
+explain
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+auto
+1
+2
+3
+explain
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+auto
+1
+2
+3
+4
+explain
+select auto from t1 where
+string like "b%" and
+vstring like "b%" and
+bin like concat(0xBB, '%') and
+vbin like concat(0xBB, '%')
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string like "b%" and
+vstring like "b%" and
+bin like concat(0xBB, '%') and
+vbin like concat(0xBB, '%')
+order by auto;
+auto
+2
+explain
+select auto from t1 where
+string not like "b%" and
+vstring not like "b%" and
+bin not like concat(0xBB, '%') and
+vbin not like concat(0xBB, '%')
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+string not like "b%" and
+vstring not like "b%" and
+bin not like concat(0xBB, '%') and
+vbin not like concat(0xBB, '%')
+order by auto;
+auto
+1
+3
+4
+explain
+select auto from t1 where
+(string between "aaaa" and "cccc") and
+(vstring between "aaaa" and "cccc") and
+(bin between 0xAAAA and 0xCCCC) and
+(vbin between 0xAAAA and 0xCCCC) and
+(tiny between -3 and -1) and
+(short between -3 and -1) and
+(medium between -3 and -1) and
+(long_int between -3 and -1) and
+(longlong between -3 and -1) and
+(utiny between 1 and 3) and
+(ushort between 1 and 3) and
+(umedium between 1 and 3) and
+(ulong between 1 and 3) and
+(ulonglong between 1 and 3) and
+/* (bits between b'001' and b'011') and */
+(options between 'one' and 'three') and
+(flags between 'one' and 'one,two,three') and
+(date_field between '1901-01-01' and '1903-03-03') and
+(year_field between '1901' and '1903') and
+(time_field between '01:01:01' and '03:03:03') and
+(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+(string between "aaaa" and "cccc") and
+(vstring between "aaaa" and "cccc") and
+(bin between 0xAAAA and 0xCCCC) and
+(vbin between 0xAAAA and 0xCCCC) and
+(tiny between -3 and -1) and
+(short between -3 and -1) and
+(medium between -3 and -1) and
+(long_int between -3 and -1) and
+(longlong between -3 and -1) and
+(utiny between 1 and 3) and
+(ushort between 1 and 3) and
+(umedium between 1 and 3) and
+(ulong between 1 and 3) and
+(ulonglong between 1 and 3) and
+/* (bits between b'001' and b'011') and */
+(options between 'one' and 'three') and
+(flags between 'one' and 'one,two,three') and
+(date_field between '1901-01-01' and '1903-03-03') and
+(year_field between '1901' and '1903') and
+(time_field between '01:01:01' and '03:03:03') and
+(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+auto
+1
+3
+explain
+select auto from t1 where
+("aaaa" between string and string) and
+("aaaa" between vstring and vstring) and
+(0xAAAA between bin and bin) and
+(0xAAAA between vbin and vbin) and
+(-1 between tiny and tiny) and
+(-1 between short and short) and
+(-1 between medium and medium) and
+(-1 between long_int and long_int) and
+(-1 between longlong and longlong) and
+(1 between utiny and utiny) and
+(1 between ushort and ushort) and
+(1 between umedium and umedium) and
+(1 between ulong and ulong) and
+(1 between ulonglong and ulonglong) and
+/* (b'001' between bits and bits) and */
+('one' between options and options) and
+('one' between flags and flags) and
+('1901-01-01' between date_field and date_field) and
+('1901' between year_field and year_field) and
+('01:01:01' between time_field and time_field) and
+('1901-01-01 01:01:01' between date_time and date_time)
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+("aaaa" between string and string) and
+("aaaa" between vstring and vstring) and
+(0xAAAA between bin and bin) and
+(0xAAAA between vbin and vbin) and
+(-1 between tiny and tiny) and
+(-1 between short and short) and
+(-1 between medium and medium) and
+(-1 between long_int and long_int) and
+(-1 between longlong and longlong) and
+(1 between utiny and utiny) and
+(1 between ushort and ushort) and
+(1 between umedium and umedium) and
+(1 between ulong and ulong) and
+(1 between ulonglong and ulonglong) and
+/* (b'001' between bits and bits) and */
+('one' between options and options) and
+('one' between flags and flags) and
+('1901-01-01' between date_field and date_field) and
+('1901' between year_field and year_field) and
+('01:01:01' between time_field and time_field) and
+('1901-01-01 01:01:01' between date_time and date_time)
+order by auto;
+auto
+1
+explain
+select auto from t1 where
+(string not between "aaaa" and "cccc") and
+(vstring not between "aaaa" and "cccc") and
+(bin not between 0xAAAA and 0xCCCC) and
+(vbin not between 0xAAAA and 0xCCCC) and
+(tiny not between -3 and -1) and
+(short not between -3 and -1) and
+(medium not between -3 and -1) and
+(long_int not between -3 and -1) and
+(longlong not between -3 and -1) and
+(utiny not between 1 and 3) and
+(ushort not between 1 and 3) and
+(umedium not between 1 and 3) and
+(ulong not between 1 and 3) and
+(ulonglong not between 1 and 3) and
+/* (bits not between b'001' and b'011') and */
+(options not between 'one' and 'three') and
+(flags not between 'one' and 'one,two,three') and
+(date_field not between '1901-01-01' and '1903-03-03') and
+(year_field not between '1901' and '1903') and
+(time_field not between '01:01:01' and '03:03:03') and
+(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 20 Using where with pushed condition; Using filesort
+select auto from t1 where
+(string not between "aaaa" and "cccc") and
+(vstring not between "aaaa" and "cccc") and
+(bin not between 0xAAAA and 0xCCCC) and
+(vbin not between 0xAAAA and 0xCCCC) and
+(tiny not between -3 and -1) and
+(short not between -3 and -1) and
+(medium not between -3 and -1) and
+(long_int not between -3 and -1) and
+(longlong not between -3 and -1) and
+(utiny not between 1 and 3) and
+(ushort not between 1 and 3) and
+(umedium not between 1 and 3) and
+(ulong not between 1 and 3) and
+(ulonglong not between 1 and 3) and
+/* (bits not between b'001' and b'011') and */
+(options not between 'one' and 'three') and
+(flags not between 'one' and 'one,two,three') and
+(date_field not between '1901-01-01' and '1903-03-03') and
+(year_field not between '1901' and '1903') and
+(time_field not between '01:01:01' and '03:03:03') and
+(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+auto
+4
+explain
+select auto from t1 where
+("aaaa" not between string and string) and
+("aaaa" not between vstring and vstring) and
+(0xAAAA not between bin and bin) and
+(0xAAAA not between vbin and vbin) and
+(-1 not between tiny and tiny) and
+(-1 not between short and short) and
+(-1 not between medium and medium) and
+(-1 not between long_int and long_int) and
+(-1 not between longlong and longlong) and
+(1 not between utiny and utiny) and
+(1 not between ushort and ushort) and
+(1 not between umedium and umedium) and
+(1 not between ulong and ulong) and
+(1 not between ulonglong and ulonglong) and
+/* (b'001' not between bits and bits) and */
+('one' not between options and options) and
+('one' not between flags and flags) and
+('1901-01-01' not between date_field and date_field) and
+('1901' not between year_field and year_field) and
+('01:01:01' not between time_field and time_field) and
+('1901-01-01 01:01:01' not between date_time and date_time)
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 20 Using where with pushed condition; Using filesort
+select auto from t1 where
+("aaaa" not between string and string) and
+("aaaa" not between vstring and vstring) and
+(0xAAAA not between bin and bin) and
+(0xAAAA not between vbin and vbin) and
+(-1 not between tiny and tiny) and
+(-1 not between short and short) and
+(-1 not between medium and medium) and
+(-1 not between long_int and long_int) and
+(-1 not between longlong and longlong) and
+(1 not between utiny and utiny) and
+(1 not between ushort and ushort) and
+(1 not between umedium and umedium) and
+(1 not between ulong and ulong) and
+(1 not between ulonglong and ulonglong) and
+/* (b'001' not between bits and bits) and */
+('one' not between options and options) and
+('one' not between flags and flags) and
+('1901-01-01' not between date_field and date_field) and
+('1901' not between year_field and year_field) and
+('01:01:01' not between time_field and time_field) and
+('1901-01-01 01:01:01' not between date_time and date_time)
+order by auto;
+auto
+2
+3
+4
+explain
+select auto from t1 where
+string in("aaaa","cccc") and
+vstring in("aaaa","cccc") and
+bin in(0xAAAA,0xCCCC) and
+vbin in(0xAAAA,0xCCCC) and
+tiny in(-1,-3) and
+short in(-1,-3) and
+medium in(-1,-3) and
+long_int in(-1,-3) and
+longlong in(-1,-3) and
+utiny in(1,3) and
+ushort in(1,3) and
+umedium in(1,3) and
+ulong in(1,3) and
+ulonglong in(1,3) and
+/* bits in(b'001',b'011') and */
+options in('one','three') and
+flags in('one','one,two,three') and
+date_field in('1901-01-01','1903-03-03') and
+year_field in('1901','1903') and
+time_field in('01:01:01','03:03:03') and
+date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 20 Using where with pushed condition; Using filesort
+select auto from t1 where
+string in("aaaa","cccc") and
+vstring in("aaaa","cccc") and
+bin in(0xAAAA,0xCCCC) and
+vbin in(0xAAAA,0xCCCC) and
+tiny in(-1,-3) and
+short in(-1,-3) and
+medium in(-1,-3) and
+long_int in(-1,-3) and
+longlong in(-1,-3) and
+utiny in(1,3) and
+ushort in(1,3) and
+umedium in(1,3) and
+ulong in(1,3) and
+ulonglong in(1,3) and
+/* bits in(b'001',b'011') and */
+options in('one','three') and
+flags in('one','one,two,three') and
+date_field in('1901-01-01','1903-03-03') and
+year_field in('1901','1903') and
+time_field in('01:01:01','03:03:03') and
+date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+auto
+1
+3
+explain
+select auto from t1 where
+"aaaa" in(string) and
+"aaaa" in(vstring) and
+0xAAAA in(bin) and
+0xAAAA in(vbin) and
+(-1 in(tiny)) and
+(-1 in (short)) and
+(-1 in(medium)) and
+(-1 in(long_int)) and
+(-1 in(longlong)) and
+1 in(utiny) and
+1 in(ushort) and
+1 in(umedium) and
+1 in(ulong) and
+1 in(ulonglong) and
+/* b'001' in(bits) and */
+'one' in(options) and
+'one' in(flags) and
+'1901-01-01' in(date_field) and
+'1901' in(year_field) and
+'01:01:01' in(time_field) and
+'1901-01-01 01:01:01' in(date_time)
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref medium_index medium_index 3 const 10 Using where with pushed condition; Using filesort
+select auto from t1 where
+"aaaa" in(string) and
+"aaaa" in(vstring) and
+0xAAAA in(bin) and
+0xAAAA in(vbin) and
+(-1 in(tiny)) and
+(-1 in (short)) and
+(-1 in(medium)) and
+(-1 in(long_int)) and
+(-1 in(longlong)) and
+1 in(utiny) and
+1 in(ushort) and
+1 in(umedium) and
+1 in(ulong) and
+1 in(ulonglong) and
+/* b'001' in(bits) and */
+'one' in(options) and
+'one' in(flags) and
+'1901-01-01' in(date_field) and
+'1901' in(year_field) and
+'01:01:01' in(time_field) and
+'1901-01-01 01:01:01' in(date_time)
+order by auto;
+auto
+1
+explain
+select auto from t1 where
+string not in("aaaa","cccc") and
+vstring not in("aaaa","cccc") and
+bin not in(0xAAAA,0xCCCC) and
+vbin not in(0xAAAA,0xCCCC) and
+tiny not in(-1,-3) and
+short not in(-1,-3) and
+medium not in(-1,-3) and
+long_int not in(-1,-3) and
+longlong not in(-1,-3) and
+utiny not in(1,3) and
+ushort not in(1,3) and
+umedium not in(1,3) and
+ulong not in(1,3) and
+ulonglong not in(1,3) and
+/* bits not in(b'001',b'011') and */
+options not in('one','three') and
+flags not in('one','one,two,three') and
+date_field not in('1901-01-01','1903-03-03') and
+year_field not in('1901','1903') and
+time_field not in('01:01:01','03:03:03') and
+date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range medium_index medium_index 3 NULL 30 Using where with pushed condition; Using filesort
+select auto from t1 where
+string not in("aaaa","cccc") and
+vstring not in("aaaa","cccc") and
+bin not in(0xAAAA,0xCCCC) and
+vbin not in(0xAAAA,0xCCCC) and
+tiny not in(-1,-3) and
+short not in(-1,-3) and
+medium not in(-1,-3) and
+long_int not in(-1,-3) and
+longlong not in(-1,-3) and
+utiny not in(1,3) and
+ushort not in(1,3) and
+umedium not in(1,3) and
+ulong not in(1,3) and
+ulonglong not in(1,3) and
+/* bits not in(b'001',b'011') and */
+options not in('one','three') and
+flags not in('one','one,two,three') and
+date_field not in('1901-01-01','1903-03-03') and
+year_field not in('1901','1903') and
+time_field not in('01:01:01','03:03:03') and
+date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+auto
+2
+4
+explain
+select auto from t1 where
+"aaaa" not in(string) and
+"aaaa" not in(vstring) and
+0xAAAA not in(bin) and
+0xAAAA not in(vbin) and
+(-1 not in(tiny)) and
+(-1 not in(short)) and
+(-1 not in(medium)) and
+(-1 not in(long_int)) and
+(-1 not in(longlong)) and
+1 not in(utiny) and
+1 not in(ushort) and
+1 not in(umedium) and
+1 not in(ulong) and
+1 not in(ulonglong) and
+/* b'001' not in(bits) and */
+'one' not in(options) and
+'one' not in(flags) and
+'1901-01-01' not in(date_field) and
+'1901' not in(year_field) and
+'01:01:01' not in(time_field) and
+'1901-01-01 01:01:01' not in(date_time)
+order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
+select auto from t1 where
+"aaaa" not in(string) and
+"aaaa" not in(vstring) and
+0xAAAA not in(bin) and
+0xAAAA not in(vbin) and
+(-1 not in(tiny)) and
+(-1 not in(short)) and
+(-1 not in(medium)) and
+(-1 not in(long_int)) and
+(-1 not in(longlong)) and
+1 not in(utiny) and
+1 not in(ushort) and
+1 not in(umedium) and
+1 not in(ulong) and
+1 not in(ulonglong) and
+/* b'001' not in(bits) and */
+'one' not in(options) and
+'one' not in(flags) and
+'1901-01-01' not in(date_field) and
+'1901' not in(year_field) and
+'01:01:01' not in(time_field) and
+'1901-01-01 01:01:01' not in(date_time)
+order by auto;
+auto
+2
+3
+4
+update t1
+set medium = 17
+where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01';
+delete from t1
+where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = 17 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01';
+select count(*) from t1;
+count(*)
+3
+explain
+select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 6 Using where with pushed condition; Using filesort
+select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
+pk1 attr1 attr2 attr3
+2 2 NULL NULL
+3 3 3 d
+explain
+select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where with pushed condition; Using filesort
+select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
+pk1 attr1 attr2 attr3
+3 3 3 d
+4 4 4 e
+5 5 5 f
+explain
+select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where with pushed condition; Using filesort
+select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
+pk1 attr1 attr2 attr3 attr4
+2 2 9223372036854775804 2 c
+4 4 9223372036854775806 4 e
+5 5 9223372036854775807 5 f
+explain
+select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where with pushed condition; Using temporary; Using filesort
+1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where with pushed condition
+select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
+pk1 attr1 attr2 attr3 pk1 attr1 attr2 attr3 attr4
+0 0 0 a 0 0 0 0 a
+explain
+select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 range attr1 attr1 4 NULL 10 Using where with pushed condition; Using filesort
+select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
+pk1 attr1 attr2 attr3 attr4
+2 2 9223372036854775804 2 c
+4 4 9223372036854775806 4 e
+explain
+select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 range attr1 attr1 4 NULL 10 Using where with pushed condition; Using temporary; Using filesort
+1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where
+select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
+pk1 attr1 attr2 attr3 attr4 pk1 attr1 attr2 attr3 attr4
+2 2 9223372036854775804 2 c 2 2 9223372036854775804 2 c
+3 3 9223372036854775805 3 d 3 3 9223372036854775805 3 d
+4 4 9223372036854775806 4 e 4 4 9223372036854775806 4 e
+explain
+select auto from t1 where string = "aaaa" collate latin1_general_ci order by auto;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using filesort
+explain
+select * from t2 where (attr1 < 2) = (attr2 < 2) order by pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using filesort
+explain
+select * from t3 left join t4 on t4.attr2 = t3.attr2 where t4.attr1 > 1 and t4.attr3 < 5 or t4.attr1 is null order by t4.pk1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
+1 SIMPLE t4 ALL NULL NULL NULL NULL 6 Using where
+create table t5 (a int primary key auto_increment, b tinytext not null)
+engine = ndb;
+insert into t5 (b) values ('jonas'), ('jensing'), ('johan');
+set engine_condition_pushdown = off;
+select * from t5 where b like '%jo%' order by a;
+a b
+1 jonas
+3 johan
+set engine_condition_pushdown = on;
+explain select * from t5 where b like '%jo%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t5 ALL NULL NULL NULL NULL 3 Using where
+select * from t5 where b like '%jo%' order by a;
+a b
+1 jonas
+3 johan
+set engine_condition_pushdown = off;
+select auto from t1 where date_time like '1902-02-02 %' order by auto;
+auto
+2
+select auto from t1 where date_time not like '1902-02-02 %' order by auto;
+auto
+3
+4
+set engine_condition_pushdown = on;
+explain select auto from t1 where date_time like '1902-02-02 %';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+select auto from t1 where date_time like '1902-02-02 %' order by auto;
+auto
+2
+explain select auto from t1 where date_time not like '1902-02-02 %';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
+select auto from t1 where date_time not like '1902-02-02 %' order by auto;
+auto
+3
+4
+drop table t1;
+create table t1 (a int, b varchar(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'ab' or b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'abc';
+a b
+3 abc
+select * from t1 where b like 'abc' or b like 'abc';
+a b
+3 abc
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'ab' or b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'abc';
+a b
+3 abc
+select * from t1 where b like 'abc' or b like 'abc';
+a b
+3 abc
+drop table t1;
+create table t1 (a int, b char(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'ab' or b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'abc';
+a b
+3 abc
+select * from t1 where b like 'abc' or b like 'abc';
+a b
+3 abc
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'ab' or b like 'ab';
+a b
+2 ab
+select * from t1 where b like 'abc';
+a b
+3 abc
+select * from t1 where b like 'abc' or b like 'abc';
+a b
+3 abc
+drop table t1;
+create table t1 ( fname varchar(255), lname varchar(255) )
+engine=ndbcluster;
+insert into t1 values ("Young","Foo");
+set engine_condition_pushdown = 0;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+fname lname
+Young Foo
+set engine_condition_pushdown = 1;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+fname lname
+Young Foo
+insert into t1 values ("aaa", "aaa");
+insert into t1 values ("bbb", "bbb");
+insert into t1 values ("ccc", "ccc");
+insert into t1 values ("ddd", "ddd");
+set engine_condition_pushdown = 0;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+fname lname
+Young Foo
+set engine_condition_pushdown = 1;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+fname lname
+Young Foo
+drop table t1;
+create table t1 (a int, b int, c int, d int, primary key using hash(a))
+engine=ndbcluster;
+insert into t1 values (10,1,100,0+0x1111);
+insert into t1 values (20,2,200,0+0x2222);
+insert into t1 values (30,3,300,0+0x3333);
+insert into t1 values (40,4,400,0+0x4444);
+insert into t1 values (50,5,500,0+0x5555);
+set engine_condition_pushdown = on;
+select a,b,d from t1
+where b in (0,1,2,5)
+order by b;
+a b d
+10 1 4369
+20 2 8738
+50 5 21845
+a b d
+10 1 4369
+20 2 8738
+50 5 21845
+Warnings:
+Warning 4294 Scan filter is too large, discarded
+set engine_condition_pushdown = @old_ecpd;
+DROP TABLE t1,t2,t3,t4,t5;
diff --git a/mysql-test/r/ndb_config.result b/mysql-test/r/ndb_config.result
index 506ac32f08e..9470cd7256c 100644
--- a/mysql-test/r/ndb_config.result
+++ b/mysql-test/r/ndb_config.result
@@ -1,6 +1,14 @@
-ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3, mysqld,4, mysqld,5, mysqld,6, mysqld,7,
+ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3,localhost mysqld,4, mysqld,5, mysqld,6, mysqld,7,
1,localhost,41943040,12582912 2,localhost,41943040,12582912
1 localhost 41943040 12582912
2 localhost 41943040 12582912
1 2
-ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3, mysqld,4, mysqld,5, mysqld,6, mysqld,7,
+ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3,localhost mysqld,4, mysqld,5, mysqld,6, mysqld,7,
+ndbd,1,localhost,52428800,26214400 ndbd,2,localhost,52428800,36700160 ndbd,3,localhost,52428800,52428800 ndbd,4,localhost,52428800,52428800 ndb_mgmd,5,localhost,, mysqld,6,localhost,,
+ndbd,1,localhost ndbd,2,localhost ndbd,3,localhost ndbd,4,localhost ndb_mgmd,5,localhost mysqld,6, mysqld,7, mysqld,8, mysqld,9, mysqld,10,
+ndbd,2,localhost ndbd,3,localhost ndbd,4,localhost ndbd,5,localhost ndb_mgmd,6,localhost mysqld,1, mysqld,7, mysqld,8, mysqld,9, mysqld,10,
+ndbd,3,localhost ndbd,4,localhost ndbd,5,localhost ndbd,6,localhost ndb_mgmd,1,localhost ndb_mgmd,2,localhost mysqld,11, mysqld,12, mysqld,13, mysqld,14, mysqld,15,
+shm,3,4,35,3 shm,3,5,35,3 shm,3,6,35,3 shm,4,5,35,4 shm,4,6,35,4 shm,5,6,35,5 tcp,11,3,55,3 tcp,11,4,55,4 tcp,11,5,55,5 tcp,11,6,55,6 tcp,12,3,55,3 tcp,12,4,55,4 tcp,12,5,55,5 tcp,12,6,55,6 tcp,13,3,55,3 tcp,13,4,55,4 tcp,13,5,55,5 tcp,13,6,55,6 tcp,14,3,55,3 tcp,14,4,55,4 tcp,14,5,55,5 tcp,14,6,55,6 tcp,15,3,55,3 tcp,15,4,55,4 tcp,15,5,55,5 tcp,15,6,55,6 tcp,1,3,55,1 tcp,1,4,55,1 tcp,1,5,55,1 tcp,1,6,55,1 tcp,2,3,55,2 tcp,2,4,55,2 tcp,2,5,55,2 tcp,2,6,55,2
+1 2 3
+
+1 2 3
diff --git a/mysql-test/r/ndb_default_cluster.require b/mysql-test/r/ndb_default_cluster.require
new file mode 100644
index 00000000000..3616ae0f343
--- /dev/null
+++ b/mysql-test/r/ndb_default_cluster.require
@@ -0,0 +1,2 @@
+Variable_name Value
+Ndb_config_from_host localhost
diff --git a/mysql-test/r/ndb_gis.result b/mysql-test/r/ndb_gis.result
new file mode 100644
index 00000000000..ec064ace651
--- /dev/null
+++ b/mysql-test/r/ndb_gis.result
@@ -0,0 +1,1088 @@
+SET storage_engine=ndbcluster;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE gis_point (fid INTEGER, g POINT);
+CREATE TABLE gis_line (fid INTEGER, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER, g GEOMETRY);
+SHOW CREATE TABLE gis_point;
+Table Create Table
+gis_point CREATE TABLE `gis_point` (
+ `fid` int(11) default NULL,
+ `g` point default NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW FIELDS FROM gis_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g point YES NULL
+SHOW FIELDS FROM gis_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g linestring YES NULL
+SHOW FIELDS FROM gis_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g polygon YES NULL
+SHOW FIELDS FROM gis_multi_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipoint YES NULL
+SHOW FIELDS FROM gis_multi_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multilinestring YES NULL
+SHOW FIELDS FROM gis_multi_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipolygon YES NULL
+SHOW FIELDS FROM gis_geometrycollection;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometrycollection YES NULL
+SHOW FIELDS FROM gis_geometry;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometry YES NULL
+INSERT INTO gis_point VALUES
+(101, PointFromText('POINT(10 10)')),
+(102, PointFromText('POINT(20 10)')),
+(103, PointFromText('POINT(20 20)')),
+(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
+INSERT INTO gis_line VALUES
+(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
+(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
+(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
+INSERT INTO gis_polygon VALUES
+(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
+(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
+(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
+INSERT INTO gis_multi_point VALUES
+(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
+(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
+(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
+INSERT INTO gis_multi_line VALUES
+(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
+(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
+(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
+INSERT INTO gis_multi_polygon VALUES
+(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
+INSERT INTO gis_geometrycollection VALUES
+(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
+(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+SELECT fid, AsText(g) FROM gis_point ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+SELECT fid, AsText(g) FROM gis_line ORDER by fid;
+fid AsText(g)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
+fid AsText(g)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
+fid AsText(g)
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
+fid AsText(g)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
+fid AsText(g)
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
+fid AsText(g)
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
+fid Dimension(g)
+101 0
+102 0
+103 0
+104 0
+105 1
+106 1
+107 1
+108 2
+109 2
+110 2
+111 0
+112 0
+113 0
+114 1
+115 1
+116 1
+117 2
+118 2
+119 2
+120 1
+121 1
+SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
+fid GeometryType(g)
+101 POINT
+102 POINT
+103 POINT
+104 POINT
+105 LINESTRING
+106 LINESTRING
+107 LINESTRING
+108 POLYGON
+109 POLYGON
+110 POLYGON
+111 MULTIPOINT
+112 MULTIPOINT
+113 MULTIPOINT
+114 MULTILINESTRING
+115 MULTILINESTRING
+116 MULTILINESTRING
+117 MULTIPOLYGON
+118 MULTIPOLYGON
+119 MULTIPOLYGON
+120 GEOMETRYCOLLECTION
+121 GEOMETRYCOLLECTION
+SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
+fid IsEmpty(g)
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
+fid AsText(Envelope(g))
+101 POLYGON((10 10,10 10,10 10,10 10,10 10))
+102 POLYGON((20 10,20 10,20 10,20 10,20 10))
+103 POLYGON((20 20,20 20,20 20,20 20,20 20))
+104 POLYGON((10 20,10 20,10 20,10 20,10 20))
+105 POLYGON((0 0,10 0,10 10,0 10,0 0))
+106 POLYGON((10 10,20 10,20 20,10 20,10 10))
+107 POLYGON((10 10,40 10,40 10,10 10,10 10))
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0))
+110 POLYGON((0 0,30 0,30 30,0 30,0 0))
+111 POLYGON((0 0,20 0,20 20,0 20,0 0))
+112 POLYGON((1 1,21 1,21 21,1 21,1 1))
+113 POLYGON((3 6,4 6,4 10,3 10,3 6))
+114 POLYGON((10 0,16 0,16 48,10 48,10 0))
+115 POLYGON((10 0,10 0,10 48,10 48,10 0))
+116 POLYGON((1 2,21 2,21 8,1 8,1 2))
+117 POLYGON((28 0,84 0,84 42,28 42,28 0))
+118 POLYGON((28 0,84 0,84 42,28 42,28 0))
+119 POLYGON((0 0,3 0,3 3,0 3,0 0))
+120 POLYGON((0 0,10 0,10 10,0 10,0 0))
+121 POLYGON((3 6,44 6,44 9,3 9,3 6))
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
+Warnings:
+Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
+SELECT fid, X(g) FROM gis_point ORDER by fid;
+fid X(g)
+101 10
+102 20
+103 20
+104 10
+SELECT fid, Y(g) FROM gis_point ORDER by fid;
+fid Y(g)
+101 10
+102 10
+103 20
+104 20
+explain extended select X(g),Y(g) FROM gis_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
+Warnings:
+Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
+SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(StartPoint(g))
+105 POINT(0 0)
+106 POINT(10 10)
+107 POINT(10 10)
+SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(EndPoint(g))
+105 POINT(10 0)
+106 POINT(10 10)
+107 POINT(40 10)
+SELECT fid, GLength(g) FROM gis_line ORDER by fid;
+fid GLength(g)
+105 24.142135623731
+106 40
+107 30
+SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
+fid NumPoints(g)
+105 3
+106 5
+107 2
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
+fid AsText(PointN(g, 2))
+105 POINT(0 10)
+106 POINT(20 10)
+107 POINT(40 10)
+SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
+fid IsClosed(g)
+105 0
+106 1
+107 0
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
+fid AsText(Centroid(g))
+108 POINT(15 15)
+109 POINT(25.416666666667 25.416666666667)
+110 POINT(20 10)
+SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
+fid Area(g)
+108 100
+109 2400
+110 450
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
+fid AsText(ExteriorRing(g))
+108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
+110 LINESTRING(0 0,30 0,30 30,0 0)
+SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
+fid NumInteriorRings(g)
+108 0
+109 1
+110 0
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
+fid AsText(InteriorRingN(g, 1))
+108 NULL
+109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+110 NULL
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
+SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
+fid IsClosed(g)
+114 0
+115 0
+116 0
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
+fid AsText(Centroid(g))
+117 POINT(55.588527753042 17.426536064114)
+118 POINT(55.588527753042 17.426536064114)
+119 POINT(2 2)
+SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
+fid Area(g)
+117 1684.5
+118 1684.5
+119 4.5
+SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
+fid NumGeometries(g)
+111 4
+112 4
+113 2
+SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
+fid NumGeometries(g)
+114 2
+115 1
+116 2
+SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
+fid NumGeometries(g)
+117 2
+118 2
+119 1
+SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
+fid NumGeometries(g)
+120 2
+121 2
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
+fid AsText(GeometryN(g, 2))
+111 POINT(10 10)
+112 POINT(11 11)
+113 POINT(4 10)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
+fid AsText(GeometryN(g, 2))
+114 LINESTRING(16 0,16 23,16 48)
+115 NULL
+116 LINESTRING(2 5,5 8,21 7)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
+fid AsText(GeometryN(g, 2))
+117 POLYGON((59 18,67 18,67 13,59 13,59 18))
+118 POLYGON((59 18,67 18,67 13,59 13,59 18))
+119 NULL
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 2))
+120 LINESTRING(0 0,10 10)
+121 LINESTRING(3 6,7 9)
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 1))
+120 POINT(0 0)
+121 POINT(44 6)
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
+SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+first second w c o e d t i r
+120 120 1 1 0 1 0 0 1 0
+120 121 0 0 1 0 0 0 1 0
+121 120 0 0 1 0 0 0 1 0
+121 121 1 1 0 1 0 0 1 0
+explain extended SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+1 SIMPLE g2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE t1 (
+gp point,
+ln linestring,
+pg polygon,
+mp multipoint,
+mln multilinestring,
+mpg multipolygon,
+gc geometrycollection,
+gm geometry
+);
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+ALTER TABLE t1 ADD fid INT;
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+fid int(11) YES NULL
+DROP TABLE t1;
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+insert into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert IGNORE into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+drop table t1;
+create table t1 (fl geometry not null);
+insert into t1 values (1);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (1.11);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values ("qwerty");
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (pointfromtext('point(1,1)'));
+ERROR 23000: Column 'fl' cannot be null
+drop table t1;
+End of 4.1 tests
+CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrcontains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrdisjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrequal
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrintersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbroverlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrtouches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrwithin
+big,center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+contains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+disjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+equals
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+intersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+overlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+touches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+within
+big,center
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+overlaps
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+overlaps
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+Overlaps(@horiz1, @vert1)
+0
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+Overlaps(@horiz1, @horiz2)
+1
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+Overlaps(@horiz1, @horiz3)
+0
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+Overlaps(@horiz1, @point1)
+0
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+Overlaps(@horiz1, @point2)
+0
+DROP TABLE t1;
+End of 5.0 tests
+set engine_condition_pushdown = on;
+DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE gis_point (fid INTEGER, g POINT);
+CREATE TABLE gis_line (fid INTEGER, g LINESTRING);
+CREATE TABLE gis_polygon (fid INTEGER, g POLYGON);
+CREATE TABLE gis_multi_point (fid INTEGER, g MULTIPOINT);
+CREATE TABLE gis_multi_line (fid INTEGER, g MULTILINESTRING);
+CREATE TABLE gis_multi_polygon (fid INTEGER, g MULTIPOLYGON);
+CREATE TABLE gis_geometrycollection (fid INTEGER, g GEOMETRYCOLLECTION);
+CREATE TABLE gis_geometry (fid INTEGER, g GEOMETRY);
+SHOW CREATE TABLE gis_point;
+Table Create Table
+gis_point CREATE TABLE `gis_point` (
+ `fid` int(11) default NULL,
+ `g` point default NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW FIELDS FROM gis_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g point YES NULL
+SHOW FIELDS FROM gis_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g linestring YES NULL
+SHOW FIELDS FROM gis_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g polygon YES NULL
+SHOW FIELDS FROM gis_multi_point;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipoint YES NULL
+SHOW FIELDS FROM gis_multi_line;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multilinestring YES NULL
+SHOW FIELDS FROM gis_multi_polygon;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g multipolygon YES NULL
+SHOW FIELDS FROM gis_geometrycollection;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometrycollection YES NULL
+SHOW FIELDS FROM gis_geometry;
+Field Type Null Key Default Extra
+fid int(11) YES NULL
+g geometry YES NULL
+INSERT INTO gis_point VALUES
+(101, PointFromText('POINT(10 10)')),
+(102, PointFromText('POINT(20 10)')),
+(103, PointFromText('POINT(20 20)')),
+(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
+INSERT INTO gis_line VALUES
+(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
+(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
+(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
+INSERT INTO gis_polygon VALUES
+(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
+(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
+(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
+INSERT INTO gis_multi_point VALUES
+(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
+(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
+(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
+INSERT INTO gis_multi_line VALUES
+(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
+(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
+(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
+INSERT INTO gis_multi_polygon VALUES
+(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
+(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
+INSERT INTO gis_geometrycollection VALUES
+(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
+(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
+INSERT into gis_geometry SELECT * FROM gis_point;
+INSERT into gis_geometry SELECT * FROM gis_line;
+INSERT into gis_geometry SELECT * FROM gis_polygon;
+INSERT into gis_geometry SELECT * FROM gis_multi_point;
+INSERT into gis_geometry SELECT * FROM gis_multi_line;
+INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
+INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
+SELECT fid, AsText(g) FROM gis_point ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+SELECT fid, AsText(g) FROM gis_line ORDER by fid;
+fid AsText(g)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
+fid AsText(g)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
+fid AsText(g)
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
+fid AsText(g)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
+fid AsText(g)
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
+fid AsText(g)
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
+fid AsText(g)
+101 POINT(10 10)
+102 POINT(20 10)
+103 POINT(20 20)
+104 POINT(10 20)
+105 LINESTRING(0 0,0 10,10 0)
+106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+107 LINESTRING(10 10,40 10)
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+110 POLYGON((0 0,30 0,30 30,0 0))
+111 MULTIPOINT(0 0,10 10,10 20,20 20)
+112 MULTIPOINT(1 1,11 11,11 21,21 21)
+113 MULTIPOINT(3 6,4 10)
+114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
+115 MULTILINESTRING((10 48,10 21,10 0))
+116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
+117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
+121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
+fid Dimension(g)
+101 0
+102 0
+103 0
+104 0
+105 1
+106 1
+107 1
+108 2
+109 2
+110 2
+111 0
+112 0
+113 0
+114 1
+115 1
+116 1
+117 2
+118 2
+119 2
+120 1
+121 1
+SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
+fid GeometryType(g)
+101 POINT
+102 POINT
+103 POINT
+104 POINT
+105 LINESTRING
+106 LINESTRING
+107 LINESTRING
+108 POLYGON
+109 POLYGON
+110 POLYGON
+111 MULTIPOINT
+112 MULTIPOINT
+113 MULTIPOINT
+114 MULTILINESTRING
+115 MULTILINESTRING
+116 MULTILINESTRING
+117 MULTIPOLYGON
+118 MULTIPOLYGON
+119 MULTIPOLYGON
+120 GEOMETRYCOLLECTION
+121 GEOMETRYCOLLECTION
+SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
+fid IsEmpty(g)
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
+fid AsText(Envelope(g))
+101 POLYGON((10 10,10 10,10 10,10 10,10 10))
+102 POLYGON((20 10,20 10,20 10,20 10,20 10))
+103 POLYGON((20 20,20 20,20 20,20 20,20 20))
+104 POLYGON((10 20,10 20,10 20,10 20,10 20))
+105 POLYGON((0 0,10 0,10 10,0 10,0 0))
+106 POLYGON((10 10,20 10,20 20,10 20,10 10))
+107 POLYGON((10 10,40 10,40 10,10 10,10 10))
+108 POLYGON((10 10,20 10,20 20,10 20,10 10))
+109 POLYGON((0 0,50 0,50 50,0 50,0 0))
+110 POLYGON((0 0,30 0,30 30,0 30,0 0))
+111 POLYGON((0 0,20 0,20 20,0 20,0 0))
+112 POLYGON((1 1,21 1,21 21,1 21,1 1))
+113 POLYGON((3 6,4 6,4 10,3 10,3 6))
+114 POLYGON((10 0,16 0,16 48,10 48,10 0))
+115 POLYGON((10 0,10 0,10 48,10 48,10 0))
+116 POLYGON((1 2,21 2,21 8,1 8,1 2))
+117 POLYGON((28 0,84 0,84 42,28 42,28 0))
+118 POLYGON((28 0,84 0,84 42,28 42,28 0))
+119 POLYGON((0 0,3 0,3 3,0 3,0 0))
+120 POLYGON((0 0,10 0,10 10,0 10,0 0))
+121 POLYGON((3 6,44 6,44 9,3 9,3 6))
+explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21
+Warnings:
+Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
+SELECT fid, X(g) FROM gis_point ORDER by fid;
+fid X(g)
+101 10
+102 20
+103 20
+104 10
+SELECT fid, Y(g) FROM gis_point ORDER by fid;
+fid Y(g)
+101 10
+102 10
+103 20
+104 20
+explain extended select X(g),Y(g) FROM gis_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_point ALL NULL NULL NULL NULL 4
+Warnings:
+Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
+SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(StartPoint(g))
+105 POINT(0 0)
+106 POINT(10 10)
+107 POINT(10 10)
+SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
+fid AsText(EndPoint(g))
+105 POINT(10 0)
+106 POINT(10 10)
+107 POINT(40 10)
+SELECT fid, GLength(g) FROM gis_line ORDER by fid;
+fid GLength(g)
+105 24.142135623731
+106 40
+107 30
+SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
+fid NumPoints(g)
+105 3
+106 5
+107 2
+SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
+fid AsText(PointN(g, 2))
+105 POINT(0 10)
+106 POINT(20 10)
+107 POINT(40 10)
+SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
+fid IsClosed(g)
+105 0
+106 1
+107 0
+explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_line ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
+SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
+fid AsText(Centroid(g))
+108 POINT(15 15)
+109 POINT(25.416666666667 25.416666666667)
+110 POINT(20 10)
+SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
+fid Area(g)
+108 100
+109 2400
+110 450
+SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
+fid AsText(ExteriorRing(g))
+108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
+110 LINESTRING(0 0,30 0,30 30,0 0)
+SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
+fid NumInteriorRings(g)
+108 0
+109 1
+110 0
+SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
+fid AsText(InteriorRingN(g, 1))
+108 NULL
+109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
+110 NULL
+explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
+SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
+fid IsClosed(g)
+114 0
+115 0
+116 0
+SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
+fid AsText(Centroid(g))
+117 POINT(55.588527753042 17.426536064114)
+118 POINT(55.588527753042 17.426536064114)
+119 POINT(2 2)
+SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
+fid Area(g)
+117 1684.5
+118 1684.5
+119 4.5
+SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
+fid NumGeometries(g)
+111 4
+112 4
+113 2
+SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
+fid NumGeometries(g)
+114 2
+115 1
+116 2
+SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
+fid NumGeometries(g)
+117 2
+118 2
+119 1
+SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
+fid NumGeometries(g)
+120 2
+121 2
+explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
+fid AsText(GeometryN(g, 2))
+111 POINT(10 10)
+112 POINT(11 11)
+113 POINT(4 10)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
+fid AsText(GeometryN(g, 2))
+114 LINESTRING(16 0,16 23,16 48)
+115 NULL
+116 LINESTRING(2 5,5 8,21 7)
+SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
+fid AsText(GeometryN(g, 2))
+117 POLYGON((59 18,67 18,67 13,59 13,59 18))
+118 POLYGON((59 18,67 18,67 13,59 13,59 18))
+119 NULL
+SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 2))
+120 LINESTRING(0 0,10 10)
+121 LINESTRING(3 6,7 9)
+SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
+fid AsText(GeometryN(g, 1))
+120 POINT(0 0)
+121 POINT(44 6)
+explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3
+Warnings:
+Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
+SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+first second w c o e d t i r
+120 120 1 1 0 1 0 0 1 0
+120 121 0 0 1 0 0 0 1 0
+121 120 0 0 1 0 0 0 1 0
+121 121 1 1 0 1 0 0 1 0
+explain extended SELECT g1.fid as first, g2.fid as second,
+Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
+Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
+Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
+FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE g1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+1 SIMPLE g2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
+DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+CREATE TABLE t1 (
+gp point,
+ln linestring,
+pg polygon,
+mp multipoint,
+mln multilinestring,
+mpg multipolygon,
+gc geometrycollection,
+gm geometry
+);
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+ALTER TABLE t1 ADD fid INT;
+SHOW FIELDS FROM t1;
+Field Type Null Key Default Extra
+gp point YES NULL
+ln linestring YES NULL
+pg polygon YES NULL
+mp multipoint YES NULL
+mln multilinestring YES NULL
+mpg multipolygon YES NULL
+gc geometrycollection YES NULL
+gm geometry YES NULL
+fid int(11) YES NULL
+DROP TABLE t1;
+create table t1 (a geometry not null);
+insert into t1 values (GeomFromText('Point(1 2)'));
+insert into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert IGNORE into t1 values ('Garbage');
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+drop table t1;
+create table t1 (fl geometry not null);
+insert into t1 values (1);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (1.11);
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values ("qwerty");
+ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
+insert into t1 values (pointfromtext('point(1,1)'));
+ERROR 23000: Column 'fl' cannot be null
+drop table t1;
+End of 4.1 tests
+CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrcontains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrdisjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrequal
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrintersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbroverlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrtouches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+mbrwithin
+big,center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+contains
+center,small
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+disjoint
+down3,left3,right3,up3
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+equals
+center
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+intersect
+big,center,down,down2,left,left2,right,right2,small,up,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+overlaps
+down,left,right,up
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+touches
+down2,left2,right2,up2
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+within
+big,center
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+overlaps
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+overlaps
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+Overlaps(@horiz1, @vert1)
+0
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+Overlaps(@horiz1, @horiz2)
+1
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+Overlaps(@horiz1, @horiz3)
+0
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+Overlaps(@horiz1, @point1)
+0
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+Overlaps(@horiz1, @point2)
+0
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/ndb_grant.result b/mysql-test/r/ndb_grant.result
index 6583065a0c4..6192a7cace5 100644
--- a/mysql-test/r/ndb_grant.result
+++ b/mysql-test/r/ndb_grant.result
@@ -31,8 +31,8 @@ begin;
grant delete on mysqltest.* to mysqltest_1@localhost;
commit;
select * from mysql.user where user="mysqltest_1";
-Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
-localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N SPECIFIED EDH-RSA-DES-CBC3-SHA 0 0 0
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
+localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N 0 0 0
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'
@@ -99,7 +99,7 @@ commit;
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, CREATE TEMPORARY TABLES ON `mysqltest`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW ON `mysqltest`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION
begin;
revoke all privileges on mysqltest.* from mysqltest_1@localhost;
commit;
@@ -271,23 +271,26 @@ grant select on test.t1 to drop_user2@localhost;
grant select on test.* to drop_user3@localhost;
grant select on *.* to drop_user4@localhost;
commit;
+flush privileges;
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
-ERROR HY000: Can't drop one or more of the requested users
begin;
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
drop_user3@localhost, drop_user4@localhost;
+ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users
commit;
+flush privileges;
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
drop table t1;
begin;
grant usage on *.* to mysqltest_1@localhost identified by "password";
-grant select, update, insert on test.* to mysqltest@localhost;
+grant select, update, insert on test.* to mysqltest_1@localhost;
commit;
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
+GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'mysqltest_1'@'localhost'
drop user mysqltest_1@localhost;
SET NAMES koi8r;
CREATE DATABASE ÂÄ;
@@ -396,6 +399,31 @@ DROP DATABASE testdb7;
DROP DATABASE testdb8;
DROP DATABASE testdb9;
DROP DATABASE testdb10;
+SHOW PRIVILEGES;
+Privilege Context Comment
+Alter Tables To alter the table
+Create Databases,Tables,Indexes To create new databases and tables
+Create temporary tables Databases To use CREATE TEMPORARY TABLE
+Create view Tables To create new views
+Delete Tables To delete existing rows
+Drop Databases,Tables To drop databases, tables, and views
+File File access on server To read and write files on the server
+Grant option Databases,Tables To give to other users those privileges you possess
+Index Tables To create or drop indexes
+Insert Tables To insert data into tables
+Lock tables Databases To use LOCK TABLES (together with SELECT privilege)
+Process Server Admin To view the plain text of currently executing queries
+References Databases,Tables To have references on tables
+Reload Server Admin To reload or refresh tables, logs and privileges
+Replication client Server Admin To ask where the slave or master servers are
+Replication slave Server Admin To read binary log events from the master
+Select Tables To retrieve rows from table
+Show databases Server Admin To see all databases with SHOW DATABASES
+Show view Tables To see views with SHOW CREATE VIEW
+Shutdown Server Admin To shut down the server
+Super Server Admin To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.
+Update Tables To update existing rows
+Usage Server Admin No privileges - allow connect only
use mysql;
alter table columns_priv engine=myisam;
alter table db engine=myisam;
diff --git a/mysql-test/r/ndb_index_ordered.result b/mysql-test/r/ndb_index_ordered.result
index f5794d477f3..b3e55a23073 100644
--- a/mysql-test/r/ndb_index_ordered.result
+++ b/mysql-test/r/ndb_index_ordered.result
@@ -275,6 +275,115 @@ a b c
1 1 1
4 4 NULL
drop table t1;
+create table t1 (
+a int unsigned primary key,
+b int unsigned,
+c char(10),
+key bc (b, c)
+) engine=ndb;
+insert into t1 values(1,1,'a'),(2,2,'b'),(3,3,'c'),(4,4,'d'),(5,5,'e');
+insert into t1 select a*7,10*b,'f' from t1;
+insert into t1 select a*13,10*b,'g' from t1;
+insert into t1 select a*17,10*b,'h' from t1;
+insert into t1 select a*19,10*b,'i' from t1;
+insert into t1 select a*23,10*b,'j' from t1;
+insert into t1 select a*29,10*b,'k' from t1;
+select b, c from t1 where b <= 10 and c <'f' order by b, c;
+b c
+1 a
+2 b
+3 c
+4 d
+5 e
+select b, c from t1 where b <= 10 and c <'f' order by b desc, c desc;
+b c
+5 e
+4 d
+3 c
+2 b
+1 a
+select b, c from t1 where b=4000 and c<'k' order by b, c;
+b c
+4000 h
+4000 i
+4000 i
+4000 i
+4000 j
+4000 j
+4000 j
+4000 j
+4000 j
+4000 j
+select b, c from t1 where b=4000 and c<'k' order by b desc, c desc;
+b c
+4000 j
+4000 j
+4000 j
+4000 j
+4000 j
+4000 j
+4000 i
+4000 i
+4000 i
+4000 h
+select b, c from t1 where 1000<=b and b<=100000 and c<'j' order by b, c;
+b c
+1000 h
+1000 i
+1000 i
+1000 i
+2000 h
+2000 i
+2000 i
+2000 i
+3000 h
+3000 i
+3000 i
+3000 i
+4000 h
+4000 i
+4000 i
+4000 i
+5000 h
+5000 i
+5000 i
+5000 i
+10000 i
+20000 i
+30000 i
+40000 i
+50000 i
+select b, c from t1 where 1000<=b and b<=100000 and c<'j' order by b desc, c desc;
+b c
+50000 i
+40000 i
+30000 i
+20000 i
+10000 i
+5000 i
+5000 i
+5000 i
+5000 h
+4000 i
+4000 i
+4000 i
+4000 h
+3000 i
+3000 i
+3000 i
+3000 h
+2000 i
+2000 i
+2000 i
+2000 h
+1000 i
+1000 i
+1000 i
+1000 h
+select min(b), max(b) from t1;
+min(b) max(b)
+1 5000000
+drop table t1;
CREATE TABLE test1 (
SubscrID int(11) NOT NULL auto_increment,
UsrID int(11) NOT NULL default '0',
@@ -543,3 +652,17 @@ show tables;
Tables_in_test
t1
drop table t1;
+create table t1 (a int, c varchar(10),
+primary key using hash (a), index(c)) engine=ndb;
+insert into t1 (a, c) values (1,'aaa'),(3,'bbb');
+select count(*) from t1 where c<'bbb';
+count(*)
+1
+create table nationaldish (DishID int(10) unsigned NOT NULL AUTO_INCREMENT,
+CountryCode char(3) NOT NULL,
+DishTitle varchar(64) NOT NULL,
+calories smallint(5) unsigned DEFAULT NULL,
+PRIMARY KEY (DishID),
+INDEX i USING HASH (countrycode,calories)
+) ENGINE=ndbcluster;
+ERROR HY000: Can't create table './test/nationaldish.frm' (errno: 138)
diff --git a/mysql-test/r/ndb_index_unique.result b/mysql-test/r/ndb_index_unique.result
index 3bc41e8a197..670fbe5b4e0 100644
--- a/mysql-test/r/ndb_index_unique.result
+++ b/mysql-test/r/ndb_index_unique.result
@@ -1,4 +1,4 @@
-drop table if exists t1, t2, t3, t4, t5, t6, t7;
+drop table if exists t1, t2, t3, t4, t5, t6, t7, t8;
CREATE TABLE t1 (
a int unsigned NOT NULL PRIMARY KEY,
b int unsigned not null,
@@ -155,7 +155,40 @@ b int unsigned not null,
c int unsigned,
UNIQUE USING HASH (b, c)
) engine=ndbcluster;
-ERROR 42000: Column 'c' is used with UNIQUE or INDEX but is not defined as NOT NULL
+Warnings:
+Warning 1121 Ndb does not support unique index on NULL valued attributes, index access with NULL value will become full table scan
+insert t2 values(1,1,NULL),(2,2,2),(3,3,NULL),(4,4,4),(5,5,NULL),(6,6,6),(7,7,NULL),(8,3,NULL),(9,3,NULL);
+select * from t2 where c IS NULL order by a;
+a b c
+1 1 NULL
+3 3 NULL
+5 5 NULL
+7 7 NULL
+8 3 NULL
+9 3 NULL
+select * from t2 where b = 3 AND c IS NULL order by a;
+a b c
+3 3 NULL
+8 3 NULL
+9 3 NULL
+select * from t2 where (b = 3 OR b = 5) AND c IS NULL order by a;
+a b c
+3 3 NULL
+5 5 NULL
+8 3 NULL
+9 3 NULL
+set @old_ecpd = @@session.engine_condition_pushdown;
+set engine_condition_pushdown = true;
+explain select * from t2 where (b = 3 OR b = 5) AND c IS NULL AND a < 9 order by a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range PRIMARY,b PRIMARY 4 NULL 1 Using where with pushed condition
+select * from t2 where (b = 3 OR b = 5) AND c IS NULL AND a < 9 order by a;
+a b c
+3 3 NULL
+5 5 NULL
+8 3 NULL
+set engine_condition_pushdown = @old_ecpd;
+drop table t2;
CREATE TABLE t3 (
a int unsigned NOT NULL,
b int unsigned not null,
@@ -263,8 +296,8 @@ INSERT INTO t3 VALUES (1,'V1',NULL);
CREATE TABLE t4 (
uid bigint(20) unsigned NOT NULL default '0',
gid bigint(20) unsigned NOT NULL,
-rid bigint(20) unsigned NOT NULL default '-1',
-cid bigint(20) unsigned NOT NULL default '-1',
+rid bigint(20) unsigned NOT NULL,
+cid bigint(20) unsigned NOT NULL,
UNIQUE KEY m (uid,gid,rid,cid)
) engine=ndbcluster;
INSERT INTO t4 VALUES (1,1,2,4);
@@ -290,8 +323,8 @@ CREATE TABLE t7 (
mid bigint(20) unsigned NOT NULL PRIMARY KEY,
uid bigint(20) unsigned NOT NULL default '0',
gid bigint(20) unsigned NOT NULL,
-rid bigint(20) unsigned NOT NULL default '-1',
-cid bigint(20) unsigned NOT NULL default '-1',
+rid bigint(20) unsigned NOT NULL,
+cid bigint(20) unsigned NOT NULL,
UNIQUE KEY m (uid,gid,rid,cid)
) engine=ndbcluster;
INSERT INTO t7 VALUES(1, 1, 1, 1, 1);
@@ -641,3 +674,12 @@ select * from t1 where code = '12' and month = 4 and year = 2004 ;
id month year code
1 4 2004 12
drop table t1;
+create table t1 (a int primary key, b varchar(1000) not null, unique key (b))
+engine=ndb charset=utf8;
+insert into t1 values (1, repeat(_utf8 0xe288ab6474, 200));
+insert into t1 values (2, repeat(_utf8 0xe288ab6474, 200));
+ERROR 23000: Duplicate entry '' for key 0
+select a, sha1(b) from t1;
+a sha1(b)
+1 08f5d02c8b8bc244f275bdfc22c42c5cab0d9d7d
+drop table t1;
diff --git a/mysql-test/r/ndb_insert.result b/mysql-test/r/ndb_insert.result
index 464eeb6d607..b5349ecb59c 100644
--- a/mysql-test/r/ndb_insert.result
+++ b/mysql-test/r/ndb_insert.result
@@ -577,6 +577,25 @@ pk1 b c
2 2 17
4 4 3
6 6 3
+DELETE FROM t1;
+CREATE UNIQUE INDEX bi ON t1(b);
+INSERT INTO t1 VALUES
+(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
+(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
+INSERT INTO t1 VALUES(0,1,0),(21,21,21) ON DUPLICATE KEY UPDATE pk1=b+10,b=b+10;
+select * from t1 order by pk1;
+pk1 b c
+2 2 2
+3 3 3
+4 4 4
+5 5 5
+6 6 6
+7 7 7
+8 8 8
+9 9 9
+10 10 10
+11 11 1
+21 21 21
DROP TABLE t1;
CREATE TABLE t1(a INT) ENGINE=ndb;
INSERT IGNORE INTO t1 VALUES (1);
@@ -586,7 +605,7 @@ INSERT IGNORE INTO t1 SELECT a FROM t1;
INSERT IGNORE INTO t1 SELECT a FROM t1;
INSERT IGNORE INTO t1 VALUES (1);
INSERT IGNORE INTO t1 VALUES (1);
-SELECT * FROM t1;
+SELECT * FROM t1 ORDER BY a;
a
1
1
@@ -606,4 +625,204 @@ a
1
1
1
+DELETE FROM t1;
+CREATE UNIQUE INDEX ai ON t1(a);
+INSERT IGNORE INTO t1 VALUES (1);
+INSERT IGNORE INTO t1 VALUES (1);
+INSERT IGNORE INTO t1 VALUES (NULL),(2);
+SELECT * FROM t1 ORDER BY a;
+a
+NULL
+1
+2
DROP TABLE t1;
+CREATE TABLE t1(pk INT NOT NULL PRIMARY KEY, a INT, UNIQUE (a)) ENGINE=ndb;
+INSERT IGNORE INTO t1 VALUES (1,1),(2,2),(3,3);
+INSERT IGNORE INTO t1 VALUES (4,NULL),(5,NULL),(6,NULL),(7,4);
+SELECT * FROM t1 ORDER BY pk;
+pk a
+1 1
+2 2
+3 3
+4 NULL
+5 NULL
+6 NULL
+7 4
+DROP TABLE t1;
+create table t1(a int primary key, b int, unique key(b)) engine=ndb;
+insert ignore into t1 values (1,0), (2,0), (2,null), (3,null);
+select * from t1 order by a;
+a b
+1 0
+2 NULL
+3 NULL
+drop table t1;
+CREATE TABLE t1 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER;
+CREATE TABLE t2 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=MYISAM;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+1 1 0
+11 2 1
+21 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+TRUNCATE t1;
+TRUNCATE t2;
+SET @@session.auto_increment_offset=5;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t1 (pk,b,c) VALUES (27,4,3),(NULL,5,4),(99,6,5),(NULL,7,6);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (pk,b,c) VALUES (27,4,3),(NULL,5,4),(99,6,5),(NULL,7,6);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+5 1 0
+15 2 1
+25 3 2
+27 4 3
+35 5 4
+99 6 5
+105 7 6
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+7
+TRUNCATE t1;
+TRUNCATE t2;
+SET @@session.auto_increment_increment=2;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+1 1 0
+3 2 1
+5 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+DROP TABLE t1, t2;
+CREATE TABLE t1 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 7;
+CREATE TABLE t2 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 7;
+SET @@session.auto_increment_offset=1;
+SET @@session.auto_increment_increment=1;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+7 1 0
+8 2 1
+9 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+DROP TABLE t1, t2;
+CREATE TABLE t1 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 3;
+CREATE TABLE t2 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 3;
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+5 1 0
+15 2 1
+25 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+DROP TABLE t1, t2;
+CREATE TABLE t1 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 7;
+CREATE TABLE t2 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 7;
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+15 1 0
+25 2 1
+35 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+DROP TABLE t1, t2;
+CREATE TABLE t1 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 5;
+CREATE TABLE t2 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 5;
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+5 1 0
+15 2 1
+25 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+DROP TABLE t1, t2;
+CREATE TABLE t1 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 100;
+CREATE TABLE t2 (
+pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+b INT NOT NULL,
+c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 100;
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+pk b c
+105 1 0
+115 2 1
+125 3 2
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+COUNT(t1.pk)
+3
+DROP TABLE t1, t2;
diff --git a/mysql-test/r/ndb_load.result b/mysql-test/r/ndb_load.result
index 76da5b2a215..416a350066b 100644
--- a/mysql-test/r/ndb_load.result
+++ b/mysql-test/r/ndb_load.result
@@ -1,10 +1,10 @@
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=NDB;
-LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ;
+LOAD DATA INFILE '../std_data_ln/words.dat' INTO TABLE t1 ;
ERROR 23000: Can't write; duplicate key in table 't1'
DROP TABLE t1;
CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=NDB;
-LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ;
+LOAD DATA INFILE '../std_data_ln/words.dat' INTO TABLE t1 ;
SELECT * FROM t1 ORDER BY word;
word
Aarhus
diff --git a/mysql-test/r/ndb_lock.result b/mysql-test/r/ndb_lock.result
index c7413949f42..9a2cea0f512 100644
--- a/mysql-test/r/ndb_lock.result
+++ b/mysql-test/r/ndb_lock.result
@@ -87,6 +87,19 @@ x y z
rollback;
commit;
begin;
+select * from t1 where y = 'one' or y = 'three' for update;
+x y z
+# # #
+# # #
+begin;
+select * from t1 where x = 2 for update;
+x y z
+2 two 2
+select * from t1 where x = 1 for update;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+rollback;
+commit;
+begin;
select * from t1 where y = 'one' or y = 'three' order by x for update;
x y z
1 one 1
@@ -108,7 +121,7 @@ select * from t1 where x = 1 for update;
x y z
1 one 1
select * from t1 where x = 2 for update;
-ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+Got one of the listed errors
rollback;
commit;
begin;
@@ -127,6 +140,22 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
rollback;
commit;
begin;
+select * from t1 where y = 'one' or y = 'three' lock in share mode;
+x y z
+# # #
+# # #
+begin;
+select * from t1 where y = 'one' lock in share mode;
+x y z
+1 one 1
+select * from t1 where x = 2 for update;
+x y z
+2 two 2
+select * from t1 where x = 1 for update;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+rollback;
+commit;
+begin;
select * from t1 where y = 'one' or y = 'three' order by x lock in share mode;
x y z
1 one 1
diff --git a/mysql-test/r/ndb_multi.result b/mysql-test/r/ndb_multi.result
index 351cd7e35c5..5d75722982f 100644
--- a/mysql-test/r/ndb_multi.result
+++ b/mysql-test/r/ndb_multi.result
@@ -28,8 +28,6 @@ Handler_discover 0
drop table t1;
create table t1 (a int) engine=ndbcluster;
insert into t1 value (2);
-select * from t1;
-ERROR HY000: Got error 241 'Invalid schema object version' from ndbcluster
flush table t1;
select * from t1;
a
@@ -54,13 +52,13 @@ a b c last_col
1 Hi! 89 Longtext column
show status like 'handler_discover%';
Variable_name Value
-Handler_discover 1
+Handler_discover 2
show tables like 't4';
Tables_in_test (t4)
t4
show status like 'handler_discover%';
Variable_name Value
-Handler_discover 2
+Handler_discover 3
show tables;
Tables_in_test
t1
diff --git a/mysql-test/r/ndb_read_multi_range.result b/mysql-test/r/ndb_read_multi_range.result
new file mode 100644
index 00000000000..d18f4c1e65a
--- /dev/null
+++ b/mysql-test/r/ndb_read_multi_range.result
@@ -0,0 +1,426 @@
+DROP TABLE IF EXISTS t1, t2, r1;
+create table t1 (
+a int primary key,
+b int not null,
+c int not null,
+index(b), unique index using hash(c)
+) engine = ndb;
+insert into t1 values
+(1,2,1),(2,3,2),(3,4,3),(4,5,4),
+(5,2,12),(6,3,11),(7,4,10),(8,5,9),
+(9,2,8),(10,3,7),(11,4,6),(12,5,5);
+create table r1 as select * from t1 where a in (2,8,12);
+select * from r1 order by a;
+a b c
+2 3 2
+8 5 9
+12 5 5
+drop table r1;
+create table r1 as select * from t1 where b in (1,2,5);
+select * from r1 order by a;
+a b c
+1 2 1
+4 5 4
+5 2 12
+8 5 9
+9 2 8
+12 5 5
+drop table r1;
+create table r1 as select * from t1 where c in (2,8,12);
+select * from r1 order by a;
+a b c
+2 3 2
+5 2 12
+9 2 8
+drop table r1;
+create table r1 as select * from t1 where a in (2,8) or (a > 11) or (a <= 1);
+select * from r1 order by a;
+a b c
+1 2 1
+2 3 2
+8 5 9
+12 5 5
+drop table r1;
+create table r1 as select * from t1 where a in (33,8,12);
+select * from r1 order by a;
+a b c
+8 5 9
+12 5 5
+drop table r1;
+create table r1 as select * from t1 where a in (2,33,8,12,34);
+select * from r1 order by a;
+a b c
+2 3 2
+8 5 9
+12 5 5
+drop table r1;
+create table r1 as select * from t1 where b in (1,33,5);
+select * from r1 order by a;
+a b c
+4 5 4
+8 5 9
+12 5 5
+drop table r1;
+select * from t1 where b in (1,33,5) order by a;
+a b c
+4 5 4
+8 5 9
+12 5 5
+create table r1 as select * from t1 where b in (45,1,33,5,44);
+select * from r1 order by a;
+a b c
+4 5 4
+8 5 9
+12 5 5
+drop table r1;
+select * from t1 where b in (45,22) order by a;
+a b c
+create table r1 as select * from t1 where c in (2,8,33);
+select * from r1 order by a;
+a b c
+2 3 2
+9 2 8
+drop table r1;
+create table r1 as select * from t1 where c in (13,2,8,33,12);
+select * from r1 order by a;
+a b c
+2 3 2
+5 2 12
+9 2 8
+drop table r1;
+select * from t1 where a in (33,8,12) order by a;
+a b c
+8 5 9
+12 5 5
+select * from t1 where a in (33,34,35) order by a;
+a b c
+select * from t1 where a in (2,8) or (a > 11) or (a <= 1) order by a;
+a b c
+1 2 1
+2 3 2
+8 5 9
+12 5 5
+select * from t1 where b in (6,7) or (b <= 5) or (b >= 10) order by b,a;
+a b c
+1 2 1
+5 2 12
+9 2 8
+2 3 2
+6 3 11
+10 3 7
+3 4 3
+7 4 10
+11 4 6
+4 5 4
+8 5 9
+12 5 5
+select * from t1 where c in (13,2,8,33,12) order by c,a;
+a b c
+2 3 2
+9 2 8
+5 2 12
+drop table t1;
+create table t1 (
+a int not null,
+b int not null,
+c int not null,
+d int not null,
+e int not null,
+primary key (a,b,c,d), index (d)
+) engine = ndb;
+insert into t1 values
+(1,2,1,1,1),(2,3,2,3,1),(3,4,3,1,1),(4,5,4,7,1),
+(5,2,12,12,1),(6,3,11,1,1),(7,4,10,3,1),(8,5,9,5,1),
+(9,2,8,6,1),(10,3,7,5,1),(11,4,6,3,1),(12,5,5,2,1),
+(1,2,1,2,1),
+(1,2,1,3,1),
+(1,2,1,4,1),
+(1,2,1,5,1);
+create table r1 as select * from t1
+where a=1 and b=2 and c=1 and d in (1,4,3,2);
+select * from r1 order by a,b,c,d;
+a b c d e
+1 2 1 1 1
+1 2 1 2 1
+1 2 1 3 1
+1 2 1 4 1
+drop table r1;
+update t1 set e = 100
+where d in (12,6,7);
+select * from t1 where d in (12,6,7) order by a,b,c,d;
+a b c d e
+4 5 4 7 100
+5 2 12 12 100
+9 2 8 6 100
+select * from t1 where d not in (12,6,7) and e = 100;
+a b c d e
+update t1
+set e = 101
+where a=1 and
+b=2 and
+c=1 and
+d in (1,4,3,2);
+select *
+from t1
+where a=1 and b=2 and c=1 and d in (1,4,3,2)
+order by a,b,c,d;
+a b c d e
+1 2 1 1 101
+1 2 1 2 101
+1 2 1 3 101
+1 2 1 4 101
+select *
+from t1
+where not (a=1 and b=2 and c=1 and d in (1,4,3,2))
+and e=101;
+a b c d e
+update t1
+set e =
+(case d
+when 12 then 112
+when 6 then 106
+when 7 then 107
+end)
+where d in (12,6,7);
+select * from t1 where d in (12,6,7) order by a,b,c,d;
+a b c d e
+4 5 4 7 107
+5 2 12 12 112
+9 2 8 6 106
+update t1
+set e =
+(case d
+when 1 then 111
+when 4 then 444
+when 3 then 333
+when 2 then 222
+end)
+where a=1 and
+b=2 and
+c=1 and
+d in (1,4,3,2);
+select *
+from t1
+where a=1 and b=2 and c=1 and d in (1,4,3,2)
+order by a,b,c,d;
+a b c d e
+1 2 1 1 111
+1 2 1 2 222
+1 2 1 3 333
+1 2 1 4 444
+delete from t1 where d in (12,6,7);
+select * from t1 where d in (12,6,7);
+a b c d e
+drop table t1;
+create table t1 (
+a int not null primary key,
+b int,
+c int,
+d int,
+unique index (b),
+index(c)
+) engine = ndb;
+insert into t1 values
+(1,null,1,1),
+(2,2,2,2),
+(3,null,null,3),
+(4,4,null,4),
+(5,null,5,null),
+(6,6,6,null),
+(7,null,null,null),
+(8,8,null,null),
+(9,null,9,9),
+(10,10,10,10),
+(11,null,null,11),
+(12,12,null,12),
+(13,null,13,null),
+(14,14,14,null),
+(15,null,null,null),
+(16,16,null,null);
+create table t2 as select * from t1 where a in (5,6,7,8,9,10);
+select * from t2 order by a;
+a b c d
+5 NULL 5 NULL
+6 6 6 NULL
+7 NULL NULL NULL
+8 8 NULL NULL
+9 NULL 9 9
+10 10 10 10
+drop table t2;
+create table t2 as select * from t1 where b in (5,6,7,8,9,10);
+select * from t2 order by a;
+a b c d
+6 6 6 NULL
+8 8 NULL NULL
+10 10 10 10
+drop table t2;
+create table t2 as select * from t1 where c in (5,6,7,8,9,10);
+select * from t2 order by a;
+a b c d
+5 NULL 5 NULL
+6 6 6 NULL
+9 NULL 9 9
+10 10 10 10
+drop table t2;
+drop table t1;
+CREATE TABLE t1 (
+a int(11) NOT NULL,
+b int(11) NOT NULL,
+c datetime default NULL,
+PRIMARY KEY (a),
+KEY idx_bc (b,c)
+) ENGINE=ndbcluster;
+INSERT INTO t1 VALUES
+(406989,67,'2006-02-23 17:08:46'), (150078,67,'2005-10-26 11:17:45'),
+(406993,67,'2006-02-27 11:20:57'), (245655,67,'2005-12-08 15:59:08'),
+(406994,67,'2006-02-27 11:26:46'), (256,67,NULL),
+(398341,67,'2006-02-20 04:48:44'), (254,67,NULL),(1120,67,NULL),
+(406988,67,'2006-02-23 17:07:22'), (255,67,NULL),
+(398340,67,'2006-02-20 04:38:53'),(406631,67,'2006-02-23 10:49:42'),
+(245653,67,'2005-12-08 15:59:07'),(406992,67,'2006-02-24 16:47:18'),
+(245654,67,'2005-12-08 15:59:08'),(406995,67,'2006-02-28 11:55:00'),
+(127261,67,'2005-10-13 12:17:58'),(406991,67,'2006-02-24 16:42:32'),
+(245652,67,'2005-12-08 15:58:27'),(398545,67,'2006-02-20 04:53:13'),
+(154504,67,'2005-10-28 11:53:01'),(9199,67,NULL),(1,67,'2006-02-23 15:01:35'),
+(223456,67,NULL),(4101,67,NULL),(1133,67,NULL),
+(406990,67,'2006-02-23 18:01:45'),(148815,67,'2005-10-25 15:34:17'),
+(148812,67,'2005-10-25 15:30:01'),(245651,67,'2005-12-08 15:58:27'),
+(154503,67,'2005-10-28 11:52:38');
+create table t11 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 asc;
+create table t12 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 desc;
+create table t21 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 asc;
+create table t22 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 desc;
+select * from t11 order by 1,2,3;
+a b c
+254 67 NULL
+255 67 NULL
+256 67 NULL
+1120 67 NULL
+1133 67 NULL
+4101 67 NULL
+9199 67 NULL
+223456 67 NULL
+select * from t12 order by 1,2,3;
+a b c
+254 67 NULL
+255 67 NULL
+256 67 NULL
+1120 67 NULL
+1133 67 NULL
+4101 67 NULL
+9199 67 NULL
+223456 67 NULL
+select * from t21 order by 1,2,3;
+a b c
+1 67 2006-02-23 15:01:35
+254 67 NULL
+255 67 NULL
+256 67 NULL
+1120 67 NULL
+1133 67 NULL
+4101 67 NULL
+9199 67 NULL
+223456 67 NULL
+245651 67 2005-12-08 15:58:27
+245652 67 2005-12-08 15:58:27
+245653 67 2005-12-08 15:59:07
+245654 67 2005-12-08 15:59:08
+245655 67 2005-12-08 15:59:08
+398340 67 2006-02-20 04:38:53
+398341 67 2006-02-20 04:48:44
+398545 67 2006-02-20 04:53:13
+406631 67 2006-02-23 10:49:42
+406988 67 2006-02-23 17:07:22
+406989 67 2006-02-23 17:08:46
+406990 67 2006-02-23 18:01:45
+406991 67 2006-02-24 16:42:32
+406992 67 2006-02-24 16:47:18
+406993 67 2006-02-27 11:20:57
+406994 67 2006-02-27 11:26:46
+406995 67 2006-02-28 11:55:00
+select * from t22 order by 1,2,3;
+a b c
+1 67 2006-02-23 15:01:35
+254 67 NULL
+255 67 NULL
+256 67 NULL
+1120 67 NULL
+1133 67 NULL
+4101 67 NULL
+9199 67 NULL
+223456 67 NULL
+245651 67 2005-12-08 15:58:27
+245652 67 2005-12-08 15:58:27
+245653 67 2005-12-08 15:59:07
+245654 67 2005-12-08 15:59:08
+245655 67 2005-12-08 15:59:08
+398340 67 2006-02-20 04:38:53
+398341 67 2006-02-20 04:48:44
+398545 67 2006-02-20 04:53:13
+406631 67 2006-02-23 10:49:42
+406988 67 2006-02-23 17:07:22
+406989 67 2006-02-23 17:08:46
+406990 67 2006-02-23 18:01:45
+406991 67 2006-02-24 16:42:32
+406992 67 2006-02-24 16:47:18
+406993 67 2006-02-27 11:20:57
+406994 67 2006-02-27 11:26:46
+406995 67 2006-02-28 11:55:00
+DROP TABLE t1, t11, t12, t21, t22;
+CREATE TABLE t1 (id varchar(255) NOT NULL,
+tag int(11) NOT NULL,
+doc text NOT NULL,
+type varchar(150) NOT NULL,
+modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (id)
+) ENGINE=ndbcluster;
+INSERT INTO t1 VALUES ('sakila',1,'Some text goes here','text',CURRENT_TIMESTAMP);
+SELECT id, tag, doc, type FROM t1 WHERE id IN ('flipper','orka');
+id tag doc type
+SELECT id, tag, doc, type FROM t1 WHERE id IN ('flipper','sakila');
+id tag doc type
+sakila 1 Some text goes here text
+DROP TABLE t1;
+CREATE TABLE t1 (
+var1 int(2) NOT NULL,
+var2 int(2) NOT NULL,
+PRIMARY KEY (var1)
+) ENGINE=ndbcluster DEFAULT CHARSET=ascii CHECKSUM=1;
+CREATE TABLE t2 (
+var1 int(2) NOT NULL,
+var2 int(2) NOT NULL,
+PRIMARY KEY (var1)
+) ENGINE=MyISAM DEFAULT CHARSET=ascii CHECKSUM=1;
+CREATE TRIGGER testtrigger
+AFTER UPDATE ON t1 FOR EACH ROW BEGIN
+REPLACE INTO t2 SELECT * FROM t1 WHERE t1.var1 = NEW.var1;END|
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+UPDATE t1 SET var2 = 9 WHERE var1 IN(1,2,3);
+DROP TRIGGER testtrigger;
+DROP TABLE t1, t2;
+create table t2 (a int, b int, primary key (a), key ab (a,b)) engine=ndbcluster;
+insert into t2 values (1,1), (10,10);
+select * from t2 use index (ab) where a in(1,10) order by a;
+a b
+1 1
+10 10
+drop table t2;
+create table t1 (id int primary key) engine ndb;
+insert into t1 values (1), (2), (3);
+create table t2 (id int primary key) engine ndb;
+insert into t2 select id from t1;
+create trigger kaboom after delete on t1
+for each row begin
+delete from t2 where id=old.id;
+end|
+select * from t1 order by id;
+id
+1
+2
+3
+delete from t1 where id in (1,2);
+select * from t2 order by id;
+id
+3
+drop trigger kaboom;
+drop table t1;
diff --git a/mysql-test/r/ndb_replace.result b/mysql-test/r/ndb_replace.result
index 63fd8b55c8e..4d63c397d60 100644
--- a/mysql-test/r/ndb_replace.result
+++ b/mysql-test/r/ndb_replace.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1,t2;
CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
benutzer_id int(11) DEFAULT '0' NOT NULL,
@@ -19,3 +19,81 @@ gesuchnr benutzer_id
2 1
3 2
drop table t1;
+CREATE TABLE t1(i INT PRIMARY KEY AUTO_INCREMENT,
+j INT,
+k INT,
+UNIQUE INDEX(j)
+) ENGINE = ndb;
+INSERT INTO t1 VALUES (1,1,23),(2,2,24);
+REPLACE INTO t1 (j,k) VALUES (1,42);
+REPLACE INTO t1 (i,j) VALUES (17,2);
+SELECT * from t1 ORDER BY i;
+i j k
+3 1 42
+17 2 NULL
+DROP TABLE t1;
+CREATE TABLE t2 (a INT(11) NOT NULL,
+b INT(11) NOT NULL,
+c INT(11) NOT NULL,
+x TEXT,
+y TEXT,
+z TEXT,
+id INT(10) unsigned NOT NULL AUTO_INCREMENT,
+i INT(11) DEFAULT NULL,
+PRIMARY KEY (id),
+UNIQUE KEY a (a,b,c)
+) ENGINE=ndbcluster;
+REPLACE INTO t2 (a,b,c,x,y,z,i) VALUES (1,1,1,'a','a','a',1),(1,1,1,'b','b','b',2), (1,1,1,'c','c','c',3);
+SELECT * FROM t2 ORDER BY id;
+a b c x y z id i
+1 1 1 c c c 3 3
+REPLACE INTO t2(a,b,c,x,y,z,i) values (1,1,1,'a','a','a',1);
+REPLACE INTO t2(a,b,c,x,y,z,i) values (1,1,1,'b','b','b',2);
+SELECT * FROM t2 ORDER BY id;
+a b c x y z id i
+1 1 1 b b b 5 2
+DROP TABLE t2;
+drop table if exists t1;
+create table t1 (pk int primary key, apk int unique, data int) engine=ndbcluster;
+insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3);
+replace into t1 (pk, apk) values (4, 1), (5, 2);
+select * from t1 order by pk;
+pk apk data
+3 3 3
+4 1 NULL
+5 2 NULL
+delete from t1;
+insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3);
+replace into t1 (pk, apk) values (1, 4), (2, 5);
+select * from t1 order by pk;
+pk apk data
+1 4 NULL
+2 5 NULL
+3 3 3
+delete from t1;
+insert into t1 values (1, 1, 1), (4, 4, 4), (6, 6, 6);
+load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (pk, apk);
+select * from t1 order by pk;
+pk apk data
+1 1 1
+3 4 NULL
+5 6 NULL
+delete from t1;
+insert into t1 values (1, 1, 1), (3, 3, 3), (5, 5, 5);
+load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (pk, apk);
+select * from t1 order by pk;
+pk apk data
+1 1 1
+3 4 NULL
+5 6 NULL
+delete from t1;
+insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3);
+replace into t1 (pk, apk) select 4, 1;
+replace into t1 (pk, apk) select 2, 4;
+select * from t1 order by pk;
+pk apk data
+2 4 NULL
+3 3 3
+4 1 NULL
+drop table t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/ndb_restore.result b/mysql-test/r/ndb_restore.result
index c78a4137468..9faac2df0a4 100644
--- a/mysql-test/r/ndb_restore.result
+++ b/mysql-test/r/ndb_restore.result
@@ -1,14 +1,14 @@
use test;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
-CREATE TABLE `t1` (
-`capgoaledatta` smallint(5) unsigned NOT NULL auto_increment,
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
+CREATE TABLE `t1_c` (
+`capgoaledatta` mediumint(5) unsigned NOT NULL auto_increment,
`goaledatta` char(2) NOT NULL default '',
`maturegarbagefa` varchar(32) NOT NULL default '',
PRIMARY KEY (`capgoaledatta`,`goaledatta`,`maturegarbagefa`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t1` VALUES (2,'3','q3plus.qt'),(4,'4','q3plus.qt'),(1,'3','q3.net'),(3,'4','q3.net'),(3,'20','threetrees.qt');
-CREATE TABLE `t2` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t1_c` VALUES (2,'3','q3plus.qt'),(400,'4','q3plus.qt'),(1,'3','q3.net'),(3,'4','q3.net'),(3000,'20','threetrees.qt');
+CREATE TABLE `t2_c` (
`capgotod` smallint(5) unsigned NOT NULL auto_increment,
`gotod` smallint(5) unsigned NOT NULL default '0',
`goaledatta` char(2) default NULL,
@@ -16,16 +16,16 @@ CREATE TABLE `t2` (
`descrpooppo` varchar(64) default NULL,
`svcutonsa` varchar(64) NOT NULL default '',
PRIMARY KEY (`capgotod`),
-KEY `i_quadaddsvr` (`gotod`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t2` VALUES (5,4,'','q3.net','addavp:MK_CASELECTOR=1','postorod rattoaa'),(2,1,'4','','addavp:MK_BRANDTAD=345','REDS Brandtad'),(3,2,'4','q3.net','execorder','fixedRatediPO REDS'),(1,1,'3','','addavp:MK_BRANDTAD=123','TEST Brandtad'),(6,5,'','told.q3.net','addavp:MK_BRANDTAD=123','Brandtad Toldzone'),(4,3,'3','q3.net','addavp:MK_POOLHINT=2','ratedi PO TEST');
-CREATE TABLE `t3` (
+KEY `i quadaddsvr` (`gotod`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t2_c` VALUES (500,4,'','q3.net','addavp:MK_CASELECTOR=1','postorod rattoaa'),(2,1,'4','','addavp:MK_BRANDTAD=345','REDS Brandtad'),(3,2,'4','q3.net','execorder','fixedRatediPO REDS'),(1,1,'3','','addavp:MK_BRANDTAD=123','TEST Brandtad'),(6,5,'','told.q3.net','addavp:MK_BRANDTAD=123','Brandtad Toldzone'),(4,3,'3','q3.net','addavp:MK_POOLHINT=2','ratedi PO TEST');
+CREATE TABLE `t3_c` (
`CapGoaledatta` smallint(5) unsigned NOT NULL default '0',
`capgotod` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`capgotod`,`CapGoaledatta`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t3` VALUES (5,3),(2,4),(5,4),(1,3);
-CREATE TABLE `t4` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t3_c` VALUES (5,3),(2,4),(5,4),(1,3);
+CREATE TABLE `t4_c` (
`capfa` bigint(20) unsigned NOT NULL auto_increment,
`realm` varchar(32) NOT NULL default '',
`authpwchap` varchar(32) default NULL,
@@ -35,34 +35,34 @@ CREATE TABLE `t4` (
PRIMARY KEY (`fa`,`realm`),
KEY `capfa` (`capfa`),
KEY `i_quadentity` (`fa`,`realm`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t4` VALUES (18,'john.smith','q3.net','dessjohn.smith',0,NULL),(21,'quad_katt_with_brandtad','q3.net','acne',0,NULL),(22,'quad_katt_carattoaa','q3.net','acne',0,NULL),(26,'436462612809','sqasdt.q3.net','N/A',0,'6'),(19,'john','smith.qt','dessjohn',0,NULL),(33,'436643196120','sqasdt.q3.net','N/A',1,'6'),(28,'436642900019','sqasdt.q3.net','N/A',0,'6'),(30,'436462900209','sqasdt.q3.net','N/A',0,'6'),(16,'436640006666','sqasdt.q3.net','',0,NULL),(19,'dette','el-redun.com','dessdette',0,NULL),(12,'quad_kattPP','q3.net','acne',2,NULL),(14,'436640008888','sqasdt.q3.net','',0,NULL),(29,'463624900028','sqasdt.q3.net','N/A',0,'6'),(15,'436640099099','sqasdt.q3.net','',0,NULL),(13,'pap','q3plus.qt','acne',1,NULL),(19,'436642612091','sqasdt.q3.net','N/A',0,'6'),(12,'quad_katt','q3.net','acne',0,NULL),(11,'quad_kattVK','q3.net','acne',1,NULL),(32,'463641969502','sqasdt.q3.net','N/A',1,'6'),(20,'joe','q3.net','joedesswd',0,NULL),(29,'436642900034','sqasdt.q3.net','N/A',0,'6'),(25,'contind','armerde.qt','acne',1,NULL);
-CREATE TABLE `t5` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t4_c` VALUES (18,'john.smith','q3.net','dessjohn.smith',0,NULL),(21,'quad_katt_with_brandtad','q3.net','acne',0,NULL),(2200,'quad_katt_carattoaa','q3.net','acne',0,NULL),(26,'436462612809','sqasdt.q3.net','N/A',0,'6'),(19,'john','smith.qt','dessjohn',0,NULL),(33,'436643196120','sqasdt.q3.net','N/A',1,'6'),(28,'436642900019','sqasdt.q3.net','N/A',0,'6'),(30,'436462900209','sqasdt.q3.net','N/A',0,'6'),(16,'436640006666','sqasdt.q3.net','',0,NULL),(19,'dette','el-redun.com','dessdette',0,NULL),(12,'quad_kattPP','q3.net','acne',2,NULL),(14,'436640008888','sqasdt.q3.net','',0,NULL),(29,'463624900028','sqasdt.q3.net','N/A',0,'6'),(15,'436640099099','sqasdt.q3.net','',0,NULL),(13,'pap','q3plus.qt','acne',1,NULL),(19,'436642612091','sqasdt.q3.net','N/A',0,'6'),(12,'quad_katt','q3.net','acne',0,NULL),(11,'quad_kattVK','q3.net','acne',1,NULL),(32000,'463641969502','sqasdt.q3.net','N/A',1,'6'),(20,'joe','q3.net','joedesswd',0,NULL),(290000000,'436642900034','sqasdt.q3.net','N/A',0,'6'),(25,'contind','armerde.qt','acne',1,NULL);
+CREATE TABLE `t5_c` (
`capfa` bigint(20) unsigned NOT NULL default '0',
`gotod` smallint(5) unsigned NOT NULL default '0',
`orderutonsa` varchar(64) NOT NULL default '',
PRIMARY KEY (`capfa`,`gotod`,`orderutonsa`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t5` VALUES (21,2,''),(21,1,''),(22,4,'');
-CREATE TABLE `t6` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t5_c` VALUES (21,2,''),(21,1,''),(22,4,'');
+CREATE TABLE `t6_c` (
`capfa_parent` bigint(20) unsigned NOT NULL default '0',
`capfa_child` bigint(20) unsigned NOT NULL default '0',
`relatta` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`capfa_child`,`capfa_parent`,`relatta`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t6` VALUES (15,16,0),(19,20,0),(18326932092909551615,30,0),(26,29,0),(18326932092909551615,29,0),(19,18,0),(26,28,0),(12,14,0);
-CREATE TABLE `t7` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t6_c` VALUES (15,16,0),(19,20,0),(18326932092909551615,30,0),(26,29,0),(18326932092909551615,29,0),(19,18,0),(26,28,0),(12,14,0);
+CREATE TABLE `t7_c` (
`dardpo` char(15) NOT NULL default '',
-`dardtestard` tinyint(3) unsigned NOT NULL default '0',
+`dardtestard` tinyint(3) unsigned NOT NULL auto_increment,
`FastFA` char(5) NOT NULL default '',
`FastCode` char(6) NOT NULL default '',
`Fastca` char(1) NOT NULL default '',
`Fastmag` char(1) NOT NULL default '',
`Beareratta` char(2) NOT NULL default '',
PRIMARY KEY (`dardpo`,`dardtestard`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t7` VALUES ('2.6.2.4',24,'CECHP','54545','0','0','5'),('2.2.5.4',26,'CANFA','33223','1','1','4'),('4.3.2.4',28,'ITALD','54222','1','0','5'),('129..0.0.eins',28,'G','99999','1','1','5'),('1.1.1.1',24,'AUTPT','32323','0','1','3');
-CREATE TABLE `t8` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t7_c` VALUES ('2.6.2.4',24,'CECHP','54545','0','0','5'),('2.2.5.4',26,'CANFA','33223','1','1','4'),('4.3.2.4',28,'ITALD','54222','1','0','5'),('129..0.0.eins',28,'G','99999','1','1','5'),('1.1.1.1',24,'AUTPT','32323','0','1','3');
+CREATE TABLE `t8_c` (
`kattjame` varchar(32) NOT NULL default '',
`realm` varchar(32) NOT NULL default '',
`realm_entered` varchar(32) NOT NULL default '',
@@ -88,9 +88,9 @@ CREATE TABLE `t8` (
`acctinputoctets` bigint(20) unsigned default NULL,
PRIMARY KEY (`kattjame`,`hunderaaarbagefa`,`hassetistart`,`hassetino`),
KEY `squardporoot` (`squardporoot`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t8` VALUES ('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643196120','436643196929','8956234534568968','5524595699','uxasmt21.net.acne.qt/481889229462692422','','1.1.1.1','2.2.4.6','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565),('4545435545','john','q3.net','q3.net','acne.li','436643196120','436643196929','45345234568968','995696699','uxasmt21.net.acne.qt/481889229462692423','','1.1.1.1','2.2.9.8','2','86989','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8821923,169,3565),('versteckter_q3net_katt','joe','q3.net','elredun.com','q3.net','436643196120','436643196939','91341234568968','695595699','uxasmt21.net.acne.qt/481889229462692421','','1.1.1.1','2.5.2.5','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',1923123,9569,6565);
-CREATE TABLE `t9` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t8_c` VALUES ('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643196120','436643196929','8956234534568968','5524595699','uxasmt21.net.acne.qt/481889229462692422','','1.1.1.1','2.2.4.6','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565),('4545435545','john','q3.net','q3.net','acne.li','436643196120','436643196929','45345234568968','995696699','uxasmt21.net.acne.qt/481889229462692423','','1.1.1.1','2.2.9.8','2','86989','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8821923,169,3565),('versteckter_q3net_katt','joe','q3.net','elredun.com','q3.net','436643196120','436643196939','91341234568968','695595699','uxasmt21.net.acne.qt/481889229462692421','','1.1.1.1','2.5.2.5','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',1923123,9569,6565);
+CREATE TABLE `t9_c` (
`kattjame` varchar(32) NOT NULL default '',
`kattjame_entered` varchar(32) NOT NULL default '',
`realm` varchar(32) NOT NULL default '',
@@ -114,21 +114,33 @@ CREATE TABLE `t9` (
`actinputocctets` bigint(20) unsigned default NULL,
`terminateraste` tinyint(3) unsigned default NULL,
PRIMARY KEY (`kattjame`,`hunderaaarbagefa`,`hassetistart`,`hassetino`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t9` VALUES ('3g4jh8gar2t','joe','q3.net','elredun.com','q3.net','436643316120','436643316939','91341234568968','695595699','1.1.1.1','2.2.6.2','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',3123123,9569,6565,1),('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643316120','436643316939','8956234534568968','5254595969','1.1.1.1','8.6.2.2','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565,2),('4545435545','john','q3.net','q3.net','acne.li','436643316120','436643316939','45345234568968','995696699','1.1.1.1','2.9.9.2','2','86998','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8823123,169,3565,3);
-create table t1_c engine=ndbcluster as select * from t1;
-create table t2_c engine=ndbcluster as select * from t2;
-create table t3_c engine=ndbcluster as select * from t3;
-create table t4_c engine=ndbcluster as select * from t4;
-create table t5_c engine=ndbcluster as select * from t5;
-create table t6_c engine=ndbcluster as select * from t6;
-create table t7_c engine=ndbcluster as select * from t7;
-create table t8_c engine=ndbcluster as select * from t8;
-create table t9_c engine=ndbcluster as select * from t9;
-drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t9_c` VALUES ('3g4jh8gar2t','joe','q3.net','elredun.com','q3.net','436643316120','436643316939','91341234568968','695595699','1.1.1.1','2.2.6.2','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',3123123,9569,6565,1),('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643316120','436643316939','8956234534568968','5254595969','1.1.1.1','8.6.2.2','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565,2),('4545435545','john','q3.net','q3.net','acne.li','436643316120','436643316939','45345234568968','995696699','1.1.1.1','2.9.9.2','2','86998','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8823123,169,3565,3);
+create table t10_c (a int auto_increment key) ENGINE=ndbcluster;
+insert into t10_c values (1),(2),(3);
+insert into t10_c values (10000),(2000),(3000);
+create table t1 engine=myisam as select * from t1_c;
+create table t2 engine=myisam as select * from t2_c;
+create table t3 engine=myisam as select * from t3_c;
+create table t4 engine=myisam as select * from t4_c;
+create table t5 engine=myisam as select * from t5_c;
+create table t6 engine=myisam as select * from t6_c;
+create table t7 engine=myisam as select * from t7_c;
+create table t8 engine=myisam as select * from t8_c;
+create table t9 engine=myisam as select * from t9_c;
+create table t10 engine=myisam as select * from t10_c;
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c, t10_c;
show tables;
Tables_in_test
t1
+t10
t2
t3
t4
@@ -137,14 +149,15 @@ t6
t7
t8
t9
-t8_c
+t3_c
t9_c
t1_c
+t8_c
t7_c
t6_c
t5_c
t4_c
-t3_c
+t10_c
t2_c
select count(*) from t1;
count(*)
@@ -245,6 +258,29 @@ from (select * from t9 union
select * from t9_c) a;
count(*)
3
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
-520093696,1
+select * from t10_c order by a;
+a
+1
+2
+3
+2000
+3000
+10000
+show table status like 't1_c';
+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
+X X X X X X X X X X 3001 X X X X X X X
+show table status like 't2_c';
+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
+X X X X X X X X X X 501 X X X X X X X
+show table status like 't4_c';
+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
+X X X X X X X X X X 290000001 X X X X X X X
+show table status like 't7_c';
+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
+X X X X X X X X X X 29 X X X X X X X
+show table status like 't10_c';
+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
+X X X X X X X X X X 10001 X X X X X X X
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9, t10;
+drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c, t10_c;
+520093696,<the_backup_id>
diff --git a/mysql-test/r/ndb_restore_different_endian_data.result b/mysql-test/r/ndb_restore_different_endian_data.result
new file mode 100644
index 00000000000..e1efefb751a
--- /dev/null
+++ b/mysql-test/r/ndb_restore_different_endian_data.result
@@ -0,0 +1,200 @@
+USE test;
+DROP TABLE IF EXISTS t_num,t_datetime,t_string_1,t_string_2,t_gis;
+SHOW TABLES;
+Tables_in_test
+t_gis
+t_string_1
+t_num
+t_string_2
+t_datetime
+SHOW CREATE TABLE t_num;
+Table Create Table
+t_num CREATE TABLE `t_num` (
+ `t_pk` int(11) NOT NULL,
+ `t_bit` bit(64) default NULL,
+ `t_tinyint` tinyint(4) default NULL,
+ `t_bool` tinyint(1) default NULL,
+ `t_smallint` smallint(6) default NULL,
+ `t_mediumint` mediumint(9) default NULL,
+ `t_int` int(11) default NULL,
+ `t_bigint` bigint(20) default NULL,
+ `t_float` float default NULL,
+ `t_double` double default NULL,
+ `t_decimal` decimal(37,16) default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_datetime;
+Table Create Table
+t_datetime CREATE TABLE `t_datetime` (
+ `t_pk` int(11) NOT NULL,
+ `t_date` date default NULL,
+ `t_datetime` datetime default NULL,
+ `t_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `t_time` time default NULL,
+ `t_year` year(4) default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_string_1;
+Table Create Table
+t_string_1 CREATE TABLE `t_string_1` (
+ `t_pk` int(11) NOT NULL,
+ `t_char` char(255) default NULL,
+ `t_varchar` varchar(655) default NULL,
+ `t_binary` binary(255) default NULL,
+ `t_varbinary` varbinary(6553) default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_string_2;
+Table Create Table
+t_string_2 CREATE TABLE `t_string_2` (
+ `t_pk` int(11) NOT NULL,
+ `t_tinyblob` tinyblob,
+ `t_tinytext` tinytext,
+ `t_blob` blob,
+ `t_text` text,
+ `t_mediumblob` mediumblob,
+ `t_mediumtext` mediumtext,
+ `t_longblob` longblob,
+ `t_longtext` longtext,
+ `t_enum` enum('001001','001004','001010','001018','001019','001020','001021','001027','001028','001029','001030','001031','001100','002003','002004','002005','002007') NOT NULL default '001001',
+ `t_set` set('a','B') default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_gis;
+Table Create Table
+t_gis CREATE TABLE `t_gis` (
+ `t_pk` int(11) NOT NULL,
+ `t_point` point default NULL,
+ `t_linestring` linestring default NULL,
+ `t_polygon` polygon default NULL,
+ `t_multipoint` multipoint default NULL,
+ `t_multilinestring` multilinestring default NULL,
+ `t_multipolygon` multipolygon default NULL,
+ `t_geometrycollection` geometrycollection default NULL,
+ `t_geometry` geometry default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SELECT * FROM t_datetime;
+t_pk t_date t_datetime t_timestamp t_time t_year
+1 1998-01-01 2006-08-10 10:11:12 2002-10-29 16:51:06 19:38:34 2155
+SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num;
+t_pk hex(t_bit) t_tinyint t_bool t_smallint t_mediumint t_int t_bigint t_float t_double t_decimal
+1 AAAAAAAAAAAAAAAA 125 1 32765 8388606 2147483647 9223372036854775807 1e+20 1e+150 331.0000000000000000
+SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1;
+t_pk t_char t_varchar hex(t_binary) hex(t_varbinary)
+1 abcdefghijklmn abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn 612020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4100
+SELECT * FROM t_string_2;
+t_pk t_tinyblob t_tinytext t_blob t_text t_mediumblob t_mediumtext t_longblob t_longtext t_enum t_set
+1 abcdefghijklmnabcdefghijklmn abcdefghijklmnabcdefghijklmn a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 001001 a
+SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk;
+AsText(t_point) AsText(t_linestring) AsText(t_polygon)
+POINT(10 10) LINESTRING(10 10,20 10,20 20,10 20,10 10) POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+POINT(10 20) LINESTRING(10 10,40 10) POLYGON((0 0,30 0,30 30,0 0))
+SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk;
+AsText(t_multipoint) AsText(t_multilinestring) AsText(t_multipolygon)
+MULTIPOINT(1 1,11 11,11 21,21 21) MULTILINESTRING((10 48,10 21,10 0)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+MULTIPOINT(3 6,4 10) MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk;
+AsText(t_geometrycollection) AsText(t_geometry)
+GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis;
+SHOW TABLES;
+Tables_in_test
+t_gis
+t_string_1
+t_num
+t_string_2
+t_datetime
+SHOW CREATE TABLE t_num;
+Table Create Table
+t_num CREATE TABLE `t_num` (
+ `t_pk` int(11) NOT NULL,
+ `t_bit` bit(64) default NULL,
+ `t_tinyint` tinyint(4) default NULL,
+ `t_bool` tinyint(1) default NULL,
+ `t_smallint` smallint(6) default NULL,
+ `t_mediumint` mediumint(9) default NULL,
+ `t_int` int(11) default NULL,
+ `t_bigint` bigint(20) default NULL,
+ `t_float` float default NULL,
+ `t_double` double default NULL,
+ `t_decimal` decimal(37,16) default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_datetime;
+Table Create Table
+t_datetime CREATE TABLE `t_datetime` (
+ `t_pk` int(11) NOT NULL,
+ `t_date` date default NULL,
+ `t_datetime` datetime default NULL,
+ `t_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `t_time` time default NULL,
+ `t_year` year(4) default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_string_1;
+Table Create Table
+t_string_1 CREATE TABLE `t_string_1` (
+ `t_pk` int(11) NOT NULL,
+ `t_char` char(255) default NULL,
+ `t_varchar` varchar(655) default NULL,
+ `t_binary` binary(255) default NULL,
+ `t_varbinary` varbinary(6553) default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_string_2;
+Table Create Table
+t_string_2 CREATE TABLE `t_string_2` (
+ `t_pk` int(11) NOT NULL,
+ `t_tinyblob` tinyblob,
+ `t_tinytext` tinytext,
+ `t_blob` blob,
+ `t_text` text,
+ `t_mediumblob` mediumblob,
+ `t_mediumtext` mediumtext,
+ `t_longblob` longblob,
+ `t_longtext` longtext,
+ `t_enum` enum('001001','001004','001010','001018','001019','001020','001021','001027','001028','001029','001030','001031','001100','002003','002004','002005','002007') NOT NULL default '001001',
+ `t_set` set('a','B') default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t_gis;
+Table Create Table
+t_gis CREATE TABLE `t_gis` (
+ `t_pk` int(11) NOT NULL,
+ `t_point` point default NULL,
+ `t_linestring` linestring default NULL,
+ `t_polygon` polygon default NULL,
+ `t_multipoint` multipoint default NULL,
+ `t_multilinestring` multilinestring default NULL,
+ `t_multipolygon` multipolygon default NULL,
+ `t_geometrycollection` geometrycollection default NULL,
+ `t_geometry` geometry default NULL,
+ PRIMARY KEY (`t_pk`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SELECT * FROM t_datetime;
+t_pk t_date t_datetime t_timestamp t_time t_year
+1 1998-01-01 2006-08-10 10:11:12 2002-10-29 16:51:06 19:38:34 2155
+SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num;
+t_pk hex(t_bit) t_tinyint t_bool t_smallint t_mediumint t_int t_bigint t_float t_double t_decimal
+1 AAAAAAAAAAAAAAAA 125 1 32765 8388606 2147483647 9223372036854775807 1e+20 1e+150 331.0000000000000000
+SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1;
+t_pk t_char t_varchar hex(t_binary) hex(t_varbinary)
+1 abcdefghijklmn abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn 612020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4100
+SELECT * FROM t_string_2;
+t_pk t_tinyblob t_tinytext t_blob t_text t_mediumblob t_mediumtext t_longblob t_longtext t_enum t_set
+1 abcdefghijklmnabcdefghijklmn abcdefghijklmnabcdefghijklmn a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 001001 a
+SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk;
+AsText(t_point) AsText(t_linestring) AsText(t_polygon)
+POINT(10 10) LINESTRING(10 10,20 10,20 20,10 20,10 10) POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
+POINT(10 20) LINESTRING(10 10,40 10) POLYGON((0 0,30 0,30 30,0 0))
+SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk;
+AsText(t_multipoint) AsText(t_multilinestring) AsText(t_multipolygon)
+MULTIPOINT(1 1,11 11,11 21,21 21) MULTILINESTRING((10 48,10 21,10 0)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+MULTIPOINT(3 6,4 10) MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
+SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk;
+AsText(t_geometrycollection) AsText(t_geometry)
+GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
+GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
+DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis;
diff --git a/mysql-test/r/ndb_restore_print.result b/mysql-test/r/ndb_restore_print.result
new file mode 100644
index 00000000000..e05f8e43d1a
--- /dev/null
+++ b/mysql-test/r/ndb_restore_print.result
@@ -0,0 +1,321 @@
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+create table t1
+(pk int key
+,a1 BIT(1), a2 BIT(5), a3 BIT(33), a4 BIT(63), a5 BIT(64)
+,b1 TINYINT, b2 TINYINT UNSIGNED
+,c1 SMALLINT, c2 SMALLINT UNSIGNED
+,d1 INT, d2 INT UNSIGNED
+,e1 BIGINT, e2 BIGINT UNSIGNED
+,f1 CHAR(1) BINARY, f2 CHAR(32) BINARY, f3 CHAR(255) BINARY
+,g1 VARCHAR(32) BINARY, g2 VARCHAR(255) BINARY, g3 VARCHAR(1000) BINARY
+,h1 BINARY(1), h2 BINARY(8), h3 BINARY(255)
+,i1 VARBINARY(32), i2 VARBINARY(255), i3 VARBINARY(1000)
+) engine myisam;
+insert into t1 values
+(1
+,0x1, 0x17, 0x789a, 0x789abcde, 0xfedc0001
+,127, 255
+,32767, 65535
+,2147483647, 4294967295
+,9223372036854775807, 18446744073709551615
+,'1','12345678901234567890123456789012','123456789'
+ ,'1','12345678901234567890123456789012','123456789'
+ ,0x12,0x123456789abcdef0, 0x012345
+,0x12,0x123456789abcdef0, 0x00123450
+);
+insert into t1 values
+(2
+,0, 0, 0, 0, 0
+,-128, 0
+,-32768, 0
+,-2147483648, 0
+,-9223372036854775808, 0
+,'','',''
+ ,'','',''
+ ,0x0,0x0,0x0
+,0x0,0x0,0x0
+);
+insert into t1 values
+(3
+,NULL,NULL,NULL,NULL,NULL
+,NULL,NULL
+,NULL,NULL
+,NULL,NULL
+,NULL,NULL
+,NULL,NULL,NULL
+,NULL,NULL,NULL
+,NULL,NULL,NULL
+,NULL,NULL,NULL
+);
+select pk
+,hex(a1), hex(a2), hex(a3), hex(a4), hex(a5)
+,b1, b2
+,c1 , c2
+,d1 , d2
+,e1 , e2
+,f1 , f2, f3
+,g1 , g2, g3
+,hex(h1), hex(h2), hex(h3)
+,hex(i1), hex(i2), hex(i3)
+from t1 order by pk;
+pk 1
+hex(a1) 1
+hex(a2) 17
+hex(a3) 789A
+hex(a4) 789ABCDE
+hex(a5) FEDC0001
+b1 127
+b2 255
+c1 32767
+c2 65535
+d1 2147483647
+d2 4294967295
+e1 9223372036854775807
+e2 18446744073709551615
+f1 1
+f2 12345678901234567890123456789012
+f3 123456789
+g1 1
+g2 12345678901234567890123456789012
+g3 123456789
+hex(h1) 12
+hex(h2) 123456789ABCDEF0
+hex(h3) 012345000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+hex(i1) 12
+hex(i2) 123456789ABCDEF0
+hex(i3) 00123450
+pk 2
+hex(a1) 0
+hex(a2) 0
+hex(a3) 0
+hex(a4) 0
+hex(a5) 0
+b1 -128
+b2 0
+c1 -32768
+c2 0
+d1 -2147483648
+d2 0
+e1 -9223372036854775808
+e2 0
+f1
+f2
+f3
+g1
+g2
+g3
+hex(h1) 00
+hex(h2) 0000000000000000
+hex(h3) 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+hex(i1) 00
+hex(i2) 00
+hex(i3) 00
+pk 3
+hex(a1) NULL
+hex(a2) NULL
+hex(a3) NULL
+hex(a4) NULL
+hex(a5) NULL
+b1 NULL
+b2 NULL
+c1 NULL
+c2 NULL
+d1 NULL
+d2 NULL
+e1 NULL
+e2 NULL
+f1 NULL
+f2 NULL
+f3 NULL
+g1 NULL
+g2 NULL
+g3 NULL
+hex(h1) NULL
+hex(h2) NULL
+hex(h3) NULL
+hex(i1) NULL
+hex(i2) NULL
+hex(i3) NULL
+alter table t1 engine ndb;
+select pk
+,hex(a1), hex(a2), hex(a3), hex(a4), hex(a5)
+,b1, b2
+,c1 , c2
+,d1 , d2
+,e1 , e2
+,f1 , f2, f3
+,g1 , g2, g3
+,hex(h1), hex(h2), hex(h3)
+,hex(i1), hex(i2), hex(i3)
+from t1 order by pk;
+pk 1
+hex(a1) 1
+hex(a2) 17
+hex(a3) 789A
+hex(a4) 789ABCDE
+hex(a5) FEDC0001
+b1 127
+b2 255
+c1 32767
+c2 65535
+d1 2147483647
+d2 4294967295
+e1 9223372036854775807
+e2 18446744073709551615
+f1 1
+f2 12345678901234567890123456789012
+f3 123456789
+g1 1
+g2 12345678901234567890123456789012
+g3 123456789
+hex(h1) 12
+hex(h2) 123456789ABCDEF0
+hex(h3) 012345000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+hex(i1) 12
+hex(i2) 123456789ABCDEF0
+hex(i3) 00123450
+pk 2
+hex(a1) 0
+hex(a2) 0
+hex(a3) 0
+hex(a4) 0
+hex(a5) 0
+b1 -128
+b2 0
+c1 -32768
+c2 0
+d1 -2147483648
+d2 0
+e1 -9223372036854775808
+e2 0
+f1
+f2
+f3
+g1
+g2
+g3
+hex(h1) 00
+hex(h2) 0000000000000000
+hex(h3) 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+hex(i1) 00
+hex(i2) 00
+hex(i3) 00
+pk 3
+hex(a1) NULL
+hex(a2) NULL
+hex(a3) NULL
+hex(a4) NULL
+hex(a5) NULL
+b1 NULL
+b2 NULL
+c1 NULL
+c2 NULL
+d1 NULL
+d2 NULL
+e1 NULL
+e2 NULL
+f1 NULL
+f2 NULL
+f3 NULL
+g1 NULL
+g2 NULL
+g3 NULL
+hex(h1) NULL
+hex(h2) NULL
+hex(h3) NULL
+hex(i1) NULL
+hex(i2) NULL
+hex(i3) NULL
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+1;0x1;0x17;0x789A;0x789ABCDE;0xFEDC0001;127;255;32767;65535;2147483647;4294967295;9223372036854775807;18446744073709551615;1;12345678901234567890123456789012;123456789;1;12345678901234567890123456789012;123456789;0x12;0x123456789ABCDEF0;0x012345;0x12;0x123456789ABCDEF0;0x00123450
+2;0x0;0x0;0x0;0x0;0x0;-128;0;-32768;0;-2147483648;0;-9223372036854775808;0;;;;;;;0x0;0x0;0x0;0x0;0x0;0x0
+3;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;\N
+1,0x1,0x17,0x789A,0x789ABCDE,0xFEDC0001,127,255,32767,65535,2147483647,4294967295,9223372036854775807,18446744073709551615,'1','12345678901234567890123456789012','123456789','1','12345678901234567890123456789012','123456789',0x12,0x123456789ABCDEF0,0x012345,0x12,0x123456789ABCDEF0,0x00123450
+2,0x0,0x0,0x0,0x0,0x0,-128,0,-32768,0,-2147483648,0,-9223372036854775808,0,'','','','','','',0x0,0x0,0x0,0x0,0x0,0x0
+3,,,,,,,,,,,,,,,,,,,,,,,,,
+drop table t1;
+create table t1
+(pk int key
+,f1 CHAR(1) BINARY, f2 CHAR(32) BINARY, f3 CHAR(255) BINARY
+,g1 VARCHAR(32) BINARY, g2 VARCHAR(255) BINARY, g3 VARCHAR(1000) BINARY
+,h1 BINARY(1), h2 BINARY(9), h3 BINARY(255)
+,i1 VARBINARY(32), i2 VARBINARY(255), i3 VARBINARY(1000)
+) engine ndb;
+insert into t1 values
+(1
+,'1','12345678901234567890123456789012','123456789 '
+ ,'1 ','12345678901234567890123456789012 ','123456789 '
+ ,0x20,0x123456789abcdef020, 0x012345000020
+,0x1200000020,0x123456789abcdef000000020, 0x00123450000020
+);
+create table t2 (pk int key, a int) engine ndb;
+create table t3 (pk int key, a int) engine ndb;
+create table t4 (pk int key, a int) engine ndb;
+insert into t2 values (1,11),(2,12),(3,13),(4,14),(5,15);
+insert into t3 values (1,21),(2,22),(3,23),(4,24),(5,25);
+insert into t4 values (1,31),(2,32),(3,33),(4,34),(5,35);
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+'1' '1' '12345678901234567890123456789012' '123456789' '1' '12345678901234567890123456789012' '123456789' '0x20' '0x123456789ABCDEF020' '0x012345000020' '0x1200000020' '0x123456789ABCDEF000000020' '0x00123450000020'
+
+t1
+--
+1 1 12345678901234567890123456789012 123456789 1 12345678901234567890123456789012 123456789 0x20 0x123456789ABCDEF020 0x012345000020 0x1200000020 0x123456789ABCDEF000000020 0x00123450000020
+
+t2
+--
+1 11
+2 12
+3 13
+4 14
+5 15
+
+t3
+--
+1 21
+2 22
+3 23
+4 24
+5 25
+
+t4
+--
+1 31
+2 32
+3 33
+4 34
+5 35
+drop table t1;
+create table t1
+(pk int key
+,a1 MEDIUMINT, a2 MEDIUMINT UNSIGNED
+) engine ndb;
+insert into t1 values(1, 8388607, 16777215);
+insert into t1 values(2, -8388608, 0);
+insert into t1 values(3, -1, 1);
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+1;8388607;16777215
+2;-8388608;0
+3;-1;1
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/r/ndb_single_user.result b/mysql-test/r/ndb_single_user.result
new file mode 100644
index 00000000000..4606a47dde2
--- /dev/null
+++ b/mysql-test/r/ndb_single_user.result
@@ -0,0 +1,60 @@
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+create table t1 (a int key, b int unique, c int) engine ndb;
+ERROR HY000: Can't create table './test/t1.frm' (errno: 299)
+create table t1 (a int key, b int unique, c int) engine ndb;
+insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);
+create table t2 as select * from t1;
+select * from t1 where a = 1;
+a b c
+1 1 0
+select * from t1 where b = 4;
+a b c
+4 4 0
+select * from t1 where a > 4 order by a;
+a b c
+5 5 0
+6 6 0
+7 7 0
+8 8 0
+9 9 0
+10 10 0
+update t1 set b=102 where a = 2;
+update t1 set b=103 where b = 3;
+update t1 set b=b+100;
+update t1 set b=b+100 where a > 7;
+delete from t1;
+insert into t1 select * from t2;
+create unique index new_index on t1 (b,c);
+drop table t1;
+ERROR 42S02: Unknown table 't1'
+create index new_index_fail on t1 (c);
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+insert into t1 values (21,21,0),(22,22,0),(23,23,0),(24,24,0),(25,25,0),(26,26,0),(27,27,0),(28,28,0),(29,29,0),(210,210,0);
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+select * from t1 where a = 1;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+select * from t1 where b = 4;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+update t1 set b=102 where a = 2;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+update t1 set b=103 where b = 3;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+update t1 set b=b+100;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+update t1 set b=b+100 where a > 7;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+BEGIN;
+update t1 set b=b+100 where a=1;
+BEGIN;
+update t1 set b=b+100 where a=2;
+update t1 set b=b+100 where a=3;
+COMMIT;
+update t1 set b=b+100 where a=4;
+ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
+COMMIT;
+ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
+create table t2 (a int) engine myisam;
+alter table t2 add column (b int);
+drop table t2;
+drop table t1;
diff --git a/mysql-test/r/ndb_subquery.result b/mysql-test/r/ndb_subquery.result
index f65f09b71b3..a67efb144b2 100644
--- a/mysql-test/r/ndb_subquery.result
+++ b/mysql-test/r/ndb_subquery.result
@@ -9,7 +9,7 @@ insert into t2 values (1,1,1),(2,2,2),(3,3,3), (4,4,4), (5,5,5);
explain select * from t2 where p NOT IN (select p from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
-2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using index
+2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1
select * from t2 where p NOT IN (select p from t1) order by p;
p u o
4 4 4
@@ -17,7 +17,7 @@ p u o
explain select * from t2 where p NOT IN (select u from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
-2 DEPENDENT SUBQUERY t1 unique_subquery u u 4 func 1 Using index
+2 DEPENDENT SUBQUERY t1 unique_subquery u u 4 func 1
select * from t2 where p NOT IN (select u from t1) order by p;
p u o
4 4 4
@@ -25,7 +25,7 @@ p u o
explain select * from t2 where p NOT IN (select o from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
-2 DEPENDENT SUBQUERY t1 index_subquery o o 4 func 1 Using index
+2 DEPENDENT SUBQUERY t1 index_subquery o o 4 func 1
select * from t2 where p NOT IN (select o from t1) order by p;
p u o
4 4 4
@@ -40,3 +40,22 @@ p u o
5 5 5
drop table t1;
drop table t2;
+create table t1 (p int not null primary key, u int not null) engine=ndb;
+insert into t1 values (1,1),(2,2),(3,3);
+create table t2 as
+select t1.*
+from t1 as t1, t1 as t2, t1 as t3, t1 as t4, t1 as t5, t1 as t6, t1 as t7, t1 as t8
+where t1.u = t2.u
+and t2.u = t3.u
+and t3.u = t4.u
+and t4.u = t5.u
+and t5.u = t6.u
+and t6.u = t7.u
+and t7.u = t8.u;
+select * from t2 order by 1;
+p u
+1 1
+2 2
+3 3
+drop table t1;
+drop table t2;
diff --git a/mysql-test/r/ndb_trigger.result b/mysql-test/r/ndb_trigger.result
new file mode 100644
index 00000000000..562c5120715
--- /dev/null
+++ b/mysql-test/r/ndb_trigger.result
@@ -0,0 +1,290 @@
+drop table if exists t1, t2, t3;
+create table t1 (id int primary key, a int not null, b decimal (63,30) default 0) engine=ndb;
+create table t2 (op char(1), a int not null, b decimal (63,30));
+create table t3 select 1 as i;
+create trigger t1_bu before update on t1 for each row
+begin
+insert into t2 values ("u", old.a, old.b);
+set new.b = old.b + 10;
+end;//
+create trigger t1_bd before delete on t1 for each row
+begin
+insert into t2 values ("d", old.a, old.b);
+end;//
+insert into t1 values (1, 1, 1.05), (2, 2, 2.05), (3, 3, 3.05), (4, 4, 4.05);
+update t1 set a=5 where a != 3;
+select * from t1 order by id;
+id a b
+1 5 11.050000000000000000000000000000
+2 5 12.050000000000000000000000000000
+3 3 3.050000000000000000000000000000
+4 5 14.050000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+u 1 1.050000000000000000000000000000
+u 2 2.050000000000000000000000000000
+u 4 4.050000000000000000000000000000
+delete from t2;
+update t1, t3 set a=6 where a = 5;
+select * from t1 order by id;
+id a b
+1 6 21.050000000000000000000000000000
+2 6 22.050000000000000000000000000000
+3 3 3.050000000000000000000000000000
+4 6 24.050000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+u 5 11.050000000000000000000000000000
+u 5 12.050000000000000000000000000000
+u 5 14.050000000000000000000000000000
+delete from t2;
+delete from t1 where a != 3;
+select * from t1 order by id;
+id a b
+3 3 3.050000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+d 6 21.050000000000000000000000000000
+d 6 22.050000000000000000000000000000
+d 6 24.050000000000000000000000000000
+delete from t2;
+insert into t1 values (1, 1, 1.05), (2, 2, 2.05), (4, 4, 4.05);
+delete t1 from t1, t3 where a != 3;
+select * from t1 order by id;
+id a b
+3 3 3.050000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+d 1 1.050000000000000000000000000000
+d 2 2.050000000000000000000000000000
+d 4 4.050000000000000000000000000000
+delete from t2;
+insert into t1 values (4, 4, 4.05);
+insert into t1 (id, a) values (4, 1), (3, 1) on duplicate key update a= a + 1;
+select * from t1 order by id;
+id a b
+3 4 13.050000000000000000000000000000
+4 5 14.050000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+u 3 3.050000000000000000000000000000
+u 4 4.050000000000000000000000000000
+delete from t2;
+delete from t3;
+insert into t3 values (4), (3);
+insert into t1 (id, a) (select i, 1 from t3) on duplicate key update a= a + 1;
+select * from t1 order by id;
+id a b
+3 5 23.050000000000000000000000000000
+4 6 24.050000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+u 4 13.050000000000000000000000000000
+u 5 14.050000000000000000000000000000
+delete from t2;
+replace into t1 (id, a) values (4, 1), (3, 1);
+select * from t1 order by id;
+id a b
+3 1 0.000000000000000000000000000000
+4 1 0.000000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+d 5 23.050000000000000000000000000000
+d 6 24.050000000000000000000000000000
+delete from t1;
+delete from t2;
+insert into t1 values (3, 1, 1.05), (4, 1, 2.05);
+replace into t1 (id, a) (select i, 2 from t3);
+select * from t1 order by id;
+id a b
+3 2 0.000000000000000000000000000000
+4 2 0.000000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+d 1 1.050000000000000000000000000000
+d 1 2.050000000000000000000000000000
+delete from t1;
+delete from t2;
+insert into t1 values (3, 1, 1.05), (5, 2, 2.05);
+load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (id, a);
+select * from t1 order by id;
+id a b
+3 4 0.000000000000000000000000000000
+5 6 0.000000000000000000000000000000
+select * from t2 order by op, a, b;
+op a b
+d 1 1.050000000000000000000000000000
+d 2 2.050000000000000000000000000000
+drop tables t1, t2, t3;
+CREATE TABLE t1 (
+id INT NOT NULL PRIMARY KEY,
+xy INT
+) ENGINE=ndbcluster;
+INSERT INTO t1 VALUES (1, 0);
+CREATE TRIGGER t1_update AFTER UPDATE ON t1 FOR EACH ROW BEGIN REPLACE INTO t2 SELECT * FROM t1 WHERE t1.id = NEW.id; END //
+CREATE TABLE t2 (
+id INT NOT NULL PRIMARY KEY,
+xy INT
+) ENGINE=ndbcluster;
+INSERT INTO t2 VALUES (2, 0);
+CREATE TABLE t3 (id INT NOT NULL PRIMARY KEY) ENGINE=ndbcluster;
+INSERT INTO t3 VALUES (1);
+CREATE TABLE t4 LIKE t1;
+CREATE TRIGGER t4_update AFTER UPDATE ON t4 FOR EACH ROW BEGIN REPLACE INTO t5 SELECT * FROM t4 WHERE t4.id = NEW.id; END //
+CREATE TABLE t5 LIKE t2;
+UPDATE t1 SET xy = 3 WHERE id = 1;
+SELECT xy FROM t1 where id = 1;
+xy
+3
+SELECT xy FROM t2 where id = 1;
+xy
+3
+UPDATE t1 SET xy = 4 WHERE id IN (SELECT id FROM t3 WHERE id = 1);
+SELECT xy FROM t1 where id = 1;
+xy
+4
+SELECT xy FROM t2 where id = 1;
+xy
+4
+INSERT INTO t4 SELECT * FROM t1;
+INSERT INTO t5 SELECT * FROM t2;
+UPDATE t1,t4 SET t1.xy = 3, t4.xy = 3 WHERE t1.id = 1 AND t4.id = 1;
+SELECT xy FROM t1 where id = 1;
+xy
+3
+SELECT xy FROM t2 where id = 1;
+xy
+3
+SELECT xy FROM t4 where id = 1;
+xy
+3
+SELECT xy FROM t5 where id = 1;
+xy
+3
+UPDATE t1,t4 SET t1.xy = 4, t4.xy = 4 WHERE t1.id IN (SELECT id FROM t3 WHERE id = 1) AND t4.id IN (SELECT id FROM t3 WHERE id = 1);
+SELECT xy FROM t1 where id = 1;
+xy
+4
+SELECT xy FROM t2 where id = 1;
+xy
+4
+SELECT xy FROM t4 where id = 1;
+xy
+4
+SELECT xy FROM t5 where id = 1;
+xy
+4
+INSERT INTO t1 VALUES (1,0) ON DUPLICATE KEY UPDATE xy = 5;
+SELECT xy FROM t1 where id = 1;
+xy
+5
+SELECT xy FROM t2 where id = 1;
+xy
+5
+DROP TRIGGER t1_update;
+DROP TRIGGER t4_update;
+CREATE TRIGGER t1_delete AFTER DELETE ON t1 FOR EACH ROW BEGIN REPLACE INTO t2 SELECT * FROM t1 WHERE t1.id > 4; END //
+CREATE TRIGGER t4_delete AFTER DELETE ON t4 FOR EACH ROW BEGIN REPLACE INTO t5 SELECT * FROM t4 WHERE t4.id > 4; END //
+INSERT INTO t1 VALUES (5, 0),(6,0);
+INSERT INTO t2 VALUES (5, 1),(6,1);
+INSERT INTO t3 VALUES (5);
+SELECT * FROM t1 order by id;
+id xy
+1 5
+5 0
+6 0
+SELECT * FROM t2 order by id;
+id xy
+1 5
+2 0
+5 1
+6 1
+DELETE FROM t1 WHERE id IN (SELECT id FROM t3 WHERE id = 5);
+SELECT * FROM t1 order by id;
+id xy
+1 5
+6 0
+SELECT * FROM t2 order by id;
+id xy
+1 5
+2 0
+5 1
+6 0
+INSERT INTO t1 VALUES (5,0);
+UPDATE t2 SET xy = 1 WHERE id = 6;
+TRUNCATE t4;
+INSERT INTO t4 SELECT * FROM t1;
+TRUNCATE t5;
+INSERT INTO t5 SELECT * FROM t2;
+SELECT * FROM t1 order by id;
+id xy
+1 5
+5 0
+6 0
+SELECT * FROM t2 order by id;
+id xy
+1 5
+2 0
+5 1
+6 1
+SELECT * FROM t4 order by id;
+id xy
+1 5
+5 0
+6 0
+SELECT * FROM t5 order by id;
+id xy
+1 5
+2 0
+5 1
+6 1
+DELETE FROM t1,t4 USING t1,t3,t4 WHERE t1.id IN (SELECT id FROM t3 WHERE id = 5) AND t4.id IN (SELECT id FROM t3 WHERE id = 5);
+SELECT * FROM t1 order by id;
+id xy
+1 5
+6 0
+SELECT * FROM t2 order by id;
+id xy
+1 5
+2 0
+5 1
+6 0
+SELECT * FROM t4 order by id;
+id xy
+1 5
+6 0
+SELECT * FROM t5 order by id;
+id xy
+1 5
+2 0
+5 1
+6 0
+INSERT INTO t1 VALUES (5, 0);
+REPLACE INTO t2 VALUES (6,1);
+SELECT * FROM t1 order by id;
+id xy
+1 5
+5 0
+6 0
+SELECT * FROM t2 order by id;
+id xy
+1 5
+2 0
+5 1
+6 1
+REPLACE INTO t1 VALUES (5, 1);
+SELECT * FROM t1 order by id;
+id xy
+1 5
+5 1
+6 0
+SELECT * FROM t2 order by id;
+id xy
+1 5
+2 0
+5 1
+6 0
+DROP TRIGGER t1_delete;
+DROP TRIGGER t4_delete;
+DROP TABLE t1, t2, t3, t4, t5;
+End of 5.0 tests
diff --git a/mysql-test/r/ndb_types.result b/mysql-test/r/ndb_types.result
index 6620ddc7c53..ec2858d818a 100644
--- a/mysql-test/r/ndb_types.result
+++ b/mysql-test/r/ndb_types.result
@@ -3,7 +3,7 @@ CREATE TABLE t1 (
auto int(5) unsigned NOT NULL auto_increment,
string char(10) default "hello",
vstring varchar(10) default "hello",
-bin binary(7),
+bin binary(2),
vbin varbinary(7),
tiny tinyint(4) DEFAULT '0' NOT NULL ,
short smallint(6) DEFAULT '1' NOT NULL ,
@@ -12,11 +12,13 @@ long_int int(11) DEFAULT '0' NOT NULL,
longlong bigint(13) DEFAULT '0' NOT NULL,
real_float float(13,1) DEFAULT 0.0 NOT NULL,
real_double double(16,4),
+real_decimal decimal(16,4),
utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
ulong int(11) unsigned DEFAULT '0' NOT NULL,
ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
+bits bit(3),
options enum('one','two','tree') not null,
flags set('one','two','tree') not null,
date_field date,
@@ -40,32 +42,33 @@ KEY (options,flags)
set @now = now();
insert into t1
(string,vstring,bin,vbin,tiny,short,medium,long_int,longlong,
-real_float,real_double, utiny, ushort, umedium,ulong,ulonglong,
-options,flags,date_field,year_field,time_field,date_time)
+real_float,real_double, real_decimal,utiny, ushort, umedium,ulong,ulonglong,
+bits,options,flags,date_field,year_field,time_field,date_time)
values
-("aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1,1,1,1,1,
-'one','one', '1901-01-01','1901','01:01:01','1901-01-01 01:01:01');
+("aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1.1,1,1,1,1,1,
+b'001','one','one', '1901-01-01','1901','01:01:01','1901-01-01 01:01:01');
select auto,string,vstring,bin,vbin,tiny,short,medium,long_int,longlong,
-real_float,real_double, utiny, ushort, umedium,ulong,ulonglong,
-options,flags,date_field,year_field,time_field,date_time
+real_float,real_double,real_decimal,utiny,ushort,umedium,ulong,ulonglong,
+bits,options,flags,date_field,year_field,time_field,date_time
from t1;
-auto string vstring bin vbin tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong options flags date_field year_field time_field date_time
-1 aaaa aaaa ªª ªª -1 -1 -1 -1 -1 1.1 1.1000 1 00001 1 1 1 one one 1901-01-01 1901 01:01:01 1901-01-01 01:01:01
+auto string vstring bin vbin tiny short medium long_int longlong real_float real_double real_decimal utiny ushort umedium ulong ulonglong bits options flags date_field year_field time_field date_time
+1 aaaa aaaa ªª ªª -1 -1 -1 -1 -1 1.1 1.1000 1.1000 1 00001 1 1 1  one one 1901-01-01 1901 01:01:01 1901-01-01 01:01:01
select time_stamp>@now from t1;
time_stamp>@now
1
set @now = now();
update t1 set string="bbbb",vstring="bbbb",bin=0xBBBB,vbin=0xBBBB,
tiny=-2,short=-2,medium=-2,long_int=-2,longlong=-2,real_float=2.2,
-real_double=2.2,utiny=2,ushort=2,umedium=2,ulong=2,ulonglong=2,
+real_double=2.2,real_decimal=2.2,utiny=2,ushort=2,umedium=2,ulong=2,
+ulonglong=2, bits=b'010',
options='one',flags='one', date_field='1902-02-02',year_field='1902',
time_field='02:02:02',date_time='1902-02-02 02:02:02' where auto=1;
select auto,string,vstring,bin,vbin,tiny,short,medium,long_int,longlong,
-real_float,real_double, utiny, ushort, umedium,ulong,ulonglong,
-options,flags,date_field,year_field,time_field,date_time
+real_float,real_double,real_decimal,utiny,ushort,umedium,ulong,ulonglong,
+bits,options,flags,date_field,year_field,time_field,date_time
from t1;
-auto string vstring bin vbin tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong options flags date_field year_field time_field date_time
-1 bbbb bbbb »» »» -2 -2 -2 -2 -2 2.2 2.2000 2 00002 2 2 2 one one 1902-02-02 1902 02:02:02 1902-02-02 02:02:02
+auto string vstring bin vbin tiny short medium long_int longlong real_float real_double real_decimal utiny ushort umedium ulong ulonglong bits options flags date_field year_field time_field date_time
+1 bbbb bbbb »» »» -2 -2 -2 -2 -2 2.2 2.2000 2.2000 2 00002 2 2 2  one one 1902-02-02 1902 02:02:02 1902-02-02 02:02:02
select time_stamp>@now from t1;
time_stamp>@now
1
diff --git a/mysql-test/r/ndb_update.result b/mysql-test/r/ndb_update.result
index 164d1bd700c..7848a47bcef 100644
--- a/mysql-test/r/ndb_update.result
+++ b/mysql-test/r/ndb_update.result
@@ -17,8 +17,17 @@ pk1 b c
0 0 0
2 2 2
4 1 1
+UPDATE t1 set pk1 = 4 where pk1 = 2;
+ERROR 23000: Duplicate entry '4' for key 1
+UPDATE IGNORE t1 set pk1 = 4 where pk1 = 2;
+select * from t1 order by pk1;
+pk1 b c
+0 0 0
+2 2 2
+4 1 1
UPDATE t1 set pk1 = 1, c = 2 where pk1 = 4;
ERROR 23000: Duplicate entry '' for key 0
+UPDATE IGNORE t1 set pk1 = 1, c = 2 where pk1 = 4;
select * from t1 order by pk1;
pk1 b c
0 0 0
@@ -30,4 +39,12 @@ pk1 b c
10 0 0
12 2 2
14 1 1
+create unique index ib on t1(b);
+update t1 set c = 4 where pk1 = 12;
+update ignore t1 set b = 55 where pk1 = 14;
+select * from t1 order by pk1;
+pk1 b c
+10 0 0
+12 2 4
+14 55 1
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/r/negation_elimination.result b/mysql-test/r/negation_elimination.result
index 9193a125cd1..a7dbe0d9052 100644
--- a/mysql-test/r/negation_elimination.result
+++ b/mysql-test/r/negation_elimination.result
@@ -387,5 +387,5 @@ explain extended select a, not(not(a)), not(a <= 2 and not(a)), not(a not like "
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL a 5 NULL 5 Using where; Using index
Warnings:
-Note 1003 select test.t1.a AS `a`,(test.t1.a <> 0) AS `not(not(a))`,((test.t1.a > 2) or test.t1.a) AS `not(a <= 2 and not(a))`,(test.t1.a like _latin1'1') AS `not(a not like "1")`,(test.t1.a in (1,2)) AS `not (a not in (1,2))`,(test.t1.a = 2) AS `not(a != 2)` from test.t1 where test.t1.a having test.t1.a
+Note 1003 select `test`.`t1`.`a` AS `a`,(`test`.`t1`.`a` <> 0) AS `not(not(a))`,((`test`.`t1`.`a` > 2) or `test`.`t1`.`a`) AS `not(a <= 2 and not(a))`,(`test`.`t1`.`a` like _latin1'1') AS `not(a not like "1")`,(`test`.`t1`.`a` in (1,2)) AS `not (a not in (1,2))`,(`test`.`t1`.`a` = 2) AS `not(a != 2)` from `test`.`t1` where `test`.`t1`.`a` having `test`.`t1`.`a`
drop table t1;
diff --git a/mysql-test/r/not_as_root.require b/mysql-test/r/not_as_root.require
new file mode 100644
index 00000000000..d9ea5244efc
--- /dev/null
+++ b/mysql-test/r/not_as_root.require
@@ -0,0 +1,2 @@
+running_as_root
+NO
diff --git a/mysql-test/r/not_embedded_server.result b/mysql-test/r/not_embedded_server.result
index 082ebe72ba4..e471b5a3afa 100644
--- a/mysql-test/r/not_embedded_server.result
+++ b/mysql-test/r/not_embedded_server.result
@@ -1,5 +1,5 @@
prepare stmt1 from ' show full processlist ';
execute stmt1;
Id User Host db Command Time State Info
-number root localhost test Execute time NULL show full processlist
+number root localhost test Query time NULL show full processlist
deallocate prepare stmt1;
diff --git a/mysql-test/r/null.result b/mysql-test/r/null.result
index 4d90aac0e68..090f41baec3 100644
--- a/mysql-test/r/null.result
+++ b/mysql-test/r/null.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1, t2;
select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null;
NULL NULL isnull(null) isnull(1/0) isnull(1/0 = null) ifnull(null,1) ifnull(null,"TRUE") ifnull("TRUE","ERROR") 1/0 is null 1 is not null
NULL NULL 1 1 1 1 TRUE TRUE 1 1
@@ -88,7 +88,7 @@ b ifnull(t2.b,"this is null")
NULL this is null
NULL this is null
drop table t1;
-CREATE TABLE t1 (a varchar(16) NOT NULL, b smallint(6) NOT NULL, c datetime NOT NULL, d smallint(6) NOT NULL);
+CREATE TABLE t1 (a varchar(16) NOT NULL default '', b smallint(6) NOT NULL default 0, c datetime NOT NULL default '0000-00-00 00:00:00', d smallint(6) NOT NULL default 0);
INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55";
Warnings:
Warning 1265 Data truncated for column 'd' at row 1
@@ -97,39 +97,39 @@ Warnings:
Warning 1265 Data truncated for column 'd' at row 1
UPDATE t1 SET d=NULL;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'd' at row 1
+Warning 1048 Column 'd' cannot be null
INSERT INTO t1 (a) values (null);
ERROR 23000: Column 'a' cannot be null
INSERT INTO t1 (a) values (1/null);
ERROR 23000: Column 'a' cannot be null
INSERT INTO t1 (a) values (null),(null);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 2
+Warning 1048 Column 'a' cannot be null
+Warning 1048 Column 'a' cannot be null
INSERT INTO t1 (b) values (null);
ERROR 23000: Column 'b' cannot be null
INSERT INTO t1 (b) values (1/null);
ERROR 23000: Column 'b' cannot be null
INSERT INTO t1 (b) values (null),(null);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'b' at row 1
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'b' at row 2
+Warning 1048 Column 'b' cannot be null
+Warning 1048 Column 'b' cannot be null
INSERT INTO t1 (c) values (null);
ERROR 23000: Column 'c' cannot be null
INSERT INTO t1 (c) values (1/null);
ERROR 23000: Column 'c' cannot be null
INSERT INTO t1 (c) values (null),(null);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'c' at row 1
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'c' at row 2
+Warning 1048 Column 'c' cannot be null
+Warning 1048 Column 'c' cannot be null
INSERT INTO t1 (d) values (null);
ERROR 23000: Column 'd' cannot be null
INSERT INTO t1 (d) values (1/null);
ERROR 23000: Column 'd' cannot be null
INSERT INTO t1 (d) values (null),(null);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'd' at row 1
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'd' at row 2
+Warning 1048 Column 'd' cannot be null
+Warning 1048 Column 'd' cannot be null
select * from t1;
a b c d
0 0000-00-00 00:00:00 0
@@ -167,13 +167,22 @@ insert into t1 select i*2 from t1;
insert into t1 select i*2 from t1;
insert into t1 select i*2 from t1;
insert into t1 select i*2 from t1;
+insert into t1 values(null);
explain select * from t1 where i=2 or i is null;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref_or_null i i 5 const 10 Using where; Using index
+1 SIMPLE t1 ref_or_null i i 5 const 9 Using where; Using index
+select count(*) from t1 where i=2 or i is null;
+count(*)
+10
alter table t1 change i i int not null;
+Warnings:
+Warning 1265 Data truncated for column 'i' at row 513
explain select * from t1 where i=2 or i is null;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref i i 4 const 7 Using where; Using index
+1 SIMPLE t1 ref i i 4 const 7 Using index
+select count(*) from t1 where i=2 or i is null;
+count(*)
+9
drop table t1;
set names latin2;
create table t1 select
@@ -227,10 +236,10 @@ t1 CREATE TABLE `t1` (
`c06` varchar(6) character set latin2 default NULL,
`c07` varchar(6) character set latin2 default NULL,
`c08` varchar(6) character set latin2 default NULL,
- `c09` varchar(6) character set latin2 NOT NULL default '',
- `c10` varchar(6) character set latin2 NOT NULL default '',
- `c11` varchar(6) character set latin2 NOT NULL default '',
- `c12` varchar(6) character set latin2 NOT NULL default '',
+ `c09` varchar(6) character set latin2 default NULL,
+ `c10` varchar(6) character set latin2 default NULL,
+ `c11` varchar(6) character set latin2 default NULL,
+ `c12` varchar(6) character set latin2 default NULL,
`c13` varchar(6) character set latin2 default NULL,
`c14` char(0) character set latin2 default NULL,
`c15` char(0) character set latin2 default NULL,
@@ -246,14 +255,14 @@ t1 CREATE TABLE `t1` (
`c25` varchar(12) character set latin2 default NULL,
`c26` varchar(7) character set latin2 default NULL,
`c27` varchar(7) character set latin2 default NULL,
- `c29` longtext character set latin2,
- `c30` longtext character set latin2,
+ `c29` varchar(381) character set latin2 default NULL,
+ `c30` varchar(317) character set latin2 default NULL,
`c31` varchar(192) character set latin2 default NULL,
`c32` char(0) character set latin2 default NULL,
- `c33` char(3) character set latin2 default NULL,
- `c34` char(3) character set latin2 default NULL,
- `c35` char(3) character set latin2 default NULL,
- `c36` char(3) character set latin2 default NULL,
+ `c33` varchar(3) character set latin2 default NULL,
+ `c34` varchar(3) character set latin2 default NULL,
+ `c35` varchar(3) character set latin2 default NULL,
+ `c36` varchar(3) character set latin2 default NULL,
`c37` varchar(10) character set latin2 default NULL,
`c38` varchar(10) character set latin2 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
@@ -311,3 +320,26 @@ bug19145c CREATE TABLE `bug19145c` (
drop table bug19145a;
drop table bug19145b;
drop table bug19145c;
+# End of 4.1 tests
+#
+# Bug #31471: decimal_bin_size: Assertion `scale >= 0 &&
+# precision > 0 && scale <= precision'
+#
+CREATE TABLE t1 (a DECIMAL (1, 0) ZEROFILL, b DECIMAL (1, 0) ZEROFILL);
+INSERT INTO t1 (a, b) VALUES (0, 0);
+CREATE TABLE t2 SELECT IFNULL(a, b) FROM t1;
+DESCRIBE t2;
+Field Type Null Key Default Extra
+IFNULL(a, b) decimal(1,0) unsigned YES NULL
+DROP TABLE t2;
+CREATE TABLE t2 SELECT IFNULL(a, NULL) FROM t1;
+DESCRIBE t2;
+Field Type Null Key Default Extra
+IFNULL(a, NULL) decimal(1,0) YES NULL
+DROP TABLE t2;
+CREATE TABLE t2 SELECT IFNULL(NULL, b) FROM t1;
+DESCRIBE t2;
+Field Type Null Key Default Extra
+IFNULL(NULL, b) decimal(1,0) YES NULL
+DROP TABLE t1, t2;
+# End of 5.0 tests
diff --git a/mysql-test/r/null_key.result b/mysql-test/r/null_key.result
index 36d3e005828..8a440284c53 100644
--- a/mysql-test/r/null_key.result
+++ b/mysql-test/r/null_key.result
@@ -30,7 +30,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref a,b a 5 const 3 Using where; Using index
explain select * from t1 where a is null and b=9 or a is null and b=7 limit 3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a,b a 9 NULL 2 Using where; Using index
+1 SIMPLE t1 range a,b a 9 NULL 3 Using where; Using index
explain select * from t1 where a > 1 and a < 3 limit 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range a a 5 NULL 1 Using where; Using index
@@ -66,6 +66,11 @@ a b
NULL 7
NULL 9
NULL 9
+select * from t1 where a > 1 and a < 3 limit 1;
+a b
+2 2
+select * from t1 where a > 8 and a < 9;
+a b
create table t2 like t1;
insert into t2 select * from t1;
alter table t1 modify b blob not null, add c int not null, drop key a, add unique key (a,b(20),c), drop key b, add key (b(10));
@@ -153,12 +158,12 @@ a b
7 NULL
explain select * from t1 where (a = 7 or a is null) and (b=7 or b is null);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a,b a 10 NULL 3 Using where; Using index
+1 SIMPLE t1 ref_or_null a,b a 5 const 4 Using where; Using index
select * from t1 where (a = 7 or a is null) and (b=7 or b is null);
a b
-NULL 7
7 NULL
7 7
+NULL 7
explain select * from t1 where (a = 7 or a is null) and (a = 7 or a is null);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref_or_null a a 5 const 5 Using where; Using index
@@ -253,7 +258,7 @@ INSERT INTO t1 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4
INSERT INTO t2 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL);
explain select id from t1 where uniq_id is null;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref idx1 idx1 5 const 1 Using where
+1 SIMPLE t1 ref idx1 idx1 5 const 5 Using where
explain select id from t1 where uniq_id =1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const idx1 idx1 5 const 1
@@ -337,7 +342,7 @@ index (id2)
);
insert into t1 values(null,null),(1,1);
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'id2' at row 1
+Warning 1048 Column 'id2' cannot be null
select * from t1;
id id2
NULL 0
diff --git a/mysql-test/r/odbc.result b/mysql-test/r/odbc.result
index 30d839077f3..5629d3dab33 100644
--- a/mysql-test/r/odbc.result
+++ b/mysql-test/r/odbc.result
@@ -12,7 +12,7 @@ select * from t1 where a is null;
a b
explain select * from t1 where b is null;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
drop table t1;
CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY);
INSERT INTO t1 VALUES (NULL);
diff --git a/mysql-test/r/olap.result b/mysql-test/r/olap.result
index 0300fc1759e..a1d66b11f58 100644
--- a/mysql-test/r/olap.result
+++ b/mysql-test/r/olap.result
@@ -1,4 +1,9 @@
drop table if exists t1,t2;
+set @sav_dpi= @@div_precision_increment;
+set div_precision_increment= 5;
+show variables like 'div_precision_increment';
+Variable_name Value
+div_precision_increment 5
create table t1 (product varchar(32), country_id int not null, year int, profit int);
insert into t1 values ( 'Computer', 2,2000, 1200),
( 'TV', 1, 1999, 150),
@@ -40,11 +45,11 @@ TV 600
NULL 7785
select product, sum(profit),avg(profit) from t1 group by product with rollup;
product sum(profit) avg(profit)
-Calculator 275 68.7500
-Computer 6900 1380.0000
-Phone 10 10.0000
-TV 600 120.0000
-NULL 7785 519.0000
+Calculator 275 68.75000
+Computer 6900 1380.00000
+Phone 10 10.00000
+TV 600 120.00000
+NULL 7785 519.00000
select product, country_id , year, sum(profit) from t1 group by product, country_id, year;
product country_id year sum(profit)
Calculator 1 1999 50
@@ -85,7 +90,7 @@ explain extended select product, country_id , year, sum(profit) from t1 group by
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
Warnings:
-Note 1003 select test.t1.product AS `product`,test.t1.country_id AS `country_id`,test.t1.year AS `year`,sum(test.t1.profit) AS `sum(profit)` from test.t1 group by test.t1.product,test.t1.country_id,test.t1.year with rollup
+Note 1003 select `test`.`t1`.`product` AS `product`,`test`.`t1`.`country_id` AS `country_id`,`test`.`t1`.`year` AS `year`,sum(`test`.`t1`.`profit`) AS `sum(profit)` from `test`.`t1` group by `test`.`t1`.`product`,`test`.`t1`.`country_id`,`test`.`t1`.`year` with rollup
select product, country_id , sum(profit) from t1 group by product desc, country_id with rollup;
product country_id sum(profit)
TV 1 400
@@ -164,48 +169,48 @@ product country_id year sum(profit)
NULL NULL NULL 7785
select concat(product,':',country_id) as 'prod', concat(":",year,":") as 'year',1+1, sum(profit)/count(*) from t1 group by 1,2 with rollup;
prod year 1+1 sum(profit)/count(*)
-Calculator:1 :1999: 2 50.00
-Calculator:1 :2000: 2 75.00
-Calculator:1 NULL 2 62.50
-Calculator:2 :2000: 2 75.00
-Calculator:2 NULL 2 75.00
-Computer:1 :1999: 2 1350.00
-Computer:1 :2000: 2 1500.00
-Computer:1 NULL 2 1400.00
-Computer:2 :2000: 2 1350.00
-Computer:2 NULL 2 1350.00
-Phone:3 :2003: 2 10.00
-Phone:3 NULL 2 10.00
-TV:1 :1999: 2 125.00
-TV:1 :2000: 2 150.00
-TV:1 NULL 2 133.33
-TV:2 :2000: 2 100.00
-TV:2 NULL 2 100.00
-NULL NULL 2 519.00
+Calculator:1 :1999: 2 50.00000
+Calculator:1 :2000: 2 75.00000
+Calculator:1 NULL 2 62.50000
+Calculator:2 :2000: 2 75.00000
+Calculator:2 NULL 2 75.00000
+Computer:1 :1999: 2 1350.00000
+Computer:1 :2000: 2 1500.00000
+Computer:1 NULL 2 1400.00000
+Computer:2 :2000: 2 1350.00000
+Computer:2 NULL 2 1350.00000
+Phone:3 :2003: 2 10.00000
+Phone:3 NULL 2 10.00000
+TV:1 :1999: 2 125.00000
+TV:1 :2000: 2 150.00000
+TV:1 NULL 2 133.33333
+TV:2 :2000: 2 100.00000
+TV:2 NULL 2 100.00000
+NULL NULL 2 519.00000
select product, sum(profit)/count(*) from t1 group by product with rollup;
product sum(profit)/count(*)
-Calculator 68.75
-Computer 1380.00
-Phone 10.00
-TV 120.00
-NULL 519.00
+Calculator 68.75000
+Computer 1380.00000
+Phone 10.00000
+TV 120.00000
+NULL 519.00000
select left(product,4) as prod, sum(profit)/count(*) from t1 group by prod with rollup;
prod sum(profit)/count(*)
-Calc 68.75
-Comp 1380.00
-Phon 10.00
-TV 120.00
-NULL 519.00
+Calc 68.75000
+Comp 1380.00000
+Phon 10.00000
+TV 120.00000
+NULL 519.00000
select concat(product,':',country_id), 1+1, sum(profit)/count(*) from t1 group by concat(product,':',country_id) with rollup;
concat(product,':',country_id) 1+1 sum(profit)/count(*)
-Calculator:1 2 62.50
-Calculator:2 2 75.00
-Computer:1 2 1400.00
-Computer:2 2 1350.00
-Phone:3 2 10.00
-TV:1 2 133.33
-TV:2 2 100.00
-NULL 2 519.00
+Calculator:1 2 62.50000
+Calculator:2 2 75.00000
+Computer:1 2 1400.00000
+Computer:2 2 1350.00000
+Phone:3 2 10.00000
+TV:1 2 133.33333
+TV:2 2 100.00000
+NULL 2 519.00000
select product, country , year, sum(profit) from t1,t2 where t1.country_id=t2.country_id group by product, country, year with rollup;
product country year sum(profit)
Calculator India 2000 150
@@ -244,11 +249,11 @@ select product, country_id , year, sum(profit) from t1 group by product, country
product country_id year sum(profit)
select concat(':',product,':'), sum(profit),avg(profit) from t1 group by product with rollup;
concat(':',product,':') sum(profit) avg(profit)
-:Calculator: 275 68.7500
-:Computer: 6900 1380.0000
-:Phone: 10 10.0000
-:TV: 600 120.0000
-NULL 7785 519.0000
+:Calculator: 275 68.75000
+:Computer: 6900 1380.00000
+:Phone: 10 10.00000
+:TV: 600 120.00000
+NULL 7785 519.00000
select product, country_id , year, sum(profit) from t1 group by product, country_id, year with cube;
ERROR 42000: This version of MySQL doesn't yet support 'CUBE'
explain select product, country_id , year, sum(profit) from t1 group by product, country_id, year with cube;
@@ -378,6 +383,51 @@ a sum(b)
2 6
4 4
NULL 14
+SELECT b, a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP;
+b a sum(b)
+4 1 4
+NULL 1 4
+1 2 2
+2 2 4
+NULL 2 6
+1 4 4
+NULL 4 4
+NULL NULL 14
+SELECT DISTINCT b,a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP;
+b a sum(b)
+4 1 4
+NULL 1 4
+1 2 2
+2 2 4
+NULL 2 6
+1 4 4
+NULL 4 4
+NULL NULL 14
+ALTER TABLE t1 ADD COLUMN c INT;
+SELECT a,b,sum(c) FROM t1 GROUP BY a,b,c WITH ROLLUP;
+a b sum(c)
+1 4 NULL
+1 4 NULL
+1 NULL NULL
+2 1 NULL
+2 1 NULL
+2 2 NULL
+2 2 NULL
+2 NULL NULL
+4 1 NULL
+4 1 NULL
+4 NULL NULL
+NULL NULL NULL
+SELECT distinct a,b,sum(c) FROM t1 GROUP BY a,b,c WITH ROLLUP;
+a b sum(c)
+1 4 NULL
+1 NULL NULL
+2 1 NULL
+2 2 NULL
+2 NULL NULL
+4 1 NULL
+4 NULL NULL
+NULL NULL NULL
DROP TABLE t1;
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 VALUES
@@ -405,6 +455,7 @@ a m
2 2
NULL 3
DROP TABLE t1;
+set div_precision_increment= @sav_dpi;
CREATE TABLE t1 (a int(11));
INSERT INTO t1 VALUES (1),(2);
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT a FROM t1 UNION select 2) d
@@ -617,3 +668,61 @@ x 3 30
x NULL 150
NULL NULL 150
DROP TABLE t1;
+CREATE TABLE t1(id int, type char(1));
+INSERT INTO t1 VALUES
+(1,"A"),(2,"C"),(3,"A"),(4,"A"),(5,"B"),
+(6,"B"),(7,"A"),(8,"C"),(9,"A"),(10,"C");
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT type FROM t1 GROUP BY type WITH ROLLUP;
+type
+A
+B
+C
+NULL
+SELECT type FROM v1 GROUP BY type WITH ROLLUP;
+type
+A
+B
+C
+NULL
+EXPLAIN SELECT type FROM v1 GROUP BY type WITH ROLLUP;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using filesort
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (a int(11) NOT NULL);
+INSERT INTO t1 VALUES (1),(2);
+CREATE VIEW v1 AS
+SELECT a, LENGTH(a), COUNT(*) FROM t1 GROUP BY a WITH ROLLUP;
+DESC v1;
+Field Type Null Key Default Extra
+a bigint(11) YES NULL
+LENGTH(a) bigint(10) YES NULL
+COUNT(*) bigint(21) NO 0
+SELECT * FROM v1;
+a LENGTH(a) COUNT(*)
+1 1 1
+2 1 1
+NULL NULL 2
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (a int, KEY (a));
+INSERT INTO t1 VALUES (3), (1), (4), (1), (3), (1), (1);
+SELECT * FROM (SELECT a, SUM(a) FROM t1 GROUP BY a WITH ROLLUP) as t;
+a SUM(a)
+1 4
+3 6
+4 4
+NULL 14
+DROP TABLE t1;
+#
+# Bug#31095: Unexpected NULL constant caused server crash.
+#
+create table t1(a int);
+insert into t1 values (1),(2),(3);
+select count(a) from t1 group by null with rollup;
+count(a)
+3
+3
+drop table t1;
+##############################################################
diff --git a/mysql-test/r/openssl_1.result b/mysql-test/r/openssl_1.result
index f7cb17a1a74..9c6c29eea47 100644
--- a/mysql-test/r/openssl_1.result
+++ b/mysql-test/r/openssl_1.result
@@ -3,30 +3,170 @@ create table t1(f1 int);
insert into t1 values (5);
grant select on test.* to ssl_user1@localhost require SSL;
grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
-grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com";
-grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com";
+grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com";
+grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
+grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
flush privileges;
+connect(localhost,ssl_user5,,test,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'ssl_user5'@'localhost' (using password: NO)
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
select * from t1;
f1
5
delete from t1;
-ERROR 42000: Access denied for user 'ssl_user1'@'localhost' to database 'test'
+ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table 't1'
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
select * from t1;
f1
5
delete from t1;
-ERROR 42000: Access denied for user 'ssl_user2'@'localhost' to database 'test'
+ERROR 42000: DELETE command denied to user 'ssl_user2'@'localhost' for table 't1'
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
select * from t1;
f1
5
delete from t1;
-ERROR 42000: Access denied for user 'ssl_user3'@'localhost' to database 'test'
+ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table 't1'
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
select * from t1;
f1
5
delete from t1;
-ERROR 42000: Access denied for user 'ssl_user4'@'localhost' to database 'test'
-delete from mysql.user where user='ssl_user%';
-delete from mysql.db where user='ssl_user%';
-flush privileges;
+ERROR 42000: DELETE command denied to user 'ssl_user4'@'localhost' for table 't1'
+drop user ssl_user1@localhost, ssl_user2@localhost,
+ssl_user3@localhost, ssl_user4@localhost, ssl_user5@localhost;
drop table t1;
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+SSL error: Unable to get private key from ''
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+SSL error: Unable to get certificate from ''
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher AES128-SHA
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher AES128-SHA
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+CREATE TABLE t1(a int);
+INSERT INTO t1 VALUES (1), (2);
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+);
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+);
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+CREATE TABLE `t1` (
+ `a` int(11) default NULL
+);
+SET character_set_client = @saved_cs_client;
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+SSL error: Unable to get private key from 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+mysqldump: Got error: 2026: SSL connection error when trying to connect
+DROP TABLE t1;
diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result
index 79b163dc1ee..eedc2fa476b 100644
--- a/mysql-test/r/order_by.result
+++ b/mysql-test/r/order_by.result
@@ -29,14 +29,14 @@ INSERT INTO t2 VALUES (7,'Liste des t2','t2_liste_form.phtml',51060,'link.gif');
INSERT INTO t2 VALUES (8,'Consulter les soumissions','consulter_soumissions.phtml',200,'link.gif');
INSERT INTO t2 VALUES (9,'Ajouter un type de materiel','typeMateriel_ajoute_form.phtml',51000,'link.gif');
INSERT INTO t2 VALUES (10,'Lister/modifier un type de materiel','typeMateriel_liste_form.phtml',51010,'link.gif');
-INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
+INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
INSERT INTO t2 VALUES (4,'Modifier des clients','en_construction.html',40010,'link.gif');
INSERT INTO t2 VALUES (5,'Effacer des clients','en_construction.html',40020,'link.gif');
INSERT INTO t2 VALUES (6,'Ajouter un service','t2_ajoute_form.phtml',51050,'link.gif');
select t1.id,t1.idservice,t2.ordre,t2.description from t1, t2 where t1.id = 2 and t1.idservice = t2.id order by t2.ordre;
id idservice ordre description
2 1 10 Emettre un appel d'offres
-2 3 40000 Créer une fiche de client
+2 3 40000 Créer une fiche de client
2 4 40010 Modifier des clients
2 5 40020 Effacer des clients
2 6 51050 Ajouter un service
@@ -189,6 +189,15 @@ a b if(b = 1,i,if(b = 2,v,''))
4 2 453 Boardwalk
SELECT a,b,if(b = 1,i,if(b = 2,v,''))
FROM t1
+LEFT JOIN t2 ON t1.c = t2.c
+LEFT JOIN t3 ON t3.c = t1.c;
+a b if(b = 1,i,if(b = 2,v,''))
+1 1 50
+2 1 25
+3 2 123 Park Place
+4 2 453 Boardwalk
+SELECT a,b,if(b = 1,i,if(b = 2,v,''))
+FROM t1
LEFT JOIN t2 USING(c)
LEFT JOIN t3 ON t3.c = t1.c
ORDER BY a;
@@ -197,6 +206,16 @@ a b if(b = 1,i,if(b = 2,v,''))
2 1 25
3 2 123 Park Place
4 2 453 Boardwalk
+SELECT a,b,if(b = 1,i,if(b = 2,v,''))
+FROM t1
+LEFT JOIN t2 ON t1.c = t2.c
+LEFT JOIN t3 ON t3.c = t1.c
+ORDER BY a;
+a b if(b = 1,i,if(b = 2,v,''))
+1 1 50
+2 1 25
+3 2 123 Park Place
+4 2 453 Boardwalk
drop table t1,t2,t3;
create table t1 (ID int not null primary key, TransactionID int not null);
insert into t1 (ID, TransactionID) values (1, 87), (2, 89), (3, 92), (4, 94), (5, 486), (6, 490), (7, 753), (9, 828), (10, 832), (11, 834), (12, 840);
@@ -257,10 +276,12 @@ favo_tijdschrift varchar(50) NOT NULL default '',
favo_tv varchar(50) NOT NULL default '',
favo_eten varchar(50) NOT NULL default '',
favo_muziek varchar(30) NOT NULL default '',
-info text NOT NULL,
+info text NOT NULL default '',
ipnr varchar(30) NOT NULL default '',
PRIMARY KEY (member_id)
) ENGINE=MyISAM PACK_KEYS=1;
+Warnings:
+Warning 1101 BLOB/TEXT column 'info' can't have a default value
insert into t1 (member_id) values (1),(2),(3);
select member_id, nickname, voornaam FROM t1
ORDER by lastchange_datum DESC LIMIT 2;
@@ -272,7 +293,7 @@ create table t1 (a int not null, b int, c varchar(10), key (a, b, c));
insert into t1 values (1, NULL, NULL), (1, NULL, 'b'), (1, 1, NULL), (1, 1, 'b'), (1, 1, 'b'), (2, 1, 'a'), (2, 1, 'b'), (2, 2, 'a'), (2, 2, 'b'), (2, 3, 'c'),(1,3,'b');
explain select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a a 20 NULL 2 Using where; Using index
+1 SIMPLE t1 index a a 22 NULL 11 Using where; Using index
select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc;
a b c
1 NULL b
@@ -348,7 +369,7 @@ Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'c' at row 3
explain select * from t1 order by a, b, c;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL a 18 NULL 11 Using index
+1 SIMPLE t1 index NULL a 20 NULL 11 Using index
select * from t1 order by a, b, c;
a b c
1 0
@@ -364,7 +385,7 @@ a b c
2 3 c
explain select * from t1 order by a desc, b desc, c desc;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL a 18 NULL 11 Using index
+1 SIMPLE t1 index NULL a 20 NULL 11 Using index
select * from t1 order by a desc, b desc, c desc;
a b c
2 3 c
@@ -380,7 +401,7 @@ a b c
1 0
explain select * from t1 where (a = 1 and b = 1 and c = 'b') or (a > 2) order by a desc;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range a a 18 NULL 3 Using where; Using index
+1 SIMPLE t1 range a a 20 NULL 3 Using where; Using index
select * from t1 where (a = 1 and b = 1 and c = 'b') or (a > 2) order by a desc;
a b c
1 1 b
@@ -526,9 +547,15 @@ INSERT INTO t2 (numeropost,pseudo) VALUES (1,'joce'),(1,'bug');
SELECT titre,t1.numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur dest
test 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bug
+SELECT titre,numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
+titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur dest
+test 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bug
SELECT titre,t1.numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur dest
test 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bug
+SELECT titre,numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
+titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur dest
+test 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bug
drop table t1,t2;
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 VALUES (1, 2);
@@ -574,7 +601,7 @@ KEY StringField (FieldKey,StringVal(32))
INSERT INTO t1 VALUES ('0',3,'0'),('0',2,'1'),('0',1,'2'),('1',2,'1'),('1',1,'3'), ('1',0,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('3',2,'1'),('3',1,'2'),('3','3','3');
EXPLAIN SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref FieldKey,LongField,StringField LongField 36 const 3 Using where
+1 SIMPLE t1 ref FieldKey,LongField,StringField LongField 38 const 3 Using where
SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
FieldKey LongVal StringVal
1 0 2
@@ -582,7 +609,7 @@ FieldKey LongVal StringVal
1 2 1
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range FieldKey,LongField,StringField FieldKey 36 NULL 4 Using where; Using filesort
+1 SIMPLE t1 range FieldKey,LongField,StringField FieldKey 38 NULL 4 Using where; Using filesort
SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;
FieldKey LongVal StringVal
3 1 2
@@ -590,7 +617,7 @@ FieldKey LongVal StringVal
3 3 3
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range FieldKey,LongField,StringField LongField 36 NULL 4 Using where
+1 SIMPLE t1 range FieldKey,LongField,StringField LongField 38 NULL 4 Using where
SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal;
FieldKey LongVal StringVal
3 1 2
@@ -757,7 +784,7 @@ insert into t1 (`sid`, `wnid`) values
('25295','02071491000'),('25296','02071491000'),('25297','02071499000');
explain select * from t1 where wnid like '0101%' order by wnid;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range wnid14,wnid wnid 11 NULL 10 Using where
+1 SIMPLE t1 range wnid14,wnid wnid 13 NULL 10 Using where
select * from t1 where wnid like '0101%' order by wnid;
sid wnid
10100 01019000000
@@ -963,3 +990,77 @@ a IF(a IN (1,2), a, a+10)
1 1
2 2
DROP TABLE t1;
+create table t1 (a int not null, b int not null, c int not null);
+insert t1 values (1,1,1),(1,1,2),(1,2,1);
+select a, b from t1 group by a, b order by sum(c);
+a b
+1 2
+1 1
+drop table t1;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
+explain SELECT t1.b as a, t2.b as c FROM
+t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)
+ORDER BY c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
+1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
+SELECT t2.b as c FROM
+t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)
+ORDER BY c;
+c
+NULL
+NULL
+2
+explain SELECT t1.b as a, t2.b as c FROM
+t1 JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)
+ORDER BY c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
+CREATE TABLE t2 LIKE t1;
+INSERT INTO t2 SELECT * from t1;
+CREATE TABLE t3 LIKE t1;
+INSERT INTO t3 SELECT * from t1;
+CREATE TABLE t4 LIKE t1;
+INSERT INTO t4 SELECT * from t1;
+INSERT INTO t1 values (0,0),(4,4);
+SELECT t2.b FROM t1 LEFT JOIN (t2, t3 LEFT JOIN t4 ON t3.a=t4.a)
+ON (t1.a=t2.a AND t1.b=t3.b) order by t2.b;
+b
+NULL
+NULL
+1
+2
+3
+DROP TABLE t1,t2,t3,t4;
+create table t1 (a int, b int, c int);
+insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9);
+select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc;
+a ratio
+1 0.5000
+19 1.3333
+9 2.6667
+drop table t1;
+CREATE TABLE t1 (a INT UNSIGNED NOT NULL, b TIME);
+INSERT INTO t1 (a) VALUES (100000), (0), (100), (1000000),(10000), (1000), (10);
+UPDATE t1 SET b = SEC_TO_TIME(a);
+SELECT a, b FROM t1 ORDER BY b DESC;
+a b
+1000000 277:46:40
+100000 27:46:40
+10000 02:46:40
+1000 00:16:40
+100 00:01:40
+10 00:00:10
+0 00:00:00
+SELECT a, b FROM t1 ORDER BY SEC_TO_TIME(a) DESC;
+a b
+1000000 277:46:40
+100000 27:46:40
+10000 02:46:40
+1000 00:16:40
+100 00:01:40
+10 00:00:10
+0 00:00:00
+DROP TABLE t1;
diff --git a/mysql-test/r/outfile.result b/mysql-test/r/outfile.result
index bcafae831d5..8503df545d2 100644
--- a/mysql-test/r/outfile.result
+++ b/mysql-test/r/outfile.result
Binary files differ
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/perror.result b/mysql-test/r/perror.result
new file mode 100644
index 00000000000..4946523bc42
--- /dev/null
+++ b/mysql-test/r/perror.result
@@ -0,0 +1 @@
+Illegal error code: 10000
diff --git a/mysql-test/r/preload.result b/mysql-test/r/preload.result
index 18df4bd9e7f..24a6e594a14 100644
--- a/mysql-test/r/preload.result
+++ b/mysql-test/r/preload.result
@@ -55,15 +55,15 @@ count(*)
4181
show status like "key_read%";
Variable_name Value
-Key_read_requests 217
-Key_reads 45
+Key_read_requests 294
+Key_reads 60
select count(*) from t1 where b = 'test1';
count(*)
4181
show status like "key_read%";
Variable_name Value
-Key_read_requests 434
-Key_reads 45
+Key_read_requests 588
+Key_reads 60
flush tables;
flush status;
select @@preload_buffer_size;
@@ -74,15 +74,15 @@ Table Op Msg_type Msg_text
test.t1 preload_keys status OK
show status like "key_read%";
Variable_name Value
-Key_read_requests 581
-Key_reads 581
+Key_read_requests 774
+Key_reads 774
select count(*) from t1 where b = 'test1';
count(*)
4181
show status like "key_read%";
Variable_name Value
-Key_read_requests 798
-Key_reads 581
+Key_read_requests 1068
+Key_reads 774
flush tables;
flush status;
show status like "key_read%";
@@ -98,15 +98,15 @@ Table Op Msg_type Msg_text
test.t1 preload_keys status OK
show status like "key_read%";
Variable_name Value
-Key_read_requests 10
-Key_reads 10
+Key_read_requests 17
+Key_reads 17
select count(*) from t1 where b = 'test1';
count(*)
4181
show status like "key_read%";
Variable_name Value
-Key_read_requests 227
-Key_reads 52
+Key_read_requests 311
+Key_reads 75
flush tables;
flush status;
show status like "key_read%";
@@ -123,8 +123,8 @@ test.t1 preload_keys status OK
test.t2 preload_keys status OK
show status like "key_read%";
Variable_name Value
-Key_read_requests 587
-Key_reads 587
+Key_read_requests 785
+Key_reads 785
select count(*) from t1 where b = 'test1';
count(*)
4181
@@ -133,8 +133,8 @@ count(*)
2584
show status like "key_read%";
Variable_name Value
-Key_read_requests 938
-Key_reads 613
+Key_read_requests 1266
+Key_reads 821
flush tables;
flush status;
show status like "key_read%";
@@ -143,12 +143,13 @@ Key_read_requests 0
Key_reads 0
load index into cache t3, t2 key (primary,b) ;
Table Op Msg_type Msg_text
-test.t3 preload_keys error Table 'test.t3' doesn't exist
+test.t3 preload_keys Error Table 'test.t3' doesn't exist
+test.t3 preload_keys error Corrupt
test.t2 preload_keys status OK
show status like "key_read%";
Variable_name Value
-Key_read_requests 355
-Key_reads 355
+Key_read_requests 478
+Key_reads 478
flush tables;
flush status;
show status like "key_read%";
@@ -157,8 +158,9 @@ Key_read_requests 0
Key_reads 0
load index into cache t3 key (b), t2 key (c) ;
Table Op Msg_type Msg_text
-test.t3 preload_keys error Table 'test.t3' doesn't exist
-test.t2 preload_keys error Key 'c' doesn't exist in table 't2'
+test.t3 preload_keys Error Table 'test.t3' doesn't exist
+test.t3 preload_keys error Corrupt
+test.t2 preload_keys Error Key 'c' doesn't exist in table 't2'
test.t2 preload_keys status Operation failed
show status like "key_read%";
Variable_name Value
diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result
index 49e4bf2f318..4db588e5cac 100644
--- a/mysql-test/r/ps.result
+++ b/mysql-test/r/ps.result
@@ -1,4 +1,5 @@
drop table if exists t1,t2;
+drop database if exists client_test_db;
create table t1
(
a int primary key,
@@ -25,11 +26,11 @@ ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEA
execute stmt1;
ERROR HY000: Incorrect arguments to EXECUTE
prepare stmt2 from 'prepare nested_stmt from "select 1"';
-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 '"select 1"' at line 1
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt2 from 'execute stmt1';
-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 'stmt1' at line 1
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt2 from 'deallocate prepare z';
-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 'z' at line 1
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from 'insert into t1 values (?,?)';
set @arg1=5, @arg2='five';
execute stmt3 using @arg1, @arg2;
@@ -140,7 +141,7 @@ create table t1
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
+c13 date, c14 datetime, c15 timestamp, c16 time,
c17 year, c18 bit, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
@@ -156,24 +157,24 @@ id select_type table type possible_keys key key_len ref rows Extra
6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
-3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
-2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
+3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
execute stmt1 ;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
-3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
-2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
+3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
explain SELECT (SELECT SUM(c1 + c12 + 0.0) FROM t2 where (t1.c2 - 0e-3) = t2.c2 GROUP BY t1.c15 LIMIT 1) as scalar_s, exists (select 1.0e+0 from t2 where t2.c3 * 9.0000000000 = t1.c4) as exists_s, c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s FROM t1, (select c25 x, c32 y from t2) tt WHERE x * 1 = c25;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
-3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
-2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
+3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
deallocate prepare stmt1;
drop tables t1,t2;
set @arg00=1;
@@ -210,10 +211,10 @@ create table t1 ( a int primary key, b varchar(30)) engine = MYISAM ;
prepare stmt1 from ' show table status from test like ''t1%'' ';
execute stmt1;
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 MyISAM 9 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL
+t1 MyISAM 10 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL
show table status from test 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 MyISAM 9 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL
+t1 MyISAM 10 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL
deallocate prepare stmt1 ;
drop table t1;
create table t1(a varchar(2), b varchar(3));
@@ -484,6 +485,25 @@ execute stmt;
pnum
deallocate prepare stmt;
drop table t1, t2;
+drop table if exists t1;
+create temporary table if not exists t1 (a1 int);
+prepare stmt from "delete t1 from t1 where (cast(a1/3 as unsigned) * 3) = a1";
+drop temporary table t1;
+create temporary table if not exists t1 (a1 int);
+execute stmt;
+drop temporary table t1;
+create temporary table if not exists t1 (a1 int);
+execute stmt;
+drop temporary table t1;
+create temporary table if not exists t1 (a1 int);
+execute stmt;
+drop temporary table t1;
+deallocate prepare stmt;
+create table t1 (a varchar(20));
+insert into t1 values ('foo');
+prepare stmt FROM 'SELECT char_length (a) FROM t1';
+ERROR 42000: FUNCTION test.char_length does not exist
+drop table t1;
prepare stmt from "SELECT SQL_CALC_FOUND_ROWS 'foo' UNION SELECT 'bar' LIMIT 0";
execute stmt;
foo
@@ -811,7 +831,7 @@ show status like 'prepared_stmt_count';
Variable_name Value
Prepared_stmt_count 0
prepare stmt from "select 1";
-ERROR HY000: Unknown error
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0)
show status like 'prepared_stmt_count';
Variable_name Value
Prepared_stmt_count 0
@@ -821,7 +841,7 @@ show status like 'prepared_stmt_count';
Variable_name Value
Prepared_stmt_count 1
prepare stmt1 from "select 1";
-ERROR HY000: Unknown error
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 1)
show status like 'prepared_stmt_count';
Variable_name Value
Prepared_stmt_count 1
@@ -845,14 +865,14 @@ select @@max_prepared_stmt_count;
1
set global max_prepared_stmt_count=0;
prepare stmt from "select 1";
-ERROR HY000: Unknown error
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0)
execute stmt;
ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE
show status like 'prepared_stmt_count';
Variable_name Value
Prepared_stmt_count 0
prepare stmt from "select 1";
-ERROR HY000: Unknown error
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0)
show status like 'prepared_stmt_count';
Variable_name Value
Prepared_stmt_count 0
@@ -867,9 +887,9 @@ prepare stmt from "select 1";
prepare stmt from "select 2";
prepare stmt1 from "select 3";
prepare stmt2 from "select 4";
-ERROR HY000: Unknown error
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3)
prepare stmt2 from "select 4";
-ERROR HY000: Unknown error
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3)
select @@max_prepared_stmt_count;
@@max_prepared_stmt_count
3
@@ -1067,7 +1087,7 @@ t1 CREATE TABLE `t1` (
show create table mysqltest.t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `test` char(4) character set latin1 NOT NULL default ''
+ `test` varchar(4) character set latin1 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8
drop table mysqltest.t1;
drop table mysqltest.t2;
@@ -1082,11 +1102,18 @@ t1 CREATE TABLE `t1` (
show create table mysqltest.t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `test` char(4) NOT NULL default ''
+ `test` varchar(4) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop database mysqltest;
deallocate prepare stmt1;
deallocate prepare stmt2;
+execute stmt;
+show create table t1;
+drop table t1;
+execute stmt;
+show create table t1;
+drop table t1;
+deallocate prepare stmt;
CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (2), (3), (1);
PREPARE st1 FROM
@@ -1110,3 +1137,553 @@ a
DEALLOCATE PREPARE st1;
DROP TABLE t1;
End of 4.1 tests.
+create table t1 (a varchar(20));
+insert into t1 values ('foo');
+prepare stmt FROM 'SELECT char_length (a) FROM t1';
+ERROR 42000: FUNCTION test.char_length does not exist
+drop table t1;
+create table t1 (a char(3) not null, b char(3) not null,
+c char(3) not null, primary key (a, b, c));
+create table t2 like t1;
+prepare stmt from
+"select t1.a from (t1 left outer join t2 on t2.a=1 and t1.b=t2.b)
+ where t1.a=1";
+execute stmt;
+a
+execute stmt;
+a
+execute stmt;
+a
+prepare stmt from
+"select t1.a, t1.b, t1.c, t2.a, t2.b, t2.c from
+(t1 left outer join t2 on t2.a=? and t1.b=t2.b)
+left outer join t2 t3 on t3.a=? where t1.a=?";
+set @a:=1, @b:=1, @c:=1;
+execute stmt using @a, @b, @c;
+a b c a b c
+execute stmt using @a, @b, @c;
+a b c a b c
+execute stmt using @a, @b, @c;
+a b c a b c
+deallocate prepare stmt;
+drop table t1,t2;
+SET @aux= "SELECT COUNT(*)
+ FROM INFORMATION_SCHEMA.COLUMNS A,
+ INFORMATION_SCHEMA.COLUMNS B
+ WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
+ AND A.TABLE_NAME = B.TABLE_NAME
+ AND A.COLUMN_NAME = B.COLUMN_NAME AND
+ A.TABLE_NAME = 'user'";
+prepare my_stmt from @aux;
+execute my_stmt;
+COUNT(*)
+37
+execute my_stmt;
+COUNT(*)
+37
+execute my_stmt;
+COUNT(*)
+37
+deallocate prepare my_stmt;
+drop procedure if exists p1|
+drop table if exists t1|
+create table t1 (id int)|
+insert into t1 values(1)|
+create procedure p1(a int, b int)
+begin
+declare c int;
+select max(id)+1 into c from t1;
+insert into t1 select a+b;
+insert into t1 select a-b;
+insert into t1 select a-c;
+end|
+set @a= 3, @b= 4|
+prepare stmt from "call p1(?, ?)"|
+execute stmt using @a, @b|
+execute stmt using @a, @b|
+select * from t1|
+id
+1
+7
+-1
+1
+7
+-1
+-5
+deallocate prepare stmt|
+drop procedure p1|
+drop table t1|
+create table t1 (a int);
+insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+prepare stmt from "select * from t1 limit ?, ?";
+set @offset=0, @limit=1;
+execute stmt using @offset, @limit;
+a
+1
+select * from t1 limit 0, 1;
+a
+1
+set @offset=3, @limit=2;
+execute stmt using @offset, @limit;
+a
+4
+5
+select * from t1 limit 3, 2;
+a
+4
+5
+prepare stmt from "select * from t1 limit ?";
+execute stmt using @limit;
+a
+1
+2
+prepare stmt from "select * from t1 where a in (select a from t1 limit ?)";
+ERROR 42000: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
+prepare stmt from "select * from t1 union all select * from t1 limit ?, ?";
+set @offset=9;
+set @limit=2;
+execute stmt using @offset, @limit;
+a
+10
+1
+prepare stmt from "(select * from t1 limit ?, ?) union all
+ (select * from t1 limit ?, ?) order by a limit ?";
+execute stmt using @offset, @limit, @offset, @limit, @limit;
+a
+10
+10
+drop table t1;
+deallocate prepare stmt;
+CREATE TABLE b12651_T1(a int) ENGINE=MYISAM;
+CREATE TABLE b12651_T2(b int) ENGINE=MYISAM;
+CREATE VIEW b12651_V1 as SELECT b FROM b12651_T2;
+PREPARE b12651 FROM 'SELECT 1 FROM b12651_T1 WHERE a IN (SELECT b FROM b12651_V1)';
+EXECUTE b12651;
+1
+DROP VIEW b12651_V1;
+DROP TABLE b12651_T1, b12651_T2;
+DEALLOCATE PREPARE b12651;
+create table t1 (id int);
+prepare ins_call from "insert into t1 (id) values (1)";
+execute ins_call;
+select row_count();
+row_count()
+1
+drop table t1;
+create table t1 (a int, b int);
+insert into t1 (a,b) values (2,8),(1,9),(3,7);
+prepare stmt from "select * from t1 order by ?";
+set @a=NULL;
+execute stmt using @a;
+a b
+2 8
+1 9
+3 7
+set @a=1;
+execute stmt using @a;
+a b
+1 9
+2 8
+3 7
+set @a=2;
+execute stmt using @a;
+a b
+3 7
+2 8
+1 9
+deallocate prepare stmt;
+select * from t1 order by 1;
+a b
+1 9
+2 8
+3 7
+prepare stmt from "select * from t1 order by ?+1";
+set @a=0;
+execute stmt using @a;
+a b
+2 8
+1 9
+3 7
+set @a=1;
+execute stmt using @a;
+a b
+2 8
+1 9
+3 7
+deallocate prepare stmt;
+select * from t1 order by 1+1;
+a b
+2 8
+1 9
+3 7
+drop table t1;
+create table t1 (a int);
+create table t2 like t1;
+create table t3 like t2;
+prepare stmt from "repair table t1";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+prepare stmt from "optimize table t1";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 optimize status Table is already up to date
+prepare stmt from "analyze table t1";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+prepare stmt from "repair table t1, t2, t3";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t2 repair status OK
+test.t3 repair status OK
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t2 repair status OK
+test.t3 repair status OK
+prepare stmt from "optimize table t1, t2, t3";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+test.t2 optimize status OK
+test.t3 optimize status OK
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 optimize status Table is already up to date
+test.t2 optimize status Table is already up to date
+test.t3 optimize status Table is already up to date
+prepare stmt from "analyze table t1, t2, t3";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+test.t2 analyze status Table is already up to date
+test.t3 analyze status Table is already up to date
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+test.t2 analyze status Table is already up to date
+test.t3 analyze status Table is already up to date
+prepare stmt from "repair table t1, t4, t3";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t4 repair Error Table 'test.t4' doesn't exist
+test.t4 repair error Corrupt
+test.t3 repair status OK
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t4 repair Error Table 'test.t4' doesn't exist
+test.t4 repair error Corrupt
+test.t3 repair status OK
+prepare stmt from "optimize table t1, t3, t4";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+test.t3 optimize status OK
+test.t4 optimize Error Table 'test.t4' doesn't exist
+test.t4 optimize error Corrupt
+execute stmt;
+Table Op Msg_type Msg_text
+test.t1 optimize status Table is already up to date
+test.t3 optimize status Table is already up to date
+test.t4 optimize Error Table 'test.t4' doesn't exist
+test.t4 optimize error Corrupt
+prepare stmt from "analyze table t4, t1";
+execute stmt;
+Table Op Msg_type Msg_text
+test.t4 analyze Error Table 'test.t4' doesn't exist
+test.t4 analyze error Corrupt
+test.t1 analyze status Table is already up to date
+execute stmt;
+Table Op Msg_type Msg_text
+test.t4 analyze Error Table 'test.t4' doesn't exist
+test.t4 analyze error Corrupt
+test.t1 analyze status Table is already up to date
+deallocate prepare stmt;
+drop table t1, t2, t3;
+create database mysqltest_long_database_name_to_thrash_heap;
+use test;
+create table t1 (i int);
+prepare stmt from "alter table test.t1 rename t1";
+use mysqltest_long_database_name_to_thrash_heap;
+execute stmt;
+show tables like 't1';
+Tables_in_mysqltest_long_database_name_to_thrash_heap (t1)
+prepare stmt from "alter table test.t1 rename t1";
+use test;
+execute stmt;
+show tables like 't1';
+Tables_in_test (t1)
+use mysqltest_long_database_name_to_thrash_heap;
+show tables like 't1';
+Tables_in_mysqltest_long_database_name_to_thrash_heap (t1)
+t1
+deallocate prepare stmt;
+use mysqltest_long_database_name_to_thrash_heap;
+prepare stmt_create from "create table t1 (i int)";
+prepare stmt_insert from "insert into t1 (i) values (1)";
+prepare stmt_update from "update t1 set i=2";
+prepare stmt_delete from "delete from t1 where i=2";
+prepare stmt_select from "select * from t1";
+prepare stmt_alter from "alter table t1 add column (b int)";
+prepare stmt_alter1 from "alter table t1 drop column b";
+prepare stmt_analyze from "analyze table t1";
+prepare stmt_optimize from "optimize table t1";
+prepare stmt_show from "show tables like 't1'";
+prepare stmt_truncate from "truncate table t1";
+prepare stmt_drop from "drop table t1";
+drop table t1;
+use test;
+execute stmt_create;
+show tables like 't1';
+Tables_in_test (t1)
+use mysqltest_long_database_name_to_thrash_heap;
+show tables like 't1';
+Tables_in_mysqltest_long_database_name_to_thrash_heap (t1)
+t1
+use test;
+execute stmt_insert;
+select * from mysqltest_long_database_name_to_thrash_heap.t1;
+i
+1
+execute stmt_update;
+select * from mysqltest_long_database_name_to_thrash_heap.t1;
+i
+2
+execute stmt_delete;
+execute stmt_select;
+i
+execute stmt_alter;
+show columns from mysqltest_long_database_name_to_thrash_heap.t1;
+Field Type Null Key Default Extra
+i int(11) YES NULL
+b int(11) YES NULL
+execute stmt_alter1;
+show columns from mysqltest_long_database_name_to_thrash_heap.t1;
+Field Type Null Key Default Extra
+i int(11) YES NULL
+execute stmt_analyze;
+Table Op Msg_type Msg_text
+mysqltest_long_database_name_to_thrash_heap.t1 analyze status Table is already up to date
+execute stmt_optimize;
+Table Op Msg_type Msg_text
+mysqltest_long_database_name_to_thrash_heap.t1 optimize status Table is already up to date
+execute stmt_show;
+Tables_in_mysqltest_long_database_name_to_thrash_heap (t1)
+t1
+execute stmt_truncate;
+execute stmt_drop;
+show tables like 't1';
+Tables_in_test (t1)
+use mysqltest_long_database_name_to_thrash_heap;
+show tables like 't1';
+Tables_in_mysqltest_long_database_name_to_thrash_heap (t1)
+drop database mysqltest_long_database_name_to_thrash_heap;
+prepare stmt_create from "create table t1 (i int)";
+ERROR 3D000: No database selected
+prepare stmt_insert from "insert into t1 (i) values (1)";
+ERROR 3D000: No database selected
+prepare stmt_update from "update t1 set i=2";
+ERROR 3D000: No database selected
+prepare stmt_delete from "delete from t1 where i=2";
+ERROR 3D000: No database selected
+prepare stmt_select from "select * from t1";
+ERROR 3D000: No database selected
+prepare stmt_alter from "alter table t1 add column (b int)";
+ERROR 3D000: No database selected
+prepare stmt_alter1 from "alter table t1 drop column b";
+ERROR 3D000: No database selected
+prepare stmt_analyze from "analyze table t1";
+ERROR 3D000: No database selected
+prepare stmt_optimize from "optimize table t1";
+ERROR 3D000: No database selected
+prepare stmt_show from "show tables like 't1'";
+ERROR 3D000: No database selected
+prepare stmt_truncate from "truncate table t1";
+ERROR 3D000: No database selected
+prepare stmt_drop from "drop table t1";
+ERROR 3D000: No database selected
+create temporary table t1 (i int);
+ERROR 3D000: No database selected
+use test;
+DROP TABLE IF EXISTS t1, t2, t3;
+CREATE TABLE t1 (i BIGINT, j BIGINT);
+CREATE TABLE t2 (i BIGINT);
+CREATE TABLE t3 (i BIGINT, j BIGINT);
+PREPARE stmt FROM "SELECT * FROM t1 JOIN t2 ON (t2.i = t1.i)
+ LEFT JOIN t3 ON ((t3.i, t3.j) = (t1.i, t1.j))
+ WHERE t1.i = ?";
+SET @a= 1;
+EXECUTE stmt USING @a;
+i j i i j
+EXECUTE stmt USING @a;
+i j i i j
+DEALLOCATE PREPARE stmt;
+DROP TABLE IF EXISTS t1, t2, t3;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (i INT KEY);
+CREATE TABLE t2 (i INT);
+INSERT INTO t1 VALUES (1), (2);
+INSERT INTO t2 VALUES (1);
+PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i
+ WHERE t1.i = ?";
+SET @arg= 1;
+EXECUTE stmt USING @arg;
+i
+1
+SET @arg= 2;
+EXECUTE stmt USING @arg;
+i
+NULL
+SET @arg= 1;
+EXECUTE stmt USING @arg;
+i
+1
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1, t2;
+CREATE TABLE t1 (i INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+INSERT INTO t1 VALUES (1), (2);
+SELECT t1.i FROM t1 JOIN v1 ON t1.i = v1.i
+WHERE EXISTS (SELECT * FROM t1 WHERE v1.i = 1);
+i
+1
+PREPARE stmt FROM "SELECT t1.i FROM t1 JOIN v1 ON t1.i = v1.i
+WHERE EXISTS (SELECT * FROM t1 WHERE v1.i = 1)";
+EXECUTE stmt;
+i
+1
+EXECUTE stmt;
+i
+1
+DEALLOCATE PREPARE stmt;
+DROP VIEW v1;
+DROP TABLE t1;
+DROP PROCEDURE IF EXISTS p1;
+flush status;
+prepare sq from 'show status like "slow_queries"';
+execute sq;
+Variable_name Value
+Slow_queries 0
+prepare no_index from 'select 1 from information_schema.tables limit 1';
+execute sq;
+Variable_name Value
+Slow_queries 0
+execute no_index;
+1
+1
+execute sq;
+Variable_name Value
+Slow_queries 1
+deallocate prepare no_index;
+deallocate prepare sq;
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1), (2);
+CREATE TABLE t2 (b int);
+INSERT INTO t2 VALUES (NULL);
+SELECT a FROM t1 WHERE (SELECT b FROM t2) IS NULL;
+a
+1
+2
+PREPARE stmt FROM 'SELECT a FROM t1 WHERE (SELECT b FROM t2) IS NULL';
+EXECUTE stmt;
+a
+1
+2
+DEALLOCATE PREPARE stmt;
+PREPARE stmt FROM 'SELECT a FROM t1 WHERE (SELECT b FROM t2 limit ?) IS NULL';
+SET @arg=1;
+EXECUTE stmt USING @arg;
+a
+1
+2
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1,t2;
+drop table if exists t1;
+create table t1 (s1 char(20));
+prepare stmt from "alter table t1 modify s1 int";
+execute stmt;
+execute stmt;
+drop table t1;
+deallocate prepare stmt;
+drop table if exists t1;
+create table t1 (a int, b int);
+prepare s_6895 from "alter table t1 drop column b";
+execute s_6895;
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) YES NULL
+drop table t1;
+create table t1 (a int, b int);
+execute s_6895;
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) YES NULL
+drop table t1;
+create table t1 (a int, b int);
+execute s_6895;
+show columns from t1;
+Field Type Null Key Default Extra
+a int(11) YES NULL
+deallocate prepare s_6895;
+drop table t1;
+create table t1 (i int primary key auto_increment) comment='comment for table t1';
+create table t2 (i int, j int, k int);
+prepare stmt from "alter table t1 auto_increment=100";
+execute stmt;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) NOT NULL auto_increment,
+ PRIMARY KEY (`i`)
+) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=latin1 COMMENT='comment for table t1'
+flush tables;
+select * from t2;
+i j k
+execute stmt;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) NOT NULL auto_increment,
+ PRIMARY KEY (`i`)
+) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=latin1 COMMENT='comment for table t1'
+deallocate prepare stmt;
+drop table t1, t2;
+drop tables if exists t1;
+create table t1 (id int primary key auto_increment, value varchar(10));
+insert into t1 (id, value) values (1, 'FIRST'), (2, 'SECOND'), (3, 'THIRD');
+prepare stmt from "insert into t1 (id, value) select * from (select 4 as i, 'FOURTH' as v) as y on duplicate key update v = 'DUP'";
+execute stmt;
+ERROR 42S22: Unknown column 'v' in 'field list'
+execute stmt;
+ERROR 42S22: Unknown column 'v' in 'field list'
+deallocate prepare stmt;
+prepare stmt from "insert into t1 (id, value) select * from (select 4 as id, 'FOURTH' as value) as y on duplicate key update y.value = 'DUP'";
+execute stmt;
+ERROR 42S22: Unknown column 'y.value' in 'field list'
+execute stmt;
+ERROR 42S22: Unknown column 'y.value' in 'field list'
+deallocate prepare stmt;
+drop tables t1;
+prepare stmt from "create table t1 select ?";
+set @a=1.0;
+execute stmt using @a;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `?` decimal(2,1) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/ps_11bugs.result b/mysql-test/r/ps_11bugs.result
index c849c25d646..ebe161f46b3 100644
--- a/mysql-test/r/ps_11bugs.result
+++ b/mysql-test/r/ps_11bugs.result
@@ -130,3 +130,36 @@ prepare st_18492 from 'select * from t1 where 3 in (select (1+1) union select 1)
execute st_18492;
a
drop table t1;
+create table t1 (a int, b varchar(4));
+create table t2 (a int, b varchar(4), primary key(a));
+prepare stmt1 from 'insert into t1 (a, b) values (?, ?)';
+prepare stmt2 from 'insert into t2 (a, b) values (?, ?)';
+set @intarg= 11;
+set @varchararg= '2222';
+execute stmt1 using @intarg, @varchararg;
+execute stmt2 using @intarg, @varchararg;
+set @intarg= 12;
+execute stmt1 using @intarg, @UNDEFINED;
+execute stmt2 using @intarg, @UNDEFINED;
+set @intarg= 13;
+execute stmt1 using @UNDEFINED, @varchararg;
+execute stmt2 using @UNDEFINED, @varchararg;
+ERROR 23000: Column 'a' cannot be null
+set @intarg= 14;
+set @nullarg= Null;
+execute stmt1 using @UNDEFINED, @nullarg;
+execute stmt2 using @nullarg, @varchararg;
+ERROR 23000: Column 'a' cannot be null
+select * from t1;
+a b
+11 2222
+12 NULL
+NULL 2222
+NULL NULL
+select * from t2;
+a b
+11 2222
+12 NULL
+drop table t1;
+drop table t2;
+End of 5.0 tests.
diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result
index 67b6c0d1b0b..488c01b020c 100644
--- a/mysql-test/r/ps_1general.result
+++ b/mysql-test/r/ps_1general.result
@@ -1,6 +1,9 @@
drop table if exists t5, t6, t7, t8;
drop database if exists mysqltest ;
drop database if exists client_test_db;
+drop database if exists testtets;
+drop table if exists t1Aa,t2Aa,v1Aa,v2Aa;
+drop view if exists t1Aa,t2Aa,v1Aa,v2Aa;
test_sequence
------ basic tests ------
drop table if exists t1, t9 ;
@@ -14,8 +17,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -255,16 +258,29 @@ a int primary key, b char(10)
prepare stmt4 from ' show databases ';
execute stmt4;
Database
+information_schema
mysql
test
prepare stmt4 from ' show tables from test like ''t2%'' ';
execute stmt4;
Tables_in_test (t2%)
t2
+prepare stmt4 from ' show columns from t2 where field in (select ?) ';
+SET @arg00="a";
+execute stmt4 using @arg00;
+Field Type Null Key Default Extra
+a int(11) NO PRI NULL
+SET @arg00="b";
+execute stmt4 using @arg00;
+Field Type Null Key Default Extra
+b char(10) YES NULL
+SET @arg00=1;
+execute stmt4 using @arg00;
+Field Type Null Key Default Extra
prepare stmt4 from ' show columns from t2 from test like ''a%'' ';
execute stmt4;
Field Type Null Key Default Extra
-a int(11) PRI 0
+a int(11) NO PRI NULL
create index t2_idx on t2(b);
prepare stmt4 from ' show index from t2 from test ';
execute stmt4;
@@ -274,11 +290,11 @@ t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE
prepare stmt4 from ' show table status from test like ''t2%'' ';
execute stmt4;
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
-t2 MyISAM 9 Fixed 0 0 0 64424509439 1024 0 NULL # # # latin1_swedish_ci NULL
+t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # # latin1_swedish_ci NULL
prepare stmt4 from ' show table status from test like ''t9%'' ';
execute stmt4;
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
-t9 MyISAM 9 Dynamic 2 220 440 4294967295 2048 0 NULL # # # latin1_swedish_ci NULL
+t9 MyISAM 10 Dynamic 2 216 432 # 2048 0 NULL # # # latin1_swedish_ci NULL
prepare stmt4 from ' show status like ''Threads_running'' ';
execute stmt4;
Variable_name Value
@@ -306,22 +322,17 @@ prepare stmt4 from ' show storage engines ';
execute stmt4;
Engine Support Comment
MyISAM YES/NO Default engine as of MySQL 3.23 with great performance
-HEAP YES/NO Alias for MEMORY
MEMORY YES/NO Hash based, stored in memory, useful for temporary tables
-MERGE YES/NO Collection of identical MyISAM tables
-MRG_MYISAM YES/NO Alias for MERGE
-ISAM YES/NO Obsolete storage engine, now replaced by MyISAM
-MRG_ISAM YES/NO Obsolete storage engine, now replaced by MERGE
InnoDB YES/NO Supports transactions, row-level locking, and foreign keys
-INNOBASE YES/NO Alias for INNODB
-BDB YES/NO Supports transactions and page-level locking
-BERKELEYDB YES/NO Alias for BDB
-NDBCLUSTER YES/NO Clustered, fault-tolerant, memory-based tables
-NDB YES/NO Alias for NDBCLUSTER
+BerkeleyDB YES/NO Supports transactions and page-level locking
+BLACKHOLE YES/NO /dev/null storage engine (anything you write to it disappears)
EXAMPLE YES/NO Example storage engine
ARCHIVE YES/NO Archive storage engine
CSV YES/NO CSV storage engine
-BLACKHOLE YES/NO Storage engine designed to act as null storage
+ndbcluster YES/NO Clustered, fault-tolerant, memory-based tables
+FEDERATED YES/NO Federated MySQL storage engine
+MRG_MYISAM YES/NO Collection of identical MyISAM tables
+ISAM YES/NO Obsolete storage engine
drop table if exists t5;
prepare stmt1 from ' drop table if exists t5 ' ;
execute stmt1 ;
@@ -380,11 +391,13 @@ drop table t5 ;
deallocate prepare stmt_do ;
deallocate prepare stmt_set ;
prepare stmt1 from ' prepare stmt2 from '' select 1 '' ' ;
-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 '' select 1 '' at line 1
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' execute stmt2 ' ;
-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 'stmt2' at line 1
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' deallocate prepare never_prepared ' ;
-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 'never_prepared' at line 1
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+prepare stmt1 from 'alter view v1 as select 2';
+ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt4 from ' use test ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' create database mysqltest ';
@@ -393,22 +406,10 @@ create database mysqltest ;
prepare stmt3 from ' drop database mysqltest ';
ERROR HY000: This command is not supported in the prepared statement protocol yet
drop database mysqltest ;
-prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
-identified by ''looser'' ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
-grant all on test.t1 to drop_user@localhost
-identified by 'looser' ;
-prepare stmt3 from ' revoke all privileges on test.t1 from
-drop_user@localhost ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
-revoke all privileges on test.t1 from drop_user@localhost ;
-prepare stmt3 from ' drop user drop_user@localhost ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
-drop user drop_user@localhost;
prepare stmt3 from ' describe t2 ';
execute stmt3;
Field Type Null Key Default Extra
-a int(11) PRI 0
+a int(11) NO PRI NULL
b char(10) YES MUL NULL
drop table t2 ;
execute stmt3;
@@ -423,21 +424,16 @@ ERROR HY000: This command is not supported in the prepared statement protocol ye
prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
execute stmt1 ;
prepare stmt1 from ' optimize table t1 ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' analyze table t1 ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' checksum table t1 ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' repair table t1 ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' handler t1 open ';
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' commit ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' rollback ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt4 from ' SET sql_mode=ansi ';
execute stmt4;
select 'a' || 'b' ;
@@ -445,17 +441,17 @@ select 'a' || 'b' ;
ab
prepare stmt4 from ' SET sql_mode="" ';
execute stmt4;
-select 'a' || 'b' ;
-'a' || 'b'
-0
-prepare stmt5 from ' select ''a'' || ''b'' ' ;
+select '2' || '3' ;
+'2' || '3'
+1
+prepare stmt5 from ' select ''2'' || ''3'' ' ;
execute stmt5;
-'a' || 'b'
-0
+'2' || '3'
+1
SET sql_mode=ansi;
execute stmt5;
-'a' || 'b'
-0
+'2' || '3'
+1
SET sql_mode="";
prepare stmt1 from ' flush local privileges ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
@@ -472,7 +468,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 14 N 1 31 8
@@ -488,7 +484,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 5 Y 0 31 8
def possible_keys 253 4096 7 Y 0 31 8
def key 253 64 7 Y 0 31 8
-def key_len 8 3 1 Y 32928 0 63
+def key_len 253 1365 1 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 27 N 1 31 8
@@ -545,11 +541,8 @@ m
1
drop table t3;
prepare stmt3 from ' create index t2_idx on t2(b) ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' drop index t2_idx on t2 ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' alter table t2 drop primary key ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
drop table if exists new_t2;
prepare stmt3 from ' rename table t2 to new_t2 ';
execute stmt3;
@@ -560,7 +553,7 @@ drop table t2;
prepare stmt1 from ' rename table t5 to t6, t7 to t8 ' ;
create table t5 (a int) ;
execute stmt1 ;
-ERROR HY000: Can't find file: './test/t7.frm' (errno: 2)
+ERROR HY000: Can't find file: './test/t7' (errno: 2)
create table t7 (a int) ;
execute stmt1 ;
execute stmt1 ;
@@ -803,4 +796,4 @@ prepare stmt1 from @string ;
execute stmt1 ;
prepare stmt1 from ' select * from t5 ' ;
execute stmt1 ;
-drop table t5 ;
+drop table t1, t5, t9;
diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result
index 771245c3713..57932a6c455 100644
--- a/mysql-test/r/ps_2myisam.result
+++ b/mysql-test/r/ps_2myisam.result
@@ -10,8 +10,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -59,17 +59,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 252 255 8 Y 144 0 63
def test t9 t9 c24 c24 252 255 8 Y 16 0 8
@@ -446,9 +446,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -532,44 +533,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -595,44 +596,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -658,23 +659,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -1157,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -1225,7 +1226,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -1304,7 +1304,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -1384,10 +1384,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -1715,8 +1713,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
delete from t2 ;
prepare stmt1 from ' insert into t2 (b,a)
@@ -1734,8 +1732,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
drop table t2;
drop table if exists t5 ;
@@ -1777,15 +1775,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -1801,21 +1799,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -1831,13 +1829,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -1919,40 +1917,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -1966,38 +1964,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -2016,78 +2014,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -2104,40 +2102,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -2148,38 +2146,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -2194,76 +2192,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -2574,12 +2572,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2591,18 +2589,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2614,18 +2612,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2643,12 +2641,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2666,14 +2664,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2685,45 +2683,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2741,21 +2739,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -2820,10 +2818,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00
-53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
@@ -2963,61 +2961,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -3048,31 +3054,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3080,12 +3086,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3094,7 +3100,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result
index 8435bb348f4..fd24c29d558 100644
--- a/mysql-test/r/ps_3innodb.result
+++ b/mysql-test/r/ps_3innodb.result
@@ -10,8 +10,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -59,17 +59,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 252 255 8 Y 144 0 63
def test t9 t9 c24 c24 252 255 8 Y 16 0 8
@@ -446,9 +446,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -532,44 +533,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -595,44 +596,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -658,23 +659,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -1157,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -1208,7 +1209,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -1287,7 +1287,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -1367,10 +1367,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -1698,8 +1696,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
delete from t2 ;
prepare stmt1 from ' insert into t2 (b,a)
@@ -1717,8 +1715,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
drop table t2;
drop table if exists t5 ;
@@ -1760,15 +1758,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -1784,21 +1782,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -1814,13 +1812,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -1902,40 +1900,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -1949,38 +1947,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -1999,78 +1997,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -2087,40 +2085,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -2131,38 +2129,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -2177,76 +2175,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -2557,12 +2555,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2574,18 +2572,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2597,18 +2595,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2626,12 +2624,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2649,14 +2647,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2668,45 +2666,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2724,21 +2722,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -2803,10 +2801,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00
-53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
@@ -2946,61 +2944,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -3031,31 +3037,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3063,12 +3069,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3077,7 +3083,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result
index d6876825aa9..b4596ab85bc 100644
--- a/mysql-test/r/ps_4heap.result
+++ b/mysql-test/r/ps_4heap.result
@@ -11,11 +11,11 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
-c21 char(10), c22 varchar(30), c23 char(100), c24 char(100),
-c25 char(100), c26 char(100), c27 char(100), c28 char(100),
-c29 char(100), c30 char(100), c31 enum('one', 'two', 'three'),
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
+c21 char(10), c22 varchar(30), c23 varchar(100), c24 varchar(100),
+c25 varchar(100), c26 varchar(100), c27 varchar(100), c28 varchar(100),
+c29 varchar(100), c30 varchar(100), c31 enum('one', 'two', 'three'),
c32 set('monday', 'tuesday', 'wednesday'),
primary key(c1)
) engine = 'HEAP' ;
@@ -60,17 +60,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 253 100 8 Y 0 0 8
def test t9 t9 c24 c24 253 100 8 Y 0 0 8
@@ -447,9 +447,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -533,44 +534,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -596,44 +597,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -659,23 +660,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -1158,7 +1159,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -1209,7 +1210,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -1288,7 +1288,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -1368,10 +1368,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -1699,8 +1697,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
delete from t2 ;
prepare stmt1 from ' insert into t2 (b,a)
@@ -1718,8 +1716,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
drop table t2;
drop table if exists t5 ;
@@ -1761,15 +1759,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -1785,21 +1783,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -1815,13 +1813,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -1903,40 +1901,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 0 31 8
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 0 31 8
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 0 31 8
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 0 31 8
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 0 31 8
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 0 31 8
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 0 31 8
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 0 31 8
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -1950,38 +1948,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 0 31 8
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 0 31 8
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 0 31 8
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 0 31 8
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 0 31 8
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 0 31 8
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 0 31 8
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 0 31 8
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -2000,78 +1998,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 0 31 8
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 0 31 8
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 0 31 8
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 0 31 8
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 0 31 8
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 0 31 8
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 0 31 8
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 0 31 8
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 0 31 8
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 0 31 8
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 0 31 8
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 0 31 8
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 0 31 8
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 0 31 8
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 0 31 8
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 0 31 8
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -2088,40 +2086,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 0 31 8
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 0 31 8
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 0 31 8
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 0 31 8
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 0 31 8
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 0 31 8
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 0 31 8
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 0 31 8
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -2132,38 +2130,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 0 31 8
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 0 31 8
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 0 31 8
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 0 31 8
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 0 31 8
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 0 31 8
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 0 31 8
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 0 31 8
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -2178,76 +2176,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 0 31 8
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 0 31 8
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 0 31 8
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 0 31 8
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 0 31 8
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 0 31 8
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 0 31 8
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 0 31 8
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 0 31 8
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 0 31 8
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 0 31 8
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 0 31 8
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 0 31 8
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 0 31 8
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 0 31 8
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 0 31 8
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -2558,12 +2556,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2575,18 +2573,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2598,18 +2596,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2627,12 +2625,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2650,14 +2648,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2669,45 +2667,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2725,21 +2723,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -2804,10 +2802,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50 50 50 50 50 50 50 50
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52 52 52 52 52 52 52 52
-53 5 53 53 53 53 53 53 53 53 53 53
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54 54 54 54 54 54 54 54
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56 56 56 56 56 56 56 56
@@ -2947,61 +2945,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -3032,31 +3038,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3064,12 +3070,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3078,7 +3084,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result
index f2d459c6769..18982db937a 100644
--- a/mysql-test/r/ps_5merge.result
+++ b/mysql-test/r/ps_5merge.result
@@ -12,8 +12,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -32,8 +32,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -52,8 +52,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -102,17 +102,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 252 255 8 Y 144 0 63
def test t9 t9 c24 c24 252 255 8 Y 16 0 8
@@ -489,9 +489,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -575,44 +576,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -638,44 +639,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -701,23 +702,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -1200,7 +1201,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -1251,7 +1252,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -1330,7 +1330,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -1410,10 +1410,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -1697,15 +1695,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -1721,21 +1719,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -1751,13 +1749,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -1839,40 +1837,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -1886,38 +1884,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -1936,78 +1934,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -2024,40 +2022,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -2068,38 +2066,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -2114,76 +2112,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -2494,12 +2492,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2511,18 +2509,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2534,18 +2532,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2563,12 +2561,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2586,14 +2584,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2605,45 +2603,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2661,21 +2659,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -2740,10 +2738,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00
-53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
@@ -2883,61 +2881,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -2968,31 +2974,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3000,12 +3006,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3014,7 +3020,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
@@ -3068,8 +3074,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -3118,17 +3124,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 252 255 8 Y 144 0 63
def test t9 t9 c24 c24 252 255 8 Y 16 0 8
@@ -3505,9 +3511,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -3591,44 +3598,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -3654,44 +3661,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -3717,23 +3724,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -4216,7 +4223,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -4267,7 +4274,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -4346,7 +4352,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -4426,10 +4432,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -4713,15 +4717,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -4737,21 +4741,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -4767,13 +4771,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -4855,40 +4859,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -4902,38 +4906,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -4952,78 +4956,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -5040,40 +5044,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -5084,38 +5088,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -5130,76 +5134,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -5510,12 +5514,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -5527,18 +5531,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -5550,18 +5554,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -5579,12 +5583,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -5602,14 +5606,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -5621,45 +5625,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -5677,21 +5681,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -5756,10 +5760,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00
-53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
@@ -5899,61 +5903,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -5984,31 +5996,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -6016,12 +6028,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -6030,7 +6042,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
diff --git a/mysql-test/r/ps_6bdb.result b/mysql-test/r/ps_6bdb.result
index 3e16923c46f..0e4086bc202 100644
--- a/mysql-test/r/ps_6bdb.result
+++ b/mysql-test/r/ps_6bdb.result
@@ -10,8 +10,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -59,17 +59,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 252 255 8 Y 144 0 63
def test t9 t9 c24 c24 252 255 8 Y 16 0 8
@@ -446,9 +446,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -532,44 +533,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -595,44 +596,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -658,23 +659,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -1157,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -1208,7 +1209,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -1287,7 +1287,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -1367,10 +1367,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -1698,8 +1696,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
delete from t2 ;
prepare stmt1 from ' insert into t2 (b,a)
@@ -1717,8 +1715,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
drop table t2;
drop table if exists t5 ;
@@ -1760,15 +1758,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -1784,21 +1782,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -1814,13 +1812,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -1902,40 +1900,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -1949,38 +1947,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -1999,78 +1997,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -2087,40 +2085,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -2131,38 +2129,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -2177,76 +2175,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -2557,12 +2555,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2574,18 +2572,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2597,18 +2595,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2626,12 +2624,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2649,14 +2647,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2668,45 +2666,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2724,21 +2722,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -2803,10 +2801,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00
-53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
@@ -2946,61 +2944,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -3031,31 +3037,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3063,12 +3069,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3077,7 +3083,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
diff --git a/mysql-test/r/ps_7ndb.result b/mysql-test/r/ps_7ndb.result
index baceb1e4a9e..7a20fb3146d 100644
--- a/mysql-test/r/ps_7ndb.result
+++ b/mysql-test/r/ps_7ndb.result
@@ -10,8 +10,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
-c13 date, c14 datetime, c15 timestamp(14), c16 time,
-c17 year, c18 bit, c19 bool, c20 char,
+c13 date, c14 datetime, c15 timestamp, c16 time,
+c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -59,17 +59,17 @@ def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
-def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
-def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
+def test t9 t9 c11 c11 246 9 6 Y 0 4 63
+def test t9 t9 c12 c12 246 10 6 Y 0 4 63
def test t9 t9 c13 c13 10 10 10 Y 128 0 63
def test t9 t9 c14 c14 12 19 19 Y 128 0 63
def test t9 t9 c15 c15 7 19 19 N 1249 0 63
def test t9 t9 c16 c16 11 8 8 Y 128 0 63
def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
-def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
+def test t9 t9 c18 c18 1 4 1 Y 32768 0 63
def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
def test t9 t9 c20 c20 254 1 1 Y 0 0 8
-def test t9 t9 c21 c21 253 10 10 Y 0 0 8
+def test t9 t9 c21 c21 254 10 10 Y 0 0 8
def test t9 t9 c22 c22 253 30 30 Y 0 0 8
def test t9 t9 c23 c23 252 255 8 Y 144 0 63
def test t9 t9 c24 c24 252 255 8 Y 16 0 8
@@ -446,9 +446,10 @@ limit 1 ';
execute stmt1 ;
a b
1 one
-prepare stmt1 from ' select a,b from t1
-limit ? ';
-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 2
+prepare stmt1 from ' select a,b from t1 order by a limit ? ';
+execute stmt1 using @arg00;
+a b
+1 one
set @arg00='b' ;
set @arg01=0 ;
set @arg02=2 ;
@@ -532,44 +533,44 @@ the join statement is:
SELECT * FROM t2 right join t1 using(a) order by t2.a
prepare stmt1 from @query9 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural right join t1 order by t2.a
prepare stmt1 from @query8 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query7 ;
@@ -595,44 +596,44 @@ the join statement is:
SELECT * FROM t2 left join t1 using(a) order by t2.a
prepare stmt1 from @query6 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural left join t1 order by t2.a
prepare stmt1 from @query5 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b
+1 one
+2 two
+3 three
+4 four
the join statement is:
SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a
prepare stmt1 from @query4 ;
@@ -658,23 +659,23 @@ the join statement is:
SELECT * FROM t2 join t1 using(a) order by t2.a
prepare stmt1 from @query3 ;
execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
-execute stmt1 ;
-a b a b
-1 one 1 one
-2 two 2 two
-3 three 3 three
-4 four 4 four
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
+execute stmt1 ;
+a b b
+1 one one
+2 two two
+3 three three
+4 four four
the join statement is:
SELECT * FROM t2 natural join t1 order by t2.a
prepare stmt1 from @query2 ;
@@ -1157,7 +1158,7 @@ def table 253 64 2 Y 0 31 8
def type 253 10 3 Y 0 31 8
def possible_keys 253 4096 0 Y 0 31 8
def key 253 64 0 Y 0 31 8
-def key_len 8 3 0 Y 32928 0 63
+def key_len 253 1365 0 Y 0 31 8
def ref 253 1024 0 Y 0 31 8
def rows 8 10 1 Y 32928 0 63
def Extra 253 255 0 N 1 31 8
@@ -1208,7 +1209,6 @@ execute stmt1 using @arg00;
select a,b from t1 where b=@arg00;
a b
prepare stmt1 from 'truncate table t1' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
test_sequence
------ update tests ------
delete from t1 ;
@@ -1287,7 +1287,7 @@ set @arg00=NULL;
set @arg01=2;
execute stmt1 using @arg00, @arg01;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
+Warning 1048 Column 'a' cannot be null
select a,b from t1 order by a;
a b
0 two
@@ -1367,10 +1367,8 @@ execute stmt1 ;
select a,b from t1 where b = 'bla' ;
a b
2 bla
-prepare stmt1 from 'update t1 set b=''bla''
-where a=2
-limit ?';
-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 3
+prepare stmt1 from 'update t1 set b=''bla'' where a=2 limit ?';
+execute stmt1 using @arg00;
test_sequence
------ insert tests ------
delete from t1 ;
@@ -1698,8 +1696,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
delete from t2 ;
prepare stmt1 from ' insert into t2 (b,a)
@@ -1717,8 +1715,8 @@ affected rows: 3
info: Records: 3 Duplicates: 0 Warnings: 0
select a,b from t2 order by a ;
a b
-3 duplicate
-4 duplicate
+3 duplicate
+4 duplicate
103 three
drop table t2;
drop table if exists t5 ;
@@ -1760,15 +1758,15 @@ NULL as const12, @arg12 as param12,
show create table t5 ;
Table Create Table
t5 CREATE TABLE `t5` (
- `const01` bigint(1) NOT NULL default '0',
+ `const01` int(1) NOT NULL default '0',
`param01` bigint(20) default NULL,
- `const02` double(3,1) NOT NULL default '0.0',
- `param02` double default NULL,
+ `const02` decimal(2,1) NOT NULL default '0.0',
+ `param02` decimal(65,30) default NULL,
`const03` double NOT NULL default '0',
`param03` double default NULL,
- `const04` char(3) NOT NULL default '',
+ `const04` varchar(3) NOT NULL default '',
`param04` longtext,
- `const05` binary(3) NOT NULL default '',
+ `const05` varbinary(3) NOT NULL default '',
`param05` longblob,
`const06` varchar(10) NOT NULL default '',
`param06` longtext,
@@ -1784,21 +1782,21 @@ t5 CREATE TABLE `t5` (
`param11` bigint(20) default NULL,
`const12` binary(0) default NULL,
`param12` bigint(20) default NULL,
- `param13` double default NULL,
+ `param13` decimal(65,30) default NULL,
`param14` longtext,
`param15` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t5 ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def test t5 t5 const01 const01 8 1 1 N 32769 0 63
+def test t5 t5 const01 const01 3 1 1 N 32769 0 63
def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
-def test t5 t5 const02 const02 5 3 3 N 32769 1 63
-def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
-def test t5 t5 const03 const03 5 23 1 N 32769 31 63
-def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
-def test t5 t5 const04 const04 254 3 3 N 1 0 8
+def test t5 t5 const02 const02 246 4 3 N 1 1 63
+def test t5 t5 param02 param02 246 67 32 Y 0 30 63
+def test t5 t5 const03 const03 5 17 1 N 32769 31 63
+def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
+def test t5 t5 const04 const04 253 3 3 N 1 0 8
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
-def test t5 t5 const05 const05 254 3 3 N 129 0 63
+def test t5 t5 const05 const05 253 3 3 N 129 0 63
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
def test t5 t5 const06 const06 253 10 10 N 1 0 8
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
@@ -1814,13 +1812,13 @@ def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
-def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
+def test t5 t5 param13 param13 246 67 0 Y 0 30 63
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
const01 8
param01 8
const02 8.0
-param02 8
+param02 8.000000000000000000000000000000
const03 8
param03 8
const04 abc
@@ -1902,40 +1900,40 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8,
@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
@@ -1949,38 +1947,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@@ -1999,78 +1997,78 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@@ -2087,40 +2085,40 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
c25, c26, c27, c28, c29, c30, c31, c32
@@ -2131,38 +2129,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@@ -2177,76 +2175,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 1 Y 128 31 63
-def @arg03 254 20 1 Y 128 31 63
-def @arg04 254 20 1 Y 128 31 63
-def @arg05 254 20 1 Y 128 31 63
-def @arg06 254 20 1 Y 128 31 63
-def @arg07 254 20 1 Y 128 31 63
-def @arg08 254 20 1 Y 128 31 63
-def @arg09 254 20 1 Y 128 31 63
-def @arg10 254 20 1 Y 128 31 63
-def @arg11 254 20 1 Y 128 31 63
-def @arg12 254 20 1 Y 128 31 63
-def @arg13 254 8192 10 Y 128 31 63
-def @arg14 254 8192 19 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 8 Y 128 31 63
-def @arg17 254 20 4 Y 128 31 63
-def @arg18 254 20 1 Y 128 31 63
-def @arg19 254 20 1 Y 128 31 63
-def @arg20 254 8192 1 Y 0 31 8
-def @arg21 254 8192 10 Y 0 31 8
-def @arg22 254 8192 30 Y 0 31 8
-def @arg23 254 8192 8 Y 128 31 63
-def @arg24 254 8192 8 Y 0 31 8
-def @arg25 254 8192 4 Y 128 31 63
-def @arg26 254 8192 4 Y 0 31 8
-def @arg27 254 8192 10 Y 128 31 63
-def @arg28 254 8192 10 Y 0 31 8
-def @arg29 254 8192 8 Y 128 31 63
-def @arg30 254 8192 8 Y 0 31 8
-def @arg31 254 8192 3 Y 0 31 8
-def @arg32 254 8192 6 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 1 Y 128 0 63
+def @arg03 253 20 1 Y 128 0 63
+def @arg04 253 20 1 Y 128 0 63
+def @arg05 253 20 1 Y 128 0 63
+def @arg06 253 20 1 Y 128 0 63
+def @arg07 253 23 1 Y 128 31 63
+def @arg08 253 23 1 Y 128 31 63
+def @arg09 253 23 1 Y 128 31 63
+def @arg10 253 23 1 Y 128 31 63
+def @arg11 253 83 6 Y 128 30 63
+def @arg12 253 83 6 Y 128 30 63
+def @arg13 253 8192 10 Y 128 31 63
+def @arg14 253 8192 19 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 8 Y 128 31 63
+def @arg17 253 20 4 Y 128 0 63
+def @arg18 253 20 1 Y 128 0 63
+def @arg19 253 20 1 Y 128 0 63
+def @arg20 253 8192 1 Y 0 31 8
+def @arg21 253 8192 10 Y 0 31 8
+def @arg22 253 8192 30 Y 0 31 8
+def @arg23 253 8192 8 Y 128 31 63
+def @arg24 253 8192 8 Y 0 31 8
+def @arg25 253 8192 4 Y 128 31 63
+def @arg26 253 8192 4 Y 0 31 8
+def @arg27 253 8192 10 Y 128 31 63
+def @arg28 253 8192 10 Y 0 31 8
+def @arg29 253 8192 8 Y 128 31 63
+def @arg30 253 8192 8 Y 0 31 8
+def @arg31 253 8192 3 Y 0 31 8
+def @arg32 253 8192 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
-1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
+1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def @arg01 254 20 1 Y 128 31 63
-def @arg02 254 20 0 Y 128 31 63
-def @arg03 254 20 0 Y 128 31 63
-def @arg04 254 20 0 Y 128 31 63
-def @arg05 254 20 0 Y 128 31 63
-def @arg06 254 20 0 Y 128 31 63
-def @arg07 254 20 0 Y 128 31 63
-def @arg08 254 20 0 Y 128 31 63
-def @arg09 254 20 0 Y 128 31 63
-def @arg10 254 20 0 Y 128 31 63
-def @arg11 254 20 0 Y 128 31 63
-def @arg12 254 20 0 Y 128 31 63
-def @arg13 254 8192 0 Y 128 31 63
-def @arg14 254 8192 0 Y 128 31 63
-def @arg15 254 8192 19 Y 128 31 63
-def @arg16 254 8192 0 Y 128 31 63
-def @arg17 254 20 0 Y 128 31 63
-def @arg18 254 20 0 Y 128 31 63
-def @arg19 254 20 0 Y 128 31 63
-def @arg20 254 8192 0 Y 0 31 8
-def @arg21 254 8192 0 Y 0 31 8
-def @arg22 254 8192 0 Y 0 31 8
-def @arg23 254 8192 0 Y 128 31 63
-def @arg24 254 8192 0 Y 0 31 8
-def @arg25 254 8192 0 Y 128 31 63
-def @arg26 254 8192 0 Y 0 31 8
-def @arg27 254 8192 0 Y 128 31 63
-def @arg28 254 8192 0 Y 0 31 8
-def @arg29 254 8192 0 Y 128 31 63
-def @arg30 254 8192 0 Y 0 31 8
-def @arg31 254 8192 0 Y 0 31 8
-def @arg32 254 8192 0 Y 0 31 8
+def @arg01 253 20 1 Y 128 0 63
+def @arg02 253 20 0 Y 128 0 63
+def @arg03 253 20 0 Y 128 0 63
+def @arg04 253 20 0 Y 128 0 63
+def @arg05 253 20 0 Y 128 0 63
+def @arg06 253 20 0 Y 128 0 63
+def @arg07 253 23 0 Y 128 31 63
+def @arg08 253 23 0 Y 128 31 63
+def @arg09 253 23 0 Y 128 31 63
+def @arg10 253 23 0 Y 128 31 63
+def @arg11 253 83 0 Y 128 30 63
+def @arg12 253 83 0 Y 128 30 63
+def @arg13 253 8192 0 Y 128 31 63
+def @arg14 253 8192 0 Y 128 31 63
+def @arg15 253 8192 19 Y 128 31 63
+def @arg16 253 8192 0 Y 128 31 63
+def @arg17 253 20 0 Y 128 0 63
+def @arg18 253 20 0 Y 128 0 63
+def @arg19 253 20 0 Y 128 0 63
+def @arg20 253 8192 0 Y 0 31 8
+def @arg21 253 8192 0 Y 0 31 8
+def @arg22 253 8192 0 Y 0 31 8
+def @arg23 253 8192 0 Y 128 31 63
+def @arg24 253 8192 0 Y 0 31 8
+def @arg25 253 8192 0 Y 128 31 63
+def @arg26 253 8192 0 Y 0 31 8
+def @arg27 253 8192 0 Y 128 31 63
+def @arg28 253 8192 0 Y 0 31 8
+def @arg29 253 8192 0 Y 128 31 63
+def @arg30 253 8192 0 Y 0 31 8
+def @arg31 253 8192 0 Y 0 31 8
+def @arg32 253 8192 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
@@ -2557,12 +2555,12 @@ set @arg00= 9223372036854775807 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2574,18 +2572,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '9223372036854775807' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2597,18 +2595,18 @@ c7 9.22337e+18
c8 9.22337203685478e+18
c9 9.22337203685478e+18
c10 9.22337203685478e+18
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -9223372036854775808 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2626,12 +2624,12 @@ set @arg00= '-9223372036854775808' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2649,14 +2647,14 @@ set @arg00= 1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 127
c2 32767
@@ -2668,45 +2666,45 @@ c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= '1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 1
-c2 1
-c3 1
-c4 1
-c5 1
-c6 1
+c1 127
+c2 32767
+c3 8388607
+c4 2147483647
+c5 2147483647
+c6 9223372036854775807
c7 3.40282e+38
c8 1.11111111111111e+50
c9 1.11111111111111e+50
c10 1.11111111111111e+50
-c12 99999.9999
+c12 9999.9999
execute my_delete ;
set @arg00= -1.11111111111111111111e+50 ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1264 Data truncated; out of range for column 'c1' at row 1
-Warning 1264 Data truncated; out of range for column 'c2' at row 1
-Warning 1264 Data truncated; out of range for column 'c3' at row 1
-Warning 1264 Data truncated; out of range for column 'c4' at row 1
-Warning 1264 Data truncated; out of range for column 'c5' at row 1
-Warning 1264 Data truncated; out of range for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
c1 -128
c2 -32768
@@ -2724,21 +2722,21 @@ set @arg00= '-1.11111111111111111111e+50' ;
execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
@arg00, @arg00, @arg00, @arg00, @arg00 ;
Warnings:
-Warning 1265 Data truncated for column 'c1' at row 1
-Warning 1265 Data truncated for column 'c2' at row 1
-Warning 1265 Data truncated for column 'c3' at row 1
-Warning 1265 Data truncated for column 'c4' at row 1
-Warning 1265 Data truncated for column 'c5' at row 1
-Warning 1265 Data truncated for column 'c6' at row 1
-Warning 1264 Data truncated; out of range for column 'c7' at row 1
-Warning 1264 Data truncated; out of range for column 'c12' at row 1
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+Warning 1264 Out of range value adjusted for column 'c2' at row 1
+Warning 1264 Out of range value adjusted for column 'c3' at row 1
+Warning 1264 Out of range value adjusted for column 'c4' at row 1
+Warning 1264 Out of range value adjusted for column 'c5' at row 1
+Warning 1264 Out of range value adjusted for column 'c6' at row 1
+Warning 1264 Out of range value adjusted for column 'c7' at row 1
+Warning 1264 Out of range value adjusted for column 'c12' at row 1
execute my_select ;
-c1 -1
-c2 -1
-c3 -1
-c4 -1
-c5 -1
-c6 -1
+c1 -128
+c2 -32768
+c3 -8388608
+c4 -2147483648
+c5 -2147483648
+c6 -9223372036854775808
c7 -3.40282e+38
c8 -1.11111111111111e+50
c9 -1.11111111111111e+50
@@ -2803,10 +2801,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
41 4 41 41 41 41 41 41 41 41 41 41
42 4 42 42 42 42 42 42 42 42 42 42
43 4 43 43 43 43 43 43 43 43 43 43
-50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
-51 5 51 51 51 51 51 51 51 51 51 51
-52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00
-53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00
+50 5 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
+51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
+52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
+53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
55 5 55 55 55 55 55 55 55 55 55 55
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
@@ -2946,61 +2944,69 @@ delete from t9 ;
test_sequence
-- insert into date/time columns --
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
+Note 1265 Data truncated for column 'c13' at row 1
Warning 1265 Data truncated for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
-Warning 1264 Data truncated; out of range for column 'c13' at row 1
-Warning 1265 Data truncated for column 'c14' at row 1
+Warning 1264 Out of range value adjusted for column 'c13' at row 1
+Warning 1264 Out of range value adjusted for column 'c14' at row 1
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
Warnings:
Warning 1265 Data truncated for column 'c15' at row 1
-Warning 1264 Data truncated; out of range for column 'c16' at row 1
-Warning 1264 Data truncated; out of range for column 'c17' at row 1
+Warning 1264 Out of range value adjusted for column 'c16' at row 1
+Warning 1264 Out of range value adjusted for column 'c17' at row 1
select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
c1 c13 c14 c15 c16 c17
20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
@@ -3031,31 +3037,31 @@ test_sequence
-- select .. where date/time column = .. --
set @arg00= '1991-01-01 01:01:01' ;
select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01' ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
+where c1= 20 and c13= CAST('1991-01-01 01:01:01' AS DATE) and c14= '1991-01-01 01:01:01' and
c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
c17= '1991-01-01 01:01:01'" ;
execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3063,12 +3069,12 @@ c17= CAST('1991-01-01 01:01:01' as datetime) ;
found
true
select 'true' as found from t9
-where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
+where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 and c16= @arg00
and c17= @arg00 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
+where c1= 20 and c13= CAST('1991-01-01 00:00:00' as datetime) and
c14= CAST('1991-01-01 01:01:01' as datetime) and
c15= CAST('1991-01-01 01:01:01' as datetime) and
c16= CAST('1991-01-01 01:01:01' as datetime) and
@@ -3077,7 +3083,7 @@ execute stmt1 ;
found
true
prepare stmt1 from "select 'true' as found from t9
-where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
+where c1= 20 and c13= CAST(? AS DATE) and c14= ? and c15= ? and c16= ? and c17= ?" ;
execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
found
true
diff --git a/mysql-test/r/ps_grant.result b/mysql-test/r/ps_grant.result
index 1d66bad7eb7..fdc1f97bb4c 100644
--- a/mysql-test/r/ps_grant.result
+++ b/mysql-test/r/ps_grant.result
@@ -76,3 +76,15 @@ commit ;
show grants for second_user@localhost ;
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
drop database mysqltest;
+prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
+identified by ''looser'' ';
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+grant all on test.t1 to drop_user@localhost
+identified by 'looser' ;
+prepare stmt3 from ' revoke all privileges on test.t1 from
+drop_user@localhost ';
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+revoke all privileges on test.t1 from drop_user@localhost ;
+prepare stmt3 from ' drop user drop_user@localhost ';
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+drop user drop_user@localhost;
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index 4d0c262898b..68f18d1b0b2 100644
--- a/mysql-test/r/query_cache.result
+++ b/mysql-test/r/query_cache.result
@@ -179,12 +179,22 @@ a
1
2
3
+select * from t1 where a IN (select sql_cache a from t1);
+a
+1
+2
+3
+select * from t1 where a IN (select a from t1 union select sql_cache a from t1);
+a
+1
+2
+3
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 4
show status like "Qcache_queries_in_cache";
Variable_name Value
-Qcache_queries_in_cache 2
+Qcache_queries_in_cache 1
set query_cache_type=on;
reset query cache;
show status like "Qcache_queries_in_cache";
@@ -195,6 +205,41 @@ a
1
2
3
+select * from t1 union select sql_no_cache * from t1;
+a
+1
+2
+3
+select * from t1 where a IN (select sql_no_cache a from t1);
+a
+1
+2
+3
+select * from t1 where a IN (select a from t1 union select sql_no_cache a from t1);
+a
+1
+2
+3
+select sql_cache sql_no_cache * from t1;
+a
+1
+2
+3
+select sql_cache * from t1 union select sql_no_cache * from t1;
+a
+1
+2
+3
+select sql_cache * from t1 where a IN (select sql_no_cache a from t1);
+a
+1
+2
+3
+select sql_cache * from t1 where a IN (select a from t1 union select sql_no_cache a from t1);
+a
+1
+2
+3
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
@@ -231,7 +276,7 @@ explain extended select benchmark(1,1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select sql_no_cache benchmark(1,1) AS `benchmark(1,1)` from test.t1
+Note 1003 select benchmark(1,1) AS `benchmark(1,1)` from `test`.`t1`
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
@@ -622,7 +667,7 @@ word
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
-load data infile 'TEST_DIR/std_data/words.dat' into table t1;
+load data infile 'MYSQLTEST_VARDIR/std_data_ln/words.dat' into table t1;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
@@ -776,6 +821,7 @@ Qcache_hits 6
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 4
+SET NAMES default;
DROP TABLE t1;
CREATE TABLE t1 (a int(1));
CREATE DATABASE mysqltest;
@@ -848,6 +894,42 @@ group_concat(a)
12345678901234567890
set group_concat_max_len=default;
drop table t1;
+create table t1 (a int);
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 18
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 6
+/**/ select * from t1;
+a
+/**/ select * from t1;
+a
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 19
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 7
+DROP TABLE t1;
+SET GLOBAL query_cache_size=0;
+SET SESSION query_cache_type = 2;
+create table t1(a int);
+select table_name from information_schema.tables
+where table_schema="test";
+table_name
+t1
+drop table t1;
+select table_name from information_schema.tables
+where table_schema="test";
+table_name
+SET SESSION query_cache_type = 1;
set global query_cache_size=1024*1024;
flush query cache;
create table t1 ( a int );
@@ -895,6 +977,7 @@ abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzab
zyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcba
flush query cache;
drop table t1, t2;
+set GLOBAL query_cache_size=1355776;
flush status;
CREATE TABLE t1 (
`date` datetime NOT NULL default '0000-00-00 00:00:00',
@@ -906,20 +989,20 @@ SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
COUNT(*)
0
Warnings:
-Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
-Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
+Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
+Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 0
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
COUNT(*)
0
Warnings:
-Warning 1292 Truncated incorrect datetime value: '20050328 invalid'
-Warning 1292 Truncated incorrect datetime value: '20050328 invalid'
+Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 1
+Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 0
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
COUNT(*)
0
Warnings:
-Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
-Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
+Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
+Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 0
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
@@ -1007,7 +1090,276 @@ show status like "Qcache_hits";
Variable_name Value
Qcache_hits 1
drop table t1;
+create table t1 (a int);
+insert into t1 values (1),(2);
+CREATE PROCEDURE `p1`()
+begin
+Declare c1 cursor for select a from t1;
+open c1;
+select * from t1;
+end//
+call p1()//
+a
+1
+2
+drop procedure p1;
+create function f1() returns int
+begin
+Declare var1 int;
+select max(a) from t1 into var1;
+return var1;
+end//
+create procedure `p1`()
+begin
+select a, f1() from t1;
+end//
+call p1()//
+a f1()
+1 2
+2 2
+drop procedure p1//
+drop function f1//
+drop table t1//
+flush query cache;
+reset query cache;
+flush status;
+create table t1 (s1 int)//
+create procedure f1 () begin
+select sql_cache * from t1;
+select sql_cache * from t1;
+select sql_cache * from t1;
+end;//
+create procedure f2 () begin
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+end;//
+create procedure f3 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+end;//
+create procedure f4 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1 where s1=1;
+end;//
+call f1();
+s1
+s1
+s1
+call f1();
+s1
+s1
+s1
+call f1();
+s1
+s1
+s1
+select sql_cache * from t1;
+s1
+insert into t1 values (1);
+select sql_cache * from t1;
+s1
+1
+call f1();
+s1
+1
+s1
+1
+s1
+1
+call f1();
+s1
+1
+s1
+1
+s1
+1
+select sql_cache * from t1;
+s1
+1
+flush query cache;
+reset query cache;
+flush status;
+select sql_cache * from t1;
+s1
+1
+select sql_cache * from t1 where s1=1;
+s1
+1
+call f1();
+s1
+1
+s1
+1
+s1
+1
+call f2();
+s1
+1
+s1
+1
+call f3();
+s1
+1
+s1
+1
+call f4();
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+call f4();
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+call f3();
+s1
+1
+s1
+1
+call f2();
+s1
+1
+s1
+1
+select sql_cache * from t1 where s1=1;
+s1
+1
+insert into t1 values (2);
+call f1();
+s1
+1
+2
+s1
+1
+2
+s1
+1
+2
+select sql_cache * from t1 where s1=1;
+s1
+1
+select sql_cache * from t1;
+s1
+1
+2
+call f1();
+s1
+1
+2
+s1
+1
+2
+s1
+1
+2
+call f3();
+s1
+1
+2
+s1
+1
+call f3();
+s1
+1
+2
+s1
+1
+call f1();
+s1
+1
+2
+s1
+1
+2
+s1
+1
+2
+drop procedure f1;
+drop procedure f2;
+drop procedure f3;
+drop procedure f4;
+drop table t1;
set GLOBAL query_cache_size=0;
+SET GLOBAL query_cache_size=102400;
+create table t1(a int);
+insert into t1 values(0), (1), (4), (5);
+select * from t1 where a > 3;
+a
+4
+5
+select * from t1 where a > 3;
+a
+4
+5
+show status like 'last_query_cost';
+Variable_name Value
+Last_query_cost 0.000000
+drop table t1;
+SET GLOBAL query_cache_size=0;
+set global query_cache_size=1024*1024;
+flush status;
+create table t1 (a int);
+insert into t1 (a) values (1), (2), (3);
+select * from t1;
+a
+1
+2
+3
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 0
+select * from t1;
+a
+1
+2
+3
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 1
+create table t2 like t1;
+select * from t1;
+a
+1
+2
+3
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 2
+insert into t2 select * from t1;
+select * from t1;
+a
+1
+2
+3
+show status like 'Qcache_hits';
+Variable_name Value
+Qcache_hits 3
+drop table t1, t2;
+create table t1(c1 int);
+create table t2(c1 int);
+create table t3(c1 int);
+create view v1 as select t3.c1 as c1 from t3,t2 where t3.c1 = t2.c1;
+start transaction;
+insert into t1(c1) select c1 from v1;
+drop table t1, t2, t3;
+drop view v1;
+set global query_cache_size=0;
create table t1 (a int);
insert into t1 values (1),(2),(3);
set GLOBAL query_cache_type=1;
@@ -1024,6 +1376,11 @@ week('2007-01-04')
0
0
0
+select extract(WEEK FROM '2007-01-04') from t1;
+extract(WEEK FROM '2007-01-04')
+0
+0
+0
set LOCAL default_week_format = 2;
select week('2007-01-04');
week('2007-01-04')
@@ -1033,6 +1390,30 @@ week('2007-01-04')
53
53
53
+select extract(WEEK FROM '2007-01-04') from t1;
+extract(WEEK FROM '2007-01-04')
+53
+53
+53
+reset query cache;
+set LOCAL div_precision_increment=2;
+select 1/7;
+1/7
+0.14
+select 1/7 from t1;
+1/7
+0.14
+0.14
+0.14
+set LOCAL div_precision_increment=4;
+select 1/7;
+1/7
+0.1429
+select 1/7 from t1;
+1/7
+0.1429
+0.1429
+0.1429
drop table t1;
CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
@@ -1056,6 +1437,219 @@ Full-text indexes are called collections 0
Only MyISAM tables support collections 0
Function MATCH ... AGAINST() is used to do a search 0
Full-text search in MySQL implements vector space model 0
+create function change_global() returns integer
+begin
+set global ft_boolean_syntax='+ -><()~*:""&|';
+return 1;
+end|
+select *, change_global() from t1;
+a b change_global()
+MySQL has now support for full-text search 1
+Full-text indexes are called collections 1
+Only MyISAM tables support collections 1
+Function MATCH ... AGAINST() is used to do a search 1
+Full-text search in MySQL implements vector space model 1
+drop function change_global;
+drop table t1;
+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;
+set GLOBAL query_cache_size=1000000;
+create table t1 (a char);
+insert into t1 values ('c');
+a
+drop table t1;
+set GLOBAL query_cache_size= default;
+set GLOBAL query_cache_size=1000000;
+create table t1 (a char);
+insert into t1 values ('c');
+a
+drop table t1;
+set GLOBAL query_cache_size= default;
+SET GLOBAL query_cache_size=64*1024*1024;
+CREATE TABLE t1 (id INT);
+CREATE PROCEDURE proc29856(IN theUPC TEXT)
+BEGIN
+SET @stmtStr := '';
+SELECT CONCAT("SELECT id FROM t1 WHERE id IN (",theUPC,")") INTO @stmtStr;
+PREPARE stmt FROM @stmtStr;
+EXECUTE stmt;
+END |
+CALL proc29856('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
+25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
+51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,
+77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,
+102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,
+121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,
+140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,
+159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,
+178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,
+197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,
+216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,
+235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,
+254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,
+273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,
+292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,
+311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,
+330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,
+349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,
+368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,
+387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,
+406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,
+425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,
+444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,
+463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,
+482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,
+501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,
+520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,
+539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,
+558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,
+577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,
+596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,
+615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,
+634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,
+653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,
+672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,
+691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,
+710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,
+729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,
+748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,
+767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,
+786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,
+805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,
+824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,
+843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,
+862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,
+881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,
+900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,
+919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,
+938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,
+957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,
+976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,
+995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,
+1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,
+1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,
+1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,
+1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,
+1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,
+1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,
+1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,
+1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,
+1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,
+1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,
+1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,
+1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,
+1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,
+1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,
+1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,
+1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,
+1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,
+1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,
+1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,
+1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,
+1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,
+1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,
+1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,
+1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,
+1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,
+1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,
+1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,
+1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,
+1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,
+1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,
+1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,
+1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,
+1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,
+1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,
+1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,
+1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,
+1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,
+1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,
+1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,
+1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,
+1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,
+1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,
+1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,
+1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,
+1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,
+1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,
+1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,
+1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,
+1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,
+1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,
+1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,
+1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,
+1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,
+1806,1807,1808,1809,1810,1811');
+id
+DROP PROCEDURE proc29856;
+DROP TABLE t1;
+SET GLOBAL query_cache_size= default;
+Bug#28249 Query Cache returns wrong result with concurrent insert/ certain lock
+set GLOBAL query_cache_type=1;
+set GLOBAL query_cache_limit=10000;
+set GLOBAL query_cache_min_res_unit=0;
+set GLOBAL query_cache_size= 100000;
+flush tables;
+drop table if exists t1, t2;
+create table t1 (a int);
+create table t2 (a int);
+insert into t1 values (1),(2),(3);
+Locking table T2 with a write lock.
+lock table t2 write;
+Select blocked by write lock.
+select *, (select count(*) from t2) from t1;;
+Sleeing is ok, because selecting should be done very fast.
+Inserting into table T1.
+insert into t1 values (4);
+Unlocking the tables.
+unlock tables;
+Collecting result from previously blocked select.
+Next select should contain 4 rows, as the insert is long finished.
+select *, (select count(*) from t2) from t1;
+a (select count(*) from t2)
+1 0
+2 0
+3 0
+4 0
+reset query cache;
+select *, (select count(*) from t2) from t1;
+a (select count(*) from t2)
+1 0
+2 0
+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_notembedded.result b/mysql-test/r/query_cache_notembedded.result
index e773a63525b..8e5df012cfb 100644
--- a/mysql-test/r/query_cache_notembedded.result
+++ b/mysql-test/r/query_cache_notembedded.result
@@ -94,4 +94,254 @@ a
SELECT * FROM t1;
a
drop table t1;
+flush query cache;
+reset query cache;
+flush status;
+create table t1 (s1 int)//
+create procedure f1 () begin
+select sql_cache * from t1;
+select sql_cache * from t1;
+select sql_cache * from t1;
+end;//
+create procedure f2 () begin
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+end;//
+create procedure f3 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+end;//
+create procedure f4 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1 where s1=1;
+end;//
+call f1();
+s1
+s1
+s1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 3
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+call f1();
+s1
+s1
+s1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 3
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 3
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 3
+call f1();
+s1
+s1
+s1
+select sql_cache * from t1;
+s1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 4
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 4
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 6
+insert into t1 values (1);
+select sql_cache * from t1;
+s1
+1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 5
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 6
+call f1();
+s1
+1
+s1
+1
+s1
+1
+call f1();
+s1
+1
+s1
+1
+s1
+1
+select sql_cache * from t1;
+s1
+1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 4
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 8
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 10
+flush query cache;
+reset query cache;
+flush status;
+select sql_cache * from t1;
+s1
+1
+select sql_cache * from t1 where s1=1;
+s1
+1
+call f1();
+s1
+1
+s1
+1
+s1
+1
+call f2();
+s1
+1
+s1
+1
+call f3();
+s1
+1
+s1
+1
+call f4();
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+call f4();
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+s1
+1
+call f3();
+s1
+1
+s1
+1
+call f2();
+s1
+1
+s1
+1
+select sql_cache * from t1 where s1=1;
+s1
+1
+insert into t1 values (2);
+call f1();
+s1
+1
+2
+s1
+1
+2
+s1
+1
+2
+select sql_cache * from t1 where s1=1;
+s1
+1
+select sql_cache * from t1;
+s1
+1
+2
+call f1();
+s1
+1
+2
+s1
+1
+2
+s1
+1
+2
+call f3();
+s1
+1
+2
+s1
+1
+call f3();
+s1
+1
+2
+s1
+1
+call f1();
+s1
+1
+2
+s1
+1
+2
+s1
+1
+2
+drop procedure f1;
+drop procedure f2;
+drop procedure f3;
+drop procedure f4;
+drop table t1;
+reset query cache;
+drop function if exists f1;
+create table t1 (id int);
+create function f1 ()
+returns int
+begin
+declare i_var int;
+set i_var = sleep(3);
+insert into t1 values(3);
+set i_var = sleep(3);
+return 0;
+end;|
+select f1();
+select sleep(4);
+sleep(4)
+0
+select * from t1;
+id
+3
+f1()
+0
+select * from t1;
+id
+3
+reset query cache;
+select * from t1;
+id
+3
+drop table t1;
+drop function f1;
set GLOBAL query_cache_size=0;
diff --git a/mysql-test/r/query_cache_with_views.result b/mysql-test/r/query_cache_with_views.result
new file mode 100644
index 00000000000..03430bd504b
--- /dev/null
+++ b/mysql-test/r/query_cache_with_views.result
@@ -0,0 +1,196 @@
+drop table if exists t1,t2,v1,v2,v3;
+drop view if exists t1,t2,v1,v2,v3;
+set GLOBAL query_cache_size=1355776;
+flush status;
+create table t1 (a int, b int);
+create view v1 (c,d) as select sql_no_cache a,b from t1;
+create view v2 (c,d) as select a+rand(),b from t1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from v1;
+c d
+select * from v2;
+c d
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from v1;
+c d
+select * from v2;
+c d
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+drop view v1,v2;
+set query_cache_type=demand;
+flush status;
+create view v1 (c,d) as select sql_cache a,b from t1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 0
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from v1;
+c d
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from t1;
+a b
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from v1;
+c d
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from t1;
+a b
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+drop view v1;
+set query_cache_type=default;
+drop table t1;
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+create view v1 as select a from t1 where a > 1;
+select * from v1;
+a
+2
+3
+alter view v1 as select a from t1 where a > 2;
+select * from v1;
+a
+3
+drop view v1;
+select * from v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+drop table t1;
+create table t1 (a int, primary key (a), b int);
+create table t2 (a int, primary key (a), b int);
+insert into t2 values (1000, 2000);
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2;
+select * from v3;
+a b
+drop view v3;
+drop table t1, t2;
+create table t1(f1 int);
+insert into t1 values(1),(2),(3);
+create view v1 as select * from t1;
+set query_cache_wlock_invalidate=1;
+lock tables v1 read /*!32311 local */;
+unlock tables;
+set query_cache_wlock_invalidate=default;
+drop view v1;
+drop table t1;
+flush status;
+create table t1 (a int, b int);
+create algorithm=temptable view v1 as select * from t1;
+select * from v1;
+a b
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+select * from v1;
+a b
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+insert into t1 values (1,1);
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 1
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 1
+select * from v1;
+a b
+1 1
+select * from v1;
+a b
+1 1
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 1
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+drop view v1;
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+show status like "Qcache_inserts";
+Variable_name Value
+Qcache_inserts 2
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 2
+drop table t1;
+set GLOBAL query_cache_size=default;
diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result
index 4aaa114c0f9..58f8d077ac5 100644
--- a/mysql-test/r/range.result
+++ b/mysql-test/r/range.result
@@ -1,4 +1,4 @@
-drop table if exists t1, t2;
+drop table if exists t1, t2, t3;
CREATE TABLE t1 (
event_date date DEFAULT '0000-00-00' NOT NULL,
type int(11) DEFAULT '0' NOT NULL,
@@ -218,26 +218,26 @@ drop table t1;
create table t1 (x int, y int, index(x), index(y));
insert into t1 (x) values (1),(2),(3),(4),(5),(6),(7),(8),(9);
update t1 set y=x;
-explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 7 and t1.y+0;
+explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
-1 SIMPLE t2 range x x 5 NULL 4 Range checked for each record (index map: 0x1)
-explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 7 and t2.x <= t1.y+0;
+1 SIMPLE t2 range x x 5 NULL 2 Using where
+explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
-1 SIMPLE t2 range x x 5 NULL 4 Using where
+1 SIMPLE t2 range x x 5 NULL 2 Using where
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
-1 SIMPLE t2 ALL x NULL NULL NULL 9 Range checked for each record (index map: 0x1)
+1 SIMPLE t2 range x x 5 NULL 3 Using where
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
-1 SIMPLE t2 ALL x NULL NULL NULL 9 Range checked for each record (index map: 0x1)
+1 SIMPLE t2 range x x 5 NULL 3 Using where
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
-1 SIMPLE t2 ALL x NULL NULL NULL 9 Range checked for each record (index map: 0x1)
+1 SIMPLE t2 range x x 5 NULL 2 Using where
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
@@ -247,16 +247,21 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref x x 5 const 1 Using where; Using index
explain select count(*) from t1 where x in (1,2);
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range x x 5 NULL 2 Using where; Using index
+1 SIMPLE t1 index x x 5 NULL 9 Using where; Using index
drop table t1;
CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1));
-INSERT INTO t1 VALUES (0),(0),(1),(1);
+INSERT INTO t1 VALUES (0),(0),(0),(0),(0),(1),(1);
CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ref j1 j1 4 const 1 Using where; Using index
-1 SIMPLE t1 ALL i1 NULL NULL NULL 4 Range checked for each record (index map: 0x1)
+1 SIMPLE t2 ref j1 j1 4 const 1 Using index
+1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
+explain select * from t1 force index(i1), t2 force index(j1) where
+(t1.key1 <t2.keya + 1) and t2.keya=3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref j1 j1 4 const 1 Using index
+1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
DROP TABLE t1,t2;
CREATE TABLE t1 (
a int(11) default NULL,
@@ -410,13 +415,25 @@ count(*)
select count(*) from t2;
count(*)
1026
+analyze table t1,t2;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+test.t2 analyze status Table is already up to date
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range uid_index uid_index 4 NULL 128 Using where
+1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using where
+1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
+explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using where
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid != 0;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range uid_index uid_index 4 NULL 129 Using where
+1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using where
+1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
+explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid != 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using where
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
id name uid id name uid
@@ -531,7 +548,7 @@ count(*)
select count(*) from t2 where x = 18446744073709551601;
count(*)
0
-drop table t1;
+drop table t1,t2;
create table t1 (x bigint unsigned not null primary key) engine=innodb;
insert into t1(x) values (0xfffffffffffffff0);
insert into t1(x) values (0xfffffffffffffff1);
@@ -629,7 +646,6 @@ count(*)
drop table t1;
create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
-DROP TABLE IF EXISTS t2;
CREATE TABLE t2 (
pk1 int(11) NOT NULL,
pk2 int(11) NOT NULL,
@@ -688,7 +704,7 @@ WHERE s.oxrootid = 'd8c4177d09f8b11f5.52725521' AND
v.oxrootid ='d8c4177d09f8b11f5.52725521' AND
s.oxleft > v.oxleft AND s.oxleft < v.oxright;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE v ref OXLEFT,OXRIGHT,OXROOTID OXROOTID 32 const 5 Using where
+1 SIMPLE v ref OXLEFT,OXRIGHT,OXROOTID OXROOTID 34 const 5 Using where
1 SIMPLE s ALL OXLEFT NULL NULL NULL 5 Range checked for each record (index map: 0x4)
SELECT s.oxid FROM t1 v, t1 s
WHERE s.oxrootid = 'd8c4177d09f8b11f5.52725521' AND
@@ -843,3 +859,279 @@ and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh",
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16
drop table t1;
End of 4.1 tests
+CREATE TABLE t1 (
+id int(11) NOT NULL auto_increment,
+status varchar(20),
+PRIMARY KEY (id),
+KEY (status)
+);
+INSERT INTO t1 VALUES
+(1,'B'), (2,'B'), (3,'B'), (4,'B'), (5,'B'), (6,'B'),
+(7,'B'), (8,'B'), (9,'B'), (10,'B'), (11,'B'), (12,'B'),
+(13,'B'), (14,'B'), (15,'B'), (16,'B'), (17,'B'), (18,'B'),
+(19,'B'), (20,'B'), (21,'B'), (22,'B'), (23,'B'), (24,'B'),
+(25,'A'), (26,'A'), (27,'A'), (28,'A'), (29,'A'), (30,'A'),
+(31,'A'), (32,'A'), (33,'A'), (34,'A'), (35,'A'), (36,'A'),
+(37,'A'), (38,'A'), (39,'A'), (40,'A'), (41,'A'), (42,'A'),
+(43,'A'), (44,'A'), (45,'A'), (46,'A'), (47,'A'), (48,'A'),
+(49,'A'), (50,'A'), (51,'A'), (52,'A'), (53,'C'), (54,'C'),
+(55,'C'), (56,'C'), (57,'C'), (58,'C'), (59,'C'), (60,'C');
+EXPLAIN SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range status status 23 NULL 11 Using where
+EXPLAIN SELECT * FROM t1 WHERE status NOT IN ('A','B');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range status status 23 NULL 11 Using where
+SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
+id status
+53 C
+54 C
+55 C
+56 C
+57 C
+58 C
+59 C
+60 C
+SELECT * FROM t1 WHERE status NOT IN ('A','B');
+id status
+53 C
+54 C
+55 C
+56 C
+57 C
+58 C
+59 C
+60 C
+EXPLAIN SELECT status FROM t1 WHERE status <> 'A' AND status <> 'B';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range status status 23 NULL 11 Using where; Using index
+EXPLAIN SELECT status FROM t1 WHERE status NOT IN ('A','B');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range status status 23 NULL 11 Using where; Using index
+EXPLAIN SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range status status 23 NULL 10 Using where
+EXPLAIN SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range status status 23 NULL 10 Using where
+SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
+id status
+53 C
+54 C
+55 C
+56 C
+57 C
+58 C
+59 C
+60 C
+SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
+id status
+53 C
+54 C
+55 C
+56 C
+57 C
+58 C
+59 C
+60 C
+DROP TABLE t1;
+CREATE TABLE t1 (a int, b int, primary key(a,b));
+INSERT INTO t1 VALUES
+(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3),(4,1),(4,2),(4,3);
+CREATE VIEW v1 as SELECT a,b FROM t1 WHERE b=3;
+EXPLAIN SELECT a,b FROM t1 WHERE a < 2 and b=3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
+EXPLAIN SELECT a,b FROM v1 WHERE a < 2 and b=3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
+EXPLAIN SELECT a,b FROM t1 WHERE a < 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
+EXPLAIN SELECT a,b FROM v1 WHERE a < 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
+SELECT a,b FROM t1 WHERE a < 2 and b=3;
+a b
+1 3
+SELECT a,b FROM v1 WHERE a < 2 and b=3;
+a b
+1 3
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (name varchar(15) NOT NULL, KEY idx(name));
+INSERT INTO t1 VALUES ('Betty'), ('Anna');
+SELECT * FROM t1;
+name
+Anna
+Betty
+DELETE FROM t1 WHERE name NOT LIKE 'A%a';
+SELECT * FROM t1;
+name
+Anna
+DROP TABLE t1;
+CREATE TABLE t1 (a int, KEY idx(a));
+INSERT INTO t1 VALUES (NULL), (1), (2), (3);
+SELECT * FROM t1;
+a
+NULL
+1
+2
+3
+DELETE FROM t1 WHERE NOT(a <=> 2);
+SELECT * FROM t1;
+a
+2
+DROP TABLE t1;
+create table t1 (a int, b int, primary key(a,b));
+create view v1 as select a, b from t1;
+INSERT INTO `t1` VALUES
+(0,0),(1,0),(2,0),(3,0),(4,0),(5,1),(6,1),(7,1),(8,1),(9,1),(10,2),(11,2),(12,2)
+,(13,2),(14,2),(15,3),(16,3),(17,3),(18,3),(19,3);
+explain select * from t1 where a in (3,4) and b in (1,2,3);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
+explain select * from v1 where a in (3,4) and b in (1,2,3);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
+explain select * from t1 where a between 3 and 4 and b between 1 and 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
+explain select * from v1 where a between 3 and 4 and b between 1 and 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
+drop view v1;
+drop table t1;
+create table t3 (a int);
+insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (a varchar(10), filler char(200), key(a)) charset=binary;
+insert into t1 values ('a','');
+insert into t1 values ('a ','');
+insert into t1 values ('a ', '');
+insert into t1 select concat('a', 1000 + A.a + 10 * (B.a + 10 * C.a)), ''
+ from t3 A, t3 B, t3 C;
+create table t2 (a varchar(10), filler char(200), key(a));
+insert into t2 select * from t1;
+explain select * from t1 where a between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 13 NULL # Using where
+explain select * from t1 where a = 'a' or a='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 13 NULL # Using where
+explain select * from t2 where a between 'a' and 'a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref a a 13 const # Using where
+explain select * from t2 where a = 'a' or a='a ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref a a 13 const # Using where
+update t1 set a='b' where a<>'a';
+explain select * from t1 where a not between 'b' and 'b';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 13 NULL # Using where
+select a, hex(filler) from t1 where a not between 'b' and 'b';
+a hex(filler)
+a 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+drop table t1,t2,t3;
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, key(a));
+insert into t2 select 2*(A.a + 10*(B.a + 10*C.a)) from t1 A, t1 B, t1 C;
+set @a="select * from t2 force index (a) where a NOT IN(0";
+select count(*) from (select @a:=concat(@a, ',', a) from t2 ) Z;
+count(*)
+1000
+set @a=concat(@a, ')');
+insert into t2 values (11),(13),(15);
+set @b= concat("explain ", @a);
+prepare stmt1 from @b;
+execute stmt1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index a a 5 NULL 1003 Using where; Using index
+prepare stmt1 from @a;
+execute stmt1;
+a
+11
+13
+15
+drop table t1, t2;
+CREATE TABLE t1 (
+id int NOT NULL DEFAULT '0',
+b int NOT NULL DEFAULT '0',
+c int NOT NULL DEFAULT '0',
+INDEX idx1(b,c), INDEX idx2(c));
+INSERT INTO t1(id) VALUES (1), (2), (3), (4), (5), (6), (7), (8);
+INSERT INTO t1(b,c) VALUES (3,4), (3,4);
+SELECT * FROM t1 WHERE b<=3 AND 3<=c;
+id b c
+0 3 4
+0 3 4
+SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
+id b c
+0 3 4
+0 3 4
+EXPLAIN SELECT * FROM t1 WHERE b<=3 AND 3<=c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using where
+EXPLAIN SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using where
+SELECT * FROM t1 WHERE 0 < b OR 0 > c;
+id b c
+0 3 4
+0 3 4
+SELECT * FROM t1 WHERE 0 NOT BETWEEN b AND c;
+id b c
+0 3 4
+0 3 4
+EXPLAIN SELECT * FROM t1 WHERE 0 < b OR 0 > c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge idx1,idx2 idx1,idx2 4,4 NULL 4 Using sort_union(idx1,idx2); Using where
+EXPLAIN SELECT * FROM t1 WHERE 0 NOT BETWEEN b AND c;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge idx1,idx2 idx1,idx2 4,4 NULL 4 Using sort_union(idx1,idx2); Using where
+DROP TABLE t1;
+CREATE TABLE t1 (
+item char(20) NOT NULL default '',
+started datetime NOT NULL default '0000-00-00 00:00:00',
+price decimal(16,3) NOT NULL default '0.000',
+PRIMARY KEY (item,started)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES
+('A1','2005-11-01 08:00:00',1000),
+('A1','2005-11-15 00:00:00',2000),
+('A1','2005-12-12 08:00:00',3000),
+('A2','2005-12-01 08:00:00',1000);
+EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref PRIMARY PRIMARY 20 const 2 Using where
+Warnings:
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+item started price
+A1 2005-11-01 08:00:00 1000.000
+A1 2005-11-15 00:00:00 2000.000
+Warnings:
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-02 00:00:00';
+item started price
+A1 2005-11-01 08:00:00 1000.000
+A1 2005-11-15 00:00:00 2000.000
+DROP INDEX `PRIMARY` ON t1;
+EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
+Warnings:
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+item started price
+A1 2005-11-01 08:00:00 1000.000
+A1 2005-11-15 00:00:00 2000.000
+Warnings:
+Warning 1292 Incorrect datetime value: '2005-12-01 24:00:00' for column 'started' at row 1
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-02 00:00:00';
+item started price
+A1 2005-11-01 08:00:00 1000.000
+A1 2005-11-15 00:00:00 2000.000
+DROP TABLE t1;
diff --git a/mysql-test/r/read_only.result b/mysql-test/r/read_only.result
new file mode 100644
index 00000000000..69d25fbef6f
--- /dev/null
+++ b/mysql-test/r/read_only.result
@@ -0,0 +1,49 @@
+DROP TABLE IF EXISTS t1,t2,t3;
+grant CREATE, SELECT, DROP on *.* to test@localhost;
+set global read_only=0;
+create table t1 (a int);
+insert into t1 values(1);
+create table t2 select * from t1;
+set global read_only=1;
+create table t3 (a int);
+drop table t3;
+select @@global.read_only;
+@@global.read_only
+1
+create table t3 (a int);
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+insert into t1 values(1);
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+update t1 set a=1 where 1=0;
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+update t1,t2 set t1.a=t2.a+1 where t1.a=t2.a;
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+delete t1,t2 from t1,t2 where t1.a=t2.a;
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+create temporary table t3 (a int);
+create temporary table t4 (a int) select * from t3;
+insert into t3 values(1);
+insert into t4 select * from t3;
+update t1,t3 set t1.a=t3.a+1 where t1.a=t3.a;
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+update t1,t3 set t3.a=t1.a+1 where t1.a=t3.a;
+update t4,t3 set t4.a=t3.a+1 where t4.a=t3.a;
+delete t1 from t1,t3 where t1.a=t3.a;
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+delete t3 from t1,t3 where t1.a=t3.a;
+delete t4 from t3,t4 where t4.a=t3.a;
+create temporary table t1 (a int);
+insert into t1 values(1);
+update t1,t3 set t1.a=t3.a+1 where t1.a=t3.a;
+delete t1 from t1,t3 where t1.a=t3.a;
+drop table t1;
+insert into t1 values(1);
+ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement
+drop temporary table ttt;
+ERROR 42S02: Unknown table 'ttt'
+drop temporary table if exists ttt;
+Warnings:
+Note 1051 Unknown table 'ttt'
+drop table t1,t2;
+drop user test@localhost;
+set global read_only=0;
diff --git a/mysql-test/r/rename.result b/mysql-test/r/rename.result
index d7db297cf26..1257a668cce 100644
--- a/mysql-test/r/rename.result
+++ b/mysql-test/r/rename.result
@@ -55,3 +55,14 @@ t2
t4
drop table t2, t4;
End of 4.1 tests
+create table t1(f1 int);
+create view v1 as select * from t1;
+alter table v1 rename to v2;
+alter table v1 rename to v2;
+ERROR 42S02: Table 'test.v1' doesn't exist
+rename table v2 to v1;
+rename table v2 to v1;
+ERROR 42S01: Table 'v1' already exists
+drop view v1;
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/repair.result b/mysql-test/r/repair.result
index fc553c8a698..e0548233b86 100644
--- a/mysql-test/r/repair.result
+++ b/mysql-test/r/repair.result
@@ -26,12 +26,14 @@ t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
drop table t1;
repair table t1 use_frm;
Table Op Msg_type Msg_text
-test.t1 repair error Table 'test.t1' doesn't exist
+test.t1 repair Error Table 'test.t1' doesn't exist
+test.t1 repair error Corrupt
create table t1 engine=myisam SELECT 1,"table 1";
flush tables;
repair table t1;
Table Op Msg_type Msg_text
-test.t1 repair error Got error 130 from storage engine
+test.t1 repair Error Incorrect file format 't1'
+test.t1 repair error Corrupt
repair table t1 use_frm;
Table Op Msg_type Msg_text
test.t1 repair warning Number of rows changed from 0 to 1
@@ -74,6 +76,9 @@ INSERT INTO t1 VALUES
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
('0'),('0'),('0'),('0'),('0'),('0'),('0');
+Warnings:
+Error 1034 myisam_sort_buffer_size is too small
+Error 1034 Number of rows changed from 0 to 157
SET myisam_repair_threads=2;
REPAIR TABLE t1;
Table Op Msg_type Msg_text
diff --git a/mysql-test/r/replace.result b/mysql-test/r/replace.result
index 83cde76215a..5a5e4571ba9 100644
--- a/mysql-test/r/replace.result
+++ b/mysql-test/r/replace.result
@@ -3,12 +3,10 @@ CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
benutzer_id int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (gesuchnr,benutzer_id)
-) engine=ISAM;
+);
replace into t1 (gesuchnr,benutzer_id) values (2,1);
replace into t1 (gesuchnr,benutzer_id) values (1,1);
replace into t1 (gesuchnr,benutzer_id) values (1,1);
-alter table t1 engine=myisam;
-replace into t1 (gesuchnr,benutzer_id) values (1,1);
alter table t1 engine=heap;
replace into t1 (gesuchnr,benutzer_id) values (1,1);
drop table t1;
@@ -26,3 +24,9 @@ a b
63 default_value
127 last
drop table t1;
+CREATE TABLE t1 (f1 INT);
+CREATE VIEW v1 AS SELECT f1 FROM t1 WHERE f1 = 0 WITH CHECK OPTION;
+REPLACE INTO v1 (f1) VALUES (1);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+DROP TABLE t1;
+DROP VIEW v1;
diff --git a/mysql-test/r/round.result b/mysql-test/r/round.result
new file mode 100644
index 00000000000..e9a80df0f49
--- /dev/null
+++ b/mysql-test/r/round.result
@@ -0,0 +1,272 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (sint8 tinyint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('127.4');
+INSERT INTO t1 VALUES ('127.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint8' at row 1
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-127.4');
+INSERT INTO t1 VALUES ('-127.5');
+INSERT INTO t1 VALUES ('-128.4');
+INSERT INTO t1 VALUES ('-128.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint8' at row 1
+SELECT * FROM t1;
+sint8
+0
+1
+127
+127
+0
+-1
+-127
+-128
+-128
+-128
+DROP TABLE t1;
+CREATE TABLE t1 (uint8 tinyint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('127.4');
+INSERT INTO t1 VALUES ('127.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint8' at row 1
+INSERT INTO t1 VALUES ('255.4');
+INSERT INTO t1 VALUES ('255.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint8' at row 1
+SELECT * FROM t1;
+uint8
+0
+1
+127
+128
+0
+0
+255
+255
+DROP TABLE t1;
+CREATE TABLE t1 (sint16 smallint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('32767.4');
+INSERT INTO t1 VALUES ('32767.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint16' at row 1
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-32767.4');
+INSERT INTO t1 VALUES ('-32767.5');
+INSERT INTO t1 VALUES ('-32768.4');
+INSERT INTO t1 VALUES ('-32768.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint16' at row 1
+SELECT * FROM t1;
+sint16
+0
+1
+32767
+32767
+0
+-1
+-32767
+-32768
+-32768
+-32768
+DROP TABLE t1;
+CREATE TABLE t1 (uint16 smallint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('32767.4');
+INSERT INTO t1 VALUES ('32767.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint16' at row 1
+INSERT INTO t1 VALUES ('65535.4');
+INSERT INTO t1 VALUES ('65535.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint16' at row 1
+SELECT * FROM t1;
+uint16
+0
+1
+32767
+32768
+0
+0
+65535
+65535
+DROP TABLE t1;
+CREATE TABLE t1 (sint24 mediumint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('8388607.4');
+INSERT INTO t1 VALUES ('8388607.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint24' at row 1
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-8388607.4');
+INSERT INTO t1 VALUES ('-8388607.5');
+INSERT INTO t1 VALUES ('-8388608.4');
+INSERT INTO t1 VALUES ('-8388608.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint24' at row 1
+SELECT * FROM t1;
+sint24
+0
+1
+8388607
+8388607
+0
+-1
+-8388607
+-8388608
+-8388608
+-8388608
+DROP TABLE t1;
+CREATE TABLE t1 (uint24 mediumint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('8388607.4');
+INSERT INTO t1 VALUES ('8388607.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint24' at row 1
+INSERT INTO t1 VALUES ('16777215.4');
+INSERT INTO t1 VALUES ('16777215.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint24' at row 1
+SELECT * FROM t1;
+uint24
+0
+1
+8388607
+8388608
+0
+0
+16777215
+16777215
+DROP TABLE t1;
+CREATE TABLE t1 (sint64 bigint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('9223372036854775807.4');
+INSERT INTO t1 VALUES ('9223372036854775807.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint64' at row 1
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-9223372036854775807.4');
+INSERT INTO t1 VALUES ('-9223372036854775807.5');
+INSERT INTO t1 VALUES ('-9223372036854775808.4');
+INSERT INTO t1 VALUES ('-9223372036854775808.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sint64' at row 1
+SELECT * FROM t1;
+sint64
+0
+1
+9223372036854775807
+9223372036854775807
+0
+-1
+-9223372036854775807
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+DROP TABLE t1;
+CREATE TABLE t1 (uint64 bigint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('9223372036854775807.4');
+INSERT INTO t1 VALUES ('9223372036854775807.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint64' at row 1
+INSERT INTO t1 VALUES ('18446744073709551615.4');
+INSERT INTO t1 VALUES ('18446744073709551615.5');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'uint64' at row 1
+INSERT INTO t1 VALUES ('1844674407370955161.0');
+INSERT INTO t1 VALUES ('1844674407370955161.1');
+INSERT INTO t1 VALUES ('1844674407370955161.2');
+INSERT INTO t1 VALUES ('1844674407370955161.3');
+INSERT INTO t1 VALUES ('1844674407370955161.4');
+INSERT INTO t1 VALUES ('1844674407370955161.5');
+INSERT INTO t1 VALUES ('1844674407370955161.0e1');
+INSERT INTO t1 VALUES ('1844674407370955161.1e1');
+INSERT INTO t1 VALUES ('1844674407370955161.2e1');
+INSERT INTO t1 VALUES ('1844674407370955161.3e1');
+INSERT INTO t1 VALUES ('1844674407370955161.4e1');
+INSERT INTO t1 VALUES ('1844674407370955161.5e1');
+INSERT INTO t1 VALUES ('18446744073709551610e-1');
+INSERT INTO t1 VALUES ('18446744073709551611e-1');
+INSERT INTO t1 VALUES ('18446744073709551612e-1');
+INSERT INTO t1 VALUES ('18446744073709551613e-1');
+INSERT INTO t1 VALUES ('18446744073709551614e-1');
+INSERT INTO t1 VALUES ('18446744073709551615e-1');
+SELECT * FROM t1;
+uint64
+0
+1
+9223372036854775807
+9223372036854775808
+0
+0
+18446744073709551615
+18446744073709551615
+1844674407370955161
+1844674407370955161
+1844674407370955161
+1844674407370955161
+1844674407370955161
+1844674407370955162
+18446744073709551610
+18446744073709551611
+18446744073709551612
+18446744073709551613
+18446744073709551614
+18446744073709551615
+1844674407370955161
+1844674407370955161
+1844674407370955161
+1844674407370955161
+1844674407370955161
+1844674407370955162
+DROP TABLE t1;
+CREATE TABLE t1 (str varchar(128), sint64 bigint not null default 0);
+INSERT INTO t1 (str) VALUES ('1.5');
+INSERT INTO t1 (str) VALUES ('1.00005e4');
+INSERT INTO t1 (str) VALUES ('1.0005e3');
+INSERT INTO t1 (str) VALUES ('1.005e2');
+INSERT INTO t1 (str) VALUES ('1.05e1');
+INSERT INTO t1 (str) VALUES ('1.5e0');
+INSERT INTO t1 (str) VALUES ('100005e-1');
+INSERT INTO t1 (str) VALUES ('100050e-2');
+INSERT INTO t1 (str) VALUES ('100500e-3');
+INSERT INTO t1 (str) VALUES ('105000e-4');
+INSERT INTO t1 (str) VALUES ('150000e-5');
+UPDATE t1 SET sint64=str;
+SELECT * FROM t1;
+str sint64
+1.5 2
+1.00005e4 10001
+1.0005e3 1001
+1.005e2 101
+1.05e1 11
+1.5e0 2
+100005e-1 10001
+100050e-2 1001
+100500e-3 101
+105000e-4 11
+150000e-5 2
+DROP TABLE t1;
diff --git a/mysql-test/r/row.result b/mysql-test/r/row.result
index 6169619712b..702e66fea62 100644
--- a/mysql-test/r/row.result
+++ b/mysql-test/r/row.result
@@ -14,12 +14,17 @@ row(10,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3))
select row('a',1.5,3) IN (row(1,2,3), row('a',1.5,3), row('a','a','a'));
row('a',1.5,3) IN (row(1,2,3), row('a',1.5,3), row('a','a','a'))
1
-select row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3));
-row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3))
-1
+Warnings:
+Warning 1292 Truncated incorrect DECIMAL value: 'a'
+Warning 1292 Truncated incorrect INTEGER value: 'a'
select row('a',0,3) IN (row(3,2,3), row('a','a','3'), row(1,3,3));
row('a',0,3) IN (row(3,2,3), row('a','a','3'), row(1,3,3))
1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: 'a'
+select row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3));
+row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3))
+1
select row('a',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
row('a',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3))
1
@@ -285,3 +290,147 @@ a b c
1 2 3
1 3 NULL
DROP TABLE t1;
+SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NULL,1) = ROW(2,2,1) as `0`, ROW(1,NULL,1) = ROW(1,2,2) as `0`, ROW(1,NULL,1) = ROW(1,2,1) as `null` ;
+1 0 0 0 null
+1 0 0 0 NULL
+select row(NULL,1)=(2,0);
+row(NULL,1)=(2,0)
+0
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (1,2), (3,2), (3,3);
+EXPLAIN SELECT * FROM t1 WHERE a=3 AND b=2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 8 const,const 1 Using index
+EXPLAIN SELECT * FROM t1 WHERE (a,b)=(3,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 8 const,const 1 Using index
+SELECT * FROM t1 WHERE a=3 and b=2;
+a b
+3 2
+SELECT * FROM t1 WHERE (a,b)=(3,2);
+a b
+3 2
+CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c));
+INSERT INTO t2 VALUES
+(1,1,2), (3,1,3), (1,2,2), (4,4,2),
+(1,1,1), (3,1,1), (1,2,1);
+EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a,test.t1.b 1 Using index
+EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a,test.t1.b 1 Using index
+SELECT * FROM t1,t2 WHERE t1.a=t2.a and t1.b=t2.b;
+a b a b c
+1 1 1 1 1
+1 1 1 1 2
+1 2 1 2 1
+1 2 1 2 2
+3 1 3 1 1
+3 1 3 1 3
+SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
+a b a b c
+1 1 1 1 1
+1 1 1 1 2
+1 2 1 2 1
+1 2 1 2 2
+3 1 3 1 1
+3 1 3 1 3
+EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 5 Using where; Using index
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
+EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 5 Using where; Using index
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
+SELECT * FROM t1,t2 WHERE t1.a=1 and t1.b=t2.b;
+a b a b c
+1 1 1 1 2
+1 1 3 1 3
+1 2 1 2 2
+1 1 1 1 1
+1 1 3 1 1
+1 2 1 2 1
+SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
+a b a b c
+1 2 1 1 1
+1 2 1 1 2
+1 2 1 2 1
+1 2 1 2 2
+3 2 3 1 1
+3 2 3 1 3
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using index
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
+SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
+a b a b c
+1 2 1 1 1
+1 2 1 1 2
+3 2 3 1 1
+3 2 3 1 3
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 index NULL PRIMARY 12 NULL 7 Using where; Using index
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where (((`test`.`t1`.`a` - 1) = (`test`.`t2`.`a` - 1)) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
+SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
+a b a b c
+1 2 1 1 2
+3 2 3 1 3
+1 2 1 1 1
+3 2 3 1 1
+EXPLAIN SELECT * FROM t2 WHERE a=3 AND b=2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref PRIMARY PRIMARY 8 const,const 1 Using index
+EXPLAIN SELECT * FROM t2 WHERE (a,b)=(3,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref PRIMARY PRIMARY 8 const,const 1 Using index
+SELECT * FROM t2 WHERE a=3 and b=2;
+a b c
+SELECT * FROM t2 WHERE (a,b)=(3,2);
+a b c
+EXPLAIN SELECT * FROM t1,t2 WHERE t2.a=t1.a AND t2.b=2 AND t2.c=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 Using index
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 Using index
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
+SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
+a b a b c
+1 1 1 2 1
+1 2 1 2 1
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 Using index
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
+SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
+a b a b c
+1 1 1 2 1
+1 2 1 2 1
+DROP TABLE t1,t2;
+CREATE TABLE t1(
+a int, b int, c int, d int, e int, f int, g int, h int,
+PRIMARY KEY (a,b,c,d,e,f,g)
+);
+INSERT INTO t1 VALUES (1,2,3,4,5,6,7,99);
+SELECT h FROM t1 WHERE (a,b,c,d,e,f,g)=(1,2,3,4,5,6,7);
+h
+99
+SET @x:= (SELECT h FROM t1 WHERE (a,b,c,d,e,f,g)=(1,2,3,4,5,6,7));
+SELECT @x;
+@x
+99
+DROP TABLE t1;
diff --git a/mysql-test/r/rowid_order_bdb.result b/mysql-test/r/rowid_order_bdb.result
new file mode 100644
index 00000000000..bbdc6f6ff77
--- /dev/null
+++ b/mysql-test/r/rowid_order_bdb.result
@@ -0,0 +1,186 @@
+drop table if exists t1, t2, t3,t4;
+create table t1 (
+pk1 int not NULL,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=bdb;
+insert into t1 values (-5, 1, 1),
+(-100, 1, 1),
+(3, 1, 1),
+(0, 1, 1),
+(10, 1, 1);
+explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 5 Using sort_union(key1,key2); Using where
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 key1 key2
+-100 1 1
+-5 1 1
+0 1 1
+3 1 1
+10 1 1
+drop table t1;
+create table t1 (
+pk1 int unsigned not NULL,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=bdb;
+insert into t1 values (0, 1, 1),
+(0xFFFFFFFF, 1, 1),
+(0xFFFFFFFE, 1, 1),
+(1, 1, 1),
+(2, 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 key1 key2
+0 1 1
+1 1 1
+2 1 1
+4294967294 1 1
+4294967295 1 1
+drop table t1;
+create table t1 (
+pk1 char(4) not NULL,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=bdb collate latin2_general_ci;
+insert into t1 values ('a1', 1, 1),
+('b2', 1, 1),
+('A3', 1, 1),
+('B4', 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 key1 key2
+a1 1 1
+A3 1 1
+b2 1 1
+B4 1 1
+drop table t1;
+create table t1 (
+pk1 int not NULL,
+pk2 char(4) not NULL collate latin1_german1_ci,
+pk3 char(4) not NULL collate latin1_bin,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1,pk2,pk3),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=bdb;
+insert into t1 values
+(1, 'u', 'u', 1, 1),
+(1, 'u', char(0xEC), 1, 1),
+(1, 'u', 'x', 1, 1);
+insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
+insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
+insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
+select * from t1;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+alter table t1 drop primary key;
+select * from t1;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+drop table t1;
+create table t1 (
+pk1 varchar(8) NOT NULL default '',
+pk2 varchar(4) NOT NULL default '',
+key1 int(11),
+key2 int(11),
+primary key(pk1, pk2),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=bdb;
+insert into t1 values ('','empt',2,2),
+('a','a--a',2,2),
+('bb','b--b',2,2),
+('ccc','c--c',2,2),
+('dddd','d--d',2,2);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 pk2 key1 key2
+ empt 2 2
+a a--a 2 2
+bb b--b 2 2
+ccc c--c 2 2
+dddd d--d 2 2
+drop table t1;
diff --git a/mysql-test/r/rowid_order_innodb.result b/mysql-test/r/rowid_order_innodb.result
new file mode 100644
index 00000000000..f76002e9cb2
--- /dev/null
+++ b/mysql-test/r/rowid_order_innodb.result
@@ -0,0 +1,186 @@
+drop table if exists t1, t2, t3,t4;
+create table t1 (
+pk1 int not NULL,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=innodb;
+insert into t1 values (-5, 1, 1),
+(-100, 1, 1),
+(3, 1, 1),
+(0, 1, 1),
+(10, 1, 1);
+explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 4 Using sort_union(key1,key2); Using where
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 key1 key2
+-100 1 1
+-5 1 1
+0 1 1
+3 1 1
+10 1 1
+drop table t1;
+create table t1 (
+pk1 int unsigned not NULL,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=innodb;
+insert into t1 values (0, 1, 1),
+(0xFFFFFFFF, 1, 1),
+(0xFFFFFFFE, 1, 1),
+(1, 1, 1),
+(2, 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 key1 key2
+0 1 1
+1 1 1
+2 1 1
+4294967294 1 1
+4294967295 1 1
+drop table t1;
+create table t1 (
+pk1 char(4) not NULL,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=innodb collate latin2_general_ci;
+insert into t1 values ('a1', 1, 1),
+('b2', 1, 1),
+('A3', 1, 1),
+('B4', 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 key1 key2
+a1 1 1
+A3 1 1
+b2 1 1
+B4 1 1
+drop table t1;
+create table t1 (
+pk1 int not NULL,
+pk2 char(4) not NULL collate latin1_german1_ci,
+pk3 char(4) not NULL collate latin1_bin,
+key1 int(11),
+key2 int(11),
+PRIMARY KEY (pk1,pk2,pk3),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=innodb;
+insert into t1 values
+(1, 'u', 'u', 1, 1),
+(1, 'u', char(0xEC), 1, 1),
+(1, 'u', 'x', 1, 1);
+insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
+insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
+insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
+select * from t1;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+alter table t1 drop primary key;
+select * from t1;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 pk2 pk3 key1 key2
+1 ì u 1 1
+1 ì x 1 1
+1 ì ì 1 1
+1 u u 1 1
+1 u x 1 1
+1 u ì 1 1
+1 x u 1 1
+1 x x 1 1
+1 x ì 1 1
+2 ì u 1 1
+2 ì x 1 1
+2 ì ì 1 1
+2 u u 1 1
+2 u x 1 1
+2 u ì 1 1
+2 x u 1 1
+2 x x 1 1
+2 x ì 1 1
+drop table t1;
+create table t1 (
+pk1 varchar(8) NOT NULL default '',
+pk2 varchar(4) NOT NULL default '',
+key1 int(11),
+key2 int(11),
+primary key(pk1, pk2),
+KEY key1 (key1),
+KEY key2 (key2)
+) engine=innodb;
+insert into t1 values ('','empt',2,2),
+('a','a--a',2,2),
+('bb','b--b',2,2),
+('ccc','c--c',2,2),
+('dddd','d--d',2,2);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+pk1 pk2 key1 key2
+ empt 2 2
+a a--a 2 2
+bb b--b 2 2
+ccc c--c 2 2
+dddd d--d 2 2
+drop table t1;
diff --git a/mysql-test/r/rpl000001.result b/mysql-test/r/rpl000001.result
index 1bce3b1b235..3b4cd05f640 100644
--- a/mysql-test/r/rpl000001.result
+++ b/mysql-test/r/rpl000001.result
@@ -5,7 +5,7 @@ reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create table t1 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
load data local infile 'MYSQL_TEST_DIR/std_data/words.dat' into table t1;
select * from t1 limit 10;
word
@@ -33,27 +33,12 @@ select sum(length(word)) from t1;
sum(length(word))
1022
drop table t1,t3;
+create table t1 (n int) engine=myisam;
reset master;
stop slave;
reset slave;
-create table t1(n int);
-select get_lock("hold_slave",10);
-get_lock("hold_slave",10)
-1
-explain extended select get_lock("hold_slave",10);
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
-Warnings:
-Note 1003 select sql_no_cache get_lock(_latin1'hold_slave',10) AS `get_lock("hold_slave",10)`
+lock tables t1 read;
start slave;
-select release_lock("hold_slave");
-release_lock("hold_slave")
-1
-explain extended select release_lock("hold_slave");
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
-Warnings:
-Note 1003 select sql_no_cache release_lock(_latin1'hold_slave') AS `release_lock("hold_slave")`
unlock tables;
create table t2(id int);
insert into t2 values(connection_id());
@@ -65,7 +50,7 @@ select (@id := id) - id from t2;
0
kill @id;
drop table t2;
-ERROR 08S01: Server shutdown in progress
+Got one of the listed errors
set global sql_slave_skip_counter=1;
start slave;
select count(*) from t1;
@@ -76,6 +61,10 @@ create table t1 (n int);
insert into t1 values(3456);
insert into mysql.user (Host, User, Password)
VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
+Warnings:
+Warning 1364 Field 'ssl_cipher' doesn't have a default value
+Warning 1364 Field 'x509_issuer' doesn't have a default value
+Warning 1364 Field 'x509_subject' doesn't have a default value
select select_priv,user from mysql.user where user = _binary'blafasel2';
select_priv user
N blafasel2
@@ -90,3 +79,4 @@ select select_priv,user from mysql.user where user = _binary'blafasel2';
select_priv user
Y blafasel2
drop table t1;
+delete from mysql.user where user="blafasel2";
diff --git a/mysql-test/r/rpl000004.result b/mysql-test/r/rpl000004.result
index 9abb4db7974..e25a48939e3 100644
--- a/mysql-test/r/rpl000004.result
+++ b/mysql-test/r/rpl000004.result
@@ -6,9 +6,9 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
set SQL_LOG_BIN=0;
create table t1 (word char(20) not null, index(word));
-load data infile '../../std_data/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
create table t2 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t2;
+load data infile '../std_data_ln/words.dat' into table t2;
create table t3 (word char(20) not null primary key);
load table t1 from master;
load table t2 from master;
diff --git a/mysql-test/r/rpl000009.result b/mysql-test/r/rpl000009.result
index bb82dcb1e6a..a4dbf54f39b 100644
--- a/mysql-test/r/rpl000009.result
+++ b/mysql-test/r/rpl000009.result
@@ -32,6 +32,7 @@ create database mysqltest2;
create database mysqltest;
show databases;
Database
+information_schema
mysql
mysqltest
mysqltest2
@@ -48,6 +49,7 @@ insert into mysqltest.t2 values (11, 'eleven test'), (12, 'twelve test'),
set sql_log_bin = 1;
show databases;
Database
+information_schema
mysql
test
create database mysqltest2;
@@ -66,6 +68,7 @@ insert into mysqltest.t3 values (1, 'original bar.t3');
load data from master;
show databases;
Database
+information_schema
mysql
mysqltest
mysqltest2
diff --git a/mysql-test/r/rpl000015.result b/mysql-test/r/rpl000015.result
index b3e6ef71e45..080ef436a2e 100644
--- a/mysql-test/r/rpl000015.result
+++ b/mysql-test/r/rpl000015.result
@@ -1,14 +1,14 @@
reset master;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 79
+master-bin.000001 98
reset slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
change master to master_host='127.0.0.1';
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 test MASTER_PORT 7 4 # # No No 0 0 0 # None 0 No #
+# 127.0.0.1 test DEFAULT_MASTER_PORT 7 4 # # No No 0 0 0 # None 0 No #
change master to master_host='127.0.0.1',master_user='root',
master_password='',master_port=MASTER_PORT;
show slave status;
@@ -17,7 +17,7 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
start slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 7 master-bin.000001 79 # # master-bin.000001 Yes Yes 0 0 79 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 7 master-bin.000001 98 # # master-bin.000001 Yes Yes 0 0 98 # None 0 No #
drop table if exists t1;
create table t1 (n int);
insert into t1 values (10),(45),(90);
diff --git a/mysql-test/r/rpl000017.result b/mysql-test/r/rpl000017.result
index 64e13042e9c..7a283699370 100644
--- a/mysql-test/r/rpl000017.result
+++ b/mysql-test/r/rpl000017.result
@@ -9,3 +9,4 @@ select * from t1;
n
24
drop table t1;
+delete from mysql.user where user="replicate";
diff --git a/mysql-test/r/rpl_EE_error.result b/mysql-test/r/rpl_EE_error.result
index 49ad4832c81..f4765b4b13c 100644
--- a/mysql-test/r/rpl_EE_error.result
+++ b/mysql-test/r/rpl_EE_error.result
@@ -6,7 +6,9 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create table t1 (a int) engine=myisam;
flush tables;
-drop table t1;
+drop table if exists t1;
+Warnings:
+Error 2 Can't find file: 't1' (errno: 2)
create table t1 (a int, unique(a)) engine=myisam;
set sql_log_bin=0;
insert into t1 values(2);
diff --git a/mysql-test/r/rpl_auto_increment.result b/mysql-test/r/rpl_auto_increment.result
new file mode 100644
index 00000000000..ea4815e5e64
--- /dev/null
+++ b/mysql-test/r/rpl_auto_increment.result
@@ -0,0 +1,229 @@
+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;
+create table t1 (a int not null auto_increment,b int, primary key (a)) engine=myisam auto_increment=3;
+insert into t1 values (NULL,1),(NULL,2),(NULL,3);
+select * from t1;
+a b
+12 1
+22 2
+32 3
+select * from t1;
+a b
+12 1
+22 2
+32 3
+drop table t1;
+create table t1 (a int not null auto_increment,b int, primary key (a)) engine=myisam;
+insert into t1 values (1,1),(NULL,2),(3,3),(NULL,4);
+delete from t1 where b=4;
+insert into t1 values (NULL,5),(NULL,6);
+select * from t1;
+a b
+1 1
+2 2
+3 3
+22 5
+32 6
+select * from t1;
+a b
+1 1
+2 2
+3 3
+22 5
+32 6
+drop table t1;
+set @@session.auto_increment_increment=100, @@session.auto_increment_offset=10;
+show variables like "%auto_inc%";
+Variable_name Value
+auto_increment_increment 100
+auto_increment_offset 10
+create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
+insert into t1 values (NULL),(5),(NULL);
+insert into t1 values (250),(NULL);
+select * from t1;
+a
+5
+10
+110
+250
+310
+insert into t1 values (1000);
+set @@insert_id=400;
+insert into t1 values(NULL),(NULL);
+select * from t1;
+a
+5
+10
+110
+250
+310
+400
+410
+1000
+select * from t1;
+a
+5
+10
+110
+250
+310
+400
+410
+1000
+drop table t1;
+create table t1 (a int not null auto_increment, primary key (a)) engine=innodb;
+insert into t1 values (NULL),(5),(NULL);
+insert into t1 values (250),(NULL);
+select * from t1;
+a
+5
+10
+110
+250
+310
+insert into t1 values (1000);
+set @@insert_id=400;
+insert into t1 values(NULL),(NULL);
+select * from t1;
+a
+5
+10
+110
+250
+310
+400
+410
+1000
+select * from t1;
+a
+5
+10
+110
+250
+310
+400
+410
+1000
+drop table t1;
+set @@session.auto_increment_increment=1, @@session.auto_increment_offset=1;
+create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
+insert into t1 values (NULL),(5),(NULL),(NULL);
+insert into t1 values (500),(NULL),(502),(NULL),(NULL);
+select * from t1;
+a
+1
+5
+6
+7
+500
+501
+502
+503
+504
+set @@insert_id=600;
+insert into t1 values(600),(NULL),(NULL);
+ERROR 23000: Duplicate entry '600' for key 1
+set @@insert_id=600;
+insert ignore into t1 values(600),(NULL),(NULL),(610),(NULL);
+select * from t1;
+a
+1
+5
+6
+7
+500
+501
+502
+503
+504
+600
+610
+611
+select * from t1;
+a
+1
+5
+6
+7
+500
+501
+502
+503
+504
+600
+610
+611
+drop table t1;
+set @@session.auto_increment_increment=10, @@session.auto_increment_offset=1;
+create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
+insert into t1 values(2),(12),(22),(32),(42);
+insert into t1 values (NULL),(NULL);
+insert into t1 values (3),(NULL),(NULL);
+select * from t1;
+a
+1
+3
+11
+21
+31
+select * from t1;
+a
+1
+2
+3
+11
+12
+21
+22
+31
+32
+42
+drop table t1;
+create table t1 (a tinyint not null auto_increment primary key) engine=myisam;
+insert into t1 values(103);
+set auto_increment_increment=11;
+set auto_increment_offset=4;
+insert into t1 values(null);
+insert into t1 values(null);
+insert into t1 values(null);
+ERROR 23000: Duplicate entry '125' for key 1
+select a, mod(a-@@auto_increment_offset,@@auto_increment_increment) from t1 order by a;
+a mod(a-@@auto_increment_offset,@@auto_increment_increment)
+103 0
+114 0
+125 0
+create table t2 (a tinyint unsigned not null auto_increment primary key) engine=myisam;
+set auto_increment_increment=10;
+set auto_increment_offset=1;
+set insert_id=1000;
+insert into t2 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select a, mod(a-@@auto_increment_offset,@@auto_increment_increment) from t2 order by a;
+a mod(a-@@auto_increment_offset,@@auto_increment_increment)
+251 0
+create table t3 like t1;
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t3 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t3 order by a;
+a
+127
+select * from t1 order by a;
+a
+103
+114
+125
+select * from t2 order by a;
+a
+251
+select * from t3 order by a;
+a
+127
+drop table t1,t2,t3;
diff --git a/mysql-test/r/rpl_auto_increment_11932.result b/mysql-test/r/rpl_auto_increment_11932.result
new file mode 100644
index 00000000000..25eda6ee454
--- /dev/null
+++ b/mysql-test/r/rpl_auto_increment_11932.result
@@ -0,0 +1,47 @@
+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;
+drop database if exists test1;
+create database test1;
+use test1;
+CREATE TABLE `t1` (
+`id` int(10) unsigned NOT NULL auto_increment,
+`fname` varchar(100) default NULL,
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
+INSERT INTO `t1` VALUES (1, 'blablabla');
+CREATE TABLE `t2` (
+`id` int(10) NOT NULL auto_increment,
+`comment` varchar(255) NOT NULL default '',
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=3 ;
+INSERT INTO `t2` VALUES (1, 'testtest 1');
+INSERT INTO `t2` VALUES (2, 'test 2');
+CREATE PROCEDURE simpleproc3 ()
+NOT DETERMINISTIC
+BEGIN
+INSERT INTO t1 (fname) (SELECT t2.comment FROM t2 WHERE t2.id = '1');
+INSERT INTO t1 (fname) VALUES('test');
+END
+$
+CALL simpleproc3();
+select * from t2;
+id comment
+1 testtest 1
+2 test 2
+TRUNCATE TABLE `t1`;
+CALL simpleproc3();
+select * from t1;
+id fname
+1 testtest 1
+2 test
+use test1;
+select * from t1;
+id fname
+1 testtest 1
+2 test
+drop database test1;
+drop database test1;
diff --git a/mysql-test/r/rpl_change_master.result b/mysql-test/r/rpl_change_master.result
index ec7d3042551..98c42069470 100644
--- a/mysql-test/r/rpl_change_master.result
+++ b/mysql-test/r/rpl_change_master.result
@@ -4,16 +4,13 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
-select get_lock("a",5);
-get_lock("a",5)
-1
create table t1(n int);
-insert into t1 values(1+get_lock("a",15)*0);
-insert into t1 values(2);
-stop slave;
select * from t1;
n
-1
+stop slave sql_thread;
+insert into t1 values(1);
+insert into t1 values(2);
+stop slave;
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1
@@ -21,9 +18,9 @@ Master_User root
Master_Port MASTER_MYPORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 273
-Relay_Log_File slave-relay-bin.000002
-Relay_Log_Pos 258
+Read_Master_Log_Pos 357
+Relay_Log_File #
+Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
Slave_IO_Running No
Slave_SQL_Running No
@@ -36,8 +33,8 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 214
-Relay_Log_Space 317
+Exec_Master_Log_Pos 183
+Relay_Log_Space #
Until_Condition None
Until_Log_File
Until_Log_Pos 0
@@ -56,7 +53,7 @@ Master_User root
Master_Port MASTER_MYPORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 214
+Read_Master_Log_Pos 183
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -71,7 +68,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 214
+Exec_Master_Log_Pos 183
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -83,9 +80,6 @@ Master_SSL_Cert
Master_SSL_Cipher
Master_SSL_Key
Seconds_Behind_Master #
-select release_lock("a");
-release_lock("a")
-1
start slave;
select * from t1;
n
diff --git a/mysql-test/r/rpl_charset.result b/mysql-test/r/rpl_charset.result
index 0ebd97d0b6a..4b6d9f44a2b 100644
--- a/mysql-test/r/rpl_charset.result
+++ b/mysql-test/r/rpl_charset.result
@@ -4,6 +4,7 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
+set timestamp=1000000000;
drop database if exists mysqltest2;
drop database if exists mysqltest3;
create database mysqltest2 character set latin2;
@@ -87,7 +88,6 @@ a b
2 Muffler
3 latin1_german2_ci
4 Müller
-load data infile '../../std_data/words.dat' into table t1 (b);
set @a= _cp850 'Müller' collate cp850_general_ci;
truncate table t1;
insert into t1 (b) values(collation(@a));
@@ -103,68 +103,44 @@ a b
1 cp850_general_ci
drop database mysqltest2;
drop database mysqltest3;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 drop database if exists mysqltest2
-master-bin.000001 154 Query 1 154 drop database if exists mysqltest3
-master-bin.000001 229 Query 1 229 create database mysqltest2 character set latin2
-master-bin.000001 317 Query 1 317 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=30
-master-bin.000001 451 Query 1 451 create database mysqltest3
-master-bin.000001 518 Query 1 518 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64
-master-bin.000001 652 Query 1 652 drop database mysqltest3
-master-bin.000001 717 Query 1 717 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64
-master-bin.000001 851 Query 1 851 create database mysqltest3
-master-bin.000001 918 Query 1 918 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 1058 Query 1 1058 use `mysqltest2`; create table t1 (a int auto_increment primary key, b varchar(100))
-master-bin.000001 1165 Query 1 1165 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 1306 Intvar 1 1306 INSERT_ID=1
-master-bin.000001 1334 Query 1 1334 use `mysqltest2`; insert into t1 (b) values(@@character_set_server)
-master-bin.000001 1424 Query 1 1424 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 1565 Intvar 1 1565 INSERT_ID=2
-master-bin.000001 1593 Query 1 1593 use `mysqltest2`; insert into t1 (b) values(@@collation_server)
-master-bin.000001 1679 Query 1 1679 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 1820 Intvar 1 1820 INSERT_ID=3
-master-bin.000001 1848 Query 1 1848 use `mysqltest2`; insert into t1 (b) values(@@character_set_client)
-master-bin.000001 1938 Query 1 1938 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 2079 Intvar 1 2079 INSERT_ID=4
-master-bin.000001 2107 Query 1 2107 use `mysqltest2`; insert into t1 (b) values(@@character_set_connection)
-master-bin.000001 2201 Query 1 2201 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 2342 Intvar 1 2342 INSERT_ID=5
-master-bin.000001 2370 Query 1 2370 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
-master-bin.000001 2460 Query 1 2460 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 2600 Query 1 2600 use `mysqltest2`; truncate table t1
-master-bin.000001 2658 Query 1 2658 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 2798 Intvar 1 2798 INSERT_ID=1
-master-bin.000001 2826 Query 1 2826 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
-master-bin.000001 2916 Query 1 2916 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 3056 Intvar 1 3056 INSERT_ID=2
-master-bin.000001 3084 Query 1 3084 use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
-master-bin.000001 3177 Query 1 3177 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 3318 Intvar 1 3318 INSERT_ID=3
-master-bin.000001 3346 Query 1 3346 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
-master-bin.000001 3436 Query 1 3436 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 3577 Intvar 1 3577 INSERT_ID=4
-master-bin.000001 3605 Query 1 3605 use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
-master-bin.000001 3698 Query 1 3698 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 3839 Intvar 1 3839 INSERT_ID=74
-master-bin.000001 3867 Create_file 1 3867 db=mysqltest2;table=t1;file_id=x;block_len=581
-master-bin.000001 4540 Query 1 4540 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 4681 Intvar 1 4681 INSERT_ID=5
-master-bin.000001 4709 Exec_load 1 4709 ;file_id=x
-master-bin.000001 4732 Query 1 4732 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 4873 Query 1 4873 use `mysqltest2`; truncate table t1
-master-bin.000001 4931 Query 1 4931 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 5072 Intvar 1 5072 INSERT_ID=1
-master-bin.000001 5100 User var 1 5100 @`a`=_cp850 0x4DFC6C6C6572 COLLATE cp850_general_ci
-master-bin.000001 5140 Query 1 5140 use `mysqltest2`; insert into t1 (b) values(collation(@a))
-master-bin.000001 5221 Query 1 5221 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 5362 Query 1 5362 drop database mysqltest2
-master-bin.000001 5427 Query 1 5427 SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
-master-bin.000001 5558 Query 1 5558 drop database mysqltest3
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # drop database if exists mysqltest2
+master-bin.000001 # Query 1 # drop database if exists mysqltest3
+master-bin.000001 # Query 1 # create database mysqltest2 character set latin2
+master-bin.000001 # Query 1 # create database mysqltest3
+master-bin.000001 # Query 1 # drop database mysqltest3
+master-bin.000001 # Query 1 # create database mysqltest3
+master-bin.000001 # Query 1 # use `mysqltest2`; create table t1 (a int auto_increment primary key, b varchar(100))
+master-bin.000001 # Intvar 1 # INSERT_ID=1
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@character_set_server)
+master-bin.000001 # Intvar 1 # INSERT_ID=2
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@collation_server)
+master-bin.000001 # Intvar 1 # INSERT_ID=3
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@character_set_client)
+master-bin.000001 # Intvar 1 # INSERT_ID=4
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@character_set_connection)
+master-bin.000001 # Intvar 1 # INSERT_ID=5
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
+master-bin.000001 # Query 1 # use `mysqltest2`; truncate table t1
+master-bin.000001 # Intvar 1 # INSERT_ID=1
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
+master-bin.000001 # Intvar 1 # INSERT_ID=2
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
+master-bin.000001 # Intvar 1 # INSERT_ID=3
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
+master-bin.000001 # Intvar 1 # INSERT_ID=4
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
+master-bin.000001 # Query 1 # use `mysqltest2`; truncate table t1
+master-bin.000001 # Intvar 1 # INSERT_ID=1
+master-bin.000001 # User var 1 # @`a`=_cp850 0x4DFC6C6C6572 COLLATE cp850_general_ci
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t1 (b) values(collation(@a))
+master-bin.000001 # Query 1 # drop database mysqltest2
+master-bin.000001 # Query 1 # drop database mysqltest3
set global character_set_server=latin2;
-ERROR HY000: Binary logging and replication forbid changing the global server character set or collation
+set global character_set_server=latin1;
set global character_set_server=latin2;
-ERROR HY000: Binary logging and replication forbid changing the global server character set or collation
+set global character_set_server=latin1;
set one_shot @@character_set_server=latin5;
set @@max_join_size=1000;
select @@character_set_server;
@@ -181,7 +157,7 @@ select @@character_set_server;
@@character_set_server
latin5
set one_shot max_join_size=10;
-ERROR HY000: The SET ONE_SHOT syntax is reserved for purposes internal to the MySQL server
+ERROR HY000: The 'SET ONE_SHOT' syntax is reserved for purposes internal to the MySQL server
set character_set_client=9999999;
ERROR 42000: Unknown character set: '9999999'
set collation_server=9999998;
@@ -198,14 +174,91 @@ CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
select hex(c1), hex(c2) from t1;
hex(c1) hex(c2)
CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
-stop slave;
-delete from t1;
-change master to master_log_pos=5847;
-start slave until master_log_file='master-bin.000001', master_log_pos=5983;
-start slave;
-select hex(c1), hex(c2) from t1;
-hex(c1) hex(c2)
-CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+drop database if exists mysqltest2/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+drop database if exists mysqltest3/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create database mysqltest2 character set latin2/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30/*!*/;
+create database mysqltest3/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=64/*!*/;
+drop database mysqltest3/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create database mysqltest3/*!*/;
+use mysqltest2/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+create table t1 (a int auto_increment primary key, b varchar(100))/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C cp850 *//*!*/;
+SET @@session.character_set_client=4,@@session.collation_connection=27,@@session.collation_server=64/*!*/;
+insert into t1 (b) values(@@character_set_server)/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(@@collation_server)/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(@@character_set_client)/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(@@character_set_connection)/*!*/;
+SET INSERT_ID=5/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(@@collation_connection)/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=5,@@session.collation_server=64/*!*/;
+truncate table t1/*!*/;
+SET INSERT_ID=1/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(@@collation_connection)/*!*/;
+SET INSERT_ID=2/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(LEAST("Müller","Muffler"))/*!*/;
+SET INSERT_ID=3/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=31,@@session.collation_server=64/*!*/;
+insert into t1 (b) values(@@collation_connection)/*!*/;
+SET INSERT_ID=4/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(LEAST("Müller","Muffler"))/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+truncate table t1/*!*/;
+SET INSERT_ID=1/*!*/;
+SET @`a`:=_cp850 0x4DFC6C6C6572 COLLATE `cp850_general_ci`/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+insert into t1 (b) values(collation(@a))/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+drop database mysqltest2/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+drop database mysqltest3/*!*/;
+use test/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30/*!*/;
+CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255))/*!*/;
+SET TIMESTAMP=1000000000/*!*/;
+/*!\C koi8r *//*!*/;
+SET @@session.character_set_client=7,@@session.collation_connection=51,@@session.collation_server=30/*!*/;
+INSERT INTO t1 (c1, c2) VALUES ('îÕ, ÚÁ ÒÙÂÁÌËÕ','îÕ, ÚÁ ÒÙÂÁÌËÕ')/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t1;
create table `t1` (
`pk` varchar(10) not null default '',
diff --git a/mysql-test/r/rpl_charset_sjis.result b/mysql-test/r/rpl_charset_sjis.result
new file mode 100644
index 00000000000..770ad0588d1
--- /dev/null
+++ b/mysql-test/r/rpl_charset_sjis.result
@@ -0,0 +1,26 @@
+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;
+drop table if exists t1;
+drop procedure if exists p1;
+create table t1 (a varchar(255) character set sjis);
+create procedure p1 (in a varchar(255) character set sjis) insert into t1 values (a);
+SET NAMES binary;
+CALL p1 ('–\\');
+select "--- on master ---";
+--- on master ---
+--- on master ---
+select hex(a) from t1 ;
+hex(a)
+965C
+select "--- on slave ---";
+--- on slave ---
+--- on slave ---
+select hex(a) from t1;
+hex(a)
+965C
+drop table t1;
+drop procedure p1;
diff --git a/mysql-test/r/rpl_create_database.result b/mysql-test/r/rpl_create_database.result
index 2375e13bb5c..ca4585d0d8d 100644
--- a/mysql-test/r/rpl_create_database.result
+++ b/mysql-test/r/rpl_create_database.result
@@ -22,6 +22,7 @@ USE mysqltest_sisyfos;
ALTER DATABASE mysqltest_bob CHARACTER SET latin1;
SHOW DATABASES;
Database
+information_schema
mysql
mysqltest_bob
mysqltest_prometheus
@@ -29,6 +30,7 @@ mysqltest_sisyfos
test
SHOW DATABASES;
Database
+information_schema
mysql
mysqltest_prometheus
mysqltest_sisyfos
@@ -41,22 +43,23 @@ CREATE DATABASE mysqltest_sisyfos;
USE mysqltest_sisyfos;
CREATE TABLE t2 (a INT);
SHOW BINLOG EVENTS;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS mysqltest_prometheus
-master-bin.000001 174 Query 1 174 DROP DATABASE IF EXISTS mysqltest_sisyfos
-master-bin.000001 263 Query 1 263 CREATE DATABASE mysqltest_prometheus
-master-bin.000001 350 Query 1 350 CREATE DATABASE mysqltest_sisyfos
-master-bin.000001 431 Query 1 431 use `mysqltest_sisyfos`; CREATE TABLE t1 (b int)
-master-bin.000001 502 Query 1 502 use `mysqltest_sisyfos`; INSERT INTO t1 VALUES(1)
-master-bin.000001 574 Query 1 574 ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1
-master-bin.000001 675 Query 1 675 DROP DATABASE IF EXISTS mysqltest_sisyfos
-master-bin.000001 764 Query 1 764 use `mysqltest_prometheus`; CREATE TABLE t1 (a INT)
-master-bin.000001 838 Query 1 838 use `mysqltest_prometheus`; INSERT INTO t1 VALUES (1)
-master-bin.000001 914 Query 1 914 CREATE DATABASE mysqltest_sisyfos
-master-bin.000001 995 Query 1 995 use `mysqltest_sisyfos`; CREATE TABLE t2 (a INT)
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
+master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest_prometheus
+master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest_sisyfos
+master-bin.000001 # Query 1 # CREATE DATABASE mysqltest_prometheus
+master-bin.000001 # Query 1 # CREATE DATABASE mysqltest_sisyfos
+master-bin.000001 # Query 1 # use `mysqltest_sisyfos`; CREATE TABLE t1 (b int)
+master-bin.000001 # Query 1 # use `mysqltest_sisyfos`; INSERT INTO t1 VALUES(1)
+master-bin.000001 # Query 1 # ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1
+master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS mysqltest_sisyfos
+master-bin.000001 # Query 1 # use `mysqltest_prometheus`; CREATE TABLE t1 (a INT)
+master-bin.000001 # Query 1 # use `mysqltest_prometheus`; INSERT INTO t1 VALUES (1)
+master-bin.000001 # Query 1 # CREATE DATABASE mysqltest_sisyfos
+master-bin.000001 # Query 1 # use `mysqltest_sisyfos`; CREATE TABLE t2 (a INT)
SHOW DATABASES;
Database
+information_schema
mysql
mysqltest_bob
mysqltest_prometheus
@@ -64,6 +67,7 @@ mysqltest_sisyfos
test
SHOW DATABASES;
Database
+information_schema
mysql
mysqltest_prometheus
mysqltest_sisyfos
diff --git a/mysql-test/r/rpl_critical_errors.result b/mysql-test/r/rpl_critical_errors.result
new file mode 100644
index 00000000000..bcc53565084
--- /dev/null
+++ b/mysql-test/r/rpl_critical_errors.result
@@ -0,0 +1 @@
+Turn on parsing to run this test
diff --git a/mysql-test/r/rpl_critical_errors.result.txt b/mysql-test/r/rpl_critical_errors.result.txt
new file mode 100644
index 00000000000..0df2e1ef369
--- /dev/null
+++ b/mysql-test/r/rpl_critical_errors.result.txt
@@ -0,0 +1,56 @@
+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;
+CREATE TABLE t1 (data LONGBLOB) ENGINE=MYISAM;
+CREATE TABLE t2 (data LONGBLOB) ENGINE=MYISAM;
+INSERT INTO t1 (data) VALUES (repeat('a',1024*1024));
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t2 SELECT * FROM t1;
+KILL QUERY 2;
+SELECT COUNT(*) FROM t2;
+COUNT(*)
+0
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_PORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos #
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 1317
+Last_Error #
+Skip_Counter 0
+Exec_Master_Log_Pos #
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
diff --git a/mysql-test/r/rpl_ddl.result b/mysql-test/r/rpl_ddl.result
index 3737883b694..92e91b31459 100644
--- a/mysql-test/r/rpl_ddl.result
+++ b/mysql-test/r/rpl_ddl.result
@@ -1072,6 +1072,622 @@ Database (mysqltest3)
mysqltest3
-------- switch to master -------
+
+######## CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1" ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 15 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+16
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+15
+
+-------- switch to master -------
+CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1";
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+16
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+16
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+16
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+16
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SHOW PROCEDURE STATUS LIKE 'p1';
+Db mysqltest1
+Name p1
+Type PROCEDURE
+Definer root@localhost
+Modified #
+Created #
+Security_type DEFINER
+Comment
+ -------- switch to slave -------
+SHOW PROCEDURE STATUS LIKE 'p1';
+Db mysqltest1
+Name p1
+Type PROCEDURE
+Definer root@localhost
+Modified #
+Created #
+Security_type DEFINER
+Comment
+
+######## ALTER PROCEDURE p1 COMMENT "I have been altered" ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 16 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+17
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+16
+
+-------- switch to master -------
+ALTER PROCEDURE p1 COMMENT "I have been altered";
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+17
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+17
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+17
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+17
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SHOW PROCEDURE STATUS LIKE 'p1';
+Db mysqltest1
+Name p1
+Type PROCEDURE
+Definer root@localhost
+Modified #
+Created #
+Security_type DEFINER
+Comment I have been altered
+ -------- switch to slave -------
+SHOW PROCEDURE STATUS LIKE 'p1';
+Db mysqltest1
+Name p1
+Type PROCEDURE
+Definer root@localhost
+Modified #
+Created #
+Security_type DEFINER
+Comment I have been altered
+
+######## DROP PROCEDURE p1 ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 17 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+18
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+17
+
+-------- switch to master -------
+DROP PROCEDURE p1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+18
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+18
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+18
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+18
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SHOW PROCEDURE STATUS LIKE 'p1';
+ -------- switch to slave -------
+SHOW PROCEDURE STATUS LIKE 'p1';
+
+######## CREATE OR REPLACE VIEW v1 as select * from t1 ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 18 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+19
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+18
+
+-------- switch to master -------
+CREATE OR REPLACE VIEW v1 as select * from t1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+19
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+19
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+19
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+19
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+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`
+
+-------- switch to slave -------
+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`
+
+######## ALTER VIEW v1 AS select f1 from t1 ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 19 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+20
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+19
+
+-------- switch to master -------
+ALTER VIEW v1 AS select f1 from t1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+20
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+20
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+20
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+20
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+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`
+
+-------- switch to slave -------
+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`
+
+######## DROP VIEW IF EXISTS v1 ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 20 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+21
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+20
+
+-------- switch to master -------
+DROP VIEW IF EXISTS v1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+21
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+21
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+21
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+21
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SHOW CREATE VIEW v1;
+ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
+
+-------- switch to slave -------
+SHOW CREATE VIEW v1;
+ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
+
+######## CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 21 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+22
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+21
+
+-------- switch to master -------
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+22
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+22
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+22
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+22
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 SET @a:=1 BEFORE NULL root@localhost
+
+-------- switch to slave -------
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 SET @a:=1 BEFORE NULL root@localhost
+
+######## DROP TRIGGER trg1 ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 22 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+23
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+22
+
+-------- switch to master -------
+DROP TRIGGER trg1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+23
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+23
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+23
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+23
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+
+-------- switch to slave -------
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+
+######## CREATE USER user1@localhost ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 23 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+24
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+23
+
+-------- switch to master -------
+CREATE USER user1@localhost;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+24
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+24
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+24
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+24
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SELECT user FROM mysql.user WHERE user = 'user1';
+user
+user1
+
+-------- switch to slave -------
+SELECT user FROM mysql.user WHERE user = 'user1';
+user
+user1
+
+######## RENAME USER user1@localhost TO rename1@localhost ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 24 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+25
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+24
+
+-------- switch to master -------
+RENAME USER user1@localhost TO rename1@localhost;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+25
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+25
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+25
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+25
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SELECT user FROM mysql.user WHERE user = 'rename1';
+user
+rename1
+
+-------- switch to slave -------
+SELECT user FROM mysql.user WHERE user = 'rename1';
+user
+rename1
+
+######## DROP USER rename1@localhost ########
+
+-------- switch to master -------
+INSERT INTO t1 SET f1= 25 + 1;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+26
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+25
+
+-------- switch to master -------
+DROP USER rename1@localhost;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+26
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+26
+
+-------- switch to master -------
+ROLLBACK;
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+26
+
+TEST-INFO: MASTER: The INSERT is committed (Succeeded)
+
+-------- switch to slave --------
+SELECT MAX(f1) FROM t1;
+MAX(f1)
+26
+
+TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
+
+-------- switch to master -------
+flush logs;
+
+-------- switch to slave --------
+flush logs;
+
+-------- switch to master -------
+SELECT user FROM mysql.user WHERE user = 'rename1';
+user
+
+-------- switch to slave -------
+SELECT user FROM mysql.user WHERE user = 'rename1';
+user
DROP DATABASE IF EXISTS mysqltest1;
DROP DATABASE IF EXISTS mysqltest2;
DROP DATABASE IF EXISTS mysqltest3;
diff --git a/mysql-test/r/rpl_deadlock.result b/mysql-test/r/rpl_deadlock.result
index db88cf73c03..116c34a4d96 100644
--- a/mysql-test/r/rpl_deadlock.result
+++ b/mysql-test/r/rpl_deadlock.result
@@ -6,21 +6,21 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create table t1 (a int not null, key(a)) engine=innodb;
create table t2 (a int not null, key(a)) engine=innodb;
-create table t3 (a int) engine=innodb;
+create table t3 (a int unique) engine=innodb;
create table t4 (a int) engine=innodb;
show variables like 'slave_transaction_retries';
Variable_name Value
-slave_transaction_retries 0
+slave_transaction_retries 10
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
KEY `a` (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
KEY `a` (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
show variables like 'slave_transaction_retries';
@@ -35,14 +35,14 @@ begin;
select * from t1 for update;
a
start slave;
-insert into t2 values(22);
+insert into t2 values(201);
commit;
select * from t1;
a
1
select * from t2;
a
-22
+201
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1
@@ -50,7 +50,7 @@ Master_User root
Master_Port MASTER_MYPORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 13110
+Read_Master_Log_Pos 18918
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -65,7 +65,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 13110
+Exec_Master_Log_Pos 18918
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -78,12 +78,16 @@ Master_SSL_Cipher
Master_SSL_Key
Seconds_Behind_Master #
stop slave;
-change master to master_log_pos=401;
+delete from t3;
+change master to master_log_pos=539;
begin;
select * from t2 for update;
a
-22
+201
start slave;
+select count(*) from t3 /* must be zero */;
+count(*)
+0
commit;
select * from t1;
a
@@ -91,7 +95,7 @@ a
1
select * from t2;
a
-22
+201
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1
@@ -99,7 +103,7 @@ Master_User root
Master_Port MASTER_MYPORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 13110
+Read_Master_Log_Pos 18918
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -114,7 +118,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 13110
+Exec_Master_Log_Pos 18918
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -126,14 +130,19 @@ Master_SSL_Cert
Master_SSL_Cipher
Master_SSL_Key
Seconds_Behind_Master #
+set @my_max_relay_log_size= @@global.max_relay_log_size;
set global max_relay_log_size=0;
stop slave;
-change master to master_log_pos=401;
+delete from t3;
+change master to master_log_pos=539;
begin;
select * from t2 for update;
a
-22
+201
start slave;
+select count(*) from t3 /* must be zero */;
+count(*)
+0
commit;
select * from t1;
a
@@ -142,7 +151,7 @@ a
1
select * from t2;
a
-22
+201
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1
@@ -150,7 +159,7 @@ Master_User root
Master_Port MASTER_MYPORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 13110
+Read_Master_Log_Pos 18918
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -165,7 +174,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 13110
+Exec_Master_Log_Pos 18918
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -178,3 +187,4 @@ Master_SSL_Cipher
Master_SSL_Key
Seconds_Behind_Master #
drop table t1,t2,t3,t4;
+set global max_relay_log_size= @my_max_relay_log_size;
diff --git a/mysql-test/r/rpl_delete_all.result b/mysql-test/r/rpl_delete_all.result
index 5ed221823e8..1aa556270c9 100644
--- a/mysql-test/r/rpl_delete_all.result
+++ b/mysql-test/r/rpl_delete_all.result
@@ -9,7 +9,7 @@ drop database if exists mysqltest;
Warnings:
Note 1008 Can't drop database 'mysqltest'; database doesn't exist
show tables from mysqltest;
-ERROR HY000: Can't read dir of './mysqltest/' (Errcode: X)
+ERROR 42000: Unknown database 'mysqltest'
create table t1 (a int);
drop table if exists t1;
Warnings:
diff --git a/mysql-test/r/rpl_do_grant.result b/mysql-test/r/rpl_do_grant.result
index ff3e059503c..fe6ef3c26bc 100644
--- a/mysql-test/r/rpl_do_grant.result
+++ b/mysql-test/r/rpl_do_grant.result
@@ -20,6 +20,17 @@ set password for rpl_do_grant@localhost=password("does it work?");
select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
password<>_binary''
1
+update mysql.user set password='' where user='rpl_do_grant';
+flush privileges;
+select password<>'' from mysql.user where user='rpl_do_grant';
+password<>''
+0
+set sql_mode='ANSI_QUOTES';
+set password for rpl_do_grant@localhost=password('does it work?');
+set sql_mode='';
+select password<>'' from mysql.user where user='rpl_do_grant';
+password<>''
+1
delete from mysql.user where user=_binary'rpl_do_grant';
delete from mysql.db where user=_binary'rpl_do_grant';
flush privileges;
diff --git a/mysql-test/r/rpl_drop_db.result b/mysql-test/r/rpl_drop_db.result
index ce9d39e87f6..97a24d980b6 100644
--- a/mysql-test/r/rpl_drop_db.result
+++ b/mysql-test/r/rpl_drop_db.result
@@ -33,3 +33,5 @@ n
1234
drop table t1;
stop slave;
+drop database mysqltest1;
+drop database mysqltest1;
diff --git a/mysql-test/r/rpl_error_ignored_table.result b/mysql-test/r/rpl_error_ignored_table.result
index 740d139b4c8..b813941a782 100644
--- a/mysql-test/r/rpl_error_ignored_table.result
+++ b/mysql-test/r/rpl_error_ignored_table.result
@@ -9,7 +9,7 @@ insert into t1 values (1),(1);
ERROR 23000: Duplicate entry '1' for key 1
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 213 # # master-bin.000001 Yes Yes test.t3,test.t1,test.t2 0 0 213 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 288 # # master-bin.000001 Yes Yes test.t3,test.t1,test.t2 0 0 288 # None 0 No #
show tables like 't1';
Tables_in_test (t1)
drop table t1;
@@ -26,14 +26,14 @@ select (@id := id) - id from t3;
0
kill @id;
drop table t2,t3;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; create table t1 (a int primary key)
-master-bin.000001 149 Query 1 149 use `test`; insert into t1 values (1),(1)
-master-bin.000001 213 Query 1 213 use `test`; drop table t1
-master-bin.000001 261 Query 1 261 use `test`; create table t2 (a int primary key)
-master-bin.000001 331 Query 1 331 use `test`; insert into t2 values(1)
-master-bin.000001 390 Query 1 390 use `test`; create table t3 (id int)
-master-bin.000001 449 Query 1 449 use `test`; insert into t3 values(connection_id())
-master-bin.000001 522 Query 1 522 use `test`; update t2 set a = a + 1 + get_lock('crash_lock%20C', 10)
-master-bin.000001 613 Query 1 613 use `test`; drop table t2,t3
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # use `test`; create table t1 (a int primary key)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values (1),(1)
+master-bin.000001 # Query 1 # use `test`; drop table t1
+master-bin.000001 # Query 1 # use `test`; create table t2 (a int primary key)
+master-bin.000001 # Query 1 # use `test`; insert into t2 values(1)
+master-bin.000001 # Query 1 # use `test`; create table t3 (id int)
+master-bin.000001 # Query 1 # use `test`; insert into t3 values(connection_id())
+master-bin.000001 # Query 1 # use `test`; update t2 set a = a + 1 + get_lock('crash_lock%20C', 10)
+master-bin.000001 # Query 1 # use `test`; drop table t2,t3
diff --git a/mysql-test/r/rpl_failed_optimize.result b/mysql-test/r/rpl_failed_optimize.result
index 120bb53ed25..33a8cdc4a2f 100644
--- a/mysql-test/r/rpl_failed_optimize.result
+++ b/mysql-test/r/rpl_failed_optimize.result
@@ -11,6 +11,10 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize error Lock wait timeout exceeded; try restarting transaction
test.t1 optimize status Operation failed
+Warnings:
+Error 1205 Lock wait timeout exceeded; try restarting transaction
OPTIMIZE TABLE non_existing;
Table Op Msg_type Msg_text
-test.non_existing optimize error Table 'test.non_existing' doesn't exist
+test.non_existing optimize Error Table 'test.non_existing' doesn't exist
+test.non_existing optimize error Corrupt
+drop table t1;
diff --git a/mysql-test/r/rpl_flush_log_loop.result b/mysql-test/r/rpl_flush_log_loop.result
index 0a2d7e5e72a..3b1db804da9 100644
--- a/mysql-test/r/rpl_flush_log_loop.result
+++ b/mysql-test/r/rpl_flush_log_loop.result
@@ -4,6 +4,13 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
+show variables like 'relay_log%';
+Variable_name Value
+relay_log MYSQLTEST_VARDIR/master-data/relay-log
+relay_log_index
+relay_log_info_file relay-log.info
+relay_log_purge ON
+relay_log_space_limit 0
stop slave;
change master to master_host='127.0.0.1',master_user='root',
master_password='',master_port=MASTER_PORT;
@@ -14,4 +21,4 @@ start slave;
flush logs;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root SLAVE_PORT 60 slave-bin.000001 161 relay-log.000002 4 slave-bin.000001 Yes Yes 0 0 161 4 None 0 No #
+# 127.0.0.1 root SLAVE_PORT 60 slave-bin.000001 208 # # slave-bin.000001 Yes Yes 0 0 208 # None 0 No #
diff --git a/mysql-test/r/rpl_flush_tables.result b/mysql-test/r/rpl_flush_tables.result
index 1bdb79fd0b1..7d0bc54ae31 100644
--- a/mysql-test/r/rpl_flush_tables.result
+++ b/mysql-test/r/rpl_flush_tables.result
@@ -13,29 +13,29 @@ insert into t4 select * from t3;
rename table t1 to t5, t2 to t1;
flush no_write_to_binlog tables;
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: SERVER_VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; create table t1 (a int)
-master-bin.000001 137 Query 1 137 use `test`; insert into t1 values (10)
-master-bin.000001 198 Query 1 198 use `test`; create table t2 (a int)
-master-bin.000001 256 Query 1 256 use `test`; create table t3 (a int) engine=merge union(t1)
-master-bin.000001 337 Query 1 337 use `test`; create table t4 (a int)
-master-bin.000001 395 Query 1 395 use `test`; insert into t4 select * from t3
-master-bin.000001 461 Query 1 461 use `test`; rename table t1 to t5, t2 to t1
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Format_desc 1 # Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001 # Query 1 # use `test`; create table t1 (a int)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values (10)
+master-bin.000001 # Query 1 # use `test`; create table t2 (a int)
+master-bin.000001 # Query 1 # use `test`; create table t3 (a int) engine=merge union(t1)
+master-bin.000001 # Query 1 # use `test`; create table t4 (a int)
+master-bin.000001 # Query 1 # use `test`; insert into t4 select * from t3
+master-bin.000001 # Query 1 # use `test`; rename table t1 to t5, t2 to t1
select * from t3;
a
flush tables;
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: SERVER_VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; create table t1 (a int)
-master-bin.000001 137 Query 1 137 use `test`; insert into t1 values (10)
-master-bin.000001 198 Query 1 198 use `test`; create table t2 (a int)
-master-bin.000001 256 Query 1 256 use `test`; create table t3 (a int) engine=merge union(t1)
-master-bin.000001 337 Query 1 337 use `test`; create table t4 (a int)
-master-bin.000001 395 Query 1 395 use `test`; insert into t4 select * from t3
-master-bin.000001 461 Query 1 461 use `test`; rename table t1 to t5, t2 to t1
-master-bin.000001 527 Query 1 527 use `test`; flush tables
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Format_desc 1 # Server ver: SERVER_VERSION, Binlog ver: 4
+master-bin.000001 # Query 1 # use `test`; create table t1 (a int)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values (10)
+master-bin.000001 # Query 1 # use `test`; create table t2 (a int)
+master-bin.000001 # Query 1 # use `test`; create table t3 (a int) engine=merge union(t1)
+master-bin.000001 # Query 1 # use `test`; create table t4 (a int)
+master-bin.000001 # Query 1 # use `test`; insert into t4 select * from t3
+master-bin.000001 # Query 1 # use `test`; rename table t1 to t5, t2 to t1
+master-bin.000001 # Query 1 # use `test`; flush tables
select * from t3;
a
stop slave;
@@ -44,3 +44,4 @@ flush tables with read lock;
start slave;
stop slave;
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+drop table t3, t4, t5;
diff --git a/mysql-test/r/rpl_get_lock.result b/mysql-test/r/rpl_get_lock.result
index 26f33bfb42c..da300d99964 100644
--- a/mysql-test/r/rpl_get_lock.result
+++ b/mysql-test/r/rpl_get_lock.result
@@ -25,7 +25,7 @@ explain extended select is_free_lock("lock"), is_used_lock("lock");
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache is_free_lock(_latin1'lock') AS `is_free_lock("lock")`,is_used_lock(_latin1'lock') AS `is_used_lock("lock")`
+Note 1003 select is_free_lock(_latin1'lock') AS `is_free_lock("lock")`,is_used_lock(_latin1'lock') AS `is_used_lock("lock")`
select is_free_lock("lock2");
is_free_lock("lock2")
1
diff --git a/mysql-test/r/rpl_grant.result b/mysql-test/r/rpl_grant.result
new file mode 100644
index 00000000000..4d7ad298ce4
--- /dev/null
+++ b/mysql-test/r/rpl_grant.result
@@ -0,0 +1,77 @@
+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;
+**** On Master ****
+CREATE USER dummy@localhost;
+CREATE USER dummy1@localhost, dummy2@localhost;
+SELECT user, host FROM mysql.user WHERE user != 'root';
+user host
+dummy localhost
+dummy1 localhost
+dummy2 localhost
+SELECT COUNT(*) FROM mysql.user;
+COUNT(*)
+6
+**** On Slave ****
+SELECT user,host FROM mysql.user WHERE user != 'root';
+user host
+dummy localhost
+dummy1 localhost
+dummy2 localhost
+SELECT COUNT(*) FROM mysql.user;
+COUNT(*)
+6
+**** On Master ****
+DROP USER nonexisting@localhost;
+ERROR HY000: Operation DROP USER failed for 'nonexisting'@'localhost'
+DROP USER nonexisting@localhost, dummy@localhost;
+ERROR HY000: Operation DROP USER failed for 'nonexisting'@'localhost'
+DROP USER dummy1@localhost, dummy2@localhost;
+SELECT user, host FROM mysql.user WHERE user != 'root';
+user host
+SELECT COUNT(*) FROM mysql.user;
+COUNT(*)
+3
+**** On Slave ****
+SELECT user,host FROM mysql.user WHERE user != 'root';
+user host
+SELECT COUNT(*) FROM mysql.user;
+COUNT(*)
+3
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_PORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 609
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running Yes
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 609
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
diff --git a/mysql-test/r/rpl_ignore_revoke.result b/mysql-test/r/rpl_ignore_revoke.result
new file mode 100644
index 00000000000..b1ccd2f0442
--- /dev/null
+++ b/mysql-test/r/rpl_ignore_revoke.result
@@ -0,0 +1,30 @@
+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;
+grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
+revoke select on *.* from 'user_foo'@'%';
+select select_priv from mysql.user where user='user_foo' /* master:must be N */;
+select_priv
+N
+grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
+revoke select on *.* from 'user_foo'@'%';
+select select_priv from mysql.user where user='user_foo' /* slave:must be N */;
+select_priv
+N
+grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
+select select_priv from mysql.user where user='user_foo' /* slave:must be Y */;
+select_priv
+Y
+revoke select on *.* from 'user_foo';
+select select_priv from mysql.user where user='user_foo' /* master:must be N */;
+select_priv
+N
+select select_priv from mysql.user where user='user_foo' /* slave:must get Y */;
+select_priv
+Y
+revoke select on *.* FROM 'user_foo';
+delete from mysql.user where user="user_foo";
+delete from mysql.user where user="user_foo";
diff --git a/mysql-test/r/rpl_ignore_table.result b/mysql-test/r/rpl_ignore_table.result
index 28bb4a448e0..80cff7c9a1e 100644
--- a/mysql-test/r/rpl_ignore_table.result
+++ b/mysql-test/r/rpl_ignore_table.result
@@ -30,6 +30,10 @@ create database mysqltest2;
create table mysqltest2.t2 (id int);
GRANT SELECT ON mysqltest2.t2 TO mysqltest4@localhost IDENTIFIED BY 'pass';
insert into mysql.user (user, host) values ("mysqltest5", "somehost");
+Warnings:
+Warning 1364 Field 'ssl_cipher' doesn't have a default value
+Warning 1364 Field 'x509_issuer' doesn't have a default value
+Warning 1364 Field 'x509_subject' doesn't have a default value
GRANT SELECT ON *.* TO mysqltest6@localhost;
GRANT INSERT ON *.* TO mysqltest6@localhost;
GRANT INSERT ON test.* TO mysqltest6@localhost;
@@ -117,3 +121,19 @@ delete from mysql.user where user like "mysqltest%";
delete from mysql.db where user like "mysqltest%";
delete from mysql.tables_priv where user like "mysqltest%";
delete from mysql.columns_priv where user like "mysqltest%";
+DROP TABLE IF EXISTS t5;
+CREATE TABLE t5 (
+word varchar(50) collate utf8_unicode_ci NOT NULL default ''
+) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+SET @@session.character_set_client=33,@@session.collation_connection=192;
+CREATE TEMPORARY TABLE tmptbl504451f4258$1 (id INT NOT NULL) ENGINE=MEMORY;
+INSERT INTO t5 (word) VALUES ('TEST’');
+SELECT HEX(word) FROM t5;
+HEX(word)
+54455354E28099
+SELECT HEX(word) FROM t5;
+HEX(word)
+54455354E28099
+SELECT * FROM tmptbl504451f4258$1;
+ERROR 42S02: Table 'test.tmptbl504451f4258$1' doesn't exist
+DROP TABLE t5;
diff --git a/mysql-test/r/rpl_init_slave.result b/mysql-test/r/rpl_init_slave.result
index 83d0a3289a2..f92fb9b4c1d 100644
--- a/mysql-test/r/rpl_init_slave.result
+++ b/mysql-test/r/rpl_init_slave.result
@@ -17,8 +17,11 @@ init_slave
show variables like 'max_connections';
Variable_name Value
max_connections 100
+set @my_global_init_connect= @@global.init_connect;
set global init_connect="set @c=1";
show variables like 'init_connect';
Variable_name Value
init_connect set @c=1
stop slave;
+set global init_connect= @my_global_init_connect;
+set global max_connections= default;
diff --git a/mysql-test/r/rpl_innodb.result b/mysql-test/r/rpl_innodb.result
index ebf1d79c4d0..765de8af458 100644
--- a/mysql-test/r/rpl_innodb.result
+++ b/mysql-test/r/rpl_innodb.result
@@ -12,7 +12,7 @@ PRIMARY KEY (id),
UNIQUE KEY unique_rec (name,number)
) ENGINE=InnoDB;
LOAD DATA
-INFILE '../../std_data/loaddata_pair.dat'
+INFILE '../std_data_ln/loaddata_pair.dat'
REPLACE INTO TABLE t4
(name,number);
SELECT * FROM t4;
@@ -24,7 +24,7 @@ id name number
1 XXX 12345
2 XXY 12345
LOAD DATA
-INFILE '../../std_data/loaddata_pair.dat'
+INFILE '../std_data_ln/loaddata_pair.dat'
REPLACE INTO TABLE t4
(name,number);
SELECT * FROM t4;
diff --git a/mysql-test/r/rpl_insert_delayed.result b/mysql-test/r/rpl_insert_delayed.result
new file mode 100644
index 00000000000..6815a727fd7
--- /dev/null
+++ b/mysql-test/r/rpl_insert_delayed.result
@@ -0,0 +1,54 @@
+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;
+CREATE TABLE t1 (id INT primary key auto_increment, name VARCHAR(64));
+truncate table t1;
+insert delayed into t1 values(10, "my name");
+insert delayed into t1 values(10, "is Bond"), (20, "James Bond");
+ERROR 23000: Duplicate entry '10' for key 1
+flush table t1;
+select * from t1;
+id name
+10 my name
+select * from t1;
+id name
+10 my name
+delete from t1 where id!=10;
+insert delayed into t1 values(20, "is Bond"), (10, "James Bond");
+ERROR 23000: Duplicate entry '10' for key 1
+flush table t1;
+select * from t1;
+id name
+10 my name
+20 is Bond
+select * from t1;
+id name
+10 my name
+20 is Bond
+drop table t1;
+CREATE TABLE t1(a int, UNIQUE(a));
+INSERT DELAYED IGNORE INTO t1 VALUES(1);
+INSERT DELAYED IGNORE INTO t1 VALUES(1);
+flush table t1;
+show binlog events limit 11,100;
+Log_name Pos Event_type Server_id End_log_pos Info
+x x x x x use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
+x x x x x use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
+x x x x x use `test`; flush table t1
+select * from t1;
+a
+1
+On slave
+show binlog events limit 12,100;
+Log_name Pos Event_type Server_id End_log_pos Info
+x x x x x use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
+x x x x x use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
+x x x x x use `test`; flush table t1
+select * from t1;
+a
+1
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/rpl_insert_id.result b/mysql-test/r/rpl_insert_id.result
index 43aba68d041..a5c8e17f67e 100644
--- a/mysql-test/r/rpl_insert_id.result
+++ b/mysql-test/r/rpl_insert_id.result
@@ -91,10 +91,10 @@ CREATE TABLE t1 ( a INT UNIQUE );
SET FOREIGN_KEY_CHECKS=0;
INSERT INTO t1 VALUES (1),(1);
ERROR 23000: Duplicate entry '1' for key 1
+drop table t1;
#
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
#
-drop table t1;
create table t1(a int auto_increment, key(a));
create table t2(a int);
insert into t1 (a) values (null);
@@ -108,33 +108,337 @@ a
1
drop table t1;
drop table t2;
-DROP TABLE IF EXISTS t1;
+#
+# End of 4.1 tests
+#
+drop function if exists bug15728;
+drop function if exists bug15728_insert;
+drop table if exists t1, t2;
+create table t1 (
+id int not null auto_increment,
+last_id int,
+primary key (id)
+);
+create function bug15728() returns int(11)
+return last_insert_id();
+insert into t1 (last_id) values (0);
+insert into t1 (last_id) values (last_insert_id());
+insert into t1 (last_id) values (bug15728());
+create table t2 (
+id int not null auto_increment,
+last_id int,
+primary key (id)
+);
+create function bug15728_insert() returns int(11) modifies sql data
+begin
+insert into t2 (last_id) values (bug15728());
+return bug15728();
+end|
+create trigger t1_bi before insert on t1 for each row
+begin
+declare res int;
+select bug15728_insert() into res;
+set NEW.last_id = res;
+end|
+insert into t1 (last_id) values (0);
+drop trigger t1_bi;
+select last_insert_id();
+last_insert_id()
+4
+select bug15728_insert();
+bug15728_insert()
+2
+select last_insert_id();
+last_insert_id()
+4
+insert into t1 (last_id) values (bug15728());
+select last_insert_id();
+last_insert_id()
+5
+select * from t1;
+id last_id
+1 0
+2 1
+3 2
+4 1
+5 4
+select * from t2;
+id last_id
+1 3
+2 4
+drop function bug15728;
+drop function bug15728_insert;
+drop table t1, t2;
+create table t1 (n int primary key auto_increment not null,
+b int, unique(b));
+set sql_log_bin=0;
+insert into t1 values(null,100);
+replace into t1 values(null,50),(null,100),(null,150);
+select * from t1 order by n;
+n b
+2 50
+3 100
+4 150
+truncate table t1;
+set sql_log_bin=1;
+insert into t1 values(null,100);
+select * from t1 order by n;
+n b
+1 100
+insert into t1 values(null,200),(null,300);
+delete from t1 where b <> 100;
+select * from t1 order by n;
+n b
+1 100
+replace into t1 values(null,100),(null,350);
+select * from t1 order by n;
+n b
+2 100
+3 350
+select * from t1 order by n;
+n b
+2 100
+3 350
+insert into t1 values (NULL,400),(3,500),(NULL,600) on duplicate key UPDATE n=1000;
+select * from t1 order by n;
+n b
+2 100
+4 400
+1000 350
+1001 600
+select * from t1 order by n;
+n b
+2 100
+4 400
+1000 350
+1001 600
+drop table t1;
+create table t1 (n int primary key auto_increment not null,
+b int, unique(b));
+insert into t1 values(null,100);
+select * from t1 order by n;
+n b
+1 100
+insert into t1 values(null,200),(null,300);
+delete from t1 where b <> 100;
+select * from t1 order by n;
+n b
+1 100
+insert into t1 values(null,100),(null,350) on duplicate key update n=2;
+select * from t1 order by n;
+n b
+2 100
+3 350
+select * from t1 order by n;
+n b
+2 100
+3 350
+drop table t1;
+CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
+UNIQUE(b));
+INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
+SELECT * FROM t1;
+a b
+1 10
+2 2
+SELECT * FROM t1;
+a b
+1 10
+2 2
+drop table t1;
+CREATE TABLE t1 (
+id bigint(20) unsigned NOT NULL auto_increment,
+field_1 int(10) unsigned NOT NULL,
+field_2 varchar(255) NOT NULL,
+field_3 varchar(255) NOT NULL,
+PRIMARY KEY (id),
+UNIQUE KEY field_1 (field_1, field_2)
+);
+CREATE TABLE t2 (
+field_a int(10) unsigned NOT NULL,
+field_b varchar(255) NOT NULL,
+field_c varchar(255) NOT NULL
+);
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (1, 'a', '1a');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (2, 'b', '2b');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (3, 'c', '3c');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (4, 'd', '4d');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (5, 'e', '5e');
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (6, 'f', '6f');
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+SELECT * FROM t1;
+id field_1 field_2 field_3
+1 1 a 1a
+2 2 b 2b
+3 3 c 3c
+4 4 d 4d
+5 5 e 5e
+6 6 f 6f
+SELECT * FROM t1;
+id field_1 field_2 field_3
+1 1 a 1a
+2 2 b 2b
+3 3 c 3c
+4 4 d 4d
+5 5 e 5e
+6 6 f 6f
+drop table t1, t2;
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1, t2;
+SELECT LAST_INSERT_ID(0);
+LAST_INSERT_ID(0)
+0
+CREATE TABLE t1 (
+id INT NOT NULL DEFAULT 0,
+last_id INT,
+PRIMARY KEY (id)
+);
+CREATE TABLE t2 (
+id INT NOT NULL AUTO_INCREMENT,
+last_id INT,
+PRIMARY KEY (id)
+);
+CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t2 (last_id) VALUES (LAST_INSERT_ID());
+INSERT INTO t1 (last_id) VALUES (LAST_INSERT_ID());
+END|
+CALL p1();
+SELECT * FROM t1;
+id last_id
+0 1
+SELECT * FROM t2;
+id last_id
+1 0
+SELECT * FROM t1;
+id last_id
+0 1
+SELECT * FROM t2;
+id last_id
+1 0
+DROP PROCEDURE p1;
+DROP TABLE t1, t2;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (
i INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
j INT DEFAULT 0
);
+CREATE TABLE t2 (i INT);
+CREATE PROCEDURE p1()
+BEGIN
+INSERT INTO t1 (i) VALUES (NULL);
+INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+INSERT INTO t1 (i) VALUES (NULL), (NULL);
+INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+END |
+CREATE FUNCTION f1() RETURNS INT MODIFIES SQL DATA
+BEGIN
+INSERT INTO t1 (i) VALUES (NULL);
+INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+INSERT INTO t1 (i) VALUES (NULL), (NULL);
+INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+RETURN 0;
+END |
+CREATE FUNCTION f2() RETURNS INT NOT DETERMINISTIC
+RETURN LAST_INSERT_ID() |
+CREATE FUNCTION f3() RETURNS INT MODIFIES SQL DATA
+BEGIN
+INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+RETURN 0;
+END |
INSERT INTO t1 VALUES (NULL, -1);
+CALL p1();
+SELECT f1();
+f1()
+0
+INSERT INTO t1 VALUES (NULL, f2()), (NULL, LAST_INSERT_ID()),
+(NULL, LAST_INSERT_ID()), (NULL, f2()), (NULL, f2());
+INSERT INTO t1 VALUES (NULL, f2());
INSERT INTO t1 VALUES (NULL, LAST_INSERT_ID()), (NULL, LAST_INSERT_ID(5)),
(NULL, @@LAST_INSERT_ID);
INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
UPDATE t1 SET j= -1 WHERE i IS NULL;
+INSERT INTO t1 (i) VALUES (NULL);
+INSERT INTO t1 (i) VALUES (NULL);
+SELECT f3();
+f3()
+0
SELECT * FROM t1;
i j
1 -1
-2 1
-3 5
-4 1
-5 -1
-6 2
+2 0
+3 0
+4 0
+5 0
+6 0
+7 0
+8 3
+9 3
+10 3
+11 3
+12 3
+13 8
+14 13
+15 5
+16 13
+17 -1
+18 14
+19 0
+20 0
+SELECT * FROM t2;
+i
+2
+3
+5
+6
+19
SELECT * FROM t1;
i j
1 -1
-2 1
-3 5
-4 1
-5 -1
-6 2
-DROP TABLE t1;
-#
-# End of 4.1 tests
-#
+2 0
+3 0
+4 0
+5 0
+6 0
+7 0
+8 3
+9 3
+10 3
+11 3
+12 3
+13 8
+14 13
+15 5
+16 13
+17 -1
+18 14
+19 0
+20 0
+SELECT * FROM t2;
+i
+2
+3
+5
+6
+19
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;
+DROP TABLE t1, t2;
+
+# End of 5.0 tests
+
diff --git a/mysql-test/r/rpl_known_bugs_detection.result b/mysql-test/r/rpl_known_bugs_detection.result
new file mode 100644
index 00000000000..c23586c6f61
--- /dev/null
+++ b/mysql-test/r/rpl_known_bugs_detection.result
@@ -0,0 +1,133 @@
+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;
+CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
+UNIQUE(b));
+INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
+SELECT * FROM t1;
+a b
+1 10
+2 2
+show slave status;;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port #
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos #
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 1105
+Last_Error Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10'
+Skip_Counter 0
+Exec_Master_Log_Pos 238
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
+SELECT * FROM t1;
+a b
+stop slave;
+reset slave;
+reset master;
+drop table t1;
+start slave;
+CREATE TABLE t1 (
+id bigint(20) unsigned NOT NULL auto_increment,
+field_1 int(10) unsigned NOT NULL,
+field_2 varchar(255) NOT NULL,
+field_3 varchar(255) NOT NULL,
+PRIMARY KEY (id),
+UNIQUE KEY field_1 (field_1, field_2)
+);
+CREATE TABLE t2 (
+field_a int(10) unsigned NOT NULL,
+field_b varchar(255) NOT NULL,
+field_c varchar(255) NOT NULL
+);
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (1, 'a', '1a');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (2, 'b', '2b');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (3, 'c', '3c');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (4, 'd', '4d');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (5, 'e', '5e');
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (6, 'f', '6f');
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+SELECT * FROM t1;
+id field_1 field_2 field_3
+1 1 a 1a
+2 2 b 2b
+3 3 c 3c
+4 4 d 4d
+5 5 e 5e
+6 6 f 6f
+show slave status;;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port #
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos #
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 1105
+Last_Error Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c'
+Skip_Counter 0
+Exec_Master_Log_Pos 1270
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
+SELECT * FROM t1;
+id field_1 field_2 field_3
+drop table t1, t2;
+drop table t1, t2;
diff --git a/mysql-test/r/rpl_loaddata.result b/mysql-test/r/rpl_loaddata.result
index 446b7961578..be137079c7a 100644
--- a/mysql-test/r/rpl_loaddata.result
+++ b/mysql-test/r/rpl_loaddata.result
@@ -6,9 +6,9 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
reset master;
create table t1(a int not null auto_increment, b int, primary key(a) );
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
create temporary table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60));
-load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines;
+load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines;
create table t3 (day date,id int(9),category enum('a','b','c'),name varchar(60));
insert into t3 select * from t2;
select * from t1;
@@ -22,34 +22,34 @@ day id category name
2003-03-22 2416 a bbbbb
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
-slave-bin.000001 950
+slave-bin.000001 1272
drop table t1;
drop table t2;
drop table t3;
create table t1(a int, b int, unique(b));
insert into t1 values(1,10);
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
set global sql_slave_skip_counter=1;
start slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 1311 # # master-bin.000001 Yes Yes 0 0 1311 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 1789 # # master-bin.000001 Yes Yes 0 0 1789 # None 0 No #
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
stop slave;
change master to master_user='test';
change master to master_user='root';
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 1419 # # master-bin.000001 No No 0 0 1419 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 1824 # # master-bin.000001 No No 0 0 1824 # None 0 No #
set global sql_slave_skip_counter=1;
start slave;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
stop slave;
reset slave;
show slave status;
@@ -57,12 +57,30 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
# 127.0.0.1 root MASTER_PORT 1 4 # # No No 0 0 0 # None 0 No #
reset master;
create table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60),
-unique(day));
-load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields
+unique(day)) engine=MyISAM;
+load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
'\n##\n' starting by '>' ignore 1 lines;
ERROR 23000: Duplicate entry '2003-03-22' for key 1
-show master status;
-File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 491
+select * from t2;
+day id category name
+2003-02-22 2461 b a a a @ %  ' " a
+2003-03-22 2161 c asdf
+start slave;
+select * from t2;
+day id category name
+2003-02-22 2461 b a a a @ %  ' " a
+2003-03-22 2161 c asdf
+alter table t2 drop key day;
+delete from t2;
+load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields
+terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
+'\n##\n' starting by '>' ignore 1 lines;
+ERROR 23000: Duplicate entry '2003-03-22' for key 1
+drop table t2;
drop table t2;
+drop table t1;
+CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;
+LOAD DATA INFILE "../std_data_ln/words.dat" INTO TABLE t1;
+ERROR 23000: Duplicate entry 'Aarhus' for key 1
+DROP TABLE t1;
diff --git a/mysql-test/r/rpl_loaddata_charset.result b/mysql-test/r/rpl_loaddata_charset.result
new file mode 100644
index 00000000000..929d06e74cf
--- /dev/null
+++ b/mysql-test/r/rpl_loaddata_charset.result
@@ -0,0 +1,37 @@
+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;
+create table t1 (a varchar(10) character set utf8);
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=DEFAULT;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=DEFAULT;
+load data infile '../std_data_ln/loaddata6.dat' into table t1 character set koi8r;
+select hex(a) from t1;
+hex(a)
+C3BF
+D0AA
+C3BF
+C3BF
+C3BF
+D0AA
+D0AA
+select hex(a) from t1;
+hex(a)
+C3BF
+D0AA
+C3BF
+C3BF
+C3BF
+D0AA
+D0AA
+drop table t1;
diff --git a/mysql-test/r/rpl_loaddata_rule_m.result b/mysql-test/r/rpl_loaddata_rule_m.result
index 08f2c2ec071..375057aad0a 100644
--- a/mysql-test/r/rpl_loaddata_rule_m.result
+++ b/mysql-test/r/rpl_loaddata_rule_m.result
@@ -9,9 +9,13 @@ stop slave;
create database mysqltest;
create table t1(a int, b int, unique(b));
use mysqltest;
-load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 drop database if exists mysqltest
-master-bin.000001 152 Query 1 152 create database mysqltest
+load data infile '../std_data_ln/rpl_loaddata.dat' into table test.t1;
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # drop database if exists mysqltest
+master-bin.000001 # Query 1 # create database mysqltest
+master-bin.000001 # Begin_load_query 1 # ;file_id=1;block_len=12
+master-bin.000001 # Execute_load_query 1 # use `mysqltest`; load data infile '../std_data_ln/rpl_loaddata.dat' into table test.t1 ;file_id=1
drop database mysqltest;
+use test;
+drop table t1;
diff --git a/mysql-test/r/rpl_loaddata_rule_s.result b/mysql-test/r/rpl_loaddata_rule_s.result
index 26893cb1e9e..62e9b64cb0d 100644
--- a/mysql-test/r/rpl_loaddata_rule_s.result
+++ b/mysql-test/r/rpl_loaddata_rule_s.result
@@ -6,9 +6,10 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
reset master;
create table t1(a int, b int, unique(b));
-load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table test.t1;
select count(*) from t1;
count(*)
2
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+drop table t1;
diff --git a/mysql-test/r/rpl_loaddatalocal.result b/mysql-test/r/rpl_loaddatalocal.result
index b2ca868a094..20e56a62133 100644
--- a/mysql-test/r/rpl_loaddatalocal.result
+++ b/mysql-test/r/rpl_loaddatalocal.result
@@ -12,3 +12,20 @@ select a,count(*) from t1 group by a;
a count(*)
1 10000
drop table t1;
+create table t1(a int);
+insert into t1 values (1), (2), (2), (3);
+select * into outfile 'MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile' from t1;
+drop table t1;
+create table t1(a int primary key);
+load data local infile 'MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile' into table t1;
+select * from t1;
+a
+1
+2
+3
+select * from t1;
+a
+1
+2
+3
+drop table t1;
diff --git a/mysql-test/r/rpl_locale.result b/mysql-test/r/rpl_locale.result
index 5de5bab9a0b..b7396084663 100644
--- a/mysql-test/r/rpl_locale.result
+++ b/mysql-test/r/rpl_locale.result
@@ -7,10 +7,14 @@ start slave;
create table t1 (s1 char(10));
set lc_time_names= 'de_DE';
insert into t1 values (date_format('2001-01-01','%W'));
+set lc_time_names= 'en_US';
+insert into t1 values (date_format('2001-01-01','%W'));
select * from t1;
s1
Montag
+Monday
select * from t1;
s1
Montag
+Monday
drop table t1;
diff --git a/mysql-test/r/rpl_log.result b/mysql-test/r/rpl_log.result
index 5a351ea693c..6ee0eb283b5 100644
--- a/mysql-test/r/rpl_log.result
+++ b/mysql-test/r/rpl_log.result
@@ -12,32 +12,32 @@ create table t1(n int not null auto_increment primary key);
insert into t1 values (NULL);
drop table t1;
create table t1 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t1 ignore 1 lines;
+load data infile '../std_data_ln/words.dat' into table t1 ignore 1 lines;
select count(*) from t1;
count(*)
69
drop table t1;
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; create table t1(n int not null auto_increment primary key)
-master-bin.000001 172 Intvar 1 172 INSERT_ID=1
-master-bin.000001 200 Query 1 200 use `test`; insert into t1 values (NULL)
-master-bin.000001 263 Query 1 263 use `test`; drop table t1
-master-bin.000001 311 Query 1 311 use `test`; create table t1 (word char(20) not null)
-master-bin.000001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=581
-master-bin.000001 1056 Exec_load 1 1056 ;file_id=1
-master-bin.000001 1079 Query 1 1079 use `test`; drop table t1
-show binlog events from 79 limit 1;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; create table t1(n int not null auto_increment primary key)
-show binlog events from 79 limit 2;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use `test`; create table t1(n int not null auto_increment primary key)
-master-bin.000001 172 Intvar 1 172 INSERT_ID=1
-show binlog events from 79 limit 2,1;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 200 Query 1 200 use `test`; insert into t1 values (NULL)
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
+master-bin.000001 98 Query 1 219 use `test`; create table t1(n int not null auto_increment primary key)
+master-bin.000001 219 Intvar 1 247 INSERT_ID=1
+master-bin.000001 247 Query 1 338 use `test`; insert into t1 values (NULL)
+master-bin.000001 338 Query 1 414 use `test`; drop table t1
+master-bin.000001 414 Query 1 517 use `test`; create table t1 (word char(20) not null)
+master-bin.000001 517 Begin_load_query 1 1121 ;file_id=1;block_len=581
+master-bin.000001 1121 Execute_load_query 1 1269 use `test`; load data infile '../std_data_ln/words.dat' into table t1 ignore 1 lines ;file_id=1
+master-bin.000001 1269 Query 1 1345 use `test`; drop table t1
+show binlog events from 98 limit 1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 219 use `test`; create table t1(n int not null auto_increment primary key)
+show binlog events from 98 limit 2;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 Query 1 219 use `test`; create table t1(n int not null auto_increment primary key)
+master-bin.000001 219 Intvar 1 247 INSERT_ID=1
+show binlog events from 98 limit 2,1;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 247 Query 1 338 use `test`; insert into t1 values (NULL)
flush logs;
create table t5 (a int);
drop table t5;
@@ -48,55 +48,57 @@ create table t1 (n int);
insert into t1 values (1);
drop table t1;
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; create table t1(n int not null auto_increment primary key)
-master-bin.000001 172 Intvar 1 172 INSERT_ID=1
-master-bin.000001 200 Query 1 200 use `test`; insert into t1 values (NULL)
-master-bin.000001 263 Query 1 263 use `test`; drop table t1
-master-bin.000001 311 Query 1 311 use `test`; create table t1 (word char(20) not null)
-master-bin.000001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=581
-master-bin.000001 1056 Exec_load 1 1056 ;file_id=1
-master-bin.000001 1079 Query 1 1079 use `test`; drop table t1
-master-bin.000001 1127 Rotate 1 1127 master-bin.000002;pos=4
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
+master-bin.000001 98 Query 1 219 use `test`; create table t1(n int not null auto_increment primary key)
+master-bin.000001 219 Intvar 1 247 INSERT_ID=1
+master-bin.000001 247 Query 1 338 use `test`; insert into t1 values (NULL)
+master-bin.000001 338 Query 1 414 use `test`; drop table t1
+master-bin.000001 414 Query 1 517 use `test`; create table t1 (word char(20) not null)
+master-bin.000001 517 Begin_load_query 1 1121 ;file_id=1;block_len=581
+master-bin.000001 1121 Execute_load_query 1 1269 use `test`; load data infile '../std_data_ln/words.dat' into table t1 ignore 1 lines ;file_id=1
+master-bin.000001 1269 Query 1 1345 use `test`; drop table t1
+master-bin.000001 1345 Rotate 1 1389 master-bin.000002;pos=4
show binlog events in 'master-bin.000002';
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000002 4 Query 1 4 use `test`; create table t5 (a int)
-master-bin.000002 62 Query 1 62 use `test`; drop table t5
-master-bin.000002 110 Query 1 110 use `test`; create table t1 (n int)
-master-bin.000002 168 Query 1 168 use `test`; insert into t1 values (1)
-master-bin.000002 228 Query 1 228 use `test`; drop table t1
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
+master-bin.000002 98 Query 1 184 use `test`; create table t5 (a int)
+master-bin.000002 184 Query 1 260 use `test`; drop table t5
+master-bin.000002 260 Query 1 346 use `test`; create table t1 (n int)
+master-bin.000002 346 Query 1 434 use `test`; insert into t1 values (1)
+master-bin.000002 434 Query 1 510 use `test`; drop table t1
show binary logs;
Log_name File_size
-master-bin.000001 1171
-master-bin.000002 276
+master-bin.000001 1389
+master-bin.000002 510
start slave;
show binary logs;
Log_name File_size
-slave-bin.000001 1278
-slave-bin.000002 170
+slave-bin.000001 1552
+slave-bin.000002 348
show binlog events in 'slave-bin.000001' from 4;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3
-slave-bin.000001 79 Query 1 79 use `test`; create table t1(n int not null auto_increment primary key)
-slave-bin.000001 172 Intvar 1 172 INSERT_ID=1
-slave-bin.000001 200 Query 1 200 use `test`; insert into t1 values (NULL)
-slave-bin.000001 263 Query 1 263 use `test`; drop table t1
-slave-bin.000001 311 Query 1 311 use `test`; create table t1 (word char(20) not null)
-slave-bin.000001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=581
-slave-bin.000001 1058 Exec_load 1 1058 ;file_id=1
-slave-bin.000001 1081 Query 1 1081 use `test`; drop table t1
-slave-bin.000001 1129 Query 1 1129 use `test`; create table t5 (a int)
-slave-bin.000001 1187 Query 1 1187 use `test`; drop table t5
-slave-bin.000001 1235 Rotate 2 1235 slave-bin.000002;pos=4
+Log_name Pos Event_type Server_id End_log_pos Info
+slave-bin.000001 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
+slave-bin.000001 98 Query 1 219 use `test`; create table t1(n int not null auto_increment primary key)
+slave-bin.000001 219 Intvar 1 247 INSERT_ID=1
+slave-bin.000001 247 Query 1 338 use `test`; insert into t1 values (NULL)
+slave-bin.000001 338 Query 1 414 use `test`; drop table t1
+slave-bin.000001 414 Query 1 517 use `test`; create table t1 (word char(20) not null)
+slave-bin.000001 517 Begin_load_query 1 1121 ;file_id=1;block_len=581
+slave-bin.000001 1121 Execute_load_query 1 1271 use `test`; load data INFILE '../tmp/SQL_LOAD-2-1-1.data' INTO table t1 ignore 1 lines ;file_id=1
+slave-bin.000001 1271 Query 1 1347 use `test`; drop table t1
+slave-bin.000001 1347 Query 1 1433 use `test`; create table t5 (a int)
+slave-bin.000001 1433 Query 1 1509 use `test`; drop table t5
+slave-bin.000001 1509 Rotate 2 1552 slave-bin.000002;pos=4
show binlog events in 'slave-bin.000002' from 4;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-slave-bin.000002 4 Query 1 4 use `test`; create table t1 (n int)
-slave-bin.000002 62 Query 1 62 use `test`; insert into t1 values (1)
-slave-bin.000002 122 Query 1 122 use `test`; drop table t1
+Log_name Pos Event_type Server_id End_log_pos Info
+slave-bin.000002 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
+slave-bin.000002 98 Query 1 184 use `test`; create table t1 (n int)
+slave-bin.000002 184 Query 1 272 use `test`; insert into t1 values (1)
+slave-bin.000002 272 Query 1 348 use `test`; drop table t1
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 276 # # master-bin.000002 Yes Yes 0 0 276 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 510 # # master-bin.000002 Yes Yes 0 0 510 # None 0 No #
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
create table t1(a int auto_increment primary key, b int);
@@ -105,11 +107,11 @@ reset master;
set insert_id=5;
insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id());
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-slave-bin.000001 4 Start 2 4 Server ver: VERSION, Binlog ver: 3
-slave-bin.000001 79 Intvar 2 79 LAST_INSERT_ID=1
-slave-bin.000001 107 Intvar 2 107 INSERT_ID=5
-slave-bin.000001 135 Query 2 135 use `test`; insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id())
+Log_name Pos Event_type Server_id End_log_pos Info
+slave-bin.000001 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
+slave-bin.000001 98 Intvar 2 126 LAST_INSERT_ID=1
+slave-bin.000001 126 Intvar 2 154 INSERT_ID=5
+slave-bin.000001 154 Query 2 289 use `test`; insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id())
select * from t1;
a b
1 1
diff --git a/mysql-test/r/rpl_log_pos.result b/mysql-test/r/rpl_log_pos.result
index 10c78272de6..b55326415bf 100644
--- a/mysql-test/r/rpl_log_pos.result
+++ b/mysql-test/r/rpl_log_pos.result
@@ -6,37 +6,87 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 79
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 79 slave-relay-bin.000002 123 master-bin.000001 Yes Yes 0 0 79 123 None 0 No #
-stop slave;
-change master to master_log_pos=73;
-start slave;
+master-bin.000001 98
stop slave;
change master to master_log_pos=73;
show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 73 slave-relay-bin.000001 4 master-bin.000001 No No 0 0 73 4 None 0 No #
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_PORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 73
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running No
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 73
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
start slave;
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 73 slave-relay-bin.000001 48 master-bin.000001 No Yes 0 0 73 48 None 0 No #
stop slave;
-change master to master_log_pos=173;
-start slave;
show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 173 slave-relay-bin.000001 4 master-bin.000001 No Yes 0 0 173 4 None 0 No #
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_PORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 73
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running No
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 73
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 79
+master-bin.000001 98
create table if not exists t1 (n int);
drop table if exists t1;
create table t1 (n int);
insert into t1 values (1),(2),(3);
-stop slave;
-change master to master_log_pos=79;
+change master to master_log_pos=98;
start slave;
select * from t1;
n
@@ -44,3 +94,4 @@ n
2
3
drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/rpl_master_pos_wait.result b/mysql-test/r/rpl_master_pos_wait.result
index 84f2b0bd91e..f0f48de4e07 100644
--- a/mysql-test/r/rpl_master_pos_wait.result
+++ b/mysql-test/r/rpl_master_pos_wait.result
@@ -11,7 +11,7 @@ explain extended select master_pos_wait('master-bin.999999',0,2);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache master_pos_wait(_latin1'master-bin.999999',0,2) AS `master_pos_wait('master-bin.999999',0,2)`
+Note 1003 select master_pos_wait(_latin1'master-bin.999999',0,2) AS `master_pos_wait('master-bin.999999',0,2)`
select master_pos_wait('master-bin.999999',0);
stop slave sql_thread;
master_pos_wait('master-bin.999999',0)
diff --git a/mysql-test/r/rpl_max_relay_size.result b/mysql-test/r/rpl_max_relay_size.result
index eee655adea0..95c9ae79d05 100644
--- a/mysql-test/r/rpl_max_relay_size.result
+++ b/mysql-test/r/rpl_max_relay_size.result
@@ -14,6 +14,7 @@ reset slave;
#
# Test 1
#
+set @my_max_binlog_size= @@global.max_binlog_size;
set global max_binlog_size=8192;
set global max_relay_log_size=8192-1;
select @@global.max_relay_log_size;
@@ -27,7 +28,7 @@ Master_User root
Master_Port MASTER_PORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 50477
+Read_Master_Log_Pos 72952
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -42,7 +43,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 50477
+Exec_Master_Log_Pos 72952
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -70,7 +71,7 @@ Master_User root
Master_Port MASTER_PORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 50477
+Read_Master_Log_Pos 72952
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -85,7 +86,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 50477
+Exec_Master_Log_Pos 72952
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -113,7 +114,7 @@ Master_User root
Master_Port MASTER_PORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 50477
+Read_Master_Log_Pos 72952
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -128,7 +129,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 50477
+Exec_Master_Log_Pos 72952
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -194,7 +195,7 @@ Master_User root
Master_Port MASTER_PORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 50535
+Read_Master_Log_Pos 73038
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -209,7 +210,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 50535
+Exec_Master_Log_Pos 73038
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -233,7 +234,7 @@ Master_User root
Master_Port MASTER_PORT
Connect_Retry 1
Master_Log_File master-bin.000001
-Read_Master_Log_Pos 50583
+Read_Master_Log_Pos 73114
Relay_Log_File #
Relay_Log_Pos #
Relay_Master_Log_File master-bin.000001
@@ -248,7 +249,7 @@ Replicate_Wild_Ignore_Table
Last_Errno 0
Last_Error
Skip_Counter 0
-Exec_Master_Log_Pos 50583
+Exec_Master_Log_Pos 73114
Relay_Log_Space #
Until_Condition None
Until_Log_File
@@ -263,6 +264,10 @@ Seconds_Behind_Master #
flush logs;
show master status;
File master-bin.000002
-Position 4
+Position 98
Binlog_Do_DB
Binlog_Ignore_DB
+set global max_binlog_size= @my_max_binlog_size;
+#
+# End of 4.1 tests
+#
diff --git a/mysql-test/r/rpl_misc_functions.result b/mysql-test/r/rpl_misc_functions.result
index a687063706d..a8e5520ca8f 100644
--- a/mysql-test/r/rpl_misc_functions.result
+++ b/mysql-test/r/rpl_misc_functions.result
@@ -15,7 +15,41 @@ insert into t1 values(3, 0, 0, 0, password('does_this_work?'));
insert into t1 values(4, connection_id(), rand()*1000, rand()*1000, password('does_this_still_work?'));
select * into outfile 'rpl_misc_functions.outfile' from t1;
create table t2 like t1;
-load data local infile './var/master-data/test/rpl_misc_functions.outfile' into table t2;
+load data local infile 'MYSQLTEST_VARDIR/master-data/test/rpl_misc_functions.outfile' into table t2;
select * from t1, t2 where (t1.id=t2.id) and not(t1.i=t2.i and t1.r1=t2.r1 and t1.r2=t2.r2 and t1.p=t2.p);
id i r1 r2 p id i r1 r2 p
-stop slave;
+drop table t1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+col_a DOUBLE DEFAULT NULL);
+CREATE PROCEDURE test_replication_sp1()
+BEGIN
+INSERT INTO t1 (col_a) VALUES (rand()), (rand());
+INSERT INTO t1 (col_a) VALUES (rand());
+END|
+CREATE PROCEDURE test_replication_sp2()
+BEGIN
+CALL test_replication_sp1();
+CALL test_replication_sp1();
+END|
+CREATE FUNCTION test_replication_sf() RETURNS DOUBLE DETERMINISTIC
+BEGIN
+RETURN (rand() + rand());
+END|
+CALL test_replication_sp1();
+CALL test_replication_sp2();
+INSERT INTO t1 (col_a) VALUES (test_replication_sf());
+INSERT INTO t1 (col_a) VALUES (test_replication_sf());
+INSERT INTO t1 (col_a) VALUES (test_replication_sf());
+select * from t1 into outfile "../tmp/t1_slave.txt";
+create temporary table t1_slave select * from t1 where 1=0;
+load data infile '../tmp/t1_slave.txt' into table t1_slave;
+select count(*) into @aux from t1 join t1_slave using (id)
+where ABS(t1.col_a - t1_slave.col_a) < 0.0000001 ;
+SELECT @aux;
+@aux
+12
+DROP TABLE t1, t1_slave;
+DROP PROCEDURE test_replication_sp1;
+DROP PROCEDURE test_replication_sp2;
+DROP FUNCTION test_replication_sf;
diff --git a/mysql-test/r/rpl_multi_delete.result b/mysql-test/r/rpl_multi_delete.result
index e94a4e7947e..d2c68eee62e 100644
--- a/mysql-test/r/rpl_multi_delete.result
+++ b/mysql-test/r/rpl_multi_delete.result
@@ -19,4 +19,13 @@ a
select * from t2;
a
1
+delete from t1;
+delete from t2;
+insert into t1 values(1);
+insert into t2 values(1);
+DELETE t1.*, t2.* from t1, t2;
+select * from t1;
+a
+select * from t2;
+a
drop table t1,t2;
diff --git a/mysql-test/r/rpl_multi_query.result b/mysql-test/r/rpl_multi_query.result
index 2521dbe1ed9..f2d8ea77536 100644
--- a/mysql-test/r/rpl_multi_query.result
+++ b/mysql-test/r/rpl_multi_query.result
@@ -19,8 +19,8 @@ n
3
4
5
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # drop database if exists mysqltest
master-bin.000001 # Query 1 # create database mysqltest
master-bin.000001 # Query 1 # use `test`; create table mysqltest.t1 ( n int)
diff --git a/mysql-test/r/rpl_multi_update.result b/mysql-test/r/rpl_multi_update.result
index 34f99746c7d..04cb1bc7460 100644
--- a/mysql-test/r/rpl_multi_update.result
+++ b/mysql-test/r/rpl_multi_update.result
@@ -24,3 +24,16 @@ a b
1 0
2 1
UPDATE t1, t2 SET t1.b = t2.b WHERE t1.a = t2.a;
+delete from t1;
+delete from t2;
+insert into t1 values(1,1);
+insert into t2 values(1,1);
+update t1 set a=2;
+UPDATE t1, t2 SET t1.a = t2.a;
+select * from t1;
+a b
+1 1
+select * from t2;
+a b
+1 1
+drop table t1, t2;
diff --git a/mysql-test/r/rpl_multi_update3.result b/mysql-test/r/rpl_multi_update3.result
index b81af7c6e39..bf454c7bb48 100644
--- a/mysql-test/r/rpl_multi_update3.result
+++ b/mysql-test/r/rpl_multi_update3.result
@@ -194,3 +194,4 @@ idpro price nbprice
1 1.0000 3
2 1.0000 2
3 2.0000 1
+drop table t1, t2;
diff --git a/mysql-test/r/rpl_ndb_innodb_trans.result b/mysql-test/r/rpl_ndb_innodb_trans.result
new file mode 100644
index 00000000000..148e6247b03
--- /dev/null
+++ b/mysql-test/r/rpl_ndb_innodb_trans.result
@@ -0,0 +1,103 @@
+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;
+create table t1 (a int, unique(a)) engine=ndbcluster;
+create table t2 (a int, unique(a)) engine=innodb;
+begin;
+insert into t1 values(1);
+insert into t2 values(1);
+rollback;
+select count(*) from t1;
+count(*)
+0
+select count(*) from t2;
+count(*)
+0
+select count(*) from t1;
+count(*)
+0
+select count(*) from t2;
+count(*)
+0
+begin;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t2;
+Warnings:
+Warning 1262 Row 1 was truncated; it contained more data than there were input columns
+Warning 1262 Row 2 was truncated; it contained more data than there were input columns
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
+Warnings:
+Warning 1262 Row 1 was truncated; it contained more data than there were input columns
+Warning 1262 Row 2 was truncated; it contained more data than there were input columns
+rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+select count(*) from t1;
+count(*)
+2
+select count(*) from t2;
+count(*)
+0
+select count(*) from t1;
+count(*)
+2
+select count(*) from t2;
+count(*)
+0
+delete from t1;
+delete from t2;
+begin;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t2;
+Warnings:
+Warning 1262 Row 1 was truncated; it contained more data than there were input columns
+Warning 1262 Row 2 was truncated; it contained more data than there were input columns
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
+Warnings:
+Warning 1262 Row 1 was truncated; it contained more data than there were input columns
+Warning 1262 Row 2 was truncated; it contained more data than there were input columns
+rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+select count(*) from t1;
+count(*)
+2
+select count(*) from t2;
+count(*)
+0
+select count(*) from t1;
+count(*)
+2
+select count(*) from t2;
+count(*)
+0
+delete from t1;
+delete from t2;
+begin;
+insert into t2 values(3),(4);
+insert into t1 values(3),(4);
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t2;
+Warnings:
+Warning 1262 Row 1 was truncated; it contained more data than there were input columns
+Warning 1262 Row 2 was truncated; it contained more data than there were input columns
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
+Warnings:
+Warning 1262 Row 1 was truncated; it contained more data than there were input columns
+Warning 1262 Row 2 was truncated; it contained more data than there were input columns
+rollback;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+select count(*) from t1;
+count(*)
+4
+select count(*) from t2;
+count(*)
+0
+select count(*) from t1;
+count(*)
+4
+select count(*) from t2;
+count(*)
+0
+drop table t1,t2;
diff --git a/mysql-test/r/rpl_openssl.result b/mysql-test/r/rpl_openssl.result
index 6c027c136d5..c10606bc03f 100644
--- a/mysql-test/r/rpl_openssl.result
+++ b/mysql-test/r/rpl_openssl.result
@@ -20,11 +20,12 @@ t
1
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 replssl MASTER_MYPORT 1 master-bin.000001 295 slave-relay-bin.000001 108 master-bin.000001 Yes Yes 0 0 295 108 None 0 Yes MYSQL_TEST_DIR/std_data/cacert.pem MYSQL_TEST_DIR/std_data/client-cert.pem MYSQL_TEST_DIR/std_data/client-key.pem #
+# 127.0.0.1 replssl MASTER_MYPORT 1 master-bin.000001 398 # # master-bin.000001 Yes Yes 0 0 398 # None 0 Yes MYSQL_TEST_DIR/std_data/cacert.pem MYSQL_TEST_DIR/std_data/client-cert.pem MYSQL_TEST_DIR/std_data/client-key.pem #
stop slave;
change master to master_user='root',master_password='', master_ssl=0;
start slave;
+drop user replssl@localhost;
drop table t1;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 343 slave-relay-bin.000001 96 master-bin.000001 Yes Yes 0 0 343 96 None 0 No MYSQL_TEST_DIR/std_data/cacert.pem MYSQL_TEST_DIR/std_data/client-cert.pem MYSQL_TEST_DIR/std_data/client-key.pem #
+# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 564 # # master-bin.000001 Yes Yes 0 0 564 # None 0 No MYSQL_TEST_DIR/std_data/cacert.pem MYSQL_TEST_DIR/std_data/client-cert.pem MYSQL_TEST_DIR/std_data/client-key.pem #
diff --git a/mysql-test/r/rpl_packet.result b/mysql-test/r/rpl_packet.result
index a5c9b43cabb..894bc81b08d 100644
--- a/mysql-test/r/rpl_packet.result
+++ b/mysql-test/r/rpl_packet.result
@@ -15,3 +15,12 @@ select count(*) from `DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_______________
count(*)
1
drop database DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
+SET @@global.max_allowed_packet=4096;
+SET @@global.net_buffer_length=4096;
+STOP SLAVE;
+START SLAVE;
+CREATE TABLe `t1` (`f1` LONGTEXT) ENGINE=MyISAM;
+INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2048');
+SHOW STATUS LIKE 'Slave_running';
+Variable_name Value
+Slave_running OFF
diff --git a/mysql-test/r/rpl_replicate_do.result b/mysql-test/r/rpl_replicate_do.result
index b9294c9c767..9bacffb0609 100644
--- a/mysql-test/r/rpl_replicate_do.result
+++ b/mysql-test/r/rpl_replicate_do.result
@@ -9,7 +9,7 @@ drop table if exists t11;
create table t2 (n int);
insert into t2 values(4);
create table t2 (s char(20));
-load data infile '../../std_data/words.dat' into table t2;
+load data infile '../std_data_ln/words.dat' into table t2;
insert into t2 values('five');
create table t1 (m int);
insert into t1 values(15),(16),(17);
@@ -28,7 +28,7 @@ ERROR 42S02: Table 'test.t11' doesn't exist
drop table if exists t1,t2,t11;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 1340 # # master-bin.000001 Yes Yes test.t1 0 0 1340 # None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 1658 # # master-bin.000001 Yes Yes test.t1 0 0 1658 # None 0 No #
create table t1 (ts timestamp);
set one_shot time_zone='met';
insert into t1 values('2005-08-12 00:00:00');
@@ -40,3 +40,38 @@ set one_shot time_zone='met';
select * from t1;
ts
2005-08-12 00:00:00
+drop table t1;
+*** master ***
+create table t1 (a int, b int);
+create trigger trg1 before insert on t1 for each row set new.b=2;
+create table t2 (a int, b int);
+create trigger trg2 before insert on t2 for each row set new.b=2;
+show tables;
+Tables_in_test
+t1
+t2
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost
+trg2 INSERT t2 set new.b=2 BEFORE NULL root@localhost
+*** slave ***
+show tables;
+Tables_in_test
+t1
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost
+*** master ***
+drop trigger trg1;
+drop trigger trg2;
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+*** slave ***
+show tables;
+Tables_in_test
+t1
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+*** master ***
+drop table t1;
+drop table t2;
diff --git a/mysql-test/r/rpl_reset_slave.result b/mysql-test/r/rpl_reset_slave.result
index 42d41533cb0..ab55423b773 100644
--- a/mysql-test/r/rpl_reset_slave.result
+++ b/mysql-test/r/rpl_reset_slave.result
@@ -6,20 +6,20 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 79 slave-relay-bin.000002 123 master-bin.000001 Yes Yes 0 0 79 123 None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 98 # # master-bin.000001 Yes Yes 0 0 98 # None 0 No #
stop slave;
change master to master_user='test';
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 test MASTER_PORT 1 master-bin.000001 79 slave-relay-bin.000001 4 master-bin.000001 No No 0 0 79 4 None 0 No #
+# 127.0.0.1 test MASTER_PORT 1 master-bin.000001 98 # # master-bin.000001 No No 0 0 98 # None 0 No #
reset slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 4 slave-relay-bin.000001 4 No No 0 0 0 4 None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 4 # # No No 0 0 0 # None 0 No #
start slave;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 79 slave-relay-bin.000002 123 master-bin.000001 Yes Yes 0 0 79 123 None 0 No #
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 98 # # master-bin.000001 Yes Yes 0 0 98 # None 0 No #
stop slave;
reset slave;
start slave;
diff --git a/mysql-test/r/rpl_rewrite_db.result b/mysql-test/r/rpl_rewrite_db.result
index da3ec0243fe..1b843bffdca 100644
--- a/mysql-test/r/rpl_rewrite_db.result
+++ b/mysql-test/r/rpl_rewrite_db.result
@@ -24,7 +24,7 @@ drop database if exists rewrite;
create database rewrite;
use test;
create table t1 (a date, b date, c date not null, d date);
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',';
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',';
Warnings:
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'c' at row 1
@@ -32,7 +32,7 @@ Warning 1265 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'a' at row 2
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 2
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
select * from rewrite.t1;
a b c d
0000-00-00 NULL 0000-00-00 0000-00-00
@@ -40,7 +40,7 @@ a b c d
2003-03-03 2003-03-03 2003-03-03 NULL
2003-03-03 2003-03-03 2003-03-03 NULL
truncate table t1;
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
Warnings:
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'd' at row 1
@@ -53,7 +53,7 @@ NULL 0000-00-00 0000-00-00 0000-00-00
NULL 2003-03-03 2003-03-03 NULL
drop table t1;
create table t1 (a text, b text);
-load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
Warnings:
Warning 1261 Row 3 doesn't contain data for all columns
select concat('|',a,'|'), concat('|',b,'|') from rewrite.t1;
@@ -65,11 +65,11 @@ Field 3,'Field 4|
|Field 6| | 'Field 7'|
drop table t1;
create table t1 (a int, b char(10));
-load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
Warnings:
-Warning 1265 Data truncated for column 'a' at row 3
+Warning 1366 Incorrect integer value: 'error ' for column 'a' at row 3
Warning 1262 Row 3 was truncated; it contained more data than there were input columns
-Warning 1265 Data truncated for column 'a' at row 5
+Warning 1366 Incorrect integer value: 'wrong end ' for column 'a' at row 5
Warning 1262 Row 5 was truncated; it contained more data than there were input columns
select * from rewrite.t1;
a b
@@ -79,9 +79,10 @@ a b
3 row 3
0 1234567890
truncate table t1;
-load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
Warnings:
-Warning 1265 Data truncated for column 'a' at row 4
+Warning 1366 Incorrect integer value: '
+' for column 'a' at row 4
Warning 1261 Row 4 doesn't contain data for all columns
select * from rewrite.t1;
a b
diff --git a/mysql-test/r/rpl_rotate_logs.result b/mysql-test/r/rpl_rotate_logs.result
index 9f74cdb9502..8a5ae6c8983 100644
--- a/mysql-test/r/rpl_rotate_logs.result
+++ b/mysql-test/r/rpl_rotate_logs.result
@@ -1,7 +1,7 @@
drop table if exists t1, t2, t3, t4;
drop table if exists t1, t2, t3, t4;
start slave;
-ERROR HY000: Could not initialize master info structure; more error messages can be found in the MySQL error log
+Got one of the listed errors
start slave;
ERROR HY000: Could not initialize master info structure; more error messages can be found in the MySQL error log
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
@@ -16,7 +16,7 @@ create table t1 (s text);
insert into t1 values('Could not break slave'),('Tried hard');
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 60 master-bin.000001 417 slave-relay-bin.000001 461 master-bin.000001 Yes Yes 0 0 417 461 None 0 No #
+# 127.0.0.1 root MASTER_PORT 60 master-bin.000001 548 # # master-bin.000001 Yes Yes 0 0 548 # None 0 No #
select * from t1;
s
Could not break slave
@@ -27,9 +27,9 @@ insert into t2 values (34),(67),(123);
flush logs;
show binary logs;
Log_name File_size
-master-bin.000001 461
-master-bin.000002 213
-master-bin.000003 4
+master-bin.000001 592
+master-bin.000002 363
+master-bin.000003 98
create table t3 select * from temp_table;
select * from t3;
a
@@ -43,21 +43,24 @@ start slave;
purge master logs to 'master-bin.000002';
show master logs;
Log_name File_size
-master-bin.000002 213
-master-bin.000003 229
+master-bin.000002 363
+master-bin.000003 407
purge binary logs to 'master-bin.000002';
show binary logs;
Log_name File_size
-master-bin.000002 213
-master-bin.000003 229
-purge master logs before now();
+master-bin.000002 363
+master-bin.000003 407
+select @time_for_purge:=DATE_ADD(UPDATE_TIME, INTERVAL 1 SECOND)
+from information_schema.tables
+where TABLE_SCHEMA="test" and TABLE_NAME="t2";
+purge master logs before (@time_for_purge);
show binary logs;
Log_name File_size
-master-bin.000003 229
+master-bin.000003 407
insert into t2 values (65);
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 60 master-bin.000003 290 slave-relay-bin.000001 1088 master-bin.000003 Yes Yes 0 0 290 1088 None 0 No #
+# 127.0.0.1 root MASTER_PORT 60 master-bin.000003 496 # # master-bin.000003 Yes Yes 0 0 496 # None 0 No #
select * from t2;
m
34
@@ -74,20 +77,29 @@ count(*)
create table t4 select * from temp_table;
show binary logs;
Log_name File_size
-master-bin.000003 4167
-master-bin.000004 2886
+master-bin.000003 4185
+master-bin.000004 4190
+master-bin.000005 2032
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000004 2886
+master-bin.000005 2032
select * from t4;
a
testing temporary tables part 2
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 60 master-bin.000004 2886 slave-relay-bin.000001 7891 master-bin.000004 Yes Yes 0 0 2886 7891 None 0 No #
+# 127.0.0.1 root MASTER_PORT 60 master-bin.000005 2032 # # master-bin.000005 Yes Yes 0 0 2032 # None 0 No #
lock tables t3 read;
select count(*) from t3 where n >= 4;
count(*)
100
unlock tables;
drop table if exists t1,t2,t3,t4;
+End of 4.1 tests
+show binlog events in 'non existing_binlog_file';
+ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
+purge master logs before now();
+show binlog events in '';
+ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
+purge master logs before now();
+End of 5.0 tests
diff --git a/mysql-test/r/rpl_server_id1.result b/mysql-test/r/rpl_server_id1.result
index 32e14b053d7..a3ab6672f69 100644
--- a/mysql-test/r/rpl_server_id1.result
+++ b/mysql-test/r/rpl_server_id1.result
@@ -10,7 +10,7 @@ stop slave;
change master to master_port=SLAVE_PORT;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
- 127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 4 None 0 No NULL
+ 127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 98 None 0 No NULL
start slave;
insert into t1 values (1);
show status like "slave_running";
diff --git a/mysql-test/r/rpl_server_id2.result b/mysql-test/r/rpl_server_id2.result
index 82ab1ff85a7..b196646aecc 100644
--- a/mysql-test/r/rpl_server_id2.result
+++ b/mysql-test/r/rpl_server_id2.result
@@ -10,7 +10,7 @@ stop slave;
change master to master_port=SLAVE_PORT;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
- 127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 4 None 0 No NULL
+ 127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 98 None 0 No NULL
start slave;
insert into t1 values (1);
select * from t1;
diff --git a/mysql-test/r/rpl_session_var.result b/mysql-test/r/rpl_session_var.result
new file mode 100644
index 00000000000..787899932d6
--- /dev/null
+++ b/mysql-test/r/rpl_session_var.result
@@ -0,0 +1,53 @@
+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;
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1(a varchar(100),b int);
+set @@session.sql_mode=pipes_as_concat;
+insert into t1 values('My'||'SQL', 1);
+set @@session.sql_mode=default;
+insert into t1 values('1'||'2', 2);
+select * from t1 where b<3 order by a;
+a b
+1 2
+MySQL 1
+select * from t1 where b<3 order by a;
+a b
+1 2
+MySQL 1
+set @@session.sql_mode=ignore_space;
+insert into t1 values(password ('MySQL'), 3);
+set @@session.sql_mode=ansi_quotes;
+create table "t2" ("a" int);
+drop table t1, t2;
+set @@session.sql_mode=default;
+create table t1(a int auto_increment primary key);
+create table t2(b int, a int);
+set @@session.sql_auto_is_null=1;
+insert into t1 values(null);
+insert into t2 select 1,a from t1 where a is null;
+set @@session.sql_auto_is_null=0;
+insert into t1 values(null);
+insert into t2 select 2,a from t1 where a is null;
+select * from t2 order by b;
+b a
+1 1
+select * from t2 order by b;
+b a
+1 1
+drop table t1,t2;
+CREATE TABLE t1 (
+`id` int(11) NOT NULL auto_increment,
+`data` varchar(100),
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+INSERT INTO t1(data) VALUES(SESSION_USER());
+SELECT * FROM t1;
+id data
+1
+drop table t1;
diff --git a/mysql-test/r/rpl_skip_error.result b/mysql-test/r/rpl_skip_error.result
index e52426c381c..22ba357ef49 100644
--- a/mysql-test/r/rpl_skip_error.result
+++ b/mysql-test/r/rpl_skip_error.result
@@ -13,3 +13,23 @@ n
1
2
3
+drop table t1;
+create table t1(a int primary key);
+insert into t1 values (1),(2);
+delete from t1 where @@server_id=1;
+set sql_mode=strict_trans_tables;
+select @@server_id;
+@@server_id
+1
+insert into t1 values (1),(2),(3);
+select @@server_id;
+@@server_id
+2
+select * from t1;
+a
+1
+2
+show slave status;
+Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
+# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 843 # # master-bin.000001 Yes Yes 0 0 843 # None 0 No #
+drop table t1;
diff --git a/mysql-test/r/rpl_slave_status.result b/mysql-test/r/rpl_slave_status.result
index 2146132aeb0..9a4ec4131b0 100644
--- a/mysql-test/r/rpl_slave_status.result
+++ b/mysql-test/r/rpl_slave_status.result
@@ -52,3 +52,4 @@ Master_SSL_Cert
Master_SSL_Cipher
Master_SSL_Key
Seconds_Behind_Master NULL
+drop table t1;
diff --git a/mysql-test/r/rpl_sp.result b/mysql-test/r/rpl_sp.result
new file mode 100644
index 00000000000..0fe1b4b908e
--- /dev/null
+++ b/mysql-test/r/rpl_sp.result
@@ -0,0 +1,534 @@
+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;
+drop database if exists mysqltest1;
+create database mysqltest1;
+use mysqltest1;
+create table t1 (a varchar(100));
+use mysqltest1;
+create procedure foo()
+begin
+declare b int;
+set b = 8;
+insert into t1 values (b);
+insert into t1 values (unix_timestamp());
+end|
+select * from mysql.proc where name='foo' and db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin
+declare b int;
+set b = 8;
+insert into t1 values (b);
+insert into t1 values (unix_timestamp());
+end root@localhost # #
+select * from mysql.proc where name='foo' and db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+mysqltest1 foo PROCEDURE foo SQL CONTAINS_SQL NO DEFINER begin
+declare b int;
+set b = 8;
+insert into t1 values (b);
+insert into t1 values (unix_timestamp());
+end root@localhost # #
+set timestamp=1000000000;
+call foo();
+select * from t1;
+a
+8
+1000000000
+select * from t1;
+a
+8
+1000000000
+delete from t1;
+create procedure foo2()
+select * from mysqltest1.t1;
+call foo2();
+a
+alter procedure foo2 contains sql;
+drop table t1;
+create table t1 (a int);
+create table t2 like t1;
+create procedure foo3()
+deterministic
+insert into t1 values (15);
+grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1;
+grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1;
+grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1;
+SELECT 1;
+1
+1
+create procedure foo4()
+deterministic
+begin
+insert into t2 values(3);
+insert into t1 values (5);
+end|
+call foo4();
+Got one of the listed errors
+call foo3();
+show warnings;
+Level Code Message
+call foo4();
+Got one of the listed errors
+alter procedure foo4 sql security invoker;
+call foo4();
+show warnings;
+Level Code Message
+select * from t1;
+a
+15
+5
+select * from t2;
+a
+3
+3
+3
+select * from t1;
+a
+15
+5
+select * from t2;
+a
+3
+3
+3
+delete from t2;
+alter table t2 add unique (a);
+drop procedure foo4;
+create procedure foo4()
+deterministic
+begin
+insert into t2 values(20),(20);
+end|
+call foo4();
+ERROR 23000: Duplicate entry '20' for key 1
+show warnings;
+Level Code Message
+Error 1062 Duplicate entry '20' for key 1
+select * from t2;
+a
+20
+select * from t2;
+a
+20
+select * from mysql.proc where name="foo4" and db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+mysqltest1 foo4 PROCEDURE foo4 SQL CONTAINS_SQL YES DEFINER begin
+insert into t2 values(20),(20);
+end root@localhost # #
+drop procedure foo4;
+select * from mysql.proc where name="foo4" and db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+select * from mysql.proc where name="foo4" and db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+drop procedure foo;
+drop procedure foo2;
+drop procedure foo3;
+create function fn1(x int)
+returns int
+begin
+insert into t1 values (x);
+return x+2;
+end|
+ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
+create function fn1(x int)
+returns int
+deterministic
+begin
+insert into t1 values (x);
+return x+2;
+end|
+delete t1,t2 from t1,t2;
+select fn1(20);
+fn1(20)
+22
+insert into t2 values(fn1(21));
+select * from t1;
+a
+21
+20
+select * from t2;
+a
+23
+select * from t1;
+a
+21
+20
+select * from t2;
+a
+23
+drop function fn1;
+create function fn1()
+returns int
+no sql
+begin
+return unix_timestamp();
+end|
+alter function fn1 contains sql;
+ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
+delete from t1;
+set timestamp=1000000000;
+insert into t1 values(fn1());
+create function fn2()
+returns int
+no sql
+begin
+return unix_timestamp();
+end|
+ERROR HY000: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
+set global log_bin_trust_routine_creators=1;
+Warnings:
+Warning 1287 'log_bin_trust_routine_creators' is deprecated; use 'log_bin_trust_function_creators' instead
+set global log_bin_trust_function_creators=0;
+set global log_bin_trust_function_creators=1;
+set global log_bin_trust_function_creators=1;
+create function fn2()
+returns int
+no sql
+begin
+return unix_timestamp();
+end|
+create function fn3()
+returns int
+not deterministic
+reads sql data
+begin
+return 0;
+end|
+select fn3();
+fn3()
+0
+select * from mysql.proc where db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin
+return unix_timestamp();
+end root@localhost # #
+mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin
+return unix_timestamp();
+end zedjzlcsjhd@localhost # #
+mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin
+return 0;
+end root@localhost # #
+select * from t1;
+a
+1000000000
+use mysqltest1;
+select * from t1;
+a
+1000000000
+select * from mysql.proc where db='mysqltest1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+mysqltest1 fn1 FUNCTION fn1 SQL NO_SQL NO DEFINER int(11) begin
+return unix_timestamp();
+end root@localhost # #
+mysqltest1 fn2 FUNCTION fn2 SQL NO_SQL NO DEFINER int(11) begin
+return unix_timestamp();
+end zedjzlcsjhd@localhost # #
+mysqltest1 fn3 FUNCTION fn3 SQL READS_SQL_DATA NO DEFINER int(11) begin
+return 0;
+end root@localhost # #
+delete from t2;
+alter table t2 add unique (a);
+drop function fn1;
+create function fn1(x int)
+returns int
+begin
+insert into t2 values(x),(x);
+return 10;
+end|
+do fn1(100);
+Warnings:
+Error 1062 Duplicate entry '100' for key 1
+select fn1(20);
+ERROR 23000: Duplicate entry '20' for key 1
+select * from t2;
+a
+20
+100
+select * from t2;
+a
+20
+100
+create trigger trg before insert on t1 for each row set new.a= 10;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+delete from t1;
+create trigger trg before insert on t1 for each row set new.a= 10;
+insert into t1 values (1);
+select * from t1;
+a
+10
+select * from t1;
+a
+10
+delete from t1;
+drop trigger trg;
+insert into t1 values (1);
+select * from t1;
+a
+1
+select * from t1;
+a
+1
+create procedure foo()
+not deterministic
+reads sql data
+select * from t1;
+call foo();
+a
+1
+drop procedure foo;
+drop function fn1;
+drop database mysqltest1;
+drop user "zedjzlcsjhd"@127.0.0.1;
+use test;
+use test;
+drop function if exists f1;
+create function f1() returns int reads sql data
+begin
+declare var integer;
+declare c cursor for select a from v1;
+open c;
+fetch c into var;
+close c;
+return var;
+end|
+create view v1 as select 1 as a;
+create table t1 (a int);
+insert into t1 (a) values (f1());
+select * from t1;
+a
+1
+drop view v1;
+drop function f1;
+select * from t1;
+a
+1
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(col VARCHAR(10));
+CREATE PROCEDURE p1(arg VARCHAR(10))
+INSERT INTO t1 VALUES(arg);
+CALL p1('test');
+SELECT * FROM t1;
+col
+test
+SELECT * FROM t1;
+col
+test
+DROP PROCEDURE p1;
+
+---> Test for BUG#20438
+
+---> Preparing environment...
+---> connection: master
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+
+---> Synchronizing slave with master...
+
+---> connection: master
+
+---> Creating procedure...
+/*!50003 CREATE PROCEDURE p1() SET @a = 1 */;
+/*!50003 CREATE FUNCTION f1() RETURNS INT RETURN 0 */;
+
+---> Checking on master...
+SHOW CREATE PROCEDURE p1;
+Procedure sql_mode Create Procedure
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
+SET @a = 1
+SHOW CREATE FUNCTION f1;
+Function sql_mode Create Function
+f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
+RETURN 0
+
+---> Synchronizing slave with master...
+---> connection: master
+
+---> Checking on slave...
+SHOW CREATE PROCEDURE p1;
+Procedure sql_mode Create Procedure
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
+SET @a = 1
+SHOW CREATE FUNCTION f1;
+Function sql_mode Create Function
+f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
+RETURN 0
+
+---> connection: master
+
+---> Cleaning up...
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+drop table t1;
+drop database if exists mysqltest;
+drop database if exists mysqltest2;
+create database mysqltest;
+create database mysqltest2;
+use mysqltest2;
+create table t ( t integer );
+create procedure mysqltest.test() begin end;
+insert into t values ( 1 );
+create procedure `\\`.test() begin end;
+ERROR 42000: Incorrect database name '\\'
+create function f1 () returns int
+begin
+insert into t values (1);
+return 0;
+end|
+use mysqltest;
+set @a:= mysqltest2.f1();
+show binlog events in 'master-bin.000001' from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query 1 # drop database if exists mysqltest1
+master-bin.000001 # Query 1 # create database mysqltest1
+master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a varchar(100))
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo()
+begin
+declare b int;
+set b = 8;
+insert into t1 values (b);
+insert into t1 values (unix_timestamp());
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values ( NAME_CONST('b',8))
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (unix_timestamp())
+master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo2()
+select * from mysqltest1.t1
+master-bin.000001 # Query 1 # use `mysqltest1`; alter procedure foo2 contains sql
+master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
+master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int)
+master-bin.000001 # Query 1 # use `mysqltest1`; create table t2 like t1
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo3()
+deterministic
+insert into t1 values (15)
+master-bin.000001 # Query 1 # use `mysqltest1`; grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1
+master-bin.000001 # Query 1 # use `mysqltest1`; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1
+master-bin.000001 # Query 1 # use `mysqltest1`; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` procedure foo4()
+deterministic
+begin
+insert into t2 values(3);
+insert into t1 values (5);
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (15)
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
+master-bin.000001 # Query 1 # use `mysqltest1`; alter procedure foo4 sql security invoker
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (5)
+master-bin.000001 # Query 1 # use `mysqltest1`; delete from t2
+master-bin.000001 # Query 1 # use `mysqltest1`; alter table t2 add unique (a)
+master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo4
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo4()
+deterministic
+begin
+insert into t2 values(20),(20);
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(20),(20)
+master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo4
+master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo
+master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo2
+master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo3
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1(x int)
+returns int
+deterministic
+begin
+insert into t1 values (x);
+return x+2;
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; delete t1,t2 from t1,t2
+master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(20)
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(fn1(21))
+master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1()
+returns int
+no sql
+begin
+return unix_timestamp();
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(fn1())
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` function fn2()
+returns int
+no sql
+begin
+return unix_timestamp();
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn3()
+returns int
+not deterministic
+reads sql data
+begin
+return 0;
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; delete from t2
+master-bin.000001 # Query 1 # use `mysqltest1`; alter table t2 add unique (a)
+master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1(x int)
+returns int
+begin
+insert into t2 values(x),(x);
+return 10;
+end
+master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(100)
+master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(20)
+master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger trg before insert on t1 for each row set new.a= 10
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (1)
+master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
+master-bin.000001 # Query 1 # use `mysqltest1`; drop trigger trg
+master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (1)
+master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo()
+not deterministic
+reads sql data
+select * from t1
+master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo
+master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
+master-bin.000001 # Query 1 # drop database mysqltest1
+master-bin.000001 # Query 1 # drop user "zedjzlcsjhd"@127.0.0.1
+master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` function f1() returns int reads sql data
+begin
+declare var integer;
+declare c cursor for select a from v1;
+open c;
+fetch c into var;
+close c;
+return var;
+end
+master-bin.000001 # Query 1 # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 as a
+master-bin.000001 # Query 1 # use `test`; create table t1 (a int)
+master-bin.000001 # Query 1 # use `test`; insert into t1 (a) values (f1())
+master-bin.000001 # Query 1 # use `test`; drop view v1
+master-bin.000001 # Query 1 # use `test`; drop function f1
+master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS t1
+master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(col VARCHAR(10))
+master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE p1(arg VARCHAR(10))
+INSERT INTO t1 VALUES(arg)
+master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'))
+master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1
+master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE p1() SET @a = 1
+master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION f1() RETURNS INT RETURN 0
+master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1
+master-bin.000001 # Query 1 # use `test`; DROP FUNCTION f1
+master-bin.000001 # Query 1 # use `test`; drop table t1
+master-bin.000001 # Query 1 # drop database if exists mysqltest
+master-bin.000001 # Query 1 # drop database if exists mysqltest2
+master-bin.000001 # Query 1 # create database mysqltest
+master-bin.000001 # Query 1 # create database mysqltest2
+master-bin.000001 # Query 1 # use `mysqltest2`; create table t ( t integer )
+master-bin.000001 # Query 1 # use `mysqltest2`; CREATE DEFINER=`root`@`localhost` procedure mysqltest.test() begin end
+master-bin.000001 # Query 1 # use `mysqltest2`; insert into t values ( 1 )
+master-bin.000001 # Query 1 # use `mysqltest2`; CREATE DEFINER=`root`@`localhost` function f1 () returns int
+begin
+insert into t values (1);
+return 0;
+end
+master-bin.000001 # Query 1 # use `mysqltest`; SELECT `mysqltest2`.`f1`()
+set global log_bin_trust_function_creators=0;
+set global log_bin_trust_function_creators=0;
+drop database mysqltest;
+drop database mysqltest2;
diff --git a/mysql-test/r/rpl_sp_effects.result b/mysql-test/r/rpl_sp_effects.result
new file mode 100644
index 00000000000..bf8128d9385
--- /dev/null
+++ b/mysql-test/r/rpl_sp_effects.result
@@ -0,0 +1,215 @@
+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;
+drop procedure if exists p1;
+drop procedure if exists p2;
+drop function if exists f1;
+drop table if exists t1,t2;
+drop view if exists v1;
+create table t1 (a int);
+create procedure p1()
+begin
+declare spv int default 0;
+while spv < 5 do
+insert into t1 values(spv+1);
+set spv=spv+1;
+end while;
+end//
+call p1();
+select * from t1;
+a
+1
+2
+3
+4
+5
+delete from t1;
+create procedure p2()
+begin
+declare a int default 4;
+create table t2 as select a;
+end//
+call p2();
+select * from t2;
+a
+4
+select * from t2;
+a
+4
+drop procedure p1;
+drop procedure p2;
+drop table t2;
+create function f1(x int) returns int
+begin
+insert into t1 values(x);
+return x+1;
+end//
+create procedure p1(a int, b int)
+begin
+declare v int default f1(5);
+if (f1(6)) then
+select 'yes';
+end if;
+set v = f1(7);
+while f1(8) < 1 do
+select 'this cant be';
+end while;
+end//
+call p1(f1(1), f1(2));
+yes
+yes
+select * from t1;
+a
+1
+2
+5
+6
+7
+8
+create table t2(a int);
+insert into t2 values (10),(11);
+select a,f1(a) from t2;
+a f1(a)
+10 11
+11 12
+insert into t2 select f1(3);
+select 'master:',a from t1;
+master: a
+master: 1
+master: 2
+master: 5
+master: 6
+master: 7
+master: 8
+master: 10
+master: 11
+master: 3
+select 'slave:',a from t1;
+slave: a
+slave: 1
+slave: 2
+slave: 5
+slave: 6
+slave: 7
+slave: 8
+slave: 10
+slave: 11
+slave: 3
+drop procedure p1;
+delete from t1;
+delete from t2;
+delete from t1;
+insert into t2 values(1),(2);
+create view v1 as select f1(a) from t2;
+select * from v1;
+f1(a)
+2
+3
+select 'master:',a from t1;
+master: a
+master: 1
+master: 2
+select 'slave:',a from t1;
+slave: a
+slave: 1
+slave: 2
+drop view v1;
+delete from t1;
+prepare s1 from 'select f1(?)';
+set @xx=123;
+execute s1 using @xx;
+f1(?)
+124
+select 'master:',a from t1;
+master: a
+master: 123
+select 'slave:',a from t1;
+slave: a
+slave: 123
+delete from t1;
+create procedure p1(spv int)
+begin
+declare c cursor for select f1(spv) from t2;
+while (spv > 2) do
+open c;
+fetch c into spv;
+close c;
+set spv= spv - 10;
+end while;
+end//
+call p1(15);
+select 'master:',a from t1;
+master: a
+master: 15
+master: 15
+master: 6
+master: 6
+select 'slave:',a from t1;
+slave: a
+slave: 15
+slave: 15
+slave: 6
+slave: 6
+drop procedure p1;
+drop function f1;
+drop table t1,t2;
+create table t1 (a int);
+create procedure p1()
+begin
+insert into t1 values(@x);
+set @x=@x+1;
+insert into t1 values(@x);
+if (f2()) then
+insert into t1 values(1243);
+end if;
+end//
+create function f2() returns int
+begin
+insert into t1 values(@z);
+set @z=@z+1;
+insert into t1 values(@z);
+return 0;
+end//
+create function f1() returns int
+begin
+insert into t1 values(@y);
+call p1();
+return 0;
+end//
+set @x=10;
+set @y=20;
+set @z=100;
+select f1();
+f1()
+0
+set @x=30;
+call p1();
+select 'master', a from t1;
+master a
+master 20
+master 10
+master 11
+master 100
+master 101
+master 30
+master 31
+master 101
+master 102
+select 'slave', a from t1;
+slave a
+slave 20
+slave 10
+slave 11
+slave 100
+slave 101
+slave 30
+slave 31
+slave 101
+slave 102
+drop table t1;
+drop function f1;
+drop function f2;
+drop procedure p1;
diff --git a/mysql-test/r/rpl_ssl.result b/mysql-test/r/rpl_ssl.result
new file mode 100644
index 00000000000..1d3f4762693
--- /dev/null
+++ b/mysql-test/r/rpl_ssl.result
@@ -0,0 +1,95 @@
+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;
+grant replication slave on *.* to replssl@localhost require ssl;
+create table t1 (t int auto_increment, KEY(t));
+stop slave;
+change master to
+master_user='replssl',
+master_password='',
+master_ssl=1,
+master_ssl_ca ='MYSQL_TEST_DIR/std_data/cacert.pem',
+master_ssl_cert='MYSQL_TEST_DIR/std_data/client-cert.pem',
+master_ssl_key='MYSQL_TEST_DIR/std_data/client-key.pem';
+start slave;
+insert into t1 values(1);
+select * from t1;
+t
+1
+show slave status;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User replssl
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 420
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running Yes
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 420
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed Yes
+Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
+Master_SSL_CA_Path
+Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
+Master_SSL_Cipher
+Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
+Seconds_Behind_Master #
+STOP SLAVE;
+select * from t1;
+t
+1
+insert into t1 values (NULL);
+show slave status;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User replssl
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos #
+Relay_Log_File #
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running Yes
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos #
+Relay_Log_Space #
+Until_Condition None
+Until_Log_File
+Until_Log_Pos 0
+Master_SSL_Allowed Yes
+Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
+Master_SSL_CA_Path
+Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
+Master_SSL_Cipher
+Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
+Seconds_Behind_Master #
+End of 5.0 tests
diff --git a/mysql-test/r/rpl_temporary.result b/mysql-test/r/rpl_temporary.result
index 943da0ccb76..15c069ab68d 100644
--- a/mysql-test/r/rpl_temporary.result
+++ b/mysql-test/r/rpl_temporary.result
@@ -7,12 +7,12 @@ start slave;
reset master;
SET @save_select_limit=@@session.sql_select_limit;
SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100;
-ERROR HY000: Access denied; you need the SUPER privilege for this operation
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
SELECT @@session.sql_select_limit = @save_select_limit;
@@session.sql_select_limit = @save_select_limit
1
SET @@session.sql_select_limit=10, @@session.sql_log_bin=0;
-ERROR HY000: Access denied; you need the SUPER privilege for this operation
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
SELECT @@session.sql_select_limit = @save_select_limit;
@@session.sql_select_limit = @save_select_limit
1
@@ -37,20 +37,20 @@ f
5
7
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; drop table if exists t1,t2
-master-bin.000001 140 Query 1 140 use `test`; create table t1(f int)
-master-bin.000001 197 Query 1 197 use `test`; create table t2(f int)
-master-bin.000001 254 Query 1 254 use `test`; insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)
-master-bin.000001 351 Query 1 351 use `test`; create temporary table t3(f int)
-master-bin.000001 418 Query 1 418 use `test`; insert into t3 select * from t1 where f<6
-master-bin.000001 494 Query 1 494 use `test`; create temporary table t3(f int)
-master-bin.000001 561 Query 1 561 use `test`; insert into t2 select count(*) from t3
-master-bin.000001 634 Query 1 634 use `test`; insert into t3 select * from t1 where f>=4
-master-bin.000001 711 Query 1 711 use `test`; drop temporary table t3
-master-bin.000001 769 Query 1 769 use `test`; insert into t2 select count(*) from t3
-master-bin.000001 842 Query 1 842 use `test`; drop temporary table t3
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
+master-bin.000001 # Query 1 # use `test`; drop table if exists t1,t2
+master-bin.000001 # Query 1 # use `test`; create table t1(f int)
+master-bin.000001 # Query 1 # use `test`; create table t2(f int)
+master-bin.000001 # Query 1 # use `test`; insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)
+master-bin.000001 # Query 1 # use `test`; create temporary table t3(f int)
+master-bin.000001 # Query 1 # use `test`; insert into t3 select * from t1 where f<6
+master-bin.000001 # Query 1 # use `test`; create temporary table t3(f int)
+master-bin.000001 # Query 1 # use `test`; insert into t2 select count(*) from t3
+master-bin.000001 # Query 1 # use `test`; insert into t3 select * from t1 where f>=4
+master-bin.000001 # Query 1 # use `test`; drop temporary table t3
+master-bin.000001 # Query 1 # use `test`; insert into t2 select count(*) from t3
+master-bin.000001 # Query 1 # use `test`; drop temporary table t3
drop table t1, t2;
use test;
SET TIMESTAMP=1040323920;
@@ -89,6 +89,29 @@ f
7
drop table t1,t2;
create temporary table t3 (f int);
+create temporary table t4 (f int);
+create table t5 (f int);
+drop table if exists t999;
+create temporary table t999(
+id int,
+user char(255),
+host char(255),
+db char(255),
+Command char(255),
+time int,
+State char(255),
+info char(255)
+);
+LOAD DATA INFILE "./tmp/bl_dump_thread_id" into table t999;
+drop table t999;
+insert into t4 values (1);
+kill `select id from information_schema.processlist where command='Binlog Dump'`;
+insert into t5 select * from t4;
+select * from t5 /* must be 1 after reconnection */;
+f
+1
+drop temporary table t4;
+drop table t5;
set @@session.pseudo_thread_id=100;
create temporary table t101 (id int);
create temporary table t102 (id int);
diff --git a/mysql-test/r/rpl_timezone.result b/mysql-test/r/rpl_timezone.result
index c7be3324533..7a18a26afd3 100644
--- a/mysql-test/r/rpl_timezone.result
+++ b/mysql-test/r/rpl_timezone.result
@@ -4,21 +4,32 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
+set @my_time_zone= @@global.time_zone;
+set timestamp=100000000;
create table t1 (t timestamp);
create table t2 (t char(32));
select @@time_zone;
@@time_zone
+Japan
+select @@time_zone;
+@@time_zone
Europe/Moscow
+insert into t1 values ('20050101000000'), ('20050611093902');
set time_zone='UTC';
insert into t1 values ('20040101000000'), ('20040611093902');
select * from t1;
t
+2004-12-31 21:00:00
+2005-06-11 05:39:02
2004-01-01 00:00:00
2004-06-11 09:39:02
+set time_zone='UTC';
select * from t1;
t
-2004-01-01 03:00:00
-2004-06-11 13:39:02
+2004-12-31 21:00:00
+2005-06-11 05:39:02
+2004-01-01 00:00:00
+2004-06-11 09:39:02
delete from t1;
set time_zone='Europe/Moscow';
insert into t1 values ('20040101000000'), ('20040611093902');
@@ -26,19 +37,55 @@ select * from t1;
t
2004-01-01 00:00:00
2004-06-11 09:39:02
+set time_zone='Europe/Moscow';
+select * from t1;
+t
+2004-01-01 00:00:00
+2004-06-11 09:39:02
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+use test/*!*/;
+SET TIMESTAMP=100000000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+create table t1 (t timestamp)/*!*/;
+SET TIMESTAMP=100000000/*!*/;
+create table t2 (t char(32))/*!*/;
+SET TIMESTAMP=100000000/*!*/;
+SET @@session.time_zone='Europe/Moscow'/*!*/;
+insert into t1 values ('20050101000000'), ('20050611093902')/*!*/;
+SET TIMESTAMP=100000000/*!*/;
+SET @@session.time_zone='UTC'/*!*/;
+insert into t1 values ('20040101000000'), ('20040611093902')/*!*/;
+SET TIMESTAMP=100000000/*!*/;
+delete from t1/*!*/;
+SET TIMESTAMP=100000000/*!*/;
+SET @@session.time_zone='Europe/Moscow'/*!*/;
+insert into t1 values ('20040101000000'), ('20040611093902')/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+delete from t1;
+set time_zone='UTC';
+load data infile '../std_data_ln/rpl_timezone.dat' into table t1;
+select * from t1;
+t
+2004-01-01 00:00:00
+2004-06-11 09:39:02
+set time_zone='UTC';
select * from t1;
t
2004-01-01 00:00:00
2004-06-11 09:39:02
-show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; create table t1 (t timestamp)
-master-bin.000001 143 Query 1 143 use `test`; create table t2 (t char(32))
-master-bin.000001 206 Query 1 206 use `test`; SET ONE_SHOT TIME_ZONE='UTC'
-master-bin.000001 269 Query 1 269 use `test`; insert into t1 values ('20040101000000'), ('20040611093902')
-master-bin.000001 364 Query 1 364 use `test`; delete from t1
-master-bin.000001 413 Query 1 413 use `test`; insert into t1 values ('20040101000000'), ('20040611093902')
+set time_zone='Europe/Moscow';
+set time_zone='Europe/Moscow';
+delete from t1;
+insert into t1 values ('20040101000000'), ('20040611093902');
set time_zone='MET';
insert into t2 (select t from t1);
select * from t1;
@@ -52,10 +99,6 @@ t
delete from t2;
set timestamp=1000072000;
insert into t2 values (current_timestamp), (current_date), (current_time);
-set timestamp=1000072000;
-select current_timestamp, current_date, current_time;
-current_timestamp current_date current_time
-2001-09-10 01:46:40 2001-09-10 01:46:40
select * from t2;
t
2001-09-09 23:46:40
@@ -73,5 +116,35 @@ t
2001-09-09 03:46:40
1000000000
set global time_zone='MET';
-ERROR HY000: Binary logging and replication forbid changing of the global server time zone
+delete from t2;
+set time_zone='UTC';
+insert into t2 values(convert_tz('2004-01-01 00:00:00','MET',@@time_zone));
+insert into t2 values(convert_tz('2005-01-01 00:00:00','MET','Japan'));
+select * from t2;
+t
+2003-12-31 23:00:00
+2005-01-01 08:00:00
+select * from t2;
+t
+2003-12-31 23:00:00
+2005-01-01 08:00:00
drop table t1, t2;
+set global time_zone= @my_time_zone;
+End of 4.1 tests
+CREATE TABLE t1 (a INT, b TIMESTAMP);
+INSERT INTO t1 VALUES (1, NOW());
+SET @@session.time_zone='Japan';
+UPDATE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1;
+Warnings:
+Warning 1264 Out of range value adjusted for column 'b' at row 1
+SELECT * FROM t1 ORDER BY a;
+a b
+1 0000-00-00 00:00:00
+SET @@session.time_zone='Japan';
+SELECT * FROM t1 ORDER BY a;
+a b
+1 0000-00-00 00:00:00
+SET @@session.time_zone = default;
+DROP TABLE t1;
+SET @@session.time_zone = default;
+End of 5.0 tests
diff --git a/mysql-test/r/rpl_trigger.result b/mysql-test/r/rpl_trigger.result
new file mode 100644
index 00000000000..f8573eec75f
--- /dev/null
+++ b/mysql-test/r/rpl_trigger.result
@@ -0,0 +1,970 @@
+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;
+create table t1 (a int auto_increment, primary key (a), b int, rand_value double not null);
+create table t2 (a int auto_increment, primary key (a), b int);
+create table t3 (a int auto_increment, primary key (a), name varchar(64) not null, old_a int, old_b int, rand_value double not null);
+create trigger t1 before insert on t1 for each row
+begin
+insert into t3 values (NULL, "t1", new.a, new.b, rand());
+end|
+create trigger t2 after insert on t2 for each row
+begin
+insert into t3 values (NULL, "t2", new.a, new.b, rand());
+end|
+insert into t3 values(100,"log",0,0,0);
+SET @@RAND_SEED1=658490765, @@RAND_SEED2=635893186;
+insert into t1 values(1,1,rand()),(NULL,2,rand());
+insert into t2 (b) values(last_insert_id());
+insert into t2 values(3,0),(NULL,0);
+insert into t2 values(NULL,0),(500,0);
+select a,b, truncate(rand_value,4) from t1;
+a b truncate(rand_value,4)
+1 1 0.4320
+2 2 0.3055
+select * from t2;
+a b
+1 2
+3 0
+4 0
+5 0
+500 0
+select a,name, old_a, old_b, truncate(rand_value,4) from t3;
+a name old_a old_b truncate(rand_value,4)
+100 log 0 0 0.0000
+101 t1 1 1 0.3203
+102 t1 0 2 0.5666
+103 t2 1 2 0.9164
+104 t2 3 0 0.8826
+105 t2 4 0 0.6635
+106 t2 5 0 0.6699
+107 t2 500 0 0.3593
+
+--- On slave --
+select a,b, truncate(rand_value,4) from t1;
+a b truncate(rand_value,4)
+1 1 0.4320
+2 2 0.3055
+select * from t2;
+a b
+1 2
+3 0
+4 0
+5 0
+500 0
+select a,name, old_a, old_b, truncate(rand_value,4) from t3;
+a name old_a old_b truncate(rand_value,4)
+100 log 0 0 0.0000
+101 t1 1 1 0.3203
+102 t1 0 2 0.5666
+103 t2 1 2 0.9164
+104 t2 3 0 0.8826
+105 t2 4 0 0.6635
+106 t2 5 0 0.6699
+107 t2 500 0 0.3593
+drop table t1,t2,t3;
+select get_lock("bug12480",2);
+get_lock("bug12480",2)
+1
+create table t1 (a datetime,b datetime, c datetime);
+drop function if exists bug12480;
+create function bug12480() returns datetime
+begin
+set @a=get_lock("bug12480",2);
+return now();
+end|
+create trigger t1_first before insert on t1
+for each row begin
+set @a=get_lock("bug12480",2);
+set new.b= now();
+set new.c= bug12480();
+end
+|
+insert into t1 set a = now();
+select a=b && a=c from t1;
+a=b && a=c
+1
+SELECT routine_name, definer
+FROM information_schema.routines;
+routine_name definer
+bug12480 root@localhost
+SELECT trigger_name, definer
+FROM information_schema.triggers;
+trigger_name definer
+t1_first root@localhost
+
+--- On slave --
+SELECT routine_name, definer
+FROM information_schema.routines;
+routine_name definer
+bug12480 root@localhost
+SELECT trigger_name, definer
+FROM information_schema.triggers;
+trigger_name definer
+t1_first root@localhost
+select a=b && a=c from t1;
+a=b && a=c
+1
+test
+1
+truncate table t1;
+drop trigger t1_first;
+insert into t1 values ("2003-03-03","2003-03-03","2003-03-03"),(bug12480(),bug12480(),bug12480()),(now(),now(),now());
+select a=b && a=c from t1;
+a=b && a=c
+1
+1
+1
+drop function bug12480;
+drop table t1;
+create table t1 (i int);
+create table t2 (i int);
+create trigger tr1 before insert on t1 for each row
+begin
+insert into t2 values (1);
+end|
+create database other;
+use other;
+insert into test.t1 values (1);
+use test;
+drop table t1,t2;
+drop database other;
+test case for BUG#13227
+-------------------
+10
+-------------------
+drop table if exists t110;
+drop table if exists t210,t310;
+create table t110 (f1 int) /* 2 replicate */;
+insert into t110 values (-5);
+insert into t110 values (-4);
+insert into t110 values (-3);
+insert into t110 values (-2);
+insert into t110 values (-1);
+select * from t110;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg110 before update on t110 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t210 where f1=NEW.f1;
+INSERT INTO t310 values (r);
+end|
+create table t210 (f1 int, f2 int) /* slave local */;
+create table t310 (f3 int) /* slave local */;
+insert into t210 values (5, 5*100);
+insert into t210 values (4, 4*100);
+insert into t210 values (3, 3*100);
+insert into t210 values (2, 2*100);
+insert into t210 values (1, 1*100);
+select * from t210;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t110 SET f1=5 where f1=-5;
+SELECT * from t110 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t310 /* must be f3 5*100 */;
+f3
+500
+UPDATE t110 SET f1=5 where f1=-5;
+UPDATE t110 SET f1=4 where f1=-4;
+UPDATE t110 SET f1=3 where f1=-3;
+UPDATE t110 SET f1=2 where f1=-2;
+UPDATE t110 SET f1=1 where f1=-1;
+SELECT * from t110 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t310 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg110;
+drop table t210,t310;
+drop table t110;
+-------------------
+9
+-------------------
+drop table if exists t19;
+drop table if exists t29,t39;
+create table t19 (f1 int) /* 2 replicate */;
+insert into t19 values (-5);
+insert into t19 values (-4);
+insert into t19 values (-3);
+insert into t19 values (-2);
+insert into t19 values (-1);
+select * from t19;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg19 before update on t19 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t29 where f1=NEW.f1;
+INSERT INTO t39 values (r);
+end|
+create table t29 (f1 int, f2 int) /* slave local */;
+create table t39 (f3 int) /* slave local */;
+insert into t29 values (5, 5*100);
+insert into t29 values (4, 4*100);
+insert into t29 values (3, 3*100);
+insert into t29 values (2, 2*100);
+insert into t29 values (1, 1*100);
+select * from t29;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t19 SET f1=5 where f1=-5;
+SELECT * from t19 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t39 /* must be f3 5*100 */;
+f3
+500
+UPDATE t19 SET f1=5 where f1=-5;
+UPDATE t19 SET f1=4 where f1=-4;
+UPDATE t19 SET f1=3 where f1=-3;
+UPDATE t19 SET f1=2 where f1=-2;
+UPDATE t19 SET f1=1 where f1=-1;
+SELECT * from t19 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t39 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg19;
+drop table t29,t39;
+drop table t19;
+-------------------
+8
+-------------------
+drop table if exists t18;
+drop table if exists t28,t38;
+create table t18 (f1 int) /* 2 replicate */;
+insert into t18 values (-5);
+insert into t18 values (-4);
+insert into t18 values (-3);
+insert into t18 values (-2);
+insert into t18 values (-1);
+select * from t18;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg18 before update on t18 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t28 where f1=NEW.f1;
+INSERT INTO t38 values (r);
+end|
+create table t28 (f1 int, f2 int) /* slave local */;
+create table t38 (f3 int) /* slave local */;
+insert into t28 values (5, 5*100);
+insert into t28 values (4, 4*100);
+insert into t28 values (3, 3*100);
+insert into t28 values (2, 2*100);
+insert into t28 values (1, 1*100);
+select * from t28;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t18 SET f1=5 where f1=-5;
+SELECT * from t18 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t38 /* must be f3 5*100 */;
+f3
+500
+UPDATE t18 SET f1=5 where f1=-5;
+UPDATE t18 SET f1=4 where f1=-4;
+UPDATE t18 SET f1=3 where f1=-3;
+UPDATE t18 SET f1=2 where f1=-2;
+UPDATE t18 SET f1=1 where f1=-1;
+SELECT * from t18 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t38 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg18;
+drop table t28,t38;
+drop table t18;
+-------------------
+7
+-------------------
+drop table if exists t17;
+drop table if exists t27,t37;
+create table t17 (f1 int) /* 2 replicate */;
+insert into t17 values (-5);
+insert into t17 values (-4);
+insert into t17 values (-3);
+insert into t17 values (-2);
+insert into t17 values (-1);
+select * from t17;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg17 before update on t17 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t27 where f1=NEW.f1;
+INSERT INTO t37 values (r);
+end|
+create table t27 (f1 int, f2 int) /* slave local */;
+create table t37 (f3 int) /* slave local */;
+insert into t27 values (5, 5*100);
+insert into t27 values (4, 4*100);
+insert into t27 values (3, 3*100);
+insert into t27 values (2, 2*100);
+insert into t27 values (1, 1*100);
+select * from t27;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t17 SET f1=5 where f1=-5;
+SELECT * from t17 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t37 /* must be f3 5*100 */;
+f3
+500
+UPDATE t17 SET f1=5 where f1=-5;
+UPDATE t17 SET f1=4 where f1=-4;
+UPDATE t17 SET f1=3 where f1=-3;
+UPDATE t17 SET f1=2 where f1=-2;
+UPDATE t17 SET f1=1 where f1=-1;
+SELECT * from t17 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t37 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg17;
+drop table t27,t37;
+drop table t17;
+-------------------
+6
+-------------------
+drop table if exists t16;
+drop table if exists t26,t36;
+create table t16 (f1 int) /* 2 replicate */;
+insert into t16 values (-5);
+insert into t16 values (-4);
+insert into t16 values (-3);
+insert into t16 values (-2);
+insert into t16 values (-1);
+select * from t16;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg16 before update on t16 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t26 where f1=NEW.f1;
+INSERT INTO t36 values (r);
+end|
+create table t26 (f1 int, f2 int) /* slave local */;
+create table t36 (f3 int) /* slave local */;
+insert into t26 values (5, 5*100);
+insert into t26 values (4, 4*100);
+insert into t26 values (3, 3*100);
+insert into t26 values (2, 2*100);
+insert into t26 values (1, 1*100);
+select * from t26;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t16 SET f1=5 where f1=-5;
+SELECT * from t16 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t36 /* must be f3 5*100 */;
+f3
+500
+UPDATE t16 SET f1=5 where f1=-5;
+UPDATE t16 SET f1=4 where f1=-4;
+UPDATE t16 SET f1=3 where f1=-3;
+UPDATE t16 SET f1=2 where f1=-2;
+UPDATE t16 SET f1=1 where f1=-1;
+SELECT * from t16 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t36 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg16;
+drop table t26,t36;
+drop table t16;
+-------------------
+5
+-------------------
+drop table if exists t15;
+drop table if exists t25,t35;
+create table t15 (f1 int) /* 2 replicate */;
+insert into t15 values (-5);
+insert into t15 values (-4);
+insert into t15 values (-3);
+insert into t15 values (-2);
+insert into t15 values (-1);
+select * from t15;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg15 before update on t15 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t25 where f1=NEW.f1;
+INSERT INTO t35 values (r);
+end|
+create table t25 (f1 int, f2 int) /* slave local */;
+create table t35 (f3 int) /* slave local */;
+insert into t25 values (5, 5*100);
+insert into t25 values (4, 4*100);
+insert into t25 values (3, 3*100);
+insert into t25 values (2, 2*100);
+insert into t25 values (1, 1*100);
+select * from t25;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t15 SET f1=5 where f1=-5;
+SELECT * from t15 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t35 /* must be f3 5*100 */;
+f3
+500
+UPDATE t15 SET f1=5 where f1=-5;
+UPDATE t15 SET f1=4 where f1=-4;
+UPDATE t15 SET f1=3 where f1=-3;
+UPDATE t15 SET f1=2 where f1=-2;
+UPDATE t15 SET f1=1 where f1=-1;
+SELECT * from t15 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t35 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg15;
+drop table t25,t35;
+drop table t15;
+-------------------
+4
+-------------------
+drop table if exists t14;
+drop table if exists t24,t34;
+create table t14 (f1 int) /* 2 replicate */;
+insert into t14 values (-5);
+insert into t14 values (-4);
+insert into t14 values (-3);
+insert into t14 values (-2);
+insert into t14 values (-1);
+select * from t14;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg14 before update on t14 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t24 where f1=NEW.f1;
+INSERT INTO t34 values (r);
+end|
+create table t24 (f1 int, f2 int) /* slave local */;
+create table t34 (f3 int) /* slave local */;
+insert into t24 values (5, 5*100);
+insert into t24 values (4, 4*100);
+insert into t24 values (3, 3*100);
+insert into t24 values (2, 2*100);
+insert into t24 values (1, 1*100);
+select * from t24;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t14 SET f1=5 where f1=-5;
+SELECT * from t14 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t34 /* must be f3 5*100 */;
+f3
+500
+UPDATE t14 SET f1=5 where f1=-5;
+UPDATE t14 SET f1=4 where f1=-4;
+UPDATE t14 SET f1=3 where f1=-3;
+UPDATE t14 SET f1=2 where f1=-2;
+UPDATE t14 SET f1=1 where f1=-1;
+SELECT * from t14 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t34 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg14;
+drop table t24,t34;
+drop table t14;
+-------------------
+3
+-------------------
+drop table if exists t13;
+drop table if exists t23,t33;
+create table t13 (f1 int) /* 2 replicate */;
+insert into t13 values (-5);
+insert into t13 values (-4);
+insert into t13 values (-3);
+insert into t13 values (-2);
+insert into t13 values (-1);
+select * from t13;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg13 before update on t13 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t23 where f1=NEW.f1;
+INSERT INTO t33 values (r);
+end|
+create table t23 (f1 int, f2 int) /* slave local */;
+create table t33 (f3 int) /* slave local */;
+insert into t23 values (5, 5*100);
+insert into t23 values (4, 4*100);
+insert into t23 values (3, 3*100);
+insert into t23 values (2, 2*100);
+insert into t23 values (1, 1*100);
+select * from t23;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t13 SET f1=5 where f1=-5;
+SELECT * from t13 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t33 /* must be f3 5*100 */;
+f3
+500
+UPDATE t13 SET f1=5 where f1=-5;
+UPDATE t13 SET f1=4 where f1=-4;
+UPDATE t13 SET f1=3 where f1=-3;
+UPDATE t13 SET f1=2 where f1=-2;
+UPDATE t13 SET f1=1 where f1=-1;
+SELECT * from t13 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t33 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg13;
+drop table t23,t33;
+drop table t13;
+-------------------
+2
+-------------------
+drop table if exists t12;
+drop table if exists t22,t32;
+create table t12 (f1 int) /* 2 replicate */;
+insert into t12 values (-5);
+insert into t12 values (-4);
+insert into t12 values (-3);
+insert into t12 values (-2);
+insert into t12 values (-1);
+select * from t12;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg12 before update on t12 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t22 where f1=NEW.f1;
+INSERT INTO t32 values (r);
+end|
+create table t22 (f1 int, f2 int) /* slave local */;
+create table t32 (f3 int) /* slave local */;
+insert into t22 values (5, 5*100);
+insert into t22 values (4, 4*100);
+insert into t22 values (3, 3*100);
+insert into t22 values (2, 2*100);
+insert into t22 values (1, 1*100);
+select * from t22;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t12 SET f1=5 where f1=-5;
+SELECT * from t12 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t32 /* must be f3 5*100 */;
+f3
+500
+UPDATE t12 SET f1=5 where f1=-5;
+UPDATE t12 SET f1=4 where f1=-4;
+UPDATE t12 SET f1=3 where f1=-3;
+UPDATE t12 SET f1=2 where f1=-2;
+UPDATE t12 SET f1=1 where f1=-1;
+SELECT * from t12 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t32 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg12;
+drop table t22,t32;
+drop table t12;
+-------------------
+1
+-------------------
+drop table if exists t11;
+drop table if exists t21,t31;
+create table t11 (f1 int) /* 2 replicate */;
+insert into t11 values (-5);
+insert into t11 values (-4);
+insert into t11 values (-3);
+insert into t11 values (-2);
+insert into t11 values (-1);
+select * from t11;
+f1
+-5
+-4
+-3
+-2
+-1
+create trigger trg11 before update on t11 /* slave local */
+for each row
+begin
+DECLARE r integer;
+SELECT f2 INTO r FROM t21 where f1=NEW.f1;
+INSERT INTO t31 values (r);
+end|
+create table t21 (f1 int, f2 int) /* slave local */;
+create table t31 (f3 int) /* slave local */;
+insert into t21 values (5, 5*100);
+insert into t21 values (4, 4*100);
+insert into t21 values (3, 3*100);
+insert into t21 values (2, 2*100);
+insert into t21 values (1, 1*100);
+select * from t21;
+f1 f2
+5 500
+4 400
+3 300
+2 200
+1 100
+UPDATE t11 SET f1=5 where f1=-5;
+SELECT * from t11 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
+f1
+5
+-4
+-3
+-2
+-1
+SELECT * from t31 /* must be f3 5*100 */;
+f3
+500
+UPDATE t11 SET f1=5 where f1=-5;
+UPDATE t11 SET f1=4 where f1=-4;
+UPDATE t11 SET f1=3 where f1=-3;
+UPDATE t11 SET f1=2 where f1=-2;
+UPDATE t11 SET f1=1 where f1=-1;
+SELECT * from t11 /* must be f1 5 ... 1 */;
+f1
+5
+4
+3
+2
+1
+SELECT * from t31 /* must be f3 5 * 100 ... 100 */;
+f3
+500
+400
+300
+200
+100
+drop trigger trg11;
+drop table t21,t31;
+drop table t11;
+STOP SLAVE;
+FLUSH LOGS;
+RESET SLAVE;
+START SLAVE;
+SELECT MASTER_POS_WAIT('master-bin.000001', 513) >= 0;
+MASTER_POS_WAIT('master-bin.000001', 513) >= 0
+1
+SHOW TABLES LIKE 't_';
+Tables_in_test (t_)
+t1
+t2
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 INSERT INTO t2 VALUES(CURRENT_USER()) AFTER NULL
+SELECT * FROM t1;
+c
+1
+SELECT * FROM t2;
+s
+@
+INSERT INTO t1 VALUES(2);
+SELECT * FROM t1;
+c
+1
+2
+SELECT * FROM t2;
+s
+@
+root@localhost
+DROP TRIGGER trg1;
+Warnings:
+Warning 1454 No definer attribute for trigger 'test'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
+DROP TABLE t1;
+DROP TABLE t2;
+STOP SLAVE;
+RESET SLAVE;
+SHOW TABLES LIKE 't_';
+Tables_in_test (t_)
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+RESET MASTER;
+START SLAVE;
+
+---> Test for BUG#20438
+
+---> Preparing environment...
+---> connection: master
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+
+---> Synchronizing slave with master...
+
+---> connection: master
+
+---> Creating objects...
+CREATE TABLE t1(c INT);
+CREATE TABLE t2(c INT);
+/*!50003 CREATE TRIGGER t1_bi BEFORE INSERT ON t1
+FOR EACH ROW
+INSERT INTO t2 VALUES(NEW.c * 10) */;
+
+---> Inserting value...
+INSERT INTO t1 VALUES(1);
+
+---> Checking on master...
+SELECT * FROM t1;
+c
+1
+SELECT * FROM t2;
+c
+10
+
+---> Synchronizing slave with master...
+---> connection: master
+
+---> Checking on slave...
+SELECT * FROM t1;
+c
+1
+SELECT * FROM t2;
+c
+10
+
+---> connection: master
+
+---> Cleaning up...
+DROP TABLE t1;
+DROP TABLE t2;
+drop table if exists t1;
+create table t1(a int, b varchar(50));
+drop trigger not_a_trigger;
+ERROR HY000: Trigger does not exist
+drop trigger if exists not_a_trigger;
+Warnings:
+Note 1360 Trigger does not exist
+create trigger t1_bi before insert on t1
+for each row set NEW.b := "In trigger t1_bi";
+insert into t1 values (1, "a");
+drop trigger if exists t1_bi;
+insert into t1 values (2, "b");
+drop trigger if exists t1_bi;
+Warnings:
+Note 1360 Trigger does not exist
+insert into t1 values (3, "c");
+select * from t1;
+a b
+1 In trigger t1_bi
+2 b
+3 c
+select * from t1;
+a b
+1 In trigger t1_bi
+2 b
+3 c
+drop table t1;
diff --git a/mysql-test/r/rpl_trunc_binlog.result b/mysql-test/r/rpl_trunc_binlog.result
deleted file mode 100644
index 085a2937584..00000000000
--- a/mysql-test/r/rpl_trunc_binlog.result
+++ /dev/null
@@ -1,13 +0,0 @@
-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;
-stop slave;
-flush logs;
-reset slave;
-start slave;
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_PORT 1 master-bin.000002 4 slave-relay-bin.000002 123 master-bin.000001 Yes No 0 Rolling back unfinished transaction (no COMMIT or ROLLBACK) from relay log. A probable cause is that the master died while writing the transaction to its binary log. 0 79 # None 0 No #
diff --git a/mysql-test/r/rpl_until.result b/mysql-test/r/rpl_until.result
index 6bbfe36c56b..60b956785ba 100644
--- a/mysql-test/r/rpl_until.result
+++ b/mysql-test/r/rpl_until.result
@@ -13,25 +13,56 @@ insert into t2 values (1),(2);
insert into t2 values (3),(4);
drop table t2;
show binlog events;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
-master-bin.000001 79 Query 1 79 use `test`; create table t1(n int not null auto_increment primary key)
-master-bin.000001 172 Query 1 172 use `test`; insert into t1 values (1),(2),(3),(4)
-master-bin.000001 244 Query 1 244 use `test`; drop table t1
-master-bin.000001 292 Query 1 292 use `test`; create table t2(n int not null auto_increment primary key)
-master-bin.000001 385 Query 1 385 use `test`; insert into t2 values (1),(2)
-master-bin.000001 449 Query 1 449 use `test`; insert into t2 values (3),(4)
-master-bin.000001 513 Query 1 513 use `test`; drop table t2
-start slave until master_log_file='master-bin.000001', master_log_pos=244;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 98 Server ver: VERSION, Binlog ver: 4
+master-bin.000001 98 Query 1 219 use `test`; create table t1(n int not null auto_increment primary key)
+master-bin.000001 219 Query 1 319 use `test`; insert into t1 values (1),(2),(3),(4)
+master-bin.000001 319 Query 1 395 use `test`; drop table t1
+master-bin.000001 395 Query 1 516 use `test`; create table t2(n int not null auto_increment primary key)
+master-bin.000001 516 Query 1 608 use `test`; insert into t2 values (1),(2)
+master-bin.000001 608 Query 1 700 use `test`; insert into t2 values (3),(4)
+master-bin.000001 700 Query 1 776 use `test`; drop table t2
+start slave until master_log_file='master-bin.000001', master_log_pos=319;
select * from t1;
n
1
2
3
4
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 # No 0 0 244 # Master master-bin.000001 244 No #
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 776
+Relay_Log_File slave-relay-bin.000004
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running #
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 319
+Relay_Log_Space #
+Until_Condition Master
+Until_Log_File master-bin.000001
+Until_Log_Pos 319
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
select * from t1;
n
@@ -39,23 +70,116 @@ n
2
3
4
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 # No 0 0 244 # Master master-no-such-bin.000001 291 No #
-start slave until relay_log_file='slave-relay-bin.000002', relay_log_pos=537;
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 776
+Relay_Log_File slave-relay-bin.000004
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running #
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 319
+Relay_Log_Space #
+Until_Condition Master
+Until_Log_File master-no-such-bin.000001
+Until_Log_Pos 291
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
+start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=746;
select * from t2;
n
1
2
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 # No 0 0 449 # Relay slave-relay-bin.000002 537 No #
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 776
+Relay_Log_File slave-relay-bin.000004
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running #
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 608
+Relay_Log_Space #
+Until_Condition Relay
+Until_Log_File slave-relay-bin.000004
+Until_Log_Pos 746
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
start slave;
stop slave;
-start slave until master_log_file='master-bin.000001', master_log_pos=561;
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
-# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 Yes No 0 0 561 # Master master-bin.000001 561 No #
+start slave until master_log_file='master-bin.000001', master_log_pos=776;
+SHOW SLAVE STATUS;
+Slave_IO_State #
+Master_Host 127.0.0.1
+Master_User root
+Master_Port MASTER_MYPORT
+Connect_Retry 1
+Master_Log_File master-bin.000001
+Read_Master_Log_Pos 776
+Relay_Log_File slave-relay-bin.000004
+Relay_Log_Pos #
+Relay_Master_Log_File master-bin.000001
+Slave_IO_Running Yes
+Slave_SQL_Running No
+Replicate_Do_DB
+Replicate_Ignore_DB
+Replicate_Do_Table
+Replicate_Ignore_Table
+Replicate_Wild_Do_Table
+Replicate_Wild_Ignore_Table
+Last_Errno 0
+Last_Error
+Skip_Counter 0
+Exec_Master_Log_Pos 776
+Relay_Log_Space #
+Until_Condition Master
+Until_Log_File master-bin.000001
+Until_Log_Pos 776
+Master_SSL_Allowed No
+Master_SSL_CA_File
+Master_SSL_CA_Path
+Master_SSL_Cert
+Master_SSL_Cipher
+Master_SSL_Key
+Seconds_Behind_Master #
start slave until master_log_file='master-bin', master_log_pos=561;
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
@@ -67,6 +191,6 @@ ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UN
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
start slave sql_thread;
-start slave until master_log_file='master-bin.000001', master_log_pos=561;
+start slave until master_log_file='master-bin.000001', master_log_pos=776;
Warnings:
Note 1254 Slave is already running
diff --git a/mysql-test/r/rpl_user_variables.result b/mysql-test/r/rpl_user_variables.result
index 8af2c3e0b22..26ac2b26aaa 100644
--- a/mysql-test/r/rpl_user_variables.result
+++ b/mysql-test/r/rpl_user_variables.result
@@ -76,35 +76,246 @@ abcn1n2
NULL
NULL
NULL
-show binlog events from 141;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-slave-bin.000001 141 User var 2 141 @`i1`=12345678901234
-slave-bin.000001 184 User var 2 184 @`i2`=-12345678901234
-slave-bin.000001 227 User var 2 227 @`i3`=0
-slave-bin.000001 270 User var 2 270 @`i4`=-1
-slave-bin.000001 313 Query 1 313 use `test`; insert into t1 values (@i1), (@i2), (@i3), (@i4)
-slave-bin.000001 396 User var 2 396 @`r1`=12.5
-slave-bin.000001 439 User var 2 439 @`r2`=-12.5
-slave-bin.000001 482 Query 1 482 use `test`; insert into t1 values (@r1), (@r2)
-slave-bin.000001 551 User var 2 551 @`s1`=_latin1 0x5468697320697320612074657374 COLLATE latin1_swedish_ci
-slave-bin.000001 600 User var 2 600 @`s2`=_latin1 "" COLLATE latin1_swedish_ci
-slave-bin.000001 635 User var 2 635 @`s3`=_latin1 0x61626327646566 COLLATE latin1_swedish_ci
-slave-bin.000001 677 User var 2 677 @`s4`=_latin1 0x6162635C646566 COLLATE latin1_swedish_ci
-slave-bin.000001 719 User var 2 719 @`s5`=_latin1 0x61626327646566 COLLATE latin1_swedish_ci
-slave-bin.000001 761 Query 1 761 use `test`; insert into t1 values (@s1), (@s2), (@s3), (@s4), (@s5)
-slave-bin.000001 851 User var 2 851 @`n1`=NULL
-slave-bin.000001 877 Query 1 877 use `test`; insert into t1 values (@n1)
-slave-bin.000001 939 User var 2 939 @`n2`=NULL
-slave-bin.000001 965 Query 1 965 use `test`; insert into t1 values (@n2)
-slave-bin.000001 1027 Query 1 1027 use `test`; insert into t1 values (@a:=0), (@a:=@a+1), (@a:=@a+1)
-slave-bin.000001 1115 User var 2 1115 @`a`=2
-slave-bin.000001 1157 Query 1 1157 use `test`; insert into t1 values (@a+(@b:=@a+1))
-slave-bin.000001 1229 User var 2 1229 @`q`=_latin1 0x616263 COLLATE latin1_swedish_ci
-slave-bin.000001 1266 Query 1 1266 use `test`; insert t1 values (@q), (@q:=concat(@q, 'n1')), (@q:=concat(@q, 'n2'))
-slave-bin.000001 1370 User var 2 1370 @`a`=5
-slave-bin.000001 1412 Query 1 1412 use `test`; insert into t1 values (@a),(@a)
-slave-bin.000001 1478 User var 2 1478 @`a`=NULL
-slave-bin.000001 1503 Query 1 1503 use `test`; insert into t1 values (@a),(@a),(@a*5)
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+slave-bin.000001 # Query 1 # use `test`; create table t1(n char(30))
+slave-bin.000001 # User var 2 # @`i1`=12345678901234
+slave-bin.000001 # User var 2 # @`i2`=-12345678901234
+slave-bin.000001 # User var 2 # @`i3`=0
+slave-bin.000001 # User var 2 # @`i4`=-1
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@i1), (@i2), (@i3), (@i4)
+slave-bin.000001 # User var 2 # @`r1`=12.5
+slave-bin.000001 # User var 2 # @`r2`=-12.5
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@r1), (@r2)
+slave-bin.000001 # User var 2 # @`s1`=_latin1 0x5468697320697320612074657374 COLLATE latin1_swedish_ci
+slave-bin.000001 # User var 2 # @`s2`=_latin1 "" COLLATE latin1_swedish_ci
+slave-bin.000001 # User var 2 # @`s3`=_latin1 0x61626327646566 COLLATE latin1_swedish_ci
+slave-bin.000001 # User var 2 # @`s4`=_latin1 0x6162635C646566 COLLATE latin1_swedish_ci
+slave-bin.000001 # User var 2 # @`s5`=_latin1 0x61626327646566 COLLATE latin1_swedish_ci
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@s1), (@s2), (@s3), (@s4), (@s5)
+slave-bin.000001 # User var 2 # @`n1`=NULL
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@n1)
+slave-bin.000001 # User var 2 # @`n2`=NULL
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@n2)
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@a:=0), (@a:=@a+1), (@a:=@a+1)
+slave-bin.000001 # User var 2 # @`a`=2
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@a+(@b:=@a+1))
+slave-bin.000001 # User var 2 # @`q`=_latin1 0x616263 COLLATE latin1_swedish_ci
+slave-bin.000001 # Query 1 # use `test`; insert t1 values (@q), (@q:=concat(@q, 'n1')), (@q:=concat(@q, 'n2'))
+slave-bin.000001 # User var 2 # @`a`=5
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@a),(@a)
+slave-bin.000001 # User var 2 # @`a`=NULL
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (@a),(@a),(@a*5)
insert into t1 select * FROM (select @var1 union select @var2) AS t2;
drop table t1;
+End of 4.1 tests.
+DROP TABLE IF EXISTS t20;
+DROP TABLE IF EXISTS t21;
+DROP PROCEDURE IF EXISTS test.insert;
+CREATE TABLE t20 (a VARCHAR(20));
+CREATE TABLE t21 (a VARCHAR(20));
+CREATE PROCEDURE test.insert()
+BEGIN
+IF (@VAR)
+THEN
+INSERT INTO test.t20 VALUES ('SP_TRUE');
+ELSE
+INSERT INTO test.t20 VALUES ('SP_FALSE');
+END IF;
+END|
+CREATE TRIGGER test.insert_bi BEFORE INSERT
+ON test.t20 FOR EACH ROW
+BEGIN
+IF (@VAR)
+THEN
+INSERT INTO test.t21 VALUES ('TRIG_TRUE');
+ELSE
+INSERT INTO test.t21 VALUES ('TRIG_FALSE');
+END IF;
+END|
+SET @VAR=0;
+CALL test.insert();
+SET @VAR=1;
+CALL test.insert();
+On master: Check the tables for correct data
+SELECT * FROM t20;
+a
+SP_FALSE
+SP_TRUE
+SELECT * FROM t21;
+a
+TRIG_FALSE
+TRIG_TRUE
+On slave: Check the tables for correct data and it matches master
+SELECT * FROM t20;
+a
+SP_FALSE
+SP_TRUE
+SELECT * FROM t21;
+a
+TRIG_FALSE
+TRIG_TRUE
+DROP TABLE t20;
+DROP TABLE t21;
+DROP PROCEDURE test.insert;
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS test.square;
+CREATE TABLE t1 (i INT);
+CREATE FUNCTION test.square() RETURNS INTEGER DETERMINISTIC RETURN (@var * @var);
+SET @var = 1;
+INSERT INTO t1 VALUES (square());
+SET @var = 2;
+INSERT INTO t1 VALUES (square());
+SET @var = 3;
+INSERT INTO t1 VALUES (square());
+SET @var = 4;
+INSERT INTO t1 VALUES (square());
+SET @var = 5;
+INSERT INTO t1 VALUES (square());
+On master: Retrieve the values from the table
+SELECT * FROM t1;
+i
+1
+4
+9
+16
+25
+On slave: Retrieve the values from the table and verify they are the same as on master
+SELECT * FROM t1;
+i
+1
+4
+9
+16
+25
+DROP TABLE t1;
+DROP FUNCTION test.square;
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+CREATE TABLE t1(a int);
+CREATE FUNCTION f1() returns int deterministic
+BEGIN
+return @a;
+END |
+CREATE FUNCTION f2() returns int deterministic
+BEGIN
+IF (@b > 0) then
+SET @c = (@a + @b);
+else
+SET @c = (@a - 1);
+END if;
+return @c;
+END |
+SET @a=500;
+INSERT INTO t1 values(f1());
+SET @b = 125;
+SET @c = 1;
+INSERT INTO t1 values(f2());
+On master: Retrieve the values from the table
+SELECT * from t1;
+a
+500
+625
+On slave: Check the tables for correct data and it matches master
+SELECT * from t1;
+a
+500
+625
+DROP TABLE t1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t1 (i int);
+CREATE TABLE t2 (k int);
+CREATE trigger t1_bi before INSERT on t1 for each row
+BEGIN
+INSERT INTO t2 values (@a);
+SET @a:=42;
+INSERT INTO t2 values (@a);
+END |
+SET @a:=100;
+INSERT INTO t1 values (5);
+On master: Check to see that data was inserted correctly in both tables
+SELECT * from t1;
+i
+5
+SELECT * from t2;
+k
+100
+42
+On slave: Check the tables for correct data and it matches master
+SELECT * from t1;
+i
+5
+SELECT * from t2;
+k
+100
+42
+drop table t1, t2;
+reset master;
+create table t1 (a int);
+prepare s from "insert into t1 values (@a),(?)";
+set @a=98;
+execute s using @a;
+prepare s from "insert into t1 values (?)";
+set @a=99;
+execute s using @a;
+prepare s from "insert into t1 select 100 limit ?";
+set @a=100;
+execute s using @a;
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+slave-bin.000001 98 Query 1 184 use `test`; create table t1 (a int)
+slave-bin.000001 184 User var 2 226 @`a`=98
+slave-bin.000001 226 Query 1 320 use `test`; insert into t1 values (@a),(98)
+slave-bin.000001 320 Query 1 409 use `test`; insert into t1 values (99)
+slave-bin.000001 409 Query 1 507 use `test`; insert into t1 select 100 limit 100
+select * from t1;
+a
+98
+98
+99
+100
+drop table t1;
+create table t1(a int, b int);
+prepare s1 from 'insert into t1 values (@x:=@x+1, ?)';
+set @x=1;
+execute s1 using @x;
+select * from t1;
+a b
+2 1
+select * from t1;
+a b
+2 1
+drop table t1;
+End of 5.0 tests.
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+CREATE TABLE t1 (i INT);
+CREATE FUNCTION f1() RETURNS INT RETURN @a;
+CREATE FUNCTION f2() RETURNS INT
+BEGIN
+INSERT INTO t1 VALUES (10 + @a);
+RETURN 0;
+END|
+SET @a:=123;
+SELECT f1(), f2();
+f1() f2()
+123 0
+On master: Check to see that data was inserted correctly
+INSERT INTO t1 VALUES(f1());
+SELECT * FROM t1;
+i
+133
+123
+On slave: Check the table for correct data and it matches master
+SELECT * FROM t1;
+i
+133
+123
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP TABLE t1;
stop slave;
diff --git a/mysql-test/r/rpl_variables.result b/mysql-test/r/rpl_variables.result
index 227d8ecfad9..6c532e33983 100644
--- a/mysql-test/r/rpl_variables.result
+++ b/mysql-test/r/rpl_variables.result
@@ -4,5 +4,16 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
+set @my_slave_net_timeout =@@global.slave_net_timeout;
set global slave_net_timeout=100;
set global sql_slave_skip_counter=100;
+show variables like 'slave_compressed_protocol';
+Variable_name Value
+slave_compressed_protocol OFF
+show variables like 'slave_load_tmpdir';
+Variable_name Value
+slave_load_tmpdir SLAVE_LOAD_TMPDIR
+show variables like 'slave_skip_errors';
+Variable_name Value
+slave_skip_errors 3,100,137,643,1752
+set global slave_net_timeout =@my_slave_net_timeout;
diff --git a/mysql-test/r/rpl_view.result b/mysql-test/r/rpl_view.result
new file mode 100644
index 00000000000..be7ed6e8c2a
--- /dev/null
+++ b/mysql-test/r/rpl_view.result
@@ -0,0 +1,115 @@
+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;
+drop table if exists t1,v1;
+drop view if exists t1,v1;
+reset master;
+create table t1 (a int);
+insert into t1 values (1);
+create view v1 as select a from t1;
+insert into v1 values (2);
+select * from v1 order by a;
+a
+1
+2
+select * from v1 order by a;
+a
+1
+2
+update v1 set a=3 where a=1;
+select * from v1 order by a;
+a
+2
+3
+select * from v1 order by a;
+a
+2
+3
+delete from v1 where a=2;
+select * from v1 order by a;
+a
+3
+select * from v1 order by a;
+a
+3
+alter view v1 as select a as b from t1;
+select * from v1 order by 1;
+b
+3
+drop view v1;
+select * from v1 order by a;
+ERROR 42S02: Table 'test.v1' doesn't exist
+drop table t1;
+show binlog events limit 1,100;
+Log_name Pos Event_type Server_id End_log_pos Info
+slave-bin.000001 # Query 1 # use `test`; create table t1 (a int)
+slave-bin.000001 # Query 1 # use `test`; insert into t1 values (1)
+slave-bin.000001 # Query 1 # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select a from t1
+slave-bin.000001 # Query 1 # use `test`; insert into v1 values (2)
+slave-bin.000001 # Query 1 # use `test`; update v1 set a=3 where a=1
+slave-bin.000001 # Query 1 # use `test`; delete from v1 where a=2
+slave-bin.000001 # Query 1 # use `test`; ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select a as b from t1
+slave-bin.000001 # Query 1 # use `test`; drop view v1
+slave-bin.000001 # Query 1 # use `test`; drop table t1
+
+---> Test for BUG#20438
+
+---> Preparing environment...
+---> connection: master
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+
+---> Synchronizing slave with master...
+
+---> connection: master
+
+---> Creating objects...
+CREATE TABLE t1(c INT);
+/*!50003 CREATE VIEW v1 AS SELECT * FROM t1 */;
+
+---> Inserting value...
+INSERT INTO t1 VALUES(1);
+
+---> Checking on master...
+SELECT * FROM t1;
+c
+1
+
+---> Synchronizing slave with master...
+---> connection: master
+
+---> Checking on slave...
+SELECT * FROM t1;
+c
+1
+
+---> connection: master
+
+---> Cleaning up...
+DROP VIEW v1;
+DROP TABLE t1;
+create table t1(a int, b int);
+insert into t1 values (1, 1), (1, 2), (1, 3);
+create view v1(a, b) as select a, sum(b) from t1 group by a;
+explain v1;
+Field Type Null Key Default Extra
+a int(11) YES NULL
+b decimal(32,0) YES NULL
+show create table v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a`
+select * from v1;
+a b
+1 6
+drop table t1;
+drop view v1;
+CREATE TABLE t1(a INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE VIEW v1 AS SELECT * FROM t1;
+ERROR 42S01: Table 'v1' already exists
+DROP VIEW v1;
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/schema.result b/mysql-test/r/schema.result
new file mode 100644
index 00000000000..538abd8d039
--- /dev/null
+++ b/mysql-test/r/schema.result
@@ -0,0 +1,12 @@
+drop database if exists mysqltest1;
+create schema foo;
+show create schema foo;
+Database Create Database
+foo CREATE DATABASE `foo` /*!40100 DEFAULT CHARACTER SET latin1 */
+show schemas;
+Database
+information_schema
+foo
+mysql
+test
+drop schema foo;
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index 6dc971a953c..ed120a1bbb8 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -1,5 +1,6 @@
-drop table if exists t1,t2,t3,t4;
-drop table if exists t1_1,t1_2,t9_1,t9_2;
+drop table if exists t1,t2,t3,t4,t11;
+drop table if exists t1_1,t1_2,t9_1,t9_2,t1aa,t2aa;
+drop view if exists v1;
CREATE TABLE t1 (
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
@@ -1363,6 +1364,17 @@ explain select t2.companynr,companyname from t4 left join t2 using (companynr) w
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+companynr companyname
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+count(*)
+1200
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
delete from t2 where fld1=999999;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
id select_type table type possible_keys key key_len ref rows Extra
@@ -1375,7 +1387,19 @@ id select_type table type possible_keys key key_len ref rows Extra
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
-1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
@@ -1388,14 +1412,26 @@ explain select t2.companynr,companyname from t4 left join t2 using (companynr) w
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
companynr companynr
37 36
41 40
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using temporary
-1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using where; Using index
+1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
fld1 companynr fld3 period
038008 37 reporters 1008
@@ -1471,7 +1507,7 @@ explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
Warnings:
-Note 1003 select count(0) AS `count(*)`,min(test.t2.fld4) AS `min(fld4)`,max(test.t2.fld4) AS `max(fld4)`,sum(test.t2.fld1) AS `sum(fld1)`,avg(test.t2.fld1) AS `avg(fld1)`,std(test.t2.fld1) AS `std(fld1)`,variance(test.t2.fld1) AS `variance(fld1)` from test.t2 where ((test.t2.companynr = 34) and (test.t2.fld4 <> _latin1''))
+Note 1003 select count(0) AS `count(*)`,min(`test`.`t2`.`fld4`) AS `min(fld4)`,max(`test`.`t2`.`fld4`) AS `max(fld4)`,sum(`test`.`t2`.`fld1`) AS `sum(fld1)`,avg(`test`.`t2`.`fld1`) AS `avg(fld1)`,std(`test`.`t2`.`fld1`) AS `std(fld1)`,variance(`test`.`t2`.`fld1`) AS `variance(fld1)` from `test`.`t2` where ((`test`.`t2`.`companynr` = 34) and (`test`.`t2`.`fld4` <> _latin1''))
select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
companynr count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
00 82 Anthony windmills 10355753 126289.6707 115550.9757 13352027981.7087
@@ -1671,7 +1707,7 @@ fld1 count(*)
158402 4181
select sum(Period)/count(*) from t1;
sum(Period)/count(*)
-9410.00
+9410.0000
select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
companynr count sum diff func
37 12543 309394878010 0.0000 464091
@@ -1683,7 +1719,7 @@ companynr count sum diff func
512 4181 3288532102 0.0000 2140672
select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
companynr avg
-154 983543950.00
+154 983543950.0000
select companynr,count(*) from t2 group by companynr order by 2 desc;
companynr count(*)
37 588
@@ -2033,20 +2069,20 @@ show tables from test like "t?";
Tables_in_test (t?)
show full columns from t2;
Field Type Collation Null Key Default Extra Privileges Comment
-auto int(11) NULL PRI NULL auto_increment #
-fld1 int(6) unsigned zerofill NULL UNI 000000 #
-companynr tinyint(2) unsigned zerofill NULL 00 #
-fld3 char(30) latin1_swedish_ci MUL #
-fld4 char(35) latin1_swedish_ci #
-fld5 char(35) latin1_swedish_ci #
-fld6 char(4) latin1_swedish_ci #
+auto int(11) NULL NO PRI NULL auto_increment #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+companynr tinyint(2) unsigned zerofill NULL NO 00 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 'f%';
Field Type Collation Null Key Default Extra Privileges Comment
-fld1 int(6) unsigned zerofill NULL UNI 000000 #
-fld3 char(30) latin1_swedish_ci MUL #
-fld4 char(35) latin1_swedish_ci #
-fld5 char(35) latin1_swedish_ci #
-fld6 char(4) latin1_swedish_ci #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
@@ -2072,17 +2108,15 @@ INSERT INTO t1 (pseudo) VALUES ('test1');
SELECT 1 as rnd1 from t1 where rand() > 2;
rnd1
DROP TABLE t1;
-CREATE TABLE t1 (gvid int(10) unsigned default NULL, hmid int(10) unsigned default NULL, volid int(10) unsigned default NULL, mmid int(10) unsigned default NULL, hdid int(10) unsigned default NULL, fsid int(10) unsigned default NULL, ctid int(10) unsigned default NULL, dtid int(10) unsigned default NULL, cost int(10) unsigned default NULL, performance int(10) unsigned default NULL, serialnumber bigint(20) unsigned default NULL, monitored tinyint(3) unsigned default '1', removed tinyint(3) unsigned default '0', target tinyint(3) unsigned default '0', dt_modified timestamp(14) NOT NULL, name varchar(255) binary default NULL, description varchar(255) default NULL, UNIQUE KEY hmid (hmid,volid)) ENGINE=MyISAM;
+CREATE TABLE t1 (gvid int(10) unsigned default NULL, hmid int(10) unsigned default NULL, volid int(10) unsigned default NULL, mmid int(10) unsigned default NULL, hdid int(10) unsigned default NULL, fsid int(10) unsigned default NULL, ctid int(10) unsigned default NULL, dtid int(10) unsigned default NULL, cost int(10) unsigned default NULL, performance int(10) unsigned default NULL, serialnumber bigint(20) unsigned default NULL, monitored tinyint(3) unsigned default '1', removed tinyint(3) unsigned default '0', target tinyint(3) unsigned default '0', dt_modified timestamp NOT NULL, name varchar(255) binary default NULL, description varchar(255) default NULL, UNIQUE KEY hmid (hmid,volid)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (200001,2,1,1,100,1,1,1,0,0,0,1,0,1,20020425060057,'\\\\ARKIVIO-TESTPDC\\E$',''),(200002,2,2,1,101,1,1,1,0,0,0,1,0,1,20020425060057,'\\\\ARKIVIO-TESTPDC\\C$',''),(200003,1,3,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,20020425060427,'c:',NULL);
CREATE TABLE t2 ( hmid int(10) unsigned default NULL, volid int(10) unsigned default NULL, sampletid smallint(5) unsigned default NULL, sampletime datetime default NULL, samplevalue bigint(20) unsigned default NULL, KEY idx1 (hmid,volid,sampletid,sampletime)) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1,3,10,'2002-06-01 08:00:00',35),(1,3,1010,'2002-06-01 12:00:01',35);
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= 'wrong-date-value' AND b.sampletime < 'wrong-date-value' AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
gvid the_success the_fail the_size the_time
Warnings:
-Warning 1292 Truncated incorrect datetime value: 'wrong-date-value'
-Warning 1292 Truncated incorrect datetime value: 'wrong-date-value'
-Warning 1292 Truncated incorrect datetime value: 'wrong-date-value'
-Warning 1292 Truncated incorrect datetime value: 'wrong-date-value'
+Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 1
+Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 1
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= NULL AND b.sampletime < NULL AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
gvid the_success the_fail the_size the_time
DROP TABLE t1,t2;
@@ -2110,196 +2144,165 @@ select @b;
aaaa
select @c;
@c
-6.26
+6.260
create table t1 (a int not null auto_increment primary key);
insert into t1 values ();
insert into t1 values ();
insert into t1 values ();
select * from (t1 as t2 left join t1 as t3 using (a)), t1;
-a a a
-1 1 1
-2 2 1
-3 3 1
-1 1 2
-2 2 2
-3 3 2
-1 1 3
-2 2 3
-3 3 3
+a a
+1 1
+2 1
+3 1
+1 2
+2 2
+3 2
+1 3
+2 3
+3 3
select * from t1, (t1 as t2 left join t1 as t3 using (a));
-a a a
-1 1 1
-2 1 1
-3 1 1
-1 2 2
-2 2 2
-3 2 2
-1 3 3
-2 3 3
-3 3 3
+a a
+1 1
+2 1
+3 1
+1 2
+2 2
+3 2
+1 3
+2 3
+3 3
select * from (t1 as t2 left join t1 as t3 using (a)) straight_join t1;
-a a a
-1 1 1
-2 2 1
-3 3 1
-1 1 2
-2 2 2
-3 3 2
-1 1 3
-2 2 3
-3 3 3
+a a
+1 1
+2 1
+3 1
+1 2
+2 2
+3 2
+1 3
+2 3
+3 3
select * from t1 straight_join (t1 as t2 left join t1 as t3 using (a));
-a a a
-1 1 1
-2 1 1
-3 1 1
-1 2 2
-2 2 2
-3 2 2
-1 3 3
-2 3 3
-3 3 3
+a a
+1 1
+2 1
+3 1
+1 2
+2 2
+3 2
+1 3
+2 3
+3 3
select * from (t1 as t2 left join t1 as t3 using (a)) inner join t1 on t1.a>1;
-a a a
-1 1 2
-1 1 3
-2 2 2
-2 2 3
-3 3 2
-3 3 3
+a a
+1 2
+2 2
+3 2
+1 3
+2 3
+3 3
select * from t1 inner join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
-a a a
-1 1 NULL
-2 1 1
-3 1 1
-1 2 NULL
-2 2 2
-3 2 2
-1 3 NULL
-2 3 3
-3 3 3
+a a
+2 1
+3 1
+2 2
+3 2
+2 3
+3 3
select * from (t1 as t2 left join t1 as t3 using (a)) inner join t1 using ( a );
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
select * from t1 inner join (t1 as t2 left join t1 as t3 using (a)) using ( a );
-a a a
-1 1 1
-2 1 NULL
-3 1 NULL
-1 2 NULL
-2 2 2
-3 2 NULL
-1 3 NULL
-2 3 NULL
-3 3 3
+a
+1
+2
+3
select * from (t1 as t2 left join t1 as t3 using (a)) left outer join t1 on t1.a>1;
-a a a
-1 1 2
-1 1 3
-2 2 2
-2 2 3
-3 3 2
-3 3 3
+a a
+1 2
+1 3
+2 2
+2 3
+3 2
+3 3
select * from t1 left outer join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
-a a a
-1 1 NULL
-2 1 1
-3 1 1
-1 2 NULL
-2 2 2
-3 2 2
-1 3 NULL
-2 3 3
-3 3 3
+a a
+1 NULL
+2 1
+2 2
+2 3
+3 1
+3 2
+3 3
select * from (t1 as t2 left join t1 as t3 using (a)) left join t1 using ( a );
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
select * from t1 left join (t1 as t2 left join t1 as t3 using (a)) using ( a );
-a a a
-1 1 1
-2 1 NULL
-3 1 NULL
-1 2 NULL
-2 2 2
-3 2 NULL
-1 3 NULL
-2 3 NULL
-3 3 3
+a
+1
+2
+3
select * from (t1 as t2 left join t1 as t3 using (a)) natural left join t1;
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
select * from t1 natural left join (t1 as t2 left join t1 as t3 using (a));
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
-a a a
-1 NULL 1
-2 NULL 1
-3 NULL 1
-1 1 2
-2 2 2
-3 3 2
-1 1 3
-2 2 3
-3 3 3
+a a
+NULL 1
+1 2
+2 2
+3 2
+1 3
+2 3
+3 3
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
-a a a
-2 1 1
-3 1 1
-2 2 2
-3 2 2
-2 3 3
-3 3 3
+a a
+2 1
+3 1
+2 2
+3 2
+2 3
+3 3
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
-a a a
-1 1 1
-2 NULL 1
-3 NULL 1
-1 NULL 2
-2 2 2
-3 NULL 2
-1 NULL 3
-2 NULL 3
-3 3 3
+a
+1
+2
+3
select * from t1 right outer join (t1 as t2 left join t1 as t3 using (a)) using ( a );
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
select * from (t1 as t2 left join t1 as t3 using (a)) natural right join t1;
-a a a
-1 1 1
-2 NULL 1
-3 NULL 1
-1 NULL 2
-2 2 2
-3 NULL 2
-1 NULL 3
-2 NULL 3
-3 3 3
+a
+1
+2
+3
select * from t1 natural right join (t1 as t2 left join t1 as t3 using (a));
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
select * from t1 natural join (t1 as t2 left join t1 as t3 using (a));
-a a
-1 1
-2 2
-3 3
+a
+1
+2
+3
select * from (t1 as t2 left join t1 as t3 using (a)) natural join t1;
-a a a
-1 1 1
-2 2 2
-3 3 3
+a
+1
+2
+3
drop table t1;
CREATE TABLE t1 ( aa char(2), id int(11) NOT NULL auto_increment, t2_id int(11) NOT NULL default '0', PRIMARY KEY (id), KEY replace_id (t2_id)) ENGINE=MyISAM;
INSERT INTO t1 VALUES ("1",8264,2506),("2",8299,2517),("3",8301,2518),("4",8302,2519),("5",8303,2520),("6",8304,2521),("7",8305,2522);
@@ -2325,9 +2328,9 @@ explain select * from t1 left join t2 on id1 = id2 left join t3 on id1 = id3
left join t4 on id3 = id4 where id2 = 1 or id4 = 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t3 system NULL NULL NULL NULL 0 const row not found
+1 SIMPLE t4 const id4 NULL NULL NULL 1
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
-1 SIMPLE t2 ALL NULL NULL NULL NULL 1
-1 SIMPLE t4 ALL id4 NULL NULL NULL 1 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
select * from t1 left join t2 on id1 = id2 left join t3 on id1 = id3
left join t4 on id3 = id4 where id2 = 1 or id4 = 1;
id1 id2 id3 id4 id44
@@ -2345,7 +2348,7 @@ select * from t2 where s = 'one';
s
select * from t3 where s = 'one';
s
-one
+one
select * from t1,t2 where t1.s = t2.s;
s s
two two
@@ -2648,27 +2651,16 @@ create table t11 like t1;
insert into t1 values(1,""),(2,"");
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 MyISAM 9 Dynamic 2 20 X X X X X X X X latin1_swedish_ci NULL
-t11 MyISAM 9 Dynamic 0 0 X X X X X X X X latin1_swedish_ci NULL
+t1 MyISAM 10 Dynamic 2 20 X X X X X X X X latin1_swedish_ci NULL
+t11 MyISAM 10 Dynamic 0 0 X X X X X X X X latin1_swedish_ci NULL
select 123 as a from t1 where f1 is null;
a
drop table t1,t11;
-CREATE TABLE t1 (a INT, b INT);
-(SELECT a, b AS c FROM t1) ORDER BY c+1;
-a c
-(SELECT a, b AS c FROM t1) ORDER BY b+1;
-a c
-SELECT a, b AS c FROM t1 ORDER BY c+1;
-a c
-SELECT a, b AS c FROM t1 ORDER BY b+1;
-a c
-drop table t1;
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL, UNIQUE idx (a,b) );
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4);
-CREATE TABLE t2 ( a INT NOT NULL, b INT NOT NULL, c INT );
-INSERT INTO t2 VALUES ( 1,10,1), (1,10,2), (1,11,1), (1,11,2), (1,2,1), (1,2,2),
-(1,2,3);
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
+CREATE TABLE t2 ( a INT NOT NULL, b INT NOT NULL, e INT );
+INSERT INTO t2 VALUES ( 1,10,1), (1,10,2), (1,11,1), (1,11,2), (1,2,1), (1,2,2),(1,2,3);
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
a b c d
1 2 1 1
@@ -2676,14 +2668,14 @@ a b c d
1 2 3 1
1 10 2
1 11 2
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY t1.a, t1.b, c;
a b c d
1 10 4
1 2 1 1
1 2 2 1
1 2 3 1
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY t2.a, t2.b, c;
a b c d
1 2 1 1
@@ -2691,7 +2683,7 @@ a b c d
1 2 3 1
1 10 2
1 11 2
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2,t1
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2,t1
WHERE t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
a b c d
1 2 1 1
@@ -2740,9 +2732,9 @@ ERROR HY000: Key 'a' doesn't exist in table 't1'
DROP TABLE t1;
CREATE TABLE t1 (i BIGINT UNSIGNED NOT NULL);
INSERT INTO t1 VALUES (10);
-SELECT i='1e+01',i=1e+01, i in (1e+01), i in ('1e+01') FROM t1;
-i='1e+01' i=1e+01 i in (1e+01) i in ('1e+01')
-0 1 1 1
+SELECT i='1e+01',i=1e+01, i in (1e+01,1e+01), i in ('1e+01','1e+01') FROM t1;
+i='1e+01' i=1e+01 i in (1e+01,1e+01) i in ('1e+01','1e+01')
+1 1 1 1
DROP TABLE t1;
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 VALUES (1,1), (2,1), (4,10);
@@ -2824,11 +2816,11 @@ insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff),
(0x10000000000000000, 0x10000000000000000),
(0x8fffffffffffffff, 0x8fffffffffffffff);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'b' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'b' at row 2
-Warning 1264 Data truncated; out of range for column 'b' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'b' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'b' at row 2
+Warning 1264 Out of range value adjusted for column 'b' at row 3
select hex(a), hex(b) from t1;
hex(a) hex(b)
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
@@ -2836,3 +2828,1272 @@ FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
8FFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
drop table t1;
End of 4.1 tests
+CREATE TABLE t1 (
+K2C4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '',
+K4N4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '0000',
+F2I4 int(11) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+INSERT INTO t1 VALUES
+('W%RT', '0100', 1),
+('W-RT', '0100', 1),
+('WART', '0100', 1),
+('WART', '0200', 1),
+('WERT', '0100', 2),
+('WORT','0200', 2),
+('WT', '0100', 2),
+('W_RT', '0100', 2),
+('WaRT', '0100', 3),
+('WART', '0300', 3),
+('WRT' , '0400', 3),
+('WURM', '0500', 3),
+('W%T', '0600', 4),
+('WA%T', '0700', 4),
+('WA_T', '0800', 4);
+SELECT K2C4, K4N4, F2I4 FROM t1
+WHERE K2C4 = 'WART' AND
+(F2I4 = 2 AND K2C4 = 'WART' OR (F2I4 = 2 OR K4N4 = '0200'));
+K2C4 K4N4 F2I4
+WART 0200 1
+SELECT K2C4, K4N4, F2I4 FROM t1
+WHERE K2C4 = 'WART' AND (K2C4 = 'WART' OR K4N4 = '0200');
+K2C4 K4N4 F2I4
+WART 0100 1
+WART 0200 1
+WART 0300 3
+DROP TABLE t1;
+create table t1 (a int, b int);
+create table t2 like t1;
+select t1.a from (t1 inner join t2 on t1.a=t2.a) where t2.a=1;
+a
+select t1.a from ((t1 inner join t2 on t1.a=t2.a)) where t2.a=1;
+a
+select x.a, y.a, z.a from ( (t1 x inner join t2 y on x.a=y.a) inner join t2 z on y.a=z.a) WHERE x.a=1;
+a a a
+drop table t1,t2;
+create table t1 (s1 varchar(5));
+insert into t1 values ('Wall');
+select min(s1) from t1 group by s1 with rollup;
+min(s1)
+Wall
+Wall
+drop table t1;
+create table t1 (s1 int) engine=myisam;
+insert into t1 values (0);
+select avg(distinct s1) from t1 group by s1 with rollup;
+avg(distinct s1)
+0.0000
+0.0000
+drop table t1;
+create table t1 (s1 int);
+insert into t1 values (null),(1);
+select distinct avg(s1) as x from t1 group by s1 with rollup;
+x
+NULL
+1.0000
+drop table t1;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (a int);
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+INSERT INTO t2 VALUES (2), (4), (6);
+SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
+a
+2
+4
+EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
+EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
+DROP TABLE t1,t2;
+select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
+x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0
+16 16 2 2
+create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null);
+create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4));
+insert into t1 values (" 2", 2);
+insert into t2 values (" 2", " one "),(" 2", " two ");
+select * from t1 left join t2 on f1 = f3;
+f1 f2 f3 f4
+ 2 2 2 one
+ 2 2 2 two
+drop table t1,t2;
+create table t1 (empnum smallint, grp int);
+create table t2 (empnum int, name char(5));
+insert into t1 values(1,1);
+insert into t2 values(1,'bob');
+create view v1 as select * from t2 inner join t1 using (empnum);
+select * from v1;
+empnum name grp
+1 bob 1
+drop table t1,t2;
+drop view v1;
+create table t1 (pk int primary key, b int);
+create table t2 (pk int primary key, c int);
+select pk from t1 inner join t2 using (pk);
+pk
+drop table t1,t2;
+create table t1 (s1 int, s2 char(5), s3 decimal(10));
+create view v1 as select s1, s2, 'x' as s3 from t1;
+select * from t1 natural join v1;
+s1 s2 s3
+insert into t1 values (1,'x',5);
+select * from t1 natural join v1;
+s1 s2 s3
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'x'
+drop table t1;
+drop view v1;
+create table t1(a1 int);
+create table t2(a2 int);
+insert into t1 values(1),(2);
+insert into t2 values(1),(2);
+create view v2 (c) as select a1 from t1;
+select * from t1 natural left join t2;
+a1 a2
+1 1
+1 2
+2 1
+2 2
+select * from t1 natural right join t2;
+a2 a1
+1 1
+1 2
+2 1
+2 2
+select * from v2 natural left join t2;
+c a2
+1 1
+1 2
+2 1
+2 2
+select * from v2 natural right join t2;
+a2 c
+1 1
+1 2
+2 1
+2 2
+drop table t1, t2;
+drop view v2;
+create table t1 (a int(10), t1_val int(10));
+create table t2 (b int(10), t2_val int(10));
+create table t3 (a int(10), b int(10));
+insert into t1 values (1,1),(2,2);
+insert into t2 values (1,1),(2,2),(3,3);
+insert into t3 values (1,1),(2,1),(3,1),(4,1);
+select * from t1 natural join t2 natural join t3;
+a b t1_val t2_val
+1 1 1 1
+2 1 2 1
+select * from t1 natural join t3 natural join t2;
+b a t1_val t2_val
+1 1 1 1
+1 2 2 1
+drop table t1, t2, t3;
+DO IFNULL(NULL, NULL);
+SELECT CAST(IFNULL(NULL, NULL) AS DECIMAL);
+CAST(IFNULL(NULL, NULL) AS DECIMAL)
+NULL
+SELECT ABS(IFNULL(NULL, NULL));
+ABS(IFNULL(NULL, NULL))
+NULL
+SELECT IFNULL(NULL, NULL);
+IFNULL(NULL, NULL)
+NULL
+SET @OLD_SQL_MODE12595=@@SQL_MODE, @@SQL_MODE='';
+SHOW LOCAL VARIABLES LIKE 'SQL_MODE';
+Variable_name Value
+sql_mode
+CREATE TABLE BUG_12595(a varchar(100));
+INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an");
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%';
+a
+hakan%
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
+a
+hakan%
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
+ERROR HY000: Incorrect arguments to ESCAPE
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE '';
+a
+hakan%
+hakank
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '';
+a
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE 0x5c;
+a
+ha%an
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%';
+a
+ha%an
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE '\\';
+a
+ha%an
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha|%an' ESCAPE '|';
+a
+ha%an
+SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
+SHOW LOCAL VARIABLES LIKE 'SQL_MODE';
+Variable_name Value
+sql_mode NO_BACKSLASH_ESCAPES
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%';
+a
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
+a
+hakan%
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
+ERROR HY000: Incorrect arguments to ESCAPE
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '\\';
+ERROR HY000: Incorrect arguments to ESCAPE
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE '';
+ERROR HY000: Incorrect arguments to ESCAPE
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE 0x5c;
+a
+ha%an
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha|%an' ESCAPE '|';
+a
+ha%an
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\n%' ESCAPE '\n';
+ERROR HY000: Incorrect arguments to ESCAPE
+SET @@SQL_MODE=@OLD_SQL_MODE12595;
+DROP TABLE BUG_12595;
+create table t1 (a char(1));
+create table t2 (a char(1));
+insert into t1 values ('a'),('b'),('c');
+insert into t2 values ('b'),('c'),('d');
+select a from t1 natural join t2;
+a
+b
+c
+select * from t1 natural join t2 where a = 'b';
+a
+b
+drop table t1, t2;
+CREATE TABLE t1 (`id` TINYINT);
+CREATE TABLE t2 (`id` TINYINT);
+CREATE TABLE t3 (`id` TINYINT);
+INSERT INTO t1 VALUES (1),(2),(3);
+INSERT INTO t2 VALUES (2);
+INSERT INTO t3 VALUES (3);
+SELECT t1.id,t3.id FROM t1 JOIN t2 ON (t2.id=t1.id) LEFT JOIN t3 USING (id);
+ERROR 23000: Column 'id' in from clause is ambiguous
+SELECT t1.id,t3.id FROM t1 JOIN t2 ON (t2.notacolumn=t1.id) LEFT JOIN t3 USING (id);
+ERROR 23000: Column 'id' in from clause is ambiguous
+SELECT id,t3.id FROM t1 JOIN t2 ON (t2.id=t1.id) LEFT JOIN t3 USING (id);
+ERROR 23000: Column 'id' in from clause is ambiguous
+SELECT id,t3.id FROM (t1 JOIN t2 ON (t2.id=t1.id)) LEFT JOIN t3 USING (id);
+ERROR 23000: Column 'id' in from clause is ambiguous
+drop table t1, t2, t3;
+create table t1 (a int(10),b int(10));
+create table t2 (a int(10),b int(10));
+insert into t1 values (1,10),(2,20),(3,30);
+insert into t2 values (1,10);
+select * from t1 inner join t2 using (A);
+a b b
+1 10 10
+select * from t1 inner join t2 using (a);
+a b b
+1 10 10
+drop table t1, t2;
+create table t1 (a int, c int);
+create table t2 (b int);
+create table t3 (b int, a int);
+create table t4 (c int);
+insert into t1 values (1,1);
+insert into t2 values (1);
+insert into t3 values (1,1);
+insert into t4 values (1);
+select * from t1 join t2 join t3 on (t2.b = t3.b and t1.a = t3.a);
+a c b b a
+1 1 1 1 1
+select * from t1, t2 join t3 on (t2.b = t3.b and t1.a = t3.a);
+ERROR 42S22: Unknown column 't1.a' in 'on clause'
+select * from t1 join t2 join t3 join t4 on (t1.a = t4.c and t2.b = t4.c);
+a c b b a c
+1 1 1 1 1 1
+select * from t1 join t2 join t4 using (c);
+c a b
+1 1 1
+drop table t1, t2, t3, t4;
+create table t1(x int, y int);
+create table t2(x int, y int);
+create table t3(x int, primary key(x));
+insert into t1 values (1, 1), (2, 1), (3, 1), (4, 3), (5, 6), (6, 6);
+insert into t2 values (1, 1), (2, 1), (3, 3), (4, 6), (5, 6);
+insert into t3 values (1), (2), (3), (4), (5);
+select t1.x, t3.x from t1, t2, t3 where t1.x = t2.x and t3.x >= t1.y and t3.x <= t2.y;
+x x
+1 1
+2 1
+3 1
+3 2
+3 3
+4 3
+4 4
+4 5
+drop table t1,t2,t3;
+create table t1 (id char(16) not null default '', primary key (id));
+insert into t1 values ('100'),('101'),('102');
+create table t2 (id char(16) default null);
+insert into t2 values (1);
+create view v1 as select t1.id from t1;
+create view v2 as select t2.id from t2;
+create view v3 as select (t1.id+2) as id from t1 natural left join t2;
+select t1.id from t1 left join v2 using (id);
+id
+100
+101
+102
+select t1.id from v2 right join t1 using (id);
+id
+100
+101
+102
+select t1.id from t1 left join v3 using (id);
+id
+100
+101
+102
+select * from t1 left join v2 using (id);
+id
+100
+101
+102
+select * from v2 right join t1 using (id);
+id
+100
+101
+102
+select * from t1 left join v3 using (id);
+id
+100
+101
+102
+select v1.id from v1 left join v2 using (id);
+id
+100
+101
+102
+select v1.id from v2 right join v1 using (id);
+id
+100
+101
+102
+select v1.id from v1 left join v3 using (id);
+id
+100
+101
+102
+select * from v1 left join v2 using (id);
+id
+100
+101
+102
+select * from v2 right join v1 using (id);
+id
+100
+101
+102
+select * from v1 left join v3 using (id);
+id
+100
+101
+102
+drop table t1, t2;
+drop view v1, v2, v3;
+create table t1 (id int(11) not null default '0');
+insert into t1 values (123),(191),(192);
+create table t2 (id char(16) character set utf8 not null);
+insert into t2 values ('58013'),('58014'),('58015'),('58016');
+create table t3 (a_id int(11) not null, b_id char(16) character set utf8);
+insert into t3 values (123,null),(123,null),(123,null),(123,null),(123,null),(123,'58013');
+select count(*)
+from t1 inner join (t3 left join t2 on t2.id = t3.b_id) on t1.id = t3.a_id;
+count(*)
+6
+select count(*)
+from t1 inner join (t2 right join t3 on t2.id = t3.b_id) on t1.id = t3.a_id;
+count(*)
+6
+drop table t1,t2,t3;
+create table t1 (a int);
+create table t2 (b int);
+create table t3 (c int);
+select * from t1 join t2 join t3 on (t1.a=t3.c);
+a b c
+select * from t1 join t2 left join t3 on (t1.a=t3.c);
+a b c
+select * from t1 join t2 right join t3 on (t1.a=t3.c);
+a b c
+select * from t1 join t2 straight_join t3 on (t1.a=t3.c);
+a b c
+drop table t1, t2 ,t3;
+create table t1(f1 int, f2 date);
+insert into t1 values(1,'2005-01-01'),(2,'2005-09-01'),(3,'2005-09-30'),
+(4,'2005-10-01'),(5,'2005-12-30');
+select * from t1 where f2 >= 0;
+f1 f2
+1 2005-01-01
+2 2005-09-01
+3 2005-09-30
+4 2005-10-01
+5 2005-12-30
+select * from t1 where f2 >= '0000-00-00';
+f1 f2
+1 2005-01-01
+2 2005-09-01
+3 2005-09-30
+4 2005-10-01
+5 2005-12-30
+select * from t1 where f2 >= '2005-09-31';
+f1 f2
+4 2005-10-01
+5 2005-12-30
+select * from t1 where f2 >= '2005-09-3a';
+f1 f2
+4 2005-10-01
+5 2005-12-30
+Warnings:
+Warning 1292 Incorrect date value: '2005-09-3a' for column 'f2' at row 1
+select * from t1 where f2 <= '2005-09-31';
+f1 f2
+1 2005-01-01
+2 2005-09-01
+3 2005-09-30
+select * from t1 where f2 <= '2005-09-3a';
+f1 f2
+1 2005-01-01
+2 2005-09-01
+3 2005-09-30
+Warnings:
+Warning 1292 Incorrect date value: '2005-09-3a' for column 'f2' at row 1
+drop table t1;
+create table t1 (f1 int, f2 int);
+insert into t1 values (1, 30), (2, 20), (3, 10);
+create algorithm=merge view v1 as select f1, f2 from t1;
+create algorithm=merge view v2 (f2, f1) as select f1, f2 from t1;
+create algorithm=merge view v3 as select t1.f1 as f2, t1.f2 as f1 from t1;
+select t1.f1 as x1, f1 from t1 order by t1.f1;
+x1 f1
+1 1
+2 2
+3 3
+select v1.f1 as x1, f1 from v1 order by v1.f1;
+x1 f1
+1 1
+2 2
+3 3
+select v2.f1 as x1, f1 from v2 order by v2.f1;
+x1 f1
+10 10
+20 20
+30 30
+select v3.f1 as x1, f1 from v3 order by v3.f1;
+x1 f1
+10 10
+20 20
+30 30
+select f1, f2, v1.f1 as x1 from v1 order by v1.f1;
+f1 f2 x1
+1 30 1
+2 20 2
+3 10 3
+select f1, f2, v2.f1 as x1 from v2 order by v2.f1;
+f1 f2 x1
+10 3 10
+20 2 20
+30 1 30
+select f1, f2, v3.f1 as x1 from v3 order by v3.f1;
+f1 f2 x1
+10 3 10
+20 2 20
+30 1 30
+drop table t1;
+drop view v1, v2, v3;
+CREATE TABLE t1(key_a int4 NOT NULL, optimus varchar(32), PRIMARY KEY(key_a));
+CREATE TABLE t2(key_a int4 NOT NULL, prime varchar(32), PRIMARY KEY(key_a));
+CREATE table t3(key_a int4 NOT NULL, key_b int4 NOT NULL, foo varchar(32),
+PRIMARY KEY(key_a,key_b));
+INSERT INTO t1 VALUES (0,'');
+INSERT INTO t1 VALUES (1,'i');
+INSERT INTO t1 VALUES (2,'j');
+INSERT INTO t1 VALUES (3,'k');
+INSERT INTO t2 VALUES (1,'r');
+INSERT INTO t2 VALUES (2,'s');
+INSERT INTO t2 VALUES (3,'t');
+INSERT INTO t3 VALUES (1,5,'x');
+INSERT INTO t3 VALUES (1,6,'y');
+INSERT INTO t3 VALUES (2,5,'xx');
+INSERT INTO t3 VALUES (2,6,'yy');
+INSERT INTO t3 VALUES (2,7,'zz');
+INSERT INTO t3 VALUES (3,5,'xxx');
+SELECT t2.key_a,foo
+FROM t1 INNER JOIN t2 ON t1.key_a = t2.key_a
+INNER JOIN t3 ON t1.key_a = t3.key_a
+WHERE t2.key_a=2 and key_b=5;
+key_a foo
+2 xx
+EXPLAIN SELECT t2.key_a,foo
+FROM t1 INNER JOIN t2 ON t1.key_a = t2.key_a
+INNER JOIN t3 ON t1.key_a = t3.key_a
+WHERE t2.key_a=2 and key_b=5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
+1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 Using index
+1 SIMPLE t3 const PRIMARY PRIMARY 8 const,const 1
+SELECT t2.key_a,foo
+FROM t1 INNER JOIN t2 ON t2.key_a = t1.key_a
+INNER JOIN t3 ON t1.key_a = t3.key_a
+WHERE t2.key_a=2 and key_b=5;
+key_a foo
+2 xx
+EXPLAIN SELECT t2.key_a,foo
+FROM t1 INNER JOIN t2 ON t2.key_a = t1.key_a
+INNER JOIN t3 ON t1.key_a = t3.key_a
+WHERE t2.key_a=2 and key_b=5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
+1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 Using index
+1 SIMPLE t3 const PRIMARY PRIMARY 8 const,const 1
+DROP TABLE t1,t2,t3;
+create table t1 (f1 int);
+insert into t1 values(1),(2);
+create table t2 (f2 int, f3 int, key(f2));
+insert into t2 values(1,1),(2,2);
+create table t3 (f4 int not null);
+insert into t3 values (2),(2),(2);
+select f1,(select count(*) from t2,t3 where f2=f1 and f3=f4) as count from t1;
+f1 count
+1 0
+2 3
+drop table t1,t2,t3;
+create table t1 (f1 int unique);
+create table t2 (f2 int unique);
+create table t3 (f3 int unique);
+insert into t1 values(1),(2);
+insert into t2 values(1),(2);
+insert into t3 values(1),(NULL);
+select * from t3 where f3 is null;
+f3
+NULL
+select t2.f2 from t1 left join t2 on f1=f2 join t3 on f1=f3 where f1=1;
+f2
+1
+drop table t1,t2,t3;
+create table t1(f1 char, f2 char not null);
+insert into t1 values(null,'a');
+create table t2 (f2 char not null);
+insert into t2 values('b');
+select * from t1 left join t2 on f1=t2.f2 where t1.f2='a';
+f1 f2 f2
+NULL a NULL
+drop table t1,t2;
+select * from (select * left join t on f1=f2) tt;
+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 'on f1=f2) tt' at line 1
+CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
+CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
+INSERT INTO t1 VALUES
+(10, 10), (20, 10), (30, 20), (40, 30), (50, 10), (60, 10);
+INSERT INTO t2 VALUES
+(10, 10, 'aaa'), (20, 10, 'bbb'), (30, 10, 'ccc'), (40, 20, 'ddd'),
+(50, 10, 'eee'), (60, 20, 'fff'), (70, 20, 'ggg'), (80, 30, 'hhh');
+SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
+FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
+sku sppr name sku pr
+20 10 bbb 10 10
+20 10 bbb 20 10
+EXPLAIN
+SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
+FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where
+DROP TABLE t1,t2;
+CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
+INSERT t1 SET i = 0;
+UPDATE t1 SET i = -1;
+Warnings:
+Warning 1264 Out of range value adjusted for column 'i' at row 1
+SELECT * FROM t1;
+i
+0
+UPDATE t1 SET i = CAST(i - 1 AS SIGNED);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'i' at row 1
+SELECT * FROM t1;
+i
+0
+UPDATE t1 SET i = i - 1;
+Warnings:
+Warning 1264 Out of range value adjusted for column 'i' at row 1
+SELECT * FROM t1;
+i
+255
+DROP TABLE t1;
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, b int, c int, e int, primary key(a,b,c));
+insert into t2 select A.a, B.a, C.a, C.a from t1 A, t1 B, t1 C;
+analyze table t2;
+Table Op Msg_type Msg_text
+test.t2 analyze status OK
+select 'In next EXPLAIN, B.rows must be exactly 10:' Z;
+Z
+In next EXPLAIN, B.rows must be exactly 10:
+explain select * from t2 A, t2 B where A.a=5 and A.b=5 and A.C<5
+and B.a=5 and B.b=A.e and (B.b =1 or B.b = 3 or B.b=5);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE A range PRIMARY PRIMARY 12 NULL 3 Using where
+1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
+drop table t1, t2;
+CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
+INSERT INTO t1 VALUES (1, 3), (9,4), (7,5), (4,5), (6,2),
+(3,1), (5,1), (8,9), (2,2), (0,9);
+CREATE TABLE t2 (c int, d int, f int, INDEX(c,f));
+INSERT INTO t2 VALUES
+(1,0,0), (1,0,1), (2,0,0), (2,0,1), (3,0,0), (4,0,1),
+(5,0,0), (5,0,1), (6,0,0), (0,0,1), (7,0,0), (7,0,1),
+(0,0,0), (0,0,1), (8,0,0), (8,0,1), (9,0,0), (9,0,1);
+EXPLAIN
+SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using where
+1 SIMPLE t2 ref c c 5 test.t1.a 2 Using where
+EXPLAIN
+SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using where
+1 SIMPLE t2 ref c c 5 test.t1.a 2 Using where
+DROP TABLE t1, t2;
+create table t1 (
+a int unsigned not null auto_increment primary key,
+b bit not null,
+c bit not null
+);
+create table t2 (
+a int unsigned not null auto_increment primary key,
+b bit not null,
+c int unsigned not null,
+d varchar(50)
+);
+insert into t1 (b,c) values (0,1), (0,1);
+insert into t2 (b,c) values (0,1);
+select t1.a, t1.b + 0, t1.c + 0, t2.a, t2.b + 0, t2.c, t2.d
+from t1 left outer join t2 on t1.a = t2.c and t2.b <> 1
+where t1.b <> 1 order by t1.a;
+a t1.b + 0 t1.c + 0 a t2.b + 0 c d
+1 0 1 1 0 1 NULL
+2 0 1 NULL NULL NULL NULL
+drop table t1,t2;
+SELECT 0.9888889889 * 1.011111411911;
+0.9888889889 * 1.011111411911
+0.9998769417899202067879
+prepare stmt from 'select 1 as " a "';
+Warnings:
+Warning 1466 Leading spaces are removed from name ' a '
+execute stmt;
+a
+1
+CREATE TABLE t1 (a int NOT NULL PRIMARY KEY, b int NOT NULL);
+INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
+CREATE TABLE t2 (c int NOT NULL, INDEX idx(c));
+INSERT INTO t2 VALUES
+(1), (1), (1), (1), (1), (1), (1), (1),
+(2), (2), (2), (2),
+(3), (3),
+(4);
+EXPLAIN SELECT b FROM t1, t2 WHERE b=c AND a=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 ref idx idx 4 const 7 Using index
+EXPLAIN SELECT b FROM t1, t2 WHERE b=c AND a=4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 ref idx idx 4 const 1 Using index
+DROP TABLE t1, t2;
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a int);
+INSERT INTO t1 VALUES (1,2), (2,NULL), (3,2);
+CREATE TABLE t2 (b int, c INT, INDEX idx1(b));
+INSERT INTO t2 VALUES (2,1), (3,2);
+CREATE TABLE t3 (d int, e int, INDEX idx1(d));
+INSERT INTO t3 VALUES (2,10), (2,20), (1,30), (2,40), (2,50);
+EXPLAIN
+SELECT * FROM t1 LEFT JOIN t2 ON t2.b=t1.a INNER JOIN t3 ON t3.d=t1.id
+WHERE t1.id=2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 const idx1 NULL NULL NULL 1
+1 SIMPLE t3 ref idx1 idx1 5 const 3 Using where
+SELECT * FROM t1 LEFT JOIN t2 ON t2.b=t1.a INNER JOIN t3 ON t3.d=t1.id
+WHERE t1.id=2;
+id a b c d e
+2 NULL NULL NULL 2 10
+2 NULL NULL NULL 2 20
+2 NULL NULL NULL 2 40
+2 NULL NULL NULL 2 50
+DROP TABLE t1,t2,t3;
+create table t1 (c1 varchar(1), c2 int, c3 int, c4 int, c5 int, c6 int,
+c7 int, c8 int, c9 int, fulltext key (`c1`));
+select distinct match (`c1`) against ('z') , c2, c3, c4,c5, c6,c7, c8
+from t1 where c9=1 order by c2, c2;
+match (`c1`) against ('z') c2 c3 c4 c5 c6 c7 c8
+drop table t1;
+CREATE TABLE t1 (pk varchar(10) PRIMARY KEY, fk varchar(16));
+CREATE TABLE t2 (pk varchar(16) PRIMARY KEY, fk varchar(10));
+INSERT INTO t1 VALUES
+('d','dddd'), ('i','iii'), ('a','aa'), ('b','bb'), ('g','gg'),
+('e','eee'), ('c','cccc'), ('h','hhh'), ('j','jjj'), ('f','fff');
+INSERT INTO t2 VALUES
+('jjj', 'j'), ('cc','c'), ('ccc','c'), ('aaa', 'a'), ('jjjj','j'),
+('hhh','h'), ('gg','g'), ('fff','f'), ('ee','e'), ('ffff','f'),
+('bbb','b'), ('ff','f'), ('cccc','c'), ('dddd','d'), ('jj','j'),
+('aaaa','a'), ('bb','b'), ('eeee','e'), ('aa','a'), ('hh','h');
+EXPLAIN SELECT t2.*
+FROM t1 JOIN t2 ON t2.fk=t1.pk
+WHERE t2.fk < 'c' AND t2.pk=t1.fk;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using where
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
+EXPLAIN SELECT t2.*
+FROM t1 JOIN t2 ON t2.fk=t1.pk
+WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using where
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
+EXPLAIN SELECT t2.*
+FROM t1 JOIN t2 ON t2.fk=t1.pk
+WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using where
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
+CREATE TABLE t2 (a int, b varchar(20) NOT NULL,
+PRIMARY KEY (a), UNIQUE KEY (b));
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+INSERT INTO t2 VALUES (1,'a'),(2,'b'),(3,'c');
+EXPLAIN SELECT t1.a FROM t1 LEFT JOIN t2 ON t2.b=t1.b WHERE t1.a=3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 const b b 22 const 1 Using index
+DROP TABLE t1,t2;
+CREATE TABLE t1(id int PRIMARY KEY, b int, e int);
+CREATE TABLE t2(i int, a int, INDEX si(i), INDEX ai(a));
+CREATE TABLE t3(a int PRIMARY KEY, c char(4), INDEX ci(c));
+INSERT INTO t1 VALUES
+(1,10,19), (2,20,22), (4,41,42), (9,93,95), (7, 77,79),
+(6,63,67), (5,55,58), (3,38,39), (8,81,89);
+INSERT INTO t2 VALUES
+(21,210), (41,410), (82,820), (83,830), (84,840),
+(65,650), (51,510), (37,370), (94,940), (76,760),
+(22,220), (33,330), (40,400), (95,950), (38,380),
+(67,670), (88,880), (57,570), (96,960), (97,970);
+INSERT INTO t3 VALUES
+(210,'bb'), (950,'ii'), (400,'ab'), (500,'ee'), (220,'gg'),
+(440,'gg'), (310,'eg'), (380,'ee'), (840,'bb'), (830,'ff'),
+(230,'aa'), (960,'ii'), (410,'aa'), (510,'ee'), (290,'bb'),
+(450,'gg'), (320,'dd'), (390,'hh'), (850,'jj'), (860,'ff');
+EXPLAIN
+SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
+WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
+t3.a=t2.a AND t3.c IN ('bb','ee');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 range si si 5 NULL 4 Using where
+1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
+EXPLAIN
+SELECT t3.a FROM t1,t2,t3
+WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
+t3.a=t2.a AND t3.c IN ('bb','ee') ;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 range si,ai si 5 NULL 4 Using where
+1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
+EXPLAIN
+SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
+WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
+t3.c IN ('bb','ee');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 range si si 5 NULL 2 Using where
+1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
+EXPLAIN
+SELECT t3.a FROM t1,t2,t3
+WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
+t3.c IN ('bb','ee');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t2 range si,ai si 5 NULL 2 Using where
+1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (a INT, b INT, KEY (a));
+INSERT INTO t1 VALUES (1,1),(2,2);
+EXPLAIN SELECT 1 FROM t1 WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
+EXPLAIN SELECT 1 FROM t1 IGNORE INDEX FOR JOIN (a) WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+EXPLAIN SELECT 1 FROM t1 USE INDEX FOR JOIN (a) WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
+EXPLAIN SELECT 1 FROM t1 FORCE INDEX FOR JOIN (a) WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
+DROP TABLE t1;
+CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int);
+CREATE TABLE t2 ( f11 int PRIMARY KEY );
+INSERT INTO t1 VALUES (1,1,1,0,0,0,0),(2,1,1,3,8,1,0),(3,1,1,4,12,1,0);
+INSERT INTO t2 VALUES (62);
+SELECT * FROM t1 LEFT JOIN t2 ON f11 = t1.checked_out GROUP BY f1 ORDER BY f2, f3, f4, f5 LIMIT 0, 1;
+f1 f2 f3 f4 f5 f6 checked_out f11
+1 1 1 0 0 0 0 NULL
+DROP TABLE t1, t2;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(a int);
+INSERT into t1 values (1), (2), (3);
+SELECT * FROM t1 LIMIT 2, -1;
+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 '-1' at line 1
+DROP TABLE t1;
+CREATE TABLE t1 (
+ID_with_null int NULL,
+ID_better int NOT NULL,
+INDEX idx1 (ID_with_null),
+INDEX idx2 (ID_better)
+);
+INSERT INTO t1 VALUES (1,1), (2,1), (null,3), (null,3), (null,3), (null,3);
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+SELECT COUNT(*) FROM t1 WHERE ID_with_null IS NULL;
+COUNT(*)
+128
+SELECT COUNT(*) FROM t1 WHERE ID_better=1;
+COUNT(*)
+2
+EXPLAIN SELECT * FROM t1 WHERE ID_better=1 AND ID_with_null IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+DROP INDEX idx1 ON t1;
+CREATE UNIQUE INDEX idx1 ON t1(ID_with_null);
+EXPLAIN SELECT * FROM t1 WHERE ID_better=1 AND ID_with_null IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+DROP TABLE t1;
+CREATE TABLE t1 (
+ID1_with_null int NULL,
+ID2_with_null int NULL,
+ID_better int NOT NULL,
+INDEX idx1 (ID1_with_null, ID2_with_null),
+INDEX idx2 (ID_better)
+);
+INSERT INTO t1 VALUES (1,1,1), (2,2,1), (3,null,3), (null,3,3), (null,null,3),
+(3,null,3), (null,3,3), (null,null,3), (3,null,3), (null,3,3), (null,null,3);
+INSERT INTO t1 SELECT * FROM t1 WHERE ID1_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID2_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID1_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID2_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID1_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID2_with_null IS NULL;
+SELECT COUNT(*) FROM t1 WHERE ID1_with_null IS NULL AND ID2_with_null=3;
+COUNT(*)
+24
+SELECT COUNT(*) FROM t1 WHERE ID1_with_null=3 AND ID2_with_null IS NULL;
+COUNT(*)
+24
+SELECT COUNT(*) FROM t1 WHERE ID1_with_null IS NULL AND ID2_with_null IS NULL;
+COUNT(*)
+192
+SELECT COUNT(*) FROM t1 WHERE ID_better=1;
+COUNT(*)
+2
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null=3 ;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null=3 AND ID2_with_null=3 IS NULL ;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+DROP INDEX idx1 ON t1;
+CREATE UNIQUE INDEX idx1 ON t1(ID1_with_null,ID2_with_null);
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null=3 ;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null=3 AND ID2_with_null IS NULL ;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null IS NULL;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+EXPLAIN SELECT * FROM t1
+WHERE ID_better=1 AND ID1_with_null IS NULL AND
+(ID2_with_null=1 OR ID2_with_null=2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref idx1,idx2 idx2 4 const 1 Using where
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, ts TIMESTAMP, KEY ts(ts));
+INSERT INTO t1 VALUES (30,"2006-01-03 23:00:00"), (31,"2006-01-03 23:00:00");
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+CREATE TABLE t2 (a INT, dt1 DATETIME, dt2 DATETIME, PRIMARY KEY (a));
+INSERT INTO t2 VALUES (30, "2006-01-01 00:00:00", "2999-12-31 00:00:00");
+INSERT INTO t2 SELECT a+1,dt1,dt2 FROM t2;
+ANALYZE TABLE t2;
+Table Op Msg_type Msg_text
+test.t2 analyze status OK
+EXPLAIN
+SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
+AND t1.ts BETWEEN t2.dt1 AND t2.dt2
+AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t1 range ts ts 4 NULL 1 Using where
+Warnings:
+Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
+SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
+AND t1.ts BETWEEN t2.dt1 AND t2.dt2
+AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
+a ts a dt1 dt2
+30 2006-01-03 23:00:00 30 2006-01-01 00:00:00 2999-12-31 00:00:00
+Warnings:
+Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
+DROP TABLE t1,t2;
+create table t1 (a bigint unsigned);
+insert into t1 values
+(if(1, 9223372036854775808, 1)),
+(case when 1 then 9223372036854775808 else 1 end),
+(coalesce(9223372036854775808, 1));
+select * from t1;
+a
+9223372036854775808
+9223372036854775808
+9223372036854775808
+drop table t1;
+create table t1 select
+if(1, 9223372036854775808, 1) i,
+case when 1 then 9223372036854775808 else 1 end c,
+coalesce(9223372036854775808, 1) co;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` decimal(19,0) NOT NULL default '0',
+ `c` decimal(19,0) NOT NULL default '0',
+ `co` decimal(19,0) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+select
+if(1, cast(1111111111111111111 as unsigned), 1) i,
+case when 1 then cast(1111111111111111111 as unsigned) else 1 end c,
+coalesce(cast(1111111111111111111 as unsigned), 1) co;
+i c co
+1111111111111111111 1111111111111111111 1111111111111111111
+CREATE TABLE t1 (name varchar(255));
+CREATE TABLE t2 (name varchar(255), n int, KEY (name(3)));
+INSERT INTO t1 VALUES ('ccc'), ('bb'), ('cc '), ('aa '), ('aa');
+INSERT INTO t2 VALUES ('bb',1), ('aa',2), ('cc ',3);
+INSERT INTO t2 VALUES (concat('cc ', 0x06), 4);
+INSERT INTO t2 VALUES ('cc',5), ('bb ',6), ('cc ',7);
+SELECT * FROM t2;
+name n
+bb 1
+aa 2
+cc 3
+cc  4
+cc 5
+bb 6
+cc 7
+SELECT * FROM t2 ORDER BY name;
+name n
+aa 2
+bb 1
+bb 6
+cc  4
+cc 3
+cc 5
+cc 7
+SELECT name, LENGTH(name), n FROM t2 ORDER BY name;
+name LENGTH(name) n
+aa 2 2
+bb 2 1
+bb 3 6
+cc  4 4
+cc 5 3
+cc 2 5
+cc 3 7
+EXPLAIN SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref name name 6 const 3 Using where
+SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+name LENGTH(name) n
+cc 5 3
+cc 2 5
+cc 3 7
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range name name 6 NULL 3 Using where
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+name LENGTH(name) n
+cc 5 3
+cc  4 4
+cc 2 5
+cc 3 7
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range name name 6 NULL 3 Using where; Using filesort
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+name LENGTH(name) n
+cc  4 4
+cc 5 3
+cc 2 5
+cc 3 7
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+1 SIMPLE t2 ref name name 6 test.t1.name 2
+SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+name name n
+ccc NULL NULL
+bb bb 1
+bb bb 6
+cc cc 3
+cc cc 5
+cc cc 7
+aa aa 2
+aa aa 2
+DROP TABLE t1,t2;
+CREATE TABLE t1 (name text);
+CREATE TABLE t2 (name text, n int, KEY (name(3)));
+INSERT INTO t1 VALUES ('ccc'), ('bb'), ('cc '), ('aa '), ('aa');
+INSERT INTO t2 VALUES ('bb',1), ('aa',2), ('cc ',3);
+INSERT INTO t2 VALUES (concat('cc ', 0x06), 4);
+INSERT INTO t2 VALUES ('cc',5), ('bb ',6), ('cc ',7);
+SELECT * FROM t2;
+name n
+bb 1
+aa 2
+cc 3
+cc  4
+cc 5
+bb 6
+cc 7
+SELECT * FROM t2 ORDER BY name;
+name n
+aa 2
+bb 1
+bb 6
+cc  4
+cc 3
+cc 5
+cc 7
+SELECT name, LENGTH(name), n FROM t2 ORDER BY name;
+name LENGTH(name) n
+aa 2 2
+bb 2 1
+bb 3 6
+cc  4 4
+cc 5 3
+cc 2 5
+cc 3 7
+EXPLAIN SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref name name 6 const 3 Using where
+SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+name LENGTH(name) n
+cc 5 3
+cc 2 5
+cc 3 7
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range name name 6 NULL 3 Using where
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+name LENGTH(name) n
+cc 5 3
+cc  4 4
+cc 2 5
+cc 3 7
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range name name 6 NULL 3 Using where; Using filesort
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+name LENGTH(name) n
+cc  4 4
+cc 5 3
+cc 2 5
+cc 3 7
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+1 SIMPLE t2 ref name name 6 test.t1.name 2
+SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+name name n
+ccc NULL NULL
+bb bb 1
+bb bb 6
+cc cc 3
+cc cc 5
+cc cc 7
+aa aa 2
+aa aa 2
+DROP TABLE t1,t2;
+CREATE TABLE t1 (
+access_id int NOT NULL default '0',
+name varchar(20) default NULL,
+rank int NOT NULL default '0',
+KEY idx (access_id)
+);
+CREATE TABLE t2 (
+faq_group_id int NOT NULL default '0',
+faq_id int NOT NULL default '0',
+access_id int default NULL,
+UNIQUE KEY idx1 (faq_id),
+KEY idx2 (faq_group_id,faq_id)
+);
+INSERT INTO t1 VALUES
+(1,'Everyone',2),(2,'Help',3),(3,'Technical Support',1),(4,'Chat User',4);
+INSERT INTO t2 VALUES
+(261,265,1),(490,494,1);
+SELECT t2.faq_id
+FROM t1 INNER JOIN t2 IGNORE INDEX (idx1)
+ON (t1.access_id = t2.access_id)
+LEFT JOIN t2 t
+ON (t.faq_group_id = t2.faq_group_id AND
+find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
+WHERE
+t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
+faq_id
+265
+SELECT t2.faq_id
+FROM t1 INNER JOIN t2
+ON (t1.access_id = t2.access_id)
+LEFT JOIN t2 t
+ON (t.faq_group_id = t2.faq_group_id AND
+find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
+WHERE
+t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
+faq_id
+265
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT, b INT, KEY inx (b,a));
+INSERT INTO t1 VALUES (1,1), (1,2), (1,3), (1,4), (1,5), (1, 6), (1,7);
+EXPLAIN SELECT COUNT(*) FROM t1 f1 INNER JOIN t1 f2
+ON ( f1.b=f2.b AND f1.a<f2.a )
+WHERE 1 AND f1.b NOT IN (100,2232,3343,51111);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE f1 index inx inx 10 NULL 7 Using where; Using index
+1 SIMPLE f2 ref inx inx 5 test.f1.b 1 Using where; Using index
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT, c2 INT);
+INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
+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 COUNT(c2)))))))))))))))))))))))))))))))) > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
+31 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
+32 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
+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 Extra
+1 SIMPLE 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;
+SELECT 1 AS ` `;
+
+1
+Warnings:
+Warning 1474 Name ' ' has become ''
+SELECT 1 AS ` `;
+
+1
+Warnings:
+Warning 1474 Name ' ' has become ''
+SELECT 1 AS ` x`;
+x
+1
+Warnings:
+Warning 1466 Leading spaces are removed from name ' x'
+CREATE VIEW v1 AS SELECT 1 AS ` `;
+Warnings:
+Warning 1474 Name ' ' has become ''
+SELECT `` FROM v1;
+
+1
+CREATE VIEW v2 AS SELECT 1 AS ` `;
+Warnings:
+Warning 1474 Name ' ' has become ''
+SELECT `` FROM v2;
+
+1
+CREATE VIEW v3 AS SELECT 1 AS ` x`;
+Warnings:
+Warning 1466 Leading spaces are removed from name ' x'
+SELECT `x` FROM v3;
+x
+1
+DROP VIEW v1, v2, v3;
+End of 5.0 tests
diff --git a/mysql-test/r/select_found.result b/mysql-test/r/select_found.result
index b8178bbeb52..7abd65beb46 100644
--- a/mysql-test/r/select_found.result
+++ b/mysql-test/r/select_found.result
@@ -84,7 +84,7 @@ UNIQUE KEY e_n (email,name)
EXPLAIN SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system PRIMARY,kid NULL NULL NULL 0 const row not found
-1 SIMPLE t2 index NULL e_n 100 NULL 200
+1 SIMPLE t2 index NULL e_n 104 NULL 200
SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
email
email1
diff --git a/mysql-test/r/select_safe.result b/mysql-test/r/select_safe.result
index 7a29db42dd9..feac9efcb13 100644
--- a/mysql-test/r/select_safe.result
+++ b/mysql-test/r/select_safe.result
@@ -60,9 +60,6 @@ a b
3 a
4 a
5 a
-SELECT @@MAX_SEEKS_FOR_KEY;
-@@MAX_SEEKS_FOR_KEY
-4294967295
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
@@ -87,7 +84,7 @@ set local max_join_size=8;
select * from (select * from t1) x;
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
set local max_join_size=1;
-select * from (select * from t1 a, t1 b) x;
+select * from (select a.a as aa, b.a as ba from t1 a, t1 b) x;
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
set local max_join_size=1;
select * from (select 1 union select 2 union select 3) x;
diff --git a/mysql-test/r/server_id.require b/mysql-test/r/server_id.require
new file mode 100644
index 00000000000..adffcc483b1
--- /dev/null
+++ b/mysql-test/r/server_id.require
@@ -0,0 +1,2 @@
+Variable_name Value
+server_id 1
diff --git a/mysql-test/r/server_id1.require b/mysql-test/r/server_id1.require
new file mode 100644
index 00000000000..666c94ef633
--- /dev/null
+++ b/mysql-test/r/server_id1.require
@@ -0,0 +1,2 @@
+Variable_name Value
+server_id 102
diff --git a/mysql-test/r/shm.result b/mysql-test/r/shm.result
new file mode 100644
index 00000000000..09adebad10f
--- /dev/null
+++ b/mysql-test/r/shm.result
@@ -0,0 +1,2155 @@
+drop table if exists t1,t2,t3,t4;
+CREATE TABLE t1 (
+Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
+Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
+);
+INSERT INTO t1 VALUES (9410,9412);
+select period from t1;
+period
+9410
+select * from t1;
+Period Varor_period
+9410 9412
+select t1.* from t1;
+Period Varor_period
+9410 9412
+CREATE TABLE t2 (
+auto int not null auto_increment,
+fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
+companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
+fld3 char(30) DEFAULT '' NOT NULL,
+fld4 char(35) DEFAULT '' NOT NULL,
+fld5 char(35) DEFAULT '' NOT NULL,
+fld6 char(4) DEFAULT '' NOT NULL,
+UNIQUE fld1 (fld1),
+KEY fld3 (fld3),
+PRIMARY KEY (auto)
+);
+select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
+fld3
+imaginable
+select fld3 from t2 where fld3 like "%cultivation" ;
+fld3
+cultivation
+select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3,companynr from t2 where companynr = 58 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3 from t2 order by fld3 desc limit 10;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select fld3 from t2 order by fld3 desc limit 5;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+select fld3 from t2 order by fld3 desc limit 5,5;
+fld3
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select t2.fld3 from t2 where fld3 = 'honeysuckle';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'h%le';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
+fld3
+select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
+fld3
+explain select t2.fld3 from t2 where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld1) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3,not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+explain select fld3 from t2 use index (not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+fld3
+honeysuckle
+honoring
+explain select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld3 fld3 30 NULL 2 Using where; Using index
+select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
+fld1 fld3
+148504 Colombo
+068305 Colombo
+000000 nondecreasing
+select fld1,fld3 from t2 where companynr = 37 and fld3 = 'appendixes';
+fld1 fld3
+232605 appendixes
+1232605 appendixes
+1232606 appendixes
+1232607 appendixes
+1232608 appendixes
+1232609 appendixes
+select fld1 from t2 where fld1=250501 or fld1="250502";
+fld1
+250501
+250502
+explain select fld1 from t2 where fld1=250501 or fld1="250502";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 2 Using where; Using index
+select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+fld1
+250501
+250502
+250505
+250601
+explain select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
+select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
+fld1 fld3
+218401 faithful
+018007 fanatic
+228311 fated
+018017 featherweight
+218022 feed
+088303 feminine
+058004 Fenton
+038017 fetched
+018054 fetters
+208101 fiftieth
+238007 filial
+013606 fingerings
+218008 finishers
+038205 firearm
+188505 fitting
+202301 Fitzpatrick
+238008 fixedly
+012001 flanking
+018103 flint
+018104 flopping
+188007 flurried
+013602 foldout
+226205 foothill
+232102 forgivably
+228306 forthcoming
+186002 freakish
+208113 freest
+231315 freezes
+036002 funereal
+226209 furnishings
+198006 furthermore
+select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
+fld3
+select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
+fld3
+Chantilly
+select fld1,fld3 from t2 where fld1 like "25050%";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select fld1,fld3 from t2 where fld1 like "25050_";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select distinct companynr from t2;
+companynr
+00
+37
+36
+50
+58
+29
+40
+53
+65
+41
+34
+68
+select distinct companynr from t2 order by companynr;
+companynr
+00
+29
+34
+36
+37
+40
+41
+50
+53
+58
+65
+68
+select distinct companynr from t2 order by companynr desc;
+companynr
+68
+65
+58
+53
+50
+41
+40
+37
+36
+34
+29
+00
+select distinct t2.fld3,period from t2,t1 where companynr=37 and fld3 like "O%";
+fld3 period
+obliterates 9410
+offload 9410
+opaquely 9410
+organizer 9410
+overestimating 9410
+overlay 9410
+select distinct fld3 from t2 where companynr = 34 order by fld3;
+fld3
+absentee
+accessed
+ahead
+alphabetic
+Asiaticizations
+attitude
+aye
+bankruptcies
+belays
+Blythe
+bomb
+boulevard
+bulldozes
+cannot
+caressing
+charcoal
+checksumming
+chess
+clubroom
+colorful
+cosy
+creator
+crying
+Darius
+diffusing
+duality
+Eiffel
+Epiphany
+Ernestine
+explorers
+exterminated
+famine
+forked
+Gershwins
+heaving
+Hodges
+Iraqis
+Italianization
+Lagos
+landslide
+libretto
+Majorca
+mastering
+narrowed
+occurred
+offerers
+Palestine
+Peruvianizes
+pharmaceutic
+poisoning
+population
+Pygmalion
+rats
+realest
+recording
+regimented
+retransmitting
+reviver
+rouses
+scars
+sicker
+sleepwalk
+stopped
+sugars
+translatable
+uncles
+unexpected
+uprisings
+versatility
+vest
+select distinct fld3 from t2 limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct fld3 from t2 having fld3 like "A%" limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%";
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+Adl
+adm
+Ado
+ads
+adv
+aer
+aff
+afi
+afl
+afo
+agi
+ahe
+aim
+air
+Ald
+alg
+ali
+all
+alp
+alr
+ama
+ame
+amm
+ana
+and
+ane
+Ang
+ani
+Ann
+Ant
+api
+app
+aqu
+Ara
+arc
+Arm
+arr
+Art
+Asi
+ask
+asp
+ass
+ast
+att
+aud
+Aug
+aut
+ave
+avo
+awe
+aye
+Azt
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" order by a limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%" limit 10;
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+create table t3 (
+period int not null,
+name char(32) not null,
+companynr int not null,
+price double(11,0),
+price2 double(11,0),
+key (period),
+key (name)
+);
+create temporary table tmp engine = myisam select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+alter table t3 add t2nr int not null auto_increment primary key first;
+drop table tmp;
+SET SQL_BIG_TABLES=1;
+select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10;
+namn
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+SET SQL_BIG_TABLES=0;
+select distinct concat(fld3," ",fld3) from t2,t3 where t2.fld1=t3.t2nr order by fld3 limit 10;
+concat(fld3," ",fld3)
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+select distinct fld5 from t2 limit 10;
+fld5
+neat
+Steinberg
+jarring
+tinily
+balled
+persist
+attainments
+fanatic
+measures
+rightfulness
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=1;
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=0;
+select distinct fld3,repeat("a",length(fld3)),count(*) from t2 group by companynr,fld3 limit 100,10;
+fld3 repeat("a",length(fld3)) count(*)
+circus aaaaaa 1
+cited aaaaa 1
+Colombo aaaaaaa 1
+congresswoman aaaaaaaaaaaaa 1
+contrition aaaaaaaaaa 1
+corny aaaaa 1
+cultivation aaaaaaaaaaa 1
+definiteness aaaaaaaaaaaa 1
+demultiplex aaaaaaaaaaa 1
+disappointing aaaaaaaaaaaaa 1
+select distinct companynr,rtrim(space(512+companynr)) from t3 order by 1,2;
+companynr rtrim(space(512+companynr))
+37
+78
+101
+154
+311
+447
+512
+select distinct fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by fld3;
+fld3
+explain select t3.t2nr,fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by t3.t2nr,fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL fld1 NULL NULL NULL 1199 Using where; Using temporary; Using filesort
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.fld1 1 Using where; Using index
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index period period 4 NULL 41810
+1 SIMPLE t1 ref period period 4 test.t3.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index period period 4 NULL 41810
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+select period from t1;
+period
+9410
+select period from t1 where period=1900;
+period
+select fld3,period from t1,t2 where fld1 = 011401 order by period;
+fld3 period
+breaking 9410
+select fld3,period from t2,t3 where t2.fld1 = 011401 and t2.fld1=t3.t2nr and t3.period=1001;
+fld3 period
+breaking 1001
+explain select fld3,period from t2,t3 where t2.fld1 = 011401 and t3.t2nr=t2.fld1 and 1001 = t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const fld1 fld1 4 const 1
+1 SIMPLE t3 const PRIMARY,period PRIMARY 4 const 1
+select fld3,period from t2,t1 where companynr*10 = 37*10;
+fld3 period
+breaking 9410
+Romans 9410
+intercepted 9410
+bewilderingly 9410
+astound 9410
+admonishing 9410
+sumac 9410
+flanking 9410
+combed 9410
+subjective 9410
+scatterbrain 9410
+Eulerian 9410
+Kane 9410
+overlay 9410
+perturb 9410
+goblins 9410
+annihilates 9410
+Wotan 9410
+snatching 9410
+concludes 9410
+laterally 9410
+yelped 9410
+grazing 9410
+Baird 9410
+celery 9410
+misunderstander 9410
+handgun 9410
+foldout 9410
+mystic 9410
+succumbed 9410
+Nabisco 9410
+fingerings 9410
+aging 9410
+afield 9410
+ammonium 9410
+boat 9410
+intelligibility 9410
+Augustine 9410
+teethe 9410
+dreaded 9410
+scholastics 9410
+audiology 9410
+wallet 9410
+parters 9410
+eschew 9410
+quitter 9410
+neat 9410
+Steinberg 9410
+jarring 9410
+tinily 9410
+balled 9410
+persist 9410
+attainments 9410
+fanatic 9410
+measures 9410
+rightfulness 9410
+capably 9410
+impulsive 9410
+starlet 9410
+terminators 9410
+untying 9410
+announces 9410
+featherweight 9410
+pessimist 9410
+daughter 9410
+decliner 9410
+lawgiver 9410
+stated 9410
+readable 9410
+attrition 9410
+cascade 9410
+motors 9410
+interrogate 9410
+pests 9410
+stairway 9410
+dopers 9410
+testicle 9410
+Parsifal 9410
+leavings 9410
+postulation 9410
+squeaking 9410
+contrasted 9410
+leftover 9410
+whiteners 9410
+erases 9410
+Punjab 9410
+Merritt 9410
+Quixotism 9410
+sweetish 9410
+dogging 9410
+scornfully 9410
+bellow 9410
+bills 9410
+cupboard 9410
+sureties 9410
+puddings 9410
+fetters 9410
+bivalves 9410
+incurring 9410
+Adolph 9410
+pithed 9410
+Miles 9410
+trimmings 9410
+tragedies 9410
+skulking 9410
+flint 9410
+flopping 9410
+relaxing 9410
+offload 9410
+suites 9410
+lists 9410
+animized 9410
+multilayer 9410
+standardizes 9410
+Judas 9410
+vacuuming 9410
+dentally 9410
+humanness 9410
+inch 9410
+Weissmuller 9410
+irresponsibly 9410
+luckily 9410
+culled 9410
+medical 9410
+bloodbath 9410
+subschema 9410
+animals 9410
+Micronesia 9410
+repetitions 9410
+Antares 9410
+ventilate 9410
+pityingly 9410
+interdependent 9410
+Graves 9410
+neonatal 9410
+chafe 9410
+honoring 9410
+realtor 9410
+elite 9410
+funereal 9410
+abrogating 9410
+sorters 9410
+Conley 9410
+lectured 9410
+Abraham 9410
+Hawaii 9410
+cage 9410
+hushes 9410
+Simla 9410
+reporters 9410
+Dutchman 9410
+descendants 9410
+groupings 9410
+dissociate 9410
+coexist 9410
+Beebe 9410
+Taoism 9410
+Connally 9410
+fetched 9410
+checkpoints 9410
+rusting 9410
+galling 9410
+obliterates 9410
+traitor 9410
+resumes 9410
+analyzable 9410
+terminator 9410
+gritty 9410
+firearm 9410
+minima 9410
+Selfridge 9410
+disable 9410
+witchcraft 9410
+betroth 9410
+Manhattanize 9410
+imprint 9410
+peeked 9410
+swelling 9410
+interrelationships 9410
+riser 9410
+Gandhian 9410
+peacock 9410
+bee 9410
+kanji 9410
+dental 9410
+scarf 9410
+chasm 9410
+insolence 9410
+syndicate 9410
+alike 9410
+imperial 9410
+convulsion 9410
+railway 9410
+validate 9410
+normalizes 9410
+comprehensive 9410
+chewing 9410
+denizen 9410
+schemer 9410
+chronicle 9410
+Kline 9410
+Anatole 9410
+partridges 9410
+brunch 9410
+recruited 9410
+dimensions 9410
+Chicana 9410
+announced 9410
+praised 9410
+employing 9410
+linear 9410
+quagmire 9410
+western 9410
+relishing 9410
+serving 9410
+scheduling 9410
+lore 9410
+eventful 9410
+arteriole 9410
+disentangle 9410
+cured 9410
+Fenton 9410
+avoidable 9410
+drains 9410
+detectably 9410
+husky 9410
+impelling 9410
+undoes 9410
+evened 9410
+squeezes 9410
+destroyer 9410
+rudeness 9410
+beaner 9410
+boorish 9410
+Everhart 9410
+encompass 9410
+mushrooms 9410
+Alison 9410
+externally 9410
+pellagra 9410
+cult 9410
+creek 9410
+Huffman 9410
+Majorca 9410
+governing 9410
+gadfly 9410
+reassigned 9410
+intentness 9410
+craziness 9410
+psychic 9410
+squabbled 9410
+burlesque 9410
+capped 9410
+extracted 9410
+DiMaggio 9410
+exclamation 9410
+subdirectory 9410
+Gothicism 9410
+feminine 9410
+metaphysically 9410
+sanding 9410
+Miltonism 9410
+freakish 9410
+index 9410
+straight 9410
+flurried 9410
+denotative 9410
+coming 9410
+commencements 9410
+gentleman 9410
+gifted 9410
+Shanghais 9410
+sportswriting 9410
+sloping 9410
+navies 9410
+leaflet 9410
+shooter 9410
+Joplin 9410
+babies 9410
+assails 9410
+admiring 9410
+swaying 9410
+Goldstine 9410
+fitting 9410
+Norwalk 9410
+analogy 9410
+deludes 9410
+cokes 9410
+Clayton 9410
+exhausts 9410
+causality 9410
+sating 9410
+icon 9410
+throttles 9410
+communicants 9410
+dehydrate 9410
+priceless 9410
+publicly 9410
+incidentals 9410
+commonplace 9410
+mumbles 9410
+furthermore 9410
+cautioned 9410
+parametrized 9410
+registration 9410
+sadly 9410
+positioning 9410
+babysitting 9410
+eternal 9410
+hoarder 9410
+congregates 9410
+rains 9410
+workers 9410
+sags 9410
+unplug 9410
+garage 9410
+boulder 9410
+specifics 9410
+Teresa 9410
+Winsett 9410
+convenient 9410
+buckboards 9410
+amenities 9410
+resplendent 9410
+sews 9410
+participated 9410
+Simon 9410
+certificates 9410
+Fitzpatrick 9410
+Evanston 9410
+misted 9410
+textures 9410
+save 9410
+count 9410
+rightful 9410
+chaperone 9410
+Lizzy 9410
+clenched 9410
+effortlessly 9410
+accessed 9410
+beaters 9410
+Hornblower 9410
+vests 9410
+indulgences 9410
+infallibly 9410
+unwilling 9410
+excrete 9410
+spools 9410
+crunches 9410
+overestimating 9410
+ineffective 9410
+humiliation 9410
+sophomore 9410
+star 9410
+rifles 9410
+dialysis 9410
+arriving 9410
+indulge 9410
+clockers 9410
+languages 9410
+Antarctica 9410
+percentage 9410
+ceiling 9410
+specification 9410
+regimented 9410
+ciphers 9410
+pictures 9410
+serpents 9410
+allot 9410
+realized 9410
+mayoral 9410
+opaquely 9410
+hostess 9410
+fiftieth 9410
+incorrectly 9410
+decomposition 9410
+stranglings 9410
+mixture 9410
+electroencephalography 9410
+similarities 9410
+charges 9410
+freest 9410
+Greenberg 9410
+tinting 9410
+expelled 9410
+warm 9410
+smoothed 9410
+deductions 9410
+Romano 9410
+bitterroot 9410
+corset 9410
+securing 9410
+environing 9410
+cute 9410
+Crays 9410
+heiress 9410
+inform 9410
+avenge 9410
+universals 9410
+Kinsey 9410
+ravines 9410
+bestseller 9410
+equilibrium 9410
+extents 9410
+relatively 9410
+pressure 9410
+critiques 9410
+befouled 9410
+rightfully 9410
+mechanizing 9410
+Latinizes 9410
+timesharing 9410
+Aden 9410
+embassies 9410
+males 9410
+shapelessly 9410
+mastering 9410
+Newtonian 9410
+finishers 9410
+abates 9410
+teem 9410
+kiting 9410
+stodgy 9410
+feed 9410
+guitars 9410
+airships 9410
+store 9410
+denounces 9410
+Pyle 9410
+Saxony 9410
+serializations 9410
+Peruvian 9410
+taxonomically 9410
+kingdom 9410
+stint 9410
+Sault 9410
+faithful 9410
+Ganymede 9410
+tidiness 9410
+gainful 9410
+contrary 9410
+Tipperary 9410
+tropics 9410
+theorizers 9410
+renew 9410
+already 9410
+terminal 9410
+Hegelian 9410
+hypothesizer 9410
+warningly 9410
+journalizing 9410
+nested 9410
+Lars 9410
+saplings 9410
+foothill 9410
+labeled 9410
+imperiously 9410
+reporters 9410
+furnishings 9410
+precipitable 9410
+discounts 9410
+excises 9410
+Stalin 9410
+despot 9410
+ripeness 9410
+Arabia 9410
+unruly 9410
+mournfulness 9410
+boom 9410
+slaughter 9410
+Sabine 9410
+handy 9410
+rural 9410
+organizer 9410
+shipyard 9410
+civics 9410
+inaccuracy 9410
+rules 9410
+juveniles 9410
+comprised 9410
+investigations 9410
+stabilizes 9410
+seminaries 9410
+Hunter 9410
+sporty 9410
+test 9410
+weasels 9410
+CERN 9410
+tempering 9410
+afore 9410
+Galatean 9410
+techniques 9410
+error 9410
+veranda 9410
+severely 9410
+Cassites 9410
+forthcoming 9410
+guides 9410
+vanish 9410
+lied 9410
+sawtooth 9410
+fated 9410
+gradually 9410
+widens 9410
+preclude 9410
+evenhandedly 9410
+percentage 9410
+disobedience 9410
+humility 9410
+gleaning 9410
+petted 9410
+bloater 9410
+minion 9410
+marginal 9410
+apiary 9410
+measures 9410
+precaution 9410
+repelled 9410
+primary 9410
+coverings 9410
+Artemia 9410
+navigate 9410
+spatial 9410
+Gurkha 9410
+meanwhile 9410
+Melinda 9410
+Butterfield 9410
+Aldrich 9410
+previewing 9410
+glut 9410
+unaffected 9410
+inmate 9410
+mineral 9410
+impending 9410
+meditation 9410
+ideas 9410
+miniaturizes 9410
+lewdly 9410
+title 9410
+youthfulness 9410
+creak 9410
+Chippewa 9410
+clamored 9410
+freezes 9410
+forgivably 9410
+reduce 9410
+McGovern 9410
+Nazis 9410
+epistle 9410
+socializes 9410
+conceptions 9410
+Kevin 9410
+uncovering 9410
+chews 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+raining 9410
+infest 9410
+compartment 9410
+minting 9410
+ducks 9410
+roped 9410
+waltz 9410
+Lillian 9410
+repressions 9410
+chillingly 9410
+noncritical 9410
+lithograph 9410
+spongers 9410
+parenthood 9410
+posed 9410
+instruments 9410
+filial 9410
+fixedly 9410
+relives 9410
+Pandora 9410
+watering 9410
+ungrateful 9410
+secures 9410
+poison 9410
+dusted 9410
+encompasses 9410
+presentation 9410
+Kantian 9410
+select fld3,period,price,price2 from t2,t3 where t2.fld1=t3.t2nr and period >= 1001 and period <= 1002 and t2.companynr = 37 order by fld3,period, price;
+fld3 period price price2
+admonishing 1002 28357832 8723648
+analyzable 1002 28357832 8723648
+annihilates 1001 5987435 234724
+Antares 1002 28357832 8723648
+astound 1001 5987435 234724
+audiology 1001 5987435 234724
+Augustine 1002 28357832 8723648
+Baird 1002 28357832 8723648
+bewilderingly 1001 5987435 234724
+breaking 1001 5987435 234724
+Conley 1001 5987435 234724
+dentally 1002 28357832 8723648
+dissociate 1002 28357832 8723648
+elite 1001 5987435 234724
+eschew 1001 5987435 234724
+Eulerian 1001 5987435 234724
+flanking 1001 5987435 234724
+foldout 1002 28357832 8723648
+funereal 1002 28357832 8723648
+galling 1002 28357832 8723648
+Graves 1001 5987435 234724
+grazing 1001 5987435 234724
+groupings 1001 5987435 234724
+handgun 1001 5987435 234724
+humility 1002 28357832 8723648
+impulsive 1002 28357832 8723648
+inch 1001 5987435 234724
+intelligibility 1001 5987435 234724
+jarring 1001 5987435 234724
+lawgiver 1001 5987435 234724
+lectured 1002 28357832 8723648
+Merritt 1002 28357832 8723648
+neonatal 1001 5987435 234724
+offload 1002 28357832 8723648
+parters 1002 28357832 8723648
+pityingly 1002 28357832 8723648
+puddings 1002 28357832 8723648
+Punjab 1001 5987435 234724
+quitter 1002 28357832 8723648
+realtor 1001 5987435 234724
+relaxing 1001 5987435 234724
+repetitions 1001 5987435 234724
+resumes 1001 5987435 234724
+Romans 1002 28357832 8723648
+rusting 1001 5987435 234724
+scholastics 1001 5987435 234724
+skulking 1002 28357832 8723648
+stated 1002 28357832 8723648
+suites 1002 28357832 8723648
+sureties 1001 5987435 234724
+testicle 1002 28357832 8723648
+tinily 1002 28357832 8723648
+tragedies 1001 5987435 234724
+trimmings 1001 5987435 234724
+vacuuming 1001 5987435 234724
+ventilate 1001 5987435 234724
+wallet 1001 5987435 234724
+Weissmuller 1002 28357832 8723648
+Wotan 1002 28357832 8723648
+select t2.fld1,fld3,period,price,price2 from t2,t3 where t2.fld1>= 18201 and t2.fld1 <= 18811 and t2.fld1=t3.t2nr and period = 1001 and t2.companynr = 37;
+fld1 fld3 period price price2
+018201 relaxing 1001 5987435 234724
+018601 vacuuming 1001 5987435 234724
+018801 inch 1001 5987435 234724
+018811 repetitions 1001 5987435 234724
+create table t4 (
+companynr tinyint(2) unsigned zerofill NOT NULL default '00',
+companyname char(30) NOT NULL default '',
+PRIMARY KEY (companynr),
+UNIQUE KEY companyname(companyname)
+) ENGINE=MyISAM MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
+select STRAIGHT_JOIN t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select SQL_SMALL_RESULT t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select * from t1,t1 t12;
+Period Varor_period Period Varor_period
+9410 9412 9410 9412
+select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
+fld1 fld1
+250501 250501
+250502 250501
+250503 250501
+250504 250501
+250505 250501
+250501 250502
+250502 250502
+250503 250502
+250504 250502
+250505 250502
+250501 250503
+250502 250503
+250503 250503
+250504 250503
+250505 250503
+250501 250504
+250502 250504
+250503 250504
+250504 250504
+250505 250504
+250501 250505
+250502 250505
+250503 250505
+250504 250505
+250505 250505
+insert into t2 (fld1, companynr) values (999999,99);
+select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+companynr companyname
+99 NULL
+select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
+count(*)
+1199
+explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+companynr companyname
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+count(*)
+1200
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+delete from t2 where fld1=999999;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+companynr companynr
+37 36
+41 40
+explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t2.fld1 = 38208 or t2.fld1 = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t3.t2nr = 38208 or t3.t2nr = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select period from t1 where (((period > 0) or period < 10000 or (period = 1900)) and (period=1900 and period <= 1901) or (period=1903 and (period=1903)) and period>=1902) or ((period=1904 or period=1905) or (period=1906 or period>1907)) or (period=1908 and period = 1909);
+period
+9410
+select period from t1 where ((period > 0 and period < 1) or (((period > 0 and period < 100) and (period > 10)) or (period > 10)) or (period > 0 and (period > 5 or period > 6)));
+period
+9410
+select a.fld1 from t2 as a,t2 b where ((a.fld1 = 250501 and a.fld1=b.fld1) or a.fld1=250502 or a.fld1=250503 or (a.fld1=250505 and a.fld1<=b.fld1 and b.fld1>=a.fld1)) and a.fld1=b.fld1;
+fld1
+250501
+250502
+250503
+250505
+select fld1 from t2 where fld1 in (250502,98005,98006,250503,250605,250606) and fld1 >=250502 and fld1 not in (250605,250606);
+fld1
+250502
+250503
+select fld1 from t2 where fld1 between 250502 and 250504;
+fld1
+250502
+250503
+250504
+select fld3 from t2 where (((fld3 like "_%L%" ) or (fld3 like "%ok%")) and ( fld3 like "L%" or fld3 like "G%")) and fld3 like "L%" ;
+fld3
+label
+labeled
+labeled
+landslide
+laterally
+leaflet
+lewdly
+Lillian
+luckily
+select count(*) from t1;
+count(*)
+1
+select companynr,count(*),sum(fld1) from t2 group by companynr;
+companynr count(*) sum(fld1)
+00 82 10355753
+29 95 14473298
+34 70 17788966
+36 215 22786296
+37 588 83602098
+40 37 6618386
+41 52 12816335
+50 11 1595438
+53 4 793210
+58 23 2254293
+65 10 2284055
+68 12 3097288
+select companynr,count(*) from t2 group by companynr order by companynr desc limit 5;
+companynr count(*)
+68 12
+65 10
+58 23
+53 4
+50 11
+select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+Warnings:
+Note 1003 select count(0) AS `count(*)`,min(`test`.`t2`.`fld4`) AS `min(fld4)`,max(`test`.`t2`.`fld4`) AS `max(fld4)`,sum(`test`.`t2`.`fld1`) AS `sum(fld1)`,avg(`test`.`t2`.`fld1`) AS `avg(fld1)`,std(`test`.`t2`.`fld1`) AS `std(fld1)`,variance(`test`.`t2`.`fld1`) AS `variance(fld1)` from `test`.`t2` where ((`test`.`t2`.`companynr` = 34) and (`test`.`t2`.`fld4` <> _latin1''))
+select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
+companynr count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+00 82 Anthony windmills 10355753 126289.6707 115550.9757 13352027981.7087
+29 95 abut wetness 14473298 152350.5053 8368.5480 70032594.9026
+34 70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+select companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select /*! SQL_SMALL_RESULT */ companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select companynr,count(price),sum(price),min(price),max(price),avg(price) from t3 group by companynr ;
+companynr count(price) sum(price) min(price) max(price) avg(price)
+37 12543 309394878010 5987435 39654943 24666736.6667
+78 8362 414611089292 726498 98439034 49582766.0000
+101 4181 3489454238 834598 834598 834598.0000
+154 4181 4112197254950 983543950 983543950 983543950.0000
+311 4181 979599938 234298 234298 234298.0000
+447 4181 9929180954 2374834 2374834 2374834.0000
+512 4181 3288532102 786542 786542 786542.0000
+select distinct mod(companynr,10) from t4 group by companynr;
+mod(companynr,10)
+0
+9
+4
+6
+7
+1
+3
+8
+5
+select distinct 1 from t4 group by companynr;
+1
+1
+select count(distinct fld1) from t2;
+count(distinct fld1)
+1199
+select companynr,count(distinct fld1) from t2 group by companynr;
+companynr count(distinct fld1)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(*) from t2 group by companynr;
+companynr count(*)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,1000))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,1000)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,200))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,200)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct floor(fld1/100)) from t2 group by companynr;
+companynr count(distinct floor(fld1/100))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select companynr,count(distinct concat(repeat(65,1000),floor(fld1/100))) from t2 group by companynr;
+companynr count(distinct concat(repeat(65,1000),floor(fld1/100)))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select sum(fld1),fld3 from t2 where fld3="Romans" group by fld1 limit 10;
+sum(fld1) fld3
+11402 Romans
+select name,count(*) from t3 where name='cloakroom' group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name='cloakroom' and price>10 group by name;
+name count(*)
+cloakroom 4181
+select count(*) from t3 where name='cloakroom' and price2=823742;
+count(*)
+4181
+select name,count(*) from t3 where name='cloakroom' and price2=823742 group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name >= "extramarital" and price <= 39654943 group by name;
+name count(*)
+extramarital 4181
+gazer 4181
+gems 4181
+Iranizes 4181
+spates 4181
+tucked 4181
+violinist 4181
+select t2.fld3,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld3 count(*)
+spates 4181
+select companynr|0,companyname from t4 group by 1;
+companynr|0 companyname
+0 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by t2.companynr order by companyname;
+companynr companyname count(*)
+29 company 1 95
+68 company 10 12
+50 company 11 11
+34 company 2 70
+36 company 3 215
+37 company 4 588
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+00 Unknown 82
+select t2.fld1,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld1 count(*)
+158402 4181
+select sum(Period)/count(*) from t1;
+sum(Period)/count(*)
+9410.0000
+select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
+companynr count sum diff func
+37 12543 309394878010 0.0000 464091
+78 8362 414611089292 0.0000 652236
+101 4181 3489454238 0.0000 422281
+154 4181 4112197254950 0.0000 643874
+311 4181 979599938 0.0000 1300291
+447 4181 9929180954 0.0000 1868907
+512 4181 3288532102 0.0000 2140672
+select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
+companynr avg
+154 983543950.0000
+select companynr,count(*) from t2 group by companynr order by 2 desc;
+companynr count(*)
+37 588
+36 215
+29 95
+00 82
+34 70
+41 52
+40 37
+58 23
+68 12
+50 11
+65 10
+53 4
+select companynr,count(*) from t2 where companynr > 40 group by companynr order by 2 desc;
+companynr count(*)
+41 52
+58 23
+68 12
+50 11
+65 10
+53 4
+select t2.fld4,t2.fld1,count(price),sum(price),min(price),max(price),avg(price) from t3,t2 where t3.companynr = 37 and t2.fld1 = t3.t2nr group by fld1,t2.fld4;
+fld4 fld1 count(price) sum(price) min(price) max(price) avg(price)
+teethe 000001 1 5987435 5987435 5987435 5987435.0000
+dreaded 011401 1 5987435 5987435 5987435 5987435.0000
+scholastics 011402 1 28357832 28357832 28357832 28357832.0000
+audiology 011403 1 39654943 39654943 39654943 39654943.0000
+wallet 011501 1 5987435 5987435 5987435 5987435.0000
+parters 011701 1 5987435 5987435 5987435 5987435.0000
+eschew 011702 1 28357832 28357832 28357832 28357832.0000
+quitter 011703 1 39654943 39654943 39654943 39654943.0000
+neat 012001 1 5987435 5987435 5987435 5987435.0000
+Steinberg 012003 1 39654943 39654943 39654943 39654943.0000
+balled 012301 1 5987435 5987435 5987435 5987435.0000
+persist 012302 1 28357832 28357832 28357832 28357832.0000
+attainments 012303 1 39654943 39654943 39654943 39654943.0000
+capably 012501 1 5987435 5987435 5987435 5987435.0000
+impulsive 012602 1 28357832 28357832 28357832 28357832.0000
+starlet 012603 1 39654943 39654943 39654943 39654943.0000
+featherweight 012701 1 5987435 5987435 5987435 5987435.0000
+pessimist 012702 1 28357832 28357832 28357832 28357832.0000
+daughter 012703 1 39654943 39654943 39654943 39654943.0000
+lawgiver 013601 1 5987435 5987435 5987435 5987435.0000
+stated 013602 1 28357832 28357832 28357832 28357832.0000
+readable 013603 1 39654943 39654943 39654943 39654943.0000
+testicle 013801 1 5987435 5987435 5987435 5987435.0000
+Parsifal 013802 1 28357832 28357832 28357832 28357832.0000
+leavings 013803 1 39654943 39654943 39654943 39654943.0000
+squeaking 013901 1 5987435 5987435 5987435 5987435.0000
+contrasted 016001 1 5987435 5987435 5987435 5987435.0000
+leftover 016201 1 5987435 5987435 5987435 5987435.0000
+whiteners 016202 1 28357832 28357832 28357832 28357832.0000
+erases 016301 1 5987435 5987435 5987435 5987435.0000
+Punjab 016302 1 28357832 28357832 28357832 28357832.0000
+Merritt 016303 1 39654943 39654943 39654943 39654943.0000
+sweetish 018001 1 5987435 5987435 5987435 5987435.0000
+dogging 018002 1 28357832 28357832 28357832 28357832.0000
+scornfully 018003 1 39654943 39654943 39654943 39654943.0000
+fetters 018012 1 28357832 28357832 28357832 28357832.0000
+bivalves 018013 1 39654943 39654943 39654943 39654943.0000
+skulking 018021 1 5987435 5987435 5987435 5987435.0000
+flint 018022 1 28357832 28357832 28357832 28357832.0000
+flopping 018023 1 39654943 39654943 39654943 39654943.0000
+Judas 018032 1 28357832 28357832 28357832 28357832.0000
+vacuuming 018033 1 39654943 39654943 39654943 39654943.0000
+medical 018041 1 5987435 5987435 5987435 5987435.0000
+bloodbath 018042 1 28357832 28357832 28357832 28357832.0000
+subschema 018043 1 39654943 39654943 39654943 39654943.0000
+interdependent 018051 1 5987435 5987435 5987435 5987435.0000
+Graves 018052 1 28357832 28357832 28357832 28357832.0000
+neonatal 018053 1 39654943 39654943 39654943 39654943.0000
+sorters 018061 1 5987435 5987435 5987435 5987435.0000
+epistle 018062 1 28357832 28357832 28357832 28357832.0000
+Conley 018101 1 5987435 5987435 5987435 5987435.0000
+lectured 018102 1 28357832 28357832 28357832 28357832.0000
+Abraham 018103 1 39654943 39654943 39654943 39654943.0000
+cage 018201 1 5987435 5987435 5987435 5987435.0000
+hushes 018202 1 28357832 28357832 28357832 28357832.0000
+Simla 018402 1 28357832 28357832 28357832 28357832.0000
+reporters 018403 1 39654943 39654943 39654943 39654943.0000
+coexist 018601 1 5987435 5987435 5987435 5987435.0000
+Beebe 018602 1 28357832 28357832 28357832 28357832.0000
+Taoism 018603 1 39654943 39654943 39654943 39654943.0000
+Connally 018801 1 5987435 5987435 5987435 5987435.0000
+fetched 018802 1 28357832 28357832 28357832 28357832.0000
+checkpoints 018803 1 39654943 39654943 39654943 39654943.0000
+gritty 018811 1 5987435 5987435 5987435 5987435.0000
+firearm 018812 1 28357832 28357832 28357832 28357832.0000
+minima 019101 1 5987435 5987435 5987435 5987435.0000
+Selfridge 019102 1 28357832 28357832 28357832 28357832.0000
+disable 019103 1 39654943 39654943 39654943 39654943.0000
+witchcraft 019201 1 5987435 5987435 5987435 5987435.0000
+betroth 030501 1 5987435 5987435 5987435 5987435.0000
+Manhattanize 030502 1 28357832 28357832 28357832 28357832.0000
+imprint 030503 1 39654943 39654943 39654943 39654943.0000
+swelling 031901 1 5987435 5987435 5987435 5987435.0000
+interrelationships 036001 1 5987435 5987435 5987435 5987435.0000
+riser 036002 1 28357832 28357832 28357832 28357832.0000
+bee 038001 1 5987435 5987435 5987435 5987435.0000
+kanji 038002 1 28357832 28357832 28357832 28357832.0000
+dental 038003 1 39654943 39654943 39654943 39654943.0000
+railway 038011 1 5987435 5987435 5987435 5987435.0000
+validate 038012 1 28357832 28357832 28357832 28357832.0000
+normalizes 038013 1 39654943 39654943 39654943 39654943.0000
+Kline 038101 1 5987435 5987435 5987435 5987435.0000
+Anatole 038102 1 28357832 28357832 28357832 28357832.0000
+partridges 038103 1 39654943 39654943 39654943 39654943.0000
+recruited 038201 1 5987435 5987435 5987435 5987435.0000
+dimensions 038202 1 28357832 28357832 28357832 28357832.0000
+Chicana 038203 1 39654943 39654943 39654943 39654943.0000
+select t3.companynr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 group by companynr,fld3;
+companynr fld3 sum(price)
+512 boat 786542
+512 capably 786542
+512 cupboard 786542
+512 decliner 786542
+512 descendants 786542
+512 dopers 786542
+512 erases 786542
+512 Micronesia 786542
+512 Miles 786542
+512 skies 786542
+select t2.companynr,count(*),min(fld3),max(fld3),sum(price),avg(price) from t2,t3 where t3.companynr >= 30 and t3.companynr <= 58 and t3.t2nr = t2.fld1 and 1+1=2 group by t2.companynr;
+companynr count(*) min(fld3) max(fld3) sum(price) avg(price)
+00 1 Omaha Omaha 5987435 5987435.0000
+36 1 dubbed dubbed 28357832 28357832.0000
+37 83 Abraham Wotan 1908978016 22999735.1325
+50 2 scribbled tapestry 68012775 34006387.5000
+select t3.companynr+0,t3.t2nr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 37 group by 1,t3.t2nr,fld3,fld3,fld3,fld3,fld3 order by fld1;
+t3.companynr+0 t2nr fld3 sum(price)
+37 1 Omaha 5987435
+37 11401 breaking 5987435
+37 11402 Romans 28357832
+37 11403 intercepted 39654943
+37 11501 bewilderingly 5987435
+37 11701 astound 5987435
+37 11702 admonishing 28357832
+37 11703 sumac 39654943
+37 12001 flanking 5987435
+37 12003 combed 39654943
+37 12301 Eulerian 5987435
+37 12302 dubbed 28357832
+37 12303 Kane 39654943
+37 12501 annihilates 5987435
+37 12602 Wotan 28357832
+37 12603 snatching 39654943
+37 12701 grazing 5987435
+37 12702 Baird 28357832
+37 12703 celery 39654943
+37 13601 handgun 5987435
+37 13602 foldout 28357832
+37 13603 mystic 39654943
+37 13801 intelligibility 5987435
+37 13802 Augustine 28357832
+37 13803 teethe 39654943
+37 13901 scholastics 5987435
+37 16001 audiology 5987435
+37 16201 wallet 5987435
+37 16202 parters 28357832
+37 16301 eschew 5987435
+37 16302 quitter 28357832
+37 16303 neat 39654943
+37 18001 jarring 5987435
+37 18002 tinily 28357832
+37 18003 balled 39654943
+37 18012 impulsive 28357832
+37 18013 starlet 39654943
+37 18021 lawgiver 5987435
+37 18022 stated 28357832
+37 18023 readable 39654943
+37 18032 testicle 28357832
+37 18033 Parsifal 39654943
+37 18041 Punjab 5987435
+37 18042 Merritt 28357832
+37 18043 Quixotism 39654943
+37 18051 sureties 5987435
+37 18052 puddings 28357832
+37 18053 tapestry 39654943
+37 18061 trimmings 5987435
+37 18062 humility 28357832
+37 18101 tragedies 5987435
+37 18102 skulking 28357832
+37 18103 flint 39654943
+37 18201 relaxing 5987435
+37 18202 offload 28357832
+37 18402 suites 28357832
+37 18403 lists 39654943
+37 18601 vacuuming 5987435
+37 18602 dentally 28357832
+37 18603 humanness 39654943
+37 18801 inch 5987435
+37 18802 Weissmuller 28357832
+37 18803 irresponsibly 39654943
+37 18811 repetitions 5987435
+37 18812 Antares 28357832
+37 19101 ventilate 5987435
+37 19102 pityingly 28357832
+37 19103 interdependent 39654943
+37 19201 Graves 5987435
+37 30501 neonatal 5987435
+37 30502 scribbled 28357832
+37 30503 chafe 39654943
+37 31901 realtor 5987435
+37 36001 elite 5987435
+37 36002 funereal 28357832
+37 38001 Conley 5987435
+37 38002 lectured 28357832
+37 38003 Abraham 39654943
+37 38011 groupings 5987435
+37 38012 dissociate 28357832
+37 38013 coexist 39654943
+37 38101 rusting 5987435
+37 38102 galling 28357832
+37 38103 obliterates 39654943
+37 38201 resumes 5987435
+37 38202 analyzable 28357832
+37 38203 terminator 39654943
+select sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1= t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008;
+sum(price)
+234298
+select t2.fld1,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1 = t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008 or t3.t2nr = t2.fld1 and t2.fld1 = 38008 group by t2.fld1;
+fld1 sum(price)
+038008 234298
+explain select fld3 from t2 where 1>2 or 2>3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select fld3 from t2 where fld1=fld1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select companynr,fld1 from t2 HAVING fld1=250501 or fld1=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,fld1 from t2 WHERE fld1>=250501 HAVING fld1<=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,count(*) as count,sum(fld1) as sum from t2 group by companynr having count > 40 and sum/count >= 120000;
+companynr count sum
+00 82 10355753
+29 95 14473298
+34 70 17788966
+37 588 83602098
+41 52 12816335
+select companynr from t2 group by companynr having count(*) > 40 and sum(fld1)/count(*) >= 120000 ;
+companynr
+00
+29
+34
+37
+41
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by companyname having t2.companynr >= 40;
+companynr companyname count(*)
+68 company 10 12
+50 company 11 11
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+select count(*) from t2;
+count(*)
+1199
+select count(*) from t2 where fld1 < 098024;
+count(*)
+387
+select min(fld1) from t2 where fld1>= 098024;
+min(fld1)
+98024
+select max(fld1) from t2 where fld1>= 098024;
+max(fld1)
+1232609
+select count(*) from t3 where price2=76234234;
+count(*)
+4181
+select count(*) from t3 where companynr=512 and price2=76234234;
+count(*)
+4181
+explain select min(fld1),max(fld1),count(*) from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select min(fld1),max(fld1),count(*) from t2;
+min(fld1) max(fld1) count(*)
+0 1232609 1199
+select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742;
+min(t2nr) max(t2nr)
+2115 2115
+select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78;
+count(*) min(t2nr) max(t2nr)
+4181 4 41804
+select t2nr,count(*) from t3 where name='gems' group by t2nr limit 20;
+t2nr count(*)
+9 1
+19 1
+29 1
+39 1
+49 1
+59 1
+69 1
+79 1
+89 1
+99 1
+109 1
+119 1
+129 1
+139 1
+149 1
+159 1
+169 1
+179 1
+189 1
+199 1
+select max(t2nr) from t3 where price=983543950;
+max(t2nr)
+41807
+select t1.period from t3 = t1 limit 1;
+period
+1001
+select t1.period from t1 as t1 limit 1;
+period
+9410
+select t1.period as "Nuvarande period" from t1 as t1 limit 1;
+Nuvarande period
+9410
+select period as ok_period from t1 limit 1;
+ok_period
+9410
+select period as ok_period from t1 group by ok_period limit 1;
+ok_period
+9410
+select 1+1 as summa from t1 group by summa limit 1;
+summa
+2
+select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
+Nuvarande period
+9410
+show tables;
+Tables_in_test
+t1
+t2
+t3
+t4
+show tables from test like "s%";
+Tables_in_test (s%)
+show tables from test like "t?";
+Tables_in_test (t?)
+show full columns from t2;
+Field Type Collation Null Key Default Extra Privileges Comment
+auto int(11) NULL NO PRI NULL auto_increment #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+companynr tinyint(2) unsigned zerofill NULL NO 00 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 'f%';
+Field Type Collation Null Key Default Extra Privileges Comment
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 's%';
+Field Type Collation Null Key Default Extra Privileges Comment
+show keys from t2;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+drop table t4, t3, t2, t1;
+CREATE TABLE t1 (
+cont_nr int(11) NOT NULL auto_increment,
+ver_nr int(11) NOT NULL default '0',
+aufnr int(11) NOT NULL default '0',
+username varchar(50) NOT NULL default '',
+hdl_nr int(11) NOT NULL default '0',
+eintrag date NOT NULL default '0000-00-00',
+st_klasse varchar(40) NOT NULL default '',
+st_wert varchar(40) NOT NULL default '',
+st_zusatz varchar(40) NOT NULL default '',
+st_bemerkung varchar(255) NOT NULL default '',
+kunden_art varchar(40) NOT NULL default '',
+mcbs_knr int(11) default NULL,
+mcbs_aufnr int(11) NOT NULL default '0',
+schufa_status char(1) default '?',
+bemerkung text,
+wirknetz text,
+wf_igz int(11) NOT NULL default '0',
+tarifcode varchar(80) default NULL,
+recycle char(1) default NULL,
+sim varchar(30) default NULL,
+mcbs_tpl varchar(30) default NULL,
+emp_nr int(11) NOT NULL default '0',
+laufzeit int(11) default NULL,
+hdl_name varchar(30) default NULL,
+prov_hdl_nr int(11) NOT NULL default '0',
+auto_wirknetz varchar(50) default NULL,
+auto_billing varchar(50) default NULL,
+touch timestamp NOT NULL,
+kategorie varchar(50) default NULL,
+kundentyp varchar(20) NOT NULL default '',
+sammel_rech_msisdn varchar(30) NOT NULL default '',
+p_nr varchar(9) NOT NULL default '',
+suffix char(3) NOT NULL default '',
+PRIMARY KEY (cont_nr),
+KEY idx_aufnr(aufnr),
+KEY idx_hdl_nr(hdl_nr),
+KEY idx_st_klasse(st_klasse),
+KEY ver_nr(ver_nr),
+KEY eintrag_idx(eintrag),
+KEY emp_nr_idx(emp_nr),
+KEY wf_igz(wf_igz),
+KEY touch(touch),
+KEY hdl_tag(eintrag,hdl_nr),
+KEY prov_hdl_nr(prov_hdl_nr),
+KEY mcbs_aufnr(mcbs_aufnr),
+KEY kundentyp(kundentyp),
+KEY p_nr(p_nr,suffix)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (3359356,405,3359356,'Mustermann Musterfrau',52500,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1485525,2122316,'+','','N',1909160,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',3,24,'MobilCom Shop Koeln',52500,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359357,468,3359357,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1503580,2139699,'+','','P',1909171,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359358,407,3359358,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1501358,2137473,'N','','N',1909159,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359359,468,3359359,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1507831,2143894,'+','','P',1909162,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359360,0,0,'Mustermann Musterfrau',29674907,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1900169997,2414578,'+',NULL,'N',1909148,'',NULL,NULL,'RV99066_2',20,NULL,'POS',29674907,NULL,NULL,20010202105916,'Mobilfunk','','','97317481','007');
+INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag storniert','','(7001-84):Storno, Kd. möchte nicht mehr','privat',NULL,0,'+','','P',1909150,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
+Kundentyp kategorie
+Privat (Private Nutzung) Mobilfunk
+Warnings:
+Warning 1052 Column 'kundentyp' in group statement is ambiguous
+drop table t1;
+mysqld is alive
+End of 5.0 tests.
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index 9861daff409..0ad32d2f5ed 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -1,63 +1,163 @@
drop table if exists t1,t2;
+drop table if exists t1aa,t2aa;
drop database if exists mysqltest;
+drop database if exists mysqltest1;
delete from mysql.user where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
delete from mysql.db where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
flush privileges;
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
check table t1 fast;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 27 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status Table is already up to date
check table t1 fast;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 27 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status Table is already up to date
check table t1 changed;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
insert into t1 values (5,5,5);
check table t1 changed;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
check table t1 medium;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
check table t1 extended;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 5 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def STATISTICS TABLE_NAME Table 253 64 2 N 1 0 8
+def STATISTICS NON_UNIQUE Non_unique 8 1 1 N 32769 0 63
+def STATISTICS INDEX_NAME Key_name 253 64 7 N 1 0 8
+def STATISTICS SEQ_IN_INDEX Seq_in_index 8 2 1 N 32769 0 63
+def STATISTICS COLUMN_NAME Column_name 253 64 1 N 1 0 8
+def STATISTICS COLLATION Collation 253 1 1 Y 0 0 8
+def STATISTICS CARDINALITY Cardinality 8 21 1 Y 32768 0 63
+def STATISTICS SUB_PART Sub_part 8 3 0 Y 32768 0 63
+def STATISTICS PACKED Packed 253 10 0 Y 0 0 8
+def STATISTICS NULLABLE Null 253 3 0 N 1 0 8
+def STATISTICS INDEX_TYPE Index_type 253 16 5 N 1 0 8
+def STATISTICS COMMENT Comment 253 16 0 Y 0 0 8
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
t1 1 b 1 b A 1 NULL NULL BTREE
t1 1 b 2 c A 5 NULL NULL BTREE
insert into t1 values (5,5,5);
ERROR 23000: Duplicate entry '5' for key 1
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
optimize table t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 8 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 optimize status OK
optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status Table is already up to date
drop table t1;
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
show variables like "wait_timeout%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VARIABLES Variable_name Variable_name 253 80 12 N 1 0 8
+def VARIABLES Value Value 253 512 5 N 1 0 8
Variable_name Value
wait_timeout 28800
show variables like "WAIT_timeout%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VARIABLES Variable_name Variable_name 253 80 12 N 1 0 8
+def VARIABLES Value Value 253 512 5 N 1 0 8
Variable_name Value
wait_timeout 28800
show variables like "this_doesn't_exists%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VARIABLES Variable_name Variable_name 253 80 0 N 1 0 8
+def VARIABLES Value Value 253 512 0 N 1 0 8
Variable_name Value
show table status from test like "this_doesn't_exists%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TABLES TABLE_NAME Name 253 64 0 N 1 0 8
+def TABLES ENGINE Engine 253 64 0 Y 0 0 8
+def TABLES VERSION Version 8 21 0 Y 32768 0 63
+def TABLES ROW_FORMAT Row_format 253 10 0 Y 0 0 8
+def TABLES TABLE_ROWS Rows 8 21 0 Y 32768 0 63
+def TABLES AVG_ROW_LENGTH Avg_row_length 8 21 0 Y 32768 0 63
+def TABLES DATA_LENGTH Data_length 8 21 0 Y 32768 0 63
+def TABLES MAX_DATA_LENGTH Max_data_length 8 21 0 Y 32768 0 63
+def TABLES INDEX_LENGTH Index_length 8 21 0 Y 32768 0 63
+def TABLES DATA_FREE Data_free 8 21 0 Y 32768 0 63
+def TABLES AUTO_INCREMENT Auto_increment 8 21 0 Y 32768 0 63
+def TABLES CREATE_TIME Create_time 12 19 0 Y 128 0 63
+def TABLES UPDATE_TIME Update_time 12 19 0 Y 128 0 63
+def TABLES CHECK_TIME Check_time 12 19 0 Y 128 0 63
+def TABLES TABLE_COLLATION Collation 253 64 0 Y 0 0 8
+def TABLES CHECKSUM Checksum 8 21 0 Y 32768 0 63
+def TABLES CREATE_OPTIONS Create_options 253 255 0 Y 0 0 8
+def TABLES TABLE_COMMENT Comment 253 80 0 N 1 0 8
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
show databases;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def SCHEMATA SCHEMA_NAME Database 253 64 18 N 1 0 8
Database
+information_schema
mysql
test
show databases like "test%";
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def SCHEMATA SCHEMA_NAME Database (test%) 253 64 4 N 1 0 8
Database (test%)
test
create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4));
insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1);
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
analyze table t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 7 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 analyze status OK
show index from t1;
@@ -66,7 +166,15 @@ t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE
t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE
t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
repair table t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 42 7 Y 0 31 8
+def Op 253 3 6 Y 0 31 8
+def Msg_type 253 3 6 Y 0 31 8
+def Msg_text 253 85 2 Y 0 31 8
Table Op Msg_type Msg_text
test.t1 repair status OK
show index from t1;
@@ -80,13 +188,13 @@ create temporary table t1 (a int not null);
show create table t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
- `a` int(11) NOT NULL default '0'
+ `a` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t1 rename t2;
show create table t2;
Table Create Table
t2 CREATE TEMPORARY TABLE `t2` (
- `a` int(11) NOT NULL default '0'
+ `a` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2;
create table t1 (
@@ -101,7 +209,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`test_set` set('val1','val2','val3') NOT NULL default '',
`name` char(20) default 'O''Brien' COMMENT 'O''Brien as default',
- `c` int(11) NOT NULL default '0' COMMENT 'int column',
+ `c` int(11) NOT NULL COMMENT 'int column',
`c-b` int(11) default NULL COMMENT 'name with a minus',
`space 2` int(11) default NULL COMMENT 'name with a space'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='it''s a table'
@@ -110,17 +218,17 @@ show create table t1;
Table Create Table
t1 CREATE TABLE t1 (
test_set set('val1','val2','val3') NOT NULL default '',
- name char(20) default 'O''Brien' COMMENT 'O''Brien as default',
- c int(11) NOT NULL default '0' COMMENT 'int column',
+ `name` char(20) default 'O''Brien' COMMENT 'O''Brien as default',
+ c int(11) NOT NULL COMMENT 'int column',
`c-b` int(11) default NULL COMMENT 'name with a minus',
`space 2` int(11) default NULL COMMENT 'name with a space'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='it''s a table'
set sql_quote_show_create=1;
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment
-test_set set('val1','val2','val3') latin1_swedish_ci select,insert,update,references
+test_set set('val1','val2','val3') latin1_swedish_ci NO select,insert,update,references
name char(20) latin1_swedish_ci YES O'Brien select,insert,update,references O'Brien as default
-c int(11) NULL 0 select,insert,update,references int column
+c int(11) NULL NO NULL select,insert,update,references int column
c-b int(11) NULL YES NULL select,insert,update,references name with a minus
space 2 int(11) NULL YES NULL select,insert,update,references name with a space
drop table t1;
@@ -128,7 +236,7 @@ create table t1 (a int not null, unique aa (a));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
UNIQUE KEY `aa` (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -136,7 +244,7 @@ create table t1 (a int not null, primary key (a));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -153,15 +261,15 @@ create table t1 (a int not null, b VARCHAR(10), INDEX (b) ) AVG_ROW_LENGTH=10 CH
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
- `b` char(10) default NULL,
+ `a` int(11) NOT NULL,
+ `b` varchar(10) default NULL,
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MIN_ROWS=10 MAX_ROWS=100 AVG_ROW_LENGTH=10 PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED COMMENT='test'
alter table t1 MAX_ROWS=200 ROW_FORMAT=dynamic PACK_KEYS=0;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` varchar(10) default NULL,
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MIN_ROWS=10 MAX_ROWS=200 AVG_ROW_LENGTH=10 PACK_KEYS=0 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='test'
@@ -169,7 +277,7 @@ ALTER TABLE t1 AVG_ROW_LENGTH=0 CHECKSUM=0 COMMENT="" MIN_ROWS=0 MAX_ROWS=0 PACK
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` varchar(10) default NULL,
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
@@ -193,7 +301,7 @@ h float(3,2) NULL YES NULL select,insert,update,references
i float(3,0) NULL YES NULL select,insert,update,references
drop table t1;
create table t1 (
-type_bool bool not null,
+type_bool bool not null default 0,
type_tiny tinyint not null auto_increment primary key,
type_short smallint(3),
type_mediumint mediumint,
@@ -204,9 +312,9 @@ empty_char char(0),
type_char char(2),
type_varchar varchar(10),
type_timestamp timestamp not null,
-type_date date not null,
-type_time time not null,
-type_datetime datetime not null,
+type_date date not null default '0000-00-00',
+type_time time not null default '00:00:00',
+type_datetime datetime not null default '0000-00-00 00:00:00',
type_year year,
type_enum enum ('red', 'green', 'blue'),
type_set enum ('red', 'green', 'blue'),
@@ -250,11 +358,9 @@ type_bool type_tiny type_short type_mediumint type_bigint type_decimal type_nume
drop table t1;
create table t1 (a int not null);
create table t2 select max(a) from t1;
-Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'max(a)' at row 1
show columns from t2;
Field Type Null Key Default Extra
-max(a) int(11) 0
+max(a) int(11) YES NULL
drop table t1,t2;
create table t1 (c decimal, d double, f float, r real);
show columns from t1;
@@ -267,15 +373,14 @@ drop table t1;
create table t1 (c decimal(3,3), d double(3,3), f float(3,3));
show columns from t1;
Field Type Null Key Default Extra
-c decimal(4,3) YES NULL
-d double(4,3) YES NULL
-f float(4,3) YES NULL
+c decimal(3,3) YES NULL
+d double(3,3) YES NULL
+f float(3,3) YES NULL
drop table t1;
SET @old_sql_mode= @@sql_mode, sql_mode= '';
SET @old_sql_quote_show_create= @@sql_quote_show_create, sql_quote_show_create= OFF;
CREATE TABLE `a/b` (i INT);
ERROR 42000: Incorrect table name 'a/b'
-SET sql_mode= 'ANSI_QUOTES';
SET sql_mode= '';
SET sql_quote_show_create= OFF;
CREATE TABLE t1 (i INT);
@@ -296,10 +401,10 @@ SET sql_quote_show_create= @old_sql_quote_show_create;
SET sql_mode= @old_sql_mode;
select @@max_heap_table_size;
@@max_heap_table_size
-1047552
+1048576
CREATE TABLE t1 (
a int(11) default NULL,
-KEY a TYPE BTREE (a)
+KEY a USING BTREE (a)
) ENGINE=HEAP;
CREATE TABLE t2 (
b int(11) default NULL,
@@ -308,7 +413,7 @@ index(b)
CREATE TABLE t3 (
a int(11) default NULL,
b int(11) default NULL,
-KEY a TYPE BTREE (a),
+KEY a USING BTREE (a),
index(b)
) ENGINE=HEAP;
insert into t1 values (1),(2);
@@ -316,57 +421,57 @@ insert into t2 values (1),(2);
insert into t3 values (1,1),(2,2);
show table status;
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 HEAP 9 Fixed 2 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 2 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 2 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 2 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 2 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 2 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (3),(4);
insert into t2 values (3),(4);
insert into t3 values (3,3),(4,4);
show table status;
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 HEAP 9 Fixed 4 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 4 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 4 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 4 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 4 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 4 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
show table status;
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 HEAP 9 Fixed 5 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 5 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 5 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 5 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 5 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 5 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1 where a=3;
delete from t2 where b=3;
delete from t3 where a=3;
show table status;
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 HEAP 9 Fixed 4 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 4 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 4 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 4 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 4 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 4 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1;
delete from t2;
delete from t3;
show table status;
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 HEAP 9 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
show table status;
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 HEAP 9 Fixed 1 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 1 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 1 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 1 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 1 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 1 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1 where a=5;
delete from t2 where b=5;
delete from t3 where a=5;
show table status;
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 HEAP 9 Fixed 0 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP 9 Fixed 0 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP 9 Fixed 0 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 MEMORY 10 Fixed 0 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 MEMORY 10 Fixed 0 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 MEMORY 10 Fixed 0 # # # # # NULL NULL NULL NULL latin1_swedish_ci NULL
drop table t1, t2, t3;
create database mysqltest;
show create database mysqltest;
@@ -384,19 +489,19 @@ show create database mysqltest;
Database Create Database
mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 */
drop table t1;
-ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
+ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1'
drop database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
select * from mysqltest.t1;
-ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
+ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't1'
show create database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
drop table mysqltest.t1;
-ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
+ERROR 42000: DROP command denied to user 'mysqltest_2'@'localhost' for table 't1'
drop database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
select * from mysqltest.t1;
-ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'mysqltest'
+ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1'
show create database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'mysqltest'
drop table mysqltest.t1;
@@ -413,7 +518,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) default NULL,
KEY `i` (`i`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (i int, KEY USING HASH (i)) ENGINE=MEMORY;
SHOW CREATE TABLE t1;
@@ -421,7 +526,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) default NULL,
KEY `i` USING HASH (`i`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MEMORY;
SHOW CREATE TABLE t1;
@@ -429,7 +534,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) default NULL,
KEY `i` USING BTREE (`i`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM;
SHOW CREATE TABLE t1;
@@ -460,7 +565,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) default NULL,
KEY `i` (`i`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MyISAM;
SHOW CREATE TABLE t1;
@@ -475,7 +580,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) default NULL,
KEY `i` USING BTREE (`i`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1(
field1 text NOT NULL,
@@ -483,18 +588,18 @@ PRIMARY KEY(field1(1000))
);
show index from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def Table 253 64 2 N 129 31 63
-def Non_unique 1 1 1 N 32929 0 63
-def Key_name 253 64 7 N 129 31 63
-def Seq_in_index 1 2 1 N 32929 0 63
-def Column_name 253 64 6 N 129 31 63
-def Collation 253 1 1 Y 128 31 63
-def Cardinality 8 21 1 Y 32896 0 63
-def Sub_part 2 3 4 Y 32928 0 63
-def Packed 253 10 0 Y 128 31 63
-def Null 253 3 0 N 129 31 63
-def Index_type 253 16 5 N 129 31 63
-def Comment 253 255 0 N 129 31 63
+def STATISTICS TABLE_NAME Table 253 64 2 N 1 0 63
+def STATISTICS NON_UNIQUE Non_unique 8 1 1 N 32769 0 63
+def STATISTICS INDEX_NAME Key_name 253 64 7 N 1 0 63
+def STATISTICS SEQ_IN_INDEX Seq_in_index 8 2 1 N 32769 0 63
+def STATISTICS COLUMN_NAME Column_name 253 64 6 N 1 0 63
+def STATISTICS COLLATION Collation 253 1 1 Y 0 0 63
+def STATISTICS CARDINALITY Cardinality 8 21 1 Y 32768 0 63
+def STATISTICS SUB_PART Sub_part 8 3 4 Y 32768 0 63
+def STATISTICS PACKED Packed 253 10 0 Y 0 0 63
+def STATISTICS NULLABLE Null 253 3 0 N 1 0 63
+def STATISTICS INDEX_TYPE Index_type 253 16 5 N 1 0 63
+def STATISTICS COMMENT Comment 253 16 0 Y 0 0 63
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE
drop table t1;
@@ -507,8 +612,8 @@ INDEX USING BTREE(c2)
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` int(11) NOT NULL default '0',
- `c2` int(11) NOT NULL default '0',
+ `c1` int(11) NOT NULL,
+ `c2` int(11) NOT NULL,
PRIMARY KEY USING HASH (`c1`),
KEY `c2` USING BTREE (`c2`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
@@ -520,3 +625,520 @@ t1 NULL NULL NULL NULL # # # # NULL NULL NULL NULL NULL NULL NULL NULL Incorrect
show create table t1;
ERROR HY000: Incorrect information in file: './test/t1.frm'
drop table t1;
+End of 4.1 tests
+CREATE TABLE txt1(a int);
+CREATE TABLE tyt2(a int);
+CREATE TABLE urkunde(a int);
+FLUSH TABLES;
+SELECT 1 FROM mysql.db, mysql.proc, mysql.user, mysql.time_zone, mysql.time_zone_name, txt1, tyt2, urkunde LIMIT 0;
+1
+SHOW OPEN TABLES;
+Database Table In_use Name_locked
+mysql db 0 0
+test urkunde 0 0
+mysql time_zone 0 0
+mysql user 0 0
+test txt1 0 0
+mysql proc 0 0
+test tyt2 0 0
+mysql time_zone_name 0 0
+SHOW OPEN TABLES FROM mysql;
+Database Table In_use Name_locked
+mysql db 0 0
+mysql time_zone 0 0
+mysql user 0 0
+mysql proc 0 0
+mysql time_zone_name 0 0
+SHOW OPEN TABLES FROM mysql LIKE 'u%';
+Database Table In_use Name_locked
+mysql user 0 0
+SHOW OPEN TABLES LIKE 't%';
+Database Table In_use Name_locked
+mysql time_zone 0 0
+test txt1 0 0
+test tyt2 0 0
+mysql time_zone_name 0 0
+SHOW OPEN TABLES LIKE '%o%';
+Database Table In_use Name_locked
+mysql time_zone 0 0
+mysql proc 0 0
+mysql time_zone_name 0 0
+FLUSH TABLES;
+SHOW OPEN TABLES;
+Database Table In_use Name_locked
+DROP TABLE txt1;
+DROP TABLE tyt2;
+DROP TABLE urkunde;
+SHOW TABLES FROM non_existing_database;
+ERROR 42000: Unknown database 'non_existing_database'
+DROP VIEW IF EXISTS v1;
+DROP PROCEDURE IF EXISTS p1;
+CREATE VIEW v1 AS SELECT 1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_CACHE 1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache 1 AS `1`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT NOW();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select now() AS `NOW()`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_CACHE NOW();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache now() AS `NOW()`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache now() AS `NOW()`
+DROP VIEW v1;
+CREATE PROCEDURE p1()
+BEGIN
+SET @s= 'CREATE VIEW v1 AS SELECT SQL_CACHE 1';
+PREPARE stmt FROM @s;
+EXECUTE stmt;
+DROP PREPARE stmt;
+END |
+CALL p1();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_cache 1 AS `1`
+DROP PROCEDURE p1;
+DROP VIEW v1;
+SHOW TABLES FROM no_such_database;
+ERROR 42000: Unknown database 'no_such_database'
+SHOW COLUMNS FROM no_such_table;
+ERROR 42S02: Table 'test.no_such_table' doesn't exist
+flush status;
+show status like 'slow_queries';
+Variable_name Value
+Slow_queries 0
+show tables;
+Tables_in_test
+show status like 'slow_queries';
+Variable_name Value
+Slow_queries 0
+select 1 from information_schema.tables limit 1;
+1
+1
+show status like 'slow_queries';
+Variable_name Value
+Slow_queries 1
+DROP DATABASE IF EXISTS mysqltest1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+CREATE DATABASE mysqltest1;
+CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+CREATE VIEW v1 AS SELECT 1;
+CREATE PROCEDURE p1() SELECT 1;
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+set names utf8;
+-- Here we enable metadata just to check that the collation of the
+-- resultset is non-binary for string type. This should be changed
+-- after Bug#29394 is implemented.
+----------------------------------------------------------------
+SHOW CHARACTER SET LIKE 'utf8';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def CHARACTER_SETS CHARACTER_SET_NAME Charset 253 192 4 N 1 0 33
+def CHARACTER_SETS DESCRIPTION Description 253 180 13 N 1 0 33
+def CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 192 15 N 1 0 33
+def CHARACTER_SETS MAXLEN Maxlen 8 3 1 N 32769 0 63
+Charset Description Default collation Maxlen
+utf8 UTF-8 Unicode utf8_general_ci 3
+----------------------------------------------------------------
+SHOW COLLATION LIKE 'latin1_bin';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def COLLATIONS COLLATION_NAME Collation 253 192 10 N 1 0 33
+def COLLATIONS CHARACTER_SET_NAME Charset 253 192 6 N 1 0 33
+def COLLATIONS ID Id 8 11 2 N 32769 0 63
+def COLLATIONS IS_DEFAULT Default 253 9 0 N 1 0 33
+def COLLATIONS IS_COMPILED Compiled 253 9 3 N 1 0 33
+def COLLATIONS SORTLEN Sortlen 8 3 1 N 32769 0 63
+Collation Charset Id Default Compiled Sortlen
+latin1_bin latin1 47 Yes 1
+----------------------------------------------------------------
+SHOW CREATE DATABASE mysqltest1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Database 253 63 10 N 1 31 33
+def Create Database 253 1023 69 N 1 31 33
+Database Create Database
+mysqltest1 CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET latin1 */
+----------------------------------------------------------------
+SHOW DATABASES LIKE 'mysqltest1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def SCHEMATA SCHEMA_NAME Database (mysqltest1) 253 192 10 N 1 0 33
+Database (mysqltest1)
+mysqltest1
+----------------------------------------------------------------
+SHOW CREATE TABLE t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 63 2 N 1 31 33
+def Create Table 253 1023 103 N 1 31 33
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c` int(11) NOT NULL,
+ PRIMARY KEY (`c`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+----------------------------------------------------------------
+SHOW INDEX FROM t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def STATISTICS TABLE_NAME Table 253 192 2 N 1 0 33
+def STATISTICS NON_UNIQUE Non_unique 8 1 1 N 32769 0 63
+def STATISTICS INDEX_NAME Key_name 253 192 7 N 1 0 33
+def STATISTICS SEQ_IN_INDEX Seq_in_index 8 2 1 N 32769 0 63
+def STATISTICS COLUMN_NAME Column_name 253 192 1 N 1 0 33
+def STATISTICS COLLATION Collation 253 3 1 Y 0 0 33
+def STATISTICS CARDINALITY Cardinality 8 21 1 Y 32768 0 63
+def STATISTICS SUB_PART Sub_part 8 3 0 Y 32768 0 63
+def STATISTICS PACKED Packed 253 30 0 Y 0 0 33
+def STATISTICS NULLABLE Null 253 9 0 N 1 0 33
+def STATISTICS INDEX_TYPE Index_type 253 48 5 N 1 0 33
+def STATISTICS COMMENT Comment 253 48 0 Y 0 0 33
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 0 PRIMARY 1 c A 0 NULL NULL BTREE
+----------------------------------------------------------------
+SELECT
+TABLE_CATALOG,
+TABLE_SCHEMA,
+TABLE_NAME,
+TABLE_TYPE,
+ENGINE,
+ROW_FORMAT,
+TABLE_COLLATION,
+CREATE_OPTIONS,
+TABLE_COMMENT
+FROM INFORMATION_SCHEMA.TABLES
+WHERE table_name = 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TABLES TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
+def TABLES TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
+def TABLES TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
+def TABLES TABLE_TYPE TABLE_TYPE 253 192 10 N 1 0 33
+def TABLES ENGINE ENGINE 253 192 6 Y 0 0 33
+def TABLES ROW_FORMAT ROW_FORMAT 253 30 5 Y 0 0 33
+def TABLES TABLE_COLLATION TABLE_COLLATION 253 192 17 Y 0 0 33
+def TABLES CREATE_OPTIONS CREATE_OPTIONS 253 765 0 Y 0 0 33
+def TABLES TABLE_COMMENT TABLE_COMMENT 253 240 0 N 1 0 33
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_COLLATION CREATE_OPTIONS TABLE_COMMENT
+NULL test t1 BASE TABLE MyISAM Fixed latin1_swedish_ci
+----------------------------------------------------------------
+SELECT
+TABLE_CATALOG,
+TABLE_SCHEMA,
+TABLE_NAME,
+COLUMN_NAME,
+COLUMN_DEFAULT,
+IS_NULLABLE,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME,
+COLUMN_TYPE,
+COLUMN_KEY,
+EXTRA,
+PRIVILEGES,
+COLUMN_COMMENT
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def COLUMNS TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
+def COLUMNS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
+def COLUMNS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
+def COLUMNS COLUMN_NAME COLUMN_NAME 253 192 1 N 1 0 33
+def COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589815 0 Y 16 0 33
+def COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 1 0 33
+def COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 1 0 33
+def COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 192 0 Y 0 0 33
+def COLUMNS COLLATION_NAME COLLATION_NAME 253 192 0 Y 0 0 33
+def COLUMNS COLUMN_TYPE COLUMN_TYPE 252 589815 7 N 17 0 33
+def COLUMNS COLUMN_KEY COLUMN_KEY 253 9 3 N 1 0 33
+def COLUMNS EXTRA EXTRA 253 60 0 N 1 0 33
+def COLUMNS PRIVILEGES PRIVILEGES 253 240 31 N 1 0 33
+def COLUMNS COLUMN_COMMENT COLUMN_COMMENT 253 765 0 N 1 0 33
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL test t1 c NULL NO int NULL NULL int(11) PRI select,insert,update,references
+----------------------------------------------------------------
+SHOW TABLES LIKE 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TABLE_NAMES TABLE_NAME Tables_in_test (t1) 253 192 2 N 1 0 33
+Tables_in_test (t1)
+t1
+----------------------------------------------------------------
+SHOW COLUMNS FROM t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def COLUMNS COLUMN_NAME Field 253 192 1 N 1 0 33
+def COLUMNS COLUMN_TYPE Type 252 589815 7 N 17 0 33
+def COLUMNS IS_NULLABLE Null 253 9 2 N 1 0 33
+def COLUMNS COLUMN_KEY Key 253 9 3 N 1 0 33
+def COLUMNS COLUMN_DEFAULT Default 252 589815 0 Y 16 0 33
+def COLUMNS EXTRA Extra 253 60 0 N 1 0 33
+Field Type Null Key Default Extra
+c int(11) NO PRI NULL
+----------------------------------------------------------------
+SHOW TRIGGERS LIKE 't1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TRIGGERS TRIGGER_NAME Trigger 253 192 5 N 1 0 33
+def TRIGGERS EVENT_MANIPULATION Event 253 18 6 N 1 0 33
+def TRIGGERS EVENT_OBJECT_TABLE Table 253 192 2 N 1 0 33
+def TRIGGERS ACTION_STATEMENT Statement 252 589815 10 N 17 0 33
+def TRIGGERS ACTION_TIMING Timing 253 18 6 N 1 0 33
+def TRIGGERS CREATED Created 12 19 0 Y 128 0 63
+def TRIGGERS SQL_MODE sql_mode 252 589815 0 N 17 0 33
+def TRIGGERS DEFINER Definer 252 589815 14 N 17 0 33
+Trigger Event Table Statement Timing Created sql_mode Definer
+t1_bi INSERT t1 SET @a = 1 BEFORE NULL root@localhost
+----------------------------------------------------------------
+SELECT
+TRIGGER_CATALOG,
+TRIGGER_SCHEMA,
+TRIGGER_NAME,
+EVENT_MANIPULATION,
+EVENT_OBJECT_CATALOG,
+EVENT_OBJECT_SCHEMA,
+EVENT_OBJECT_TABLE,
+ACTION_CONDITION,
+ACTION_STATEMENT,
+ACTION_ORIENTATION,
+ACTION_TIMING,
+ACTION_REFERENCE_OLD_TABLE,
+ACTION_REFERENCE_NEW_TABLE,
+ACTION_REFERENCE_OLD_ROW,
+ACTION_REFERENCE_NEW_ROW,
+SQL_MODE,
+DEFINER
+FROM INFORMATION_SCHEMA.TRIGGERS
+WHERE trigger_name = 't1_bi';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def TRIGGERS TRIGGER_CATALOG TRIGGER_CATALOG 253 1536 0 Y 0 0 33
+def TRIGGERS TRIGGER_SCHEMA TRIGGER_SCHEMA 253 192 4 N 1 0 33
+def TRIGGERS TRIGGER_NAME TRIGGER_NAME 253 192 5 N 1 0 33
+def TRIGGERS EVENT_MANIPULATION EVENT_MANIPULATION 253 18 6 N 1 0 33
+def TRIGGERS EVENT_OBJECT_CATALOG EVENT_OBJECT_CATALOG 253 1536 0 Y 0 0 33
+def TRIGGERS EVENT_OBJECT_SCHEMA EVENT_OBJECT_SCHEMA 253 192 4 N 1 0 33
+def TRIGGERS EVENT_OBJECT_TABLE EVENT_OBJECT_TABLE 253 192 2 N 1 0 33
+def TRIGGERS ACTION_CONDITION ACTION_CONDITION 252 589815 0 Y 16 0 33
+def TRIGGERS ACTION_STATEMENT ACTION_STATEMENT 252 589815 10 N 17 0 33
+def TRIGGERS ACTION_ORIENTATION ACTION_ORIENTATION 253 27 3 N 1 0 33
+def TRIGGERS ACTION_TIMING ACTION_TIMING 253 18 6 N 1 0 33
+def TRIGGERS ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_OLD_TABLE 253 192 0 Y 0 0 33
+def TRIGGERS ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_NEW_TABLE 253 192 0 Y 0 0 33
+def TRIGGERS ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_OLD_ROW 253 9 3 N 1 0 33
+def TRIGGERS ACTION_REFERENCE_NEW_ROW ACTION_REFERENCE_NEW_ROW 253 9 3 N 1 0 33
+def TRIGGERS SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
+def TRIGGERS DEFINER DEFINER 252 589815 14 N 17 0 33
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW SQL_MODE DEFINER
+NULL test t1_bi INSERT NULL test t1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW root@localhost
+----------------------------------------------------------------
+SHOW CREATE VIEW v1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def View 253 63 2 N 1 31 33
+def Create View 253 1023 103 N 1 31 33
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
+----------------------------------------------------------------
+SELECT *
+FROM INFORMATION_SCHEMA.VIEWS
+WHERE table_name = 'v1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def VIEWS TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
+def VIEWS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
+def VIEWS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
+def VIEWS VIEW_DEFINITION VIEW_DEFINITION 252 589815 41 N 17 0 33
+def VIEWS CHECK_OPTION CHECK_OPTION 253 24 4 N 1 0 33
+def VIEWS IS_UPDATABLE IS_UPDATABLE 253 9 2 N 1 0 33
+def VIEWS DEFINER DEFINER 253 231 14 N 1 0 33
+def VIEWS SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL test v1 /* ALGORITHM=UNDEFINED */ select 1 AS `1` NONE NO root@localhost DEFINER
+----------------------------------------------------------------
+SHOW CREATE PROCEDURE p1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Procedure 253 63 2 N 1 31 33
+def sql_mode 253 0 0 N 1 31 33
+def Create Procedure 253 2046 59 Y 0 31 33
+Procedure sql_mode Create Procedure
+p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
+SELECT 1
+----------------------------------------------------------------
+SELECT
+SPECIFIC_NAME,
+ROUTINE_CATALOG,
+ROUTINE_SCHEMA,
+ROUTINE_NAME,
+ROUTINE_TYPE,
+DTD_IDENTIFIER,
+ROUTINE_BODY,
+ROUTINE_DEFINITION,
+EXTERNAL_NAME,
+EXTERNAL_LANGUAGE,
+PARAMETER_STYLE,
+IS_DETERMINISTIC,
+SQL_DATA_ACCESS,
+SQL_PATH,
+SECURITY_TYPE,
+SQL_MODE,
+ROUTINE_COMMENT,
+DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'p1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def ROUTINES SPECIFIC_NAME SPECIFIC_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_CATALOG ROUTINE_CATALOG 253 1536 0 Y 0 0 33
+def ROUTINES ROUTINE_SCHEMA ROUTINE_SCHEMA 253 192 4 N 1 0 33
+def ROUTINES ROUTINE_NAME ROUTINE_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_TYPE ROUTINE_TYPE 253 27 9 N 1 0 33
+def ROUTINES DTD_IDENTIFIER DTD_IDENTIFIER 253 192 0 Y 0 0 33
+def ROUTINES ROUTINE_BODY ROUTINE_BODY 253 24 3 N 1 0 33
+def ROUTINES ROUTINE_DEFINITION ROUTINE_DEFINITION 252 589815 8 Y 16 0 33
+def ROUTINES EXTERNAL_NAME EXTERNAL_NAME 253 192 0 Y 0 0 33
+def ROUTINES EXTERNAL_LANGUAGE EXTERNAL_LANGUAGE 253 192 0 Y 0 0 33
+def ROUTINES PARAMETER_STYLE PARAMETER_STYLE 253 24 3 N 1 0 33
+def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
+def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
+def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
+def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
+def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
+def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
+def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
+p1 NULL test p1 PROCEDURE NULL SQL SELECT 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost
+----------------------------------------------------------------
+SHOW CREATE FUNCTION f1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Function 253 63 2 N 1 31 33
+def sql_mode 253 0 0 N 1 31 33
+def Create Function 253 2046 74 Y 0 31 33
+Function sql_mode Create Function
+f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
+RETURN 1
+----------------------------------------------------------------
+SELECT
+SPECIFIC_NAME,
+ROUTINE_CATALOG,
+ROUTINE_SCHEMA,
+ROUTINE_NAME,
+ROUTINE_TYPE,
+DTD_IDENTIFIER,
+ROUTINE_BODY,
+ROUTINE_DEFINITION,
+EXTERNAL_NAME,
+EXTERNAL_LANGUAGE,
+PARAMETER_STYLE,
+IS_DETERMINISTIC,
+SQL_DATA_ACCESS,
+SQL_PATH,
+SECURITY_TYPE,
+SQL_MODE,
+ROUTINE_COMMENT,
+DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'f1';
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def ROUTINES SPECIFIC_NAME SPECIFIC_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_CATALOG ROUTINE_CATALOG 253 1536 0 Y 0 0 33
+def ROUTINES ROUTINE_SCHEMA ROUTINE_SCHEMA 253 192 4 N 1 0 33
+def ROUTINES ROUTINE_NAME ROUTINE_NAME 253 192 2 N 1 0 33
+def ROUTINES ROUTINE_TYPE ROUTINE_TYPE 253 27 8 N 1 0 33
+def ROUTINES DTD_IDENTIFIER DTD_IDENTIFIER 253 192 7 Y 0 0 33
+def ROUTINES ROUTINE_BODY ROUTINE_BODY 253 24 3 N 1 0 33
+def ROUTINES ROUTINE_DEFINITION ROUTINE_DEFINITION 252 589815 8 Y 16 0 33
+def ROUTINES EXTERNAL_NAME EXTERNAL_NAME 253 192 0 Y 0 0 33
+def ROUTINES EXTERNAL_LANGUAGE EXTERNAL_LANGUAGE 253 192 0 Y 0 0 33
+def ROUTINES PARAMETER_STYLE PARAMETER_STYLE 253 24 3 N 1 0 33
+def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
+def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
+def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
+def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
+def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
+def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
+def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
+f1 NULL test f1 FUNCTION int(11) SQL RETURN 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost
+----------------------------------------------------------------
+DROP DATABASE mysqltest1;
+DROP TABLE t1;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+set names koi8r;
+DROP DATABASE IF EXISTS mysqltest1;
+CREATE DATABASE mysqltest1;
+use mysqltest1;
+CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
+
+---> Dumping mysqltest1 to show_check.mysqltest1.sql
+
+
+DROP DATABASE mysqltest1;
+
+
+---> Restoring mysqltest1...
+SHOW CREATE TABLE mysqltest1.t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `ËÏÌÏÎËÁ1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP DATABASE mysqltest1;
+use test;
+flush status;
+show variables like "log_queries_not_using_indexes";
+Variable_name Value
+log_queries_not_using_indexes ON
+select 1 from information_schema.tables limit 1;
+1
+1
+show status like 'slow_queries';
+Variable_name Value
+Slow_queries 1
+set global log_queries_not_using_indexes=OFF;
+show variables like "log_queries_not_using_indexes";
+Variable_name Value
+log_queries_not_using_indexes OFF
+select 1 from information_schema.tables limit 1;
+1
+1
+show status like 'slow_queries';
+Variable_name Value
+Slow_queries 1
+set global log_queries_not_using_indexes=ON;
+show variables like "log_queries_not_using_indexes";
+Variable_name Value
+log_queries_not_using_indexes ON
+select 1 from information_schema.tables limit 1;
+1
+1
+show status like 'slow_queries';
+Variable_name Value
+Slow_queries 2
+show variables like 'myisam_recover_options';
+Variable_name Value
+myisam_recover_options OFF
+End of 5.0 tests
diff --git a/mysql-test/r/skip_grants.result b/mysql-test/r/skip_grants.result
new file mode 100644
index 00000000000..3052bae8e97
--- /dev/null
+++ b/mysql-test/r/skip_grants.result
@@ -0,0 +1,72 @@
+use test;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+DROP VIEW IF EXISTS v3;
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+CREATE TABLE t1(c INT);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1
+FOR EACH ROW
+SET @a = 1;
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE PROCEDURE p1()
+SELECT 1;
+CREATE FUNCTION f1() RETURNS INT
+RETURN 1;
+CREATE DEFINER=a@b TRIGGER ti_ai AFTER INSERT ON t1
+FOR EACH ROW
+SET @b = 1;
+CREATE DEFINER=a@b VIEW v2 AS SELECT * FROM t1;
+CREATE DEFINER=a@b PROCEDURE p2()
+SELECT 2;
+CREATE DEFINER=a@b FUNCTION f2() RETURNS INT
+RETURN 2;
+CREATE DEFINER=a@'' TRIGGER ti_bu BEFORE UPDATE ON t1
+FOR EACH ROW
+SET @c = 1;
+CREATE DEFINER=a@'' VIEW v3 AS SELECT * FROM t1;
+CREATE DEFINER=a@'' PROCEDURE p3()
+SELECT 3;
+CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
+RETURN 3;
+SHOW CREATE VIEW v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1`
+SHOW CREATE PROCEDURE p3;
+Procedure sql_mode Create Procedure
+p3 CREATE DEFINER=`a`@`` PROCEDURE `p3`()
+SELECT 3
+SHOW CREATE FUNCTION f3;
+Function sql_mode Create Function
+f3 CREATE DEFINER=`a`@`` FUNCTION `f3`() RETURNS int(11)
+RETURN 3
+DROP TRIGGER t1_bi;
+DROP TRIGGER ti_ai;
+DROP TRIGGER ti_bu;
+DROP VIEW v1;
+DROP VIEW v2;
+DROP VIEW v3;
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;
+select count(*) from information_schema.COLUMN_PRIVILEGES;
+count(*)
+0
+select count(*) from information_schema.SCHEMA_PRIVILEGES;
+count(*)
+0
+select count(*) from information_schema.TABLE_PRIVILEGES;
+count(*)
+0
+select count(*) from information_schema.USER_PRIVILEGES;
+count(*)
+0
diff --git a/mysql-test/r/skip_name_resolve.result b/mysql-test/r/skip_name_resolve.result
index d8d873699a5..8ef52e75238 100644
--- a/mysql-test/r/skip_name_resolve.result
+++ b/mysql-test/r/skip_name_resolve.result
@@ -5,3 +5,10 @@ GRANT USAGE ON *.* TO 'mysqltest_1'@'127.0.0.1/255.255.255.255'
GRANT ALL PRIVILEGES ON `test`.* TO 'mysqltest_1'@'127.0.0.1/255.255.255.255'
REVOKE ALL ON test.* FROM mysqltest_1@'127.0.0.1/255.255.255.255';
DROP USER mysqltest_1@'127.0.0.1/255.255.255.255';
+select user();
+user()
+#
+show processlist;
+Id User Host db Command Time State Info
+<id> root <host> test <command> <time> <state> <info>
+<id> root <host> test <command> <time> <state> <info>
diff --git a/mysql-test/r/sp-big.result b/mysql-test/r/sp-big.result
new file mode 100644
index 00000000000..9765508859c
--- /dev/null
+++ b/mysql-test/r/sp-big.result
@@ -0,0 +1,62 @@
+drop procedure if exists test.longprocedure;
+drop table if exists t1;
+create table t1 (a int);
+insert into t1 values (1),(2),(3);
+length
+107520
+select length(routine_definition) from information_schema.routines where routine_schema = 'test' and routine_name = 'longprocedure';
+length(routine_definition)
+107530
+call test.longprocedure(@value);
+select @value;
+@value
+3
+drop procedure test.longprocedure;
+drop table t1;
+create table t1 (f1 char(100) , f2 mediumint , f3 int , f4 real, f5 numeric);
+insert into t1 (f1, f2, f3, f4, f5) values
+("This is a test case for for Bug#9819", 1, 2, 3.0, 4.598);
+Warnings:
+Note 1265 Data truncated for column 'f5' at row 1
+create table t2 like t1;
+select count(*) from t1;
+count(*)
+256
+select count(*) from t2;
+count(*)
+0
+drop procedure if exists p1;
+create procedure p1()
+begin
+declare done integer default 0;
+declare vf1 char(100) ;
+declare vf2 mediumint;
+declare vf3 int ;
+declare vf4 real ;
+declare vf5 numeric ;
+declare cur1 cursor for select f1,f2,f3,f4,f5 from t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+while done <> 1 do
+fetch cur1 into vf1, vf2, vf3, vf4, vf5;
+if not done then
+insert into t2 values (vf1, vf2, vf3, vf4, vf5);
+end if;
+end while;
+close cur1;
+end|
+call p1();
+select count(*) from t1;
+count(*)
+256
+select count(*) from t2;
+count(*)
+256
+select f1 from t1 limit 1;
+f1
+This is a test case for for Bug#9819
+select f1 from t2 limit 1;
+f1
+This is a test case for for Bug#9819
+drop procedure p1;
+drop table t1, t2;
diff --git a/mysql-test/r/sp-code.result b/mysql-test/r/sp-code.result
new file mode 100644
index 00000000000..219f3c9b37a
--- /dev/null
+++ b/mysql-test/r/sp-code.result
@@ -0,0 +1,736 @@
+drop procedure if exists empty;
+drop procedure if exists code_sample;
+create procedure empty()
+begin
+end;
+show procedure code empty;
+Pos Instruction
+drop procedure empty;
+create function almost_empty()
+returns int
+return 0;
+show function code almost_empty;
+Pos Instruction
+0 freturn 3 0
+drop function almost_empty;
+create procedure code_sample(x int, out err int, out nulls int)
+begin
+declare count int default 0;
+set nulls = 0;
+begin
+declare c cursor for select name from t1;
+declare exit handler for not found close c;
+open c;
+loop
+begin
+declare n varchar(20);
+declare continue handler for sqlexception set err=1;
+fetch c into n;
+if isnull(n) then
+set nulls = nulls + 1;
+else
+set count = count + 1;
+update t2 set idx = count where name=n;
+end if;
+end;
+end loop;
+end;
+select t.name, t.idx from t2 t order by idx asc;
+end//
+show procedure code code_sample;
+Pos Instruction
+0 set count@3 0
+1 set nulls@2 0
+2 cpush c@0
+3 hpush_jump 6 4 EXIT
+4 cclose c@0
+5 hreturn 0 19
+6 copen c@0
+7 set n@4 NULL
+8 hpush_jump 11 5 CONTINUE
+9 set err@1 1
+10 hreturn 5
+11 cfetch c@0 n@4
+12 jump_if_not 15(17) isnull(n@4)
+13 set nulls@2 (nulls@2 + 1)
+14 jump 17
+15 set count@3 (count@3 + 1)
+16 stmt 4 "update t2 set idx = count where name=n"
+17 hpop 1
+18 jump 7
+19 hpop 1
+20 cpop 1
+21 stmt 0 "select t.name, t.idx from t2 t order ..."
+drop procedure code_sample;
+drop procedure if exists sudoku_solve;
+create procedure sudoku_solve(p_naive boolean, p_all boolean)
+deterministic
+modifies sql data
+begin
+drop temporary table if exists sudoku_work, sudoku_schedule;
+create temporary table sudoku_work
+(
+row smallint not null,
+col smallint not null,
+dig smallint not null,
+cnt smallint,
+key using btree (cnt),
+key using btree (row),
+key using btree (col),
+unique key using hash (row,col)
+);
+create temporary table sudoku_schedule
+(
+idx int not null auto_increment primary key,
+row smallint not null,
+col smallint not null
+);
+call sudoku_init();
+if p_naive then
+update sudoku_work set cnt = 0 where dig = 0;
+else
+call sudoku_count();
+end if;
+insert into sudoku_schedule (row,col)
+select row,col from sudoku_work where cnt is not null order by cnt desc;
+begin
+declare v_scounter bigint default 0;
+declare v_i smallint default 1;
+declare v_dig smallint;
+declare v_schedmax smallint;
+select count(*) into v_schedmax from sudoku_schedule;
+more:
+loop
+begin
+declare v_tcounter bigint default 0;
+sched:
+while v_i <= v_schedmax do
+begin
+declare v_row, v_col smallint;
+select row,col into v_row,v_col from sudoku_schedule where v_i = idx;
+select dig into v_dig from sudoku_work
+where v_row = row and v_col = col;
+case v_dig
+when 0 then
+set v_dig = 1;
+update sudoku_work set dig = 1
+where v_row = row and v_col = col;
+when 9 then
+if v_i > 0 then
+update sudoku_work set dig = 0
+where v_row = row and v_col = col;
+set v_i = v_i - 1;
+iterate sched;
+else
+select v_scounter as 'Solutions';
+leave more;
+end if;
+else
+set v_dig = v_dig + 1;
+update sudoku_work set dig = v_dig
+where v_row = row and v_col = col;
+end case;
+set v_tcounter = v_tcounter + 1;
+if not sudoku_digit_ok(v_row, v_col, v_dig) then
+iterate sched;
+end if;
+set v_i = v_i + 1;
+end;
+end while sched;
+select dig from sudoku_work;
+select v_tcounter as 'Tests';
+set v_scounter = v_scounter + 1;
+if p_all and v_i > 0 then
+set v_i = v_i - 1;
+else
+leave more;
+end if;
+end;
+end loop more;
+end;
+drop temporary table sudoku_work, sudoku_schedule;
+end//
+show procedure code sudoku_solve;
+Pos Instruction
+0 stmt 9 "drop temporary table if exists sudoku..."
+1 stmt 1 "create temporary table sudoku_work ( ..."
+2 stmt 1 "create temporary table sudoku_schedul..."
+3 stmt 95 "call sudoku_init()"
+4 jump_if_not 7(8) p_naive@0
+5 stmt 4 "update sudoku_work set cnt = 0 where ..."
+6 jump 8
+7 stmt 95 "call sudoku_count()"
+8 stmt 6 "insert into sudoku_schedule (row,col)..."
+9 set v_scounter@2 0
+10 set v_i@3 1
+11 set v_dig@4 NULL
+12 set v_schedmax@5 NULL
+13 stmt 0 "select count(*) into v_schedmax from ..."
+14 set v_tcounter@6 0
+15 jump_if_not 39(39) (v_i@3 <= v_schedmax@5)
+16 set v_row@7 NULL
+17 set v_col@8 NULL
+18 stmt 0 "select row,col into v_row,v_col from ..."
+19 stmt 0 "select dig into v_dig from sudoku_wor..."
+20 set_case_expr (34) 0 v_dig@4
+21 jump_if_not 25(34) (case_expr@0 = 0)
+22 set v_dig@4 1
+23 stmt 4 "update sudoku_work set dig = 1 where ..."
+24 jump 34
+25 jump_if_not 32(34) (case_expr@0 = 9)
+26 jump_if_not 30(34) (v_i@3 > 0)
+27 stmt 4 "update sudoku_work set dig = 0 where ..."
+28 set v_i@3 (v_i@3 - 1)
+29 jump 15
+30 stmt 0 "select v_scounter as 'Solutions'"
+31 jump 45
+32 set v_dig@4 (v_dig@4 + 1)
+33 stmt 4 "update sudoku_work set dig = v_dig wh..."
+34 set v_tcounter@6 (v_tcounter@6 + 1)
+35 jump_if_not 37(37) (not(`sudoku_digit_ok`(v_row@7,v_col@8,v_dig@4)))
+36 jump 15
+37 set v_i@3 (v_i@3 + 1)
+38 jump 15
+39 stmt 0 "select dig from sudoku_work"
+40 stmt 0 "select v_tcounter as 'Tests'"
+41 set v_scounter@2 (v_scounter@2 + 1)
+42 jump_if_not 45(14) (p_all@1 and (v_i@3 > 0))
+43 set v_i@3 (v_i@3 - 1)
+44 jump 14
+45 stmt 9 "drop temporary table sudoku_work, sud..."
+drop procedure sudoku_solve;
+DROP PROCEDURE IF EXISTS proc_19194_simple;
+DROP PROCEDURE IF EXISTS proc_19194_searched;
+DROP PROCEDURE IF EXISTS proc_19194_nested_1;
+DROP PROCEDURE IF EXISTS proc_19194_nested_2;
+DROP PROCEDURE IF EXISTS proc_19194_nested_3;
+DROP PROCEDURE IF EXISTS proc_19194_nested_4;
+CREATE PROCEDURE proc_19194_simple(i int)
+BEGIN
+DECLARE str CHAR(10);
+CASE i
+WHEN 1 THEN SET str="1";
+WHEN 2 THEN SET str="2";
+WHEN 3 THEN SET str="3";
+ELSE SET str="unknown";
+END CASE;
+SELECT str;
+END|
+CREATE PROCEDURE proc_19194_searched(i int)
+BEGIN
+DECLARE str CHAR(10);
+CASE
+WHEN i=1 THEN SET str="1";
+WHEN i=2 THEN SET str="2";
+WHEN i=3 THEN SET str="3";
+ELSE SET str="unknown";
+END CASE;
+SELECT str;
+END|
+CREATE PROCEDURE proc_19194_nested_1(i int, j int)
+BEGIN
+DECLARE str_i CHAR(10);
+DECLARE str_j CHAR(10);
+CASE i
+WHEN 10 THEN SET str_i="10";
+WHEN 20 THEN
+BEGIN
+set str_i="20";
+CASE
+WHEN j=1 THEN SET str_j="1";
+WHEN j=2 THEN SET str_j="2";
+WHEN j=3 THEN SET str_j="3";
+ELSE SET str_j="unknown";
+END CASE;
+select "i was 20";
+END;
+WHEN 30 THEN SET str_i="30";
+WHEN 40 THEN SET str_i="40";
+ELSE SET str_i="unknown";
+END CASE;
+SELECT str_i, str_j;
+END|
+CREATE PROCEDURE proc_19194_nested_2(i int, j int)
+BEGIN
+DECLARE str_i CHAR(10);
+DECLARE str_j CHAR(10);
+CASE
+WHEN i=10 THEN SET str_i="10";
+WHEN i=20 THEN
+BEGIN
+set str_i="20";
+CASE j
+WHEN 1 THEN SET str_j="1";
+WHEN 2 THEN SET str_j="2";
+WHEN 3 THEN SET str_j="3";
+ELSE SET str_j="unknown";
+END CASE;
+select "i was 20";
+END;
+WHEN i=30 THEN SET str_i="30";
+WHEN i=40 THEN SET str_i="40";
+ELSE SET str_i="unknown";
+END CASE;
+SELECT str_i, str_j;
+END|
+CREATE PROCEDURE proc_19194_nested_3(i int, j int)
+BEGIN
+DECLARE str_i CHAR(10);
+DECLARE str_j CHAR(10);
+CASE i
+WHEN 10 THEN SET str_i="10";
+WHEN 20 THEN
+BEGIN
+set str_i="20";
+CASE j
+WHEN 1 THEN SET str_j="1";
+WHEN 2 THEN SET str_j="2";
+WHEN 3 THEN SET str_j="3";
+ELSE SET str_j="unknown";
+END CASE;
+select "i was 20";
+END;
+WHEN 30 THEN SET str_i="30";
+WHEN 40 THEN SET str_i="40";
+ELSE SET str_i="unknown";
+END CASE;
+SELECT str_i, str_j;
+END|
+CREATE PROCEDURE proc_19194_nested_4(i int, j int)
+BEGIN
+DECLARE str_i CHAR(10);
+DECLARE str_j CHAR(10);
+CASE
+WHEN i=10 THEN SET str_i="10";
+WHEN i=20 THEN
+BEGIN
+set str_i="20";
+CASE
+WHEN j=1 THEN SET str_j="1";
+WHEN j=2 THEN SET str_j="2";
+WHEN j=3 THEN SET str_j="3";
+ELSE SET str_j="unknown";
+END CASE;
+select "i was 20";
+END;
+WHEN i=30 THEN SET str_i="30";
+WHEN i=40 THEN SET str_i="40";
+ELSE SET str_i="unknown";
+END CASE;
+SELECT str_i, str_j;
+END|
+SHOW PROCEDURE CODE proc_19194_simple;
+Pos Instruction
+0 set str@1 NULL
+1 set_case_expr (12) 0 i@0
+2 jump_if_not 5(12) (case_expr@0 = 1)
+3 set str@1 _latin1'1'
+4 jump 12
+5 jump_if_not 8(12) (case_expr@0 = 2)
+6 set str@1 _latin1'2'
+7 jump 12
+8 jump_if_not 11(12) (case_expr@0 = 3)
+9 set str@1 _latin1'3'
+10 jump 12
+11 set str@1 _latin1'unknown'
+12 stmt 0 "SELECT str"
+SHOW PROCEDURE CODE proc_19194_searched;
+Pos Instruction
+0 set str@1 NULL
+1 jump_if_not 4(11) (i@0 = 1)
+2 set str@1 _latin1'1'
+3 jump 11
+4 jump_if_not 7(11) (i@0 = 2)
+5 set str@1 _latin1'2'
+6 jump 11
+7 jump_if_not 10(11) (i@0 = 3)
+8 set str@1 _latin1'3'
+9 jump 11
+10 set str@1 _latin1'unknown'
+11 stmt 0 "SELECT str"
+SHOW PROCEDURE CODE proc_19194_nested_1;
+Pos Instruction
+0 set str_i@2 NULL
+1 set str_j@3 NULL
+2 set_case_expr (27) 0 i@0
+3 jump_if_not 6(27) (case_expr@0 = 10)
+4 set str_i@2 _latin1'10'
+5 jump 27
+6 jump_if_not 20(27) (case_expr@0 = 20)
+7 set str_i@2 _latin1'20'
+8 jump_if_not 11(18) (j@1 = 1)
+9 set str_j@3 _latin1'1'
+10 jump 18
+11 jump_if_not 14(18) (j@1 = 2)
+12 set str_j@3 _latin1'2'
+13 jump 18
+14 jump_if_not 17(18) (j@1 = 3)
+15 set str_j@3 _latin1'3'
+16 jump 18
+17 set str_j@3 _latin1'unknown'
+18 stmt 0 "select "i was 20""
+19 jump 27
+20 jump_if_not 23(27) (case_expr@0 = 30)
+21 set str_i@2 _latin1'30'
+22 jump 27
+23 jump_if_not 26(27) (case_expr@0 = 40)
+24 set str_i@2 _latin1'40'
+25 jump 27
+26 set str_i@2 _latin1'unknown'
+27 stmt 0 "SELECT str_i, str_j"
+SHOW PROCEDURE CODE proc_19194_nested_2;
+Pos Instruction
+0 set str_i@2 NULL
+1 set str_j@3 NULL
+2 jump_if_not 5(27) (i@0 = 10)
+3 set str_i@2 _latin1'10'
+4 jump 27
+5 jump_if_not 20(27) (i@0 = 20)
+6 set str_i@2 _latin1'20'
+7 set_case_expr (18) 0 j@1
+8 jump_if_not 11(18) (case_expr@0 = 1)
+9 set str_j@3 _latin1'1'
+10 jump 18
+11 jump_if_not 14(18) (case_expr@0 = 2)
+12 set str_j@3 _latin1'2'
+13 jump 18
+14 jump_if_not 17(18) (case_expr@0 = 3)
+15 set str_j@3 _latin1'3'
+16 jump 18
+17 set str_j@3 _latin1'unknown'
+18 stmt 0 "select "i was 20""
+19 jump 27
+20 jump_if_not 23(27) (i@0 = 30)
+21 set str_i@2 _latin1'30'
+22 jump 27
+23 jump_if_not 26(27) (i@0 = 40)
+24 set str_i@2 _latin1'40'
+25 jump 27
+26 set str_i@2 _latin1'unknown'
+27 stmt 0 "SELECT str_i, str_j"
+SHOW PROCEDURE CODE proc_19194_nested_3;
+Pos Instruction
+0 set str_i@2 NULL
+1 set str_j@3 NULL
+2 set_case_expr (28) 0 i@0
+3 jump_if_not 6(28) (case_expr@0 = 10)
+4 set str_i@2 _latin1'10'
+5 jump 28
+6 jump_if_not 21(28) (case_expr@0 = 20)
+7 set str_i@2 _latin1'20'
+8 set_case_expr (19) 1 j@1
+9 jump_if_not 12(19) (case_expr@1 = 1)
+10 set str_j@3 _latin1'1'
+11 jump 19
+12 jump_if_not 15(19) (case_expr@1 = 2)
+13 set str_j@3 _latin1'2'
+14 jump 19
+15 jump_if_not 18(19) (case_expr@1 = 3)
+16 set str_j@3 _latin1'3'
+17 jump 19
+18 set str_j@3 _latin1'unknown'
+19 stmt 0 "select "i was 20""
+20 jump 28
+21 jump_if_not 24(28) (case_expr@0 = 30)
+22 set str_i@2 _latin1'30'
+23 jump 28
+24 jump_if_not 27(28) (case_expr@0 = 40)
+25 set str_i@2 _latin1'40'
+26 jump 28
+27 set str_i@2 _latin1'unknown'
+28 stmt 0 "SELECT str_i, str_j"
+SHOW PROCEDURE CODE proc_19194_nested_4;
+Pos Instruction
+0 set str_i@2 NULL
+1 set str_j@3 NULL
+2 jump_if_not 5(26) (i@0 = 10)
+3 set str_i@2 _latin1'10'
+4 jump 26
+5 jump_if_not 19(26) (i@0 = 20)
+6 set str_i@2 _latin1'20'
+7 jump_if_not 10(17) (j@1 = 1)
+8 set str_j@3 _latin1'1'
+9 jump 17
+10 jump_if_not 13(17) (j@1 = 2)
+11 set str_j@3 _latin1'2'
+12 jump 17
+13 jump_if_not 16(17) (j@1 = 3)
+14 set str_j@3 _latin1'3'
+15 jump 17
+16 set str_j@3 _latin1'unknown'
+17 stmt 0 "select "i was 20""
+18 jump 26
+19 jump_if_not 22(26) (i@0 = 30)
+20 set str_i@2 _latin1'30'
+21 jump 26
+22 jump_if_not 25(26) (i@0 = 40)
+23 set str_i@2 _latin1'40'
+24 jump 26
+25 set str_i@2 _latin1'unknown'
+26 stmt 0 "SELECT str_i, str_j"
+CALL proc_19194_nested_1(10, 1);
+str_i str_j
+10 NULL
+CALL proc_19194_nested_1(25, 1);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_1(20, 1);
+i was 20
+i was 20
+str_i str_j
+20 1
+CALL proc_19194_nested_1(20, 2);
+i was 20
+i was 20
+str_i str_j
+20 2
+CALL proc_19194_nested_1(20, 3);
+i was 20
+i was 20
+str_i str_j
+20 3
+CALL proc_19194_nested_1(20, 4);
+i was 20
+i was 20
+str_i str_j
+20 unknown
+CALL proc_19194_nested_1(30, 1);
+str_i str_j
+30 NULL
+CALL proc_19194_nested_1(40, 1);
+str_i str_j
+40 NULL
+CALL proc_19194_nested_1(0, 0);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_2(10, 1);
+str_i str_j
+10 NULL
+CALL proc_19194_nested_2(25, 1);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_2(20, 1);
+i was 20
+i was 20
+str_i str_j
+20 1
+CALL proc_19194_nested_2(20, 2);
+i was 20
+i was 20
+str_i str_j
+20 2
+CALL proc_19194_nested_2(20, 3);
+i was 20
+i was 20
+str_i str_j
+20 3
+CALL proc_19194_nested_2(20, 4);
+i was 20
+i was 20
+str_i str_j
+20 unknown
+CALL proc_19194_nested_2(30, 1);
+str_i str_j
+30 NULL
+CALL proc_19194_nested_2(40, 1);
+str_i str_j
+40 NULL
+CALL proc_19194_nested_2(0, 0);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_3(10, 1);
+str_i str_j
+10 NULL
+CALL proc_19194_nested_3(25, 1);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_3(20, 1);
+i was 20
+i was 20
+str_i str_j
+20 1
+CALL proc_19194_nested_3(20, 2);
+i was 20
+i was 20
+str_i str_j
+20 2
+CALL proc_19194_nested_3(20, 3);
+i was 20
+i was 20
+str_i str_j
+20 3
+CALL proc_19194_nested_3(20, 4);
+i was 20
+i was 20
+str_i str_j
+20 unknown
+CALL proc_19194_nested_3(30, 1);
+str_i str_j
+30 NULL
+CALL proc_19194_nested_3(40, 1);
+str_i str_j
+40 NULL
+CALL proc_19194_nested_3(0, 0);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_4(10, 1);
+str_i str_j
+10 NULL
+CALL proc_19194_nested_4(25, 1);
+str_i str_j
+unknown NULL
+CALL proc_19194_nested_4(20, 1);
+i was 20
+i was 20
+str_i str_j
+20 1
+CALL proc_19194_nested_4(20, 2);
+i was 20
+i was 20
+str_i str_j
+20 2
+CALL proc_19194_nested_4(20, 3);
+i was 20
+i was 20
+str_i str_j
+20 3
+CALL proc_19194_nested_4(20, 4);
+i was 20
+i was 20
+str_i str_j
+20 unknown
+CALL proc_19194_nested_4(30, 1);
+str_i str_j
+30 NULL
+CALL proc_19194_nested_4(40, 1);
+str_i str_j
+40 NULL
+CALL proc_19194_nested_4(0, 0);
+str_i str_j
+unknown NULL
+DROP PROCEDURE proc_19194_simple;
+DROP PROCEDURE proc_19194_searched;
+DROP PROCEDURE proc_19194_nested_1;
+DROP PROCEDURE proc_19194_nested_2;
+DROP PROCEDURE proc_19194_nested_3;
+DROP PROCEDURE proc_19194_nested_4;
+DROP PROCEDURE IF EXISTS p1;
+CREATE PROCEDURE p1() CREATE INDEX idx ON t1 (c1);
+SHOW PROCEDURE CODE p1;
+Pos Instruction
+0 stmt 2 "CREATE INDEX idx ON t1 (c1)"
+DROP PROCEDURE p1;
+drop table if exists t1;
+drop procedure if exists proc_26977_broken;
+drop procedure if exists proc_26977_works;
+create table t1(a int unique);
+create procedure proc_26977_broken(v int)
+begin
+declare i int default 5;
+declare continue handler for sqlexception
+begin
+select 'caught something';
+retry:
+while i > 0 do
+begin
+set i = i - 1;
+select 'looping', i;
+end;
+end while retry;
+end;
+select 'do something';
+insert into t1 values (v);
+select 'do something again';
+insert into t1 values (v);
+end//
+create procedure proc_26977_works(v int)
+begin
+declare i int default 5;
+declare continue handler for sqlexception
+begin
+select 'caught something';
+retry:
+while i > 0 do
+begin
+set i = i - 1;
+select 'looping', i;
+end;
+end while retry;
+select 'optimizer: keep hreturn';
+end;
+select 'do something';
+insert into t1 values (v);
+select 'do something again';
+insert into t1 values (v);
+end//
+show procedure code proc_26977_broken;
+Pos Instruction
+0 set i@1 5
+1 hpush_jump 8 2 CONTINUE
+2 stmt 0 "select 'caught something'"
+3 jump_if_not 7(7) (i@1 > 0)
+4 set i@1 (i@1 - 1)
+5 stmt 0 "select 'looping', i"
+6 jump 3
+7 hreturn 2
+8 stmt 0 "select 'do something'"
+9 stmt 5 "insert into t1 values (v)"
+10 stmt 0 "select 'do something again'"
+11 stmt 5 "insert into t1 values (v)"
+12 hpop 1
+show procedure code proc_26977_works;
+Pos Instruction
+0 set i@1 5
+1 hpush_jump 9 2 CONTINUE
+2 stmt 0 "select 'caught something'"
+3 jump_if_not 7(7) (i@1 > 0)
+4 set i@1 (i@1 - 1)
+5 stmt 0 "select 'looping', i"
+6 jump 3
+7 stmt 0 "select 'optimizer: keep hreturn'"
+8 hreturn 2
+9 stmt 0 "select 'do something'"
+10 stmt 5 "insert into t1 values (v)"
+11 stmt 0 "select 'do something again'"
+12 stmt 5 "insert into t1 values (v)"
+13 hpop 1
+call proc_26977_broken(1);
+do something
+do something
+do something again
+do something again
+caught something
+caught something
+looping i
+looping 4
+looping i
+looping 3
+looping i
+looping 2
+looping i
+looping 1
+looping i
+looping 0
+call proc_26977_works(2);
+do something
+do something
+do something again
+do something again
+caught something
+caught something
+looping i
+looping 4
+looping i
+looping 3
+looping i
+looping 2
+looping i
+looping 1
+looping i
+looping 0
+optimizer: keep hreturn
+optimizer: keep hreturn
+drop table t1;
+drop procedure proc_26977_broken;
+drop procedure proc_26977_works;
+End of 5.0 tests.
diff --git a/mysql-test/r/sp-destruct.result b/mysql-test/r/sp-destruct.result
new file mode 100644
index 00000000000..4df8086c84e
--- /dev/null
+++ b/mysql-test/r/sp-destruct.result
@@ -0,0 +1,83 @@
+use test;
+drop procedure if exists bug14233;
+drop function if exists bug14233;
+drop table if exists t1;
+drop view if exists v1;
+create procedure bug14233()
+set @x = 42;
+create function bug14233_f() returns int
+return 42;
+create table t1 (id int);
+create trigger t1_ai after insert on t1 for each row call bug14233();
+alter table mysql.proc drop type;
+call bug14233();
+ERROR HY000: Failed to load routine test.bug14233. The table mysql.proc is missing, corrupt, or contains bad data (internal code -5)
+create view v1 as select bug14233_f();
+ERROR HY000: Failed to load routine test.bug14233_f. The table mysql.proc is missing, corrupt, or contains bad data (internal code -5)
+insert into t1 values (0);
+ERROR HY000: Failed to load routine test.bug14233. The table mysql.proc is missing, corrupt, or contains bad data (internal code -5)
+flush table mysql.proc;
+call bug14233();
+ERROR HY000: Incorrect information in file: './mysql/proc.frm'
+create view v1 as select bug14233_f();
+ERROR HY000: Incorrect information in file: './mysql/proc.frm'
+insert into t1 values (0);
+ERROR HY000: Incorrect information in file: './mysql/proc.frm'
+flush table mysql.proc;
+call bug14233();
+ERROR 42S02: Table 'mysql.proc' doesn't exist
+create view v1 as select bug14233_f();
+ERROR 42S02: Table 'mysql.proc' doesn't exist
+insert into t1 values (0);
+ERROR 42S02: Table 'mysql.proc' doesn't exist
+flush table mysql.proc;
+flush privileges;
+delete from mysql.proc where name like 'bug14233%';
+insert into mysql.proc
+(
+db, name, type, specific_name, language, sql_data_access, is_deterministic,
+security_type, param_list, returns, body, definer, created, modified,
+sql_mode, comment
+)
+values
+(
+'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO',
+'DEFINER', '', 'int(10)',
+'select count(*) from mysql.user',
+'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+),
+(
+'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO',
+'DEFINER', '', 'int(10)',
+'begin declare x int; select count(*) into x from mysql.user; end',
+'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+),
+(
+'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO',
+'DEFINER', '', '',
+'alksj wpsj sa ^#!@ ',
+'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+);
+select bug14233_1();
+ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+create view v1 as select bug14233_1();
+ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+select bug14233_2();
+ERROR HY000: Failed to load routine test.bug14233_2. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+create view v1 as select bug14233_2();
+ERROR HY000: Failed to load routine test.bug14233_2. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+call bug14233_3();
+ERROR HY000: Failed to load routine test.bug14233_3. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+drop trigger t1_ai;
+create trigger t1_ai after insert on t1 for each row call bug14233_3();
+insert into t1 values (0);
+ERROR HY000: Failed to load routine test.bug14233_3. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+drop trigger t1_ai;
+drop table t1;
+drop function bug14233_1;
+drop function bug14233_2;
+drop procedure bug14233_3;
+show procedure status;
+Db Name Type Definer Modified Created Security_type Comment
+show function status;
+Db Name Type Definer Modified Created Security_type Comment
diff --git a/mysql-test/r/sp-dynamic.result b/mysql-test/r/sp-dynamic.result
new file mode 100644
index 00000000000..0f50bcc97cd
--- /dev/null
+++ b/mysql-test/r/sp-dynamic.result
@@ -0,0 +1,391 @@
+drop procedure if exists p1|
+drop procedure if exists p2|
+create procedure p1()
+begin
+prepare stmt from "select 1";
+execute stmt;
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+end|
+call p1()|
+1
+1
+1
+1
+1
+1
+call p1()|
+1
+1
+1
+1
+1
+1
+call p1()|
+1
+1
+1
+1
+1
+1
+drop procedure p1|
+create procedure p1()
+begin
+execute stmt;
+end|
+prepare stmt from "call p1()"|
+set @SAVE_SP_RECURSION_LEVELS=@@max_sp_recursion_depth|
+set @@max_sp_recursion_depth=100|
+execute stmt|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+execute stmt|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+execute stmt|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+call p1()|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+call p1()|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+call p1()|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+set @@max_sp_recursion_depth=@SAVE_SP_RECURSION_LEVELS|
+call p1()|
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine p1
+call p1()|
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine p1
+call p1()|
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine p1
+drop procedure p1|
+create procedure p1()
+begin
+prepare stmt from "create procedure p2() begin select 1; end";
+execute stmt;
+deallocate prepare stmt;
+end|
+call p1()|
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+call p1()|
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+drop procedure p1|
+create procedure p1()
+begin
+prepare stmt from "drop procedure p2";
+execute stmt;
+deallocate prepare stmt;
+end|
+call p1()|
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+call p1()|
+ERROR HY000: This command is not supported in the prepared statement protocol yet
+drop procedure p1|
+create procedure p1()
+begin
+prepare stmt_drop from "drop table if exists t1";
+execute stmt_drop;
+prepare stmt from "create table t1 (a int)";
+execute stmt;
+insert into t1 (a) values (1);
+select * from t1;
+prepare stmt_alter from "alter table t1 add (b int)";
+execute stmt_alter;
+insert into t1 (a,b) values (2,1);
+deallocate prepare stmt_alter;
+deallocate prepare stmt;
+deallocate prepare stmt_drop;
+end|
+call p1()|
+a
+1
+Warnings:
+Note 1051 Unknown table 't1'
+call p1()|
+a
+1
+drop procedure p1|
+create procedure p1()
+begin
+set @tab_name=concat("tab_", replace(curdate(), '-', '_'));
+set @drop_sql=concat("drop table if exists ", @tab_name);
+set @create_sql=concat("create table ", @tab_name, " (a int)");
+set @insert_sql=concat("insert into ", @tab_name, " values (1), (2), (3)");
+set @select_sql=concat("select * from ", @tab_name);
+select @tab_name;
+select @drop_sql;
+select @create_sql;
+select @insert_sql;
+select @select_sql;
+prepare stmt_drop from @drop_sql;
+execute stmt_drop;
+prepare stmt from @create_sql;
+execute stmt;
+prepare stmt from @insert_sql;
+execute stmt;
+prepare stmt from @select_sql;
+execute stmt;
+execute stmt_drop;
+deallocate prepare stmt;
+deallocate prepare stmt_drop;
+end|
+call p1()|
+call p1()|
+drop procedure p1|
+create procedure p1()
+begin
+prepare stmt_drop from "drop table if exists t1";
+execute stmt_drop;
+prepare stmt from "create table t1 (a int)";
+execute stmt;
+deallocate prepare stmt;
+deallocate prepare stmt_drop;
+end|
+drop function if exists f1|
+create function f1(a int) returns int
+begin
+call p1();
+return 1;
+end|
+select f1(0)|
+ERROR 0A000: Dynamic SQL is not allowed in stored function or trigger
+select f1(f1(0))|
+ERROR 0A000: Dynamic SQL is not allowed in stored function or trigger
+select f1(f1(f1(0)))|
+ERROR 0A000: Dynamic SQL is not allowed in stored function or trigger
+drop function f1|
+drop procedure p1|
+create procedure p1()
+begin
+drop table if exists t1;
+create table t1 (id integer not null primary key,
+name varchar(20) not null);
+insert into t1 (id, name) values (1, 'aaa'), (2, 'bbb'), (3, 'ccc');
+prepare stmt from "select name from t1";
+execute stmt;
+select name from t1;
+execute stmt;
+prepare stmt from
+"select name from t1 where name=(select name from t1 where id=2)";
+execute stmt;
+select name from t1 where name=(select name from t1 where id=2);
+execute stmt;
+end|
+call p1()|
+name
+aaa
+bbb
+ccc
+name
+aaa
+bbb
+ccc
+name
+aaa
+bbb
+ccc
+name
+bbb
+name
+bbb
+name
+bbb
+call p1()|
+name
+aaa
+bbb
+ccc
+name
+aaa
+bbb
+ccc
+name
+aaa
+bbb
+ccc
+name
+bbb
+name
+bbb
+name
+bbb
+drop procedure p1|
+prepare stmt from "select * from t1"|
+create procedure p1()
+begin
+execute stmt;
+deallocate prepare stmt;
+end|
+call p1()|
+id name
+1 aaa
+2 bbb
+3 ccc
+call p1()|
+ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE
+drop procedure p1|
+create procedure p1()
+begin
+declare a char(10);
+set a="sp-variable";
+set @a="mysql-variable";
+prepare stmt from "select 'dynamic sql:', @a, a";
+execute stmt;
+end|
+call p1()|
+ERROR 42S22: Unknown column 'a' in 'field list'
+call p1()|
+ERROR 42S22: Unknown column 'a' in 'field list'
+drop procedure p1|
+create procedure p1()
+begin
+prepare stmt from 'select ? as a';
+execute stmt using @a;
+end|
+set @a=1|
+call p1()|
+a
+1
+call p1()|
+a
+1
+drop procedure p1|
+drop table if exists t1|
+drop table if exists t2|
+Warnings:
+Note 1051 Unknown table 't2'
+create table t1 (id integer primary key auto_increment,
+stmt_text char(35), status varchar(20))|
+insert into t1 (stmt_text) values
+("select 1"), ("flush tables"), ("handler t1 open as ha"),
+("analyze table t1"), ("check table t1"), ("checksum table t1"),
+("check table t1"), ("optimize table t1"), ("repair table t1"),
+("describe extended select * from t1"),
+("help help"), ("show databases"), ("show tables"),
+("show table status"), ("show open tables"), ("show storage engines"),
+("insert into t1 (id) values (1)"), ("update t1 set status=''"),
+("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
+("create view v1 as select 1"), ("alter view v1 as select 2"),
+("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
+("drop table t2")|
+create procedure p1()
+begin
+declare v_stmt_text varchar(255);
+declare v_id integer;
+declare done int default 0;
+declare c cursor for select id, stmt_text from t1;
+declare continue handler for 1295 -- ER_UNSUPPORTED_PS
+set @status='not supported';
+declare continue handler for 1064 -- ER_SYNTAX_ERROR
+set @status='syntax error';
+declare continue handler for sqlstate '02000' set done = 1;
+prepare update_stmt from "update t1 set status=? where id=?";
+open c;
+repeat
+if not done then
+fetch c into v_id, v_stmt_text;
+set @id=v_id, @stmt_text=v_stmt_text;
+set @status="supported";
+prepare stmt from @stmt_text;
+execute update_stmt using @status, @id;
+end if;
+until done end repeat;
+deallocate prepare update_stmt;
+end|
+call p1()|
+select * from t1|
+id stmt_text status
+1 select 1 supported
+2 flush tables not supported
+3 handler t1 open as ha not supported
+4 analyze table t1 supported
+5 check table t1 not supported
+6 checksum table t1 not supported
+7 check table t1 not supported
+8 optimize table t1 supported
+9 repair table t1 supported
+10 describe extended select * from t1 supported
+11 help help not supported
+12 show databases supported
+13 show tables supported
+14 show table status supported
+15 show open tables supported
+16 show storage engines supported
+17 insert into t1 (id) values (1) supported
+18 update t1 set status='' supported
+19 delete from t1 supported
+20 truncate t1 supported
+21 call p1() supported
+22 foo bar syntax error
+23 create view v1 as select 1 supported
+24 alter view v1 as select 2 not supported
+25 drop view v1 supported
+26 create table t2 (a int) supported
+27 alter table t2 add (b int) supported
+28 drop table t2 supported
+drop procedure p1|
+drop table t1|
+prepare stmt from 'select 1'|
+create procedure p1() execute stmt|
+call p1()|
+1
+1
+call p1()|
+1
+1
+drop procedure p1|
+create function f1() returns int
+begin
+deallocate prepare stmt;
+return 1;
+end|
+ERROR 0A000: Dynamic SQL is not allowed in stored function or trigger
+create procedure p1()
+begin
+prepare stmt from 'select 1 A';
+execute stmt;
+end|
+prepare stmt from 'call p1()'|
+execute stmt|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+execute stmt|
+ERROR HY000: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
+drop procedure p1|
+drop table if exists t1, t2|
+create procedure p1 (a int) language sql deterministic
+begin
+declare rsql varchar(100);
+drop table if exists t1, t2;
+set @rsql= "create table t1 (a int)";
+select @rsql;
+prepare pst from @rsql;
+execute pst;
+set @rsql= null;
+set @rsql= "create table t2 (a int)";
+select @rsql;
+prepare pst from @rsql;
+execute pst;
+drop table if exists t1, t2;
+end|
+set @a:=0|
+call p1(@a)|
+@rsql
+create table t1 (a int)
+@rsql
+create table t2 (a int)
+Warnings:
+Note 1051 Unknown table 't1'
+Note 1051 Unknown table 't2'
+select @a|
+@a
+0
+call p1(@a)|
+@rsql
+create table t1 (a int)
+@rsql
+create table t2 (a int)
+Warnings:
+Note 1051 Unknown table 't1'
+Note 1051 Unknown table 't2'
+select @a|
+@a
+0
+drop procedure if exists p1|
diff --git a/mysql-test/r/sp-error.result b/mysql-test/r/sp-error.result
new file mode 100644
index 00000000000..b4bcfbdc7f7
--- /dev/null
+++ b/mysql-test/r/sp-error.result
@@ -0,0 +1,1467 @@
+drop table if exists t1, t2;
+delete from mysql.proc;
+create procedure syntaxerror(t 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 '' at line 1
+create procedure syntaxerror(t 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 '' at line 1
+create procedure syntaxerror(t 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 '' at line 1
+drop table if exists t3|
+create table t3 ( x int )|
+insert into t3 values (2), (3)|
+create procedure bad_into(out param int)
+select x from t3 into param|
+call bad_into(@x)|
+ERROR 42000: Result consisted of more than one row
+drop procedure bad_into|
+drop table t3|
+create procedure proc1()
+set @x = 42|
+create function func1() returns int
+return 42|
+create procedure foo()
+create procedure bar() set @x=3|
+ERROR 2F003: Can't create a PROCEDURE from within another stored routine
+create procedure foo()
+create function bar() returns double return 2.3|
+ERROR 2F003: Can't create a FUNCTION from within another stored routine
+create procedure proc1()
+set @x = 42|
+ERROR 42000: PROCEDURE proc1 already exists
+create function func1() returns int
+return 42|
+ERROR 42000: FUNCTION func1 already exists
+drop procedure proc1|
+drop function func1|
+alter procedure foo|
+ERROR 42000: PROCEDURE test.foo does not exist
+alter function foo|
+ERROR 42000: FUNCTION test.foo does not exist
+drop procedure foo|
+ERROR 42000: PROCEDURE test.foo does not exist
+drop function foo|
+ERROR 42000: FUNCTION test.foo does not exist
+call foo()|
+ERROR 42000: PROCEDURE test.foo does not exist
+drop procedure if exists foo|
+Warnings:
+Note 1305 PROCEDURE foo does not exist
+show create procedure foo|
+ERROR 42000: PROCEDURE foo does not exist
+show create function foo|
+ERROR 42000: FUNCTION foo does not exist
+create procedure foo()
+foo: loop
+leave bar;
+end loop|
+ERROR 42000: LEAVE with no matching label: bar
+create procedure foo()
+foo: loop
+iterate bar;
+end loop|
+ERROR 42000: ITERATE with no matching label: bar
+create procedure foo()
+foo: begin
+iterate foo;
+end|
+ERROR 42000: ITERATE with no matching label: foo
+create procedure foo()
+foo: loop
+foo: loop
+set @x=2;
+end loop foo;
+end loop foo|
+ERROR 42000: Redefining label foo
+create procedure foo()
+foo: loop
+set @x=2;
+end loop bar|
+ERROR 42000: End-label bar without match
+create procedure foo()
+return 42|
+ERROR 42000: RETURN is only allowed in a FUNCTION
+create procedure p(x int)
+set @x = x|
+create function f(x int) returns int
+return x+42|
+call p()|
+ERROR 42000: Incorrect number of arguments for PROCEDURE test.p; expected 1, got 0
+call p(1, 2)|
+ERROR 42000: Incorrect number of arguments for PROCEDURE test.p; expected 1, got 2
+select f()|
+ERROR 42000: Incorrect number of arguments for FUNCTION test.f; expected 1, got 0
+select f(1, 2)|
+ERROR 42000: Incorrect number of arguments for FUNCTION test.f; expected 1, got 2
+drop procedure p|
+drop function f|
+create procedure p(val int, out res int)
+begin
+declare x int default 0;
+declare continue handler for foo set x = 1;
+insert into test.t1 values (val);
+if (x) then
+set res = 0;
+else
+set res = 1;
+end if;
+end|
+ERROR 42000: Undefined CONDITION: foo
+create procedure p(val int, out res int)
+begin
+declare x int default 0;
+declare foo condition for 1146;
+declare continue handler for bar set x = 1;
+insert into test.t1 values (val);
+if (x) then
+set res = 0;
+else
+set res = 1;
+end if;
+end|
+ERROR 42000: Undefined CONDITION: bar
+create function f(val int) returns int
+begin
+declare x int;
+set x = val+3;
+end|
+ERROR 42000: No RETURN found in FUNCTION test.f
+create function f(val int) returns int
+begin
+declare x int;
+set x = val+3;
+if x < 4 then
+return x;
+end if;
+end|
+select f(10)|
+ERROR 2F005: FUNCTION f ended without RETURN
+drop function f|
+create procedure p()
+begin
+declare c cursor for insert into test.t1 values ("foo", 42);
+open c;
+close c;
+end|
+ERROR 42000: Cursor statement must be a SELECT
+create procedure p()
+begin
+declare x int;
+declare c cursor for select * into x from test.t limit 1;
+open c;
+close c;
+end|
+ERROR 42000: Cursor SELECT must not have INTO
+create procedure p()
+begin
+declare c cursor for select * from test.t;
+open cc;
+close c;
+end|
+ERROR 42000: Undefined CURSOR: cc
+drop table if exists t1|
+create table t1 (val int)|
+create procedure p()
+begin
+declare c cursor for select * from test.t1;
+open c;
+open c;
+close c;
+end|
+call p()|
+ERROR 24000: Cursor is already open
+drop procedure p|
+create procedure p()
+begin
+declare c cursor for select * from test.t1;
+open c;
+close c;
+close c;
+end|
+call p()|
+ERROR 24000: Cursor is not open
+drop procedure p|
+alter procedure bar3 sql security invoker|
+ERROR 42000: PROCEDURE test.bar3 does not exist
+drop table t1|
+drop table if exists t1|
+create table t1 (val int, x float)|
+insert into t1 values (42, 3.1), (19, 1.2)|
+create procedure p()
+begin
+declare x int;
+declare c cursor for select * from t1;
+open c;
+fetch c into x, y;
+close c;
+end|
+ERROR 42000: Undeclared variable: y
+create procedure p()
+begin
+declare x int;
+declare c cursor for select * from t1;
+open c;
+fetch c into x;
+close c;
+end|
+call p()|
+ERROR HY000: Incorrect number of FETCH variables
+drop procedure p|
+create procedure p()
+begin
+declare x int;
+declare y float;
+declare z int;
+declare c cursor for select * from t1;
+open c;
+fetch c into x, y, z;
+close c;
+end|
+call p()|
+ERROR HY000: Incorrect number of FETCH variables
+drop procedure p|
+create procedure p(in x int, x char(10))
+begin
+end|
+ERROR 42000: Duplicate parameter: x
+create function p(x int, x char(10))
+begin
+end|
+ERROR 42000: Duplicate parameter: x
+create procedure p()
+begin
+declare x float;
+declare x int;
+end|
+ERROR 42000: Duplicate variable: x
+create procedure p()
+begin
+declare c condition for 1064;
+declare c condition for 1065;
+end|
+ERROR 42000: Duplicate condition: c
+create procedure p()
+begin
+declare c cursor for select * from t1;
+declare c cursor for select field from t1;
+end|
+ERROR 42000: Duplicate cursor: c
+create procedure u()
+use sptmp|
+ERROR 0A000: USE is not allowed in stored procedures
+create procedure p()
+begin
+declare c cursor for select * from t1;
+declare x int;
+end|
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+create procedure p()
+begin
+declare x int;
+declare continue handler for sqlstate '42S99' set x = 1;
+declare foo condition for sqlstate '42S99';
+end|
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+create procedure p()
+begin
+declare x int;
+declare continue handler for sqlstate '42S99' set x = 1;
+declare c cursor for select * from t1;
+end|
+ERROR 42000: Cursor declaration after handler declaration
+drop procedure if exists p|
+create procedure p(in x int, inout y int, out z int)
+begin
+set y = x+y;
+set z = x+y;
+end|
+set @tmp_x = 42|
+set @tmp_y = 3|
+set @tmp_z = 0|
+call p(@tmp_x, @tmp_y, @tmp_z)|
+select @tmp_x, @tmp_y, @tmp_z|
+@tmp_x @tmp_y @tmp_z
+42 45 87
+call p(42, 43, @tmp_z)|
+ERROR 42000: OUT or INOUT argument 2 for routine test.p is not a variable or NEW pseudo-variable in BEFORE trigger
+call p(42, @tmp_y, 43)|
+ERROR 42000: OUT or INOUT argument 3 for routine test.p is not a variable or NEW pseudo-variable in BEFORE trigger
+drop procedure p|
+create procedure p() begin end|
+lock table t1 read|
+call p()|
+unlock tables|
+drop procedure p|
+lock tables t1 read, mysql.proc write|
+ERROR HY000: You can't combine write-locking of system 'mysql.proc' table with other tables
+lock tables mysql.proc write, mysql.user write|
+ERROR HY000: You can't combine write-locking of system 'mysql.proc' table with other tables
+lock tables t1 read, mysql.proc read|
+unlock tables|
+lock tables mysql.proc write|
+unlock tables|
+drop function if exists f1|
+create function f1(i int) returns int
+begin
+insert into t1 (val) values (i);
+return 0;
+end|
+select val, f1(val) from t1|
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select val, f1(val) from t1 as tab|
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1|
+val x
+42 3.1
+19 1.2
+update t1 set val= f1(val)|
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1|
+val x
+42 3.1
+19 1.2
+select f1(17)|
+f1(17)
+0
+select * from t1|
+val x
+42 3.1
+19 1.2
+17 NULL
+delete from t1 where val= 17|
+drop function f1|
+create procedure bug1965()
+begin
+declare c cursor for select val from t1 order by valname;
+open c;
+close c;
+end|
+call bug1965()|
+ERROR 42S22: Unknown column 'valname' in 'order clause'
+drop procedure bug1965|
+select 1 into a|
+ERROR 42000: Undeclared variable: a
+drop table if exists t3|
+create table t3 (column_1_0 int)|
+create procedure bug1653()
+update t3 set column_1 = 0|
+call bug1653()|
+ERROR 42S22: Unknown column 'column_1' in 'field list'
+drop table t3|
+create table t3 (column_1 int)|
+call bug1653()|
+drop procedure bug1653|
+drop table t3|
+create procedure bug2259()
+begin
+declare v1 int;
+declare c1 cursor for select s1 from t1;
+fetch c1 into v1;
+end|
+call bug2259()|
+ERROR 24000: Cursor is not open
+drop procedure bug2259|
+create procedure bug2272()
+begin
+declare v int;
+update t1 set v = 42;
+end|
+insert into t1 values (666, 51.3)|
+call bug2272()|
+ERROR 42S22: Unknown column 'v' in 'field list'
+delete from t1|
+drop procedure bug2272|
+create procedure bug2329_1()
+begin
+declare v int;
+insert into t1 (v) values (5);
+end|
+create procedure bug2329_2()
+begin
+declare v int;
+replace t1 set v = 5;
+end|
+call bug2329_1()|
+ERROR 42S22: Unknown column 'v' in 'field list'
+call bug2329_2()|
+ERROR 42S22: Unknown column 'v' in 'field list'
+drop procedure bug2329_1|
+drop procedure bug2329_2|
+create function bug3287() returns int
+begin
+declare v int default null;
+case
+when v is not null then return 1;
+end case;
+return 2;
+end|
+select bug3287()|
+ERROR 20000: Case not found for CASE statement
+drop function bug3287|
+create procedure bug3287(x int)
+case x
+when 0 then
+insert into test.t1 values (x, 0.1);
+when 1 then
+insert into test.t1 values (x, 1.1);
+end case|
+call bug3287(2)|
+ERROR 20000: Case not found for CASE statement
+drop procedure bug3287|
+drop table if exists t3|
+create table t3 (s1 int, primary key (s1))|
+insert into t3 values (5),(6)|
+create procedure bug3279(out y int)
+begin
+declare x int default 0;
+begin
+declare exit handler for sqlexception set x = x+1;
+insert into t3 values (5);
+end;
+if x < 2 then
+set x = x+1;
+insert into t3 values (6);
+end if;
+set y = x;
+end|
+set @x = 0|
+call bug3279(@x)|
+ERROR 23000: Duplicate entry '6' for key 1
+select @x|
+@x
+0
+drop procedure bug3279|
+drop table t3|
+create procedure nodb.bug3339() begin end|
+ERROR 42000: Unknown database 'nodb'
+create procedure bug2653_1(a int, out b int)
+set b = aa|
+create procedure bug2653_2(a int, out b int)
+begin
+if aa < 0 then
+set b = - a;
+else
+set b = a;
+end if;
+end|
+call bug2653_1(1, @b)|
+ERROR 42S22: Unknown column 'aa' in 'field list'
+call bug2653_2(2, @b)|
+ERROR 42S22: Unknown column 'aa' in 'field list'
+drop procedure bug2653_1|
+drop procedure bug2653_2|
+create procedure bug4344() drop procedure bug4344|
+ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
+create procedure bug4344() drop function bug4344|
+ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
+drop procedure if exists bug3294|
+create procedure bug3294()
+begin
+declare continue handler for sqlexception drop table t5;
+drop table t5;
+drop table t5;
+end|
+create table t5 (x int)|
+call bug3294()|
+ERROR 42S02: Unknown table 't5'
+drop procedure bug3294|
+drop procedure if exists bug8776_1|
+drop procedure if exists bug8776_2|
+drop procedure if exists bug8776_3|
+drop procedure if exists bug8776_4|
+create procedure bug8776_1()
+begin
+declare continue handler for sqlstate '42S0200test' begin end;
+begin end;
+end|
+ERROR 42000: Bad SQLSTATE: '42S0200test'
+create procedure bug8776_2()
+begin
+declare continue handler for sqlstate '4200' begin end;
+begin end;
+end|
+ERROR 42000: Bad SQLSTATE: '4200'
+create procedure bug8776_3()
+begin
+declare continue handler for sqlstate '420000' begin end;
+begin end;
+end|
+ERROR 42000: Bad SQLSTATE: '420000'
+create procedure bug8776_4()
+begin
+declare continue handler for sqlstate '42x00' begin end;
+begin end;
+end|
+ERROR 42000: Bad SQLSTATE: '42x00'
+create procedure bug6600()
+check table t1|
+ERROR 0A000: CHECK is not allowed in stored procedures
+create procedure bug6600()
+lock table t1 read|
+ERROR 0A000: LOCK is not allowed in stored procedures
+create procedure bug6600()
+unlock table t1|
+ERROR 0A000: UNLOCK is not allowed in stored procedures
+drop procedure if exists bug9566|
+create procedure bug9566()
+begin
+select * from t1;
+end|
+lock table t1 read|
+alter procedure bug9566 comment 'Some comment'|
+ERROR HY000: Table 'proc' was not locked with LOCK TABLES
+unlock tables|
+drop procedure bug9566|
+drop procedure if exists bug7299|
+create procedure bug7299()
+begin
+declare v int;
+declare c cursor for select val from t1;
+declare exit handler for sqlexception select 'Error!';
+open c;
+fetch c into v;
+end|
+delete from t1|
+call bug7299()|
+ERROR 02000: No data - zero rows fetched, selected, or processed
+drop procedure bug7299|
+create procedure bug9073()
+begin
+declare continue handler for sqlexception select 1;
+declare continue handler for sqlexception select 2;
+end|
+ERROR 42000: Duplicate handler declared in the same block
+create procedure bug9073()
+begin
+declare condname1 condition for 1234;
+declare continue handler for condname1 select 1;
+declare exit handler for condname1 select 2;
+end|
+ERROR 42000: Duplicate handler declared in the same block
+create procedure bug9073()
+begin
+declare condname1 condition for sqlstate '42000';
+declare condname2 condition for sqlstate '42000';
+declare exit handler for condname1 select 1;
+declare continue handler for condname2 select 2;
+end|
+ERROR 42000: Duplicate handler declared in the same block
+create procedure bug9073()
+begin
+declare condname1 condition for sqlstate '42000';
+declare exit handler for condname1 select 1;
+declare exit handler for sqlstate '42000' select 2;
+end|
+ERROR 42000: Duplicate handler declared in the same block
+drop procedure if exists bug9073|
+create procedure bug9073()
+begin
+declare condname1 condition for sqlstate '42000';
+declare continue handler for condname1 select 1;
+begin
+declare exit handler for sqlstate '42000' select 2;
+begin
+declare continue handler for sqlstate '42000' select 3;
+end;
+end;
+end|
+drop procedure bug9073|
+create procedure bug7047()
+alter procedure bug7047|
+ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
+create function bug7047() returns int
+begin
+alter function bug7047;
+return 0;
+end|
+ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
+create function bug8408() returns int
+begin
+select * from t1;
+return 0;
+end|
+ERROR 0A000: Not allowed to return a result set from a function
+create function bug8408() returns int
+begin
+show warnings;
+return 0;
+end|
+ERROR 0A000: Not allowed to return a result set from a function
+create function bug8408(a int) returns int
+begin
+declare b int;
+select b;
+return b;
+end|
+ERROR 0A000: Not allowed to return a result set from a function
+drop function if exists bug8408_f|
+drop procedure if exists bug8408_p|
+create function bug8408_f() returns int
+begin
+call bug8408_p();
+return 0;
+end|
+create procedure bug8408_p()
+select * from t1|
+call bug8408_p()|
+val x
+select bug8408_f()|
+ERROR 0A000: Not allowed to return a result set from a function
+drop procedure bug8408_p|
+drop function bug8408_f|
+create function bug8408() returns int
+begin
+declare n int default 0;
+select count(*) into n from t1;
+return n;
+end|
+insert into t1 value (2, 2.7), (3, 3.14), (7, 7.0)|
+select *,bug8408() from t1|
+val x bug8408()
+2 2.7 3
+3 3.14 3
+7 7 3
+drop function bug8408|
+delete from t1|
+drop procedure if exists bug10537|
+create procedure bug10537()
+load data local infile '/tmp/somefile' into table t1|
+ERROR 0A000: LOAD DATA is not allowed in stored procedures
+drop function if exists bug8409|
+create function bug8409()
+returns int
+begin
+flush tables;
+return 5;
+end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin reset query cache;
+return 1; end|
+ERROR 0A000: RESET is not allowed in stored function or trigger
+create function bug8409() returns int begin reset master;
+return 1; end|
+ERROR 0A000: RESET is not allowed in stored function or trigger
+create function bug8409() returns int begin reset slave;
+return 1; end|
+ERROR 0A000: RESET is not allowed in stored function or trigger
+create function bug8409() returns int begin flush hosts;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush privileges;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush tables with read lock;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush tables;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush logs;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush status;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush slave;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush master;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush des_key_file;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create function bug8409() returns int begin flush user_resources;
+return 1; end|
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create procedure bug9529_901234567890123456789012345678901234567890123456789012345()
+begin
+end|
+ERROR 42000: Identifier name 'bug9529_901234567890123456789012345678901234567890123456789012345' is too long
+drop procedure if exists bug17015_0123456789012345678901234567890123456789012345678901234|
+create procedure bug17015_0123456789012345678901234567890123456789012345678901234()
+begin
+end|
+show procedure status like 'bug17015%'|
+Db Name Type Definer Modified Created Security_type Comment
+test bug17015_0123456789012345678901234567890123456789012345678901234 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+drop procedure bug17015_0123456789012345678901234567890123456789012345678901234|
+drop procedure if exists bug10969|
+create procedure bug10969()
+begin
+declare s1 int default 0;
+select default(s1) from t30;
+end|
+ERROR 42000: Incorrect column name 's1'
+create procedure bug10969()
+begin
+declare s1 int default 0;
+select default(t30.s1) from t30;
+end|
+drop procedure bug10969|
+drop table t1|
+create table t1(f1 int);
+create table t2(f1 int);
+CREATE PROCEDURE SP001()
+P1: BEGIN
+DECLARE ENDTABLE INT DEFAULT 0;
+DECLARE TEMP_NUM INT;
+DECLARE TEMP_SUM INT;
+DECLARE C1 CURSOR FOR SELECT F1 FROM t1;
+DECLARE C2 CURSOR FOR SELECT F1 FROM t2;
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET ENDTABLE = 1;
+SET ENDTABLE=0;
+SET TEMP_SUM=0;
+SET TEMP_NUM=0;
+OPEN C1;
+FETCH C1 INTO TEMP_NUM;
+WHILE ENDTABLE = 0 DO
+SET TEMP_SUM=TEMP_NUM+TEMP_SUM;
+FETCH C1 INTO TEMP_NUM;
+END WHILE;
+SELECT TEMP_SUM;
+CLOSE C1;
+CLOSE C1;
+SELECT 'end of proc';
+END P1|
+call SP001();
+TEMP_SUM
+0
+ERROR 24000: Cursor is not open
+drop procedure SP001;
+drop table t1, t2;
+drop function if exists bug11394|
+drop function if exists bug11394_1|
+drop function if exists bug11394_2|
+drop procedure if exists bug11394|
+create function bug11394(i int) returns int
+begin
+if i <= 0 then
+return 0;
+else
+return (i in (100, 200, bug11394(i-1), 400));
+end if;
+end|
+select bug11394(2)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+drop function bug11394|
+create function bug11394_1(i int) returns int
+begin
+if i <= 0 then
+return 0;
+else
+return (select bug11394_1(i-1));
+end if;
+end|
+select bug11394_1(2)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+drop function bug11394_1|
+create function bug11394_2(i int) returns int return i|
+select bug11394_2(bug11394_2(10))|
+bug11394_2(bug11394_2(10))
+10
+drop function bug11394_2|
+create procedure bug11394(i int, j int)
+begin
+if i > 0 then
+call bug11394(i - 1,(select 1));
+end if;
+end|
+call bug11394(2, 1)|
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine bug11394
+set @@max_sp_recursion_depth=10|
+call bug11394(2, 1)|
+set @@max_sp_recursion_depth=default|
+drop procedure bug11394|
+CREATE PROCEDURE BUG_12490() HELP CONTENTS;
+ERROR 0A000: HELP is not allowed in stored procedures
+CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
+ERROR 0A000: HELP is not allowed in stored procedures
+CREATE TABLE t_bug_12490(a int);
+CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
+ERROR 0A000: HELP is not allowed in stored procedures
+DROP TABLE t_bug_12490;
+drop function if exists bug11834_1;
+drop function if exists bug11834_2;
+create function bug11834_1() returns int return 10;
+create function bug11834_2() returns int return bug11834_1();
+prepare stmt from "select bug11834_2()";
+execute stmt;
+bug11834_2()
+10
+execute stmt;
+bug11834_2()
+10
+drop function bug11834_1;
+execute stmt;
+ERROR 42000: FUNCTION test.bug11834_1 does not exist
+deallocate prepare stmt;
+drop function bug11834_2;
+DROP FUNCTION IF EXISTS bug12953|
+CREATE FUNCTION bug12953() RETURNS INT
+BEGIN
+OPTIMIZE TABLE t1;
+RETURN 1;
+END|
+ERROR 0A000: Not allowed to return a result set from a function
+DROP FUNCTION IF EXISTS bug12995|
+CREATE FUNCTION bug12995() RETURNS INT
+BEGIN
+HANDLER t1 OPEN;
+RETURN 1;
+END|
+ERROR 0A000: HANDLER is not allowed in stored procedures
+CREATE FUNCTION bug12995() RETURNS INT
+BEGIN
+HANDLER t1 READ FIRST;
+RETURN 1;
+END|
+ERROR 0A000: HANDLER is not allowed in stored procedures
+CREATE FUNCTION bug12995() RETURNS INT
+BEGIN
+HANDLER t1 CLOSE;
+RETURN 1;
+END|
+ERROR 0A000: HANDLER is not allowed in stored procedures
+SELECT bug12995()|
+ERROR 42000: FUNCTION test.bug12995 does not exist
+drop procedure if exists bug12712;
+drop function if exists bug12712;
+create procedure bug12712()
+set session autocommit = 0;
+select @@autocommit;
+@@autocommit
+1
+set @au = @@autocommit;
+call bug12712();
+select @@autocommit;
+@@autocommit
+0
+set session autocommit = @au;
+create function bug12712()
+returns int
+begin
+call bug12712();
+return 0;
+end|
+set @x = bug12712()|
+ERROR HY000: Not allowed to set autocommit from a stored function or trigger
+drop procedure bug12712|
+drop function bug12712|
+create function bug12712()
+returns int
+begin
+set session autocommit = 0;
+return 0;
+end|
+ERROR HY000: Not allowed to set autocommit from a stored function or trigger
+create function bug12712()
+returns int
+begin
+set @@autocommit = 0;
+return 0;
+end|
+ERROR HY000: Not allowed to set autocommit from a stored function or trigger
+create function bug12712()
+returns int
+begin
+set local autocommit = 0;
+return 0;
+end|
+ERROR HY000: Not allowed to set autocommit from a stored function or trigger
+create trigger bug12712
+before insert on t1 for each row set session autocommit = 0;
+ERROR HY000: Not allowed to set autocommit from a stored function or trigger
+drop procedure if exists bug13510_1|
+drop procedure if exists bug13510_2|
+drop procedure if exists bug13510_3|
+drop procedure if exists bug13510_4|
+create procedure bug13510_1()
+begin
+declare password varchar(10);
+set password = 'foo1';
+select password;
+end|
+ERROR 42000: Variable 'password' must be quoted with `...`, or renamed
+set names='foo2'|
+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 procedure bug13510_2()
+begin
+declare names varchar(10);
+set names = 'foo2';
+select names;
+end|
+ERROR 42000: Variable 'names' must be quoted with `...`, or renamed
+create procedure bug13510_3()
+begin
+declare password varchar(10);
+set `password` = 'foo3';
+select password;
+end|
+create procedure bug13510_4()
+begin
+declare names varchar(10);
+set `names` = 'foo4';
+select names;
+end|
+call bug13510_3()|
+password
+foo3
+call bug13510_4()|
+names
+foo4
+drop procedure bug13510_3|
+drop procedure bug13510_4|
+drop function if exists bug_13627_f|
+CREATE TABLE t1 (a int)|
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN DROP TRIGGER test1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN DROP TRIGGER test1; 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 load table t1 from master; END |
+ERROR 0A000: LOAD TABLE is not allowed in stored procedures
+CREATE FUNCTION bug_13627_f() returns int BEGIN load table t1 from master; return 1; END |
+ERROR 0A000: LOAD TABLE is not allowed in stored procedures
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create table t2 (a int); END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN create table t2 (a int); 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 create index t1_i on t1 (a); END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN create index t1_i on t1 (a); 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 alter table t1 add column b int; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN alter table t1 add column b int; 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 rename table t1 to t2; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN rename table t1 to t2; 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 truncate table t1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN truncate table t1; 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 table t1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop table t1; 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 index t1_i on t1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop index t1_i on t1; 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 unlock tables; END |
+ERROR 0A000: UNLOCK is not allowed in stored procedures
+CREATE FUNCTION bug_13627_f() returns int BEGIN unlock tables; return 1; END |
+ERROR 0A000: UNLOCK is not allowed in stored procedures
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN LOCK TABLE t1 READ; END |
+ERROR 0A000: LOCK is not allowed in stored procedures
+CREATE FUNCTION bug_13627_f() returns int BEGIN LOCK TABLE t1 READ; return 1; END |
+ERROR 0A000: LOCK is not allowed in stored procedures
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create database mysqltest; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN create database mysqltest; 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 database mysqltest; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop database mysqltest; 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 create 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 create user '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 |
+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 rename user 'mysqltest_2' to '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 rename user 'mysqltest_2' to '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 create view v1 as select 1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 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 alter view v1 as select 1; END |
+ERROR 0A000: ALTER VIEW is not allowed in stored procedures
+CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
+ERROR 0A000: ALTER VIEW is not allowed in stored procedures
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop view v1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; 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 create trigger tr2 before insert on t1 for each row do select 1; END |
+ERROR 2F003: Can't create a TRIGGER from within another stored routine
+CREATE FUNCTION bug_13627_f() returns int BEGIN create trigger tr2 before insert on t1 for each row do select 1; return 1; END |
+ERROR 2F003: Can't create a TRIGGER from within another stored routine
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop function bug_13627_f; END |
+ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop function bug_13627_f; return 1; END |
+ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create function f2 () returns int return 1; END |
+ERROR 2F003: Can't create a FUNCTION from within another stored routine
+CREATE FUNCTION bug_13627_f() returns int BEGIN create function f2 () returns int return 1; return 1; END |
+ERROR 2F003: Can't create a FUNCTION from within another stored routine
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+CREATE TEMPORARY TABLE t2 (a int);
+DROP TEMPORARY TABLE t2;
+END |
+CREATE FUNCTION bug_13627_f() returns int
+BEGIN
+CREATE TEMPORARY TABLE t2 (a int);
+DROP TEMPORARY TABLE t2;
+return 1;
+END |
+drop table t1|
+drop function bug_13627_f|
+drop function if exists bug12329;
+Warnings:
+Note 1305 FUNCTION bug12329 does not exist
+create table t1 as select 1 a;
+create table t2 as select 1 a;
+create function bug12329() returns int return (select a from t1);
+prepare stmt1 from 'select bug12329()';
+execute stmt1;
+bug12329()
+1
+drop function bug12329;
+create function bug12329() returns int return (select a+100 from t2);
+select bug12329();
+bug12329()
+101
+execute stmt1;
+ERROR 42S02: Table 'test.t2' doesn't exist
+deallocate prepare stmt1;
+drop function bug12329;
+drop table t1, t2;
+create database mysqltest1;
+use mysqltest1;
+drop database mysqltest1;
+create function f1() returns int return 1;
+ERROR 3D000: No database selected
+create procedure p1(out param1 int)
+begin
+select count(*) into param1 from t3;
+end|
+ERROR 3D000: No database selected
+use test;
+DROP PROCEDURE IF EXISTS bug13037_p1;
+DROP PROCEDURE IF EXISTS bug13037_p2;
+DROP PROCEDURE IF EXISTS bug13037_p3;
+CREATE PROCEDURE bug13037_p1()
+BEGIN
+IF bug13037_foo THEN
+SELECT 1;
+END IF;
+END|
+CREATE PROCEDURE bug13037_p2()
+BEGIN
+SET @bug13037_foo = bug13037_bar;
+END|
+CREATE PROCEDURE bug13037_p3()
+BEGIN
+SELECT bug13037_foo;
+END|
+
+CALL bug13037_p1();
+ERROR 42S22: Unknown column 'bug13037_foo' in 'field list'
+CALL bug13037_p2();
+ERROR 42S22: Unknown column 'bug13037_bar' in 'field list'
+CALL bug13037_p3();
+ERROR 42S22: Unknown column 'bug13037_foo' in 'field list'
+CALL bug13037_p1();
+ERROR 42S22: Unknown column 'bug13037_foo' in 'field list'
+CALL bug13037_p2();
+ERROR 42S22: Unknown column 'bug13037_bar' in 'field list'
+CALL bug13037_p3();
+ERROR 42S22: Unknown column 'bug13037_foo' in 'field list'
+DROP PROCEDURE bug13037_p1;
+DROP PROCEDURE bug13037_p2;
+DROP PROCEDURE bug13037_p3;
+create database mysqltest1;
+create database mysqltest2;
+use mysqltest1;
+drop database mysqltest1;
+create procedure mysqltest2.p1() select version();
+create procedure p2() select version();
+ERROR 3D000: No database selected
+use mysqltest2;
+show procedure status;
+Db Name Type Definer Modified Created Security_type Comment
+mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+drop database mysqltest2;
+use test;
+DROP FUNCTION IF EXISTS bug13012|
+CREATE FUNCTION bug13012() RETURNS INT
+BEGIN
+REPAIR TABLE t1;
+RETURN 1;
+END|
+ERROR 0A000: Not allowed to return a result set from a function
+CREATE FUNCTION bug13012() RETURNS INT
+BEGIN
+BACKUP TABLE t1 TO '/tmp';
+RETURN 1;
+END|
+ERROR 0A000: Not allowed to return a result set from a function
+CREATE FUNCTION bug13012() RETURNS INT
+BEGIN
+RESTORE TABLE t1 FROM '/tmp';
+RETURN 1;
+END|
+ERROR 0A000: Not allowed to return a result set from a function
+create table t1 (a int)|
+CREATE PROCEDURE bug13012_1() REPAIR TABLE t1|
+CREATE FUNCTION bug13012_2() RETURNS INT
+BEGIN
+CALL bug13012_1();
+RETURN 1;
+END|
+SELECT bug13012_2()|
+ERROR 0A000: Not allowed to return a result set from a function
+drop table t1|
+drop procedure bug13012_1|
+drop function bug13012_2|
+drop function if exists bug11555_1;
+drop function if exists bug11555_2;
+drop view if exists v1, v2, v3, v4;
+create function bug11555_1() returns int return (select max(i) from t1);
+create function bug11555_2() returns int return bug11555_1();
+create view v1 as select bug11555_1();
+drop view v1;
+create view v2 as select bug11555_2();
+drop view v2;
+create table t1 (i int);
+create view v1 as select bug11555_1();
+create view v2 as select bug11555_2();
+create view v3 as select * from v1;
+drop table t1;
+select * from v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v3;
+ERROR HY000: View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+create view v4 as select * from v1;
+drop view v1, v2, v3, v4;
+drop function bug11555_1;
+drop function bug11555_2;
+create table t1 (i int);
+create table t2 (i int);
+create trigger t1_ai after insert on t1 for each row insert into t2 values (new.i);
+create view v1 as select * from t1;
+drop table t2;
+insert into v1 values (1);
+ERROR 42S02: Table 'test.t2' doesn't exist
+drop trigger t1_ai;
+create function bug11555_1() returns int return (select max(i) from t2);
+create trigger t1_ai after insert on t1 for each row set @a:=bug11555_1();
+insert into v1 values (2);
+ERROR 42S02: Table 'test.t2' doesn't exist
+drop function bug11555_1;
+drop table t1;
+drop view v1;
+drop procedure if exists ` bug15658`;
+create procedure ``() select 1;
+ERROR 42000: Incorrect routine name ''
+create procedure ` `() select 1;
+ERROR 42000: Incorrect routine name ' '
+create procedure `bug15658 `() select 1;
+ERROR 42000: Incorrect routine name 'bug15658 '
+create procedure ``.bug15658() select 1;
+ERROR 42000: Incorrect database name ''
+create procedure `x `.bug15658() select 1;
+ERROR 42000: Incorrect database name 'x '
+create procedure ` bug15658`() select 1;
+call ` bug15658`();
+1
+1
+show procedure status;
+Db Name Type Definer Modified Created Security_type Comment
+test bug15658 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+drop procedure ` bug15658`;
+drop function if exists bug14270;
+drop table if exists t1;
+create table t1 (s1 int primary key);
+create function bug14270() returns int
+begin
+load index into cache t1;
+return 1;
+end|
+ERROR 0A000: Not allowed to return a result set from a function
+create function bug14270() returns int
+begin
+cache index t1 key (`primary`) in keycache1;
+return 1;
+end|
+ERROR 0A000: Not allowed to return a result set from a function
+drop table t1;
+drop procedure if exists bug15091;
+create procedure bug15091()
+begin
+declare selectstr varchar(6000) default ' ';
+declare conditionstr varchar(5000) default '';
+set selectstr = concat(selectstr,
+' and ',
+c.operatorid,
+'in (',conditionstr, ')');
+end|
+call bug15091();
+ERROR 42S02: Unknown table 'c' in field list
+drop procedure bug15091;
+drop function if exists bug16896;
+create aggregate function bug16896() returns int return 1;
+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 '() returns int return 1' at line 1
+DROP PROCEDURE IF EXISTS bug14702;
+CREATE IF NOT EXISTS PROCEDURE bug14702()
+BEGIN
+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 'IF NOT EXISTS PROCEDURE bug14702()
+BEGIN
+END' at line 1
+CREATE PROCEDURE IF NOT EXISTS bug14702()
+BEGIN
+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 'IF NOT EXISTS bug14702()
+BEGIN
+END' at line 1
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (i INT);
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO @a;
+ERROR HY000: View's SELECT contains a 'INTO' clause
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO DUMPFILE "file";
+ERROR HY000: View's SELECT contains a 'INTO' clause
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO OUTFILE "file";
+ERROR HY000: View's SELECT contains a 'INTO' clause
+CREATE PROCEDURE bug20953()
+CREATE VIEW v AS SELECT i FROM t1 PROCEDURE ANALYSE();
+ERROR HY000: View's SELECT contains a 'PROCEDURE' clause
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 FROM (SELECT 1) AS d1;
+ERROR HY000: View's SELECT contains a subquery in the FROM clause
+CREATE PROCEDURE bug20953(i INT) CREATE VIEW v AS SELECT i;
+ERROR HY000: View's SELECT contains a variable or parameter
+CREATE PROCEDURE bug20953()
+BEGIN
+DECLARE i INT;
+CREATE VIEW v AS SELECT i;
+END |
+ERROR HY000: View's SELECT contains a variable or parameter
+PREPARE stmt FROM "CREATE VIEW v AS SELECT ?";
+ERROR HY000: View's SELECT contains a variable or parameter
+DROP TABLE t1;
+drop tables if exists t1;
+drop procedure if exists bug24491;
+create table t1 (id int primary key auto_increment, value varchar(10));
+insert into t1 (id, value) values (1, 'FIRST'), (2, 'SECOND'), (3, 'THIRD');
+create procedure bug24491()
+insert into t1 (id, value) select * from (select 4 as i, 'FOURTH' as v) as y on duplicate key update v = 'DUP';
+call bug24491();
+ERROR 42S22: Unknown column 'v' in 'field list'
+call bug24491();
+ERROR 42S22: Unknown column 'v' in 'field list'
+drop procedure bug24491;
+create procedure bug24491()
+insert into t1 (id, value) select * from (select 4 as id, 'FOURTH' as value) as y on duplicate key update y.value = 'DUP';
+call bug24491();
+ERROR 42S22: Unknown column 'y.value' in 'field list'
+call bug24491();
+ERROR 42S22: Unknown column 'y.value' in 'field list'
+drop procedure bug24491;
+drop tables t1;
+DROP FUNCTION IF EXISTS bug18914_f1;
+DROP FUNCTION IF EXISTS bug18914_f2;
+DROP PROCEDURE IF EXISTS bug18914_p1;
+DROP PROCEDURE IF EXISTS bug18914_p2;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (i INT);
+CREATE PROCEDURE bug18914_p1() CREATE TABLE t2 (i INT);
+CREATE PROCEDURE bug18914_p2() DROP TABLE IF EXISTS no_such_table;
+CREATE FUNCTION bug18914_f1() RETURNS INT
+BEGIN
+CALL bug18914_p1();
+RETURN 1;
+END |
+CREATE FUNCTION bug18914_f2() RETURNS INT
+BEGIN
+CALL bug18914_p2();
+RETURN 1;
+END |
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+CALL bug18914_p1();
+INSERT INTO t1 VALUES (1);
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+SELECT bug18914_f1();
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+SELECT bug18914_f2();
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+SELECT * FROM t2;
+ERROR 42S02: Table 'test.t2' doesn't exist
+DROP FUNCTION bug18914_f1;
+DROP FUNCTION bug18914_f2;
+DROP PROCEDURE bug18914_p1;
+DROP PROCEDURE bug18914_p2;
+DROP TABLE t1;
+drop table if exists bogus_table_20713;
+drop function if exists func_20713_a;
+drop function if exists func_20713_b;
+create table bogus_table_20713( id int(10) not null primary key);
+insert into bogus_table_20713 values (1), (2), (3);
+create function func_20713_a() returns int(11)
+begin
+declare id int;
+declare continue handler for sqlexception set id=null;
+set @in_func := 1;
+set id = (select id from bogus_table_20713 where id = 3);
+set @in_func := 2;
+return id;
+end//
+create function func_20713_b() returns int(11)
+begin
+declare id int;
+declare continue handler for sqlstate value '42S02' set id=null;
+set @in_func := 1;
+set id = (select id from bogus_table_20713 where id = 3);
+set @in_func := 2;
+return id;
+end//
+set @in_func := 0;
+select func_20713_a();
+func_20713_a()
+NULL
+select @in_func;
+@in_func
+2
+set @in_func := 0;
+select func_20713_b();
+func_20713_b()
+NULL
+select @in_func;
+@in_func
+2
+drop table bogus_table_20713;
+set @in_func := 0;
+select func_20713_a();
+func_20713_a()
+NULL
+select @in_func;
+@in_func
+2
+set @in_func := 0;
+select func_20713_b();
+func_20713_b()
+NULL
+select @in_func;
+@in_func
+2
+drop function if exists func_20713_a;
+drop function if exists func_20713_b;
+drop table if exists table_25345_a;
+drop table if exists table_25345_b;
+drop procedure if exists proc_25345;
+drop function if exists func_25345;
+drop function if exists func_25345_b;
+create table table_25345_a (a int);
+create table table_25345_b (b int);
+create procedure proc_25345()
+begin
+declare c1 cursor for select a from table_25345_a;
+declare c2 cursor for select b from table_25345_b;
+select 1 as result;
+end ||
+create function func_25345() returns int(11)
+begin
+call proc_25345();
+return 1;
+end ||
+create function func_25345_b() returns int(11)
+begin
+declare c1 cursor for select a from table_25345_a;
+declare c2 cursor for select b from table_25345_b;
+return 1;
+end ||
+call proc_25345();
+result
+1
+select func_25345();
+ERROR 0A000: Not allowed to return a result set from a function
+select func_25345_b();
+func_25345_b()
+1
+drop table table_25345_a;
+call proc_25345();
+result
+1
+select func_25345();
+ERROR 0A000: Not allowed to return a result set from a function
+select func_25345_b();
+func_25345_b()
+1
+drop table table_25345_b;
+drop procedure proc_25345;
+drop function func_25345;
+drop function func_25345_b;
+create procedure proc_26503_error_1()
+begin
+retry:
+repeat
+begin
+declare continue handler for sqlexception
+begin
+iterate retry;
+end
+select "do something";
+end
+until true end repeat retry;
+end//
+ERROR 42000: ITERATE with no matching label: retry
+create procedure proc_26503_error_2()
+begin
+retry:
+repeat
+begin
+declare continue handler for sqlexception
+iterate retry;
+select "do something";
+end
+until true end repeat retry;
+end//
+ERROR 42000: ITERATE with no matching label: retry
+create procedure proc_26503_error_3()
+begin
+retry:
+repeat
+begin
+declare continue handler for sqlexception
+begin
+leave retry;
+end
+select "do something";
+end
+until true end repeat retry;
+end//
+ERROR 42000: LEAVE with no matching label: retry
+create procedure proc_26503_error_4()
+begin
+retry:
+repeat
+begin
+declare continue handler for sqlexception
+leave retry;
+select "do something";
+end
+until true end repeat retry;
+end//
+ERROR 42000: LEAVE with no matching label: retry
+DROP DATABASE IF EXISTS mysqltest;
+CREATE DATABASE mysqltest;
+USE mysqltest;
+DROP DATABASE mysqltest;
+SELECT inexistent(), 1 + ,;
+ERROR 42000: FUNCTION inexistent does not exist
+SELECT inexistent();
+ERROR 42000: FUNCTION inexistent does not exist
+SELECT .inexistent();
+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
+SELECT ..inexistent();
+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 '.inexistent()' at line 1
+USE test;
diff --git a/mysql-test/r/sp-prelocking.result b/mysql-test/r/sp-prelocking.result
new file mode 100644
index 00000000000..186b2c05d34
--- /dev/null
+++ b/mysql-test/r/sp-prelocking.result
@@ -0,0 +1,322 @@
+drop database if exists mysqltest;
+drop table if exists t1, t2, t3, t4;
+drop procedure if exists sp1;
+drop procedure if exists sp2;
+drop procedure if exists sp3;
+drop procedure if exists sp4;
+drop function if exists f1;
+drop function if exists f2;
+drop function if exists f3;
+create database mysqltest;
+use mysqltest//
+create procedure sp1 ()
+begin
+drop table if exists t1;
+select 1 as "my-col";
+end;
+//
+select database();
+database()
+mysqltest
+call sp1();
+my-col
+1
+Warnings:
+Note 1051 Unknown table 't1'
+select database();
+database()
+mysqltest
+use test;
+select database();
+database()
+test
+call mysqltest.sp1();
+my-col
+1
+Warnings:
+Note 1051 Unknown table 't1'
+select database();
+database()
+test
+drop procedure mysqltest.sp1;
+drop database mysqltest;
+create procedure sp1()
+begin
+create table t1 (a int);
+insert into t1 values (10);
+end//
+create procedure sp2()
+begin
+create table t2(a int);
+insert into t2 values(1);
+call sp1();
+end//
+create function f1() returns int
+begin
+return (select max(a) from t1);
+end//
+create procedure sp3()
+begin
+call sp1();
+select 'func', f1();
+end//
+call sp1();
+select 't1',a from t1;
+t1 a
+t1 10
+drop table t1;
+call sp2();
+select 't1',a from t1;
+t1 a
+t1 10
+select 't2',a from t2;
+t2 a
+t2 1
+drop table t1, t2;
+call sp3();
+func f1()
+func 10
+select 't1',a from t1;
+t1 a
+t1 10
+drop table t1;
+drop procedure sp1;
+drop procedure sp2;
+drop procedure sp3;
+drop function f1;
+create procedure sp1()
+begin
+create temporary table t2(a int);
+insert into t2 select * from t1;
+end//
+create procedure sp2()
+begin
+create temporary table t1 (a int);
+insert into t1 values(1);
+call sp1();
+select 't1', a from t1;
+select 't2', a from t2;
+drop table t1;
+drop table t2;
+end//
+call sp2();
+t1 a
+t1 1
+t2 a
+t2 1
+drop procedure sp1;
+drop procedure sp2;
+create table t1 (a int);
+insert into t1 values(1),(2);
+create table t2 as select * from t1;
+create table t3 as select * from t1;
+create table t4 as select * from t1;
+create procedure sp1(a int)
+begin
+select a;
+end //
+create function f1() returns int
+begin
+return (select max(a) from t1);
+end //
+CALL sp1(f1());
+a
+2
+create procedure sp2(a int)
+begin
+select * from t3;
+select a;
+end //
+create procedure sp3()
+begin
+select * from t1;
+call sp2(5);
+end //
+create procedure sp4()
+begin
+select * from t2;
+call sp3();
+end //
+call sp4();
+a
+1
+2
+a
+1
+2
+a
+1
+2
+a
+5
+drop procedure sp1;
+drop procedure sp2;
+drop procedure sp3;
+drop procedure sp4;
+drop function f1;
+drop view if exists v1;
+create function f1(ab int) returns int
+begin
+declare i int;
+set i= (select max(a) from t1 where a < ab) ;
+return i;
+end //
+create function f2(ab int) returns int
+begin
+declare i int;
+set i= (select max(a) from t2 where a < ab) ;
+return i;
+end //
+create view v1 as
+select t3.a as x, t4.a as y, f2(3) as z
+from t3, t4 where t3.a = t4.a //
+create procedure sp1()
+begin
+declare a int;
+set a= (select f1(4) + count(*) A from t1, v1);
+end //
+create function f3() returns int
+begin
+call sp1();
+return 1;
+end //
+call sp1() //
+select f3() //
+f3()
+1
+select f3() //
+f3()
+1
+call sp1() //
+drop procedure sp1//
+drop function f3//
+create procedure sp1()
+begin
+declare x int;
+declare c cursor for select f1(3) + count(*) from v1;
+open c;
+fetch c into x;
+end;//
+create function f3() returns int
+begin
+call sp1();
+return 1;
+end //
+call sp1() //
+call sp1() //
+select f3() //
+f3()
+1
+call sp1() //
+drop view v1;
+drop table t1,t2,t3,t4;
+drop function f1;
+drop function f2;
+drop function f3;
+drop procedure sp1;
+drop table if exists t1;
+drop view if exists v1, v2, v3;
+drop function if exists bug15683;
+create table t1 (f1 bigint, f2 varchar(20), f3 bigint);
+insert into t1 set f1 = 1, f2 = 'schoenenbourg', f3 = 1;
+create view v1 as select 1 from t1 union all select 1;
+create view v2 as select 1 from v1;
+create view v3 as select 1 as f1 from v2;
+create function bug15683() returns bigint
+begin
+return (select count(*) from v3);
+end|
+prepare stmt from "select bug15683()";
+execute stmt;
+bug15683()
+2
+execute stmt;
+bug15683()
+2
+deallocate prepare stmt;
+drop table t1;
+drop view v1, v2, v3;
+drop function bug15683;
+drop table if exists t1, t2, t3;
+drop function if exists bug19634;
+create table t1 (id int, data int);
+create table t2 (id int);
+create table t3 (data int);
+create function bug19634() returns int return (select count(*) from t3);
+prepare stmt from "delete t1 from t1, t2 where t1.id = t2.id and bug19634()";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+create trigger t1_bi before delete on t1 for each row insert into t3 values (old.data);
+prepare stmt from "delete t1 from t1, t2 where t1.id = t2.id";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+drop function bug19634;
+drop table t1, t2, t3;
+drop table if exists bug_27907_logs;
+drop table if exists bug_27907_t1;
+create table bug_27907_logs (a int);
+create table bug_27907_t1 (a int);
+create trigger bug_27907_t1_ai after insert on bug_27907_t1
+for each row
+begin
+insert into bug_27907_logs (a) values (1);
+end|
+drop table bug_27907_logs;
+insert into bug_27907_t1(a) values (1);
+ERROR 42S02: Table 'test.bug_27907_logs' doesn't exist
+drop table bug_27907_t1;
+
+Bug#22427 create table if not exists + stored function results in
+inconsistent behavior
+
+Add a test case, the bug itself was fixed by the patch for
+Bug#20662
+
+drop table if exists t1;
+drop function if exists f_bug22427;
+create table t1 (i int);
+insert into t1 values (1);
+create function f_bug22427() returns int return (select max(i) from t1);
+select f_bug22427();
+f_bug22427()
+1
+create table if not exists t1 select f_bug22427() as i;
+Warnings:
+Note 1050 Table 't1' already exists
+create table t1 select f_bug22427() as i;
+ERROR 42S01: Table 't1' already exists
+drop table t1;
+drop function f_bug22427;
+#
+# Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables
+#
+DROP table IF EXISTS t1,t2;
+CREATE TABLE t1 (c1 INT);
+CREATE TABLE t2 (c2 INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (2);
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+UPDATE t2 SET c2= c2 + 1;
+END//
+# Take a table lock on t1.
+# This should pre-lock t2 through the trigger.
+LOCK TABLE t1 WRITE;
+INSERT INTO t1 VALUES (3);
+UNLOCK TABLES;
+LOCK TABLE t1 READ;
+INSERT INTO t2 values(4);
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+UNLOCK TABLES;
+SELECT * FROM t1;
+c1
+1
+3
+SELECT * FROM t2;
+c2
+3
+DROP TRIGGER t1_ai;
+DROP TABLE t1, t2;
+End of 5.0 tests
diff --git a/mysql-test/r/sp-security.result b/mysql-test/r/sp-security.result
new file mode 100644
index 00000000000..8462bafe0e3
--- /dev/null
+++ b/mysql-test/r/sp-security.result
@@ -0,0 +1,522 @@
+use test;
+grant usage on *.* to user1@localhost;
+flush privileges;
+drop table if exists t1;
+drop database if exists db1_secret;
+create database db1_secret;
+create procedure db1_secret.dummy() begin end;
+drop procedure db1_secret.dummy;
+use db1_secret;
+create table t1 ( u varchar(64), i int );
+insert into t1 values('test', 0);
+create procedure stamp(i int)
+insert into db1_secret.t1 values (user(), i);
+show procedure status like 'stamp';
+Db Name Type Definer Modified Created Security_type Comment
+db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+create function db() returns varchar(64)
+begin
+declare v varchar(64);
+select u into v from t1 limit 1;
+return v;
+end|
+show function status like 'db';
+Db Name Type Definer Modified Created Security_type Comment
+db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+call stamp(1);
+select * from t1;
+u i
+test 0
+root@localhost 1
+select db();
+db()
+test
+grant execute on procedure db1_secret.stamp to user1@'%';
+grant execute on function db1_secret.db to user1@'%';
+grant execute on procedure db1_secret.stamp to ''@'%';
+grant execute on function db1_secret.db to ''@'%';
+call db1_secret.stamp(2);
+select db1_secret.db();
+db1_secret.db()
+test
+select * from db1_secret.t1;
+ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1'
+create procedure db1_secret.dummy() begin end;
+ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret'
+drop procedure db1_secret.dummy;
+ERROR 42000: PROCEDURE db1_secret.dummy does not exist
+drop procedure db1_secret.stamp;
+ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db1_secret.stamp'
+drop function db1_secret.db;
+ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db1_secret.db'
+call db1_secret.stamp(3);
+select db1_secret.db();
+db1_secret.db()
+test
+select * from db1_secret.t1;
+ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1'
+create procedure db1_secret.dummy() begin end;
+ERROR 42000: Access denied for user ''@'%' to database 'db1_secret'
+drop procedure db1_secret.dummy;
+ERROR 42000: PROCEDURE db1_secret.dummy does not exist
+drop procedure db1_secret.stamp;
+ERROR 42000: alter routine command denied to user ''@'%' for routine 'db1_secret.stamp'
+drop function db1_secret.db;
+ERROR 42000: alter routine command denied to user ''@'%' for routine 'db1_secret.db'
+select * from t1;
+u i
+test 0
+root@localhost 1
+user1@localhost 2
+anon@localhost 3
+alter procedure stamp sql security invoker;
+show procedure status like 'stamp';
+Db Name Type Definer Modified Created Security_type Comment
+db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER
+alter function db sql security invoker;
+show function status like 'db';
+Db Name Type Definer Modified Created Security_type Comment
+db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER
+call stamp(4);
+select * from t1;
+u i
+test 0
+root@localhost 1
+user1@localhost 2
+anon@localhost 3
+root@localhost 4
+select db();
+db()
+test
+call db1_secret.stamp(5);
+ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't1'
+select db1_secret.db();
+ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1'
+call db1_secret.stamp(6);
+ERROR 42000: INSERT command denied to user ''@'localhost' for table 't1'
+select db1_secret.db();
+ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1'
+drop database if exists db2;
+create database db2;
+use db2;
+create table t2 (s1 int);
+insert into t2 values (0);
+grant usage on db2.* to user1@localhost;
+grant select on db2.* to user1@localhost;
+grant usage on db2.* to user2@localhost;
+grant select,insert,update,delete,create routine on db2.* to user2@localhost;
+grant create routine on db2.* to user1@localhost;
+flush privileges;
+use db2;
+create procedure p () insert into t2 values (1);
+call p();
+ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't2'
+use db2;
+call p();
+ERROR 42000: execute command denied to user 'user2'@'localhost' for routine 'db2.p'
+select * from t2;
+s1
+0
+create procedure q () insert into t2 values (2);
+call q();
+select * from t2;
+s1
+0
+2
+grant usage on procedure db2.q to user2@localhost with grant option;
+grant execute on procedure db2.q to user1@localhost;
+use db2;
+call q();
+select * from t2;
+s1
+0
+2
+2
+alter procedure p modifies sql data;
+drop procedure p;
+alter procedure q modifies sql data;
+ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db2.q'
+drop procedure q;
+ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db2.q'
+use db2;
+alter procedure q modifies sql data;
+drop procedure q;
+use test;
+select type,db,name from mysql.proc;
+type db name
+FUNCTION db1_secret db
+PROCEDURE db1_secret stamp
+drop database db1_secret;
+drop database db2;
+select type,db,name from mysql.proc;
+type db name
+delete from mysql.user where user='user1' or user='user2';
+delete from mysql.user where user='' and host='%';
+delete from mysql.procs_priv where user='user1' or user='user2';
+delete from mysql.procs_priv where user='' and host='%';
+delete from mysql.db where user='user2';
+flush privileges;
+grant usage on *.* to usera@localhost;
+grant usage on *.* to userb@localhost;
+grant usage on *.* to userc@localhost;
+create database sptest;
+create table t1 ( u varchar(64), i int );
+create procedure sptest.p1(i int) insert into test.t1 values (user(), i);
+grant insert on t1 to usera@localhost;
+grant execute on procedure sptest.p1 to usera@localhost;
+show grants for usera@localhost;
+Grants for usera@localhost
+GRANT USAGE ON *.* TO 'usera'@'localhost'
+GRANT INSERT ON `test`.`t1` TO 'usera'@'localhost'
+GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'usera'@'localhost'
+grant execute on procedure sptest.p1 to userc@localhost with grant option;
+show grants for userc@localhost;
+Grants for userc@localhost
+GRANT USAGE ON *.* TO 'userc'@'localhost'
+GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION
+call sptest.p1(1);
+grant execute on procedure sptest.p1 to userb@localhost;
+ERROR 42000: grant command denied to user 'usera'@'localhost' for routine 'sptest.p1'
+drop procedure sptest.p1;
+ERROR 42000: alter routine command denied to user 'usera'@'localhost' for routine 'sptest.p1'
+call sptest.p1(2);
+ERROR 42000: execute command denied to user 'userb'@'localhost' for routine 'sptest.p1'
+grant execute on procedure sptest.p1 to userb@localhost;
+ERROR 42000: execute command denied to user 'userb'@'localhost' for routine 'sptest.p1'
+drop procedure sptest.p1;
+ERROR 42000: alter routine command denied to user 'userb'@'localhost' for routine 'sptest.p1'
+call sptest.p1(3);
+grant execute on procedure sptest.p1 to userb@localhost;
+drop procedure sptest.p1;
+ERROR 42000: alter routine command denied to user 'userc'@'localhost' for routine 'sptest.p1'
+call sptest.p1(4);
+grant execute on procedure sptest.p1 to userb@localhost;
+ERROR 42000: grant command denied to user 'userb'@'localhost' for routine 'sptest.p1'
+drop procedure sptest.p1;
+ERROR 42000: alter routine command denied to user 'userb'@'localhost' for routine 'sptest.p1'
+select * from t1;
+u i
+usera@localhost 1
+userc@localhost 3
+userb@localhost 4
+grant all privileges on procedure sptest.p1 to userc@localhost;
+show grants for userc@localhost;
+Grants for userc@localhost
+GRANT USAGE ON *.* TO 'userc'@'localhost'
+GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION
+show grants for userb@localhost;
+Grants for userb@localhost
+GRANT USAGE ON *.* TO 'userb'@'localhost'
+GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'userb'@'localhost'
+revoke all privileges on procedure sptest.p1 from userb@localhost;
+show grants for userb@localhost;
+Grants for userb@localhost
+GRANT USAGE ON *.* TO 'userb'@'localhost'
+use test;
+drop database sptest;
+delete from mysql.user where user='usera' or user='userb' or user='userc';
+delete from mysql.procs_priv where user='usera' or user='userb' or user='userc';
+delete from mysql.tables_priv where user='usera';
+flush privileges;
+drop table t1;
+drop function if exists bug_9503;
+create database mysqltest//
+use mysqltest//
+create table t1 (s1 int)//
+grant select on t1 to user1@localhost//
+create function bug_9503 () returns int sql security invoker begin declare v int;
+select min(s1) into v from t1; return v; end//
+use mysqltest;
+select bug_9503();
+ERROR 42000: execute command denied to user 'user1'@'localhost' for routine 'mysqltest.bug_9503'
+grant execute on function bug_9503 to user1@localhost;
+do 1;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
+drop function bug_9503;
+use test;
+drop database mysqltest;
+use test;
+select current_user();
+current_user()
+root@localhost
+select user();
+user()
+root@localhost
+create procedure bug7291_0 () sql security invoker select current_user(), user();
+create procedure bug7291_1 () sql security definer call bug7291_0();
+create procedure bug7291_2 () sql security invoker call bug7291_0();
+grant execute on procedure bug7291_0 to user1@localhost;
+grant execute on procedure bug7291_1 to user1@localhost;
+grant execute on procedure bug7291_2 to user1@localhost;
+call bug7291_2();
+current_user() user()
+user1@localhost user1@localhost
+call bug7291_1();
+current_user() user()
+root@localhost user1@localhost
+drop procedure bug7291_1;
+drop procedure bug7291_2;
+drop procedure bug7291_0;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
+drop user user1@localhost;
+drop database if exists mysqltest_1;
+create database mysqltest_1;
+create procedure mysqltest_1.p1()
+begin
+select 1 from dual;
+end//
+grant usage on *.* to mysqltest_1@localhost;
+call mysqltest_1.p1();
+ERROR 42000: execute command denied to user 'mysqltest_1'@'localhost' for routine 'mysqltest_1.p1'
+call mysqltest_1.p1();
+ERROR 42000: execute command denied to user 'mysqltest_1'@'localhost' for routine 'mysqltest_1.p1'
+drop procedure mysqltest_1.p1;
+drop database mysqltest_1;
+revoke usage on *.* from mysqltest_1@localhost;
+drop user mysqltest_1@localhost;
+drop function if exists bug12812|
+create function bug12812() returns char(2)
+begin
+return 'ok';
+end;
+create user user_bug12812@localhost IDENTIFIED BY 'ABC'|
+SELECT test.bug12812()|
+ERROR 42000: execute command denied to user 'user_bug12812'@'localhost' for routine 'test.bug12812'
+CREATE VIEW v1 AS SELECT test.bug12812()|
+ERROR 42000: execute command denied to user 'user_bug12812'@'localhost' for routine 'test.bug12812'
+DROP USER user_bug12812@localhost|
+drop function bug12812|
+create database db_bug14834;
+create user user1_bug14834@localhost identified by '';
+grant all on `db\_bug14834`.* to user1_bug14834@localhost;
+create user user2_bug14834@localhost identified by '';
+grant all on `db\_bug14834`.* to user2_bug14834@localhost;
+create user user3_bug14834@localhost identified by '';
+grant all on `db__ug14834`.* to user3_bug14834@localhost;
+create procedure p_bug14834() select user(), current_user();
+call p_bug14834();
+user() current_user()
+user1_bug14834@localhost user1_bug14834@localhost
+call p_bug14834();
+user() current_user()
+user2_bug14834@localhost user1_bug14834@localhost
+call p_bug14834();
+user() current_user()
+user3_bug14834@localhost user1_bug14834@localhost
+drop user user1_bug14834@localhost;
+drop user user2_bug14834@localhost;
+drop user user3_bug14834@localhost;
+drop database db_bug14834;
+create database db_bug14533;
+use db_bug14533;
+create table t1 (id int);
+create user user_bug14533@localhost identified by '';
+create procedure bug14533_1()
+sql security definer
+desc db_bug14533.t1;
+create procedure bug14533_2()
+sql security definer
+select * from db_bug14533.t1;
+grant execute on procedure db_bug14533.bug14533_1 to user_bug14533@localhost;
+grant execute on procedure db_bug14533.bug14533_2 to user_bug14533@localhost;
+call db_bug14533.bug14533_1();
+Field Type Null Key Default Extra
+id int(11) YES NULL
+call db_bug14533.bug14533_2();
+id
+desc db_bug14533.t1;
+ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table 't1'
+select * from db_bug14533.t1;
+ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table 't1'
+drop user user_bug14533@localhost;
+drop database db_bug14533;
+CREATE DATABASE db_bug7787;
+use db_bug7787;
+CREATE PROCEDURE p1()
+SHOW INNODB STATUS;
+Warnings:
+Warning 1287 'SHOW INNODB STATUS' is deprecated; use 'SHOW ENGINE INNODB STATUS' instead
+GRANT EXECUTE ON PROCEDURE p1 TO user_bug7787@localhost;
+DROP DATABASE db_bug7787;
+drop user user_bug7787@localhost;
+use test;
+
+---> connection: root
+DROP DATABASE IF EXISTS mysqltest;
+CREATE DATABASE mysqltest;
+CREATE USER mysqltest_1@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_1@localhost;
+CREATE USER mysqltest_2@localhost;
+GRANT SUPER ON *.* TO mysqltest_2@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost;
+
+---> connection: mysqltest_2_con
+use mysqltest;
+CREATE PROCEDURE wl2897_p1() SELECT 1;
+CREATE FUNCTION wl2897_f1() RETURNS INT RETURN 1;
+
+---> connection: mysqltest_1_con
+use mysqltest;
+CREATE DEFINER=root@localhost PROCEDURE wl2897_p2() SELECT 2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+CREATE DEFINER=root@localhost FUNCTION wl2897_f2() RETURNS INT RETURN 2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+
+---> connection: mysqltest_2_con
+use mysqltest;
+CREATE DEFINER='a @ b @ c'@localhost PROCEDURE wl2897_p3() SELECT 3;
+Warnings:
+Note 1449 There is no 'a @ b @ c'@'localhost' registered
+CREATE DEFINER='a @ b @ c'@localhost FUNCTION wl2897_f3() RETURNS INT RETURN 3;
+Warnings:
+Note 1449 There is no 'a @ b @ c'@'localhost' registered
+
+---> connection: con1root
+use mysqltest;
+SHOW CREATE PROCEDURE wl2897_p1;
+Procedure sql_mode Create Procedure
+wl2897_p1 CREATE DEFINER=`mysqltest_2`@`localhost` PROCEDURE `wl2897_p1`()
+SELECT 1
+SHOW CREATE PROCEDURE wl2897_p3;
+Procedure sql_mode Create Procedure
+wl2897_p3 CREATE DEFINER=`a @ b @ c`@`localhost` PROCEDURE `wl2897_p3`()
+SELECT 3
+SHOW CREATE FUNCTION wl2897_f1;
+Function sql_mode Create Function
+wl2897_f1 CREATE DEFINER=`mysqltest_2`@`localhost` FUNCTION `wl2897_f1`() RETURNS int(11)
+RETURN 1
+SHOW CREATE FUNCTION wl2897_f3;
+Function sql_mode Create Function
+wl2897_f3 CREATE DEFINER=`a @ b @ c`@`localhost` FUNCTION `wl2897_f3`() RETURNS int(11)
+RETURN 3
+DROP USER mysqltest_1@localhost;
+DROP USER mysqltest_2@localhost;
+DROP DATABASE mysqltest;
+
+---> connection: root
+DROP DATABASE IF EXISTS mysqltest;
+CREATE DATABASE mysqltest;
+CREATE USER mysqltest_1@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_1@localhost;
+CREATE USER mysqltest_2@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost;
+
+---> connection: mysqltest_1_con
+use mysqltest;
+CREATE PROCEDURE bug13198_p1()
+SELECT 1;
+CREATE FUNCTION bug13198_f1() RETURNS INT
+RETURN 1;
+CALL bug13198_p1();
+1
+1
+SELECT bug13198_f1();
+bug13198_f1()
+1
+
+---> connection: mysqltest_2_con
+use mysqltest;
+CALL bug13198_p1();
+1
+1
+SELECT bug13198_f1();
+bug13198_f1()
+1
+
+---> connection: root
+DROP USER mysqltest_1@localhost;
+
+---> connection: mysqltest_2_con
+use mysqltest;
+CALL bug13198_p1();
+ERROR HY000: There is no 'mysqltest_1'@'localhost' registered
+SELECT bug13198_f1();
+ERROR HY000: There is no 'mysqltest_1'@'localhost' registered
+
+---> connection: root
+DROP USER mysqltest_2@localhost;
+DROP DATABASE mysqltest;
+GRANT USAGE ON *.* TO user19857@localhost IDENTIFIED BY 'meow';
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ROUTINE, ALTER ROUTINE ON test.* TO
+user19857@localhost;
+SELECT Host,User,Password FROM mysql.user WHERE User='user19857';
+Host User Password
+localhost user19857 *82DC221D557298F6CE9961037DB1C90604792F5C
+
+---> connection: mysqltest_2_con
+use test;
+CREATE PROCEDURE sp19857() DETERMINISTIC
+BEGIN
+DECLARE a INT;
+SET a=1;
+SELECT a;
+END //
+SHOW CREATE PROCEDURE test.sp19857;
+Procedure sql_mode Create Procedure
+sp19857 CREATE DEFINER=`user19857`@`localhost` PROCEDURE `sp19857`()
+ DETERMINISTIC
+BEGIN
+DECLARE a INT;
+SET a=1;
+SELECT a;
+END
+DROP PROCEDURE IF EXISTS test.sp19857;
+
+---> connection: root
+SELECT Host,User,Password FROM mysql.user WHERE User='user19857';
+Host User Password
+localhost user19857 *82DC221D557298F6CE9961037DB1C90604792F5C
+DROP USER user19857@localhost;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP FUNCTION IF EXISTS f_suid;
+DROP PROCEDURE IF EXISTS p_suid;
+DROP FUNCTION IF EXISTS f_evil;
+DELETE FROM mysql.user WHERE user LIKE 'mysqltest\_%';
+DELETE FROM mysql.db WHERE user LIKE 'mysqltest\_%';
+DELETE FROM mysql.tables_priv WHERE user LIKE 'mysqltest\_%';
+DELETE FROM mysql.columns_priv WHERE user LIKE 'mysqltest\_%';
+FLUSH PRIVILEGES;
+CREATE TABLE t1 (i INT);
+CREATE FUNCTION f_suid(i INT) RETURNS INT SQL SECURITY DEFINER RETURN 0;
+CREATE PROCEDURE p_suid(IN i INT) SQL SECURITY DEFINER SET @c:= 0;
+CREATE USER mysqltest_u1@localhost;
+GRANT EXECUTE ON test.* TO mysqltest_u1@localhost;
+CREATE DEFINER=mysqltest_u1@localhost FUNCTION f_evil () RETURNS INT
+SQL SECURITY INVOKER
+BEGIN
+SET @a:= CURRENT_USER();
+SET @b:= (SELECT COUNT(*) FROM t1);
+RETURN @b;
+END|
+CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT f_evil();
+SELECT COUNT(*) FROM t1;
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
+SELECT f_evil();
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
+SELECT @a, @b;
+@a @b
+mysqltest_u1@localhost NULL
+SELECT f_suid(f_evil());
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
+SELECT @a, @b;
+@a @b
+mysqltest_u1@localhost NULL
+CALL p_suid(f_evil());
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
+SELECT @a, @b;
+@a @b
+mysqltest_u1@localhost NULL
+SELECT * FROM v1;
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v1'
+SELECT @a, @b;
+@a @b
+mysqltest_u1@localhost NULL
+DROP VIEW v1;
+DROP FUNCTION f_evil;
+DROP USER mysqltest_u1@localhost;
+DROP PROCEDURE p_suid;
+DROP FUNCTION f_suid;
+DROP TABLE t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/sp-threads.result b/mysql-test/r/sp-threads.result
new file mode 100644
index 00000000000..953830ecc87
--- /dev/null
+++ b/mysql-test/r/sp-threads.result
@@ -0,0 +1,91 @@
+use test;
+drop table if exists t1;
+create table t1 (s1 int, s2 int, s3 int);
+create procedure bug4934()
+begin
+insert into t1 values (1,0,1);
+end//
+use test;
+call bug4934();
+select * from t1;
+s1 s2 s3
+1 0 1
+drop table t1;
+create table t1 (s1 int, s2 int, s3 int);
+drop procedure bug4934;
+create procedure bug4934()
+begin
+end//
+select * from t1;
+s1 s2 s3
+call bug4934();
+select * from t1;
+s1 s2 s3
+drop table t1;
+drop procedure bug4934;
+drop procedure if exists bug9486;
+drop table if exists t1, t2;
+create table t1 (id1 int, val int);
+create table t2 (id2 int);
+create procedure bug9486()
+update t1, t2 set val= 1 where id1=id2;
+call bug9486();
+lock tables t2 write;
+call bug9486();
+show processlist;
+Id User Host db Command Time State Info
+# root localhost test Sleep # NULL
+# root localhost test Query # Locked update t1, t2 set val= 1 where id1=id2
+# root localhost test Query # NULL show processlist
+# root localhost test Sleep # NULL
+unlock tables;
+drop procedure bug9486;
+drop table t1, t2;
+drop procedure if exists bug11158;
+create procedure bug11158() delete t1 from t1, t2 where t1.id = t2.id;
+create table t1 (id int, j int);
+insert into t1 values (1, 1), (2, 2);
+create table t2 (id int);
+insert into t2 values (1);
+call bug11158();
+select * from t1;
+id j
+2 2
+lock tables t2 read;
+call bug11158();
+unlock tables;
+drop procedure bug11158;
+drop table t1, t2;
+drop function if exists bug11554;
+drop view if exists v1;
+create table t1 (i int);
+create function bug11554 () returns int return 1;
+create view v1 as select bug11554() as f;
+insert into t1 (select f from v1);
+drop function bug11554;
+drop table t1;
+drop view v1;
+drop procedure if exists p1;
+drop procedure if exists p2;
+create table t1 (s1 int)|
+create procedure p1() select * from t1|
+create procedure p2()
+begin
+insert into t1 values (1);
+call p1();
+select * from t1;
+end|
+use test;
+lock table t1 write;
+call p2();
+use test;
+drop procedure p1;
+create procedure p1() select * from t1;
+unlock tables;
+s1
+1
+s1
+1
+drop procedure p1;
+drop procedure p2;
+drop table t1;
diff --git a/mysql-test/r/sp-ucs2.result b/mysql-test/r/sp-ucs2.result
new file mode 100644
index 00000000000..ce6be5b0a65
--- /dev/null
+++ b/mysql-test/r/sp-ucs2.result
@@ -0,0 +1,14 @@
+drop function if exists bug17615|
+create table t3 (a varchar(256) unicode)|
+create function bug17615() returns varchar(256) unicode
+begin
+declare tmp_res varchar(256) unicode;
+set tmp_res= 'foo string';
+return tmp_res;
+end|
+insert into t3 values(bug17615())|
+select * from t3|
+a
+foo string
+drop function bug17615|
+drop table t3|
diff --git a/mysql-test/r/sp-vars.result b/mysql-test/r/sp-vars.result
new file mode 100644
index 00000000000..f3eb40b3d70
--- /dev/null
+++ b/mysql-test/r/sp-vars.result
@@ -0,0 +1,1204 @@
+DROP PROCEDURE IF EXISTS sp_vars_check_dflt;
+DROP PROCEDURE IF EXISTS sp_vars_check_assignment;
+DROP FUNCTION IF EXISTS sp_vars_check_ret1;
+DROP FUNCTION IF EXISTS sp_vars_check_ret2;
+DROP FUNCTION IF EXISTS sp_vars_check_ret3;
+DROP FUNCTION IF EXISTS sp_vars_check_ret4;
+DROP FUNCTION IF EXISTS sp_vars_div_zero;
+SET @@sql_mode = 'ansi';
+CREATE PROCEDURE sp_vars_check_dflt()
+BEGIN
+DECLARE v1 TINYINT DEFAULT 1e200;
+DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
+DECLARE v2 TINYINT DEFAULT -1e200;
+DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
+DECLARE v3 TINYINT DEFAULT 300;
+DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
+DECLARE v4 TINYINT DEFAULT -300;
+DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
+DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
+DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
+DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
+DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
+DECLARE v7 TINYINT DEFAULT '10';
+DECLARE v8 TINYINT DEFAULT '10 ';
+DECLARE v9 TINYINT DEFAULT ' 10 ';
+DECLARE v10 TINYINT DEFAULT 'String 10 ';
+DECLARE v11 TINYINT DEFAULT 'String10';
+DECLARE v12 TINYINT DEFAULT '10 String';
+DECLARE v13 TINYINT DEFAULT '10String';
+DECLARE v14 TINYINT DEFAULT concat('10', ' ');
+DECLARE v15 TINYINT DEFAULT concat(' ', '10');
+DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
+DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
+DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
+DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
+DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
+SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
+SELECT v5, v5u, v6, v6u;
+SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
+SELECT v17, v18, v19, v20;
+END|
+CREATE PROCEDURE sp_vars_check_assignment()
+BEGIN
+DECLARE i1, i2, i3, i4 TINYINT;
+DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
+DECLARE d1, d2, d3 DECIMAL(64, 2);
+SET i1 = 1e200;
+SET i2 = -1e200;
+SET i3 = 300;
+SET i4 = -300;
+SELECT i1, i2, i3, i4;
+SET i1 = 10 * 10 * 10;
+SET i2 = -10 * 10 * 10;
+SET i3 = sign(10 * 10) * 10 * 20;
+SET i4 = sign(-10 * 10) * -10 * 20;
+SELECT i1, i2, i3, i4;
+SET u1 = 1e200;
+SET u2 = -1e200;
+SET u3 = 300;
+SET u4 = -300;
+SELECT u1, u2, u3, u4;
+SET u1 = 10 * 10 * 10;
+SET u2 = -10 * 10 * 10;
+SET u3 = sign(10 * 10) * 10 * 20;
+SET u4 = sign(-10 * 10) * -10 * 20;
+SELECT u1, u2, u3, u4;
+SET d1 = 1234;
+SET d2 = 1234.12;
+SET d3 = 1234.1234;
+SELECT d1, d2, d3;
+SET d1 = 12 * 100 + 34;
+SET d2 = 12 * 100 + 34 + 0.12;
+SET d3 = 12 * 100 + 34 + 0.1234;
+SELECT d1, d2, d3;
+END|
+CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
+BEGIN
+RETURN 1e200;
+END|
+CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
+BEGIN
+RETURN 10 * 10 * 10;
+END|
+CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
+BEGIN
+RETURN 'Hello, world';
+END|
+CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
+BEGIN
+RETURN 12 * 10 + 34 + 0.1234;
+END|
+CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
+BEGIN
+DECLARE div_zero INTEGER;
+SELECT 1/0 INTO div_zero;
+RETURN div_zero;
+END|
+
+---------------------------------------------------------------
+Calling the routines, created in ANSI mode.
+---------------------------------------------------------------
+
+CALL sp_vars_check_dflt();
+v1 v1u v2 v2u v3 v3u v4 v4u
+127 255 -128 0 127 255 -128 0
+v5 v5u v6 v6u
+127 255 -128 0
+v7 v8 v9 v10 v11 v12 v13 v14 v15 v16
+10 10 10 0 0 10 10 10 10 0
+v17 v18 v19 v20
+12.00 12.12 12.00 12.12
+Warnings:
+Warning 1264 Out of range value adjusted for column 'v1' at row 1
+Warning 1264 Out of range value adjusted for column 'v1u' at row 1
+Warning 1264 Out of range value adjusted for column 'v2' at row 1
+Warning 1264 Out of range value adjusted for column 'v2u' at row 1
+Warning 1264 Out of range value adjusted for column 'v3' at row 1
+Warning 1264 Out of range value adjusted for column 'v3u' at row 1
+Warning 1264 Out of range value adjusted for column 'v4' at row 1
+Warning 1264 Out of range value adjusted for column 'v4u' at row 1
+Warning 1264 Out of range value adjusted for column 'v5' at row 1
+Warning 1264 Out of range value adjusted for column 'v5u' at row 1
+Warning 1264 Out of range value adjusted for column 'v6' at row 1
+Warning 1264 Out of range value adjusted for column 'v6u' at row 1
+Warning 1366 Incorrect integer value: 'String 10 ' for column 'v10' at row 1
+Warning 1366 Incorrect integer value: 'String10' for column 'v11' at row 1
+Warning 1265 Data truncated for column 'v12' at row 1
+Warning 1265 Data truncated for column 'v13' at row 1
+Warning 1366 Incorrect integer value: 'Hello, world' for column 'v16' at row 1
+Note 1265 Data truncated for column 'v18' at row 1
+Note 1265 Data truncated for column 'v20' at row 1
+CALL sp_vars_check_assignment();
+i1 i2 i3 i4
+127 -128 127 -128
+i1 i2 i3 i4
+127 -128 127 127
+u1 u2 u3 u4
+255 0 255 0
+u1 u2 u3 u4
+255 0 200 200
+d1 d2 d3
+1234.00 1234.12 1234.12
+d1 d2 d3
+1234.00 1234.12 1234.12
+Warnings:
+Warning 1264 Out of range value adjusted for column 'i1' at row 1
+Warning 1264 Out of range value adjusted for column 'i2' at row 1
+Warning 1264 Out of range value adjusted for column 'i3' at row 1
+Warning 1264 Out of range value adjusted for column 'i4' at row 1
+Warning 1264 Out of range value adjusted for column 'i1' at row 1
+Warning 1264 Out of range value adjusted for column 'i2' at row 1
+Warning 1264 Out of range value adjusted for column 'i3' at row 1
+Warning 1264 Out of range value adjusted for column 'i4' at row 1
+Warning 1264 Out of range value adjusted for column 'u1' at row 1
+Warning 1264 Out of range value adjusted for column 'u2' at row 1
+Warning 1264 Out of range value adjusted for column 'u3' at row 1
+Warning 1264 Out of range value adjusted for column 'u4' at row 1
+Warning 1264 Out of range value adjusted for column 'u1' at row 1
+Warning 1264 Out of range value adjusted for column 'u2' at row 1
+Note 1265 Data truncated for column 'd3' at row 1
+Note 1265 Data truncated for column 'd3' at row 1
+SELECT sp_vars_check_ret1();
+sp_vars_check_ret1()
+127
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sp_vars_check_ret1()' at row 1
+SELECT sp_vars_check_ret2();
+sp_vars_check_ret2()
+127
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sp_vars_check_ret2()' at row 1
+SELECT sp_vars_check_ret3();
+sp_vars_check_ret3()
+0
+Warnings:
+Warning 1366 Incorrect integer value: 'Hello, world' for column 'sp_vars_check_ret3()' at row 1
+SELECT sp_vars_check_ret4();
+sp_vars_check_ret4()
+154.12
+Warnings:
+Note 1265 Data truncated for column 'sp_vars_check_ret4()' at row 1
+SELECT sp_vars_div_zero();
+sp_vars_div_zero()
+NULL
+SET @@sql_mode = 'traditional';
+
+---------------------------------------------------------------
+Calling in TRADITIONAL mode the routines, created in ANSI mode.
+---------------------------------------------------------------
+
+CALL sp_vars_check_dflt();
+v1 v1u v2 v2u v3 v3u v4 v4u
+127 255 -128 0 127 255 -128 0
+v5 v5u v6 v6u
+127 255 -128 0
+v7 v8 v9 v10 v11 v12 v13 v14 v15 v16
+10 10 10 0 0 10 10 10 10 0
+v17 v18 v19 v20
+12.00 12.12 12.00 12.12
+Warnings:
+Warning 1264 Out of range value adjusted for column 'v1' at row 1
+Warning 1264 Out of range value adjusted for column 'v1u' at row 1
+Warning 1264 Out of range value adjusted for column 'v2' at row 1
+Warning 1264 Out of range value adjusted for column 'v2u' at row 1
+Warning 1264 Out of range value adjusted for column 'v3' at row 1
+Warning 1264 Out of range value adjusted for column 'v3u' at row 1
+Warning 1264 Out of range value adjusted for column 'v4' at row 1
+Warning 1264 Out of range value adjusted for column 'v4u' at row 1
+Warning 1264 Out of range value adjusted for column 'v5' at row 1
+Warning 1264 Out of range value adjusted for column 'v5u' at row 1
+Warning 1264 Out of range value adjusted for column 'v6' at row 1
+Warning 1264 Out of range value adjusted for column 'v6u' at row 1
+Warning 1366 Incorrect integer value: 'String 10 ' for column 'v10' at row 1
+Warning 1366 Incorrect integer value: 'String10' for column 'v11' at row 1
+Warning 1265 Data truncated for column 'v12' at row 1
+Warning 1265 Data truncated for column 'v13' at row 1
+Warning 1366 Incorrect integer value: 'Hello, world' for column 'v16' at row 1
+Note 1265 Data truncated for column 'v18' at row 1
+Note 1265 Data truncated for column 'v20' at row 1
+CALL sp_vars_check_assignment();
+i1 i2 i3 i4
+127 -128 127 -128
+i1 i2 i3 i4
+127 -128 127 127
+u1 u2 u3 u4
+255 0 255 0
+u1 u2 u3 u4
+255 0 200 200
+d1 d2 d3
+1234.00 1234.12 1234.12
+d1 d2 d3
+1234.00 1234.12 1234.12
+Warnings:
+Warning 1264 Out of range value adjusted for column 'i1' at row 1
+Warning 1264 Out of range value adjusted for column 'i2' at row 1
+Warning 1264 Out of range value adjusted for column 'i3' at row 1
+Warning 1264 Out of range value adjusted for column 'i4' at row 1
+Warning 1264 Out of range value adjusted for column 'i1' at row 1
+Warning 1264 Out of range value adjusted for column 'i2' at row 1
+Warning 1264 Out of range value adjusted for column 'i3' at row 1
+Warning 1264 Out of range value adjusted for column 'i4' at row 1
+Warning 1264 Out of range value adjusted for column 'u1' at row 1
+Warning 1264 Out of range value adjusted for column 'u2' at row 1
+Warning 1264 Out of range value adjusted for column 'u3' at row 1
+Warning 1264 Out of range value adjusted for column 'u4' at row 1
+Warning 1264 Out of range value adjusted for column 'u1' at row 1
+Warning 1264 Out of range value adjusted for column 'u2' at row 1
+Note 1265 Data truncated for column 'd3' at row 1
+Note 1265 Data truncated for column 'd3' at row 1
+SELECT sp_vars_check_ret1();
+sp_vars_check_ret1()
+127
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sp_vars_check_ret1()' at row 1
+SELECT sp_vars_check_ret2();
+sp_vars_check_ret2()
+127
+Warnings:
+Warning 1264 Out of range value adjusted for column 'sp_vars_check_ret2()' at row 1
+SELECT sp_vars_check_ret3();
+sp_vars_check_ret3()
+0
+Warnings:
+Warning 1366 Incorrect integer value: 'Hello, world' for column 'sp_vars_check_ret3()' at row 1
+SELECT sp_vars_check_ret4();
+sp_vars_check_ret4()
+154.12
+Warnings:
+Note 1265 Data truncated for column 'sp_vars_check_ret4()' at row 1
+SELECT sp_vars_div_zero();
+sp_vars_div_zero()
+NULL
+DROP PROCEDURE sp_vars_check_dflt;
+DROP PROCEDURE sp_vars_check_assignment;
+DROP FUNCTION sp_vars_check_ret1;
+DROP FUNCTION sp_vars_check_ret2;
+DROP FUNCTION sp_vars_check_ret3;
+DROP FUNCTION sp_vars_check_ret4;
+DROP FUNCTION sp_vars_div_zero;
+CREATE PROCEDURE sp_vars_check_dflt()
+BEGIN
+DECLARE v1 TINYINT DEFAULT 1e200;
+DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
+DECLARE v2 TINYINT DEFAULT -1e200;
+DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
+DECLARE v3 TINYINT DEFAULT 300;
+DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
+DECLARE v4 TINYINT DEFAULT -300;
+DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
+DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
+DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
+DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
+DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
+DECLARE v7 TINYINT DEFAULT '10';
+DECLARE v8 TINYINT DEFAULT '10 ';
+DECLARE v9 TINYINT DEFAULT ' 10 ';
+DECLARE v10 TINYINT DEFAULT 'String 10 ';
+DECLARE v11 TINYINT DEFAULT 'String10';
+DECLARE v12 TINYINT DEFAULT '10 String';
+DECLARE v13 TINYINT DEFAULT '10String';
+DECLARE v14 TINYINT DEFAULT concat('10', ' ');
+DECLARE v15 TINYINT DEFAULT concat(' ', '10');
+DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
+DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
+DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
+DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
+DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
+SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
+SELECT v5, v5u, v6, v6u;
+SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
+SELECT v17, v18, v19, v20;
+END|
+CREATE PROCEDURE sp_vars_check_assignment()
+BEGIN
+DECLARE i1, i2, i3, i4 TINYINT;
+DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
+DECLARE d1, d2, d3 DECIMAL(64, 2);
+SET i1 = 1e200;
+SET i2 = -1e200;
+SET i3 = 300;
+SET i4 = -300;
+SELECT i1, i2, i3, i4;
+SET i1 = 10 * 10 * 10;
+SET i2 = -10 * 10 * 10;
+SET i3 = sign(10 * 10) * 10 * 20;
+SET i4 = sign(-10 * 10) * -10 * 20;
+SELECT i1, i2, i3, i4;
+SET u1 = 1e200;
+SET u2 = -1e200;
+SET u3 = 300;
+SET u4 = -300;
+SELECT u1, u2, u3, u4;
+SET u1 = 10 * 10 * 10;
+SET u2 = -10 * 10 * 10;
+SET u3 = sign(10 * 10) * 10 * 20;
+SET u4 = sign(-10 * 10) * -10 * 20;
+SELECT u1, u2, u3, u4;
+SET d1 = 1234;
+SET d2 = 1234.12;
+SET d3 = 1234.1234;
+SELECT d1, d2, d3;
+SET d1 = 12 * 100 + 34;
+SET d2 = 12 * 100 + 34 + 0.12;
+SET d3 = 12 * 100 + 34 + 0.1234;
+SELECT d1, d2, d3;
+END|
+CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
+BEGIN
+RETURN 1e200;
+END|
+CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
+BEGIN
+RETURN 10 * 10 * 10;
+END|
+CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
+BEGIN
+RETURN 'Hello, world';
+END|
+CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
+BEGIN
+RETURN 12 * 10 + 34 + 0.1234;
+END|
+CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
+BEGIN
+DECLARE div_zero INTEGER;
+SELECT 1/0 INTO div_zero;
+RETURN div_zero;
+END|
+
+---------------------------------------------------------------
+Calling the routines, created in TRADITIONAL mode.
+---------------------------------------------------------------
+
+CALL sp_vars_check_dflt();
+ERROR 22003: Out of range value adjusted for column 'v1' at row 1
+CALL sp_vars_check_assignment();
+ERROR 22003: Out of range value adjusted for column 'i1' at row 1
+SELECT sp_vars_check_ret1();
+ERROR 22003: Out of range value adjusted for column 'sp_vars_check_ret1()' at row 1
+SELECT sp_vars_check_ret2();
+ERROR 22003: Out of range value adjusted for column 'sp_vars_check_ret2()' at row 1
+SELECT sp_vars_check_ret3();
+ERROR HY000: Incorrect integer value: 'Hello, world' for column 'sp_vars_check_ret3()' at row 1
+SELECT sp_vars_check_ret4();
+sp_vars_check_ret4()
+154.12
+Warnings:
+Note 1265 Data truncated for column 'sp_vars_check_ret4()' at row 1
+SELECT sp_vars_div_zero();
+ERROR 22012: Division by 0
+SET @@sql_mode = 'ansi';
+DROP PROCEDURE sp_vars_check_dflt;
+DROP PROCEDURE sp_vars_check_assignment;
+DROP FUNCTION sp_vars_check_ret1;
+DROP FUNCTION sp_vars_check_ret2;
+DROP FUNCTION sp_vars_check_ret3;
+DROP FUNCTION sp_vars_check_ret4;
+DROP FUNCTION sp_vars_div_zero;
+
+---------------------------------------------------------------
+BIT data type tests
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE v1 BIT;
+DECLARE v2 BIT(1);
+DECLARE v3 BIT(3) DEFAULT b'101';
+DECLARE v4 BIT(64) DEFAULT 0x5555555555555555;
+DECLARE v5 BIT(3);
+DECLARE v6 BIT(64);
+DECLARE v7 BIT(8) DEFAULT 128;
+DECLARE v8 BIT(8) DEFAULT '128';
+DECLARE v9 BIT(8) DEFAULT ' 128';
+DECLARE v10 BIT(8) DEFAULT 'x 128';
+SET v1 = v4;
+SET v2 = 0;
+SET v5 = v4; # check overflow
+SET v6 = v3; # check padding
+SELECT HEX(v1);
+SELECT HEX(v2);
+SELECT HEX(v3);
+SELECT HEX(v4);
+SELECT HEX(v5);
+SELECT HEX(v6);
+SELECT HEX(v7);
+SELECT HEX(v8);
+SELECT HEX(v9);
+SELECT HEX(v10);
+END|
+CALL p1();
+HEX(v1)
+1
+HEX(v2)
+0
+HEX(v3)
+5
+HEX(v4)
+5555555555555555
+HEX(v5)
+7
+HEX(v6)
+5
+HEX(v7)
+80
+HEX(v8)
+FF
+HEX(v9)
+FF
+HEX(v10)
+FF
+Warnings:
+Warning 1264 Out of range value adjusted for column 'v8' at row 1
+Warning 1264 Out of range value adjusted for column 'v9' at row 1
+Warning 1264 Out of range value adjusted for column 'v10' at row 1
+Warning 1264 Out of range value adjusted for column 'v1' at row 1
+Warning 1264 Out of range value adjusted for column 'v5' at row 1
+DROP PROCEDURE p1;
+
+---------------------------------------------------------------
+CASE expression tests.
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+Warnings:
+Note 1305 PROCEDURE p1 does not exist
+DROP PROCEDURE IF EXISTS p2;
+Warnings:
+Note 1305 PROCEDURE p2 does not exist
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE t1(log_msg VARCHAR(1024));
+CREATE PROCEDURE p1(arg VARCHAR(255))
+BEGIN
+INSERT INTO t1 VALUES('p1: step1');
+CASE arg * 10
+WHEN 10 * 10 THEN
+INSERT INTO t1 VALUES('p1: case1: on 10');
+WHEN 10 * 10 + 10 * 10 THEN
+BEGIN
+CASE arg / 10
+WHEN 1 THEN
+INSERT INTO t1 VALUES('p1: case1: case2: on 1');
+WHEN 2 THEN
+BEGIN
+DECLARE i TINYINT DEFAULT 10;
+WHILE i > 0 DO
+INSERT INTO t1 VALUES(CONCAT('p1: case1: case2: loop: i: ', i));
+CASE MOD(i, 2)
+WHEN 0 THEN
+INSERT INTO t1 VALUES('p1: case1: case2: loop: i is even');
+WHEN 1 THEN
+INSERT INTO t1 VALUES('p1: case1: case2: loop: i is odd');
+ELSE
+INSERT INTO t1 VALUES('p1: case1: case2: loop: ERROR');
+END CASE;
+SET i = i - 1;
+END WHILE;
+END;
+ELSE
+INSERT INTO t1 VALUES('p1: case1: case2: ERROR');
+END CASE;
+CASE arg
+WHEN 10 THEN
+INSERT INTO t1 VALUES('p1: case1: case3: on 10');
+WHEN 20 THEN
+INSERT INTO t1 VALUES('p1: case1: case3: on 20');
+ELSE
+INSERT INTO t1 VALUES('p1: case1: case3: ERROR');
+END CASE;
+END;
+ELSE
+INSERT INTO t1 VALUES('p1: case1: ERROR');
+END CASE;
+CASE arg * 10
+WHEN 10 * 10 THEN
+INSERT INTO t1 VALUES('p1: case4: on 10');
+WHEN 10 * 10 + 10 * 10 THEN
+BEGIN
+CASE arg / 10
+WHEN 1 THEN
+INSERT INTO t1 VALUES('p1: case4: case5: on 1');
+WHEN 2 THEN
+BEGIN
+DECLARE i TINYINT DEFAULT 10;
+WHILE i > 0 DO
+INSERT INTO t1 VALUES(CONCAT('p1: case4: case5: loop: i: ', i));
+CASE MOD(i, 2)
+WHEN 0 THEN
+INSERT INTO t1 VALUES('p1: case4: case5: loop: i is even');
+WHEN 1 THEN
+INSERT INTO t1 VALUES('p1: case4: case5: loop: i is odd');
+ELSE
+INSERT INTO t1 VALUES('p1: case4: case5: loop: ERROR');
+END CASE;
+SET i = i - 1;
+END WHILE;
+END;
+ELSE
+INSERT INTO t1 VALUES('p1: case4: case5: ERROR');
+END CASE;
+CASE arg
+WHEN 10 THEN
+INSERT INTO t1 VALUES('p1: case4: case6: on 10');
+WHEN 20 THEN
+INSERT INTO t1 VALUES('p1: case4: case6: on 20');
+ELSE
+INSERT INTO t1 VALUES('p1: case4: case6: ERROR');
+END CASE;
+END;
+ELSE
+INSERT INTO t1 VALUES('p1: case4: ERROR');
+END CASE;
+END|
+CREATE PROCEDURE p2()
+BEGIN
+DECLARE i TINYINT DEFAULT 3;
+WHILE i > 0 DO
+IF MOD(i, 2) = 0 THEN
+SET @_test_session_var = 10;
+ELSE
+SET @_test_session_var = 'test';
+END IF;
+CASE @_test_session_var
+WHEN 10 THEN
+INSERT INTO t1 VALUES('p2: case: numerical type');
+WHEN 'test' THEN
+INSERT INTO t1 VALUES('p2: case: string type');
+ELSE
+INSERT INTO t1 VALUES('p2: case: ERROR');
+END CASE;
+SET i = i - 1;
+END WHILE;
+END|
+CALL p1(10);
+CALL p1(20);
+CALL p2();
+SELECT * FROM t1;
+log_msg
+p1: step1
+p1: case1: on 10
+p1: case4: on 10
+p1: step1
+p1: case1: case2: loop: i: 10
+p1: case1: case2: loop: i is even
+p1: case1: case2: loop: i: 9
+p1: case1: case2: loop: i is odd
+p1: case1: case2: loop: i: 8
+p1: case1: case2: loop: i is even
+p1: case1: case2: loop: i: 7
+p1: case1: case2: loop: i is odd
+p1: case1: case2: loop: i: 6
+p1: case1: case2: loop: i is even
+p1: case1: case2: loop: i: 5
+p1: case1: case2: loop: i is odd
+p1: case1: case2: loop: i: 4
+p1: case1: case2: loop: i is even
+p1: case1: case2: loop: i: 3
+p1: case1: case2: loop: i is odd
+p1: case1: case2: loop: i: 2
+p1: case1: case2: loop: i is even
+p1: case1: case2: loop: i: 1
+p1: case1: case2: loop: i is odd
+p1: case1: case3: on 20
+p1: case4: case5: loop: i: 10
+p1: case4: case5: loop: i is even
+p1: case4: case5: loop: i: 9
+p1: case4: case5: loop: i is odd
+p1: case4: case5: loop: i: 8
+p1: case4: case5: loop: i is even
+p1: case4: case5: loop: i: 7
+p1: case4: case5: loop: i is odd
+p1: case4: case5: loop: i: 6
+p1: case4: case5: loop: i is even
+p1: case4: case5: loop: i: 5
+p1: case4: case5: loop: i is odd
+p1: case4: case5: loop: i: 4
+p1: case4: case5: loop: i is even
+p1: case4: case5: loop: i: 3
+p1: case4: case5: loop: i is odd
+p1: case4: case5: loop: i: 2
+p1: case4: case5: loop: i is even
+p1: case4: case5: loop: i: 1
+p1: case4: case5: loop: i is odd
+p1: case4: case6: on 20
+p2: case: string type
+p2: case: numerical type
+p2: case: string type
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP TABLE t1;
+
+---------------------------------------------------------------
+BUG#14161
+---------------------------------------------------------------
+
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+CREATE TABLE t1(col BIGINT UNSIGNED);
+INSERT INTO t1 VALUE(18446744073709551614);
+CREATE PROCEDURE p1(IN arg BIGINT UNSIGNED)
+BEGIN
+SELECT arg;
+SELECT * FROM t1;
+SELECT * FROM t1 WHERE col = arg;
+END|
+CALL p1(18446744073709551614);
+arg
+18446744073709551614
+col
+18446744073709551614
+col
+18446744073709551614
+DROP TABLE t1;
+DROP PROCEDURE p1;
+
+---------------------------------------------------------------
+BUG#13705
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+CREATE PROCEDURE p1(x VARCHAR(10), y CHAR(3)) READS SQL DATA
+BEGIN
+SELECT x, y;
+END|
+CALL p1('alpha', 'abc');
+x y
+alpha abc
+CALL p1('alpha', 'abcdef');
+x y
+alpha abc
+Warnings:
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE p1;
+
+---------------------------------------------------------------
+BUG#13675
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+CREATE PROCEDURE p1(x DATETIME)
+BEGIN
+CREATE TABLE t1 SELECT x;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+END|
+CALL p1(NOW());
+Table Create Table
+t1 CREATE TABLE "t1" (
+ "x" datetime default NULL
+)
+CALL p1('test');
+Table Create Table
+t1 CREATE TABLE "t1" (
+ "x" datetime default NULL
+)
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE p1;
+
+---------------------------------------------------------------
+BUG#12976
+---------------------------------------------------------------
+
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+CREATE TABLE t1(b BIT(1));
+INSERT INTO t1(b) VALUES(b'0'), (b'1');
+CREATE PROCEDURE p1()
+BEGIN
+SELECT HEX(b),
+b = 0,
+b = FALSE,
+b IS FALSE,
+b = 1,
+b = TRUE,
+b IS TRUE
+FROM t1;
+END|
+CREATE PROCEDURE p2()
+BEGIN
+DECLARE vb BIT(1);
+SELECT b INTO vb FROM t1 WHERE b = 0;
+SELECT HEX(vb),
+vb = 0,
+vb = FALSE,
+vb IS FALSE,
+vb = 1,
+vb = TRUE,
+vb IS TRUE;
+SELECT b INTO vb FROM t1 WHERE b = 1;
+SELECT HEX(vb),
+vb = 0,
+vb = FALSE,
+vb IS FALSE,
+vb = 1,
+vb = TRUE,
+vb IS TRUE;
+END|
+call p1();
+HEX(b) b = 0 b = FALSE b IS FALSE b = 1 b = TRUE b IS TRUE
+
+0 1 1 1 0 0 0
+1 0 0 0 1 1 1
+call p2();
+HEX(vb) vb = 0 vb = FALSE vb IS FALSE vb = 1 vb = TRUE vb IS TRUE
+0 1 1 1 0 0 0
+HEX(vb) vb = 0 vb = FALSE vb IS FALSE vb = 1 vb = TRUE vb IS TRUE
+1 0 0 0 1 1 1
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP TABLE IF EXISTS table_12976_a;
+DROP TABLE IF EXISTS table_12976_b;
+DROP PROCEDURE IF EXISTS proc_12976_a;
+DROP PROCEDURE IF EXISTS proc_12976_b;
+CREATE TABLE table_12976_a (val bit(1));
+CREATE TABLE table_12976_b(
+appname varchar(15),
+emailperm bit not null default 1,
+phoneperm bit not null default 0);
+insert into table_12976_b values ('A', b'1', b'1'), ('B', b'0', b'0');
+CREATE PROCEDURE proc_12976_a()
+BEGIN
+declare localvar bit(1);
+SELECT val INTO localvar FROM table_12976_a;
+SELECT coalesce(localvar, 1)+1, coalesce(val, 1)+1 FROM table_12976_a;
+END||
+CREATE PROCEDURE proc_12976_b(
+name varchar(15),
+out ep bit,
+out msg varchar(10))
+BEGIN
+SELECT emailperm into ep FROM table_12976_b where (appname = name);
+IF ep is true THEN
+SET msg = 'True';
+ELSE
+SET msg = 'False';
+END IF;
+END||
+INSERT table_12976_a VALUES (0);
+call proc_12976_a();
+coalesce(localvar, 1)+1 coalesce(val, 1)+1
+1 1
+UPDATE table_12976_a set val=1;
+call proc_12976_a();
+coalesce(localvar, 1)+1 coalesce(val, 1)+1
+2 2
+call proc_12976_b('A', @ep, @msg);
+select @ep, @msg;
+@ep @msg
+1 True
+call proc_12976_b('B', @ep, @msg);
+select @ep, @msg;
+@ep @msg
+0 False
+DROP TABLE table_12976_a;
+DROP TABLE table_12976_b;
+DROP PROCEDURE proc_12976_a;
+DROP PROCEDURE proc_12976_b;
+
+---------------------------------------------------------------
+BUG#9572
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+DROP PROCEDURE IF EXISTS p4;
+DROP PROCEDURE IF EXISTS p5;
+DROP PROCEDURE IF EXISTS p6;
+SET @@sql_mode = 'traditional';
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE v TINYINT DEFAULT 1e200;
+SELECT v;
+END|
+CREATE PROCEDURE p2()
+BEGIN
+DECLARE v DECIMAL(5) DEFAULT 1e200;
+SELECT v;
+END|
+CREATE PROCEDURE p3()
+BEGIN
+DECLARE v CHAR(5) DEFAULT 'abcdef';
+SELECT v LIKE 'abc___';
+END|
+CREATE PROCEDURE p4(arg VARCHAR(2))
+BEGIN
+DECLARE var VARCHAR(1);
+SET var := arg;
+SELECT arg, var;
+END|
+CREATE PROCEDURE p5(arg CHAR(2))
+BEGIN
+DECLARE var CHAR(1);
+SET var := arg;
+SELECT arg, var;
+END|
+CREATE PROCEDURE p6(arg DECIMAL(2))
+BEGIN
+DECLARE var DECIMAL(1);
+SET var := arg;
+SELECT arg, var;
+END|
+CALL p1();
+ERROR 22003: Out of range value adjusted for column 'v' at row 1
+CALL p2();
+ERROR 22003: Out of range value adjusted for column 'v' at row 1
+CALL p3();
+ERROR 22001: Data too long for column 'v' at row 1
+CALL p4('aaa');
+ERROR 22001: Data too long for column 'arg' at row 1
+CALL p5('aa');
+ERROR 22001: Data too long for column 'var' at row 1
+CALL p6(10);
+ERROR 22003: Out of range value adjusted for column 'var' at row 1
+SET @@sql_mode = 'ansi';
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+DROP PROCEDURE p4;
+DROP PROCEDURE p5;
+DROP PROCEDURE p6;
+
+---------------------------------------------------------------
+BUG#9078
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+CREATE PROCEDURE p1 (arg DECIMAL(64,2))
+BEGIN
+DECLARE var DECIMAL(64,2);
+SET var = arg;
+SELECT var;
+END|
+CALL p1(1929);
+var
+1929.00
+CALL p1(1929.00);
+var
+1929.00
+CALL p1(1929.003);
+var
+1929.00
+Warnings:
+Note 1265 Data truncated for column 'arg' at row 1
+DROP PROCEDURE p1;
+
+---------------------------------------------------------------
+BUG#8768
+---------------------------------------------------------------
+
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1(arg TINYINT UNSIGNED) RETURNS TINYINT
+BEGIN
+RETURN arg;
+END|
+SELECT f1(-2500);
+f1(-2500)
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'arg' at row 1
+SET @@sql_mode = 'traditional';
+SELECT f1(-2500);
+ERROR 22003: Out of range value adjusted for column 'arg' at row 1
+DROP FUNCTION f1;
+CREATE FUNCTION f1(arg TINYINT UNSIGNED) RETURNS TINYINT
+BEGIN
+RETURN arg;
+END|
+SELECT f1(-2500);
+ERROR 22003: Out of range value adjusted for column 'arg' at row 1
+SET @@sql_mode = 'ansi';
+DROP FUNCTION f1;
+
+---------------------------------------------------------------
+BUG#8769
+---------------------------------------------------------------
+
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1(arg MEDIUMINT) RETURNS MEDIUMINT
+BEGIN
+RETURN arg;
+END|
+SELECT f1(8388699);
+f1(8388699)
+8388607
+Warnings:
+Warning 1264 Out of range value adjusted for column 'arg' at row 1
+SET @@sql_mode = 'traditional';
+SELECT f1(8388699);
+ERROR 22003: Out of range value adjusted for column 'arg' at row 1
+DROP FUNCTION f1;
+CREATE FUNCTION f1(arg MEDIUMINT) RETURNS MEDIUMINT
+BEGIN
+RETURN arg;
+END|
+SELECT f1(8388699);
+ERROR 22003: Out of range value adjusted for column 'arg' at row 1
+SET @@sql_mode = 'ansi';
+DROP FUNCTION f1;
+
+---------------------------------------------------------------
+BUG#8702
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(col VARCHAR(255));
+INSERT INTO t1(col) VALUES('Hello, world!');
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE sp_var INTEGER;
+SELECT col INTO sp_var FROM t1 LIMIT 1;
+SET @user_var = sp_var;
+SELECT sp_var;
+SELECT @user_var;
+END|
+CALL p1();
+sp_var
+0
+@user_var
+0
+Warnings:
+Warning 1366 Incorrect integer value: 'Hello, world!' for column 'sp_var' at row 1
+DROP PROCEDURE p1;
+DROP TABLE t1;
+
+---------------------------------------------------------------
+BUG#12903
+---------------------------------------------------------------
+
+DROP FUNCTION IF EXISTS f1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(txt VARCHAR(255));
+CREATE FUNCTION f1(arg VARCHAR(255)) RETURNS VARCHAR(255)
+BEGIN
+DECLARE v1 VARCHAR(255);
+DECLARE v2 VARCHAR(255);
+SET v1 = CONCAT(LOWER(arg), UPPER(arg));
+SET v2 = CONCAT(LOWER(v1), UPPER(v1));
+INSERT INTO t1 VALUES(v1), (v2);
+RETURN CONCAT(LOWER(arg), UPPER(arg));
+END|
+SELECT f1('_aBcDe_');
+f1('_aBcDe_')
+_abcde__ABCDE_
+SELECT * FROM t1;
+txt
+_abcde__ABCDE_
+_abcde__abcde__ABCDE__ABCDE_
+DROP FUNCTION f1;
+DROP TABLE t1;
+
+---------------------------------------------------------------
+BUG#13808
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP FUNCTION IF EXISTS f1;
+CREATE PROCEDURE p1(arg ENUM('a', 'b'))
+BEGIN
+SELECT arg;
+END|
+CREATE PROCEDURE p2(arg ENUM('a', 'b'))
+BEGIN
+DECLARE var ENUM('c', 'd') DEFAULT arg;
+SELECT arg, var;
+END|
+CREATE FUNCTION f1(arg ENUM('a', 'b')) RETURNS ENUM('c', 'd')
+BEGIN
+RETURN arg;
+END|
+CALL p1('c');
+arg
+
+Warnings:
+Warning 1265 Data truncated for column 'arg' at row 1
+CALL p2('a');
+arg var
+a
+Warnings:
+Warning 1265 Data truncated for column 'var' at row 1
+SELECT f1('a');
+f1('a')
+
+Warnings:
+Warning 1265 Data truncated for column 'f1('a')' at row 1
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP FUNCTION f1;
+
+---------------------------------------------------------------
+BUG#13909
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+CREATE PROCEDURE p1(arg VARCHAR(255))
+BEGIN
+SELECT CHARSET(arg);
+END|
+CREATE PROCEDURE p2(arg VARCHAR(255) CHARACTER SET UTF8)
+BEGIN
+SELECT CHARSET(arg);
+END|
+CALL p1('t');
+CHARSET(arg)
+latin1
+CALL p1(_UTF8 't');
+CHARSET(arg)
+latin1
+CALL p2('t');
+CHARSET(arg)
+utf8
+CALL p2(_LATIN1 't');
+CHARSET(arg)
+utf8
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+
+---------------------------------------------------------------
+BUG#14188
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+CREATE PROCEDURE p1(arg1 BINARY(2), arg2 VARBINARY(2))
+BEGIN
+DECLARE var1 BINARY(2) DEFAULT 0x41;
+DECLARE var2 VARBINARY(2) DEFAULT 0x42;
+SELECT HEX(arg1), HEX(arg2);
+SELECT HEX(var1), HEX(var2);
+END|
+CALL p1(0x41, 0x42);
+HEX(arg1) HEX(arg2)
+4100 42
+HEX(var1) HEX(var2)
+4100 42
+DROP PROCEDURE p1;
+
+---------------------------------------------------------------
+BUG#15148
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(col1 TINYINT, col2 TINYINT);
+INSERT INTO t1 VALUES(1, 2), (11, 12);
+CREATE PROCEDURE p1(arg TINYINT)
+BEGIN
+SELECT arg;
+END|
+CALL p1((1, 2));
+ERROR 21000: Operand should contain 1 column(s)
+CALL p1((SELECT * FROM t1 LIMIT 1));
+ERROR 21000: Operand should contain 1 column(s)
+CALL p1((SELECT col1, col2 FROM t1 LIMIT 1));
+ERROR 21000: Operand should contain 1 column(s)
+DROP PROCEDURE p1;
+DROP TABLE t1;
+
+---------------------------------------------------------------
+BUG#13613
+---------------------------------------------------------------
+
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+CREATE PROCEDURE p1(x VARCHAR(50))
+BEGIN
+SET x = SUBSTRING(x, 1, 3);
+SELECT x;
+END|
+CREATE FUNCTION f1(x VARCHAR(50)) RETURNS VARCHAR(50)
+BEGIN
+RETURN SUBSTRING(x, 1, 3);
+END|
+CALL p1('abcdef');
+x
+abc
+SELECT f1('ABCDEF');
+f1('ABCDEF')
+ABC
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+
+---------------------------------------------------------------
+BUG#13665
+---------------------------------------------------------------
+
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1() RETURNS VARCHAR(20000)
+BEGIN
+DECLARE var VARCHAR(2000);
+SET var = '';
+SET var = CONCAT(var, 'abc');
+SET var = CONCAT(var, '');
+RETURN var;
+END|
+SELECT f1();
+f1()
+abc
+DROP FUNCTION f1;
+DROP PROCEDURE IF EXISTS p1;
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE v_char VARCHAR(255);
+DECLARE v_text TEXT DEFAULT '';
+SET v_char = 'abc';
+SET v_text = v_char;
+SET v_char = 'def';
+SET v_text = concat(v_text, '|', v_char);
+SELECT v_text;
+END|
+CALL p1();
+v_text
+abc|def
+DROP PROCEDURE p1;
+DROP PROCEDURE IF EXISTS bug27415_text_test|
+DROP PROCEDURE IF EXISTS bug27415_text_test2|
+CREATE PROCEDURE bug27415_text_test(entity_id_str_in text)
+BEGIN
+DECLARE str_remainder text;
+SET str_remainder = entity_id_str_in;
+select 'before substr', str_remainder;
+SET str_remainder = SUBSTRING(str_remainder, 3);
+select 'after substr', str_remainder;
+END|
+CREATE PROCEDURE bug27415_text_test2(entity_id_str_in text)
+BEGIN
+DECLARE str_remainder text;
+DECLARE str_remainder2 text;
+SET str_remainder2 = entity_id_str_in;
+select 'before substr', str_remainder2;
+SET str_remainder = SUBSTRING(str_remainder2, 3);
+select 'after substr', str_remainder;
+END|
+CALL bug27415_text_test('a,b,c')|
+before substr str_remainder
+before substr a,b,c
+after substr str_remainder
+after substr b,c
+CALL bug27415_text_test('a,b,c')|
+before substr str_remainder
+before substr a,b,c
+after substr str_remainder
+after substr b,c
+CALL bug27415_text_test2('a,b,c')|
+before substr str_remainder2
+before substr a,b,c
+after substr str_remainder
+after substr b,c
+CALL bug27415_text_test('a,b,c')|
+before substr str_remainder
+before substr a,b,c
+after substr str_remainder
+after substr b,c
+DROP PROCEDURE bug27415_text_test|
+DROP PROCEDURE bug27415_text_test2|
diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result
new file mode 100644
index 00000000000..061bbafd9a1
--- /dev/null
+++ b/mysql-test/r/sp.result
@@ -0,0 +1,6583 @@
+use test;
+drop table if exists t1,t2,t3,t4;
+drop view if exists v1;
+drop procedure if exists p1;
+drop procedure if exists p2;
+drop function if exists f1;
+drop function if exists f2;
+create table t1 (
+id char(16) not null default '',
+data int not null
+);
+create table t2 (
+s char(16),
+i int,
+d double
+);
+drop procedure if exists foo42;
+create procedure foo42()
+insert into test.t1 values ("foo", 42);
+call foo42();
+select * from t1;
+id data
+foo 42
+delete from t1;
+drop procedure foo42;
+drop procedure if exists bar;
+create procedure bar(x char(16), y int)
+insert into test.t1 values (x, y);
+call bar("bar", 666);
+select * from t1;
+id data
+bar 666
+delete from t1;
+drop procedure if exists empty|
+create procedure empty()
+begin
+end|
+call empty()|
+drop procedure empty|
+drop procedure if exists scope|
+create procedure scope(a int, b float)
+begin
+declare b int;
+declare c float;
+begin
+declare c int;
+end;
+end|
+drop procedure scope|
+drop procedure if exists two|
+create procedure two(x1 char(16), x2 char(16), y int)
+begin
+insert into test.t1 values (x1, y);
+insert into test.t1 values (x2, y);
+end|
+call two("one", "two", 3)|
+select * from t1|
+id data
+one 3
+two 3
+delete from t1|
+drop procedure two|
+drop procedure if exists locset|
+create procedure locset(x char(16), y int)
+begin
+declare z1, z2 int;
+set z1 = y;
+set z2 = z1+2;
+insert into test.t1 values (x, z2);
+end|
+call locset("locset", 19)|
+select * from t1|
+id data
+locset 21
+delete from t1|
+drop procedure locset|
+drop procedure if exists setcontext|
+create procedure setcontext()
+begin
+declare data int default 2;
+insert into t1 (id, data) values ("foo", 1);
+replace t1 set data = data, id = "bar";
+update t1 set id = "kaka", data = 3 where t1.data = data;
+end|
+call setcontext()|
+select * from t1|
+id data
+foo 1
+kaka 3
+delete from t1|
+drop procedure setcontext|
+create table t3 ( d date, i int, f double, s varchar(32) )|
+drop procedure if exists nullset|
+create procedure nullset()
+begin
+declare ld date;
+declare li int;
+declare lf double;
+declare ls varchar(32);
+set ld = null, li = null, lf = null, ls = null;
+insert into t3 values (ld, li, lf, ls);
+insert into t3 (i, f, s) values ((ld is null), 1, "ld is null"),
+((li is null), 1, "li is null"),
+((li = 0), null, "li = 0"),
+((lf is null), 1, "lf is null"),
+((lf = 0), null, "lf = 0"),
+((ls is null), 1, "ls is null");
+end|
+call nullset()|
+select * from t3|
+d i f s
+NULL NULL NULL NULL
+NULL 1 1 ld is null
+NULL 1 1 li is null
+NULL NULL NULL li = 0
+NULL 1 1 lf is null
+NULL NULL NULL lf = 0
+NULL 1 1 ls is null
+drop table t3|
+drop procedure nullset|
+drop procedure if exists mixset|
+create procedure mixset(x char(16), y int)
+begin
+declare z int;
+set @z = y, z = 666, max_join_size = 100;
+insert into test.t1 values (x, z);
+end|
+call mixset("mixset", 19)|
+show variables like 'max_join_size'|
+Variable_name Value
+max_join_size 100
+select id,data,@z from t1|
+id data @z
+mixset 666 19
+delete from t1|
+drop procedure mixset|
+drop procedure if exists zip|
+create procedure zip(x char(16), y int)
+begin
+declare z int;
+call zap(y, z);
+call bar(x, z);
+end|
+drop procedure if exists zap|
+create procedure zap(x int, out y int)
+begin
+declare z int;
+set z = x+1, y = z;
+end|
+call zip("zip", 99)|
+select * from t1|
+id data
+zip 100
+delete from t1|
+drop procedure zip|
+drop procedure bar|
+call zap(7, @zap)|
+select @zap|
+@zap
+8
+drop procedure zap|
+drop procedure if exists c1|
+create procedure c1(x int)
+call c2("c", x)|
+drop procedure if exists c2|
+create procedure c2(s char(16), x int)
+call c3(x, s)|
+drop procedure if exists c3|
+create procedure c3(x int, s char(16))
+call c4("level", x, s)|
+drop procedure if exists c4|
+create procedure c4(l char(8), x int, s char(16))
+insert into t1 values (concat(l,s), x)|
+call c1(42)|
+select * from t1|
+id data
+levelc 42
+delete from t1|
+drop procedure c1|
+drop procedure c2|
+drop procedure c3|
+drop procedure c4|
+drop procedure if exists iotest|
+create procedure iotest(x1 char(16), x2 char(16), y int)
+begin
+call inc2(x2, y);
+insert into test.t1 values (x1, y);
+end|
+drop procedure if exists inc2|
+create procedure inc2(x char(16), y int)
+begin
+call inc(y);
+insert into test.t1 values (x, y);
+end|
+drop procedure if exists inc|
+create procedure inc(inout io int)
+set io = io + 1|
+call iotest("io1", "io2", 1)|
+select * from t1|
+id data
+io2 2
+io1 1
+delete from t1|
+drop procedure iotest|
+drop procedure inc2|
+drop procedure if exists incr|
+create procedure incr(inout x int)
+call inc(x)|
+select @zap|
+@zap
+8
+call incr(@zap)|
+select @zap|
+@zap
+9
+drop procedure inc|
+drop procedure incr|
+drop procedure if exists cbv1|
+create procedure cbv1()
+begin
+declare y int default 3;
+call cbv2(y+1, y);
+insert into test.t1 values ("cbv1", y);
+end|
+drop procedure if exists cbv2|
+create procedure cbv2(y1 int, inout y2 int)
+begin
+set y2 = 4711;
+insert into test.t1 values ("cbv2", y1);
+end|
+call cbv1()|
+select * from t1|
+id data
+cbv2 4
+cbv1 4711
+delete from t1|
+drop procedure cbv1|
+drop procedure cbv2|
+insert into t2 values ("a", 1, 1.1), ("b", 2, 1.2), ("c", 3, 1.3)|
+drop procedure if exists sub1|
+create procedure sub1(id char(16), x int)
+insert into test.t1 values (id, x)|
+drop procedure if exists sub2|
+create procedure sub2(id char(16))
+begin
+declare x int;
+set x = (select sum(t.i) from test.t2 t);
+insert into test.t1 values (id, x);
+end|
+drop procedure if exists sub3|
+create function sub3(i int) returns int
+return i+1|
+call sub1("sub1a", (select 7))|
+call sub1("sub1b", (select max(i) from t2))|
+call sub1("sub1c", (select i,d from t2 limit 1))|
+ERROR 21000: Operand should contain 1 column(s)
+call sub1("sub1d", (select 1 from (select 1) a))|
+call sub2("sub2")|
+select * from t1|
+id data
+sub1a 7
+sub1b 3
+sub1d 1
+sub2 6
+select sub3((select max(i) from t2))|
+sub3((select max(i) from t2))
+4
+drop procedure sub1|
+drop procedure sub2|
+drop function sub3|
+delete from t1|
+delete from t2|
+drop procedure if exists a0|
+create procedure a0(x int)
+while x do
+set x = x-1;
+insert into test.t1 values ("a0", x);
+end while|
+call a0(3)|
+select * from t1|
+id data
+a0 2
+a0 1
+a0 0
+delete from t1|
+drop procedure a0|
+drop procedure if exists a|
+create procedure a(x int)
+while x > 0 do
+set x = x-1;
+insert into test.t1 values ("a", x);
+end while|
+call a(3)|
+select * from t1|
+id data
+a 2
+a 1
+a 0
+delete from t1|
+drop procedure a|
+drop procedure if exists b|
+create procedure b(x int)
+repeat
+insert into test.t1 values (repeat("b",3), x);
+set x = x-1;
+until x = 0 end repeat|
+call b(3)|
+select * from t1|
+id data
+bbb 3
+bbb 2
+bbb 1
+delete from t1|
+drop procedure b|
+drop procedure if exists b2|
+create procedure b2(x int)
+repeat(select 1 into outfile 'b2');
+insert into test.t1 values (repeat("b2",3), x);
+set x = x-1;
+until x = 0 end repeat|
+drop procedure b2|
+drop procedure if exists c|
+create procedure c(x int)
+hmm: while x > 0 do
+insert into test.t1 values ("c", x);
+set x = x-1;
+iterate hmm;
+insert into test.t1 values ("x", x);
+end while hmm|
+call c(3)|
+select * from t1|
+id data
+c 3
+c 2
+c 1
+delete from t1|
+drop procedure c|
+drop procedure if exists d|
+create procedure d(x int)
+hmm: while x > 0 do
+insert into test.t1 values ("d", x);
+set x = x-1;
+leave hmm;
+insert into test.t1 values ("x", x);
+end while|
+call d(3)|
+select * from t1|
+id data
+d 3
+delete from t1|
+drop procedure d|
+drop procedure if exists e|
+create procedure e(x int)
+foo: loop
+if x = 0 then
+leave foo;
+end if;
+insert into test.t1 values ("e", x);
+set x = x-1;
+end loop foo|
+call e(3)|
+select * from t1|
+id data
+e 3
+e 2
+e 1
+delete from t1|
+drop procedure e|
+drop procedure if exists f|
+create procedure f(x int)
+if x < 0 then
+insert into test.t1 values ("f", 0);
+elseif x = 0 then
+insert into test.t1 values ("f", 1);
+else
+insert into test.t1 values ("f", 2);
+end if|
+call f(-2)|
+call f(0)|
+call f(4)|
+select * from t1|
+id data
+f 0
+f 1
+f 2
+delete from t1|
+drop procedure f|
+drop procedure if exists g|
+create procedure g(x int)
+case
+when x < 0 then
+insert into test.t1 values ("g", 0);
+when x = 0 then
+insert into test.t1 values ("g", 1);
+else
+insert into test.t1 values ("g", 2);
+end case|
+call g(-42)|
+call g(0)|
+call g(1)|
+select * from t1|
+id data
+g 0
+g 1
+g 2
+delete from t1|
+drop procedure g|
+drop procedure if exists h|
+create procedure h(x int)
+case x
+when 0 then
+insert into test.t1 values ("h0", x);
+when 1 then
+insert into test.t1 values ("h1", x);
+else
+insert into test.t1 values ("h?", x);
+end case|
+call h(0)|
+call h(1)|
+call h(17)|
+select * from t1|
+id data
+h0 0
+h1 1
+h? 17
+delete from t1|
+drop procedure h|
+drop procedure if exists i|
+create procedure i(x int)
+foo:
+begin
+if x = 0 then
+leave foo;
+end if;
+insert into test.t1 values ("i", x);
+end foo|
+call i(0)|
+call i(3)|
+select * from t1|
+id data
+i 3
+delete from t1|
+drop procedure i|
+insert into t1 values ("foo", 3), ("bar", 19)|
+insert into t2 values ("x", 9, 4.1), ("y", -1, 19.2), ("z", 3, 2.2)|
+drop procedure if exists sel1|
+create procedure sel1()
+begin
+select * from t1;
+end|
+call sel1()|
+id data
+foo 3
+bar 19
+drop procedure sel1|
+drop procedure if exists sel2|
+create procedure sel2()
+begin
+select * from t1;
+select * from t2;
+end|
+call sel2()|
+id data
+foo 3
+bar 19
+s i d
+x 9 4.1
+y -1 19.2
+z 3 2.2
+drop procedure sel2|
+delete from t1|
+delete from t2|
+drop procedure if exists into_test|
+create procedure into_test(x char(16), y int)
+begin
+insert into test.t1 values (x, y);
+select id,data into x,y from test.t1 limit 1;
+insert into test.t1 values (concat(x, "2"), y+2);
+end|
+call into_test("into", 100)|
+select * from t1|
+id data
+into 100
+into2 102
+delete from t1|
+drop procedure into_test|
+drop procedure if exists into_tes2|
+create procedure into_test2(x char(16), y int)
+begin
+insert into test.t1 values (x, y);
+select id,data into x,@z from test.t1 limit 1;
+insert into test.t1 values (concat(x, "2"), y+2);
+end|
+call into_test2("into", 100)|
+select id,data,@z from t1|
+id data @z
+into 100 100
+into2 102 100
+delete from t1|
+drop procedure into_test2|
+drop procedure if exists into_test3|
+create procedure into_test3()
+begin
+declare x char(16);
+declare y int;
+select * into x,y from test.t1 limit 1;
+insert into test.t2 values (x, y, 0.0);
+end|
+insert into t1 values ("into3", 19)|
+call into_test3()|
+call into_test3()|
+select * from t2|
+s i d
+into3 19 0
+into3 19 0
+delete from t1|
+delete from t2|
+drop procedure into_test3|
+drop procedure if exists into_test4|
+create procedure into_test4()
+begin
+declare x int;
+select data into x from test.t1 limit 1;
+insert into test.t3 values ("into4", x);
+end|
+delete from t1|
+create table t3 ( s char(16), d int)|
+call into_test4()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select * from t3|
+s d
+into4 NULL
+insert into t1 values ("i4", 77)|
+call into_test4()|
+select * from t3|
+s d
+into4 NULL
+into4 77
+delete from t1|
+drop table t3|
+drop procedure into_test4|
+drop procedure if exists into_outfile|
+create procedure into_outfile(x char(16), y int)
+begin
+insert into test.t1 values (x, y);
+select * into outfile "../tmp/spout" from test.t1;
+insert into test.t1 values (concat(x, "2"), y+2);
+end|
+call into_outfile("ofile", 1)|
+delete from t1|
+drop procedure into_outfile|
+drop procedure if exists into_dumpfile|
+create procedure into_dumpfile(x char(16), y int)
+begin
+insert into test.t1 values (x, y);
+select * into dumpfile "../tmp/spdump" from test.t1 limit 1;
+insert into test.t1 values (concat(x, "2"), y+2);
+end|
+call into_dumpfile("dfile", 1)|
+delete from t1|
+drop procedure into_dumpfile|
+drop procedure if exists create_select|
+create procedure create_select(x char(16), y int)
+begin
+insert into test.t1 values (x, y);
+create temporary table test.t3 select * from test.t1;
+insert into test.t3 values (concat(x, "2"), y+2);
+end|
+call create_select("cs", 90)|
+select * from t1, t3|
+id data id data
+cs 90 cs 90
+cs 90 cs2 92
+drop table t3|
+delete from t1|
+drop procedure create_select|
+drop function if exists e|
+create function e() returns double
+return 2.7182818284590452354|
+set @e = e()|
+select e(), @e|
+e() @e
+2.718281828459 2.718281828459
+drop function if exists inc|
+create function inc(i int) returns int
+return i+1|
+select inc(1), inc(99), inc(-71)|
+inc(1) inc(99) inc(-71)
+2 100 -70
+drop function if exists mul|
+create function mul(x int, y int) returns int
+return x*y|
+select mul(1,1), mul(3,5), mul(4711, 666)|
+mul(1,1) mul(3,5) mul(4711, 666)
+1 15 3137526
+drop function if exists append|
+create function append(s1 char(8), s2 char(8)) returns char(16)
+return concat(s1, s2)|
+select append("foo", "bar")|
+append("foo", "bar")
+foobar
+drop function if exists fac|
+create function fac(n int unsigned) returns bigint unsigned
+begin
+declare f bigint unsigned default 1;
+while n > 1 do
+set f = f * n;
+set n = n - 1;
+end while;
+return f;
+end|
+select fac(1), fac(2), fac(5), fac(10)|
+fac(1) fac(2) fac(5) fac(10)
+1 2 120 3628800
+drop function if exists fun|
+create function fun(d double, i int, u int unsigned) returns double
+return mul(inc(i), fac(u)) / e()|
+select fun(2.3, 3, 5)|
+fun(2.3, 3, 5)
+176.58213176229
+insert into t2 values (append("xxx", "yyy"), mul(4,3), e())|
+insert into t2 values (append("a", "b"), mul(2,mul(3,4)), fun(1.7, 4, 6))|
+select * from t2 where s = append("a", "b")|
+s i d
+ab 24 1324.36598821719
+select * from t2 where i = mul(4,3) or i = mul(mul(3,4),2)|
+s i d
+xxxyyy 12 2.71828182845905
+ab 24 1324.36598821719
+select * from t2 where d = e()|
+s i d
+xxxyyy 12 2.71828182845905
+select * from t2|
+s i d
+xxxyyy 12 2.71828182845905
+ab 24 1324.36598821719
+delete from t2|
+drop function e|
+drop function inc|
+drop function mul|
+drop function append|
+drop function fun|
+drop procedure if exists hndlr1|
+create procedure hndlr1(val int)
+begin
+declare x int default 0;
+declare foo condition for 1136;
+declare bar condition for sqlstate '42S98'; # Just for testing syntax
+declare zip condition for sqlstate value '42S99'; # Just for testing syntax
+declare continue handler for foo set x = 1;
+insert into test.t1 values ("hndlr1", val, 2); # Too many values
+if (x) then
+insert into test.t1 values ("hndlr1", val); # This instead then
+end if;
+end|
+call hndlr1(42)|
+select * from t1|
+id data
+hndlr1 42
+delete from t1|
+drop procedure hndlr1|
+drop procedure if exists hndlr2|
+create procedure hndlr2(val int)
+begin
+declare x int default 0;
+begin
+declare exit handler for sqlstate '21S01' set x = 1;
+insert into test.t1 values ("hndlr2", val, 2); # Too many values
+end;
+insert into test.t1 values ("hndlr2", x);
+end|
+call hndlr2(42)|
+select * from t1|
+id data
+hndlr2 1
+delete from t1|
+drop procedure hndlr2|
+drop procedure if exists hndlr3|
+create procedure hndlr3(val int)
+begin
+declare x int default 0;
+declare continue handler for sqlexception # Any error
+begin
+declare z int;
+set z = 2 * val;
+set x = 1;
+end;
+if val < 10 then
+begin
+declare y int;
+set y = val + 10;
+insert into test.t1 values ("hndlr3", y, 2); # Too many values
+if x then
+insert into test.t1 values ("hndlr3", y);
+end if;
+end;
+end if;
+end|
+call hndlr3(3)|
+select * from t1|
+id data
+hndlr3 13
+delete from t1|
+drop procedure hndlr3|
+create table t3 ( id char(16), data int )|
+drop procedure if exists hndlr4|
+create procedure hndlr4()
+begin
+declare x int default 0;
+declare val int; # No default
+declare continue handler for sqlstate '02000' set x=1;
+select data into val from test.t3 where id='z' limit 1; # No hits
+insert into test.t3 values ('z', val);
+end|
+call hndlr4()|
+select * from t3|
+id data
+z NULL
+drop table t3|
+drop procedure hndlr4|
+drop procedure if exists cur1|
+create procedure cur1()
+begin
+declare a char(16);
+declare b int;
+declare c double;
+declare done int default 0;
+declare c cursor for select * from test.t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open c;
+repeat
+fetch c into a, b, c;
+if not done then
+insert into test.t1 values (a, b+c);
+end if;
+until done end repeat;
+close c;
+end|
+insert into t2 values ("foo", 42, -1.9), ("bar", 3, 12.1), ("zap", 666, -3.14)|
+call cur1()|
+select * from t1|
+id data
+foo 40
+bar 15
+zap 663
+drop procedure cur1|
+create table t3 ( s char(16), i int )|
+drop procedure if exists cur2|
+create procedure cur2()
+begin
+declare done int default 0;
+declare c1 cursor for select id,data from test.t1;
+declare c2 cursor for select i from test.t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open c1;
+open c2;
+repeat
+begin
+declare a char(16);
+declare b,c int;
+fetch from c1 into a, b;
+fetch next from c2 into c;
+if not done then
+if b < c then
+insert into test.t3 values (a, b);
+else
+insert into test.t3 values (a, c);
+end if;
+end if;
+end;
+until done end repeat;
+close c1;
+close c2;
+end|
+call cur2()|
+select * from t3|
+s i
+foo 40
+bar 3
+zap 663
+delete from t1|
+delete from t2|
+drop table t3|
+drop procedure cur2|
+drop procedure if exists chistics|
+create procedure chistics()
+language sql
+modifies sql data
+not deterministic
+sql security definer
+comment 'Characteristics procedure test'
+ insert into t1 values ("chistics", 1)|
+show create procedure chistics|
+Procedure sql_mode Create Procedure
+chistics CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`()
+ MODIFIES SQL DATA
+ COMMENT 'Characteristics procedure test'
+insert into t1 values ("chistics", 1)
+call chistics()|
+select * from t1|
+id data
+chistics 1
+delete from t1|
+alter procedure chistics sql security invoker|
+show create procedure chistics|
+Procedure sql_mode Create Procedure
+chistics CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`()
+ MODIFIES SQL DATA
+ SQL SECURITY INVOKER
+ COMMENT 'Characteristics procedure test'
+insert into t1 values ("chistics", 1)
+drop procedure chistics|
+drop function if exists chistics|
+create function chistics() returns int
+language sql
+deterministic
+sql security invoker
+comment 'Characteristics procedure test'
+ return 42|
+show create function chistics|
+Function sql_mode Create Function
+chistics CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11)
+ DETERMINISTIC
+ SQL SECURITY INVOKER
+ COMMENT 'Characteristics procedure test'
+return 42
+select chistics()|
+chistics()
+42
+alter function chistics
+no sql
+comment 'Characteristics function test'|
+show create function chistics|
+Function sql_mode Create Function
+chistics CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11)
+ NO SQL
+ DETERMINISTIC
+ SQL SECURITY INVOKER
+ COMMENT 'Characteristics function test'
+return 42
+drop function chistics|
+insert into t1 values ("foo", 1), ("bar", 2), ("zip", 3)|
+set @@sql_mode = 'ANSI'|
+drop procedure if exists modes$
+create procedure modes(out c1 int, out c2 int)
+begin
+declare done int default 0;
+declare x int;
+declare c cursor for select data from t1;
+declare continue handler for sqlstate '02000' set done = 1;
+select 1 || 2 into c1;
+set c2 = 0;
+open c;
+repeat
+fetch c into x;
+if not done then
+set c2 = c2 + 1;
+end if;
+until done end repeat;
+close c;
+end$
+set @@sql_mode = ''|
+set sql_select_limit = 1|
+call modes(@c1, @c2)|
+set sql_select_limit = default|
+select @c1, @c2|
+@c1 @c2
+12 3
+delete from t1|
+drop procedure modes|
+create database sp_db1|
+drop database sp_db1|
+create database sp_db2|
+use sp_db2|
+create table t3 ( s char(4), t int )|
+insert into t3 values ("abcd", 42), ("dcba", 666)|
+use test|
+drop database sp_db2|
+create database sp_db3|
+use sp_db3|
+drop procedure if exists dummy|
+create procedure dummy(out x int)
+set x = 42|
+use test|
+drop database sp_db3|
+select type,db,name from mysql.proc where db = 'sp_db3'|
+type db name
+drop procedure if exists rc|
+create procedure rc()
+begin
+delete from t1;
+insert into t1 values ("a", 1), ("b", 2), ("c", 3);
+end|
+call rc()|
+select row_count()|
+row_count()
+3
+update t1 set data=42 where id = "b";
+select row_count()|
+row_count()
+1
+delete from t1|
+select row_count()|
+row_count()
+3
+delete from t1|
+select row_count()|
+row_count()
+0
+select * from t1|
+id data
+select row_count()|
+row_count()
+-1
+drop procedure rc|
+drop function if exists f0|
+drop function if exists f1|
+drop function if exists f2|
+drop function if exists f3|
+drop function if exists f4|
+drop function if exists f5|
+drop function if exists f6|
+drop function if exists f7|
+drop function if exists f8|
+drop function if exists f9|
+drop function if exists f10|
+drop function if exists f11|
+drop function if exists f12_1|
+drop function if exists f12_2|
+drop view if exists v0|
+drop view if exists v1|
+drop view if exists v2|
+delete from t1|
+delete from t2|
+insert into t1 values ("a", 1), ("b", 2) |
+insert into t2 values ("a", 1, 1.0), ("b", 2, 2.0), ("c", 3, 3.0) |
+create function f1() returns int
+return (select sum(data) from t1)|
+select f1()|
+f1()
+3
+select id, f1() from t1|
+id f1()
+a 3
+b 3
+create function f2() returns int
+return (select data from t1 where data <= (select sum(data) from t1) limit 1)|
+select f2()|
+f2()
+1
+select id, f2() from t1|
+id f2()
+a 1
+b 1
+create function f3() returns int
+begin
+declare n int;
+declare m int;
+set n:= (select min(data) from t1);
+set m:= (select max(data) from t1);
+return n < m;
+end|
+select f3()|
+f3()
+1
+select id, f3() from t1|
+id f3()
+a 1
+b 1
+select f1(), f3()|
+f1() f3()
+3 1
+select id, f1(), f3() from t1|
+id f1() f3()
+a 3 1
+b 3 1
+create function f4() returns double
+return (select d from t1, t2 where t1.data = t2.i and t1.id= "b")|
+select f4()|
+f4()
+2
+select s, f4() from t2|
+s f4()
+a 2
+b 2
+c 2
+create function f5(i int) returns int
+begin
+if i <= 0 then
+return 0;
+elseif i = 1 then
+return (select count(*) from t1 where data = i);
+else
+return (select count(*) + f5( i - 1) from t1 where data = i);
+end if;
+end|
+select f5(1)|
+f5(1)
+1
+select f5(2)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+select f5(3)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+create function f6() returns int
+begin
+declare n int;
+set n:= f1();
+return (select count(*) from t1 where data <= f7() and data <= n);
+end|
+create function f7() returns int
+return (select sum(data) from t1 where data <= f1())|
+select f6()|
+f6()
+2
+select id, f6() from t1|
+id f6()
+a 2
+b 2
+create view v1 (a) as select f1()|
+select * from v1|
+a
+3
+select id, a from t1, v1|
+id a
+a 3
+b 3
+select * from v1, v1 as v|
+a a
+3 3
+create view v2 (a) as select a*10 from v1|
+select * from v2|
+a
+30
+select id, a from t1, v2|
+id a
+a 30
+b 30
+select * from v1, v2|
+a a
+3 30
+create function f8 () returns int
+return (select count(*) from v2)|
+select *, f8() from v1|
+a f8()
+3 1
+drop function f1|
+select * from v1|
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+create function f1() returns int
+return (select sum(data) from t1) + (select sum(data) from v1)|
+select f1()|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+select * from v1|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+select * from v2|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+drop function f1|
+create function f1() returns int
+return (select sum(data) from t1)|
+create function f0() returns int
+return (select * from (select 100) as r)|
+select f0()|
+f0()
+100
+select *, f0() from (select 1) as t|
+1 f0()
+1 100
+create view v0 as select f0()|
+select * from v0|
+f0()
+100
+select *, f0() from v0|
+f0() f0()
+100 100
+lock tables t1 read, t1 as t11 read|
+select f3()|
+f3()
+1
+select id, f3() from t1 as t11|
+id f3()
+a 1
+b 1
+select f0()|
+f0()
+100
+select * from v0|
+f0()
+100
+select *, f0() from v0, (select 123) as d1|
+f0() 123 f0()
+100 123 100
+select id, f3() from t1|
+ERROR HY000: Table 't1' was not locked with LOCK TABLES
+select f4()|
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+unlock tables|
+lock tables v2 read, mysql.proc read|
+select * from v2|
+a
+30
+select * from v1|
+a
+3
+select * from v1, t1|
+ERROR HY000: Table 't1' was not locked with LOCK TABLES
+select f4()|
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+unlock tables|
+create function f9() returns int
+begin
+declare a, b int;
+drop temporary table if exists t3;
+create temporary table t3 (id int);
+insert into t3 values (1), (2), (3);
+set a:= (select count(*) from t3);
+set b:= (select count(*) from t3 t3_alias);
+return a + b;
+end|
+select f9()|
+f9()
+6
+Warnings:
+Note 1051 Unknown table 't3'
+select f9() from t1 limit 1|
+f9()
+6
+create function f10() returns int
+begin
+drop temporary table if exists t3;
+create temporary table t3 (id int);
+insert into t3 select id from t4;
+return (select count(*) from t3);
+end|
+select f10()|
+ERROR 42S02: Table 'test.t4' doesn't exist
+create table t4 as select 1 as id|
+select f10()|
+f10()
+1
+create function f11() returns int
+begin
+drop temporary table if exists t3;
+create temporary table t3 (id int);
+insert into t3 values (1), (2), (3);
+return (select count(*) from t3 as a, t3 as b);
+end|
+select f11()|
+ERROR HY000: Can't reopen table: 'a'
+select f11() from t1|
+ERROR HY000: Can't reopen table: 'a'
+create function f12_1() returns int
+begin
+drop temporary table if exists t3;
+create temporary table t3 (id int);
+insert into t3 values (1), (2), (3);
+return f12_2();
+end|
+create function f12_2() returns int
+return (select count(*) from t3)|
+drop temporary table t3|
+select f12_1()|
+f12_1()
+3
+Warnings:
+Note 1051 Unknown table 't3'
+select f12_1() from t1 limit 1|
+f12_1()
+3
+drop function f0|
+drop function f1|
+drop function f2|
+drop function f3|
+drop function f4|
+drop function f5|
+drop function f6|
+drop function f7|
+drop function f8|
+drop function f9|
+drop function f10|
+drop function f11|
+drop function f12_1|
+drop function f12_2|
+drop view v0|
+drop view v1|
+drop view v2|
+delete from t1 |
+delete from t2 |
+drop table t4|
+drop table if exists t3|
+create table t3 (n int unsigned not null primary key, f bigint unsigned)|
+drop procedure if exists ifac|
+create procedure ifac(n int unsigned)
+begin
+declare i int unsigned default 1;
+if n > 20 then
+set n = 20; # bigint overflow otherwise
+end if;
+while i <= n do
+begin
+insert into test.t3 values (i, fac(i));
+set i = i + 1;
+end;
+end while;
+end|
+call ifac(20)|
+select * from t3|
+n f
+1 1
+2 2
+3 6
+4 24
+5 120
+6 720
+7 5040
+8 40320
+9 362880
+10 3628800
+11 39916800
+12 479001600
+13 6227020800
+14 87178291200
+15 1307674368000
+16 20922789888000
+17 355687428096000
+18 6402373705728000
+19 121645100408832000
+20 2432902008176640000
+drop table t3|
+show function status like '%f%'|
+Db Name Type Definer Modified Created Security_type Comment
+test fac FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+drop procedure ifac|
+drop function fac|
+show function status like '%f%'|
+Db Name Type Definer Modified Created Security_type Comment
+drop table if exists t3|
+create table t3 (
+i int unsigned not null primary key,
+p bigint unsigned not null
+)|
+insert into t3 values
+( 0, 3), ( 1, 5), ( 2, 7), ( 3, 11), ( 4, 13),
+( 5, 17), ( 6, 19), ( 7, 23), ( 8, 29), ( 9, 31),
+(10, 37), (11, 41), (12, 43), (13, 47), (14, 53),
+(15, 59), (16, 61), (17, 67), (18, 71), (19, 73),
+(20, 79), (21, 83), (22, 89), (23, 97), (24, 101),
+(25, 103), (26, 107), (27, 109), (28, 113), (29, 127),
+(30, 131), (31, 137), (32, 139), (33, 149), (34, 151),
+(35, 157), (36, 163), (37, 167), (38, 173), (39, 179),
+(40, 181), (41, 191), (42, 193), (43, 197), (44, 199)|
+drop procedure if exists opp|
+create procedure opp(n bigint unsigned, out pp bool)
+begin
+declare r double;
+declare b, s bigint unsigned default 0;
+set r = sqrt(n);
+again:
+loop
+if s = 45 then
+set b = b+200, s = 0;
+else
+begin
+declare p bigint unsigned;
+select t.p into p from test.t3 t where t.i = s;
+if b+p > r then
+set pp = 1;
+leave again;
+end if;
+if mod(n, b+p) = 0 then
+set pp = 0;
+leave again;
+end if;
+set s = s+1;
+end;
+end if;
+end loop;
+end|
+drop procedure if exists ip|
+create procedure ip(m int unsigned)
+begin
+declare p bigint unsigned;
+declare i int unsigned;
+set i=45, p=201;
+while i < m do
+begin
+declare pp bool default 0;
+call opp(p, pp);
+if pp then
+insert into test.t3 values (i, p);
+set i = i+1;
+end if;
+set p = p+2;
+end;
+end while;
+end|
+show create procedure opp|
+Procedure sql_mode Create Procedure
+opp CREATE DEFINER=`root`@`localhost` PROCEDURE `opp`(n bigint unsigned, out pp bool)
+begin
+declare r double;
+declare b, s bigint unsigned default 0;
+set r = sqrt(n);
+again:
+loop
+if s = 45 then
+set b = b+200, s = 0;
+else
+begin
+declare p bigint unsigned;
+select t.p into p from test.t3 t where t.i = s;
+if b+p > r then
+set pp = 1;
+leave again;
+end if;
+if mod(n, b+p) = 0 then
+set pp = 0;
+leave again;
+end if;
+set s = s+1;
+end;
+end if;
+end loop;
+end
+show procedure status like '%p%'|
+Db Name Type Definer Modified Created Security_type Comment
+test ip PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+test opp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+call ip(200)|
+select * from t3 where i=45 or i=100 or i=199|
+i p
+45 211
+100 557
+199 1229
+drop table t3|
+drop procedure opp|
+drop procedure ip|
+show procedure status like '%p%'|
+Db Name Type Definer Modified Created Security_type Comment
+drop table if exists t3|
+create table t3 ( f bigint unsigned not null )|
+drop procedure if exists fib|
+create procedure fib(n int unsigned)
+begin
+if n > 1 then
+begin
+declare x, y bigint unsigned;
+declare c cursor for select f from t3 order by f desc limit 2;
+open c;
+fetch c into y;
+fetch c into x;
+close c;
+insert into t3 values (x+y);
+call fib(n-1);
+end;
+end if;
+end|
+set @@max_sp_recursion_depth= 20|
+insert into t3 values (0), (1)|
+call fib(3)|
+select * from t3 order by f asc|
+f
+0
+1
+1
+2
+delete from t3|
+insert into t3 values (0), (1)|
+call fib(10)|
+select * from t3 order by f asc|
+f
+0
+1
+1
+2
+3
+5
+8
+13
+21
+34
+55
+drop table t3|
+drop procedure fib|
+set @@max_sp_recursion_depth= 0|
+drop procedure if exists bar|
+create procedure bar(x char(16), y int)
+comment "111111111111" sql security invoker
+insert into test.t1 values (x, y)|
+show procedure status like 'bar'|
+Db Name Type Definer Modified Created Security_type Comment
+test bar PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 INVOKER 111111111111
+alter procedure bar comment "2222222222" sql security definer|
+alter procedure bar comment "3333333333"|
+alter procedure bar|
+show create procedure bar|
+Procedure sql_mode Create Procedure
+bar CREATE DEFINER=`root`@`localhost` PROCEDURE `bar`(x char(16), y int)
+ COMMENT '3333333333'
+insert into test.t1 values (x, y)
+show procedure status like 'bar'|
+Db Name Type Definer Modified Created Security_type Comment
+test bar PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER 3333333333
+drop procedure bar|
+drop procedure if exists p1|
+create procedure p1 ()
+select (select s1 from t3) from t3|
+create table t3 (s1 int)|
+call p1()|
+(select s1 from t3)
+insert into t3 values (1)|
+call p1()|
+(select s1 from t3)
+1
+drop procedure p1|
+drop table t3|
+drop function if exists foo|
+create function `foo` () returns int
+return 5|
+select `foo` ()|
+`foo` ()
+5
+drop function `foo`|
+drop function if exists t1max|
+create function t1max() returns int
+begin
+declare x int;
+select max(data) into x from t1;
+return x;
+end|
+insert into t1 values ("foo", 3), ("bar", 2), ("zip", 5), ("zap", 1)|
+select t1max()|
+t1max()
+5
+drop function t1max|
+create table t3 (
+v char(16) not null primary key,
+c int unsigned not null
+)|
+create function getcount(s char(16)) returns int
+begin
+declare x int;
+select count(*) into x from t3 where v = s;
+if x = 0 then
+insert into t3 values (s, 1);
+else
+update t3 set c = c+1 where v = s;
+end if;
+return x;
+end|
+select * from t1 where data = getcount("bar")|
+id data
+zap 1
+select * from t3|
+v c
+bar 4
+select getcount("zip")|
+getcount("zip")
+0
+select getcount("zip")|
+getcount("zip")
+1
+select * from t3|
+v c
+bar 4
+zip 2
+select getcount(id) from t1 where data = 3|
+getcount(id)
+0
+select getcount(id) from t1 where data = 5|
+getcount(id)
+1
+select * from t3|
+v c
+bar 4
+zip 3
+foo 1
+drop table t3|
+drop function getcount|
+drop table if exists t3|
+drop procedure if exists h_ee|
+drop procedure if exists h_es|
+drop procedure if exists h_en|
+drop procedure if exists h_ew|
+drop procedure if exists h_ex|
+drop procedure if exists h_se|
+drop procedure if exists h_ss|
+drop procedure if exists h_sn|
+drop procedure if exists h_sw|
+drop procedure if exists h_sx|
+drop procedure if exists h_ne|
+drop procedure if exists h_ns|
+drop procedure if exists h_nn|
+drop procedure if exists h_we|
+drop procedure if exists h_ws|
+drop procedure if exists h_ww|
+drop procedure if exists h_xe|
+drop procedure if exists h_xs|
+drop procedure if exists h_xx|
+create table t3 (a smallint primary key)|
+insert into t3 (a) values (1)|
+create procedure h_ee()
+deterministic
+begin
+declare continue handler for 1062 -- ER_DUP_ENTRY
+select 'Outer (bad)' as 'h_ee';
+begin
+declare continue handler for 1062 -- ER_DUP_ENTRY
+select 'Inner (good)' as 'h_ee';
+insert into t3 values (1);
+end;
+end|
+create procedure h_es()
+deterministic
+begin
+declare continue handler for 1062 -- ER_DUP_ENTRY
+select 'Outer (good)' as 'h_es';
+begin
+-- integrity constraint violation
+declare continue handler for sqlstate '23000'
+ select 'Inner (bad)' as 'h_es';
+insert into t3 values (1);
+end;
+end|
+create procedure h_en()
+deterministic
+begin
+declare continue handler for 1329 -- ER_SP_FETCH_NO_DATA
+select 'Outer (good)' as 'h_en';
+begin
+declare x int;
+declare continue handler for sqlstate '02000' -- no data
+select 'Inner (bad)' as 'h_en';
+select a into x from t3 where a = 42;
+end;
+end|
+create procedure h_ew()
+deterministic
+begin
+declare continue handler for 1264 -- ER_WARN_DATA_OUT_OF_RANGE
+select 'Outer (good)' as 'h_ew';
+begin
+declare continue handler for sqlwarning
+select 'Inner (bad)' as 'h_ew';
+insert into t3 values (123456789012);
+end;
+delete from t3;
+insert into t3 values (1);
+end|
+create procedure h_ex()
+deterministic
+begin
+declare continue handler for 1062 -- ER_DUP_ENTRY
+select 'Outer (good)' as 'h_ex';
+begin
+declare continue handler for sqlexception
+select 'Inner (bad)' as 'h_ex';
+insert into t3 values (1);
+end;
+end|
+create procedure h_se()
+deterministic
+begin
+-- integrity constraint violation
+declare continue handler for sqlstate '23000'
+select 'Outer (bad)' as 'h_se';
+begin
+declare continue handler for 1062 -- ER_DUP_ENTRY
+select 'Inner (good)' as 'h_se';
+insert into t3 values (1);
+end;
+end|
+create procedure h_ss()
+deterministic
+begin
+-- integrity constraint violation
+declare continue handler for sqlstate '23000'
+select 'Outer (bad)' as 'h_ss';
+begin
+-- integrity constraint violation
+declare continue handler for sqlstate '23000'
+select 'Inner (good)' as 'h_ss';
+insert into t3 values (1);
+end;
+end|
+create procedure h_sn()
+deterministic
+begin
+-- Note: '02000' is more specific than NOT FOUND ;
+-- there might be other not found states
+declare continue handler for sqlstate '02000' -- no data
+select 'Outer (good)' as 'h_sn';
+begin
+declare x int;
+declare continue handler for not found
+select 'Inner (bad)' as 'h_sn';
+select a into x from t3 where a = 42;
+end;
+end|
+create procedure h_sw()
+deterministic
+begin
+-- data exception - numeric value out of range
+declare continue handler for sqlstate '22003'
+ select 'Outer (good)' as 'h_sw';
+begin
+declare continue handler for sqlwarning
+select 'Inner (bad)' as 'h_sw';
+insert into t3 values (123456789012);
+end;
+delete from t3;
+insert into t3 values (1);
+end|
+create procedure h_sx()
+deterministic
+begin
+-- integrity constraint violation
+declare continue handler for sqlstate '23000'
+select 'Outer (good)' as 'h_sx';
+begin
+declare continue handler for sqlexception
+select 'Inner (bad)' as 'h_sx';
+insert into t3 values (1);
+end;
+end|
+create procedure h_ne()
+deterministic
+begin
+declare continue handler for not found
+select 'Outer (bad)' as 'h_ne';
+begin
+declare x int;
+declare continue handler for 1329 -- ER_SP_FETCH_NO_DATA
+select 'Inner (good)' as 'h_ne';
+select a into x from t3 where a = 42;
+end;
+end|
+create procedure h_ns()
+deterministic
+begin
+declare continue handler for not found
+select 'Outer (bad)' as 'h_ns';
+begin
+declare x int;
+declare continue handler for sqlstate '02000' -- no data
+select 'Inner (good)' as 'h_ns';
+select a into x from t3 where a = 42;
+end;
+end|
+create procedure h_nn()
+deterministic
+begin
+declare continue handler for not found
+select 'Outer (bad)' as 'h_nn';
+begin
+declare x int;
+declare continue handler for not found
+select 'Inner (good)' as 'h_nn';
+select a into x from t3 where a = 42;
+end;
+end|
+create procedure h_we()
+deterministic
+begin
+declare continue handler for sqlwarning
+select 'Outer (bad)' as 'h_we';
+begin
+declare continue handler for 1264 -- ER_WARN_DATA_OUT_OF_RANGE
+select 'Inner (good)' as 'h_we';
+insert into t3 values (123456789012);
+end;
+delete from t3;
+insert into t3 values (1);
+end|
+create procedure h_ws()
+deterministic
+begin
+declare continue handler for sqlwarning
+select 'Outer (bad)' as 'h_ws';
+begin
+-- data exception - numeric value out of range
+declare continue handler for sqlstate '22003'
+ select 'Inner (good)' as 'h_ws';
+insert into t3 values (123456789012);
+end;
+delete from t3;
+insert into t3 values (1);
+end|
+create procedure h_ww()
+deterministic
+begin
+declare continue handler for sqlwarning
+select 'Outer (bad)' as 'h_ww';
+begin
+declare continue handler for sqlwarning
+select 'Inner (good)' as 'h_ww';
+insert into t3 values (123456789012);
+end;
+delete from t3;
+insert into t3 values (1);
+end|
+create procedure h_xe()
+deterministic
+begin
+declare continue handler for sqlexception
+select 'Outer (bad)' as 'h_xe';
+begin
+declare continue handler for 1062 -- ER_DUP_ENTRY
+select 'Inner (good)' as 'h_xe';
+insert into t3 values (1);
+end;
+end|
+create procedure h_xs()
+deterministic
+begin
+declare continue handler for sqlexception
+select 'Outer (bad)' as 'h_xs';
+begin
+-- integrity constraint violation
+declare continue handler for sqlstate '23000'
+ select 'Inner (good)' as 'h_xs';
+insert into t3 values (1);
+end;
+end|
+create procedure h_xx()
+deterministic
+begin
+declare continue handler for sqlexception
+select 'Outer (bad)' as 'h_xx';
+begin
+declare continue handler for sqlexception
+select 'Inner (good)' as 'h_xx';
+insert into t3 values (1);
+end;
+end|
+call h_ee()|
+h_ee
+Inner (good)
+call h_es()|
+h_es
+Outer (good)
+call h_en()|
+h_en
+Outer (good)
+call h_ew()|
+h_ew
+Outer (good)
+call h_ex()|
+h_ex
+Outer (good)
+call h_se()|
+h_se
+Inner (good)
+call h_ss()|
+h_ss
+Inner (good)
+call h_sn()|
+h_sn
+Outer (good)
+call h_sw()|
+h_sw
+Outer (good)
+call h_sx()|
+h_sx
+Outer (good)
+call h_ne()|
+h_ne
+Inner (good)
+call h_ns()|
+h_ns
+Inner (good)
+call h_nn()|
+h_nn
+Inner (good)
+call h_we()|
+h_we
+Inner (good)
+call h_ws()|
+h_ws
+Inner (good)
+call h_ww()|
+h_ww
+Inner (good)
+call h_xe()|
+h_xe
+Inner (good)
+call h_xs()|
+h_xs
+Inner (good)
+call h_xx()|
+h_xx
+Inner (good)
+drop table t3|
+drop procedure h_ee|
+drop procedure h_es|
+drop procedure h_en|
+drop procedure h_ew|
+drop procedure h_ex|
+drop procedure h_se|
+drop procedure h_ss|
+drop procedure h_sn|
+drop procedure h_sw|
+drop procedure h_sx|
+drop procedure h_ne|
+drop procedure h_ns|
+drop procedure h_nn|
+drop procedure h_we|
+drop procedure h_ws|
+drop procedure h_ww|
+drop procedure h_xe|
+drop procedure h_xs|
+drop procedure h_xx|
+drop procedure if exists bug822|
+create procedure bug822(a_id char(16), a_data int)
+begin
+declare n int;
+select count(*) into n from t1 where id = a_id and data = a_data;
+if n = 0 then
+insert into t1 (id, data) values (a_id, a_data);
+end if;
+end|
+delete from t1|
+call bug822('foo', 42)|
+call bug822('foo', 42)|
+call bug822('bar', 666)|
+select * from t1|
+id data
+foo 42
+bar 666
+delete from t1|
+drop procedure bug822|
+drop procedure if exists bug1495|
+create procedure bug1495()
+begin
+declare x int;
+select data into x from t1 order by id limit 1;
+if x > 10 then
+insert into t1 values ("less", x-10);
+else
+insert into t1 values ("more", x+10);
+end if;
+end|
+insert into t1 values ('foo', 12)|
+call bug1495()|
+delete from t1 where id='foo'|
+insert into t1 values ('bar', 7)|
+call bug1495()|
+delete from t1 where id='bar'|
+select * from t1|
+id data
+less 2
+more 17
+delete from t1|
+drop procedure bug1495|
+drop procedure if exists bug1547|
+create procedure bug1547(s char(16))
+begin
+declare x int;
+select data into x from t1 where s = id limit 1;
+if x > 10 then
+insert into t1 values ("less", x-10);
+else
+insert into t1 values ("more", x+10);
+end if;
+end|
+insert into t1 values ("foo", 12), ("bar", 7)|
+call bug1547("foo")|
+call bug1547("bar")|
+select * from t1|
+id data
+foo 12
+bar 7
+less 2
+more 17
+delete from t1|
+drop procedure bug1547|
+drop table if exists t70|
+create table t70 (s1 int,s2 int)|
+insert into t70 values (1,2)|
+drop procedure if exists bug1656|
+create procedure bug1656(out p1 int, out p2 int)
+select * into p1, p1 from t70|
+call bug1656(@1, @2)|
+select @1, @2|
+@1 @2
+2 NULL
+drop table t70|
+drop procedure bug1656|
+create table t3(a int)|
+drop procedure if exists bug1862|
+create procedure bug1862()
+begin
+insert into t3 values(2);
+flush tables;
+end|
+call bug1862()|
+call bug1862()|
+select * from t3|
+a
+2
+2
+drop table t3|
+drop procedure bug1862|
+drop procedure if exists bug1874|
+create procedure bug1874()
+begin
+declare x int;
+declare y double;
+select max(data) into x from t1;
+insert into t2 values ("max", x, 0);
+select min(data) into x from t1;
+insert into t2 values ("min", x, 0);
+select sum(data) into x from t1;
+insert into t2 values ("sum", x, 0);
+select avg(data) into y from t1;
+insert into t2 values ("avg", 0, y);
+end|
+insert into t1 (data) values (3), (1), (5), (9), (4)|
+call bug1874()|
+select * from t2|
+s i d
+max 9 0
+min 1 0
+sum 22 0
+avg 0 4.4
+delete from t1|
+delete from t2|
+drop procedure bug1874|
+drop procedure if exists bug2260|
+create procedure bug2260()
+begin
+declare v1 int;
+declare c1 cursor for select data from t1;
+declare continue handler for not found set @x2 = 1;
+open c1;
+fetch c1 into v1;
+set @x2 = 2;
+close c1;
+end|
+call bug2260()|
+select @x2|
+@x2
+2
+drop procedure bug2260|
+drop procedure if exists bug2267_1|
+create procedure bug2267_1()
+begin
+show procedure status;
+end|
+drop procedure if exists bug2267_2|
+create procedure bug2267_2()
+begin
+show function status;
+end|
+drop procedure if exists bug2267_3|
+create procedure bug2267_3()
+begin
+show create procedure bug2267_1;
+end|
+drop procedure if exists bug2267_4|
+drop function if exists bug2267_4|
+create procedure bug2267_4()
+begin
+show create function bug2267_4;
+end|
+create function bug2267_4() returns int return 100|
+call bug2267_1()|
+Db Name Type Definer Modified Created Security_type Comment
+test bug2267_1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+test bug2267_2 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+test bug2267_3 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+test bug2267_4 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+call bug2267_2()|
+Db Name Type Definer Modified Created Security_type Comment
+test bug2267_4 FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
+call bug2267_3()|
+Procedure sql_mode Create Procedure
+bug2267_1 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug2267_1`()
+begin
+show procedure status;
+end
+call bug2267_4()|
+Function sql_mode Create Function
+bug2267_4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug2267_4`() RETURNS int(11)
+return 100
+drop procedure bug2267_1|
+drop procedure bug2267_2|
+drop procedure bug2267_3|
+drop procedure bug2267_4|
+drop function bug2267_4|
+drop procedure if exists bug2227|
+create procedure bug2227(x int)
+begin
+declare y float default 2.6;
+declare z char(16) default "zzz";
+select 1.3, x, y, 42, z;
+end|
+call bug2227(9)|
+1.3 x y 42 z
+1.3 9 2.6 42 zzz
+drop procedure bug2227|
+drop procedure if exists bug2614|
+create procedure bug2614()
+begin
+drop table if exists t3;
+create table t3 (id int default '0' not null);
+insert into t3 select 12;
+insert into t3 select * from t3;
+end|
+call bug2614()|
+call bug2614()|
+drop table t3|
+drop procedure bug2614|
+drop function if exists bug2674|
+create function bug2674() returns int
+return @@sort_buffer_size|
+set @osbs = @@sort_buffer_size|
+set @@sort_buffer_size = 262000|
+select bug2674()|
+bug2674()
+262000
+drop function bug2674|
+set @@sort_buffer_size = @osbs|
+drop procedure if exists bug3259_1 |
+create procedure bug3259_1 () begin end|
+drop procedure if exists BUG3259_2 |
+create procedure BUG3259_2 () begin end|
+drop procedure if exists Bug3259_3 |
+create procedure Bug3259_3 () begin end|
+call BUG3259_1()|
+call BUG3259_1()|
+call bug3259_2()|
+call Bug3259_2()|
+call bug3259_3()|
+call bUG3259_3()|
+drop procedure bUg3259_1|
+drop procedure BuG3259_2|
+drop procedure BUG3259_3|
+drop function if exists bug2772|
+create function bug2772() returns char(10) character set latin2
+return 'a'|
+select bug2772()|
+bug2772()
+a
+drop function bug2772|
+drop procedure if exists bug2776_1|
+create procedure bug2776_1(out x int)
+begin
+declare v int;
+set v = default;
+set x = v;
+end|
+drop procedure if exists bug2776_2|
+create procedure bug2776_2(out x int)
+begin
+declare v int default 42;
+set v = default;
+set x = v;
+end|
+set @x = 1|
+call bug2776_1(@x)|
+select @x|
+@x
+NULL
+call bug2776_2(@x)|
+select @x|
+@x
+42
+drop procedure bug2776_1|
+drop procedure bug2776_2|
+create table t3 (s1 smallint)|
+insert into t3 values (123456789012)|
+Warnings:
+Warning 1264 Out of range value adjusted for column 's1' at row 1
+drop procedure if exists bug2780|
+create procedure bug2780()
+begin
+declare exit handler for sqlwarning set @x = 1;
+set @x = 0;
+insert into t3 values (123456789012);
+insert into t3 values (0);
+end|
+call bug2780()|
+select @x|
+@x
+1
+select * from t3|
+s1
+32767
+32767
+drop procedure bug2780|
+drop table t3|
+create table t3 (content varchar(10) )|
+insert into t3 values ("test1")|
+insert into t3 values ("test2")|
+create table t4 (f1 int, rc int, t3 int)|
+drop procedure if exists bug1863|
+create procedure bug1863(in1 int)
+begin
+declare ind int default 0;
+declare t1 int;
+declare t2 int;
+declare t3 int;
+declare rc int default 0;
+declare continue handler for 1065 set rc = 1;
+drop temporary table if exists temp_t1;
+create temporary table temp_t1 (
+f1 int auto_increment, f2 varchar(20), primary key (f1)
+);
+insert into temp_t1 (f2) select content from t3;
+select f2 into t3 from temp_t1 where f1 = 10;
+if (rc) then
+insert into t4 values (1, rc, t3);
+end if;
+insert into t4 values (2, rc, t3);
+end|
+call bug1863(10)|
+Warnings:
+Note 1051 Unknown table 'temp_t1'
+Warning 1329 No data - zero rows fetched, selected, or processed
+call bug1863(10)|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select * from t4|
+f1 rc t3
+2 0 NULL
+2 0 NULL
+drop procedure bug1863|
+drop temporary table temp_t1;
+drop table t3, t4|
+create table t3 (
+OrderID int not null,
+MarketID int,
+primary key (OrderID)
+)|
+create table t4 (
+MarketID int not null,
+Market varchar(60),
+Status char(1),
+primary key (MarketID)
+)|
+insert t3 (OrderID,MarketID) values (1,1)|
+insert t3 (OrderID,MarketID) values (2,2)|
+insert t4 (MarketID,Market,Status) values (1,"MarketID One","A")|
+insert t4 (MarketID,Market,Status) values (2,"MarketID Two","A")|
+drop procedure if exists bug2656_1|
+create procedure bug2656_1()
+begin
+select
+m.Market
+from t4 m JOIN t3 o
+ON o.MarketID != 1 and o.MarketID = m.MarketID;
+end |
+drop procedure if exists bug2656_2|
+create procedure bug2656_2()
+begin
+select
+m.Market
+from
+t4 m, t3 o
+where
+m.MarketID != 1 and m.MarketID = o.MarketID;
+end |
+call bug2656_1()|
+Market
+MarketID Two
+call bug2656_1()|
+Market
+MarketID Two
+call bug2656_2()|
+Market
+MarketID Two
+call bug2656_2()|
+Market
+MarketID Two
+drop procedure bug2656_1|
+drop procedure bug2656_2|
+drop table t3, t4|
+drop procedure if exists bug3426|
+create procedure bug3426(in_time int unsigned, out x int)
+begin
+if in_time is null then
+set @stamped_time=10;
+set x=1;
+else
+set @stamped_time=in_time;
+set x=2;
+end if;
+end|
+call bug3426(1000, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+@i time
+2 01-01-1970 03:16:40
+call bug3426(NULL, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+@i time
+1 01-01-1970 03:00:10
+alter procedure bug3426 sql security invoker|
+call bug3426(NULL, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+@i time
+1 01-01-1970 03:00:10
+call bug3426(1000, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+@i time
+2 01-01-1970 03:16:40
+drop procedure bug3426|
+create table t3 (
+id int unsigned auto_increment not null primary key,
+title VARCHAR(200),
+body text,
+fulltext (title,body)
+)|
+insert into t3 (title,body) values
+('MySQL Tutorial','DBMS stands for DataBase ...'),
+('How To Use MySQL Well','After you went through a ...'),
+('Optimizing MySQL','In this tutorial we will show ...'),
+('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
+('MySQL vs. YourSQL','In the following database comparison ...'),
+('MySQL Security','When configured properly, MySQL ...')|
+drop procedure if exists bug3734 |
+create procedure bug3734 (param1 varchar(100))
+select * from t3 where match (title,body) against (param1)|
+call bug3734('database')|
+id title body
+5 MySQL vs. YourSQL In the following database comparison ...
+1 MySQL Tutorial DBMS stands for DataBase ...
+call bug3734('Security')|
+id title body
+6 MySQL Security When configured properly, MySQL ...
+drop procedure bug3734|
+drop table t3|
+drop procedure if exists bug3863|
+create procedure bug3863()
+begin
+set @a = 0;
+while @a < 5 do
+set @a = @a + 1;
+end while;
+end|
+call bug3863()|
+select @a|
+@a
+5
+call bug3863()|
+select @a|
+@a
+5
+drop procedure bug3863|
+create table t3 (
+id int(10) unsigned not null default 0,
+rid int(10) unsigned not null default 0,
+msg text not null,
+primary key (id),
+unique key rid (rid, id)
+)|
+drop procedure if exists bug2460_1|
+create procedure bug2460_1(in v int)
+begin
+( select n0.id from t3 as n0 where n0.id = v )
+union
+( select n0.id from t3 as n0, t3 as n1
+where n0.id = n1.rid and n1.id = v )
+union
+( select n0.id from t3 as n0, t3 as n1, t3 as n2
+where n0.id = n1.rid and n1.id = n2.rid and n2.id = v );
+end|
+call bug2460_1(2)|
+id
+call bug2460_1(2)|
+id
+insert into t3 values (1, 1, 'foo'), (2, 1, 'bar'), (3, 1, 'zip zap')|
+call bug2460_1(2)|
+id
+2
+1
+call bug2460_1(2)|
+id
+2
+1
+drop procedure if exists bug2460_2|
+create procedure bug2460_2()
+begin
+drop table if exists t3;
+create temporary table t3 (s1 int);
+insert into t3 select 1 union select 1;
+end|
+call bug2460_2()|
+call bug2460_2()|
+select * from t3|
+s1
+1
+drop procedure bug2460_1|
+drop procedure bug2460_2|
+drop table t3|
+set @@sql_mode = ''|
+drop procedure if exists bug2564_1|
+create procedure bug2564_1()
+comment 'Joe''s procedure'
+ insert into `t1` values ("foo", 1)|
+set @@sql_mode = 'ANSI_QUOTES'|
+drop procedure if exists bug2564_2|
+create procedure bug2564_2()
+insert into "t1" values ('foo', 1)|
+set @@sql_mode = ''$
+drop function if exists bug2564_3$
+create function bug2564_3(x int, y int) returns int
+return x || y$
+set @@sql_mode = 'ANSI'$
+drop function if exists bug2564_4$
+create function bug2564_4(x int, y int) returns int
+return x || y$
+set @@sql_mode = ''|
+show create procedure bug2564_1|
+Procedure sql_mode Create Procedure
+bug2564_1 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug2564_1`()
+ COMMENT 'Joe''s procedure'
+insert into `t1` values ("foo", 1)
+show create procedure bug2564_2|
+Procedure sql_mode Create Procedure
+bug2564_2 ANSI_QUOTES CREATE DEFINER="root"@"localhost" PROCEDURE "bug2564_2"()
+insert into "t1" values ('foo', 1)
+show create function bug2564_3|
+Function sql_mode Create Function
+bug2564_3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug2564_3`(x int, y int) RETURNS int(11)
+return x || y
+show create function bug2564_4|
+Function sql_mode Create Function
+bug2564_4 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI CREATE DEFINER="root"@"localhost" FUNCTION "bug2564_4"(x int, y int) RETURNS int(11)
+return x || y
+drop procedure bug2564_1|
+drop procedure bug2564_2|
+drop function bug2564_3|
+drop function bug2564_4|
+drop function if exists bug3132|
+create function bug3132(s char(20)) returns char(50)
+return concat('Hello, ', s, '!')|
+select bug3132('Bob') union all select bug3132('Judy')|
+bug3132('Bob')
+Hello, Bob!
+Hello, Judy!
+drop function bug3132|
+drop procedure if exists bug3843|
+create procedure bug3843()
+analyze table t1|
+call bug3843()|
+Table Op Msg_type Msg_text
+test.t1 analyze status OK
+call bug3843()|
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+select 1+2|
+1+2
+3
+drop procedure bug3843|
+create table t3 ( s1 char(10) )|
+insert into t3 values ('a'), ('b')|
+drop procedure if exists bug3368|
+create procedure bug3368(v char(10))
+begin
+select group_concat(v) from t3;
+end|
+call bug3368('x')|
+group_concat(v)
+x,x
+call bug3368('yz')|
+group_concat(v)
+yz,yz
+drop procedure bug3368|
+drop table t3|
+create table t3 (f1 int, f2 int)|
+insert into t3 values (1,1)|
+drop procedure if exists bug4579_1|
+create procedure bug4579_1 ()
+begin
+declare sf1 int;
+select f1 into sf1 from t3 where f1=1 and f2=1;
+update t3 set f2 = f2 + 1 where f1=1 and f2=1;
+call bug4579_2();
+end|
+drop procedure if exists bug4579_2|
+create procedure bug4579_2 ()
+begin
+end|
+call bug4579_1()|
+call bug4579_1()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call bug4579_1()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+drop procedure bug4579_1|
+drop procedure bug4579_2|
+drop table t3|
+drop procedure if exists bug2773|
+create function bug2773() returns int return null|
+create table t3 as select bug2773()|
+show create table t3|
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `bug2773()` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t3|
+drop function bug2773|
+drop procedure if exists bug3788|
+create function bug3788() returns date return cast("2005-03-04" as date)|
+select bug3788()|
+bug3788()
+2005-03-04
+drop function bug3788|
+create function bug3788() returns binary(1) return 5|
+select bug3788()|
+bug3788()
+5
+drop function bug3788|
+create table t3 (f1 int, f2 int, f3 int)|
+insert into t3 values (1,1,1)|
+drop procedure if exists bug4726|
+create procedure bug4726()
+begin
+declare tmp_o_id INT;
+declare tmp_d_id INT default 1;
+while tmp_d_id <= 2 do
+begin
+select f1 into tmp_o_id from t3 where f2=1 and f3=1;
+set tmp_d_id = tmp_d_id + 1;
+end;
+end while;
+end|
+call bug4726()|
+call bug4726()|
+call bug4726()|
+drop procedure bug4726|
+drop table t3|
+drop procedure if exists bug4902|
+create procedure bug4902()
+begin
+show charset like 'foo';
+show collation like 'foo';
+show column types;
+show create table t1;
+show create database test;
+show databases like 'foo';
+show errors;
+show columns from t1;
+show keys from t1;
+show open tables like 'foo';
+show privileges;
+show status like 'foo';
+show tables like 'foo';
+show variables like 'foo';
+show warnings;
+end|
+call bug4902()|
+Charset Description Default collation Maxlen
+Collation Charset Id Default Compiled Sortlen
+Type Size Min_Value Max_Value Prec Scale Nullable Auto_Increment Unsigned Zerofill Searchable Case_Sensitive Default Comment
+tinyint 1 -128 127 0 0 YES YES NO YES YES NO NULL,0 A very small integer
+tinyint unsigned 1 0 255 0 0 YES YES YES YES YES NO NULL,0 A very small integer
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` char(16) NOT NULL default '',
+ `data` int(11) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+Database Create Database
+test CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */
+Database (foo)
+Level Code Message
+Field Type Null Key Default Extra
+id char(16) NO
+data int(11) NO NULL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+Database Table In_use Name_locked
+Privilege Context Comment
+Alter Tables To alter the table
+Alter routine Functions,Procedures To alter or drop stored functions/procedures
+Create Databases,Tables,Indexes To create new databases and tables
+Create routine Functions,Procedures To use CREATE FUNCTION/PROCEDURE
+Create temporary tables Databases To use CREATE TEMPORARY TABLE
+Create view Tables To create new views
+Create user Server Admin To create new users
+Delete Tables To delete existing rows
+Drop Databases,Tables To drop databases, tables, and views
+Execute Functions,Procedures To execute stored routines
+File File access on server To read and write files on the server
+Grant option Databases,Tables,Functions,Procedures To give to other users those privileges you possess
+Index Tables To create or drop indexes
+Insert Tables To insert data into tables
+Lock tables Databases To use LOCK TABLES (together with SELECT privilege)
+Process Server Admin To view the plain text of currently executing queries
+References Databases,Tables To have references on tables
+Reload Server Admin To reload or refresh tables, logs and privileges
+Replication client Server Admin To ask where the slave or master servers are
+Replication slave Server Admin To read binary log events from the master
+Select Tables To retrieve rows from table
+Show databases Server Admin To see all databases with SHOW DATABASES
+Show view Tables To see views with SHOW CREATE VIEW
+Shutdown Server Admin To shut down the server
+Super Server Admin To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.
+Update Tables To update existing rows
+Usage Server Admin No privileges - allow connect only
+Variable_name Value
+Tables_in_test (foo)
+Variable_name Value
+Level Code Message
+call bug4902()|
+Charset Description Default collation Maxlen
+Collation Charset Id Default Compiled Sortlen
+Type Size Min_Value Max_Value Prec Scale Nullable Auto_Increment Unsigned Zerofill Searchable Case_Sensitive Default Comment
+tinyint 1 -128 127 0 0 YES YES NO YES YES NO NULL,0 A very small integer
+tinyint unsigned 1 0 255 0 0 YES YES YES YES YES NO NULL,0 A very small integer
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` char(16) NOT NULL default '',
+ `data` int(11) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+Database Create Database
+test CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */
+Database (foo)
+Level Code Message
+Field Type Null Key Default Extra
+id char(16) NO
+data int(11) NO NULL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+Database Table In_use Name_locked
+Privilege Context Comment
+Alter Tables To alter the table
+Alter routine Functions,Procedures To alter or drop stored functions/procedures
+Create Databases,Tables,Indexes To create new databases and tables
+Create routine Functions,Procedures To use CREATE FUNCTION/PROCEDURE
+Create temporary tables Databases To use CREATE TEMPORARY TABLE
+Create view Tables To create new views
+Create user Server Admin To create new users
+Delete Tables To delete existing rows
+Drop Databases,Tables To drop databases, tables, and views
+Execute Functions,Procedures To execute stored routines
+File File access on server To read and write files on the server
+Grant option Databases,Tables,Functions,Procedures To give to other users those privileges you possess
+Index Tables To create or drop indexes
+Insert Tables To insert data into tables
+Lock tables Databases To use LOCK TABLES (together with SELECT privilege)
+Process Server Admin To view the plain text of currently executing queries
+References Databases,Tables To have references on tables
+Reload Server Admin To reload or refresh tables, logs and privileges
+Replication client Server Admin To ask where the slave or master servers are
+Replication slave Server Admin To read binary log events from the master
+Select Tables To retrieve rows from table
+Show databases Server Admin To see all databases with SHOW DATABASES
+Show view Tables To see views with SHOW CREATE VIEW
+Shutdown Server Admin To shut down the server
+Super Server Admin To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.
+Update Tables To update existing rows
+Usage Server Admin No privileges - allow connect only
+Variable_name Value
+Tables_in_test (foo)
+Variable_name Value
+Level Code Message
+drop procedure bug4902|
+drop procedure if exists bug4904|
+create procedure bug4904()
+begin
+declare continue handler for sqlstate 'HY000' begin end;
+create table t2 as select * from t3;
+end|
+call bug4904()|
+ERROR 42S02: Table 'test.t3' doesn't exist
+drop procedure bug4904|
+create table t3 (s1 char character set latin1, s2 char character set latin2)|
+drop procedure if exists bug4904|
+create procedure bug4904 ()
+begin
+declare continue handler for sqlstate 'HY000' begin end;
+select s1 from t3 union select s2 from t3;
+end|
+call bug4904()|
+drop procedure bug4904|
+drop table t3|
+drop procedure if exists bug336|
+create procedure bug336(out y int)
+begin
+declare x int;
+set x = (select sum(t.data) from test.t1 t);
+set y = x;
+end|
+insert into t1 values ("a", 2), ("b", 3)|
+call bug336(@y)|
+select @y|
+@y
+5
+delete from t1|
+drop procedure bug336|
+drop procedure if exists bug3157|
+create procedure bug3157()
+begin
+if exists(select * from t1) then
+set @n= @n + 1;
+end if;
+if (select count(*) from t1) then
+set @n= @n + 1;
+end if;
+end|
+set @n = 0|
+insert into t1 values ("a", 1)|
+call bug3157()|
+select @n|
+@n
+2
+delete from t1|
+drop procedure bug3157|
+drop procedure if exists bug5251|
+create procedure bug5251()
+begin
+end|
+select created into @c1 from mysql.proc
+where db='test' and name='bug5251'|
+alter procedure bug5251 comment 'foobar'|
+select count(*) from mysql.proc
+where db='test' and name='bug5251' and created = @c1|
+count(*)
+1
+drop procedure bug5251|
+drop procedure if exists bug5251|
+create procedure bug5251()
+checksum table t1|
+call bug5251()|
+Table Checksum
+test.t1 0
+call bug5251()|
+Table Checksum
+test.t1 0
+drop procedure bug5251|
+drop procedure if exists bug5287|
+create procedure bug5287(param1 int)
+label1:
+begin
+declare c cursor for select 5;
+loop
+if param1 >= 0 then
+leave label1;
+end if;
+end loop;
+end|
+call bug5287(1)|
+drop procedure bug5287|
+drop procedure if exists bug5307|
+create procedure bug5307()
+begin
+end; set @x = 3|
+call bug5307()|
+select @x|
+@x
+3
+drop procedure bug5307|
+drop procedure if exists bug5258|
+create procedure bug5258()
+begin
+end|
+drop procedure if exists bug5258_aux|
+create procedure bug5258_aux()
+begin
+declare c, m char(19);
+select created,modified into c,m from mysql.proc where name = 'bug5258';
+if c = m then
+select 'Ok';
+else
+select c, m;
+end if;
+end|
+call bug5258_aux()|
+Ok
+Ok
+drop procedure bug5258|
+drop procedure bug5258_aux|
+drop function if exists bug4487|
+create function bug4487() returns char
+begin
+declare v char;
+return v;
+end|
+select bug4487()|
+bug4487()
+NULL
+drop function bug4487|
+drop procedure if exists bug4941|
+drop procedure if exists bug4941|
+create procedure bug4941(out x int)
+begin
+declare c cursor for select i from t2 limit 1;
+open c;
+fetch c into x;
+close c;
+end|
+insert into t2 values (null, null, null)|
+set @x = 42|
+call bug4941(@x)|
+select @x|
+@x
+NULL
+delete from t1|
+drop procedure bug4941|
+drop procedure if exists bug4905|
+create table t3 (s1 int,primary key (s1))|
+drop procedure if exists bug4905|
+create procedure bug4905()
+begin
+declare v int;
+declare continue handler for sqlstate '23000' set v = 5;
+insert into t3 values (1);
+end|
+call bug4905()|
+select row_count()|
+row_count()
+1
+call bug4905()|
+select row_count()|
+row_count()
+-1
+call bug4905()|
+select row_count()|
+row_count()
+-1
+select * from t3|
+s1
+1
+drop procedure bug4905|
+drop table t3|
+drop procedure if exists bug6029|
+drop procedure if exists bug6029|
+create procedure bug6029()
+begin
+declare exit handler for 1136 select '1136';
+declare exit handler for sqlstate '23000' select 'sqlstate 23000';
+declare continue handler for sqlexception select 'sqlexception';
+insert into t3 values (1);
+insert into t3 values (1,2);
+end|
+create table t3 (s1 int, primary key (s1))|
+insert into t3 values (1)|
+call bug6029()|
+sqlstate 23000
+sqlstate 23000
+delete from t3|
+call bug6029()|
+1136
+1136
+drop procedure bug6029|
+drop table t3|
+drop procedure if exists bug8540|
+create procedure bug8540()
+begin
+declare x int default 1;
+select x as y, x+0 as z;
+end|
+call bug8540()|
+y z
+1 1
+drop procedure bug8540|
+create table t3 (s1 int)|
+drop procedure if exists bug6642|
+create procedure bug6642()
+select abs(count(s1)) from t3|
+call bug6642()|
+abs(count(s1))
+0
+call bug6642()|
+abs(count(s1))
+0
+drop procedure bug6642|
+insert into t3 values (0),(1)|
+drop procedure if exists bug7013|
+create procedure bug7013()
+select s1,count(s1) from t3 group by s1 with rollup|
+call bug7013()|
+s1 count(s1)
+0 1
+1 1
+NULL 2
+call bug7013()|
+s1 count(s1)
+0 1
+1 1
+NULL 2
+drop procedure bug7013|
+drop table if exists t4|
+create table t4 (
+a mediumint(8) unsigned not null auto_increment,
+b smallint(5) unsigned not null,
+c char(32) not null,
+primary key (a)
+) engine=myisam default charset=latin1|
+insert into t4 values (1, 2, 'oneword')|
+insert into t4 values (2, 2, 'anotherword')|
+drop procedure if exists bug7743|
+create procedure bug7743 ( searchstring char(28) )
+begin
+declare var mediumint(8) unsigned;
+select a into var from t4 where b = 2 and c = binary searchstring limit 1;
+select var;
+end|
+call bug7743("oneword")|
+var
+1
+call bug7743("OneWord")|
+var
+NULL
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call bug7743("anotherword")|
+var
+2
+call bug7743("AnotherWord")|
+var
+NULL
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+drop procedure bug7743|
+drop table t4|
+delete from t3|
+insert into t3 values(1)|
+drop procedure if exists bug7992_1|
+Warnings:
+Note 1305 PROCEDURE bug7992_1 does not exist
+drop procedure if exists bug7992_2|
+Warnings:
+Note 1305 PROCEDURE bug7992_2 does not exist
+create procedure bug7992_1()
+begin
+declare i int;
+select max(s1)+1 into i from t3;
+end|
+create procedure bug7992_2()
+insert into t3 (s1) select max(t4.s1)+1 from t3 as t4|
+call bug7992_1()|
+call bug7992_1()|
+call bug7992_2()|
+call bug7992_2()|
+drop procedure bug7992_1|
+drop procedure bug7992_2|
+drop table t3|
+create table t3 ( userid bigint(20) not null default 0 )|
+drop procedure if exists bug8116|
+create procedure bug8116(in _userid int)
+select * from t3 where userid = _userid|
+call bug8116(42)|
+userid
+call bug8116(42)|
+userid
+drop procedure bug8116|
+drop table t3|
+drop procedure if exists bug6857|
+create procedure bug6857(counter int)
+begin
+declare t0, t1 int;
+declare plus bool default 0;
+set t0 = current_time();
+while counter > 0 do
+set counter = counter - 1;
+end while;
+set t1 = current_time();
+if t1 > t0 then
+set plus = 1;
+end if;
+select plus;
+end|
+drop procedure bug6857|
+drop procedure if exists bug8757|
+create procedure bug8757()
+begin
+declare x int;
+declare c1 cursor for select data from t1 limit 1;
+begin
+declare y int;
+declare c2 cursor for select i from t2 limit 1;
+open c2;
+fetch c2 into y;
+close c2;
+select 2,y;
+end;
+open c1;
+fetch c1 into x;
+close c1;
+select 1,x;
+end|
+delete from t1|
+delete from t2|
+insert into t1 values ("x", 1)|
+insert into t2 values ("y", 2, 0.0)|
+call bug8757()|
+2 y
+2 2
+1 x
+1 1
+delete from t1|
+delete from t2|
+drop procedure bug8757|
+drop procedure if exists bug8762|
+drop procedure if exists bug8762; create procedure bug8762() begin end|
+drop procedure if exists bug8762; create procedure bug8762() begin end|
+drop procedure bug8762|
+drop function if exists bug5240|
+create function bug5240 () returns int
+begin
+declare x int;
+declare c cursor for select data from t1 limit 1;
+open c;
+fetch c into x;
+close c;
+return x;
+end|
+delete from t1|
+insert into t1 values ("answer", 42)|
+select id, bug5240() from t1|
+id bug5240()
+answer 42
+drop function bug5240|
+drop procedure if exists p1|
+create table t3(id int)|
+insert into t3 values(1)|
+create procedure bug7992()
+begin
+declare i int;
+select max(id)+1 into i from t3;
+end|
+call bug7992()|
+call bug7992()|
+drop procedure bug7992|
+drop table t3|
+create table t3 (
+lpitnumber int(11) default null,
+lrecordtype int(11) default null
+)|
+create table t4 (
+lbsiid int(11) not null default '0',
+ltradingmodeid int(11) not null default '0',
+ltradingareaid int(11) not null default '0',
+csellingprice decimal(19,4) default null,
+primary key (lbsiid,ltradingmodeid,ltradingareaid)
+)|
+create table t5 (
+lbsiid int(11) not null default '0',
+ltradingareaid int(11) not null default '0',
+primary key (lbsiid,ltradingareaid)
+)|
+drop procedure if exists bug8849|
+create procedure bug8849()
+begin
+insert into t5
+(
+t5.lbsiid,
+t5.ltradingareaid
+)
+select distinct t3.lpitnumber, t4.ltradingareaid
+from
+t4 join t3 on
+t3.lpitnumber = t4.lbsiid
+and t3.lrecordtype = 1
+left join t4 as price01 on
+price01.lbsiid = t4.lbsiid and
+price01.ltradingmodeid = 1 and
+t4.ltradingareaid = price01.ltradingareaid;
+end|
+call bug8849()|
+call bug8849()|
+call bug8849()|
+drop procedure bug8849|
+drop tables t3,t4,t5|
+drop procedure if exists bug8937|
+create procedure bug8937()
+begin
+declare s,x,y,z int;
+declare a float;
+select sum(data),avg(data),min(data),max(data) into s,x,y,z from t1;
+select s,x,y,z;
+select avg(data) into a from t1;
+select a;
+end|
+delete from t1|
+insert into t1 (data) values (1), (2), (3), (4), (6)|
+call bug8937()|
+s x y z
+16 3 1 6
+a
+3.2
+drop procedure bug8937|
+delete from t1|
+drop procedure if exists bug6900|
+drop procedure if exists bug9074|
+drop procedure if exists bug6900_9074|
+create table t3 (w char unique, x char)|
+insert into t3 values ('a', 'b')|
+create procedure bug6900()
+begin
+declare exit handler for sqlexception select '1';
+begin
+declare exit handler for sqlexception select '2';
+insert into t3 values ('x', 'y', 'z');
+end;
+end|
+create procedure bug9074()
+begin
+declare x1, x2, x3, x4, x5, x6 int default 0;
+begin
+declare continue handler for sqlstate '23000' set x5 = 1;
+insert into t3 values ('a', 'b');
+set x6 = 1;
+end;
+begin1_label:
+begin
+declare continue handler for sqlstate '23000' set x1 = 1;
+insert into t3 values ('a', 'b');
+set x2 = 1;
+begin2_label:
+begin
+declare exit handler for sqlstate '23000' set x3 = 1;
+set x4= 1;
+insert into t3 values ('a','b');
+set x4= 0;
+end begin2_label;
+end begin1_label;
+select x1, x2, x3, x4, x5, x6;
+end|
+create procedure bug6900_9074(z int)
+begin
+declare exit handler for sqlstate '23000' select '23000';
+begin
+declare exit handler for sqlexception select 'sqlexception';
+if z = 1 then
+insert into t3 values ('a', 'b');
+else
+insert into t3 values ('x', 'y', 'z');
+end if;
+end;
+end|
+call bug6900()|
+2
+2
+call bug9074()|
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+call bug6900_9074(0)|
+sqlexception
+sqlexception
+call bug6900_9074(1)|
+23000
+23000
+drop procedure bug6900|
+drop procedure bug9074|
+drop procedure bug6900_9074|
+drop table t3|
+drop procedure if exists avg|
+create procedure avg ()
+begin
+end|
+call avg ()|
+drop procedure avg|
+drop procedure if exists bug6129|
+set @old_mode= @@sql_mode;
+set @@sql_mode= "ERROR_FOR_DIVISION_BY_ZERO";
+create procedure bug6129()
+select @@sql_mode|
+call bug6129()|
+@@sql_mode
+ERROR_FOR_DIVISION_BY_ZERO
+set @@sql_mode= "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO"|
+call bug6129()|
+@@sql_mode
+ERROR_FOR_DIVISION_BY_ZERO
+set @@sql_mode= "NO_ZERO_IN_DATE"|
+call bug6129()|
+@@sql_mode
+ERROR_FOR_DIVISION_BY_ZERO
+set @@sql_mode=@old_mode;
+drop procedure bug6129|
+drop procedure if exists bug9856|
+create procedure bug9856()
+begin
+declare v int;
+declare c cursor for select data from t1;
+declare exit handler for sqlexception, not found select '16';
+open c;
+fetch c into v;
+select v;
+end|
+delete from t1|
+call bug9856()|
+16
+16
+call bug9856()|
+16
+16
+drop procedure bug9856|
+drop procedure if exists bug9674_1|
+drop procedure if exists bug9674_2|
+create procedure bug9674_1(out arg int)
+begin
+declare temp_in1 int default 0;
+declare temp_fl1 int default 0;
+set temp_in1 = 100;
+set temp_fl1 = temp_in1/10;
+set arg = temp_fl1;
+end|
+create procedure bug9674_2()
+begin
+declare v int default 100;
+select v/10;
+end|
+call bug9674_1(@sptmp)|
+call bug9674_1(@sptmp)|
+select @sptmp|
+@sptmp
+10
+call bug9674_2()|
+v/10
+10.0000
+call bug9674_2()|
+v/10
+10.0000
+drop procedure bug9674_1|
+drop procedure bug9674_2|
+drop procedure if exists bug9598_1|
+drop procedure if exists bug9598_2|
+create procedure bug9598_1(in var_1 char(16),
+out var_2 integer, out var_3 integer)
+begin
+set var_2 = 50;
+set var_3 = 60;
+end|
+create procedure bug9598_2(in v1 char(16),
+in v2 integer,
+in v3 integer,
+in v4 integer,
+in v5 integer)
+begin
+select v1,v2,v3,v4,v5;
+call bug9598_1(v1,@tmp1,@tmp2);
+select v1,v2,v3,v4,v5;
+end|
+call bug9598_2('Test',2,3,4,5)|
+v1 v2 v3 v4 v5
+Test 2 3 4 5
+v1 v2 v3 v4 v5
+Test 2 3 4 5
+select @tmp1, @tmp2|
+@tmp1 @tmp2
+50 60
+drop procedure bug9598_1|
+drop procedure bug9598_2|
+drop procedure if exists bug9902|
+create function bug9902() returns int(11)
+begin
+set @x = @x + 1;
+return @x;
+end|
+set @qcs1 = @@query_cache_size|
+set global query_cache_size = 100000|
+set @x = 1|
+insert into t1 values ("qc", 42)|
+select bug9902() from t1|
+bug9902()
+2
+select bug9902() from t1|
+bug9902()
+3
+select @x|
+@x
+3
+set global query_cache_size = @qcs1|
+delete from t1|
+drop function bug9902|
+drop function if exists bug9102|
+create function bug9102() returns blob return 'a'|
+select bug9102()|
+bug9102()
+a
+drop function bug9102|
+drop function if exists bug7648|
+create function bug7648() returns bit(8) return 'a'|
+select bug7648()|
+bug7648()
+a
+drop function bug7648|
+drop function if exists bug9775|
+create function bug9775(v1 char(1)) returns enum('a','b') return v1|
+select bug9775('a'),bug9775('b'),bug9775('c')|
+bug9775('a') bug9775('b') bug9775('c')
+a b
+Warnings:
+Warning 1265 Data truncated for column 'bug9775('c')' at row 1
+drop function bug9775|
+create function bug9775(v1 int) returns enum('a','b') return v1|
+select bug9775(1),bug9775(2),bug9775(3)|
+bug9775(1) bug9775(2) bug9775(3)
+a b
+Warnings:
+Warning 1265 Data truncated for column 'bug9775(3)' at row 1
+drop function bug9775|
+create function bug9775(v1 char(1)) returns set('a','b') return v1|
+select bug9775('a'),bug9775('b'),bug9775('a,b'),bug9775('c')|
+bug9775('a') bug9775('b') bug9775('a,b') bug9775('c')
+a b a
+Warnings:
+Warning 1265 Data truncated for column 'v1' at row 1
+Warning 1265 Data truncated for column 'bug9775('c')' at row 1
+drop function bug9775|
+create function bug9775(v1 int) returns set('a','b') return v1|
+select bug9775(1),bug9775(2),bug9775(3),bug9775(4)|
+bug9775(1) bug9775(2) bug9775(3) bug9775(4)
+a b a,b
+Warnings:
+Warning 1265 Data truncated for column 'bug9775(4)' at row 1
+drop function bug9775|
+drop function if exists bug8861|
+create function bug8861(v1 int) returns year return v1|
+select bug8861(05)|
+bug8861(05)
+2005
+set @x = bug8861(05)|
+select @x|
+@x
+2005
+drop function bug8861|
+drop procedure if exists bug9004_1|
+drop procedure if exists bug9004_2|
+create procedure bug9004_1(x char(16))
+begin
+insert into t1 values (x, 42);
+insert into t1 values (x, 17);
+end|
+create procedure bug9004_2(x char(16))
+call bug9004_1(x)|
+call bug9004_1('12345678901234567')|
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+call bug9004_2('12345678901234567890')|
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+delete from t1|
+drop procedure bug9004_1|
+drop procedure bug9004_2|
+drop procedure if exists bug7293|
+insert into t1 values ('secret', 0)|
+create procedure bug7293(p1 varchar(100))
+begin
+if exists (select id from t1 where soundex(p1)=soundex(id)) then
+select 'yes';
+end if;
+end;|
+call bug7293('secret')|
+yes
+yes
+call bug7293 ('secrete')|
+yes
+yes
+drop procedure bug7293|
+delete from t1|
+drop procedure if exists bug9841|
+drop view if exists v1|
+create view v1 as select * from t1, t2 where id = s|
+create procedure bug9841 ()
+update v1 set data = 10|
+call bug9841()|
+drop view v1|
+drop procedure bug9841|
+drop procedure if exists bug5963|
+create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
+create table t3 (s1 int)|
+insert into t3 values (5)|
+call bug5963_1()|
+v
+5
+call bug5963_1()|
+v
+5
+drop procedure bug5963_1|
+drop table t3|
+create procedure bug5963_2 (cfk_value int)
+begin
+if cfk_value in (select cpk from t3) then
+set @x = 5;
+end if;
+end;
+|
+create table t3 (cpk int)|
+insert into t3 values (1)|
+call bug5963_2(1)|
+call bug5963_2(1)|
+drop procedure bug5963_2|
+drop table t3|
+drop function if exists bug9559|
+create function bug9559()
+returns int
+begin
+set @y = -6/2;
+return @y;
+end|
+select bug9559()|
+bug9559()
+-3
+drop function bug9559|
+drop procedure if exists bug10961|
+create procedure bug10961()
+begin
+declare v char;
+declare x int;
+declare c cursor for select * from dual;
+declare continue handler for sqlexception select x;
+set x = 1;
+open c;
+set x = 2;
+fetch c into v;
+set x = 3;
+close c;
+end|
+call bug10961()|
+x
+1
+x
+2
+x
+3
+call bug10961()|
+x
+1
+x
+2
+x
+3
+drop procedure bug10961|
+DROP PROCEDURE IF EXISTS bug6866|
+DROP VIEW IF EXISTS tv|
+Warnings:
+Note 1051 Unknown table 'test.tv'
+DROP TABLE IF EXISTS tt1,tt2,tt3|
+Warnings:
+Note 1051 Unknown table 'tt1'
+Note 1051 Unknown table 'tt2'
+Note 1051 Unknown table 'tt3'
+CREATE TABLE tt1 (a1 int, a2 int, a3 int, data varchar(10))|
+CREATE TABLE tt2 (a2 int, data2 varchar(10))|
+CREATE TABLE tt3 (a3 int, data3 varchar(10))|
+INSERT INTO tt1 VALUES (1, 1, 4, 'xx')|
+INSERT INTO tt2 VALUES (1, 'a')|
+INSERT INTO tt2 VALUES (2, 'b')|
+INSERT INTO tt2 VALUES (3, 'c')|
+INSERT INTO tt3 VALUES (4, 'd')|
+INSERT INTO tt3 VALUES (5, 'e')|
+INSERT INTO tt3 VALUES (6, 'f')|
+CREATE VIEW tv AS
+SELECT tt1.*, tt2.data2, tt3.data3
+FROM tt1 INNER JOIN tt2 ON tt1.a2 = tt2.a2
+LEFT JOIN tt3 ON tt1.a3 = tt3.a3
+ORDER BY tt1.a1, tt2.a2, tt3.a3|
+CREATE PROCEDURE bug6866 (_a1 int)
+BEGIN
+SELECT * FROM tv WHERE a1 = _a1;
+END|
+CALL bug6866(1)|
+a1 a2 a3 data data2 data3
+1 1 4 xx a d
+CALL bug6866(1)|
+a1 a2 a3 data data2 data3
+1 1 4 xx a d
+CALL bug6866(1)|
+a1 a2 a3 data data2 data3
+1 1 4 xx a d
+DROP PROCEDURE bug6866;
+DROP VIEW tv|
+DROP TABLE tt1, tt2, tt3|
+DROP PROCEDURE IF EXISTS bug10136|
+create table t3 ( name char(5) not null primary key, val float not null)|
+insert into t3 values ('aaaaa', 1), ('bbbbb', 2), ('ccccc', 3)|
+create procedure bug10136()
+begin
+declare done int default 3;
+repeat
+select * from t3;
+set done = done - 1;
+until done <= 0 end repeat;
+end|
+call bug10136()|
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+call bug10136()|
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+call bug10136()|
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+name val
+aaaaa 1
+bbbbb 2
+ccccc 3
+drop procedure bug10136|
+drop table t3|
+drop procedure if exists bug11529|
+create procedure bug11529()
+begin
+declare c cursor for select id, data from t1 where data in (10,13);
+open c;
+begin
+declare vid char(16);
+declare vdata int;
+declare exit handler for not found begin end;
+while true do
+fetch c into vid, vdata;
+end while;
+end;
+close c;
+end|
+insert into t1 values
+('Name1', 10),
+('Name2', 11),
+('Name3', 12),
+('Name4', 13),
+('Name5', 14)|
+call bug11529()|
+call bug11529()|
+delete from t1|
+drop procedure bug11529|
+drop procedure if exists bug6063|
+drop procedure if exists bug7088_1|
+drop procedure if exists bug7088_2|
+drop procedure if exists bug9565_sub|
+drop procedure if exists bug9565|
+create procedure bug9565_sub()
+begin
+select * from t1;
+end|
+create procedure bug9565()
+begin
+insert into t1 values ("one", 1);
+call bug9565_sub();
+end|
+call bug9565()|
+id data
+one 1
+delete from t1|
+drop procedure bug9565_sub|
+drop procedure bug9565|
+drop procedure if exists bug9538|
+create procedure bug9538()
+set @@sort_buffer_size = 1000000|
+set @x = @@sort_buffer_size|
+set @@sort_buffer_size = 2000000|
+select @@sort_buffer_size|
+@@sort_buffer_size
+2000000
+call bug9538()|
+select @@sort_buffer_size|
+@@sort_buffer_size
+1000000
+set @@sort_buffer_size = @x|
+drop procedure bug9538|
+drop procedure if exists bug8692|
+create table t3 (c1 varchar(5), c2 char(5), c3 enum('one','two'), c4 text, c5 blob, c6 char(5), c7 varchar(5))|
+insert into t3 values ('', '', '', '', '', '', NULL)|
+Warnings:
+Warning 1265 Data truncated for column 'c3' at row 1
+create procedure bug8692()
+begin
+declare v1 VARCHAR(10);
+declare v2 VARCHAR(10);
+declare v3 VARCHAR(10);
+declare v4 VARCHAR(10);
+declare v5 VARCHAR(10);
+declare v6 VARCHAR(10);
+declare v7 VARCHAR(10);
+declare c8692 cursor for select c1,c2,c3,c4,c5,c6,c7 from t3;
+open c8692;
+fetch c8692 into v1,v2,v3,v4,v5,v6,v7;
+select v1, v2, v3, v4, v5, v6, v7;
+end|
+call bug8692()|
+v1 v2 v3 v4 v5 v6 v7
+ NULL
+drop procedure bug8692|
+drop table t3|
+drop function if exists bug10055|
+create function bug10055(v char(255)) returns char(255) return lower(v)|
+select t.column_name, bug10055(t.column_name)
+from information_schema.columns as t
+where t.table_schema = 'test' and t.table_name = 't1'|
+column_name bug10055(t.column_name)
+id id
+data data
+drop function bug10055|
+drop procedure if exists bug12297|
+create procedure bug12297(lim int)
+begin
+set @x = 0;
+repeat
+insert into t1(id,data)
+values('aa', @x);
+set @x = @x + 1;
+until @x >= lim
+end repeat;
+end|
+call bug12297(10)|
+drop procedure bug12297|
+drop function if exists f_bug11247|
+drop procedure if exists p_bug11247|
+create function f_bug11247(param int)
+returns int
+return param + 1|
+create procedure p_bug11247(lim int)
+begin
+declare v int default 0;
+while v < lim do
+set v= f_bug11247(v);
+end while;
+end|
+call p_bug11247(10)|
+drop function f_bug11247|
+drop procedure p_bug11247|
+drop procedure if exists bug12168|
+drop table if exists t3, t4|
+create table t3 (a int)|
+insert into t3 values (1),(2),(3),(4)|
+create table t4 (a int)|
+create procedure bug12168(arg1 char(1))
+begin
+declare b, c integer;
+if arg1 = 'a' then
+begin
+declare c1 cursor for select a from t3 where a % 2;
+declare continue handler for not found set b = 1;
+set b = 0;
+open c1;
+c1_repeat: repeat
+fetch c1 into c;
+if (b = 1) then
+leave c1_repeat;
+end if;
+insert into t4 values (c);
+until b = 1
+end repeat;
+end;
+end if;
+if arg1 = 'b' then
+begin
+declare c2 cursor for select a from t3 where not a % 2;
+declare continue handler for not found set b = 1;
+set b = 0;
+open c2;
+c2_repeat: repeat
+fetch c2 into c;
+if (b = 1) then
+leave c2_repeat;
+end if;
+insert into t4 values (c);
+until b = 1
+end repeat;
+end;
+end if;
+end|
+call bug12168('a')|
+select * from t4|
+a
+1
+3
+truncate t4|
+call bug12168('b')|
+select * from t4|
+a
+2
+4
+truncate t4|
+call bug12168('a')|
+select * from t4|
+a
+1
+3
+truncate t4|
+call bug12168('b')|
+select * from t4|
+a
+2
+4
+truncate t4|
+drop table t3, t4|
+drop procedure if exists bug12168|
+drop table if exists t3|
+drop procedure if exists bug11333|
+create table t3 (c1 char(128))|
+insert into t3 values
+('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')|
+create procedure bug11333(i int)
+begin
+declare tmp varchar(128);
+set @x = 0;
+repeat
+select c1 into tmp from t3
+where c1 = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
+set @x = @x + 1;
+until @x >= i
+end repeat;
+end|
+call bug11333(10)|
+drop procedure bug11333|
+drop table t3|
+drop function if exists bug9048|
+create function bug9048(f1 char binary) returns char binary
+begin
+set f1= concat( 'hello', f1 );
+return f1;
+end|
+drop function bug9048|
+drop procedure if exists bug12849_1|
+create procedure bug12849_1(inout x char) select x into x|
+set @var='a'|
+call bug12849_1(@var)|
+select @var|
+@var
+a
+drop procedure bug12849_1|
+drop procedure if exists bug12849_2|
+create procedure bug12849_2(inout foo varchar(15))
+begin
+select concat(foo, foo) INTO foo;
+end|
+set @var='abcd'|
+call bug12849_2(@var)|
+select @var|
+@var
+abcdabcd
+drop procedure bug12849_2|
+drop procedure if exists bug131333|
+drop function if exists bug131333|
+create procedure bug131333()
+begin
+begin
+declare a int;
+select a;
+set a = 1;
+select a;
+end;
+begin
+declare b int;
+select b;
+end;
+end|
+create function bug131333()
+returns int
+begin
+begin
+declare a int;
+set a = 1;
+end;
+begin
+declare b int;
+return b;
+end;
+end|
+call bug131333()|
+a
+NULL
+a
+1
+b
+NULL
+select bug131333()|
+bug131333()
+NULL
+drop procedure bug131333|
+drop function bug131333|
+drop function if exists bug12379|
+drop procedure if exists bug12379_1|
+drop procedure if exists bug12379_2|
+drop procedure if exists bug12379_3|
+drop table if exists t3|
+create table t3 (c1 char(1) primary key not null)|
+create function bug12379()
+returns integer
+begin
+insert into t3 values('X');
+insert into t3 values('X');
+return 0;
+end|
+create procedure bug12379_1()
+begin
+declare exit handler for sqlexception select 42;
+select bug12379();
+END|
+create procedure bug12379_2()
+begin
+declare exit handler for sqlexception begin end;
+select bug12379();
+end|
+create procedure bug12379_3()
+begin
+select bug12379();
+end|
+select bug12379()|
+ERROR 23000: Duplicate entry 'X' for key 1
+select 1|
+1
+1
+call bug12379_1()|
+bug12379()
+42
+42
+select 2|
+2
+2
+call bug12379_2()|
+bug12379()
+select 3|
+3
+3
+call bug12379_3()|
+ERROR 23000: Duplicate entry 'X' for key 1
+select 4|
+4
+4
+drop function bug12379|
+drop procedure bug12379_1|
+drop procedure bug12379_2|
+drop procedure bug12379_3|
+drop table t3|
+drop procedure if exists bug13124|
+create procedure bug13124()
+begin
+declare y integer;
+set @x=y;
+end|
+call bug13124()|
+drop procedure bug13124|
+drop procedure if exists bug12979_1|
+create procedure bug12979_1(inout d decimal(5)) set d = d / 2|
+set @bug12979_user_var = NULL|
+call bug12979_1(@bug12979_user_var)|
+drop procedure bug12979_1|
+drop procedure if exists bug12979_2|
+create procedure bug12979_2()
+begin
+declare internal_var decimal(5);
+set internal_var= internal_var / 2;
+select internal_var;
+end|
+call bug12979_2()|
+internal_var
+NULL
+drop procedure bug12979_2|
+drop table if exists t3|
+drop procedure if exists bug6127|
+create table t3 (s1 int unique)|
+set @sm=@@sql_mode|
+set sql_mode='traditional'|
+create procedure bug6127()
+begin
+declare continue handler for sqlstate '23000'
+ begin
+declare continue handler for sqlstate '22003'
+ insert into t3 values (0);
+insert into t3 values (1000000000000000);
+end;
+insert into t3 values (1);
+insert into t3 values (1);
+end|
+call bug6127()|
+select * from t3|
+s1
+0
+1
+call bug6127()|
+ERROR 23000: Duplicate entry '0' for key 1
+select * from t3|
+s1
+0
+1
+set sql_mode=@sm|
+drop table t3|
+drop procedure bug6127|
+drop procedure if exists bug12589_1|
+drop procedure if exists bug12589_2|
+drop procedure if exists bug12589_3|
+create procedure bug12589_1()
+begin
+declare spv1 decimal(3,3);
+set spv1= 123.456;
+set spv1 = 'test';
+create temporary table tm1 as select spv1;
+show create table tm1;
+drop temporary table tm1;
+end|
+create procedure bug12589_2()
+begin
+declare spv1 decimal(6,3);
+set spv1= 123.456;
+create temporary table tm1 as select spv1;
+show create table tm1;
+drop temporary table tm1;
+end|
+create procedure bug12589_3()
+begin
+declare spv1 decimal(6,3);
+set spv1= -123.456;
+create temporary table tm1 as select spv1;
+show create table tm1;
+drop temporary table tm1;
+end|
+call bug12589_1()|
+Table Create Table
+tm1 CREATE TEMPORARY TABLE `tm1` (
+ `spv1` decimal(3,3) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+Warnings:
+Warning 1264 Out of range value adjusted for column 'spv1' at row 1
+Warning 1366 Incorrect decimal value: 'test' for column 'spv1' at row 1
+call bug12589_2()|
+Table Create Table
+tm1 CREATE TEMPORARY TABLE `tm1` (
+ `spv1` decimal(6,3) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+call bug12589_3()|
+Table Create Table
+tm1 CREATE TEMPORARY TABLE `tm1` (
+ `spv1` decimal(6,3) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop procedure bug12589_1|
+drop procedure bug12589_2|
+drop procedure bug12589_3|
+drop table if exists t3|
+drop procedure if exists bug7049_1|
+drop procedure if exists bug7049_2|
+drop procedure if exists bug7049_3|
+drop procedure if exists bug7049_4|
+drop function if exists bug7049_1|
+drop function if exists bug7049_2|
+create table t3 ( x int unique )|
+create procedure bug7049_1()
+begin
+insert into t3 values (42);
+insert into t3 values (42);
+end|
+create procedure bug7049_2()
+begin
+declare exit handler for sqlexception
+select 'Caught it' as 'Result';
+call bug7049_1();
+select 'Missed it' as 'Result';
+end|
+create procedure bug7049_3()
+call bug7049_1()|
+create procedure bug7049_4()
+begin
+declare exit handler for sqlexception
+select 'Caught it' as 'Result';
+call bug7049_3();
+select 'Missed it' as 'Result';
+end|
+create function bug7049_1()
+returns int
+begin
+insert into t3 values (42);
+insert into t3 values (42);
+return 42;
+end|
+create function bug7049_2()
+returns int
+begin
+declare x int default 0;
+declare continue handler for sqlexception
+set x = 1;
+set x = bug7049_1();
+return x;
+end|
+call bug7049_2()|
+Result
+Caught it
+select * from t3|
+x
+42
+delete from t3|
+call bug7049_4()|
+Result
+Caught it
+select * from t3|
+x
+42
+select bug7049_2()|
+bug7049_2()
+1
+drop table t3|
+drop procedure bug7049_1|
+drop procedure bug7049_2|
+drop procedure bug7049_3|
+drop procedure bug7049_4|
+drop function bug7049_1|
+drop function bug7049_2|
+drop function if exists bug13941|
+drop procedure if exists bug13941|
+create function bug13941(p_input_str text)
+returns text
+begin
+declare p_output_str text;
+set p_output_str = p_input_str;
+set p_output_str = replace(p_output_str, 'xyzzy', 'plugh');
+set p_output_str = replace(p_output_str, 'test', 'prova');
+set p_output_str = replace(p_output_str, 'this', 'questo');
+set p_output_str = replace(p_output_str, ' a ', 'una ');
+set p_output_str = replace(p_output_str, 'is', '');
+return p_output_str;
+end|
+create procedure bug13941(out sout varchar(128))
+begin
+set sout = 'Local';
+set sout = ifnull(sout, 'DEF');
+end|
+select bug13941('this is a test')|
+bug13941('this is a test')
+questo una prova
+call bug13941(@a)|
+select @a|
+@a
+Local
+drop function bug13941|
+drop procedure bug13941|
+DROP PROCEDURE IF EXISTS bug13095;
+DROP TABLE IF EXISTS bug13095_t1;
+DROP VIEW IF EXISTS bug13095_v1;
+CREATE PROCEDURE bug13095(tbl_name varchar(32))
+BEGIN
+SET @str =
+CONCAT("CREATE TABLE ", tbl_name, "(stuff char(15))");
+SELECT @str;
+PREPARE stmt FROM @str;
+EXECUTE stmt;
+SET @str =
+CONCAT("INSERT INTO ", tbl_name, " VALUES('row1'),('row2'),('row3')" );
+SELECT @str;
+PREPARE stmt FROM @str;
+EXECUTE stmt;
+SET @str =
+CONCAT("CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM ", tbl_name);
+SELECT @str;
+PREPARE stmt FROM @str;
+EXECUTE stmt;
+SELECT * FROM bug13095_v1;
+SET @str =
+"DROP VIEW bug13095_v1";
+SELECT @str;
+PREPARE stmt FROM @str;
+EXECUTE stmt;
+END|
+CALL bug13095('bug13095_t1');
+@str
+CREATE TABLE bug13095_t1(stuff char(15))
+@str
+INSERT INTO bug13095_t1 VALUES('row1'),('row2'),('row3')
+@str
+CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM bug13095_t1
+c1
+row1
+row2
+row3
+@str
+DROP VIEW bug13095_v1
+DROP PROCEDURE IF EXISTS bug13095;
+DROP VIEW IF EXISTS bug13095_v1;
+DROP TABLE IF EXISTS bug13095_t1;
+drop function if exists bug14723|
+drop procedure if exists bug14723|
+/*!50003 create function bug14723()
+returns bigint(20)
+main_loop: begin
+return 42;
+end */;;
+show create function bug14723;;
+Function sql_mode Create Function
+bug14723 CREATE DEFINER=`root`@`localhost` FUNCTION `bug14723`() RETURNS bigint(20)
+main_loop: begin
+return 42;
+end
+select bug14723();;
+bug14723()
+42
+/*!50003 create procedure bug14723()
+main_loop: begin
+select 42;
+end */;;
+show create procedure bug14723;;
+Procedure sql_mode Create Procedure
+bug14723 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug14723`()
+main_loop: begin
+select 42;
+end
+call bug14723();;
+42
+42
+drop function bug14723|
+drop procedure bug14723|
+create procedure bug14845()
+begin
+declare a char(255);
+declare done int default 0;
+declare c cursor for select count(*) from t1 where 1 = 0;
+declare continue handler for sqlstate '02000' set done = 1;
+open c;
+repeat
+fetch c into a;
+if not done then
+select a;
+end if;
+until done end repeat;
+close c;
+end|
+call bug14845()|
+a
+0
+drop procedure bug14845|
+drop procedure if exists bug13549_1|
+drop procedure if exists bug13549_2|
+CREATE PROCEDURE `bug13549_2`()
+begin
+call bug13549_1();
+end|
+CREATE PROCEDURE `bug13549_1`()
+begin
+declare done int default 0;
+set done= not done;
+end|
+CALL bug13549_2()|
+drop procedure bug13549_2|
+drop procedure bug13549_1|
+drop function if exists bug10100f|
+drop procedure if exists bug10100p|
+drop procedure if exists bug10100t|
+drop procedure if exists bug10100pt|
+drop procedure if exists bug10100pv|
+drop procedure if exists bug10100pd|
+drop procedure if exists bug10100pc|
+create function bug10100f(prm int) returns int
+begin
+if prm > 1 then
+return prm * bug10100f(prm - 1);
+end if;
+return 1;
+end|
+create procedure bug10100p(prm int, inout res int)
+begin
+set res = res * prm;
+if prm > 1 then
+call bug10100p(prm - 1, res);
+end if;
+end|
+create procedure bug10100t(prm int)
+begin
+declare res int;
+set res = 1;
+call bug10100p(prm, res);
+select res;
+end|
+create table t3 (a int)|
+insert into t3 values (0)|
+create view v1 as select a from t3;
+create procedure bug10100pt(level int, lim int)
+begin
+if level < lim then
+update t3 set a=level;
+FLUSH TABLES;
+call bug10100pt(level+1, lim);
+else
+select * from t3;
+end if;
+end|
+create procedure bug10100pv(level int, lim int)
+begin
+if level < lim then
+update v1 set a=level;
+FLUSH TABLES;
+call bug10100pv(level+1, lim);
+else
+select * from v1;
+end if;
+end|
+prepare stmt2 from "select * from t3;";
+create procedure bug10100pd(level int, lim int)
+begin
+if level < lim then
+select level;
+prepare stmt1 from "update t3 set a=a+2";
+execute stmt1;
+FLUSH TABLES;
+execute stmt1;
+FLUSH TABLES;
+execute stmt1;
+FLUSH TABLES;
+deallocate prepare stmt1;
+execute stmt2;
+select * from t3;
+call bug10100pd(level+1, lim);
+else
+execute stmt2;
+end if;
+end|
+create procedure bug10100pc(level int, lim int)
+begin
+declare lv int;
+declare c cursor for select a from t3;
+open c;
+if level < lim then
+select level;
+fetch c into lv;
+select lv;
+update t3 set a=level+lv;
+FLUSH TABLES;
+call bug10100pc(level+1, lim);
+else
+select * from t3;
+end if;
+close c;
+end|
+set @@max_sp_recursion_depth=4|
+select @@max_sp_recursion_depth|
+@@max_sp_recursion_depth
+4
+select bug10100f(3)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+select bug10100f(6)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+call bug10100t(5)|
+res
+120
+call bug10100pt(1,5)|
+a
+4
+call bug10100pv(1,5)|
+a
+4
+update t3 set a=1|
+call bug10100pd(1,5)|
+level
+1
+a
+7
+a
+7
+level
+2
+a
+13
+a
+13
+level
+3
+a
+19
+a
+19
+level
+4
+a
+25
+a
+25
+a
+25
+select * from t3|
+a
+25
+update t3 set a=1|
+call bug10100pc(1,5)|
+level
+1
+lv
+1
+level
+2
+lv
+2
+level
+3
+lv
+4
+level
+4
+lv
+7
+a
+11
+select * from t3|
+a
+11
+set @@max_sp_recursion_depth=0|
+select @@max_sp_recursion_depth|
+@@max_sp_recursion_depth
+0
+select bug10100f(5)|
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+call bug10100t(5)|
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine bug10100p
+deallocate prepare stmt2|
+drop function bug10100f|
+drop procedure bug10100p|
+drop procedure bug10100t|
+drop procedure bug10100pt|
+drop procedure bug10100pv|
+drop procedure bug10100pd|
+drop procedure bug10100pc|
+drop view v1|
+drop procedure if exists bug13729|
+drop table if exists t3|
+create table t3 (s1 int, primary key (s1))|
+insert into t3 values (1),(2)|
+create procedure bug13729()
+begin
+declare continue handler for sqlexception select 55;
+update t3 set s1 = 1;
+end|
+call bug13729()|
+55
+55
+select * from t3|
+s1
+1
+2
+drop procedure bug13729|
+drop table t3|
+drop procedure if exists bug14643_1|
+drop procedure if exists bug14643_2|
+create procedure bug14643_1()
+begin
+declare continue handler for sqlexception select 'boo' as 'Handler';
+begin
+declare v int default undefined_var;
+if v = 1 then
+select 1;
+else
+select v, isnull(v);
+end if;
+end;
+end|
+create procedure bug14643_2()
+begin
+declare continue handler for sqlexception select 'boo' as 'Handler';
+case undefined_var
+when 1 then
+select 1;
+else
+select 2;
+end case;
+select undefined_var;
+end|
+call bug14643_1()|
+Handler
+boo
+v isnull(v)
+NULL 1
+call bug14643_2()|
+Handler
+boo
+Handler
+boo
+drop procedure bug14643_1|
+drop procedure bug14643_2|
+drop procedure if exists bug14304|
+drop table if exists t3, t4|
+create table t3(a int primary key auto_increment)|
+create table t4(a int primary key auto_increment)|
+create procedure bug14304()
+begin
+insert into t3 set a=null;
+insert into t4 set a=null;
+insert into t4 set a=null;
+insert into t4 set a=null;
+insert into t4 set a=null;
+insert into t4 set a=null;
+insert into t4 select null as a;
+insert into t3 set a=null;
+insert into t3 set a=null;
+select * from t3;
+end|
+call bug14304()|
+a
+1
+2
+3
+drop procedure bug14304|
+drop table t3, t4|
+drop procedure if exists bug14376|
+create procedure bug14376()
+begin
+declare x int default x;
+end|
+call bug14376()|
+ERROR 42S22: Unknown column 'x' in 'field list'
+drop procedure bug14376|
+create procedure bug14376()
+begin
+declare x int default 42;
+begin
+declare x int default x;
+select x;
+end;
+end|
+call bug14376()|
+x
+42
+drop procedure bug14376|
+create procedure bug14376(x int)
+begin
+declare x int default x;
+select x;
+end|
+call bug14376(4711)|
+x
+4711
+drop procedure bug14376|
+drop procedure if exists bug5967|
+drop table if exists t3|
+create table t3 (a varchar(255))|
+insert into t3 (a) values ("a - table column")|
+create procedure bug5967(a varchar(255))
+begin
+declare i varchar(255);
+declare c cursor for select a from t3;
+select a;
+select a from t3 into i;
+select i as 'Parameter takes precedence over table column'; open c;
+fetch c into i;
+close c;
+select i as 'Parameter takes precedence over table column in cursors';
+begin
+declare a varchar(255) default 'a - local variable';
+declare c1 cursor for select a from t3;
+select a as 'A local variable takes precedence over parameter';
+open c1;
+fetch c1 into i;
+close c1;
+select i as 'A local variable takes precedence over parameter in cursors';
+begin
+declare a varchar(255) default 'a - local variable in a nested compound statement';
+declare c2 cursor for select a from t3;
+select a as 'A local variable in a nested compound statement takes precedence over a local variable in the outer statement';
+select a from t3 into i;
+select i as 'A local variable in a nested compound statement takes precedence over table column';
+open c2;
+fetch c2 into i;
+close c2;
+select i as 'A local variable in a nested compound statement takes precedence over table column in cursors';
+end;
+end;
+end|
+call bug5967("a - stored procedure parameter")|
+a
+a - stored procedure parameter
+Parameter takes precedence over table column
+a - stored procedure parameter
+Parameter takes precedence over table column in cursors
+a - stored procedure parameter
+A local variable takes precedence over parameter
+a - local variable
+A local variable takes precedence over parameter in cursors
+a - local variable
+A local variable in a nested compound statement takes precedence over a local variable in the outer statement
+a - local variable in a nested compound statement
+A local variable in a nested compound statement takes precedence over table column
+a - local variable in a nested compound statement
+A local variable in a nested compound statement takes precedence over table column in cursors
+a - local variable in a nested compound statement
+drop procedure bug5967|
+drop procedure if exists bug13012|
+create procedure bug13012()
+BEGIN
+REPAIR TABLE t1;
+BACKUP TABLE t1 to '../tmp';
+DROP TABLE t1;
+RESTORE TABLE t1 FROM '../tmp';
+END|
+call bug13012()|
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+Table Op Msg_type Msg_text
+test.t1 backup status OK
+Table Op Msg_type Msg_text
+test.t1 restore status OK
+drop procedure bug13012|
+create view v1 as select * from t1|
+create procedure bug13012()
+BEGIN
+REPAIR TABLE t1,t2,t3,v1;
+OPTIMIZE TABLE t1,t2,t3,v1;
+ANALYZE TABLE t1,t2,t3,v1;
+END|
+call bug13012()|
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t2 repair status OK
+test.t3 repair status OK
+test.v1 repair Error 'test.v1' is not BASE TABLE
+test.v1 repair error Corrupt
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+test.t2 optimize status OK
+test.t3 optimize status OK
+test.v1 optimize Error 'test.v1' is not BASE TABLE
+test.v1 optimize error Corrupt
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+test.t2 analyze status Table is already up to date
+test.t3 analyze status Table is already up to date
+test.v1 analyze Error 'test.v1' is not BASE TABLE
+test.v1 analyze error Corrupt
+call bug13012()|
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t2 repair status OK
+test.t3 repair status OK
+test.v1 repair Error 'test.v1' is not BASE TABLE
+test.v1 repair error Corrupt
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+test.t2 optimize status OK
+test.t3 optimize status OK
+test.v1 optimize Error 'test.v1' is not BASE TABLE
+test.v1 optimize error Corrupt
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+test.t2 analyze status Table is already up to date
+test.t3 analyze status Table is already up to date
+test.v1 analyze Error 'test.v1' is not BASE TABLE
+test.v1 analyze error Corrupt
+call bug13012()|
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+test.t2 repair status OK
+test.t3 repair status OK
+test.v1 repair Error 'test.v1' is not BASE TABLE
+test.v1 repair error Corrupt
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+test.t2 optimize status OK
+test.t3 optimize status OK
+test.v1 optimize Error 'test.v1' is not BASE TABLE
+test.v1 optimize error Corrupt
+Table Op Msg_type Msg_text
+test.t1 analyze status Table is already up to date
+test.t2 analyze status Table is already up to date
+test.t3 analyze status Table is already up to date
+test.v1 analyze Error 'test.v1' is not BASE TABLE
+test.v1 analyze error Corrupt
+drop procedure bug13012|
+drop view v1;
+select * from t1|
+id data
+aa 0
+aa 1
+aa 2
+aa 3
+aa 4
+aa 5
+aa 6
+aa 7
+aa 8
+aa 9
+drop schema if exists mysqltest1|
+Warnings:
+Note 1008 Can't drop database 'mysqltest1'; database doesn't exist
+drop schema if exists mysqltest2|
+Warnings:
+Note 1008 Can't drop database 'mysqltest2'; database doesn't exist
+drop schema if exists mysqltest3|
+Warnings:
+Note 1008 Can't drop database 'mysqltest3'; database doesn't exist
+create schema mysqltest1|
+create schema mysqltest2|
+create schema mysqltest3|
+use mysqltest3|
+create procedure mysqltest1.p1 (out prequestid varchar(100))
+begin
+call mysqltest2.p2('call mysqltest3.p3(1, 2)');
+end|
+create procedure mysqltest2.p2(in psql text)
+begin
+declare lsql text;
+set @lsql= psql;
+prepare lstatement from @lsql;
+execute lstatement;
+deallocate prepare lstatement;
+end|
+create procedure mysqltest3.p3(in p1 int)
+begin
+select p1;
+end|
+call mysqltest1.p1(@rs)|
+ERROR 42000: Incorrect number of arguments for PROCEDURE mysqltest3.p3; expected 1, got 2
+call mysqltest1.p1(@rs)|
+ERROR 42000: Incorrect number of arguments for PROCEDURE mysqltest3.p3; expected 1, got 2
+call mysqltest1.p1(@rs)|
+ERROR 42000: Incorrect number of arguments for PROCEDURE mysqltest3.p3; expected 1, got 2
+drop schema if exists mysqltest1|
+drop schema if exists mysqltest2|
+drop schema if exists mysqltest3|
+use test|
+drop table if exists t3|
+drop procedure if exists bug15441|
+create table t3 (id int not null primary key, county varchar(25))|
+insert into t3 (id, county) values (1, 'York')|
+create procedure bug15441(c varchar(25))
+begin
+update t3 set id=2, county=values(c);
+end|
+call bug15441('county')|
+ERROR 42S22: Unknown column 'c' in 'field list'
+drop procedure bug15441|
+create procedure bug15441(county varchar(25))
+begin
+declare c varchar(25) default "hello";
+insert into t3 (id, county) values (1, county)
+on duplicate key update county= values(county);
+select * from t3;
+update t3 set id=2, county=values(id);
+select * from t3;
+end|
+call bug15441('Yale')|
+id county
+1 Yale
+id county
+2 NULL
+drop table t3|
+drop procedure bug15441|
+drop procedure if exists bug14498_1|
+drop procedure if exists bug14498_2|
+drop procedure if exists bug14498_3|
+drop procedure if exists bug14498_4|
+drop procedure if exists bug14498_5|
+create procedure bug14498_1()
+begin
+declare continue handler for sqlexception select 'error' as 'Handler';
+if v then
+select 'yes' as 'v';
+else
+select 'no' as 'v';
+end if;
+select 'done' as 'End';
+end|
+create procedure bug14498_2()
+begin
+declare continue handler for sqlexception select 'error' as 'Handler';
+while v do
+select 'yes' as 'v';
+end while;
+select 'done' as 'End';
+end|
+create procedure bug14498_3()
+begin
+declare continue handler for sqlexception select 'error' as 'Handler';
+repeat
+select 'maybe' as 'v';
+until v end repeat;
+select 'done' as 'End';
+end|
+create procedure bug14498_4()
+begin
+declare continue handler for sqlexception select 'error' as 'Handler';
+case v
+when 1 then
+select '1' as 'v';
+when 2 then
+select '2' as 'v';
+else
+select '?' as 'v';
+end case;
+select 'done' as 'End';
+end|
+create procedure bug14498_5()
+begin
+declare continue handler for sqlexception select 'error' as 'Handler';
+case
+when v = 1 then
+select '1' as 'v';
+when v = 2 then
+select '2' as 'v';
+else
+select '?' as 'v';
+end case;
+select 'done' as 'End';
+end|
+call bug14498_1()|
+Handler
+error
+End
+done
+call bug14498_2()|
+Handler
+error
+End
+done
+call bug14498_3()|
+v
+maybe
+Handler
+error
+End
+done
+call bug14498_4()|
+Handler
+error
+End
+done
+call bug14498_5()|
+Handler
+error
+End
+done
+drop procedure bug14498_1|
+drop procedure bug14498_2|
+drop procedure bug14498_3|
+drop procedure bug14498_4|
+drop procedure bug14498_5|
+drop table if exists t3|
+drop procedure if exists bug15231_1|
+drop procedure if exists bug15231_2|
+drop procedure if exists bug15231_3|
+drop procedure if exists bug15231_4|
+create table t3 (id int not null)|
+create procedure bug15231_1()
+begin
+declare xid integer;
+declare xdone integer default 0;
+declare continue handler for not found set xdone = 1;
+set xid=null;
+call bug15231_2(xid);
+select xid, xdone;
+end|
+create procedure bug15231_2(inout ioid integer)
+begin
+select "Before NOT FOUND condition is triggered" as '1';
+select id into ioid from t3 where id=ioid;
+select "After NOT FOUND condtition is triggered" as '2';
+if ioid is null then
+set ioid=1;
+end if;
+end|
+create procedure bug15231_3()
+begin
+declare exit handler for sqlwarning
+select 'Caught it (wrong)' as 'Result';
+call bug15231_4();
+end|
+create procedure bug15231_4()
+begin
+declare x decimal(2,1);
+set x = 'zap';
+select 'Missed it (correct)' as 'Result';
+end|
+call bug15231_1()|
+1
+Before NOT FOUND condition is triggered
+2
+After NOT FOUND condtition is triggered
+xid xdone
+1 0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call bug15231_3()|
+Result
+Missed it (correct)
+Warnings:
+Warning 1366 Incorrect decimal value: 'zap' for column 'x' at row 1
+drop table if exists t3|
+drop procedure if exists bug15231_1|
+drop procedure if exists bug15231_2|
+drop procedure if exists bug15231_3|
+drop procedure if exists bug15231_4|
+drop procedure if exists bug15011|
+create table t3 (c1 int primary key)|
+insert into t3 values (1)|
+create procedure bug15011()
+deterministic
+begin
+declare continue handler for 1062
+select 'Outer' as 'Handler';
+begin
+declare continue handler for 1062
+select 'Inner' as 'Handler';
+insert into t3 values (1);
+end;
+end|
+call bug15011()|
+Handler
+Inner
+drop procedure bug15011|
+drop table t3|
+drop procedure if exists bug17476|
+create table t3 ( d date )|
+insert into t3 values
+( '2005-01-01' ), ( '2005-01-02' ), ( '2005-01-03' ),
+( '2005-01-04' ), ( '2005-02-01' ), ( '2005-02-02' )|
+create procedure bug17476(pDateFormat varchar(10))
+select date_format(t3.d, pDateFormat), count(*)
+from t3
+group by date_format(t3.d, pDateFormat)|
+call bug17476('%Y-%m')|
+date_format(t3.d, pDateFormat) count(*)
+2005-01 4
+2005-02 2
+call bug17476('%Y-%m')|
+date_format(t3.d, pDateFormat) count(*)
+2005-01 4
+2005-02 2
+drop table t3|
+drop procedure bug17476|
+drop table if exists t3|
+drop procedure if exists bug16887|
+create table t3 ( c varchar(1) )|
+insert into t3 values
+(' '),('.'),(';'),(','),('-'),('_'),('('),(')'),('/'),('\\')|
+create procedure bug16887()
+begin
+declare i int default 10;
+again:
+while i > 0 do
+begin
+declare breakchar varchar(1);
+declare done int default 0;
+declare t3_cursor cursor for select c from t3;
+declare continue handler for not found set done = 1;
+set i = i - 1;
+select i;
+if i = 3 then
+iterate again;
+end if;
+open t3_cursor;
+loop
+fetch t3_cursor into breakchar;
+if done = 1 then
+begin
+close t3_cursor;
+iterate again;
+end;
+end if;
+end loop;
+end;
+end while;
+end|
+call bug16887()|
+i
+9
+i
+8
+i
+7
+i
+6
+i
+5
+i
+4
+i
+3
+i
+2
+i
+1
+i
+0
+drop table t3|
+drop procedure bug16887|
+create table t3 (f1 int, f2 varchar(3), primary key(f1)) engine=innodb|
+insert into t3 values (1,'aaa'),(2,'bbb'),(3,'ccc')|
+CREATE FUNCTION bug13575 ( p1 integer )
+returns varchar(3)
+BEGIN
+DECLARE v1 VARCHAR(10) DEFAULT null;
+SELECT f2 INTO v1 FROM t3 WHERE f1 = p1;
+RETURN v1;
+END|
+select distinct f1, bug13575(f1) from t3 order by f1|
+f1 bug13575(f1)
+1 aaa
+2 bbb
+3 ccc
+drop function bug13575;
+drop table t3|
+drop procedure if exists bug16474_1|
+drop procedure if exists bug16474_2|
+delete from t1|
+insert into t1 values ('c', 2), ('b', 3), ('a', 1)|
+create procedure bug16474_1()
+begin
+declare x int;
+select id from t1 order by x;
+end|
+drop procedure if exists bug14945|
+create table t3 (id int not null auto_increment primary key)|
+create procedure bug14945() deterministic truncate t3|
+insert into t3 values (null)|
+call bug14945()|
+insert into t3 values (null)|
+select * from t3|
+id
+1
+drop table t3|
+drop procedure bug14945|
+create procedure bug16474_2(x int)
+select id from t1 order by x|
+call bug16474_1()|
+id
+c
+b
+a
+call bug16474_2(1)|
+id
+c
+b
+a
+call bug16474_2(2)|
+id
+c
+b
+a
+drop procedure bug16474_1|
+drop procedure bug16474_2|
+set @x = 2|
+select * from t1 order by @x|
+id data
+c 2
+b 3
+a 1
+delete from t1|
+drop function if exists bug15728|
+drop table if exists t3|
+create table t3 (
+id int not null auto_increment,
+primary key (id)
+)|
+create function bug15728() returns int(11)
+return last_insert_id()|
+insert into t3 values (0)|
+select last_insert_id()|
+last_insert_id()
+1
+select bug15728()|
+bug15728()
+1
+drop function bug15728|
+drop table t3|
+drop procedure if exists bug18787|
+create procedure bug18787()
+begin
+declare continue handler for sqlexception begin end;
+select no_such_function();
+end|
+call bug18787()|
+drop procedure bug18787|
+create database bug18344_012345678901|
+use bug18344_012345678901|
+create procedure bug18344() begin end|
+create procedure bug18344_2() begin end|
+create database bug18344_0123456789012|
+use bug18344_0123456789012|
+create procedure bug18344() begin end|
+create procedure bug18344_2() begin end|
+use test|
+select schema_name from information_schema.schemata where
+schema_name like 'bug18344%'|
+schema_name
+bug18344_012345678901
+bug18344_0123456789012
+select routine_name,routine_schema from information_schema.routines where
+routine_schema like 'bug18344%'|
+routine_name routine_schema
+bug18344 bug18344_012345678901
+bug18344_2 bug18344_012345678901
+bug18344 bug18344_0123456789012
+bug18344_2 bug18344_0123456789012
+drop database bug18344_012345678901|
+drop database bug18344_0123456789012|
+select schema_name from information_schema.schemata where
+schema_name like 'bug18344%'|
+schema_name
+select routine_name,routine_schema from information_schema.routines where
+routine_schema like 'bug18344%'|
+routine_name routine_schema
+drop function if exists bug12472|
+create function bug12472() returns int return (select count(*) from t1)|
+create table t3 as select bug12472() as i|
+show create table t3|
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select * from t3|
+i
+0
+drop table t3|
+create view v1 as select bug12472() as j|
+create table t3 as select * from v1|
+show create table t3|
+Table Create Table
+t3 CREATE TABLE `t3` (
+ `j` bigint(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select * from t3|
+j
+0
+drop table t3|
+drop view v1|
+drop function bug12472|
+DROP FUNCTION IF EXISTS bug18589_f1|
+DROP PROCEDURE IF EXISTS bug18589_p1|
+DROP PROCEDURE IF EXISTS bug18589_p2|
+CREATE FUNCTION bug18589_f1(arg TEXT) RETURNS TEXT
+BEGIN
+RETURN CONCAT(arg, "");
+END|
+CREATE PROCEDURE bug18589_p1(arg TEXT, OUT ret TEXT)
+BEGIN
+SET ret = CONCAT(arg, "");
+END|
+CREATE PROCEDURE bug18589_p2(arg TEXT)
+BEGIN
+DECLARE v TEXT;
+CALL bug18589_p1(arg, v);
+SELECT v;
+END|
+SELECT bug18589_f1(REPEAT("a", 767))|
+bug18589_f1(REPEAT("a", 767))
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+SET @bug18589_v1 = ""|
+CALL bug18589_p1(REPEAT("a", 767), @bug18589_v1)|
+SELECT @bug18589_v1|
+@bug18589_v1
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+CALL bug18589_p2(REPEAT("a", 767))|
+v
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+DROP FUNCTION bug18589_f1|
+DROP PROCEDURE bug18589_p1|
+DROP PROCEDURE bug18589_p2|
+DROP FUNCTION IF EXISTS bug18037_f1|
+DROP PROCEDURE IF EXISTS bug18037_p1|
+DROP PROCEDURE IF EXISTS bug18037_p2|
+CREATE FUNCTION bug18037_f1() RETURNS INT
+BEGIN
+RETURN @@server_id;
+END|
+CREATE PROCEDURE bug18037_p1()
+BEGIN
+DECLARE v INT DEFAULT @@server_id;
+END|
+CREATE PROCEDURE bug18037_p2()
+BEGIN
+CASE @@server_id
+WHEN -1 THEN
+SELECT 0;
+ELSE
+SELECT 1;
+END CASE;
+END|
+SELECT bug18037_f1()|
+bug18037_f1()
+1
+CALL bug18037_p1()|
+CALL bug18037_p2()|
+1
+1
+DROP FUNCTION bug18037_f1|
+DROP PROCEDURE bug18037_p1|
+DROP PROCEDURE bug18037_p2|
+use test|
+create table t3 (i int)|
+insert into t3 values (1), (2)|
+create database mysqltest1|
+use mysqltest1|
+create function bug17199() returns varchar(2) deterministic return 'ok'|
+use test|
+select *, mysqltest1.bug17199() from t3|
+i mysqltest1.bug17199()
+1 ok
+2 ok
+use mysqltest1|
+create function bug18444(i int) returns int no sql deterministic return i + 1|
+use test|
+select mysqltest1.bug18444(i) from t3|
+mysqltest1.bug18444(i)
+2
+3
+drop database mysqltest1|
+create database mysqltest1 charset=utf8|
+create database mysqltest2 charset=utf8|
+create procedure mysqltest1.p1()
+begin
+-- alters the default collation of database test
+alter database character set koi8r;
+end|
+use mysqltest1|
+call p1()|
+show create database mysqltest1|
+Database Create Database
+mysqltest1 CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET koi8r */
+show create database mysqltest2|
+Database Create Database
+mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET utf8 */
+alter database mysqltest1 character set utf8|
+use mysqltest2|
+call mysqltest1.p1()|
+show create database mysqltest1|
+Database Create Database
+mysqltest1 CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET koi8r */
+show create database mysqltest2|
+Database Create Database
+mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET utf8 */
+drop database mysqltest1|
+drop database mysqltest2|
+use test|
+drop table if exists t3|
+drop procedure if exists bug15217|
+create table t3 as select 1|
+create procedure bug15217()
+begin
+declare var1 char(255);
+declare cur1 cursor for select * from t3;
+open cur1;
+fetch cur1 into var1;
+select concat('data was: /', var1, '/');
+close cur1;
+end |
+call bug15217()|
+concat('data was: /', var1, '/')
+data was: /1/
+flush tables |
+call bug15217()|
+concat('data was: /', var1, '/')
+data was: /1/
+drop table t3|
+drop procedure bug15217|
+DROP PROCEDURE IF EXISTS bug21013 |
+CREATE PROCEDURE bug21013(IN lim INT)
+BEGIN
+DECLARE i INT DEFAULT 0;
+WHILE (i < lim) DO
+SET @b = LOCATE(_latin1'b', @a, 1);
+SET i = i + 1;
+END WHILE;
+END |
+SET @a = _latin2"aaaaaaaaaa" |
+CALL bug21013(10) |
+DROP PROCEDURE bug21013 |
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8|
+use mysqltest1|
+CREATE FUNCTION bug16211_f1() RETURNS CHAR(10)
+RETURN ""|
+CREATE FUNCTION bug16211_f2() RETURNS CHAR(10) CHARSET koi8r
+RETURN ""|
+CREATE FUNCTION mysqltest2.bug16211_f3() RETURNS CHAR(10)
+RETURN ""|
+CREATE FUNCTION mysqltest2.bug16211_f4() RETURNS CHAR(10) CHARSET koi8r
+RETURN ""|
+SHOW CREATE FUNCTION bug16211_f1|
+Function sql_mode Create Function
+bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8
+RETURN ""
+SHOW CREATE FUNCTION bug16211_f2|
+Function sql_mode Create Function
+bug16211_f2 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f2`() RETURNS char(10) CHARSET koi8r
+RETURN ""
+SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
+Function sql_mode Create Function
+bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8
+RETURN ""
+SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
+Function sql_mode Create Function
+bug16211_f4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f4`() RETURNS char(10) CHARSET koi8r
+RETURN ""
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
+dtd_identifier
+char(10) CHARSET utf8
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f2"|
+dtd_identifier
+char(10) CHARSET koi8r
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f3"|
+dtd_identifier
+char(10) CHARSET utf8
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f4"|
+dtd_identifier
+char(10) CHARSET koi8r
+SELECT CHARSET(bug16211_f1())|
+CHARSET(bug16211_f1())
+utf8
+SELECT CHARSET(bug16211_f2())|
+CHARSET(bug16211_f2())
+koi8r
+SELECT CHARSET(mysqltest2.bug16211_f3())|
+CHARSET(mysqltest2.bug16211_f3())
+utf8
+SELECT CHARSET(mysqltest2.bug16211_f4())|
+CHARSET(mysqltest2.bug16211_f4())
+koi8r
+ALTER DATABASE mysqltest1 CHARACTER SET cp1251|
+ALTER DATABASE mysqltest2 CHARACTER SET cp1251|
+SHOW CREATE FUNCTION bug16211_f1|
+Function sql_mode Create Function
+bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8
+RETURN ""
+SHOW CREATE FUNCTION bug16211_f2|
+Function sql_mode Create Function
+bug16211_f2 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f2`() RETURNS char(10) CHARSET koi8r
+RETURN ""
+SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
+Function sql_mode Create Function
+bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8
+RETURN ""
+SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
+Function sql_mode Create Function
+bug16211_f4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f4`() RETURNS char(10) CHARSET koi8r
+RETURN ""
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
+dtd_identifier
+char(10) CHARSET utf8
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f2"|
+dtd_identifier
+char(10) CHARSET koi8r
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f3"|
+dtd_identifier
+char(10) CHARSET utf8
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f4"|
+dtd_identifier
+char(10) CHARSET koi8r
+SELECT CHARSET(bug16211_f1())|
+CHARSET(bug16211_f1())
+utf8
+SELECT CHARSET(bug16211_f2())|
+CHARSET(bug16211_f2())
+koi8r
+SELECT CHARSET(mysqltest2.bug16211_f3())|
+CHARSET(mysqltest2.bug16211_f3())
+utf8
+SELECT CHARSET(mysqltest2.bug16211_f4())|
+CHARSET(mysqltest2.bug16211_f4())
+koi8r
+use test|
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+DROP DATABASE IF EXISTS mysqltest1|
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8|
+use mysqltest1|
+CREATE PROCEDURE bug16676_p1(
+IN p1 CHAR(10),
+INOUT p2 CHAR(10),
+OUT p3 CHAR(10))
+BEGIN
+SELECT CHARSET(p1), COLLATION(p1);
+SELECT CHARSET(p2), COLLATION(p2);
+SELECT CHARSET(p3), COLLATION(p3);
+END|
+CREATE PROCEDURE bug16676_p2(
+IN p1 CHAR(10) CHARSET koi8r,
+INOUT p2 CHAR(10) CHARSET cp1251,
+OUT p3 CHAR(10) CHARSET greek)
+BEGIN
+SELECT CHARSET(p1), COLLATION(p1);
+SELECT CHARSET(p2), COLLATION(p2);
+SELECT CHARSET(p3), COLLATION(p3);
+END|
+SET @v2 = 'b'|
+SET @v3 = 'c'|
+CALL bug16676_p1('a', @v2, @v3)|
+CHARSET(p1) COLLATION(p1)
+utf8 utf8_general_ci
+CHARSET(p2) COLLATION(p2)
+utf8 utf8_general_ci
+CHARSET(p3) COLLATION(p3)
+utf8 utf8_general_ci
+CALL bug16676_p2('a', @v2, @v3)|
+CHARSET(p1) COLLATION(p1)
+koi8r koi8r_general_ci
+CHARSET(p2) COLLATION(p2)
+cp1251 cp1251_general_ci
+CHARSET(p3) COLLATION(p3)
+greek greek_general_ci
+use test|
+DROP DATABASE mysqltest1|
+drop table if exists t3|
+drop table if exists t4|
+drop procedure if exists bug8153_subselect|
+drop procedure if exists bug8153_subselect_a|
+drop procedure if exists bug8153_subselect_b|
+drop procedure if exists bug8153_proc_a|
+drop procedure if exists bug8153_proc_b|
+create table t3 (a int)|
+create table t4 (a int)|
+insert into t3 values (1), (1), (2), (3)|
+insert into t4 values (1), (1)|
+create procedure bug8153_subselect()
+begin
+declare continue handler for sqlexception
+begin
+select 'statement failed';
+end;
+update t3 set a=a+1 where (select a from t4 where a=1) is null;
+select 'statement after update';
+end|
+call bug8153_subselect()|
+statement failed
+statement failed
+statement after update
+statement after update
+select * from t3|
+a
+1
+1
+2
+3
+call bug8153_subselect()|
+statement failed
+statement failed
+statement after update
+statement after update
+select * from t3|
+a
+1
+1
+2
+3
+drop procedure bug8153_subselect|
+create procedure bug8153_subselect_a()
+begin
+declare continue handler for sqlexception
+begin
+select 'in continue handler';
+end;
+select 'reachable code a1';
+call bug8153_subselect_b();
+select 'reachable code a2';
+end|
+create procedure bug8153_subselect_b()
+begin
+select 'reachable code b1';
+update t3 set a=a+1 where (select a from t4 where a=1) is null;
+select 'unreachable code b2';
+end|
+call bug8153_subselect_a()|
+reachable code a1
+reachable code a1
+reachable code b1
+reachable code b1
+in continue handler
+in continue handler
+reachable code a2
+reachable code a2
+select * from t3|
+a
+1
+1
+2
+3
+call bug8153_subselect_a()|
+reachable code a1
+reachable code a1
+reachable code b1
+reachable code b1
+in continue handler
+in continue handler
+reachable code a2
+reachable code a2
+select * from t3|
+a
+1
+1
+2
+3
+drop procedure bug8153_subselect_a|
+drop procedure bug8153_subselect_b|
+create procedure bug8153_proc_a()
+begin
+declare continue handler for sqlexception
+begin
+select 'in continue handler';
+end;
+select 'reachable code a1';
+call bug8153_proc_b();
+select 'reachable code a2';
+end|
+create procedure bug8153_proc_b()
+begin
+select 'reachable code b1';
+select no_such_function();
+select 'unreachable code b2';
+end|
+call bug8153_proc_a()|
+reachable code a1
+reachable code a1
+reachable code b1
+reachable code b1
+in continue handler
+in continue handler
+reachable code a2
+reachable code a2
+drop procedure bug8153_proc_a|
+drop procedure bug8153_proc_b|
+drop table t3|
+drop table t4|
+drop procedure if exists bug19862|
+CREATE TABLE t11 (a INT)|
+CREATE TABLE t12 (a INT)|
+CREATE FUNCTION bug19862(x INT) RETURNS INT
+BEGIN
+INSERT INTO t11 VALUES (x);
+RETURN x+1;
+END|
+INSERT INTO t12 VALUES (1), (2)|
+SELECT bug19862(a) FROM t12 ORDER BY 1|
+bug19862(a)
+2
+3
+SELECT * FROM t11|
+a
+1
+2
+DROP TABLE t11, t12|
+DROP FUNCTION bug19862|
+drop table if exists t3|
+drop database if exists mysqltest1|
+create table t3 (a int)|
+insert into t3 (a) values (1), (2)|
+create database mysqltest1|
+use mysqltest1|
+drop database mysqltest1|
+select database()|
+database()
+NULL
+select * from (select 1 as a) as t1 natural join (select * from test.t3) as t2|
+a
+1
+use test|
+drop table t3|
+DROP PROCEDURE IF EXISTS bug16899_p1|
+DROP FUNCTION IF EXISTS bug16899_f1|
+CREATE DEFINER=1234567890abcdefGHIKL@localhost PROCEDURE bug16899_p1()
+BEGIN
+SET @a = 1;
+END|
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+FUNCTION bug16899_f1() RETURNS INT
+BEGIN
+RETURN 1;
+END|
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+drop procedure if exists bug21416|
+create procedure bug21416() show create procedure bug21416|
+call bug21416()|
+Procedure sql_mode Create Procedure
+bug21416 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug21416`()
+show create procedure bug21416
+drop procedure bug21416|
+DROP PROCEDURE IF EXISTS bug21414|
+CREATE PROCEDURE bug21414() SELECT 1|
+FLUSH TABLES WITH READ LOCK|
+DROP PROCEDURE bug21414|
+ERROR HY000: Can't execute the query because you have a conflicting read lock
+UNLOCK TABLES|
+The following should succeed.
+DROP PROCEDURE bug21414|
+set names utf8|
+drop database if exists това_е_дълго_име_за_база_данни_нали|
+create database това_е_дълго_име_за_база_данни_нали|
+INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','')|
+call това_е_дълго_име_за_база_данни_нали.това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго()|
+ERROR HY000: Failed to load routine това_е_дълго_име_за_база_данни_нали.това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
+drop database това_е_дълго_име_за_база_данни_нали|
+CREATE TABLE t3 (
+Member_ID varchar(15) NOT NULL,
+PRIMARY KEY (Member_ID)
+)|
+CREATE TABLE t4 (
+ID int(10) unsigned NOT NULL auto_increment,
+Member_ID varchar(15) NOT NULL default '',
+Action varchar(12) NOT NULL,
+Action_Date datetime NOT NULL,
+Track varchar(15) default NULL,
+User varchar(12) default NULL,
+Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update
+CURRENT_TIMESTAMP,
+PRIMARY KEY (ID),
+KEY Action (Action),
+KEY Action_Date (Action_Date)
+)|
+INSERT INTO t3(Member_ID) VALUES
+('111111'), ('222222'), ('333333'), ('444444'), ('555555'), ('666666')|
+INSERT INTO t4(Member_ID, Action, Action_Date, Track) VALUES
+('111111', 'Disenrolled', '2006-03-01', 'CAD' ),
+('111111', 'Enrolled', '2006-03-01', 'CAD' ),
+('111111', 'Disenrolled', '2006-07-03', 'CAD' ),
+('222222', 'Enrolled', '2006-03-07', 'CAD' ),
+('222222', 'Enrolled', '2006-03-07', 'CHF' ),
+('222222', 'Disenrolled', '2006-08-02', 'CHF' ),
+('333333', 'Enrolled', '2006-03-01', 'CAD' ),
+('333333', 'Disenrolled', '2006-03-01', 'CAD' ),
+('444444', 'Enrolled', '2006-03-01', 'CAD' ),
+('555555', 'Disenrolled', '2006-03-01', 'CAD' ),
+('555555', 'Enrolled', '2006-07-21', 'CAD' ),
+('555555', 'Disenrolled', '2006-03-01', 'CHF' ),
+('666666', 'Enrolled', '2006-02-09', 'CAD' ),
+('666666', 'Enrolled', '2006-05-12', 'CHF' ),
+('666666', 'Disenrolled', '2006-06-01', 'CAD' )|
+DROP FUNCTION IF EXISTS bug21493|
+CREATE FUNCTION bug21493(paramMember VARCHAR(15)) RETURNS varchar(45)
+BEGIN
+DECLARE tracks VARCHAR(45);
+SELECT GROUP_CONCAT(Track SEPARATOR ', ') INTO tracks FROM t4
+WHERE Member_ID=paramMember AND Action='Enrolled' AND
+(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t4
+WHERE Member_ID=paramMember GROUP BY Track);
+RETURN tracks;
+END|
+SELECT bug21493('111111')|
+bug21493('111111')
+NULL
+SELECT bug21493('222222')|
+bug21493('222222')
+CAD
+SELECT bug21493(Member_ID) FROM t3|
+bug21493(Member_ID)
+NULL
+CAD
+CAD
+CAD
+CAD
+CHF
+DROP FUNCTION bug21493|
+DROP TABLE t3,t4|
+drop function if exists func_20028_a|
+drop function if exists func_20028_b|
+drop function if exists func_20028_c|
+drop procedure if exists proc_20028_a|
+drop procedure if exists proc_20028_b|
+drop procedure if exists proc_20028_c|
+drop table if exists table_20028|
+create table table_20028 (i int)|
+SET @save_sql_mode=@@sql_mode|
+SET sql_mode=''|
+create function func_20028_a() returns integer
+begin
+declare temp integer;
+select i into temp from table_20028 limit 1;
+return ifnull(temp, 0);
+end|
+create function func_20028_b() returns integer
+begin
+return func_20028_a();
+end|
+create function func_20028_c() returns integer
+begin
+declare div_zero integer;
+set SQL_MODE='TRADITIONAL';
+select 1/0 into div_zero;
+return div_zero;
+end|
+create procedure proc_20028_a()
+begin
+declare temp integer;
+select i into temp from table_20028 limit 1;
+end|
+create procedure proc_20028_b()
+begin
+call proc_20028_a();
+end|
+create procedure proc_20028_c()
+begin
+declare div_zero integer;
+set SQL_MODE='TRADITIONAL';
+select 1/0 into div_zero;
+end|
+select func_20028_a()|
+func_20028_a()
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select func_20028_b()|
+func_20028_b()
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select func_20028_c()|
+ERROR 22012: Division by 0
+call proc_20028_a()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call proc_20028_b()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call proc_20028_c()|
+ERROR 22012: Division by 0
+SET sql_mode='TRADITIONAL'|
+drop function func_20028_a|
+drop function func_20028_b|
+drop function func_20028_c|
+drop procedure proc_20028_a|
+drop procedure proc_20028_b|
+drop procedure proc_20028_c|
+create function func_20028_a() returns integer
+begin
+declare temp integer;
+select i into temp from table_20028 limit 1;
+return ifnull(temp, 0);
+end|
+create function func_20028_b() returns integer
+begin
+return func_20028_a();
+end|
+create function func_20028_c() returns integer
+begin
+declare div_zero integer;
+set SQL_MODE='';
+select 1/0 into div_zero;
+return div_zero;
+end|
+create procedure proc_20028_a()
+begin
+declare temp integer;
+select i into temp from table_20028 limit 1;
+end|
+create procedure proc_20028_b()
+begin
+call proc_20028_a();
+end|
+create procedure proc_20028_c()
+begin
+declare div_zero integer;
+set SQL_MODE='';
+select 1/0 into div_zero;
+end|
+select func_20028_a()|
+func_20028_a()
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select func_20028_b()|
+func_20028_b()
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select func_20028_c()|
+func_20028_c()
+NULL
+call proc_20028_a()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call proc_20028_b()|
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+call proc_20028_c()|
+SET @@sql_mode=@save_sql_mode|
+drop function func_20028_a|
+drop function func_20028_b|
+drop function func_20028_c|
+drop procedure proc_20028_a|
+drop procedure proc_20028_b|
+drop procedure proc_20028_c|
+drop table table_20028|
+drop procedure if exists proc_21462_a|
+drop procedure if exists proc_21462_b|
+create procedure proc_21462_a()
+begin
+select "Called A";
+end|
+create procedure proc_21462_b(x int)
+begin
+select "Called B";
+end|
+call proc_21462_a|
+Called A
+Called A
+call proc_21462_a()|
+Called A
+Called A
+call proc_21462_a(1)|
+ERROR 42000: Incorrect number of arguments for PROCEDURE test.proc_21462_a; expected 0, got 1
+call proc_21462_b|
+ERROR 42000: Incorrect number of arguments for PROCEDURE test.proc_21462_b; expected 1, got 0
+call proc_21462_b()|
+ERROR 42000: Incorrect number of arguments for PROCEDURE test.proc_21462_b; expected 1, got 0
+call proc_21462_b(1)|
+Called B
+Called B
+drop procedure proc_21462_a|
+drop procedure proc_21462_b|
+drop table if exists t3|
+drop procedure if exists proc_bug19733|
+create table t3 (s1 int)|
+create procedure proc_bug19733()
+begin
+declare v int default 0;
+while v < 100 do
+create index i on t3 (s1);
+drop index i on t3;
+set v = v + 1;
+end while;
+end|
+call proc_bug19733()|
+call proc_bug19733()|
+call proc_bug19733()|
+drop procedure proc_bug19733|
+drop table t3|
+DROP PROCEDURE IF EXISTS p1|
+DROP VIEW IF EXISTS v1, v2|
+DROP TABLE IF EXISTS t3, t4|
+CREATE TABLE t3 (t3_id INT)|
+INSERT INTO t3 VALUES (0)|
+INSERT INTO t3 VALUES (1)|
+CREATE TABLE t4 (t4_id INT)|
+INSERT INTO t4 VALUES (2)|
+CREATE VIEW v1 AS
+SELECT t3.t3_id, t4.t4_id
+FROM t3 JOIN t4 ON t3.t3_id = 0|
+CREATE VIEW v2 AS
+SELECT t3.t3_id AS t3_id_1, v1.t3_id AS t3_id_2, v1.t4_id
+FROM t3 LEFT JOIN v1 ON t3.t3_id = 0|
+CREATE PROCEDURE p1() SELECT * FROM v2|
+CALL p1()|
+t3_id_1 t3_id_2 t4_id
+0 0 2
+1 NULL NULL
+CALL p1()|
+t3_id_1 t3_id_2 t4_id
+0 0 2
+1 NULL NULL
+DROP PROCEDURE p1|
+DROP VIEW v1, v2|
+DROP TABLE t3, t4|
+DROP TABLE IF EXISTS bug23760|
+DROP TABLE IF EXISTS bug23760_log|
+DROP PROCEDURE IF EXISTS bug23760_update_log|
+DROP PROCEDURE IF EXISTS bug23760_test_row_count|
+DROP FUNCTION IF EXISTS bug23760_rc_test|
+CREATE TABLE bug23760 (
+id INT NOT NULL AUTO_INCREMENT ,
+num INT NOT NULL ,
+PRIMARY KEY ( id )
+)|
+CREATE TABLE bug23760_log (
+id INT NOT NULL AUTO_INCREMENT ,
+reason VARCHAR(50)NULL ,
+ammount INT NOT NULL ,
+PRIMARY KEY ( id )
+)|
+CREATE PROCEDURE bug23760_update_log(r Varchar(50), a INT)
+BEGIN
+INSERT INTO bug23760_log (reason, ammount) VALUES(r, a);
+END|
+CREATE PROCEDURE bug23760_test_row_count()
+BEGIN
+UPDATE bug23760 SET num = num + 1;
+CALL bug23760_update_log('Test is working', ROW_COUNT());
+UPDATE bug23760 SET num = num - 1;
+END|
+CREATE PROCEDURE bug23760_test_row_count2(level INT)
+BEGIN
+IF level THEN
+UPDATE bug23760 SET num = num + 1;
+CALL bug23760_update_log('Test2 is working', ROW_COUNT());
+CALL bug23760_test_row_count2(level - 1);
+END IF;
+END|
+CREATE FUNCTION bug23760_rc_test(in_var INT) RETURNS INT RETURN in_var|
+INSERT INTO bug23760 (num) VALUES (0), (1), (1), (2), (3), (5), (8)|
+SELECT ROW_COUNT()|
+ROW_COUNT()
+7
+CALL bug23760_test_row_count()|
+SELECT * FROM bug23760_log ORDER BY id|
+id reason ammount
+1 Test is working 7
+SET @save_max_sp_recursion= @@max_sp_recursion_depth|
+SELECT @save_max_sp_recursion|
+@save_max_sp_recursion
+0
+SET max_sp_recursion_depth= 5|
+SELECT @@max_sp_recursion_depth|
+@@max_sp_recursion_depth
+5
+CALL bug23760_test_row_count2(2)|
+SELECT ROW_COUNT()|
+ROW_COUNT()
+1
+SELECT * FROM bug23760_log ORDER BY id|
+id reason ammount
+1 Test is working 7
+2 Test2 is working 7
+3 Test2 is working 7
+SELECT * FROM bug23760 ORDER by ID|
+id num
+1 2
+2 3
+3 3
+4 4
+5 5
+6 7
+7 10
+SET max_sp_recursion_depth= @save_max_sp_recursion|
+SELECT bug23760_rc_test(123)|
+bug23760_rc_test(123)
+123
+INSERT INTO bug23760 (num) VALUES (13), (21), (34), (55)|
+SELECT bug23760_rc_test(ROW_COUNT())|
+bug23760_rc_test(ROW_COUNT())
+4
+DROP TABLE bug23760, bug23760_log|
+DROP PROCEDURE bug23760_update_log|
+DROP PROCEDURE bug23760_test_row_count|
+DROP PROCEDURE bug23760_test_row_count2|
+DROP FUNCTION bug23760_rc_test|
+DROP PROCEDURE IF EXISTS bug24117|
+DROP TABLE IF EXISTS t3|
+CREATE TABLE t3(c1 ENUM('abc'))|
+INSERT INTO t3 VALUES('abc')|
+CREATE PROCEDURE bug24117()
+BEGIN
+DECLARE t3c1 ENUM('abc');
+DECLARE mycursor CURSOR FOR SELECT c1 FROM t3;
+OPEN mycursor;
+FLUSH TABLES;
+FETCH mycursor INTO t3c1;
+CLOSE mycursor;
+END|
+CALL bug24117()|
+DROP PROCEDURE bug24117|
+DROP TABLE t3|
+drop function if exists func_8407_a|
+drop function if exists func_8407_b|
+create function func_8407_a() returns int
+begin
+declare x int;
+declare continue handler for sqlexception
+begin
+end;
+select 1 from no_such_view limit 1 into x;
+return x;
+end|
+create function func_8407_b() returns int
+begin
+declare x int default 0;
+declare continue handler for sqlstate '42S02'
+ begin
+set x:= x+1000;
+end;
+case (select 1 from no_such_view limit 1)
+when 1 then set x:= x+1;
+when 2 then set x:= x+2;
+else set x:= x+100;
+end case;
+set x:=x + 500;
+return x;
+end|
+select func_8407_a()|
+func_8407_a()
+NULL
+select func_8407_b()|
+func_8407_b()
+1500
+drop function func_8407_a|
+drop function func_8407_b|
+drop table if exists table_26503|
+drop procedure if exists proc_26503_ok_1|
+drop procedure if exists proc_26503_ok_2|
+drop procedure if exists proc_26503_ok_3|
+drop procedure if exists proc_26503_ok_4|
+create table table_26503(a int unique)|
+create procedure proc_26503_ok_1(v int)
+begin
+declare i int default 5;
+declare continue handler for sqlexception
+begin
+select 'caught something';
+retry:
+while i > 0 do
+begin
+set i = i - 1;
+select 'looping', i;
+iterate retry;
+select 'dead code';
+end;
+end while retry;
+select 'leaving handler';
+end;
+select 'do something';
+insert into table_26503 values (v);
+select 'do something again';
+insert into table_26503 values (v);
+end|
+create procedure proc_26503_ok_2(v int)
+begin
+declare i int default 5;
+declare continue handler for sqlexception
+begin
+select 'caught something';
+retry:
+while i > 0 do
+begin
+set i = i - 1;
+select 'looping', i;
+leave retry;
+select 'dead code';
+end;
+end while;
+select 'leaving handler';
+end;
+select 'do something';
+insert into table_26503 values (v);
+select 'do something again';
+insert into table_26503 values (v);
+end|
+create procedure proc_26503_ok_3(v int)
+begin
+declare i int default 5;
+retry:
+begin
+declare continue handler for sqlexception
+begin
+select 'caught something';
+retry:
+while i > 0 do
+begin
+set i = i - 1;
+select 'looping', i;
+iterate retry;
+select 'dead code';
+end;
+end while retry;
+select 'leaving handler';
+end;
+select 'do something';
+insert into table_26503 values (v);
+select 'do something again';
+insert into table_26503 values (v);
+end;
+end|
+create procedure proc_26503_ok_4(v int)
+begin
+declare i int default 5;
+retry:
+begin
+declare continue handler for sqlexception
+begin
+select 'caught something';
+retry:
+while i > 0 do
+begin
+set i = i - 1;
+select 'looping', i;
+leave retry;
+select 'dead code';
+end;
+end while;
+select 'leaving handler';
+end;
+select 'do something';
+insert into table_26503 values (v);
+select 'do something again';
+insert into table_26503 values (v);
+end;
+end|
+call proc_26503_ok_1(1)|
+do something
+do something
+do something again
+do something again
+caught something
+caught something
+looping i
+looping 4
+looping i
+looping 3
+looping i
+looping 2
+looping i
+looping 1
+looping i
+looping 0
+leaving handler
+leaving handler
+call proc_26503_ok_2(2)|
+do something
+do something
+do something again
+do something again
+caught something
+caught something
+looping i
+looping 4
+leaving handler
+leaving handler
+call proc_26503_ok_3(3)|
+do something
+do something
+do something again
+do something again
+caught something
+caught something
+looping i
+looping 4
+looping i
+looping 3
+looping i
+looping 2
+looping i
+looping 1
+looping i
+looping 0
+leaving handler
+leaving handler
+call proc_26503_ok_4(4)|
+do something
+do something
+do something again
+do something again
+caught something
+caught something
+looping i
+looping 4
+leaving handler
+leaving handler
+drop table table_26503|
+drop procedure proc_26503_ok_1|
+drop procedure proc_26503_ok_2|
+drop procedure proc_26503_ok_3|
+drop procedure proc_26503_ok_4|
+DROP FUNCTION IF EXISTS bug25373|
+CREATE FUNCTION bug25373(p1 INTEGER) RETURNS INTEGER
+LANGUAGE SQL DETERMINISTIC
+RETURN p1;|
+CREATE TABLE t3 (f1 INT, f2 FLOAT)|
+INSERT INTO t3 VALUES (1, 3.4), (1, 2), (1, 0.9), (2, 8), (2, 7)|
+SELECT SUM(f2), bug25373(f1) FROM t3 GROUP BY bug25373(f1) WITH ROLLUP|
+SUM(f2) bug25373(f1)
+6.3000000715256 1
+15 2
+21.300000071526 NULL
+DROP FUNCTION bug25373|
+DROP TABLE t3|
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+CREATE DATABASE mysqltest1|
+CREATE DATABASE mysqltest2|
+CREATE PROCEDURE mysqltest1.p1()
+DROP DATABASE mysqltest2|
+use mysqltest2|
+CALL mysqltest1.p1()|
+Warnings:
+Note 1049 Unknown database 'mysqltest2'
+SELECT DATABASE()|
+DATABASE()
+NULL
+DROP DATABASE mysqltest1|
+use test|
+drop function if exists bug20777|
+drop table if exists examplebug20777|
+create function bug20777(f1 bigint unsigned) returns bigint unsigned
+begin
+set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+end|
+select bug20777(9223372036854775803) as '9223372036854775803 2**63-5';
+9223372036854775803 2**63-5
+9223372036854775803
+select bug20777(9223372036854775804) as '9223372036854775804 2**63-4';
+9223372036854775804 2**63-4
+9223372036854775804
+select bug20777(9223372036854775805) as '9223372036854775805 2**63-3';
+9223372036854775805 2**63-3
+9223372036854775805
+select bug20777(9223372036854775806) as '9223372036854775806 2**63-2';
+9223372036854775806 2**63-2
+9223372036854775806
+select bug20777(9223372036854775807) as '9223372036854775807 2**63-1';
+9223372036854775807 2**63-1
+9223372036854775807
+select bug20777(9223372036854775808) as '9223372036854775808 2**63+0';
+9223372036854775808 2**63+0
+9223372036854775808
+select bug20777(9223372036854775809) as '9223372036854775809 2**63+1';
+9223372036854775809 2**63+1
+9223372036854775809
+select bug20777(9223372036854775810) as '9223372036854775810 2**63+2';
+9223372036854775810 2**63+2
+9223372036854775810
+select bug20777(-9223372036854775808) as 'lower bounds signed bigint';
+lower bounds signed bigint
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+select bug20777(9223372036854775807) as 'upper bounds signed bigint';
+upper bounds signed bigint
+9223372036854775807
+select bug20777(0) as 'lower bounds unsigned bigint';
+lower bounds unsigned bigint
+0
+select bug20777(18446744073709551615) as 'upper bounds unsigned bigint';
+upper bounds unsigned bigint
+18446744073709551615
+select bug20777(18446744073709551616) as 'upper bounds unsigned bigint + 1';
+upper bounds unsigned bigint + 1
+18446744073709551615
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+select bug20777(-1) as 'lower bounds unsigned bigint - 1';
+lower bounds unsigned bigint - 1
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+create table examplebug20777 as select
+0 as 'i',
+bug20777(9223372036854775806) as '2**63-2',
+bug20777(9223372036854775807) as '2**63-1',
+bug20777(9223372036854775808) as '2**63',
+bug20777(9223372036854775809) as '2**63+1',
+bug20777(18446744073709551614) as '2**64-2',
+bug20777(18446744073709551615) as '2**64-1',
+bug20777(18446744073709551616) as '2**64',
+bug20777(0) as '0',
+bug20777(-1) as '-1';
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+insert into examplebug20777 values (1, 9223372036854775806, 9223372036854775807, 223372036854775808, 9223372036854775809, 18446744073709551614, 18446744073709551615, 8446744073709551616, 0, -1);
+Warnings:
+Warning 1264 Out of range value adjusted for column '-1' at row 1
+show create table examplebug20777;
+Table Create Table
+examplebug20777 CREATE TABLE `examplebug20777` (
+ `i` int(1) NOT NULL default '0',
+ `2**63-2` bigint(20) unsigned default NULL,
+ `2**63-1` bigint(20) unsigned default NULL,
+ `2**63` bigint(20) unsigned default NULL,
+ `2**63+1` bigint(20) unsigned default NULL,
+ `2**64-2` bigint(20) unsigned default NULL,
+ `2**64-1` bigint(20) unsigned default NULL,
+ `2**64` bigint(20) unsigned default NULL,
+ `0` bigint(20) unsigned default NULL,
+ `-1` bigint(20) unsigned default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select * from examplebug20777 order by i;
+i 2**63-2 2**63-1 2**63 2**63+1 2**64-2 2**64-1 2**64 0 -1
+0 9223372036854775806 9223372036854775807 9223372036854775808 9223372036854775809 18446744073709551614 18446744073709551615 18446744073709551615 0 0
+1 9223372036854775806 9223372036854775807 223372036854775808 9223372036854775809 18446744073709551614 18446744073709551615 8446744073709551616 0 0
+drop table examplebug20777;
+select bug20777(18446744073709551613)+1;
+bug20777(18446744073709551613)+1
+18446744073709551614
+drop function bug20777;
+DROP FUNCTION IF EXISTS bug5274_f1|
+DROP FUNCTION IF EXISTS bug5274_f2|
+CREATE FUNCTION bug5274_f1(p1 CHAR) RETURNS CHAR
+RETURN CONCAT(p1, p1)|
+CREATE FUNCTION bug5274_f2() RETURNS CHAR
+BEGIN
+DECLARE v1 INT DEFAULT 0;
+DECLARE v2 CHAR DEFAULT 'x';
+WHILE v1 < 30 DO
+SET v1 = v1 + 1;
+SET v2 = bug5274_f1(v2);
+END WHILE;
+RETURN v2;
+END|
+SELECT bug5274_f2()|
+bug5274_f2()
+x
+Warnings:
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+Warning 1265 Data truncated for column 'bug5274_f1' at row 1
+DROP FUNCTION bug5274_f1|
+DROP FUNCTION bug5274_f2|
+drop procedure if exists proc_21513|
+create procedure proc_21513()`my_label`:BEGIN END|
+show create procedure proc_21513|
+Procedure sql_mode Create Procedure
+proc_21513 CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_21513`()
+`my_label`:BEGIN END
+drop procedure proc_21513|
+drop table t1,t2;
+CREATE TABLE t1 (a int auto_increment primary key) engine=MyISAM;
+CREATE TABLE t2 (a int auto_increment primary key, b int) engine=innodb;
+set @a=0;
+CREATE function bug27354() RETURNS int not deterministic
+begin
+insert into t1 values (null);
+set @a=@a+1;
+return @a;
+end|
+update t2 set b=1 where a=bug27354();
+select count(t_1.a),count(t_2.a) from t1 as t_1, t2 as t_2 /* must be 0,0 */;
+count(t_1.a) count(t_2.a)
+0 0
+insert into t2 values (1,1),(2,2),(3,3);
+update t2 set b=-b where a=bug27354();
+select * from t2 /* must return 1,-1 ... */;
+a b
+1 -1
+2 -2
+3 -3
+select count(*) from t1 /* must be 3 */;
+count(*)
+3
+drop table t1,t2;
+drop function bug27354;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+CREATE FUNCTION metered(a INT) RETURNS INT RETURN 12;
+CREATE VIEW v1 AS SELECT test.metered(a) as metered FROM t1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`metered`(`t1`.`a`) AS `metered` from `t1`
+DROP VIEW v1;
+DROP FUNCTION metered;
+DROP TABLE t1;
+SET @p1_p2_cnt= 2;
+CREATE TABLE t1 (c1 INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+PREPARE s1 FROM 'SELECT c1 FROM v1';
+EXECUTE s1;
+c1
+EXECUTE s1;
+c1
+CREATE PROCEDURE p1(IN loops BIGINT(19) UNSIGNED)
+BEGIN
+WHILE loops > 0 DO
+SELECT c1 FROM v1;
+SET loops = loops - 1;
+END WHILE;
+END|
+CREATE PROCEDURE p2(IN loops BIGINT(19) UNSIGNED)
+BEGIN
+WHILE loops > 0 DO
+SELECT c1 FROM v1;
+CALL p1(@p1_p2_cnt);
+SET loops = loops - 1;
+END WHILE;
+END|
+CREATE FUNCTION f1(loops INT UNSIGNED)
+RETURNS INT
+BEGIN
+DECLARE tmp INT;
+WHILE loops > 0 DO
+SELECT c1 INTO tmp FROM v1;
+SET loops = loops - 1;
+END WHILE;
+RETURN loops;
+END|
+CALL p1(2);
+c1
+c1
+CALL p2(2);
+c1
+c1
+c1
+c1
+c1
+c1
+SELECT f1(2);
+f1(2)
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+Warning 1329 No data - zero rows fetched, selected, or processed
+PREPARE s1 FROM 'SELECT f1(2)';
+EXECUTE s1;
+f1(2)
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+Warning 1329 No data - zero rows fetched, selected, or processed
+EXECUTE s1;
+f1(2)
+0
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+Warning 1329 No data - zero rows fetched, selected, or processed
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP FUNCTION f1;
+DROP VIEW v1;
+DROP TABLE t1;
+drop database if exists mysqltest_db1;
+create database mysqltest_db1;
+create procedure mysqltest_db1.sp_bug28551() begin end;
+call mysqltest_db1.sp_bug28551();
+show warnings;
+Level Code Message
+drop database mysqltest_db1;
+drop database if exists mysqltest_db1;
+drop table if exists test.t1;
+create database mysqltest_db1;
+use mysqltest_db1;
+drop database mysqltest_db1;
+create table test.t1 (id int);
+insert into test.t1 (id) values (1);
+create procedure test.sp_bug29050() begin select * from t1; end//
+show warnings;
+Level Code Message
+call test.sp_bug29050();
+id
+1
+show warnings;
+Level Code Message
+use test;
+drop procedure sp_bug29050;
+drop table t1;
+CREATE FUNCTION f1() RETURNS INT DETERMINISTIC RETURN 2;
+CREATE FUNCTION f2(I INT) RETURNS INT DETERMINISTIC RETURN 3;
+CREATE TABLE t1 (c1 INT, INDEX(c1));
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+CREATE VIEW v1 AS SELECT c1 FROM t1;
+EXPLAIN SELECT * FROM t1 WHERE c1=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
+EXPLAIN SELECT * FROM t1 WHERE c1=f1();
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
+EXPLAIN SELECT * FROM v1 WHERE c1=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
+EXPLAIN SELECT * FROM v1 WHERE c1=f1();
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
+EXPLAIN SELECT * FROM t1 WHERE c1=f2(10);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref c1 c1 5 const 1 Using where; Using index
+EXPLAIN SELECT * FROM t1 WHERE c1=f2(c1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL c1 5 NULL 5 Using where; Using index
+EXPLAIN SELECT * FROM t1 WHERE c1=f2(rand());
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL c1 5 NULL 5 Using where; Using index
+DROP VIEW v1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP TABLE t1;
+SET NAMES latin1;
+CREATE PROCEDURE p1()
+BEGIN
+DECLARE áâä INT;
+SELECT áâä;
+END|
+CALL p1();
+áâä
+NULL
+SET NAMES default;
+DROP PROCEDURE p1;
+create function f1()
+returns int(11)
+not deterministic
+contains sql
+sql security definer
+comment ''
+begin
+declare x int(11);
+set x=-1;
+return x;
+end|
+create view v1 as select 1 as one, f1() as days;
+show create view test.v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select 1 AS `one`,`f1`() AS `days`
+select column_name from information_schema.columns
+where table_name='v1' and table_schema='test';
+column_name
+one
+days
+drop view v1;
+drop function f1;
+
+# 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 adjusted 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;
+
+#
+# Bug#31035.
+#
+
+#
+# - Prepare.
+#
+
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+DROP FUNCTION IF EXISTS f4;
+
+#
+# - Create required objects.
+#
+
+CREATE TABLE t1(c1 INT);
+
+INSERT INTO t1 VALUES (1), (2), (3);
+
+CREATE FUNCTION f1()
+RETURNS INT
+NOT DETERMINISTIC
+RETURN 1;
+
+CREATE FUNCTION f2(p INT)
+RETURNS INT
+NOT DETERMINISTIC
+RETURN 1;
+
+CREATE FUNCTION f3()
+RETURNS INT
+DETERMINISTIC
+RETURN 1;
+
+CREATE FUNCTION f4(p INT)
+RETURNS INT
+DETERMINISTIC
+RETURN 1;
+
+#
+# - Check.
+#
+
+SELECT f1() AS a FROM t1 GROUP BY a;
+a
+1
+
+SELECT f2(@a) AS a FROM t1 GROUP BY a;
+a
+1
+
+SELECT f3() AS a FROM t1 GROUP BY a;
+a
+1
+
+SELECT f4(0) AS a FROM t1 GROUP BY a;
+a
+1
+
+SELECT f4(@a) AS a FROM t1 GROUP BY a;
+a
+1
+
+#
+# - Cleanup.
+#
+
+DROP TABLE t1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;
+DROP FUNCTION f4;
+
+#
+# Bug#31191.
+#
+
+#
+# - Prepare.
+#
+
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP FUNCTION IF EXISTS f1;
+
+#
+# - Create required objects.
+#
+
+CREATE TABLE t1 (
+id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+barcode INT(8) UNSIGNED ZEROFILL nOT NULL,
+PRIMARY KEY (id),
+UNIQUE KEY barcode (barcode)
+);
+
+INSERT INTO t1 (id, barcode) VALUES (1, 12345678);
+INSERT INTO t1 (id, barcode) VALUES (2, 12345679);
+
+CREATE TABLE test.t2 (
+id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+barcode BIGINT(11) UNSIGNED ZEROFILL NOT NULL,
+PRIMARY KEY (id)
+);
+
+INSERT INTO test.t2 (id, barcode) VALUES (1, 12345106708);
+INSERT INTO test.t2 (id, barcode) VALUES (2, 12345106709);
+
+CREATE FUNCTION f1(p INT(8))
+RETURNS BIGINT(11) UNSIGNED
+READS SQL DATA
+RETURN FLOOR(p/1000)*1000000 + 100000 + FLOOR((p MOD 1000)/10)*100 + (p MOD 10);
+
+#
+# - Check.
+#
+
+SELECT DISTINCT t1.barcode, f1(t1.barcode)
+FROM t1
+INNER JOIN t2
+ON f1(t1.barcode) = t2.barcode
+WHERE t1.barcode=12345678;
+barcode f1(t1.barcode)
+12345678 12345106708
+
+#
+# - Cleanup.
+#
+
+DROP TABLE t1;
+DROP TABLE t2;
+DROP FUNCTION f1;
+
+#
+# Bug#31226.
+#
+
+#
+# - Prepare.
+#
+
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+
+#
+# - Create required objects.
+#
+
+CREATE TABLE t1(id INT);
+
+INSERT INTO t1 VALUES (1), (2), (3);
+
+CREATE FUNCTION f1()
+RETURNS DATETIME
+NOT DETERMINISTIC NO SQL
+RETURN NOW();
+
+#
+# - Check.
+#
+
+SELECT f1() FROM t1 GROUP BY 1;
+f1()
+<timestamp>
+
+#
+# - Cleanup.
+#
+
+DROP TABLE t1;
+DROP FUNCTION f1;
+
+DROP PROCEDURE IF EXISTS db28318_a.t1;
+DROP PROCEDURE IF EXISTS db28318_b.t2;
+DROP DATABASE IF EXISTS db28318_a;
+DROP DATABASE IF EXISTS db28318_b;
+CREATE DATABASE db28318_a;
+CREATE DATABASE db28318_b;
+CREATE PROCEDURE db28318_a.t1() SELECT "db28318_a.t1";
+CREATE PROCEDURE db28318_b.t2() CALL t1();
+use db28318_a;
+CALL db28318_b.t2();
+ERROR 42000: PROCEDURE db28318_b.t1 does not exist
+DROP PROCEDURE db28318_a.t1;
+DROP PROCEDURE db28318_b.t2;
+DROP DATABASE db28318_a;
+DROP DATABASE db28318_b;
+# ------------------------------------------------------------------
+# -- End of 5.0 tests
+# ------------------------------------------------------------------
diff --git a/mysql-test/r/sp_notembedded.result b/mysql-test/r/sp_notembedded.result
new file mode 100644
index 00000000000..60e427e17a5
--- /dev/null
+++ b/mysql-test/r/sp_notembedded.result
@@ -0,0 +1,221 @@
+drop table if exists t1,t3;
+drop procedure if exists bug4902|
+create procedure bug4902()
+begin
+show grants for 'root'@'localhost';
+end|
+call bug4902()|
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+call bug4902()|
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+drop procedure bug4902|
+drop procedure if exists bug4902_2|
+create procedure bug4902_2()
+begin
+show processlist;
+end|
+call bug4902_2()|
+Id User Host db Command Time State Info
+# root localhost test Query # NULL show processlist
+call bug4902_2()|
+Id User Host db Command Time State Info
+# root localhost test Query # NULL show processlist
+drop procedure bug4902_2|
+drop function if exists bug5278|
+create function bug5278 () returns char
+begin
+SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
+return 'okay';
+end|
+select bug5278()|
+ERROR 42000: Can't find any matching row in the user table
+select bug5278()|
+ERROR 42000: Can't find any matching row in the user table
+drop function bug5278|
+drop table if exists t1|
+create table t1 (
+id char(16) not null default '',
+data int not null
+)|
+drop procedure if exists bug3583|
+drop procedure if exists bug3583|
+create procedure bug3583()
+begin
+declare c int;
+select * from t1;
+select count(*) into c from t1;
+select c;
+end|
+insert into t1 values ("x", 3), ("y", 5)|
+set @x = @@query_cache_size|
+set global query_cache_size = 10*1024*1024|
+flush status|
+flush query cache|
+show status like 'Qcache_hits'|
+Variable_name Value
+Qcache_hits 0
+call bug3583()|
+id data
+x 3
+y 5
+c
+2
+show status like 'Qcache_hits'|
+Variable_name Value
+Qcache_hits 0
+call bug3583()|
+id data
+x 3
+y 5
+c
+2
+call bug3583()|
+id data
+x 3
+y 5
+c
+2
+show status like 'Qcache_hits'|
+Variable_name Value
+Qcache_hits 2
+set global query_cache_size = @x|
+flush status|
+flush query cache|
+delete from t1|
+drop procedure bug3583|
+drop table t1|
+drop procedure if exists bug6807|
+create procedure bug6807()
+begin
+declare id int;
+set id = connection_id();
+kill query id;
+select 'Not reached';
+end|
+call bug6807()|
+ERROR 70100: Query execution was interrupted
+call bug6807()|
+ERROR 70100: Query execution was interrupted
+drop procedure bug6807|
+drop function if exists bug10100f|
+drop procedure if exists bug10100p|
+drop procedure if exists bug10100t|
+drop procedure if exists bug10100pt|
+drop procedure if exists bug10100pv|
+drop procedure if exists bug10100pd|
+drop procedure if exists bug10100pc|
+create function bug10100f(prm int) returns int
+begin
+if prm > 1 then
+return prm * bug10100f(prm - 1);
+end if;
+return 1;
+end|
+create procedure bug10100p(prm int, inout res int)
+begin
+set res = res * prm;
+if prm > 1 then
+call bug10100p(prm - 1, res);
+end if;
+end|
+create procedure bug10100t(prm int)
+begin
+declare res int;
+set res = 1;
+call bug10100p(prm, res);
+select res;
+end|
+create table t3 (a int)|
+insert into t3 values (0)|
+create view v1 as select a from t3;
+create procedure bug10100pt(level int, lim int)
+begin
+if level < lim then
+update t3 set a=level;
+FLUSH TABLES;
+call bug10100pt(level+1, lim);
+else
+select * from t3;
+end if;
+end|
+create procedure bug10100pv(level int, lim int)
+begin
+if level < lim then
+update v1 set a=level;
+FLUSH TABLES;
+call bug10100pv(level+1, lim);
+else
+select * from v1;
+end if;
+end|
+prepare stmt2 from "select * from t3;";
+create procedure bug10100pd(level int, lim int)
+begin
+if level < lim then
+select level;
+prepare stmt1 from "update t3 set a=a+2";
+execute stmt1;
+FLUSH TABLES;
+execute stmt1;
+FLUSH TABLES;
+execute stmt1;
+FLUSH TABLES;
+deallocate prepare stmt1;
+execute stmt2;
+select * from t3;
+call bug10100pd(level+1, lim);
+else
+execute stmt2;
+end if;
+end|
+create procedure bug10100pc(level int, lim int)
+begin
+declare lv int;
+declare c cursor for select a from t3;
+open c;
+if level < lim then
+select level;
+fetch c into lv;
+select lv;
+update t3 set a=level+lv;
+FLUSH TABLES;
+call bug10100pc(level+1, lim);
+else
+select * from t3;
+end if;
+close c;
+end|
+set @@max_sp_recursion_depth=255|
+set @var=1|
+call bug10100p(255, @var)|
+call bug10100pt(1,255)|
+call bug10100pv(1,255)|
+call bug10100pd(1,255)|
+call bug10100pc(1,255)|
+set @@max_sp_recursion_depth=0|
+deallocate prepare stmt2|
+drop function bug10100f|
+drop procedure bug10100p|
+drop procedure bug10100t|
+drop procedure bug10100pt|
+drop procedure bug10100pv|
+drop procedure bug10100pd|
+drop procedure bug10100pc|
+drop view v1|
+drop table t3|
+drop procedure if exists bug15298_1;
+drop procedure if exists bug15298_2;
+grant all privileges on test.* to 'mysqltest_1'@'localhost';
+create procedure 15298_1 () sql security definer show grants for current_user;
+create procedure 15298_2 () sql security definer show grants;
+call 15298_1();
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+call 15298_2();
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+drop user mysqltest_1@localhost;
+drop procedure 15298_1;
+drop procedure 15298_2;
diff --git a/mysql-test/r/sp_stress_case.result b/mysql-test/r/sp_stress_case.result
new file mode 100644
index 00000000000..8ec68363c8d
--- /dev/null
+++ b/mysql-test/r/sp_stress_case.result
@@ -0,0 +1,120 @@
+DROP PROCEDURE IF EXISTS proc_19194_codegen;
+DROP PROCEDURE IF EXISTS bug_19194_simple;
+DROP PROCEDURE IF EXISTS bug_19194_searched;
+CREATE PROCEDURE proc_19194_codegen(
+IN proc_name VARCHAR(50),
+IN count INTEGER,
+IN simple INTEGER,
+OUT body MEDIUMTEXT)
+BEGIN
+DECLARE code MEDIUMTEXT;
+DECLARE i INT DEFAULT 1;
+SET code = concat("CREATE PROCEDURE ", proc_name, "(i INT)\n");
+SET code = concat(code, "BEGIN\n");
+SET code = concat(code, " DECLARE str CHAR(10);\n");
+IF (simple)
+THEN
+SET code = concat(code, " CASE i\n");
+ELSE
+SET code = concat(code, " CASE\n");
+END IF;
+WHILE (i <= count)
+DO
+IF (simple)
+THEN
+SET code = concat(code, " WHEN ", i, " THEN SET str=\"", i, "\";\n");
+ELSE
+SET code = concat(code, " WHEN i=", i, " THEN SET str=\"", i, "\";\n");
+END IF;
+SET i = i + 1;
+END WHILE;
+SET code = concat(code, " ELSE SET str=\"unknown\";\n");
+SET code = concat(code, " END CASE;\n");
+SET code = concat(code, " SELECT str;\n");
+SET code = concat(code, "END\n");
+SET body = code;
+END|
+set @body="";
+call proc_19194_codegen("test_simple", 10, 1, @body);
+select @body;
+@body
+CREATE PROCEDURE test_simple(i INT)
+BEGIN
+ DECLARE str CHAR(10);
+ CASE i
+ WHEN 1 THEN SET str="1";
+ WHEN 2 THEN SET str="2";
+ WHEN 3 THEN SET str="3";
+ WHEN 4 THEN SET str="4";
+ WHEN 5 THEN SET str="5";
+ WHEN 6 THEN SET str="6";
+ WHEN 7 THEN SET str="7";
+ WHEN 8 THEN SET str="8";
+ WHEN 9 THEN SET str="9";
+ WHEN 10 THEN SET str="10";
+ ELSE SET str="unknown";
+ END CASE;
+ SELECT str;
+END
+
+call proc_19194_codegen("test_searched", 10, 0, @body);
+select @body;
+@body
+CREATE PROCEDURE test_searched(i INT)
+BEGIN
+ DECLARE str CHAR(10);
+ CASE
+ WHEN i=1 THEN SET str="1";
+ WHEN i=2 THEN SET str="2";
+ WHEN i=3 THEN SET str="3";
+ WHEN i=4 THEN SET str="4";
+ WHEN i=5 THEN SET str="5";
+ WHEN i=6 THEN SET str="6";
+ WHEN i=7 THEN SET str="7";
+ WHEN i=8 THEN SET str="8";
+ WHEN i=9 THEN SET str="9";
+ WHEN i=10 THEN SET str="10";
+ ELSE SET str="unknown";
+ END CASE;
+ SELECT str;
+END
+
+CALL bug_19194_simple(1);
+str
+1
+CALL bug_19194_simple(2);
+str
+2
+CALL bug_19194_simple(1000);
+str
+1000
+CALL bug_19194_simple(4998);
+str
+4998
+CALL bug_19194_simple(4999);
+str
+4999
+CALL bug_19194_simple(9999);
+str
+unknown
+CALL bug_19194_searched(1);
+str
+1
+CALL bug_19194_searched(2);
+str
+2
+CALL bug_19194_searched(1000);
+str
+1000
+CALL bug_19194_searched(4998);
+str
+4998
+CALL bug_19194_searched(4999);
+str
+4999
+CALL bug_19194_searched(9999);
+str
+unknown
+DROP PROCEDURE proc_19194_codegen;
+DROP PROCEDURE bug_19194_simple;
+DROP PROCEDURE bug_19194_searched;
diff --git a/mysql-test/r/sp_trans.result b/mysql-test/r/sp_trans.result
new file mode 100644
index 00000000000..564e31c9e32
--- /dev/null
+++ b/mysql-test/r/sp_trans.result
@@ -0,0 +1,532 @@
+drop table if exists t1, t2, t3;
+drop procedure if exists bug8850|
+create table t1 (a int) engine=innodb|
+create procedure bug8850()
+begin
+truncate table t1; insert t1 values (1); rollback;
+end|
+set autocommit=0|
+insert t1 values (2)|
+call bug8850()|
+commit|
+select * from t1|
+a
+call bug8850()|
+set autocommit=1|
+select * from t1|
+a
+drop table t1|
+drop procedure bug8850|
+drop function if exists bug10015_1|
+drop function if exists bug10015_2|
+drop function if exists bug10015_3|
+drop function if exists bug10015_4|
+drop function if exists bug10015_5|
+drop function if exists bug10015_6|
+drop function if exists bug10015_7|
+drop procedure if exists bug10015_8|
+create table t1 (id int) engine=innodb|
+create table t2 (id int primary key, j int) engine=innodb|
+insert into t1 values (1),(2),(3)|
+create function bug10015_1() returns int return (select count(*) from t1)|
+select *, bug10015_1() from t1|
+id bug10015_1()
+1 3
+2 3
+3 3
+drop function bug10015_1|
+create function bug10015_2() returns int
+begin
+declare i, s int;
+set i:= (select min(id) from t1);
+set s:= (select max(id) from t1);
+return (s - i);
+end|
+select *, bug10015_2() from t1|
+id bug10015_2()
+1 2
+2 2
+3 2
+drop function bug10015_2|
+create function bug10015_3() returns int
+return (select max(a.id - b.id) from t1 as a, t1 as b where a.id >= b.id)|
+select *, bug10015_3() from t1|
+id bug10015_3()
+1 2
+2 2
+3 2
+drop function bug10015_3|
+create function bug10015_4(i int) returns int
+begin
+declare m int;
+set m:= (select max(id) from t2);
+insert into t2 values (i, m);
+return m;
+end|
+select *, bug10015_4(id) from t1|
+id bug10015_4(id)
+1 NULL
+2 1
+3 2
+select * from t2|
+id j
+1 NULL
+2 1
+3 2
+drop function bug10015_4|
+create function bug10015_5(i int) returns int
+begin
+if (i = 5) then
+insert into t2 values (1, 0);
+end if;
+return i;
+end|
+insert into t1 values (bug10015_5(4)), (bug10015_5(5))|
+ERROR 23000: Duplicate entry '1' for key 1
+select * from t1|
+id
+1
+2
+3
+drop function bug10015_5|
+create function bug10015_6(i int) returns int
+begin
+declare continue handler for sqlexception set @error_in_func:= 1;
+if (i = 5) then
+insert into t2 values (4, 0), (1, 0);
+end if;
+return i;
+end|
+set @error_in_func:= 0|
+insert into t1 values (bug10015_6(5)), (bug10015_6(6))|
+select @error_in_func|
+@error_in_func
+1
+select * from t1|
+id
+1
+2
+3
+5
+6
+select * from t2|
+id j
+1 NULL
+2 1
+3 2
+4 0
+drop function bug10015_6|
+create function bug10015_7() returns int
+begin
+alter table t1 add k int;
+return 1;
+end|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+create function bug10015_7() returns int
+begin
+start transaction;
+return 1;
+end|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+create function bug10015_7() returns int
+begin
+drop table t1;
+return 1;
+end|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+create function bug10015_7() returns int
+begin
+drop temporary table t1;
+return 1;
+end|
+drop function bug10015_7|
+create function bug10015_7() returns int
+begin
+commit;
+return 1;
+end|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+create function bug10015_7() returns int
+begin
+call bug10015_8();
+return 1;
+end|
+create procedure bug10015_8() alter table t1 add k int|
+select *, bug10015_7() from t1|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+drop procedure bug10015_8|
+create procedure bug10015_8() start transaction|
+select *, bug10015_7() from t1|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+drop procedure bug10015_8|
+create procedure bug10015_8() drop temporary table if exists t1_temp|
+select *, bug10015_7() from t1|
+id bug10015_7()
+1 1
+2 1
+3 1
+5 1
+6 1
+drop procedure bug10015_8|
+create procedure bug10015_8() commit|
+select *, bug10015_7() from t1|
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+drop procedure bug10015_8|
+drop function bug10015_7|
+drop table t1, t2|
+drop function if exists bug13825_0|
+drop function if exists bug13825_1|
+drop function if exists bug13825_2|
+drop function if exists bug13825_3|
+drop function if exists bug13825_4|
+drop function if exists bug13825_5|
+drop procedure if exists bug13825_0|
+drop procedure if exists bug13825_1|
+drop procedure if exists bug13825_2|
+drop table if exists t1|
+create table t1 (i int) engine=innodb|
+create table t2 (i int) engine=innodb|
+create function bug13825_0() returns int
+begin
+rollback to savepoint x;
+return 1;
+end|
+create function bug13825_1() returns int
+begin
+release savepoint x;
+return 1;
+end|
+create function bug13825_2() returns int
+begin
+insert into t1 values (2);
+savepoint x;
+insert into t1 values (3);
+rollback to savepoint x;
+insert into t1 values (4);
+return 1;
+end|
+create procedure bug13825_0()
+begin
+rollback to savepoint x;
+end|
+create procedure bug13825_1()
+begin
+release savepoint x;
+end|
+create procedure bug13825_2()
+begin
+savepoint x;
+end|
+insert into t2 values (1)|
+create trigger t2_bi before insert on t2 for each row
+rollback to savepoint x|
+create trigger t2_bu before update on t2 for each row
+release savepoint x|
+create trigger t2_bd before delete on t2 for each row
+begin
+insert into t1 values (2);
+savepoint x;
+insert into t1 values (3);
+rollback to savepoint x;
+insert into t1 values (4);
+end|
+create function bug13825_3(rb int) returns int
+begin
+insert into t1 values(1);
+savepoint x;
+insert into t1 values(2);
+if rb then
+rollback to savepoint x;
+end if;
+insert into t1 values(3);
+return rb;
+end|
+create function bug13825_4() returns int
+begin
+savepoint x;
+insert into t1 values(2);
+rollback to savepoint x;
+return 0;
+end|
+create function bug13825_5(p int) returns int
+begin
+savepoint x;
+insert into t2 values(p);
+rollback to savepoint x;
+insert into t2 values(p+1);
+return p;
+end|
+set autocommit= 0|
+begin |
+insert into t1 values (1)|
+savepoint x|
+set @a:= bug13825_0()|
+ERROR 42000: SAVEPOINT x does not exist
+insert into t2 values (2)|
+ERROR 42000: SAVEPOINT x does not exist
+set @a:= bug13825_1()|
+ERROR 42000: SAVEPOINT x does not exist
+update t2 set i = 2|
+ERROR 42000: SAVEPOINT x does not exist
+set @a:= bug13825_2()|
+select * from t1|
+i
+1
+2
+4
+rollback to savepoint x|
+select * from t1|
+i
+1
+delete from t2|
+select * from t1|
+i
+1
+2
+4
+rollback to savepoint x|
+select * from t1|
+i
+1
+release savepoint x|
+set @a:= bug13825_2()|
+select * from t1|
+i
+1
+2
+4
+rollback to savepoint x|
+ERROR 42000: SAVEPOINT x does not exist
+delete from t1|
+commit|
+begin|
+insert into t1 values (5)|
+savepoint x|
+insert into t1 values (6)|
+call bug13825_0()|
+select * from t1|
+i
+5
+call bug13825_1()|
+rollback to savepoint x|
+ERROR 42000: SAVEPOINT x does not exist
+savepoint x|
+insert into t1 values (7)|
+call bug13825_2()|
+rollback to savepoint x|
+select * from t1|
+i
+5
+7
+delete from t1|
+commit|
+set autocommit= 1|
+select bug13825_3(0)|
+bug13825_3(0)
+0
+select * from t1|
+i
+1
+2
+3
+delete from t1|
+select bug13825_3(1)|
+bug13825_3(1)
+1
+select * from t1|
+i
+1
+3
+delete from t1|
+set autocommit= 0|
+begin|
+insert into t1 values (1)|
+set @a:= bug13825_4()|
+select * from t1|
+i
+1
+delete from t1|
+commit|
+set autocommit= 1|
+drop table t2|
+create table t2 (i int) engine=innodb|
+insert into t1 values (1), (bug13825_5(2)), (3)|
+select * from t1|
+i
+1
+2
+3
+select * from t2|
+i
+3
+drop function bug13825_0|
+drop function bug13825_1|
+drop function bug13825_2|
+drop function bug13825_3|
+drop function bug13825_4|
+drop function bug13825_5|
+drop procedure bug13825_0|
+drop procedure bug13825_1|
+drop procedure bug13825_2|
+drop table t1, t2|
+drop table if exists t3|
+drop procedure if exists bug14840_1|
+drop procedure if exists bug14840_2|
+create table t3
+(
+x int,
+y int,
+primary key (x)
+) engine=InnoDB|
+create procedure bug14840_1()
+begin
+declare err int default 0;
+declare continue handler for sqlexception
+set err = err + 1;
+start transaction;
+update t3 set x = 1, y = 42 where x = 2;
+insert into t3 values (3, 4711);
+if err > 0 then
+rollback;
+else
+commit;
+end if;
+select * from t3;
+end|
+create procedure bug14840_2()
+begin
+declare err int default 0;
+declare continue handler for sqlexception
+begin
+set err = err + 1;
+select err as 'Ping';
+end;
+update t3 set x = 1, y = 42 where x = 2;
+update t3 set x = 1, y = 42 where x = 2;
+insert into t3 values (3, 4711);
+select * from t3;
+end|
+insert into t3 values (1, 3), (2, 5)|
+call bug14840_1()|
+x y
+1 3
+2 5
+delete from t3|
+insert into t3 values (1, 3), (2, 5)|
+call bug14840_2()|
+Ping
+1
+Ping
+2
+x y
+1 3
+2 5
+3 4711
+drop procedure bug14840_1|
+drop procedure bug14840_2|
+drop table t3|
+drop procedure if exists bug10656_create_index|
+drop procedure if exists bug10656_myjoin|
+drop procedure if exists bug10656_truncate_table|
+CREATE TABLE t3 (
+`ID` int(11) default NULL,
+`txt` char(5) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1|
+INSERT INTO t3 (`ID`,`txt`) VALUES
+(1,'a'), (2,'b'), (3,'c'), (4,'d')|
+CREATE TABLE t4 (
+`ID` int(11) default NULL,
+`txt` char(5) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1|
+INSERT INTO t4 (`ID`,`txt`) VALUES
+(1,'a'), (2,'b'), (3,'c'), (4,'d')|
+create procedure bug10656_create_index()
+begin
+create index bug10656_my_index on t3 (ID);
+end|
+call bug10656_create_index()|
+create procedure bug10656_myjoin()
+begin
+update t3, t4 set t3.txt = t4.txt where t3.id = t4.id;
+end|
+call bug10656_myjoin()|
+create procedure bug10656_truncate_table()
+begin
+truncate table t3;
+end|
+call bug10656_truncate_table()|
+drop procedure bug10656_create_index|
+drop procedure bug10656_myjoin|
+drop procedure bug10656_truncate_table|
+drop table t3, t4|
+create table t3 (
+a int primary key,
+ach char(1)
+) engine = innodb|
+create table t4 (
+b int primary key,
+bch char(1)
+) engine = innodb|
+insert into t3 values (1 , 'aCh1' ) , ('2' , 'aCh2')|
+Warnings:
+Warning 1265 Data truncated for column 'ach' at row 1
+Warning 1265 Data truncated for column 'ach' at row 2
+insert into t4 values (1 , 'bCh1' )|
+Warnings:
+Warning 1265 Data truncated for column 'bch' at row 1
+drop procedure if exists bug3448|
+create procedure bug3448()
+select * from t3 inner join t4 on t3.a = t4.b|
+select * from t3 inner join t4 on t3.a = t4.b|
+a ach b bch
+1 a 1 b
+call bug3448()|
+a ach b bch
+1 a 1 b
+call bug3448()|
+a ach b bch
+1 a 1 b
+drop procedure bug3448|
+drop table t3, t4|
+drop procedure if exists bug14210|
+set @@session.max_heap_table_size=16384|
+select @@session.max_heap_table_size|
+@@session.max_heap_table_size
+16384
+create table t3 (a char(255)) engine=InnoDB|
+create procedure bug14210_fill_table()
+begin
+declare table_size, max_table_size int default 0;
+select @@session.max_heap_table_size into max_table_size;
+delete from t3;
+insert into t3 (a) values (repeat('a', 255));
+repeat
+insert into t3 select a from t3;
+select count(*)*255 from t3 into table_size;
+until table_size > max_table_size*2 end repeat;
+end|
+call bug14210_fill_table()|
+drop procedure bug14210_fill_table|
+create table t4 like t3|
+create procedure bug14210()
+begin
+declare a char(255);
+declare done int default 0;
+declare c cursor for select * from t3;
+declare continue handler for sqlstate '02000' set done = 1;
+open c;
+repeat
+fetch c into a;
+if not done then
+insert into t4 values (upper(a));
+end if;
+until done end repeat;
+close c;
+end|
+call bug14210()|
+select count(*) from t4|
+count(*)
+256
+drop table t3, t4|
+drop procedure bug14210|
+set @@session.max_heap_table_size=default|
diff --git a/mysql-test/r/sp_trans_log.result b/mysql-test/r/sp_trans_log.result
new file mode 100644
index 00000000000..96e6f76b23c
--- /dev/null
+++ b/mysql-test/r/sp_trans_log.result
@@ -0,0 +1,20 @@
+CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM|
+CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB|
+insert into t2 values (1,1)|
+create function bug23333()
+RETURNS int(11)
+DETERMINISTIC
+begin
+insert into t1 values (null);
+select count(*) from t1 into @a;
+return @a;
+end|
+reset master|
+insert into t2 values (bug23333(),1)|
+ERROR 23000: Duplicate entry '1' for key 1
+show binlog events from 98 /* with fixes for #23333 will show there is the query */|
+Log_name Pos Event_type Server_id End_log_pos Info
+select count(*),@a from t1 /* must be 1,1 */|
+count(*) @a
+1 1
+drop table t1, t2|
diff --git a/mysql-test/r/sql_mode.result b/mysql-test/r/sql_mode.result
index d459b6acf6d..474659f7dfc 100644
--- a/mysql-test/r/sql_mode.result
+++ b/mysql-test/r/sql_mode.result
@@ -1,4 +1,5 @@
-drop table if exists t1;
+drop table if exists t1,t2,v1,v2;
+drop view if exists t1,t2,v1,v2;
CREATE TABLE `t1` (
a int not null auto_increment,
`pseudo` varchar(35) character set latin2 NOT NULL default '',
@@ -18,7 +19,7 @@ t1 CREATE TABLE `t1` (
`email` varchar(60) character set latin2 NOT NULL default '',
PRIMARY KEY (`a`),
UNIQUE KEY `email` USING BTREE (`email`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
set @@sql_mode="ansi_quotes";
show variables like 'sql_mode';
Variable_name Value
@@ -31,7 +32,7 @@ t1 CREATE TABLE "t1" (
"email" varchar(60) character set latin2 NOT NULL default '',
PRIMARY KEY ("a"),
UNIQUE KEY "email" USING BTREE ("email")
-) ENGINE=HEAP DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
set @@sql_mode="no_table_options";
show variables like 'sql_mode';
Variable_name Value
@@ -57,11 +58,11 @@ t1 CREATE TABLE `t1` (
`email` varchar(60) character set latin2 NOT NULL default '',
PRIMARY KEY (`a`),
UNIQUE KEY `email` (`email`)
-) ENGINE=HEAP DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
set @@sql_mode="no_field_options,mysql323,mysql40";
show variables like 'sql_mode';
Variable_name Value
-sql_mode NO_FIELD_OPTIONS,MYSQL323,MYSQL40
+sql_mode NO_FIELD_OPTIONS,MYSQL323,MYSQL40,HIGH_NOT_PRECEDENCE
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -74,7 +75,7 @@ t1 CREATE TABLE `t1` (
set sql_mode="postgresql,oracle,mssql,db2,maxdb";
select @@sql_mode;
@@sql_mode
-PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,POSTGRESQL,ORACLE,MSSQL,DB2,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS
+PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,POSTGRESQL,ORACLE,MSSQL,DB2,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
@@ -120,7 +121,7 @@ create table t1 ( min_num dec(6,6) default .000001);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `min_num` decimal(7,6) default '0.000001'
+ `min_num` decimal(6,6) default '0.000001'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1 ;
set session sql_mode = 'IGNORE_SPACE';
@@ -128,14 +129,14 @@ create table t1 ( min_num dec(6,6) default 0.000001);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `min_num` decimal(7,6) default '0.000001'
+ `min_num` decimal(6,6) default '0.000001'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1 ;
create table t1 ( min_num dec(6,6) default .000001);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `min_num` decimal(7,6) default '0.000001'
+ `min_num` decimal(6,6) default '0.000001'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1 ;
set @@SQL_MODE=NULL;
@@ -160,3 +161,341 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`f1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
+SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='';
+show local variables like 'SQL_MODE';
+Variable_name Value
+sql_mode
+CREATE TABLE t1 (p int not null auto_increment, a varchar(20), primary key(p));
+INSERT t1 (a) VALUES
+('\\'),
+('\n'),
+('\b'),
+('\r'),
+('\t'),
+('\x'),
+('\a'),
+('\aa'),
+('\\a'),
+('\\aa'),
+('_'),
+('\_'),
+('\\_'),
+('\\\_'),
+('\\\\_'),
+('%'),
+('\%'),
+('\\%'),
+('\\\%'),
+('\\\\%')
+;
+SELECT p, hex(a) FROM t1;
+p hex(a)
+1 5C
+2 0A
+3 08
+4 0D
+5 09
+6 78
+7 61
+8 6161
+9 5C61
+10 5C6161
+11 5F
+12 5C5F
+13 5C5F
+14 5C5C5F
+15 5C5C5F
+16 25
+17 5C25
+18 5C25
+19 5C5C25
+20 5C5C25
+delete from t1 where a in ('\n','\r','\t', '\b');
+select
+masks.p,
+masks.a as mask,
+examples.a as example
+from
+t1 as masks
+left join t1 as examples on examples.a LIKE masks.a
+order by masks.p, example;
+p mask example
+1 \ \
+6 x x
+7 a a
+8 aa aa
+9 \a a
+10 \aa aa
+11 _ %
+11 _ a
+11 _ x
+11 _ \
+11 _ _
+12 \_ _
+13 \_ _
+14 \\_ \%
+14 \\_ \%
+14 \\_ \a
+14 \\_ \_
+14 \\_ \_
+15 \\_ \%
+15 \\_ \%
+15 \\_ \a
+15 \\_ \_
+15 \\_ \_
+16 % %
+16 % a
+16 % aa
+16 % x
+16 % \
+16 % \%
+16 % \%
+16 % \a
+16 % \aa
+16 % \\%
+16 % \\%
+16 % \\_
+16 % \\_
+16 % \_
+16 % \_
+16 % _
+17 \% %
+18 \% %
+19 \\% \
+19 \\% \%
+19 \\% \%
+19 \\% \a
+19 \\% \aa
+19 \\% \\%
+19 \\% \\%
+19 \\% \\_
+19 \\% \\_
+19 \\% \_
+19 \\% \_
+20 \\% \
+20 \\% \%
+20 \\% \%
+20 \\% \a
+20 \\% \aa
+20 \\% \\%
+20 \\% \\%
+20 \\% \\_
+20 \\% \\_
+20 \\% \_
+20 \\% \_
+DROP TABLE t1;
+SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
+show local variables like 'SQL_MODE';
+Variable_name Value
+sql_mode NO_BACKSLASH_ESCAPES
+CREATE TABLE t1 (p int not null auto_increment, a varchar(20), primary key(p));
+INSERT t1 (a) VALUES
+('\\'),
+('\n'),
+('\b'),
+('\r'),
+('\t'),
+('\x'),
+('\a'),
+('\aa'),
+('\\a'),
+('\\aa'),
+('_'),
+('\_'),
+('\\_'),
+('\\\_'),
+('\\\\_'),
+('%'),
+('\%'),
+('\\%'),
+('\\\%'),
+('\\\\%')
+;
+SELECT p, hex(a) FROM t1;
+p hex(a)
+1 5C5C
+2 5C6E
+3 5C62
+4 5C72
+5 5C74
+6 5C78
+7 5C61
+8 5C6161
+9 5C5C61
+10 5C5C6161
+11 5F
+12 5C5F
+13 5C5C5F
+14 5C5C5C5F
+15 5C5C5C5C5F
+16 25
+17 5C25
+18 5C5C25
+19 5C5C5C25
+20 5C5C5C5C25
+delete from t1 where a in ('\n','\r','\t', '\b');
+select
+masks.p,
+masks.a as mask,
+examples.a as example
+from
+t1 as masks
+left join t1 as examples on examples.a LIKE masks.a
+order by masks.p, example;
+p mask example
+1 \\ \\
+6 \x \x
+7 \a \a
+8 \aa \aa
+9 \\a \\a
+10 \\aa \\aa
+11 _ %
+11 _ _
+12 \_ \%
+12 \_ \a
+12 \_ \x
+12 \_ \\
+12 \_ \_
+13 \\_ \\%
+13 \\_ \\a
+13 \\_ \\_
+14 \\\_ \\\%
+14 \\\_ \\\_
+15 \\\\_ \\\\%
+15 \\\\_ \\\\_
+16 % %
+16 % \%
+16 % \a
+16 % \aa
+16 % \x
+16 % \\
+16 % \\%
+16 % \\a
+16 % \\aa
+16 % \\\%
+16 % \\\\%
+16 % \\\\_
+16 % \\\_
+16 % \\_
+16 % \_
+16 % _
+17 \% \%
+17 \% \a
+17 \% \aa
+17 \% \x
+17 \% \\
+17 \% \\%
+17 \% \\a
+17 \% \\aa
+17 \% \\\%
+17 \% \\\\%
+17 \% \\\\_
+17 \% \\\_
+17 \% \\_
+17 \% \_
+18 \\% \\
+18 \\% \\%
+18 \\% \\a
+18 \\% \\aa
+18 \\% \\\%
+18 \\% \\\\%
+18 \\% \\\\_
+18 \\% \\\_
+18 \\% \\_
+19 \\\% \\\%
+19 \\\% \\\\%
+19 \\\% \\\\_
+19 \\\% \\\_
+20 \\\\% \\\\%
+20 \\\\% \\\\_
+DROP TABLE t1;
+SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
+SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
+a\\b a\\\"b a'\\b a'\\\"b
+a\\b a\\\"b a'\\b a'\\\"b
+SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
+a\\b a\\\'b a"\\b a"\\\'b
+a\\b a\\\'b a"\\b a"\\\'b
+SET @@SQL_MODE='';
+SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
+a\b a\"b a'\b a'\"b
+a\b a\"b a'\b a'\"b
+SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
+a\b a\'b a"\b a"\'b
+a\b a\'b a"\b a"\'b
+set session sql_mode = 'NO_ENGINE_SUBSTITUTION';
+create table t1 (a int) engine=isam;
+ERROR HY000: The 'ISAM' feature is disabled; you need MySQL built with 'ISAM' to have it working
+show create table t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+set session sql_mode = '';
+create table t1 (a int) engine=isam;
+Warnings:
+Warning 1266 Using storage engine MyISAM for table 't1'
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+SET @@SQL_MODE='';
+create function `foo` () returns int return 5;
+show create function `foo`;
+Function sql_mode Create Function
+foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
+return 5
+SET @@SQL_MODE='ANSI_QUOTES';
+show create function `foo`;
+Function sql_mode Create Function
+foo CREATE DEFINER=`root`@`localhost` FUNCTION `foo`() RETURNS int(11)
+return 5
+drop function `foo`;
+create function `foo` () returns int return 5;
+show create function `foo`;
+Function sql_mode Create Function
+foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
+return 5
+SET @@SQL_MODE='';
+show create function `foo`;
+Function sql_mode Create Function
+foo ANSI_QUOTES CREATE DEFINER="root"@"localhost" FUNCTION "foo"() RETURNS int(11)
+return 5
+drop function `foo`;
+SET @@SQL_MODE='';
+create table t1 (a int);
+create table t2 (a int);
+create view v1 as select a from t1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`
+SET @@SQL_MODE='ANSI_QUOTES';
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "v1" AS select "t1"."a" AS "a" from "t1"
+create view v2 as select a from t2 where a in (select a from v1);
+drop view v2, v1;
+drop table t1, t2;
+select @@sql_mode;
+@@sql_mode
+ANSI_QUOTES
+set sql_mode=2097152;
+select @@sql_mode;
+@@sql_mode
+STRICT_TRANS_TABLES
+set sql_mode=4194304;
+select @@sql_mode;
+@@sql_mode
+STRICT_ALL_TABLES
+set sql_mode=16384+(65536*4);
+select @@sql_mode;
+@@sql_mode
+REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,NO_TABLE_OPTIONS,ANSI
+set sql_mode=2147483648;
+ERROR 42000: Variable 'sql_mode' can't be set to the value of '2147483648'
+select @@sql_mode;
+@@sql_mode
+REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,NO_TABLE_OPTIONS,ANSI
+SET @@SQL_MODE=@OLD_SQL_MODE;
diff --git a/mysql-test/r/ssl-big.result b/mysql-test/r/ssl-big.result
new file mode 100644
index 00000000000..39c4f34e46c
--- /dev/null
+++ b/mysql-test/r/ssl-big.result
@@ -0,0 +1,3 @@
+DROP TABLE IF EXISTS t1, t2;
+create table t1 (a int);
+drop table t1;
diff --git a/mysql-test/r/ssl.result b/mysql-test/r/ssl.result
new file mode 100644
index 00000000000..cd8bf52139e
--- /dev/null
+++ b/mysql-test/r/ssl.result
@@ -0,0 +1,2159 @@
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
+drop table if exists t1,t2,t3,t4;
+CREATE TABLE t1 (
+Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
+Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
+);
+INSERT INTO t1 VALUES (9410,9412);
+select period from t1;
+period
+9410
+select * from t1;
+Period Varor_period
+9410 9412
+select t1.* from t1;
+Period Varor_period
+9410 9412
+CREATE TABLE t2 (
+auto int not null auto_increment,
+fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
+companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
+fld3 char(30) DEFAULT '' NOT NULL,
+fld4 char(35) DEFAULT '' NOT NULL,
+fld5 char(35) DEFAULT '' NOT NULL,
+fld6 char(4) DEFAULT '' NOT NULL,
+UNIQUE fld1 (fld1),
+KEY fld3 (fld3),
+PRIMARY KEY (auto)
+);
+select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
+fld3
+imaginable
+select fld3 from t2 where fld3 like "%cultivation" ;
+fld3
+cultivation
+select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3,companynr from t2 where companynr = 58 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3 from t2 order by fld3 desc limit 10;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select fld3 from t2 order by fld3 desc limit 5;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+select fld3 from t2 order by fld3 desc limit 5,5;
+fld3
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select t2.fld3 from t2 where fld3 = 'honeysuckle';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'h%le';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
+fld3
+select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
+fld3
+explain select t2.fld3 from t2 where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld1) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3,not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+explain select fld3 from t2 use index (not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+fld3
+honeysuckle
+honoring
+explain select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld3 fld3 30 NULL 2 Using where; Using index
+select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
+fld1 fld3
+148504 Colombo
+068305 Colombo
+000000 nondecreasing
+select fld1,fld3 from t2 where companynr = 37 and fld3 = 'appendixes';
+fld1 fld3
+232605 appendixes
+1232605 appendixes
+1232606 appendixes
+1232607 appendixes
+1232608 appendixes
+1232609 appendixes
+select fld1 from t2 where fld1=250501 or fld1="250502";
+fld1
+250501
+250502
+explain select fld1 from t2 where fld1=250501 or fld1="250502";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 2 Using where; Using index
+select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+fld1
+250501
+250502
+250505
+250601
+explain select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
+select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
+fld1 fld3
+218401 faithful
+018007 fanatic
+228311 fated
+018017 featherweight
+218022 feed
+088303 feminine
+058004 Fenton
+038017 fetched
+018054 fetters
+208101 fiftieth
+238007 filial
+013606 fingerings
+218008 finishers
+038205 firearm
+188505 fitting
+202301 Fitzpatrick
+238008 fixedly
+012001 flanking
+018103 flint
+018104 flopping
+188007 flurried
+013602 foldout
+226205 foothill
+232102 forgivably
+228306 forthcoming
+186002 freakish
+208113 freest
+231315 freezes
+036002 funereal
+226209 furnishings
+198006 furthermore
+select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
+fld3
+select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
+fld3
+Chantilly
+select fld1,fld3 from t2 where fld1 like "25050%";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select fld1,fld3 from t2 where fld1 like "25050_";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select distinct companynr from t2;
+companynr
+00
+37
+36
+50
+58
+29
+40
+53
+65
+41
+34
+68
+select distinct companynr from t2 order by companynr;
+companynr
+00
+29
+34
+36
+37
+40
+41
+50
+53
+58
+65
+68
+select distinct companynr from t2 order by companynr desc;
+companynr
+68
+65
+58
+53
+50
+41
+40
+37
+36
+34
+29
+00
+select distinct t2.fld3,period from t2,t1 where companynr=37 and fld3 like "O%";
+fld3 period
+obliterates 9410
+offload 9410
+opaquely 9410
+organizer 9410
+overestimating 9410
+overlay 9410
+select distinct fld3 from t2 where companynr = 34 order by fld3;
+fld3
+absentee
+accessed
+ahead
+alphabetic
+Asiaticizations
+attitude
+aye
+bankruptcies
+belays
+Blythe
+bomb
+boulevard
+bulldozes
+cannot
+caressing
+charcoal
+checksumming
+chess
+clubroom
+colorful
+cosy
+creator
+crying
+Darius
+diffusing
+duality
+Eiffel
+Epiphany
+Ernestine
+explorers
+exterminated
+famine
+forked
+Gershwins
+heaving
+Hodges
+Iraqis
+Italianization
+Lagos
+landslide
+libretto
+Majorca
+mastering
+narrowed
+occurred
+offerers
+Palestine
+Peruvianizes
+pharmaceutic
+poisoning
+population
+Pygmalion
+rats
+realest
+recording
+regimented
+retransmitting
+reviver
+rouses
+scars
+sicker
+sleepwalk
+stopped
+sugars
+translatable
+uncles
+unexpected
+uprisings
+versatility
+vest
+select distinct fld3 from t2 limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct fld3 from t2 having fld3 like "A%" limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%";
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+Adl
+adm
+Ado
+ads
+adv
+aer
+aff
+afi
+afl
+afo
+agi
+ahe
+aim
+air
+Ald
+alg
+ali
+all
+alp
+alr
+ama
+ame
+amm
+ana
+and
+ane
+Ang
+ani
+Ann
+Ant
+api
+app
+aqu
+Ara
+arc
+Arm
+arr
+Art
+Asi
+ask
+asp
+ass
+ast
+att
+aud
+Aug
+aut
+ave
+avo
+awe
+aye
+Azt
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" order by a limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%" limit 10;
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+create table t3 (
+period int not null,
+name char(32) not null,
+companynr int not null,
+price double(11,0),
+price2 double(11,0),
+key (period),
+key (name)
+);
+create temporary table tmp engine = myisam select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+alter table t3 add t2nr int not null auto_increment primary key first;
+drop table tmp;
+SET SQL_BIG_TABLES=1;
+select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10;
+namn
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+SET SQL_BIG_TABLES=0;
+select distinct concat(fld3," ",fld3) from t2,t3 where t2.fld1=t3.t2nr order by fld3 limit 10;
+concat(fld3," ",fld3)
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+select distinct fld5 from t2 limit 10;
+fld5
+neat
+Steinberg
+jarring
+tinily
+balled
+persist
+attainments
+fanatic
+measures
+rightfulness
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=1;
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=0;
+select distinct fld3,repeat("a",length(fld3)),count(*) from t2 group by companynr,fld3 limit 100,10;
+fld3 repeat("a",length(fld3)) count(*)
+circus aaaaaa 1
+cited aaaaa 1
+Colombo aaaaaaa 1
+congresswoman aaaaaaaaaaaaa 1
+contrition aaaaaaaaaa 1
+corny aaaaa 1
+cultivation aaaaaaaaaaa 1
+definiteness aaaaaaaaaaaa 1
+demultiplex aaaaaaaaaaa 1
+disappointing aaaaaaaaaaaaa 1
+select distinct companynr,rtrim(space(512+companynr)) from t3 order by 1,2;
+companynr rtrim(space(512+companynr))
+37
+78
+101
+154
+311
+447
+512
+select distinct fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by fld3;
+fld3
+explain select t3.t2nr,fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by t3.t2nr,fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL fld1 NULL NULL NULL 1199 Using where; Using temporary; Using filesort
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.fld1 1 Using where; Using index
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index period period 4 NULL 41810
+1 SIMPLE t1 ref period period 4 test.t3.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index period period 4 NULL 41810
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+select period from t1;
+period
+9410
+select period from t1 where period=1900;
+period
+select fld3,period from t1,t2 where fld1 = 011401 order by period;
+fld3 period
+breaking 9410
+select fld3,period from t2,t3 where t2.fld1 = 011401 and t2.fld1=t3.t2nr and t3.period=1001;
+fld3 period
+breaking 1001
+explain select fld3,period from t2,t3 where t2.fld1 = 011401 and t3.t2nr=t2.fld1 and 1001 = t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const fld1 fld1 4 const 1
+1 SIMPLE t3 const PRIMARY,period PRIMARY 4 const 1
+select fld3,period from t2,t1 where companynr*10 = 37*10;
+fld3 period
+breaking 9410
+Romans 9410
+intercepted 9410
+bewilderingly 9410
+astound 9410
+admonishing 9410
+sumac 9410
+flanking 9410
+combed 9410
+subjective 9410
+scatterbrain 9410
+Eulerian 9410
+Kane 9410
+overlay 9410
+perturb 9410
+goblins 9410
+annihilates 9410
+Wotan 9410
+snatching 9410
+concludes 9410
+laterally 9410
+yelped 9410
+grazing 9410
+Baird 9410
+celery 9410
+misunderstander 9410
+handgun 9410
+foldout 9410
+mystic 9410
+succumbed 9410
+Nabisco 9410
+fingerings 9410
+aging 9410
+afield 9410
+ammonium 9410
+boat 9410
+intelligibility 9410
+Augustine 9410
+teethe 9410
+dreaded 9410
+scholastics 9410
+audiology 9410
+wallet 9410
+parters 9410
+eschew 9410
+quitter 9410
+neat 9410
+Steinberg 9410
+jarring 9410
+tinily 9410
+balled 9410
+persist 9410
+attainments 9410
+fanatic 9410
+measures 9410
+rightfulness 9410
+capably 9410
+impulsive 9410
+starlet 9410
+terminators 9410
+untying 9410
+announces 9410
+featherweight 9410
+pessimist 9410
+daughter 9410
+decliner 9410
+lawgiver 9410
+stated 9410
+readable 9410
+attrition 9410
+cascade 9410
+motors 9410
+interrogate 9410
+pests 9410
+stairway 9410
+dopers 9410
+testicle 9410
+Parsifal 9410
+leavings 9410
+postulation 9410
+squeaking 9410
+contrasted 9410
+leftover 9410
+whiteners 9410
+erases 9410
+Punjab 9410
+Merritt 9410
+Quixotism 9410
+sweetish 9410
+dogging 9410
+scornfully 9410
+bellow 9410
+bills 9410
+cupboard 9410
+sureties 9410
+puddings 9410
+fetters 9410
+bivalves 9410
+incurring 9410
+Adolph 9410
+pithed 9410
+Miles 9410
+trimmings 9410
+tragedies 9410
+skulking 9410
+flint 9410
+flopping 9410
+relaxing 9410
+offload 9410
+suites 9410
+lists 9410
+animized 9410
+multilayer 9410
+standardizes 9410
+Judas 9410
+vacuuming 9410
+dentally 9410
+humanness 9410
+inch 9410
+Weissmuller 9410
+irresponsibly 9410
+luckily 9410
+culled 9410
+medical 9410
+bloodbath 9410
+subschema 9410
+animals 9410
+Micronesia 9410
+repetitions 9410
+Antares 9410
+ventilate 9410
+pityingly 9410
+interdependent 9410
+Graves 9410
+neonatal 9410
+chafe 9410
+honoring 9410
+realtor 9410
+elite 9410
+funereal 9410
+abrogating 9410
+sorters 9410
+Conley 9410
+lectured 9410
+Abraham 9410
+Hawaii 9410
+cage 9410
+hushes 9410
+Simla 9410
+reporters 9410
+Dutchman 9410
+descendants 9410
+groupings 9410
+dissociate 9410
+coexist 9410
+Beebe 9410
+Taoism 9410
+Connally 9410
+fetched 9410
+checkpoints 9410
+rusting 9410
+galling 9410
+obliterates 9410
+traitor 9410
+resumes 9410
+analyzable 9410
+terminator 9410
+gritty 9410
+firearm 9410
+minima 9410
+Selfridge 9410
+disable 9410
+witchcraft 9410
+betroth 9410
+Manhattanize 9410
+imprint 9410
+peeked 9410
+swelling 9410
+interrelationships 9410
+riser 9410
+Gandhian 9410
+peacock 9410
+bee 9410
+kanji 9410
+dental 9410
+scarf 9410
+chasm 9410
+insolence 9410
+syndicate 9410
+alike 9410
+imperial 9410
+convulsion 9410
+railway 9410
+validate 9410
+normalizes 9410
+comprehensive 9410
+chewing 9410
+denizen 9410
+schemer 9410
+chronicle 9410
+Kline 9410
+Anatole 9410
+partridges 9410
+brunch 9410
+recruited 9410
+dimensions 9410
+Chicana 9410
+announced 9410
+praised 9410
+employing 9410
+linear 9410
+quagmire 9410
+western 9410
+relishing 9410
+serving 9410
+scheduling 9410
+lore 9410
+eventful 9410
+arteriole 9410
+disentangle 9410
+cured 9410
+Fenton 9410
+avoidable 9410
+drains 9410
+detectably 9410
+husky 9410
+impelling 9410
+undoes 9410
+evened 9410
+squeezes 9410
+destroyer 9410
+rudeness 9410
+beaner 9410
+boorish 9410
+Everhart 9410
+encompass 9410
+mushrooms 9410
+Alison 9410
+externally 9410
+pellagra 9410
+cult 9410
+creek 9410
+Huffman 9410
+Majorca 9410
+governing 9410
+gadfly 9410
+reassigned 9410
+intentness 9410
+craziness 9410
+psychic 9410
+squabbled 9410
+burlesque 9410
+capped 9410
+extracted 9410
+DiMaggio 9410
+exclamation 9410
+subdirectory 9410
+Gothicism 9410
+feminine 9410
+metaphysically 9410
+sanding 9410
+Miltonism 9410
+freakish 9410
+index 9410
+straight 9410
+flurried 9410
+denotative 9410
+coming 9410
+commencements 9410
+gentleman 9410
+gifted 9410
+Shanghais 9410
+sportswriting 9410
+sloping 9410
+navies 9410
+leaflet 9410
+shooter 9410
+Joplin 9410
+babies 9410
+assails 9410
+admiring 9410
+swaying 9410
+Goldstine 9410
+fitting 9410
+Norwalk 9410
+analogy 9410
+deludes 9410
+cokes 9410
+Clayton 9410
+exhausts 9410
+causality 9410
+sating 9410
+icon 9410
+throttles 9410
+communicants 9410
+dehydrate 9410
+priceless 9410
+publicly 9410
+incidentals 9410
+commonplace 9410
+mumbles 9410
+furthermore 9410
+cautioned 9410
+parametrized 9410
+registration 9410
+sadly 9410
+positioning 9410
+babysitting 9410
+eternal 9410
+hoarder 9410
+congregates 9410
+rains 9410
+workers 9410
+sags 9410
+unplug 9410
+garage 9410
+boulder 9410
+specifics 9410
+Teresa 9410
+Winsett 9410
+convenient 9410
+buckboards 9410
+amenities 9410
+resplendent 9410
+sews 9410
+participated 9410
+Simon 9410
+certificates 9410
+Fitzpatrick 9410
+Evanston 9410
+misted 9410
+textures 9410
+save 9410
+count 9410
+rightful 9410
+chaperone 9410
+Lizzy 9410
+clenched 9410
+effortlessly 9410
+accessed 9410
+beaters 9410
+Hornblower 9410
+vests 9410
+indulgences 9410
+infallibly 9410
+unwilling 9410
+excrete 9410
+spools 9410
+crunches 9410
+overestimating 9410
+ineffective 9410
+humiliation 9410
+sophomore 9410
+star 9410
+rifles 9410
+dialysis 9410
+arriving 9410
+indulge 9410
+clockers 9410
+languages 9410
+Antarctica 9410
+percentage 9410
+ceiling 9410
+specification 9410
+regimented 9410
+ciphers 9410
+pictures 9410
+serpents 9410
+allot 9410
+realized 9410
+mayoral 9410
+opaquely 9410
+hostess 9410
+fiftieth 9410
+incorrectly 9410
+decomposition 9410
+stranglings 9410
+mixture 9410
+electroencephalography 9410
+similarities 9410
+charges 9410
+freest 9410
+Greenberg 9410
+tinting 9410
+expelled 9410
+warm 9410
+smoothed 9410
+deductions 9410
+Romano 9410
+bitterroot 9410
+corset 9410
+securing 9410
+environing 9410
+cute 9410
+Crays 9410
+heiress 9410
+inform 9410
+avenge 9410
+universals 9410
+Kinsey 9410
+ravines 9410
+bestseller 9410
+equilibrium 9410
+extents 9410
+relatively 9410
+pressure 9410
+critiques 9410
+befouled 9410
+rightfully 9410
+mechanizing 9410
+Latinizes 9410
+timesharing 9410
+Aden 9410
+embassies 9410
+males 9410
+shapelessly 9410
+mastering 9410
+Newtonian 9410
+finishers 9410
+abates 9410
+teem 9410
+kiting 9410
+stodgy 9410
+feed 9410
+guitars 9410
+airships 9410
+store 9410
+denounces 9410
+Pyle 9410
+Saxony 9410
+serializations 9410
+Peruvian 9410
+taxonomically 9410
+kingdom 9410
+stint 9410
+Sault 9410
+faithful 9410
+Ganymede 9410
+tidiness 9410
+gainful 9410
+contrary 9410
+Tipperary 9410
+tropics 9410
+theorizers 9410
+renew 9410
+already 9410
+terminal 9410
+Hegelian 9410
+hypothesizer 9410
+warningly 9410
+journalizing 9410
+nested 9410
+Lars 9410
+saplings 9410
+foothill 9410
+labeled 9410
+imperiously 9410
+reporters 9410
+furnishings 9410
+precipitable 9410
+discounts 9410
+excises 9410
+Stalin 9410
+despot 9410
+ripeness 9410
+Arabia 9410
+unruly 9410
+mournfulness 9410
+boom 9410
+slaughter 9410
+Sabine 9410
+handy 9410
+rural 9410
+organizer 9410
+shipyard 9410
+civics 9410
+inaccuracy 9410
+rules 9410
+juveniles 9410
+comprised 9410
+investigations 9410
+stabilizes 9410
+seminaries 9410
+Hunter 9410
+sporty 9410
+test 9410
+weasels 9410
+CERN 9410
+tempering 9410
+afore 9410
+Galatean 9410
+techniques 9410
+error 9410
+veranda 9410
+severely 9410
+Cassites 9410
+forthcoming 9410
+guides 9410
+vanish 9410
+lied 9410
+sawtooth 9410
+fated 9410
+gradually 9410
+widens 9410
+preclude 9410
+evenhandedly 9410
+percentage 9410
+disobedience 9410
+humility 9410
+gleaning 9410
+petted 9410
+bloater 9410
+minion 9410
+marginal 9410
+apiary 9410
+measures 9410
+precaution 9410
+repelled 9410
+primary 9410
+coverings 9410
+Artemia 9410
+navigate 9410
+spatial 9410
+Gurkha 9410
+meanwhile 9410
+Melinda 9410
+Butterfield 9410
+Aldrich 9410
+previewing 9410
+glut 9410
+unaffected 9410
+inmate 9410
+mineral 9410
+impending 9410
+meditation 9410
+ideas 9410
+miniaturizes 9410
+lewdly 9410
+title 9410
+youthfulness 9410
+creak 9410
+Chippewa 9410
+clamored 9410
+freezes 9410
+forgivably 9410
+reduce 9410
+McGovern 9410
+Nazis 9410
+epistle 9410
+socializes 9410
+conceptions 9410
+Kevin 9410
+uncovering 9410
+chews 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+raining 9410
+infest 9410
+compartment 9410
+minting 9410
+ducks 9410
+roped 9410
+waltz 9410
+Lillian 9410
+repressions 9410
+chillingly 9410
+noncritical 9410
+lithograph 9410
+spongers 9410
+parenthood 9410
+posed 9410
+instruments 9410
+filial 9410
+fixedly 9410
+relives 9410
+Pandora 9410
+watering 9410
+ungrateful 9410
+secures 9410
+poison 9410
+dusted 9410
+encompasses 9410
+presentation 9410
+Kantian 9410
+select fld3,period,price,price2 from t2,t3 where t2.fld1=t3.t2nr and period >= 1001 and period <= 1002 and t2.companynr = 37 order by fld3,period, price;
+fld3 period price price2
+admonishing 1002 28357832 8723648
+analyzable 1002 28357832 8723648
+annihilates 1001 5987435 234724
+Antares 1002 28357832 8723648
+astound 1001 5987435 234724
+audiology 1001 5987435 234724
+Augustine 1002 28357832 8723648
+Baird 1002 28357832 8723648
+bewilderingly 1001 5987435 234724
+breaking 1001 5987435 234724
+Conley 1001 5987435 234724
+dentally 1002 28357832 8723648
+dissociate 1002 28357832 8723648
+elite 1001 5987435 234724
+eschew 1001 5987435 234724
+Eulerian 1001 5987435 234724
+flanking 1001 5987435 234724
+foldout 1002 28357832 8723648
+funereal 1002 28357832 8723648
+galling 1002 28357832 8723648
+Graves 1001 5987435 234724
+grazing 1001 5987435 234724
+groupings 1001 5987435 234724
+handgun 1001 5987435 234724
+humility 1002 28357832 8723648
+impulsive 1002 28357832 8723648
+inch 1001 5987435 234724
+intelligibility 1001 5987435 234724
+jarring 1001 5987435 234724
+lawgiver 1001 5987435 234724
+lectured 1002 28357832 8723648
+Merritt 1002 28357832 8723648
+neonatal 1001 5987435 234724
+offload 1002 28357832 8723648
+parters 1002 28357832 8723648
+pityingly 1002 28357832 8723648
+puddings 1002 28357832 8723648
+Punjab 1001 5987435 234724
+quitter 1002 28357832 8723648
+realtor 1001 5987435 234724
+relaxing 1001 5987435 234724
+repetitions 1001 5987435 234724
+resumes 1001 5987435 234724
+Romans 1002 28357832 8723648
+rusting 1001 5987435 234724
+scholastics 1001 5987435 234724
+skulking 1002 28357832 8723648
+stated 1002 28357832 8723648
+suites 1002 28357832 8723648
+sureties 1001 5987435 234724
+testicle 1002 28357832 8723648
+tinily 1002 28357832 8723648
+tragedies 1001 5987435 234724
+trimmings 1001 5987435 234724
+vacuuming 1001 5987435 234724
+ventilate 1001 5987435 234724
+wallet 1001 5987435 234724
+Weissmuller 1002 28357832 8723648
+Wotan 1002 28357832 8723648
+select t2.fld1,fld3,period,price,price2 from t2,t3 where t2.fld1>= 18201 and t2.fld1 <= 18811 and t2.fld1=t3.t2nr and period = 1001 and t2.companynr = 37;
+fld1 fld3 period price price2
+018201 relaxing 1001 5987435 234724
+018601 vacuuming 1001 5987435 234724
+018801 inch 1001 5987435 234724
+018811 repetitions 1001 5987435 234724
+create table t4 (
+companynr tinyint(2) unsigned zerofill NOT NULL default '00',
+companyname char(30) NOT NULL default '',
+PRIMARY KEY (companynr),
+UNIQUE KEY companyname(companyname)
+) ENGINE=MyISAM MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
+select STRAIGHT_JOIN t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select SQL_SMALL_RESULT t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select * from t1,t1 t12;
+Period Varor_period Period Varor_period
+9410 9412 9410 9412
+select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
+fld1 fld1
+250501 250501
+250502 250501
+250503 250501
+250504 250501
+250505 250501
+250501 250502
+250502 250502
+250503 250502
+250504 250502
+250505 250502
+250501 250503
+250502 250503
+250503 250503
+250504 250503
+250505 250503
+250501 250504
+250502 250504
+250503 250504
+250504 250504
+250505 250504
+250501 250505
+250502 250505
+250503 250505
+250504 250505
+250505 250505
+insert into t2 (fld1, companynr) values (999999,99);
+select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+companynr companyname
+99 NULL
+select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
+count(*)
+1199
+explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+companynr companyname
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+count(*)
+1200
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+delete from t2 where fld1=999999;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+companynr companynr
+37 36
+41 40
+explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t2.fld1 = 38208 or t2.fld1 = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t3.t2nr = 38208 or t3.t2nr = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select period from t1 where (((period > 0) or period < 10000 or (period = 1900)) and (period=1900 and period <= 1901) or (period=1903 and (period=1903)) and period>=1902) or ((period=1904 or period=1905) or (period=1906 or period>1907)) or (period=1908 and period = 1909);
+period
+9410
+select period from t1 where ((period > 0 and period < 1) or (((period > 0 and period < 100) and (period > 10)) or (period > 10)) or (period > 0 and (period > 5 or period > 6)));
+period
+9410
+select a.fld1 from t2 as a,t2 b where ((a.fld1 = 250501 and a.fld1=b.fld1) or a.fld1=250502 or a.fld1=250503 or (a.fld1=250505 and a.fld1<=b.fld1 and b.fld1>=a.fld1)) and a.fld1=b.fld1;
+fld1
+250501
+250502
+250503
+250505
+select fld1 from t2 where fld1 in (250502,98005,98006,250503,250605,250606) and fld1 >=250502 and fld1 not in (250605,250606);
+fld1
+250502
+250503
+select fld1 from t2 where fld1 between 250502 and 250504;
+fld1
+250502
+250503
+250504
+select fld3 from t2 where (((fld3 like "_%L%" ) or (fld3 like "%ok%")) and ( fld3 like "L%" or fld3 like "G%")) and fld3 like "L%" ;
+fld3
+label
+labeled
+labeled
+landslide
+laterally
+leaflet
+lewdly
+Lillian
+luckily
+select count(*) from t1;
+count(*)
+1
+select companynr,count(*),sum(fld1) from t2 group by companynr;
+companynr count(*) sum(fld1)
+00 82 10355753
+29 95 14473298
+34 70 17788966
+36 215 22786296
+37 588 83602098
+40 37 6618386
+41 52 12816335
+50 11 1595438
+53 4 793210
+58 23 2254293
+65 10 2284055
+68 12 3097288
+select companynr,count(*) from t2 group by companynr order by companynr desc limit 5;
+companynr count(*)
+68 12
+65 10
+58 23
+53 4
+50 11
+select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+Warnings:
+Note 1003 select count(0) AS `count(*)`,min(`test`.`t2`.`fld4`) AS `min(fld4)`,max(`test`.`t2`.`fld4`) AS `max(fld4)`,sum(`test`.`t2`.`fld1`) AS `sum(fld1)`,avg(`test`.`t2`.`fld1`) AS `avg(fld1)`,std(`test`.`t2`.`fld1`) AS `std(fld1)`,variance(`test`.`t2`.`fld1`) AS `variance(fld1)` from `test`.`t2` where ((`test`.`t2`.`companynr` = 34) and (`test`.`t2`.`fld4` <> _latin1''))
+select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
+companynr count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+00 82 Anthony windmills 10355753 126289.6707 115550.9757 13352027981.7087
+29 95 abut wetness 14473298 152350.5053 8368.5480 70032594.9026
+34 70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+select companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select /*! SQL_SMALL_RESULT */ companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select companynr,count(price),sum(price),min(price),max(price),avg(price) from t3 group by companynr ;
+companynr count(price) sum(price) min(price) max(price) avg(price)
+37 12543 309394878010 5987435 39654943 24666736.6667
+78 8362 414611089292 726498 98439034 49582766.0000
+101 4181 3489454238 834598 834598 834598.0000
+154 4181 4112197254950 983543950 983543950 983543950.0000
+311 4181 979599938 234298 234298 234298.0000
+447 4181 9929180954 2374834 2374834 2374834.0000
+512 4181 3288532102 786542 786542 786542.0000
+select distinct mod(companynr,10) from t4 group by companynr;
+mod(companynr,10)
+0
+9
+4
+6
+7
+1
+3
+8
+5
+select distinct 1 from t4 group by companynr;
+1
+1
+select count(distinct fld1) from t2;
+count(distinct fld1)
+1199
+select companynr,count(distinct fld1) from t2 group by companynr;
+companynr count(distinct fld1)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(*) from t2 group by companynr;
+companynr count(*)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,1000))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,1000)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,200))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,200)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct floor(fld1/100)) from t2 group by companynr;
+companynr count(distinct floor(fld1/100))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select companynr,count(distinct concat(repeat(65,1000),floor(fld1/100))) from t2 group by companynr;
+companynr count(distinct concat(repeat(65,1000),floor(fld1/100)))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select sum(fld1),fld3 from t2 where fld3="Romans" group by fld1 limit 10;
+sum(fld1) fld3
+11402 Romans
+select name,count(*) from t3 where name='cloakroom' group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name='cloakroom' and price>10 group by name;
+name count(*)
+cloakroom 4181
+select count(*) from t3 where name='cloakroom' and price2=823742;
+count(*)
+4181
+select name,count(*) from t3 where name='cloakroom' and price2=823742 group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name >= "extramarital" and price <= 39654943 group by name;
+name count(*)
+extramarital 4181
+gazer 4181
+gems 4181
+Iranizes 4181
+spates 4181
+tucked 4181
+violinist 4181
+select t2.fld3,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld3 count(*)
+spates 4181
+select companynr|0,companyname from t4 group by 1;
+companynr|0 companyname
+0 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by t2.companynr order by companyname;
+companynr companyname count(*)
+29 company 1 95
+68 company 10 12
+50 company 11 11
+34 company 2 70
+36 company 3 215
+37 company 4 588
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+00 Unknown 82
+select t2.fld1,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld1 count(*)
+158402 4181
+select sum(Period)/count(*) from t1;
+sum(Period)/count(*)
+9410.0000
+select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
+companynr count sum diff func
+37 12543 309394878010 0.0000 464091
+78 8362 414611089292 0.0000 652236
+101 4181 3489454238 0.0000 422281
+154 4181 4112197254950 0.0000 643874
+311 4181 979599938 0.0000 1300291
+447 4181 9929180954 0.0000 1868907
+512 4181 3288532102 0.0000 2140672
+select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
+companynr avg
+154 983543950.0000
+select companynr,count(*) from t2 group by companynr order by 2 desc;
+companynr count(*)
+37 588
+36 215
+29 95
+00 82
+34 70
+41 52
+40 37
+58 23
+68 12
+50 11
+65 10
+53 4
+select companynr,count(*) from t2 where companynr > 40 group by companynr order by 2 desc;
+companynr count(*)
+41 52
+58 23
+68 12
+50 11
+65 10
+53 4
+select t2.fld4,t2.fld1,count(price),sum(price),min(price),max(price),avg(price) from t3,t2 where t3.companynr = 37 and t2.fld1 = t3.t2nr group by fld1,t2.fld4;
+fld4 fld1 count(price) sum(price) min(price) max(price) avg(price)
+teethe 000001 1 5987435 5987435 5987435 5987435.0000
+dreaded 011401 1 5987435 5987435 5987435 5987435.0000
+scholastics 011402 1 28357832 28357832 28357832 28357832.0000
+audiology 011403 1 39654943 39654943 39654943 39654943.0000
+wallet 011501 1 5987435 5987435 5987435 5987435.0000
+parters 011701 1 5987435 5987435 5987435 5987435.0000
+eschew 011702 1 28357832 28357832 28357832 28357832.0000
+quitter 011703 1 39654943 39654943 39654943 39654943.0000
+neat 012001 1 5987435 5987435 5987435 5987435.0000
+Steinberg 012003 1 39654943 39654943 39654943 39654943.0000
+balled 012301 1 5987435 5987435 5987435 5987435.0000
+persist 012302 1 28357832 28357832 28357832 28357832.0000
+attainments 012303 1 39654943 39654943 39654943 39654943.0000
+capably 012501 1 5987435 5987435 5987435 5987435.0000
+impulsive 012602 1 28357832 28357832 28357832 28357832.0000
+starlet 012603 1 39654943 39654943 39654943 39654943.0000
+featherweight 012701 1 5987435 5987435 5987435 5987435.0000
+pessimist 012702 1 28357832 28357832 28357832 28357832.0000
+daughter 012703 1 39654943 39654943 39654943 39654943.0000
+lawgiver 013601 1 5987435 5987435 5987435 5987435.0000
+stated 013602 1 28357832 28357832 28357832 28357832.0000
+readable 013603 1 39654943 39654943 39654943 39654943.0000
+testicle 013801 1 5987435 5987435 5987435 5987435.0000
+Parsifal 013802 1 28357832 28357832 28357832 28357832.0000
+leavings 013803 1 39654943 39654943 39654943 39654943.0000
+squeaking 013901 1 5987435 5987435 5987435 5987435.0000
+contrasted 016001 1 5987435 5987435 5987435 5987435.0000
+leftover 016201 1 5987435 5987435 5987435 5987435.0000
+whiteners 016202 1 28357832 28357832 28357832 28357832.0000
+erases 016301 1 5987435 5987435 5987435 5987435.0000
+Punjab 016302 1 28357832 28357832 28357832 28357832.0000
+Merritt 016303 1 39654943 39654943 39654943 39654943.0000
+sweetish 018001 1 5987435 5987435 5987435 5987435.0000
+dogging 018002 1 28357832 28357832 28357832 28357832.0000
+scornfully 018003 1 39654943 39654943 39654943 39654943.0000
+fetters 018012 1 28357832 28357832 28357832 28357832.0000
+bivalves 018013 1 39654943 39654943 39654943 39654943.0000
+skulking 018021 1 5987435 5987435 5987435 5987435.0000
+flint 018022 1 28357832 28357832 28357832 28357832.0000
+flopping 018023 1 39654943 39654943 39654943 39654943.0000
+Judas 018032 1 28357832 28357832 28357832 28357832.0000
+vacuuming 018033 1 39654943 39654943 39654943 39654943.0000
+medical 018041 1 5987435 5987435 5987435 5987435.0000
+bloodbath 018042 1 28357832 28357832 28357832 28357832.0000
+subschema 018043 1 39654943 39654943 39654943 39654943.0000
+interdependent 018051 1 5987435 5987435 5987435 5987435.0000
+Graves 018052 1 28357832 28357832 28357832 28357832.0000
+neonatal 018053 1 39654943 39654943 39654943 39654943.0000
+sorters 018061 1 5987435 5987435 5987435 5987435.0000
+epistle 018062 1 28357832 28357832 28357832 28357832.0000
+Conley 018101 1 5987435 5987435 5987435 5987435.0000
+lectured 018102 1 28357832 28357832 28357832 28357832.0000
+Abraham 018103 1 39654943 39654943 39654943 39654943.0000
+cage 018201 1 5987435 5987435 5987435 5987435.0000
+hushes 018202 1 28357832 28357832 28357832 28357832.0000
+Simla 018402 1 28357832 28357832 28357832 28357832.0000
+reporters 018403 1 39654943 39654943 39654943 39654943.0000
+coexist 018601 1 5987435 5987435 5987435 5987435.0000
+Beebe 018602 1 28357832 28357832 28357832 28357832.0000
+Taoism 018603 1 39654943 39654943 39654943 39654943.0000
+Connally 018801 1 5987435 5987435 5987435 5987435.0000
+fetched 018802 1 28357832 28357832 28357832 28357832.0000
+checkpoints 018803 1 39654943 39654943 39654943 39654943.0000
+gritty 018811 1 5987435 5987435 5987435 5987435.0000
+firearm 018812 1 28357832 28357832 28357832 28357832.0000
+minima 019101 1 5987435 5987435 5987435 5987435.0000
+Selfridge 019102 1 28357832 28357832 28357832 28357832.0000
+disable 019103 1 39654943 39654943 39654943 39654943.0000
+witchcraft 019201 1 5987435 5987435 5987435 5987435.0000
+betroth 030501 1 5987435 5987435 5987435 5987435.0000
+Manhattanize 030502 1 28357832 28357832 28357832 28357832.0000
+imprint 030503 1 39654943 39654943 39654943 39654943.0000
+swelling 031901 1 5987435 5987435 5987435 5987435.0000
+interrelationships 036001 1 5987435 5987435 5987435 5987435.0000
+riser 036002 1 28357832 28357832 28357832 28357832.0000
+bee 038001 1 5987435 5987435 5987435 5987435.0000
+kanji 038002 1 28357832 28357832 28357832 28357832.0000
+dental 038003 1 39654943 39654943 39654943 39654943.0000
+railway 038011 1 5987435 5987435 5987435 5987435.0000
+validate 038012 1 28357832 28357832 28357832 28357832.0000
+normalizes 038013 1 39654943 39654943 39654943 39654943.0000
+Kline 038101 1 5987435 5987435 5987435 5987435.0000
+Anatole 038102 1 28357832 28357832 28357832 28357832.0000
+partridges 038103 1 39654943 39654943 39654943 39654943.0000
+recruited 038201 1 5987435 5987435 5987435 5987435.0000
+dimensions 038202 1 28357832 28357832 28357832 28357832.0000
+Chicana 038203 1 39654943 39654943 39654943 39654943.0000
+select t3.companynr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 group by companynr,fld3;
+companynr fld3 sum(price)
+512 boat 786542
+512 capably 786542
+512 cupboard 786542
+512 decliner 786542
+512 descendants 786542
+512 dopers 786542
+512 erases 786542
+512 Micronesia 786542
+512 Miles 786542
+512 skies 786542
+select t2.companynr,count(*),min(fld3),max(fld3),sum(price),avg(price) from t2,t3 where t3.companynr >= 30 and t3.companynr <= 58 and t3.t2nr = t2.fld1 and 1+1=2 group by t2.companynr;
+companynr count(*) min(fld3) max(fld3) sum(price) avg(price)
+00 1 Omaha Omaha 5987435 5987435.0000
+36 1 dubbed dubbed 28357832 28357832.0000
+37 83 Abraham Wotan 1908978016 22999735.1325
+50 2 scribbled tapestry 68012775 34006387.5000
+select t3.companynr+0,t3.t2nr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 37 group by 1,t3.t2nr,fld3,fld3,fld3,fld3,fld3 order by fld1;
+t3.companynr+0 t2nr fld3 sum(price)
+37 1 Omaha 5987435
+37 11401 breaking 5987435
+37 11402 Romans 28357832
+37 11403 intercepted 39654943
+37 11501 bewilderingly 5987435
+37 11701 astound 5987435
+37 11702 admonishing 28357832
+37 11703 sumac 39654943
+37 12001 flanking 5987435
+37 12003 combed 39654943
+37 12301 Eulerian 5987435
+37 12302 dubbed 28357832
+37 12303 Kane 39654943
+37 12501 annihilates 5987435
+37 12602 Wotan 28357832
+37 12603 snatching 39654943
+37 12701 grazing 5987435
+37 12702 Baird 28357832
+37 12703 celery 39654943
+37 13601 handgun 5987435
+37 13602 foldout 28357832
+37 13603 mystic 39654943
+37 13801 intelligibility 5987435
+37 13802 Augustine 28357832
+37 13803 teethe 39654943
+37 13901 scholastics 5987435
+37 16001 audiology 5987435
+37 16201 wallet 5987435
+37 16202 parters 28357832
+37 16301 eschew 5987435
+37 16302 quitter 28357832
+37 16303 neat 39654943
+37 18001 jarring 5987435
+37 18002 tinily 28357832
+37 18003 balled 39654943
+37 18012 impulsive 28357832
+37 18013 starlet 39654943
+37 18021 lawgiver 5987435
+37 18022 stated 28357832
+37 18023 readable 39654943
+37 18032 testicle 28357832
+37 18033 Parsifal 39654943
+37 18041 Punjab 5987435
+37 18042 Merritt 28357832
+37 18043 Quixotism 39654943
+37 18051 sureties 5987435
+37 18052 puddings 28357832
+37 18053 tapestry 39654943
+37 18061 trimmings 5987435
+37 18062 humility 28357832
+37 18101 tragedies 5987435
+37 18102 skulking 28357832
+37 18103 flint 39654943
+37 18201 relaxing 5987435
+37 18202 offload 28357832
+37 18402 suites 28357832
+37 18403 lists 39654943
+37 18601 vacuuming 5987435
+37 18602 dentally 28357832
+37 18603 humanness 39654943
+37 18801 inch 5987435
+37 18802 Weissmuller 28357832
+37 18803 irresponsibly 39654943
+37 18811 repetitions 5987435
+37 18812 Antares 28357832
+37 19101 ventilate 5987435
+37 19102 pityingly 28357832
+37 19103 interdependent 39654943
+37 19201 Graves 5987435
+37 30501 neonatal 5987435
+37 30502 scribbled 28357832
+37 30503 chafe 39654943
+37 31901 realtor 5987435
+37 36001 elite 5987435
+37 36002 funereal 28357832
+37 38001 Conley 5987435
+37 38002 lectured 28357832
+37 38003 Abraham 39654943
+37 38011 groupings 5987435
+37 38012 dissociate 28357832
+37 38013 coexist 39654943
+37 38101 rusting 5987435
+37 38102 galling 28357832
+37 38103 obliterates 39654943
+37 38201 resumes 5987435
+37 38202 analyzable 28357832
+37 38203 terminator 39654943
+select sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1= t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008;
+sum(price)
+234298
+select t2.fld1,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1 = t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008 or t3.t2nr = t2.fld1 and t2.fld1 = 38008 group by t2.fld1;
+fld1 sum(price)
+038008 234298
+explain select fld3 from t2 where 1>2 or 2>3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select fld3 from t2 where fld1=fld1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select companynr,fld1 from t2 HAVING fld1=250501 or fld1=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,fld1 from t2 WHERE fld1>=250501 HAVING fld1<=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,count(*) as count,sum(fld1) as sum from t2 group by companynr having count > 40 and sum/count >= 120000;
+companynr count sum
+00 82 10355753
+29 95 14473298
+34 70 17788966
+37 588 83602098
+41 52 12816335
+select companynr from t2 group by companynr having count(*) > 40 and sum(fld1)/count(*) >= 120000 ;
+companynr
+00
+29
+34
+37
+41
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by companyname having t2.companynr >= 40;
+companynr companyname count(*)
+68 company 10 12
+50 company 11 11
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+select count(*) from t2;
+count(*)
+1199
+select count(*) from t2 where fld1 < 098024;
+count(*)
+387
+select min(fld1) from t2 where fld1>= 098024;
+min(fld1)
+98024
+select max(fld1) from t2 where fld1>= 098024;
+max(fld1)
+1232609
+select count(*) from t3 where price2=76234234;
+count(*)
+4181
+select count(*) from t3 where companynr=512 and price2=76234234;
+count(*)
+4181
+explain select min(fld1),max(fld1),count(*) from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select min(fld1),max(fld1),count(*) from t2;
+min(fld1) max(fld1) count(*)
+0 1232609 1199
+select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742;
+min(t2nr) max(t2nr)
+2115 2115
+select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78;
+count(*) min(t2nr) max(t2nr)
+4181 4 41804
+select t2nr,count(*) from t3 where name='gems' group by t2nr limit 20;
+t2nr count(*)
+9 1
+19 1
+29 1
+39 1
+49 1
+59 1
+69 1
+79 1
+89 1
+99 1
+109 1
+119 1
+129 1
+139 1
+149 1
+159 1
+169 1
+179 1
+189 1
+199 1
+select max(t2nr) from t3 where price=983543950;
+max(t2nr)
+41807
+select t1.period from t3 = t1 limit 1;
+period
+1001
+select t1.period from t1 as t1 limit 1;
+period
+9410
+select t1.period as "Nuvarande period" from t1 as t1 limit 1;
+Nuvarande period
+9410
+select period as ok_period from t1 limit 1;
+ok_period
+9410
+select period as ok_period from t1 group by ok_period limit 1;
+ok_period
+9410
+select 1+1 as summa from t1 group by summa limit 1;
+summa
+2
+select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
+Nuvarande period
+9410
+show tables;
+Tables_in_test
+t1
+t2
+t3
+t4
+show tables from test like "s%";
+Tables_in_test (s%)
+show tables from test like "t?";
+Tables_in_test (t?)
+show full columns from t2;
+Field Type Collation Null Key Default Extra Privileges Comment
+auto int(11) NULL NO PRI NULL auto_increment #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+companynr tinyint(2) unsigned zerofill NULL NO 00 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 'f%';
+Field Type Collation Null Key Default Extra Privileges Comment
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 's%';
+Field Type Collation Null Key Default Extra Privileges Comment
+show keys from t2;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+drop table t4, t3, t2, t1;
+CREATE TABLE t1 (
+cont_nr int(11) NOT NULL auto_increment,
+ver_nr int(11) NOT NULL default '0',
+aufnr int(11) NOT NULL default '0',
+username varchar(50) NOT NULL default '',
+hdl_nr int(11) NOT NULL default '0',
+eintrag date NOT NULL default '0000-00-00',
+st_klasse varchar(40) NOT NULL default '',
+st_wert varchar(40) NOT NULL default '',
+st_zusatz varchar(40) NOT NULL default '',
+st_bemerkung varchar(255) NOT NULL default '',
+kunden_art varchar(40) NOT NULL default '',
+mcbs_knr int(11) default NULL,
+mcbs_aufnr int(11) NOT NULL default '0',
+schufa_status char(1) default '?',
+bemerkung text,
+wirknetz text,
+wf_igz int(11) NOT NULL default '0',
+tarifcode varchar(80) default NULL,
+recycle char(1) default NULL,
+sim varchar(30) default NULL,
+mcbs_tpl varchar(30) default NULL,
+emp_nr int(11) NOT NULL default '0',
+laufzeit int(11) default NULL,
+hdl_name varchar(30) default NULL,
+prov_hdl_nr int(11) NOT NULL default '0',
+auto_wirknetz varchar(50) default NULL,
+auto_billing varchar(50) default NULL,
+touch timestamp NOT NULL,
+kategorie varchar(50) default NULL,
+kundentyp varchar(20) NOT NULL default '',
+sammel_rech_msisdn varchar(30) NOT NULL default '',
+p_nr varchar(9) NOT NULL default '',
+suffix char(3) NOT NULL default '',
+PRIMARY KEY (cont_nr),
+KEY idx_aufnr(aufnr),
+KEY idx_hdl_nr(hdl_nr),
+KEY idx_st_klasse(st_klasse),
+KEY ver_nr(ver_nr),
+KEY eintrag_idx(eintrag),
+KEY emp_nr_idx(emp_nr),
+KEY wf_igz(wf_igz),
+KEY touch(touch),
+KEY hdl_tag(eintrag,hdl_nr),
+KEY prov_hdl_nr(prov_hdl_nr),
+KEY mcbs_aufnr(mcbs_aufnr),
+KEY kundentyp(kundentyp),
+KEY p_nr(p_nr,suffix)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (3359356,405,3359356,'Mustermann Musterfrau',52500,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1485525,2122316,'+','','N',1909160,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',3,24,'MobilCom Shop Koeln',52500,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359357,468,3359357,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1503580,2139699,'+','','P',1909171,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359358,407,3359358,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1501358,2137473,'N','','N',1909159,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359359,468,3359359,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1507831,2143894,'+','','P',1909162,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359360,0,0,'Mustermann Musterfrau',29674907,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1900169997,2414578,'+',NULL,'N',1909148,'',NULL,NULL,'RV99066_2',20,NULL,'POS',29674907,NULL,NULL,20010202105916,'Mobilfunk','','','97317481','007');
+INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag storniert','','(7001-84):Storno, Kd. möchte nicht mehr','privat',NULL,0,'+','','P',1909150,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
+Kundentyp kategorie
+Privat (Private Nutzung) Mobilfunk
+Warnings:
+Warning 1052 Column 'kundentyp' in group statement is ambiguous
+drop table t1;
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
diff --git a/mysql-test/r/have_openssl_1.require b/mysql-test/r/ssl_8k_key.result
index b33a1d2854f..b33a1d2854f 100644
--- a/mysql-test/r/have_openssl_1.require
+++ b/mysql-test/r/ssl_8k_key.result
diff --git a/mysql-test/r/ssl_compress.result b/mysql-test/r/ssl_compress.result
new file mode 100644
index 00000000000..78e83dabdd5
--- /dev/null
+++ b/mysql-test/r/ssl_compress.result
@@ -0,0 +1,2165 @@
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
+SHOW STATUS LIKE 'Compression';
+Variable_name Value
+Compression ON
+drop table if exists t1,t2,t3,t4;
+CREATE TABLE t1 (
+Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
+Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
+);
+INSERT INTO t1 VALUES (9410,9412);
+select period from t1;
+period
+9410
+select * from t1;
+Period Varor_period
+9410 9412
+select t1.* from t1;
+Period Varor_period
+9410 9412
+CREATE TABLE t2 (
+auto int not null auto_increment,
+fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
+companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
+fld3 char(30) DEFAULT '' NOT NULL,
+fld4 char(35) DEFAULT '' NOT NULL,
+fld5 char(35) DEFAULT '' NOT NULL,
+fld6 char(4) DEFAULT '' NOT NULL,
+UNIQUE fld1 (fld1),
+KEY fld3 (fld3),
+PRIMARY KEY (auto)
+);
+select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
+fld3
+imaginable
+select fld3 from t2 where fld3 like "%cultivation" ;
+fld3
+cultivation
+select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3,companynr from t2 where companynr = 58 order by fld3;
+fld3 companynr
+concoct 58
+druggists 58
+engrossing 58
+Eurydice 58
+exclaimers 58
+ferociousness 58
+hopelessness 58
+Huey 58
+imaginable 58
+judges 58
+merging 58
+ostrich 58
+peering 58
+Phelps 58
+presumes 58
+Ruth 58
+sentences 58
+Shylock 58
+straggled 58
+synergy 58
+thanking 58
+tying 58
+unlocks 58
+select fld3 from t2 order by fld3 desc limit 10;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select fld3 from t2 order by fld3 desc limit 5;
+fld3
+youthfulness
+yelped
+Wotan
+workers
+Witt
+select fld3 from t2 order by fld3 desc limit 5,5;
+fld3
+witchcraft
+Winsett
+Willy
+willed
+wildcats
+select t2.fld3 from t2 where fld3 = 'honeysuckle';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'h%le';
+fld3
+honeysuckle
+select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
+fld3
+select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
+fld3
+explain select t2.fld3 from t2 where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld1) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select fld3 from t2 use index (fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref fld3 fld3 30 const 1 Using where; Using index
+explain select fld3 from t2 ignore index (fld3,not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+explain select fld3 from t2 use index (not_used);
+ERROR HY000: Key 'not_used' doesn't exist in table 't2'
+select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+fld3
+honeysuckle
+honoring
+explain select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld3 fld3 30 NULL 2 Using where; Using index
+select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
+fld1 fld3
+148504 Colombo
+068305 Colombo
+000000 nondecreasing
+select fld1,fld3 from t2 where companynr = 37 and fld3 = 'appendixes';
+fld1 fld3
+232605 appendixes
+1232605 appendixes
+1232606 appendixes
+1232607 appendixes
+1232608 appendixes
+1232609 appendixes
+select fld1 from t2 where fld1=250501 or fld1="250502";
+fld1
+250501
+250502
+explain select fld1 from t2 where fld1=250501 or fld1="250502";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 2 Using where; Using index
+select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+fld1
+250501
+250502
+250505
+250601
+explain select fld1 from t2 where fld1=250501 or fld1=250502 or fld1 >= 250505 and fld1 <= 250601 or fld1 between 250501 and 250502;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
+select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
+fld1 fld3
+218401 faithful
+018007 fanatic
+228311 fated
+018017 featherweight
+218022 feed
+088303 feminine
+058004 Fenton
+038017 fetched
+018054 fetters
+208101 fiftieth
+238007 filial
+013606 fingerings
+218008 finishers
+038205 firearm
+188505 fitting
+202301 Fitzpatrick
+238008 fixedly
+012001 flanking
+018103 flint
+018104 flopping
+188007 flurried
+013602 foldout
+226205 foothill
+232102 forgivably
+228306 forthcoming
+186002 freakish
+208113 freest
+231315 freezes
+036002 funereal
+226209 furnishings
+198006 furthermore
+select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
+fld3
+select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
+fld3
+Chantilly
+select fld1,fld3 from t2 where fld1 like "25050%";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select fld1,fld3 from t2 where fld1 like "25050_";
+fld1 fld3
+250501 poisoning
+250502 Iraqis
+250503 heaving
+250504 population
+250505 bomb
+select distinct companynr from t2;
+companynr
+00
+37
+36
+50
+58
+29
+40
+53
+65
+41
+34
+68
+select distinct companynr from t2 order by companynr;
+companynr
+00
+29
+34
+36
+37
+40
+41
+50
+53
+58
+65
+68
+select distinct companynr from t2 order by companynr desc;
+companynr
+68
+65
+58
+53
+50
+41
+40
+37
+36
+34
+29
+00
+select distinct t2.fld3,period from t2,t1 where companynr=37 and fld3 like "O%";
+fld3 period
+obliterates 9410
+offload 9410
+opaquely 9410
+organizer 9410
+overestimating 9410
+overlay 9410
+select distinct fld3 from t2 where companynr = 34 order by fld3;
+fld3
+absentee
+accessed
+ahead
+alphabetic
+Asiaticizations
+attitude
+aye
+bankruptcies
+belays
+Blythe
+bomb
+boulevard
+bulldozes
+cannot
+caressing
+charcoal
+checksumming
+chess
+clubroom
+colorful
+cosy
+creator
+crying
+Darius
+diffusing
+duality
+Eiffel
+Epiphany
+Ernestine
+explorers
+exterminated
+famine
+forked
+Gershwins
+heaving
+Hodges
+Iraqis
+Italianization
+Lagos
+landslide
+libretto
+Majorca
+mastering
+narrowed
+occurred
+offerers
+Palestine
+Peruvianizes
+pharmaceutic
+poisoning
+population
+Pygmalion
+rats
+realest
+recording
+regimented
+retransmitting
+reviver
+rouses
+scars
+sicker
+sleepwalk
+stopped
+sugars
+translatable
+uncles
+unexpected
+uprisings
+versatility
+vest
+select distinct fld3 from t2 limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct fld3 from t2 having fld3 like "A%" limit 10;
+fld3
+abates
+abiding
+Abraham
+abrogating
+absentee
+abut
+accessed
+accruing
+accumulating
+accuracies
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%";
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+Adl
+adm
+Ado
+ads
+adv
+aer
+aff
+afi
+afl
+afo
+agi
+ahe
+aim
+air
+Ald
+alg
+ali
+all
+alp
+alr
+ama
+ame
+amm
+ana
+and
+ane
+Ang
+ani
+Ann
+Ant
+api
+app
+aqu
+Ara
+arc
+Arm
+arr
+Art
+Asi
+ask
+asp
+ass
+ast
+att
+aud
+Aug
+aut
+ave
+avo
+awe
+aye
+Azt
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" order by a limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) from t2 where fld3 like "A%" limit 10;
+substring(fld3,1,3)
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+select distinct substring(fld3,1,3) as a from t2 having a like "A%" limit 10;
+a
+aba
+abi
+Abr
+abs
+abu
+acc
+acq
+acu
+Ade
+adj
+create table t3 (
+period int not null,
+name char(32) not null,
+companynr int not null,
+price double(11,0),
+price2 double(11,0),
+key (period),
+key (name)
+);
+create temporary table tmp engine = myisam select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+insert into tmp select * from t3;
+insert into t3 select * from tmp;
+alter table t3 add t2nr int not null auto_increment primary key first;
+drop table tmp;
+SET SQL_BIG_TABLES=1;
+select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10;
+namn
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+SET SQL_BIG_TABLES=0;
+select distinct concat(fld3," ",fld3) from t2,t3 where t2.fld1=t3.t2nr order by fld3 limit 10;
+concat(fld3," ",fld3)
+Abraham Abraham
+abrogating abrogating
+admonishing admonishing
+Adolph Adolph
+afield afield
+aging aging
+ammonium ammonium
+analyzable analyzable
+animals animals
+animized animized
+select distinct fld5 from t2 limit 10;
+fld5
+neat
+Steinberg
+jarring
+tinily
+balled
+persist
+attainments
+fanatic
+measures
+rightfulness
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=1;
+select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10;
+fld3 count(*)
+affixed 1
+and 1
+annoyers 1
+Anthony 1
+assayed 1
+assurers 1
+attendants 1
+bedlam 1
+bedpost 1
+boasted 1
+SET SQL_BIG_TABLES=0;
+select distinct fld3,repeat("a",length(fld3)),count(*) from t2 group by companynr,fld3 limit 100,10;
+fld3 repeat("a",length(fld3)) count(*)
+circus aaaaaa 1
+cited aaaaa 1
+Colombo aaaaaaa 1
+congresswoman aaaaaaaaaaaaa 1
+contrition aaaaaaaaaa 1
+corny aaaaa 1
+cultivation aaaaaaaaaaa 1
+definiteness aaaaaaaaaaaa 1
+demultiplex aaaaaaaaaaa 1
+disappointing aaaaaaaaaaaaa 1
+select distinct companynr,rtrim(space(512+companynr)) from t3 order by 1,2;
+companynr rtrim(space(512+companynr))
+37
+78
+101
+154
+311
+447
+512
+select distinct fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by fld3;
+fld3
+explain select t3.t2nr,fld3 from t2,t3 where t2.companynr = 34 and t2.fld1=t3.t2nr order by t3.t2nr,fld3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL fld1 NULL NULL NULL 1199 Using where; Using temporary; Using filesort
+1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.fld1 1 Using where; Using index
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 index period period 4 NULL 41810
+1 SIMPLE t1 ref period period 4 test.t3.period 4181
+explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index period period 4 NULL 41810
+1 SIMPLE t3 ref period period 4 test.t1.period 4181
+select period from t1;
+period
+9410
+select period from t1 where period=1900;
+period
+select fld3,period from t1,t2 where fld1 = 011401 order by period;
+fld3 period
+breaking 9410
+select fld3,period from t2,t3 where t2.fld1 = 011401 and t2.fld1=t3.t2nr and t3.period=1001;
+fld3 period
+breaking 1001
+explain select fld3,period from t2,t3 where t2.fld1 = 011401 and t3.t2nr=t2.fld1 and 1001 = t3.period;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const fld1 fld1 4 const 1
+1 SIMPLE t3 const PRIMARY,period PRIMARY 4 const 1
+select fld3,period from t2,t1 where companynr*10 = 37*10;
+fld3 period
+breaking 9410
+Romans 9410
+intercepted 9410
+bewilderingly 9410
+astound 9410
+admonishing 9410
+sumac 9410
+flanking 9410
+combed 9410
+subjective 9410
+scatterbrain 9410
+Eulerian 9410
+Kane 9410
+overlay 9410
+perturb 9410
+goblins 9410
+annihilates 9410
+Wotan 9410
+snatching 9410
+concludes 9410
+laterally 9410
+yelped 9410
+grazing 9410
+Baird 9410
+celery 9410
+misunderstander 9410
+handgun 9410
+foldout 9410
+mystic 9410
+succumbed 9410
+Nabisco 9410
+fingerings 9410
+aging 9410
+afield 9410
+ammonium 9410
+boat 9410
+intelligibility 9410
+Augustine 9410
+teethe 9410
+dreaded 9410
+scholastics 9410
+audiology 9410
+wallet 9410
+parters 9410
+eschew 9410
+quitter 9410
+neat 9410
+Steinberg 9410
+jarring 9410
+tinily 9410
+balled 9410
+persist 9410
+attainments 9410
+fanatic 9410
+measures 9410
+rightfulness 9410
+capably 9410
+impulsive 9410
+starlet 9410
+terminators 9410
+untying 9410
+announces 9410
+featherweight 9410
+pessimist 9410
+daughter 9410
+decliner 9410
+lawgiver 9410
+stated 9410
+readable 9410
+attrition 9410
+cascade 9410
+motors 9410
+interrogate 9410
+pests 9410
+stairway 9410
+dopers 9410
+testicle 9410
+Parsifal 9410
+leavings 9410
+postulation 9410
+squeaking 9410
+contrasted 9410
+leftover 9410
+whiteners 9410
+erases 9410
+Punjab 9410
+Merritt 9410
+Quixotism 9410
+sweetish 9410
+dogging 9410
+scornfully 9410
+bellow 9410
+bills 9410
+cupboard 9410
+sureties 9410
+puddings 9410
+fetters 9410
+bivalves 9410
+incurring 9410
+Adolph 9410
+pithed 9410
+Miles 9410
+trimmings 9410
+tragedies 9410
+skulking 9410
+flint 9410
+flopping 9410
+relaxing 9410
+offload 9410
+suites 9410
+lists 9410
+animized 9410
+multilayer 9410
+standardizes 9410
+Judas 9410
+vacuuming 9410
+dentally 9410
+humanness 9410
+inch 9410
+Weissmuller 9410
+irresponsibly 9410
+luckily 9410
+culled 9410
+medical 9410
+bloodbath 9410
+subschema 9410
+animals 9410
+Micronesia 9410
+repetitions 9410
+Antares 9410
+ventilate 9410
+pityingly 9410
+interdependent 9410
+Graves 9410
+neonatal 9410
+chafe 9410
+honoring 9410
+realtor 9410
+elite 9410
+funereal 9410
+abrogating 9410
+sorters 9410
+Conley 9410
+lectured 9410
+Abraham 9410
+Hawaii 9410
+cage 9410
+hushes 9410
+Simla 9410
+reporters 9410
+Dutchman 9410
+descendants 9410
+groupings 9410
+dissociate 9410
+coexist 9410
+Beebe 9410
+Taoism 9410
+Connally 9410
+fetched 9410
+checkpoints 9410
+rusting 9410
+galling 9410
+obliterates 9410
+traitor 9410
+resumes 9410
+analyzable 9410
+terminator 9410
+gritty 9410
+firearm 9410
+minima 9410
+Selfridge 9410
+disable 9410
+witchcraft 9410
+betroth 9410
+Manhattanize 9410
+imprint 9410
+peeked 9410
+swelling 9410
+interrelationships 9410
+riser 9410
+Gandhian 9410
+peacock 9410
+bee 9410
+kanji 9410
+dental 9410
+scarf 9410
+chasm 9410
+insolence 9410
+syndicate 9410
+alike 9410
+imperial 9410
+convulsion 9410
+railway 9410
+validate 9410
+normalizes 9410
+comprehensive 9410
+chewing 9410
+denizen 9410
+schemer 9410
+chronicle 9410
+Kline 9410
+Anatole 9410
+partridges 9410
+brunch 9410
+recruited 9410
+dimensions 9410
+Chicana 9410
+announced 9410
+praised 9410
+employing 9410
+linear 9410
+quagmire 9410
+western 9410
+relishing 9410
+serving 9410
+scheduling 9410
+lore 9410
+eventful 9410
+arteriole 9410
+disentangle 9410
+cured 9410
+Fenton 9410
+avoidable 9410
+drains 9410
+detectably 9410
+husky 9410
+impelling 9410
+undoes 9410
+evened 9410
+squeezes 9410
+destroyer 9410
+rudeness 9410
+beaner 9410
+boorish 9410
+Everhart 9410
+encompass 9410
+mushrooms 9410
+Alison 9410
+externally 9410
+pellagra 9410
+cult 9410
+creek 9410
+Huffman 9410
+Majorca 9410
+governing 9410
+gadfly 9410
+reassigned 9410
+intentness 9410
+craziness 9410
+psychic 9410
+squabbled 9410
+burlesque 9410
+capped 9410
+extracted 9410
+DiMaggio 9410
+exclamation 9410
+subdirectory 9410
+Gothicism 9410
+feminine 9410
+metaphysically 9410
+sanding 9410
+Miltonism 9410
+freakish 9410
+index 9410
+straight 9410
+flurried 9410
+denotative 9410
+coming 9410
+commencements 9410
+gentleman 9410
+gifted 9410
+Shanghais 9410
+sportswriting 9410
+sloping 9410
+navies 9410
+leaflet 9410
+shooter 9410
+Joplin 9410
+babies 9410
+assails 9410
+admiring 9410
+swaying 9410
+Goldstine 9410
+fitting 9410
+Norwalk 9410
+analogy 9410
+deludes 9410
+cokes 9410
+Clayton 9410
+exhausts 9410
+causality 9410
+sating 9410
+icon 9410
+throttles 9410
+communicants 9410
+dehydrate 9410
+priceless 9410
+publicly 9410
+incidentals 9410
+commonplace 9410
+mumbles 9410
+furthermore 9410
+cautioned 9410
+parametrized 9410
+registration 9410
+sadly 9410
+positioning 9410
+babysitting 9410
+eternal 9410
+hoarder 9410
+congregates 9410
+rains 9410
+workers 9410
+sags 9410
+unplug 9410
+garage 9410
+boulder 9410
+specifics 9410
+Teresa 9410
+Winsett 9410
+convenient 9410
+buckboards 9410
+amenities 9410
+resplendent 9410
+sews 9410
+participated 9410
+Simon 9410
+certificates 9410
+Fitzpatrick 9410
+Evanston 9410
+misted 9410
+textures 9410
+save 9410
+count 9410
+rightful 9410
+chaperone 9410
+Lizzy 9410
+clenched 9410
+effortlessly 9410
+accessed 9410
+beaters 9410
+Hornblower 9410
+vests 9410
+indulgences 9410
+infallibly 9410
+unwilling 9410
+excrete 9410
+spools 9410
+crunches 9410
+overestimating 9410
+ineffective 9410
+humiliation 9410
+sophomore 9410
+star 9410
+rifles 9410
+dialysis 9410
+arriving 9410
+indulge 9410
+clockers 9410
+languages 9410
+Antarctica 9410
+percentage 9410
+ceiling 9410
+specification 9410
+regimented 9410
+ciphers 9410
+pictures 9410
+serpents 9410
+allot 9410
+realized 9410
+mayoral 9410
+opaquely 9410
+hostess 9410
+fiftieth 9410
+incorrectly 9410
+decomposition 9410
+stranglings 9410
+mixture 9410
+electroencephalography 9410
+similarities 9410
+charges 9410
+freest 9410
+Greenberg 9410
+tinting 9410
+expelled 9410
+warm 9410
+smoothed 9410
+deductions 9410
+Romano 9410
+bitterroot 9410
+corset 9410
+securing 9410
+environing 9410
+cute 9410
+Crays 9410
+heiress 9410
+inform 9410
+avenge 9410
+universals 9410
+Kinsey 9410
+ravines 9410
+bestseller 9410
+equilibrium 9410
+extents 9410
+relatively 9410
+pressure 9410
+critiques 9410
+befouled 9410
+rightfully 9410
+mechanizing 9410
+Latinizes 9410
+timesharing 9410
+Aden 9410
+embassies 9410
+males 9410
+shapelessly 9410
+mastering 9410
+Newtonian 9410
+finishers 9410
+abates 9410
+teem 9410
+kiting 9410
+stodgy 9410
+feed 9410
+guitars 9410
+airships 9410
+store 9410
+denounces 9410
+Pyle 9410
+Saxony 9410
+serializations 9410
+Peruvian 9410
+taxonomically 9410
+kingdom 9410
+stint 9410
+Sault 9410
+faithful 9410
+Ganymede 9410
+tidiness 9410
+gainful 9410
+contrary 9410
+Tipperary 9410
+tropics 9410
+theorizers 9410
+renew 9410
+already 9410
+terminal 9410
+Hegelian 9410
+hypothesizer 9410
+warningly 9410
+journalizing 9410
+nested 9410
+Lars 9410
+saplings 9410
+foothill 9410
+labeled 9410
+imperiously 9410
+reporters 9410
+furnishings 9410
+precipitable 9410
+discounts 9410
+excises 9410
+Stalin 9410
+despot 9410
+ripeness 9410
+Arabia 9410
+unruly 9410
+mournfulness 9410
+boom 9410
+slaughter 9410
+Sabine 9410
+handy 9410
+rural 9410
+organizer 9410
+shipyard 9410
+civics 9410
+inaccuracy 9410
+rules 9410
+juveniles 9410
+comprised 9410
+investigations 9410
+stabilizes 9410
+seminaries 9410
+Hunter 9410
+sporty 9410
+test 9410
+weasels 9410
+CERN 9410
+tempering 9410
+afore 9410
+Galatean 9410
+techniques 9410
+error 9410
+veranda 9410
+severely 9410
+Cassites 9410
+forthcoming 9410
+guides 9410
+vanish 9410
+lied 9410
+sawtooth 9410
+fated 9410
+gradually 9410
+widens 9410
+preclude 9410
+evenhandedly 9410
+percentage 9410
+disobedience 9410
+humility 9410
+gleaning 9410
+petted 9410
+bloater 9410
+minion 9410
+marginal 9410
+apiary 9410
+measures 9410
+precaution 9410
+repelled 9410
+primary 9410
+coverings 9410
+Artemia 9410
+navigate 9410
+spatial 9410
+Gurkha 9410
+meanwhile 9410
+Melinda 9410
+Butterfield 9410
+Aldrich 9410
+previewing 9410
+glut 9410
+unaffected 9410
+inmate 9410
+mineral 9410
+impending 9410
+meditation 9410
+ideas 9410
+miniaturizes 9410
+lewdly 9410
+title 9410
+youthfulness 9410
+creak 9410
+Chippewa 9410
+clamored 9410
+freezes 9410
+forgivably 9410
+reduce 9410
+McGovern 9410
+Nazis 9410
+epistle 9410
+socializes 9410
+conceptions 9410
+Kevin 9410
+uncovering 9410
+chews 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+appendixes 9410
+raining 9410
+infest 9410
+compartment 9410
+minting 9410
+ducks 9410
+roped 9410
+waltz 9410
+Lillian 9410
+repressions 9410
+chillingly 9410
+noncritical 9410
+lithograph 9410
+spongers 9410
+parenthood 9410
+posed 9410
+instruments 9410
+filial 9410
+fixedly 9410
+relives 9410
+Pandora 9410
+watering 9410
+ungrateful 9410
+secures 9410
+poison 9410
+dusted 9410
+encompasses 9410
+presentation 9410
+Kantian 9410
+select fld3,period,price,price2 from t2,t3 where t2.fld1=t3.t2nr and period >= 1001 and period <= 1002 and t2.companynr = 37 order by fld3,period, price;
+fld3 period price price2
+admonishing 1002 28357832 8723648
+analyzable 1002 28357832 8723648
+annihilates 1001 5987435 234724
+Antares 1002 28357832 8723648
+astound 1001 5987435 234724
+audiology 1001 5987435 234724
+Augustine 1002 28357832 8723648
+Baird 1002 28357832 8723648
+bewilderingly 1001 5987435 234724
+breaking 1001 5987435 234724
+Conley 1001 5987435 234724
+dentally 1002 28357832 8723648
+dissociate 1002 28357832 8723648
+elite 1001 5987435 234724
+eschew 1001 5987435 234724
+Eulerian 1001 5987435 234724
+flanking 1001 5987435 234724
+foldout 1002 28357832 8723648
+funereal 1002 28357832 8723648
+galling 1002 28357832 8723648
+Graves 1001 5987435 234724
+grazing 1001 5987435 234724
+groupings 1001 5987435 234724
+handgun 1001 5987435 234724
+humility 1002 28357832 8723648
+impulsive 1002 28357832 8723648
+inch 1001 5987435 234724
+intelligibility 1001 5987435 234724
+jarring 1001 5987435 234724
+lawgiver 1001 5987435 234724
+lectured 1002 28357832 8723648
+Merritt 1002 28357832 8723648
+neonatal 1001 5987435 234724
+offload 1002 28357832 8723648
+parters 1002 28357832 8723648
+pityingly 1002 28357832 8723648
+puddings 1002 28357832 8723648
+Punjab 1001 5987435 234724
+quitter 1002 28357832 8723648
+realtor 1001 5987435 234724
+relaxing 1001 5987435 234724
+repetitions 1001 5987435 234724
+resumes 1001 5987435 234724
+Romans 1002 28357832 8723648
+rusting 1001 5987435 234724
+scholastics 1001 5987435 234724
+skulking 1002 28357832 8723648
+stated 1002 28357832 8723648
+suites 1002 28357832 8723648
+sureties 1001 5987435 234724
+testicle 1002 28357832 8723648
+tinily 1002 28357832 8723648
+tragedies 1001 5987435 234724
+trimmings 1001 5987435 234724
+vacuuming 1001 5987435 234724
+ventilate 1001 5987435 234724
+wallet 1001 5987435 234724
+Weissmuller 1002 28357832 8723648
+Wotan 1002 28357832 8723648
+select t2.fld1,fld3,period,price,price2 from t2,t3 where t2.fld1>= 18201 and t2.fld1 <= 18811 and t2.fld1=t3.t2nr and period = 1001 and t2.companynr = 37;
+fld1 fld3 period price price2
+018201 relaxing 1001 5987435 234724
+018601 vacuuming 1001 5987435 234724
+018801 inch 1001 5987435 234724
+018811 repetitions 1001 5987435 234724
+create table t4 (
+companynr tinyint(2) unsigned zerofill NOT NULL default '00',
+companyname char(30) NOT NULL default '',
+PRIMARY KEY (companynr),
+UNIQUE KEY companyname(companyname)
+) ENGINE=MyISAM MAX_ROWS=50 PACK_KEYS=1 COMMENT='companynames';
+select STRAIGHT_JOIN t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select SQL_SMALL_RESULT t2.companynr,companyname from t4,t2 where t2.companynr=t4.companynr group by t2.companynr;
+companynr companyname
+00 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select * from t1,t1 t12;
+Period Varor_period Period Varor_period
+9410 9412 9410 9412
+select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 250505 and t22.fld1 >= 250501 and t22.fld1 <= 250505;
+fld1 fld1
+250501 250501
+250502 250501
+250503 250501
+250504 250501
+250505 250501
+250501 250502
+250502 250502
+250503 250502
+250504 250502
+250505 250502
+250501 250503
+250502 250503
+250503 250503
+250504 250503
+250505 250503
+250501 250504
+250502 250504
+250503 250504
+250504 250504
+250505 250504
+250501 250505
+250502 250505
+250503 250505
+250504 250505
+250505 250505
+insert into t2 (fld1, companynr) values (999999,99);
+select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+companynr companyname
+99 NULL
+select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
+count(*)
+1199
+explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+companynr companyname
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+count(*)
+1200
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+delete from t2 where fld1=999999;
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+companynr companynr
+37 36
+41 40
+explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t2.fld1 = 38208 or t2.fld1 = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select t2.fld1,t2.companynr,fld3,period from t3,t2 where (t3.t2nr = 38208 or t3.t2nr = 38008) and t2.fld1=t3.t2nr and period>=1008 and period<=1009;
+fld1 companynr fld3 period
+038008 37 reporters 1008
+038208 37 Selfridge 1008
+select period from t1 where (((period > 0) or period < 10000 or (period = 1900)) and (period=1900 and period <= 1901) or (period=1903 and (period=1903)) and period>=1902) or ((period=1904 or period=1905) or (period=1906 or period>1907)) or (period=1908 and period = 1909);
+period
+9410
+select period from t1 where ((period > 0 and period < 1) or (((period > 0 and period < 100) and (period > 10)) or (period > 10)) or (period > 0 and (period > 5 or period > 6)));
+period
+9410
+select a.fld1 from t2 as a,t2 b where ((a.fld1 = 250501 and a.fld1=b.fld1) or a.fld1=250502 or a.fld1=250503 or (a.fld1=250505 and a.fld1<=b.fld1 and b.fld1>=a.fld1)) and a.fld1=b.fld1;
+fld1
+250501
+250502
+250503
+250505
+select fld1 from t2 where fld1 in (250502,98005,98006,250503,250605,250606) and fld1 >=250502 and fld1 not in (250605,250606);
+fld1
+250502
+250503
+select fld1 from t2 where fld1 between 250502 and 250504;
+fld1
+250502
+250503
+250504
+select fld3 from t2 where (((fld3 like "_%L%" ) or (fld3 like "%ok%")) and ( fld3 like "L%" or fld3 like "G%")) and fld3 like "L%" ;
+fld3
+label
+labeled
+labeled
+landslide
+laterally
+leaflet
+lewdly
+Lillian
+luckily
+select count(*) from t1;
+count(*)
+1
+select companynr,count(*),sum(fld1) from t2 group by companynr;
+companynr count(*) sum(fld1)
+00 82 10355753
+29 95 14473298
+34 70 17788966
+36 215 22786296
+37 588 83602098
+40 37 6618386
+41 52 12816335
+50 11 1595438
+53 4 793210
+58 23 2254293
+65 10 2284055
+68 12 3097288
+select companynr,count(*) from t2 group by companynr order by companynr desc limit 5;
+companynr count(*)
+68 12
+65 10
+58 23
+53 4
+50 11
+select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+explain extended select count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 where companynr = 34 and fld4<>"";
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
+Warnings:
+Note 1003 select count(0) AS `count(*)`,min(`test`.`t2`.`fld4`) AS `min(fld4)`,max(`test`.`t2`.`fld4`) AS `max(fld4)`,sum(`test`.`t2`.`fld1`) AS `sum(fld1)`,avg(`test`.`t2`.`fld1`) AS `avg(fld1)`,std(`test`.`t2`.`fld1`) AS `std(fld1)`,variance(`test`.`t2`.`fld1`) AS `variance(fld1)` from `test`.`t2` where ((`test`.`t2`.`companynr` = 34) and (`test`.`t2`.`fld4` <> _latin1''))
+select companynr,count(*),min(fld4),max(fld4),sum(fld1),avg(fld1),std(fld1),variance(fld1) from t2 group by companynr limit 3;
+companynr count(*) min(fld4) max(fld4) sum(fld1) avg(fld1) std(fld1) variance(fld1)
+00 82 Anthony windmills 10355753 126289.6707 115550.9757 13352027981.7087
+29 95 abut wetness 14473298 152350.5053 8368.5480 70032594.9026
+34 70 absentee vest 17788966 254128.0857 3272.5940 10709871.3069
+select companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select /*! SQL_SMALL_RESULT */ companynr,t2nr,count(price),sum(price),min(price),max(price),avg(price) from t3 where companynr = 37 group by companynr,t2nr limit 10;
+companynr t2nr count(price) sum(price) min(price) max(price) avg(price)
+37 1 1 5987435 5987435 5987435 5987435.0000
+37 2 1 28357832 28357832 28357832 28357832.0000
+37 3 1 39654943 39654943 39654943 39654943.0000
+37 11 1 5987435 5987435 5987435 5987435.0000
+37 12 1 28357832 28357832 28357832 28357832.0000
+37 13 1 39654943 39654943 39654943 39654943.0000
+37 21 1 5987435 5987435 5987435 5987435.0000
+37 22 1 28357832 28357832 28357832 28357832.0000
+37 23 1 39654943 39654943 39654943 39654943.0000
+37 31 1 5987435 5987435 5987435 5987435.0000
+select companynr,count(price),sum(price),min(price),max(price),avg(price) from t3 group by companynr ;
+companynr count(price) sum(price) min(price) max(price) avg(price)
+37 12543 309394878010 5987435 39654943 24666736.6667
+78 8362 414611089292 726498 98439034 49582766.0000
+101 4181 3489454238 834598 834598 834598.0000
+154 4181 4112197254950 983543950 983543950 983543950.0000
+311 4181 979599938 234298 234298 234298.0000
+447 4181 9929180954 2374834 2374834 2374834.0000
+512 4181 3288532102 786542 786542 786542.0000
+select distinct mod(companynr,10) from t4 group by companynr;
+mod(companynr,10)
+0
+9
+4
+6
+7
+1
+3
+8
+5
+select distinct 1 from t4 group by companynr;
+1
+1
+select count(distinct fld1) from t2;
+count(distinct fld1)
+1199
+select companynr,count(distinct fld1) from t2 group by companynr;
+companynr count(distinct fld1)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(*) from t2 group by companynr;
+companynr count(*)
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,1000))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,1000)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct concat(fld1,repeat(65,200))) from t2 group by companynr;
+companynr count(distinct concat(fld1,repeat(65,200)))
+00 82
+29 95
+34 70
+36 215
+37 588
+40 37
+41 52
+50 11
+53 4
+58 23
+65 10
+68 12
+select companynr,count(distinct floor(fld1/100)) from t2 group by companynr;
+companynr count(distinct floor(fld1/100))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select companynr,count(distinct concat(repeat(65,1000),floor(fld1/100))) from t2 group by companynr;
+companynr count(distinct concat(repeat(65,1000),floor(fld1/100)))
+00 47
+29 35
+34 14
+36 69
+37 108
+40 16
+41 11
+50 9
+53 1
+58 1
+65 1
+68 1
+select sum(fld1),fld3 from t2 where fld3="Romans" group by fld1 limit 10;
+sum(fld1) fld3
+11402 Romans
+select name,count(*) from t3 where name='cloakroom' group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name='cloakroom' and price>10 group by name;
+name count(*)
+cloakroom 4181
+select count(*) from t3 where name='cloakroom' and price2=823742;
+count(*)
+4181
+select name,count(*) from t3 where name='cloakroom' and price2=823742 group by name;
+name count(*)
+cloakroom 4181
+select name,count(*) from t3 where name >= "extramarital" and price <= 39654943 group by name;
+name count(*)
+extramarital 4181
+gazer 4181
+gems 4181
+Iranizes 4181
+spates 4181
+tucked 4181
+violinist 4181
+select t2.fld3,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld3 count(*)
+spates 4181
+select companynr|0,companyname from t4 group by 1;
+companynr|0 companyname
+0 Unknown
+29 company 1
+34 company 2
+36 company 3
+37 company 4
+40 company 5
+41 company 6
+50 company 11
+53 company 7
+58 company 8
+65 company 9
+68 company 10
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by t2.companynr order by companyname;
+companynr companyname count(*)
+29 company 1 95
+68 company 10 12
+50 company 11 11
+34 company 2 70
+36 company 3 215
+37 company 4 588
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+00 Unknown 82
+select t2.fld1,count(*) from t2,t3 where t2.fld1=158402 and t3.name=t2.fld3 group by t3.name;
+fld1 count(*)
+158402 4181
+select sum(Period)/count(*) from t1;
+sum(Period)/count(*)
+9410.0000
+select companynr,count(price) as "count",sum(price) as "sum" ,abs(sum(price)/count(price)-avg(price)) as "diff",(0+count(price))*companynr as func from t3 group by companynr;
+companynr count sum diff func
+37 12543 309394878010 0.0000 464091
+78 8362 414611089292 0.0000 652236
+101 4181 3489454238 0.0000 422281
+154 4181 4112197254950 0.0000 643874
+311 4181 979599938 0.0000 1300291
+447 4181 9929180954 0.0000 1868907
+512 4181 3288532102 0.0000 2140672
+select companynr,sum(price)/count(price) as avg from t3 group by companynr having avg > 70000000 order by avg;
+companynr avg
+154 983543950.0000
+select companynr,count(*) from t2 group by companynr order by 2 desc;
+companynr count(*)
+37 588
+36 215
+29 95
+00 82
+34 70
+41 52
+40 37
+58 23
+68 12
+50 11
+65 10
+53 4
+select companynr,count(*) from t2 where companynr > 40 group by companynr order by 2 desc;
+companynr count(*)
+41 52
+58 23
+68 12
+50 11
+65 10
+53 4
+select t2.fld4,t2.fld1,count(price),sum(price),min(price),max(price),avg(price) from t3,t2 where t3.companynr = 37 and t2.fld1 = t3.t2nr group by fld1,t2.fld4;
+fld4 fld1 count(price) sum(price) min(price) max(price) avg(price)
+teethe 000001 1 5987435 5987435 5987435 5987435.0000
+dreaded 011401 1 5987435 5987435 5987435 5987435.0000
+scholastics 011402 1 28357832 28357832 28357832 28357832.0000
+audiology 011403 1 39654943 39654943 39654943 39654943.0000
+wallet 011501 1 5987435 5987435 5987435 5987435.0000
+parters 011701 1 5987435 5987435 5987435 5987435.0000
+eschew 011702 1 28357832 28357832 28357832 28357832.0000
+quitter 011703 1 39654943 39654943 39654943 39654943.0000
+neat 012001 1 5987435 5987435 5987435 5987435.0000
+Steinberg 012003 1 39654943 39654943 39654943 39654943.0000
+balled 012301 1 5987435 5987435 5987435 5987435.0000
+persist 012302 1 28357832 28357832 28357832 28357832.0000
+attainments 012303 1 39654943 39654943 39654943 39654943.0000
+capably 012501 1 5987435 5987435 5987435 5987435.0000
+impulsive 012602 1 28357832 28357832 28357832 28357832.0000
+starlet 012603 1 39654943 39654943 39654943 39654943.0000
+featherweight 012701 1 5987435 5987435 5987435 5987435.0000
+pessimist 012702 1 28357832 28357832 28357832 28357832.0000
+daughter 012703 1 39654943 39654943 39654943 39654943.0000
+lawgiver 013601 1 5987435 5987435 5987435 5987435.0000
+stated 013602 1 28357832 28357832 28357832 28357832.0000
+readable 013603 1 39654943 39654943 39654943 39654943.0000
+testicle 013801 1 5987435 5987435 5987435 5987435.0000
+Parsifal 013802 1 28357832 28357832 28357832 28357832.0000
+leavings 013803 1 39654943 39654943 39654943 39654943.0000
+squeaking 013901 1 5987435 5987435 5987435 5987435.0000
+contrasted 016001 1 5987435 5987435 5987435 5987435.0000
+leftover 016201 1 5987435 5987435 5987435 5987435.0000
+whiteners 016202 1 28357832 28357832 28357832 28357832.0000
+erases 016301 1 5987435 5987435 5987435 5987435.0000
+Punjab 016302 1 28357832 28357832 28357832 28357832.0000
+Merritt 016303 1 39654943 39654943 39654943 39654943.0000
+sweetish 018001 1 5987435 5987435 5987435 5987435.0000
+dogging 018002 1 28357832 28357832 28357832 28357832.0000
+scornfully 018003 1 39654943 39654943 39654943 39654943.0000
+fetters 018012 1 28357832 28357832 28357832 28357832.0000
+bivalves 018013 1 39654943 39654943 39654943 39654943.0000
+skulking 018021 1 5987435 5987435 5987435 5987435.0000
+flint 018022 1 28357832 28357832 28357832 28357832.0000
+flopping 018023 1 39654943 39654943 39654943 39654943.0000
+Judas 018032 1 28357832 28357832 28357832 28357832.0000
+vacuuming 018033 1 39654943 39654943 39654943 39654943.0000
+medical 018041 1 5987435 5987435 5987435 5987435.0000
+bloodbath 018042 1 28357832 28357832 28357832 28357832.0000
+subschema 018043 1 39654943 39654943 39654943 39654943.0000
+interdependent 018051 1 5987435 5987435 5987435 5987435.0000
+Graves 018052 1 28357832 28357832 28357832 28357832.0000
+neonatal 018053 1 39654943 39654943 39654943 39654943.0000
+sorters 018061 1 5987435 5987435 5987435 5987435.0000
+epistle 018062 1 28357832 28357832 28357832 28357832.0000
+Conley 018101 1 5987435 5987435 5987435 5987435.0000
+lectured 018102 1 28357832 28357832 28357832 28357832.0000
+Abraham 018103 1 39654943 39654943 39654943 39654943.0000
+cage 018201 1 5987435 5987435 5987435 5987435.0000
+hushes 018202 1 28357832 28357832 28357832 28357832.0000
+Simla 018402 1 28357832 28357832 28357832 28357832.0000
+reporters 018403 1 39654943 39654943 39654943 39654943.0000
+coexist 018601 1 5987435 5987435 5987435 5987435.0000
+Beebe 018602 1 28357832 28357832 28357832 28357832.0000
+Taoism 018603 1 39654943 39654943 39654943 39654943.0000
+Connally 018801 1 5987435 5987435 5987435 5987435.0000
+fetched 018802 1 28357832 28357832 28357832 28357832.0000
+checkpoints 018803 1 39654943 39654943 39654943 39654943.0000
+gritty 018811 1 5987435 5987435 5987435 5987435.0000
+firearm 018812 1 28357832 28357832 28357832 28357832.0000
+minima 019101 1 5987435 5987435 5987435 5987435.0000
+Selfridge 019102 1 28357832 28357832 28357832 28357832.0000
+disable 019103 1 39654943 39654943 39654943 39654943.0000
+witchcraft 019201 1 5987435 5987435 5987435 5987435.0000
+betroth 030501 1 5987435 5987435 5987435 5987435.0000
+Manhattanize 030502 1 28357832 28357832 28357832 28357832.0000
+imprint 030503 1 39654943 39654943 39654943 39654943.0000
+swelling 031901 1 5987435 5987435 5987435 5987435.0000
+interrelationships 036001 1 5987435 5987435 5987435 5987435.0000
+riser 036002 1 28357832 28357832 28357832 28357832.0000
+bee 038001 1 5987435 5987435 5987435 5987435.0000
+kanji 038002 1 28357832 28357832 28357832 28357832.0000
+dental 038003 1 39654943 39654943 39654943 39654943.0000
+railway 038011 1 5987435 5987435 5987435 5987435.0000
+validate 038012 1 28357832 28357832 28357832 28357832.0000
+normalizes 038013 1 39654943 39654943 39654943 39654943.0000
+Kline 038101 1 5987435 5987435 5987435 5987435.0000
+Anatole 038102 1 28357832 28357832 28357832 28357832.0000
+partridges 038103 1 39654943 39654943 39654943 39654943.0000
+recruited 038201 1 5987435 5987435 5987435 5987435.0000
+dimensions 038202 1 28357832 28357832 28357832 28357832.0000
+Chicana 038203 1 39654943 39654943 39654943 39654943.0000
+select t3.companynr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 group by companynr,fld3;
+companynr fld3 sum(price)
+512 boat 786542
+512 capably 786542
+512 cupboard 786542
+512 decliner 786542
+512 descendants 786542
+512 dopers 786542
+512 erases 786542
+512 Micronesia 786542
+512 Miles 786542
+512 skies 786542
+select t2.companynr,count(*),min(fld3),max(fld3),sum(price),avg(price) from t2,t3 where t3.companynr >= 30 and t3.companynr <= 58 and t3.t2nr = t2.fld1 and 1+1=2 group by t2.companynr;
+companynr count(*) min(fld3) max(fld3) sum(price) avg(price)
+00 1 Omaha Omaha 5987435 5987435.0000
+36 1 dubbed dubbed 28357832 28357832.0000
+37 83 Abraham Wotan 1908978016 22999735.1325
+50 2 scribbled tapestry 68012775 34006387.5000
+select t3.companynr+0,t3.t2nr,fld3,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 37 group by 1,t3.t2nr,fld3,fld3,fld3,fld3,fld3 order by fld1;
+t3.companynr+0 t2nr fld3 sum(price)
+37 1 Omaha 5987435
+37 11401 breaking 5987435
+37 11402 Romans 28357832
+37 11403 intercepted 39654943
+37 11501 bewilderingly 5987435
+37 11701 astound 5987435
+37 11702 admonishing 28357832
+37 11703 sumac 39654943
+37 12001 flanking 5987435
+37 12003 combed 39654943
+37 12301 Eulerian 5987435
+37 12302 dubbed 28357832
+37 12303 Kane 39654943
+37 12501 annihilates 5987435
+37 12602 Wotan 28357832
+37 12603 snatching 39654943
+37 12701 grazing 5987435
+37 12702 Baird 28357832
+37 12703 celery 39654943
+37 13601 handgun 5987435
+37 13602 foldout 28357832
+37 13603 mystic 39654943
+37 13801 intelligibility 5987435
+37 13802 Augustine 28357832
+37 13803 teethe 39654943
+37 13901 scholastics 5987435
+37 16001 audiology 5987435
+37 16201 wallet 5987435
+37 16202 parters 28357832
+37 16301 eschew 5987435
+37 16302 quitter 28357832
+37 16303 neat 39654943
+37 18001 jarring 5987435
+37 18002 tinily 28357832
+37 18003 balled 39654943
+37 18012 impulsive 28357832
+37 18013 starlet 39654943
+37 18021 lawgiver 5987435
+37 18022 stated 28357832
+37 18023 readable 39654943
+37 18032 testicle 28357832
+37 18033 Parsifal 39654943
+37 18041 Punjab 5987435
+37 18042 Merritt 28357832
+37 18043 Quixotism 39654943
+37 18051 sureties 5987435
+37 18052 puddings 28357832
+37 18053 tapestry 39654943
+37 18061 trimmings 5987435
+37 18062 humility 28357832
+37 18101 tragedies 5987435
+37 18102 skulking 28357832
+37 18103 flint 39654943
+37 18201 relaxing 5987435
+37 18202 offload 28357832
+37 18402 suites 28357832
+37 18403 lists 39654943
+37 18601 vacuuming 5987435
+37 18602 dentally 28357832
+37 18603 humanness 39654943
+37 18801 inch 5987435
+37 18802 Weissmuller 28357832
+37 18803 irresponsibly 39654943
+37 18811 repetitions 5987435
+37 18812 Antares 28357832
+37 19101 ventilate 5987435
+37 19102 pityingly 28357832
+37 19103 interdependent 39654943
+37 19201 Graves 5987435
+37 30501 neonatal 5987435
+37 30502 scribbled 28357832
+37 30503 chafe 39654943
+37 31901 realtor 5987435
+37 36001 elite 5987435
+37 36002 funereal 28357832
+37 38001 Conley 5987435
+37 38002 lectured 28357832
+37 38003 Abraham 39654943
+37 38011 groupings 5987435
+37 38012 dissociate 28357832
+37 38013 coexist 39654943
+37 38101 rusting 5987435
+37 38102 galling 28357832
+37 38103 obliterates 39654943
+37 38201 resumes 5987435
+37 38202 analyzable 28357832
+37 38203 terminator 39654943
+select sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1= t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008;
+sum(price)
+234298
+select t2.fld1,sum(price) from t3,t2 where t2.fld1 = t3.t2nr and t3.companynr = 512 and t3.t2nr = 38008 and t2.fld1 = 38008 or t2.fld1 = t3.t2nr and t3.t2nr = 38008 and t2.fld1 = 38008 or t3.t2nr = t2.fld1 and t2.fld1 = 38008 group by t2.fld1;
+fld1 sum(price)
+038008 234298
+explain select fld3 from t2 where 1>2 or 2>3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
+explain select fld3 from t2 where fld1=fld1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1199
+select companynr,fld1 from t2 HAVING fld1=250501 or fld1=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,fld1 from t2 WHERE fld1>=250501 HAVING fld1<=250502;
+companynr fld1
+34 250501
+34 250502
+select companynr,count(*) as count,sum(fld1) as sum from t2 group by companynr having count > 40 and sum/count >= 120000;
+companynr count sum
+00 82 10355753
+29 95 14473298
+34 70 17788966
+37 588 83602098
+41 52 12816335
+select companynr from t2 group by companynr having count(*) > 40 and sum(fld1)/count(*) >= 120000 ;
+companynr
+00
+29
+34
+37
+41
+select t2.companynr,companyname,count(*) from t2,t4 where t2.companynr=t4.companynr group by companyname having t2.companynr >= 40;
+companynr companyname count(*)
+68 company 10 12
+50 company 11 11
+40 company 5 37
+41 company 6 52
+53 company 7 4
+58 company 8 23
+65 company 9 10
+select count(*) from t2;
+count(*)
+1199
+select count(*) from t2 where fld1 < 098024;
+count(*)
+387
+select min(fld1) from t2 where fld1>= 098024;
+min(fld1)
+98024
+select max(fld1) from t2 where fld1>= 098024;
+max(fld1)
+1232609
+select count(*) from t3 where price2=76234234;
+count(*)
+4181
+select count(*) from t3 where companynr=512 and price2=76234234;
+count(*)
+4181
+explain select min(fld1),max(fld1),count(*) from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+select min(fld1),max(fld1),count(*) from t2;
+min(fld1) max(fld1) count(*)
+0 1232609 1199
+select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742;
+min(t2nr) max(t2nr)
+2115 2115
+select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78;
+count(*) min(t2nr) max(t2nr)
+4181 4 41804
+select t2nr,count(*) from t3 where name='gems' group by t2nr limit 20;
+t2nr count(*)
+9 1
+19 1
+29 1
+39 1
+49 1
+59 1
+69 1
+79 1
+89 1
+99 1
+109 1
+119 1
+129 1
+139 1
+149 1
+159 1
+169 1
+179 1
+189 1
+199 1
+select max(t2nr) from t3 where price=983543950;
+max(t2nr)
+41807
+select t1.period from t3 = t1 limit 1;
+period
+1001
+select t1.period from t1 as t1 limit 1;
+period
+9410
+select t1.period as "Nuvarande period" from t1 as t1 limit 1;
+Nuvarande period
+9410
+select period as ok_period from t1 limit 1;
+ok_period
+9410
+select period as ok_period from t1 group by ok_period limit 1;
+ok_period
+9410
+select 1+1 as summa from t1 group by summa limit 1;
+summa
+2
+select period as "Nuvarande period" from t1 group by "Nuvarande period" limit 1;
+Nuvarande period
+9410
+show tables;
+Tables_in_test
+t1
+t2
+t3
+t4
+show tables from test like "s%";
+Tables_in_test (s%)
+show tables from test like "t?";
+Tables_in_test (t?)
+show full columns from t2;
+Field Type Collation Null Key Default Extra Privileges Comment
+auto int(11) NULL NO PRI NULL auto_increment #
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+companynr tinyint(2) unsigned zerofill NULL NO 00 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 'f%';
+Field Type Collation Null Key Default Extra Privileges Comment
+fld1 int(6) unsigned zerofill NULL NO UNI 000000 #
+fld3 char(30) latin1_swedish_ci NO MUL #
+fld4 char(35) latin1_swedish_ci NO #
+fld5 char(35) latin1_swedish_ci NO #
+fld6 char(4) latin1_swedish_ci NO #
+show full columns from t2 from test like 's%';
+Field Type Collation Null Key Default Extra Privileges Comment
+show keys from t2;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+drop table t4, t3, t2, t1;
+CREATE TABLE t1 (
+cont_nr int(11) NOT NULL auto_increment,
+ver_nr int(11) NOT NULL default '0',
+aufnr int(11) NOT NULL default '0',
+username varchar(50) NOT NULL default '',
+hdl_nr int(11) NOT NULL default '0',
+eintrag date NOT NULL default '0000-00-00',
+st_klasse varchar(40) NOT NULL default '',
+st_wert varchar(40) NOT NULL default '',
+st_zusatz varchar(40) NOT NULL default '',
+st_bemerkung varchar(255) NOT NULL default '',
+kunden_art varchar(40) NOT NULL default '',
+mcbs_knr int(11) default NULL,
+mcbs_aufnr int(11) NOT NULL default '0',
+schufa_status char(1) default '?',
+bemerkung text,
+wirknetz text,
+wf_igz int(11) NOT NULL default '0',
+tarifcode varchar(80) default NULL,
+recycle char(1) default NULL,
+sim varchar(30) default NULL,
+mcbs_tpl varchar(30) default NULL,
+emp_nr int(11) NOT NULL default '0',
+laufzeit int(11) default NULL,
+hdl_name varchar(30) default NULL,
+prov_hdl_nr int(11) NOT NULL default '0',
+auto_wirknetz varchar(50) default NULL,
+auto_billing varchar(50) default NULL,
+touch timestamp NOT NULL,
+kategorie varchar(50) default NULL,
+kundentyp varchar(20) NOT NULL default '',
+sammel_rech_msisdn varchar(30) NOT NULL default '',
+p_nr varchar(9) NOT NULL default '',
+suffix char(3) NOT NULL default '',
+PRIMARY KEY (cont_nr),
+KEY idx_aufnr(aufnr),
+KEY idx_hdl_nr(hdl_nr),
+KEY idx_st_klasse(st_klasse),
+KEY ver_nr(ver_nr),
+KEY eintrag_idx(eintrag),
+KEY emp_nr_idx(emp_nr),
+KEY wf_igz(wf_igz),
+KEY touch(touch),
+KEY hdl_tag(eintrag,hdl_nr),
+KEY prov_hdl_nr(prov_hdl_nr),
+KEY mcbs_aufnr(mcbs_aufnr),
+KEY kundentyp(kundentyp),
+KEY p_nr(p_nr,suffix)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (3359356,405,3359356,'Mustermann Musterfrau',52500,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1485525,2122316,'+','','N',1909160,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',3,24,'MobilCom Shop Koeln',52500,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359357,468,3359357,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1503580,2139699,'+','','P',1909171,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359358,407,3359358,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1501358,2137473,'N','','N',1909159,'MobilComSuper92000D2',NULL,NULL,'MS9ND2',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359359,468,3359359,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1507831,2143894,'+','','P',1909162,'MobilComSuper9D1T10SFreisprech(Akquise)',NULL,NULL,'MS9NS1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359360,0,0,'Mustermann Musterfrau',29674907,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1900169997,2414578,'+',NULL,'N',1909148,'',NULL,NULL,'RV99066_2',20,NULL,'POS',29674907,NULL,NULL,20010202105916,'Mobilfunk','','','97317481','007');
+INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag storniert','','(7001-84):Storno, Kd. möchte nicht mehr','privat',NULL,0,'+','','P',1909150,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',325,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
+SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
+Kundentyp kategorie
+Privat (Private Nutzung) Mobilfunk
+Warnings:
+Warning 1052 Column 'kundentyp' in group statement is ambiguous
+drop table t1;
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
+SHOW STATUS LIKE 'Compression';
+Variable_name Value
+Compression ON
diff --git a/mysql-test/r/ssl_connect.result b/mysql-test/r/ssl_connect.result
new file mode 100644
index 00000000000..6ab9fedbf2d
--- /dev/null
+++ b/mysql-test/r/ssl_connect.result
@@ -0,0 +1 @@
+completed
diff --git a/mysql-test/r/status.result b/mysql-test/r/status.result
index e9616232fa1..36857e22aaf 100644
--- a/mysql-test/r/status.result
+++ b/mysql-test/r/status.result
@@ -17,3 +17,77 @@ Variable_name Value
Table_locks_immediate 3
Table_locks_waited 1
drop table t1;
+select 1;
+1
+1
+show status like 'last_query_cost';
+Variable_name Value
+Last_query_cost 0.000000
+FLUSH STATUS;
+SHOW STATUS LIKE 'max_used_connections';
+Variable_name Value
+Max_used_connections 1
+SET @save_thread_cache_size=@@thread_cache_size;
+SET GLOBAL thread_cache_size=3;
+SHOW STATUS LIKE 'max_used_connections';
+Variable_name Value
+Max_used_connections 3
+FLUSH STATUS;
+SHOW STATUS LIKE 'max_used_connections';
+Variable_name Value
+Max_used_connections 2
+SHOW STATUS LIKE 'max_used_connections';
+Variable_name Value
+Max_used_connections 3
+SHOW STATUS LIKE 'max_used_connections';
+Variable_name Value
+Max_used_connections 4
+SET GLOBAL thread_cache_size=@save_thread_cache_size;
+CREATE TABLE t1 ( a INT );
+INSERT INTO t1 VALUES (1), (2);
+SELECT a FROM t1 LIMIT 1;
+a
+1
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 2.402418
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 2.402418
+SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a;
+a
+1
+2
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 0.000000
+EXPLAIN SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+2 UNION t1 ALL NULL NULL NULL NULL 2
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 0.000000
+SELECT a IN (SELECT a FROM t1) FROM t1 LIMIT 1;
+a IN (SELECT a FROM t1)
+1
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 0.000000
+SELECT (SELECT a FROM t1 LIMIT 1) x FROM t1 LIMIT 1;
+x
+1
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 0.000000
+SELECT * FROM t1 a, t1 b LIMIT 1;
+a a
+1 1
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+Variable_name Value
+Last_query_cost 4.805836
+DROP TABLE t1;
diff --git a/mysql-test/r/strict.result b/mysql-test/r/strict.result
new file mode 100644
index 00000000000..34869862a63
--- /dev/null
+++ b/mysql-test/r/strict.result
@@ -0,0 +1,1402 @@
+set @org_mode=@@sql_mode;
+set @@sql_mode='ansi,traditional';
+select @@sql_mode;
+@@sql_mode
+REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (col1 date);
+INSERT INTO t1 VALUES('2004-01-01'),('2004-02-29');
+INSERT INTO t1 VALUES('0000-10-31');
+INSERT INTO t1 VALUES('2004-0-31');
+ERROR 22007: Incorrect date value: '2004-0-31' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-01-02'),('2004-0-31');
+ERROR 22007: Incorrect date value: '2004-0-31' for column 'col1' at row 2
+INSERT INTO t1 VALUES('2004-10-0');
+ERROR 22007: Incorrect date value: '2004-10-0' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-09-31');
+ERROR 22007: Incorrect date value: '2004-09-31' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-32');
+ERROR 22007: Incorrect date value: '2004-10-32' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2003-02-29');
+ERROR 22007: Incorrect date value: '2003-02-29' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-13-15');
+ERROR 22007: Incorrect date value: '2004-13-15' for column 'col1' at row 1
+INSERT INTO t1 VALUES('0000-00-00');
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'col1' at row 1
+INSERT INTO t1 VALUES ('59');
+ERROR 22007: Incorrect date value: '59' for column 'col1' at row 1
+set @@sql_mode='STRICT_ALL_TABLES';
+INSERT INTO t1 VALUES('2004-01-03'),('2004-0-31');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_IN_DATE';
+INSERT INTO t1 VALUES('2004-0-30');
+ERROR 22007: Incorrect date value: '2004-0-30' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-01-04'),('2004-0-31'),('2004-01-05');
+ERROR 22007: Incorrect date value: '2004-0-31' for column 'col1' at row 2
+INSERT INTO t1 VALUES('0000-00-00');
+INSERT IGNORE INTO t1 VALUES('2004-0-29');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_DATE';
+INSERT INTO t1 VALUES('0000-00-00');
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'col1' at row 1
+INSERT IGNORE INTO t1 VALUES('0000-00-00');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT INTO t1 VALUES ('2004-0-30');
+INSERT INTO t1 VALUES ('2004-2-30');
+ERROR 22007: Incorrect date value: '2004-2-30' for column 'col1' at row 1
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT INTO t1 VALUES ('2004-2-30');
+set @@sql_mode='ansi,traditional';
+INSERT IGNORE INTO t1 VALUES('2004-02-29'),('2004-13-15'),('0000-00-00');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 2
+Warning 1265 Data truncated for column 'col1' at row 3
+select * from t1;
+col1
+2004-01-01
+2004-02-29
+0000-10-31
+2004-01-02
+2004-01-03
+2004-00-31
+2004-01-04
+0000-00-00
+0000-00-00
+0000-00-00
+2004-00-30
+2004-02-30
+2004-02-29
+0000-00-00
+0000-00-00
+drop table t1;
+set @@sql_mode='strict_trans_tables';
+CREATE TABLE t1 (col1 date) engine=myisam;
+INSERT INTO t1 VALUES('2004-13-31'),('2004-1-1');
+ERROR 22007: Incorrect date value: '2004-13-31' for column 'col1' at row 1
+INSERT INTO t1 VALUES ('2004-1-2'), ('2004-13-31'),('2004-1-3');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 2
+INSERT IGNORE INTO t1 VALUES('2004-13-31'),('2004-1-4');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT INTO t1 VALUES ('2003-02-29');
+ERROR 22007: Incorrect date value: '2003-02-29' for column 'col1' at row 1
+INSERT ignore INTO t1 VALUES('2003-02-30');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT ignore INTO t1 VALUES('2003-02-31');
+select * from t1;
+col1
+2004-01-02
+0000-00-00
+2004-01-03
+0000-00-00
+2004-01-04
+0000-00-00
+2003-02-31
+drop table t1;
+set @@sql_mode='strict_trans_tables';
+CREATE TABLE t1 (col1 date) engine=innodb;
+INSERT INTO t1 VALUES('2004-13-31'),('2004-1-1');
+ERROR 22007: Incorrect date value: '2004-13-31' for column 'col1' at row 1
+INSERT INTO t1 VALUES ('2004-1-2'), ('2004-13-31'),('2004-1-3');
+ERROR 22007: Incorrect date value: '2004-13-31' for column 'col1' at row 2
+INSERT IGNORE INTO t1 VALUES('2004-13-31'),('2004-1-4');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT INTO t1 VALUES ('2003-02-29');
+ERROR 22007: Incorrect date value: '2003-02-29' for column 'col1' at row 1
+INSERT ignore INTO t1 VALUES('2003-02-30');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT ignore INTO t1 VALUES('2003-02-31');
+select * from t1;
+col1
+0000-00-00
+2004-01-04
+0000-00-00
+2003-02-31
+drop table t1;
+set @@sql_mode='ansi,traditional';
+CREATE TABLE t1 (col1 datetime);
+INSERT INTO t1 VALUES('2004-10-31 15:30:00'),('2004-02-29 15:30:00');
+INSERT INTO t1 VALUES('0000-10-31 15:30:00');
+INSERT INTO t1 VALUES('2004-0-31 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-0-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-0 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-10-0 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-09-31 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-09-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-32 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-10-32 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2003-02-29 15:30:00');
+ERROR 22007: Incorrect datetime value: '2003-02-29 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-13-15 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-13-15 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('0000-00-00 15:30:00');
+ERROR 22007: Incorrect datetime value: '0000-00-00 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES ('59');
+ERROR 22007: Incorrect datetime value: '59' for column 'col1' at row 1
+select * from t1;
+col1
+2004-10-31 15:30:00
+2004-02-29 15:30:00
+0000-10-31 15:30:00
+drop table t1;
+CREATE TABLE t1 (col1 timestamp);
+INSERT INTO t1 VALUES('2004-10-31 15:30:00'),('2004-02-29 15:30:00');
+INSERT INTO t1 VALUES('0000-10-31 15:30:00');
+ERROR 22007: Incorrect datetime value: '0000-10-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-0-31 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-0-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-0 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-10-0 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-09-31 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-09-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-32 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-10-32 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2003-02-29 15:30:00');
+ERROR 22007: Incorrect datetime value: '2003-02-29 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-13-15 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-13-15 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-02-29 25:30:00');
+ERROR 22007: Incorrect datetime value: '2004-02-29 25:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-02-29 15:65:00');
+ERROR 22007: Incorrect datetime value: '2004-02-29 15:65:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-02-29 15:31:61');
+ERROR 22007: Incorrect datetime value: '2004-02-29 15:31:61' for column 'col1' at row 1
+INSERT INTO t1 VALUES('0000-00-00 15:30:00');
+ERROR 22007: Incorrect datetime value: '0000-00-00 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'col1' at row 1
+INSERT IGNORE INTO t1 VALUES('0000-00-00 00:00:00');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT INTO t1 VALUES ('59');
+ERROR 22007: Incorrect datetime value: '59' for column 'col1' at row 1
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT INTO t1 VALUES('2004-0-31 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-0-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-0 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-10-0 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-10-32 15:30:00');
+ERROR 22007: Incorrect datetime value: '2004-10-32 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 VALUES('2004-02-30 15:30:04');
+ERROR 22007: Incorrect datetime value: '2004-02-30 15:30:04' for column 'col1' at row 1
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_IN_DATE';
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_DATE';
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'col1' at row 1
+set @@sql_mode='ansi,traditional';
+SELECT * FROM t1;
+col1
+2004-10-31 15:30:00
+2004-02-29 15:30:00
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+DROP TABLE t1;
+CREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);
+INSERT INTO t1 (col1) VALUES (STR_TO_DATE('15.10.2004','%d.%m.%Y'));
+INSERT INTO t1 (col2) VALUES (STR_TO_DATE('15.10.2004 10.15','%d.%m.%Y %H.%i'));
+INSERT INTO t1 (col3) VALUES (STR_TO_DATE('15.10.2004 10.15','%d.%m.%Y %H.%i'));
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));
+Warnings:
+Note 1265 Data truncated for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));
+ERROR 22007: Incorrect date value: '2004-00-31 15:30:00' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));
+ERROR 22007: Incorrect date value: '2004-10-00 15:30:00' for column 'col1' at row 1
+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
+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
+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'));
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));
+ERROR 22007: Incorrect datetime value: '2004-00-31 15:30:00' for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));
+ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col2' at row 1
+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
+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
+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'));
+ERROR 22007: Incorrect datetime value: '0000-10-31 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));
+ERROR 22007: Incorrect datetime value: '2004-00-31 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));
+ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col3' at row 1
+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
+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
+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;
+CREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);
+INSERT INTO t1 (col1) VALUES (CAST('2004-10-15' AS DATE));
+INSERT INTO t1 (col2) VALUES (CAST('2004-10-15 10:15' AS DATETIME));
+INSERT INTO t1 (col3) VALUES (CAST('2004-10-15 10:15' AS DATETIME));
+INSERT INTO t1 (col1) VALUES(CAST('0000-10-31' AS DATE));
+INSERT INTO t1 (col1) VALUES(CAST('2004-10-0' AS DATE));
+ERROR 22007: Incorrect date value: '2004-10-00' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(CAST('2004-0-10' AS DATE));
+ERROR 22007: Incorrect date value: '2004-00-10' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(CAST('0000-00-00' AS DATE));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+INSERT INTO t1 (col2) VALUES(CAST('0000-10-31 15:30' AS DATETIME));
+INSERT INTO t1 (col2) VALUES(CAST('2004-10-0 15:30' AS DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(CAST('2004-0-10 15:30' AS DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-00-10 15:30:00' for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(CAST('0000-00-00' AS DATETIME));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+INSERT INTO t1 (col3) VALUES(CAST('0000-10-31 15:30' AS DATETIME));
+ERROR 22007: Incorrect datetime value: '0000-10-31 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(CAST('2004-10-0 15:30' AS DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(CAST('2004-0-10 15:30' AS DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-00-10 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(CAST('0000-00-00' AS DATETIME));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+drop table t1;
+CREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);
+INSERT INTO t1 (col1) VALUES (CONVERT('2004-10-15',DATE));
+INSERT INTO t1 (col2) VALUES (CONVERT('2004-10-15 10:15',DATETIME));
+INSERT INTO t1 (col3) VALUES (CONVERT('2004-10-15 10:15',DATETIME));
+INSERT INTO t1 (col1) VALUES(CONVERT('0000-10-31' , DATE));
+INSERT INTO t1 (col1) VALUES(CONVERT('2004-10-0' , DATE));
+ERROR 22007: Incorrect date value: '2004-10-00' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(CONVERT('2004-0-10' , DATE));
+ERROR 22007: Incorrect date value: '2004-00-10' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(CONVERT('0000-00-00',DATE));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+INSERT INTO t1 (col2) VALUES(CONVERT('0000-10-31 15:30',DATETIME));
+INSERT INTO t1 (col2) VALUES(CONVERT('2004-10-0 15:30',DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(CONVERT('2004-0-10 15:30',DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-00-10 15:30:00' for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(CONVERT('0000-00-00',DATETIME));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+INSERT INTO t1 (col3) VALUES(CONVERT('0000-10-31 15:30',DATETIME));
+ERROR 22007: Incorrect datetime value: '0000-10-31 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(CONVERT('2004-10-0 15:30',DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(CONVERT('2004-0-10 15:30',DATETIME));
+ERROR 22007: Incorrect datetime value: '2004-00-10 15:30:00' for column 'col3' at row 1
+INSERT INTO t1 (col3) VALUES(CONVERT('0000-00-00',DATETIME));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+drop table t1;
+CREATE TABLE t1(col1 TINYINT, col2 TINYINT UNSIGNED);
+INSERT INTO t1 VALUES(-128,0),(0,0),(127,255),('-128','0'),('0','0'),('127','255'),(-128.0,0.0),(0.0,0.0),(127.0,255.0);
+SELECT MOD(col1,0) FROM t1 WHERE col1 > 0 LIMIT 2;
+MOD(col1,0)
+NULL
+NULL
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT INTO t1 (col1) VALUES(-129);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(128);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(256);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES('-129');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES('128');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES('-1');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES('256');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES(128.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(256.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+SELECT MOD(col1,0) FROM t1 WHERE col1 > 0 LIMIT 1;
+MOD(col1,0)
+NULL
+Warnings:
+Error 1365 Division by 0
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+UPDATE t1 SET col2=col2 + 50 WHERE col2 > 0;
+ERROR 22003: Out of range value adjusted for column 'col2' at row 3
+UPDATE t1 SET col1=col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+set @@sql_mode='ERROR_FOR_DIVISION_BY_ZERO';
+INSERT INTO t1 values (1/0,1/0);
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+set @@sql_mode='ansi,traditional';
+SELECT MOD(col1,0) FROM t1 WHERE col1 > 0 LIMIT 2;
+MOD(col1,0)
+NULL
+NULL
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR HY000: Incorrect integer value: '' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR HY000: Incorrect integer value: 'a59b' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 values (1/0,1/0);
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+set @@sql_mode='ansi';
+INSERT INTO t1 values (1/0,1/0);
+set @@sql_mode='ansi,traditional';
+INSERT IGNORE INTO t1 VALUES('-129','-1'),('128','256');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES(-129.0,-1.0),(128.0,256.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+col1 col2
+-128 0
+0 NULL
+127 255
+-128 0
+0 NULL
+127 255
+-128 0
+0 NULL
+127 255
+NULL NULL
+2 NULL
+NULL NULL
+NULL NULL
+-128 0
+127 255
+-128 0
+127 255
+DROP TABLE t1;
+CREATE TABLE t1(col1 SMALLINT, col2 SMALLINT UNSIGNED);
+INSERT INTO t1 VALUES(-32768,0),(0,0),(32767,65535),('-32768','0'),('32767','65535'),(-32768.0,0.0),(32767.0,65535.0);
+INSERT INTO t1 (col1) VALUES(-32769);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(32768);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(65536);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES('-32769');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES('32768');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES('-1');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES('65536');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES(-32769.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(32768.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(65536.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+UPDATE t1 SET col2 = col2 + 50 WHERE col2 > 0;
+ERROR 22003: Out of range value adjusted for column 'col2' at row 3
+UPDATE t1 SET col1 = col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR HY000: Incorrect integer value: '' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR HY000: Incorrect integer value: 'a59b' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 values (1/0,1/0);
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 VALUES(-32769,-1),(32768,65536);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES('-32769','-1'),('32768','65536');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES(-32769,-1.0),(32768.0,65536.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+col1 col2
+-32768 0
+0 NULL
+32767 65535
+-32768 0
+32767 65535
+-32768 0
+32767 65535
+2 NULL
+NULL NULL
+-32768 0
+32767 65535
+-32768 0
+32767 65535
+-32768 0
+32767 65535
+DROP TABLE t1;
+CREATE TABLE t1 (col1 MEDIUMINT, col2 MEDIUMINT UNSIGNED);
+INSERT INTO t1 VALUES(-8388608,0),(0,0),(8388607,16777215),('-8388608','0'),('8388607','16777215'),(-8388608.0,0.0),(8388607.0,16777215.0);
+INSERT INTO t1 (col1) VALUES(-8388609);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(8388608);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(16777216);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES('-8388609');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES('8388608');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES('-1');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES('16777216');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES(-8388609.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(8388608.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(16777216.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+UPDATE t1 SET col2 = col2 + 50 WHERE col2 > 0;
+ERROR 22003: Out of range value adjusted for column 'col2' at row 3
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR HY000: Incorrect integer value: '' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR HY000: Incorrect integer value: 'a59b' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 values (1/0,1/0);
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 VALUES(-8388609,-1),(8388608,16777216);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES('-8388609','-1'),('8388608','16777216');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES(-8388609.0,-1.0),(8388608.0,16777216.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+col1 col2
+-8388608 0
+0 NULL
+8388607 16777215
+-8388608 0
+8388607 16777215
+-8388608 0
+8388607 16777215
+2 NULL
+NULL NULL
+-8388608 0
+8388607 16777215
+-8388608 0
+8388607 16777215
+-8388608 0
+8388607 16777215
+DROP TABLE t1;
+CREATE TABLE t1 (col1 INT, col2 INT UNSIGNED);
+INSERT INTO t1 VALUES(-2147483648,0),(0,0),(2147483647,4294967295),('-2147483648','0'),('2147483647','4294967295'),(-2147483648.0,0.0),(2147483647.0,4294967295.0);
+INSERT INTO t1 (col1) VALUES(-2147483649);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(2147643648);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(4294967296);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES('-2147483649');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES('2147643648');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES('-1');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES('4294967296');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES(-2147483649.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(2147643648.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(4294967296.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+UPDATE t1 SET col2 =col2 + 50 WHERE col2 > 0;
+ERROR 22003: Out of range value adjusted for column 'col2' at row 3
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR HY000: Incorrect integer value: '' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR HY000: Incorrect integer value: 'a59b' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 values (1/0,1/0);
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 values (-2147483649, -1),(2147643648,4294967296);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 values ('-2147483649', '-1'),('2147643648','4294967296');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 values (-2147483649.0, -1.0),(2147643648.0,4294967296.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+col1 col2
+-2147483648 0
+0 NULL
+2147483647 4294967295
+-2147483648 0
+2147483647 4294967295
+-2147483648 0
+2147483647 4294967295
+2 NULL
+NULL NULL
+-2147483648 0
+2147483647 4294967295
+-2147483648 0
+2147483647 4294967295
+-2147483648 0
+2147483647 4294967295
+DROP TABLE t1;
+CREATE TABLE t1 (col1 BIGINT, col2 BIGINT UNSIGNED);
+INSERT INTO t1 VALUES(-9223372036854775808,0),(0,0),(9223372036854775807,18446744073709551615);
+INSERT INTO t1 VALUES('-9223372036854775808','0'),('9223372036854775807','18446744073709551615');
+INSERT INTO t1 VALUES(-9223372036854774000.0,0.0),(9223372036854775700.0,1844674407370954000.0);
+INSERT INTO t1 (col1) VALUES(-9223372036854775809);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(9223372036854775808);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(18446744073709551616);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES('-9223372036854775809');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES('9223372036854775808');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES('-1');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES('18446744073709551616');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES(-9223372036854785809.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES(9223372036854785808.0);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES(-1.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES(18446744073709551616.0);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR HY000: Incorrect integer value: '' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR HY000: Incorrect integer value: 'a59b' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 values (1/0,1/0);
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 VALUES(-9223372036854775809,-1),(9223372036854775808,18446744073709551616);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES('-9223372036854775809','-1'),('9223372036854775808','18446744073709551616');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES(-9223372036854785809.0,-1.0),(9223372036854785808.0,18446744073709551616.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+Warning 1264 Out of range value adjusted for column 'col2' at row 2
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+col1 col2
+-9223372036854775808 0
+0 NULL
+9223372036854775807 18446744073709551615
+-9223372036854775808 0
+9223372036854775807 18446744073709551615
+-9223372036854774000 0
+9223372036854775700 1844674407370954000
+2 NULL
+NULL NULL
+-9223372036854775808 0
+9223372036854775807 18446744073709551615
+-9223372036854775808 0
+9223372036854775807 18446744073709551615
+-9223372036854775808 0
+9223372036854775807 18446744073709551615
+DROP TABLE t1;
+CREATE TABLE t1 (col1 NUMERIC(4,2));
+INSERT INTO t1 VALUES (10.55),(10.5555),(0),(-10.55),(-10.5555),(11),(1e+01);
+Warnings:
+Note 1265 Data truncated for column 'col1' at row 2
+Note 1265 Data truncated for column 'col1' at row 5
+INSERT INTO t1 VALUES ('10.55'),('10.5555'),('-10.55'),('-10.5555'),('11'),('1e+01');
+Warnings:
+Note 1265 Data truncated for column 'col1' at row 2
+Note 1265 Data truncated for column 'col1' at row 4
+INSERT INTO t1 VALUES (101.55);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES (101);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES (-101.55);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES (1010.55);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES (1010);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES ('101.55');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES ('101');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES ('-101.55');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES ('-1010.55');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES ('-100E+1');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 VALUES ('-100E');
+ERROR HY000: Incorrect decimal value: '-100E' for column 'col1' at row 1
+UPDATE t1 SET col1 =col1 * 50000 WHERE col1 =11;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 6
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR HY000: Incorrect decimal value: '' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR HY000: Incorrect decimal value: 'a59b' for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR HY000: Incorrect decimal value: '1a' for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Note 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 values (1/0);
+Warnings:
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 VALUES(1000),(-1000);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+INSERT IGNORE INTO t1 VALUES('1000'),('-1000');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+INSERT IGNORE INTO t1 VALUES(1000.0),(-1000.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+UPDATE IGNORE t1 SET col1=1/NULL where col1=0;
+SELECT * FROM t1;
+col1
+10.55
+10.56
+NULL
+-10.55
+-10.56
+11.00
+10.00
+10.55
+10.56
+-10.55
+-10.56
+11.00
+10.00
+2.00
+NULL
+99.99
+-99.99
+99.99
+-99.99
+99.99
+-99.99
+DROP TABLE t1;
+CREATE TABLE t1 (col1 FLOAT, col2 FLOAT UNSIGNED);
+INSERT INTO t1 VALUES (-1.1E-37,0),(+3.4E+38,+3.4E+38);
+INSERT INTO t1 VALUES ('-1.1E-37',0),('+3.4E+38','+3.4E+38');
+INSERT INTO t1 (col1) VALUES (3E-46);
+INSERT INTO t1 (col1) VALUES (+3.4E+39);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES (-1.1E-3);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES ('+3.4E+39');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES ('-1.1E-3');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+UPDATE t1 SET col1 =col1 * 5000 WHERE col1 > 0;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 2
+UPDATE t1 SET col2 =col2 / 0 WHERE col2 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col2= MOD(col2,0) WHERE col2 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES (1/0);
+Warnings:
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 VALUES (+3.4E+39,-3.4E+39);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+INSERT IGNORE INTO t1 VALUES ('+3.4E+39','-3.4E+39');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+SELECT * FROM t1;
+col1 col2
+-1.1e-37 0
+3.4e+38 3.4e+38
+-1.1e-37 0
+3.4e+38 3.4e+38
+0 NULL
+2 NULL
+NULL NULL
+3.40282e+38 0
+3.40282e+38 0
+DROP TABLE t1;
+CREATE TABLE t1 (col1 DOUBLE PRECISION, col2 DOUBLE PRECISION UNSIGNED);
+INSERT INTO t1 VALUES (-2.2E-307,0),(2E-307,0),(+1.7E+308,+1.7E+308);
+INSERT INTO t1 VALUES ('-2.2E-307',0),('-2E-307',0),('+1.7E+308','+1.7E+308');
+INSERT INTO t1 (col1) VALUES (-2.2E-330);
+INSERT INTO t1 (col1) VALUES (+1.7E+309);
+Got one of the listed errors
+INSERT INTO t1 (col2) VALUES (-1.1E-3);
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+INSERT INTO t1 (col1) VALUES ('+1.8E+309');
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES ('-1.2E-3');
+ERROR 22003: Out of range value adjusted for column 'col2' at row 1
+UPDATE t1 SET col1 =col1 * 5000 WHERE col1 > 0;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 3
+UPDATE t1 SET col2 =col2 / 0 WHERE col2 > 0;
+ERROR 22012: Division by 0
+UPDATE t1 SET col2= MOD(col2,0) WHERE col2 > 0;
+ERROR 22012: Division by 0
+INSERT INTO t1 (col1) VALUES ('');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('a59b');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('1a');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+INSERT IGNORE INTO t1 (col1) values (1/0);
+Warnings:
+Error 1365 Division by 0
+INSERT IGNORE INTO t1 VALUES (+1.9E+309,-1.9E+309);
+ERROR 22007: Illegal double '1.9E+309' value found during parsing
+INSERT IGNORE INTO t1 VALUES ('+2.0E+309','-2.0E+309');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+SELECT * FROM t1;
+col1 col2
+-2.2e-307 0
+1e-303 0
+1.7e+308 1.7e+308
+-2.2e-307 0
+-2e-307 0
+1.7e+308 1.7e+308
+0 NULL
+2 NULL
+NULL NULL
+1.79769313486232e+308 0
+DROP TABLE t1;
+CREATE TABLE t1 (col1 CHAR(5), col2 VARCHAR(6));
+INSERT INTO t1 VALUES ('hello', 'hello'),('he', 'he'),('hello ', 'hello ');
+INSERT INTO t1 (col1) VALUES ('hellobob');
+ERROR 22001: Data too long for column 'col1' at row 1
+INSERT INTO t1 (col2) VALUES ('hellobob');
+ERROR 22001: Data too long for column 'col2' at row 1
+INSERT INTO t1 (col2) VALUES ('hello ');
+Warnings:
+Note 1265 Data truncated for column 'col2' at row 1
+UPDATE t1 SET col1 ='hellobob' WHERE col1 ='he';
+ERROR 22001: Data too long for column 'col1' at row 2
+UPDATE t1 SET col2 ='hellobob' WHERE col2 ='he';
+ERROR 22001: Data too long for column 'col2' at row 2
+INSERT IGNORE INTO t1 VALUES ('hellobob', 'hellobob');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+Warning 1265 Data truncated for column 'col2' at row 1
+UPDATE IGNORE t1 SET col2 ='hellotrudy' WHERE col2 ='he';
+Warnings:
+Warning 1265 Data truncated for column 'col2' at row 2
+SELECT * FROM t1;
+col1 col2
+hello hello
+he hellot
+hello hello
+NULL hello
+hello hellob
+DROP TABLE t1;
+CREATE TABLE t1 (col1 enum('red','blue','green'));
+INSERT INTO t1 VALUES ('red'),('blue'),('green');
+INSERT INTO t1 (col1) VALUES ('yellow');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT INTO t1 (col1) VALUES ('redd');
+ERROR 01000: Data truncated for column 'col1' at row 1
+INSERT INTO t1 VALUES ('');
+ERROR 01000: Data truncated for column 'col1' at row 1
+UPDATE t1 SET col1 ='yellow' WHERE col1 ='green';
+ERROR 01000: Data truncated for column 'col1' at row 3
+INSERT IGNORE INTO t1 VALUES ('yellow');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+UPDATE IGNORE t1 SET col1 ='yellow' WHERE col1 ='blue';
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 2
+SELECT * FROM t1;
+col1
+red
+
+green
+
+DROP TABLE t1;
+CREATE TABLE t1 (col1 INT NOT NULL, col2 CHAR(5) NOT NULL, col3 DATE NOT NULL);
+INSERT INTO t1 VALUES (100, 'hello', '2004-08-20');
+INSERT INTO t1 (col1,col2,col3) VALUES (101, 'hell2', '2004-08-21');
+INSERT INTO t1 (col1,col2,col3) VALUES (NULL, '', '2004-01-01');
+ERROR 23000: Column 'col1' cannot be null
+INSERT INTO t1 (col1,col2,col3) VALUES (102, NULL, '2004-01-01');
+ERROR 23000: Column 'col2' cannot be null
+INSERT INTO t1 VALUES (103,'',NULL);
+ERROR 23000: Column 'col3' cannot be null
+UPDATE t1 SET col1=NULL WHERE col1 =100;
+ERROR 23000: Column 'col1' cannot be null
+UPDATE t1 SET col2 =NULL WHERE col2 ='hello';
+ERROR 23000: Column 'col2' cannot be null
+UPDATE t1 SET col2 =NULL where col3 IS NOT NULL;
+ERROR 23000: Column 'col2' cannot be null
+INSERT IGNORE INTO t1 values (NULL,NULL,NULL);
+Warnings:
+Warning 1048 Column 'col1' cannot be null
+Warning 1048 Column 'col2' cannot be null
+Warning 1048 Column 'col3' cannot be null
+SELECT * FROM t1;
+col1 col2 col3
+100 hello 2004-08-20
+101 hell2 2004-08-21
+0 0000-00-00
+DROP TABLE t1;
+CREATE TABLE t1 (col1 INT NOT NULL default 99, col2 CHAR(6) NOT NULL);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE "t1" (
+ "col1" int(11) NOT NULL default '99',
+ "col2" char(6) NOT NULL
+)
+INSERT INTO t1 VALUES (1, 'hello');
+INSERT INTO t1 (col2) VALUES ('hello2');
+INSERT INTO t1 (col2) VALUES (NULL);
+ERROR 23000: Column 'col2' cannot be null
+INSERT INTO t1 (col1) VALUES (2);
+ERROR HY000: Field 'col2' doesn't have a default value
+INSERT INTO t1 VALUES(default(col1),default(col2));
+ERROR HY000: Field 'col2' doesn't have a default value
+INSERT INTO t1 (col1) SELECT 1;
+ERROR HY000: Field 'col2' doesn't have a default value
+INSERT INTO t1 SELECT 1,NULL;
+ERROR 23000: Column 'col2' cannot be null
+INSERT IGNORE INTO t1 values (NULL,NULL);
+Warnings:
+Warning 1048 Column 'col1' cannot be null
+Warning 1048 Column 'col2' cannot be null
+INSERT IGNORE INTO t1 (col1) values (3);
+Warnings:
+Warning 1364 Field 'col2' doesn't have a default value
+INSERT IGNORE INTO t1 () values ();
+Warnings:
+Warning 1364 Field 'col2' doesn't have a default value
+SELECT * FROM t1;
+col1 col2
+1 hello
+99 hello2
+0
+3
+99
+DROP TABLE t1;
+set sql_mode='traditional';
+create table t1 (charcol char(255), varcharcol varchar(255),
+binarycol binary(255), varbinarycol varbinary(255), tinytextcol tinytext,
+tinyblobcol tinyblob);
+insert into t1 (charcol) values (repeat('x',256));
+ERROR 22001: Data too long for column 'charcol' at row 1
+insert into t1 (varcharcol) values (repeat('x',256));
+ERROR 22001: Data too long for column 'varcharcol' at row 1
+insert into t1 (binarycol) values (repeat('x',256));
+ERROR 22001: Data too long for column 'binarycol' at row 1
+insert into t1 (varbinarycol) values (repeat('x',256));
+ERROR 22001: Data too long for column 'varbinarycol' at row 1
+insert into t1 (tinytextcol) values (repeat('x',256));
+ERROR 22001: Data too long for column 'tinytextcol' at row 1
+insert into t1 (tinyblobcol) values (repeat('x',256));
+ERROR 22001: Data too long for column 'tinyblobcol' at row 1
+select * from t1;
+charcol varcharcol binarycol varbinarycol tinytextcol tinyblobcol
+drop table t1;
+set sql_mode='traditional';
+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
+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
+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
+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
+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
+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
+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'));
+select * from t1;
+col1
+2004-10-31 15:30:00
+NULL
+NULL
+NULL
+2004-10-31 15:30:00
+2004-12-12 11:22:33
+2004-12-12 10:22:59
+set sql_mode='traditional';
+select count(*) from t1 where STR_TO_DATE('2004.12.12 10:22:61','%Y.%m.%d %T') IS NULL;
+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
+drop table t1;
+create table t1 (col1 char(3), col2 integer);
+insert into t1 (col1) values (cast(1000 as char(3)));
+ERROR 22007: Truncated incorrect CHAR(3) value: '1000'
+insert into t1 (col1) values (cast(1000E+0 as char(3)));
+ERROR 22007: Truncated incorrect CHAR(3) value: '1000'
+insert into t1 (col1) values (cast(1000.0 as char(3)));
+ERROR 22007: Truncated incorrect CHAR(3) value: '1000.0'
+insert into t1 (col2) values (cast('abc' as signed integer));
+ERROR 22007: Truncated incorrect INTEGER value: 'abc'
+insert into t1 (col2) values (10E+0 + 'a');
+ERROR 22007: Truncated incorrect DOUBLE value: 'a'
+insert into t1 (col2) values (cast('10a' as unsigned integer));
+ERROR 22007: Truncated incorrect INTEGER value: '10a'
+insert into t1 (col2) values (cast('10' as unsigned integer));
+insert into t1 (col2) values (cast('10' as signed integer));
+insert into t1 (col2) values (10E+0 + '0 ');
+select * from t1;
+col1 col2
+NULL 10
+NULL 10
+NULL 10
+drop table t1;
+create table t1 (col1 date, col2 datetime, col3 timestamp);
+insert into t1 values (0,0,0);
+ERROR 22007: Incorrect date value: '0' for column 'col1' at row 1
+insert into t1 values (0.0,0.0,0.0);
+ERROR 22007: Incorrect date value: '0' for column 'col1' at row 1
+insert into t1 (col1) values (convert('0000-00-00',date));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+insert into t1 (col1) values (cast('0000-00-00' as date));
+ERROR 22007: Truncated incorrect datetime value: '0000-00-00'
+set sql_mode='no_zero_date';
+insert into t1 values (0,0,0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1265 Data truncated for column 'col3' at row 1
+insert into t1 values (0.0,0.0,0.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col2' at row 1
+Warning 1265 Data truncated for column 'col3' at row 1
+drop table t1;
+set sql_mode='traditional';
+create table t1 (col1 date);
+insert ignore into t1 values ('0000-00-00');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+insert into t1 select * from t1;
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'col1' at row 1
+insert ignore into t1 values ('0000-00-00');
+Warnings:
+Warning 1265 Data truncated for column 'col1' at row 1
+insert ignore into t1 (col1) values (cast('0000-00-00' as date));
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+insert into t1 select * from t1;
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'col1' at row 1
+alter table t1 modify col1 datetime;
+ERROR 22007: Incorrect datetime value: '0000-00-00' for column 'col1' at row 1
+alter ignore table t1 modify col1 datetime;
+Warnings:
+Warning 1264 Out of range value adjusted for column 'col1' at row 1
+Warning 1264 Out of range value adjusted for column 'col1' at row 2
+insert into t1 select * from t1;
+ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'col1' at row 1
+select * from t1;
+col1
+0000-00-00 00:00:00
+0000-00-00 00:00:00
+NULL
+drop table t1;
+create table t1 (col1 tinyint);
+drop procedure if exists t1;
+Warnings:
+Note 1305 PROCEDURE t1 does not exist
+create procedure t1 () begin declare exit handler for sqlexception
+select'a'; insert into t1 values (200); end;|
+call t1();
+a
+a
+select * from t1;
+col1
+drop procedure t1;
+drop table t1;
+set sql_mode=@org_mode;
+SET @@sql_mode = 'traditional';
+CREATE TABLE t1 (i int not null);
+INSERT INTO t1 VALUES ();
+ERROR HY000: Field 'i' doesn't have a default value
+INSERT INTO t1 VALUES (DEFAULT);
+ERROR HY000: Field 'i' doesn't have a default value
+INSERT INTO t1 VALUES (DEFAULT(i));
+ERROR HY000: Field 'i' doesn't have a default value
+ALTER TABLE t1 ADD j int;
+INSERT INTO t1 SET j = 1;
+ERROR HY000: Field 'i' doesn't have a default value
+INSERT INTO t1 SET j = 1, i = DEFAULT;
+ERROR HY000: Field 'i' doesn't have a default value
+INSERT INTO t1 SET j = 1, i = DEFAULT(i);
+ERROR HY000: Field 'i' doesn't have a default value
+INSERT INTO t1 VALUES (DEFAULT,1);
+ERROR HY000: Field 'i' doesn't have a default value
+DROP TABLE t1;
+SET @@sql_mode = '';
+CREATE TABLE t1 (i int not null);
+INSERT INTO t1 VALUES ();
+Warnings:
+Warning 1364 Field 'i' doesn't have a default value
+INSERT INTO t1 VALUES (DEFAULT);
+Warnings:
+Warning 1364 Field 'i' doesn't have a default value
+INSERT INTO t1 VALUES (DEFAULT(i));
+ERROR HY000: Field 'i' doesn't have a default value
+ALTER TABLE t1 ADD j int;
+INSERT INTO t1 SET j = 1;
+Warnings:
+Warning 1364 Field 'i' doesn't have a default value
+INSERT INTO t1 SET j = 1, i = DEFAULT;
+Warnings:
+Warning 1364 Field 'i' doesn't have a default value
+INSERT INTO t1 SET j = 1, i = DEFAULT(i);
+ERROR HY000: Field 'i' doesn't have a default value
+INSERT INTO t1 VALUES (DEFAULT,1);
+Warnings:
+Warning 1364 Field 'i' doesn't have a default value
+DROP TABLE t1;
+set @@sql_mode='traditional';
+create table t1(a varchar(65537));
+ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
+create table t1(a varbinary(65537));
+ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
+set @@sql_mode='traditional';
+create table t1(a int, b date not null);
+alter table t1 modify a bigint unsigned not null;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bigint(20) unsigned NOT NULL,
+ `b` date NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @@sql_mode='traditional';
+create table t1 (d date);
+insert into t1 values ('2000-10-00');
+ERROR 22007: Incorrect date value: '2000-10-00' for column 'd' at row 1
+insert into t1 values (1000);
+ERROR 22007: Incorrect date value: '1000' for column 'd' at row 1
+insert into t1 values ('2000-10-01');
+update t1 set d = 1100;
+ERROR 22007: Incorrect date value: '1100' for column 'd' at row 1
+select * from t1;
+d
+2000-10-01
+drop table t1;
+set @@sql_mode='traditional';
+create table t1(a int, b timestamp);
+alter table t1 add primary key(a);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) NOT NULL default '0',
+ `b` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1(a int, b timestamp default 20050102030405);
+alter table t1 add primary key(a);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) NOT NULL default '0',
+ `b` timestamp NOT NULL default '2005-01-02 03:04:05',
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @@sql_mode='traditional';
+create table t1(a bit(2));
+insert into t1 values(b'101');
+ERROR 22001: Data too long for column 'a' at row 1
+select * from t1;
+a
+drop table t1;
+set sql_mode='traditional';
+create table t1 (date date not null);
+create table t2 select date from t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `date` date NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t2,t1;
+set @@sql_mode= @org_mode;
+set @@sql_mode='traditional';
+create table t1 (i int)
+comment '123456789*123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*123456789*';
+ERROR HY000: Too long comment for table 't1'
+create table t1 (
+i int comment
+'123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*');
+ERROR HY000: Too long comment for field 'i'
+set @@sql_mode= @org_mode;
+create table t1
+(i int comment
+'123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*');
+Warnings:
+Warning 1105 Unknown error
+select column_name, column_comment from information_schema.columns where
+table_schema = 'test' and table_name = 't1';
+column_name column_comment
+i 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+drop table t1;
+set names utf8;
+create table t1 (i int)
+comment '123456789*123456789*123456789*123456789*123456789*123456789*';
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='123456789*123456789*123456789*123456789*123456789*123456789*'
+drop table t1;
+set sql_mode= 'traditional';
+create table t1(col1 tinyint, col2 tinyint unsigned,
+col3 smallint, col4 smallint unsigned,
+col5 mediumint, col6 mediumint unsigned,
+col7 int, col8 int unsigned,
+col9 bigint, col10 bigint unsigned);
+insert into t1(col1) values('-');
+ERROR HY000: Incorrect integer value: '-' for column 'col1' at row 1
+insert into t1(col2) values('+');
+ERROR HY000: Incorrect integer value: '+' for column 'col2' at row 1
+insert into t1(col3) values('-');
+ERROR HY000: Incorrect integer value: '-' for column 'col3' at row 1
+insert into t1(col4) values('+');
+ERROR HY000: Incorrect integer value: '+' for column 'col4' at row 1
+insert into t1(col5) values('-');
+ERROR HY000: Incorrect integer value: '-' for column 'col5' at row 1
+insert into t1(col6) values('+');
+ERROR HY000: Incorrect integer value: '+' for column 'col6' at row 1
+insert into t1(col7) values('-');
+ERROR HY000: Incorrect integer value: '-' for column 'col7' at row 1
+insert into t1(col8) values('+');
+ERROR HY000: Incorrect integer value: '+' for column 'col8' at row 1
+insert into t1(col9) values('-');
+ERROR HY000: Incorrect integer value: '-' for column 'col9' at row 1
+insert into t1(col10) values('+');
+ERROR HY000: Incorrect integer value: '+' for column 'col10' at row 1
+drop table t1;
+set sql_mode='traditional';
+create table t1(a year);
+insert into t1 values ('-');
+ERROR HY000: Incorrect integer value: '-' for column 'a' at row 1
+insert into t1 values ('+');
+ERROR HY000: Incorrect integer value: '+' for column 'a' at row 1
+insert into t1 values ('');
+ERROR HY000: Incorrect integer value: '' for column 'a' at row 1
+insert into t1 values ('2000a');
+ERROR 01000: Data truncated for column 'a' at row 1
+insert into t1 values ('2E3x');
+ERROR 01000: Data truncated for column 'a' at row 1
+drop table t1;
+set sql_mode='traditional';
+create table t1 (f1 set('a','a'));
+ERROR HY000: Column 'f1' has duplicated value 'a' in SET
+create table t1 (f1 enum('a','a'));
+ERROR HY000: Column 'f1' has duplicated value 'a' in ENUM
+set @@sql_mode='NO_ZERO_DATE';
+create table t1(a datetime not null);
+select count(*) from t1 where a is null;
+count(*)
+0
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/strict_autoinc_1myisam.result b/mysql-test/r/strict_autoinc_1myisam.result
new file mode 100644
index 00000000000..90a69bedc74
--- /dev/null
+++ b/mysql-test/r/strict_autoinc_1myisam.result
@@ -0,0 +1,28 @@
+drop table if exists t1;
+set @org_mode=@@sql_mode;
+create table t1
+(
+`a` tinyint(4) NOT NULL auto_increment,
+primary key (`a`)
+) engine = 'MYISAM' ;
+set @@sql_mode='strict_all_tables';
+insert into t1 values(1000);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t1 values(null);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set @@sql_mode=@org_mode;
+insert into t1 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+127
+drop table t1;
diff --git a/mysql-test/r/strict_autoinc_2innodb.result b/mysql-test/r/strict_autoinc_2innodb.result
new file mode 100644
index 00000000000..8a5243173e4
--- /dev/null
+++ b/mysql-test/r/strict_autoinc_2innodb.result
@@ -0,0 +1,28 @@
+drop table if exists t1;
+set @org_mode=@@sql_mode;
+create table t1
+(
+`a` tinyint(4) NOT NULL auto_increment,
+primary key (`a`)
+) engine = 'InnoDB' ;
+set @@sql_mode='strict_all_tables';
+insert into t1 values(1000);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t1 values(null);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set @@sql_mode=@org_mode;
+insert into t1 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+127
+drop table t1;
diff --git a/mysql-test/r/strict_autoinc_3heap.result b/mysql-test/r/strict_autoinc_3heap.result
new file mode 100644
index 00000000000..7dc48357c46
--- /dev/null
+++ b/mysql-test/r/strict_autoinc_3heap.result
@@ -0,0 +1,28 @@
+drop table if exists t1;
+set @org_mode=@@sql_mode;
+create table t1
+(
+`a` tinyint(4) NOT NULL auto_increment,
+primary key (`a`)
+) engine = 'MEMORY' ;
+set @@sql_mode='strict_all_tables';
+insert into t1 values(1000);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t1 values(null);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set @@sql_mode=@org_mode;
+insert into t1 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+127
+drop table t1;
diff --git a/mysql-test/r/strict_autoinc_4bdb.result b/mysql-test/r/strict_autoinc_4bdb.result
new file mode 100644
index 00000000000..89c4d2537f5
--- /dev/null
+++ b/mysql-test/r/strict_autoinc_4bdb.result
@@ -0,0 +1,28 @@
+drop table if exists t1;
+set @org_mode=@@sql_mode;
+create table t1
+(
+`a` tinyint(4) NOT NULL auto_increment,
+primary key (`a`)
+) engine = 'BDB' ;
+set @@sql_mode='strict_all_tables';
+insert into t1 values(1000);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t1 values(null);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set @@sql_mode=@org_mode;
+insert into t1 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+127
+drop table t1;
diff --git a/mysql-test/r/strict_autoinc_5ndb.result b/mysql-test/r/strict_autoinc_5ndb.result
new file mode 100644
index 00000000000..715f9a4b98b
--- /dev/null
+++ b/mysql-test/r/strict_autoinc_5ndb.result
@@ -0,0 +1,28 @@
+drop table if exists t1;
+set @org_mode=@@sql_mode;
+create table t1
+(
+`a` tinyint(4) NOT NULL auto_increment,
+primary key (`a`)
+) engine = 'NDB' ;
+set @@sql_mode='strict_all_tables';
+insert into t1 values(1000);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t1 values(null);
+ERROR 22003: Out of range value adjusted for column 'a' at row 1
+select count(*) from t1;
+count(*)
+0
+set @@sql_mode=@org_mode;
+insert into t1 values(null);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+127
+drop table t1;
diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result
index ff120912902..be99bdb1afc 100644
--- a/mysql-test/r/subselect.result
+++ b/mysql-test/r/subselect.result
@@ -48,9 +48,9 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
2 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1276 Field or reference 'a' of SELECT #3 was resolved in SELECT #1
Note 1276 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1
-Note 1003 select 1 AS `1` from (select 1 AS `a`) b having ((select b.a AS `a`) = 1)
+Note 1276 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1
+Note 1003 select 1 AS `1` from (select 1 AS `a`) `b` having ((select '1' AS `a`) = 1)
SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
1
1
@@ -117,15 +117,17 @@ SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'a');
SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'b');
(SELECT 1.5,2,'a') = ROW(1.5,2,'b')
0
-SELECT (SELECT 1.5,2,'a') = ROW('b',2,'b');
-(SELECT 1.5,2,'a') = ROW('b',2,'b')
+SELECT (SELECT 1.5,2,'a') = ROW('1.5b',2,'b');
+(SELECT 1.5,2,'a') = ROW('1.5b',2,'b')
0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: '1.5b'
SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a');
(SELECT 'b',2,'a') = ROW(1.5,2,'a')
0
-SELECT (SELECT 1.5,2,'a') = ROW(1.5,'c','a');
-(SELECT 1.5,2,'a') = ROW(1.5,'c','a')
-0
+SELECT (SELECT 1.5,2,'a') = ROW(1.5,'2','a');
+(SELECT 1.5,2,'a') = ROW(1.5,'2','a')
+1
SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a');
(SELECT 1.5,'c','a') = ROW(1.5,2,'a')
0
@@ -186,7 +188,7 @@ id select_type table type possible_keys key key_len ref rows Extra
4 SUBQUERY t2 ALL NULL NULL NULL NULL 2
NULL UNION RESULT <union1,3> ALL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 (select test.t2.a AS `a`,test.t2.b AS `b` from test.t2 where (test.t2.b = (select test.t3.a AS `a` from test.t3 order by test.t3.a desc limit 1))) union (select test.t4.a AS `a`,test.t4.b AS `b` from test.t4 where (test.t4.b = (select (max(test.t2.a) * 4) AS `max(t2.a)*4` from test.t2)) order by a)
+Note 1003 (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` where (`test`.`t2`.`b` = (select `test`.`t3`.`a` AS `a` from `test`.`t3` order by 1 desc limit 1))) union (select `test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t4` where (`test`.`t4`.`b` = (select (max(`test`.`t2`.`a`) * 4) AS `max(t2.a)*4` from `test`.`t2`)) order by `a`)
select (select a from t3 where a<t2.a*4 order by 1 desc limit 1), a from t2;
(select a from t3 where a<t2.a*4 order by 1 desc limit 1) a
3 1
@@ -202,7 +204,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DERIVED t2 ALL NULL NULL NULL NULL 2 Using where
2 SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using where; Using filesort
Warnings:
-Note 1003 select (select test.t3.a AS `a` from test.t3 where (test.t3.a < 8) order by test.t3.a desc limit 1) AS `(select t3.a from t3 where a<8 order by 1 desc limit 1)`,tt.a AS `a` from (select test.t2.a AS `a`,test.t2.b AS `b` from test.t2 where (test.t2.a > 1)) tt
+Note 1003 select (select `test`.`t3`.`a` AS `a` from `test`.`t3` where (`test`.`t3`.`a` < 8) order by 1 desc limit 1) AS `(select t3.a from t3 where a<8 order by 1 desc limit 1)`,'2' AS `a` from (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` where (`test`.`t2`.`a` > 1)) `tt`
select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3) order by 1 desc limit 1);
a
2
@@ -213,17 +215,17 @@ select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from
a
select b,(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2) from t4;
b (select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)
-8 7.5
-8 4.5
-9 7.5
+8 7.5000
+8 4.5000
+9 7.5000
explain extended select b,(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2) from t4;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t4 ALL NULL NULL NULL NULL 3
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2
3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using where
Warnings:
-Note 1276 Field or reference 't4.a' of SELECT #3 was resolved in SELECT #1
-Note 1003 select test.t4.b AS `b`,(select avg((test.t2.a + (select min(test.t3.a) AS `min(t3.a)` from test.t3 where (test.t3.a >= test.t4.a)))) AS `avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a))` from test.t2) AS `(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)` from test.t4
+Note 1276 Field or reference 'test.t4.a' of SELECT #3 was resolved in SELECT #1
+Note 1003 select `test`.`t4`.`b` AS `b`,(select avg((`test`.`t2`.`a` + (select min(`test`.`t3`.`a`) AS `min(t3.a)` from `test`.`t3` where (`test`.`t3`.`a` >= `test`.`t4`.`a`)))) AS `avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a))` from `test`.`t2`) AS `(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)` from `test`.`t4`
select * from t3 where exists (select * from t2 where t2.b=t3.a);
a
7
@@ -269,7 +271,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3 where <nop>((test.t3.a >= (select min(test.t2.b) from test.t2)))
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= (select min(`test`.`t2`.`b`) from `test`.`t2`)))
select * from t3 where a >= all (select b from t2);
a
7
@@ -311,9 +313,9 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DEPENDENT UNION t5 ALL NULL NULL NULL NULL 2 Using where
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
Warnings:
-Note 1276 Field or reference 't2.a' of SELECT #2 was resolved in SELECT #1
-Note 1276 Field or reference 't2.a' of SELECT #3 was resolved in SELECT #1
-Note 1003 select (select test.t1.a AS `a` from test.t1 where (test.t1.a = test.t2.a) union select test.t5.a AS `a` from test.t5 where (test.t5.a = test.t2.a)) AS `(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a)`,test.t2.a AS `a` from test.t2
+Note 1276 Field or reference 'test.t2.a' of SELECT #2 was resolved in SELECT #1
+Note 1276 Field or reference 'test.t2.a' of SELECT #3 was resolved in SELECT #1
+Note 1003 select (select '2' AS `a` from `test`.`t1` where ('2' = `test`.`t2`.`a`) union select `test`.`t5`.`a` AS `a` from `test`.`t5` where (`test`.`t5`.`a` = `test`.`t2`.`a`)) AS `(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a)`,`test`.`t2`.`a` AS `a` from `test`.`t2`
select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2;
ERROR 21000: Subquery returns more than 1 row
create table t6 (patient_uq int, clinic_uq int, index i1 (clinic_uq));
@@ -330,8 +332,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 Using where
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1 Using index
Warnings:
-Note 1276 Field or reference 'clinic_uq' of SELECT #2 was resolved in SELECT #1
-Note 1003 select test.t6.patient_uq AS `patient_uq`,test.t6.clinic_uq AS `clinic_uq` from test.t6 where exists(select 1 AS `Not_used` from test.t7 where (test.t7.uq = test.t6.clinic_uq))
+Note 1276 Field or reference 'test.t6.clinic_uq' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t6`.`patient_uq` AS `patient_uq`,`test`.`t6`.`clinic_uq` AS `clinic_uq` from `test`.`t6` where exists(select 1 AS `Not_used` from `test`.`t7` where (`test`.`t7`.`uq` = `test`.`t6`.`clinic_uq`))
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
ERROR 23000: Column 'a' in field list is ambiguous
drop table t1,t2,t3;
@@ -361,12 +363,12 @@ INSERT INTO t8 (pseudo,email) VALUES ('joce1','test1');
INSERT INTO t8 (pseudo,email) VALUES ('2joce1','2test1');
EXPLAIN EXTENDED SELECT pseudo,(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce')) FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce');
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t8 const PRIMARY PRIMARY 35 const 1 Using index
-4 SUBQUERY t8 const PRIMARY PRIMARY 35 1 Using index
-2 SUBQUERY t8 const PRIMARY PRIMARY 35 const 1
-3 SUBQUERY t8 const PRIMARY PRIMARY 35 1 Using index
+1 PRIMARY t8 const PRIMARY PRIMARY 37 const 1 Using index
+4 SUBQUERY t8 const PRIMARY PRIMARY 37 1 Using index
+2 SUBQUERY t8 const PRIMARY PRIMARY 37 const 1
+3 SUBQUERY t8 const PRIMARY PRIMARY 37 1 Using index
Warnings:
-Note 1003 select test.t8.pseudo AS `pseudo`,(select test.t8.email AS `email` from test.t8 where (test.t8.pseudo = (select test.t8.pseudo AS `pseudo` from test.t8 where (test.t8.pseudo = _latin1'joce')))) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from test.t8 where (test.t8.pseudo = (select test.t8.pseudo AS `pseudo` from test.t8 where (test.t8.pseudo = _latin1'joce')))
+Note 1003 select 'joce' AS `pseudo`,(select 'test' AS `email` from `test`.`t8` where 1) AS `(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'))` from `test`.`t8` where 1
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
t8 WHERE pseudo='joce');
ERROR 21000: Operand should contain 1 column(s)
@@ -390,15 +392,15 @@ INSERT INTO t1 (topic,date,pseudo) VALUES
('43506','2002-10-02','joce'),('40143','2002-08-03','joce');
EXPLAIN EXTENDED SELECT DISTINCT date FROM t1 WHERE date='2002-08-03';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 index NULL PRIMARY 41 NULL 2 Using where; Using index
+1 SIMPLE t1 index NULL PRIMARY 43 NULL 2 Using where; Using index
Warnings:
-Note 1003 select distinct test.t1.date AS `date` from test.t1 where (test.t1.date = 20020803)
+Note 1003 select distinct `test`.`t1`.`date` AS `date` from `test`.`t1` where (`test`.`t1`.`date` = _latin1'2002-08-03')
EXPLAIN EXTENDED SELECT (SELECT DISTINCT date FROM t1 WHERE date='2002-08-03');
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
-2 SUBQUERY t1 index NULL PRIMARY 41 NULL 2 Using where; Using index
+2 SUBQUERY t1 index NULL PRIMARY 43 NULL 2 Using where; Using index
Warnings:
-Note 1003 select (select distinct test.t1.date AS `date` from test.t1 where (test.t1.date = 20020803)) AS `(SELECT DISTINCT date FROM t1 WHERE date='2002-08-03')`
+Note 1003 select (select distinct `test`.`t1`.`date` AS `date` from `test`.`t1` where (`test`.`t1`.`date` = _latin1'2002-08-03')) AS `(SELECT DISTINCT date FROM t1 WHERE date='2002-08-03')`
SELECT DISTINCT date FROM t1 WHERE date='2002-08-03';
date
2002-08-03
@@ -419,7 +421,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 select 1 AS `1` from test.t1
+Note 1003 select 1 AS `1` from `test`.`t1` where 1
drop table t1;
CREATE TABLE `t1` (
`numeropost` mediumint(8) unsigned NOT NULL auto_increment,
@@ -539,13 +541,13 @@ EXPLAIN EXTENDED SELECT MAX(numreponse) FROM t1 WHERE numeropost='1';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
Warnings:
-Note 1003 select max(test.t1.numreponse) AS `MAX(numreponse)` from test.t1
+Note 1003 select max(`test`.`t1`.`numreponse`) AS `MAX(numreponse)` from `test`.`t1` where (`test`.`t1`.`numeropost` = _latin1'1')
EXPLAIN EXTENDED SELECT numreponse FROM t1 WHERE numeropost='1' AND numreponse=(SELECT MAX(numreponse) FROM t1 WHERE numeropost='1');
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 Using index
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
Warnings:
-Note 1003 select test.t1.numreponse AS `numreponse` from test.t1 where ((test.t1.numeropost = _latin1'1') and (test.t1.numreponse = 3))
+Note 1003 select '3' AS `numreponse` from `test`.`t1` where (('1' = _latin1'1'))
drop table t1;
CREATE TABLE t1 (a int(1));
INSERT INTO t1 VALUES (1);
@@ -652,6 +654,14 @@ x
3
3
INSERT INTO t1 (x) select (SELECT SUM(x)+2 FROM t1) FROM t2;
+select * from t1;
+x
+1
+2
+3
+3
+11
+11
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(x) FROM t2));
ERROR 42S22: Unknown column 'x' in 'field list'
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(a) FROM t2));
@@ -713,7 +723,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ref id id 5 const 1 Using where; Using index
Warnings:
Note 1249 Select 2 was reduced during optimization
-Note 1003 select test.t2.id AS `id` from test.t2 where (test.t2.id = 1)
+Note 1003 select `test`.`t2`.`id` AS `id` from `test`.`t2` where (`test`.`t2`.`id` = 1)
SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
id
1
@@ -726,7 +736,7 @@ id select_type table type possible_keys key key_len ref rows Extra
Warnings:
Note 1249 Select 3 was reduced during optimization
Note 1249 Select 2 was reduced during optimization
-Note 1003 select test.t2.id AS `id` from test.t2 where (test.t2.id = (1 + 1))
+Note 1003 select `test`.`t2`.`id` AS `id` from `test`.`t2` where (`test`.`t2`.`id` = (1 + 1))
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index NULL id 5 NULL 2 Using where; Using index
@@ -734,7 +744,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DEPENDENT UNION NULL NULL NULL NULL NULL NULL NULL No tables used
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 select test.t2.id AS `id` from test.t2 where <in_optimizer>(test.t2.id,<exists>(select 1 AS `1` having (<cache>(test.t2.id) = <ref_null_helper>(1)) union select 3 AS `3` having (<cache>(test.t2.id) = <ref_null_helper>(3))))
+Note 1003 select `test`.`t2`.`id` AS `id` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`id`,<exists>(select 1 AS `1` having (<cache>(`test`.`t2`.`id`) = <ref_null_helper>(1)) union select 3 AS `3` having (<cache>(`test`.`t2`.`id`) = <ref_null_helper>(3))))
SELECT * FROM t2 WHERE id IN (SELECT 5 UNION SELECT 3);
id
SELECT * FROM t2 WHERE id IN (SELECT 5 UNION SELECT 2);
@@ -858,9 +868,9 @@ explain extended select (select a+1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
Warnings:
-Note 1276 Field or reference 'a' of SELECT #2 was resolved in SELECT #1
+Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
Note 1249 Select 2 was reduced during optimization
-Note 1003 select (test.t1.a + 1) AS `(select a+1)` from test.t1
+Note 1003 select (`test`.`t1`.`a` + 1) AS `(select a+1)` from `test`.`t1`
select (select a+1) from t1;
(select a+1)
2.5
@@ -882,7 +892,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 Using index
2 DEPENDENT SUBQUERY t2 index_subquery a a 5 func 2 Using index
Warnings:
-Note 1003 select test.t1.a AS `a`,<in_optimizer>(test.t1.a,<exists>(<index_lookup>(<cache>(test.t1.a) in t2 on a chicking NULL))) AS `t1.a in (select t2.a from t2)` from test.t1
+Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t1`.`a`) in t2 on a checking NULL having <is_not_null_test>(`test`.`t2`.`a`)))) AS `t1.a in (select t2.a from t2)` from `test`.`t1`
CREATE TABLE t3 (a int(11) default '0');
INSERT INTO t3 VALUES (1),(2),(3);
SELECT t1.a, t1.a in (select t2.a from t2,t3 where t3.a=t2.a) FROM t1;
@@ -897,7 +907,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 Using where; Using index
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using where
Warnings:
-Note 1003 select test.t1.a AS `a`,<in_optimizer>(test.t1.a,<exists>(select 1 AS `Not_used` from test.t2 join test.t3 where ((test.t3.a = test.t2.a) and ((<cache>(test.t1.a) = test.t2.a) or isnull(test.t2.a))) having <is_not_null_test>(test.t2.a))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from test.t1
+Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
drop table t1,t2,t3;
create table t1 (a float);
select 10.5 IN (SELECT * from t1 LIMIT 1);
@@ -1009,19 +1019,19 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select sql_no_cache (select sql_no_cache rand() AS `RAND()` from test.t1) AS `(SELECT RAND() FROM t1)` from test.t1
+Note 1003 select (select rand() AS `RAND()` from `test`.`t1`) AS `(SELECT RAND() FROM t1)` from `test`.`t1`
EXPLAIN EXTENDED SELECT (SELECT ENCRYPT('test') FROM t1) FROM t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select sql_no_cache (select sql_no_cache ecrypt(_latin1'test') AS `ENCRYPT('test')` from test.t1) AS `(SELECT ENCRYPT('test') FROM t1)` from test.t1
+Note 1003 select (select encrypt(_latin1'test') AS `ENCRYPT('test')` from `test`.`t1`) AS `(SELECT ENCRYPT('test') FROM t1)` from `test`.`t1`
EXPLAIN EXTENDED SELECT (SELECT BENCHMARK(1,1) FROM t1) FROM t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
2 UNCACHEABLE SUBQUERY t1 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select sql_no_cache (select sql_no_cache benchmark(1,1) AS `BENCHMARK(1,1)` from test.t1) AS `(SELECT BENCHMARK(1,1) FROM t1)` from test.t1
+Note 1003 select (select benchmark(1,1) AS `BENCHMARK(1,1)` from `test`.`t1`) AS `(SELECT BENCHMARK(1,1) FROM t1)` from `test`.`t1`
drop table t1;
CREATE TABLE `t1` (
`mot` varchar(30) character set latin1 NOT NULL default '',
@@ -1077,24 +1087,24 @@ CREATE TABLE t1 SELECT * FROM (SELECT 1 as a,(SELECT 1)) a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` bigint(20) NOT NULL default '0',
- `(SELECT 1)` bigint(20) NOT NULL default '0'
+ `a` int(1) NOT NULL default '0',
+ `(SELECT 1)` int(1) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
CREATE TABLE t1 SELECT * FROM (SELECT 1 as a,(SELECT a)) a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` bigint(20) NOT NULL default '0',
- `(SELECT a)` bigint(20) NOT NULL default '0'
+ `a` int(1) NOT NULL default '0',
+ `(SELECT a)` int(1) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
CREATE TABLE t1 SELECT * FROM (SELECT 1 as a,(SELECT a+0)) a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` bigint(20) NOT NULL default '0',
- `(SELECT a+0)` bigint(20) NOT NULL default '0'
+ `a` int(1) NOT NULL default '0',
+ `(SELECT a+0)` int(3) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
CREATE TABLE t1 SELECT (SELECT 1 as a UNION SELECT 1+1 limit 1,1) as a;
@@ -1116,7 +1126,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 UNCACHEABLE SUBQUERY t1 ALL NULL NULL NULL NULL 3
3 UNCACHEABLE SUBQUERY t1 ALL NULL NULL NULL NULL 3
Warnings:
-Note 1003 select sql_no_cache test.t1.a AS `a`,(select sql_no_cache (select sql_no_cache rand() AS `rand()` from test.t1 limit 1) AS `(select rand() from t1 limit 1)` from test.t1 limit 1) AS `(select (select rand() from t1 limit 1) from t1 limit 1)` from test.t1
+Note 1003 select `test`.`t1`.`a` AS `a`,(select (select rand() AS `rand()` from `test`.`t1` limit 1) AS `(select rand() from t1 limit 1)` from `test`.`t1` limit 1) AS `(select (select rand() from t1 limit 1) from t1 limit 1)` from `test`.`t1`
drop table t1;
select t1.Continent, t2.Name, t2.Population from t1 LEFT JOIN t2 ON t1.Code = t2.Country where t2.Population IN (select max(t2.Population) AS Population from t2, t1 where t2.Country = t1.Code group by Continent);
ERROR 42S02: Table 'test.t1' doesn't exist
@@ -1150,7 +1160,7 @@ Code2 char(2) NOT NULL default '',
PRIMARY KEY (Code)
) ENGINE=MyISAM;
INSERT INTO t2 VALUES ('AUS','Australia','Oceania','Australia and New Zealand',7741220.00,1901,18886000,79.8,351182.00,392911.00,'Australia','Constitutional Monarchy, Federation','Elisabeth II',135,'AU');
-INSERT INTO t2 VALUES ('AZE','Azerbaijan','Asia','Middle East',86600.00,1991,7734000,62.9,4127.00,4100.00,'Azärbaycan','Federal Republic','Heydär Äliyev',144,'AZ');
+INSERT INTO t2 VALUES ('AZE','Azerbaijan','Asia','Middle East',86600.00,1991,7734000,62.9,4127.00,4100.00,'Azärbaycan','Federal Republic','Heydär Äliyev',144,'AZ');
select t2.Continent, t1.Name, t1.Population from t2 LEFT JOIN t1 ON t2.Code = t1.t2 where t1.Population IN (select max(t1.Population) AS Population from t1, t2 where t1.t2 = t2.Code group by Continent);
Continent Name Population
Oceania Sydney 3276207
@@ -1170,7 +1180,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
Warnings:
-Note 1003 select <in_optimizer>(0,<exists>(select 1 AS `Not_used` from test.t1 a)) AS `0 IN (SELECT 1 FROM t1 a)`
+Note 1003 select <in_optimizer>(0,<exists>(select 1 AS `Not_used` from `test`.`t1` `a` where 0)) AS `0 IN (SELECT 1 FROM t1 a)`
INSERT INTO t1 (pseudo) VALUES ('test1');
SELECT 0 IN (SELECT 1 FROM t1 a);
0 IN (SELECT 1 FROM t1 a)
@@ -1180,7 +1190,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
Warnings:
-Note 1003 select <in_optimizer>(0,<exists>(select 1 AS `Not_used` from test.t1 a)) AS `0 IN (SELECT 1 FROM t1 a)`
+Note 1003 select <in_optimizer>(0,<exists>(select 1 AS `Not_used` from `test`.`t1` `a` where 0)) AS `0 IN (SELECT 1 FROM t1 a)`
drop table t1;
CREATE TABLE `t1` (
`i` int(11) NOT NULL default '0',
@@ -1190,7 +1200,7 @@ INSERT INTO t1 VALUES (1);
UPDATE t1 SET i=i+(SELECT MAX(i) FROM (SELECT 1) t) WHERE i=(SELECT MAX(i));
UPDATE t1 SET i=i+1 WHERE i=(SELECT MAX(i));
UPDATE t1 SET t.i=i+(SELECT MAX(i) FROM (SELECT 1) t);
-ERROR 42S02: Unknown table 't' in field list
+ERROR 42S22: Unknown column 't.i' in 'field list'
select * from t1;
i
3
@@ -1225,7 +1235,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ref salary salary 5 const 1 Using where
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
Warnings:
-Note 1003 select test.t1.id AS `id` from test.t1 where (test.t1.salary = (select max(test.t1.salary) AS `MAX(salary)` from test.t1))
+Note 1003 select `test`.`t1`.`id` AS `id` from `test`.`t1` where (`test`.`t1`.`salary` = (select max(`test`.`t1`.`salary`) AS `MAX(salary)` from `test`.`t1`))
drop table t1;
CREATE TABLE t1 (
ID int(10) unsigned NOT NULL auto_increment,
@@ -1287,7 +1297,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index NULL PRIMARY 4 NULL 4 Using where; Using index
2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using index
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(<primary_index_lookup>(<cache>(test.t2.a) in t1 on PRIMARY)))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<primary_index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on PRIMARY)))
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
2
@@ -1295,9 +1305,9 @@ a
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index NULL PRIMARY 4 NULL 4 Using where; Using index
-2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using index; Using where
+2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using where
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(<primary_index_lookup>(<cache>(test.t2.a) in t1 on PRIMARY where (test.t1.b <> 30))))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<primary_index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on PRIMARY where (`test`.`t1`.`b` <> 30))))
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
a
2
@@ -1308,7 +1318,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 func 1 Using where
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 Using where; Using index
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(select 1 AS `Not_used` from test.t1 join test.t3 where ((test.t1.b = test.t3.a) and (<cache>(test.t2.a) = test.t1.a))))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))
drop table t1, t2, t3;
create table t1 (a int, b int, index a (a,b));
create table t2 (a int, index a (a));
@@ -1326,7 +1336,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index NULL a 5 NULL 4 Using where; Using index
2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 Using index
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(<index_lookup>(<cache>(test.t2.a) in t1 on a)))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a)))
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
2
@@ -1336,7 +1346,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index NULL a 5 NULL 4 Using where; Using index
2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 Using index; Using where
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(<index_lookup>(<cache>(test.t2.a) in t1 on a where (test.t1.b <> 30))))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where (`test`.`t1`.`b` <> 30))))
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
a
2
@@ -1347,7 +1357,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t1 ref a a 5 func 1001 Using where; Using index
2 DEPENDENT SUBQUERY t3 index a a 5 NULL 3 Using where; Using index
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(select 1 AS `Not_used` from test.t1 join test.t3 where ((test.t1.b = test.t3.a) and (<cache>(test.t2.a) = test.t1.a))))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -1363,7 +1373,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index NULL a 5 NULL 4 Using where; Using index
2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 1001 Using index; Using where
Warnings:
-Note 1003 select test.t2.a AS `a` from test.t2 where <in_optimizer>(test.t2.a,<exists>(<index_lookup>(<cache>(test.t2.a) in t1 on a where (test.t1.b <> 30))))
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a where (`test`.`t1`.`b` <> 30))))
drop table t1, t2, t3;
create table t1 (a int, b int);
create table t2 (a int, b int);
@@ -1420,7 +1430,7 @@ explain extended (select * from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
Warnings:
-Note 1003 (select test.t1.s1 AS `s1` from test.t1)
+Note 1003 (select 'tttt' AS `s1` from `test`.`t1`)
(select * from t1);
s1
tttt
@@ -1452,27 +1462,27 @@ a3 1
explain extended select s1, s1 NOT IN (SELECT s1 FROM t2) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index NULL s1 6 NULL 3 Using index
-2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index
+2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index; Full scan on NULL key
Warnings:
-Note 1003 select test.t1.s1 AS `s1`,not(<in_optimizer>(test.t1.s1,<exists>(<index_lookup>(<cache>(test.t1.s1) in t2 on s1 chicking NULL)))) AS `s1 NOT IN (SELECT s1 FROM t2)` from test.t1
+Note 1003 select `test`.`t1`.`s1` AS `s1`,(not(<in_optimizer>(`test`.`t1`.`s1`,<exists>(<index_lookup>(<cache>(`test`.`t1`.`s1`) in t2 on s1 checking NULL having trigcond(<is_not_null_test>(`test`.`t2`.`s1`))))))) AS `s1 NOT IN (SELECT s1 FROM t2)` from `test`.`t1`
explain extended select s1, s1 = ANY (SELECT s1 FROM t2) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index NULL s1 6 NULL 3 Using index
-2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index
+2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index; Full scan on NULL key
Warnings:
-Note 1003 select test.t1.s1 AS `s1`,<in_optimizer>(test.t1.s1,<exists>(<index_lookup>(<cache>(test.t1.s1) in t2 on s1 chicking NULL))) AS `s1 = ANY (SELECT s1 FROM t2)` from test.t1
+Note 1003 select `test`.`t1`.`s1` AS `s1`,<in_optimizer>(`test`.`t1`.`s1`,<exists>(<index_lookup>(<cache>(`test`.`t1`.`s1`) in t2 on s1 checking NULL having trigcond(<is_not_null_test>(`test`.`t2`.`s1`))))) AS `s1 = ANY (SELECT s1 FROM t2)` from `test`.`t1`
explain extended select s1, s1 <> ALL (SELECT s1 FROM t2) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index NULL s1 6 NULL 3 Using index
-2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index
+2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index; Full scan on NULL key
Warnings:
-Note 1003 select test.t1.s1 AS `s1`,not(<in_optimizer>(test.t1.s1,<exists>(<index_lookup>(<cache>(test.t1.s1) in t2 on s1 chicking NULL)))) AS `s1 <> ALL (SELECT s1 FROM t2)` from test.t1
+Note 1003 select `test`.`t1`.`s1` AS `s1`,(not(<in_optimizer>(`test`.`t1`.`s1`,<exists>(<index_lookup>(<cache>(`test`.`t1`.`s1`) in t2 on s1 checking NULL having trigcond(<is_not_null_test>(`test`.`t2`.`s1`))))))) AS `s1 <> ALL (SELECT s1 FROM t2)` from `test`.`t1`
explain extended select s1, s1 NOT IN (SELECT s1 FROM t2 WHERE s1 < 'a2') from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index NULL s1 6 NULL 3 Using index
-2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 1 Using index; Using where
+2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index; Using where; Full scan on NULL key
Warnings:
-Note 1003 select test.t1.s1 AS `s1`,not(<in_optimizer>(test.t1.s1,<exists>(<index_lookup>(<cache>(test.t1.s1) in t2 on s1 chicking NULL where (test.t2.s1 < _latin1'a2'))))) AS `s1 NOT IN (SELECT s1 FROM t2 WHERE s1 < 'a2')` from test.t1
+Note 1003 select `test`.`t1`.`s1` AS `s1`,(not(<in_optimizer>(`test`.`t1`.`s1`,<exists>(<index_lookup>(<cache>(`test`.`t1`.`s1`) in t2 on s1 checking NULL where (`test`.`t2`.`s1` < _latin1'a2') having trigcond(<is_not_null_test>(`test`.`t2`.`s1`))))))) AS `s1 NOT IN (SELECT s1 FROM t2 WHERE s1 < 'a2')` from `test`.`t1`
drop table t1,t2;
create table t2 (a int, b int);
create table t3 (a int);
@@ -1487,7 +1497,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3 where <not>((test.t3.a < (select max(test.t2.b) from test.t2)))
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` < (select max('0') from `test`.`t2`)))
select * from t3 where a >= some (select b from t2);
a
explain extended select * from t3 where a >= some (select b from t2);
@@ -1495,7 +1505,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3 where <nop>((test.t3.a >= (select min(test.t2.b) from test.t2)))
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= (select min('0') from `test`.`t2`)))
select * from t3 where a >= all (select b from t2 group by 1);
a
6
@@ -1506,7 +1516,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3 where <not>((test.t3.a < <max>(select test.t2.b AS `b` from test.t2 group by test.t2.b)))
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` < <max>(select '0' AS `b` from `test`.`t2` group by 1)))
select * from t3 where a >= some (select b from t2 group by 1);
a
explain extended select * from t3 where a >= some (select b from t2 group by 1);
@@ -1514,7 +1524,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3 where <nop>((test.t3.a >= <min>(select test.t2.b AS `b` from test.t2 group by test.t2.b)))
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= <min>(select '0' AS `b` from `test`.`t2` group by 1)))
select * from t3 where NULL >= any (select b from t2);
a
explain extended select * from t3 where NULL >= any (select b from t2);
@@ -1522,7 +1532,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where 0
select * from t3 where NULL >= any (select b from t2 group by 1);
a
explain extended select * from t3 where NULL >= any (select b from t2 group by 1);
@@ -1530,7 +1540,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where 0
select * from t3 where NULL >= some (select b from t2);
a
explain extended select * from t3 where NULL >= some (select b from t2);
@@ -1538,7 +1548,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where 0
select * from t3 where NULL >= some (select b from t2 group by 1);
a
explain extended select * from t3 where NULL >= some (select b from t2 group by 1);
@@ -1546,7 +1556,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
2 SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where 0
insert into t2 values (2,2), (2,1), (3,3), (3,1);
select * from t3 where a > all (select max(b) from t2 group by a);
a
@@ -1557,7 +1567,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
Warnings:
-Note 1003 select test.t3.a AS `a` from test.t3 where <not>((test.t3.a <= <max>(select max(test.t2.b) AS `max(b)` from test.t2 group by test.t2.a)))
+Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <not>((`test`.`t3`.`a` <= <max>(select max(`test`.`t2`.`b`) AS `max(b)` from `test`.`t2` group by `test`.`t2`.`a`)))
drop table t2, t3;
CREATE TABLE `t1` ( `id` mediumint(9) NOT NULL auto_increment, `taskid` bigint(20) NOT NULL default '0', `dbid` int(11) NOT NULL default '0', `create_date` datetime NOT NULL default '0000-00-00 00:00:00', `last_update` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`)) ENGINE=MyISAM CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `t1` (`id`, `taskid`, `dbid`, `create_date`,`last_update`) VALUES (1, 1, 15, '2003-09-29 10:31:36', '2003-09-29 10:31:36'), (2, 1, 21, now(), now());
@@ -1590,6 +1600,8 @@ insert into t1 values (2);
set sort_buffer_size = (select s1 from t1);
ERROR 21000: Subquery returns more than 1 row
do (select * from t1);
+Warnings:
+Error 1242 Subquery returns more than 1 row
drop table t1;
create table t1 (s1 char);
insert into t1 values ('e');
@@ -1606,7 +1618,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 UNION t1 system NULL NULL NULL NULL 1
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 select test.t1.s1 AS `s1` from test.t1
+Note 1003 select 'e' AS `s1` from `test`.`t1` where 1
drop table t1;
CREATE TABLE t1 (number char(11) NOT NULL default '') ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 VALUES ('69294728265'),('18621828126'),('89356874041'),('95895001874');
@@ -1626,7 +1638,7 @@ ERROR 42S22: Unknown column 't1.s2' in 'where clause'
select * from t1 where (select count(*) from t2 group by t1.s2) = 1;
ERROR 42S22: Unknown column 't1.s2' in 'group statement'
select count(*) from t2 group by t1.s2;
-ERROR 42S02: Unknown table 't1' in group statement
+ERROR 42S22: Unknown column 't1.s2' in 'group statement'
drop table t1, t2;
CREATE TABLE t1(COLA FLOAT NOT NULL,COLB FLOAT NOT NULL,COLC VARCHAR(20) DEFAULT NULL,PRIMARY KEY (COLA, COLB));
CREATE TABLE t2(COLA FLOAT NOT NULL,COLB FLOAT NOT NULL,COLC CHAR(1) NOT NULL,PRIMARY KEY (COLA));
@@ -1725,14 +1737,14 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 12 Using where
2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using index; Using where
Warnings:
-Note 1003 select test.t1.id AS `id`,test.t1.text AS `text` from test.t1 where not(<in_optimizer>(test.t1.id,<exists>(<primary_index_lookup>(<cache>(test.t1.id) in t1 on PRIMARY where (test.t1.id < 8)))))
+Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`text` AS `text` from `test`.`t1` where (not(<in_optimizer>(`test`.`t1`.`id`,<exists>(<primary_index_lookup>(<cache>(`test`.`t1`.`id`) in t1 on PRIMARY where (`test`.`t1`.`id` < 8))))))
explain extended select * from t1 as tt where not exists (select id from t1 where id < 8 and (id = tt.id or id is null) having id is not null);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY tt ALL NULL NULL NULL NULL 12 Using where
-2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 7 Using where; Using index
+2 DEPENDENT SUBQUERY t1 eq_ref PRIMARY PRIMARY 4 test.tt.id 1 Using where; Using index
Warnings:
-Note 1276 Field or reference 'tt.id' of SELECT #2 was resolved in SELECT #1
-Note 1003 select test.tt.id AS `id`,test.tt.text AS `text` from test.t1 tt where not(exists(select test.t1.id AS `id` from test.t1 where ((test.t1.id < 8) and ((test.t1.id = test.tt.id) or isnull(test.t1.id))) having (test.t1.id is not null)))
+Note 1276 Field or reference 'test.tt.id' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`tt`.`id` AS `id`,`test`.`tt`.`text` AS `text` from `test`.`t1` `tt` where (not(exists(select `test`.`t1`.`id` AS `id` from `test`.`t1` where ((`test`.`t1`.`id` < 8) and (`test`.`t1`.`id` = `test`.`tt`.`id`)) having (`test`.`t1`.`id` is not null))))
insert into t1 (id, text) values (1000, 'text1000'), (1001, 'text1001');
create table t2 (id int not null, text varchar(20) not null default '', primary key (id));
insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text1'), (12, 'text2'), (13, 'text3'), (14, 'text4'), (15, 'text5'), (16, 'text6'), (17, 'text7'), (18, 'text8'), (19, 'text9'), (20, 'text10'),(21, 'text1'), (22, 'text2'), (23, 'text3'), (24, 'text4'), (25, 'text5'), (26, 'text6'), (27, 'text7'), (28, 'text8'), (29, 'text9'), (30, 'text10'), (31, 'text1'), (32, 'text2'), (33, 'text3'), (34, 'text4'), (35, 'text5'), (36, 'text6'), (37, 'text7'), (38, 'text8'), (39, 'text9'), (40, 'text10'), (41, 'text1'), (42, 'text2'), (43, 'text3'), (44, 'text4'), (45, 'text5'), (46, 'text6'), (47, 'text7'), (48, 'text8'), (49, 'text9'), (50, 'text10');
@@ -1758,7 +1770,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE b eq_ref PRIMARY PRIMARY 4 test.a.id 2
1 SIMPLE c eq_ref PRIMARY PRIMARY 4 func 1 Using where
Warnings:
-Note 1003 select test.a.id AS `id`,test.a.text AS `text`,test.b.id AS `id`,test.b.text AS `text`,test.c.id AS `id`,test.c.text AS `text` from test.t1 a left join test.t2 b on(((test.a.id = test.b.id) or isnull(test.b.id))) join test.t1 c where (if(isnull(test.b.id),1000,test.b.id) = test.c.id)
+Note 1003 select `test`.`a`.`id` AS `id`,`test`.`a`.`text` AS `text`,`test`.`b`.`id` AS `id`,`test`.`b`.`text` AS `text`,`test`.`c`.`id` AS `id`,`test`.`c`.`text` AS `text` from `test`.`t1` `a` left join `test`.`t2` `b` on(((`test`.`b`.`id` = `test`.`a`.`id`) or isnull(`test`.`b`.`id`))) join `test`.`t1` `c` where (if(isnull(`test`.`b`.`id`),1000,`test`.`b`.`id`) = `test`.`c`.`id`)
drop table t1,t2;
create table t1 (a int);
insert into t1 values (1);
@@ -1781,10 +1793,18 @@ SELECT t1.id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t
id c
1 1
2 0
+SELECT id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id);
+id c
+1 1
+2 0
SELECT t1.id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id) ORDER BY t1.id;
id c
1 1
2 0
+SELECT id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id) ORDER BY id;
+id c
+1 1
+2 0
DROP TABLE t1,t2;
CREATE TABLE t1 ( a int, b int );
INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
@@ -2259,8 +2279,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY up ALL NULL NULL NULL NULL 2 Using where
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using where
Warnings:
-Note 1276 Field or reference 'up.a' of SELECT #2 was resolved in SELECT #1
-Note 1003 select test.up.a AS `a`,test.up.b AS `b` from test.t1 up where exists(select 1 AS `Not_used` from test.t1 where (test.t1.a = test.up.a))
+Note 1276 Field or reference 'test.up.a' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`up`.`a` AS `a`,`test`.`up`.`b` AS `b` from `test`.`t1` `up` where exists(select 1 AS `Not_used` from `test`.`t1` where (`test`.`t1`.`a` = `test`.`up`.`a`))
drop table t1;
CREATE TABLE t1 (t1_a int);
INSERT INTO t1 VALUES (1);
@@ -2492,7 +2512,7 @@ Code2 char(2) NOT NULL default ''
) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('XXX','Xxxxx','Oceania','Xxxxxx',26.00,0,0,0,0,0,'Xxxxx','Xxxxx','Xxxxx',NULL,'XX');
INSERT INTO t1 VALUES ('ASM','American Samoa','Oceania','Polynesia',199.00,0,68000,75.1,334.00,NULL,'Amerika Samoa','US Territory','George W. Bush',54,'AS');
-INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF');
+INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF');
INSERT INTO t1 VALUES ('UMI','United States Minor Outlying Islands','Oceania','Micronesia/Caribbean',16.00,0,0,NULL,0.00,NULL,'United States Minor Outlying Islands','Dependent Territory of the US','George W. Bush',NULL,'UM');
/*!40000 ALTER TABLE t1 ENABLE KEYS */;
SELECT DISTINCT Continent AS c FROM t1 WHERE Code <> SOME ( SELECT Code FROM t1 WHERE Continent = c AND Population < 200);
@@ -2796,19 +2816,19 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 8
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 Using where
Warnings:
-Note 1003 select test.t1.one AS `one`,test.t1.two AS `two`,<in_optimizer>((test.t1.one,test.t1.two),<exists>(select test.t2.one AS `one`,test.t2.two AS `two` from test.t2 where ((test.t2.flag = _latin1'0') and ((<cache>(test.t1.one) = test.t2.one) or isnull(test.t2.one)) and ((<cache>(test.t1.two) = test.t2.two) or isnull(test.t2.two))) having (<is_not_null_test>(test.t2.one) and <is_not_null_test>(test.t2.two)))) AS `test` from test.t1
+Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two`,<in_optimizer>((`test`.`t1`.`one`,`test`.`t1`.`two`),<exists>(select `test`.`t2`.`one` AS `one`,`test`.`t2`.`two` AS `two` from `test`.`t2` where ((`test`.`t2`.`flag` = _latin1'0') and trigcond(((<cache>(`test`.`t1`.`one`) = `test`.`t2`.`one`) or isnull(`test`.`t2`.`one`))) and trigcond(((<cache>(`test`.`t1`.`two`) = `test`.`t2`.`two`) or isnull(`test`.`t2`.`two`)))) having (trigcond(<is_not_null_test>(`test`.`t2`.`one`)) and trigcond(<is_not_null_test>(`test`.`t2`.`two`))))) AS `test` from `test`.`t1`
explain extended SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 Using where
Warnings:
-Note 1003 select test.t1.one AS `one`,test.t1.two AS `two` from test.t1 where <in_optimizer>((test.t1.one,test.t1.two),<exists>(select test.t2.one AS `one`,test.t2.two AS `two` from test.t2 where ((test.t2.flag = _latin1'N') and (<cache>(test.t1.one) = test.t2.one) and (<cache>(test.t1.two) = test.t2.two))))
+Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` where <in_optimizer>((`test`.`t1`.`one`,`test`.`t1`.`two`),<exists>(select `test`.`t2`.`one` AS `one`,`test`.`t2`.`two` AS `two` from `test`.`t2` where ((`test`.`t2`.`flag` = _latin1'N') and (<cache>(`test`.`t1`.`one`) = `test`.`t2`.`one`) and (<cache>(`test`.`t1`.`two`) = `test`.`t2`.`two`))))
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 8
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 Using where; Using temporary; Using filesort
Warnings:
-Note 1003 select test.t1.one AS `one`,test.t1.two AS `two`,<in_optimizer>((test.t1.one,test.t1.two),<exists>(select test.t2.one AS `one`,test.t2.two AS `two` from test.t2 where (test.t2.flag = _latin1'0') group by test.t2.one,test.t2.two having (((<cache>(test.t1.one) = test.t2.one) or isnull(test.t2.one)) and ((<cache>(test.t1.two) = test.t2.two) or isnull(test.t2.two)) and <is_not_null_test>(test.t2.one) and <is_not_null_test>(test.t2.two)))) AS `test` from test.t1
+Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two`,<in_optimizer>((`test`.`t1`.`one`,`test`.`t1`.`two`),<exists>(select `test`.`t2`.`one` AS `one`,`test`.`t2`.`two` AS `two` from `test`.`t2` where (`test`.`t2`.`flag` = _latin1'0') group by `test`.`t2`.`one`,`test`.`t2`.`two` having (trigcond(((<cache>(`test`.`t1`.`one`) = `test`.`t2`.`one`) or isnull(`test`.`t2`.`one`))) and trigcond(((<cache>(`test`.`t1`.`two`) = `test`.`t2`.`two`) or isnull(`test`.`t2`.`two`))) and trigcond(<is_not_null_test>(`test`.`t2`.`one`)) and trigcond(<is_not_null_test>(`test`.`t2`.`two`))))) AS `test` from `test`.`t1`
DROP TABLE t1,t2;
CREATE TABLE t1 (a char(5), b char(5));
INSERT INTO t1 VALUES (NULL,'aaa'), ('aaa','aaa');
@@ -2833,9 +2853,6 @@ a
3
4
DROP TABLE t1,t2,t3;
-purge master logs before (select adddate(current_timestamp(), interval -4 day));
-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 'select adddate(current_timestamp(), interval -4 day))' at line 1
-purge master logs before adddate(current_timestamp(), interval -4 day);
CREATE TABLE t1 (f1 INT);
CREATE TABLE t2 (f2 INT);
INSERT INTO t1 VALUES (1);
@@ -2928,7 +2945,7 @@ ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
-2 DEPENDENT SUBQUERY t2 range b b 38 NULL 2 Using where
+2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
@@ -2940,7 +2957,7 @@ ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
-2 DEPENDENT SUBQUERY t2 range b b 38 NULL 2 Using where
+2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
@@ -2991,7 +3008,7 @@ INSERT INTO t2 VALUES (1),(2),(3);
EXPLAIN SELECT a, a IN (SELECT a FROM t1) FROM t2;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 3
-2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 2 Using index
+2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 2 Using index; Full scan on NULL key
SELECT a, a IN (SELECT a FROM t1) FROM t2;
a a IN (SELECT a FROM t1)
1 1
@@ -3077,7 +3094,7 @@ SELECT a FROM t1 GROUP BY a
HAVING IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 1 ORDER BY b)) > 3;
ERROR 21000: Subquery returns more than 1 row
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 2),
(SELECT c FROM t2 WHERE c=a AND b > 2 ORDER BY b));
a
@@ -3085,11 +3102,11 @@ a
4
1
3
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 1),
(SELECT c FROM t2 WHERE c=a AND b > 1 ORDER BY b));
ERROR 21000: Subquery returns more than 1 row
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 2 ORDER BY b));
a
@@ -3097,8 +3114,1029 @@ a
1
3
4
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 1 ORDER BY b));
ERROR 21000: Subquery returns more than 1 row
DROP TABLE t1,t2;
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+insert into t1 values(2.2);
+select * from t1 where df <= all (select avg(df) from t1 group by df);
+df
+1.1
+select * from t1 where df >= all (select avg(df) from t1 group by df);
+df
+2.2
+drop table t1;
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+select 1.1 * exists(select * from t1);
+1.1 * exists(select * from t1)
+1.1
+drop table t1;
+CREATE TABLE t1 (
+grp int(11) default NULL,
+a decimal(10,2) default NULL);
+insert into t1 values (1, 1), (2, 2), (2, 3), (3, 4), (3, 5), (3, 6), (NULL, NULL);
+select * from t1;
+grp a
+1 1.00
+2 2.00
+2 3.00
+3 4.00
+3 5.00
+3 6.00
+NULL NULL
+select min(a) from t1 group by grp;
+min(a)
+NULL
+1.00
+2.00
+4.00
+drop table t1;
+CREATE table t1 ( c1 integer );
+INSERT INTO t1 VALUES ( 1 );
+INSERT INTO t1 VALUES ( 2 );
+INSERT INTO t1 VALUES ( 3 );
+CREATE TABLE t2 ( c2 integer );
+INSERT INTO t2 VALUES ( 1 );
+INSERT INTO t2 VALUES ( 4 );
+INSERT INTO t2 VALUES ( 5 );
+SELECT * FROM t1 LEFT JOIN t2 ON c1 = c2 WHERE c2 IN (1);
+c1 c2
+1 1
+SELECT * FROM t1 LEFT JOIN t2 ON c1 = c2
+WHERE c2 IN ( SELECT c2 FROM t2 WHERE c2 IN ( 1 ) );
+c1 c2
+1 1
+DROP TABLE t1,t2;
+CREATE TABLE t1 ( c1 integer );
+INSERT INTO t1 VALUES ( 1 );
+INSERT INTO t1 VALUES ( 2 );
+INSERT INTO t1 VALUES ( 3 );
+INSERT INTO t1 VALUES ( 6 );
+CREATE TABLE t2 ( c2 integer );
+INSERT INTO t2 VALUES ( 1 );
+INSERT INTO t2 VALUES ( 4 );
+INSERT INTO t2 VALUES ( 5 );
+INSERT INTO t2 VALUES ( 6 );
+CREATE TABLE t3 ( c3 integer );
+INSERT INTO t3 VALUES ( 7 );
+INSERT INTO t3 VALUES ( 8 );
+SELECT c1,c2 FROM t1 LEFT JOIN t2 ON c1 = c2
+WHERE EXISTS (SELECT c3 FROM t3 WHERE c2 IS NULL );
+c1 c2
+2 NULL
+3 NULL
+DROP TABLE t1,t2,t3;
+CREATE TABLE `t1` (
+`itemid` bigint(20) unsigned NOT NULL auto_increment,
+`sessionid` bigint(20) unsigned default NULL,
+`time` int(10) unsigned NOT NULL default '0',
+`type` set('A','D','E','F','G','I','L','N','U') collate latin1_general_ci NOT
+NULL default '',
+`data` text collate latin1_general_ci NOT NULL,
+PRIMARY KEY (`itemid`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+INSERT INTO `t1` VALUES (1, 1, 1, 'D', '');
+CREATE TABLE `t2` (
+`sessionid` bigint(20) unsigned NOT NULL auto_increment,
+`pid` int(10) unsigned NOT NULL default '0',
+`date` int(10) unsigned NOT NULL default '0',
+`ip` varchar(15) collate latin1_general_ci NOT NULL default '',
+PRIMARY KEY (`sessionid`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
+SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessionid WHERE e.sessionid = ( SELECT sessionid FROM t2 ORDER BY sessionid DESC LIMIT 1 ) GROUP BY s.ip HAVING count( e.itemid ) >0 LIMIT 0 , 30;
+ip count( e.itemid )
+10.10.10.1 1
+drop tables t1,t2;
+CREATE TABLE t1 (EMPNUM CHAR(3));
+CREATE TABLE t2 (EMPNUM CHAR(3) );
+INSERT INTO t1 VALUES ('E1'),('E2');
+INSERT INTO t2 VALUES ('E1');
+DELETE FROM t1
+WHERE t1.EMPNUM NOT IN
+(SELECT t2.EMPNUM
+FROM t2
+WHERE t1.EMPNUM = t2.EMPNUM);
+select * from t1;
+EMPNUM
+E1
+DROP TABLE t1,t2;
+CREATE TABLE t1(select_id BIGINT, values_id BIGINT);
+INSERT INTO t1 VALUES (1, 1);
+CREATE TABLE t2 (select_id BIGINT, values_id BIGINT,
+PRIMARY KEY(select_id,values_id));
+INSERT INTO t2 VALUES (0, 1), (0, 2), (0, 3), (1, 5);
+SELECT values_id FROM t1
+WHERE values_id IN (SELECT values_id FROM t2
+WHERE select_id IN (1, 0));
+values_id
+1
+SELECT values_id FROM t1
+WHERE values_id IN (SELECT values_id FROM t2
+WHERE select_id BETWEEN 0 AND 1);
+values_id
+1
+SELECT values_id FROM t1
+WHERE values_id IN (SELECT values_id FROM t2
+WHERE select_id = 0 OR select_id = 1);
+values_id
+1
+DROP TABLE t1, t2;
+create table t1 (fld enum('0','1'));
+insert into t1 values ('1');
+select * from (select max(fld) from t1) as foo;
+max(fld)
+1
+drop table t1;
+CREATE TABLE t1 (a int, b int);
+CREATE TABLE t2 (c int, d int);
+CREATE TABLE t3 (e int);
+INSERT INTO t1 VALUES
+(1,10), (2,10), (1,20), (2,20), (3,20), (2,30), (4,40);
+INSERT INTO t2 VALUES
+(2,10), (2,20), (4,10), (5,10), (3,20), (2,40);
+INSERT INTO t3 VALUES (10), (30), (10), (20) ;
+SELECT a, MAX(b), MIN(b) FROM t1 GROUP BY a;
+a MAX(b) MIN(b)
+1 20 10
+2 30 10
+3 20 20
+4 40 40
+SELECT * FROM t2;
+c d
+2 10
+2 20
+4 10
+5 10
+3 20
+2 40
+SELECT * FROM t3;
+e
+10
+30
+10
+20
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2 WHERE MAX(b)>20);
+a
+2
+4
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2 WHERE MAX(b)<d);
+a
+2
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2 WHERE MAX(b)>d);
+a
+2
+4
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2
+WHERE d >= SOME(SELECT e FROM t3 WHERE MAX(b)=e));
+a
+2
+3
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2
+WHERE EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e <= d));
+a
+2
+3
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2
+WHERE d > SOME(SELECT e FROM t3 WHERE MAX(b)=e));
+a
+2
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2
+WHERE EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e < d));
+a
+2
+SELECT a FROM t1 GROUP BY a
+HAVING a IN (SELECT c FROM t2
+WHERE MIN(b) < d AND
+EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e <= d));
+a
+2
+SELECT a, SUM(a) FROM t1 GROUP BY a;
+a SUM(a)
+1 2
+2 6
+3 3
+4 4
+SELECT a FROM t1
+WHERE EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) = c) GROUP BY a;
+a
+3
+4
+SELECT a FROM t1 GROUP BY a
+HAVING EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) = c);
+a
+1
+3
+4
+SELECT a FROM t1
+WHERE a < 3 AND
+EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) != c) GROUP BY a;
+a
+1
+2
+SELECT a FROM t1
+WHERE a < 3 AND
+EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) != c);
+a
+1
+2
+1
+2
+2
+SELECT t1.a FROM t1 GROUP BY t1.a
+HAVING t1.a < ALL(SELECT t2.c FROM t2 GROUP BY t2.c
+HAVING EXISTS(SELECT t3.e FROM t3 GROUP BY t3.e
+HAVING SUM(t1.a+t2.c) < t3.e/4));
+a
+1
+2
+SELECT t1.a FROM t1 GROUP BY t1.a
+HAVING t1.a > ALL(SELECT t2.c FROM t2
+WHERE EXISTS(SELECT t3.e FROM t3 GROUP BY t3.e
+HAVING SUM(t1.a+t2.c) < t3.e/4));
+a
+4
+SELECT t1.a FROM t1 GROUP BY t1.a
+HAVING t1.a > ALL(SELECT t2.c FROM t2
+WHERE EXISTS(SELECT t3.e FROM t3
+WHERE SUM(t1.a+t2.c) < t3.e/4));
+ERROR HY000: Invalid use of group function
+SELECT t1.a from t1 GROUP BY t1.a HAVING AVG(SUM(t1.b)) > 20;
+ERROR HY000: Invalid use of group function
+SELECT t1.a FROM t1 GROUP BY t1.a
+HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
+HAVING AVG(t2.c+SUM(t1.b)) > 20);
+a
+2
+3
+4
+SELECT t1.a FROM t1 GROUP BY t1.a
+HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
+HAVING AVG(SUM(t1.b)) > 20);
+a
+2
+4
+SELECT t1.a, SUM(b) AS sum FROM t1 GROUP BY t1.a
+HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
+HAVING t2.c+sum > 20);
+a sum
+2 60
+3 20
+4 40
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (a varchar(5), b varchar(10));
+INSERT INTO t1 VALUES
+('AAA', 5), ('BBB', 4), ('BBB', 1), ('CCC', 2),
+('CCC', 7), ('AAA', 2), ('AAA', 4), ('BBB', 3), ('AAA', 8);
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+a b
+BBB 4
+CCC 7
+AAA 8
+EXPLAIN
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 9 Using where
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
+ALTER TABLE t1 ADD INDEX(a);
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+a b
+BBB 4
+CCC 7
+AAA 8
+EXPLAIN
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 9 Using where
+2 DEPENDENT SUBQUERY t1 index NULL a 8 NULL 9 Using filesort
+DROP TABLE t1;
+create table t1( f1 int,f2 int);
+insert into t1 values (1,1),(2,2);
+select tt.t from (select 'crash1' as t, f2 from t1) as tt left join t1 on tt.t = 'crash2' and tt.f2 = t1.f2 where tt.t = 'crash1';
+t
+crash1
+crash1
+drop table t1;
+create table t1 (c int, key(c));
+insert into t1 values (1142477582), (1142455969);
+create table t2 (a int, b int);
+insert into t2 values (2, 1), (1, 0);
+delete from t1 where c <= 1140006215 and (select b from t2 where a = 2) = 1;
+drop table t1, t2;
+CREATE TABLE t1 (a INT);
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE no_such_column = ANY (SELECT 1);
+ERROR 42S22: Unknown column 'no_such_column' in 'where clause'
+CREATE VIEW v2 AS SELECT * FROM t1 WHERE no_such_column = (SELECT 1);
+ERROR 42S22: Unknown column 'no_such_column' in 'where clause'
+SELECT * FROM t1 WHERE no_such_column = ANY (SELECT 1);
+ERROR 42S22: Unknown column 'no_such_column' in 'IN/ALL/ANY subquery'
+DROP TABLE t1;
+create table t1 (i int, j bigint);
+insert into t1 values (1, 2), (2, 2), (3, 2);
+select * from (select min(i) from t1 where j=(select * from (select min(j) from t1) t2)) t3;
+min(i)
+1
+drop table t1;
+CREATE TABLE t1 (i BIGINT UNSIGNED);
+INSERT INTO t1 VALUES (10000000000000000000);
+INSERT INTO t1 VALUES (1);
+CREATE TABLE t2 (i BIGINT UNSIGNED);
+INSERT INTO t2 VALUES (10000000000000000000);
+INSERT INTO t2 VALUES (1);
+/* simple test */
+SELECT t1.i FROM t1 JOIN t2 ON t1.i = t2.i;
+i
+10000000000000000000
+1
+/* subquery test */
+SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
+i
+10000000000000000000
+/* subquery test with cast*/
+SELECT t1.i FROM t1 WHERE t1.i = CAST((SELECT MAX(i) FROM t2) AS UNSIGNED);
+i
+10000000000000000000
+DROP TABLE t1;
+DROP TABLE t2;
+CREATE TABLE t1 (
+id bigint(20) unsigned NOT NULL auto_increment,
+name varchar(255) NOT NULL,
+PRIMARY KEY (id)
+);
+INSERT INTO t1 VALUES
+(1, 'Balazs'), (2, 'Joe'), (3, 'Frank');
+CREATE TABLE t2 (
+id bigint(20) unsigned NOT NULL auto_increment,
+mid bigint(20) unsigned NOT NULL,
+date date NOT NULL,
+PRIMARY KEY (id)
+);
+INSERT INTO t2 VALUES
+(1, 1, '2006-03-30'), (2, 2, '2006-04-06'), (3, 3, '2006-04-13'),
+(4, 2, '2006-04-20'), (5, 1, '2006-05-01');
+SELECT *,
+(SELECT date FROM t2 WHERE mid = t1.id
+ORDER BY date DESC LIMIT 0, 1) AS date_last,
+(SELECT date FROM t2 WHERE mid = t1.id
+ORDER BY date DESC LIMIT 3, 1) AS date_next_to_last
+FROM t1;
+id name date_last date_next_to_last
+1 Balazs 2006-05-01 NULL
+2 Joe 2006-04-20 NULL
+3 Frank 2006-04-13 NULL
+SELECT *,
+(SELECT COUNT(*) FROM t2 WHERE mid = t1.id
+ORDER BY date DESC LIMIT 1, 1) AS date_count
+FROM t1;
+id name date_count
+1 Balazs NULL
+2 Joe NULL
+3 Frank NULL
+SELECT *,
+(SELECT date FROM t2 WHERE mid = t1.id
+ORDER BY date DESC LIMIT 0, 1) AS date_last,
+(SELECT date FROM t2 WHERE mid = t1.id
+ORDER BY date DESC LIMIT 1, 1) AS date_next_to_last
+FROM t1;
+id name date_last date_next_to_last
+1 Balazs 2006-05-01 2006-03-30
+2 Joe 2006-04-20 2006-04-06
+3 Frank 2006-04-13 NULL
+DROP TABLE t1,t2;
+CREATE TABLE t1 (
+i1 int(11) NOT NULL default '0',
+i2 int(11) NOT NULL default '0',
+t datetime NOT NULL default '0000-00-00 00:00:00',
+PRIMARY KEY (i1,i2,t)
+);
+INSERT INTO t1 VALUES
+(24,1,'2005-03-03 16:31:31'),(24,1,'2005-05-27 12:40:07'),
+(24,1,'2005-05-27 12:40:08'),(24,1,'2005-05-27 12:40:10'),
+(24,1,'2005-05-27 12:40:25'),(24,1,'2005-05-27 12:40:30'),
+(24,2,'2005-03-03 13:43:05'),(24,2,'2005-03-03 16:23:31'),
+(24,2,'2005-03-03 16:31:30'),(24,2,'2005-05-27 12:37:02'),
+(24,2,'2005-05-27 12:40:06');
+CREATE TABLE t2 (
+i1 int(11) NOT NULL default '0',
+i2 int(11) NOT NULL default '0',
+t datetime default NULL,
+PRIMARY KEY (i1)
+);
+INSERT INTO t2 VALUES (24,1,'2006-06-20 12:29:40');
+EXPLAIN
+SELECT * FROM t1,t2
+WHERE t1.t = (SELECT t1.t FROM t1
+WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
+ORDER BY t1.t DESC LIMIT 1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 system NULL NULL NULL NULL 1
+1 PRIMARY t1 index NULL PRIMARY 16 NULL 11 Using where; Using index
+2 DEPENDENT SUBQUERY t1 range PRIMARY PRIMARY 16 NULL 5 Using where; Using index
+SELECT * FROM t1,t2
+WHERE t1.t = (SELECT t1.t FROM t1
+WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
+ORDER BY t1.t DESC LIMIT 1);
+i1 i2 t i1 i2 t
+24 1 2005-05-27 12:40:30 24 1 2006-06-20 12:29:40
+DROP TABLE t1, t2;
+CREATE TABLE t1 (i INT);
+(SELECT i FROM t1) UNION (SELECT i FROM t1);
+i
+SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS
+(
+(SELECT i FROM t1) UNION
+(SELECT i FROM t1)
+);
+i
+SELECT * FROM t1
+WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1)));
+i
+explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12))
+from t1;
+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 'union (select t12.i from t1 t12))
+from t1' at line 1
+explain select * from t1 where not exists
+((select t11.i from t1 t11) union (select t12.i from t1 t12));
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
+2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
+3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
+4 UNION t12 system NULL NULL NULL NULL 0 const row not found
+NULL UNION RESULT <union2,4> ALL NULL NULL NULL NULL NULL
+DROP TABLE t1;
+CREATE TABLE t1 (a VARCHAR(250), b INT auto_increment, PRIMARY KEY (b));
+insert into t1 (a) values (FLOOR(rand() * 100));
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+SELECT a,
+(SELECT REPEAT(' ',250) FROM t1 i1
+WHERE i1.b=t1.a ORDER BY RAND() LIMIT 1) AS a
+FROM t1 ORDER BY a LIMIT 5;
+a a
+0 NULL
+0 NULL
+0 NULL
+0 NULL
+0 NULL
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, b INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t2 values (1);
+INSERT INTO t1 VALUES (1,1),(1,2),(2,3),(3,4);
+SELECT (SELECT COUNT(DISTINCT t1.b) from t2) FROM t1 GROUP BY t1.a;
+(SELECT COUNT(DISTINCT t1.b) from t2)
+2
+1
+1
+SELECT (SELECT COUNT(DISTINCT t1.b) from t2 union select 1 from t2 where 12 < 3)
+FROM t1 GROUP BY t1.a;
+(SELECT COUNT(DISTINCT t1.b) from t2 union select 1 from t2 where 12 < 3)
+2
+1
+1
+SELECT COUNT(DISTINCT t1.b), (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
+COUNT(DISTINCT t1.b) (SELECT COUNT(DISTINCT t1.b))
+2 2
+1 1
+1 1
+SELECT COUNT(DISTINCT t1.b),
+(SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
+FROM t1 GROUP BY t1.a;
+COUNT(DISTINCT t1.b) (SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
+2 2
+1 1
+1 1
+SELECT (
+SELECT (
+SELECT COUNT(DISTINCT t1.b)
+)
+)
+FROM t1 GROUP BY t1.a;
+(
+SELECT (
+SELECT COUNT(DISTINCT t1.b)
+)
+)
+2
+1
+1
+SELECT (
+SELECT (
+SELECT (
+SELECT COUNT(DISTINCT t1.b)
+)
+)
+FROM t1 GROUP BY t1.a LIMIT 1)
+FROM t1 t2
+GROUP BY t2.a;
+(
+SELECT (
+SELECT (
+SELECT COUNT(DISTINCT t1.b)
+)
+)
+FROM t1 GROUP BY t1.a LIMIT 1)
+2
+2
+2
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int auto_increment, PRIMARY KEY (b));
+CREATE TABLE t2 (x int auto_increment, y int, z int,
+PRIMARY KEY (x), FOREIGN KEY (y) REFERENCES t1 (b));
+SET SESSION sort_buffer_size = 32 * 1024;
+SELECT SQL_NO_CACHE COUNT(*)
+FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
+FROM t1) t;
+COUNT(*)
+3000
+SET SESSION sort_buffer_size = 8 * 1024 * 1024;
+SELECT SQL_NO_CACHE COUNT(*)
+FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
+FROM t1) t;
+COUNT(*)
+3000
+DROP TABLE t1,t2;
+CREATE TABLE t1 (id char(4) PRIMARY KEY, c int);
+CREATE TABLE t2 (c int);
+INSERT INTO t1 VALUES ('aa', 1);
+INSERT INTO t2 VALUES (1);
+SELECT * FROM t1
+WHERE EXISTS (SELECT c FROM t2 WHERE c=1
+UNION
+SELECT c from t2 WHERE c=t1.c);
+id c
+aa 1
+INSERT INTO t1 VALUES ('bb', 2), ('cc', 3), ('dd',1);
+SELECT * FROM t1
+WHERE EXISTS (SELECT c FROM t2 WHERE c=1
+UNION
+SELECT c from t2 WHERE c=t1.c);
+id c
+aa 1
+bb 2
+cc 3
+dd 1
+INSERT INTO t2 VALUES (2);
+CREATE TABLE t3 (c int);
+INSERT INTO t3 VALUES (1);
+SELECT * FROM t1
+WHERE EXISTS (SELECT t2.c FROM t2 JOIN t3 ON t2.c=t3.c WHERE t2.c=1
+UNION
+SELECT c from t2 WHERE c=t1.c);
+id c
+aa 1
+bb 2
+cc 3
+dd 1
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1(f1 int);
+CREATE TABLE t2(f2 int, f21 int, f3 timestamp);
+INSERT INTO t1 VALUES (1),(1),(2),(2);
+INSERT INTO t2 VALUES (1,1,"2004-02-29 11:11:11"), (2,2,"2004-02-29 11:11:11");
+SELECT ((SELECT f2 FROM t2 WHERE f21=f1 LIMIT 1) * COUNT(f1)) AS sq FROM t1 GROUP BY f1;
+sq
+2
+4
+SELECT (SELECT SUM(1) FROM t2 ttt GROUP BY t2.f3 LIMIT 1) AS tt FROM t2;
+tt
+2
+2
+PREPARE stmt1 FROM 'SELECT ((SELECT f2 FROM t2 WHERE f21=f1 LIMIT 1) * COUNT(f1)) AS sq FROM t1 GROUP BY f1';
+EXECUTE stmt1;
+sq
+2
+4
+EXECUTE stmt1;
+sq
+2
+4
+DEALLOCATE PREPARE stmt1;
+SELECT f2, AVG(f21),
+(SELECT t.f3 FROM t2 AS t WHERE t2.f2=t.f2 AND t.f3=MAX(t2.f3)) AS test
+FROM t2 GROUP BY f2;
+f2 AVG(f21) test
+1 1.0000 2004-02-29 11:11:11
+2 2.0000 2004-02-29 11:11:11
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL);
+INSERT INTO t1 VALUES
+(1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'),
+(2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'), (3,3,'j'),
+(3,2,'k'), (3,1,'l'), (1,9,'m');
+SELECT a, MAX(b),
+(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) AS test
+FROM t1 GROUP BY a;
+a MAX(b) test
+1 9 m
+2 3 h
+3 4 i
+DROP TABLE t1;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP TABLE IF EXISTS t1xt2;
+CREATE TABLE t1 (
+id_1 int(5) NOT NULL,
+t varchar(4) DEFAULT NULL
+);
+CREATE TABLE t2 (
+id_2 int(5) NOT NULL,
+t varchar(4) DEFAULT NULL
+);
+CREATE TABLE t1xt2 (
+id_1 int(5) NOT NULL,
+id_2 int(5) NOT NULL
+);
+INSERT INTO t1 VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd');
+INSERT INTO t2 VALUES (2, 'bb'), (3, 'cc'), (4, 'dd'), (12, 'aa');
+INSERT INTO t1xt2 VALUES (2, 2), (3, 3), (4, 4);
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+id_1
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+id_1
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+id_1
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+id_1
+1
+2
+3
+4
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN ((SELECT t1xt2.id_2 FROM t1xt2 where t1.id_1 = t1xt2.id_1)));
+id_1
+1
+2
+3
+4
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (((SELECT t1xt2.id_2 FROM t1xt2 where t1.id_1 = t1xt2.id_1))));
+id_1
+1
+2
+3
+4
+insert INTO t1xt2 VALUES (1, 12);
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+id_1
+1
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+id_1
+1
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+id_1
+1
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+id_1
+2
+3
+4
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+id_1
+2
+3
+4
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+id_1
+2
+3
+4
+insert INTO t1xt2 VALUES (2, 12);
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+id_1
+1
+2
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+id_1
+1
+2
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+id_1
+1
+2
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+id_1
+3
+4
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+id_1
+3
+4
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+id_1
+3
+4
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE t1xt2;
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (3), (1), (2);
+SELECT 'this is ' 'a test.' AS col1, a AS col2 FROM t1;
+col1 col2
+this is a test. 3
+this is a test. 1
+this is a test. 2
+SELECT * FROM (SELECT 'this is ' 'a test.' AS col1, a AS t2 FROM t1) t;
+col1 t2
+this is a test. 3
+this is a test. 1
+this is a test. 2
+DROP table t1;
+CREATE TABLE t1 (a int, b int);
+CREATE TABLE t2 (m int, n int);
+INSERT INTO t1 VALUES (2,2), (2,2), (3,3), (3,3), (3,3), (4,4);
+INSERT INTO t2 VALUES (1,11), (2,22), (3,32), (4,44), (4,44);
+SELECT COUNT(*), a,
+(SELECT m FROM t2 WHERE m = count(*) LIMIT 1)
+FROM t1 GROUP BY a;
+COUNT(*) a (SELECT m FROM t2 WHERE m = count(*) LIMIT 1)
+2 2 2
+3 3 3
+1 4 1
+SELECT COUNT(*), a,
+(SELECT MIN(m) FROM t2 WHERE m = count(*))
+FROM t1 GROUP BY a;
+COUNT(*) a (SELECT MIN(m) FROM t2 WHERE m = count(*))
+2 2 2
+3 3 3
+1 4 1
+SELECT COUNT(*), a
+FROM t1 GROUP BY a
+HAVING (SELECT MIN(m) FROM t2 WHERE m = count(*)) > 1;
+COUNT(*) a
+2 2
+3 3
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int);
+CREATE TABLE t2 (m int, n int);
+INSERT INTO t1 VALUES (2,2), (2,2), (3,3), (3,3), (3,3), (4,4);
+INSERT INTO t2 VALUES (1,11), (2,22), (3,32), (4,44), (4,44);
+SELECT COUNT(*) c, a,
+(SELECT GROUP_CONCAT(COUNT(a)) FROM t2 WHERE m = a)
+FROM t1 GROUP BY a;
+c a (SELECT GROUP_CONCAT(COUNT(a)) FROM t2 WHERE m = a)
+2 2 2
+3 3 3
+1 4 1,1
+SELECT COUNT(*) c, a,
+(SELECT GROUP_CONCAT(COUNT(a)+1) FROM t2 WHERE m = a)
+FROM t1 GROUP BY a;
+c a (SELECT GROUP_CONCAT(COUNT(a)+1) FROM t2 WHERE m = a)
+2 2 3
+3 3 4
+1 4 2,2
+DROP table t1,t2;
+CREATE TABLE t1 (a int, b INT, d INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b));
+INSERT INTO t1 VALUES (1,1,0,'a'), (1,2,0,'b'), (1,3,0,'c'), (1,4,0,'d'),
+(1,5,0,'e'), (2,1,0,'f'), (2,2,0,'g'), (2,3,0,'h'), (3,4,0,'i'), (3,3,0,'j'),
+(3,2,0,'k'), (3,1,0,'l'), (1,9,0,'m'), (1,0,10,'n'), (2,0,5,'o'), (3,0,7,'p');
+SELECT a, MAX(b),
+(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b + 0)) as test
+FROM t1 GROUP BY a;
+a MAX(b) test
+1 9 m
+2 3 h
+3 4 i
+SELECT a x, MAX(b),
+(SELECT t.c FROM t1 AS t WHERE x=t.a AND t.b=MAX(t1.b + 0)) as test
+FROM t1 GROUP BY a;
+x MAX(b) test
+1 9 m
+2 3 h
+3 4 i
+SELECT a, AVG(b),
+(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) AS test
+FROM t1 WHERE t1.d=0 GROUP BY a;
+a AVG(b) test
+1 4.0000 d
+2 2.0000 g
+3 2.5000 NULL
+SELECT tt.a,
+(SELECT (SELECT c FROM t1 as t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
+LIMIT 1) FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
+FROM t1 as tt;
+a test
+1 n
+1 n
+1 n
+1 n
+1 n
+1 n
+1 n
+2 o
+2 o
+2 o
+2 o
+3 p
+3 p
+3 p
+3 p
+3 p
+SELECT tt.a,
+(SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
+LIMIT 1)
+FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
+FROM t1 as tt GROUP BY tt.a;
+a test
+1 n
+2 o
+3 p
+SELECT tt.a, MAX(
+(SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
+LIMIT 1)
+FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1)) as test
+FROM t1 as tt GROUP BY tt.a;
+a test
+1 n
+2 o
+3 p
+DROP TABLE t1;
+CREATE TABLE t1 (a int, b int);
+INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a;
+a
+1
+2
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 1 GROUP BY a;
+a
+SELECT a FROM t1 t0
+WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a;
+a
+1
+2
+SET @@sql_mode='ansi';
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a;
+ERROR HY000: Invalid use of group function
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 1 GROUP BY a;
+ERROR HY000: Invalid use of group function
+SELECT a FROM t1 t0
+WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a;
+ERROR HY000: Invalid use of group function
+SET @@sql_mode=default;
+DROP TABLE t1;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 values (1),(1),(1),(1);
+CREATE TABLE t2 (x INT);
+INSERT INTO t1 values (1000),(1001),(1002);
+SELECT SUM( (SELECT COUNT(a) FROM t2) ) FROM t1;
+ERROR HY000: Invalid use of group function
+SELECT SUM( (SELECT SUM(COUNT(a)) FROM t2) ) FROM t1;
+ERROR HY000: Invalid use of group function
+SELECT COUNT(1) FROM DUAL;
+COUNT(1)
+1
+SELECT SUM( (SELECT AVG( (SELECT t1.a FROM t2) ) FROM DUAL) ) FROM t1;
+ERROR HY000: Invalid use of group function
+SELECT
+SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING t1.a < 12) ) FROM t2) )
+FROM t1;
+ERROR HY000: Invalid use of group function
+SELECT t1.a as XXA,
+SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING XXA < 12) ) FROM t2) )
+FROM t1;
+ERROR HY000: Invalid use of group function
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int, KEY (a));
+INSERT INTO t1 VALUES (1,1),(2,1);
+EXPLAIN SELECT 1 FROM t1 WHERE a = (SELECT COUNT(*) FROM t1 GROUP BY b);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ref a a 5 const 1 Using where; Using index
+2 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+DROP TABLE t1;
+CREATE TABLE t1 (id int NOT NULL, st CHAR(2), INDEX idx(id));
+INSERT INTO t1 VALUES
+(3,'FL'), (2,'GA'), (4,'FL'), (1,'GA'), (5,'NY'), (7,'FL'), (6,'NY');
+CREATE TABLE t2 (id int NOT NULL, INDEX idx(id));
+INSERT INTO t2 VALUES (7), (5), (1), (3);
+SELECT id, st FROM t1
+WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
+id st
+3 FL
+1 GA
+7 FL
+SELECT id, st FROM t1
+WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
+GROUP BY id;
+id st
+1 GA
+3 FL
+7 FL
+SELECT id, st FROM t1
+WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
+id st
+2 GA
+4 FL
+SELECT id, st FROM t1
+WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
+GROUP BY id;
+id st
+2 GA
+4 FL
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1), (2);
+EXPLAIN EXTENDED
+SELECT * FROM (SELECT count(*) FROM t1 GROUP BY a) as res;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
+2 DERIVED t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+Warnings:
+Note 1003 select `res`.`count(*)` AS `count(*)` from (select count(0) AS `count(*)` from `test`.`t1` group by `test`.`t1`.`a`) `res`
+DROP TABLE t1;
+CREATE TABLE t1 (
+a varchar(255) default NULL,
+b timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+INDEX idx(a,b)
+);
+CREATE TABLE t2 (
+a varchar(255) default NULL
+);
+INSERT INTO t1 VALUES ('abcdefghijk','2007-05-07 06:00:24');
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO `t1` VALUES ('asdf','2007-02-08 01:11:26');
+INSERT INTO `t2` VALUES ('abcdefghijk');
+INSERT INTO `t2` VALUES ('asdf');
+SET session sort_buffer_size=8192;
+SELECT (SELECT 1 FROM t1 WHERE t1.a=t2.a ORDER BY t1.b LIMIT 1) AS d1 FROM t2;
+d1
+1
+1
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INTEGER, b INTEGER);
+CREATE TABLE t2 (x INTEGER);
+INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
+INSERT INTO t2 VALUES (1), (2);
+SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a;
+ERROR 21000: Subquery returns more than 1 row
+SELECT a, COUNT(b), (SELECT COUNT(b)+0 FROM t2) FROM t1 GROUP BY a;
+ERROR 21000: Subquery returns more than 1 row
+SELECT (SELECT SUM(t1.a)/AVG(t2.x) FROM t2) FROM t1;
+(SELECT SUM(t1.a)/AVG(t2.x) FROM t2)
+3.3333
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1, 2), (1,3), (1,4), (2,1), (2,2);
+SELECT a1.a, COUNT(*) FROM t1 a1 WHERE a1.a = 1
+AND EXISTS( SELECT a2.a FROM t1 a2 WHERE a2.a = a1.a)
+GROUP BY a1.a;
+a COUNT(*)
+1 3
+DROP TABLE t1;
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+INSERT INTO t2 VALUES (1),(2);
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=0) FROM t1;
+(SELECT SUM(t1.a) FROM t2 WHERE a=0)
+NULL
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a!=0) FROM t1;
+ERROR 21000: Subquery returns more than 1 row
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1;
+(SELECT SUM(t1.a) FROM t2 WHERE a=1)
+3
+DROP TABLE t1,t2;
+End of 5.0 tests.
diff --git a/mysql-test/r/subselect2.result b/mysql-test/r/subselect2.result
index db1848105f8..27ec0ccfc0f 100644
--- a/mysql-test/r/subselect2.result
+++ b/mysql-test/r/subselect2.result
@@ -15,6 +15,8 @@ DOCID VARCHAR(32)BINARY NOT NULL
) ENGINE=InnoDB
;
INSERT INTO t1 (DOCID) VALUES ("1"), ("2");
+Warnings:
+Warning 1364 Field 'UUID' doesn't have a default value
CREATE TABLE t2
(
DOCID VARCHAR(32)BINARY NOT NULL
@@ -122,13 +124,13 @@ c373e9f5ad07993f3859444553544200 Last Discussion c373e9f5ad079174ff1744455354420
EXPLAIN SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3.FOLDERNAME = 'Level1') AND t3.FOLDERNAME = 'Level2') AND t3.FOLDERNAME = 'Level3') AND t3.FOLDERNAME = 'CopiedFolder') AND t3.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion';
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL DDOCTYPEID_IDX NULL NULL NULL 9 Using where
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 32 test.t2.DOCTYPEID 1
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 32 test.t2.DOCID 1
-2 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
-3 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
-4 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
-5 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 32 func 1 Using index; Using where
-6 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 32 func 1 Using index; Using where
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 34 test.t2.DOCID 1
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 34 test.t2.DOCTYPEID 1
+2 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 34 func 1 Using where
+3 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 34 func 1 Using where
+4 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 34 func 1 Using where
+5 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX PRIMARY 34 func 1 Using where
+6 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 func 1 Using where
drop table t1, t2, t3, t4;
CREATE TABLE t1 (a int(10) , PRIMARY KEY (a)) Engine=InnoDB;
INSERT INTO t1 VALUES (1),(2);
diff --git a/mysql-test/r/subselect3.result b/mysql-test/r/subselect3.result
new file mode 100644
index 00000000000..098dacc8189
--- /dev/null
+++ b/mysql-test/r/subselect3.result
@@ -0,0 +1,762 @@
+drop table if exists t0, t1, t2, t3, t4;
+create table t1 (oref int, grp int, ie int) ;
+insert into t1 (oref, grp, ie) values
+(1, 1, 1),
+(1, 1, 1),
+(1, 2, NULL),
+(2, 1, 3),
+(3, 1, 4),
+(3, 2, NULL);
+create table t2 (oref int, a int);
+insert into t2 values
+(1, 1),
+(2, 2),
+(3, 3),
+(4, NULL),
+(2, NULL);
+select a, oref, a in (select max(ie)
+from t1 where oref=t2.oref group by grp) Z from t2;
+a oref Z
+1 1 1
+2 2 0
+3 3 NULL
+NULL 4 0
+NULL 2 NULL
+explain extended
+select a, oref, a in (select max(ie)
+from t1 where oref=t2.oref group by grp) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 6 Using where; Using temporary; Using filesort
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>(`test`.`t2`.`a`,<exists>(select max(`test`.`t1`.`ie`) AS `max(ie)` from `test`.`t1` where (`test`.`t1`.`oref` = `test`.`t2`.`oref`) group by `test`.`t1`.`grp` having trigcond((<cache>(`test`.`t2`.`a`) = <ref_null_helper>(max(`test`.`t1`.`ie`)))))) AS `Z` from `test`.`t2`
+explain extended
+select a, oref from t2
+where a in (select max(ie) from t1 where oref=t2.oref group by grp);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 6 Using where; Using temporary; Using filesort
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`oref` AS `oref` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select max(`test`.`t1`.`ie`) AS `max(ie)` from `test`.`t1` where (`test`.`t1`.`oref` = `test`.`t2`.`oref`) group by `test`.`t1`.`grp` having (<cache>(`test`.`t2`.`a`) = <ref_null_helper>(max(`test`.`t1`.`ie`)))))
+select a, oref, a in (
+select max(ie) from t1 where oref=t2.oref group by grp union
+select max(ie) from t1 where oref=t2.oref group by grp
+) Z from t2;
+a oref Z
+1 1 1
+2 2 0
+3 3 NULL
+NULL 4 0
+NULL 2 NULL
+create table t3 (a int);
+insert into t3 values (NULL), (NULL);
+flush status;
+select a in (select max(ie) from t1 where oref=4 group by grp) from t3;
+a in (select max(ie) from t1 where oref=4 group by grp)
+0
+0
+show status like 'Handler_read_rnd_next';
+Variable_name Value
+Handler_read_rnd_next 11
+select ' ^ This must show 11' Z;
+Z
+ ^ This must show 11
+explain extended select a in (select max(ie) from t1 where oref=4 group by grp) from t3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 6 Using where; Using temporary; Using filesort
+Warnings:
+Note 1003 select <in_optimizer>(`test`.`t3`.`a`,<exists>(select max(`test`.`t1`.`ie`) AS `max(ie)` from `test`.`t1` where (`test`.`t1`.`oref` = 4) group by `test`.`t1`.`grp` having trigcond((<cache>(`test`.`t3`.`a`) = <ref_null_helper>(max(`test`.`t1`.`ie`)))))) AS `a in (select max(ie) from t1 where oref=4 group by grp)` from `test`.`t3`
+drop table t1, t2, t3;
+create table t1 (a int, oref int, key(a));
+insert into t1 values
+(1, 1),
+(1, NULL),
+(2, 3),
+(2, NULL),
+(3, NULL);
+create table t2 (a int, oref int);
+insert into t2 values (1, 1), (2,2), (NULL, 3), (NULL, 4);
+select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
+oref a Z
+1 1 1
+2 2 0
+3 NULL NULL
+4 NULL 0
+explain extended
+select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4
+2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 2 Using where; Full scan on NULL key
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,<in_optimizer>(`test`.`t2`.`a`,<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a checking NULL where (`test`.`t1`.`oref` = `test`.`t2`.`oref`) having trigcond(<is_not_null_test>(`test`.`t1`.`a`))))) AS `Z` from `test`.`t2`
+flush status;
+select oref, a from t2 where a in (select a from t1 where oref=t2.oref);
+oref a
+1 1
+show status like '%Handler_read_rnd_next';
+Variable_name Value
+Handler_read_rnd_next 5
+delete from t2;
+insert into t2 values (NULL, 0),(NULL, 0), (NULL, 0), (NULL, 0);
+flush status;
+select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
+oref a Z
+0 NULL 0
+0 NULL 0
+0 NULL 0
+0 NULL 0
+show status like '%Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 0
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 29
+select 'No key lookups, seq reads: 29= 5 reads from t2 + 4 * 6 reads from t1.' Z;
+Z
+No key lookups, seq reads: 29= 5 reads from t2 + 4 * 6 reads from t1.
+drop table t1, t2;
+create table t1 (a int, b int, primary key (a));
+insert into t1 values (1,1), (3,1),(100,1);
+create table t2 (a int, b int);
+insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0);
+select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ;
+a b Z
+1 1 1
+2 1 0
+NULL 1 NULL
+NULL 0 0
+drop table t1, t2;
+create table t1 (a int, b int, key(a));
+insert into t1 values
+(0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9);
+create table t2 like t1;
+insert into t2 select * from t1;
+update t2 set b=1;
+create table t3 (a int, oref int);
+insert into t3 values (1, 1), (NULL,1), (NULL,0);
+select a, oref,
+t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+a oref Z
+1 1 1
+NULL 1 NULL
+NULL 0 0
+explain extended
+select a, oref,
+t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t3 ALL NULL NULL NULL NULL 3
+2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 4 Using where; Full scan on NULL key
+2 DEPENDENT SUBQUERY t2 ref a a 5 test.t1.b 1 Using where
+Warnings:
+Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond(((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)))) having trigcond(<is_not_null_test>(`test`.`t1`.`a`)))) AS `Z` from `test`.`t3`
+drop table t1, t2, t3;
+create table t1 (a int NOT NULL, b int NOT NULL, key(a));
+insert into t1 values
+(0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9);
+create table t2 like t1;
+insert into t2 select * from t1;
+update t2 set b=1;
+create table t3 (a int, oref int);
+insert into t3 values (1, 1), (NULL,1), (NULL,0);
+select a, oref,
+t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+a oref Z
+1 1 1
+NULL 1 NULL
+NULL 0 0
+This must show a trig_cond:
+explain extended
+select a, oref,
+t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t3 ALL NULL NULL NULL NULL 3
+2 DEPENDENT SUBQUERY t1 ref a a 4 func 2 Using where; Full scan on NULL key
+2 DEPENDENT SUBQUERY t2 ref a a 4 test.t1.b 1 Using where
+Warnings:
+Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`))))) AS `Z` from `test`.`t3`
+drop table t1,t2,t3;
+create table t1 (oref int, grp int);
+insert into t1 (oref, grp) values
+(1, 1),
+(1, 1);
+create table t2 (oref int, a int);
+insert into t2 values
+(1, NULL),
+(2, NULL);
+select a, oref,
+a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2;
+a oref Z
+NULL 1 NULL
+NULL 2 0
+This must show a trig_cond:
+explain extended
+select a, oref,
+a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+Warnings:
+Note 1276 Field or reference 't2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>(`test`.`t2`.`a`,<exists>(select count(0) AS `count(*)` from `test`.`t1` group by `test`.`t1`.`grp` having ((`test`.`t1`.`grp` = `test`.`t2`.`oref`) and trigcond((<cache>(`test`.`t2`.`a`) = <ref_null_helper>(count(0))))))) AS `Z` from `test`.`t2`
+drop table t1, t2;
+create table t1 (a int, b int, primary key (a));
+insert into t1 values (1,1), (3,1),(100,1);
+create table t2 (a int, b int);
+insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0);
+select a,b, a in (select a from t1 where t1.b = t2.b union select a from
+t1 where t1.b = t2.b) Z from t2 ;
+a b Z
+1 1 1
+2 1 0
+NULL 1 NULL
+NULL 0 0
+select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ;
+a b Z
+1 1 1
+2 1 0
+NULL 1 NULL
+NULL 0 0
+drop table t1, t2;
+create table t3 (a int);
+insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, b int, oref int);
+insert into t2 values (NULL,1, 100), (NULL,2, 100);
+create table t1 (a int, b int, c int, key(a,b));
+insert into t1 select 2*A, 2*A, 100 from t3;
+explain extended select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2
+2 DEPENDENT SUBQUERY t1 index_subquery a a 5 func 2 Using where; Full scan on NULL key
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a checking NULL where ((`test`.`t1`.`c` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`b`) or isnull(`test`.`t1`.`b`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`a`)) and trigcond(<is_not_null_test>(`test`.`t1`.`b`)))))) AS `Z` from `test`.`t2`
+select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2;
+a b oref Z
+NULL 1 100 0
+NULL 2 100 NULL
+create table t4 (x int);
+insert into t4 select A.a + 10*B.a from t1 A, t1 B;
+explain extended
+select a,b, oref,
+(a,b) in (select a,b from t1,t4 where c=t2.oref) Z
+from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2
+2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 2 Using where; Full scan on NULL key
+2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 Using where
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` join `test`.`t4` where ((`test`.`t1`.`c` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`b`) or isnull(`test`.`t1`.`b`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`a`)) and trigcond(<is_not_null_test>(`test`.`t1`.`b`))))) AS `Z` from `test`.`t2`
+select a,b, oref,
+(a,b) in (select a,b from t1,t4 where c=t2.oref) Z
+from t2;
+a b oref Z
+NULL 1 100 0
+NULL 2 100 NULL
+drop table t1,t2,t3,t4;
+create table t1 (oref char(4), grp int, ie1 int, ie2 int);
+insert into t1 (oref, grp, ie1, ie2) values
+('aa', 10, 2, 1),
+('aa', 10, 1, 1),
+('aa', 20, 2, 1),
+('bb', 10, 3, 1),
+('cc', 10, 4, 2),
+('cc', 20, 3, 2),
+('ee', 10, 2, 1),
+('ee', 10, 1, 2),
+('ff', 20, 2, 2),
+('ff', 20, 1, 2);
+create table t2 (oref char(4), a int, b int);
+insert into t2 values
+('ee', NULL, 1),
+('bb', 2, 1),
+('ff', 2, 2),
+('cc', 3, NULL),
+('bb', NULL, NULL),
+('aa', 1, 1),
+('dd', 1, NULL);
+alter table t1 add index idx(ie1,ie2);
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=3 and b is null ;
+oref a b Z
+cc 3 NULL NULL
+insert into t2 values ('new1', 10,10);
+insert into t1 values ('new1', 1234, 10, NULL);
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10;
+oref a b Z
+new1 10 10 NULL
+explain extended
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 8 Using where
+2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 Using where; Full scan on NULL key
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on idx checking NULL where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`)))))) AS `Z` from `test`.`t2` where ((`test`.`t2`.`b` = 10) and (`test`.`t2`.`a` = 10))
+drop table t1, t2;
+create table t1 (oref char(4), grp int, ie int);
+insert into t1 (oref, grp, ie) values
+('aa', 10, 2),
+('aa', 10, 1),
+('aa', 20, NULL),
+('bb', 10, 3),
+('cc', 10, 4),
+('cc', 20, NULL),
+('ee', 10, NULL),
+('ee', 10, NULL),
+('ff', 20, 2),
+('ff', 20, 1);
+create table t2 (oref char(4), a int);
+insert into t2 values
+('ee', NULL),
+('bb', 2),
+('ff', 2),
+('cc', 3),
+('aa', 1),
+('dd', NULL),
+('bb', NULL);
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+oref a Z
+ee NULL NULL
+bb 2 0
+ff 2 1
+cc 3 NULL
+aa 1 1
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+oref a
+ff 2
+aa 1
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+oref a
+bb 2
+dd NULL
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2;
+oref a Z
+ee NULL NULL
+bb 2 0
+ff 2 0
+cc 3 NULL
+aa 1 1
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where
+a in (select min(ie) from t1 where oref=t2.oref group by grp);
+oref a
+aa 1
+select oref, a from t2 where
+a not in (select min(ie) from t1 where oref=t2.oref group by grp);
+oref a
+bb 2
+ff 2
+dd NULL
+update t1 set ie=3 where oref='ff' and ie=1;
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by
+grp) Z from t2;
+oref a Z
+ee NULL NULL
+bb 2 0
+ff 2 1
+cc 3 NULL
+aa 1 1
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where a in (select min(ie) from t1 where
+oref=t2.oref group by grp);
+oref a
+ff 2
+aa 1
+select oref, a from t2 where a not in (select min(ie) from t1 where
+oref=t2.oref group by grp);
+oref a
+bb 2
+dd NULL
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by
+grp having min(ie) > 1) Z from t2;
+oref a Z
+ee NULL 0
+bb 2 0
+ff 2 1
+cc 3 0
+aa 1 0
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where a in (select min(ie) from t1 where
+oref=t2.oref group by grp having min(ie) > 1);
+oref a
+ff 2
+select oref, a from t2 where a not in (select min(ie) from t1 where
+oref=t2.oref group by grp having min(ie) > 1);
+oref a
+ee NULL
+bb 2
+cc 3
+aa 1
+dd NULL
+alter table t1 add index idx(ie);
+explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 Using where; Full scan on NULL key
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+oref a Z
+ee NULL NULL
+bb 2 0
+ff 2 1
+cc 3 NULL
+aa 1 1
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+oref a
+ff 2
+aa 1
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+oref a
+bb 2
+dd NULL
+alter table t1 drop index idx;
+alter table t1 add index idx(oref,ie);
+explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 ref_or_null idx idx 10 test.t2.oref,func 4 Using where; Using index; Full scan on NULL key
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+oref a Z
+ee NULL NULL
+bb 2 0
+ff 2 1
+cc 3 NULL
+aa 1 1
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+oref a
+ff 2
+aa 1
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+oref a
+bb 2
+dd NULL
+explain
+select oref, a,
+a in (select min(ie) from t1 where oref=t2.oref
+group by grp having min(ie) > 1) Z
+from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 ref idx idx 5 test.t2.oref 2 Using where; Using temporary; Using filesort
+select oref, a,
+a in (select min(ie) from t1 where oref=t2.oref
+group by grp having min(ie) > 1) Z
+from t2;
+oref a Z
+ee NULL 0
+bb 2 0
+ff 2 1
+cc 3 0
+aa 1 0
+dd NULL 0
+bb NULL NULL
+select oref, a from t2 where a in (select min(ie) from t1 where oref=t2.oref
+group by grp having min(ie) > 1);
+oref a
+ff 2
+select oref, a from t2 where a not in (select min(ie) from t1 where oref=t2.oref
+group by grp having min(ie) > 1);
+oref a
+ee NULL
+bb 2
+cc 3
+aa 1
+dd NULL
+drop table t1,t2;
+create table t1 (oref char(4), grp int, ie1 int, ie2 int);
+insert into t1 (oref, grp, ie1, ie2) values
+('aa', 10, 2, 1),
+('aa', 10, 1, 1),
+('aa', 20, 2, 1),
+('bb', 10, 3, 1),
+('cc', 10, 4, 2),
+('cc', 20, 3, 2),
+('ee', 10, 2, 1),
+('ee', 10, 1, 2),
+('ff', 20, 2, 2),
+('ff', 20, 1, 2);
+create table t2 (oref char(4), a int, b int);
+insert into t2 values
+('ee', NULL, 1),
+('bb', 2, 1),
+('ff', 2, 2),
+('cc', 3, NULL),
+('bb', NULL, NULL),
+('aa', 1, 1),
+('dd', 1, NULL);
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+oref a b Z
+ee NULL 1 NULL
+bb 2 1 0
+ff 2 2 1
+cc 3 NULL NULL
+bb NULL NULL NULL
+aa 1 1 1
+dd 1 NULL 0
+select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref);
+oref a b
+ff 2 2
+aa 1 1
+select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref);
+oref a b
+bb 2 1
+dd 1 NULL
+select oref, a, b,
+(a,b) in (select min(ie1),max(ie2) from t1
+where oref=t2.oref group by grp) Z
+from t2;
+oref a b Z
+ee NULL 1 0
+bb 2 1 0
+ff 2 2 0
+cc 3 NULL NULL
+bb NULL NULL NULL
+aa 1 1 1
+dd 1 NULL 0
+select oref, a, b from t2 where
+(a,b) in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp);
+oref a b
+aa 1 1
+select oref, a, b from t2 where
+(a,b) not in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp);
+oref a b
+ee NULL 1
+bb 2 1
+ff 2 2
+dd 1 NULL
+alter table t1 add index idx(ie1,ie2);
+explain select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 Using where; Full scan on NULL key
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+oref a b Z
+ee NULL 1 NULL
+bb 2 1 0
+ff 2 2 1
+cc 3 NULL NULL
+bb NULL NULL NULL
+aa 1 1 1
+dd 1 NULL 0
+select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref);
+oref a b
+ff 2 2
+aa 1 1
+select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref);
+oref a b
+bb 2 1
+dd 1 NULL
+explain extended
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 Using where; Full scan on NULL key
+Warnings:
+Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
+Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on idx checking NULL where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`)))))) AS `Z` from `test`.`t2`
+drop table t1,t2;
+create table t1 (oref char(4), grp int, ie int primary key);
+insert into t1 (oref, grp, ie) values
+('aa', 10, 2),
+('aa', 10, 1),
+('bb', 10, 3),
+('cc', 10, 4),
+('cc', 20, 5),
+('cc', 10, 6);
+create table t2 (oref char(4), a int);
+insert into t2 values
+('ee', NULL),
+('bb', 2),
+('cc', 5),
+('cc', 2),
+('cc', NULL),
+('aa', 1),
+('bb', NULL);
+explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using where; Full scan on NULL key
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+oref a Z
+ee NULL 0
+bb 2 0
+cc 5 1
+cc 2 0
+cc NULL NULL
+aa 1 1
+bb NULL NULL
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+oref a
+cc 5
+aa 1
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+oref a
+ee NULL
+bb 2
+cc 2
+explain
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 6 Using where; Using temporary; Using filesort
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2;
+oref a Z
+ee NULL 0
+bb 2 0
+cc 5 1
+cc 2 0
+cc NULL NULL
+aa 1 1
+bb NULL NULL
+drop table t1,t2;
+create table t1 (a int, b int);
+insert into t1 values (0,0), (2,2), (3,3);
+create table t2 (a int, b int);
+insert into t2 values (1,1), (3,3);
+select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1;
+a b Z
+0 0 0
+2 2 0
+3 3 1
+insert into t2 values (NULL,4);
+select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1;
+a b Z
+0 0 0
+2 2 0
+3 3 1
+drop table t1,t2;
+CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b));
+INSERT INTO t1 VALUES (1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'),
+(2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'),(3,3,'j'), (3,2,'k'), (3,1,'l'),
+(1,9,'m');
+CREATE TABLE t2 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b));
+INSERT INTO t2 SELECT * FROM t1;
+SELECT a, MAX(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b))
+as test FROM t1 GROUP BY a;
+a MAX(b) test
+1 9 m
+2 3 h
+3 4 i
+SELECT * FROM t1 GROUP by t1.a
+HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c
+HAVING MAX(t2.b+t1.a) < 10));
+a b c
+SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c;
+a b c
+1 3 c
+2 3 h
+3 3 j
+1 4 d
+3 4 i
+1 9 m
+SELECT a, MAX(b),
+(SELECT COUNT(DISTINCT t.c) FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)
+LIMIT 1)
+as cnt,
+(SELECT t.b FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1)
+as t_b,
+(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1)
+as t_b,
+(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) ORDER BY t.c LIMIT 1)
+as t_b
+FROM t1 GROUP BY a;
+a MAX(b) cnt t_b t_b t_b
+1 9 1 9 m m
+2 3 1 3 h h
+3 4 1 4 i i
+SELECT a, MAX(b),
+(SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) as test
+FROM t1 GROUP BY a;
+a MAX(b) test
+1 9 m
+2 3 h
+3 4 i
+DROP TABLE t1, t2;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int, PRIMARY KEY(b));
+INSERT INTO t1 VALUES (1), (NULL), (4);
+INSERT INTO t2 VALUES (3), (1),(2), (5), (4), (7), (6);
+EXPLAIN EXTENDED
+SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1));
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
+2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`b` = `test`.`t1`.`a`) and (not(<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` where ((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)) having <is_not_null_test>(`test`.`t1`.`a`))))))
+SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1));
+a
+SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1 WHERE a > 4));
+a
+1
+4
+DROP TABLE t1,t2;
+CREATE TABLE t1 (id int);
+CREATE TABLE t2 (id int PRIMARY KEY);
+CREATE TABLE t3 (id int PRIMARY KEY, name varchar(10));
+INSERT INTO t1 VALUES (2), (NULL), (3), (1);
+INSERT INTO t2 VALUES (234), (345), (457);
+INSERT INTO t3 VALUES (222,'bbb'), (333,'ccc'), (111,'aaa');
+EXPLAIN
+SELECT * FROM t1
+WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
+WHERE t3.name='xxx' AND t2.id=t3.id);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
+2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Using index; Full scan on NULL key
+2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Full scan on NULL key
+SELECT * FROM t1
+WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
+WHERE t3.name='xxx' AND t2.id=t3.id);
+id
+2
+NULL
+3
+1
+SELECT (t1.id IN (SELECT t2.id FROM t2,t3
+WHERE t3.name='xxx' AND t2.id=t3.id)) AS x
+FROM t1;
+x
+0
+0
+0
+0
+DROP TABLE t1,t2,t3;
+CREATE TABLE t1 (a INT NOT NULL);
+INSERT INTO t1 VALUES (1),(-1), (65),(66);
+CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY);
+INSERT INTO t2 VALUES (65),(66);
+SELECT a FROM t1 WHERE a NOT IN (65,66);
+a
+1
+-1
+SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
+a
+1
+-1
+EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
+2 DEPENDENT SUBQUERY t2 unique_subquery PRIMARY PRIMARY 4 func 1 Using index
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/subselect_innodb.result b/mysql-test/r/subselect_innodb.result
index 0666fd76661..6c6d563e284 100644
--- a/mysql-test/r/subselect_innodb.result
+++ b/mysql-test/r/subselect_innodb.result
@@ -152,3 +152,96 @@ EXECUTE my_stmt;
b count(*)
deallocate prepare my_stmt;
drop table t1,t2;
+CREATE TABLE t1 (
+school_name varchar(45) NOT NULL,
+country varchar(45) NOT NULL,
+funds_requested float NOT NULL,
+schooltype varchar(45) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+insert into t1 values ("the school", "USA", 1200, "Human");
+select count(country) as countrycount, sum(funds_requested) as smcnt,
+country, (select sum(funds_requested) from t1) as total_funds
+from t1
+group by country;
+countrycount smcnt country total_funds
+1 1200 USA 1200
+select count(country) as countrycount, sum(funds_requested) as smcnt,
+country, (select sum(funds_requested) from t1) as total_funds
+from t1
+group by country;
+countrycount smcnt country total_funds
+1 1200 USA 1200
+drop table t1;
+CREATE TABLE `t1` (
+`t3_id` int NOT NULL,
+`t1_id` int NOT NULL,
+PRIMARY KEY (`t1_id`)
+);
+CREATE TABLE `t2` (
+`t2_id` int NOT NULL,
+`t1_id` int NOT NULL,
+`b` int NOT NULL,
+PRIMARY KEY (`t2_id`),
+UNIQUE KEY `idx_t2_t1_b` (`t1_id`,`b`)
+) ENGINE=InnoDB;
+CREATE TABLE `t3` (
+`t3_id` int NOT NULL
+);
+INSERT INTO `t3` VALUES (3);
+select
+(SELECT rs.t2_id
+FROM t2 rs
+WHERE rs.t1_id=
+(SELECT lt.t1_id
+FROM t1 lt
+WHERE lt.t3_id=a.t3_id)
+ORDER BY b DESC LIMIT 1)
+from t3 AS a;
+(SELECT rs.t2_id
+FROM t2 rs
+WHERE rs.t1_id=
+(SELECT lt.t1_id
+FROM t1 lt
+WHERE lt.t3_id=a.t3_id)
+ORDER BY b DESC LIMIT 1)
+NULL
+DROP PROCEDURE IF EXISTS p1;
+create procedure p1()
+begin
+declare done int default 3;
+repeat
+select
+(SELECT rs.t2_id
+FROM t2 rs
+WHERE rs.t1_id=
+(SELECT lt.t1_id
+FROM t1 lt
+WHERE lt.t3_id=a.t3_id)
+ORDER BY b DESC LIMIT 1) as x
+from t3 AS a;
+set done= done-1;
+until done <= 0 end repeat;
+end//
+call p1();
+x
+NULL
+x
+NULL
+x
+NULL
+call p1();
+x
+NULL
+x
+NULL
+x
+NULL
+call p1();
+x
+NULL
+x
+NULL
+x
+NULL
+drop procedure p1;
+drop tables t1,t2,t3;
diff --git a/mysql-test/r/subselect_notembedded.result b/mysql-test/r/subselect_notembedded.result
new file mode 100644
index 00000000000..44ae055425e
--- /dev/null
+++ b/mysql-test/r/subselect_notembedded.result
@@ -0,0 +1,3 @@
+purge master logs before (select adddate(current_timestamp(), interval -4 day));
+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 'select adddate(current_timestamp(), interval -4 day))' at line 1
+purge master logs before adddate(current_timestamp(), interval -4 day);
diff --git a/mysql-test/r/sum_distinct-big.result b/mysql-test/r/sum_distinct-big.result
new file mode 100644
index 00000000000..9b55d59ab91
--- /dev/null
+++ b/mysql-test/r/sum_distinct-big.result
@@ -0,0 +1,107 @@
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (id INTEGER);
+CREATE TABLE t2 (id INTEGER);
+INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
+INSERT INTO t1 (id) SELECT id FROM t1;
+/* 8 */
+INSERT INTO t1 (id) SELECT id FROM t1;
+/* 12 */
+INSERT INTO t1 (id) SELECT id FROM t1;
+/* 16 */
+INSERT INTO t1 (id) SELECT id FROM t1;
+/* 20 */
+INSERT INTO t1 (id) SELECT id FROM t1;
+/* 24 */
+INSERT INTO t1 SELECT id+1 FROM t1;
+INSERT INTO t1 SELECT id+2 FROM t1;
+INSERT INTO t1 SELECT id+4 FROM t1;
+INSERT INTO t1 SELECT id+8 FROM t1;
+INSERT INTO t1 SELECT id+16 FROM t1;
+INSERT INTO t1 SELECT id+32 FROM t1;
+INSERT INTO t1 SELECT id+64 FROM t1;
+INSERT INTO t1 SELECT id+128 FROM t1;
+INSERT INTO t1 SELECT id+256 FROM t1;
+INSERT INTO t1 SELECT id+512 FROM t1;
+SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
+AVG(DISTINCT id)
+513.5000
+508.0000
+509.0000
+510.0000
+511.0000
+512.0000
+513.0000
+514.0000
+515.0000
+516.0000
+517.0000
+511.5000
+512.5000
+SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
+SUM(DISTINCT id)/COUNT(DISTINCT id)
+513.5000
+508.0000
+509.0000
+510.0000
+511.0000
+512.0000
+513.0000
+514.0000
+515.0000
+516.0000
+517.0000
+511.5000
+512.5000
+INSERT INTO t1 SELECT id+1024 FROM t1;
+INSERT INTO t1 SELECT id+2048 FROM t1;
+INSERT INTO t1 SELECT id+4096 FROM t1;
+INSERT INTO t1 SELECT id+8192 FROM t1;
+INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
+SELECT SUM(DISTINCT id) sm FROM t1;
+sm
+134225920
+SELECT SUM(DISTINCT id) sm FROM t2;
+sm
+134225920
+SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
+sm
+10327590
+10328851
+10330112
+10331373
+10332634
+10317510
+10318770
+10320030
+10321290
+10322550
+10323810
+10325070
+10326330
+SET max_heap_table_size=16384;
+SHOW variables LIKE 'max_heap_table_size';
+Variable_name Value
+max_heap_table_size 16384
+SELECT SUM(DISTINCT id) sm FROM t1;
+sm
+134225920
+SELECT SUM(DISTINCT id) sm FROM t2;
+sm
+134225920
+SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
+sm
+10327590
+10328851
+10330112
+10331373
+10332634
+10317510
+10318770
+10320030
+10321290
+10322550
+10323810
+10325070
+10326330
+DROP TABLE t1;
+DROP TABLE t2;
diff --git a/mysql-test/r/sum_distinct.result b/mysql-test/r/sum_distinct.result
new file mode 100644
index 00000000000..c615817f52d
--- /dev/null
+++ b/mysql-test/r/sum_distinct.result
@@ -0,0 +1,97 @@
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (
+id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
+gender CHAR(1),
+name VARCHAR(20)
+);
+SELECT SUM(DISTINCT LENGTH(name)) s1 FROM t1;
+s1
+NULL
+INSERT INTO t1 (gender, name) VALUES (NULL, NULL);
+INSERT INTO t1 (gender, name) VALUES (NULL, NULL);
+INSERT INTO t1 (gender, name) VALUES (NULL, NULL);
+SELECT SUM(DISTINCT LENGTH(name)) s1 FROM t1;
+s1
+NULL
+INSERT INTO t1 (gender, name) VALUES ('F', 'Helen'), ('F', 'Anastasia'),
+('F', 'Katherine'), ('F', 'Margo'), ('F', 'Magdalene'), ('F', 'Mary');
+CREATE TABLE t2 SELECT name FROM t1;
+SELECT (SELECT SUM(DISTINCT LENGTH(name)) FROM t1) FROM t2;
+(SELECT SUM(DISTINCT LENGTH(name)) FROM t1)
+18
+18
+18
+18
+18
+18
+18
+18
+18
+DROP TABLE t2;
+INSERT INTO t1 (gender, name) VALUES ('F', 'Eva'), ('F', 'Sofia'),
+('F', 'Sara'), ('F', 'Golda'), ('F', 'Toba'), ('F', 'Victory'),
+('F', 'Faina'), ('F', 'Miriam'), ('F', 'Beki'), ('F', 'America'),
+('F', 'Susan'), ('F', 'Glory'), ('F', 'Priscilla'), ('F', 'Rosmary'),
+('F', 'Rose'), ('F', 'Margareth'), ('F', 'Elizabeth'), ('F', 'Meredith'),
+('F', 'Julie'), ('F', 'Xenia'), ('F', 'Zena'), ('F', 'Olga'),
+('F', 'Brunhilda'), ('F', 'Nataly'), ('F', 'Lara'), ('F', 'Svetlana'),
+('F', 'Grethem'), ('F', 'Irene');
+SELECT
+SUM(DISTINCT LENGTH(name)) s1,
+SUM(DISTINCT SUBSTRING(NAME, 1, 3)) s2,
+SUM(DISTINCT LENGTH(SUBSTRING(name, 1, 4))) s3
+FROM t1;
+s1 s2 s3
+42 0 7
+SELECT
+SUM(DISTINCT LENGTH(g1.name)) s1,
+SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
+SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
+FROM t1 g1, t1 g2, t1 g3;
+s1 s2 s3
+42 0 7
+SELECT
+SUM(DISTINCT LENGTH(g1.name)) s1,
+SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
+SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
+FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
+s1 s2 s3
+42 0 NULL
+42 0 7
+42 0 4
+42 0 4
+42 0 4
+42 0 4
+42 0 4
+SELECT SQL_BUFFER_RESULT
+SUM(DISTINCT LENGTH(name)) s1,
+SUM(DISTINCT SUBSTRING(NAME, 1, 3)) s2,
+SUM(DISTINCT LENGTH(SUBSTRING(name, 1, 4))) s3
+FROM t1;
+s1 s2 s3
+42 0 7
+SELECT SQL_BUFFER_RESULT
+SUM(DISTINCT LENGTH(g1.name)) s1,
+SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
+SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
+FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
+s1 s2 s3
+42 0 NULL
+42 0 7
+42 0 4
+42 0 4
+42 0 4
+42 0 4
+42 0 4
+SET @l=1;
+UPDATE t1 SET name=CONCAT(name, @l:=@l+1);
+SELECT SUM(DISTINCT RIGHT(name, 1)) FROM t1;
+SUM(DISTINCT RIGHT(name, 1))
+45
+SELECT SUM(DISTINCT id) FROM t1;
+SUM(DISTINCT id)
+703
+SELECT SUM(DISTINCT id % 11) FROM t1;
+SUM(DISTINCT id % 11)
+55
+DROP TABLE t1;
diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result
index 32dc72b8219..833adbeb851 100644
--- a/mysql-test/r/symlink.result
+++ b/mysql-test/r/symlink.result
@@ -37,14 +37,23 @@ show create table t9;
Table Create Table
t9 CREATE TABLE `t9` (
`a` int(11) NOT NULL auto_increment,
- `b` char(16) NOT NULL default '',
- `c` int(11) NOT NULL default '0',
+ `b` char(16) NOT NULL,
+ `c` int(11) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
+) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
alter table t9 rename t8, add column d int not null;
alter table t8 rename t7;
rename table t7 to t9;
drop table t1;
+SHOW CREATE TABLE t9;
+Table Create Table
+t9 CREATE TABLE `t9` (
+ `a` int(11) NOT NULL auto_increment,
+ `b` char(16) NOT NULL,
+ `c` int(11) NOT NULL,
+ `d` int(11) NOT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
@@ -58,11 +67,11 @@ show create table mysqltest.t9;
Table Create Table
t9 CREATE TABLE `t9` (
`a` int(11) NOT NULL auto_increment,
- `b` char(16) NOT NULL default '',
- `c` int(11) NOT NULL default '0',
- `d` int(11) NOT NULL default '0',
+ `b` char(16) NOT NULL,
+ `c` int(11) NOT NULL,
+ `d` int(11) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
+) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
drop database mysqltest;
create table t1 (a int not null) engine=myisam;
Warnings:
@@ -70,7 +79,7 @@ Warning 0 DATA DIRECTORY option ignored
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0'
+ `a` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t1 add b int;
Warnings:
@@ -78,7 +87,7 @@ Warning 0 DATA DIRECTORY option ignored
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Warnings:
@@ -86,7 +95,7 @@ Warning 0 INDEX DIRECTORY option ignored
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL default '0',
+ `a` int(11) NOT NULL,
`b` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@@ -112,12 +121,12 @@ show create table t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
`a` int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TEST_DIR/var/log/'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
show create table t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
`a` int(11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TEST_DIR/var/log/'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
create table t1 (a int) engine=myisam select 42 a;
select * from t1;
a
@@ -129,19 +138,27 @@ select * from t1;
a
42
drop table t1;
-execute stmt;
-show create table t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `c` char(10) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/'
-drop table t1;
-execute stmt;
-show create table t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `c` char(10) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/'
-drop table t1;
-deallocate prepare stmt;
End of 4.1 tests
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+USE db2;
+INSERT INTO db2.t1 VALUES (1);
+SELECT * FROM db2.t1;
+b
+1
+RESET QUERY CACHE;
+USE db1;
+SET SESSION keep_files_on_create = TRUE;
+CREATE TABLE t1 (a INT) ENGINE MYISAM;
+ERROR HY000: Can't create/write to file './db1/t1.MYD' (Errcode: 17)
+CREATE TABLE t3 (a INT) Engine=MyISAM;
+INSERT INTO t3 VALUES (1),(2),(3);
+TRUNCATE TABLE t3;
+SELECT * from t3;
+a
+SET SESSION keep_files_on_create = DEFAULT;
+DROP TABLE db2.t1, db1.t3;
+DROP DATABASE db1;
+DROP DATABASE db2;
+USE test;
+End of 5.0 tests
diff --git a/mysql-test/r/synchronization.result b/mysql-test/r/synchronization.result
index 8b243fe29b2..29557b6cfd4 100644
--- a/mysql-test/r/synchronization.result
+++ b/mysql-test/r/synchronization.result
@@ -1,3 +1,4 @@
+drop table if exists t1;
CREATE TABLE t1 (x1 int);
ALTER TABLE t1 CHANGE x1 x2 int;
CREATE TABLE t2 LIKE t1;
diff --git a/mysql-test/r/sysdate_is_now.result b/mysql-test/r/sysdate_is_now.result
new file mode 100644
index 00000000000..1ebbb8c1588
--- /dev/null
+++ b/mysql-test/r/sysdate_is_now.result
@@ -0,0 +1,4 @@
+set timestamp=1;
+SELECT sleep(1),NOW()-SYSDATE() as zero;
+sleep(1) zero
+0 0.000000
diff --git a/mysql-test/r/system_mysql_db.result b/mysql-test/r/system_mysql_db.result
index 141878a7bf6..999f12a0573 100644
--- a/mysql-test/r/system_mysql_db.result
+++ b/mysql-test/r/system_mysql_db.result
@@ -1,3 +1,4 @@
+drop table if exists t1,t1aa,t2aa;
show tables;
Tables_in_db
columns_priv
@@ -8,6 +9,8 @@ help_keyword
help_relation
help_topic
host
+proc
+procs_priv
tables_priv
time_zone
time_zone_leap_second
@@ -33,6 +36,11 @@ db CREATE TABLE `db` (
`Alter_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_tmp_table_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Lock_tables_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Show_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Alter_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Execute_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges'
@@ -53,14 +61,19 @@ host CREATE TABLE `host` (
`Alter_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Create_tmp_table_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Lock_tables_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Show_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Alter_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Execute_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
PRIMARY KEY (`Host`,`Db`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Host privileges; Merged with database privileges'
show create table user;
Table Create Table
user CREATE TABLE `user` (
- `Host` varchar(60) collate utf8_bin NOT NULL default '',
- `User` varchar(16) collate utf8_bin NOT NULL default '',
- `Password` varchar(41) collate utf8_bin NOT NULL default '',
+ `Host` char(60) collate utf8_bin NOT NULL default '',
+ `User` char(16) collate utf8_bin NOT NULL default '',
+ `Password` char(41) character set latin1 collate latin1_bin NOT NULL default '',
`Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Insert_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Update_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
@@ -82,6 +95,11 @@ user CREATE TABLE `user` (
`Execute_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Repl_slave_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Repl_client_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Show_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Alter_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
+ `Create_user_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`ssl_type` enum('','ANY','X509','SPECIFIED') character set utf8 NOT NULL default '',
`ssl_cipher` blob NOT NULL,
`x509_issuer` blob NOT NULL,
@@ -89,6 +107,7 @@ user CREATE TABLE `user` (
`max_questions` int(11) unsigned NOT NULL default '0',
`max_updates` int(11) unsigned NOT NULL default '0',
`max_connections` int(11) unsigned NOT NULL default '0',
+ `max_user_connections` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
show create table func;
@@ -97,7 +116,7 @@ func CREATE TABLE `func` (
`name` char(64) collate utf8_bin NOT NULL default '',
`ret` tinyint(1) NOT NULL default '0',
`dl` char(128) collate utf8_bin NOT NULL default '',
- `type` enum('function','aggregate') character set utf8 NOT NULL default 'function',
+ `type` enum('function','aggregate') character set utf8 NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions'
show create table tables_priv;
@@ -109,7 +128,7 @@ tables_priv CREATE TABLE `tables_priv` (
`Table_name` char(64) collate utf8_bin NOT NULL default '',
`Grantor` char(77) collate utf8_bin NOT NULL default '',
`Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
- `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') character set utf8 NOT NULL default '',
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') character set utf8 NOT NULL default '',
`Column_priv` set('Select','Insert','Update','References') character set utf8 NOT NULL default '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
@@ -126,5 +145,40 @@ columns_priv CREATE TABLE `columns_priv` (
`Column_priv` set('Select','Insert','Update','References') character set utf8 NOT NULL default '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges'
+show create table procs_priv;
+Table Create Table
+procs_priv CREATE TABLE `procs_priv` (
+ `Host` char(60) collate utf8_bin NOT NULL default '',
+ `Db` char(64) collate utf8_bin NOT NULL default '',
+ `User` char(16) collate utf8_bin NOT NULL default '',
+ `Routine_name` char(64) collate utf8_bin NOT NULL default '',
+ `Routine_type` enum('FUNCTION','PROCEDURE') collate utf8_bin NOT NULL,
+ `Grantor` char(77) collate utf8_bin NOT NULL default '',
+ `Proc_priv` set('Execute','Alter Routine','Grant') character set utf8 NOT NULL default '',
+ `Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
+ KEY `Grantor` (`Grantor`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
+show create table proc;
+Table Create Table
+proc CREATE TABLE `proc` (
+ `db` char(64) character set utf8 collate utf8_bin NOT NULL default '',
+ `name` char(64) NOT NULL default '',
+ `type` enum('FUNCTION','PROCEDURE') NOT NULL,
+ `specific_name` char(64) NOT NULL default '',
+ `language` enum('SQL') NOT NULL default 'SQL',
+ `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL default 'CONTAINS_SQL',
+ `is_deterministic` enum('YES','NO') NOT NULL default 'NO',
+ `security_type` enum('INVOKER','DEFINER') NOT NULL default 'DEFINER',
+ `param_list` blob NOT NULL,
+ `returns` char(64) NOT NULL default '',
+ `body` longblob NOT NULL,
+ `definer` char(77) character set utf8 collate utf8_bin NOT NULL default '',
+ `created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ `modified` timestamp NOT NULL default '0000-00-00 00:00:00',
+ `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL default '',
+ `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '',
+ PRIMARY KEY (`db`,`name`,`type`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
show tables;
Tables_in_test
diff --git a/mysql-test/r/temp_table.result b/mysql-test/r/temp_table.result
index 80d4e8cc06d..d6adf51602b 100644
--- a/mysql-test/r/temp_table.result
+++ b/mysql-test/r/temp_table.result
@@ -1,4 +1,5 @@
drop table if exists t1,t2;
+drop view if exists v1;
CREATE TABLE t1 (c int not null, d char (10) not null);
insert into t1 values(1,""),(2,"a"),(3,"b");
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
@@ -97,8 +98,34 @@ d
show status like "created_tmp%tables";
Variable_name Value
Created_tmp_disk_tables 0
-Created_tmp_tables 1
+Created_tmp_tables 2
drop table t1;
+create temporary table v1 as select 'This is temp. table' A;
+create view v1 as select 'This is view' A;
+select * from v1;
+A
+This is temp. table
+show create table v1;
+Table Create Table
+v1 CREATE TEMPORARY TABLE `v1` (
+ `A` varchar(19) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'This is view' AS `A`
+drop view v1;
+select * from v1;
+A
+This is temp. table
+create view v1 as select 'This is view again' A;
+select * from v1;
+A
+This is temp. table
+drop table v1;
+select * from v1;
+A
+This is view again
+drop view v1;
create table t1 (a int, b int, index(a), index(b));
create table t2 (c int auto_increment, d varchar(255), primary key (c));
insert into t1 values (3,1),(3,2);
@@ -125,3 +152,24 @@ SELECT * FROM t1;
i
DROP TABLE t1;
End of 4.1 tests.
+CREATE TABLE t1 ( c FLOAT( 20, 14 ) );
+INSERT INTO t1 VALUES( 12139 );
+CREATE TABLE t2 ( c FLOAT(30,18) );
+INSERT INTO t2 VALUES( 123456 );
+SELECT AVG( c ) FROM t1 UNION SELECT 1;
+AVG( c )
+12139
+1
+SELECT 1 UNION SELECT AVG( c ) FROM t1;
+1
+1
+12139
+SELECT 1 UNION SELECT * FROM t2 UNION SELECT 1;
+1
+1
+123456
+SELECT c/1 FROM t1 UNION SELECT 1;
+c/1
+12139
+1
+DROP TABLE t1, t2;
diff --git a/mysql-test/r/testdb_only.require b/mysql-test/r/testdb_only.require
new file mode 100644
index 00000000000..e717418fdb6
--- /dev/null
+++ b/mysql-test/r/testdb_only.require
@@ -0,0 +1,2 @@
+Variable_name Value
+use extern server NO
diff --git a/mysql-test/r/timezone2.result b/mysql-test/r/timezone2.result
index ad3ce40ebb1..bb1d764ac8c 100644
--- a/mysql-test/r/timezone2.result
+++ b/mysql-test/r/timezone2.result
@@ -1,4 +1,5 @@
drop table if exists t1, t2;
+drop function if exists f1;
create table t1 (ts timestamp);
set time_zone='+00:00';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp());
@@ -40,6 +41,12 @@ insert into t1 (i, ts) values
Warnings:
Warning 1299 Invalid TIMESTAMP value in column 'ts' at row 2
insert into t1 (i, ts) values
+(unix_timestamp(20030330015959),20030330015959),
+(unix_timestamp(20030330023000),20030330023000),
+(unix_timestamp(20030330030000),20030330030000);
+Warnings:
+Warning 1299 Invalid TIMESTAMP value in column 'ts' at row 2
+insert into t1 (i, ts) values
(unix_timestamp('2003-05-01 00:00:00'),'2003-05-01 00:00:00');
insert into t1 (i, ts) values
(unix_timestamp('2003-10-26 01:00:00'),'2003-10-26 01:00:00'),
@@ -54,6 +61,9 @@ i ts
1048985999 2003-03-30 00:59:59
1048986000 2003-03-30 01:00:00
1048986000 2003-03-30 01:00:00
+1048985999 2003-03-30 00:59:59
+1048986000 2003-03-30 01:00:00
+1048986000 2003-03-30 01:00:00
1051740000 2003-04-30 22:00:00
1067122800 2003-10-25 23:00:00
1067126400 2003-10-26 00:00:00
@@ -108,9 +118,9 @@ insert into t1 values ('0000-00-00 00:00:00'),('1969-12-31 23:59:59'),
('1970-01-01 00:00:00'),('1970-01-01 00:00:01'),
('2038-01-19 03:14:07'),('2038-01-19 03:14:08');
Warnings:
-Warning 1264 Data truncated; out of range for column 'ts' at row 2
-Warning 1264 Data truncated; out of range for column 'ts' at row 3
-Warning 1264 Data truncated; out of range for column 'ts' at row 6
+Warning 1264 Out of range value adjusted for column 'ts' at row 2
+Warning 1264 Out of range value adjusted for column 'ts' at row 3
+Warning 1264 Out of range value adjusted for column 'ts' at row 6
select * from t1;
ts
0000-00-00 00:00:00
@@ -125,9 +135,9 @@ insert into t1 values ('0000-00-00 00:00:00'),('1970-01-01 00:30:00'),
('1970-01-01 01:00:00'),('1970-01-01 01:00:01'),
('2038-01-19 04:14:07'),('2038-01-19 04:14:08');
Warnings:
-Warning 1264 Data truncated; out of range for column 'ts' at row 2
-Warning 1264 Data truncated; out of range for column 'ts' at row 3
-Warning 1264 Data truncated; out of range for column 'ts' at row 6
+Warning 1264 Out of range value adjusted for column 'ts' at row 2
+Warning 1264 Out of range value adjusted for column 'ts' at row 3
+Warning 1264 Out of range value adjusted for column 'ts' at row 6
select * from t1;
ts
0000-00-00 00:00:00
@@ -142,9 +152,9 @@ insert into t1 values ('0000-00-00 00:00:00'),('1970-01-01 01:00:00'),
('1970-01-01 01:30:00'),('1970-01-01 01:30:01'),
('2038-01-19 04:44:07'),('2038-01-19 04:44:08');
Warnings:
-Warning 1264 Data truncated; out of range for column 'ts' at row 2
-Warning 1264 Data truncated; out of range for column 'ts' at row 3
-Warning 1264 Data truncated; out of range for column 'ts' at row 6
+Warning 1264 Out of range value adjusted for column 'ts' at row 2
+Warning 1264 Out of range value adjusted for column 'ts' at row 3
+Warning 1264 Out of range value adjusted for column 'ts' at row 6
select * from t1;
ts
0000-00-00 00:00:00
@@ -259,3 +269,17 @@ select * from t1;
convert_tz(NULL, NULL, NULL)
NULL
drop table t1;
+create table t1 (ldt datetime, udt datetime);
+create function f1(i datetime) returns datetime
+return convert_tz(i, 'UTC', 'Europe/Moscow');
+create trigger t1_bi before insert on t1 for each row
+set new.udt:= convert_tz(new.ldt, 'Europe/Moscow', 'UTC');
+insert into t1 (ldt) values ('2006-04-19 16:30:00');
+select * from t1;
+ldt udt
+2006-04-19 16:30:00 2006-04-19 12:30:00
+select ldt, f1(udt) as ldt2 from t1;
+ldt ldt2
+2006-04-19 16:30:00 2006-04-19 16:30:00
+drop table t1;
+drop function f1;
diff --git a/mysql-test/r/timezone_grant.result b/mysql-test/r/timezone_grant.result
index 471cacde300..2f4d46dfdc0 100644
--- a/mysql-test/r/timezone_grant.result
+++ b/mysql-test/r/timezone_grant.result
@@ -1,3 +1,5 @@
+drop tables if exists t1, t2;
+drop view if exists v1;
delete from mysql.user where user like 'mysqltest\_%';
delete from mysql.db where user like 'mysqltest\_%';
delete from mysql.tables_priv where user like 'mysqltest\_%';
@@ -20,9 +22,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC')
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
where t1.a = t2.c and t2.d = (select max(d) from t2);
select * from mysql.time_zone_name;
-ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysql'
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
-ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysql'
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
delete from mysql.db where user like 'mysqltest\_%';
flush privileges;
grant all privileges on test.t1 to mysqltest_1@localhost;
@@ -36,7 +38,9 @@ set time_zone= '+00:00';
set time_zone= 'Europe/Moscow';
select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC');
convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC')
-2004-12-01 09:00:00
+NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '2004-11-31 12:00:00'
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
convert_tz(b, 'Europe/Moscow', 'UTC')
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
@@ -57,3 +61,18 @@ delete from mysql.db where user like 'mysqltest\_%';
delete from mysql.tables_priv where user like 'mysqltest\_%';
flush privileges;
drop table t1, t2;
+create table t1 (a int, b datetime);
+insert into t1 values (1, 20010101000000), (2, 20020101000000);
+grant all privileges on test.* to mysqltest_1@localhost;
+create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1;
+select * from v1;
+a lb
+1 2001-01-01 03:00:00
+2 2002-01-01 03:00:00
+select * from v1, mysql.time_zone;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone'
+drop view v1;
+create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone;
+ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 'time_zone'
+drop table t1;
+drop user mysqltest_1@localhost;
diff --git a/mysql-test/r/trigger-compat.result b/mysql-test/r/trigger-compat.result
new file mode 100644
index 00000000000..6839cacab43
--- /dev/null
+++ b/mysql-test/r/trigger-compat.result
@@ -0,0 +1,48 @@
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS mysqltest_db1;
+CREATE DATABASE mysqltest_db1;
+CREATE USER mysqltest_dfn@localhost;
+CREATE USER mysqltest_inv@localhost;
+GRANT SUPER ON *.* TO mysqltest_dfn@localhost;
+GRANT CREATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+---> connection: wl2818_definer_con
+CREATE TABLE t1(num_value INT);
+CREATE TABLE t2(user_str TEXT);
+CREATE TRIGGER wl2818_trg1 BEFORE INSERT ON t1
+FOR EACH ROW
+INSERT INTO t2 VALUES(CURRENT_USER());
+
+---> patching t1.TRG...
+
+CREATE TRIGGER wl2818_trg2 AFTER INSERT ON t1
+FOR EACH ROW
+INSERT INTO t2 VALUES(CURRENT_USER());
+Warnings:
+Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
+
+SELECT trigger_name, definer FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+trigger_name definer
+wl2818_trg1
+wl2818_trg2 mysqltest_dfn@localhost
+Warnings:
+Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+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 mysqltest_db1 wl2818_trg1 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW NULL
+NULL mysqltest_db1 wl2818_trg2 INSERT NULL mysqltest_db1 t1 0 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW NULL mysqltest_dfn@localhost
+DROP TRIGGER wl2818_trg1;
+Warnings:
+Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
+DROP TRIGGER wl2818_trg2;
+use mysqltest_db1;
+DROP TABLE t1;
+DROP TABLE t2;
+DROP USER mysqltest_dfn@localhost;
+DROP USER mysqltest_inv@localhost;
+DROP DATABASE mysqltest_db1;
diff --git a/mysql-test/r/trigger-grant.result b/mysql-test/r/trigger-grant.result
new file mode 100644
index 00000000000..f6384d479b7
--- /dev/null
+++ b/mysql-test/r/trigger-grant.result
@@ -0,0 +1,396 @@
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS mysqltest_db1;
+CREATE DATABASE mysqltest_db1;
+CREATE USER mysqltest_dfn@localhost;
+CREATE USER mysqltest_inv@localhost;
+GRANT SUPER ON *.* TO mysqltest_dfn@localhost;
+GRANT CREATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+---> connection: wl2818_definer_con
+CREATE TABLE t1(num_value INT);
+CREATE TABLE t2(user_str TEXT);
+CREATE TRIGGER trg1 AFTER INSERT ON t1
+FOR EACH ROW
+INSERT INTO t2 VALUES(CURRENT_USER());
+
+---> connection: default
+GRANT ALL PRIVILEGES ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
+GRANT ALL PRIVILEGES ON mysqltest_db1.t2 TO mysqltest_dfn@localhost;
+GRANT ALL PRIVILEGES ON mysqltest_db1.t1
+TO 'mysqltest_inv'@localhost;
+GRANT SELECT ON mysqltest_db1.t2
+TO 'mysqltest_inv'@localhost;
+
+---> connection: wl2818_definer_con
+use mysqltest_db1;
+INSERT INTO t1 VALUES(1);
+SELECT * FROM t1;
+num_value
+1
+SELECT * FROM t2;
+user_str
+mysqltest_dfn@localhost
+
+---> connection: wl2818_invoker_con
+use mysqltest_db1;
+INSERT INTO t1 VALUES(2);
+SELECT * FROM t1;
+num_value
+1
+2
+SELECT * FROM t2;
+user_str
+mysqltest_dfn@localhost
+mysqltest_dfn@localhost
+
+---> connection: default
+use mysqltest_db1;
+REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost;
+
+---> connection: wl2818_invoker_con
+use mysqltest_db1;
+INSERT INTO t1 VALUES(3);
+ERROR 42000: INSERT command denied to user 'mysqltest_dfn'@'localhost' for table 't2'
+SELECT * FROM t1;
+num_value
+1
+2
+3
+SELECT * FROM t2;
+user_str
+mysqltest_dfn@localhost
+mysqltest_dfn@localhost
+
+---> connection: wl2818_definer_con
+use mysqltest_db1;
+DROP TRIGGER trg1;
+CREATE DEFINER='mysqltest_inv'@'localhost'
+ TRIGGER trg1 BEFORE INSERT ON t1
+FOR EACH ROW
+SET @new_sum = 0;
+CREATE DEFINER='mysqltest_nonexs'@'localhost'
+ TRIGGER trg2 AFTER INSERT ON t1
+FOR EACH ROW
+SET @new_sum = 0;
+Warnings:
+Note 1449 There is no 'mysqltest_nonexs'@'localhost' registered
+INSERT INTO t1 VALUES(6);
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+SHOW TRIGGERS;
+Trigger Event Table Statement Timing Created sql_mode Definer
+trg1 INSERT t1 SET @new_sum = 0 BEFORE NULL mysqltest_inv@localhost
+trg2 INSERT t1 SET @new_sum = 0 AFTER NULL mysqltest_nonexs@localhost
+DROP TRIGGER trg1;
+DROP TRIGGER trg2;
+CREATE TRIGGER trg1 BEFORE INSERT ON t1
+FOR EACH ROW
+SET @a = 1;
+CREATE TRIGGER trg2 AFTER INSERT ON t1
+FOR EACH ROW
+SET @a = 2;
+CREATE TRIGGER trg3 BEFORE UPDATE ON t1
+FOR EACH ROW
+SET @a = 3;
+CREATE TRIGGER trg4 AFTER UPDATE ON t1
+FOR EACH ROW
+SET @a = 4;
+CREATE TRIGGER trg5 BEFORE DELETE ON t1
+FOR EACH ROW
+SET @a = 5;
+
+SELECT trigger_name, definer FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+trigger_name definer
+trg1
+trg2 @
+trg3 @abc@def@@
+trg4 @hostname
+trg5 @abcdef@@@hostname
+Warnings:
+Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+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 mysqltest_db1 trg1 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW NULL
+NULL mysqltest_db1 trg2 INSERT NULL mysqltest_db1 t1 0 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW NULL @
+NULL mysqltest_db1 trg3 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW NULL @abc@def@@
+NULL mysqltest_db1 trg4 UPDATE NULL mysqltest_db1 t1 0 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW NULL @hostname
+NULL mysqltest_db1 trg5 DELETE NULL mysqltest_db1 t1 0 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW NULL @abcdef@@@hostname
+
+---> connection: default
+DROP USER mysqltest_dfn@localhost;
+DROP USER mysqltest_inv@localhost;
+DROP DATABASE mysqltest_db1;
+Warnings:
+Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS mysqltest_db1;
+CREATE DATABASE mysqltest_db1;
+use mysqltest_db1;
+CREATE TABLE t1(col CHAR(20));
+CREATE TABLE t2(col CHAR(20));
+CREATE TABLE t3(col CHAR(20));
+CREATE TABLE t4(col CHAR(20));
+CREATE USER mysqltest_u1@localhost;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost;
+GRANT SUPER ON *.* TO mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+SET @mysqltest_var = NULL;
+
+---> connection: default
+use mysqltest_db1;
+REVOKE SELECT ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+GRANT DELETE ON mysqltest_db1.* TO mysqltest_u1@localhost;
+SHOW GRANTS FOR mysqltest_u1@localhost;
+Grants for mysqltest_u1@localhost
+GRANT SUPER ON *.* TO 'mysqltest_u1'@'localhost'
+GRANT DELETE ON `mysqltest_db1`.* TO 'mysqltest_u1'@'localhost'
+
+---> connection: bug15166_u1_con
+use mysqltest_db1;
+CREATE TRIGGER t1_trg_after_delete AFTER DELETE ON t1
+FOR EACH ROW
+SET @mysqltest_var = 'Hello, world!';
+
+---> connection: default
+use mysqltest_db1;
+GRANT UPDATE ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT UPDATE ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
+
+---> connection: bug15166_u1_con
+use mysqltest_db1;
+CREATE TRIGGER t1_trg_err_1 BEFORE INSERT ON t1
+FOR EACH ROW
+SET @mysqltest_var = NEW.col;
+DROP TRIGGER t1_trg_err_1;
+CREATE TRIGGER t1_trg_err_2 BEFORE DELETE ON t1
+FOR EACH ROW
+SET @mysqltest_var = OLD.col;
+DROP TRIGGER t1_trg_err_2;
+CREATE TRIGGER t2_trg_before_insert BEFORE INSERT ON t2
+FOR EACH ROW
+SET NEW.col = 't2_trg_before_insert';
+CREATE TRIGGER t3_trg_err_1 BEFORE INSERT ON t3
+FOR EACH ROW
+SET @mysqltest_var = NEW.col;
+DROP TRIGGER t3_trg_err_1;
+CREATE TRIGGER t3_trg_err_2 BEFORE DELETE ON t3
+FOR EACH ROW
+SET @mysqltest_var = OLD.col;
+DROP TRIGGER t3_trg_err_2;
+CREATE TRIGGER t4_trg_before_insert BEFORE INSERT ON t4
+FOR EACH ROW
+SET NEW.col = 't4_trg_before_insert';
+
+---> connection: default
+use mysqltest_db1;
+REVOKE UPDATE ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+REVOKE UPDATE ON mysqltest_db1.t2 FROM mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+REVOKE UPDATE(col) ON mysqltest_db1.t3 FROM mysqltest_u1@localhost;
+REVOKE UPDATE(col) ON mysqltest_db1.t4 FROM mysqltest_u1@localhost;
+GRANT SELECT(col) on mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT SELECT(col) on mysqltest_db1.t4 TO mysqltest_u1@localhost;
+
+---> connection: bug15166_u1_con
+use mysqltest_db1;
+CREATE TRIGGER t1_trg_after_insert AFTER INSERT ON t1
+FOR EACH ROW
+SET @mysqltest_var = NEW.col;
+CREATE TRIGGER t1_trg_after_update AFTER UPDATE ON t1
+FOR EACH ROW
+SET @mysqltest_var = OLD.col;
+CREATE TRIGGER t2_trg_err_1 BEFORE UPDATE ON t2
+FOR EACH ROW
+SET NEW.col = 't2_trg_err_1';
+DROP TRIGGER t2_trg_err_1;
+CREATE TRIGGER t2_trg_err_2 BEFORE UPDATE ON t2
+FOR EACH ROW
+SET NEW.col = CONCAT(OLD.col, '(updated)');
+DROP TRIGGER t2_trg_err_2;
+CREATE TRIGGER t3_trg_after_insert AFTER INSERT ON t3
+FOR EACH ROW
+SET @mysqltest_var = NEW.col;
+CREATE TRIGGER t3_trg_after_update AFTER UPDATE ON t3
+FOR EACH ROW
+SET @mysqltest_var = OLD.col;
+CREATE TRIGGER t4_trg_err_1 BEFORE UPDATE ON t4
+FOR EACH ROW
+SET NEW.col = 't4_trg_err_1';
+DROP TRIGGER t4_trg_err_1;
+CREATE TRIGGER t4_trg_err_2 BEFORE UPDATE ON t4
+FOR EACH ROW
+SET NEW.col = CONCAT(OLD.col, '(updated)');
+DROP TRIGGER t4_trg_err_2;
+
+---> connection: default
+use mysqltest_db1;
+REVOKE SELECT ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+REVOKE SELECT ON mysqltest_db1.t2 FROM mysqltest_u1@localhost;
+GRANT UPDATE ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT UPDATE ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+REVOKE SELECT(col) ON mysqltest_db1.t3 FROM mysqltest_u1@localhost;
+REVOKE SELECT(col) ON mysqltest_db1.t4 FROM mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
+INSERT INTO t1 VALUES('line1');
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for column 'col' in table 't1'
+SELECT * FROM t1;
+col
+line1
+SELECT @mysqltest_var;
+@mysqltest_var
+NULL
+INSERT INTO t2 VALUES('line2');
+SELECT * FROM t2;
+col
+t2_trg_before_insert
+INSERT INTO t3 VALUES('t3_line1');
+ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for column 'col' in table 't3'
+SELECT * FROM t3;
+col
+t3_line1
+SELECT @mysqltest_var;
+@mysqltest_var
+NULL
+INSERT INTO t4 VALUES('t4_line2');
+SELECT * FROM t4;
+col
+t4_trg_before_insert
+
+---> connection: default
+use mysqltest_db1;
+REVOKE UPDATE ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+REVOKE UPDATE ON mysqltest_db1.t2 FROM mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+REVOKE UPDATE(col) ON mysqltest_db1.t3 FROM mysqltest_u1@localhost;
+REVOKE UPDATE(col) ON mysqltest_db1.t4 FROM mysqltest_u1@localhost;
+GRANT SELECT(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT SELECT(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
+INSERT INTO t1 VALUES('line3');
+SELECT * FROM t1;
+col
+line1
+line3
+SELECT @mysqltest_var;
+@mysqltest_var
+line3
+INSERT INTO t2 VALUES('line4');
+ERROR 42000: UPDATE command denied to user 'mysqltest_u1'@'localhost' for column 'col' in table 't2'
+SELECT * FROM t2;
+col
+t2_trg_before_insert
+INSERT INTO t3 VALUES('t3_line2');
+SELECT * FROM t3;
+col
+t3_line1
+t3_line2
+SELECT @mysqltest_var;
+@mysqltest_var
+t3_line2
+INSERT INTO t4 VALUES('t4_line2');
+ERROR 42000: UPDATE command denied to user 'mysqltest_u1'@'localhost' for column 'col' in table 't4'
+SELECT * FROM t4;
+col
+t4_trg_before_insert
+DELETE FROM t1;
+SELECT @mysqltest_var;
+@mysqltest_var
+Hello, world!
+DROP USER mysqltest_u1@localhost;
+DROP DATABASE mysqltest_db1;
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS mysqltest_db1;
+CREATE DATABASE mysqltest_db1;
+USE mysqltest_db1;
+CREATE TABLE t1 (i1 INT);
+CREATE TABLE t2 (i1 INT);
+CREATE USER mysqltest_dfn@localhost;
+CREATE USER mysqltest_inv@localhost;
+GRANT EXECUTE, CREATE ROUTINE, SUPER ON *.* TO mysqltest_dfn@localhost;
+GRANT INSERT ON mysqltest_db1.* TO mysqltest_inv@localhost;
+CREATE PROCEDURE p1(OUT i INT) DETERMINISTIC NO SQL SET i = 3;
+CREATE PROCEDURE p2(INOUT i INT) DETERMINISTIC NO SQL SET i = i * 5;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+CALL p2(NEW.i1);
+INSERT INTO t1 VALUES (7);
+ERROR 42000: UPDATE command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't1'
+INSERT INTO t2 VALUES (11);
+ERROR 42000: SELECT,UPDATE command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't2'
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+GRANT SELECT ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+CALL p2(NEW.i1);
+INSERT INTO t1 VALUES (13);
+ERROR 42000: UPDATE command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't1'
+INSERT INTO t2 VALUES (17);
+ERROR 42000: UPDATE command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't2'
+REVOKE SELECT ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+GRANT UPDATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+CALL p2(NEW.i1);
+INSERT INTO t1 VALUES (19);
+INSERT INTO t2 VALUES (23);
+ERROR 42000: SELECT command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't2'
+REVOKE UPDATE ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+GRANT SELECT, UPDATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+CALL p2(NEW.i1);
+INSERT INTO t1 VALUES (29);
+INSERT INTO t2 VALUES (31);
+REVOKE SELECT, UPDATE ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+DROP PROCEDURE p2;
+DROP PROCEDURE p1;
+GRANT UPDATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+CREATE PROCEDURE p1(OUT i INT) DETERMINISTIC NO SQL SET i = 37;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+INSERT INTO t1 VALUES (41);
+DROP PROCEDURE p1;
+CREATE PROCEDURE p1(IN i INT) DETERMINISTIC NO SQL SET @v1 = i + 43;
+INSERT INTO t1 VALUES (47);
+ERROR 42000: SELECT command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't1'
+DROP PROCEDURE p1;
+CREATE PROCEDURE p1(INOUT i INT) DETERMINISTIC NO SQL SET i = i + 51;
+INSERT INTO t1 VALUES (53);
+ERROR 42000: SELECT command denied to user 'mysqltest_dfn'@'localhost' for column 'i1' in table 't1'
+DROP PROCEDURE p1;
+REVOKE UPDATE ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+DROP TRIGGER t1_bi;
+DROP USER mysqltest_inv@localhost;
+DROP USER mysqltest_dfn@localhost;
+DROP TABLE t2;
+DROP TABLE t1;
+DROP DATABASE mysqltest_db1;
+USE test;
+End of 5.0 tests.
diff --git a/mysql-test/r/trigger-trans.result b/mysql-test/r/trigger-trans.result
new file mode 100644
index 00000000000..cd5f629564f
--- /dev/null
+++ b/mysql-test/r/trigger-trans.result
@@ -0,0 +1,143 @@
+drop table if exists t1;
+create table t1 (a varchar(16), b int) engine=innodb;
+create trigger t1_bi before insert on t1 for each row
+begin
+set new.a := upper(new.a);
+set new.b := new.b + 3;
+end|
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' and event_object_table = 't1';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 begin
+set new.a := upper(new.a);
+set new.b := new.b + 3;
+end
+insert into t1 values ('The Lion', 10);
+select * from t1;
+a b
+THE LION 13
+optimize table t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' and event_object_table = 't1';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 begin
+set new.a := upper(new.a);
+set new.b := new.b + 3;
+end
+insert into t1 values ('The Unicorn', 20);
+select * from t1;
+a b
+THE LION 13
+THE UNICORN 23
+alter table t1 add column c int default 0;
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' and event_object_table = 't1';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 begin
+set new.a := upper(new.a);
+set new.b := new.b + 3;
+end
+insert into t1 values ('Alice', 30, 1);
+select * from t1;
+a b c
+THE LION 13 0
+THE UNICORN 23 0
+ALICE 33 1
+alter table t1 rename to t1;
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' and event_object_table = 't1';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 begin
+set new.a := upper(new.a);
+set new.b := new.b + 3;
+end
+insert into t1 values ('The Crown', 40, 1);
+select * from t1;
+a b c
+THE LION 13 0
+THE UNICORN 23 0
+ALICE 33 1
+THE CROWN 43 1
+alter table t1 rename to t1, add column d int default 0;
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' and event_object_table = 't1';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 begin
+set new.a := upper(new.a);
+set new.b := new.b + 3;
+end
+insert into t1 values ('The Pie', 50, 1, 1);
+select * from t1;
+a b c d
+THE LION 13 0 0
+THE UNICORN 23 0 0
+ALICE 33 1 0
+THE CROWN 43 1 0
+THE PIE 53 1 1
+drop table t1;
+
+Bug#26141 mixing table types in trigger causes full
+table lock on innodb table
+
+Ensure we do not open and lock tables for the triggers we do not
+fire.
+
+drop table if exists t1, t2, t3;
+drop trigger if exists trg_bug26141_au;
+drop trigger if exists trg_bug26141_ai;
+create table t1 (c int primary key) engine=innodb;
+create table t2 (c int) engine=myisam;
+create table t3 (c int) engine=myisam;
+insert into t1 (c) values (1);
+create trigger trg_bug26141_ai after insert on t1
+for each row
+begin
+insert into t2 (c) values (1);
+# We need the 'sync' lock to synchronously wait in connection 2 till
+# the moment when the trigger acquired all the locks.
+select release_lock("lock_bug26141_sync") into @a;
+# 1000 is time in seconds of lock wait timeout -- this is a way
+# to cause a manageable sleep up to 1000 seconds
+select get_lock("lock_bug26141_wait", 1000) into @a;
+end|
+create trigger trg_bug26141_au after update on t1
+for each row
+begin
+insert into t3 (c) values (1);
+end|
+select get_lock("lock_bug26141_wait", 0);
+get_lock("lock_bug26141_wait", 0)
+1
+select get_lock("lock_bug26141_sync", /* must not be priorly locked */ 0);
+get_lock("lock_bug26141_sync", /* must not be priorly locked */ 0)
+1
+insert into t1 (c) values (2);
+select get_lock("lock_bug26141_sync", 1000);
+get_lock("lock_bug26141_sync", 1000)
+1
+update t1 set c=3 where c=1;
+select release_lock("lock_bug26141_sync");
+release_lock("lock_bug26141_sync")
+1
+select release_lock("lock_bug26141_wait");
+release_lock("lock_bug26141_wait")
+1
+select * from t1;
+c
+2
+3
+select * from t2;
+c
+1
+select * from t3;
+c
+1
+drop table t1, t2, t3;
+End of 5.0 tests
diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result
new file mode 100644
index 00000000000..a07318435f6
--- /dev/null
+++ b/mysql-test/r/trigger.result
@@ -0,0 +1,1964 @@
+drop table if exists t1, t2, t3, t4;
+drop view if exists v1;
+drop database if exists mysqltest;
+drop function if exists f1;
+drop function if exists f2;
+drop procedure if exists p1;
+create table t1 (i int);
+create trigger trg before insert on t1 for each row set @a:=1;
+set @a:=0;
+select @a;
+@a
+0
+insert into t1 values (1);
+select @a;
+@a
+1
+drop trigger trg;
+create trigger trg before insert on t1 for each row set @a:=new.i;
+insert into t1 values (123);
+select @a;
+@a
+123
+drop trigger trg;
+drop table t1;
+create table t1 (i int not null, j int);
+create trigger trg before insert on t1 for each row
+begin
+if isnull(new.j) then
+set new.j:= new.i * 10;
+end if;
+end|
+insert into t1 (i) values (1)|
+insert into t1 (i,j) values (2, 3)|
+select * from t1|
+i j
+1 10
+2 3
+drop trigger trg|
+drop table t1|
+create table t1 (i int not null primary key);
+create trigger trg after insert on t1 for each row
+set @a:= if(@a,concat(@a, ":", new.i), new.i);
+set @a:="";
+insert into t1 values (2),(3),(4),(5);
+select @a;
+@a
+2:3:4:5
+drop trigger trg;
+drop table t1;
+create table t1 (aid int not null primary key, balance int not null default 0);
+insert into t1 values (1, 1000), (2,3000);
+create trigger trg before update on t1 for each row
+begin
+declare loc_err varchar(255);
+if abs(new.balance - old.balance) > 1000 then
+set new.balance:= old.balance;
+set loc_err := concat("Too big change for aid = ", new.aid);
+set @update_failed:= if(@update_failed, concat(@a, ":", loc_err), loc_err);
+end if;
+end|
+set @update_failed:=""|
+update t1 set balance=1500|
+select @update_failed;
+select * from t1|
+@update_failed
+Too big change for aid = 2
+aid balance
+1 1500
+2 3000
+drop trigger trg|
+drop table t1|
+create table t1 (i int);
+insert into t1 values (1),(2),(3),(4);
+create trigger trg after update on t1 for each row
+set @total_change:=@total_change + new.i - old.i;
+set @total_change:=0;
+update t1 set i=3;
+select @total_change;
+@total_change
+2
+drop trigger trg;
+drop table t1;
+create table t1 (i int);
+insert into t1 values (1),(2),(3),(4);
+create trigger trg before delete on t1 for each row
+set @del_sum:= @del_sum + old.i;
+set @del_sum:= 0;
+delete from t1 where i <= 3;
+select @del_sum;
+@del_sum
+6
+drop trigger trg;
+drop table t1;
+create table t1 (i int);
+insert into t1 values (1),(2),(3),(4);
+create trigger trg after delete on t1 for each row set @del:= 1;
+set @del:= 0;
+delete from t1 where i <> 0;
+select @del;
+@del
+1
+drop trigger trg;
+drop table t1;
+create table t1 (i int, j int);
+create trigger trg1 before insert on t1 for each row
+begin
+if new.j > 10 then
+set new.j := 10;
+end if;
+end|
+create trigger trg2 before update on t1 for each row
+begin
+if old.i % 2 = 0 then
+set new.j := -1;
+end if;
+end|
+create trigger trg3 after update on t1 for each row
+begin
+if new.j = -1 then
+set @fired:= "Yes";
+end if;
+end|
+set @fired:="";
+insert into t1 values (1,2),(2,3),(3,14);
+select @fired;
+@fired
+
+select * from t1;
+i j
+1 2
+2 3
+3 10
+update t1 set j= 20;
+select @fired;
+@fired
+Yes
+select * from t1;
+i j
+1 20
+2 -1
+3 20
+drop trigger trg1;
+drop trigger trg2;
+drop trigger trg3;
+drop table t1;
+create table t1 (id int not null primary key, data int);
+create trigger t1_bi before insert on t1 for each row
+set @log:= concat(@log, "(BEFORE_INSERT: new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_ai after insert on t1 for each row
+set @log:= concat(@log, "(AFTER_INSERT: new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_bu before update on t1 for each row
+set @log:= concat(@log, "(BEFORE_UPDATE: old=(id=", old.id, ", data=", old.data,
+") new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_au after update on t1 for each row
+set @log:= concat(@log, "(AFTER_UPDATE: old=(id=", old.id, ", data=", old.data,
+") new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_bd before delete on t1 for each row
+set @log:= concat(@log, "(BEFORE_DELETE: old=(id=", old.id, ", data=", old.data,"))");
+create trigger t1_ad after delete on t1 for each row
+set @log:= concat(@log, "(AFTER_DELETE: old=(id=", old.id, ", data=", old.data,"))");
+set @log:= "";
+insert into t1 values (1, 1);
+select @log;
+@log
+(BEFORE_INSERT: new=(id=1, data=1))(AFTER_INSERT: new=(id=1, data=1))
+set @log:= "";
+insert ignore t1 values (1, 2);
+select @log;
+@log
+(BEFORE_INSERT: new=(id=1, data=2))
+set @log:= "";
+insert into t1 (id, data) values (1, 3), (2, 2) on duplicate key update data= data + 1;
+select @log;
+@log
+(BEFORE_INSERT: new=(id=1, data=3))(BEFORE_UPDATE: old=(id=1, data=1) new=(id=1, data=2))(AFTER_UPDATE: old=(id=1, data=1) new=(id=1, data=2))(BEFORE_INSERT: new=(id=2, data=2))(AFTER_INSERT: new=(id=2, data=2))
+set @log:= "";
+replace t1 values (1, 4), (3, 3);
+select @log;
+@log
+(BEFORE_INSERT: new=(id=1, data=4))(BEFORE_DELETE: old=(id=1, data=2))(AFTER_DELETE: old=(id=1, data=2))(AFTER_INSERT: new=(id=1, data=4))(BEFORE_INSERT: new=(id=3, data=3))(AFTER_INSERT: new=(id=3, data=3))
+drop trigger t1_bd;
+drop trigger t1_ad;
+set @log:= "";
+replace t1 values (1, 5);
+select @log;
+@log
+(BEFORE_INSERT: new=(id=1, data=5))(AFTER_INSERT: new=(id=1, data=5))
+drop table t1;
+create table t1 (id int primary key, data varchar(10), fk int);
+create table t2 (event varchar(100));
+create table t3 (id int primary key);
+create trigger t1_ai after insert on t1 for each row
+insert into t2 values (concat("INSERT INTO t1 id=", new.id, " data='", new.data, "'"));
+insert into t1 (id, data) values (1, "one"), (2, "two");
+select * from t1;
+id data fk
+1 one NULL
+2 two NULL
+select * from t2;
+event
+INSERT INTO t1 id=1 data='one'
+INSERT INTO t1 id=2 data='two'
+drop trigger t1_ai;
+create trigger t1_bi before insert on t1 for each row
+begin
+if exists (select id from t3 where id=new.fk) then
+insert into t2 values (concat("INSERT INTO t1 id=", new.id, " data='", new.data, "' fk=", new.fk));
+else
+insert into t2 values (concat("INSERT INTO t1 FAILED id=", new.id, " data='", new.data, "' fk=", new.fk));
+set new.id= NULL;
+end if;
+end|
+insert into t3 values (1);
+insert into t1 values (4, "four", 1), (5, "five", 2);
+ERROR 23000: Column 'id' cannot be null
+select * from t1;
+id data fk
+1 one NULL
+2 two NULL
+4 four 1
+select * from t2;
+event
+INSERT INTO t1 id=1 data='one'
+INSERT INTO t1 id=2 data='two'
+INSERT INTO t1 id=4 data='four' fk=1
+INSERT INTO t1 FAILED id=5 data='five' fk=2
+drop table t1, t2, t3;
+create table t1 (id int primary key, data varchar(10));
+create table t2 (seq int);
+insert into t2 values (10);
+create function f1 () returns int return (select max(seq) from t2);
+create trigger t1_bi before insert on t1 for each row
+begin
+if new.id > f1() then
+set new.id:= f1();
+end if;
+end|
+insert into t1 values (1, "first");
+insert into t1 values (f1(), "max");
+select * from t1;
+id data
+1 first
+10 max
+drop table t1, t2;
+drop function f1;
+create table t1 (id int primary key, fk_t2 int);
+create table t2 (id int primary key, fk_t3 int);
+create table t3 (id int primary key);
+insert into t1 values (1,1), (2,1), (3,2);
+insert into t2 values (1,1), (2,2);
+insert into t3 values (1), (2);
+create trigger t3_ad after delete on t3 for each row
+delete from t2 where fk_t3=old.id;
+create trigger t2_ad after delete on t2 for each row
+delete from t1 where fk_t2=old.id;
+delete from t3 where id = 1;
+select * from t1 left join (t2 left join t3 on t2.fk_t3 = t3.id) on t1.fk_t2 = t2.id;
+id fk_t2 id fk_t3 id
+3 2 2 2 2
+drop table t1, t2, t3;
+create table t1 (id int primary key, copy int);
+create table t2 (id int primary key, data int);
+insert into t2 values (1,1), (2,2);
+create trigger t1_bi before insert on t1 for each row
+set new.copy= (select data from t2 where id = new.id);
+create trigger t1_bu before update on t1 for each row
+set new.copy= (select data from t2 where id = new.id);
+insert into t1 values (1,3), (2,4), (3,3);
+update t1 set copy= 1 where id = 2;
+select * from t1;
+id copy
+1 1
+2 2
+3 NULL
+drop table t1, t2;
+create table t1 (i int);
+create table t3 (i int);
+create trigger trg before insert on t1 for each row set @a:= old.i;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg before delete on t1 for each row set @a:= new.i;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg before update on t1 for each row set old.i:=1;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg before delete on t1 for each row set new.i:=1;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg after update on t1 for each row set new.i:=1;
+ERROR HY000: Updating of NEW row is not allowed in after trigger
+create trigger trg before update on t1 for each row set new.j:=1;
+ERROR 42S22: Unknown column 'j' in 'NEW'
+create trigger trg before update on t1 for each row set @a:=old.j;
+ERROR 42S22: Unknown column 'j' in 'OLD'
+create trigger trg before insert on t2 for each row set @a:=1;
+ERROR 42S02: Table 'test.t2' doesn't exist
+create trigger trg before insert on t1 for each row set @a:=1;
+create trigger trg after insert on t1 for each row set @a:=1;
+ERROR HY000: Trigger already exists
+create trigger trg2 before insert on t1 for each row set @a:=1;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+create trigger trg before insert on t3 for each row set @a:=1;
+ERROR HY000: Trigger already exists
+create trigger trg2 before insert on t3 for each row set @a:=1;
+drop trigger trg2;
+drop trigger trg;
+drop trigger trg;
+ERROR HY000: Trigger does not exist
+create view v1 as select * from t1;
+create trigger trg before insert on v1 for each row set @a:=1;
+ERROR HY000: 'test.v1' is not BASE TABLE
+drop view v1;
+drop table t1;
+drop table t3;
+create temporary table t1 (i int);
+create trigger trg before insert on t1 for each row set @a:=1;
+ERROR HY000: Trigger's 't1' is view or temporary table
+drop table t1;
+create table t1 (x1col char);
+create trigger tx1 before insert on t1 for each row set new.x1col = 'x';
+insert into t1 values ('y');
+drop trigger tx1;
+drop table t1;
+create table t1 (i int) engine=myisam;
+insert into t1 values (1), (2);
+create trigger trg1 before delete on t1 for each row set @del_before:= @del_before + old.i;
+create trigger trg2 after delete on t1 for each row set @del_after:= @del_after + old.i;
+set @del_before:=0, @del_after:= 0;
+delete from t1;
+select @del_before, @del_after;
+@del_before @del_after
+3 3
+drop trigger trg1;
+drop trigger trg2;
+drop table t1;
+create table t1 (a int);
+create trigger trg1 before insert on t1 for each row set new.a= 10;
+drop table t1;
+create table t1 (a int);
+insert into t1 values ();
+select * from t1;
+a
+NULL
+drop table t1;
+create database mysqltest;
+use mysqltest;
+create table t1 (i int);
+create trigger trg1 before insert on t1 for each row set @a:= 1;
+drop database mysqltest;
+use test;
+create database mysqltest;
+create table mysqltest.t1 (i int);
+create trigger trg1 before insert on mysqltest.t1 for each row set @a:= 1;
+ERROR HY000: Trigger in wrong schema
+use mysqltest;
+create trigger test.trg1 before insert on t1 for each row set @a:= 1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+drop database mysqltest;
+use test;
+create table t1 (i int, j int default 10, k int not null, key (k));
+create table t2 (i int);
+insert into t1 (i, k) values (1, 1);
+insert into t2 values (1);
+create trigger trg1 before update on t1 for each row set @a:= @a + new.j - old.j;
+create trigger trg2 after update on t1 for each row set @b:= "Fired";
+set @a:= 0, @b:= "";
+update t1, t2 set j = j + 10 where t1.i = t2.i;
+select @a, @b;
+@a @b
+10 Fired
+insert into t1 values (2, 13, 2);
+insert into t2 values (2);
+set @a:= 0, @b:= "";
+update t1, t2 set j = j + 15 where t1.i = t2.i and t1.k >= 2;
+select @a, @b;
+@a @b
+15 Fired
+create trigger trg3 before delete on t1 for each row set @c:= @c + old.j;
+create trigger trg4 before delete on t2 for each row set @d:= @d + old.i;
+create trigger trg5 after delete on t1 for each row set @e:= "After delete t1 fired";
+create trigger trg6 after delete on t2 for each row set @f:= "After delete t2 fired";
+set @c:= 0, @d:= 0, @e:= "", @f:= "";
+delete t1, t2 from t1, t2 where t1.i = t2.i;
+select @c, @d, @e, @f;
+@c @d @e @f
+48 3 After delete t1 fired After delete t2 fired
+drop table t1, t2;
+create table t1 (i int, j int default 10)|
+create table t2 (i int)|
+insert into t2 values (1), (2)|
+create trigger trg1 before insert on t1 for each row
+begin
+if new.i = 1 then
+set new.j := 1;
+end if;
+end|
+create trigger trg2 after insert on t1 for each row set @a:= 1|
+set @a:= 0|
+insert into t1 (i) select * from t2|
+select * from t1|
+i j
+1 1
+2 10
+select @a|
+@a
+1
+drop table t1, t2|
+create table t1 (i int, j int, k int);
+create trigger trg1 before insert on t1 for each row set new.k = new.i;
+create trigger trg2 after insert on t1 for each row set @b:= "Fired";
+set @b:="";
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, i);
+select *, @b from t1;
+i j k @b
+10 NULL 10 Fired
+15 NULL 15 Fired
+set @b:="";
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (i, j);
+select *, @b from t1;
+i j k @b
+10 NULL 10 Fired
+15 NULL 15 Fired
+1 2 1 Fired
+3 4 3 Fired
+5 6 5 Fired
+drop table t1;
+create table t1 (i int, at int, k int, key(k)) engine=myisam;
+create table t2 (i int);
+insert into t1 values (1, 1, 1);
+insert into t2 values (1), (2), (3);
+create trigger ai after insert on t1 for each row set @a:= new.at;
+create trigger au after update on t1 for each row set @a:= new.at;
+create trigger ad after delete on t1 for each row set @a:= old.at;
+alter table t1 drop column at;
+select * from t1;
+i k
+1 1
+insert into t1 values (2, 1);
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+1 1
+2 1
+update t1 set k = 2 where i = 2;
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+delete from t1 where i = 2;
+ERROR 42S22: Unknown column 'at' in 'OLD'
+select * from t1;
+i k
+1 1
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (i, k);
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+1 1
+1 2
+insert into t1 select 3, 3;
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+1 1
+1 2
+3 3
+update t1, t2 set k = k + 10 where t1.i = t2.i;
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+1 11
+1 2
+3 3
+update t1, t2 set k = k + 10 where t1.i = t2.i and k < 3;
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+1 11
+1 12
+3 3
+delete t1, t2 from t1 straight_join t2 where t1.i = t2.i;
+ERROR 42S22: Unknown column 'at' in 'OLD'
+select * from t1;
+i k
+1 12
+3 3
+delete t2, t1 from t2 straight_join t1 where t1.i = t2.i;
+ERROR 42S22: Unknown column 'at' in 'OLD'
+select * from t1;
+i k
+3 3
+alter table t1 add primary key (i);
+insert into t1 values (3, 4) on duplicate key update k= k + 10;
+ERROR 42S22: Unknown column 'at' in 'NEW'
+select * from t1;
+i k
+3 13
+replace into t1 values (3, 3);
+ERROR 42S22: Unknown column 'at' in 'OLD'
+select * from t1;
+i k
+drop table t1, t2;
+create table t1 (i int, bt int, k int, key(k)) engine=myisam;
+create table t2 (i int);
+insert into t1 values (1, 1, 1), (2, 2, 2);
+insert into t2 values (1), (2), (3);
+create trigger bi before insert on t1 for each row set @a:= new.bt;
+create trigger bu before update on t1 for each row set @a:= new.bt;
+create trigger bd before delete on t1 for each row set @a:= old.bt;
+alter table t1 drop column bt;
+insert into t1 values (3, 3);
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+update t1 set i = 2;
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+delete from t1;
+ERROR 42S22: Unknown column 'bt' in 'OLD'
+select * from t1;
+i k
+1 1
+2 2
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (i, k);
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+insert into t1 select 3, 3;
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+update t1, t2 set k = k + 10 where t1.i = t2.i;
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+update t1, t2 set k = k + 10 where t1.i = t2.i and k < 2;
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+delete t1, t2 from t1 straight_join t2 where t1.i = t2.i;
+ERROR 42S22: Unknown column 'bt' in 'OLD'
+select * from t1;
+i k
+1 1
+2 2
+delete t2, t1 from t2 straight_join t1 where t1.i = t2.i;
+ERROR 42S22: Unknown column 'bt' in 'OLD'
+select * from t1;
+i k
+1 1
+2 2
+alter table t1 add primary key (i);
+drop trigger bi;
+insert into t1 values (2, 4) on duplicate key update k= k + 10;
+ERROR 42S22: Unknown column 'bt' in 'NEW'
+select * from t1;
+i k
+1 1
+2 2
+replace into t1 values (2, 4);
+ERROR 42S22: Unknown column 'bt' in 'OLD'
+select * from t1;
+i k
+1 1
+2 2
+drop table t1, t2;
+drop function if exists bug5893;
+create table t1 (col1 int, col2 int);
+insert into t1 values (1, 2);
+create function bug5893 () returns int return 5;
+create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
+drop function bug5893;
+update t1 set col2 = 4;
+ERROR 42000: FUNCTION test.bug5893 does not exist
+drop trigger t1_bu;
+drop table t1;
+set sql_mode='ansi';
+create table t1 ("t1 column" int);
+create trigger t1_bi before insert on t1 for each row set new."t1 column" = 5;
+set sql_mode="";
+insert into t1 values (0);
+create trigger t1_af after insert on t1 for each row set @a=10;
+insert into t1 values (0);
+select * from t1;
+t1 column
+5
+5
+select @a;
+@a
+10
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+t1_bi INSERT t1 set new."t1 column" = 5 BEFORE # REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI root@localhost
+t1_af INSERT t1 set @a=10 AFTER # root@localhost
+drop table t1;
+set sql_mode="traditional";
+create table t1 (a date);
+insert into t1 values ('2004-01-00');
+ERROR 22007: Incorrect date value: '2004-01-00' for column 'a' at row 1
+set sql_mode="";
+create trigger t1_bi before insert on t1 for each row set new.a = '2004-01-00';
+set sql_mode="traditional";
+insert into t1 values ('2004-01-01');
+select * from t1;
+a
+2004-01-00
+set sql_mode=default;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` date default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer
+t1_bi INSERT t1 set new.a = '2004-01-00' BEFORE # root@localhost
+drop table t1;
+create table t1 (id int);
+create trigger t1_ai after insert on t1 for each row reset query cache;
+ERROR 0A000: RESET is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row reset master;
+ERROR 0A000: RESET is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row reset slave;
+ERROR 0A000: RESET is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush hosts;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush tables with read lock;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush logs;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush status;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush slave;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush master;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush des_key_file;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush user_resources;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush tables;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+create trigger t1_ai after insert on t1 for each row flush privileges;
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure if exists p1;
+create trigger t1_ai after insert on t1 for each row call p1();
+create procedure p1() flush tables;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() reset query cache;
+insert into t1 values (0);
+ERROR 0A000: RESET is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() reset master;
+insert into t1 values (0);
+ERROR 0A000: RESET is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() reset slave;
+insert into t1 values (0);
+ERROR 0A000: RESET is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush hosts;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush privileges;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush tables with read lock;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush tables;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush logs;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush status;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush slave;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush master;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush des_key_file;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+create procedure p1() flush user_resources;
+insert into t1 values (0);
+ERROR 0A000: FLUSH is not allowed in stored function or trigger
+drop procedure p1;
+drop table t1;
+create table t1 (id int, data int, username varchar(16));
+insert into t1 (id, data) values (1, 0);
+create trigger t1_whoupdated before update on t1 for each row
+begin
+declare user varchar(32);
+declare i int;
+select user() into user;
+set NEW.username = user;
+select count(*) from ((select 1) union (select 2)) as d1 into i;
+end|
+update t1 set data = 1;
+update t1 set data = 2;
+drop table t1;
+create table t1 (c1 int, c2 datetime);
+create trigger tr1 before insert on t1 for each row
+begin
+set new.c2= '2004-04-01';
+select 'hello';
+end|
+ERROR 0A000: Not allowed to return a result set from a trigger
+insert into t1 (c1) values (1),(2),(3);
+select * from t1;
+c1 c2
+1 NULL
+2 NULL
+3 NULL
+drop procedure if exists bug11587;
+create procedure bug11587(x char(16))
+begin
+select "hello";
+select "hello again";
+end|
+create trigger tr1 before insert on t1 for each row
+begin
+call bug11587();
+set new.c2= '2004-04-02';
+end|
+insert into t1 (c1) values (4),(5),(6);
+ERROR 0A000: Not allowed to return a result set from a trigger
+select * from t1;
+c1 c2
+1 NULL
+2 NULL
+3 NULL
+drop procedure bug11587;
+drop table t1;
+create table t1 (f1 integer);
+create table t2 (f2 integer);
+create trigger t1_ai after insert on t1
+for each row insert into t2 values (new.f1+1);
+create trigger t2_ai after insert on t2
+for each row insert into t1 values (new.f2+1);
+set @SAVE_SP_RECURSION_LEVELS=@@max_sp_recursion_depth;
+set @@max_sp_recursion_depth=100;
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+set @@max_sp_recursion_depth=@SAVE_SP_RECURSION_LEVELS;
+select * from t1;
+f1
+1
+select * from t2;
+f2
+2
+drop trigger t1_ai;
+drop trigger t2_ai;
+create trigger t1_bu before update on t1
+for each row insert into t1 values (2);
+update t1 set f1= 10;
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+1
+drop trigger t1_bu;
+create trigger t1_bu before update on t1
+for each row delete from t1 where f1=new.f1;
+update t1 set f1= 10;
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+1
+drop trigger t1_bu;
+create trigger t1_bi before insert on t1
+for each row set new.f1=(select sum(f1) from t1);
+insert into t1 values (3);
+select * from t1;
+f1
+1
+1
+drop trigger t1_bi;
+drop tables t1, t2;
+create table t1 (id int);
+create table t2 (id int);
+create trigger t1_bi before insert on t1 for each row insert into t2 values (new.id);
+prepare stmt1 from "insert into t1 values (10)";
+create procedure p1() insert into t1 values (10);
+call p1();
+drop trigger t1_bi;
+execute stmt1;
+call p1();
+deallocate prepare stmt1;
+drop procedure p1;
+create table t3 (id int);
+create trigger t1_bi after insert on t1 for each row insert into t2 values (new.id);
+prepare stmt1 from "insert into t1 values (10)";
+create procedure p1() insert into t1 values (10);
+call p1();
+drop trigger t1_bi;
+create trigger t1_bi after insert on t1 for each row insert into t3 values (new.id);
+execute stmt1;
+ERROR 42S02: Table 'test.t3' doesn't exist
+call p1();
+ERROR 42S02: Table 'test.t3' doesn't exist
+deallocate prepare stmt1;
+drop procedure p1;
+drop table t1, t2, t3;
+create table t1 (a int);
+CREATE PROCEDURE `p1`()
+begin
+insert into t1 values (1);
+end//
+create trigger trg before insert on t1 for each row
+begin
+declare done int default 0;
+set done= not done;
+end//
+CALL p1();
+drop procedure p1;
+drop table t1;
+create trigger t1_bi before insert on test.t1 for each row set @a:=0;
+ERROR 3D000: No database selected
+create trigger test.t1_bi before insert on t1 for each row set @a:=0;
+ERROR 42S02: Table 'test.t1' doesn't exist
+drop trigger t1_bi;
+ERROR 3D000: No database selected
+create table t1 (id int);
+create trigger t1_bi before insert on t1 for each row set @a:=new.id;
+create trigger t1_ai after insert on test.t1 for each row set @b:=new.id;
+insert into t1 values (101);
+select @a, @b;
+@a @b
+101 101
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 set @a:=new.id
+test t1_ai test t1 set @b:=new.id
+rename table t1 to t2;
+insert into t2 values (102);
+select @a, @b;
+@a @b
+102 102
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t2 set @a:=new.id
+test t1_ai test t2 set @b:=new.id
+alter table t2 rename to t3;
+insert into t3 values (103);
+select @a, @b;
+@a @b
+103 103
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t3 set @a:=new.id
+test t1_ai test t3 set @b:=new.id
+alter table t3 rename to t4, add column val int default 0;
+insert into t4 values (104, 1);
+select @a, @b;
+@a @b
+104 104
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t4 set @a:=new.id
+test t1_ai test t4 set @b:=new.id
+drop trigger t1_bi;
+drop trigger t1_ai;
+drop table t4;
+create database mysqltest;
+use mysqltest;
+create table t1 (id int);
+create trigger t1_bi before insert on t1 for each row set @a:=new.id;
+insert into t1 values (101);
+select @a;
+@a
+101
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+mysqltest t1_bi mysqltest t1 set @a:=new.id
+rename table t1 to test.t2;
+ERROR HY000: Trigger in wrong schema
+insert into t1 values (102);
+select @a;
+@a
+102
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+mysqltest t1_bi mysqltest t1 set @a:=new.id
+drop trigger test.t1_bi;
+ERROR HY000: Trigger does not exist
+alter table t1 rename to test.t1;
+ERROR HY000: Trigger in wrong schema
+insert into t1 values (103);
+select @a;
+@a
+103
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+mysqltest t1_bi mysqltest t1 set @a:=new.id
+drop trigger test.t1_bi;
+ERROR HY000: Trigger does not exist
+alter table t1 rename to test.t1, add column val int default 0;
+ERROR HY000: Trigger in wrong schema
+insert into t1 values (104);
+select @a;
+@a
+104
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+mysqltest t1_bi mysqltest t1 set @a:=new.id
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop trigger test.t1_bi;
+ERROR HY000: Trigger does not exist
+drop trigger t1_bi;
+drop table t1;
+drop database mysqltest;
+use test;
+create table t1 (id int);
+create trigger t1_bi before insert on t1 for each row set @a:=new.id;
+create trigger t1_ai after insert on t1 for each row set @b:=new.id;
+insert into t1 values (101);
+select @a, @b;
+@a @b
+101 101
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 set @a:=new.id
+test t1_ai test t1 set @b:=new.id
+rename table t1 to t2;
+ERROR HY000: Can't create/write to file './test/t1_ai.TRN~' (Errcode: 13)
+insert into t1 values (102);
+select @a, @b;
+@a @b
+102 102
+select trigger_schema, trigger_name, event_object_schema,
+event_object_table, action_statement from information_schema.triggers
+where event_object_schema = 'test';
+trigger_schema trigger_name event_object_schema event_object_table action_statement
+test t1_bi test t1 set @a:=new.id
+test t1_ai test t1 set @b:=new.id
+drop trigger t1_bi;
+drop trigger t1_ai;
+drop table t1;
+create table t1 (i int);
+create trigger t1_bi before insert on t1 for each row return 0;
+ERROR 42000: RETURN is only allowed in a FUNCTION
+insert into t1 values (1);
+drop table t1;
+create table t1 (a varchar(64), b int);
+create table t2 like t1;
+create trigger t1_ai after insert on t1 for each row
+set @a:= (select max(a) from t1);
+insert into t1 (a) values
+("Twas"),("brillig"),("and"),("the"),("slithy"),("toves"),
+("Did"),("gyre"),("and"),("gimble"),("in"),("the"),("wabe");
+create trigger t2_ai after insert on t2 for each row
+set @a:= (select max(a) from t2);
+insert into t2 select * from t1;
+load data infile '../std_data_ln/words.dat' into table t1 (a);
+drop trigger t1_ai;
+drop trigger t2_ai;
+create function f1() returns int return (select max(b) from t1);
+insert into t1 values
+("All",f1()),("mimsy",f1()),("were",f1()),("the",f1()),("borogoves",f1()),
+("And",f1()),("the",f1()),("mome", f1()),("raths",f1()),("outgrabe",f1());
+create function f2() returns int return (select max(b) from t2);
+insert into t2 select a, f2() from t1;
+load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1();
+drop table t1, t2;
+drop function f1;
+drop function f2;
+create table t1(i int not null, j int not null, n numeric(15,2), primary key(i,j));
+create table t2(i int not null, n numeric(15,2), primary key(i));
+create trigger t1_ai after insert on t1 for each row
+begin
+declare sn numeric(15,2);
+select sum(n) into sn from t1 where i=new.i;
+replace into t2 values(new.i, sn);
+end|
+insert into t1 values
+(1,1,10.00),(1,2,10.00),(1,3,10.00),(1,4,10.00),(1,5,10.00),
+(1,6,10.00),(1,7,10.00),(1,8,10.00),(1,9,10.00),(1,10,10.00),
+(1,11,10.00),(1,12,10.00),(1,13,10.00),(1,14,10.00),(1,15,10.00);
+select * from t1;
+i j n
+1 1 10.00
+1 2 10.00
+1 3 10.00
+1 4 10.00
+1 5 10.00
+1 6 10.00
+1 7 10.00
+1 8 10.00
+1 9 10.00
+1 10 10.00
+1 11 10.00
+1 12 10.00
+1 13 10.00
+1 14 10.00
+1 15 10.00
+select * from t2;
+i n
+1 150.00
+drop tables t1, t2;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+conn_id INT,
+trigger_conn_id INT
+);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+SET NEW.trigger_conn_id = CONNECTION_ID();
+INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1);
+INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1);
+SELECT * FROM t1 WHERE conn_id != trigger_conn_id;
+conn_id trigger_conn_id
+DROP TRIGGER t1_bi;
+DROP TABLE t1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (i1 INT);
+SET @save_sql_mode=@@sql_mode;
+SET SQL_MODE='';
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+SET @x = 5/0;
+SET SQL_MODE='traditional';
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+SET @x = 5/0;
+SET @x=1;
+INSERT INTO t1 VALUES (@x);
+SELECT @x;
+@x
+NULL
+SET @x=2;
+UPDATE t1 SET i1 = @x;
+Warnings:
+Error 1365 Division by 0
+SELECT @x;
+@x
+NULL
+SET SQL_MODE='';
+SET @x=3;
+INSERT INTO t1 VALUES (@x);
+SELECT @x;
+@x
+NULL
+SET @x=4;
+UPDATE t1 SET i1 = @x;
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+SELECT @x;
+@x
+NULL
+SET @@sql_mode=@save_sql_mode;
+DROP TRIGGER t1_ai;
+DROP TRIGGER t1_au;
+DROP TABLE t1;
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+CREATE TABLE t1 (i1 INT);
+INSERT INTO t1 VALUES (3);
+CREATE PROCEDURE p1(OUT i1 INT) DETERMINISTIC NO SQL SET i1 = 5;
+CREATE PROCEDURE p2(INOUT i1 INT) DETERMINISTIC NO SQL SET i1 = i1 * 7;
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+CALL p1(NEW.i1);
+CALL p2(NEW.i1);
+END//
+UPDATE t1 SET i1 = 11 WHERE i1 = 3;
+DROP TRIGGER t1_bu;
+DROP PROCEDURE p2;
+DROP PROCEDURE p1;
+INSERT INTO t1 VALUES (13);
+CREATE PROCEDURE p1(OUT i1 INT) DETERMINISTIC NO SQL SET @a = 17;
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+CALL p1(OLD.i1);
+UPDATE t1 SET i1 = 19 WHERE i1 = 13;
+ERROR 42000: OUT or INOUT argument 1 for routine test.p1 is not a variable or NEW pseudo-variable in BEFORE trigger
+DROP TRIGGER t1_bu;
+DROP PROCEDURE p1;
+INSERT INTO t1 VALUES (23);
+CREATE PROCEDURE p1(INOUT i1 INT) DETERMINISTIC NO SQL SET @a = i1 * 29;
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+CALL p1(OLD.i1);
+UPDATE t1 SET i1 = 31 WHERE i1 = 23;
+ERROR 42000: OUT or INOUT argument 1 for routine test.p1 is not a variable or NEW pseudo-variable in BEFORE trigger
+DROP TRIGGER t1_bu;
+DROP PROCEDURE p1;
+INSERT INTO t1 VALUES (37);
+CREATE PROCEDURE p1(OUT i1 INT) DETERMINISTIC NO SQL SET @a = 41;
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+UPDATE t1 SET i1 = 43 WHERE i1 = 37;
+ERROR 42000: OUT or INOUT argument 1 for routine test.p1 is not a variable or NEW pseudo-variable in BEFORE trigger
+DROP TRIGGER t1_au;
+DROP PROCEDURE p1;
+INSERT INTO t1 VALUES (47);
+CREATE PROCEDURE p1(INOUT i1 INT) DETERMINISTIC NO SQL SET @a = i1 * 49;
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+CALL p1(NEW.i1);
+UPDATE t1 SET i1 = 51 WHERE i1 = 47;
+ERROR 42000: OUT or INOUT argument 1 for routine test.p1 is not a variable or NEW pseudo-variable in BEFORE trigger
+DROP TRIGGER t1_au;
+DROP PROCEDURE p1;
+SELECT * FROM t1;
+i1
+35
+13
+23
+43
+51
+DROP TABLE t1;
+create trigger wont_work after update on mysql.user for each row
+begin
+set @a:= 1;
+end|
+ERROR HY000: Triggers can not be created on system tables
+use mysql|
+create trigger wont_work after update on event for each row
+begin
+set @a:= 1;
+end|
+ERROR HY000: Triggers can not be created on system tables
+use test|
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t1(c INT);
+CREATE TABLE t2(c INT);
+CREATE DEFINER=1234567890abcdefGHIKL@localhost
+TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW SET @a = 2;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+DROP TABLE t1;
+DROP TABLE t2;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+SET @save_sql_mode=@@sql_mode;
+SET sql_mode='TRADITIONAL'|
+create table t1 (id int(10) not null primary key, v int(10) )|
+create table t2 (id int(10) not null primary key, v int(10) )|
+create table t3 (id int(10) not null primary key, v int(10) )|
+create table t4 (c int)|
+create trigger t4_bi before insert on t4 for each row set @t4_bi_called:=1|
+create trigger t4_bu before update on t4 for each row set @t4_bu_called:=1|
+insert into t1 values(10, 10)|
+set @a:=1/0|
+Warnings:
+Error 1365 Division by 0
+select 1/0 from t1|
+1/0
+NULL
+Warnings:
+Error 1365 Division by 0
+create trigger t1_bi before insert on t1 for each row set @a:=1/0|
+insert into t1 values(20, 20)|
+Warnings:
+Error 1365 Division by 0
+drop trigger t1_bi|
+create trigger t1_bi before insert on t1 for each row
+begin
+insert into t2 values (new.id, new.v);
+update t2 set v=v+1 where id= new.id;
+replace t3 values (new.id, 0);
+update t2, t3 set t2.v=new.v, t3.v=new.v where t2.id=t3.id;
+create temporary table t5 select * from t1;
+delete from t5;
+insert into t5 select * from t1;
+insert into t4 values (0);
+set @check= (select count(*) from t5);
+update t4 set c= @check;
+drop temporary table t5;
+set @a:=1/0;
+end|
+set @check=0, @t4_bi_called=0, @t4_bu_called=0|
+insert into t1 values(30, 30)|
+Warnings:
+Error 1365 Division by 0
+select @check, @t4_bi_called, @t4_bu_called|
+@check @t4_bi_called @t4_bu_called
+2 1 1
+SET @@sql_mode=@save_sql_mode;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+drop table if exists t1;
+create table t1 (i int, j int key);
+insert into t1 values (1,1), (2,2), (3,3);
+create trigger t1_bu before update on t1 for each row
+set new.j = new.j + 10;
+update t1 set i= i+ 10 where j > 2;
+select * from t1;
+i j
+1 1
+2 2
+13 13
+drop table t1;
+CREATE TABLE t1 (a INT PRIMARY KEY);
+CREATE TABLE t2 (a INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+CREATE TRIGGER trg_t1 BEFORE DELETE on t1 FOR EACH ROW
+INSERT INTO t2 VALUES (OLD.a);
+FLUSH STATUS;
+TRUNCATE t1;
+SHOW STATUS LIKE 'handler_delete';
+Variable_name Value
+Handler_delete 0
+SELECT COUNT(*) FROM t2;
+COUNT(*)
+0
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+DELETE FROM t2;
+FLUSH STATUS;
+DELETE FROM t1;
+SHOW STATUS LIKE 'handler_delete';
+Variable_name Value
+Handler_delete 8
+SELECT COUNT(*) FROM t2;
+COUNT(*)
+8
+DROP TRIGGER trg_t1;
+DROP TABLE t1,t2;
+drop table if exists t1;
+drop function if exists f1;
+create table t1 (i int);
+create function f1() returns int return 10;
+create trigger t1_bi before insert on t1 for each row set @a:= f1() + 10;
+insert into t1 values ();
+select @a;
+@a
+20
+insert into t1 values ();
+select @a;
+@a
+20
+drop table t1;
+drop function f1;
+drop table if exists t1;
+create table t1(a int, b varchar(50));
+drop trigger not_a_trigger;
+ERROR HY000: Trigger does not exist
+drop trigger if exists not_a_trigger;
+Warnings:
+Note 1360 Trigger does not exist
+create trigger t1_bi before insert on t1
+for each row set NEW.b := "In trigger t1_bi";
+insert into t1 values (1, "a");
+drop trigger if exists t1_bi;
+insert into t1 values (2, "b");
+drop trigger if exists t1_bi;
+Warnings:
+Note 1360 Trigger does not exist
+insert into t1 values (3, "c");
+select * from t1;
+a b
+1 In trigger t1_bi
+2 b
+3 c
+drop table t1;
+CREATE TABLE t1 (
+id int NOT NULL DEFAULT '0',
+a varchar(10) NOT NULL,
+b varchar(10),
+c varchar(10),
+d timestamp NOT NULL,
+PRIMARY KEY (id, a)
+);
+CREATE TABLE t2 (
+fubar_id int unsigned NOT NULL DEFAULT '0',
+last_change_time datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+PRIMARY KEY (fubar_id)
+);
+CREATE TRIGGER fubar_change
+AFTER UPDATE ON t1
+FOR EACH ROW
+BEGIN
+INSERT INTO t2 (fubar_id, last_change_time)
+SELECT DISTINCT NEW.id AS fubar_id, NOW() AS last_change_time
+FROM t1 WHERE (id = NEW.id) AND (OLD.c != NEW.c)
+ON DUPLICATE KEY UPDATE
+last_change_time =
+IF((fubar_id = NEW.id)AND(OLD.c != NEW.c),NOW(),last_change_time);
+END
+|
+INSERT INTO t1 (id,a, b,c,d) VALUES
+(1,'a','b','c',now()),(2,'a','b','c',now());
+UPDATE t1 SET c='Bang!' WHERE id=1;
+SELECT fubar_id FROM t2;
+fubar_id
+1
+DROP TABLE t1,t2;
+DROP TABLE IF EXISTS bug21825_A;
+DROP TABLE IF EXISTS bug21825_B;
+CREATE TABLE bug21825_A (id int(10));
+CREATE TABLE bug21825_B (id int(10));
+CREATE TRIGGER trgA AFTER INSERT ON bug21825_A
+FOR EACH ROW
+BEGIN
+INSERT INTO bug21825_B (id) values (1);
+END//
+INSERT INTO bug21825_A (id) VALUES (10);
+INSERT INTO bug21825_A (id) VALUES (20);
+DROP TABLE bug21825_B;
+DELETE FROM bug21825_A WHERE id = 20;
+DROP TABLE bug21825_A;
+DROP TABLE IF EXISTS bug22580_t1;
+DROP PROCEDURE IF EXISTS bug22580_proc_1;
+DROP PROCEDURE IF EXISTS bug22580_proc_2;
+CREATE TABLE bug22580_t1 (a INT, b INT);
+CREATE PROCEDURE bug22580_proc_2()
+BEGIN
+DROP TABLE IF EXISTS bug22580_tmp;
+CREATE TEMPORARY TABLE bug22580_tmp (a INT);
+DROP TABLE bug22580_tmp;
+END||
+CREATE PROCEDURE bug22580_proc_1()
+BEGIN
+CALL bug22580_proc_2();
+END||
+CREATE TRIGGER t1bu BEFORE UPDATE ON bug22580_t1
+FOR EACH ROW
+BEGIN
+CALL bug22580_proc_1();
+END||
+INSERT INTO bug22580_t1 VALUES (1,1);
+DROP TABLE bug22580_t1;
+DROP PROCEDURE bug22580_proc_1;
+DROP PROCEDURE bug22580_proc_2;
+DROP TRIGGER IF EXISTS trg27006_a_update;
+DROP TRIGGER IF EXISTS trg27006_a_insert;
+CREATE TABLE t1 (
+`id` int(10) unsigned NOT NULL auto_increment,
+`val` varchar(10) NOT NULL,
+PRIMARY KEY (`id`)
+);
+CREATE TABLE t2 like t1;
+CREATE TRIGGER trg27006_a_insert AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+insert into t2 values (NULL,new.val);
+END |
+CREATE TRIGGER trg27006_a_update AFTER UPDATE ON t1 FOR EACH ROW
+BEGIN
+insert into t2 values (NULL,new.val);
+END |
+INSERT INTO t1(val) VALUES ('test1'),('test2');
+SELECT * FROM t1;
+id val
+1 test1
+2 test2
+SELECT * FROM t2;
+id val
+1 test1
+2 test2
+INSERT INTO t1 VALUES (2,'test2') ON DUPLICATE KEY UPDATE val=VALUES(val);
+INSERT INTO t1 VALUES (2,'test3') ON DUPLICATE KEY UPDATE val=VALUES(val);
+INSERT INTO t1 VALUES (3,'test4') ON DUPLICATE KEY UPDATE val=VALUES(val);
+SELECT * FROM t1;
+id val
+1 test1
+2 test3
+3 test4
+SELECT * FROM t2;
+id val
+1 test1
+2 test2
+3 test3
+4 test4
+DROP TRIGGER trg27006_a_insert;
+DROP TRIGGER trg27006_a_update;
+drop table t1,t2;
+drop table if exists t1, t2, t3;
+create table t1 (i int);
+create trigger t1_bi before insert on t1 for each row set new.i = 7;
+create trigger t1_ai after insert on t1 for each row set @a := 7;
+create table t2 (j int);
+insert into t2 values (1), (2);
+set @a:="";
+create table if not exists t1 select * from t2;
+Warnings:
+Note 1050 Table 't1' already exists
+select * from t1;
+i
+7
+7
+select @a;
+@a
+7
+drop trigger t1_bi;
+drop trigger t1_ai;
+create table t3 (isave int);
+create trigger t1_bi before insert on t1 for each row insert into t3 values (new.i);
+create table if not exists t1 select * from t2;
+Warnings:
+Note 1050 Table 't1' already exists
+select * from t1;
+i
+7
+7
+1
+2
+select * from t3;
+isave
+1
+2
+drop table t1, t2, t3;
+CREATE TABLE t1 (id INTEGER);
+CREATE TABLE t2 (id INTEGER);
+INSERT INTO t2 VALUES (1),(2);
+CREATE TRIGGER t1_test AFTER INSERT ON t1 FOR EACH ROW
+INSERT INTO t2 VALUES (new.id);
+SELECT GET_LOCK('B26162',120);
+GET_LOCK('B26162',120)
+1
+SELECT 'rl_acquirer', GET_LOCK('B26162',120), id FROM t2 WHERE id = 1;
+SET SESSION LOW_PRIORITY_UPDATES=1;
+SET GLOBAL LOW_PRIORITY_UPDATES=1;
+INSERT INTO t1 VALUES (5);
+SELECT 'rl_contender', id FROM t2 WHERE id > 1;
+SELECT RELEASE_LOCK('B26162');
+RELEASE_LOCK('B26162')
+1
+rl_acquirer GET_LOCK('B26162',120) id
+rl_acquirer 1 1
+SELECT RELEASE_LOCK('B26162');
+RELEASE_LOCK('B26162')
+1
+rl_contender id
+rl_contender 2
+DROP TRIGGER t1_test;
+DROP TABLE t1,t2;
+SET SESSION LOW_PRIORITY_UPDATES=DEFAULT;
+SET GLOBAL LOW_PRIORITY_UPDATES=DEFAULT;
+
+Bug#28502 Triggers that update another innodb table will block
+on X lock unnecessarily
+
+Ensure we do not open and lock tables for triggers we do not fire.
+
+drop table if exists t1, t2;
+drop trigger if exists trg_bug28502_au;
+create table t1 (id int, count int);
+create table t2 (id int);
+create trigger trg_bug28502_au before update on t2
+for each row
+begin
+if (new.id is not null) then
+update t1 set count= count + 1 where id = old.id;
+end if;
+end|
+insert into t1 (id, count) values (1, 0);
+lock table t1 write;
+insert into t2 set id=1;
+unlock tables;
+update t2 set id=1 where id=1;
+select * from t1;
+id count
+1 1
+select * from t2;
+id
+1
+drop table t1, t2;
+
+Additionally, provide test coverage for triggers and
+all MySQL data changing commands.
+
+drop table if exists t1, t2, t1_op_log;
+drop view if exists v1;
+drop trigger if exists trg_bug28502_bi;
+drop trigger if exists trg_bug28502_ai;
+drop trigger if exists trg_bug28502_bu;
+drop trigger if exists trg_bug28502_au;
+drop trigger if exists trg_bug28502_bd;
+drop trigger if exists trg_bug28502_ad;
+create table t1 (id int primary key auto_increment, operation varchar(255));
+create table t2 (id int primary key);
+create table t1_op_log(operation varchar(255));
+create view v1 as select * from t1;
+create trigger trg_bug28502_bi before insert on t1
+for each row
+insert into t1_op_log (operation)
+values (concat("Before INSERT, new=", new.operation));
+create trigger trg_bug28502_ai after insert on t1
+for each row
+insert into t1_op_log (operation)
+values (concat("After INSERT, new=", new.operation));
+create trigger trg_bug28502_bu before update on t1
+for each row
+insert into t1_op_log (operation)
+values (concat("Before UPDATE, new=", new.operation,
+", old=", old.operation));
+create trigger trg_bug28502_au after update on t1
+for each row
+insert into t1_op_log (operation)
+values (concat("After UPDATE, new=", new.operation,
+", old=", old.operation));
+create trigger trg_bug28502_bd before delete on t1
+for each row
+insert into t1_op_log (operation)
+values (concat("Before DELETE, old=", old.operation));
+create trigger trg_bug28502_ad after delete on t1
+for each row
+insert into t1_op_log (operation)
+values (concat("After DELETE, old=", old.operation));
+insert into t1 (operation) values ("INSERT");
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 INSERT
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT
+After INSERT, new=INSERT
+truncate t1_op_log;
+update t1 set operation="UPDATE" where id=@id;
+select * from t1;
+id operation
+1 UPDATE
+select * from t1_op_log;
+operation
+Before UPDATE, new=UPDATE, old=INSERT
+After UPDATE, new=UPDATE, old=INSERT
+truncate t1_op_log;
+delete from t1 where id=@id;
+select * from t1;
+id operation
+select * from t1_op_log;
+operation
+Before DELETE, old=UPDATE
+After DELETE, old=UPDATE
+truncate t1;
+truncate t1_op_log;
+insert into t1 (id, operation) values
+(NULL, "INSERT ON DUPLICATE KEY UPDATE, inserting a new key")
+on duplicate key update id=NULL, operation="Should never happen";
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+After INSERT, new=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+truncate t1_op_log;
+insert into t1 (id, operation) values
+(@id, "INSERT ON DUPLICATE KEY UPDATE, the key value is the same")
+on duplicate key update id=NULL,
+operation="INSERT ON DUPLICATE KEY UPDATE, updating the duplicate";
+select * from t1;
+id operation
+0 INSERT ON DUPLICATE KEY UPDATE, updating the duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ON DUPLICATE KEY UPDATE, the key value is the same
+Before UPDATE, new=INSERT ON DUPLICATE KEY UPDATE, updating the duplicate, old=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+After UPDATE, new=INSERT ON DUPLICATE KEY UPDATE, updating the duplicate, old=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+truncate t1;
+truncate t1_op_log;
+replace into t1 values (NULL, "REPLACE, inserting a new key");
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 REPLACE, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE, inserting a new key
+After INSERT, new=REPLACE, inserting a new key
+truncate t1_op_log;
+replace into t1 values (@id, "REPLACE, deleting the duplicate");
+select * from t1;
+id operation
+1 REPLACE, deleting the duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE, deleting the duplicate
+Before DELETE, old=REPLACE, inserting a new key
+After DELETE, old=REPLACE, inserting a new key
+After INSERT, new=REPLACE, deleting the duplicate
+truncate t1;
+truncate t1_op_log;
+create table if not exists t1
+select NULL, "CREATE TABLE ... SELECT, inserting a new key";
+Warnings:
+Note 1050 Table 't1' already exists
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 CREATE TABLE ... SELECT, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=CREATE TABLE ... SELECT, inserting a new key
+After INSERT, new=CREATE TABLE ... SELECT, inserting a new key
+truncate t1_op_log;
+create table if not exists t1 replace
+select @id, "CREATE TABLE ... REPLACE SELECT, deleting a duplicate key";
+Warnings:
+Note 1050 Table 't1' already exists
+select * from t1;
+id operation
+1 CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
+select * from t1_op_log;
+operation
+Before INSERT, new=CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
+Before DELETE, old=CREATE TABLE ... SELECT, inserting a new key
+After DELETE, old=CREATE TABLE ... SELECT, inserting a new key
+After INSERT, new=CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
+truncate t1;
+truncate t1_op_log;
+insert into t1 (id, operation)
+select NULL, "INSERT ... SELECT, inserting a new key";
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 INSERT ... SELECT, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ... SELECT, inserting a new key
+After INSERT, new=INSERT ... SELECT, inserting a new key
+truncate t1_op_log;
+insert into t1 (id, operation)
+select @id,
+"INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate"
+on duplicate key update id=NULL,
+operation="INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate";
+select * from t1;
+id operation
+0 INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate
+Before UPDATE, new=INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate, old=INSERT ... SELECT, inserting a new key
+After UPDATE, new=INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate, old=INSERT ... SELECT, inserting a new key
+truncate t1;
+truncate t1_op_log;
+replace into t1 (id, operation)
+select NULL, "REPLACE ... SELECT, inserting a new key";
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 REPLACE ... SELECT, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE ... SELECT, inserting a new key
+After INSERT, new=REPLACE ... SELECT, inserting a new key
+truncate t1_op_log;
+replace into t1 (id, operation)
+select @id, "REPLACE ... SELECT, deleting a duplicate";
+select * from t1;
+id operation
+1 REPLACE ... SELECT, deleting a duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE ... SELECT, deleting a duplicate
+Before DELETE, old=REPLACE ... SELECT, inserting a new key
+After DELETE, old=REPLACE ... SELECT, inserting a new key
+After INSERT, new=REPLACE ... SELECT, deleting a duplicate
+truncate t1;
+truncate t1_op_log;
+insert into t1 (id, operation) values (1, "INSERT for multi-DELETE");
+insert into t2 (id) values (1);
+delete t1.*, t2.* from t1, t2 where t1.id=1;
+select * from t1;
+id operation
+select * from t2;
+id
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT for multi-DELETE
+After INSERT, new=INSERT for multi-DELETE
+Before DELETE, old=INSERT for multi-DELETE
+After DELETE, old=INSERT for multi-DELETE
+truncate t1;
+truncate t2;
+truncate t1_op_log;
+insert into t1 (id, operation) values (1, "INSERT for multi-UPDATE");
+insert into t2 (id) values (1);
+update t1, t2 set t1.id=2, operation="multi-UPDATE" where t1.id=1;
+update t1, t2
+set t2.id=3, operation="multi-UPDATE, SET for t2, but the trigger is fired" where t1.id=2;
+select * from t1;
+id operation
+2 multi-UPDATE, SET for t2, but the trigger is fired
+select * from t2;
+id
+3
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT for multi-UPDATE
+After INSERT, new=INSERT for multi-UPDATE
+Before UPDATE, new=multi-UPDATE, old=INSERT for multi-UPDATE
+After UPDATE, new=multi-UPDATE, old=INSERT for multi-UPDATE
+Before UPDATE, new=multi-UPDATE, SET for t2, but the trigger is fired, old=multi-UPDATE
+After UPDATE, new=multi-UPDATE, SET for t2, but the trigger is fired, old=multi-UPDATE
+truncate table t1;
+truncate table t2;
+truncate table t1_op_log;
+
+Now do the same but use a view instead of the base table.
+
+insert into v1 (operation) values ("INSERT");
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 INSERT
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT
+After INSERT, new=INSERT
+truncate t1_op_log;
+update v1 set operation="UPDATE" where id=@id;
+select * from t1;
+id operation
+1 UPDATE
+select * from t1_op_log;
+operation
+Before UPDATE, new=UPDATE, old=INSERT
+After UPDATE, new=UPDATE, old=INSERT
+truncate t1_op_log;
+delete from v1 where id=@id;
+select * from t1;
+id operation
+select * from t1_op_log;
+operation
+Before DELETE, old=UPDATE
+After DELETE, old=UPDATE
+truncate t1;
+truncate t1_op_log;
+insert into v1 (id, operation) values
+(NULL, "INSERT ON DUPLICATE KEY UPDATE, inserting a new key")
+on duplicate key update id=NULL, operation="Should never happen";
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+After INSERT, new=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+truncate t1_op_log;
+insert into v1 (id, operation) values
+(@id, "INSERT ON DUPLICATE KEY UPDATE, the key value is the same")
+on duplicate key update id=NULL,
+operation="INSERT ON DUPLICATE KEY UPDATE, updating the duplicate";
+select * from t1;
+id operation
+0 INSERT ON DUPLICATE KEY UPDATE, updating the duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ON DUPLICATE KEY UPDATE, the key value is the same
+Before UPDATE, new=INSERT ON DUPLICATE KEY UPDATE, updating the duplicate, old=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+After UPDATE, new=INSERT ON DUPLICATE KEY UPDATE, updating the duplicate, old=INSERT ON DUPLICATE KEY UPDATE, inserting a new key
+truncate t1;
+truncate t1_op_log;
+replace into v1 values (NULL, "REPLACE, inserting a new key");
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 REPLACE, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE, inserting a new key
+After INSERT, new=REPLACE, inserting a new key
+truncate t1_op_log;
+replace into v1 values (@id, "REPLACE, deleting the duplicate");
+select * from t1;
+id operation
+1 REPLACE, deleting the duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE, deleting the duplicate
+Before DELETE, old=REPLACE, inserting a new key
+After DELETE, old=REPLACE, inserting a new key
+After INSERT, new=REPLACE, deleting the duplicate
+truncate t1;
+truncate t1_op_log;
+create table if not exists v1
+select NULL, "CREATE TABLE ... SELECT, inserting a new key";
+Warnings:
+Note 1050 Table 'v1' already exists
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 CREATE TABLE ... SELECT, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=CREATE TABLE ... SELECT, inserting a new key
+After INSERT, new=CREATE TABLE ... SELECT, inserting a new key
+truncate t1_op_log;
+create table if not exists v1 replace
+select @id, "CREATE TABLE ... REPLACE SELECT, deleting a duplicate key";
+Warnings:
+Note 1050 Table 'v1' already exists
+select * from t1;
+id operation
+1 CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
+select * from t1_op_log;
+operation
+Before INSERT, new=CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
+Before DELETE, old=CREATE TABLE ... SELECT, inserting a new key
+After DELETE, old=CREATE TABLE ... SELECT, inserting a new key
+After INSERT, new=CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
+truncate t1;
+truncate t1_op_log;
+insert into v1 (id, operation)
+select NULL, "INSERT ... SELECT, inserting a new key";
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 INSERT ... SELECT, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ... SELECT, inserting a new key
+After INSERT, new=INSERT ... SELECT, inserting a new key
+truncate t1_op_log;
+insert into v1 (id, operation)
+select @id,
+"INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate"
+on duplicate key update id=NULL,
+operation="INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate";
+select * from t1;
+id operation
+0 INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate
+Before UPDATE, new=INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate, old=INSERT ... SELECT, inserting a new key
+After UPDATE, new=INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate, old=INSERT ... SELECT, inserting a new key
+truncate t1;
+truncate t1_op_log;
+replace into v1 (id, operation)
+select NULL, "REPLACE ... SELECT, inserting a new key";
+set @id=last_insert_id();
+select * from t1;
+id operation
+1 REPLACE ... SELECT, inserting a new key
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE ... SELECT, inserting a new key
+After INSERT, new=REPLACE ... SELECT, inserting a new key
+truncate t1_op_log;
+replace into v1 (id, operation)
+select @id, "REPLACE ... SELECT, deleting a duplicate";
+select * from t1;
+id operation
+1 REPLACE ... SELECT, deleting a duplicate
+select * from t1_op_log;
+operation
+Before INSERT, new=REPLACE ... SELECT, deleting a duplicate
+Before DELETE, old=REPLACE ... SELECT, inserting a new key
+After DELETE, old=REPLACE ... SELECT, inserting a new key
+After INSERT, new=REPLACE ... SELECT, deleting a duplicate
+truncate t1;
+truncate t1_op_log;
+insert into v1 (id, operation) values (1, "INSERT for multi-DELETE");
+insert into t2 (id) values (1);
+delete v1.*, t2.* from v1, t2 where v1.id=1;
+select * from t1;
+id operation
+select * from t2;
+id
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT for multi-DELETE
+After INSERT, new=INSERT for multi-DELETE
+Before DELETE, old=INSERT for multi-DELETE
+After DELETE, old=INSERT for multi-DELETE
+truncate t1;
+truncate t2;
+truncate t1_op_log;
+insert into v1 (id, operation) values (1, "INSERT for multi-UPDATE");
+insert into t2 (id) values (1);
+update v1, t2 set v1.id=2, operation="multi-UPDATE" where v1.id=1;
+update v1, t2
+set t2.id=3, operation="multi-UPDATE, SET for t2, but the trigger is fired" where v1.id=2;
+select * from t1;
+id operation
+2 multi-UPDATE, SET for t2, but the trigger is fired
+select * from t2;
+id
+3
+select * from t1_op_log;
+operation
+Before INSERT, new=INSERT for multi-UPDATE
+After INSERT, new=INSERT for multi-UPDATE
+Before UPDATE, new=multi-UPDATE, old=INSERT for multi-UPDATE
+After UPDATE, new=multi-UPDATE, old=INSERT for multi-UPDATE
+Before UPDATE, new=multi-UPDATE, SET for t2, but the trigger is fired, old=multi-UPDATE
+After UPDATE, new=multi-UPDATE, SET for t2, but the trigger is fired, old=multi-UPDATE
+drop view v1;
+drop table t1, t2, t1_op_log;
+
+Bug#27248 Triggers: error if insert affects temporary table
+
+The bug was fixed by the fix for Bug#26141
+
+drop table if exists t1;
+drop temporary table if exists t2;
+create table t1 (s1 int);
+create temporary table t2 (s1 int);
+create trigger t1_bi before insert on t1 for each row insert into t2 values (0);
+create trigger t1_bd before delete on t1 for each row delete from t2;
+insert into t1 values (0);
+insert into t1 values (0);
+select * from t1;
+s1
+0
+0
+select * from t2;
+s1
+0
+0
+delete from t1;
+select * from t1;
+s1
+select * from t2;
+s1
+drop table t1;
+drop temporary table t2;
+End of 5.0 tests
diff --git a/mysql-test/r/truncate.result b/mysql-test/r/truncate.result
index 74a6cb72cc6..b194f9b7dc6 100644
--- a/mysql-test/r/truncate.result
+++ b/mysql-test/r/truncate.result
@@ -53,3 +53,10 @@ a
3
4
drop table t1;
+create table t1 (s1 int);
+insert into t1 (s1) values (1), (2), (3), (4), (5);
+create view v1 as select * from t1;
+truncate table v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+drop view v1;
+drop table t1;
diff --git a/mysql-test/r/type_binary.result b/mysql-test/r/type_binary.result
new file mode 100644
index 00000000000..debf4ff8fb8
--- /dev/null
+++ b/mysql-test/r/type_binary.result
@@ -0,0 +1,148 @@
+create table t1 (s1 binary(3));
+insert into t1 values (0x61), (0x6120), (0x612020);
+select hex(s1) from t1;
+hex(s1)
+610000
+612000
+612020
+drop table t1;
+create table t1 (s1 binary(2), s2 varbinary(2));
+insert into t1 values (0x4100,0x4100);
+select length(concat('*',s1,'*',s2,'*')) from t1;
+length(concat('*',s1,'*',s2,'*'))
+7
+delete from t1;
+insert into t1 values (0x4120,0x4120);
+select length(concat('*',s1,'*',s2,'*')) from t1;
+length(concat('*',s1,'*',s2,'*'))
+7
+drop table t1;
+create table t1 (s1 varbinary(20), s2 varbinary(20));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `s1` varbinary(20) default NULL,
+ `s2` varbinary(20) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+insert into t1 values (0x41,0x4100),(0x41,0x4120),(0x4100,0x4120);
+select hex(s1), hex(s2) from t1;
+hex(s1) hex(s2)
+41 4100
+41 4120
+4100 4120
+select count(*) from t1 where s1 < s2;
+count(*)
+3
+drop table t1;
+create table t1 (s1 varbinary(2), s2 varchar(1));
+insert into t1 values (0x41,'a'), (0x4100,'b'), (0x41,'c'), (0x4100,'d');
+select hex(s1),s2 from t1 order by s1,s2;
+hex(s1) s2
+41 a
+41 c
+4100 b
+4100 d
+drop table t1;
+create table t1 (s1 binary(2) primary key);
+insert into t1 values (0x01);
+insert into t1 values (0x0120);
+insert into t1 values (0x0100);
+ERROR 23000: Duplicate entry '' for key 1
+select hex(s1) from t1 order by s1;
+hex(s1)
+0100
+0120
+select hex(s1) from t1 where s1=0x01;
+hex(s1)
+select hex(s1) from t1 where s1=0x0120;
+hex(s1)
+0120
+select hex(s1) from t1 where s1=0x0100;
+hex(s1)
+0100
+select count(distinct s1) from t1;
+count(distinct s1)
+2
+alter table t1 drop primary key;
+select hex(s1) from t1 where s1=0x01;
+hex(s1)
+select hex(s1) from t1 where s1=0x0120;
+hex(s1)
+0120
+select hex(s1) from t1 where s1=0x0100;
+hex(s1)
+0100
+select count(distinct s1) from t1;
+count(distinct s1)
+2
+drop table t1;
+create table t1 (s1 varbinary(2) primary key);
+insert into t1 values (0x01);
+insert into t1 values (0x0120);
+insert into t1 values (0x0100);
+select hex(s1) from t1 order by s1;
+hex(s1)
+01
+0100
+0120
+select hex(s1) from t1 where s1=0x01;
+hex(s1)
+01
+select hex(s1) from t1 where s1=0x0120;
+hex(s1)
+0120
+select hex(s1) from t1 where s1=0x0100;
+hex(s1)
+0100
+select count(distinct s1) from t1;
+count(distinct s1)
+3
+alter table t1 drop primary key;
+select hex(s1) from t1 where s1=0x01;
+hex(s1)
+01
+select hex(s1) from t1 where s1=0x0120;
+hex(s1)
+0120
+select hex(s1) from t1 where s1=0x0100;
+hex(s1)
+0100
+select count(distinct s1) from t1;
+count(distinct s1)
+3
+drop table t1;
+select hex(cast(0x10 as binary(2)));
+hex(cast(0x10 as binary(2)))
+1000
+create table t1 (b binary(2), vb varbinary(2));
+insert into t1 values(0x4120, 0x4120);
+insert into t1 values(0x412020, 0x412020);
+Warnings:
+Warning 1265 Data truncated for column 'b' at row 1
+Warning 1265 Data truncated for column 'vb' at row 1
+drop table t1;
+create table t1 (c char(2), vc varchar(2));
+insert into t1 values(0x4120, 0x4120);
+insert into t1 values(0x412020, 0x412020);
+Warnings:
+Note 1265 Data truncated for column 'vc' at row 1
+drop table t1;
+set @old_sql_mode= @@sql_mode, sql_mode= 'traditional';
+create table t1 (b binary(2), vb varbinary(2));
+insert into t1 values(0x4120, 0x4120);
+insert into t1 values(0x412020, NULL);
+ERROR 22001: Data too long for column 'b' at row 1
+insert into t1 values(NULL, 0x412020);
+ERROR 22001: Data too long for column 'vb' at row 1
+drop table t1;
+set @@sql_mode= @old_sql_mode;
+create table t1(f1 int, f2 binary(2) not null, f3 char(2) not null);
+insert into t1 set f1=1;
+Warnings:
+Warning 1364 Field 'f2' doesn't have a default value
+Warning 1364 Field 'f3' doesn't have a default value
+select hex(f2), hex(f3) from t1;
+hex(f2) hex(f3)
+0000
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_bit.result b/mysql-test/r/type_bit.result
new file mode 100644
index 00000000000..4c1b80c2fd5
--- /dev/null
+++ b/mysql-test/r/type_bit.result
@@ -0,0 +1,675 @@
+select 0 + b'1';
+0 + b'1'
+1
+select 0 + b'0';
+0 + b'0'
+0
+select 0 + b'000001';
+0 + b'000001'
+1
+select 0 + b'000011';
+0 + b'000011'
+3
+select 0 + b'000101';
+0 + b'000101'
+5
+select 0 + b'000000';
+0 + b'000000'
+0
+select 0 + b'10000000';
+0 + b'10000000'
+128
+select 0 + b'11111111';
+0 + b'11111111'
+255
+select 0 + b'10000001';
+0 + b'10000001'
+129
+select 0 + b'1000000000000000';
+0 + b'1000000000000000'
+32768
+select 0 + b'1111111111111111';
+0 + b'1111111111111111'
+65535
+select 0 + b'1000000000000001';
+0 + b'1000000000000001'
+32769
+drop table if exists t1,t2;
+create table t1 (a bit(65));
+ERROR 42000: Display width out of range for column 'a' (max = 64)
+create table t1 (a bit(0));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bit(1) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (a bit(64));
+insert into t1 values
+(b'1111111111111111111111111111111111111111111111111111111111111111'),
+(b'1000000000000000000000000000000000000000000000000000000000000000'),
+(b'0000000000000000000000000000000000000000000000000000000000000001'),
+(b'1010101010101010101010101010101010101010101010101010101010101010'),
+(b'0101010101010101010101010101010101010101010101010101010101010101');
+select hex(a) from t1;
+hex(a)
+FFFFFFFFFFFFFFFF
+8000000000000000
+1
+AAAAAAAAAAAAAAAA
+5555555555555555
+drop table t1;
+create table t1 (a bit);
+insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+select hex(a) from t1;
+hex(a)
+0
+1
+0
+1
+1
+alter table t1 add unique (a);
+ERROR 23000: Duplicate entry '' for key 1
+drop table t1;
+create table t1 (a bit(2));
+insert into t1 values (b'00'), (b'01'), (b'10'), (b'100');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+select a+0 from t1;
+a+0
+0
+1
+2
+3
+alter table t1 add key (a);
+explain select a+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 2 NULL 4 Using index
+select a+0 from t1;
+a+0
+0
+1
+2
+3
+drop table t1;
+create table t1 (a bit(7), b bit(9), key(a, b));
+insert into t1 values
+(94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),
+(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),
+(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),
+(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),
+(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),
+(44, 307), (68, 454), (57, 135);
+explain select a+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 38 Using index
+select a+0 from t1;
+a+0
+0
+4
+5
+9
+23
+24
+28
+29
+30
+31
+34
+44
+49
+56
+57
+59
+60
+61
+68
+68
+75
+77
+78
+79
+87
+88
+94
+94
+104
+106
+108
+111
+116
+118
+119
+122
+123
+127
+explain select b+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 38 Using index
+select b+0 from t1;
+b+0
+177
+245
+178
+363
+36
+398
+499
+399
+83
+438
+202
+307
+345
+379
+135
+188
+343
+152
+206
+454
+42
+133
+123
+349
+351
+411
+46
+468
+280
+446
+67
+368
+390
+380
+368
+118
+411
+403
+explain select a+0, b+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 38 Using index
+select a+0, b+0 from t1;
+a+0 b+0
+0 177
+4 245
+5 178
+9 363
+23 36
+24 398
+28 499
+29 399
+30 83
+31 438
+34 202
+44 307
+49 345
+56 379
+57 135
+59 188
+60 343
+61 152
+68 206
+68 454
+75 42
+77 133
+78 123
+79 349
+87 351
+88 411
+94 46
+94 468
+104 280
+106 446
+108 67
+111 368
+116 390
+118 380
+119 368
+122 118
+123 411
+127 403
+explain select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 2 NULL 27 Using where; Using index; Using filesort
+select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+a+0 b+0
+44 307
+49 345
+56 379
+60 343
+68 206
+68 454
+79 349
+87 351
+88 411
+94 468
+104 280
+106 446
+111 368
+116 390
+118 380
+119 368
+123 411
+127 403
+explain select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 2 NULL 8 Using where; Using index; Using filesort
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+a+0 b+0
+57 135
+61 152
+59 188
+68 206
+44 307
+60 343
+49 345
+56 379
+68 454
+set @@max_length_for_sort_data=0;
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+a+0 b+0
+57 135
+61 152
+59 188
+68 206
+44 307
+60 343
+49 345
+56 379
+68 454
+select hex(min(a)) from t1;
+hex(min(a))
+0
+select hex(min(b)) from t1;
+hex(min(b))
+24
+select hex(min(a)), hex(max(a)), hex(min(b)), hex(max(b)) from t1;
+hex(min(a)) hex(max(a)) hex(min(b)) hex(max(b))
+0 7F 24 1F3
+drop table t1;
+create table t1 (a int not null, b bit, c bit(9), key(a, b, c));
+insert into t1 values
+(4, NULL, 1), (4, 0, 3), (2, 1, 4), (1, 1, 100), (4, 0, 23), (4, 0, 54),
+(56, 0, 22), (4, 1, 100), (23, 0, 1), (4, 0, 34);
+select a+0, b+0, c+0 from t1;
+a+0 b+0 c+0
+1 1 100
+2 1 4
+4 NULL 1
+4 0 3
+4 0 23
+4 0 34
+4 0 54
+4 1 100
+23 0 1
+56 0 22
+select hex(min(b)) from t1 where a = 4;
+hex(min(b))
+0
+select hex(min(c)) from t1 where a = 4 and b = 0;
+hex(min(c))
+3
+select hex(max(b)) from t1;
+hex(max(b))
+1
+select a+0, b+0, c+0 from t1 where a = 4 and b = 0 limit 2;
+a+0 b+0 c+0
+4 0 3
+4 0 23
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1;
+a+0 b+0 c+0
+4 1 100
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1 and c=100;
+a+0 b+0 c+0
+4 1 100
+select a+0, b+0, c+0 from t1 order by b desc;
+a+0 b+0 c+0
+2 1 4
+1 1 100
+4 1 100
+4 0 3
+4 0 23
+4 0 54
+56 0 22
+23 0 1
+4 0 34
+4 NULL 1
+select a+0, b+0, c+0 from t1 order by c;
+a+0 b+0 c+0
+4 NULL 1
+23 0 1
+4 0 3
+2 1 4
+56 0 22
+4 0 23
+4 0 34
+4 0 54
+1 1 100
+4 1 100
+drop table t1;
+create table t1(a bit(2), b bit(2));
+insert into t1 (a) values (0x01), (0x03), (0x02);
+update t1 set b= concat(a);
+select a+0, b+0 from t1;
+a+0 b+0
+1 1
+3 3
+2 2
+drop table t1;
+create table t1 (a bit(7), key(a));
+insert into t1 values (44), (57);
+select a+0 from t1;
+a+0
+44
+57
+drop table t1;
+create table t1 (a bit(3), b bit(12));
+insert into t1 values (7,(1<<12)-2), (0x01,0x01ff);
+select hex(a),hex(b) from t1;
+hex(a) hex(b)
+7 FFE
+1 1FF
+select hex(concat(a)),hex(concat(b)) from t1;
+hex(concat(a)) hex(concat(b))
+07 0FFE
+01 01FF
+drop table t1;
+create table t1(a int, b bit not null);
+alter table t1 add primary key (a);
+drop table t1;
+create table t1 (a bit(19), b bit(5));
+insert into t1 values (1000, 10), (3, 8), (200, 6), (2303, 2), (12345, 4), (1, 0);
+select a+0, b+0 from t1;
+a+0 b+0
+1000 10
+3 8
+200 6
+2303 2
+12345 4
+1 0
+alter table t1 engine=heap;
+select a+0, b+0 from t1;
+a+0 b+0
+1000 10
+3 8
+200 6
+2303 2
+12345 4
+1 0
+alter table t1 add key(a, b);
+select a+0, b+0 from t1;
+a+0 b+0
+1000 10
+3 8
+200 6
+2303 2
+12345 4
+1 0
+alter table t1 engine=myisam;
+select a+0, b+0 from t1;
+a+0 b+0
+1 0
+3 8
+200 6
+1000 10
+2303 2
+12345 4
+create table t2 engine=heap select * from t1;
+select a+0, b+0 from t2;
+a+0 b+0
+1 0
+3 8
+200 6
+1000 10
+2303 2
+12345 4
+drop table t1;
+create table t1 select * from t2;
+select a+0, b+0 from t1;
+a+0 b+0
+1 0
+3 8
+200 6
+1000 10
+2303 2
+12345 4
+drop table t1, t2;
+create table t1 (a int, b time, c tinyint, d bool, e char(10), f bit(1),
+g bit(1) NOT NULL default 1, h char(1) default 'a');
+insert into t1 set a=1;
+select hex(g), h from t1;
+hex(g) h
+1 a
+drop table t1;
+create table t1 (a int, b time, c tinyint, d bool, e char(10), f bit(1),
+g bit(1) NOT NULL default 1);
+insert into t1 set a=1;
+select hex(g) from t1;
+hex(g)
+1
+drop table t1;
+create table t1 (a int, b time, c tinyint, d bool, e char(10), f bit(1),
+h char(1) default 'a') engine=myisam;
+insert into t1 set a=1;
+select h from t1;
+h
+a
+drop table t1;
+create table t1 (a bit(8)) engine=heap;
+insert into t1 values ('1111100000');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select a+0 from t1;
+a+0
+255
+drop table t1;
+create table t1 (a bit(7));
+insert into t1 values (120), (0), (111);
+select a+0 from t1 union select a+0 from t1;
+a+0
+120
+0
+111
+select a+0 from t1 union select NULL;
+a+0
+120
+0
+111
+NULL
+select NULL union select a+0 from t1;
+NULL
+NULL
+120
+0
+111
+create table t2 select a from t1 union select a from t1;
+select a+0 from t2;
+a+0
+120
+0
+111
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` bit(7) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1, t2;
+create table t1 (id1 int(11), b1 bit(1));
+create table t2 (id2 int(11), b2 bit(1));
+insert into t1 values (1, 1), (2, 0), (3, 1);
+insert into t2 values (2, 1), (3, 0), (4, 0);
+create algorithm=undefined view v1 as
+select b1+0, b2+0 from t1, t2 where id1 = id2 and b1 = 0
+union
+select b1+0, b2+0 from t1, t2 where id1 = id2 and b2 = 1;
+select * from v1;
+b1+0 b2+0
+0 1
+drop table t1, t2;
+drop view v1;
+create table t1(a bit(4));
+insert into t1(a) values (1), (2), (5), (4), (3);
+insert into t1 select * from t1;
+select a+0 from t1;
+a+0
+1
+2
+5
+4
+3
+1
+2
+5
+4
+3
+drop table t1;
+create table t1 (a1 int(11), b1 bit(2));
+create table t2 (a2 int(11), b2 bit(2));
+insert into t1 values (1, 1), (2, 0), (3, 1), (4, 2);
+insert into t2 values (2, 1), (3, 0), (4, 1), (5, 2);
+select a1, a2, b1+0, b2+0 from t1 join t2 on a1 = a2;
+a1 a2 b1+0 b2+0
+2 2 0 1
+3 3 1 0
+4 4 2 1
+select a1, a2, b1+0, b2+0 from t1 join t2 on a1 = a2 order by a1;
+a1 a2 b1+0 b2+0
+2 2 0 1
+3 3 1 0
+4 4 2 1
+select a1, a2, b1+0, b2+0 from t1 join t2 on b1 = b2;
+a1 a2 b1+0 b2+0
+1 2 1 1
+3 2 1 1
+2 3 0 0
+1 4 1 1
+3 4 1 1
+4 5 2 2
+select sum(a1), b1+0, b2+0 from t1 join t2 on b1 = b2 group by b1 order by 1;
+sum(a1) b1+0 b2+0
+2 0 0
+4 2 2
+8 1 1
+select 1 from t1 join t2 on b1 = b2 group by b1 order by 1;
+1
+1
+1
+1
+select b1+0,sum(b1), sum(b2) from t1 join t2 on b1 = b2 group by b1 order by 1;
+b1+0 sum(b1) sum(b2)
+0 0 0
+1 4 4
+2 2 2
+drop table t1, t2;
+create table t1 (a bit(7));
+insert into t1 values (0x60);
+select * from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 a a 16 7 1 Y 32 0 63
+a
+`
+drop table t1;
+create table bug15583(b BIT(8), n INT);
+insert into bug15583 values(128, 128);
+insert into bug15583 values(null, null);
+insert into bug15583 values(0, 0);
+insert into bug15583 values(255, 255);
+select hex(b), bin(b), oct(b), hex(n), bin(n), oct(n) from bug15583;
+hex(b) bin(b) oct(b) hex(n) bin(n) oct(n)
+80 10000000 200 80 10000000 200
+NULL NULL NULL NULL NULL NULL
+0 0 0 0 0 0
+FF 11111111 377 FF 11111111 377
+select hex(b)=hex(n) as should_be_onetrue, bin(b)=bin(n) as should_be_onetrue, oct(b)=oct(n) as should_be_onetrue from bug15583;
+should_be_onetrue should_be_onetrue should_be_onetrue
+1 1 1
+NULL NULL NULL
+1 1 1
+1 1 1
+select hex(b + 0), bin(b + 0), oct(b + 0), hex(n), bin(n), oct(n) from bug15583;
+hex(b + 0) bin(b + 0) oct(b + 0) hex(n) bin(n) oct(n)
+80 10000000 200 80 10000000 200
+NULL NULL NULL NULL NULL NULL
+0 0 0 0 0 0
+FF 11111111 377 FF 11111111 377
+select conv(b, 10, 2), conv(b + 0, 10, 2) from bug15583;
+conv(b, 10, 2) conv(b + 0, 10, 2)
+10000000 10000000
+NULL NULL
+0 0
+11111111 11111111
+drop table bug15583;
+create table t1(a bit(1), b smallint unsigned);
+insert into t1 (b, a) values ('2', '1');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select hex(a), b from t1;
+hex(a) b
+1 2
+drop table t1;
+create table t1(bit_field bit(2), int_field int, key a(bit_field));
+insert into t1 values (1,2);
+handler t1 open as t1;
+handler t1 read a=(1);
+bit_field int_field
+ 2
+handler t1 close;
+drop table t1;
+CREATE TABLE t1 (b BIT(2), a VARCHAR(5));
+INSERT INTO t1 (b, a) VALUES (1, "x"), (3, "zz"), (0, "y"), (3, "z");
+SELECT b+0, COUNT(DISTINCT a) FROM t1 GROUP BY b;
+b+0 COUNT(DISTINCT a)
+0 1
+1 1
+3 2
+DROP TABLE t1;
+CREATE TABLE t1 (a CHAR(5), b BIT(2));
+INSERT INTO t1 (b, a) VALUES (1, "x"), (3, "zz"), (0, "y"), (3, "z");
+SELECT b+0, COUNT(DISTINCT a) FROM t1 GROUP BY b;
+b+0 COUNT(DISTINCT a)
+0 1
+1 1
+3 2
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, b BIT(2));
+INSERT INTO t1 (b, a) VALUES (1, 1), (3, 2), (0, 3), (3, 4);
+SELECT b+0, COUNT(DISTINCT a) FROM t1 GROUP BY b;
+b+0 COUNT(DISTINCT a)
+0 1
+1 1
+3 2
+DROP TABLE t1;
+CREATE TABLE t1 (b BIT);
+INSERT INTO t1 (b) VALUES (1), (0);
+SELECT DISTINCT b FROM t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 b b 16 1 1 Y 32 0 63
+b
+#
+#
+SELECT b FROM t1 GROUP BY b;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 b b 16 1 1 Y 32 0 63
+b
+#
+#
+DROP TABLE t1;
+CREATE TABLE t1 (a int, b bit(2));
+INSERT INTO t1 VALUES (3, 2), (2, 3), (2, 0), (3, 2), (3, 1);
+SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a;
+COUNT(DISTINCT b)
+2
+2
+DROP TABLE t1;
+create table t2 (a int, b bit(2), c char(10));
+INSERT INTO t2 VALUES (3, 2, 'two'), (2, 3, 'three'), (2, 0, 'zero'),
+(3, 2, 'two'), (3, 1, 'one');
+SELECT COUNT(DISTINCT b,c) FROM t2 GROUP BY a;
+COUNT(DISTINCT b,c)
+2
+2
+DROP TABLE t2;
+End of 5.0 tests
diff --git a/mysql-test/r/type_bit_innodb.result b/mysql-test/r/type_bit_innodb.result
new file mode 100644
index 00000000000..c4506231f27
--- /dev/null
+++ b/mysql-test/r/type_bit_innodb.result
@@ -0,0 +1,413 @@
+select 0 + b'1';
+0 + b'1'
+1
+select 0 + b'0';
+0 + b'0'
+0
+select 0 + b'000001';
+0 + b'000001'
+1
+select 0 + b'000011';
+0 + b'000011'
+3
+select 0 + b'000101';
+0 + b'000101'
+5
+select 0 + b'000000';
+0 + b'000000'
+0
+select 0 + b'10000000';
+0 + b'10000000'
+128
+select 0 + b'11111111';
+0 + b'11111111'
+255
+select 0 + b'10000001';
+0 + b'10000001'
+129
+select 0 + b'1000000000000000';
+0 + b'1000000000000000'
+32768
+select 0 + b'1111111111111111';
+0 + b'1111111111111111'
+65535
+select 0 + b'1000000000000001';
+0 + b'1000000000000001'
+32769
+drop table if exists t1;
+create table t1 (a bit(65)) engine=innodb;
+ERROR 42000: Display width out of range for column 'a' (max = 64)
+create table t1 (a bit(0)) engine=innodb;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bit(1) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (a bit(64)) engine=innodb;
+insert into t1 values
+(b'1111111111111111111111111111111111111111111111111111111111111111'),
+(b'1000000000000000000000000000000000000000000000000000000000000000'),
+(b'0000000000000000000000000000000000000000000000000000000000000001'),
+(b'1010101010101010101010101010101010101010101010101010101010101010'),
+(b'0101010101010101010101010101010101010101010101010101010101010101');
+select hex(a) from t1;
+hex(a)
+FFFFFFFFFFFFFFFF
+8000000000000000
+1
+AAAAAAAAAAAAAAAA
+5555555555555555
+drop table t1;
+create table t1 (a bit) engine=innodb;
+insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+select hex(a) from t1;
+hex(a)
+0
+1
+0
+1
+1
+alter table t1 add unique (a);
+ERROR 23000: Duplicate entry '' for key 1
+drop table t1;
+create table t1 (a bit(2)) engine=innodb;
+insert into t1 values (b'00'), (b'01'), (b'10'), (b'100');
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+select a+0 from t1;
+a+0
+0
+1
+2
+3
+alter table t1 add key (a);
+explain select a+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 2 NULL 4 Using index
+select a+0 from t1;
+a+0
+0
+1
+2
+3
+drop table t1;
+create table t1 (a bit(7), b bit(9), key(a, b)) engine=innodb;
+insert into t1 values
+(94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),
+(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),
+(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),
+(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),
+(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),
+(44, 307), (68, 454), (57, 135);
+explain select a+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 38 Using index
+select a+0 from t1;
+a+0
+0
+4
+5
+9
+23
+24
+28
+29
+30
+31
+34
+44
+49
+56
+57
+59
+60
+61
+68
+68
+75
+77
+78
+79
+87
+88
+94
+94
+104
+106
+108
+111
+116
+118
+119
+122
+123
+127
+explain select b+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 38 Using index
+select b+0 from t1;
+b+0
+177
+245
+178
+363
+36
+398
+499
+399
+83
+438
+202
+307
+345
+379
+135
+188
+343
+152
+206
+454
+42
+133
+123
+349
+351
+411
+46
+468
+280
+446
+67
+368
+390
+380
+368
+118
+411
+403
+explain select a+0, b+0 from t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 38 Using index
+select a+0, b+0 from t1;
+a+0 b+0
+0 177
+4 245
+5 178
+9 363
+23 36
+24 398
+28 499
+29 399
+30 83
+31 438
+34 202
+44 307
+49 345
+56 379
+57 135
+59 188
+60 343
+61 152
+68 206
+68 454
+75 42
+77 133
+78 123
+79 349
+87 351
+88 411
+94 46
+94 468
+104 280
+106 446
+108 67
+111 368
+116 390
+118 380
+119 368
+122 118
+123 411
+127 403
+explain select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 2 NULL 19 Using where; Using index; Using filesort
+select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+a+0 b+0
+44 307
+49 345
+56 379
+60 343
+68 206
+68 454
+79 349
+87 351
+88 411
+94 468
+104 280
+106 446
+111 368
+116 390
+118 380
+119 368
+123 411
+127 403
+explain select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range a a 2 NULL 8 Using where; Using index; Using filesort
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+a+0 b+0
+57 135
+61 152
+59 188
+68 206
+44 307
+60 343
+49 345
+56 379
+68 454
+set @@max_length_for_sort_data=0;
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+a+0 b+0
+57 135
+61 152
+59 188
+68 206
+44 307
+60 343
+49 345
+56 379
+68 454
+select hex(min(a)) from t1;
+hex(min(a))
+0
+select hex(min(b)) from t1;
+hex(min(b))
+24
+select hex(min(a)), hex(max(a)), hex(min(b)), hex(max(b)) from t1;
+hex(min(a)) hex(max(a)) hex(min(b)) hex(max(b))
+0 7F 24 1F3
+drop table t1;
+create table t1 (a int not null, b bit, c bit(9), key(a, b, c)) engine=innodb;
+insert into t1 values
+(4, NULL, 1), (4, 0, 3), (2, 1, 4), (1, 1, 100), (4, 0, 23), (4, 0, 54),
+(56, 0, 22), (4, 1, 100), (23, 0, 1), (4, 0, 34);
+select a+0, b+0, c+0 from t1;
+a+0 b+0 c+0
+1 1 100
+2 1 4
+4 NULL 1
+4 0 3
+4 0 23
+4 0 34
+4 0 54
+4 1 100
+23 0 1
+56 0 22
+select hex(min(b)) from t1 where a = 4;
+hex(min(b))
+0
+select hex(min(c)) from t1 where a = 4 and b = 0;
+hex(min(c))
+3
+select hex(max(b)) from t1;
+hex(max(b))
+1
+select a+0, b+0, c+0 from t1 where a = 4 and b = 0 limit 2;
+a+0 b+0 c+0
+4 0 3
+4 0 23
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1;
+a+0 b+0 c+0
+4 1 100
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1 and c=100;
+a+0 b+0 c+0
+4 1 100
+select a+0, b+0, c+0 from t1 order by b desc;
+a+0 b+0 c+0
+2 1 4
+1 1 100
+4 1 100
+4 0 3
+4 0 23
+4 0 54
+56 0 22
+23 0 1
+4 0 34
+4 NULL 1
+select a+0, b+0, c+0 from t1 order by c;
+a+0 b+0 c+0
+4 NULL 1
+23 0 1
+4 0 3
+2 1 4
+56 0 22
+4 0 23
+4 0 34
+4 0 54
+1 1 100
+4 1 100
+drop table t1;
+create table t1(a bit(2), b bit(2)) engine=innodb;
+insert into t1 (a) values (0x01), (0x03), (0x02);
+update t1 set b= concat(a);
+select a+0, b+0 from t1;
+a+0 b+0
+1 1
+3 3
+2 2
+drop table t1;
+create table t1 (a bit(7), key(a)) engine=innodb;
+insert into t1 values (44), (57);
+select a+0 from t1;
+a+0
+44
+57
+drop table t1;
+create table t1 (a bit(3), b bit(12)) engine=innodb;
+insert into t1 values (7,(1<<12)-2), (0x01,0x01ff);
+select hex(a),hex(b) from t1;
+hex(a) hex(b)
+7 FFE
+1 1FF
+select hex(concat(a)),hex(concat(b)) from t1;
+hex(concat(a)) hex(concat(b))
+07 0FFE
+01 01FF
+drop table t1;
+create table t1(a int, b bit not null) engine=innodb;
+alter table t1 add primary key (a);
+drop table t1;
+create table t1 (a bit, b bit(10)) engine=innodb;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bit(1) default NULL,
+ `b` bit(10) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+alter table t1 engine=heap;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bit(1) default NULL,
+ `b` bit(10) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+alter table t1 engine=innodb;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bit(1) default NULL,
+ `b` bit(10) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (a bit(7)) engine=innodb;
+insert into t1 values (0x60);
+select * from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 a a 16 7 1 Y 32 0 63
+a
+`
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result
index 977377c0bc6..c72ee005428 100644
--- a/mysql-test/r/type_blob.result
+++ b/mysql-test/r/type_blob.result
@@ -7,14 +7,16 @@ b text YES NULL
c tinyblob YES NULL
d mediumtext YES NULL
e longtext YES NULL
-CREATE TABLE t2 (a char(257), b varbinary(70000), c varchar(70000000));
+CREATE TABLE t2 (a char(255), b varbinary(70000), c varchar(70000000));
Warnings:
-Warning 1246 Converting column 'a' from CHAR to TEXT
-Warning 1246 Converting column 'b' from CHAR to BLOB
-Warning 1246 Converting column 'c' from CHAR to TEXT
+Note 1246 Converting column 'b' from VARBINARY to BLOB
+Note 1246 Converting column 'c' from VARCHAR to TEXT
+CREATE TABLE t4 (c varchar(65530) character set utf8 not null);
+Warnings:
+Note 1246 Converting column 'c' from VARCHAR to TEXT
show columns from t2;
Field Type Null Key Default Extra
-a text YES NULL
+a char(255) YES NULL
b mediumblob YES NULL
c longtext YES NULL
create table t3 (a long, b long byte);
@@ -24,9 +26,18 @@ t3 CREATE TABLE `t3` (
`a` mediumtext,
`b` mediumblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-drop table t1,t2,t3;
+show create TABLE t4;
+Table Create Table
+t4 CREATE TABLE `t4` (
+ `c` mediumtext character set utf8 NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1,t2,t3,t4;
CREATE TABLE t1 (a char(257) default "hello");
ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead
+CREATE TABLE t2 (a char(256));
+ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead
+CREATE TABLE t1 (a varchar(70000) default "hello");
+ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
CREATE TABLE t2 (a blob default "hello");
ERROR 42000: BLOB/TEXT column 'a' can't have a default value
drop table if exists t1,t2;
@@ -56,7 +67,7 @@ select * from t1;
a
Where
drop table t1;
-create table t1 (t text,c char(10),b blob, d binary(10));
+create table t1 (t text,c char(10),b blob, d varbinary(10));
insert into t1 values (NULL,NULL,NULL,NULL);
insert into t1 values ("","","","");
insert into t1 values ("hello","hello","hello","hello");
@@ -70,14 +81,14 @@ lock tables t1 READ;
show full fields from t1;
Field Type Collation Null Key Default Extra Privileges Comment
t text latin1_swedish_ci YES NULL #
-c varchar(10) latin1_swedish_ci YES NULL #
+c char(10) latin1_swedish_ci YES NULL #
b blob NULL YES NULL #
d varbinary(10) NULL YES NULL #
lock tables t1 WRITE;
show full fields from t1;
Field Type Collation Null Key Default Extra Privileges Comment
t text latin1_swedish_ci YES NULL #
-c varchar(10) latin1_swedish_ci YES NULL #
+c char(10) latin1_swedish_ci YES NULL #
b blob NULL YES NULL #
d varbinary(10) NULL YES NULL #
unlock tables;
@@ -491,34 +502,41 @@ select foobar, boggle from t1 where foobar = 'fish' and boggle = 10;
foobar boggle
fish 10
drop table t1;
-create table t1 (id integer auto_increment unique,imagem LONGBLOB not null);
+create table t1 (id integer auto_increment unique,imagem LONGBLOB not null default '');
+Warnings:
+Warning 1101 BLOB/TEXT column 'imagem' can't have a default value
insert into t1 (id) values (1);
-select
-charset(load_file('../../std_data/words.dat')),
-collation(load_file('../../std_data/words.dat')),
-coercibility(load_file('../../std_data/words.dat'));
-charset(load_file('../../std_data/words.dat')) collation(load_file('../../std_data/words.dat')) coercibility(load_file('../../std_data/words.dat'))
+select
+charset(load_file('../std_data_ln/words.dat')),
+collation(load_file('../std_data_ln/words.dat')),
+coercibility(load_file('../std_data_ln/words.dat'));
+charset(load_file('../std_data_ln/words.dat')) collation(load_file('../std_data_ln/words.dat')) coercibility(load_file('../std_data_ln/words.dat'))
binary binary 4
-explain extended select
-charset(load_file('../../std_data/words.dat')),
-collation(load_file('../../std_data/words.dat')),
-coercibility(load_file('../../std_data/words.dat'));
+explain extended select
+charset(load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat')),
+collation(load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat')),
+coercibility(load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat'));
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache charset(load_file(_latin1'../../std_data/words.dat')) AS `charset(load_file('../../std_data/words.dat'))`,collation(load_file(_latin1'../../std_data/words.dat')) AS `collation(load_file('../../std_data/words.dat'))`,coercibility(load_file(_latin1'../../std_data/words.dat')) AS `coercibility(load_file('../../std_data/words.dat'))`
-update t1 set imagem=load_file('../../std_data/words.dat') where id=1;
+Note 1003 select charset(load_file(_latin1'MYSQLTEST_VARDIR/std_data_ln/words.dat')) AS `charset(load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat'))`,collation(load_file(_latin1'MYSQLTEST_VARDIR/std_data_ln/words.dat')) AS `collation(load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat'))`,coercibility(load_file(_latin1'MYSQLTEST_VARDIR/std_data_ln/words.dat')) AS `coercibility(load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat'))`
+update t1 set imagem=load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat') where id=1;
select if(imagem is null, "ERROR", "OK"),length(imagem) from t1 where id = 1;
if(imagem is null, "ERROR", "OK") length(imagem)
OK 581
drop table t1;
-create table t1 select load_file('../../std_data/words.dat') l;
+create table t1 select load_file('MYSQLTEST_VARDIR/std_data_ln/words.dat') l;
show full fields from t1;
Field Type Collation Null Key Default Extra Privileges Comment
l longblob NULL YES NULL #
drop table t1;
create table t1 (id integer primary key auto_increment, txt text not null, unique index txt_index (txt (20)));
insert into t1 (txt) values ('Chevy'), ('Chevy ');
+ERROR 23000: Duplicate entry 'Chevy ' for key 2
+insert into t1 (txt) values ('Chevy'), ('CHEVY');
+ERROR 23000: Duplicate entry 'Chevy' for key 2
+alter table t1 drop index txt_index, add index txt_index (txt(20));
+insert into t1 (txt) values ('Chevy ');
select * from t1 where txt='Chevy';
id txt
1 Chevy
@@ -588,16 +606,16 @@ id txt
2 Chevy
3 Ford
drop table t1;
-create table t1 (id integer primary key auto_increment, txt text, unique index txt_index (txt (20)));
+create table t1 (id integer primary key auto_increment, txt text, index txt_index (txt (20)));
insert into t1 (txt) values ('Chevy'), ('Chevy '), (NULL);
select * from t1 where txt='Chevy' or txt is NULL;
id txt
-3 NULL
1 Chevy
2 Chevy
+3 NULL
explain select * from t1 where txt='Chevy' or txt is NULL;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range txt_index txt_index 23 NULL 2 Using where
+1 SIMPLE t1 ref_or_null txt_index txt_index 23 const 2 Using where
select * from t1 where txt='Chevy ';
id txt
1 Chevy
@@ -687,3 +705,106 @@ select max(i) from t1 where c = '';
max(i)
4
drop table t1;
+create table t1 (a int, b int, c tinyblob, d int, e int);
+alter table t1 add primary key (a,b,c(255),d);
+alter table t1 add key (a,b,d,e);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) NOT NULL default '0',
+ `b` int(11) NOT NULL default '0',
+ `c` tinyblob NOT NULL,
+ `d` int(11) NOT NULL default '0',
+ `e` int(11) default NULL,
+ PRIMARY KEY (`a`,`b`,`c`(255),`d`),
+ KEY `a` (`a`,`b`,`d`,`e`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+CREATE table t1 (a blob);
+insert into t1 values ('b'),('a\0'),('a'),('a '),('aa'),(NULL);
+select hex(a) from t1 order by a;
+hex(a)
+NULL
+61
+6100
+6120
+6161
+62
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+b
+NULL
+6100
+610000
+612000
+616100
+6200
+alter table t1 modify a varbinary(5);
+select hex(a) from t1 order by a;
+hex(a)
+NULL
+61
+6100
+6120
+6161
+62
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+b
+NULL
+6100
+610000
+612000
+616100
+6200
+alter table t1 modify a char(5);
+select hex(a) from t1 order by a;
+hex(a)
+NULL
+6100
+61
+61
+6161
+62
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+b
+NULL
+610000
+6100
+6100
+616100
+6200
+alter table t1 modify a binary(5);
+select hex(a) from t1 order by a;
+hex(a)
+NULL
+6100000000
+6100000000
+6100000000
+6161000000
+6200000000
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+b
+NULL
+610000000000
+610000000000
+610000000000
+616100000000
+620000000000
+drop table t1;
+create table t1 (a text default '');
+Warnings:
+Warning 1101 BLOB/TEXT column 'a' can't have a default value
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+insert into t1 values (default);
+select * from t1;
+a
+NULL
+drop table t1;
+set @@sql_mode='TRADITIONAL';
+create table t1 (a text default '');
+ERROR 42000: BLOB/TEXT column 'a' can't have a default value
+set @@sql_mode='';
+End of 5.0 tests
diff --git a/mysql-test/r/type_date.result b/mysql-test/r/type_date.result
index 99e9adf84ca..bd2a43569dd 100644
--- a/mysql-test/r/type_date.result
+++ b/mysql-test/r/type_date.result
@@ -99,7 +99,7 @@ DROP TABLE t1, t2, t3;
CREATE TABLE t1 (y YEAR);
INSERT INTO t1 VALUES ('abc');
Warnings:
-Warning 1265 Data truncated for column 'y' at row 1
+Warning 1366 Incorrect integer value: 'abc' for column 'y' at row 1
SELECT * FROM t1;
y
0000
@@ -110,3 +110,108 @@ select 1 from t1 where cast('2000-01-01 12:01:01' as datetime) between start_dat
1
1
drop table t1;
+select @d:=1111, year(@d), month(@d), day(@d), cast(@d as date);
+@d:=1111 year(@d) month(@d) day(@d) cast(@d as date)
+1111 2000 11 11 2000-11-11
+select @d:=011111, year(@d), month(@d), day(@d), cast(@d as date);
+@d:=011111 year(@d) month(@d) day(@d) cast(@d as date)
+11111 2001 11 11 2001-11-11
+select @d:=1311, year(@d), month(@d), day(@d), cast(@d as date);
+@d:=1311 year(@d) month(@d) day(@d) cast(@d as date)
+1311 NULL NULL NULL NULL
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
+Warning 1292 Truncated incorrect datetime value: '1311'
+create table t1 (d date , dt datetime , ts timestamp);
+insert into t1 values (9912101,9912101,9912101);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'd' at row 1
+Warning 1264 Out of range value adjusted for column 'dt' at row 1
+Warning 1265 Data truncated for column 'ts' at row 1
+insert into t1 values (11111,11111,11111);
+select * from t1;
+d dt ts
+0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00
+2001-11-11 2001-11-11 00:00:00 2001-11-11 00:00:00
+drop table t1;
+CREATE TABLE t1 (
+a INT
+);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (NULL);
+SELECT str_to_date( '', a ) FROM t1;
+str_to_date( '', a )
+0000-00-00 00:00:00
+NULL
+DROP TABLE t1;
+CREATE TABLE t1 (a DATE, b int, PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES (DATE(NOW()), 1);
+SELECT COUNT(*) FROM t1 WHERE a = NOW();
+COUNT(*)
+0
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+INSERT INTO t1 VALUES (DATE(NOW()), 2);
+SELECT COUNT(*) FROM t1 WHERE a = NOW();
+COUNT(*)
+0
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
+COUNT(*)
+0
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+ALTER TABLE t1 DROP PRIMARY KEY;
+SELECT COUNT(*) FROM t1 WHERE a = NOW();
+COUNT(*)
+0
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+DROP TABLE t1;
+CREATE TABLE t1 (a DATE);
+CREATE TABLE t2 (a DATE);
+CREATE INDEX i ON t1 (a);
+INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
+INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
+SELECT * FROM t1 WHERE a = '0000-00-00';
+a
+0000-00-00
+0000-00-00
+SELECT * FROM t2 WHERE a = '0000-00-00';
+a
+0000-00-00
+0000-00-00
+SET SQL_MODE=TRADITIONAL;
+EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref i i 4 const 1 Using where; Using index
+Warnings:
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+SELECT * FROM t1 WHERE a = '0000-00-00';
+a
+0000-00-00
+0000-00-00
+Warnings:
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+SELECT * FROM t2 WHERE a = '0000-00-00';
+a
+0000-00-00
+0000-00-00
+Warnings:
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
+INSERT INTO t1 VALUES ('0000-00-00');
+ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
+SET SQL_MODE=DEFAULT;
+DROP TABLE t1,t2;
+End of 5.0 tests
diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result
index 64337bd2c2f..73edfb75ff6 100644
--- a/mysql-test/r/type_datetime.result
+++ b/mysql-test/r/type_datetime.result
@@ -52,13 +52,15 @@ t
truncate table t1;
insert into t1 values("2003-0303 12:13:14");
Warnings:
-Warning 1264 Data truncated; out of range for column 't' at row 1
+Warning 1264 Out of range value adjusted for column 't' at row 1
select * from t1;
t
0000-00-00 00:00:00
drop table t1;
CREATE TABLE t1 (a timestamp, b date, c time, d datetime);
insert into t1 (b,c,d) values(now(),curtime(),now());
+Warnings:
+Note 1265 Data truncated for column 'b' at row 1
select date_format(a,"%Y-%m-%d")=b,right(a+0,6)=c+0,a=d+0 from t1;
date_format(a,"%Y-%m-%d")=b right(a+0,6)=c+0 a=d+0
1 1 1
@@ -101,7 +103,7 @@ date numfacture expedition
0000-00-00 00:00:00 1212 0001-00-00 00:00:00
EXPLAIN SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref expedition expedition 8 const 1 Using where
+1 SIMPLE t1 ref expedition expedition 8 const 1
drop table t1;
create table t1 (a datetime not null, b datetime not null);
insert into t1 values (now(), now());
@@ -113,12 +115,12 @@ create table t1 (t datetime);
insert into t1 values (20030102030460),(20030102036301),(20030102240401),
(20030132030401),(20031302030401),(100001202030401);
Warnings:
-Warning 1265 Data truncated for column 't' at row 1
-Warning 1265 Data truncated for column 't' at row 2
-Warning 1265 Data truncated for column 't' at row 3
-Warning 1265 Data truncated for column 't' at row 4
-Warning 1265 Data truncated for column 't' at row 5
-Warning 1265 Data truncated for column 't' at row 6
+Warning 1264 Out of range value adjusted for column 't' at row 1
+Warning 1264 Out of range value adjusted for column 't' at row 2
+Warning 1264 Out of range value adjusted for column 't' at row 3
+Warning 1264 Out of range value adjusted for column 't' at row 4
+Warning 1264 Out of range value adjusted for column 't' at row 5
+Warning 1264 Out of range value adjusted for column 't' at row 6
select * from t1;
t
0000-00-00 00:00:00
@@ -132,12 +134,12 @@ insert into t1 values
("2003-01-02 03:04:60"),("2003-01-02 03:63:01"),("2003-01-02 24:04:01"),
("2003-01-32 03:04:01"),("2003-13-02 03:04:01"), ("10000-12-02 03:04:00");
Warnings:
-Warning 1264 Data truncated; out of range for column 't' at row 1
-Warning 1264 Data truncated; out of range for column 't' at row 2
-Warning 1264 Data truncated; out of range for column 't' at row 3
-Warning 1264 Data truncated; out of range for column 't' at row 4
-Warning 1264 Data truncated; out of range for column 't' at row 5
-Warning 1264 Data truncated; out of range for column 't' at row 6
+Warning 1264 Out of range value adjusted for column 't' at row 1
+Warning 1264 Out of range value adjusted for column 't' at row 2
+Warning 1264 Out of range value adjusted for column 't' at row 3
+Warning 1264 Out of range value adjusted for column 't' at row 4
+Warning 1264 Out of range value adjusted for column 't' at row 5
+Warning 1264 Out of range value adjusted for column 't' at row 6
select * from t1;
t
0000-00-00 00:00:00
@@ -149,8 +151,8 @@ t
delete from t1;
insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer");
Warnings:
-Warning 1264 Data truncated; out of range for column 't' at row 1
-Warning 1264 Data truncated; out of range for column 't' at row 2
+Warning 1264 Out of range value adjusted for column 't' at row 1
+Warning 1264 Out of range value adjusted for column 't' at row 2
select * from t1;
t
0000-00-00 00:00:00
@@ -169,3 +171,338 @@ drop table t1;
select cast('2006-12-05 22:10:10' as datetime) + 0;
cast('2006-12-05 22:10:10' as datetime) + 0
20061205221010.000000
+CREATE TABLE t1(a DATETIME NOT NULL);
+INSERT INTO t1 VALUES ('20060606155555');
+SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555");
+a
+2006-06-06 15:55:55
+PREPARE s FROM 'SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555")';
+EXECUTE s;
+a
+2006-06-06 15:55:55
+DROP PREPARE s;
+DROP TABLE t1;
+SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6));
+CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6))
+20060810.000000
+SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME) AS DECIMAL(20,6));
+CAST(CAST('2006-08-10 10:11:12' AS DATETIME) AS DECIMAL(20,6))
+20060810101112.000000
+SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6));
+CAST(CAST('2006-08-10 10:11:12' AS DATETIME) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6))
+20060810101112.000014
+SELECT CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6));
+CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6))
+101112.098700
+set @org_mode=@@sql_mode;
+create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
+Warnings:
+Note 1265 Data truncated for column 'da' at row 1
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `da` date default '1962-03-03',
+ `dt` datetime default '1962-03-03 00:00:00'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+insert into t1 values ();
+insert into t1 values ('2007-03-23 13:49:38','2007-03-23 13:49:38');
+Warnings:
+Note 1265 Data truncated for column 'da' at row 1
+set @@sql_mode='ansi,traditional';
+insert into t1 values ('2007-03-23 13:49:38','2007-03-23 13:49:38');
+Warnings:
+Note 1265 Data truncated for column 'da' at row 1
+insert into t1 set dt='2007-03-23 13:49:38',da=dt;
+Warnings:
+Note 1265 Data truncated for column 'da' at row 1
+insert into t1 values ('2007-03-32','2007-03-23 13:49:38');
+ERROR 22007: Incorrect date value: '2007-03-32' for column 'da' at row 1
+select * from t1;
+da dt
+1962-03-03 1962-03-03 00:00:00
+2007-03-23 2007-03-23 13:49:38
+2007-03-23 2007-03-23 13:49:38
+2007-03-23 2007-03-23 13:49:38
+drop table t1;
+create table t1 (da date default '1962-03-32 23:33:34', dt datetime default '1962-03-03');
+ERROR 42000: Invalid default value for 'da'
+create table t1 (t time default '916:00:00 a');
+ERROR 42000: Invalid default value for 't'
+set @@sql_mode= @org_mode;
+create table t1 (f1 date, f2 datetime, f3 timestamp);
+insert into t1(f1) values(curdate());
+select curdate() < now(), f1 < now(), cast(f1 as date) < now() from t1;
+curdate() < now() f1 < now() cast(f1 as date) < now()
+1 1 1
+delete from t1;
+insert into t1 values('2001-01-01','2001-01-01 01:01:01','2001-01-01 01:01:01');
+insert into t1 values('2001-02-05','2001-02-05 00:00:00','2001-02-05 01:01:01');
+insert into t1 values('2001-03-10','2001-03-09 01:01:01','2001-03-10 01:01:01');
+insert into t1 values('2001-04-15','2001-04-15 00:00:00','2001-04-15 00:00:00');
+insert into t1 values('2001-05-20','2001-05-20 01:01:01','2001-05-20 01:01:01');
+select f1, f3 from t1 where f1 >= '2001-02-05 00:00:00' and f3 <= '2001-04-15';
+f1 f3
+2001-02-05 2001-02-05 01:01:01
+2001-03-10 2001-03-10 01:01:01
+2001-04-15 2001-04-15 00:00:00
+select f1, f3 from t1 where f1 >= '2001-2-5 0:0:0' and f2 <= '2001-4-15';
+f1 f3
+2001-02-05 2001-02-05 01:01:01
+2001-03-10 2001-03-10 01:01:01
+2001-04-15 2001-04-15 00:00:00
+select f1, f2 from t1 where if(1, f1, 0) >= f2;
+f1 f2
+2001-02-05 2001-02-05 00:00:00
+2001-03-10 2001-03-09 01:01:01
+2001-04-15 2001-04-15 00:00:00
+select 1 from dual where cast('2001-1-1 2:3:4' as date) = cast('2001-01-01' as datetime);
+1
+1
+select f1, f2, f1 > f2, f1 = f2, f1 < f2 from t1;
+f1 f2 f1 > f2 f1 = f2 f1 < f2
+2001-01-01 2001-01-01 01:01:01 0 0 1
+2001-02-05 2001-02-05 00:00:00 0 1 0
+2001-03-10 2001-03-09 01:01:01 1 0 0
+2001-04-15 2001-04-15 00:00:00 0 1 0
+2001-05-20 2001-05-20 01:01:01 0 0 1
+drop table t1;
+create table t1 (f1 date, f2 datetime, f3 timestamp);
+insert into t1 values('2001-01-01','2001-01-01 01:01:01','2001-01-01 01:01:01');
+insert into t1 values('2001-02-05','2001-02-05 00:00:00','2001-02-05 01:01:01');
+insert into t1 values('2001-03-10','2001-03-09 01:01:01','2001-03-10 01:01:01');
+insert into t1 values('2001-04-15','2001-04-15 00:00:00','2001-04-15 00:00:00');
+insert into t1 values('2001-05-20','2001-05-20 01:01:01','2001-05-20 01:01:01');
+select f2 from t1 where f2 between '2001-2-5' and '01-04-14';
+f2
+2001-02-05 00:00:00
+2001-03-09 01:01:01
+select f1, f2, f3 from t1 where f1 between f2 and f3;
+f1 f2 f3
+2001-02-05 2001-02-05 00:00:00 2001-02-05 01:01:01
+2001-03-10 2001-03-09 01:01:01 2001-03-10 01:01:01
+2001-04-15 2001-04-15 00:00:00 2001-04-15 00:00:00
+select f1, f2, f3 from t1 where cast(f1 as datetime) between f2 and
+cast(f3 as date);
+f1 f2 f3
+2001-02-05 2001-02-05 00:00:00 2001-02-05 01:01:01
+2001-03-10 2001-03-09 01:01:01 2001-03-10 01:01:01
+2001-04-15 2001-04-15 00:00:00 2001-04-15 00:00:00
+select f2 from t1 where '2001-04-10 12:34:56' between f2 and '01-05-01';
+f2
+2001-01-01 01:01:01
+2001-02-05 00:00:00
+2001-03-09 01:01:01
+select f2, f3 from t1 where '01-03-10' between f2 and f3;
+f2 f3
+2001-03-09 01:01:01 2001-03-10 01:01:01
+select f2 from t1 where DATE(f2) between "2001-4-15" AND "01-4-15";
+f2
+2001-04-15 00:00:00
+SELECT 1 from dual where NOW() BETWEEN CURRENT_DATE() - INTERVAL 1 DAY AND CURRENT_DATE();
+1
+drop table t1;
+create table t1 (f1 date);
+insert into t1 values('01-01-01'),('01-01-02'),('01-01-03');
+select * from t1 where f1 in ('01-01-01','2001-01-02','2001-01-03 00:00:00');
+f1
+2001-01-01
+2001-01-02
+2001-01-03
+create table t2(f2 datetime);
+insert into t2 values('01-01-01 00:00:00'),('01-02-03 12:34:56'),('02-04-06 11:22:33');
+select * from t2 where f2 in ('01-01-01','01-02-03 12:34:56','01-02-03');
+f2
+2001-01-01 00:00:00
+2001-02-03 12:34:56
+select * from t1,t2 where '01-01-02' in (f1, cast(f2 as date));
+f1 f2
+2001-01-02 2001-01-01 00:00:00
+2001-01-02 2001-02-03 12:34:56
+2001-01-02 2002-04-06 11:22:33
+select * from t1,t2 where '01-01-01' in (f1, '01-02-03');
+f1 f2
+2001-01-01 2001-01-01 00:00:00
+2001-01-01 2001-02-03 12:34:56
+2001-01-01 2002-04-06 11:22:33
+select * from t1,t2 where if(1,'01-02-03 12:34:56','') in (f1, f2);
+f1 f2
+2001-01-01 2001-02-03 12:34:56
+2001-01-02 2001-02-03 12:34:56
+2001-01-03 2001-02-03 12:34:56
+create table t3(f3 varchar(20));
+insert into t3 select * from t2;
+select * from t2,t3 where f2 in (f3,'03-04-05');
+f2 f3
+2001-01-01 00:00:00 2001-01-01 00:00:00
+2001-02-03 12:34:56 2001-02-03 12:34:56
+2002-04-06 11:22:33 2002-04-06 11:22:33
+select f1,f2,f3 from t1,t2,t3 where (f1,'1') in ((f2,'1'),(f3,'1'));
+f1 f2 f3
+2001-01-01 2001-01-01 00:00:00 2001-01-01 00:00:00
+2001-01-01 2001-02-03 12:34:56 2001-01-01 00:00:00
+2001-01-01 2002-04-06 11:22:33 2001-01-01 00:00:00
+2001-01-01 2001-01-01 00:00:00 2001-02-03 12:34:56
+2001-01-01 2001-01-01 00:00:00 2002-04-06 11:22:33
+select f1 from t1 where ('1',f1) in (('1','01-01-01'),('1','2001-1-1 0:0:0'),('1','02-02-02'));
+f1
+2001-01-01
+drop table t1,t2,t3;
+select least(cast('01-01-01' as date), '01-01-02');
+least(cast('01-01-01' as date), '01-01-02')
+2001-01-01
+select greatest(cast('01-01-01' as date), '01-01-02');
+greatest(cast('01-01-01' as date), '01-01-02')
+01-01-02
+select least(cast('01-01-01' as date), '01-01-02') + 0;
+least(cast('01-01-01' as date), '01-01-02') + 0
+20010101
+select greatest(cast('01-01-01' as date), '01-01-02') + 0;
+greatest(cast('01-01-01' as date), '01-01-02') + 0
+20010102
+select least(cast('01-01-01' as datetime), '01-01-02') + 0;
+least(cast('01-01-01' as datetime), '01-01-02') + 0
+20010101000000
+select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed);
+cast(least(cast('01-01-01' as datetime), '01-01-02') as signed)
+20010101000000
+select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(20,2));
+cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(20,2))
+20010101000000.00
+DROP PROCEDURE IF EXISTS test27759 ;
+CREATE PROCEDURE test27759()
+BEGIN
+declare v_a date default '2007-4-10';
+declare v_b date default '2007-4-11';
+declare v_c datetime default '2004-4-9 0:0:0';
+select v_a as a,v_b as b,
+least( v_a, v_b ) as a_then_b,
+least( v_b, v_a ) as b_then_a,
+least( v_c, v_a ) as c_then_a;
+END;|
+call test27759();
+a b a_then_b b_then_a c_then_a
+2007-04-10 2007-04-11 2007-04-10 2007-04-10 2004-04-09 00:00:00
+drop procedure test27759;
+create table t1 (f1 date);
+insert into t1 values (curdate());
+select left(f1,10) = curdate() from t1;
+left(f1,10) = curdate()
+1
+drop table t1;
+create table t1(f1 date);
+insert into t1 values('01-01-01'),('02-02-02'),('01-01-01'),('02-02-02');
+set @bug28261='';
+select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
+if(@bug28261 = f1, '', @bug28261:= f1)
+2001-01-01
+2002-02-02
+2001-01-01
+2002-02-02
+Warnings:
+Warning 1292 Incorrect date value: '' for column 'f1' at row 1
+select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
+if(@bug28261 = f1, '', @bug28261:= f1)
+2001-01-01
+2002-02-02
+2001-01-01
+2002-02-02
+select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
+if(@bug28261 = f1, '', @bug28261:= f1)
+2001-01-01
+2002-02-02
+2001-01-01
+2002-02-02
+drop table t1;
+create table t1(f1 datetime);
+insert into t1 values('2001-01-01'),('2002-02-02');
+select * from t1 where f1 between 20020101 and 20070101000000;
+f1
+2002-02-02 00:00:00
+select * from t1 where f1 between 2002010 and 20070101000000;
+f1
+2001-01-01 00:00:00
+2002-02-02 00:00:00
+Warnings:
+Warning 1292 Incorrect datetime value: '2002010' for column 'f1' at row 1
+select * from t1 where f1 between 20020101 and 2007010100000;
+f1
+Warnings:
+Warning 1292 Incorrect datetime value: '2007010100000' for column 'f1' at row 1
+drop table t1;
+#
+# Bug#27216: functions with parameters of different date types may
+# return wrong type of the result.
+#
+create table t1 (f1 date, f2 datetime, f3 varchar(20));
+create table t2 as select coalesce(f1,f1) as f4 from t1;
+desc t2;
+Field Type Null Key Default Extra
+f4 date YES NULL
+create table t3 as select coalesce(f1,f2) as f4 from t1;
+desc t3;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t4 as select coalesce(f2,f2) as f4 from t1;
+desc t4;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t5 as select coalesce(f1,f3) as f4 from t1;
+desc t5;
+Field Type Null Key Default Extra
+f4 varbinary(20) YES NULL
+create table t6 as select coalesce(f2,f3) as f4 from t1;
+desc t6;
+Field Type Null Key Default Extra
+f4 varbinary(20) YES NULL
+create table t7 as select coalesce(makedate(1997,1),f2) as f4 from t1;
+desc t7;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t8 as select coalesce(cast('01-01-01' as datetime),f2) as f4
+from t1;
+desc t8;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t9 as select case when 1 then cast('01-01-01' as date)
+when 0 then cast('01-01-01' as date) end as f4 from t1;
+desc t9;
+Field Type Null Key Default Extra
+f4 date YES NULL
+create table t10 as select case when 1 then cast('01-01-01' as datetime)
+when 0 then cast('01-01-01' as datetime) end as f4 from t1;
+desc t10;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t11 as select if(1, cast('01-01-01' as datetime),
+cast('01-01-01' as date)) as f4 from t1;
+desc t11;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t12 as select least(cast('01-01-01' as datetime),
+cast('01-01-01' as date)) as f4 from t1;
+desc t12;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+create table t13 as select ifnull(cast('01-01-01' as datetime),
+cast('01-01-01' as date)) as f4 from t1;
+desc t13;
+Field Type Null Key Default Extra
+f4 datetime YES NULL
+drop tables t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13;
+###################################################################
+create table t1 (f1 time);
+insert into t1 set f1 = '45:44:44';
+insert into t1 set f1 = '15:44:44';
+select * from t1 where (convert(f1,datetime)) != 1;
+f1
+15:44:44
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 45:44:44'
+drop table t1;
+create table t1 (a tinyint);
+insert into t1 values (), (), ();
+select sum(a) from t1 group by convert(a, datetime);
+sum(a)
+NULL
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result
index de8610f6514..ef524444966 100644
--- a/mysql-test/r/type_decimal.result
+++ b/mysql-test/r/type_decimal.result
@@ -1,4 +1,4 @@
-DROP TABLE IF EXISTS t1, t2, t3;
+DROP TABLE IF EXISTS t1, t2;
SET SQL_WARNINGS=1;
CREATE TABLE t1 (
id int(11) NOT NULL auto_increment,
@@ -156,42 +156,62 @@ insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+insert into t1 values ("1e+4294967296"),("1e-4294967296");
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 2
+insert into t1 values ("1e+18446744073709551615"),("1e+18446744073709551616"),("1e-9223372036854775807"),("1e-9223372036854775809");
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1366 Incorrect decimal value: '1e+18446744073709551616' for column 'a' at row 2
+Note 1265 Data truncated for column 'a' at row 3
+Warning 1366 Incorrect decimal value: '1e-9223372036854775809' for column 'a' at row 4
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 3
+Note 1265 Data truncated for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 3
select * from t1;
a
0.00
--0.00
-+0.00
-01.00
-+01.00
--01.00
+0.00
+0.00
+1.00
+1.00
+-1.00
-0.10
-+0.10
0.10
-000000001.00
-+00000001.00
--00000001.00
-111111111.11
-111111111.11
+0.10
+1.00
+1.00
+-1.00
+99999999.99
+99999999.99
-11111111.11
-99999999.99
-999999999.99
-999999999.99
-999999999.99
+99999999.99
+99999999.99
+99999999.99
0.00
-99999999.99
+99999999.99
+0.00
+99999999.99
+0.00
+0.00
+0.00
123.40
12340.00
1.23
@@ -201,45 +221,46 @@ drop table t1;
create table t1 (a decimal(10,2) unsigned);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 6
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 6
insert into t1 values ("-.1"),("+.1"),(".1");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 3
+Note 1265 Data truncated for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 3
select * from t1;
a
0.00
0.00
-+0.00
-01.00
-+01.00
+0.00
+1.00
+1.00
0.00
0.00
-+0.10
0.10
-00000001.00
-+0000001.00
+0.10
+1.00
+1.00
0.00
99999999.99
99999999.99
@@ -259,32 +280,33 @@ drop table t1;
create table t1 (a decimal(10,2) zerofill);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 6
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 6
insert into t1 values ("-.1"),("+.1"),(".1");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 3
+Note 1265 Data truncated for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 3
select * from t1;
a
00000000.00
@@ -319,20 +341,27 @@ insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0);
insert into t1 values (-.1),(+.1),(.1);
insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values (1e+100),(1e-100),(-1e+100);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Note 1265 Data truncated for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
+Warnings:
+Note 1265 Data truncated for column 'a' at row 3
+insert into t1 values (MID("987",1,2)),("987 "),("987.6e+2 ");
select * from t1;
a
0.00
--0.00
+0.00
0.00
1.00
1.00
@@ -343,13 +372,13 @@ a
1.00
1.00
-1.00
-111111111.11
-111111111.11
+99999999.99
+99999999.99
-11111111.11
-99999999.99
-999999999.99
-999999999.99
-999999999.99
+99999999.99
+99999999.99
+99999999.99
0.00
-99999999.99
123.40
@@ -357,44 +386,48 @@ a
1.23
1230.00
123.00
+98.00
+987.00
+98760.00
drop table t1;
create table t1 (a decimal);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 7
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 6
+Warning 1264 Out of range value adjusted for column 'a' at row 7
select * from t1;
a
-9999999999
-1
-+1
-01
-+0000000001
-12345678901
-99999999999
+1
+1
+1
+9999999999
+9999999999
drop table t1;
create table t1 (a decimal unsigned);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 7
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 7
select * from t1;
a
0
0
-+1
-01
-+000000001
+1
+1
+1
1234567890
9999999999
drop table t1;
create table t1 (a decimal zerofill);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 7
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 7
select * from t1;
a
0000000000
@@ -408,9 +441,9 @@ drop table t1;
create table t1 (a decimal unsigned zerofill);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
-Warning 1264 Data truncated; out of range for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 7
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 7
select * from t1;
a
0000000000
@@ -424,19 +457,17 @@ drop table t1;
create table t1(a decimal(10,0));
insert into t1 values ("1e4294967295");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
-99999999999
+9999999999
delete from t1;
insert into t1 values("1e4294967297");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
-99999999999
+9999999999
drop table t1;
CREATE TABLE t1 (a_dec DECIMAL(-1,0));
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 '-1,0))' at line 1
@@ -445,75 +476,70 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
CREATE TABLE t1 (a_dec DECIMAL(-1,1));
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 '-1,1))' at line 1
CREATE TABLE t1 (a_dec DECIMAL(0,11));
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a_dec` decimal(12,11) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-DROP TABLE t1;
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'a_dec').
create table t1(a decimal(7,3));
insert into t1 values ('1'),('+1'),('-1'),('0000000001'),('+0000000001'),('-0000000001'),('10'),('+10'),('-10'),('0000000010'),('+0000000010'),('-0000000010'),('100'),('+100'),('-100'),('0000000100'),('+0000000100'),('-0000000100'),('1000'),('+1000'),('-1000'),('0000001000'),('+0000001000'),('-0000001000'),('10000'),('+10000'),('-10000'),('0000010000'),('+0000010000'),('-0000010000'),('100000'),('+100000'),('-100000'),('0000100000'),('+0000100000'),('-0000100000'),('1000000'),('+1000000'),('-1000000'),('0001000000'),('+0001000000'),('-0001000000'),('10000000'),('+10000000'),('-10000000'),('0010000000'),('+0010000000'),('-0010000000'),('100000000'),('+100000000'),('-100000000'),('0100000000'),('+0100000000'),('-0100000000'),('1000000000'),('+1000000000'),('-1000000000'),('1000000000'),('+1000000000'),('-1000000000');
select * from t1;
a
1.000
-+1.000
+1.000
-1.000
-00001.000
-+0001.000
--0001.000
+1.000
+1.000
+-1.000
+10.000
+10.000
+-10.000
+10.000
10.000
-+10.000
-10.000
-00010.000
-+0010.000
--0010.000
100.000
-+100.000
+100.000
-100.000
-00100.000
-+0100.000
--0100.000
+100.000
+100.000
+-100.000
+1000.000
1000.000
-+1000.000
-1000.000
-01000.000
-+1000.000
+1000.000
+1000.000
-1000.000
-10000.000
-10000.000
+9999.999
+9999.999
-9999.999
-10000.000
-10000.000
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
-99999.999
-99999.999
+9999.999
+9999.999
-9999.999
drop table t1;
create table t1(a decimal(7,3) unsigned);
@@ -521,22 +547,22 @@ insert into t1 values ('1'),('+1'),('-1'),('0000000001'),('+0000000001'),('-0000
select * from t1;
a
1.000
-+1.000
+1.000
0.000
-0001.000
-+001.000
+1.000
+1.000
0.000
10.000
-+10.000
+10.000
0.000
-0010.000
-+010.000
+10.000
+10.000
0.000
100.000
-+100.000
+100.000
0.000
-0100.000
-+100.000
+100.000
+100.000
0.000
1000.000
1000.000
@@ -648,25 +674,142 @@ a
drop table t1;
create table t1(a decimal(10,5), b decimal(10,1));
insert into t1 values(123.12345, 123.12345);
+Warnings:
+Note 1265 Data truncated for column 'b' at row 1
update t1 set b=a;
Warnings:
-Warning 1265 Data truncated for column 'b' at row 1
+Note 1265 Data truncated for column 'b' at row 1
select * from t1;
a b
123.12345 123.1
drop table t1;
-create table t1 (d decimal(10,1));
-create table t2 (d decimal(10,9));
-insert into t1 values ("100000000.0");
-insert into t2 values ("1.23456780");
-create table t3 select * from t2 union select * from t1;
-select * from t3;
+End of 4.1 tests
+CREATE TABLE t1
+(EMPNUM CHAR(3) NOT NULL,
+HOURS DECIMAL(5));
+CREATE TABLE t2
+(EMPNUM CHAR(3) NOT NULL,
+HOURS BIGINT);
+INSERT INTO t1 VALUES ('E1',40);
+INSERT INTO t1 VALUES ('E8',NULL);
+INSERT INTO t2 VALUES ('E1',40);
+SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t2);
+EMPNUM
+E1
+SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t1);
+EMPNUM
+E1
+DROP TABLE t1,t2;
+create table t1 (d decimal(64,0));
+insert into t1 values (1);
+select * from t1;
d
-1.234567800
-100000000.000000000
-show create table t3;
+1
+drop table t1;
+create table t1 (d decimal(5));
+show create table t1;
Table Create Table
-t3 CREATE TABLE `t3` (
- `d` decimal(18,9) default NULL
+t1 CREATE TABLE `t1` (
+ `d` decimal(5,0) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-drop table t1, t2, t3;
+drop table t1;
+create table t1 (d decimal);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `d` decimal(10,0) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (d decimal(66,0));
+ERROR 42000: Too big precision 66 specified for column 'd'. Maximum is 65.
+CREATE TABLE t1 (i INT, d1 DECIMAL(9,2), d2 DECIMAL(9,2));
+INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
+(2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
+(2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),
+(4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),
+(5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20),
+(6, 0.00, 0.00), (6, -51.40, 0.00);
+SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1 GROUP BY i HAVING a <> b;
+i a b
+6 -51.40 0.00
+SELECT i, ROUND(SUM(d1), 2) AS a, ROUND(SUM(d2), 2) AS b FROM t1 GROUP BY i
+HAVING a <> b;
+i a b
+6 -51.40 0.00
+drop table t1;
+create table t1 (c1 varchar(100), c2 longtext);
+insert into t1 set c1= 'non PS, 1.0 as constant', c2=1.0;
+prepare stmt from "insert into t1 set c1='PS, 1.0 as constant ', c2=1.0";
+execute stmt;
+set @a=1.0;
+insert into t1 set c1='non PS, 1.0 in parameter', c2=@a;
+prepare stmt from "insert into t1 set c1='PS, 1.0 in parameter ', c2=?";
+execute stmt using @a;
+select * from t1;
+c1 c2
+non PS, 1.0 as constant 1.0
+PS, 1.0 as constant 1.0
+non PS, 1.0 in parameter 1.0
+PS, 1.0 in parameter 1.0
+deallocate prepare stmt;
+drop table t1;
+create table t1 (
+strippedproductid char(15) not null default '',
+zlevelprice decimal(10,2) default null,
+primary key (strippedproductid)
+);
+create table t2 (
+productid char(15) not null default '',
+zlevelprice char(21) default null,
+primary key (productid)
+);
+insert into t1 values ('002trans','49.99');
+insert into t1 values ('003trans','39.98');
+insert into t1 values ('004trans','31.18');
+insert INTO t2 SELECT * FROM t1;
+select * from t2;
+productid zlevelprice
+002trans 49.99
+003trans 39.98
+004trans 31.18
+drop table t1, t2;
+create table t1 (f1 decimal(5));
+insert into t1 values (40);
+flush tables;
+select f1 from t1 where f1 in (select f1 from t1);
+f1
+40
+drop table t1;
+create table t1 as
+select from_days(s) as date,t
+from (select 1 as s,'t' as t union select null, null ) as sub1;
+select group_concat(t) from t1 group by week(date)/10;
+group_concat(t)
+t
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00'
+drop table t1;
+CREATE TABLE t1 (
+qty decimal(16,6) default NULL,
+dps tinyint(3) unsigned default NULL
+);
+INSERT INTO t1 VALUES (1.1325,3);
+SELECT ROUND(qty,3), dps, ROUND(qty,dps) FROM t1;
+ROUND(qty,3) dps ROUND(qty,dps)
+1.133 3 1.133
+DROP TABLE t1;
+SELECT 1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS '%';
+%
+0.012345687012345687012345687012345687012345687012345687012345687012345687000000000
+SELECT MOD(1, .123456789123456789123456789123456789123456789123456789123456789123456789123456789) AS 'MOD()';
+MOD()
+0.012345687012345687012345687012345687012345687012345687012345687012345687000000000
+create table t1 (f1 decimal(6,6),f2 decimal(6,6) zerofill);
+insert into t1 values (-0.123456,0.123456);
+select group_concat(f1),group_concat(f2) from t1;
+group_concat(f1) group_concat(f2)
+-0.123456 0.123456
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_enum.result b/mysql-test/r/type_enum.result
index 415c391ebb8..9de296844a0 100644
--- a/mysql-test/r/type_enum.result
+++ b/mysql-test/r/type_enum.result
@@ -1626,7 +1626,7 @@ create table t1 (a enum (' ','a','b') not null);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` enum('','a','b') NOT NULL default ''
+ `a` enum('','a','b') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a enum (' ','a','b ') not null default 'b ');
@@ -1654,7 +1654,7 @@ set names latin1;
create table t1 (a enum(0xE4, '1', '2') not null default 0xE4);
show columns from t1;
Field Type Null Key Default Extra
-a enum('ä','1','2') ä
+a enum('ä','1','2') NO ä
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -1670,12 +1670,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) default '1',
- `b` enum('value','öäü_value','ÊÃÕ') NOT NULL default 'value'
+ `b` enum('value','öäü_value','ÊÃÕ') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
a int(11) YES 1
-b enum('value','öäü_value','ÊÃÕ') value
+b enum('value','öäü_value','ÊÃÕ') NO NULL
drop table t1;
CREATE TABLE t1 (c enum('a', 'A') BINARY);
INSERT INTO t1 VALUES ('a'),('A');
@@ -1802,3 +1802,54 @@ id c1 + 0 c1
4 0
DROP TABLE t1;
End of 4.1 tests
+create table t1(f1 set('a','b'), index(f1));
+insert into t1 values(''),(''),('a'),('b');
+select * from t1 where f1='';
+f1
+
+
+drop table t1;
+CREATE TABLE t1 (c1 ENUM('a', '', 'b'));
+INSERT INTO t1 (c1) VALUES ('b');
+INSERT INTO t1 (c1) VALUES ('');
+INSERT INTO t1 (c1) VALUES (0);
+Warnings:
+Warning 1265 Data truncated for column 'c1' at row 1
+INSERT INTO t1 (c1) VALUES ('');
+SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1;
+c1 + 0 COUNT(c1)
+0 1
+2 2
+3 1
+CREATE TABLE t2 SELECT * FROM t1;
+SELECT c1 + 0 FROM t2;
+c1 + 0
+3
+2
+0
+2
+DROP TABLE t1,t2;
+CREATE TABLE t1(a enum('a','b','c','d'));
+INSERT INTO t1 VALUES (4),(1),(0),(3);
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 3
+SELECT a FROM t1;
+a
+d
+a
+
+c
+EXPLAIN SELECT a FROM t1 WHERE a=0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
+SELECT a FROM t1 WHERE a=0;
+a
+
+ALTER TABLE t1 ADD PRIMARY KEY (a);
+EXPLAIN SELECT a FROM t1 WHERE a=0;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 1 const 1 Using index
+SELECT a FROM t1 WHERE a=0;
+a
+
+DROP TABLE t1;
diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result
index 3e66fa70dc1..f1075604ca9 100644
--- a/mysql-test/r/type_float.result
+++ b/mysql-test/r/type_float.result
@@ -24,21 +24,21 @@ f1 float NULL YES NULL #
f2 double NULL YES NULL #
insert into t1 values(10,10),(1e+5,1e+5),(1234567890,1234567890),(1e+10,1e+10),(1e+15,1e+15),(1e+20,1e+20),(1e+50,1e+50),(1e+150,1e+150);
Warnings:
-Warning 1264 Data truncated; out of range for column 'f1' at row 7
-Warning 1264 Data truncated; out of range for column 'f1' at row 8
+Warning 1264 Out of range value adjusted for column 'f1' at row 7
+Warning 1264 Out of range value adjusted for column 'f1' at row 8
insert into t1 values(-10,-10),(1e-5,1e-5),(1e-10,1e-10),(1e-15,1e-15),(1e-20,1e-20),(1e-50,1e-50),(1e-150,1e-150);
select * from t1;
f1 f2
10 10
100000 100000
-1.23457e+9 1234567890
+1.23457e+09 1234567890
1e+10 10000000000
1e+15 1e+15
1e+20 1e+20
3.40282e+38 1e+50
3.40282e+38 1e+150
-10 -10
-1e-5 1e-5
+1e-05 1e-05
1e-10 1e-10
1e-15 1e-15
1e-20 1e-20
@@ -72,7 +72,7 @@ select a from t1 order by a;
a
-0.010
-0.002
--0.000
+0.000
0.000
1.000
select min(a) from t1;
@@ -92,7 +92,7 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`col1` double default NULL,
- `col2` double(53,5) default NULL,
+ `col2` double(22,5) default NULL,
`col3` double default NULL,
`col4` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
@@ -103,7 +103,7 @@ select max(a),min(a),avg(a) from t1;
max(a) min(a) avg(a)
1 1 1
drop table t1;
-create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(5,6));
+create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(7,6));
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment
f float NULL YES NULL #
@@ -125,7 +125,7 @@ select a from t1 order by a;
a
-0.010
-0.002
--0.000
+0.000
0.000
1.000
select min(a) from t1;
@@ -133,17 +133,7 @@ min(a)
-0.010
drop table t1;
create table t1 (a float(200,100), b double(200,100));
-insert t1 values (1.0, 2.0);
-select * from t1;
-a b
-1.000000000000000000000000000000 2.000000000000000000000000000000
-show create table t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` float(200,30) default NULL,
- `b` double(200,30) default NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
-drop table t1;
+ERROR 42000: Too big scale 100 specified for column 'a'. Maximum is 30.
create table t1 (c20 char);
insert into t1 values (5000.0);
Warnings:
@@ -159,7 +149,7 @@ create table t1 (d1 double, d2 double unsigned);
insert into t1 set d1 = -1.0;
update t1 set d2 = d1;
Warnings:
-Warning 1264 Data truncated; out of range for column 'd2' at row 1
+Warning 1264 Out of range value adjusted for column 'd2' at row 1
select * from t1;
d1 d2
-1 0
@@ -167,12 +157,12 @@ drop table t1;
create table t1 (f float(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'f' at row 1
-Warning 1264 Data truncated; out of range for column 'f' at row 2
-Warning 1264 Data truncated; out of range for column 'f' at row 3
-Warning 1264 Data truncated; out of range for column 'f' at row 4
-Warning 1264 Data truncated; out of range for column 'f' at row 5
-Warning 1264 Data truncated; out of range for column 'f' at row 6
+Warning 1264 Out of range value adjusted for column 'f' at row 1
+Warning 1264 Out of range value adjusted for column 'f' at row 2
+Warning 1264 Out of range value adjusted for column 'f' at row 3
+Warning 1264 Out of range value adjusted for column 'f' at row 4
+Warning 1264 Out of range value adjusted for column 'f' at row 5
+Warning 1264 Out of range value adjusted for column 'f' at row 6
select * from t1;
f
-9.999
@@ -185,12 +175,12 @@ drop table if exists t1;
create table t1 (f double(4,3));
insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
Warnings:
-Warning 1264 Data truncated; out of range for column 'f' at row 1
-Warning 1264 Data truncated; out of range for column 'f' at row 2
-Warning 1264 Data truncated; out of range for column 'f' at row 3
-Warning 1264 Data truncated; out of range for column 'f' at row 4
-Warning 1264 Data truncated; out of range for column 'f' at row 5
-Warning 1264 Data truncated; out of range for column 'f' at row 6
+Warning 1264 Out of range value adjusted for column 'f' at row 1
+Warning 1264 Out of range value adjusted for column 'f' at row 2
+Warning 1264 Out of range value adjusted for column 'f' at row 3
+Warning 1264 Out of range value adjusted for column 'f' at row 4
+Warning 1264 Out of range value adjusted for column 'f' at row 5
+Warning 1264 Out of range value adjusted for column 'f' at row 6
select * from t1;
f
-9.999
@@ -242,12 +232,12 @@ insert into t2 values ("1.23456780");
create table t3 select * from t2 union select * from t1;
select * from t3;
d
-1.234567800
-100000000.000000000
+1.2345678
+100000000
show create table t3;
Table Create Table
t3 CREATE TABLE `t3` (
- `d` double(22,9) default NULL
+ `d` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2, t3;
create table t1 select 105213674794682365.00 + 0.0 x;
@@ -255,22 +245,22 @@ show warnings;
Level Code Message
desc t1;
Field Type Null Key Default Extra
-x double 0
+x decimal(21,2) NO 0.00
drop table t1;
create table t1 select 0.0 x;
desc t1;
Field Type Null Key Default Extra
-x double(3,1) 0.0
+x decimal(2,1) NO 0.0
create table t2 select 105213674794682365.00 y;
desc t2;
Field Type Null Key Default Extra
-y double(21,2) 0.00
+y decimal(20,2) NO 0.00
create table t3 select x+y a from t1,t2;
show warnings;
Level Code Message
desc t3;
Field Type Null Key Default Extra
-a double 0
+a decimal(21,2) NO 0.00
drop table t1,t2,t3;
select 1e-308, 1.00000001e-300, 100000000e-300;
1e-308 1.00000001e-300 100000000e-300
@@ -350,3 +340,56 @@ s
0.00
drop table t1;
End of 4.1 tests
+create table t1 (s1 float(0,2));
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1').
+create table t1 (s1 float(1,2));
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1').
+CREATE TABLE t1 (
+f1 real zerofill,
+f2 double zerofill,
+f3 float zerofill);
+INSERT INTO t1 VALUES ( 0.314152e+1, 0.314152e+1, 0.314152e+1);
+PREPARE stmt1 FROM 'select f1, f2, f3 FROM t1';
+select f1, f2, f3 FROM t1;
+f1 f2 f3
+0000000000000003.14152 0000000000000003.14152 000003.14152
+select f1, f2, f3 FROM t1;
+f1 f2 f3
+0000000000000003.14152 0000000000000003.14152 000003.14152
+EXECUTE stmt1;
+f1 f2 f3
+0000000000000003.14152 0000000000000003.14152 000003.14152
+DROP TABLE t1;
+create table t1 (f1 double(200, 0));
+insert into t1 values (1e199), (-1e199);
+insert into t1 values (1e200), (-1e200);
+insert into t1 values (2e200), (-2e200);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 2
+select f1 + 0e0 from t1;
+f1 + 0e0
+1e+199
+-1e+199
+1e+200
+-1e+200
+1e+200
+-1e+200
+drop table t1;
+create table t1 (f1 float(30, 0));
+insert into t1 values (1e29), (-1e29);
+insert into t1 values (1e30), (-1e30);
+insert into t1 values (2e30), (-2e30);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 2
+select f1 + 0e0 from t1;
+f1 + 0e0
+1.0000000150475e+29
+-1.0000000150475e+29
+1.0000000150475e+30
+-1.0000000150475e+30
+1.0000000150475e+30
+-1.0000000150475e+30
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_newdecimal-big.result b/mysql-test/r/type_newdecimal-big.result
new file mode 100644
index 00000000000..4e694702d14
--- /dev/null
+++ b/mysql-test/r/type_newdecimal-big.result
@@ -0,0 +1,26 @@
+drop procedure if exists sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE v1, v2, v3, v4 DECIMAL(28,12);
+DECLARE v3_2, v4_2 DECIMAL(28, 12);
+DECLARE counter INT;
+SET v1 = 1;
+SET v2 = 2;
+SET v3 = 1000000000000;
+SET v4 = 2000000000000;
+SET counter = 0;
+WHILE counter < 100000 DO
+SET v1 = v1 + 0.000000000001;
+SET v2 = v2 - 0.000000000001;
+SET v3 = v3 + 1;
+SET v4 = v4 - 1;
+SET counter = counter + 1;
+END WHILE;
+SET v3_2 = v3 * 0.000000000001;
+SET v4_2 = v4 * 0.000000000001;
+SELECT v1, v2, v3, v3_2, v4, v4_2;
+END//
+call sp1()//
+v1 v2 v3 v3_2 v4 v4_2
+1.000000100000 1.999999900000 1000000100000.000000000000 1.000000100000 1999999900000.000000000000 1.999999900000
+drop procedure sp1;
diff --git a/mysql-test/r/type_newdecimal.result b/mysql-test/r/type_newdecimal.result
new file mode 100644
index 00000000000..75d9582a23c
--- /dev/null
+++ b/mysql-test/r/type_newdecimal.result
@@ -0,0 +1,1502 @@
+drop table if exists t1;
+select 1.1 IN (1.0, 1.2);
+1.1 IN (1.0, 1.2)
+0
+select 1.1 IN (1.0, 1.2, 1.1, 1.4, 0.5);
+1.1 IN (1.0, 1.2, 1.1, 1.4, 0.5)
+1
+select 1.1 IN (1.0, 1.2, NULL, 1.4, 0.5);
+1.1 IN (1.0, 1.2, NULL, 1.4, 0.5)
+NULL
+select 0.5 IN (1.0, 1.2, NULL, 1.4, 0.5);
+0.5 IN (1.0, 1.2, NULL, 1.4, 0.5)
+1
+select 1 IN (1.11, 1.2, 1.1, 1.4, 1, 0.5);
+1 IN (1.11, 1.2, 1.1, 1.4, 1, 0.5)
+1
+select 1 IN (1.11, 1.2, 1.1, 1.4, NULL, 0.5);
+1 IN (1.11, 1.2, 1.1, 1.4, NULL, 0.5)
+NULL
+select case 1.0 when 0.1 then "a" when 1.0 then "b" else "c" END;
+case 1.0 when 0.1 then "a" when 1.0 then "b" else "c" END
+b
+select case 0.1 when 0.1 then "a" when 1.0 then "b" else "c" END;
+case 0.1 when 0.1 then "a" when 1.0 then "b" else "c" END
+a
+select case 1 when 0.1 then "a" when 1.0 then "b" else "c" END;
+case 1 when 0.1 then "a" when 1.0 then "b" else "c" END
+b
+select case 1.0 when 0.1 then "a" when 1 then "b" else "c" END;
+case 1.0 when 0.1 then "a" when 1 then "b" else "c" END
+b
+select case 1.001 when 0.1 then "a" when 1 then "b" else "c" END;
+case 1.001 when 0.1 then "a" when 1 then "b" else "c" END
+c
+create table t1 (a decimal(6,3));
+insert into t1 values (1.0), (NULL), (0.1);
+select * from t1;
+a
+1.000
+NULL
+0.100
+select 0.1 in (1.0, 1.2, 1.1, a, 1.4, 0.5) from t1;
+0.1 in (1.0, 1.2, 1.1, a, 1.4, 0.5)
+0
+NULL
+1
+drop table t1;
+create table t1 select if(1, 1.1, 1.2), if(0, 1.1, 1.2), if(0.1, 1.1, 1.2), if(0, 1, 1.1), if(0, NULL, 1.2), if(1, 0.22e1, 1.1), if(1E0, 1.1, 1.2);
+select * from t1;
+if(1, 1.1, 1.2) if(0, 1.1, 1.2) if(0.1, 1.1, 1.2) if(0, 1, 1.1) if(0, NULL, 1.2) if(1, 0.22e1, 1.1) if(1E0, 1.1, 1.2)
+1.1 1.2 1.1 1.1 1.2 2.2 1.1
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `if(1, 1.1, 1.2)` decimal(2,1) NOT NULL default '0.0',
+ `if(0, 1.1, 1.2)` decimal(2,1) NOT NULL default '0.0',
+ `if(0.1, 1.1, 1.2)` decimal(2,1) NOT NULL default '0.0',
+ `if(0, 1, 1.1)` decimal(2,1) NOT NULL default '0.0',
+ `if(0, NULL, 1.2)` decimal(2,1) default NULL,
+ `if(1, 0.22e1, 1.1)` double NOT NULL default '0',
+ `if(1E0, 1.1, 1.2)` decimal(2,1) NOT NULL default '0.0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 select nullif(1.1, 1.1), nullif(1.1, 1.2), nullif(1.1, 0.11e1), nullif(1.0, 1), nullif(1, 1.0), nullif(1, 1.1);
+select * from t1;
+nullif(1.1, 1.1) nullif(1.1, 1.2) nullif(1.1, 0.11e1) nullif(1.0, 1) nullif(1, 1.0) nullif(1, 1.1)
+NULL 1.1 NULL NULL NULL 1
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `nullif(1.1, 1.1)` decimal(2,1) default NULL,
+ `nullif(1.1, 1.2)` decimal(2,1) default NULL,
+ `nullif(1.1, 0.11e1)` decimal(2,1) default NULL,
+ `nullif(1.0, 1)` decimal(2,1) default NULL,
+ `nullif(1, 1.0)` int(1) default NULL,
+ `nullif(1, 1.1)` int(1) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (a decimal(4,2));
+insert into t1 value (10000), (1.1e10), ("11111"), (100000.1);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+select a from t1;
+a
+99.99
+99.99
+99.99
+99.99
+-99.99
+-99.99
+-99.99
+-99.99
+drop table t1;
+create table t1 (a decimal(4,2) unsigned);
+insert into t1 value (10000), (1.1e10), ("11111"), (100000.1);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+select a from t1;
+a
+99.99
+99.99
+99.99
+99.99
+0.00
+0.00
+0.00
+0.00
+drop table t1;
+create table t1 (a bigint);
+insert into t1 values (18446744073709551615.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+insert into t1 values (9223372036854775808.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+insert into t1 values (-18446744073709551615.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+9223372036854775807
+9223372036854775807
+-9223372036854775808
+drop table t1;
+create table t1 (a bigint unsigned);
+insert into t1 values (18446744073709551615.0);
+insert into t1 values (9223372036854775808.0);
+insert into t1 values (9999999999999999999999999.000);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+insert into t1 values (-1.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+18446744073709551615
+9223372036854775808
+18446744073709551615
+0
+drop table t1;
+create table t1 (a tinyint);
+insert into t1 values (18446744073709551615.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+insert into t1 values (9223372036854775808.0);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+select * from t1;
+a
+127
+127
+drop table t1;
+create table t1 select round(15.4,-1), truncate(-5678.123451,-3), abs(-1.1), -(-1.1);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `round(15.4,-1)` decimal(3,0) NOT NULL default '0',
+ `truncate(-5678.123451,-3)` decimal(4,0) NOT NULL default '0',
+ `abs(-1.1)` decimal(3,1) NOT NULL default '0.0',
+ `-(-1.1)` decimal(2,1) NOT NULL default '0.0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set session sql_mode='traditional';
+select 1e10/0e0;
+1e10/0e0
+NULL
+Warnings:
+Error 1365 Division by 0
+create table wl1612 (col1 int, col2 decimal(38,10), col3 numeric(38,10));
+insert into wl1612 values(1,12345678901234567890.1234567890,12345678901234567890.1234567890);
+select * from wl1612;
+col1 col2 col3
+1 12345678901234567890.1234567890 12345678901234567890.1234567890
+insert into wl1612 values(2,01234567890123456789.0123456789,01234567890123456789.0123456789);
+select * from wl1612 where col1=2;
+col1 col2 col3
+2 1234567890123456789.0123456789 1234567890123456789.0123456789
+insert into wl1612 values(3,1234567890123456789012345678.0123456789,1234567890123456789012345678.0123456789);
+select * from wl1612 where col1=3;
+col1 col2 col3
+3 1234567890123456789012345678.0123456789 1234567890123456789012345678.0123456789
+select col1/0 from wl1612;
+col1/0
+NULL
+NULL
+NULL
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+Error 1365 Division by 0
+select col2/0 from wl1612;
+col2/0
+NULL
+NULL
+NULL
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+Error 1365 Division by 0
+select col3/0 from wl1612;
+col3/0
+NULL
+NULL
+NULL
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+Error 1365 Division by 0
+insert into wl1612 values(5,5000.0005,5000.0005);
+insert into wl1612 values(6,5000.0005,5000.0005);
+select sum(col2),sum(col3) from wl1612;
+sum(col2) sum(col3)
+1234567903703703580370380357.1491481468 1234567903703703580370380357.1491481468
+insert into wl1612 values(7,500000.000005,500000.000005);
+insert into wl1612 values(8,500000.000005,500000.000005);
+select sum(col2),sum(col3) from wl1612 where col1>4;
+sum(col2) sum(col3)
+1010000.0010100000 1010000.0010100000
+insert into wl1612 (col1, col2) values(9,1.01234567891);
+Warnings:
+Note 1265 Data truncated for column 'col2' at row 1
+insert into wl1612 (col1, col2) values(10,1.01234567894);
+Warnings:
+Note 1265 Data truncated for column 'col2' at row 1
+insert into wl1612 (col1, col2) values(11,1.01234567895);
+Warnings:
+Note 1265 Data truncated for column 'col2' at row 1
+insert into wl1612 (col1, col2) values(12,1.01234567896);
+Warnings:
+Note 1265 Data truncated for column 'col2' at row 1
+select col1,col2 from wl1612 where col1>8;
+col1 col2
+9 1.0123456789
+10 1.0123456789
+11 1.0123456790
+12 1.0123456790
+insert into wl1612 (col1, col3) values(13,1.01234567891);
+Warnings:
+Note 1265 Data truncated for column 'col3' at row 1
+insert into wl1612 (col1, col3) values(14,1.01234567894);
+Warnings:
+Note 1265 Data truncated for column 'col3' at row 1
+insert into wl1612 (col1, col3) values(15,1.01234567895);
+Warnings:
+Note 1265 Data truncated for column 'col3' at row 1
+insert into wl1612 (col1, col3) values(16,1.01234567896);
+Warnings:
+Note 1265 Data truncated for column 'col3' at row 1
+select col1,col3 from wl1612 where col1>12;
+col1 col3
+13 1.0123456789
+14 1.0123456789
+15 1.0123456790
+16 1.0123456790
+select col1 from wl1612 where col1>4 and col2=1.01234567891;
+col1
+select col1 from wl1612 where col1>4 and col2=1.0123456789;
+col1
+9
+10
+select col1 from wl1612 where col1>4 and col2<>1.0123456789;
+col1
+5
+6
+7
+8
+11
+12
+select col1 from wl1612 where col1>4 and col2<1.0123456789;
+col1
+select col1 from wl1612 where col1>4 and col2<=1.0123456789;
+col1
+9
+10
+select col1 from wl1612 where col1>4 and col2>1.0123456789;
+col1
+5
+6
+7
+8
+11
+12
+select col1 from wl1612 where col1>4 and col2>=1.0123456789;
+col1
+5
+6
+7
+8
+9
+10
+11
+12
+select col1 from wl1612 where col1>4 and col2=1.012345679;
+col1
+11
+12
+select col1 from wl1612 where col1>4 and col2<>1.012345679;
+col1
+5
+6
+7
+8
+9
+10
+select col1 from wl1612 where col1>4 and col3=1.01234567891;
+col1
+select col1 from wl1612 where col1>4 and col3=1.0123456789;
+col1
+13
+14
+select col1 from wl1612 where col1>4 and col3<>1.0123456789;
+col1
+5
+6
+7
+8
+15
+16
+select col1 from wl1612 where col1>4 and col3<1.0123456789;
+col1
+select col1 from wl1612 where col1>4 and col3<=1.0123456789;
+col1
+13
+14
+select col1 from wl1612 where col1>4 and col3>1.0123456789;
+col1
+5
+6
+7
+8
+15
+16
+select col1 from wl1612 where col1>4 and col3>=1.0123456789;
+col1
+5
+6
+7
+8
+13
+14
+15
+16
+select col1 from wl1612 where col1>4 and col3=1.012345679;
+col1
+15
+16
+select col1 from wl1612 where col1>4 and col3<>1.012345679;
+col1
+5
+6
+7
+8
+13
+14
+drop table wl1612;
+select 1/3;
+1/3
+0.3333
+select 0.8=0.7+0.1;
+0.8=0.7+0.1
+1
+select 0.7+0.1;
+0.7+0.1
+0.8
+create table wl1612_1 (col1 int);
+insert into wl1612_1 values(10);
+select * from wl1612_1 where 0.8=0.7+0.1;
+col1
+10
+select 0.07+0.07 from wl1612_1;
+0.07+0.07
+0.14
+select 0.07-0.07 from wl1612_1;
+0.07-0.07
+0.00
+select 0.07*0.07 from wl1612_1;
+0.07*0.07
+0.0049
+select 0.07/0.07 from wl1612_1;
+0.07/0.07
+1.000000
+drop table wl1612_1;
+create table wl1612_2 (col1 decimal(10,2), col2 numeric(10,2));
+insert into wl1612_2 values(1,1);
+insert into wl1612_2 values(+1,+1);
+insert into wl1612_2 values(+01,+01);
+insert into wl1612_2 values(+001,+001);
+select col1,count(*) from wl1612_2 group by col1;
+col1 count(*)
+1.00 4
+select col2,count(*) from wl1612_2 group by col2;
+col2 count(*)
+1.00 4
+drop table wl1612_2;
+create table wl1612_3 (col1 decimal(10,2), col2 numeric(10,2));
+insert into wl1612_3 values('1','1');
+insert into wl1612_3 values('+1','+1');
+insert into wl1612_3 values('+01','+01');
+insert into wl1612_3 values('+001','+001');
+select col1,count(*) from wl1612_3 group by col1;
+col1 count(*)
+1.00 4
+select col2,count(*) from wl1612_3 group by col2;
+col2 count(*)
+1.00 4
+drop table wl1612_3;
+select mod(234,10) ;
+mod(234,10)
+4
+select mod(234.567,10.555);
+mod(234.567,10.555)
+2.357
+select mod(-234.567,10.555);
+mod(-234.567,10.555)
+-2.357
+select mod(234.567,-10.555);
+mod(234.567,-10.555)
+2.357
+select round(15.1);
+round(15.1)
+15
+select round(15.4);
+round(15.4)
+15
+select round(15.5);
+round(15.5)
+16
+select round(15.6);
+round(15.6)
+16
+select round(15.9);
+round(15.9)
+16
+select round(-15.1);
+round(-15.1)
+-15
+select round(-15.4);
+round(-15.4)
+-15
+select round(-15.5);
+round(-15.5)
+-16
+select round(-15.6);
+round(-15.6)
+-16
+select round(-15.9);
+round(-15.9)
+-16
+select round(15.1,1);
+round(15.1,1)
+15.1
+select round(15.4,1);
+round(15.4,1)
+15.4
+select round(15.5,1);
+round(15.5,1)
+15.5
+select round(15.6,1);
+round(15.6,1)
+15.6
+select round(15.9,1);
+round(15.9,1)
+15.9
+select round(-15.1,1);
+round(-15.1,1)
+-15.1
+select round(-15.4,1);
+round(-15.4,1)
+-15.4
+select round(-15.5,1);
+round(-15.5,1)
+-15.5
+select round(-15.6,1);
+round(-15.6,1)
+-15.6
+select round(-15.9,1);
+round(-15.9,1)
+-15.9
+select round(15.1,0);
+round(15.1,0)
+15
+select round(15.4,0);
+round(15.4,0)
+15
+select round(15.5,0);
+round(15.5,0)
+16
+select round(15.6,0);
+round(15.6,0)
+16
+select round(15.9,0);
+round(15.9,0)
+16
+select round(-15.1,0);
+round(-15.1,0)
+-15
+select round(-15.4,0);
+round(-15.4,0)
+-15
+select round(-15.5,0);
+round(-15.5,0)
+-16
+select round(-15.6,0);
+round(-15.6,0)
+-16
+select round(-15.9,0);
+round(-15.9,0)
+-16
+select round(15.1,-1);
+round(15.1,-1)
+20
+select round(15.4,-1);
+round(15.4,-1)
+20
+select round(15.5,-1);
+round(15.5,-1)
+20
+select round(15.6,-1);
+round(15.6,-1)
+20
+select round(15.9,-1);
+round(15.9,-1)
+20
+select round(-15.1,-1);
+round(-15.1,-1)
+-20
+select round(-15.4,-1);
+round(-15.4,-1)
+-20
+select round(-15.5,-1);
+round(-15.5,-1)
+-20
+select round(-15.6,-1);
+round(-15.6,-1)
+-20
+select round(-15.91,-1);
+round(-15.91,-1)
+-20
+select truncate(5678.123451,0);
+truncate(5678.123451,0)
+5678
+select truncate(5678.123451,1);
+truncate(5678.123451,1)
+5678.1
+select truncate(5678.123451,2);
+truncate(5678.123451,2)
+5678.12
+select truncate(5678.123451,3);
+truncate(5678.123451,3)
+5678.123
+select truncate(5678.123451,4);
+truncate(5678.123451,4)
+5678.1234
+select truncate(5678.123451,5);
+truncate(5678.123451,5)
+5678.12345
+select truncate(5678.123451,6);
+truncate(5678.123451,6)
+5678.123451
+select truncate(5678.123451,-1);
+truncate(5678.123451,-1)
+5670
+select truncate(5678.123451,-2);
+truncate(5678.123451,-2)
+5600
+select truncate(5678.123451,-3);
+truncate(5678.123451,-3)
+5000
+select truncate(5678.123451,-4);
+truncate(5678.123451,-4)
+0
+select truncate(-5678.123451,0);
+truncate(-5678.123451,0)
+-5678
+select truncate(-5678.123451,1);
+truncate(-5678.123451,1)
+-5678.1
+select truncate(-5678.123451,2);
+truncate(-5678.123451,2)
+-5678.12
+select truncate(-5678.123451,3);
+truncate(-5678.123451,3)
+-5678.123
+select truncate(-5678.123451,4);
+truncate(-5678.123451,4)
+-5678.1234
+select truncate(-5678.123451,5);
+truncate(-5678.123451,5)
+-5678.12345
+select truncate(-5678.123451,6);
+truncate(-5678.123451,6)
+-5678.123451
+select truncate(-5678.123451,-1);
+truncate(-5678.123451,-1)
+-5670
+select truncate(-5678.123451,-2);
+truncate(-5678.123451,-2)
+-5600
+select truncate(-5678.123451,-3);
+truncate(-5678.123451,-3)
+-5000
+select truncate(-5678.123451,-4);
+truncate(-5678.123451,-4)
+0
+create table wl1612_4 (col1 int, col2 decimal(30,25), col3 numeric(30,25));
+insert into wl1612_4 values(1,0.0123456789012345678912345,0.0123456789012345678912345);
+select col2/9999999999 from wl1612_4 where col1=1;
+col2/9999999999
+0.00000000000123456789024691358
+select col3/9999999999 from wl1612_4 where col1=1;
+col3/9999999999
+0.00000000000123456789024691358
+select 9999999999/col2 from wl1612_4 where col1=1;
+9999999999/col2
+810000007209.0001
+select 9999999999/col3 from wl1612_4 where col1=1;
+9999999999/col3
+810000007209.0001
+select col2*9999999999 from wl1612_4 where col1=1;
+col2*9999999999
+123456789.0000000000111104321087655
+select col3*9999999999 from wl1612_4 where col1=1;
+col3*9999999999
+123456789.0000000000111104321087655
+insert into wl1612_4 values(2,55555.0123456789012345678912345,55555.0123456789012345678912345);
+select col2/9999999999 from wl1612_4 where col1=2;
+col2/9999999999
+0.00000555550123512344024696913
+select col3/9999999999 from wl1612_4 where col1=2;
+col3/9999999999
+0.00000555550123512344024696913
+select 9999999999/col2 from wl1612_4 where col1=2;
+9999999999/col2
+180001.7600
+select 9999999999/col3 from wl1612_4 where col1=2;
+9999999999/col3
+180001.7600
+select col2*9999999999 from wl1612_4 where col1=2;
+col2*9999999999
+555550123401234.0000000000111104321087655
+select col3*9999999999 from wl1612_4 where col1=2;
+col3*9999999999
+555550123401234.0000000000111104321087655
+drop table wl1612_4;
+set sql_mode='';
+select 23.4 + (-41.7), 23.4 - (41.7) = -18.3;
+23.4 + (-41.7) 23.4 - (41.7) = -18.3
+-18.3 1
+select -18.3=-18.3;
+-18.3=-18.3
+1
+select 18.3=18.3;
+18.3=18.3
+1
+select -18.3=18.3;
+-18.3=18.3
+0
+select 0.8 = 0.7 + 0.1;
+0.8 = 0.7 + 0.1
+1
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (col1 decimal(38));
+insert into t1 values (12345678901234567890123456789012345678);
+select * from t1;
+col1
+12345678901234567890123456789012345678
+drop table t1;
+create table t1 (col1 decimal(31,30));
+insert into t1 values (0.00000000001);
+select * from t1;
+col1
+0.000000000010000000000000000000
+drop table t1;
+select 7777777777777777777777777777777777777 * 10;
+7777777777777777777777777777777777777 * 10
+77777777777777777777777777777777777770
+select .7777777777777777777777777777777777777 *
+1000000000000000000;
+.7777777777777777777777777777777777777 *
+1000000000000000000
+777777777777777777.777777777777777777700000000000
+select .7777777777777777777777777777777777777 - 0.1;
+.7777777777777777777777777777777777777 - 0.1
+0.6777777777777777777777777777777777777
+select .343434343434343434 + .343434343434343434;
+.343434343434343434 + .343434343434343434
+0.686868686868686868
+select abs(9999999999999999999999);
+abs(9999999999999999999999)
+9999999999999999999999
+select abs(-9999999999999999999999);
+abs(-9999999999999999999999)
+9999999999999999999999
+select ceiling(999999999999999999);
+ceiling(999999999999999999)
+999999999999999999
+select ceiling(99999999999999999999);
+ceiling(99999999999999999999)
+99999999999999999999
+select ceiling(9.9999999999999999999);
+ceiling(9.9999999999999999999)
+10
+select ceiling(-9.9999999999999999999);
+ceiling(-9.9999999999999999999)
+-9
+select floor(999999999999999999);
+floor(999999999999999999)
+999999999999999999
+select floor(9999999999999999999999);
+floor(9999999999999999999999)
+9999999999999999999999
+select floor(9.999999999999999999999);
+floor(9.999999999999999999999)
+9
+select floor(-9.999999999999999999999);
+floor(-9.999999999999999999999)
+-10
+select floor(-999999999999999999999.999);
+floor(-999999999999999999999.999)
+-1000000000000000000000
+select ceiling(999999999999999999999.999);
+ceiling(999999999999999999999.999)
+1000000000000000000000
+select 99999999999999999999999999999999999999 mod 3;
+99999999999999999999999999999999999999 mod 3
+0
+select round(99999999999999999.999);
+round(99999999999999999.999)
+100000000000000000
+select round(-99999999999999999.999);
+round(-99999999999999999.999)
+-100000000000000000
+select round(99999999999999999.999,3);
+round(99999999999999999.999,3)
+99999999999999999.999
+select round(-99999999999999999.999,3);
+round(-99999999999999999.999,3)
+-99999999999999999.999
+select truncate(99999999999999999999999999999999999999,31);
+truncate(99999999999999999999999999999999999999,31)
+99999999999999999999999999999999999999.000000000000000000000000000000
+select truncate(99.999999999999999999999999999999999999,31);
+truncate(99.999999999999999999999999999999999999,31)
+99.999999999999999999999999999999
+select truncate(99999999999999999999999999999999999999,-31);
+truncate(99999999999999999999999999999999999999,-31)
+99999990000000000000000000000000000000
+create table t1 as select 0.5;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `0.5` decimal(2,1) NOT NULL default '0.0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+select round(1.5),round(2.5);
+round(1.5) round(2.5)
+2 3
+select 0.07 * 0.07;
+0.07 * 0.07
+0.0049
+set sql_mode='traditional';
+select 1E-500 = 0;
+1E-500 = 0
+1
+select 1 / 1E-500;
+1 / 1E-500
+NULL
+Warnings:
+Error 1365 Division by 0
+select 1 / 0;
+1 / 0
+NULL
+Warnings:
+Error 1365 Division by 0
+set sql_mode='ansi,traditional';
+CREATE TABLE Sow6_2f (col1 NUMERIC(4,2));
+INSERT INTO Sow6_2f VALUES (10.55);
+INSERT INTO Sow6_2f VALUES (10.5555);
+Warnings:
+Note 1265 Data truncated for column 'col1' at row 1
+INSERT INTO Sow6_2f VALUES (-10.55);
+INSERT INTO Sow6_2f VALUES (-10.5555);
+Warnings:
+Note 1265 Data truncated for column 'col1' at row 1
+INSERT INTO Sow6_2f VALUES (11);
+INSERT INTO Sow6_2f VALUES (101.55);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+UPDATE Sow6_2f SET col1 = col1 * 50 WHERE col1 = 11;
+ERROR 22003: Out of range value adjusted for column 'col1' at row 5
+UPDATE Sow6_2f SET col1 = col1 / 0 WHERE col1 > 0;
+ERROR 22012: Division by 0
+SELECT MOD(col1,0) FROM Sow6_2f;
+MOD(col1,0)
+NULL
+NULL
+NULL
+NULL
+NULL
+Warnings:
+Error 1365 Division by 0
+Error 1365 Division by 0
+Error 1365 Division by 0
+Error 1365 Division by 0
+Error 1365 Division by 0
+INSERT INTO Sow6_2f VALUES ('a59b');
+ERROR HY000: Incorrect decimal value: 'a59b' for column 'col1' at row 1
+drop table Sow6_2f;
+select 10.3330000000000/12.34500000;
+10.3330000000000/12.34500000
+0.83701903604698258
+set sql_mode='';
+select 0/0;
+0/0
+NULL
+select 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 as x;
+x
+99999999999999999999999999999999999999999999999999999999999999999
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 as x;
+x
+100000000000000000000000000000000000000000000000000000000000000000
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+select 0.190287977636363637 + 0.040372670 * 0 - 0;
+0.190287977636363637 + 0.040372670 * 0 - 0
+0.190287977636363637
+select -0.123 * 0;
+-0.123 * 0
+0.000
+CREATE TABLE t1 (f1 DECIMAL (12,9), f2 DECIMAL(2,2));
+INSERT INTO t1 VALUES (10.5, 0);
+UPDATE t1 SET f1 = 4.5;
+SELECT * FROM t1;
+f1 f2
+4.500000000 0.00
+DROP TABLE t1;
+CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2));
+INSERT INTO t1 VALUES (9999999999999999999999999999999999, 0);
+SELECT * FROM t1;
+f1 f2
+9999999999999999999999999999999999.00000000000000000000 0.00
+DROP TABLE t1;
+select abs(10/0);
+abs(10/0)
+NULL
+select abs(NULL);
+abs(NULL)
+NULL
+set @@sql_mode='traditional';
+create table t1( d1 decimal(18) unsigned, d2 decimal(20) unsigned, d3 decimal (22) unsigned);
+insert into t1 values(1,-1,-1);
+ERROR 22003: Out of range value adjusted for column 'd2' at row 1
+drop table t1;
+create table t1 (col1 decimal(5,2), col2 numeric(5,2));
+insert into t1 values (999.999,999.999);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+insert into t1 values (-999.999,-999.999);
+ERROR 22003: Out of range value adjusted for column 'col1' at row 1
+select * from t1;
+col1 col2
+drop table t1;
+set sql_mode='';
+set @sav_dpi= @@div_precision_increment;
+set @@div_precision_increment=15;
+create table t1 (col1 int, col2 decimal(30,25), col3 numeric(30,25));
+insert into t1 values (1,0.0123456789012345678912345,0.0123456789012345678912345);
+select col2/9999999999 from t1 where col1=1;
+col2/9999999999
+0.000000000001234567890246913578
+select 9999999999/col2 from t1 where col1=1;
+9999999999/col2
+810000007209.000065537105051
+select 77777777/7777777;
+77777777/7777777
+10.000000900000090
+drop table t1;
+set div_precision_increment= @sav_dpi;
+create table t1 (a decimal(4,2));
+insert into t1 values (0.00);
+select * from t1 where a > -0.00;
+a
+select * from t1 where a = -0.00;
+a
+0.00
+drop table t1;
+create table t1 (col1 bigint default -9223372036854775808);
+insert into t1 values (default);
+select * from t1;
+col1
+-9223372036854775808
+drop table t1;
+select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15));
+cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15))
+0.000000000100000
+select ln(14000) c1, convert(ln(14000),decimal(5,3)) c2, cast(ln(14000) as decimal(5,3)) c3;
+c1 c2 c3
+9.5468126085974 9.547 9.547
+select convert(ln(14000),decimal(2,3)) c1;
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '').
+select cast(ln(14000) as decimal(2,3)) c1;
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '').
+create table t1 (sl decimal(70,30));
+ERROR 42000: Too big precision 70 specified for column 'sl'. Maximum is 65.
+create table t1 (sl decimal(32,31));
+ERROR 42000: Too big scale 31 specified for column 'sl'. Maximum is 30.
+create table t1 (sl decimal(0,38));
+ERROR 42000: Too big scale 38 specified for column 'sl'. Maximum is 30.
+create table t1 (sl decimal(0,30));
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'sl').
+create table t1 (sl decimal(5, 5));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `sl` decimal(5,5) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (sl decimal(65, 30));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `sl` decimal(65,30) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (
+f1 decimal unsigned not null default 17.49,
+f2 decimal unsigned not null default 17.68,
+f3 decimal unsigned not null default 99.2,
+f4 decimal unsigned not null default 99.7,
+f5 decimal unsigned not null default 104.49,
+f6 decimal unsigned not null default 199.91,
+f7 decimal unsigned not null default 999.9,
+f8 decimal unsigned not null default 9999.99);
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Note 1265 Data truncated for column 'f2' at row 1
+Note 1265 Data truncated for column 'f3' at row 1
+Note 1265 Data truncated for column 'f4' at row 1
+Note 1265 Data truncated for column 'f5' at row 1
+Note 1265 Data truncated for column 'f6' at row 1
+Note 1265 Data truncated for column 'f7' at row 1
+Note 1265 Data truncated for column 'f8' at row 1
+insert into t1 (f1) values (1);
+select * from t1;
+f1 f2 f3 f4 f5 f6 f7 f8
+1 18 99 100 104 200 1000 10000
+drop table t1;
+create table t1 (
+f0 decimal (30,30) zerofill not null DEFAULT 0,
+f1 decimal (0,0) zerofill not null default 0);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f0` decimal(30,30) unsigned zerofill NOT NULL default '0.000000000000000000000000000000',
+ `f1` decimal(10,0) unsigned zerofill NOT NULL default '0000000000'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+drop procedure if exists wg2;
+create procedure wg2()
+begin
+declare v int default 1;
+declare tdec decimal(5) default 0;
+while v <= 9 do set tdec =tdec * 10;
+select v, tdec;
+set v = v + 1;
+end while;
+end//
+call wg2()//
+v tdec
+1 0
+v tdec
+2 0
+v tdec
+3 0
+v tdec
+4 0
+v tdec
+5 0
+v tdec
+6 0
+v tdec
+7 0
+v tdec
+8 0
+v tdec
+9 0
+drop procedure wg2;
+select cast(@non_existing_user_var/2 as DECIMAL);
+cast(@non_existing_user_var/2 as DECIMAL)
+NULL
+create table t (d decimal(0,10));
+ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'd').
+CREATE TABLE t1 (
+my_float FLOAT,
+my_double DOUBLE,
+my_varchar VARCHAR(50),
+my_decimal DECIMAL(65,30)
+);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `my_float` float default NULL,
+ `my_double` double default NULL,
+ `my_varchar` varchar(50) default NULL,
+ `my_decimal` decimal(65,30) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+INSERT INTO t1 SET my_float = 1.175494345e-32,
+my_double = 1.175494345e-32,
+my_varchar = '1.175494345e-32';
+INSERT INTO t1 SET my_float = 1.175494345e-31,
+my_double = 1.175494345e-31,
+my_varchar = '1.175494345e-31';
+INSERT INTO t1 SET my_float = 1.175494345e-30,
+my_double = 1.175494345e-30,
+my_varchar = '1.175494345e-30';
+INSERT INTO t1 SET my_float = 1.175494345e-29,
+my_double = 1.175494345e-29,
+my_varchar = '1.175494345e-29';
+INSERT INTO t1 SET my_float = 1.175494345e-28,
+my_double = 1.175494345e-28,
+my_varchar = '1.175494345e-28';
+INSERT INTO t1 SET my_float = 1.175494345e-27,
+my_double = 1.175494345e-27,
+my_varchar = '1.175494345e-27';
+INSERT INTO t1 SET my_float = 1.175494345e-26,
+my_double = 1.175494345e-26,
+my_varchar = '1.175494345e-26';
+INSERT INTO t1 SET my_float = 1.175494345e-25,
+my_double = 1.175494345e-25,
+my_varchar = '1.175494345e-25';
+INSERT INTO t1 SET my_float = 1.175494345e-24,
+my_double = 1.175494345e-24,
+my_varchar = '1.175494345e-24';
+INSERT INTO t1 SET my_float = 1.175494345e-23,
+my_double = 1.175494345e-23,
+my_varchar = '1.175494345e-23';
+INSERT INTO t1 SET my_float = 1.175494345e-22,
+my_double = 1.175494345e-22,
+my_varchar = '1.175494345e-22';
+INSERT INTO t1 SET my_float = 1.175494345e-21,
+my_double = 1.175494345e-21,
+my_varchar = '1.175494345e-21';
+INSERT INTO t1 SET my_float = 1.175494345e-20,
+my_double = 1.175494345e-20,
+my_varchar = '1.175494345e-20';
+INSERT INTO t1 SET my_float = 1.175494345e-19,
+my_double = 1.175494345e-19,
+my_varchar = '1.175494345e-19';
+INSERT INTO t1 SET my_float = 1.175494345e-18,
+my_double = 1.175494345e-18,
+my_varchar = '1.175494345e-18';
+INSERT INTO t1 SET my_float = 1.175494345e-17,
+my_double = 1.175494345e-17,
+my_varchar = '1.175494345e-17';
+INSERT INTO t1 SET my_float = 1.175494345e-16,
+my_double = 1.175494345e-16,
+my_varchar = '1.175494345e-16';
+INSERT INTO t1 SET my_float = 1.175494345e-15,
+my_double = 1.175494345e-15,
+my_varchar = '1.175494345e-15';
+INSERT INTO t1 SET my_float = 1.175494345e-14,
+my_double = 1.175494345e-14,
+my_varchar = '1.175494345e-14';
+INSERT INTO t1 SET my_float = 1.175494345e-13,
+my_double = 1.175494345e-13,
+my_varchar = '1.175494345e-13';
+INSERT INTO t1 SET my_float = 1.175494345e-12,
+my_double = 1.175494345e-12,
+my_varchar = '1.175494345e-12';
+INSERT INTO t1 SET my_float = 1.175494345e-11,
+my_double = 1.175494345e-11,
+my_varchar = '1.175494345e-11';
+INSERT INTO t1 SET my_float = 1.175494345e-10,
+my_double = 1.175494345e-10,
+my_varchar = '1.175494345e-10';
+INSERT INTO t1 SET my_float = 1.175494345e-9,
+my_double = 1.175494345e-9,
+my_varchar = '1.175494345e-9';
+INSERT INTO t1 SET my_float = 1.175494345e-8,
+my_double = 1.175494345e-8,
+my_varchar = '1.175494345e-8';
+INSERT INTO t1 SET my_float = 1.175494345e-7,
+my_double = 1.175494345e-7,
+my_varchar = '1.175494345e-7';
+INSERT INTO t1 SET my_float = 1.175494345e-6,
+my_double = 1.175494345e-6,
+my_varchar = '1.175494345e-6';
+INSERT INTO t1 SET my_float = 1.175494345e-5,
+my_double = 1.175494345e-5,
+my_varchar = '1.175494345e-5';
+INSERT INTO t1 SET my_float = 1.175494345e-4,
+my_double = 1.175494345e-4,
+my_varchar = '1.175494345e-4';
+INSERT INTO t1 SET my_float = 1.175494345e-3,
+my_double = 1.175494345e-3,
+my_varchar = '1.175494345e-3';
+INSERT INTO t1 SET my_float = 1.175494345e-2,
+my_double = 1.175494345e-2,
+my_varchar = '1.175494345e-2';
+INSERT INTO t1 SET my_float = 1.175494345e-1,
+my_double = 1.175494345e-1,
+my_varchar = '1.175494345e-1';
+SELECT my_float, my_double, my_varchar FROM t1;
+my_float my_double my_varchar
+1.17549e-32 1.175494345e-32 1.175494345e-32
+1.17549e-31 1.175494345e-31 1.175494345e-31
+1.17549e-30 1.175494345e-30 1.175494345e-30
+1.17549e-29 1.175494345e-29 1.175494345e-29
+1.17549e-28 1.175494345e-28 1.175494345e-28
+1.17549e-27 1.175494345e-27 1.175494345e-27
+1.17549e-26 1.175494345e-26 1.175494345e-26
+1.17549e-25 1.175494345e-25 1.175494345e-25
+1.17549e-24 1.175494345e-24 1.175494345e-24
+1.17549e-23 1.175494345e-23 1.175494345e-23
+1.17549e-22 1.175494345e-22 1.175494345e-22
+1.17549e-21 1.175494345e-21 1.175494345e-21
+1.17549e-20 1.175494345e-20 1.175494345e-20
+1.17549e-19 1.175494345e-19 1.175494345e-19
+1.17549e-18 1.175494345e-18 1.175494345e-18
+1.17549e-17 1.175494345e-17 1.175494345e-17
+1.17549e-16 1.175494345e-16 1.175494345e-16
+1.17549e-15 1.175494345e-15 1.175494345e-15
+1.17549e-14 1.175494345e-14 1.175494345e-14
+1.17549e-13 1.175494345e-13 1.175494345e-13
+1.17549e-12 1.175494345e-12 1.175494345e-12
+1.17549e-11 1.175494345e-11 1.175494345e-11
+1.17549e-10 1.175494345e-10 1.175494345e-10
+1.17549e-09 1.175494345e-09 1.175494345e-9
+1.17549e-08 1.175494345e-08 1.175494345e-8
+1.17549e-07 1.175494345e-07 1.175494345e-7
+1.17549e-06 1.175494345e-06 1.175494345e-6
+1.17549e-05 1.175494345e-05 1.175494345e-5
+0.000117549 0.0001175494345 1.175494345e-4
+0.00117549 0.001175494345 1.175494345e-3
+0.0117549 0.01175494345 1.175494345e-2
+0.117549 0.1175494345 1.175494345e-1
+SELECT CAST(my_float AS DECIMAL(65,30)), my_float FROM t1;
+CAST(my_float AS DECIMAL(65,30)) my_float
+0.000000000000000000000000000000 1.17549e-32
+0.000000000000000000000000000000 1.17549e-31
+0.000000000000000000000000000001 1.17549e-30
+0.000000000000000000000000000012 1.17549e-29
+0.000000000000000000000000000118 1.17549e-28
+0.000000000000000000000000001175 1.17549e-27
+0.000000000000000000000000011755 1.17549e-26
+0.000000000000000000000000117549 1.17549e-25
+0.000000000000000000000001175494 1.17549e-24
+0.000000000000000000000011754943 1.17549e-23
+0.000000000000000000000117549438 1.17549e-22
+0.000000000000000000001175494332 1.17549e-21
+0.000000000000000000011754943324 1.17549e-20
+0.000000000000000000117549434853 1.17549e-19
+0.000000000000000001175494374380 1.17549e-18
+0.000000000000000011754943743802 1.17549e-17
+0.000000000000000117549432474939 1.17549e-16
+0.000000000000001175494324749389 1.17549e-15
+0.000000000000011754943671010360 1.17549e-14
+0.000000000000117549429933840000 1.17549e-13
+0.000000000001175494380653563000 1.17549e-12
+0.000000000011754943372854760000 1.17549e-11
+0.000000000117549428524377200000 1.17549e-10
+0.000000001175494368510499000000 1.17549e-09
+0.000000011754943685104990000000 1.17549e-08
+0.000000117549433298336200000000 1.17549e-07
+0.000001175494389826781000000000 1.17549e-06
+0.000011754943443520460000000000 1.17549e-05
+0.000117549432616215200000000000 0.000117549
+0.001175494398921728000000000000 0.00117549
+0.011754943057894710000000000000 0.0117549
+0.117549434304237400000000000000 0.117549
+SELECT CAST(my_double AS DECIMAL(65,30)), my_double FROM t1;
+CAST(my_double AS DECIMAL(65,30)) my_double
+0.000000000000000000000000000000 1.175494345e-32
+0.000000000000000000000000000000 1.175494345e-31
+0.000000000000000000000000000001 1.175494345e-30
+0.000000000000000000000000000012 1.175494345e-29
+0.000000000000000000000000000118 1.175494345e-28
+0.000000000000000000000000001175 1.175494345e-27
+0.000000000000000000000000011755 1.175494345e-26
+0.000000000000000000000000117549 1.175494345e-25
+0.000000000000000000000001175494 1.175494345e-24
+0.000000000000000000000011754943 1.175494345e-23
+0.000000000000000000000117549435 1.175494345e-22
+0.000000000000000000001175494345 1.175494345e-21
+0.000000000000000000011754943450 1.175494345e-20
+0.000000000000000000117549434500 1.175494345e-19
+0.000000000000000001175494345000 1.175494345e-18
+0.000000000000000011754943450000 1.175494345e-17
+0.000000000000000117549434500000 1.175494345e-16
+0.000000000000001175494345000000 1.175494345e-15
+0.000000000000011754943450000000 1.175494345e-14
+0.000000000000117549434500000000 1.175494345e-13
+0.000000000001175494345000000000 1.175494345e-12
+0.000000000011754943450000000000 1.175494345e-11
+0.000000000117549434500000000000 1.175494345e-10
+0.000000001175494345000000000000 1.175494345e-09
+0.000000011754943450000000000000 1.175494345e-08
+0.000000117549434500000000000000 1.175494345e-07
+0.000001175494345000000000000000 1.175494345e-06
+0.000011754943450000000000000000 1.175494345e-05
+0.000117549434500000000000000000 0.0001175494345
+0.001175494345000000000000000000 0.001175494345
+0.011754943450000000000000000000 0.01175494345
+0.117549434500000000000000000000 0.1175494345
+SELECT CAST(my_varchar AS DECIMAL(65,30)), my_varchar FROM t1;
+CAST(my_varchar AS DECIMAL(65,30)) my_varchar
+0.000000000000000000000000000000 1.175494345e-32
+0.000000000000000000000000000000 1.175494345e-31
+0.000000000000000000000000000001 1.175494345e-30
+0.000000000000000000000000000012 1.175494345e-29
+0.000000000000000000000000000118 1.175494345e-28
+0.000000000000000000000000001175 1.175494345e-27
+0.000000000000000000000000011755 1.175494345e-26
+0.000000000000000000000000117549 1.175494345e-25
+0.000000000000000000000001175494 1.175494345e-24
+0.000000000000000000000011754943 1.175494345e-23
+0.000000000000000000000117549435 1.175494345e-22
+0.000000000000000000001175494345 1.175494345e-21
+0.000000000000000000011754943450 1.175494345e-20
+0.000000000000000000117549434500 1.175494345e-19
+0.000000000000000001175494345000 1.175494345e-18
+0.000000000000000011754943450000 1.175494345e-17
+0.000000000000000117549434500000 1.175494345e-16
+0.000000000000001175494345000000 1.175494345e-15
+0.000000000000011754943450000000 1.175494345e-14
+0.000000000000117549434500000000 1.175494345e-13
+0.000000000001175494345000000000 1.175494345e-12
+0.000000000011754943450000000000 1.175494345e-11
+0.000000000117549434500000000000 1.175494345e-10
+0.000000001175494345000000000000 1.175494345e-9
+0.000000011754943450000000000000 1.175494345e-8
+0.000000117549434500000000000000 1.175494345e-7
+0.000001175494345000000000000000 1.175494345e-6
+0.000011754943450000000000000000 1.175494345e-5
+0.000117549434500000000000000000 1.175494345e-4
+0.001175494345000000000000000000 1.175494345e-3
+0.011754943450000000000000000000 1.175494345e-2
+0.117549434500000000000000000000 1.175494345e-1
+UPDATE t1 SET my_decimal = my_float;
+SELECT my_decimal, my_float FROM t1;
+my_decimal my_float
+0.000000000000000000000000000000 1.17549e-32
+0.000000000000000000000000000000 1.17549e-31
+0.000000000000000000000000000001 1.17549e-30
+0.000000000000000000000000000012 1.17549e-29
+0.000000000000000000000000000118 1.17549e-28
+0.000000000000000000000000001175 1.17549e-27
+0.000000000000000000000000011755 1.17549e-26
+0.000000000000000000000000117549 1.17549e-25
+0.000000000000000000000001175494 1.17549e-24
+0.000000000000000000000011754943 1.17549e-23
+0.000000000000000000000117549438 1.17549e-22
+0.000000000000000000001175494332 1.17549e-21
+0.000000000000000000011754943324 1.17549e-20
+0.000000000000000000117549434853 1.17549e-19
+0.000000000000000001175494374380 1.17549e-18
+0.000000000000000011754943743802 1.17549e-17
+0.000000000000000117549432474939 1.17549e-16
+0.000000000000001175494324749389 1.17549e-15
+0.000000000000011754943671010360 1.17549e-14
+0.000000000000117549429933840000 1.17549e-13
+0.000000000001175494380653563000 1.17549e-12
+0.000000000011754943372854760000 1.17549e-11
+0.000000000117549428524377200000 1.17549e-10
+0.000000001175494368510499000000 1.17549e-09
+0.000000011754943685104990000000 1.17549e-08
+0.000000117549433298336200000000 1.17549e-07
+0.000001175494389826781000000000 1.17549e-06
+0.000011754943443520460000000000 1.17549e-05
+0.000117549432616215200000000000 0.000117549
+0.001175494398921728000000000000 0.00117549
+0.011754943057894710000000000000 0.0117549
+0.117549434304237400000000000000 0.117549
+UPDATE t1 SET my_decimal = my_double;
+SELECT my_decimal, my_double FROM t1;
+my_decimal my_double
+0.000000000000000000000000000000 1.175494345e-32
+0.000000000000000000000000000000 1.175494345e-31
+0.000000000000000000000000000001 1.175494345e-30
+0.000000000000000000000000000012 1.175494345e-29
+0.000000000000000000000000000118 1.175494345e-28
+0.000000000000000000000000001175 1.175494345e-27
+0.000000000000000000000000011755 1.175494345e-26
+0.000000000000000000000000117549 1.175494345e-25
+0.000000000000000000000001175494 1.175494345e-24
+0.000000000000000000000011754943 1.175494345e-23
+0.000000000000000000000117549435 1.175494345e-22
+0.000000000000000000001175494345 1.175494345e-21
+0.000000000000000000011754943450 1.175494345e-20
+0.000000000000000000117549434500 1.175494345e-19
+0.000000000000000001175494345000 1.175494345e-18
+0.000000000000000011754943450000 1.175494345e-17
+0.000000000000000117549434500000 1.175494345e-16
+0.000000000000001175494345000000 1.175494345e-15
+0.000000000000011754943450000000 1.175494345e-14
+0.000000000000117549434500000000 1.175494345e-13
+0.000000000001175494345000000000 1.175494345e-12
+0.000000000011754943450000000000 1.175494345e-11
+0.000000000117549434500000000000 1.175494345e-10
+0.000000001175494345000000000000 1.175494345e-09
+0.000000011754943450000000000000 1.175494345e-08
+0.000000117549434500000000000000 1.175494345e-07
+0.000001175494345000000000000000 1.175494345e-06
+0.000011754943450000000000000000 1.175494345e-05
+0.000117549434500000000000000000 0.0001175494345
+0.001175494345000000000000000000 0.001175494345
+0.011754943450000000000000000000 0.01175494345
+0.117549434500000000000000000000 0.1175494345
+UPDATE t1 SET my_decimal = my_varchar;
+Warnings:
+Note 1265 Data truncated for column 'my_decimal' at row 1
+Note 1265 Data truncated for column 'my_decimal' at row 2
+Note 1265 Data truncated for column 'my_decimal' at row 3
+Note 1265 Data truncated for column 'my_decimal' at row 4
+Note 1265 Data truncated for column 'my_decimal' at row 5
+Note 1265 Data truncated for column 'my_decimal' at row 6
+Note 1265 Data truncated for column 'my_decimal' at row 7
+Note 1265 Data truncated for column 'my_decimal' at row 8
+Note 1265 Data truncated for column 'my_decimal' at row 9
+Note 1265 Data truncated for column 'my_decimal' at row 10
+Note 1265 Data truncated for column 'my_decimal' at row 11
+SELECT my_decimal, my_varchar FROM t1;
+my_decimal my_varchar
+0.000000000000000000000000000000 1.175494345e-32
+0.000000000000000000000000000000 1.175494345e-31
+0.000000000000000000000000000001 1.175494345e-30
+0.000000000000000000000000000012 1.175494345e-29
+0.000000000000000000000000000118 1.175494345e-28
+0.000000000000000000000000001175 1.175494345e-27
+0.000000000000000000000000011755 1.175494345e-26
+0.000000000000000000000000117549 1.175494345e-25
+0.000000000000000000000001175494 1.175494345e-24
+0.000000000000000000000011754943 1.175494345e-23
+0.000000000000000000000117549435 1.175494345e-22
+0.000000000000000000001175494345 1.175494345e-21
+0.000000000000000000011754943450 1.175494345e-20
+0.000000000000000000117549434500 1.175494345e-19
+0.000000000000000001175494345000 1.175494345e-18
+0.000000000000000011754943450000 1.175494345e-17
+0.000000000000000117549434500000 1.175494345e-16
+0.000000000000001175494345000000 1.175494345e-15
+0.000000000000011754943450000000 1.175494345e-14
+0.000000000000117549434500000000 1.175494345e-13
+0.000000000001175494345000000000 1.175494345e-12
+0.000000000011754943450000000000 1.175494345e-11
+0.000000000117549434500000000000 1.175494345e-10
+0.000000001175494345000000000000 1.175494345e-9
+0.000000011754943450000000000000 1.175494345e-8
+0.000000117549434500000000000000 1.175494345e-7
+0.000001175494345000000000000000 1.175494345e-6
+0.000011754943450000000000000000 1.175494345e-5
+0.000117549434500000000000000000 1.175494345e-4
+0.001175494345000000000000000000 1.175494345e-3
+0.011754943450000000000000000000 1.175494345e-2
+0.117549434500000000000000000000 1.175494345e-1
+DROP TABLE t1;
+create table t1 (c1 decimal(64));
+insert into t1 values(
+89000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+insert into t1 values(
+99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 *
+99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999);
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+insert into t1 values(1e100);
+Warnings:
+Warning 1264 Out of range value adjusted for column 'c1' at row 1
+select * from t1;
+c1
+9999999999999999999999999999999999999999999999999999999999999999
+9999999999999999999999999999999999999999999999999999999999999999
+9999999999999999999999999999999999999999999999999999999999999999
+drop table t1;
+create table t1 (i int, j int);
+insert into t1 values (1,1), (1,2), (2,3), (2,4);
+select i, count(distinct j) from t1 group by i;
+i count(distinct j)
+1 2
+2 2
+select i+0.0 as i2, count(distinct j) from t1 group by i2;
+i2 count(distinct j)
+1.0 2
+2.0 2
+drop table t1;
+create table t1(f1 decimal(20,6));
+insert into t1 values (CAST('10:11:12' AS date) + interval 14 microsecond);
+insert into t1 values (CAST('10:11:12' AS time));
+select * from t1;
+f1
+20101112000000.000014
+101112.000000
+drop table t1;
+select cast(19999999999999999999 as unsigned);
+cast(19999999999999999999 as unsigned)
+18446744073709551615
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+create table t1(a decimal(18));
+insert into t1 values(123456789012345678);
+alter table t1 modify column a decimal(19);
+select * from t1;
+a
+123456789012345678
+drop table t1;
+select cast(11.1234 as DECIMAL(3,2));
+cast(11.1234 as DECIMAL(3,2))
+9.99
+Warnings:
+Error 1264 Out of range value adjusted for column 'cast(11.1234 as DECIMAL(3,2))' at row 1
+select * from (select cast(11.1234 as DECIMAL(3,2))) t;
+cast(11.1234 as DECIMAL(3,2))
+9.99
+Warnings:
+Error 1264 Out of range value adjusted for column 'cast(11.1234 as DECIMAL(3,2))' at row 1
+select cast(a as DECIMAL(3,2))
+from (select 11.1233 as a
+UNION select 11.1234
+UNION select 12.1234
+) t;
+cast(a as DECIMAL(3,2))
+9.99
+9.99
+9.99
+Warnings:
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+select cast(a as DECIMAL(3,2)), count(*)
+from (select 11.1233 as a
+UNION select 11.1234
+UNION select 12.1234
+) t group by 1;
+cast(a as DECIMAL(3,2)) count(*)
+9.99 3
+Warnings:
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
+create table t1 (s varchar(100));
+insert into t1 values (0.00000000010000000000000000364321973154977415791655470655996396089904010295867919921875);
+drop table t1;
+SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
+a b
+0.9999999999999800000000000000 0.9999999999999800000000000000
+SELECT CAST(1 AS decimal(65,10));
+CAST(1 AS decimal(65,10))
+1.0000000000
+SELECT CAST(1 AS decimal(66,10));
+ERROR 42000: Too big precision 66 specified for column '1'. Maximum is 65.
+SELECT CAST(1 AS decimal(65,30));
+CAST(1 AS decimal(65,30))
+1.000000000000000000000000000000
+SELECT CAST(1 AS decimal(65,31));
+ERROR 42000: Too big scale 31 specified for column '1'. Maximum is 30.
+CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
+INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
+SELECT a+CAST(1 AS decimal(65,30)) AS aa, SUM(b) FROM t1 GROUP BY aa;
+aa SUM(b)
+2.000000000000000000000000000000 10
+3.000000000000000000000000000000 10
+4.000000000000000000000000000000 30
+SELECT a+CAST(1 AS decimal(65,31)) AS aa, SUM(b) FROM t1 GROUP BY aa;
+ERROR 42000: Too big scale 31 specified for column '1'. Maximum is 30.
+DROP TABLE t1;
+CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
+INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
+SET @a= CAST(1 AS decimal);
+SELECT 1 FROM t1 GROUP BY @b := @a, @b;
+1
+1
+1
+DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_ranges.result b/mysql-test/r/type_ranges.result
index 2e8fa4c26b7..3b368ff135f 100644
--- a/mysql-test/r/type_ranges.result
+++ b/mysql-test/r/type_ranges.result
@@ -21,10 +21,10 @@ time_field time,
date_time datetime,
blob_col blob,
tinyblob_col tinyblob,
-mediumblob_col mediumblob not null,
-longblob_col longblob not null,
-options enum('one','two','tree') not null,
-flags set('one','two','tree') not null,
+mediumblob_col mediumblob not null default '',
+longblob_col longblob not null default '',
+options enum('one','two','tree') not null ,
+flags set('one','two','tree') not null default '',
PRIMARY KEY (auto),
KEY (utiny),
KEY (tiny),
@@ -38,32 +38,35 @@ KEY (ulong),
KEY (ulonglong,ulong),
KEY (options,flags)
);
+Warnings:
+Warning 1101 BLOB/TEXT column 'mediumblob_col' can't have a default value
+Warning 1101 BLOB/TEXT column 'longblob_col' can't have a default value
show full fields from t1;
Field Type Collation Null Key Default Extra Privileges Comment
-auto int(5) unsigned NULL PRI NULL auto_increment #
-string varchar(10) latin1_swedish_ci YES hello #
-tiny tinyint(4) NULL MUL 0 #
-short smallint(6) NULL MUL 1 #
-medium mediumint(8) NULL MUL 0 #
-long_int int(11) NULL 0 #
-longlong bigint(13) NULL MUL 0 #
-real_float float(13,1) NULL MUL 0.0 #
+auto int(5) unsigned NULL NO PRI NULL auto_increment #
+string char(10) latin1_swedish_ci YES hello #
+tiny tinyint(4) NULL NO MUL 0 #
+short smallint(6) NULL NO MUL 1 #
+medium mediumint(8) NULL NO MUL 0 #
+long_int int(11) NULL NO 0 #
+longlong bigint(13) NULL NO MUL 0 #
+real_float float(13,1) NULL NO MUL 0.0 #
real_double double(16,4) NULL YES NULL #
-utiny tinyint(3) unsigned NULL MUL 0 #
-ushort smallint(5) unsigned zerofill NULL MUL 00000 #
-umedium mediumint(8) unsigned NULL MUL 0 #
-ulong int(11) unsigned NULL MUL 0 #
-ulonglong bigint(13) unsigned NULL MUL 0 #
-time_stamp timestamp NULL CURRENT_TIMESTAMP #
+utiny tinyint(3) unsigned NULL NO MUL 0 #
+ushort smallint(5) unsigned zerofill NULL NO MUL 00000 #
+umedium mediumint(8) unsigned NULL NO MUL 0 #
+ulong int(11) unsigned NULL NO MUL 0 #
+ulonglong bigint(13) unsigned NULL NO MUL 0 #
+time_stamp timestamp NULL NO CURRENT_TIMESTAMP #
date_field date NULL YES NULL #
time_field time NULL YES NULL #
date_time datetime NULL YES NULL #
blob_col blob NULL YES NULL #
tinyblob_col tinyblob NULL YES NULL #
-mediumblob_col mediumblob NULL #
-longblob_col longblob NULL #
-options enum('one','two','tree') latin1_swedish_ci MUL one #
-flags set('one','two','tree') latin1_swedish_ci #
+mediumblob_col mediumblob NULL NO NULL #
+longblob_col longblob NULL NO NULL #
+options enum('one','two','tree') latin1_swedish_ci NO MUL NULL #
+flags set('one','two','tree') latin1_swedish_ci NO #
show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 auto A 0 NULL NULL BTREE
@@ -87,51 +90,55 @@ DROP INDEX test ON t1;
insert into t1 values (10, 1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,NULL,2,2,'two','two,one');
insert into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3);
+Warnings:
+Warning 1265 Data truncated for column 'string' at row 1
insert into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1);
Warnings:
-Warning 1264 Data truncated; out of range for column 'utiny' at row 1
-Warning 1264 Data truncated; out of range for column 'ushort' at row 1
-Warning 1264 Data truncated; out of range for column 'umedium' at row 1
-Warning 1264 Data truncated; out of range for column 'ulong' at row 1
+Warning 1264 Out of range value adjusted for column 'utiny' at row 1
+Warning 1264 Out of range value adjusted for column 'ushort' at row 1
+Warning 1264 Out of range value adjusted for column 'umedium' at row 1
+Warning 1264 Out of range value adjusted for column 'ulong' at row 1
+Warning 1264 Out of range value adjusted for column 'ulonglong' at row 1
Warning 1265 Data truncated for column 'options' at row 1
Warning 1265 Data truncated for column 'flags' at row 1
insert into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree");
Warnings:
Warning 1265 Data truncated for column 'string' at row 1
-Warning 1264 Data truncated; out of range for column 'tiny' at row 1
-Warning 1264 Data truncated; out of range for column 'short' at row 1
-Warning 1264 Data truncated; out of range for column 'medium' at row 1
-Warning 1264 Data truncated; out of range for column 'long_int' at row 1
-Warning 1264 Data truncated; out of range for column 'utiny' at row 1
-Warning 1264 Data truncated; out of range for column 'ushort' at row 1
-Warning 1264 Data truncated; out of range for column 'umedium' at row 1
-Warning 1264 Data truncated; out of range for column 'ulong' at row 1
+Warning 1264 Out of range value adjusted for column 'tiny' at row 1
+Warning 1264 Out of range value adjusted for column 'short' at row 1
+Warning 1264 Out of range value adjusted for column 'medium' at row 1
+Warning 1264 Out of range value adjusted for column 'long_int' at row 1
+Warning 1264 Out of range value adjusted for column 'utiny' at row 1
+Warning 1264 Out of range value adjusted for column 'ushort' at row 1
+Warning 1264 Out of range value adjusted for column 'umedium' at row 1
+Warning 1264 Out of range value adjusted for column 'ulong' at row 1
+Warning 1264 Out of range value adjusted for column 'ulonglong' at row 1
Warning 1265 Data truncated for column 'options' at row 1
insert into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0);
Warnings:
-Warning 1264 Data truncated; out of range for column 'tiny' at row 1
-Warning 1264 Data truncated; out of range for column 'short' at row 1
-Warning 1264 Data truncated; out of range for column 'medium' at row 1
-Warning 1264 Data truncated; out of range for column 'long_int' at row 1
-Warning 1264 Data truncated; out of range for column 'utiny' at row 1
-Warning 1264 Data truncated; out of range for column 'ushort' at row 1
-Warning 1264 Data truncated; out of range for column 'umedium' at row 1
+Warning 1264 Out of range value adjusted for column 'tiny' at row 1
+Warning 1264 Out of range value adjusted for column 'short' at row 1
+Warning 1264 Out of range value adjusted for column 'medium' at row 1
+Warning 1264 Out of range value adjusted for column 'long_int' at row 1
+Warning 1264 Out of range value adjusted for column 'utiny' at row 1
+Warning 1264 Out of range value adjusted for column 'ushort' at row 1
+Warning 1264 Out of range value adjusted for column 'umedium' at row 1
Warning 1265 Data truncated for column 'options' at row 1
insert into t1 (tiny) values (1);
select auto,string,tiny,short,medium,long_int,longlong,real_float,real_double,utiny,ushort,umedium,ulong,ulonglong,mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000),date_field,time_field,date_time,blob_col,tinyblob_col,mediumblob_col,longblob_col from t1;
auto string tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000) date_field time_field date_time blob_col tinyblob_col mediumblob_col longblob_col
10 1 1 1 1 1 1 1.0 1.0000 1 00001 1 1 1 0 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1 1 1
11 2 2 2 2 2 2 2.0 2.0000 2 00002 2 2 2 0 NULL NULL NULL NULL NULL 2 2
-12 0.33 3 3 3 3 3 3.0 3.0000 3 00003 3 3 3 0 1997-03-03 10:10:10 1997-03-03 10:10:10 3
-13 -1 -1 -1 -1 -1 -1 -1.0 -1.0000 0 00000 0 0 18446744073709551615 0 1997-08-07 08:07:06 1997-04-03 09:08:07 -1 -1 -1 -1
-14 -429496729 -128 -32768 -8388608 -2147483648 -4294967295 -4294967296.0 -4294967295.0000 0 00000 0 0 18446744069414584321 0 0000-00-00 00:00:00 0000-00-00 00:00:00 -4294967295 -4294967295 -4294967295 -4294967295
+12 0.33333333 3 3 3 3 3 3.0 3.0000 3 00003 3 3 3 0 1997-03-03 10:10:10 1997-03-03 10:10:10 3
+13 -1 -1 -1 -1 -1 -1 -1.0 -1.0000 0 00000 0 0 0 0 1997-08-07 08:07:06 1997-04-03 09:08:07 -1 -1 -1 -1
+14 -429496729 -128 -32768 -8388608 -2147483648 -4294967295 -4294967296.0 -4294967295.0000 0 00000 0 0 0 0 0000-00-00 00:00:00 0000-00-00 00:00:00 -4294967295 -4294967295 -4294967295 -4294967295
15 4294967295 127 32767 8388607 2147483647 4294967295 4294967296.0 4294967295.0000 255 65535 16777215 4294967295 4294967295 0 0000-00-00 00:00:00 0000-00-00 00:00:00 4294967295 4294967295 4294967295 4294967295
16 hello 1 1 0 0 0 0.0 NULL 0 00000 0 0 0 0 NULL NULL NULL NULL NULL
ALTER TABLE t1
add new_field char(10) default "new" not null,
change blob_col new_blob_col varchar(20),
change date_field date_field char(10),
-alter column string set default "new default",
+alter column string set default "newdefault",
alter short drop default,
DROP INDEX utiny,
DROP INDEX ushort,
@@ -174,7 +181,7 @@ Warning 1265 Data truncated for column 'new_field' at row 7
select * from t2;
auto string mediumblob_col new_field
1 2 2 ne
-2 0.33 ne
+2 0.33333333 ne
3 -1 -1 ne
4 -429496729 -4294967295 ne
5 4294967295 4294967295 ne
@@ -201,63 +208,59 @@ options flags
one one
drop table t2;
create table t2 select * from t1;
-Warnings:
-Warning 1265 Data truncated for column 'options' at row 4
-Warning 1265 Data truncated for column 'options' at row 5
-Warning 1265 Data truncated for column 'options' at row 6
update t2 set string="changed" where auto=16;
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment
-auto int(5) unsigned NULL MUL NULL auto_increment #
-string varchar(10) latin1_swedish_ci YES new defaul #
-tiny tinyint(4) NULL MUL 0 #
-short smallint(6) NULL MUL 0 #
-medium mediumint(8) NULL MUL 0 #
-long_int int(11) NULL 0 #
-longlong bigint(13) NULL MUL 0 #
-real_float float(13,1) NULL MUL 0.0 #
+auto int(5) unsigned NULL NO MUL NULL auto_increment #
+string char(10) latin1_swedish_ci YES newdefault #
+tiny tinyint(4) NULL NO MUL 0 #
+short smallint(6) NULL NO MUL NULL #
+medium mediumint(8) NULL NO MUL 0 #
+long_int int(11) NULL NO 0 #
+longlong bigint(13) NULL NO MUL 0 #
+real_float float(13,1) NULL NO MUL 0.0 #
real_double double(16,4) NULL YES NULL #
-utiny tinyint(3) unsigned NULL 0 #
-ushort smallint(5) unsigned zerofill NULL 00000 #
-umedium mediumint(8) unsigned NULL MUL 0 #
-ulong int(11) unsigned NULL MUL 0 #
-ulonglong bigint(13) unsigned NULL MUL 0 #
-time_stamp timestamp NULL CURRENT_TIMESTAMP #
-date_field varchar(10) latin1_swedish_ci YES NULL #
+utiny tinyint(3) unsigned NULL NO 0 #
+ushort smallint(5) unsigned zerofill NULL NO 00000 #
+umedium mediumint(8) unsigned NULL NO MUL 0 #
+ulong int(11) unsigned NULL NO MUL 0 #
+ulonglong bigint(13) unsigned NULL NO MUL 0 #
+time_stamp timestamp NULL NO CURRENT_TIMESTAMP #
+date_field char(10) latin1_swedish_ci YES NULL #
time_field time NULL YES NULL #
date_time datetime NULL YES NULL #
new_blob_col varchar(20) latin1_swedish_ci YES NULL #
tinyblob_col tinyblob NULL YES NULL #
-mediumblob_col mediumblob NULL #
-options enum('one','two','tree') latin1_swedish_ci MUL one #
-flags set('one','two','tree') latin1_swedish_ci #
-new_field varchar(10) latin1_swedish_ci new #
+mediumblob_col mediumblob NULL NO NULL #
+options enum('one','two','tree') latin1_swedish_ci NO MUL NULL #
+flags set('one','two','tree') latin1_swedish_ci NO #
+new_field char(10) latin1_swedish_ci NO new #
show full columns from t2;
Field Type Collation Null Key Default Extra Privileges Comment
-auto int(5) unsigned NULL 0 #
-string varchar(10) latin1_swedish_ci YES new defaul #
-tiny tinyint(4) NULL 0 #
-short smallint(6) NULL 0 #
-medium mediumint(8) NULL 0 #
-long_int int(11) NULL 0 #
-longlong bigint(13) NULL 0 #
-real_float float(13,1) NULL 0.0 #
+auto int(5) unsigned NULL NO 0 #
+string char(10) latin1_swedish_ci YES newdefault #
+tiny tinyint(4) NULL NO 0 #
+short smallint(6) NULL NO NULL #
+medium mediumint(8) NULL NO 0 #
+long_int int(11) NULL NO 0 #
+longlong bigint(13) NULL NO 0 #
+real_float float(13,1) NULL NO 0.0 #
real_double double(16,4) NULL YES NULL #
-utiny tinyint(3) unsigned NULL 0 #
-ushort smallint(5) unsigned zerofill NULL 00000 #
-umedium mediumint(8) unsigned NULL 0 #
-ulong int(11) unsigned NULL 0 #
-ulonglong bigint(13) unsigned NULL 0 #
-time_stamp timestamp NULL 0000-00-00 00:00:00 #
-date_field varchar(10) latin1_swedish_ci YES NULL #
+utiny tinyint(3) unsigned NULL NO 0 #
+ushort smallint(5) unsigned zerofill NULL NO 00000 #
+umedium mediumint(8) unsigned NULL NO 0 #
+ulong int(11) unsigned NULL NO 0 #
+ulonglong bigint(13) unsigned NULL NO 0 #
+time_stamp timestamp NULL NO 0000-00-00 00:00:00 #
+date_field char(10) latin1_swedish_ci YES NULL #
time_field time NULL YES NULL #
date_time datetime NULL YES NULL #
new_blob_col varchar(20) latin1_swedish_ci YES NULL #
tinyblob_col tinyblob NULL YES NULL #
-mediumblob_col mediumblob NULL #
-options enum('one','two','tree') latin1_swedish_ci one #
-flags set('one','two','tree') latin1_swedish_ci #
-new_field varchar(10) latin1_swedish_ci new #
+mediumblob_col mediumblob NULL NO NULL #
+options enum('one','two','tree') latin1_swedish_ci NO NULL #
+flags set('one','two','tree') latin1_swedish_ci NO #
+new_field char(10) latin1_swedish_ci NO new #
select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and ((t1.string<>t2.string and (t1.string is not null or t2.string is not null)) or (t1.tiny<>t2.tiny and (t1.tiny is not null or t2.tiny is not null)) or (t1.short<>t2.short and (t1.short is not null or t2.short is not null)) or (t1.medium<>t2.medium and (t1.medium is not null or t2.medium is not null)) or (t1.long_int<>t2.long_int and (t1.long_int is not null or t2.long_int is not null)) or (t1.longlong<>t2.longlong and (t1.longlong is not null or t2.longlong is not null)) or (t1.real_float<>t2.real_float and (t1.real_float is not null or t2.real_float is not null)) or (t1.real_double<>t2.real_double and (t1.real_double is not null or t2.real_double is not null)) or (t1.utiny<>t2.utiny and (t1.utiny is not null or t2.utiny is not null)) or (t1.ushort<>t2.ushort and (t1.ushort is not null or t2.ushort is not null)) or (t1.umedium<>t2.umedium and (t1.umedium is not null or t2.umedium is not null)) or (t1.ulong<>t2.ulong and (t1.ulong is not null or t2.ulong is not null)) or (t1.ulonglong<>t2.ulonglong and (t1.ulonglong is not null or t2.ulonglong is not null)) or (t1.time_stamp<>t2.time_stamp and (t1.time_stamp is not null or t2.time_stamp is not null)) or (t1.date_field<>t2.date_field and (t1.date_field is not null or t2.date_field is not null)) or (t1.time_field<>t2.time_field and (t1.time_field is not null or t2.time_field is not null)) or (t1.date_time<>t2.date_time and (t1.date_time is not null or t2.date_time is not null)) or (t1.new_blob_col<>t2.new_blob_col and (t1.new_blob_col is not null or t2.new_blob_col is not null)) or (t1.tinyblob_col<>t2.tinyblob_col and (t1.tinyblob_col is not null or t2.tinyblob_col is not null)) or (t1.mediumblob_col<>t2.mediumblob_col and (t1.mediumblob_col is not null or t2.mediumblob_col is not null)) or (t1.options<>t2.options and (t1.options is not null or t2.options is not null)) or (t1.flags<>t2.flags and (t1.flags is not null or t2.flags is not null)) or (t1.new_field<>t2.new_field and (t1.new_field is not null or t2.new_field is not null)));
auto auto
16 16
@@ -265,23 +268,27 @@ select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and not (t1.string<=>t2.
auto auto
16 16
drop table t2;
-create table t2 (primary key (auto)) select auto+1 as auto,1 as t1, "a" as t2, repeat("a",256) as t3, binary repeat("b",256) as t4 from t1;
+create table t2 (primary key (auto)) select auto+1 as auto,1 as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4, repeat('a',4096) as t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
show full columns from t2;
Field Type Collation Null Key Default Extra Privileges Comment
-auto bigint(17) unsigned NULL PRI 0 #
-t1 bigint(1) NULL 0 #
-t2 char(1) latin1_swedish_ci #
-t3 longtext latin1_swedish_ci #
-t4 longblob NULL #
-select * from t2;
-auto t1 t2 t3 t4
-11 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-12 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-13 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-14 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-15 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-16 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-17 1 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+auto bigint(12) unsigned NULL NO PRI 0 #
+t1 int(1) NULL NO 0 #
+t2 varchar(1) latin1_swedish_ci NO #
+t3 varchar(256) latin1_swedish_ci NO #
+t4 varbinary(256) NULL NO #
+t5 longtext latin1_swedish_ci NO NULL #
+t6 longblob NULL NO NULL #
+t7 char(0) latin1_swedish_ci NO #
+t8 binary(0) NULL NO #
+select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
+t1 t2 length(t3) length(t4) length(t5) length(t6) t7 t8
+1 a 256 256 4096 4096
+1 a 256 256 4096 4096
+1 a 256 256 4096 4096
+1 a 256 256 4096 4096
+1 a 256 256 4096 4096
+1 a 256 256 4096 4096
+1 a 256 256 4096 4096
drop table t1,t2;
create table t1 (c int);
insert into t1 values(1),(2);
@@ -293,7 +300,7 @@ show full columns from t3;
Field Type Collation Null Key Default Extra Privileges Comment
c1 int(11) NULL YES NULL #
c2 int(11) NULL YES NULL #
-const bigint(1) NULL 0 #
+const int(1) NULL NO 0 #
drop table t1,t2,t3;
create table t1 ( myfield INT NOT NULL, UNIQUE INDEX (myfield), unique (myfield), index(myfield));
drop table t1;
@@ -305,16 +312,32 @@ select t1.id as id_A, t2.id as id_B from t1 left join t2 using ( id );
id_A id_B
1 1
2 NULL
+select t1.id as id_A, t2.id as id_B from t1 left join t2 on (t1.id = t2.id);
+id_A id_B
+1 1
+2 NULL
create table t3 (id_A integer unsigned not null, id_B integer unsigned null );
insert into t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 using ( id );
select * from t3;
id_A id_B
1 1
2 NULL
+delete from t3;
+insert into t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 on (t1.id = t2.id);
+select * from t3;
+id_A id_B
+1 1
+2 NULL
drop table t3;
create table t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 using ( id );
select * from t3;
id_A id_B
1 1
2 NULL
+drop table t3;
+create table t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 on (t1.id = t2.id);
+select * from t3;
+id_A id_B
+1 1
+2 NULL
drop table t1,t2,t3;
diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result
index 5aedefda283..03de20baef2 100644
--- a/mysql-test/r/type_set.result
+++ b/mysql-test/r/type_set.result
@@ -3,7 +3,7 @@ create table t1 (a set (' ','a','b') not null);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` set('','a','b') NOT NULL default ''
+ `a` set('','a','b') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a set (' ','a','b ') not null default 'b ');
@@ -66,3 +66,22 @@ ss
ue
ue
DROP TABLE t1;
+create table t1(f1
+set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17',
+'18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33',
+'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49',
+'50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','128'));
+ERROR HY000: Too many strings for column f1 and SET
+create table t1(f1
+set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17',
+'18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33',
+'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49',
+'50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','1'));
+Warnings:
+Note 1291 Column 'f1' has duplicated value '1' in SET
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','1') default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
diff --git a/mysql-test/r/type_time.result b/mysql-test/r/type_time.result
index 025cf2a57f1..96bf23109df 100644
--- a/mysql-test/r/type_time.result
+++ b/mysql-test/r/type_time.result
@@ -26,9 +26,9 @@ t
insert into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a");
Warnings:
Warning 1265 Data truncated for column 't' at row 1
-Warning 1264 Data truncated; out of range for column 't' at row 2
-Warning 1264 Data truncated; out of range for column 't' at row 3
-Warning 1264 Data truncated; out of range for column 't' at row 4
+Warning 1264 Out of range value adjusted for column 't' at row 2
+Warning 1264 Out of range value adjusted for column 't' at row 3
+Warning 1264 Out of range value adjusted for column 't' at row 4
Warning 1265 Data truncated for column 't' at row 6
select * from t1;
t
@@ -85,3 +85,46 @@ sec_to_time(time_to_sec(t))
13:00:00
09:00:00
drop table t1;
+select cast('100:55:50' as time) < cast('24:00:00' as time);
+cast('100:55:50' as time) < cast('24:00:00' as time)
+0
+select cast('100:55:50' as time) < cast('024:00:00' as time);
+cast('100:55:50' as time) < cast('024:00:00' as time)
+0
+select cast('300:55:50' as time) < cast('240:00:00' as time);
+cast('300:55:50' as time) < cast('240:00:00' as time)
+0
+select cast('100:55:50' as time) > cast('24:00:00' as time);
+cast('100:55:50' as time) > cast('24:00:00' as time)
+1
+select cast('100:55:50' as time) > cast('024:00:00' as time);
+cast('100:55:50' as time) > cast('024:00:00' as time)
+1
+select cast('300:55:50' as time) > cast('240:00:00' as time);
+cast('300:55:50' as time) > cast('240:00:00' as time)
+1
+create table t1 (f1 time);
+insert into t1 values ('24:00:00');
+select cast('24:00:00' as time) = (select f1 from t1);
+cast('24:00:00' as time) = (select f1 from t1)
+1
+drop table t1;
+create table t1(f1 time, f2 time);
+insert into t1 values('20:00:00','150:00:00');
+select 1 from t1 where cast('100:00:00' as time) between f1 and f2;
+1
+1
+drop table t1;
+CREATE TABLE t1 (
+f2 date NOT NULL,
+f3 int(11) unsigned NOT NULL default '0',
+PRIMARY KEY (f3, f2)
+);
+insert into t1 values('2007-07-01', 1);
+insert into t1 values('2007-07-01', 2);
+insert into t1 values('2007-07-02', 1);
+insert into t1 values('2007-07-02', 2);
+SELECT sum(f3) FROM t1 where f2='2007-07-01 00:00:00' group by f2;
+sum(f3)
+3
+drop table t1;
diff --git a/mysql-test/r/type_timestamp.result b/mysql-test/r/type_timestamp.result
index 4e71d76785a..445ada578d0 100644
--- a/mysql-test/r/type_timestamp.result
+++ b/mysql-test/r/type_timestamp.result
@@ -1,4 +1,5 @@
drop table if exists t1,t2;
+set time_zone="+03:00";
CREATE TABLE t1 (a int, t timestamp);
CREATE TABLE t2 (a int, t datetime);
SET TIMESTAMP=1234;
@@ -35,6 +36,10 @@ UPDATE t1 SET value="my value" WHERE id="myKey";
SELECT stamp FROM t1 WHERE id="myKey";
stamp
1999-04-02 00:00:00
+UPDATE t1 SET id="myKey" WHERE value="my value";
+SELECT stamp FROM t1 WHERE id="myKey";
+stamp
+1999-04-02 00:00:00
drop table t1;
create table t1 (a timestamp);
insert into t1 values (now());
@@ -95,6 +100,14 @@ drop table t1;
create table t1 (t2 timestamp(2), t4 timestamp(4), t6 timestamp(6),
t8 timestamp(8), t10 timestamp(10), t12 timestamp(12),
t14 timestamp(14));
+Warnings:
+Warning 1287 'TIMESTAMP(2)' is deprecated; use 'TIMESTAMP' instead
+Warning 1287 'TIMESTAMP(4)' is deprecated; use 'TIMESTAMP' instead
+Warning 1287 'TIMESTAMP(6)' is deprecated; use 'TIMESTAMP' instead
+Warning 1287 'TIMESTAMP(8)' is deprecated; use 'TIMESTAMP' instead
+Warning 1287 'TIMESTAMP(10)' is deprecated; use 'TIMESTAMP' instead
+Warning 1287 'TIMESTAMP(12)' is deprecated; use 'TIMESTAMP' instead
+Warning 1287 'TIMESTAMP(14)' is deprecated; use 'TIMESTAMP' instead
insert t1 values (0,0,0,0,0,0,0),
("1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
"1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
@@ -188,9 +201,9 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
-t1 timestamp 2003-01-01 00:00:00
+t1 timestamp NO 2003-01-01 00:00:00
t2 datetime YES NULL
-t3 timestamp 0000-00-00 00:00:00
+t3 timestamp NO 0000-00-00 00:00:00
drop table t1;
create table t1 (t1 timestamp default now(), t2 datetime, t3 timestamp);
SET TIMESTAMP=1000000002;
@@ -212,9 +225,9 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
-t1 timestamp CURRENT_TIMESTAMP
+t1 timestamp NO CURRENT_TIMESTAMP
t2 datetime YES NULL
-t3 timestamp 0000-00-00 00:00:00
+t3 timestamp NO 0000-00-00 00:00:00
drop table t1;
create table t1 (t1 timestamp default '2003-01-01 00:00:00' on update now(), t2 datetime);
SET TIMESTAMP=1000000004;
@@ -238,7 +251,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
-t1 timestamp 2003-01-01 00:00:00
+t1 timestamp NO 2003-01-01 00:00:00
t2 datetime YES NULL
drop table t1;
create table t1 (t1 timestamp default now() on update now(), t2 datetime);
@@ -263,7 +276,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
-t1 timestamp CURRENT_TIMESTAMP
+t1 timestamp NO CURRENT_TIMESTAMP
t2 datetime YES NULL
drop table t1;
create table t1 (t1 timestamp, t2 datetime, t3 timestamp);
@@ -289,9 +302,9 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
-t1 timestamp CURRENT_TIMESTAMP
+t1 timestamp NO CURRENT_TIMESTAMP
t2 datetime YES NULL
-t3 timestamp 0000-00-00 00:00:00
+t3 timestamp NO 0000-00-00 00:00:00
drop table t1;
create table t1 (t1 timestamp default current_timestamp on update current_timestamp, t2 datetime);
SET TIMESTAMP=1000000009;
@@ -315,7 +328,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
-t1 timestamp CURRENT_TIMESTAMP
+t1 timestamp NO CURRENT_TIMESTAMP
t2 datetime YES NULL
delete from t1;
insert into t1 values ('2004-04-01 00:00:00', '2004-04-01 00:00:00');
@@ -479,3 +492,19 @@ a b c
5 NULL 2001-09-09 04:46:59
6 NULL 2006-06-06 06:06:06
drop table t1;
+set time_zone= @@global.time_zone;
+CREATE TABLE t1 (
+`id` int(11) NOT NULL auto_increment,
+`username` varchar(80) NOT NULL default '',
+`posted_on` timestamp NOT NULL default '0000-00-00 00:00:00',
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
+show fields from t1;
+Field Type Null Key Default Extra
+id int(11) NO PRI NULL auto_increment
+username varchar(80) NO
+posted_on timestamp NO 0000-00-00 00:00:00
+select is_nullable from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t1' and COLUMN_NAME='posted_on';
+is_nullable
+NO
+drop table t1;
diff --git a/mysql-test/r/type_uint.result b/mysql-test/r/type_uint.result
index d8edf9085b7..0474f3a24f4 100644
--- a/mysql-test/r/type_uint.result
+++ b/mysql-test/r/type_uint.result
@@ -4,10 +4,10 @@ create table t1 (this int unsigned);
insert into t1 values (1);
insert into t1 values (-1);
Warnings:
-Warning 1264 Data truncated; out of range for column 'this' at row 1
+Warning 1264 Out of range value adjusted for column 'this' at row 1
insert into t1 values ('5000000000');
Warnings:
-Warning 1265 Data truncated for column 'this' at row 1
+Warning 1264 Out of range value adjusted for column 'this' at row 1
select * from t1;
this
1
diff --git a/mysql-test/r/type_varchar.result b/mysql-test/r/type_varchar.result
new file mode 100644
index 00000000000..f6c2f4d01a6
--- /dev/null
+++ b/mysql-test/r/type_varchar.result
@@ -0,0 +1,491 @@
+drop table if exists t1, t2;
+create table t1 (v varchar(30), c char(3), e enum('abc','def','ghi'), t text);
+truncate table vchar;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` varchar(30) default NULL,
+ `c` char(3) default NULL,
+ `e` enum('abc','def','ghi') default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create table vchar;
+Table Create Table
+vchar CREATE TABLE `vchar` (
+ `v` varchar(30) default NULL,
+ `c` char(3) default NULL,
+ `e` enum('abc','def','ghi') default NULL,
+ `t` text
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+insert into t1 values ('abc', 'de', 'ghi', 'jkl');
+insert into t1 values ('abc ', 'de ', 'ghi', 'jkl ');
+insert into t1 values ('abc ', 'd ', 'ghi', 'jkl ');
+insert into vchar values ('abc', 'de', 'ghi', 'jkl');
+insert into vchar values ('abc ', 'de ', 'ghi', 'jkl ');
+insert into vchar values ('abc ', 'd ', 'ghi', 'jkl ');
+select length(v),length(c),length(e),length(t) from t1;
+length(v) length(c) length(e) length(t)
+3 2 3 3
+4 2 3 4
+7 1 3 7
+select length(v),length(c),length(e),length(t) from vchar;
+length(v) length(c) length(e) length(t)
+3 2 3 3
+3 2 3 4
+3 1 3 7
+alter table vchar add i int;
+show create table vchar;
+Table Create Table
+vchar CREATE TABLE `vchar` (
+ `v` varchar(30) default NULL,
+ `c` char(3) default NULL,
+ `e` enum('abc','def','ghi') default NULL,
+ `t` text,
+ `i` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select length(v),length(c),length(e),length(t) from vchar;
+length(v) length(c) length(e) length(t)
+3 2 3 3
+3 2 3 4
+3 1 3 7
+drop table t1, vchar;
+create table t1 (v varchar(20));
+insert into t1 values('a ');
+select v='a' from t1;
+v='a'
+1
+select binary v='a' from t1;
+binary v='a'
+0
+select binary v='a ' from t1;
+binary v='a '
+1
+insert into t1 values('a');
+alter table t1 add primary key (v);
+ERROR 23000: Duplicate entry 'a' for key 1
+drop table t1;
+create table t1 (v varbinary(20));
+insert into t1 values('a');
+insert into t1 values('a ');
+alter table t1 add primary key (v);
+drop table t1;
+create table t1 (v varchar(254), index (v));
+insert into t1 values ("This is a test ");
+insert into t1 values ("Some sample data");
+insert into t1 values (" garbage ");
+insert into t1 values (" This is a test ");
+insert into t1 values ("This is a test");
+insert into t1 values ("Hello world");
+insert into t1 values ("Foo bar");
+insert into t1 values ("This is a test");
+insert into t1 values ("MySQL varchar test");
+insert into t1 values ("test MySQL varchar");
+insert into t1 values ("This is a long string to have some random length data included");
+insert into t1 values ("Short string");
+insert into t1 values ("VSS");
+insert into t1 values ("Some samples");
+insert into t1 values ("Bar foo");
+insert into t1 values ("Bye");
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 257 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 257 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 257 NULL 2 Using where; Using index
+alter table t1 change v v varchar(255);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 258 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 258 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 258 NULL 2 Using where; Using index
+alter table t1 change v v varchar(256);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 259 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 259 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 259 NULL 2 Using where; Using index
+alter table t1 change v v varchar(257);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 260 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 260 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 260 NULL 2 Using where; Using index
+alter table t1 change v v varchar(258);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 261 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 261 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 261 NULL 2 Using where; Using index
+alter table t1 change v v varchar(259);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 262 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 262 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 262 NULL 2 Using where; Using index
+alter table t1 change v v varchar(258);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 261 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 261 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 261 NULL 2 Using where; Using index
+alter table t1 change v v varchar(257);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 260 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 260 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 260 NULL 2 Using where; Using index
+alter table t1 change v v varchar(256);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 259 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 259 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 259 NULL 2 Using where; Using index
+alter table t1 change v v varchar(255);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 258 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 258 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 258 NULL 2 Using where; Using index
+alter table t1 change v v varchar(254);
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 257 NULL 3 Using where; Using index
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 257 const 3 Using where; Using index
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 257 NULL 2 Using where; Using index
+alter table t1 change v v varchar(253);
+alter table t1 change v v varchar(254), drop key v;
+alter table t1 change v v varchar(300), add key (v(10));
+select * from t1 where v like 'This is a test' order by v;
+v
+This is a test
+This is a test
+select * from t1 where v='This is a test' order by v;
+v
+This is a test
+This is a test
+This is a test
+select * from t1 where v like 'S%' order by v;
+v
+Short string
+Some sample data
+Some samples
+explain select * from t1 where v like 'This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 13 NULL 4 Using where; Using filesort
+explain select * from t1 where v='This is a test' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref v v 13 const 4 Using where
+explain select * from t1 where v like 'S%' order by v;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range v v 13 NULL 2 Using where; Using filesort
+drop table t1;
+create table t1 (pkcol varchar(16), othercol varchar(16), primary key (pkcol));
+insert into t1 values ('test', 'something');
+update t1 set othercol='somethingelse' where pkcol='test';
+select * from t1;
+pkcol othercol
+test somethingelse
+drop table t1;
+create table t1 (a int, b varchar(12));
+insert into t1 values (1, 'A'), (22, NULL);
+create table t2 (a int);
+insert into t2 values (22), (22);
+select t1.a, t1.b, min(t1.b) from t1 inner join t2 ON t2.a = t1.a
+group by t1.b, t1.a;
+a b min(t1.b)
+22 NULL NULL
+drop table t1, t2;
+create table t1 (f1 varchar(65500));
+create index index1 on t1(f1(10));
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` varchar(65500) default NULL,
+ KEY `index1` (`f1`(10))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify f1 varchar(255);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` varchar(255) default NULL,
+ KEY `index1` (`f1`(10))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 modify f1 tinytext;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` tinytext,
+ KEY `index1` (`f1`(10))
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(f1 VARCHAR(100) DEFAULT 'test');
+INSERT INTO t1 VALUES(SUBSTR(f1, 1, 3));
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(f1 CHAR(100) DEFAULT 'test');
+INSERT INTO t1 VALUES(SUBSTR(f1, 1, 3));
+DROP TABLE IF EXISTS t1;
+drop table if exists t1, t2, t3;
+create table t3 (
+id int(11),
+en varchar(255) character set utf8,
+cz varchar(255) character set utf8
+);
+truncate table t3;
+insert into t3 (id, en, cz) values
+(1,'en string 1','cz string 1'),
+(2,'en string 2','cz string 2'),
+(3,'en string 3','cz string 3');
+create table t1 (
+id int(11),
+name_id int(11)
+);
+insert into t1 (id, name_id) values (1,1), (2,3), (3,3);
+create table t2 (id int(11));
+insert into t2 (id) values (1), (2), (3);
+select t1.*, t2.id, t3.en, t3.cz from t1 left join t2 on t1.id=t2.id
+left join t3 on t1.id=t3.id order by t3.id;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 id id 3 11 1 Y 32768 0 63
+def test t1 t1 name_id name_id 3 11 1 Y 32768 0 63
+def test t2 t2 id id 3 11 1 Y 32768 0 63
+def test t3 t3 en en 253 255 11 Y 0 0 8
+def test t3 t3 cz cz 253 255 11 Y 0 0 8
+id name_id id en cz
+1 1 1 en string 1 cz string 1
+2 3 2 en string 2 cz string 2
+3 3 3 en string 3 cz string 3
+drop table t1, t2, t3;
+CREATE TABLE t1 (a CHAR(2));
+INSERT INTO t1 VALUES (10), (50), (30), ('1a'), (60), ('t');
+SELECT a,(a + 0) FROM t1 ORDER BY a;
+a (a + 0)
+10 10
+1a 1
+30 30
+50 50
+60 60
+t 0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: '1a'
+Warning 1292 Truncated incorrect DOUBLE value: 't '
+SELECT a,(a DIV 2) FROM t1 ORDER BY a;
+a (a DIV 2)
+10 5
+1a 0
+30 15
+50 25
+60 30
+t 0
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: '1a'
+Warning 1292 Truncated incorrect INTEGER value: 't '
+SELECT a,CAST(a AS SIGNED) FROM t1 ORDER BY a;
+a CAST(a AS SIGNED)
+10 10
+1a 1
+30 30
+50 50
+60 60
+t 0
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: '1a'
+Warning 1292 Truncated incorrect INTEGER value: 't'
+DROP TABLE t1;
diff --git a/mysql-test/r/type_year.result b/mysql-test/r/type_year.result
index 84b688429db..e52947455c8 100644
--- a/mysql-test/r/type_year.result
+++ b/mysql-test/r/type_year.result
@@ -34,3 +34,15 @@ select if(y = now(), 1, 0) from t1;
if(y = now(), 1, 0)
1
drop table t1;
+create table t1(a year);
+insert into t1 values (2000.5), ('2000.5'), ('2001a'), ('2.001E3');
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 3
+select * from t1;
+a
+2001
+2001
+2001
+2001
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/udf.result b/mysql-test/r/udf.result
new file mode 100644
index 00000000000..e6797796ea0
--- /dev/null
+++ b/mysql-test/r/udf.result
@@ -0,0 +1,330 @@
+drop table if exists t1;
+CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION myfunc_double RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION myfunc_nonexist RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
+ERROR HY000: Can't find function 'myfunc_nonexist' in library
+CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION sequence RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION lookup RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION reverse_lookup
+RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+CREATE AGGREGATE FUNCTION avgcost
+RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
+select myfunc_double();
+ERROR HY000: myfunc_double must have at least one argument
+select myfunc_double(1);
+myfunc_double(1)
+49.00
+select myfunc_double(78654);
+myfunc_double(78654)
+54.00
+select myfunc_nonexist();
+ERROR 42000: FUNCTION test.myfunc_nonexist does not exist
+select myfunc_int();
+myfunc_int()
+0
+select lookup();
+ERROR HY000: Wrong arguments to lookup; Use the source
+select lookup("127.0.0.1");
+lookup("127.0.0.1")
+127.0.0.1
+select lookup(127,0,0,1);
+ERROR HY000: Wrong arguments to lookup; Use the source
+select lookup("localhost");
+lookup("localhost")
+127.0.0.1
+select reverse_lookup();
+ERROR HY000: Wrong number of arguments to reverse_lookup; Use the source
+select reverse_lookup("127.0.0.1");
+select reverse_lookup(127,0,0,1);
+select reverse_lookup("localhost");
+reverse_lookup("localhost")
+NULL
+select avgcost();
+ERROR HY000: wrong number of arguments: AVGCOST() requires two arguments
+select avgcost(100,23.76);
+ERROR HY000: wrong argument type: AVGCOST() requires an INT and a REAL
+create table t1(sum int, price float(24));
+insert into t1 values(100, 50.00), (100, 100.00);
+select avgcost(sum, price) from t1;
+avgcost(sum, price)
+75.0000
+delete from t1;
+insert into t1 values(100, 54.33), (200, 199.99);
+select avgcost(sum, price) from t1;
+avgcost(sum, price)
+151.4367
+drop table t1;
+select metaphon('hello');
+metaphon('hello')
+HL
+CREATE PROCEDURE `XXX1`(in testval varchar(10))
+begin
+select metaphon(testval);
+end//
+call XXX1('hello');
+metaphon(testval)
+HL
+drop procedure xxx1;
+CREATE PROCEDURE `XXX2`()
+begin
+declare testval varchar(10);
+set testval = 'hello';
+select metaphon(testval);
+end//
+call XXX2();
+metaphon(testval)
+HL
+drop procedure xxx2;
+CREATE TABLE bug19904(n INT, v varchar(10));
+INSERT INTO bug19904 VALUES (1,'one'),(2,'two'),(NULL,NULL),(3,'three'),(4,'four');
+SELECT myfunc_double(n) AS f FROM bug19904;
+f
+49.00
+50.00
+NULL
+51.00
+52.00
+SELECT metaphon(v) AS f FROM bug19904;
+f
+ON
+TW
+NULL
+0R
+FR
+DROP TABLE bug19904;
+CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse
+RETURNS STRING SONAME "should_not_parse.so";
+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 'RETURNS STRING SONAME "should_not_parse.so"' at line 2
+CREATE DEFINER=someone@somewhere FUNCTION should_not_parse
+RETURNS STRING SONAME "should_not_parse.so";
+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 'RETURNS STRING SONAME "should_not_parse.so"' at line 2
+create table t1(f1 int);
+insert into t1 values(1),(2);
+explain select myfunc_int(f1) from t1 order by 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+drop table t1;
+CREATE TABLE t1(a INT, b INT);
+INSERT INTO t1 values (1,1),(2,2);
+CREATE FUNCTION fn(a int) RETURNS int DETERMINISTIC
+BEGIN
+RETURN a;
+END
+||
+CREATE VIEW v1 AS SELECT a, fn(MIN(b)) as c FROM t1 GROUP BY a;
+SELECT myfunc_int(a AS attr_name) FROM t1;
+myfunc_int(a AS attr_name)
+1
+2
+EXPLAIN EXTENDED SELECT myfunc_int(a AS attr_name) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select myfunc_int(`test`.`t1`.`a` AS `attr_name`) AS `myfunc_int(a AS attr_name)` from `test`.`t1`
+EXPLAIN EXTENDED SELECT myfunc_int(a) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select myfunc_int(`test`.`t1`.`a` AS `a`) AS `myfunc_int(a)` from `test`.`t1`
+SELECT a,c FROM v1;
+a c
+1 1
+2 2
+SELECT a, fn(MIN(b) xx) as c FROM t1 GROUP BY a;
+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 'xx) as c FROM t1 GROUP BY a' at line 1
+SELECT myfunc_int(fn(MIN(b) xx)) as c FROM t1 GROUP BY a;
+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 'xx)) as c FROM t1 GROUP BY a' at line 1
+SELECT myfunc_int(test.fn(MIN(b) xx)) as c FROM t1 GROUP BY a;
+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 'xx)) as c FROM t1 GROUP BY a' at line 1
+SELECT myfunc_int(fn(MIN(b)) xx) as c FROM t1 GROUP BY a;
+c
+1
+2
+SELECT myfunc_int(test.fn(MIN(b)) xx) as c FROM t1 GROUP BY a;
+c
+1
+2
+EXPLAIN EXTENDED SELECT myfunc_int(MIN(b) xx) as c FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+Warnings:
+Note 1003 select myfunc_int(min(`test`.`t1`.`b`) AS `xx`) AS `c` from `test`.`t1` group by `test`.`t1`.`a`
+EXPLAIN EXTENDED SELECT test.fn(MIN(b)) as c FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+Warnings:
+Note 1003 select `test`.`fn`(min(`test`.`t1`.`b`)) AS `c` from `test`.`t1` group by `test`.`t1`.`a`
+EXPLAIN EXTENDED SELECT myfunc_int(fn(MIN(b))) as c FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+Warnings:
+Note 1003 select myfunc_int(`fn`(min(`test`.`t1`.`b`)) AS `fn(MIN(b))`) AS `c` from `test`.`t1` group by `test`.`t1`.`a`
+EXPLAIN EXTENDED SELECT myfunc_int(test.fn(MIN(b))) as c FROM t1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+Warnings:
+Note 1003 select myfunc_int(`test`.`fn`(min(`test`.`t1`.`b`)) AS `test.fn(MIN(b))`) AS `c` from `test`.`t1` group by `test`.`t1`.`a`
+SELECT myfunc_int(MIN(b) xx) as c FROM t1 GROUP BY a;
+c
+1
+2
+SELECT test.fn(MIN(b)) as c FROM t1 GROUP BY a;
+c
+1
+2
+SELECT myfunc_int(fn(MIN(b))) as c FROM t1 GROUP BY a;
+c
+1
+2
+SELECT myfunc_int(test.fn(MIN(b))) as c FROM t1 GROUP BY a;
+c
+1
+2
+DROP VIEW v1;
+DROP TABLE t1;
+DROP FUNCTION fn;
+End of 5.0 tests.
+DROP FUNCTION metaphon;
+DROP FUNCTION myfunc_double;
+DROP FUNCTION myfunc_nonexist;
+ERROR 42000: FUNCTION test.myfunc_nonexist does not exist
+DROP FUNCTION myfunc_int;
+DROP FUNCTION sequence;
+DROP FUNCTION lookup;
+DROP FUNCTION reverse_lookup;
+DROP FUNCTION avgcost;
+select * from mysql.func;
+name ret dl type
+CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+select IS_const(3);
+IS_const(3)
+const
+drop function IS_const;
+select * from mysql.func;
+name ret dl type
+select is_const(3);
+ERROR 42000: FUNCTION test.is_const does not exist
+CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+select
+is_const(3) as const,
+is_const(3.14) as const,
+is_const('fnord') as const,
+is_const(2+3) as const,
+is_const(rand()) as 'nc rand()',
+is_const(sin(3.14)) as const,
+is_const(upper('test')) as const;
+const const const const nc rand() const const
+const const const const not const const const
+create table bug18761 (n int);
+insert into bug18761 values (null),(2);
+select
+is_const(3) as const,
+is_const(3.14) as const,
+is_const('fnord') as const,
+is_const(2+3) as const,
+is_const(2+n) as 'nc 2+n ',
+is_const(sin(n)) as 'nc sin(n)',
+is_const(sin(3.14)) as const,
+is_const(upper('test')) as const,
+is_const(rand()) as 'nc rand()',
+is_const(n) as 'nc n ',
+is_const(is_const(n)) as 'nc ic?(n)',
+is_const(is_const('c')) as const
+from
+bug18761;
+const const const const nc 2+n nc sin(n) const const nc rand() nc n nc ic?(n) const
+const const const const not const not const const const not const not const not const const
+const const const const not const not const const const not const not const not const const
+drop table bug18761;
+select is_const((1,2,3));
+ERROR 21000: Operand should contain 1 column(s)
+drop function if exists is_const;
+CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION myfunc_double RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
+create function f1(p1 varchar(255))
+returns varchar(255)
+begin
+return metaphon(p1);
+end//
+create function f2(p1 varchar(255))
+returns double
+begin
+return myfunc_double(p1);
+end//
+create function f3(p1 varchar(255))
+returns double
+begin
+return myfunc_int(p1);
+end//
+select f3(NULL);
+f3(NULL)
+0
+select f2(NULL);
+f2(NULL)
+NULL
+select f1(NULL);
+f1(NULL)
+NULL
+drop function f1;
+drop function f2;
+drop function f3;
+drop function metaphon;
+drop function myfunc_double;
+drop function myfunc_int;
+CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+create table t1 (a char);
+set GLOBAL query_cache_size=1355776;
+reset query cache;
+select metaphon('MySQL') from t1;
+metaphon('MySQL')
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+select metaphon('MySQL') from t1;
+metaphon('MySQL')
+show status like "Qcache_hits";
+Variable_name Value
+Qcache_hits 0
+show status like "Qcache_queries_in_cache";
+Variable_name Value
+Qcache_queries_in_cache 0
+drop table t1;
+drop function metaphon;
+set GLOBAL query_cache_size=default;
+DROP DATABASE IF EXISTS mysqltest;
+CREATE DATABASE mysqltest;
+USE mysqltest;
+DROP DATABASE mysqltest;
+CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+DROP FUNCTION metaphon;
+USE test;
+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/r/union.result b/mysql-test/r/union.result
index d01ce6249f7..efdd8195fb5 100644
--- a/mysql-test/r/union.result
+++ b/mysql-test/r/union.result
@@ -88,7 +88,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 UNION t2 ALL NULL NULL NULL NULL 4 Using filesort
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
Warnings:
-Note 1003 (select test.t1.a AS `a`,test.t1.b AS `b` from test.t1 limit 2) union all (select test.t2.a AS `a`,test.t2.b AS `b` from test.t2 order by test.t2.a limit 1) order by b desc
+Note 1003 (select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` limit 2) union all (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` order by `test`.`t2`.`a` limit 1) order by `b` desc
(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;
a b
1 a
@@ -430,7 +430,7 @@ drop temporary table t1;
create table t1 select a from t1 union select a from t2;
ERROR HY000: You can't specify target table 't1' for update in FROM clause
select a from t1 union select a from t2 order by t2.a;
-ERROR 42S02: Unknown table 't2' in order clause
+ERROR 42S22: Unknown column 't2.a' in 'order clause'
drop table t1,t2;
select length(version()) > 1 as `*` UNION select 2;
*
@@ -480,7 +480,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 UNION t2 const PRIMARY PRIMARY 4 const 1
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 (select test.t1.a AS `a`,test.t1.b AS `b` from test.t1 where (test.t1.a = 1)) union (select test.t2.a AS `a`,test.t2.b AS `b` from test.t2 where (test.t2.a = 1))
+Note 1003 (select '1' AS `a`,'1' AS `b` from `test`.`t1` where ('1' = 1)) union (select '1' AS `a`,'10' AS `b` from `test`.`t2` where ('1' = 1))
(select * from t1 where a=5) union (select * from t2 where a=1);
a b
1 10
@@ -543,7 +543,7 @@ aa
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(2) NOT NULL default ''
+ `a` varchar(2) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT 12 as a UNION select "aa" as a;
@@ -554,7 +554,7 @@ aa
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` binary(20) NOT NULL default ''
+ `a` varbinary(2) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT 12 as a UNION select 12.2 as a;
@@ -565,7 +565,7 @@ a
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` double(21,1) NOT NULL default '0.0'
+ `a` decimal(3,1) NOT NULL default '0.0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t2 (it1 tinyint, it2 tinyint not null, i int not null, ib bigint, f float, d double, y year, da date, dt datetime, sc char(10), sv varchar(10), b blob, tx text);
@@ -655,7 +655,7 @@ f
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `f` varbinary(24) default NULL
+ `f` varbinary(12) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT y from t2 UNION select da from t2;
@@ -691,9 +691,9 @@ t1 CREATE TABLE `t1` (
`da` datetime default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
-create table t1 SELECT dt from t2 UNION select sc from t2;
-select * from t1;
-dt
+create table t1 SELECT dt from t2 UNION select trim(sc) from t2;
+select trim(dt) from t1;
+trim(dt)
1972-10-22 11:50:00
testc
show create table t1;
@@ -732,7 +732,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `dt` longblob
+ `dt` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT sv from t2 UNION select b from t2;
@@ -743,7 +743,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `sv` longblob
+ `sv` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT i from t2 UNION select d from t2 UNION select b from t2;
@@ -755,7 +755,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `i` longblob
+ `i` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT sv from t2 UNION select tx from t2;
@@ -766,7 +766,7 @@ teeeeeeeeeeeest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `sv` longtext
+ `sv` text
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT b from t2 UNION select tx from t2;
@@ -777,7 +777,7 @@ teeeeeeeeeeeest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `b` longblob
+ `b` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1,t2;
create table t1 select 1 union select -1;
@@ -797,7 +797,7 @@ create table t1 select _latin2"test" union select _latin2"testt" ;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `test` char(5) character set latin2 NOT NULL default ''
+ `test` varchar(5) character set latin2 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (s char(200));
@@ -1041,7 +1041,7 @@ create table t1 as
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `test` char(4) NOT NULL default ''
+ `test` varchar(4) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select count(*) from t1;
count(*)
@@ -1099,7 +1099,7 @@ create table t1 as
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a collate latin1_german1_ci` char(1) character set latin1 collate latin1_german1_ci default NULL
+ `a collate latin1_german1_ci` varchar(1) character set latin1 collate latin1_german1_ci default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 as
@@ -1108,7 +1108,7 @@ create table t1 as
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(1) character set latin1 collate latin1_german1_ci default NULL
+ `a` varchar(1) character set latin1 collate latin1_german1_ci default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 as
@@ -1118,7 +1118,7 @@ create table t1 as
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(1) character set latin1 collate latin1_german1_ci default NULL
+ `a` varchar(1) character set latin1 collate latin1_german1_ci default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
drop table t2;
@@ -1221,7 +1221,7 @@ drop table t2;
create table t2 select a from t1 union select a from t1;
show columns from t2;
Field Type Null Key Default Extra
-a char(1)
+a varchar(1) NO
drop table t2;
create table t2 select a from t1 union select c from t1;
drop table t2;
@@ -1230,6 +1230,49 @@ show columns from t2;
Field Type Null Key Default Extra
a varchar(3) YES NULL
drop table t2, t1;
+create table t1 (f1 decimal(60,25), f2 decimal(60,25));
+insert into t1 values (0.0,0.0);
+select f1 from t1 union all select f2 from t1;
+f1
+0.0000000000000000000000000
+0.0000000000000000000000000
+select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
+union all
+select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
+description f1
+XXXXXXXXXXXXXXXXXXXX 0.0000000000000000000000000
+YYYYYYYYYYYYYYYYYYYY 0.0000000000000000000000000
+drop table t1;
+create table t1 (f1 decimal(60,24), f2 decimal(60,24));
+insert into t1 values (0.0,0.0);
+select f1 from t1 union all select f2 from t1;
+f1
+0.000000000000000000000000
+0.000000000000000000000000
+select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
+union all
+select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
+description f1
+XXXXXXXXXXXXXXXXXXXX 0.000000000000000000000000
+YYYYYYYYYYYYYYYYYYYY 0.000000000000000000000000
+drop table t1;
+create table t1 (a varchar(5));
+create table t2 select * from t1 union select 'abcdefghijkl';
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` varchar(12) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select row_format from information_schema.TABLES where table_schema="test" and table_name="t2";
+row_format
+Dynamic
+alter table t2 ROW_FORMAT=fixed;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` varchar(12) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
+drop table t1,t2;
CREATE TABLE t1 (a mediumtext);
CREATE TABLE t2 (b varchar(20));
INSERT INTO t1 VALUES ('a'),('b');
@@ -1263,29 +1306,87 @@ id
5
99
drop table t1;
-create table t1 (f1 decimal(60,25), f2 decimal(60,25));
-insert into t1 values (0.0,0.0);
-select f1 from t1 union all select f2 from t1;
-f1
-0.0000000000000000000000000
-0.0000000000000000000000000
-select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
-union all
-select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
-description f1
-XXXXXXXXXXXXXXXXXXXX 0.0000000000000000000000000
-YYYYYYYYYYYYYYYYYYYY 0.0000000000000000000000000
-drop table t1;
-create table t1 (f1 decimal(60,24), f2 decimal(60,24));
-insert into t1 values (0.0,0.0);
-select f1 from t1 union all select f2 from t1;
-f1
-0.000000000000000000000000
-0.000000000000000000000000
-select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
-union all
-select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
-description f1
-XXXXXXXXXXXXXXXXXXXX 0.000000000000000000000000
-YYYYYYYYYYYYYYYYYYYY 0.000000000000000000000000
-drop table t1;
+create table t1(f1 char(1), f2 char(5), f3 binary(1), f4 binary(5), f5 timestamp, f6 varchar(1) character set utf8 collate utf8_general_ci, f7 text);
+create table t2 as select *, f6 as f8 from t1 union select *, f7 from t1;
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `f1` char(1) default NULL,
+ `f2` char(5) default NULL,
+ `f3` binary(1) default NULL,
+ `f4` binary(5) default NULL,
+ `f5` timestamp NOT NULL default '0000-00-00 00:00:00',
+ `f6` varchar(1) character set utf8 default NULL,
+ `f7` text,
+ `f8` mediumtext character set utf8
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1, t2;
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1));
+avg(1)
+1.0000
+select _utf8'12' union select _latin1'12345';
+12
+12
+12345
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (3),(1),(2),(4),(1);
+SELECT a FROM (SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a) AS test;
+a
+1
+2
+3
+4
+SELECT a FROM (SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY c) AS test;
+ERROR 42S22: Unknown column 'c' in 'order clause'
+DROP TABLE t1;
+(select 1 into @var) union (select 1);
+ERROR HY000: Incorrect usage of UNION and INTO
+(select 1) union (select 1 into @var);
+select @var;
+@var
+1
+(select 2) union (select 1 into @var);
+ERROR 42000: Result consisted of more than one row
+End of 5.0 tests
diff --git a/mysql-test/r/update.result b/mysql-test/r/update.result
index 186e0955e61..dc7c7642a9b 100644
--- a/mysql-test/r/update.result
+++ b/mysql-test/r/update.result
@@ -58,7 +58,7 @@ ushows int(10) unsigned DEFAULT '0' NOT NULL,
clicks int(10) unsigned DEFAULT '0' NOT NULL,
iclicks int(10) unsigned DEFAULT '0' NOT NULL,
uclicks int(10) unsigned DEFAULT '0' NOT NULL,
-ts timestamp(14),
+ts timestamp,
PRIMARY KEY (place_id,ts)
);
INSERT INTO t1 (place_id,shows,ishows,ushows,clicks,iclicks,uclicks,ts)
@@ -75,7 +75,7 @@ client varchar(255) NOT NULL default '',
replyto varchar(255) NOT NULL default '',
subject varchar(100) NOT NULL default '',
timestamp int(10) unsigned NOT NULL default '0',
-tstamp timestamp(14) NOT NULL,
+tstamp timestamp NOT NULL,
status int(3) NOT NULL default '0',
type varchar(15) NOT NULL default '',
assignment int(10) unsigned NOT NULL default '0',
@@ -381,3 +381,114 @@ create table t1(f1 int);
update t1 set f2=1 order by f2;
ERROR 42S22: Unknown column 'f2' in 'order clause'
drop table t1;
+CREATE TABLE t1 (
+request_id int unsigned NOT NULL auto_increment,
+user_id varchar(12) default NULL,
+time_stamp datetime NOT NULL default '0000-00-00 00:00:00',
+ip_address varchar(15) default NULL,
+PRIMARY KEY (request_id),
+KEY user_id_2 (user_id,time_stamp)
+);
+INSERT INTO t1 (user_id) VALUES ('user1');
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+flush status;
+SELECT user_id FROM t1 WHERE request_id=9999999999999;
+user_id
+show status like '%Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 1
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 0
+SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
+user_id
+show status like '%Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 2
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 7
+UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
+show status like '%Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 3
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 14
+UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
+show status like '%Handler_read%';
+Variable_name Value
+Handler_read_first 0
+Handler_read_key 3
+Handler_read_next 0
+Handler_read_prev 0
+Handler_read_rnd 0
+Handler_read_rnd_next 21
+DROP TABLE t1;
+CREATE TABLE t1 (
+a INT(11),
+quux decimal( 31, 30 ),
+UNIQUE KEY bar (a),
+KEY quux (quux)
+);
+INSERT INTO
+t1 ( a, quux )
+VALUES
+( 1, 1 ),
+( 2, 0.1 );
+INSERT INTO t1( a )
+SELECT @newA := 1 + a FROM t1 WHERE quux <= 0.1;
+SELECT * FROM t1;
+a quux
+1 1.000000000000000000000000000000
+2 0.100000000000000000000000000000
+3 NULL
+DROP TABLE t1;
+set tmp_table_size=1024;
+create table t1 (id int, a int, key idx(a));
+create table t2 (id int unsigned not null auto_increment primary key, a int);
+insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
+insert into t2(a) select a from t2;
+insert into t2(a) select a from t2;
+insert into t2(a) select a from t2;
+update t2 set a=id;
+insert into t1 select * from t2;
+select count(*) from t1 join t2 on (t1.a=t2.a);
+count(*)
+64
+update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
+affected rows: 0
+info: Rows matched: 64 Changed: 0 Warnings: 0
+insert into t2(a) select a from t2;
+update t2 set a=id;
+truncate t1;
+insert into t1 select * from t2;
+select count(*) from t1 join t2 on (t1.a=t2.a);
+count(*)
+128
+update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
+affected rows: 0
+info: Rows matched: 128 Changed: 0 Warnings: 0
+update t1 set a=1;
+update t2 set a=1;
+select count(*) from t1 join t2 on (t1.a=t2.a);
+count(*)
+16384
+update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
+affected rows: 127
+info: Rows matched: 128 Changed: 127 Warnings: 0
+drop table t1,t2;
+End of 5.0 tests
diff --git a/mysql-test/r/user_limits.result b/mysql-test/r/user_limits.result
new file mode 100644
index 00000000000..a94eb4616d1
--- /dev/null
+++ b/mysql-test/r/user_limits.result
@@ -0,0 +1,96 @@
+drop table if exists t1;
+create table t1 (i int);
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2;
+flush user_resources;
+select * from t1;
+i
+select * from t1;
+i
+select * from t1;
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_questions' resource (current value: 2)
+select * from t1;
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_questions' resource (current value: 2)
+drop user mysqltest_1@localhost;
+grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2;
+flush user_resources;
+select * from t1;
+i
+select * from t1;
+i
+select * from t1;
+i
+delete from t1;
+delete from t1;
+delete from t1;
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_updates' resource (current value: 2)
+select * from t1;
+i
+delete from t1;
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_updates' resource (current value: 2)
+select * from t1;
+i
+drop user mysqltest_1@localhost;
+grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2;
+flush user_resources;
+select * from t1;
+i
+select * from t1;
+i
+connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_connections_per_hour' resource (current value: 2)
+select * from t1;
+i
+connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_connections_per_hour' resource (current value: 2)
+drop user mysqltest_1@localhost;
+flush privileges;
+grant usage on *.* to mysqltest_1@localhost with max_user_connections 2;
+flush user_resources;
+select * from t1;
+i
+select * from t1;
+i
+connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource (current value: 2)
+select * from t1;
+i
+grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
+flush user_resources;
+select * from t1;
+i
+connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource (current value: 3)
+drop user mysqltest_1@localhost;
+select @@session.max_user_connections, @@global.max_user_connections;
+@@session.max_user_connections @@global.max_user_connections
+0 0
+set session max_user_connections= 2;
+ERROR HY000: Variable 'max_user_connections' is a GLOBAL variable and should be set with SET GLOBAL
+set global max_user_connections= 2;
+select @@session.max_user_connections, @@global.max_user_connections;
+@@session.max_user_connections @@global.max_user_connections
+2 2
+grant usage on *.* to mysqltest_1@localhost;
+flush user_resources;
+select @@session.max_user_connections, @@global.max_user_connections;
+@@session.max_user_connections @@global.max_user_connections
+2 2
+select * from t1;
+i
+connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR 42000: User mysqltest_1 already has more than 'max_user_connections' active connections
+grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
+flush user_resources;
+select @@session.max_user_connections, @@global.max_user_connections;
+@@session.max_user_connections @@global.max_user_connections
+3 2
+connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
+ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource (current value: 3)
+set global max_user_connections= 0;
+drop user mysqltest_1@localhost;
+drop table t1;
diff --git a/mysql-test/r/user_var-binlog.result b/mysql-test/r/user_var-binlog.result
index 06a2a846a0e..2b37a4b1d9a 100644
--- a/mysql-test/r/user_var-binlog.result
+++ b/mysql-test/r/user_var-binlog.result
@@ -6,20 +6,31 @@ INSERT INTO t1 VALUES(@`a b`);
set @var1= "';aaa";
SET @var2=char(ascii('a'));
insert into t1 values (@var1),(@var2);
-show binlog events from 79;
-Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 User var 1 79 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
-master-bin.000001 120 Query 1 120 use `test`; INSERT INTO t1 VALUES(@`a b`)
-master-bin.000001 184 User var 1 184 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
-master-bin.000001 226 User var 1 226 @`var2`=_latin1 0x61 COLLATE latin1_swedish_ci
-master-bin.000001 264 Query 1 264 use `test`; insert into t1 values (@var1),(@var2)
+show binlog events from 98;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 98 User var 1 139 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
+master-bin.000001 139 Query 1 231 use `test`; INSERT INTO t1 VALUES(@`a b`)
+master-bin.000001 231 User var 1 273 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
+master-bin.000001 273 User var 1 311 @`var2`=_binary 0x61 COLLATE binary
+master-bin.000001 311 Query 1 411 use `test`; insert into t1 values (@var1),(@var2)
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
-SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
-use test;
-SET TIMESTAMP=10000;
-INSERT INTO t1 VALUES(@`a b`);
-SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
-SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`;
-SET TIMESTAMP=10000;
-insert into t1 values (@var1),(@var2);
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+ROLLBACK/*!*/;
+SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`/*!*/;
+use test/*!*/;
+SET TIMESTAMP=10000/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+/*!\C latin1 *//*!*/;
+SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
+INSERT INTO t1 VALUES(@`a b`)/*!*/;
+SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`/*!*/;
+SET @`var2`:=_binary 0x61 COLLATE `binary`/*!*/;
+SET TIMESTAMP=10000/*!*/;
+insert into t1 values (@var1),(@var2)/*!*/;
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t1;
diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result
index 58b785d1432..80b5dccc198 100644
--- a/mysql-test/r/user_var.result
+++ b/mysql-test/r/user_var.result
@@ -23,7 +23,11 @@ i @vv1:=if(sv1.i,1,0) @vv2:=if(sv2.i,1,0) @vv3:=if(sv3.i,1,0) @vv1+@vv2+@vv3
2 1 0 0 1
explain select * from t1 where i=@vv1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref i i 4 const 1 Using where
+1 SIMPLE t1 ref i i 4 const 1
+select @vv1,i,v from t1 where i=@vv1;
+@vv1 i v
+1 1 1
+1 1 3
explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
@@ -32,7 +36,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL i 4 NULL 3 Using where; Using index
explain select * from t1 where i=@vv1;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref i i 4 const 1 Using where
+1 SIMPLE t1 ref i i 4 const 1
drop table t1,t2;
set @a=0,@b=0;
select @a:=10, @b:=1, @a > @b, @a < @b;
@@ -119,6 +123,17 @@ select @a+0, @a:=@a+0+count(*), count(*), @a+0 from t1 group by i;
0 1 1 0
1 3 2 0
3 6 3 0
+set @a=0;
+select @a,@a:="hello",@a,@a:=3,@a,@a:="hello again" from t1 group by i;
+@a @a:="hello" @a @a:=3 @a @a:="hello again"
+0 hello 0 3 0 hello again
+0 hello 0 3 0 hello again
+0 hello 0 3 0 hello again
+select @a,@a:="hello",@a,@a:=3,@a,@a:="hello again" from t1 group by i;
+@a @a:="hello" @a @a:=3 @a @a:="hello again"
+hello again hello hello again 3 hello again hello again
+hello again hello hello again 3 hello again hello again
+hello again hello hello again 3 hello again hello again
drop table t1;
set @a=_latin2'test';
select charset(@a),collation(@a),coercibility(@a);
@@ -178,7 +193,7 @@ coercibility(@v1) coercibility(@v2) coercibility(@v3) coercibility(@v4)
set session @honk=99;
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 '@honk=99' at line 1
set one_shot @honk=99;
-ERROR HY000: The SET ONE_SHOT syntax is reserved for purposes internal to the MySQL server
+ERROR HY000: The 'SET ONE_SHOT' syntax is reserved for purposes internal to the MySQL server
select @@local.max_allowed_packet;
@@local.max_allowed_packet
#
@@ -200,6 +215,141 @@ select @@version;
select @@global.version;
@@global.version
#
-select @@session.VERSION;
-@@session.VERSION
-#
+End of 4.1 tests
+set @first_var= NULL;
+create table t1 select @first_var;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `@first_var` longblob
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @first_var= cast(NULL as signed integer);
+create table t1 select @first_var;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `@first_var` bigint(20) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @first_var= NULL;
+create table t1 select @first_var;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `@first_var` bigint(20) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @first_var= concat(NULL);
+create table t1 select @first_var;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `@first_var` longblob
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @first_var=1;
+set @first_var= cast(NULL as CHAR);
+create table t1 select @first_var;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `@first_var` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+set @a=18446744071710965857;
+select @a;
+@a
+18446744071710965857
+CREATE TABLE `bigfailure` (
+`afield` BIGINT UNSIGNED NOT NULL
+);
+INSERT INTO `bigfailure` VALUES (18446744071710965857);
+SELECT * FROM bigfailure;
+afield
+18446744071710965857
+select * from (SELECT afield FROM bigfailure) as b;
+afield
+18446744071710965857
+select * from bigfailure where afield = (SELECT afield FROM bigfailure);
+afield
+18446744071710965857
+select * from bigfailure where afield = 18446744071710965857;
+afield
+18446744071710965857
+select * from bigfailure where afield = 18446744071710965856+1;
+afield
+18446744071710965857
+SET @a := (SELECT afield FROM bigfailure);
+SELECT @a;
+@a
+18446744071710965857
+SET @a := (select afield from (SELECT afield FROM bigfailure) as b);
+SELECT @a;
+@a
+18446744071710965857
+SET @a := (select * from bigfailure where afield = (SELECT afield FROM bigfailure));
+SELECT @a;
+@a
+18446744071710965857
+drop table bigfailure;
+create table t1(f1 int, f2 int);
+insert into t1 values (1,2),(2,3),(3,1);
+select @var:=f2 from t1 group by f1 order by f2 desc limit 1;
+@var:=f2
+3
+select @var;
+@var
+3
+create table t2 as select @var:=f2 from t1 group by f1 order by f2 desc limit 1;
+select * from t2;
+@var:=f2
+3
+select @var;
+@var
+3
+drop table t1,t2;
+insert into city 'blah';
+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 ''blah'' at line 1
+SHOW COUNT(*) WARNINGS;
+@@session.warning_count
+1
+SHOW COUNT(*) ERRORS;
+@@session.error_count
+1
+create table t1(f1 int, f2 varchar(2), f3 float, f4 decimal(2,1));
+insert into t1 values
+(1, "a", 1.5, 1.6), (1, "a", 1.5, 1.6), (2, "b", 2.5, 2.6),
+(3, "c", 3.5, 3.6), (4, "d", 4.5, 4.6), (1, "a", 1.5, 1.6),
+(3, "c", 3.5, 3.6), (1, "a", 1.5, 1.6);
+select @a:=f1, count(f1) from t1 group by 1 desc;
+@a:=f1 count(f1)
+4 1
+3 2
+2 1
+1 4
+select @a:=f1, count(f1) from t1 group by 1 asc;
+@a:=f1 count(f1)
+1 4
+2 1
+3 2
+4 1
+select @a:=f2, count(f2) from t1 group by 1 desc;
+@a:=f2 count(f2)
+d 1
+c 2
+b 1
+a 4
+select @a:=f3, count(f3) from t1 group by 1 desc;
+@a:=f3 count(f3)
+4.5 1
+3.5 2
+2.5 1
+1.5 4
+select @a:=f4, count(f4) from t1 group by 1 desc;
+@a:=f4 count(f4)
+4.6 1
+3.6 2
+2.6 1
+1.6 4
+drop table t1;
diff --git a/mysql-test/r/varbinary.result b/mysql-test/r/varbinary.result
index ab5779859ae..a41885a257d 100644
--- a/mysql-test/r/varbinary.result
+++ b/mysql-test/r/varbinary.result
@@ -15,7 +15,7 @@ explain extended select * from t1 where UNIQ=0x38afba1d73e6a18a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const UNIQ UNIQ 8 const 1
Warnings:
-Note 1003 select test.t1.ID AS `ID`,test.t1.UNIQ AS `UNIQ` from test.t1 where (test.t1.UNIQ = 4084688022709641610)
+Note 1003 select '00000001' AS `ID`,'004084688022709641610' AS `UNIQ` from `test`.`t1` where 1
drop table t1;
select x'hello';
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 'x'hello'' at line 1
@@ -26,3 +26,55 @@ select x,xx from t1;
x xx
1 2
drop table t1;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) default NULL,
+ `b` varchar(255) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select length(a), length(b) from t1;
+length(a) length(b)
+255 3
+255 3
+CHECK TABLE t1 FOR UPGRADE;
+Table Op Msg_type Msg_text
+test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" to fix it!
+REPAIR TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` varbinary(255) default NULL,
+ `b` varchar(255) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+select length(a), length(b) from t1;
+length(a) length(b)
+3 3
+3 3
+insert into t1 values("ccc", "ddd");
+select length(a), length(b) from t1;
+length(a) length(b)
+3 3
+3 3
+3 3
+select hex(a), hex(b) from t1;
+hex(a) hex(b)
+616161 636363
+626262 646464
+636363 646464
+select concat("'", a, "'"), concat("'", b, "'") from t1;
+concat("'", a, "'") concat("'", b, "'")
+'aaa' 'ccc'
+'bbb' 'ddd'
+'ccc' 'ddd'
+drop table t1;
+create table t1(a varbinary(255));
+insert into t1 values("aaa ");
+select length(a) from t1;
+length(a)
+6
+alter table t1 modify a varchar(255);
+select length(a) from t1;
+length(a)
+6
diff --git a/mysql-test/r/variables-big.result b/mysql-test/r/variables-big.result
new file mode 100644
index 00000000000..d7906869276
--- /dev/null
+++ b/mysql-test/r/variables-big.result
@@ -0,0 +1,20 @@
+set session transaction_prealloc_size=1024*1024*1024*1;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*2;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 2 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*3;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*4;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*5;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index a5b6c308969..457660d0de9 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -1,8 +1,57 @@
drop table if exists t1,t2;
-set @`test`=1,@TEST=3,@select=2,@t5=1.23456;
-select @test,@`select`,@TEST,@not_used;
-@test @`select` @TEST @not_used
-1 2 3 NULL
+set @my_binlog_cache_size =@@global.binlog_cache_size;
+set @my_connect_timeout =@@global.connect_timeout;
+set @my_delayed_insert_timeout =@@global.delayed_insert_timeout;
+set @my_delayed_queue_size =@@global.delayed_queue_size;
+set @my_flush =@@global.flush;
+set @my_flush_time =@@global.flush_time;
+set @my_key_buffer_size =@@global.key_buffer_size;
+set @my_max_binlog_cache_size =@@global.max_binlog_cache_size;
+set @my_max_binlog_size =@@global.max_binlog_size;
+set @my_max_connect_errors =@@global.max_connect_errors;
+set @my_max_delayed_threads =@@global.max_delayed_threads;
+set @my_max_heap_table_size =@@global.max_heap_table_size;
+set @my_max_insert_delayed_threads=@@global.max_insert_delayed_threads;
+set @my_max_join_size =@@global.max_join_size;
+set @my_max_user_connections =@@global.max_user_connections;
+set @my_max_write_lock_count =@@global.max_write_lock_count;
+set @my_myisam_data_pointer_size =@@global.myisam_data_pointer_size;
+set @my_net_buffer_length =@@global.net_buffer_length;
+set @my_net_write_timeout =@@global.net_write_timeout;
+set @my_net_read_timeout =@@global.net_read_timeout;
+set @my_query_cache_limit =@@global.query_cache_limit;
+set @my_query_cache_type =@@global.query_cache_type;
+set @my_rpl_recovery_rank =@@global.rpl_recovery_rank;
+set @my_server_id =@@global.server_id;
+set @my_slow_launch_time =@@global.slow_launch_time;
+set @my_storage_engine =@@global.storage_engine;
+set @my_thread_cache_size =@@global.thread_cache_size;
+set @`test`=1;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+@test @`test` @TEST @`TEST` @"teSt"
+1 1 1 1 1
+set @TEST=2;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+@test @`test` @TEST @`TEST` @"teSt"
+2 2 2 2 2
+set @"tEST"=3;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+@test @`test` @TEST @`TEST` @"teSt"
+3 3 3 3 3
+set @`TeST`=4;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+@test @`test` @TEST @`TEST` @"teSt"
+4 4 4 4 4
+select @`teST`:=5;
+@`teST`:=5
+5
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+@test @`test` @TEST @`TEST` @"teSt"
+5 5 5 5 5
+set @select=2,@t5=1.23456;
+select @`select`,@not_used;
+@`select` @not_used
+2 NULL
set @test_int=10,@test_double=1e-10,@test_string="abcdeghi",@test_string2="abcdefghij",@select=NULL;
select @test_int,@test_double,@test_string,@test_string2,@select;
@test_int @test_double @test_string @test_string2 @select
@@ -26,7 +75,7 @@ explain extended select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache (@t1:=((@t2:=1) + (@t3:=4))) AS `@t1:=(@t2:=1)+@t3:=4`,(@t1) AS `@t1`,(@t2) AS `@t2`,(@t3) AS `@t3`
+Note 1003 select (@t1:=((@t2:=1) + (@t3:=4))) AS `@t1:=(@t2:=1)+@t3:=4`,(@t1) AS `@t1`,(@t2) AS `@t2`,(@t3) AS `@t3`
select @t5;
@t5
1.23456
@@ -49,6 +98,7 @@ c_id c_name c_country
1 Bozo USA
4 Mr. Floppy GB
drop table t1;
+set GLOBAL max_join_size=10;
set max_join_size=100;
show variables like 'max_join_size';
Variable_name Value
@@ -85,7 +135,7 @@ explain extended select last_insert_id(345);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache last_insert_id(345) AS `last_insert_id(345)`
+Note 1003 select last_insert_id(345) AS `last_insert_id(345)`
select @@IDENTITY,last_insert_id(), @@identity;
@@IDENTITY last_insert_id() @@identity
345 345 345
@@ -93,35 +143,39 @@ explain extended select @@IDENTITY,last_insert_id(), @@identity;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select sql_no_cache 345 AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,345 AS `@@identity`
+Note 1003 select 345 AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,345 AS `@@identity`
set big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
-set global concurrent_insert=ON;
+set global concurrent_insert=2;
show variables like 'concurrent_insert';
Variable_name Value
-concurrent_insert ON
+concurrent_insert 2
set global concurrent_insert=1;
show variables like 'concurrent_insert';
Variable_name Value
-concurrent_insert ON
+concurrent_insert 1
set global concurrent_insert=0;
show variables like 'concurrent_insert';
Variable_name Value
-concurrent_insert OFF
-set global concurrent_insert=OFF;
-show variables like 'concurrent_insert';
-Variable_name Value
-concurrent_insert OFF
+concurrent_insert 0
set global concurrent_insert=DEFAULT;
-show variables like 'concurrent_insert';
+select @@concurrent_insert;
+@@concurrent_insert
+1
+set global timed_mutexes=ON;
+show variables like 'timed_mutexes';
+Variable_name Value
+timed_mutexes ON
+set global timed_mutexes=0;
+show variables like 'timed_mutexes';
Variable_name Value
-concurrent_insert ON
+timed_mutexes OFF
set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="MERGE";
show local variables like 'storage_engine';
Variable_name Value
-storage_engine HEAP
+storage_engine MEMORY
show global variables like 'storage_engine';
Variable_name Value
-storage_engine MERGE
+storage_engine MRG_MYISAM
set GLOBAL query_cache_size=100000;
set GLOBAL myisam_max_sort_file_size=2000000;
show global variables like 'myisam_max_sort_file_size';
@@ -164,6 +218,8 @@ show variables like 'net_buffer_length';
Variable_name Value
net_buffer_length 1024
set net_buffer_length=2000000000;
+Warnings:
+Warning 1292 Truncated incorrect net_buffer_length value: '2000000000'
show variables like 'net_buffer_length';
Variable_name Value
net_buffer_length 1048576
@@ -230,7 +286,7 @@ set storage_engine=MERGE, big_tables=2;
ERROR 42000: Variable 'big_tables' can't be set to the value of '2'
show local variables like 'storage_engine';
Variable_name Value
-storage_engine HEAP
+storage_engine MEMORY
set SESSION query_cache_size=10000;
ERROR HY000: Variable 'query_cache_size' is a GLOBAL variable and should be set with SET GLOBAL
set GLOBAL storage_engine=DEFAULT;
@@ -248,7 +304,7 @@ ERROR HY000: Variable 'autocommit' is a SESSION variable and can't be used with
select @@global.timestamp;
ERROR HY000: Variable 'timestamp' is a SESSION variable
set @@version='';
-ERROR HY000: Unknown system variable 'version'
+ERROR HY000: Variable 'version' is a read only variable
set @@concurrent_insert=1;
ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set with SET GLOBAL
set @@global.sql_auto_is_null=1;
@@ -257,8 +313,6 @@ select @@global.sql_auto_is_null;
ERROR HY000: Variable 'sql_auto_is_null' is a SESSION variable
set myisam_max_sort_file_size=100;
ERROR HY000: Variable 'myisam_max_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
-set myisam_max_extra_sort_file_size=100;
-ERROR HY000: Variable 'myisam_max_extra_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
set @@SQL_WARNINGS=NULL;
ERROR 42000: Variable 'sql_warnings' can't be set to the value of 'NULL'
set autocommit=1;
@@ -314,11 +368,6 @@ select @@max_user_connections;
@@max_user_connections
100
set global max_write_lock_count=100;
-set global myisam_max_extra_sort_file_size=100;
-select @@myisam_max_extra_sort_file_size;
-@@myisam_max_extra_sort_file_size
-100
-set global myisam_max_sort_file_size=100;
set myisam_sort_buffer_size=100;
set net_buffer_length=100;
set net_read_timeout=100;
@@ -332,6 +381,14 @@ set global rpl_recovery_rank=100;
set global server_id=100;
set global slow_launch_time=100;
set sort_buffer_size=100;
+set @@max_sp_recursion_depth=10;
+select @@max_sp_recursion_depth;
+@@max_sp_recursion_depth
+10
+set @@max_sp_recursion_depth=0;
+select @@max_sp_recursion_depth;
+@@max_sp_recursion_depth
+0
set sql_auto_is_null=1;
select @@sql_auto_is_null;
@@sql_auto_is_null
@@ -346,6 +403,8 @@ set sql_buffer_result=1;
set sql_log_bin=1;
set sql_log_off=1;
set sql_log_update=1;
+Warnings:
+Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored
set sql_low_priority_updates=1;
set sql_max_join_size=200;
select @@sql_max_join_size,@@max_join_size;
@@ -354,6 +413,7 @@ select @@sql_max_join_size,@@max_join_size;
set sql_quote_show_create=1;
set sql_safe_updates=1;
set sql_select_limit=1;
+set sql_select_limit=default;
set sql_warnings=1;
set global table_cache=100;
set storage_engine=myisam;
@@ -363,6 +423,28 @@ set tmp_table_size=100;
set tx_isolation="READ-COMMITTED";
set wait_timeout=100;
set log_warnings=1;
+select @@session.insert_id;
+@@session.insert_id
+1
+set @save_insert_id=@@session.insert_id;
+set session insert_id=20;
+select @@session.insert_id;
+@@session.insert_id
+20
+set session last_insert_id=100;
+select @@session.insert_id;
+@@session.insert_id
+20
+select @@session.last_insert_id;
+@@session.last_insert_id
+100
+select @@session.insert_id;
+@@session.insert_id
+20
+set @@session.insert_id=@save_insert_id;
+select @@session.insert_id;
+@@session.insert_id
+1
create table t1 (a int not null auto_increment, primary key(a));
create table t2 (a int not null auto_increment, primary key(a));
insert into t1 values(null),(null),(null);
@@ -472,14 +554,15 @@ t1 CREATE TABLE `t1` (
`c5` bigint(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
-set @arg00= 8, @arg01= 8.8, @arg02= 'a string';
-create table t1 as select @arg00 as c1, @arg01 as c2, @arg02 as c3;
+set @arg00= 8, @arg01= 8.8, @arg02= 'a string', @arg03= 0.2e0;
+create table t1 as select @arg00 as c1, @arg01 as c2, @arg02 as c3, @arg03 as c4;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` bigint(20) default NULL,
- `c2` double default NULL,
- `c3` longtext
+ `c2` decimal(65,30) default NULL,
+ `c3` longtext,
+ `c4` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
SET GLOBAL MYISAM_DATA_POINTER_SIZE= 7;
@@ -556,6 +639,37 @@ set lc_time_names=0;
select @@lc_time_names;
@@lc_time_names
en_US
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+en_US en_US
+set @@global.lc_time_names=fr_FR;
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+fr_FR en_US
+New connection
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+fr_FR fr_FR
+set @@lc_time_names=ru_RU;
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+fr_FR ru_RU
+Returnung to default connection
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+fr_FR en_US
+set lc_time_names=default;
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+fr_FR fr_FR
+set @@global.lc_time_names=default;
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+en_US fr_FR
+set @@lc_time_names=default;
+select @@global.lc_time_names, @@lc_time_names;
+@@global.lc_time_names @@lc_time_names
+en_US en_US
set @test = @@query_prealloc_size;
set @@query_prealloc_size = @test;
select @@query_prealloc_size = @test;
@@ -564,3 +678,149 @@ select @@query_prealloc_size = @test;
set global sql_mode=repeat('a',80);
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
End of 4.1 tests
+create table t1 (a int);
+select a into @x from t1;
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+show warnings;
+Level Code Message
+Warning 1329 No data - zero rows fetched, selected, or processed
+drop table t1;
+set @@warning_count=1;
+ERROR HY000: Variable 'warning_count' is a read only variable
+set @@global.error_count=1;
+ERROR HY000: Variable 'error_count' is a read only variable
+set @@max_heap_table_size= 4294967296;
+select @@max_heap_table_size > 0;
+@@max_heap_table_size > 0
+1
+set global max_heap_table_size= 4294967296;
+select @@max_heap_table_size > 0;
+@@max_heap_table_size > 0
+1
+set @@max_heap_table_size= 4294967296;
+select @@max_heap_table_size > 0;
+@@max_heap_table_size > 0
+1
+select @@character_set_system;
+@@character_set_system
+utf8
+set global character_set_system = latin1;
+ERROR HY000: Variable 'character_set_system' is a read only variable
+set @@global.version_compile_os='234';
+ERROR HY000: Variable 'version_compile_os' is a read only variable
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+@@character_set_filesystem
+latin1
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+@@character_set_filesystem
+latin1
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=default;
+select @@character_set_filesystem;
+@@character_set_filesystem
+latin2
+set @@global.character_set_filesystem=default;
+select @@global.character_set_filesystem;
+@@global.character_set_filesystem
+binary
+set @old_sql_big_selects = @@sql_big_selects;
+set @@sql_big_selects = 1;
+show variables like 'sql_big_selects';
+Variable_name Value
+sql_big_selects ON
+set @@sql_big_selects = @old_sql_big_selects;
+set @@sql_notes = 0, @@sql_warnings = 0;
+show variables like 'sql_notes';
+Variable_name Value
+sql_notes OFF
+show variables like 'sql_warnings';
+Variable_name Value
+sql_warnings OFF
+set @@sql_notes = 1, @@sql_warnings = 1;
+show variables like 'sql_notes';
+Variable_name Value
+sql_notes ON
+show variables like 'sql_warnings';
+Variable_name Value
+sql_warnings ON
+select @@system_time_zone;
+@@system_time_zone
+#
+select @@version, @@version_comment, @@version_compile_machine,
+@@version_compile_os;
+@@version @@version_comment @@version_compile_machine @@version_compile_os
+# # # #
+select @@basedir, @@datadir, @@tmpdir;
+@@basedir @@datadir @@tmpdir
+# # #
+show variables like 'basedir';
+Variable_name Value
+basedir #
+show variables like 'datadir';
+Variable_name Value
+datadir #
+show variables like 'tmpdir';
+Variable_name Value
+tmpdir #
+select @@ssl_ca, @@ssl_capath, @@ssl_cert, @@ssl_cipher, @@ssl_key;
+@@ssl_ca @@ssl_capath @@ssl_cert @@ssl_cipher @@ssl_key
+# # # # #
+show variables like 'ssl%';
+Variable_name Value
+ssl_ca #
+ssl_capath #
+ssl_cert #
+ssl_cipher #
+ssl_key #
+select @@log_queries_not_using_indexes;
+@@log_queries_not_using_indexes
+0
+show variables like 'log_queries_not_using_indexes';
+Variable_name Value
+log_queries_not_using_indexes OFF
+select @@"";
+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
+select @@&;
+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
+select @@@;
+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
+select @@hostname;
+@@hostname
+#
+set @@hostname= "anothername";
+ERROR HY000: Variable 'hostname' is a read only variable
+show variables like 'hostname';
+Variable_name Value
+hostname #
+End of 5.0 tests
+set global binlog_cache_size =@my_binlog_cache_size;
+set global connect_timeout =@my_connect_timeout;
+set global delayed_insert_timeout =@my_delayed_insert_timeout;
+set global delayed_queue_size =@my_delayed_queue_size;
+set global flush =@my_flush;
+set global flush_time =@my_flush_time;
+set global key_buffer_size =@my_key_buffer_size;
+set global max_binlog_cache_size =default;
+set global max_binlog_size =@my_max_binlog_size;
+set global max_connect_errors =@my_max_connect_errors;
+set global max_delayed_threads =@my_max_delayed_threads;
+set global max_heap_table_size =@my_max_heap_table_size;
+set global max_insert_delayed_threads=@my_max_insert_delayed_threads;
+set global max_join_size =@my_max_join_size;
+set global max_user_connections =@my_max_user_connections;
+set global max_write_lock_count =@my_max_write_lock_count;
+set global myisam_data_pointer_size =@my_myisam_data_pointer_size;
+set global net_buffer_length =@my_net_buffer_length;
+set global net_write_timeout =@my_net_write_timeout;
+set global net_read_timeout =@my_net_read_timeout;
+set global query_cache_limit =@my_query_cache_limit;
+set global query_cache_type =@my_query_cache_type;
+set global rpl_recovery_rank =@my_rpl_recovery_rank;
+set global server_id =@my_server_id;
+set global slow_launch_time =@my_slow_launch_time;
+set global storage_engine =@my_storage_engine;
+set global thread_cache_size =@my_thread_cache_size;
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
new file mode 100644
index 00000000000..0e3d650c571
--- /dev/null
+++ b/mysql-test/r/view.result
@@ -0,0 +1,3605 @@
+drop table if exists t1,t2,t3,t4,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
+drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
+drop database if exists mysqltest;
+use test;
+create view v1 (c,d) as select a,b from t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+create temporary table t1 (a int, b int);
+create view v1 (c) as select b+1 from t1;
+ERROR HY000: View's SELECT refers to a temporary table 't1'
+drop table t1;
+create table t1 (a int, b int);
+insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
+create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
+ERROR HY000: View's SELECT contains a variable or parameter
+create view v1 (c,d) as select a,b from t1
+where a = @@global.max_user_connections;
+ERROR HY000: View's SELECT contains a variable or parameter
+create view v1 (c) as select b+1 from t1;
+select c from v1;
+c
+3
+4
+5
+6
+11
+select is_updatable from information_schema.views where table_name='v1';
+is_updatable
+NO
+create temporary table t1 (a int, b int);
+select * from t1;
+a b
+select c from v1;
+c
+3
+4
+5
+6
+11
+show create table v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1`
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1`
+show create view t1;
+ERROR HY000: 'test.t1' is not VIEW
+drop table t1;
+select a from v1;
+ERROR 42S22: Unknown column 'a' in 'field list'
+select v1.a from v1;
+ERROR 42S22: Unknown column 'v1.a' in 'field list'
+select b from v1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+select v1.b from v1;
+ERROR 42S22: Unknown column 'v1.b' in 'field list'
+explain extended select c from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+Warnings:
+Note 1003 select (`test`.`t1`.`b` + 1) AS `c` from `test`.`t1`
+create algorithm=temptable view v2 (c) as select b+1 from t1;
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t1`.`b` + 1) AS `c` from `t1`
+select c from v2;
+c
+3
+4
+5
+6
+11
+explain extended select c from v2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5
+2 DERIVED t1 ALL NULL NULL NULL NULL 5
+Warnings:
+Note 1003 select `v2`.`c` AS `c` from `test`.`v2`
+create view v3 (c) as select a+1 from v1;
+ERROR 42S22: Unknown column 'a' in 'field list'
+create view v3 (c) as select b+1 from v1;
+ERROR 42S22: Unknown column 'b' in 'field list'
+create view v3 (c) as select c+1 from v1;
+select c from v3;
+c
+4
+5
+6
+7
+12
+explain extended select c from v3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+Warnings:
+Note 1003 select ((`test`.`t1`.`b` + 1) + 1) AS `c` from `test`.`t1`
+create algorithm=temptable view v4 (c) as select c+1 from v2;
+select c from v4;
+c
+4
+5
+6
+7
+12
+explain extended select c from v4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5
+2 DERIVED <derived3> ALL NULL NULL NULL NULL 5
+3 DERIVED t1 ALL NULL NULL NULL NULL 5
+Warnings:
+Note 1003 select `v4`.`c` AS `c` from `test`.`v4`
+create view v5 (c) as select c+1 from v2;
+select c from v5;
+c
+4
+5
+6
+7
+12
+explain extended select c from v5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived3> ALL NULL NULL NULL NULL 5
+3 DERIVED t1 ALL NULL NULL NULL NULL 5
+Warnings:
+Note 1003 select (`v2`.`c` + 1) AS `c` from `test`.`v2`
+create algorithm=temptable view v6 (c) as select c+1 from v1;
+select c from v6;
+c
+4
+5
+6
+7
+12
+explain extended select c from v6;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5
+2 DERIVED t1 ALL NULL NULL NULL NULL 5
+Warnings:
+Note 1003 select `v6`.`c` AS `c` from `test`.`v6`
+show tables;
+Tables_in_test
+t1
+v1
+v2
+v3
+v4
+v5
+v6
+show full tables;
+Tables_in_test Table_type
+t1 BASE TABLE
+v1 VIEW
+v2 VIEW
+v3 VIEW
+v4 VIEW
+v5 VIEW
+v6 VIEW
+show table status;
+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 MyISAM 10 Fixed 5 9 45 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
+v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+v2 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+v3 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+v4 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+v5 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+v6 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
+drop view v1,v2,v3,v4,v5,v6;
+create view v1 (c,d,e,f) as select a,b,
+a in (select a+2 from t1), a = all (select a from t1) from t1;
+create view v2 as select c, d from v1;
+select * from v1;
+c d e f
+1 2 0 0
+1 3 0 0
+2 4 0 0
+2 5 0 0
+3 10 1 0
+select * from v2;
+c d
+1 2
+1 3
+2 4
+2 5
+3 10
+create view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1;
+ERROR 42S01: Table 'v1' already exists
+create or replace view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1;
+drop view v2;
+alter view v2 as select c, d from v1;
+ERROR 42S02: Table 'test.v2' doesn't exist
+create or replace view v2 as select c, d from v1;
+alter view v1 (c,d) as select a,max(b) from t1 group by a;
+select * from v1;
+c d
+1 3
+2 5
+3 10
+select * from v2;
+c d
+1 3
+2 5
+3 10
+drop view v100;
+ERROR 42S02: Unknown table 'v100'
+drop view t1;
+ERROR HY000: 'test.t1' is not VIEW
+drop table v1;
+ERROR 42S02: Unknown table 'v1'
+drop view v1,v2;
+drop table t1;
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+create view v1 (a) as select a+1 from t1;
+create view v2 (a) as select a-1 from t1;
+select * from t1 natural left join v1;
+a
+1
+2
+3
+select * from v2 natural left join t1;
+a
+0
+1
+2
+select * from v2 natural left join v1;
+a
+0
+1
+2
+drop view v1, v2;
+drop table t1;
+create table t1 (a int);
+insert into t1 values (1), (2), (3), (1), (2), (3);
+create view v1 as select distinct a from t1;
+select * from v1;
+a
+1
+2
+3
+explain select * from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3
+2 DERIVED t1 ALL NULL NULL NULL NULL 6 Using temporary
+select * from t1;
+a
+1
+2
+3
+1
+2
+3
+drop view v1;
+drop table t1;
+create table t1 (a int);
+create view v1 as select distinct a from t1 WITH CHECK OPTION;
+ERROR HY000: CHECK OPTION on non-updatable view 'test.v1'
+create view v1 as select a from t1 WITH CHECK OPTION;
+create view v2 as select a from t1 WITH CASCADED CHECK OPTION;
+create view v3 as select a from t1 WITH LOCAL CHECK OPTION;
+drop view v3 RESTRICT;
+drop view v2 CASCADE;
+drop view v1;
+drop table t1;
+create table t1 (a int, b int);
+insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
+create view v1 (c) as select b+1 from t1;
+select test.c from v1 test;
+c
+3
+4
+5
+6
+11
+create algorithm=temptable view v2 (c) as select b+1 from t1;
+select test.c from v2 test;
+c
+3
+4
+5
+6
+11
+select test1.* from v1 test1, v2 test2 where test1.c=test2.c;
+c
+3
+4
+5
+6
+11
+select test2.* from v1 test1, v2 test2 where test1.c=test2.c;
+c
+3
+4
+5
+6
+11
+drop table t1;
+drop view v1,v2;
+create table t1 (a int);
+insert into t1 values (1), (2), (3), (4);
+create view v1 as select a+1 from t1 order by 1 desc limit 2;
+select * from v1;
+a+1
+5
+4
+explain select * from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
+2 DERIVED t1 ALL NULL NULL NULL NULL 4 Using filesort
+drop view v1;
+drop table t1;
+create table t1 (a int);
+insert into t1 values (1), (2), (3), (4);
+create view v1 as select a+1 from t1;
+create table t2 select * from v1;
+show columns from t2;
+Field Type Null Key Default Extra
+a+1 bigint(12) YES NULL
+select * from t2;
+a+1
+2
+3
+4
+5
+drop view v1;
+drop table t1,t2;
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (10,2), (20,3), (30,4), (40,5), (50,10);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+select is_updatable from information_schema.views where table_name='v2';
+is_updatable
+NO
+select is_updatable from information_schema.views where table_name='v1';
+is_updatable
+YES
+update v1 set c=a+c;
+ERROR HY000: Column 'c' is not updatable
+update v2 set a=a+c;
+ERROR HY000: The target table v2 of the UPDATE is not updatable
+update v1 set a=a+c;
+select * from v1;
+a c
+13 3
+24 4
+35 5
+46 6
+61 11
+select * from t1;
+a b
+13 2
+24 3
+35 4
+46 5
+61 10
+drop table t1;
+drop view v1,v2;
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (10,2), (20,3), (30,4), (40,5), (50,10);
+create table t2 (x int);
+insert into t2 values (10), (20);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+update t2,v1 set v1.c=v1.a+v1.c where t2.x=v1.a;
+ERROR HY000: Column 'c' is not updatable
+update t2,v2 set v2.a=v2.v2.a+c where t2.x=v2.a;
+ERROR HY000: The target table v2 of the UPDATE is not updatable
+update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.a;
+select * from v1;
+a c
+13 3
+24 4
+30 5
+40 6
+50 11
+select * from t1;
+a b
+13 2
+24 3
+30 4
+40 5
+50 10
+drop table t1,t2;
+drop view v1,v2;
+create table t1 (a int, b int, primary key(b));
+insert into t1 values (1,20), (2,30), (3,40), (4,50), (5,100);
+create view v1 (c) as select b from t1 where a<3;
+select * from v1;
+c
+20
+30
+explain extended select * from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
+Warnings:
+Note 1003 select `test`.`t1`.`b` AS `c` from `test`.`t1` where (`test`.`t1`.`a` < 3)
+update v1 set c=c+1;
+select * from t1;
+a b
+1 21
+2 31
+3 40
+4 50
+5 100
+create view v2 (c) as select b from t1 where a>=3;
+select * from v1, v2;
+c c
+21 40
+31 40
+21 50
+31 50
+21 100
+31 100
+drop view v1, v2;
+drop table t1;
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (1,2), (2,3), (3,4), (4,5), (5,10);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+delete from v2 where c < 4;
+ERROR HY000: The target table v2 of the DELETE is not updatable
+delete from v1 where c < 4;
+select * from v1;
+a c
+2 4
+3 5
+4 6
+5 11
+select * from t1;
+a b
+2 3
+3 4
+4 5
+5 10
+drop table t1;
+drop view v1,v2;
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (1,2), (2,3), (3,4), (4,5), (5,10);
+create table t2 (x int);
+insert into t2 values (1), (2), (3), (4);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+delete v2 from t2,v2 where t2.x=v2.a;
+ERROR HY000: The target table v2 of the DELETE is not updatable
+delete v1 from t2,v1 where t2.x=v1.a;
+select * from v1;
+a c
+5 11
+select * from t1;
+a b
+5 10
+drop table t1,t2;
+drop view v1,v2;
+create table t1 (a int, b int, c int, primary key(a,b));
+insert into t1 values (10,2,-1), (20,3,-2), (30,4,-3), (40,5,-4), (50,10,-5);
+create view v1 (x,y) as select a, b from t1;
+create view v2 (x,y) as select a, c from t1;
+set updatable_views_with_limit=NO;
+update v1 set x=x+1;
+update v2 set x=x+1;
+update v1 set x=x+1 limit 1;
+update v2 set x=x+1 limit 1;
+ERROR HY000: The target table v2 of the UPDATE is not updatable
+set updatable_views_with_limit=YES;
+update v1 set x=x+1 limit 1;
+update v2 set x=x+1 limit 1;
+Warnings:
+Note 1355 View being updated does not have complete key of underlying table in it
+set updatable_views_with_limit=DEFAULT;
+show variables like "updatable_views_with_limit";
+Variable_name Value
+updatable_views_with_limit YES
+select * from t1;
+a b c
+15 2 -1
+22 3 -2
+32 4 -3
+42 5 -4
+52 10 -5
+drop table t1;
+drop view v1,v2;
+create table t1 (a int, b int, c int, primary key(a,b));
+insert into t1 values (10,2,-1), (20,3,-2);
+create view v1 (x,y,z) as select c, b, a from t1;
+create view v2 (x,y) as select b, a from t1;
+create view v3 (x,y,z) as select b, a, b from t1;
+create view v4 (x,y,z) as select c+1, b, a from t1;
+create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1;
+insert into v3 values (-60,4,30);
+ERROR HY000: The target table v3 of the INSERT is not insertable-into
+insert into v4 values (-60,4,30);
+ERROR HY000: The target table v4 of the INSERT is not insertable-into
+insert into v5 values (-60,4,30);
+ERROR HY000: The target table v5 of the INSERT is not insertable-into
+insert into v1 values (-60,4,30);
+insert into v1 (z,y,x) values (50,6,-100);
+insert into v2 values (5,40);
+select * from t1;
+a b c
+10 2 -1
+20 3 -2
+30 4 -60
+50 6 -100
+40 5 NULL
+drop table t1;
+drop view v1,v2,v3,v4,v5;
+create table t1 (a int, b int, c int, primary key(a,b));
+insert into t1 values (10,2,-1), (20,3,-2);
+create table t2 (a int, b int, c int, primary key(a,b));
+insert into t2 values (30,4,-60);
+create view v1 (x,y,z) as select c, b, a from t1;
+create view v2 (x,y) as select b, a from t1;
+create view v3 (x,y,z) as select b, a, b from t1;
+create view v4 (x,y,z) as select c+1, b, a from t1;
+create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1;
+insert into v3 select c, b, a from t2;
+ERROR HY000: The target table v3 of the INSERT is not insertable-into
+insert into v4 select c, b, a from t2;
+ERROR HY000: The target table v4 of the INSERT is not insertable-into
+insert into v5 select c, b, a from t2;
+ERROR HY000: The target table v5 of the INSERT is not insertable-into
+insert into v1 select c, b, a from t2;
+insert into v1 (z,y,x) select a+20,b+2,-100 from t2;
+insert into v2 select b+1, a+10 from t2;
+select * from t1;
+a b c
+10 2 -1
+20 3 -2
+30 4 -60
+50 6 -100
+40 5 NULL
+drop table t1, t2;
+drop view v1,v2,v3,v4,v5;
+create table t1 (a int, primary key(a));
+insert into t1 values (1), (2), (3);
+create view v1 (x) as select a from t1 where a > 1;
+select t1.a, v1.x from t1 left join v1 on (t1.a= v1.x);
+a x
+1 NULL
+2 2
+3 3
+drop table t1;
+drop view v1;
+create table t1 (a int, primary key(a));
+insert into t1 values (1), (2), (3), (200);
+create view v1 (x) as select a from t1 where a > 1;
+create view v2 (y) as select x from v1 where x < 100;
+select * from v2;
+y
+2
+3
+drop table t1;
+drop view v1,v2;
+create table t1 (a int, primary key(a));
+insert into t1 values (1), (2), (3), (200);
+create ALGORITHM=TEMPTABLE view v1 (x) as select a from t1;
+create view v2 (y) as select x from v1;
+update v2 set y=10 where y=2;
+ERROR HY000: The target table v2 of the UPDATE is not updatable
+drop table t1;
+drop view v1,v2;
+create table t1 (a int not null auto_increment, b int not null, primary key(a), unique(b));
+create view v1 (x) as select b from t1;
+insert into v1 values (1);
+select last_insert_id();
+last_insert_id()
+0
+insert into t1 (b) values (2);
+select last_insert_id();
+last_insert_id()
+2
+select * from t1;
+a b
+1 1
+2 2
+drop view v1;
+drop table t1;
+set sql_mode='ansi';
+create table t1 ("a*b" int);
+create view v1 as select "a*b" from t1;
+show create view v1;
+View Create View
+v1 CREATE VIEW "v1" AS select "t1"."a*b" AS "a*b" from "t1"
+drop view v1;
+drop table t1;
+set sql_mode=default;
+create table t1 (t_column int);
+create view v1 as select 'a';
+select * from v1, t1;
+a t_column
+drop view v1;
+drop table t1;
+create table `t1a``b` (col1 char(2));
+create view v1 as select * from `t1a``b`;
+select * from v1;
+col1
+describe v1;
+Field Type Null Key Default Extra
+col1 char(2) YES NULL
+drop view v1;
+drop table `t1a``b`;
+create table t1 (col1 char(5),col2 char(5));
+create view v1 as select * from t1;
+drop table t1;
+create table t1 (col1 char(5),newcol2 char(5));
+insert into v1 values('a','aa');
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+drop table t1;
+select * from v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+drop view v1;
+create view v1 (a,a) as select 'a','a';
+ERROR 42S21: Duplicate column name 'a'
+create table t1 (col1 int,col2 char(22));
+insert into t1 values(5,'Hello, world of views');
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+update v2 set col2='Hello, view world';
+select is_updatable from information_schema.views;
+is_updatable
+YES
+YES
+select * from t1;
+col1 col2
+5 Hello, view world
+drop view v2, v1;
+drop table t1;
+create table t1 (a int, b int);
+create view v1 as select a, sum(b) from t1 group by a;
+select b from v1 use index (some_index) where b=1;
+ERROR HY000: Incorrect usage of USE INDEX and VIEW
+drop view v1;
+drop table t1;
+create table t1 (col1 char(5),col2 char(5));
+create view v1 (col1,col2) as select col1,col2 from t1;
+insert into v1 values('s1','p1'),('s1','p2'),('s1','p3'),('s1','p4'),('s2','p1'),('s3','p2'),('s4','p4');
+select distinct first.col2 from t1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
+col2
+p1
+p2
+p4
+select distinct first.col2 from v1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
+col2
+p1
+p2
+p4
+drop view v1;
+drop table t1;
+create table t1 (a int);
+create view v1 as select a from t1;
+insert into t1 values (1);
+SET @v0 = '2';
+PREPARE stmt FROM 'UPDATE v1 SET a = ?';
+EXECUTE stmt USING @v0;
+DEALLOCATE PREPARE stmt;
+SET @v0 = '3';
+PREPARE stmt FROM 'insert into v1 values (?)';
+EXECUTE stmt USING @v0;
+DEALLOCATE PREPARE stmt;
+SET @v0 = '4';
+PREPARE stmt FROM 'insert into v1 (a) values (?)';
+EXECUTE stmt USING @v0;
+DEALLOCATE PREPARE stmt;
+select * from t1;
+a
+2
+3
+4
+drop view v1;
+drop table t1;
+CREATE VIEW v02 AS SELECT * FROM DUAL;
+ERROR HY000: No tables used
+SHOW TABLES;
+Tables_in_test
+CREATE VIEW v1 AS SELECT EXISTS (SELECT 1 UNION SELECT 2);
+select * from v1;
+EXISTS (SELECT 1 UNION SELECT 2)
+1
+drop view v1;
+create table t1 (col1 int,col2 char(22));
+create view v1 as select * from t1;
+create index i1 on v1 (col1);
+ERROR HY000: 'test.v1' is not BASE TABLE
+drop view v1;
+drop table t1;
+CREATE VIEW v1 (f1,f2,f3,f4) AS SELECT connection_id(), pi(), current_user(), version();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select connection_id() AS `f1`,pi() AS `f2`,current_user() AS `f3`,version() AS `f4`
+drop view v1;
+create table t1 (s1 int);
+create table t2 (s2 int);
+insert into t1 values (1), (2);
+insert into t2 values (2), (3);
+create view v1 as select * from t1,t2 union all select * from t1,t2;
+select * from v1;
+s1 s2
+1 2
+2 2
+1 3
+2 3
+1 2
+2 2
+1 3
+2 3
+drop view v1;
+drop tables t1, t2;
+create table t1 (col1 int);
+insert into t1 values (1);
+create view v1 as select count(*) from t1;
+insert into t1 values (null);
+select * from v1;
+count(*)
+2
+drop view v1;
+drop table t1;
+create table t1 (a int);
+create table t2 (a int);
+create view v1 as select a from t1;
+create view v2 as select a from t2 where a in (select a from v1);
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a` from `t2` where `t2`.`a` in (select `v1`.`a` AS `a` from `v1`)
+drop view v2, v1;
+drop table t1, t2;
+CREATE VIEW `v 1` AS select 5 AS `5`;
+show create view `v 1`;
+View Create View
+v 1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v 1` AS select 5 AS `5`
+drop view `v 1`;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create view mysqltest.v1 as select a from mysqltest.t1;
+alter view mysqltest.v1 as select b from mysqltest.t1;
+alter view mysqltest.v1 as select a from mysqltest.t1;
+drop database mysqltest;
+CREATE TABLE t1 (c1 int not null auto_increment primary key, c2 varchar(20), fulltext(c2));
+insert into t1 (c2) VALUES ('real Beer'),('Water'),('Kossu'),('Coca-Cola'),('Vodka'),('Wine'),('almost real Beer');
+select * from t1 WHERE match (c2) against ('Beer');
+c1 c2
+1 real Beer
+7 almost real Beer
+CREATE VIEW v1 AS SELECT * from t1 WHERE match (c2) against ('Beer');
+select * from v1;
+c1 c2
+1 real Beer
+7 almost real Beer
+drop view v1;
+drop table t1;
+create table t1 (a int);
+insert into t1 values (1),(1),(2),(2),(3),(3);
+create view v1 as select a from t1;
+select distinct a from v1;
+a
+1
+2
+3
+select distinct a from v1 limit 2;
+a
+1
+2
+select distinct a from t1 limit 2;
+a
+1
+2
+prepare stmt1 from "select distinct a from v1 limit 2";
+execute stmt1;
+a
+1
+2
+execute stmt1;
+a
+1
+2
+deallocate prepare stmt1;
+drop view v1;
+drop table t1;
+create table t1 (tg_column bigint);
+create view v1 as select count(tg_column) as vg_column from t1;
+select avg(vg_column) from v1;
+avg(vg_column)
+0.0000
+drop view v1;
+drop table t1;
+create table t1 (col1 bigint not null, primary key (col1));
+create table t2 (col1 bigint not null, key (col1));
+create view v1 as select * from t1;
+create view v2 as select * from t2;
+insert into v1 values (1);
+insert into v2 values (1);
+create view v3 (a,b) as select v1.col1 as a, v2.col1 as b from v1, v2 where v1.col1 = v2.col1;
+select * from v3;
+a b
+1 1
+show create view v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `v1`.`col1` AS `a`,`v2`.`col1` AS `b` from (`v1` join `v2`) where (`v1`.`col1` = `v2`.`col1`)
+drop view v3, v2, v1;
+drop table t2, t1;
+create function `f``1` () returns int return 5;
+create view v1 as select test.`f``1` ();
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`f``1`() AS `test.``f````1`` ()`
+select * from v1;
+test.`f``1` ()
+5
+drop view v1;
+drop function `f``1`;
+create function x () returns int return 5;
+create view v1 as select x ();
+select * from v1;
+x ()
+5
+drop view v1;
+drop function x;
+create table t2 (col1 char collate latin1_german2_ci);
+create view v2 as select col1 collate latin1_german1_ci from t2;
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t2`.`col1` collate latin1_german1_ci) AS `col1 collate latin1_german1_ci` from `t2`
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select (`t2`.`col1` collate latin1_german1_ci) AS `col1 collate latin1_german1_ci` from `t2`
+drop view v2;
+drop table t2;
+create table t1 (a int);
+insert into t1 values (1), (2);
+create view v1 as select 5 from t1 order by 1;
+select * from v1;
+5
+5
+5
+drop view v1;
+drop table t1;
+create function x1 () returns int return 5;
+create table t1 (s1 int);
+create view v1 as select x1() from t1;
+drop function x1;
+select * from v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+show table status;
+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 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
+v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL View 'test.v1' references invalid table(s) or column(s) or function(s) or define
+drop view v1;
+drop table t1;
+create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 99999999999999999999999999999999999999999999999999999 AS `col1`
+drop view v1;
+set names utf8;
+create table tü (cü char);
+create view vü as select cü from tü;
+insert into vü values ('ü');
+select * from vü;
+cü
+ü
+drop view vü;
+drop table tü;
+set names latin1;
+create table t1 (a int, b int);
+insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
+create view v1(c) as select a+1 from t1 where b >= 4;
+select c from v1 where exists (select * from t1 where a=2 and b=c);
+c
+4
+drop view v1;
+drop table t1;
+create view v1 as select cast(1 as char(3));
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1 as char(3) charset latin1) AS `cast(1 as char(3))`
+select * from v1;
+cast(1 as char(3))
+1
+drop view v1;
+create table t1 (a int);
+create view v1 as select a from t1;
+create view v3 as select a from t1;
+create database mysqltest;
+rename table v1 to mysqltest.v1;
+ERROR HY000: Changing schema from 'test' to 'mysqltest' is not allowed.
+rename table v1 to v2;
+rename table v3 to v1, v2 to t1;
+ERROR 42S01: Table 't1' already exists
+drop table t1;
+drop view v2,v3;
+drop database mysqltest;
+create view v1 as select 'a',1;
+create view v2 as select * from v1 union all select * from v1;
+create view v3 as select * from v2 where 1 = (select `1` from v2);
+create view v4 as select * from v3;
+select * from v4;
+ERROR 21000: Subquery returns more than 1 row
+drop view v4, v3, v2, v1;
+create view v1 as select 5 into @w;
+ERROR HY000: View's SELECT contains a 'INTO' clause
+create view v1 as select 5 into outfile 'ttt';
+ERROR HY000: View's SELECT contains a 'INTO' clause
+create table t1 (a int);
+create view v1 as select a from t1 procedure analyse();
+ERROR HY000: View's SELECT contains a 'PROCEDURE' clause
+create view v1 as select 1 from (select 1) as d1;
+ERROR HY000: View's SELECT contains a subquery in the FROM clause
+drop table t1;
+create table t1 (s1 int, primary key (s1));
+create view v1 as select * from t1;
+insert into v1 values (1) on duplicate key update s1 = 7;
+insert into v1 values (1) on duplicate key update s1 = 7;
+select * from t1;
+s1
+7
+drop view v1;
+drop table t1;
+create table t1 (col1 int);
+create table t2 (col1 int);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+create view v3 as select v2.col1 from v2,t2 where v2.col1 = t2.col1;
+update v2 set col1 = (select max(col1) from v1);
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v2'.
+update v2 set col1 = (select max(col1) from t1);
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v2'.
+update v2 set col1 = (select max(col1) from v2);
+ERROR HY000: You can't specify target table 'v2' for update in FROM clause
+update v2,t2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v2'.
+update t1,t2 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't1'.
+update v1,t2 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1;
+ERROR HY000: You can't specify target table 'v1' for update in FROM clause
+update t2,v2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't2'.
+update t2,t1 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't2'.
+update t2,v1 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't2'.
+update v2,t2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v2'.
+update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
+ERROR HY000: You can't specify target table 't1' for update in FROM clause
+update v1,t2 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v1'.
+update t2,v2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1;
+ERROR HY000: You can't specify target table 't2' for update in FROM clause
+update t2,t1 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
+ERROR HY000: You can't specify target table 't2' for update in FROM clause
+update t2,v1 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1;
+ERROR HY000: You can't specify target table 't2' for update in FROM clause
+update v2,t2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1;
+ERROR HY000: You can't specify target table 'v2' for update in FROM clause
+update t1,t2 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't1'.
+update v1,t2 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v1'.
+update t2,v2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't2'.
+update t2,t1 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't2'.
+update t2,v1 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't2'.
+update v3 set v3.col1 = (select max(col1) from v1);
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v3'.
+update v3 set v3.col1 = (select max(col1) from t1);
+ERROR HY000: The definition of table 'v3' prevents operation UPDATE on table 'v3'.
+update v3 set v3.col1 = (select max(col1) from v2);
+ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v3'.
+update v3 set v3.col1 = (select max(col1) from v3);
+ERROR HY000: You can't specify target table 'v3' for update in FROM clause
+delete from v2 where col1 = (select max(col1) from v1);
+ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 'v2'.
+delete from v2 where col1 = (select max(col1) from t1);
+ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 'v2'.
+delete from v2 where col1 = (select max(col1) from v2);
+ERROR HY000: You can't specify target table 'v2' for update in FROM clause
+delete v2 from v2,t2 where (select max(col1) from v1) > 0 and v2.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 'v2'.
+delete t1 from t1,t2 where (select max(col1) from v1) > 0 and t1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 't1'.
+delete v1 from v1,t2 where (select max(col1) from v1) > 0 and v1.col1 = t2.col1;
+ERROR HY000: You can't specify target table 'v1' for update in FROM clause
+delete v2 from v2,t2 where (select max(col1) from t1) > 0 and v2.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 'v2'.
+delete t1 from t1,t2 where (select max(col1) from t1) > 0 and t1.col1 = t2.col1;
+ERROR HY000: You can't specify target table 't1' for update in FROM clause
+delete v1 from v1,t2 where (select max(col1) from t1) > 0 and v1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 'v1'.
+delete v2 from v2,t2 where (select max(col1) from v2) > 0 and v2.col1 = t2.col1;
+ERROR HY000: You can't specify target table 'v2' for update in FROM clause
+delete t1 from t1,t2 where (select max(col1) from v2) > 0 and t1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 't1'.
+delete v1 from v1,t2 where (select max(col1) from v2) > 0 and v1.col1 = t2.col1;
+ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 'v1'.
+insert into v2 values ((select max(col1) from v1));
+ERROR HY000: The definition of table 'v1' prevents operation INSERT on table 'v2'.
+insert into t1 values ((select max(col1) from v1));
+ERROR HY000: The definition of table 'v1' prevents operation INSERT on table 't1'.
+insert into v2 values ((select max(col1) from v1));
+ERROR HY000: The definition of table 'v1' prevents operation INSERT on table 'v2'.
+insert into v2 values ((select max(col1) from t1));
+ERROR HY000: The definition of table 'v2' prevents operation INSERT on table 'v2'.
+insert into t1 values ((select max(col1) from t1));
+ERROR HY000: You can't specify target table 't1' for update in FROM clause
+insert into v2 values ((select max(col1) from t1));
+ERROR HY000: The definition of table 'v2' prevents operation INSERT on table 'v2'.
+insert into v2 values ((select max(col1) from v2));
+ERROR HY000: You can't specify target table 'v2' for update in FROM clause
+insert into t1 values ((select max(col1) from v2));
+ERROR HY000: The definition of table 'v2' prevents operation INSERT on table 't1'.
+insert into v2 values ((select max(col1) from v2));
+ERROR HY000: You can't specify target table 'v2' for update in FROM clause
+insert into v3 (col1) values ((select max(col1) from v1));
+ERROR HY000: The definition of table 'v1' prevents operation INSERT on table 'v3'.
+insert into v3 (col1) values ((select max(col1) from t1));
+ERROR HY000: The definition of table 'v3' prevents operation INSERT on table 'v3'.
+insert into v3 (col1) values ((select max(col1) from v2));
+ERROR HY000: The definition of table 'v2' prevents operation INSERT on table 'v3'.
+insert into v3 (col1) values ((select CONVERT_TZ('20050101000000','UTC','MET') from v2));
+ERROR HY000: The definition of table 'v2' prevents operation INSERT on table 'v3'.
+insert into v3 (col1) values ((select CONVERT_TZ('20050101000000','UTC','MET') from t2));
+insert into mysql.time_zone values ('', (select CONVERT_TZ('20050101000000','UTC','MET') from t2));
+ERROR 23000: Column 'Use_leap_seconds' cannot be null
+create algorithm=temptable view v4 as select * from t1;
+insert into t1 values (1),(2),(3);
+insert into t1 (col1) values ((select max(col1) from v4));
+select * from t1;
+col1
+NULL
+1
+2
+3
+3
+drop view v4,v3,v2,v1;
+drop table t1,t2;
+create table t1 (s1 int);
+create view v1 as select * from t1;
+handler v1 open as xx;
+ERROR HY000: 'test.v1' is not BASE TABLE
+drop view v1;
+drop table t1;
+create table t1(a int);
+insert into t1 values (0), (1), (2), (3);
+create table t2 (a int);
+insert into t2 select a from t1 where a > 1;
+create view v1 as select a from t1 where a > 1;
+select * from t1 left join (t2 as t, v1) on v1.a=t1.a;
+a a a
+0 NULL NULL
+1 NULL NULL
+2 2 2
+2 3 2
+3 2 3
+3 3 3
+select * from t1 left join (t2 as t, t2) on t2.a=t1.a;
+a a a
+0 NULL NULL
+1 NULL NULL
+2 2 2
+2 3 2
+3 2 3
+3 3 3
+drop view v1;
+drop table t1, t2;
+create table t1 (s1 char);
+create view v1 as select s1 collate latin1_german1_ci as s1 from t1;
+insert into v1 values ('a');
+select * from v1;
+s1
+a
+update v1 set s1='b';
+select * from v1;
+s1
+b
+update v1,t1 set v1.s1='c' where t1.s1=v1.s1;
+select * from v1;
+s1
+c
+prepare stmt1 from "update v1,t1 set v1.s1=? where t1.s1=v1.s1";
+set @arg='d';
+execute stmt1 using @arg;
+select * from v1;
+s1
+d
+set @arg='e';
+execute stmt1 using @arg;
+select * from v1;
+s1
+e
+deallocate prepare stmt1;
+drop view v1;
+drop table t1;
+create table t1 (a int);
+create table t2 (a int);
+create view v1 as select * from t1;
+lock tables t1 read, v1 read;
+select * from v1;
+a
+select * from t2;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+drop view v1;
+drop table t1, t2;
+create table t1 (a int);
+create view v1 as select * from t1 where a < 2 with check option;
+insert into v1 values(1);
+insert into v1 values(3);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+insert ignore into v1 values (2),(3),(0);
+Warnings:
+Error 1369 CHECK OPTION failed 'test.v1'
+Error 1369 CHECK OPTION failed 'test.v1'
+select * from t1;
+a
+1
+0
+delete from t1;
+insert into v1 SELECT 1;
+insert into v1 SELECT 3;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+create table t2 (a int);
+insert into t2 values (2),(3),(0);
+insert ignore into v1 SELECT a from t2;
+Warnings:
+Error 1369 CHECK OPTION failed 'test.v1'
+Error 1369 CHECK OPTION failed 'test.v1'
+select * from t1;
+a
+1
+0
+update v1 set a=-1 where a=0;
+update v1 set a=2 where a=1;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+select * from t1;
+a
+1
+-1
+update v1 set a=0 where a=0;
+insert into t2 values (1);
+update v1,t2 set v1.a=v1.a-1 where v1.a=t2.a;
+select * from t1;
+a
+0
+-1
+update v1 set a=a+1;
+update ignore v1,t2 set v1.a=v1.a+1 where v1.a=t2.a;
+Warnings:
+Error 1369 CHECK OPTION failed 'test.v1'
+select * from t1;
+a
+1
+1
+drop view v1;
+drop table t1, t2;
+create table t1 (a int);
+create view v1 as select * from t1 where a < 2 with check option;
+create view v2 as select * from v1 where a > 0 with local check option;
+create view v3 as select * from v1 where a > 0 with cascaded check option;
+insert into v2 values (1);
+insert into v3 values (1);
+insert into v2 values (0);
+ERROR HY000: CHECK OPTION failed 'test.v2'
+insert into v3 values (0);
+ERROR HY000: CHECK OPTION failed 'test.v3'
+insert into v2 values (2);
+insert into v3 values (2);
+ERROR HY000: CHECK OPTION failed 'test.v3'
+select * from t1;
+a
+1
+1
+2
+drop view v3,v2,v1;
+drop table t1;
+create table t1 (a int, primary key (a));
+create view v1 as select * from t1 where a < 2 with check option;
+insert into v1 values (1) on duplicate key update a=2;
+insert into v1 values (1) on duplicate key update a=2;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+insert ignore into v1 values (1) on duplicate key update a=2;
+Warnings:
+Error 1369 CHECK OPTION failed 'test.v1'
+select * from t1;
+a
+1
+drop view v1;
+drop table t1;
+create table t1 (s1 int);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+alter view v1 as select * from v2;
+ERROR 42S02: Table 'test.v1' doesn't exist
+alter view v1 as select * from v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+create or replace view v1 as select * from v2;
+ERROR 42S02: Table 'test.v1' doesn't exist
+create or replace view v1 as select * from v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+drop view v2,v1;
+drop table t1;
+create table t1 (a int);
+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`.`a` AS `a` from `t1`
+alter algorithm=undefined view v1 as select * from t1 with check option;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` WITH CASCADED CHECK OPTION
+alter algorithm=merge view v1 as select * from t1 with cascaded check option;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` WITH CASCADED CHECK OPTION
+alter algorithm=temptable view v1 as select * from t1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`
+drop view v1;
+drop table t1;
+create table t1 (s1 int);
+create table t2 (s1 int);
+create view v2 as select * from t2 where s1 in (select s1 from t1);
+insert into v2 values (5);
+insert into t1 values (5);
+select * from v2;
+s1
+5
+update v2 set s1 = 0;
+select * from v2;
+s1
+select * from t2;
+s1
+0
+alter view v2 as select * from t2 where s1 in (select s1 from t1) with check option;
+insert into v2 values (5);
+update v2 set s1 = 1;
+ERROR HY000: CHECK OPTION failed 'test.v2'
+insert into t1 values (1);
+update v2 set s1 = 1;
+select * from v2;
+s1
+1
+select * from t2;
+s1
+0
+1
+prepare stmt1 from "select * from v2;";
+execute stmt1;
+s1
+1
+insert into t1 values (0);
+execute stmt1;
+s1
+0
+1
+deallocate prepare stmt1;
+drop view v2;
+drop table t1, t2;
+create table t1 (t time);
+create view v1 as select substring_index(t,':',2) as t from t1;
+insert into t1 (t) values ('12:24:10');
+select substring_index(t,':',2) from t1;
+substring_index(t,':',2)
+12:24
+select substring_index(t,':',2) from v1;
+substring_index(t,':',2)
+12:24
+drop view v1;
+drop table t1;
+create table t1 (s1 tinyint);
+create view v1 as select * from t1 where s1 <> 0 with local check option;
+create view v2 as select * from v1 with cascaded check option;
+insert into v2 values (0);
+ERROR HY000: CHECK OPTION failed 'test.v2'
+drop view v2, v1;
+drop table t1;
+create table t1 (s1 int);
+create view v1 as select * from t1 where s1 < 5 with check option;
+insert ignore into v1 values (6);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+insert ignore into v1 values (6),(3);
+Warnings:
+Error 1369 CHECK OPTION failed 'test.v1'
+select * from t1;
+s1
+3
+drop view v1;
+drop table t1;
+create table t1 (s1 tinyint);
+create trigger t1_bi before insert on t1 for each row set new.s1 = 500;
+create view v1 as select * from t1 where s1 <> 127 with check option;
+insert into v1 values (0);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+select * from v1;
+s1
+select * from t1;
+s1
+drop trigger t1_bi;
+drop view v1;
+drop table t1;
+create table t1 (s1 tinyint);
+create view v1 as select * from t1 where s1 <> 0;
+create view v2 as select * from v1 where s1 <> 1 with cascaded check option;
+insert into v2 values (0);
+ERROR HY000: CHECK OPTION failed 'test.v2'
+select * from v2;
+s1
+select * from t1;
+s1
+drop view v2, v1;
+drop table t1;
+create table t1 (a int, b char(10));
+create view v1 as select * from t1 where a != 0 with check option;
+load data infile '../std_data_ln/loaddata3.dat' into table v1 fields terminated by '' enclosed by '' ignore 1 lines;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+select * from t1;
+a b
+1 row 1
+2 row 2
+select * from v1;
+a b
+1 row 1
+2 row 2
+delete from t1;
+load data infile '../std_data_ln/loaddata3.dat' ignore into table v1 fields terminated by '' enclosed by '' ignore 1 lines;
+Warnings:
+Warning 1366 Incorrect integer value: 'error ' for column 'a' at row 3
+Error 1369 CHECK OPTION failed 'test.v1'
+Warning 1366 Incorrect integer value: 'wrong end ' for column 'a' at row 4
+Error 1369 CHECK OPTION failed 'test.v1'
+select * from t1;
+a b
+1 row 1
+2 row 2
+3 row 3
+select * from v1;
+a b
+1 row 1
+2 row 2
+3 row 3
+drop view v1;
+drop table t1;
+create table t1 (a text, b text);
+create view v1 as select * from t1 where a <> 'Field A' with check option;
+load data infile '../std_data_ln/loaddata2.dat' into table v1 fields terminated by ',' enclosed by '''';
+ERROR HY000: CHECK OPTION failed 'test.v1'
+select concat('|',a,'|'), concat('|',b,'|') from t1;
+concat('|',a,'|') concat('|',b,'|')
+select concat('|',a,'|'), concat('|',b,'|') from v1;
+concat('|',a,'|') concat('|',b,'|')
+delete from t1;
+load data infile '../std_data_ln/loaddata2.dat' ignore into table v1 fields terminated by ',' enclosed by '''';
+Warnings:
+Error 1369 CHECK OPTION failed 'test.v1'
+Warning 1261 Row 2 doesn't contain data for all columns
+select concat('|',a,'|'), concat('|',b,'|') from t1;
+concat('|',a,'|') concat('|',b,'|')
+|Field 1| |Field 2'
+Field 3,'Field 4|
+|Field 5' ,'Field 6| NULL
+|Field 6| | 'Field 7'|
+select concat('|',a,'|'), concat('|',b,'|') from v1;
+concat('|',a,'|') concat('|',b,'|')
+|Field 1| |Field 2'
+Field 3,'Field 4|
+|Field 5' ,'Field 6| NULL
+|Field 6| | 'Field 7'|
+drop view v1;
+drop table t1;
+create table t1 (s1 smallint);
+create view v1 as select * from t1 where 20 < (select (s1) from t1);
+insert into v1 values (30);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+create view v2 as select * from t1;
+create view v3 as select * from t1 where 20 < (select (s1) from v2);
+insert into v3 values (30);
+ERROR HY000: The target table v3 of the INSERT is not insertable-into
+create view v4 as select * from v2 where 20 < (select (s1) from t1);
+insert into v4 values (30);
+ERROR HY000: The target table v4 of the INSERT is not insertable-into
+drop view v4, v3, v2, v1;
+drop table t1;
+create table t1 (a int);
+create view v1 as select * from t1;
+check table t1,v1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+test.v1 check status OK
+check table v1,t1;
+Table Op Msg_type Msg_text
+test.v1 check status OK
+test.t1 check status OK
+drop table t1;
+check table v1;
+Table Op Msg_type Msg_text
+test.v1 check Error Table 'test.t1' doesn't exist
+test.v1 check Error View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v1 check error Corrupt
+drop view v1;
+create table t1 (a int);
+create table t2 (a int);
+create table t3 (a int);
+insert into t1 values (1), (2), (3);
+insert into t2 values (1), (3);
+insert into t3 values (1), (2), (4);
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1 left join t2 on (t1.a=t2.a);
+select * from t3 left join v3 on (t3.a = v3.a);
+a a b
+1 1 1
+2 2 NULL
+4 NULL NULL
+explain extended select * from t3 left join v3 on (t3.a = v3.a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 ALL NULL NULL NULL NULL 3
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join `test`.`t2` on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
+create view v1 (a) as select a from t1;
+create view v2 (a) as select a from t2;
+create view v4 (a,b) as select v1.a as a, v2.a as b from v1 left join v2 on (v1.a=v2.a);
+select * from t3 left join v4 on (t3.a = v4.a);
+a a b
+1 1 1
+2 2 NULL
+4 NULL NULL
+explain extended select * from t3 left join v4 on (t3.a = v4.a);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 ALL NULL NULL NULL NULL 3
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+Warnings:
+Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join (`test`.`t2`) on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
+prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
+execute stmt1;
+a a b
+1 1 1
+2 2 NULL
+4 NULL NULL
+execute stmt1;
+a a b
+1 1 1
+2 2 NULL
+4 NULL NULL
+deallocate prepare stmt1;
+drop view v4,v3,v2,v1;
+drop tables t1,t2,t3;
+create table t1 (a int, primary key (a), b int);
+create table t2 (a int, primary key (a));
+insert into t1 values (1,100), (2,200);
+insert into t2 values (1), (3);
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2;
+update v3 set a= 10 where a=1;
+select * from t1;
+a b
+10 100
+2 200
+select * from t2;
+a
+1
+3
+create view v2 (a,b) as select t1.b as a, t2.a as b from t1, t2;
+set updatable_views_with_limit=NO;
+update v2 set a= 10 where a=200 limit 1;
+ERROR HY000: The target table t1 of the UPDATE is not updatable
+set updatable_views_with_limit=DEFAULT;
+select * from v3;
+a b
+2 1
+10 1
+2 3
+10 3
+select * from v2;
+a b
+100 1
+200 1
+100 3
+200 3
+set @a= 10;
+set @b= 100;
+prepare stmt1 from "update v3 set a= ? where a=?";
+execute stmt1 using @a,@b;
+select * from v3;
+a b
+2 1
+10 1
+2 3
+10 3
+set @a= 300;
+set @b= 10;
+execute stmt1 using @a,@b;
+select * from v3;
+a b
+2 1
+300 1
+2 3
+300 3
+deallocate prepare stmt1;
+drop view v3,v2;
+drop tables t1,t2;
+create table t1 (a int, primary key (a), b int);
+create table t2 (a int, primary key (a), b int);
+insert into t2 values (1000, 2000);
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2;
+insert into v3 values (1,2);
+ERROR HY000: Can not insert into join view 'test.v3' without fields list
+insert into v3 select * from t2;
+ERROR HY000: Can not insert into join view 'test.v3' without fields list
+insert into v3(a,b) values (1,2);
+ERROR HY000: Can not modify more than one base table through a join view 'test.v3'
+insert into v3(a,b) select * from t2;
+ERROR HY000: Can not modify more than one base table through a join view 'test.v3'
+insert into v3(a) values (1);
+insert into v3(b) values (10);
+insert into v3(a) select a from t2;
+insert into v3(b) select b from t2;
+Warnings:
+Warning 1048 Column 'a' cannot be null
+insert into v3(a) values (1) on duplicate key update a=a+10000+VALUES(a);
+select * from t1;
+a b
+10002 NULL
+10 NULL
+1000 NULL
+select * from t2;
+a b
+1000 2000
+10 NULL
+2000 NULL
+0 NULL
+delete from v3;
+ERROR HY000: Can not delete from join view 'test.v3'
+delete v3,t1 from v3,t1;
+ERROR HY000: Can not delete from join view 'test.v3'
+delete t1,v3 from t1,v3;
+ERROR HY000: Can not delete from join view 'test.v3'
+delete from t1;
+prepare stmt1 from "insert into v3(a) values (?);";
+set @a= 100;
+execute stmt1 using @a;
+set @a= 300;
+execute stmt1 using @a;
+deallocate prepare stmt1;
+prepare stmt1 from "insert into v3(a) select ?;";
+set @a= 101;
+execute stmt1 using @a;
+set @a= 301;
+execute stmt1 using @a;
+deallocate prepare stmt1;
+select * from v3;
+a b
+100 1000
+101 1000
+300 1000
+301 1000
+100 10
+101 10
+300 10
+301 10
+100 2000
+101 2000
+300 2000
+301 2000
+100 0
+101 0
+300 0
+301 0
+drop view v3;
+drop tables t1,t2;
+create table t1(f1 int);
+create view v1 as select f1 from t1;
+select * from v1 where F1 = 1;
+f1
+drop view v1;
+drop table t1;
+create table t1(c1 int);
+create table t2(c2 int);
+insert into t1 values (1),(2),(3);
+insert into t2 values (1);
+SELECT c1 FROM t1 WHERE c1 IN (SELECT c2 FROM t2);
+c1
+1
+SELECT c1 FROM t1 WHERE EXISTS (SELECT c2 FROM t2 WHERE c2 = c1);
+c1
+1
+create view v1 as SELECT c1 FROM t1 WHERE c1 IN (SELECT c2 FROM t2);
+create view v2 as SELECT c1 FROM t1 WHERE EXISTS (SELECT c2 FROM t2 WHERE c2 = c1);
+select * from v1;
+c1
+1
+select * from v2;
+c1
+1
+select * from (select c1 from v2) X;
+c1
+1
+drop view v2, v1;
+drop table t1, t2;
+CREATE TABLE t1 (C1 INT, C2 INT);
+CREATE TABLE t2 (C2 INT);
+CREATE VIEW v1 AS SELECT C2 FROM t2;
+CREATE VIEW v2 AS SELECT C1 FROM t1 LEFT OUTER JOIN v1 USING (C2);
+SELECT * FROM v2;
+C1
+drop view v2, v1;
+drop table t1, t2;
+create table t1 (col1 char(5),col2 int,col3 int);
+insert into t1 values ('one',10,25), ('two',10,50), ('two',10,50), ('one',20,25), ('one',30,25);
+create view v1 as select * from t1;
+select col1,group_concat(col2,col3) from t1 group by col1;
+col1 group_concat(col2,col3)
+one 1025,2025,3025
+two 1050,1050
+select col1,group_concat(col2,col3) from v1 group by col1;
+col1 group_concat(col2,col3)
+one 1025,2025,3025
+two 1050,1050
+drop view v1;
+drop table t1;
+create table t1 (s1 int, s2 char);
+create view v1 as select s1, s2 from t1;
+select s2 from v1 vq1 where 2 = (select count(*) from v1 vq2 having vq1.s2 = vq2.s2);
+ERROR 42S22: Unknown column 'vq2.s2' in 'having clause'
+select s2 from v1 vq1 where 2 = (select count(*) aa from v1 vq2 having vq1.s2 = aa);
+s2
+drop view v1;
+drop table t1;
+CREATE TABLE t1 (a1 int);
+CREATE TABLE t2 (a2 int);
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+INSERT INTO t2 VALUES (1), (2), (3);
+CREATE VIEW v1(a,b) AS SELECT a1,a2 FROM t1 JOIN t2 ON a1=a2 WHERE a1>1;
+SELECT * FROM v1;
+a b
+2 2
+3 3
+CREATE TABLE t3 SELECT * FROM v1;
+SELECT * FROM t3;
+a b
+2 2
+3 3
+DROP VIEW v1;
+DROP TABLE t1,t2,t3;
+create table t1 (a int);
+create table t2 like t1;
+create table t3 like t1;
+create view v1 as select t1.a x, t2.a y from t1 join t2 where t1.a=t2.a;
+insert into t3 select x from v1;
+insert into t2 select x from v1;
+drop view v1;
+drop table t1,t2,t3;
+CREATE TABLE t1 (col1 int PRIMARY KEY, col2 varchar(10));
+INSERT INTO t1 VALUES(1,'trudy');
+INSERT INTO t1 VALUES(2,'peter');
+INSERT INTO t1 VALUES(3,'sanja');
+INSERT INTO t1 VALUES(4,'monty');
+INSERT INTO t1 VALUES(5,'david');
+INSERT INTO t1 VALUES(6,'kent');
+INSERT INTO t1 VALUES(7,'carsten');
+INSERT INTO t1 VALUES(8,'ranger');
+INSERT INTO t1 VALUES(10,'matt');
+CREATE TABLE t2 (col1 int, col2 int, col3 char(1));
+INSERT INTO t2 VALUES (1,1,'y');
+INSERT INTO t2 VALUES (1,2,'y');
+INSERT INTO t2 VALUES (2,1,'n');
+INSERT INTO t2 VALUES (3,1,'n');
+INSERT INTO t2 VALUES (4,1,'y');
+INSERT INTO t2 VALUES (4,2,'n');
+INSERT INTO t2 VALUES (4,3,'n');
+INSERT INTO t2 VALUES (6,1,'n');
+INSERT INTO t2 VALUES (8,1,'y');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT a.col1,a.col2,b.col2,b.col3
+FROM t1 a LEFT JOIN t2 b ON a.col1=b.col1
+WHERE b.col2 IS NULL OR
+b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1);
+col1 col2 col2 col3
+1 trudy 2 y
+2 peter 1 n
+3 sanja 1 n
+4 monty 3 n
+5 david NULL NULL
+6 kent 1 n
+7 carsten NULL NULL
+8 ranger 1 y
+10 matt NULL NULL
+SELECT a.col1,a.col2,b.col2,b.col3
+FROM v1 a LEFT JOIN t2 b ON a.col1=b.col1
+WHERE b.col2 IS NULL OR
+b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1);
+col1 col2 col2 col3
+1 trudy 2 y
+2 peter 1 n
+3 sanja 1 n
+4 monty 3 n
+5 david NULL NULL
+6 kent 1 n
+7 carsten NULL NULL
+8 ranger 1 y
+10 matt NULL NULL
+CREATE VIEW v2 AS SELECT * FROM t2;
+SELECT a.col1,a.col2,b.col2,b.col3
+FROM v2 b RIGHT JOIN v1 a ON a.col1=b.col1
+WHERE b.col2 IS NULL OR
+b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1);
+col1 col2 col2 col3
+1 trudy 2 y
+2 peter 1 n
+3 sanja 1 n
+4 monty 3 n
+5 david NULL NULL
+6 kent 1 n
+7 carsten NULL NULL
+8 ranger 1 y
+10 matt NULL NULL
+SELECT a.col1,a.col2,b.col2,b.col3
+FROM v2 b RIGHT JOIN v1 a ON a.col1=b.col1
+WHERE a.col1 IN (1,5,9) AND
+(b.col2 IS NULL OR
+b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1));
+col1 col2 col2 col3
+1 trudy 2 y
+5 david NULL NULL
+CREATE VIEW v3 AS SELECT * FROM t1 WHERE col1 IN (1,5,9);
+SELECT a.col1,a.col2,b.col2,b.col3
+FROM v2 b RIGHT JOIN v3 a ON a.col1=b.col1
+WHERE b.col2 IS NULL OR
+b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1);
+col1 col2 col2 col3
+1 trudy 2 y
+5 david NULL NULL
+DROP VIEW v1,v2,v3;
+DROP TABLE t1,t2;
+create table t1 as select 1 A union select 2 union select 3;
+create table t2 as select * from t1;
+create view v1 as select * from t1 where a in (select * from t2);
+select * from v1 A, v1 B where A.a = B.a;
+A A
+1 1
+2 2
+3 3
+create table t3 as select a a,a b from t2;
+create view v2 as select * from t3 where
+a in (select * from t1) or b in (select * from t2);
+select * from v2 A, v2 B where A.a = B.b;
+a b a b
+1 1 1 1
+2 2 2 2
+3 3 3 3
+drop view v1, v2;
+drop table t1, t2, t3;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+INSERT INTO t2 VALUES (4), (2);
+CREATE VIEW v1 AS SELECT * FROM t1,t2 WHERE t1.a=t2.b;
+SELECT * FROM v1;
+a b
+2 2
+4 4
+CREATE VIEW v2 AS SELECT * FROM v1;
+SELECT * FROM v2;
+a b
+2 2
+4 4
+DROP VIEW v2,v1;
+DROP TABLE t1, t2;
+create table t1 (a int);
+create view v1 as select sum(a) from t1 group by a;
+create procedure p1()
+begin
+select * from v1;
+end//
+call p1();
+sum(a)
+call p1();
+sum(a)
+drop procedure p1;
+drop view v1;
+drop table t1;
+CREATE TABLE t1(a char(2) primary key, b char(2));
+CREATE TABLE t2(a char(2), b char(2), index i(a));
+INSERT INTO t1 VALUES ('a','1'), ('b','2');
+INSERT INTO t2 VALUES ('a','5'), ('a','6'), ('b','5'), ('b','6');
+CREATE VIEW v1 AS
+SELECT t1.b as c, t2.b as d FROM t1,t2 WHERE t1.a=t2.a;
+SELECT d, c FROM v1 ORDER BY d,c;
+d c
+5 1
+5 2
+6 1
+6 2
+DROP VIEW v1;
+DROP TABLE t1, t2;
+create table t1 (s1 int);
+create view v1 as select sum(distinct s1) from t1;
+select * from v1;
+sum(distinct s1)
+NULL
+drop view v1;
+create view v1 as select avg(distinct s1) from t1;
+select * from v1;
+avg(distinct s1)
+NULL
+drop view v1;
+drop table t1;
+create view v1 as select cast(1 as decimal);
+select * from v1;
+cast(1 as decimal)
+1
+drop view v1;
+create table t1(f1 int);
+create table t2(f2 int);
+insert into t1 values(1),(2),(3);
+insert into t2 values(1),(2),(3);
+create view v1 as select * from t1,t2 where f1=f2;
+create table t3 (f1 int, f2 int);
+insert into t3 select * from v1 order by 1;
+select * from t3;
+f1 f2
+1 1
+2 2
+3 3
+drop view v1;
+drop table t1,t2,t3;
+create view v1 as select '\\','\\shazam';
+select * from v1;
+\ \shazam
+\ \shazam
+drop view v1;
+create view v1 as select '\'','\shazam';
+select * from v1;
+' shazam
+' shazam
+drop view v1;
+create view v1 as select 'k','K';
+select * from v1;
+k My_exp_K
+k K
+drop view v1;
+create table t1 (s1 int);
+create view v1 as select s1, 's1' from t1;
+select * from v1;
+s1 My_exp_s1
+drop view v1;
+create view v1 as select 's1', s1 from t1;
+select * from v1;
+My_exp_s1 s1
+drop view v1;
+create view v1 as select 's1', s1, 1 as My_exp_s1 from t1;
+select * from v1;
+My_exp_1_s1 s1 My_exp_s1
+drop view v1;
+create view v1 as select 1 as My_exp_s1, 's1', s1 from t1;
+select * from v1;
+My_exp_s1 My_exp_1_s1 s1
+drop view v1;
+create view v1 as select 1 as s1, 's1', 's1' from t1;
+select * from v1;
+s1 My_exp_s1 My_exp_1_s1
+drop view v1;
+create view v1 as select 's1', 's1', 1 as s1 from t1;
+select * from v1;
+My_exp_1_s1 My_exp_s1 s1
+drop view v1;
+create view v1 as select s1, 's1', 's1' from t1;
+select * from v1;
+s1 My_exp_s1 My_exp_1_s1
+drop view v1;
+create view v1 as select 's1', 's1', s1 from t1;
+select * from v1;
+My_exp_1_s1 My_exp_s1 s1
+drop view v1;
+create view v1 as select 1 as s1, 's1', s1 from t1;
+ERROR 42S21: Duplicate column name 's1'
+create view v1 as select 's1', s1, 1 as s1 from t1;
+ERROR 42S21: Duplicate column name 's1'
+drop table t1;
+create view v1(k, K) as select 1,2;
+ERROR 42S21: Duplicate column name 'K'
+create view v1 as SELECT TIME_FORMAT(SEC_TO_TIME(3600),'%H:%i') as t;
+select * from v1;
+t
+01:00
+drop view v1;
+create table t1 (a timestamp default now());
+create table t2 (b timestamp default now());
+create view v1 as select a,b,t1.a < now() from t1,t2 where t1.a < now();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t2`.`b` AS `b`,(`t1`.`a` < now()) AS `t1.a < now()` from (`t1` join `t2`) where (`t1`.`a` < now())
+drop view v1;
+drop table t1, t2;
+CREATE TABLE t1 ( a varchar(50) );
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = CURRENT_USER();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = current_user())
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = VERSION();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = version())
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = DATABASE();
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` where (`t1`.`a` = database())
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (col1 time);
+CREATE TABLE t2 (col1 time);
+CREATE VIEW v1 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
+CREATE VIEW v2 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2;
+CREATE VIEW v3 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
+CREATE VIEW v4 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2;
+CREATE VIEW v5 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
+CREATE VIEW v6 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2;
+DROP TABLE t1;
+CHECK TABLE v1, v2, v3, v4, v5, v6;
+Table Op Msg_type Msg_text
+test.v1 check Error Table 'test.t1' doesn't exist
+test.v1 check Error View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v1 check error Corrupt
+test.v2 check status OK
+test.v3 check Error Table 'test.t1' doesn't exist
+test.v3 check Error View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v3 check error Corrupt
+test.v4 check status OK
+test.v5 check Error Table 'test.t1' doesn't exist
+test.v5 check Error View 'test.v5' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v5 check error Corrupt
+test.v6 check status OK
+drop view v1, v2, v3, v4, v5, v6;
+drop table t2;
+drop function if exists f1;
+drop function if exists f2;
+CREATE TABLE t1 (col1 time);
+CREATE TABLE t2 (col1 time);
+CREATE TABLE t3 (col1 time);
+create function f1 () returns int return (select max(col1) from t1);
+create function f2 () returns int return (select max(col1) from t2);
+CREATE VIEW v1 AS SELECT f1() FROM t3;
+CREATE VIEW v2 AS SELECT f2() FROM t3;
+CREATE VIEW v3 AS SELECT f1() FROM t3;
+CREATE VIEW v4 AS SELECT f2() FROM t3;
+CREATE VIEW v5 AS SELECT f1() FROM t3;
+CREATE VIEW v6 AS SELECT f2() FROM t3;
+drop function f1;
+CHECK TABLE v1, v2, v3, v4, v5, v6;
+Table Op Msg_type Msg_text
+test.v1 check Error FUNCTION test.f1 does not exist
+test.v1 check Error View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v1 check error Corrupt
+test.v2 check status OK
+test.v3 check Error FUNCTION test.f1 does not exist
+test.v3 check Error View 'test.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v3 check error Corrupt
+test.v4 check status OK
+test.v5 check Error FUNCTION test.f1 does not exist
+test.v5 check Error View 'test.v5' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+test.v5 check error Corrupt
+test.v6 check status OK
+create function f1 () returns int return (select max(col1) from t1);
+DROP TABLE t1;
+CHECK TABLE v1, v2, v3, v4, v5, v6;
+Table Op Msg_type Msg_text
+test.v1 check status OK
+test.v2 check status OK
+test.v3 check status OK
+test.v4 check status OK
+test.v5 check status OK
+test.v6 check status OK
+drop function f1;
+drop function f2;
+drop view v1, v2, v3, v4, v5, v6;
+drop table t2,t3;
+create table t1 (f1 date);
+insert into t1 values ('2005-01-01'),('2005-02-02');
+create view v1 as select * from t1;
+select * from v1 where f1='2005.02.02';
+f1
+2005-02-02
+select * from v1 where '2005.02.02'=f1;
+f1
+2005-02-02
+drop view v1;
+drop table t1;
+CREATE VIEW v1 AS SELECT ENCRYPT("dhgdhgd");
+SELECT * FROM v1;
+drop view v1;
+CREATE VIEW v1 AS SELECT SUBSTRING_INDEX("dkjhgd:kjhdjh", ":", 1);
+SELECT * FROM v1;
+SUBSTRING_INDEX("dkjhgd:kjhdjh", ":", 1)
+dkjhgd
+drop view v1;
+create table t1 (f59 int, f60 int, f61 int);
+insert into t1 values (19,41,32);
+create view v1 as select f59, f60 from t1 where f59 in
+(select f59 from t1);
+update v1 set f60=2345;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+update t1 set f60=(select max(f60) from v1);
+ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't1'.
+drop view v1;
+drop table t1;
+create table t1 (s1 int);
+create view v1 as select var_samp(s1) from t1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select var_samp(`t1`.`s1`) AS `var_samp(s1)` from `t1`
+drop view v1;
+drop table t1;
+set sql_mode='strict_all_tables';
+CREATE TABLE t1 (col1 INT NOT NULL, col2 INT NOT NULL);
+CREATE VIEW v1 (vcol1) AS SELECT col1 FROM t1;
+CREATE VIEW v2 (vcol1) AS SELECT col1 FROM t1 WHERE col2 > 2;
+INSERT INTO t1 (col1) VALUES(12);
+ERROR HY000: Field 'col2' doesn't have a default value
+INSERT INTO v1 (vcol1) VALUES(12);
+ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
+INSERT INTO v2 (vcol1) VALUES(12);
+ERROR HY000: Field of view 'test.v2' underlying table doesn't have a default value
+set sql_mode=default;
+drop view v2,v1;
+drop table t1;
+create table t1 (f1 int);
+insert into t1 values (1);
+create view v1 as select f1 from t1;
+select f1 as alias from v1;
+alias
+1
+drop view v1;
+drop table t1;
+CREATE TABLE t1 (s1 int, s2 int);
+INSERT INTO t1 VALUES (1,2);
+CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
+SELECT * FROM v1;
+s1 s2
+2 1
+CREATE PROCEDURE p1 () SELECT * FROM v1;
+CALL p1();
+s1 s2
+2 1
+ALTER VIEW v1 AS SELECT s1 AS s1, s2 AS s2 FROM t1;
+CALL p1();
+s1 s2
+1 2
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
+CALL p1();
+s1 s2
+2 1
+DROP PROCEDURE p1;
+DROP VIEW v1;
+DROP TABLE t1;
+create table t1 (f1 int, f2 int);
+create view v1 as select f1 as f3, f2 as f1 from t1;
+insert into t1 values (1,3),(2,1),(3,2);
+select * from v1 order by f1;
+f3 f1
+2 1
+3 2
+1 3
+drop view v1;
+drop table t1;
+CREATE TABLE t1 (f1 char);
+INSERT INTO t1 VALUES ('A');
+CREATE VIEW v1 AS SELECT * FROM t1;
+INSERT INTO t1 VALUES('B');
+SELECT * FROM v1;
+f1
+A
+B
+SELECT * FROM t1;
+f1
+A
+B
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 ( bug_table_seq INTEGER NOT NULL);
+CREATE OR REPLACE VIEW v1 AS SELECT * from t1;
+DROP PROCEDURE IF EXISTS p1;
+Warnings:
+Note 1305 PROCEDURE p1 does not exist
+CREATE PROCEDURE p1 ( )
+BEGIN
+DO (SELECT @next := IFNULL(max(bug_table_seq),0) + 1 FROM v1);
+INSERT INTO t1 VALUES (1);
+END //
+CALL p1();
+DROP PROCEDURE p1;
+DROP VIEW v1;
+DROP TABLE t1;
+create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
+create view v1 as select * from t1;
+desc v1;
+Field Type Null Key Default Extra
+f1 tinyint(1) YES NULL
+f2 char(1) YES NULL
+f3 varchar(1) YES NULL
+f4 geometry YES NULL
+f5 datetime YES NULL
+drop view v1;
+drop table t1;
+create table t1(f1 datetime);
+insert into t1 values('2005.01.01 12:0:0');
+create view v1 as select f1, subtime(f1, '1:1:1') as sb from t1;
+select * from v1;
+f1 sb
+2005-01-01 12:00:00 2005-01-01 10:58:59
+drop view v1;
+drop table t1;
+CREATE TABLE t1 (
+aid int PRIMARY KEY,
+fn varchar(20) NOT NULL,
+ln varchar(20) NOT NULL
+);
+CREATE TABLE t2 (
+aid int NOT NULL,
+pid int NOT NULL
+);
+INSERT INTO t1 VALUES(1,'a','b'), (2,'c','d');
+INSERT INTO t2 values (1,1), (2,1), (2,2);
+CREATE VIEW v1 AS SELECT t1.*,t2.pid FROM t1,t2 WHERE t1.aid = t2.aid;
+SELECT pid,GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1) FROM t1,t2
+WHERE t1.aid = t2.aid GROUP BY pid;
+pid GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1)
+1 a b,c d
+2 c d
+SELECT pid,GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1) FROM v1 GROUP BY pid;
+pid GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1)
+1 a b,c d
+2 c d
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (id int PRIMARY KEY, f varchar(255));
+CREATE VIEW v1 AS SELECT id, f FROM t1 WHERE id <= 2;
+INSERT INTO t1 VALUES (2, 'foo2');
+INSERT INTO t1 VALUES (1, 'foo1');
+SELECT * FROM v1;
+id f
+1 foo1
+2 foo2
+SELECT * FROM v1;
+id f
+1 foo1
+2 foo2
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (pk int PRIMARY KEY, b int);
+CREATE TABLE t2 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE TABLE t3 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE TABLE t4 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE TABLE t5 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE VIEW v1 AS
+SELECT t1.pk as a FROM t1,t2,t3,t4,t5
+WHERE t1.b IS NULL AND
+t1.pk=t2.fk AND t2.pk=t3.fk AND t3.pk=t4.fk AND t4.pk=t5.fk;
+SELECT a FROM v1;
+a
+DROP VIEW v1;
+DROP TABLE t1,t2,t3,t4,t5;
+create view v1 as select timestampdiff(day,'1997-01-01 00:00:00','1997-01-02 00:00:00') as f1;
+select * from v1;
+f1
+1
+drop view v1;
+create table t1(a int);
+create procedure p1() create view v1 as select * from t1;
+drop table t1;
+call p1();
+ERROR 42S02: Table 'test.t1' doesn't exist
+call p1();
+ERROR 42S02: Table 'test.t1' doesn't exist
+drop procedure p1;
+create table t1 (f1 int);
+create table t2 (f1 int);
+insert into t1 values (1);
+insert into t2 values (2);
+create view v1 as select * from t1 union select * from t2 union all select * from t2;
+select * from v1;
+f1
+1
+2
+2
+drop view v1;
+drop table t1,t2;
+CREATE TEMPORARY TABLE t1 (a int);
+CREATE FUNCTION f1 () RETURNS int RETURN (SELECT COUNT(*) FROM t1);
+CREATE VIEW v1 AS SELECT f1();
+ERROR HY000: View's SELECT refers to a temporary table 't1'
+DROP FUNCTION f1;
+DROP TABLE t1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 (f4 CHAR(5));
+CREATE VIEW v1 AS SELECT * FROM t1;
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f4 char(5) YES NULL
+ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5);
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP TABLE t1;
+DROP VIEW v1;
+create table t1 (f1 char);
+create view v1 as select strcmp(f1,'a') from t1;
+select * from v1;
+strcmp(f1,'a')
+drop view v1;
+drop table t1;
+create table t1 (f1 int, f2 int,f3 int);
+insert into t1 values (1,10,20),(2,0,0);
+create view v1 as select * from t1;
+select if(sum(f1)>1,f2,f3) from v1 group by f1;
+if(sum(f1)>1,f2,f3)
+20
+0
+drop view v1;
+drop table t1;
+create table t1 (
+r_object_id char(16) NOT NULL,
+group_name varchar(32) NOT NULL
+) engine = InnoDB;
+create table t2 (
+r_object_id char(16) NOT NULL,
+i_position int(11) NOT NULL,
+users_names varchar(32) default NULL
+) Engine = InnoDB;
+create view v1 as select r_object_id, group_name from t1;
+create view v2 as select r_object_id, i_position, users_names from t2;
+create unique index r_object_id on t1(r_object_id);
+create index group_name on t1(group_name);
+create unique index r_object_id_i_position on t2(r_object_id,i_position);
+create index users_names on t2(users_names);
+insert into t1 values('120001a080000542','tstgroup1');
+insert into t2 values('120001a080000542',-1, 'guser01');
+insert into t2 values('120001a080000542',-2, 'guser02');
+select v1.r_object_id, v2.users_names from v1, v2
+where (v1.group_name='tstgroup1') and v2.r_object_id=v1.r_object_id
+order by users_names;
+r_object_id users_names
+120001a080000542 guser01
+120001a080000542 guser02
+drop view v1, v2;
+drop table t1, t2;
+create table t1 (s1 int);
+create view abc as select * from t1 as abc;
+drop table t1;
+drop view abc;
+create table t1(f1 char(1));
+create view v1 as select * from t1;
+select * from (select f1 as f2 from v1) v where v.f2='a';
+f2
+drop view v1;
+drop table t1;
+create view v1 as SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+select * from v1;
+CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+NULL
+drop view v1;
+CREATE TABLE t1 (date DATE NOT NULL);
+INSERT INTO t1 VALUES ('2005-09-06');
+CREATE VIEW v1 AS SELECT DAYNAME(date) FROM t1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select dayname(`t1`.`date`) AS `DAYNAME(date)` from `t1`
+CREATE VIEW v2 AS SELECT DAYOFWEEK(date) FROM t1;
+SHOW CREATE VIEW v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select dayofweek(`t1`.`date`) AS `DAYOFWEEK(date)` from `t1`
+CREATE VIEW v3 AS SELECT WEEKDAY(date) FROM t1;
+SHOW CREATE VIEW v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select weekday(`t1`.`date`) AS `WEEKDAY(date)` from `t1`
+SELECT DAYNAME('2005-09-06');
+DAYNAME('2005-09-06')
+Tuesday
+SELECT DAYNAME(date) FROM t1;
+DAYNAME(date)
+Tuesday
+SELECT * FROM v1;
+DAYNAME(date)
+Tuesday
+SELECT DAYOFWEEK('2005-09-06');
+DAYOFWEEK('2005-09-06')
+3
+SELECT DAYOFWEEK(date) FROM t1;
+DAYOFWEEK(date)
+3
+SELECT * FROM v2;
+DAYOFWEEK(date)
+3
+SELECT WEEKDAY('2005-09-06');
+WEEKDAY('2005-09-06')
+1
+SELECT WEEKDAY(date) FROM t1;
+WEEKDAY(date)
+1
+SELECT * FROM v3;
+WEEKDAY(date)
+1
+DROP TABLE t1;
+DROP VIEW v1, v2, v3;
+CREATE TABLE t1 ( a int, b int );
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+CREATE VIEW v1 AS SELECT a,b FROM t1;
+SELECT t1.a FROM t1 GROUP BY t1.a HAVING a > 1;
+a
+2
+3
+SELECT v1.a FROM v1 GROUP BY v1.a HAVING a > 1;
+a
+2
+3
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 ( a int, b int );
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+CREATE VIEW v1 AS SELECT a,b FROM t1;
+SELECT t1.a FROM t1 GROUP BY t1.a HAVING t1.a > 1;
+a
+2
+3
+SELECT v1.a FROM v1 GROUP BY v1.a HAVING v1.a > 1;
+a
+2
+3
+SELECT t_1.a FROM t1 AS t_1 GROUP BY t_1.a HAVING t_1.a IN (1,2,3);
+a
+1
+2
+3
+SELECT v_1.a FROM v1 AS v_1 GROUP BY v_1.a HAVING v_1.a IN (1,2,3);
+a
+1
+2
+3
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, b INT, INDEX(a,b));
+CREATE TABLE t2 LIKE t1;
+CREATE TABLE t3 (a INT);
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+INSERT INTO t2 VALUES (1,1),(2,2),(3,3);
+INSERT INTO t3 VALUES (1),(2),(3);
+CREATE VIEW v1 AS SELECT t1.* FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
+CREATE VIEW v2 AS SELECT t3.* FROM t1,t3 WHERE t1.a=t3.a;
+EXPLAIN SELECT t1.* FROM t1 JOIN t2 WHERE t1.a=t2.a AND t1.b=t2.b AND t1.a=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
+1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
+EXPLAIN SELECT * FROM v1 WHERE a=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
+1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
+EXPLAIN SELECT * FROM v2 WHERE a=1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
+1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3;
+create table t1 (f1 int);
+create view v1 as select t1.f1 as '123
+456' from t1;
+select * from v1;
+123
+456
+drop view v1;
+drop table t1;
+create table t1 (f1 int, f2 int);
+insert into t1 values(1,1),(1,2),(1,3);
+create view v1 as select f1 ,group_concat(f2 order by f2 asc) from t1 group by f1;
+create view v2 as select f1 ,group_concat(f2 order by f2 desc) from t1 group by f1;
+select * from v1;
+f1 group_concat(f2 order by f2 asc)
+1 1,2,3
+select * from v2;
+f1 group_concat(f2 order by f2 desc)
+1 3,2,1
+drop view v1,v2;
+drop table t1;
+create table t1 (x int, y int);
+create table t2 (x int, y int, z int);
+create table t3 (x int, y int, z int);
+create table t4 (x int, y int, z int);
+create view v1 as
+select t1.x
+from (
+(t1 join t2 on ((t1.y = t2.y)))
+join
+(t3 left join t4 on (t3.y = t4.y) and (t3.z = t4.z))
+);
+prepare stmt1 from "select count(*) from v1 where x = ?";
+set @parm1=1;
+execute stmt1 using @parm1;
+count(*)
+0
+execute stmt1 using @parm1;
+count(*)
+0
+drop view v1;
+drop table t1,t2,t3,t4;
+CREATE TABLE t1(id INT);
+CREATE VIEW v1 AS SELECT id FROM t1;
+OPTIMIZE TABLE v1;
+Table Op Msg_type Msg_text
+test.v1 optimize Error 'test.v1' is not BASE TABLE
+test.v1 optimize error Corrupt
+ANALYZE TABLE v1;
+Table Op Msg_type Msg_text
+test.v1 analyze Error 'test.v1' is not BASE TABLE
+test.v1 analyze error Corrupt
+REPAIR TABLE v1;
+Table Op Msg_type Msg_text
+test.v1 repair Error 'test.v1' is not BASE TABLE
+test.v1 repair error Corrupt
+DROP TABLE t1;
+OPTIMIZE TABLE v1;
+Table Op Msg_type Msg_text
+test.v1 optimize Error 'test.v1' is not BASE TABLE
+test.v1 optimize error Corrupt
+ANALYZE TABLE v1;
+Table Op Msg_type Msg_text
+test.v1 analyze Error 'test.v1' is not BASE TABLE
+test.v1 analyze error Corrupt
+REPAIR TABLE v1;
+Table Op Msg_type Msg_text
+test.v1 repair Error 'test.v1' is not BASE TABLE
+test.v1 repair error Corrupt
+DROP VIEW v1;
+create definer = current_user() sql security invoker view v1 as select 1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
+drop view v1;
+create definer = current_user sql security invoker view v1 as select 1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
+drop view v1;
+create table t1 (id INT, primary key(id));
+insert into t1 values (1),(2);
+create view v1 as select * from t1;
+explain select id from v1 order by id;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 2 Using index
+drop view v1;
+drop table t1;
+create table t1(f1 int, f2 int);
+insert into t1 values (null, 10), (null,2);
+select f1, sum(f2) from t1 group by f1;
+f1 sum(f2)
+NULL 12
+create view v1 as select * from t1;
+select f1, sum(f2) from v1 group by f1;
+f1 sum(f2)
+NULL 12
+drop view v1;
+drop table t1;
+drop procedure if exists p1;
+create procedure p1 () deterministic
+begin
+create view v1 as select 1;
+end;
+//
+call p1();
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
+drop view v1;
+drop procedure p1;
+CREATE VIEW v1 AS SELECT 42 AS Meaning;
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1() RETURNS INTEGER
+BEGIN
+DECLARE retn INTEGER;
+SELECT Meaning FROM v1 INTO retn;
+RETURN retn;
+END
+//
+CREATE VIEW v2 AS SELECT f1();
+select * from v2;
+f1()
+42
+drop view v2,v1;
+drop function f1;
+create table t1 (id numeric, warehouse_id numeric);
+create view v1 as select id from t1;
+create view v2 as
+select t1.warehouse_id, v1.id as receipt_id
+from t1, v1 where t1.id = v1.id;
+insert into t1 (id, warehouse_id) values(3, 2);
+insert into t1 (id, warehouse_id) values(4, 2);
+insert into t1 (id, warehouse_id) values(5, 1);
+select v2.receipt_id as alias1, v2.receipt_id as alias2 from v2
+order by v2.receipt_id;
+alias1 alias2
+3 3
+4 4
+5 5
+drop view v2, v1;
+drop table t1;
+CREATE TABLE t1 (a int PRIMARY KEY, b int);
+INSERT INTO t1 VALUES (2,20), (3,10), (1,10), (0,30), (5,10);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT MAX(a) FROM t1;
+MAX(a)
+5
+SELECT MAX(a) FROM v1;
+MAX(a)
+5
+EXPLAIN SELECT MAX(a) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+EXPLAIN SELECT MAX(a) FROM v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+SELECT MIN(a) FROM t1;
+MIN(a)
+0
+SELECT MIN(a) FROM v1;
+MIN(a)
+0
+EXPLAIN SELECT MIN(a) FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+EXPLAIN SELECT MIN(a) FROM v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (x varchar(10));
+INSERT INTO t1 VALUES (null), ('foo'), ('bar'), (null);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT IF(x IS NULL, 'blank', 'not blank') FROM v1 GROUP BY x;
+IF(x IS NULL, 'blank', 'not blank')
+blank
+not blank
+not blank
+SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM t1 GROUP BY x;
+x
+blank
+not blank
+not blank
+Warnings:
+Warning 1052 Column 'x' in group statement is ambiguous
+SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM v1;
+x
+blank
+not blank
+not blank
+blank
+SELECT IF(x IS NULL, 'blank', 'not blank') AS y FROM v1 GROUP BY y;
+y
+blank
+not blank
+SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM v1 GROUP BY x;
+x
+blank
+not blank
+not blank
+Warnings:
+Warning 1052 Column 'x' in group statement is ambiguous
+DROP VIEW v1;
+DROP TABLE t1;
+drop table if exists t1;
+drop view if exists v1;
+create table t1 (id int);
+create view v1 as select * from t1;
+drop table t1;
+show create view v1;
+drop view v1;
+//
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
+create table t1(f1 int, f2 int);
+create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb
+.f1 and ta.f2=tb.f2;
+insert into t1 values(1,1),(2,2);
+create view v2 as select * from v1 where a > 1 with local check option;
+select * from v2;
+a b
+2 2
+update v2 set b=3 where a=2;
+select * from v2;
+a b
+3 3
+drop view v2, v1;
+drop table t1;
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1), (2);
+CREATE VIEW v1 AS SELECT SQRT(a) my_sqrt FROM t1;
+SELECT my_sqrt FROM v1 ORDER BY my_sqrt;
+my_sqrt
+1
+1.4142135623731
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (id int PRIMARY KEY);
+CREATE TABLE t2 (id int PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (3);
+INSERT INTO t2 VALUES (1), (2), (3);
+CREATE VIEW v2 AS SELECT * FROM t2;
+SELECT COUNT(*) FROM t1 LEFT JOIN t2 ON t1.id=t2.id;
+COUNT(*)
+2
+SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id;
+id id
+1 1
+3 3
+SELECT COUNT(*) FROM t1 LEFT JOIN v2 ON t1.id=v2.id;
+COUNT(*)
+2
+DROP VIEW v2;
+DROP TABLE t1, t2;
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY,
+td date DEFAULT NULL, KEY idx(td));
+INSERT INTO t1 VALUES
+(1, '2005-01-01'), (2, '2005-01-02'), (3, '2005-01-02'),
+(4, '2005-01-03'), (5, '2005-01-04'), (6, '2005-01-05'),
+(7, '2005-01-05'), (8, '2005-01-05'), (9, '2005-01-06');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM t1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
+id td
+2 2005-01-02
+3 2005-01-02
+4 2005-01-03
+5 2005-01-04
+SELECT * FROM v1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
+id td
+2 2005-01-02
+3 2005-01-02
+4 2005-01-03
+5 2005-01-04
+DROP VIEW v1;
+DROP TABLE t1;
+create table t1 (a int);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+drop table t1;
+rename table v2 to t1;
+select * from v1;
+ERROR HY000: `test`.`v1` contains view recursion
+drop view t1, v1;
+create table t1 (a int);
+create function f1() returns int
+begin
+declare mx int;
+select max(a) from t1 into mx;
+return mx;
+end//
+create view v1 as select f1() as a;
+create view v2 as select * from v1;
+drop table t1;
+rename table v2 to t1;
+select * from v1;
+ERROR HY000: Recursive stored functions and triggers are not allowed.
+drop function f1;
+drop view t1, v1;
+create table t1 (dt datetime);
+insert into t1 values (20040101000000), (20050101000000), (20060101000000);
+create view v1 as select convert_tz(dt, 'UTC', 'Europe/Moscow') as ldt from t1;
+select * from v1;
+ldt
+2004-01-01 03:00:00
+2005-01-01 03:00:00
+2006-01-01 03:00:00
+drop view v1;
+create view v1 as select * from t1 where convert_tz(dt, 'UTC', 'Europe/Moscow') >= 20050101000000;
+select * from v1;
+dt
+2005-01-01 00:00:00
+2006-01-01 00:00:00
+create view v2 as select * from v1 where dt < 20060101000000;
+select * from v2;
+dt
+2005-01-01 00:00:00
+drop view v2;
+create view v2 as select convert_tz(dt, 'UTC', 'Europe/Moscow') as ldt from v1;
+select * from v2;
+ldt
+2005-01-01 03:00:00
+2006-01-01 03:00:00
+drop view v1, v2;
+drop table t1;
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, d datetime);
+CREATE VIEW v1 AS
+SELECT id, date(d) + INTERVAL TIME_TO_SEC(d) SECOND AS t, COUNT(*)
+FROM t1 GROUP BY id, t;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`id` AS `id`,(cast(`t1`.`d` as date) + interval time_to_sec(`t1`.`d`) second) AS `t`,count(0) AS `COUNT(*)` from `t1` group by `t1`.`id`,(cast(`t1`.`d` as date) + interval time_to_sec(`t1`.`d`) second)
+SELECT * FROM v1;
+id t COUNT(*)
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (i INT, j BIGINT);
+INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2);
+CREATE VIEW v1 AS SELECT MIN(j) AS j FROM t1;
+CREATE VIEW v2 AS SELECT MIN(i) FROM t1 WHERE j = ( SELECT * FROM v1 );
+SELECT * FROM v2;
+MIN(i)
+1
+DROP VIEW v2, v1;
+DROP TABLE t1;
+CREATE TABLE t1(
+fName varchar(25) NOT NULL,
+lName varchar(25) NOT NULL,
+DOB date NOT NULL,
+test_date date NOT NULL,
+uID int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY);
+INSERT INTO t1(fName, lName, DOB, test_date) VALUES
+('Hank', 'Hill', '1964-09-29', '2007-01-01'),
+('Tom', 'Adams', '1908-02-14', '2007-01-01'),
+('Homer', 'Simpson', '1968-03-05', '2007-01-01');
+CREATE VIEW v1 AS
+SELECT (year(test_date)-year(DOB)) AS Age
+FROM t1 HAVING Age < 75;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(`t1`.`test_date`) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75)
+SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75;
+Age
+43
+39
+SELECT * FROM v1;
+Age
+43
+39
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
+INSERT INTO t1(id) VALUES (1), (2), (3), (4);
+INSERT INTO t1 VALUES (5,'yyy'), (6,'yyy');
+SELECT * FROM t1;
+id a
+1 xxx
+2 xxx
+3 xxx
+4 xxx
+5 yyy
+6 yyy
+CREATE VIEW v1(a, m) AS SELECT a, MIN(id) FROM t1 GROUP BY a;
+SELECT * FROM v1;
+a m
+xxx 1
+yyy 5
+CREATE TABLE t2 SELECT * FROM v1;
+INSERT INTO t2(m) VALUES (0);
+SELECT * FROM t2;
+a m
+xxx 1
+yyy 5
+xxx 0
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (id int PRIMARY KEY, e ENUM('a','b') NOT NULL DEFAULT 'b');
+INSERT INTO t1(id) VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (4,'a');
+SELECT * FROM t1;
+id e
+1 b
+2 b
+3 b
+4 a
+CREATE VIEW v1(m, e) AS SELECT MIN(id), e FROM t1 GROUP BY e;
+CREATE TABLE t2 SELECT * FROM v1;
+SELECT * FROM t2;
+m e
+4 a
+1 b
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a INT NOT NULL, b INT NULL DEFAULT NULL);
+CREATE VIEW v1 AS SELECT a, b FROM t1;
+INSERT INTO v1 (b) VALUES (2);
+Warnings:
+Warning 1423 Field of view 'test.v1' underlying table doesn't have a default value
+SET SQL_MODE = STRICT_ALL_TABLES;
+INSERT INTO v1 (b) VALUES (4);
+ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
+SET SQL_MODE = '';
+SELECT * FROM t1;
+a b
+0 2
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (firstname text, surname text);
+INSERT INTO t1 VALUES
+("Bart","Simpson"),("Milhouse","van Houten"),("Montgomery","Burns");
+CREATE VIEW v1 AS SELECT CONCAT(firstname," ",surname) AS name FROM t1;
+SELECT CONCAT(LEFT(name,LENGTH(name)-INSTR(REVERSE(name)," ")),
+LEFT(name,LENGTH(name)-INSTR(REVERSE(name)," "))) AS f1
+FROM v1;
+f1
+BartBart
+Milhouse vanMilhouse van
+MontgomeryMontgomery
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (i int, j int);
+CREATE VIEW v1 AS SELECT COALESCE(i,j) FROM t1;
+DESCRIBE v1;
+Field Type Null Key Default Extra
+COALESCE(i,j) bigint(11) YES NULL
+CREATE TABLE t2 SELECT COALESCE(i,j) FROM t1;
+DESCRIBE t2;
+Field Type Null Key Default Extra
+COALESCE(i,j) int(11) YES NULL
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (s varchar(10));
+INSERT INTO t1 VALUES ('yadda'), ('yady');
+SELECT TRIM(BOTH 'y' FROM s) FROM t1;
+TRIM(BOTH 'y' FROM s)
+adda
+ad
+CREATE VIEW v1 AS SELECT TRIM(BOTH 'y' FROM s) FROM t1;
+SELECT * FROM v1;
+TRIM(BOTH 'y' FROM s)
+adda
+ad
+DROP VIEW v1;
+SELECT TRIM(LEADING 'y' FROM s) FROM t1;
+TRIM(LEADING 'y' FROM s)
+adda
+ady
+CREATE VIEW v1 AS SELECT TRIM(LEADING 'y' FROM s) FROM t1;
+SELECT * FROM v1;
+TRIM(LEADING 'y' FROM s)
+adda
+ady
+DROP VIEW v1;
+SELECT TRIM(TRAILING 'y' FROM s) FROM t1;
+TRIM(TRAILING 'y' FROM s)
+yadda
+yad
+CREATE VIEW v1 AS SELECT TRIM(TRAILING 'y' FROM s) FROM t1;
+SELECT * FROM v1;
+TRIM(TRAILING 'y' FROM s)
+yadda
+yad
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (x INT, y INT);
+CREATE ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select `t1`.`x` AS `x` from `t1`
+ALTER VIEW v1 AS SELECT x, y FROM t1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select `t1`.`x` AS `x`,`t1`.`y` AS `y` from `t1`
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (s1 char);
+INSERT INTO t1 VALUES ('Z');
+CREATE VIEW v1 AS SELECT s1 collate latin1_german1_ci AS col FROM t1;
+CREATE VIEW v2 (col) AS SELECT s1 collate latin1_german1_ci FROM t1;
+INSERT INTO v1 (col) VALUES ('b');
+INSERT INTO v2 (col) VALUES ('c');
+SELECT s1 FROM t1;
+s1
+Z
+b
+c
+DROP VIEW v1, v2;
+DROP TABLE t1;
+CREATE TABLE t1 (id INT);
+CREATE VIEW v1 AS SELECT id FROM t1;
+SHOW TABLES;
+Tables_in_test
+t1
+v1
+DROP VIEW v2,v1;
+ERROR 42S02: Unknown table 'v2'
+SHOW TABLES;
+Tables_in_test
+t1
+CREATE VIEW v1 AS SELECT id FROM t1;
+DROP VIEW t1,v1;
+ERROR HY000: 'test.t1' is not VIEW
+SHOW TABLES;
+Tables_in_test
+t1
+DROP TABLE t1;
+DROP VIEW IF EXISTS v1;
+CREATE DATABASE bug21261DB;
+USE bug21261DB;
+CREATE TABLE t1 (x INT);
+CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1;
+GRANT INSERT, UPDATE ON v1 TO 'user21261'@'localhost';
+GRANT INSERT, UPDATE ON t1 TO 'user21261'@'localhost';
+CREATE TABLE t2 (y INT);
+GRANT SELECT ON t2 TO 'user21261'@'localhost';
+INSERT INTO v1 (x) VALUES (5);
+UPDATE v1 SET x=1;
+GRANT SELECT ON v1 TO 'user21261'@'localhost';
+GRANT SELECT ON t1 TO 'user21261'@'localhost';
+UPDATE v1,t2 SET x=1 WHERE x=y;
+SELECT * FROM t1;
+x
+1
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user21261'@'localhost';
+DROP USER 'user21261'@'localhost';
+DROP VIEW v1;
+DROP TABLE t1;
+DROP DATABASE bug21261DB;
+USE test;
+create table t1 (f1 datetime);
+create view v1 as select * from t1 where f1 between now() and now() + interval 1 minute;
+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` where (`t1`.`f1` between now() and (now() + interval 1 minute))
+drop view v1;
+drop table t1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE TABLE t1(a INT, b INT);
+CREATE DEFINER=1234567890abcdefGHIKL@localhost
+VIEW v1 AS SELECT a FROM t1;
+ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16)
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+VIEW v2 AS SELECT b FROM t1;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+DROP TABLE t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP VIEW IF EXISTS v1, v2;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (i INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+INSERT INTO v1 VALUES (0);
+RETURN 0;
+END |
+SELECT f1();
+f1()
+0
+CREATE ALGORITHM=TEMPTABLE VIEW v2 AS SELECT * FROM t1;
+CREATE FUNCTION f2() RETURNS INT
+BEGIN
+INSERT INTO v2 VALUES (0);
+RETURN 0;
+END |
+SELECT f2();
+ERROR HY000: The target table v2 of the INSERT is not insertable-into
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP VIEW v1, v2;
+DROP TABLE t1;
+CREATE TABLE t1 (s1 int);
+CREATE VIEW v1 AS SELECT * FROM t1;
+EXPLAIN SELECT * FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
+EXPLAIN SELECT * FROM v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
+INSERT INTO t1 VALUES (1), (3), (2);
+EXPLAIN SELECT * FROM t1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t ALL NULL NULL NULL NULL 3 Using where
+2 SUBQUERY t1 ALL NULL NULL NULL NULL 3
+EXPLAIN SELECT * FROM v1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
+2 SUBQUERY t1 ALL NULL NULL NULL NULL 3
+DROP VIEW v1;
+DROP TABLE t1;
+create table t1 (s1 int);
+create view v1 as select s1 as a, s1 as b from t1;
+insert into v1 values (1,1);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+update v1 set a = 5;
+drop view v1;
+drop table t1;
+CREATE TABLE t1(pk int PRIMARY KEY);
+CREATE TABLE t2(pk int PRIMARY KEY, fk int, ver int, org int);
+CREATE ALGORITHM=MERGE VIEW v1 AS
+SELECT t1.*
+FROM t1 JOIN t2
+ON t2.fk = t1.pk AND
+t2.ver = (SELECT MAX(t.ver) FROM t2 t WHERE t.org = t2.org);
+SHOW WARNINGS;
+Level Code Message
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`pk` AS `pk` from (`t1` join `t2` on(((`t2`.`fk` = `t1`.`pk`) and (`t2`.`ver` = (select max(`t`.`ver`) AS `MAX(t.ver)` from `t2` `t` where (`t`.`org` = `t2`.`org`))))))
+DROP VIEW v1;
+DROP TABLE t1, t2;
+DROP FUNCTION IF EXISTS f1;
+DROP VIEW IF EXISTS v1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (i INT);
+INSERT INTO t1 VALUES (1);
+CREATE VIEW v1 AS SELECT MAX(i) FROM t1;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+SET NEW.i = (SELECT * FROM v1) + 1;
+INSERT INTO t1 VALUES (1);
+CREATE FUNCTION f1() RETURNS INT RETURN (SELECT * FROM v1);
+UPDATE t1 SET i= f1();
+DROP FUNCTION f1;
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL);
+CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION;
+INSERT INTO v1 (val) VALUES (2);
+INSERT INTO v1 (val) VALUES (4);
+INSERT INTO v1 (val) VALUES (6);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+UPDATE v1 SET val=6 WHERE id=2;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+DROP VIEW v1;
+DROP TABLE t1;
+DROP VIEW IF EXISTS v1, v2;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
+CREATE VIEW v1 AS SELECT j FROM t1;
+CREATE VIEW v2 AS SELECT * FROM t1;
+INSERT INTO t1 (j) VALUES (1);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+INSERT INTO v1 (j) VALUES (2);
+# LAST_INSERT_ID() should not change.
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1
+INSERT INTO v2 (j) VALUES (3);
+# LAST_INSERT_ID() should be updated.
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3
+INSERT INTO v1 (j) SELECT j FROM t1;
+# LAST_INSERT_ID() should not change.
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3
+SELECT * FROM t1;
+i j
+1 1
+2 2
+3 3
+4 1
+5 2
+6 3
+DROP VIEW v1, v2;
+DROP TABLE t1;
+CREATE VIEW v AS SELECT !0 * 5 AS x FROM DUAL;
+SHOW CREATE VIEW v;
+View Create View
+v CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select ((not(0)) * 5) AS `x`
+SELECT !0 * 5 AS x FROM DUAL;
+x
+5
+SELECT * FROM v;
+x
+5
+DROP VIEW v;
+DROP VIEW IF EXISTS v1;
+CREATE VIEW v1 AS SELECT 'The\ZEnd';
+SELECT * FROM v1;
+TheEnd
+TheEnd
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'The\ZEnd' AS `TheEnd`
+DROP VIEW v1;
+CREATE TABLE t1 (mydate DATETIME);
+INSERT INTO t1 VALUES
+('2007-01-01'), ('2007-01-02'), ('2007-01-30'), ('2007-01-31');
+CREATE VIEW v1 AS SELECT mydate from t1;
+SELECT * FROM t1 WHERE mydate BETWEEN '2007-01-01' AND '2007-01-31';
+mydate
+2007-01-01 00:00:00
+2007-01-02 00:00:00
+2007-01-30 00:00:00
+2007-01-31 00:00:00
+SELECT * FROM v1 WHERE mydate BETWEEN '2007-01-01' AND '2007-01-31';
+mydate
+2007-01-01 00:00:00
+2007-01-02 00:00:00
+2007-01-30 00:00:00
+2007-01-31 00:00:00
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+INSERT INTO t1 VALUES (1), (2);
+INSERT INTO t2 VALUES (1), (2);
+CREATE VIEW v1 AS
+SELECT t2.b FROM t1,t2 WHERE t1.a = t2.b WITH CHECK OPTION;
+SELECT * FROM v1;
+b
+1
+2
+UPDATE v1 SET b=3;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+SELECT * FROM v1;
+b
+1
+2
+SELECT * FROM t1;
+a
+1
+2
+SELECT * FROM t2;
+b
+1
+2
+DROP VIEW v1;
+DROP TABLE t1,t2;
+create table t1(f1 int, f2 int);
+insert into t1 values(1,2),(1,3),(1,1),(2,3),(2,1),(2,2);
+select * from t1;
+f1 f2
+1 2
+1 3
+1 1
+2 3
+2 1
+2 2
+create view v1 as select * from t1 order by f2;
+select * from v1;
+f1 f2
+1 1
+2 1
+1 2
+2 2
+1 3
+2 3
+explain extended select * from v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using filesort
+Warnings:
+Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2` from `test`.`t1` order by `test`.`t1`.`f2`
+select * from v1 order by f1;
+f1 f2
+1 1
+1 2
+1 3
+2 1
+2 2
+2 3
+explain extended select * from v1 order by f1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using filesort
+Warnings:
+Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2` from `test`.`t1` order by `test`.`t1`.`f1`,`test`.`t1`.`f2`
+drop view v1;
+drop table t1;
+CREATE TABLE t1 (
+id int(11) NOT NULL PRIMARY KEY,
+country varchar(32),
+code int(11) default NULL
+);
+INSERT INTO t1 VALUES
+(1,'ITALY',100),(2,'ITALY',200),(3,'FRANCE',100), (4,'ITALY',100);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT code, COUNT(DISTINCT country) FROM t1 GROUP BY code ORDER BY MAX(id);
+code COUNT(DISTINCT country)
+200 1
+100 2
+SELECT code, COUNT(DISTINCT country) FROM v1 GROUP BY code ORDER BY MAX(id);
+code COUNT(DISTINCT country)
+200 1
+100 2
+DROP VIEW v1;
+DROP TABLE t1;
+DROP VIEW IF EXISTS v1;
+SELECT * FROM (SELECT 1) AS t;
+1
+1
+CREATE VIEW v1 AS SELECT * FROM (SELECT 1) AS t;
+ERROR HY000: View's SELECT contains a subquery in the FROM clause
+# Previously the following would fail.
+SELECT * FROM (SELECT 1) AS t;
+1
+1
+drop view if exists view_24532_a;
+drop view if exists view_24532_b;
+drop table if exists table_24532;
+create table table_24532 (
+a int,
+b bigint,
+c int(4),
+d bigint(48)
+);
+create view view_24532_a as
+select
+a IS TRUE,
+a IS NOT TRUE,
+a IS FALSE,
+a IS NOT FALSE,
+a IS UNKNOWN,
+a IS NOT UNKNOWN,
+a is NULL,
+a IS NOT NULL,
+ISNULL(a),
+b IS TRUE,
+b IS NOT TRUE,
+b IS FALSE,
+b IS NOT FALSE,
+b IS UNKNOWN,
+b IS NOT UNKNOWN,
+b is NULL,
+b IS NOT NULL,
+ISNULL(b),
+c IS TRUE,
+c IS NOT TRUE,
+c IS FALSE,
+c IS NOT FALSE,
+c IS UNKNOWN,
+c IS NOT UNKNOWN,
+c is NULL,
+c IS NOT NULL,
+ISNULL(c),
+d IS TRUE,
+d IS NOT TRUE,
+d IS FALSE,
+d IS NOT FALSE,
+d IS UNKNOWN,
+d IS NOT UNKNOWN,
+d is NULL,
+d IS NOT NULL,
+ISNULL(d)
+from table_24532;
+describe view_24532_a;
+Field Type Null Key Default Extra
+a IS TRUE int(1) NO 0
+a IS NOT TRUE int(1) NO 0
+a IS FALSE int(1) NO 0
+a IS NOT FALSE int(1) NO 0
+a IS UNKNOWN int(1) NO 0
+a IS NOT UNKNOWN int(1) NO 0
+a is NULL int(1) NO 0
+a IS NOT NULL int(1) NO 0
+ISNULL(a) int(1) NO 0
+b IS TRUE int(1) NO 0
+b IS NOT TRUE int(1) NO 0
+b IS FALSE int(1) NO 0
+b IS NOT FALSE int(1) NO 0
+b IS UNKNOWN int(1) NO 0
+b IS NOT UNKNOWN int(1) NO 0
+b is NULL int(1) NO 0
+b IS NOT NULL int(1) NO 0
+ISNULL(b) int(1) NO 0
+c IS TRUE int(1) NO 0
+c IS NOT TRUE int(1) NO 0
+c IS FALSE int(1) NO 0
+c IS NOT FALSE int(1) NO 0
+c IS UNKNOWN int(1) NO 0
+c IS NOT UNKNOWN int(1) NO 0
+c is NULL int(1) NO 0
+c IS NOT NULL int(1) NO 0
+ISNULL(c) int(1) NO 0
+d IS TRUE int(1) NO 0
+d IS NOT TRUE int(1) NO 0
+d IS FALSE int(1) NO 0
+d IS NOT FALSE int(1) NO 0
+d IS UNKNOWN int(1) NO 0
+d IS NOT UNKNOWN int(1) NO 0
+d is NULL int(1) NO 0
+d IS NOT NULL int(1) NO 0
+ISNULL(d) int(1) NO 0
+create view view_24532_b as
+select
+a IS TRUE,
+if(ifnull(a, 0), 1, 0) as old_istrue,
+a IS NOT TRUE,
+if(ifnull(a, 0), 0, 1) as old_isnottrue,
+a IS FALSE,
+if(ifnull(a, 1), 0, 1) as old_isfalse,
+a IS NOT FALSE,
+if(ifnull(a, 1), 1, 0) as old_isnotfalse
+from table_24532;
+describe view_24532_b;
+Field Type Null Key Default Extra
+a IS TRUE int(1) NO 0
+old_istrue int(1) NO 0
+a IS NOT TRUE int(1) NO 0
+old_isnottrue int(1) NO 0
+a IS FALSE int(1) NO 0
+old_isfalse int(1) NO 0
+a IS NOT FALSE int(1) NO 0
+old_isnotfalse int(1) NO 0
+show create view view_24532_b;
+View Create View
+view_24532_b CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_24532_b` AS select (`table_24532`.`a` is true) AS `a IS TRUE`,if(ifnull(`table_24532`.`a`,0),1,0) AS `old_istrue`,(`table_24532`.`a` is not true) AS `a IS NOT TRUE`,if(ifnull(`table_24532`.`a`,0),0,1) AS `old_isnottrue`,(`table_24532`.`a` is false) AS `a IS FALSE`,if(ifnull(`table_24532`.`a`,1),0,1) AS `old_isfalse`,(`table_24532`.`a` is not false) AS `a IS NOT FALSE`,if(ifnull(`table_24532`.`a`,1),1,0) AS `old_isnotfalse` from `table_24532`
+insert into table_24532 values (0, 0, 0, 0);
+select * from view_24532_b;
+a IS TRUE old_istrue a IS NOT TRUE old_isnottrue a IS FALSE old_isfalse a IS NOT FALSE old_isnotfalse
+0 0 1 1 1 1 0 0
+update table_24532 set a=1;
+select * from view_24532_b;
+a IS TRUE old_istrue a IS NOT TRUE old_isnottrue a IS FALSE old_isfalse a IS NOT FALSE old_isnotfalse
+1 1 0 0 0 0 1 1
+update table_24532 set a=NULL;
+select * from view_24532_b;
+a IS TRUE old_istrue a IS NOT TRUE old_isnottrue a IS FALSE old_isfalse a IS NOT FALSE old_isnotfalse
+0 0 1 1 0 0 1 1
+drop view view_24532_a;
+drop view view_24532_b;
+drop table table_24532;
+CREATE TABLE t1 (
+lid int NOT NULL PRIMARY KEY,
+name char(10) NOT NULL
+);
+INSERT INTO t1 (lid, name) VALUES
+(1, 'YES'), (2, 'NO');
+CREATE TABLE t2 (
+id int NOT NULL PRIMARY KEY,
+gid int NOT NULL,
+lid int NOT NULL,
+dt date
+);
+INSERT INTO t2 (id, gid, lid, dt) VALUES
+(1, 1, 1, '2007-01-01'),(2, 1, 2, '2007-01-02'),
+(3, 2, 2, '2007-02-01'),(4, 2, 1, '2007-02-02');
+SELECT DISTINCT t2.gid AS lgid,
+(SELECT t1.name FROM t1, t2
+WHERE t1.lid = t2.lid AND t2.gid = lgid
+ORDER BY t2.dt DESC LIMIT 1
+) as clid
+FROM t2;
+lgid clid
+1 NO
+2 YES
+CREATE VIEW v1 AS
+SELECT DISTINCT t2.gid AS lgid,
+(SELECT t1.name FROM t1, t2
+WHERE t1.lid = t2.lid AND t2.gid = lgid
+ORDER BY t2.dt DESC LIMIT 1
+) as clid
+FROM t2;
+SELECT * FROM v1;
+lgid clid
+1 NO
+2 YES
+DROP VIEW v1;
+DROP table t1,t2;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1),(2),(3);
+CREATE VIEW v1 AS SELECT a FROM t1 ORDER BY a;
+SELECT * FROM t1 UNION SELECT * FROM v1;
+a
+1
+2
+3
+EXPLAIN SELECT * FROM t1 UNION SELECT * FROM v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3
+2 UNION t1 ALL NULL NULL NULL NULL 3
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
+SELECT * FROM v1 UNION SELECT * FROM t1;
+a
+1
+2
+3
+EXPLAIN SELECT * FROM v1 UNION SELECT * FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3
+2 UNION t1 ALL NULL NULL NULL NULL 3
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
+SELECT * FROM t1 UNION SELECT * FROM v1 ORDER BY a;
+a
+1
+2
+3
+EXPLAIN SELECT * FROM t1 UNION SELECT * FROM v1 ORDER BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3
+2 UNION t1 ALL NULL NULL NULL NULL 3
+NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE VIEW v1 AS SELECT CAST( 1.23456789 AS DECIMAL( 7,5 ) ) AS col;
+SELECT * FROM v1;
+col
+1.23457
+DESCRIBE v1;
+Field Type Null Key Default Extra
+col decimal(7,5) NO 0.00000
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT CAST(1.23456789 AS DECIMAL(8,0)) AS col;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1.23456789 as decimal(8,0)) AS `col`
+DROP VIEW v1;
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (b INT, c INT DEFAULT 0);
+INSERT INTO t1 (a) VALUES (1), (2);
+INSERT INTO t2 (b) VALUES (1), (2);
+CREATE VIEW v1 AS SELECT t2.b,t2.c FROM t1, t2
+WHERE t1.a=t2.b AND t2.b < 3 WITH CHECK OPTION;
+SELECT * FROM v1;
+b c
+1 0
+2 0
+UPDATE v1 SET c=1 WHERE b=1;
+SELECT * FROM v1;
+b c
+1 1
+2 0
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (id int);
+CREATE TABLE t2 (id int, c int DEFAULT 0);
+INSERT INTO t1 (id) VALUES (1);
+INSERT INTO t2 (id) VALUES (1);
+CREATE VIEW v1 AS
+SELECT t2.c FROM t1, t2
+WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
+UPDATE v1 SET c=1;
+DROP VIEW v1;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a1 INT, c INT DEFAULT 0);
+CREATE TABLE t2 (a2 INT);
+CREATE TABLE t3 (a3 INT);
+CREATE TABLE t4 (a4 INT);
+INSERT INTO t1 (a1) VALUES (1),(2);
+INSERT INTO t2 (a2) VALUES (1),(2);
+INSERT INTO t3 (a3) VALUES (1),(2);
+INSERT INTO t4 (a4) VALUES (1),(2);
+CREATE VIEW v1 AS
+SELECT t1.a1, t1.c FROM t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3
+WITH CHECK OPTION;
+SELECT * FROM v1;
+a1 c
+1 0
+2 0
+UPDATE v1 SET c=3;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+PREPARE t FROM 'UPDATE v1 SET c=3';
+EXECUTE t;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+EXECUTE t;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+INSERT INTO v1(a1, c) VALUES (3, 3);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+UPDATE v1 SET c=1 WHERE a1=1;
+SELECT * FROM v1;
+a1 c
+1 1
+2 0
+SELECT * FROM t1;
+a1 c
+1 1
+2 0
+CREATE VIEW v2 AS SELECT t1.a1, t1.c
+FROM (t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3)
+JOIN (t3 JOIN t4 ON t3.a3=t4.a4)
+ON t2.a2=t3.a3 WITH CHECK OPTION;
+SELECT * FROM v2;
+a1 c
+1 1
+2 0
+UPDATE v2 SET c=3;
+ERROR HY000: CHECK OPTION failed 'test.v2'
+PREPARE t FROM 'UPDATE v2 SET c=3';
+EXECUTE t;
+ERROR HY000: CHECK OPTION failed 'test.v2'
+EXECUTE t;
+ERROR HY000: CHECK OPTION failed 'test.v2'
+INSERT INTO v2(a1, c) VALUES (3, 3);
+ERROR HY000: CHECK OPTION failed 'test.v2'
+UPDATE v2 SET c=2 WHERE a1=1;
+SELECT * FROM v2;
+a1 c
+1 2
+2 0
+SELECT * FROM t1;
+a1 c
+1 2
+2 0
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3,t4;
+CREATE TABLE t1 (a int, b int);
+INSERT INTO t1 VALUES (1,2), (2,2), (1,3), (1,2);
+CREATE VIEW v1 AS SELECT a, b+1 as b FROM t1;
+SELECT b, SUM(a) FROM v1 WHERE b=3 GROUP BY b;
+b SUM(a)
+3 4
+EXPLAIN SELECT b, SUM(a) FROM v1 WHERE b=3 GROUP BY b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
+SELECT a, SUM(b) FROM v1 WHERE b=3 GROUP BY a;
+a SUM(b)
+1 6
+2 3
+EXPLAIN SELECT a, SUM(b) FROM v1 WHERE b=3 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; Using temporary; Using filesort
+SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a;
+a SUM(b)
+1 10
+EXPLAIN SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (
+person_id int NOT NULL PRIMARY KEY,
+username varchar(40) default NULL,
+status_flg char(1) NOT NULL default 'A'
+);
+CREATE TABLE t2 (
+person_role_id int NOT NULL auto_increment PRIMARY KEY,
+role_id int NOT NULL,
+person_id int NOT NULL,
+INDEX idx_person_id (person_id),
+INDEX idx_role_id (role_id)
+);
+CREATE TABLE t3 (
+role_id int NOT NULL auto_increment PRIMARY KEY,
+role_name varchar(100) default NULL,
+app_name varchar(40) NOT NULL,
+INDEX idx_app_name(app_name)
+);
+CREATE VIEW v1 AS
+SELECT profile.person_id AS person_id
+FROM t1 profile, t2 userrole, t3 role
+WHERE userrole.person_id = profile.person_id AND
+role.role_id = userrole.role_id AND
+profile.status_flg = 'A'
+ ORDER BY profile.person_id,role.app_name,role.role_name;
+INSERT INTO t1 VALUES
+(6,'Sw','A'), (-1136332546,'ols','e'), (0,' *\n','0'),
+(-717462680,'ENTS Ta','0'), (-904346964,'ndard SQL\n','0');
+INSERT INTO t2 VALUES
+(1,3,6),(2,4,7),(3,5,8),(4,6,9),(5,1,6),(6,1,7),(7,1,8),(8,1,9),(9,1,10);
+INSERT INTO t3 VALUES
+(1,'NUCANS_APP_USER','NUCANSAPP'),(2,'NUCANS_TRGAPP_USER','NUCANSAPP'),
+(3,'IA_INTAKE_COORDINATOR','IACANS'),(4,'IA_SCREENER','IACANS'),
+(5,'IA_SUPERVISOR','IACANS'),(6,'IA_READONLY','IACANS'),
+(7,'SOC_USER','SOCCANS'),(8,'CAYIT_USER','CAYITCANS'),
+(9,'RTOS_DCFSPOS_SUPERVISOR','RTOS');
+EXPLAIN SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE profile const PRIMARY PRIMARY 4 const 1 Using temporary; Using filesort
+1 SIMPLE userrole ref idx_person_id,idx_role_id idx_person_id 4 const 2
+1 SIMPLE role eq_ref PRIMARY PRIMARY 4 test.userrole.role_id 1
+SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
+a b
+6 6
+6 6
+DROP VIEW v1;
+DROP TABLE t1,t2,t3;
+create table t1 (i int);
+insert into t1 values (1), (2), (1), (3), (2), (4);
+create view v1 as select distinct i from t1;
+select * from v1;
+i
+1
+2
+3
+4
+select table_name, is_updatable from information_schema.views
+where table_name = 'v1';
+table_name is_updatable
+v1 NO
+drop view v1;
+drop table t1;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1 USE KEY(non_existant);
+ERROR HY000: Incorrect usage of USE INDEX and VIEW
+SELECT * FROM v1 FORCE KEY(non_existant);
+ERROR HY000: Incorrect usage of FORCE INDEX and VIEW
+SELECT * FROM v1 IGNORE KEY(non_existant);
+ERROR HY000: Incorrect usage of IGNORE INDEX and VIEW
+DROP VIEW v1;
+DROP TABLE t1;
+CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0,
+PRIMARY KEY(a), KEY (b));
+INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),(),(),(),(),(),();
+CREATE VIEW v1 AS SELECT * FROM t1 FORCE KEY (PRIMARY,b) ORDER BY a;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` FORCE INDEX (PRIMARY,`b`) order by `t1`.`a`
+EXPLAIN SELECT * FROM v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 15
+CREATE VIEW v2 AS SELECT * FROM t1 USE KEY () ORDER BY a;
+SHOW CREATE VIEW v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` USE INDEX () order by `t1`.`a`
+EXPLAIN SELECT * FROM v2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
+CREATE VIEW v3 AS SELECT * FROM t1 IGNORE KEY (b) ORDER BY a;
+SHOW CREATE VIEW v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` IGNORE INDEX (`b`) order by `t1`.`a`
+EXPLAIN SELECT * FROM v3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
+DROP VIEW v1;
+DROP VIEW v2;
+DROP VIEW v3;
+DROP TABLE t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/view_grant.result b/mysql-test/r/view_grant.result
new file mode 100644
index 00000000000..eef61c65fb8
--- /dev/null
+++ b/mysql-test/r/view_grant.result
@@ -0,0 +1,921 @@
+grant create view on test.* to test@localhost;
+show grants for test@localhost;
+Grants for test@localhost
+GRANT USAGE ON *.* TO 'test'@'localhost'
+GRANT CREATE VIEW ON `test`.* TO 'test'@'localhost'
+revoke create view on test.* from test@localhost;
+show grants for test@localhost;
+Grants for test@localhost
+GRANT USAGE ON *.* TO 'test'@'localhost'
+drop user test@localhost;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create table mysqltest.t2 (a int, b int);
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+grant create view,select on test.* to mysqltest_1@localhost;
+create definer=root@localhost view v1 as select * from mysqltest.t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+create view v1 as select * from mysqltest.t1;
+alter view v1 as select * from mysqltest.t1;
+ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 'v1'
+create or replace view v1 as select * from mysqltest.t1;
+ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 'v1'
+create view mysqltest.v2 as select * from mysqltest.t1;
+ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+create view v2 as select * from mysqltest.t2;
+ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 't2'
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1`
+grant create view,drop,select on test.* to mysqltest_1@localhost;
+use test;
+alter view v1 as select * from mysqltest.t1;
+create or replace view v1 as select * from mysqltest.t1;
+revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
+revoke all privileges on test.* from mysqltest_1@localhost;
+drop database mysqltest;
+drop view test.v1;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create view mysqltest.v1 (c,d) as select a+1,b+1 from mysqltest.t1;
+grant select (c) on mysqltest.v1 to mysqltest_1@localhost;
+select c from mysqltest.v1;
+c
+select d from mysqltest.v1;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'd' in table 'v1'
+revoke all privileges on mysqltest.v1 from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create algorithm=temptable view mysqltest.v1 (c,d) as select a+1,b+1 from mysqltest.t1;
+grant select (c) on mysqltest.v1 to mysqltest_1@localhost;
+select c from mysqltest.v1;
+c
+select d from mysqltest.v1;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'd' in table 'v1'
+revoke all privileges on mysqltest.v1 from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create table mysqltest.t2 (a int, b int);
+create view mysqltest.v1 (c,d) as select a+1,b+1 from mysqltest.t1;
+create algorithm=temptable view mysqltest.v2 (c,d) as select a+1,b+1 from mysqltest.t1;
+create view mysqltest.v3 (c,d) as select a+1,b+1 from mysqltest.t2;
+create algorithm=temptable view mysqltest.v4 (c,d) as select a+1,b+1 from mysqltest.t2;
+grant select on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.v2 to mysqltest_1@localhost;
+grant select on mysqltest.v3 to mysqltest_1@localhost;
+grant select on mysqltest.v4 to mysqltest_1@localhost;
+select c from mysqltest.v1;
+c
+select c from mysqltest.v2;
+c
+select c from mysqltest.v3;
+c
+select c from mysqltest.v4;
+c
+show columns from mysqltest.v1;
+Field Type Null Key Default Extra
+c bigint(12) YES NULL
+d bigint(12) YES NULL
+show columns from mysqltest.v2;
+Field Type Null Key Default Extra
+c bigint(12) YES NULL
+d bigint(12) YES NULL
+explain select c from mysqltest.v1;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show create view mysqltest.v1;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
+explain select c from mysqltest.v2;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show create view mysqltest.v2;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+explain select c from mysqltest.v3;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show create view mysqltest.v3;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v3'
+explain select c from mysqltest.v4;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show create view mysqltest.v4;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v4'
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+explain select c from mysqltest.v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
+show create view mysqltest.v1;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
+explain select c from mysqltest.v2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
+2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
+show create view mysqltest.v2;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+explain select c from mysqltest.v3;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show create view mysqltest.v3;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v3'
+explain select c from mysqltest.v4;
+ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
+show create view mysqltest.v4;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v4'
+grant show view on mysqltest.* to mysqltest_1@localhost;
+explain select c from mysqltest.v1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
+show create view mysqltest.v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
+explain select c from mysqltest.v2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
+2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
+show create view mysqltest.v2;
+View Create View
+v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
+explain select c from mysqltest.v3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 system NULL NULL NULL NULL 0 const row not found
+show create view mysqltest.v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2`
+explain select c from mysqltest.v4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
+2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
+show create view mysqltest.v4;
+View Create View
+v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v4` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2`
+revoke all privileges on mysqltest.* from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int, primary key(a));
+insert into mysqltest.t1 values (10,2), (20,3), (30,4), (40,5), (50,10);
+create table mysqltest.t2 (x int);
+insert into mysqltest.t2 values (3), (4), (5), (6);
+create view mysqltest.v1 (a,c) as select a, b+1 from mysqltest.t1;
+create view mysqltest.v2 (a,c) as select a, b from mysqltest.t1;
+create view mysqltest.v3 (a,c) as select a, b+1 from mysqltest.t1;
+grant update (a) on mysqltest.v2 to mysqltest_1@localhost;
+grant update on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.* to mysqltest_1@localhost;
+use mysqltest;
+update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.c;
+select * from t1;
+a b
+13 2
+24 3
+35 4
+46 5
+50 10
+update v1 set a=a+c;
+select * from t1;
+a b
+16 2
+28 3
+40 4
+52 5
+61 10
+update t2,v2 set v2.a=v2.a+v2.c where t2.x=v2.c;
+select * from t1;
+a b
+16 2
+31 3
+44 4
+57 5
+61 10
+update v2 set a=a+c;
+select * from t1;
+a b
+18 2
+34 3
+48 4
+62 5
+71 10
+update t2,v2 set v2.c=v2.a+v2.c where t2.x=v2.c;
+ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for column 'c' in table 'v2'
+update v2 set c=a+c;
+ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for column 'c' in table 'v2'
+update t2,v3 set v3.a=v3.a+v3.c where t2.x=v3.c;
+ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 'v3'
+update v3 set a=a+c;
+ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 'v3'
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int, primary key(a));
+insert into mysqltest.t1 values (1,2), (2,3), (3,4), (4,5), (5,10);
+create table mysqltest.t2 (x int);
+insert into mysqltest.t2 values (3), (4), (5), (6);
+create view mysqltest.v1 (a,c) as select a, b+1 from mysqltest.t1;
+create view mysqltest.v2 (a,c) as select a, b+1 from mysqltest.t1;
+grant delete on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.* to mysqltest_1@localhost;
+use mysqltest;
+delete from v1 where c < 4;
+select * from t1;
+a b
+2 3
+3 4
+4 5
+5 10
+delete v1 from t2,v1 where t2.x=v1.c;
+select * from t1;
+a b
+5 10
+delete v2 from t2,v2 where t2.x=v2.c;
+ERROR 42000: DELETE command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+delete from v2 where c < 4;
+ERROR 42000: DELETE command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int, primary key(a));
+insert into mysqltest.t1 values (1,2), (2,3);
+create table mysqltest.t2 (x int, y int);
+insert into mysqltest.t2 values (3,4);
+create view mysqltest.v1 (a,c) as select a, b from mysqltest.t1;
+create view mysqltest.v2 (a,c) as select a, b from mysqltest.t1;
+grant insert on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.* to mysqltest_1@localhost;
+use mysqltest;
+insert into v1 values (5,6);
+select * from t1;
+a b
+1 2
+2 3
+5 6
+insert into v1 select x,y from t2;
+select * from t1;
+a b
+1 2
+2 3
+5 6
+3 4
+insert into v2 values (5,6);
+ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+insert into v2 select x,y from t2;
+ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table 'v2'
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create table mysqltest.t2 (a int, b int);
+grant update on mysqltest.t1 to mysqltest_1@localhost;
+grant update(b) on mysqltest.t2 to mysqltest_1@localhost;
+grant create view,update on test.* to mysqltest_1@localhost;
+create view v1 as select * from mysqltest.t1;
+create view v2 as select b from mysqltest.t2;
+create view mysqltest.v1 as select * from mysqltest.t1;
+ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
+create view v3 as select a from mysqltest.t2;
+ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for column 'a' in table 't2'
+create table mysqltest.v3 (b int);
+grant create view on mysqltest.v3 to mysqltest_1@localhost;
+drop table mysqltest.v3;
+create view mysqltest.v3 as select b from mysqltest.t2;
+grant create view, update on mysqltest.v3 to mysqltest_1@localhost;
+drop view mysqltest.v3;
+create view mysqltest.v3 as select b from mysqltest.t2;
+create view v4 as select b+1 from mysqltest.t2;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't2'
+grant create view,update,select on test.* to mysqltest_1@localhost;
+create view v4 as select b+1 from mysqltest.t2;
+ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't2'
+grant update,select(b) on mysqltest.t2 to mysqltest_1@localhost;
+create view v4 as select b+1 from mysqltest.t2;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+drop view v1,v2,v4;
+create database mysqltest;
+create table mysqltest.t1 (a int);
+grant all privileges on mysqltest.* to mysqltest_1@localhost;
+use mysqltest;
+create view v1 as select * from t1;
+use test;
+revoke all privileges on mysqltest.* from mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+grant create view,select on test.* to mysqltest_1@localhost;
+create view v1 as select * from mysqltest.t1;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1`
+revoke select on mysqltest.t1 from mysqltest_1@localhost;
+select * from v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+select * from v1;
+a b
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop view v1;
+drop database mysqltest;
+create database mysqltest;
+use mysqltest;
+create table t1 (a int);
+insert into t1 values (1);
+create table t2 (s1 int);
+drop function if exists f2;
+create function f2 () returns int begin declare v int; select s1 from t2
+into v; return v; end//
+create algorithm=TEMPTABLE view v1 as select f2() from t1;
+create algorithm=MERGE view v2 as select f2() from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select f2() from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select f2() from t1;
+create SQL SECURITY INVOKER view v5 as select * from v4;
+grant select on v1 to mysqltest_1@localhost;
+grant select on v2 to mysqltest_1@localhost;
+grant select on v3 to mysqltest_1@localhost;
+grant select on v4 to mysqltest_1@localhost;
+grant select on v5 to mysqltest_1@localhost;
+use mysqltest;
+select * from v1;
+f2()
+NULL
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select * from v2;
+f2()
+NULL
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select * from v3;
+ERROR HY000: View 'mysqltest.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v4;
+ERROR HY000: View 'mysqltest.v4' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v5;
+ERROR HY000: View 'mysqltest.v5' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+use test;
+drop view v1, v2, v3, v4, v5;
+drop function f2;
+drop table t1, t2;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+use mysqltest;
+create table t1 (a int);
+insert into t1 values (1);
+create table t2 (s1 int);
+drop function if exists f2;
+create function f2 () returns int begin declare v int; select s1 from t2
+into v; return v; end//
+grant select on t1 to mysqltest_1@localhost;
+grant execute on function f2 to mysqltest_1@localhost;
+grant create view on mysqltest.* to mysqltest_1@localhost;
+use mysqltest;
+create algorithm=TEMPTABLE view v1 as select f2() from t1;
+create algorithm=MERGE view v2 as select f2() from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select f2() from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select f2() from t1;
+use test;
+create view v5 as select * from v1;
+revoke execute on function f2 from mysqltest_1@localhost;
+select * from v1;
+ERROR HY000: View 'mysqltest.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v2;
+ERROR HY000: View 'mysqltest.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v3;
+f2()
+NULL
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select * from v4;
+f2()
+NULL
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+select * from v5;
+ERROR HY000: View 'mysqltest.v5' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+drop view v1, v2, v3, v4, v5;
+drop function f2;
+drop table t1, t2;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+use mysqltest;
+create table t1 (a int);
+create table v1 (a int);
+insert into t1 values (1);
+grant select on t1 to mysqltest_1@localhost;
+grant select on v1 to mysqltest_1@localhost;
+grant create view on mysqltest.* to mysqltest_1@localhost;
+drop table v1;
+use mysqltest;
+create algorithm=TEMPTABLE view v1 as select *, a as b from t1;
+create algorithm=MERGE view v2 as select *, a as b from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select *, a as b from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select *, a as b from t1;
+create view v5 as select * from v1;
+use test;
+revoke select on t1 from mysqltest_1@localhost;
+select * from v1;
+ERROR HY000: View 'mysqltest.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v2;
+ERROR HY000: View 'mysqltest.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v3;
+a b
+1 1
+select * from v4;
+a b
+1 1
+select * from v5;
+ERROR HY000: View 'mysqltest.v5' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+drop table t1;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+create database mysqltest;
+use mysqltest;
+create table t1 (a int);
+insert into t1 values (1);
+create algorithm=TEMPTABLE view v1 as select *, a as b from t1;
+create algorithm=MERGE view v2 as select *, a as b from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select *, a as b from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select *, a as b from t1;
+create SQL SECURITY INVOKER view v5 as select * from v4;
+grant select on v1 to mysqltest_1@localhost;
+grant select on v2 to mysqltest_1@localhost;
+grant select on v3 to mysqltest_1@localhost;
+grant select on v4 to mysqltest_1@localhost;
+grant select on v5 to mysqltest_1@localhost;
+use mysqltest;
+select * from v1;
+a b
+1 1
+select * from v2;
+a b
+1 1
+select * from v3;
+ERROR HY000: View 'mysqltest.v3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v4;
+ERROR HY000: View 'mysqltest.v4' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+select * from v5;
+ERROR HY000: View 'mysqltest.v5' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+use test;
+drop view v1, v2, v3, v4, v5;
+drop table t1;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+drop view if exists v1;
+create table t1 as select * from mysql.user where user='';
+delete from mysql.user where user='';
+flush privileges;
+grant all on test.* to 'test14256'@'%';
+use test;
+create view v1 as select 42;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42`
+select definer into @v1def1 from information_schema.views
+where table_schema = 'test' and table_name='v1';
+drop view v1;
+create definer=`test14256`@`%` view v1 as select 42;
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42`
+select definer into @v1def2 from information_schema.views
+where table_schema = 'test' and table_name='v1';
+drop view v1;
+select @v1def1, @v1def2, @v1def1=@v1def2;
+@v1def1 @v1def2 @v1def1=@v1def2
+test14256@% test14256@% 1
+drop user test14256;
+insert into mysql.user select * from t1;
+flush privileges;
+drop table t1;
+create database mysqltest;
+use mysqltest;
+CREATE TABLE t1 (i INT);
+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`.`i` AS `i` from `t1`
+GRANT SELECT, LOCK TABLES ON mysqltest.* TO mysqltest_1@localhost;
+use mysqltest;
+LOCK TABLES v1 READ;
+SHOW CREATE TABLE v1;
+ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
+UNLOCK TABLES;
+use test;
+use test;
+drop user mysqltest_1@localhost;
+drop database mysqltest;
+create definer=some_user@`` sql security invoker view v1 as select 1;
+Warnings:
+Note 1449 There is no 'some_user'@'' registered
+create definer=some_user@localhost sql security invoker view v2 as select 1;
+Warnings:
+Note 1449 There is no 'some_user'@'localhost' registered
+show create view v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
+show create view v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select 1 AS `1`
+drop view v1;
+drop view v2;
+CREATE DATABASE mysqltest1;
+CREATE USER readonly@localhost;
+CREATE TABLE mysqltest1.t1 (x INT);
+INSERT INTO mysqltest1.t1 VALUES (1), (2);
+CREATE SQL SECURITY INVOKER VIEW mysqltest1.v_t1 AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ts AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ti AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tu AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tus AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_td AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tds AS SELECT * FROM mysqltest1.t1;
+GRANT SELECT, INSERT, UPDATE, DELETE ON mysqltest1.v_t1 TO readonly@localhost;
+GRANT SELECT ON mysqltest1.v_ts TO readonly@localhost;
+GRANT INSERT ON mysqltest1.v_ti TO readonly@localhost;
+GRANT UPDATE ON mysqltest1.v_tu TO readonly@localhost;
+GRANT UPDATE,SELECT ON mysqltest1.v_tus TO readonly@localhost;
+GRANT DELETE ON mysqltest1.v_td TO readonly@localhost;
+GRANT DELETE,SELECT ON mysqltest1.v_tds TO readonly@localhost;
+SELECT * FROM mysqltest1.v_t1;
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO mysqltest1.v_t1 VALUES(4);
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM mysqltest1.v_t1 WHERE x = 1;
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE mysqltest1.v_t1 SET x = 3 WHERE x = 2;
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE mysqltest1.v_t1 SET x = 3;
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM mysqltest1.v_t1;
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT 1 FROM mysqltest1.v_t1;
+ERROR HY000: View 'mysqltest1.v_t1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM mysqltest1.t1;
+ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 't1'
+SELECT * FROM mysqltest1.v_ts;
+x
+1
+2
+SELECT * FROM mysqltest1.v_ts, mysqltest1.t1 WHERE mysqltest1.t1.x = mysqltest1.v_ts.x;
+ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 't1'
+SELECT * FROM mysqltest1.v_ti;
+ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for table 'v_ti'
+INSERT INTO mysqltest1.v_ts VALUES (100);
+ERROR 42000: INSERT command denied to user 'readonly'@'localhost' for table 'v_ts'
+INSERT INTO mysqltest1.v_ti VALUES (100);
+UPDATE mysqltest1.v_ts SET x= 200 WHERE x = 100;
+ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table 'v_ts'
+UPDATE mysqltest1.v_ts SET x= 200;
+ERROR 42000: UPDATE command denied to user 'readonly'@'localhost' for table 'v_ts'
+UPDATE mysqltest1.v_tu SET x= 200 WHERE x = 100;
+UPDATE mysqltest1.v_tus SET x= 200 WHERE x = 100;
+UPDATE mysqltest1.v_tu SET x= 200;
+DELETE FROM mysqltest1.v_ts WHERE x= 200;
+ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table 'v_ts'
+DELETE FROM mysqltest1.v_ts;
+ERROR 42000: DELETE command denied to user 'readonly'@'localhost' for table 'v_ts'
+DELETE FROM mysqltest1.v_td WHERE x= 200;
+ERROR 42000: SELECT command denied to user 'readonly'@'localhost' for column 'x' in table 'v_td'
+DELETE FROM mysqltest1.v_tds WHERE x= 200;
+DELETE FROM mysqltest1.v_td;
+DROP VIEW mysqltest1.v_tds;
+DROP VIEW mysqltest1.v_td;
+DROP VIEW mysqltest1.v_tus;
+DROP VIEW mysqltest1.v_tu;
+DROP VIEW mysqltest1.v_ti;
+DROP VIEW mysqltest1.v_ts;
+DROP VIEW mysqltest1.v_t1;
+DROP TABLE mysqltest1.t1;
+DROP USER readonly@localhost;
+DROP DATABASE mysqltest1;
+CREATE TABLE t1 (a INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (2), (3);
+CREATE DEFINER = 'no-such-user'@localhost VIEW v AS SELECT a from t1;
+Warnings:
+Note 1449 There is no 'no-such-user'@'localhost' registered
+SHOW CREATE VIEW v;
+View Create View
+v CREATE ALGORITHM=UNDEFINED DEFINER=`no-such-user`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `test`.`t1`.`a` AS `a` from `t1`
+Warnings:
+Warning 1356 View 'test.v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM v;
+ERROR HY000: There is no 'no-such-user'@'localhost' registered
+DROP VIEW v;
+DROP TABLE t1;
+USE test;
+CREATE USER mysqltest_db1@localhost identified by 'PWD';
+GRANT ALL ON mysqltest_db1.* TO mysqltest_db1@localhost WITH GRANT OPTION;
+CREATE SCHEMA mysqltest_db1 ;
+USE mysqltest_db1 ;
+CREATE TABLE t1 (f1 INTEGER);
+CREATE VIEW view1 AS
+SELECT * FROM t1;
+SHOW CREATE VIEW view1;
+View Create View
+view1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_db1`@`localhost` SQL SECURITY DEFINER VIEW `view1` AS select `t1`.`f1` AS `f1` from `t1`
+CREATE VIEW view2 AS
+SELECT * FROM view1;
+# Here comes a suspicious warning
+SHOW CREATE VIEW view2;
+View Create View
+view2 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_db1`@`localhost` SQL SECURITY DEFINER VIEW `view2` AS select `view1`.`f1` AS `f1` from `view1`
+# But the view view2 is usable
+SELECT * FROM view2;
+f1
+CREATE VIEW view3 AS
+SELECT * FROM view2;
+SELECT * from view3;
+f1
+DROP VIEW mysqltest_db1.view3;
+DROP VIEW mysqltest_db1.view2;
+DROP VIEW mysqltest_db1.view1;
+DROP TABLE mysqltest_db1.t1;
+DROP SCHEMA mysqltest_db1;
+DROP USER mysqltest_db1@localhost;
+CREATE DATABASE test1;
+CREATE DATABASE test2;
+CREATE TABLE test1.t0 (a VARCHAR(20));
+CREATE TABLE test2.t1 (a VARCHAR(20));
+CREATE VIEW test2.t3 AS SELECT * FROM test1.t0;
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.a AS col1, tb.a AS col2 FROM test2.t3 ta, test2.t1 tb;
+DROP VIEW test.v1;
+DROP VIEW test2.t3;
+DROP TABLE test2.t1, test1.t0;
+DROP DATABASE test2;
+DROP DATABASE test1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+DROP VIEW IF EXISTS v3;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP PROCEDURE IF EXISTS p1;
+CREATE SQL SECURITY DEFINER VIEW v1 AS SELECT CURRENT_USER() AS cu;
+CREATE FUNCTION f1() RETURNS VARCHAR(77) SQL SECURITY INVOKER
+RETURN CURRENT_USER();
+CREATE SQL SECURITY DEFINER VIEW v2 AS SELECT f1() AS cu;
+CREATE PROCEDURE p1(OUT cu VARCHAR(77)) SQL SECURITY INVOKER
+SET cu= CURRENT_USER();
+CREATE FUNCTION f2() RETURNS VARCHAR(77) SQL SECURITY INVOKER
+BEGIN
+DECLARE cu VARCHAR(77);
+CALL p1(cu);
+RETURN cu;
+END|
+CREATE SQL SECURITY DEFINER VIEW v3 AS SELECT f2() AS cu;
+CREATE USER mysqltest_u1@localhost;
+GRANT ALL ON test.* TO mysqltest_u1@localhost;
+
+The following tests should all return 1.
+
+SELECT CURRENT_USER() = 'mysqltest_u1@localhost';
+CURRENT_USER() = 'mysqltest_u1@localhost'
+1
+SELECT f1() = 'mysqltest_u1@localhost';
+f1() = 'mysqltest_u1@localhost'
+1
+CALL p1(@cu);
+SELECT @cu = 'mysqltest_u1@localhost';
+@cu = 'mysqltest_u1@localhost'
+1
+SELECT f2() = 'mysqltest_u1@localhost';
+f2() = 'mysqltest_u1@localhost'
+1
+SELECT cu = 'root@localhost' FROM v1;
+cu = 'root@localhost'
+1
+SELECT cu = 'root@localhost' FROM v2;
+cu = 'root@localhost'
+1
+SELECT cu = 'root@localhost' FROM v3;
+cu = 'root@localhost'
+1
+DROP VIEW v3;
+DROP FUNCTION f2;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+DROP VIEW v2;
+DROP VIEW v1;
+DROP USER mysqltest_u1@localhost;
+CREATE DATABASE db17254;
+USE db17254;
+CREATE TABLE t1 (f1 INT);
+INSERT INTO t1 VALUES (10),(20);
+CREATE USER def_17254@localhost;
+GRANT SELECT ON db17254.* TO def_17254@localhost;
+CREATE USER inv_17254@localhost;
+GRANT SELECT ON db17254.t1 TO inv_17254@localhost;
+GRANT CREATE VIEW ON db17254.* TO def_17254@localhost;
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP USER def_17254@localhost;
+for a user
+SELECT * FROM v1;
+ERROR 42000: SELECT command denied to user 'inv_17254'@'localhost' for table 'v1'
+for a superuser
+SELECT * FROM v1;
+ERROR HY000: There is no 'def_17254'@'localhost' registered
+DROP USER inv_17254@localhost;
+DROP DATABASE db17254;
+DROP DATABASE IF EXISTS mysqltest_db1;
+DROP DATABASE IF EXISTS mysqltest_db2;
+DROP USER mysqltest_u1;
+DROP USER mysqltest_u2;
+CREATE USER mysqltest_u1@localhost;
+CREATE USER mysqltest_u2@localhost;
+CREATE DATABASE mysqltest_db1;
+CREATE DATABASE mysqltest_db2;
+GRANT ALL ON mysqltest_db1.* TO mysqltest_u1@localhost WITH GRANT OPTION;
+GRANT ALL ON mysqltest_db2.* TO mysqltest_u2@localhost;
+CREATE TABLE t1 (i INT);
+INSERT INTO t1 VALUES (1);
+CREATE VIEW v1 AS SELECT i FROM t1 WHERE 1 IN (SELECT * FROM t1);
+CREATE TABLE t2 (s CHAR(7));
+INSERT INTO t2 VALUES ('public');
+GRANT SELECT ON v1 TO mysqltest_u2@localhost;
+GRANT SELECT ON t2 TO mysqltest_u2@localhost;
+SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2;
+i s
+1 public
+PREPARE stmt1 FROM "SELECT * FROM mysqltest_db1.t2";
+EXECUTE stmt1;
+s
+public
+PREPARE stmt2 FROM "SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2";
+EXECUTE stmt2;
+i s
+1 public
+REVOKE SELECT ON t2 FROM mysqltest_u2@localhost;
+UPDATE t2 SET s = 'private' WHERE s = 'public';
+SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2;
+ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table 't2'
+EXECUTE stmt1;
+ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table 't2'
+EXECUTE stmt2;
+ERROR 42000: SELECT command denied to user 'mysqltest_u2'@'localhost' for table 't2'
+REVOKE ALL ON mysqltest_db1.* FROM mysqltest_u1@localhost;
+REVOKE ALL ON mysqltest_db2.* FROM mysqltest_u2@localhost;
+DROP DATABASE mysqltest_db1;
+DROP DATABASE mysqltest_db2;
+DROP USER mysqltest_u1@localhost;
+DROP USER mysqltest_u2@localhost;
+CREATE DATABASE db26813;
+USE db26813;
+CREATE TABLE t1(f1 INT, f2 INT);
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE VIEW v2 AS SELECT f1 FROM t1;
+CREATE VIEW v3 AS SELECT f1 FROM t1;
+CREATE USER u26813@localhost;
+GRANT DROP ON db26813.v1 TO u26813@localhost;
+GRANT CREATE VIEW ON db26813.v2 TO u26813@localhost;
+GRANT DROP, CREATE VIEW ON db26813.v3 TO u26813@localhost;
+GRANT SELECT ON db26813.t1 TO u26813@localhost;
+ALTER VIEW v1 AS SELECT f2 FROM t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+ALTER VIEW v2 AS SELECT f2 FROM t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+ALTER VIEW v3 AS SELECT f2 FROM t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+SHOW CREATE VIEW v3;
+View Create View
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f1` AS `f1` from `t1`
+DROP USER u26813@localhost;
+DROP DATABASE db26813;
+#
+# Bug#29908: A user can gain additional access through the ALTER VIEW.
+#
+CREATE DATABASE mysqltest_29908;
+USE mysqltest_29908;
+CREATE TABLE t1(f1 INT, f2 INT);
+CREATE USER u29908_1@localhost;
+CREATE DEFINER = u29908_1@localhost VIEW v1 AS SELECT f1 FROM t1;
+CREATE DEFINER = u29908_1@localhost SQL SECURITY INVOKER VIEW v2 AS
+SELECT f1 FROM t1;
+GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v1 TO u29908_1@localhost;
+GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_1@localhost;
+GRANT SELECT ON mysqltest_29908.t1 TO u29908_1@localhost;
+CREATE USER u29908_2@localhost;
+GRANT DROP, CREATE VIEW ON mysqltest_29908.v1 TO u29908_2@localhost;
+GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_2@localhost;
+GRANT SELECT ON mysqltest_29908.t1 TO u29908_2@localhost;
+ALTER VIEW v1 AS SELECT f2 FROM t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+ALTER VIEW v2 AS SELECT f2 FROM t1;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+SHOW CREATE VIEW v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f1` AS `f1` from `t1`
+ALTER VIEW v1 AS SELECT f2 FROM t1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f2` AS `f2` from `t1`
+ALTER VIEW v2 AS SELECT f2 FROM t1;
+SHOW CREATE VIEW v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f2` AS `f2` from `t1`
+ALTER VIEW v1 AS SELECT f1 FROM t1;
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
+ALTER VIEW v2 AS SELECT f1 FROM t1;
+SHOW CREATE VIEW v2;
+View Create View
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f1` AS `f1` from `t1`
+DROP USER u29908_1@localhost;
+DROP USER u29908_2@localhost;
+DROP DATABASE mysqltest_29908;
+#######################################################################
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+CREATE TABLE mysqltest1.t1(c1 INT);
+CREATE TABLE mysqltest1.t2(c2 INT);
+CREATE TABLE mysqltest1.t3(c3 INT);
+CREATE TABLE mysqltest1.t4(c4 INT);
+INSERT INTO mysqltest1.t1 VALUES (11), (12), (13), (14);
+INSERT INTO mysqltest1.t2 VALUES (21), (22), (23), (24);
+INSERT INTO mysqltest1.t3 VALUES (31), (32), (33), (34);
+INSERT INTO mysqltest1.t4 VALUES (41), (42), (43), (44);
+GRANT SELECT ON mysqltest1.t1 TO mysqltest_u1@localhost;
+GRANT INSERT ON mysqltest1.t2 TO mysqltest_u1@localhost;
+GRANT SELECT, UPDATE ON mysqltest1.t3 TO mysqltest_u1@localhost;
+GRANT SELECT, DELETE ON mysqltest1.t4 TO mysqltest_u1@localhost;
+GRANT ALL PRIVILEGES ON mysqltest2.* TO mysqltest_u1@localhost;
+
+---> connection: bug24040_con
+SELECT * FROM mysqltest1.t1;
+c1
+11
+12
+13
+14
+INSERT INTO mysqltest1.t2 VALUES(25);
+UPDATE mysqltest1.t3 SET c3 = 331 WHERE c3 = 31;
+DELETE FROM mysqltest1.t4 WHERE c4 = 44;
+CREATE VIEW v1 AS SELECT * FROM mysqltest1.t1;
+CREATE VIEW v2 AS SELECT * FROM mysqltest1.t2;
+CREATE VIEW v3 AS SELECT * FROM mysqltest1.t3;
+CREATE VIEW v4 AS SELECT * FROM mysqltest1.t4;
+SELECT * FROM v1;
+c1
+11
+12
+13
+14
+INSERT INTO v2 VALUES(26);
+UPDATE v3 SET c3 = 332 WHERE c3 = 32;
+DELETE FROM v4 WHERE c4 = 43;
+CREATE VIEW v12 AS SELECT c1, c2 FROM mysqltest1.t1, mysqltest1.t2;
+ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c2' in table 'v12'
+CREATE VIEW v13 AS SELECT c1, c3 FROM mysqltest1.t1, mysqltest1.t3;
+CREATE VIEW v14 AS SELECT c1, c4 FROM mysqltest1.t1, mysqltest1.t4;
+CREATE VIEW v21 AS SELECT c2, c1 FROM mysqltest1.t2, mysqltest1.t1;
+ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c1' in table 'v21'
+CREATE VIEW v23 AS SELECT c2, c3 FROM mysqltest1.t2, mysqltest1.t3;
+ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c3' in table 'v23'
+CREATE VIEW v24 AS SELECT c2, c4 FROM mysqltest1.t2, mysqltest1.t4;
+ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c4' in table 'v24'
+CREATE VIEW v31 AS SELECT c3, c1 FROM mysqltest1.t3, mysqltest1.t1;
+CREATE VIEW v32 AS SELECT c3, c2 FROM mysqltest1.t3, mysqltest1.t2;
+ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c2' in table 'v32'
+CREATE VIEW v34 AS SELECT c3, c4 FROM mysqltest1.t3, mysqltest1.t4;
+CREATE VIEW v41 AS SELECT c4, c1 FROM mysqltest1.t4, mysqltest1.t1;
+CREATE VIEW v42 AS SELECT c4, c2 FROM mysqltest1.t4, mysqltest1.t2;
+ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c2' in table 'v42'
+CREATE VIEW v43 AS SELECT c4, c3 FROM mysqltest1.t4, mysqltest1.t3;
+
+---> connection: default
+SELECT * FROM mysqltest1.t1;
+c1
+11
+12
+13
+14
+SELECT * FROM mysqltest1.t2;
+c2
+21
+22
+23
+24
+25
+26
+SELECT * FROM mysqltest1.t3;
+c3
+331
+332
+33
+34
+SELECT * FROM mysqltest1.t4;
+c4
+41
+42
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+DROP USER mysqltest_u1@localhost;
+End of 5.0 tests.
diff --git a/mysql-test/r/wait_timeout.result b/mysql-test/r/wait_timeout.result
index 56232e481c0..6fbff82f908 100644
--- a/mysql-test/r/wait_timeout.result
+++ b/mysql-test/r/wait_timeout.result
@@ -1,8 +1,20 @@
+select 0;
+0
+0
+flush status;
select 1;
1
1
select 2;
-ERROR HY000: MySQL server has gone away
+Got one of the listed errors
+select 3;
+3
+3
+select 1;
+1
+1
+select 2;
+Got one of the listed errors
select 3;
3
3
diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result
index 69d33de75f4..9ce1f9c825d 100644
--- a/mysql-test/r/warnings.result
+++ b/mysql-test/r/warnings.result
@@ -31,19 +31,19 @@ Error 1064 You have an error in your SQL syntax; check the manual that correspon
insert into t1 values (1);
insert into t1 values ("hej");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
insert into t1 values ("hej"),("då");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
+Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'd?' for column 'a' at row 2
set SQL_WARNINGS=1;
insert into t1 values ("hej");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
insert into t1 values ("hej"),("då");
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
+Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'd?' for column 'a' at row 2
drop table t1;
set SQL_WARNINGS=0;
drop temporary table if exists not_exists;
@@ -70,15 +70,15 @@ select @@warning_count;
1
drop table t1;
create table t1(a tinyint, b int not null, c date, d char(5));
-load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ',';
+load data infile '../std_data_ln/warnings_loaddata.dat' into table t1 fields terminated by ',';
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'b' at row 2
+Warning 1263 Column was set to data type implicit default; NULL supplied for NOT NULL column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 3
Warning 1265 Data truncated for column 'c' at row 4
Warning 1261 Row 5 doesn't contain data for all columns
Warning 1265 Data truncated for column 'b' at row 6
Warning 1262 Row 7 was truncated; it contained more data than there were input columns
-Warning 1264 Data truncated; out of range for column 'a' at row 8
+Warning 1264 Out of range value adjusted for column 'a' at row 8
select @@warning_count;
@@warning_count
7
@@ -86,11 +86,11 @@ drop table t1;
create table t1(a tinyint NOT NULL, b tinyint unsigned, c char(5));
insert into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test');
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
-Warning 1264 Data truncated; out of range for column 'b' at row 2
+Warning 1048 Column 'a' cannot be null
+Warning 1264 Out of range value adjusted for column 'b' at row 2
Warning 1265 Data truncated for column 'c' at row 2
-Warning 1264 Data truncated; out of range for column 'a' at row 3
-Warning 1264 Data truncated; out of range for column 'b' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'b' at row 3
Warning 1265 Data truncated for column 'c' at row 3
alter table t1 modify c char(4);
Warnings:
@@ -99,7 +99,7 @@ Warning 1265 Data truncated for column 'c' at row 2
alter table t1 add d char(2);
update t1 set a=NULL where a=10;
Warnings:
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 2
+Warning 1048 Column 'a' cannot be null
update t1 set c='mysql ab' where c='test';
Warnings:
Warning 1265 Data truncated for column 'c' at row 4
@@ -115,14 +115,16 @@ Warnings:
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'b' at row 3
-Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 4
+Warning 1048 Column 'a' cannot be null
Warning 1265 Data truncated for column 'b' at row 4
insert into t2(b) values('mysqlab');
Warnings:
+Warning 1364 Field 'a' doesn't have a default value
Warning 1265 Data truncated for column 'b' at row 1
set sql_warnings=1;
insert into t2(b) values('mysqlab');
Warnings:
+Warning 1364 Field 'a' doesn't have a default value
Warning 1265 Data truncated for column 'b' at row 1
set sql_warnings=0;
drop table t1, t2;
@@ -192,44 +194,44 @@ create table t1 (a int);
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
update t1 set a='abc';
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1265 Data truncated for column 'a' at row 3
-Warning 1265 Data truncated for column 'a' at row 4
-Warning 1265 Data truncated for column 'a' at row 5
-Warning 1265 Data truncated for column 'a' at row 6
-Warning 1265 Data truncated for column 'a' at row 7
-Warning 1265 Data truncated for column 'a' at row 8
-Warning 1265 Data truncated for column 'a' at row 9
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 2
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 3
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 4
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 5
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 6
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 7
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 8
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 9
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
show warnings limit 2, 1;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 3
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 3
show warnings limit 0, 10;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1265 Data truncated for column 'a' at row 3
-Warning 1265 Data truncated for column 'a' at row 4
-Warning 1265 Data truncated for column 'a' at row 5
-Warning 1265 Data truncated for column 'a' at row 6
-Warning 1265 Data truncated for column 'a' at row 7
-Warning 1265 Data truncated for column 'a' at row 8
-Warning 1265 Data truncated for column 'a' at row 9
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 2
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 3
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 4
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 5
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 6
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 7
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 8
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 9
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
show warnings limit 9, 1;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
show warnings limit 10, 1;
Level Code Message
show warnings limit 9, 2;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
show warnings limit 0, 0;
Level Code Message
show warnings limit 1;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 1
+Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1
show warnings limit 0;
Level Code Message
show warnings limit 1, 0;
@@ -241,3 +243,59 @@ a
select * from t1 limit 0, 0;
a
drop table t1;
+End of 4.1 tests
+CREATE TABLE t1( f1 CHAR(20) );
+CREATE TABLE t2( f1 CHAR(20), f2 CHAR(25) );
+CREATE TABLE t3( f1 CHAR(20), f2 CHAR(25), f3 DATE );
+INSERT INTO t1 VALUES ( 'a`' );
+INSERT INTO t2 VALUES ( 'a`', 'a`' );
+INSERT INTO t3 VALUES ( 'a`', 'a`', '1000-01-1' );
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP PROCEDURE IF EXISTS sp2;
+Warnings:
+Note 1305 PROCEDURE sp2 does not exist
+DROP PROCEDURE IF EXISTS sp3;
+Warnings:
+Note 1305 PROCEDURE sp3 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE x NUMERIC ZEROFILL;
+SELECT f1 INTO x FROM t1 LIMIT 1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE x NUMERIC ZEROFILL;
+SELECT f1 INTO x FROM t2 LIMIT 1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE x NUMERIC ZEROFILL;
+SELECT f1 INTO x FROM t3 LIMIT 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1
+CALL sp2();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1
+CALL sp3();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE t3;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+End of 5.0 tests
diff --git a/mysql-test/r/windows.result b/mysql-test/r/windows.result
index 1702fd28c18..b5f9a48d805 100644
--- a/mysql-test/r/windows.result
+++ b/mysql-test/r/windows.result
@@ -12,3 +12,10 @@ Warnings:
Warning 0 DATA DIRECTORY option ignored
Warning 0 INDEX DIRECTORY option ignored
drop table t1;
+CREATE TABLE t1 (a int, b int);
+INSERT INTO t1 VALUES (1,1);
+EXPLAIN SELECT * FROM t1 WHERE b = (SELECT max(2));
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
+End of 5.0 tests.
diff --git a/mysql-test/r/xa.result b/mysql-test/r/xa.result
new file mode 100644
index 00000000000..5fb03d2378e
--- /dev/null
+++ b/mysql-test/r/xa.result
@@ -0,0 +1,57 @@
+drop table if exists t1, t2;
+create table t1 (a int) engine=innodb;
+xa start 'test1';
+insert t1 values (10);
+xa end 'test1';
+xa prepare 'test1';
+xa rollback 'test1';
+select * from t1;
+a
+xa start 'test2';
+xa start 'test-bad';
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
+insert t1 values (20);
+xa prepare 'test2';
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
+xa end 'test2';
+xa prepare 'test2';
+xa commit 'test2';
+select * from t1;
+a
+20
+xa start 'testa','testb';
+insert t1 values (30);
+commit;
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
+xa end 'testa','testb';
+begin;
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
+create table t2 (a int);
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
+xa start 'testa','testb';
+ERROR XAE08: XAER_DUPID: The XID already exists
+xa start 'testa','testb', 123;
+ERROR XAE08: XAER_DUPID: The XID already exists
+xa start 0x7465737462, 0x2030405060, 0xb;
+insert t1 values (40);
+xa end 'testb',' 0@P`',11;
+xa prepare 'testb',0x2030405060,11;
+start transaction;
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state
+xa recover;
+formatID gtrid_length bqual_length data
+11 5 5 testb 0@P`
+xa prepare 'testa','testb';
+xa recover;
+formatID gtrid_length bqual_length data
+11 5 5 testb 0@P`
+1 5 5 testatestb
+xa commit 'testb',0x2030405060,11;
+ERROR XAE04: XAER_NOTA: Unknown XID
+xa rollback 'testa','testb';
+xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
+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
+select * from t1;
+a
+20
+drop table t1;
diff --git a/mysql-test/std_data/14897.frm b/mysql-test/std_data/14897.frm
new file mode 100644
index 00000000000..aff11b467b0
--- /dev/null
+++ b/mysql-test/std_data/14897.frm
Binary files differ
diff --git a/mysql-test/std_data/Index.xml b/mysql-test/std_data/Index.xml
new file mode 100644
index 00000000000..988dddcc68a
--- /dev/null
+++ b/mysql-test/std_data/Index.xml
@@ -0,0 +1,71 @@
+<charsets>
+
+ <charset name="utf8">
+ <collation name="utf8_test_ci" id="240">
+ <rules>
+ <reset>a</reset>
+ <s>b</s>
+ </rules>
+ </collation>
+
+ </charset>
+
+ <charset name="ucs2">
+ <collation name="ucs2_test_ci" id="241">
+ <rules>
+ <reset>a</reset>
+ <s>b</s>
+ </rules>
+ </collation>
+ <collation name="ucs2_vn_ci" id="242">
+ <!-- Vietnamese experimental collation -->
+ <rules>
+ <reset>A</reset>
+ <p>\u0103</p><t>\u0102</t>
+ <s>\u1EB1</s><t>\u1EB0</t>
+ <s>\u1EB3</s><t>\u1EB2</t>
+ <s>\u1EB5</s><t>\u1EB4</t>
+ <s>\u1EAF</s><t>\u1EAE</t>
+ <s>\u1EB7</s><t>\u1EB6</t>
+ <p>\u00E2</p><t>\u00C2</t>
+ <s>\u1EA7</s><t>\u1EA6</t>
+ <s>\u1EA9</s><t>\u1EA8</t>
+ <s>\u1EAB</s><t>\u1EAA</t>
+ <s>\u1EA5</s><t>\u1EA4</t>
+ <s>\u1EAD</s><t>\u1EAC</t>
+ <reset>D</reset>
+ <p>\u0111</p><t>\u0110</t>
+ <reset>E</reset>
+ <p>\u00EA</p><t>\u00CA</t>
+ <s>\u1EC1</s><t>\u1EC0</t>
+ <s>\u1EC3</s><t>\u1EC2</t>
+ <s>\u1EC5</s><t>\u1EC4</t>
+ <s>\u1EBF</s><t>\u1EBE</t>
+ <s>\u1EC7</s><t>\u1EC6</t>
+ <reset>O</reset>
+ <p>\u00F4</p><t>\u00D4</t>
+ <s>\u1ED3</s><t>\u1ED2</t>
+ <s>\u1ED5</s><t>\u1ED4</t>
+ <s>\u1ED7</s><t>\u1ED6</t>
+ <s>\u1ED1</s><t>\u1ED0</t>
+ <s>\u1ED9</s><t>\u1ED8</t>
+ <p>\u01A1</p><t>\u01A0</t>
+ <s>\u1EDD</s><t>\u1EDC</t>
+ <s>\u1EDF</s><t>\u1EDE</t>
+ <s>\u1EE1</s><t>\u1EE0</t>
+ <s>\u1EDB</s><t>\u1EDA</t>
+ <s>\u1EE3</s><t>\u1EE2</t>
+ <reset>U</reset>
+ <p>\u01B0</p><t>\u01AF</t>
+ <s>\u1EEB</s><t>\u1EEA</t>
+ <s>\u1EED</s><t>\u1EEC</t>
+ <s>\u1EEF</s><t>\u1EEE</t>
+ <s>\u1EE9</s><t>\u1EE8</t>
+ <s>\u1EF1</s><t>\u1EF0</t>
+ </rules>
+
+ </collation>
+
+ </charset>
+
+</charsets>
diff --git a/mysql-test/std_data/bug16266.000001 b/mysql-test/std_data/bug16266.000001
new file mode 100644
index 00000000000..1b24d231511
--- /dev/null
+++ b/mysql-test/std_data/bug16266.000001
Binary files differ
diff --git a/mysql-test/std_data/bug19371.MYD b/mysql-test/std_data/bug19371.MYD
new file mode 100644
index 00000000000..1b58a70832f
--- /dev/null
+++ b/mysql-test/std_data/bug19371.MYD
Binary files differ
diff --git a/mysql-test/std_data/bug19371.MYI b/mysql-test/std_data/bug19371.MYI
new file mode 100644
index 00000000000..06ee5b2d766
--- /dev/null
+++ b/mysql-test/std_data/bug19371.MYI
Binary files differ
diff --git a/mysql-test/std_data/bug19371.frm b/mysql-test/std_data/bug19371.frm
new file mode 100644
index 00000000000..7be45d6f8da
--- /dev/null
+++ b/mysql-test/std_data/bug19371.frm
Binary files differ
diff --git a/mysql-test/std_data/cacert.pem b/mysql-test/std_data/cacert.pem
new file mode 100644
index 00000000000..b445e77d7c4
--- /dev/null
+++ b/mysql-test/std_data/cacert.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICrTCCAhagAwIBAgIJAIAO/Ybiptv1MA0GCSqGSIb3DQEBBAUAMEQxCzAJBgNV
+BAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYD
+VQQKEwhNeVNRTCBBQjAeFw0wNjA1MDMwODQ4NTRaFw0wOTAxMjcwODQ4NTRaMEQx
+CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxh
+MREwDwYDVQQKEwhNeVNRTCBBQjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
++C46EQl1u7tQ6gb9eqc8V079gr8YmDPCEqtjO8bCIbchpjOpDITx0WZz36Sn9E72
+GPJwNip4FxLaPRIA3xNQHM5cE5U53qznlRx1Fc4O3hcWCvyCqNDl/vzPAh3pI6Bl
+Ku9hfHXpp93W812smVPe9haShEXGgbEPYGzvOfVdu/MCAwEAAaOBpjCBozAdBgNV
+HQ4EFgQUjIy/6OCTmqtPHBFha6/qzVk3yTcwdAYDVR0jBG0wa4AUjIy/6OCTmqtP
+HBFha6/qzVk3yTehSKRGMEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxh
+MRAwDgYDVQQHEwdVcHBzYWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAIAO/Ybiptv1
+MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEA8lD9zyB820Oq1aj7ZafX
+De/hbdt9RIl2tzgw2K3r1KZGdXJVL0vSt5fZ51Nq9lg7OPJy3iXf+caBJEp0IJpB
+uf4Gfr6zfXw+UlY6ZthRtHQHoXKcbskECjH5/ps/Uaa+dpVQ9O+Ii1rPzmgo6ztM
+s+xZ46ESBt4WiHXm8kwbU9Y=
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/client-cert.pem b/mysql-test/std_data/client-cert.pem
new file mode 100644
index 00000000000..fdd5c86a23f
--- /dev/null
+++ b/mysql-test/std_data/client-cert.pem
@@ -0,0 +1,42 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 1 (0x1)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
+ Validity
+ Not Before: May 3 08:55:39 2006 GMT
+ Not After : Jan 27 08:55:39 2009 GMT
+ Subject: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:d8:db:68:28:49:84:4d:d6:0f:5c:bc:3d:9a:ab:
+ 70:d5:3e:f5:b5:17:ba:ef:e1:f8:87:54:30:22:1f:
+ 81:07:bf:f9:24:7f:8a:54:10:e9:5f:e6:99:50:04:
+ d4:3b:55:a9:f1:52:ad:12:2b:5a:da:5c:be:8c:3e:
+ 5b:9e:b0:5a:19
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 07:57:bf:07:92:c2:8e:86:24:6b:0a:bf:e5:31:21:44:c3:60:
+ 02:a6:ac:9e:f7:db:7a:6e:fc:4f:d4:7b:54:18:80:47:d2:4a:
+ 63:0e:e3:f8:af:6e:58:e3:97:5a:2b:82:5d:76:20:d1:33:a0:
+ f5:43:a1:d1:51:f4:ca:c8:b3:1a:66:4e:0e:55:df:d2:e8:fa:
+ 83:18:42:f5:ec:66:40:f0:39:e8:f9:d7:cf:f6:dd:e4:7b:69:
+ dd:0c:92:d8:52:95:43:6f:29:3d:f0:8d:4c:dd:52:ea:6b:a0:
+ 39:0f:dc:59:a7:5c:37:6b:8b:05:44:b7:69:ea:a3:58:e0:4e:
+ ce:d6
+-----BEGIN CERTIFICATE-----
+MIIB5jCCAU8CAQEwDQYJKoZIhvcNAQEEBQAwRDELMAkGA1UEBhMCU0UxEDAOBgNV
+BAgTB1VwcHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFC
+MB4XDTA2MDUwMzA4NTUzOVoXDTA5MDEyNzA4NTUzOVowdzELMAkGA1UEBhMCU0Ux
+EDAOBgNVBAgTB1VwcHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15
+U1FMIEFCMTEwLwYJKoZIhvcNAQkBFiJhYnN0cmFjdC5teXNxbC5kZXZlbG9wZXJA
+bXlzcWwuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANjbaChJhE3WD1y8PZqr
+cNU+9bUXuu/h+IdUMCIfgQe/+SR/ilQQ6V/mmVAE1DtVqfFSrRIrWtpcvow+W56w
+WhkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAHV78HksKOhiRrCr/lMSFEw2ACpqye
+99t6bvxP1HtUGIBH0kpjDuP4r25Y45daK4JddiDRM6D1Q6HRUfTKyLMaZk4OVd/S
+6PqDGEL17GZA8Dno+dfP9t3ke2ndDJLYUpVDbyk98I1M3VLqa6A5D9xZp1w3a4sF
+RLdp6qNY4E7O1g==
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/client-key.pem b/mysql-test/std_data/client-key.pem
new file mode 100644
index 00000000000..22f8e23ab2a
--- /dev/null
+++ b/mysql-test/std_data/client-key.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBANjbaChJhE3WD1y8PZqrcNU+9bUXuu/h+IdUMCIfgQe/+SR/ilQQ
+6V/mmVAE1DtVqfFSrRIrWtpcvow+W56wWhkCAwEAAQJAK27WT6tZylUjQomZNQ89
+TBiOEbUtBbqWklQ0R8FTkH9uKV+8KYQ+k+tMkoAEGFfChB0YfofNQ2KZYWWw4yOB
+WQIhAPXXDQt73aou10s+cmKM3C3WzLmIZtrvm9wNBXWDGxgTAiEA4dG4cXrZfa1M
+TTbjzNU1/Jf50/M8SvZDWMPQWxJ8oqMCIH6zBpYUkHlVCsBMvsbrsc4uFfTIx7mu
+I7WVQGr/1sbhAiBf4uFirjtztgZUMx5/d3k5DH80lG/hlLf8FQl/4lWx6QIhAPHw
+CXfPUbUFl4r/i9Br5+exGol50qX4F3aP5Sh5EnZT
+-----END RSA PRIVATE KEY-----
diff --git a/mysql-test/std_data/init_file.dat b/mysql-test/std_data/init_file.dat
index 91e456e725d..cb8e0778438 100644
--- a/mysql-test/std_data/init_file.dat
+++ b/mysql-test/std_data/init_file.dat
@@ -1,4 +1,32 @@
select * from mysql.user as t1, mysql.user as t2, mysql.user as t3;
+use test;
+
+drop table if exists t1;
+create table t1 (x int);
+drop table if exists t2;
+create table t2 (y int);
+
+drop procedure if exists p1;
+create definer=root@localhost procedure p1() select * from t1;
+call p1();
+drop procedure p1;
+
+create definer=root@localhost procedure p1() insert into t1 values (3),(5),(7);
+call p1();
+
+drop function if exists f1;
+create definer=root@localhost function f1() returns int return (select count(*) from t1);
+insert into t2 set y = f1()*10;
+
+drop view if exists v1;
+create definer=root@localhost view v1 as select f1();
+insert into t2 (y) select * from v1;
+
+create trigger trg1 after insert on t2 for each row insert into t1 values (new.y);
+insert into t2 values (11), (13);
+drop procedure p1;
+drop function f1;
+drop view v1;
#
# Bug#23240 --init-file statements with NOW() reports '1970-01-01 11:00:00'as the date time
@@ -7,3 +35,4 @@ CREATE DATABASE IF NOT EXISTS init_file;
CREATE TABLE IF NOT EXISTS init_file.startup ( startdate DATETIME );
INSERT INTO init_file.startup VALUES ( NOW() );
+
diff --git a/mysql-test/std_data/loaddata5.dat b/mysql-test/std_data/loaddata5.dat
index 5bdddfa977a..6e1881bd8e2 100644
--- a/mysql-test/std_data/loaddata5.dat
+++ b/mysql-test/std_data/loaddata5.dat
@@ -1,3 +1,3 @@
-"field1","field2"
-"a""b","cd""ef"
-"a"b",c"d"e
+1 2
+3 4
+5 6
diff --git a/mysql-test/std_data/loaddata6.dat b/mysql-test/std_data/loaddata6.dat
new file mode 100644
index 00000000000..29e181ebb88
--- /dev/null
+++ b/mysql-test/std_data/loaddata6.dat
@@ -0,0 +1 @@
+ÿ
diff --git a/mysql-test/std_data/loaddata_dq.dat b/mysql-test/std_data/loaddata_dq.dat
new file mode 100644
index 00000000000..5bdddfa977a
--- /dev/null
+++ b/mysql-test/std_data/loaddata_dq.dat
@@ -0,0 +1,3 @@
+"field1","field2"
+"a""b","cd""ef"
+"a"b",c"d"e
diff --git a/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data
new file mode 100644
index 00000000000..90a8443cf45
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data
new file mode 100644
index 00000000000..763333c9b1a
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl
new file mode 100644
index 00000000000..8849978e293
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log
new file mode 100644
index 00000000000..780753239e1
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl
new file mode 100644
index 00000000000..8849978e293
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log
new file mode 100644
index 00000000000..780753239e1
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data
new file mode 100644
index 00000000000..157c28b67b3
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data
new file mode 100644
index 00000000000..e7602c89db7
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl
new file mode 100644
index 00000000000..e2b8f4977ed
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log
new file mode 100644
index 00000000000..c8037dd453a
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl
new file mode 100644
index 00000000000..e2b8f4977ed
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl
Binary files differ
diff --git a/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log
new file mode 100644
index 00000000000..c8037dd453a
--- /dev/null
+++ b/mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log
Binary files differ
diff --git a/mysql-test/std_data/ndb_config_mycnf1.cnf b/mysql-test/std_data/ndb_config_mycnf1.cnf
new file mode 100644
index 00000000000..c680bfd8fa3
--- /dev/null
+++ b/mysql-test/std_data/ndb_config_mycnf1.cnf
@@ -0,0 +1,15 @@
+[cluster_config]
+NoOfReplicas=1
+DataMemory=50M
+
+[cluster_config.jonas]
+IndexMemory=50M
+ndbd = localhost,localhost,localhost,localhost
+ndb_mgmd = localhost
+mysqld = localhost
+
+[cluster_config.ndbd.1]
+DataMemory=25M
+
+[cluster_config.ndbd.2.jonas]
+DataMemory=35M
diff --git a/mysql-test/std_data/ndb_config_mycnf2.cnf b/mysql-test/std_data/ndb_config_mycnf2.cnf
new file mode 100644
index 00000000000..3bf6b9a1194
--- /dev/null
+++ b/mysql-test/std_data/ndb_config_mycnf2.cnf
@@ -0,0 +1,31 @@
+#
+# Testing automatic node id generation
+#
+[cluster_config]
+NoOfReplicas=2
+Signum=39
+
+[cluster_config.cluster0]
+ndbd = localhost,localhost,localhost,localhost
+ndb_mgmd = localhost
+mysqld = ,,,,
+
+[cluster_config.cluster1]
+ndbd = localhost,localhost,localhost,localhost
+ndb_mgmd = localhost
+mysqld = ,,,,
+[cluster_config.ndbd.1.cluster1]
+NodeId=2
+[cluster_config.mysqld.1.cluster1]
+NodeId=1
+
+[cluster_config.cluster2]
+ndbd = localhost,localhost,localhost,localhost
+ndb_mgmd = localhost,localhost
+mysqld = ,,,,
+[cluster_config.mysqld.1.cluster2]
+NodeId=11
+[cluster_config.ndb_mgmd.1.cluster2]
+NodeId=1
+[cluster_config.ndbd.1.cluster2]
+NodeId=3
diff --git a/mysql-test/std_data/rpl_timezone.dat b/mysql-test/std_data/rpl_timezone.dat
new file mode 100644
index 00000000000..2df8a39f1e3
--- /dev/null
+++ b/mysql-test/std_data/rpl_timezone.dat
@@ -0,0 +1,2 @@
+20040101000000
+20040611093902
diff --git a/mysql-test/std_data/server-cert-des.pem b/mysql-test/std_data/server-cert-des.pem
new file mode 100644
index 00000000000..3b93d865d5b
--- /dev/null
+++ b/mysql-test/std_data/server-cert-des.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICljCCAX4CAQEwDQYJKoZIhvcNAQEEBQAwUTELMAkGA1UEBhMCU0UxEDAOBgNV
+BAgTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCMRAwDgYDVQQLEwdTdXBwb3J0
+MQswCQYDVQQDEwJDQTAeFw0wNjA4MjgxMTA4NTlaFw0wOTA1MjQxMTA4NTlaMFUx
+CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMREwDwYDVQQKEwhNeVNRTCBB
+QjEQMA4GA1UECxMHU3VwcG9ydDEPMA0GA1UEAxMGc2VydmVyMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQDEiOVZcWYzZe7I8xhhUwCzvmkZifAXeMTH+8XKGLHX
+NWF3FLduAmeAad9oOZgBKb+oWTdRDWXqwu6nYYUBfrUpaY27/wLkgWRgewL3LZnw
+W2FjhNsjx3gI2NK+Pix47q9d+a+5T4AW5+lK499l0K0k2cvyFdIerhDW8R0t8Uru
+twIDAQABMA0GCSqGSIb3DQEBBAUAA4IBAQC2LQcqLg52RbelWrKutlJ5E6rzugnJ
+ZAlbN9sM98O2xFiIGDA3tb5j9LAEjE0E+RqdptEYnvy9b3szhLYXtIILZTkClf9r
+Uwu1nUYPTyp+9ZYCa4fovOU5h1Ogv+9UZPds/LPDwWEn8K+lvscB4X57wJyuoEck
+1Mu41OA6h77181MydSdgZo0oquJDWhdCsYHXVFVs0F6naMm2uPMCTDiQVlhHJuTO
+VQMNIwxRFtvsv2tpsXsaP/8sT32d5CFebfxxSVnqQvJ4ZdIrphl6L43XU01rsEcE
+K8KYujZQ6SKws+HVcGqsr7TPgJfJE6D+5RazvvIQISPvx4eduebqzqdC
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/server-cert.pem b/mysql-test/std_data/server-cert.pem
new file mode 100644
index 00000000000..f420b4f3124
--- /dev/null
+++ b/mysql-test/std_data/server-cert.pem
@@ -0,0 +1,42 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 1 (0x1)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
+ Validity
+ Not Before: May 3 08:54:13 2006 GMT
+ Not After : Jan 27 08:54:13 2009 GMT
+ Subject: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB, CN=localhost/emailAddress=abstract.mysql.developer@mysql.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:d9:fd:da:b3:fb:7c:e0:b0:03:be:97:c6:a4:36:
+ ac:71:af:bb:2d:e5:84:ed:f3:8f:2b:eb:11:e5:aa:
+ 66:ed:bf:62:6b:e3:ce:fa:80:ed:90:ff:b9:4a:39:
+ 20:40:b6:f2:99:bf:2f:33:b5:f2:ec:3a:90:60:1d:
+ 9e:94:7e:a4:1b
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ de:5e:35:cd:7b:11:e6:7c:c5:7c:d6:27:4e:72:12:49:42:eb:
+ 6f:2c:96:f3:f4:00:78:a7:4f:9f:2d:7b:d7:30:39:af:49:4d:
+ df:b1:55:0d:30:be:23:6f:06:67:fd:dd:ba:98:66:36:c6:32:
+ b7:ed:63:fc:aa:49:cd:4f:72:98:3b:13:0e:f6:28:d7:d4:eb:
+ 04:6b:dc:e8:c7:04:80:92:e4:04:86:0b:ed:32:25:76:1d:a9:
+ 5c:a9:2c:18:2c:bd:bc:15:ed:e1:76:96:4d:bb:0d:41:44:06:
+ 2c:ad:45:bb:db:61:ad:17:11:cb:49:70:67:eb:c6:27:d3:91:
+ c8:f2
+-----BEGIN CERTIFICATE-----
+MIIB+zCCAWQCAQEwDQYJKoZIhvcNAQEEBQAwRDELMAkGA1UEBhMCU0UxEDAOBgNV
+BAgTB1VwcHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFC
+MB4XDTA2MDUwMzA4NTQxM1oXDTA5MDEyNzA4NTQxM1owgYsxCzAJBgNVBAYTAlNF
+MRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYDVQQKEwhN
+eVNRTCBBQjESMBAGA1UEAxMJbG9jYWxob3N0MTEwLwYJKoZIhvcNAQkBFiJhYnN0
+cmFjdC5teXNxbC5kZXZlbG9wZXJAbXlzcWwuY29tMFwwDQYJKoZIhvcNAQEBBQAD
+SwAwSAJBANn92rP7fOCwA76XxqQ2rHGvuy3lhO3zjyvrEeWqZu2/YmvjzvqA7ZD/
+uUo5IEC28pm/LzO18uw6kGAdnpR+pBsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQDe
+XjXNexHmfMV81idOchJJQutvLJbz9AB4p0+fLXvXMDmvSU3fsVUNML4jbwZn/d26
+mGY2xjK37WP8qknNT3KYOxMO9ijX1OsEa9zoxwSAkuQEhgvtMiV2HalcqSwYLL28
+Fe3hdpZNuw1BRAYsrUW722GtFxHLSXBn68Yn05HI8g==
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/server-key-des.pem b/mysql-test/std_data/server-key-des.pem
new file mode 100644
index 00000000000..b35d4ab223b
--- /dev/null
+++ b/mysql-test/std_data/server-key-des.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,D2BE7598C7E3BDA5
+
+1W3qPgw5ut80OhaAGVZZe/tfFiBAlwpX1SohdApWj+QYP+dK/mdEBhgI3BXTFNLW
+pJqDTzGlKtft7hHN6QDFEdZMKxej5+2iLu14V62o+5yQgUoqswoXcmmqJCJ7AvyJ
+yMBmGAzxRFlQsT8lf6o5TS1/efBvjvWhh3NG2Zq2LpyhWRRqA3kNhzktzt2WjDZe
+ZkKmZJJnArr/Aw7jEBC4sH+nmgxoR18GzDddRG12hv1AWyHc3+VisTBpyNzeBy17
+rxuQtqLzkAJmId723ddw83RVNSvBUUS3G0rx5O3HPobvZK89UqVxcXtIgc11WTVU
+N3DbcJq5it43Loo0W3gAngtESDm2E3rTadrmdUSDGv2wQ5dNFl6cQ1f397Sdd/WC
+A0grn1tKjJ6COp80Ymdyvn+stjv/+Rl1/KHSeG0lNeZxqjPPOJ7NHaKv7qjYsJ6W
+LT35/Xc3oCo5qk9FOlq/0tGjHxf6RcFr5U7k5ILKZs+RmvJ4Sv/VYShLfLTcfGbJ
+wBNfRKvcHZBQJQBb1+s/kRrjFFtvhrUwLz4+c9kskp+t4qRVYywUAnGGGsMs/GPm
+wYsLQZO6Bs5/taaVUyaJQW015J7FGGv+/7/A1dIhu73S/Xl/YcFbX/CMEVq2Lxxd
+hZdFIuaZ7LE+0MDQWsvYMYPDPLDH11diczb/jeKBdLPOzk/FUqVx3Fin1PpcaBxY
+b+7oZJhYdg/rAWDeQ/nji9qnEG8waK6x1hdkYPOrqqWQPfgM/LPsSrgWeuTSdx2B
+Ixi01UlBb5UP4K7UrjyddPobmcVjXaQLNe7zaq0+OS3UnIG85GtHrQ==
+-----END RSA PRIVATE KEY-----
diff --git a/mysql-test/std_data/server-key.pem b/mysql-test/std_data/server-key.pem
new file mode 100644
index 00000000000..a4842624c0c
--- /dev/null
+++ b/mysql-test/std_data/server-key.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBANn92rP7fOCwA76XxqQ2rHGvuy3lhO3zjyvrEeWqZu2/YmvjzvqA
+7ZD/uUo5IEC28pm/LzO18uw6kGAdnpR+pBsCAwEAAQJBAMieYdpmRoUaODf9wqh6
+ULXH/sG8i1vaXRcUHcJ50oRVfVK8/tGGvUuTDu6MeINTdahNDlYfjwOjKWVXys1w
+h6ECIQDs6s7DfczK2bKCLt0zqg24mZL3rOpGmDU+TatwN1yVgwIhAOuMzdVTX39p
+328+5WxJvBOFfxmSmqdDhIFpnRMvgguJAiByvKjT/km+970+1OllyvaIL0AA2OpA
+tBgdC0p6tyUMdwIgKuHAWzTJbu28UolVxQgLaFZmVCZ/ZzIAfnrWsLZ2a1kCIBq/
+ywJ2cpyFlgazu8AH6KCQa0ok9s70ElaB6FEC85Al
+-----END RSA PRIVATE KEY-----
diff --git a/mysql-test/std_data/server8k-cert.pem b/mysql-test/std_data/server8k-cert.pem
new file mode 100644
index 00000000000..a0750f9e69e
--- /dev/null
+++ b/mysql-test/std_data/server8k-cert.pem
@@ -0,0 +1,51 @@
+-----BEGIN CERTIFICATE-----
+MIIJHDCCBQQCAQEwDQYJKoZIhvcNAQEEBQAwTjELMAkGA1UEBhMCU0UxEDAOBgNV
+BAgTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCMQ0wCwYDVQQLEwRUZXN0MQsw
+CQYDVQQDEwJDQTAeFw0wNzA3MTMwNzU2MjVaFw0xMDA0MDgwNzU2MjVaMFoxCzAJ
+BgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRkwFwYDVQQKFBBNeVNRTCAgIAog
+ICAgIEFCMQ0wCwYDVQQLEwRUZXN0MQ8wDQYDVQQDEwZzZXJ2ZXIwggQiMA0GCSqG
+SIb3DQEBAQUAA4IEDwAwggQKAoIEAQDUFlh/3mwov5YaICFXOdJXgHV/uDkTjXB6
+9oxlipshQaYPX8LDT5vhI3gPciS1Z1sRE2dTcC4Mk2K4LDUIjp3WkeTfFAHZPV3E
+Y+3OH/ftH4N6SEIBTKE4EY6ah0nJtU98M0JhxOh5zHje6zQp1SkBnhEOQYexYRqj
+OtGloZ9RyF0iFAXcyu2Ap14u37l5Yla0cyPzvZqP4mFYlcXwaRfAacJmqMM1vuQv
+Fx1JITUTBugMF3VGZ1F0tw63EIUH/FW/WWncPqvG18na40qlv9ZkBw0FhZeKS8cK
+JIY5y4J30jn/eV8p1lTO7K+ASTuGZWmdRDgjUG0Y9OGuKsPPoaE6ml0HTnMBsBSQ
+fXUq9XkwGt8DTgPioAKHBHjLbILEy4FMYWrlTZlPTzNqyhayec/2T15oDladNSt7
+JpDLpX70UECXFhdEGxsGxtXdKbIBvNm2yT4X2nxW9ItsECjSSgD+94TgGoa8QKDw
+rpmgq+Wqpm54CZ1vN1oqyMUw1sjNEX/iLByHAjSALby2Kffk5cl5mnsR6d/k4jsi
+c3Qsciwkd+rQt/8VMhS2ns3nkez/BK3FvQA2Ms8xJhFLfszVrBhnjcFRTNT2+/KM
+lr1oT5Q1XZKL7qVXTpabPL51JlVBL5CSHl1QRkffsqfqcgJkcHBq+kKjUiFs4lad
+hTrvNBCXYa5+NkA2QqIfdOpNwl62/gdE7/7zU1uh40vkVKyzL+APkLPywPEXBOpQ
+yIDNkgoXmS10+JMD44K7uZyUmxZL7W7Xbi30NuEFrVOzoUmVXhapPbpQnkQHxn8n
+tqKPYXdBcvXcCKyJ6i79H2Vk9fM6rBYiwNcE7QyWqfd2QMjzr76veF04sXkPR+tG
+5Y1lrF9Zp3vabFXQg2RJuGA3rV6MR2GFNXuChIYu410vhIhPNtmdKEVoIVZsFsug
++dtn0PDCFrR8VEd/sshp0naNa9Ad1lY+marJkOJOVpPgCs2yJDPAUB/YdvSJ4avW
+6ZdvNTwhBL8fEJMS2DSqkaa6A3+i/SqITpU8ToJxsMGagBsLieXgvJALFysSRfR/
+2dmEu9/J0PPc28inHXwjiLb99VKlkuEz8wX9UkuoqFl0pLa8jrlM8hzdPQ9QHb3k
+9c5knfgPCYkOIWwGXH+NwANHdQRK7CmGAFV24k9+P3q0g5ikabVHr+4ZQ3WPd+1H
+K0+Msbb/vv53vFJWa+pYeNeFcwNCyW2kJBTMiI6qmlL4IWCcX+QDzpRLalbAWWHj
+l5Zk39QEaCL024DYK948IDXCqDg6utEs7YnMdaIF0meYMKjehZFp0fVQ8e8Od+rp
+bbjdj/w60wMgBpSOeYxVrs3QKNZd/if4Az3LggoVHB09SjXKiWpvAgMBAAEwDQYJ
+KoZIhvcNAQEEBQADggQBABncOBW0wQwJdEB6W3d9CrhFp40q1OM54GPfX0/0aUfP
+aOQPxS1uCKcFhxAmR4OT9RiJx+0bhDctekkuMkj5yy3u0a/4PxHIhnVxXTyB0/Hj
+N1gLz6cQricunl6Q4Ldi54gR5/KUehKLBWnqsfxhgzWBHosvhlJC0xh/uio7JTqz
+ns60djyL7R4wGbSqiGdhT9L2HfpJo3dmmWLDxe02jaHkbL1Z6NQMxrRgs3+gctp/
+Wd5UxNl4BHbNsSbzaK9V9gXUcj4TjZGGSqVki0+pEZ3dmksGZdoW9cSKtzKvgUQ6
+vhhqO4dcopxkY2zYeVOpspgTm0XLZSbNPXv5rSFwa4cpWSfD7u8o8KhHvkkSMahw
+cMuH17W4voHHFDtWP8Oq9rA7uE/4/LKCl0JmJl2RWM+G6PMH8w4X4auHPssgRvb/
+Ge1AvgqQJrvi7zWx3XYKKJ0ISBy7fi5Jo/wYgLagRYcG3mwdm1+gAdw+77C/ZGmG
+FbWFIPB1+Mc6azhhk9m/vqP7o/Wuncc99mp2zPMzdAEzuzp/IJ9UJNat0edA7jiC
+bQ7JSRJ1DSzdJZSWWHdardLNKipPfrEHVm7f5QvL5DQLnGpt+rCWL361KsGtvETC
+o+Ph7+kDJsJLokUYfs/BEZopzspNPy/NQ2ECwQp7T4Yq/PBE6Ce/dFaoZysMUOrG
+TcALtJW6It98dRmTJPiqjlrlHNTrfoV3Aiy+tK4rpyGuApSHc+1Y+t7YvWotRlQ4
+GEboBqR8evjDPJ1xAaUZqwLkebf3mlpl4MzHM9uNWBkQdJilkQs/IrAaApG3Ayt0
+nIymNHmDslBEdrRGmT4aNWAWYvVYzyKDy3H0fzYdWwuA9goJUL4tj3eMJa8pgEU/
+rG3HfflVi+xuwm1UnLXPSIE8hixgV8ebnwcCnEjlUBvwpl7f5Ub40jKcdycdGvVu
+gcTUzuRl1+Ikfk/MXKPbdi4A5Pjtz6AG4Ez9q5j7X77JqskTI5Z/f1RPiKwFBJHg
+cN4+BPnEuSWGcjiNDOfQxhk5exlWRf/gpEhnQpGHe3a7tZgfxHUb/pWU9BYpf8OH
+vtV3WSDXlUqsEEH6/bmvj8lmFWJLmeZv+qLy1wHxcXR9/GJ6TwCF8niQIl3MrBAL
+sKPLft1drmpqdIQpZQIJxtN/AQuD9mxEdW7XA6rkvFySKcswJpS1QjkSWpafCBWE
+wu+SPxZL8oFrnNMTU3JloUjcRp70FkNXLLm/Dy+MjW2qFBtIoBgNptVGp94L1uZS
+amd2XJMcOQ+X9fcH3wAdM3IHGn3NiLf6eTW92JNNA0IN6aNtyVaJKmFJ1JfXOl9r
+ujr4SorRSesaerjIcuzW1u1YE5RlgeI4kizV2/D5kYc=
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/server8k-key.pem b/mysql-test/std_data/server8k-key.pem
new file mode 100644
index 00000000000..608593a5096
--- /dev/null
+++ b/mysql-test/std_data/server8k-key.pem
@@ -0,0 +1,99 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIISKQIBAAKCBAEA1BZYf95sKL+WGiAhVznSV4B1f7g5E41wevaMZYqbIUGmD1/C
+w0+b4SN4D3IktWdbERNnU3AuDJNiuCw1CI6d1pHk3xQB2T1dxGPtzh/37R+DekhC
+AUyhOBGOmodJybVPfDNCYcToecx43us0KdUpAZ4RDkGHsWEaozrRpaGfUchdIhQF
+3MrtgKdeLt+5eWJWtHMj872aj+JhWJXF8GkXwGnCZqjDNb7kLxcdSSE1EwboDBd1
+RmdRdLcOtxCFB/xVv1lp3D6rxtfJ2uNKpb/WZAcNBYWXikvHCiSGOcuCd9I5/3lf
+KdZUzuyvgEk7hmVpnUQ4I1BtGPThrirDz6GhOppdB05zAbAUkH11KvV5MBrfA04D
+4qAChwR4y2yCxMuBTGFq5U2ZT08zasoWsnnP9k9eaA5WnTUreyaQy6V+9FBAlxYX
+RBsbBsbV3SmyAbzZtsk+F9p8VvSLbBAo0koA/veE4BqGvECg8K6ZoKvlqqZueAmd
+bzdaKsjFMNbIzRF/4iwchwI0gC28tin35OXJeZp7Eenf5OI7InN0LHIsJHfq0Lf/
+FTIUtp7N55Hs/wStxb0ANjLPMSYRS37M1awYZ43BUUzU9vvyjJa9aE+UNV2Si+6l
+V06Wmzy+dSZVQS+Qkh5dUEZH37Kn6nICZHBwavpCo1IhbOJWnYU67zQQl2GufjZA
+NkKiH3TqTcJetv4HRO/+81NboeNL5FSssy/gD5Cz8sDxFwTqUMiAzZIKF5ktdPiT
+A+OCu7mclJsWS+1u124t9DbhBa1Ts6FJlV4WqT26UJ5EB8Z/J7aij2F3QXL13Ais
+ieou/R9lZPXzOqwWIsDXBO0Mlqn3dkDI86++r3hdOLF5D0frRuWNZaxfWad72mxV
+0INkSbhgN61ejEdhhTV7goSGLuNdL4SITzbZnShFaCFWbBbLoPnbZ9Dwwha0fFRH
+f7LIadJ2jWvQHdZWPpmqyZDiTlaT4ArNsiQzwFAf2Hb0ieGr1umXbzU8IQS/HxCT
+Etg0qpGmugN/ov0qiE6VPE6CcbDBmoAbC4nl4LyQCxcrEkX0f9nZhLvfydDz3NvI
+px18I4i2/fVSpZLhM/MF/VJLqKhZdKS2vI65TPIc3T0PUB295PXOZJ34DwmJDiFs
+Blx/jcADR3UESuwphgBVduJPfj96tIOYpGm1R6/uGUN1j3ftRytPjLG2/77+d7xS
+VmvqWHjXhXMDQsltpCQUzIiOqppS+CFgnF/kA86US2pWwFlh45eWZN/UBGgi9NuA
+2CvePCA1wqg4OrrRLO2JzHWiBdJnmDCo3oWRadH1UPHvDnfq6W243Y/8OtMDIAaU
+jnmMVa7N0CjWXf4n+AM9y4IKFRwdPUo1yolqbwIDAQABAoIEAQDI3u0tFoWMRoCs
+99d8HLiaxYED2YC9gw2QeKjal198LQhRsVnu0ByMLKLOxkX8RgrbbmxDe5Exufob
+A0urciAOFJoXqoRhs5x2oEqgGmkf/ePx0jQptOFREFfnBdGeKIpC0O3DWdLxYPbt
+8wixwkEXVhVDUk9pcdXf2ZqsbBpQRBvpZdtzlgNCAcLTVHP/gmMqf48CkIauVjPq
+ydfybibfx4sm3hodclH+Q78p/zicb8MhiKo7ZymgCKz4N743pQe1tsLrpbPeHY0C
+MpoFyF8O2Bq+KxwvELxQX+19GcHVKJhj3hmCr4wde9BxCWtGTBCusekVkVvy8iQ5
+aCmTIrtonMEVZXjJlXK0sw5hBKOmKx0jrSVC5FfgdxzNVlW4fCJXLEEpMsjMc+/3
+6bV7jqGn4N5CYaopNS2ccxdaucE3NjcmofahO6bqUTJHSPFecfYmCA42W2m+ldjj
+HZ78JLkyw03nT1hjPjbwHf5FTem1KfKg4EJrDprowMT7D8KZb0SW+z59pFoDOM5u
+Heu6sOSUtvpvKfozdw2ZAI58dhpW4/jTfCEtewRhPqE3/V7g3haTnQFxU8gm/a4N
+uefZTCjFE16QWNuvnUrJWw/DlvOBY8GjpQCWY0mDeBHPNOI0Xg9oRTgOCrKSLUya
+YSbg6BmhSKwKsYQU834jrQb3fXFlXZVIxlcNePOWMhHFFNAHucHF822Nr7u/3FOT
+twcbBIOXCGfDT6ed8d4dNum1L7k9Blju16CWkfuciL8PGXY4mGAmF4nZMXGZgK8B
+Cz9cxhtvFLe8gz5615DtBAsuVm7Q4AAHiULAMg6t6auyxCb8pXbAL0Ec5X4zS3+f
+I2riODYiyHCh/qTtjawOzUZZEtjZRMSDi+jk8wjjDdkFU8McOaYoPyqT3TDy2v6m
+NiPJs8GWQ2NCNo9CNoGbEIIFFP5iSz18XLFAOF+2dN/KHHl9nKyi7kOhYbbzoNku
+2wQV40yVsrS4E/hd/7+2IB2Muduxiu7NxCUSUXsw6p0hZTYMpIoduEfRSk1al0lS
+862GD8JgJ4RhJ0uIOTDJS52MQmO8zFIL86emdjjV1CzVvadYSQLTX7ZgR0i8g46A
+y0muCFAC8EJpnEtHzqtQ/z22zB8TCJShFuUK9KF6K8nOlbc6ShcUXU2J6r1sc8aT
+Dx0yzRXfCL15fpCJBP49EYaKhArTNmFRa2GaLiJP0OYkTrrwVOGuS6x2+kRVoP/8
+BcNMZ5x8mXP1LgotHCztgMKX30Hn5CLxbH8QfcWKemGva1jBmhCWxS17Gh3Ld9T3
+/WKkBa6JDq83rlO84x/iF3mB3tYkZPfcYtYURn5wwm/BmVV/9G1VwAatJdxmfCSy
+5JwC9WDBAoICAQD7xStPk3lq+qYHAtLZidujmzSNv7XG+E8UC9yvMRFuBwSM5ZE4
+YGD2LDev2nghB+7OSR8KJIkxeaNjP91Zf3s8wjCuxLg/cLGI6mf6uWy9+zypFg3i
+J+ylDKa6NBuqYyY75W7Pj63xvGQlw5kX5+mB3ulQbActT4cUiVdEkyDytzubqLzY
+s15QGFrL9gqLow+C+7LKQKdeXq8OavFV1PWkMDAJUki6cIir9m+f5Mqr2cQCLKgx
+38aX8c9UWJv6pI5zQQuBjpaBOwz07WnyTXiFpc71x/8i85uLGDM0e3VO5ZPGeRBj
+jZ0ucHatOHJ3i/nPRG16rsPR+q97QiDHoLF0quHEG+ND+rwTBzNGIwzYRE16p1o3
+UdzFk1RzlDCfOX7QgszCwK6mf8TbCK9f/FxJ5e6TCkt3iHXSrlLS4op6k9nEpKFH
+KHf4nPtCy9GriP+A8+dA6K1s+DgejoIojBMBTsnl4TEf+m8BaenTXGuU7KYyc8dR
+JqmpmDggDRT/ImHRhXirY7lIIYXnI7tRjN5gmnKpEiHScT1r848zpQ4gWH1Dx/ks
+mKT6NZ8nF45saQCYbKEYc0RH9Kw0O7vr1kVtNPc2dEZtVgt4bC5fnl7xX1/YTk3m
++h1qfzbku/+MX5rRjHLR2l8a71UltlnnnpP5NKBBgtxll6aCIkk6CdH8YQKCAgEA
+16aBaVa0cOZmiOQwPQkpuXIbV7msz1ttWEAHElCy6waniOCON89PYFCb7F0NjV3Q
+i+pGaRgG1iZGbjjHwyqTrHhMloFm+IsSWZqOZzrHgSJgA4bgTJFgp+5b31sQXGfJ
+14QQSqMJLC61/M+CnrNtiuI3IVHx6BFRxI42uE7PfTyUMaFhL9F0/SLl0Mw0oMPj
+S5kmarduuKpRn1tN9WO+ywEvYwopvH3e9PBssZzPpttlLiE/Wulb0iEtlVXYB9DS
+Vzc94N2dzFMIvWUDF9BQ+IBMRzXRm15Psy6LfzoK+9S6w38Dx3BVV8ykSMKeW1UR
+ZwTajjdnIBLdE3onD5XMmrSOPw/WtV5zXEYY4DObhIPoN2iD8GJP0IubPb6fonH5
+VHmuVZoXrroFEe7rdt2wgmBdPPl6fqvBKVhjJOpYQctrFLgWh63bXZKaBWqbQM9W
+fECq8We1VN3fzqwfwJQit3z5R/DjQNk8eQx7SnnkOzAY6ZgpysHCwaoPOnPVuiYF
+ZU0+X3iwfsdeefWmGEDIzoZk6nYaljs61lOhhEoWHngZHDkMOp5kg0n9f8BUP02+
+WJ4QhwzZ73hr4FPBuPHHXECw9TCAgCBHBFrnrXg5QalDhRXz4F+3tCY7UUpD/ikZ
+L6Daxm5zGJ5u3rXs6WwKy2EHVVS9zfqs4Q259pQdWM8CggIAcIKpGzOVM+h033c0
+kIBZxeAq+Rlt+0+lzxiJ80RjPJ8oOmqwndf8HKaf8BcaTfCEmGz20QqIwLJSAJ1e
+posgoINLTB6fE8Kho8TU2KeaX7/xWMKBS8p5pzxjGZ0Fq/wI7wVVoq3blsaQnout
+U5CQujfKXeUYw/fhLp09gWiadbzKh4I9ej2V7QclNDZsegBRg0BForqH0NVRN4k0
+9h1n9IqQPOonlCGMAgTr1zFgHLIBNNOOClOtJOOruk6qzbRR8FFl+eyld3TTEnUy
+PlS+gkMZnJ5WduEUZnFXGKH/R1Wy1yPs3gA/+KvLbRdnl+LWrPgwUH3fBmwXlWZ0
+zaETDEb9Ay1PP2bCO2KhWDt7lv3W/fPhjg0oMqbnO4tCuzTvZfC93l5K7h708skL
+zkIxX9i/57fXB8DUnmTGoHUaWzLNQ2IqrGj6TACjDDOXLCfZvl/AvTH9pk+6jHU0
+1zfZmmECOpeK43Z/ussA8jI/5Vpn3u38aVh0w1RB6JjQBD/yJLaXuUekWgaZFzTR
+ldz014jNqp5uvONcBmzeVr7w9CV3PR4VTQed2i6yQ770J6A44uTQjOOd5OYDOohj
+Lz4e4nGj9BK8Eko8cAEwLAzS8tyjMT+08n5dPOVCu68DwVBMGE7CVONYUuoXS/YU
+cTxddiU9ZGk9Yq0FfOwjeys+SqECggIAdn3M2b6Egwx2Bn2ra74fKQBjub4SEBWi
+bT0xJYUl6jHL2E/alRvZ94gTRLqUebq0nkxpx9El4IFDbcjRKpG4dqnbG0+a7rIr
+sQRVfq8zc+cZbparpCa1P1CfNojo4n080KiF8xzGK3q3EGRM1zqr1AYcWLiX/PWX
+QjMKKhdTtvKUUvjjV8z1RSnpsOKjgDpiJ+XM0BJeSiV7l94pZc4axZyvFvI8oI9g
+9KEueCE7j+k5HTGziBZ1F26Xh1iVzSWWjcmSvH3I+L4fLUHVgz45X3HPd8lAlOgr
+Tr8icxPHeTwYKtcdknZMzmNpWXlmXbTOTRbDqCUVCvCSfOM/lzauJ8tR5aCkTx/I
+r0js3jQ9HYEFFXzeEjVSubob4L9fI3kQkLQTcIGsxZr8si/fPX7uP5UHZjuGbRee
+mUMxptUFDZHiEo5cAs0qna2x54v+JoxGbxtxUhez8R/Am+TDxaMfuEZ5Cmh31egH
+bFPJYtC68TKqXZ/4RqpUgukYWPvQ0emWSWU6AmdkQyT06nppeyYNsDz0MkgWr7l3
+yNBHDVNP+Anxcip+Z68kd2cuXQWmxOnIzxR67FnJXeWDEM20whRHgI8jLHYsBTq3
+CtOQPSaz/zosGXJIgF7Xp6riKPZvibW3Ww49Z47EuyBCtyirNk7hV4LG7sITUJyO
+ZVKPfcdAoM0CggIBANz3EBZGyt3af2UjFFKbazV01KcHF8OxqdQzsLqHCXWb98V6
+PggQnrF76U7DvqOWho9djDBPrbQU55HG5nXq+eZKPwhsOdwQ8bxOhaVxQcATZOI7
+FtJYnjM1/+zMzzS0iPR5DA2pbB3AKH2Z+wODmF23CK2XTwoJyPKxvlyGKrIqq3gN
+kOmocNu2Qm5bJf+D/hYPm5Ust2wzD52NnvJU536bZ0ZMo1/kaK2idqSAzqo4TkR1
+j9U0fdW2rIBDo/qFmBBdJhYVjYLj4qR8CEEoIjshD4Nztf1xRM5C8irE/gJcT5+r
+4bPJJ5TjAtHxPiQqZruSprSEUbMsPqBap64ow0SmbNNWSgyaz2ha1rG0p52NBzH4
+XM52LBqS9QHPHvB0ooYfBTfPpDM3CePuuNyzjPAw86ncUo38FKXuc2oViJJ6C5I7
+v2sKhLK5gu3uPBB2ludDEXSpWBqiraynolOT/o52r+taYp9YY2WU3GrhOiV/A1FV
+Nl118xiF6FOFpEeTbhHvy27A8kZEKXgeSs+f4aC0XG9kLVD1CiCbQiqHTDcDS4nV
+O1N1eQxhP81X+YKE4Lgufh07REqYVwtCj2lQcMp73WDyfBLKTEFlmHusoqmT5JCH
+X0BWNjk5Dn1g5h63/lQb+EjNRILBhDFYhrDRDQtw5p0/7IY3AcNKDUHv+XGn
+-----END RSA PRIVATE KEY-----
diff --git a/mysql-test/std_data/trunc_binlog.000001 b/mysql-test/std_data/trunc_binlog.000001
index 2c2b4ec6ce4..3da2490eab2 100644
--- a/mysql-test/std_data/trunc_binlog.000001
+++ b/mysql-test/std_data/trunc_binlog.000001
Binary files differ
diff --git a/mysql-test/std_data/untrusted-cacert.pem b/mysql-test/std_data/untrusted-cacert.pem
new file mode 100644
index 00000000000..981dd004fc6
--- /dev/null
+++ b/mysql-test/std_data/untrusted-cacert.pem
@@ -0,0 +1,53 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 0 (0x0)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=Oregon, L=Portland, O=sawtooth, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com
+ Validity
+ Not Before: Jan 18 20:12:32 2005 GMT
+ Not After : Oct 15 20:12:32 2007 GMT
+ Subject: C=US, ST=Oregon, L=Portland, O=sawtooth, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:cf:2b:14:00:b0:3c:df:6f:9e:91:40:ec:c8:f6:
+ 90:b2:5b:b4:70:80:a5:a4:0a:73:c7:44:f3:2a:26:
+ c4:2f:f1:3a:f1:c3:c4:ac:fc:c3:d2:c3:bf:f5:d7:
+ 6a:38:42:ad:22:ab:c8:c4:4b:4c:1d:16:af:05:34:
+ 7d:79:97:5e:e1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ CB:0F:1F:E9:A2:76:71:C9:E6:E8:23:A6:C1:18:B7:CC:44:CF:B9:84
+ X509v3 Authority Key Identifier:
+ keyid:CB:0F:1F:E9:A2:76:71:C9:E6:E8:23:A6:C1:18:B7:CC:44:CF:B9:84
+ DirName:/C=US/ST=Oregon/L=Portland/O=sawtooth/CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com
+ serial:00
+
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Signature Algorithm: md5WithRSAEncryption
+ 27:f7:3d:fb:39:6f:73:a4:86:f3:a0:48:22:60:84:e9:5c:3d:
+ 28:36:05:16:44:98:07:87:e1:5d:b5:f3:a7:bc:33:5f:f4:29:
+ a9:5f:87:33:df:e6:8e:bd:e2:f3:0a:c8:00:69:ae:3d:41:47:
+ 03:ea:0b:4c:67:45:4b:ab:f3:39
+-----BEGIN CERTIFICATE-----
+MIIC7zCCApmgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBiTELMAkGA1UEBhMCVVMx
+DzANBgNVBAgTBk9yZWdvbjERMA8GA1UEBxMIUG9ydGxhbmQxETAPBgNVBAoTCHNh
+d3Rvb3RoMSQwIgYDVQQDExt3d3cuc2F3dG9vdGgtY29uc3VsdGluZy5jb20xHTAb
+BgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTA1MDExODIwMTIzMloXDTA3
+MTAxNTIwMTIzMlowgYkxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZPcmVnb24xETAP
+BgNVBAcTCFBvcnRsYW5kMREwDwYDVQQKEwhzYXd0b290aDEkMCIGA1UEAxMbd3d3
+LnNhd3Rvb3RoLWNvbnN1bHRpbmcuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlh
+c3NsLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDPKxQAsDzfb56RQOzI9pCy
+W7RwgKWkCnPHRPMqJsQv8Trxw8Ss/MPSw7/112o4Qq0iq8jES0wdFq8FNH15l17h
+AgMBAAGjgekwgeYwHQYDVR0OBBYEFMsPH+midnHJ5ugjpsEYt8xEz7mEMIG2BgNV
+HSMEga4wgauAFMsPH+midnHJ5ugjpsEYt8xEz7mEoYGPpIGMMIGJMQswCQYDVQQG
+EwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDERMA8GA1UE
+ChMIc2F3dG9vdGgxJDAiBgNVBAMTG3d3dy5zYXd0b290aC1jb25zdWx0aW5nLmNv
+bTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb22CAQAwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQQFAANBACf3Pfs5b3OkhvOgSCJghOlcPSg2BRZEmAeH4V21
+86e8M1/0KalfhzPf5o694vMKyABprj1BRwPqC0xnRUur8zk=
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/vchar.frm b/mysql-test/std_data/vchar.frm
new file mode 100644
index 00000000000..5f037261d5f
--- /dev/null
+++ b/mysql-test/std_data/vchar.frm
Binary files differ
diff --git a/mysql-test/suite/funcs_1/README.txt b/mysql-test/suite/funcs_1/README.txt
new file mode 100644
index 00000000000..bf6ac945cb1
--- /dev/null
+++ b/mysql-test/suite/funcs_1/README.txt
@@ -0,0 +1,134 @@
+Matthias 17.06.2005
+-------------------
+1. I changed the database test1 (dropped + created in SP test)
+ to test4.
+ Please adjust the SP test cases.
+2. There is a difference between my definition of
+ innodb_tb4 + memory_tb4
+ to the latest table definition used by disha.
+ Please adjust the table definition if needed.
+3. The data load files are product of the Disha data generation script
+ (downloaded ~20 May ?) + modified by Omer
+ These load data fit fairly to the table definitions.
+
+4. How to execute the "small" test with 10 rows per table.
+ Do NOT set the environment variable NO_REFRESH to a
+ value <> ''.
+ Start the test for example by
+ ./mysql-test-run.pl --vardir=/dev/shm/var \
+ --force --suite=funcs_1 --do-test=myisam
+ The "result" files fit mostly to this variant.
+
+ Any database not in ('mysql','test') and any tables
+ needed within a testcase ( t/<storage engine>_<test filed>.test )
+ will be (re)created at the beginning of the test.
+
+5. How to execute the "big" test with many rows per table.
+ Replace the directories
+ suite/funcs_1/data and
+ suite/funcs_1/r
+ with the appropriate ones for the "big" test.
+ Set the environment variable NO_REFRESH to a value <> ''.
+ Start the test for example by
+ ./mysql-test-run.pl --vardir=/dev/shm/var \
+ --force --suite=funcs_1 --do-test=myisam
+
+ All databases and tables will be (re)created by the script
+ <storage engine>__load.test .
+
+6. I am not sure of the files
+ ./funcs_1/include/create_<whatever>.inc
+ are in the moment needed. I included them, because I
+ guess my VIEW testcase example needs them.
+
+I guess the pushed files are far away from being perfect.
+It is a 8 hours hack.
+Please try them, create missing files and come up with improvements.
+
+Good luck !
+
+Matthias 17.06.2005
+===================================================================
+Omer 19.06.2005
+---------------
+1. Changed the structure of the memory_tb3 table to include two
+ additional column f121, f122. These columns exist for the table in
+ the other storage engines as TEXT. Since memory does not support
+ TEXT, Disha did not include them. How ever I am using them in the
+ Trigger tests so added them to the memory definition as CHAR(50);.
+ Also modifyed the DataGen_modiy.pl file to account for these two
+ column when generating the data.
+ - checked in a new DataGen_modify.pl (create a 'lib' directory
+ under 'funcs_1').
+ - checked in a new memory_tb3.txt
+2. Added three <storage>_triggers.test files based on Matthias's
+ structure above.
+3. Added three <storage>__triggers.result files
+4. Added the Trigger_master.test file in the trigger dierctory
+ Note: This is not complete and is still under work
+5. Created a 'lib' directory and added the DataGen*.pl scripts to it
+ (exists under the disha suite) but should be here as well).
+Omer 19.06.2005
+===================================================================
+Matthias 12.09.2005
+-------------------
+ Replace the geometry data types by VARBINARY
+ The removal of the geometry data types was necessary, because the
+ execution of the funcs_1 testsuite should not depend on the
+ availability of the geometry feature.
+ Note: There are servers compiled without the geometry feature.
+
+ The columns are not removed, but their data type was changed
+ VARBINARY. This allows us to omit any changes within the loader
+ input files or data generation scripts.
+ The replacement of geometry by VARCHAR allows us to use our
+
+Matthias 12.09.2005
+===================================================================
+Matthias 14.09.2005
+-------------------
+ The results of the <storage_engine>_views testcases suffer when
+ executed in "--ps-protocol" mode from the open
+ Bug#11589: mysqltest, --ps-protocol, strange output,
+ float/double/real with zerofill .
+ Implementation of a workaround:
+ At the beginning of views_master.inc is a variable $have_bug_11589 .
+ If this varable is set to 1, the ps-protocol will be switched
+ of for the critical statements.
+Matthias 14.09.2005
+===================================================================
+Carsten 16.09.2005
+------------------
+1. The results of the datadict_<engine> testcases have been changed in nearly
+ all occurrencies of --error <n> because now for the INFORMATION_SCHEMA only
+ the --error 1044 (ERROR 42000: Access denied for user '..' to database
+ 'information_schema') seems to be used.
+2. To get identical results when using "--ps-protocol" some SELECTs FROM
+ information_schema has been wrapped to suppress using ps-protocol because
+ there are differences.
+3. The test using SELECT .. OUTFILE has been disabled due to bug #13202.
+4. Fixed datadict_<engine>.result files after the change that added 2 columns to
+ the VIEWS table (DEFINER varchar(77), SECURITY_TYPE varchar(7)).
+===================================================================
+Matthias 25.08.2007
+-------------------
+Fixes for Bugs 30418,30420,30438,30440
+1. Replace error numbers with error names
+2. Replace static "InnoDB" (not all time available) used within an
+ "alter table" by $OTHER_ENGINE_TYPE (set to MEMORY or MyISAM).
+ Minor adjustment of column data type.
+3. Use mysqltest result set sorting in several cases.
+4. Avoid any statistics about help tables, because their content
+ depends on configuration:
+ developer release - help tables are empty
+ build release - help tables have content + growing with version
+5. Add two help table related tests (one for build, one for developer)
+ to ensure that informations about help tables within
+ INFORMATION_SCHEMA.TABLES/STATISTICS are checked.
+General note:
+ Most INFORMATION_SCHEMA properties (table layout, permissions etc.)
+ are not affected by our variation of the storage engines except
+ that some properties of our tables using a specific storage
+ engine become visible. So it makes sense to decompose
+ this test into a storage engine specific part and a non
+ storage engine specific part in future.
diff --git a/mysql-test/suite/funcs_1/bitdata/bitdata_master.test b/mysql-test/suite/funcs_1/bitdata/bitdata_master.test
new file mode 100644
index 00000000000..c59fb3e011e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/bitdata/bitdata_master.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/bitdata/bitdata_master.test
+
+let $message= NOT YET IMPLEMENTED: bitdata tests;
+--source include/show_msg80.inc
+
+exit;
diff --git a/mysql-test/suite/funcs_1/cursors/cursors_master.test b/mysql-test/suite/funcs_1/cursors/cursors_master.test
new file mode 100644
index 00000000000..19961503b77
--- /dev/null
+++ b/mysql-test/suite/funcs_1/cursors/cursors_master.test
@@ -0,0 +1,4 @@
+#### suite/funcs_1/cursors/cursors_master.test
+
+let $message= NOT YET IMPLEMENTED: cursor tests;
+--source include/show_msg80.inc
diff --git a/mysql-test/suite/funcs_1/data/innodb_tb1.txt b/mysql-test/suite/funcs_1/data/innodb_tb1.txt
new file mode 100644
index 00000000000..4c20ed1661b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/innodb_tb1.txt
@@ -0,0 +1,10 @@
+ a`0 a`0 0` 0` a`0 a`0 0` 0` ! 6 163 103 238 3058 30243 22056 9444 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 -5 1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -5 1 1 1 -5 -5
+ aa0 aa0 1aa 1aa aa0 aa0 1aa 1aa @ 9 207 1 246 13214 57220 1505 58996 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 -4 2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -4 2 2 2 -4 -4
+ ab0 ab0 2baa 2baa ab0 ab0 2baa 2baa # 3 50 103 193 10965 3038 31585 20149 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 -3 3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -3 3 3 3 -3 -3
+ ac0 ac0 3caaa 3caaa ac0 ac0 3caaa 3caaa $ 62 188 47 176 5103 58378 13178 38317 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 -2 4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -2 4 4 4 -2 -2
+ ad0 ad0 4daaaa 4daaaa ad0 ad0 4daaaa 4daaaa % 59 15 21 80 17942 48443 12646 53903 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 -1 5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1 5 5 5 -1 -1
+ ae0 ae0 5eaaaaa 5eaaaaa ae0 ae0 5eaaaaa 5eaaaaa ^ 86 223 103 88 3880 31147 5801 28348 0 6 6 6 0 6 6 6 0 6 6 6 0 6 6 6 0 0 6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 0 6 6 6 0 0
+ af0 af0 6faaaaaa 6faaaaaa af0 af0 6faaaaaa 6faaaaaa & 124 125 77 208 2591 29533 18803 21557 1 7 7 7 1 7 7 7 1 7 7 7 1 7 7 7 1 1 7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 1 7 7 7 1 1
+ ag0 ag0 7gaaaaaaa 7gaaaaaaa ag0 ag0 7gaaaaaaa 7gaaaaaaa * 123 103 80 92 10179 60769 25778 58195 2 8 8 8 2 8 8 8 2 8 8 8 2 8 8 8 2 2 8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 2 8 8 8 2 2
+ a^0 a^0 8^aaaaaaaa 8^aaaaaaaa a^0 a^0 8^aaaaaaaa 8^aaaaaaaa ( 111 166 81 66 5159 2177 6774 38396 3 9 9 9 3 9 9 9 3 9 9 9 3 9 9 9 3 3 9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 3 9 9 9 3 3
+ a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa ) 37 174 97 34 9183 16470 13064 6297 4 10 10 10 4 10 10 10 4 10 10 10 4 10 10 10 4 4 10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 4 10 10 10 4 4
diff --git a/mysql-test/suite/funcs_1/data/innodb_tb2.txt b/mysql-test/suite/funcs_1/data/innodb_tb2.txt
new file mode 100644
index 00000000000..8ae7dea6df4
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/innodb_tb2.txt
@@ -0,0 +1,10 @@
+1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 19700102000001 1902 1902 1902 2 2
+2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 19700103000002 1903 1903 1903 1 3
+3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 19700104000003 1904 1904 1904 2 1
+4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 19700105000004 1905 1905 1905 1 2
+5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 19700106000005 1906 1906 1906 2 3
+6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 19700107000006 1907 1907 1907 1 1
+7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 19700108000007 1908 1908 1908 2 2
+8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 19700109000008 1909 1909 1909 1 3
+9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 19700110000009 1910 1910 1910 2 1
+10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 19700111000010 1911 1911 1911 1 2
diff --git a/mysql-test/suite/funcs_1/data/innodb_tb3.txt b/mysql-test/suite/funcs_1/data/innodb_tb3.txt
new file mode 100644
index 00000000000..a01cc36da54
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/innodb_tb3.txt
@@ -0,0 +1,10 @@
+! ! ! a`0 a`0 0` 0` a`0 a`0 0` 0` ! 37 102 115 214 22348 22112 23636 18043 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 -5 1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -5 1 1 1 -5 -5
+@ @ @ aa0 aa0 1aa 1aa aa0 aa0 1aa 1aa @ 30 114 62 146 22059 6000 19024 8674 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 -4 2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -4 2 2 2 -4 -4
+# # # ab0 ab0 2baa 2baa ab0 ab0 2baa 2baa # 113 254 52 51 27963 63797 516 63989 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 -3 3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -3 3 3 3 -3 -3
+$ $ $ ac0 ac0 3caaa 3caaa ac0 ac0 3caaa 3caaa $ 70 78 40 203 28716 18828 14939 30960 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 -2 4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -2 4 4 4 -2 -2
+% % % ad0 ad0 4daaaa 4daaaa ad0 ad0 4daaaa 4daaaa % 1 228 76 249 16746 12853 8405 35402 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 -1 5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1 5 5 5 -1 -1
+^ ^ ^ ae0 ae0 5eaaaaa 5eaaaaa ae0 ae0 5eaaaaa 5eaaaaa ^ 116 52 51 248 26877 15243 20063 65464 0 6 6 6 0 6 6 6 0 6 6 6 0 6 6 6 0 0 6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 0 6 6 6 0 0
+& & & af0 af0 6faaaaaa 6faaaaaa af0 af0 6faaaaaa 6faaaaaa & 59 163 63 26 24559 55618 27326 12704 1 7 7 7 1 7 7 7 1 7 7 7 1 7 7 7 1 1 7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 1 7 7 7 1 1
+* * * ag0 ag0 7gaaaaaaa 7gaaaaaaa ag0 ag0 7gaaaaaaa 7gaaaaaaa * 69 229 119 159 11779 48557 14747 42703 2 8 8 8 2 8 8 8 2 8 8 8 2 8 8 8 2 2 8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 2 8 8 8 2 2
+( ( ( a^0 a^0 8^aaaaaaaa 8^aaaaaaaa a^0 a^0 8^aaaaaaaa 8^aaaaaaaa ( 54 89 113 155 1068 61537 14823 43439 3 9 9 9 3 9 9 9 3 9 9 9 3 9 9 9 3 3 9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 3 9 9 9 3 3
+) ) ) a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa ) 68 34 44 175 32453 44381 506 37695 4 10 10 10 4 10 10 10 4 10 10 10 4 10 10 10 4 4 10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 4 10 10 10 4 4
diff --git a/mysql-test/suite/funcs_1/data/innodb_tb4.txt b/mysql-test/suite/funcs_1/data/innodb_tb4.txt
new file mode 100644
index 00000000000..5092371d093
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/innodb_tb4.txt
@@ -0,0 +1,10 @@
+1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 19700102000001 1902 1902 1902 2 2 0! 0 0 0 0!
+2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 19700103000002 1903 1903 1903 1 3 1@# 1@ 1@ 1@ 1@#
+3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 19700104000003 1904 1904 1904 2 1 2#$% 2#$ 2#$ 2#$ 2#$%
+4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 19700105000004 1905 1905 1905 1 2 3$%^& 3$%^ 3$%^ 3$%^ 3$%^&
+5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 19700106000005 1906 1906 1906 2 3 4%^&*( 4%^&* 4%^&* 4%^&* 4%^&*(
+6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 19700107000006 1907 1907 1907 1 1 5^&*()_ 5^&*() 5^&*() 5^&*() 5^&*()_
+7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 19700108000007 1908 1908 1908 2 2 6&*()_+= 6&*()_+ 6&*()_+ 6&*()_+ 6&*()_+=
+8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 19700109000008 1909 1909 1909 1 3 7*()_+=-| 7*()_+=- 7*()_+=- 7*()_+=- 7*()_+=-|
+9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 19700110000009 1910 1910 1910 2 1 8()_+=-|{} 8()_+=-|{ 8()_+=-|{ 8()_+=-|{ 8()_+=-|{}
+10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 19700111000010 1911 1911 1911 1 2 9)_+=-|{}[] 9)_+=-|{}[ 9)_+=-|{}[ 9)_+=-|{}[ 9)_+=-|{}[]
diff --git a/mysql-test/suite/funcs_1/data/memory_tb1.txt b/mysql-test/suite/funcs_1/data/memory_tb1.txt
new file mode 100644
index 00000000000..e266c70f9b8
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/memory_tb1.txt
@@ -0,0 +1,10 @@
+! ! ! ! 125 69 107 223 9324 34526 518 41335 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 -5 1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -5 1 1 1 -5 -5
+@ @ @ @ 33 206 121 215 9380 15833 14975 52816 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 -4 2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -4 2 2 2 -4 -4
+# # # # 117 5 25 30 21071 22894 7157 52356 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 -3 3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -3 3 3 3 -3 -3
+$ $ $ $ 2 19 61 214 1220 9289 14636 719 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 -2 4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -2 4 4 4 -2 -2
+% % % % 102 185 122 228 21359 20663 7136 60130 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 -1 5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1 5 5 5 -1 -1
+^ ^ ^ ^ 24 48 102 248 30907 13155 26008 11892 0 6 6 6 0 6 6 6 0 6 6 6 0 6 6 6 0 0 6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 0 6 6 6 0 0
+& & & & 68 95 123 253 26999 2063 7957 49062 1 7 7 7 1 7 7 7 1 7 7 7 1 7 7 7 1 1 7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 1 7 7 7 1 1
+* * * * 114 116 86 237 16008 64728 29018 63686 2 8 8 8 2 8 8 8 2 8 8 8 2 8 8 8 2 2 8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 2 8 8 8 2 2
+( ( ( ( 102 120 12 166 7011 231 28948 43386 3 9 9 9 3 9 9 9 3 9 9 9 3 9 9 9 3 3 9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 3 9 9 9 3 3
+) ) ) ) 14 162 113 166 15432 23427 9909 55743 4 10 10 10 4 10 10 10 4 10 10 10 4 10 10 10 4 4 10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 4 10 10 10 4 4
diff --git a/mysql-test/suite/funcs_1/data/memory_tb2.txt b/mysql-test/suite/funcs_1/data/memory_tb2.txt
new file mode 100644
index 00000000000..8ae7dea6df4
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/memory_tb2.txt
@@ -0,0 +1,10 @@
+1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 19700102000001 1902 1902 1902 2 2
+2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 19700103000002 1903 1903 1903 1 3
+3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 19700104000003 1904 1904 1904 2 1
+4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 19700105000004 1905 1905 1905 1 2
+5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 19700106000005 1906 1906 1906 2 3
+6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 19700107000006 1907 1907 1907 1 1
+7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 19700108000007 1908 1908 1908 2 2
+8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 19700109000008 1909 1909 1909 1 3
+9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 19700110000009 1910 1910 1910 2 1
+10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 19700111000010 1911 1911 1911 1 2
diff --git a/mysql-test/suite/funcs_1/data/memory_tb3.txt b/mysql-test/suite/funcs_1/data/memory_tb3.txt
new file mode 100644
index 00000000000..2c0433304a8
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/memory_tb3.txt
@@ -0,0 +1,10 @@
+! ! ! ! ! ! 87 241 57 173 18446 49170 16642 30337 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 -5 1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -5 1 1 1 -5 -5
+@ @ @ @ @ @ 46 98 15 87 28328 27957 22906 13894 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 -4 2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -4 2 2 2 -4 -4
+# # # # # # 47 178 99 1 14395 33016 14488 19286 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 -3 3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -3 3 3 3 -3 -3
+$ $ $ $ $ $ 112 214 125 95 17700 64850 18337 21044 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 -2 4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -2 4 4 4 -2 -2
+% % % % % % 11 122 24 177 25939 55312 20230 23055 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 -1 5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1 5 5 5 -1 -1
+^ ^ ^ ^ ^ ^ 89 228 33 168 29230 35722 26178 18372 0 6 6 6 0 6 6 6 0 6 6 6 0 6 6 6 0 0 6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 0 6 6 6 0 0
+& & & & & & 71 225 98 132 15603 29021 29242 62542 1 7 7 7 1 7 7 7 1 7 7 7 1 7 7 7 1 1 7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 1 7 7 7 1 1
+* * * * * * 54 204 86 76 12146 41911 27986 4744 2 8 8 8 2 8 8 8 2 8 8 8 2 8 8 8 2 2 8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 2 8 8 8 2 2
+( ( ( ( ( ( 7 93 3 194 18817 25083 8657 49740 3 9 9 9 3 9 9 9 3 9 9 9 3 9 9 9 3 3 9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 3 9 9 9 3 3
+) ) ) ) ) ) 15 241 27 18 9788 64993 245 39300 4 10 10 10 4 10 10 10 4 10 10 10 4 10 10 10 4 4 10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 4 10 10 10 4 4
diff --git a/mysql-test/suite/funcs_1/data/memory_tb4.txt b/mysql-test/suite/funcs_1/data/memory_tb4.txt
new file mode 100644
index 00000000000..5a0f0da3415
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/memory_tb4.txt
@@ -0,0 +1,10 @@
+1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 19700102000001 1902 1902 1902 2 2 0! 0 0! 0 0
+2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 19700103000002 1903 1903 1903 1 3 1@# 1@ 1@# 1@ 1@
+3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 19700104000003 1904 1904 1904 2 1 2#$% 2#$ 2#$% 2#$ 2#$
+4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 19700105000004 1905 1905 1905 1 2 3$%^& 3$%^ 3$%^& 3$%^ 3$%^
+5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 19700106000005 1906 1906 1906 2 3 4%^&*( 4%^&* 4%^&*( 4%^&* 4%^&*
+6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 19700107000006 1907 1907 1907 1 1 5^&*()_ 5^&*() 5^&*()_ 5^&*() 5^&*()
+7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 19700108000007 1908 1908 1908 2 2 6&*()_+= 6&*()_+ 6&*()_+= 6&*()_+ 6&*()_+
+8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 19700109000008 1909 1909 1909 1 3 7*()_+=-| 7*()_+=- 7*()_+=-| 7*()_+=- 7*()_+=-
+9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 19700110000009 1910 1910 1910 2 1 8()_+=-|{} 8()_+=-|{ 8()_+=-|{} 8()_+=-|{ 8()_+=-|{
+10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 19700111000010 1911 1911 1911 1 2 9)_+=-|{}[] 9)_+=-|{}[ 9)_+=-|{}[] 9)_+=-|{}[ 9)_+=-|{}[
diff --git a/mysql-test/suite/funcs_1/data/myisam_tb1.txt b/mysql-test/suite/funcs_1/data/myisam_tb1.txt
new file mode 100644
index 00000000000..da21f6c71d0
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/myisam_tb1.txt
@@ -0,0 +1,10 @@
+! ! ! a`0 a`0 0` 0` a`0 a`0 0` 0` ! 20 96 13 158 11496 12640 26882 22184 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 -5 1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -5 1 1 1 -5 -5
+@ @ @ aa0 aa0 1aa 1aa aa0 aa0 1aa 1aa @ 68 67 107 152 1647 41491 10631 40729 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 -4 2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -4 2 2 2 -4 -4
+# # # ab0 ab0 2baa 2baa ab0 ab0 2baa 2baa # 0 54 39 182 28122 30607 623 40601 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 -3 3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -3 3 3 3 -3 -3
+$ $ $ ac0 ac0 3caaa 3caaa ac0 ac0 3caaa 3caaa $ 40 53 33 204 8927 17582 6931 6231 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 -2 4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -2 4 4 4 -2 -2
+% % % ad0 ad0 4daaaa 4daaaa ad0 ad0 4daaaa 4daaaa % 27 126 101 76 8412 64647 24531 7195 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 -1 5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1 5 5 5 -1 -1
+^ ^ ^ ae0 ae0 5eaaaaa 5eaaaaa ae0 ae0 5eaaaaa 5eaaaaa ^ 48 168 35 166 25531 41269 21741 46926 0 6 6 6 0 6 6 6 0 6 6 6 0 6 6 6 0 0 6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 0 6 6 6 0 0
+& & & af0 af0 6faaaaaa 6faaaaaa af0 af0 6faaaaaa 6faaaaaa & 31 148 93 146 8540 31876 22500 8553 1 7 7 7 1 7 7 7 1 7 7 7 1 7 7 7 1 1 7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 1 7 7 7 1 1
+* * * ag0 ag0 7gaaaaaaa 7gaaaaaaa ag0 ag0 7gaaaaaaa 7gaaaaaaa * 95 51 63 48 5445 40770 2704 28590 2 8 8 8 2 8 8 8 2 8 8 8 2 8 8 8 2 2 8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 2 8 8 8 2 2
+( ( ( a^0 a^0 8^aaaaaaaa 8^aaaaaaaa a^0 a^0 8^aaaaaaaa 8^aaaaaaaa ( 17 203 60 176 2330 41952 4228 46680 3 9 9 9 3 9 9 9 3 9 9 9 3 9 9 9 3 3 9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 3 9 9 9 3 3
+) ) ) a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa ) 43 137 116 109 17630 47511 18723 24472 4 10 10 10 4 10 10 10 4 10 10 10 4 10 10 10 4 4 10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 4 10 10 10 4 4
diff --git a/mysql-test/suite/funcs_1/data/myisam_tb2.txt b/mysql-test/suite/funcs_1/data/myisam_tb2.txt
new file mode 100644
index 00000000000..4fb43f72a1c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/myisam_tb2.txt
@@ -0,0 +1,10 @@
+1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 19700102000001 1902 1902 1902 2 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@
+2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 19700103000002 1903 1903 1903 1 3 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0� \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@
+3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 19700104000003 1904 1904 1904 2 1 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@
+4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 19700105000004 1905 1905 1905 1 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0*@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \N
+5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 19700106000005 1906 1906 1906 2 3 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@
+6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 19700107000006 1907 1907 1907 1 1 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @ \0\0\0\0\0\0\0\0\0\0\0\0\09@\0\0\0\0\0\0.@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@
+7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 19700108000007 1908 1908 1908 2 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@
+8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 19700109000008 1909 1909 1909 1 3 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0� \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@
+9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 19700110000009 1910 1910 1910 2 1 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@
+10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 19700111000010 1911 1911 1911 1 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0*@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \N
diff --git a/mysql-test/suite/funcs_1/data/myisam_tb3.txt b/mysql-test/suite/funcs_1/data/myisam_tb3.txt
new file mode 100644
index 00000000000..785e51e6b95
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/myisam_tb3.txt
@@ -0,0 +1,10 @@
+! ! ! a`0 a`0 0` 0` a`0 a`0 0` 0` ! 109 139 69 7 18139 13696 27218 8005 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 1 1 1 -5 -5 1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -5 1 1 1 -5 -5
+@ @ @ aa0 aa0 1aa 1aa aa0 aa0 1aa 1aa @ 84 140 42 19 17074 20551 20585 53745 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 2 2 2 -4 -4 2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -4 2 2 2 -4 -4
+# # # ab0 ab0 2baa 2baa ab0 ab0 2baa 2baa # 59 235 74 53 11119 50568 6317 28587 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 3 3 3 -3 -3 3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -3 3 3 3 -3 -3
+$ $ $ ac0 ac0 3caaa 3caaa ac0 ac0 3caaa 3caaa $ 111 15 124 208 1523 44126 32488 35195 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 4 4 4 -2 -2 4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -2 4 4 4 -2 -2
+% % % ad0 ad0 4daaaa 4daaaa ad0 ad0 4daaaa 4daaaa % 39 74 95 55 9343 13013 30820 52027 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 5 5 5 -1 -1 5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1 5 5 5 -1 -1
+^ ^ ^ ae0 ae0 5eaaaaa 5eaaaaa ae0 ae0 5eaaaaa 5eaaaaa ^ 0 189 119 57 27291 29348 7618 17041 0 6 6 6 0 6 6 6 0 6 6 6 0 6 6 6 0 0 6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 0 6 6 6 0 0
+& & & af0 af0 6faaaaaa 6faaaaaa af0 af0 6faaaaaa 6faaaaaa & 95 202 104 100 25978 36845 25435 57697 1 7 7 7 1 7 7 7 1 7 7 7 1 7 7 7 1 1 7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 1 7 7 7 1 1
+* * * ag0 ag0 7gaaaaaaa 7gaaaaaaa ag0 ag0 7gaaaaaaa 7gaaaaaaa * 32 31 47 219 22189 56957 23389 18316 2 8 8 8 2 8 8 8 2 8 8 8 2 8 8 8 2 2 8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 2 8 8 8 2 2
+( ( ( a^0 a^0 8^aaaaaaaa 8^aaaaaaaa a^0 a^0 8^aaaaaaaa 8^aaaaaaaa ( 35 5 13 119 23453 2681 10787 47642 3 9 9 9 3 9 9 9 3 9 9 9 3 9 9 9 3 3 9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 3 9 9 9 3 3
+) ) ) a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa a_0 a_0 9_aaaaaaaaa 9_aaaaaaaaa ) 20 177 13 18 23752 18809 22353 4155 4 10 10 10 4 10 10 10 4 10 10 10 4 10 10 10 4 4 10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 4 10 10 10 4 4
diff --git a/mysql-test/suite/funcs_1/data/myisam_tb4.txt b/mysql-test/suite/funcs_1/data/myisam_tb4.txt
new file mode 100644
index 00000000000..510c6bd3cf9
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/myisam_tb4.txt
@@ -0,0 +1,10 @@
+1 1 1 1 1 1 -5 0.0 1 0.0 1 0.0 1 0.0 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 -1.17549435e-38 -1.17549435e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 19700102000001 1902 1902 1902 2 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ 0 0! 0 0 0! 0! 2
+2 2 2 2 2 2 -4 1.1 2 1.1 2 1.1 2 1.1 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 -1.175494349e-38 -1.175494349e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 19700103000002 1903 1903 1903 1 3 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0� \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ 1@ 1@# 1@ 1@ 1@# 1@# 3
+3 3 3 3 3 3 -3 2.2 3 2.2 3 2.2 3 2.2 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 -1.175494348e-38 -1.175494348e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 19700104000003 1904 1904 1904 2 1 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ 2#$ 2#$% 2#$ 2#$ 2#$% 2#$% 4
+4 4 4 4 4 4 -2 3.3 4 3.3 4 3.3 4 3.3 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 -1.175494347e-38 -1.175494347e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 19700105000004 1905 1905 1905 1 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0*@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \N 3$%^ 3$%^& 3$%^ 3$%^ 3$%^& 3$%^& 5
+5 5 5 5 5 5 -1 4.4 5 4.4 5 4.4 5 4.4 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 -1.175494346e-38 -1.175494346e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 19700106000005 1906 1906 1906 2 3 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ 4%^&* 4%^&*( 4%^&* 4%^&* 4%^&*( 4%^&*( 6
+6 6 6 6 6 6 0 5.5 6 5.5 6 5.5 6 5.5 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 -1.175494345e-38 -1.175494345e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 19700107000006 1907 1907 1907 1 1 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @ \0\0\0\0\0\0\0\0\0\0\0\0\09@\0\0\0\0\0\0.@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@ 5^&*() 5^&*()_ 5^&*() 5^&*() 5^&*()_ 5^&*()_ 7
+7 7 7 7 7 7 1 6.6 7 6.6 7 6.6 7 6.6 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 -1.175494344e-38 -1.175494344e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 19700108000007 1908 1908 1908 2 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ 6&*()_+ 6&*()_+= 6&*()_+ 6&*()_+ 6&*()_+= 6&*()_+= 8
+8 8 8 8 8 8 2 7.7 8 7.7 8 7.7 8 7.7 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 -1.175494343e-38 -1.175494343e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 19700109000008 1909 1909 1909 1 3 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0� \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@ 7*()_+=- 7*()_+=-| 7*()_+=- 7*()_+=- 7*()_+=-| 7*()_+=-| 9
+9 9 9 9 9 9 3 8.8 9 8.8 9 8.8 9 8.8 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 -1.175494342e-38 -1.175494342e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 19700110000009 1910 1910 1910 2 1 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@ 8()_+=-|{ 8()_+=-|{} 8()_+=-|{ 8()_+=-|{ 8()_+=-|{} 8()_+=-|{} 10
+10 10 10 10 10 10 4 9.9 10 9.9 10 9.9 10 9.9 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 -1.175494341e-38 -1.175494341e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 19700111000010 1911 1911 1911 1 2 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@ \0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0*@ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@ \N 9)_+=-|{}[ 9)_+=-|{}[] 9)_+=-|{}[ 9)_+=-|{}[ 9)_+=-|{}[] 9)_+=-|{}[] 11
diff --git a/mysql-test/suite/funcs_1/data/t3.txt b/mysql-test/suite/funcs_1/data/t3.txt
new file mode 100644
index 00000000000..a2287c20d43
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/t3.txt
@@ -0,0 +1,10 @@
+a` a` -5000
+aaa aaa -4999
+abaa abaa -4998
+acaaa acaaa -4997
+adaaaa adaaaa -4996
+aeaaaaa aeaaaaa -4995
+afaaaaaa afaaaaaa -4994
+agaaaaaaa agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa -4991
diff --git a/mysql-test/suite/funcs_1/data/t4.txt b/mysql-test/suite/funcs_1/data/t4.txt
new file mode 100644
index 00000000000..4e2ab19b47c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/t4.txt
@@ -0,0 +1,10 @@
+a` a` 1000-01-1 -5000 a` -5000
+aaa aaa 1000-01-2 -4999 aaa -4999
+abaa abaa 1000-01-3 -4998 abaa -4998
+acaaa acaaa 1000-01-4 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-5 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-6 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-7 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-8 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-9 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
diff --git a/mysql-test/suite/funcs_1/data/t7.txt b/mysql-test/suite/funcs_1/data/t7.txt
new file mode 100644
index 00000000000..e3c9aa4c58f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/t7.txt
@@ -0,0 +1,10 @@
+a` a` -5000
+aaa aaa -4999
+abaa abaa -4998
+acaaa acaaa -4997
+adaaaa adaaaa -4996
+aeaaaaa aeaaaaa -4995
+afaaaaaa afaaaaaa -4994
+agaaaaaaa agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa -4991
diff --git a/mysql-test/suite/funcs_1/data/t9.txt b/mysql-test/suite/funcs_1/data/t9.txt
new file mode 100644
index 00000000000..bac7a54fee5
--- /dev/null
+++ b/mysql-test/suite/funcs_1/data/t9.txt
@@ -0,0 +1,10 @@
+-5000 a` -5000
+-4999 aaa -4999
+-4998 abaa -4998
+-4997 acaaa -4997
+-4996 adaaaa -4996
+-4995 aeaaaaa -4995
+-4994 afaaaaaa -4994
+-4993 agaaaaaaa -4993
+-4992 a^aaaaaaaa -4992
+-4991 a_aaaaaaaaa -4991
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc b/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc
new file mode 100644
index 00000000000..0bca30b1dc3
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc
@@ -0,0 +1,60 @@
+#### --source suite/funcs_1/datadict/datadict_bug_12777.inc
+#
+
+# columns in INFORMATION_SCHEMA with VARCHAR(4096) on Linux and Intel or AMD
+# processor are shown as VARCHAR(512) on Windows, VARCHAR(1023) on AIX and HPUX,
+# VARCHAR(1024) on Solaris10, ... see below and in bug #12777 for details.
+# So we need to replace the output for these systems. There may be other still
+# not tested / detected systems.
+#
+# Setting the variables used below has been moved to the beginning of the datadict
+# tests to "suite/funcs_1/datadict/datadict_load.inc".
+#
+# SELECT character_maximum_length INTO @CML
+# FROM information_schema.columns
+# WHERE table_schema = 'information_schema'
+# AND table_name = 'columns'
+# AND column_name = 'table_catalog';
+
+# this enables the --replace_result only if needed, using this we never replace
+# results on 'simple Linux' and so we will see any changes that might be
+# suppressed by the - only on some systems used - replacements.
+
+
+# Windows XP 32bit
+if ($bug_12777_0512)
+{
+ # switch next 2 lines on for debugging the correct detection of the operating systems
+ # let $message= value 512 detected - 1st replace statement activated!;
+ # --source include/show_msg.inc
+ # nnnn 3*n
+ --replace_result 512 4096 1536 12288
+}
+
+# aix52, aix52-64bit, hp3750, hp3750-64bit, hpux11, hpux11-64bit,
+if ($bug_12777_1023)
+{
+ # nnnn 3*n
+ --replace_result 1023 4096 3069 12288
+}
+
+# Solaris10, 32bit
+if ($bug_12777_1024)
+{
+ # nnnn 3*n
+ --replace_result 1024 4096 3072 12288
+}
+
+# Linux Suse 9.3 32bit Intel/AMD
+if ($bug_12777_2048)
+{
+ # nnnn 3*n
+ --replace_result 2048 4096 6144 12288
+}
+
+# build-5.0-standard
+if ($bug_12777_4095)
+{
+ # nnnn 3*n
+ --replace_result 4095 4096 12285 12288
+}
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_load.inc b/mysql-test/suite/funcs_1/datadict/datadict_load.inc
new file mode 100644
index 00000000000..4a9bdc9356d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_load.inc
@@ -0,0 +1,122 @@
+#### suite/funcs_1/datadict/datadict_load.inc
+#
+# The sub testcases are nearly independend. That is the reason why we do not
+# want to abort after the first error.
+--disable_abort_on_error
+
+################################################################################
+#
+# prepare variables for --replace_result
+#
+################################################################################
+--disable_query_log
+
+# ------------------------------------------------------------------------------
+# Get the size of ONE known colum and check the size against some values to
+# be able to use the correct --replace_result statement. Using this only the
+# one pair of 'wrong' values is replaced and not all occurrencies of all
+# possible pairs of values. See bug #12777 for details.
+SELECT character_maximum_length INTO @CML
+ FROM information_schema.columns
+ WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ AND column_name = 'table_catalog';
+
+let $bug_12777_0512= `SELECT @CML = 512`;
+let $bug_12777_1023= `SELECT @CML = 1023`;
+let $bug_12777_1024= `SELECT @CML = 1024`;
+let $bug_12777_2048= `SELECT @CML = 2048`;
+# 4096 is the value used in the .results
+let $bug_12777_4095= `SELECT @CML = 4095`;
+
+if (0)
+{
+ # enable this for debugging only, but NOT in a pushed version, as then the
+ # result changes from OS to OS ...
+ eval SELECT @CML AS 'CML',
+ $bug_12777_0512 AS '512',
+ $bug_12777_1023 AS '1023',
+ $bug_12777_1024 AS '1024',
+ $bug_12777_2048 AS '2048',
+ $bug_12777_4095 AS '4095';
+}
+
+# ------------------------------------------------------------------------------
+# prepare a variable to be able to suppress machine dependant diffs
+# this can be used in: --replace_result $SERVER_NAME <SERVER_NAME>
+# let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host LIKE "%\%" AND host NOT In ("localhost", "127.0.0.1", "%")`;
+let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host NOT In ("localhost", "127.0.0.1", "%")`;
+
+
+################################################################################
+#
+# load tables
+# -----------
+#
+# this was part of the 3 files $<engine>_datadict.test, but it has been moved
+# here to have only one place where all preparation for the test is done.
+#
+################################################################################
+
+eval SET @ENGINE_INNODB = IF( '$engine_type' = 'innodb', 1, 0);
+eval SET @ENGINE_MEMORY = IF( '$engine_type' = 'memory', 1, 0);
+eval SET @ENGINE_MYISAM = IF( '$engine_type' = 'myisam', 1, 0);
+--enable_query_log
+
+let $engine_myisam= `SELECT @ENGINE_MYISAM = 1`;
+let $engine_innodb= `SELECT @ENGINE_INNODB = 1`;
+let $engine_memory= `SELECT @ENGINE_MEMORY = 1`;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+#
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test;
+
+ # until a statement 'eval --source suite/funcs_1/include/$var_tb1.inc
+ # works we need to have similar statements for each $engine
+ if ($engine_innodb)
+ {
+ --source suite/funcs_1/include/innodb_tb1.inc
+ --source suite/funcs_1/include/innodb_tb2.inc
+ --source suite/funcs_1/include/innodb_tb3.inc
+ --source suite/funcs_1/include/innodb_tb4.inc
+ USE test1;
+ --source suite/funcs_1/include/innodb_tb2.inc
+ }
+
+ if ($engine_memory)
+ {
+ --source suite/funcs_1/include/memory_tb1.inc
+ --source suite/funcs_1/include/memory_tb2.inc
+ --source suite/funcs_1/include/memory_tb3.inc
+ --source suite/funcs_1/include/memory_tb4.inc
+ USE test1;
+ --source suite/funcs_1/include/memory_tb2.inc
+ }
+
+ if ($engine_myisam)
+ {
+ --source suite/funcs_1/include/myisam_tb1.inc
+ --source suite/funcs_1/include/myisam_tb2.inc
+ --source suite/funcs_1/include/myisam_tb3.inc
+ --source suite/funcs_1/include/myisam_tb4.inc
+ USE test1;
+ --source suite/funcs_1/include/myisam_tb2.inc
+ }
+ USE test;
+ --source suite/funcs_1/include/sp_tb.inc
+}
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_master.inc b/mysql-test/suite/funcs_1/datadict/datadict_master.inc
new file mode 100644
index 00000000000..3992f6325eb
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_master.inc
@@ -0,0 +1,3953 @@
+#### suite/funcs_1/datadict/datadict_master.inc
+#
+# Checks of INFORMATION_SCHEMA table properties and content.
+# (mostly only the features introduced with MySQL 5.1)
+#
+# Please set the variable $OTHER_ENGINE_TYPE before sourcing this script.
+# $OTHER_ENGINE_TYPE must be
+# - <> $engine_type
+# - all time available like MyISAM or MEMORY
+#
+# Last change:
+# 2007-08-24 mleich Fixes for the bugs
+# #30438 "{memory,myisam,ndb}__datadict" tests fail:
+# Use "InnoDB" without checking
+# #30418 "datadict" tests (all engines) fail:
+# Dependency on the host name for ordering
+# #30420 "datadict" tests (all engines) fail:
+# Release build has help tables loaded
+#
+
+--disable_abort_on_error
+let $message=
+.
+. It is intended that the 3 <engine>__datadict.test files are named this way to be
+. sure they are - in a *full run* of the suite - the first tests done for each
+. storage engine. Using two _ and the order of processing in mysql-test-run.pl
+. ensures this in an easy way.
+.
+. If needed a restart could be implemented later between the storage engines if
+. values changes in the result depending from the position where the
+. *__datadict.test are started. This can be a result of showing e.g. maximum
+. values of the number of rows of tables.
+.
+. This .result file has been checked OK with Linux 5.0.48,
+. build tree ChangeSet@1.2477.6.3, 2007-07-30
+. except that the not fixed Bug#30020 causes a difference.
+.;
+--source include/show_msg80.inc
+
+################################################################################
+#
+ let $message= FIXME: There are subtests that are switched off due to known bugs:;
+ --source include/show_msg.inc
+ #set variable(s) here to be able to switch crashing sub tests with ONE change HERE.
+ #change the variable(s) to enable / disable the crashing parts.
+
+ # different 'logics' are used because sometimes codelines needs to be switched off
+ # and otherwise some extra statements needs to be executed as long as the bug is not
+ # fixed:
+ let $have_bug_11589= 1;
+
+ #seems not to work: --vertical_results
+ eval SELECT $have_bug_11589 AS "have_bug_11589";
+ #seems not to work: --horizontal_results
+
+ # As long as
+ # Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+ # is not fixed, we must switch the ps-protocol for some statements off.
+ # If this bug is fixed, please
+ # 1. set the following variable to 0
+ # 2. check, if the test passes
+ # 3. remove the workarounds
+ if ($have_bug_11589)
+ {
+ let $message= There are some statements where the ps-protocol is switched off.
+ This may come from the bug listed below, ir from other problems.
+ Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill;
+ --source include/show_msg80.inc
+ }
+#
+################################################################################
+
+
+# loading the tables (data is not really needed in this test) is separated to
+# make it easier in this file to show the message above.
+--source suite/funcs_1/datadict/datadict_load.inc
+
+#FIXME: - check for remaining change of object names to standards: db_, tb_, v_, u_, ...
+#FIXME: - check warnings when data is loaded (Data truncated for column ...)
+#FIXME: - change connect() to use less users / connections
+#
+#FIXME: - check for additional 'FIXME' here in the script
+
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+
+################################################################################
+#
+# Data Dictionary
+#
+################################################################################
+
+let $message= Testcase 3.2.1.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.1: Ensure that every INFORMATION_SCHEMA table can be queried
+# with a SELECT statement, just as if it were an ordinary
+# user-defined table.
+################################################################################
+
+# create at least one object for all 'tables' to be checked
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+CREATE VIEW v1 AS SELECT * FROM information_schema.tables;
+
+# try to get the server's name to be able to clean-up the result from machine
+# specific stuff.
+CREATE OR REPLACE VIEW db_datadict.vu1 as
+SELECT grantee AS u
+ FROM information_schema.user_privileges;
+CREATE OR REPLACE VIEW db_datadict.vu as
+SELECT DISTINCT u,
+ SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 )
+ AS server,
+ SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3,
+ LENGTH( SUBSTRING( u,
+ LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 )
+ AS Server_Clean
+FROM db_datadict.vu1;
+--replace_result $SERVER_NAME <SERVER_NAME>
+--sorted_result
+SELECT * FROM db_datadict.vu order by u;
+
+delimiter //;
+CREATE PROCEDURE db_datadict.sp_1()
+ BEGIN
+ SELECT * FROM db_datadict.v1;
+ END//
+delimiter ;//
+
+#FIXME 3.2.1.1: add missing objects of each type to have something to select
+#FIXME 3.2.1.1: - FUNCTION
+#FIXME 3.2.1.1: - TRIGGER
+
+USE information_schema;
+SHOW tables;
+
+select * from schemata ORDER BY 2 DESC, 1 ASC;
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+--vertical_results
+#SELECT * FROM tables;
+#
+#FIXME 3.2.1.1: we split the "SELECT * FROM tables" in two parts until
+#FIXME 3.2.1.1: Bug #12397: wrong values shown in column CREATE_OPTIONS of
+#FIXME 3.2.1.1: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one
+#FIXME 3.2.1.1: with 'less' replace
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+# 20 CREATE_OPTIONS
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+SELECT * FROM tables
+ WHERE table_schema = 'information_schema';
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM tables
+WHERE NOT( table_schema = 'information_schema')
+ AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+--horizontal_results
+--enable_ps_protocol
+
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+ t.table_type, t.engine
+ from schemata s inner join tables t
+ ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+select * from columns;
+select * from character_sets;
+select sum(id) from collations;
+select collation_name, character_set_name into @x,@y
+ from collation_character_set_applicability limit 1;
+ select @x, @y;
+
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+select * from routines;
+
+select count(*) from routines;
+select * from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+select * from views;
+--replace_result $SERVER_NAME <SERVER_NAME>
+--sorted_result
+select * from user_privileges order by grantee, privilege_type;
+select * from schema_privileges;
+select * from table_privileges;
+select * from column_privileges;
+select * from table_constraints;
+select * from key_column_usage;
+select count(*) as max_recs from key_column_usage;
+
+select max(cardinality) from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+
+select concat("View '",
+ table_name, "' is associated with the database '", table_schema, "'.")
+ AS "Who is Who for the Views"
+ from views;
+
+select concat("Table or view '", table_name,
+ "' is associated with the database '", table_schema, "'.") as "Who is Who"
+ from tables;
+
+--replace_result $SERVER_NAME <SERVER_NAME>
+--sorted_result
+select grantee as "user's having select privilege",
+ substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+ from user_privileges where privilege_type = 'select'
+ order by grantee;
+
+select all table_schema from schema_privileges limit 0,5;
+
+select distinct(privilege_type) from table_privileges;
+
+select * from column_privileges
+ group by table_schema having table_schema = 'db_datadict';
+
+select * from table_constraints limit 0,5;
+select count(*) as max_recs from key_column_usage limit 0,5;
+
+select information_schema.tables.table_name as "table name",
+ count(distinct(column_name)) as "no of columns in the table"
+ from information_schema.tables left outer join information_schema.columns on
+ information_schema.tables.table_name = information_schema.columns.table_name
+ group by information_schema.tables.table_name;
+
+# Reference Manual 22.1.16 - we will add more ...:
+# select * from parameters;
+# select * from referential_constraints;
+# select * from triggers;
+
+let $message= root: simple select to check all - and never forget some - tables;
+let $dd_part1= SELECT * FROM;
+let $dd_part2= LIMIT 1;
+--source suite/funcs_1/datadict/datadict_tables.inc
+
+# check again, but from different database (will fail due to missing database name)
+use db_datadict;
+
+--error ER_NO_SUCH_TABLE
+select * from schemata;
+--error ER_NO_SUCH_TABLE
+select * from tables;
+--error ER_NO_SUCH_TABLE
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+ t.table_type, t.engine
+ from schemata s inner join tables t
+ ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name;
+--error ER_NO_SUCH_TABLE
+select * from columns limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from character_sets limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from collations limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from collation_character_set_applicability limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from routines limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from statistics limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from views limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from user_privileges limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from schema_privileges limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from table_privileges limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from column_privileges limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from table_constraints limit 0, 5;
+--error ER_NO_SUCH_TABLE
+select * from key_column_usage limit 0, 5;
+# Reference Manual 22.1.16 - we will add more ...:
+# --error ER_NO_SUCH_TABLE
+# select * from parameters;
+# --error ER_NO_SUCH_TABLE
+# select * from referential_constraints;
+# --error ER_NO_SUCH_TABLE
+# select * from triggers;
+let $message= will fail due to missing database name;
+let $dd_part1= SELECT * FROM;
+let $dd_part2=;
+--source suite/funcs_1/datadict/datadict_tables_error_1146.inc
+
+# now check from "other" database, but with database name
+select * from information_schema.schemata ORDER BY 2 DESC;
+
+#SELECT * FROM information_schema.tables;
+#
+#FIXME 3.2.1.1: we split the "SELECT * FROM tables" in two parts until
+#FIXME 3.2.1.1: Bug #12397: wrong values shown in column CREATE_OPTIONS of
+#FIXME 3.2.1.1: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one
+#FIXME 3.2.1.1: with 'less' replace
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHRCK_TIME
+# 20 CREATE_OPTIONS
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+--vertical_results
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+SELECT * FROM information_schema.tables
+ WHERE table_schema = 'information_schema';
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHRCK_TIME
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema')
+ AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+--horizontal_results
+--enable_ps_protocol
+
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+ t.table_type, t.engine
+ from information_schema.schemata s inner join information_schema.tables t
+ ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+select * from information_schema.columns limit 0, 5;
+select * from information_schema.character_sets limit 0, 5;
+select * from information_schema.collations limit 0, 5;
+select * from information_schema.collation_character_set_applicability limit 0, 5;
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+select * from information_schema.routines limit 0, 5;
+select * from information_schema.statistics limit 0, 5;
+select * from information_schema.views limit 0, 5;
+--replace_result $SERVER_NAME <SERVER_NAME>
+select * from information_schema.user_privileges limit 0, 5;
+select * from information_schema.schema_privileges limit 0, 5;
+select * from information_schema.table_privileges limit 0, 5;
+select * from information_schema.column_privileges limit 0, 5;
+select * from information_schema.table_constraints limit 0, 5;
+select * from information_schema.key_column_usage limit 0, 5;
+select count(*) as max_recs from information_schema.key_column_usage limit 0, 5;
+
+# Reference Manual 22.1.16 - we will add more ...:
+# select * from information_schema.parameters;
+# select * from information_schema.referential_constraints;
+# select * from information_schema.triggers;
+
+let $message= root: check with db name;
+let $dd_part1= SELECT COUNT(*) FROM information_schema.;
+let $dd_part2=;
+--source suite/funcs_1/datadict/datadict_tables.inc
+
+# cleanup
+USE db_datadict;
+DROP VIEW v1, vu1, vu;
+DROP PROCEDURE db_datadict.sp_1;
+USE information_schema;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.2:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.2: Ensure that queries on an INFORMATION_SCHEMA table can
+# accept all SELECT statement options and are always
+# correctly evaluated.
+################################################################################
+
+# currently here only a subset of select statement options is checked, it's still
+# not possible to check here all possible options
+select catalog_name, schema_name, default_character_set_name
+ from schemata where schema_name like '%s%';
+
+select count(*) as tot_tabs from tables;
+select count(*) as the_cols from columns;
+
+select max(maxlen) as the_max from character_sets;
+select * from collations order by id asc limit 0, 5;
+select * from collation_character_set_applicability
+ order by character_set_name desc, collation_name limit 0, 5;
+
+select routine_definition from routines;
+select * from statistics where table_name not like 'help_%'
+group by index_name asc limit 0, 5;
+select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
+ from views;
+select concat(table_schema, ', ', table_name) "Table_info"
+ from tables ORDER BY 1;
+
+--replace_result $SERVER_NAME <SERVER_NAME>
+--sorted_result
+select distinct grantee from user_privileges order by grantee, privilege_type;
+select * from schema_privileges where table_catalog is null limit 0, 5;
+select * from table_privileges where grantee like '%r%' limit 0, 5;
+
+select * from column_privileges where table_catalog is not null limit 0, 5;
+select HIGH_PRIORITY * from table_constraints
+ group by constraint_name desc limit 0, 5;
+select sum(ordinal_position) from key_column_usage;
+
+select * from schemata limit 0,5;
+select * from schemata limit 0,5;
+--replace_result $SERVER_NAME <SERVER_NAME>
+--sorted_result
+select distinct grantee from user_privileges;
+--replace_result $SERVER_NAME <SERVER_NAME>
+--sorted_result
+select all grantee from user_privileges order by grantee, privilege_type;
+
+select id , character_set_name from collations order by id asc limit 10;
+
+select table_catalog from columns
+ union all
+select table_catalog from tables limit 0,5;
+select table_catalog from columns
+ union
+select table_catalog from tables limit 0,5;
+
+select all schema_name from information_schema.schemata;
+
+# the $ENGINE_TYPE variable is used here ONLY to have 3 different file names in
+# the three datadict testcases innodb_*, memory_* and myisam_*
+eval SELECT *
+ INTO OUTFILE '../tmp/out.$ENGINE_TYPE.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+
+USE test;
+
+eval SELECT *
+ INTO OUTFILE '../tmp/out.$ENGINE_TYPE.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+ WHERE schema_name LIKE 'db_%';
+
+# check also with a 'simple' user
+CREATE USER user_3212@localhost;
+GRANT ALL ON db_datadict.* TO user_3212@localhost;
+# OBN: The following line was added following the fix to bug 28181
+# where queries to information_schema will fail if exporting to
+# a file without having the FILE attribute
+GRANT FILE ON *.* TO user_3212@localhost;
+
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u3212,localhost,user_3212,,db_datadict);
+--source suite/funcs_1/include/show_connection.inc
+
+# no db given --> db_datadict.schema does not exist
+--error ER_NO_SUCH_TABLE
+eval SELECT *
+ INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+--error ER_NO_SUCH_TABLE
+eval SELECT *
+ FROM schemata LIMIT 0, 5;
+
+eval SELECT *
+ INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+ WHERE schema_name LIKE 'db_%';
+
+eval SELECT *
+ FROM information_schema.schemata
+ WHERE schema_name LIKE 'db_%';
+
+USE information_schema;
+
+eval SELECT *
+ INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user_2.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+
+eval SELECT *
+ FROM schemata LIMIT 0, 5;
+
+eval SELECT *
+ INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user_2.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+ WHERE schema_name LIKE 'db_%';
+
+eval SELECT *
+ FROM information_schema.schemata
+ WHERE schema_name LIKE 'db_%';
+
+disconnect u3212;
+connection default;
+USE information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+use db_datadict;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from information_schema.columns
+union
+select table_catalog, table_schema, table_name,
+ concat( "*** type = ", table_type )
+ from information_schema.tables
+ order by 3, 4 desc, 1, 2 limit 30;
+
+use information_schema;
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from columns
+union
+select table_catalog, table_schema, table_name,
+ concat( "*** type = ", table_type )
+ from tables
+ order by 3, 4 desc, 1, 2 limit 30;
+
+# cleanup
+DROP USER user_3212@localhost;
+
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.3: Ensure that no user may execute an INSERT statement on any
+# INFORMATION_SCHEMA table.
+################################################################################
+
+#FIXME: in this block we had --error 1288 until Mid Sep05, check the change!
+--error ER_DBACCESS_DENIED_ERROR
+insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path)
+ values ('null', 'db1', 'latin1', 'null');
+--error ER_DBACCESS_DENIED_ERROR
+insert into tables (table_schema, table_name)values('db_datadict', 't1');
+--error ER_DBACCESS_DENIED_ERROR
+insert into columns (table_name, column_name)values('t3', 'f2');
+--error ER_DBACCESS_DENIED_ERROR
+insert into character_sets (character_set_name, default_collate_name, description, maxlen)
+ values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1);
+--error ER_DBACCESS_DENIED_ERROR
+insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen)
+ values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+--error ER_DBACCESS_DENIED_ERROR
+insert into collation_character_set_applicability (collation_name, character_set_name)
+ values (' big5_chinese_ci', 'big6');
+--error ER_DBACCESS_DENIED_ERROR
+insert into routines(routine_name, routine_type ) values ('p2', 'procedure');
+--error ER_DBACCESS_DENIED_ERROR
+insert into statistics(table_schema, table_name, index_name)
+ values ('mysql', 'db', 'primary');
+--error ER_DBACCESS_DENIED_ERROR
+insert into views(table_schema, table_name) values ('db2', 'v2');
+--error ER_DBACCESS_DENIED_ERROR
+insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes');
+--error ER_DBACCESS_DENIED_ERROR
+insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert');
+--error ER_DBACCESS_DENIED_ERROR
+insert into table_privileges (able_schema, table_name, privilege_type)
+ values('db2', 'v2', 'insert');
+--error ER_DBACCESS_DENIED_ERROR
+insert into column_privileges (table_name, column_name, privilege_type)
+ values ('t3', 'f3', 'insert');
+--error ER_DBACCESS_DENIED_ERROR
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+ values ('primary', 'mysql', 'user');
+--error ER_DBACCESS_DENIED_ERROR
+insert into key_column_usage (constraint_schema, constraint_name, table_name)
+ values ('mysql', 'primary', 'db');
+
+# insert through a procedure
+--disable_warnings
+drop procedure if exists db_datadict.sp_4_1_3;
+--enable_warnings
+
+delimiter //;
+create procedure db_datadict.sp_4_1_3()
+begin
+ insert into information_schema.schema_privileges (table_schema,privilege_type)
+ values('db2','insert');
+end//
+delimiter ;//
+
+#FIXME: check for the diffs Win ./. Linux
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+ WHERE table_schema LIKE 'db%';
+
+--error ER_DBACCESS_DENIED_ERROR
+call db_datadict.sp_4_1_3();
+
+#FIXME: check for the diffs Win ./. Linux
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+ WHERE table_schema LIKE 'db%';
+
+# cleanup
+drop procedure db_datadict.sp_4_1_3;
+
+# insert into information_schema as a limited user
+
+CREATE USER user_4_1_3@localhost;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u413,localhost,user_4_1_3,,test);
+--source suite/funcs_1/include/show_connection.inc
+
+use information_schema;
+
+#FIXME: check later the change from 1288 to 1044 (since Mid Sep05)
+--error ER_DBACCESS_DENIED_ERROR
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+ values ('primary', 'mysql', 'user');
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.4:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
+# INFORMATION_SCHEMA table.
+################################################################################
+
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) in the whole next block
+--error ER_DBACCESS_DENIED_ERROR
+update schemata set schema_name = 'db5' where default_character_set_name = 'latin1';
+--error ER_DBACCESS_DENIED_ERROR
+update tables set table_schema = 'db_datadict1' where table_name = 't1';
+--error ER_DBACCESS_DENIED_ERROR
+update columns set table_name = 't4' where column_name = 'f2';
+--error ER_DBACCESS_DENIED_ERROR
+update character_sets set character_set_name = 'cp1252' where maxlen = 1;
+--error ER_DBACCESS_DENIED_ERROR
+update collations set collation_name = 'cp1253_bin'
+ where character_set_name = 'cp1251';
+--error ER_DBACCESS_DENIED_ERROR
+update collation_character_set_applicability set collation_name = 'big6_chinese_ci'
+ where character_set_name = 'big6';
+--error ER_DBACCESS_DENIED_ERROR
+update routines set routine_name = p2 where routine_body = 'sql';
+--error ER_DBACCESS_DENIED_ERROR
+update statistics set table_schema = 'mysql1' where table_name = 'db';
+--error ER_DBACCESS_DENIED_ERROR
+update views set table_schema = 'db3' where table_name = 'v1';
+--error ER_DBACCESS_DENIED_ERROR
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+--error ER_DBACCESS_DENIED_ERROR
+update schema_privileges set table_schema = 'db2' where privilege_type = 'select';
+--error ER_DBACCESS_DENIED_ERROR
+update table_privileges set table_name = 'v3' where privilege_type = 'select';
+--error ER_DBACCESS_DENIED_ERROR
+update column_privileges set table_name = 't4' where column_name = 'f3';
+--error ER_DBACCESS_DENIED_ERROR
+update table_constraints set constraint_schema = 'primary'
+ where table_schema = 'proc';
+--error ER_DBACCESS_DENIED_ERROR
+update key_column_usage set table_name = 'db1' where constraint_name = 'primary';
+
+# update through a procedure
+--disable_warnings
+drop procedure if exists db_datadict.sp_4_1_4;
+--enable_warnings
+
+delimiter //;
+create procedure db_datadict.sp_4_1_4()
+begin
+ update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end//
+delimiter ;//
+
+#FIXME: check for the diffs Win ./. Linux
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+select * from information_schema.routines;
+
+--error ER_DBACCESS_DENIED_ERROR
+call db_datadict.sp_4_1_4();
+
+#FIXME: check for the diffs Win ./. Linux
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+select * from information_schema.routines;
+
+# cleanup
+drop procedure db_datadict.sp_4_1_4;
+
+# update information_schema as a limited user
+
+connection u413;
+
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+#FIXME: check later the change from 1288 to 1044 (since Mid Sep05)
+--error ER_DBACCESS_DENIED_ERROR
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+#
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.5:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.5: Ensure that no user may execute a DELETE statement on any
+# INFORMATION_SCHEMA table.
+################################################################################
+
+use information_schema;
+
+let $message= root: DELETE FROM any table in IS;
+let $dd_part1= DELETE FROM;
+let $dd_part2=;
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+
+#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) in the whole next block
+--error ER_DBACCESS_DENIED_ERROR
+delete from schemata where schema_name = 'mysql';
+--error ER_DBACCESS_DENIED_ERROR
+delete from tables where table_name = 'abc';
+--error ER_DBACCESS_DENIED_ERROR
+delete from columns;
+--error ER_DBACCESS_DENIED_ERROR
+delete from character_sets;
+--error ER_DBACCESS_DENIED_ERROR
+delete from collations;
+--error ER_DBACCESS_DENIED_ERROR
+delete from collation_character_set_applicability;
+--error ER_DBACCESS_DENIED_ERROR
+delete from routines;
+--error ER_DBACCESS_DENIED_ERROR
+delete from statistics;
+--error ER_DBACCESS_DENIED_ERROR
+delete from views;
+--error ER_DBACCESS_DENIED_ERROR
+delete from user_privileges;
+--error ER_DBACCESS_DENIED_ERROR
+delete from schema_privileges;
+--error ER_DBACCESS_DENIED_ERROR
+delete from table_privileges;
+--error ER_DBACCESS_DENIED_ERROR
+delete from column_privileges;
+--error ER_DBACCESS_DENIED_ERROR
+delete from table_constraints;
+--error ER_DBACCESS_DENIED_ERROR
+delete from key_column_usage;
+
+# delete through a procedure
+--disable_warnings
+drop procedure if exists db_datadict.sp_4_1_5;
+--enable_warnings
+
+delimiter //;
+create procedure db_datadict.sp_4_1_5()
+begin
+ delete from information_schema.column_privileges;
+end//
+delimiter ;//
+
+--error ER_DBACCESS_DENIED_ERROR
+call db_datadict.sp_4_1_5();
+
+# cleanup
+drop procedure db_datadict.sp_4_1_5;
+
+# delete from information_schema as a limited user
+
+connection u413;
+
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+#FIXME: check later the change from 1288 to 1044 (since Mid Sep05)
+--error ER_DBACCESS_DENIED_ERROR
+delete from tables where table_name = 'abc';
+
+disconnect u413;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+# cleanup
+DROP USER user_4_1_3@localhost;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.6:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.6: Ensure that no user may create an INFORMATION_SCHEMA base
+# table.
+################################################################################
+
+use information_schema;
+
+let $message= root: create a table with a name of an IS table directly in IS;
+let $dd_part1= CREATE TABLE;
+let $dd_part2= ( c1 INT );
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '<xxx>' in <db> ?
+--error ER_UNKNOWN_TABLE
+create table t1 (f1 int, f2 int, f3 int);
+
+use db_datadict;
+
+#FIXME: check correct error message - HY000 Can't create/write to file '.\information_schema\columns.frm' (Errcode: 2)
+let $message= root: create a table with a name of an IS table from other db;
+let $dd_part1= CREATE TABLE information_schema.;
+let $dd_part2= ( c1 INT );
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '<xxx>' in <db> ?
+--error ER_UNKNOWN_TABLE
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+
+# create a table in information_schema as a limited user with sufficient permissions
+CREATE USER user_4_1_6@localhost;
+
+grant all on *.* to user_4_1_6@localhost;
+
+FLUSH PRIVILEGES;
+
+SHOW GRANTS FOR user_4_1_6@localhost;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u2, localhost, user_4_1_6, , information_schema);
+--source suite/funcs_1/include/show_connection.inc
+
+use information_schema;
+
+let $message= user: create a table with a name of an IS table directly in IS;
+let $dd_part1= CREATE TABLE;
+let $dd_part2= ( c1 INT );
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '<xxx>' in <db> ?
+--error ER_UNKNOWN_TABLE
+create table t1 (f1 int, f2 int, f3 int);
+
+use test;
+
+#FIXME 3.2.1.6: check correct error message - HY000 Can't create/write to file '.\information_schema\columns.frm' (Errcode: 2)
+let $message= user: create a table with a name of an IS table from other db;
+let $dd_part1= CREATE TABLE information_schema.;
+let $dd_part2= ( c1 INT );
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '<xxx>' in <db> ?
+--error ER_UNKNOWN_TABLE
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+
+#cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+disconnect u2;
+DROP USER user_4_1_6@localhost;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.7:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.7: Ensure that no user may create an INFORMATION_SCHEMA view.
+################################################################################
+
+use information_schema;
+
+let $message= root: create a view with a name of an IS table directly in IS;
+let $dd_part1= CREATE VIEW ;
+let $dd_part2= AS SELECT * FROM mysql.time_zone;
+#FIXME: check change from error 1 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+
+--error ER_UNKNOWN_TABLE
+CREATE VIEW v1 AS SELECT * FROM information_schema.schemata;
+
+USE db_datadict;
+
+let $message= root: create a view with a name of an IS table from other db;
+let $dd_part1= CREATE VIEW information_schema.;
+let $dd_part2= AS SELECT * FROM mysql.time_zone;
+#FIXME: check change from error 1 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+
+# ... but creating a view that 'uses' the information_schema is allowed:
+CREATE VIEW v1 AS SELECT * FROM information_schema.columns;
+
+SELECT * FROM v1 LIMIT 5;
+
+# create a view in information_schema as a limited user with sufficient permissions
+CREATE USER user_4_1_7@localhost;
+
+GRANT ALL ON db_datadict.* TO user_4_1_7@localhost;
+#FIXME: check that GRANT ON i_s is no longer allowed
+--error ER_DBACCESS_DENIED_ERROR
+GRANT ALL ON information_schema.* TO user_4_1_7@localhost;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u3, localhost, user_4_1_7, , db_datadict);
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+let $message= user: create a view with a name of an IS table directly in IS;
+let $dd_part1= CREATE VIEW ;
+let $dd_part2= AS SELECT * FROM db_datadict.v1;
+#FIXME: check change from error 1 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+--error ER_UNKNOWN_TABLE
+create view v1 as select * from table_privileges;
+
+use db_datadict;
+
+let $message= user: create a view with a name of an IS table from other db;
+let $dd_part1= CREATE VIEW information_schema.;
+let $dd_part2= AS SELECT * FROM db_datadict.v1;
+#FIXME: check change from error 1 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+disconnect u3;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER user_4_1_7@localhost;
+DROP VIEW db_datadict.v1;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.8:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.8: Ensure that no user may create an index on an
+# INFORMATION_SCHEMA table.
+################################################################################
+
+use information_schema;
+
+#FIXME: check later the change from 1288 to 1044 (since Mid Sep05)
+--error ER_DBACCESS_DENIED_ERROR
+create index i1 on schemata(schema_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i2 on tables(table_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i3 on columns(table_name);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i4 on character_sets(character_set_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i5 on collations( collation_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i6 on collation_character_set_applicability(collation_name);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i7 on routines(routine_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i8 on statistics(table_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i9 on views(table_schema);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i10 on user_privileges(privilege_type);
+--error ER_DBACCESS_DENIED_ERROR
+create index i11 on schema_privileges(table_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i12 on table_privileges(able_schema);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i13 on column_privileges(table_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i14 on table_constraints(constraint_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i15 on key_column_usage(constraint_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i16 on triggers(trigger_name);
+
+use db_datadict;
+--error ER_DBACCESS_DENIED_ERROR
+create index i15 on information_schema.key_column_usage(constraint_schema);
+
+use information_schema;
+
+# create an index on an information_schema table as a limited user with sufficient permissions
+CREATE USER user_4_1_8@localhost;
+
+grant select, index on *.* to user_4_1_8@localhost;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u4, localhost, user_4_1_8, , test);
+--source suite/funcs_1/include/show_connection.inc
+
+use information_schema;
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i1 on schemata(schema_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i2 on tables(table_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i3 on columns(table_name);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i4 on character_sets(character_set_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i5 on collations( collation_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i6 on collation_character_set_applicability(collation_name);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i7 on routines(routine_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i8 on statistics(table_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i9 on views(table_schema);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i10 on user_privileges(privilege_type);
+--error ER_DBACCESS_DENIED_ERROR
+create index i11 on schema_privileges(table_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i12 on table_privileges(able_schema);
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i13 on column_privileges(table_name);
+--error ER_DBACCESS_DENIED_ERROR
+create index i14 on table_constraints(constraint_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i15 on key_column_usage(constraint_schema);
+--error ER_DBACCESS_DENIED_ERROR
+create index i16 on triggers(trigger_name);
+
+use db_datadict;
+--error ER_DBACCESS_DENIED_ERROR
+create index i15 on information_schema.key_column_usage(constraint_schema);
+
+disconnect u4;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+# cleanup
+DROP USER user_4_1_8@localhost;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.9:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.9: Ensure that no user may alter the definition of an
+# INFORMATION_SCHEMA table.
+################################################################################
+
+#FIXME: 3.2.1.9 check for better error message than ERROR 42S02: Table 'information_schema.schemata' doesn't exist
+
+# first simple check all known - so we never forget one ...
+let $message= root: alter a table from other db;
+let $dd_part1= ALTER TABLE information_schema.;
+let $dd_part2= ADD f1 INT;
+#FIXME: check change from error 1146 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+use information_schema;
+let $message= root: alter a table from directly;
+let $dd_part1= ALTER TABLE ;
+let $dd_part2= ADD f1 INT;
+#FIXME: check change from error 1146 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+# now more detailed checks
+--error ER_DBACCESS_DENIED_ERROR
+alter table schemata add f1 int;
+--error ER_DBACCESS_DENIED_ERROR
+alter table tables drop primary key;
+--error ER_DBACCESS_DENIED_ERROR
+alter table columns add f1 int;
+--error ER_DBACCESS_DENIED_ERROR
+alter table character_sets disable keys;
+--error ER_DBACCESS_DENIED_ERROR
+alter table collations enable keys;
+--error ER_DBACCESS_DENIED_ERROR
+alter table collation_character_set_applicability add f1 int;
+--error ER_DBACCESS_DENIED_ERROR
+alter table routines discard tablespace;
+--error ER_DBACCESS_DENIED_ERROR
+alter table statistics import tablespace;
+--error ER_DBACCESS_DENIED_ERROR
+alter table views drop column table_name;
+--error ER_DBACCESS_DENIED_ERROR
+alter table user_privileges drop index privilege_type;
+--error ER_DBACCESS_DENIED_ERROR
+alter table schema_privileges drop column is_grantable;
+--error ER_DBACCESS_DENIED_ERROR
+alter table table_privileges order by constraint_type;
+--error ER_DBACCESS_DENIED_ERROR
+alter table column_privileges rename to aaxyz;
+--error ER_DBACCESS_DENIED_ERROR
+alter table table_constraints order by schema_name;
+--error ER_DBACCESS_DENIED_ERROR
+alter table key_column_usage rename to information_schema.aabxyz;
+--error ER_DBACCESS_DENIED_ERROR
+alter table triggers rename to information_schema.sql_mode;
+# Alter an information_schema table as a limited user with sufficient permissions
+
+CREATE USER user_4_1_9@localhost;
+
+grant select, alter, create, insert on *.* to user_4_1_9@localhost;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u5, localhost, user_4_1_9, , db_datadict);
+--source suite/funcs_1/include/show_connection.inc
+
+use db_datadict;
+
+let $message= user: alter a table from other db;
+let $dd_part1= ALTER TABLE information_schema.;
+let $dd_part2= ADD f1 INT;
+#FIXME: check change from error 1146 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+use information_schema;
+let $message= user: alter a table from directly;
+let $dd_part1= ALTER TABLE ;
+let $dd_part2= ADD f1 INT;
+#FIXME: check change from error 1146 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+disconnect u5;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER user_4_1_9@localhost;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.10:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
+################################################################################
+
+use information_schema;
+
+let $message= root: drop a table from IS;
+let $dd_part1= DROP TABLE ;
+let $dd_part2=;
+#FIXME: check change from error 1051 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+use db_datadict;
+
+let $message= root: drop a table from other db;
+let $dd_part1= DROP TABLE information_schema.;
+let $dd_part2=;
+#FIXME: check change from error 1051 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+use information_schema;
+
+# drop an information_schema table as a limited user with sufficient permissions
+
+CREATE USER user_4_1_10@localhost;
+
+GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u6,localhost,user_4_1_10,,db_datadict);
+
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+let $message= user: drop a table from IS;
+let $dd_part1= DROP TABLE ;
+let $dd_part2=;
+#FIXME: check change from error 1051 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+use db_datadict;
+
+let $message= user: drop a table from other db;
+let $dd_part1= DROP TABLE information_schema.;
+let $dd_part2=;
+#FIXME: check change from error 1051 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+disconnect u6;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+# cleanup
+DROP USER user_4_1_10@localhost;
+
+# Try to carry out information_schema modification operations with a user other than root having SUPER privileges
+CREATE USER user_4_1_11@localhost;
+
+GRANT SUPER ON *.* TO user_4_1_11@localhost;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u7,localhost,user_4_1_11, ,test);
+
+use information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+--error ER_DBACCESS_DENIED_ERROR
+drop table routines;
+
+--error ER_DBACCESS_DENIED_ERROR
+alter table collations enable keys;
+
+--error ER_DBACCESS_DENIED_ERROR
+create index i5 on collations( collation_name );
+
+--error ER_UNKNOWN_TABLE
+create view v1 as select * from schemata;
+
+--error ER_DBACCESS_DENIED_ERROR
+delete from columns;
+
+--error ER_DBACCESS_DENIED_ERROR
+update columns set table_name = 't4' where column_name = 'f2';
+
+--error ER_DBACCESS_DENIED_ERROR
+insert into collations ( collation_name, character_set_name, id, is_default,
+ is_compiled, sortlen)
+ values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+
+disconnect u7;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER user_4_1_11@localhost;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.11:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table
+# to any other database.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+CREATE DATABASE db_datadict;
+CREATE USER 'u_6_401011'@'localhost';
+
+#FIXME: check that GRANT ON i_s is no longer allowed
+--error ER_DBACCESS_DENIED_ERROR
+GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost';
+GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost';
+
+FLUSH PRIVILEGES;
+
+--error ER_DBACCESS_DENIED_ERROR
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+
+let $message= root: move table to other DB;
+let $dd_part1= ALTER TABLE information_schema.;
+let $dd_part2= RENAME db_datadict.tb_01;
+#FIXME: check change from error 1146 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401011, localhost, u_6_401011, , db_datadict);
+
+USE information_schema;
+--source suite/funcs_1/include/show_connection.inc
+
+--error ER_DBACCESS_DENIED_ERROR
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+
+let $message= user: move table to other DB;
+let $dd_part1= ALTER TABLE information_schema.;
+let $dd_part2= RENAME db_datadict.tb_01;
+#FIXME: check change from error 1146 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+disconnect u_6_401011;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+#cleanup
+--disable_warnings
+#DROP DATABASE db_datadict;
+DROP TABLE IF EXISTS db_datadict.schemata;
+DROP USER 'u_6_401011'@'localhost';
+--enable_warnings
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.12:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.12: Ensure that no user may directly add to, alter, or delete
+# any data in an INFORMATION_SCHEMA table.
+################################################################################
+
+# first as root a DELETE check on all tables
+let $message= root: delete from IS tables;
+let $dd_part1= DELETE FROM information_schema.;
+let $dd_part2=;
+#FIXME: check change from error 1288 to 1044
+--source suite/funcs_1/datadict/datadict_tables_error_1044.inc
+# check UPDATE for all ...
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.tables SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.columns SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.statistics SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.views SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.table_privileges SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.column_privileges SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.table_constraints SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.key_column_usage SET table_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.schemata SET catalog_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.character_sets SET description = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.collations SET character_set_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.collation_character_set_applicability
+ SET character_set_name = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.routines SET routine_type = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.user_privileges SET grantee = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.schema_privileges SET grantee = 't_4711';
+--error ER_DBACCESS_DENIED_ERROR
+UPDATE information_schema.triggers SET sql_mode = 't_4711';
+
+CREATE USER 'u_6_401012'@'localhost';
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401012, localhost, u_6_401012, , test);
+
+use information_schema;
+
+--error ER_DBACCESS_DENIED_ERROR
+insert into information_schema.schemata (catalog_name, schema_name,
+ default_character_set_name, sql_path)
+ values (null, information_schema1, utf16, null);
+#FIXME: check later the change from 1142 to 1044 (since Mid Sep05)
+--error ER_DBACCESS_DENIED_ERROR
+alter table information_schema.schemata rename db_datadict1.schemata;
+#FIXME: check later the change from 1146 to 1044 (since Mid Sep05)
+--error ER_DBACCESS_DENIED_ERROR
+alter table information_schema.tables drop column checksum;
+--error ER_DBACCESS_DENIED_ERROR
+alter table information_schema.statistics modify packed int;
+--error ER_DBACCESS_DENIED_ERROR
+alter table information_schema.routines modify created int not null;
+--error ER_DBACCESS_DENIED_ERROR
+alter table information_schema.key_column_usage drop column ordinal_position;
+--error ER_DBACCESS_DENIED_ERROR
+alter table information_schema.table_privileges
+ change privilege_type rights_approved varchar(32);
+--error ER_DBACCESS_DENIED_ERROR
+update columns set table_name = 't4' where column_name = 'f2';
+--error ER_DBACCESS_DENIED_ERROR
+delete from information_schema.collations;
+
+disconnect u_6_401012;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+--disable_warnings
+drop table if exists db_datadict1.schemata;
+DROP USER 'u_6_401012'@'localhost';
+--enable_warnings
+#-------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.13:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.13: Ensure that the creation of any new database object
+# (e.g. table or column) automatically inserts all relevant
+# information on that object into every appropriate
+# INFORMATION_SCHEMA table.
+################################################################################
+
+use information_schema;
+
+let $dbname=db_datadict;
+let $message= first check status >before< creating the objects ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+eval create table res_t_401013(f1 char(10), f2 char(25), f3 int)
+ engine = $ENGINE_TYPE;
+create view res_v_401013 as select * from res_t_401013;
+CREATE USER u_6_401013@localhost;
+create procedure sp_6_401013() select 'db_datadict';
+create function fn_6_401013() returns int return 0;
+create index i_6_401013 on res_t_401013(f3);
+
+use information_schema;
+
+let $message= now check whether all new objects exists in IS ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+
+# cleanup objects
+use db_datadict;
+drop index i_6_401013 on res_t_401013;
+drop table db_datadict.res_t_401013;
+drop view db_datadict.res_v_401013;
+DROP USER u_6_401013@localhost;
+drop procedure sp_6_401013;
+drop function fn_6_401013;
+drop database db_datadict;
+
+use information_schema;
+
+let $message= and now check whether all objects are removed from IS ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.14:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.14: Ensure that the alteration of any existing database object
+# automatically updates all relevant information on that
+# object in every appropriate INFORMATION_SCHEMA table.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+create table res_t_401014(f1 char(10), f2 varchar(25), f3 int);
+create view res_v_401014 as select * from res_t_401014;
+create procedure sp_6_401014() select 'db_datadict';
+create function fn_6_401014() returns int return 0;
+
+# check current information in information_schema
+
+let $dbname=db_datadict;
+let $message= show existing objects >before< changing them ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+
+# alter objects
+
+use db_datadict;
+
+alter table res_t_401014 change f1 ff1 int;
+eval alter table res_t_401014 engine = $OTHER_ENGINE_TYPE;
+alter table res_t_401014 change f3 f3_new bigint;
+alter view res_v_401014 as select ff1 from res_t_401014;
+alter procedure sp_6_401014 sql security invoker;
+alter function fn_6_401014 comment 'updated comments';
+alter database db_datadict character set utf8;
+
+# check updated information in information_schema
+let $message= now check whether the changes are visible in IS ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+
+
+# cleanup
+
+use db_datadict;
+drop table db_datadict.res_t_401014;
+drop view db_datadict.res_v_401014;
+drop procedure sp_6_401014;
+drop function fn_6_401014;
+drop database db_datadict;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.15:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.15: Ensure that the dropping of any existing database object
+# automatically deletes all relevant information on that
+# object from every appropriate INFORMATION_SCHEMA table.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+create table res_t_401015(f1 char(10), f2 text(25), f3 int);
+create view res_v_401015 as select * from res_t_401015;
+CREATE USER u_6_401015@localhost;
+create procedure sp_6_401015() select 'test';
+create function fn_6_401015() returns int return 0;
+create index i_6_401015 on res_t_401015(f3);
+
+let $dbname=db_datadict;
+let $message= show existing objects >before< dropping them ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+
+use db_datadict;
+drop index i_6_401015 on res_t_401015;
+drop table db_datadict.res_t_401015;
+drop view db_datadict.res_v_401015;
+DROP USER u_6_401015@localhost;
+drop procedure sp_6_401015;
+drop function fn_6_401015;
+#drop database db_datadict;
+
+let $message= now check they are really gone ...;
+--source suite/funcs_1/datadict/datadict_show_schema.inc
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.16:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.16: Ensure that no user may use any INFORMATION_SCHEMA table to
+# determine any information on a database and/or its
+# structure unless authorized to get that information.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+
+CREATE DATABASE db_hidden;
+USE db_hidden;
+CREATE TABLE tb_hidden ( c1 TEXT );
+
+USE db_datadict;
+
+CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int);
+CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int);
+
+CREATE USER 'u_6_401016'@'localhost';
+GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost';
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401016, localhost, u_6_401016, , test);
+
+USE information_schema;
+
+SELECT table_schema, table_name, engine
+ FROM TABLES;
+# WHERE table_name LIKE 'res_t_401016%';
+
+SHOW TABLES;
+SELECT * FROM schemata;
+
+disconnect u_6_401016;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+#FIXME: check that GRANT ON i_s is no longer allowed
+--error ER_DBACCESS_DENIED_ERROR
+grant usage on information_schema.* to 'u_6_401016'@'localhost';
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401016_1, localhost, u_6_401016, , db_datadict);
+
+USE information_schema;
+SHOW TABLES;
+SELECT * FROM schemata;
+
+disconnect u_6_401016_1;
+
+# all tables are checked again later with permission tests
+
+# cleanup
+connection default;
+use db_datadict;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'u_6_401016'@'localhost';
+drop table res_t_401016;
+drop table res_t_401016_1;
+DROP DATABASE db_hidden;
+#drop database db_datadict;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.17:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.17: Ensure that the SELECT privilege is granted TO PUBLIC WITH
+# GRANT OPTION on every INFORMATION_SCHEMA table.
+################################################################################
+
+CREATE USER 'u_6_401017'@'localhost';
+
+#FIXME: check that GRANT ON i_s is no longer allowed
+--error ER_DBACCESS_DENIED_ERROR
+grant select on information_schema.* to u_6_401017@localhost;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401017, localhost, u_6_401017, , test);
+
+use information_schema;
+
+select * from collation_character_set_applicability;
+select * from schemata;
+select table_name from tables;
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+select table_name, column_name, column_type from columns;
+select character_set_name from character_sets;
+select collation_name from collations;
+select routine_name, routine_type from routines;
+select table_name, index_name from statistics;
+select table_name from views;
+select privilege_type from user_privileges;
+select grantee, privilege_type from schema_privileges;
+select * from table_privileges;
+select column_name, privilege_type from column_privileges;
+select table_name,constraint_type from table_constraints;
+select table_schema, table_name, column_name from key_column_usage;
+
+disconnect u_6_401017;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'u_6_401017'@'localhost';
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.18:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.18: Ensure that the CREATE VIEW privilege on an
+# INFORMATION_SCHEMA table may be granted to any user.
+################################################################################
+
+CREATE USER 'u_6_401018'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost';
+GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost';
+
+SHOW GRANTS FOR 'u_6_401018'@'localhost';
+FLUSH PRIVILEGES;
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401018, localhost, u_6_401018, , test);
+
+USE db_datadict;
+
+create view db_datadict.v_401018 as
+ select * from information_schema.schemata;
+SELECT * FROM v_401018 ORDER BY 2 DESC;
+
+disconnect u_6_401018;
+
+#cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'u_6_401018'@'localhost';
+DROP DATABASE db_datadict;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.19:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.19: Ensure that no other privilege on an INFORMATION_SCHEMA
+# table is granted, or may be granted, to any user.
+################################################################################
+
+CREATE USER 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant alter on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant alter routine on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant create on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant create routine on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant create temporary tables
+ on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant delete on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant drop on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant execute on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant index on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant insert on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant lock tables on information_schema.* to 'u_6_401019'@'localhost';
+
+#FIXME: check GRANT on IS
+--error ER_DBACCESS_DENIED_ERROR
+grant update on information_schema.* to 'u_6_401019'@'localhost';
+
+SELECT * FROM information_schema.table_privileges
+ WHERE table_schema = "information_schema";
+SELECT * FROM information_schema.column_privileges
+ WHERE table_schema = "information_schema";
+
+# cleanup
+DROP USER 'u_6_401019'@'localhost';
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.1.20:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.1.20: Ensure that USE INFORMATION_SCHEMA allows the user to
+# switch to the INFORMATION_SCHEMA database, for query
+# purposes only.
+################################################################################
+
+CREATE USER 'u_6_401020'@'localhost';
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401020, localhost, u_6_401020, , test);
+
+USE information_schema;
+SELECT * FROM schemata;
+
+--error ER_UNKNOWN_TABLE
+CREATE TABLE tb_not_allowed ( col TEXT );
+#FIXME 3.2.1.20: bad message: ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema
+#FIXME 3.2.1.20: better: ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+
+--error ER_UNKNOWN_TABLE
+create view res_v1 as select * from information_schema.schemata;
+
+--error ER_DBACCESS_DENIED_ERROR
+alter table schemata modify catalog_name varchar(255);
+
+--error ER_DBACCESS_DENIED_ERROR
+update schemata set catalog_name = 'abc'
+ where schema_name = 'information_schema';
+
+delimiter //;
+--error ER_BAD_DB_ERROR
+CREATE PROCEDURE sp_3_2_1_20()
+ BEGIN
+ INSERT INTO information_schema.schema_privileges (table_schema,privilege_type)
+ VALUES('db2','insert');
+ END//
+delimiter ;//
+
+--error ER_DBACCESS_DENIED_ERROR
+DELETE FROM schemata WHERE schema_name = 'information_schema';
+
+disconnect u_6_401020;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'u_6_401020'@'localhost';
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.2.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.2.1: Ensure that the INFORMATION_SCHEMA.CHARACTER_SETS
+# table has the following columns, in the following order:
+#
+# CHARACTER_SET_NAME (shows a character set name),
+# DEFAULT_COLLATE_NAME (shows the name of the default
+# collation for that character set),
+# DESCRIPTION (shows a descriptive name for that character
+# set),
+# MAXLEN (shows the number of bytes used to store each
+# character supported by that character set).
+################################################################################
+
+let $is_table= character_sets;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.2.2:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.2.2: Ensure that the table shows the relevant information on
+# every character set for which the current user or PUBLIC
+# have the USAGE privilege.
+################################################################################
+
+--source suite/funcs_1/include/show_connection.inc
+SELECT * FROM information_schema.character_sets;
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.2.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.2.3: Ensure that the table shows the relevant information on
+# every character set for which the current user or PUBLIC
+# have the USAGE privilege.
+################################################################################
+
+# Test requirement is erroneous... we cannot grant / revoke privilege for using
+# a character set.
+# ------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.3.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.3.1: Ensure that the INFORMATION_SCHEMA.COLLATIONS
+# table has the following columns, in the following order:
+#
+# COLLATION_NAME (shows a collation name),
+# CHARACTER_SET_NAME (shows the name of the character set to
+# which the collation applies),
+# ID (shows a numeric identifier for that collation/character
+# set combination),
+# IS_DEFAULT (shows whether the collation is the default
+# collation for the character set shown),
+# IS_COMPILED (indicates whether the collation is compiled
+# into the MySQL server),
+# SORTLEN (shows a value related to the amount of memory
+# required to sort strings using this
+# collation/character set combination).
+################################################################################
+
+let $is_table= collations;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.3.2:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.3.2: Ensure that the table shows the relevant information on
+# every collation for which the current user or PUBLIC have
+# the USAGE privilege.
+################################################################################
+
+SELECT * FROM collations;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.3.3:;
+--source include/show_msg80.inc
+
+###############################################################################
+# Testcase 3.2.3.3: Ensure that the table does not show any information on any
+# collations for which the current user and PUBLIC have no
+# USAGE privilege.
+################################################################################
+
+# Test requirement is erroneous... we cannot grant / revoke privilege for using
+# a collation.
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.4.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.4.1: Ensure that the
+# INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY
+# table has the following columns, in the following order:
+#
+# COLLATION_NAME (shows the name of a collation),
+# CHARACTER_SET_NAME (shows the name of a character set to
+# which that collation applies).
+################################################################################
+
+let $is_table= collation_character_set_applicability;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.4.2:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.4.2: Ensure that the table shows the relevant information on
+# every collation/character set combination for which the
+# current user or PUBLIC have the USAGE privilege.
+# Note(2007-08-24 mleich):
+# The amount of collations/character sets grows with new
+# MySQL releases and is a reason why this test might
+# fail with differences. Please check the new entries
+# and update with expected results afterwards.
+################################################################################
+
+SELECT * FROM collation_character_set_applicability;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.4.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.4.3: Ensure that the table does not show any information on any
+# collation/character set combinations for which the current
+# user and PUBLIC have no USAGE privilege.
+################################################################################
+
+# Test requirement is erroneous... we cannot grant / revoke privilege for using a collation.
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.5.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.5.1: Ensure that the INFORMATION_SCHEMA.COLUMN_PRIVILEGES
+# table has the following columns, in the following order:
+#
+# GRANTEE (shows the name of a user who has either granted,
+# or been granted a column privilege),
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the name of the schema, or database,
+# in which the table for which a column privilege has
+# been granted resides),
+# TABLE_NAME (shows the name of the table),
+# COLUMN_NAME (shows the name of the column on which a
+# column privilege has been granted),
+# PRIVILEGE_TYPE (shows the type of privilege that was
+# granted; must be either SELECT, INSERT, UPDATE, or
+# REFERENCES),
+# IS_GRANTABLE (shows whether that privilege was granted
+# WITH GRANT OPTION).
+################################################################################
+
+let $is_table= column_privileges;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.5.2: Ensure that the table shows the relevant information on
+# every column privilege which has been granted to the
+# current user or PUBLIC, or which was granted by the current
+# user.
+################################################################################
+# Testcase 3.2.5.3: Ensure that the table does not show any information on any
+# column privilege which was granted to any user other than
+# the current user or PUBLIC, or which was granted by any
+# user other than the current user.
+################################################################################
+# Testcase 3.2.5.4: Ensure that the table does not show any information on any
+# privileges that are not column privileges for the current
+# user.
+################################################################################
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT);
+
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION;
+GRANT ALL ON db_datadict.* TO 'user_3'@'localhost';
+
+let $select= SELECT * FROM information_schema.column_privileges
+ WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+eval $select;
+
+let $message= FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has;
+--source include/show_msg.inc
+
+GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+eval $select;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_5_1, localhost, user_1, , db_datadict);
+eval $select;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_5_2, localhost, user_2, , db_datadict);
+eval $select;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_5_3, localhost, user_3, , db_datadict);
+
+let $message= FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES;
+--source include/show_msg.inc
+SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%";
+SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%";
+eval $select;
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+
+let $message= FIXME: check whether it is intended that *my* grants to others are *NOT* shown here;
+--source include/show_msg.inc
+eval $select;
+
+connection user_5_2;
+--source suite/funcs_1/include/show_connection.inc
+eval $select;
+
+disconnect user_5_1;
+disconnect user_5_2;
+disconnect user_5_3;
+
+#cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+--disable_warnings
+DROP TABLE IF EXISTS db_datadict.res_t40502;
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.6.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.6.1: Ensure that the INFORMATION_SCHEMA.COLUMNS table has the
+# following columns, in the following order:
+#
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the name of the database, or schema,
+# in which an accessible table resides),
+# TABLE_NAME (shows the name of an accessible table),
+# COLUMN_NAME (shows the name of a column within that
+# table),
+# ORDINAL_POSITION (shows the ordinal position of that
+# column in that table),
+# COLUMN_DEFAULT (shows the column's default value),
+# IS_NULLABLE (shows whether the column may accept NULL
+# values),
+# DATA_TYPE (shows the column's defined data type; keyword
+# only),
+# CHARACTER_MAXIMUM_LENGTH (shows, for a string column, the
+# column's defined maximum length in characters;
+# otherwise NULL),
+# CHARACTER_OCTET_LENGTH (shows, for a string column, the
+# column's defined maximum length in octets;
+# otherwise NULL),
+# NUMERIC_PRECISION (shows, for a numeric column, the
+# column's or data type's defined precision;
+# otherwise NULL),
+# NUMERIC_SCALE (shows, for a numeric column, the column's
+# or data type's defined scale; otherwise NULL),
+# CHARACTER_SET_NAME (shows, for a character string column,
+# the column's default character set; otherwise NULL),
+# COLLATION_NAME (shows, for a character string column, the
+# column's default collation; otherwise NULL),
+# COLUMN_TYPE (shows the column's complete, defined data
+# type),
+# COLUMN_KEY (shows whether the column is indexed; possible
+# values are PRI if the column is part of a PRIMARY
+# KEY, UNI if the column is part of a UNIQUE key, MUL
+# if the column is part of an index key that allows
+# duplicates),
+# EXTRA (shows any additional column definition information,
+# e.g. whether the column was defined with the
+# AUTO_INCREMENT attribute),
+# PRIVILEGES (shows the privileges available to the user on
+# the column),
+# COLUMN_COMMENT (shows the comment, if any, defined for the
+# comment; otherwise NULL).
+################################################################################
+
+let $is_table= columns;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.6.2 + 3.2.6.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.6.2: Ensure that the table shows the relevant information on the
+# columns of every table that is accessible to the current
+# user or to PUBLIC.
+################################################################################
+# Testcase 3.2.6.3: Ensure that the table does not show any information on the
+# columns of any table which is not accessible to the current
+# user or PUBLIC.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+
+USE db_datadict;
+
+create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int);
+grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost';
+
+create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int);
+GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost';
+
+FLUSH PRIVILEGES;
+
+let $select= SELECT * FROM information_schema.columns
+ ORDER BY table_schema, table_name, ordinal_position;
+
+# show view of user root
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval $select;
+
+# reconnect to mysql with user credential of user u_6_406002_1.
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_6_1, localhost, user_1, , db_datadict);
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval $select;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_6_2, localhost, user_2, , db_datadict);
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval $select;
+
+disconnect user_6_1;
+disconnect user_6_2;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+let $message= Show the quotient of COL and CML for all COLUMNS;
+--source include/show_msg.inc
+SELECT DISTINCT
+ CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+ DATA_TYPE,
+ CHARACTER_SET_NAME,
+ COLLATION_NAME
+ FROM information_schema.columns
+ WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
+ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+
+#FIXME 3.2.6.2: check the value 2.0079 tinytext ucs2 ucs2_general_ci
+SELECT DISTINCT
+ CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+ DATA_TYPE,
+ CHARACTER_SET_NAME,
+ COLLATION_NAME
+ FROM information_schema.columns
+ WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
+ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+
+SELECT DISTINCT
+ CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+ DATA_TYPE,
+ CHARACTER_SET_NAME,
+ COLLATION_NAME
+ FROM information_schema.columns
+ WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
+ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+
+echo --> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values;
+echo --> are 0, which is intended behavior, and the result of 0 / 0 IS NULL;
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+ TABLE_SCHEMA,
+ TABLE_NAME,
+ COLUMN_NAME,
+ DATA_TYPE,
+ CHARACTER_MAXIMUM_LENGTH,
+ CHARACTER_OCTET_LENGTH,
+ CHARACTER_SET_NAME,
+ COLLATION_NAME,
+ COLUMN_TYPE
+ FROM information_schema.columns
+ ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
+
+#cleanup
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE IF EXISTS t_6_406001;
+DROP TABLE IF EXISTS t_6_406002;
+DROP DATABASE IF EXISTS db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.7.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.7.1: Ensure that the INFORMATION_SCHEMA.KEY_COLUMN_USAGE
+# table has the following columns, in the following order:
+#
+# CONSTRAINT_CATALOG (always shows NULL),
+# CONSTRAINT_SCHEMA (shows the database, or schema, in which
+# an accessible constraint, or index, resides),
+# CONSTRAINT_NAME (shows the name of the accessible
+# constraint),
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the database, or schema, in which the
+# table constrained by that constraint resides),
+# TABLE_NAME (shows the name of the table constrained by the
+# constraint),
+# COLUMN_NAME (shows the name of a column that is the index
+# key, or part of the index key),
+# ORDINAL_POSITION (shows the ordinal position of the column
+# within the constraint index),
+# POSITION_IN_UNIQUE_CONSTRAINT (shows, for a foreign key
+# column, the ordinal position of the referenced
+# column within the referenced unique index;
+# otherwise NULL).
+# added with 5.0.6: REFERENCED_TABLE_SCHEMA,
+# REFERENCED_TABLE_NAME,
+# REFERENCED_COLUMN_NAME
+################################################################################
+
+let $is_table= key_column_usage;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.7.2 + 3.2.7.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.7.2: Ensure that the table shows the relevant information on
+# every column, defined to be part of an index key, which is
+# accessible to the current user or to PUBLIC.
+################################################################################
+# Testcase 3.2.7.3: Ensure that the table does not show any information on any
+# indexed column that is not accessible to the current user
+# or PUBLIC.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+CREATE DATABASE db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+
+USE db_datadict;
+
+CREATE TABLE t_40701 (
+ f1 INT NOT NULL, PRIMARY KEY(f1),
+ f2 INT, INDEX f2_ind(f2)
+ );
+GRANT SELECT ON t_40701 to 'user_1'@'localhost';
+
+CREATE TABLE t_40702 (
+ f1 INT NOT NULL, PRIMARY KEY(f1),
+ f2 INT, INDEX f2_ind(f2)
+ );
+GRANT SELECT ON t_40702 to 'user_2'@'localhost';
+#FIXME: add foreign keys
+
+FLUSH PRIVILEGES;
+
+let $select= SELECT * FROM information_schema.key_column_usage
+ ORDER BY constraint_catalog, constraint_schema, constraint_name,
+ table_catalog, table_schema, table_name, ordinal_position;
+
+# show view of user root
+eval $select;
+
+# reconnect to mysql with user credential of user u_6_406002_1.
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_7_1, localhost, user_1, , db_datadict);
+eval $select;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_7_2, localhost, user_2, , db_datadict);
+eval $select;
+
+disconnect user_7_1;
+disconnect user_7_2;
+
+#cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE t_40701;
+DROP TABLE t_40702;
+DROP DATABASE IF EXISTS db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.8.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.8.1: Ensure that the INFORMATION_SCHEMA.ROUTINES
+# table has the following columns, in the following order:
+#
+# SPECIFIC_NAME (shows the name of an accessible stored
+# procedure, or routine),
+# ROUTINE_CATALOG (always shows NULL),
+# ROUTINE_SCHEMA (shows the database, or schema, in which
+# the routine resides),
+# ROUTINE_NAME (shows the same stored procedure name),
+# ROUTINE_TYPE (shows whether the stored procedure is a
+# procedure or a function),
+# DTD_IDENTIFIER (shows, for a function, the complete
+# data type definition of the value the function will
+# return; otherwise NULL),
+# ROUTINE_BODY (shows the language in which the stored
+# procedure is written; currently always SQL),
+# ROUTINE_DEFINITION (shows as much of the routine body as
+# is possible in the allotted space),
+# EXTERNAL_NAME (always shows NULL),
+# EXTERNAL_LANGUAGE (always shows NULL),
+# PARAMETER_STYLE (shows the routine's parameter style;
+# always SQL),
+# IS_DETERMINISTIC (shows whether the routine is
+# deterministic),
+# SQL_DATA_ACCESS (shows the routine's defined
+# sql-data-access clause value),
+# SQL_PATH (always shows NULL),
+# SECURITY_TYPE (shows whether the routine's defined
+# security_type is 'definer' or 'invoker'),
+# CREATED (shows the timestamp of the time the routine was
+# created),
+# LAST_ALTERED (shows the timestamp of the time the routine
+# was last altered),
+# SQL_MODE (shows the sql_mode setting at the time the
+# routine was created),
+# ROUTINE_COMMENT (shows the comment, if any, defined for
+# the routine; otherwise NULL),
+# DEFINER (shows the user who created the routine).
+################################################################################
+
+let $is_table= routines;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.8.2 + 3.2.8.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.8.2: Ensure that the table shows the relevant information on
+# every SQL-invoked routine (i.e. stored procedure) which is
+# accessible to the current user or to PUBLIC.
+################################################################################
+# Testcase 3.2.8.3: Ensure that the table does not show any information on any
+# stored procedure that is not accessible to the current user
+# or PUBLIC.;
+##############################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
+
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+
+CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+
+INSERT INTO res_6_408002_1(f1, f2, f3, f4)
+ VALUES('abc', 'xyz', '1989-11-09', 0815);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp_6_408002_1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp_6_408002_1()
+BEGIN
+ SELECT * FROM db_datadict.res_6_408002_1;
+END//
+delimiter ;//
+
+CREATE DATABASE db_datadict_2;
+USE db_datadict_2;
+
+CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+
+INSERT INTO res_6_408002_2(f1, f2, f3, f4)
+ VALUES('abc', 'xyz', '1990-10-03', 4711);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp_6_408002_2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp_6_408002_2()
+BEGIN
+ SELECT * FROM db_datadict_2.res_6_408002_2;
+END//
+delimiter ;//
+
+GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost';
+
+GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost';
+
+GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_8_1, localhost, user_1, , db_datadict);
+
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.routines;
+disconnect user_8_1;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_8_2, localhost, user_2, , db_datadict);
+
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.routines;
+disconnect user_8_2;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_8_3, localhost, user_3, , test);
+
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.routines;
+disconnect user_8_3;
+
+# clean-up
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+
+use db_datadict;
+DROP TABLE res_6_408002_1;
+DROP PROCEDURE sp_6_408002_1;
+
+USE db_datadict_2;
+DROP TABLE res_6_408002_2;
+DROP PROCEDURE sp_6_408002_2;
+
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.8.4:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.8.4: Ensure that a stored procedure with a routine body that is
+# too large to fit into the
+# INFORMATION_SCHEMA.ROUTINES.ROUTINE_DEFINITION column
+# correctly shows as much of the information as is possible
+# within the allotted size.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+CREATE DATABASE db_datadict;
+USE db_datadict;
+
+create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+
+insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10);
+
+--disable_warnings
+drop procedure if exists sp_6_408004;
+--enable_warnings
+
+create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+
+insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10);
+
+let $message= Checking the max. possible length of (currently) 4 GByte is not possible in this environment here.;
+--source include/show_msg.inc
+
+delimiter //;
+create procedure sp_6_408004 ()
+begin
+ declare done integer default 0;
+ declare variable_number_1 longtext;
+ declare variable_number_2 mediumint;
+ declare variable_number_3 longblob;
+ declare variable_number_4 real;
+ declare variable_number_5 year;
+ declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+ declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+ declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+ declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+ declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ begin
+ open cursor_number_1;
+ while done <> 1 do
+ fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+ if done <> 0 then
+ insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+ variable_number_4, variable_number_5);
+ end if;
+ end while;
+ begin
+ begin
+ set done = 0;
+ open cursor_number_2;
+ while done <> 1 do
+ fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+ if done <> 0 then
+ insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+ end if;
+ end while;
+ end;
+ set done = 0;
+ open cursor_number_3;
+ while done <> 1 do
+ fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+ if done <> 0 then
+ insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+ end if;
+ end while;
+ end;
+ end;
+ begin
+ set done = 0;
+ open cursor_number_4;
+ while done <> 1 do
+ fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+ if done <> 0 then
+ insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+ end if;
+ end while;
+ end;
+ begin
+ set @a='test row';
+ select @a;
+ select @a;
+ select @a;
+ end;
+ begin
+ set done = 0;
+ open cursor_number_5;
+ while done <> 1 do
+ fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+ if done <> 0 then
+ insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+ end if;
+ end while;
+ end;
+ begin
+ set @a='test row';
+ select @a;
+ select @a;
+ select @a;
+ end;
+end//
+delimiter ;//
+
+call sp_6_408004 ();
+select * from res_6_408004_2;
+
+--vertical_results
+--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT *, LENGTH(routine_definition)
+ FROM information_schema.routines
+ WHERE routine_schema = 'db_datadict';
+--horizontal_results
+
+# clean-up
+use db_datadict;
+drop procedure sp_6_408004;
+drop table res_6_408004_1;
+drop table res_6_408004_2;
+use test;
+drop database db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.9.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.9.1: Ensure that the INFORMATION_SCHEMA.SCHEMATA
+# table has the following columns, in the following order:
+#
+# CATALOG_NAME (always shows NULL),
+# SCHEMA_NAME (shows the name of a database, or schema, on
+# which the current user or PUBLIC has privileges),
+# DEFAULT_CHARACTER_SET_NAME (shows the name of that
+# database's default character set),
+# DEFAULT_COLLATION_NAME (shows the database default
+# collation)
+# SQL_PATH (always shows NULL).
+################################################################################
+
+let $is_table= schemata;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.9.2 + 3.2.9.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.9.2: Ensure that the table shows the relevant information for
+# every database on which the current user or PUBLIC have
+# privileges.
+################################################################################
+# Testcase 3.2.9.3: Ensure that the table does not show any information on any
+# databases on which the current user and PUBLIC have no
+# privileges.
+################################################################################
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
+
+CREATE DATABASE db_datadict_1;
+CREATE DATABASE db_datadict_2;
+
+GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost';
+
+FLUSH PRIVILEGES;
+
+# shows db_1
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_9_1, localhost, user_1, , db_datadict_1);
+
+SELECT COUNT(*) FROM information_schema.schemata;
+SELECT * FROM information_schema.schemata;
+disconnect user_9_1;
+
+
+# shows db_2
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_9_2, localhost, user_2, , db_datadict_2);
+
+SELECT COUNT(*) FROM information_schema.schemata;
+SELECT * FROM information_schema.schemata;
+disconnect user_9_2;
+
+
+# shows neither db_1 nor db_2
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_9_3, localhost, user_3, , test);
+
+SELECT COUNT(*) FROM information_schema.schemata;
+SELECT * FROM information_schema.schemata;
+disconnect user_9_3;
+
+
+# clean-up
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE db_datadict_1;
+DROP DATABASE db_datadict_2;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.10.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.10.1: Ensure that the INFORMATION_SCHEMA.TABLE_CONSTRAINTS
+# table has the following columns, in the following order:
+#
+# CONSTRAINT_CATALOG (always shows NULL),
+# CONSTRAINT_SCHEMA (shows the database, or schema, in which
+# a constraint an accessible table resides),
+# CONSTRAINT_NAME (shows the name of a constraint defined on
+# an accessible table),
+# TABLE_SCHEMA (shows the database, or schema, in which the
+# table resides),
+# TABLE_NAME (shows the name of the table),
+# CONSTRAINT_TYPE (shows the type of the constraint; either
+# 'primary key', 'foreign key', 'unique', 'check').
+################################################################################
+
+let $is_table= table_constraints;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.10.2 + 3.2.10.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.10.2: Ensure that the table shows the relevant information on all
+# constraints defined on every table for which the current
+# user or PUBLIC have privileges.
+################################################################################
+# Testcase 3.2.10.3: Ensure that the table does not show any information on
+# constraints defined on any table for which the current user
+# and PUBLIC have no privileges.
+################################################################################
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
+
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+
+USE db_datadict;
+
+CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+
+USE db_datadict_2;
+
+CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+
+GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost';
+
+FLUSH PRIVILEGES;
+
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_10_1, localhost, user_1, , db_datadict);
+
+SELECT * FROM information_schema.table_constraints;
+SELECT COUNT(*) FROM information_schema.table_constraints;
+disconnect user_10_1;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_10_2, localhost, user_2, , db_datadict_2);
+
+SELECT * FROM information_schema.table_constraints;
+SELECT COUNT(*) FROM information_schema.table_constraints;
+disconnect user_10_2;
+
+# clean-up
+connection default;
+use db_datadict;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE res_6_401003_1;
+USE db_datadict_2;
+DROP TABLE res_6_401003_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.11.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.11.1: Ensure that the INFORMATION_SCHEMA.TABLE_PRIVILEGES
+# table has the following columns, in the following order:
+#
+# GRANTEE (shows the name of a user who has either granted,
+# or been granted a table privilege),
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the name of the schema, or database,
+# in which the table for which a privilege has been
+# granted resides),
+# TABLE_NAME (shows the name of the table),
+# PRIVILEGE_TYPE (shows the type of privilege that was
+# granted; must be either SELECT, INSERT, UPDATE,
+# DELETE, REFERENCES, ALTER, INDEX, DROP, or CREATE
+# VIEW),
+# IS_GRANTABLE (shows whether that privilege was granted
+# WITH GRANT OPTION).
+################################################################################
+
+let $is_table= table_privileges;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.11.2: Ensure that the table shows the relevant information on
+# every table privilege which has been granted to the current
+# user or PUBLIC, or which was granted by the current user.
+################################################################################
+# Testcase 3.2.11.3: Ensure that the table does not show any information on any
+# table privilege which was granted to any user other than
+# the current user or PUBLIC, or which was granted by any
+# user other than the current user.
+################################################################################
+# Testcase 3.2.11.4: Ensure that the table does not show any information on any
+# privileges that are not table privileges for the current
+# user.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+create database db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+
+use db_datadict;
+
+create table tb1(f1 int, f2 int, f3 int);
+
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_11_1, localhost, user_1, , db_datadict);
+
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+
+SELECT * FROM information_schema.table_privileges
+ WHERE table_name LIKE 'tb%';
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_11_2, localhost, user_2, , db_datadict);
+
+# we see only table privileges for this user, and not any other privileges
+SELECT * FROM information_schema.table_privileges;
+
+SELECT USER(), COUNT(*)
+ FROM information_schema.table_privileges
+ WHERE grantee = USER();
+
+SELECT USER(), COUNT(*)
+ FROM information_schema.table_privileges
+ WHERE grantee = "'user_2'@'localhost'";
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_11_3, localhost, user_3, , db_datadict);
+
+# we see only table privileges for this user, and not any other privileges
+SELECT * FROM information_schema.table_privileges;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+# we see only 'public' table privileges
+SELECT * FROM information_schema.table_privileges;
+
+# clean-up
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+disconnect user_11_1;
+disconnect user_11_2;
+disconnect user_11_3;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+drop table db_datadict.tb1;
+drop table db_datadict.tb3;
+use test;
+drop database db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.12.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.12.1: Ensure that the INFORMATION_SCHEMA.TABLES
+# table has the following columns, in the following order:
+#
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the name of the database, or schema,
+# in which an accessible table resides),
+# TABLE_NAME (shows the name of a table which the current
+# user may access),
+# TABLE_TYPE (shows whether the table is a BASE TABLE, a
+# TEMPORARY table, or a VIEW),
+# ENGINE (shows the storage engine used for the table),
+# VERSION (shows the version number of the table's .frm
+# file),
+# ROW_FORMAT (shows the table's row storage format; either
+# FIXED, DYNAMIC or COMPRESSED),
+# TABLE_ROWS (shows the number of rows in the table),
+# AVG_ROW_LENGTH (shows the average length of the table's
+# rows),
+# DATA_LENGTH (shows the length of the table's data file),
+# MAX_DATA_LENGTH (shows the maximum length of the table's
+# data file),
+# INDEX_LENGTH (shows the length of the index file
+# associated with the table),
+# DATA_FREE (shows the number of allocated, unused bytes),
+# AUTO_INCREMENT (shows the next AUTO_INCREMENT value, where
+# applicable),
+# CREATE_TIME (shows the timestamp of the time the table was
+# created),
+# UPDATE_TIME (shows the timestamp of the time the table's
+# data file was last updated),
+# CHECK_TIME (shows the timestamp of the time the table was
+# last checked),
+# TABLE_COLLATION (shows the table's default collation),
+# CHECKSUM (shows the live checksum value for the table, if
+# any; otherwise NULL),
+# CREATE_OPTIONS (shows any additional options used in the
+# table's definition; otherwise NULL),
+# TABLE_COMMENT (shows the comment added to the table's
+# definition; otherwise NULL).
+################################################################################
+
+let $is_table= tables;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.12.2 + 3.2.12.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.12.2: Ensure that the table shows the relevant information on
+# every base table and view on which the current user or
+# PUBLIC has privileges.
+################################################################################
+# Testcase 3.2.12.3: Ensure that the table does not show any information on any
+# tables on which the current user and public have no
+# privileges.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+create database db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.*
+ TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+
+use db_datadict;
+
+create table tb1(f1 int, f2 int, f3 int);
+
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_12_1, localhost, user_1, , db_datadict);
+
+# tb2 is not granted to anyone
+CREATE TABLE tb2 (f1 DECIMAL);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost';
+
+CREATE VIEW v3 AS SELECT * FROM tb3;
+GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost';
+
+#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until
+#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of
+#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one
+#FIXME 3.2.12: with 'less' replace
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+# 20 CREATE_OPTIONS
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+SELECT * FROM information_schema.tables
+ WHERE table_schema = 'information_schema';
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.tables
+ WHERE NOT( table_schema = 'information_schema');
+--enable_ps_protocol
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_12_2, localhost, user_2, , db_datadict);
+
+# we see only tables for this user, and not any other
+#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until
+#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of
+#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one
+#FIXME 3.2.12: with 'less' replace
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+# 20 CREATE_OPTIONS
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+SELECT * FROM information_schema.tables
+ WHERE table_schema = 'information_schema';
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.tables
+ WHERE NOT( table_schema = 'information_schema');
+--enable_ps_protocol
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_12_3, localhost, user_3, , db_datadict);
+
+# we see only tables for this user, and not any other
+#
+#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until
+#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of
+#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one
+#FIXME 3.2.12: with 'less' replace
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+# 20 CREATE_OPTIONS
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+SELECT * FROM information_schema.tables
+ WHERE table_schema = 'information_schema';
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.tables
+ WHERE NOT( table_schema = 'information_schema');
+--enable_ps_protocol
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+# we see only 'public' tables
+#
+#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until
+#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of
+#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one
+#FIXME 3.2.12: with 'less' replace
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+# 20 CREATE_OPTIONS
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+SELECT * FROM information_schema.tables
+ WHERE table_schema = 'information_schema';
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+# 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 17 CHECK_TIME
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM information_schema.tables
+ WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+--enable_ps_protocol
+
+# clean-up
+disconnect user_12_1;
+disconnect user_12_2;
+disconnect user_12_3;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP TABLE db_datadict.tb1;
+DROP TABLE db_datadict.tb3;
+DROP VIEW db_datadict.v3;
+USE test;
+DROP DATABASE db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.13.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.13.1: Ensure that the INFORMATION_SCHEMA.VIEWS
+# table has the following columns, in the following order:
+#
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the database, or schema, in which an
+# accessible view resides),
+# TABLE_NAME (shows the name of a view accessible to the
+# current user),
+# VIEW_DEFINITION (shows the SELECT statement that makes
+# up the view's definition),
+# CHECK_OPTION (shows the value of the WITH CHECK OPTION
+# clause used to define the view, either NONE, LOCAL
+# or CASCADED),
+# IS_UPDATABLE (shows whether the view is an updatable
+# view),
+# DEFINER (added with 5.0.14),
+# SECURITY_TYPE (added with 5.0.14).
+################################################################################
+
+let $is_table= views;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.13.2 + 3.2.13.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.13.2: Ensure that the table shows the relevant information on
+# every view for which the current user or PUBLIC has the
+# SHOW CREATE VIEW privilege.
+################################################################################
+# Testcase 3.2.13.3: Ensure that the table does not show any information on any
+# views for which the current user and PUBLIC have no SHOW
+# CREATE VIEW privilege.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+CREATE DATABASE db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_no_views'@'localhost';
+USE db_datadict;
+
+CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT);
+CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302;
+CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302;
+
+GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost';
+GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost';
+
+FLUSH PRIVILEGES;
+
+SELECT * FROM information_schema.views;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_13_1, localhost, user_1, , test);
+
+SELECT * FROM information_schema.views;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_13_2, localhost, user_2, , test);
+
+SELECT * FROM information_schema.views;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_no_views, localhost, user_no_views, , test);
+
+SELECT * FROM information_schema.views;
+
+# clean-up
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+disconnect user_13_1;
+disconnect user_13_2;
+disconnect user_no_views;
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_no_views'@'localhost';
+DROP VIEW v_granted_to_1;
+DROP TABLE tb_401302;
+DROP VIEW v_granted_glob;
+USE test;
+DROP DATABASE db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.14.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.14.1: Ensure that the INFORMATION_SCHEMA.STATISTICS
+# table has the following columns, in the following order:
+#
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the database, or schema, in which a
+# table indexed by an accessible index resides),
+# TABLE_NAME (shows the name of the indexed table),
+# NON_UNIQUE (shows whether the index may contain duplicate
+# values; 0 if it cannot, 1 if it can),
+# INDEX_SCHEMA (shows the database, or schema, in which an
+# accessible index resides),
+# INDEX_NAME (shows the name of an index which the current
+# user may access),
+# SEQ_IN_INDEX (shows the ordinal position of an indexed
+# column within the index),
+# COLUMN_NAME (shows the name of a column that comprises
+# some, or all, of an index key),
+# COLLATION (shows how the column is sorted in the index;
+# either A for ascending or NULL for unsorted
+# columns),
+# CARDINALITY (shows the number of unique values in the
+# index),
+# SUB_PART (shows the number of indexed characters if the
+# index is a prefix index),
+# PACKED (shows how the index key is packed),
+# NULLABLE (shows whether the index column may contain NULL
+# values),
+# INDEX_TYPE (shows the index type; either BTREE, FULLTEXT,
+# HASH or RTREE),
+# COMMENT (shows a comment on the index, if any).
+################################################################################
+
+let $is_table= statistics;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.14.2 + 3.2.14.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.14.2: Ensure that the table shows the relevant information on
+# every index which the current user or PUBLIC may access
+# (usually because privileges on the indexed table have been
+# granted).
+################################################################################
+# Testcase 3.2.14.3: Ensure that the table does not show any information on any
+# indexes which the current user and PUBLIC may not access.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
+
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+
+create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION;
+
+USE db_datadict_2;
+
+create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost';
+
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_14_1, localhost, user_1, , test);
+SELECT * FROM information_schema.statistics;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_14_2, localhost, user_2, , test);
+SELECT * FROM information_schema.statistics;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.statistics
+WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+
+# nothing visible for user_1
+connection user_14_1;
+--source suite/funcs_1/include/show_connection.inc
+SELECT * FROM information_schema.statistics;
+
+# no changes visible for user_2
+connection user_14_2;
+--source suite/funcs_1/include/show_connection.inc
+SELECT * FROM information_schema.statistics;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+disconnect user_14_1;
+disconnect user_14_2;
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE tb_6_401402_1;
+DROP TABLE tb_6_401402_2;
+USE test;
+DROP DATABASE db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.15.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.15.1: Ensure that the INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
+# table has the following columns, in the following order:
+#
+# GRANTEE (shows a user to whom a schema privilege has been
+# granted),
+# TABLE_CATALOG (always shows NULL),
+# TABLE_SCHEMA (shows the name of the database, or schema,
+# on which the privilege has been granted),
+# PRIVILEGE_TYPE (shows the granted privilege),
+# IS_GRANTABLE (shows whether the privilege was granted WITH
+# GRANT OPTION).
+################################################################################
+
+let $is_table= schema_privileges;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.15.2:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.15.2: Ensure that the table shows the relevant information on
+# every schema-level privilege which has been granted to the
+# current user or to PUBLIC, or has been granted by the
+# current user.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
+
+create database db_datadict;
+create database db_datadict_2;
+
+CREATE USER 'u_6_401502'@'localhost';
+
+use db_datadict;
+
+create table res_6_401502(f1 int, f2 int, f3 int);
+grant insert on db_datadict.* to 'u_6_401502'@'localhost';
+
+FLUSH PRIVILEGES;
+
+SELECT * FROM information_schema.schema_privileges;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401502, localhost, u_6_401502, , test);
+
+SELECT * FROM information_schema.schema_privileges;
+
+disconnect u_6_401502;
+
+# clean-up
+
+connection default;
+use db_datadict;
+--source suite/funcs_1/include/show_connection.inc
+DROP USER 'u_6_401502'@'localhost';
+drop table res_6_401502;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.15.3 + 3.2.15.4:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.15.3: Ensure that the table does not show any information on any
+# schema-level privileges which have been granted to users
+# other than the current user or to PUBLIC, or that have been
+# granted by any user other than the current user.
+################################################################################
+# Testcase 3.2.15.4: Ensure that the table does not show any information on any
+# privileges that are not schema-level privileges for the
+# current user.
+################################################################################
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
+
+create database db_datadict;
+create database db_datadict_2;
+
+CREATE USER 'u_6_401503_1'@'localhost';
+CREATE USER 'u_6_401503_2'@'localhost';
+CREATE USER 'u_6_401503_3'@'localhost';
+
+use db_datadict;
+
+create table res_6_401503_1(f1 int, f2 int, f3 int);
+
+use db_datadict_2;
+
+create table res_6_401503_2(f1 int, f2 int, f3 int);
+
+grant update on db_datadict.* to 'u_6_401503_1'@'localhost';
+grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost';
+
+FLUSH PRIVILEGES;
+
+SELECT * FROM information_schema.schema_privileges;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401503_1, localhost, u_6_401503_1, , test);
+
+SELECT * FROM information_schema.schema_privileges;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401503_2, localhost, u_6_401503_2, , test);
+
+SELECT * FROM information_schema.schema_privileges;
+
+# should not show anything
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_6_401503_3, localhost, u_6_401503_3, , test);
+
+SELECT * FROM information_schema.schema_privileges;
+
+# clean-up
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+disconnect u_6_401503_1;
+disconnect u_6_401503_2;
+disconnect u_6_401503_3;
+use db_datadict;
+DROP USER 'u_6_401503_1'@'localhost';
+DROP USER 'u_6_401503_2'@'localhost';
+DROP USER 'u_6_401503_3'@'localhost';
+drop table res_6_401503_1;
+use db_datadict_2;
+drop table res_6_401503_2;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.16.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.16.1: Ensure that the INFORMATION_SCHEMA.USER_PRIVILEGES
+# table has the following columns, in the following order:
+#
+# GRANTEE (shows a user to whom a user privilege has been
+# granted),
+# TABLE_CATALOG (always shows NULL),
+# PRIVILEGE_TYPE (shows the granted privilege),
+# IS_GRANTABLE (shows whether the privilege was granted WITH
+# GRANT OPTION).
+################################################################################
+
+#-----------
+# Bug #12063 column 'TABLE_SCHEMA' is missing in table
+# INFORMATION_SCHEMA.USER_PRIVILEGE
+# ... is not a bug, it has been added by mistake in the TP requirement document.
+#-----------
+
+let $is_table= user_privileges;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.16.2: Ensure that the table shows the relevant information on
+# every user privilege which has been granted to the current
+# user or to PUBLIC, or has been granted by the current user.
+################################################################################
+# Testcase 3.2.16.3: Ensure that the table does not show any information on any
+# user privileges which have been granted to users other than
+# the current user or have been granted by any user other
+# than the current user.
+################################################################################
+# Testcase 3.2.16.4: Ensure that the table does not show any information on any
+# privileges that are not user privileges for the current
+# user.
+################################################################################
+
+#FIXME 3.2.16: - when Bug #12269 is fixed a some of the outputs here may be
+#FIXME 3.2.16: deleted as I added them for checking where / which information
+#FIXME 3.2.16: is shown.
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_datadict;
+--enable_warnings
+
+let $cmd1= SELECT * FROM information_schema.user_privileges
+ WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+let $cmd2= SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+let $cmd3= SHOW GRANTS;
+
+CREATE DATABASE db_datadict;
+
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+
+GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+
+GRANT INSERT ON *.* TO 'user_2'@'localhost';
+GRANT UPDATE ON *.* TO 'user_2'@'localhost';
+
+FLUSH PRIVILEGES;
+
+let $message= FIXME (see Bug 12269) Here we expect more than only <USAGE> for user_1;
+--source include/show_msg.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+let $message= add GRANT OPTION db_datadict.* to user_1;
+--source include/show_msg.inc
+GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+let $message= FIXME (see Bug 12269) Here the <YES> is missing for the GRANT OPTION for user_1;
+--source include/show_msg.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+FLUSH PRIVILEGES;
+
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_16_1, localhost, user_1, , db_datadict);
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+# add SELECT on *.* to user_1
+let $message= Now add SELECT on *.* to user_1;
+--source include/show_msg.inc
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+GRANT SELECT ON *.* TO 'user_1'@'localhost';
+let $message= Here <SELECT NO> is shown correctly for user_1;
+--source include/show_msg.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+let $message= Here <SELECT YES> is shown correctly for user_1;
+--source include/show_msg.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+FLUSH PRIVILEGES;
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+# check that this appears
+connection user_16_1;
+--source suite/funcs_1/include/show_connection.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_16_2, localhost, user_2, , db_datadict);
+eval $cmd1;
+--error ER_TABLEACCESS_DENIED_ERROR
+eval $cmd2;
+eval $cmd3;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user_16_3, localhost, user_3, , test);
+eval $cmd1;
+--error ER_TABLEACCESS_DENIED_ERROR
+eval $cmd2;
+eval $cmd3;
+
+let $message= revoke privileges from user_1;
+--source include/show_msg.inc
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+# check for changes
+connection user_16_1;
+--source suite/funcs_1/include/show_connection.inc
+eval $cmd1;
+--error ER_TABLEACCESS_DENIED_ERROR
+eval $cmd2;
+eval $cmd3;
+
+--source suite/funcs_1/include/show_connection.inc
+# checks entered before bug #12269 was reported
+# OK, user_1 has no privs here
+--error ER_TABLEACCESS_DENIED_ERROR
+CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
+--source suite/funcs_1/include/show_connection.inc
+eval $cmd1;
+--error ER_TABLEACCESS_DENIED_ERROR
+eval $cmd2;
+eval $cmd3;
+# OK, user_1 has no privs here
+--error ER_TABLEACCESS_DENIED_ERROR
+CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
+
+let $message= add ALL on db_datadict.* (and select on mysql.user) to user_1;
+--source include/show_msg.inc
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+# check for changes
+connection user_16_1;
+--source suite/funcs_1/include/show_connection.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+# OK, user_1 has no privs here
+--error ER_TABLEACCESS_DENIED_ERROR
+CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
+
+# using 'USE' lets the server read the privileges new, so now the CREATE works
+USE db_datadict;
+--source suite/funcs_1/include/show_connection.inc
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+CREATE TABLE tb_57 ( c1 TEXT );
+
+let $message= revoke privileges from user_1;
+--source include/show_msg.inc
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+eval $cmd1;
+eval $cmd2;
+eval $cmd3;
+
+# check for changes
+connection user_16_1;
+--source suite/funcs_1/include/show_connection.inc
+eval $cmd1;
+--error ER_TABLEACCESS_DENIED_ERROR
+eval $cmd2;
+eval $cmd3;
+# WORKS, as the existing old privileges are used!
+CREATE TABLE db_datadict.tb_58 ( c1 TEXT );
+# existing privileges are "read" new when USE is called, user has no priviliges
+--error ER_DBACCESS_DENIED_ERROR
+USE db_datadict;
+#FIXME 3.2.16: check that it is correct that this now 'works': --error 1142
+CREATE TABLE db_datadict.tb_59 ( c1 TEXT );
+
+
+# clean-up
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+disconnect user_16_1;
+disconnect user_16_2;
+disconnect user_16_3;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.17: Checks on Performance - not here in this script!;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.17.1: Ensure that every INFORMATION_SCHEMA table shows all the
+# correct information, and no incorrect information, for a
+# database to which 100 different users, each of which has a
+# randomly issued set of privileges and access to a
+# randomly chosen set of database objects, have access.
+# The database should contain a mixture of all types of
+# database objects (i.e. tables, views, stored procedures,
+# triggers).
+################################################################################
+
+################################################################################
+# Testcase 3.2.17.2: Ensure that every INFORMATION_SCHEMA table shows all the
+# correct information, and no incorrect information, for 10
+# different databases to which 50 different users, each of
+# which has a randomly issued set of privileges and access
+# to a randomly chosen set of database objects in two or
+# more of the databases, have access. The databases should
+# each contain a mixture of all types of database objects
+# (i.e. tables, views, stored procedures, triggers).
+################################################################################
+
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.18.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.18.1: Ensure that the INFORMATION_SCHEMA.TRIGGERS
+# table has the following columns, in the following order:
+#
+#
+# (FIXME - list copied from WL#1996)
+#
+# TRIGGER_CATALOG NULL
+# TRIGGER_SCHEMA
+# TRIGGER_NAME
+# EVENT_MANIPULATION
+# EVENT_OBJECT_CATALOG NULL
+# EVENT_OBJECT_SCHEMA
+# EVENT_OBJECT_TABLE
+# ACTION_ORDER NULL
+# ACTION_CONDITION NULL
+# ACTION_STATEMENT
+# ACTION_ORIENTATION
+# ACTION_TIMING
+# ACTION_REFERENCE_OLD_TABLE NULL
+# ACTION_REFERENCE_NEW_TABLE NULL
+# ACTION_REFERENCE_OLD_ROW
+# ACTION_REFERENCE_NEW_ROW
+# CREATED
+# SQL_MODE
+#
+################################################################################
+
+let $is_table= triggers;
+--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.18.2 + 3.2.18.3:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.18.2: Ensure that the table shows the relevant information on
+# every trigger on which the current user or PUBLIC has
+# privileges.
+################################################################################
+# Testcase 3.2.18.3: Ensure that the table does not show any information on any
+# trigger on which the current user and public have no
+# privileges.
+################################################################################
+
+#FIXME 3.2.18.2: to be added.
+#FIXME 3.2.18.2: don't forget to add the test description to QATestPlanV50func
+
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.19.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.19.1: Ensure that the INFORMATION_SCHEMA.PARAMETERS
+# table has the following columns, in the following order:
+#
+################################################################################
+
+let $is_table= parameters;
+# when table is implemented remove this and the next 4 lines and "enable" 5th line:
+# and don't forget to add the test description to QATestPlanV50func
+let $message= checking a table that will be implemented later;
+--source include/show_msg.inc
+--error ER_UNKNOWN_TABLE
+eval DESC $is_table;
+#--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+let $message= Testcase 3.2.20.1:;
+--source include/show_msg80.inc
+
+################################################################################
+# Testcase 3.2.20.1: Ensure that the INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
+# table has the following columns, in the following order:
+#
+################################################################################
+
+let $is_table= referential_constraints;
+# when table is implemented remove this and the next 4 lines and "enable" 5th line:
+# and don't forget to add the test description to QATestPlanV50func
+let $message= checking a table that will be implemented later;
+--source include/show_msg.inc
+--error ER_UNKNOWN_TABLE
+eval DESC $is_table;
+#--source suite/funcs_1/datadict/datadict_show_table_design.inc
+# -------------------------------------------------------------------------------------------------------
+
+
+################################################################################
+#
+let $message= *** End of Data Dictionary Tests ***;
+--source include/show_msg80.inc
+#
+################################################################################
+
+
+# some cleanup to be sure nothing remains
+--disable_warnings
+DROP TABLE IF EXISTS test.tb1;
+DROP TABLE IF EXISTS test.tb2;
+DROP TABLE IF EXISTS test.tb3;
+DROP TABLE IF EXISTS test.tb4;
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t2;
+DROP TABLE IF EXISTS test.t3;
+DROP TABLE IF EXISTS test.t4;
+DROP TABLE IF EXISTS test.t7;
+DROP TABLE IF EXISTS test.t8;
+DROP TABLE IF EXISTS test.t9;
+DROP TABLE IF EXISTS test.t10;
+DROP TABLE IF EXISTS test.t11;
+DROP DATABASE IF EXISTS test1;
+DROP DATABASE IF EXISTS test4;
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
+--enable_warnings
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc b/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc
new file mode 100644
index 00000000000..260119f030f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc
@@ -0,0 +1,56 @@
+#### suite/funcs_1/datadict/datadict_show_schema.test
+
+# shows content of tables from INFORMATION_SCHEMA
+
+# usage:
+
+# let $message= <a message for the .result file>;
+# let $dbname= <prefix_of_a_cb_name>;
+# --source suite/funcs_1/datadict/datadict_show_schema.test
+
+--source include/show_msg.inc
+
+eval select *
+ from information_schema.schemata
+ where schema_name like '$dbname%';
+
+eval select table_catalog, table_schema, engine
+ from information_schema.tables
+ where table_schema like '$dbname%';
+
+eval select *
+ from information_schema.columns
+ where table_schema like '$dbname%';
+
+eval select table_schema, table_name, is_updatable
+ from information_schema.views
+ where table_schema like '$dbname%';
+
+eval select routine_name, routine_type, security_type, sql_mode
+ from information_schema.routines
+ where routine_schema like '$dbname%';
+
+eval select table_name, index_schema, index_name, index_type
+ from information_schema.statistics
+ where table_schema like '$dbname%';
+
+--replace_result $SERVER_NAME <SERVER_NAME>
+eval select *
+ from information_schema.user_privileges order by grantee, privilege_type;
+# where grantee="'u_6_401013'@'%'";
+
+eval select *
+ from information_schema.column_privileges
+ where table_schema like '$dbname%';
+
+eval select *
+ from information_schema.table_privileges
+ where table_schema like '$dbname%';
+
+eval select *
+ from information_schema.key_column_usage
+ where table_schema like '$dbname%';
+
+eval SELECT *
+ FROM information_schema.triggers
+ WHERE trigger_schema LIKE '$dbname%';
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc b/mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc
new file mode 100644
index 00000000000..e406d80f7f5
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc
@@ -0,0 +1,28 @@
+#### suite/funcs_1/datadict/datadict_show_table_design.test
+#
+# - shows design of *one* table from INFORMATION_SCHEMA
+# - used to have identical 'view' on all tested tables
+#
+# Usage:
+#
+# let $is_table= <name of one of the tables>;
+# --source suite/funcs_1/datadict/datadict_show_table_design.test
+
+USE information_schema;
+
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval DESC $is_table;
+
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval SHOW CREATE TABLE $is_table;
+
+eval SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = '$is_table'
+ORDER BY ordinal_position;
+
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = '$is_table'
+ORDER BY ordinal_position;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables.inc
new file mode 100644
index 00000000000..ea6e7c5d534
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables.inc
@@ -0,0 +1,62 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables.inc
+
+--source include/show_msg.inc
+
+eval $dd_part1 schemata $dd_part2;
+
+#FIXME: splitting the "SELECT * FROM tables" in two parts until
+#FIXME: Bug #12397: wrong values shown in column CREATE_OPTIONS of INFORMATION_SCHEMA.TABLES
+#FIXME: is solved, like done in the _master.test, cannot be done here, so we replace here
+#FIXME: the result for ALL rows.
+# 9 AVG_ROW_LENGTH
+# 10 DATA_LENGTH
+# 11 MAX_DATA_LENGTH
+## 12 INDEX_LENGTH
+# 13 DATA_FREE
+# 15 CREATE_TIME
+# 16 UPDATE_TIME
+# 20 CREATE_OPTIONS
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
+eval $dd_part1 tables $dd_part2;
+
+--source suite/funcs_1/datadict/datadict_bug_12777.inc
+eval $dd_part1 columns $dd_part2;
+eval $dd_part1 character_sets $dd_part2;
+eval $dd_part1 collations $dd_part2;
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+--replace_column 16 <Created> 17 <Last_Altered>
+eval $dd_part1 routines $dd_part2;
+eval $dd_part1 statistics $dd_part2;
+eval $dd_part1 views $dd_part2;
+eval $dd_part1 user_privileges $dd_part2;
+eval $dd_part1 schema_privileges $dd_part2;
+eval $dd_part1 table_privileges $dd_part2;
+eval $dd_part1 column_privileges $dd_part2;
+eval $dd_part1 table_constraints $dd_part2;
+eval $dd_part1 key_column_usage $dd_part2;
+eval $dd_part1 triggers $dd_part2;
+
+# later planned new tables for INFORMATION_SCHEMA (not before version 5.0.11)
+#
+# (see Reference Manual: 22.1.16. Other INFORMATION_SCHEMA Tables):
+#
+# parameters
+# referential_constraints
+#
+# check them here although they currently does not exist, but using this we
+# immedeatly get notice when they are implemented
+
+#### DON'T FORGET TO ADD THE NEW TABLES TO THE CORRESPONDING FILES
+#### datadict_tables_error_<errno>.test !
+
+--error 1109
+eval $dd_part1 parameters $dd_part2;
+
+--error 1109
+eval $dd_part1 referential_constraints $dd_part2;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc
new file mode 100644
index 00000000000..a551266c447
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc
@@ -0,0 +1,33 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables.inc
+
+
+#--disable_query_log
+#eval SET @aux= 'This testcase shows the error number $error_no';
+#let $message= `SELECT @aux`;
+#--enable_query_log
+--source include/show_msg.inc
+
+--disable_abort_on_error
+eval $dd_part1 schemata $dd_part2;
+eval $dd_part1 tables $dd_part2;
+eval $dd_part1 columns $dd_part2;
+eval $dd_part1 character_sets $dd_part2;
+eval $dd_part1 collations $dd_part2;
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+eval $dd_part1 routines $dd_part2;
+eval $dd_part1 statistics $dd_part2;
+eval $dd_part1 views $dd_part2;
+eval $dd_part1 user_privileges $dd_part2;
+eval $dd_part1 schema_privileges $dd_part2;
+eval $dd_part1 table_privileges $dd_part2;
+eval $dd_part1 column_privileges $dd_part2;
+eval $dd_part1 table_constraints $dd_part2;
+eval $dd_part1 key_column_usage $dd_part2;
+eval $dd_part1 triggers $dd_part2;
+--enable_abort_on_error
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc
new file mode 100644
index 00000000000..d04459991cc
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc
@@ -0,0 +1,80 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables_err_<no>.inc
+#
+# up to a change of "mysqltest", which makes lines like "eval --error $err_no"
+# possible we will have some different files with the same content except the
+# error numbers.
+
+--source include/show_msg.inc
+
+let $message= known error 1 (Can_t create/write to file ...):;
+--source include/show_msg.inc
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 schemata $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 tables $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 columns $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 character_sets $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 collations $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 routines $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 statistics $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 views $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 user_privileges $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 schema_privileges $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 table_privileges $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 column_privileges $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 table_constraints $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 key_column_usage $dd_part2;
+
+--replace_result '\\' '/'
+--error 1
+eval $dd_part1 triggers $dd_part2;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc
new file mode 100755
index 00000000000..a8876ee7db6
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc
@@ -0,0 +1,51 @@
+#### suite/funcs_1/datadict/datadict_tables_error_1044.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables_err_<no>.inc
+#
+# up to a change of "mysqltest", which makes lines like "eval --error $err_no"
+# possible we will have some different files with the same content except the
+# error numbers.
+
+--source include/show_msg.inc
+
+# e.g.: ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+
+let $message= known error 1044 (ERROR 42000: Access denied for user ... to database ...):;
+--source include/show_msg.inc
+
+--error 1044
+eval $dd_part1 schemata $dd_part2;
+--error 1044
+eval $dd_part1 tables $dd_part2;
+--error 1044
+eval $dd_part1 columns $dd_part2;
+--error 1044
+eval $dd_part1 character_sets $dd_part2;
+--error 1044
+eval $dd_part1 collations $dd_part2;
+--error 1044
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+--error 1044
+eval $dd_part1 routines $dd_part2;
+--error 1044
+eval $dd_part1 statistics $dd_part2;
+--error 1044
+eval $dd_part1 views $dd_part2;
+--error 1044
+eval $dd_part1 user_privileges $dd_part2;
+--error 1044
+eval $dd_part1 schema_privileges $dd_part2;
+--error 1044
+eval $dd_part1 table_privileges $dd_part2;
+--error 1044
+eval $dd_part1 column_privileges $dd_part2;
+--error 1044
+eval $dd_part1 table_constraints $dd_part2;
+--error 1044
+eval $dd_part1 key_column_usage $dd_part2;
+--error 1044
+eval $dd_part1 triggers $dd_part2;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc
new file mode 100644
index 00000000000..4b12c836e92
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc
@@ -0,0 +1,49 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables_err_<no>.inc
+#
+# up to a change of "mysqltest", which makes lines like "eval --error $err_no"
+# possible we will have some different files with the same content except the
+# error numbers.
+
+--source include/show_msg.inc
+
+let $message= known error 1049 (ERROR 42000: Unknown database ...):;
+--source include/show_msg.inc
+
+--error 1049
+eval $dd_part1 schemata $dd_part2;
+--error 1049
+eval $dd_part1 tables $dd_part2;
+--error 1049
+eval $dd_part1 columns $dd_part2;
+--error 1049
+eval $dd_part1 character_sets $dd_part2;
+--error 1049
+eval $dd_part1 collations $dd_part2;
+--error 1049
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+--error 1049
+eval $dd_part1 routines $dd_part2;
+--error 1049
+eval $dd_part1 statistics $dd_part2;
+--error 1049
+eval $dd_part1 views $dd_part2;
+--error 1049
+eval $dd_part1 user_privileges $dd_part2;
+--error 1049
+eval $dd_part1 schema_privileges $dd_part2;
+--error 1049
+eval $dd_part1 table_privileges $dd_part2;
+--error 1049
+eval $dd_part1 column_privileges $dd_part2;
+--error 1049
+eval $dd_part1 table_constraints $dd_part2;
+--error 1049
+eval $dd_part1 key_column_usage $dd_part2;
+--error 1049
+eval $dd_part1 triggers $dd_part2;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc
new file mode 100644
index 00000000000..109b2ecd7da
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc
@@ -0,0 +1,49 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables_err_<no>.inc
+#
+# up to a change of "mysqltest", which makes lines like "eval --error $err_no"
+# possible we will have some different files with the same content except the
+# error numbers.
+
+--source include/show_msg.inc
+
+let $message= known error 1051:;
+--source include/show_msg.inc
+
+--error 1051
+eval $dd_part1 schemata $dd_part2;
+--error 1051
+eval $dd_part1 tables $dd_part2;
+--error 1051
+eval $dd_part1 columns $dd_part2;
+--error 1051
+eval $dd_part1 character_sets $dd_part2;
+--error 1051
+eval $dd_part1 collations $dd_part2;
+--error 1051
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+--error 1051
+eval $dd_part1 routines $dd_part2;
+--error 1051
+eval $dd_part1 statistics $dd_part2;
+--error 1051
+eval $dd_part1 views $dd_part2;
+--error 1051
+eval $dd_part1 user_privileges $dd_part2;
+--error 1051
+eval $dd_part1 schema_privileges $dd_part2;
+--error 1051
+eval $dd_part1 table_privileges $dd_part2;
+--error 1051
+eval $dd_part1 column_privileges $dd_part2;
+--error 1051
+eval $dd_part1 table_constraints $dd_part2;
+--error 1051
+eval $dd_part1 key_column_usage $dd_part2;
+--error 1051
+eval $dd_part1 triggers $dd_part2;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc
new file mode 100644
index 00000000000..5fa6d705b26
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc
@@ -0,0 +1,49 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables_err_<no>.inc
+#
+# up to a change of "mysqltest", which makes lines like "eval --error $err_no"
+# possible we will have some different files with the same content except the
+# error numbers.
+
+--source include/show_msg.inc
+
+let $message= known error 1146:;
+--source include/show_msg.inc
+
+--error 1146
+eval $dd_part1 schemata $dd_part2;
+--error 1146
+eval $dd_part1 tables $dd_part2;
+--error 1146
+eval $dd_part1 columns $dd_part2;
+--error 1146
+eval $dd_part1 character_sets $dd_part2;
+--error 1146
+eval $dd_part1 collations $dd_part2;
+--error 1146
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+--error 1146
+eval $dd_part1 routines $dd_part2;
+--error 1146
+eval $dd_part1 statistics $dd_part2;
+--error 1146
+eval $dd_part1 views $dd_part2;
+--error 1146
+eval $dd_part1 user_privileges $dd_part2;
+--error 1146
+eval $dd_part1 schema_privileges $dd_part2;
+--error 1146
+eval $dd_part1 table_privileges $dd_part2;
+--error 1146
+eval $dd_part1 column_privileges $dd_part2;
+--error 1146
+eval $dd_part1 table_constraints $dd_part2;
+--error 1146
+eval $dd_part1 key_column_usage $dd_part2;
+--error 1146
+eval $dd_part1 triggers $dd_part2;
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc
new file mode 100644
index 00000000000..e64226f0d35
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc
@@ -0,0 +1,49 @@
+#### suite/funcs_1/datadict/datadict_tables.inc
+
+# contains all tables from INFORMATION_SCHEMA
+
+# usage:
+
+# --source suite/funcs_1/datadict/datadict_tables_err_<no>.inc
+#
+# up to a change of "mysqltest", which makes lines like "eval --error $err_no"
+# possible we will have some different files with the same content except the
+# error numbers.
+
+--source include/show_msg.inc
+
+let $message= known error 1288:;
+--source include/show_msg.inc
+
+--error 1288
+eval $dd_part1 schemata $dd_part2;
+--error 1288
+eval $dd_part1 tables $dd_part2;
+--error 1288
+eval $dd_part1 columns $dd_part2;
+--error 1288
+eval $dd_part1 character_sets $dd_part2;
+--error 1288
+eval $dd_part1 collations $dd_part2;
+--error 1288
+eval $dd_part1 collation_character_set_applicability $dd_part2;
+--error 1288
+eval $dd_part1 routines $dd_part2;
+--error 1288
+eval $dd_part1 statistics $dd_part2;
+--error 1288
+eval $dd_part1 views $dd_part2;
+--error 1288
+eval $dd_part1 user_privileges $dd_part2;
+--error 1288
+eval $dd_part1 schema_privileges $dd_part2;
+--error 1288
+eval $dd_part1 table_privileges $dd_part2;
+--error 1288
+eval $dd_part1 column_privileges $dd_part2;
+--error 1288
+eval $dd_part1 table_constraints $dd_part2;
+--error 1288
+eval $dd_part1 key_column_usage $dd_part2;
+--error 1288
+eval $dd_part1 triggers $dd_part2;
diff --git a/mysql-test/suite/funcs_1/include/create_database.inc b/mysql-test/suite/funcs_1/include/create_database.inc
new file mode 100644
index 00000000000..aa11d936aa3
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/create_database.inc
@@ -0,0 +1,6 @@
+##### suite/funcs_1/include/create_database.inc
+
+--disable_warnings
+eval DROP DATABASE IF EXISTS $new_database;
+--enable_warnings
+eval CREATE DATABASE $new_database;
diff --git a/mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc b/mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc
new file mode 100644
index 00000000000..d9ec367b524
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc
@@ -0,0 +1,10 @@
+##### suite/funcs_1/include/create_user_no_priv.inc
+#
+# $new_user must contain the name (with @<host> if necessary)
+#
+
+--error 0,1396
+eval DROP USER $new_user;
+eval CREATE USER $new_user identified by 'PWD';
+# Just to be sure
+eval REVOKE ALL PRIVILEGES, GRANT OPTION FROM $new_user;
diff --git a/mysql-test/suite/funcs_1/include/create_user_no_super.inc b/mysql-test/suite/funcs_1/include/create_user_no_super.inc
new file mode 100644
index 00000000000..0de923bf98b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/create_user_no_super.inc
@@ -0,0 +1,11 @@
+##### suite/funcs_1/include/create_user_no_super.inc
+#
+# $new_user must contain the name (with @<host> if necessary)
+# of the user to be created
+
+--error 0,1396
+eval DROP USER $new_user;
+eval CREATE USER $new_user identified by 'PWD';
+
+eval GRANT ALL ON *.* TO $new_user WITH GRANT OPTION;
+eval REVOKE SUPER ON *.* FROM $new_user;
diff --git a/mysql-test/suite/funcs_1/include/innodb_tb1.inc b/mysql-test/suite/funcs_1/include/innodb_tb1.inc
new file mode 100644
index 00000000000..115d8b6318d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/innodb_tb1.inc
@@ -0,0 +1,69 @@
+##### suite/funcs_1/include/innodb_tb1.inc
+
+--disable_warnings
+drop table if exists tb1 ;
+--enable_warnings
+create table tb1 (
+f1 char(0),
+f2 char(0) binary,
+f3 char(0) ascii,
+f4 tinytext unicode,
+f5 text,
+f6 mediumtext,
+f7 longtext,
+f8 tinyblob,
+f9 blob,
+f10 mediumblob,
+f11 longblob,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal,
+f34 decimal unsigned,
+f35 decimal zerofill,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = innodb;
+
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ;
diff --git a/mysql-test/suite/funcs_1/include/innodb_tb2.inc b/mysql-test/suite/funcs_1/include/innodb_tb2.inc
new file mode 100644
index 00000000000..99c09c1d963
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/innodb_tb2.inc
@@ -0,0 +1,61 @@
+##### suite/funcs_1/include/innodb_tb2.inc
+
+--disable_warnings
+drop table if exists tb2 ;
+--enable_warnings
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ;
diff --git a/mysql-test/suite/funcs_1/include/innodb_tb3.inc b/mysql-test/suite/funcs_1/include/innodb_tb3.inc
new file mode 100644
index 00000000000..d8397b2b581
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/innodb_tb3.inc
@@ -0,0 +1,68 @@
+##### suite/funcs_1/include/innodb_tb3.inc
+
+--disable_warnings
+drop table if exists tb3 ;
+--enable_warnings
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
diff --git a/mysql-test/suite/funcs_1/include/innodb_tb4.inc b/mysql-test/suite/funcs_1/include/innodb_tb4.inc
new file mode 100644
index 00000000000..2cff9e57075
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/innodb_tb4.inc
@@ -0,0 +1,68 @@
+##### suite/funcs_1/include/innodb_tb4.inc
+
+--disable_warnings
+drop table if exists tb4;
+--enable_warnings
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f235 char(0) unicode,
+f236 char(90),
+f237 char(255) ascii,
+f238 varchar(0),
+f239 varchar(20000) binary,
+f240 varchar(2000) unicode,
+f241 char(100) unicode
+) engine = innodb;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ;
diff --git a/mysql-test/suite/funcs_1/include/memory_tb1.inc b/mysql-test/suite/funcs_1/include/memory_tb1.inc
new file mode 100644
index 00000000000..93cc91a4b17
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/memory_tb1.inc
@@ -0,0 +1,63 @@
+##### suite/funcs_1/include/memory_tb1.inc
+
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+
+--disable_warnings
+drop table if exists tb1 ;
+--enable_warnings
+create table tb1 (
+f1 char,
+f2 char binary,
+f3 char ascii,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal not null DEFAULT 9.9,
+f34 decimal unsigned not null DEFAULT 9.9,
+f35 decimal zerofill not null DEFAULT 9.9,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = memory;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ;
diff --git a/mysql-test/suite/funcs_1/include/memory_tb2.inc b/mysql-test/suite/funcs_1/include/memory_tb2.inc
new file mode 100644
index 00000000000..6ee0f064e68
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/memory_tb2.inc
@@ -0,0 +1,64 @@
+##### suite/funcs_1/include/memory_tb2.inc
+
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+
+--disable_warnings
+drop table if exists tb2 ;
+--enable_warnings
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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 = memory;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ;
diff --git a/mysql-test/suite/funcs_1/include/memory_tb3.inc b/mysql-test/suite/funcs_1/include/memory_tb3.inc
new file mode 100644
index 00000000000..75dd7d98eee
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/memory_tb3.inc
@@ -0,0 +1,66 @@
+##### suite/funcs_1/include/memory_tb3.inc
+
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+
+--disable_warnings
+drop table if exists tb3;
+--enable_warnings
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
diff --git a/mysql-test/suite/funcs_1/include/memory_tb4.inc b/mysql-test/suite/funcs_1/include/memory_tb4.inc
new file mode 100644
index 00000000000..c3187d8d4a3
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/memory_tb4.inc
@@ -0,0 +1,70 @@
+##### suite/funcs_1/include/memory_tb4.inc
+
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+
+--disable_warnings
+drop table if exists tb4 ;
+--enable_warnings
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f236 char(95) unicode,
+f241 char(255) unicode,
+f237 char(130) binary,
+f238 varchar(25000) binary,
+f239 varbinary(0),
+f240 varchar(1200) unicode
+) engine = memory;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ;
diff --git a/mysql-test/suite/funcs_1/include/myisam_tb1.inc b/mysql-test/suite/funcs_1/include/myisam_tb1.inc
new file mode 100644
index 00000000000..f2a8be4f5d6
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/myisam_tb1.inc
@@ -0,0 +1,68 @@
+##### suite/funcs_1/include/myisam_tb1.inc
+
+--disable_warnings
+drop table if exists tb1 ;
+--enable_warnings
+create table tb1 (
+f1 char,
+f2 char binary,
+f3 char ascii,
+f4 tinytext unicode,
+f5 text,
+f6 mediumtext,
+f7 longtext,
+f8 tinyblob,
+f9 blob,
+f10 mediumblob,
+f11 longblob,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal not null DEFAULT 9.9,
+f34 decimal unsigned not null DEFAULT 9.9,
+f35 decimal zerofill not null DEFAULT 9.9,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = myisam;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ;
diff --git a/mysql-test/suite/funcs_1/include/myisam_tb2.inc b/mysql-test/suite/funcs_1/include/myisam_tb2.inc
new file mode 100644
index 00000000000..528031700cb
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/myisam_tb2.inc
@@ -0,0 +1,80 @@
+###### suite/funcs_1/include/myisam_tb2.inc
+
+--disable_warnings
+drop table if exists tb2 ;
+--enable_warnings
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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",
+f110 VARBINARY(64) null,
+f111 VARBINARY(27) null ,
+f112 VARBINARY(64) null ,
+f113 VARBINARY(192) null ,
+f114 VARBINARY(192) ,
+f115 VARBINARY(27) null ,
+f116 VARBINARY(64) null,
+f117 VARBINARY(192) null
+) engine = myisam;
+
+# The original columns. They are replaced by varbinary, because the funcs_1 tests should
+# not depend on the optional availability of the geometry feature.
+# f110 geometry null,
+# f111 point null ,
+# f112 linestring null ,
+# f113 polygon null ,
+# f114 geometrycollection ,
+# f115 multipoint null ,
+# f116 multilinestring null,
+# f117 multipolygon null
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ;
diff --git a/mysql-test/suite/funcs_1/include/myisam_tb3.inc b/mysql-test/suite/funcs_1/include/myisam_tb3.inc
new file mode 100644
index 00000000000..aca35c0e11b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/myisam_tb3.inc
@@ -0,0 +1,68 @@
+##### suite/funcs_1/include/myisam_tb3.inc
+
+--disable_warnings
+drop table if exists tb3 ;
+--enable_warnings
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
diff --git a/mysql-test/suite/funcs_1/include/myisam_tb4.inc b/mysql-test/suite/funcs_1/include/myisam_tb4.inc
new file mode 100644
index 00000000000..d9051847c45
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/myisam_tb4.inc
@@ -0,0 +1,88 @@
+##### suite/funcs_1/include/myisam_tb4.inc
+
+--disable_warnings
+drop table if exists tb4 ;
+--enable_warnings
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f227 VARBINARY(64),
+f228 VARBINARY(27),
+f229 VARBINARY(64),
+f230 VARBINARY(192),
+f231 VARBINARY(192),
+f232 VARBINARY(27),
+f233 VARBINARY(64),
+f234 VARBINARY(192),
+f235 char(255) unicode,
+f236 char(60) ascii,
+f237 char(255) binary,
+f238 varchar(0) binary,
+f239 varbinary(1000),
+f240 varchar(120) unicode,
+f241 char(100) unicode,
+f242 bit(30)
+) engine = myisam;
+
+# The original columns. They are replaced by varbinary, because the funcs_1 tests should
+# not depend on the optional availability of the geometry feature.
+# f227 geometry,
+# f228 point,
+# f229 linestring,
+# f230 polygon,
+# f231 geometrycollection,
+# f232 multipoint,
+# f233 multilinestring,
+# f234 multipolygon,
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ;
diff --git a/mysql-test/suite/funcs_1/include/show_connection.inc b/mysql-test/suite/funcs_1/include/show_connection.inc
new file mode 100644
index 00000000000..1cc2dd19a8c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/show_connection.inc
@@ -0,0 +1,14 @@
+#### suite/funcs_1/include/show_connection.inc
+#
+# This file shows the current connection information into the result file
+# By using the '... AS "" ' an empty line will separate this in the result.
+#
+# Usage:
+# Add the following to any *.test file:
+# :
+# --source suite/funcs_1/include/show_connection.inc
+# :
+
+--disable_query_log
+SELECT USER() AS "", DATABASE() AS "";
+--enable_query_log
diff --git a/mysql-test/suite/funcs_1/include/sp_tb.inc b/mysql-test/suite/funcs_1/include/sp_tb.inc
new file mode 100644
index 00000000000..ef209afc0cf
--- /dev/null
+++ b/mysql-test/suite/funcs_1/include/sp_tb.inc
@@ -0,0 +1,68 @@
+--disable_abort_on_error
+
+# ML: Should be set outside when memory
+# set @@global.max_heap_table_size=4294967295;
+# set @@session.max_heap_table_size=4294967295;
+
+USE test;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2, t4, t10, t11;
+--enable_warnings
+eval CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type;
+eval CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type;
+eval CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type;
+eval CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type;
+eval CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11;
+
+
+--disable_warnings
+drop TABLE if exists t3;
+--enable_warnings
+eval CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3;
+
+#---------------------------
+
+--disable_warnings
+drop database if exists test4;
+--enable_warnings
+CREATE database test4;
+use test4;
+
+eval CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6;
+#---------------------------
+
+use test;
+
+--disable_warnings
+drop TABLE if exists t7, t8;
+--enable_warnings
+eval CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = $engine_type;
+eval CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8;
+
+
+--disable_warnings
+drop TABLE if exists t9;
+--enable_warnings
+eval CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9;
+
diff --git a/mysql-test/suite/funcs_1/lib/DataGen_local.pl b/mysql-test/suite/funcs_1/lib/DataGen_local.pl
new file mode 100755
index 00000000000..738a73e0fd5
--- /dev/null
+++ b/mysql-test/suite/funcs_1/lib/DataGen_local.pl
@@ -0,0 +1,1247 @@
+#!/usr/bin/perl
+
+
+if ( (scalar(@ARGV) != 1 ) || ($ARGV[0] =~ /[^0-9]/i ) )
+
+{
+ if( $ARGV[0] =~ /[^0-9]/i )
+
+ {
+
+ print "\n\t First parameter <Number of Rows> should be an integer value. \n"
+
+ }
+
+ &printusage;
+
+}
+
+
+else
+
+{
+
+
+# Third Table "t3.txt"
+
+
+ $file = 't3.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+ $s_int = 0;
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $char20 = &get_next_char20($count);
+
+
+ print ($char20); #char (20)
+
+ print ("\t",$char20); #char (20)
+
+ print ("\t",$s_int); #int
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Fourth Table "t4.txt"
+
+
+ $file = 't4.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ $s_int = 0;
+
+ $current_date = "1000-01-00";
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $char20 = &get_next_char20($count);
+
+ $char25 = &get_next_char25($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $current_date = &get_next_date($current_date);
+
+
+ print ($char20); #char (20)
+
+ print ("\t",$char25); #char (25)
+
+ print ("\t",$current_date); #date
+
+ print ("\t",$s_int); #int
+
+ print ("\t",$char25); #char (25)
+
+ print ("\t",$s_int); #int
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+
+
+
+
+# Seventh Table "t7.txt"
+
+
+ $file = 't7.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+ $current_date = "1000-01-00";
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+
+ $char20 = &get_next_char20($count);
+
+ $char25 = &get_next_char25($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $current_date = &get_next_date($current_date);
+
+
+ print ($char20); #Text
+
+ print ("\t",$char25); #Text
+
+ print ("\t",$date); #Date
+
+ print ("\t",$s_int); #int
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Ninth Table "t9.txt"
+
+
+ $file = 't9.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ #Data type declarations
+
+
+ $s_int = 0;
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $char25 = &get_next_char25($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+
+ print ($s_int); #int
+
+ print ("\t",$char25); #char (25)
+
+ print ("\t",$s_int); #int
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+
+
+
+# Thirteenth Table "t13.txt"
+
+
+ $file = 't13.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $geometry = &get_next_geometry($count);
+
+ $point = &get_next_point($count);
+
+ $linestring = &get_next_linestring($count);
+
+ $polygon = &get_next_polygon($count);
+
+ $geometry_collection = &get_next_geometry_collection($count);
+
+ $multipoint = &get_next_multipoint($count);
+
+ $multilinestring = &get_next_multilinestring($count);
+
+ $multipolygon = &get_next_multipolygon($count);
+
+
+ print ($geometry); #geometry
+
+ print ("\t",$point); #point
+
+ print ("\t",$linestring); #linestring
+
+ print ("\t",$polygon); #polygon
+
+ print ("\t",$geometry_collection); #geometrycollection
+
+ print ("\t",$multipoint); #multipoint
+
+ print ("\t",$multilinestring); #multilinestring
+
+ print ("\t",$multipolygon); #multipolygon
+
+ print ("\n");
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+}
+
+
+
+#Subroutines START HERE
+
+
+
+sub get_next_tinytext
+
+{
+
+ my($count) = @_;
+
+ my($default_char) = "a";
+
+ $index = $count % 20 ;
+
+
+ @ascii = ("\140","\141","\142","\143","\144","\145","\146","\147","\136","\137",
+
+ "\150","\151","\152","\153","\154","\155","\156","\157","\134","\135");
+
+
+
+ my($quotient) = $count / 100;
+
+ $quotient =~ s/\.[0-9]*// ;
+
+ $tinytext = $default_char.$ascii[$index].$quotient;
+
+
+ return($tinytext);
+
+}
+
+
+
+sub get_next_char20
+
+{
+
+ my($count) = @_;
+
+ my($default_char) = "a";
+
+ $index = $count % 20 ;
+
+
+ @ascii = ("\140","\141","\142","\143","\144","\145","\146","\147","\136","\137",
+
+ "\150","\151","\152","\153","\154","\155","\156","\157","\134","\135");
+
+
+ $longtext = $default_char.$ascii[$index].$default_char x $index;
+
+ return($longtext);
+
+}
+
+
+
+
+sub get_next_char25
+
+{
+
+ my($count) = @_;
+
+ my($default_char) = "a";
+
+ $index = $count % 20;
+
+
+ @ascii = ("\140","\141","\142","\143","\144","\145","\146","\147","\136","\137",
+
+ "\150","\151","\152","\153","\154","\155","\156","\157","\134","\135");
+
+
+ $longtext = $default_char.$ascii[$index].$default_char x $index;
+
+ return($longtext);
+
+}
+
+
+
+
+sub get_next_year
+
+{
+
+ my($next_year) = @_;
+
+ if (($next_year >= 1901) && ($next_year < 2155))
+
+ {
+
+ $next_year++;
+
+ }
+
+
+ else
+
+ {
+
+ $next_year = 1901;
+
+ }
+
+ return($next_year);
+
+}
+
+
+
+sub get_next_s_int
+
+{
+
+ my($count,$maxsize) = @_;
+
+ $s_int = int($count - ($maxsize/2));
+
+ return($s_int);
+
+}
+
+
+sub get_next_date
+{
+
+ my($date) = @_ ;
+
+ $pattern = '-';
+
+ @words = split(/$pattern/, $date);
+
+ $year = $words[0];
+
+ $month = $words[1];
+
+ $day = $words[2];
+
+
+ if (($month == 2) )
+
+ {
+
+ if($day == 28)
+
+ {
+
+ if($year % 4 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+ elsif($day == 29)
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+ }
+
+
+ elsif($day == 30)
+
+ {
+
+ if (($month == 1) || ($month == 3) || ($month == 5) || ($month == 7) || ($month == 8) || ($month == 10) || ($month == 12))
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+ elsif($day == 31)
+
+ {
+
+ if ($month == 12)
+
+ {
+
+ $day = 01;
+
+ $month = 01;
+
+
+
+ if($year < 9999)
+
+ {
+
+ $year++;
+
+ }
+
+ else
+
+ {
+
+ $year = 1000;
+
+ }
+
+ }
+
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+
+
+ $date = $year."-".$month."-".$day;
+
+ return($date);
+
+}
+
+
+
+
+sub get_next_s_date
+
+{
+
+ my($date) = @_ ;
+
+ $pattern = '-';
+
+ @words = split(/$pattern/, $date);
+
+
+ $year = "$words[0]";
+
+ $month = "$words[1]";
+
+ $day = "$words[2]";
+
+
+ if (($month == "02") )
+
+ {
+
+ if($day == "28")
+
+ {
+
+ if($year =~ /[0-9][0-9]00/)
+
+ {
+
+ if($year % 400 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ if($year % 4 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+ }
+
+
+
+ elsif($day == "29")
+
+ {
+
+ $day = "01";
+
+ $month++;
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+ }
+
+
+ elsif($day == "30")
+
+ {
+
+ if (($month == "01") || ($month == "03") || ($month == "05") || ($month == "07") || ($month == "08") || ($month == "10") || ($month == "12"))
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = "01";
+
+ $month++;
+
+ }
+
+ }
+
+
+ elsif($day == "31")
+
+ {
+
+ if ($month == "12")
+
+ {
+
+ $day = "01";
+
+ $month = "01";
+
+
+
+ if($year < "2036")
+
+ {
+
+ $year = $year + "0001";
+
+ }
+
+ else
+
+ {
+
+ $year = "1970";
+
+ }
+
+ }
+
+
+ else
+
+ {
+
+ $day = "01";
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+
+ if($month !~ /[0-9][0-9]/)
+
+ {
+
+ $month = "0".$month;
+
+ }
+
+
+
+ if($day !~ /[0-9][0-9]/)
+
+ {
+
+ $day = "0".$day;
+
+ }
+
+
+
+ $date = "$year"."-"."$month"."-"."$day";
+
+
+
+ return($date);
+
+}
+
+
+
+sub printusage
+
+{
+
+ print "\n\nUsage: DataGen <Number of Rows>";
+
+ print "\n\n<Number of Rows>: The number of rows in the table ".
+
+ "\n\nE.g. DataGen 5000".
+
+ "\n\nThis will generate 11 text files containing 5000" .
+
+ " records each for the 11 types of tables.";
+
+}
+
+
+
+sub get_next_geometry
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0€V@\0\0\0\0\0€V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0€[@\0\0\0\0\0€[@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0€[@\0\0\0\0\0€[@\0\0\0\0\0\0^@\0\0\0\0\0\0^@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0Àr@\0\0\0\0\0Àr@\0\0\0\0\0\0y@\0\0\0\0\0\0y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àr@\0\0\0\0\0\0Y@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0@@\0\0\0\0\0@@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+
+sub get_next_point
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\09@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€A@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0\09@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0€A@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0€F@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0€K@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0@P@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0ÀR@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\09@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0@U@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€K@\0\0\0\0\0ÀW@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0@P@\0\0\0\0\0ÀW@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0ÀR@\0\0\0\0\0ÀW@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0@U@\0\0\0\0\0ÀW@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0ÀW@\0\0\0\0\0ÀW@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_linestring
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0€V@\0\0\0\0\0€V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0€[@\0\0\0\0\0€[@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0€[@\0\0\0\0\0€[@\0\0\0\0\0\0^@\0\0\0\0\0\0^@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0Àr@\0\0\0\0\0Àr@\0\0\0\0\0\0y@\0\0\0\0\0\0y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àr@\0\0\0\0\0\0Y@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0@@\0\0\0\0\0@@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+
+sub get_next_polygon
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0(@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\00@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\01@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\02@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\03@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\05@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\06@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0ð?\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\07@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0@Ÿ@\0\0\0\0\0\0ð?\0\0\0\0\0@Ÿ@\0\0\0\0\0@Ÿ@\0\0\0\0\0\03@\0\0\0\0\0@Ÿ@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\08@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_geometry_collection
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0(@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\00@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\01@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\02@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\03@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\05@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\06@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0ð?\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\07@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0@Ÿ@\0\0\0\0\0\0ð?\0\0\0\0\0@Ÿ@\0\0\0\0\0@Ÿ@\0\0\0\0\0\03@\0\0\0\0\0@Ÿ@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\08@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_multipoint
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€Q@\0\0\0\0\0€Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0€V@\0\0\0\0\0€V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0Àr@\0\0\0\0\0\0Y@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_multilinestring
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0€V@\0\0\0\0\0€V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0€[@\0\0\0\0\0€[@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0€[@\0\0\0\0\0€[@\0\0\0\0\0\0^@\0\0\0\0\0\0^@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0Àr@\0\0\0\0\0Àr@\0\0\0\0\0\0y@\0\0\0\0\0\0y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Àr@\0\0\0\0\0\0Y@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0@@\0\0\0\0\0@@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_multipolygon
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 20 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\04@\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\N',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0€Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0(@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0€V@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0Àr@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\00@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\01@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\02@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0À‚@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\03@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0à…@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\0‰@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\05@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0 Œ@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\06@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0ð?\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\07@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0@Ÿ@\0\0\0\0\0\0ð?\0\0\0\0\0@Ÿ@\0\0\0\0\0@Ÿ@\0\0\0\0\0\03@\0\0\0\0\0@Ÿ@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\08@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub random
+
+{
+
+ my($limit) = @_ ;
+
+ $random = int(rand($limit));
+
+ return($random);
+
+}
+
diff --git a/mysql-test/suite/funcs_1/lib/DataGen_modify.pl b/mysql-test/suite/funcs_1/lib/DataGen_modify.pl
new file mode 100755
index 00000000000..4675049ff0d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/lib/DataGen_modify.pl
@@ -0,0 +1,3960 @@
+#!/usr/bin/perl
+
+
+if ( (scalar(@ARGV) != 2 ) || ($ARGV[0] =~ /[^0-9]/i ) )
+
+{
+
+ if( $ARGV[0] =~ /[^0-9]/i )
+
+ {
+
+ print "\n\nFirst parameter <Rowcount> should be an integer value. \n"
+
+ }
+
+ &printusage;
+
+}
+
+
+else
+
+{
+
+
+# Case "InnoDB"
+
+
+ if ( $ARGV[1] =~ /innodb/i )
+
+ {
+
+
+
+# First Table "tb1.txt"
+
+
+ $file = 'innodb_tb1.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+#Data type declarations
+
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ srand();
+
+
+ #Write data to file
+
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $char_0 = &get_next_char_0($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+
+ print ($char_0); #char(0)##
+
+ print ("\t",$char_0); #char binary(0)##
+
+ print ("\t",$char_0); #char ascii(0)##
+
+ print ("\t",$tinytext); #tiny text unicode##
+
+ print ("\t",$tinytext); #text
+
+ print ("\t",$longtext); #medium text
+
+ print ("\t",$longtext); #long text
+
+ print ("\t",$tinytext); #tiny blob
+
+ print ("\t",$tinytext); #blob
+
+ print ("\t",$longtext); #medium blob
+
+ print ("\t",$longtext); #long blob
+
+ print ("\t",$char); #binary
+
+ print ("\t",&random(127)); #tiny int
+
+ print ("\t",&random(255)); #tiny int unsigned
+
+ print ("\t",&random(127)); #tiny int zerofill
+
+ print ("\t",&random(255)); #tiny int unsigned zerofill
+
+ print ("\t",&random(32767)); #smallint
+
+ print ("\t",&random(65535)); #smallint unsigned
+
+ print ("\t",&random(32767)); #smallint zerofill
+
+ print ("\t",&random(65535)); #smallint unsigned zerofill
+
+ print ("\t",$s_int); #mediumint
+
+ print ("\t",$u_int); #mediumint unsigned
+
+ print ("\t",$u_int); #mediumint zerofill
+
+ print ("\t",$u_int); #mediumint unsigned zerofill
+
+ print ("\t",$s_int); #int
+
+ print ("\t",$u_int); #int unsigned
+
+ print ("\t",$u_int); #int zerofill
+
+ print ("\t",$u_int); #int unsigned zerofill
+
+ print ("\t",$s_int); #bigint
+
+ print ("\t",$u_int); #bigint unsigned
+
+ print ("\t",$u_int); #bigint zerofill
+
+ print ("\t",$u_int); #bigint unsigned zerofill
+
+ print ("\t",$s_int); #decimal
+
+ print ("\t",$u_int); #decimal unsigned
+
+ print ("\t",$u_int); #decimal zerofill
+
+ print ("\t",$u_int); #decimal unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal(0) not null
+
+ print ("\t",$s_int); #decimal(254) not null
+
+ print ("\t",$u_int); #decimal (0) unsigned not null
+
+ print ("\t",$u_int); #decimal (254) unsigned not null
+
+ print ("\t",$u_int); #decimal(0) zerofill not null
+
+ print ("\t",$u_int); #decimal(254) zerofill not null
+
+ print ("\t",$u_int); #decimal (0) unsigned zerofill not null
+
+ print ("\t",$u_int); #decimal (254) unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal (0,0) not null
+
+ print ("\t",$decimal); #decimal(253,253) not null
+
+ print ("\t",$u_int); #decimal (0,0) unsigned not null
+
+ print ("\t",$decimal); #decimal (253,253) unsigned not null
+
+ print ("\t",$u_int); #decimal(0,0) zerofill not null
+
+ print ("\t",$decimal); #decimal(253,253) zerofill not null
+
+ print ("\t",$u_int); #decimal (0,0) unsigned zerofill not null
+
+ print ("\t",$decimal); #decimal (253,253) unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric not null
+
+ print ("\t",$u_int); #numeric unsigned not null
+
+ print ("\t",$u_int); #numeric zerofill not null
+
+ print ("\t",$u_int); #numeric unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric(0) not null
+
+ print ("\t",$s_int); #numeric(254) not null
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Second Table "tb2.txt"
+
+
+ $file = 'innodb_tb2.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ $enum = 1;
+
+ $set = 1;
+
+ $int=0;
+
+ $current_time = "838:59:59";
+
+ $s_time = "00:00:00";
+
+ $s_date = "1970-01-01";
+
+ $current_date = "1000-01-00";
+
+ $current_year = 1901;
+
+ $u_current_float = 1.175494351e-38;
+
+ $s_current_float = -1.175494351e-38;
+
+ srand();
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $decimal = $count. "\." .$count;
+
+ $int = &get_next_int($int);
+
+ $enum = &get_next_enum($enum);
+
+ $set = &get_next_set($set);
+
+ $current_date = &get_next_date($current_date);
+
+ $current_time = &get_next_time($current_time);
+
+ $current_year = &get_next_year($current_year);
+
+ $u_current_float = &get_next_float($u_current_float);
+
+ $s_current_float = &get_next_float($s_current_float);
+
+ $s_time = &get_next_s_time($s_time);
+
+ $s_date = &get_next_s_date($s_date);
+
+ $datetime = &get_next_datetime($s_date,$s_time);
+
+ $timestamp = &get_next_timestamp($s_date,$s_time);
+
+
+ print ($u_int); #numeric (0) unsigned
+
+ print ("\t",$u_int); #numeric (254) unsigned
+
+ print ("\t",$u_int); #numeric (0) zerofill
+
+ print ("\t",$u_int); #numeric (254) zerofill
+
+ print ("\t",$u_int); #numeric (0) unsigned zerofill
+
+ print ("\t",$u_int); #numeric (254) unsigned zerofill
+
+ print ("\t",$s_int); #numeric (0,0)
+
+ print ("\t",$decimal); #numeric (253,253)
+
+ print ("\t",$u_int); #numeric (0,0) unsigned
+
+ print ("\t",$decimal); #numeric (253,253) unsigned
+
+ print ("\t",$u_int); #numeric (0,0) zerofill
+
+ print ("\t",$decimal); #numeric (253,253) zerofill
+
+ print ("\t",$u_int); #numeric (0,0) unsigned zerofill
+
+ print ("\t",$decimal); #numeric (253,253) unsigned zerofill
+
+ print ("\t",$s_current_float); #real
+
+ print ("\t",$u_current_float); #real unsigned
+
+ print ("\t",$u_current_float); #real zerofill
+
+ print ("\t",$u_current_float); #real unsigned zerofill
+
+ print ("\t",$s_current_float); #double
+
+ print ("\t",$u_current_float); #double unsigned
+
+ print ("\t",$u_current_float); #double zerofill
+
+ print ("\t",$u_current_float); #double unsigned zerofill
+
+ print ("\t",$s_current_float); #float not null
+
+ print ("\t",$u_current_float); #float unsigned not null
+
+ print ("\t",$u_current_float); #float zerofill not null
+
+ print ("\t",$u_current_float); #float unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float(0) not null
+
+ print ("\t",$s_current_float); #float(23) not null
+
+ print ("\t",$u_current_float); #float(0) unsigned not null
+
+ print ("\t",$u_current_float); #float(23) unsigned not null
+
+ print ("\t",$u_current_float); #float(0) zerofill not null
+
+ print ("\t",$u_current_float); #float(23) zerofill not null
+
+ print ("\t",$u_current_float); #float(0) unsigned zerofill not null
+
+ print ("\t",$u_current_float); #float(23) unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float(24) not null
+
+ print ("\t",$s_current_float); #float(53) not null
+
+ print ("\t",$u_current_float); #float(24) unsigned not null
+
+ print ("\t",$u_current_float); #float(53) unsigned not null
+
+ print ("\t",$u_current_float); #float(24) zerofill not null
+
+ print ("\t",$u_current_float); #float(53) zerofill not null
+
+ print ("\t",$u_current_float); #float(24) unsigned zerofill not null
+
+ print ("\t",$u_current_float); #float(53) unsigned zerofill not null
+
+ print ("\t",$current_date); #date not null
+
+ print ("\t",$current_time); #time not null
+
+ print ("\t",$datetime); #datetime not null
+
+ print ("\t",$timestamp); #timestamp not null
+
+ print ("\t",$current_year); #year not null
+
+ print ("\t",$current_year); #year(3) not null
+
+ print ("\t",$current_year); #year(4) not null
+
+ print ("\t",$enum); #enum("1enum","2enum") not null
+
+ print ("\t",$set); #set("1set","2set") not null
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Third Table "tb3.txt"
+
+
+ $file = 'innodb_tb3.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+ $u_int = 0;
+
+ srand();
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+
+ print ($char); #char not null
+
+ print ("\t",$char); #char binary not null
+
+ print ("\t",$char); #char ascii not null
+
+ print ("\t",$tinytext); #tinytext not null
+
+ print ("\t",$tinytext); #text not null
+
+ print ("\t",$longtext); #mediumtext not null
+
+ print ("\t",$longtext); #longtext not null unicode##
+
+ print ("\t",$tinytext); #tinyblob not null
+
+ print ("\t",$tinytext); #blob not null
+
+ print ("\t",$longtext); #mediumblob not null
+
+ print ("\t",$longtext); #longblob not null
+
+ print ("\t",$char); #binary not null
+
+ print ("\t",&random(127)); #tinyint not null
+
+ print ("\t",&random(255)); #tinyint unsigned not null
+
+ print ("\t",&random(127)); #tinyint zerofill not null
+
+ print ("\t",&random(255)); #tinyint unsigned zerofill not null
+
+ print ("\t",&random(32767)); #smallint not null
+
+ print ("\t",&random(65535)); #smallint unsigned not null
+
+ print ("\t",&random(32767)); #smallint zerofill not null
+
+ print ("\t",&random(65535)); #smallint unsigned zerofill not null
+
+ print ("\t",$s_int); #mediumint not null
+
+ print ("\t",$u_int); #mediumint unsigned not null
+
+ print ("\t",$u_int); #mediumint zerofill not null
+
+ print ("\t",$u_int); #mediumint unsigned zerofill not null
+
+ print ("\t",$s_int); #int not null
+
+ print ("\t",$u_int); #int unsigned not null
+
+ print ("\t",$u_int); #int zerofill not null
+
+ print ("\t",$u_int); #int unsigned zerofill not null
+
+ print ("\t",$s_int); #bigint not null
+
+ print ("\t",$u_int); #bigint unsigned not null
+
+ print ("\t",$u_int); #bigint zerofill not null
+
+ print ("\t",$u_int); #bigint unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal not null
+
+ print ("\t",$u_int); #decimal unsigned not null
+
+ print ("\t",$u_int); #decimal zerofill not null
+
+ print ("\t",$u_int); #decimal unsigned zerofill
+
+ print ("\t",$s_int); #decimal(0)
+
+ print ("\t",$s_int); #decimal(254)
+
+ print ("\t",$u_int); #decimal (0) unsigned
+
+ print ("\t",$u_int); #decimal (254) unsigned
+
+ print ("\t",$u_int); #decimal(0) zerofill
+
+ print ("\t",$u_int); #decimal(254) zerofill
+
+ print ("\t",$u_int); #decimal (0) unsigned zerofill
+
+ print ("\t",$u_int); #decimal (254) unsigned zerofill
+
+ print ("\t",$s_int); #decimal (0,0)
+
+ print ("\t",$decimal); #decimal(253,253)
+
+ print ("\t",$u_int); #decimal (0,0) unsigned
+
+ print ("\t",$decimal); #decimal (253,253) unsigned
+
+ print ("\t",$u_int); #decimal(0,0) zerofill
+
+ print ("\t",$decimal); #decimal(253,253) zerofill
+
+ print ("\t",$u_int); #decimal (0,0) unsigned zerofill
+
+ print ("\t",$decimal); #decimal (253,253) unsigned zerofill
+
+ print ("\t",$s_int); #numeric
+
+ print ("\t",$u_int); #numeric unsigned
+
+ print ("\t",$u_int); #numeric zerofill
+
+ print ("\t",$u_int); #numeric unsigned zerofill
+
+ print ("\t",$s_int); #numeric(0)
+
+ print ("\t",$s_int); #numeric(254)
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Fourth Table "tb4.txt"
+
+
+ $file = 'innodb_tb4.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+ $enum = 1;
+
+ $ret_bit = 1;
+
+ $set = 1;
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ $int=0;
+
+ $s_time = "00:00:00";
+
+ $s_date = "1970-01-01";
+
+ $current_time = "838:59:59";
+
+ $current_date = "1000-01-00";
+
+ $current_year = 1901;
+
+ $u_current_float = 1.175494351e-38;
+
+ $s_current_float = -1.175494351e-38;
+
+ srand();
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+# $bit = &get_next_bit(0);
+
+ $char = &get_next_char($count);
+
+ $char_0 = &get_next_char_0($count);
+
+ $char_55 = &get_next_char_55($count);
+
+ $char_90 = &get_next_char_90($count);
+
+ $char_100 = &get_next_char_100($count);
+
+ $char_255 = &get_next_char_255($count);
+
+ $varchar_500 = &get_next_varchar_500($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+ $int = &get_next_int($int);
+
+ $enum = &get_next_enum($enum);
+
+ $set = &get_next_set($set);
+
+ $current_date = &get_next_date($current_date);
+
+ $current_time = &get_next_time($current_time);
+
+ $current_year = &get_next_year($current_year);
+
+ $u_current_float = &get_next_float($u_current_float);
+
+ $s_current_float = &get_next_float($s_current_float);
+
+ $s_time = &get_next_s_time($s_time);
+
+ $s_date = &get_next_s_date($s_date);
+
+ $datetime = &get_next_datetime($s_date,$s_time);
+
+ $timestamp = &get_next_timestamp($s_date,$s_time);
+
+
+ print ($u_int); #numeric (0) unsigned not null
+
+ print ("\t",$u_int); #numeric (254) unsigned not null
+
+ print ("\t",$u_int); #numeric (0) zerofill not null
+
+ print ("\t",$u_int); #numeric (254) zerofill not null
+
+ print ("\t",$u_int); #numeric (0) unsigned zerofill not null
+
+ print ("\t",$u_int); #numeric (254) unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric (0,0) not null
+
+ print ("\t",$decimal); #numeric (253,253) not null
+
+ print ("\t",$u_int); #numeric (0,0) unsigned not null
+
+ print ("\t",$decimal); #numeric (253,253) unsigned not null
+
+ print ("\t",$u_int); #numeric (0,0) zerofill not null
+
+ print ("\t",$decimal); #numeric (253,253) zerofill not null
+
+ print ("\t",$u_int); #numeric (0,0) unsigned zerofill not null
+
+ print ("\t",$decimal); #numeric (253,253) unsigned zerofill not null
+
+ print ("\t",$s_current_float); #real not null
+
+ print ("\t",$u_current_float); #real unsigned not null
+
+ print ("\t",$u_current_float); #real zerofill not null
+
+ print ("\t",$u_current_float); #real unsigned zerofill not null
+
+ print ("\t",$s_current_float); #double not null
+
+ print ("\t",$u_current_float); #double unsigned not null
+
+ print ("\t",$u_current_float); #double zerofill not null
+
+ print ("\t",$u_current_float); #double unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float
+
+ print ("\t",$u_current_float); #float unsi gned
+
+ print ("\t",$u_current_float); #float zerofill
+
+ print ("\t",$u_current_float); #float unsigned zerofill
+
+ print ("\t",$s_current_float); #float(0)
+
+ print ("\t",$s_current_float); #float(23)
+
+ print ("\t",$u_current_float); #float(0) unsigned
+
+ print ("\t",$u_current_float); #float(23) unsigned
+
+ print ("\t",$u_current_float); #float(0) zerofill
+
+ print ("\t",$u_current_float); #float(23) zerofill
+
+ print ("\t",$u_current_float); #float(0) unsigned zerofill
+
+ print ("\t",$u_current_float); #float(23) unsigned zerofill
+
+ print ("\t",$s_current_float); #float(24)
+
+ print ("\t",$s_current_float); #float(53)
+
+ print ("\t",$u_current_float); #float(24) unsigned
+
+ print ("\t",$u_current_float); #float(53) unsigned
+
+ print ("\t",$u_current_float); #float(24) zerofill
+
+ print ("\t",$u_current_float); #float(53) zerofill
+
+ print ("\t",$u_current_float); #float(24) unsigned zerofill
+
+ print ("\t",$u_current_float); #float(53) unsigned zerofill
+
+ print ("\t",$current_date); #date
+
+ print ("\t",$current_time); #time
+
+ print ("\t",$datetime); #datetime
+
+ print ("\t",$timestamp); #timestamp
+
+ print ("\t",$current_year); #year
+
+ print ("\t",$current_year); #year(3)
+
+ print ("\t",$current_year); #year(4)
+
+ print ("\t",$enum); #enum("1enum","2enum")
+
+ print ("\t",$set); #set("1set","2set")
+
+ print ("\t",$char_0); #char(0) unicode##
+
+ print ("\t",$char_90); #char(90)##
+
+ print ("\t",$char_255); #char(255) ascii##
+
+ print ("\t",$char_0); #varchar(0)##
+
+ print ("\t",$varchar_500); #varchar(20000) binary##
+
+ print ("\t",$varchar_500); #varchar(2000) unicode##
+
+ print ("\t",$char_100); #char(100) unicode##
+
+# print ("\t",$bit); #Bit(0)##
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+ }
+
+
+
+#Next Database "MyIsam"
+
+
+ elsif ( $ARGV[1] =~ /myisam/i )
+
+ {
+
+
+# Fifth Table "tb5.txt"
+
+
+ $file = 'myisam_tb1.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+
+ #Data type declarations
+
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ srand();
+
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+
+ print ($char); #char
+
+ print ("\t",$char); #char binary
+
+ print ("\t",$char); #char ascii
+
+ print ("\t",$tinytext); #tiny text unicode##
+
+ print ("\t",$tinytext); #text
+
+ print ("\t",$longtext); #medium text
+
+ print ("\t",$longtext); #long text
+
+ print ("\t",$tinytext); #tiny blob
+
+ print ("\t",$tinytext); #blob
+
+ print ("\t",$longtext); #medium blob
+
+ print ("\t",$longtext); #long blob
+
+ print ("\t",$char); #binary
+
+ print ("\t",&random(127)); #tiny int
+
+ print ("\t",&random(255)); #tiny int unsigned
+
+ print ("\t",&random(127)); #tiny int zerofill
+
+ print ("\t",&random(255)); #tiny int unsigned zerofill
+
+ print ("\t",&random(32767)); #smallint
+
+ print ("\t",&random(65535)); #smallint unsigned
+
+ print ("\t",&random(32767)); #smallint zerofill
+
+ print ("\t",&random(65535)); #smallint unsigned zerofill
+
+ print ("\t",$s_int); #mediumint
+
+ print ("\t",$u_int); #mediumint unsigned
+
+ print ("\t",$u_int); #mediumint zerofill
+
+ print ("\t",$u_int); #mediumint unsigned zerofill
+
+ print ("\t",$s_int); #int
+
+ print ("\t",$u_int); #int unsigned
+
+ print ("\t",$u_int); #int zerofill
+
+ print ("\t",$u_int); #int unsigned zerofill
+
+ print ("\t",$s_int); #bigint
+
+ print ("\t",$u_int); #bigint unsigned
+
+ print ("\t",$u_int); #bigint zerofill
+
+ print ("\t",$u_int); #bigint unsigned zerofill
+
+ print ("\t",$s_int); #decimal not null
+
+ print ("\t",$u_int); #decimal unsigned not null
+
+ print ("\t",$u_int); #decimal zerofill not null
+
+ print ("\t",$u_int); #decimal unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal(0) not null
+
+ print ("\t",$s_int); #decimal(254) not null
+
+ print ("\t",$u_int); #decimal (0) unsigned not null
+
+ print ("\t",$u_int); #decimal (254) unsigned not null
+
+ print ("\t",$u_int); #decimal(0) zerofill not null
+
+ print ("\t",$u_int); #decimal(254) zerofill not null
+
+ print ("\t",$u_int); #decimal (0) unsigned zerofill not null
+
+ print ("\t",$u_int); #decimal (254) unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal (0,0) not null
+
+ print ("\t",$decimal); #decimal(253,253) not null
+
+ print ("\t",$u_int); #decimal (0,0) unsigned not null
+
+ print ("\t",$decimal); #decimal (253,253) unsigned not null
+
+ print ("\t",$u_int); #decimal(0,0) zerofill not null
+
+ print ("\t",$decimal); #decimal(253,253) zerofill not null
+
+ print ("\t",$u_int); #decimal (0,0) unsigned zerofill not null
+
+ print ("\t",$decimal); #decimal (253,253) unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric not null
+
+ print ("\t",$u_int); #numeric unsigned not null
+
+ print ("\t",$u_int); #numeric zerofill not null
+
+ print ("\t",$u_int); #numeric unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric(0) not null
+
+ print ("\t",$s_int); #numeric(254) not null
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Sixth Table "tb6.txt"
+
+
+ $file = 'myisam_tb2.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ $enum = 1;
+
+ $set = 1;
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ $int=0;
+
+ $s_time = "00:00:00";
+
+ $s_date = "1970-01-01";
+
+ $current_time = "838:59:59";
+
+ $current_date = "1000-01-00";
+
+ $current_year = 1901;
+
+ $u_current_float = 1.175494351e-38;
+
+ $s_current_float = -1.175494351e-38;
+
+ srand();
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $decimal = $count. "\." .$count;
+
+ $int = &get_next_int($int);
+
+ $enum = &get_next_enum($enum);
+
+ $set = &get_next_set($set);
+
+ $current_date = &get_next_date($current_date);
+
+ $current_time = &get_next_time($current_time);
+
+ $current_year = &get_next_year($current_year);
+
+ $u_current_float = &get_next_float($u_current_float);
+
+ $s_current_float = &get_next_float($s_current_float);
+
+ $s_time = &get_next_s_time($s_time);
+
+ $s_date = &get_next_s_date($s_date);
+
+ $datetime = &get_next_datetime($s_date,$s_time);
+
+ $timestamp = &get_next_timestamp($s_date,$s_time);
+
+
+ $geometry = &get_next_geometry($count);
+
+ $point = &get_next_point($count);
+
+ $linestring = &get_next_linestring($count);
+
+ $polygon = &get_next_polygon($count);
+
+ $geometry_collection = &get_next_geometry_collection($count);
+
+ $multipoint = &get_next_multipoint($count);
+
+ $multilinestring = &get_next_multilinestring($count);
+
+ $multipolygon = &get_next_multipolygon($count);
+
+
+ print ($u_int); #numeric (0) unsigned
+
+ print ("\t",$u_int); #numeric (254) unsigned
+
+ print ("\t",$u_int); #numeric (0) zerofill
+
+ print ("\t",$u_int); #numeric (254) zerofill
+
+ print ("\t",$u_int); #numeric (0) unsigned zerofill
+
+ print ("\t",$u_int); #numeric (254) unsigned zerofill
+
+ print ("\t",$s_int); #numeric (0,0)
+
+ print ("\t",$decimal); #numeric (253,253)
+
+ print ("\t",$u_int); #numeric (0,0) unsigned
+
+ print ("\t",$decimal); #numeric (253,253) unsigned
+
+ print ("\t",$u_int); #numeric (0,0) zerofill
+
+ print ("\t",$decimal); #numeric (253,253) zerofill
+
+ print ("\t",$u_int); #numeric (0,0) unsigned zerofill
+
+ print ("\t",$decimal); #numeric (253,253) unsigned zerofill
+
+ print ("\t",$s_current_float); #real
+
+ print ("\t",$u_current_float); #real unsigned
+
+ print ("\t",$u_current_float); #real zerofill
+
+ print ("\t",$u_current_float); #real unsigned zerofill
+
+ print ("\t",$s_current_float); #double
+
+ print ("\t",$u_current_float); #double unsigned
+
+ print ("\t",$u_current_float); #double zerofill
+
+ print ("\t",$u_current_float); #double unsigned zerofill
+
+ print ("\t",$s_current_float); #float not null
+
+ print ("\t",$u_current_float); #float unsigned not null
+
+ print ("\t",$u_current_float); #float zerofill not null
+
+ print ("\t",$u_current_float); #float unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float(0) not null
+
+ print ("\t",$s_current_float); #float(23) not null
+
+ print ("\t",$u_current_float); #float(0) unsigned not null
+
+ print ("\t",$u_current_float); #float(23) unsigned not null
+
+ print ("\t",$u_current_float); #float(0) zerofill not null
+
+ print ("\t",$u_current_float); #float(23) zerofill not null
+
+ print ("\t",$u_current_float); #float(0) unsigned zerofill not null
+
+ print ("\t",$u_current_float); #float(23) unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float(24) not null
+
+ print ("\t",$s_current_float); #float(53) not null
+
+ print ("\t",$u_current_float); #float(24) unsigned not null
+
+ print ("\t",$u_current_float); #float(53) unsigned not null
+
+ print ("\t",$u_current_float); #float(24) zerofill not null
+
+ print ("\t",$u_current_float); #float(53) zerofill not null
+
+ print ("\t",$u_current_float); #float(24) unsigned zerofill not null
+
+ print ("\t",$u_current_float); #float(53) unsigned zerofill not null
+
+ print ("\t",$current_date); #date not null
+
+ print ("\t",$current_time); #time not null
+
+ print ("\t",$datetime); #datetime not null
+
+ print ("\t",$timestamp); #timestamp not null
+
+ print ("\t",$current_year); #year not null
+
+ print ("\t",$current_year); #year(3) not null
+
+ print ("\t",$current_year); #year(4) not null
+
+ print ("\t",$enum); #enum("1enum","2enum") not null
+
+ print ("\t",$set); #set("1set","2set") not null
+
+ print ("\t",$geometry); #geometry not null
+
+ print ("\t",$point); #point not null
+
+ print ("\t",$linestring); #linestring not null
+
+ print ("\t",$polygon); #polygon not null
+
+ print ("\t",$geometry_collection); #geometrycollection not null
+
+ print ("\t",$multipoint); #multipoint not null
+
+ print ("\t",$multilinestring); #multilinestring not null
+
+ print ("\t",$multipolygon); #multipolygon not null
+
+
+#geometry not null, point not null, linestring not null, polygon not null, geometrycollection not null, multipoint not null, multilinestring not null, multipolygon not null
+
+
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Seventh Table "tb7.txt"
+
+
+ $file = 'myisam_tb3.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+ $u_int = 0;
+
+ srand();
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+
+ print ($char); #char not null
+
+ print ("\t",$char); #char binary not null
+
+ print ("\t",$char); #char ascii not null
+
+ print ("\t",$tinytext); #tinytext not null
+
+ print ("\t",$tinytext); #text not null
+
+ print ("\t",$longtext); #mediumtext not null
+
+ print ("\t",$longtext); #longtext not null unicode##
+
+ print ("\t",$tinytext); #tinyblob not null
+
+ print ("\t",$tinytext); #blob not null
+
+ print ("\t",$longtext); #mediumblob not null
+
+ print ("\t",$longtext); #longblob not null
+
+ print ("\t",$char); #binary not null
+
+ print ("\t",&random(127)); #tinyint not null
+
+ print ("\t",&random(255)); #tinyint unsigned not null
+
+ print ("\t",&random(127)); #tinyint zerofill not null
+
+ print ("\t",&random(255)); #tinyint unsigned zerofill not null
+
+ print ("\t",&random(32767)); #smallint not null
+
+ print ("\t",&random(65535)); #smallint unsigned not null
+
+ print ("\t",&random(32767)); #smallint zerofill not null
+
+ print ("\t",&random(65535)); #smallint unsigned zerofill not null
+
+ print ("\t",$s_int); #mediumint not null
+
+ print ("\t",$u_int); #mediumint unsigned not null
+
+ print ("\t",$u_int); #mediumint zerofill not null
+
+ print ("\t",$u_int); #mediumint unsigned zerofill not null
+
+ print ("\t",$s_int); #int not null
+
+ print ("\t",$u_int); #int unsigned not null
+
+ print ("\t",$u_int); #int zerofill not null
+
+ print ("\t",$u_int); #int unsigned zerofill not null
+
+ print ("\t",$s_int); #bigint not null
+
+ print ("\t",$u_int); #bigint unsigned not null
+
+ print ("\t",$u_int); #bigint zerofill not null
+
+ print ("\t",$u_int); #bigint unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal
+
+ print ("\t",$u_int); #decimal unsigned
+
+ print ("\t",$u_int); #decimal zerofill
+
+ print ("\t",$u_int); #decimal unsigned zerofill
+
+ print ("\t",$s_int); #decimal(0)
+
+ print ("\t",$s_int); #decimal(254)
+
+ print ("\t",$u_int); #decimal (0) unsigned
+
+ print ("\t",$u_int); #decimal (254) unsigned
+
+ print ("\t",$u_int); #decimal(0) zerofill
+
+ print ("\t",$u_int); #decimal(254) zerofill
+
+ print ("\t",$u_int); #decimal (0) unsigned zerofill
+
+ print ("\t",$u_int); #decimal (254) unsigned zerofill
+
+ print ("\t",$s_int); #decimal (0,0)
+
+ print ("\t",$decimal); #decimal(253,253)
+
+ print ("\t",$u_int); #decimal (0,0) unsigned
+
+ print ("\t",$decimal); #decimal (253,253) unsigned
+
+ print ("\t",$u_int); #decimal(0,0) zerofill
+
+ print ("\t",$decimal); #decimal(253,253) zerofill
+
+ print ("\t",$u_int); #decimal (0,0) unsigned zerofill
+
+ print ("\t",$decimal); #decimal (253,253) unsigned zerofill
+
+ print ("\t",$s_int); #numeric
+
+ print ("\t",$u_int); #numeric unsigned
+
+ print ("\t",$u_int); #numeric zerofill
+
+ print ("\t",$u_int); #numeric unsigned zerofill
+
+ print ("\t",$s_int); #numeric(0)
+
+ print ("\t",$s_int); #numeric(254)
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+# Eighth Table "tb8.txt"
+
+
+ $file = 'myisam_tb4.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ $enum = 1;
+
+ $set = 1;
+
+ $ret_bit = 1;
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ $s_time = "00:00:00";
+
+ $s_date = "1970-01-01";
+
+ $int=0;
+
+ $current_time = "838:59:59";
+
+ $current_date = "1000-01-00";
+
+ $current_year = 1901;
+
+ $u_current_float = 1.175494351e-38;
+
+ $s_current_float = -1.175494351e-38;
+
+ srand();
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $bit = &get_next_bit(30);
+
+ $char = &get_next_char($count);
+
+ $char_0 = &get_next_char_0($count);
+
+ $char_55 = &get_next_char_55($count);
+
+ $char_90 = &get_next_char_90($count);
+
+ $char_100 = &get_next_char_100($count);
+
+ $char_255 = &get_next_char_255($count);
+
+ $varchar_500 = &get_next_varchar_500($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+ $enum = &get_next_enum($enum);
+
+ $set = &get_next_set($set);
+
+ $current_date = &get_next_date($current_date);
+
+ $current_time = &get_next_time($current_time);
+
+ $current_year = &get_next_year($current_year);
+
+ $u_current_float = &get_next_float($u_current_float);
+
+ $s_current_float = &get_next_float($s_current_float);
+
+ $s_time = &get_next_s_time($s_time);
+
+ $s_date = &get_next_s_date($s_date);
+
+ $datetime = &get_next_datetime($s_date,$s_time);
+
+ $timestamp = &get_next_timestamp($s_date,$s_time);
+
+ $geometry = &get_next_geometry($count);
+
+ $point = &get_next_point($count);
+
+ $linestring = &get_next_linestring($count);
+
+ $polygon = &get_next_polygon($count);
+
+ $geometry_collection = &get_next_geometry_collection($count);
+
+ $multipoint = &get_next_multipoint($count);
+
+ $multilinestring = &get_next_multilinestring($count);
+
+ $multipolygon = &get_next_multipolygon($count);
+
+
+ print ($u_int); #numeric (0) unsigned not null
+
+ print ("\t",$u_int); #numeric (254) unsigned not null
+
+ print ("\t",$u_int); #numeric (0) zerofill not null
+
+ print ("\t",$u_int); #numeric (254) zerofill not null
+
+ print ("\t",$u_int); #numeric (0) unsigned zerofill not null
+
+ print ("\t",$u_int); #numeric (254) unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric (0,0) not null
+
+ print ("\t",$decimal); #numeric (253,253) not null
+
+ print ("\t",$u_int); #numeric (0,0) unsigned not null
+
+ print ("\t",$decimal); #numeric (253,253) unsigned not null
+
+ print ("\t",$u_int); #numeric (0,0) zerofill not null
+
+ print ("\t",$decimal); #numeric (253,253) zerofill not null
+
+ print ("\t",$u_int); #numeric (0,0) unsigned zerofill not null
+
+ print ("\t",$decimal); #numeric (253,253) unsigned zerofill not null
+
+ print ("\t",$s_current_float); #real not null
+
+ print ("\t",$u_current_float); #real unsigned not null
+
+ print ("\t",$u_current_float); #real zerofill not null
+
+ print ("\t",$u_current_float); #real unsigned zerofill not null
+
+ print ("\t",$s_current_float); #double not null
+
+ print ("\t",$u_current_float); #double unsigned not null
+
+ print ("\t",$u_current_float); #double zerofill not null
+
+ print ("\t",$u_current_float); #double unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float
+
+ print ("\t",$u_current_float); #float unsigned
+
+ print ("\t",$u_current_float); #float zerofill
+
+ print ("\t",$u_current_float); #float unsigned zerofill
+
+ print ("\t",$s_current_float); #float(0)
+
+ print ("\t",$s_current_float); #float(23)
+
+ print ("\t",$u_current_float); #float(0) unsigned
+
+ print ("\t",$u_current_float); #float(23) unsigned
+
+ print ("\t",$u_current_float); #float(0) zerofill
+
+ print ("\t",$u_current_float); #float(23) zerofill
+
+ print ("\t",$u_current_float); #float(0) unsigned zerofill
+
+ print ("\t",$u_current_float); #float(23) unsigned zerofill
+
+ print ("\t",$s_current_float); #float(24)
+
+ print ("\t",$s_current_float); #float(53)
+
+ print ("\t",$u_current_float); #float(24) unsigned
+
+ print ("\t",$u_current_float); #float(53) unsigned
+
+ print ("\t",$u_current_float); #float(24) zerofill
+
+ print ("\t",$u_current_float); #float(53) zerofill
+
+ print ("\t",$u_current_float); #float(24) unsigned zerofill
+
+ print ("\t",$u_current_float); #float(53) unsigned zerofill
+
+ print ("\t",$current_date); #date
+
+ print ("\t",$current_time); #time
+
+ print ("\t",$datetime); #datetime
+
+ print ("\t",$timestamp); #timestamp
+
+ print ("\t",$current_year); #year
+
+ print ("\t",$current_year); #year(3)
+
+ print ("\t",$current_year); #year(4)
+
+ print ("\t",$enum); #enum("1enum","2enum")
+
+ print ("\t",$set); #set("1set","2set")
+
+ print ("\t",$geometry); #geometry
+
+ print ("\t",$point); #point
+
+ print ("\t",$linestring); #linestring
+
+ print ("\t",$polygon); #polygon
+
+ print ("\t",$geometry_collection); #geometrycollection
+
+ print ("\t",$multipoint); #multipoint
+
+ print ("\t",$multilinestring); #multilinestring
+
+ print ("\t",$multipolygon); #multipolygon
+
+ print ("\t",$char_255); #char(255) unicode##
+
+ print ("\t",$char_55); #char(60) ascii##
+
+ print ("\t",$char_255); #char(255) binary##
+
+ print ("\t",$char_0); #varchar(0) binary##
+
+ print ("\t",$varchar_500); #varbinary(20000)##
+
+ print ("\t",$char_100); #varchar(120) unicode##
+
+ print ("\t",$char_100); #char(100) unicode##
+
+ print ("\t",$bit); #bit(30)##
+
+#geometry, point, linestring, polygon, geometrycollection, multipoint, multilinestring, multipolygon
+
+
+ print ("\n");
+
+ }
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+ }
+
+
+
+ elsif ( $ARGV[1] =~ /memory/i )
+
+ {
+
+
+# Ninth Table "tb9.txt"
+
+
+ $file = 'memory_tb1.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+
+ #Data type declarations
+
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ srand();
+
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+
+ print ($char); #char
+
+ print ("\t",$char); #char binary
+
+ print ("\t",$char); #char ascii
+
+ print ("\t",$char); #binary
+
+ print ("\t",&random(127)); #tiny int
+
+ print ("\t",&random(255)); #tiny int unsigned
+
+ print ("\t",&random(127)); #tiny int zerofill
+
+ print ("\t",&random(255)); #tiny int unsigned zerofill
+
+ print ("\t",&random(32767)); #smallint
+
+ print ("\t",&random(65535)); #smallint unsigned
+
+ print ("\t",&random(32767)); #smallint zerofill
+
+ print ("\t",&random(65535)); #smallint unsigned zerofill
+
+ print ("\t",$s_int); #mediumint
+
+ print ("\t",$u_int); #mediumint unsigned
+
+ print ("\t",$u_int); #mediumint zerofill
+
+ print ("\t",$u_int); #mediumint unsigned zerofill
+
+ print ("\t",$s_int); #int
+
+ print ("\t",$u_int); #int unsigned
+
+ print ("\t",$u_int); #int zerofill
+
+ print ("\t",$u_int); #int unsigned zerofill
+
+ print ("\t",$s_int); #bigint
+
+ print ("\t",$u_int); #bigint unsigned
+
+ print ("\t",$u_int); #bigint zerofill
+
+ print ("\t",$u_int); #bigint unsigned zerofill
+
+ print ("\t",$s_int); #decimal
+
+ print ("\t",$u_int); #decimal unsigned
+
+ print ("\t",$u_int); #decimal zerofill
+
+ print ("\t",$u_int); #decimal unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal(0) not null
+
+ print ("\t",$s_int); #decimal(254) not null
+
+ print ("\t",$u_int); #decimal (0) unsigned not null
+
+ print ("\t",$u_int); #decimal (254) unsigned not null
+
+ print ("\t",$u_int); #decimal(0) zerofill not null
+
+ print ("\t",$u_int); #decimal(254) zerofill not null
+
+ print ("\t",$u_int); #decimal (0) unsigned zerofill not null
+
+ print ("\t",$u_int); #decimal (254) unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal (0,0) not null
+
+ print ("\t",$decimal); #decimal(253,253) not null
+
+ print ("\t",$u_int); #decimal (0,0) unsigned not null
+
+ print ("\t",$decimal); #decimal (253,253) unsigned not null
+
+ print ("\t",$u_int); #decimal(0,0) zerofill not null
+
+ print ("\t",$decimal); #decimal(253,253) zerofill not null
+
+ print ("\t",$u_int); #decimal (0,0) unsigned zerofill not null
+
+ print ("\t",$decimal); #decimal (253,253) unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric not null
+
+ print ("\t",$u_int); #numeric unsigned not null
+
+ print ("\t",$u_int); #numeric zerofill not null
+
+ print ("\t",$u_int); #numeric unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric(0) not null
+
+ print ("\t",$s_int); #numeric(254) not null
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+
+
+# Tenth Table "tb10.txt"
+
+
+ $file = 'memory_tb2.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ $enum = 1;
+
+ $set = 1;
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ $s_time = "00:00:00";
+
+ $s_date = "1970-01-01";
+
+ $int=0;
+
+ $current_time = "838:59:59";
+
+ $current_date = "1000-01-00";
+
+ $current_year = 1901;
+
+ $u_current_float = 1.175494351e-38;
+
+ $s_current_float = -1.175494351e-38;
+
+ srand();
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $decimal = $count. "\." .$count;
+
+ $int = &get_next_int($int);
+
+ $enum = &get_next_enum($enum);
+
+ $set = &get_next_set($set);
+
+ $current_date = &get_next_date($current_date);
+
+ $current_time = &get_next_time($current_time);
+
+ $current_year = &get_next_year($current_year);
+
+ $u_current_float = &get_next_float($u_current_float);
+
+ $s_current_float = &get_next_float($s_current_float);
+
+ $s_time = &get_next_s_time($s_time);
+
+ $s_date = &get_next_s_date($s_date);
+
+ $datetime = &get_next_datetime($s_date,$s_time);
+
+ $timestamp = &get_next_timestamp($s_date,$s_time);
+
+
+ print ($u_int); #numeric (0) unsigned
+
+ print ("\t",$u_int); #numeric (254) unsigned
+
+ print ("\t",$u_int); #numeric (0) zerofill
+
+ print ("\t",$u_int); #numeric (254) zerofill
+
+ print ("\t",$u_int); #numeric (0) unsigned zerofill
+
+ print ("\t",$u_int); #numeric (254) unsigned zerofill
+
+ print ("\t",$s_int); #numeric (0,0)
+
+ print ("\t",$decimal); #numeric (253,253)
+
+ print ("\t",$u_int); #numeric (0,0) unsigned
+
+ print ("\t",$decimal); #numeric (253,253) unsigned
+
+ print ("\t",$u_int); #numeric (0,0) zerofill
+
+ print ("\t",$decimal); #numeric (253,253) zerofill
+
+ print ("\t",$u_int); #numeric (0,0) unsigned zerofill
+
+ print ("\t",$decimal); #numeric (253,253) unsigned zerofill
+
+ print ("\t",$s_current_float); #real
+
+ print ("\t",$u_current_float); #real unsigned
+
+ print ("\t",$u_current_float); #real zerofill
+
+ print ("\t",$u_current_float); #real unsigned zerofill
+
+ print ("\t",$s_current_float); #double
+
+ print ("\t",$u_current_float); #double unsigned
+
+ print ("\t",$u_current_float); #double zerofill
+
+ print ("\t",$u_current_float); #double unsigned zerofill
+
+ print ("\t",$s_current_float); #float not null
+
+ print ("\t",$u_current_float); #float unsigned not null
+
+ print ("\t",$u_current_float); #float zerofill not null
+
+ print ("\t",$u_current_float); #float unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float(0) not null
+
+ print ("\t",$s_current_float); #float(23) not null
+
+ print ("\t",$u_current_float); #float(0) unsigned not null
+
+ print ("\t",$u_current_float); #float(23) unsigned not null
+
+ print ("\t",$u_current_float); #float(0) zerofill not null
+
+ print ("\t",$u_current_float); #float(23) zerofill not null
+
+ print ("\t",$u_current_float); #float(0) unsigned zerofill not null
+
+ print ("\t",$u_current_float); #float(23) unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float(24) not null
+
+ print ("\t",$s_current_float); #float(53) not null
+
+ print ("\t",$u_current_float); #float(24) unsigned not null
+
+ print ("\t",$u_current_float); #float(53) unsigned not null
+
+ print ("\t",$u_current_float); #float(24) zerofill not null
+
+ print ("\t",$u_current_float); #float(53) zerofill not null
+
+ print ("\t",$u_current_float); #float(24) unsigned zerofill not null
+
+ print ("\t",$u_current_float); #float(53) unsigned zerofill not null
+
+ print ("\t",$current_date); #date not null
+
+ print ("\t",$current_time); #time not null
+
+ print ("\t",$datetime); #datetime not null
+
+ print ("\t",$timestamp); #timestamp not null
+
+ print ("\t",$current_year); #year not null
+
+ print ("\t",$current_year); #year(3) not null
+
+ print ("\t",$current_year); #year(4) not null
+
+ print ("\t",$enum); #enum("1enum","2enum") not null
+
+ print ("\t",$set); #set("1set","2set") not null
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+
+# Eleventh Table "tb11.txt"
+
+
+ $file = 'memory_tb3.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+ $u_int = 0;
+
+ srand();
+
+
+ #Write data to file
+
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+
+ $u_int++;
+
+ $char = &get_next_char($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+
+ print ($char); #char not null
+
+ print ("\t",$char); #char binary not null
+
+ print ("\t",$char); #char ascii not null
+
+# OBN - Added two strings to address the missing f121, f122 used in trigger testing
+# as char(50). In MyISAM, innodb they are text and tinytext
+ print ("\t",$char); #char (50)
+ print ("\t",$char); #char (50)
+# OBN - End of modification
+
+ print ("\t",$char); #binary not null
+
+ print ("\t",&random(127)); #tinyint not null
+
+ print ("\t",&random(255)); #tinyint unsigned not null
+
+ print ("\t",&random(127)); #tinyint zerofill not null
+
+ print ("\t",&random(255)); #tinyint unsigned zerofill not null
+
+ print ("\t",&random(32767)); #smallint not null
+
+ print ("\t",&random(65535)); #smallint unsigned not null
+
+ print ("\t",&random(32767)); #smallint zerofill not null
+
+ print ("\t",&random(65535)); #smallint unsigned zerofill not null
+
+ print ("\t",$s_int); #mediumint not null
+
+ print ("\t",$u_int); #mediumint unsigned not null
+
+ print ("\t",$u_int); #mediumint zerofill not null
+
+ print ("\t",$u_int); #mediumint unsigned zerofill not null
+
+ print ("\t",$s_int); #int not null
+
+ print ("\t",$u_int); #int unsigned not null
+
+ print ("\t",$u_int); #int zerofill not null
+
+ print ("\t",$u_int); #int unsigned zerofill not null
+
+ print ("\t",$s_int); #bigint not null
+
+ print ("\t",$u_int); #bigint unsigned not null
+
+ print ("\t",$u_int); #bigint zerofill not null
+
+ print ("\t",$u_int); #bigint unsigned zerofill not null
+
+ print ("\t",$s_int); #decimal not null
+
+ print ("\t",$u_int); #decimal unsigned not null
+
+ print ("\t",$u_int); #decimal zerofill not null
+
+ print ("\t",$u_int); #decimal unsigned zerofill
+
+ print ("\t",$s_int); #decimal(0)
+
+ print ("\t",$s_int); #decimal(254)
+
+ print ("\t",$u_int); #decimal (0) unsigned
+
+ print ("\t",$u_int); #decimal (254) unsigned
+
+ print ("\t",$u_int); #decimal(0) zerofill
+
+ print ("\t",$u_int); #decimal(254) zerofill
+
+ print ("\t",$u_int); #decimal (0) unsigned zerofill
+
+ print ("\t",$u_int); #decimal (254) unsigned zerofill
+
+ print ("\t",$s_int); #decimal (0,0)
+
+ print ("\t",$decimal); #decimal(253,253)
+
+ print ("\t",$u_int); #decimal (0,0) unsigned
+
+ print ("\t",$decimal); #decimal (253,253) unsigned
+
+ print ("\t",$u_int); #decimal(0,0) zerofill
+
+ print ("\t",$decimal); #decimal(253,253) zerofill
+
+ print ("\t",$u_int); #decimal (0,0) unsigned zerofill
+
+ print ("\t",$decimal); #decimal (253,253) unsigned zerofill
+
+ print ("\t",$s_int); #numeric
+
+ print ("\t",$u_int); #numeric unsigned
+
+ print ("\t",$u_int); #numeric zerofill
+
+ print ("\t",$u_int); #numeric unsigned zerofill
+
+ print ("\t",$s_int); #numeric(0)
+
+ print ("\t",$s_int); #numeric(254)
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+
+# Twelfth Table "tb12.txt"
+
+
+ $file = 'memory_tb4.txt';
+
+ open ( FILE_INPUT, ">$file");
+
+ $oldhandle = select(FILE_INPUT);
+
+
+ $enum = 1;
+
+ $ret_bit = 1;
+
+ $set = 1;
+
+ $s_int = 0;
+
+ $u_int = 0;
+
+ $s_time = "00:00:00";
+
+ $s_date = "1970-01-01";
+
+ $int=0;
+
+ $current_time = "838:59:59";
+
+ $current_date = "1000-01-00";
+
+ $current_year = 1901;
+
+ $u_current_float = 1.175494351e-38;
+
+ $s_current_float = -1.175494351e-38;
+
+ srand();
+
+
+ #Write data to file
+
+ for ($count=0; $count < $ARGV[0]; $count++)
+
+ {
+
+ $u_int++;
+
+# $bit = &get_next_bit(64);
+
+ $char = &get_next_char($count);
+
+ $char_0 = &get_next_char_0($count);
+
+ $char_55 = &get_next_char_55($count);
+
+ $char_90 = &get_next_char_90($count);
+
+ $char_100 = &get_next_char_100($count);
+
+ $char_255 = &get_next_char_255($count);
+
+ $varchar_500 = &get_next_varchar_500($count);
+
+ $longtext = &get_next_longtext($count);
+
+ $tinytext = &get_next_tinytext($count);
+
+ $s_int = &get_next_s_int($count,$ARGV[0]);
+
+ $decimal = $count. "\." .$count;
+
+ $int = &get_next_int($int);
+
+ $enum = &get_next_enum($enum);
+
+ $set = &get_next_set($set);
+
+ $current_date = &get_next_date($current_date);
+
+ $current_time = &get_next_time($current_time);
+
+ $current_year = &get_next_year($current_year);
+
+ $u_current_float = &get_next_float($u_current_float);
+
+ $s_current_float = &get_next_float($s_current_float);
+
+ $s_time = &get_next_s_time($s_time);
+
+ $s_date = &get_next_s_date($s_date);
+
+ $datetime = &get_next_datetime($s_date,$s_time);
+
+ $timestamp = &get_next_timestamp($s_date,$s_time);
+
+
+ print ($u_int); #numeric (0) unsigned not null
+
+ print ("\t",$u_int); #numeric (254) unsigned not null
+
+ print ("\t",$u_int); #numeric (0) zerofill not null
+
+ print ("\t",$u_int); #numeric (254) zerofill not null
+
+ print ("\t",$u_int); #numeric (0) unsigned zerofill not null
+
+ print ("\t",$u_int); #numeric (254) unsigned zerofill not null
+
+ print ("\t",$s_int); #numeric (0,0) not null
+
+ print ("\t",$decimal); #numeric (253,253) not null
+
+ print ("\t",$u_int); #numeric (0,0) unsigned not null
+
+ print ("\t",$decimal); #numeric (253,253) unsigned not null
+
+ print ("\t",$u_int); #numeric (0,0) zerofill not null
+
+ print ("\t",$decimal); #numeric (253,253) zerofill not null
+
+ print ("\t",$u_int); #numeric (0,0) unsigned zerofill not null
+
+ print ("\t",$decimal); #numeric (253,253) unsigned zerofill not null
+
+ print ("\t",$s_current_float); #real not null
+
+ print ("\t",$u_current_float); #real unsigned not null
+
+ print ("\t",$u_current_float); #real zerofill not null
+
+ print ("\t",$u_current_float); #real unsigned zerofill not null
+
+ print ("\t",$s_current_float); #double not null
+
+ print ("\t",$u_current_float); #double unsigned not null
+
+ print ("\t",$u_current_float); #double zerofill not null
+
+ print ("\t",$u_current_float); #double unsigned zerofill not null
+
+ print ("\t",$s_current_float); #float
+
+ print ("\t",$u_current_float); #float unsigned
+
+ print ("\t",$u_current_float); #float zerofill
+
+ print ("\t",$u_current_float); #float unsigned zerofill
+
+ print ("\t",$s_current_float); #float(0)
+
+ print ("\t",$s_current_float); #float(23)
+
+ print ("\t",$u_current_float); #float(0) unsigned
+
+ print ("\t",$u_current_float); #float(23) unsigned
+
+ print ("\t",$u_current_float); #float(0) zerofill
+
+ print ("\t",$u_current_float); #float(23) zerofill
+
+ print ("\t",$u_current_float); #float(0) unsigned zerofill
+
+ print ("\t",$u_current_float); #float(23) unsigned zerofill
+
+ print ("\t",$s_current_float); #float(24)
+
+ print ("\t",$s_current_float); #float(53)
+
+ print ("\t",$u_current_float); #float(24) unsigned
+
+ print ("\t",$u_current_float); #float(53) unsigned
+
+ print ("\t",$u_current_float); #float(24) zerofill
+
+ print ("\t",$u_current_float); #float(53) zerofill
+
+ print ("\t",$u_current_float); #float(24) unsigned zerofill
+
+ print ("\t",$u_current_float); #float(53) unsigned zerofill
+
+ print ("\t",$current_date); #date
+
+ print ("\t",$current_time); #time
+
+ print ("\t",$datetime); #datetime
+
+ print ("\t",$timestamp); #timestamp
+
+ print ("\t",$current_year); #year
+
+ print ("\t",$current_year); #year(3)
+
+ print ("\t",$current_year); #year(4)
+
+ print ("\t",$enum); #enum("1enum","2enum")
+
+ print ("\t",$set); #set("1set","2set")
+
+ print ("\t",$char_90); #char(95) unicode##
+
+ print ("\t",$char_255); #char(255) unicode##
+
+ print ("\t",$char_100); #char(130) binary##
+
+ print ("\t",$varchar_500); #varchar(25000) binary##
+
+ print ("\t",$char_0); #varbinary(0)##
+
+ print ("\t",$varchar_500); #varchar(1200) unicode##
+
+# print ("\t",$bit); #Bit(64)##
+
+ print ("\n");
+
+ }
+
+
+ select ($oldhandle);
+
+ close (FILE_INPUT);
+
+
+ }
+
+
+ else
+
+ {
+
+ &printusage;
+
+ }
+
+
+}
+
+
+
+#Subroutines START HERE
+
+
+sub get_next_geometry
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0V@\0\0\0\0\0V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0[@\0\0\0\0\0[@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0[@\0\0\0\0\0[@\0\0\0\0\0\0^@\0\0\0\0\0\0^@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0�@\0\0\0\0\0�@\0\0\0\0\0\0y@\0\0\0\0\0\0y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�@\0\0\0\0\0\0Y@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0@@\0\0\0\0\0@@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+
+sub get_next_point
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\09@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0A@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0\09@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0A@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0F@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0K@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0@P@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0�@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\09@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0@U@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0K@\0\0\0\0\0�@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0@P@\0\0\0\0\0�@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0�@\0\0\0\0\0�@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0@U@\0\0\0\0\0�@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0�@\0\0\0\0\0�@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_linestring
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0V@\0\0\0\0\0V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0[@\0\0\0\0\0[@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0[@\0\0\0\0\0[@\0\0\0\0\0\0^@\0\0\0\0\0\0^@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0�@\0\0\0\0\0�@\0\0\0\0\0\0y@\0\0\0\0\0\0y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�@\0\0\0\0\0\0Y@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0@@\0\0\0\0\0@@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+
+sub get_next_polygon
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0(@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\00@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\01@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\02@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\03@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\05@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\06@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0�\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\07@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0@@\0\0\0\0\0\0�\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\03@\0\0\0\0\0@@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\08@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_geometry_collection
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0(@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\00@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\01@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\02@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\03@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\05@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\06@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0�\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\07@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0@@\0\0\0\0\0\0�\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\03@\0\0\0\0\0@@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\08@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_multipoint
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0Q@\0\0\0\0\0Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0V@\0\0\0\0\0V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0�@\0\0\0\0\0\0Y@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_multilinestring
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D@\0\0\0\0\0\0D@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0V@\0\0\0\0\0V@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0[@\0\0\0\0\0[@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0[@\0\0\0\0\0[@\0\0\0\0\0\0^@\0\0\0\0\0\0^@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0�@\0\0\0\0\0�@\0\0\0\0\0\0y@\0\0\0\0\0\0y@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�@\0\0\0\0\0\0Y@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0@@\0\0\0\0\0@@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_multipolygon
+
+{
+
+ my($count) = @_;
+
+ $index = $count % 6 ;
+
+
+ @ascii = ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\04@\0\0\0\0\0\0�\0\0\0\0\0\0�\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\04@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0>@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0"@\0\0\0\0\0\0@\0\0\0\0\0\0@',
+
+'\N',
+
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0I@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0&@\0\0\0\0\0\0"@\0\0\0\0\0\0"@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0N@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0(@\0\0\0\0\0\0$@\0\0\0\0\0\0$@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0Q@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0*@\0\0\0\0\0\0&@\0\0\0\0\0\0&@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0T@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0,@\0\0\0\0\0\0(@\0\0\0\0\0\0(@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0V@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0.@\0\0\0\0\0\0*@\0\0\0\0\0\0*@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0Y@\0\0\0\0\0\0"@\0\0\0\0\0\0"@\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\00@\0\0\0\0\0\0,@\0\0\0\0\0\0,@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0i@\0\0\0\0\0\0$@\0\0\0\0\0\0$@\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\01@\0\0\0\0\0\0.@\0\0\0\0\0\0.@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0�@\0\0\0\0\0\0&@\0\0\0\0\0\0&@\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\02@\0\0\0\0\0\00@\0\0\0\0\0\00@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0y@\0\0\0\0\0\0(@\0\0\0\0\0\0(@\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\03@\0\0\0\0\0\01@\0\0\0\0\0\01@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0@@\0\0\0\0\0\0*@\0\0\0\0\0\0*@\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\04@\0\0\0\0\0\02@\0\0\0\0\0\02@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0@\0\0\0\0\0\0,@\0\0\0\0\0\0,@\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\05@\0\0\0\0\0\03@\0\0\0\0\0\03@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0�\0\0\0\0\0\0.@\0\0\0\0\0\0.@\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\06@\0\0\0\0\0\04@\0\0\0\0\0\04@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\0@\0\0\0\0\0\00@\0\0\0\0\0\00@\0\0\0\0\0\0\0\0\05@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\07@\0\0\0\0\0\05@\0\0\0\0\0\05@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0 @\0\0\0\0\0\01@\0\0\0\0\0\01@\0\0\0\0\0\0\0\0\06@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\08@\0\0\0\0\0\06@\0\0\0\0\0\06@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\0�\0\0\0\0\0@@\0\0\0\0\0\02@\0\0\0\0\0\02@\0\0\0\0\0\0\0\0\07@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\09@\0\0\0\0\0\07@\0\0\0\0\0\07@',
+
+'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0@@\0\0\0\0\0\0�\0\0\0\0\0@@\0\0\0\0\0@@\0\0\0\0\0\03@\0\0\0\0\0@@\0\0\0\0\0\03@\0\0\0\0\0\03@\0\0\0\0\0\0\0\0\08@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\0:@\0\0\0\0\0\08@\0\0\0\0\0\08@');
+
+
+ return($ascii[$index]);
+
+}
+
+
+sub get_next_int
+
+{
+
+ my($next_int) = @_;
+
+ if (($next_int>= 0) && ($next_int<= 255))
+
+ {
+
+ $next_int++;
+
+ }
+
+
+ else
+
+ {
+
+ $next_int = 0;
+
+ }
+
+ return($next_int);
+
+}
+
+
+
+sub get_next_enum
+
+{
+
+ my($next_enum) = @_;
+
+ if($next_enum == 1)
+
+ {
+
+ $next_enum = 2;
+
+ }
+
+ else
+
+ {
+
+ $next_enum = 1;
+
+ }
+
+
+
+ return($next_enum);
+
+}
+
+
+sub get_next_set
+
+{
+
+ my($next_set) = @_;
+
+ if($next_set == 3)
+
+ {
+
+ $next_set = 1;
+
+ }
+
+ else
+
+ {
+
+ $next_set++;
+
+ }
+
+
+
+ return($next_set);
+
+}
+
+
+sub get_next_bit
+
+{
+ my($col_size) = @_;
+
+ my($max_size) = $col_size / 8;
+
+# my($sp_char) = "\x01";
+
+ my($max_no) = 9 x $max_size;
+
+ if ($ret_bit < $max_no)
+ {
+
+ $ret_bit++;
+
+ }
+
+ else
+ {
+
+ $ret_bit = 1;
+
+ }
+
+ return($ret_bit);
+
+}
+
+
+sub get_next_char
+
+{
+ my($count) = @_;
+
+ my($index) = $count % 72;
+
+ @ascii = ('!','@','#','$','%','^','&','*','(',')','_','+','=','-','|','{','}','[',']',
+
+'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');
+
+
+ return($ascii[$index]);
+}
+
+
+
+sub get_next_char_0
+
+{
+ my($ret_string) = '';
+
+ return($ret_string);
+}
+
+
+sub get_next_char_55
+
+{
+ my($count) = @_;
+
+ my($local_count) = $count % 15;
+
+ my($ret_string) = '';
+
+ my($index) = $count % 72;
+
+ @ascii = ('!','@','#','$','%','^','&','*','(',')','_','+','=','-','|','{','}','[',']',
+
+'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');
+
+ for($loop_count=0;$loop_count <= $local_count; $loop_count++)
+
+ {
+
+ $ret_string = $ret_string.$ascii[$index];
+
+ $index = ($index + 1) % 72;
+
+ }
+
+ $ret_string = $count.$ret_string;
+
+ return($ret_string);
+
+}
+
+
+sub get_next_char_90
+
+{
+ my($count) = @_;
+
+ my($ret_string) = '';
+
+ my($local_count) = $count % 25;
+
+ my($index) = $count % 72;
+
+ @ascii = ('!','@','#','$','%','^','&','*','(',')','_','+','=','-','|','{','}','[',']',
+
+'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');
+
+
+ for($loop_count=0; $loop_count <= $local_count; $loop_count++)
+
+ {
+
+ $ret_string = $ret_string.$ascii[$index];
+
+ $index = ($index + 1) % 72;
+ }
+
+ $ret_string = $count.$ret_string;
+
+ return($ret_string);
+
+}
+
+
+sub get_next_char_100
+
+{
+ my($count) = @_;
+
+ my($local_count) = $count % 50;
+
+ my($ret_string) = '';
+
+ my($index) = $count % 72;
+
+ @ascii = ('!','@','#','$','%','^','&','*','(',')','_','+','=','-','|','{','}','[',']',
+
+'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');
+
+ for($loop_count=0; $loop_count <= $local_count; $loop_count++)
+
+ {
+
+ $ret_string = $ret_string.$ascii[$index];
+
+ $index = ($index + 1) % 72;
+ }
+
+ $ret_string = $count.$ret_string;
+
+ return($ret_string);
+
+}
+
+
+
+sub get_next_char_255
+
+{
+ my($count) = @_;
+
+ my($local_count) = $count % 125;
+
+ my($ret_string) = '';
+
+ my($index) = $count % 72;
+
+ @ascii = ('!','@','#','$','%','^','&','*','(',')','_','+','=','-','|','{','}','[',']',
+
+'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');
+
+ for($loop_count=0; $loop_count<$local_count; $loop_count++)
+
+ {
+
+ $ret_string = $ret_string.$ascii[$index];
+
+ $index = ($index + 1) % 72;
+ }
+
+ $ret_string = $count.$ret_string;
+
+ return($ret_string);
+
+}
+
+
+sub get_next_varchar_500
+{
+ my($count) = @_;
+
+ my($ret_string) = '';
+
+ my($local_count) = $count % 100;
+
+ my($index) = $count % 72;
+
+ @ascii = ('!','@','#','$','%','^','&','*','(',')','_','+','=','-','|','{','}','[',']',
+
+'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');
+
+ for($loop_count=0; $loop_count<$local_count; $loop_count++)
+
+ {
+
+ $ret_string = $ret_string.$ascii[$index];
+
+ $index = ($index + 1) % 72;
+ }
+
+ $ret_string = $count.$ret_string;
+
+ return($ret_string);
+
+}
+
+
+
+sub get_next_float
+
+{
+
+ my($next_float) = @_;
+
+ $next_float = $next_float + 1e-47;
+
+ return($next_float);
+
+}
+
+
+
+
+sub get_next_tinytext
+
+{
+
+ my($count) = @_;
+
+ my($default_char) = "a";
+
+ $index = $count % 20 ;
+
+
+ @ascii = ("\140","\141","\142","\143","\144","\145","\146","\147","\136","\137","\150",
+
+ "\151","\152","\153","\154","\155","\156","\157","\134","\135");
+
+
+ my($quotient) = $count / 100;
+
+ $quotient =~ s/\.[0-9]*// ;
+
+ $tinytext = $default_char.$ascii[$index].$quotient;
+
+
+ return($tinytext);
+
+}
+
+
+
+sub get_next_longtext
+
+{
+
+ my($count) = @_;
+
+ my($default_char) = "a";
+
+ $index = $count % 20 ;
+
+ $multp = $count % 100;
+
+ @ascii = ("\140","\141","\142","\143","\144","\145","\146","\147","\136","\137","\150",
+
+ "\151","\152","\153","\154","\155","\156","\157","\134","\135");
+
+
+ $longtext = $count.$ascii[$index].$default_char x $multp;
+
+ return($longtext);
+
+}
+
+
+
+sub get_next_year
+
+{
+
+ my($next_year) = @_;
+
+ if (($next_year >= 1901) && ($next_year < 2155))
+
+ {
+
+ $next_year++;
+
+ }
+
+
+ else
+
+ {
+
+ $next_year = 1901;
+
+ }
+
+ return($next_year);
+
+}
+
+
+
+sub get_next_datetime
+
+{
+
+ my($date,$time) = @_;
+
+ $datetime = $date." ".$time;
+
+ return($datetime);
+
+}
+
+
+
+sub get_next_s_int
+
+{
+
+ my($count,$maxsize) = @_;
+
+ $s_int = int($count - ($maxsize/2));
+
+ return($s_int);
+
+}
+
+
+
+
+sub get_next_timestamp
+
+{
+
+ my($date,$time) = @_;
+
+ my($pattern1) = "-";
+
+ my($pattern2) = ":";
+
+ @split_date = split(/$pattern1/,$date);
+
+ @split_time = split(/$pattern2/,$time);
+
+ $timestamp = "$split_date[0]"."$split_date[1]"."$split_date[2]"."$split_time[0]"."$split_time[1]"."$split_time[2]";
+
+ return($timestamp);
+}
+
+
+
+sub get_next_time
+
+{
+
+ my($time) = @_;
+
+ $pattern = ":";
+
+ @words = split(/$pattern/, $time);
+
+
+
+ $hour = $words[0];
+
+ $min = $words[1];
+
+ $sec = $words[2];
+
+
+
+#Boundary condition
+
+
+ if(($hour == -838)&&($min == 0)&&($sec == 0))
+
+ {
+
+ $hour = 838;
+
+ $min = 59;
+
+ $sec = 59;
+
+ }
+
+
+ if($min > 0)
+
+ {
+
+ if($sec > 0)
+
+ {
+
+ $sec-- ;
+
+ }
+
+ else
+
+ {
+
+ $sec = 59;
+
+ $min-- ;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ $hour-- ;
+
+ $min = 59;
+
+ $sec = 59;
+
+ }
+
+
+ if($hour !~ /[0-9][0-9]/)
+
+ {
+
+ $hour = "0".$hour;
+
+ }
+
+
+ if($min !~ /[0-9][0-9]/)
+
+ {
+
+ $min = "0".$min;
+
+ }
+
+
+
+ if($sec !~ /[0-9][0-9]/)
+
+ {
+
+ $sec = "0".$sec;
+
+ }
+
+
+ $time = "$hour".":"."$min".":"."$sec";
+
+ return($time);
+
+}
+
+
+
+sub get_next_date
+
+{
+
+ my($date) = @_ ;
+
+ $pattern = '-';
+
+ @words = split(/$pattern/, $date);
+
+
+ $year = $words[0];
+
+ $month = $words[1];
+
+ $day = $words[2];
+
+
+ if (($month == 2) )
+
+ {
+
+ if($day == 28)
+
+ {
+
+ if($year =~ /[0-9][0-9]00/)
+
+ {
+
+ if($year % 400 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ if($year % 4 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+ }
+
+
+ elsif($day == 29)
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+ }
+
+
+ elsif($day == 30)
+
+ {
+
+ if (($month == 1) || ($month == 3) || ($month == 5) || ($month == 7) || ($month == 8) || ($month == 10) || ($month == 12))
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+ elsif($day == 31)
+
+ {
+
+ if ($month == 12)
+
+ {
+
+ $day = 01;
+
+ $month = 01;
+
+
+
+ if($year < 9999)
+
+ {
+
+ $year++;
+
+ }
+
+ else
+
+ {
+
+ $year = 1000;
+
+ }
+
+ }
+
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+
+ if($month !~ /[0-9][0-9]/)
+
+ {
+
+ $month = "0".$month;
+
+ }
+
+
+
+ if($day !~ /[0-9][0-9]/)
+
+ {
+
+ $day = "0".$day;
+
+ }
+
+
+
+ $date = "$year"."-"."$month"."-"."$day";
+
+
+
+ return($date);
+
+}
+
+
+
+
+sub get_next_s_date
+
+{
+
+ my($date) = @_ ;
+
+ $pattern = '-';
+
+ @words = split(/$pattern/, $date);
+
+
+ $year = "$words[0]";
+
+ $month = "$words[1]";
+
+ $day = "$words[2]";
+
+
+ if (($month == "02") )
+
+ {
+
+ if($day == "28")
+
+ {
+
+ if($year =~ /[0-9][0-9]00/)
+
+ {
+
+ if($year % 400 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ if($year % 4 == 0)
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = 01;
+
+ $month++;
+
+ }
+
+ }
+
+ }
+
+
+
+ elsif($day == "29")
+
+ {
+
+ $day = "01";
+
+ $month++;
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+ }
+
+
+ elsif($day == "30")
+
+ {
+
+ if (($month == "01") || ($month == "03") || ($month == "05") || ($month == "07") || ($month == "08") || ($month == "10") || ($month == "12"))
+
+ {
+
+ $day++;
+
+ }
+
+ else
+
+ {
+
+ $day = "01";
+
+ $month++;
+
+ }
+
+ }
+
+
+ elsif($day == "31")
+
+ {
+
+ if ($month == "12")
+
+ {
+
+ $day = "01";
+
+ $month = "01";
+
+
+
+ if($year < "2036")
+
+ {
+
+ $year = $year + "0001";
+
+ }
+
+ else
+
+ {
+
+ $year = "1970";
+
+ }
+
+ }
+
+
+ else
+
+ {
+
+ $day = "01";
+
+ $month++;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ $day++;
+
+ }
+
+
+ if($month !~ /[0-9][0-9]/)
+
+ {
+
+ $month = "0".$month;
+
+ }
+
+
+
+ if($day !~ /[0-9][0-9]/)
+
+ {
+
+ $day = "0".$day;
+
+ }
+
+
+
+ $date = "$year"."-"."$month"."-"."$day";
+
+
+
+ return($date);
+
+}
+
+
+
+
+sub get_next_s_time
+
+{
+
+ my($time) = @_;
+
+ $pattern = ":";
+
+ @words = split(/$pattern/, $time);
+
+
+
+ $hour = "$words[0]";
+
+ $min = "$words[1]";
+
+ $sec = "$words[2]";
+
+
+
+ #Boundary condition
+
+
+ if(($hour == "23")&&($min == "59")&&($sec == "59"))
+
+ {
+
+ $hour = "00";
+
+ $min = "00";
+
+ $sec = "00";
+
+ }
+
+
+ if($min < "59")
+
+ {
+
+ if($sec < "59")
+
+ {
+
+ $sec = $sec + "01";
+
+ }
+
+ else
+
+ {
+
+ $sec = "00";
+
+ $min = $min + "01" ;
+
+ }
+
+ }
+
+
+
+ else
+
+ {
+
+ $hour = $hour + "01" ;
+
+ $min = "00";
+
+ $sec = "00";
+
+ }
+
+
+ if($hour !~ /[0-9][0-9]/)
+
+ {
+
+ $hour = "0".$hour;
+
+ }
+
+
+ if($min !~ /[0-9][0-9]/)
+
+ {
+
+ $min = "0".$min;
+
+ }
+
+
+
+ if($sec !~ /[0-9][0-9]/)
+
+ {
+
+ $sec = "0".$sec;
+
+ }
+
+
+ $time = "$hour".":"."$min".":"."$sec";
+
+
+
+ return($time);
+
+}
+
+
+
+
+sub printusage
+
+{
+
+ print "\n\nUsage: Perl DataGen.pl <Rowcount> <Storage Engine>";
+
+ print "\n\n<Rowcount>: The number of rows in the table " .
+
+ "\n<Storage Engine>: The storage engine parameter" .
+
+ " will be of the following types:" .
+
+ "\n\t\t InnoDB | MyIsam | Memory" .
+
+ "\n\nE.g. Perl DataGen.pl 5000 InnoDB" .
+
+ "\n\nThis will generate 4 text files containing 5000" .
+
+ " records each for the 4 types of InnoDB tables.\n\n";
+
+}
+
+
+
+sub random
+
+{
+
+ my($limit) = @_ ;
+
+ $random = int(rand($limit));
+
+ return($random);
+
+}
+
diff --git a/mysql-test/suite/funcs_1/r/datadict_help_tables_build.result b/mysql-test/suite/funcs_1/r/datadict_help_tables_build.result
new file mode 100644
index 00000000000..c81063b6bb2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/datadict_help_tables_build.result
@@ -0,0 +1,22 @@
+DELETE FROM mysql.help_category LIMIT <number>;
+DELETE FROM mysql.help_keyword LIMIT <number>;
+DELETE FROM mysql.help_relation LIMIT <number>;
+DELETE FROM mysql.help_topic LIMIT <number>;
+SELECT * FROM INFORMATION_SCHEMA.TABLES
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL mysql help_category BASE TABLE MyISAM 10 Fixed 30 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
+NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 320 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
+NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 640 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
+NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 380 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
+SELECT * FROM INFORMATION_SCHEMA.STATISTICS
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 30 NULL NULL BTREE
+NULL mysql help_category 0 mysql name 1 name A 30 NULL NULL BTREE
+NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 320 NULL NULL BTREE
+NULL mysql help_keyword 0 mysql name 1 name A 320 NULL NULL BTREE
+NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
+NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 640 NULL NULL BTREE
+NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 380 NULL NULL BTREE
+NULL mysql help_topic 0 mysql name 1 name A 380 NULL NULL BTREE
diff --git a/mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result b/mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result
new file mode 100644
index 00000000000..5a7381e9592
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result
@@ -0,0 +1,18 @@
+SELECT * FROM INFORMATION_SCHEMA.TABLES
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL mysql help_category BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
+NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
+NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
+NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
+SELECT * FROM INFORMATION_SCHEMA.STATISTICS
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
+NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
+NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
+NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
+NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
+NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
+NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
+NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
diff --git a/mysql-test/suite/funcs_1/r/innodb__datadict.result b/mysql-test/suite/funcs_1/r/innodb__datadict.result
new file mode 100644
index 00000000000..c3bdca3ff0a
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb__datadict.result
@@ -0,0 +1,12914 @@
+
+.
+. It is intended that the 3 <engine>__datadict.test files are named this way to be
+. sure they are - in a *full run* of the suite - the first tests done for each
+. storage engine. Using two _ and the order of processing in mysql-test-run.pl
+. ensures this in an easy way.
+.
+. If needed a restart could be implemented later between the storage engines if
+. values changes in the result depending from the position where the
+. *__datadict.test are started. This can be a result of showing e.g. maximum
+. values of the number of rows of tables.
+.
+. This .result file has been checked OK with Linux 5.0.48,
+. build tree ChangeSet@1.2477.6.3, 2007-07-30
+. except that the not fixed Bug#30020 causes a difference.
+.
+--------------------------------------------------------------------------------
+
+FIXME: There are subtests that are switched off due to known bugs:
+------------------------------------------------------------------
+SELECT 1 AS "have_bug_11589";
+have_bug_11589
+1
+
+There are some statements where the ps-protocol is switched off.
+This may come from the bug listed below, ir from other problems.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+DROP DATABASE IF EXISTS test1;
+CREATE DATABASE test1;
+USE test;
+drop table if exists tb1 ;
+create table tb1 (
+f1 char(0),
+f2 char(0) binary,
+f3 char(0) ascii,
+f4 tinytext unicode,
+f5 text,
+f6 mediumtext,
+f7 longtext,
+f8 tinyblob,
+f9 blob,
+f10 mediumblob,
+f11 longblob,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal,
+f34 decimal unsigned,
+f35 decimal zerofill,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = innodb;
+Warnings:
+Note 1265 Data truncated for column 'f36' at row 1
+Note 1265 Data truncated for column 'f37' at row 1
+Note 1265 Data truncated for column 'f38' at row 1
+Note 1265 Data truncated for column 'f39' at row 1
+Note 1265 Data truncated for column 'f40' at row 1
+Note 1265 Data truncated for column 'f41' at row 1
+Note 1265 Data truncated for column 'f42' at row 1
+Note 1265 Data truncated for column 'f43' at row 1
+Note 1265 Data truncated for column 'f44' at row 1
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+drop table if exists tb4;
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f235 char(0) unicode,
+f236 char(90),
+f237 char(255) ascii,
+f238 varchar(0),
+f239 varchar(20000) binary,
+f240 varchar(2000) unicode,
+f241 char(100) unicode
+) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ;
+USE test1;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ;
+USE test;
+USE test;
+DROP TABLE IF EXISTS t1, t2, t4, t10, t11;
+CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb;
+CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb;
+CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb;
+CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb;
+CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11;
+drop TABLE if exists t3;
+CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = innodb;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3;
+drop database if exists test4;
+CREATE database test4;
+use test4;
+CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6;
+use test;
+drop TABLE if exists t7, t8;
+CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = innodb;
+CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = innodb;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+drop TABLE if exists t9;
+CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = innodb;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9;
+use information_schema;
+
+root@localhost information_schema
+
+Testcase 3.2.1.1:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE VIEW v1 AS SELECT * FROM information_schema.tables;
+CREATE OR REPLACE VIEW db_datadict.vu1 as
+SELECT grantee AS u
+FROM information_schema.user_privileges;
+CREATE OR REPLACE VIEW db_datadict.vu as
+SELECT DISTINCT u,
+SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 )
+AS server,
+SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3,
+LENGTH( SUBSTRING( u,
+LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 )
+AS Server_Clean
+FROM db_datadict.vu1;
+SELECT * FROM db_datadict.vu order by u;
+u server Server_Clean
+'root'@'127.0.0.1' 127.0.0.1' 127.0.0.1
+'root'@'<SERVER_NAME>' <SERVER_NAME>' <SERVER_NAME>
+'root'@'localhost' localhost' localhost
+CREATE PROCEDURE db_datadict.sp_1()
+BEGIN
+SELECT * FROM db_datadict.v1;
+END//
+USE information_schema;
+SHOW tables;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+select * from schemata ORDER BY 2 DESC, 1 ASC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test4 latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+SELECT * FROM tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME CHARACTER_SETS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATIONS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMNS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMN_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME KEY_COLUMN_USAGE
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME ROUTINES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMATA
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMA_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME STATISTICS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_CONSTRAINTS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TRIGGERS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME USER_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME VIEWS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+SELECT * FROM tables
+WHERE NOT( table_schema = 'information_schema')
+AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME v1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME columns_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Column privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME db
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 2
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME func
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT User defined functions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME host
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Host privileges; Merged with database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME proc
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 1
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Stored Procedures
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME procs_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Procedure privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME tables_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Table privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 5
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT 6
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_leap_second
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 22
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Leap seconds information for time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_name
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 6
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone names
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 393
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transitions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition_type
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 31
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transition types
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME user
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 3
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Users and global privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t1
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t10
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t11
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t2
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t3
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t4
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t7
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t8
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t9
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb1
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb3
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb4
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test1
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test4
+TABLE_NAME t6
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from schemata s inner join tables t
+ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+catalog_name schema_name default_character_set_name table_type engine
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+select * from columns;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL db_datadict v1 TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references
+NULL db_datadict v1 TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select,insert,update,references
+NULL db_datadict v1 TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select,insert,update,references
+NULL db_datadict v1 TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select,insert,update,references
+NULL db_datadict vu u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references
+NULL db_datadict vu server 2 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references
+NULL db_datadict vu Server_Clean 3 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references
+NULL db_datadict vu1 u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references
+NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
+NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
+NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
+NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
+NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
+NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
+NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
+NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
+NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references
+NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
+NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
+NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references
+NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
+NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
+NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
+NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
+NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
+NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
+NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references
+NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select * from character_sets;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+latin1 latin1_swedish_ci cp1252 West European 1
+latin2 latin2_general_ci ISO 8859-2 Central European 1
+swe7 swe7_swedish_ci 7bit Swedish 1
+ascii ascii_general_ci US ASCII 1
+ujis ujis_japanese_ci EUC-JP Japanese 3
+sjis sjis_japanese_ci Shift-JIS Japanese 2
+hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
+tis620 tis620_thai_ci TIS620 Thai 1
+euckr euckr_korean_ci EUC-KR Korean 2
+koi8u koi8u_general_ci KOI8-U Ukrainian 1
+gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
+greek greek_general_ci ISO 8859-7 Greek 1
+cp1250 cp1250_general_ci Windows Central European 1
+gbk gbk_chinese_ci GBK Simplified Chinese 2
+latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
+armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
+utf8 utf8_general_ci UTF-8 Unicode 3
+ucs2 ucs2_general_ci UCS-2 Unicode 2
+cp866 cp866_general_ci DOS Russian 1
+keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
+macce macce_general_ci Mac Central European 1
+macroman macroman_general_ci Mac West European 1
+cp852 cp852_general_ci DOS Central European 1
+latin7 latin7_general_ci ISO 8859-13 Baltic 1
+cp1251 cp1251_general_ci Windows Cyrillic 1
+cp1256 cp1256_general_ci Windows Arabic 1
+cp1257 cp1257_general_ci Windows Baltic 1
+binary binary Binary pseudo charset 1
+geostd8 geostd8_general_ci GEOSTD8 Georgian 1
+cp932 cp932_japanese_ci SJIS for Windows Japanese 2
+eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
+select sum(id) from collations;
+sum(id)
+10741
+select collation_name, character_set_name into @x,@y
+from collation_character_set_applicability limit 1;
+select @x, @y;
+@x @y
+big5_chinese_ci big5
+select * from routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+select count(*) from routines;
+count(*)
+1
+select * from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 3 type A 1 NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 0 NULL NULL BTREE
+NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE
+NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE
+NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE
+select * from views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER
+NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER
+select * from user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select * from schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+select * from table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from column_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+NULL mysql PRIMARY mysql help_keyword PRIMARY KEY
+NULL mysql name mysql help_keyword UNIQUE
+NULL mysql PRIMARY mysql help_relation PRIMARY KEY
+NULL mysql PRIMARY mysql help_topic PRIMARY KEY
+NULL mysql name mysql help_topic UNIQUE
+NULL mysql PRIMARY mysql host PRIMARY KEY
+NULL mysql PRIMARY mysql proc PRIMARY KEY
+NULL mysql PRIMARY mysql procs_priv PRIMARY KEY
+NULL mysql PRIMARY mysql tables_priv PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY
+NULL mysql PRIMARY mysql user PRIMARY KEY
+select * from key_column_usage;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL
+select count(*) as max_recs from key_column_usage;
+max_recs
+40
+select max(cardinality) from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+max(cardinality)
+393
+select concat("View '",
+table_name, "' is associated with the database '", table_schema, "'.")
+AS "Who is Who for the Views"
+ from views;
+Who is Who for the Views
+View 'v1' is associated with the database 'db_datadict'.
+View 'vu' is associated with the database 'db_datadict'.
+View 'vu1' is associated with the database 'db_datadict'.
+select concat("Table or view '", table_name,
+"' is associated with the database '", table_schema, "'.") as "Who is Who"
+ from tables;
+Who is Who
+Table or view 'CHARACTER_SETS' is associated with the database 'information_schema'.
+Table or view 'COLLATIONS' is associated with the database 'information_schema'.
+Table or view 'COLLATION_CHARACTER_SET_APPLICABILITY' is associated with the database 'information_schema'.
+Table or view 'COLUMNS' is associated with the database 'information_schema'.
+Table or view 'COLUMN_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'KEY_COLUMN_USAGE' is associated with the database 'information_schema'.
+Table or view 'ROUTINES' is associated with the database 'information_schema'.
+Table or view 'SCHEMATA' is associated with the database 'information_schema'.
+Table or view 'SCHEMA_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'STATISTICS' is associated with the database 'information_schema'.
+Table or view 'TABLES' is associated with the database 'information_schema'.
+Table or view 'TABLE_CONSTRAINTS' is associated with the database 'information_schema'.
+Table or view 'TABLE_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'TRIGGERS' is associated with the database 'information_schema'.
+Table or view 'USER_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'VIEWS' is associated with the database 'information_schema'.
+Table or view 'v1' is associated with the database 'db_datadict'.
+Table or view 'vu' is associated with the database 'db_datadict'.
+Table or view 'vu1' is associated with the database 'db_datadict'.
+Table or view 'columns_priv' is associated with the database 'mysql'.
+Table or view 'db' is associated with the database 'mysql'.
+Table or view 'func' is associated with the database 'mysql'.
+Table or view 'help_category' is associated with the database 'mysql'.
+Table or view 'help_keyword' is associated with the database 'mysql'.
+Table or view 'help_relation' is associated with the database 'mysql'.
+Table or view 'help_topic' is associated with the database 'mysql'.
+Table or view 'host' is associated with the database 'mysql'.
+Table or view 'proc' is associated with the database 'mysql'.
+Table or view 'procs_priv' is associated with the database 'mysql'.
+Table or view 'tables_priv' is associated with the database 'mysql'.
+Table or view 'time_zone' is associated with the database 'mysql'.
+Table or view 'time_zone_leap_second' is associated with the database 'mysql'.
+Table or view 'time_zone_name' is associated with the database 'mysql'.
+Table or view 'time_zone_transition' is associated with the database 'mysql'.
+Table or view 'time_zone_transition_type' is associated with the database 'mysql'.
+Table or view 'user' is associated with the database 'mysql'.
+Table or view 't1' is associated with the database 'test'.
+Table or view 't10' is associated with the database 'test'.
+Table or view 't11' is associated with the database 'test'.
+Table or view 't2' is associated with the database 'test'.
+Table or view 't3' is associated with the database 'test'.
+Table or view 't4' is associated with the database 'test'.
+Table or view 't7' is associated with the database 'test'.
+Table or view 't8' is associated with the database 'test'.
+Table or view 't9' is associated with the database 'test'.
+Table or view 'tb1' is associated with the database 'test'.
+Table or view 'tb2' is associated with the database 'test'.
+Table or view 'tb3' is associated with the database 'test'.
+Table or view 'tb4' is associated with the database 'test'.
+Table or view 'tb2' is associated with the database 'test1'.
+Table or view 't6' is associated with the database 'test4'.
+select grantee as "user's having select privilege",
+substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+from user_privileges where privilege_type = 'select'
+ order by grantee;
+user's having select privilege substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+'root'@'127.0.0.1' '127.0.0.1'
+'root'@'<SERVER_NAME>' '<SERVER_NAME>'
+'root'@'localhost' 'localhost'
+select all table_schema from schema_privileges limit 0,5;
+table_schema
+test
+test
+test
+test
+test
+select distinct(privilege_type) from table_privileges;
+privilege_type
+select * from column_privileges
+group by table_schema having table_schema = 'db_datadict';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from table_constraints limit 0,5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select count(*) as max_recs from key_column_usage limit 0,5;
+max_recs
+40
+select information_schema.tables.table_name as "table name",
+count(distinct(column_name)) as "no of columns in the table"
+ from information_schema.tables left outer join information_schema.columns on
+information_schema.tables.table_name = information_schema.columns.table_name
+group by information_schema.tables.table_name;
+table name no of columns in the table
+CHARACTER_SETS 4
+COLLATIONS 6
+COLLATION_CHARACTER_SET_APPLICABILITY 2
+COLUMNS 19
+columns_priv 7
+COLUMN_PRIVILEGES 7
+db 20
+func 4
+help_category 4
+help_keyword 2
+help_relation 2
+help_topic 6
+host 19
+KEY_COLUMN_USAGE 12
+proc 16
+procs_priv 8
+ROUTINES 20
+SCHEMATA 5
+SCHEMA_PRIVILEGES 5
+STATISTICS 15
+t1 6
+t10 6
+t11 6
+t2 6
+t3 3
+t4 6
+t6 6
+t7 4
+t8 4
+t9 3
+TABLES 21
+tables_priv 8
+TABLE_CONSTRAINTS 6
+TABLE_PRIVILEGES 6
+tb1 58
+tb2 51
+tb3 58
+tb4 58
+time_zone 2
+time_zone_leap_second 2
+time_zone_name 2
+time_zone_transition 3
+time_zone_transition_type 5
+TRIGGERS 19
+user 37
+USER_PRIVILEGES 4
+v1 21
+VIEWS 8
+vu 3
+vu1 1
+
+root: simple select to check all - and never forget some - tables
+-----------------------------------------------------------------
+SELECT * FROM schemata LIMIT 1;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+SELECT * FROM tables LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL utf8_general_ci NULL #CO#
+SELECT * FROM columns LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+SELECT * FROM character_sets LIMIT 1;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+SELECT * FROM collations LIMIT 1;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+SELECT * FROM collation_character_set_applicability LIMIT 1;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+SELECT * FROM routines LIMIT 1;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER <Created> <Last_Altered> root@localhost
+SELECT * FROM statistics LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+SELECT * FROM views LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+SELECT * FROM user_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'localhost' NULL SELECT YES
+SELECT * FROM schema_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+SELECT * FROM table_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM column_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM table_constraints LIMIT 1;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+SELECT * FROM key_column_usage LIMIT 1;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+SELECT * FROM triggers LIMIT 1;
+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
+SELECT * FROM parameters LIMIT 1;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+SELECT * FROM referential_constraints LIMIT 1;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+use db_datadict;
+select * from schemata;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+select * from tables;
+ERROR 42S02: Table 'db_datadict.tables' doesn't exist
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from schemata s inner join tables t
+ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+select * from columns limit 0, 5;
+ERROR 42S02: Table 'db_datadict.columns' doesn't exist
+select * from character_sets limit 0, 5;
+ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist
+select * from collations limit 0, 5;
+ERROR 42S02: Table 'db_datadict.collations' doesn't exist
+select * from collation_character_set_applicability limit 0, 5;
+ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist
+select * from routines limit 0, 5;
+ERROR 42S02: Table 'db_datadict.routines' doesn't exist
+select * from statistics limit 0, 5;
+ERROR 42S02: Table 'db_datadict.statistics' doesn't exist
+select * from views limit 0, 5;
+ERROR 42S02: Table 'db_datadict.views' doesn't exist
+select * from user_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist
+select * from schema_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist
+select * from table_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist
+select * from column_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist
+select * from table_constraints limit 0, 5;
+ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist
+select * from key_column_usage limit 0, 5;
+ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist
+
+will fail due to missing database name
+--------------------------------------
+
+known error 1146:
+-----------------
+SELECT * FROM schemata ;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT * FROM tables ;
+ERROR 42S02: Table 'db_datadict.tables' doesn't exist
+SELECT * FROM columns ;
+ERROR 42S02: Table 'db_datadict.columns' doesn't exist
+SELECT * FROM character_sets ;
+ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist
+SELECT * FROM collations ;
+ERROR 42S02: Table 'db_datadict.collations' doesn't exist
+SELECT * FROM collation_character_set_applicability ;
+ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist
+SELECT * FROM routines ;
+ERROR 42S02: Table 'db_datadict.routines' doesn't exist
+SELECT * FROM statistics ;
+ERROR 42S02: Table 'db_datadict.statistics' doesn't exist
+SELECT * FROM views ;
+ERROR 42S02: Table 'db_datadict.views' doesn't exist
+SELECT * FROM user_privileges ;
+ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist
+SELECT * FROM schema_privileges ;
+ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist
+SELECT * FROM table_privileges ;
+ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist
+SELECT * FROM column_privileges ;
+ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist
+SELECT * FROM table_constraints ;
+ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist
+SELECT * FROM key_column_usage ;
+ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist
+SELECT * FROM triggers ;
+ERROR 42S02: Table 'db_datadict.triggers' doesn't exist
+select * from information_schema.schemata ORDER BY 2 DESC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test4 latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME CHARACTER_SETS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATIONS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMNS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMN_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME KEY_COLUMN_USAGE
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME ROUTINES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMATA
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMA_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME STATISTICS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_CONSTRAINTS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TRIGGERS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME USER_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME VIEWS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema')
+AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME v1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME columns_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Column privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME db
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 2
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME func
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT User defined functions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME host
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Host privileges; Merged with database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME proc
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 1
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Stored Procedures
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME procs_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Procedure privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME tables_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Table privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 5
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT 6
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_leap_second
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 22
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Leap seconds information for time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_name
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 6
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone names
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 393
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transitions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition_type
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 31
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transition types
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME user
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 3
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Users and global privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t1
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t10
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t11
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t2
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t3
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t4
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t7
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t8
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t9
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb1
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb3
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb4
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test1
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+TABLE_CATALOG NULL
+TABLE_SCHEMA test4
+TABLE_NAME t6
+TABLE_TYPE BASE TABLE
+ENGINE InnoDB
+VERSION 10
+ROW_FORMAT Compact
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT InnoDB free: 3072 kB
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from information_schema.schemata s inner join information_schema.tables t
+ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+catalog_name schema_name default_character_set_name table_type engine
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE InnoDB
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE InnoDB
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE InnoDB
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE InnoDB
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE InnoDB
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE InnoDB
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+select * from information_schema.columns limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+select * from information_schema.character_sets limit 0, 5;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+select * from information_schema.collations limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+big5_bin big5 84 Yes 1
+dec8_swedish_ci dec8 3 Yes 0
+dec8_bin dec8 69 0
+cp850_general_ci cp850 4 Yes 0
+select * from information_schema.collation_character_set_applicability limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+select * from information_schema.routines limit 0, 5;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+select * from information_schema.statistics limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+select * from information_schema.views limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER
+NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER
+select * from information_schema.user_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL UPDATE YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL CREATE YES
+select * from information_schema.schema_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+select * from information_schema.table_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.column_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.table_constraints limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select * from information_schema.key_column_usage limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+select count(*) as max_recs from information_schema.key_column_usage limit 0, 5;
+max_recs
+40
+
+root: check with db name
+------------------------
+SELECT COUNT(*) FROM information_schema. schemata ;
+COUNT(*)
+6
+SELECT COUNT(*) FROM information_schema. tables ;
+COUNT(*)
+51
+SELECT COUNT(*) FROM information_schema. columns ;
+COUNT(*)
+657
+SELECT COUNT(*) FROM information_schema. character_sets ;
+COUNT(*)
+36
+SELECT COUNT(*) FROM information_schema. collations ;
+COUNT(*)
+126
+SELECT COUNT(*) FROM information_schema. collation_character_set_applicability ;
+COUNT(*)
+126
+SELECT COUNT(*) FROM information_schema. routines ;
+COUNT(*)
+1
+SELECT COUNT(*) FROM information_schema. statistics ;
+COUNT(*)
+43
+SELECT COUNT(*) FROM information_schema. views ;
+COUNT(*)
+3
+SELECT COUNT(*) FROM information_schema. user_privileges ;
+COUNT(*)
+75
+SELECT COUNT(*) FROM information_schema. schema_privileges ;
+COUNT(*)
+28
+SELECT COUNT(*) FROM information_schema. table_privileges ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. column_privileges ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. table_constraints ;
+COUNT(*)
+20
+SELECT COUNT(*) FROM information_schema. key_column_usage ;
+COUNT(*)
+40
+SELECT COUNT(*) FROM information_schema. triggers ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. parameters ;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+SELECT COUNT(*) FROM information_schema. referential_constraints ;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+USE db_datadict;
+DROP VIEW v1, vu1, vu;
+DROP PROCEDURE db_datadict.sp_1;
+USE information_schema;
+
+Testcase 3.2.1.2:
+--------------------------------------------------------------------------------
+select catalog_name, schema_name, default_character_set_name
+from schemata where schema_name like '%s%';
+catalog_name schema_name default_character_set_name
+NULL information_schema utf8
+NULL mysql latin1
+NULL test latin1
+NULL test1 latin1
+NULL test4 latin1
+select count(*) as tot_tabs from tables;
+tot_tabs
+48
+select count(*) as the_cols from columns;
+the_cols
+632
+select max(maxlen) as the_max from character_sets;
+the_max
+3
+select * from collations order by id asc limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+latin2_czech_cs latin2 2 Yes 4
+dec8_swedish_ci dec8 3 Yes 0
+cp850_general_ci cp850 4 Yes 0
+latin1_german1_ci latin1 5 Yes 1
+select * from collation_character_set_applicability
+order by character_set_name desc, collation_name limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME
+utf8_bin utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_esperanto_ci utf8
+utf8_estonian_ci utf8
+select routine_definition from routines;
+routine_definition
+select * from statistics where table_name not like 'help_%'
+group by index_name asc limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
+from views;
+view_info
+select concat(table_schema, ', ', table_name) "Table_info"
+ from tables ORDER BY 1;
+Table_info
+information_schema, CHARACTER_SETS
+information_schema, COLLATIONS
+information_schema, COLLATION_CHARACTER_SET_APPLICABILITY
+information_schema, COLUMNS
+information_schema, COLUMN_PRIVILEGES
+information_schema, KEY_COLUMN_USAGE
+information_schema, ROUTINES
+information_schema, SCHEMATA
+information_schema, SCHEMA_PRIVILEGES
+information_schema, STATISTICS
+information_schema, TABLES
+information_schema, TABLE_CONSTRAINTS
+information_schema, TABLE_PRIVILEGES
+information_schema, TRIGGERS
+information_schema, USER_PRIVILEGES
+information_schema, VIEWS
+mysql, columns_priv
+mysql, db
+mysql, func
+mysql, help_category
+mysql, help_keyword
+mysql, help_relation
+mysql, help_topic
+mysql, host
+mysql, proc
+mysql, procs_priv
+mysql, tables_priv
+mysql, time_zone
+mysql, time_zone_leap_second
+mysql, time_zone_name
+mysql, time_zone_transition
+mysql, time_zone_transition_type
+mysql, user
+test, t1
+test, t10
+test, t11
+test, t2
+test, t3
+test, t4
+test, t7
+test, t8
+test, t9
+test, tb1
+test, tb2
+test, tb3
+test, tb4
+test1, tb2
+test4, t6
+select distinct grantee from user_privileges order by grantee, privilege_type;
+grantee
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+select * from schema_privileges where table_catalog is null limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+select * from table_privileges where grantee like '%r%' limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from column_privileges where table_catalog is not null limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select HIGH_PRIORITY * from table_constraints
+group by constraint_name desc limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select sum(ordinal_position) from key_column_usage;
+sum(ordinal_position)
+77
+select * from schemata limit 0,5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+select * from schemata limit 0,5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+select distinct grantee from user_privileges;
+grantee
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+select all grantee from user_privileges order by grantee, privilege_type;
+grantee
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+select id , character_set_name from collations order by id asc limit 10;
+id character_set_name
+1 big5
+2 latin2
+3 dec8
+4 cp850
+5 latin1
+6 hp8
+7 koi8r
+8 latin1
+9 latin2
+10 swe7
+select table_catalog from columns
+union all
+select table_catalog from tables limit 0,5;
+table_catalog
+NULL
+NULL
+NULL
+NULL
+NULL
+select table_catalog from columns
+union
+select table_catalog from tables limit 0,5;
+table_catalog
+NULL
+select all schema_name from information_schema.schemata;
+schema_name
+information_schema
+db_datadict
+mysql
+test
+test1
+test4
+SELECT *
+INTO OUTFILE '../tmp/out.innodb.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+USE test;
+SELECT *
+INTO OUTFILE '../tmp/out.innodb.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CREATE USER user_3212@localhost;
+GRANT ALL ON db_datadict.* TO user_3212@localhost;
+GRANT FILE ON *.* TO user_3212@localhost;
+connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+user_3212@localhost db_datadict
+SELECT *
+INTO OUTFILE '../tmp/out.innodb.user.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT *
+FROM schemata LIMIT 0, 5;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT *
+INTO OUTFILE '../tmp/out.innodb.user.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+SELECT *
+FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+USE information_schema;
+SELECT *
+INTO OUTFILE '../tmp/out.innodb.user_2.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+SELECT *
+FROM schemata LIMIT 0, 5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+SELECT *
+INTO OUTFILE '../tmp/out.innodb.user_2.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+SELECT *
+FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+USE information_schema;
+
+root@localhost information_schema
+use db_datadict;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from information_schema.columns
+union
+select table_catalog, table_schema, table_name,
+concat( "*** type = ", table_type )
+from information_schema.tables
+order by 3, 4 desc, 1, 2 limit 30;
+1 2 3 4
+NULL information_schema CHARACTER_SETS MAXLEN
+NULL information_schema CHARACTER_SETS DESCRIPTION
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME
+NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW
+NULL information_schema COLLATIONS SORTLEN
+NULL information_schema COLLATIONS IS_DEFAULT
+NULL information_schema COLLATIONS IS_COMPILED
+NULL information_schema COLLATIONS ID
+NULL information_schema COLLATIONS COLLATION_NAME
+NULL information_schema COLLATIONS CHARACTER_SET_NAME
+NULL information_schema COLLATIONS *** type = SYSTEM VIEW
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW
+NULL information_schema COLUMNS TABLE_SCHEMA
+NULL information_schema COLUMNS TABLE_NAME
+NULL information_schema COLUMNS TABLE_CATALOG
+NULL information_schema COLUMNS PRIVILEGES
+NULL information_schema COLUMNS ORDINAL_POSITION
+NULL information_schema COLUMNS NUMERIC_SCALE
+NULL information_schema COLUMNS NUMERIC_PRECISION
+NULL information_schema COLUMNS IS_NULLABLE
+NULL information_schema COLUMNS EXTRA
+NULL information_schema COLUMNS DATA_TYPE
+NULL information_schema COLUMNS COLUMN_TYPE
+NULL information_schema COLUMNS COLUMN_NAME
+NULL information_schema COLUMNS COLUMN_KEY
+NULL information_schema COLUMNS COLUMN_DEFAULT
+NULL information_schema COLUMNS COLUMN_COMMENT
+use information_schema;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from columns
+union
+select table_catalog, table_schema, table_name,
+concat( "*** type = ", table_type )
+from tables
+order by 3, 4 desc, 1, 2 limit 30;
+1 2 3 4
+NULL information_schema CHARACTER_SETS MAXLEN
+NULL information_schema CHARACTER_SETS DESCRIPTION
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME
+NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW
+NULL information_schema COLLATIONS SORTLEN
+NULL information_schema COLLATIONS IS_DEFAULT
+NULL information_schema COLLATIONS IS_COMPILED
+NULL information_schema COLLATIONS ID
+NULL information_schema COLLATIONS COLLATION_NAME
+NULL information_schema COLLATIONS CHARACTER_SET_NAME
+NULL information_schema COLLATIONS *** type = SYSTEM VIEW
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW
+NULL information_schema COLUMNS TABLE_SCHEMA
+NULL information_schema COLUMNS TABLE_NAME
+NULL information_schema COLUMNS TABLE_CATALOG
+NULL information_schema COLUMNS PRIVILEGES
+NULL information_schema COLUMNS ORDINAL_POSITION
+NULL information_schema COLUMNS NUMERIC_SCALE
+NULL information_schema COLUMNS NUMERIC_PRECISION
+NULL information_schema COLUMNS IS_NULLABLE
+NULL information_schema COLUMNS EXTRA
+NULL information_schema COLUMNS DATA_TYPE
+NULL information_schema COLUMNS COLUMN_TYPE
+NULL information_schema COLUMNS COLUMN_NAME
+NULL information_schema COLUMNS COLUMN_KEY
+NULL information_schema COLUMNS COLUMN_DEFAULT
+NULL information_schema COLUMNS COLUMN_COMMENT
+DROP USER user_3212@localhost;
+
+Testcase 3.2.1.3:
+--------------------------------------------------------------------------------
+insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path)
+values ('null', 'db1', 'latin1', 'null');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into tables (table_schema, table_name)values('db_datadict', 't1');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into columns (table_name, column_name)values('t3', 'f2');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into character_sets (character_set_name, default_collate_name, description, maxlen)
+values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen)
+values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into collation_character_set_applicability (collation_name, character_set_name)
+values (' big5_chinese_ci', 'big6');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into routines(routine_name, routine_type ) values ('p2', 'procedure');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into statistics(table_schema, table_name, index_name)
+values ('mysql', 'db', 'primary');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into views(table_schema, table_name) values ('db2', 'v2');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into table_privileges (able_schema, table_name, privilege_type)
+values('db2', 'v2', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into column_privileges (table_name, column_name, privilege_type)
+values ('t3', 'f3', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+values ('primary', 'mysql', 'user');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into key_column_usage (constraint_schema, constraint_name, table_name)
+values ('mysql', 'primary', 'db');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_3;
+create procedure db_datadict.sp_4_1_3()
+begin
+insert into information_schema.schema_privileges (table_schema,privilege_type)
+values('db2','insert');
+end//
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+WHERE table_schema LIKE 'db%';
+table_schema privilege_type
+call db_datadict.sp_4_1_3();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+WHERE table_schema LIKE 'db%';
+table_schema privilege_type
+drop procedure db_datadict.sp_4_1_3;
+CREATE USER user_4_1_3@localhost;
+connect(localhost,user_4_1_3,,test,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_3@localhost test
+use information_schema;
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+values ('primary', 'mysql', 'user');
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+
+Testcase 3.2.1.4:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root@localhost information_schema
+update schemata set schema_name = 'db5' where default_character_set_name = 'latin1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update tables set table_schema = 'db_datadict1' where table_name = 't1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update character_sets set character_set_name = 'cp1252' where maxlen = 1;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update collations set collation_name = 'cp1253_bin'
+ where character_set_name = 'cp1251';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update collation_character_set_applicability set collation_name = 'big6_chinese_ci'
+ where character_set_name = 'big6';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update routines set routine_name = p2 where routine_body = 'sql';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update statistics set table_schema = 'mysql1' where table_name = 'db';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update views set table_schema = 'db3' where table_name = 'v1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update schema_privileges set table_schema = 'db2' where privilege_type = 'select';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update table_privileges set table_name = 'v3' where privilege_type = 'select';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update column_privileges set table_name = 't4' where column_name = 'f3';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update table_constraints set constraint_schema = 'primary'
+ where table_schema = 'proc';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update key_column_usage set table_name = 'db1' where constraint_name = 'primary';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_4;
+create procedure db_datadict.sp_4_1_4()
+begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end//
+select * from information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+call db_datadict.sp_4_1_4();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+select * from information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+drop procedure db_datadict.sp_4_1_4;
+use information_schema;
+
+user_4_1_3@localhost information_schema
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+
+Testcase 3.2.1.5:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: DELETE FROM any table in IS
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DELETE FROM schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from schemata where schema_name = 'mysql';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from tables where table_name = 'abc';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from columns;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from character_sets;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from collations;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from collation_character_set_applicability;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from routines;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from statistics;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from views;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from user_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from schema_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from table_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from column_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from table_constraints;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from key_column_usage;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_5;
+create procedure db_datadict.sp_4_1_5()
+begin
+delete from information_schema.column_privileges;
+end//
+call db_datadict.sp_4_1_5();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure db_datadict.sp_4_1_5;
+use information_schema;
+
+user_4_1_3@localhost information_schema
+delete from tables where table_name = 'abc';
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_3@localhost;
+
+Testcase 3.2.1.6:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: create a table with a name of an IS table directly in IS
+--------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE schemata ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE tables ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE columns ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE collations ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE routines ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE statistics ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE views ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE triggers ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create table t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use db_datadict;
+
+root: create a table with a name of an IS table from other db
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE information_schema. schemata ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. tables ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. columns ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collations ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. routines ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. statistics ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. views ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. triggers ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+CREATE USER user_4_1_6@localhost;
+grant all on *.* to user_4_1_6@localhost;
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR user_4_1_6@localhost;
+Grants for user_4_1_6@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'user_4_1_6'@'localhost'
+connect(localhost,user_4_1_6,,information_schema,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_6@localhost information_schema
+use information_schema;
+
+user: create a table with a name of an IS table directly in IS
+--------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE schemata ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE tables ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE columns ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE collations ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE routines ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE statistics ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE views ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE triggers ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+create table t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use test;
+
+user: create a table with a name of an IS table from other db
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE information_schema. schemata ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. tables ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. columns ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collations ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. routines ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. statistics ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. views ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. triggers ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+
+root@localhost db_datadict
+DROP USER user_4_1_6@localhost;
+
+Testcase 3.2.1.7:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: create a view with a name of an IS table directly in IS
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW schemata AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW tables AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW columns AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW character_sets AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW collations AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW collation_character_set_applicability AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW routines AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW statistics AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW views AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW user_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW schema_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW table_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW column_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW table_constraints AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW key_column_usage AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW triggers AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW v1 AS SELECT * FROM information_schema.schemata;
+ERROR 42S02: Unknown table 'v1' in information_schema
+USE db_datadict;
+
+root: create a view with a name of an IS table from other db
+------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW information_schema. schemata AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. tables AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. columns AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. character_sets AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collations AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. routines AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. statistics AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. views AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. user_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. schema_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. column_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_constraints AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. key_column_usage AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. triggers AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW v1 AS SELECT * FROM information_schema.columns;
+SELECT * FROM v1 LIMIT 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+CREATE USER user_4_1_7@localhost;
+GRANT ALL ON db_datadict.* TO user_4_1_7@localhost;
+GRANT ALL ON information_schema.* TO user_4_1_7@localhost;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_7,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_7@localhost information_schema
+
+user: create a view with a name of an IS table directly in IS
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW schemata AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW tables AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW columns AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW character_sets AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW collations AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW collation_character_set_applicability AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW routines AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW statistics AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW views AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW user_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW schema_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW table_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW column_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW table_constraints AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW key_column_usage AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW triggers AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+create view v1 as select * from table_privileges;
+ERROR 42S02: Unknown table 'v1' in information_schema
+use db_datadict;
+
+user: create a view with a name of an IS table from other db
+------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW information_schema. schemata AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. tables AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. columns AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. character_sets AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collations AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. routines AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. statistics AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. views AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. user_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. schema_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. column_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_constraints AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. key_column_usage AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. triggers AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+
+root@localhost db_datadict
+DROP USER user_4_1_7@localhost;
+DROP VIEW db_datadict.v1;
+
+Testcase 3.2.1.8:
+--------------------------------------------------------------------------------
+use information_schema;
+create index i1 on schemata(schema_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i2 on tables(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i3 on columns(table_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i4 on character_sets(character_set_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i6 on collation_character_set_applicability(collation_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i7 on routines(routine_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i8 on statistics(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i9 on views(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i10 on user_privileges(privilege_type);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i11 on schema_privileges(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i12 on table_privileges(able_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i13 on column_privileges(table_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i14 on table_constraints(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i15 on key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i16 on triggers(trigger_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use db_datadict;
+create index i15 on information_schema.key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+CREATE USER user_4_1_8@localhost;
+grant select, index on *.* to user_4_1_8@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_8,,test,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_8@localhost test
+use information_schema;
+create index i1 on schemata(schema_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i2 on tables(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i3 on columns(table_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i4 on character_sets(character_set_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i6 on collation_character_set_applicability(collation_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i7 on routines(routine_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i8 on statistics(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i9 on views(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i10 on user_privileges(privilege_type);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i11 on schema_privileges(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i12 on table_privileges(able_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i13 on column_privileges(table_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i14 on table_constraints(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i15 on key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i16 on triggers(trigger_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+use db_datadict;
+create index i15 on information_schema.key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_8@localhost;
+
+Testcase 3.2.1.9:
+--------------------------------------------------------------------------------
+
+root: alter a table from other db
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+
+root: alter a table from directly
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE tables ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE columns ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE collations ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE routines ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE views ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table schemata add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table tables drop primary key;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table columns add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table character_sets disable keys;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table collations enable keys;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table collation_character_set_applicability add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table routines discard tablespace;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table statistics import tablespace;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table views drop column table_name;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table user_privileges drop index privilege_type;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table schema_privileges drop column is_grantable;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table table_privileges order by constraint_type;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table column_privileges rename to aaxyz;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table table_constraints order by schema_name;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table key_column_usage rename to information_schema.aabxyz;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table triggers rename to information_schema.sql_mode;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE USER user_4_1_9@localhost;
+grant select, alter, create, insert on *.* to user_4_1_9@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_9,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_9@localhost db_datadict
+use db_datadict;
+
+user: alter a table from other db
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+use information_schema;
+
+user: alter a table from directly
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE tables ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE columns ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE collations ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE routines ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE views ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_9@localhost;
+
+Testcase 3.2.1.10:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: drop a table from IS
+--------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use db_datadict;
+
+root: drop a table from other db
+--------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE information_schema. schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+CREATE USER user_4_1_10@localhost;
+GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_10,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_10@localhost information_schema
+
+user: drop a table from IS
+--------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE schemata ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE tables ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE columns ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE character_sets ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE collations ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE routines ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE statistics ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE views ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE user_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE schema_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE table_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE column_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE table_constraints ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE key_column_usage ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE triggers ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+use db_datadict;
+
+user: drop a table from other db
+--------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE information_schema. schemata ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. tables ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. columns ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. character_sets ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collations ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. routines ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. statistics ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. views ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. triggers ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_10@localhost;
+CREATE USER user_4_1_11@localhost;
+GRANT SUPER ON *.* TO user_4_1_11@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_11,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_11@localhost information_schema
+drop table routines;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+alter table collations enable keys;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name );
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+create view v1 as select * from schemata;
+ERROR 42S02: Unknown table 'v1' in information_schema
+delete from columns;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+insert into collations ( collation_name, character_set_name, id, is_default,
+is_compiled, sortlen)
+values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_11@localhost;
+
+Testcase 3.2.1.11:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'u_6_401011'@'localhost';
+GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost';
+FLUSH PRIVILEGES;
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+
+root: move table to other DB
+----------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+connect(localhost,u_6_401011,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+
+u_6_401011@localhost information_schema
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+
+user: move table to other DB
+----------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP TABLE IF EXISTS db_datadict.schemata;
+DROP USER 'u_6_401011'@'localhost';
+
+Testcase 3.2.1.12:
+--------------------------------------------------------------------------------
+
+root: delete from IS tables
+---------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DELETE FROM information_schema. schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.tables SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.columns SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.statistics SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.views SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.table_privileges SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.column_privileges SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.table_constraints SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.key_column_usage SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.schemata SET catalog_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.character_sets SET description = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.collations SET character_set_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.collation_character_set_applicability
+SET character_set_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.routines SET routine_type = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.user_privileges SET grantee = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.schema_privileges SET grantee = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.triggers SET sql_mode = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE USER 'u_6_401012'@'localhost';
+connect(localhost,u_6_401012,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+insert into information_schema.schemata (catalog_name, schema_name,
+default_character_set_name, sql_path)
+values (null, information_schema1, utf16, null);
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.schemata rename db_datadict1.schemata;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.tables drop column checksum;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.statistics modify packed int;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.routines modify created int not null;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.key_column_usage drop column ordinal_position;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.table_privileges
+change privilege_type rights_approved varchar(32);
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+delete from information_schema.collations;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+drop table if exists db_datadict1.schemata;
+DROP USER 'u_6_401012'@'localhost';
+
+Testcase 3.2.1.13:
+--------------------------------------------------------------------------------
+use information_schema;
+
+first check status >before< creating the objects ...
+----------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401013(f1 char(10), f2 char(25), f3 int)
+engine = innodb;
+create view res_v_401013 as select * from res_t_401013;
+CREATE USER u_6_401013@localhost;
+create procedure sp_6_401013() select 'db_datadict';
+create function fn_6_401013() returns int return 0;
+create index i_6_401013 on res_t_401013(f3);
+use information_schema;
+
+now check whether all new objects exists in IS ...
+--------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict InnoDB
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL db_datadict res_t_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references
+NULL db_datadict res_v_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL db_datadict res_v_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401013 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401013 FUNCTION DEFINER
+sp_6_401013 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+res_t_401013 db_datadict i_6_401013 BTREE
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+'u_6_401013'@'localhost' NULL USAGE NO
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop index i_6_401013 on res_t_401013;
+drop table db_datadict.res_t_401013;
+drop view db_datadict.res_v_401013;
+DROP USER u_6_401013@localhost;
+drop procedure sp_6_401013;
+drop function fn_6_401013;
+drop database db_datadict;
+use information_schema;
+
+and now check whether all objects are removed from IS ...
+---------------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+
+Testcase 3.2.1.14:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401014(f1 char(10), f2 varchar(25), f3 int);
+create view res_v_401014 as select * from res_t_401014;
+create procedure sp_6_401014() select 'db_datadict';
+create function fn_6_401014() returns int return 0;
+
+show existing objects >before< changing them ...
+------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_t_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict res_v_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_v_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401014 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401014 FUNCTION DEFINER
+sp_6_401014 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+alter table res_t_401014 change f1 ff1 int;
+alter table res_t_401014 engine = MEMORY;
+alter table res_t_401014 change f3 f3_new bigint;
+alter view res_v_401014 as select ff1 from res_t_401014;
+alter procedure sp_6_401014 sql security invoker;
+alter function fn_6_401014 comment 'updated comments';
+alter database db_datadict character set utf8;
+
+now check whether the changes are visible in IS ...
+---------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict utf8 utf8_general_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MEMORY
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_t_401014 f3_new 3 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL db_datadict res_v_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401014 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401014 FUNCTION DEFINER
+sp_6_401014 PROCEDURE INVOKER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop table db_datadict.res_t_401014;
+drop view db_datadict.res_v_401014;
+drop procedure sp_6_401014;
+drop function fn_6_401014;
+drop database db_datadict;
+
+Testcase 3.2.1.15:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401015(f1 char(10), f2 text(25), f3 int);
+create view res_v_401015 as select * from res_t_401015;
+CREATE USER u_6_401015@localhost;
+create procedure sp_6_401015() select 'test';
+create function fn_6_401015() returns int return 0;
+create index i_6_401015 on res_t_401015(f3);
+
+show existing objects >before< dropping them ...
+------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL db_datadict res_t_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references
+NULL db_datadict res_v_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL db_datadict res_v_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401015 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401015 FUNCTION DEFINER
+sp_6_401015 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+res_t_401015 db_datadict i_6_401015 BTREE
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+'u_6_401015'@'localhost' NULL USAGE NO
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop index i_6_401015 on res_t_401015;
+drop table db_datadict.res_t_401015;
+drop view db_datadict.res_v_401015;
+DROP USER u_6_401015@localhost;
+drop procedure sp_6_401015;
+drop function fn_6_401015;
+
+now check they are really gone ...
+----------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+
+Testcase 3.2.1.16:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_hidden;
+USE db_hidden;
+CREATE TABLE tb_hidden ( c1 TEXT );
+USE db_datadict;
+CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int);
+CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int);
+CREATE USER 'u_6_401016'@'localhost';
+GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401016,,test,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SELECT table_schema, table_name, engine
+FROM TABLES;
+table_schema table_name engine
+information_schema CHARACTER_SETS MEMORY
+information_schema COLLATIONS MEMORY
+information_schema COLLATION_CHARACTER_SET_APPLICABILITY MEMORY
+information_schema COLUMNS MyISAM
+information_schema COLUMN_PRIVILEGES MEMORY
+information_schema KEY_COLUMN_USAGE MEMORY
+information_schema ROUTINES MyISAM
+information_schema SCHEMATA MEMORY
+information_schema SCHEMA_PRIVILEGES MEMORY
+information_schema STATISTICS MEMORY
+information_schema TABLES MEMORY
+information_schema TABLE_CONSTRAINTS MEMORY
+information_schema TABLE_PRIVILEGES MEMORY
+information_schema TRIGGERS MyISAM
+information_schema USER_PRIVILEGES MEMORY
+information_schema VIEWS MyISAM
+db_datadict res_t_401016 MyISAM
+test t1 InnoDB
+test t10 InnoDB
+test t11 InnoDB
+test t2 InnoDB
+test t3 InnoDB
+test t4 InnoDB
+test t7 InnoDB
+test t8 InnoDB
+test t9 InnoDB
+test tb1 InnoDB
+test tb2 InnoDB
+test tb3 InnoDB
+test tb4 InnoDB
+SHOW TABLES;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+
+root@localhost db_datadict
+grant usage on information_schema.* to 'u_6_401016'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401016,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SHOW TABLES;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'u_6_401016'@'localhost';
+drop table res_t_401016;
+drop table res_t_401016_1;
+DROP DATABASE db_hidden;
+
+Testcase 3.2.1.17:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401017'@'localhost';
+grant select on information_schema.* to u_6_401017@localhost;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+select * from collation_character_set_applicability;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+cp850_bin cp850
+hp8_english_ci hp8
+hp8_bin hp8
+koi8r_general_ci koi8r
+koi8r_bin koi8r
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+latin2_czech_cs latin2
+latin2_general_ci latin2
+latin2_hungarian_ci latin2
+latin2_croatian_ci latin2
+latin2_bin latin2
+swe7_swedish_ci swe7
+swe7_bin swe7
+ascii_general_ci ascii
+ascii_bin ascii
+ujis_japanese_ci ujis
+ujis_bin ujis
+sjis_japanese_ci sjis
+sjis_bin sjis
+hebrew_general_ci hebrew
+hebrew_bin hebrew
+tis620_thai_ci tis620
+tis620_bin tis620
+euckr_korean_ci euckr
+euckr_bin euckr
+koi8u_general_ci koi8u
+koi8u_bin koi8u
+gb2312_chinese_ci gb2312
+gb2312_bin gb2312
+greek_general_ci greek
+greek_bin greek
+cp1250_general_ci cp1250
+cp1250_czech_cs cp1250
+cp1250_croatian_ci cp1250
+cp1250_bin cp1250
+gbk_chinese_ci gbk
+gbk_bin gbk
+latin5_turkish_ci latin5
+latin5_bin latin5
+armscii8_general_ci armscii8
+armscii8_bin armscii8
+utf8_general_ci utf8
+utf8_bin utf8
+utf8_unicode_ci utf8
+utf8_icelandic_ci utf8
+utf8_latvian_ci utf8
+utf8_romanian_ci utf8
+utf8_slovenian_ci utf8
+utf8_polish_ci utf8
+utf8_estonian_ci utf8
+utf8_spanish_ci utf8
+utf8_swedish_ci utf8
+utf8_turkish_ci utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_lithuanian_ci utf8
+utf8_slovak_ci utf8
+utf8_spanish2_ci utf8
+utf8_roman_ci utf8
+utf8_persian_ci utf8
+utf8_esperanto_ci utf8
+utf8_hungarian_ci utf8
+ucs2_general_ci ucs2
+ucs2_bin ucs2
+ucs2_unicode_ci ucs2
+ucs2_icelandic_ci ucs2
+ucs2_latvian_ci ucs2
+ucs2_romanian_ci ucs2
+ucs2_slovenian_ci ucs2
+ucs2_polish_ci ucs2
+ucs2_estonian_ci ucs2
+ucs2_spanish_ci ucs2
+ucs2_swedish_ci ucs2
+ucs2_turkish_ci ucs2
+ucs2_czech_ci ucs2
+ucs2_danish_ci ucs2
+ucs2_lithuanian_ci ucs2
+ucs2_slovak_ci ucs2
+ucs2_spanish2_ci ucs2
+ucs2_roman_ci ucs2
+ucs2_persian_ci ucs2
+ucs2_esperanto_ci ucs2
+ucs2_hungarian_ci ucs2
+cp866_general_ci cp866
+cp866_bin cp866
+keybcs2_general_ci keybcs2
+keybcs2_bin keybcs2
+macce_general_ci macce
+macce_bin macce
+macroman_general_ci macroman
+macroman_bin macroman
+cp852_general_ci cp852
+cp852_bin cp852
+latin7_estonian_cs latin7
+latin7_general_ci latin7
+latin7_general_cs latin7
+latin7_bin latin7
+cp1251_bulgarian_ci cp1251
+cp1251_ukrainian_ci cp1251
+cp1251_bin cp1251
+cp1251_general_ci cp1251
+cp1251_general_cs cp1251
+cp1256_general_ci cp1256
+cp1256_bin cp1256
+cp1257_lithuanian_ci cp1257
+cp1257_bin cp1257
+cp1257_general_ci cp1257
+binary binary
+geostd8_general_ci geostd8
+geostd8_bin geostd8
+cp932_japanese_ci cp932
+cp932_bin cp932
+eucjpms_japanese_ci eucjpms
+eucjpms_bin eucjpms
+select * from schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+select table_name from tables;
+table_name
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+t1
+t10
+t11
+t2
+t3
+t4
+t7
+t8
+t9
+tb1
+tb2
+tb3
+tb4
+select table_name, column_name, column_type from columns;
+table_name column_name column_type
+CHARACTER_SETS CHARACTER_SET_NAME varchar(64)
+CHARACTER_SETS DEFAULT_COLLATE_NAME varchar(64)
+CHARACTER_SETS DESCRIPTION varchar(60)
+CHARACTER_SETS MAXLEN bigint(3)
+COLLATIONS COLLATION_NAME varchar(64)
+COLLATIONS CHARACTER_SET_NAME varchar(64)
+COLLATIONS ID bigint(11)
+COLLATIONS IS_DEFAULT varchar(3)
+COLLATIONS IS_COMPILED varchar(3)
+COLLATIONS SORTLEN bigint(3)
+COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar(64)
+COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar(64)
+COLUMNS TABLE_CATALOG varchar(4096)
+COLUMNS TABLE_SCHEMA varchar(64)
+COLUMNS TABLE_NAME varchar(64)
+COLUMNS COLUMN_NAME varchar(64)
+COLUMNS ORDINAL_POSITION bigint(21)
+COLUMNS COLUMN_DEFAULT longtext
+COLUMNS IS_NULLABLE varchar(3)
+COLUMNS DATA_TYPE varchar(64)
+COLUMNS CHARACTER_MAXIMUM_LENGTH bigint(21)
+COLUMNS CHARACTER_OCTET_LENGTH bigint(21)
+COLUMNS NUMERIC_PRECISION bigint(21)
+COLUMNS NUMERIC_SCALE bigint(21)
+COLUMNS CHARACTER_SET_NAME varchar(64)
+COLUMNS COLLATION_NAME varchar(64)
+COLUMNS COLUMN_TYPE longtext
+COLUMNS COLUMN_KEY varchar(3)
+COLUMNS EXTRA varchar(20)
+COLUMNS PRIVILEGES varchar(80)
+COLUMNS COLUMN_COMMENT varchar(255)
+COLUMN_PRIVILEGES GRANTEE varchar(81)
+COLUMN_PRIVILEGES TABLE_CATALOG varchar(4096)
+COLUMN_PRIVILEGES TABLE_SCHEMA varchar(64)
+COLUMN_PRIVILEGES TABLE_NAME varchar(64)
+COLUMN_PRIVILEGES COLUMN_NAME varchar(64)
+COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+COLUMN_PRIVILEGES IS_GRANTABLE varchar(3)
+KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar(4096)
+KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar(64)
+KEY_COLUMN_USAGE CONSTRAINT_NAME varchar(64)
+KEY_COLUMN_USAGE TABLE_CATALOG varchar(4096)
+KEY_COLUMN_USAGE TABLE_SCHEMA varchar(64)
+KEY_COLUMN_USAGE TABLE_NAME varchar(64)
+KEY_COLUMN_USAGE COLUMN_NAME varchar(64)
+KEY_COLUMN_USAGE ORDINAL_POSITION bigint(10)
+KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint(10)
+KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar(64)
+KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar(64)
+KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar(64)
+ROUTINES SPECIFIC_NAME varchar(64)
+ROUTINES ROUTINE_CATALOG varchar(4096)
+ROUTINES ROUTINE_SCHEMA varchar(64)
+ROUTINES ROUTINE_NAME varchar(64)
+ROUTINES ROUTINE_TYPE varchar(9)
+ROUTINES DTD_IDENTIFIER varchar(64)
+ROUTINES ROUTINE_BODY varchar(8)
+ROUTINES ROUTINE_DEFINITION longtext
+ROUTINES EXTERNAL_NAME varchar(64)
+ROUTINES EXTERNAL_LANGUAGE varchar(64)
+ROUTINES PARAMETER_STYLE varchar(8)
+ROUTINES IS_DETERMINISTIC varchar(3)
+ROUTINES SQL_DATA_ACCESS varchar(64)
+ROUTINES SQL_PATH varchar(64)
+ROUTINES SECURITY_TYPE varchar(7)
+ROUTINES CREATED datetime
+ROUTINES LAST_ALTERED datetime
+ROUTINES SQL_MODE longtext
+ROUTINES ROUTINE_COMMENT varchar(64)
+ROUTINES DEFINER varchar(77)
+SCHEMATA CATALOG_NAME varchar(4096)
+SCHEMATA SCHEMA_NAME varchar(64)
+SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar(64)
+SCHEMATA DEFAULT_COLLATION_NAME varchar(64)
+SCHEMATA SQL_PATH varchar(4096)
+SCHEMA_PRIVILEGES GRANTEE varchar(81)
+SCHEMA_PRIVILEGES TABLE_CATALOG varchar(4096)
+SCHEMA_PRIVILEGES TABLE_SCHEMA varchar(64)
+SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+SCHEMA_PRIVILEGES IS_GRANTABLE varchar(3)
+STATISTICS TABLE_CATALOG varchar(4096)
+STATISTICS TABLE_SCHEMA varchar(64)
+STATISTICS TABLE_NAME varchar(64)
+STATISTICS NON_UNIQUE bigint(1)
+STATISTICS INDEX_SCHEMA varchar(64)
+STATISTICS INDEX_NAME varchar(64)
+STATISTICS SEQ_IN_INDEX bigint(2)
+STATISTICS COLUMN_NAME varchar(64)
+STATISTICS COLLATION varchar(1)
+STATISTICS CARDINALITY bigint(21)
+STATISTICS SUB_PART bigint(3)
+STATISTICS PACKED varchar(10)
+STATISTICS NULLABLE varchar(3)
+STATISTICS INDEX_TYPE varchar(16)
+STATISTICS COMMENT varchar(16)
+TABLES TABLE_CATALOG varchar(4096)
+TABLES TABLE_SCHEMA varchar(64)
+TABLES TABLE_NAME varchar(64)
+TABLES TABLE_TYPE varchar(64)
+TABLES ENGINE varchar(64)
+TABLES VERSION bigint(21)
+TABLES ROW_FORMAT varchar(10)
+TABLES TABLE_ROWS bigint(21)
+TABLES AVG_ROW_LENGTH bigint(21)
+TABLES DATA_LENGTH bigint(21)
+TABLES MAX_DATA_LENGTH bigint(21)
+TABLES INDEX_LENGTH bigint(21)
+TABLES DATA_FREE bigint(21)
+TABLES AUTO_INCREMENT bigint(21)
+TABLES CREATE_TIME datetime
+TABLES UPDATE_TIME datetime
+TABLES CHECK_TIME datetime
+TABLES TABLE_COLLATION varchar(64)
+TABLES CHECKSUM bigint(21)
+TABLES CREATE_OPTIONS varchar(255)
+TABLES TABLE_COMMENT varchar(80)
+TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar(4096)
+TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar(64)
+TABLE_CONSTRAINTS CONSTRAINT_NAME varchar(64)
+TABLE_CONSTRAINTS TABLE_SCHEMA varchar(64)
+TABLE_CONSTRAINTS TABLE_NAME varchar(64)
+TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar(64)
+TABLE_PRIVILEGES GRANTEE varchar(81)
+TABLE_PRIVILEGES TABLE_CATALOG varchar(4096)
+TABLE_PRIVILEGES TABLE_SCHEMA varchar(64)
+TABLE_PRIVILEGES TABLE_NAME varchar(64)
+TABLE_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+TABLE_PRIVILEGES IS_GRANTABLE varchar(3)
+TRIGGERS TRIGGER_CATALOG varchar(4096)
+TRIGGERS TRIGGER_SCHEMA varchar(64)
+TRIGGERS TRIGGER_NAME varchar(64)
+TRIGGERS EVENT_MANIPULATION varchar(6)
+TRIGGERS EVENT_OBJECT_CATALOG varchar(4096)
+TRIGGERS EVENT_OBJECT_SCHEMA varchar(64)
+TRIGGERS EVENT_OBJECT_TABLE varchar(64)
+TRIGGERS ACTION_ORDER bigint(4)
+TRIGGERS ACTION_CONDITION longtext
+TRIGGERS ACTION_STATEMENT longtext
+TRIGGERS ACTION_ORIENTATION varchar(9)
+TRIGGERS ACTION_TIMING varchar(6)
+TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar(64)
+TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar(64)
+TRIGGERS ACTION_REFERENCE_OLD_ROW varchar(3)
+TRIGGERS ACTION_REFERENCE_NEW_ROW varchar(3)
+TRIGGERS CREATED datetime
+TRIGGERS SQL_MODE longtext
+TRIGGERS DEFINER longtext
+USER_PRIVILEGES GRANTEE varchar(81)
+USER_PRIVILEGES TABLE_CATALOG varchar(4096)
+USER_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+USER_PRIVILEGES IS_GRANTABLE varchar(3)
+VIEWS TABLE_CATALOG varchar(4096)
+VIEWS TABLE_SCHEMA varchar(64)
+VIEWS TABLE_NAME varchar(64)
+VIEWS VIEW_DEFINITION longtext
+VIEWS CHECK_OPTION varchar(8)
+VIEWS IS_UPDATABLE varchar(3)
+VIEWS DEFINER varchar(77)
+VIEWS SECURITY_TYPE varchar(7)
+t1 f1 char(20)
+t1 f2 char(25)
+t1 f3 date
+t1 f4 int(11)
+t1 f5 char(25)
+t1 f6 int(11)
+t10 f1 char(20)
+t10 f2 char(25)
+t10 f3 date
+t10 f4 int(11)
+t10 f5 char(25)
+t10 f6 int(11)
+t11 f1 char(20)
+t11 f2 char(25)
+t11 f3 date
+t11 f4 int(11)
+t11 f5 char(25)
+t11 f6 int(11)
+t2 f1 char(20)
+t2 f2 char(25)
+t2 f3 date
+t2 f4 int(11)
+t2 f5 char(25)
+t2 f6 int(11)
+t3 f1 char(20)
+t3 f2 char(20)
+t3 f3 int(11)
+t4 f1 char(20)
+t4 f2 char(25)
+t4 f3 date
+t4 f4 int(11)
+t4 f5 char(25)
+t4 f6 int(11)
+t7 f1 char(20)
+t7 f2 char(25)
+t7 f3 date
+t7 f4 int(11)
+t8 f1 char(20)
+t8 f2 char(25)
+t8 f3 date
+t8 f4 int(11)
+t9 f1 int(11)
+t9 f2 char(25)
+t9 f3 int(11)
+tb1 f1 char(0)
+tb1 f2 char(0)
+tb1 f3 char(0)
+tb1 f4 tinytext
+tb1 f5 text
+tb1 f6 mediumtext
+tb1 f7 longtext
+tb1 f8 tinyblob
+tb1 f9 blob
+tb1 f10 mediumblob
+tb1 f11 longblob
+tb1 f12 binary(1)
+tb1 f13 tinyint(4)
+tb1 f14 tinyint(3) unsigned
+tb1 f15 tinyint(3) unsigned zerofill
+tb1 f16 tinyint(3) unsigned zerofill
+tb1 f17 smallint(6)
+tb1 f18 smallint(5) unsigned
+tb1 f19 smallint(5) unsigned zerofill
+tb1 f20 smallint(5) unsigned zerofill
+tb1 f21 mediumint(9)
+tb1 f22 mediumint(8) unsigned
+tb1 f23 mediumint(8) unsigned zerofill
+tb1 f24 mediumint(8) unsigned zerofill
+tb1 f25 int(11)
+tb1 f26 int(10) unsigned
+tb1 f27 int(10) unsigned zerofill
+tb1 f28 int(10) unsigned zerofill
+tb1 f29 bigint(20)
+tb1 f30 bigint(20) unsigned
+tb1 f31 bigint(20) unsigned zerofill
+tb1 f32 bigint(20) unsigned zerofill
+tb1 f33 decimal(10,0)
+tb1 f34 decimal(10,0) unsigned
+tb1 f35 decimal(10,0) unsigned zerofill
+tb1 f36 decimal(10,0) unsigned zerofill
+tb1 f37 decimal(10,0)
+tb1 f38 decimal(64,0)
+tb1 f39 decimal(10,0) unsigned
+tb1 f40 decimal(64,0) unsigned
+tb1 f41 decimal(10,0) unsigned zerofill
+tb1 f42 decimal(64,0) unsigned zerofill
+tb1 f43 decimal(10,0) unsigned zerofill
+tb1 f44 decimal(64,0) unsigned zerofill
+tb1 f45 decimal(10,0)
+tb1 f46 decimal(63,30)
+tb1 f47 decimal(10,0) unsigned
+tb1 f48 decimal(63,30) unsigned
+tb1 f49 decimal(10,0) unsigned zerofill
+tb1 f50 decimal(63,30) unsigned zerofill
+tb1 f51 decimal(10,0) unsigned zerofill
+tb1 f52 decimal(63,30) unsigned zerofill
+tb1 f53 decimal(10,0)
+tb1 f54 decimal(10,0) unsigned
+tb1 f55 decimal(10,0) unsigned zerofill
+tb1 f56 decimal(10,0) unsigned zerofill
+tb1 f57 decimal(10,0)
+tb1 f58 decimal(64,0)
+tb2 f59 decimal(10,0) unsigned
+tb2 f60 decimal(64,0) unsigned
+tb2 f61 decimal(10,0) unsigned zerofill
+tb2 f62 decimal(64,0) unsigned zerofill
+tb2 f63 decimal(10,0) unsigned zerofill
+tb2 f64 decimal(64,0) unsigned zerofill
+tb2 f65 decimal(10,0)
+tb2 f66 decimal(63,30)
+tb2 f67 decimal(10,0) unsigned
+tb2 f68 decimal(63,30) unsigned
+tb2 f69 decimal(10,0) unsigned zerofill
+tb2 f70 decimal(63,30) unsigned zerofill
+tb2 f71 decimal(10,0) unsigned zerofill
+tb2 f72 decimal(63,30) unsigned zerofill
+tb2 f73 double
+tb2 f74 double unsigned
+tb2 f75 double unsigned zerofill
+tb2 f76 double unsigned zerofill
+tb2 f77 double
+tb2 f78 double unsigned
+tb2 f79 double unsigned zerofill
+tb2 f80 double unsigned zerofill
+tb2 f81 float
+tb2 f82 float unsigned
+tb2 f83 float unsigned zerofill
+tb2 f84 float unsigned zerofill
+tb2 f85 float
+tb2 f86 float
+tb2 f87 float unsigned
+tb2 f88 float unsigned
+tb2 f89 float unsigned zerofill
+tb2 f90 float unsigned zerofill
+tb2 f91 float unsigned zerofill
+tb2 f92 float unsigned zerofill
+tb2 f93 float
+tb2 f94 double
+tb2 f95 float unsigned
+tb2 f96 double unsigned
+tb2 f97 float unsigned zerofill
+tb2 f98 double unsigned zerofill
+tb2 f99 float unsigned zerofill
+tb2 f100 double unsigned zerofill
+tb2 f101 date
+tb2 f102 time
+tb2 f103 datetime
+tb2 f104 timestamp
+tb2 f105 year(4)
+tb2 f106 year(4)
+tb2 f107 year(4)
+tb2 f108 enum('1enum','2enum')
+tb2 f109 set('1set','2set')
+tb3 f118 char(1)
+tb3 f119 char(1)
+tb3 f120 char(1)
+tb3 f121 tinytext
+tb3 f122 text
+tb3 f123 mediumtext
+tb3 f124 longtext
+tb3 f125 tinyblob
+tb3 f126 blob
+tb3 f127 mediumblob
+tb3 f128 longblob
+tb3 f129 binary(1)
+tb3 f130 tinyint(4)
+tb3 f131 tinyint(3) unsigned
+tb3 f132 tinyint(3) unsigned zerofill
+tb3 f133 tinyint(3) unsigned zerofill
+tb3 f134 smallint(6)
+tb3 f135 smallint(5) unsigned
+tb3 f136 smallint(5) unsigned zerofill
+tb3 f137 smallint(5) unsigned zerofill
+tb3 f138 mediumint(9)
+tb3 f139 mediumint(8) unsigned
+tb3 f140 mediumint(8) unsigned zerofill
+tb3 f141 mediumint(8) unsigned zerofill
+tb3 f142 int(11)
+tb3 f143 int(10) unsigned
+tb3 f144 int(10) unsigned zerofill
+tb3 f145 int(10) unsigned zerofill
+tb3 f146 bigint(20)
+tb3 f147 bigint(20) unsigned
+tb3 f148 bigint(20) unsigned zerofill
+tb3 f149 bigint(20) unsigned zerofill
+tb3 f150 decimal(10,0)
+tb3 f151 decimal(10,0) unsigned
+tb3 f152 decimal(10,0) unsigned zerofill
+tb3 f153 decimal(10,0) unsigned zerofill
+tb3 f154 decimal(10,0)
+tb3 f155 decimal(64,0)
+tb3 f156 decimal(10,0) unsigned
+tb3 f157 decimal(64,0) unsigned
+tb3 f158 decimal(10,0) unsigned zerofill
+tb3 f159 decimal(64,0) unsigned zerofill
+tb3 f160 decimal(10,0) unsigned zerofill
+tb3 f161 decimal(64,0) unsigned zerofill
+tb3 f162 decimal(10,0)
+tb3 f163 decimal(63,30)
+tb3 f164 decimal(10,0) unsigned
+tb3 f165 decimal(63,30) unsigned
+tb3 f166 decimal(10,0) unsigned zerofill
+tb3 f167 decimal(63,30) unsigned zerofill
+tb3 f168 decimal(10,0) unsigned zerofill
+tb3 f169 decimal(63,30) unsigned zerofill
+tb3 f170 decimal(10,0)
+tb3 f171 decimal(10,0) unsigned
+tb3 f172 decimal(10,0) unsigned zerofill
+tb3 f173 decimal(10,0) unsigned zerofill
+tb3 f174 decimal(10,0)
+tb3 f175 decimal(64,0)
+tb4 f176 decimal(10,0) unsigned
+tb4 f177 decimal(64,0) unsigned
+tb4 f178 decimal(10,0) unsigned zerofill
+tb4 f179 decimal(64,0) unsigned zerofill
+tb4 f180 decimal(10,0) unsigned zerofill
+tb4 f181 decimal(64,0) unsigned zerofill
+tb4 f182 decimal(10,0)
+tb4 f183 decimal(63,30)
+tb4 f184 decimal(10,0) unsigned
+tb4 f185 decimal(63,30) unsigned
+tb4 f186 decimal(10,0) unsigned zerofill
+tb4 f187 decimal(63,30) unsigned zerofill
+tb4 f188 decimal(10,0) unsigned zerofill
+tb4 f189 decimal(63,30) unsigned zerofill
+tb4 f190 double
+tb4 f191 double unsigned
+tb4 f192 double unsigned zerofill
+tb4 f193 double unsigned zerofill
+tb4 f194 double
+tb4 f195 double unsigned
+tb4 f196 double unsigned zerofill
+tb4 f197 double unsigned zerofill
+tb4 f198 float
+tb4 f199 float unsigned
+tb4 f200 float unsigned zerofill
+tb4 f201 float unsigned zerofill
+tb4 f202 float
+tb4 f203 float
+tb4 f204 float unsigned
+tb4 f205 float unsigned
+tb4 f206 float unsigned zerofill
+tb4 f207 float unsigned zerofill
+tb4 f208 float unsigned zerofill
+tb4 f209 float unsigned zerofill
+tb4 f210 float
+tb4 f211 double
+tb4 f212 float unsigned
+tb4 f213 double unsigned
+tb4 f214 float unsigned zerofill
+tb4 f215 double unsigned zerofill
+tb4 f216 float unsigned zerofill
+tb4 f217 double unsigned zerofill
+tb4 f218 date
+tb4 f219 time
+tb4 f220 datetime
+tb4 f221 timestamp
+tb4 f222 year(4)
+tb4 f223 year(4)
+tb4 f224 year(4)
+tb4 f225 enum('1enum','2enum')
+tb4 f226 set('1set','2set')
+tb4 f235 char(0)
+tb4 f236 char(90)
+tb4 f237 char(255)
+tb4 f238 varchar(0)
+tb4 f239 varchar(20000)
+tb4 f240 varchar(2000)
+tb4 f241 char(100)
+select character_set_name from character_sets;
+character_set_name
+big5
+dec8
+cp850
+hp8
+koi8r
+latin1
+latin2
+swe7
+ascii
+ujis
+sjis
+hebrew
+tis620
+euckr
+koi8u
+gb2312
+greek
+cp1250
+gbk
+latin5
+armscii8
+utf8
+ucs2
+cp866
+keybcs2
+macce
+macroman
+cp852
+latin7
+cp1251
+cp1256
+cp1257
+binary
+geostd8
+cp932
+eucjpms
+select collation_name from collations;
+collation_name
+big5_chinese_ci
+big5_bin
+dec8_swedish_ci
+dec8_bin
+cp850_general_ci
+cp850_bin
+hp8_english_ci
+hp8_bin
+koi8r_general_ci
+koi8r_bin
+latin1_german1_ci
+latin1_swedish_ci
+latin1_danish_ci
+latin1_german2_ci
+latin1_bin
+latin1_general_ci
+latin1_general_cs
+latin1_spanish_ci
+latin2_czech_cs
+latin2_general_ci
+latin2_hungarian_ci
+latin2_croatian_ci
+latin2_bin
+swe7_swedish_ci
+swe7_bin
+ascii_general_ci
+ascii_bin
+ujis_japanese_ci
+ujis_bin
+sjis_japanese_ci
+sjis_bin
+hebrew_general_ci
+hebrew_bin
+tis620_thai_ci
+tis620_bin
+euckr_korean_ci
+euckr_bin
+koi8u_general_ci
+koi8u_bin
+gb2312_chinese_ci
+gb2312_bin
+greek_general_ci
+greek_bin
+cp1250_general_ci
+cp1250_czech_cs
+cp1250_croatian_ci
+cp1250_bin
+gbk_chinese_ci
+gbk_bin
+latin5_turkish_ci
+latin5_bin
+armscii8_general_ci
+armscii8_bin
+utf8_general_ci
+utf8_bin
+utf8_unicode_ci
+utf8_icelandic_ci
+utf8_latvian_ci
+utf8_romanian_ci
+utf8_slovenian_ci
+utf8_polish_ci
+utf8_estonian_ci
+utf8_spanish_ci
+utf8_swedish_ci
+utf8_turkish_ci
+utf8_czech_ci
+utf8_danish_ci
+utf8_lithuanian_ci
+utf8_slovak_ci
+utf8_spanish2_ci
+utf8_roman_ci
+utf8_persian_ci
+utf8_esperanto_ci
+utf8_hungarian_ci
+ucs2_general_ci
+ucs2_bin
+ucs2_unicode_ci
+ucs2_icelandic_ci
+ucs2_latvian_ci
+ucs2_romanian_ci
+ucs2_slovenian_ci
+ucs2_polish_ci
+ucs2_estonian_ci
+ucs2_spanish_ci
+ucs2_swedish_ci
+ucs2_turkish_ci
+ucs2_czech_ci
+ucs2_danish_ci
+ucs2_lithuanian_ci
+ucs2_slovak_ci
+ucs2_spanish2_ci
+ucs2_roman_ci
+ucs2_persian_ci
+ucs2_esperanto_ci
+ucs2_hungarian_ci
+cp866_general_ci
+cp866_bin
+keybcs2_general_ci
+keybcs2_bin
+macce_general_ci
+macce_bin
+macroman_general_ci
+macroman_bin
+cp852_general_ci
+cp852_bin
+latin7_estonian_cs
+latin7_general_ci
+latin7_general_cs
+latin7_bin
+cp1251_bulgarian_ci
+cp1251_ukrainian_ci
+cp1251_bin
+cp1251_general_ci
+cp1251_general_cs
+cp1256_general_ci
+cp1256_bin
+cp1257_lithuanian_ci
+cp1257_bin
+cp1257_general_ci
+binary
+geostd8_general_ci
+geostd8_bin
+cp932_japanese_ci
+cp932_bin
+eucjpms_japanese_ci
+eucjpms_bin
+select routine_name, routine_type from routines;
+routine_name routine_type
+select table_name, index_name from statistics;
+table_name index_name
+select table_name from views;
+table_name
+select privilege_type from user_privileges;
+privilege_type
+USAGE
+select grantee, privilege_type from schema_privileges;
+grantee privilege_type
+select * from table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select column_name, privilege_type from column_privileges;
+column_name privilege_type
+select table_name,constraint_type from table_constraints;
+table_name constraint_type
+select table_schema, table_name, column_name from key_column_usage;
+table_schema table_name column_name
+
+root@localhost db_datadict
+DROP USER 'u_6_401017'@'localhost';
+
+Testcase 3.2.1.18:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401018'@'localhost';
+GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost';
+SHOW GRANTS FOR 'u_6_401018'@'localhost';
+Grants for u_6_401018@localhost
+GRANT USAGE ON *.* TO 'u_6_401018'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'u_6_401018'@'localhost'
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+connect(localhost,u_6_401018,,test,MYSQL_PORT,MYSQL_SOCK);
+USE db_datadict;
+create view db_datadict.v_401018 as
+select * from information_schema.schemata;
+SELECT * FROM v_401018 ORDER BY 2 DESC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+
+root@localhost NULL
+DROP USER 'u_6_401018'@'localhost';
+DROP DATABASE db_datadict;
+
+Testcase 3.2.1.19:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401019'@'localhost';
+grant alter on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant alter routine on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create routine on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create temporary tables
+on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant delete on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant drop on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant execute on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant index on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant insert on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant lock tables on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant update on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SELECT * FROM information_schema.table_privileges
+WHERE table_schema = "information_schema";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM information_schema.column_privileges
+WHERE table_schema = "information_schema";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+DROP USER 'u_6_401019'@'localhost';
+
+Testcase 3.2.1.20:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401020'@'localhost';
+connect(localhost,u_6_401020,,test,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+CREATE TABLE tb_not_allowed ( col TEXT );
+ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema
+create view res_v1 as select * from information_schema.schemata;
+ERROR 42S02: Unknown table 'res_v1' in information_schema
+alter table schemata modify catalog_name varchar(255);
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+update schemata set catalog_name = 'abc'
+ where schema_name = 'information_schema';
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+CREATE PROCEDURE sp_3_2_1_20()
+BEGIN
+INSERT INTO information_schema.schema_privileges (table_schema,privilege_type)
+VALUES('db2','insert');
+END//
+ERROR 42000: Unknown database 'information_schema'
+DELETE FROM schemata WHERE schema_name = 'information_schema';
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+
+root@localhost NULL
+DROP USER 'u_6_401020'@'localhost';
+
+Testcase 3.2.2.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC character_sets;
+Field Type Null Key Default Extra
+CHARACTER_SET_NAME varchar(64) NO
+DEFAULT_COLLATE_NAME varchar(64) NO
+DESCRIPTION varchar(60) NO
+MAXLEN bigint(3) NO 0
+SHOW CREATE TABLE character_sets;
+Table Create Table
+CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '',
+ `DESCRIPTION` varchar(60) NOT NULL default '',
+ `MAXLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'character_sets'
+ORDER BY ordinal_position;
+COUNT(*)
+4
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'character_sets'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+
+Testcase 3.2.2.2:
+--------------------------------------------------------------------------------
+
+root@localhost information_schema
+SELECT * FROM information_schema.character_sets;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+latin1 latin1_swedish_ci cp1252 West European 1
+latin2 latin2_general_ci ISO 8859-2 Central European 1
+swe7 swe7_swedish_ci 7bit Swedish 1
+ascii ascii_general_ci US ASCII 1
+ujis ujis_japanese_ci EUC-JP Japanese 3
+sjis sjis_japanese_ci Shift-JIS Japanese 2
+hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
+tis620 tis620_thai_ci TIS620 Thai 1
+euckr euckr_korean_ci EUC-KR Korean 2
+koi8u koi8u_general_ci KOI8-U Ukrainian 1
+gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
+greek greek_general_ci ISO 8859-7 Greek 1
+cp1250 cp1250_general_ci Windows Central European 1
+gbk gbk_chinese_ci GBK Simplified Chinese 2
+latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
+armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
+utf8 utf8_general_ci UTF-8 Unicode 3
+ucs2 ucs2_general_ci UCS-2 Unicode 2
+cp866 cp866_general_ci DOS Russian 1
+keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
+macce macce_general_ci Mac Central European 1
+macroman macroman_general_ci Mac West European 1
+cp852 cp852_general_ci DOS Central European 1
+latin7 latin7_general_ci ISO 8859-13 Baltic 1
+cp1251 cp1251_general_ci Windows Cyrillic 1
+cp1256 cp1256_general_ci Windows Arabic 1
+cp1257 cp1257_general_ci Windows Baltic 1
+binary binary Binary pseudo charset 1
+geostd8 geostd8_general_ci GEOSTD8 Georgian 1
+cp932 cp932_japanese_ci SJIS for Windows Japanese 2
+eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
+
+Testcase 3.2.2.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.3.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC collations;
+Field Type Null Key Default Extra
+COLLATION_NAME varchar(64) NO
+CHARACTER_SET_NAME varchar(64) NO
+ID bigint(11) NO 0
+IS_DEFAULT varchar(3) NO
+IS_COMPILED varchar(3) NO
+SORTLEN bigint(3) NO 0
+SHOW CREATE TABLE collations;
+Table Create Table
+COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
+ `COLLATION_NAME` varchar(64) NOT NULL default '',
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `ID` bigint(11) NOT NULL default '0',
+ `IS_DEFAULT` varchar(3) NOT NULL default '',
+ `IS_COMPILED` varchar(3) NOT NULL default '',
+ `SORTLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collations'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collations'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+
+Testcase 3.2.3.2:
+--------------------------------------------------------------------------------
+SELECT * FROM collations;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+big5_bin big5 84 Yes 1
+dec8_swedish_ci dec8 3 Yes 0
+dec8_bin dec8 69 0
+cp850_general_ci cp850 4 Yes 0
+cp850_bin cp850 80 0
+hp8_english_ci hp8 6 Yes 0
+hp8_bin hp8 72 0
+koi8r_general_ci koi8r 7 Yes 0
+koi8r_bin koi8r 74 0
+latin1_german1_ci latin1 5 Yes 1
+latin1_swedish_ci latin1 8 Yes Yes 1
+latin1_danish_ci latin1 15 Yes 1
+latin1_german2_ci latin1 31 Yes 2
+latin1_bin latin1 47 Yes 1
+latin1_general_ci latin1 48 Yes 1
+latin1_general_cs latin1 49 Yes 1
+latin1_spanish_ci latin1 94 Yes 1
+latin2_czech_cs latin2 2 Yes 4
+latin2_general_ci latin2 9 Yes Yes 1
+latin2_hungarian_ci latin2 21 Yes 1
+latin2_croatian_ci latin2 27 Yes 1
+latin2_bin latin2 77 Yes 1
+swe7_swedish_ci swe7 10 Yes 0
+swe7_bin swe7 82 0
+ascii_general_ci ascii 11 Yes 0
+ascii_bin ascii 65 0
+ujis_japanese_ci ujis 12 Yes Yes 1
+ujis_bin ujis 91 Yes 1
+sjis_japanese_ci sjis 13 Yes Yes 1
+sjis_bin sjis 88 Yes 1
+hebrew_general_ci hebrew 16 Yes 0
+hebrew_bin hebrew 71 0
+tis620_thai_ci tis620 18 Yes Yes 4
+tis620_bin tis620 89 Yes 1
+euckr_korean_ci euckr 19 Yes Yes 1
+euckr_bin euckr 85 Yes 1
+koi8u_general_ci koi8u 22 Yes 0
+koi8u_bin koi8u 75 0
+gb2312_chinese_ci gb2312 24 Yes Yes 1
+gb2312_bin gb2312 86 Yes 1
+greek_general_ci greek 25 Yes 0
+greek_bin greek 70 0
+cp1250_general_ci cp1250 26 Yes Yes 1
+cp1250_czech_cs cp1250 34 Yes 2
+cp1250_croatian_ci cp1250 44 Yes 1
+cp1250_bin cp1250 66 Yes 1
+gbk_chinese_ci gbk 28 Yes Yes 1
+gbk_bin gbk 87 Yes 1
+latin5_turkish_ci latin5 30 Yes 0
+latin5_bin latin5 78 0
+armscii8_general_ci armscii8 32 Yes 0
+armscii8_bin armscii8 64 0
+utf8_general_ci utf8 33 Yes Yes 1
+utf8_bin utf8 83 Yes 1
+utf8_unicode_ci utf8 192 Yes 8
+utf8_icelandic_ci utf8 193 Yes 8
+utf8_latvian_ci utf8 194 Yes 8
+utf8_romanian_ci utf8 195 Yes 8
+utf8_slovenian_ci utf8 196 Yes 8
+utf8_polish_ci utf8 197 Yes 8
+utf8_estonian_ci utf8 198 Yes 8
+utf8_spanish_ci utf8 199 Yes 8
+utf8_swedish_ci utf8 200 Yes 8
+utf8_turkish_ci utf8 201 Yes 8
+utf8_czech_ci utf8 202 Yes 8
+utf8_danish_ci utf8 203 Yes 8
+utf8_lithuanian_ci utf8 204 Yes 8
+utf8_slovak_ci utf8 205 Yes 8
+utf8_spanish2_ci utf8 206 Yes 8
+utf8_roman_ci utf8 207 Yes 8
+utf8_persian_ci utf8 208 Yes 8
+utf8_esperanto_ci utf8 209 Yes 8
+utf8_hungarian_ci utf8 210 Yes 8
+ucs2_general_ci ucs2 35 Yes Yes 1
+ucs2_bin ucs2 90 Yes 1
+ucs2_unicode_ci ucs2 128 Yes 8
+ucs2_icelandic_ci ucs2 129 Yes 8
+ucs2_latvian_ci ucs2 130 Yes 8
+ucs2_romanian_ci ucs2 131 Yes 8
+ucs2_slovenian_ci ucs2 132 Yes 8
+ucs2_polish_ci ucs2 133 Yes 8
+ucs2_estonian_ci ucs2 134 Yes 8
+ucs2_spanish_ci ucs2 135 Yes 8
+ucs2_swedish_ci ucs2 136 Yes 8
+ucs2_turkish_ci ucs2 137 Yes 8
+ucs2_czech_ci ucs2 138 Yes 8
+ucs2_danish_ci ucs2 139 Yes 8
+ucs2_lithuanian_ci ucs2 140 Yes 8
+ucs2_slovak_ci ucs2 141 Yes 8
+ucs2_spanish2_ci ucs2 142 Yes 8
+ucs2_roman_ci ucs2 143 Yes 8
+ucs2_persian_ci ucs2 144 Yes 8
+ucs2_esperanto_ci ucs2 145 Yes 8
+ucs2_hungarian_ci ucs2 146 Yes 8
+cp866_general_ci cp866 36 Yes 0
+cp866_bin cp866 68 0
+keybcs2_general_ci keybcs2 37 Yes 0
+keybcs2_bin keybcs2 73 0
+macce_general_ci macce 38 Yes 0
+macce_bin macce 43 0
+macroman_general_ci macroman 39 Yes 0
+macroman_bin macroman 53 0
+cp852_general_ci cp852 40 Yes 0
+cp852_bin cp852 81 0
+latin7_estonian_cs latin7 20 0
+latin7_general_ci latin7 41 Yes 0
+latin7_general_cs latin7 42 0
+latin7_bin latin7 79 0
+cp1251_bulgarian_ci cp1251 14 0
+cp1251_ukrainian_ci cp1251 23 0
+cp1251_bin cp1251 50 0
+cp1251_general_ci cp1251 51 Yes 0
+cp1251_general_cs cp1251 52 0
+cp1256_general_ci cp1256 57 Yes 0
+cp1256_bin cp1256 67 0
+cp1257_lithuanian_ci cp1257 29 0
+cp1257_bin cp1257 58 0
+cp1257_general_ci cp1257 59 Yes 0
+binary binary 63 Yes Yes 1
+geostd8_general_ci geostd8 92 Yes 0
+geostd8_bin geostd8 93 0
+cp932_japanese_ci cp932 95 Yes Yes 1
+cp932_bin cp932 96 Yes 1
+eucjpms_japanese_ci eucjpms 97 Yes Yes 1
+eucjpms_bin eucjpms 98 Yes 1
+
+Testcase 3.2.3.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.4.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC collation_character_set_applicability;
+Field Type Null Key Default Extra
+COLLATION_NAME varchar(64) NO
+CHARACTER_SET_NAME varchar(64) NO
+SHOW CREATE TABLE collation_character_set_applicability;
+Table Create Table
+COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` (
+ `COLLATION_NAME` varchar(64) NOT NULL default '',
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collation_character_set_applicability'
+ORDER BY ordinal_position;
+COUNT(*)
+2
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collation_character_set_applicability'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.4.2:
+--------------------------------------------------------------------------------
+SELECT * FROM collation_character_set_applicability;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+cp850_bin cp850
+hp8_english_ci hp8
+hp8_bin hp8
+koi8r_general_ci koi8r
+koi8r_bin koi8r
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+latin2_czech_cs latin2
+latin2_general_ci latin2
+latin2_hungarian_ci latin2
+latin2_croatian_ci latin2
+latin2_bin latin2
+swe7_swedish_ci swe7
+swe7_bin swe7
+ascii_general_ci ascii
+ascii_bin ascii
+ujis_japanese_ci ujis
+ujis_bin ujis
+sjis_japanese_ci sjis
+sjis_bin sjis
+hebrew_general_ci hebrew
+hebrew_bin hebrew
+tis620_thai_ci tis620
+tis620_bin tis620
+euckr_korean_ci euckr
+euckr_bin euckr
+koi8u_general_ci koi8u
+koi8u_bin koi8u
+gb2312_chinese_ci gb2312
+gb2312_bin gb2312
+greek_general_ci greek
+greek_bin greek
+cp1250_general_ci cp1250
+cp1250_czech_cs cp1250
+cp1250_croatian_ci cp1250
+cp1250_bin cp1250
+gbk_chinese_ci gbk
+gbk_bin gbk
+latin5_turkish_ci latin5
+latin5_bin latin5
+armscii8_general_ci armscii8
+armscii8_bin armscii8
+utf8_general_ci utf8
+utf8_bin utf8
+utf8_unicode_ci utf8
+utf8_icelandic_ci utf8
+utf8_latvian_ci utf8
+utf8_romanian_ci utf8
+utf8_slovenian_ci utf8
+utf8_polish_ci utf8
+utf8_estonian_ci utf8
+utf8_spanish_ci utf8
+utf8_swedish_ci utf8
+utf8_turkish_ci utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_lithuanian_ci utf8
+utf8_slovak_ci utf8
+utf8_spanish2_ci utf8
+utf8_roman_ci utf8
+utf8_persian_ci utf8
+utf8_esperanto_ci utf8
+utf8_hungarian_ci utf8
+ucs2_general_ci ucs2
+ucs2_bin ucs2
+ucs2_unicode_ci ucs2
+ucs2_icelandic_ci ucs2
+ucs2_latvian_ci ucs2
+ucs2_romanian_ci ucs2
+ucs2_slovenian_ci ucs2
+ucs2_polish_ci ucs2
+ucs2_estonian_ci ucs2
+ucs2_spanish_ci ucs2
+ucs2_swedish_ci ucs2
+ucs2_turkish_ci ucs2
+ucs2_czech_ci ucs2
+ucs2_danish_ci ucs2
+ucs2_lithuanian_ci ucs2
+ucs2_slovak_ci ucs2
+ucs2_spanish2_ci ucs2
+ucs2_roman_ci ucs2
+ucs2_persian_ci ucs2
+ucs2_esperanto_ci ucs2
+ucs2_hungarian_ci ucs2
+cp866_general_ci cp866
+cp866_bin cp866
+keybcs2_general_ci keybcs2
+keybcs2_bin keybcs2
+macce_general_ci macce
+macce_bin macce
+macroman_general_ci macroman
+macroman_bin macroman
+cp852_general_ci cp852
+cp852_bin cp852
+latin7_estonian_cs latin7
+latin7_general_ci latin7
+latin7_general_cs latin7
+latin7_bin latin7
+cp1251_bulgarian_ci cp1251
+cp1251_ukrainian_ci cp1251
+cp1251_bin cp1251
+cp1251_general_ci cp1251
+cp1251_general_cs cp1251
+cp1256_general_ci cp1256
+cp1256_bin cp1256
+cp1257_lithuanian_ci cp1257
+cp1257_bin cp1257
+cp1257_general_ci cp1257
+binary binary
+geostd8_general_ci geostd8
+geostd8_bin geostd8
+cp932_japanese_ci cp932
+cp932_bin cp932
+eucjpms_japanese_ci eucjpms
+eucjpms_bin eucjpms
+
+Testcase 3.2.4.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.5.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC column_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE column_privileges;
+Table Create Table
+COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'column_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+7
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'column_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT);
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION;
+GRANT ALL ON db_datadict.* TO 'user_3'@'localhost';
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+
+FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has
+-------------------------------------------------------------------------------------
+GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION;
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES
+---------------------------------------------------------------------------------
+SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 SELECT YES
+'user_3'@'localhost' NULL db_datadict res_t40502 INSERT YES
+SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict SELECT NO
+'user_3'@'localhost' NULL db_datadict INSERT NO
+'user_3'@'localhost' NULL db_datadict UPDATE NO
+'user_3'@'localhost' NULL db_datadict DELETE NO
+'user_3'@'localhost' NULL db_datadict CREATE NO
+'user_3'@'localhost' NULL db_datadict DROP NO
+'user_3'@'localhost' NULL db_datadict REFERENCES NO
+'user_3'@'localhost' NULL db_datadict INDEX NO
+'user_3'@'localhost' NULL db_datadict ALTER NO
+'user_3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO
+'user_3'@'localhost' NULL db_datadict LOCK TABLES NO
+'user_3'@'localhost' NULL db_datadict EXECUTE NO
+'user_3'@'localhost' NULL db_datadict CREATE VIEW NO
+'user_3'@'localhost' NULL db_datadict SHOW VIEW NO
+'user_3'@'localhost' NULL db_datadict CREATE ROUTINE NO
+'user_3'@'localhost' NULL db_datadict ALTER ROUTINE NO
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+
+FIXME: check whether it is intended that *my* grants to others are *NOT* shown here
+-----------------------------------------------------------------------------------
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+
+user_2@localhost db_datadict
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO
+
+root@localhost db_datadict
+DROP TABLE IF EXISTS db_datadict.res_t40502;
+DROP DATABASE IF EXISTS db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+
+Testcase 3.2.6.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC columns;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+ORDINAL_POSITION bigint(21) NO 0
+COLUMN_DEFAULT longtext YES NULL
+IS_NULLABLE varchar(3) NO
+DATA_TYPE varchar(64) NO
+CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL
+CHARACTER_OCTET_LENGTH bigint(21) YES NULL
+NUMERIC_PRECISION bigint(21) YES NULL
+NUMERIC_SCALE bigint(21) YES NULL
+CHARACTER_SET_NAME varchar(64) YES NULL
+COLLATION_NAME varchar(64) YES NULL
+COLUMN_TYPE longtext NO NULL
+COLUMN_KEY varchar(3) NO
+EXTRA varchar(20) NO
+PRIVILEGES varchar(80) NO
+COLUMN_COMMENT varchar(255) NO
+SHOW CREATE TABLE columns;
+Table Create Table
+COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `ORDINAL_POSITION` bigint(21) NOT NULL default '0',
+ `COLUMN_DEFAULT` longtext,
+ `IS_NULLABLE` varchar(3) NOT NULL default '',
+ `DATA_TYPE` varchar(64) NOT NULL default '',
+ `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL,
+ `CHARACTER_OCTET_LENGTH` bigint(21) default NULL,
+ `NUMERIC_PRECISION` bigint(21) default NULL,
+ `NUMERIC_SCALE` bigint(21) default NULL,
+ `CHARACTER_SET_NAME` varchar(64) default NULL,
+ `COLLATION_NAME` varchar(64) default NULL,
+ `COLUMN_TYPE` longtext NOT NULL,
+ `COLUMN_KEY` varchar(3) NOT NULL default '',
+ `EXTRA` varchar(20) NOT NULL default '',
+ `PRIVILEGES` varchar(80) NOT NULL default '',
+ `COLUMN_COMMENT` varchar(255) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ORDER BY ordinal_position;
+COUNT(*)
+19
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+
+Testcase 3.2.6.2 + 3.2.6.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int);
+grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost';
+create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int);
+GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL db_datadict t_6_406001 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL db_datadict t_6_406001 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL db_datadict t_6_406002 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL db_datadict t_6_406002 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
+NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
+NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
+NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
+NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
+NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
+NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
+NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
+NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references
+NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
+NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
+NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references
+NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
+NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
+NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
+NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
+NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
+NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
+NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references
+NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select
+NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
+NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references
+NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) insert
+NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
+NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references
+NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+
+root@localhost db_datadict
+
+Show the quotient of COL and CML for all COLUMNS
+------------------------------------------------
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+1.0000 binary NULL NULL
+1.0000 blob NULL NULL
+1.0000 longblob NULL NULL
+1.0000 mediumblob NULL NULL
+1.0000 tinyblob NULL NULL
+1.0000 char latin1 latin1_bin
+1.0000 varchar latin1 latin1_bin
+1.0000 char latin1 latin1_swedish_ci
+1.0000 enum latin1 latin1_swedish_ci
+1.0000 longtext latin1 latin1_swedish_ci
+1.0000 mediumtext latin1 latin1_swedish_ci
+1.0000 set latin1 latin1_swedish_ci
+1.0000 text latin1 latin1_swedish_ci
+1.0000 tinytext latin1 latin1_swedish_ci
+1.0000 longtext utf8 utf8_general_ci
+1.0000 text utf8 utf8_general_ci
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+2.0000 char ucs2 ucs2_general_ci
+2.0000 longtext ucs2 ucs2_general_ci
+2.0000 varchar ucs2 ucs2_general_ci
+2.0079 tinytext ucs2 ucs2_general_ci
+3.0000 char utf8 utf8_bin
+3.0000 enum utf8 utf8_bin
+3.0000 char utf8 utf8_general_ci
+3.0000 enum utf8 utf8_general_ci
+3.0000 set utf8 utf8_general_ci
+3.0000 varchar utf8 utf8_general_ci
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+NULL bigint NULL NULL
+NULL date NULL NULL
+NULL datetime NULL NULL
+NULL decimal NULL NULL
+NULL double NULL NULL
+NULL double unsigned NULL NULL
+NULL double unsigned zerofill NULL NULL
+NULL float NULL NULL
+NULL float unsigned NULL NULL
+NULL float unsigned zerofill NULL NULL
+NULL int NULL NULL
+NULL mediumint NULL NULL
+NULL smallint NULL NULL
+NULL time NULL NULL
+NULL timestamp NULL NULL
+NULL tinyint NULL NULL
+NULL year NULL NULL
+NULL char latin1 latin1_bin
+NULL char latin1 latin1_swedish_ci
+NULL varchar latin1 latin1_swedish_ci
+NULL char ucs2 ucs2_general_ci
+--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
+--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
+SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+TABLE_SCHEMA,
+TABLE_NAME,
+COLUMN_NAME,
+DATA_TYPE,
+CHARACTER_MAXIMUM_LENGTH,
+CHARACTER_OCTET_LENGTH,
+CHARACTER_SET_NAME,
+COLLATION_NAME,
+COLUMN_TYPE
+FROM information_schema.columns
+ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
+COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
+1.0000 db_datadict t_6_406001 f1 char 10 10 latin1 latin1_swedish_ci char(10)
+1.0000 db_datadict t_6_406001 f2 text 65535 65535 latin1 latin1_swedish_ci text
+NULL db_datadict t_6_406001 f3 date NULL NULL NULL NULL date
+NULL db_datadict t_6_406001 f4 int NULL NULL NULL NULL int(11)
+1.0000 db_datadict t_6_406002 f1 char 10 10 latin1 latin1_swedish_ci char(10)
+1.0000 db_datadict t_6_406002 f2 text 65535 65535 latin1 latin1_swedish_ci text
+NULL db_datadict t_6_406002 f3 date NULL NULL NULL NULL date
+NULL db_datadict t_6_406002 f4 int NULL NULL NULL NULL int(11)
+3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
+NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
+3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
+NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21)
+1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20)
+3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80)
+3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255)
+3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10)
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
+3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
+1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8)
+3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
+NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
+NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
+1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
+3.0000 information_schema SCHEMATA CATALOG_NAME varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA SQL_PATH varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema STATISTICS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1)
+3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2)
+3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1)
+NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10)
+3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16)
+3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16)
+3.0000 information_schema TABLES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
+NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
+NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
+NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
+3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
+3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4)
+1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9)
+3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
+NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime
+1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema VIEWS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8)
+3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
+3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
+3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64)
+NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
+3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql db User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql func name char 64 192 utf8 utf8_bin char(64)
+NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1)
+3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128)
+3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate')
+NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128)
+NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text
+1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text
+3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128)
+3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64)
+3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE')
+3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64)
+3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL')
+3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
+3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO')
+3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER')
+1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob
+3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64)
+1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob
+3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77)
+NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
+NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE')
+3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE')
+3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
+3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
+NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77)
+NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view')
+3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
+NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N')
+NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20)
+NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11)
+3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20)
+NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11)
+NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned
+3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8)
+3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql user User char 16 48 utf8 utf8_bin char(16)
+1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41)
+3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED')
+1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob
+1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob
+1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob
+NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned
+1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t1 f3 date NULL NULL NULL NULL date
+NULL test t1 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t1 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t10 f3 date NULL NULL NULL NULL date
+NULL test t10 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t10 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t11 f3 date NULL NULL NULL NULL date
+NULL test t11 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t11 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t2 f3 date NULL NULL NULL NULL date
+NULL test t2 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t2 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20)
+NULL test t3 f3 int NULL NULL NULL NULL int(11)
+1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t4 f3 date NULL NULL NULL NULL date
+NULL test t4 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t4 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t7 f3 date NULL NULL NULL NULL date
+NULL test t7 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t8 f3 date NULL NULL NULL NULL date
+NULL test t8 f4 int NULL NULL NULL NULL int(11)
+NULL test t9 f1 int NULL NULL NULL NULL int(11)
+1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t9 f3 int NULL NULL NULL NULL int(11)
+NULL test tb1 f1 char 0 0 latin1 latin1_swedish_ci char(0)
+NULL test tb1 f2 char 0 0 latin1 latin1_bin char(0)
+NULL test tb1 f3 char 0 0 latin1 latin1_swedish_ci char(0)
+2.0079 test tb1 f4 tinytext 127 255 ucs2 ucs2_general_ci tinytext
+1.0000 test tb1 f5 text 65535 65535 latin1 latin1_swedish_ci text
+1.0000 test tb1 f6 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext
+1.0000 test tb1 f7 longtext 4294967295 4294967295 latin1 latin1_swedish_ci longtext
+1.0000 test tb1 f8 tinyblob 255 255 NULL NULL tinyblob
+1.0000 test tb1 f9 blob 65535 65535 NULL NULL blob
+1.0000 test tb1 f10 mediumblob 16777215 16777215 NULL NULL mediumblob
+1.0000 test tb1 f11 longblob 4294967295 4294967295 NULL NULL longblob
+1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1)
+NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4)
+NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned
+NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6)
+NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned
+NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9)
+NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned
+NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb1 f25 int NULL NULL NULL NULL int(11)
+NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned
+NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20)
+NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned
+NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb2 f73 double NULL NULL NULL NULL double
+NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f77 double NULL NULL NULL NULL double
+NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f81 float NULL NULL NULL NULL float
+NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f85 float NULL NULL NULL NULL float
+NULL test tb2 f86 float NULL NULL NULL NULL float
+NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f93 float NULL NULL NULL NULL float
+NULL test tb2 f94 double NULL NULL NULL NULL double
+NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f101 date NULL NULL NULL NULL date
+NULL test tb2 f102 time NULL NULL NULL NULL time
+NULL test tb2 f103 datetime NULL NULL NULL NULL datetime
+NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp
+NULL test tb2 f105 year NULL NULL NULL NULL year(4)
+NULL test tb2 f106 year NULL NULL NULL NULL year(4)
+NULL test tb2 f107 year NULL NULL NULL NULL year(4)
+1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1)
+1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb3 f121 tinytext 255 255 latin1 latin1_swedish_ci tinytext
+1.0000 test tb3 f122 text 65535 65535 latin1 latin1_swedish_ci text
+1.0000 test tb3 f123 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext
+2.0000 test tb3 f124 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext
+1.0000 test tb3 f125 tinyblob 255 255 NULL NULL tinyblob
+1.0000 test tb3 f126 blob 65535 65535 NULL NULL blob
+1.0000 test tb3 f127 mediumblob 16777215 16777215 NULL NULL mediumblob
+1.0000 test tb3 f128 longblob 4294967295 4294967295 NULL NULL longblob
+1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1)
+NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4)
+NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned
+NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6)
+NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned
+NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9)
+NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned
+NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb3 f142 int NULL NULL NULL NULL int(11)
+NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned
+NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20)
+NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned
+NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb4 f190 double NULL NULL NULL NULL double
+NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f194 double NULL NULL NULL NULL double
+NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f198 float NULL NULL NULL NULL float
+NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f202 float NULL NULL NULL NULL float
+NULL test tb4 f203 float NULL NULL NULL NULL float
+NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f210 float NULL NULL NULL NULL float
+NULL test tb4 f211 double NULL NULL NULL NULL double
+NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f218 date NULL NULL NULL NULL date
+NULL test tb4 f219 time NULL NULL NULL NULL time
+NULL test tb4 f220 datetime NULL NULL NULL NULL datetime
+NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp
+NULL test tb4 f222 year NULL NULL NULL NULL year(4)
+NULL test tb4 f223 year NULL NULL NULL NULL year(4)
+NULL test tb4 f224 year NULL NULL NULL NULL year(4)
+1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+NULL test tb4 f235 char 0 0 ucs2 ucs2_general_ci char(0)
+1.0000 test tb4 f236 char 90 90 latin1 latin1_swedish_ci char(90)
+1.0000 test tb4 f237 char 255 255 latin1 latin1_swedish_ci char(255)
+NULL test tb4 f238 varchar 0 0 latin1 latin1_swedish_ci varchar(0)
+1.0000 test tb4 f239 varchar 20000 20000 latin1 latin1_bin varchar(20000)
+2.0000 test tb4 f240 varchar 2000 4000 ucs2 ucs2_general_ci varchar(2000)
+2.0000 test tb4 f241 char 100 200 ucs2 ucs2_general_ci char(100)
+NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test1 tb2 f73 double NULL NULL NULL NULL double
+NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f77 double NULL NULL NULL NULL double
+NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f81 float NULL NULL NULL NULL float
+NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f85 float NULL NULL NULL NULL float
+NULL test1 tb2 f86 float NULL NULL NULL NULL float
+NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f93 float NULL NULL NULL NULL float
+NULL test1 tb2 f94 double NULL NULL NULL NULL double
+NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f101 date NULL NULL NULL NULL date
+NULL test1 tb2 f102 time NULL NULL NULL NULL time
+NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime
+NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp
+NULL test1 tb2 f105 year NULL NULL NULL NULL year(4)
+NULL test1 tb2 f106 year NULL NULL NULL NULL year(4)
+NULL test1 tb2 f107 year NULL NULL NULL NULL year(4)
+1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test4 t6 f3 date NULL NULL NULL NULL date
+NULL test4 t6 f4 int NULL NULL NULL NULL int(11)
+1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test4 t6 f6 int NULL NULL NULL NULL int(11)
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE IF EXISTS t_6_406001;
+DROP TABLE IF EXISTS t_6_406002;
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.7.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC key_column_usage;
+Field Type Null Key Default Extra
+CONSTRAINT_CATALOG varchar(4096) YES NULL
+CONSTRAINT_SCHEMA varchar(64) NO
+CONSTRAINT_NAME varchar(64) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+ORDINAL_POSITION bigint(10) NO 0
+POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
+REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
+REFERENCED_TABLE_NAME varchar(64) YES NULL
+REFERENCED_COLUMN_NAME varchar(64) YES NULL
+SHOW CREATE TABLE key_column_usage;
+Table Create Table
+KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` (
+ `CONSTRAINT_CATALOG` varchar(4096) default NULL,
+ `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '',
+ `CONSTRAINT_NAME` varchar(64) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `ORDINAL_POSITION` bigint(10) NOT NULL default '0',
+ `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL,
+ `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL,
+ `REFERENCED_TABLE_NAME` varchar(64) default NULL,
+ `REFERENCED_COLUMN_NAME` varchar(64) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'key_column_usage'
+ORDER BY ordinal_position;
+COUNT(*)
+12
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'key_column_usage'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.7.2 + 3.2.7.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+CREATE TABLE t_40701 (
+f1 INT NOT NULL, PRIMARY KEY(f1),
+f2 INT, INDEX f2_ind(f2)
+);
+GRANT SELECT ON t_40701 to 'user_1'@'localhost';
+CREATE TABLE t_40702 (
+f1 INT NOT NULL, PRIMARY KEY(f1),
+f2 INT, INDEX f2_ind(f2)
+);
+GRANT SELECT ON t_40702 to 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL
+NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE t_40701;
+DROP TABLE t_40702;
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.8.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC routines;
+Field Type Null Key Default Extra
+SPECIFIC_NAME varchar(64) NO
+ROUTINE_CATALOG varchar(4096) YES NULL
+ROUTINE_SCHEMA varchar(64) NO
+ROUTINE_NAME varchar(64) NO
+ROUTINE_TYPE varchar(9) NO
+DTD_IDENTIFIER varchar(64) YES NULL
+ROUTINE_BODY varchar(8) NO
+ROUTINE_DEFINITION longtext YES NULL
+EXTERNAL_NAME varchar(64) YES NULL
+EXTERNAL_LANGUAGE varchar(64) YES NULL
+PARAMETER_STYLE varchar(8) NO
+IS_DETERMINISTIC varchar(3) NO
+SQL_DATA_ACCESS varchar(64) NO
+SQL_PATH varchar(64) YES NULL
+SECURITY_TYPE varchar(7) NO
+CREATED datetime NO 0000-00-00 00:00:00
+LAST_ALTERED datetime NO 0000-00-00 00:00:00
+SQL_MODE longtext NO NULL
+ROUTINE_COMMENT varchar(64) NO
+DEFINER varchar(77) NO
+SHOW CREATE TABLE routines;
+Table Create Table
+ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
+ `SPECIFIC_NAME` varchar(64) NOT NULL default '',
+ `ROUTINE_CATALOG` varchar(4096) default NULL,
+ `ROUTINE_SCHEMA` varchar(64) NOT NULL default '',
+ `ROUTINE_NAME` varchar(64) NOT NULL default '',
+ `ROUTINE_TYPE` varchar(9) NOT NULL default '',
+ `DTD_IDENTIFIER` varchar(64) default NULL,
+ `ROUTINE_BODY` varchar(8) NOT NULL default '',
+ `ROUTINE_DEFINITION` longtext,
+ `EXTERNAL_NAME` varchar(64) default NULL,
+ `EXTERNAL_LANGUAGE` varchar(64) default NULL,
+ `PARAMETER_STYLE` varchar(8) NOT NULL default '',
+ `IS_DETERMINISTIC` varchar(3) NOT NULL default '',
+ `SQL_DATA_ACCESS` varchar(64) NOT NULL default '',
+ `SQL_PATH` varchar(64) default NULL,
+ `SECURITY_TYPE` varchar(7) NOT NULL default '',
+ `CREATED` datetime NOT NULL default '0000-00-00 00:00:00',
+ `LAST_ALTERED` datetime NOT NULL default '0000-00-00 00:00:00',
+ `SQL_MODE` longtext NOT NULL,
+ `ROUTINE_COMMENT` varchar(64) NOT NULL default '',
+ `DEFINER` varchar(77) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'routines'
+ORDER BY ordinal_position;
+COUNT(*)
+20
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'routines'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+
+Testcase 3.2.8.2 + 3.2.8.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+INSERT INTO res_6_408002_1(f1, f2, f3, f4)
+VALUES('abc', 'xyz', '1989-11-09', 0815);
+DROP PROCEDURE IF EXISTS sp_6_408002_1;
+CREATE PROCEDURE sp_6_408002_1()
+BEGIN
+SELECT * FROM db_datadict.res_6_408002_1;
+END//
+CREATE DATABASE db_datadict_2;
+USE db_datadict_2;
+CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+INSERT INTO res_6_408002_2(f1, f2, f3, f4)
+VALUES('abc', 'xyz', '1990-10-03', 4711);
+DROP PROCEDURE IF EXISTS sp_6_408002_2;
+CREATE PROCEDURE sp_6_408002_2()
+BEGIN
+SELECT * FROM db_datadict_2.res_6_408002_2;
+END//
+GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+
+root@localhost db_datadict_2
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+use db_datadict;
+DROP TABLE res_6_408002_1;
+DROP PROCEDURE sp_6_408002_1;
+USE db_datadict_2;
+DROP TABLE res_6_408002_2;
+DROP PROCEDURE sp_6_408002_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.8.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10);
+drop procedure if exists sp_6_408004;
+create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10);
+
+Checking the max. possible length of (currently) 4 GByte is not possible in this environment here.
+--------------------------------------------------------------------------------------------------
+create procedure sp_6_408004 ()
+begin
+declare done integer default 0;
+declare variable_number_1 longtext;
+declare variable_number_2 mediumint;
+declare variable_number_3 longblob;
+declare variable_number_4 real;
+declare variable_number_5 year;
+declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+begin
+open cursor_number_1;
+while done <> 1 do
+fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+variable_number_4, variable_number_5);
+end if;
+end while;
+begin
+begin
+set done = 0;
+open cursor_number_2;
+while done <> 1 do
+fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+set done = 0;
+open cursor_number_3;
+while done <> 1 do
+fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+end;
+begin
+set done = 0;
+open cursor_number_4;
+while done <> 1 do
+fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+begin
+set done = 0;
+open cursor_number_5;
+while done <> 1 do
+fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+end//
+call sp_6_408004 ();
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+select * from res_6_408004_2;
+f1 f2 f3 f4 f5
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+SELECT *, LENGTH(routine_definition)
+FROM information_schema.routines
+WHERE routine_schema = 'db_datadict';
+SPECIFIC_NAME sp_6_408004
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_datadict
+ROUTINE_NAME sp_6_408004
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION begin
+declare done integer default 0;
+declare variable_number_1 longtext;
+declare variable_number_2 mediumint;
+declare variable_number_3 longblob;
+declare variable_number_4 real;
+declare variable_number_5 year;
+declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+begin
+open cursor_number_1;
+while done <> 1 do
+fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+variable_number_4, variable_number_5);
+end if;
+end while;
+begin
+begin
+set done = 0;
+open cursor_number_2;
+while done <> 1 do
+fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+set done = 0;
+open cursor_number_3;
+while done <> 1 do
+fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+end;
+begin
+set done = 0;
+open cursor_number_4;
+while done <> 1 do
+fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+begin
+set done = 0;
+open cursor_number_5;
+while done <> 1 do
+fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+end
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED YYYY-MM-DD hh:mm:ss
+LAST_ALTERED YYYY-MM-DD hh:mm:ss
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+LENGTH(routine_definition) 2549
+use db_datadict;
+drop procedure sp_6_408004;
+drop table res_6_408004_1;
+drop table res_6_408004_2;
+use test;
+drop database db_datadict;
+
+Testcase 3.2.9.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC schemata;
+Field Type Null Key Default Extra
+CATALOG_NAME varchar(4096) YES NULL
+SCHEMA_NAME varchar(64) NO
+DEFAULT_CHARACTER_SET_NAME varchar(64) NO
+DEFAULT_COLLATION_NAME varchar(64) NO
+SQL_PATH varchar(4096) YES NULL
+SHOW CREATE TABLE schemata;
+Table Create Table
+SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` (
+ `CATALOG_NAME` varchar(4096) default NULL,
+ `SCHEMA_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '',
+ `SQL_PATH` varchar(4096) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schemata'
+ORDER BY ordinal_position;
+COUNT(*)
+5
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schemata'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+
+Testcase 3.2.9.2 + 3.2.9.3:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict_1;
+CREATE DATABASE db_datadict_2;
+GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict_1,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+3
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict_1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+3
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict_2 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+2
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+
+root@localhost information_schema
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE db_datadict_1;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.10.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC table_constraints;
+Field Type Null Key Default Extra
+CONSTRAINT_CATALOG varchar(4096) YES NULL
+CONSTRAINT_SCHEMA varchar(64) NO
+CONSTRAINT_NAME varchar(64) NO
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+CONSTRAINT_TYPE varchar(64) NO
+SHOW CREATE TABLE table_constraints;
+Table Create Table
+TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` (
+ `CONSTRAINT_CATALOG` varchar(4096) default NULL,
+ `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '',
+ `CONSTRAINT_NAME` varchar(64) NOT NULL default '',
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `CONSTRAINT_TYPE` varchar(64) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_constraints'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_constraints'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.10.2 + 3.2.10.3:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+USE db_datadict;
+CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+USE db_datadict_2;
+CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL db_datadict PRIMARY db_datadict res_6_401003_1 PRIMARY KEY
+SELECT COUNT(*) FROM information_schema.table_constraints;
+COUNT(*)
+1
+connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL db_datadict_2 PRIMARY db_datadict_2 res_6_401003_2 PRIMARY KEY
+SELECT COUNT(*) FROM information_schema.table_constraints;
+COUNT(*)
+1
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE res_6_401003_1;
+USE db_datadict_2;
+DROP TABLE res_6_401003_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.11.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC table_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE table_privileges;
+Table Create Table
+TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+create database db_datadict;
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+use db_datadict;
+create table tb1(f1 int, f2 int, f3 int);
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+SELECT * FROM information_schema.table_privileges
+WHERE table_name LIKE 'tb%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict tb1 SELECT NO
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict tb1 SELECT YES
+'user_2'@'localhost' NULL db_datadict tb1 INSERT YES
+'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DELETE YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DROP YES
+'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES
+'user_2'@'localhost' NULL db_datadict tb1 INDEX YES
+'user_2'@'localhost' NULL db_datadict tb1 ALTER YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES
+'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES
+SELECT USER(), COUNT(*)
+FROM information_schema.table_privileges
+WHERE grantee = USER();
+USER() COUNT(*)
+user_2@localhost 0
+SELECT USER(), COUNT(*)
+FROM information_schema.table_privileges
+WHERE grantee = "'user_2'@'localhost'";
+USER() COUNT(*)
+user_2@localhost 11
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict tb3 SELECT NO
+
+root@localhost db_datadict
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict tb1 SELECT YES
+'user_2'@'localhost' NULL db_datadict tb1 INSERT YES
+'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DELETE YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DROP YES
+'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES
+'user_2'@'localhost' NULL db_datadict tb1 INDEX YES
+'user_2'@'localhost' NULL db_datadict tb1 ALTER YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES
+'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES
+'user_1'@'localhost' NULL db_datadict tb1 SELECT NO
+'user_3'@'localhost' NULL db_datadict tb3 SELECT NO
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+drop table db_datadict.tb1;
+drop table db_datadict.tb3;
+use test;
+drop database db_datadict;
+
+Testcase 3.2.12.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC tables;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+TABLE_TYPE varchar(64) NO
+ENGINE varchar(64) YES NULL
+VERSION bigint(21) YES NULL
+ROW_FORMAT varchar(10) YES NULL
+TABLE_ROWS bigint(21) YES NULL
+AVG_ROW_LENGTH bigint(21) YES NULL
+DATA_LENGTH bigint(21) YES NULL
+MAX_DATA_LENGTH bigint(21) YES NULL
+INDEX_LENGTH bigint(21) YES NULL
+DATA_FREE bigint(21) YES NULL
+AUTO_INCREMENT bigint(21) YES NULL
+CREATE_TIME datetime YES NULL
+UPDATE_TIME datetime YES NULL
+CHECK_TIME datetime YES NULL
+TABLE_COLLATION varchar(64) YES NULL
+CHECKSUM bigint(21) YES NULL
+CREATE_OPTIONS varchar(255) YES NULL
+TABLE_COMMENT varchar(80) NO
+SHOW CREATE TABLE tables;
+Table Create Table
+TABLES CREATE TEMPORARY TABLE `TABLES` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `TABLE_TYPE` varchar(64) NOT NULL default '',
+ `ENGINE` varchar(64) default NULL,
+ `VERSION` bigint(21) default NULL,
+ `ROW_FORMAT` varchar(10) default NULL,
+ `TABLE_ROWS` bigint(21) default NULL,
+ `AVG_ROW_LENGTH` bigint(21) default NULL,
+ `DATA_LENGTH` bigint(21) default NULL,
+ `MAX_DATA_LENGTH` bigint(21) default NULL,
+ `INDEX_LENGTH` bigint(21) default NULL,
+ `DATA_FREE` bigint(21) default NULL,
+ `AUTO_INCREMENT` bigint(21) default NULL,
+ `CREATE_TIME` datetime default NULL,
+ `UPDATE_TIME` datetime default NULL,
+ `CHECK_TIME` datetime default NULL,
+ `TABLE_COLLATION` varchar(64) default NULL,
+ `CHECKSUM` bigint(21) default NULL,
+ `CREATE_OPTIONS` varchar(255) default NULL,
+ `TABLE_COMMENT` varchar(80) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'tables'
+ORDER BY ordinal_position;
+COUNT(*)
+21
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'tables'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+
+Testcase 3.2.12.2 + 3.2.12.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+create database db_datadict;
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.*
+TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+use db_datadict;
+create table tb1(f1 int, f2 int, f3 int);
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+CREATE TABLE tb2 (f1 DECIMAL);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost';
+CREATE VIEW v3 AS SELECT * FROM tb3;
+GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost';
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+
+root@localhost db_datadict
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL mysql columns_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Column privileges
+NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Database privileges
+NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
+NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
+NULL mysql proc BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Stored Procedures
+NULL mysql procs_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Procedure privileges
+NULL mysql tables_priv BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Table privileges
+NULL mysql time_zone BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# 6 YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zones
+NULL mysql time_zone_leap_second BASE TABLE MyISAM 10 Fixed 22 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Leap seconds information for time zones
+NULL mysql time_zone_name BASE TABLE MyISAM 10 Fixed 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone names
+NULL mysql time_zone_transition BASE TABLE MyISAM 10 Fixed 393 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transitions
+NULL mysql time_zone_transition_type BASE TABLE MyISAM 10 Fixed 31 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transition types
+NULL mysql user BASE TABLE MyISAM 10 Dynamic 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Users and global privileges
+NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test1 tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+NULL test4 t6 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP TABLE db_datadict.tb1;
+DROP TABLE db_datadict.tb3;
+DROP VIEW db_datadict.v3;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.13.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC views;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+VIEW_DEFINITION longtext NO NULL
+CHECK_OPTION varchar(8) NO
+IS_UPDATABLE varchar(3) NO
+DEFINER varchar(77) NO
+SECURITY_TYPE varchar(7) NO
+SHOW CREATE TABLE views;
+Table Create Table
+VIEWS CREATE TEMPORARY TABLE `VIEWS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `VIEW_DEFINITION` longtext NOT NULL,
+ `CHECK_OPTION` varchar(8) NOT NULL default '',
+ `IS_UPDATABLE` varchar(3) NOT NULL default '',
+ `DEFINER` varchar(77) NOT NULL default '',
+ `SECURITY_TYPE` varchar(7) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'views'
+ORDER BY ordinal_position;
+COUNT(*)
+8
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'views'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+
+Testcase 3.2.13.2 + 3.2.13.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_no_views'@'localhost';
+USE db_datadict;
+CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT);
+CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302;
+CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302;
+GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost';
+GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER
+NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f1` AS `f1`,`db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER
+connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER
+connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER
+NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER
+connect(localhost,user_no_views,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+
+root@localhost db_datadict
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_no_views'@'localhost';
+DROP VIEW v_granted_to_1;
+DROP TABLE tb_401302;
+DROP VIEW v_granted_glob;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.14.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC statistics;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+NON_UNIQUE bigint(1) NO 0
+INDEX_SCHEMA varchar(64) NO
+INDEX_NAME varchar(64) NO
+SEQ_IN_INDEX bigint(2) NO 0
+COLUMN_NAME varchar(64) NO
+COLLATION varchar(1) YES NULL
+CARDINALITY bigint(21) YES NULL
+SUB_PART bigint(3) YES NULL
+PACKED varchar(10) YES NULL
+NULLABLE varchar(3) NO
+INDEX_TYPE varchar(16) NO
+COMMENT varchar(16) YES NULL
+SHOW CREATE TABLE statistics;
+Table Create Table
+STATISTICS CREATE TEMPORARY TABLE `STATISTICS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `NON_UNIQUE` bigint(1) NOT NULL default '0',
+ `INDEX_SCHEMA` varchar(64) NOT NULL default '',
+ `INDEX_NAME` varchar(64) NOT NULL default '',
+ `SEQ_IN_INDEX` bigint(2) NOT NULL default '0',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `COLLATION` varchar(1) default NULL,
+ `CARDINALITY` bigint(21) default NULL,
+ `SUB_PART` bigint(3) default NULL,
+ `PACKED` varchar(10) default NULL,
+ `NULLABLE` varchar(3) NOT NULL default '',
+ `INDEX_TYPE` varchar(16) NOT NULL default '',
+ `COMMENT` varchar(16) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'statistics'
+ORDER BY ordinal_position;
+COUNT(*)
+15
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'statistics'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+
+Testcase 3.2.14.2 + 3.2.14.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION;
+USE db_datadict_2;
+create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+
+root@localhost db_datadict_2
+REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.statistics
+WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict tb_6_401402_2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_2 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_2 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_2 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 3 type A 0 NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 2 NULL NULL BTREE
+NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE
+NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE
+NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 2 User A 5 NULL NULL BTREE
+
+user_1@localhost test
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+
+user_2@localhost test
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+
+root@localhost db_datadict_2
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE tb_6_401402_1;
+DROP TABLE tb_6_401402_2;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.15.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC schema_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE schema_privileges;
+Table Create Table
+SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schema_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+5
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schema_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.15.2:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+create database db_datadict;
+create database db_datadict_2;
+CREATE USER 'u_6_401502'@'localhost';
+use db_datadict;
+create table res_6_401502(f1 int, f2 int, f3 int);
+grant insert on db_datadict.* to 'u_6_401502'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401502'@'localhost' NULL db_datadict INSERT NO
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+connect(localhost,u_6_401502,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401502'@'localhost' NULL db_datadict INSERT NO
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'u_6_401502'@'localhost';
+drop table res_6_401502;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+
+Testcase 3.2.15.3 + 3.2.15.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+create database db_datadict;
+create database db_datadict_2;
+CREATE USER 'u_6_401503_1'@'localhost';
+CREATE USER 'u_6_401503_2'@'localhost';
+CREATE USER 'u_6_401503_3'@'localhost';
+use db_datadict;
+create table res_6_401503_1(f1 int, f2 int, f3 int);
+use db_datadict_2;
+create table res_6_401503_2(f1 int, f2 int, f3 int);
+grant update on db_datadict.* to 'u_6_401503_1'@'localhost';
+grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO
+'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+connect(localhost,u_6_401503_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO
+connect(localhost,u_6_401503_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO
+connect(localhost,u_6_401503_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+
+root@localhost db_datadict_2
+use db_datadict;
+DROP USER 'u_6_401503_1'@'localhost';
+DROP USER 'u_6_401503_2'@'localhost';
+DROP USER 'u_6_401503_3'@'localhost';
+drop table res_6_401503_1;
+use db_datadict_2;
+drop table res_6_401503_2;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+
+Testcase 3.2.16.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC user_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE user_privileges;
+Table Create Table
+USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'user_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+4
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'user_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+GRANT INSERT ON *.* TO 'user_2'@'localhost';
+GRANT UPDATE ON *.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+FIXME (see Bug 12269) Here we expect more than only <USAGE> for user_1
+----------------------------------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+add GRANT OPTION db_datadict.* to user_1
+----------------------------------------
+GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+FIXME (see Bug 12269) Here the <YES> is missing for the GRANT OPTION for user_1
+-------------------------------------------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+
+Now add SELECT on *.* to user_1
+-------------------------------
+
+root@localhost information_schema
+GRANT SELECT ON *.* TO 'user_1'@'localhost';
+
+Here <SELECT NO> is shown correctly for user_1
+----------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+Here <SELECT YES> is shown correctly for user_1
+-----------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_2@localhost
+GRANT INSERT, UPDATE ON *.* TO 'user_2'@'localhost'
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_3'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_3@localhost
+GRANT USAGE ON *.* TO 'user_3'@'localhost'
+
+revoke privileges from user_1
+-----------------------------
+
+root@localhost information_schema
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+
+user_1@localhost db_datadict
+CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_55'
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_66'
+
+add ALL on db_datadict.* (and select on mysql.user) to user_1
+-------------------------------------------------------------
+
+root@localhost information_schema
+GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_56'
+USE db_datadict;
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+CREATE TABLE tb_57 ( c1 TEXT );
+
+revoke privileges from user_1
+-----------------------------
+
+root@localhost information_schema
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_58 ( c1 TEXT );
+USE db_datadict;
+ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_datadict'
+CREATE TABLE db_datadict.tb_59 ( c1 TEXT );
+
+root@localhost information_schema
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.17: Checks on Performance - not here in this script!
+--------------------------------------------------------------------------------
+
+Testcase 3.2.18.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC triggers;
+Field Type Null Key Default Extra
+TRIGGER_CATALOG varchar(4096) YES NULL
+TRIGGER_SCHEMA varchar(64) NO
+TRIGGER_NAME varchar(64) NO
+EVENT_MANIPULATION varchar(6) NO
+EVENT_OBJECT_CATALOG varchar(4096) YES NULL
+EVENT_OBJECT_SCHEMA varchar(64) NO
+EVENT_OBJECT_TABLE varchar(64) NO
+ACTION_ORDER bigint(4) NO 0
+ACTION_CONDITION longtext YES NULL
+ACTION_STATEMENT longtext NO NULL
+ACTION_ORIENTATION varchar(9) NO
+ACTION_TIMING varchar(6) NO
+ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL
+ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL
+ACTION_REFERENCE_OLD_ROW varchar(3) NO
+ACTION_REFERENCE_NEW_ROW varchar(3) NO
+CREATED datetime YES NULL
+SQL_MODE longtext NO NULL
+DEFINER longtext NO NULL
+SHOW CREATE TABLE triggers;
+Table Create Table
+TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` (
+ `TRIGGER_CATALOG` varchar(4096) default NULL,
+ `TRIGGER_SCHEMA` varchar(64) NOT NULL default '',
+ `TRIGGER_NAME` varchar(64) NOT NULL default '',
+ `EVENT_MANIPULATION` varchar(6) NOT NULL default '',
+ `EVENT_OBJECT_CATALOG` varchar(4096) default NULL,
+ `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '',
+ `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '',
+ `ACTION_ORDER` bigint(4) NOT NULL default '0',
+ `ACTION_CONDITION` longtext,
+ `ACTION_STATEMENT` longtext NOT NULL,
+ `ACTION_ORIENTATION` varchar(9) NOT NULL default '',
+ `ACTION_TIMING` varchar(6) NOT NULL default '',
+ `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL,
+ `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL,
+ `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '',
+ `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '',
+ `CREATED` datetime default NULL,
+ `SQL_MODE` longtext NOT NULL,
+ `DEFINER` longtext NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'triggers'
+ORDER BY ordinal_position;
+COUNT(*)
+19
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'triggers'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+
+Testcase 3.2.18.2 + 3.2.18.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.19.1:
+--------------------------------------------------------------------------------
+
+checking a table that will be implemented later
+-----------------------------------------------
+DESC parameters;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+
+Testcase 3.2.20.1:
+--------------------------------------------------------------------------------
+
+checking a table that will be implemented later
+-----------------------------------------------
+DESC referential_constraints;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+
+*** End of Data Dictionary Tests ***
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS test.tb1;
+DROP TABLE IF EXISTS test.tb2;
+DROP TABLE IF EXISTS test.tb3;
+DROP TABLE IF EXISTS test.tb4;
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t2;
+DROP TABLE IF EXISTS test.t3;
+DROP TABLE IF EXISTS test.t4;
+DROP TABLE IF EXISTS test.t7;
+DROP TABLE IF EXISTS test.t8;
+DROP TABLE IF EXISTS test.t9;
+DROP TABLE IF EXISTS test.t10;
+DROP TABLE IF EXISTS test.t11;
+DROP DATABASE IF EXISTS test1;
+DROP DATABASE IF EXISTS test4;
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
diff --git a/mysql-test/suite/funcs_1/r/innodb__load.result b/mysql-test/suite/funcs_1/r/innodb__load.result
new file mode 100644
index 00000000000..c1b9c89b257
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb__load.result
@@ -0,0 +1 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
diff --git a/mysql-test/suite/funcs_1/r/innodb_bitdata.result b/mysql-test/suite/funcs_1/r/innodb_bitdata.result
new file mode 100644
index 00000000000..57f7b017e69
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_bitdata.result
@@ -0,0 +1,67 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb4;
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f235 char(0) unicode,
+f236 char(90),
+f237 char(255) ascii,
+f238 varchar(0),
+f239 varchar(20000) binary,
+f240 varchar(2000) unicode,
+f241 char(100) unicode
+) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ;
+
+NOT YET IMPLEMENTED: bitdata tests
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_cursors.result b/mysql-test/suite/funcs_1/r/innodb_cursors.result
new file mode 100644
index 00000000000..bcb692c30d7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_cursors.result
@@ -0,0 +1,81 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb1 ;
+create table tb1 (
+f1 char(0),
+f2 char(0) binary,
+f3 char(0) ascii,
+f4 tinytext unicode,
+f5 text,
+f6 mediumtext,
+f7 longtext,
+f8 tinyblob,
+f9 blob,
+f10 mediumblob,
+f11 longblob,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal,
+f34 decimal unsigned,
+f35 decimal zerofill,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = innodb;
+Warnings:
+Note 1265 Data truncated for column 'f36' at row 1
+Note 1265 Data truncated for column 'f37' at row 1
+Note 1265 Data truncated for column 'f38' at row 1
+Note 1265 Data truncated for column 'f39' at row 1
+Note 1265 Data truncated for column 'f40' at row 1
+Note 1265 Data truncated for column 'f41' at row 1
+Note 1265 Data truncated for column 'f42' at row 1
+Note 1265 Data truncated for column 'f43' at row 1
+Note 1265 Data truncated for column 'f44' at row 1
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ;
+
+NOT YET IMPLEMENTED: cursor tests
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_func_view.result b/mysql-test/suite/funcs_1/r/innodb_func_view.result
new file mode 100644
index 00000000000..f901bcf8246
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_func_view.result
@@ -0,0 +1,5088 @@
+
+! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1_values
+(
+id BIGINT AUTO_INCREMENT,
+select_id BIGINT,
+PRIMARY KEY(id)
+) ENGINE = 'InnoDB' ;
+ALTER TABLE t1_values ADD my_char_30 CHAR(30);
+ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000);
+ALTER TABLE t1_values ADD my_binary_30 BINARY(30);
+ALTER TABLE t1_values ADD my_varbinary_1000 VARBINARY(1000);
+ALTER TABLE t1_values ADD my_datetime DATETIME;
+ALTER TABLE t1_values ADD my_date DATE;
+ALTER TABLE t1_values ADD ts_dummy TIMESTAMP;
+ALTER TABLE t1_values ADD my_timestamp TIMESTAMP;
+ALTER TABLE t1_values ADD my_time TIME;
+ALTER TABLE t1_values ADD my_year YEAR;
+ALTER TABLE t1_values ADD my_bigint BIGINT;
+ALTER TABLE t1_values ADD my_double DOUBLE;
+ALTER TABLE t1_values ADD my_decimal DECIMAL(64,30);
+SET sql_mode = 'traditional';
+INSERT INTO t1_values SET id = 0;
+INSERT INTO t1_values SET
+my_char_30 = '',
+my_varchar_1000 = '',
+my_binary_30 = '',
+my_varbinary_1000 = '',
+my_datetime = '0001-01-01 00:00:00',
+my_date = '0001-01-01',
+my_timestamp = '1970-01-01 03:00:01',
+my_time = '-838:59:59',
+my_year = '1901',
+my_bigint = -9223372036854775808,
+my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 ,
+my_double = -1.7976931348623E+308;
+INSERT INTO t1_values SET
+my_char_30 = '<--------30 characters------->',
+my_varchar_1000 = CONCAT('<---------1000 characters',
+RPAD('',965,'-'),'--------->'),
+my_binary_30 = '<--------30 characters------->',
+my_varbinary_1000 = CONCAT('<---------1000 characters',
+RPAD('',965,'-'),'--------->'),
+my_datetime = '9999-12-31 23:59:59',
+my_date = '9999-12-31',
+my_timestamp = '2038-01-01 02:59:59',
+my_time = '838:59:59',
+my_year = 2155,
+my_bigint = 9223372036854775807,
+my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 ,
+my_double = 1.7976931348623E+308;
+INSERT INTO t1_values SET
+my_char_30 = ' ---äÖüß@µ*$-- ',
+my_varchar_1000 = ' ---äÖüß@µ*$-- ',
+my_binary_30 = ' ---äÖüß@µ*$-- ',
+my_varbinary_1000 = ' ---äÖüß@µ*$-- ',
+my_datetime = '2004-02-29 23:59:59',
+my_date = '2004-02-29',
+my_timestamp = '2004-02-29 23:59:59',
+my_time = '13:00:00',
+my_year = 2000,
+my_bigint = 0,
+my_decimal = 0.0,
+my_double = 0;
+INSERT INTO t1_values SET
+my_char_30 = '-1',
+my_varchar_1000 = '-1',
+my_binary_30 = '-1',
+my_varbinary_1000 = '-1',
+my_datetime = '2005-06-28 10:00:00',
+my_date = '2005-06-28',
+my_timestamp = '2005-06-28 10:00:00',
+my_time = '10:00:00',
+my_year = 2005,
+my_bigint = -1,
+my_decimal = -1.000000000000000000000000000000,
+my_double = -0.1E+1;
+PREPARE ins_sel_with_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'No'" ;
+PREPARE ins_sel_no_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'Yes'" ;
+SET sql_mode = 'traditional';
+SET @my_select = 'SELECT sqrt(my_bigint), my_bigint, id FROM t1_values';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 4;
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = -25;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 20050627;
+INSERT INTO t1_values SET select_id = @select_id,
+my_double = +20.050627E+6;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 200506271758;
+INSERT INTO t1_values SET select_id = @select_id,
+my_double = +0.0200506271758E+13;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 1758;
+
+some statements disabled because of
+Bug#12440: CAST(data type DOUBLE AS TIME) strange results
+--------------------------------------------------------------------------------
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '-3333.3333';
+
+some statements disabled because of
+Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian
+--------------------------------------------------------------------------------
+
+"Attention: CAST --> SIGNED INTEGER
+ The file with expected results suffers from
+ Bug#5083 Big integer values are inserted as negative into
+ decimal/string columns
+ Bug#5913 Traditional mode: BIGINT range not correctly delimited
+ Both have the status: To be fixed later"
+--------------------------------------------------------------------------------
+
+some statements disabled because of
+Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result
+--------------------------------------------------------------------------------
+
+"Attention: CAST --> UNSIGNED INTEGER
+ The file with expected results suffers from Bug 5083 5913 9809"
+--------------------------------------------------------------------------------
+
+some statements disabled because of
+Bugs#8663: cant use bgint unsigned as input to cast
+--------------------------------------------------------------------------------
+SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values';
+
+"Attention: IF(my_year IS NULL, ...
+ The file with expected results suffers from
+ Bug#11689. successful CREATE VIEW but SELECT on view fails."
+--------------------------------------------------------------------------------
+SET @my_select = 'SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT INSTR(my_char_30, ''char''),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values';
+
+"Attention: LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', <numeric column>)
+ The file with expected results suffers from Bug 10963 11728"
+ and the testcases with length = BIGINT or DOUBLE column are deactivated,
+because there are 32/64 Bit differences
+--------------------------------------------------------------------------------
+SET @my_select =
+'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_decimal), my_decimal, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_char_30, 3),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_binary_30, 3),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_bigint),
+my_bigint, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_double),
+my_double, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_decimal),
+my_decimal, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select =
+'SELECT CONCAT(''A'',my_char_30), my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT my_char_30, id FROM t1_values';
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = 'Viana do Castelo';
+SET sql_mode = '';
+
+"# The basic preparations end and the main test starts here"
+--------------------------------------------------------------------------------
+CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values;
+SELECT my_char_30, id FROM t1_values
+WHERE select_id = 187 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 187 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values;
+SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values
+WHERE select_id = 186 OR select_id IS NULL;
+CONCAT('A',my_char_30) my_char_30 id
+NULL NULL 1
+A 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 186 OR select_id IS NULL);
+CONCAT('A',my_char_30) my_char_30 id
+NULL NULL 1
+A 2
+A<--------30 characters-------> <--------30 characters-------> 3
+A ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+A-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 185 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 185 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 184 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 184 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 183 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 183 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 182 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 182 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 181 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 181 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 180 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 180 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 179 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 179 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 178 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 178 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_decimal),
+my_decimal, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_decimal),
+my_decimal, id FROM t1_values
+WHERE select_id = 177 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 177 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_double),
+my_double, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_double),
+my_double, id FROM t1_values
+WHERE select_id = 176 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 176 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_bigint),
+my_bigint, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_bigint),
+my_bigint, id FROM t1_values
+WHERE select_id = 175 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 175 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE('-', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 174 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 174 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_binary_30, 3),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE('-', my_binary_30, 3),
+my_binary_30, id FROM t1_values
+WHERE select_id = 173 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 173 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE('-', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 172 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 172 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_char_30, 3),
+my_char_30, id FROM t1_values;
+SELECT LOCATE('-', my_char_30, 3),
+my_char_30, id FROM t1_values
+WHERE select_id = 171 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 171 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values
+WHERE select_id = 170 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 170 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values
+WHERE select_id = 169 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 169 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values
+WHERE select_id = 168 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 168 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 167 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 167 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 166 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 166 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values
+WHERE select_id = 165 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 165 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values
+WHERE select_id = 164 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 164 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values
+WHERE select_id = 163 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 163 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 162 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 162 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values
+WHERE select_id = 161 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 161 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values
+WHERE select_id = 160 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 160 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 159 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 159 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 158 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 158 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values
+WHERE select_id = 157 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 157 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values
+WHERE select_id = 156 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 156 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values;
+SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values
+WHERE select_id = 155 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 155 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE('char', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 154 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 154 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE('char', my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 153 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 153 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE('char', my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 152 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 152 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LOCATE('char', my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 151 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 151 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOAD_FILE('../log/current_test'), id FROM t1_values;
+SELECT LOAD_FILE('../log/current_test'), id FROM t1_values
+WHERE select_id = 150 OR select_id IS NULL;
+LOAD_FILE('../log/current_test') id
+CURRENT_TEST: innodb_func_view
+ 1
+CURRENT_TEST: innodb_func_view
+ 2
+CURRENT_TEST: innodb_func_view
+ 3
+CURRENT_TEST: innodb_func_view
+ 4
+CURRENT_TEST: innodb_func_view
+ 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'../log/current_test') AS `LOAD_FILE('../log/current_test')`,`t1_values`.`id` AS `id` from `t1_values`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 150 OR select_id IS NULL);
+LOAD_FILE('../log/current_test') id
+CURRENT_TEST: innodb_func_view
+ 1
+CURRENT_TEST: innodb_func_view
+ 2
+CURRENT_TEST: innodb_func_view
+ 3
+CURRENT_TEST: innodb_func_view
+ 4
+CURRENT_TEST: innodb_func_view
+ 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 149 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 149 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 148 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 148 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 147 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 147 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 146 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 146 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values;
+SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values
+WHERE select_id = 145 OR select_id IS NULL;
+LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id
+NULL NULL 1
+ -9999999999999999999999999999999999.999999999999999999999999999999 2
+AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9999999999999999999999999999999999.999999999999999999999999999999 3
+ 0.000000000000000000000000000000 4
+ -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 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 145 OR select_id IS NULL);
+LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id
+NULL NULL 1
+ -9999999999999999999999999999999999.999999999999999999999999999999 2
+AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9999999999999999999999999999999999.999999999999999999999999999999 3
+ 0.000000000000000000000000000000 4
+ -1.000000000000000000000000000000 5
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values;
+SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values
+WHERE select_id = 144 OR select_id IS NULL;
+LEFT(my_varbinary_1000, 2) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 144 OR select_id IS NULL);
+LEFT(my_varbinary_1000, 2) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values;
+SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values
+WHERE select_id = 143 OR select_id IS NULL;
+LEFT(my_binary_30, 2) my_binary_30 id
+NULL NULL 1
+
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 143 OR select_id IS NULL);
+LEFT(my_binary_30, 2) my_binary_30 id
+NULL NULL 1
+
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$--
+-1 -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values;
+SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values
+WHERE select_id = 142 OR select_id IS NULL;
+LEFT(my_varchar_1000, 2) my_varchar_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 142 OR select_id IS NULL);
+LEFT(my_varchar_1000, 2) my_varchar_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values;
+SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values
+WHERE select_id = 141 OR select_id IS NULL;
+LEFT(my_char_30, 2) my_char_30 id
+NULL NULL 1
+ 2
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 141 OR select_id IS NULL);
+LEFT(my_char_30, 2) my_char_30 id
+NULL NULL 1
+ 2
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 140 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 140 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT INSTR(my_char_30, 'char'),
+my_char_30, id FROM t1_values;
+SELECT INSTR(my_char_30, 'char'),
+my_char_30, id FROM t1_values
+WHERE select_id = 139 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 139 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 138 OR select_id IS NULL;
+BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 138 OR select_id IS NULL);
+BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+160 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 137 OR select_id IS NULL;
+BIT_LENGTH(my_binary_30) my_binary_30 id
+NULL NULL 1
+240
+240 <--------30 characters-------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 137 OR select_id IS NULL);
+BIT_LENGTH(my_binary_30) my_binary_30 id
+NULL NULL 1
+240
+240 <--------30 characters-------> 3
+240 ---äÖüß@µ*$--
+240 -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 136 OR select_id IS NULL;
+BIT_LENGTH(my_varchar_1000) my_varchar_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 136 OR select_id IS NULL);
+BIT_LENGTH(my_varchar_1000) my_varchar_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+160 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 135 OR select_id IS NULL;
+BIT_LENGTH(my_char_30) my_char_30 id
+NULL NULL 1
+0 2
+240 <--------30 characters-------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 135 OR select_id IS NULL);
+BIT_LENGTH(my_char_30) my_char_30 id
+NULL NULL 1
+0 2
+240 <--------30 characters-------> 3
+152 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_year,'IS_NULL'),
+my_year, id FROM t1_values;
+SELECT IFNULL(my_year,'IS_NULL'),
+my_year, id FROM t1_values
+WHERE select_id = 134 OR select_id IS NULL;
+IFNULL(my_year,'IS_NULL') my_year id
+IS_NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 134 OR select_id IS NULL);
+IFNULL(my_year,'IS_NULL') my_year id
+IS_NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_time,'IS_NULL'),
+my_time, id FROM t1_values;
+SELECT IFNULL(my_time,'IS_NULL'),
+my_time, id FROM t1_values
+WHERE select_id = 133 OR select_id IS NULL;
+IFNULL(my_time,'IS_NULL') my_time id
+IS_NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 133 OR select_id IS NULL);
+IFNULL(my_time,'IS_NULL') my_time id
+IS_NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_timestamp,'IS_NULL'),
+my_timestamp, id FROM t1_values;
+SELECT IFNULL(my_timestamp,'IS_NULL'),
+my_timestamp, id FROM t1_values
+WHERE select_id = 132 OR select_id IS NULL;
+IFNULL(my_timestamp,'IS_NULL') my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 132 OR select_id IS NULL);
+IFNULL(my_timestamp,'IS_NULL') my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_date,'IS_NULL'),
+my_date, id FROM t1_values;
+SELECT IFNULL(my_date,'IS_NULL'),
+my_date, id FROM t1_values
+WHERE select_id = 131 OR select_id IS NULL;
+IFNULL(my_date,'IS_NULL') my_date id
+IS_NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 131 OR select_id IS NULL);
+IFNULL(my_date,'IS_NULL') my_date id
+IS_NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_datetime,'IS_NULL'),
+my_datetime, id FROM t1_values;
+SELECT IFNULL(my_datetime,'IS_NULL'),
+my_datetime, id FROM t1_values
+WHERE select_id = 130 OR select_id IS NULL;
+IFNULL(my_datetime,'IS_NULL') my_datetime id
+IS_NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 130 OR select_id IS NULL);
+IFNULL(my_datetime,'IS_NULL') my_datetime id
+IS_NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_double,'IS_NULL'),
+my_double, id FROM t1_values;
+SELECT IFNULL(my_double,'IS_NULL'),
+my_double, id FROM t1_values
+WHERE select_id = 129 OR select_id IS NULL;
+IFNULL(my_double,'IS_NULL') my_double id
+IS_NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 129 OR select_id IS NULL);
+IFNULL(my_double,'IS_NULL') my_double id
+IS_NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_decimal,'IS_NULL'),
+my_decimal, id FROM t1_values;
+SELECT IFNULL(my_decimal,'IS_NULL'),
+my_decimal, id FROM t1_values
+WHERE select_id = 128 OR select_id IS NULL;
+IFNULL(my_decimal,'IS_NULL') my_decimal id
+IS_NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 128 OR select_id IS NULL);
+IFNULL(my_decimal,'IS_NULL') my_decimal id
+IS_NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_bigint,'IS_NULL'),
+my_bigint, id FROM t1_values;
+SELECT IFNULL(my_bigint,'IS_NULL'),
+my_bigint, id FROM t1_values
+WHERE select_id = 127 OR select_id IS NULL;
+IFNULL(my_bigint,'IS_NULL') my_bigint id
+IS_NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 127 OR select_id IS NULL);
+IFNULL(my_bigint,'IS_NULL') my_bigint id
+IS_NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_varbinary_1000,'IS_NULL'),
+my_varbinary_1000, id FROM t1_values;
+SELECT IFNULL(my_varbinary_1000,'IS_NULL'),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 126 OR select_id IS NULL;
+IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 126 OR select_id IS NULL);
+IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_binary_30,'IS_NULL'),
+my_binary_30, id FROM t1_values;
+SELECT IFNULL(my_binary_30,'IS_NULL'),
+my_binary_30, id FROM t1_values
+WHERE select_id = 125 OR select_id IS NULL;
+IFNULL(my_binary_30,'IS_NULL') my_binary_30 id
+IS_NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 125 OR select_id IS NULL);
+IFNULL(my_binary_30,'IS_NULL') my_binary_30 id
+IS_NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_varchar_1000,'IS_NULL'),
+my_varchar_1000, id FROM t1_values;
+SELECT IFNULL(my_varchar_1000,'IS_NULL'),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 124 OR select_id IS NULL;
+IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 124 OR select_id IS NULL);
+IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_char_30,'IS_NULL'),
+my_char_30, id FROM t1_values;
+SELECT IFNULL(my_char_30,'IS_NULL'),
+my_char_30, id FROM t1_values
+WHERE select_id = 123 OR select_id IS NULL;
+IFNULL(my_char_30,'IS_NULL') my_char_30 id
+IS_NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 123 OR select_id IS NULL);
+IFNULL(my_char_30,'IS_NULL') my_char_30 id
+IS_NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL'), my_year, id FROM t1_values;
+SELECT IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL'), my_year, id FROM t1_values
+WHERE select_id = 122 OR select_id IS NULL;
+IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL') my_year id
+IS NULL NULL 1
+IS NOT NULL 1901 2
+IS NOT NULL 2155 3
+IS NOT NULL 2000 4
+IS NOT NULL 2005 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 122 OR select_id IS NULL);
+IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL') my_year id
+IS NULL NULL 1
+IS NOT NULL 1901 2
+IS NOT NULL 2155 3
+IS NOT NULL 2000 4
+IS NOT NULL 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL'), my_time, id FROM t1_values;
+SELECT IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL'), my_time, id FROM t1_values
+WHERE select_id = 121 OR select_id IS NULL;
+IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL') my_time id
+IS NULL NULL 1
+IS NOT NULL -838:59:59 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 121 OR select_id IS NULL);
+IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL') my_time id
+IS NULL NULL 1
+IS NOT NULL -838:59:59 2
+IS NOT NULL 838:59:59 3
+IS NOT NULL 13:00:00 4
+IS NOT NULL 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL'), my_timestamp, id FROM t1_values;
+SELECT IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL'), my_timestamp, id FROM t1_values
+WHERE select_id = 120 OR select_id IS NULL;
+IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL') my_timestamp id
+IS NOT NULL 0000-00-00 00:00:00 1
+IS NOT NULL 1970-01-01 03:00:01 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 120 OR select_id IS NULL);
+IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL') my_timestamp id
+IS NOT NULL 0000-00-00 00:00:00 1
+IS NOT NULL 1970-01-01 03:00:01 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL'), my_date, id FROM t1_values;
+SELECT IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL'), my_date, id FROM t1_values
+WHERE select_id = 119 OR select_id IS NULL;
+IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL') my_date id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 119 OR select_id IS NULL);
+IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL') my_date id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 2
+IS NOT NULL 9999-12-31 3
+IS NOT NULL 2004-02-29 4
+IS NOT NULL 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL'), my_datetime, id FROM t1_values;
+SELECT IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL'), my_datetime, id FROM t1_values
+WHERE select_id = 118 OR select_id IS NULL;
+IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL') my_datetime id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 00:00:00 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 118 OR select_id IS NULL);
+IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL') my_datetime id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 00:00:00 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL'), my_double, id FROM t1_values;
+SELECT IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL'), my_double, id FROM t1_values
+WHERE select_id = 117 OR select_id IS NULL;
+IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL') my_double id
+IS NULL NULL 1
+IS NOT NULL -1.7976931348623e+308 2
+IS NOT NULL 1.7976931348623e+308 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 117 OR select_id IS NULL);
+IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL') my_double id
+IS NULL NULL 1
+IS NOT NULL -1.7976931348623e+308 2
+IS NOT NULL 1.7976931348623e+308 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL'), my_decimal, id FROM t1_values;
+SELECT IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL'), my_decimal, id FROM t1_values
+WHERE select_id = 116 OR select_id IS NULL;
+IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL') my_decimal id
+IS NULL NULL 1
+IS NOT NULL -9999999999999999999999999999999999.999999999999999999999999999999 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 116 OR select_id IS NULL);
+IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL') my_decimal id
+IS NULL NULL 1
+IS NOT NULL -9999999999999999999999999999999999.999999999999999999999999999999 2
+IS NOT NULL 9999999999999999999999999999999999.999999999999999999999999999999 3
+IS NOT NULL 0.000000000000000000000000000000 4
+IS NOT NULL -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL'), my_bigint, id FROM t1_values;
+SELECT IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL'), my_bigint, id FROM t1_values
+WHERE select_id = 115 OR select_id IS NULL;
+IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL') my_bigint id
+IS NULL NULL 1
+IS NOT NULL -9223372036854775808 2
+IS NOT NULL 9223372036854775807 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 115 OR select_id IS NULL);
+IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL') my_bigint id
+IS NULL NULL 1
+IS NOT NULL -9223372036854775808 2
+IS NOT NULL 9223372036854775807 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varbinary_1000, id FROM t1_values;
+SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varbinary_1000, id FROM t1_values
+WHERE select_id = 114 OR select_id IS NULL;
+IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varbinary_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 114 OR select_id IS NULL);
+IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varbinary_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_binary_30, id FROM t1_values;
+SELECT IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_binary_30, id FROM t1_values
+WHERE select_id = 113 OR select_id IS NULL;
+IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_binary_30 id
+IS NULL NULL 1
+IS NOT NULL
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$--
+IS NOT NULL -1
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 113 OR select_id IS NULL);
+IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_binary_30 id
+IS NULL NULL 1
+IS NOT NULL
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$--
+IS NOT NULL -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varchar_1000, id FROM t1_values;
+SELECT IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varchar_1000, id FROM t1_values
+WHERE select_id = 112 OR select_id IS NULL;
+IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varchar_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 112 OR select_id IS NULL);
+IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varchar_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_char_30, id FROM t1_values;
+SELECT IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_char_30, id FROM t1_values
+WHERE select_id = 111 OR select_id IS NULL;
+IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_char_30 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 111 OR select_id IS NULL);
+IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_char_30 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'),
+my_year, id FROM t1_values;
+SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'),
+my_year, id FROM t1_values
+WHERE select_id = 110 OR select_id IS NULL;
+IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id
+IS NOT TRUE NULL 1
+IS TRUE 1901 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 110 OR select_id IS NULL);
+IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id
+IS NOT TRUE NULL 1
+IS TRUE 1901 2
+IS TRUE 2155 3
+IS TRUE 2000 4
+IS TRUE 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'),
+my_time, id FROM t1_values;
+SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'),
+my_time, id FROM t1_values
+WHERE select_id = 109 OR select_id IS NULL;
+IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id
+IS NOT TRUE NULL 1
+IS TRUE -838:59:59 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 109 OR select_id IS NULL);
+IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id
+IS NOT TRUE NULL 1
+IS TRUE -838:59:59 2
+IS TRUE 838:59:59 3
+IS TRUE 13:00:00 4
+IS TRUE 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'),
+my_timestamp, id FROM t1_values;
+SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'),
+my_timestamp, id FROM t1_values
+WHERE select_id = 108 OR select_id IS NULL;
+IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id
+IS NOT TRUE 0000-00-00 00:00:00 1
+IS TRUE 1970-01-01 03:00:01 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 108 OR select_id IS NULL);
+IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id
+IS NOT TRUE 0000-00-00 00:00:00 1
+IS TRUE 1970-01-01 03:00:01 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'),
+my_date, id FROM t1_values;
+SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'),
+my_date, id FROM t1_values
+WHERE select_id = 107 OR select_id IS NULL;
+IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 107 OR select_id IS NULL);
+IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 2
+IS TRUE 9999-12-31 3
+IS TRUE 2004-02-29 4
+IS TRUE 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'),
+my_datetime, id FROM t1_values;
+SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'),
+my_datetime, id FROM t1_values
+WHERE select_id = 106 OR select_id IS NULL;
+IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 00:00:00 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 106 OR select_id IS NULL);
+IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 00:00:00 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'),
+my_double, id FROM t1_values;
+SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'),
+my_double, id FROM t1_values
+WHERE select_id = 105 OR select_id IS NULL;
+IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id
+IS NOT TRUE NULL 1
+IS TRUE -1.7976931348623e+308 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 105 OR select_id IS NULL);
+IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id
+IS NOT TRUE NULL 1
+IS TRUE -1.7976931348623e+308 2
+IS TRUE 1.7976931348623e+308 3
+IS NOT TRUE 0 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'),
+my_decimal, id FROM t1_values;
+SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'),
+my_decimal, id FROM t1_values
+WHERE select_id = 104 OR select_id IS NULL;
+IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id
+IS NOT TRUE NULL 1
+IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 104 OR select_id IS NULL);
+IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id
+IS NOT TRUE NULL 1
+IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2
+IS TRUE 9999999999999999999999999999999999.999999999999999999999999999999 3
+IS NOT TRUE 0.000000000000000000000000000000 4
+IS TRUE -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'),
+my_bigint, id FROM t1_values;
+SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'),
+my_bigint, id FROM t1_values
+WHERE select_id = 103 OR select_id IS NULL;
+IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id
+IS NOT TRUE NULL 1
+IS TRUE -9223372036854775808 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 103 OR select_id IS NULL);
+IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id
+IS NOT TRUE NULL 1
+IS TRUE -9223372036854775808 2
+IS TRUE 9223372036854775807 3
+IS NOT TRUE 0 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varbinary_1000, id FROM t1_values;
+SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 102 OR select_id IS NULL;
+IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 102 OR select_id IS NULL);
+IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'),
+my_binary_30, id FROM t1_values;
+SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'),
+my_binary_30, id FROM t1_values
+WHERE select_id = 101 OR select_id IS NULL;
+IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$--
+IS TRUE -1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 101 OR select_id IS NULL);
+IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$--
+IS TRUE -1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect DOUBLE value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varchar_1000, id FROM t1_values;
+SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 100 OR select_id IS NULL;
+IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 100 OR select_id IS NULL);
+IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'),
+my_char_30, id FROM t1_values;
+SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'),
+my_char_30, id FROM t1_values
+WHERE select_id = 99 OR select_id IS NULL;
+IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 99 OR select_id IS NULL);
+IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values;
+SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 98 OR select_id IS NULL;
+CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---???????÷@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 98 OR select_id IS NULL);
+CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---???????÷@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values;
+SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values
+WHERE select_id = 97 OR select_id IS NULL;
+CONVERT(my_binary_30 USING koi8r) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---???????÷@??*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 97 OR select_id IS NULL);
+CONVERT(my_binary_30 USING koi8r) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---???????÷@??*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values;
+SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 96 OR select_id IS NULL;
+CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 96 OR select_id IS NULL);
+CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values;
+SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values
+WHERE select_id = 95 OR select_id IS NULL;
+CONVERT(my_char_30 USING koi8r) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 95 OR select_id IS NULL);
+CONVERT(my_char_30 USING koi8r) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values;
+SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 94 OR select_id IS NULL;
+CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 94 OR select_id IS NULL);
+CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values;
+SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values
+WHERE select_id = 93 OR select_id IS NULL;
+CONVERT(my_binary_30 USING utf8) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 93 OR select_id IS NULL);
+CONVERT(my_binary_30 USING utf8) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values;
+SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 92 OR select_id IS NULL;
+CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 92 OR select_id IS NULL);
+CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values;
+SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values
+WHERE select_id = 91 OR select_id IS NULL;
+CONVERT(my_char_30 USING utf8) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 91 OR select_id IS NULL);
+CONVERT(my_char_30 USING utf8) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS UNSIGNED INTEGER),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS UNSIGNED INTEGER),
+my_year, id FROM t1_values
+WHERE select_id = 90 OR select_id IS NULL;
+CAST(my_year AS UNSIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 90 OR select_id IS NULL);
+CAST(my_year AS UNSIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS UNSIGNED INTEGER),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS UNSIGNED INTEGER),
+my_time, id FROM t1_values
+WHERE select_id = 89 OR select_id IS NULL;
+CAST(my_time AS UNSIGNED INTEGER) my_time id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 89 OR select_id IS NULL);
+CAST(my_time AS UNSIGNED INTEGER) my_time id
+NULL NULL 1
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS UNSIGNED INTEGER),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS UNSIGNED INTEGER),
+my_timestamp, id FROM t1_values
+WHERE select_id = 88 OR select_id IS NULL;
+CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 88 OR select_id IS NULL);
+CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS UNSIGNED INTEGER),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS UNSIGNED INTEGER),
+my_date, id FROM t1_values
+WHERE select_id = 87 OR select_id IS NULL;
+CAST(my_date AS UNSIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 87 OR select_id IS NULL);
+CAST(my_date AS UNSIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS UNSIGNED INTEGER),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS UNSIGNED INTEGER),
+my_datetime, id FROM t1_values
+WHERE select_id = 86 OR select_id IS NULL;
+CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 86 OR select_id IS NULL);
+CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
+NULL NULL 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS UNSIGNED INTEGER),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS UNSIGNED INTEGER),
+my_decimal, id FROM t1_values
+WHERE select_id = 85 OR select_id IS NULL;
+CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id
+NULL NULL 1
+0 -9999999999999999999999999999999999.999999999999999999999999999999 2
+18446744073709551615 9999999999999999999999999999999999.999999999999999999999999999999 3
+0 0.000000000000000000000000000000 4
+0 -1.000000000000000000000000000000 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 85 OR select_id IS NULL);
+CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id
+NULL NULL 1
+0 -9999999999999999999999999999999999.999999999999999999999999999999 2
+18446744073709551615 9999999999999999999999999999999999.999999999999999999999999999999 3
+0 0.000000000000000000000000000000 4
+0 -1.000000000000000000000000000000 5
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS UNSIGNED INTEGER),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS UNSIGNED INTEGER),
+my_bigint, id FROM t1_values
+WHERE select_id = 84 OR select_id IS NULL;
+CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id
+NULL NULL 1
+9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 84 OR select_id IS NULL);
+CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id
+NULL NULL 1
+9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+18446744073709551615 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 83 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 83 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS UNSIGNED INTEGER),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS UNSIGNED INTEGER),
+my_binary_30, id FROM t1_values
+WHERE select_id = 82 OR select_id IS NULL;
+CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+18446744073709551615 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 82 OR select_id IS NULL);
+CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+18446744073709551615 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 81 OR select_id IS NULL;
+CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 81 OR select_id IS NULL);
+CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS UNSIGNED INTEGER),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS UNSIGNED INTEGER),
+my_char_30, id FROM t1_values
+WHERE select_id = 80 OR select_id IS NULL;
+CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 80 OR select_id IS NULL);
+CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS SIGNED INTEGER),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS SIGNED INTEGER),
+my_year, id FROM t1_values
+WHERE select_id = 79 OR select_id IS NULL;
+CAST(my_year AS SIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 79 OR select_id IS NULL);
+CAST(my_year AS SIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS SIGNED INTEGER),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS SIGNED INTEGER),
+my_time, id FROM t1_values
+WHERE select_id = 78 OR select_id IS NULL;
+CAST(my_time AS SIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 78 OR select_id IS NULL);
+CAST(my_time AS SIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS SIGNED INTEGER),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS SIGNED INTEGER),
+my_timestamp, id FROM t1_values
+WHERE select_id = 77 OR select_id IS NULL;
+CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 77 OR select_id IS NULL);
+CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS SIGNED INTEGER),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS SIGNED INTEGER),
+my_date, id FROM t1_values
+WHERE select_id = 76 OR select_id IS NULL;
+CAST(my_date AS SIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 76 OR select_id IS NULL);
+CAST(my_date AS SIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS SIGNED INTEGER),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS SIGNED INTEGER),
+my_datetime, id FROM t1_values
+WHERE select_id = 75 OR select_id IS NULL;
+CAST(my_datetime AS SIGNED INTEGER) my_datetime id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 75 OR select_id IS NULL);
+CAST(my_datetime AS SIGNED INTEGER) my_datetime id
+NULL NULL 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS SIGNED INTEGER),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS SIGNED INTEGER),
+my_decimal, id FROM t1_values
+WHERE select_id = 74 OR select_id IS NULL;
+CAST(my_decimal AS SIGNED INTEGER) my_decimal id
+NULL NULL 1
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 74 OR select_id IS NULL);
+CAST(my_decimal AS SIGNED INTEGER) my_decimal id
+NULL NULL 1
+-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: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS SIGNED INTEGER),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS SIGNED INTEGER),
+my_bigint, id FROM t1_values
+WHERE select_id = 73 OR select_id IS NULL;
+CAST(my_bigint AS SIGNED INTEGER) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 73 OR select_id IS NULL);
+CAST(my_bigint AS SIGNED INTEGER) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 72 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 72 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS SIGNED INTEGER),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS SIGNED INTEGER),
+my_binary_30, id FROM t1_values
+WHERE select_id = 71 OR select_id IS NULL;
+CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+-1 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 71 OR select_id IS NULL);
+CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+-1 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect INTEGER value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS SIGNED INTEGER),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS SIGNED INTEGER),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 70 OR select_id IS NULL;
+CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 70 OR select_id IS NULL);
+CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS SIGNED INTEGER),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS SIGNED INTEGER),
+my_char_30, id FROM t1_values
+WHERE select_id = 69 OR select_id IS NULL;
+CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 69 OR select_id IS NULL);
+CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$--'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DECIMAL(37,2)),
+my_year, id FROM t1_values
+WHERE select_id = 68 OR select_id IS NULL;
+CAST(my_year AS DECIMAL(37,2)) my_year id
+NULL NULL 1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 68 OR select_id IS NULL);
+CAST(my_year AS DECIMAL(37,2)) my_year id
+NULL NULL 1
+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(37,2)),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DECIMAL(37,2)),
+my_time, id FROM t1_values
+WHERE select_id = 67 OR select_id IS NULL;
+CAST(my_time AS DECIMAL(37,2)) my_time id
+NULL NULL 1
+-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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 67 OR select_id IS NULL);
+CAST(my_time AS DECIMAL(37,2)) my_time id
+NULL NULL 1
+-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(37,2)),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
+my_timestamp, id FROM t1_values
+WHERE select_id = 66 OR select_id IS NULL;
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 66 OR select_id IS NULL);
+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(37,2)),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DECIMAL(37,2)),
+my_date, id FROM t1_values
+WHERE select_id = 65 OR select_id IS NULL;
+CAST(my_date AS DECIMAL(37,2)) my_date id
+NULL NULL 1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 65 OR select_id IS NULL);
+CAST(my_date AS DECIMAL(37,2)) my_date id
+NULL NULL 1
+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(37,2)),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
+my_datetime, id FROM t1_values
+WHERE select_id = 64 OR select_id IS NULL;
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 64 OR select_id IS NULL);
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
+NULL NULL 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_decimal AS DECIMAL(37,2)),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
+my_decimal, id FROM t1_values
+WHERE select_id = 63 OR select_id IS NULL;
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 63 OR select_id IS NULL);
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
+NULL NULL 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(37,2)),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
+my_bigint, id FROM t1_values
+WHERE select_id = 62 OR select_id IS NULL;
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 62 OR select_id IS NULL);
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
+NULL NULL 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(37,2)),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 61 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 28
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 61 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 28
+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
+DROP VIEW v1;
+
+
+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(37,2)),
+my_binary_30, id FROM t1_values
+WHERE select_id = 60 OR select_id IS NULL;
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
+NULL NULL 1
+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: ''
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 60 OR select_id IS NULL);
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
+NULL NULL 1
+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: ''
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect DECIMAL value: '-1'
+Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
+DROP VIEW v1;
+
+
+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(37,2)),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 59 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 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
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 59 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 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
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+DROP VIEW v1;
+
+
+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(37,2)),
+my_char_30, id FROM t1_values
+WHERE select_id = 58 OR select_id IS NULL;
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
+NULL NULL 1
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 25
+Warnings:
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' '
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 58 OR select_id IS NULL);
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
+NULL NULL 1
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 25
+Warnings:
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' '
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS TIME),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS TIME),
+my_year, id FROM t1_values
+WHERE select_id = 57 OR select_id IS NULL;
+CAST(my_year AS TIME) my_year id
+NULL NULL 1
+00:19:01 1901 2
+00:21:55 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 57 OR select_id IS NULL);
+CAST(my_year AS TIME) my_year id
+NULL NULL 1
+00:19:01 1901 2
+00:21:55 2155 3
+00:20:00 2000 4
+00:20:05 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS TIME),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS TIME),
+my_time, id FROM t1_values
+WHERE select_id = 56 OR select_id IS NULL;
+CAST(my_time AS TIME) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 56 OR select_id IS NULL);
+CAST(my_time AS TIME) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS TIME),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS TIME),
+my_timestamp, id FROM t1_values
+WHERE select_id = 55 OR select_id IS NULL;
+CAST(my_timestamp AS TIME) my_timestamp id
+00:00:00 0000-00-00 00:00:00 1
+03:00:01 1970-01-01 03:00:01 2
+02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 55 OR select_id IS NULL);
+CAST(my_timestamp AS TIME) my_timestamp id
+00:00:00 0000-00-00 00:00:00 1
+03:00:01 1970-01-01 03:00:01 2
+02:59:59 2038-01-01 02:59:59 3
+23:59:59 2004-02-29 23:59:59 4
+10:00:00 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS TIME),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS TIME),
+my_date, id FROM t1_values
+WHERE select_id = 54 OR select_id IS NULL;
+CAST(my_date AS TIME) my_date id
+NULL NULL 1
+00:00:00 0001-01-01 2
+00:00:00 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 54 OR select_id IS NULL);
+CAST(my_date AS TIME) my_date id
+NULL NULL 1
+00:00:00 0001-01-01 2
+00:00:00 9999-12-31 3
+00:00:00 2004-02-29 4
+00:00:00 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS TIME),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS TIME),
+my_datetime, id FROM t1_values
+WHERE select_id = 53 OR select_id IS NULL;
+CAST(my_datetime AS TIME) my_datetime id
+NULL NULL 1
+00:00:00 0001-01-01 00:00:00 2
+23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 53 OR select_id IS NULL);
+CAST(my_datetime AS TIME) my_datetime id
+NULL NULL 1
+00:00:00 0001-01-01 00:00:00 2
+23:59:59 9999-12-31 23:59:59 3
+23:59:59 2004-02-29 23:59:59 4
+10:00:00 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS TIME),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS TIME),
+my_bigint, id FROM t1_values
+WHERE select_id = 52 OR select_id IS NULL;
+CAST(my_bigint AS TIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+00:00:00 0 4
+-00:00:01 -1 5
+00:17:58 1758 24
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 52 OR select_id IS NULL);
+CAST(my_bigint AS TIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+00:00:00 0 4
+-00:00:01 -1 5
+00:17:58 1758 24
+Warnings:
+Warning 1292 Truncated incorrect time value: '-9223372036854775808'
+Warning 1292 Truncated incorrect time value: '9223372036854775807'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS TIME),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS TIME),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 51 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 23
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 51 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 23
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS TIME),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS TIME),
+my_binary_30, id FROM t1_values
+WHERE select_id = 50 OR select_id IS NULL;
+CAST(my_binary_30 AS TIME) my_binary_30 id
+NULL NULL 1
+00:00:00
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$--
+NULL -1
+41:58:00 1 17:58
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 50 OR select_id IS NULL);
+CAST(my_binary_30 AS TIME) my_binary_30 id
+NULL NULL 1
+00:00:00
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$--
+NULL -1
+41:58:00 1 17:58
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect time value: '-1'
+Warning 1292 Truncated incorrect time value: '1 17:58'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS TIME),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS TIME),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 49 OR select_id IS NULL;
+CAST(my_varchar_1000 AS TIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 21
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 49 OR select_id IS NULL);
+CAST(my_varchar_1000 AS TIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 21
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS TIME),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS TIME),
+my_char_30, id FROM t1_values
+WHERE select_id = 48 OR select_id IS NULL;
+CAST(my_char_30 AS TIME) my_char_30 id
+NULL NULL 1
+NULL 2
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 20
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 48 OR select_id IS NULL);
+CAST(my_char_30 AS TIME) my_char_30 id
+NULL NULL 1
+NULL 2
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 20
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$--'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DATETIME),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DATETIME),
+my_year, id FROM t1_values
+WHERE select_id = 47 OR select_id IS NULL;
+CAST(my_year AS DATETIME) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 47 OR select_id IS NULL);
+CAST(my_year AS DATETIME) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated incorrect datetime value: '2005'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS DATETIME),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DATETIME),
+my_time, id FROM t1_values
+WHERE select_id = 46 OR select_id IS NULL;
+CAST(my_time AS DATETIME) my_time id
+NULL NULL 1
+0000-00-00 00:00:00 -838:59:59 2
+0000-00-00 00:00:00 838:59:59 3
+0000-00-00 13:00:00 13:00:00 4
+0000-00-00 10:00:00 10:00:00 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 46 OR select_id IS NULL);
+CAST(my_time AS DATETIME) my_time id
+NULL NULL 1
+0000-00-00 00:00:00 -838:59:59 2
+0000-00-00 00:00:00 838:59:59 3
+0000-00-00 13:00:00 13:00:00 4
+0000-00-00 10:00:00 10:00:00 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATETIME),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DATETIME),
+my_timestamp, id FROM t1_values
+WHERE select_id = 45 OR select_id IS NULL;
+CAST(my_timestamp AS DATETIME) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 45 OR select_id IS NULL);
+CAST(my_timestamp AS DATETIME) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS DATETIME),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DATETIME),
+my_date, id FROM t1_values
+WHERE select_id = 44 OR select_id IS NULL;
+CAST(my_date AS DATETIME) my_date id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 2
+9999-12-31 00:00:00 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 44 OR select_id IS NULL);
+CAST(my_date AS DATETIME) my_date id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 2
+9999-12-31 00:00:00 9999-12-31 3
+2004-02-29 00:00:00 2004-02-29 4
+2005-06-28 00:00:00 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATETIME),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DATETIME),
+my_datetime, id FROM t1_values
+WHERE select_id = 43 OR select_id IS NULL;
+CAST(my_datetime AS DATETIME) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 43 OR select_id IS NULL);
+CAST(my_datetime AS DATETIME) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS DATETIME),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS DATETIME),
+my_double, id FROM t1_values
+WHERE select_id = 42 OR select_id IS NULL;
+CAST(my_double AS DATETIME) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 19
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 42 OR select_id IS NULL);
+CAST(my_double AS DATETIME) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 19
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '200506271758'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATETIME),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DATETIME),
+my_bigint, id FROM t1_values
+WHERE select_id = 41 OR select_id IS NULL;
+CAST(my_bigint AS DATETIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 18
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 41 OR select_id IS NULL);
+CAST(my_bigint AS DATETIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 18
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '200506271758'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATETIME),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DATETIME),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 40 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 17
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 40 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 17
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATETIME),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS DATETIME),
+my_binary_30, id FROM t1_values
+WHERE select_id = 39 OR select_id IS NULL;
+CAST(my_binary_30 AS DATETIME) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 17:58:00 2005-06-27 17:58
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 39 OR select_id IS NULL);
+CAST(my_binary_30 AS DATETIME) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 17:58:00 2005-06-27 17:58
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '2005-06-27 17:58'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATETIME),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS DATETIME),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 38 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 15
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 38 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 15
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATETIME),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS DATETIME),
+my_char_30, id FROM t1_values
+WHERE select_id = 37 OR select_id IS NULL;
+CAST(my_char_30 AS DATETIME) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 14
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 37 OR select_id IS NULL);
+CAST(my_char_30 AS DATETIME) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 14
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DATE),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DATE),
+my_year, id FROM t1_values
+WHERE select_id = 36 OR select_id IS NULL;
+CAST(my_year AS DATE) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 36 OR select_id IS NULL);
+CAST(my_year AS DATE) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated incorrect datetime value: '2005'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS DATE),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DATE),
+my_time, id FROM t1_values
+WHERE select_id = 35 OR select_id IS NULL;
+CAST(my_time AS DATE) my_time id
+NULL NULL 1
+0000-00-00 -838:59:59 2
+0000-00-00 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 35 OR select_id IS NULL);
+CAST(my_time AS DATE) my_time id
+NULL NULL 1
+0000-00-00 -838:59:59 2
+0000-00-00 838:59:59 3
+0000-00-00 13:00:00 4
+0000-00-00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATE),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DATE),
+my_timestamp, id FROM t1_values
+WHERE select_id = 34 OR select_id IS NULL;
+CAST(my_timestamp AS DATE) my_timestamp id
+0000-00-00 0000-00-00 00:00:00 1
+1970-01-01 1970-01-01 03:00:01 2
+2038-01-01 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 34 OR select_id IS NULL);
+CAST(my_timestamp AS DATE) my_timestamp id
+0000-00-00 0000-00-00 00:00:00 1
+1970-01-01 1970-01-01 03:00:01 2
+2038-01-01 2038-01-01 02:59:59 3
+2004-02-29 2004-02-29 23:59:59 4
+2005-06-28 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS DATE),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DATE),
+my_date, id FROM t1_values
+WHERE select_id = 33 OR select_id IS NULL;
+CAST(my_date AS DATE) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 33 OR select_id IS NULL);
+CAST(my_date AS DATE) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATE),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DATE),
+my_datetime, id FROM t1_values
+WHERE select_id = 32 OR select_id IS NULL;
+CAST(my_datetime AS DATE) my_datetime id
+NULL NULL 1
+0001-01-01 0001-01-01 00:00:00 2
+9999-12-31 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 32 OR select_id IS NULL);
+CAST(my_datetime AS DATE) my_datetime id
+NULL NULL 1
+0001-01-01 0001-01-01 00:00:00 2
+9999-12-31 9999-12-31 23:59:59 3
+2004-02-29 2004-02-29 23:59:59 4
+2005-06-28 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS DATE),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS DATE),
+my_double, id FROM t1_values
+WHERE select_id = 31 OR select_id IS NULL;
+CAST(my_double AS DATE) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 13
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 31 OR select_id IS NULL);
+CAST(my_double AS DATE) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 13
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATE),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DATE),
+my_bigint, id FROM t1_values
+WHERE select_id = 30 OR select_id IS NULL;
+CAST(my_bigint AS DATE) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 12
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 30 OR select_id IS NULL);
+CAST(my_bigint AS DATE) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 12
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATE),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DATE),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 29 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 11
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 29 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 11
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATE),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS DATE),
+my_binary_30, id FROM t1_values
+WHERE select_id = 28 OR select_id IS NULL;
+CAST(my_binary_30 AS DATE) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 2005-06-27
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 28 OR select_id IS NULL);
+CAST(my_binary_30 AS DATE) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 2005-06-27
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect date value: '2005-06-27'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATE),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS DATE),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 27 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DATE) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 9
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 27 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DATE) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 9
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATE),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS DATE),
+my_char_30, id FROM t1_values
+WHERE select_id = 26 OR select_id IS NULL;
+CAST(my_char_30 AS DATE) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 8
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 26 OR select_id IS NULL);
+CAST(my_char_30 AS DATE) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 8
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS CHAR),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS CHAR),
+my_year, id FROM t1_values
+WHERE select_id = 25 OR select_id IS NULL;
+CAST(my_year AS CHAR) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 25 OR select_id IS NULL);
+CAST(my_year AS CHAR) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS CHAR),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS CHAR),
+my_time, id FROM t1_values
+WHERE select_id = 24 OR select_id IS NULL;
+CAST(my_time AS CHAR) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 24 OR select_id IS NULL);
+CAST(my_time AS CHAR) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS CHAR),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS CHAR),
+my_timestamp, id FROM t1_values
+WHERE select_id = 23 OR select_id IS NULL;
+CAST(my_timestamp AS CHAR) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 23 OR select_id IS NULL);
+CAST(my_timestamp AS CHAR) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS CHAR),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS CHAR),
+my_date, id FROM t1_values
+WHERE select_id = 22 OR select_id IS NULL;
+CAST(my_date AS CHAR) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 22 OR select_id IS NULL);
+CAST(my_date AS CHAR) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS CHAR),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS CHAR),
+my_datetime, id FROM t1_values
+WHERE select_id = 21 OR select_id IS NULL;
+CAST(my_datetime AS CHAR) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 21 OR select_id IS NULL);
+CAST(my_datetime AS CHAR) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS CHAR),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS CHAR),
+my_double, id FROM t1_values
+WHERE select_id = 20 OR select_id IS NULL;
+CAST(my_double AS CHAR) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 20 OR select_id IS NULL);
+CAST(my_double AS CHAR) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS CHAR),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS CHAR),
+my_decimal, id FROM t1_values
+WHERE select_id = 19 OR select_id IS NULL;
+CAST(my_decimal AS CHAR) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 19 OR select_id IS NULL);
+CAST(my_decimal AS CHAR) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS CHAR),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS CHAR),
+my_bigint, id FROM t1_values
+WHERE select_id = 18 OR select_id IS NULL;
+CAST(my_bigint AS CHAR) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 18 OR select_id IS NULL);
+CAST(my_bigint AS CHAR) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS CHAR),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS CHAR),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 17 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 17 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS CHAR),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS CHAR),
+my_binary_30, id FROM t1_values
+WHERE select_id = 16 OR select_id IS NULL;
+CAST(my_binary_30 AS CHAR) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 16 OR select_id IS NULL);
+CAST(my_binary_30 AS CHAR) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS CHAR),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS CHAR),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 15 OR select_id IS NULL;
+CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 15 OR select_id IS NULL);
+CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS CHAR),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS CHAR),
+my_char_30, id FROM t1_values
+WHERE select_id = 14 OR select_id IS NULL;
+CAST(my_char_30 AS CHAR) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 14 OR select_id IS NULL);
+CAST(my_char_30 AS CHAR) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS BINARY),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS BINARY),
+my_year, id FROM t1_values
+WHERE select_id = 13 OR select_id IS NULL;
+CAST(my_year AS BINARY) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 13 OR select_id IS NULL);
+CAST(my_year AS BINARY) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS BINARY),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS BINARY),
+my_time, id FROM t1_values
+WHERE select_id = 12 OR select_id IS NULL;
+CAST(my_time AS BINARY) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 12 OR select_id IS NULL);
+CAST(my_time AS BINARY) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS BINARY),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS BINARY),
+my_timestamp, id FROM t1_values
+WHERE select_id = 11 OR select_id IS NULL;
+CAST(my_timestamp AS BINARY) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 11 OR select_id IS NULL);
+CAST(my_timestamp AS BINARY) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS BINARY),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS BINARY),
+my_date, id FROM t1_values
+WHERE select_id = 10 OR select_id IS NULL;
+CAST(my_date AS BINARY) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 10 OR select_id IS NULL);
+CAST(my_date AS BINARY) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS BINARY),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS BINARY),
+my_datetime, id FROM t1_values
+WHERE select_id = 9 OR select_id IS NULL;
+CAST(my_datetime AS BINARY) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 9 OR select_id IS NULL);
+CAST(my_datetime AS BINARY) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS BINARY),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS BINARY),
+my_double, id FROM t1_values
+WHERE select_id = 8 OR select_id IS NULL;
+CAST(my_double AS BINARY) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 8 OR select_id IS NULL);
+CAST(my_double AS BINARY) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS BINARY),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS BINARY),
+my_decimal, id FROM t1_values
+WHERE select_id = 7 OR select_id IS NULL;
+CAST(my_decimal AS BINARY) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 7 OR select_id IS NULL);
+CAST(my_decimal AS BINARY) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS BINARY),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS BINARY),
+my_bigint, id FROM t1_values
+WHERE select_id = 6 OR select_id IS NULL;
+CAST(my_bigint AS BINARY) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 6 OR select_id IS NULL);
+CAST(my_bigint AS BINARY) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS BINARY),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS BINARY),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 5 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 5 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS BINARY),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS BINARY),
+my_binary_30, id FROM t1_values
+WHERE select_id = 4 OR select_id IS NULL;
+CAST(my_binary_30 AS BINARY) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 4 OR select_id IS NULL);
+CAST(my_binary_30 AS BINARY) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS BINARY),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS BINARY),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 3 OR select_id IS NULL;
+CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 3 OR select_id IS NULL);
+CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS BINARY),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS BINARY),
+my_char_30, id FROM t1_values
+WHERE select_id = 2 OR select_id IS NULL;
+CAST(my_char_30 AS BINARY) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 2 OR select_id IS NULL);
+CAST(my_char_30 AS BINARY) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT sqrt(my_bigint), my_bigint, id FROM t1_values;
+SELECT sqrt(my_bigint), my_bigint, id FROM t1_values
+WHERE select_id = 1 OR select_id IS NULL;
+sqrt(my_bigint) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+3037000499.976 9223372036854775807 3
+0 0 4
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 1 OR select_id IS NULL);
+sqrt(my_bigint) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+3037000499.976 9223372036854775807 3
+0 0 4
+NULL -1 5
+2 4 6
+NULL -25 7
+DROP VIEW v1;
+
+
+DROP TABLE t1_selects, t1_modes, t1_values;
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc.result b/mysql-test/suite/funcs_1/r/innodb_storedproc.result
new file mode 100644
index 00000000000..f05c7ef73c4
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc.result
@@ -0,0 +1,22539 @@
+
+.
+. IMPORTANT NOTICE:
+. -----------------
+.
+. FIXME: The <engine>_storedproc.result files are still NOT CHECKED
+. for correctness!
+.
+. FIXME: Several tests are affected by known problems around DECIMAL
+. FIXME: and NUMERIC that needs to be checked again after WL#2984
+. FIXME: has been completed. Some of them are marked in the result.
+.
+. This .result file has been checked OK with Linux 5.0.23-bk,
+. ChangeSet@1.2211, 2006-06-28 10:11:43-07:00.
+.
+. This file has been saved although it might contain failures / wrong
+. results to be able to detect _new_ differences in the behaviour.
+. Hopefully the remaining checks can be made soon.
+.
+--------------------------------------------------------------------------------
+ FIXME: There are subtests that are switched off due to known bugs:
+ ------------------------------------------------------------------
+WL#2984: DECIMAL and NUMERIC problems with differences on some machines
+0
+
+There are some statements where the ps-protocol is switched off.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.1 - Syntax checks for the CREATE PROCEDURE, CREATE
+FUNCTION, ALTER PROCEDURE, ALTER FUNCTION, DROP PROCEDURE, DROP FUNCTION, SHOW
+CREATE PROCEDURE, SHOW CREATE FUNCTION, SHOW CREATE PROCEDURE STATUS, SHOW
+CREATE FUNCTION STATUS, and CALL statements:
+--------------------------------------------------------------------------------
+
+Testcase 4.1.1:
+---------------
+Ensure that all clauses that should be supported are supported
+CREATE PROCEDURE
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 (f1 char(20) )
+SELECT * from t1 where f2 = f1;
+ERROR 42000: Identifier name 'sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934' is too long
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934('aaaa');
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 does not exist
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( f1 tinytext ) language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1, @v1;
+END//
+ERROR 42000: Identifier name 'sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde' is too long
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( 'abc' );
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde does not exist
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 binary ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+3
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 blob ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+34
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 int ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+34
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: SP definition accepted with m>60 in DECIMAL(m,n)
+CREATE PROCEDURE sp1( f1 decimal(256, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+ERROR 42000: Too big precision 256 specified for column ''. Maximum is 65.
+DROP PROCEDURE IF EXISTS sp1//
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( f1 decimal(66, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+ERROR 42000: Too big precision 66 specified for column ''. Maximum is 65.
+DROP PROCEDURE IF EXISTS sp1//
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( f1 decimal(60, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 17976931340000 );
+@v1
+17976931340000.000000000000000000000000000000
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+CALL sp1( "value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 set("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+CALL sp1( "value1, value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+CALL sp1( "value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) language sql SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) deterministic SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) not deterministic SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) sql security definer SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) sql security invoker SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) comment 'this is simple' SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER this is simple
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 does not exist
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde does not exist
+DROP PROCEDURE sp1;
+
+Testcase 4.1.2:
+---------------
+Ensure that all clauses that should be supported are supported
+CREATE FUNCTION
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+return concat('hello, ', s, '!');
+SELECT fn1('world');
+fn1('world')
+hello, world!
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 mediumtext ) returns mediumtext language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+set @v1 = 'hello';
+set f1 = concat( @v1, f1 );
+return f1;
+END//
+SELECT fn1( ' world');
+fn1( ' world')
+hello world
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 decimal(63, 31) ) returns decimal(63, 31) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1000000 + f1;
+return f1;
+END//
+ERROR 42000: Too big scale 31 specified for column ''. Maximum is 30.
+SELECT fn1( 1.3326e+8 );
+ERROR 42000: FUNCTION db_storedproc.fn1 does not exist
+CREATE FUNCTION fn1( f1 decimal(63, 30) ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1000000 + f1;
+return f1;
+END//
+SELECT fn1( 1.3326e+8 );
+fn1( 1.3326e+8 )
+134260000.000000000000000000000000000000
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 enum("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+return f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SELECT fn1( "value1" );
+fn1( "value1" )
+1.000000000000000000000000000000
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 set("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+return f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+SELECT fn1( "value1, value1" );
+fn1( "value1, value1" )
+1.000000000000000000000000000000
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint deterministic
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint not deterministic
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+sql security definer
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+sql security invoker
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+comment 'this is simple'
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER this is simple
+DROP FUNCTION fn1;
+
+Testcase 4.1.3:
+---------------
+Ensure that all clauses that should be supported are supported
+SHOW CREATE PROC
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (f1 char(20) )
+SELECT * from t1 where f2 = f1;
+show CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+sp1 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`(f1 char(20) )
+SELECT * from t1 where f2 = f1
+DROP PROCEDURE sp1;
+
+Testcase 4.1.4:
+---------------
+show create function
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+return concat('hello, ', s, '!');
+show CREATE FUNCTION fn1;
+Function sql_mode Create Function
+fn1 CREATE DEFINER=`root`@`localhost` FUNCTION `fn1`(s char(20)) RETURNS char(50)
+return concat('hello, ', s, '!')
+DROP FUNCTION fn1;
+
+Testcase 4.1.5:
+---------------
+SHOW PROCEDURE status
+--------------------------------------------------------------------------------
+CREATE PROCEDURE sp5()
+SELECT * from t1;
+SHOW PROCEDURE status like 'sp5';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp5 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE sp5;
+
+Testcase 4.1.6:
+---------------
+show function status
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn5(a int) returns int
+BEGIN
+set @b = 0.9 * a;
+return @b;
+END//
+SHOW FUNCTION STATUS LIKE 'fn5';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn5 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION fn5;
+
+Testcase 4.1.7:
+---------------
+CALL procedure
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7a;
+DROP PROCEDURE IF EXISTS sp7b;
+DROP PROCEDURE IF EXISTS sp7c;
+CREATE PROCEDURE sp7a(a char(20))
+SELECT * from t1 where t1.f2 = a;
+CALL sp7a( 'xyz' );
+f1 f2 f3 f4 f5 f6
+CREATE PROCEDURE sp7b (a char (20), out b char(20))
+SELECT f1 into b from t1 where t1.f2= a;
+CALL sp7b('xyz', @out_param);
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+SELECT @out_param;
+@out_param
+NULL
+CREATE PROCEDURE sp7c (a char (20), out b char(20), inout c int)
+BEGIN
+SELECT f1 into b from t1 where t1.f2=a;
+update t1 set t1.f2=999 where t1.f4=c;
+SELECT f2 into c from t1 where t1.f2=999;
+END//
+set @c=1;
+CALL sp7c('xyz', @out_param, @c);
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+Warning 1329 No data - zero rows fetched, selected, or processed
+SELECT @out_param;
+@out_param
+NULL
+SELECT @c;
+@c
+1
+DROP PROCEDURE sp7a;
+DROP PROCEDURE sp7b;
+DROP PROCEDURE sp7c;
+
+Testcase 4.1.8:
+---------------
+calling function
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn8(a char(20)) returns char(50)
+return concat('hello, ', a, '!');
+SELECT fn8('world');
+fn8('world')
+hello, world!
+DROP FUNCTION fn8;
+
+Testcase 4.1.9:
+---------------
+drop procedure
+--------------------------------------------------------------------------------
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+DROP PROCEDURE IF EXISTS sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE PROCEDURE sp9()SELECT * from t1;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc sp9 PROCEDURE sp9 SQL CONTAINS_SQL NO DEFINER SELECT * from t1 root@localhost created modified
+DROP PROCEDURE sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE PROCEDURE sp9()SELECT * from t1;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc sp9 PROCEDURE sp9 SQL CONTAINS_SQL NO DEFINER SELECT * from t1 root@localhost created modified
+DROP PROCEDURE IF EXISTS sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.1.10:
+----------------
+DROP FUNCTION
+--------------------------------------------------------------------------------
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+DROP FUNCTION IF EXISTS fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE FUNCTION fn10() returns int return 100;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc fn10 FUNCTION fn10 SQL CONTAINS_SQL NO DEFINER int(11) return 100 root@localhost created modified
+DROP FUNCTION fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE FUNCTION fn10() returns int return 100;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc fn10 FUNCTION fn10 SQL CONTAINS_SQL NO DEFINER int(11) return 100 root@localhost created modified
+DROP FUNCTION IF EXISTS fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.1.11:
+----------------
+alter proc
+--------------------------------------------------------------------------------
+create user 'user_1'@'localhost';
+grant execute on db_storedproc.* to 'user_1'@'localhost';
+flush privileges;
+drop table IF EXISTS mysql.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table mysql.t1( f1 char );
+DROP PROCEDURE IF EXISTS sp11;
+Warnings:
+Note 1305 PROCEDURE sp11 does not exist
+CREATE PROCEDURE sp11() insert into mysql.t1 values('a');
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+DEFINER
+connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc
+CALL sp11();
+
+root@localhost db_storedproc
+alter procedure sp11 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+INVOKER
+
+user_1@localhost db_storedproc
+CALL sp11();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't1'
+commit work;
+
+root@localhost db_storedproc
+alter procedure sp11 sql security definer;
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+DEFINER
+CALL sp11();
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp11;
+drop table mysql.t1;
+
+Testcase 4.1.12:
+----------------
+alter function
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn12() returns int
+return 100;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+DEFINER
+SELECT fn12();
+fn12()
+100
+alter function fn12 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+INVOKER
+SELECT fn12();
+fn12()
+100
+alter function fn12 sql security definer;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+DEFINER
+SELECT fn12();
+fn12()
+100
+DROP FUNCTION fn12;
+
+Testcase 4.1.13:
+----------------
+alter proc
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp11;
+Warnings:
+Note 1305 PROCEDURE sp11 does not exist
+CREATE PROCEDURE sp11()
+SELECT * from t1;
+SELECT comment from mysql.proc where specific_name='sp11';
+comment
+
+alter procedure sp11 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='sp11';
+comment
+this is simple
+DROP PROCEDURE sp11;
+
+Testcase 4.1.14:
+----------------
+alter function
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn12;
+Warnings:
+Note 1305 FUNCTION fn12 does not exist
+CREATE FUNCTION fn12() returns int
+return 100;
+SELECT comment from mysql.proc where specific_name='fn12';
+comment
+
+alter function fn12 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='fn12';
+comment
+this is simple
+DROP FUNCTION fn12;
+
+Testcase 4.1.15:
+----------------
+Ensure that any invalid stored procedure name is never accepted, and that an
+appropriate error message is returned when the name is rejected
+--------------------------------------------------------------------------------
+CREATE PROCEDURE sp1()
+DROP PROCEDURE sp1;
+ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
+CREATE PROCEDURE !_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1;
+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 '!_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1' at line 1
+CREATE PROCEDURE function()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE function;
+CREATE PROCEDURE add()
+SELECT * from t1 where f2=f1;
+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 'add()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE all()
+SELECT * from t1 where f2=f1;
+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 'all()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE alter()
+SELECT * from t1 where f2=f1;
+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 'alter()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE analyze()
+SELECT * from t1 where f2=f1;
+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 'analyze()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE and()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE as()
+SELECT * from t1 where f2=f1;
+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 'as()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE asc()
+SELECT * from t1 where f2=f1;
+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 'asc()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE asensitive()
+SELECT * from t1 where f2=f1;
+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 'asensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE before()
+SELECT * from t1 where f2=f1;
+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 'before()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE between()
+SELECT * from t1 where f2=f1;
+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 'between()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE bigint()
+SELECT * from t1 where f2=f1;
+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 'bigint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE binary()
+SELECT * from t1 where f2=f1;
+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 'binary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE blob()
+SELECT * from t1 where f2=f1;
+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 'blob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE both()
+SELECT * from t1 where f2=f1;
+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 'both()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE by()
+SELECT * from t1 where f2=f1;
+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 'by()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE CALL()
+SELECT * from t1 where f2=f1;
+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 'CALL()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cascade()
+SELECT * from t1 where f2=f1;
+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 'cascade()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE case()
+SELECT * from t1 where f2=f1;
+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 'case()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE change()
+SELECT * from t1 where f2=f1;
+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 'change()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE char()
+SELECT * from t1 where f2=f1;
+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 'char()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE character()
+SELECT * from t1 where f2=f1;
+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 'character()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE check()
+SELECT * from t1 where f2=f1;
+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 'check()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE collate()
+SELECT * from t1 where f2=f1;
+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 'collate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE column()
+SELECT * from t1 where f2=f1;
+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 'column()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE columns()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE columns;
+CREATE PROCEDURE condition()
+SELECT * from t1 where f2=f1;
+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 'condition()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE connection()
+SELECT * from t1 where f2=f1;
+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 'connection()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE constraint()
+SELECT * from t1 where f2=f1;
+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 'constraint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE continue()
+SELECT * from t1 where f2=f1;
+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 'continue()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE convert()
+SELECT * from t1 where f2=f1;
+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 'convert()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE create()
+SELECT * from t1 where f2=f1;
+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 'create()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cross()
+SELECT * from t1 where f2=f1;
+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 'cross()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_date()
+SELECT * from t1 where f2=f1;
+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 'current_date()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_time()
+SELECT * from t1 where f2=f1;
+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 'current_time()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_timestamp()
+SELECT * from t1 where f2=f1;
+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 'current_timestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_user()
+SELECT * from t1 where f2=f1;
+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 'current_user()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cursor()
+SELECT * from t1 where f2=f1;
+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 'cursor()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE database()
+SELECT * from t1 where f2=f1;
+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 'database()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE databases()
+SELECT * from t1 where f2=f1;
+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 'databases()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_hour()
+SELECT * from t1 where f2=f1;
+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 'day_hour()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_microsecond()
+SELECT * from t1 where f2=f1;
+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 'day_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_minute()
+SELECT * from t1 where f2=f1;
+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 'day_minute()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_second()
+SELECT * from t1 where f2=f1;
+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 'day_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE dec()
+SELECT * from t1 where f2=f1;
+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 'dec()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE decimal()
+SELECT * from t1 where f2=f1;
+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 'decimal()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE declare()
+SELECT * from t1 where f2=f1;
+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 'declare()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE default()
+SELECT * from t1 where f2=f1;
+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 'default()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE delayed()
+SELECT * from t1 where f2=f1;
+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 'delayed()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE delete()
+SELECT * from t1 where f2=f1;
+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 'delete()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE desc()
+SELECT * from t1 where f2=f1;
+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 'desc()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE describe()
+SELECT * from t1 where f2=f1;
+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 'describe()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE deterministic()
+SELECT * from t1 where f2=f1;
+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 'deterministic()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE distinct()
+SELECT * from t1 where f2=f1;
+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 'distinct()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE distinctrow()
+SELECT * from t1 where f2=f1;
+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 'distinctrow()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE div()
+SELECT * from t1 where f2=f1;
+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 'div()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE double()
+SELECT * from t1 where f2=f1;
+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 'double()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE drop()
+SELECT * from t1 where f2=f1;
+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 'drop()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE dual()
+SELECT * from t1 where f2=f1;
+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 'dual()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE each()
+SELECT * from t1 where f2=f1;
+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 'each()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE else()
+SELECT * from t1 where f2=f1;
+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 'else()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE elseif()
+SELECT * from t1 where f2=f1;
+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 'elseif()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE enclosed()
+SELECT * from t1 where f2=f1;
+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 'enclosed()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE escaped()
+SELECT * from t1 where f2=f1;
+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 'escaped()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE exists()
+SELECT * from t1 where f2=f1;
+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 'exists()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE exit()
+SELECT * from t1 where f2=f1;
+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 'exit()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE explain()
+SELECT * from t1 where f2=f1;
+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 'explain()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE false()
+SELECT * from t1 where f2=f1;
+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 'false()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fetch()
+SELECT * from t1 where f2=f1;
+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 'fetch()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fields()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE fields;
+CREATE PROCEDURE float()
+SELECT * from t1 where f2=f1;
+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 'float()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE for()
+SELECT * from t1 where f2=f1;
+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 'for()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE force()
+SELECT * from t1 where f2=f1;
+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 'force()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE foreign()
+SELECT * from t1 where f2=f1;
+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 'foreign()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE found()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE found;
+CREATE PROCEDURE from()
+SELECT * from t1 where f2=f1;
+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 'from()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fulltext()
+SELECT * from t1 where f2=f1;
+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 'fulltext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE goto()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE goto;
+CREATE PROCEDURE grant()
+SELECT * from t1 where f2=f1;
+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 'grant()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE group()
+SELECT * from t1 where f2=f1;
+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 'group()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE having()
+SELECT * from t1 where f2=f1;
+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 'having()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE high_priority()
+SELECT * from t1 where f2=f1;
+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 'high_priority()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_microsecond()
+SELECT * from t1 where f2=f1;
+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 'hour_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_minute()
+SELECT * from t1 where f2=f1;
+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 'hour_minute()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_second()
+SELECT * from t1 where f2=f1;
+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 'hour_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE if()
+SELECT * from t1 where f2=f1;
+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 'if()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE ignore()
+SELECT * from t1 where f2=f1;
+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 'ignore()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE in()
+SELECT * from t1 where f2=f1;
+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 'in()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE index()
+SELECT * from t1 where f2=f1;
+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 'index()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE infile()
+SELECT * from t1 where f2=f1;
+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 'infile()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE inner()
+SELECT * from t1 where f2=f1;
+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 'inner()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE inout()
+SELECT * from t1 where f2=f1;
+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 'inout()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE insensitive()
+SELECT * from t1 where f2=f1;
+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 'insensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE insert()
+SELECT * from t1 where f2=f1;
+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 'insert()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE int()
+SELECT * from t1 where f2=f1;
+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 'int()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE integer()
+SELECT * from t1 where f2=f1;
+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 'integer()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE interval()
+SELECT * from t1 where f2=f1;
+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 'interval()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE into()
+SELECT * from t1 where f2=f1;
+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 'into()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE is()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE iterate()
+SELECT * from t1 where f2=f1;
+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 'iterate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE join()
+SELECT * from t1 where f2=f1;
+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 'join()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE key()
+SELECT * from t1 where f2=f1;
+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 'key()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE keys()
+SELECT * from t1 where f2=f1;
+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 'keys()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE kill()
+SELECT * from t1 where f2=f1;
+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 'kill()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE leading()
+SELECT * from t1 where f2=f1;
+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 'leading()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE leave()
+SELECT * from t1 where f2=f1;
+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 'leave()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE left()
+SELECT * from t1 where f2=f1;
+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 'left()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE like()
+SELECT * from t1 where f2=f1;
+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 'like()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE limit()
+SELECT * from t1 where f2=f1;
+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 'limit()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE lines()
+SELECT * from t1 where f2=f1;
+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 'lines()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE load()
+SELECT * from t1 where f2=f1;
+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 'load()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE localtime()
+SELECT * from t1 where f2=f1;
+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 'localtime()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE localtimestamp()
+SELECT * from t1 where f2=f1;
+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 'localtimestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE lock()
+SELECT * from t1 where f2=f1;
+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 'lock()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE long()
+SELECT * from t1 where f2=f1;
+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 'long()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE longblob()
+SELECT * from t1 where f2=f1;
+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 'longblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE longtext()
+SELECT * from t1 where f2=f1;
+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 'longtext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE loop()
+SELECT * from t1 where f2=f1;
+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 'loop()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE low_priority()
+SELECT * from t1 where f2=f1;
+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 'low_priority()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE match()
+SELECT * from t1 where f2=f1;
+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 'match()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumblob()
+SELECT * from t1 where f2=f1;
+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 'mediumblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumint()
+SELECT * from t1 where f2=f1;
+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 'mediumint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumtext()
+SELECT * from t1 where f2=f1;
+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 'mediumtext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE middleint()
+SELECT * from t1 where f2=f1;
+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 'middleint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE minute_microsecond()
+SELECT * from t1 where f2=f1;
+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 'minute_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE minute_second()
+SELECT * from t1 where f2=f1;
+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 'minute_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mod()
+SELECT * from t1 where f2=f1;
+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 'mod()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE modifies()
+SELECT * from t1 where f2=f1;
+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 'modifies()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE natural()
+SELECT * from t1 where f2=f1;
+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 'natural()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE not()
+SELECT * from t1 where f2=f1;
+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 'not()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE no_write_to_binlog()
+SELECT * from t1 where f2=f1;
+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 'no_write_to_binlog()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE null()
+SELECT * from t1 where f2=f1;
+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 'null()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE numeric()
+SELECT * from t1 where f2=f1;
+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 'numeric()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE on()
+SELECT * from t1 where f2=f1;
+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 'on()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE optimize()
+SELECT * from t1 where f2=f1;
+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 'optimize()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE option()
+SELECT * from t1 where f2=f1;
+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 'option()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE optionally()
+SELECT * from t1 where f2=f1;
+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 'optionally()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE or()
+SELECT * from t1 where f2=f1;
+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 'or()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE order()
+SELECT * from t1 where f2=f1;
+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 'order()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE out()
+SELECT * from t1 where f2=f1;
+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 'out()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE outer()
+SELECT * from t1 where f2=f1;
+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 'outer()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE outfile()
+SELECT * from t1 where f2=f1;
+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 'outfile()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE precision()
+SELECT * from t1 where f2=f1;
+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 'precision()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE primary()
+SELECT * from t1 where f2=f1;
+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 'primary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE privileges()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE privileges;
+CREATE PROCEDURE procedure()
+SELECT * from t1 where f2=f1;
+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 'procedure()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE purge()
+SELECT * from t1 where f2=f1;
+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 'purge()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE read()
+SELECT * from t1 where f2=f1;
+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 'read()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE reads()
+SELECT * from t1 where f2=f1;
+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 'reads()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE real()
+SELECT * from t1 where f2=f1;
+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 'real()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE references()
+SELECT * from t1 where f2=f1;
+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 'references()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE regexp()
+SELECT * from t1 where f2=f1;
+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 'regexp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE rename()
+SELECT * from t1 where f2=f1;
+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 'rename()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE repeat()
+SELECT * from t1 where f2=f1;
+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 'repeat()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE replace()
+SELECT * from t1 where f2=f1;
+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 'replace()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE require()
+SELECT * from t1 where f2=f1;
+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 'require()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE restrict()
+SELECT * from t1 where f2=f1;
+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 'restrict()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE return()
+SELECT * from t1 where f2=f1;
+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 'return()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE revoke()
+SELECT * from t1 where f2=f1;
+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 'revoke()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE right()
+SELECT * from t1 where f2=f1;
+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 'right()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE rlike()
+SELECT * from t1 where f2=f1;
+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 'rlike()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE schema()
+SELECT * from t1 where f2=f1;
+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 'schema()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE schemas()
+SELECT * from t1 where f2=f1;
+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 'schemas()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE second_microsecond()
+SELECT * from t1 where f2=f1;
+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 'second_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE select()
+SELECT * from t1 where f2=f1;
+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 'select()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sensitive()
+SELECT * from t1 where f2=f1;
+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 'sensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE separator()
+SELECT * from t1 where f2=f1;
+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 'separator()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE set()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE show()
+SELECT * from t1 where f2=f1;
+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 'show()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE smallint()
+SELECT * from t1 where f2=f1;
+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 'smallint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE soname()
+SELECT * from t1 where f2=f1;
+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 'soname()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE spatial()
+SELECT * from t1 where f2=f1;
+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 'spatial()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE specific()
+SELECT * from t1 where f2=f1;
+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 'specific()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql()
+SELECT * from t1 where f2=f1;
+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 'sql()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlexception()
+SELECT * from t1 where f2=f1;
+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 'sqlexception()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlstate()
+SELECT * from t1 where f2=f1;
+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 'sqlstate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlwarning()
+SELECT * from t1 where f2=f1;
+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 'sqlwarning()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_big_result()
+SELECT * from t1 where f2=f1;
+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 'sql_big_result()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_calc_found_rows()
+SELECT * from t1 where f2=f1;
+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 'sql_calc_found_rows()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_small_result()
+SELECT * from t1 where f2=f1;
+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 'sql_small_result()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE ssl()
+SELECT * from t1 where f2=f1;
+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 'ssl()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE starting()
+SELECT * from t1 where f2=f1;
+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 'starting()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE straight_join()
+SELECT * from t1 where f2=f1;
+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 'straight_join()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE table()
+SELECT * from t1 where f2=f1;
+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 'table()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tables()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE tables;
+CREATE PROCEDURE terminated()
+SELECT * from t1 where f2=f1;
+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 'terminated()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE then()
+SELECT * from t1 where f2=f1;
+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 'then()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinyblob()
+SELECT * from t1 where f2=f1;
+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 'tinyblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinyint()
+SELECT * from t1 where f2=f1;
+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 'tinyint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinytext()
+SELECT * from t1 where f2=f1;
+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 'tinytext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE to()
+SELECT * from t1 where f2=f1;
+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 'to()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE trailing()
+SELECT * from t1 where f2=f1;
+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 'trailing()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE trigger()
+SELECT * from t1 where f2=f1;
+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 'trigger()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE true()
+SELECT * from t1 where f2=f1;
+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 'true()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE undo()
+SELECT * from t1 where f2=f1;
+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 'undo()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE union()
+SELECT * from t1 where f2=f1;
+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 'union()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unique()
+SELECT * from t1 where f2=f1;
+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 'unique()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unlock()
+SELECT * from t1 where f2=f1;
+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 'unlock()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unsigned()
+SELECT * from t1 where f2=f1;
+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 'unsigned()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE update()
+SELECT * from t1 where f2=f1;
+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 'update()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE usage()
+SELECT * from t1 where f2=f1;
+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 'usage()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE use()
+SELECT * from t1 where f2=f1;
+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 'use()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE using()
+SELECT * from t1 where f2=f1;
+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 'using()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_date()
+SELECT * from t1 where f2=f1;
+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 'utc_date()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_time()
+SELECT * from t1 where f2=f1;
+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 'utc_time()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_timestamp()
+SELECT * from t1 where f2=f1;
+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 'utc_timestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE values()
+SELECT * from t1 where f2=f1;
+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 'values()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varbinary()
+SELECT * from t1 where f2=f1;
+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 'varbinary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varchar()
+SELECT * from t1 where f2=f1;
+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 'varchar()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varcharacter()
+SELECT * from t1 where f2=f1;
+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 'varcharacter()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varying()
+SELECT * from t1 where f2=f1;
+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 'varying()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE when()
+SELECT * from t1 where f2=f1;
+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 'when()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE where()
+SELECT * from t1 where f2=f1;
+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 'where()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE while()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE with()
+SELECT * from t1 where f2=f1;
+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 'with()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE write()
+SELECT * from t1 where f2=f1;
+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 'write()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE xor()
+SELECT * from t1 where f2=f1;
+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 'xor()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE year_month()
+SELECT * from t1 where f2=f1;
+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 'year_month()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE zerofill()
+SELECT * from t1 where f2=f1;
+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 'zerofill()
+SELECT * from t1 where f2=f1' at line 1
+
+Testcase 4.1.15:
+----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected
+--------------------------------------------------------------------------------
+CREATE FUNCTION !_fn1(f1 char) returns char
+return f1;
+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 '!_fn1(f1 char) returns char
+return f1' at line 1
+CREATE FUNCTION char(f1 char) returns char
+return f1;
+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 'char(f1 char) returns char
+return f1' at line 1
+CREATE FUNCTION char binary(f1 char binary) returns char binary
+return f1;
+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 'char binary(f1 char binary) returns char binary
+return f1' at line 1
+CREATE FUNCTION char ascii(f1 char ascii) returns char ascii
+return f1;
+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 'char ascii(f1 char ascii) returns char ascii
+return f1' at line 1
+CREATE FUNCTION char not null(f1 char not null) returns char not null
+return f1;
+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 'char not null(f1 char not null) returns char not null
+return f1' at line 1
+CREATE FUNCTION char binary not null(f1 char binary not null) returns char binary not null
+return f1;
+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 'char binary not null(f1 char binary not null) returns char binary not null
+retur' at line 1
+CREATE FUNCTION char ascii not null(f1 char ascii not null) returns char ascii not null
+return f1;
+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 'char ascii not null(f1 char ascii not null) returns char ascii not null
+return f' at line 1
+CREATE FUNCTION tinytext(f1 tinytext) returns tinytext
+return f1;
+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 'tinytext(f1 tinytext) returns tinytext
+return f1' at line 1
+CREATE FUNCTION text(f1 text) returns text
+return f1;
+DROP FUNCTION text;
+CREATE FUNCTION mediumtext(f1 mediumtext) returns mediumtext
+return f1;
+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 'mediumtext(f1 mediumtext) returns mediumtext
+return f1' at line 1
+CREATE FUNCTION longtext(f1 longtext) returns longtext
+return f1;
+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 'longtext(f1 longtext) returns longtext
+return f1' at line 1
+CREATE FUNCTION tinytext not null(f1 tinytext not null) returns tinytext not null
+return f1;
+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 'tinytext not null(f1 tinytext not null) returns tinytext not null
+return f1' at line 1
+CREATE FUNCTION text not null(f1 text not null) returns text not null
+return f1;
+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 'not null(f1 text not null) returns text not null
+return f1' at line 1
+CREATE FUNCTION mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+return f1;
+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 'mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+return f' at line 1
+CREATE FUNCTION longtext not null(f1 longtext not null) returns longtext not null
+return f1;
+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 'longtext not null(f1 longtext not null) returns longtext not null
+return f1' at line 1
+CREATE FUNCTION tinyblob(f1 tinyblob) returns tinyblob
+return f1;
+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 'tinyblob(f1 tinyblob) returns tinyblob
+return f1' at line 1
+CREATE FUNCTION blob(f1 blob) returns blob
+return f1;
+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 'blob(f1 blob) returns blob
+return f1' at line 1
+CREATE FUNCTION mediumblob(f1 mediumblob) returns mediumblob
+return f1;
+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 'mediumblob(f1 mediumblob) returns mediumblob
+return f1' at line 1
+CREATE FUNCTION longblob(f1 longblob) returns longblob
+return f1;
+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 'longblob(f1 longblob) returns longblob
+return f1' at line 1
+CREATE FUNCTION tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+return f1;
+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 'tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+return f1' at line 1
+CREATE FUNCTION blob not null(f1 blob not null) returns blob not null
+return f1;
+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 'blob not null(f1 blob not null) returns blob not null
+return f1' at line 1
+CREATE FUNCTION mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+return f1;
+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 'mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+return f' at line 1
+CREATE FUNCTION longblob not null(f1 longblob not null) returns longblob not null
+return f1;
+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 'longblob not null(f1 longblob not null) returns longblob not null
+return f1' at line 1
+CREATE FUNCTION binary(f1 binary) returns binary
+return f1;
+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 'binary(f1 binary) returns binary
+return f1' at line 1
+CREATE FUNCTION binary not null(f1 binary not null) returns binary not null
+return f1;
+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 'binary not null(f1 binary not null) returns binary not null
+return f1' at line 1
+CREATE FUNCTION tinyint(f1 tinyint) returns tinyint
+return f1;
+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 'tinyint(f1 tinyint) returns tinyint
+return f1' at line 1
+CREATE FUNCTION tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+return f1;
+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 'tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+return f1' at line 1
+CREATE FUNCTION tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+return f1;
+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 'tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+return f1' at line 1
+CREATE FUNCTION tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+return f1;
+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 'tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned' at line 1
+CREATE FUNCTION smallint(f1 smallint) returns smallint
+return f1;
+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 'smallint(f1 smallint) returns smallint
+return f1' at line 1
+CREATE FUNCTION smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+return f1;
+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 'smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+return f1' at line 1
+CREATE FUNCTION smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+return f1;
+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 'smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+return f1' at line 1
+CREATE FUNCTION smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+return f1;
+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 'smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsig' at line 1
+CREATE FUNCTION mediumint(f1 mediumint) returns mediumint
+return f1;
+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 'mediumint(f1 mediumint) returns mediumint
+return f1' at line 1
+CREATE FUNCTION mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+return f1;
+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 'mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+return f1' at line 1
+CREATE FUNCTION mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+return f1;
+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 'mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+return f1' at line 1
+CREATE FUNCTION mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+return f1;
+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 'mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint un' at line 1
+CREATE FUNCTION int(f1 int) returns int
+return f1;
+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 'int(f1 int) returns int
+return f1' at line 1
+CREATE FUNCTION int unsigned(f1 int unsigned) returns int unsigned
+return f1;
+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 'int unsigned(f1 int unsigned) returns int unsigned
+return f1' at line 1
+CREATE FUNCTION int zerofill(f1 int zerofill) returns int zerofill
+return f1;
+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 'int zerofill(f1 int zerofill) returns int zerofill
+return f1' at line 1
+CREATE FUNCTION int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+return f1;
+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 'int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+re' at line 1
+CREATE FUNCTION bigint(f1 bigint) returns bigint
+return f1;
+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 'bigint(f1 bigint) returns bigint
+return f1' at line 1
+CREATE FUNCTION bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+return f1;
+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 'bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+return f1' at line 1
+CREATE FUNCTION bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+return f1;
+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 'bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+return f1' at line 1
+CREATE FUNCTION bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+return f1;
+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 'bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned ze' at line 1
+CREATE FUNCTION decimal(f1 decimal) returns decimal
+return f1;
+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 'decimal(f1 decimal) returns decimal
+return f1' at line 1
+CREATE FUNCTION decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+return f1;
+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 'decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+return f1' at line 1
+CREATE FUNCTION decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+return f1;
+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 'decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+return f1' at line 1
+CREATE FUNCTION decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+return f1;
+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 'decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned' at line 1
+CREATE FUNCTION numeric(f1 numeric) returns numeric
+return f1;
+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 'numeric(f1 numeric) returns numeric
+return f1' at line 1
+CREATE FUNCTION numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+return f1;
+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 'numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+return f1' at line 1
+CREATE FUNCTION numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+return f1;
+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 'numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+return f1' at line 1
+CREATE FUNCTION numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+return f1;
+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 'numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned' at line 1
+CREATE FUNCTION real(f1 real) returns real
+return f1;
+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 'real(f1 real) returns real
+return f1' at line 1
+CREATE FUNCTION real unsigned(f1 real unsigned) returns real unsigned
+return f1;
+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 'real unsigned(f1 real unsigned) returns real unsigned
+return f1' at line 1
+CREATE FUNCTION real zerofill(f1 real zerofill) returns real zerofill
+return f1;
+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 'real zerofill(f1 real zerofill) returns real zerofill
+return f1' at line 1
+CREATE FUNCTION real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill
+return f1;
+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 'real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill' at line 1
+CREATE FUNCTION float(f1 float) returns float
+return f1;
+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 'float(f1 float) returns float
+return f1' at line 1
+CREATE FUNCTION float unsigned(f1 float unsigned) returns float unsigned
+return f1;
+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 'float unsigned(f1 float unsigned) returns float unsigned
+return f1' at line 1
+CREATE FUNCTION float zerofill(f1 float zerofill) returns float zerofill
+return f1;
+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 'float zerofill(f1 float zerofill) returns float zerofill
+return f1' at line 1
+CREATE FUNCTION float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerofill
+return f1;
+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 'float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerof' at line 1
+CREATE FUNCTION date(f1 date) returns date
+return f1;
+DROP FUNCTION date;
+CREATE FUNCTION time(f1 time) returns time
+return f1;
+DROP FUNCTION time;
+CREATE FUNCTION datetime(f1 datetime) returns datetime
+return f1;
+DROP FUNCTION datetime;
+CREATE FUNCTION timestamp(f1 timestamp) returns timestamp
+return f1;
+DROP FUNCTION timestamp;
+CREATE FUNCTION year(f1 year) returns year
+return f1;
+DROP FUNCTION year;
+CREATE FUNCTION year(3)(f1 year(3)) returns year(3)
+return f1;
+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 '3)(f1 year(3)) returns year(3)
+return f1' at line 1
+CREATE FUNCTION year(4)(f1 year(4)) returns year(4)
+return f1;
+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 '4)(f1 year(4)) returns year(4)
+return f1' at line 1
+CREATE FUNCTION enum("1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+return f1;
+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 '"1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+retu' at line 1
+CREATE FUNCTION set("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+return f1;
+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("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+return f' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char f1 ) returns char
+return f1;
+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 'char f1 ) returns char
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char binary f1 ) returns char binary
+return f1;
+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 'char binary f1 ) returns char binary
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char ascii f1 ) returns char ascii
+return f1;
+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 'char ascii f1 ) returns char ascii
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char not null f1 ) returns char not null
+return f1;
+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 'char not null f1 ) returns char not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char binary not null f1 ) returns char binary not null
+return f1;
+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 'char binary not null f1 ) returns char binary not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char ascii not null f1 ) returns char ascii not null
+return f1;
+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 'char ascii not null f1 ) returns char ascii not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinytext f1 ) returns tinytext
+return f1;
+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 'tinytext f1 ) returns tinytext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(text f1 ) returns text
+return f1;
+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 'f1 ) returns text
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumtext f1 ) returns mediumtext
+return f1;
+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 'mediumtext f1 ) returns mediumtext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longtext f1 ) returns longtext
+return f1;
+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 'longtext f1 ) returns longtext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinytext not null f1 ) returns tinytext not null
+return f1;
+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 'tinytext not null f1 ) returns tinytext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(text not null f1 ) returns text not null
+return f1;
+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 'not null f1 ) returns text not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumtext not null f1 ) returns mediumtext not null
+return f1;
+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 'mediumtext not null f1 ) returns mediumtext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longtext not null f1 ) returns longtext not null
+return f1;
+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 'longtext not null f1 ) returns longtext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyblob f1 ) returns tinyblob
+return f1;
+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 'tinyblob f1 ) returns tinyblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(blob f1 ) returns blob
+return f1;
+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 'blob f1 ) returns blob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumblob f1 ) returns mediumblob
+return f1;
+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 'mediumblob f1 ) returns mediumblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longblob f1 ) returns longblob
+return f1;
+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 'longblob f1 ) returns longblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyblob not null f1 ) returns tinyblob not null
+return f1;
+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 'tinyblob not null f1 ) returns tinyblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(blob not null f1 ) returns blob not null
+return f1;
+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 'blob not null f1 ) returns blob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumblob not null f1 ) returns mediumblob not null
+return f1;
+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 'mediumblob not null f1 ) returns mediumblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longblob not null f1 ) returns longblob not null
+return f1;
+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 'longblob not null f1 ) returns longblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(binary f1 ) returns binary
+return f1;
+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 'binary f1 ) returns binary
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(binary not null f1 ) returns binary not null
+return f1;
+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 'binary not null f1 ) returns binary not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint f1 ) returns tinyint
+return f1;
+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 'tinyint f1 ) returns tinyint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint unsigned f1 ) returns tinyint unsigned
+return f1;
+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 'tinyint unsigned f1 ) returns tinyint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint zerofill f1 ) returns tinyint zerofill
+return f1;
+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 'tinyint zerofill f1 ) returns tinyint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+return f1;
+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 'tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint f1 ) returns smallint
+return f1;
+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 'smallint f1 ) returns smallint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint unsigned f1 ) returns smallint unsigned
+return f1;
+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 'smallint unsigned f1 ) returns smallint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint zerofill f1 ) returns smallint zerofill
+return f1;
+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 'smallint zerofill f1 ) returns smallint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+return f1;
+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 'smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint f1 ) returns mediumint
+return f1;
+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 'mediumint f1 ) returns mediumint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint unsigned f1 ) returns mediumint unsigned
+return f1;
+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 'mediumint unsigned f1 ) returns mediumint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint zerofill f1 ) returns mediumint zerofill
+return f1;
+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 'mediumint zerofill f1 ) returns mediumint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+return f1;
+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 'mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int f1 ) returns int
+return f1;
+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 'int f1 ) returns int
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int unsigned f1 ) returns int unsigned
+return f1;
+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 'int unsigned f1 ) returns int unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int zerofill f1 ) returns int zerofill
+return f1;
+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 'int zerofill f1 ) returns int zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int unsigned zerofill f1 ) returns int unsigned zerofill
+return f1;
+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 'int unsigned zerofill f1 ) returns int unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint f1 ) returns bigint
+return f1;
+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 'bigint f1 ) returns bigint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint unsigned f1 ) returns bigint unsigned
+return f1;
+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 'bigint unsigned f1 ) returns bigint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint zerofill f1 ) returns bigint zerofill
+return f1;
+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 'bigint zerofill f1 ) returns bigint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+return f1;
+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 'bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal f1 ) returns decimal
+return f1;
+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 'decimal f1 ) returns decimal
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal unsigned f1 ) returns decimal unsigned
+return f1;
+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 'decimal unsigned f1 ) returns decimal unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal zerofill f1 ) returns decimal zerofill
+return f1;
+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 'decimal zerofill f1 ) returns decimal zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+return f1;
+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 'decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric f1 ) returns numeric
+return f1;
+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 'numeric f1 ) returns numeric
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric unsigned f1 ) returns numeric unsigned
+return f1;
+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 'numeric unsigned f1 ) returns numeric unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric zerofill f1 ) returns numeric zerofill
+return f1;
+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 'numeric zerofill f1 ) returns numeric zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+return f1;
+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 'numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real f1 ) returns real
+return f1;
+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 'real f1 ) returns real
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real unsigned f1 ) returns real unsigned
+return f1;
+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 'real unsigned f1 ) returns real unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real zerofill f1 ) returns real zerofill
+return f1;
+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 'real zerofill f1 ) returns real zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real unsigned zerofill f1 ) returns real unsigned zerofill
+return f1;
+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 'real unsigned zerofill f1 ) returns real unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float f1 ) returns float
+return f1;
+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 'float f1 ) returns float
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float unsigned f1 ) returns float unsigned
+return f1;
+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 'float unsigned f1 ) returns float unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float zerofill f1 ) returns float zerofill
+return f1;
+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 'float zerofill f1 ) returns float zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float unsigned zerofill f1 ) returns float unsigned zerofill
+return f1;
+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 'float unsigned zerofill f1 ) returns float unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(date f1 ) returns date
+return f1;
+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 'f1 ) returns date
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(time f1 ) returns time
+return f1;
+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 'f1 ) returns time
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(datetime f1 ) returns datetime
+return f1;
+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 'f1 ) returns datetime
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(timestamp f1 ) returns timestamp
+return f1;
+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 'f1 ) returns timestamp
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year f1 ) returns year
+return f1;
+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 'f1 ) returns year
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year(3) f1 ) returns year(3)
+return f1;
+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 '(3) f1 ) returns year(3)
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year(4) f1 ) returns year(4)
+return f1;
+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 '(4) f1 ) returns year(4)
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(enum("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+return f1;
+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 '("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(set("1set", "2set") f1 ) returns set("1set", "2set")
+return f1;
+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("1set", "2set") f1 ) returns set("1set", "2set")
+return f1' at line 1
+
+Testcase 4.1.16:
+----------------
+Ensure that a reference to a non-existent stored procedure is rejected with an
+appropriate error message
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp16;
+Warnings:
+Note 1305 PROCEDURE sp16 does not exist
+CALL sp16( 'xyz' );
+ERROR 42000: PROCEDURE db_storedproc.sp16 does not exist
+CREATE DATABASE db1;
+USE db1;
+CREATE PROCEDURE sp16()
+BEGIN
+set @var1 = 1;
+SELECT @var1;
+END//
+CALL db_storedproc.sp16();
+ERROR 42000: PROCEDURE db_storedproc.sp16 does not exist
+USE db_storedproc;
+DROP PROCEDURE db1.sp16;
+DROP DATABASE db1;
+
+Testcase 4.1.17:
+----------------
+Ensure that it is possible to drop, create and CALL/execute a procedure and a
+function with the same name, even in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 ()
+BEGIN
+declare x enum( 'db1', 'test' ) default 'test';
+SELECT x;
+END//
+CALL sp1();
+x
+test
+CREATE FUNCTION sp1 (y char) returns char return y;
+SELECT sp1( 'a' );
+sp1( 'a' )
+a
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+USE db1;
+CALL db_storedproc.sp1( );
+x
+test
+SELECT db_storedproc.sp1( 'a' );
+db_storedproc.sp1( 'a' )
+a
+DROP FUNCTION db_storedproc.sp1;
+USE db_storedproc;
+SELECT sp1('a');
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+DROP PROCEDURE sp1;
+CALL sp1();
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+SELECT sp1('a');
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+USE db_storedproc;
+DROP DATABASE db1;
+
+Testcase 4.1.18:
+----------------
+Ensure that it is possible to alter a procedure and
+a function with the same name, in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+set @x=null;
+set @y=null;
+CREATE PROCEDURE sp1()
+BEGIN
+set @x= 1;
+SELECT @x;
+END//
+CREATE FUNCTION sp1 () returns int return 2.2;
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+USE db1;
+alter procedure db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION DEFINER
+sp1 PROCEDURE INVOKER
+alter function db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION INVOKER
+sp1 PROCEDURE INVOKER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+USE db_storedproc;
+alter procedure sp1 sql security definer;
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+alter function sp1 sql security definer;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION DEFINER
+sp1 PROCEDURE DEFINER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+DROP FUNCTION db_storedproc.sp1;
+
+Testcase 4.1.19:
+----------------
+verify altering procedure and function with the same name, does not affect
+properties of a procedure and a function with the same name in the different
+database.
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc_3122;
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+DROP PROCEDURE IF EXISTS db_storedproc_3122.sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS db_storedproc_3122.sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+set @x= 1;
+SELECT @x;
+END//
+CREATE FUNCTION db_storedproc_3122.sp1() returns double return 2.2;
+CALL sp1();
+@x
+1
+SELECT db_storedproc_3122.sp1();
+db_storedproc_3122.sp1()
+2.2
+USE db_storedproc_3122;
+CREATE PROCEDURE sp1 ()
+BEGIN
+set @x= 3;
+SELECT @x;
+END//
+CREATE FUNCTION db_storedproc.sp1() returns double return 4.4;
+CALL sp1();
+@x
+3
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+4.4
+alter procedure db_storedproc_3122.sp1 sql security invoker;
+alter function sp1 sql security invoker;
+SELECT db, name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+db name type security_type
+db_storedproc sp1 FUNCTION DEFINER
+db_storedproc sp1 PROCEDURE DEFINER
+db_storedproc_3122 sp1 FUNCTION INVOKER
+db_storedproc_3122 sp1 PROCEDURE INVOKER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+4.4
+CALL db_storedproc_3122.sp1();
+@x
+3
+SELECT db_storedproc_3122.sp1();
+db_storedproc_3122.sp1()
+2.2
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.20:
+----------------
+Ensure that it is possible to alter the comment of a procedure
+and a function with the same name, even in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+CREATE PROCEDURE sp1 () set @x= 1;
+CREATE FUNCTION sp1 () returns int return 2;
+DROP DATABASE IF EXISTS db_storedproc_3122;
+Warnings:
+Note 1008 Can't drop database 'db_storedproc_3122'; database doesn't exist
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc_3122;
+CREATE PROCEDURE sp1 () set @x= 3;
+CREATE FUNCTION sp1 () returns int return 4;
+alter procedure sp1 sql security invoker comment 'this is a procedure';
+alter function sp1 sql security invoker comment 'this is a function';
+alter procedure sp1 sql security definer;
+alter function sp1 sql security definer;
+show CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+sp1 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
+ COMMENT 'this is a procedure'
+set @x= 3
+show CREATE FUNCTION sp1;
+Function sql_mode Create Function
+sp1 CREATE DEFINER=`root`@`localhost` FUNCTION `sp1`() RETURNS int(11)
+ COMMENT 'this is a function'
+return 4
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.21:
+----------------
+Ensure that it is not possible to create two procedures with same name
+in same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 () set @x=1;
+CREATE PROCEDURE sp1 () set @x=2;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL sp1();
+SELECT @x;
+@x
+1
+USE db1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=3;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL db_storedproc.sp1();
+SELECT @x;
+@x
+1
+DROP PROCEDURE IF EXISTS db_storedproc.sp1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=2;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL db_storedproc.sp1();
+SELECT @x;
+@x
+1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.22:
+----------------
+Ensure that it is not possible to create two functions with same name in the
+same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1 () returns int return 1;
+CREATE FUNCTION fn1 () returns int return 2;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT fn1();
+fn1()
+1
+USE db1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 3;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT db_storedproc.fn1();
+db_storedproc.fn1()
+1
+DROP FUNCTION IF EXISTS db_storedproc.fn1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 2;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT db_storedproc.fn1();
+db_storedproc.fn1()
+1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP FUNCTION db_storedproc.fn1;
+
+Testcase 4.1.23:
+----------------
+Ensure that it is possible to create two or more procedures with the same name,
+providing each resides in different databases
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 () set @x= 1;
+DROP DATABASE IF EXISTS test3124;
+Warnings:
+Note 1008 Can't drop database 'test3124'; database doesn't exist
+CREATE DATABASE test3124;
+USE test3124;
+CREATE PROCEDURE sp1 () set @y= 2;
+CALL sp1();
+SELECT @x, @y;
+@x @y
+NULL 2
+USE db_storedproc;
+CALL sp1();
+SELECT @x, @y;
+@x @y
+1 2
+USE db_storedproc;
+DROP DATABASE test3124;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.24:
+----------------
+Ensure that it is possible to create two or more functions with the same name,
+providing each resides in different databases.
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP FUNCTION IF EXISTS f1;
+Warnings:
+Note 1305 FUNCTION f1 does not exist
+CREATE FUNCTION f1 () returns int return 1;
+DROP DATABASE IF EXISTS test3125;
+Warnings:
+Note 1008 Can't drop database 'test3125'; database doesn't exist
+CREATE DATABASE test3125;
+USE test3125;
+CREATE FUNCTION f1 () returns int return 2;
+SELECT f1();
+f1()
+2
+USE db_storedproc;
+SELECT f1();
+f1()
+1
+USE db_storedproc;
+DROP DATABASE test3125;
+DROP FUNCTION db_storedproc.f1;
+
+Testcase 4.1.25:
+----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected. (invalid func name)
+--------------------------------------------------------------------------------
+CREATE FUNCTION !_fn1( f1 char(20) ) returns int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 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 '!_fn1( f1 char(20) ) returns int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 1;' at line 1
+CREATE FUNCTION fn1( f1 char(20) ) return int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 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 'return int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 1;
+END' at line 1
+CREATE FUNCTION fn1() returns int
+return 'a';
+CREATE FUNCTION procedure() returns int
+return 1;
+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 'procedure() returns int
+return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int lang sql return 1;
+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 'sql return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int deterministic( return 1);
+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 'return 1)' at line 1
+CREATE FUNCTION fn1(a char) returns int non deterministic return 1;
+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 'deterministic return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int not deterministic comment 'abc' language sql sql security refiner return 1;
+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 'refiner return 1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+
+Testcase 4.1.1:
+---------------
+Ensure that all clauses that should be supported are supported.
+CREATE PROCEDURE
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @count = 0;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1(cnt int(20))
+BEGIN
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+END//
+CALL sp1( 10 );
+SELECT @count;
+@count
+10
+DROP PROCEDURE sp1;
+
+Testcase 4.2.2:
+BEGINend
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+END//
+CALL sp1( 10 );
+@count
+10
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+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 'SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+END' at line 2
+CALL sp1( 10 );
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+END
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+BEGIN//
+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 'END
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+BEGIN' at line 2
+CALL sp1( 10 );
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+SELECT count(*) into cnt from t2;
+BEGIN
+BEGIN END;
+BEGIN
+END;
+set @count = cnt;
+SELECT @count;
+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 '' at line 10
+
+Testcase 4.2.4:
+---------------
+Ensure that every BEGIN statement is coupled with a terminating END statement.
+(BEGIN with no END)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END//
+
+Testcase ....:
+--------------
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+add:BEGIN
+SELECT @x;
+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 'add:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+all:BEGIN
+SELECT @x;
+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 'all:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+alter:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+analyze:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+and:BEGIN
+SELECT @x;
+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 'and:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+as:BEGIN
+SELECT @x;
+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 'as:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+asc:BEGIN
+SELECT @x;
+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 'asc:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+asensitive:BEGIN
+SELECT @x;
+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 'asensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+before:BEGIN
+SELECT @x;
+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 'before:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+between:BEGIN
+SELECT @x;
+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 'between:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+bigint:BEGIN
+SELECT @x;
+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 'bigint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+binary:BEGIN
+SELECT @x;
+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 'binary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+blob:BEGIN
+SELECT @x;
+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 'blob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+both:BEGIN
+SELECT @x;
+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 'both:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+by:BEGIN
+SELECT @x;
+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 'by:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+CALL:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cascade:BEGIN
+SELECT @x;
+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 'cascade:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+case:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+change:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+char:BEGIN
+SELECT @x;
+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 'char:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+character:BEGIN
+SELECT @x;
+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 'character:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+check:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+collate:BEGIN
+SELECT @x;
+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 'collate:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+column:BEGIN
+SELECT @x;
+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 'column:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+columns:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+condition:BEGIN
+SELECT @x;
+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 'condition:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+connection:BEGIN
+SELECT @x;
+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 'connection:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+constraint:BEGIN
+SELECT @x;
+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 'constraint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+continue:BEGIN
+SELECT @x;
+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 'continue:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+convert:BEGIN
+SELECT @x;
+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 'convert:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+create:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cross:BEGIN
+SELECT @x;
+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 'cross:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_date:BEGIN
+SELECT @x;
+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 'current_date:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_time:BEGIN
+SELECT @x;
+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 'current_time:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_timestamp:BEGIN
+SELECT @x;
+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 'current_timestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_user:BEGIN
+SELECT @x;
+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 'current_user:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cursor:BEGIN
+SELECT @x;
+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 'cursor:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+database:BEGIN
+SELECT @x;
+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 'database:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+databases:BEGIN
+SELECT @x;
+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 'databases:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_hour:BEGIN
+SELECT @x;
+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 'day_hour:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_microsecond:BEGIN
+SELECT @x;
+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 'day_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_minute:BEGIN
+SELECT @x;
+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 'day_minute:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_second:BEGIN
+SELECT @x;
+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 'day_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+dec:BEGIN
+SELECT @x;
+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 'dec:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+decimal:BEGIN
+SELECT @x;
+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 'decimal:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+declare:BEGIN
+SELECT @x;
+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 'declare:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+default:BEGIN
+SELECT @x;
+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 'default:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+delayed:BEGIN
+SELECT @x;
+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 'delayed:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+delete:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+desc:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+describe:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+deterministic:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+distinct:BEGIN
+SELECT @x;
+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 'distinct:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+distinctrow:BEGIN
+SELECT @x;
+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 'distinctrow:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+div:BEGIN
+SELECT @x;
+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 'div:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+double:BEGIN
+SELECT @x;
+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 'double:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+drop:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+dual:BEGIN
+SELECT @x;
+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 'dual:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+each:BEGIN
+SELECT @x;
+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 'each:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+else:BEGIN
+SELECT @x;
+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 'else:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+elseif:BEGIN
+SELECT @x;
+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 'elseif:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+enclosed:BEGIN
+SELECT @x;
+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 'enclosed:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+escaped:BEGIN
+SELECT @x;
+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 'escaped:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+exists:BEGIN
+SELECT @x;
+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 'exists:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+exit:BEGIN
+SELECT @x;
+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 'exit:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+explain:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+false:BEGIN
+SELECT @x;
+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 'false:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fetch:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fields:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+float:BEGIN
+SELECT @x;
+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 'float:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+for:BEGIN
+SELECT @x;
+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 'for:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+force:BEGIN
+SELECT @x;
+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 'force:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+foreign:BEGIN
+SELECT @x;
+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 'foreign:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+found:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+from:BEGIN
+SELECT @x;
+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 'from:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fulltext:BEGIN
+SELECT @x;
+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 'fulltext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+goto:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+grant:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+group:BEGIN
+SELECT @x;
+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 'group:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+having:BEGIN
+SELECT @x;
+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 'having:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+high_priority:BEGIN
+SELECT @x;
+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 'high_priority:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_microsecond:BEGIN
+SELECT @x;
+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 'hour_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_minute:BEGIN
+SELECT @x;
+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 'hour_minute:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_second:BEGIN
+SELECT @x;
+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 'hour_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+if:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+ignore:BEGIN
+SELECT @x;
+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 'ignore:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+in:BEGIN
+SELECT @x;
+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 'in:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+index:BEGIN
+SELECT @x;
+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 'index:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+infile:BEGIN
+SELECT @x;
+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 'infile:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+inner:BEGIN
+SELECT @x;
+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 'inner:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+inout:BEGIN
+SELECT @x;
+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 'inout:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+insensitive:BEGIN
+SELECT @x;
+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 'insensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+insert:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+int:BEGIN
+SELECT @x;
+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 'int:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+integer:BEGIN
+SELECT @x;
+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 'integer:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+interval:BEGIN
+SELECT @x;
+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 'interval:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+into:BEGIN
+SELECT @x;
+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 'into:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+is:BEGIN
+SELECT @x;
+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 'is:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+iterate:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+join:BEGIN
+SELECT @x;
+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 'join:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+key:BEGIN
+SELECT @x;
+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 'key:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+keys:BEGIN
+SELECT @x;
+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 'keys:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+kill:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+leading:BEGIN
+SELECT @x;
+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 'leading:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+leave:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+left:BEGIN
+SELECT @x;
+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 'left:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+like:BEGIN
+SELECT @x;
+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 'like:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+limit:BEGIN
+SELECT @x;
+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 'limit:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+lines:BEGIN
+SELECT @x;
+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 'lines:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+load:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+localtime:BEGIN
+SELECT @x;
+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 'localtime:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+localtimestamp:BEGIN
+SELECT @x;
+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 'localtimestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+lock:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+long:BEGIN
+SELECT @x;
+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 'long:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+longblob:BEGIN
+SELECT @x;
+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 'longblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+longtext:BEGIN
+SELECT @x;
+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 'longtext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+loop:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+low_priority:BEGIN
+SELECT @x;
+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 'low_priority:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+match:BEGIN
+SELECT @x;
+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 'match:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumblob:BEGIN
+SELECT @x;
+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 'mediumblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumint:BEGIN
+SELECT @x;
+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 'mediumint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumtext:BEGIN
+SELECT @x;
+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 'mediumtext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+middleint:BEGIN
+SELECT @x;
+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 'middleint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+minute_microsecond:BEGIN
+SELECT @x;
+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 'minute_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+minute_second:BEGIN
+SELECT @x;
+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 'minute_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mod:BEGIN
+SELECT @x;
+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 'mod:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+modifies:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+natural:BEGIN
+SELECT @x;
+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 'natural:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+not:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+no_write_to_binlog:BEGIN
+SELECT @x;
+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 'no_write_to_binlog:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+null:BEGIN
+SELECT @x;
+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 'null:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+numeric:BEGIN
+SELECT @x;
+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 'numeric:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+on:BEGIN
+SELECT @x;
+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 'on:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+optimize:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+option:BEGIN
+SELECT @x;
+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 'option:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+optionally:BEGIN
+SELECT @x;
+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 'optionally:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+or:BEGIN
+SELECT @x;
+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 'or:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+order:BEGIN
+SELECT @x;
+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 'order:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+out:BEGIN
+SELECT @x;
+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 'out:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+outer:BEGIN
+SELECT @x;
+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 'outer:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+outfile:BEGIN
+SELECT @x;
+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 'outfile:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+precision:BEGIN
+SELECT @x;
+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 'precision:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+primary:BEGIN
+SELECT @x;
+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 'primary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+privileges:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+procedure:BEGIN
+SELECT @x;
+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 'procedure:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+purge:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+read:BEGIN
+SELECT @x;
+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 'read:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+reads:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+real:BEGIN
+SELECT @x;
+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 'real:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+references:BEGIN
+SELECT @x;
+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 'references:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+regexp:BEGIN
+SELECT @x;
+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 'regexp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+rename:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+repeat:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+replace:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+require:BEGIN
+SELECT @x;
+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 'require:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+restrict:BEGIN
+SELECT @x;
+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 'restrict:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+return:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+revoke:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+right:BEGIN
+SELECT @x;
+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 'right:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+rlike:BEGIN
+SELECT @x;
+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 'rlike:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+schema:BEGIN
+SELECT @x;
+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 'schema:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+schemas:BEGIN
+SELECT @x;
+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 'schemas:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+second_microsecond:BEGIN
+SELECT @x;
+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 'second_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+select:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sensitive:BEGIN
+SELECT @x;
+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 'sensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+separator:BEGIN
+SELECT @x;
+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 'separator:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+set:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+show:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+smallint:BEGIN
+SELECT @x;
+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 'smallint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+soname:BEGIN
+SELECT @x;
+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 'soname:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+spatial:BEGIN
+SELECT @x;
+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 'spatial:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+specific:BEGIN
+SELECT @x;
+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 'specific:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlexception:BEGIN
+SELECT @x;
+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 'sqlexception:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlstate:BEGIN
+SELECT @x;
+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 'sqlstate:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlwarning:BEGIN
+SELECT @x;
+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 'sqlwarning:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_big_result:BEGIN
+SELECT @x;
+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 'sql_big_result:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_calc_found_rows:BEGIN
+SELECT @x;
+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 'sql_calc_found_rows:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_small_result:BEGIN
+SELECT @x;
+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 'sql_small_result:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+ssl:BEGIN
+SELECT @x;
+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 'ssl:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+starting:BEGIN
+SELECT @x;
+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 'starting:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+straight_join:BEGIN
+SELECT @x;
+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 'straight_join:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+table:BEGIN
+SELECT @x;
+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 'table:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tables:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+terminated:BEGIN
+SELECT @x;
+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 'terminated:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+then:BEGIN
+SELECT @x;
+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 'then:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinyblob:BEGIN
+SELECT @x;
+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 'tinyblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinyint:BEGIN
+SELECT @x;
+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 'tinyint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinytext:BEGIN
+SELECT @x;
+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 'tinytext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+to:BEGIN
+SELECT @x;
+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 'to:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+trailing:BEGIN
+SELECT @x;
+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 'trailing:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+trigger:BEGIN
+SELECT @x;
+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 'trigger:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+true:BEGIN
+SELECT @x;
+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 'true:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+undo:BEGIN
+SELECT @x;
+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 'undo:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+union:BEGIN
+SELECT @x;
+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 'union:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unique:BEGIN
+SELECT @x;
+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 'unique:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unlock:BEGIN
+SELECT @x;
+END//
+ERROR 0A000: UNLOCK is not allowed in stored procedures
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unsigned:BEGIN
+SELECT @x;
+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 'unsigned:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+update:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+usage:BEGIN
+SELECT @x;
+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 'usage:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+use:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+using:BEGIN
+SELECT @x;
+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 'using:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_date:BEGIN
+SELECT @x;
+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 'utc_date:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_time:BEGIN
+SELECT @x;
+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 'utc_time:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_timestamp:BEGIN
+SELECT @x;
+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 'utc_timestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+values:BEGIN
+SELECT @x;
+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 'values:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varbinary:BEGIN
+SELECT @x;
+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 'varbinary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varchar:BEGIN
+SELECT @x;
+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 'varchar:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varcharacter:BEGIN
+SELECT @x;
+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 'varcharacter:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varying:BEGIN
+SELECT @x;
+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 'varying:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+when:BEGIN
+SELECT @x;
+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 'when:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+where:BEGIN
+SELECT @x;
+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 'where:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+while:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+with:BEGIN
+SELECT @x;
+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 'with:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+write:BEGIN
+SELECT @x;
+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 'write:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+xor:BEGIN
+SELECT @x;
+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 'xor:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+year_month:BEGIN
+SELECT @x;
+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 'year_month:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+zerofill:BEGIN
+SELECT @x;
+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 'zerofill:BEGIN
+SELECT @x;
+END' at line 2
+
+Testcase 4.2.6:
+---------------
+Ensure that the labels for multiple BEGIN an END work properly
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char;
+declare y char;
+set x = '1';
+set y = '2';
+label1: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END label1;
+set @v1 = x;
+set @v2 = y;
+SELECT @v1, @v2;
+END begin_label//
+CALL sp1();
+@v1 @v2
+1 2
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.7:
+---------------
+Ensure that the labels enclosing each BEGIN/END compound statement must match.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin1_label: BEGIN
+declare x char;
+declare y char;
+SELECT lf1, f1 into x, y from t2 limit 1;
+begin2_label: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin2_changed;
+END begin1_changed//
+ERROR 42000: End-label begin2_changed without match
+
+Testcase 4.2.8:
+---------------
+Ensure that it is possible to put a beginning label at the start of a
+BEGIN/END compound statement without also requiring an ending label
+at the END of the same statement.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.9:
+---------------
+Ensure that it is not possible to put an ending label at the END of
+a BEGIN/END compound statement without also requiring a matching
+beginning label at the start of the same statement
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+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 'begin_label' at line 6
+
+Testcase 4.2.10:
+----------------
+Ensure that every beginning label must END with a colon(:)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+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 'BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+E' at line 2
+
+Testcase 4.2.11:
+----------------
+Ensure that every beginning label with the same scope must be unique. (same label names)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_samelabel;
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_samelabel;
+END begin_samelabel//
+ERROR 42000: Redefining label begin_samelabel
+
+Testcase 4.2.12:
+----------------
+Ensure that the variables, cursors, conditions, and handlers declared for
+a stored procedure (with the declare statement) may only be properly defined
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: DECIMAL(255,255) is not rejected
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x char default 'a';
+declare y integer default 1;
+declare z float default 1.1;
+declare a enum("value1", "value2") default 'value1';
+declare b decimal(255, 255) default 1.2e+12;
+declare c mediumtext default 'mediumtext';
+declare d datetime default '2005-02-02 12:12:12';
+declare e char default 'b';
+declare cur1 cursor for SELECT f1 from db_storedproc.t2;
+declare continue handler for sqlstate '02000' set @x2 = 1;
+open cur1;
+fetch cur1 into e;
+SELECT x, y, z, a, b, c, d, e;
+close cur1;
+END//
+ERROR 42000: Too big scale 255 specified for column ''. Maximum is 30.
+CALL sp6();
+ERROR 42000: PROCEDURE db_storedproc.sp6 does not exist
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 char default '0';
+SELECT x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567;
+END//
+CALL sp6();
+x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
+0
+DROP PROCEDURE sp6;
+
+Testcase 4.2.13:
+----------------
+Ensure that the variables declared for a stored procedure (with the declare
+statement) may only be defined in the correct order.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x default '0' char;
+SELECT x;
+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 'default '0' char;
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x char, integer default '0';
+SELECT x;
+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 'char, integer default '0';
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x1, x2 char, integer default '0', 1;
+SELECT x;
+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 'char, integer default '0', 1;
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 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 'char x;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x, y1 integer default 0;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 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 'char x, y1 integer default 0;
+declare char y;
+SELECT f1, f2 into x, y from t2 li' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x default 'a' char;
+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 'default 'a' char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition notable for sqlstate '42s22';
+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 'condition notable for sqlstate '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for notable sqlstate '42s22';
+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 'condition for notable sqlstate '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for sqlstate notable '42s22';
+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 'condition for sqlstate notable '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for sqlstate '42s22' notable;
+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 'condition for sqlstate '42s22' notable;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor cur1 for SELECT f1 from db_storedproc.t2;
+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 'cursor cur1 for SELECT f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor for cur1 SELECT f1 from db_storedproc.t2;
+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 'cursor for cur1 SELECT f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor for SELECT cur1 f1 from db_storedproc.t2;
+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 'cursor for SELECT cur1 f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler continue for sqlstate '02000' set @x2 = 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 'continue for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler exit for sqlstate '02000' set @x2 = 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 'exit for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler undo for sqlstate '02000' set @x2 = 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 'undo for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x;
+SELECT f1 into x from tb1 limit 9998, 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 'char x;
+SELECT f1 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char binary x;
+SELECT f2 into x from tb1 limit 9998, 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 'char binary x;
+SELECT f2 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char ascii x;
+SELECT f3 into x from tb1 limit 9998, 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 'char ascii x;
+SELECT f3 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext x;
+SELECT f4 into x from tb1 limit 9998, 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 'tinytext x;
+SELECT f4 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x;
+SELECT f5 text into x from tb1 limit 9998, 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 ';
+SELECT f5 text into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext x;
+SELECT f6 into x from tb1 limit 9998, 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 'mediumtext x;
+SELECT f6 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext x;
+SELECT f7 into x from tb1 limit 9998, 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 'longtext x;
+SELECT f7 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob x;
+SELECT f8 into x from tb1 limit 9998, 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 'tinyblob x;
+SELECT f8 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob x;
+SELECT f9 into x from tb1 limit 9998, 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 'blob x;
+SELECT f9 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob x;
+SELECT f10 into x from tb1 limit 9998, 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 'mediumblob x;
+SELECT f10 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob x;
+SELECT f11 into x from tb1 limit 9998, 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 'longblob x;
+SELECT f11 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary x;
+SELECT f12 into x from tb1 limit 9998, 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 'binary x;
+SELECT f12 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint x;
+SELECT f13 into x from tb1 limit 9998, 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 'tinyint x;
+SELECT f13 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint unsigned x;
+SELECT f14 into x from tb1 limit 9998, 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 'tinyint unsigned x;
+SELECT f14 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint zerofill x;
+SELECT f15 into x from tb1 limit 9998, 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 'tinyint zerofill x;
+SELECT f15 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint unsigned zerofill x;
+SELECT f16 into x from tb1 limit 9998, 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 'tinyint unsigned zerofill x;
+SELECT f16 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint x;
+SELECT f17 into x from tb1 limit 9998, 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 'smallint x;
+SELECT f17 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint unsigned x;
+SELECT f18 into x from tb1 limit 9998, 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 'smallint unsigned x;
+SELECT f18 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint zerofill x;
+SELECT f19 into x from tb1 limit 9998, 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 'smallint zerofill x;
+SELECT f19 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint unsigned zerofill x;
+SELECT f20 into x from tb1 limit 9998, 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 'smallint unsigned zerofill x;
+SELECT f20 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint x;
+SELECT f21 into x from tb1 limit 9998, 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 'mediumint x;
+SELECT f21 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint unsigned x;
+SELECT f22 into x from tb1 limit 9998, 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 'mediumint unsigned x;
+SELECT f22 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint zerofill x;
+SELECT f23 into x from tb1 limit 9998, 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 'mediumint zerofill x;
+SELECT f23 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint unsigned zerofill x;
+SELECT f24 into x from tb1 limit 9998, 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 'mediumint unsigned zerofill x;
+SELECT f24 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int x;
+SELECT f25 into x from tb1 limit 9998, 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 'int x;
+SELECT f25 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int unsigned x;
+SELECT f26 into x from tb1 limit 9998, 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 'int unsigned x;
+SELECT f26 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int zerofill x;
+SELECT f27 into x from tb1 limit 9998, 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 'int zerofill x;
+SELECT f27 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int unsigned zerofill x;
+SELECT f28 into x from tb1 limit 9998, 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 'int unsigned zerofill x;
+SELECT f28 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint x;
+SELECT f29 into x from tb1 limit 9998, 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 'bigint x;
+SELECT f29 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint unsigned x;
+elect f30 into x from tb1 limit 9998, 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 'bigint unsigned x;
+elect f30 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint zerofill x;
+SELECT f31 into x from tb1 limit 9998, 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 'bigint zerofill x;
+SELECT f31 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint unsigned zerofill x;
+SELECT f32 into x from tb1 limit 9998, 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 'bigint unsigned zerofill x;
+SELECT f32 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal x;
+SELECT f33 into x from tb1 limit 9998, 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 'decimal x;
+SELECT f33 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal unsigned x;
+SELECT f34 into x from tb1 limit 9998, 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 'decimal unsigned x;
+SELECT f34 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal zerofill x;
+SELECT f35 into x from tb1 limit 9998, 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 'decimal zerofill x;
+SELECT f35 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal unsigned zerofill not null x;
+SELECT f36 into x from tb1 limit 9998, 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 'decimal unsigned zerofill not null x;
+SELECT f36 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) not null x;
+SELECT f37 into x from tb1 limit 9998, 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 'decimal (0) not null x;
+SELECT f37 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) not null x;
+SELECT f38 into x from tb1 limit 9998, 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 'decimal (64) not null x;
+SELECT f38 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) unsigned not null x;
+SELECT f39 into x from tb1 limit 9998, 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 'decimal (0) unsigned not null x;
+SELECT f39 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) unsigned not null x;
+SELECT f40 into x from tb1 limit 9998, 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 'decimal (64) unsigned not null x;
+SELECT f40 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) zerofill not null x;
+SELECT f41 into x from tb1 limit 9998, 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 'decimal (0) zerofill not null x;
+SELECT f41 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) zerofill not null x;
+SELECT f42 into x from tb1 limit 9998, 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 'decimal (64) zerofill not null x;
+SELECT f42 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) unsigned zerofill not null x;
+SELECT f43 into x from tb1 limit 9998, 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 'decimal (0) unsigned zerofill not null x;
+SELECT f43 into x from tb1 limit 9998' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) unsigned zerofill not null x;
+SELECT f44 into x from tb1 limit 9998, 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 'decimal (64) unsigned zerofill not null x;
+SELECT f44 into x from tb1 limit 999' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) not null x;
+SELECT f45 into x from tb1 limit 9998, 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 'decimal (00) not null x;
+SELECT f45 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) not null x;
+SELECT f46 into x from tb1 limit 9998, 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 'decimal (63, 30) not null x;
+SELECT f46 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) unsigned not null x;
+SELECT f47 into x from tb1 limit 9998, 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 'decimal (00) unsigned not null x;
+SELECT f47 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) unsigned not null x;
+SELECT f48 into x from tb1 limit 9998, 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 'decimal (63, 30) unsigned not null x;
+SELECT f48 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) zerofill not null x;
+SELECT f49 into x from tb1 limit 9998, 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 'decimal (00) zerofill not null x;
+SELECT f49 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) zerofill not null x;
+SELECT f50 into x from tb1 limit 9998, 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 'decimal (63, 30) zerofill not null x;
+SELECT f50 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) unsigned zerofill not null x;
+SELECT f51 into x from tb1 limit 9998, 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 'decimal (00) unsigned zerofill not null x;
+SELECT f51 into x from tb1 limit 999' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) unsigned zerofill not null x;
+SELECT f52 into x from tb1 limit 9998, 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 'decimal (63, 30) unsigned zerofill not null x;
+SELECT f52 into x from tb1 limit' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric not null x;
+SELECT f53 into x from tb1 limit 9998, 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 'numeric not null x;
+SELECT f53 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric unsigned not null x;
+SELECT f54 into x from tb1 limit 9998, 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 'numeric unsigned not null x;
+SELECT f54 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric zerofill not null x;
+SELECT f55 into x from tb1 limit 9998, 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 'numeric zerofill not null x;
+SELECT f55 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric unsigned zerofill not null x;
+SELECT f56 into x from tb1 limit 9998, 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 'numeric unsigned zerofill not null x;
+SELECT f56 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) not null x;
+SELECT f57 into x from tb1 limit 9998, 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 'numeric (0) not null x;
+SELECT f57 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) not nul x;
+SELECT f58 into x from tb1 limit 9998, 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 'numeric (64) not nul x;
+SELECT f58 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) unsigned x;
+SELECT f59 into x from tb2 limit 9998, 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 'numeric (0) unsigned x;
+SELECT f59 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) unsigned x;
+SELECT f60 into x from tb2 limit 9998, 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 'numeric (64) unsigned x;
+SELECT f60 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) zerofill x;
+SELECT f61 into x from tb2 limit 9998, 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 'numeric (0) zerofill x;
+SELECT f61 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) zerofill x;
+SELECT f62 into x from tb2 limit 9998, 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 'numeric (64) zerofill x;
+SELECT f62 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) unsigned zerofill x;
+SELECT f63 into x from tb2 limit 9998, 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 'numeric (0) unsigned zerofill x;
+SELECT f63 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) unsigned zerofill x;
+SELECT f64 into x from tb2 limit 9998, 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 'numeric (64) unsigned zerofill x;
+SELECT f64 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) x;
+SELECT f65 into x from tb2 limit 9998, 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 'numeric (00) x;
+SELECT f65 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) x;
+SELECT f66 into x from tb2 limit 9998, 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 'numeric (63, 30) x;
+SELECT f66 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) unsigned x;
+SELECT f67 into x from tb2 limit 9998, 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 'numeric (00) unsigned x;
+SELECT f67 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) unsigned x;
+SELECT f68 into x from tb2 limit 9998, 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 'numeric (63, 30) unsigned x;
+SELECT f68 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) zerofill x;
+SELECT f69 into x from tb2 limit 9998, 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 'numeric (00) zerofill x;
+SELECT f69 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) zerofill x;
+SELECT f70 into x from tb2 limit 9998, 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 'numeric (63, 30) zerofill x;
+SELECT f70 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) unsigned zerofill x;
+SELECT f71 into x from tb2 limit 9998, 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 'numeric (00) unsigned zerofill x;
+SELECT f71 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) unsigned zerofill x;
+SELECT f72 into x from tb2 limit 9998, 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 'numeric (63, 30) unsigned zerofill x;
+SELECT f72 into x from tb2 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real x;
+SELECT f73 into x from tb2 limit 9998, 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 'real x;
+SELECT f73 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real unsigned x;
+SELECT f74 into x from tb2 limit 9998, 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 'real unsigned x;
+SELECT f74 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real zerofill x;
+SELECT f75 into x from tb2 limit 9998, 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 'real zerofill x;
+SELECT f75 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real unsigned zerofill x;
+SELECT f76 into x from tb2 limit 9998, 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 'real unsigned zerofill x;
+SELECT f76 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double x;
+SELECT f77 into x from tb2 limit 9998, 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 'double x;
+SELECT f77 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double unsigned x;
+SELECT f78 into x from tb2 limit 9998, 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 'double unsigned x;
+SELECT f78 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double zerofill x;
+SELECT f79 into x from tb2 limit 9998, 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 'double zerofill x;
+SELECT f79 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double unsigned zerofill x;
+SELECT f80 into x from tb2 limit 9998, 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 'double unsigned zerofill x;
+SELECT f80 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float not null x;
+SELECT f81 into x from tb2 limit 9998, 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 'float not null x;
+SELECT f81 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float unsigned not null x;
+SELECT f82 into x from tb2 limit 9998, 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 'float unsigned not null x;
+SELECT f82 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float zerofill not null x;
+SELECT f83 into x from tb2 limit 9998, 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 'float zerofill not null x;
+SELECT f83 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float unsigned zerofill not null x;
+SELECT f84 into x from tb2 limit 9998, 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 'float unsigned zerofill not null x;
+SELECT f84 into x from tb2 limit 9998, 1;
+E' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) not null x;
+SELECT f85 into x from tb2 limit 9998, 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 'float(0) not null x;
+SELECT f85 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) not null x;
+SELECT f86 into x from tb2 limit 9998, 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 'float(23) not null x;
+SELECT f86 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) unsigned not null x;
+SELECT f87 into x from tb2 limit 9998, 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 'float(0) unsigned not null x;
+SELECT f87 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) unsigned not null x;
+SELECT f88 into x from tb2 limit 9998, 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 'float(23) unsigned not null x;
+SELECT f88 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) zerofill not null x;
+SELECT f89 into x from tb2 limit 9998, 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 'float(0) zerofill not null x;
+SELECT f89 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) zerofill not null x;
+SELECT f90 into x from tb2 limit 9998, 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 'float(23) zerofill not null x;
+SELECT f90 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) unsigned zerofill not null x;
+SELECT f91 into x from tb2 limit 9998, 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 'float(0) unsigned zerofill not null x;
+SELECT f91 into x from tb2 limit 9998, 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) unsigned zerofill not null x;
+SELECT f92 into x from tb2 limit 9998, 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 'float(23) unsigned zerofill not null x;
+SELECT f92 into x from tb2 limit 9998, ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) not null x;
+SELECT f93 into x from tb2 limit 9998, 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 'float(24) not null x;
+SELECT f93 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) not null x;
+SELECT f94 into x from tb2 limit 9998, 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 'float(53) not null x;
+SELECT f94 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) unsigned not null x;
+SELECT f95 into x from tb2 limit 9998, 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 'float(24) unsigned not null x;
+SELECT f95 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) unsigned not null x;
+SELECT f96 into x from tb2 limit 9998, 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 'float(53) unsigned not null x;
+SELECT f96 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) zerofill not null x;
+SELECT f97 into x from tb2 limit 9998, 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 'float(24) zerofill not null x;
+SELECT f97 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) zerofill not null x;
+SELECT f98 into x from tb2 limit 9998, 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 'float(53) zerofill not null x;
+SELECT f98 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) unsigned zerofill not null x;
+SELECT f99 into x from tb2 limit 9998, 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 'float(24) unsigned zerofill not null x;
+SELECT f99 into x from tb2 limit 9998, ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) unsigned zerofill not null x;
+SELECT f100 into x from tb2 limit 9998, 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 'float(53) unsigned zerofill not null x;
+SELECT f100 into x from tb2 limit 9998,' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare date not null x;
+SELECT f101 into x from tb2 limit 9998, 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 'not null x;
+SELECT f101 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare time not null x;
+SELECT f102 into x from tb2 limit 9998, 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 'not null x;
+SELECT f102 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare datetime not null x;
+SELECT f103 into x from tb2 limit 9998, 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 'not null x;
+SELECT f103 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare timestamp not null x;
+SELECT f104 into x from tb2 limit 9998, 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 'not null x;
+SELECT f104 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year not null x;
+SELECT f105 into x from tb2 limit 9998, 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 'not null x;
+SELECT f105 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year(3) not null x;
+SELECT f106 into x from tb2 limit 9998, 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 '(3) not null x;
+SELECT f106 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year(4) not null x;
+SELECT f107 into x from tb2 limit 9998, 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 '(4) not null x;
+SELECT f107 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enum("1enum", "2enum") not null x;
+SELECT f108 into x from tb2 limit 9998, 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 '("1enum", "2enum") not null x;
+SELECT f108 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set("1set", "2set") not nul x;
+SELECT f109 into x from tb2 limit 9998, 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 'set("1set", "2set") not nul x;
+SELECT f109 into x from tb2 limit 9998, 1;
+END' at line 3
+
+Testcase 4.2.14:
+----------------
+Ensure that the handlers declared for a stored procedure (with the declare
+statement) may only be defined in the correct order
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor1 cursor for SELECT f1 from tb1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor1 cursor for SELECT f1 from tb1;
+declare sqlcondition condition for sqlstate '02000';
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare sqlcondition condition for sqlstate '02000';
+declare continue handler for sqlcondition set @x=1;
+declare cursor1 cursor for SELECT f1 from tb1;
+END//
+ERROR 42000: Cursor declaration after handler declaration
+
+Testcase 4.2.15:
+----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z char default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z char ascii default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinytext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z text default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumtext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z longtext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z blob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z longblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z binary default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint default -126;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-126 -126 -126
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint unsigned default 253;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+253 253 253
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+000 000 000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+001 001 001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint default -32768;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-32768 -32768 -32768
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint unsigned default 65535;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+65535 65535 65535
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000 00000 00000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00001 00001 00001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint default -8388608;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-8388608 -8388608 -8388608
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint unsigned default 16777215;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+16777215 16777215 16777215
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000 00000000 00000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001 00000001 00000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int default -2147483648;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-2147483648 -2147483648 -2147483648
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int unsigned default 4294967295;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+4294967295 4294967295 4294967295
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000001 0000000001 0000000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint default -9223372036854775808;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-9223372036854775808 -9223372036854775808 -9223372036854775808
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint unsigned default 18446744073709551615;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+18446744073709551615 18446744073709551615 18446744073709551615
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000000000000000 00000000000000000000 00000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000000000000001 00000000000000000001 00000000000000000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal default -34028234660123456789012345678901234567;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-9999999999 -9999999999 -9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal zerofill default -34028234660123456789012345678901234567;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.175494351e-38 1.175494351e-38 1.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.175494351e-38 1.175494351e-38 1.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001.175494351e-38 00000001.175494351e-38 00000001.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001.175494351e-38 00000001.175494351e-38 00000001.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.17549e-38 1.17549e-38 1.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.17549e-38 1.17549e-38 1.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+01.17549e-38 01.17549e-38 01.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+01.17549e-38 01.17549e-38 01.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z date default '2005-02-02';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 2005-02-02 2005-02-02
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z time default '12:20:12';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+12:20:12 12:20:12 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z datetime default '2005-02-02 12:20:12';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 12:20:12 2005-02-02 12:20:12 2005-02-02 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z timestamp default '20050202122012';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 12:20:12 2005-02-02 12:20:12 2005-02-02 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year(3) default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year(4) default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z enum("1enum", "2enum") default "2enum";
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2enum 2enum 2enum
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z set("1set", "2set") default "2set";
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2set 2set 2set
+DROP PROCEDURE sp1;
+
+Testcase 4.2.16:
+----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare a, b char default '2';
+declare c, d float default 1.3;
+declare e, f text default 'text';
+declare g, h enum("value1", "value2" ) default 'value1';
+declare i, j datetime default '2005-02-02 12:12:12';
+declare k, l blob default 'blob';
+SELECT a, b, c, d, e, f, g, h, k, l;
+END//
+CALL sp6();
+a b c d e f g h k l
+2 2 1.3 1.3 text text value1 value1 blob blob
+DROP PROCEDURE sp6;
+
+Testcase 4.2.17:
+----------------
+Ensure that the invalid variable declarations are rejected, with an appropriate
+error message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare @x char;
+SELECT f2 into x from t2 limit 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 '@x char;
+SELECT f2 into x from t2 limit 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare add char;
+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 'add char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare all char;
+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 'all char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare alter char;
+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 'alter char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare analyze char;
+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 'analyze char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare and char;
+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 'and char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare as char;
+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 'as char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare asc char;
+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 'asc char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare asensitive char;
+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 'asensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare before char;
+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 'before char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare between char;
+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 'between char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare bigint char;
+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 'bigint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare binary char;
+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 'binary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare blob char;
+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 'blob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare both char;
+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 'both char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare by char;
+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 'by char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare CALL char;
+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 'CALL char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cascade char;
+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 'cascade char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare case char;
+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 'case char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare change char;
+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 'change char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare char char;
+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 'char char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare character char;
+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 'character char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare check char;
+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 'check char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare collate char;
+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 'collate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare column char;
+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 'column char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare columns char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare condition char;
+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 'condition char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare connection char;
+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 'connection char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare constraint char;
+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 'constraint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue char;
+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 'char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare convert char;
+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 'convert char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare create char;
+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 'create char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cross char;
+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 'cross char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_date char;
+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 'current_date char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_time char;
+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 'current_time char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_timestamp char;
+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 'current_timestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_user char;
+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 'current_user char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cursor char;
+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 'cursor char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare database char;
+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 'database char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare databases char;
+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 'databases char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_hour char;
+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 'day_hour char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_microsecond char;
+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 'day_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_minute char;
+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 'day_minute char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_second char;
+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 'day_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare dec char;
+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 'dec char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare decimal char;
+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 'decimal char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare declare char;
+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 'declare char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare default char;
+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 'default char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare delayed char;
+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 'delayed char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare delete char;
+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 'delete char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare desc char;
+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 'desc char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare describe char;
+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 'describe char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare deterministic char;
+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 'deterministic char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare distinct char;
+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 'distinct char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare distinctrow char;
+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 'distinctrow char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare div char;
+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 'div char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare double char;
+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 'double char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare drop char;
+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 'drop char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare dual char;
+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 'dual char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare each char;
+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 'each char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare else char;
+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 'else char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare elseif char;
+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 'elseif char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare enclosed char;
+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 'enclosed char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare escaped char;
+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 'escaped char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare exists char;
+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 'exists char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare exit char;
+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 'char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare explain char;
+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 'explain char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare false char;
+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 'false char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fetch char;
+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 'fetch char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fields char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare float char;
+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 'float char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare for char;
+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 'for char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare force char;
+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 'force char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare foreign char;
+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 'foreign char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare found char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare from char;
+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 'from char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fulltext char;
+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 'fulltext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare goto char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare grant char;
+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 'grant char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare group char;
+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 'group char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare having char;
+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 'having char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare high_priority char;
+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 'high_priority char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_microsecond char;
+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 'hour_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_minute char;
+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 'hour_minute char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_second char;
+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 'hour_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare if char;
+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 'if char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare ignore char;
+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 'ignore char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare in char;
+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 'in char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare index char;
+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 'index char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare infile char;
+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 'infile char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare inner char;
+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 'inner char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare inout char;
+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 'inout char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare insensitive char;
+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 'insensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare insert char;
+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 'insert char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare int char;
+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 'int char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare integer char;
+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 'integer char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare interval char;
+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 'interval char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare into char;
+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 'into char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare is char;
+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 'is char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare iterate char;
+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 'iterate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare join char;
+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 'join char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare key char;
+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 'key char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare keys char;
+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 'keys char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare kill char;
+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 'kill char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare leading char;
+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 'leading char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare leave char;
+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 'leave char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare left char;
+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 'left char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare like char;
+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 'like char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare limit char;
+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 'limit char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare lines char;
+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 'lines char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare load char;
+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 'load char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare localtime char;
+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 'localtime char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare localtimestamp char;
+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 'localtimestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare lock char;
+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 'lock char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare long char;
+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 'long char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare longblob char;
+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 'longblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare longtext char;
+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 'longtext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare loop char;
+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 'loop char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare low_priority char;
+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 'low_priority char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare match char;
+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 'match char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumblob char;
+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 'mediumblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumint char;
+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 'mediumint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumtext char;
+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 'mediumtext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare middleint char;
+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 'middleint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare minute_microsecond char;
+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 'minute_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare minute_second char;
+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 'minute_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mod char;
+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 'mod char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare modifies char;
+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 'modifies char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare natural char;
+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 'natural char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare not char;
+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 'not char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare no_write_to_binlog char;
+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 'no_write_to_binlog char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare null char;
+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 'null char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare numeric char;
+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 'numeric char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare on char;
+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 'on char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare optimize char;
+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 'optimize char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare option char;
+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 'option char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare optionally char;
+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 'optionally char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare or char;
+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 'or char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare order char;
+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 'order char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare out char;
+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 'out char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare outer char;
+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 'outer char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare outfile char;
+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 'outfile char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare precision char;
+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 'precision char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare primary char;
+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 'primary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare privileges char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare procedure char;
+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 'procedure char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare purge char;
+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 'purge char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare read char;
+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 'read char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare reads char;
+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 'reads char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare real char;
+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 'real char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare references char;
+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 'references char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare regexp char;
+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 'regexp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare rename char;
+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 'rename char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare repeat char;
+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 'repeat char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare replace char;
+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 'replace char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare require char;
+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 'require char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare restrict char;
+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 'restrict char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare return char;
+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 'return char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare revoke char;
+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 'revoke char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare right char;
+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 'right char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare rlike char;
+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 'rlike char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare schema char;
+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 'schema char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare schemas char;
+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 'schemas char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare second_microsecond char;
+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 'second_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare SELECT char;
+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 'SELECT char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sensitive char;
+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 'sensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare separator char;
+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 'separator char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare set char;
+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 'set char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare show char;
+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 'show char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare smallint char;
+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 'smallint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare soname char;
+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 'soname char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare spatial char;
+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 'spatial char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare specific char;
+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 'specific char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql char;
+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 'sql char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlexception char;
+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 'sqlexception char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlstate char;
+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 'sqlstate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlwarning char;
+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 'sqlwarning char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_big_result char;
+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 'sql_big_result char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_calc_found_rows char;
+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 'sql_calc_found_rows char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_small_result char;
+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 'sql_small_result char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare ssl char;
+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 'ssl char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare starting char;
+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 'starting char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare straight_join char;
+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 'straight_join char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare table char;
+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 'table char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tables char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare terminated char;
+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 'terminated char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare then char;
+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 'then char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinyblob char;
+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 'tinyblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinyint char;
+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 'tinyint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinytext char;
+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 'tinytext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare to char;
+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 'to char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare trailing char;
+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 'trailing char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare trigger char;
+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 'trigger char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare true char;
+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 'true char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare undo char;
+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 'undo char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare union char;
+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 'union char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unique char;
+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 'unique char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unlock char;
+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 'unlock char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unsigned char;
+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 'unsigned char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare update char;
+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 'update char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare usage char;
+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 'usage char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare USE char;
+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 'USE char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare using char;
+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 'using char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_date char;
+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 'utc_date char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_time char;
+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 'utc_time char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_timestamp char;
+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 'utc_timestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare values char;
+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 'values char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varbinary char;
+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 'varbinary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varchar char;
+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 'varchar char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varcharacter char;
+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 'varcharacter char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varying char;
+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 'varying char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare when char;
+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 'when char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare where char;
+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 'where char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare while char;
+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 char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare with char;
+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 'with char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare write char;
+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 'write char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xor char;
+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 'xor char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare year_month char;
+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 'year_month char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare zerofill char;
+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 'zerofill char;
+END' at line 3
+
+Testcase :
+----------
+Ensure that every possible type of condition may be declared for a stored procedure
+( covered in more detail in handlers section.)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'HY000';
+declare cond2 condition for sqlstate '23000';
+declare cond3 condition for sqlstate 'HY001';
+declare cond4 condition for sqlstate '08004';
+declare cond5 condition for sqlstate '08S01';
+declare cond6 condition for sqlstate '42000';
+declare cond7 condition for sqlstate '28000';
+declare cond8 condition for sqlstate '3D000';
+declare cond9 condition for sqlstate '42S01';
+declare cond10 condition for sqlstate '42S02';
+declare cond11 condition for sqlstate '42S22';
+declare cond12 condition for sqlstate '21S01';
+declare cond13 condition for sqlstate '42S21';
+declare cond14 condition for sqlstate '42S12';
+declare cond15 condition for sqlstate '22004';
+declare cond16 condition for sqlstate '25000';
+declare cond17 condition for sqlstate '40001';
+declare cond18 condition for sqlstate '21000';
+declare cond19 condition for sqlstate '01000';
+declare cond20 condition for sqlstate '22003';
+declare cond21 condition for sqlstate '22007';
+declare cond22 condition for sqlstate '0A000';
+declare cond23 condition for sqlstate '70100';
+declare cond24 condition for sqlstate '2F005';
+declare cond25 condition for sqlstate '24000';
+declare cond26 condition for sqlstate '02000';
+declare continue handler for cond2 set @x2 = 1;
+declare continue handler for cond1 set @x2 = 1;
+declare continue handler for cond3 set @x2 = 1;
+declare continue handler for cond4 set @x2 = 1;
+declare continue handler for cond5 set @x2 = 1;
+declare continue handler for cond7 set @x2 = 1;
+declare continue handler for cond6 set @x2 = 1;
+declare continue handler for cond8 set @x2 = 1;
+declare continue handler for cond9 set @x2 = 1;
+declare continue handler for cond10 set @x2 = 1;
+declare continue handler for cond11 set @x2 = 1;
+declare continue handler for cond12 set @x2 = 1;
+declare continue handler for cond13 set @x2 = 1;
+declare continue handler for cond14 set @x2 = 1;
+declare continue handler for cond15 set @x2 = 1;
+declare continue handler for cond16 set @x2 = 1;
+declare continue handler for cond17 set @x2 = 1;
+declare continue handler for cond18 set @x2 = 1;
+declare continue handler for cond19 set @x2 = 1;
+declare continue handler for cond20 set @x2 = 1;
+declare continue handler for cond21 set @x2 = 1;
+declare continue handler for cond22 set @x2 = 1;
+declare continue handler for cond23 set @x2 = 1;
+declare continue handler for cond24 set @x2 = 1;
+declare continue handler for cond25 set @x2 = 1;
+declare continue handler for cond26 set @x2 = 1;
+set @x = 1;
+insert into t2 values (1);
+set @x = 2;
+insert into t2 values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare @x char;
+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 '@x char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char1;
+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 'char1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare add condition for sqlstate '02000';
+declare exit handler for add set @var2 = 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 'add condition for sqlstate '02000';
+declare exit handler for add set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare all condition for sqlstate '02000';
+declare exit handler for all set @var2 = 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 'all condition for sqlstate '02000';
+declare exit handler for all set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare alter condition for sqlstate '02000';
+declare exit handler for alter set @var2 = 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 'alter condition for sqlstate '02000';
+declare exit handler for alter set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare analyze condition for sqlstate '02000';
+declare exit handler for analyze set @var2 = 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 'analyze condition for sqlstate '02000';
+declare exit handler for analyze set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare and condition for sqlstate '02000';
+declare exit handler for and set @var2 = 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 'and condition for sqlstate '02000';
+declare exit handler for and set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare as condition for sqlstate '02000';
+declare exit handler for as set @var2 = 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 'as condition for sqlstate '02000';
+declare exit handler for as set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asc condition for sqlstate '02000';
+declare exit handler for asc set @var2 = 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 'asc condition for sqlstate '02000';
+declare exit handler for asc set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asensitive condition for sqlstate '02000';
+declare exit handler for asensitive set @var2 = 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 'asensitive condition for sqlstate '02000';
+declare exit handler for asensitive s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare before condition for sqlstate '02000';
+declare exit handler for before set @var2 = 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 'before condition for sqlstate '02000';
+declare exit handler for before set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare between condition for sqlstate '02000';
+declare exit handler for between set @var2 = 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 'between condition for sqlstate '02000';
+declare exit handler for between set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint condition for sqlstate '02000';
+declare exit handler for bigint set @var2 = 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 'bigint condition for sqlstate '02000';
+declare exit handler for bigint set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary condition for sqlstate '02000';
+declare exit handler for binary set @var2 = 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 'binary condition for sqlstate '02000';
+declare exit handler for binary set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob condition for sqlstate '02000';
+declare exit handler for blob set @var2 = 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 'blob condition for sqlstate '02000';
+declare exit handler for blob set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare both condition for sqlstate '02000';
+declare exit handler for both set @var2 = 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 'both condition for sqlstate '02000';
+declare exit handler for both set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare by condition for sqlstate '02000';
+declare exit handler for by set @var2 = 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 'by condition for sqlstate '02000';
+declare exit handler for by set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare CALL condition for sqlstate '02000';
+declare exit handler for CALL set @var2 = 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 'CALL condition for sqlstate '02000';
+declare exit handler for CALL set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cascade condition for sqlstate '02000';
+declare exit handler for cascade set @var2 = 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 'cascade condition for sqlstate '02000';
+declare exit handler for cascade set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare case condition for sqlstate '02000';
+declare exit handler for case set @var2 = 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 'case condition for sqlstate '02000';
+declare exit handler for case set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare change condition for sqlstate '02000';
+declare exit handler for change set @var2 = 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 'change condition for sqlstate '02000';
+declare exit handler for change set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char condition for sqlstate '02000';
+declare exit handler for char set @var2 = 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 'char condition for sqlstate '02000';
+declare exit handler for char set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare character condition for sqlstate '02000';
+declare exit handler for character set @var2 = 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 'character condition for sqlstate '02000';
+declare exit handler for character set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare check condition for sqlstate '02000';
+declare exit handler for check set @var2 = 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 'check condition for sqlstate '02000';
+declare exit handler for check set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare collate condition for sqlstate '02000';
+declare exit handler for collate set @var2 = 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 'collate condition for sqlstate '02000';
+declare exit handler for collate set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare column condition for sqlstate '02000';
+declare exit handler for column set @var2 = 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 'column condition for sqlstate '02000';
+declare exit handler for column set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare condition condition for sqlstate '02000';
+declare exit handler for condition set @var2 = 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 'condition condition for sqlstate '02000';
+declare exit handler for condition set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare connection condition for sqlstate '02000';
+declare exit handler for connection set @var2 = 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 'connection condition for sqlstate '02000';
+declare exit handler for connection s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare constraint condition for sqlstate '02000';
+declare exit handler for constraint set @var2 = 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 'constraint condition for sqlstate '02000';
+declare exit handler for constraint s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare continue condition for sqlstate '02000';
+declare exit handler for continue set @var2 = 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 'condition for sqlstate '02000';
+declare exit handler for continue set @var2 = 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare convert condition for sqlstate '02000';
+declare exit handler for convert set @var2 = 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 'convert condition for sqlstate '02000';
+declare exit handler for convert set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare create condition for sqlstate '02000';
+declare exit handler for create set @var2 = 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 'create condition for sqlstate '02000';
+declare exit handler for create set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cross condition for sqlstate '02000';
+declare exit handler for cross set @var2 = 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 'cross condition for sqlstate '02000';
+declare exit handler for cross set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_date condition for sqlstate '02000';
+declare exit handler for current_date set @var2 = 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 'current_date condition for sqlstate '02000';
+declare exit handler for current_da' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_time condition for sqlstate '02000';
+declare exit handler for current_time set @var2 = 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 'current_time condition for sqlstate '02000';
+declare exit handler for current_ti' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_timestamp condition for sqlstate '02000';
+declare exit handler for current_timestamp set @var2 = 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 'current_timestamp condition for sqlstate '02000';
+declare exit handler for curre' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_user condition for sqlstate '02000';
+declare exit handler for current_user set @var2 = 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 'current_user condition for sqlstate '02000';
+declare exit handler for current_us' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cursor condition for sqlstate '02000';
+declare exit handler for cursor set @var2 = 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 'cursor condition for sqlstate '02000';
+declare exit handler for cursor set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare database condition for sqlstate '02000';
+declare exit handler for database set @var2 = 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 'database condition for sqlstate '02000';
+declare exit handler for database set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare databases condition for sqlstate '02000';
+declare exit handler for databases set @var2 = 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 'databases condition for sqlstate '02000';
+declare exit handler for databases set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_hour condition for sqlstate '02000';
+declare exit handler for day_hour set @var2 = 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 'day_hour condition for sqlstate '02000';
+declare exit handler for day_hour set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_microsecond condition for sqlstate '02000';
+declare exit handler for day_microsecond set @var2 = 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 'day_microsecond condition for sqlstate '02000';
+declare exit handler for day_mic' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_minute condition for sqlstate '02000';
+declare exit handler for day_minute set @var2 = 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 'day_minute condition for sqlstate '02000';
+declare exit handler for day_minute s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_second condition for sqlstate '02000';
+declare exit handler for day_second set @var2 = 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 'day_second condition for sqlstate '02000';
+declare exit handler for day_second s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dec condition for sqlstate '02000';
+declare exit handler for dec set @var2 = 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 'dec condition for sqlstate '02000';
+declare exit handler for dec set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal condition for sqlstate '02000';
+declare exit handler for decimal set @var2 = 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 'decimal condition for sqlstate '02000';
+declare exit handler for decimal set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare declare condition for sqlstate '02000';
+declare exit handler for declare set @var2 = 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 'declare condition for sqlstate '02000';
+declare exit handler for declare set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare default condition for sqlstate '02000';
+declare exit handler for default set @var2 = 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 'default condition for sqlstate '02000';
+declare exit handler for default set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delayed condition for sqlstate '02000';
+declare exit handler for delayed set @var2 = 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 'delayed condition for sqlstate '02000';
+declare exit handler for delayed set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delete condition for sqlstate '02000';
+declare exit handler for delete set @var2 = 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 'delete condition for sqlstate '02000';
+declare exit handler for delete set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare desc condition for sqlstate '02000';
+declare exit handler for desc set @var2 = 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 'desc condition for sqlstate '02000';
+declare exit handler for desc set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare describe condition for sqlstate '02000';
+declare exit handler for describe set @var2 = 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 'describe condition for sqlstate '02000';
+declare exit handler for describe set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare deterministic condition for sqlstate '02000';
+declare exit handler for deterministic set @var2 = 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 'deterministic condition for sqlstate '02000';
+declare exit handler for determini' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinct condition for sqlstate '02000';
+declare exit handler for distinct set @var2 = 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 'distinct condition for sqlstate '02000';
+declare exit handler for distinct set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinctrow condition for sqlstate '02000';
+declare exit handler for distinctrow set @var2 = 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 'distinctrow condition for sqlstate '02000';
+declare exit handler for distinctrow' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare div condition for sqlstate '02000';
+declare exit handler for div set @var2 = 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 'div condition for sqlstate '02000';
+declare exit handler for div set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double condition for sqlstate '02000';
+declare exit handler for double set @var2 = 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 'double condition for sqlstate '02000';
+declare exit handler for double set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare drop condition for sqlstate '02000';
+declare exit handler for drop set @var2 = 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 'drop condition for sqlstate '02000';
+declare exit handler for drop set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dual condition for sqlstate '02000';
+declare exit handler for dual set @var2 = 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 'dual condition for sqlstate '02000';
+declare exit handler for dual set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare each condition for sqlstate '02000';
+declare exit handler for each set @var2 = 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 'each condition for sqlstate '02000';
+declare exit handler for each set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare else condition for sqlstate '02000';
+declare exit handler for else set @var2 = 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 'else condition for sqlstate '02000';
+declare exit handler for else set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare elseif condition for sqlstate '02000';
+declare exit handler for elseif set @var2 = 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 'elseif condition for sqlstate '02000';
+declare exit handler for elseif set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enclosed condition for sqlstate '02000';
+declare exit handler for enclosed set @var2 = 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 'enclosed condition for sqlstate '02000';
+declare exit handler for enclosed set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare escaped condition for sqlstate '02000';
+declare exit handler for escaped set @var2 = 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 'escaped condition for sqlstate '02000';
+declare exit handler for escaped set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exists condition for sqlstate '02000';
+declare exit handler for exists set @var2 = 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 'exists condition for sqlstate '02000';
+declare exit handler for exists set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exit condition for sqlstate '02000';
+declare exit handler for exit set @var2 = 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 'condition for sqlstate '02000';
+declare exit handler for exit set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare explain condition for sqlstate '02000';
+declare exit handler for explain set @var2 = 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 'explain condition for sqlstate '02000';
+declare exit handler for explain set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare false condition for sqlstate '02000';
+declare exit handler for false set @var2 = 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 'false condition for sqlstate '02000';
+declare exit handler for false set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fetch condition for sqlstate '02000';
+declare exit handler for fetch set @var2 = 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 'fetch condition for sqlstate '02000';
+declare exit handler for fetch set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fields condition for sqlstate '02000';
+declare exit handler for fields set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float condition for sqlstate '02000';
+declare exit handler for float set @var2 = 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 'float condition for sqlstate '02000';
+declare exit handler for float set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare for condition for sqlstate '02000';
+declare exit handler for for set @var2 = 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 'for condition for sqlstate '02000';
+declare exit handler for for set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare force condition for sqlstate '02000';
+declare exit handler for force set @var2 = 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 'force condition for sqlstate '02000';
+declare exit handler for force set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare foreign condition for sqlstate '02000';
+declare exit handler for foreign set @var2 = 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 'foreign condition for sqlstate '02000';
+declare exit handler for foreign set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare found condition for sqlstate '02000';
+declare exit handler for found set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare from condition for sqlstate '02000';
+declare exit handler for from set @var2 = 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 'from condition for sqlstate '02000';
+declare exit handler for from set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fulltext condition for sqlstate '02000';
+declare exit handler for fulltext set @var2 = 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 'fulltext condition for sqlstate '02000';
+declare exit handler for fulltext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare goto condition for sqlstate '02000';
+declare exit handler for goto set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare grant condition for sqlstate '02000';
+declare exit handler for grant set @var2 = 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 'grant condition for sqlstate '02000';
+declare exit handler for grant set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare group condition for sqlstate '02000';
+declare exit handler for group set @var2 = 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 'group condition for sqlstate '02000';
+declare exit handler for group set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare having condition for sqlstate '02000';
+declare exit handler for having set @var2 = 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 'having condition for sqlstate '02000';
+declare exit handler for having set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare high_priority condition for sqlstate '02000';
+declare exit handler for high_priority set @var2 = 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 'high_priority condition for sqlstate '02000';
+declare exit handler for high_prio' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_microsecond condition for sqlstate '02000';
+declare exit handler for hour_microsecond set @var2 = 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 'hour_microsecond condition for sqlstate '02000';
+declare exit handler for hour_m' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_minute condition for sqlstate '02000';
+declare exit handler for hour_minute set @var2 = 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 'hour_minute condition for sqlstate '02000';
+declare exit handler for hour_minute' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_second condition for sqlstate '02000';
+declare exit handler for hour_second set @var2 = 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 'hour_second condition for sqlstate '02000';
+declare exit handler for hour_second' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare if condition for sqlstate '02000';
+declare exit handler for if set @var2 = 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 'if condition for sqlstate '02000';
+declare exit handler for if set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ignore condition for sqlstate '02000';
+declare exit handler for ignore set @var2 = 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 'ignore condition for sqlstate '02000';
+declare exit handler for ignore set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare in condition for sqlstate '02000';
+declare exit handler for in set @var2 = 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 'in condition for sqlstate '02000';
+declare exit handler for in set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare index condition for sqlstate '02000';
+declare exit handler for index set @var2 = 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 'index condition for sqlstate '02000';
+declare exit handler for index set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare infile condition for sqlstate '02000';
+declare exit handler for infile set @var2 = 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 'infile condition for sqlstate '02000';
+declare exit handler for infile set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inner condition for sqlstate '02000';
+declare exit handler for inner set @var2 = 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 'inner condition for sqlstate '02000';
+declare exit handler for inner set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inout condition for sqlstate '02000';
+declare exit handler for inout set @var2 = 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 'inout condition for sqlstate '02000';
+declare exit handler for inout set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insensitive condition for sqlstate '02000';
+declare exit handler for insensitive set @var2 = 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 'insensitive condition for sqlstate '02000';
+declare exit handler for insensitive' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insert condition for sqlstate '02000';
+declare exit handler for insert set @var2 = 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 'insert condition for sqlstate '02000';
+declare exit handler for insert set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int condition for sqlstate '02000';
+declare exit handler for int set @var2 = 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 'int condition for sqlstate '02000';
+declare exit handler for int set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare integer condition for sqlstate '02000';
+declare exit handler for integer set @var2 = 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 'integer condition for sqlstate '02000';
+declare exit handler for integer set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare interval condition for sqlstate '02000';
+declare exit handler for interval set @var2 = 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 'interval condition for sqlstate '02000';
+declare exit handler for interval set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare into condition for sqlstate '02000';
+declare exit handler for into set @var2 = 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 'into condition for sqlstate '02000';
+declare exit handler for into set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare is condition for sqlstate '02000';
+declare exit handler for is set @var2 = 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 'is condition for sqlstate '02000';
+declare exit handler for is set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare iterate condition for sqlstate '02000';
+declare exit handler for iterate set @var2 = 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 'iterate condition for sqlstate '02000';
+declare exit handler for iterate set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare join condition for sqlstate '02000';
+declare exit handler for join set @var2 = 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 'join condition for sqlstate '02000';
+declare exit handler for join set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare key condition for sqlstate '02000';
+declare exit handler for key set @var2 = 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 'key condition for sqlstate '02000';
+declare exit handler for key set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare keys condition for sqlstate '02000';
+declare exit handler for keys set @var2 = 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 'keys condition for sqlstate '02000';
+declare exit handler for keys set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare kill condition for sqlstate '02000';
+declare exit handler for kill set @var2 = 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 'kill condition for sqlstate '02000';
+declare exit handler for kill set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leading condition for sqlstate '02000';
+declare exit handler for leading set @var2 = 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 'leading condition for sqlstate '02000';
+declare exit handler for leading set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leave condition for sqlstate '02000';
+declare exit handler for leave set @var2 = 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 'leave condition for sqlstate '02000';
+declare exit handler for leave set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare left condition for sqlstate '02000';
+declare exit handler for left set @var2 = 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 'left condition for sqlstate '02000';
+declare exit handler for left set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare like condition for sqlstate '02000';
+declare exit handler for like set @var2 = 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 'like condition for sqlstate '02000';
+declare exit handler for like set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare limit condition for sqlstate '02000';
+declare exit handler for limit set @var2 = 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 'limit condition for sqlstate '02000';
+declare exit handler for limit set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lines condition for sqlstate '02000';
+declare exit handler for lines set @var2 = 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 'lines condition for sqlstate '02000';
+declare exit handler for lines set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare load condition for sqlstate '02000';
+declare exit handler for load set @var2 = 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 'load condition for sqlstate '02000';
+declare exit handler for load set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtime condition for sqlstate '02000';
+declare exit handler for localtime set @var2 = 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 'localtime condition for sqlstate '02000';
+declare exit handler for localtime set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtimestamp condition for sqlstate '02000';
+declare exit handler for localtimestamp set @var2 = 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 'localtimestamp condition for sqlstate '02000';
+declare exit handler for localtim' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lock condition for sqlstate '02000';
+declare exit handler for lock set @var2 = 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 'lock condition for sqlstate '02000';
+declare exit handler for lock set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare long condition for sqlstate '02000';
+declare exit handler for long set @var2 = 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 'long condition for sqlstate '02000';
+declare exit handler for long set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob condition for sqlstate '02000';
+declare exit handler for longblob set @var2 = 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 'longblob condition for sqlstate '02000';
+declare exit handler for longblob set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext condition for sqlstate '02000';
+declare exit handler for longtext set @var2 = 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 'longtext condition for sqlstate '02000';
+declare exit handler for longtext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare loop condition for sqlstate '02000';
+declare exit handler for loop set @var2 = 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 'loop condition for sqlstate '02000';
+declare exit handler for loop set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare low_priority condition for sqlstate '02000';
+declare exit handler for low_priority set @var2 = 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 'low_priority condition for sqlstate '02000';
+declare exit handler for low_priori' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare match condition for sqlstate '02000';
+declare exit handler for match set @var2 = 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 'match condition for sqlstate '02000';
+declare exit handler for match set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob condition for sqlstate '02000';
+declare exit handler for mediumblob set @var2 = 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 'mediumblob condition for sqlstate '02000';
+declare exit handler for mediumblob s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint condition for sqlstate '02000';
+declare exit handler for mediumint set @var2 = 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 'mediumint condition for sqlstate '02000';
+declare exit handler for mediumint set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext condition for sqlstate '02000';
+declare exit handler for mediumtext set @var2 = 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 'mediumtext condition for sqlstate '02000';
+declare exit handler for mediumtext s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare middleint condition for sqlstate '02000';
+declare exit handler for middleint set @var2 = 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 'middleint condition for sqlstate '02000';
+declare exit handler for middleint set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_microsecond condition for sqlstate '02000';
+declare exit handler for minute_microsecond set @var2 = 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 'minute_microsecond condition for sqlstate '02000';
+declare exit handler for minu' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_second condition for sqlstate '02000';
+declare exit handler for minute_second set @var2 = 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 'minute_second condition for sqlstate '02000';
+declare exit handler for minute_se' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mod condition for sqlstate '02000';
+declare exit handler for mod set @var2 = 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 'mod condition for sqlstate '02000';
+declare exit handler for mod set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare modifies condition for sqlstate '02000';
+declare exit handler for modifies set @var2 = 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 'modifies condition for sqlstate '02000';
+declare exit handler for modifies set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare natural condition for sqlstate '02000';
+declare exit handler for natural set @var2 = 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 'natural condition for sqlstate '02000';
+declare exit handler for natural set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare not condition for sqlstate '02000';
+declare exit handler for not set @var2 = 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 'not condition for sqlstate '02000';
+declare exit handler for not set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare no_write_to_binlog condition for sqlstate '02000';
+declare exit handler for no_write_to_binlog set @var2 = 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 'no_write_to_binlog condition for sqlstate '02000';
+declare exit handler for no_w' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare null condition for sqlstate '02000';
+declare exit handler for null set @var2 = 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 'null condition for sqlstate '02000';
+declare exit handler for null set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric condition for sqlstate '02000';
+declare exit handler for numeric set @var2 = 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 'numeric condition for sqlstate '02000';
+declare exit handler for numeric set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare on condition for sqlstate '02000';
+declare exit handler for on set @var2 = 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 'on condition for sqlstate '02000';
+declare exit handler for on set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optimize condition for sqlstate '02000';
+declare exit handler for optimize set @var2 = 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 'optimize condition for sqlstate '02000';
+declare exit handler for optimize set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare option condition for sqlstate '02000';
+declare exit handler for option set @var2 = 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 'option condition for sqlstate '02000';
+declare exit handler for option set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optionally condition for sqlstate '02000';
+declare exit handler for optionally set @var2 = 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 'optionally condition for sqlstate '02000';
+declare exit handler for optionally s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare or condition for sqlstate '02000';
+declare exit handler for or set @var2 = 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 'or condition for sqlstate '02000';
+declare exit handler for or set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare order condition for sqlstate '02000';
+declare exit handler for order set @var2 = 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 'order condition for sqlstate '02000';
+declare exit handler for order set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare out condition for sqlstate '02000';
+declare exit handler for out set @var2 = 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 'out condition for sqlstate '02000';
+declare exit handler for out set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outer condition for sqlstate '02000';
+declare exit handler for outer set @var2 = 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 'outer condition for sqlstate '02000';
+declare exit handler for outer set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outfile condition for sqlstate '02000';
+declare exit handler for outfile set @var2 = 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 'outfile condition for sqlstate '02000';
+declare exit handler for outfile set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare precision condition for sqlstate '02000';
+declare exit handler for precision set @var2 = 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 'precision condition for sqlstate '02000';
+declare exit handler for precision set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare primary condition for sqlstate '02000';
+declare exit handler for primary set @var2 = 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 'primary condition for sqlstate '02000';
+declare exit handler for primary set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare privileges condition for sqlstate '02000';
+declare exit handler for privileges set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare procedure condition for sqlstate '02000';
+declare exit handler for procedure set @var2 = 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 'procedure condition for sqlstate '02000';
+declare exit handler for procedure set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare purge condition for sqlstate '02000';
+declare exit handler for purge set @var2 = 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 'purge condition for sqlstate '02000';
+declare exit handler for purge set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare read condition for sqlstate '02000';
+declare exit handler for read set @var2 = 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 'read condition for sqlstate '02000';
+declare exit handler for read set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare reads condition for sqlstate '02000';
+declare exit handler for reads set @var2 = 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 'reads condition for sqlstate '02000';
+declare exit handler for reads set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real condition for sqlstate '02000';
+declare exit handler for real set @var2 = 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 'real condition for sqlstate '02000';
+declare exit handler for real set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare references condition for sqlstate '02000';
+declare exit handler for references set @var2 = 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 'references condition for sqlstate '02000';
+declare exit handler for references s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare regexp condition for sqlstate '02000';
+declare exit handler for regexp set @var2 = 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 'regexp condition for sqlstate '02000';
+declare exit handler for regexp set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rename condition for sqlstate '02000';
+declare exit handler for rename set @var2 = 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 'rename condition for sqlstate '02000';
+declare exit handler for rename set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare repeat condition for sqlstate '02000';
+declare exit handler for repeat set @var2 = 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 'repeat condition for sqlstate '02000';
+declare exit handler for repeat set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare replace condition for sqlstate '02000';
+declare exit handler for replace set @var2 = 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 'replace condition for sqlstate '02000';
+declare exit handler for replace set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare require condition for sqlstate '02000';
+declare exit handler for require set @var2 = 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 'require condition for sqlstate '02000';
+declare exit handler for require set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare restrict condition for sqlstate '02000';
+declare exit handler for restrict set @var2 = 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 'restrict condition for sqlstate '02000';
+declare exit handler for restrict set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare return condition for sqlstate '02000';
+declare exit handler for return set @var2 = 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 'return condition for sqlstate '02000';
+declare exit handler for return set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare revoke condition for sqlstate '02000';
+declare exit handler for revoke set @var2 = 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 'revoke condition for sqlstate '02000';
+declare exit handler for revoke set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare right condition for sqlstate '02000';
+declare exit handler for right set @var2 = 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 'right condition for sqlstate '02000';
+declare exit handler for right set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rlike condition for sqlstate '02000';
+declare exit handler for rlike set @var2 = 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 'rlike condition for sqlstate '02000';
+declare exit handler for rlike set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schema condition for sqlstate '02000';
+declare exit handler for schema set @var2 = 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 'schema condition for sqlstate '02000';
+declare exit handler for schema set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schemas condition for sqlstate '02000';
+declare exit handler for schemas set @var2 = 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 'schemas condition for sqlstate '02000';
+declare exit handler for schemas set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare second_microsecond condition for sqlstate '02000';
+declare exit handler for second_microsecond set @var2 = 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 'second_microsecond condition for sqlstate '02000';
+declare exit handler for seco' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare SELECT condition for sqlstate '02000';
+declare exit handler for SELECT set @var2 = 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 'SELECT condition for sqlstate '02000';
+declare exit handler for SELECT set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sensitive condition for sqlstate '02000';
+declare exit handler for sensitive set @var2 = 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 'sensitive condition for sqlstate '02000';
+declare exit handler for sensitive set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare separator condition for sqlstate '02000';
+declare exit handler for separator set @var2 = 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 'separator condition for sqlstate '02000';
+declare exit handler for separator set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set condition for sqlstate '02000';
+declare exit handler for set set @var2 = 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 'set condition for sqlstate '02000';
+declare exit handler for set set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare show condition for sqlstate '02000';
+declare exit handler for show set @var2 = 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 'show condition for sqlstate '02000';
+declare exit handler for show set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint condition for sqlstate '02000';
+declare exit handler for smallint set @var2 = 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 'smallint condition for sqlstate '02000';
+declare exit handler for smallint set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare soname condition for sqlstate '02000';
+declare exit handler for soname set @var2 = 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 'soname condition for sqlstate '02000';
+declare exit handler for soname set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare spatial condition for sqlstate '02000';
+declare exit handler for spatial set @var2 = 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 'spatial condition for sqlstate '02000';
+declare exit handler for spatial set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare specific condition for sqlstate '02000';
+declare exit handler for specific set @var2 = 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 'specific condition for sqlstate '02000';
+declare exit handler for specific set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql condition for sqlstate '02000';
+declare exit handler for sql set @var2 = 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 'sql condition for sqlstate '02000';
+declare exit handler for sql set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlexception condition for sqlstate '02000';
+declare exit handler for sqlexception set @var2 = 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 'sqlexception condition for sqlstate '02000';
+declare exit handler for sqlexcepti' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlstate condition for sqlstate '02000';
+declare exit handler for sqlstate set @var2 = 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 'sqlstate condition for sqlstate '02000';
+declare exit handler for sqlstate set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlwarning condition for sqlstate '02000';
+declare exit handler for sqlwarning set @var2 = 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 'sqlwarning condition for sqlstate '02000';
+declare exit handler for sqlwarning s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_big_result condition for sqlstate '02000';
+declare exit handler for sql_big_result set @var2 = 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 'sql_big_result condition for sqlstate '02000';
+declare exit handler for sql_big_' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_calc_found_rows condition for sqlstate '02000';
+declare exit handler for sql_calc_found_rows set @var2 = 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 'sql_calc_found_rows condition for sqlstate '02000';
+declare exit handler for sql' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_small_result condition for sqlstate '02000';
+declare exit handler for sql_small_result set @var2 = 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 'sql_small_result condition for sqlstate '02000';
+declare exit handler for sql_sm' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ssl condition for sqlstate '02000';
+declare exit handler for ssl set @var2 = 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 'ssl condition for sqlstate '02000';
+declare exit handler for ssl set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare starting condition for sqlstate '02000';
+declare exit handler for starting set @var2 = 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 'starting condition for sqlstate '02000';
+declare exit handler for starting set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare straight_join condition for sqlstate '02000';
+declare exit handler for straight_join set @var2 = 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 'straight_join condition for sqlstate '02000';
+declare exit handler for straight_' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare table condition for sqlstate '02000';
+declare exit handler for table set @var2 = 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 'table condition for sqlstate '02000';
+declare exit handler for table set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tables condition for sqlstate '02000';
+declare exit handler for tables set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare terminated condition for sqlstate '02000';
+declare exit handler for terminated set @var2 = 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 'terminated condition for sqlstate '02000';
+declare exit handler for terminated s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare then condition for sqlstate '02000';
+declare exit handler for then set @var2 = 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 'then condition for sqlstate '02000';
+declare exit handler for then set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob condition for sqlstate '02000';
+declare exit handler for tinyblob set @var2 = 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 'tinyblob condition for sqlstate '02000';
+declare exit handler for tinyblob set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint condition for sqlstate '02000';
+declare exit handler for tinyint set @var2 = 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 'tinyint condition for sqlstate '02000';
+declare exit handler for tinyint set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext condition for sqlstate '02000';
+declare exit handler for tinytext set @var2 = 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 'tinytext condition for sqlstate '02000';
+declare exit handler for tinytext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare to condition for sqlstate '02000';
+declare exit handler for to set @var2 = 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 'to condition for sqlstate '02000';
+declare exit handler for to set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trailing condition for sqlstate '02000';
+declare exit handler for trailing set @var2 = 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 'trailing condition for sqlstate '02000';
+declare exit handler for trailing set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trigger condition for sqlstate '02000';
+declare exit handler for trigger set @var2 = 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 'trigger condition for sqlstate '02000';
+declare exit handler for trigger set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare true condition for sqlstate '02000';
+declare exit handler for true set @var2 = 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 'true condition for sqlstate '02000';
+declare exit handler for true set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare undo condition for sqlstate '02000';
+declare exit handler for undo set @var2 = 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 'undo condition for sqlstate '02000';
+declare exit handler for undo set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare union condition for sqlstate '02000';
+declare exit handler for union set @var2 = 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 'union condition for sqlstate '02000';
+declare exit handler for union set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unique condition for sqlstate '02000';
+declare exit handler for unique set @var2 = 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 'unique condition for sqlstate '02000';
+declare exit handler for unique set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unlock condition for sqlstate '02000';
+declare exit handler for unlock set @var2 = 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 'unlock condition for sqlstate '02000';
+declare exit handler for unlock set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unsigned condition for sqlstate '02000';
+declare exit handler for unsigned set @var2 = 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 'unsigned condition for sqlstate '02000';
+declare exit handler for unsigned set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare update condition for sqlstate '02000';
+declare exit handler for update set @var2 = 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 'update condition for sqlstate '02000';
+declare exit handler for update set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare usage condition for sqlstate '02000';
+declare exit handler for usage set @var2 = 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 'usage condition for sqlstate '02000';
+declare exit handler for usage set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare USE condition for sqlstate '02000';
+declare exit handler for USE set @var2 = 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 'USE condition for sqlstate '02000';
+declare exit handler for USE set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare using condition for sqlstate '02000';
+declare exit handler for using set @var2 = 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 'using condition for sqlstate '02000';
+declare exit handler for using set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_date condition for sqlstate '02000';
+declare exit handler for utc_date set @var2 = 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 'utc_date condition for sqlstate '02000';
+declare exit handler for utc_date set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_time condition for sqlstate '02000';
+declare exit handler for utc_time set @var2 = 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 'utc_time condition for sqlstate '02000';
+declare exit handler for utc_time set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_timestamp condition for sqlstate '02000';
+declare exit handler for utc_timestamp set @var2 = 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 'utc_timestamp condition for sqlstate '02000';
+declare exit handler for utc_times' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare values condition for sqlstate '02000';
+declare exit handler for values set @var2 = 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 'values condition for sqlstate '02000';
+declare exit handler for values set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varbinary condition for sqlstate '02000';
+declare exit handler for varbinary set @var2 = 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 'varbinary condition for sqlstate '02000';
+declare exit handler for varbinary set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varchar condition for sqlstate '02000';
+declare exit handler for varchar set @var2 = 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 'varchar condition for sqlstate '02000';
+declare exit handler for varchar set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varcharacter condition for sqlstate '02000';
+declare exit handler for varcharacter set @var2 = 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 'varcharacter condition for sqlstate '02000';
+declare exit handler for varcharact' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varying condition for sqlstate '02000';
+declare exit handler for varying set @var2 = 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 'varying condition for sqlstate '02000';
+declare exit handler for varying set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare when condition for sqlstate '02000';
+declare exit handler for when set @var2 = 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 'when condition for sqlstate '02000';
+declare exit handler for when set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare where condition for sqlstate '02000';
+declare exit handler for where set @var2 = 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 'where condition for sqlstate '02000';
+declare exit handler for where set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare while condition for sqlstate '02000';
+declare exit handler for while set @var2 = 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 condition for sqlstate '02000';
+declare exit handler for while set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare with condition for sqlstate '02000';
+declare exit handler for with set @var2 = 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 'with condition for sqlstate '02000';
+declare exit handler for with set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare write condition for sqlstate '02000';
+declare exit handler for write set @var2 = 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 'write condition for sqlstate '02000';
+declare exit handler for write set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare xor condition for sqlstate '02000';
+declare exit handler for xor set @var2 = 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 'xor condition for sqlstate '02000';
+declare exit handler for xor set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year_month condition for sqlstate '02000';
+declare exit handler for year_month set @var2 = 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 'year_month condition for sqlstate '02000';
+declare exit handler for year_month s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare zerofill condition for sqlstate '02000';
+declare exit handler for zerofill set @var2 = 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 'zerofill condition for sqlstate '02000';
+declare exit handler for zerofill set @' at line 3
+
+Testcase :
+----------
+Ensure that every possible type of handler may be declared for
+a stored procedure (continue- handler_type ).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t2(f1) values (1);
+set @x = 2;
+insert into t2(f1) values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare undo handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'undo handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t values ' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare continueinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare undoinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare exitinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare add handler for sqlstate '02000' set @var2 = 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 'add handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare all handler for sqlstate '02000' set @var2 = 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 'all handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare alter handler for sqlstate '02000' set @var2 = 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 'alter handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare analyze handler for sqlstate '02000' set @var2 = 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 'analyze handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare and handler for sqlstate '02000' set @var2 = 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 'and handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare as handler for sqlstate '02000' set @var2 = 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 'as handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asc handler for sqlstate '02000' set @var2 = 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 'asc handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asensitive handler for sqlstate '02000' set @var2 = 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 'asensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare before handler for sqlstate '02000' set @var2 = 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 'before handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare between handler for sqlstate '02000' set @var2 = 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 'between handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint handler for sqlstate '02000' set @var2 = 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 'bigint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary handler for sqlstate '02000' set @var2 = 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 'binary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob handler for sqlstate '02000' set @var2 = 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 'blob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare both handler for sqlstate '02000' set @var2 = 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 'both handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare by handler for sqlstate '02000' set @var2 = 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 'by handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare CALL handler for sqlstate '02000' set @var2 = 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 'CALL handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cascade handler for sqlstate '02000' set @var2 = 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 'cascade handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare case handler for sqlstate '02000' set @var2 = 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 'case handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare change handler for sqlstate '02000' set @var2 = 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 'change handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char handler for sqlstate '02000' set @var2 = 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 'char handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare character handler for sqlstate '02000' set @var2 = 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 'character handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare check handler for sqlstate '02000' set @var2 = 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 'check handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare collate handler for sqlstate '02000' set @var2 = 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 'collate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare column handler for sqlstate '02000' set @var2 = 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 'column handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare columns handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare condition handler for sqlstate '02000' set @var2 = 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 'condition handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare connection handler for sqlstate '02000' set @var2 = 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 'connection handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare constraint handler for sqlstate '02000' set @var2 = 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 'constraint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare convert handler for sqlstate '02000' set @var2 = 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 'convert handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare create handler for sqlstate '02000' set @var2 = 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 'create handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cross handler for sqlstate '02000' set @var2 = 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 'cross handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_date handler for sqlstate '02000' set @var2 = 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 'current_date handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_time handler for sqlstate '02000' set @var2 = 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 'current_time handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_timestamp handler for sqlstate '02000' set @var2 = 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 'current_timestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_user handler for sqlstate '02000' set @var2 = 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 'current_user handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cursor handler for sqlstate '02000' set @var2 = 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 'cursor handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare database handler for sqlstate '02000' set @var2 = 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 'database handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare databases handler for sqlstate '02000' set @var2 = 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 'databases handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_hour handler for sqlstate '02000' set @var2 = 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 'day_hour handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_microsecond handler for sqlstate '02000' set @var2 = 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 'day_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_minute handler for sqlstate '02000' set @var2 = 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 'day_minute handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_second handler for sqlstate '02000' set @var2 = 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 'day_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dec handler for sqlstate '02000' set @var2 = 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 'dec handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal handler for sqlstate '02000' set @var2 = 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 'decimal handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare declare handler for sqlstate '02000' set @var2 = 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 'declare handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare default handler for sqlstate '02000' set @var2 = 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 'default handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delayed handler for sqlstate '02000' set @var2 = 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 'delayed handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delete handler for sqlstate '02000' set @var2 = 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 'delete handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare desc handler for sqlstate '02000' set @var2 = 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 'desc handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare describe handler for sqlstate '02000' set @var2 = 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 'describe handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare deterministic handler for sqlstate '02000' set @var2 = 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 'deterministic handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinct handler for sqlstate '02000' set @var2 = 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 'distinct handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinctrow handler for sqlstate '02000' set @var2 = 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 'distinctrow handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare div handler for sqlstate '02000' set @var2 = 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 'div handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double handler for sqlstate '02000' set @var2 = 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 'double handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare drop handler for sqlstate '02000' set @var2 = 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 'drop handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dual handler for sqlstate '02000' set @var2 = 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 'dual handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare each handler for sqlstate '02000' set @var2 = 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 'each handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare else handler for sqlstate '02000' set @var2 = 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 'else handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare elseif handler for sqlstate '02000' set @var2 = 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 'elseif handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enclosed handler for sqlstate '02000' set @var2 = 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 'enclosed handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare escaped handler for sqlstate '02000' set @var2 = 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 'escaped handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exists handler for sqlstate '02000' set @var2 = 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 'exists handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare explain handler for sqlstate '02000' set @var2 = 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 'explain handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare false handler for sqlstate '02000' set @var2 = 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 'false handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fetch handler for sqlstate '02000' set @var2 = 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 'fetch handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fields handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float handler for sqlstate '02000' set @var2 = 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 'float handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare for handler for sqlstate '02000' set @var2 = 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 'for handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare force handler for sqlstate '02000' set @var2 = 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 'force handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare foreign handler for sqlstate '02000' set @var2 = 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 'foreign handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare found handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare from handler for sqlstate '02000' set @var2 = 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 'from handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fulltext handler for sqlstate '02000' set @var2 = 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 'fulltext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare goto handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare grant handler for sqlstate '02000' set @var2 = 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 'grant handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare group handler for sqlstate '02000' set @var2 = 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 'group handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare having handler for sqlstate '02000' set @var2 = 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 'having handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare high_priority handler for sqlstate '02000' set @var2 = 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 'high_priority handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_microsecond handler for sqlstate '02000' set @var2 = 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 'hour_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_minute handler for sqlstate '02000' set @var2 = 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 'hour_minute handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_second handler for sqlstate '02000' set @var2 = 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 'hour_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare if handler for sqlstate '02000' set @var2 = 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 'if handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ignore handler for sqlstate '02000' set @var2 = 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 'ignore handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare in handler for sqlstate '02000' set @var2 = 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 'in handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare index handler for sqlstate '02000' set @var2 = 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 'index handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare infile handler for sqlstate '02000' set @var2 = 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 'infile handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inner handler for sqlstate '02000' set @var2 = 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 'inner handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inout handler for sqlstate '02000' set @var2 = 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 'inout handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insensitive handler for sqlstate '02000' set @var2 = 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 'insensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insert handler for sqlstate '02000' set @var2 = 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 'insert handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int handler for sqlstate '02000' set @var2 = 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 'int handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare integer handler for sqlstate '02000' set @var2 = 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 'integer handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare interval handler for sqlstate '02000' set @var2 = 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 'interval handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare into handler for sqlstate '02000' set @var2 = 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 'into handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare is handler for sqlstate '02000' set @var2 = 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 'is handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare iterate handler for sqlstate '02000' set @var2 = 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 'iterate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare join handler for sqlstate '02000' set @var2 = 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 'join handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare key handler for sqlstate '02000' set @var2 = 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 'key handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare keys handler for sqlstate '02000' set @var2 = 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 'keys handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare kill handler for sqlstate '02000' set @var2 = 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 'kill handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leading handler for sqlstate '02000' set @var2 = 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 'leading handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leave handler for sqlstate '02000' set @var2 = 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 'leave handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare left handler for sqlstate '02000' set @var2 = 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 'left handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare like handler for sqlstate '02000' set @var2 = 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 'like handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare limit handler for sqlstate '02000' set @var2 = 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 'limit handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lines handler for sqlstate '02000' set @var2 = 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 'lines handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare load handler for sqlstate '02000' set @var2 = 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 'load handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtime handler for sqlstate '02000' set @var2 = 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 'localtime handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtimestamp handler for sqlstate '02000' set @var2 = 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 'localtimestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lock handler for sqlstate '02000' set @var2 = 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 'lock handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare long handler for sqlstate '02000' set @var2 = 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 'long handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob handler for sqlstate '02000' set @var2 = 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 'longblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext handler for sqlstate '02000' set @var2 = 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 'longtext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare loop handler for sqlstate '02000' set @var2 = 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 'loop handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare low_priority handler for sqlstate '02000' set @var2 = 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 'low_priority handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare match handler for sqlstate '02000' set @var2 = 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 'match handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob handler for sqlstate '02000' set @var2 = 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 'mediumblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint handler for sqlstate '02000' set @var2 = 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 'mediumint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext handler for sqlstate '02000' set @var2 = 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 'mediumtext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare middleint handler for sqlstate '02000' set @var2 = 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 'middleint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_microsecond handler for sqlstate '02000' set @var2 = 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 'minute_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_second handler for sqlstate '02000' set @var2 = 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 'minute_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mod handler for sqlstate '02000' set @var2 = 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 'mod handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare modifies handler for sqlstate '02000' set @var2 = 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 'modifies handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare natural handler for sqlstate '02000' set @var2 = 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 'natural handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare not handler for sqlstate '02000' set @var2 = 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 'not handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare no_write_to_binlog handler for sqlstate '02000' set @var2 = 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 'no_write_to_binlog handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare null handler for sqlstate '02000' set @var2 = 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 'null handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric handler for sqlstate '02000' set @var2 = 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 'numeric handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare on handler for sqlstate '02000' set @var2 = 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 'on handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optimize handler for sqlstate '02000' set @var2 = 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 'optimize handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare option handler for sqlstate '02000' set @var2 = 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 'option handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optionally handler for sqlstate '02000' set @var2 = 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 'optionally handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare or handler for sqlstate '02000' set @var2 = 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 'or handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare order handler for sqlstate '02000' set @var2 = 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 'order handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare out handler for sqlstate '02000' set @var2 = 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 'out handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outer handler for sqlstate '02000' set @var2 = 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 'outer handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outfile handler for sqlstate '02000' set @var2 = 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 'outfile handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare precision handler for sqlstate '02000' set @var2 = 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 'precision handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare primary handler for sqlstate '02000' set @var2 = 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 'primary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare privileges handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare procedure handler for sqlstate '02000' set @var2 = 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 'procedure handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare purge handler for sqlstate '02000' set @var2 = 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 'purge handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare read handler for sqlstate '02000' set @var2 = 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 'read handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare reads handler for sqlstate '02000' set @var2 = 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 'reads handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real handler for sqlstate '02000' set @var2 = 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 'real handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare references handler for sqlstate '02000' set @var2 = 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 'references handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare regexp handler for sqlstate '02000' set @var2 = 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 'regexp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rename handler for sqlstate '02000' set @var2 = 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 'rename handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare repeat handler for sqlstate '02000' set @var2 = 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 'repeat handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare replace handler for sqlstate '02000' set @var2 = 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 'replace handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare require handler for sqlstate '02000' set @var2 = 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 'require handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare restrict handler for sqlstate '02000' set @var2 = 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 'restrict handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare return handler for sqlstate '02000' set @var2 = 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 'return handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare revoke handler for sqlstate '02000' set @var2 = 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 'revoke handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare right handler for sqlstate '02000' set @var2 = 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 'right handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rlike handler for sqlstate '02000' set @var2 = 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 'rlike handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schema handler for sqlstate '02000' set @var2 = 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 'schema handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schemas handler for sqlstate '02000' set @var2 = 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 'schemas handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare second_microsecond handler for sqlstate '02000' set @var2 = 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 'second_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare SELECT handler for sqlstate '02000' set @var2 = 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 'SELECT handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sensitive handler for sqlstate '02000' set @var2 = 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 'sensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare separator handler for sqlstate '02000' set @var2 = 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 'separator handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set handler for sqlstate '02000' set @var2 = 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 'set handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare show handler for sqlstate '02000' set @var2 = 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 'show handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint handler for sqlstate '02000' set @var2 = 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 'smallint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare soname handler for sqlstate '02000' set @var2 = 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 'soname handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare spatial handler for sqlstate '02000' set @var2 = 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 'spatial handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare specific handler for sqlstate '02000' set @var2 = 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 'specific handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql handler for sqlstate '02000' set @var2 = 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 'sql handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlexception handler for sqlstate '02000' set @var2 = 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 'sqlexception handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlstate handler for sqlstate '02000' set @var2 = 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 'sqlstate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlwarning handler for sqlstate '02000' set @var2 = 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 'sqlwarning handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_big_result handler for sqlstate '02000' set @var2 = 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 'sql_big_result handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_calc_found_rows handler for sqlstate '02000' set @var2 = 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 'sql_calc_found_rows handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_small_result handler for sqlstate '02000' set @var2 = 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 'sql_small_result handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ssl handler for sqlstate '02000' set @var2 = 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 'ssl handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare starting handler for sqlstate '02000' set @var2 = 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 'starting handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare straight_join handler for sqlstate '02000' set @var2 = 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 'straight_join handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare table handler for sqlstate '02000' set @var2 = 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 'table handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tables handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare terminated handler for sqlstate '02000' set @var2 = 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 'terminated handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare then handler for sqlstate '02000' set @var2 = 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 'then handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob handler for sqlstate '02000' set @var2 = 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 'tinyblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint handler for sqlstate '02000' set @var2 = 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 'tinyint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext handler for sqlstate '02000' set @var2 = 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 'tinytext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare to handler for sqlstate '02000' set @var2 = 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 'to handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trailing handler for sqlstate '02000' set @var2 = 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 'trailing handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trigger handler for sqlstate '02000' set @var2 = 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 'trigger handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare true handler for sqlstate '02000' set @var2 = 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 'true handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare undo handler for sqlstate '02000' set @var2 = 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 'undo handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare union handler for sqlstate '02000' set @var2 = 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 'union handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unique handler for sqlstate '02000' set @var2 = 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 'unique handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unlock handler for sqlstate '02000' set @var2 = 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 'unlock handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unsigned handler for sqlstate '02000' set @var2 = 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 'unsigned handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare update handler for sqlstate '02000' set @var2 = 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 'update handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare usage handler for sqlstate '02000' set @var2 = 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 'usage handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare USE handler for sqlstate '02000' set @var2 = 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 'USE handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare using handler for sqlstate '02000' set @var2 = 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 'using handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_date handler for sqlstate '02000' set @var2 = 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 'utc_date handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_time handler for sqlstate '02000' set @var2 = 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 'utc_time handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_timestamp handler for sqlstate '02000' set @var2 = 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 'utc_timestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare values handler for sqlstate '02000' set @var2 = 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 'values handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varbinary handler for sqlstate '02000' set @var2 = 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 'varbinary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varchar handler for sqlstate '02000' set @var2 = 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 'varchar handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varcharacter handler for sqlstate '02000' set @var2 = 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 'varcharacter handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varying handler for sqlstate '02000' set @var2 = 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 'varying handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare when handler for sqlstate '02000' set @var2 = 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 'when handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare where handler for sqlstate '02000' set @var2 = 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 'where handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare while handler for sqlstate '02000' set @var2 = 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 handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare with handler for sqlstate '02000' set @var2 = 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 'with handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare write handler for sqlstate '02000' set @var2 = 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 'write handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare xor handler for sqlstate '02000' set @var2 = 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 'xor handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year_month handler for sqlstate '02000' set @var2 = 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 'year_month handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare zerofill handler for sqlstate '02000' set @var2 = 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 'zerofill handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+USE db_storedproc;
+
+Testcase 4.2.26:
+--------------------------------------------------------------------------------
+set @v1='0';
+set @v2='0';
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x char;
+declare y char;
+declare cond1 condition for sqlstate '42000';
+declare cur1 cursor for SELECT f1 from t2 limit 1;
+declare continue handler for cond1 set @x = 4;
+set @x = '1';
+set @y = '2';
+BEGIN
+declare x char;
+declare y char;
+declare cur1 cursor for SELECT f1 from t2 limit 2, 1;
+declare continue handler for sqlstate '42000' set @x = 3;
+open cur1;
+fetch cur1 into y;
+close cur1;
+CALL nonsexist();
+SELECT x, y, @x;
+END;
+open cur1;
+fetch cur1 into y;
+close cur1;
+CALL nonsexist();
+set @v1 = @x;
+set @v2 = y;
+END//
+CALL sp1();
+x y @x
+NULL a 3
+Warnings:
+Warning 1265 Data truncated for column 'y' at row 3
+Warning 1265 Data truncated for column 'y' at row 1
+SELECT @v1, @v2;
+@v1 @v2
+4 a
+DROP PROCEDURE sp1;
+
+Testcase 4.2.28:
+--------------------------------------------------------------------------------
+set @x=0;
+set @y=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set session sort_buffer_size = 10 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+set @x = 4;
+set @y = 3;
+set global sort_buffer_size = 2 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+set @@sort_buffer_size = 10 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+END//
+CALL sp1();
+@@sort_buffer_size
+10485760
+@@sort_buffer_size
+10485760
+@@sort_buffer_size
+10485760
+SELECT @x, @y;
+@x @y
+4 3
+
+Testcase 4.2.29:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx char default 'x';
+declare xy char default 'y';
+declare xz char default 'z';
+set @xx = xx, @xy = xy;
+set @xz = xz;
+SELECT @xx, @xy, @xz;
+END//
+CALL sp1();
+@xx @xy @xz
+x y z
+DROP PROCEDURE sp1;
+
+Testcase 4.2.30:
+--------------------------------------------------------------------------------
+set @xx=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx int;
+set xx = 'asd';
+set @xx = xx;
+SELECT @xx;
+END//
+CALL sp1();
+@xx
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx int;
+set xx = 5;
+set @xx = xx;
+SELECT @xx;
+END//
+CALL sp1();
+@xx
+5
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - a:
+--------------------------------------------------------------------------------
+set @xx=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx char;
+set xx = 'temp';
+set @xx = xx;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'xx' at row 1
+SELECT @xx;
+@xx
+t
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - b:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx float;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0
+Warnings:
+Warning 1265 Data truncated for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx float;
+set xx = 1.6;
+SELECT xx;
+END//
+CALL sp1();
+xx
+1.6
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - c:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx datetime;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0000-00-00 00:00:00
+Warnings:
+Warning 1264 Out of range value adjusted for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx datetime;
+set xx = '2006-06-06 01:01:01';
+SELECT xx;
+END//
+CALL sp1();
+xx
+2006-06-06 01:01:01
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - d:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx varchar(20);
+set xx = "abcdefghijk";
+SELECT xx;
+END//
+CALL sp1();
+xx
+abcdefghijk
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - e:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx tinyint;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0
+Warnings:
+Warning 1366 Incorrect integer value: 'asd' for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx tinyint;
+set xx = -125;
+SELECT xx;
+END//
+CALL sp1();
+xx
+-125
+DROP PROCEDURE sp1;
+
+Testcase 4.2.37:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+SELECT sal, f2 into x, y from t2 limit 1;
+set @x=x; set @y=y;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x char ascii;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinytext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x text;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumtext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x longtext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x blob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x longblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x binary;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` ' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x date;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x time;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x datetime;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x timestamp;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year(3);
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year(4);
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x enum("1enum", "2enum");
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x set("1set", "2set");
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.38:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare notable condition for sqlstate '42S02';
+declare continue handler for notable set @x2=1;
+set @x = 1;
+insert into t2(f1) values (1);
+set @x = 2;
+insert into t2(f1) values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+
+Testcase 4.2.39:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42000';
+declare cond1 condition for sqlstate '23000';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values(1);
+END//
+ERROR 42000: Duplicate condition: cond1
+
+Testcase 4.2.41:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '1';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '1'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '12';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '12'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '1234';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '1234'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123456';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123456'
+
+Testcase 4.2.42:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'abcdefghi';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: 'abcdefghi'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42000test';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '42000test'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '00000@#$%^&';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '00000@#$%^&'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'null';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: 'null'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate ' ';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: ' '
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 1234567890;
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 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 '1234567890;
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '2005-03-03';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '2005-03-03'
+
+Testcase 4.2.43:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '00000';
+declare continue handler for cond1 set @var2 = 1;
+set @x=1;
+SELECT @var2;
+END//
+CALL sp1();
+@var2
+NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.45:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare continue handler for sqlstate '23000' set @varr1 = 5;
+declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare mycondition condition for sqlstate '23000';
+declare continue handler for mycondition set @varr3 = 7;
+declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+
+Testcase 4.2.46:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '1' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '1'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '12' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '12'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '123' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '123'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '1234' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '1234'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '123456' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '123456'
+
+Testcase 4.2.47:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '42s0200test' set @var2 = 1;
+insert into tnull values( 1);
+SELECT @var2;
+END//
+ERROR 42000: Bad SQLSTATE: '42s0200test'
+
+Testcase 4.2.48:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '00000' set @var2 = 1;
+set @x=1;
+SELECT @var2;
+END//
+CALL sp1();
+@var2
+NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.52:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare cur1 cursor for SELECT f1, f2 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newlf1, newf3, newsal;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Duplicate cursor: cur1
+
+Testcase 4.2.53:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, lf1, f3, f4 into @w, @x, @y, @z from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newlf1, newf3, newsal;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Cursor SELECT must not have INTO
+
+Testcase 4.2.54:
+--------------------------------------------------------------------------------
+
+Testcase 4.2.55:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Undefined CURSOR: cur1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf3, newf4;
+set count = count - 1;
+END while;
+END;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is already open
+
+Testcase 4.2.56:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is already open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.57:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+declare cur2 cursor for SELECT f1, f2 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur2;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.59:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+open cur1;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf3, newf4;
+set count = count - 1;
+END while;
+open cur1;
+close cur1;
+END;
+close cur1;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.60:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+close cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+close cur1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+open cur1;
+END;
+fetch cur1 into newf1, newf2, newf3, newf4;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.62:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf2 char(20);
+declare newf1 date;
+declare cur1 cursor for SELECT f1, f3 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2;
+set @x = newf1;
+set @y = newf2;
+SELECT @x, @y;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.63:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+close cur1;
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+open cur1;
+END;
+close cur1;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.64:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+BEGIN
+open cur1;
+start transaction;
+fetch cur1 into newf1, newf2, newf4, newf3;
+commit;
+fetch cur1 into newf1, newf2, newf4, newf3;
+END;
+END//
+CALL sp1();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+DROP PROCEDURE sp1;
+
+Testcase 4.2.65:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+BEGIN
+open cur1;
+fetch cur1 into newf1, newf2, newf4, newf3;
+rollback;
+fetch cur1 into newf1, newf2, newf4, newf3;
+commit;
+END;
+END//
+CALL sp1();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+DROP PROCEDURE sp1;
+
+Testcase 4.2.66:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+fetch cur1 into newf1, newf2, newf4, newf3;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.67:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+
+Testcase 4.2.70:
+--------------------------------------------------------------------------------
+create table temp1( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+create table temp2( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare newf21 char(20);
+declare newf22 char(20);
+declare newf23 char(20);
+declare newf24 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 7, 1;
+declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 15, 1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+BEGIN
+set count = 10;
+BEGIN
+open cur2;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+insert into temp1 values(newf1, newf2, newf4, newf3);
+close cur1;
+END;
+BEGIN
+while count <> 0 do
+fetch cur2 into newf21, newf22, newf24, newf23;
+set count = count - 1;
+END while;
+END;
+insert into temp2 values(newf21, newf22, newf24, newf23);
+close cur2;
+END//
+CALL sp1();
+SELECT * from temp1;
+f1 f2 f3 f4
+agaaaaaaa agaaaaaaa -4993 agaaaaaaa
+SELECT * from temp2;
+f1 f2 f3 f4
+NULL NULL NULL NULL
+DROP PROCEDURE sp1;
+drop table temp1;
+drop table temp2;
+
+Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements
+. IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.3.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742(
+middleinitial CHAR,
+lastname VARCHAR(50),
+age_averylongfieldname_averylongname_1234569 int,
+COMMENT TEXT) ENGINE=innodb;
+INSERT INTO res_t3_itisalongname_1381742_itsaverylongname_1381742
+VALUES('a', 'aaaaaaaaaabbbbbbbbc', 0, 'default');
+CREATE PROCEDURE sp1(a int)
+BEGIN
+declare itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx char;
+declare itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx varchar(100);
+declare itisjustamediumsizeintintegervariablename integer;
+set itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx = 'b';
+set itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx = 'oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@%';
+set itisjustamediumsizeintintegervariablename = 5;
+set @comment='a';
+label1: loop
+if a>100 then
+set @comment='value of a is greater than 100';
+elseif a<100 then
+if a<50 then
+set @comment='value of a is less than 50';
+elseif a<25 then
+set @comment='value of a is less than 25';
+else
+set @comment='value of a is greater than 50 and less than 100';
+END if;
+else
+set @comment='value of a is 100';
+END if;
+if itisjustamediumsizeintintegervariablename = 0 then leave label1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+values( itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx,
+concat(itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx, ' ', a),
+a, @comment );
+set itisjustamediumsizeintintegervariablename = itisjustamediumsizeintintegervariablename - 1;
+iterate label1;
+END loop label1;
+END//
+CALL sp1(101);
+CALL sp1(100);
+CALL sp1(75);
+CALL sp1(40);
+CALL sp1(20);
+CALL sp1(-1);
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742
+ORDER BY middleinitial, lastname, age_averylongfieldname_averylongname_1234569;
+middleinitial lastname age_averylongfieldname_averylongname_1234569 COMMENT
+a aaaaaaaaaabbbbbbbbc 0 default
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE sp1;
+
+Testcase 4.3.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2 = 'address';
+set count = 1;
+case when action = 'delete' then
+insert into t3 values(v1, v2, count);
+delete from t3 where f1=v1;
+when action = 'insert' then
+repeat
+insert into t3 values(v1, v2, count);
+set count = count + 1;
+until count > 5
+END repeat;
+set count = 1;
+label1: repeat
+insert into t3 values(v1, v2, count);
+if count > 5 then leave label1;
+END if;
+set count = count + 1;
+until count > 5
+END repeat;
+set count = 1;
+while count < 5 do
+insert into t3 values(v1, v2, count);
+set count = count + 1;
+END while;
+set count = 1;
+label1: while count < 5 do
+insert into t3 values(v1, v2, count);
+if count > 5 then leave label1;
+END if;
+set count = count + 1;
+END while;
+else
+set @dummystring = 'temp value';
+END case;
+END//
+CALL sp2( 'insert' );
+SELECT * from t3 where f3 <=5 && f3 >= 0;
+f1 f2 f3
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 5
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 5
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+SELECT count(*) from t3;
+count(*)
+28
+CALL sp2( 'delete' );
+SELECT count(*) from t3;
+count(*)
+10
+CALL sp2 ('test');
+SELECT @dummystring;
+@dummystring
+temp value
+DROP PROCEDURE sp2;
+
+Testcase 4.1.2:
+---------------
+Ensure that all sub-clauses that should not be supported are disallowed with
+an appropriate error message. (case)
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp3;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742 (name char, address varchar(50), age_averylongfieldname_averylongname_1234569 smallint);
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case label1;
+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 'case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsav' at line 3
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: BEGIN
+case
+action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+END label1;
+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 'then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set' at line 5
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+then action = 'truncate' when
+truncate from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+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 'then action = 'truncate' when
+truncate from res_t3_itisalongname_1381742_itsave' at line 6
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2= 'address';
+set count = 1;
+case action
+when 'delete' then
+when 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+END case;
+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 'when 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_13' at line 10
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare count int default 1;
+declare done int default 0;
+declare continue handler for sqlstate 'HY000' set done=1;
+label1: loop
+case
+when action = 'delete' then
+label3:BEGIN
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+END label3;
+when action = 'insert' then
+label2: while count < 10 do
+BEGIN
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+values('xxxxxxxxxxxxxxxxxxx', '1231230981(*&(*&)(*&(', count);
+if done=1 then
+set count=10;
+END if;
+END;
+END while label2;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+if done=1 then
+leave label1;
+END if;
+END loop label1;
+SELECT count, done;
+END//
+DROP PROCEDURE sp3;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+if count > 10 then leave label1;
+else
+set count = count + 1;
+elseif count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+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 'elseif count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+EN' at line 9
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+else
+set count = count + 1;
+if count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+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 'else
+set count = count + 1;
+if count > 20 then
+leave label1;
+END if;
+iterate lab' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+elseif count > 20 then
+leave label1;
+else
+set count=count+1;
+END if;
+iterate label1;
+END loop label1;
+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 'elseif count > 20 then
+leave label1;
+else
+set count=count+1;
+END if;
+iterate lab' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+END if;
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;
+END loop label1;
+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 'END if;
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare i int default 10;
+if i > 20 then
+set i=25;
+END if
+declare count int;
+set count = 1;
+label1: loop
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;
+END loop label1;
+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 'declare count int;
+set count = 1;
+label1: loop
+if count > 20 then
+leave label1;
+' at line 7
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare idummy int default 10;
+declare count int;
+set count = 1;
+label1: loop
+BEGIN
+if count < 20 then
+BEGIN
+declare idummy2 int default 10;
+set count=count+1;
+END;
+else
+BEGIN
+SELECT idummy2;
+leave label1;
+END;
+END if;
+iterate label1;
+END;
+END loop label1;
+END//
+CALL sp4();
+ERROR 42S22: Unknown column 'idummy2' in 'field list'
+DROP PROCEDURE sp4;
+
+Testcase 4.3.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5()
+BEGIN
+declare count integer default 1;
+set count = 1;
+case
+else
+set count = 10;
+when count = 1 then
+set count = count + 1;
+END case;
+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 'else
+set count = 10;
+when count = 1 then
+set count = count + 1;
+END case;
+END' at line 6
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+when case count = 1 then
+set count = 10;
+when count = 2 then
+set count = count + 1;
+END case;
+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 'when case count = 1 then
+set count = 10;
+when count = 2 then
+set count = count' at line 3
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+END case;
+when count = 1 then
+set count = 10;
+when count = 2 then
+set count = count + 1;
+END case;
+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 'case;
+when count = 1 then
+set count = 10;
+when count = 2 then
+set count = coun' at line 3
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+when count = 1 then
+set count = 10;
+case when count = 2 then
+set count = count + 1;
+END case;
+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 'when count = 1 then
+set count = 10;
+case when count = 2 then
+set count = count' at line 3
+
+Testcase 4.3.6:
+---------------
+Ensure that all supported sub-clauses are supported only in the correct order (repeat).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+until count1 > 5
+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 'END repeat;
+until count1 > 5
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: until count1 > 5
+repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+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 'until count1 > 5
+repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1' at line 4
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: END repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+until count1 > 5
+repeat;
+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 'END repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+unt' at line 4
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+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 'END repeat;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+until count1 > 10;
+SELECT count1;
+END repeat;
+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 ';
+SELECT count1;
+END repeat;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1;
+until count1 < 0
+END repeat label1;
+SELECT count1;
+END//
+DROP PROCEDURE sp6;
+
+Testcase 4.3.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: loop
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+label1 iterate;
+END label1 loop;
+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 'iterate;
+END label1 loop;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: END loop;
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+iterate label1;
+loop;
+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 'END loop;
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END ' at line 3
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: iterate label1;
+loop
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+END loop label1;
+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 'iterate label1;
+loop
+set @dummystring = 'temp value';
+if count > 10 then leave l' at line 3
+
+Testcase 4.3.8:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+do while v1 > 0
+set v1 = v1 - 1;
+END while;
+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 v1 > 0
+set v1 = v1 - 1;
+END while;
+END' at line 4
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+do v1 > 0 while
+set v1 = v1 - 1;
+END while;
+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 'do v1 > 0 while
+set v1 = v1 - 1;
+END while;
+END' at line 4
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+END while;
+set v1 = v1 - 1;
+while v1 > 0 do;
+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;
+set v1 = v1 - 1;
+while v1 > 0 do;
+END' at line 4
+
+Testcase 4.3.12:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp12;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp12( )
+BEGIN
+declare count1 integer default 1;
+declare count2 int;
+label1: loop
+if count1 > 2 then leave label1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+label2: loop
+if count2 > 2 then leave label2;
+END if;
+set count2 = count2 + 1;
+END loop label1;
+set count1 = count1 + 1;
+iterate label1;
+END loop label2;
+END//
+ERROR 42000: End-label label2 without match
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.13:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp13;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp13( )
+BEGIN
+declare count1 integer default 1;
+lable1: loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop;
+END//
+CALL sp13();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 1
+xyz pqr 2
+DROP PROCEDURE sp13;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.14:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp14;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp14( )
+BEGIN
+declare count1 integer default 1;
+loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop label1;
+END//
+ERROR 42000: LEAVE with no matching label: lable1
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.15:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp15;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp15( )
+BEGIN
+declare count1 integer default 1;
+label1 loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop label1;
+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 'loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1' at line 4
+
+Testcase 4.3.16:
+----------------
+Ensure that every beginning label with the same scope must be unique.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp16;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE PROCEDURE sp16( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+set count2 = 1;
+label1: repeat
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( xyz , pqr, count1);
+until count2 > 3
+END repeat label1;
+until count1 > 3
+END repeat label1;
+END//
+ERROR 42000: Redefining label label1
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+declare count3 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+label1: repeat
+set count2 = count2 + 1;
+SELECT count2;
+until count2 > 3
+END repeat label1;
+SELECT count1;
+until count1 > 3
+END repeat label1;
+label1: repeat
+set count3 = count3 + 1;
+SELECT count3;
+until count3 > 3
+END repeat label1;
+END//
+ERROR 42000: Redefining label label1
+
+Testcase 4.3.17:
+--------------------------------------------------------------------------------
+
+Testcase 4.3.18:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp18;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE PROCEDURE sp18( )
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat label2;
+END//
+ERROR 42000: End-label label2 without match
+
+Testcase 4.3.19:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp19;
+CREATE PROCEDURE sp19( )
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat;
+END//
+CALL sp19();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+DROP PROCEDURE sp19;
+
+Testcase 4.3.20:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp20;
+CREATE PROCEDURE sp20( )
+BEGIN
+declare count1 integer default 1;
+repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat label1;
+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 'label1;
+END' at line 7
+
+Testcase 4.3.21:
+--------------------------------------------------------------------------------
+
+Testcase 4.3.22:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+label1: while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while label2;
+END while;
+END//
+ERROR 42000: End-label label2 without match
+
+Testcase 4.3.23:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while label1;
+END while;
+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 'label1;
+END while;
+END' at line 11
+
+Testcase 4.3.25:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+label1: while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while;
+END while;
+END//
+CALL sp25 ();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+xyz pqr 2
+xyz pqr 3
+xyz pqr 3
+DROP PROCEDURE sp25;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Section 3.1.4 - Checks for the global nature of stored procedures:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.4.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP DATABASE IF EXISTS d40401;
+CREATE PROCEDURE sp1 ( n char(20) )
+BEGIN
+SELECT n;
+END//
+CREATE DATABASE d40401;
+USE d40401;
+CALL db_storedproc.sp1('abcd');
+n
+abcd
+USE db_storedproc;
+DROP PROCEDURE sp1;
+DROP DATABASE d40401;
+
+Testcase 4.4.2:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+DROP DATABASE IF EXISTS d40402;
+CREATE FUNCTION fn1(n int) returns int
+BEGIN
+declare a int;
+set a = 9 * n;
+return a;
+END//
+CREATE DATABASE d40402;
+USE d40402;
+SELECT db_storedproc.fn1(100);
+db_storedproc.fn1(100)
+900
+SELECT db_storedproc.fn1(1000);
+db_storedproc.fn1(1000)
+9000
+CREATE FUNCTION db_storedproc.fn11(n int) returns int
+BEGIN
+declare a int;
+set a = 9 * n;
+return a;
+END//
+SELECT db_storedproc.fn11(100);
+db_storedproc.fn11(100)
+900
+SELECT db_storedproc.fn11(1000);
+db_storedproc.fn11(1000)
+9000
+USE db_storedproc;
+DROP FUNCTION fn1;
+DROP FUNCTION fn11;
+DROP DATABASE d40402;
+
+Testcase 4.4.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+CREATE DATABASE d1;
+CREATE DATABASE d2;
+USE d1;
+create table res_t41(a char(5), b char(10));
+insert into res_t41 values('abcde', 'a!@#$%^&*(');
+USE d2;
+create table res_t42(a char(5), b char(10));
+USE d1;
+CREATE PROCEDURE sp2(n char (20))
+BEGIN
+SELECT res_t41.a, res_t41.b into @a, @b from res_t41 where res_t41.b = n;
+insert into d2.res_t42 values (@a, @b);
+END//
+USE d2;
+CALL d1.sp2('a!@#$%^&*(');
+show warnings;
+Level Code Message
+SELECT * from d1.res_t41;
+a b
+abcde a!@#$%^&*(
+SELECT * from res_t42;
+a b
+abcde a!@#$%^&*(
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+Testcase 4.4.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+CREATE PROCEDURE sp3()
+BEGIN
+USE d1;
+END//
+ERROR 0A000: USE is not allowed in stored procedures
+USE db_storedproc;
+DROP DATABASE d1;
+
+Testcase 4.4.5:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+create table t43(a char(5), b char(10));
+insert into t43 values('abcde', 'a!@#$%^&*(');
+CREATE PROCEDURE d1.sp4()
+SELECT * from d1.t43;
+SELECT * from mysql.proc where specific_name = 'sp4';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 sp4 PROCEDURE sp4 SQL CONTAINS_SQL NO DEFINER SELECT * from d1.t43 root@localhost modified created
+USE db_storedproc;
+DROP DATABASE d1;
+CREATE DATABASE d1;
+USE d1;
+create table t44(a char(5), b char(10));
+SELECT * from mysql.proc where specific_name = 'sp4';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+USE db_storedproc;
+DROP DATABASE d1;
+
+Testcase 4.4.6:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5()
+SELECT * from db_storedproc.t4 limit 0, 10;
+SELECT db from mysql.proc where specific_name = 'sp5';
+db
+db_storedproc
+DROP PROCEDURE sp5;
+
+Testcase 4.4.7:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+drop table IF EXISTS t46;
+DROP PROCEDURE IF EXISTS sp6;
+create table t46(f1 char(20), f2 char(20));
+insert into t46 values ('abcd', 'wxyz');
+CREATE PROCEDURE db_storedproc.sp6()
+SELECT * from db_storedproc.t4 limit 0, 10;
+SELECT db from mysql.proc where specific_name = 'sp6';
+db
+db_storedproc
+drop table t46;
+DROP PROCEDURE sp6;
+
+Testcase 4.4.8:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+CREATE DATABASE d1;
+CREATE DATABASE d2;
+USE d1;
+CREATE PROCEDURE sp8 ( n char(20) ) sql security definer comment 'initial'
+ SELECT * from t1 where t1.f1 = n;
+USE d2;
+alter procedure d1.sp8 sql security definer comment 'updated';
+SELECT * from mysql.proc where specific_name='sp8' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 sp8 PROCEDURE sp8 SQL CONTAINS_SQL NO DEFINER n char(20) SELECT * from t1 where t1.f1 = n root@localhost modified created updated
+
+Testcase 4.4.9:
+--------------------------------------------------------------------------------
+USE d1;
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+CREATE FUNCTION d1.fn2(n int) returns int sql security invoker comment 'initial'
+BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END//
+USE d2;
+alter function d1.fn2 sql security definer comment 'updated';
+SELECT * from mysql.proc where specific_name='fn2' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 fn2 FUNCTION fn2 SQL CONTAINS_SQL NO DEFINER n int int(11) BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END root@localhost modified created updated
+
+Testcase 4.4.10:
+--------------------------------------------------------------------------------
+USE d1;
+CREATE PROCEDURE sp9 ( n char(20) )
+SELECT * from t1 where t1.f1 = n;
+USE d2;
+DROP PROCEDURE d1.sp9;
+SELECT * from mysql.proc where specific_name='sp9' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.4.11:
+--------------------------------------------------------------------------------
+USE d1;
+CREATE FUNCTION d1.fn3(n int) returns int
+BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END//
+USE d2;
+DROP FUNCTION d1.fn3;
+SELECT * from mysql.proc where specific_name='fn3' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+Section 3.1.5 - Parameter use checks:
+Functions with all data types
+--------------------------------------------------------------------------------
+SELECT 1 as 'bug_dec_num';
+bug_dec_num
+1
+
+.
+FIXME: There are differences with datatypes DECIMAL and NUMERIC if large
+FIXME: exponent values are used. The diffs are shown only on some machines like
+FIXME: AIX52 and HPUX11. Until this has been solved we use numbers that
+FIXME: *should* be equal to the exponent representation but have no exponents
+FIXME: and use the specified count of *0*s instead.
+FIXME: In the source file these tests are marked with the comment hpux11
+.
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 bigint) returns bigint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn1(-9.22e+18);
+fn1(-9.22e+18)
+-9220000000000000000
+DROP FUNCTION IF EXISTS fn2;
+CREATE FUNCTION fn2( f1 bigint unsigned) returns bigint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn2(1.84e+19);
+fn2(1.84e+19)
+-46744073709551616
+DROP FUNCTION IF EXISTS fn3;
+CREATE FUNCTION fn3( f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn3(1.84e+17);
+fn3(1.84e+17)
+184000000000000000
+DROP FUNCTION IF EXISTS fn4;
+CREATE FUNCTION fn4( f1 bigint zerofill) returns bigint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn4(-9.22e+15);
+fn4(-9.22e+15)
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn5;
+CREATE FUNCTION fn5( f1 decimal) returns decimal
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn5(-1.00e+09);
+fn5(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn6;
+CREATE FUNCTION fn6( f1 decimal (0)) returns decimal (0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn6(-1.00e+09);
+fn6(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn7;
+CREATE FUNCTION fn7( f1 decimal (0) unsigned) returns decimal (0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn7(99999999999);
+fn7(99999999999)
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn8;
+CREATE FUNCTION fn8( f1 decimal (0) unsigned zerofill) returns decimal (0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn8(999999999);
+fn8(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn9;
+CREATE FUNCTION fn9( f1 decimal (0) zerofill) returns decimal (0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn9(-1.00e+09);
+fn9(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn10;
+CREATE FUNCTION fn10( f1 decimal (0, 0)) returns decimal (0, 0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn10(-1.00e+09);
+fn10(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn11;
+CREATE FUNCTION fn11( f1 decimal (0, 0) unsigned) returns decimal (0, 0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn11(99999999999);
+fn11(99999999999)
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn12;
+CREATE FUNCTION fn12( f1 decimal (0, 0) unsigned zerofill) returns decimal (0, 0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn12(999999999);
+fn12(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn13;
+CREATE FUNCTION fn13( f1 decimal (0, 0) zerofill) returns decimal (0, 0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn13(-1.00e+09);
+fn13(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn14;
+CREATE FUNCTION fn14( f1 decimal (63, 30)) returns decimal (63, 30)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn14(-1.00e+21);
+fn14(-1.00e+21)
+-1000000000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn15;
+CREATE FUNCTION fn15( f1 decimal (63, 30) unsigned) returns decimal (63, 30) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn15(1.00e+16);
+fn15(1.00e+16)
+10000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn16;
+CREATE FUNCTION fn16( f1 decimal (63, 30) unsigned zerofill) returns decimal (63, 30) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn16(1.00e+16);
+fn16(1.00e+16)
+000000000000000010000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn17;
+CREATE FUNCTION fn17( f1 decimal (63, 30) zerofill) returns decimal (63, 30) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn17(-1.00e+21);
+fn17(-1.00e+21)
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn18_d;
+CREATE FUNCTION fn18_d( f1 decimal (64)) returns decimal (64)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn18_d( -1000000000000000000000000000000 );
+fn18_d( -1000000000000000000000000000000 )
+-1000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn19_du;
+CREATE FUNCTION fn19_du( f1 decimal (64) unsigned) returns decimal (64) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn19_du( 100000000000000000000 );
+fn19_du( 100000000000000000000 )
+100000000000000000000
+DROP FUNCTION IF EXISTS fn20_duz;
+CREATE FUNCTION fn20_duz( f1 decimal (64) unsigned zerofill) returns decimal (64) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn20_duz( 1000000000000000000000000 );
+fn20_duz( 1000000000000000000000000 )
+0000000000000000000000000000000000000001000000000000000000000000
+DROP FUNCTION IF EXISTS fn21_d_z;
+CREATE FUNCTION fn21_d_z( f1 decimal (64) zerofill) returns decimal (64) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn21_d_z(1.00e+00);
+fn21_d_z(1.00e+00)
+0000000000000000000000000000000000000000000000000000000000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn22;
+CREATE FUNCTION fn22( f1 decimal unsigned) returns decimal unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn22(1.00e+00);
+fn22(1.00e+00)
+10
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn23;
+CREATE FUNCTION fn23( f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn23(1.00e+00);
+fn23(1.00e+00)
+0000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn24;
+CREATE FUNCTION fn24( f1 decimal zerofill) returns decimal zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn24(-1.00e+09);
+fn24(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn25;
+CREATE FUNCTION fn25( f1 double) returns double
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn25(1.00e+00);
+fn25(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn26;
+CREATE FUNCTION fn26( f1 double unsigned) returns double unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn26(1.00e+00);
+fn26(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn27;
+CREATE FUNCTION fn27( f1 double unsigned zerofill) returns double unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn27(1.00e+00);
+fn27(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn28;
+CREATE FUNCTION fn28( f1 double zerofill) returns double zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn28(1.00e+00);
+fn28(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn29;
+CREATE FUNCTION fn29( f1 float) returns float
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn29(1.00e+00);
+fn29(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn30;
+CREATE FUNCTION fn30( f1 float unsigned) returns float unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn30(1.00e+00);
+fn30(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn31;
+CREATE FUNCTION fn31( f1 float unsigned zerofill) returns float unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn31(1.00e+00);
+fn31(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn32;
+CREATE FUNCTION fn32( f1 float zerofill) returns float zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn32(1.00e+00);
+fn32(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn33;
+CREATE FUNCTION fn33( f1 float(0)) returns float(0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn33(1.00e+00);
+fn33(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn34;
+CREATE FUNCTION fn34( f1 float(0) unsigned) returns float(0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn34(1.00e+00);
+fn34(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn35;
+CREATE FUNCTION fn35( f1 float(0) unsigned zerofill) returns float(0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn35(1.00e+00);
+fn35(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn36;
+CREATE FUNCTION fn36( f1 float(0) zerofill) returns float(0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn36(1.00e+00);
+fn36(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn37;
+CREATE FUNCTION fn37( f1 float(23)) returns float(23)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn37(1.00e+00);
+fn37(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn38;
+CREATE FUNCTION fn38( f1 float(23) unsigned) returns float(23) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn38(1.00e+00);
+fn38(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn39;
+CREATE FUNCTION fn39( f1 float(23) unsigned zerofill) returns float(23) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn39(1.00e+00);
+fn39(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn40;
+CREATE FUNCTION fn40( f1 float(23) zerofill) returns float(23) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn40(1.00e+00);
+fn40(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn41;
+CREATE FUNCTION fn41( f1 float(24)) returns float(24)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn41(1.00e+00);
+fn41(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn42;
+CREATE FUNCTION fn42( f1 float(24) unsigned) returns float(24) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn42(1.00e+00);
+fn42(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn43;
+CREATE FUNCTION fn43( f1 float(24) unsigned zerofill) returns float(24) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn43(1.00e+00);
+fn43(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn44;
+CREATE FUNCTION fn44( f1 float(24) zerofill) returns float(24) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn44(1.00e+00);
+fn44(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn45;
+CREATE FUNCTION fn45( f1 float(53)) returns float(53)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn45(1.00e+00);
+fn45(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn46;
+CREATE FUNCTION fn46( f1 float(53) unsigned) returns float(53) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn46(1.00e+00);
+fn46(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn47;
+CREATE FUNCTION fn47( f1 float(53) unsigned zerofill) returns float(53) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn47(1.00e+00);
+fn47(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn48;
+CREATE FUNCTION fn48( f1 float(53) zerofill) returns float(53) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn48(1.00e+00);
+fn48(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn49;
+CREATE FUNCTION fn49( f1 int) returns int
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn49(-2.15e+09);
+fn49(-2.15e+09)
+-2147483638
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn50;
+CREATE FUNCTION fn50( f1 int unsigned) returns int unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn50(4.29e+09);
+fn50(4.29e+09)
+4290000000
+DROP FUNCTION IF EXISTS fn51;
+CREATE FUNCTION fn51( f1 int unsigned zerofill) returns int unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn51(4.29e+09);
+fn51(4.29e+09)
+4290000000
+DROP FUNCTION IF EXISTS fn52;
+CREATE FUNCTION fn52( f1 int zerofill) returns int zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn52(2.15e+08);
+fn52(2.15e+08)
+215000000
+DROP FUNCTION IF EXISTS fn53;
+CREATE FUNCTION fn53( f1 mediumint) returns mediumint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn53(-8388600);
+fn53(-8388600)
+-8388598
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn54;
+CREATE FUNCTION fn54( f1 mediumint unsigned) returns mediumint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn54(16777201);
+fn54(16777201)
+16777202
+DROP FUNCTION IF EXISTS fn55;
+CREATE FUNCTION fn55( f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn55(16777210);
+fn55(16777210)
+16777210
+DROP FUNCTION IF EXISTS fn56;
+CREATE FUNCTION fn56( f1 mediumint zerofill) returns mediumint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn56(-8388601);
+fn56(-8388601)
+16777215
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn57;
+CREATE FUNCTION fn57( f1 numeric) returns numeric
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn57(-999999999);
+fn57(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn58;
+CREATE FUNCTION fn58( f1 numeric (0)) returns numeric (0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn58(-999999999);
+fn58(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn59;
+CREATE FUNCTION fn59( f1 numeric (0) unsigned) returns numeric (0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn59(9999999999);
+fn59(9999999999)
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn60;
+CREATE FUNCTION fn60( f1 numeric (0) unsigned zerofill) returns numeric (0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn60(99999999);
+fn60(99999999)
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn61;
+CREATE FUNCTION fn61( f1 numeric (0) zerofill) returns numeric (0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn61(-99999999);
+fn61(-99999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn62;
+CREATE FUNCTION fn62( f1 numeric (0, 0)) returns numeric (0, 0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn62(-999999999);
+fn62(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn63;
+CREATE FUNCTION fn63( f1 numeric (0, 0) unsigned) returns numeric (0, 0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn63(9999999999);
+fn63(9999999999)
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn64;
+CREATE FUNCTION fn64( f1 numeric (0, 0) unsigned zerofill) returns numeric (0, 0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn64(99999999);
+fn64(99999999)
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn65;
+CREATE FUNCTION fn65( f1 numeric (0, 0) zerofill) returns numeric (0, 0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn65(-99999999);
+fn65(-99999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn66;
+CREATE FUNCTION fn66( f1 numeric (63, 30)) returns numeric (63, 30)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn66(-1e+36);
+fn66(-1e+36)
+-999999999999999999999999999999989.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn67;
+CREATE FUNCTION fn67( f1 numeric (63, 30) unsigned) returns numeric (63, 30) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn67(1e+36);
+fn67(1e+36)
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn68;
+CREATE FUNCTION fn68( f1 numeric (63, 30) unsigned zerofill) returns numeric (63, 30) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn68(1e+36);
+fn68(1e+36)
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn69;
+CREATE FUNCTION fn69( f1 numeric (63, 30) zerofill) returns numeric (63, 30) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn69(-1e+36);
+fn69(-1e+36)
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn70_n;
+CREATE FUNCTION fn70_n( f1 numeric (64)) returns numeric (64)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn70_n( -1000000000000000000000000000000 );
+fn70_n( -1000000000000000000000000000000 )
+-1000000000000000000000000000000
+SELECT fn70_n( -10000000000000000000000000000000000000000 );
+fn70_n( -10000000000000000000000000000000000000000 )
+-10000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn71_nu;
+CREATE FUNCTION fn71_nu( f1 numeric (64) unsigned) returns numeric (64) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn71_nu( 10000000000000000000000000000000000000000 );
+fn71_nu( 10000000000000000000000000000000000000000 )
+10000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn72_nuz;
+CREATE FUNCTION fn72_nuz( f1 numeric (64) unsigned zerofill) returns numeric (64) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn72_nuz( 10000000000000000000000000000000000000000 );
+fn72_nuz( 10000000000000000000000000000000000000000 )
+0000000000000000000000010000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn73_n_z;
+CREATE FUNCTION fn73_n_z( f1 numeric (64) zerofill) returns numeric (64) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn73_n_z( 10000000000000000000000000000000000000000 );
+fn73_n_z( 10000000000000000000000000000000000000000 )
+0000000000000000000000010000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn74;
+CREATE FUNCTION fn74( f1 numeric unsigned) returns numeric unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn74(999999999);
+fn74(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn75;
+CREATE FUNCTION fn75( f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn75(999999999);
+fn75(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn76;
+CREATE FUNCTION fn76( f1 numeric zerofill) returns numeric zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn76(-999999999);
+fn76(-999999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn77;
+CREATE FUNCTION fn77( f1 real) returns real
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn77(1.1);
+fn77(1.1)
+1.1
+DROP FUNCTION IF EXISTS fn78;
+CREATE FUNCTION fn78( f1 real unsigned) returns real unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn78(1.1);
+fn78(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn79;
+CREATE FUNCTION fn79( f1 real unsigned zerofill) returns real unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn79(1.1);
+fn79(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn80;
+CREATE FUNCTION fn80( f1 real zerofill) returns real zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn80(1.1);
+fn80(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn81;
+CREATE FUNCTION fn81( f1 smallint) returns smallint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn81(-32701);
+fn81(-32701)
+-32702
+DROP FUNCTION IF EXISTS fn82;
+CREATE FUNCTION fn82( f1 smallint unsigned) returns smallint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn82(65531);
+fn82(65531)
+65532
+DROP FUNCTION IF EXISTS fn83;
+CREATE FUNCTION fn83( f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn83(65531);
+fn83(65531)
+65532
+DROP FUNCTION IF EXISTS fn84;
+CREATE FUNCTION fn84( f1 smallint zerofill) returns smallint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn84(-32601);
+fn84(-32601)
+65535
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn85;
+CREATE FUNCTION fn85( f1 tinyint) returns tinyint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn85(-115);
+fn85(-115)
+-116
+DROP FUNCTION IF EXISTS fn86;
+CREATE FUNCTION fn86( f1 tinyint unsigned) returns tinyint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn86(251);
+fn86(251)
+252
+DROP FUNCTION IF EXISTS fn87;
+CREATE FUNCTION fn87( f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn87(201);
+fn87(201)
+202
+DROP FUNCTION IF EXISTS fn88;
+CREATE FUNCTION fn88( f1 tinyint zerofill) returns tinyint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn88(-101);
+fn88(-101)
+255
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn89;
+CREATE FUNCTION fn89( f1 enum('1enum', '2enum')) returns enum('1enum', '2enum')
+BEGIN
+if f1 eq "1enum" then
+set f1 = '2enum';
+else
+set f1 = '1enum';
+END if;
+return f1;
+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 'eq "1enum" then
+set f1 = '2enum';
+else
+set f1 = '1enum';
+END if;
+return f1;
+END' at line 3
+SELECT fn89( '1enum');
+ERROR 42000: FUNCTION d1.fn89 does not exist
+DROP FUNCTION IF EXISTS fn90;
+CREATE FUNCTION fn90( f1 set("1set", "2set")) returns set("1set", "2set")
+BEGIN
+if(f1 == "1set") then
+set f1 = "2set";
+else
+set f1 = "1set";
+END if;
+return f1;
+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 '== "1set") then
+set f1 = "2set";
+else
+set f1 = "1set";
+END if;
+return f1;
+END' at line 3
+SELECT fn90( '1set');
+ERROR 42000: FUNCTION d1.fn90 does not exist
+DROP FUNCTION IF EXISTS fn91;
+CREATE FUNCTION fn91( f1 date) returns date
+BEGIN
+set f1 = adddate(f1, interval 31 day);
+return f1;
+END//
+SELECT fn91('1997-12-31');
+fn91('1997-12-31')
+1998-01-31
+DROP FUNCTION IF EXISTS fn92;
+CREATE FUNCTION fn92( f1 time) returns time
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998');
+return f1;
+END//
+SELECT fn92( '23:59:59.999999');
+fn92( '23:59:59.999999')
+25:59:59
+DROP FUNCTION IF EXISTS fn93;
+CREATE FUNCTION fn93( f1 datetime) returns datetime
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002');
+return f1;
+END//
+SELECT fn93('1997-12-31 23:59:59.999999');
+fn93('1997-12-31 23:59:59.999999')
+1998-01-02 01:01:00
+DROP FUNCTION IF EXISTS fn94;
+CREATE FUNCTION fn94( f1 char) returns char
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn94( 'h');
+fn94( 'h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn95;
+CREATE FUNCTION fn95( f1 char ascii) returns char ascii
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn95('h');
+fn95('h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn96;
+CREATE FUNCTION fn96( f1 char binary) returns char binary
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn96( 'h');
+fn96( 'h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn97;
+CREATE FUNCTION fn97( f1 longtext) returns longtext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn97( 'world');
+fn97( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn98;
+CREATE FUNCTION fn98( f1 mediumtext) returns mediumtext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn98( 'world');
+fn98( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn99;
+CREATE FUNCTION fn99( f1 text) returns text
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn99( 'world');
+fn99( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn100;
+CREATE FUNCTION fn100( f1 tinytext) returns tinytext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn100( 'world');
+fn100( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn101;
+CREATE FUNCTION fn101( f1 year) returns year
+BEGIN
+set f1 = f1 + 10;
+return f1;
+END//
+SELECT fn101(51);
+fn101(51)
+2061
+DROP FUNCTION IF EXISTS fn102;
+CREATE FUNCTION fn102( f1 year(4)) returns year(4)
+BEGIN
+set f1 = f1 + 51;
+return f1;
+END//
+SELECT fn102(1982);
+fn102(1982)
+2033
+DROP FUNCTION IF EXISTS fn103;
+CREATE FUNCTION fn103( f1 geometrycollection) returns geometrycollection
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\
+
+DROP FUNCTION IF EXISTS fn104;
+CREATE FUNCTION fn104( f1 linestring) returns linestring
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@')
+
+DROP FUNCTION IF EXISTS fn105;
+CREATE FUNCTION fn105( f1 point) returns point
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@')
+
+DROP FUNCTION IF EXISTS fn106;
+CREATE FUNCTION fn106( f1 polygon) returns polygon
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\
+
+DROP FUNCTION IF EXISTS fn107;
+CREATE FUNCTION fn107( f1 timestamp) returns timestamp
+BEGIN
+set f1 = now();
+return f1;
+END//
+SELECT fn107(20050510080451);
+fn107(20050510080451)
+returned
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp1(-9.22e+18);
+f1
+-9220000000000000000
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( f1 bigint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp2(1.84e+19);
+f1
+18400000000000000000
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( f1 bigint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp3(1.84e+17);
+f1
+00184000000000000000
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4( f1 bigint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp4(-9.22e+15);
+f1
+00000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5( f1 decimal)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: default (10) for DECIMAL not checked, decimal digits shown although not defined
+CALL sp5(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( f1 decimal (0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp6(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7( f1 decimal (0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp7(99999999999);
+f1
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8( f1 decimal (0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp8(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp9;
+CREATE PROCEDURE sp9( f1 decimal (0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp9(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp10;
+CREATE PROCEDURE sp10( f1 decimal (0, 0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp10(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11( f1 decimal (0, 0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp11(99999999999);
+f1
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp12;
+CREATE PROCEDURE sp12( f1 decimal (0, 0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp12(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp13;
+CREATE PROCEDURE sp13( f1 decimal (0, 0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp13(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp14;
+CREATE PROCEDURE sp14( f1 decimal (63, 30))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp14(-1.00e+21);
+f1
+-1000000000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp15;
+CREATE PROCEDURE sp15( f1 decimal (63, 30) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp15(1.00e+16);
+f1
+10000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( f1 decimal (63, 30) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp16(1.00e+16);
+f1
+000000000000000010000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp17;
+CREATE PROCEDURE sp17( f1 decimal (63, 30) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp17(-1.00e+21);
+f1
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp18_d;
+CREATE PROCEDURE sp18_d( f1 decimal (64))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp18_d( -1000000000000000000000000000000 );
+f1
+-1000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp19_du;
+CREATE PROCEDURE sp19_du( f1 decimal (64) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp19_du( 100000000000000000000 );
+f1
+100000000000000000000
+CALL sp19_du( 1000000000000000000000000 );
+f1
+1000000000000000000000000
+DROP PROCEDURE IF EXISTS sp20_duz;
+CREATE PROCEDURE sp20_duz( f1 decimal (64) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp20_duz( 100000000000000000000 );
+f1
+0000000000000000000000000000000000000000000100000000000000000000
+CALL sp20_duz( 1000000000000000000000000 );
+f1
+0000000000000000000000000000000000000001000000000000000000000000
+DROP PROCEDURE IF EXISTS sp21;
+CREATE PROCEDURE sp21( f1 decimal (64) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp21(1.00e+00);
+f1
+0000000000000000000000000000000000000000000000000000000000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( f1 decimal unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp22(1.00e+00);
+f1
+10
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( f1 decimal unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp23(1.00e+00);
+f1
+0000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp24;
+CREATE PROCEDURE sp24( f1 decimal zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp24(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( f1 double)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp25(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp26;
+CREATE PROCEDURE sp26( f1 double unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp26(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp27;
+CREATE PROCEDURE sp27( f1 double unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp27(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp28;
+CREATE PROCEDURE sp28( f1 double zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp28(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp29;
+CREATE PROCEDURE sp29( f1 float)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp29(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp30;
+CREATE PROCEDURE sp30( f1 float unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp30(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp31;
+CREATE PROCEDURE sp31( f1 float unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp31(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp32;
+CREATE PROCEDURE sp32( f1 float zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp32(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp33;
+CREATE PROCEDURE sp33( f1 float(0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp33(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp34;
+CREATE PROCEDURE sp34( f1 float(0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp34(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp35;
+CREATE PROCEDURE sp35( f1 float(0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp35(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp36;
+CREATE PROCEDURE sp36( f1 float(0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp36(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp37;
+CREATE PROCEDURE sp37( f1 float(23))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp37(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp38;
+CREATE PROCEDURE sp38( f1 float(23) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp38(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp39;
+CREATE PROCEDURE sp39( f1 float(23) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp39(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp40;
+CREATE PROCEDURE sp40( f1 float(23) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp40(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp41;
+CREATE PROCEDURE sp41( f1 float(24))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp41(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp42;
+CREATE PROCEDURE sp42( f1 float(24) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp42(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp43;
+CREATE PROCEDURE sp43( f1 float(24) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp43(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp44;
+CREATE PROCEDURE sp44( f1 float(24) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp44(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp45;
+CREATE PROCEDURE sp45( f1 float(53))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp45(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp46;
+CREATE PROCEDURE sp46( f1 float(53) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp46(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp47;
+CREATE PROCEDURE sp47( f1 float(53) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp47(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp48;
+CREATE PROCEDURE sp48( f1 float(53) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp48(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp49;
+CREATE PROCEDURE sp49( f1 int)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp49(-2.15e+09);
+f1
+-2147483638
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp50;
+CREATE PROCEDURE sp50( f1 int unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp50(4.29e+09);
+f1
+4290000000
+DROP PROCEDURE IF EXISTS sp51;
+CREATE PROCEDURE sp51( f1 int unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp51(4.29e+09);
+f1
+4290000000
+DROP PROCEDURE IF EXISTS sp52;
+CREATE PROCEDURE sp52( f1 int zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp52(2.15e+08);
+f1
+0215000000
+DROP PROCEDURE IF EXISTS sp53;
+CREATE PROCEDURE sp53( f1 mediumint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp53(-8388600);
+f1
+-8388598
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp54;
+CREATE PROCEDURE sp54( f1 mediumint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp54(16777201);
+f1
+16777202
+DROP PROCEDURE IF EXISTS sp55;
+CREATE PROCEDURE sp55( f1 mediumint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp55(16777210);
+f1
+16777210
+DROP PROCEDURE IF EXISTS sp56;
+CREATE PROCEDURE sp56( f1 mediumint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp56(-8388601);
+f1
+16777215
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp57;
+CREATE PROCEDURE sp57( f1 numeric)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp57(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp58;
+CREATE PROCEDURE sp58( f1 numeric (0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp58(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp59;
+CREATE PROCEDURE sp59( f1 numeric (0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp59(9999999999);
+f1
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp60;
+CREATE PROCEDURE sp60( f1 numeric (0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp60(99999999);
+f1
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp61;
+CREATE PROCEDURE sp61( f1 numeric (0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp61(-99999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp62;
+CREATE PROCEDURE sp62( f1 numeric (0, 0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp62(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp63;
+CREATE PROCEDURE sp63( f1 numeric (0, 0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp63(9999999999);
+f1
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp64;
+CREATE PROCEDURE sp64( f1 numeric (0, 0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp64(99999999);
+f1
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp65;
+CREATE PROCEDURE sp65( f1 numeric (0, 0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp65(-99999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp66_n;
+CREATE PROCEDURE sp66_n( f1 numeric (63, 30))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp66_n( -1000000000000000000000000000000000000 );
+f1
+-999999999999999999999999999999989.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp67_nu;
+CREATE PROCEDURE sp67_nu( f1 numeric (63, 30) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp67_nu( 1000000000000000000000000000000000000 );
+f1
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp68_nuz;
+CREATE PROCEDURE sp68_nuz( f1 numeric (63, 30) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp68_nuz( 1000000000000000000000000000000000000 );
+f1
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp69_n_z;
+CREATE PROCEDURE sp69_n_z( f1 numeric (63, 30) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp69_n_z( -1000000000000000000000000000000000000 );
+f1
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp70_n;
+CREATE PROCEDURE sp70_n( f1 numeric (64))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp70_n( -10000000000000000000000000000000000000000 );
+f1
+-10000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp71_nu;
+CREATE PROCEDURE sp71_nu( f1 numeric (64) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp71_nu( 10000000000000000000000000000000000000000 );
+f1
+10000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp72_nuz;
+CREATE PROCEDURE sp72_nuz( f1 numeric (64) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp72_nuz( 10000000000000000000000000000000000000000 );
+f1
+0000000000000000000000010000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp73_n_z;
+CREATE PROCEDURE sp73_n_z( f1 numeric (64) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp73_n_z( 10000000000000000000000000000000000000000 );
+f1
+0000000000000000000000010000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp74;
+CREATE PROCEDURE sp74( f1 numeric unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp74(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp75;
+CREATE PROCEDURE sp75( f1 numeric unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp75(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp76;
+CREATE PROCEDURE sp76( f1 numeric zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp76(-999999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp77;
+CREATE PROCEDURE sp77( f1 real)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp77(1.1);
+f1
+1.1
+DROP PROCEDURE IF EXISTS sp78;
+CREATE PROCEDURE sp78( f1 real unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp78(1.1);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp79;
+CREATE PROCEDURE sp79( f1 real unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp79(1.1);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp80;
+CREATE PROCEDURE sp80( f1 real zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp80(1.1);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp81;
+CREATE PROCEDURE sp81( f1 smallint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp81(-32701);
+f1
+-32702
+DROP PROCEDURE IF EXISTS sp82;
+CREATE PROCEDURE sp82( f1 smallint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp82(65531);
+f1
+65532
+DROP PROCEDURE IF EXISTS sp83;
+CREATE PROCEDURE sp83( f1 smallint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp83(65531);
+f1
+65532
+DROP PROCEDURE IF EXISTS sp84;
+CREATE PROCEDURE sp84( f1 smallint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp84(-32601);
+f1
+65535
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp85;
+CREATE PROCEDURE sp85( f1 tinyint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp85(-115);
+f1
+-116
+DROP PROCEDURE IF EXISTS sp86;
+CREATE PROCEDURE sp86( f1 tinyint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp86(251);
+f1
+252
+DROP PROCEDURE IF EXISTS sp87;
+CREATE PROCEDURE sp87( f1 tinyint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp87(201);
+f1
+202
+DROP PROCEDURE IF EXISTS sp88;
+CREATE PROCEDURE sp88( f1 tinyint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp88(-101);
+f1
+255
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp89;
+DROP PROCEDURE IF EXISTS sp90;
+DROP PROCEDURE IF EXISTS sp91;
+CREATE PROCEDURE sp91( f1 date)
+BEGIN
+set f1 = adddate(f1, interval 31 day);
+SELECT f1;
+END//
+CALL sp91( '1997-12-31');
+f1
+1998-01-31
+DROP PROCEDURE IF EXISTS sp92;
+CREATE PROCEDURE sp92( f1 time)
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998');
+SELECT f1;
+END//
+CALL sp92( '23:59:59.999999');
+f1
+25:59:59
+DROP PROCEDURE IF EXISTS sp93;
+CREATE PROCEDURE sp93( f1 datetime)
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002');
+SELECT f1;
+END//
+CALL sp93('1997-12-31 23:59:59.999999');
+f1
+1998-01-02 01:01:00
+DROP PROCEDURE IF EXISTS sp94;
+CREATE PROCEDURE sp94( f1 char)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp94( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp95;
+CREATE PROCEDURE sp95( f1 char ascii)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp95( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp96;
+CREATE PROCEDURE sp96( f1 char binary)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp96( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp97;
+CREATE PROCEDURE sp97( f1 longtext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp97( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp98;
+CREATE PROCEDURE sp98( f1 mediumtext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp98( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp99;
+CREATE PROCEDURE sp99( f1 text)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp99( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp100;
+CREATE PROCEDURE sp100( f1 tinytext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp100( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp101;
+CREATE PROCEDURE sp101( f1 year)
+BEGIN
+set f1 = f1 + 10;
+SELECT f1;
+END//
+CALL sp101(51);
+f1
+2061
+DROP PROCEDURE IF EXISTS sp102;
+CREATE PROCEDURE sp102( f1 year(4))
+BEGIN
+set f1 = f1 + 51;
+SELECT f1;
+END//
+CALL sp102(1982);
+f1
+2033
+DROP PROCEDURE IF EXISTS sp103;
+CREATE PROCEDURE sp103( f1 geometrycollection)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp104;
+CREATE PROCEDURE sp104( f1 linestring)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp105;
+CREATE PROCEDURE sp105( f1 point)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+f1
+
+DROP PROCEDURE IF EXISTS sp106;
+CREATE PROCEDURE sp106( f1 polygon)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp107;
+CREATE PROCEDURE sp107( f1 timestamp)
+BEGIN
+set f1 = now() + 0 + f1;
+SELECT f1;
+END//
+CALL sp107(2.00e+13);
+f1
+returned
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( in f1 year, inout f2 year, out f3 year, in f4 year,
+inout f5 year, out f6 year, in f7 year(4), inout f8 year(4),
+out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute01;
+CREATE PROCEDURE spexecute01()
+BEGIN
+declare var1 year;
+declare var2 year;
+declare var3 year;
+declare var4 year;
+declare var5 year(4);
+declare var6 year(4);
+declare var7 year(4);
+declare var8 year(4);
+set var1 = 51;
+set var3 = 51;
+set var5 = 1982;
+set var7 = 1982;
+CALL sp1(51, var1, var2, 51, var3, var4, 1982, var5, var6, 1982, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute01();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2061 2061 2071 2061 2061 2071 2033 2033 2084 2033 2033 2084
+var1 var2 var3 var4 var5 var6 var7 var8
+2061 2071 2061 2071 2033 2084 2033 2084
+DROP PROCEDURE spexecute01;
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text,
+out f6 text, in f7 tinytext, inout f8 tinytext, out f9 tinytext,
+in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute02;
+CREATE PROCEDURE spexecute02()
+BEGIN
+declare var1 text;
+declare var2 text;
+declare var3 text;
+declare var4 text;
+declare var5 tinytext;
+declare var6 tinytext;
+declare var7 tinytext;
+declare var8 tinytext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp2( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute02();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute02;
+DROP PROCEDURE sp2;
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( in f1 char, inout f2 char, out f3 char, in f4 char ascii,
+inout f5 char ascii, out f6 char ascii, in f7 longtext,
+inout f8 longtext, out f9 longtext, in f10 mediumtext,
+inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f9);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute03;
+CREATE PROCEDURE spexecute03()
+BEGIN
+declare var1 char;
+declare var2 char;
+declare var3 char ascii;
+declare var4 char ascii;
+declare var5 longtext;
+declare var6 longtext;
+declare var7 mediumtext;
+declare var8 mediumtext;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp3( 'h', var1, var2, 'h', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute03();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a helloworld helloworld NULL helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a helloworld NULL helloworld hellohelloworld
+DROP PROCEDURE spexecute03;
+DROP PROCEDURE sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4( in f1 bigint, inout f2 bigint, out f3 bigint,
+in f4 bigint, inout f5 bigint, out f6 bigint,
+in f7 bigint, inout f8 bigint, out f9 bigint,
+in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute04;
+CREATE PROCEDURE spexecute04()
+BEGIN
+declare var1 bigint;
+declare var2 bigint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -9.22e+18;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp4(-9.22e+18, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute04();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+6744073709551616 6744073709551616 -9220000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute04;
+DROP PROCEDURE sp4;
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( in f1 timestamp, inout f2 timestamp, out f3 timestamp, in f4 timestamp, inout f5 timestamp, out f6 timestamp, in f7 timestamp, inout f8 timestamp, out f9 timestamp, in f10 timestamp, inout f11 timestamp, out f12 timestamp)
+BEGIN
+set f1 = now() + 0 + f1; set f2 = now() + 0 + f2; set f3 = now() + 0 + f1;
+set f4 = now() + 0 + f4; set f5 = now() + 0 + f5; set f6 = now() + 0 + f5;
+set f7 = now() + 0 + f7; set f8 = now() + 0 + f8; set f9 = now() + 0 + f8;
+set f10 = now() + 0 + f10; set f11 = now() + 0 + f11; set f12 = now() + 0 + f11;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute06;
+CREATE PROCEDURE spexecute06()
+BEGIN
+declare var1 timestamp;
+declare var2 timestamp;
+declare var3 timestamp;
+declare var4 timestamp;
+declare var5 timestamp;
+declare var6 timestamp;
+declare var7 timestamp;
+declare var8 timestamp;
+set var1 = 2.00e+13;
+set var3 = 2.00e+13;
+set var5 = 2.00e+13;
+set var7 = 2.00e+13;
+CALL sp6(2.00e+13, var1, var2, 2.00e+13, var3, var4, 2.00e+13, var5, var6, 2.00e+13, var7, var8);
+END//
+CALL spexecute06();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+returned returned returned returned returned returned returned returned returned returned returned returned
+DROP PROCEDURE spexecute06;
+DROP PROCEDURE sp6;
+DROP PROCEDURE IF EXISTS sp07;
+CREATE PROCEDURE sp07( IN f1 BIGINT UNSIGNED,
+INOUT f2 BIGINT UNSIGNED,
+OUT f3 BIGINT UNSIGNED,
+IN f4 BIGINT,
+INOUT f5 BIGINT,
+OUT f6 BIGINT,
+IN f7 BIGINT,
+INOUT f8 BIGINT,
+OUT f9 BIGINT,
+IN f10 BIGINT,
+INOUT f11 BIGINT,
+OUT f12 BIGINT)
+BEGIN
+SELECT f1, f2, f3;
+SELECT f4, f5, f6;
+SELECT f7, f8, f9;
+SELECT f10, f11, f12;
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f3 * 2); set f3 = (f3 - 10); set f3 = (f3 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3;
+SELECT f4, f5, f6;
+SELECT f7, f8, f9;
+SELECT f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute07;
+CREATE PROCEDURE spexecute07()
+BEGIN
+declare var1 bigint unsigned;
+declare var2 bigint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.84e+19;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+SELECT var1, var2;
+SELECT var3, var4;
+SELECT var5, var6;
+SELECT var7, var8;
+CALL sp07( var1, var1, var2, var3, var3, var4,
+var5, var5, var6, var7, var7, var8 );
+SELECT var1, var2;
+SELECT var3, var4;
+SELECT var5, var6;
+SELECT var7, var8;
+END//
+CALL spexecute07();
+var1 var2
+18400000000000000000 NULL
+var3 var4
+-9220000000000000000 NULL
+var5 var6
+-9220000000000000000 NULL
+var7 var8
+-9220000000000000000 NULL
+f1 f2 f3
+18400000000000000000 18400000000000000000 NULL
+f4 f5 f6
+-9220000000000000000 -9220000000000000000 NULL
+f7 f8 f9
+-9220000000000000000 -9220000000000000000 NULL
+f10 f11 f12
+-9220000000000000000 -9220000000000000000 NULL
+f1 f2 f3
+18353255926290448384 18353255926290448384 18353255926290448384
+f4 f5 f6
+-9220000000000000000 6744073709551616 6744073709551616
+f7 f8 f9
+-9220000000000000000 6744073709551616 6744073709551616
+f10 f11 f12
+-9220000000000000000 6744073709551616 6744073709551616
+var1 var2
+18353255926290448384 18353255926290448384
+var3 var4
+6744073709551616 6744073709551616
+var5 var6
+6744073709551616 6744073709551616
+var7 var8
+6744073709551616 6744073709551616
+DROP PROCEDURE spexecute07;
+DROP PROCEDURE sp07;
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8( in f1 bigint unsigned zerofill,
+inout f2 bigint unsigned zerofill,
+out f3 bigint unsigned zerofill,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute08;
+CREATE PROCEDURE spexecute08()
+BEGIN
+declare var1 bigint unsigned zerofill;
+declare var2 bigint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.84e+17;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp8(1.84e+17, var1, var2, -9.22e+18, var3, var4,
+-9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute08();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+00368000000000000000 00368000000000000000 00368000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+00368000000000000000 00368000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute08;
+DROP PROCEDURE sp8;
+DROP PROCEDURE IF EXISTS sp9;
+CREATE PROCEDURE sp9( in f1 bigint zerofill,
+inout f2 bigint zerofill,
+out f3 bigint zerofill,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute09;
+CREATE PROCEDURE spexecute09()
+BEGIN
+declare var1 bigint zerofill;
+declare var2 bigint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -9.22e+15;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp9(-9.22e+15, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute09();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+00000000000000000000 00000000000000000000 00000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+00000000000000000000 00000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute09;
+DROP PROCEDURE sp9;
+DROP PROCEDURE IF EXISTS sp10;
+CREATE PROCEDURE sp10( in f1 decimal,
+inout f2 decimal,
+out f3 decimal,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute10;
+CREATE PROCEDURE spexecute10()
+BEGIN
+declare var1 decimal;
+declare var2 decimal;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp10(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute10();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute10;
+DROP PROCEDURE sp10;
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11( in f1 decimal (0), inout f2 decimal (0), out f3 decimal (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute11;
+CREATE PROCEDURE spexecute11()
+BEGIN
+declare var1 decimal (0);
+declare var2 decimal (0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = --1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp11(--1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute11();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute11;
+DROP PROCEDURE sp11;
+DROP PROCEDURE IF EXISTS sp12;
+CREATE PROCEDURE sp12( in f1 decimal (0) unsigned, inout f2 decimal (0) unsigned, out f3 decimal (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute12;
+CREATE PROCEDURE spexecute12()
+BEGIN
+declare var1 decimal (0) unsigned;
+declare var2 decimal (0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp12(99999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute12();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute12;
+DROP PROCEDURE sp12;
+DROP PROCEDURE IF EXISTS sp13;
+CREATE PROCEDURE sp13( in f1 decimal (0, 0) zerofill, inout f2 decimal (0, 0) zerofill, out f3 decimal (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute13;
+CREATE PROCEDURE spexecute13()
+BEGIN
+declare var1 decimal (0, 0) zerofill;
+declare var2 decimal (0, 0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp13(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute13();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute13;
+DROP PROCEDURE sp13;
+DROP PROCEDURE IF EXISTS sp14;
+CREATE PROCEDURE sp14( in f1 decimal (63, 30), inout f2 decimal (63, 30), out f3 decimal (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute14;
+CREATE PROCEDURE spexecute14()
+BEGIN
+declare var1 decimal (63, 30);
+declare var2 decimal (63, 30);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+21;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp14(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute14();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000000000000000.000000000000000000000000000000 -1000000000000000000000.000000000000000000000000000000 -999999999999999999990.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000000000000000.000000000000000000000000000000 -999999999999999999990.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute14;
+DROP PROCEDURE sp14;
+DROP PROCEDURE IF EXISTS sp15;
+CREATE PROCEDURE sp15( in f1 double, inout f2 double, out f3 double, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute15;
+CREATE PROCEDURE spexecute15()
+BEGIN
+declare var1 double;
+declare var2 double;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp15(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute15();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute15;
+DROP PROCEDURE sp15;
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( in f1 double zerofill, inout f2 double zerofill, out f3 double zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute16;
+CREATE PROCEDURE spexecute16()
+BEGIN
+declare var1 double zerofill;
+declare var2 double zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp16(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute16();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute16;
+DROP PROCEDURE sp16;
+DROP PROCEDURE IF EXISTS sp17;
+CREATE PROCEDURE sp17( in f1 double unsigned, inout f2 double unsigned, out f3 double unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute17;
+CREATE PROCEDURE spexecute17()
+BEGIN
+declare var1 double unsigned;
+declare var2 double unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp17(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute17();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute17;
+DROP PROCEDURE sp17;
+DROP PROCEDURE IF EXISTS sp18;
+CREATE PROCEDURE sp18( in f1 double unsigned zerofill, inout f2 double unsigned zerofill, out f3 double unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute18;
+CREATE PROCEDURE spexecute18()
+BEGIN
+declare var1 double unsigned zerofill;
+declare var2 double unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp18(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute18();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute18;
+DROP PROCEDURE sp18;
+DROP PROCEDURE IF EXISTS sp19;
+CREATE PROCEDURE sp19( in f1 float unsigned, inout f2 float unsigned, out f3 float unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute19;
+CREATE PROCEDURE spexecute19()
+BEGIN
+declare var1 float unsigned;
+declare var2 float unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp19(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute19();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute19;
+DROP PROCEDURE sp19;
+DROP PROCEDURE IF EXISTS sp20;
+CREATE PROCEDURE sp20( in f1 float unsigned zerofill, inout f2 float unsigned zerofill, out f3 float unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute20;
+CREATE PROCEDURE spexecute20()
+BEGIN
+declare var1 float unsigned zerofill;
+declare var2 float unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp20(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute20();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute20;
+DROP PROCEDURE sp20;
+DROP PROCEDURE IF EXISTS sp21;
+CREATE PROCEDURE sp21( in f1 float zerofill, inout f2 float zerofill, out f3 float zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute21;
+CREATE PROCEDURE spexecute21()
+BEGIN
+declare var1 float zerofill;
+declare var2 float zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp21(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute21();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute21;
+DROP PROCEDURE sp21;
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( in f1 float(0), inout f2 float(0), out f3 float(0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute22;
+CREATE PROCEDURE spexecute22()
+BEGIN
+declare var1 float(0);
+declare var2 float(0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp22(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute22();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute22;
+DROP PROCEDURE sp22;
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( in f1 numeric, inout f2 numeric, out f3 numeric, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute23;
+CREATE PROCEDURE spexecute23()
+BEGIN
+declare var1 numeric;
+declare var2 numeric;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp23(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute23();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute23;
+DROP PROCEDURE sp23;
+DROP PROCEDURE IF EXISTS sp24;
+CREATE PROCEDURE sp24( in f1 real, inout f2 real, out f3 real, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute24;
+CREATE PROCEDURE spexecute24()
+BEGIN
+declare var1 real;
+declare var2 real;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp24(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute24();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1.1 1.1 11.1 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1.1 11.1 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute24;
+DROP PROCEDURE sp24;
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute25;
+CREATE PROCEDURE spexecute25()
+BEGIN
+declare var1 smallint;
+declare var2 smallint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32701;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp25(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute25();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-32758 -32758 -32748 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-32758 -32748 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute25;
+DROP PROCEDURE sp25;
+DROP PROCEDURE IF EXISTS sp26;
+CREATE PROCEDURE sp26( in f1 date, inout f2 date, out f3 date, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = adddate(f1, interval 31 day); set f2 = adddate(f2, interval 31 day); set f3 = adddate(f2, interval 31 day);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute26;
+CREATE PROCEDURE spexecute26()
+BEGIN
+declare var1 date;
+declare var2 date;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '1997-12-31';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp26( '1997-12-31', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute26();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1998-01-31 1998-01-31 1998-03-03 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1998-01-31 1998-03-03 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute26;
+DROP PROCEDURE sp26;
+DROP PROCEDURE IF EXISTS sp27;
+CREATE PROCEDURE sp27( in f1 time, inout f2 time, out f3 time, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998'); set f2 = addtime(f2, '02:00:00.999998'); set f3 = addtime(f2, '02:00:00.999998');
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute27;
+CREATE PROCEDURE spexecute27()
+BEGIN
+declare var1 time;
+declare var2 time;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '23:59:59.999999';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp27( '23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute27();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+25:59:59 25:59:59 27:59:59 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+25:59:59 27:59:59 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute27;
+DROP PROCEDURE sp27;
+DROP PROCEDURE IF EXISTS sp28;
+CREATE PROCEDURE sp28( in f1 datetime, inout f2 datetime, out f3 datetime, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002'); set f2 = addtime(f2, '1 1:1:1.000002'); set f3 = addtime(f1, '1 1:1:1.000002');
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute28;
+CREATE PROCEDURE spexecute28()
+BEGIN
+declare var1 datetime;
+declare var2 datetime;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '1997-12-31 23:59:59.999999';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp28('1997-12-31 23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute28();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1998-01-02 01:01:00 1998-01-02 01:01:00 1998-01-03 02:02:01 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1998-01-02 01:01:00 1998-01-03 02:02:01 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute28;
+DROP PROCEDURE sp28;
+DROP PROCEDURE IF EXISTS sp29;
+CREATE PROCEDURE sp29( in f1 float(0) unsigned, inout f2 float(0) unsigned, out f3 float(0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute29;
+CREATE PROCEDURE spexecute29()
+BEGIN
+declare var1 float(0) unsigned;
+declare var2 float(0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp29(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute29();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute29;
+DROP PROCEDURE sp29;
+DROP PROCEDURE IF EXISTS sp30;
+CREATE PROCEDURE sp30( in f1 float(0) zerofill, inout f2 float(0) zerofill, out f3 float(0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute30;
+CREATE PROCEDURE spexecute30()
+BEGIN
+declare var1 float(0) zerofill;
+declare var2 float(0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp30(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute30();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute30;
+DROP PROCEDURE sp30;
+DROP PROCEDURE IF EXISTS sp31;
+CREATE PROCEDURE sp31( in f1 float(23), inout f2 float(23), out f3 float(23), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute31;
+CREATE PROCEDURE spexecute31()
+BEGIN
+declare var1 float(23);
+declare var2 float(23);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp31(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute31();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute31;
+DROP PROCEDURE sp31;
+DROP PROCEDURE IF EXISTS sp32;
+CREATE PROCEDURE sp32( in f1 float(23) unsigned, inout f2 float(23) unsigned, out f3 float(23) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute32;
+CREATE PROCEDURE spexecute32()
+BEGIN
+declare var1 float(23) unsigned;
+declare var2 float(23) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp32(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute32();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute32;
+DROP PROCEDURE sp32;
+DROP PROCEDURE IF EXISTS sp33;
+CREATE PROCEDURE sp33( in f1 float(23) zerofill, inout f2 float(23) zerofill, out f3 float(23) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute33;
+CREATE PROCEDURE spexecute33()
+BEGIN
+declare var1 float(23) zerofill;
+declare var2 float(23) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp33(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute33();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute33;
+DROP PROCEDURE sp33;
+DROP PROCEDURE IF EXISTS sp34;
+CREATE PROCEDURE sp34( in f1 float(24), inout f2 float(24), out f3 float(24), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute34;
+CREATE PROCEDURE spexecute34()
+BEGIN
+declare var1 float(24);
+declare var2 float(24);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp34(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute34();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute34;
+DROP PROCEDURE sp34;
+DROP PROCEDURE IF EXISTS sp35;
+CREATE PROCEDURE sp35( in f1 float(24) unsigned, inout f2 float(24) unsigned, out f3 float(24) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute35;
+CREATE PROCEDURE spexecute35()
+BEGIN
+declare var1 float(24) unsigned;
+declare var2 float(24) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp35(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute35();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute35;
+DROP PROCEDURE sp35;
+DROP PROCEDURE IF EXISTS sp36;
+CREATE PROCEDURE sp36( in f1 float(24) zerofill, inout f2 float(24) zerofill, out f3 float(24) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute36;
+CREATE PROCEDURE spexecute36()
+BEGIN
+declare var1 float(24) zerofill;
+declare var2 float(24) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp36(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute36();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute36;
+DROP PROCEDURE sp36;
+DROP PROCEDURE IF EXISTS sp37;
+CREATE PROCEDURE sp37( in f1 float(53), inout f2 float(53), out f3 float(53), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute37;
+CREATE PROCEDURE spexecute37()
+BEGIN
+declare var1 float(53);
+declare var2 float(53);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp37(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute37();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute37;
+DROP PROCEDURE sp37;
+DROP PROCEDURE IF EXISTS sp38;
+CREATE PROCEDURE sp38( in f1 float(53) unsigned, inout f2 float(53) unsigned, out f3 float(53) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute38;
+CREATE PROCEDURE spexecute38()
+BEGIN
+declare var1 float(53) unsigned;
+declare var2 float(53) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp38(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute38();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute38;
+DROP PROCEDURE sp38;
+DROP PROCEDURE IF EXISTS sp39;
+CREATE PROCEDURE sp39( in f1 float(53) zerofill, inout f2 float(53) zerofill, out f3 float(53) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute39;
+CREATE PROCEDURE spexecute39()
+BEGIN
+declare var1 float(53) zerofill;
+declare var2 float(53) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp39(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute39();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute39;
+DROP PROCEDURE sp39;
+DROP PROCEDURE IF EXISTS sp40;
+CREATE PROCEDURE sp40( in f1 real unsigned, inout f2 real unsigned, out f3 real unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute40;
+CREATE PROCEDURE spexecute40()
+BEGIN
+declare var1 real unsigned;
+declare var2 real unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp40(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute40();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute40;
+DROP PROCEDURE sp40;
+DROP PROCEDURE IF EXISTS sp41;
+CREATE PROCEDURE sp41( in f1 real unsigned zerofill, inout f2 real unsigned zerofill, out f3 real unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute41;
+CREATE PROCEDURE spexecute41()
+BEGIN
+declare var1 real unsigned zerofill;
+declare var2 real unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp41(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute41();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute41;
+DROP PROCEDURE sp41;
+DROP PROCEDURE IF EXISTS sp42;
+CREATE PROCEDURE sp42( in f1 real zerofill, inout f2 real zerofill, out f3 real zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute42;
+CREATE PROCEDURE spexecute42()
+BEGIN
+declare var1 real zerofill;
+declare var2 real zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp42(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute42();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute42;
+DROP PROCEDURE sp42;
+DROP PROCEDURE IF EXISTS sp43;
+CREATE PROCEDURE sp43( in f1 numeric (0), inout f2 numeric (0), out f3 numeric (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute43;
+CREATE PROCEDURE spexecute43()
+BEGIN
+declare var1 numeric (0);
+declare var2 numeric (0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp43(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute43();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute43;
+DROP PROCEDURE sp43;
+DROP PROCEDURE IF EXISTS sp44;
+CREATE PROCEDURE sp44( in f1 numeric (0) unsigned, inout f2 numeric (0) unsigned, out f3 numeric (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute44;
+CREATE PROCEDURE spexecute44()
+BEGIN
+declare var1 numeric (0) unsigned;
+declare var2 numeric (0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp44(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute44();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute44;
+DROP PROCEDURE sp44;
+DROP PROCEDURE IF EXISTS sp45;
+CREATE PROCEDURE sp45( in f1 numeric (0) zerofill, inout f2 numeric (0) zerofill, out f3 numeric (0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute45;
+CREATE PROCEDURE spexecute45()
+BEGIN
+declare var1 numeric (0) zerofill;
+declare var2 numeric (0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp45(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute45();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute45;
+DROP PROCEDURE sp45;
+DROP PROCEDURE IF EXISTS sp46;
+CREATE PROCEDURE sp46( in f1 numeric (0, 0), inout f2 numeric (0, 0), out f3 numeric (0, 0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute46;
+CREATE PROCEDURE spexecute46()
+BEGIN
+declare var1 numeric (0, 0);
+declare var2 numeric (0, 0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp46(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute46();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute46;
+DROP PROCEDURE sp46;
+DROP PROCEDURE IF EXISTS sp47;
+CREATE PROCEDURE sp47( in f1 numeric (0, 0) unsigned, inout f2 numeric (0, 0) unsigned, out f3 numeric (0, 0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute47;
+CREATE PROCEDURE spexecute47()
+BEGIN
+declare var1 numeric (0, 0) unsigned;
+declare var2 numeric (0, 0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp47(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute47();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute47;
+DROP PROCEDURE sp47;
+DROP PROCEDURE IF EXISTS sp48;
+CREATE PROCEDURE sp48( in f1 numeric (0, 0) zerofill, inout f2 numeric (0, 0) zerofill, out f3 numeric (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute48;
+CREATE PROCEDURE spexecute48()
+BEGIN
+declare var1 numeric (0, 0) zerofill;
+declare var2 numeric (0, 0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp48(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute48();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute48;
+DROP PROCEDURE sp48;
+DROP PROCEDURE IF EXISTS sp49;
+CREATE PROCEDURE sp49( in f1 numeric unsigned, inout f2 numeric unsigned, out f3 numeric unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute49;
+CREATE PROCEDURE spexecute49()
+BEGIN
+declare var1 numeric unsigned;
+declare var2 numeric unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp49(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute49();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute49;
+DROP PROCEDURE sp49;
+DROP PROCEDURE IF EXISTS sp50;
+CREATE PROCEDURE sp50( in f1 numeric unsigned zerofill, inout f2 numeric unsigned zerofill, out f3 numeric unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute50;
+CREATE PROCEDURE spexecute50()
+BEGIN
+declare var1 numeric unsigned zerofill;
+declare var2 numeric unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp50(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute50();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute50;
+DROP PROCEDURE sp50;
+DROP PROCEDURE IF EXISTS sp51;
+CREATE PROCEDURE sp51( in f1 numeric zerofill, inout f2 numeric zerofill, out f3 numeric zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute51;
+CREATE PROCEDURE spexecute51()
+BEGIN
+declare var1 numeric zerofill;
+declare var2 numeric zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp51(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute51();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute51;
+DROP PROCEDURE sp51;
+DROP PROCEDURE IF EXISTS sp52;
+CREATE PROCEDURE sp52( in f1 numeric (63, 30), inout f2 numeric (63, 30), out f3 numeric (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute52;
+CREATE PROCEDURE spexecute52()
+BEGIN
+declare var1 numeric (63, 30);
+declare var2 numeric (63, 30);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp52(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute52();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000.000000000000000000000000000000 -10000000000000000000000.000000000000000000000000000000 -99999999999999999990.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000.000000000000000000000000000000 -99999999999999999990.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute52;
+DROP PROCEDURE sp52;
+DROP PROCEDURE IF EXISTS sp53;
+CREATE PROCEDURE sp53( in f1 numeric (64), inout f2 numeric (64), out f3 numeric (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute53;
+CREATE PROCEDURE spexecute53()
+BEGIN
+declare var1 numeric (64);
+declare var2 numeric (64);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp53(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute53();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000 -10000000000000000000000 -99999999999999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000 -99999999999999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute53;
+DROP PROCEDURE sp53;
+DROP PROCEDURE IF EXISTS sp54;
+CREATE PROCEDURE sp54( in f1 numeric (64) unsigned, inout f2 numeric (64) unsigned, out f3 numeric (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute54;
+CREATE PROCEDURE spexecute54()
+BEGIN
+declare var1 numeric (64) unsigned;
+declare var2 numeric (64) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp54(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute54();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000 10000000000000000000000 100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000 100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute54;
+DROP PROCEDURE sp54;
+DROP PROCEDURE IF EXISTS sp55;
+CREATE PROCEDURE sp55( in f1 numeric (64) zerofill, inout f2 numeric (64) zerofill, out f3 numeric (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute55;
+CREATE PROCEDURE spexecute55()
+BEGIN
+declare var1 numeric (64) zerofill;
+declare var2 numeric (64) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp55(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute55();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute55;
+DROP PROCEDURE sp55;
+DROP PROCEDURE IF EXISTS sp56;
+CREATE PROCEDURE sp56( in f1 year, inout f2 year, out f3 year, in f4 year, inout f5 year, out f6 year, in f7 year, inout f8 year, out f9 year, in f10 year, inout f11 year, out f12 year)
+BEGIN
+set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+set f7 = f7 + 10; set f8 = f8 + 10; set f9 = f8 + 10;
+set f10= f10+ 10; set f11 = f11 + 10; set f12 = f11 + 10;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute56;
+CREATE PROCEDURE spexecute56()
+BEGIN
+declare var1 year;
+declare var2 year;
+declare var3 year;
+declare var4 year;
+declare var5 year;
+declare var6 year;
+declare var7 year;
+declare var8 year;
+set var1 = 51;
+set var3 = 51;
+set var5 = 51;
+set var7 = 51;
+CALL sp56(51, var1, var2, 51, var3, var4, 51, var5, var6, 51, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute56();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2061 2061 2071 2061 2061 2071 2061 2061 2071 2061 2061 2071
+var1 var2 var3 var4 var5 var6 var7 var8
+2061 2071 2061 2071 2061 2071 2061 2071
+DROP PROCEDURE spexecute56;
+DROP PROCEDURE sp56;
+DROP PROCEDURE IF EXISTS sp57;
+CREATE PROCEDURE sp57( in f1 year(4), inout f2 year(4), out f3 year(4), in f4 year(4), inout f5 year(4), out f6 year(4), in f7 year(4), inout f8 year(4), out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+set f1 = f1 + 51; set f2 = f2 + 51; set f3 = f2 + 51;
+set f4 = f4 + 51; set f5 = f5 + 51; set f6 = f5 + 51;
+set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute57;
+CREATE PROCEDURE spexecute57()
+BEGIN
+declare var1 year(4);
+declare var2 year(4);
+declare var3 year(4);
+declare var4 year(4);
+declare var5 year(4);
+declare var6 year(4);
+declare var7 year(4);
+declare var8 year(4);
+set var1 = 1982;
+set var3 = 1982;
+set var5 = 1982;
+set var7 = 1982;
+CALL sp57(1982, var1, var2, 1982, var3, var4, 1982, var5, var6, 1982, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute57();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2033 2033 2084 2033 2033 2084 2033 2033 2084 2033 2033 2084
+var1 var2 var3 var4 var5 var6 var7 var8
+2033 2084 2033 2084 2033 2084 2033 2084
+DROP PROCEDURE spexecute57;
+DROP PROCEDURE sp57;
+DROP PROCEDURE IF EXISTS sp58;
+CREATE PROCEDURE sp58( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text, out f6 text, in f7 text, inout f8 text, out f9 text, in f10 text, inout f11 text, out f12 text)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute58;
+CREATE PROCEDURE spexecute58()
+BEGIN
+declare var1 text;
+declare var2 text;
+declare var3 text;
+declare var4 text;
+declare var5 text;
+declare var6 text;
+declare var7 text;
+declare var8 text;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp58( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute58();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute58;
+DROP PROCEDURE sp58;
+DROP PROCEDURE IF EXISTS sp59;
+CREATE PROCEDURE sp59( in f1 tinytext, inout f2 tinytext, out f3 tinytext, in f4 tinytext, inout f5 tinytext, out f6 tinytext, in f7 tinytext, inout f8 tinytext, out f9 tinytext, in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute59;
+CREATE PROCEDURE spexecute59()
+BEGIN
+declare var1 tinytext;
+declare var2 tinytext;
+declare var3 tinytext;
+declare var4 tinytext;
+declare var5 tinytext;
+declare var6 tinytext;
+declare var7 tinytext;
+declare var8 tinytext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp59( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute59();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute59;
+DROP PROCEDURE sp59;
+DROP PROCEDURE IF EXISTS sp60;
+CREATE PROCEDURE sp60( in f1 char, inout f2 char, out f3 char, in f4 char, inout f5 char, out f6 char, in f7 char, inout f8 char, out f9 char, in f10 char, inout f11 char, out f12 char)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f5);
+set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f8);
+set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute60;
+CREATE PROCEDURE spexecute60()
+BEGIN
+declare var1 char;
+declare var2 char;
+declare var3 char;
+declare var4 char;
+declare var5 char;
+declare var6 char;
+declare var7 char;
+declare var8 char;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'h';
+set var7 = 'h';
+CALL sp60( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute60();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a a a a a a a
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a a a a a
+DROP PROCEDURE spexecute60;
+DROP PROCEDURE sp60;
+DROP PROCEDURE IF EXISTS sp61;
+CREATE PROCEDURE sp61( in f1 char ascii, inout f2 char ascii, out f3 char ascii, in f4 char ascii, inout f5 char ascii, out f6 char ascii, in f7 char ascii, inout f8 char ascii, out f9 char ascii, in f10 char ascii, inout f11 char ascii, out f12 char ascii)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f2);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f9);
+set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute61;
+CREATE PROCEDURE spexecute61()
+BEGIN
+declare var1 char ascii;
+declare var2 char ascii;
+declare var3 char ascii;
+declare var4 char ascii;
+declare var5 char ascii;
+declare var6 char ascii;
+declare var7 char ascii;
+declare var8 char ascii;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'h';
+set var7 = 'h';
+CALL sp61( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute61();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a a a NULL a a a
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a a NULL a a
+DROP PROCEDURE spexecute61;
+DROP PROCEDURE sp61;
+DROP PROCEDURE IF EXISTS sp62;
+CREATE PROCEDURE sp62( in f1 longtext, inout f2 longtext, out f3 longtext, in f4 longtext, inout f5 longtext, out f6 longtext, in f7 longtext, inout f8 longtext, out f9 longtext, in f10 longtext, inout f11 longtext, out f12 longtext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute62;
+CREATE PROCEDURE spexecute62()
+BEGIN
+declare var1 longtext;
+declare var2 longtext;
+declare var3 longtext;
+declare var4 longtext;
+declare var5 longtext;
+declare var6 longtext;
+declare var7 longtext;
+declare var8 longtext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp62( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute62();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute62;
+DROP PROCEDURE sp62;
+DROP PROCEDURE IF EXISTS sp63;
+CREATE PROCEDURE sp63( in f1 mediumtext, inout f2 mediumtext, out f3 mediumtext, in f4 mediumtext, inout f5 mediumtext, out f6 mediumtext, in f7 mediumtext, inout f8 mediumtext, out f9 mediumtext, in f10 mediumtext, inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f3);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute63;
+CREATE PROCEDURE spexecute63()
+BEGIN
+declare var1 mediumtext;
+declare var2 mediumtext;
+declare var3 mediumtext;
+declare var4 mediumtext;
+declare var5 mediumtext;
+declare var6 mediumtext;
+declare var7 mediumtext;
+declare var8 mediumtext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp63( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute63();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld NULL helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld NULL helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute63;
+DROP PROCEDURE sp63;
+DROP PROCEDURE IF EXISTS sp64;
+CREATE PROCEDURE sp64( in f1 decimal, inout f2 decimal, out f3 decimal, in f4 decimal, inout f5 decimal, out f6 decimal, in f7 decimal, inout f8 decimal, out f9 decimal, in f10 decimal, inout f11 decimal, out f12 decimal)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f4 = (f4 / 2); set f4 = (f4 * 2); set f4 = (f4 - 10); set f4 = (f4 + 10); set f5 = (f5 / 2); set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f5 / 2); set f6 = (f5 * 2); set f6 = (f5 - 10); set f6 = (f5 + 10);
+set f7 = (f7 / 2); set f7 = (f7 * 2); set f7 = (f7 - 10); set f7 = (f7 + 10); set f8 = (f8 / 2); set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f8 / 2); set f9 = (f8 * 2); set f9 = (f8 - 10); set f9 = (f8 + 10);
+set f10 = (f10 / 2); set f10 = (f10 * 2); set f10 = (f10 - 10); set f10 = (f10 + 10); set f11 = (f11 / 2); set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f11 / 2); set f12 = (f11 * 2); set f12 = (f11 - 10); set f12 = (f11 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute64;
+CREATE PROCEDURE spexecute64()
+BEGIN
+declare var1 decimal;
+declare var2 decimal;
+declare var3 decimal;
+declare var4 decimal;
+declare var5 decimal;
+declare var6 decimal;
+declare var7 decimal;
+declare var8 decimal;
+set var1 = --1.00e+09;
+set var3 = --1.00e+09;
+set var5 = --1.00e+09;
+set var7 = --1.00e+09;
+CALL sp64(--1.00e+09, var1, var2, --1.00e+09, var3, var4, --1.00e+09, var5, var6, --1.00e+09, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute64();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 1000000000 1000000000 1000000010 1000000000 1000000000 1000000010 1000000000 1000000000 1000000010
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 1000000000 1000000010 1000000000 1000000010 1000000000 1000000010
+DROP PROCEDURE spexecute64;
+DROP PROCEDURE sp64;
+DROP PROCEDURE IF EXISTS sp65;
+CREATE PROCEDURE sp65( in f1 decimal (0, 0) unsigned zerofill, inout f2 decimal (0, 0) unsigned zerofill, out f3 decimal (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute65;
+CREATE PROCEDURE spexecute65()
+BEGIN
+declare var1 decimal (0, 0) unsigned zerofill;
+declare var2 decimal (0, 0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp65(999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute65();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute65;
+DROP PROCEDURE sp65;
+DROP PROCEDURE IF EXISTS sp66;
+CREATE PROCEDURE sp66( in f1 decimal (63, 30) unsigned, inout f2 decimal (63, 30) unsigned, out f3 decimal (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute66;
+CREATE PROCEDURE spexecute66()
+BEGIN
+declare var1 decimal (63, 30) unsigned;
+declare var2 decimal (63, 30) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+16;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp66(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute66();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10000000000000000.000000000000000000000000000000 10000000000000000.000000000000000000000000000000 10000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000.000000000000000000000000000000 10000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute66;
+DROP PROCEDURE sp66;
+DROP PROCEDURE IF EXISTS sp67;
+CREATE PROCEDURE sp67( in f1 decimal (63, 30) unsigned zerofill, inout f2 decimal (63, 30) unsigned zerofill, out f3 decimal (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute67;
+CREATE PROCEDURE spexecute67()
+BEGIN
+declare var1 decimal (63, 30) unsigned zerofill;
+declare var2 decimal (63, 30) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+16;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp67(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute67();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute67;
+DROP PROCEDURE sp67;
+DROP PROCEDURE IF EXISTS sp68;
+CREATE PROCEDURE sp68( in f1 decimal (63, 30) zerofill, inout f2 decimal (63, 30) zerofill, out f3 decimal (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute68;
+CREATE PROCEDURE spexecute68()
+BEGIN
+declare var1 decimal (63, 30) zerofill;
+declare var2 decimal (63, 30) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+21;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp68(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute68();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute68;
+DROP PROCEDURE sp68;
+DROP PROCEDURE IF EXISTS sp69;
+CREATE PROCEDURE sp69( in f1 decimal (64), inout f2 decimal (64), out f3 decimal (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute69;
+CREATE PROCEDURE spexecute69()
+BEGIN
+declare var1 decimal (64);
+declare var2 decimal (64);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp69(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute69();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000 -10000000000000000000000 -99999999999999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000 -99999999999999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute69;
+DROP PROCEDURE sp69;
+DROP PROCEDURE IF EXISTS sp70;
+CREATE PROCEDURE sp70( in f1 decimal (64) unsigned, inout f2 decimal (64) unsigned, out f3 decimal (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute70;
+CREATE PROCEDURE spexecute70()
+BEGIN
+declare var1 decimal (64) unsigned;
+declare var2 decimal (64) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp70(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute70();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000 10000000000000000000000 100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000 100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute70;
+DROP PROCEDURE sp70;
+DROP PROCEDURE IF EXISTS sp71;
+CREATE PROCEDURE sp71( in f1 decimal (64) unsigned zerofill, inout f2 decimal (64) unsigned zerofill, out f3 decimal (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute71;
+CREATE PROCEDURE spexecute71()
+BEGIN
+declare var1 decimal (64) unsigned zerofill;
+declare var2 decimal (64) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp71(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute71();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000100000000000000000000 0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute71;
+DROP PROCEDURE sp71;
+DROP PROCEDURE IF EXISTS sp72;
+CREATE PROCEDURE sp72( in f1 decimal (64) zerofill, inout f2 decimal (64) zerofill, out f3 decimal (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute72;
+CREATE PROCEDURE spexecute72()
+BEGIN
+declare var1 decimal (64) zerofill;
+declare var2 decimal (64) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp72(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute72();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute72;
+DROP PROCEDURE sp72;
+DROP PROCEDURE IF EXISTS sp73;
+CREATE PROCEDURE sp73( in f1 decimal unsigned, inout f2 decimal unsigned, out f3 decimal unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute73;
+CREATE PROCEDURE spexecute73()
+BEGIN
+declare var1 decimal unsigned;
+declare var2 decimal unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp73(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute73();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute73;
+DROP PROCEDURE sp73;
+DROP PROCEDURE IF EXISTS sp74;
+CREATE PROCEDURE sp74( in f1 decimal unsigned zerofill, inout f2 decimal unsigned zerofill, out f3 decimal unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute74;
+CREATE PROCEDURE spexecute74()
+BEGIN
+declare var1 decimal unsigned zerofill;
+declare var2 decimal unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp74(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute74();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute74;
+DROP PROCEDURE sp74;
+DROP PROCEDURE IF EXISTS sp75;
+CREATE PROCEDURE sp75( in f1 decimal zerofill, inout f2 decimal zerofill, out f3 decimal zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute75;
+CREATE PROCEDURE spexecute75()
+BEGIN
+declare var1 decimal zerofill;
+declare var2 decimal zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp75(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute75();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute75;
+DROP PROCEDURE sp75;
+DROP PROCEDURE IF EXISTS sp76;
+CREATE PROCEDURE sp76( in f1 float(0) unsigned zerofill, inout f2 float(0) unsigned zerofill, out f3 float(0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute76;
+CREATE PROCEDURE spexecute76()
+BEGIN
+declare var1 float(0) unsigned zerofill;
+declare var2 float(0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp76(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute76();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute76;
+DROP PROCEDURE sp76;
+DROP PROCEDURE IF EXISTS sp77;
+CREATE PROCEDURE sp77( in f1 float(23) unsigned zerofill, inout f2 float(23) unsigned zerofill, out f3 float(23) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute77;
+CREATE PROCEDURE spexecute77()
+BEGIN
+declare var1 float(23) unsigned zerofill;
+declare var2 float(23) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp77(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute77();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute77;
+DROP PROCEDURE sp77;
+DROP PROCEDURE IF EXISTS sp78;
+CREATE PROCEDURE sp78( in f1 float(24) unsigned zerofill, inout f2 float(24) unsigned zerofill, out f3 float(24) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute78;
+CREATE PROCEDURE spexecute78()
+BEGIN
+declare var1 float(24) unsigned zerofill;
+declare var2 float(24) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp78(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute78();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute78;
+DROP PROCEDURE sp78;
+DROP PROCEDURE IF EXISTS sp79;
+CREATE PROCEDURE sp79( in f1 float(53) unsigned zerofill, inout f2 float(53) unsigned zerofill, out f3 float(53) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute79;
+CREATE PROCEDURE spexecute79()
+BEGIN
+declare var1 float(53) unsigned zerofill;
+declare var2 float(53) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp79(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute79();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute79;
+DROP PROCEDURE sp79;
+DROP PROCEDURE IF EXISTS sp80;
+CREATE PROCEDURE sp80( in f1 int, inout f2 int, out f3 int, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute80;
+CREATE PROCEDURE spexecute80()
+BEGIN
+declare var1 int;
+declare var2 int;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -2.15e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp80(-2.15e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute80();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-2147483638 -2147483638 -2147483628 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-2147483638 -2147483628 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute80;
+DROP PROCEDURE sp80;
+DROP PROCEDURE IF EXISTS sp81;
+CREATE PROCEDURE sp81( in f1 int unsigned, inout f2 int unsigned, out f3 int unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute81;
+CREATE PROCEDURE spexecute81()
+BEGIN
+declare var1 int unsigned;
+declare var2 int unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 4.29e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp81(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute81();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+4290000000 4290000000 4290000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+4290000000 4290000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute81;
+DROP PROCEDURE sp81;
+DROP PROCEDURE IF EXISTS sp82;
+CREATE PROCEDURE sp82( in f1 int unsigned zerofill, inout f2 int unsigned zerofill, out f3 int unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute82;
+CREATE PROCEDURE spexecute82()
+BEGIN
+declare var1 int unsigned zerofill;
+declare var2 int unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 4.29e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp82(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute82();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+4290000000 4290000000 4290000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+4290000000 4290000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute82;
+DROP PROCEDURE sp82;
+DROP PROCEDURE IF EXISTS sp83;
+CREATE PROCEDURE sp83( in f1 int zerofill, inout f2 int zerofill, out f3 int zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute83;
+CREATE PROCEDURE spexecute83()
+BEGIN
+declare var1 int zerofill;
+declare var2 int zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 2.15e+08;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp83(2.15e+08, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute83();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0215000000 0215000000 0215000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0215000000 0215000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute83;
+DROP PROCEDURE sp83;
+DROP PROCEDURE IF EXISTS sp84;
+CREATE PROCEDURE sp84( in f1 mediumint, inout f2 mediumint, out f3 mediumint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute84;
+CREATE PROCEDURE spexecute84()
+BEGIN
+declare var1 mediumint;
+declare var2 mediumint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -8388600;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp84(-8388600, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute84();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-8388598 -8388598 -8388588 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-8388598 -8388588 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute84;
+DROP PROCEDURE sp84;
+DROP PROCEDURE IF EXISTS sp85;
+CREATE PROCEDURE sp85( in f1 mediumint unsigned, inout f2 mediumint unsigned, out f3 mediumint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute85;
+CREATE PROCEDURE spexecute85()
+BEGIN
+declare var1 mediumint unsigned;
+declare var2 mediumint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 16777201;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp85(16777201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute85();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777202 16777202 16777212 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777202 16777212 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute85;
+DROP PROCEDURE sp85;
+DROP PROCEDURE IF EXISTS sp86;
+CREATE PROCEDURE sp86( in f1 mediumint unsigned zerofill, inout f2 mediumint unsigned zerofill, out f3 mediumint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute86;
+CREATE PROCEDURE spexecute86()
+BEGIN
+declare var1 mediumint unsigned zerofill;
+declare var2 mediumint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 16777210;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp86(16777210, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute86();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777210 16777210 16777215 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777210 16777215 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute86;
+DROP PROCEDURE sp86;
+DROP PROCEDURE IF EXISTS sp87;
+CREATE PROCEDURE sp87( in f1 mediumint zerofill, inout f2 mediumint zerofill, out f3 mediumint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute87;
+CREATE PROCEDURE spexecute87()
+BEGIN
+declare var1 mediumint zerofill;
+declare var2 mediumint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -8388601;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp87(-8388601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute87();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777215 16777215 16777215 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777215 16777215 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute87;
+DROP PROCEDURE sp87;
+DROP PROCEDURE IF EXISTS sp88;
+CREATE PROCEDURE sp88( in f1 numeric (0) unsigned zerofill, inout f2 numeric (0) unsigned zerofill, out f3 numeric (0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute88;
+CREATE PROCEDURE spexecute88()
+BEGIN
+declare var1 numeric (0) unsigned zerofill;
+declare var2 numeric (0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp88(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute88();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0100000000 0100000000 0100000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0100000000 0100000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute88;
+DROP PROCEDURE sp88;
+DROP PROCEDURE IF EXISTS sp89;
+CREATE PROCEDURE sp89( in f1 numeric (0, 0) unsigned zerofill, inout f2 numeric (0, 0) unsigned zerofill, out f3 numeric (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute89;
+CREATE PROCEDURE spexecute89()
+BEGIN
+declare var1 numeric (0, 0) unsigned zerofill;
+declare var2 numeric (0, 0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp89(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute89();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0100000000 0100000000 0100000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0100000000 0100000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute89;
+DROP PROCEDURE sp89;
+DROP PROCEDURE IF EXISTS sp90;
+CREATE PROCEDURE sp90( in f1 numeric (63, 30) unsigned, inout f2 numeric (63, 30) unsigned, out f3 numeric (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute90;
+CREATE PROCEDURE spexecute90()
+BEGIN
+declare var1 numeric (63, 30) unsigned;
+declare var2 numeric (63, 30) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp90(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute90();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000.000000000000000000000000000000 10000000000000000000000.000000000000000000000000000000 100000000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000.000000000000000000000000000000 100000000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute90;
+DROP PROCEDURE sp90;
+DROP PROCEDURE IF EXISTS sp91;
+CREATE PROCEDURE sp91( in f1 numeric (63, 30) unsigned zerofill, inout f2 numeric (63, 30) unsigned zerofill, out f3 numeric (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute91;
+CREATE PROCEDURE spexecute91()
+BEGIN
+declare var1 numeric (63, 30) unsigned zerofill;
+declare var2 numeric (63, 30) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp91(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute91();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000100000000000000000000.000000000000000000000000000000 000000000010000000000000000000000.000000000000000000000000000000 000000000000100000000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010000000000000000000000.000000000000000000000000000000 000000000000100000000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute91;
+DROP PROCEDURE sp91;
+DROP PROCEDURE IF EXISTS sp92;
+CREATE PROCEDURE sp92( in f1 numeric (63, 30) zerofill, inout f2 numeric (63, 30) zerofill, out f3 numeric (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute92;
+CREATE PROCEDURE spexecute92()
+BEGIN
+declare var1 numeric (63, 30) zerofill;
+declare var2 numeric (63, 30) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp92(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute92();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute92;
+DROP PROCEDURE sp92;
+DROP PROCEDURE IF EXISTS sp93;
+CREATE PROCEDURE sp93( in f1 numeric (64) unsigned zerofill, inout f2 numeric (64) unsigned zerofill, out f3 numeric (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute93;
+CREATE PROCEDURE spexecute93()
+BEGIN
+declare var1 numeric (64) unsigned zerofill;
+declare var2 numeric (64) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp93(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute93();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000100000000000000000000 0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute93;
+DROP PROCEDURE sp93;
+DROP PROCEDURE IF EXISTS sp94;
+CREATE PROCEDURE sp94( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute94;
+CREATE PROCEDURE spexecute94()
+BEGIN
+declare var1 smallint;
+declare var2 smallint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32701;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp94(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute94();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-32702 -32702 -32692 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-32702 -32692 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute94;
+DROP PROCEDURE sp94;
+DROP PROCEDURE IF EXISTS sp95;
+CREATE PROCEDURE sp95( in f1 smallint unsigned, inout f2 smallint unsigned, out f3 smallint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute95;
+CREATE PROCEDURE spexecute95()
+BEGIN
+declare var1 smallint unsigned;
+declare var2 smallint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 65531;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp95(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute95();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65532 65532 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65532 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute95;
+DROP PROCEDURE sp95;
+DROP PROCEDURE IF EXISTS sp96;
+CREATE PROCEDURE sp96( in f1 smallint unsigned zerofill, inout f2 smallint unsigned zerofill, out f3 smallint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute96;
+CREATE PROCEDURE spexecute96()
+BEGIN
+declare var1 smallint unsigned zerofill;
+declare var2 smallint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 65531;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp96(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute96();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65532 65532 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65532 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute96;
+DROP PROCEDURE sp96;
+DROP PROCEDURE IF EXISTS sp97;
+CREATE PROCEDURE sp97( in f1 smallint zerofill, inout f2 smallint zerofill, out f3 smallint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute97;
+CREATE PROCEDURE spexecute97()
+BEGIN
+declare var1 smallint zerofill;
+declare var2 smallint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32601;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp97(-32601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute97();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65535 65535 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65535 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute97;
+DROP PROCEDURE sp97;
+DROP PROCEDURE IF EXISTS sp98;
+CREATE PROCEDURE sp98( in f1 tinyint, inout f2 tinyint, out f3 tinyint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute98;
+CREATE PROCEDURE spexecute98()
+BEGIN
+declare var1 tinyint;
+declare var2 tinyint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -115;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp98(-115, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute98();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-116 -116 -106 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-116 -106 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute98;
+DROP PROCEDURE sp98;
+DROP PROCEDURE IF EXISTS sp99;
+CREATE PROCEDURE sp99( in f1 tinyint unsigned, inout f2 tinyint unsigned, out f3 tinyint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute99;
+CREATE PROCEDURE spexecute99()
+BEGIN
+declare var1 tinyint unsigned;
+declare var2 tinyint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 251;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp99(251, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute99();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+252 252 255 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+252 255 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute99;
+DROP PROCEDURE sp99;
+DROP PROCEDURE IF EXISTS sp100;
+CREATE PROCEDURE sp100( in f1 tinyint unsigned zerofill, inout f2 tinyint unsigned zerofill, out f3 tinyint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute100;
+CREATE PROCEDURE spexecute100()
+BEGIN
+declare var1 tinyint unsigned zerofill;
+declare var2 tinyint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 201;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp100(201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute100();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+202 202 212 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+202 212 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute100;
+DROP PROCEDURE sp100;
+DROP PROCEDURE IF EXISTS sp101;
+CREATE PROCEDURE sp101( in f1 tinyint zerofill, inout f2 tinyint zerofill, out f3 tinyint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute101;
+CREATE PROCEDURE spexecute101()
+BEGIN
+declare var1 tinyint zerofill;
+declare var2 tinyint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -101;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp101(-101, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute101();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+255 255 255 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+255 255 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute101;
+DROP PROCEDURE sp101;
+USE db_storedproc;
+DROP DATABASE db1;
+USE db_storedproc;
+
+Testcase 4.7.2:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for "allow_invalid_dates" server sql mode
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+drop table IF EXISTS temp_table;
+create table temp_table (f1 datetime);
+set @@sql_mode = 'allow_invalid_dates';
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare a datetime;
+set a = '2005-03-14 01:01:02';
+insert into temp_table values(a);
+END//
+show CREATE PROCEDURE sp2;
+Procedure sql_mode Create Procedure
+sp2 ALLOW_INVALID_DATES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
+BEGIN
+declare a datetime;
+set a = '2005-03-14 01:01:02';
+insert into temp_table values(a);
+END
+set @@sql_mode = 'traditional';
+CALL sp2 ();
+SELECT * from temp_table;
+f1
+2005-03-14 01:01:02
+SELECT @@sql_mode;
+@@sql_mode
+STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP PROCEDURE sp2;
+drop table temp_table;
+
+Testcase 4.7.3:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for *high_not_precedence* server sql mode
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp3;
+set @@sql_mode = 'high_not_precedence';
+CREATE PROCEDURE sp3()
+BEGIN
+declare a int signed;
+declare b int unsigned;
+set a = -5;
+set b = 5;
+SELECT not 1 between a and b;
+END//
+show CREATE PROCEDURE sp3;
+Procedure sql_mode Create Procedure
+sp3 HIGH_NOT_PRECEDENCE CREATE DEFINER=`root`@`localhost` PROCEDURE `sp3`()
+BEGIN
+declare a int signed;
+declare b int unsigned;
+set a = -5;
+set b = 5;
+SELECT not 1 between a and b;
+END
+set @@sql_mode='';
+CALL sp3();
+not 1 between a and b
+1
+SELECT @@sql_mode;
+@@sql_mode
+
+DROP PROCEDURE sp3;
+
+Testcase 4.7.4:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for combination of server sql modes
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp4;
+set @@sql_mode = 'ansi, error_for_division_by_zero';
+ERROR 42000: Variable 'sql_mode' can't be set to the value of ' error_for_division_by_zero'
+set @@sql_mode = 'ansi,error_for_division_by_zero';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,ERROR_FOR_DIVISION_BY_ZERO
+CREATE PROCEDURE sp4()
+BEGIN
+declare a int;
+declare b int;
+declare c int;
+set a = 0;
+set b = 1;
+set c = b/a;
+show warnings;
+END//
+show CREATE PROCEDURE sp4;
+Procedure sql_mode Create Procedure
+sp4 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,ERROR_FOR_DIVISION_BY_ZERO CREATE DEFINER="root"@"localhost" PROCEDURE "sp4"()
+BEGIN
+declare a int;
+declare b int;
+declare c int;
+set a = 0;
+set b = 1;
+set c = b/a;
+show warnings;
+END
+set @@sql_mode='';
+CALL sp4();
+Level Code Message
+Error 1365 Division by 0
+Warnings:
+Error 1365 Division by 0
+DROP PROCEDURE sp4;
+set @@sql_mode='';
+
+Section 3.1.8 - SHOW statement checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.8.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+DROP PROCEDURE IF EXISTS sp6a;
+DROP PROCEDURE IF EXISTS sp6b;
+DROP PROCEDURE IF EXISTS sp6c;
+CREATE PROCEDURE sp6a (i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+language sql
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+CREATE PROCEDURE sp6b (out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+deterministic
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+CREATE PROCEDURE sp6c (inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real) comment 'this is a comment'
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+show CREATE PROCEDURE sp6a;
+Procedure sql_mode Create Procedure
+sp6a CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6a`(i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+show CREATE PROCEDURE sp6b;
+Procedure sql_mode Create Procedure
+sp6b CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6b`(out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+ DETERMINISTIC
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+show CREATE PROCEDURE sp6c;
+Procedure sql_mode Create Procedure
+sp6c CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6c`(inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real)
+ COMMENT 'this is a comment'
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+SHOW PROCEDURE status like 'sp6a';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6a PROCEDURE root@localhost modified created DEFINER
+SHOW PROCEDURE status like 'sp6b';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6b PROCEDURE root@localhost modified created DEFINER
+SHOW PROCEDURE status like 'sp6c';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6c PROCEDURE root@localhost modified created DEFINER this is a comment
+DROP PROCEDURE sp6a;
+DROP PROCEDURE sp6b;
+DROP PROCEDURE sp6c;
+
+Testcase 4.8.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE sp6;
+
+Testcase 4.8.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+SHOW CREATE FUNCTION sp6;
+ERROR 42000: FUNCTION sp6 does not exist
+DROP PROCEDURE sp6;
+
+Testcase 4.8.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE FUNCTION sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns longtext
+BEGIN
+set @x=i1;
+set @y=@x;
+return 0;
+END//
+show function status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION sp6;
+
+Testcase 4.8.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7;
+show CREATE PROCEDURE sp7;
+ERROR 42000: PROCEDURE sp7 does not exist
+
+Testcase 4.8.6:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+show procedure status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.7:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+show CREATE PROCEDURE fn1;
+ERROR 42000: PROCEDURE fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 4.8.8:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+show procedure status like 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+DROP FUNCTION fn1;
+
+Testcase 4.8.9:
+--------------------------------------------------------------------------------
+
+Testcase 4.8.10:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION fn1;
+
+Testcase 4.8.11:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+show CREATE PROCEDURE fn1;
+ERROR 42000: PROCEDURE fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 4.8.12:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1(x int) returns int
+BEGIN
+return x;
+END//
+DROP FUNCTION fn1;
+show CREATE FUNCTION fn1;
+ERROR 42000: FUNCTION fn1 does not exist
+
+Testcase 4.8.13:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS f1000;
+SHOW FUNCTION STATUS LIKE 'f1000';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.14:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+SELECT * from t8;
+END//
+show CREATE FUNCTION sp1;
+ERROR 42000: FUNCTION sp1 does not exist
+DROP PROCEDURE sp1;
+
+Testcase 4.8.15:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+show function status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+DROP PROCEDURE sp6;
+
+Testcase 4.8.16:
+--------------------------------------------------------------------------------
+
+Testcase 4.8.17:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+alter procedure sp6 sql security invoker;
+alter procedure sp6 comment 'this is a new comment';
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 PROCEDURE root@localhost modified created INVOKER this is a new comment
+DROP PROCEDURE sp6;
+
+Testcase 4.8.18:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+alter function fn1 sql security invoker;
+show create function fn1;
+Function sql_mode Create Function
+fn1 CREATE DEFINER=`root`@`localhost` FUNCTION `fn1`(x int) RETURNS int(11)
+ SQL SECURITY INVOKER
+BEGIN
+return x;
+END
+DROP FUNCTION fn1;
+
+Testcase 4.8.19:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+return i1;
+END//
+alter function fn1 sql security invoker;
+alter function fn1 comment 'this is a function 3242#@%$#@';
+show function status like 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is a function 3242#@%$#@
+DROP FUNCTION fn1;
+
+Testcase 4.8.20:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 int , i2 int)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+alter procedure sp6 comment 'this is simple';
+show CREATE PROCEDURE sp6;
+Procedure sql_mode Create Procedure
+sp6 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6`(i1 int , i2 int)
+ COMMENT 'this is simple'
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+DROP PROCEDURE sp6;
+
+Testcase 4.8.21:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 int, i2 int)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+DROP PROCEDURE sp6;
+show CREATE PROCEDURE sp6;
+ERROR 42000: PROCEDURE sp6 does not exist
+
+Testcase 4.8.22:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i3;
+set @y=@x;
+END//
+DROP PROCEDURE sp6;
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.23:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+DROP FUNCTION fn1;
+show CREATE FUNCTION fn1;
+ERROR 42000: FUNCTION fn1 does not exist
+
+Testcase 4.8.24:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+return i1;
+END//
+DROP FUNCTION fn1;
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+
+Section 3.1.9 - Routine body checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.9.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+SELECT * from t9 limit 0, 100;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+-5000 a` -5000
+-4999 aaa -4999
+-4998 abaa -4998
+-4997 acaaa -4997
+-4996 adaaaa -4996
+-4995 aeaaaaa -4995
+-4994 afaaaaaa -4994
+-4993 agaaaaaaa -4993
+-4992 a^aaaaaaaa -4992
+-4991 a_aaaaaaaaa -4991
+DROP PROCEDURE sp6;
+
+Testcase 4.9.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+delete from res_t9;
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+f1 f2 f3
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+update res_t9 set f2 = 1000 where f2 = 50;
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+f1 f2 f3
+30 1000 111
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i1;
+set @y = i3;
+set @z = i5;
+set @a = @x;
+set @b = @y;
+set @c = @z;
+create table res_t9(f1 longtext, f2 longblob, f3 real);
+insert into res_t9 values (@a, @b, @c);
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+10 30 50
+DROP PROCEDURE sp6;
+drop table IF EXISTS res_t9;
+
+Testcase 4.9.6:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+SELECT * from t9 limit 0, 100;
+return i1;
+END//
+ERROR 0A000: Not allowed to return a result set from a function
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+Warnings:
+Note 1051 Unknown table 'res_t9'
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+delete from res_t9;
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+create table res_t9 (f1 longtext, f2 longblob, f3 real);
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+Warnings:
+Note 1051 Unknown table 'res_t9'
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+insert into res_t9 values (100, 'abc', 300);
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+update res_t9 set f1 = 20;
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+drop table res_t9;
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+
+Testcase 4.9.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 longtext, f2 longblob, f3 real);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i1;
+set @y = i3;
+set @z = i5;
+set @a = @x;
+set @b = @y;
+set @c = @z;
+insert into res_t9 values (@a, @b, @c);
+SELECT * from res_t9;
+create index index_1 on res_t9 (f1 (5));
+show index from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+10 30 50
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+res_t9 1 index_1 1 f1 A NULL 5 NULL YES BTREE
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Section 3.1._ - :
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.11.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1305 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @xx=1;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for 1318 set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for 1305 set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1 ();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.6:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.8:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.9:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @xx=1;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.10:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1 ();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.11:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.12:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.13:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+fetch cur1 into a, b;
+SELECT done;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.14:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+fetch cur1 into a, b;
+SELECT done;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.15:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+set @x=0;
+fetch cur1 into a, b;
+SELECT @x=1;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.16:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+set @x=0;
+fetch cur1 into a, b;
+SELECT @x=1;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+CALL h1()
+# cleanup;
+done
+0
+@x=1
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.17:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate 'HY000' set done = 1;
+open cur1;
+SELECT done;
+fetch cur1 into a;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.18:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1328 set done = 1;
+open cur1;
+SELECT done;
+fetch cur1 into a;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.19:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate 'HY000' set done = 1;
+open cur1;
+SELECT done;
+set @x=0;
+fetch cur1 into a;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.20:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1328 set done = 1;
+open cur1;
+SELECT done;
+set @x=0;
+fetch cur1 into a;
+set @x=1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.21:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1325 set done = 1;
+open cur1;
+SELECT done;
+open cur1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.22:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1325 set done = 1;
+open cur1;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.23:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1325 set done = 1;
+open cur1;
+set @x=0;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.24:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '24000' set done = 1;
+open cur1;
+set @x=0;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.25:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1326 set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.26:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '24000' set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.27:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1326 set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.28:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '24000' set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.29:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1339 set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.30:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '20000' set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.31:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1339 set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.32:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '20000' set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.33:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+CREATE PROCEDURE h1()
+BEGIN
+declare condname condition for sqlstate '20000';
+declare done int default 0;
+declare a, b char;
+declare condname condition for sqlstate '20000';
+declare cur1 cursor for SELECT w, x from t1;
+set @x=2;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+ERROR 42000: Duplicate condition: condname
+drop table res_t1;
+
+Testcase 4.11.35:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+CREATE TABLE res_t1(w INT UNIQUE, x CHAR);
+insert into res_t1 values (1, 'a');
+CREATE PROCEDURE h1 ()
+begin1_label:BEGIN
+declare condname1 condition for sqlstate '020';
+declare condname2 condition for sqlstate 'wewe';
+declare condname3 condition for 9999;
+declare exit handler for sqlstate '020' set @var1 = 1;
+declare exit handler for sqlstate 'wewe'set @var1 = 1;
+declare exit handler for 9999 set @var1 = 1;
+set @var2 = 1;
+insert into res_t1 values (2, 'b');
+begin2_label: BEGIN
+declare continue handler for sqlstate '90000023' set @var3= 1;
+set @var4 = 1;
+insert into res_t1 values (3, 'c');
+END begin2_label;
+END begin1_label//
+ERROR 42000: Bad SQLSTATE: '020'
+drop table res_t1;
+
+Testcase 4.11.36:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '00000';
+declare exit handler for condname1 set @x = 1;
+set x1 = 1;
+set x1 = 2;
+END;
+SELECT @x, x1;
+END//
+DROP PROCEDURE h1;
+
+Testcase 4.11.40:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5 int default 0;
+declare condname1 condition for sqlstate '42000';
+declare condname2 condition for sqlstate '42000';
+declare continue handler for condname1 set x1 = 1;
+declare continue handler for condname1 set x2 = 1;
+declare exit handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x4 = 1;
+declare exit handler for condname2 set x5 = 1;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+DROP PROCEDURE IF EXISTS h1;
+drop table res_t1;
+
+Testcase 4.11.41:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '00000';
+declare exit handler for sqlstate '00000' set @x = 1;
+set x1 = 1;
+set x1 = 2;
+END;
+SELECT @x, x1;
+END//
+DROP PROCEDURE IF EXISTS h1;
+
+* Testcase 3.1.2.53 (4.11.42):
+* Ensure that a handler condition of sqlwarning takes the same action as a
+* handler condition defined with an sqlstate that begins with 01.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+CREATE PROCEDURE h1()
+BEGIN
+DECLARE EXIT HANDLER FOR SQLWARNING SET @done = 1;
+set @done=0;
+set @x=1;
+insert into res_t1 values('xxx', 'yy');
+set @x=0;
+END//
+CALL h1();
+ERROR 42S02: Table 'db_storedproc.res_t1' doesn't exist
+SELECT @done, @x;
+@done @x
+0 1
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+CALL h1();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+CREATE PROCEDURE h1()
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLWARNING SET @done = 1;
+set @done=0;
+set @x=0;
+insert into res_t1 values('xxx', 'yy');
+set @x=1;
+END//
+CALL h1();
+ERROR 42S02: Table 'db_storedproc.res_t1' doesn't exist
+SELECT @done, @x;
+@done @x
+0 0
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+CALL h1();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE h1;
+DROP TABLE res_t1;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result
new file mode 100755
index 00000000000..5560fb1fd73
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result
@@ -0,0 +1,1387 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.2 - Syntax checks for the stored procedure-specific
+programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.2.8:
+-----------------
+
+Ensure that the scope of each BEGIN/END compound statement within a stored
+procedure definition is properly applied
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char DEFAULT 'x';
+declare y char DEFAULT 'y';
+set x = '1';
+set y = '2';
+label1: BEGIN
+declare x char DEFAULT 'X';
+declare y char DEFAULT 'Y';
+SELECT f1, f2 into x, y from t2 limit 1;
+SELECT '1.1', x, y;
+label2: BEGIN
+declare x char default 'a';
+declare y char default 'b';
+label3: BEGIN
+declare x char default 'c';
+declare y char default 'd';
+label4: BEGIN
+declare x char default 'e';
+declare y char default 'f';
+label5: BEGIN
+declare x char default 'g';
+declare y char default 'h';
+SELECT 5, x, y;
+END label5;
+SELECT 4, x, y;
+END label4;
+SELECT 3, x, y;
+END label3;
+SELECT 2, x, y;
+END label2;
+END label1;
+set @v1 = x;
+set @v2 = y;
+SELECT '1.2', @v1, @v2;
+END begin_label//
+CALL sp1();
+1.1 x y
+1.1 a a
+5 x y
+5 g h
+4 x y
+4 e f
+3 x y
+3 c d
+2 x y
+2 a b
+1.2 @v1 @v2
+1.2 1 2
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+
+Testcase 3.1.2.26:
+------------------
+
+Ensure that the initial value of every variable declared for a stored procedure
+is either NULL or its DEFAULT value, as appropriate.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+set @v1=0;
+set @v2=0;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x1 char default 'x';
+declare y1 char;
+declare x2 tinytext default 'tinytext';
+declare y2 tinytext;
+declare x3 datetime default '2005-10-03 12:13:14';
+declare y3 datetime;
+declare x4 float default 1.2;
+declare y4 float;
+declare x5 blob default 'b';
+declare y5 blob;
+declare x6 smallint default 127;
+declare y6 smallint;
+SELECT x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6;
+END//
+CALL sp1();
+x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6
+x tinytext 2005-10-03 12:13:14 1.2 b 127 NULL NULL NULL NULL NULL NULL
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.30:
+------------------
+
+Ensure that, when a stored procedure is called/executed, every variable always
+uses the correct value: either the value with which it is initialized or the
+value to which it is subsequently SET or otherwise assigned, as appropriate.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( IN invar INT, OUT outvar INT )
+BEGIN
+declare x integer;
+declare y integer default 1;
+set @x = x;
+set @y = y;
+set @z = 234;
+SELECT f1, f2 into @x, @y from t2 limit 1;
+SELECT @x, @y, @z, invar;
+BEGIN
+set @x = 2;
+SELECT @x, @y, @z;
+SET outvar = @x * invar + @z * @f;
+SET invar = outvar;
+BEGIN
+set @y = null, @z = 'abcd';
+SELECT @x, @y, @z;
+END;
+END;
+END//
+SET @invar = 100;
+SET @outvar = @invar;
+SET @f = 10;
+SELECT @x, @y, @z, @invar, @outvar;
+@x @y @z @invar @outvar
+NULL NULL NULL 100 100
+CALL sp1( @invar, @outvar );
+@x @y @z invar
+a` a` 234 100
+@x @y @z
+2 a` 234
+@x @y @z
+2 NULL abcd
+SELECT @x, @y, @z, @invar, @outvar;
+@x @y @z @invar @outvar
+2 NULL abcd 100 2540
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.31:
+------------------
+
+Ensure that the SELECT ... INTO statement properly assigns values to the
+variables in its variable list.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3 into @x, @y from t2 limit 1;
+SELECT @x, @y;
+END//
+CALL sp1();
+@x @y
+-5000 1000-01-01
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.32:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves multiple rows is
+rejected, with an appropriate error message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3 into @x, @y from t2;
+END//
+CALL sp1();
+ERROR 42000: Result consisted of more than one row
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.33:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves too many columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3, f2, f1 into @x, @y from t2;
+END//
+CALL sp1();
+ERROR 21000: The used SELECT statements have a different number of columns
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.34:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves too few columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer; declare z integer;
+set @x=x;
+set @y=y;
+set @z=z;
+SELECT f4 into @x, @y, @z from t2;
+END//
+CALL sp1();
+ERROR 21000: The used SELECT statements have a different number of columns
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.38:
+------------------
+
+Ensure that the scope of every condition declared is properly applied.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+SELECT '-1-', x1, x2, x3, x4, x5, x6;
+BEGIN
+declare condname condition for sqlstate '23000';
+declare continue handler for condname set x5 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+SELECT '-2-', x1, x2, x3, x4, x5, x6;
+END;
+begin1_label: BEGIN
+BEGIN
+declare condname condition for sqlstate '20000';
+declare continue handler for condname set x1 = 1;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+SELECT '-3-', x1, x2, x3, x4, x5, x6;
+begin2_label: BEGIN
+BEGIN
+declare condname condition for sqlstate '23000';
+declare exit handler for condname set x3 = 1;
+set x4= 1;
+SELECT '-4a', x1, x2, x3, x4, x5, x6;
+insert into res_t1 values ('a', 'b');
+set x4= 2;
+SELECT '-4b', x1, x2, x3, x4, x5, x6;
+END;
+SELECT '-5-', x1, x2, x3, x4, x5, x6;
+END begin2_label;
+SELECT '-6-', x1, x2, x3, x4, x5, x6;
+END;
+SELECT '-7-', x1, x2, x3, x4, x5, x6;
+END begin1_label;
+SELECT 'END', x1, x2, x3, x4, x5, x6;
+END//
+CALL h1();
+-1- x1 x2 x3 x4 x5 x6
+-1- 0 0 0 0 0 0
+-2- x1 x2 x3 x4 x5 x6
+-2- 0 0 0 0 1 1
+-3- x1 x2 x3 x4 x5 x6
+-3- 1 1 0 0 1 1
+-4a x1 x2 x3 x4 x5 x6
+-4a 1 1 0 1 1 1
+-5- x1 x2 x3 x4 x5 x6
+-5- 1 1 1 1 1 1
+-6- x1 x2 x3 x4 x5 x6
+-6- 1 1 1 1 1 1
+-7- x1 x2 x3 x4 x5 x6
+-7- 1 1 1 1 1 1
+END x1 x2 x3 x4 x5 x6
+END 1 1 1 1 1 1
+DROP TABLE IF EXISTS tnull;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE TABLE tnull(f1 int);
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42S02';
+declare continue handler for cond1 set @var2 = 1;
+BEGIN
+declare cond1 condition for sqlstate '23000';
+declare continue handler for cond1 set @var2 = 1;
+END;
+insert into tnull values(1);
+END//
+CALL sp1();
+DROP PROCEDURE h1;
+drop table res_t1;
+DROP PROCEDURE sp1;
+DROP TABLE tnull;
+
+Testcase 3.1.2.43:
+------------------
+
+Ensure that the DECLARE ... HANDLER FOR statement can not declare any handler
+for a condition declared outside of the scope of the handler.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS h2;
+drop table IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare cond_1 condition for sqlstate '23000';
+declare continue handler for cond_1 set x5 = 1;
+BEGIN
+declare cond_2 condition for sqlstate '20000';
+declare continue handler for cond_1 set x1 = 1;
+BEGIN
+declare continue handler for cond_2 set x3 = 1;
+set x2 = 1;
+END;
+set x6 = 0;
+END;
+BEGIN
+declare continue handler for cond_1 set x1 = 1;
+BEGIN
+declare continue handler for cond_2 set x3 = 1;
+set x2 = 1;
+END;
+set x6 = 0;
+END;
+END;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+ERROR 42000: Undefined CONDITION: cond_2
+CREATE PROCEDURE h2 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare condname condition for sqlstate '23000';
+declare continue handler for condname set x5 = 1;
+BEGIN
+declare condname condition for sqlstate '20000';
+declare continue handler for condname set x1 = 1;
+BEGIN
+declare condname condition for sqlstate '42000';
+declare continue handler for condname set x3 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+set x4= 0;
+CALL sp1();
+set x4= 1;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+END;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+END;
+END;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+CALL h2();
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+SELECT * FROM res_t1;
+w x
+a b
+DROP PROCEDURE h2;
+drop table res_t1;
+
+Testcase 3.1.2.44:
+------------------
+
+Ensure that the DECLARE ... HANDLER FOR statement cannot declare a handler for
+any invalid, or undeclared, condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '23000';
+BEGIN
+declare condname2 condition for sqlstate '20000';
+declare continue handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x1 = 1;
+END;
+END;
+BEGIN
+declare condname3 condition for sqlstate '42000';
+declare continue handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x5 = 1;
+declare continue handler for condname3 set x1 = 1;
+END;
+END//
+ERROR 42000: Undefined CONDITION: condname1
+CREATE PROCEDURE h1 ()
+BEGIN
+DECLARE x1 INT DEFAULT 0;
+BEGIN
+DECLARE condname1 CONDITION CHECK SQLSTATE '23000';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 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 'CHECK SQLSTATE '23000';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+' at line 5
+CREATE PROCEDURE h1 ()
+BEGIN
+DECLARE x1 INT DEFAULT 0;
+BEGIN
+DECLARE condname1 CONDITION FOR SQLSTATE 'qwert';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: 'qwert'
+
+Testcase 3.1.2.45 + 3.1.2.50:
+-----------------------------
+
+45. Ensure that the scope of every handler declared is properly applied.
+50. Ensure that a CONTINUE handler allows the execution of the stored procedure
+. to continue once the handler statement has completed its own execution (that
+. is, once the handler action statement has been executed).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p1undo;
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t1;
+==> 'UNDO' is still not supported.
+create procedure p1undo ()
+begin
+declare undo handler for sqlexception select '1';
+select * from tqq;
+SELECT 'end of 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 'undo handler for sqlexception select '1';
+select * from tqq;
+SELECT 'end of 1';
+' at line 3
+create procedure p1 ()
+begin
+declare exit handler for sqlexception select 'exit handler 1';
+begin
+declare exit handler for sqlexception select 'exit handler 2';
+begin
+declare continue handler for sqlexception select 'continue handler 3';
+drop table if exists tqq;
+select * from tqq;
+SELECT 'end of BEGIN/END 3';
+end;
+drop table if exists tqq;
+select * from tqq;
+SELECT 'end of BEGIN/END 2';
+end;
+select * from tqq;
+SELECT 'end of BEGIN/END 1';
+end;//
+call p1()//
+continue handler 3
+continue handler 3
+end of BEGIN/END 3
+end of BEGIN/END 3
+exit handler 2
+exit handler 2
+exit handler 1
+exit handler 1
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare continue handler for sqlstate '23000' set x5 = 1;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+END;
+begin1_label: BEGIN
+BEGIN
+declare continue handler for sqlstate '23000' set x1 = 1;
+insert into res_t1 values ('a', 'b');
+set x2 = 1;
+begin2_label: BEGIN
+BEGIN
+declare exit handler for sqlstate '23000' set x3 = 1;
+set x4= 1;
+insert into res_t1 values ('a', 'b');
+set x4= 0;
+END;
+END begin2_label;
+END;
+END begin1_label;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+CALL h1();
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+CREATE PROCEDURE sp1()
+begin1_label:BEGIN
+declare exit handler for sqlstate '00000' set @var1 = 5;
+set @var2 = 6;
+begin2_label:BEGIN
+declare continue handler for sqlstate '00000' set @var3 = 7;
+set @var4 = 8;
+SELECT @var3, @var4;
+END begin2_label;
+SELECT @var1, @var2;
+END begin1_label//
+CALL sp1();
+@var3 @var4
+NULL 8
+@var1 @var2
+NULL 6
+DROP PROCEDURE p1;
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+DROP TABLE res_t1;
+
+Testcase 3.1.2.50:
+------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=0;
+END//
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+SELECT @x2;
+CALL sp1(1);
+set @x=2;
+SELECT @x2, @x;
+END//
+CALL sp2();
+@x2
+NULL
+@x2 @x
+1 2
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.2.2.51:
+------------------
+
+Ensure that an EXIT handler causes the execution of the stored procedure to
+terminate, within its scope, once the handler action statement has been
+executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @x=0;
+END//
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x2=0;
+set @x=1;
+SELECT '-1-', @x2, @x;
+CALL sp1(1);
+SELECT '-2-', @x2, @x;
+set @x=2;
+END//
+CALL sp1(1);
+ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp1; expected 2, got 1
+CALL sp2();
+-1- @x2 @x
+-1- 0 1
+SELECT '-3-', @x2, @x;
+-3- @x2 @x
+-3- 1 1
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.52:
+------------------
+
+Ensure that an EXIT handler does not cause the execution of the stored procedure
+to terminate outside of its scope.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @x=0;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 2;
+set @x2 = 1;
+set @x =20;
+SELECT '-1-', @x2, @x;
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 11;
+SELECT '-2-', @x2, @x;
+CALL sp1(1);
+SELECT '-3a', @x2, @x;
+set @x=21;
+SELECT '-3b', @x2, @x;
+END;
+set @x=22;
+SELECT '-4-', @x2, @x;
+END//
+CALL sp2();
+-1- @x2 @x
+-1- 1 20
+-2- @x2 @x
+-2- 1 20
+-4- @x2 @x
+-4- 11 22
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.54:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“01“ is always exactly equivalent in action to a handler with an SQLWARNING
+condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+DROP TABLE IF EXISTS temp;
+CREATE TABLE temp( f1 CHAR, f2 CHAR);
+CREATE PROCEDURE sp0()
+BEGIN
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '01000' set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+declare continue handler for sqlwarning set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+declare exit handler for sqlstate '01000' set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+declare exit handler for sqlwarning set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+INSERT INTO temp VALUES('0', NULL);
+CALL sp0();
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Warning 1265 Data truncated for column 'f2' at row 1
+SELECT @done, @x;
+@done @x
+0 1
+INSERT INTO temp VALUES('1', NULL);
+CALL sp1();
+SELECT @done, @x;
+@done @x
+1 1
+INSERT INTO temp VALUES('2', NULL);
+CALL sp2();
+SELECT @done, @x;
+@done @x
+1 1
+INSERT INTO temp VALUES('3', NULL);
+CALL sp3();
+SELECT @done, @x;
+@done @x
+1 0
+INSERT INTO temp VALUES('4', NULL);
+CALL sp4();
+SELECT @done, @x;
+@done @x
+1 0
+SELECT * FROM temp;
+f1 f2
+0 NULL
+x y
+1 NULL
+x y
+2 NULL
+x y
+3 NULL
+x y
+4 NULL
+x y
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+DROP TABLE temp;
+
+Testcase 3.1.2.56:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“02“ is always exactly equivalent in action to a handler with a NOT FOUND
+condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp0()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare continue handler for sqlstate '02000' set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare continue handler for not found set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare exit handler for sqlstate '02000' set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare exit handler for not found set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CALL sp0();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+SELECT @done, @x;
+@done @x
+0 1
+CALL sp1();
+SELECT @done, @x;
+@done @x
+1 2
+CALL sp2();
+SELECT @done, @x;
+@done @x
+1 2
+CALL sp3();
+SELECT @done, @x;
+@done @x
+1 1
+CALL sp4();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+Testcase 3.1.2.58:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+anything other that “01“ or “02“ is always exactly equivalent in action to a
+handler with an SQLEXCEPTION condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp0()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE continue HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE continue HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE EXIT HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+CLOSE cur1;
+END//
+CALL sp0();
+ERROR 20000: Case not found for CASE statement
+SELECT '-0-', @x;
+-0- @x
+-0- 1
+CALL sp1();
+SQLSTATE
+20000
+SQLSTATE
+21000
+SQLSTATE
+24000
+SELECT '-1-', @x;
+-1- @x
+-1- 6
+CALL sp2();
+SQLSTATE
+SQLEXCEPTION
+SQLSTATE
+SQLEXCEPTION
+SQLSTATE
+24000
+SELECT '-2-', @x;
+-2- @x
+-2- 6
+CALL sp3();
+SQLSTATE
+20000
+SELECT '-3-', @x;
+-3- @x
+-3- 1
+CALL sp4();
+SQLSTATE
+SQLEXCEPTION
+SELECT '-4-', @x;
+-4- @x
+-4- 1
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+Testcase 3.1.2.65:
+------------------
+
+Ensure that FETCH <cursor name> returns the first row of the cursor_s result set
+the first time FETCH is executed, that it returns each subsequent row of the
+cursor_s result set each of the subsequent times FETCH is executed, and that it
+returns a NOT FOUND warning if it is executed after the last row of the cursor_s
+result set has already been fetched.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp;
+CREATE TABLE temp(
+cnt INT,
+f1 CHAR(20),
+f2 CHAR(20),
+f3 INT,
+f4 CHAR(20),
+f5 INT);
+INSERT INTO temp VALUES(0, 'onip', 'abc', 8760, 'xyz', 10);
+CREATE PROCEDURE sp1( )
+BEGIN
+declare proceed int default 1;
+declare count integer default 1;
+declare f1_value char(20);
+declare f2_value char(20);
+declare f5_value char(20);
+declare f4_value integer;
+declare f6_value integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3;
+open cur1;
+while proceed do
+SELECT count AS 'loop';
+fetch cur1 into f1_value, f2_value, f4_value, f5_value, f6_value;
+insert into temp values (count, f1_value, f2_value, f4_value, f5_value, f6_value);
+set count = count + 1;
+END while;
+END//
+CALL sp1();
+loop
+1
+loop
+2
+loop
+3
+loop
+4
+ERROR 02000: No data - zero rows fetched, selected, or processed
+SELECT * FROM temp;
+cnt f1 f2 f3 f4 f5
+0 onip abc 8760 xyz 10
+1 a` a` -5000 a` -5000
+2 aaa aaa -4999 aaa -4999
+3 abaa abaa -4998 abaa -4998
+DROP TABLE temp;
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.68:
+------------------
+
+Ensure that FETCH <cursor name> fails with an appropriate error message if the
+number of columns to be fetched does not match the number of variables specified
+by the FETCH statement.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--> not enough columns in FETCH statement
+CREATE PROCEDURE sp1( )
+BEGIN
+declare newf1 char(20);
+declare cur1 cursor for SELECT f1, f2 from t2 limit 10;
+declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+BEGIN
+open cur1;
+fetch cur1 into newf1;
+SELECT newf1;
+close cur1;
+END;
+END//
+--> too many columns in FETCH statement
+CREATE PROCEDURE sp2( )
+BEGIN
+declare newf1 char(20);
+declare newf2 char(20);
+declare cur1 cursor for SELECT f1 from t2 limit 10;
+declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+BEGIN
+open cur1;
+fetch cur1 into newf1, newf2;
+SELECT newf1, newf2;
+close cur1;
+END;
+END//
+--> not enough columns in FETCH statement
+CALL sp1();
+ERROR HY000: Incorrect number of FETCH variables
+--> too many columns in FETCH statement
+CALL sp2();
+ERROR HY000: Incorrect number of FETCH variables
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.75:
+------------------
+
+Ensure that, for nested compound statements, a cursor that was declared and
+opened during an outer level of the statement is not closed when an inner level
+of a compound statement ends.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS temp1;
+DROP PROCEDURE IF EXISTS sp1;
+create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) );
+SELECT f1, f2, f4, f5 from t2;
+f1 f2 f4 f5
+a` a` -5000 a`
+aaa aaa -4999 aaa
+abaa abaa -4998 abaa
+acaaa acaaa -4997 acaaa
+adaaaa adaaaa -4996 adaaaa
+aeaaaaa aeaaaaa -4995 aeaaaaa
+afaaaaaa afaaaaaa -4994 afaaaaaa
+agaaaaaaa agaaaaaaa -4993 agaaaaaaa
+a^aaaaaaaa a^aaaaaaaa -4992 a^aaaaaaaa
+a_aaaaaaaaa a_aaaaaaaaa -4991 a_aaaaaaaaa
+CREATE PROCEDURE sp1( )
+BEGIN
+declare count integer;
+declare from0 char(20);
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf5 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+open cur1;
+open cur2;
+BEGIN
+declare continue handler for sqlstate '02000' set count = 1;
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-1-', count, newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur1_out', newf1, newf2, newf4, newf5);
+set count = 4;
+BEGIN
+while count > 0 do
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-2-', count, newf1, newf2, newf4, newf5;
+set count = count - 1;
+END while;
+SELECT '-3-', count, newf1, newf2, newf4, newf4;
+END;
+BEGIN
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-4-', newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur1_in', newf1, newf2, newf4, newf5);
+END;
+fetch cur2 into newf1, newf2, newf4, newf5;
+SELECT '-5-', newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur2', newf1, newf2, newf4, newf5);
+close cur1;
+END;
+fetch cur2 into newf1, newf2, newf4, newf5;
+SELECT '-6-', newf1, newf2, newf4, newf5;
+close cur2;
+END//
+CALL sp1();
+-1- count newf1 newf2 newf4 newf5
+-1- NULL a` a` -5000 a`
+-2- count newf1 newf2 newf4 newf5
+-2- 4 aaa aaa -4999 aaa
+-2- count newf1 newf2 newf4 newf5
+-2- 3 abaa abaa -4998 abaa
+-2- count newf1 newf2 newf4 newf5
+-2- 2 acaaa acaaa -4997 acaaa
+-2- count newf1 newf2 newf4 newf5
+-2- 1 adaaaa adaaaa -4996 adaaaa
+-3- count newf1 newf2 newf4 newf4
+-3- 0 adaaaa adaaaa -4996 -4996
+-4- newf1 newf2 newf4 newf5
+-4- adaaaa adaaaa -4996 adaaaa
+-5- newf1 newf2 newf4 newf5
+-5- a` a` -5000 a`
+-6- newf1 newf2 newf4 newf5
+-6- aaa aaa -4999 aaa
+SELECT * from temp1;
+f0 f1 f2 f3 f4
+cur1_out a` a` -5000 a`
+cur1_in adaaaa adaaaa -4996 adaaaa
+cur2 a` a` -5000 a`
+DROP PROCEDURE sp1;
+drop table temp1;
+
+Testcase 3.1.2.76:
+------------------
+
+Ensure that all cursors operate asensitively, so that there is no concurrency
+conflict between cursors operating on the same, or similar, sets of results
+during execution of one or more stored procedures.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS temp1;
+drop table IF EXISTS temp2;
+create table temp1( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+create table temp2( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+CREATE PROCEDURE sp_inner( )
+BEGIN
+declare proceed int default 1;
+declare i_count integer default 20;
+declare i_newf1 char(20);
+declare i_newf2 char(20);
+declare i_newf3 date;
+declare i_newf4 integer;
+declare i_newf11 char(20);
+declare i_newf12 char(20);
+declare i_newf13 date;
+declare i_newf14 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4;
+declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3;
+declare continue handler for sqlstate '02000' set proceed=0;
+open cur1;
+open cur2;
+set i_count = 10;
+while proceed do
+fetch cur1 into i_newf1, i_newf2, i_newf3, i_newf4;
+IF proceed THEN
+insert into temp1 values ('sp_inner', i_count, i_newf1, i_newf2, i_newf3, i_newf4);
+fetch cur2 into i_newf11, i_newf12, i_newf13, i_newf14;
+IF proceed THEN
+insert into temp2 values ('sp_inner', i_count, i_newf11, i_newf12, i_newf13, i_newf14);
+END IF;
+END IF;
+set i_count = i_count - 1;
+END while;
+close cur1;
+close cur2;
+END//
+CREATE PROCEDURE sp_outer( )
+BEGIN
+DECLARE proceed INT DEFAULT 1;
+DECLARE o_count INTEGER DEFAULT 20;
+DECLARE o_newf1 CHAR(20);
+DECLARE o_newf2 CHAR(20);
+DECLARE o_newf3 DATE;
+DECLARE o_newf4 INTEGER;
+DECLARE o_newf11 CHAR(20);
+DECLARE o_newf12 CHAR(20);
+DECLARE o_newf13 DATE;
+DECLARE o_newf14 INTEGER;
+DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0;
+OPEN cur1;
+OPEN cur2;
+SET o_count = 1;
+WHILE proceed DO
+FETCH cur1 INTO o_newf1, o_newf2, o_newf3, o_newf4;
+IF proceed THEN
+INSERT INTO temp1 VALUES ('_sp_out_', o_count, o_newf1, o_newf2, o_newf3, o_newf4);
+CALL sp_inner();
+FETCH cur2 INTO o_newf11, o_newf12, o_newf13, o_newf14;
+IF proceed THEN
+INSERT INTO temp2 VALUES ('_sp_out_', o_count, o_newf11, o_newf12, o_newf13, o_newf14);
+END IF;
+END IF;
+SET o_count = o_count + 1;
+END WHILE;
+CLOSE cur1;
+CLOSE cur2;
+END//
+CALL sp_outer();
+SELECT * FROM temp1;
+f0 cnt f1 f2 f3 f4
+_sp_out_ 1 a` a` 1000-01-01 -5000
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 2 aaa aaa 1000-01-02 -4999
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 3 abaa abaa 1000-01-03 -4998
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 4 acaaa acaaa 1000-01-04 -4997
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 5 adaaaa adaaaa 1000-01-05 -4996
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+SELECT * FROM temp2;
+f0 cnt f1 f2 f3 f4
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 1 a` a` 1000-01-01 -5000
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 2 aaa aaa 1000-01-02 -4999
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 3 abaa abaa 1000-01-03 -4998
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 4 acaaa acaaa 1000-01-04 -4997
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 5 adaaaa adaaaa 1000-01-05 -4996
+DROP PROCEDURE sp_outer;
+DROP PROCEDURE sp_inner;
+DROP TABLE temp1;
+DROP TABLE temp2;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result
new file mode 100755
index 00000000000..fe400ceeb6d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result
@@ -0,0 +1,490 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.3 - Syntax checks for the stored procedure-specific flow
+control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.3.7:
+-----------------
+
+Ensure that the IF statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp9;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp9( action char(20), subaction char(20) )
+BEGIN
+if action = 'action' then
+if subaction = 'subaction' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction' , 1);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 2);
+END if;
+else
+if subaction = 'subaction'
+ then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction' , 3);
+elseif subaction = 'subaction1'
+ then
+BEGIN
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values ('none', 'subaction1', 4);
+END;
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 5);
+END if;
+END if;
+END//
+CALL sp9( 'action', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=1;
+f1 f2 f3
+action subaction 1
+CALL sp9( 'temp', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=3;
+f1 f2 f3
+none subaction 3
+CALL sp9( 'temp', 'subaction1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=4;
+f1 f2 f3
+none subaction1 4
+CALL sp9( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=2;
+f1 f2 f3
+action none 2
+CALL sp9( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=5;
+f1 f2 f3
+none none 5
+DROP PROCEDURE sp9;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.8.:
+------------------
+
+Ensure that the CASE statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp10;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp10( action char(20), subaction char(20) )
+BEGIN
+case action
+when 'action' then
+case
+when subaction = 'subaction_1' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 1);
+when subaction = 'subaction_2' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 2);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 3);
+END case;
+else
+case
+when subaction = 'subaction_1' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_1' , 4);
+when subaction = 'subaction_2' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_2' , 5);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 6);
+END case;
+END case;
+END//
+CALL sp10( 'action', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action subaction_2 1
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'action', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action subaction_2 2
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none subaction_1 4
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none subaction_2 5
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action none 3
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none none 6
+DROP PROCEDURE sp10;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.9 + 3.1.3.15:
+----------------------------
+
+09. Ensure that the LOOP statement acts correctly for all variants, including
+. cases where statements are nested.
+15. Ensure that the LEAVE statement acts correctly for all variants, including
+. cases where statements are nested.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp11;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp11( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: loop
+if count2 > 3 then leave label1;
+END if;
+set count1 = 1;
+label2: loop
+if count1 > 4 then leave label2;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate label2;
+END loop label2;
+set count2 = count2 + 1;
+iterate label1;
+END loop label1;
+END//
+CALL sp11();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+DROP PROCEDURE sp11;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.16:
+------------------
+
+Ensure that the ITERATE statement acts correctly for all variants, including
+cases where statements are nested.
+(tests for this testcase are also included in other testcases)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp31316;
+CREATE PROCEDURE sp31316( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: loop
+if count2 > 3 then leave label1;
+END if;
+set count1 = 1;
+label2: loop
+if count1 > 4 then leave label2;
+END if;
+insert into temp values( count1, count2);
+set count1 = count1 + 1;
+iterate label3;
+END loop label2;
+set count2 = count2 + 1;
+iterate label1;
+END loop label1;
+END//
+ERROR 42000: ITERATE with no matching label: label3
+
+Testcase 3.1.3.18:
+------------------
+
+Ensure that the REPEAT statement acts correctly for all variants, including
+cases where statements are nested.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp17;
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp17( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+repeat
+set count1 = count1 + 1;
+set count2 = 1;
+label1: repeat
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count2 > 3
+END repeat label1;
+until count1 > 3
+END repeat;
+END//
+CALL sp17();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+xyz pqr 2
+xyz pqr 2
+xyz pqr 3
+xyz pqr 3
+xyz pqr 3
+xyz pqr 4
+xyz pqr 4
+xyz pqr 4
+DROP PROCEDURE sp17;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.24:
+------------------
+
+Ensure that the WHILE statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t21;
+DROP PROCEDURE IF EXISTS sp21;
+create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);
+insert into res_t21 values('ashwin', 'mokadam', 25);
+CREATE PROCEDURE sp21( )
+BEGIN
+declare count1 integer default 0;
+declare count2 integer default 0;
+while count1 < 3 do
+BEGIN
+declare ithisissamevariablename int default 100;
+SELECT ithisissamevariablename;
+BEGIN
+declare ithisissamevariablename int default 200;
+SELECT ithisissamevariablename;
+END;
+set count2 = 0;
+label1: while count2 < 3 do
+BEGIN
+declare count1 integer default 7;
+set count2 = count2 + 1;
+insert into res_t21 values( 'xyz' , 'pqr', count2);
+label2: while count1 < 10 do
+set count1 = count1 + 1;
+insert into res_t21 values( 'xyz' , 'pqr', count1);
+END while label2;
+END;
+END while label1;
+set count1 = count1 + 1;
+END;
+END while;
+END//
+CALL sp21();
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+SELECT * from res_t21;
+name surname age_averylongfieldname_averylongname_1234569
+ashwin mokadam 25
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+DROP PROCEDURE sp21;
+drop table res_t21;
+
+Testcase 3.1.3.30:
+------------------
+
+Ensure that multiple cases of all possible combinations of the control flow
+statements, nested within multiple compound statements within a stored
+procedure, always act correctly and return the expected result.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_tbl;
+DROP PROCEDURE IF EXISTS sp31330;
+create table res_tbl (f1 int, f2 text, f3 blob, f4 date,
+f5 set('one', 'two', 'three', 'four', 'five') default 'one');
+CREATE PROCEDURE sp31330 (path int)
+BEGIN
+declare count int default 1;
+declare var1 text;
+declare var2 blob;
+declare var3 date;
+declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';
+case
+when path=1 then
+set var3 = '2000-11-09';
+set var1 = 'flowing through case 1';
+label1: loop
+if count > 5 then
+if var4=1000 then
+set var2 = 'exiting out of case 1 - invalid SET';
+END if;
+if var4='two' then
+set var2 = 'exiting out of case 1';
+END if;
+insert into res_tbl values (1, var1, var2, var3, (count-2));
+leave label1;
+elseif count = 5 then
+set count= count + 2;
+set var4='two';
+iterate label1;
+else
+set count= count + 1;
+END if;
+set var4='one';
+END loop label1;
+when path=2 then
+set var3 = '1989-11-09';
+set var1 = 'flowing through case 2';
+set @count3=0;
+label2: repeat
+set count=count + 1;
+set @count2=1;
+while @count2 <= 5 do
+set @count2 = @count2 + 1;
+END while;
+SELECT @count2;
+set @count3=@count3 + @count2;
+until count > 5
+END repeat label2;
+set var2 = 'exiting out of case 2';
+set var4 = count-3;
+SELECT @count3;
+insert into res_tbl values (2, var1, var2, var3, var4);
+ELSE BEGIN
+set @error_opt='undefined path specified';
+SELECT @error_opt;
+END;
+END case;
+END//
+CALL sp31330();
+ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp31330; expected 1, got 0
+CALL sp31330(1);
+SELECT * from res_tbl;
+f1 f2 f3 f4 f5
+1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
+CALL sp31330(2);
+@count2
+6
+@count2
+6
+@count2
+6
+@count2
+6
+@count2
+6
+@count3
+30
+SELECT * from res_tbl;
+f1 f2 f3 f4 f5
+1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
+2 flowing through case 2 exiting out of case 2 1989-11-09 one,two
+CALL sp31330(4);
+@error_opt
+undefined path specified
+DROP PROCEDURE sp31330;
+drop table res_tbl;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result
new file mode 100644
index 00000000000..ce3a882000b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result
@@ -0,0 +1,399 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.6 - Privilege Checks:
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+
+root@localhost db_storedproc_1
+
+Testcase 3.1.6.1:
+-----------------
+Ensure that no user may create a stored procedure without the GRANT CREATE
+ROUTINE privilege.
+--------------------------------------------------------------------------------
+create user 'user_1'@'localhost';
+grant all on db_storedproc_1.* to 'user_1'@'localhost';
+revoke create routine on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+DROP PROCEDURE IF EXISTS sp1;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
+
+root@localhost db_storedproc_1
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+
+root@localhost db_storedproc_1
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp1;
+
+Testcase 3.1.6.2:
+-----------------
+Ensure that root always has the GRANT CREATE ROUTINE privilege.
+(checked by other testscases)
+--------------------------------------------------------------------------------
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+DROP PROCEDURE IF EXISTS sp3;
+DROP FUNCTION IF EXISTS fn1;
+CREATE PROCEDURE sp3(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+CREATE FUNCTION fn1(v1 int) returns int
+BEGIN
+return v1;
+END//
+
+root@localhost db_storedproc_1
+drop user 'user_1'@'localhost';
+DROP PROCEDURE sp3;
+DROP FUNCTION fn1;
+Warnings:
+Error 1133 Can't find any matching row in the user table
+Error 1269 Can't revoke all privileges for one or more of the requested users
+Warning 1405 Failed to revoke all privileges to dropped routine
+
+Testcase 3.1.6.4:
+-----------------
+Ensure that the default security provision of a stored procedure is SQL SECURITY
+DEFINER.
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+grant update on db_storedproc_1.t6 to 'user_1'@'localhost';
+grant execute on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+USE db_storedproc_1;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CALL sp4('a');
+f1 f2 f3 f4 f5 f6
+SELECT SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE,
+ROUTINE_BODY, ROUTINE_DEFINITION, IS_DETERMINISTIC,
+SQL_DATA_ACCESS, SECURITY_TYPE, SQL_MODE, ROUTINE_COMMENT
+FROM information_schema.routines
+WHERE routine_schema LIKE 'db_sto%';
+SPECIFIC_NAME sp4
+ROUTINE_SCHEMA db_storedproc_1
+ROUTINE_NAME sp4
+ROUTINE_TYPE PROCEDURE
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION NULL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SECURITY_TYPE DEFINER
+SQL_MODE
+ROUTINE_COMMENT
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp4;
+DROP USER 'user_1'@'localhost';
+
+Testcase 3.1.6.5:
+-----------------
+Ensure that a stored procedure defined with SQL SECURITY DEFINER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user who created the stored procedure.
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+CREATE TABLE t3165 ( c1 char(20), c2 char(20), c3 date);
+INSERT INTO t3165 VALUES ('inserted', 'outside of SP', NULL);
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+grant SELECT on db_storedproc_1.* to 'user_2'@'localhost';
+grant execute on db_storedproc_1.* to 'user_2'@'localhost';
+flush privileges;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+CREATE PROCEDURE sp5_s_i () sql security definer
+BEGIN
+SELECT * from db_storedproc_1.t3165;
+insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_s_i', 1000);
+END//
+CREATE PROCEDURE sp5_sel () sql security definer
+BEGIN
+SELECT * from db_storedproc_1.t3165;
+END//
+CREATE PROCEDURE sp5_ins () sql security definer
+BEGIN
+insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_ins', 1000);
+END//
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+grant insert on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+CALL sp5_ins();
+CALL sp5_sel();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+
+root@localhost db_storedproc_1
+REVOKE INSERT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+
+root@localhost db_storedproc_1
+REVOKE SELECT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp5_s_i;
+DROP PROCEDURE sp5_sel;
+DROP PROCEDURE sp5_ins;
+DROP TABLE t3165;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+Testcase 3.1.6.6:
+-----------------
+Ensure that a stored procedure defined with SQL SECURITY INVOKER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user executing the stored procedure.
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+CREATE TABLE t3166 ( c1 char(30) );
+INSERT INTO db_storedproc_1.t3166 VALUES ('inserted outside SP');
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc_1.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+CREATE PROCEDURE sp3166_s_i () SQL SECURITY INVOKER
+BEGIN
+SELECT * from db_storedproc_1.t3166;
+insert into db_storedproc_1.t3166 values ('inserted from sp3166_s_i');
+END//
+CREATE PROCEDURE sp3166_sel () SQL SECURITY INVOKER
+BEGIN
+SELECT * from db_storedproc_1.t3166;
+END//
+CREATE PROCEDURE sp3166_ins () SQL SECURITY INVOKER
+BEGIN
+insert into db_storedproc_1.t3166 values ('inserted from sp3166_ins');
+END//
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+c1
+inserted outside SP
+ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_ins();
+ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_sel();
+c1
+inserted outside SP
+
+root@localhost db_storedproc_1
+CALL sp3166_sel();
+c1
+inserted outside SP
+GRANT INSERT ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+c1
+inserted outside SP
+CALL sp3166_ins();
+CALL sp3166_sel();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+
+root@localhost db_storedproc_1
+CALL sp3166_sel();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+REVOKE SELECT ON db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_ins();
+CALL sp3166_sel();
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_s_i();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+inserted from sp3166_ins
+
+root@localhost db_storedproc_1
+REVOKE EXECUTE on db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_s_i'
+CALL sp3166_ins();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_ins'
+CALL sp3166_sel();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_sel'
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp3166_s_i;
+DROP PROCEDURE sp3166_sel;
+DROP PROCEDURE sp3166_ins;
+DROP TABLE t3166;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result
new file mode 100755
index 00000000000..cbe20882ec2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result
@@ -0,0 +1,172 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.7 - SQL mode checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 3.1.7.1:
+-----------------
+Ensure that the sql_mode setting in effect at the time a stored procedure is
+created is the same setting under which the stored procedure runs when it is
+called/executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp_tbl;
+DROP TABLE IF EXISTS result;
+CREATE TABLE temp_tbl (f1 tinyint);
+CREATE TABLE result (f1 text(200), f2 char(20));
+set @@sql_mode='traditional';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+CREATE PROCEDURE sp1()
+BEGIN
+declare a tinyint;
+declare count_ int default 1;
+declare continue handler for sqlstate '22003' set count_=1000;
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode into @cur_val_sql_mode;
+insert into temp_tbl values (1000);
+if count_ = 1000 THEN
+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//
+SHOW CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+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;
+declare count_ int default 1;
+declare continue handler for sqlstate '22003' set count_=1000;
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode into @cur_val_sql_mode;
+insert into temp_tbl values (1000);
+if count_ = 1000 THEN
+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
+set @@sql_mode='';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode
+CALL sp1();
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+SELECT * from result;
+f1 f2
+STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode
+SELECT @@sql_mode;
+@@sql_mode
+
+SET @@sql_mode='TRADITIONAL';
+DROP PROCEDURE sp1;
+DROP TABLE temp_tbl;
+DROP TABLE result;
+
+Testcase 3.1.7.2:
+-----------------
+Ensure that if the sql_mode setting is changed when a stored procedure is run,
+that the original setting is restored as soon as the stored procedure execution
+is complete.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+... show initial value
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+CREATE PROCEDURE sp2()
+BEGIN
+SET @@sql_mode='MAXDB';
+SHOW VARIABLES LIKE 'sql_mode';
+END//
+SHOW CREATE PROCEDURE sp2;
+Procedure sql_mode Create Procedure
+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
+... show value prior calling procedure
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+... call procedure that changes sql_mode
+CALL sp2();
+Variable_name Value
+sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
+... check whether old value is re-set
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP PROCEDURE sp2;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result
new file mode 100755
index 00000000000..91a3a954f57
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result
@@ -0,0 +1,637 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.8 - SHOW statement checks:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.8.9:
+-----------------
+
+Ensure that all stored procedure changes made with ALTER PROCEDURE or ALTER
+FUNCTION are properly recorded and displayed when a SHOW CREATE PROCEDURE or
+SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE
+FUNCTION STATUS statement (respectively) is executed.
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn_1;
+DROP FUNCTION IF EXISTS fn_2;
+DROP PROCEDURE IF EXISTS sp_1;
+DROP PROCEDURE IF EXISTS sp_2;
+CREATE PROCEDURE sp_1 (i1 int)
+BEGIN
+set @x=i1;
+END//
+CREATE PROCEDURE sp_2 (i1 int) SQL SECURITY INVOKER COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+END//
+CREATE FUNCTION fn_1 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns year
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END//
+CREATE FUNCTION fn_2 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+RETURNS YEAR
+SQL SECURITY INVOKER
+COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END//
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT created with INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT created with INVOKER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment created with INVOKER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment created with INVOKER
+
+... now change some stuff:
+--------------------------
+ALTER PROCEDURE sp_1 SQL SECURITY INVOKER;
+ALTER PROCEDURE sp_1 COMMENT 'new comment, SP changed to INVOKER';
+ALTER PROCEDURE sp_2 SQL SECURITY DEFINER;
+ALTER PROCEDURE sp_2 DROP COMMENT;
+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 'DROP COMMENT' at line 1
+ALTER PROCEDURE sp_2 COMMENT 'SP changed to DEFINER';
+ALTER PROCEDURE sp_2 READS SQL DATA;
+ALTER FUNCTION fn_1 SQL SECURITY INVOKER;
+ALTER FUNCTION fn_1 COMMENT 'new comment, FN changed to INVOKER';
+ALTER FUNCTION fn_1 NO SQL;
+ALTER FUNCTION fn_2 SQL SECURITY DEFINER;
+ALTER FUNCTION fn_2 COMMENT 'FN changed to DEFINER';
+ALTER FUNCTION fn_2 MODIFIES SQL DATA;
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS NO SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, FN changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS MODIFIES SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT FN changed to DEFINER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, SP changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS READS SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT SP changed to DEFINER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ NO SQL
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, FN changed to INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ MODIFIES SQL DATA
+ COMMENT 'FN changed to DEFINER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, SP changed to INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ READS SQL DATA
+ COMMENT 'SP changed to DEFINER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, FN changed to INVOKER
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment FN changed to DEFINER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, SP changed to INVOKER
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment SP changed to DEFINER
+
+... change back to default and check result:
+--------------------------------------------
+ALTER FUNCTION fn_2 CONTAINS SQL;
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS NO SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, FN changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT FN changed to DEFINER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, SP changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS READS SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT SP changed to DEFINER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ NO SQL
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, FN changed to INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ COMMENT 'FN changed to DEFINER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, SP changed to INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ READS SQL DATA
+ COMMENT 'SP changed to DEFINER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, FN changed to INVOKER
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment FN changed to DEFINER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, SP changed to INVOKER
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment SP changed to DEFINER
+
+... cleanup
+-----------
+DROP FUNCTION fn_1;
+DROP FUNCTION fn_2;
+DROP PROCEDURE sp_1;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result
new file mode 100755
index 00000000000..ec2b4850d30
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result
@@ -0,0 +1,321 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.10 - CALL checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 3.1.10.2 + 3.1.10.5:
+-----------------------------
+
+2. Ensure that a procedure cannot be called if the appropriate privileges do not
+exist.
+5. Ensure that a function cannot be executed if the appropriate privileges do
+not exist.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp31102;
+DROP FUNCTION IF EXISTS fn31105;
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+GRANT CREATE ROUTINE ON db_storedproc.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc
+CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER
+BEGIN
+SELECT * FROM db_storedproc.t1 LIMIT 1;
+END//
+CREATE FUNCTION fn31105(n INT) RETURNS INT
+BEGIN
+DECLARE res INT;
+SET res = n * n;
+RETURN res;
+END//
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
+SELECT fn31105( 9 );
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
+
+root@localhost db_storedproc
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+GRANT EXECUTE ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+
+root@localhost db_storedproc
+REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
+SELECT fn31105( 9 );
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
+
+root@localhost db_storedproc
+DROP PROCEDURE sp31102;
+DROP FUNCTION fn31105;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+Testcase 3.1.10.3:
+------------------
+
+Ensure that a function can never be called.
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1(a int) returns int
+BEGIN
+set @b = 0.9 * a;
+return @b;
+END//
+CALL fn1();
+ERROR 42000: PROCEDURE db_storedproc.fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 3.1.10.6:
+------------------
+
+Ensure that a procedure can never be executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+SELECT * from t10;
+END//
+SELECT sp1();
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+DROP PROCEDURE sp1;
+
+Testcase 3.1.10.7:
+------------------
+
+Ensure that the ROW_COUNT() SQL function always returns the correct number of
+rows affected by the execution of a stored procedure.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp_ins_1;
+DROP PROCEDURE IF EXISTS sp_ins_3;
+DROP PROCEDURE IF EXISTS sp_upd;
+DROP PROCEDURE IF EXISTS sp_ins_upd;
+CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT);
+INSERT INTO temp SELECT * FROM t10;
+CREATE PROCEDURE sp_ins_1()
+BEGIN
+INSERT INTO temp VALUES ('abc', 'abc', '20051003', 100, 'uvw', 1000);
+END//
+CREATE PROCEDURE sp_ins_3()
+BEGIN
+INSERT INTO temp VALUES ('abc', 'xyz', '19490523', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('abc', 'xyz', '1989-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('abc', 'xyz', '2005-10-24', 100, 'uvw', 1000);
+END//
+CREATE PROCEDURE sp_upd()
+BEGIN
+UPDATE temp SET temp.f1 = 'updated' WHERE temp.f1 ='abc';
+END//
+CREATE PROCEDURE sp_ins_upd()
+BEGIN
+BEGIN
+INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000);
+END;
+SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1;
+UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc';
+END//
+CALL sp_ins_1();
+SELECT row_count();
+row_count()
+1
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+abc abc 2005-10-03 100 uvw 1000
+CALL sp_ins_3();
+SELECT row_count();
+row_count()
+1
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+abc abc 2005-10-03 100 uvw 1000
+abc xyz 1949-05-23 100 uvw 1000
+abc xyz 1989-11-09 100 uvw 1000
+abc xyz 2005-10-24 100 uvw 1000
+CALL sp_upd();
+SELECT row_count();
+row_count()
+4
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+updated abc 2005-10-03 100 uvw 1000
+updated xyz 1949-05-23 100 uvw 1000
+updated xyz 1989-11-09 100 uvw 1000
+updated xyz 2005-10-24 100 uvw 1000
+CALL sp_ins_upd();
+COUNT( f1 ) f1
+1 aaa
+1 abaa
+1 acaaa
+1 adaaaa
+1 aeaaaaa
+1 afaaaaaa
+1 agaaaaaaa
+1 a^aaaaaaaa
+1 a_aaaaaaaaa
+1 a`
+4 qwe
+4 updated
+SELECT row_count();
+row_count()
+3
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+updated abc 2005-10-03 100 uvw 1000
+updated xyz 1949-05-23 100 uvw 1000
+updated xyz 1989-11-09 100 uvw 1000
+updated xyz 2005-10-24 100 uvw 1000
+updated_2 abc 1989-11-09 100 uvw 1000
+qwe xyz 1998-03-26 100 uvw 1000
+updated_2 abc 2000-11-09 100 uvw 1000
+updated_2 abc 2005-11-07 100 uvw 1000
+DROP PROCEDURE sp_ins_1;
+DROP PROCEDURE sp_ins_3;
+DROP PROCEDURE sp_upd;
+DROP PROCEDURE sp_ins_upd;
+DROP TABLE temp;
+
+Testcase 3.1.10.8:
+------------------
+
+Ensure that the mysql_affected_rows() C API function always returns the correct
+number of rows affected by the execution of a stored procedure.
+--------------------------------------------------------------------------------
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result
new file mode 100644
index 00000000000..56f20781995
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result
@@ -0,0 +1,364 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase: 3.5.1.1:
+------------------
+use test;
+Create trigger trg1_1 BEFORE INSERT
+on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+Create trigger trg1_2 AFTER INSERT
+on tb3 for each row set @test_after = 6;
+Create trigger trg1_4 BEFORE UPDATE
+on tb3 for each row set @test_before = 27,
+new.f142 = @test_before,
+new.f122 = 'Before Update Trigger';
+Create trigger trg1_3 AFTER UPDATE
+on tb3 for each row set @test_after = '15';
+Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+select count(*) into @test_before from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+Create trigger trg1_6 AFTER DELETE on tb3 for each row
+select count(*) into @test_after from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+set @test_before = 1;
+set @test_after = 5;
+select @test_before, @test_after;
+@test_before @test_after
+1 5
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 First Row 2 0000000005 1
+select @test_before, @test_after;
+@test_before @test_after
+2 6
+set @test_before = 18;
+set @test_after = 8;
+select @test_before, @test_after;
+@test_before @test_after
+18 8
+Update tb3 set tb3.f122 = 'Update',
+tb3.f142 = @test_before,
+tb3.f144 = @test_after
+where tb3.f121 = 'Test 3.5.1.1';
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+27 15
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+set @test_before = 0;
+set @test_after = 0;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+Test 3.5.1.1 Second Row 2 0000000006 2
+select @test_before, @test_after;
+@test_before @test_after
+0 0
+Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+2 1
+drop trigger trg1_1;
+drop trigger trg1_2;
+drop trigger trg1_3;
+drop trigger trg1_4;
+drop trigger trg1_5;
+drop trigger trg1_6;
+delete from tb3 where f121='Test 3.5.1.1';
+
+Testcase: 3.5.1.2:
+------------------
+Create trigger trg_1 after insert
+on tb3 for each statement set @x= 1;
+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 'statement set @x= 1' at line 2
+drop trigger trg_1;
+
+Testcase 3.5.1.3:
+-----------------
+CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+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 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
+CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+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 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
+CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+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 @ret1 = 'test' for each row' at line 1
+CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+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 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
+CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = '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 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
+drop trigger trg3_1;
+drop trigger trg3_2;
+drop trigger trg3_3;
+drop trigger trg3_4;
+drop trigger trg3_5;
+
+Testcase: 3.5.1.5:
+------------------
+CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+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 'on tb3 for each row set new.f120 = 'e'' at line 1
+CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+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 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
+CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+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 'tb3 for each row set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+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 new.f120 = 'g'' at line 1
+CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+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 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+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 'for each row set new.f120 = 'g'' at line 1
+drop trigger trg4_1;
+drop trigger trg4_2;
+drop trigger trg4_3;
+drop trigger trg4_4;
+drop trigger trg4_5;
+drop trigger trg4_6;
+
+Testcase 3.5.1.6: - Need to fix
+-------------------------------
+
+Testcase 3.5.1.7: - need to fix
+-------------------------------
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (f1 int, f2 char(25),f3 int) engine=innodb;
+CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+for each row set new.f3 = '14';
+CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+insert into t1 (f2) values ('insert 3.5.1.7');
+select * from t1;
+f1 f2 f3
+NULL insert 3.5.1.7 14
+update t1 set f2='update 3.5.1.7';
+select * from t1;
+f1 f2 f3
+NULL update 3.5.1.7 42
+select trigger_name from information_schema.triggers;
+trigger_name
+trg5_1
+trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
+drop trigger trg5_1;
+drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+drop table t1;
+
+Testcase 3.5.1.8:
+-----------------
+CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+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 '* before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+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 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+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 '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+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 '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+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 '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+for each row set new.f120 ='X';
+ERROR HY000: Trigger in wrong schema
+drop database if exists trig_db;
+create database trig_db;
+use trig_db;
+create table t1 (f1 integer) engine = innodb;
+use test;
+CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
+for each row set @ret_trg6_2 = 5;
+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;
+ERROR HY000: Trigger in wrong schema
+use test;
+drop database trig_db;
+drop trigger trg6_1;
+drop trigger trg6_3;
+
+Testcase 3.5.1.9:(cannot be inplemented at this point)
+------------------------------------------------------
+
+Testcase 3.5.1.10:
+------------------
+CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+ERROR HY000: Trigger already exists
+drop trigger trg7_1;
+
+Testcase 3.5.1.?:
+-----------------
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create table t2 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig t1';
+create trigger trig before update on t2
+for each row set new.f1 ='trig t2';
+ERROR HY000: Trigger already exists
+insert into t1 value ('insert to t1',1);
+select * from t1;
+f1 f2
+trig t1 1
+update t1 set f1='update to t1';
+select * from t1;
+f1 f2
+update to t1 1
+insert into t2 value ('insert to t2',2);
+update t2 set f1='update to t1';
+select * from t2;
+f1 f2
+update to t1 2
+drop table t1;
+drop table t2;
+drop trigger trig;
+
+Testcase 3.5.1.11:
+------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+drop database if exists trig_db3;
+create database trig_db1;
+create database trig_db2;
+create database trig_db3;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig1', @test_var1='trig1';
+use trig_db2;
+create table t2 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t2
+for each row set new.f1 ='trig2', @test_var2='trig2';
+use trig_db3;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig3', @test_var3='trig3';
+set @test_var1= '', @test_var2= '', @test_var3= '';
+use trig_db1;
+insert into t1 (f1,f2) values ('insert to db1 t1',1);
+insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1 trig2 trig3
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+select * from trig_db2.t2;
+f1 f2
+trig2 3
+select * from trig_db3.t1;
+f1 f2
+trig3 4
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+use test;
+drop database trig_db1;
+drop database trig_db2;
+drop database trig_db3;
+
+Testcase 3.5.2.1/2/3:
+---------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+create database trig_db1;
+create database trig_db2;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create table trig_db2.t1 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig1_b before insert on t1
+for each row set @test_var1='trig1_b';
+create trigger trig_db1.trig1_a after insert on t1
+for each row set @test_var2='trig1_a';
+create trigger trig_db2.trig2 before insert on trig_db2.t1
+for each row set @test_var3='trig2';
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+trig_db1 trig1_b t1
+trig_db1 trig1_a t1
+trig_db2 trig2 t1
+set @test_var1= '', @test_var2= '', @test_var3= '';
+insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1_b trig1_a trig2
+drop database trig_db1;
+drop database trig_db2;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_03.result b/mysql-test/suite/funcs_1/r/innodb_trig_03.result
new file mode 100644
index 00000000000..18300c6fc6b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_03.result
@@ -0,0 +1,751 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase 3.5.3:
+---------------
+drop database if exists priv_db;
+create database priv_db;
+use priv_db;
+create table t1 (f1 char(20)) engine= innodb;
+create User test_noprivs@localhost;
+set password for test_noprivs@localhost = password('PWD');
+create User test_yesprivs@localhost;
+set password for test_yesprivs@localhost = password('PWD');
+
+Testcase 3.5.3.2/6:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SUPER on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.3.2:
+-----------------
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+create trigger trg1_1 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_1-no';
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_2-yes';
+select current_user;
+current_user
+root@localhost
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+
+note: once 15166 is fixed a similar case for SELECT needs to be added
+---------------------------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+
+Testcase 3.5.3.6:
+-----------------
+use priv_db;
+drop trigger trg1_2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+use priv_db;
+drop trigger trg1_2;
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+drop trigger trg1_2;
+
+Testcase 3.5.3.7a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke UPDATE on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1a');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+drop trigger trg4a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg4a_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2a';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on *.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+drop trigger trg4a_2;
+
+Testcase 3.5.3.7b:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke UPDATE on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+insert 3.5.3.7-1b
+update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+drop trigger trg4b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4b_2 before UPDATE on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2b';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+insert 3.5.3.7-2b
+update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+drop trigger trg4b_2;
+
+Testcase 3.5.3.7c
+-----------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+drop trigger trg4c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4c_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2c';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+drop trigger trg4c_2;
+
+Testcase 3.5.3.7d:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+drop trigger trg4d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4d_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2d';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+trig 3.5.3.7-2d
+drop trigger trg4d_2;
+
+Testcase 3.5.3.8a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SELECT on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var = 'before trig 3.5.3.8-1a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+insert into t1 (f1) values ('insert 3.5.3.8-1a');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+drop trigger trg5a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg5a_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-2a
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on *.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2a');
+select @test_var;
+@test_var
+insert 3.5.3.8-2a
+drop trigger trg5a_2;
+
+Testcase: 3.5.3.8b
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke SELECT on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1b';
+insert into t1 (f1) values ('insert 3.5.3.8-1b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+drop trigger trg5b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5b_2 before UPDATE on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2b';
+insert into t1 (f1) values ('insert 3.5.3.8-2b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-2b
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+select @test_var;
+@test_var
+update 3.5.3.8-2b
+drop trigger trg5b_2;
+
+Testcase 3.5.3.8c:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1c';
+insert into t1 (f1) values ('insert 3.5.3.8-1c');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1c
+drop trigger trg5c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5c_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2c';
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2c');
+select @test_var;
+@test_var
+insert 3.5.3.8-2c
+drop trigger trg5c_2;
+
+Testcase: 3.5.3.8d:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var='before trig 3.5.3.8-1d';
+insert into t1 (f1) values ('insert 3.5.3.8-1d');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1d
+drop trigger trg5d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5d_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2d';
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2d');
+select @test_var;
+@test_var
+insert 3.5.3.8-2d
+drop trigger trg5d_2;
+
+Testcase: 3.5.3.x:
+------------------
+use priv_db;
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 int) engine= innodb;
+create table t2 (f2 int) engine= innodb;
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT, UPDATE on priv_db.t1 to test_yesprivs@localhost;
+grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t2` TO 'test_yesprivs'@'localhost'
+GRANT SELECT, UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1 before insert on t1 for each row
+insert into t2 values (new.f1);
+use priv_db;
+insert into t1 (f1) values (4);
+ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+grant INSERT on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (4);
+select f1 from t1;
+f1
+4
+select f2 from t2;
+f2
+4
+use priv_db;
+drop trigger trg1;
+create trigger trg2 before insert on t1 for each row
+update t2 set f2=new.f1-1;
+use priv_db;
+insert into t1 (f1) values (2);
+ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
+grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (2);
+select f1 from t1;
+f1
+4
+2
+select f2 from t2;
+f2
+1
+use priv_db;
+drop trigger trg2;
+create trigger trg3 before insert on t1 for each row
+select f2 into @aaa from t2 where f2=new.f1;
+use priv_db;
+insert into t1 (f1) values (1);
+ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
+grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (1);
+select f1 from t1;
+f1
+4
+2
+1
+select f2 from t2;
+f2
+1
+select @aaa;
+@aaa
+1
+use priv_db;
+drop trigger trg3;
+create trigger trg4 before insert on t1 for each row
+delete from t2;
+use priv_db;
+insert into t1 (f1) values (1);
+ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+grant DELETE on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (1);
+select f1 from t1;
+f1
+4
+2
+1
+1
+select f2 from t2;
+f2
+drop database if exists priv_db;
+drop user test_yesprivs@localhost;
+drop user test_noprivs@localhost;
+drop user test_noprivs;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0407.result b/mysql-test/suite/funcs_1/r/innodb_trig_0407.result
new file mode 100644
index 00000000000..ce7c51ec630
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_0407.result
@@ -0,0 +1,480 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.4:
+---------------
+use test;
+
+Testcase 3.5.4.1:
+-----------------
+create database db_drop;
+Use db_drop;
+create table t1 (f1 char(30)) engine=innodb;
+grant INSERT, SELECT on db_drop.t1 to test_general;
+Use db_drop;
+Create trigger trg1 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.1';
+Use db_drop;
+Insert into t1 values ('Insert error 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+drop trigger trg1;
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+Insert into t1 values ('Insert no trigger 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+Insert no trigger 3.5.4.1
+drop trigger trg1;
+drop database if exists db_drop;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.2:
+-----------------
+create database db_drop2;
+Use db_drop2;
+drop table if exists t1_432 ;
+create table t1_432 (f1 char (30)) engine=innodb;
+Drop trigger tr_does_not_exit;
+ERROR HY000: Trigger does not exist
+drop table if exists t1_432 ;
+drop database if exists db_drop2;
+
+Testcase 3.5.4.3:
+-----------------
+create database db_drop3;
+Use db_drop3;
+drop table if exists t1_433 ;
+drop table if exists t1_433a ;
+create table t1_433 (f1 char (30)) engine=innodb;
+create table t1_433a (f1a char (5)) engine=innodb;
+CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+set new.f1 = 'Trigger 3.5.4.3';
+Drop trigger t1.433.trg3;
+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 '.trg3' at line 1
+Drop trigger db_drop3.t1.433.trg3;
+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 '.433.trg3' at line 1
+Drop trigger mysql.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger tbx.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger db_drop3.trg3;
+drop table if exists t1_433;
+drop table if exists t1_433a;
+drop database if exists db_drop3;
+
+Testcase 3.5.4.4:
+-----------------
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=innodb;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Create trigger trg4 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.4';
+Use db_drop4;
+Insert into t1 values ('Insert 3.5.4.4');
+Select * from t1;
+f1
+Trigger 3.5.4.4
+Drop database db_drop4;
+Show databases;
+Database
+information_schema
+mysql
+test
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg4';
+trigger_schema trigger_name event_object_table
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=innodb;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.4');
+Select * from t1;
+f1
+2nd Insert 3.5.4.4
+drop trigger trg4;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop4;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.5:
+-----------------
+create database db_drop5;
+Use db_drop5;
+create table t1 (f1 char(50)) engine=innodb;
+grant INSERT, SELECT on t1 to test_general;
+Create trigger trg5 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.5';
+Use db_drop5;
+Insert into t1 values ('Insert 3.5.4.5');
+Select * from t1;
+f1
+Trigger 3.5.4.5
+Drop table t1;
+Show tables;
+Tables_in_db_drop5
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg5';
+trigger_schema trigger_name event_object_table
+create table t1 (f1 char(50)) engine=innodb;
+grant INSERT, SELECT on t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.5');
+Select * from t1;
+f1
+2nd Insert 3.5.4.5
+drop trigger trg5;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop5;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.5:
+---------------
+use test;
+
+Testcase 3.5.5.1:
+-----------------
+Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+ERROR 42S02: Table 'test.t100' doesn't exist
+
+Testcase 3.5.5.2:
+-----------------
+Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+Create trigger trg2 before INSERT
+on t1_temp for each row set new.f2=9999;
+ERROR HY000: Trigger's 't1_temp' is view or temporary table
+drop table t1_temp;
+
+Testcase 3.5.5.3:
+-----------------
+Create view vw3 as select f118 from tb3;
+Create trigger trg3 before INSERT
+on vw3 for each row set new.f118='s';
+ERROR HY000: 'test.vw3' is not BASE TABLE
+drop view vw3;
+
+Testcase 3.5.5.4:
+-----------------
+create database dbtest_one;
+create database dbtest_two;
+use dbtest_two;
+create table t2 (f1 char(15)) engine=innodb;
+use dbtest_one;
+create trigger trg4 before INSERT
+on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ERROR HY000: Trigger in wrong schema
+grant INSERT, SELECT on dbtest_two.t2 to test_general;
+grant SELECT on dbtest_one.* to test_general;
+use dbtest_two;
+Insert into t2 values ('1st Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from t2;
+f1
+1st Insert 3.5.
+use dbtest_one;
+Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from dbtest_two.t2;
+f1
+1st Insert 3.5.
+2nd Insert 3.5.
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+DROP DATABASE if exists dbtest_one;
+drop database if EXISTS dbtest_two;
+
+Testcase 3.5.6:
+---------------
+use test;
+
+Testcase 3.5.6.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.3:
+-----------------
+Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+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 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
+Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+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 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
+drop trigger tb3.trg3_1;
+drop trigger tb3.trg3_2;
+
+Testcase 3.5.6.4 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.5 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.3 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.4:
+-----------------
+Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+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 'SELECT on tb3 for each row set new.f132=5' at line 1
+Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+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 'VALUE on tb3 for each row set new.f132=1' at line 1
+drop trigger tb3.trg4_1;
+drop trigger tb3.trg4_2;
+
+Testcase 3.5.7.5 / 3.5.7.6:
+---------------------------
+Create trigger trg5_1 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+Create trigger trg5_2 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Trigger1 3.5.7.5/6
+update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Update 3.5.7.6
+drop trigger trg5_1;
+drop trigger trg5_2;
+delete from tb3 where f121='Test 3.5.7.5/6';
+
+Testcase 3.5.7.7 / 3.5.7.8:
+---------------------------
+set @test_var='Before trig 3.5.7.7';
+Create trigger trg6_1 AFTER INSERT
+on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+Create trigger trg6_2 AFTER INSERT
+on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+Before trig 3.5.7.7
+Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Insert 3.5.7.7
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Update 3.5.7.8
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+drop trigger trg6_1;
+drop trigger trg6_2;
+delete from tb3 where f121='Test 3.5.7.7/8';
+
+Testcase 3.5.7.9/10:
+--------------------
+Create trigger trg7_1 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+Create trigger trg7_2 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Insert 3.5.7.9
+update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Trigger1 3.5.7.9/10
+drop trigger trg7_1;
+drop trigger trg7_2;
+delete from tb3 where f121='Test 3.5.7.9/10';
+
+Testcase 3.5.7.11/12:
+---------------------
+set @test_var='Before trig 3.5.7.11';
+Create trigger trg8_1 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+Create trigger trg8_2 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 Insert 3.5.7.11/12
+update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 update 3.5.7.12
+select @test_var;
+@test_var
+Trigger 3.5.7.11/12
+delete from tb3 where f121='Test 3.5.7.11/12';
+drop trigger trg8_1;
+drop trigger trg8_2;
+delete from tb3 where f121='Test 3.5.7.11/12';
+
+Testcase 3.5.7.13/14:
+---------------------
+set @test_var=1;
+Create trigger trg9_1 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+1;
+Create trigger trg9_2 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+10;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+Test 3.5.7.13/14 Insert 3.5.7.13
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.13/14';
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+select @test_var;
+@test_var
+2
+delete from tb3 where f121='Test 3.5.7.13/14';
+select @test_var;
+@test_var
+2
+drop trigger trg9_1;
+drop trigger trg9_2;
+delete from tb3 where f121='Test 3.5.7.13/14';
+
+Testcase 3.5.7.15/16:
+---------------------
+set @test_var=1;
+Create trigger trg_3_406010_1 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+5;
+Create trigger trg_3_406010_2 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+50;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Create trigger trg_3_406010_1 AFTER INSERT
+on tb3 for each row set @test_var=@test_var+1;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+Test 3.5.7.15/16 Insert 3.5.7.15/16
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.15/16';
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+select @test_var;
+@test_var
+6
+delete from tb3 where f121='Test 3.5.7.15/16';
+select @test_var;
+@test_var
+6
+drop trigger trg_3_406010_1;
+drop trigger trg_3_406010_2;
+delete from tb3 where f121='Test 3.5.7.15/16';
+
+Testcase 3.5.7.17 (see Testcase 3.5.1.1)
+----------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_08.result b/mysql-test/suite/funcs_1/r/innodb_trig_08.result
new file mode 100644
index 00000000000..bb087d5882e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_08.result
@@ -0,0 +1,499 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.8.1: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.2: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.3/4:
+-------------------
+create database db_test;
+grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+grant LOCK TABLES on db_test.* to test_general;
+Use db_test;
+create table t1_i (
+i120 char ascii not null DEFAULT b'101',
+i136 smallint zerofill not null DEFAULT 999,
+i144 int zerofill not null DEFAULT 99999,
+i163 decimal (63,30)) engine=innodb;
+create table t1_u (
+u120 char ascii not null DEFAULT b'101',
+u136 smallint zerofill not null DEFAULT 999,
+u144 int zerofill not null DEFAULT 99999,
+u163 decimal (63,30)) engine=innodb;
+create table t1_d (
+d120 char ascii not null DEFAULT b'101',
+d136 smallint zerofill not null DEFAULT 999,
+d144 int zerofill not null DEFAULT 99999,
+d163 decimal (63,30)) engine=innodb;
+Insert into t1_u values ('a',111,99999,999.99);
+Insert into t1_u values ('b',222,99999,999.99);
+Insert into t1_u values ('c',333,99999,999.99);
+Insert into t1_u values ('d',222,99999,999.99);
+Insert into t1_u values ('e',222,99999,999.99);
+Insert into t1_u values ('f',333,99999,999.99);
+Insert into t1_d values ('a',111,99999,999.99);
+Insert into t1_d values ('b',222,99999,999.99);
+Insert into t1_d values ('c',333,99999,999.99);
+Insert into t1_d values ('d',444,99999,999.99);
+Insert into t1_d values ('e',222,99999,999.99);
+Insert into t1_d values ('f',222,99999,999.99);
+
+3.5.8.4 - multiple SQL
+----------------------
+use test;
+Create trigger trg1 AFTER INSERT on tb3 for each row
+BEGIN
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update db_test.t1_u
+set u144=new.f144, u163=new.f163
+where u136=new.f136;
+delete from db_test.t1_d where d136= new.f136;
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+END//
+Use test;
+set @test_var=0;
+Insert into tb3 (f120, f122, f136, f144, f163)
+values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+f120 f122 f136 f144 f163
+1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+b 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00222 0000023456 1.050000000000000000000000000000
+e 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00444 0000099999 999.990000000000000000000000000000
+select @test_var;
+@test_var
+3.150000000000000000000000000000
+
+3.5.8.4 - single SQL - insert
+-----------------------------
+Create trigger trg2 BEFORE UPDATE on tb3 for each row
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+I 00222 0000023456 1.050000000000000000000000000000
+
+3.5.8.4 - single SQL - update
+-----------------------------
+drop trigger trg2;
+Create trigger trg3 BEFORE UPDATE on tb3 for each row
+update db_test.t1_u
+set u120=new.f120
+where u136=new.f136;
+update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - delete
+-------------------------------
+drop trigger trg3;
+Create trigger trg4 AFTER UPDATE on tb3 for each row
+delete from db_test.t1_d where d136= new.f136;
+update tb3 set f120='D', f136=444,
+f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - select
+-------------------------------
+drop trigger trg4;
+Create trigger trg5 AFTER UPDATE on tb3 for each row
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+set @test_var=0;
+update tb3 set f120='S', f136=111,
+f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
+select @test_var;
+@test_var
+999.990000000000000000000000000000
+drop trigger trg1;
+drop trigger trg5;
+drop database if exists db_test;
+delete from tb3 where f122 like 'Test 3.5.8.4%';
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.8.5 (IF):
+----------------------
+create trigger trg2 before insert on tb3 for each row
+BEGIN
+IF new.f120='1' then
+set @test_var='one', new.f120='2';
+ELSEIF new.f120='2' then
+set @test_var='two', new.f120='3';
+ELSEIF new.f120='3' then
+set @test_var='three', new.f120='4';
+END IF;
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+END IF;
+END//
+set @test_var='Empty', @test_var2=0;
+Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 one 2nd else
+Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 two 2nd else
+D Test 3.5.8.5-if 00102 two 2nd else
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd if
+D Test 3.5.8.5-if 00102 three 2nd if
+d Test 3.5.8.5-if 00010 three 2nd if
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd else
+D Test 3.5.8.5-if 00102 three 2nd else
+d Test 3.5.8.5-if 00010 three 2nd else
+D Test 3.5.8.5-if 00103 three 2nd else
+create trigger trg3 before update on tb3 for each row
+BEGIN
+ELSEIF new.f120='2' then
+END IF;
+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 'ELSEIF new.f120='2' then
+END IF;
+END' at line 3
+drop trigger trg3//
+create trigger trg4 before update on tb3 for each row
+BEGIN
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+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 '' at line 7
+drop trigger trg4;
+drop trigger trg2;
+delete from tb3 where f121='Test 3.5.8.5-if';
+
+Testcase 3.5.8.5-case:
+----------------------
+create trigger trg3 before insert on tb3 for each row
+BEGIN
+SET new.f120=char(ascii(new.f120)-32);
+CASE
+when new.f136<100 then set new.f136=new.f136+120;
+when new.f136<10 then set new.f144=777;
+when new.f136>100 then set new.f120=new.f136-1;
+END case;
+CASE
+when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ELSE set @test_var=concat(new.f120, '*');
+END case;
+CASE new.f144
+when 1 then set @test_var=concat(@test_var, 'one');
+when 2 then set @test_var=concat(@test_var, 'two');
+when 3 then set @test_var=concat(@test_var, 'three');
+when 4 then set @test_var=concat(@test_var, 'four');
+when 5 then set @test_var=concat(@test_var, 'five');
+when 6 then set @test_var=concat(@test_var, 'six');
+when 7 then set @test_var=concat(@test_var, 'seven');
+when 8 then set @test_var=concat(@test_var, 'eight');
+when 9 then set @test_var=concat(@test_var, 'nine');
+when 10 then set @test_var=concat(@test_var, 'ten');
+when 11 then set @test_var=concat(@test_var, 'eleven');
+when 12 then set @test_var=concat(@test_var, 'twelve');
+when 13 then set @test_var=concat(@test_var, 'thirteen');
+when 14 then set @test_var=concat(@test_var, 'fourteen');
+when 15 then set @test_var=concat(@test_var, 'fifteen');
+ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+END case;
+END//
+set @test_var='Empty';
+Insert into tb3 (f120, f122, f136, f144)
+values ('a', 'Test 3.5.8.5-case', 5, 7);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 A*seven
+Insert into tb3 (f120, f122, f136, f144)
+values ('b', 'Test 3.5.8.5-case', 71,16);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 B*0000000016
+B Test 3.5.8.5-case 00191 0000000016 B*0000000016
+Insert into tb3 (f120, f122, f136, f144)
+values ('c', 'Test 3.5.8.5-case', 80,1);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 C=one
+B Test 3.5.8.5-case 00191 0000000016 C=one
+C Test 3.5.8.5-case 00200 0000000001 C=one
+Insert into tb3 (f120, f122, f136)
+values ('d', 'Test 3.5.8.5-case', 152);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1*0000099999
+B Test 3.5.8.5-case 00191 0000000016 1*0000099999
+C Test 3.5.8.5-case 00200 0000000001 1*0000099999
+1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
+Insert into tb3 (f120, f122, f136, f144)
+values ('e', 'Test 3.5.8.5-case', 200, 8);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+Insert into tb3 (f120, f122, f136, f144)
+values ('f', 'Test 3.5.8.5-case', 100, 8);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+create trigger trg3a before update on tb3 for each row
+BEGIN
+CASE
+when new.f136<100 then set new.f120='p';
+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 '' at line 5
+drop trigger trg3a;
+drop trigger trg3;
+delete from tb3 where f121='Test 3.5.8.5-case';
+
+Testcase 3.5.8.5-loop/leave:
+----------------------------
+Create trigger trg4 after insert on tb3 for each row
+BEGIN
+set @counter=0, @flag='Initial';
+Label1: loop
+if new.f136<new.f144 then
+set @counter='Nothing to loop';
+leave Label1;
+else
+set @counter=@counter+1;
+if new.f136=new.f144+@counter then
+set @counter=concat(@counter, ' loops');
+leave Label1;
+end if;
+end if;
+iterate label1;
+set @flag='Final';
+END loop Label1;
+END//
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 2, 8);
+select @counter, @flag;
+@counter @flag
+Nothing to loop Initial
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 11, 8);
+select @counter, @flag;
+@counter @flag
+3 loops Initial
+Create trigger trg4_2 after update on tb3 for each row
+BEGIN
+Label1: loop
+set @counter=@counter+1;
+END;
+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 ';
+END' at line 5
+drop trigger trg4_2;
+drop trigger trg4;
+delete from tb3 where f122='Test 3.5.8.5-loop';
+
+Testcase 3.5.8.5-repeat:
+------------------------
+Create trigger trg6 after insert on tb3 for each row
+BEGIN
+rp_label: REPEAT
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+UNTIL @counter1> new.f136 END REPEAT rp_label;
+END//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-repeat', 13);
+select @counter1, @counter2;
+@counter1 @counter2
+15 8
+Create trigger trg6_2 after update on tb3 for each row
+BEGIN
+REPEAT
+SET @counter2 = @counter2 + 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 'END' at line 5
+drop trigger trg6;
+delete from tb3 where f122='Test 3.5.8.5-repeat';
+
+Testcase 3.5.8.5-while:
+-----------------------
+Create trigger trg7 after insert on tb3 for each row
+wl_label: WHILE @counter1 < new.f136 DO
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+END WHILE wl_label//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-while', 7);
+select @counter1, @counter2;
+@counter1 @counter2
+7 4
+Create trigger trg7_2 after update on tb3 for each row
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
+delete from tb3 where f122='Test 3.5.8.5-while';
+drop trigger trg7;
+
+Testcase 3.5.8.6: (requirement void)
+------------------------------------
+
+Testcase 3.5.8.7: (Disabled as a result of bug _____)
+-----------------------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_09.result b/mysql-test/suite/funcs_1/r/innodb_trig_09.result
new file mode 100644
index 00000000000..685de95db51
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_09.result
@@ -0,0 +1,271 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase 3.5.9.1/2:
+-------------------
+Create trigger trg1 BEFORE UPDATE on tb3 for each row
+set new.f142 = 94087, @counter=@counter+1;
+TotalRows
+10
+Affected
+8
+NotAffected
+2
+NewValuew
+0
+set @counter=0;
+Update tb3 Set f142='1' where f130<100;
+select count(*) as ExpectedChanged, @counter as TrigCounter
+from tb3 where f142=94087;
+ExpectedChanged TrigCounter
+8 8
+select count(*) as ExpectedNotChange from tb3
+where f130<100 and f142<>94087;
+ExpectedNotChange
+0
+select count(*) as NonExpectedChanged from tb3
+where f130>=130 and f142=94087;
+NonExpectedChanged
+0
+drop trigger trg1;
+
+Testcase 3.5.9.3:
+-----------------
+Create trigger trg2_a before update on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_b after update on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+Create trigger trg2_c before delete on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_d after delete on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+Insert into tb3 (f122, f136, f163)
+values ('Test 3.5.9.3', 7, 123.17);
+Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+delete from tb3 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+drop trigger trg2_a;
+drop trigger trg2_b;
+drop trigger trg2_c;
+drop trigger trg2_d;
+
+Testcase 3.5.9.4:
+-----------------
+Create trigger trg3_a before insert on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_b after insert on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+Create trigger trg3_c before update on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_d after update on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Insert into tb3 (f122, f136, f151, f163)
+values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4%';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+where f122='Test 3.5.9.4';
+Warnings:
+Warning 1048 Column 'f136' cannot be null
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4-trig';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4-trig 00000 999 NULL
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+drop trigger trg3_a;
+drop trigger trg3_b;
+drop trigger trg3_c;
+drop trigger trg3_d;
+delete from tb3 where f122='Test 3.5.9.4-trig';
+
+Testcase 3.5.9.5: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.6:
+-----------------
+create trigger trg4a before insert on tb3 for each row
+set @temp1= old.f120;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg4b after insert on tb3 for each row
+set old.f120= 'test';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg4a;
+drop trigger trg4b;
+
+Testcase 3.5.9.7: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.8: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.9:
+-----------------
+create trigger trg5a before DELETE on tb3 for each row
+set @temp1=new.f122;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg5b after DELETE on tb3 for each row
+set new.f122='test';
+ERROR HY000: There is no NEW row in on DELETE trigger
+drop trigger trg5b;
+
+Testcase 3.5.9.10: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.9.11: covered by 3.5.9.9
+-------------------------------------
+
+Testcase 3.5.9.12: covered by 3.5.9.6
+-------------------------------------
+
+Testcase 3.5.9.13:
+------------------
+create trigger trg6a before UPDATE on tb3 for each row
+set old.f118='C', new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6b after INSERT on tb3 for each row
+set old.f136=163, new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6c after UPDATE on tb3 for each row
+set old.f136=NULL;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg6a;
+drop trigger trg6b;
+drop trigger trg6c;
+
+Testcase 3.5.9.14: (implied in previous tests)
+----------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result
new file mode 100644
index 00000000000..182747e3153
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result
@@ -0,0 +1,399 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase 3.5.10.1/2/3:
+----------------------
+Create view vw11 as select * from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+Create trigger trg1a before insert on tb3
+for each row set new.f163=111.11;
+Create trigger trg1b after insert on tb3
+for each row set @test_var='After Insert';
+Create trigger trg1c before update on tb3
+for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+Create trigger trg1d after update on tb3
+for each row set @test_var='After Update';
+Create trigger trg1e before delete on tb3
+for each row set @test_var=5;
+Create trigger trg1f after delete on tb3
+for each row set @test_var= 2* @test_var+7;
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+Insert into vw11 (f122, f151) values ('Not in View', 3);
+select f121, f122, f151, f163
+from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163
+from tb3 where f122 like 'Not in View';
+f121 f122 f151 f163
+NULL Not in View 3 111.110000000000000000000000000000
+Update vw11 set f163=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+set @test_var=0;
+Select @test_var as 'before delete';
+before delete
+0
+delete from vw11 where f151=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Select @test_var as 'after delete';
+after delete
+17
+drop view vw11;
+drop trigger trg1a;
+drop trigger trg1b;
+drop trigger trg1c;
+drop trigger trg1d;
+drop trigger trg1e;
+drop trigger trg1f;
+delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+
+Testcase 3.5.10.4:
+------------------
+create table tb_load (f1 int, f2 char(25),f3 int) engine=innodb;
+Create trigger trg4 before insert on tb_load
+for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+set @counter= 0;
+select @counter as 'Rows Loaded Before';
+Rows Loaded Before
+0
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+select @counter as 'Rows Loaded After';
+Rows Loaded After
+10
+Select * from tb_load limit 10;
+f1 f2 f3
+-5000 a` 1000
+-4999 aaa 999
+-4998 abaa 999
+-4997 acaaa 999
+-4996 adaaaa 999
+-4995 aeaaaaa 999
+-4994 afaaaaaa 998
+-4993 agaaaaaaa 998
+-4992 a^aaaaaaaa 998
+-4991 a_aaaaaaaaa 998
+drop trigger trg4;
+drop table tb_load;
+
+Testcase 3.5.10.5: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.6: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.extra:
+----------------------
+create table t1_sp (var136 tinyint, var151 decimal) engine=innodb;
+create trigger trg before insert on t1_sp
+for each row set @counter=@counter+1;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+select @counter;
+@counter
+11
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+11
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase 3.5.11.1 (implemented in trig_perf.test)
+-------------------------------------------------
+
+Testcase y.y.y.2: Check for triggers starting triggers
+------------------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2_1;
+drop table if exists t2_2;
+drop table if exists t2_3;
+drop table if exists t2_4;
+drop table if exists t3;
+create table t1 (f1 integer) engine=innodb;
+create table t2_1 (f1 integer) engine=innodb;
+create table t2_2 (f1 integer) engine=innodb;
+create table t2_3 (f1 integer) engine=innodb;
+create table t2_4 (f1 integer) engine=innodb;
+create table t3 (f1 integer) engine=innodb;
+insert into t1 values (1);
+create trigger tr1 after insert on t1 for each row
+BEGIN
+insert into t2_1 (f1) values (new.f1+1);
+insert into t2_2 (f1) values (new.f1+1);
+insert into t2_3 (f1) values (new.f1+1);
+insert into t2_4 (f1) values (new.f1+1);
+END//
+create trigger tr2_1 after insert on t2_1 for each row
+insert into t3 (f1) values (new.f1+10);
+create trigger tr2_2 after insert on t2_2 for each row
+insert into t3 (f1) values (new.f1+100);
+create trigger tr2_3 after insert on t2_3 for each row
+insert into t3 (f1) values (new.f1+1000);
+create trigger tr2_4 after insert on t2_4 for each row
+insert into t3 (f1) values (new.f1+10000);
+insert into t1 values (1);
+select * from t3;
+f1
+12
+102
+1002
+10002
+drop trigger tr1;
+drop trigger tr2_1;
+drop trigger tr2_2;
+drop trigger tr2_3;
+drop trigger tr2_4;
+drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+
+Testcase y.y.y.3: Circular trigger reference
+--------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = innodb;
+create table t2 (f2 integer) engine = innodb;
+create table t3 (f3 integer) engine = innodb;
+create table t4 (f4 integer) engine = innodb;
+insert into t1 values (0);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1);
+create trigger tr4 after insert on t4
+for each row insert into t1 (f1) values (new.f4+1);
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+0
+select * from t2;
+f2
+select * from t3;
+f3
+select * from t4;
+f4
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop trigger tr4;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
+----------------------------------------------------------------------
+set @sql_mode='traditional';
+create table t1_sp (
+count integer,
+var136 tinyint,
+var151 decimal) engine=innodb;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+set @counter= @counter+1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (@counter, var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+create trigger trg before insert on t1_sp
+for each row call trig_sp();
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine trig_sp
+select @counter;
+@counter
+1
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+0
+set @@max_sp_recursion_depth= 10;
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Can't update table 't1_sp' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select @counter;
+@counter
+2
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+0
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase y.y.y.5: Roleback of nested trigger references
+-------------------------------------------------------
+set @@sql_mode='traditional';
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = innodb;
+create table t2 (f2 integer) engine = innodb;
+create table t3 (f3 integer) engine = innodb;
+create table t4 (f4 tinyint) engine = innodb;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+insert into t1 values (1);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1000);
+set autocommit=0;
+start transaction;
+insert into t1 values (1);
+ERROR 22003: Out of range value adjusted for column 'f4' at row 1
+commit;
+select * from t1;
+f1
+1
+select * from t2;
+f2
+select * from t3;
+f3
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result b/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result
new file mode 100644
index 00000000000..56dd5d6740e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result
@@ -0,0 +1,140 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase x.x.x.1:
+-----------------
+DROP TABLE IF EXISTS t0, t1, t2;
+CREATE TABLE t0 (col1 char(50)) ENGINE=innodb;
+CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+PRIMARY KEY (id)) ENGINE=innodb;
+CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+INDEX par_ind (f_id), col1 char(50),
+FOREIGN KEY (f_id) REFERENCES t1(id)
+ON DELETE SET NULL) ENGINE=innodb;
+insert into t1 values (1,'Department A');
+insert into t1 values (2,'Department B');
+insert into t1 values (3,'Department C');
+insert into t2 values (1,2,'Emp 1');
+insert into t2 values (2,2,'Emp 2');
+insert into t2 values (3,2,'Emp 3');
+create trigger trig after insert on t0 for each row
+delete from t1 where col1=new.col1;
+select * from t2;
+id f_id col1
+1 2 Emp 1
+2 2 Emp 2
+3 2 Emp 3
+lock tables t0 write, t1 write;
+insert into t0 values ('Department B');
+unlock tables;
+select * from t2;
+id f_id col1
+1 NULL Emp 1
+2 NULL Emp 2
+3 NULL Emp 3
+drop trigger trig;
+drop table t2, t1;
+
+Testcase x.x.x.2:
+-----------------
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+PRIMARY KEY (id)) ENGINE=innodb;
+CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+INDEX par_ind (f_id), col1 char(50),
+FOREIGN KEY (f_id) REFERENCES t1(id)
+ON UPDATE CASCADE) ENGINE=innodb;
+insert into t1 values (1,'Department A');
+insert into t1 values (2,'Department B');
+insert into t1 values (3,'Department C');
+insert into t2 values (1,2,'Emp 1');
+insert into t2 values (2,3,'Emp 2');
+insert into t2 values (3,4,'Emp 3');
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f_id`) REFERENCES `t1` (`id`) ON UPDATE CASCADE)
+create trigger tr_t2 before insert on t2 for each row
+insert into t1 values(new.f_id, concat('New Department ', new.f_id));
+lock tables t1 write, t2 write;
+insert into t2 values (3,4,'Emp 3');
+unlock tables;
+select * from t1;
+id col1
+1 Department A
+2 Department B
+3 Department C
+4 New Department 4
+select * from t2;
+id f_id col1
+1 2 Emp 1
+2 3 Emp 2
+3 4 Emp 3
+drop trigger tr_t2;
+drop table t2, t1, t0;
+
+Foreign Key tests disabled (bug 11472 - stored in trig_frkey2.test)
+-------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_triggers.result b/mysql-test/suite/funcs_1/r/innodb_triggers.result
new file mode 100644
index 00000000000..f6f61040e6a
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_triggers.result
@@ -0,0 +1,2331 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = innodb;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase: 3.5.1.1:
+------------------
+use test;
+Create trigger trg1_1 BEFORE INSERT
+on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+Create trigger trg1_2 AFTER INSERT
+on tb3 for each row set @test_after = 6;
+Create trigger trg1_4 BEFORE UPDATE
+on tb3 for each row set @test_before = 27,
+new.f142 = @test_before,
+new.f122 = 'Before Update Trigger';
+Create trigger trg1_3 AFTER UPDATE
+on tb3 for each row set @test_after = '15';
+Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+select count(*) into @test_before from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+Create trigger trg1_6 AFTER DELETE on tb3 for each row
+select count(*) into @test_after from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+set @test_before = 1;
+set @test_after = 5;
+select @test_before, @test_after;
+@test_before @test_after
+1 5
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 First Row 2 0000000005 1
+select @test_before, @test_after;
+@test_before @test_after
+2 6
+set @test_before = 18;
+set @test_after = 8;
+select @test_before, @test_after;
+@test_before @test_after
+18 8
+Update tb3 set tb3.f122 = 'Update',
+tb3.f142 = @test_before,
+tb3.f144 = @test_after
+where tb3.f121 = 'Test 3.5.1.1';
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+27 15
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+set @test_before = 0;
+set @test_after = 0;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+Test 3.5.1.1 Second Row 2 0000000006 2
+select @test_before, @test_after;
+@test_before @test_after
+0 0
+Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+2 1
+drop trigger trg1_1;
+drop trigger trg1_2;
+drop trigger trg1_3;
+drop trigger trg1_4;
+drop trigger trg1_5;
+drop trigger trg1_6;
+delete from tb3 where f121='Test 3.5.1.1';
+
+Testcase: 3.5.1.2:
+------------------
+Create trigger trg_1 after insert
+on tb3 for each statement set @x= 1;
+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 'statement set @x= 1' at line 2
+drop trigger trg_1;
+
+Testcase 3.5.1.3:
+-----------------
+CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+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 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
+CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+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 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
+CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+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 @ret1 = 'test' for each row' at line 1
+CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+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 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
+CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = '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 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
+drop trigger trg3_1;
+drop trigger trg3_2;
+drop trigger trg3_3;
+drop trigger trg3_4;
+drop trigger trg3_5;
+
+Testcase: 3.5.1.5:
+------------------
+CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+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 'on tb3 for each row set new.f120 = 'e'' at line 1
+CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+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 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
+CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+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 'tb3 for each row set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+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 new.f120 = 'g'' at line 1
+CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+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 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+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 'for each row set new.f120 = 'g'' at line 1
+drop trigger trg4_1;
+drop trigger trg4_2;
+drop trigger trg4_3;
+drop trigger trg4_4;
+drop trigger trg4_5;
+drop trigger trg4_6;
+
+Testcase 3.5.1.6: - Need to fix
+-------------------------------
+
+Testcase 3.5.1.7: - need to fix
+-------------------------------
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (f1 int, f2 char(25),f3 int) engine=innodb;
+CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+for each row set new.f3 = '14';
+CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+insert into t1 (f2) values ('insert 3.5.1.7');
+select * from t1;
+f1 f2 f3
+NULL insert 3.5.1.7 14
+update t1 set f2='update 3.5.1.7';
+select * from t1;
+f1 f2 f3
+NULL update 3.5.1.7 42
+select trigger_name from information_schema.triggers;
+trigger_name
+trg5_1
+trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
+drop trigger trg5_1;
+drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+drop table t1;
+
+Testcase 3.5.1.8:
+-----------------
+CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+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 '* before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+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 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+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 '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+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 '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+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 '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+for each row set new.f120 ='X';
+ERROR HY000: Trigger in wrong schema
+drop database if exists trig_db;
+create database trig_db;
+use trig_db;
+create table t1 (f1 integer) engine = innodb;
+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
+use trig_db;
+CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
+for each row set @ret_trg6_3 = 18;
+ERROR HY000: Trigger in wrong schema
+use test;
+drop database trig_db;
+drop trigger trg6_1;
+drop trigger trg6_3;
+
+Testcase 3.5.1.9:(cannot be inplemented at this point)
+------------------------------------------------------
+
+Testcase 3.5.1.10:
+------------------
+CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+ERROR HY000: Trigger already exists
+drop trigger trg7_1;
+
+Testcase 3.5.1.?:
+-----------------
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create table t2 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig t1';
+create trigger trig before update on t2
+for each row set new.f1 ='trig t2';
+ERROR HY000: Trigger already exists
+insert into t1 value ('insert to t1',1);
+select * from t1;
+f1 f2
+trig t1 1
+update t1 set f1='update to t1';
+select * from t1;
+f1 f2
+update to t1 1
+insert into t2 value ('insert to t2',2);
+update t2 set f1='update to t1';
+select * from t2;
+f1 f2
+update to t1 2
+drop table t1;
+drop table t2;
+drop trigger trig;
+
+Testcase 3.5.1.11:
+------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+drop database if exists trig_db3;
+create database trig_db1;
+create database trig_db2;
+create database trig_db3;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig1', @test_var1='trig1';
+use trig_db2;
+create table t2 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t2
+for each row set new.f1 ='trig2', @test_var2='trig2';
+use trig_db3;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig3', @test_var3='trig3';
+set @test_var1= '', @test_var2= '', @test_var3= '';
+use trig_db1;
+insert into t1 (f1,f2) values ('insert to db1 t1',1);
+insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1 trig2 trig3
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+select * from trig_db2.t2;
+f1 f2
+trig2 3
+select * from trig_db3.t1;
+f1 f2
+trig3 4
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+use test;
+drop database trig_db1;
+drop database trig_db2;
+drop database trig_db3;
+
+Testcase 3.5.2.1/2/3:
+---------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+create database trig_db1;
+create database trig_db2;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = innodb;
+create table trig_db2.t1 (f1 char(50), f2 integer) engine = innodb;
+create trigger trig1_b before insert on t1
+for each row set @test_var1='trig1_b';
+create trigger trig_db1.trig1_a after insert on t1
+for each row set @test_var2='trig1_a';
+create trigger trig_db2.trig2 before insert on trig_db2.t1
+for each row set @test_var3='trig2';
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+trig_db1 trig1_b t1
+trig_db1 trig1_a t1
+trig_db2 trig2 t1
+set @test_var1= '', @test_var2= '', @test_var3= '';
+insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1_b trig1_a trig2
+drop database trig_db1;
+drop database trig_db2;
+
+Testcase 3.5.3:
+---------------
+drop database if exists priv_db;
+create database priv_db;
+use priv_db;
+create table t1 (f1 char(20));
+create User test_noprivs@localhost;
+set password for test_noprivs@localhost = password('PWD');
+create User test_yesprivs@localhost;
+set password for test_yesprivs@localhost = password('PWD');
+
+Testcase 3.5.3.2/6:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SUPER on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.3.2:
+-----------------
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+create trigger trg1_1 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_1-no';
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_2-yes';
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+
+Testcase 3.5.3.6:
+-----------------
+use priv_db;
+drop trigger trg1_2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+use priv_db;
+drop trigger trg1_2;
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+drop trigger trg1_2;
+
+Testcase 3.5.3.7a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke UPDATE on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1a');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+drop trigger trg4a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg4a_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2a';
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+drop trigger trg4a_2;
+
+Testcase 3.5.3.7b:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke UPDATE on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+insert 3.5.3.7-1b
+update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+drop trigger trg4b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4b_2 before UPDATE on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2b';
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+insert 3.5.3.7-2b
+update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+drop trigger trg4b_2;
+
+Testcase 3.5.3.7c
+-----------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+drop trigger trg4c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4c_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2c';
+insert into t1 (f1) values ('insert 3.5.3.7-2c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+drop trigger trg4c_2;
+
+Testcase 3.5.3.7d:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+drop trigger trg4d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4d_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2d';
+insert into t1 (f1) values ('insert 3.5.3.7-2d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+trig 3.5.3.7-2d
+drop trigger trg4d_2;
+
+Testcase 3.5.3.8a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SELECT on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var = 'before trig 3.5.3.8-1a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+insert into t1 (f1) values ('insert 3.5.3.8-1a');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+drop trigger trg5a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg5a_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-2a
+insert into t1 (f1) values ('insert 3.5.3.8-2a');
+select @test_var;
+@test_var
+insert 3.5.3.8-2a
+drop trigger trg5a_2;
+
+Testcase: 3.5.3.8b
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke SELECT on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1b';
+insert into t1 (f1) values ('insert 3.5.3.8-1b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+drop trigger trg5b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5b_2 before UPDATE on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2b';
+insert into t1 (f1) values ('insert 3.5.3.8-2b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-2b
+update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+select @test_var;
+@test_var
+update 3.5.3.8-2b
+drop trigger trg5b_2;
+
+Testcase 3.5.3.8c:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1c';
+insert into t1 (f1) values ('insert 3.5.3.8-1c');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1c
+drop trigger trg5c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5c_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2c';
+insert into t1 (f1) values ('insert 3.5.3.8-2c');
+select @test_var;
+@test_var
+insert 3.5.3.8-2c
+drop trigger trg5c_2;
+
+Testcase: 3.5.3.8d:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var='before trig 3.5.3.8-1d';
+insert into t1 (f1) values ('insert 3.5.3.8-1d');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1d
+drop trigger trg5d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5d_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2d';
+insert into t1 (f1) values ('insert 3.5.3.8-2d');
+select @test_var;
+@test_var
+insert 3.5.3.8-2d
+drop trigger trg5d_2;
+drop database if exists priv_db;
+drop user test_yesprivs@localhost;
+drop user test_noprivs@localhost;
+drop user test_noprivs;
+
+Testcase 3.5.4:
+---------------
+use test;
+
+Testcase 3.5.4.1:
+-----------------
+create database db_drop;
+Use db_drop;
+create table t1 (f1 char(30)) engine=innodb;
+grant INSERT, SELECT on db_drop.t1 to test_general;
+Use db_drop;
+Create trigger trg1 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.1';
+Use db_drop;
+Insert into t1 values ('Insert error 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+drop trigger trg1;
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+Insert into t1 values ('Insert no trigger 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+Insert no trigger 3.5.4.1
+drop trigger trg1;
+drop database if exists db_drop;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.2:
+-----------------
+create database db_drop2;
+Use db_drop2;
+drop table if exists t1_432 ;
+create table t1_432 (f1 char (30)) engine=innodb;
+Drop trigger tr_does_not_exit;
+ERROR HY000: Trigger does not exist
+drop table if exists t1_432 ;
+drop database if exists db_drop2;
+
+Testcase 3.5.4.3:
+-----------------
+create database db_drop3;
+Use db_drop3;
+drop table if exists t1_433 ;
+drop table if exists t1_433a ;
+create table t1_433 (f1 char (30)) engine=innodb;
+create table t1_433a (f1a char (5)) engine=innodb;
+CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+set new.f1 = 'Trigger 3.5.4.3';
+Drop trigger t1.433.trg3;
+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 '.trg3' at line 1
+Drop trigger db_drop3.t1.433.trg3;
+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 '.433.trg3' at line 1
+Drop trigger mysql.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger tbx.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger db_drop3.trg3;
+drop table if exists t1_433;
+drop table if exists t1_433a;
+drop database if exists db_drop3;
+
+Testcase 3.5.4.4:
+-----------------
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=innodb;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Create trigger trg4 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.4';
+Use db_drop4;
+Insert into t1 values ('Insert 3.5.4.4');
+Select * from t1;
+f1
+Trigger 3.5.4.4
+Drop database db_drop4;
+Show databases;
+Database
+information_schema
+mysql
+test
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg4';
+trigger_schema trigger_name event_object_table
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=innodb;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.4');
+Select * from t1;
+f1
+2nd Insert 3.5.4.4
+drop trigger trg4;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop4;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.5:
+-----------------
+create database db_drop5;
+Use db_drop5;
+create table t1 (f1 char(50)) engine=innodb;
+grant INSERT, SELECT on t1 to test_general;
+Create trigger trg5 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.5';
+Use db_drop5;
+Insert into t1 values ('Insert 3.5.4.5');
+Select * from t1;
+f1
+Trigger 3.5.4.5
+Drop table t1;
+Show tables;
+Tables_in_db_drop5
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg5';
+trigger_schema trigger_name event_object_table
+create table t1 (f1 char(50)) engine=innodb;
+grant INSERT, SELECT on t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.5');
+Select * from t1;
+f1
+2nd Insert 3.5.4.5
+drop trigger trg5;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop5;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.5:
+---------------
+use test;
+
+Testcase 3.5.5.1:
+-----------------
+Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+ERROR 42S02: Table 'test.t100' doesn't exist
+
+Testcase 3.5.5.2:
+-----------------
+Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+Create trigger trg2 before INSERT
+on t1_temp for each row set new.f2=9999;
+ERROR HY000: Trigger's 't1_temp' is view or temporary table
+drop table t1_temp;
+
+Testcase 3.5.5.3:
+-----------------
+Create view vw3 as select f118 from tb3;
+Create trigger trg3 before INSERT
+on vw3 for each row set new.f118='s';
+ERROR HY000: 'test.vw3' is not BASE TABLE
+drop view vw3;
+
+Testcase 3.5.5.4:
+-----------------
+create database dbtest_one;
+create database dbtest_two;
+use dbtest_two;
+create table t2 (f1 char(15));
+use dbtest_one;
+create trigger trg4 before INSERT
+on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ERROR HY000: Trigger in wrong schema
+grant INSERT, SELECT on dbtest_two.t2 to test_general;
+grant SELECT on dbtest_one.* to test_general;
+use dbtest_two;
+Insert into t2 values ('1st Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from t2;
+f1
+1st Insert 3.5.
+use dbtest_one;
+Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from dbtest_two.t2;
+f1
+1st Insert 3.5.
+2nd Insert 3.5.
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+DROP DATABASE if exists dbtest_one;
+drop database if EXISTS dbtest_two;
+
+Testcase 3.5.6:
+---------------
+use test;
+
+Testcase 3.5.6.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.3:
+-----------------
+Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+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 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
+Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+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 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
+drop trigger tb3.trg3_1;
+drop trigger tb3.trg3_2;
+
+Testcase 3.5.6.4 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.5 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.3 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.4:
+-----------------
+Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+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 'SELECT on tb3 for each row set new.f132=5' at line 1
+Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+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 'VALUE on tb3 for each row set new.f132=1' at line 1
+drop trigger tb3.trg4_1;
+drop trigger tb3.trg4_2;
+
+Testcase 3.5.7.5 / 3.5.7.6:
+---------------------------
+Create trigger trg5_1 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+Create trigger trg5_2 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+ERROR HY000: Trigger already exists
+Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Trigger1 3.5.7.5/6
+update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Update 3.5.7.6
+drop trigger trg5_1;
+drop trigger trg5_2;
+delete from tb3 where f121='Test 3.5.7.5/6';
+
+Testcase 3.5.7.7 / 3.5.7.8:
+---------------------------
+set @test_var='Before trig 3.5.7.7';
+Create trigger trg6_1 AFTER INSERT
+on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+Create trigger trg6_2 AFTER INSERT
+on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+Before trig 3.5.7.7
+Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Insert 3.5.7.7
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Update 3.5.7.8
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+drop trigger trg6_1;
+drop trigger trg6_2;
+delete from tb3 where f121='Test 3.5.7.7/8';
+
+Testcase 3.5.7.9/10:
+--------------------
+Create trigger trg7_1 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+Create trigger trg7_2 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+ERROR HY000: Trigger already exists
+Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Insert 3.5.7.9
+update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Trigger1 3.5.7.9/10
+drop trigger trg7_1;
+drop trigger trg7_2;
+delete from tb3 where f121='Test 3.5.7.9/10';
+
+Testcase 3.5.7.11/12:
+---------------------
+set @test_var='Before trig 3.5.7.11';
+Create trigger trg8_1 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+Create trigger trg8_2 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 Insert 3.5.7.11/12
+update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 update 3.5.7.12
+select @test_var;
+@test_var
+Trigger 3.5.7.11/12
+delete from tb3 where f121='Test 3.5.7.11/12';
+drop trigger trg8_1;
+drop trigger trg8_2;
+delete from tb3 where f121='Test 3.5.7.11/12';
+
+Testcase 3.5.7.13/14:
+---------------------
+set @test_var=1;
+Create trigger trg9_1 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+1;
+Create trigger trg9_2 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+10;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+Test 3.5.7.13/14 Insert 3.5.7.13
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.13/14';
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+select @test_var;
+@test_var
+2
+delete from tb3 where f121='Test 3.5.7.13/14';
+select @test_var;
+@test_var
+2
+drop trigger trg9_1;
+drop trigger trg9_2;
+delete from tb3 where f121='Test 3.5.7.13/14';
+
+Testcase 3.5.7.15/16:
+---------------------
+set @test_var=1;
+Create trigger trg_3_406010_1 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+5;
+Create trigger trg_3_406010_2 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+50;
+ERROR HY000: Trigger already exists
+Create trigger trg_3_406010_1 AFTER INSERT
+on tb3 for each row set @test_var=@test_var+1;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+Test 3.5.7.15/16 Insert 3.5.7.15/16
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.15/16';
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+select @test_var;
+@test_var
+6
+delete from tb3 where f121='Test 3.5.7.15/16';
+select @test_var;
+@test_var
+6
+drop trigger trg_3_406010_1;
+drop trigger trg_3_406010_2;
+delete from tb3 where f121='Test 3.5.7.15/16';
+
+Testcase 3.5.7.17 (see Testcase 3.5.1.1)
+----------------------------------------
+
+Testcase 3.5.8.1: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.2: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.3/4:
+-------------------
+create database db_test;
+grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+grant LOCK TABLES on db_test.* to test_general;
+Use db_test;
+create table t1_i (
+i120 char ascii not null DEFAULT b'101',
+i136 smallint zerofill not null DEFAULT 999,
+i144 int zerofill not null DEFAULT 99999,
+i163 decimal (63,30)) engine=innodb;
+create table t1_u (
+u120 char ascii not null DEFAULT b'101',
+u136 smallint zerofill not null DEFAULT 999,
+u144 int zerofill not null DEFAULT 99999,
+u163 decimal (63,30)) engine=innodb;
+create table t1_d (
+d120 char ascii not null DEFAULT b'101',
+d136 smallint zerofill not null DEFAULT 999,
+d144 int zerofill not null DEFAULT 99999,
+d163 decimal (63,30)) engine=innodb;
+Insert into t1_u values ('a',111,99999,999.99);
+Insert into t1_u values ('b',222,99999,999.99);
+Insert into t1_u values ('c',333,99999,999.99);
+Insert into t1_u values ('d',222,99999,999.99);
+Insert into t1_u values ('e',222,99999,999.99);
+Insert into t1_u values ('f',333,99999,999.99);
+Insert into t1_d values ('a',111,99999,999.99);
+Insert into t1_d values ('b',222,99999,999.99);
+Insert into t1_d values ('c',333,99999,999.99);
+Insert into t1_d values ('d',444,99999,999.99);
+Insert into t1_d values ('e',222,99999,999.99);
+Insert into t1_d values ('f',222,99999,999.99);
+
+3.5.8.4 - multiple SQL
+----------------------
+use test;
+Create trigger trg1 AFTER INSERT on tb3 for each row
+BEGIN
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update db_test.t1_u
+set u144=new.f144, u163=new.f163
+where u136=new.f136;
+delete from db_test.t1_d where d136= new.f136;
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+END//
+Use test;
+set @test_var=0;
+Insert into tb3 (f120, f122, f136, f144, f163)
+values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+f120 f122 f136 f144 f163
+1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+b 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00222 0000023456 1.050000000000000000000000000000
+e 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00444 0000099999 999.990000000000000000000000000000
+select @test_var;
+@test_var
+3.150000000000000000000000000000
+
+3.5.8.4 - single SQL - insert
+-----------------------------
+Create trigger trg2 BEFORE UPDATE on tb3 for each row
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+I 00222 0000023456 1.050000000000000000000000000000
+
+3.5.8.4 - single SQL - update
+-----------------------------
+drop trigger trg2;
+Create trigger trg3 BEFORE UPDATE on tb3 for each row
+update db_test.t1_u
+set u120=new.f120
+where u136=new.f136;
+update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - delete
+-------------------------------
+drop trigger trg3;
+Create trigger trg4 AFTER UPDATE on tb3 for each row
+delete from db_test.t1_d where d136= new.f136;
+update tb3 set f120='D', f136=444,
+f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - select
+-------------------------------
+drop trigger trg4;
+Create trigger trg5 AFTER UPDATE on tb3 for each row
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+set @test_var=0;
+update tb3 set f120='S', f136=111,
+f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
+select @test_var;
+@test_var
+999.990000000000000000000000000000
+drop trigger trg1;
+drop trigger trg5;
+drop database if exists db_test;
+delete from tb3 where f122 like 'Test 3.5.8.4%';
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.8.5 (IF):
+----------------------
+create trigger trg2 before insert on tb3 for each row
+BEGIN
+IF new.f120='1' then
+set @test_var='one', new.f120='2';
+ELSEIF new.f120='2' then
+set @test_var='two', new.f120='3';
+ELSEIF new.f120='3' then
+set @test_var='three', new.f120='4';
+END IF;
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+END IF;
+END//
+set @test_var='Empty', @test_var2=0;
+Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 one 2nd else
+Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 two 2nd else
+D Test 3.5.8.5-if 00102 two 2nd else
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd if
+D Test 3.5.8.5-if 00102 three 2nd if
+d Test 3.5.8.5-if 00010 three 2nd if
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd else
+D Test 3.5.8.5-if 00102 three 2nd else
+d Test 3.5.8.5-if 00010 three 2nd else
+D Test 3.5.8.5-if 00103 three 2nd else
+create trigger trg3 before update on tb3 for each row
+BEGIN
+ELSEIF new.f120='2' then
+END IF;
+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 'ELSEIF new.f120='2' then
+END IF;
+END' at line 3
+drop trigger trg3//
+create trigger trg4 before update on tb3 for each row
+BEGIN
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+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 '' at line 7
+drop trigger trg4;
+drop trigger trg2;
+delete from tb3 where f121='Test 3.5.8.5-if';
+
+Testcase 3.5.8.5-case:
+----------------------
+create trigger trg3 before insert on tb3 for each row
+BEGIN
+SET new.f120=char(ascii(new.f120)-32);
+CASE
+when new.f136<100 then set new.f136=new.f136+120;
+when new.f136<10 then set new.f144=777;
+when new.f136>100 then set new.f120=new.f136-1;
+END case;
+CASE
+when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ELSE set @test_var=concat(new.f120, '*');
+END case;
+CASE new.f144
+when 1 then set @test_var=concat(@test_var, 'one');
+when 2 then set @test_var=concat(@test_var, 'two');
+when 3 then set @test_var=concat(@test_var, 'three');
+when 4 then set @test_var=concat(@test_var, 'four');
+when 5 then set @test_var=concat(@test_var, 'five');
+when 6 then set @test_var=concat(@test_var, 'six');
+when 7 then set @test_var=concat(@test_var, 'seven');
+when 8 then set @test_var=concat(@test_var, 'eight');
+when 9 then set @test_var=concat(@test_var, 'nine');
+when 10 then set @test_var=concat(@test_var, 'ten');
+when 11 then set @test_var=concat(@test_var, 'eleven');
+when 12 then set @test_var=concat(@test_var, 'twelve');
+when 13 then set @test_var=concat(@test_var, 'thirteen');
+when 14 then set @test_var=concat(@test_var, 'fourteen');
+when 15 then set @test_var=concat(@test_var, 'fifteen');
+ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+END case;
+END//
+set @test_var='Empty';
+Insert into tb3 (f120, f122, f136, f144)
+values ('a', 'Test 3.5.8.5-case', 5, 7);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 A*seven
+Insert into tb3 (f120, f122, f136, f144)
+values ('b', 'Test 3.5.8.5-case', 71,16);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 B*0000000016
+B Test 3.5.8.5-case 00191 0000000016 B*0000000016
+Insert into tb3 (f120, f122, f136, f144)
+values ('c', 'Test 3.5.8.5-case', 80,1);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 C=one
+B Test 3.5.8.5-case 00191 0000000016 C=one
+C Test 3.5.8.5-case 00200 0000000001 C=one
+Insert into tb3 (f120, f122, f136)
+values ('d', 'Test 3.5.8.5-case', 152);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1*0000099999
+B Test 3.5.8.5-case 00191 0000000016 1*0000099999
+C Test 3.5.8.5-case 00200 0000000001 1*0000099999
+1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
+Insert into tb3 (f120, f122, f136, f144)
+values ('e', 'Test 3.5.8.5-case', 200, 8);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+Insert into tb3 (f120, f122, f136, f144)
+values ('f', 'Test 3.5.8.5-case', 100, 8);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+create trigger trg3a before update on tb3 for each row
+BEGIN
+CASE
+when new.f136<100 then set new.f120='p';
+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 '' at line 5
+drop trigger trg3a;
+drop trigger trg3;
+delete from tb3 where f121='Test 3.5.8.5-case';
+
+Testcase 3.5.8.5-loop/leave:
+----------------------------
+Create trigger trg4 after insert on tb3 for each row
+BEGIN
+set @counter=0, @flag='Initial';
+Label1: loop
+if new.f136<new.f144 then
+set @counter='Nothing to loop';
+leave Label1;
+else
+set @counter=@counter+1;
+if new.f136=new.f144+@counter then
+set @counter=concat(@counter, ' loops');
+leave Label1;
+end if;
+end if;
+iterate label1;
+set @flag='Final';
+END loop Label1;
+END//
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 2, 8);
+select @counter, @flag;
+@counter @flag
+Nothing to loop Initial
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 11, 8);
+select @counter, @flag;
+@counter @flag
+3 loops Initial
+Create trigger trg4_2 after update on tb3 for each row
+BEGIN
+Label1: loop
+set @counter=@counter+1;
+END;
+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 ';
+END' at line 5
+drop trigger trg4_2;
+drop trigger trg4;
+delete from tb3 where f122='Test 3.5.8.5-loop';
+
+Testcase 3.5.8.5-repeat:
+------------------------
+Create trigger trg6 after insert on tb3 for each row
+BEGIN
+rp_label: REPEAT
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+UNTIL @counter1> new.f136 END REPEAT rp_label;
+END//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-repeat', 13);
+select @counter1, @counter2;
+@counter1 @counter2
+15 8
+Create trigger trg6_2 after update on tb3 for each row
+BEGIN
+REPEAT
+SET @counter2 = @counter2 + 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 'END' at line 5
+drop trigger trg6;
+delete from tb3 where f122='Test 3.5.8.5-repeat';
+
+Testcase 3.5.8.5-while:
+-----------------------
+Create trigger trg7 after insert on tb3 for each row
+wl_label: WHILE @counter1 < new.f136 DO
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+END WHILE wl_label//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-while', 7);
+select @counter1, @counter2;
+@counter1 @counter2
+7 4
+Create trigger trg7_2 after update on tb3 for each row
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
+delete from tb3 where f122='Test 3.5.8.5-while';
+drop trigger trg7;
+
+Testcase 3.5.8.6: (requirement void)
+------------------------------------
+
+Testcase 3.5.8.7: (Disabled as a result of bug _____)
+-----------------------------------------------------
+
+Testcase 3.5.9.1/2:
+-------------------
+Create trigger trg1 BEFORE UPDATE on tb3 for each row
+set new.f142 = 94087, @counter=@counter+1;
+TotalRows
+19
+Affected
+17
+NotAffected
+2
+NewValuew
+0
+set @counter=0;
+Update tb3 Set f142='1' where f130<100;
+select count(*) as ExpectedChanged, @counter as TrigCounter
+from tb3 where f142=94087;
+ExpectedChanged TrigCounter
+17 17
+select count(*) as ExpectedNotChange from tb3
+where f130<100 and f142<>94087;
+ExpectedNotChange
+0
+select count(*) as NonExpectedChanged from tb3
+where f130>=130 and f142=94087;
+NonExpectedChanged
+0
+drop trigger trg1;
+
+Testcase 3.5.9.3:
+-----------------
+Create trigger trg2_a before update on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_b after update on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+Create trigger trg2_c before delete on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_d after delete on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+Insert into tb3 (f122, f136, f163)
+values ('Test 3.5.9.3', 7, 123.17);
+Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+delete from tb3 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+drop trigger trg2_a;
+drop trigger trg2_b;
+drop trigger trg2_c;
+drop trigger trg2_d;
+
+Testcase 3.5.9.4:
+-----------------
+Create trigger trg3_a before insert on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_b after insert on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+Create trigger trg3_c before update on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_d after update on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Insert into tb3 (f122, f136, f151, f163)
+values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4%';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+where f122='Test 3.5.9.4';
+Warnings:
+Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f136' at row 20
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4-trig';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4-trig 00000 999 NULL
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+drop trigger trg3_a;
+drop trigger trg3_b;
+drop trigger trg3_c;
+drop trigger trg3_d;
+delete from tb3 where f122='Test 3.5.9.4-trig';
+
+Testcase 3.5.9.5: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.6:
+-----------------
+create trigger trg4a before insert on tb3 for each row
+set @temp1= old.f120;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg4b after insert on tb3 for each row
+set old.f120= 'test';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg4a;
+drop trigger trg4b;
+
+Testcase 3.5.9.7: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.8: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.9:
+-----------------
+create trigger trg5a before DELETE on tb3 for each row
+set @temp1=new.f122;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg5b after DELETE on tb3 for each row
+set new.f122='test';
+ERROR HY000: There is no NEW row in on DELETE trigger
+drop trigger trg5a;
+drop trigger trg5b;
+
+Testcase 3.5.9.10: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.9.11: covered by 3.5.9.9
+-------------------------------------
+
+Testcase 3.5.9.12: covered by 3.5.9.6
+-------------------------------------
+
+Testcase 3.5.9.13:
+------------------
+create trigger trg6a before UPDATE on tb3 for each row
+set old.f118='C', new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6b after INSERT on tb3 for each row
+set old.f136=163, new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6c after UPDATE on tb3 for each row
+set old.f136=NULL;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg6a;
+drop trigger trg6b;
+drop trigger trg6c;
+
+Testcase 3.5.9.14: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.10.1/2/3:
+----------------------
+Create view vw11 as select * from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+Create trigger trg1a before insert on tb3
+for each row set new.f163=111.11;
+Create trigger trg1b after insert on tb3
+for each row set @test_var='After Insert';
+Create trigger trg1c before update on tb3
+for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+Create trigger trg1d after update on tb3
+for each row set @test_var='After Update';
+Create trigger trg1e before delete on tb3
+for each row set @test_var=5;
+Create trigger trg1f after delete on tb3
+for each row set @test_var= 2* @test_var+7;
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+Insert into vw11 (f122, f151) values ('Not in View', 3);
+select f121, f122, f151, f163
+from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163
+from tb3 where f122 like 'Not in View';
+f121 f122 f151 f163
+NULL Not in View 3 111.110000000000000000000000000000
+Update vw11 set f163=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+set @test_var=0;
+Select @test_var as 'before delete';
+before delete
+0
+delete from vw11 where f151=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Select @test_var as 'after delete';
+after delete
+17
+drop view vw11;
+drop trigger trg1a;
+drop trigger trg1b;
+drop trigger trg1c;
+drop trigger trg1d;
+drop trigger trg1e;
+drop trigger trg1f;
+delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+
+Testcase 3.5.10.4:
+------------------
+create table tb_load (f1 int, f2 char(25),f3 int) engine=innodb;
+Create trigger trg4 before insert on tb_load
+for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+set @counter= 0;
+select @counter as 'Rows Loaded Before';
+Rows Loaded Before
+0
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+select @counter as 'Rows Loaded After';
+Rows Loaded After
+10
+Select * from tb_load limit 10;
+f1 f2 f3
+-5000 a` 1000
+-4999 aaa 999
+-4998 abaa 999
+-4997 acaaa 999
+-4996 adaaaa 999
+-4995 aeaaaaa 999
+-4994 afaaaaaa 998
+-4993 agaaaaaaa 998
+-4992 a^aaaaaaaa 998
+-4991 a_aaaaaaaaa 998
+drop trigger trg4;
+drop table tb_load;
+
+Testcase 3.5.10.5: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.6: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.extra:
+----------------------
+create table t1_sp (var136 tinyint, var151 decimal) engine=innodb;
+create trigger trg before insert on t1_sp
+for each row set @counter=@counter+1;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR 02000: No data to FETCH
+select @counter;
+@counter
+20
+select count(*) from tb3;
+count(*)
+20
+select count(*) from t1_sp;
+count(*)
+20
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase 3.5.11.1 (implemented in trig_perf.test)
+-------------------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
+
+Testcase y.y.y.2: Check for triggers starting triggers
+------------------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2_1;
+drop table if exists t2_2;
+drop table if exists t2_3;
+drop table if exists t2_4;
+drop table if exists t3;
+create table t1 (f1 integer);
+create table t2_1 (f1 integer);
+create table t2_2 (f1 integer);
+create table t2_3 (f1 integer);
+create table t2_4 (f1 integer);
+create table t3 (f1 integer);
+insert into t1 values (1);
+create trigger tr1 after insert on t1 for each row
+BEGIN
+insert into t2_1 (f1) values (new.f1+1);
+insert into t2_2 (f1) values (new.f1+1);
+insert into t2_3 (f1) values (new.f1+1);
+insert into t2_4 (f1) values (new.f1+1);
+END//
+create trigger tr2_1 after insert on t2_1 for each row
+insert into t3 (f1) values (new.f1+10);
+create trigger tr2_2 after insert on t2_2 for each row
+insert into t3 (f1) values (new.f1+100);
+create trigger tr2_3 after insert on t2_3 for each row
+insert into t3 (f1) values (new.f1+1000);
+create trigger tr2_4 after insert on t2_4 for each row
+insert into t3 (f1) values (new.f1+10000);
+insert into t1 values (1);
+select * from t3;
+f1
+12
+102
+1002
+10002
+drop trigger tr1;
+drop trigger tr2_1;
+drop trigger tr2_2;
+drop trigger tr2_3;
+drop trigger tr2_4;
+drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+
+Testcase y.y.y.3: Circular trigger reference
+--------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = innodb;
+create table t2 (f2 integer) engine = innodb;
+create table t3 (f3 integer) engine = innodb;
+create table t4 (f4 integer) engine = innodb;
+insert into t1 values (0);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1);
+create trigger tr4 after insert on t4
+for each row insert into t1 (f1) values (new.f4+1);
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+0
+select * from t2;
+f2
+select * from t3;
+f3
+select * from t4;
+f4
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop trigger tr4;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
+----------------------------------------------------------------------
+set @sql_mode='traditional';
+create table t1_sp (
+count integer,
+var136 tinyint,
+var151 decimal) engine=innodb;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+set @counter= @counter+1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (@counter, var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+create trigger trg before insert on t1_sp
+for each row call trig_sp();
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Recursive stored routines are not allowed.
+select @counter;
+@counter
+1
+select count(*) from tb3;
+count(*)
+20
+select count(*) from t1_sp;
+count(*)
+0
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase y.y.y.5: Roleback of nested trigger references
+-------------------------------------------------------
+set @@sql_mode='traditional';
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = innodb;
+create table t2 (f2 integer) engine = innodb;
+create table t3 (f3 integer) engine = innodb;
+create table t4 (f4 tinyint) engine = innodb;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+insert into t1 values (1);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1000);
+set autocommit=0;
+start transaction;
+insert into t1 values (1);
+ERROR 22003: Out of range value adjusted for column 'f4' at row 1
+commit;
+select * from t1;
+f1
+1
+select * from t2;
+f2
+select * from t3;
+f3
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase x.x.x.1:
+-----------------
+DROP TABLE IF EXISTS t0, t1, t2;
+CREATE TABLE t0 (col1 char(50)) ENGINE=innodb;
+CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+PRIMARY KEY (id)) ENGINE=innodb;
+CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+INDEX par_ind (f_id), col1 char(50),
+FOREIGN KEY (f_id) REFERENCES t1(id)
+ON DELETE SET NULL) ENGINE=innodb;
+insert into t1 values (1,'Department A');
+insert into t1 values (2,'Department B');
+insert into t1 values (3,'Department C');
+insert into t2 values (1,2,'Emp 1');
+insert into t2 values (2,2,'Emp 2');
+insert into t2 values (3,2,'Emp 3');
+create trigger trig after insert on t0 for each row
+delete from t1 where col1=new.col1;
+select * from t2;
+id f_id col1
+1 2 Emp 1
+2 2 Emp 2
+3 2 Emp 3
+lock tables t0 write, t1 write;
+insert into t0 values ('Department B');
+unlock tables;
+select * from t2;
+id f_id col1
+1 NULL Emp 1
+2 NULL Emp 2
+3 NULL Emp 3
+drop trigger trig;
+drop table t2, t1;
+
+Testcase x.x.x.2:
+-----------------
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+PRIMARY KEY (id)) ENGINE=innodb;
+CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+INDEX par_ind (f_id), col1 char(50),
+FOREIGN KEY (f_id) REFERENCES t1(id)
+ON UPDATE CASCADE) ENGINE=innodb;
+insert into t1 values (1,'Department A');
+insert into t1 values (2,'Department B');
+insert into t1 values (3,'Department C');
+insert into t2 values (1,2,'Emp 1');
+insert into t2 values (2,3,'Emp 2');
+insert into t2 values (3,4,'Emp 3');
+ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f_id`) REFERENCES `t1` (`id`) ON UPDATE CASCADE)
+create trigger tr_t2 before insert on t2 for each row
+insert into t1 values(new.f_id, concat('New Department ', new.f_id));
+lock tables t1 write, t2 write;
+insert into t2 values (3,4,'Emp 3');
+unlock tables;
+select * from t1;
+id col1
+1 Department A
+2 Department B
+3 Department C
+4 New Department 4
+select * from t2;
+id f_id col1
+1 2 Emp 1
+2 3 Emp 2
+3 4 Emp 3
+drop trigger tr_t2;
+drop table t2, t1;
+
+Foreign Key tests disabled (bug 11472 - stored in trig_frkey2.test)
+-------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/innodb_views.result b/mysql-test/suite/funcs_1/r/innodb_views.result
new file mode 100644
index 00000000000..3bb56a82612
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/innodb_views.result
@@ -0,0 +1,11448 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ;
+DROP DATABASE IF EXISTS test1;
+CREATE DATABASE test1;
+USE test1;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ;
+USE test;
+
+! Attention: The file with the expected results is not
+| thoroughly checked.
+! The server return codes are correct, but
+| most result sets where the table tb2 is
+! involved are not checked.
+--------------------------------------------------------------------------------
+
+There are some statements where the ps-protocol is switched off.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+
+! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables
+--------------------------------------------------------------------------------
+insert into test.tb2 (f59,f60) values (76710,226546);
+insert into test.tb2 (f59,f60) values(2760,985654);
+insert into test.tb2 (f59,f60) values(569300,9114376);
+insert into test.tb2 (f59,f60) values(660,876546);
+insert into test.tb2 (f59,f60) values(250,87895654);
+insert into test.tb2 (f59,f60) values(340,9984376);
+insert into test.tb2 (f59,f60) values(3410,996546);
+insert into test.tb2 (f59,f60) values(2550,775654);
+insert into test.tb2 (f59,f60) values(3330,764376);
+insert into test.tb2 (f59,f60) values(441,16546);
+insert into test.tb2 (f59,f60) values(24,51654);
+insert into test.tb2 (f59,f60) values(323,14376);
+insert into test.tb2 (f59,f60) values(34,41);
+insert into test.tb2 (f59,f60) values(04,74);
+insert into test.tb2 (f59,f60) values(15,87);
+insert into test.tb2 (f59,f60) values(22,93);
+insert into test.tb2 (f59,f60) values(394,41);
+insert into test.tb2 (f59,f60) values(094,74);
+insert into test.tb2 (f59,f60) values(195,87);
+insert into test.tb2 (f59,f60) values(292,93);
+insert into test.tb2 (f59,f60) values(0987,41) ;
+insert into test.tb2 (f59,f60) values(7876,74) ;
+INSERT INTO tb2 (f59,f61) VALUES(321,765 );
+INSERT INTO tb2 (f59,f61) VALUES(9112,8771);
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+Insert into tb2 (f59,f60,f61) values (107,105,106) ;
+Insert into tb2 (f59,f60,f61) values (109,108,104) ;
+Insert into tb2 (f59,f60,f61) values (207,205,206) ;
+Insert into tb2 (f59,f60,f61) values (209,208,204) ;
+Insert into tb2 (f59,f60,f61) values (27,25,26) ;
+Insert into tb2 (f59,f60,f61) values (29,28,24) ;
+Insert into tb2 (f59,f60,f61) values (17,15,16) ;
+Insert into tb2 (f59,f60,f61) values (19,18,14) ;
+insert into tb2 (f59,f60,f61) values (107,105,106);
+insert into tb2 (f59,f60,f61) values (109,108,104);
+INSERT INTO tb2 (f59,f60) VALUES( 299,899 );
+INSERT INTO tb2 (f59,f60) VALUES( 242,79 );
+INSERT INTO tb2 (f59,f60) VALUES( 424,89 );
+Use test;
+
+Testcase 3.3.1.1
+--------------------------------------------------------------------------------
+Drop table if exists t1;
+Create table t1 (f59 INT, f60 INT) ;
+Insert into t1 values (100,4234);
+Insert into t1 values (990,6624);
+Insert into t1 values (710,765);
+Insert into t1 values (300,433334);
+Insert into t1 values (800,9788);
+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;
+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;
+f59 f60 f61
+1 1 0000000001
+2 2 0000000002
+3 3 0000000003
+4 4 0000000004
+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;
+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;
+f59
+5
+6
+7
+ALTER VIEW v1 AS select f59
+FROM test.tb2 limit 6,2;
+select * FROM v1 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;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 order by f59 asc limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 order by f59 desc limit 100;
+select * FROM v1 limit 0,10;
+f59
+569300
+76710
+9112
+7876
+3410
+3330
+2760
+2550
+987
+660
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 asc limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 desc limit 100;
+select * FROM v1 limit 0,10;
+f59
+569300
+76710
+9112
+7876
+3410
+3330
+2760
+2550
+987
+660
+CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
+union (select f59 from t1) limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+UNION DISTINCT(select f59 FROM t1) ;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+UNION ALL(select f59 FROM t1) ;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+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;
+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
+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
+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
+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
+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
+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
+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
+CREATE or REPLACE VIEW v1 AS select *
+FROM test.tb2 WITH CASCADED CHECK OPTION ;
+select * FROM v1 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
+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;
+F59 F60
+1 1
+2 2
+3 3
+4 4
+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;
+f59 f60
+3330 764376
+DROP VIEW v1 ;
+DROP TABLE t1 ;
+
+Testcase 3.3.1.2
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+CREATE TABLE t1 (f1 BIGINT) ;
+SET @x=0;
+CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
+ERROR HY000: View's SELECT contains a 'INTO' clause
+Select @x;
+@x
+0
+CREATE or REPLACE VIEW v1 AS Select 1
+FROM (SELECT 1 FROM t1) my_table;
+ERROR HY000: View's SELECT contains a subquery in the FROM clause
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ;
+SET @a:=0 ;
+SELECT @a ;
+@a
+0
+INSERT INTO v1 VALUES (1) ;
+SELECT @a ;
+@a
+1
+SELECT * FROM t1;
+f1
+1
+DROP TRIGGER tr1 ;
+SET @a:=0 ;
+CREATE TRIGGER tr1 BEFORE INSERT ON v1 FOR EACH ROW SET @a:=1 ;
+ERROR HY000: 'test.v1' is not BASE TABLE
+RENAME TABLE v1 TO v2;
+RENAME VIEW v2 TO v1;
+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 'VIEW v2 TO v1' at line 1
+ALTER TABLE v2 RENAME AS v1;
+ALTER VIEW v1 RENAME AS v2;
+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 'RENAME AS v2' at line 1
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+CREATE TABLE t1 ( f1 DATE, f2 BLOB, f3 DOUBLE );
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+ALTER TABLE t1 ADD PRIMARY KEY(f1);
+ALTER TABLE v1 ADD PRIMARY KEY(f1);
+ERROR HY000: 'test.v1' is not BASE TABLE
+ALTER VIEW v1 ADD PRIMARY KEY(f1);
+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 'ADD PRIMARY KEY(f1)' at line 1
+CREATE INDEX t1_idx ON t1(f3);
+CREATE INDEX v1_idx ON v1(f3);
+ERROR HY000: 'test.v1' is not BASE TABLE
+DROP TABLE t1;
+DROP VIEW v1;
+
+Testcase 3.3.1.3 + 3.1.1.4
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50;
+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 'or REPLACE AS Select * from tb2 my_table limit 50' at line 1
+CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+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 'WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50' at line 1
+CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+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 'WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50' at line 1
+SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ;
+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 'CREATE VIEW As v1 limit 100' at line 1
+CREATE or REPLACE VIEW v1 Select f59, f60
+from test.tb2 my_table where f59 = 250 ;
+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 'Select f59, f60
+from test.tb2 my_table where f59 = 250' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+DROP VIEW v1;
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+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 'OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK ' at line 1
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+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 'SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CASCADED WITH CHECK OPTION;
+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 'CASCADED WITH CHECK OPTION' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED OPTION CHECK;
+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 'OPTION CHECK' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH CASCADED;
+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 'CHECK OPTION WITH CASCADED' at line 2
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+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 'WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1' at line 1
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+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 'OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPT' at line 1
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+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 'SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table LOCAL WITH CHECK OPTION;
+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 'LOCAL WITH CHECK OPTION' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL OPTION CHECK;
+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 'OPTION CHECK' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH LOCAL;
+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 'CHECK OPTION WITH LOCAL' at line 2
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+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 'WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1' at line 1
+Drop table if exists t1 ;
+CREATE table t1 (f1 int ,f2 int) ;
+INSERT INTO t1 values (235, 22);
+INSERT INTO t1 values (554, 11);
+CREATE or REPLACE view v1 as (Select from f59 tb2)
+Union ALL (Select from f1 t1);
+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 'from f59 tb2)
+Union ALL (Select from f1 t1)' at line 1
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by order f59 limit 100 ;
+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 'by order f59 limit 100' at line 2
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by group f59 ;
+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 'by group f59' at line 2
+
+Testcase 3.3.1.5
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
+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 'SELECT * FROM tb2 limit 100' at line 1
+CREATE v1 AS SELECT * FROM tb2 limit 100 ;
+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 'v1 AS SELECT * FROM tb2 limit 100' at line 1
+VIEW v1 AS SELECT * FROM tb2 limit 100 ;
+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 'VIEW v1 AS SELECT * FROM tb2 limit 100' at line 1
+CREATE VIEW v1 AS SELECT 1;
+DROP VIEW v1;
+VIEW v1 AS SELECT 1;
+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 'VIEW v1 AS SELECT 1' at line 1
+CREATE v1 AS SELECT 1;
+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 'v1 AS SELECT 1' at line 1
+CREATE VIEW AS SELECT 1;
+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 'AS SELECT 1' at line 1
+CREATE VIEW v1 SELECT 1;
+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 'SELECT 1' at line 1
+CREATE VIEW v1 AS ;
+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
+
+Testcase 3.3.1.6
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE or REPLACE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = MERGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+Warnings:
+Warning 1354 View merge algorithm can't be used here for now (assumed undefined algorithm)
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 '= TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM = VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'GARBAGE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+Drop view if exists v1 ;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH LOCAL CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH NO CHECK OPTION;
+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 'NO CHECK OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 CASCADED CHECK OPTION;
+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 'CASCADED CHECK OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED OPTION;
+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 'OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK ;
+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 2
+
+Testcase 3.3.1.7
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+Create view test.v1 AS Select * from test.tb2 limit 100 ;
+Alter view test.v1 AS Select F59 from test. tb2 limit 100 ;
+Drop view test.v1 ;
+Create view v1 AS Select * from test.tb2 limit 100 ;
+Alter view v1 AS Select F59 from test.tb2 limit 100 ;
+Drop view v1 ;
+
+Testcase 3.3.1.A0
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+CREATE TABLE t1 (f1 NUMERIC(4)) ENGINE = innodb;
+INSERT INTO t1 VALUES(1111), (2222);
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 = 1111;
+CREATE VIEW V1 AS SELECT * FROM t1 WHERE f1 = 2222;
+SELECT * FROM v1;
+f1
+1111
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+
+Testcase 3.3.1.8
+--------------------------------------------------------------------------------
+Create view select AS Select * from test.tb2 limit 100;
+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 'select AS Select * from test.tb2 limit 100' at line 1
+Create view as AS Select * from test.tb2 limit 100;
+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 'as AS Select * from test.tb2 limit 100' at line 1
+Create view where AS Select * from test.tb2 limit 100;
+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 'where AS Select * from test.tb2 limit 100' at line 1
+Create view from AS Select * from test.tb2 limit 100;
+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 'from AS Select * from test.tb2 limit 100' at line 1
+Create view while AS Select * from test.tb2 limit 100;
+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 AS Select * from test.tb2 limit 100' at line 1
+Create view asdkj*(&*&&^ as Select * from test.tb2 limit 100 ;
+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 '*(&*&&^ as Select * from test.tb2 limit 100' at line 1
+Drop view if exists test.procedure ;
+Create view test.procedure as Select * from test.tb2 limit 100 ;
+Drop view if exists test.procedure ;
+
+Testcase 3.3.1.9
+--------------------------------------------------------------------------------
+Drop TABLE IF EXISTS t1 ;
+Drop VIEW IF EXISTS v1;
+Drop VIEW IF EXISTS v2;
+Drop VIEW IF EXISTS v3;
+CREATE TABLE t1 ( f1 char(5));
+INSERT INTO t1 SET f1 = 'abcde';
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE VIEW v2 AS SELECT * FROM v1;
+DROP TABLE t1;
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v1 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v1 SET f1 = "fffff";
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v2 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v2 SET f1 = "fffff";
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v1;
+SELECT * FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v2 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v2 SET f1 = "fffff";
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v2;
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f1 FLOAT);
+CREATE VIEW v1 AS SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE or REPLACE VIEW v1 AS SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+DROP VIEW v1;
+DROP TABLE t1;
+
+Testcase 3.3.1.10
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create view test.v1 AS Select * from test.tb2 ;
+Create view test.v1 AS Select F59 from test.tb2 ;
+ERROR 42S01: Table 'v1' already exists
+Create view v1 AS Select F59 from test.tb2 ;
+ERROR 42S01: Table 'v1' already exists
+
+Testcase 3.3.1.11
+--------------------------------------------------------------------------------
+Create view test.tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+ERROR 42S01: Table 'tb2' already exists
+Create view tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+ERROR 42S01: Table 'tb2' already exists
+Drop view if exists test.v111 ;
+Create view test.v111 as select * from tb2 limit 50;
+Create table test.v111(f1 int );
+ERROR 42S01: Table 'v111' already exists
+Create table v111(f1 int );
+ERROR 42S01: Table 'v111' already exists
+DROP VIEW test.v111;
+
+Testcase 3.3.1.12
+--------------------------------------------------------------------------------
+USE test;
+Drop database if exists test2 ;
+Create database test2 ;
+DROP TABLE IF EXISTS test.t0, test.t1, test.t2;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+CREATE TABLE test.t1 ( f1 VARCHAR(20));
+CREATE TABLE test2.t1 ( f1 VARCHAR(20));
+CREATE TABLE test.t2 ( f1 VARCHAR(20));
+CREATE TABLE test2.v1 ( f1 VARCHAR(20));
+CREATE TABLE test.t0 ( f1 VARCHAR(20));
+CREATE TABLE test2.t0 ( f1 VARCHAR(20));
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test.v1 AS SELECT * FROM test.t0;
+CREATE VIEW test.v2 AS SELECT * FROM test.t0;
+CREATE VIEW test2.v2 AS SELECT * FROM test2.t0;
+INSERT INTO test.t1 VALUES('test.t1 - 1');
+INSERT INTO test2.t1 VALUES('test2.t1 - 1');
+INSERT INTO test.t2 VALUES('test.t2 - 1');
+INSERT INTO test2.v1 VALUES('test2.v1 - 1');
+INSERT INTO test.t0 VALUES('test.t0 - 1');
+INSERT INTO test2.t0 VALUES('test2.t0 - 1');
+USE test;
+INSERT INTO t1 VALUES('test.t1 - 2');
+INSERT INTO t2 VALUES('test.t2 - 2');
+INSERT INTO t0 VALUES('test.t0 - 2');
+USE test2;
+INSERT INTO t1 VALUES('test2.t1 - 2');
+INSERT INTO v1 VALUES('test2.v1 - 2');
+INSERT INTO t0 VALUES('test2.t0 - 2');
+SELECT * FROM t1;
+f1
+test2.t1 - 1
+test2.t1 - 2
+SELECT * FROM t2;
+f1
+test2.t0 - 1
+test2.t0 - 2
+SELECT * FROM v1;
+f1
+test2.v1 - 1
+test2.v1 - 2
+SELECT * FROM v2;
+f1
+test2.t0 - 1
+test2.t0 - 2
+USE test;
+SELECT * FROM t1;
+f1
+test.t1 - 1
+test.t1 - 2
+SELECT * FROM t2;
+f1
+test.t2 - 1
+test.t2 - 2
+SELECT * FROM v1;
+f1
+test.t0 - 1
+test.t0 - 2
+SELECT * FROM v2;
+f1
+test.t0 - 1
+test.t0 - 2
+
+Testcase 3.3.1.13
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+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
+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
+SELECT * FROM test.v1;
+f1
+1
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 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 ;
+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;
+F59
+76710
+2760
+569300
+660
+250
+340
+3410
+2550
+3330
+441
+24
+323
+34
+4
+15
+22
+394
+94
+195
+292
+987
+7876
+321
+9112
+500
+500
+500
+107
+109
+207
+209
+27
+29
+17
+19
+107
+109
+299
+242
+424
+Drop table test.t1 ;
+Drop view test.v1 ;
+
+Testcase 3.3.1.14
+--------------------------------------------------------------------------------
+CREATE OR REPLACE VIEW test.tb2 AS SELECT * From tb2 LIMIT 2;
+ERROR HY000: 'test.tb2' is not VIEW
+CREATE OR REPLACE VIEW tb2 AS SELECT * From tb2 LIMIT 2;
+ERROR HY000: 'test.tb2' is not VIEW
+
+Testcase 3.3.1.15
+--------------------------------------------------------------------------------
+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
+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
+--------------------------------------------------------------------------------
+Drop table if exists test.v1 ;
+CREATE OR REPLACE VIEW v1 AS SELECT * From tb2;
+SELECT * FROM tb2 WHERE 1 = 2;
+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 v1 WHERE 1 = 2;
+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 v1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+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`
+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`
+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`
+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`
+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`
+SELECT * FROM v1;
+column1 column2
+8.800 8.800
+
+Testcase 3.3.1.18
+--------------------------------------------------------------------------------
+Drop view if exists v1 ;
+Drop view if exists v1_1 ;
+Create view v1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60
+from test.tb2 limit 0,100 ;
+Create view v1_1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60 as NewNameF2
+from tb2 limit 0,100 ;
+SELECT NewNameF1,f60 FROM test.v1_1 ;
+ERROR 42S22: Unknown column 'f60' in 'field list'
+SELECT NewNameF1, v1_1.f60 FROM test.v1_1 ;
+ERROR 42S22: Unknown column 'v1_1.f60' in 'field list'
+SELECT f59, f60 FROM test.v1 ;
+ERROR 42S22: Unknown column 'f59' in 'field list'
+Use test ;
+SELECT F59 FROM v1 ;
+ERROR 42S22: Unknown column 'F59' in 'field list'
+
+Testcase 3.3.1.19
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1, t2;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t1 VALUES(7, 7.7);
+CREATE TABLE t2( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t2 VALUES(6, 6.6);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+f1 f2
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+f1 f2
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1 AS my_f1, f2 AS my_f2 FROM t1;
+SELECT * FROM v1;
+my_f1 my_f2
+7 7.70
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+my_f1 my_f2
+7 7.70
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT t1.f1, t2.f2 FROM t1, t2;
+SELECT * FROM v1;
+my_f1 my_f2
+7 6.60
+SELECT f1, f2 AS f1 FROM t1;
+f1 f1
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 AS f1 FROM t1;
+ERROR 42S21: Duplicate column name 'f1'
+SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+f1 f1
+7 6
+CREATE OR REPLACE VIEW v1 AS SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+ERROR 42S21: Duplicate column name 'f1'
+CREATE OR REPLACE VIEW v1 (my_col, my_col) AS SELECT * FROM t1;
+ERROR 42S21: Duplicate column name 'my_col'
+
+Testcase 3.3.1.20
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT * FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT * FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT f1, f2 FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT * FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT f1, f2 FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+
+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;
+F59 F60
+1 1
+2 2
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.22
+--------------------------------------------------------------------------------
+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
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT 1*2;
+SELECT * FROM test.v1;
+product
+2
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT USER();
+SELECT * FROM test.v1;
+product
+root@localhost
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.23 + 3.3.1.24
+--------------------------------------------------------------------------------
+USE test;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE VIEW test.v2 AS SELECT * FROM test.t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+CREATE VIEW v2 AS Select * from test.v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+DROP VIEW IF EXISTS v2;
+Warnings:
+Note 1051 Unknown table 'test.v2'
+
+Testcase 3.3.1.25
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1_temp;
+DROP TABLE IF EXISTS t2_temp;
+DROP VIEW IF EXISTS v1;
+Create table t1_temp(f59 char(10),f60 int) ;
+Create temporary table t1_temp(f59 char(10),f60 int) ;
+Insert into t1_temp values('FER',90);
+Insert into t1_temp values('CAR',27);
+Create view v1 as select * from t1_temp ;
+ERROR HY000: View's SELECT refers to a temporary table 't1_temp'
+Create temporary table t2_temp(f59 char(10),f60 int) ;
+Insert into t2_temp values('AAA',11);
+Insert into t2_temp values('BBB',22);
+Create or replace view v1
+as select t1_temp.f59,t2_temp.f59 from t1_temp,t2_temp ;
+ERROR HY000: View's SELECT refers to a temporary table 't1_temp'
+DROP temporary table t1_temp;
+DROP table t1_temp;
+DROP temporary table t2_temp;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 (f1 char(10));
+CREATE TEMPORARY TABLE t2 (f2 char(10));
+INSERT INTO t1 VALUES('t1');
+INSERT INTO t1 VALUES('A');
+INSERT INTO t2 VALUES('t2');
+INSERT INTO t2 VALUES('B');
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2, t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f2, f1 FROM t2, t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1, t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1, t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2 UNION SELECT * FROM t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2 UNION SELECT f1 FROM t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1 UNION SELECT f2 FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t2
+WHERE f2 = ( SELECT f1 FROM t1 );
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t1
+WHERE f1 = ( SELECT f2 FROM t2 );
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+DROP TABLE t1;
+DROP TEMPORARY TABLE t2;
+
+Testcase 3.3.1.26
+--------------------------------------------------------------------------------
+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
+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
+--------------------------------------------------------------------------------
+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 ;
+F59
+1
+2
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+
+Testcase 3.3.1.28
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+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 ;
+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
+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
+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
+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
+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
+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
+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
+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 ;
+Drop view if exists test2.v2 ;
+Drop database test2 ;
+
+Testcase 3.3.1.29
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+create database test2 ;
+use test2;
+Create view test.v1 AS Select * from test.tb2 limit 50 ;
+Create view test2.v2 AS Select F59 from test.v1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test2.v2 ;
+
+Testcase 3.3.1.31
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+CREATE TABLE test.t1 ( f59 int, f60 int );
+INSERT INTO test.t1 VALUES( 34, 654 );
+INSERT INTO test.t1 VALUES( 906, 434 );
+INSERT INTO test.t1 VALUES( 445, 765 );
+Create or replace view test.v1
+AS SELECT test.t1.F59, test.tb2.F60
+FROM test.tb2 JOIN test.t1 ON test.tb2.F59 = test.t1.F59 ;
+Select * from test.v1;
+F59 F60
+34 41
+Drop view test.v1 ;
+
+Testcase 3.3.1.32
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+create database test2 ;
+use test2 ;
+CREATE TABLE t1 ( f59 int, f60 int );
+INSERT INTO t1 VALUES( 34, 654 );
+INSERT INTO t1 VALUES( 906, 434 );
+INSERT INTO t1 VALUES( 445, 765 );
+CREATE VIEW test2.v1
+AS SELECT test.tb2.F59, test.tb2.F60
+FROM test.tb2 INNER JOIN test2.t1 ON tb2.f59 = t1.f59;
+Select * from test2.v1;
+F59 F60
+34 41
+Use test;
+
+Testcase 3.3.1.33
+--------------------------------------------------------------------------------
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+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 ;
+
+Testcase 3.3.1.34
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+create database test2 ;
+use test2 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2 ;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2 ;
+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;
+F59 F60
+1 1
+2 2
+3 3
+4 4
+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 ;
+
+Testcase 3.3.1.35
+--------------------------------------------------------------------------------
+use test;
+Drop view if exists test.v1;
+Drop view if exists test.v1_firstview;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+4 74
+5 5
+6 6
+7 7
+8 8
+9 9
+Drop view test.v1 ;
+Drop view test.v1_firstview;
+
+Testcase 3.3.1.36
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+create database test2 ;
+use test2 ;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+4 74
+5 5
+6 6
+7 7
+8 8
+9 9
+Drop database test2 ;
+
+Testcase 3.3.1.37
+--------------------------------------------------------------------------------
+use test;
+Drop table if exists t1;
+Drop view if exists test.v1 ;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+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 ;
+Select * from v1_1 ;
+f59 f60
+90 507
+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;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+Drop table t1;
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+Drop view test.v1_main ;
+
+Testcase 3.3.1.31 - 3.3.1.37 New Implementation
+--------------------------------------------------------------------------------
+USE test;
+DROP DATABASE IF EXISTS test2;
+DROP TABLE IF EXISTS t0,t1;
+DROP VIEW IF EXISTS t3,t4;
+CREATE DATABASE test2;
+CREATE TABLE test1.t0 (f1 VARCHAR(20));
+CREATE TABLE test1.t1 (f1 VARCHAR(20));
+CREATE TABLE test2.t0 (f1 VARCHAR(20));
+CREATE TABLE test2.t1 (f1 VARCHAR(20));
+CREATE VIEW test1.t2 AS SELECT * FROM test1.t0;
+CREATE VIEW test1.t3 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t3 AS SELECT * FROM test1.t0;
+INSERT INTO test1.t0 VALUES('test1.t0');
+INSERT INTO test1.t1 VALUES('test1.t1');
+INSERT INTO test2.t0 VALUES('test2.t0');
+INSERT INTO test2.t1 VALUES('test2.t1');
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t1
+
+Testcase 3.3.1.38
+--------------------------------------------------------------------------------
+Drop table if exists test1.t1 ;
+Drop view if exists test.v1 ;
+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 ;
+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
+660 876546
+250 87895654
+340 9984376
+3410 996546
+2550 775654
+3330 764376
+441 16546
+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 ;
+Select * from test1.v1_1 ;
+f59 f60
+199 507
+Create database test3 ;
+Create table test3.t1(f59 int,f60 int) ;
+Insert into test3.t1 values (1023,7670) ;
+Create view test3.v1_2 as Select f59,f60 from test3.t1 ;
+Select * from test3.v1_2 ;
+f59 f60
+1023 7670
+use test ;
+Create view v1_main
+as SELECT test.tb2.f59 as f1, test1.v1_1.f59 as f2,
+test3.v1_2.f59 as f3
+FROM (test.tb2,test1.v1_1,test.v1) JOIN test3.v1_2
+ON (test.v1.f59 = test1.v1_1.f59) ;
+Select * from v1_main ;
+f1 f2 f3
+DROP VIEW test.v1 ;
+DROP VIEW test1.v1_1 ;
+DROP VIEW test.v1_main ;
+DROP DATABASE test3;
+
+Testcase 3.3.1.39
+--------------------------------------------------------------------------------
+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 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.40
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Set @var1 = 'ABC' ;
+Set @var2 = 'XYZ' ;
+CREATE VIEW test.v1 AS SELECT @var1, @var2 ;
+ERROR HY000: View's SELECT contains a variable or parameter
+CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
+ERROR HY000: View's SELECT contains a variable or parameter
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.41
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Drop procedure if exists sp1 ;
+Create procedure sp1() DETERMINISTIC
+Begin
+DECLARE x char;
+Set x = 200 ;
+Create view test.v1 as SELECT * FROM tb2 WHERE f59 = x ;
+End //
+ERROR HY000: View's SELECT contains a variable or parameter
+Call sp1() ;
+ERROR 42000: PROCEDURE test.sp1 does not exist
+Drop view if exists test.v1 ;
+Warnings:
+Note 1051 Unknown table 'test.v1'
+Drop procedure sp1 ;
+ERROR 42000: PROCEDURE test.sp1 does not exist
+
+Testcase 3.3.1.42
+--------------------------------------------------------------------------------
+Drop VIEW if exists test.v1 ;
+CREATE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 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 'VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2' at line 1
+CREATE OR REPLACE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 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 'TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2' at line 1
+Drop view if exists test.v1 ;
+Use test;
+
+Testcase 3.3.1.43
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
+INSERT INTO test.v1 values(122,432);
+SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20;
+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
+122 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ;
+SELECT * FROM test.tb2 where f59 = 3000 limit 0,20;
+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
+3000 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+DELETE FROM test.v1
+where test.v1.f59 = 3000 and test.v1.f60 = 432;
+SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432;
+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 test.v1 ;
+
+Testcase 3.3.1.44
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 limit 100;
+INSERT INTO test.v1 values(31, 32, 33) ;
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+Drop view test.v1 ;
+
+Testcase 3.3.1.45
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+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 ;
+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
+30 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
+30 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
+UPDATE tb2 SET f59 = 100 where f59 = 30 ;
+affected rows: 2
+info: Rows matched: 2 Changed: 2 Warnings: 0
+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 ;
+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 ;
+Drop VIEW IF EXISTS test.v1 ;
+CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), PRIMARY KEY(f1))
+ENGINE = innodb;
+INSERT INTO t1 VALUES(1,'one');
+INSERT INTO t1 VALUES(2,'two');
+INSERT INTO t1 VALUES(3,'three');
+INSERT INTO t1 VALUES(5,'five');
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 BETWEEN 2 AND 4;
+SELECT COUNT(*) FROM v1 WHERE f1 = 2;
+COUNT(*)
+1
+SELECT COUNT(*) FROM v1 WHERE f1 = 4;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1 WHERE f1 = 5;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1 WHERE f1 = 10;
+COUNT(*)
+0
+INSERT INTO t1 VALUES(4,'four');
+DELETE FROM v1 WHERE f1 = 3;
+affected rows: 1
+DELETE FROM v1 WHERE f1 = 5;
+affected rows: 0
+SELECT * FROM t1 ORDER BY f1;
+f1 f2
+1 one
+2 two
+4 four
+5 five
+SELECT * FROM v1 ORDER BY f1;
+f1 f2
+2 two
+4 four
+INSERT INTO v1 VALUES(2,'two');
+ERROR 23000: Duplicate entry '2' for key 1
+INSERT INTO v1 VALUES(3,'three');
+affected rows: 1
+INSERT INTO v1 VALUES(6,'six');
+affected rows: 1
+SELECT * FROM t1 ORDER BY f1;
+f1 f2
+1 one
+2 two
+3 three
+4 four
+5 five
+6 six
+SELECT * FROM v1 ORDER BY f1;
+f1 f2
+2 two
+3 three
+4 four
+UPDATE v1 SET f1 = 2 WHERE f1 = 3;
+ERROR 23000: Duplicate entry '2' for key 1
+UPDATE v1 SET f2 = 'number' WHERE f1 = 3;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+UPDATE v1 SET f1 = 10 WHERE f1 = 3;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+UPDATE v1 SET f2 = 'number' WHERE f1 = 1;
+affected rows: 0
+
+Testcase 3.3.1.46
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+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 ;
+f59 f60
+195 87
+drop view if exists test.v1 ;
+
+Testcase 3.3.1.47
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+CREATE VIEW test.v1 AS SELECT f59,f60
+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 ;
+f59 f60
+987 41
+UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
+SELECT * FROM tb2 where f59 = 9879 ;
+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 v1 ;
+drop view if exists v2 ;
+
+Testcase 3.3.1.48
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS test.t1;
+DROP VIEW IF EXISTS test.v1;
+CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER)
+ENGINE = innodb;
+INSERT INTO t1 VALUES ('A', 1);
+SELECT * FROM t1;
+f1 f2
+A 1
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2
+WITH CASCADED CHECK OPTION ;
+SELECT * FROM v1;
+f1 f2
+A 1
+UPDATE v1 SET f2 = 2 WHERE f2 = 1;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+INSERT INTO v1 VALUES('B',2);
+affected rows: 1
+SELECT * FROM v1;
+f1 f2
+A 2
+B 2
+UPDATE v1 SET f2 = 4;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+INSERT INTO v1 VALUES('B',3);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+SELECT * FROM v1;
+f1 f2
+A 2
+B 2
+
+Testcase 3.3.1.49
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+Drop view if exists test.v3 ;
+Create table test.t1 (f59 INT, f60 INT) ;
+Insert into test.t1 values (100,4234);
+Insert into test.t1 values (290,6624);
+Insert into test.t1 values (410,765);
+Insert into test.t1 values (300,433334);
+Insert into test.t1 values (800,9788);
+Insert into test.t1 values (501,9866);
+Create view test.v1 as select f59
+FROM test.t1 where f59<500 with check option ;
+Create view test.v2 as select *
+from test.v1 where f59>0 with local check option ;
+Create view test.v3 as select *
+from test.v1 where f59>0 with cascaded check option ;
+Insert into test.v2 values(23) ;
+Insert into test.v3 values(24) ;
+drop view if exists test.v1 ;
+drop view if exists test.v2 ;
+drop view if exists test.v3 ;
+
+Testcase 3.3.1.49A
+--------------------------------------------------------------------------------
+USE test;
+DROP TABLE IF EXISTS test.t1 ;
+DROP TABLE IF EXISTS test.t1_results ;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+DROP VIEW IF EXISTS test.v3;
+CREATE TABLE t1 (f1 INTEGER, f2 CHAR(20));
+CREATE TABLE t1_results (v3_to_v1_options VARCHAR(100), statement VARCHAR(10),
+v3_to_v1_violation VARCHAR(20), errno CHAR(10));
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH LOCAL CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH CASCADED CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+SELECT * FROM t1_results ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+ <nothing> - <nothing> - <nothing> UPDATE _v2_ 0
+ <nothing> - <nothing> - <nothing> INSERT _v2_ 0
+ <nothing> - <nothing> - <nothing> INSERT _ _v1 0
+ <nothing> - <nothing> - <nothing> UPDATE _ _ 0
+ <nothing> - <nothing> - <nothing> UPDATE _ _v1 0
+ <nothing> - <nothing> - <nothing> UPDATE v3_ _ 0
+ <nothing> - <nothing> - <nothing> INSERT _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+
+Plausibility checks for INSERTs and UPDATEs ( 4. and 5. above).
+All following SELECTs must give ROW NOT FOUND
+--------------------------------------------------------------------------------
+SELECT * FROM t1_results
+WHERE v3_to_v1_violation = ' _ _ ' AND errno <> 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE ' %' AND errno <> 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %'
+AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %' AND v3_to_v1_options NOT LIKE 'WITH LOCAL %'
+ AND v3_to_v1_violation NOT LIKE ' _ _ ' AND errno = 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE errno <> 0 AND errno <> 1369
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+
+End of plausibility checks
+--------------------------------------------------------------------------------
+DROP TABLE t1_results;
+
+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 ;
+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
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
+SELECT * FROM test.v1 ;
+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
+22 NULL
+394 NULL
+94 NULL
+195 NULL
+292 NULL
+987 NULL
+7876 NULL
+321 0000000765
+9112 0000008771
+500 0000000900
+500 0000000900
+500 0000000900
+107 0000000106
+109 0000000104
+207 0000000206
+209 0000000204
+27 0000000026
+29 0000000024
+17 0000000016
+19 0000000014
+107 0000000106
+109 0000000104
+299 NULL
+242 NULL
+424 NULL
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
+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
+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
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
+SELECT * FROM test.v1 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
+250 NULL
+340 NULL
+3410 NULL
+2550 NULL
+3330 NULL
+441 NULL
+drop view test.v1 ;
+
+Testcase 3.3.1.54
+--------------------------------------------------------------------------------
+USE test;
+drop table if exists test.t1 ;
+drop table if exists test.t2 ;
+drop view if exists test.v1 ;
+Create table t1 (f59 int, f60 int) ;
+Create table t2 (f59 int, f60 int) ;
+Insert into t1 values (1,10) ;
+Insert into t1 values (2,20) ;
+Insert into t1 values (47,80) ;
+Insert into t2 values (1,1000) ;
+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 ;
+f59 f60
+1 10
+2 20
+drop table test.t1 ;
+drop table test.t2 ;
+drop view test.v1 ;
+
+Testcase 3.3.1.50 - 3.3.1.54 additional implementation
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 ( f1 BIGINT, f2 char(10), f3 DECIMAL(10,5) );
+INSERT INTO t1 VALUES(1, 'one', 1.1);
+INSERT INTO t1 VALUES(2, 'two', 2.2);
+INSERT INTO t1 VALUES(3, 'three', 3.3);
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+f1 f2 f3
+1 one 1.10000
+2 two 2.20000
+3 three 3.30000
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1;
+SELECT * FROM v1;
+f2
+one
+two
+three
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+f1 f2 f3
+2 two 2.20000
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+f2
+two
+SET sql_mode = 'traditional,ansi';
+CREATE OR REPLACE VIEW v1 AS
+SELECT f3 AS "pure column f3: ", f1 + f3 AS "sum of columns f1 + f3 = ",
+3 * (- 0.11111E+1) AS "product of constants 3 * (- 0.11111E+1): ",
+'->' || CAST(f3 AS CHAR) || '<-'
+ AS "expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): "
+FROM t1 WHERE f1 = 2;
+SELECT * FROM v1;
+pure column f3: 2.20000
+sum of columns f1 + f3 = 4.20000
+product of constants 3 * (- 0.11111E+1): -3.3333
+expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): ->2.20000<-
+SET sql_mode = '';
+
+Testcases 3.3.1.55 - 3.3.1.62
+--------------------------------------------------------------------------------
+Drop table if exists t1, t2 ;
+Drop view if exists v1 ;
+Create table t1 (f59 int, f60 char(10), f61 int, a char(1)) ;
+Insert into t1 values (1, 'single', 3, '1') ;
+Insert into t1 values (2, 'double', 6, '2') ;
+Insert into t1 values (3, 'single-f3', 4, '3') ;
+Create table t2 (f59 int, f60 char(10), f61 int, b char(1)) ;
+Insert into t2 values (2, 'double', 6, '2') ;
+Insert into t2 values (3, 'single-f3', 6, '3') ;
+Insert into t2 values (4, 'single', 4, '4') ;
+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;
+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
+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;
+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
+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;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2 cross join t1;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+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;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2,t1;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Create or replace view test.v1 as
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+Select * from v1;
+f59 f60 f61 a b
+2 double 6 2 2
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+f59 f60 f61 a b
+2 double 6 2 2
+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;
+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
+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;
+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
+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;
+f59 f60 f61 a b
+2 double 6 2 2
+3 single-f3 6 NULL 3
+4 single 4 NULL 4
+Select f59, f60, f61, t1.a, t2.b
+FROM t2 natural left outer join t1;
+f59 f60 f61 a b
+2 double 6 2 2
+3 single-f3 6 NULL 3
+4 single 4 NULL 4
+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;
+t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+1 NULL single NULL 3 NULL
+2 2 double double 6 6
+3 3 single-f3 single-f3 4 6
+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;
+t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+1 NULL single NULL 3 NULL
+2 2 double double 6 6
+3 3 single-f3 single-f3 4 6
+Create or replace view test.v1 as
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+Select * from v1;
+f59 f60 a b
+1 single 1 NULL
+2 double 2 2
+3 single-f3 3 NULL
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+f59 f60 a b
+1 single 1 NULL
+2 double 2 2
+3 single-f3 3 NULL
+drop table t1, t2;
+drop view v1 ;
+Use test;
+
+Testcase 3.3.1.A1 - 3.3.1.A3
+--------------------------------------------------------------------------------
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (101,201,301) ;
+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;
+f59
+1
+2
+3
+100
+5
+6
+7
+8
+9
+10
+Drop view if exists test.v1 ;
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (201,201,201) ;
+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;
+f59
+207
+Drop view if exists test.v1 ;
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (21,21,21) ;
+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;
+f59
+27
+Drop view test.v1 ;
+
+Testcase 3.3.1.63
+--------------------------------------------------------------------------------
+Drop table if exists t1 ;
+Drop view if exists test.v1 ;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (11,21,31) ;
+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;
+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;
+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;
+f59
+17
+Drop view test.v1 ;
+drop table if exists t1;
+drop view if exists test.v1;
+create table t1 (f59 int, f60 int, f61 int);
+insert into t1 values (101,201,301);
+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;
+f59
+107
+107
+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;
+f59
+107
+107
+107
+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;
+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;
+f59
+107
+drop view if exists test.v1 ;
+drop table t1;
+
+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;
+F59
+109
+109
+ALTER VIEW test.v1 AS SELECT *
+FROM test.tb2 WHERE test.tb2.f59 = 242 ;
+SELECT * FROM test.v1 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 ;
+
+Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS test.v1 ;
+CREATE TABLE t1 ( f1 VARCHAR(1000) ) ENGINE = innodb ;
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+DROP VIEW v1;
+DROP VIEW v1;
+ERROR 42S02: Unknown table 'v1'
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1;
+Warnings:
+Note 1051 Unknown table 'test.v1'
+
+Testcase 3.3.1.68
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1_base ;
+DROP VIEW IF EXISTS v1_top ;
+CREATE TABLE t1 ( f1 DOUBLE);
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top CASCADE ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base CASCADE ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top RESTRICT ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base RESTRICT ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+
+Testcase 3.3.1.69, 3.3.1.70, 3.3.1.A5
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ENGINE = innodb;
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP VIEW v1 ;
+SELECT * FROM v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW CREATE VIEW v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW CREATE TABLE v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW TABLE STATUS like 'v1' ;
+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
+SHOW TABLES LIKE 'v1';
+Tables_in_test (v1)
+SHOW COLUMNS FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+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 Corrupt
+DESCRIBE v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+EXPLAIN SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+Use test;
+
+Testcase 3.3.1.A6
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS test3;
+CREATE DATABASE test3;
+CREATE TABLE test3.t1 (f1 DECIMAL(5,3)) ENGINE = innodb;
+INSERT INTO test3.t1 SET f1 = 1.0;
+CREATE VIEW test3.v0 AS SELECT * FROM test3.t1;
+CREATE VIEW test3.v1 AS SELECT * FROM test3.v0;
+CREATE VIEW test3.v2 AS SELECT * FROM test3.v1;
+CREATE VIEW test3.v3 AS SELECT * FROM test3.v2;
+CREATE VIEW test3.v4 AS SELECT * FROM test3.v3;
+CREATE VIEW test3.v5 AS SELECT * FROM test3.v4;
+CREATE VIEW test3.v6 AS SELECT * FROM test3.v5;
+CREATE VIEW test3.v7 AS SELECT * FROM test3.v6;
+CREATE VIEW test3.v8 AS SELECT * FROM test3.v7;
+CREATE VIEW test3.v9 AS SELECT * FROM test3.v8;
+CREATE VIEW test3.v10 AS SELECT * FROM test3.v9;
+CREATE VIEW test3.v11 AS SELECT * FROM test3.v10;
+CREATE VIEW test3.v12 AS SELECT * FROM test3.v11;
+CREATE VIEW test3.v13 AS SELECT * FROM test3.v12;
+CREATE VIEW test3.v14 AS SELECT * FROM test3.v13;
+CREATE VIEW test3.v15 AS SELECT * FROM test3.v14;
+CREATE VIEW test3.v16 AS SELECT * FROM test3.v15;
+CREATE VIEW test3.v17 AS SELECT * FROM test3.v16;
+CREATE VIEW test3.v18 AS SELECT * FROM test3.v17;
+CREATE VIEW test3.v19 AS SELECT * FROM test3.v18;
+CREATE VIEW test3.v20 AS SELECT * FROM test3.v19;
+CREATE VIEW test3.v21 AS SELECT * FROM test3.v20;
+CREATE VIEW test3.v22 AS SELECT * FROM test3.v21;
+CREATE VIEW test3.v23 AS SELECT * FROM test3.v22;
+CREATE VIEW test3.v24 AS SELECT * FROM test3.v23;
+CREATE VIEW test3.v25 AS SELECT * FROM test3.v24;
+CREATE VIEW test3.v26 AS SELECT * FROM test3.v25;
+CREATE VIEW test3.v27 AS SELECT * FROM test3.v26;
+CREATE VIEW test3.v28 AS SELECT * FROM test3.v27;
+CREATE VIEW test3.v29 AS SELECT * FROM test3.v28;
+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`
+SELECT * FROM test3.v32;
+f1
+1.000
+EXPLAIN SELECT * FROM test3.v32;
+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`
+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;
+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
+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
+----------------------------------------------------------
+SET @join_limit = 30;
+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;
+DROP VIEW IF EXISTS test1.v24;
+DROP VIEW IF EXISTS test1.v23;
+DROP VIEW IF EXISTS test1.v22;
+DROP VIEW IF EXISTS test1.v21;
+DROP VIEW IF EXISTS test1.v20;
+DROP VIEW IF EXISTS test1.v19;
+DROP VIEW IF EXISTS test1.v18;
+DROP VIEW IF EXISTS test1.v17;
+DROP VIEW IF EXISTS test1.v16;
+DROP VIEW IF EXISTS test1.v15;
+DROP VIEW IF EXISTS test1.v14;
+DROP VIEW IF EXISTS test1.v13;
+DROP VIEW IF EXISTS test1.v12;
+DROP VIEW IF EXISTS test1.v11;
+DROP VIEW IF EXISTS test1.v10;
+DROP VIEW IF EXISTS test1.v9;
+DROP VIEW IF EXISTS test1.v8;
+DROP VIEW IF EXISTS test1.v7;
+DROP VIEW IF EXISTS test1.v6;
+DROP VIEW IF EXISTS test1.v5;
+DROP VIEW IF EXISTS test1.v4;
+DROP VIEW IF EXISTS test1.v3;
+DROP VIEW IF EXISTS test1.v2;
+DROP VIEW IF EXISTS test1.v1;
+DROP VIEW IF EXISTS test1.v0;
+CREATE DATABASE test3;
+USE test1;
+CREATE TABLE t1 (f1 BIGINT, f2 CHAR(50)) ENGINE = innodb ;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0, NULL);
+INSERT INTO t1 VALUES (5, 'five');
+INSERT INTO t1 VALUES (1, 'one');
+INSERT INTO t1 VALUES (2, 'two');
+USE test2;
+CREATE TABLE t1 (f1 DECIMAL(64,30), f2 VARCHAR(50)) ENGINE = innodb;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0.000000000000000000000000000000, NULL);
+INSERT INTO t1 VALUES (5.000000000000000000000000000000, 'five');
+INSERT INTO t1 VALUES (+1.000000000000000000000000000000, 'one');
+INSERT INTO t1 VALUES (3.000000000000000, 'three');
+USE test3;
+CREATE TABLE t1 (f1 DOUBLE, f2 VARBINARY(50)) ENGINE = innodb;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (+0.0E-35, NULL);
+INSERT INTO t1 VALUES (+0.5E+1, 'five');
+INSERT INTO t1 VALUES (20.0E-1, 'two');
+INSERT INTO t1 VALUES (0.0300E2, 'three');
+USE test;
+CREATE OR REPLACE VIEW test1.v0 AS SELECT * FROM test2.t1;
+CREATE OR REPLACE VIEW test1.v1 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v0 tab2;
+CREATE OR REPLACE VIEW test1.v2 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v1 tab2;
+CREATE OR REPLACE VIEW test1.v3 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v2 tab2;
+CREATE OR REPLACE VIEW test1.v4 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v3 tab2;
+CREATE OR REPLACE VIEW test1.v5 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v4 tab2;
+CREATE OR REPLACE VIEW test1.v6 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v5 tab2;
+CREATE OR REPLACE VIEW test1.v7 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v6 tab2;
+CREATE OR REPLACE VIEW test1.v8 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v7 tab2;
+CREATE OR REPLACE VIEW test1.v9 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v8 tab2;
+CREATE OR REPLACE VIEW test1.v10 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v9 tab2;
+CREATE OR REPLACE VIEW test1.v11 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v10 tab2;
+CREATE OR REPLACE VIEW test1.v12 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v11 tab2;
+CREATE OR REPLACE VIEW test1.v13 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v12 tab2;
+CREATE OR REPLACE VIEW test1.v14 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v13 tab2;
+CREATE OR REPLACE VIEW test1.v15 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v14 tab2;
+CREATE OR REPLACE VIEW test1.v16 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v15 tab2;
+CREATE OR REPLACE VIEW test1.v17 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v16 tab2;
+CREATE OR REPLACE VIEW test1.v18 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v17 tab2;
+CREATE OR REPLACE VIEW test1.v19 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v18 tab2;
+CREATE OR REPLACE VIEW test1.v20 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v19 tab2;
+CREATE OR REPLACE VIEW test1.v21 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v20 tab2;
+CREATE OR REPLACE VIEW test1.v22 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v21 tab2;
+CREATE OR REPLACE VIEW test1.v23 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v22 tab2;
+CREATE OR REPLACE VIEW test1.v24 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v23 tab2;
+CREATE OR REPLACE VIEW test1.v25 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v24 tab2;
+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`))))
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+f1 f2
+5 five
+
+The output of following EXPLAIN is deactivated, because the result
+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`))))
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v30;
+f1 f2
+5 five
+
+The output of following EXPLAIN is deactivated, because the result
+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;
+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;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
+SHOW CREATE VIEW test1.v29;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
+SHOW CREATE VIEW test1.v29;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+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;
+DROP VIEW IF EXISTS test1.v27;
+DROP VIEW IF EXISTS test1.v26;
+DROP VIEW IF EXISTS test1.v25;
+DROP VIEW IF EXISTS test1.v24;
+DROP VIEW IF EXISTS test1.v23;
+DROP VIEW IF EXISTS test1.v22;
+DROP VIEW IF EXISTS test1.v21;
+DROP VIEW IF EXISTS test1.v20;
+DROP VIEW IF EXISTS test1.v19;
+DROP VIEW IF EXISTS test1.v18;
+DROP VIEW IF EXISTS test1.v17;
+DROP VIEW IF EXISTS test1.v16;
+DROP VIEW IF EXISTS test1.v15;
+DROP VIEW IF EXISTS test1.v14;
+DROP VIEW IF EXISTS test1.v13;
+DROP VIEW IF EXISTS test1.v12;
+DROP VIEW IF EXISTS test1.v11;
+DROP VIEW IF EXISTS test1.v10;
+DROP VIEW IF EXISTS test1.v9;
+DROP VIEW IF EXISTS test1.v8;
+DROP VIEW IF EXISTS test1.v7;
+DROP VIEW IF EXISTS test1.v6;
+DROP VIEW IF EXISTS test1.v5;
+DROP VIEW IF EXISTS test1.v4;
+DROP VIEW IF EXISTS test1.v3;
+DROP VIEW IF EXISTS test1.v2;
+DROP VIEW IF EXISTS test1.v1;
+DROP VIEW IF EXISTS test1.v0;
+DROP DATABASE test3;
+DROP TABLE test1.t1;
+DROP TABLE test2.t1;
+Use test;
+
+Testcase 3.3.2.1
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create View test.v1 AS SELECT f59,f60 FROM tb2 where f59 = 1995 ;
+INSERT INTO test.v1 (f59,f60) values (879,700) ;
+affected rows: 1
+SELECT f59,f60 FROM test.v1 where f59 = 879 and f60 = 700 ;
+f59 f60
+DELETE FROM tb2 where f59 = 879 and f60 = 700 ;
+Drop view test.v1 ;
+
+Testcase 3.3.2.2
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ;
+affected rows: 1
+SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ;
+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
+2005 101 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.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 = 2005 and f60 = 0101 ;
+f59 f60
+2005 101
+DELETE FROM tb2 where f59 = 2005 and f60 = 0101 ;
+Drop view test.v1 ;
+
+Testcase 3.3.2.3
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (780,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105;
+affected rows: 1
+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;
+f59 f60
+8 105
+Drop view test.v1 ;
+
+Testcase 3.3.2.4
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (781,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ;
+affected rows: 4
+info: Rows matched: 4 Changed: 4 Warnings: 0
+SELECT * FROM tb2 where f59 = 891 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
+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
+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;
+f59 f60
+891 105
+891 105
+891 105
+891 105
+Drop view test.v1 ;
+
+Testcase 3.3.2.5
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (789,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 789 ;
+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;
+f59 f60
+Drop view test.v1 ;
+
+Testcase 3.3.2.6
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (711,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 711 ;
+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;
+f59 f60
+Drop view test.v1 ;
+
+Testcase 3.3.2.1 - 3.3.2.6 alternative implementation
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4),
+f4 CHAR, PRIMARY KEY(f1));
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+INSERT INTO v1 SET f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NULL NULL NULL
+DELETE FROM t1;
+INSERT INTO v1 SET f2 = 'ABC';
+INSERT INTO v1 SET f2 = 'ABC';
+ERROR 23000: Duplicate entry '0' for key 1
+SELECT * from t1;
+f1 f2 f3 f4
+0 ABC NULL NULL
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 NNN -0.0012 X
+DELETE FROM t1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f2, f3 FROM t1;
+INSERT INTO v1 SET f2 = 'ABC';
+INSERT INTO v1 SET f2 = 'ABC';
+ERROR 23000: Duplicate entry '0' for key 1
+SELECT * from t1;
+f1 f2 f3 f4
+0 ABC NULL NULL
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f3, 'HELLO' AS my_greeting FROM t1;
+INSERT INTO v1 SET f1 = 1;
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO v1 SET f1 = 1, my_greeting = 'HELLO';
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE f1 = 1;
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE f2 = 'ABC';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE my_greeting = 'HELLO';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 NNN -0.0012 X
+DELETE FROM t1;
+DROP TABLE t1;
+SET sql_mode = 'traditional';
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4) NOT NULL,
+f4 CHAR, PRIMARY KEY(f1));
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f4 FROM t1;
+INSERT INTO v1 SET f1 = 1;
+ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f4 = 'Y' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 Y
+DELETE FROM t1;
+SET sql_mode = '';
+
+Testcases 3.3.2.7 - 3.3.2.9,
+3.3.2.10 - 3.3.2.11 omitted because of missing
+features EXCEPT and INTERSECT
+--------------------------------------------------------------------------------
+INSERT INTO tb2 (f59,f60,f61) VALUES (77,185,126) ;
+INSERT INTO tb2 (f59,f60,f61) VALUES (59,58,54) ;
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+SET @variant1 = 'UNION ';
+SET @variant2 = 'UNION ALL ';
+SET @variant3 = 'UNION DISTINCT ';
+SET @variant4 = 'EXCEPT ';
+SET @variant5 = 'INTERSECT ';
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION DISTINCT SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION ALL SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+
+Testcases 3.3.2.12 - 3.3.2.20
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS test.v1 ;
+Drop view if exists v2 ;
+CREATE TABLE t1 (f59 int, f60 int, f61 int) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+CREATE TABLE t2 (f59 int, f60 int, f61 int) ;
+INSERT INTO t2 VALUES (19,41,32) ;
+INSERT INTO t2 VALUES (59,54,71) ;
+INSERT INTO t2 VALUES (21,91,99) ;
+CREATE VIEW v2 AS SELECT f59, f60, f61 FROM t2 LIMIT 5;
+SET @variant1= 'CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1';
+SET @variant2= 'CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1';
+SET @variant3= 'CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1';
+SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61';
+SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0';
+SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1';
+SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2';
+
+Some server responses suffer from
+Bug#10773 Incorrect message is displayed while updating a view
+--------------------------------------------------------------------------------
+SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)';
+SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1';
+CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1);
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM v2;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+Drop TABLE t1, t2 ;
+Drop VIEW v2 ;
+
+Testcases 3.3.A1
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE TABLE t1 (f1 BIGINT, f2 DATE DEFAULT NULL, f4 CHAR(5),
+report char(10)) ENGINE = innodb;
+CREATE VIEW v1 AS SELECT * FROM t1;
+INSERT INTO t1 SET f1 = -1, f4 = 'ABC', report = 't1 0';
+INSERT INTO v1 SET f1 = -1, f4 = 'ABC', report = 'v1 0';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(5) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(5) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5);
+INSERT INTO t1 SET f1 = 0, f4x = 'ABC', report = 't1 1';
+INSERT INTO v1 SET f1 = 0, f4 = 'ABC', report = 'v1 1';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v1 SET f1 = 0, f4x = 'ABC', report = 'v1 1a';
+ERROR 42S22: Unknown column 'f4x' in 'field list'
+INSERT INTO v1 SET f1 = 0, report = 'v1 1b';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4x char(5) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM t1;
+f1 f2 f4x report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5);
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10);
+INSERT INTO t1 SET f1 = 2, f4 = '<-- 10 -->', report = 't1 2';
+INSERT INTO v1 SET f1 = 2, f4 = '<-- 10 -->', report = 'v1 2';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(10) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(10) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 --> t1 2
+2 NULL <-- 10 --> v1 2
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 --> t1 2
+2 NULL <-- 10 --> v1 2
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(8);
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 4
+Warning 1265 Data truncated for column 'f4' at row 5
+INSERT INTO t1 SET f1 = 3, f4 = '<-- 10 -->', report = 't1 3';
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 1
+INSERT INTO v1 SET f1 = 3, f4 = '<-- 10 -->', report = 'v1 3';
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 1
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(8) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(8) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+ALTER TABLE t1 CHANGE COLUMN f4 f4 VARCHAR(20);
+INSERT INTO t1 SET f1 = 4, f4 = '<------ 20 -------->', report = 't1 4';
+INSERT INTO v1 SET f1 = 4, f4 = '<------ 20 -------->', report = 'v1 4';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30);
+INSERT INTO t1 SET f1 = '<------------- 30 ----------->',
+f4 = '<------ 20 -------->', report = 't1 5';
+INSERT INTO v1 SET f1 = '<------------- 30 ----------->',
+f4 = '<------ 20 -------->', report = 'v1 5';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ALTER TABLE t1 DROP COLUMN f2;
+INSERT INTO t1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 't1 6';
+INSERT INTO v1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 'v1 6';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM t1;
+f1 f4 report
+-1 ABC t1 0
+-1 ABC v1 0
+0 ABC t1 1
+2 <-- 10 - t1 2
+2 <-- 10 - v1 2
+3 <-- 10 - t1 3
+3 <-- 10 - v1 3
+4 <------ 20 --------> t1 4
+4 <------ 20 --------> v1 4
+<------------- 30 -----------> <------ 20 --------> t1 5
+<------------- 30 -----------> <------ 20 --------> v1 5
+ABC <------ 20 --------> t1 6
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL;
+INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04',
+f4 = '<------ 20 -------->', report = 't1 7';
+INSERT INTO v1 SET f1 = 'ABC', f2 = '1500-12-04',
+f4 = '<------ 20 -------->', report = 'v1 7';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 date YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2
+-1 ABC t1 0 NULL
+-1 ABC v1 0 NULL
+0 ABC t1 1 NULL
+2 <-- 10 - t1 2 NULL
+2 <-- 10 - v1 2 NULL
+3 <-- 10 - t1 3 NULL
+3 <-- 10 - v1 3 NULL
+4 <------ 20 --------> t1 4 NULL
+4 <------ 20 --------> v1 4 NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL
+ABC <------ 20 --------> t1 6 NULL
+ABC <------ 20 --------> t1 7 1500-12-04
+ABC <------ 20 --------> v1 7 1500-12-04
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC 1500-12-04 <------ 20 --------> t1 7
+ABC 1500-12-04 <------ 20 --------> v1 7
+ALTER TABLE t1 DROP COLUMN f2;
+ALTER TABLE t1 ADD COLUMN f2 FLOAT;
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 't1 8';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 'v1 8';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 float YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 float YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2
+-1 ABC t1 0 NULL
+-1 ABC v1 0 NULL
+0 ABC t1 1 NULL
+2 <-- 10 - t1 2 NULL
+2 <-- 10 - v1 2 NULL
+3 <-- 10 - t1 3 NULL
+3 <-- 10 - v1 3 NULL
+4 <------ 20 --------> t1 4 NULL
+4 <------ 20 --------> v1 4 NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL
+ABC <------ 20 --------> t1 6 NULL
+ABC <------ 20 --------> t1 7 NULL
+ABC <------ 20 --------> v1 7 NULL
+ABC <------ 20 --------> t1 8 -0.00033
+ABC <------ 20 --------> v1 8 -0.00033
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC NULL <------ 20 --------> t1 7
+ABC NULL <------ 20 --------> v1 7
+ABC -0.00033 <------ 20 --------> t1 8
+ABC -0.00033 <------ 20 --------> v1 8
+ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2);
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+f3 = -2.2, f4 = '<------ 20 -------->', report = 't1 9';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f3 = -2.2, f4 = '<------ 20 -------->', report = 'v1 9';
+ERROR 42S22: Unknown column 'f3' in 'field list'
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 'v1 9a';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 float YES NULL
+f3 decimal(7,2) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 float YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2 f3
+-1 ABC t1 0 NULL NULL
+-1 ABC v1 0 NULL NULL
+0 ABC t1 1 NULL NULL
+2 <-- 10 - t1 2 NULL NULL
+2 <-- 10 - v1 2 NULL NULL
+3 <-- 10 - t1 3 NULL NULL
+3 <-- 10 - v1 3 NULL NULL
+4 <------ 20 --------> t1 4 NULL NULL
+4 <------ 20 --------> v1 4 NULL NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL NULL
+ABC <------ 20 --------> t1 6 NULL NULL
+ABC <------ 20 --------> t1 7 NULL NULL
+ABC <------ 20 --------> v1 7 NULL NULL
+ABC <------ 20 --------> t1 8 -0.00033 NULL
+ABC <------ 20 --------> v1 8 -0.00033 NULL
+ABC <------ 20 --------> t1 9 -0.00033 -2.20
+ABC <------ 20 --------> v1 9a -0.00033 NULL
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC NULL <------ 20 --------> t1 7
+ABC NULL <------ 20 --------> v1 7
+ABC -0.00033 <------ 20 --------> t1 8
+ABC -0.00033 <------ 20 --------> v1 8
+ABC -0.00033 <------ 20 --------> t1 9
+ABC -0.00033 <------ 20 --------> v1 9a
+DROP TABLE t1;
+DROP VIEW v1;
+CREATE TABLE t1 (f1 CHAR(10), f2 BIGINT) ENGINE = innodb;
+INSERT INTO t1 SET f1 = 'ABC', f2 = 3;
+CREATE VIEW v1 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+f2 bigint(20) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM t1;
+f1 f2
+ABC 3
+SELECT * FROM v1;
+f1 my_sqrt
+ABC 1.7320508075689
+ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30);
+INSERT INTO t1 SET f1 = 'ABC', f2 = 'DEF';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+f2 varchar(30) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM t1;
+f1 f2
+ABC 3
+ABC DEF
+SELECT * FROM v1;
+f1 my_sqrt
+ABC 1.7320508075689
+ABC 0
+SELECT SQRT('DEF');
+SQRT('DEF')
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'DEF'
+CREATE VIEW v2 AS SELECT SQRT('DEF');
+SELECT * FROM v2;
+SQRT('DEF')
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'DEF'
+CREATE OR REPLACE VIEW v2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE v2;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM v2;
+f1 my_sqrt
+ABC 1.7320508075689
+ABC 0
+CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v1;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v2;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t1;
+DROP TABLE t2;
+DROP VIEW v1;
+DROP VIEW v2;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1_1;
+DROP VIEW IF EXISTS v1_2;
+DROP VIEW IF EXISTS v1_firstview;
+DROP VIEW IF EXISTS v1_secondview;
+DROP VIEW IF EXISTS v2;
+DROP DATABASE IF EXISTS test2;
+DROP DATABASE IF EXISTS test3;
+DROP DATABASE IF EXISTS test1;
diff --git a/mysql-test/suite/funcs_1/r/memory__datadict.result b/mysql-test/suite/funcs_1/r/memory__datadict.result
new file mode 100644
index 00000000000..3b3cf65f9f8
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory__datadict.result
@@ -0,0 +1,12812 @@
+
+.
+. It is intended that the 3 <engine>__datadict.test files are named this way to be
+. sure they are - in a *full run* of the suite - the first tests done for each
+. storage engine. Using two _ and the order of processing in mysql-test-run.pl
+. ensures this in an easy way.
+.
+. If needed a restart could be implemented later between the storage engines if
+. values changes in the result depending from the position where the
+. *__datadict.test are started. This can be a result of showing e.g. maximum
+. values of the number of rows of tables.
+.
+. This .result file has been checked OK with Linux 5.0.48,
+. build tree ChangeSet@1.2477.6.3, 2007-07-30
+. except that the not fixed Bug#30020 causes a difference.
+.
+--------------------------------------------------------------------------------
+
+FIXME: There are subtests that are switched off due to known bugs:
+------------------------------------------------------------------
+SELECT 1 AS "have_bug_11589";
+have_bug_11589
+1
+
+There are some statements where the ps-protocol is switched off.
+This may come from the bug listed below, ir from other problems.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+DROP DATABASE IF EXISTS test1;
+CREATE DATABASE test1;
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb1 ;
+create table tb1 (
+f1 char,
+f2 char binary,
+f3 char ascii,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal not null DEFAULT 9.9,
+f34 decimal unsigned not null DEFAULT 9.9,
+f35 decimal zerofill not null DEFAULT 9.9,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = memory;
+Warnings:
+Note 1265 Data truncated for column 'f33' at row 1
+Note 1265 Data truncated for column 'f34' at row 1
+Note 1265 Data truncated for column 'f35' at row 1
+Note 1265 Data truncated for column 'f36' at row 1
+Note 1265 Data truncated for column 'f37' at row 1
+Note 1265 Data truncated for column 'f38' at row 1
+Note 1265 Data truncated for column 'f39' at row 1
+Note 1265 Data truncated for column 'f40' at row 1
+Note 1265 Data truncated for column 'f41' at row 1
+Note 1265 Data truncated for column 'f42' at row 1
+Note 1265 Data truncated for column 'f43' at row 1
+Note 1265 Data truncated for column 'f44' at row 1
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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 = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb4 ;
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f236 char(95) unicode,
+f241 char(255) unicode,
+f237 char(130) binary,
+f238 varchar(25000) binary,
+f239 varbinary(0),
+f240 varchar(1200) unicode
+) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ;
+USE test1;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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 = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ;
+USE test;
+USE test;
+DROP TABLE IF EXISTS t1, t2, t4, t10, t11;
+CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory;
+CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory;
+CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory;
+CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory;
+CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11;
+drop TABLE if exists t3;
+CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = memory;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3;
+drop database if exists test4;
+CREATE database test4;
+use test4;
+CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6;
+use test;
+drop TABLE if exists t7, t8;
+CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = memory;
+CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = memory;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+drop TABLE if exists t9;
+CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = memory;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9;
+use information_schema;
+
+root@localhost information_schema
+
+Testcase 3.2.1.1:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE VIEW v1 AS SELECT * FROM information_schema.tables;
+CREATE OR REPLACE VIEW db_datadict.vu1 as
+SELECT grantee AS u
+FROM information_schema.user_privileges;
+CREATE OR REPLACE VIEW db_datadict.vu as
+SELECT DISTINCT u,
+SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 )
+AS server,
+SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3,
+LENGTH( SUBSTRING( u,
+LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 )
+AS Server_Clean
+FROM db_datadict.vu1;
+SELECT * FROM db_datadict.vu order by u;
+u server Server_Clean
+'root'@'127.0.0.1' 127.0.0.1' 127.0.0.1
+'root'@'<SERVER_NAME>' <SERVER_NAME>' <SERVER_NAME>
+'root'@'localhost' localhost' localhost
+CREATE PROCEDURE db_datadict.sp_1()
+BEGIN
+SELECT * FROM db_datadict.v1;
+END//
+USE information_schema;
+SHOW tables;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+select * from schemata ORDER BY 2 DESC, 1 ASC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test4 latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+SELECT * FROM tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME CHARACTER_SETS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATIONS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMNS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMN_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME KEY_COLUMN_USAGE
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME ROUTINES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMATA
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMA_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME STATISTICS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_CONSTRAINTS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TRIGGERS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME USER_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME VIEWS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+SELECT * FROM tables
+WHERE NOT( table_schema = 'information_schema')
+AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME v1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME columns_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Column privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME db
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 2
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME func
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT User defined functions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME host
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Host privileges; Merged with database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME proc
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 1
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Stored Procedures
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME procs_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Procedure privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME tables_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Table privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 5
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT 6
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_leap_second
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 22
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Leap seconds information for time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_name
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 6
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone names
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 393
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transitions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition_type
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 31
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transition types
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME user
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 3
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Users and global privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t1
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t10
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t11
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t2
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t3
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t4
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t7
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t8
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t9
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb1
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb3
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb4
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test1
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test4
+TABLE_NAME t6
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from schemata s inner join tables t
+ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+catalog_name schema_name default_character_set_name table_type engine
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+select * from columns;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL db_datadict v1 TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references
+NULL db_datadict v1 TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select,insert,update,references
+NULL db_datadict v1 TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select,insert,update,references
+NULL db_datadict v1 TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select,insert,update,references
+NULL db_datadict vu u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references
+NULL db_datadict vu server 2 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references
+NULL db_datadict vu Server_Clean 3 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references
+NULL db_datadict vu1 u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references
+NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
+NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
+NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
+NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
+NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
+NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
+NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
+NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
+NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references
+NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
+NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
+NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references
+NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
+NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
+NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
+NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
+NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
+NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references
+NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references
+NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select * from character_sets;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+latin1 latin1_swedish_ci cp1252 West European 1
+latin2 latin2_general_ci ISO 8859-2 Central European 1
+swe7 swe7_swedish_ci 7bit Swedish 1
+ascii ascii_general_ci US ASCII 1
+ujis ujis_japanese_ci EUC-JP Japanese 3
+sjis sjis_japanese_ci Shift-JIS Japanese 2
+hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
+tis620 tis620_thai_ci TIS620 Thai 1
+euckr euckr_korean_ci EUC-KR Korean 2
+koi8u koi8u_general_ci KOI8-U Ukrainian 1
+gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
+greek greek_general_ci ISO 8859-7 Greek 1
+cp1250 cp1250_general_ci Windows Central European 1
+gbk gbk_chinese_ci GBK Simplified Chinese 2
+latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
+armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
+utf8 utf8_general_ci UTF-8 Unicode 3
+ucs2 ucs2_general_ci UCS-2 Unicode 2
+cp866 cp866_general_ci DOS Russian 1
+keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
+macce macce_general_ci Mac Central European 1
+macroman macroman_general_ci Mac West European 1
+cp852 cp852_general_ci DOS Central European 1
+latin7 latin7_general_ci ISO 8859-13 Baltic 1
+cp1251 cp1251_general_ci Windows Cyrillic 1
+cp1256 cp1256_general_ci Windows Arabic 1
+cp1257 cp1257_general_ci Windows Baltic 1
+binary binary Binary pseudo charset 1
+geostd8 geostd8_general_ci GEOSTD8 Georgian 1
+cp932 cp932_japanese_ci SJIS for Windows Japanese 2
+eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
+select sum(id) from collations;
+sum(id)
+10741
+select collation_name, character_set_name into @x,@y
+from collation_character_set_applicability limit 1;
+select @x, @y;
+@x @y
+big5_chinese_ci big5
+select * from routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+select count(*) from routines;
+count(*)
+1
+select * from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 3 type A 1 NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 0 NULL NULL BTREE
+NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE
+NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE
+NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE
+select * from views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER
+NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER
+select * from user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select * from schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+select * from table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from column_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+NULL mysql PRIMARY mysql help_keyword PRIMARY KEY
+NULL mysql name mysql help_keyword UNIQUE
+NULL mysql PRIMARY mysql help_relation PRIMARY KEY
+NULL mysql PRIMARY mysql help_topic PRIMARY KEY
+NULL mysql name mysql help_topic UNIQUE
+NULL mysql PRIMARY mysql host PRIMARY KEY
+NULL mysql PRIMARY mysql proc PRIMARY KEY
+NULL mysql PRIMARY mysql procs_priv PRIMARY KEY
+NULL mysql PRIMARY mysql tables_priv PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY
+NULL mysql PRIMARY mysql user PRIMARY KEY
+select * from key_column_usage;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL
+select count(*) as max_recs from key_column_usage;
+max_recs
+40
+select max(cardinality) from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+max(cardinality)
+393
+select concat("View '",
+table_name, "' is associated with the database '", table_schema, "'.")
+AS "Who is Who for the Views"
+ from views;
+Who is Who for the Views
+View 'v1' is associated with the database 'db_datadict'.
+View 'vu' is associated with the database 'db_datadict'.
+View 'vu1' is associated with the database 'db_datadict'.
+select concat("Table or view '", table_name,
+"' is associated with the database '", table_schema, "'.") as "Who is Who"
+ from tables;
+Who is Who
+Table or view 'CHARACTER_SETS' is associated with the database 'information_schema'.
+Table or view 'COLLATIONS' is associated with the database 'information_schema'.
+Table or view 'COLLATION_CHARACTER_SET_APPLICABILITY' is associated with the database 'information_schema'.
+Table or view 'COLUMNS' is associated with the database 'information_schema'.
+Table or view 'COLUMN_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'KEY_COLUMN_USAGE' is associated with the database 'information_schema'.
+Table or view 'ROUTINES' is associated with the database 'information_schema'.
+Table or view 'SCHEMATA' is associated with the database 'information_schema'.
+Table or view 'SCHEMA_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'STATISTICS' is associated with the database 'information_schema'.
+Table or view 'TABLES' is associated with the database 'information_schema'.
+Table or view 'TABLE_CONSTRAINTS' is associated with the database 'information_schema'.
+Table or view 'TABLE_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'TRIGGERS' is associated with the database 'information_schema'.
+Table or view 'USER_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'VIEWS' is associated with the database 'information_schema'.
+Table or view 'v1' is associated with the database 'db_datadict'.
+Table or view 'vu' is associated with the database 'db_datadict'.
+Table or view 'vu1' is associated with the database 'db_datadict'.
+Table or view 'columns_priv' is associated with the database 'mysql'.
+Table or view 'db' is associated with the database 'mysql'.
+Table or view 'func' is associated with the database 'mysql'.
+Table or view 'help_category' is associated with the database 'mysql'.
+Table or view 'help_keyword' is associated with the database 'mysql'.
+Table or view 'help_relation' is associated with the database 'mysql'.
+Table or view 'help_topic' is associated with the database 'mysql'.
+Table or view 'host' is associated with the database 'mysql'.
+Table or view 'proc' is associated with the database 'mysql'.
+Table or view 'procs_priv' is associated with the database 'mysql'.
+Table or view 'tables_priv' is associated with the database 'mysql'.
+Table or view 'time_zone' is associated with the database 'mysql'.
+Table or view 'time_zone_leap_second' is associated with the database 'mysql'.
+Table or view 'time_zone_name' is associated with the database 'mysql'.
+Table or view 'time_zone_transition' is associated with the database 'mysql'.
+Table or view 'time_zone_transition_type' is associated with the database 'mysql'.
+Table or view 'user' is associated with the database 'mysql'.
+Table or view 't1' is associated with the database 'test'.
+Table or view 't10' is associated with the database 'test'.
+Table or view 't11' is associated with the database 'test'.
+Table or view 't2' is associated with the database 'test'.
+Table or view 't3' is associated with the database 'test'.
+Table or view 't4' is associated with the database 'test'.
+Table or view 't7' is associated with the database 'test'.
+Table or view 't8' is associated with the database 'test'.
+Table or view 't9' is associated with the database 'test'.
+Table or view 'tb1' is associated with the database 'test'.
+Table or view 'tb2' is associated with the database 'test'.
+Table or view 'tb3' is associated with the database 'test'.
+Table or view 'tb4' is associated with the database 'test'.
+Table or view 'tb2' is associated with the database 'test1'.
+Table or view 't6' is associated with the database 'test4'.
+select grantee as "user's having select privilege",
+substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+from user_privileges where privilege_type = 'select'
+ order by grantee;
+user's having select privilege substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+'root'@'127.0.0.1' '127.0.0.1'
+'root'@'<SERVER_NAME>' '<SERVER_NAME>'
+'root'@'localhost' 'localhost'
+select all table_schema from schema_privileges limit 0,5;
+table_schema
+test
+test
+test
+test
+test
+select distinct(privilege_type) from table_privileges;
+privilege_type
+select * from column_privileges
+group by table_schema having table_schema = 'db_datadict';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from table_constraints limit 0,5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select count(*) as max_recs from key_column_usage limit 0,5;
+max_recs
+40
+select information_schema.tables.table_name as "table name",
+count(distinct(column_name)) as "no of columns in the table"
+ from information_schema.tables left outer join information_schema.columns on
+information_schema.tables.table_name = information_schema.columns.table_name
+group by information_schema.tables.table_name;
+table name no of columns in the table
+CHARACTER_SETS 4
+COLLATIONS 6
+COLLATION_CHARACTER_SET_APPLICABILITY 2
+COLUMNS 19
+columns_priv 7
+COLUMN_PRIVILEGES 7
+db 20
+func 4
+help_category 4
+help_keyword 2
+help_relation 2
+help_topic 6
+host 19
+KEY_COLUMN_USAGE 12
+proc 16
+procs_priv 8
+ROUTINES 20
+SCHEMATA 5
+SCHEMA_PRIVILEGES 5
+STATISTICS 15
+t1 6
+t10 6
+t11 6
+t2 6
+t3 3
+t4 6
+t6 6
+t7 4
+t8 4
+t9 3
+TABLES 21
+tables_priv 8
+TABLE_CONSTRAINTS 6
+TABLE_PRIVILEGES 6
+tb1 50
+tb2 51
+tb3 52
+tb4 57
+time_zone 2
+time_zone_leap_second 2
+time_zone_name 2
+time_zone_transition 3
+time_zone_transition_type 5
+TRIGGERS 19
+user 37
+USER_PRIVILEGES 4
+v1 21
+VIEWS 8
+vu 3
+vu1 1
+
+root: simple select to check all - and never forget some - tables
+-----------------------------------------------------------------
+SELECT * FROM schemata LIMIT 1;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+SELECT * FROM tables LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL utf8_general_ci NULL #CO#
+SELECT * FROM columns LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+SELECT * FROM character_sets LIMIT 1;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+SELECT * FROM collations LIMIT 1;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+SELECT * FROM collation_character_set_applicability LIMIT 1;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+SELECT * FROM routines LIMIT 1;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER <Created> <Last_Altered> root@localhost
+SELECT * FROM statistics LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+SELECT * FROM views LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+SELECT * FROM user_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'localhost' NULL SELECT YES
+SELECT * FROM schema_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+SELECT * FROM table_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM column_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM table_constraints LIMIT 1;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+SELECT * FROM key_column_usage LIMIT 1;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+SELECT * FROM triggers LIMIT 1;
+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
+SELECT * FROM parameters LIMIT 1;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+SELECT * FROM referential_constraints LIMIT 1;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+use db_datadict;
+select * from schemata;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+select * from tables;
+ERROR 42S02: Table 'db_datadict.tables' doesn't exist
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from schemata s inner join tables t
+ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+select * from columns limit 0, 5;
+ERROR 42S02: Table 'db_datadict.columns' doesn't exist
+select * from character_sets limit 0, 5;
+ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist
+select * from collations limit 0, 5;
+ERROR 42S02: Table 'db_datadict.collations' doesn't exist
+select * from collation_character_set_applicability limit 0, 5;
+ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist
+select * from routines limit 0, 5;
+ERROR 42S02: Table 'db_datadict.routines' doesn't exist
+select * from statistics limit 0, 5;
+ERROR 42S02: Table 'db_datadict.statistics' doesn't exist
+select * from views limit 0, 5;
+ERROR 42S02: Table 'db_datadict.views' doesn't exist
+select * from user_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist
+select * from schema_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist
+select * from table_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist
+select * from column_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist
+select * from table_constraints limit 0, 5;
+ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist
+select * from key_column_usage limit 0, 5;
+ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist
+
+will fail due to missing database name
+--------------------------------------
+
+known error 1146:
+-----------------
+SELECT * FROM schemata ;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT * FROM tables ;
+ERROR 42S02: Table 'db_datadict.tables' doesn't exist
+SELECT * FROM columns ;
+ERROR 42S02: Table 'db_datadict.columns' doesn't exist
+SELECT * FROM character_sets ;
+ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist
+SELECT * FROM collations ;
+ERROR 42S02: Table 'db_datadict.collations' doesn't exist
+SELECT * FROM collation_character_set_applicability ;
+ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist
+SELECT * FROM routines ;
+ERROR 42S02: Table 'db_datadict.routines' doesn't exist
+SELECT * FROM statistics ;
+ERROR 42S02: Table 'db_datadict.statistics' doesn't exist
+SELECT * FROM views ;
+ERROR 42S02: Table 'db_datadict.views' doesn't exist
+SELECT * FROM user_privileges ;
+ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist
+SELECT * FROM schema_privileges ;
+ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist
+SELECT * FROM table_privileges ;
+ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist
+SELECT * FROM column_privileges ;
+ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist
+SELECT * FROM table_constraints ;
+ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist
+SELECT * FROM key_column_usage ;
+ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist
+SELECT * FROM triggers ;
+ERROR 42S02: Table 'db_datadict.triggers' doesn't exist
+select * from information_schema.schemata ORDER BY 2 DESC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test4 latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME CHARACTER_SETS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATIONS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMNS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMN_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME KEY_COLUMN_USAGE
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME ROUTINES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMATA
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMA_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME STATISTICS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_CONSTRAINTS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TRIGGERS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME USER_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME VIEWS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema')
+AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME v1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME columns_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Column privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME db
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 2
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME func
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT User defined functions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME host
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Host privileges; Merged with database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME proc
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 1
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Stored Procedures
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME procs_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Procedure privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME tables_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Table privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 5
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT 6
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_leap_second
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 22
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Leap seconds information for time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_name
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 6
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone names
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 393
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transitions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition_type
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 31
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transition types
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME user
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 3
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Users and global privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t1
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t10
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t11
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t2
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t3
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t4
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t7
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t8
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t9
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb1
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb3
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb4
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test1
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test4
+TABLE_NAME t6
+TABLE_TYPE BASE TABLE
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from information_schema.schemata s inner join information_schema.tables t
+ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+catalog_name schema_name default_character_set_name table_type engine
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MEMORY
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MEMORY
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MEMORY
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MEMORY
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MEMORY
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MEMORY
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+select * from information_schema.columns limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+select * from information_schema.character_sets limit 0, 5;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+select * from information_schema.collations limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+big5_bin big5 84 Yes 1
+dec8_swedish_ci dec8 3 Yes 0
+dec8_bin dec8 69 0
+cp850_general_ci cp850 4 Yes 0
+select * from information_schema.collation_character_set_applicability limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+select * from information_schema.routines limit 0, 5;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+select * from information_schema.statistics limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+select * from information_schema.views limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER
+NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER
+select * from information_schema.user_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL UPDATE YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL CREATE YES
+select * from information_schema.schema_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+select * from information_schema.table_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.column_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.table_constraints limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select * from information_schema.key_column_usage limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+select count(*) as max_recs from information_schema.key_column_usage limit 0, 5;
+max_recs
+40
+
+root: check with db name
+------------------------
+SELECT COUNT(*) FROM information_schema. schemata ;
+COUNT(*)
+6
+SELECT COUNT(*) FROM information_schema. tables ;
+COUNT(*)
+51
+SELECT COUNT(*) FROM information_schema. columns ;
+COUNT(*)
+642
+SELECT COUNT(*) FROM information_schema. character_sets ;
+COUNT(*)
+36
+SELECT COUNT(*) FROM information_schema. collations ;
+COUNT(*)
+126
+SELECT COUNT(*) FROM information_schema. collation_character_set_applicability ;
+COUNT(*)
+126
+SELECT COUNT(*) FROM information_schema. routines ;
+COUNT(*)
+1
+SELECT COUNT(*) FROM information_schema. statistics ;
+COUNT(*)
+43
+SELECT COUNT(*) FROM information_schema. views ;
+COUNT(*)
+3
+SELECT COUNT(*) FROM information_schema. user_privileges ;
+COUNT(*)
+75
+SELECT COUNT(*) FROM information_schema. schema_privileges ;
+COUNT(*)
+28
+SELECT COUNT(*) FROM information_schema. table_privileges ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. column_privileges ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. table_constraints ;
+COUNT(*)
+20
+SELECT COUNT(*) FROM information_schema. key_column_usage ;
+COUNT(*)
+40
+SELECT COUNT(*) FROM information_schema. triggers ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. parameters ;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+SELECT COUNT(*) FROM information_schema. referential_constraints ;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+USE db_datadict;
+DROP VIEW v1, vu1, vu;
+DROP PROCEDURE db_datadict.sp_1;
+USE information_schema;
+
+Testcase 3.2.1.2:
+--------------------------------------------------------------------------------
+select catalog_name, schema_name, default_character_set_name
+from schemata where schema_name like '%s%';
+catalog_name schema_name default_character_set_name
+NULL information_schema utf8
+NULL mysql latin1
+NULL test latin1
+NULL test1 latin1
+NULL test4 latin1
+select count(*) as tot_tabs from tables;
+tot_tabs
+48
+select count(*) as the_cols from columns;
+the_cols
+617
+select max(maxlen) as the_max from character_sets;
+the_max
+3
+select * from collations order by id asc limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+latin2_czech_cs latin2 2 Yes 4
+dec8_swedish_ci dec8 3 Yes 0
+cp850_general_ci cp850 4 Yes 0
+latin1_german1_ci latin1 5 Yes 1
+select * from collation_character_set_applicability
+order by character_set_name desc, collation_name limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME
+utf8_bin utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_esperanto_ci utf8
+utf8_estonian_ci utf8
+select routine_definition from routines;
+routine_definition
+select * from statistics where table_name not like 'help_%'
+group by index_name asc limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
+from views;
+view_info
+select concat(table_schema, ', ', table_name) "Table_info"
+ from tables ORDER BY 1;
+Table_info
+information_schema, CHARACTER_SETS
+information_schema, COLLATIONS
+information_schema, COLLATION_CHARACTER_SET_APPLICABILITY
+information_schema, COLUMNS
+information_schema, COLUMN_PRIVILEGES
+information_schema, KEY_COLUMN_USAGE
+information_schema, ROUTINES
+information_schema, SCHEMATA
+information_schema, SCHEMA_PRIVILEGES
+information_schema, STATISTICS
+information_schema, TABLES
+information_schema, TABLE_CONSTRAINTS
+information_schema, TABLE_PRIVILEGES
+information_schema, TRIGGERS
+information_schema, USER_PRIVILEGES
+information_schema, VIEWS
+mysql, columns_priv
+mysql, db
+mysql, func
+mysql, help_category
+mysql, help_keyword
+mysql, help_relation
+mysql, help_topic
+mysql, host
+mysql, proc
+mysql, procs_priv
+mysql, tables_priv
+mysql, time_zone
+mysql, time_zone_leap_second
+mysql, time_zone_name
+mysql, time_zone_transition
+mysql, time_zone_transition_type
+mysql, user
+test, t1
+test, t10
+test, t11
+test, t2
+test, t3
+test, t4
+test, t7
+test, t8
+test, t9
+test, tb1
+test, tb2
+test, tb3
+test, tb4
+test1, tb2
+test4, t6
+select distinct grantee from user_privileges order by grantee, privilege_type;
+grantee
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+select * from schema_privileges where table_catalog is null limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+select * from table_privileges where grantee like '%r%' limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from column_privileges where table_catalog is not null limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select HIGH_PRIORITY * from table_constraints
+group by constraint_name desc limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select sum(ordinal_position) from key_column_usage;
+sum(ordinal_position)
+77
+select * from schemata limit 0,5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+select * from schemata limit 0,5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+select distinct grantee from user_privileges;
+grantee
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+select all grantee from user_privileges order by grantee, privilege_type;
+grantee
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+select id , character_set_name from collations order by id asc limit 10;
+id character_set_name
+1 big5
+2 latin2
+3 dec8
+4 cp850
+5 latin1
+6 hp8
+7 koi8r
+8 latin1
+9 latin2
+10 swe7
+select table_catalog from columns
+union all
+select table_catalog from tables limit 0,5;
+table_catalog
+NULL
+NULL
+NULL
+NULL
+NULL
+select table_catalog from columns
+union
+select table_catalog from tables limit 0,5;
+table_catalog
+NULL
+select all schema_name from information_schema.schemata;
+schema_name
+information_schema
+db_datadict
+mysql
+test
+test1
+test4
+SELECT *
+INTO OUTFILE '../tmp/out.memory.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+USE test;
+SELECT *
+INTO OUTFILE '../tmp/out.memory.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CREATE USER user_3212@localhost;
+GRANT ALL ON db_datadict.* TO user_3212@localhost;
+GRANT FILE ON *.* TO user_3212@localhost;
+connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+user_3212@localhost db_datadict
+SELECT *
+INTO OUTFILE '../tmp/out.memory.user.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT *
+FROM schemata LIMIT 0, 5;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT *
+INTO OUTFILE '../tmp/out.memory.user.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+SELECT *
+FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+USE information_schema;
+SELECT *
+INTO OUTFILE '../tmp/out.memory.user_2.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+SELECT *
+FROM schemata LIMIT 0, 5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+SELECT *
+INTO OUTFILE '../tmp/out.memory.user_2.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+SELECT *
+FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+USE information_schema;
+
+root@localhost information_schema
+use db_datadict;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from information_schema.columns
+union
+select table_catalog, table_schema, table_name,
+concat( "*** type = ", table_type )
+from information_schema.tables
+order by 3, 4 desc, 1, 2 limit 30;
+1 2 3 4
+NULL information_schema CHARACTER_SETS MAXLEN
+NULL information_schema CHARACTER_SETS DESCRIPTION
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME
+NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW
+NULL information_schema COLLATIONS SORTLEN
+NULL information_schema COLLATIONS IS_DEFAULT
+NULL information_schema COLLATIONS IS_COMPILED
+NULL information_schema COLLATIONS ID
+NULL information_schema COLLATIONS COLLATION_NAME
+NULL information_schema COLLATIONS CHARACTER_SET_NAME
+NULL information_schema COLLATIONS *** type = SYSTEM VIEW
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW
+NULL information_schema COLUMNS TABLE_SCHEMA
+NULL information_schema COLUMNS TABLE_NAME
+NULL information_schema COLUMNS TABLE_CATALOG
+NULL information_schema COLUMNS PRIVILEGES
+NULL information_schema COLUMNS ORDINAL_POSITION
+NULL information_schema COLUMNS NUMERIC_SCALE
+NULL information_schema COLUMNS NUMERIC_PRECISION
+NULL information_schema COLUMNS IS_NULLABLE
+NULL information_schema COLUMNS EXTRA
+NULL information_schema COLUMNS DATA_TYPE
+NULL information_schema COLUMNS COLUMN_TYPE
+NULL information_schema COLUMNS COLUMN_NAME
+NULL information_schema COLUMNS COLUMN_KEY
+NULL information_schema COLUMNS COLUMN_DEFAULT
+NULL information_schema COLUMNS COLUMN_COMMENT
+use information_schema;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from columns
+union
+select table_catalog, table_schema, table_name,
+concat( "*** type = ", table_type )
+from tables
+order by 3, 4 desc, 1, 2 limit 30;
+1 2 3 4
+NULL information_schema CHARACTER_SETS MAXLEN
+NULL information_schema CHARACTER_SETS DESCRIPTION
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME
+NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW
+NULL information_schema COLLATIONS SORTLEN
+NULL information_schema COLLATIONS IS_DEFAULT
+NULL information_schema COLLATIONS IS_COMPILED
+NULL information_schema COLLATIONS ID
+NULL information_schema COLLATIONS COLLATION_NAME
+NULL information_schema COLLATIONS CHARACTER_SET_NAME
+NULL information_schema COLLATIONS *** type = SYSTEM VIEW
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW
+NULL information_schema COLUMNS TABLE_SCHEMA
+NULL information_schema COLUMNS TABLE_NAME
+NULL information_schema COLUMNS TABLE_CATALOG
+NULL information_schema COLUMNS PRIVILEGES
+NULL information_schema COLUMNS ORDINAL_POSITION
+NULL information_schema COLUMNS NUMERIC_SCALE
+NULL information_schema COLUMNS NUMERIC_PRECISION
+NULL information_schema COLUMNS IS_NULLABLE
+NULL information_schema COLUMNS EXTRA
+NULL information_schema COLUMNS DATA_TYPE
+NULL information_schema COLUMNS COLUMN_TYPE
+NULL information_schema COLUMNS COLUMN_NAME
+NULL information_schema COLUMNS COLUMN_KEY
+NULL information_schema COLUMNS COLUMN_DEFAULT
+NULL information_schema COLUMNS COLUMN_COMMENT
+DROP USER user_3212@localhost;
+
+Testcase 3.2.1.3:
+--------------------------------------------------------------------------------
+insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path)
+values ('null', 'db1', 'latin1', 'null');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into tables (table_schema, table_name)values('db_datadict', 't1');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into columns (table_name, column_name)values('t3', 'f2');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into character_sets (character_set_name, default_collate_name, description, maxlen)
+values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen)
+values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into collation_character_set_applicability (collation_name, character_set_name)
+values (' big5_chinese_ci', 'big6');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into routines(routine_name, routine_type ) values ('p2', 'procedure');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into statistics(table_schema, table_name, index_name)
+values ('mysql', 'db', 'primary');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into views(table_schema, table_name) values ('db2', 'v2');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into table_privileges (able_schema, table_name, privilege_type)
+values('db2', 'v2', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into column_privileges (table_name, column_name, privilege_type)
+values ('t3', 'f3', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+values ('primary', 'mysql', 'user');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into key_column_usage (constraint_schema, constraint_name, table_name)
+values ('mysql', 'primary', 'db');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_3;
+create procedure db_datadict.sp_4_1_3()
+begin
+insert into information_schema.schema_privileges (table_schema,privilege_type)
+values('db2','insert');
+end//
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+WHERE table_schema LIKE 'db%';
+table_schema privilege_type
+call db_datadict.sp_4_1_3();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+WHERE table_schema LIKE 'db%';
+table_schema privilege_type
+drop procedure db_datadict.sp_4_1_3;
+CREATE USER user_4_1_3@localhost;
+connect(localhost,user_4_1_3,,test,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_3@localhost test
+use information_schema;
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+values ('primary', 'mysql', 'user');
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+
+Testcase 3.2.1.4:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root@localhost information_schema
+update schemata set schema_name = 'db5' where default_character_set_name = 'latin1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update tables set table_schema = 'db_datadict1' where table_name = 't1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update character_sets set character_set_name = 'cp1252' where maxlen = 1;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update collations set collation_name = 'cp1253_bin'
+ where character_set_name = 'cp1251';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update collation_character_set_applicability set collation_name = 'big6_chinese_ci'
+ where character_set_name = 'big6';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update routines set routine_name = p2 where routine_body = 'sql';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update statistics set table_schema = 'mysql1' where table_name = 'db';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update views set table_schema = 'db3' where table_name = 'v1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update schema_privileges set table_schema = 'db2' where privilege_type = 'select';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update table_privileges set table_name = 'v3' where privilege_type = 'select';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update column_privileges set table_name = 't4' where column_name = 'f3';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update table_constraints set constraint_schema = 'primary'
+ where table_schema = 'proc';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update key_column_usage set table_name = 'db1' where constraint_name = 'primary';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_4;
+create procedure db_datadict.sp_4_1_4()
+begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end//
+select * from information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+call db_datadict.sp_4_1_4();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+select * from information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+drop procedure db_datadict.sp_4_1_4;
+use information_schema;
+
+user_4_1_3@localhost information_schema
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+
+Testcase 3.2.1.5:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: DELETE FROM any table in IS
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DELETE FROM schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from schemata where schema_name = 'mysql';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from tables where table_name = 'abc';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from columns;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from character_sets;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from collations;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from collation_character_set_applicability;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from routines;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from statistics;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from views;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from user_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from schema_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from table_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from column_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from table_constraints;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from key_column_usage;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_5;
+create procedure db_datadict.sp_4_1_5()
+begin
+delete from information_schema.column_privileges;
+end//
+call db_datadict.sp_4_1_5();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure db_datadict.sp_4_1_5;
+use information_schema;
+
+user_4_1_3@localhost information_schema
+delete from tables where table_name = 'abc';
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_3@localhost;
+
+Testcase 3.2.1.6:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: create a table with a name of an IS table directly in IS
+--------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE schemata ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE tables ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE columns ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE collations ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE routines ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE statistics ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE views ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE triggers ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create table t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use db_datadict;
+
+root: create a table with a name of an IS table from other db
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE information_schema. schemata ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. tables ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. columns ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collations ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. routines ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. statistics ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. views ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. triggers ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+CREATE USER user_4_1_6@localhost;
+grant all on *.* to user_4_1_6@localhost;
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR user_4_1_6@localhost;
+Grants for user_4_1_6@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'user_4_1_6'@'localhost'
+connect(localhost,user_4_1_6,,information_schema,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_6@localhost information_schema
+use information_schema;
+
+user: create a table with a name of an IS table directly in IS
+--------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE schemata ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE tables ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE columns ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE collations ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE routines ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE statistics ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE views ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE triggers ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+create table t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use test;
+
+user: create a table with a name of an IS table from other db
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE information_schema. schemata ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. tables ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. columns ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collations ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. routines ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. statistics ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. views ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. triggers ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+
+root@localhost db_datadict
+DROP USER user_4_1_6@localhost;
+
+Testcase 3.2.1.7:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: create a view with a name of an IS table directly in IS
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW schemata AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW tables AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW columns AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW character_sets AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW collations AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW collation_character_set_applicability AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW routines AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW statistics AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW views AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW user_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW schema_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW table_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW column_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW table_constraints AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW key_column_usage AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW triggers AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW v1 AS SELECT * FROM information_schema.schemata;
+ERROR 42S02: Unknown table 'v1' in information_schema
+USE db_datadict;
+
+root: create a view with a name of an IS table from other db
+------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW information_schema. schemata AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. tables AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. columns AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. character_sets AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collations AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. routines AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. statistics AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. views AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. user_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. schema_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. column_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_constraints AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. key_column_usage AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. triggers AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW v1 AS SELECT * FROM information_schema.columns;
+SELECT * FROM v1 LIMIT 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+CREATE USER user_4_1_7@localhost;
+GRANT ALL ON db_datadict.* TO user_4_1_7@localhost;
+GRANT ALL ON information_schema.* TO user_4_1_7@localhost;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_7,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_7@localhost information_schema
+
+user: create a view with a name of an IS table directly in IS
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW schemata AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW tables AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW columns AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW character_sets AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW collations AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW collation_character_set_applicability AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW routines AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW statistics AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW views AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW user_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW schema_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW table_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW column_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW table_constraints AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW key_column_usage AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW triggers AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+create view v1 as select * from table_privileges;
+ERROR 42S02: Unknown table 'v1' in information_schema
+use db_datadict;
+
+user: create a view with a name of an IS table from other db
+------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW information_schema. schemata AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. tables AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. columns AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. character_sets AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collations AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. routines AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. statistics AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. views AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. user_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. schema_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. column_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_constraints AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. key_column_usage AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. triggers AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+
+root@localhost db_datadict
+DROP USER user_4_1_7@localhost;
+DROP VIEW db_datadict.v1;
+
+Testcase 3.2.1.8:
+--------------------------------------------------------------------------------
+use information_schema;
+create index i1 on schemata(schema_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i2 on tables(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i3 on columns(table_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i4 on character_sets(character_set_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i6 on collation_character_set_applicability(collation_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i7 on routines(routine_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i8 on statistics(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i9 on views(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i10 on user_privileges(privilege_type);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i11 on schema_privileges(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i12 on table_privileges(able_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i13 on column_privileges(table_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i14 on table_constraints(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i15 on key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i16 on triggers(trigger_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use db_datadict;
+create index i15 on information_schema.key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+CREATE USER user_4_1_8@localhost;
+grant select, index on *.* to user_4_1_8@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_8,,test,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_8@localhost test
+use information_schema;
+create index i1 on schemata(schema_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i2 on tables(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i3 on columns(table_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i4 on character_sets(character_set_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i6 on collation_character_set_applicability(collation_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i7 on routines(routine_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i8 on statistics(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i9 on views(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i10 on user_privileges(privilege_type);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i11 on schema_privileges(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i12 on table_privileges(able_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i13 on column_privileges(table_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i14 on table_constraints(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i15 on key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i16 on triggers(trigger_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+use db_datadict;
+create index i15 on information_schema.key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_8@localhost;
+
+Testcase 3.2.1.9:
+--------------------------------------------------------------------------------
+
+root: alter a table from other db
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+
+root: alter a table from directly
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE tables ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE columns ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE collations ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE routines ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE views ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table schemata add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table tables drop primary key;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table columns add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table character_sets disable keys;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table collations enable keys;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table collation_character_set_applicability add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table routines discard tablespace;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table statistics import tablespace;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table views drop column table_name;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table user_privileges drop index privilege_type;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table schema_privileges drop column is_grantable;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table table_privileges order by constraint_type;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table column_privileges rename to aaxyz;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table table_constraints order by schema_name;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table key_column_usage rename to information_schema.aabxyz;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table triggers rename to information_schema.sql_mode;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE USER user_4_1_9@localhost;
+grant select, alter, create, insert on *.* to user_4_1_9@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_9,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_9@localhost db_datadict
+use db_datadict;
+
+user: alter a table from other db
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+use information_schema;
+
+user: alter a table from directly
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE tables ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE columns ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE collations ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE routines ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE views ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_9@localhost;
+
+Testcase 3.2.1.10:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: drop a table from IS
+--------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use db_datadict;
+
+root: drop a table from other db
+--------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE information_schema. schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+CREATE USER user_4_1_10@localhost;
+GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_10,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_10@localhost information_schema
+
+user: drop a table from IS
+--------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE schemata ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE tables ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE columns ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE character_sets ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE collations ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE routines ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE statistics ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE views ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE user_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE schema_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE table_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE column_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE table_constraints ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE key_column_usage ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE triggers ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+use db_datadict;
+
+user: drop a table from other db
+--------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE information_schema. schemata ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. tables ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. columns ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. character_sets ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collations ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. routines ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. statistics ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. views ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. triggers ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_10@localhost;
+CREATE USER user_4_1_11@localhost;
+GRANT SUPER ON *.* TO user_4_1_11@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_11,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_11@localhost information_schema
+drop table routines;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+alter table collations enable keys;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name );
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+create view v1 as select * from schemata;
+ERROR 42S02: Unknown table 'v1' in information_schema
+delete from columns;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+insert into collations ( collation_name, character_set_name, id, is_default,
+is_compiled, sortlen)
+values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_11@localhost;
+
+Testcase 3.2.1.11:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'u_6_401011'@'localhost';
+GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost';
+FLUSH PRIVILEGES;
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+
+root: move table to other DB
+----------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+connect(localhost,u_6_401011,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+
+u_6_401011@localhost information_schema
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+
+user: move table to other DB
+----------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP TABLE IF EXISTS db_datadict.schemata;
+DROP USER 'u_6_401011'@'localhost';
+
+Testcase 3.2.1.12:
+--------------------------------------------------------------------------------
+
+root: delete from IS tables
+---------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DELETE FROM information_schema. schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.tables SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.columns SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.statistics SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.views SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.table_privileges SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.column_privileges SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.table_constraints SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.key_column_usage SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.schemata SET catalog_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.character_sets SET description = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.collations SET character_set_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.collation_character_set_applicability
+SET character_set_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.routines SET routine_type = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.user_privileges SET grantee = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.schema_privileges SET grantee = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.triggers SET sql_mode = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE USER 'u_6_401012'@'localhost';
+connect(localhost,u_6_401012,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+insert into information_schema.schemata (catalog_name, schema_name,
+default_character_set_name, sql_path)
+values (null, information_schema1, utf16, null);
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.schemata rename db_datadict1.schemata;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.tables drop column checksum;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.statistics modify packed int;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.routines modify created int not null;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.key_column_usage drop column ordinal_position;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.table_privileges
+change privilege_type rights_approved varchar(32);
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+delete from information_schema.collations;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+drop table if exists db_datadict1.schemata;
+DROP USER 'u_6_401012'@'localhost';
+
+Testcase 3.2.1.13:
+--------------------------------------------------------------------------------
+use information_schema;
+
+first check status >before< creating the objects ...
+----------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401013(f1 char(10), f2 char(25), f3 int)
+engine = memory;
+create view res_v_401013 as select * from res_t_401013;
+CREATE USER u_6_401013@localhost;
+create procedure sp_6_401013() select 'db_datadict';
+create function fn_6_401013() returns int return 0;
+create index i_6_401013 on res_t_401013(f3);
+use information_schema;
+
+now check whether all new objects exists in IS ...
+--------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MEMORY
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL db_datadict res_t_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references
+NULL db_datadict res_v_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL db_datadict res_v_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401013 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401013 FUNCTION DEFINER
+sp_6_401013 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+res_t_401013 db_datadict i_6_401013 HASH
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+'u_6_401013'@'localhost' NULL USAGE NO
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop index i_6_401013 on res_t_401013;
+drop table db_datadict.res_t_401013;
+drop view db_datadict.res_v_401013;
+DROP USER u_6_401013@localhost;
+drop procedure sp_6_401013;
+drop function fn_6_401013;
+drop database db_datadict;
+use information_schema;
+
+and now check whether all objects are removed from IS ...
+---------------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+
+Testcase 3.2.1.14:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401014(f1 char(10), f2 varchar(25), f3 int);
+create view res_v_401014 as select * from res_t_401014;
+create procedure sp_6_401014() select 'db_datadict';
+create function fn_6_401014() returns int return 0;
+
+show existing objects >before< changing them ...
+------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_t_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict res_v_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_v_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401014 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401014 FUNCTION DEFINER
+sp_6_401014 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+alter table res_t_401014 change f1 ff1 int;
+alter table res_t_401014 engine = MyISAM;
+alter table res_t_401014 change f3 f3_new bigint;
+alter view res_v_401014 as select ff1 from res_t_401014;
+alter procedure sp_6_401014 sql security invoker;
+alter function fn_6_401014 comment 'updated comments';
+alter database db_datadict character set utf8;
+
+now check whether the changes are visible in IS ...
+---------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict utf8 utf8_general_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_t_401014 f3_new 3 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL db_datadict res_v_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401014 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401014 FUNCTION DEFINER
+sp_6_401014 PROCEDURE INVOKER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop table db_datadict.res_t_401014;
+drop view db_datadict.res_v_401014;
+drop procedure sp_6_401014;
+drop function fn_6_401014;
+drop database db_datadict;
+
+Testcase 3.2.1.15:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401015(f1 char(10), f2 text(25), f3 int);
+create view res_v_401015 as select * from res_t_401015;
+CREATE USER u_6_401015@localhost;
+create procedure sp_6_401015() select 'test';
+create function fn_6_401015() returns int return 0;
+create index i_6_401015 on res_t_401015(f3);
+
+show existing objects >before< dropping them ...
+------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL db_datadict res_t_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references
+NULL db_datadict res_v_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL db_datadict res_v_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401015 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401015 FUNCTION DEFINER
+sp_6_401015 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+res_t_401015 db_datadict i_6_401015 BTREE
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+'u_6_401015'@'localhost' NULL USAGE NO
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop index i_6_401015 on res_t_401015;
+drop table db_datadict.res_t_401015;
+drop view db_datadict.res_v_401015;
+DROP USER u_6_401015@localhost;
+drop procedure sp_6_401015;
+drop function fn_6_401015;
+
+now check they are really gone ...
+----------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+
+Testcase 3.2.1.16:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_hidden;
+USE db_hidden;
+CREATE TABLE tb_hidden ( c1 TEXT );
+USE db_datadict;
+CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int);
+CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int);
+CREATE USER 'u_6_401016'@'localhost';
+GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401016,,test,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SELECT table_schema, table_name, engine
+FROM TABLES;
+table_schema table_name engine
+information_schema CHARACTER_SETS MEMORY
+information_schema COLLATIONS MEMORY
+information_schema COLLATION_CHARACTER_SET_APPLICABILITY MEMORY
+information_schema COLUMNS MyISAM
+information_schema COLUMN_PRIVILEGES MEMORY
+information_schema KEY_COLUMN_USAGE MEMORY
+information_schema ROUTINES MyISAM
+information_schema SCHEMATA MEMORY
+information_schema SCHEMA_PRIVILEGES MEMORY
+information_schema STATISTICS MEMORY
+information_schema TABLES MEMORY
+information_schema TABLE_CONSTRAINTS MEMORY
+information_schema TABLE_PRIVILEGES MEMORY
+information_schema TRIGGERS MyISAM
+information_schema USER_PRIVILEGES MEMORY
+information_schema VIEWS MyISAM
+db_datadict res_t_401016 MyISAM
+test t1 MEMORY
+test t10 MEMORY
+test t11 MEMORY
+test t2 MEMORY
+test t3 MEMORY
+test t4 MEMORY
+test t7 MEMORY
+test t8 MEMORY
+test t9 MEMORY
+test tb1 MEMORY
+test tb2 MEMORY
+test tb3 MEMORY
+test tb4 MEMORY
+SHOW TABLES;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+
+root@localhost db_datadict
+grant usage on information_schema.* to 'u_6_401016'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401016,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SHOW TABLES;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'u_6_401016'@'localhost';
+drop table res_t_401016;
+drop table res_t_401016_1;
+DROP DATABASE db_hidden;
+
+Testcase 3.2.1.17:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401017'@'localhost';
+grant select on information_schema.* to u_6_401017@localhost;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+select * from collation_character_set_applicability;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+cp850_bin cp850
+hp8_english_ci hp8
+hp8_bin hp8
+koi8r_general_ci koi8r
+koi8r_bin koi8r
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+latin2_czech_cs latin2
+latin2_general_ci latin2
+latin2_hungarian_ci latin2
+latin2_croatian_ci latin2
+latin2_bin latin2
+swe7_swedish_ci swe7
+swe7_bin swe7
+ascii_general_ci ascii
+ascii_bin ascii
+ujis_japanese_ci ujis
+ujis_bin ujis
+sjis_japanese_ci sjis
+sjis_bin sjis
+hebrew_general_ci hebrew
+hebrew_bin hebrew
+tis620_thai_ci tis620
+tis620_bin tis620
+euckr_korean_ci euckr
+euckr_bin euckr
+koi8u_general_ci koi8u
+koi8u_bin koi8u
+gb2312_chinese_ci gb2312
+gb2312_bin gb2312
+greek_general_ci greek
+greek_bin greek
+cp1250_general_ci cp1250
+cp1250_czech_cs cp1250
+cp1250_croatian_ci cp1250
+cp1250_bin cp1250
+gbk_chinese_ci gbk
+gbk_bin gbk
+latin5_turkish_ci latin5
+latin5_bin latin5
+armscii8_general_ci armscii8
+armscii8_bin armscii8
+utf8_general_ci utf8
+utf8_bin utf8
+utf8_unicode_ci utf8
+utf8_icelandic_ci utf8
+utf8_latvian_ci utf8
+utf8_romanian_ci utf8
+utf8_slovenian_ci utf8
+utf8_polish_ci utf8
+utf8_estonian_ci utf8
+utf8_spanish_ci utf8
+utf8_swedish_ci utf8
+utf8_turkish_ci utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_lithuanian_ci utf8
+utf8_slovak_ci utf8
+utf8_spanish2_ci utf8
+utf8_roman_ci utf8
+utf8_persian_ci utf8
+utf8_esperanto_ci utf8
+utf8_hungarian_ci utf8
+ucs2_general_ci ucs2
+ucs2_bin ucs2
+ucs2_unicode_ci ucs2
+ucs2_icelandic_ci ucs2
+ucs2_latvian_ci ucs2
+ucs2_romanian_ci ucs2
+ucs2_slovenian_ci ucs2
+ucs2_polish_ci ucs2
+ucs2_estonian_ci ucs2
+ucs2_spanish_ci ucs2
+ucs2_swedish_ci ucs2
+ucs2_turkish_ci ucs2
+ucs2_czech_ci ucs2
+ucs2_danish_ci ucs2
+ucs2_lithuanian_ci ucs2
+ucs2_slovak_ci ucs2
+ucs2_spanish2_ci ucs2
+ucs2_roman_ci ucs2
+ucs2_persian_ci ucs2
+ucs2_esperanto_ci ucs2
+ucs2_hungarian_ci ucs2
+cp866_general_ci cp866
+cp866_bin cp866
+keybcs2_general_ci keybcs2
+keybcs2_bin keybcs2
+macce_general_ci macce
+macce_bin macce
+macroman_general_ci macroman
+macroman_bin macroman
+cp852_general_ci cp852
+cp852_bin cp852
+latin7_estonian_cs latin7
+latin7_general_ci latin7
+latin7_general_cs latin7
+latin7_bin latin7
+cp1251_bulgarian_ci cp1251
+cp1251_ukrainian_ci cp1251
+cp1251_bin cp1251
+cp1251_general_ci cp1251
+cp1251_general_cs cp1251
+cp1256_general_ci cp1256
+cp1256_bin cp1256
+cp1257_lithuanian_ci cp1257
+cp1257_bin cp1257
+cp1257_general_ci cp1257
+binary binary
+geostd8_general_ci geostd8
+geostd8_bin geostd8
+cp932_japanese_ci cp932
+cp932_bin cp932
+eucjpms_japanese_ci eucjpms
+eucjpms_bin eucjpms
+select * from schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+select table_name from tables;
+table_name
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+t1
+t10
+t11
+t2
+t3
+t4
+t7
+t8
+t9
+tb1
+tb2
+tb3
+tb4
+select table_name, column_name, column_type from columns;
+table_name column_name column_type
+CHARACTER_SETS CHARACTER_SET_NAME varchar(64)
+CHARACTER_SETS DEFAULT_COLLATE_NAME varchar(64)
+CHARACTER_SETS DESCRIPTION varchar(60)
+CHARACTER_SETS MAXLEN bigint(3)
+COLLATIONS COLLATION_NAME varchar(64)
+COLLATIONS CHARACTER_SET_NAME varchar(64)
+COLLATIONS ID bigint(11)
+COLLATIONS IS_DEFAULT varchar(3)
+COLLATIONS IS_COMPILED varchar(3)
+COLLATIONS SORTLEN bigint(3)
+COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar(64)
+COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar(64)
+COLUMNS TABLE_CATALOG varchar(4096)
+COLUMNS TABLE_SCHEMA varchar(64)
+COLUMNS TABLE_NAME varchar(64)
+COLUMNS COLUMN_NAME varchar(64)
+COLUMNS ORDINAL_POSITION bigint(21)
+COLUMNS COLUMN_DEFAULT longtext
+COLUMNS IS_NULLABLE varchar(3)
+COLUMNS DATA_TYPE varchar(64)
+COLUMNS CHARACTER_MAXIMUM_LENGTH bigint(21)
+COLUMNS CHARACTER_OCTET_LENGTH bigint(21)
+COLUMNS NUMERIC_PRECISION bigint(21)
+COLUMNS NUMERIC_SCALE bigint(21)
+COLUMNS CHARACTER_SET_NAME varchar(64)
+COLUMNS COLLATION_NAME varchar(64)
+COLUMNS COLUMN_TYPE longtext
+COLUMNS COLUMN_KEY varchar(3)
+COLUMNS EXTRA varchar(20)
+COLUMNS PRIVILEGES varchar(80)
+COLUMNS COLUMN_COMMENT varchar(255)
+COLUMN_PRIVILEGES GRANTEE varchar(81)
+COLUMN_PRIVILEGES TABLE_CATALOG varchar(4096)
+COLUMN_PRIVILEGES TABLE_SCHEMA varchar(64)
+COLUMN_PRIVILEGES TABLE_NAME varchar(64)
+COLUMN_PRIVILEGES COLUMN_NAME varchar(64)
+COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+COLUMN_PRIVILEGES IS_GRANTABLE varchar(3)
+KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar(4096)
+KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar(64)
+KEY_COLUMN_USAGE CONSTRAINT_NAME varchar(64)
+KEY_COLUMN_USAGE TABLE_CATALOG varchar(4096)
+KEY_COLUMN_USAGE TABLE_SCHEMA varchar(64)
+KEY_COLUMN_USAGE TABLE_NAME varchar(64)
+KEY_COLUMN_USAGE COLUMN_NAME varchar(64)
+KEY_COLUMN_USAGE ORDINAL_POSITION bigint(10)
+KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint(10)
+KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar(64)
+KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar(64)
+KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar(64)
+ROUTINES SPECIFIC_NAME varchar(64)
+ROUTINES ROUTINE_CATALOG varchar(4096)
+ROUTINES ROUTINE_SCHEMA varchar(64)
+ROUTINES ROUTINE_NAME varchar(64)
+ROUTINES ROUTINE_TYPE varchar(9)
+ROUTINES DTD_IDENTIFIER varchar(64)
+ROUTINES ROUTINE_BODY varchar(8)
+ROUTINES ROUTINE_DEFINITION longtext
+ROUTINES EXTERNAL_NAME varchar(64)
+ROUTINES EXTERNAL_LANGUAGE varchar(64)
+ROUTINES PARAMETER_STYLE varchar(8)
+ROUTINES IS_DETERMINISTIC varchar(3)
+ROUTINES SQL_DATA_ACCESS varchar(64)
+ROUTINES SQL_PATH varchar(64)
+ROUTINES SECURITY_TYPE varchar(7)
+ROUTINES CREATED datetime
+ROUTINES LAST_ALTERED datetime
+ROUTINES SQL_MODE longtext
+ROUTINES ROUTINE_COMMENT varchar(64)
+ROUTINES DEFINER varchar(77)
+SCHEMATA CATALOG_NAME varchar(4096)
+SCHEMATA SCHEMA_NAME varchar(64)
+SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar(64)
+SCHEMATA DEFAULT_COLLATION_NAME varchar(64)
+SCHEMATA SQL_PATH varchar(4096)
+SCHEMA_PRIVILEGES GRANTEE varchar(81)
+SCHEMA_PRIVILEGES TABLE_CATALOG varchar(4096)
+SCHEMA_PRIVILEGES TABLE_SCHEMA varchar(64)
+SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+SCHEMA_PRIVILEGES IS_GRANTABLE varchar(3)
+STATISTICS TABLE_CATALOG varchar(4096)
+STATISTICS TABLE_SCHEMA varchar(64)
+STATISTICS TABLE_NAME varchar(64)
+STATISTICS NON_UNIQUE bigint(1)
+STATISTICS INDEX_SCHEMA varchar(64)
+STATISTICS INDEX_NAME varchar(64)
+STATISTICS SEQ_IN_INDEX bigint(2)
+STATISTICS COLUMN_NAME varchar(64)
+STATISTICS COLLATION varchar(1)
+STATISTICS CARDINALITY bigint(21)
+STATISTICS SUB_PART bigint(3)
+STATISTICS PACKED varchar(10)
+STATISTICS NULLABLE varchar(3)
+STATISTICS INDEX_TYPE varchar(16)
+STATISTICS COMMENT varchar(16)
+TABLES TABLE_CATALOG varchar(4096)
+TABLES TABLE_SCHEMA varchar(64)
+TABLES TABLE_NAME varchar(64)
+TABLES TABLE_TYPE varchar(64)
+TABLES ENGINE varchar(64)
+TABLES VERSION bigint(21)
+TABLES ROW_FORMAT varchar(10)
+TABLES TABLE_ROWS bigint(21)
+TABLES AVG_ROW_LENGTH bigint(21)
+TABLES DATA_LENGTH bigint(21)
+TABLES MAX_DATA_LENGTH bigint(21)
+TABLES INDEX_LENGTH bigint(21)
+TABLES DATA_FREE bigint(21)
+TABLES AUTO_INCREMENT bigint(21)
+TABLES CREATE_TIME datetime
+TABLES UPDATE_TIME datetime
+TABLES CHECK_TIME datetime
+TABLES TABLE_COLLATION varchar(64)
+TABLES CHECKSUM bigint(21)
+TABLES CREATE_OPTIONS varchar(255)
+TABLES TABLE_COMMENT varchar(80)
+TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar(4096)
+TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar(64)
+TABLE_CONSTRAINTS CONSTRAINT_NAME varchar(64)
+TABLE_CONSTRAINTS TABLE_SCHEMA varchar(64)
+TABLE_CONSTRAINTS TABLE_NAME varchar(64)
+TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar(64)
+TABLE_PRIVILEGES GRANTEE varchar(81)
+TABLE_PRIVILEGES TABLE_CATALOG varchar(4096)
+TABLE_PRIVILEGES TABLE_SCHEMA varchar(64)
+TABLE_PRIVILEGES TABLE_NAME varchar(64)
+TABLE_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+TABLE_PRIVILEGES IS_GRANTABLE varchar(3)
+TRIGGERS TRIGGER_CATALOG varchar(4096)
+TRIGGERS TRIGGER_SCHEMA varchar(64)
+TRIGGERS TRIGGER_NAME varchar(64)
+TRIGGERS EVENT_MANIPULATION varchar(6)
+TRIGGERS EVENT_OBJECT_CATALOG varchar(4096)
+TRIGGERS EVENT_OBJECT_SCHEMA varchar(64)
+TRIGGERS EVENT_OBJECT_TABLE varchar(64)
+TRIGGERS ACTION_ORDER bigint(4)
+TRIGGERS ACTION_CONDITION longtext
+TRIGGERS ACTION_STATEMENT longtext
+TRIGGERS ACTION_ORIENTATION varchar(9)
+TRIGGERS ACTION_TIMING varchar(6)
+TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar(64)
+TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar(64)
+TRIGGERS ACTION_REFERENCE_OLD_ROW varchar(3)
+TRIGGERS ACTION_REFERENCE_NEW_ROW varchar(3)
+TRIGGERS CREATED datetime
+TRIGGERS SQL_MODE longtext
+TRIGGERS DEFINER longtext
+USER_PRIVILEGES GRANTEE varchar(81)
+USER_PRIVILEGES TABLE_CATALOG varchar(4096)
+USER_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+USER_PRIVILEGES IS_GRANTABLE varchar(3)
+VIEWS TABLE_CATALOG varchar(4096)
+VIEWS TABLE_SCHEMA varchar(64)
+VIEWS TABLE_NAME varchar(64)
+VIEWS VIEW_DEFINITION longtext
+VIEWS CHECK_OPTION varchar(8)
+VIEWS IS_UPDATABLE varchar(3)
+VIEWS DEFINER varchar(77)
+VIEWS SECURITY_TYPE varchar(7)
+t1 f1 char(20)
+t1 f2 char(25)
+t1 f3 date
+t1 f4 int(11)
+t1 f5 char(25)
+t1 f6 int(11)
+t10 f1 char(20)
+t10 f2 char(25)
+t10 f3 date
+t10 f4 int(11)
+t10 f5 char(25)
+t10 f6 int(11)
+t11 f1 char(20)
+t11 f2 char(25)
+t11 f3 date
+t11 f4 int(11)
+t11 f5 char(25)
+t11 f6 int(11)
+t2 f1 char(20)
+t2 f2 char(25)
+t2 f3 date
+t2 f4 int(11)
+t2 f5 char(25)
+t2 f6 int(11)
+t3 f1 char(20)
+t3 f2 char(20)
+t3 f3 int(11)
+t4 f1 char(20)
+t4 f2 char(25)
+t4 f3 date
+t4 f4 int(11)
+t4 f5 char(25)
+t4 f6 int(11)
+t7 f1 char(20)
+t7 f2 char(25)
+t7 f3 date
+t7 f4 int(11)
+t8 f1 char(20)
+t8 f2 char(25)
+t8 f3 date
+t8 f4 int(11)
+t9 f1 int(11)
+t9 f2 char(25)
+t9 f3 int(11)
+tb1 f1 char(1)
+tb1 f2 char(1)
+tb1 f3 char(1)
+tb1 f12 binary(1)
+tb1 f13 tinyint(4)
+tb1 f14 tinyint(3) unsigned
+tb1 f15 tinyint(3) unsigned zerofill
+tb1 f16 tinyint(3) unsigned zerofill
+tb1 f17 smallint(6)
+tb1 f18 smallint(5) unsigned
+tb1 f19 smallint(5) unsigned zerofill
+tb1 f20 smallint(5) unsigned zerofill
+tb1 f21 mediumint(9)
+tb1 f22 mediumint(8) unsigned
+tb1 f23 mediumint(8) unsigned zerofill
+tb1 f24 mediumint(8) unsigned zerofill
+tb1 f25 int(11)
+tb1 f26 int(10) unsigned
+tb1 f27 int(10) unsigned zerofill
+tb1 f28 int(10) unsigned zerofill
+tb1 f29 bigint(20)
+tb1 f30 bigint(20) unsigned
+tb1 f31 bigint(20) unsigned zerofill
+tb1 f32 bigint(20) unsigned zerofill
+tb1 f33 decimal(10,0)
+tb1 f34 decimal(10,0) unsigned
+tb1 f35 decimal(10,0) unsigned zerofill
+tb1 f36 decimal(10,0) unsigned zerofill
+tb1 f37 decimal(10,0)
+tb1 f38 decimal(64,0)
+tb1 f39 decimal(10,0) unsigned
+tb1 f40 decimal(64,0) unsigned
+tb1 f41 decimal(10,0) unsigned zerofill
+tb1 f42 decimal(64,0) unsigned zerofill
+tb1 f43 decimal(10,0) unsigned zerofill
+tb1 f44 decimal(64,0) unsigned zerofill
+tb1 f45 decimal(10,0)
+tb1 f46 decimal(63,30)
+tb1 f47 decimal(10,0) unsigned
+tb1 f48 decimal(63,30) unsigned
+tb1 f49 decimal(10,0) unsigned zerofill
+tb1 f50 decimal(63,30) unsigned zerofill
+tb1 f51 decimal(10,0) unsigned zerofill
+tb1 f52 decimal(63,30) unsigned zerofill
+tb1 f53 decimal(10,0)
+tb1 f54 decimal(10,0) unsigned
+tb1 f55 decimal(10,0) unsigned zerofill
+tb1 f56 decimal(10,0) unsigned zerofill
+tb1 f57 decimal(10,0)
+tb1 f58 decimal(64,0)
+tb2 f59 decimal(10,0) unsigned
+tb2 f60 decimal(64,0) unsigned
+tb2 f61 decimal(10,0) unsigned zerofill
+tb2 f62 decimal(64,0) unsigned zerofill
+tb2 f63 decimal(10,0) unsigned zerofill
+tb2 f64 decimal(64,0) unsigned zerofill
+tb2 f65 decimal(10,0)
+tb2 f66 decimal(63,30)
+tb2 f67 decimal(10,0) unsigned
+tb2 f68 decimal(63,30) unsigned
+tb2 f69 decimal(10,0) unsigned zerofill
+tb2 f70 decimal(63,30) unsigned zerofill
+tb2 f71 decimal(10,0) unsigned zerofill
+tb2 f72 decimal(63,30) unsigned zerofill
+tb2 f73 double
+tb2 f74 double unsigned
+tb2 f75 double unsigned zerofill
+tb2 f76 double unsigned zerofill
+tb2 f77 double
+tb2 f78 double unsigned
+tb2 f79 double unsigned zerofill
+tb2 f80 double unsigned zerofill
+tb2 f81 float
+tb2 f82 float unsigned
+tb2 f83 float unsigned zerofill
+tb2 f84 float unsigned zerofill
+tb2 f85 float
+tb2 f86 float
+tb2 f87 float unsigned
+tb2 f88 float unsigned
+tb2 f89 float unsigned zerofill
+tb2 f90 float unsigned zerofill
+tb2 f91 float unsigned zerofill
+tb2 f92 float unsigned zerofill
+tb2 f93 float
+tb2 f94 double
+tb2 f95 float unsigned
+tb2 f96 double unsigned
+tb2 f97 float unsigned zerofill
+tb2 f98 double unsigned zerofill
+tb2 f99 float unsigned zerofill
+tb2 f100 double unsigned zerofill
+tb2 f101 date
+tb2 f102 time
+tb2 f103 datetime
+tb2 f104 timestamp
+tb2 f105 year(4)
+tb2 f106 year(4)
+tb2 f107 year(4)
+tb2 f108 enum('1enum','2enum')
+tb2 f109 set('1set','2set')
+tb3 f118 char(1)
+tb3 f119 char(1)
+tb3 f120 char(1)
+tb3 f121 char(50)
+tb3 f122 char(50)
+tb3 f129 binary(1)
+tb3 f130 tinyint(4)
+tb3 f131 tinyint(3) unsigned
+tb3 f132 tinyint(3) unsigned zerofill
+tb3 f133 tinyint(3) unsigned zerofill
+tb3 f134 smallint(6)
+tb3 f135 smallint(5) unsigned
+tb3 f136 smallint(5) unsigned zerofill
+tb3 f137 smallint(5) unsigned zerofill
+tb3 f138 mediumint(9)
+tb3 f139 mediumint(8) unsigned
+tb3 f140 mediumint(8) unsigned zerofill
+tb3 f141 mediumint(8) unsigned zerofill
+tb3 f142 int(11)
+tb3 f143 int(10) unsigned
+tb3 f144 int(10) unsigned zerofill
+tb3 f145 int(10) unsigned zerofill
+tb3 f146 bigint(20)
+tb3 f147 bigint(20) unsigned
+tb3 f148 bigint(20) unsigned zerofill
+tb3 f149 bigint(20) unsigned zerofill
+tb3 f150 decimal(10,0)
+tb3 f151 decimal(10,0) unsigned
+tb3 f152 decimal(10,0) unsigned zerofill
+tb3 f153 decimal(10,0) unsigned zerofill
+tb3 f154 decimal(10,0)
+tb3 f155 decimal(64,0)
+tb3 f156 decimal(10,0) unsigned
+tb3 f157 decimal(64,0) unsigned
+tb3 f158 decimal(10,0) unsigned zerofill
+tb3 f159 decimal(64,0) unsigned zerofill
+tb3 f160 decimal(10,0) unsigned zerofill
+tb3 f161 decimal(64,0) unsigned zerofill
+tb3 f162 decimal(10,0)
+tb3 f163 decimal(63,30)
+tb3 f164 decimal(10,0) unsigned
+tb3 f165 decimal(63,30) unsigned
+tb3 f166 decimal(10,0) unsigned zerofill
+tb3 f167 decimal(63,30) unsigned zerofill
+tb3 f168 decimal(10,0) unsigned zerofill
+tb3 f169 decimal(63,30) unsigned zerofill
+tb3 f170 decimal(10,0)
+tb3 f171 decimal(10,0) unsigned
+tb3 f172 decimal(10,0) unsigned zerofill
+tb3 f173 decimal(10,0) unsigned zerofill
+tb3 f174 decimal(10,0)
+tb3 f175 decimal(64,0)
+tb4 f176 decimal(10,0) unsigned
+tb4 f177 decimal(64,0) unsigned
+tb4 f178 decimal(10,0) unsigned zerofill
+tb4 f179 decimal(64,0) unsigned zerofill
+tb4 f180 decimal(10,0) unsigned zerofill
+tb4 f181 decimal(64,0) unsigned zerofill
+tb4 f182 decimal(10,0)
+tb4 f183 decimal(63,30)
+tb4 f184 decimal(10,0) unsigned
+tb4 f185 decimal(63,30) unsigned
+tb4 f186 decimal(10,0) unsigned zerofill
+tb4 f187 decimal(63,30) unsigned zerofill
+tb4 f188 decimal(10,0) unsigned zerofill
+tb4 f189 decimal(63,30) unsigned zerofill
+tb4 f190 double
+tb4 f191 double unsigned
+tb4 f192 double unsigned zerofill
+tb4 f193 double unsigned zerofill
+tb4 f194 double
+tb4 f195 double unsigned
+tb4 f196 double unsigned zerofill
+tb4 f197 double unsigned zerofill
+tb4 f198 float
+tb4 f199 float unsigned
+tb4 f200 float unsigned zerofill
+tb4 f201 float unsigned zerofill
+tb4 f202 float
+tb4 f203 float
+tb4 f204 float unsigned
+tb4 f205 float unsigned
+tb4 f206 float unsigned zerofill
+tb4 f207 float unsigned zerofill
+tb4 f208 float unsigned zerofill
+tb4 f209 float unsigned zerofill
+tb4 f210 float
+tb4 f211 double
+tb4 f212 float unsigned
+tb4 f213 double unsigned
+tb4 f214 float unsigned zerofill
+tb4 f215 double unsigned zerofill
+tb4 f216 float unsigned zerofill
+tb4 f217 double unsigned zerofill
+tb4 f218 date
+tb4 f219 time
+tb4 f220 datetime
+tb4 f221 timestamp
+tb4 f222 year(4)
+tb4 f223 year(4)
+tb4 f224 year(4)
+tb4 f225 enum('1enum','2enum')
+tb4 f226 set('1set','2set')
+tb4 f236 char(95)
+tb4 f241 char(255)
+tb4 f237 char(130)
+tb4 f238 varchar(25000)
+tb4 f239 varbinary(0)
+tb4 f240 varchar(1200)
+select character_set_name from character_sets;
+character_set_name
+big5
+dec8
+cp850
+hp8
+koi8r
+latin1
+latin2
+swe7
+ascii
+ujis
+sjis
+hebrew
+tis620
+euckr
+koi8u
+gb2312
+greek
+cp1250
+gbk
+latin5
+armscii8
+utf8
+ucs2
+cp866
+keybcs2
+macce
+macroman
+cp852
+latin7
+cp1251
+cp1256
+cp1257
+binary
+geostd8
+cp932
+eucjpms
+select collation_name from collations;
+collation_name
+big5_chinese_ci
+big5_bin
+dec8_swedish_ci
+dec8_bin
+cp850_general_ci
+cp850_bin
+hp8_english_ci
+hp8_bin
+koi8r_general_ci
+koi8r_bin
+latin1_german1_ci
+latin1_swedish_ci
+latin1_danish_ci
+latin1_german2_ci
+latin1_bin
+latin1_general_ci
+latin1_general_cs
+latin1_spanish_ci
+latin2_czech_cs
+latin2_general_ci
+latin2_hungarian_ci
+latin2_croatian_ci
+latin2_bin
+swe7_swedish_ci
+swe7_bin
+ascii_general_ci
+ascii_bin
+ujis_japanese_ci
+ujis_bin
+sjis_japanese_ci
+sjis_bin
+hebrew_general_ci
+hebrew_bin
+tis620_thai_ci
+tis620_bin
+euckr_korean_ci
+euckr_bin
+koi8u_general_ci
+koi8u_bin
+gb2312_chinese_ci
+gb2312_bin
+greek_general_ci
+greek_bin
+cp1250_general_ci
+cp1250_czech_cs
+cp1250_croatian_ci
+cp1250_bin
+gbk_chinese_ci
+gbk_bin
+latin5_turkish_ci
+latin5_bin
+armscii8_general_ci
+armscii8_bin
+utf8_general_ci
+utf8_bin
+utf8_unicode_ci
+utf8_icelandic_ci
+utf8_latvian_ci
+utf8_romanian_ci
+utf8_slovenian_ci
+utf8_polish_ci
+utf8_estonian_ci
+utf8_spanish_ci
+utf8_swedish_ci
+utf8_turkish_ci
+utf8_czech_ci
+utf8_danish_ci
+utf8_lithuanian_ci
+utf8_slovak_ci
+utf8_spanish2_ci
+utf8_roman_ci
+utf8_persian_ci
+utf8_esperanto_ci
+utf8_hungarian_ci
+ucs2_general_ci
+ucs2_bin
+ucs2_unicode_ci
+ucs2_icelandic_ci
+ucs2_latvian_ci
+ucs2_romanian_ci
+ucs2_slovenian_ci
+ucs2_polish_ci
+ucs2_estonian_ci
+ucs2_spanish_ci
+ucs2_swedish_ci
+ucs2_turkish_ci
+ucs2_czech_ci
+ucs2_danish_ci
+ucs2_lithuanian_ci
+ucs2_slovak_ci
+ucs2_spanish2_ci
+ucs2_roman_ci
+ucs2_persian_ci
+ucs2_esperanto_ci
+ucs2_hungarian_ci
+cp866_general_ci
+cp866_bin
+keybcs2_general_ci
+keybcs2_bin
+macce_general_ci
+macce_bin
+macroman_general_ci
+macroman_bin
+cp852_general_ci
+cp852_bin
+latin7_estonian_cs
+latin7_general_ci
+latin7_general_cs
+latin7_bin
+cp1251_bulgarian_ci
+cp1251_ukrainian_ci
+cp1251_bin
+cp1251_general_ci
+cp1251_general_cs
+cp1256_general_ci
+cp1256_bin
+cp1257_lithuanian_ci
+cp1257_bin
+cp1257_general_ci
+binary
+geostd8_general_ci
+geostd8_bin
+cp932_japanese_ci
+cp932_bin
+eucjpms_japanese_ci
+eucjpms_bin
+select routine_name, routine_type from routines;
+routine_name routine_type
+select table_name, index_name from statistics;
+table_name index_name
+select table_name from views;
+table_name
+select privilege_type from user_privileges;
+privilege_type
+USAGE
+select grantee, privilege_type from schema_privileges;
+grantee privilege_type
+select * from table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select column_name, privilege_type from column_privileges;
+column_name privilege_type
+select table_name,constraint_type from table_constraints;
+table_name constraint_type
+select table_schema, table_name, column_name from key_column_usage;
+table_schema table_name column_name
+
+root@localhost db_datadict
+DROP USER 'u_6_401017'@'localhost';
+
+Testcase 3.2.1.18:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401018'@'localhost';
+GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost';
+SHOW GRANTS FOR 'u_6_401018'@'localhost';
+Grants for u_6_401018@localhost
+GRANT USAGE ON *.* TO 'u_6_401018'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'u_6_401018'@'localhost'
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+connect(localhost,u_6_401018,,test,MYSQL_PORT,MYSQL_SOCK);
+USE db_datadict;
+create view db_datadict.v_401018 as
+select * from information_schema.schemata;
+SELECT * FROM v_401018 ORDER BY 2 DESC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+
+root@localhost NULL
+DROP USER 'u_6_401018'@'localhost';
+DROP DATABASE db_datadict;
+
+Testcase 3.2.1.19:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401019'@'localhost';
+grant alter on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant alter routine on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create routine on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create temporary tables
+on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant delete on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant drop on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant execute on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant index on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant insert on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant lock tables on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant update on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SELECT * FROM information_schema.table_privileges
+WHERE table_schema = "information_schema";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM information_schema.column_privileges
+WHERE table_schema = "information_schema";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+DROP USER 'u_6_401019'@'localhost';
+
+Testcase 3.2.1.20:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401020'@'localhost';
+connect(localhost,u_6_401020,,test,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+CREATE TABLE tb_not_allowed ( col TEXT );
+ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema
+create view res_v1 as select * from information_schema.schemata;
+ERROR 42S02: Unknown table 'res_v1' in information_schema
+alter table schemata modify catalog_name varchar(255);
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+update schemata set catalog_name = 'abc'
+ where schema_name = 'information_schema';
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+CREATE PROCEDURE sp_3_2_1_20()
+BEGIN
+INSERT INTO information_schema.schema_privileges (table_schema,privilege_type)
+VALUES('db2','insert');
+END//
+ERROR 42000: Unknown database 'information_schema'
+DELETE FROM schemata WHERE schema_name = 'information_schema';
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+
+root@localhost NULL
+DROP USER 'u_6_401020'@'localhost';
+
+Testcase 3.2.2.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC character_sets;
+Field Type Null Key Default Extra
+CHARACTER_SET_NAME varchar(64) NO
+DEFAULT_COLLATE_NAME varchar(64) NO
+DESCRIPTION varchar(60) NO
+MAXLEN bigint(3) NO 0
+SHOW CREATE TABLE character_sets;
+Table Create Table
+CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '',
+ `DESCRIPTION` varchar(60) NOT NULL default '',
+ `MAXLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'character_sets'
+ORDER BY ordinal_position;
+COUNT(*)
+4
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'character_sets'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+
+Testcase 3.2.2.2:
+--------------------------------------------------------------------------------
+
+root@localhost information_schema
+SELECT * FROM information_schema.character_sets;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+latin1 latin1_swedish_ci cp1252 West European 1
+latin2 latin2_general_ci ISO 8859-2 Central European 1
+swe7 swe7_swedish_ci 7bit Swedish 1
+ascii ascii_general_ci US ASCII 1
+ujis ujis_japanese_ci EUC-JP Japanese 3
+sjis sjis_japanese_ci Shift-JIS Japanese 2
+hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
+tis620 tis620_thai_ci TIS620 Thai 1
+euckr euckr_korean_ci EUC-KR Korean 2
+koi8u koi8u_general_ci KOI8-U Ukrainian 1
+gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
+greek greek_general_ci ISO 8859-7 Greek 1
+cp1250 cp1250_general_ci Windows Central European 1
+gbk gbk_chinese_ci GBK Simplified Chinese 2
+latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
+armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
+utf8 utf8_general_ci UTF-8 Unicode 3
+ucs2 ucs2_general_ci UCS-2 Unicode 2
+cp866 cp866_general_ci DOS Russian 1
+keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
+macce macce_general_ci Mac Central European 1
+macroman macroman_general_ci Mac West European 1
+cp852 cp852_general_ci DOS Central European 1
+latin7 latin7_general_ci ISO 8859-13 Baltic 1
+cp1251 cp1251_general_ci Windows Cyrillic 1
+cp1256 cp1256_general_ci Windows Arabic 1
+cp1257 cp1257_general_ci Windows Baltic 1
+binary binary Binary pseudo charset 1
+geostd8 geostd8_general_ci GEOSTD8 Georgian 1
+cp932 cp932_japanese_ci SJIS for Windows Japanese 2
+eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
+
+Testcase 3.2.2.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.3.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC collations;
+Field Type Null Key Default Extra
+COLLATION_NAME varchar(64) NO
+CHARACTER_SET_NAME varchar(64) NO
+ID bigint(11) NO 0
+IS_DEFAULT varchar(3) NO
+IS_COMPILED varchar(3) NO
+SORTLEN bigint(3) NO 0
+SHOW CREATE TABLE collations;
+Table Create Table
+COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
+ `COLLATION_NAME` varchar(64) NOT NULL default '',
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `ID` bigint(11) NOT NULL default '0',
+ `IS_DEFAULT` varchar(3) NOT NULL default '',
+ `IS_COMPILED` varchar(3) NOT NULL default '',
+ `SORTLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collations'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collations'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+
+Testcase 3.2.3.2:
+--------------------------------------------------------------------------------
+SELECT * FROM collations;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+big5_bin big5 84 Yes 1
+dec8_swedish_ci dec8 3 Yes 0
+dec8_bin dec8 69 0
+cp850_general_ci cp850 4 Yes 0
+cp850_bin cp850 80 0
+hp8_english_ci hp8 6 Yes 0
+hp8_bin hp8 72 0
+koi8r_general_ci koi8r 7 Yes 0
+koi8r_bin koi8r 74 0
+latin1_german1_ci latin1 5 Yes 1
+latin1_swedish_ci latin1 8 Yes Yes 1
+latin1_danish_ci latin1 15 Yes 1
+latin1_german2_ci latin1 31 Yes 2
+latin1_bin latin1 47 Yes 1
+latin1_general_ci latin1 48 Yes 1
+latin1_general_cs latin1 49 Yes 1
+latin1_spanish_ci latin1 94 Yes 1
+latin2_czech_cs latin2 2 Yes 4
+latin2_general_ci latin2 9 Yes Yes 1
+latin2_hungarian_ci latin2 21 Yes 1
+latin2_croatian_ci latin2 27 Yes 1
+latin2_bin latin2 77 Yes 1
+swe7_swedish_ci swe7 10 Yes 0
+swe7_bin swe7 82 0
+ascii_general_ci ascii 11 Yes 0
+ascii_bin ascii 65 0
+ujis_japanese_ci ujis 12 Yes Yes 1
+ujis_bin ujis 91 Yes 1
+sjis_japanese_ci sjis 13 Yes Yes 1
+sjis_bin sjis 88 Yes 1
+hebrew_general_ci hebrew 16 Yes 0
+hebrew_bin hebrew 71 0
+tis620_thai_ci tis620 18 Yes Yes 4
+tis620_bin tis620 89 Yes 1
+euckr_korean_ci euckr 19 Yes Yes 1
+euckr_bin euckr 85 Yes 1
+koi8u_general_ci koi8u 22 Yes 0
+koi8u_bin koi8u 75 0
+gb2312_chinese_ci gb2312 24 Yes Yes 1
+gb2312_bin gb2312 86 Yes 1
+greek_general_ci greek 25 Yes 0
+greek_bin greek 70 0
+cp1250_general_ci cp1250 26 Yes Yes 1
+cp1250_czech_cs cp1250 34 Yes 2
+cp1250_croatian_ci cp1250 44 Yes 1
+cp1250_bin cp1250 66 Yes 1
+gbk_chinese_ci gbk 28 Yes Yes 1
+gbk_bin gbk 87 Yes 1
+latin5_turkish_ci latin5 30 Yes 0
+latin5_bin latin5 78 0
+armscii8_general_ci armscii8 32 Yes 0
+armscii8_bin armscii8 64 0
+utf8_general_ci utf8 33 Yes Yes 1
+utf8_bin utf8 83 Yes 1
+utf8_unicode_ci utf8 192 Yes 8
+utf8_icelandic_ci utf8 193 Yes 8
+utf8_latvian_ci utf8 194 Yes 8
+utf8_romanian_ci utf8 195 Yes 8
+utf8_slovenian_ci utf8 196 Yes 8
+utf8_polish_ci utf8 197 Yes 8
+utf8_estonian_ci utf8 198 Yes 8
+utf8_spanish_ci utf8 199 Yes 8
+utf8_swedish_ci utf8 200 Yes 8
+utf8_turkish_ci utf8 201 Yes 8
+utf8_czech_ci utf8 202 Yes 8
+utf8_danish_ci utf8 203 Yes 8
+utf8_lithuanian_ci utf8 204 Yes 8
+utf8_slovak_ci utf8 205 Yes 8
+utf8_spanish2_ci utf8 206 Yes 8
+utf8_roman_ci utf8 207 Yes 8
+utf8_persian_ci utf8 208 Yes 8
+utf8_esperanto_ci utf8 209 Yes 8
+utf8_hungarian_ci utf8 210 Yes 8
+ucs2_general_ci ucs2 35 Yes Yes 1
+ucs2_bin ucs2 90 Yes 1
+ucs2_unicode_ci ucs2 128 Yes 8
+ucs2_icelandic_ci ucs2 129 Yes 8
+ucs2_latvian_ci ucs2 130 Yes 8
+ucs2_romanian_ci ucs2 131 Yes 8
+ucs2_slovenian_ci ucs2 132 Yes 8
+ucs2_polish_ci ucs2 133 Yes 8
+ucs2_estonian_ci ucs2 134 Yes 8
+ucs2_spanish_ci ucs2 135 Yes 8
+ucs2_swedish_ci ucs2 136 Yes 8
+ucs2_turkish_ci ucs2 137 Yes 8
+ucs2_czech_ci ucs2 138 Yes 8
+ucs2_danish_ci ucs2 139 Yes 8
+ucs2_lithuanian_ci ucs2 140 Yes 8
+ucs2_slovak_ci ucs2 141 Yes 8
+ucs2_spanish2_ci ucs2 142 Yes 8
+ucs2_roman_ci ucs2 143 Yes 8
+ucs2_persian_ci ucs2 144 Yes 8
+ucs2_esperanto_ci ucs2 145 Yes 8
+ucs2_hungarian_ci ucs2 146 Yes 8
+cp866_general_ci cp866 36 Yes 0
+cp866_bin cp866 68 0
+keybcs2_general_ci keybcs2 37 Yes 0
+keybcs2_bin keybcs2 73 0
+macce_general_ci macce 38 Yes 0
+macce_bin macce 43 0
+macroman_general_ci macroman 39 Yes 0
+macroman_bin macroman 53 0
+cp852_general_ci cp852 40 Yes 0
+cp852_bin cp852 81 0
+latin7_estonian_cs latin7 20 0
+latin7_general_ci latin7 41 Yes 0
+latin7_general_cs latin7 42 0
+latin7_bin latin7 79 0
+cp1251_bulgarian_ci cp1251 14 0
+cp1251_ukrainian_ci cp1251 23 0
+cp1251_bin cp1251 50 0
+cp1251_general_ci cp1251 51 Yes 0
+cp1251_general_cs cp1251 52 0
+cp1256_general_ci cp1256 57 Yes 0
+cp1256_bin cp1256 67 0
+cp1257_lithuanian_ci cp1257 29 0
+cp1257_bin cp1257 58 0
+cp1257_general_ci cp1257 59 Yes 0
+binary binary 63 Yes Yes 1
+geostd8_general_ci geostd8 92 Yes 0
+geostd8_bin geostd8 93 0
+cp932_japanese_ci cp932 95 Yes Yes 1
+cp932_bin cp932 96 Yes 1
+eucjpms_japanese_ci eucjpms 97 Yes Yes 1
+eucjpms_bin eucjpms 98 Yes 1
+
+Testcase 3.2.3.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.4.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC collation_character_set_applicability;
+Field Type Null Key Default Extra
+COLLATION_NAME varchar(64) NO
+CHARACTER_SET_NAME varchar(64) NO
+SHOW CREATE TABLE collation_character_set_applicability;
+Table Create Table
+COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` (
+ `COLLATION_NAME` varchar(64) NOT NULL default '',
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collation_character_set_applicability'
+ORDER BY ordinal_position;
+COUNT(*)
+2
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collation_character_set_applicability'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.4.2:
+--------------------------------------------------------------------------------
+SELECT * FROM collation_character_set_applicability;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+cp850_bin cp850
+hp8_english_ci hp8
+hp8_bin hp8
+koi8r_general_ci koi8r
+koi8r_bin koi8r
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+latin2_czech_cs latin2
+latin2_general_ci latin2
+latin2_hungarian_ci latin2
+latin2_croatian_ci latin2
+latin2_bin latin2
+swe7_swedish_ci swe7
+swe7_bin swe7
+ascii_general_ci ascii
+ascii_bin ascii
+ujis_japanese_ci ujis
+ujis_bin ujis
+sjis_japanese_ci sjis
+sjis_bin sjis
+hebrew_general_ci hebrew
+hebrew_bin hebrew
+tis620_thai_ci tis620
+tis620_bin tis620
+euckr_korean_ci euckr
+euckr_bin euckr
+koi8u_general_ci koi8u
+koi8u_bin koi8u
+gb2312_chinese_ci gb2312
+gb2312_bin gb2312
+greek_general_ci greek
+greek_bin greek
+cp1250_general_ci cp1250
+cp1250_czech_cs cp1250
+cp1250_croatian_ci cp1250
+cp1250_bin cp1250
+gbk_chinese_ci gbk
+gbk_bin gbk
+latin5_turkish_ci latin5
+latin5_bin latin5
+armscii8_general_ci armscii8
+armscii8_bin armscii8
+utf8_general_ci utf8
+utf8_bin utf8
+utf8_unicode_ci utf8
+utf8_icelandic_ci utf8
+utf8_latvian_ci utf8
+utf8_romanian_ci utf8
+utf8_slovenian_ci utf8
+utf8_polish_ci utf8
+utf8_estonian_ci utf8
+utf8_spanish_ci utf8
+utf8_swedish_ci utf8
+utf8_turkish_ci utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_lithuanian_ci utf8
+utf8_slovak_ci utf8
+utf8_spanish2_ci utf8
+utf8_roman_ci utf8
+utf8_persian_ci utf8
+utf8_esperanto_ci utf8
+utf8_hungarian_ci utf8
+ucs2_general_ci ucs2
+ucs2_bin ucs2
+ucs2_unicode_ci ucs2
+ucs2_icelandic_ci ucs2
+ucs2_latvian_ci ucs2
+ucs2_romanian_ci ucs2
+ucs2_slovenian_ci ucs2
+ucs2_polish_ci ucs2
+ucs2_estonian_ci ucs2
+ucs2_spanish_ci ucs2
+ucs2_swedish_ci ucs2
+ucs2_turkish_ci ucs2
+ucs2_czech_ci ucs2
+ucs2_danish_ci ucs2
+ucs2_lithuanian_ci ucs2
+ucs2_slovak_ci ucs2
+ucs2_spanish2_ci ucs2
+ucs2_roman_ci ucs2
+ucs2_persian_ci ucs2
+ucs2_esperanto_ci ucs2
+ucs2_hungarian_ci ucs2
+cp866_general_ci cp866
+cp866_bin cp866
+keybcs2_general_ci keybcs2
+keybcs2_bin keybcs2
+macce_general_ci macce
+macce_bin macce
+macroman_general_ci macroman
+macroman_bin macroman
+cp852_general_ci cp852
+cp852_bin cp852
+latin7_estonian_cs latin7
+latin7_general_ci latin7
+latin7_general_cs latin7
+latin7_bin latin7
+cp1251_bulgarian_ci cp1251
+cp1251_ukrainian_ci cp1251
+cp1251_bin cp1251
+cp1251_general_ci cp1251
+cp1251_general_cs cp1251
+cp1256_general_ci cp1256
+cp1256_bin cp1256
+cp1257_lithuanian_ci cp1257
+cp1257_bin cp1257
+cp1257_general_ci cp1257
+binary binary
+geostd8_general_ci geostd8
+geostd8_bin geostd8
+cp932_japanese_ci cp932
+cp932_bin cp932
+eucjpms_japanese_ci eucjpms
+eucjpms_bin eucjpms
+
+Testcase 3.2.4.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.5.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC column_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE column_privileges;
+Table Create Table
+COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'column_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+7
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'column_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT);
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION;
+GRANT ALL ON db_datadict.* TO 'user_3'@'localhost';
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+
+FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has
+-------------------------------------------------------------------------------------
+GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION;
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES
+---------------------------------------------------------------------------------
+SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 SELECT YES
+'user_3'@'localhost' NULL db_datadict res_t40502 INSERT YES
+SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict SELECT NO
+'user_3'@'localhost' NULL db_datadict INSERT NO
+'user_3'@'localhost' NULL db_datadict UPDATE NO
+'user_3'@'localhost' NULL db_datadict DELETE NO
+'user_3'@'localhost' NULL db_datadict CREATE NO
+'user_3'@'localhost' NULL db_datadict DROP NO
+'user_3'@'localhost' NULL db_datadict REFERENCES NO
+'user_3'@'localhost' NULL db_datadict INDEX NO
+'user_3'@'localhost' NULL db_datadict ALTER NO
+'user_3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO
+'user_3'@'localhost' NULL db_datadict LOCK TABLES NO
+'user_3'@'localhost' NULL db_datadict EXECUTE NO
+'user_3'@'localhost' NULL db_datadict CREATE VIEW NO
+'user_3'@'localhost' NULL db_datadict SHOW VIEW NO
+'user_3'@'localhost' NULL db_datadict CREATE ROUTINE NO
+'user_3'@'localhost' NULL db_datadict ALTER ROUTINE NO
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+
+FIXME: check whether it is intended that *my* grants to others are *NOT* shown here
+-----------------------------------------------------------------------------------
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+
+user_2@localhost db_datadict
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO
+
+root@localhost db_datadict
+DROP TABLE IF EXISTS db_datadict.res_t40502;
+DROP DATABASE IF EXISTS db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+
+Testcase 3.2.6.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC columns;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+ORDINAL_POSITION bigint(21) NO 0
+COLUMN_DEFAULT longtext YES NULL
+IS_NULLABLE varchar(3) NO
+DATA_TYPE varchar(64) NO
+CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL
+CHARACTER_OCTET_LENGTH bigint(21) YES NULL
+NUMERIC_PRECISION bigint(21) YES NULL
+NUMERIC_SCALE bigint(21) YES NULL
+CHARACTER_SET_NAME varchar(64) YES NULL
+COLLATION_NAME varchar(64) YES NULL
+COLUMN_TYPE longtext NO NULL
+COLUMN_KEY varchar(3) NO
+EXTRA varchar(20) NO
+PRIVILEGES varchar(80) NO
+COLUMN_COMMENT varchar(255) NO
+SHOW CREATE TABLE columns;
+Table Create Table
+COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `ORDINAL_POSITION` bigint(21) NOT NULL default '0',
+ `COLUMN_DEFAULT` longtext,
+ `IS_NULLABLE` varchar(3) NOT NULL default '',
+ `DATA_TYPE` varchar(64) NOT NULL default '',
+ `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL,
+ `CHARACTER_OCTET_LENGTH` bigint(21) default NULL,
+ `NUMERIC_PRECISION` bigint(21) default NULL,
+ `NUMERIC_SCALE` bigint(21) default NULL,
+ `CHARACTER_SET_NAME` varchar(64) default NULL,
+ `COLLATION_NAME` varchar(64) default NULL,
+ `COLUMN_TYPE` longtext NOT NULL,
+ `COLUMN_KEY` varchar(3) NOT NULL default '',
+ `EXTRA` varchar(20) NOT NULL default '',
+ `PRIVILEGES` varchar(80) NOT NULL default '',
+ `COLUMN_COMMENT` varchar(255) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ORDER BY ordinal_position;
+COUNT(*)
+19
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+
+Testcase 3.2.6.2 + 3.2.6.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int);
+grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost';
+create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int);
+GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL db_datadict t_6_406001 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL db_datadict t_6_406001 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL db_datadict t_6_406002 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL db_datadict t_6_406002 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
+NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
+NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
+NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
+NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
+NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
+NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
+NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
+NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references
+NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
+NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
+NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references
+NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
+NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
+NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
+NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
+NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
+NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references
+NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references
+NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select
+NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references
+NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) insert
+NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references
+NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references
+NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references
+NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references
+NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references
+NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references
+
+root@localhost db_datadict
+
+Show the quotient of COL and CML for all COLUMNS
+------------------------------------------------
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+1.0000 binary NULL NULL
+1.0000 blob NULL NULL
+1.0000 longblob NULL NULL
+1.0000 char latin1 latin1_bin
+1.0000 varchar latin1 latin1_bin
+1.0000 char latin1 latin1_swedish_ci
+1.0000 enum latin1 latin1_swedish_ci
+1.0000 set latin1 latin1_swedish_ci
+1.0000 text latin1 latin1_swedish_ci
+1.0000 longtext utf8 utf8_general_ci
+1.0000 text utf8 utf8_general_ci
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+2.0000 char ucs2 ucs2_general_ci
+2.0000 varchar ucs2 ucs2_general_ci
+3.0000 char utf8 utf8_bin
+3.0000 enum utf8 utf8_bin
+3.0000 char utf8 utf8_general_ci
+3.0000 enum utf8 utf8_general_ci
+3.0000 set utf8 utf8_general_ci
+3.0000 varchar utf8 utf8_general_ci
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+NULL bigint NULL NULL
+NULL date NULL NULL
+NULL datetime NULL NULL
+NULL decimal NULL NULL
+NULL double NULL NULL
+NULL double unsigned NULL NULL
+NULL double unsigned zerofill NULL NULL
+NULL float NULL NULL
+NULL float unsigned NULL NULL
+NULL float unsigned zerofill NULL NULL
+NULL int NULL NULL
+NULL mediumint NULL NULL
+NULL smallint NULL NULL
+NULL time NULL NULL
+NULL timestamp NULL NULL
+NULL tinyint NULL NULL
+NULL varbinary NULL NULL
+NULL year NULL NULL
+--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
+--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
+SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+TABLE_SCHEMA,
+TABLE_NAME,
+COLUMN_NAME,
+DATA_TYPE,
+CHARACTER_MAXIMUM_LENGTH,
+CHARACTER_OCTET_LENGTH,
+CHARACTER_SET_NAME,
+COLLATION_NAME,
+COLUMN_TYPE
+FROM information_schema.columns
+ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
+COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
+1.0000 db_datadict t_6_406001 f1 char 10 10 latin1 latin1_swedish_ci char(10)
+1.0000 db_datadict t_6_406001 f2 text 65535 65535 latin1 latin1_swedish_ci text
+NULL db_datadict t_6_406001 f3 date NULL NULL NULL NULL date
+NULL db_datadict t_6_406001 f4 int NULL NULL NULL NULL int(11)
+1.0000 db_datadict t_6_406002 f1 char 10 10 latin1 latin1_swedish_ci char(10)
+1.0000 db_datadict t_6_406002 f2 text 65535 65535 latin1 latin1_swedish_ci text
+NULL db_datadict t_6_406002 f3 date NULL NULL NULL NULL date
+NULL db_datadict t_6_406002 f4 int NULL NULL NULL NULL int(11)
+3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
+NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
+3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
+NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21)
+1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20)
+3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80)
+3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255)
+3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10)
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
+3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
+1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8)
+3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
+NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
+NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
+1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
+3.0000 information_schema SCHEMATA CATALOG_NAME varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA SQL_PATH varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema STATISTICS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1)
+3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2)
+3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1)
+NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10)
+3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16)
+3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16)
+3.0000 information_schema TABLES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
+NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
+NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
+NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
+3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
+3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4)
+1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9)
+3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
+NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime
+1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema VIEWS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8)
+3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
+3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
+3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64)
+NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
+3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql db User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql func name char 64 192 utf8 utf8_bin char(64)
+NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1)
+3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128)
+3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate')
+NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128)
+NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text
+1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text
+3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128)
+3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64)
+3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE')
+3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64)
+3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL')
+3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
+3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO')
+3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER')
+1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob
+3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64)
+1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob
+3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77)
+NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
+NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE')
+3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE')
+3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
+3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
+NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77)
+NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view')
+3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
+NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N')
+NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20)
+NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11)
+3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20)
+NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11)
+NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned
+3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8)
+3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql user User char 16 48 utf8 utf8_bin char(16)
+1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41)
+3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED')
+1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob
+1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob
+1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob
+NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned
+1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t1 f3 date NULL NULL NULL NULL date
+NULL test t1 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t1 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t10 f3 date NULL NULL NULL NULL date
+NULL test t10 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t10 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t11 f3 date NULL NULL NULL NULL date
+NULL test t11 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t11 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t2 f3 date NULL NULL NULL NULL date
+NULL test t2 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t2 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20)
+NULL test t3 f3 int NULL NULL NULL NULL int(11)
+1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t4 f3 date NULL NULL NULL NULL date
+NULL test t4 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t4 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t7 f3 date NULL NULL NULL NULL date
+NULL test t7 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t8 f3 date NULL NULL NULL NULL date
+NULL test t8 f4 int NULL NULL NULL NULL int(11)
+NULL test t9 f1 int NULL NULL NULL NULL int(11)
+1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t9 f3 int NULL NULL NULL NULL int(11)
+1.0000 test tb1 f1 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb1 f2 char 1 1 latin1 latin1_bin char(1)
+1.0000 test tb1 f3 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1)
+NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4)
+NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned
+NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6)
+NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned
+NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9)
+NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned
+NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb1 f25 int NULL NULL NULL NULL int(11)
+NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned
+NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20)
+NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned
+NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb2 f73 double NULL NULL NULL NULL double
+NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f77 double NULL NULL NULL NULL double
+NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f81 float NULL NULL NULL NULL float
+NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f85 float NULL NULL NULL NULL float
+NULL test tb2 f86 float NULL NULL NULL NULL float
+NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f93 float NULL NULL NULL NULL float
+NULL test tb2 f94 double NULL NULL NULL NULL double
+NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f101 date NULL NULL NULL NULL date
+NULL test tb2 f102 time NULL NULL NULL NULL time
+NULL test tb2 f103 datetime NULL NULL NULL NULL datetime
+NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp
+NULL test tb2 f105 year NULL NULL NULL NULL year(4)
+NULL test tb2 f106 year NULL NULL NULL NULL year(4)
+NULL test tb2 f107 year NULL NULL NULL NULL year(4)
+1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1)
+1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb3 f121 char 50 50 latin1 latin1_swedish_ci char(50)
+1.0000 test tb3 f122 char 50 50 latin1 latin1_swedish_ci char(50)
+1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1)
+NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4)
+NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned
+NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6)
+NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned
+NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9)
+NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned
+NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb3 f142 int NULL NULL NULL NULL int(11)
+NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned
+NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20)
+NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned
+NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb4 f190 double NULL NULL NULL NULL double
+NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f194 double NULL NULL NULL NULL double
+NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f198 float NULL NULL NULL NULL float
+NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f202 float NULL NULL NULL NULL float
+NULL test tb4 f203 float NULL NULL NULL NULL float
+NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f210 float NULL NULL NULL NULL float
+NULL test tb4 f211 double NULL NULL NULL NULL double
+NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f218 date NULL NULL NULL NULL date
+NULL test tb4 f219 time NULL NULL NULL NULL time
+NULL test tb4 f220 datetime NULL NULL NULL NULL datetime
+NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp
+NULL test tb4 f222 year NULL NULL NULL NULL year(4)
+NULL test tb4 f223 year NULL NULL NULL NULL year(4)
+NULL test tb4 f224 year NULL NULL NULL NULL year(4)
+1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+2.0000 test tb4 f236 char 95 190 ucs2 ucs2_general_ci char(95)
+2.0000 test tb4 f241 char 255 510 ucs2 ucs2_general_ci char(255)
+1.0000 test tb4 f237 char 130 130 latin1 latin1_bin char(130)
+1.0000 test tb4 f238 varchar 25000 25000 latin1 latin1_bin varchar(25000)
+NULL test tb4 f239 varbinary 0 0 NULL NULL varbinary(0)
+2.0000 test tb4 f240 varchar 1200 2400 ucs2 ucs2_general_ci varchar(1200)
+NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test1 tb2 f73 double NULL NULL NULL NULL double
+NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f77 double NULL NULL NULL NULL double
+NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f81 float NULL NULL NULL NULL float
+NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f85 float NULL NULL NULL NULL float
+NULL test1 tb2 f86 float NULL NULL NULL NULL float
+NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f93 float NULL NULL NULL NULL float
+NULL test1 tb2 f94 double NULL NULL NULL NULL double
+NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f101 date NULL NULL NULL NULL date
+NULL test1 tb2 f102 time NULL NULL NULL NULL time
+NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime
+NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp
+NULL test1 tb2 f105 year NULL NULL NULL NULL year(4)
+NULL test1 tb2 f106 year NULL NULL NULL NULL year(4)
+NULL test1 tb2 f107 year NULL NULL NULL NULL year(4)
+1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test4 t6 f3 date NULL NULL NULL NULL date
+NULL test4 t6 f4 int NULL NULL NULL NULL int(11)
+1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test4 t6 f6 int NULL NULL NULL NULL int(11)
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE IF EXISTS t_6_406001;
+DROP TABLE IF EXISTS t_6_406002;
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.7.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC key_column_usage;
+Field Type Null Key Default Extra
+CONSTRAINT_CATALOG varchar(4096) YES NULL
+CONSTRAINT_SCHEMA varchar(64) NO
+CONSTRAINT_NAME varchar(64) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+ORDINAL_POSITION bigint(10) NO 0
+POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
+REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
+REFERENCED_TABLE_NAME varchar(64) YES NULL
+REFERENCED_COLUMN_NAME varchar(64) YES NULL
+SHOW CREATE TABLE key_column_usage;
+Table Create Table
+KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` (
+ `CONSTRAINT_CATALOG` varchar(4096) default NULL,
+ `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '',
+ `CONSTRAINT_NAME` varchar(64) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `ORDINAL_POSITION` bigint(10) NOT NULL default '0',
+ `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL,
+ `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL,
+ `REFERENCED_TABLE_NAME` varchar(64) default NULL,
+ `REFERENCED_COLUMN_NAME` varchar(64) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'key_column_usage'
+ORDER BY ordinal_position;
+COUNT(*)
+12
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'key_column_usage'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.7.2 + 3.2.7.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+CREATE TABLE t_40701 (
+f1 INT NOT NULL, PRIMARY KEY(f1),
+f2 INT, INDEX f2_ind(f2)
+);
+GRANT SELECT ON t_40701 to 'user_1'@'localhost';
+CREATE TABLE t_40702 (
+f1 INT NOT NULL, PRIMARY KEY(f1),
+f2 INT, INDEX f2_ind(f2)
+);
+GRANT SELECT ON t_40702 to 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL
+NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE t_40701;
+DROP TABLE t_40702;
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.8.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC routines;
+Field Type Null Key Default Extra
+SPECIFIC_NAME varchar(64) NO
+ROUTINE_CATALOG varchar(4096) YES NULL
+ROUTINE_SCHEMA varchar(64) NO
+ROUTINE_NAME varchar(64) NO
+ROUTINE_TYPE varchar(9) NO
+DTD_IDENTIFIER varchar(64) YES NULL
+ROUTINE_BODY varchar(8) NO
+ROUTINE_DEFINITION longtext YES NULL
+EXTERNAL_NAME varchar(64) YES NULL
+EXTERNAL_LANGUAGE varchar(64) YES NULL
+PARAMETER_STYLE varchar(8) NO
+IS_DETERMINISTIC varchar(3) NO
+SQL_DATA_ACCESS varchar(64) NO
+SQL_PATH varchar(64) YES NULL
+SECURITY_TYPE varchar(7) NO
+CREATED datetime NO 0000-00-00 00:00:00
+LAST_ALTERED datetime NO 0000-00-00 00:00:00
+SQL_MODE longtext NO NULL
+ROUTINE_COMMENT varchar(64) NO
+DEFINER varchar(77) NO
+SHOW CREATE TABLE routines;
+Table Create Table
+ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
+ `SPECIFIC_NAME` varchar(64) NOT NULL default '',
+ `ROUTINE_CATALOG` varchar(4096) default NULL,
+ `ROUTINE_SCHEMA` varchar(64) NOT NULL default '',
+ `ROUTINE_NAME` varchar(64) NOT NULL default '',
+ `ROUTINE_TYPE` varchar(9) NOT NULL default '',
+ `DTD_IDENTIFIER` varchar(64) default NULL,
+ `ROUTINE_BODY` varchar(8) NOT NULL default '',
+ `ROUTINE_DEFINITION` longtext,
+ `EXTERNAL_NAME` varchar(64) default NULL,
+ `EXTERNAL_LANGUAGE` varchar(64) default NULL,
+ `PARAMETER_STYLE` varchar(8) NOT NULL default '',
+ `IS_DETERMINISTIC` varchar(3) NOT NULL default '',
+ `SQL_DATA_ACCESS` varchar(64) NOT NULL default '',
+ `SQL_PATH` varchar(64) default NULL,
+ `SECURITY_TYPE` varchar(7) NOT NULL default '',
+ `CREATED` datetime NOT NULL default '0000-00-00 00:00:00',
+ `LAST_ALTERED` datetime NOT NULL default '0000-00-00 00:00:00',
+ `SQL_MODE` longtext NOT NULL,
+ `ROUTINE_COMMENT` varchar(64) NOT NULL default '',
+ `DEFINER` varchar(77) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'routines'
+ORDER BY ordinal_position;
+COUNT(*)
+20
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'routines'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+
+Testcase 3.2.8.2 + 3.2.8.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+INSERT INTO res_6_408002_1(f1, f2, f3, f4)
+VALUES('abc', 'xyz', '1989-11-09', 0815);
+DROP PROCEDURE IF EXISTS sp_6_408002_1;
+CREATE PROCEDURE sp_6_408002_1()
+BEGIN
+SELECT * FROM db_datadict.res_6_408002_1;
+END//
+CREATE DATABASE db_datadict_2;
+USE db_datadict_2;
+CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+INSERT INTO res_6_408002_2(f1, f2, f3, f4)
+VALUES('abc', 'xyz', '1990-10-03', 4711);
+DROP PROCEDURE IF EXISTS sp_6_408002_2;
+CREATE PROCEDURE sp_6_408002_2()
+BEGIN
+SELECT * FROM db_datadict_2.res_6_408002_2;
+END//
+GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+
+root@localhost db_datadict_2
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+use db_datadict;
+DROP TABLE res_6_408002_1;
+DROP PROCEDURE sp_6_408002_1;
+USE db_datadict_2;
+DROP TABLE res_6_408002_2;
+DROP PROCEDURE sp_6_408002_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.8.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10);
+drop procedure if exists sp_6_408004;
+create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10);
+
+Checking the max. possible length of (currently) 4 GByte is not possible in this environment here.
+--------------------------------------------------------------------------------------------------
+create procedure sp_6_408004 ()
+begin
+declare done integer default 0;
+declare variable_number_1 longtext;
+declare variable_number_2 mediumint;
+declare variable_number_3 longblob;
+declare variable_number_4 real;
+declare variable_number_5 year;
+declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+begin
+open cursor_number_1;
+while done <> 1 do
+fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+variable_number_4, variable_number_5);
+end if;
+end while;
+begin
+begin
+set done = 0;
+open cursor_number_2;
+while done <> 1 do
+fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+set done = 0;
+open cursor_number_3;
+while done <> 1 do
+fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+end;
+begin
+set done = 0;
+open cursor_number_4;
+while done <> 1 do
+fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+begin
+set done = 0;
+open cursor_number_5;
+while done <> 1 do
+fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+end//
+call sp_6_408004 ();
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+select * from res_6_408004_2;
+f1 f2 f3 f4 f5
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+SELECT *, LENGTH(routine_definition)
+FROM information_schema.routines
+WHERE routine_schema = 'db_datadict';
+SPECIFIC_NAME sp_6_408004
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_datadict
+ROUTINE_NAME sp_6_408004
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION begin
+declare done integer default 0;
+declare variable_number_1 longtext;
+declare variable_number_2 mediumint;
+declare variable_number_3 longblob;
+declare variable_number_4 real;
+declare variable_number_5 year;
+declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+begin
+open cursor_number_1;
+while done <> 1 do
+fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+variable_number_4, variable_number_5);
+end if;
+end while;
+begin
+begin
+set done = 0;
+open cursor_number_2;
+while done <> 1 do
+fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+set done = 0;
+open cursor_number_3;
+while done <> 1 do
+fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+end;
+begin
+set done = 0;
+open cursor_number_4;
+while done <> 1 do
+fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+begin
+set done = 0;
+open cursor_number_5;
+while done <> 1 do
+fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+end
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED YYYY-MM-DD hh:mm:ss
+LAST_ALTERED YYYY-MM-DD hh:mm:ss
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+LENGTH(routine_definition) 2549
+use db_datadict;
+drop procedure sp_6_408004;
+drop table res_6_408004_1;
+drop table res_6_408004_2;
+use test;
+drop database db_datadict;
+
+Testcase 3.2.9.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC schemata;
+Field Type Null Key Default Extra
+CATALOG_NAME varchar(4096) YES NULL
+SCHEMA_NAME varchar(64) NO
+DEFAULT_CHARACTER_SET_NAME varchar(64) NO
+DEFAULT_COLLATION_NAME varchar(64) NO
+SQL_PATH varchar(4096) YES NULL
+SHOW CREATE TABLE schemata;
+Table Create Table
+SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` (
+ `CATALOG_NAME` varchar(4096) default NULL,
+ `SCHEMA_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '',
+ `SQL_PATH` varchar(4096) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schemata'
+ORDER BY ordinal_position;
+COUNT(*)
+5
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schemata'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+
+Testcase 3.2.9.2 + 3.2.9.3:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict_1;
+CREATE DATABASE db_datadict_2;
+GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict_1,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+3
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict_1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+3
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict_2 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+2
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+
+root@localhost information_schema
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE db_datadict_1;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.10.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC table_constraints;
+Field Type Null Key Default Extra
+CONSTRAINT_CATALOG varchar(4096) YES NULL
+CONSTRAINT_SCHEMA varchar(64) NO
+CONSTRAINT_NAME varchar(64) NO
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+CONSTRAINT_TYPE varchar(64) NO
+SHOW CREATE TABLE table_constraints;
+Table Create Table
+TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` (
+ `CONSTRAINT_CATALOG` varchar(4096) default NULL,
+ `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '',
+ `CONSTRAINT_NAME` varchar(64) NOT NULL default '',
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `CONSTRAINT_TYPE` varchar(64) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_constraints'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_constraints'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.10.2 + 3.2.10.3:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+USE db_datadict;
+CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+USE db_datadict_2;
+CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL db_datadict PRIMARY db_datadict res_6_401003_1 PRIMARY KEY
+SELECT COUNT(*) FROM information_schema.table_constraints;
+COUNT(*)
+1
+connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL db_datadict_2 PRIMARY db_datadict_2 res_6_401003_2 PRIMARY KEY
+SELECT COUNT(*) FROM information_schema.table_constraints;
+COUNT(*)
+1
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE res_6_401003_1;
+USE db_datadict_2;
+DROP TABLE res_6_401003_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.11.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC table_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE table_privileges;
+Table Create Table
+TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+create database db_datadict;
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+use db_datadict;
+create table tb1(f1 int, f2 int, f3 int);
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+SELECT * FROM information_schema.table_privileges
+WHERE table_name LIKE 'tb%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict tb1 SELECT NO
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict tb1 SELECT YES
+'user_2'@'localhost' NULL db_datadict tb1 INSERT YES
+'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DELETE YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DROP YES
+'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES
+'user_2'@'localhost' NULL db_datadict tb1 INDEX YES
+'user_2'@'localhost' NULL db_datadict tb1 ALTER YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES
+'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES
+SELECT USER(), COUNT(*)
+FROM information_schema.table_privileges
+WHERE grantee = USER();
+USER() COUNT(*)
+user_2@localhost 0
+SELECT USER(), COUNT(*)
+FROM information_schema.table_privileges
+WHERE grantee = "'user_2'@'localhost'";
+USER() COUNT(*)
+user_2@localhost 11
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict tb3 SELECT NO
+
+root@localhost db_datadict
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict tb1 SELECT YES
+'user_2'@'localhost' NULL db_datadict tb1 INSERT YES
+'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DELETE YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DROP YES
+'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES
+'user_2'@'localhost' NULL db_datadict tb1 INDEX YES
+'user_2'@'localhost' NULL db_datadict tb1 ALTER YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES
+'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES
+'user_1'@'localhost' NULL db_datadict tb1 SELECT NO
+'user_3'@'localhost' NULL db_datadict tb3 SELECT NO
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+drop table db_datadict.tb1;
+drop table db_datadict.tb3;
+use test;
+drop database db_datadict;
+
+Testcase 3.2.12.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC tables;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+TABLE_TYPE varchar(64) NO
+ENGINE varchar(64) YES NULL
+VERSION bigint(21) YES NULL
+ROW_FORMAT varchar(10) YES NULL
+TABLE_ROWS bigint(21) YES NULL
+AVG_ROW_LENGTH bigint(21) YES NULL
+DATA_LENGTH bigint(21) YES NULL
+MAX_DATA_LENGTH bigint(21) YES NULL
+INDEX_LENGTH bigint(21) YES NULL
+DATA_FREE bigint(21) YES NULL
+AUTO_INCREMENT bigint(21) YES NULL
+CREATE_TIME datetime YES NULL
+UPDATE_TIME datetime YES NULL
+CHECK_TIME datetime YES NULL
+TABLE_COLLATION varchar(64) YES NULL
+CHECKSUM bigint(21) YES NULL
+CREATE_OPTIONS varchar(255) YES NULL
+TABLE_COMMENT varchar(80) NO
+SHOW CREATE TABLE tables;
+Table Create Table
+TABLES CREATE TEMPORARY TABLE `TABLES` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `TABLE_TYPE` varchar(64) NOT NULL default '',
+ `ENGINE` varchar(64) default NULL,
+ `VERSION` bigint(21) default NULL,
+ `ROW_FORMAT` varchar(10) default NULL,
+ `TABLE_ROWS` bigint(21) default NULL,
+ `AVG_ROW_LENGTH` bigint(21) default NULL,
+ `DATA_LENGTH` bigint(21) default NULL,
+ `MAX_DATA_LENGTH` bigint(21) default NULL,
+ `INDEX_LENGTH` bigint(21) default NULL,
+ `DATA_FREE` bigint(21) default NULL,
+ `AUTO_INCREMENT` bigint(21) default NULL,
+ `CREATE_TIME` datetime default NULL,
+ `UPDATE_TIME` datetime default NULL,
+ `CHECK_TIME` datetime default NULL,
+ `TABLE_COLLATION` varchar(64) default NULL,
+ `CHECKSUM` bigint(21) default NULL,
+ `CREATE_OPTIONS` varchar(255) default NULL,
+ `TABLE_COMMENT` varchar(80) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'tables'
+ORDER BY ordinal_position;
+COUNT(*)
+21
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'tables'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+
+Testcase 3.2.12.2 + 3.2.12.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+create database db_datadict;
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.*
+TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+use db_datadict;
+create table tb1(f1 int, f2 int, f3 int);
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+CREATE TABLE tb2 (f1 DECIMAL);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost';
+CREATE VIEW v3 AS SELECT * FROM tb3;
+GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost';
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+
+root@localhost db_datadict
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL mysql columns_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Column privileges
+NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Database privileges
+NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
+NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
+NULL mysql proc BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Stored Procedures
+NULL mysql procs_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Procedure privileges
+NULL mysql tables_priv BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Table privileges
+NULL mysql time_zone BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# 6 YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zones
+NULL mysql time_zone_leap_second BASE TABLE MyISAM 10 Fixed 22 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Leap seconds information for time zones
+NULL mysql time_zone_name BASE TABLE MyISAM 10 Fixed 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone names
+NULL mysql time_zone_transition BASE TABLE MyISAM 10 Fixed 393 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transitions
+NULL mysql time_zone_transition_type BASE TABLE MyISAM 10 Fixed 31 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transition types
+NULL mysql user BASE TABLE MyISAM 10 Dynamic 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Users and global privileges
+NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test1 tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test4 t6 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP TABLE db_datadict.tb1;
+DROP TABLE db_datadict.tb3;
+DROP VIEW db_datadict.v3;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.13.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC views;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+VIEW_DEFINITION longtext NO NULL
+CHECK_OPTION varchar(8) NO
+IS_UPDATABLE varchar(3) NO
+DEFINER varchar(77) NO
+SECURITY_TYPE varchar(7) NO
+SHOW CREATE TABLE views;
+Table Create Table
+VIEWS CREATE TEMPORARY TABLE `VIEWS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `VIEW_DEFINITION` longtext NOT NULL,
+ `CHECK_OPTION` varchar(8) NOT NULL default '',
+ `IS_UPDATABLE` varchar(3) NOT NULL default '',
+ `DEFINER` varchar(77) NOT NULL default '',
+ `SECURITY_TYPE` varchar(7) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'views'
+ORDER BY ordinal_position;
+COUNT(*)
+8
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'views'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+
+Testcase 3.2.13.2 + 3.2.13.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_no_views'@'localhost';
+USE db_datadict;
+CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT);
+CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302;
+CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302;
+GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost';
+GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER
+NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f1` AS `f1`,`db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER
+connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER
+connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER
+NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER
+connect(localhost,user_no_views,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+
+root@localhost db_datadict
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_no_views'@'localhost';
+DROP VIEW v_granted_to_1;
+DROP TABLE tb_401302;
+DROP VIEW v_granted_glob;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.14.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC statistics;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+NON_UNIQUE bigint(1) NO 0
+INDEX_SCHEMA varchar(64) NO
+INDEX_NAME varchar(64) NO
+SEQ_IN_INDEX bigint(2) NO 0
+COLUMN_NAME varchar(64) NO
+COLLATION varchar(1) YES NULL
+CARDINALITY bigint(21) YES NULL
+SUB_PART bigint(3) YES NULL
+PACKED varchar(10) YES NULL
+NULLABLE varchar(3) NO
+INDEX_TYPE varchar(16) NO
+COMMENT varchar(16) YES NULL
+SHOW CREATE TABLE statistics;
+Table Create Table
+STATISTICS CREATE TEMPORARY TABLE `STATISTICS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `NON_UNIQUE` bigint(1) NOT NULL default '0',
+ `INDEX_SCHEMA` varchar(64) NOT NULL default '',
+ `INDEX_NAME` varchar(64) NOT NULL default '',
+ `SEQ_IN_INDEX` bigint(2) NOT NULL default '0',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `COLLATION` varchar(1) default NULL,
+ `CARDINALITY` bigint(21) default NULL,
+ `SUB_PART` bigint(3) default NULL,
+ `PACKED` varchar(10) default NULL,
+ `NULLABLE` varchar(3) NOT NULL default '',
+ `INDEX_TYPE` varchar(16) NOT NULL default '',
+ `COMMENT` varchar(16) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'statistics'
+ORDER BY ordinal_position;
+COUNT(*)
+15
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'statistics'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+
+Testcase 3.2.14.2 + 3.2.14.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION;
+USE db_datadict_2;
+create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+
+root@localhost db_datadict_2
+REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.statistics
+WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict tb_6_401402_2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_2 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_2 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_2 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 3 type A 0 NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 2 NULL NULL BTREE
+NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE
+NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE
+NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 2 User A 5 NULL NULL BTREE
+
+user_1@localhost test
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+
+user_2@localhost test
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+
+root@localhost db_datadict_2
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE tb_6_401402_1;
+DROP TABLE tb_6_401402_2;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.15.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC schema_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE schema_privileges;
+Table Create Table
+SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schema_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+5
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schema_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.15.2:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+create database db_datadict;
+create database db_datadict_2;
+CREATE USER 'u_6_401502'@'localhost';
+use db_datadict;
+create table res_6_401502(f1 int, f2 int, f3 int);
+grant insert on db_datadict.* to 'u_6_401502'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401502'@'localhost' NULL db_datadict INSERT NO
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+connect(localhost,u_6_401502,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401502'@'localhost' NULL db_datadict INSERT NO
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'u_6_401502'@'localhost';
+drop table res_6_401502;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+
+Testcase 3.2.15.3 + 3.2.15.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+create database db_datadict;
+create database db_datadict_2;
+CREATE USER 'u_6_401503_1'@'localhost';
+CREATE USER 'u_6_401503_2'@'localhost';
+CREATE USER 'u_6_401503_3'@'localhost';
+use db_datadict;
+create table res_6_401503_1(f1 int, f2 int, f3 int);
+use db_datadict_2;
+create table res_6_401503_2(f1 int, f2 int, f3 int);
+grant update on db_datadict.* to 'u_6_401503_1'@'localhost';
+grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO
+'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+connect(localhost,u_6_401503_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO
+connect(localhost,u_6_401503_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO
+connect(localhost,u_6_401503_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+
+root@localhost db_datadict_2
+use db_datadict;
+DROP USER 'u_6_401503_1'@'localhost';
+DROP USER 'u_6_401503_2'@'localhost';
+DROP USER 'u_6_401503_3'@'localhost';
+drop table res_6_401503_1;
+use db_datadict_2;
+drop table res_6_401503_2;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+
+Testcase 3.2.16.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC user_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE user_privileges;
+Table Create Table
+USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'user_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+4
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'user_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+GRANT INSERT ON *.* TO 'user_2'@'localhost';
+GRANT UPDATE ON *.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+FIXME (see Bug 12269) Here we expect more than only <USAGE> for user_1
+----------------------------------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+add GRANT OPTION db_datadict.* to user_1
+----------------------------------------
+GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+FIXME (see Bug 12269) Here the <YES> is missing for the GRANT OPTION for user_1
+-------------------------------------------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+
+Now add SELECT on *.* to user_1
+-------------------------------
+
+root@localhost information_schema
+GRANT SELECT ON *.* TO 'user_1'@'localhost';
+
+Here <SELECT NO> is shown correctly for user_1
+----------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+Here <SELECT YES> is shown correctly for user_1
+-----------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_2@localhost
+GRANT INSERT, UPDATE ON *.* TO 'user_2'@'localhost'
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_3'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_3@localhost
+GRANT USAGE ON *.* TO 'user_3'@'localhost'
+
+revoke privileges from user_1
+-----------------------------
+
+root@localhost information_schema
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+
+user_1@localhost db_datadict
+CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_55'
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_66'
+
+add ALL on db_datadict.* (and select on mysql.user) to user_1
+-------------------------------------------------------------
+
+root@localhost information_schema
+GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_56'
+USE db_datadict;
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+CREATE TABLE tb_57 ( c1 TEXT );
+
+revoke privileges from user_1
+-----------------------------
+
+root@localhost information_schema
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_58 ( c1 TEXT );
+USE db_datadict;
+ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_datadict'
+CREATE TABLE db_datadict.tb_59 ( c1 TEXT );
+
+root@localhost information_schema
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.17: Checks on Performance - not here in this script!
+--------------------------------------------------------------------------------
+
+Testcase 3.2.18.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC triggers;
+Field Type Null Key Default Extra
+TRIGGER_CATALOG varchar(4096) YES NULL
+TRIGGER_SCHEMA varchar(64) NO
+TRIGGER_NAME varchar(64) NO
+EVENT_MANIPULATION varchar(6) NO
+EVENT_OBJECT_CATALOG varchar(4096) YES NULL
+EVENT_OBJECT_SCHEMA varchar(64) NO
+EVENT_OBJECT_TABLE varchar(64) NO
+ACTION_ORDER bigint(4) NO 0
+ACTION_CONDITION longtext YES NULL
+ACTION_STATEMENT longtext NO NULL
+ACTION_ORIENTATION varchar(9) NO
+ACTION_TIMING varchar(6) NO
+ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL
+ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL
+ACTION_REFERENCE_OLD_ROW varchar(3) NO
+ACTION_REFERENCE_NEW_ROW varchar(3) NO
+CREATED datetime YES NULL
+SQL_MODE longtext NO NULL
+DEFINER longtext NO NULL
+SHOW CREATE TABLE triggers;
+Table Create Table
+TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` (
+ `TRIGGER_CATALOG` varchar(4096) default NULL,
+ `TRIGGER_SCHEMA` varchar(64) NOT NULL default '',
+ `TRIGGER_NAME` varchar(64) NOT NULL default '',
+ `EVENT_MANIPULATION` varchar(6) NOT NULL default '',
+ `EVENT_OBJECT_CATALOG` varchar(4096) default NULL,
+ `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '',
+ `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '',
+ `ACTION_ORDER` bigint(4) NOT NULL default '0',
+ `ACTION_CONDITION` longtext,
+ `ACTION_STATEMENT` longtext NOT NULL,
+ `ACTION_ORIENTATION` varchar(9) NOT NULL default '',
+ `ACTION_TIMING` varchar(6) NOT NULL default '',
+ `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL,
+ `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL,
+ `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '',
+ `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '',
+ `CREATED` datetime default NULL,
+ `SQL_MODE` longtext NOT NULL,
+ `DEFINER` longtext NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'triggers'
+ORDER BY ordinal_position;
+COUNT(*)
+19
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'triggers'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+
+Testcase 3.2.18.2 + 3.2.18.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.19.1:
+--------------------------------------------------------------------------------
+
+checking a table that will be implemented later
+-----------------------------------------------
+DESC parameters;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+
+Testcase 3.2.20.1:
+--------------------------------------------------------------------------------
+
+checking a table that will be implemented later
+-----------------------------------------------
+DESC referential_constraints;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+
+*** End of Data Dictionary Tests ***
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS test.tb1;
+DROP TABLE IF EXISTS test.tb2;
+DROP TABLE IF EXISTS test.tb3;
+DROP TABLE IF EXISTS test.tb4;
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t2;
+DROP TABLE IF EXISTS test.t3;
+DROP TABLE IF EXISTS test.t4;
+DROP TABLE IF EXISTS test.t7;
+DROP TABLE IF EXISTS test.t8;
+DROP TABLE IF EXISTS test.t9;
+DROP TABLE IF EXISTS test.t10;
+DROP TABLE IF EXISTS test.t11;
+DROP DATABASE IF EXISTS test1;
+DROP DATABASE IF EXISTS test4;
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
diff --git a/mysql-test/suite/funcs_1/r/memory__load.result b/mysql-test/suite/funcs_1/r/memory__load.result
new file mode 100644
index 00000000000..c1b9c89b257
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory__load.result
@@ -0,0 +1 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
diff --git a/mysql-test/suite/funcs_1/r/memory_bitdata.result b/mysql-test/suite/funcs_1/r/memory_bitdata.result
new file mode 100644
index 00000000000..2b98475d6d2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_bitdata.result
@@ -0,0 +1,68 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb4 ;
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f236 char(95) unicode,
+f241 char(255) unicode,
+f237 char(130) binary,
+f238 varchar(25000) binary,
+f239 varbinary(0),
+f240 varchar(1200) unicode
+) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ;
+
+NOT YET IMPLEMENTED: bitdata tests
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_cursors.result b/mysql-test/suite/funcs_1/r/memory_cursors.result
new file mode 100644
index 00000000000..3221e05cc4f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_cursors.result
@@ -0,0 +1,78 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb1 ;
+create table tb1 (
+f1 char,
+f2 char binary,
+f3 char ascii,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal not null DEFAULT 9.9,
+f34 decimal unsigned not null DEFAULT 9.9,
+f35 decimal zerofill not null DEFAULT 9.9,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = memory;
+Warnings:
+Note 1265 Data truncated for column 'f33' at row 1
+Note 1265 Data truncated for column 'f34' at row 1
+Note 1265 Data truncated for column 'f35' at row 1
+Note 1265 Data truncated for column 'f36' at row 1
+Note 1265 Data truncated for column 'f37' at row 1
+Note 1265 Data truncated for column 'f38' at row 1
+Note 1265 Data truncated for column 'f39' at row 1
+Note 1265 Data truncated for column 'f40' at row 1
+Note 1265 Data truncated for column 'f41' at row 1
+Note 1265 Data truncated for column 'f42' at row 1
+Note 1265 Data truncated for column 'f43' at row 1
+Note 1265 Data truncated for column 'f44' at row 1
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ;
+
+NOT YET IMPLEMENTED: cursor tests
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_func_view.result b/mysql-test/suite/funcs_1/r/memory_func_view.result
new file mode 100644
index 00000000000..552b549a1a0
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_func_view.result
@@ -0,0 +1,5088 @@
+
+! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1_values
+(
+id BIGINT AUTO_INCREMENT,
+select_id BIGINT,
+PRIMARY KEY(id)
+) ENGINE = 'MEMORY' ;
+ALTER TABLE t1_values ADD my_char_30 CHAR(30);
+ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000);
+ALTER TABLE t1_values ADD my_binary_30 BINARY(30);
+ALTER TABLE t1_values ADD my_varbinary_1000 VARBINARY(1000);
+ALTER TABLE t1_values ADD my_datetime DATETIME;
+ALTER TABLE t1_values ADD my_date DATE;
+ALTER TABLE t1_values ADD ts_dummy TIMESTAMP;
+ALTER TABLE t1_values ADD my_timestamp TIMESTAMP;
+ALTER TABLE t1_values ADD my_time TIME;
+ALTER TABLE t1_values ADD my_year YEAR;
+ALTER TABLE t1_values ADD my_bigint BIGINT;
+ALTER TABLE t1_values ADD my_double DOUBLE;
+ALTER TABLE t1_values ADD my_decimal DECIMAL(64,30);
+SET sql_mode = 'traditional';
+INSERT INTO t1_values SET id = 0;
+INSERT INTO t1_values SET
+my_char_30 = '',
+my_varchar_1000 = '',
+my_binary_30 = '',
+my_varbinary_1000 = '',
+my_datetime = '0001-01-01 00:00:00',
+my_date = '0001-01-01',
+my_timestamp = '1970-01-01 03:00:01',
+my_time = '-838:59:59',
+my_year = '1901',
+my_bigint = -9223372036854775808,
+my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 ,
+my_double = -1.7976931348623E+308;
+INSERT INTO t1_values SET
+my_char_30 = '<--------30 characters------->',
+my_varchar_1000 = CONCAT('<---------1000 characters',
+RPAD('',965,'-'),'--------->'),
+my_binary_30 = '<--------30 characters------->',
+my_varbinary_1000 = CONCAT('<---------1000 characters',
+RPAD('',965,'-'),'--------->'),
+my_datetime = '9999-12-31 23:59:59',
+my_date = '9999-12-31',
+my_timestamp = '2038-01-01 02:59:59',
+my_time = '838:59:59',
+my_year = 2155,
+my_bigint = 9223372036854775807,
+my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 ,
+my_double = 1.7976931348623E+308;
+INSERT INTO t1_values SET
+my_char_30 = ' ---äÖüß@µ*$-- ',
+my_varchar_1000 = ' ---äÖüß@µ*$-- ',
+my_binary_30 = ' ---äÖüß@µ*$-- ',
+my_varbinary_1000 = ' ---äÖüß@µ*$-- ',
+my_datetime = '2004-02-29 23:59:59',
+my_date = '2004-02-29',
+my_timestamp = '2004-02-29 23:59:59',
+my_time = '13:00:00',
+my_year = 2000,
+my_bigint = 0,
+my_decimal = 0.0,
+my_double = 0;
+INSERT INTO t1_values SET
+my_char_30 = '-1',
+my_varchar_1000 = '-1',
+my_binary_30 = '-1',
+my_varbinary_1000 = '-1',
+my_datetime = '2005-06-28 10:00:00',
+my_date = '2005-06-28',
+my_timestamp = '2005-06-28 10:00:00',
+my_time = '10:00:00',
+my_year = 2005,
+my_bigint = -1,
+my_decimal = -1.000000000000000000000000000000,
+my_double = -0.1E+1;
+PREPARE ins_sel_with_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'No'" ;
+PREPARE ins_sel_no_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'Yes'" ;
+SET sql_mode = 'traditional';
+SET @my_select = 'SELECT sqrt(my_bigint), my_bigint, id FROM t1_values';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 4;
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = -25;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 20050627;
+INSERT INTO t1_values SET select_id = @select_id,
+my_double = +20.050627E+6;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 200506271758;
+INSERT INTO t1_values SET select_id = @select_id,
+my_double = +0.0200506271758E+13;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 1758;
+
+some statements disabled because of
+Bug#12440: CAST(data type DOUBLE AS TIME) strange results
+--------------------------------------------------------------------------------
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '-3333.3333';
+
+some statements disabled because of
+Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian
+--------------------------------------------------------------------------------
+
+"Attention: CAST --> SIGNED INTEGER
+ The file with expected results suffers from
+ Bug#5083 Big integer values are inserted as negative into
+ decimal/string columns
+ Bug#5913 Traditional mode: BIGINT range not correctly delimited
+ Both have the status: To be fixed later"
+--------------------------------------------------------------------------------
+
+some statements disabled because of
+Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result
+--------------------------------------------------------------------------------
+
+"Attention: CAST --> UNSIGNED INTEGER
+ The file with expected results suffers from Bug 5083 5913 9809"
+--------------------------------------------------------------------------------
+
+some statements disabled because of
+Bugs#8663: cant use bgint unsigned as input to cast
+--------------------------------------------------------------------------------
+SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values';
+
+"Attention: IF(my_year IS NULL, ...
+ The file with expected results suffers from
+ Bug#11689. successful CREATE VIEW but SELECT on view fails."
+--------------------------------------------------------------------------------
+SET @my_select = 'SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT INSTR(my_char_30, ''char''),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values';
+
+"Attention: LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', <numeric column>)
+ The file with expected results suffers from Bug 10963 11728"
+ and the testcases with length = BIGINT or DOUBLE column are deactivated,
+because there are 32/64 Bit differences
+--------------------------------------------------------------------------------
+SET @my_select =
+'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_decimal), my_decimal, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_char_30, 3),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_binary_30, 3),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_bigint),
+my_bigint, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_double),
+my_double, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_decimal),
+my_decimal, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select =
+'SELECT CONCAT(''A'',my_char_30), my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT my_char_30, id FROM t1_values';
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = 'Viana do Castelo';
+SET sql_mode = '';
+
+"# The basic preparations end and the main test starts here"
+--------------------------------------------------------------------------------
+CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values;
+SELECT my_char_30, id FROM t1_values
+WHERE select_id = 187 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 187 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values;
+SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values
+WHERE select_id = 186 OR select_id IS NULL;
+CONCAT('A',my_char_30) my_char_30 id
+NULL NULL 1
+A 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 186 OR select_id IS NULL);
+CONCAT('A',my_char_30) my_char_30 id
+NULL NULL 1
+A 2
+A<--------30 characters-------> <--------30 characters-------> 3
+A ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+A-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 185 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 185 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 184 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 184 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 183 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 183 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 182 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 182 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 181 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 181 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 180 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 180 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 179 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 179 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 178 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 178 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_decimal),
+my_decimal, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_decimal),
+my_decimal, id FROM t1_values
+WHERE select_id = 177 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 177 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_double),
+my_double, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_double),
+my_double, id FROM t1_values
+WHERE select_id = 176 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 176 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_bigint),
+my_bigint, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_bigint),
+my_bigint, id FROM t1_values
+WHERE select_id = 175 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 175 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE('-', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 174 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 174 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_binary_30, 3),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE('-', my_binary_30, 3),
+my_binary_30, id FROM t1_values
+WHERE select_id = 173 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 173 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE('-', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 172 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 172 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_char_30, 3),
+my_char_30, id FROM t1_values;
+SELECT LOCATE('-', my_char_30, 3),
+my_char_30, id FROM t1_values
+WHERE select_id = 171 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 171 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values
+WHERE select_id = 170 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 170 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values
+WHERE select_id = 169 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 169 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values
+WHERE select_id = 168 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 168 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 167 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 167 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 166 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 166 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values
+WHERE select_id = 165 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 165 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values
+WHERE select_id = 164 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 164 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values
+WHERE select_id = 163 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 163 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 162 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 162 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values
+WHERE select_id = 161 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 161 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values
+WHERE select_id = 160 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 160 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 159 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 159 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 158 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 158 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values
+WHERE select_id = 157 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 157 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values
+WHERE select_id = 156 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 156 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values;
+SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values
+WHERE select_id = 155 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 155 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE('char', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 154 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 154 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE('char', my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 153 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 153 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE('char', my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 152 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 152 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LOCATE('char', my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 151 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 151 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOAD_FILE('../log/current_test'), id FROM t1_values;
+SELECT LOAD_FILE('../log/current_test'), id FROM t1_values
+WHERE select_id = 150 OR select_id IS NULL;
+LOAD_FILE('../log/current_test') id
+CURRENT_TEST: memory_func_view
+ 1
+CURRENT_TEST: memory_func_view
+ 2
+CURRENT_TEST: memory_func_view
+ 3
+CURRENT_TEST: memory_func_view
+ 4
+CURRENT_TEST: memory_func_view
+ 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'../log/current_test') AS `LOAD_FILE('../log/current_test')`,`t1_values`.`id` AS `id` from `t1_values`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 150 OR select_id IS NULL);
+LOAD_FILE('../log/current_test') id
+CURRENT_TEST: memory_func_view
+ 1
+CURRENT_TEST: memory_func_view
+ 2
+CURRENT_TEST: memory_func_view
+ 3
+CURRENT_TEST: memory_func_view
+ 4
+CURRENT_TEST: memory_func_view
+ 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 149 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 149 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 148 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 148 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 147 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 147 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 146 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 146 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values;
+SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values
+WHERE select_id = 145 OR select_id IS NULL;
+LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id
+NULL NULL 1
+ -9999999999999999999999999999999999.999999999999999999999999999999 2
+AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9999999999999999999999999999999999.999999999999999999999999999999 3
+ 0.000000000000000000000000000000 4
+ -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 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 145 OR select_id IS NULL);
+LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id
+NULL NULL 1
+ -9999999999999999999999999999999999.999999999999999999999999999999 2
+AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9999999999999999999999999999999999.999999999999999999999999999999 3
+ 0.000000000000000000000000000000 4
+ -1.000000000000000000000000000000 5
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values;
+SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values
+WHERE select_id = 144 OR select_id IS NULL;
+LEFT(my_varbinary_1000, 2) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 144 OR select_id IS NULL);
+LEFT(my_varbinary_1000, 2) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values;
+SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values
+WHERE select_id = 143 OR select_id IS NULL;
+LEFT(my_binary_30, 2) my_binary_30 id
+NULL NULL 1
+
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 143 OR select_id IS NULL);
+LEFT(my_binary_30, 2) my_binary_30 id
+NULL NULL 1
+
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$--
+-1 -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values;
+SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values
+WHERE select_id = 142 OR select_id IS NULL;
+LEFT(my_varchar_1000, 2) my_varchar_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 142 OR select_id IS NULL);
+LEFT(my_varchar_1000, 2) my_varchar_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values;
+SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values
+WHERE select_id = 141 OR select_id IS NULL;
+LEFT(my_char_30, 2) my_char_30 id
+NULL NULL 1
+ 2
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 141 OR select_id IS NULL);
+LEFT(my_char_30, 2) my_char_30 id
+NULL NULL 1
+ 2
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 140 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 140 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT INSTR(my_char_30, 'char'),
+my_char_30, id FROM t1_values;
+SELECT INSTR(my_char_30, 'char'),
+my_char_30, id FROM t1_values
+WHERE select_id = 139 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 139 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 138 OR select_id IS NULL;
+BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 138 OR select_id IS NULL);
+BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+160 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 137 OR select_id IS NULL;
+BIT_LENGTH(my_binary_30) my_binary_30 id
+NULL NULL 1
+240
+240 <--------30 characters-------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 137 OR select_id IS NULL);
+BIT_LENGTH(my_binary_30) my_binary_30 id
+NULL NULL 1
+240
+240 <--------30 characters-------> 3
+240 ---äÖüß@µ*$--
+240 -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 136 OR select_id IS NULL;
+BIT_LENGTH(my_varchar_1000) my_varchar_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 136 OR select_id IS NULL);
+BIT_LENGTH(my_varchar_1000) my_varchar_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+160 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 135 OR select_id IS NULL;
+BIT_LENGTH(my_char_30) my_char_30 id
+NULL NULL 1
+0 2
+240 <--------30 characters-------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 135 OR select_id IS NULL);
+BIT_LENGTH(my_char_30) my_char_30 id
+NULL NULL 1
+0 2
+240 <--------30 characters-------> 3
+152 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_year,'IS_NULL'),
+my_year, id FROM t1_values;
+SELECT IFNULL(my_year,'IS_NULL'),
+my_year, id FROM t1_values
+WHERE select_id = 134 OR select_id IS NULL;
+IFNULL(my_year,'IS_NULL') my_year id
+IS_NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 134 OR select_id IS NULL);
+IFNULL(my_year,'IS_NULL') my_year id
+IS_NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_time,'IS_NULL'),
+my_time, id FROM t1_values;
+SELECT IFNULL(my_time,'IS_NULL'),
+my_time, id FROM t1_values
+WHERE select_id = 133 OR select_id IS NULL;
+IFNULL(my_time,'IS_NULL') my_time id
+IS_NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 133 OR select_id IS NULL);
+IFNULL(my_time,'IS_NULL') my_time id
+IS_NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_timestamp,'IS_NULL'),
+my_timestamp, id FROM t1_values;
+SELECT IFNULL(my_timestamp,'IS_NULL'),
+my_timestamp, id FROM t1_values
+WHERE select_id = 132 OR select_id IS NULL;
+IFNULL(my_timestamp,'IS_NULL') my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 132 OR select_id IS NULL);
+IFNULL(my_timestamp,'IS_NULL') my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_date,'IS_NULL'),
+my_date, id FROM t1_values;
+SELECT IFNULL(my_date,'IS_NULL'),
+my_date, id FROM t1_values
+WHERE select_id = 131 OR select_id IS NULL;
+IFNULL(my_date,'IS_NULL') my_date id
+IS_NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 131 OR select_id IS NULL);
+IFNULL(my_date,'IS_NULL') my_date id
+IS_NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_datetime,'IS_NULL'),
+my_datetime, id FROM t1_values;
+SELECT IFNULL(my_datetime,'IS_NULL'),
+my_datetime, id FROM t1_values
+WHERE select_id = 130 OR select_id IS NULL;
+IFNULL(my_datetime,'IS_NULL') my_datetime id
+IS_NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 130 OR select_id IS NULL);
+IFNULL(my_datetime,'IS_NULL') my_datetime id
+IS_NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_double,'IS_NULL'),
+my_double, id FROM t1_values;
+SELECT IFNULL(my_double,'IS_NULL'),
+my_double, id FROM t1_values
+WHERE select_id = 129 OR select_id IS NULL;
+IFNULL(my_double,'IS_NULL') my_double id
+IS_NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 129 OR select_id IS NULL);
+IFNULL(my_double,'IS_NULL') my_double id
+IS_NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_decimal,'IS_NULL'),
+my_decimal, id FROM t1_values;
+SELECT IFNULL(my_decimal,'IS_NULL'),
+my_decimal, id FROM t1_values
+WHERE select_id = 128 OR select_id IS NULL;
+IFNULL(my_decimal,'IS_NULL') my_decimal id
+IS_NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 128 OR select_id IS NULL);
+IFNULL(my_decimal,'IS_NULL') my_decimal id
+IS_NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_bigint,'IS_NULL'),
+my_bigint, id FROM t1_values;
+SELECT IFNULL(my_bigint,'IS_NULL'),
+my_bigint, id FROM t1_values
+WHERE select_id = 127 OR select_id IS NULL;
+IFNULL(my_bigint,'IS_NULL') my_bigint id
+IS_NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 127 OR select_id IS NULL);
+IFNULL(my_bigint,'IS_NULL') my_bigint id
+IS_NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_varbinary_1000,'IS_NULL'),
+my_varbinary_1000, id FROM t1_values;
+SELECT IFNULL(my_varbinary_1000,'IS_NULL'),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 126 OR select_id IS NULL;
+IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 126 OR select_id IS NULL);
+IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_binary_30,'IS_NULL'),
+my_binary_30, id FROM t1_values;
+SELECT IFNULL(my_binary_30,'IS_NULL'),
+my_binary_30, id FROM t1_values
+WHERE select_id = 125 OR select_id IS NULL;
+IFNULL(my_binary_30,'IS_NULL') my_binary_30 id
+IS_NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 125 OR select_id IS NULL);
+IFNULL(my_binary_30,'IS_NULL') my_binary_30 id
+IS_NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_varchar_1000,'IS_NULL'),
+my_varchar_1000, id FROM t1_values;
+SELECT IFNULL(my_varchar_1000,'IS_NULL'),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 124 OR select_id IS NULL;
+IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 124 OR select_id IS NULL);
+IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_char_30,'IS_NULL'),
+my_char_30, id FROM t1_values;
+SELECT IFNULL(my_char_30,'IS_NULL'),
+my_char_30, id FROM t1_values
+WHERE select_id = 123 OR select_id IS NULL;
+IFNULL(my_char_30,'IS_NULL') my_char_30 id
+IS_NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 123 OR select_id IS NULL);
+IFNULL(my_char_30,'IS_NULL') my_char_30 id
+IS_NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL'), my_year, id FROM t1_values;
+SELECT IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL'), my_year, id FROM t1_values
+WHERE select_id = 122 OR select_id IS NULL;
+IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL') my_year id
+IS NULL NULL 1
+IS NOT NULL 1901 2
+IS NOT NULL 2155 3
+IS NOT NULL 2000 4
+IS NOT NULL 2005 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 122 OR select_id IS NULL);
+IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL') my_year id
+IS NULL NULL 1
+IS NOT NULL 1901 2
+IS NOT NULL 2155 3
+IS NOT NULL 2000 4
+IS NOT NULL 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL'), my_time, id FROM t1_values;
+SELECT IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL'), my_time, id FROM t1_values
+WHERE select_id = 121 OR select_id IS NULL;
+IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL') my_time id
+IS NULL NULL 1
+IS NOT NULL -838:59:59 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 121 OR select_id IS NULL);
+IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL') my_time id
+IS NULL NULL 1
+IS NOT NULL -838:59:59 2
+IS NOT NULL 838:59:59 3
+IS NOT NULL 13:00:00 4
+IS NOT NULL 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL'), my_timestamp, id FROM t1_values;
+SELECT IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL'), my_timestamp, id FROM t1_values
+WHERE select_id = 120 OR select_id IS NULL;
+IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL') my_timestamp id
+IS NOT NULL 0000-00-00 00:00:00 1
+IS NOT NULL 1970-01-01 03:00:01 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 120 OR select_id IS NULL);
+IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL') my_timestamp id
+IS NOT NULL 0000-00-00 00:00:00 1
+IS NOT NULL 1970-01-01 03:00:01 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL'), my_date, id FROM t1_values;
+SELECT IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL'), my_date, id FROM t1_values
+WHERE select_id = 119 OR select_id IS NULL;
+IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL') my_date id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 119 OR select_id IS NULL);
+IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL') my_date id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 2
+IS NOT NULL 9999-12-31 3
+IS NOT NULL 2004-02-29 4
+IS NOT NULL 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL'), my_datetime, id FROM t1_values;
+SELECT IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL'), my_datetime, id FROM t1_values
+WHERE select_id = 118 OR select_id IS NULL;
+IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL') my_datetime id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 00:00:00 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 118 OR select_id IS NULL);
+IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL') my_datetime id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 00:00:00 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL'), my_double, id FROM t1_values;
+SELECT IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL'), my_double, id FROM t1_values
+WHERE select_id = 117 OR select_id IS NULL;
+IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL') my_double id
+IS NULL NULL 1
+IS NOT NULL -1.7976931348623e+308 2
+IS NOT NULL 1.7976931348623e+308 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 117 OR select_id IS NULL);
+IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL') my_double id
+IS NULL NULL 1
+IS NOT NULL -1.7976931348623e+308 2
+IS NOT NULL 1.7976931348623e+308 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL'), my_decimal, id FROM t1_values;
+SELECT IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL'), my_decimal, id FROM t1_values
+WHERE select_id = 116 OR select_id IS NULL;
+IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL') my_decimal id
+IS NULL NULL 1
+IS NOT NULL -9999999999999999999999999999999999.999999999999999999999999999999 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 116 OR select_id IS NULL);
+IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL') my_decimal id
+IS NULL NULL 1
+IS NOT NULL -9999999999999999999999999999999999.999999999999999999999999999999 2
+IS NOT NULL 9999999999999999999999999999999999.999999999999999999999999999999 3
+IS NOT NULL 0.000000000000000000000000000000 4
+IS NOT NULL -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL'), my_bigint, id FROM t1_values;
+SELECT IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL'), my_bigint, id FROM t1_values
+WHERE select_id = 115 OR select_id IS NULL;
+IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL') my_bigint id
+IS NULL NULL 1
+IS NOT NULL -9223372036854775808 2
+IS NOT NULL 9223372036854775807 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 115 OR select_id IS NULL);
+IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL') my_bigint id
+IS NULL NULL 1
+IS NOT NULL -9223372036854775808 2
+IS NOT NULL 9223372036854775807 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varbinary_1000, id FROM t1_values;
+SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varbinary_1000, id FROM t1_values
+WHERE select_id = 114 OR select_id IS NULL;
+IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varbinary_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 114 OR select_id IS NULL);
+IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varbinary_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_binary_30, id FROM t1_values;
+SELECT IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_binary_30, id FROM t1_values
+WHERE select_id = 113 OR select_id IS NULL;
+IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_binary_30 id
+IS NULL NULL 1
+IS NOT NULL
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$--
+IS NOT NULL -1
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 113 OR select_id IS NULL);
+IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_binary_30 id
+IS NULL NULL 1
+IS NOT NULL
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$--
+IS NOT NULL -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varchar_1000, id FROM t1_values;
+SELECT IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varchar_1000, id FROM t1_values
+WHERE select_id = 112 OR select_id IS NULL;
+IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varchar_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 112 OR select_id IS NULL);
+IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varchar_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_char_30, id FROM t1_values;
+SELECT IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_char_30, id FROM t1_values
+WHERE select_id = 111 OR select_id IS NULL;
+IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_char_30 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 111 OR select_id IS NULL);
+IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_char_30 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'),
+my_year, id FROM t1_values;
+SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'),
+my_year, id FROM t1_values
+WHERE select_id = 110 OR select_id IS NULL;
+IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id
+IS NOT TRUE NULL 1
+IS TRUE 1901 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 110 OR select_id IS NULL);
+IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id
+IS NOT TRUE NULL 1
+IS TRUE 1901 2
+IS TRUE 2155 3
+IS TRUE 2000 4
+IS TRUE 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'),
+my_time, id FROM t1_values;
+SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'),
+my_time, id FROM t1_values
+WHERE select_id = 109 OR select_id IS NULL;
+IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id
+IS NOT TRUE NULL 1
+IS TRUE -838:59:59 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 109 OR select_id IS NULL);
+IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id
+IS NOT TRUE NULL 1
+IS TRUE -838:59:59 2
+IS TRUE 838:59:59 3
+IS TRUE 13:00:00 4
+IS TRUE 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'),
+my_timestamp, id FROM t1_values;
+SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'),
+my_timestamp, id FROM t1_values
+WHERE select_id = 108 OR select_id IS NULL;
+IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id
+IS NOT TRUE 0000-00-00 00:00:00 1
+IS TRUE 1970-01-01 03:00:01 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 108 OR select_id IS NULL);
+IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id
+IS NOT TRUE 0000-00-00 00:00:00 1
+IS TRUE 1970-01-01 03:00:01 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'),
+my_date, id FROM t1_values;
+SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'),
+my_date, id FROM t1_values
+WHERE select_id = 107 OR select_id IS NULL;
+IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 107 OR select_id IS NULL);
+IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 2
+IS TRUE 9999-12-31 3
+IS TRUE 2004-02-29 4
+IS TRUE 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'),
+my_datetime, id FROM t1_values;
+SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'),
+my_datetime, id FROM t1_values
+WHERE select_id = 106 OR select_id IS NULL;
+IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 00:00:00 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 106 OR select_id IS NULL);
+IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 00:00:00 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'),
+my_double, id FROM t1_values;
+SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'),
+my_double, id FROM t1_values
+WHERE select_id = 105 OR select_id IS NULL;
+IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id
+IS NOT TRUE NULL 1
+IS TRUE -1.7976931348623e+308 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 105 OR select_id IS NULL);
+IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id
+IS NOT TRUE NULL 1
+IS TRUE -1.7976931348623e+308 2
+IS TRUE 1.7976931348623e+308 3
+IS NOT TRUE 0 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'),
+my_decimal, id FROM t1_values;
+SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'),
+my_decimal, id FROM t1_values
+WHERE select_id = 104 OR select_id IS NULL;
+IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id
+IS NOT TRUE NULL 1
+IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 104 OR select_id IS NULL);
+IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id
+IS NOT TRUE NULL 1
+IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2
+IS TRUE 9999999999999999999999999999999999.999999999999999999999999999999 3
+IS NOT TRUE 0.000000000000000000000000000000 4
+IS TRUE -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'),
+my_bigint, id FROM t1_values;
+SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'),
+my_bigint, id FROM t1_values
+WHERE select_id = 103 OR select_id IS NULL;
+IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id
+IS NOT TRUE NULL 1
+IS TRUE -9223372036854775808 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 103 OR select_id IS NULL);
+IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id
+IS NOT TRUE NULL 1
+IS TRUE -9223372036854775808 2
+IS TRUE 9223372036854775807 3
+IS NOT TRUE 0 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varbinary_1000, id FROM t1_values;
+SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 102 OR select_id IS NULL;
+IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 102 OR select_id IS NULL);
+IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'),
+my_binary_30, id FROM t1_values;
+SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'),
+my_binary_30, id FROM t1_values
+WHERE select_id = 101 OR select_id IS NULL;
+IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$--
+IS TRUE -1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 101 OR select_id IS NULL);
+IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$--
+IS TRUE -1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect DOUBLE value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varchar_1000, id FROM t1_values;
+SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 100 OR select_id IS NULL;
+IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 100 OR select_id IS NULL);
+IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'),
+my_char_30, id FROM t1_values;
+SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'),
+my_char_30, id FROM t1_values
+WHERE select_id = 99 OR select_id IS NULL;
+IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 99 OR select_id IS NULL);
+IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values;
+SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 98 OR select_id IS NULL;
+CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---???????÷@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 98 OR select_id IS NULL);
+CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---???????÷@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values;
+SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values
+WHERE select_id = 97 OR select_id IS NULL;
+CONVERT(my_binary_30 USING koi8r) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---???????÷@??*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 97 OR select_id IS NULL);
+CONVERT(my_binary_30 USING koi8r) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---???????÷@??*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values;
+SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 96 OR select_id IS NULL;
+CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 96 OR select_id IS NULL);
+CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values;
+SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values
+WHERE select_id = 95 OR select_id IS NULL;
+CONVERT(my_char_30 USING koi8r) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 95 OR select_id IS NULL);
+CONVERT(my_char_30 USING koi8r) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values;
+SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 94 OR select_id IS NULL;
+CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 94 OR select_id IS NULL);
+CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values;
+SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values
+WHERE select_id = 93 OR select_id IS NULL;
+CONVERT(my_binary_30 USING utf8) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 93 OR select_id IS NULL);
+CONVERT(my_binary_30 USING utf8) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values;
+SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 92 OR select_id IS NULL;
+CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 92 OR select_id IS NULL);
+CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values;
+SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values
+WHERE select_id = 91 OR select_id IS NULL;
+CONVERT(my_char_30 USING utf8) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 91 OR select_id IS NULL);
+CONVERT(my_char_30 USING utf8) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS UNSIGNED INTEGER),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS UNSIGNED INTEGER),
+my_year, id FROM t1_values
+WHERE select_id = 90 OR select_id IS NULL;
+CAST(my_year AS UNSIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 90 OR select_id IS NULL);
+CAST(my_year AS UNSIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS UNSIGNED INTEGER),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS UNSIGNED INTEGER),
+my_time, id FROM t1_values
+WHERE select_id = 89 OR select_id IS NULL;
+CAST(my_time AS UNSIGNED INTEGER) my_time id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 89 OR select_id IS NULL);
+CAST(my_time AS UNSIGNED INTEGER) my_time id
+NULL NULL 1
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS UNSIGNED INTEGER),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS UNSIGNED INTEGER),
+my_timestamp, id FROM t1_values
+WHERE select_id = 88 OR select_id IS NULL;
+CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 88 OR select_id IS NULL);
+CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS UNSIGNED INTEGER),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS UNSIGNED INTEGER),
+my_date, id FROM t1_values
+WHERE select_id = 87 OR select_id IS NULL;
+CAST(my_date AS UNSIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 87 OR select_id IS NULL);
+CAST(my_date AS UNSIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS UNSIGNED INTEGER),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS UNSIGNED INTEGER),
+my_datetime, id FROM t1_values
+WHERE select_id = 86 OR select_id IS NULL;
+CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 86 OR select_id IS NULL);
+CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
+NULL NULL 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS UNSIGNED INTEGER),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS UNSIGNED INTEGER),
+my_decimal, id FROM t1_values
+WHERE select_id = 85 OR select_id IS NULL;
+CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id
+NULL NULL 1
+0 -9999999999999999999999999999999999.999999999999999999999999999999 2
+18446744073709551615 9999999999999999999999999999999999.999999999999999999999999999999 3
+0 0.000000000000000000000000000000 4
+0 -1.000000000000000000000000000000 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 85 OR select_id IS NULL);
+CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id
+NULL NULL 1
+0 -9999999999999999999999999999999999.999999999999999999999999999999 2
+18446744073709551615 9999999999999999999999999999999999.999999999999999999999999999999 3
+0 0.000000000000000000000000000000 4
+0 -1.000000000000000000000000000000 5
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS UNSIGNED INTEGER),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS UNSIGNED INTEGER),
+my_bigint, id FROM t1_values
+WHERE select_id = 84 OR select_id IS NULL;
+CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id
+NULL NULL 1
+9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 84 OR select_id IS NULL);
+CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id
+NULL NULL 1
+9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+18446744073709551615 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 83 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 83 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS UNSIGNED INTEGER),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS UNSIGNED INTEGER),
+my_binary_30, id FROM t1_values
+WHERE select_id = 82 OR select_id IS NULL;
+CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+18446744073709551615 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 82 OR select_id IS NULL);
+CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+18446744073709551615 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 81 OR select_id IS NULL;
+CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 81 OR select_id IS NULL);
+CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS UNSIGNED INTEGER),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS UNSIGNED INTEGER),
+my_char_30, id FROM t1_values
+WHERE select_id = 80 OR select_id IS NULL;
+CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 80 OR select_id IS NULL);
+CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS SIGNED INTEGER),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS SIGNED INTEGER),
+my_year, id FROM t1_values
+WHERE select_id = 79 OR select_id IS NULL;
+CAST(my_year AS SIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 79 OR select_id IS NULL);
+CAST(my_year AS SIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS SIGNED INTEGER),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS SIGNED INTEGER),
+my_time, id FROM t1_values
+WHERE select_id = 78 OR select_id IS NULL;
+CAST(my_time AS SIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 78 OR select_id IS NULL);
+CAST(my_time AS SIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS SIGNED INTEGER),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS SIGNED INTEGER),
+my_timestamp, id FROM t1_values
+WHERE select_id = 77 OR select_id IS NULL;
+CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 77 OR select_id IS NULL);
+CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS SIGNED INTEGER),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS SIGNED INTEGER),
+my_date, id FROM t1_values
+WHERE select_id = 76 OR select_id IS NULL;
+CAST(my_date AS SIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 76 OR select_id IS NULL);
+CAST(my_date AS SIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS SIGNED INTEGER),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS SIGNED INTEGER),
+my_datetime, id FROM t1_values
+WHERE select_id = 75 OR select_id IS NULL;
+CAST(my_datetime AS SIGNED INTEGER) my_datetime id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 75 OR select_id IS NULL);
+CAST(my_datetime AS SIGNED INTEGER) my_datetime id
+NULL NULL 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS SIGNED INTEGER),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS SIGNED INTEGER),
+my_decimal, id FROM t1_values
+WHERE select_id = 74 OR select_id IS NULL;
+CAST(my_decimal AS SIGNED INTEGER) my_decimal id
+NULL NULL 1
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 74 OR select_id IS NULL);
+CAST(my_decimal AS SIGNED INTEGER) my_decimal id
+NULL NULL 1
+-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: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS SIGNED INTEGER),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS SIGNED INTEGER),
+my_bigint, id FROM t1_values
+WHERE select_id = 73 OR select_id IS NULL;
+CAST(my_bigint AS SIGNED INTEGER) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 73 OR select_id IS NULL);
+CAST(my_bigint AS SIGNED INTEGER) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 72 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 72 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS SIGNED INTEGER),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS SIGNED INTEGER),
+my_binary_30, id FROM t1_values
+WHERE select_id = 71 OR select_id IS NULL;
+CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+-1 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 71 OR select_id IS NULL);
+CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+-1 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect INTEGER value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS SIGNED INTEGER),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS SIGNED INTEGER),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 70 OR select_id IS NULL;
+CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 70 OR select_id IS NULL);
+CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS SIGNED INTEGER),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS SIGNED INTEGER),
+my_char_30, id FROM t1_values
+WHERE select_id = 69 OR select_id IS NULL;
+CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 69 OR select_id IS NULL);
+CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$--'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DECIMAL(37,2)),
+my_year, id FROM t1_values
+WHERE select_id = 68 OR select_id IS NULL;
+CAST(my_year AS DECIMAL(37,2)) my_year id
+NULL NULL 1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 68 OR select_id IS NULL);
+CAST(my_year AS DECIMAL(37,2)) my_year id
+NULL NULL 1
+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(37,2)),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DECIMAL(37,2)),
+my_time, id FROM t1_values
+WHERE select_id = 67 OR select_id IS NULL;
+CAST(my_time AS DECIMAL(37,2)) my_time id
+NULL NULL 1
+-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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 67 OR select_id IS NULL);
+CAST(my_time AS DECIMAL(37,2)) my_time id
+NULL NULL 1
+-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(37,2)),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
+my_timestamp, id FROM t1_values
+WHERE select_id = 66 OR select_id IS NULL;
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 66 OR select_id IS NULL);
+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(37,2)),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DECIMAL(37,2)),
+my_date, id FROM t1_values
+WHERE select_id = 65 OR select_id IS NULL;
+CAST(my_date AS DECIMAL(37,2)) my_date id
+NULL NULL 1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 65 OR select_id IS NULL);
+CAST(my_date AS DECIMAL(37,2)) my_date id
+NULL NULL 1
+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(37,2)),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
+my_datetime, id FROM t1_values
+WHERE select_id = 64 OR select_id IS NULL;
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 64 OR select_id IS NULL);
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
+NULL NULL 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_decimal AS DECIMAL(37,2)),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
+my_decimal, id FROM t1_values
+WHERE select_id = 63 OR select_id IS NULL;
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 63 OR select_id IS NULL);
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
+NULL NULL 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(37,2)),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
+my_bigint, id FROM t1_values
+WHERE select_id = 62 OR select_id IS NULL;
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 62 OR select_id IS NULL);
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
+NULL NULL 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(37,2)),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 61 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 28
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 61 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 28
+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
+DROP VIEW v1;
+
+
+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(37,2)),
+my_binary_30, id FROM t1_values
+WHERE select_id = 60 OR select_id IS NULL;
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
+NULL NULL 1
+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: ''
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 60 OR select_id IS NULL);
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
+NULL NULL 1
+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: ''
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect DECIMAL value: '-1'
+Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
+DROP VIEW v1;
+
+
+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(37,2)),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 59 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 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
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 59 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 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
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+DROP VIEW v1;
+
+
+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(37,2)),
+my_char_30, id FROM t1_values
+WHERE select_id = 58 OR select_id IS NULL;
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
+NULL NULL 1
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 25
+Warnings:
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' '
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 58 OR select_id IS NULL);
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
+NULL NULL 1
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 25
+Warnings:
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' '
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS TIME),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS TIME),
+my_year, id FROM t1_values
+WHERE select_id = 57 OR select_id IS NULL;
+CAST(my_year AS TIME) my_year id
+NULL NULL 1
+00:19:01 1901 2
+00:21:55 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 57 OR select_id IS NULL);
+CAST(my_year AS TIME) my_year id
+NULL NULL 1
+00:19:01 1901 2
+00:21:55 2155 3
+00:20:00 2000 4
+00:20:05 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS TIME),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS TIME),
+my_time, id FROM t1_values
+WHERE select_id = 56 OR select_id IS NULL;
+CAST(my_time AS TIME) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 56 OR select_id IS NULL);
+CAST(my_time AS TIME) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS TIME),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS TIME),
+my_timestamp, id FROM t1_values
+WHERE select_id = 55 OR select_id IS NULL;
+CAST(my_timestamp AS TIME) my_timestamp id
+00:00:00 0000-00-00 00:00:00 1
+03:00:01 1970-01-01 03:00:01 2
+02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 55 OR select_id IS NULL);
+CAST(my_timestamp AS TIME) my_timestamp id
+00:00:00 0000-00-00 00:00:00 1
+03:00:01 1970-01-01 03:00:01 2
+02:59:59 2038-01-01 02:59:59 3
+23:59:59 2004-02-29 23:59:59 4
+10:00:00 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS TIME),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS TIME),
+my_date, id FROM t1_values
+WHERE select_id = 54 OR select_id IS NULL;
+CAST(my_date AS TIME) my_date id
+NULL NULL 1
+00:00:00 0001-01-01 2
+00:00:00 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 54 OR select_id IS NULL);
+CAST(my_date AS TIME) my_date id
+NULL NULL 1
+00:00:00 0001-01-01 2
+00:00:00 9999-12-31 3
+00:00:00 2004-02-29 4
+00:00:00 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS TIME),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS TIME),
+my_datetime, id FROM t1_values
+WHERE select_id = 53 OR select_id IS NULL;
+CAST(my_datetime AS TIME) my_datetime id
+NULL NULL 1
+00:00:00 0001-01-01 00:00:00 2
+23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 53 OR select_id IS NULL);
+CAST(my_datetime AS TIME) my_datetime id
+NULL NULL 1
+00:00:00 0001-01-01 00:00:00 2
+23:59:59 9999-12-31 23:59:59 3
+23:59:59 2004-02-29 23:59:59 4
+10:00:00 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS TIME),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS TIME),
+my_bigint, id FROM t1_values
+WHERE select_id = 52 OR select_id IS NULL;
+CAST(my_bigint AS TIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+00:00:00 0 4
+-00:00:01 -1 5
+00:17:58 1758 24
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 52 OR select_id IS NULL);
+CAST(my_bigint AS TIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+00:00:00 0 4
+-00:00:01 -1 5
+00:17:58 1758 24
+Warnings:
+Warning 1292 Truncated incorrect time value: '-9223372036854775808'
+Warning 1292 Truncated incorrect time value: '9223372036854775807'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS TIME),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS TIME),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 51 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 23
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 51 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 23
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS TIME),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS TIME),
+my_binary_30, id FROM t1_values
+WHERE select_id = 50 OR select_id IS NULL;
+CAST(my_binary_30 AS TIME) my_binary_30 id
+NULL NULL 1
+00:00:00
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$--
+NULL -1
+41:58:00 1 17:58
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 50 OR select_id IS NULL);
+CAST(my_binary_30 AS TIME) my_binary_30 id
+NULL NULL 1
+00:00:00
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$--
+NULL -1
+41:58:00 1 17:58
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect time value: '-1'
+Warning 1292 Truncated incorrect time value: '1 17:58'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS TIME),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS TIME),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 49 OR select_id IS NULL;
+CAST(my_varchar_1000 AS TIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 21
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 49 OR select_id IS NULL);
+CAST(my_varchar_1000 AS TIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 21
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS TIME),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS TIME),
+my_char_30, id FROM t1_values
+WHERE select_id = 48 OR select_id IS NULL;
+CAST(my_char_30 AS TIME) my_char_30 id
+NULL NULL 1
+NULL 2
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 20
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 48 OR select_id IS NULL);
+CAST(my_char_30 AS TIME) my_char_30 id
+NULL NULL 1
+NULL 2
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 20
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$--'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DATETIME),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DATETIME),
+my_year, id FROM t1_values
+WHERE select_id = 47 OR select_id IS NULL;
+CAST(my_year AS DATETIME) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 47 OR select_id IS NULL);
+CAST(my_year AS DATETIME) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated incorrect datetime value: '2005'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS DATETIME),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DATETIME),
+my_time, id FROM t1_values
+WHERE select_id = 46 OR select_id IS NULL;
+CAST(my_time AS DATETIME) my_time id
+NULL NULL 1
+0000-00-00 00:00:00 -838:59:59 2
+0000-00-00 00:00:00 838:59:59 3
+0000-00-00 13:00:00 13:00:00 4
+0000-00-00 10:00:00 10:00:00 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 46 OR select_id IS NULL);
+CAST(my_time AS DATETIME) my_time id
+NULL NULL 1
+0000-00-00 00:00:00 -838:59:59 2
+0000-00-00 00:00:00 838:59:59 3
+0000-00-00 13:00:00 13:00:00 4
+0000-00-00 10:00:00 10:00:00 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATETIME),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DATETIME),
+my_timestamp, id FROM t1_values
+WHERE select_id = 45 OR select_id IS NULL;
+CAST(my_timestamp AS DATETIME) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 45 OR select_id IS NULL);
+CAST(my_timestamp AS DATETIME) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS DATETIME),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DATETIME),
+my_date, id FROM t1_values
+WHERE select_id = 44 OR select_id IS NULL;
+CAST(my_date AS DATETIME) my_date id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 2
+9999-12-31 00:00:00 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 44 OR select_id IS NULL);
+CAST(my_date AS DATETIME) my_date id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 2
+9999-12-31 00:00:00 9999-12-31 3
+2004-02-29 00:00:00 2004-02-29 4
+2005-06-28 00:00:00 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATETIME),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DATETIME),
+my_datetime, id FROM t1_values
+WHERE select_id = 43 OR select_id IS NULL;
+CAST(my_datetime AS DATETIME) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 43 OR select_id IS NULL);
+CAST(my_datetime AS DATETIME) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS DATETIME),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS DATETIME),
+my_double, id FROM t1_values
+WHERE select_id = 42 OR select_id IS NULL;
+CAST(my_double AS DATETIME) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 19
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 42 OR select_id IS NULL);
+CAST(my_double AS DATETIME) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 19
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '200506271758'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATETIME),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DATETIME),
+my_bigint, id FROM t1_values
+WHERE select_id = 41 OR select_id IS NULL;
+CAST(my_bigint AS DATETIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 18
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 41 OR select_id IS NULL);
+CAST(my_bigint AS DATETIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 18
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '200506271758'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATETIME),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DATETIME),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 40 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 17
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 40 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 17
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATETIME),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS DATETIME),
+my_binary_30, id FROM t1_values
+WHERE select_id = 39 OR select_id IS NULL;
+CAST(my_binary_30 AS DATETIME) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 17:58:00 2005-06-27 17:58
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 39 OR select_id IS NULL);
+CAST(my_binary_30 AS DATETIME) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 17:58:00 2005-06-27 17:58
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '2005-06-27 17:58'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATETIME),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS DATETIME),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 38 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 15
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 38 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 15
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATETIME),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS DATETIME),
+my_char_30, id FROM t1_values
+WHERE select_id = 37 OR select_id IS NULL;
+CAST(my_char_30 AS DATETIME) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 14
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 37 OR select_id IS NULL);
+CAST(my_char_30 AS DATETIME) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 14
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DATE),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DATE),
+my_year, id FROM t1_values
+WHERE select_id = 36 OR select_id IS NULL;
+CAST(my_year AS DATE) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 36 OR select_id IS NULL);
+CAST(my_year AS DATE) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated incorrect datetime value: '2005'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS DATE),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DATE),
+my_time, id FROM t1_values
+WHERE select_id = 35 OR select_id IS NULL;
+CAST(my_time AS DATE) my_time id
+NULL NULL 1
+0000-00-00 -838:59:59 2
+0000-00-00 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 35 OR select_id IS NULL);
+CAST(my_time AS DATE) my_time id
+NULL NULL 1
+0000-00-00 -838:59:59 2
+0000-00-00 838:59:59 3
+0000-00-00 13:00:00 4
+0000-00-00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATE),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DATE),
+my_timestamp, id FROM t1_values
+WHERE select_id = 34 OR select_id IS NULL;
+CAST(my_timestamp AS DATE) my_timestamp id
+0000-00-00 0000-00-00 00:00:00 1
+1970-01-01 1970-01-01 03:00:01 2
+2038-01-01 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 34 OR select_id IS NULL);
+CAST(my_timestamp AS DATE) my_timestamp id
+0000-00-00 0000-00-00 00:00:00 1
+1970-01-01 1970-01-01 03:00:01 2
+2038-01-01 2038-01-01 02:59:59 3
+2004-02-29 2004-02-29 23:59:59 4
+2005-06-28 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS DATE),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DATE),
+my_date, id FROM t1_values
+WHERE select_id = 33 OR select_id IS NULL;
+CAST(my_date AS DATE) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 33 OR select_id IS NULL);
+CAST(my_date AS DATE) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATE),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DATE),
+my_datetime, id FROM t1_values
+WHERE select_id = 32 OR select_id IS NULL;
+CAST(my_datetime AS DATE) my_datetime id
+NULL NULL 1
+0001-01-01 0001-01-01 00:00:00 2
+9999-12-31 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 32 OR select_id IS NULL);
+CAST(my_datetime AS DATE) my_datetime id
+NULL NULL 1
+0001-01-01 0001-01-01 00:00:00 2
+9999-12-31 9999-12-31 23:59:59 3
+2004-02-29 2004-02-29 23:59:59 4
+2005-06-28 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS DATE),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS DATE),
+my_double, id FROM t1_values
+WHERE select_id = 31 OR select_id IS NULL;
+CAST(my_double AS DATE) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 13
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 31 OR select_id IS NULL);
+CAST(my_double AS DATE) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 13
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATE),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DATE),
+my_bigint, id FROM t1_values
+WHERE select_id = 30 OR select_id IS NULL;
+CAST(my_bigint AS DATE) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 12
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 30 OR select_id IS NULL);
+CAST(my_bigint AS DATE) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 12
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATE),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DATE),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 29 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 11
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 29 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 11
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATE),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS DATE),
+my_binary_30, id FROM t1_values
+WHERE select_id = 28 OR select_id IS NULL;
+CAST(my_binary_30 AS DATE) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 2005-06-27
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 28 OR select_id IS NULL);
+CAST(my_binary_30 AS DATE) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 2005-06-27
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect date value: '2005-06-27'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATE),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS DATE),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 27 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DATE) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 9
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 27 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DATE) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 9
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATE),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS DATE),
+my_char_30, id FROM t1_values
+WHERE select_id = 26 OR select_id IS NULL;
+CAST(my_char_30 AS DATE) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 8
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 26 OR select_id IS NULL);
+CAST(my_char_30 AS DATE) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 8
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS CHAR),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS CHAR),
+my_year, id FROM t1_values
+WHERE select_id = 25 OR select_id IS NULL;
+CAST(my_year AS CHAR) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 25 OR select_id IS NULL);
+CAST(my_year AS CHAR) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS CHAR),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS CHAR),
+my_time, id FROM t1_values
+WHERE select_id = 24 OR select_id IS NULL;
+CAST(my_time AS CHAR) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 24 OR select_id IS NULL);
+CAST(my_time AS CHAR) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS CHAR),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS CHAR),
+my_timestamp, id FROM t1_values
+WHERE select_id = 23 OR select_id IS NULL;
+CAST(my_timestamp AS CHAR) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 23 OR select_id IS NULL);
+CAST(my_timestamp AS CHAR) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS CHAR),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS CHAR),
+my_date, id FROM t1_values
+WHERE select_id = 22 OR select_id IS NULL;
+CAST(my_date AS CHAR) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 22 OR select_id IS NULL);
+CAST(my_date AS CHAR) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS CHAR),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS CHAR),
+my_datetime, id FROM t1_values
+WHERE select_id = 21 OR select_id IS NULL;
+CAST(my_datetime AS CHAR) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 21 OR select_id IS NULL);
+CAST(my_datetime AS CHAR) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS CHAR),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS CHAR),
+my_double, id FROM t1_values
+WHERE select_id = 20 OR select_id IS NULL;
+CAST(my_double AS CHAR) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 20 OR select_id IS NULL);
+CAST(my_double AS CHAR) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS CHAR),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS CHAR),
+my_decimal, id FROM t1_values
+WHERE select_id = 19 OR select_id IS NULL;
+CAST(my_decimal AS CHAR) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 19 OR select_id IS NULL);
+CAST(my_decimal AS CHAR) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS CHAR),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS CHAR),
+my_bigint, id FROM t1_values
+WHERE select_id = 18 OR select_id IS NULL;
+CAST(my_bigint AS CHAR) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 18 OR select_id IS NULL);
+CAST(my_bigint AS CHAR) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS CHAR),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS CHAR),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 17 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 17 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS CHAR),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS CHAR),
+my_binary_30, id FROM t1_values
+WHERE select_id = 16 OR select_id IS NULL;
+CAST(my_binary_30 AS CHAR) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 16 OR select_id IS NULL);
+CAST(my_binary_30 AS CHAR) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS CHAR),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS CHAR),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 15 OR select_id IS NULL;
+CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 15 OR select_id IS NULL);
+CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS CHAR),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS CHAR),
+my_char_30, id FROM t1_values
+WHERE select_id = 14 OR select_id IS NULL;
+CAST(my_char_30 AS CHAR) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 14 OR select_id IS NULL);
+CAST(my_char_30 AS CHAR) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS BINARY),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS BINARY),
+my_year, id FROM t1_values
+WHERE select_id = 13 OR select_id IS NULL;
+CAST(my_year AS BINARY) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 13 OR select_id IS NULL);
+CAST(my_year AS BINARY) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS BINARY),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS BINARY),
+my_time, id FROM t1_values
+WHERE select_id = 12 OR select_id IS NULL;
+CAST(my_time AS BINARY) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 12 OR select_id IS NULL);
+CAST(my_time AS BINARY) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS BINARY),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS BINARY),
+my_timestamp, id FROM t1_values
+WHERE select_id = 11 OR select_id IS NULL;
+CAST(my_timestamp AS BINARY) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 11 OR select_id IS NULL);
+CAST(my_timestamp AS BINARY) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS BINARY),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS BINARY),
+my_date, id FROM t1_values
+WHERE select_id = 10 OR select_id IS NULL;
+CAST(my_date AS BINARY) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 10 OR select_id IS NULL);
+CAST(my_date AS BINARY) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS BINARY),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS BINARY),
+my_datetime, id FROM t1_values
+WHERE select_id = 9 OR select_id IS NULL;
+CAST(my_datetime AS BINARY) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 9 OR select_id IS NULL);
+CAST(my_datetime AS BINARY) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS BINARY),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS BINARY),
+my_double, id FROM t1_values
+WHERE select_id = 8 OR select_id IS NULL;
+CAST(my_double AS BINARY) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 8 OR select_id IS NULL);
+CAST(my_double AS BINARY) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS BINARY),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS BINARY),
+my_decimal, id FROM t1_values
+WHERE select_id = 7 OR select_id IS NULL;
+CAST(my_decimal AS BINARY) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 7 OR select_id IS NULL);
+CAST(my_decimal AS BINARY) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS BINARY),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS BINARY),
+my_bigint, id FROM t1_values
+WHERE select_id = 6 OR select_id IS NULL;
+CAST(my_bigint AS BINARY) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 6 OR select_id IS NULL);
+CAST(my_bigint AS BINARY) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS BINARY),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS BINARY),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 5 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 5 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS BINARY),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS BINARY),
+my_binary_30, id FROM t1_values
+WHERE select_id = 4 OR select_id IS NULL;
+CAST(my_binary_30 AS BINARY) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 4 OR select_id IS NULL);
+CAST(my_binary_30 AS BINARY) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS BINARY),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS BINARY),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 3 OR select_id IS NULL;
+CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 3 OR select_id IS NULL);
+CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS BINARY),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS BINARY),
+my_char_30, id FROM t1_values
+WHERE select_id = 2 OR select_id IS NULL;
+CAST(my_char_30 AS BINARY) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 2 OR select_id IS NULL);
+CAST(my_char_30 AS BINARY) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT sqrt(my_bigint), my_bigint, id FROM t1_values;
+SELECT sqrt(my_bigint), my_bigint, id FROM t1_values
+WHERE select_id = 1 OR select_id IS NULL;
+sqrt(my_bigint) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+3037000499.976 9223372036854775807 3
+0 0 4
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 1 OR select_id IS NULL);
+sqrt(my_bigint) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+3037000499.976 9223372036854775807 3
+0 0 4
+NULL -1 5
+2 4 6
+NULL -25 7
+DROP VIEW v1;
+
+
+DROP TABLE t1_selects, t1_modes, t1_values;
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc.result b/mysql-test/suite/funcs_1/r/memory_storedproc.result
new file mode 100644
index 00000000000..94d776c9879
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc.result
@@ -0,0 +1,22539 @@
+
+.
+. IMPORTANT NOTICE:
+. -----------------
+.
+. FIXME: The <engine>_storedproc.result files are still NOT CHECKED
+. for correctness!
+.
+. FIXME: Several tests are affected by known problems around DECIMAL
+. FIXME: and NUMERIC that needs to be checked again after WL#2984
+. FIXME: has been completed. Some of them are marked in the result.
+.
+. This .result file has been checked OK with Linux 5.0.23-bk,
+. ChangeSet@1.2211, 2006-06-28 10:11:43-07:00.
+.
+. This file has been saved although it might contain failures / wrong
+. results to be able to detect _new_ differences in the behaviour.
+. Hopefully the remaining checks can be made soon.
+.
+--------------------------------------------------------------------------------
+ FIXME: There are subtests that are switched off due to known bugs:
+ ------------------------------------------------------------------
+WL#2984: DECIMAL and NUMERIC problems with differences on some machines
+0
+
+There are some statements where the ps-protocol is switched off.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.1 - Syntax checks for the CREATE PROCEDURE, CREATE
+FUNCTION, ALTER PROCEDURE, ALTER FUNCTION, DROP PROCEDURE, DROP FUNCTION, SHOW
+CREATE PROCEDURE, SHOW CREATE FUNCTION, SHOW CREATE PROCEDURE STATUS, SHOW
+CREATE FUNCTION STATUS, and CALL statements:
+--------------------------------------------------------------------------------
+
+Testcase 4.1.1:
+---------------
+Ensure that all clauses that should be supported are supported
+CREATE PROCEDURE
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 (f1 char(20) )
+SELECT * from t1 where f2 = f1;
+ERROR 42000: Identifier name 'sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934' is too long
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934('aaaa');
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 does not exist
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( f1 tinytext ) language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1, @v1;
+END//
+ERROR 42000: Identifier name 'sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde' is too long
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( 'abc' );
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde does not exist
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 binary ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+3
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 blob ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+34
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 int ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+34
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: SP definition accepted with m>60 in DECIMAL(m,n)
+CREATE PROCEDURE sp1( f1 decimal(256, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+ERROR 42000: Too big precision 256 specified for column ''. Maximum is 65.
+DROP PROCEDURE IF EXISTS sp1//
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( f1 decimal(66, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+ERROR 42000: Too big precision 66 specified for column ''. Maximum is 65.
+DROP PROCEDURE IF EXISTS sp1//
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( f1 decimal(60, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 17976931340000 );
+@v1
+17976931340000.000000000000000000000000000000
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+CALL sp1( "value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 set("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+CALL sp1( "value1, value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+CALL sp1( "value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) language sql SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) deterministic SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) not deterministic SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) sql security definer SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) sql security invoker SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) comment 'this is simple' SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER this is simple
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 does not exist
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde does not exist
+DROP PROCEDURE sp1;
+
+Testcase 4.1.2:
+---------------
+Ensure that all clauses that should be supported are supported
+CREATE FUNCTION
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+return concat('hello, ', s, '!');
+SELECT fn1('world');
+fn1('world')
+hello, world!
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 mediumtext ) returns mediumtext language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+set @v1 = 'hello';
+set f1 = concat( @v1, f1 );
+return f1;
+END//
+SELECT fn1( ' world');
+fn1( ' world')
+hello world
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 decimal(63, 31) ) returns decimal(63, 31) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1000000 + f1;
+return f1;
+END//
+ERROR 42000: Too big scale 31 specified for column ''. Maximum is 30.
+SELECT fn1( 1.3326e+8 );
+ERROR 42000: FUNCTION db_storedproc.fn1 does not exist
+CREATE FUNCTION fn1( f1 decimal(63, 30) ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1000000 + f1;
+return f1;
+END//
+SELECT fn1( 1.3326e+8 );
+fn1( 1.3326e+8 )
+134260000.000000000000000000000000000000
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 enum("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+return f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SELECT fn1( "value1" );
+fn1( "value1" )
+1.000000000000000000000000000000
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 set("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+return f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+SELECT fn1( "value1, value1" );
+fn1( "value1, value1" )
+1.000000000000000000000000000000
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint deterministic
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint not deterministic
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+sql security definer
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+sql security invoker
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+comment 'this is simple'
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER this is simple
+DROP FUNCTION fn1;
+
+Testcase 4.1.3:
+---------------
+Ensure that all clauses that should be supported are supported
+SHOW CREATE PROC
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (f1 char(20) )
+SELECT * from t1 where f2 = f1;
+show CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+sp1 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`(f1 char(20) )
+SELECT * from t1 where f2 = f1
+DROP PROCEDURE sp1;
+
+Testcase 4.1.4:
+---------------
+show create function
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+return concat('hello, ', s, '!');
+show CREATE FUNCTION fn1;
+Function sql_mode Create Function
+fn1 CREATE DEFINER=`root`@`localhost` FUNCTION `fn1`(s char(20)) RETURNS char(50)
+return concat('hello, ', s, '!')
+DROP FUNCTION fn1;
+
+Testcase 4.1.5:
+---------------
+SHOW PROCEDURE status
+--------------------------------------------------------------------------------
+CREATE PROCEDURE sp5()
+SELECT * from t1;
+SHOW PROCEDURE status like 'sp5';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp5 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE sp5;
+
+Testcase 4.1.6:
+---------------
+show function status
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn5(a int) returns int
+BEGIN
+set @b = 0.9 * a;
+return @b;
+END//
+SHOW FUNCTION STATUS LIKE 'fn5';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn5 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION fn5;
+
+Testcase 4.1.7:
+---------------
+CALL procedure
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7a;
+DROP PROCEDURE IF EXISTS sp7b;
+DROP PROCEDURE IF EXISTS sp7c;
+CREATE PROCEDURE sp7a(a char(20))
+SELECT * from t1 where t1.f2 = a;
+CALL sp7a( 'xyz' );
+f1 f2 f3 f4 f5 f6
+CREATE PROCEDURE sp7b (a char (20), out b char(20))
+SELECT f1 into b from t1 where t1.f2= a;
+CALL sp7b('xyz', @out_param);
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+SELECT @out_param;
+@out_param
+NULL
+CREATE PROCEDURE sp7c (a char (20), out b char(20), inout c int)
+BEGIN
+SELECT f1 into b from t1 where t1.f2=a;
+update t1 set t1.f2=999 where t1.f4=c;
+SELECT f2 into c from t1 where t1.f2=999;
+END//
+set @c=1;
+CALL sp7c('xyz', @out_param, @c);
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+Warning 1329 No data - zero rows fetched, selected, or processed
+SELECT @out_param;
+@out_param
+NULL
+SELECT @c;
+@c
+1
+DROP PROCEDURE sp7a;
+DROP PROCEDURE sp7b;
+DROP PROCEDURE sp7c;
+
+Testcase 4.1.8:
+---------------
+calling function
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn8(a char(20)) returns char(50)
+return concat('hello, ', a, '!');
+SELECT fn8('world');
+fn8('world')
+hello, world!
+DROP FUNCTION fn8;
+
+Testcase 4.1.9:
+---------------
+drop procedure
+--------------------------------------------------------------------------------
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+DROP PROCEDURE IF EXISTS sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE PROCEDURE sp9()SELECT * from t1;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc sp9 PROCEDURE sp9 SQL CONTAINS_SQL NO DEFINER SELECT * from t1 root@localhost created modified
+DROP PROCEDURE sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE PROCEDURE sp9()SELECT * from t1;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc sp9 PROCEDURE sp9 SQL CONTAINS_SQL NO DEFINER SELECT * from t1 root@localhost created modified
+DROP PROCEDURE IF EXISTS sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.1.10:
+----------------
+DROP FUNCTION
+--------------------------------------------------------------------------------
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+DROP FUNCTION IF EXISTS fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE FUNCTION fn10() returns int return 100;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc fn10 FUNCTION fn10 SQL CONTAINS_SQL NO DEFINER int(11) return 100 root@localhost created modified
+DROP FUNCTION fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE FUNCTION fn10() returns int return 100;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc fn10 FUNCTION fn10 SQL CONTAINS_SQL NO DEFINER int(11) return 100 root@localhost created modified
+DROP FUNCTION IF EXISTS fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.1.11:
+----------------
+alter proc
+--------------------------------------------------------------------------------
+create user 'user_1'@'localhost';
+grant execute on db_storedproc.* to 'user_1'@'localhost';
+flush privileges;
+drop table IF EXISTS mysql.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table mysql.t1( f1 char );
+DROP PROCEDURE IF EXISTS sp11;
+Warnings:
+Note 1305 PROCEDURE sp11 does not exist
+CREATE PROCEDURE sp11() insert into mysql.t1 values('a');
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+DEFINER
+connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc
+CALL sp11();
+
+root@localhost db_storedproc
+alter procedure sp11 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+INVOKER
+
+user_1@localhost db_storedproc
+CALL sp11();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't1'
+commit work;
+
+root@localhost db_storedproc
+alter procedure sp11 sql security definer;
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+DEFINER
+CALL sp11();
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp11;
+drop table mysql.t1;
+
+Testcase 4.1.12:
+----------------
+alter function
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn12() returns int
+return 100;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+DEFINER
+SELECT fn12();
+fn12()
+100
+alter function fn12 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+INVOKER
+SELECT fn12();
+fn12()
+100
+alter function fn12 sql security definer;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+DEFINER
+SELECT fn12();
+fn12()
+100
+DROP FUNCTION fn12;
+
+Testcase 4.1.13:
+----------------
+alter proc
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp11;
+Warnings:
+Note 1305 PROCEDURE sp11 does not exist
+CREATE PROCEDURE sp11()
+SELECT * from t1;
+SELECT comment from mysql.proc where specific_name='sp11';
+comment
+
+alter procedure sp11 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='sp11';
+comment
+this is simple
+DROP PROCEDURE sp11;
+
+Testcase 4.1.14:
+----------------
+alter function
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn12;
+Warnings:
+Note 1305 FUNCTION fn12 does not exist
+CREATE FUNCTION fn12() returns int
+return 100;
+SELECT comment from mysql.proc where specific_name='fn12';
+comment
+
+alter function fn12 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='fn12';
+comment
+this is simple
+DROP FUNCTION fn12;
+
+Testcase 4.1.15:
+----------------
+Ensure that any invalid stored procedure name is never accepted, and that an
+appropriate error message is returned when the name is rejected
+--------------------------------------------------------------------------------
+CREATE PROCEDURE sp1()
+DROP PROCEDURE sp1;
+ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
+CREATE PROCEDURE !_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1;
+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 '!_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1' at line 1
+CREATE PROCEDURE function()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE function;
+CREATE PROCEDURE add()
+SELECT * from t1 where f2=f1;
+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 'add()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE all()
+SELECT * from t1 where f2=f1;
+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 'all()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE alter()
+SELECT * from t1 where f2=f1;
+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 'alter()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE analyze()
+SELECT * from t1 where f2=f1;
+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 'analyze()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE and()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE as()
+SELECT * from t1 where f2=f1;
+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 'as()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE asc()
+SELECT * from t1 where f2=f1;
+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 'asc()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE asensitive()
+SELECT * from t1 where f2=f1;
+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 'asensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE before()
+SELECT * from t1 where f2=f1;
+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 'before()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE between()
+SELECT * from t1 where f2=f1;
+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 'between()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE bigint()
+SELECT * from t1 where f2=f1;
+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 'bigint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE binary()
+SELECT * from t1 where f2=f1;
+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 'binary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE blob()
+SELECT * from t1 where f2=f1;
+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 'blob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE both()
+SELECT * from t1 where f2=f1;
+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 'both()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE by()
+SELECT * from t1 where f2=f1;
+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 'by()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE CALL()
+SELECT * from t1 where f2=f1;
+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 'CALL()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cascade()
+SELECT * from t1 where f2=f1;
+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 'cascade()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE case()
+SELECT * from t1 where f2=f1;
+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 'case()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE change()
+SELECT * from t1 where f2=f1;
+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 'change()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE char()
+SELECT * from t1 where f2=f1;
+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 'char()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE character()
+SELECT * from t1 where f2=f1;
+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 'character()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE check()
+SELECT * from t1 where f2=f1;
+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 'check()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE collate()
+SELECT * from t1 where f2=f1;
+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 'collate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE column()
+SELECT * from t1 where f2=f1;
+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 'column()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE columns()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE columns;
+CREATE PROCEDURE condition()
+SELECT * from t1 where f2=f1;
+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 'condition()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE connection()
+SELECT * from t1 where f2=f1;
+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 'connection()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE constraint()
+SELECT * from t1 where f2=f1;
+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 'constraint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE continue()
+SELECT * from t1 where f2=f1;
+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 'continue()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE convert()
+SELECT * from t1 where f2=f1;
+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 'convert()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE create()
+SELECT * from t1 where f2=f1;
+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 'create()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cross()
+SELECT * from t1 where f2=f1;
+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 'cross()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_date()
+SELECT * from t1 where f2=f1;
+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 'current_date()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_time()
+SELECT * from t1 where f2=f1;
+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 'current_time()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_timestamp()
+SELECT * from t1 where f2=f1;
+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 'current_timestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_user()
+SELECT * from t1 where f2=f1;
+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 'current_user()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cursor()
+SELECT * from t1 where f2=f1;
+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 'cursor()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE database()
+SELECT * from t1 where f2=f1;
+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 'database()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE databases()
+SELECT * from t1 where f2=f1;
+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 'databases()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_hour()
+SELECT * from t1 where f2=f1;
+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 'day_hour()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_microsecond()
+SELECT * from t1 where f2=f1;
+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 'day_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_minute()
+SELECT * from t1 where f2=f1;
+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 'day_minute()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_second()
+SELECT * from t1 where f2=f1;
+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 'day_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE dec()
+SELECT * from t1 where f2=f1;
+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 'dec()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE decimal()
+SELECT * from t1 where f2=f1;
+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 'decimal()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE declare()
+SELECT * from t1 where f2=f1;
+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 'declare()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE default()
+SELECT * from t1 where f2=f1;
+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 'default()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE delayed()
+SELECT * from t1 where f2=f1;
+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 'delayed()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE delete()
+SELECT * from t1 where f2=f1;
+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 'delete()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE desc()
+SELECT * from t1 where f2=f1;
+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 'desc()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE describe()
+SELECT * from t1 where f2=f1;
+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 'describe()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE deterministic()
+SELECT * from t1 where f2=f1;
+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 'deterministic()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE distinct()
+SELECT * from t1 where f2=f1;
+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 'distinct()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE distinctrow()
+SELECT * from t1 where f2=f1;
+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 'distinctrow()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE div()
+SELECT * from t1 where f2=f1;
+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 'div()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE double()
+SELECT * from t1 where f2=f1;
+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 'double()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE drop()
+SELECT * from t1 where f2=f1;
+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 'drop()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE dual()
+SELECT * from t1 where f2=f1;
+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 'dual()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE each()
+SELECT * from t1 where f2=f1;
+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 'each()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE else()
+SELECT * from t1 where f2=f1;
+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 'else()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE elseif()
+SELECT * from t1 where f2=f1;
+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 'elseif()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE enclosed()
+SELECT * from t1 where f2=f1;
+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 'enclosed()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE escaped()
+SELECT * from t1 where f2=f1;
+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 'escaped()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE exists()
+SELECT * from t1 where f2=f1;
+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 'exists()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE exit()
+SELECT * from t1 where f2=f1;
+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 'exit()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE explain()
+SELECT * from t1 where f2=f1;
+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 'explain()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE false()
+SELECT * from t1 where f2=f1;
+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 'false()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fetch()
+SELECT * from t1 where f2=f1;
+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 'fetch()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fields()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE fields;
+CREATE PROCEDURE float()
+SELECT * from t1 where f2=f1;
+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 'float()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE for()
+SELECT * from t1 where f2=f1;
+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 'for()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE force()
+SELECT * from t1 where f2=f1;
+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 'force()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE foreign()
+SELECT * from t1 where f2=f1;
+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 'foreign()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE found()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE found;
+CREATE PROCEDURE from()
+SELECT * from t1 where f2=f1;
+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 'from()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fulltext()
+SELECT * from t1 where f2=f1;
+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 'fulltext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE goto()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE goto;
+CREATE PROCEDURE grant()
+SELECT * from t1 where f2=f1;
+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 'grant()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE group()
+SELECT * from t1 where f2=f1;
+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 'group()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE having()
+SELECT * from t1 where f2=f1;
+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 'having()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE high_priority()
+SELECT * from t1 where f2=f1;
+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 'high_priority()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_microsecond()
+SELECT * from t1 where f2=f1;
+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 'hour_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_minute()
+SELECT * from t1 where f2=f1;
+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 'hour_minute()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_second()
+SELECT * from t1 where f2=f1;
+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 'hour_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE if()
+SELECT * from t1 where f2=f1;
+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 'if()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE ignore()
+SELECT * from t1 where f2=f1;
+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 'ignore()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE in()
+SELECT * from t1 where f2=f1;
+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 'in()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE index()
+SELECT * from t1 where f2=f1;
+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 'index()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE infile()
+SELECT * from t1 where f2=f1;
+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 'infile()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE inner()
+SELECT * from t1 where f2=f1;
+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 'inner()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE inout()
+SELECT * from t1 where f2=f1;
+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 'inout()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE insensitive()
+SELECT * from t1 where f2=f1;
+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 'insensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE insert()
+SELECT * from t1 where f2=f1;
+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 'insert()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE int()
+SELECT * from t1 where f2=f1;
+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 'int()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE integer()
+SELECT * from t1 where f2=f1;
+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 'integer()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE interval()
+SELECT * from t1 where f2=f1;
+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 'interval()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE into()
+SELECT * from t1 where f2=f1;
+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 'into()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE is()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE iterate()
+SELECT * from t1 where f2=f1;
+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 'iterate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE join()
+SELECT * from t1 where f2=f1;
+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 'join()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE key()
+SELECT * from t1 where f2=f1;
+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 'key()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE keys()
+SELECT * from t1 where f2=f1;
+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 'keys()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE kill()
+SELECT * from t1 where f2=f1;
+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 'kill()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE leading()
+SELECT * from t1 where f2=f1;
+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 'leading()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE leave()
+SELECT * from t1 where f2=f1;
+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 'leave()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE left()
+SELECT * from t1 where f2=f1;
+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 'left()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE like()
+SELECT * from t1 where f2=f1;
+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 'like()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE limit()
+SELECT * from t1 where f2=f1;
+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 'limit()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE lines()
+SELECT * from t1 where f2=f1;
+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 'lines()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE load()
+SELECT * from t1 where f2=f1;
+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 'load()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE localtime()
+SELECT * from t1 where f2=f1;
+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 'localtime()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE localtimestamp()
+SELECT * from t1 where f2=f1;
+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 'localtimestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE lock()
+SELECT * from t1 where f2=f1;
+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 'lock()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE long()
+SELECT * from t1 where f2=f1;
+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 'long()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE longblob()
+SELECT * from t1 where f2=f1;
+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 'longblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE longtext()
+SELECT * from t1 where f2=f1;
+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 'longtext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE loop()
+SELECT * from t1 where f2=f1;
+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 'loop()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE low_priority()
+SELECT * from t1 where f2=f1;
+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 'low_priority()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE match()
+SELECT * from t1 where f2=f1;
+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 'match()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumblob()
+SELECT * from t1 where f2=f1;
+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 'mediumblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumint()
+SELECT * from t1 where f2=f1;
+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 'mediumint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumtext()
+SELECT * from t1 where f2=f1;
+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 'mediumtext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE middleint()
+SELECT * from t1 where f2=f1;
+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 'middleint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE minute_microsecond()
+SELECT * from t1 where f2=f1;
+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 'minute_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE minute_second()
+SELECT * from t1 where f2=f1;
+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 'minute_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mod()
+SELECT * from t1 where f2=f1;
+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 'mod()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE modifies()
+SELECT * from t1 where f2=f1;
+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 'modifies()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE natural()
+SELECT * from t1 where f2=f1;
+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 'natural()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE not()
+SELECT * from t1 where f2=f1;
+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 'not()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE no_write_to_binlog()
+SELECT * from t1 where f2=f1;
+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 'no_write_to_binlog()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE null()
+SELECT * from t1 where f2=f1;
+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 'null()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE numeric()
+SELECT * from t1 where f2=f1;
+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 'numeric()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE on()
+SELECT * from t1 where f2=f1;
+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 'on()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE optimize()
+SELECT * from t1 where f2=f1;
+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 'optimize()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE option()
+SELECT * from t1 where f2=f1;
+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 'option()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE optionally()
+SELECT * from t1 where f2=f1;
+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 'optionally()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE or()
+SELECT * from t1 where f2=f1;
+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 'or()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE order()
+SELECT * from t1 where f2=f1;
+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 'order()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE out()
+SELECT * from t1 where f2=f1;
+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 'out()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE outer()
+SELECT * from t1 where f2=f1;
+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 'outer()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE outfile()
+SELECT * from t1 where f2=f1;
+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 'outfile()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE precision()
+SELECT * from t1 where f2=f1;
+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 'precision()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE primary()
+SELECT * from t1 where f2=f1;
+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 'primary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE privileges()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE privileges;
+CREATE PROCEDURE procedure()
+SELECT * from t1 where f2=f1;
+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 'procedure()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE purge()
+SELECT * from t1 where f2=f1;
+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 'purge()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE read()
+SELECT * from t1 where f2=f1;
+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 'read()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE reads()
+SELECT * from t1 where f2=f1;
+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 'reads()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE real()
+SELECT * from t1 where f2=f1;
+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 'real()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE references()
+SELECT * from t1 where f2=f1;
+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 'references()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE regexp()
+SELECT * from t1 where f2=f1;
+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 'regexp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE rename()
+SELECT * from t1 where f2=f1;
+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 'rename()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE repeat()
+SELECT * from t1 where f2=f1;
+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 'repeat()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE replace()
+SELECT * from t1 where f2=f1;
+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 'replace()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE require()
+SELECT * from t1 where f2=f1;
+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 'require()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE restrict()
+SELECT * from t1 where f2=f1;
+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 'restrict()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE return()
+SELECT * from t1 where f2=f1;
+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 'return()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE revoke()
+SELECT * from t1 where f2=f1;
+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 'revoke()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE right()
+SELECT * from t1 where f2=f1;
+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 'right()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE rlike()
+SELECT * from t1 where f2=f1;
+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 'rlike()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE schema()
+SELECT * from t1 where f2=f1;
+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 'schema()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE schemas()
+SELECT * from t1 where f2=f1;
+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 'schemas()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE second_microsecond()
+SELECT * from t1 where f2=f1;
+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 'second_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE select()
+SELECT * from t1 where f2=f1;
+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 'select()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sensitive()
+SELECT * from t1 where f2=f1;
+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 'sensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE separator()
+SELECT * from t1 where f2=f1;
+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 'separator()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE set()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE show()
+SELECT * from t1 where f2=f1;
+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 'show()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE smallint()
+SELECT * from t1 where f2=f1;
+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 'smallint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE soname()
+SELECT * from t1 where f2=f1;
+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 'soname()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE spatial()
+SELECT * from t1 where f2=f1;
+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 'spatial()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE specific()
+SELECT * from t1 where f2=f1;
+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 'specific()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql()
+SELECT * from t1 where f2=f1;
+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 'sql()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlexception()
+SELECT * from t1 where f2=f1;
+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 'sqlexception()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlstate()
+SELECT * from t1 where f2=f1;
+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 'sqlstate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlwarning()
+SELECT * from t1 where f2=f1;
+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 'sqlwarning()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_big_result()
+SELECT * from t1 where f2=f1;
+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 'sql_big_result()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_calc_found_rows()
+SELECT * from t1 where f2=f1;
+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 'sql_calc_found_rows()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_small_result()
+SELECT * from t1 where f2=f1;
+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 'sql_small_result()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE ssl()
+SELECT * from t1 where f2=f1;
+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 'ssl()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE starting()
+SELECT * from t1 where f2=f1;
+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 'starting()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE straight_join()
+SELECT * from t1 where f2=f1;
+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 'straight_join()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE table()
+SELECT * from t1 where f2=f1;
+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 'table()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tables()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE tables;
+CREATE PROCEDURE terminated()
+SELECT * from t1 where f2=f1;
+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 'terminated()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE then()
+SELECT * from t1 where f2=f1;
+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 'then()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinyblob()
+SELECT * from t1 where f2=f1;
+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 'tinyblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinyint()
+SELECT * from t1 where f2=f1;
+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 'tinyint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinytext()
+SELECT * from t1 where f2=f1;
+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 'tinytext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE to()
+SELECT * from t1 where f2=f1;
+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 'to()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE trailing()
+SELECT * from t1 where f2=f1;
+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 'trailing()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE trigger()
+SELECT * from t1 where f2=f1;
+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 'trigger()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE true()
+SELECT * from t1 where f2=f1;
+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 'true()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE undo()
+SELECT * from t1 where f2=f1;
+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 'undo()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE union()
+SELECT * from t1 where f2=f1;
+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 'union()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unique()
+SELECT * from t1 where f2=f1;
+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 'unique()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unlock()
+SELECT * from t1 where f2=f1;
+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 'unlock()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unsigned()
+SELECT * from t1 where f2=f1;
+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 'unsigned()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE update()
+SELECT * from t1 where f2=f1;
+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 'update()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE usage()
+SELECT * from t1 where f2=f1;
+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 'usage()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE use()
+SELECT * from t1 where f2=f1;
+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 'use()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE using()
+SELECT * from t1 where f2=f1;
+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 'using()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_date()
+SELECT * from t1 where f2=f1;
+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 'utc_date()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_time()
+SELECT * from t1 where f2=f1;
+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 'utc_time()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_timestamp()
+SELECT * from t1 where f2=f1;
+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 'utc_timestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE values()
+SELECT * from t1 where f2=f1;
+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 'values()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varbinary()
+SELECT * from t1 where f2=f1;
+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 'varbinary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varchar()
+SELECT * from t1 where f2=f1;
+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 'varchar()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varcharacter()
+SELECT * from t1 where f2=f1;
+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 'varcharacter()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varying()
+SELECT * from t1 where f2=f1;
+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 'varying()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE when()
+SELECT * from t1 where f2=f1;
+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 'when()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE where()
+SELECT * from t1 where f2=f1;
+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 'where()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE while()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE with()
+SELECT * from t1 where f2=f1;
+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 'with()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE write()
+SELECT * from t1 where f2=f1;
+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 'write()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE xor()
+SELECT * from t1 where f2=f1;
+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 'xor()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE year_month()
+SELECT * from t1 where f2=f1;
+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 'year_month()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE zerofill()
+SELECT * from t1 where f2=f1;
+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 'zerofill()
+SELECT * from t1 where f2=f1' at line 1
+
+Testcase 4.1.15:
+----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected
+--------------------------------------------------------------------------------
+CREATE FUNCTION !_fn1(f1 char) returns char
+return f1;
+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 '!_fn1(f1 char) returns char
+return f1' at line 1
+CREATE FUNCTION char(f1 char) returns char
+return f1;
+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 'char(f1 char) returns char
+return f1' at line 1
+CREATE FUNCTION char binary(f1 char binary) returns char binary
+return f1;
+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 'char binary(f1 char binary) returns char binary
+return f1' at line 1
+CREATE FUNCTION char ascii(f1 char ascii) returns char ascii
+return f1;
+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 'char ascii(f1 char ascii) returns char ascii
+return f1' at line 1
+CREATE FUNCTION char not null(f1 char not null) returns char not null
+return f1;
+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 'char not null(f1 char not null) returns char not null
+return f1' at line 1
+CREATE FUNCTION char binary not null(f1 char binary not null) returns char binary not null
+return f1;
+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 'char binary not null(f1 char binary not null) returns char binary not null
+retur' at line 1
+CREATE FUNCTION char ascii not null(f1 char ascii not null) returns char ascii not null
+return f1;
+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 'char ascii not null(f1 char ascii not null) returns char ascii not null
+return f' at line 1
+CREATE FUNCTION tinytext(f1 tinytext) returns tinytext
+return f1;
+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 'tinytext(f1 tinytext) returns tinytext
+return f1' at line 1
+CREATE FUNCTION text(f1 text) returns text
+return f1;
+DROP FUNCTION text;
+CREATE FUNCTION mediumtext(f1 mediumtext) returns mediumtext
+return f1;
+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 'mediumtext(f1 mediumtext) returns mediumtext
+return f1' at line 1
+CREATE FUNCTION longtext(f1 longtext) returns longtext
+return f1;
+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 'longtext(f1 longtext) returns longtext
+return f1' at line 1
+CREATE FUNCTION tinytext not null(f1 tinytext not null) returns tinytext not null
+return f1;
+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 'tinytext not null(f1 tinytext not null) returns tinytext not null
+return f1' at line 1
+CREATE FUNCTION text not null(f1 text not null) returns text not null
+return f1;
+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 'not null(f1 text not null) returns text not null
+return f1' at line 1
+CREATE FUNCTION mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+return f1;
+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 'mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+return f' at line 1
+CREATE FUNCTION longtext not null(f1 longtext not null) returns longtext not null
+return f1;
+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 'longtext not null(f1 longtext not null) returns longtext not null
+return f1' at line 1
+CREATE FUNCTION tinyblob(f1 tinyblob) returns tinyblob
+return f1;
+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 'tinyblob(f1 tinyblob) returns tinyblob
+return f1' at line 1
+CREATE FUNCTION blob(f1 blob) returns blob
+return f1;
+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 'blob(f1 blob) returns blob
+return f1' at line 1
+CREATE FUNCTION mediumblob(f1 mediumblob) returns mediumblob
+return f1;
+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 'mediumblob(f1 mediumblob) returns mediumblob
+return f1' at line 1
+CREATE FUNCTION longblob(f1 longblob) returns longblob
+return f1;
+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 'longblob(f1 longblob) returns longblob
+return f1' at line 1
+CREATE FUNCTION tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+return f1;
+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 'tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+return f1' at line 1
+CREATE FUNCTION blob not null(f1 blob not null) returns blob not null
+return f1;
+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 'blob not null(f1 blob not null) returns blob not null
+return f1' at line 1
+CREATE FUNCTION mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+return f1;
+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 'mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+return f' at line 1
+CREATE FUNCTION longblob not null(f1 longblob not null) returns longblob not null
+return f1;
+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 'longblob not null(f1 longblob not null) returns longblob not null
+return f1' at line 1
+CREATE FUNCTION binary(f1 binary) returns binary
+return f1;
+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 'binary(f1 binary) returns binary
+return f1' at line 1
+CREATE FUNCTION binary not null(f1 binary not null) returns binary not null
+return f1;
+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 'binary not null(f1 binary not null) returns binary not null
+return f1' at line 1
+CREATE FUNCTION tinyint(f1 tinyint) returns tinyint
+return f1;
+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 'tinyint(f1 tinyint) returns tinyint
+return f1' at line 1
+CREATE FUNCTION tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+return f1;
+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 'tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+return f1' at line 1
+CREATE FUNCTION tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+return f1;
+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 'tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+return f1' at line 1
+CREATE FUNCTION tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+return f1;
+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 'tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned' at line 1
+CREATE FUNCTION smallint(f1 smallint) returns smallint
+return f1;
+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 'smallint(f1 smallint) returns smallint
+return f1' at line 1
+CREATE FUNCTION smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+return f1;
+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 'smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+return f1' at line 1
+CREATE FUNCTION smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+return f1;
+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 'smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+return f1' at line 1
+CREATE FUNCTION smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+return f1;
+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 'smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsig' at line 1
+CREATE FUNCTION mediumint(f1 mediumint) returns mediumint
+return f1;
+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 'mediumint(f1 mediumint) returns mediumint
+return f1' at line 1
+CREATE FUNCTION mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+return f1;
+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 'mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+return f1' at line 1
+CREATE FUNCTION mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+return f1;
+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 'mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+return f1' at line 1
+CREATE FUNCTION mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+return f1;
+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 'mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint un' at line 1
+CREATE FUNCTION int(f1 int) returns int
+return f1;
+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 'int(f1 int) returns int
+return f1' at line 1
+CREATE FUNCTION int unsigned(f1 int unsigned) returns int unsigned
+return f1;
+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 'int unsigned(f1 int unsigned) returns int unsigned
+return f1' at line 1
+CREATE FUNCTION int zerofill(f1 int zerofill) returns int zerofill
+return f1;
+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 'int zerofill(f1 int zerofill) returns int zerofill
+return f1' at line 1
+CREATE FUNCTION int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+return f1;
+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 'int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+re' at line 1
+CREATE FUNCTION bigint(f1 bigint) returns bigint
+return f1;
+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 'bigint(f1 bigint) returns bigint
+return f1' at line 1
+CREATE FUNCTION bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+return f1;
+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 'bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+return f1' at line 1
+CREATE FUNCTION bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+return f1;
+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 'bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+return f1' at line 1
+CREATE FUNCTION bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+return f1;
+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 'bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned ze' at line 1
+CREATE FUNCTION decimal(f1 decimal) returns decimal
+return f1;
+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 'decimal(f1 decimal) returns decimal
+return f1' at line 1
+CREATE FUNCTION decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+return f1;
+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 'decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+return f1' at line 1
+CREATE FUNCTION decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+return f1;
+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 'decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+return f1' at line 1
+CREATE FUNCTION decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+return f1;
+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 'decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned' at line 1
+CREATE FUNCTION numeric(f1 numeric) returns numeric
+return f1;
+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 'numeric(f1 numeric) returns numeric
+return f1' at line 1
+CREATE FUNCTION numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+return f1;
+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 'numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+return f1' at line 1
+CREATE FUNCTION numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+return f1;
+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 'numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+return f1' at line 1
+CREATE FUNCTION numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+return f1;
+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 'numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned' at line 1
+CREATE FUNCTION real(f1 real) returns real
+return f1;
+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 'real(f1 real) returns real
+return f1' at line 1
+CREATE FUNCTION real unsigned(f1 real unsigned) returns real unsigned
+return f1;
+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 'real unsigned(f1 real unsigned) returns real unsigned
+return f1' at line 1
+CREATE FUNCTION real zerofill(f1 real zerofill) returns real zerofill
+return f1;
+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 'real zerofill(f1 real zerofill) returns real zerofill
+return f1' at line 1
+CREATE FUNCTION real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill
+return f1;
+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 'real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill' at line 1
+CREATE FUNCTION float(f1 float) returns float
+return f1;
+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 'float(f1 float) returns float
+return f1' at line 1
+CREATE FUNCTION float unsigned(f1 float unsigned) returns float unsigned
+return f1;
+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 'float unsigned(f1 float unsigned) returns float unsigned
+return f1' at line 1
+CREATE FUNCTION float zerofill(f1 float zerofill) returns float zerofill
+return f1;
+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 'float zerofill(f1 float zerofill) returns float zerofill
+return f1' at line 1
+CREATE FUNCTION float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerofill
+return f1;
+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 'float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerof' at line 1
+CREATE FUNCTION date(f1 date) returns date
+return f1;
+DROP FUNCTION date;
+CREATE FUNCTION time(f1 time) returns time
+return f1;
+DROP FUNCTION time;
+CREATE FUNCTION datetime(f1 datetime) returns datetime
+return f1;
+DROP FUNCTION datetime;
+CREATE FUNCTION timestamp(f1 timestamp) returns timestamp
+return f1;
+DROP FUNCTION timestamp;
+CREATE FUNCTION year(f1 year) returns year
+return f1;
+DROP FUNCTION year;
+CREATE FUNCTION year(3)(f1 year(3)) returns year(3)
+return f1;
+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 '3)(f1 year(3)) returns year(3)
+return f1' at line 1
+CREATE FUNCTION year(4)(f1 year(4)) returns year(4)
+return f1;
+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 '4)(f1 year(4)) returns year(4)
+return f1' at line 1
+CREATE FUNCTION enum("1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+return f1;
+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 '"1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+retu' at line 1
+CREATE FUNCTION set("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+return f1;
+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("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+return f' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char f1 ) returns char
+return f1;
+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 'char f1 ) returns char
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char binary f1 ) returns char binary
+return f1;
+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 'char binary f1 ) returns char binary
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char ascii f1 ) returns char ascii
+return f1;
+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 'char ascii f1 ) returns char ascii
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char not null f1 ) returns char not null
+return f1;
+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 'char not null f1 ) returns char not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char binary not null f1 ) returns char binary not null
+return f1;
+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 'char binary not null f1 ) returns char binary not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char ascii not null f1 ) returns char ascii not null
+return f1;
+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 'char ascii not null f1 ) returns char ascii not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinytext f1 ) returns tinytext
+return f1;
+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 'tinytext f1 ) returns tinytext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(text f1 ) returns text
+return f1;
+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 'f1 ) returns text
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumtext f1 ) returns mediumtext
+return f1;
+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 'mediumtext f1 ) returns mediumtext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longtext f1 ) returns longtext
+return f1;
+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 'longtext f1 ) returns longtext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinytext not null f1 ) returns tinytext not null
+return f1;
+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 'tinytext not null f1 ) returns tinytext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(text not null f1 ) returns text not null
+return f1;
+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 'not null f1 ) returns text not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumtext not null f1 ) returns mediumtext not null
+return f1;
+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 'mediumtext not null f1 ) returns mediumtext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longtext not null f1 ) returns longtext not null
+return f1;
+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 'longtext not null f1 ) returns longtext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyblob f1 ) returns tinyblob
+return f1;
+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 'tinyblob f1 ) returns tinyblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(blob f1 ) returns blob
+return f1;
+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 'blob f1 ) returns blob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumblob f1 ) returns mediumblob
+return f1;
+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 'mediumblob f1 ) returns mediumblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longblob f1 ) returns longblob
+return f1;
+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 'longblob f1 ) returns longblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyblob not null f1 ) returns tinyblob not null
+return f1;
+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 'tinyblob not null f1 ) returns tinyblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(blob not null f1 ) returns blob not null
+return f1;
+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 'blob not null f1 ) returns blob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumblob not null f1 ) returns mediumblob not null
+return f1;
+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 'mediumblob not null f1 ) returns mediumblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longblob not null f1 ) returns longblob not null
+return f1;
+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 'longblob not null f1 ) returns longblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(binary f1 ) returns binary
+return f1;
+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 'binary f1 ) returns binary
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(binary not null f1 ) returns binary not null
+return f1;
+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 'binary not null f1 ) returns binary not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint f1 ) returns tinyint
+return f1;
+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 'tinyint f1 ) returns tinyint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint unsigned f1 ) returns tinyint unsigned
+return f1;
+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 'tinyint unsigned f1 ) returns tinyint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint zerofill f1 ) returns tinyint zerofill
+return f1;
+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 'tinyint zerofill f1 ) returns tinyint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+return f1;
+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 'tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint f1 ) returns smallint
+return f1;
+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 'smallint f1 ) returns smallint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint unsigned f1 ) returns smallint unsigned
+return f1;
+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 'smallint unsigned f1 ) returns smallint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint zerofill f1 ) returns smallint zerofill
+return f1;
+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 'smallint zerofill f1 ) returns smallint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+return f1;
+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 'smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint f1 ) returns mediumint
+return f1;
+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 'mediumint f1 ) returns mediumint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint unsigned f1 ) returns mediumint unsigned
+return f1;
+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 'mediumint unsigned f1 ) returns mediumint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint zerofill f1 ) returns mediumint zerofill
+return f1;
+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 'mediumint zerofill f1 ) returns mediumint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+return f1;
+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 'mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int f1 ) returns int
+return f1;
+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 'int f1 ) returns int
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int unsigned f1 ) returns int unsigned
+return f1;
+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 'int unsigned f1 ) returns int unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int zerofill f1 ) returns int zerofill
+return f1;
+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 'int zerofill f1 ) returns int zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int unsigned zerofill f1 ) returns int unsigned zerofill
+return f1;
+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 'int unsigned zerofill f1 ) returns int unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint f1 ) returns bigint
+return f1;
+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 'bigint f1 ) returns bigint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint unsigned f1 ) returns bigint unsigned
+return f1;
+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 'bigint unsigned f1 ) returns bigint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint zerofill f1 ) returns bigint zerofill
+return f1;
+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 'bigint zerofill f1 ) returns bigint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+return f1;
+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 'bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal f1 ) returns decimal
+return f1;
+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 'decimal f1 ) returns decimal
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal unsigned f1 ) returns decimal unsigned
+return f1;
+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 'decimal unsigned f1 ) returns decimal unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal zerofill f1 ) returns decimal zerofill
+return f1;
+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 'decimal zerofill f1 ) returns decimal zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+return f1;
+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 'decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric f1 ) returns numeric
+return f1;
+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 'numeric f1 ) returns numeric
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric unsigned f1 ) returns numeric unsigned
+return f1;
+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 'numeric unsigned f1 ) returns numeric unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric zerofill f1 ) returns numeric zerofill
+return f1;
+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 'numeric zerofill f1 ) returns numeric zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+return f1;
+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 'numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real f1 ) returns real
+return f1;
+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 'real f1 ) returns real
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real unsigned f1 ) returns real unsigned
+return f1;
+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 'real unsigned f1 ) returns real unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real zerofill f1 ) returns real zerofill
+return f1;
+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 'real zerofill f1 ) returns real zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real unsigned zerofill f1 ) returns real unsigned zerofill
+return f1;
+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 'real unsigned zerofill f1 ) returns real unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float f1 ) returns float
+return f1;
+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 'float f1 ) returns float
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float unsigned f1 ) returns float unsigned
+return f1;
+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 'float unsigned f1 ) returns float unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float zerofill f1 ) returns float zerofill
+return f1;
+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 'float zerofill f1 ) returns float zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float unsigned zerofill f1 ) returns float unsigned zerofill
+return f1;
+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 'float unsigned zerofill f1 ) returns float unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(date f1 ) returns date
+return f1;
+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 'f1 ) returns date
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(time f1 ) returns time
+return f1;
+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 'f1 ) returns time
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(datetime f1 ) returns datetime
+return f1;
+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 'f1 ) returns datetime
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(timestamp f1 ) returns timestamp
+return f1;
+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 'f1 ) returns timestamp
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year f1 ) returns year
+return f1;
+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 'f1 ) returns year
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year(3) f1 ) returns year(3)
+return f1;
+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 '(3) f1 ) returns year(3)
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year(4) f1 ) returns year(4)
+return f1;
+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 '(4) f1 ) returns year(4)
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(enum("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+return f1;
+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 '("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(set("1set", "2set") f1 ) returns set("1set", "2set")
+return f1;
+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("1set", "2set") f1 ) returns set("1set", "2set")
+return f1' at line 1
+
+Testcase 4.1.16:
+----------------
+Ensure that a reference to a non-existent stored procedure is rejected with an
+appropriate error message
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp16;
+Warnings:
+Note 1305 PROCEDURE sp16 does not exist
+CALL sp16( 'xyz' );
+ERROR 42000: PROCEDURE db_storedproc.sp16 does not exist
+CREATE DATABASE db1;
+USE db1;
+CREATE PROCEDURE sp16()
+BEGIN
+set @var1 = 1;
+SELECT @var1;
+END//
+CALL db_storedproc.sp16();
+ERROR 42000: PROCEDURE db_storedproc.sp16 does not exist
+USE db_storedproc;
+DROP PROCEDURE db1.sp16;
+DROP DATABASE db1;
+
+Testcase 4.1.17:
+----------------
+Ensure that it is possible to drop, create and CALL/execute a procedure and a
+function with the same name, even in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 ()
+BEGIN
+declare x enum( 'db1', 'test' ) default 'test';
+SELECT x;
+END//
+CALL sp1();
+x
+test
+CREATE FUNCTION sp1 (y char) returns char return y;
+SELECT sp1( 'a' );
+sp1( 'a' )
+a
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+USE db1;
+CALL db_storedproc.sp1( );
+x
+test
+SELECT db_storedproc.sp1( 'a' );
+db_storedproc.sp1( 'a' )
+a
+DROP FUNCTION db_storedproc.sp1;
+USE db_storedproc;
+SELECT sp1('a');
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+DROP PROCEDURE sp1;
+CALL sp1();
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+SELECT sp1('a');
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+USE db_storedproc;
+DROP DATABASE db1;
+
+Testcase 4.1.18:
+----------------
+Ensure that it is possible to alter a procedure and
+a function with the same name, in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+set @x=null;
+set @y=null;
+CREATE PROCEDURE sp1()
+BEGIN
+set @x= 1;
+SELECT @x;
+END//
+CREATE FUNCTION sp1 () returns int return 2.2;
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+USE db1;
+alter procedure db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION DEFINER
+sp1 PROCEDURE INVOKER
+alter function db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION INVOKER
+sp1 PROCEDURE INVOKER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+USE db_storedproc;
+alter procedure sp1 sql security definer;
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+alter function sp1 sql security definer;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION DEFINER
+sp1 PROCEDURE DEFINER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+DROP FUNCTION db_storedproc.sp1;
+
+Testcase 4.1.19:
+----------------
+verify altering procedure and function with the same name, does not affect
+properties of a procedure and a function with the same name in the different
+database.
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc_3122;
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+DROP PROCEDURE IF EXISTS db_storedproc_3122.sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS db_storedproc_3122.sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+set @x= 1;
+SELECT @x;
+END//
+CREATE FUNCTION db_storedproc_3122.sp1() returns double return 2.2;
+CALL sp1();
+@x
+1
+SELECT db_storedproc_3122.sp1();
+db_storedproc_3122.sp1()
+2.2
+USE db_storedproc_3122;
+CREATE PROCEDURE sp1 ()
+BEGIN
+set @x= 3;
+SELECT @x;
+END//
+CREATE FUNCTION db_storedproc.sp1() returns double return 4.4;
+CALL sp1();
+@x
+3
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+4.4
+alter procedure db_storedproc_3122.sp1 sql security invoker;
+alter function sp1 sql security invoker;
+SELECT db, name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+db name type security_type
+db_storedproc sp1 FUNCTION DEFINER
+db_storedproc sp1 PROCEDURE DEFINER
+db_storedproc_3122 sp1 FUNCTION INVOKER
+db_storedproc_3122 sp1 PROCEDURE INVOKER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+4.4
+CALL db_storedproc_3122.sp1();
+@x
+3
+SELECT db_storedproc_3122.sp1();
+db_storedproc_3122.sp1()
+2.2
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.20:
+----------------
+Ensure that it is possible to alter the comment of a procedure
+and a function with the same name, even in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+CREATE PROCEDURE sp1 () set @x= 1;
+CREATE FUNCTION sp1 () returns int return 2;
+DROP DATABASE IF EXISTS db_storedproc_3122;
+Warnings:
+Note 1008 Can't drop database 'db_storedproc_3122'; database doesn't exist
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc_3122;
+CREATE PROCEDURE sp1 () set @x= 3;
+CREATE FUNCTION sp1 () returns int return 4;
+alter procedure sp1 sql security invoker comment 'this is a procedure';
+alter function sp1 sql security invoker comment 'this is a function';
+alter procedure sp1 sql security definer;
+alter function sp1 sql security definer;
+show CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+sp1 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
+ COMMENT 'this is a procedure'
+set @x= 3
+show CREATE FUNCTION sp1;
+Function sql_mode Create Function
+sp1 CREATE DEFINER=`root`@`localhost` FUNCTION `sp1`() RETURNS int(11)
+ COMMENT 'this is a function'
+return 4
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.21:
+----------------
+Ensure that it is not possible to create two procedures with same name
+in same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 () set @x=1;
+CREATE PROCEDURE sp1 () set @x=2;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL sp1();
+SELECT @x;
+@x
+1
+USE db1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=3;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL db_storedproc.sp1();
+SELECT @x;
+@x
+1
+DROP PROCEDURE IF EXISTS db_storedproc.sp1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=2;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL db_storedproc.sp1();
+SELECT @x;
+@x
+1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.22:
+----------------
+Ensure that it is not possible to create two functions with same name in the
+same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1 () returns int return 1;
+CREATE FUNCTION fn1 () returns int return 2;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT fn1();
+fn1()
+1
+USE db1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 3;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT db_storedproc.fn1();
+db_storedproc.fn1()
+1
+DROP FUNCTION IF EXISTS db_storedproc.fn1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 2;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT db_storedproc.fn1();
+db_storedproc.fn1()
+1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP FUNCTION db_storedproc.fn1;
+
+Testcase 4.1.23:
+----------------
+Ensure that it is possible to create two or more procedures with the same name,
+providing each resides in different databases
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 () set @x= 1;
+DROP DATABASE IF EXISTS test3124;
+Warnings:
+Note 1008 Can't drop database 'test3124'; database doesn't exist
+CREATE DATABASE test3124;
+USE test3124;
+CREATE PROCEDURE sp1 () set @y= 2;
+CALL sp1();
+SELECT @x, @y;
+@x @y
+NULL 2
+USE db_storedproc;
+CALL sp1();
+SELECT @x, @y;
+@x @y
+1 2
+USE db_storedproc;
+DROP DATABASE test3124;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.24:
+----------------
+Ensure that it is possible to create two or more functions with the same name,
+providing each resides in different databases.
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP FUNCTION IF EXISTS f1;
+Warnings:
+Note 1305 FUNCTION f1 does not exist
+CREATE FUNCTION f1 () returns int return 1;
+DROP DATABASE IF EXISTS test3125;
+Warnings:
+Note 1008 Can't drop database 'test3125'; database doesn't exist
+CREATE DATABASE test3125;
+USE test3125;
+CREATE FUNCTION f1 () returns int return 2;
+SELECT f1();
+f1()
+2
+USE db_storedproc;
+SELECT f1();
+f1()
+1
+USE db_storedproc;
+DROP DATABASE test3125;
+DROP FUNCTION db_storedproc.f1;
+
+Testcase 4.1.25:
+----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected. (invalid func name)
+--------------------------------------------------------------------------------
+CREATE FUNCTION !_fn1( f1 char(20) ) returns int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 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 '!_fn1( f1 char(20) ) returns int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 1;' at line 1
+CREATE FUNCTION fn1( f1 char(20) ) return int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 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 'return int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 1;
+END' at line 1
+CREATE FUNCTION fn1() returns int
+return 'a';
+CREATE FUNCTION procedure() returns int
+return 1;
+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 'procedure() returns int
+return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int lang sql return 1;
+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 'sql return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int deterministic( return 1);
+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 'return 1)' at line 1
+CREATE FUNCTION fn1(a char) returns int non deterministic return 1;
+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 'deterministic return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int not deterministic comment 'abc' language sql sql security refiner return 1;
+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 'refiner return 1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+
+Testcase 4.1.1:
+---------------
+Ensure that all clauses that should be supported are supported.
+CREATE PROCEDURE
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @count = 0;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1(cnt int(20))
+BEGIN
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+END//
+CALL sp1( 10 );
+SELECT @count;
+@count
+10
+DROP PROCEDURE sp1;
+
+Testcase 4.2.2:
+BEGINend
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+END//
+CALL sp1( 10 );
+@count
+10
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+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 'SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+END' at line 2
+CALL sp1( 10 );
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+END
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+BEGIN//
+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 'END
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+BEGIN' at line 2
+CALL sp1( 10 );
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+SELECT count(*) into cnt from t2;
+BEGIN
+BEGIN END;
+BEGIN
+END;
+set @count = cnt;
+SELECT @count;
+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 '' at line 10
+
+Testcase 4.2.4:
+---------------
+Ensure that every BEGIN statement is coupled with a terminating END statement.
+(BEGIN with no END)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END//
+
+Testcase ....:
+--------------
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+add:BEGIN
+SELECT @x;
+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 'add:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+all:BEGIN
+SELECT @x;
+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 'all:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+alter:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+analyze:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+and:BEGIN
+SELECT @x;
+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 'and:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+as:BEGIN
+SELECT @x;
+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 'as:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+asc:BEGIN
+SELECT @x;
+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 'asc:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+asensitive:BEGIN
+SELECT @x;
+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 'asensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+before:BEGIN
+SELECT @x;
+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 'before:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+between:BEGIN
+SELECT @x;
+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 'between:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+bigint:BEGIN
+SELECT @x;
+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 'bigint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+binary:BEGIN
+SELECT @x;
+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 'binary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+blob:BEGIN
+SELECT @x;
+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 'blob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+both:BEGIN
+SELECT @x;
+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 'both:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+by:BEGIN
+SELECT @x;
+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 'by:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+CALL:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cascade:BEGIN
+SELECT @x;
+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 'cascade:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+case:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+change:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+char:BEGIN
+SELECT @x;
+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 'char:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+character:BEGIN
+SELECT @x;
+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 'character:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+check:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+collate:BEGIN
+SELECT @x;
+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 'collate:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+column:BEGIN
+SELECT @x;
+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 'column:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+columns:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+condition:BEGIN
+SELECT @x;
+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 'condition:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+connection:BEGIN
+SELECT @x;
+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 'connection:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+constraint:BEGIN
+SELECT @x;
+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 'constraint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+continue:BEGIN
+SELECT @x;
+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 'continue:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+convert:BEGIN
+SELECT @x;
+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 'convert:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+create:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cross:BEGIN
+SELECT @x;
+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 'cross:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_date:BEGIN
+SELECT @x;
+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 'current_date:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_time:BEGIN
+SELECT @x;
+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 'current_time:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_timestamp:BEGIN
+SELECT @x;
+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 'current_timestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_user:BEGIN
+SELECT @x;
+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 'current_user:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cursor:BEGIN
+SELECT @x;
+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 'cursor:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+database:BEGIN
+SELECT @x;
+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 'database:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+databases:BEGIN
+SELECT @x;
+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 'databases:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_hour:BEGIN
+SELECT @x;
+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 'day_hour:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_microsecond:BEGIN
+SELECT @x;
+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 'day_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_minute:BEGIN
+SELECT @x;
+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 'day_minute:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_second:BEGIN
+SELECT @x;
+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 'day_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+dec:BEGIN
+SELECT @x;
+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 'dec:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+decimal:BEGIN
+SELECT @x;
+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 'decimal:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+declare:BEGIN
+SELECT @x;
+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 'declare:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+default:BEGIN
+SELECT @x;
+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 'default:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+delayed:BEGIN
+SELECT @x;
+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 'delayed:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+delete:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+desc:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+describe:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+deterministic:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+distinct:BEGIN
+SELECT @x;
+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 'distinct:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+distinctrow:BEGIN
+SELECT @x;
+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 'distinctrow:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+div:BEGIN
+SELECT @x;
+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 'div:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+double:BEGIN
+SELECT @x;
+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 'double:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+drop:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+dual:BEGIN
+SELECT @x;
+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 'dual:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+each:BEGIN
+SELECT @x;
+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 'each:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+else:BEGIN
+SELECT @x;
+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 'else:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+elseif:BEGIN
+SELECT @x;
+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 'elseif:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+enclosed:BEGIN
+SELECT @x;
+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 'enclosed:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+escaped:BEGIN
+SELECT @x;
+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 'escaped:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+exists:BEGIN
+SELECT @x;
+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 'exists:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+exit:BEGIN
+SELECT @x;
+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 'exit:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+explain:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+false:BEGIN
+SELECT @x;
+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 'false:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fetch:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fields:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+float:BEGIN
+SELECT @x;
+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 'float:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+for:BEGIN
+SELECT @x;
+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 'for:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+force:BEGIN
+SELECT @x;
+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 'force:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+foreign:BEGIN
+SELECT @x;
+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 'foreign:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+found:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+from:BEGIN
+SELECT @x;
+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 'from:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fulltext:BEGIN
+SELECT @x;
+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 'fulltext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+goto:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+grant:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+group:BEGIN
+SELECT @x;
+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 'group:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+having:BEGIN
+SELECT @x;
+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 'having:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+high_priority:BEGIN
+SELECT @x;
+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 'high_priority:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_microsecond:BEGIN
+SELECT @x;
+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 'hour_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_minute:BEGIN
+SELECT @x;
+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 'hour_minute:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_second:BEGIN
+SELECT @x;
+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 'hour_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+if:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+ignore:BEGIN
+SELECT @x;
+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 'ignore:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+in:BEGIN
+SELECT @x;
+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 'in:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+index:BEGIN
+SELECT @x;
+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 'index:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+infile:BEGIN
+SELECT @x;
+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 'infile:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+inner:BEGIN
+SELECT @x;
+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 'inner:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+inout:BEGIN
+SELECT @x;
+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 'inout:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+insensitive:BEGIN
+SELECT @x;
+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 'insensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+insert:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+int:BEGIN
+SELECT @x;
+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 'int:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+integer:BEGIN
+SELECT @x;
+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 'integer:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+interval:BEGIN
+SELECT @x;
+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 'interval:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+into:BEGIN
+SELECT @x;
+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 'into:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+is:BEGIN
+SELECT @x;
+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 'is:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+iterate:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+join:BEGIN
+SELECT @x;
+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 'join:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+key:BEGIN
+SELECT @x;
+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 'key:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+keys:BEGIN
+SELECT @x;
+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 'keys:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+kill:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+leading:BEGIN
+SELECT @x;
+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 'leading:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+leave:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+left:BEGIN
+SELECT @x;
+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 'left:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+like:BEGIN
+SELECT @x;
+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 'like:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+limit:BEGIN
+SELECT @x;
+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 'limit:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+lines:BEGIN
+SELECT @x;
+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 'lines:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+load:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+localtime:BEGIN
+SELECT @x;
+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 'localtime:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+localtimestamp:BEGIN
+SELECT @x;
+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 'localtimestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+lock:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+long:BEGIN
+SELECT @x;
+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 'long:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+longblob:BEGIN
+SELECT @x;
+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 'longblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+longtext:BEGIN
+SELECT @x;
+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 'longtext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+loop:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+low_priority:BEGIN
+SELECT @x;
+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 'low_priority:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+match:BEGIN
+SELECT @x;
+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 'match:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumblob:BEGIN
+SELECT @x;
+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 'mediumblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumint:BEGIN
+SELECT @x;
+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 'mediumint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumtext:BEGIN
+SELECT @x;
+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 'mediumtext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+middleint:BEGIN
+SELECT @x;
+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 'middleint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+minute_microsecond:BEGIN
+SELECT @x;
+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 'minute_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+minute_second:BEGIN
+SELECT @x;
+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 'minute_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mod:BEGIN
+SELECT @x;
+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 'mod:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+modifies:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+natural:BEGIN
+SELECT @x;
+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 'natural:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+not:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+no_write_to_binlog:BEGIN
+SELECT @x;
+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 'no_write_to_binlog:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+null:BEGIN
+SELECT @x;
+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 'null:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+numeric:BEGIN
+SELECT @x;
+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 'numeric:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+on:BEGIN
+SELECT @x;
+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 'on:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+optimize:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+option:BEGIN
+SELECT @x;
+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 'option:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+optionally:BEGIN
+SELECT @x;
+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 'optionally:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+or:BEGIN
+SELECT @x;
+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 'or:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+order:BEGIN
+SELECT @x;
+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 'order:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+out:BEGIN
+SELECT @x;
+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 'out:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+outer:BEGIN
+SELECT @x;
+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 'outer:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+outfile:BEGIN
+SELECT @x;
+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 'outfile:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+precision:BEGIN
+SELECT @x;
+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 'precision:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+primary:BEGIN
+SELECT @x;
+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 'primary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+privileges:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+procedure:BEGIN
+SELECT @x;
+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 'procedure:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+purge:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+read:BEGIN
+SELECT @x;
+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 'read:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+reads:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+real:BEGIN
+SELECT @x;
+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 'real:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+references:BEGIN
+SELECT @x;
+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 'references:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+regexp:BEGIN
+SELECT @x;
+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 'regexp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+rename:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+repeat:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+replace:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+require:BEGIN
+SELECT @x;
+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 'require:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+restrict:BEGIN
+SELECT @x;
+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 'restrict:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+return:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+revoke:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+right:BEGIN
+SELECT @x;
+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 'right:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+rlike:BEGIN
+SELECT @x;
+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 'rlike:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+schema:BEGIN
+SELECT @x;
+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 'schema:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+schemas:BEGIN
+SELECT @x;
+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 'schemas:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+second_microsecond:BEGIN
+SELECT @x;
+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 'second_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+select:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sensitive:BEGIN
+SELECT @x;
+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 'sensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+separator:BEGIN
+SELECT @x;
+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 'separator:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+set:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+show:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+smallint:BEGIN
+SELECT @x;
+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 'smallint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+soname:BEGIN
+SELECT @x;
+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 'soname:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+spatial:BEGIN
+SELECT @x;
+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 'spatial:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+specific:BEGIN
+SELECT @x;
+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 'specific:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlexception:BEGIN
+SELECT @x;
+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 'sqlexception:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlstate:BEGIN
+SELECT @x;
+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 'sqlstate:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlwarning:BEGIN
+SELECT @x;
+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 'sqlwarning:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_big_result:BEGIN
+SELECT @x;
+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 'sql_big_result:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_calc_found_rows:BEGIN
+SELECT @x;
+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 'sql_calc_found_rows:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_small_result:BEGIN
+SELECT @x;
+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 'sql_small_result:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+ssl:BEGIN
+SELECT @x;
+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 'ssl:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+starting:BEGIN
+SELECT @x;
+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 'starting:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+straight_join:BEGIN
+SELECT @x;
+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 'straight_join:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+table:BEGIN
+SELECT @x;
+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 'table:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tables:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+terminated:BEGIN
+SELECT @x;
+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 'terminated:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+then:BEGIN
+SELECT @x;
+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 'then:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinyblob:BEGIN
+SELECT @x;
+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 'tinyblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinyint:BEGIN
+SELECT @x;
+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 'tinyint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinytext:BEGIN
+SELECT @x;
+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 'tinytext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+to:BEGIN
+SELECT @x;
+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 'to:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+trailing:BEGIN
+SELECT @x;
+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 'trailing:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+trigger:BEGIN
+SELECT @x;
+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 'trigger:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+true:BEGIN
+SELECT @x;
+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 'true:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+undo:BEGIN
+SELECT @x;
+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 'undo:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+union:BEGIN
+SELECT @x;
+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 'union:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unique:BEGIN
+SELECT @x;
+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 'unique:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unlock:BEGIN
+SELECT @x;
+END//
+ERROR 0A000: UNLOCK is not allowed in stored procedures
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unsigned:BEGIN
+SELECT @x;
+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 'unsigned:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+update:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+usage:BEGIN
+SELECT @x;
+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 'usage:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+use:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+using:BEGIN
+SELECT @x;
+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 'using:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_date:BEGIN
+SELECT @x;
+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 'utc_date:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_time:BEGIN
+SELECT @x;
+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 'utc_time:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_timestamp:BEGIN
+SELECT @x;
+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 'utc_timestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+values:BEGIN
+SELECT @x;
+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 'values:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varbinary:BEGIN
+SELECT @x;
+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 'varbinary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varchar:BEGIN
+SELECT @x;
+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 'varchar:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varcharacter:BEGIN
+SELECT @x;
+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 'varcharacter:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varying:BEGIN
+SELECT @x;
+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 'varying:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+when:BEGIN
+SELECT @x;
+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 'when:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+where:BEGIN
+SELECT @x;
+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 'where:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+while:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+with:BEGIN
+SELECT @x;
+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 'with:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+write:BEGIN
+SELECT @x;
+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 'write:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+xor:BEGIN
+SELECT @x;
+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 'xor:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+year_month:BEGIN
+SELECT @x;
+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 'year_month:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+zerofill:BEGIN
+SELECT @x;
+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 'zerofill:BEGIN
+SELECT @x;
+END' at line 2
+
+Testcase 4.2.6:
+---------------
+Ensure that the labels for multiple BEGIN an END work properly
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char;
+declare y char;
+set x = '1';
+set y = '2';
+label1: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END label1;
+set @v1 = x;
+set @v2 = y;
+SELECT @v1, @v2;
+END begin_label//
+CALL sp1();
+@v1 @v2
+1 2
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.7:
+---------------
+Ensure that the labels enclosing each BEGIN/END compound statement must match.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin1_label: BEGIN
+declare x char;
+declare y char;
+SELECT lf1, f1 into x, y from t2 limit 1;
+begin2_label: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin2_changed;
+END begin1_changed//
+ERROR 42000: End-label begin2_changed without match
+
+Testcase 4.2.8:
+---------------
+Ensure that it is possible to put a beginning label at the start of a
+BEGIN/END compound statement without also requiring an ending label
+at the END of the same statement.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.9:
+---------------
+Ensure that it is not possible to put an ending label at the END of
+a BEGIN/END compound statement without also requiring a matching
+beginning label at the start of the same statement
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+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 'begin_label' at line 6
+
+Testcase 4.2.10:
+----------------
+Ensure that every beginning label must END with a colon(:)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+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 'BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+E' at line 2
+
+Testcase 4.2.11:
+----------------
+Ensure that every beginning label with the same scope must be unique. (same label names)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_samelabel;
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_samelabel;
+END begin_samelabel//
+ERROR 42000: Redefining label begin_samelabel
+
+Testcase 4.2.12:
+----------------
+Ensure that the variables, cursors, conditions, and handlers declared for
+a stored procedure (with the declare statement) may only be properly defined
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: DECIMAL(255,255) is not rejected
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x char default 'a';
+declare y integer default 1;
+declare z float default 1.1;
+declare a enum("value1", "value2") default 'value1';
+declare b decimal(255, 255) default 1.2e+12;
+declare c mediumtext default 'mediumtext';
+declare d datetime default '2005-02-02 12:12:12';
+declare e char default 'b';
+declare cur1 cursor for SELECT f1 from db_storedproc.t2;
+declare continue handler for sqlstate '02000' set @x2 = 1;
+open cur1;
+fetch cur1 into e;
+SELECT x, y, z, a, b, c, d, e;
+close cur1;
+END//
+ERROR 42000: Too big scale 255 specified for column ''. Maximum is 30.
+CALL sp6();
+ERROR 42000: PROCEDURE db_storedproc.sp6 does not exist
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 char default '0';
+SELECT x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567;
+END//
+CALL sp6();
+x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
+0
+DROP PROCEDURE sp6;
+
+Testcase 4.2.13:
+----------------
+Ensure that the variables declared for a stored procedure (with the declare
+statement) may only be defined in the correct order.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x default '0' char;
+SELECT x;
+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 'default '0' char;
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x char, integer default '0';
+SELECT x;
+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 'char, integer default '0';
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x1, x2 char, integer default '0', 1;
+SELECT x;
+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 'char, integer default '0', 1;
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 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 'char x;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x, y1 integer default 0;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 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 'char x, y1 integer default 0;
+declare char y;
+SELECT f1, f2 into x, y from t2 li' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x default 'a' char;
+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 'default 'a' char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition notable for sqlstate '42s22';
+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 'condition notable for sqlstate '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for notable sqlstate '42s22';
+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 'condition for notable sqlstate '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for sqlstate notable '42s22';
+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 'condition for sqlstate notable '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for sqlstate '42s22' notable;
+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 'condition for sqlstate '42s22' notable;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor cur1 for SELECT f1 from db_storedproc.t2;
+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 'cursor cur1 for SELECT f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor for cur1 SELECT f1 from db_storedproc.t2;
+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 'cursor for cur1 SELECT f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor for SELECT cur1 f1 from db_storedproc.t2;
+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 'cursor for SELECT cur1 f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler continue for sqlstate '02000' set @x2 = 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 'continue for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler exit for sqlstate '02000' set @x2 = 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 'exit for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler undo for sqlstate '02000' set @x2 = 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 'undo for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x;
+SELECT f1 into x from tb1 limit 9998, 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 'char x;
+SELECT f1 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char binary x;
+SELECT f2 into x from tb1 limit 9998, 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 'char binary x;
+SELECT f2 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char ascii x;
+SELECT f3 into x from tb1 limit 9998, 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 'char ascii x;
+SELECT f3 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext x;
+SELECT f4 into x from tb1 limit 9998, 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 'tinytext x;
+SELECT f4 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x;
+SELECT f5 text into x from tb1 limit 9998, 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 ';
+SELECT f5 text into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext x;
+SELECT f6 into x from tb1 limit 9998, 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 'mediumtext x;
+SELECT f6 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext x;
+SELECT f7 into x from tb1 limit 9998, 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 'longtext x;
+SELECT f7 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob x;
+SELECT f8 into x from tb1 limit 9998, 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 'tinyblob x;
+SELECT f8 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob x;
+SELECT f9 into x from tb1 limit 9998, 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 'blob x;
+SELECT f9 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob x;
+SELECT f10 into x from tb1 limit 9998, 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 'mediumblob x;
+SELECT f10 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob x;
+SELECT f11 into x from tb1 limit 9998, 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 'longblob x;
+SELECT f11 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary x;
+SELECT f12 into x from tb1 limit 9998, 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 'binary x;
+SELECT f12 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint x;
+SELECT f13 into x from tb1 limit 9998, 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 'tinyint x;
+SELECT f13 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint unsigned x;
+SELECT f14 into x from tb1 limit 9998, 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 'tinyint unsigned x;
+SELECT f14 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint zerofill x;
+SELECT f15 into x from tb1 limit 9998, 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 'tinyint zerofill x;
+SELECT f15 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint unsigned zerofill x;
+SELECT f16 into x from tb1 limit 9998, 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 'tinyint unsigned zerofill x;
+SELECT f16 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint x;
+SELECT f17 into x from tb1 limit 9998, 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 'smallint x;
+SELECT f17 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint unsigned x;
+SELECT f18 into x from tb1 limit 9998, 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 'smallint unsigned x;
+SELECT f18 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint zerofill x;
+SELECT f19 into x from tb1 limit 9998, 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 'smallint zerofill x;
+SELECT f19 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint unsigned zerofill x;
+SELECT f20 into x from tb1 limit 9998, 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 'smallint unsigned zerofill x;
+SELECT f20 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint x;
+SELECT f21 into x from tb1 limit 9998, 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 'mediumint x;
+SELECT f21 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint unsigned x;
+SELECT f22 into x from tb1 limit 9998, 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 'mediumint unsigned x;
+SELECT f22 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint zerofill x;
+SELECT f23 into x from tb1 limit 9998, 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 'mediumint zerofill x;
+SELECT f23 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint unsigned zerofill x;
+SELECT f24 into x from tb1 limit 9998, 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 'mediumint unsigned zerofill x;
+SELECT f24 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int x;
+SELECT f25 into x from tb1 limit 9998, 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 'int x;
+SELECT f25 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int unsigned x;
+SELECT f26 into x from tb1 limit 9998, 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 'int unsigned x;
+SELECT f26 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int zerofill x;
+SELECT f27 into x from tb1 limit 9998, 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 'int zerofill x;
+SELECT f27 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int unsigned zerofill x;
+SELECT f28 into x from tb1 limit 9998, 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 'int unsigned zerofill x;
+SELECT f28 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint x;
+SELECT f29 into x from tb1 limit 9998, 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 'bigint x;
+SELECT f29 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint unsigned x;
+elect f30 into x from tb1 limit 9998, 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 'bigint unsigned x;
+elect f30 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint zerofill x;
+SELECT f31 into x from tb1 limit 9998, 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 'bigint zerofill x;
+SELECT f31 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint unsigned zerofill x;
+SELECT f32 into x from tb1 limit 9998, 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 'bigint unsigned zerofill x;
+SELECT f32 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal x;
+SELECT f33 into x from tb1 limit 9998, 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 'decimal x;
+SELECT f33 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal unsigned x;
+SELECT f34 into x from tb1 limit 9998, 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 'decimal unsigned x;
+SELECT f34 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal zerofill x;
+SELECT f35 into x from tb1 limit 9998, 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 'decimal zerofill x;
+SELECT f35 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal unsigned zerofill not null x;
+SELECT f36 into x from tb1 limit 9998, 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 'decimal unsigned zerofill not null x;
+SELECT f36 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) not null x;
+SELECT f37 into x from tb1 limit 9998, 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 'decimal (0) not null x;
+SELECT f37 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) not null x;
+SELECT f38 into x from tb1 limit 9998, 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 'decimal (64) not null x;
+SELECT f38 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) unsigned not null x;
+SELECT f39 into x from tb1 limit 9998, 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 'decimal (0) unsigned not null x;
+SELECT f39 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) unsigned not null x;
+SELECT f40 into x from tb1 limit 9998, 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 'decimal (64) unsigned not null x;
+SELECT f40 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) zerofill not null x;
+SELECT f41 into x from tb1 limit 9998, 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 'decimal (0) zerofill not null x;
+SELECT f41 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) zerofill not null x;
+SELECT f42 into x from tb1 limit 9998, 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 'decimal (64) zerofill not null x;
+SELECT f42 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) unsigned zerofill not null x;
+SELECT f43 into x from tb1 limit 9998, 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 'decimal (0) unsigned zerofill not null x;
+SELECT f43 into x from tb1 limit 9998' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) unsigned zerofill not null x;
+SELECT f44 into x from tb1 limit 9998, 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 'decimal (64) unsigned zerofill not null x;
+SELECT f44 into x from tb1 limit 999' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) not null x;
+SELECT f45 into x from tb1 limit 9998, 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 'decimal (00) not null x;
+SELECT f45 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) not null x;
+SELECT f46 into x from tb1 limit 9998, 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 'decimal (63, 30) not null x;
+SELECT f46 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) unsigned not null x;
+SELECT f47 into x from tb1 limit 9998, 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 'decimal (00) unsigned not null x;
+SELECT f47 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) unsigned not null x;
+SELECT f48 into x from tb1 limit 9998, 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 'decimal (63, 30) unsigned not null x;
+SELECT f48 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) zerofill not null x;
+SELECT f49 into x from tb1 limit 9998, 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 'decimal (00) zerofill not null x;
+SELECT f49 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) zerofill not null x;
+SELECT f50 into x from tb1 limit 9998, 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 'decimal (63, 30) zerofill not null x;
+SELECT f50 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) unsigned zerofill not null x;
+SELECT f51 into x from tb1 limit 9998, 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 'decimal (00) unsigned zerofill not null x;
+SELECT f51 into x from tb1 limit 999' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) unsigned zerofill not null x;
+SELECT f52 into x from tb1 limit 9998, 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 'decimal (63, 30) unsigned zerofill not null x;
+SELECT f52 into x from tb1 limit' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric not null x;
+SELECT f53 into x from tb1 limit 9998, 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 'numeric not null x;
+SELECT f53 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric unsigned not null x;
+SELECT f54 into x from tb1 limit 9998, 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 'numeric unsigned not null x;
+SELECT f54 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric zerofill not null x;
+SELECT f55 into x from tb1 limit 9998, 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 'numeric zerofill not null x;
+SELECT f55 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric unsigned zerofill not null x;
+SELECT f56 into x from tb1 limit 9998, 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 'numeric unsigned zerofill not null x;
+SELECT f56 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) not null x;
+SELECT f57 into x from tb1 limit 9998, 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 'numeric (0) not null x;
+SELECT f57 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) not nul x;
+SELECT f58 into x from tb1 limit 9998, 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 'numeric (64) not nul x;
+SELECT f58 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) unsigned x;
+SELECT f59 into x from tb2 limit 9998, 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 'numeric (0) unsigned x;
+SELECT f59 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) unsigned x;
+SELECT f60 into x from tb2 limit 9998, 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 'numeric (64) unsigned x;
+SELECT f60 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) zerofill x;
+SELECT f61 into x from tb2 limit 9998, 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 'numeric (0) zerofill x;
+SELECT f61 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) zerofill x;
+SELECT f62 into x from tb2 limit 9998, 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 'numeric (64) zerofill x;
+SELECT f62 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) unsigned zerofill x;
+SELECT f63 into x from tb2 limit 9998, 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 'numeric (0) unsigned zerofill x;
+SELECT f63 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) unsigned zerofill x;
+SELECT f64 into x from tb2 limit 9998, 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 'numeric (64) unsigned zerofill x;
+SELECT f64 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) x;
+SELECT f65 into x from tb2 limit 9998, 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 'numeric (00) x;
+SELECT f65 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) x;
+SELECT f66 into x from tb2 limit 9998, 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 'numeric (63, 30) x;
+SELECT f66 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) unsigned x;
+SELECT f67 into x from tb2 limit 9998, 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 'numeric (00) unsigned x;
+SELECT f67 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) unsigned x;
+SELECT f68 into x from tb2 limit 9998, 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 'numeric (63, 30) unsigned x;
+SELECT f68 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) zerofill x;
+SELECT f69 into x from tb2 limit 9998, 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 'numeric (00) zerofill x;
+SELECT f69 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) zerofill x;
+SELECT f70 into x from tb2 limit 9998, 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 'numeric (63, 30) zerofill x;
+SELECT f70 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) unsigned zerofill x;
+SELECT f71 into x from tb2 limit 9998, 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 'numeric (00) unsigned zerofill x;
+SELECT f71 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) unsigned zerofill x;
+SELECT f72 into x from tb2 limit 9998, 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 'numeric (63, 30) unsigned zerofill x;
+SELECT f72 into x from tb2 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real x;
+SELECT f73 into x from tb2 limit 9998, 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 'real x;
+SELECT f73 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real unsigned x;
+SELECT f74 into x from tb2 limit 9998, 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 'real unsigned x;
+SELECT f74 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real zerofill x;
+SELECT f75 into x from tb2 limit 9998, 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 'real zerofill x;
+SELECT f75 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real unsigned zerofill x;
+SELECT f76 into x from tb2 limit 9998, 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 'real unsigned zerofill x;
+SELECT f76 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double x;
+SELECT f77 into x from tb2 limit 9998, 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 'double x;
+SELECT f77 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double unsigned x;
+SELECT f78 into x from tb2 limit 9998, 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 'double unsigned x;
+SELECT f78 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double zerofill x;
+SELECT f79 into x from tb2 limit 9998, 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 'double zerofill x;
+SELECT f79 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double unsigned zerofill x;
+SELECT f80 into x from tb2 limit 9998, 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 'double unsigned zerofill x;
+SELECT f80 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float not null x;
+SELECT f81 into x from tb2 limit 9998, 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 'float not null x;
+SELECT f81 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float unsigned not null x;
+SELECT f82 into x from tb2 limit 9998, 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 'float unsigned not null x;
+SELECT f82 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float zerofill not null x;
+SELECT f83 into x from tb2 limit 9998, 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 'float zerofill not null x;
+SELECT f83 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float unsigned zerofill not null x;
+SELECT f84 into x from tb2 limit 9998, 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 'float unsigned zerofill not null x;
+SELECT f84 into x from tb2 limit 9998, 1;
+E' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) not null x;
+SELECT f85 into x from tb2 limit 9998, 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 'float(0) not null x;
+SELECT f85 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) not null x;
+SELECT f86 into x from tb2 limit 9998, 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 'float(23) not null x;
+SELECT f86 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) unsigned not null x;
+SELECT f87 into x from tb2 limit 9998, 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 'float(0) unsigned not null x;
+SELECT f87 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) unsigned not null x;
+SELECT f88 into x from tb2 limit 9998, 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 'float(23) unsigned not null x;
+SELECT f88 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) zerofill not null x;
+SELECT f89 into x from tb2 limit 9998, 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 'float(0) zerofill not null x;
+SELECT f89 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) zerofill not null x;
+SELECT f90 into x from tb2 limit 9998, 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 'float(23) zerofill not null x;
+SELECT f90 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) unsigned zerofill not null x;
+SELECT f91 into x from tb2 limit 9998, 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 'float(0) unsigned zerofill not null x;
+SELECT f91 into x from tb2 limit 9998, 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) unsigned zerofill not null x;
+SELECT f92 into x from tb2 limit 9998, 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 'float(23) unsigned zerofill not null x;
+SELECT f92 into x from tb2 limit 9998, ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) not null x;
+SELECT f93 into x from tb2 limit 9998, 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 'float(24) not null x;
+SELECT f93 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) not null x;
+SELECT f94 into x from tb2 limit 9998, 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 'float(53) not null x;
+SELECT f94 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) unsigned not null x;
+SELECT f95 into x from tb2 limit 9998, 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 'float(24) unsigned not null x;
+SELECT f95 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) unsigned not null x;
+SELECT f96 into x from tb2 limit 9998, 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 'float(53) unsigned not null x;
+SELECT f96 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) zerofill not null x;
+SELECT f97 into x from tb2 limit 9998, 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 'float(24) zerofill not null x;
+SELECT f97 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) zerofill not null x;
+SELECT f98 into x from tb2 limit 9998, 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 'float(53) zerofill not null x;
+SELECT f98 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) unsigned zerofill not null x;
+SELECT f99 into x from tb2 limit 9998, 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 'float(24) unsigned zerofill not null x;
+SELECT f99 into x from tb2 limit 9998, ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) unsigned zerofill not null x;
+SELECT f100 into x from tb2 limit 9998, 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 'float(53) unsigned zerofill not null x;
+SELECT f100 into x from tb2 limit 9998,' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare date not null x;
+SELECT f101 into x from tb2 limit 9998, 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 'not null x;
+SELECT f101 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare time not null x;
+SELECT f102 into x from tb2 limit 9998, 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 'not null x;
+SELECT f102 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare datetime not null x;
+SELECT f103 into x from tb2 limit 9998, 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 'not null x;
+SELECT f103 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare timestamp not null x;
+SELECT f104 into x from tb2 limit 9998, 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 'not null x;
+SELECT f104 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year not null x;
+SELECT f105 into x from tb2 limit 9998, 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 'not null x;
+SELECT f105 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year(3) not null x;
+SELECT f106 into x from tb2 limit 9998, 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 '(3) not null x;
+SELECT f106 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year(4) not null x;
+SELECT f107 into x from tb2 limit 9998, 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 '(4) not null x;
+SELECT f107 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enum("1enum", "2enum") not null x;
+SELECT f108 into x from tb2 limit 9998, 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 '("1enum", "2enum") not null x;
+SELECT f108 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set("1set", "2set") not nul x;
+SELECT f109 into x from tb2 limit 9998, 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 'set("1set", "2set") not nul x;
+SELECT f109 into x from tb2 limit 9998, 1;
+END' at line 3
+
+Testcase 4.2.14:
+----------------
+Ensure that the handlers declared for a stored procedure (with the declare
+statement) may only be defined in the correct order
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor1 cursor for SELECT f1 from tb1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor1 cursor for SELECT f1 from tb1;
+declare sqlcondition condition for sqlstate '02000';
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare sqlcondition condition for sqlstate '02000';
+declare continue handler for sqlcondition set @x=1;
+declare cursor1 cursor for SELECT f1 from tb1;
+END//
+ERROR 42000: Cursor declaration after handler declaration
+
+Testcase 4.2.15:
+----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z char default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z char ascii default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinytext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z text default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumtext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z longtext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z blob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z longblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z binary default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint default -126;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-126 -126 -126
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint unsigned default 253;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+253 253 253
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+000 000 000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+001 001 001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint default -32768;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-32768 -32768 -32768
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint unsigned default 65535;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+65535 65535 65535
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000 00000 00000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00001 00001 00001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint default -8388608;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-8388608 -8388608 -8388608
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint unsigned default 16777215;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+16777215 16777215 16777215
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000 00000000 00000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001 00000001 00000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int default -2147483648;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-2147483648 -2147483648 -2147483648
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int unsigned default 4294967295;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+4294967295 4294967295 4294967295
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000001 0000000001 0000000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint default -9223372036854775808;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-9223372036854775808 -9223372036854775808 -9223372036854775808
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint unsigned default 18446744073709551615;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+18446744073709551615 18446744073709551615 18446744073709551615
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000000000000000 00000000000000000000 00000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000000000000001 00000000000000000001 00000000000000000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal default -34028234660123456789012345678901234567;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-9999999999 -9999999999 -9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal zerofill default -34028234660123456789012345678901234567;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.175494351e-38 1.175494351e-38 1.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.175494351e-38 1.175494351e-38 1.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001.175494351e-38 00000001.175494351e-38 00000001.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001.175494351e-38 00000001.175494351e-38 00000001.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.17549e-38 1.17549e-38 1.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.17549e-38 1.17549e-38 1.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+01.17549e-38 01.17549e-38 01.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+01.17549e-38 01.17549e-38 01.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z date default '2005-02-02';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 2005-02-02 2005-02-02
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z time default '12:20:12';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+12:20:12 12:20:12 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z datetime default '2005-02-02 12:20:12';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 12:20:12 2005-02-02 12:20:12 2005-02-02 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z timestamp default '20050202122012';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 12:20:12 2005-02-02 12:20:12 2005-02-02 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year(3) default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year(4) default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z enum("1enum", "2enum") default "2enum";
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2enum 2enum 2enum
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z set("1set", "2set") default "2set";
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2set 2set 2set
+DROP PROCEDURE sp1;
+
+Testcase 4.2.16:
+----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare a, b char default '2';
+declare c, d float default 1.3;
+declare e, f text default 'text';
+declare g, h enum("value1", "value2" ) default 'value1';
+declare i, j datetime default '2005-02-02 12:12:12';
+declare k, l blob default 'blob';
+SELECT a, b, c, d, e, f, g, h, k, l;
+END//
+CALL sp6();
+a b c d e f g h k l
+2 2 1.3 1.3 text text value1 value1 blob blob
+DROP PROCEDURE sp6;
+
+Testcase 4.2.17:
+----------------
+Ensure that the invalid variable declarations are rejected, with an appropriate
+error message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare @x char;
+SELECT f2 into x from t2 limit 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 '@x char;
+SELECT f2 into x from t2 limit 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare add char;
+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 'add char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare all char;
+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 'all char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare alter char;
+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 'alter char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare analyze char;
+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 'analyze char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare and char;
+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 'and char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare as char;
+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 'as char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare asc char;
+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 'asc char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare asensitive char;
+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 'asensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare before char;
+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 'before char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare between char;
+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 'between char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare bigint char;
+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 'bigint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare binary char;
+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 'binary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare blob char;
+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 'blob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare both char;
+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 'both char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare by char;
+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 'by char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare CALL char;
+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 'CALL char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cascade char;
+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 'cascade char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare case char;
+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 'case char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare change char;
+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 'change char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare char char;
+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 'char char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare character char;
+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 'character char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare check char;
+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 'check char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare collate char;
+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 'collate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare column char;
+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 'column char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare columns char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare condition char;
+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 'condition char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare connection char;
+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 'connection char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare constraint char;
+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 'constraint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue char;
+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 'char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare convert char;
+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 'convert char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare create char;
+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 'create char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cross char;
+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 'cross char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_date char;
+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 'current_date char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_time char;
+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 'current_time char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_timestamp char;
+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 'current_timestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_user char;
+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 'current_user char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cursor char;
+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 'cursor char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare database char;
+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 'database char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare databases char;
+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 'databases char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_hour char;
+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 'day_hour char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_microsecond char;
+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 'day_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_minute char;
+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 'day_minute char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_second char;
+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 'day_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare dec char;
+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 'dec char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare decimal char;
+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 'decimal char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare declare char;
+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 'declare char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare default char;
+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 'default char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare delayed char;
+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 'delayed char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare delete char;
+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 'delete char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare desc char;
+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 'desc char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare describe char;
+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 'describe char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare deterministic char;
+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 'deterministic char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare distinct char;
+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 'distinct char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare distinctrow char;
+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 'distinctrow char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare div char;
+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 'div char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare double char;
+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 'double char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare drop char;
+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 'drop char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare dual char;
+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 'dual char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare each char;
+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 'each char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare else char;
+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 'else char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare elseif char;
+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 'elseif char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare enclosed char;
+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 'enclosed char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare escaped char;
+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 'escaped char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare exists char;
+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 'exists char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare exit char;
+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 'char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare explain char;
+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 'explain char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare false char;
+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 'false char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fetch char;
+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 'fetch char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fields char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare float char;
+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 'float char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare for char;
+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 'for char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare force char;
+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 'force char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare foreign char;
+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 'foreign char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare found char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare from char;
+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 'from char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fulltext char;
+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 'fulltext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare goto char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare grant char;
+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 'grant char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare group char;
+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 'group char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare having char;
+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 'having char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare high_priority char;
+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 'high_priority char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_microsecond char;
+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 'hour_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_minute char;
+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 'hour_minute char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_second char;
+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 'hour_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare if char;
+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 'if char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare ignore char;
+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 'ignore char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare in char;
+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 'in char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare index char;
+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 'index char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare infile char;
+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 'infile char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare inner char;
+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 'inner char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare inout char;
+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 'inout char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare insensitive char;
+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 'insensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare insert char;
+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 'insert char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare int char;
+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 'int char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare integer char;
+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 'integer char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare interval char;
+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 'interval char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare into char;
+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 'into char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare is char;
+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 'is char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare iterate char;
+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 'iterate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare join char;
+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 'join char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare key char;
+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 'key char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare keys char;
+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 'keys char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare kill char;
+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 'kill char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare leading char;
+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 'leading char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare leave char;
+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 'leave char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare left char;
+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 'left char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare like char;
+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 'like char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare limit char;
+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 'limit char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare lines char;
+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 'lines char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare load char;
+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 'load char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare localtime char;
+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 'localtime char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare localtimestamp char;
+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 'localtimestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare lock char;
+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 'lock char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare long char;
+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 'long char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare longblob char;
+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 'longblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare longtext char;
+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 'longtext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare loop char;
+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 'loop char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare low_priority char;
+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 'low_priority char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare match char;
+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 'match char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumblob char;
+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 'mediumblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumint char;
+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 'mediumint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumtext char;
+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 'mediumtext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare middleint char;
+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 'middleint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare minute_microsecond char;
+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 'minute_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare minute_second char;
+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 'minute_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mod char;
+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 'mod char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare modifies char;
+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 'modifies char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare natural char;
+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 'natural char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare not char;
+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 'not char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare no_write_to_binlog char;
+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 'no_write_to_binlog char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare null char;
+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 'null char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare numeric char;
+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 'numeric char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare on char;
+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 'on char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare optimize char;
+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 'optimize char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare option char;
+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 'option char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare optionally char;
+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 'optionally char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare or char;
+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 'or char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare order char;
+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 'order char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare out char;
+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 'out char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare outer char;
+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 'outer char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare outfile char;
+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 'outfile char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare precision char;
+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 'precision char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare primary char;
+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 'primary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare privileges char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare procedure char;
+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 'procedure char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare purge char;
+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 'purge char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare read char;
+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 'read char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare reads char;
+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 'reads char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare real char;
+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 'real char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare references char;
+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 'references char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare regexp char;
+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 'regexp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare rename char;
+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 'rename char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare repeat char;
+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 'repeat char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare replace char;
+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 'replace char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare require char;
+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 'require char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare restrict char;
+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 'restrict char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare return char;
+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 'return char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare revoke char;
+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 'revoke char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare right char;
+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 'right char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare rlike char;
+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 'rlike char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare schema char;
+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 'schema char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare schemas char;
+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 'schemas char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare second_microsecond char;
+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 'second_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare SELECT char;
+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 'SELECT char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sensitive char;
+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 'sensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare separator char;
+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 'separator char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare set char;
+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 'set char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare show char;
+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 'show char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare smallint char;
+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 'smallint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare soname char;
+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 'soname char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare spatial char;
+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 'spatial char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare specific char;
+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 'specific char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql char;
+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 'sql char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlexception char;
+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 'sqlexception char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlstate char;
+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 'sqlstate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlwarning char;
+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 'sqlwarning char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_big_result char;
+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 'sql_big_result char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_calc_found_rows char;
+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 'sql_calc_found_rows char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_small_result char;
+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 'sql_small_result char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare ssl char;
+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 'ssl char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare starting char;
+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 'starting char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare straight_join char;
+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 'straight_join char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare table char;
+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 'table char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tables char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare terminated char;
+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 'terminated char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare then char;
+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 'then char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinyblob char;
+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 'tinyblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinyint char;
+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 'tinyint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinytext char;
+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 'tinytext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare to char;
+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 'to char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare trailing char;
+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 'trailing char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare trigger char;
+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 'trigger char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare true char;
+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 'true char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare undo char;
+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 'undo char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare union char;
+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 'union char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unique char;
+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 'unique char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unlock char;
+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 'unlock char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unsigned char;
+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 'unsigned char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare update char;
+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 'update char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare usage char;
+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 'usage char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare USE char;
+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 'USE char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare using char;
+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 'using char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_date char;
+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 'utc_date char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_time char;
+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 'utc_time char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_timestamp char;
+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 'utc_timestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare values char;
+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 'values char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varbinary char;
+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 'varbinary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varchar char;
+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 'varchar char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varcharacter char;
+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 'varcharacter char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varying char;
+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 'varying char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare when char;
+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 'when char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare where char;
+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 'where char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare while char;
+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 char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare with char;
+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 'with char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare write char;
+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 'write char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xor char;
+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 'xor char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare year_month char;
+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 'year_month char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare zerofill char;
+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 'zerofill char;
+END' at line 3
+
+Testcase :
+----------
+Ensure that every possible type of condition may be declared for a stored procedure
+( covered in more detail in handlers section.)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'HY000';
+declare cond2 condition for sqlstate '23000';
+declare cond3 condition for sqlstate 'HY001';
+declare cond4 condition for sqlstate '08004';
+declare cond5 condition for sqlstate '08S01';
+declare cond6 condition for sqlstate '42000';
+declare cond7 condition for sqlstate '28000';
+declare cond8 condition for sqlstate '3D000';
+declare cond9 condition for sqlstate '42S01';
+declare cond10 condition for sqlstate '42S02';
+declare cond11 condition for sqlstate '42S22';
+declare cond12 condition for sqlstate '21S01';
+declare cond13 condition for sqlstate '42S21';
+declare cond14 condition for sqlstate '42S12';
+declare cond15 condition for sqlstate '22004';
+declare cond16 condition for sqlstate '25000';
+declare cond17 condition for sqlstate '40001';
+declare cond18 condition for sqlstate '21000';
+declare cond19 condition for sqlstate '01000';
+declare cond20 condition for sqlstate '22003';
+declare cond21 condition for sqlstate '22007';
+declare cond22 condition for sqlstate '0A000';
+declare cond23 condition for sqlstate '70100';
+declare cond24 condition for sqlstate '2F005';
+declare cond25 condition for sqlstate '24000';
+declare cond26 condition for sqlstate '02000';
+declare continue handler for cond2 set @x2 = 1;
+declare continue handler for cond1 set @x2 = 1;
+declare continue handler for cond3 set @x2 = 1;
+declare continue handler for cond4 set @x2 = 1;
+declare continue handler for cond5 set @x2 = 1;
+declare continue handler for cond7 set @x2 = 1;
+declare continue handler for cond6 set @x2 = 1;
+declare continue handler for cond8 set @x2 = 1;
+declare continue handler for cond9 set @x2 = 1;
+declare continue handler for cond10 set @x2 = 1;
+declare continue handler for cond11 set @x2 = 1;
+declare continue handler for cond12 set @x2 = 1;
+declare continue handler for cond13 set @x2 = 1;
+declare continue handler for cond14 set @x2 = 1;
+declare continue handler for cond15 set @x2 = 1;
+declare continue handler for cond16 set @x2 = 1;
+declare continue handler for cond17 set @x2 = 1;
+declare continue handler for cond18 set @x2 = 1;
+declare continue handler for cond19 set @x2 = 1;
+declare continue handler for cond20 set @x2 = 1;
+declare continue handler for cond21 set @x2 = 1;
+declare continue handler for cond22 set @x2 = 1;
+declare continue handler for cond23 set @x2 = 1;
+declare continue handler for cond24 set @x2 = 1;
+declare continue handler for cond25 set @x2 = 1;
+declare continue handler for cond26 set @x2 = 1;
+set @x = 1;
+insert into t2 values (1);
+set @x = 2;
+insert into t2 values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare @x char;
+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 '@x char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char1;
+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 'char1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare add condition for sqlstate '02000';
+declare exit handler for add set @var2 = 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 'add condition for sqlstate '02000';
+declare exit handler for add set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare all condition for sqlstate '02000';
+declare exit handler for all set @var2 = 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 'all condition for sqlstate '02000';
+declare exit handler for all set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare alter condition for sqlstate '02000';
+declare exit handler for alter set @var2 = 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 'alter condition for sqlstate '02000';
+declare exit handler for alter set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare analyze condition for sqlstate '02000';
+declare exit handler for analyze set @var2 = 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 'analyze condition for sqlstate '02000';
+declare exit handler for analyze set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare and condition for sqlstate '02000';
+declare exit handler for and set @var2 = 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 'and condition for sqlstate '02000';
+declare exit handler for and set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare as condition for sqlstate '02000';
+declare exit handler for as set @var2 = 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 'as condition for sqlstate '02000';
+declare exit handler for as set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asc condition for sqlstate '02000';
+declare exit handler for asc set @var2 = 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 'asc condition for sqlstate '02000';
+declare exit handler for asc set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asensitive condition for sqlstate '02000';
+declare exit handler for asensitive set @var2 = 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 'asensitive condition for sqlstate '02000';
+declare exit handler for asensitive s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare before condition for sqlstate '02000';
+declare exit handler for before set @var2 = 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 'before condition for sqlstate '02000';
+declare exit handler for before set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare between condition for sqlstate '02000';
+declare exit handler for between set @var2 = 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 'between condition for sqlstate '02000';
+declare exit handler for between set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint condition for sqlstate '02000';
+declare exit handler for bigint set @var2 = 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 'bigint condition for sqlstate '02000';
+declare exit handler for bigint set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary condition for sqlstate '02000';
+declare exit handler for binary set @var2 = 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 'binary condition for sqlstate '02000';
+declare exit handler for binary set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob condition for sqlstate '02000';
+declare exit handler for blob set @var2 = 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 'blob condition for sqlstate '02000';
+declare exit handler for blob set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare both condition for sqlstate '02000';
+declare exit handler for both set @var2 = 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 'both condition for sqlstate '02000';
+declare exit handler for both set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare by condition for sqlstate '02000';
+declare exit handler for by set @var2 = 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 'by condition for sqlstate '02000';
+declare exit handler for by set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare CALL condition for sqlstate '02000';
+declare exit handler for CALL set @var2 = 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 'CALL condition for sqlstate '02000';
+declare exit handler for CALL set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cascade condition for sqlstate '02000';
+declare exit handler for cascade set @var2 = 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 'cascade condition for sqlstate '02000';
+declare exit handler for cascade set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare case condition for sqlstate '02000';
+declare exit handler for case set @var2 = 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 'case condition for sqlstate '02000';
+declare exit handler for case set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare change condition for sqlstate '02000';
+declare exit handler for change set @var2 = 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 'change condition for sqlstate '02000';
+declare exit handler for change set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char condition for sqlstate '02000';
+declare exit handler for char set @var2 = 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 'char condition for sqlstate '02000';
+declare exit handler for char set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare character condition for sqlstate '02000';
+declare exit handler for character set @var2 = 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 'character condition for sqlstate '02000';
+declare exit handler for character set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare check condition for sqlstate '02000';
+declare exit handler for check set @var2 = 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 'check condition for sqlstate '02000';
+declare exit handler for check set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare collate condition for sqlstate '02000';
+declare exit handler for collate set @var2 = 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 'collate condition for sqlstate '02000';
+declare exit handler for collate set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare column condition for sqlstate '02000';
+declare exit handler for column set @var2 = 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 'column condition for sqlstate '02000';
+declare exit handler for column set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare condition condition for sqlstate '02000';
+declare exit handler for condition set @var2 = 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 'condition condition for sqlstate '02000';
+declare exit handler for condition set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare connection condition for sqlstate '02000';
+declare exit handler for connection set @var2 = 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 'connection condition for sqlstate '02000';
+declare exit handler for connection s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare constraint condition for sqlstate '02000';
+declare exit handler for constraint set @var2 = 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 'constraint condition for sqlstate '02000';
+declare exit handler for constraint s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare continue condition for sqlstate '02000';
+declare exit handler for continue set @var2 = 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 'condition for sqlstate '02000';
+declare exit handler for continue set @var2 = 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare convert condition for sqlstate '02000';
+declare exit handler for convert set @var2 = 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 'convert condition for sqlstate '02000';
+declare exit handler for convert set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare create condition for sqlstate '02000';
+declare exit handler for create set @var2 = 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 'create condition for sqlstate '02000';
+declare exit handler for create set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cross condition for sqlstate '02000';
+declare exit handler for cross set @var2 = 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 'cross condition for sqlstate '02000';
+declare exit handler for cross set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_date condition for sqlstate '02000';
+declare exit handler for current_date set @var2 = 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 'current_date condition for sqlstate '02000';
+declare exit handler for current_da' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_time condition for sqlstate '02000';
+declare exit handler for current_time set @var2 = 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 'current_time condition for sqlstate '02000';
+declare exit handler for current_ti' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_timestamp condition for sqlstate '02000';
+declare exit handler for current_timestamp set @var2 = 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 'current_timestamp condition for sqlstate '02000';
+declare exit handler for curre' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_user condition for sqlstate '02000';
+declare exit handler for current_user set @var2 = 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 'current_user condition for sqlstate '02000';
+declare exit handler for current_us' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cursor condition for sqlstate '02000';
+declare exit handler for cursor set @var2 = 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 'cursor condition for sqlstate '02000';
+declare exit handler for cursor set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare database condition for sqlstate '02000';
+declare exit handler for database set @var2 = 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 'database condition for sqlstate '02000';
+declare exit handler for database set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare databases condition for sqlstate '02000';
+declare exit handler for databases set @var2 = 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 'databases condition for sqlstate '02000';
+declare exit handler for databases set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_hour condition for sqlstate '02000';
+declare exit handler for day_hour set @var2 = 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 'day_hour condition for sqlstate '02000';
+declare exit handler for day_hour set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_microsecond condition for sqlstate '02000';
+declare exit handler for day_microsecond set @var2 = 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 'day_microsecond condition for sqlstate '02000';
+declare exit handler for day_mic' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_minute condition for sqlstate '02000';
+declare exit handler for day_minute set @var2 = 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 'day_minute condition for sqlstate '02000';
+declare exit handler for day_minute s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_second condition for sqlstate '02000';
+declare exit handler for day_second set @var2 = 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 'day_second condition for sqlstate '02000';
+declare exit handler for day_second s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dec condition for sqlstate '02000';
+declare exit handler for dec set @var2 = 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 'dec condition for sqlstate '02000';
+declare exit handler for dec set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal condition for sqlstate '02000';
+declare exit handler for decimal set @var2 = 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 'decimal condition for sqlstate '02000';
+declare exit handler for decimal set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare declare condition for sqlstate '02000';
+declare exit handler for declare set @var2 = 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 'declare condition for sqlstate '02000';
+declare exit handler for declare set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare default condition for sqlstate '02000';
+declare exit handler for default set @var2 = 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 'default condition for sqlstate '02000';
+declare exit handler for default set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delayed condition for sqlstate '02000';
+declare exit handler for delayed set @var2 = 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 'delayed condition for sqlstate '02000';
+declare exit handler for delayed set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delete condition for sqlstate '02000';
+declare exit handler for delete set @var2 = 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 'delete condition for sqlstate '02000';
+declare exit handler for delete set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare desc condition for sqlstate '02000';
+declare exit handler for desc set @var2 = 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 'desc condition for sqlstate '02000';
+declare exit handler for desc set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare describe condition for sqlstate '02000';
+declare exit handler for describe set @var2 = 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 'describe condition for sqlstate '02000';
+declare exit handler for describe set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare deterministic condition for sqlstate '02000';
+declare exit handler for deterministic set @var2 = 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 'deterministic condition for sqlstate '02000';
+declare exit handler for determini' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinct condition for sqlstate '02000';
+declare exit handler for distinct set @var2 = 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 'distinct condition for sqlstate '02000';
+declare exit handler for distinct set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinctrow condition for sqlstate '02000';
+declare exit handler for distinctrow set @var2 = 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 'distinctrow condition for sqlstate '02000';
+declare exit handler for distinctrow' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare div condition for sqlstate '02000';
+declare exit handler for div set @var2 = 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 'div condition for sqlstate '02000';
+declare exit handler for div set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double condition for sqlstate '02000';
+declare exit handler for double set @var2 = 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 'double condition for sqlstate '02000';
+declare exit handler for double set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare drop condition for sqlstate '02000';
+declare exit handler for drop set @var2 = 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 'drop condition for sqlstate '02000';
+declare exit handler for drop set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dual condition for sqlstate '02000';
+declare exit handler for dual set @var2 = 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 'dual condition for sqlstate '02000';
+declare exit handler for dual set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare each condition for sqlstate '02000';
+declare exit handler for each set @var2 = 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 'each condition for sqlstate '02000';
+declare exit handler for each set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare else condition for sqlstate '02000';
+declare exit handler for else set @var2 = 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 'else condition for sqlstate '02000';
+declare exit handler for else set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare elseif condition for sqlstate '02000';
+declare exit handler for elseif set @var2 = 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 'elseif condition for sqlstate '02000';
+declare exit handler for elseif set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enclosed condition for sqlstate '02000';
+declare exit handler for enclosed set @var2 = 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 'enclosed condition for sqlstate '02000';
+declare exit handler for enclosed set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare escaped condition for sqlstate '02000';
+declare exit handler for escaped set @var2 = 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 'escaped condition for sqlstate '02000';
+declare exit handler for escaped set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exists condition for sqlstate '02000';
+declare exit handler for exists set @var2 = 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 'exists condition for sqlstate '02000';
+declare exit handler for exists set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exit condition for sqlstate '02000';
+declare exit handler for exit set @var2 = 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 'condition for sqlstate '02000';
+declare exit handler for exit set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare explain condition for sqlstate '02000';
+declare exit handler for explain set @var2 = 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 'explain condition for sqlstate '02000';
+declare exit handler for explain set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare false condition for sqlstate '02000';
+declare exit handler for false set @var2 = 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 'false condition for sqlstate '02000';
+declare exit handler for false set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fetch condition for sqlstate '02000';
+declare exit handler for fetch set @var2 = 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 'fetch condition for sqlstate '02000';
+declare exit handler for fetch set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fields condition for sqlstate '02000';
+declare exit handler for fields set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float condition for sqlstate '02000';
+declare exit handler for float set @var2 = 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 'float condition for sqlstate '02000';
+declare exit handler for float set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare for condition for sqlstate '02000';
+declare exit handler for for set @var2 = 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 'for condition for sqlstate '02000';
+declare exit handler for for set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare force condition for sqlstate '02000';
+declare exit handler for force set @var2 = 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 'force condition for sqlstate '02000';
+declare exit handler for force set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare foreign condition for sqlstate '02000';
+declare exit handler for foreign set @var2 = 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 'foreign condition for sqlstate '02000';
+declare exit handler for foreign set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare found condition for sqlstate '02000';
+declare exit handler for found set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare from condition for sqlstate '02000';
+declare exit handler for from set @var2 = 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 'from condition for sqlstate '02000';
+declare exit handler for from set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fulltext condition for sqlstate '02000';
+declare exit handler for fulltext set @var2 = 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 'fulltext condition for sqlstate '02000';
+declare exit handler for fulltext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare goto condition for sqlstate '02000';
+declare exit handler for goto set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare grant condition for sqlstate '02000';
+declare exit handler for grant set @var2 = 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 'grant condition for sqlstate '02000';
+declare exit handler for grant set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare group condition for sqlstate '02000';
+declare exit handler for group set @var2 = 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 'group condition for sqlstate '02000';
+declare exit handler for group set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare having condition for sqlstate '02000';
+declare exit handler for having set @var2 = 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 'having condition for sqlstate '02000';
+declare exit handler for having set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare high_priority condition for sqlstate '02000';
+declare exit handler for high_priority set @var2 = 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 'high_priority condition for sqlstate '02000';
+declare exit handler for high_prio' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_microsecond condition for sqlstate '02000';
+declare exit handler for hour_microsecond set @var2 = 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 'hour_microsecond condition for sqlstate '02000';
+declare exit handler for hour_m' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_minute condition for sqlstate '02000';
+declare exit handler for hour_minute set @var2 = 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 'hour_minute condition for sqlstate '02000';
+declare exit handler for hour_minute' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_second condition for sqlstate '02000';
+declare exit handler for hour_second set @var2 = 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 'hour_second condition for sqlstate '02000';
+declare exit handler for hour_second' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare if condition for sqlstate '02000';
+declare exit handler for if set @var2 = 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 'if condition for sqlstate '02000';
+declare exit handler for if set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ignore condition for sqlstate '02000';
+declare exit handler for ignore set @var2 = 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 'ignore condition for sqlstate '02000';
+declare exit handler for ignore set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare in condition for sqlstate '02000';
+declare exit handler for in set @var2 = 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 'in condition for sqlstate '02000';
+declare exit handler for in set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare index condition for sqlstate '02000';
+declare exit handler for index set @var2 = 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 'index condition for sqlstate '02000';
+declare exit handler for index set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare infile condition for sqlstate '02000';
+declare exit handler for infile set @var2 = 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 'infile condition for sqlstate '02000';
+declare exit handler for infile set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inner condition for sqlstate '02000';
+declare exit handler for inner set @var2 = 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 'inner condition for sqlstate '02000';
+declare exit handler for inner set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inout condition for sqlstate '02000';
+declare exit handler for inout set @var2 = 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 'inout condition for sqlstate '02000';
+declare exit handler for inout set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insensitive condition for sqlstate '02000';
+declare exit handler for insensitive set @var2 = 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 'insensitive condition for sqlstate '02000';
+declare exit handler for insensitive' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insert condition for sqlstate '02000';
+declare exit handler for insert set @var2 = 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 'insert condition for sqlstate '02000';
+declare exit handler for insert set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int condition for sqlstate '02000';
+declare exit handler for int set @var2 = 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 'int condition for sqlstate '02000';
+declare exit handler for int set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare integer condition for sqlstate '02000';
+declare exit handler for integer set @var2 = 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 'integer condition for sqlstate '02000';
+declare exit handler for integer set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare interval condition for sqlstate '02000';
+declare exit handler for interval set @var2 = 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 'interval condition for sqlstate '02000';
+declare exit handler for interval set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare into condition for sqlstate '02000';
+declare exit handler for into set @var2 = 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 'into condition for sqlstate '02000';
+declare exit handler for into set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare is condition for sqlstate '02000';
+declare exit handler for is set @var2 = 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 'is condition for sqlstate '02000';
+declare exit handler for is set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare iterate condition for sqlstate '02000';
+declare exit handler for iterate set @var2 = 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 'iterate condition for sqlstate '02000';
+declare exit handler for iterate set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare join condition for sqlstate '02000';
+declare exit handler for join set @var2 = 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 'join condition for sqlstate '02000';
+declare exit handler for join set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare key condition for sqlstate '02000';
+declare exit handler for key set @var2 = 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 'key condition for sqlstate '02000';
+declare exit handler for key set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare keys condition for sqlstate '02000';
+declare exit handler for keys set @var2 = 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 'keys condition for sqlstate '02000';
+declare exit handler for keys set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare kill condition for sqlstate '02000';
+declare exit handler for kill set @var2 = 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 'kill condition for sqlstate '02000';
+declare exit handler for kill set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leading condition for sqlstate '02000';
+declare exit handler for leading set @var2 = 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 'leading condition for sqlstate '02000';
+declare exit handler for leading set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leave condition for sqlstate '02000';
+declare exit handler for leave set @var2 = 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 'leave condition for sqlstate '02000';
+declare exit handler for leave set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare left condition for sqlstate '02000';
+declare exit handler for left set @var2 = 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 'left condition for sqlstate '02000';
+declare exit handler for left set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare like condition for sqlstate '02000';
+declare exit handler for like set @var2 = 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 'like condition for sqlstate '02000';
+declare exit handler for like set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare limit condition for sqlstate '02000';
+declare exit handler for limit set @var2 = 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 'limit condition for sqlstate '02000';
+declare exit handler for limit set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lines condition for sqlstate '02000';
+declare exit handler for lines set @var2 = 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 'lines condition for sqlstate '02000';
+declare exit handler for lines set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare load condition for sqlstate '02000';
+declare exit handler for load set @var2 = 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 'load condition for sqlstate '02000';
+declare exit handler for load set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtime condition for sqlstate '02000';
+declare exit handler for localtime set @var2 = 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 'localtime condition for sqlstate '02000';
+declare exit handler for localtime set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtimestamp condition for sqlstate '02000';
+declare exit handler for localtimestamp set @var2 = 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 'localtimestamp condition for sqlstate '02000';
+declare exit handler for localtim' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lock condition for sqlstate '02000';
+declare exit handler for lock set @var2 = 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 'lock condition for sqlstate '02000';
+declare exit handler for lock set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare long condition for sqlstate '02000';
+declare exit handler for long set @var2 = 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 'long condition for sqlstate '02000';
+declare exit handler for long set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob condition for sqlstate '02000';
+declare exit handler for longblob set @var2 = 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 'longblob condition for sqlstate '02000';
+declare exit handler for longblob set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext condition for sqlstate '02000';
+declare exit handler for longtext set @var2 = 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 'longtext condition for sqlstate '02000';
+declare exit handler for longtext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare loop condition for sqlstate '02000';
+declare exit handler for loop set @var2 = 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 'loop condition for sqlstate '02000';
+declare exit handler for loop set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare low_priority condition for sqlstate '02000';
+declare exit handler for low_priority set @var2 = 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 'low_priority condition for sqlstate '02000';
+declare exit handler for low_priori' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare match condition for sqlstate '02000';
+declare exit handler for match set @var2 = 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 'match condition for sqlstate '02000';
+declare exit handler for match set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob condition for sqlstate '02000';
+declare exit handler for mediumblob set @var2 = 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 'mediumblob condition for sqlstate '02000';
+declare exit handler for mediumblob s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint condition for sqlstate '02000';
+declare exit handler for mediumint set @var2 = 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 'mediumint condition for sqlstate '02000';
+declare exit handler for mediumint set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext condition for sqlstate '02000';
+declare exit handler for mediumtext set @var2 = 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 'mediumtext condition for sqlstate '02000';
+declare exit handler for mediumtext s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare middleint condition for sqlstate '02000';
+declare exit handler for middleint set @var2 = 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 'middleint condition for sqlstate '02000';
+declare exit handler for middleint set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_microsecond condition for sqlstate '02000';
+declare exit handler for minute_microsecond set @var2 = 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 'minute_microsecond condition for sqlstate '02000';
+declare exit handler for minu' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_second condition for sqlstate '02000';
+declare exit handler for minute_second set @var2 = 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 'minute_second condition for sqlstate '02000';
+declare exit handler for minute_se' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mod condition for sqlstate '02000';
+declare exit handler for mod set @var2 = 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 'mod condition for sqlstate '02000';
+declare exit handler for mod set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare modifies condition for sqlstate '02000';
+declare exit handler for modifies set @var2 = 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 'modifies condition for sqlstate '02000';
+declare exit handler for modifies set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare natural condition for sqlstate '02000';
+declare exit handler for natural set @var2 = 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 'natural condition for sqlstate '02000';
+declare exit handler for natural set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare not condition for sqlstate '02000';
+declare exit handler for not set @var2 = 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 'not condition for sqlstate '02000';
+declare exit handler for not set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare no_write_to_binlog condition for sqlstate '02000';
+declare exit handler for no_write_to_binlog set @var2 = 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 'no_write_to_binlog condition for sqlstate '02000';
+declare exit handler for no_w' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare null condition for sqlstate '02000';
+declare exit handler for null set @var2 = 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 'null condition for sqlstate '02000';
+declare exit handler for null set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric condition for sqlstate '02000';
+declare exit handler for numeric set @var2 = 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 'numeric condition for sqlstate '02000';
+declare exit handler for numeric set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare on condition for sqlstate '02000';
+declare exit handler for on set @var2 = 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 'on condition for sqlstate '02000';
+declare exit handler for on set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optimize condition for sqlstate '02000';
+declare exit handler for optimize set @var2 = 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 'optimize condition for sqlstate '02000';
+declare exit handler for optimize set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare option condition for sqlstate '02000';
+declare exit handler for option set @var2 = 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 'option condition for sqlstate '02000';
+declare exit handler for option set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optionally condition for sqlstate '02000';
+declare exit handler for optionally set @var2 = 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 'optionally condition for sqlstate '02000';
+declare exit handler for optionally s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare or condition for sqlstate '02000';
+declare exit handler for or set @var2 = 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 'or condition for sqlstate '02000';
+declare exit handler for or set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare order condition for sqlstate '02000';
+declare exit handler for order set @var2 = 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 'order condition for sqlstate '02000';
+declare exit handler for order set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare out condition for sqlstate '02000';
+declare exit handler for out set @var2 = 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 'out condition for sqlstate '02000';
+declare exit handler for out set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outer condition for sqlstate '02000';
+declare exit handler for outer set @var2 = 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 'outer condition for sqlstate '02000';
+declare exit handler for outer set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outfile condition for sqlstate '02000';
+declare exit handler for outfile set @var2 = 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 'outfile condition for sqlstate '02000';
+declare exit handler for outfile set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare precision condition for sqlstate '02000';
+declare exit handler for precision set @var2 = 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 'precision condition for sqlstate '02000';
+declare exit handler for precision set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare primary condition for sqlstate '02000';
+declare exit handler for primary set @var2 = 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 'primary condition for sqlstate '02000';
+declare exit handler for primary set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare privileges condition for sqlstate '02000';
+declare exit handler for privileges set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare procedure condition for sqlstate '02000';
+declare exit handler for procedure set @var2 = 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 'procedure condition for sqlstate '02000';
+declare exit handler for procedure set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare purge condition for sqlstate '02000';
+declare exit handler for purge set @var2 = 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 'purge condition for sqlstate '02000';
+declare exit handler for purge set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare read condition for sqlstate '02000';
+declare exit handler for read set @var2 = 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 'read condition for sqlstate '02000';
+declare exit handler for read set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare reads condition for sqlstate '02000';
+declare exit handler for reads set @var2 = 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 'reads condition for sqlstate '02000';
+declare exit handler for reads set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real condition for sqlstate '02000';
+declare exit handler for real set @var2 = 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 'real condition for sqlstate '02000';
+declare exit handler for real set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare references condition for sqlstate '02000';
+declare exit handler for references set @var2 = 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 'references condition for sqlstate '02000';
+declare exit handler for references s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare regexp condition for sqlstate '02000';
+declare exit handler for regexp set @var2 = 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 'regexp condition for sqlstate '02000';
+declare exit handler for regexp set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rename condition for sqlstate '02000';
+declare exit handler for rename set @var2 = 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 'rename condition for sqlstate '02000';
+declare exit handler for rename set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare repeat condition for sqlstate '02000';
+declare exit handler for repeat set @var2 = 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 'repeat condition for sqlstate '02000';
+declare exit handler for repeat set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare replace condition for sqlstate '02000';
+declare exit handler for replace set @var2 = 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 'replace condition for sqlstate '02000';
+declare exit handler for replace set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare require condition for sqlstate '02000';
+declare exit handler for require set @var2 = 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 'require condition for sqlstate '02000';
+declare exit handler for require set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare restrict condition for sqlstate '02000';
+declare exit handler for restrict set @var2 = 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 'restrict condition for sqlstate '02000';
+declare exit handler for restrict set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare return condition for sqlstate '02000';
+declare exit handler for return set @var2 = 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 'return condition for sqlstate '02000';
+declare exit handler for return set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare revoke condition for sqlstate '02000';
+declare exit handler for revoke set @var2 = 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 'revoke condition for sqlstate '02000';
+declare exit handler for revoke set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare right condition for sqlstate '02000';
+declare exit handler for right set @var2 = 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 'right condition for sqlstate '02000';
+declare exit handler for right set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rlike condition for sqlstate '02000';
+declare exit handler for rlike set @var2 = 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 'rlike condition for sqlstate '02000';
+declare exit handler for rlike set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schema condition for sqlstate '02000';
+declare exit handler for schema set @var2 = 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 'schema condition for sqlstate '02000';
+declare exit handler for schema set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schemas condition for sqlstate '02000';
+declare exit handler for schemas set @var2 = 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 'schemas condition for sqlstate '02000';
+declare exit handler for schemas set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare second_microsecond condition for sqlstate '02000';
+declare exit handler for second_microsecond set @var2 = 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 'second_microsecond condition for sqlstate '02000';
+declare exit handler for seco' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare SELECT condition for sqlstate '02000';
+declare exit handler for SELECT set @var2 = 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 'SELECT condition for sqlstate '02000';
+declare exit handler for SELECT set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sensitive condition for sqlstate '02000';
+declare exit handler for sensitive set @var2 = 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 'sensitive condition for sqlstate '02000';
+declare exit handler for sensitive set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare separator condition for sqlstate '02000';
+declare exit handler for separator set @var2 = 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 'separator condition for sqlstate '02000';
+declare exit handler for separator set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set condition for sqlstate '02000';
+declare exit handler for set set @var2 = 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 'set condition for sqlstate '02000';
+declare exit handler for set set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare show condition for sqlstate '02000';
+declare exit handler for show set @var2 = 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 'show condition for sqlstate '02000';
+declare exit handler for show set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint condition for sqlstate '02000';
+declare exit handler for smallint set @var2 = 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 'smallint condition for sqlstate '02000';
+declare exit handler for smallint set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare soname condition for sqlstate '02000';
+declare exit handler for soname set @var2 = 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 'soname condition for sqlstate '02000';
+declare exit handler for soname set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare spatial condition for sqlstate '02000';
+declare exit handler for spatial set @var2 = 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 'spatial condition for sqlstate '02000';
+declare exit handler for spatial set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare specific condition for sqlstate '02000';
+declare exit handler for specific set @var2 = 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 'specific condition for sqlstate '02000';
+declare exit handler for specific set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql condition for sqlstate '02000';
+declare exit handler for sql set @var2 = 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 'sql condition for sqlstate '02000';
+declare exit handler for sql set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlexception condition for sqlstate '02000';
+declare exit handler for sqlexception set @var2 = 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 'sqlexception condition for sqlstate '02000';
+declare exit handler for sqlexcepti' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlstate condition for sqlstate '02000';
+declare exit handler for sqlstate set @var2 = 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 'sqlstate condition for sqlstate '02000';
+declare exit handler for sqlstate set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlwarning condition for sqlstate '02000';
+declare exit handler for sqlwarning set @var2 = 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 'sqlwarning condition for sqlstate '02000';
+declare exit handler for sqlwarning s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_big_result condition for sqlstate '02000';
+declare exit handler for sql_big_result set @var2 = 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 'sql_big_result condition for sqlstate '02000';
+declare exit handler for sql_big_' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_calc_found_rows condition for sqlstate '02000';
+declare exit handler for sql_calc_found_rows set @var2 = 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 'sql_calc_found_rows condition for sqlstate '02000';
+declare exit handler for sql' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_small_result condition for sqlstate '02000';
+declare exit handler for sql_small_result set @var2 = 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 'sql_small_result condition for sqlstate '02000';
+declare exit handler for sql_sm' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ssl condition for sqlstate '02000';
+declare exit handler for ssl set @var2 = 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 'ssl condition for sqlstate '02000';
+declare exit handler for ssl set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare starting condition for sqlstate '02000';
+declare exit handler for starting set @var2 = 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 'starting condition for sqlstate '02000';
+declare exit handler for starting set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare straight_join condition for sqlstate '02000';
+declare exit handler for straight_join set @var2 = 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 'straight_join condition for sqlstate '02000';
+declare exit handler for straight_' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare table condition for sqlstate '02000';
+declare exit handler for table set @var2 = 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 'table condition for sqlstate '02000';
+declare exit handler for table set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tables condition for sqlstate '02000';
+declare exit handler for tables set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare terminated condition for sqlstate '02000';
+declare exit handler for terminated set @var2 = 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 'terminated condition for sqlstate '02000';
+declare exit handler for terminated s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare then condition for sqlstate '02000';
+declare exit handler for then set @var2 = 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 'then condition for sqlstate '02000';
+declare exit handler for then set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob condition for sqlstate '02000';
+declare exit handler for tinyblob set @var2 = 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 'tinyblob condition for sqlstate '02000';
+declare exit handler for tinyblob set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint condition for sqlstate '02000';
+declare exit handler for tinyint set @var2 = 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 'tinyint condition for sqlstate '02000';
+declare exit handler for tinyint set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext condition for sqlstate '02000';
+declare exit handler for tinytext set @var2 = 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 'tinytext condition for sqlstate '02000';
+declare exit handler for tinytext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare to condition for sqlstate '02000';
+declare exit handler for to set @var2 = 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 'to condition for sqlstate '02000';
+declare exit handler for to set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trailing condition for sqlstate '02000';
+declare exit handler for trailing set @var2 = 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 'trailing condition for sqlstate '02000';
+declare exit handler for trailing set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trigger condition for sqlstate '02000';
+declare exit handler for trigger set @var2 = 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 'trigger condition for sqlstate '02000';
+declare exit handler for trigger set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare true condition for sqlstate '02000';
+declare exit handler for true set @var2 = 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 'true condition for sqlstate '02000';
+declare exit handler for true set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare undo condition for sqlstate '02000';
+declare exit handler for undo set @var2 = 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 'undo condition for sqlstate '02000';
+declare exit handler for undo set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare union condition for sqlstate '02000';
+declare exit handler for union set @var2 = 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 'union condition for sqlstate '02000';
+declare exit handler for union set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unique condition for sqlstate '02000';
+declare exit handler for unique set @var2 = 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 'unique condition for sqlstate '02000';
+declare exit handler for unique set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unlock condition for sqlstate '02000';
+declare exit handler for unlock set @var2 = 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 'unlock condition for sqlstate '02000';
+declare exit handler for unlock set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unsigned condition for sqlstate '02000';
+declare exit handler for unsigned set @var2 = 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 'unsigned condition for sqlstate '02000';
+declare exit handler for unsigned set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare update condition for sqlstate '02000';
+declare exit handler for update set @var2 = 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 'update condition for sqlstate '02000';
+declare exit handler for update set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare usage condition for sqlstate '02000';
+declare exit handler for usage set @var2 = 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 'usage condition for sqlstate '02000';
+declare exit handler for usage set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare USE condition for sqlstate '02000';
+declare exit handler for USE set @var2 = 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 'USE condition for sqlstate '02000';
+declare exit handler for USE set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare using condition for sqlstate '02000';
+declare exit handler for using set @var2 = 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 'using condition for sqlstate '02000';
+declare exit handler for using set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_date condition for sqlstate '02000';
+declare exit handler for utc_date set @var2 = 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 'utc_date condition for sqlstate '02000';
+declare exit handler for utc_date set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_time condition for sqlstate '02000';
+declare exit handler for utc_time set @var2 = 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 'utc_time condition for sqlstate '02000';
+declare exit handler for utc_time set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_timestamp condition for sqlstate '02000';
+declare exit handler for utc_timestamp set @var2 = 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 'utc_timestamp condition for sqlstate '02000';
+declare exit handler for utc_times' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare values condition for sqlstate '02000';
+declare exit handler for values set @var2 = 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 'values condition for sqlstate '02000';
+declare exit handler for values set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varbinary condition for sqlstate '02000';
+declare exit handler for varbinary set @var2 = 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 'varbinary condition for sqlstate '02000';
+declare exit handler for varbinary set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varchar condition for sqlstate '02000';
+declare exit handler for varchar set @var2 = 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 'varchar condition for sqlstate '02000';
+declare exit handler for varchar set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varcharacter condition for sqlstate '02000';
+declare exit handler for varcharacter set @var2 = 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 'varcharacter condition for sqlstate '02000';
+declare exit handler for varcharact' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varying condition for sqlstate '02000';
+declare exit handler for varying set @var2 = 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 'varying condition for sqlstate '02000';
+declare exit handler for varying set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare when condition for sqlstate '02000';
+declare exit handler for when set @var2 = 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 'when condition for sqlstate '02000';
+declare exit handler for when set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare where condition for sqlstate '02000';
+declare exit handler for where set @var2 = 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 'where condition for sqlstate '02000';
+declare exit handler for where set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare while condition for sqlstate '02000';
+declare exit handler for while set @var2 = 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 condition for sqlstate '02000';
+declare exit handler for while set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare with condition for sqlstate '02000';
+declare exit handler for with set @var2 = 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 'with condition for sqlstate '02000';
+declare exit handler for with set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare write condition for sqlstate '02000';
+declare exit handler for write set @var2 = 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 'write condition for sqlstate '02000';
+declare exit handler for write set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare xor condition for sqlstate '02000';
+declare exit handler for xor set @var2 = 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 'xor condition for sqlstate '02000';
+declare exit handler for xor set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year_month condition for sqlstate '02000';
+declare exit handler for year_month set @var2 = 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 'year_month condition for sqlstate '02000';
+declare exit handler for year_month s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare zerofill condition for sqlstate '02000';
+declare exit handler for zerofill set @var2 = 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 'zerofill condition for sqlstate '02000';
+declare exit handler for zerofill set @' at line 3
+
+Testcase :
+----------
+Ensure that every possible type of handler may be declared for
+a stored procedure (continue- handler_type ).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t2(f1) values (1);
+set @x = 2;
+insert into t2(f1) values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare undo handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'undo handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t values ' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare continueinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare undoinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare exitinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare add handler for sqlstate '02000' set @var2 = 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 'add handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare all handler for sqlstate '02000' set @var2 = 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 'all handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare alter handler for sqlstate '02000' set @var2 = 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 'alter handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare analyze handler for sqlstate '02000' set @var2 = 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 'analyze handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare and handler for sqlstate '02000' set @var2 = 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 'and handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare as handler for sqlstate '02000' set @var2 = 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 'as handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asc handler for sqlstate '02000' set @var2 = 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 'asc handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asensitive handler for sqlstate '02000' set @var2 = 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 'asensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare before handler for sqlstate '02000' set @var2 = 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 'before handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare between handler for sqlstate '02000' set @var2 = 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 'between handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint handler for sqlstate '02000' set @var2 = 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 'bigint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary handler for sqlstate '02000' set @var2 = 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 'binary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob handler for sqlstate '02000' set @var2 = 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 'blob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare both handler for sqlstate '02000' set @var2 = 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 'both handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare by handler for sqlstate '02000' set @var2 = 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 'by handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare CALL handler for sqlstate '02000' set @var2 = 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 'CALL handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cascade handler for sqlstate '02000' set @var2 = 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 'cascade handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare case handler for sqlstate '02000' set @var2 = 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 'case handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare change handler for sqlstate '02000' set @var2 = 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 'change handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char handler for sqlstate '02000' set @var2 = 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 'char handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare character handler for sqlstate '02000' set @var2 = 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 'character handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare check handler for sqlstate '02000' set @var2 = 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 'check handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare collate handler for sqlstate '02000' set @var2 = 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 'collate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare column handler for sqlstate '02000' set @var2 = 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 'column handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare columns handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare condition handler for sqlstate '02000' set @var2 = 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 'condition handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare connection handler for sqlstate '02000' set @var2 = 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 'connection handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare constraint handler for sqlstate '02000' set @var2 = 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 'constraint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare convert handler for sqlstate '02000' set @var2 = 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 'convert handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare create handler for sqlstate '02000' set @var2 = 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 'create handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cross handler for sqlstate '02000' set @var2 = 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 'cross handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_date handler for sqlstate '02000' set @var2 = 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 'current_date handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_time handler for sqlstate '02000' set @var2 = 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 'current_time handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_timestamp handler for sqlstate '02000' set @var2 = 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 'current_timestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_user handler for sqlstate '02000' set @var2 = 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 'current_user handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cursor handler for sqlstate '02000' set @var2 = 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 'cursor handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare database handler for sqlstate '02000' set @var2 = 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 'database handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare databases handler for sqlstate '02000' set @var2 = 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 'databases handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_hour handler for sqlstate '02000' set @var2 = 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 'day_hour handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_microsecond handler for sqlstate '02000' set @var2 = 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 'day_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_minute handler for sqlstate '02000' set @var2 = 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 'day_minute handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_second handler for sqlstate '02000' set @var2 = 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 'day_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dec handler for sqlstate '02000' set @var2 = 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 'dec handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal handler for sqlstate '02000' set @var2 = 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 'decimal handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare declare handler for sqlstate '02000' set @var2 = 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 'declare handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare default handler for sqlstate '02000' set @var2 = 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 'default handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delayed handler for sqlstate '02000' set @var2 = 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 'delayed handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delete handler for sqlstate '02000' set @var2 = 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 'delete handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare desc handler for sqlstate '02000' set @var2 = 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 'desc handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare describe handler for sqlstate '02000' set @var2 = 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 'describe handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare deterministic handler for sqlstate '02000' set @var2 = 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 'deterministic handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinct handler for sqlstate '02000' set @var2 = 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 'distinct handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinctrow handler for sqlstate '02000' set @var2 = 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 'distinctrow handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare div handler for sqlstate '02000' set @var2 = 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 'div handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double handler for sqlstate '02000' set @var2 = 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 'double handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare drop handler for sqlstate '02000' set @var2 = 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 'drop handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dual handler for sqlstate '02000' set @var2 = 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 'dual handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare each handler for sqlstate '02000' set @var2 = 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 'each handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare else handler for sqlstate '02000' set @var2 = 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 'else handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare elseif handler for sqlstate '02000' set @var2 = 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 'elseif handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enclosed handler for sqlstate '02000' set @var2 = 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 'enclosed handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare escaped handler for sqlstate '02000' set @var2 = 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 'escaped handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exists handler for sqlstate '02000' set @var2 = 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 'exists handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare explain handler for sqlstate '02000' set @var2 = 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 'explain handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare false handler for sqlstate '02000' set @var2 = 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 'false handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fetch handler for sqlstate '02000' set @var2 = 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 'fetch handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fields handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float handler for sqlstate '02000' set @var2 = 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 'float handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare for handler for sqlstate '02000' set @var2 = 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 'for handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare force handler for sqlstate '02000' set @var2 = 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 'force handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare foreign handler for sqlstate '02000' set @var2 = 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 'foreign handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare found handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare from handler for sqlstate '02000' set @var2 = 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 'from handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fulltext handler for sqlstate '02000' set @var2 = 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 'fulltext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare goto handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare grant handler for sqlstate '02000' set @var2 = 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 'grant handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare group handler for sqlstate '02000' set @var2 = 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 'group handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare having handler for sqlstate '02000' set @var2 = 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 'having handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare high_priority handler for sqlstate '02000' set @var2 = 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 'high_priority handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_microsecond handler for sqlstate '02000' set @var2 = 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 'hour_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_minute handler for sqlstate '02000' set @var2 = 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 'hour_minute handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_second handler for sqlstate '02000' set @var2 = 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 'hour_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare if handler for sqlstate '02000' set @var2 = 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 'if handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ignore handler for sqlstate '02000' set @var2 = 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 'ignore handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare in handler for sqlstate '02000' set @var2 = 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 'in handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare index handler for sqlstate '02000' set @var2 = 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 'index handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare infile handler for sqlstate '02000' set @var2 = 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 'infile handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inner handler for sqlstate '02000' set @var2 = 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 'inner handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inout handler for sqlstate '02000' set @var2 = 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 'inout handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insensitive handler for sqlstate '02000' set @var2 = 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 'insensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insert handler for sqlstate '02000' set @var2 = 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 'insert handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int handler for sqlstate '02000' set @var2 = 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 'int handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare integer handler for sqlstate '02000' set @var2 = 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 'integer handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare interval handler for sqlstate '02000' set @var2 = 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 'interval handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare into handler for sqlstate '02000' set @var2 = 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 'into handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare is handler for sqlstate '02000' set @var2 = 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 'is handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare iterate handler for sqlstate '02000' set @var2 = 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 'iterate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare join handler for sqlstate '02000' set @var2 = 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 'join handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare key handler for sqlstate '02000' set @var2 = 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 'key handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare keys handler for sqlstate '02000' set @var2 = 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 'keys handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare kill handler for sqlstate '02000' set @var2 = 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 'kill handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leading handler for sqlstate '02000' set @var2 = 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 'leading handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leave handler for sqlstate '02000' set @var2 = 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 'leave handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare left handler for sqlstate '02000' set @var2 = 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 'left handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare like handler for sqlstate '02000' set @var2 = 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 'like handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare limit handler for sqlstate '02000' set @var2 = 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 'limit handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lines handler for sqlstate '02000' set @var2 = 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 'lines handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare load handler for sqlstate '02000' set @var2 = 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 'load handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtime handler for sqlstate '02000' set @var2 = 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 'localtime handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtimestamp handler for sqlstate '02000' set @var2 = 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 'localtimestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lock handler for sqlstate '02000' set @var2 = 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 'lock handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare long handler for sqlstate '02000' set @var2 = 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 'long handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob handler for sqlstate '02000' set @var2 = 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 'longblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext handler for sqlstate '02000' set @var2 = 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 'longtext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare loop handler for sqlstate '02000' set @var2 = 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 'loop handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare low_priority handler for sqlstate '02000' set @var2 = 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 'low_priority handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare match handler for sqlstate '02000' set @var2 = 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 'match handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob handler for sqlstate '02000' set @var2 = 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 'mediumblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint handler for sqlstate '02000' set @var2 = 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 'mediumint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext handler for sqlstate '02000' set @var2 = 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 'mediumtext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare middleint handler for sqlstate '02000' set @var2 = 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 'middleint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_microsecond handler for sqlstate '02000' set @var2 = 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 'minute_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_second handler for sqlstate '02000' set @var2 = 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 'minute_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mod handler for sqlstate '02000' set @var2 = 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 'mod handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare modifies handler for sqlstate '02000' set @var2 = 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 'modifies handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare natural handler for sqlstate '02000' set @var2 = 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 'natural handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare not handler for sqlstate '02000' set @var2 = 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 'not handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare no_write_to_binlog handler for sqlstate '02000' set @var2 = 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 'no_write_to_binlog handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare null handler for sqlstate '02000' set @var2 = 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 'null handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric handler for sqlstate '02000' set @var2 = 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 'numeric handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare on handler for sqlstate '02000' set @var2 = 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 'on handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optimize handler for sqlstate '02000' set @var2 = 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 'optimize handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare option handler for sqlstate '02000' set @var2 = 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 'option handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optionally handler for sqlstate '02000' set @var2 = 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 'optionally handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare or handler for sqlstate '02000' set @var2 = 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 'or handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare order handler for sqlstate '02000' set @var2 = 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 'order handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare out handler for sqlstate '02000' set @var2 = 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 'out handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outer handler for sqlstate '02000' set @var2 = 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 'outer handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outfile handler for sqlstate '02000' set @var2 = 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 'outfile handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare precision handler for sqlstate '02000' set @var2 = 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 'precision handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare primary handler for sqlstate '02000' set @var2 = 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 'primary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare privileges handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare procedure handler for sqlstate '02000' set @var2 = 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 'procedure handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare purge handler for sqlstate '02000' set @var2 = 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 'purge handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare read handler for sqlstate '02000' set @var2 = 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 'read handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare reads handler for sqlstate '02000' set @var2 = 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 'reads handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real handler for sqlstate '02000' set @var2 = 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 'real handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare references handler for sqlstate '02000' set @var2 = 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 'references handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare regexp handler for sqlstate '02000' set @var2 = 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 'regexp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rename handler for sqlstate '02000' set @var2 = 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 'rename handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare repeat handler for sqlstate '02000' set @var2 = 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 'repeat handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare replace handler for sqlstate '02000' set @var2 = 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 'replace handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare require handler for sqlstate '02000' set @var2 = 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 'require handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare restrict handler for sqlstate '02000' set @var2 = 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 'restrict handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare return handler for sqlstate '02000' set @var2 = 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 'return handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare revoke handler for sqlstate '02000' set @var2 = 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 'revoke handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare right handler for sqlstate '02000' set @var2 = 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 'right handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rlike handler for sqlstate '02000' set @var2 = 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 'rlike handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schema handler for sqlstate '02000' set @var2 = 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 'schema handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schemas handler for sqlstate '02000' set @var2 = 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 'schemas handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare second_microsecond handler for sqlstate '02000' set @var2 = 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 'second_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare SELECT handler for sqlstate '02000' set @var2 = 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 'SELECT handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sensitive handler for sqlstate '02000' set @var2 = 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 'sensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare separator handler for sqlstate '02000' set @var2 = 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 'separator handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set handler for sqlstate '02000' set @var2 = 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 'set handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare show handler for sqlstate '02000' set @var2 = 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 'show handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint handler for sqlstate '02000' set @var2 = 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 'smallint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare soname handler for sqlstate '02000' set @var2 = 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 'soname handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare spatial handler for sqlstate '02000' set @var2 = 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 'spatial handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare specific handler for sqlstate '02000' set @var2 = 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 'specific handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql handler for sqlstate '02000' set @var2 = 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 'sql handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlexception handler for sqlstate '02000' set @var2 = 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 'sqlexception handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlstate handler for sqlstate '02000' set @var2 = 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 'sqlstate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlwarning handler for sqlstate '02000' set @var2 = 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 'sqlwarning handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_big_result handler for sqlstate '02000' set @var2 = 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 'sql_big_result handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_calc_found_rows handler for sqlstate '02000' set @var2 = 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 'sql_calc_found_rows handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_small_result handler for sqlstate '02000' set @var2 = 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 'sql_small_result handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ssl handler for sqlstate '02000' set @var2 = 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 'ssl handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare starting handler for sqlstate '02000' set @var2 = 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 'starting handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare straight_join handler for sqlstate '02000' set @var2 = 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 'straight_join handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare table handler for sqlstate '02000' set @var2 = 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 'table handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tables handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare terminated handler for sqlstate '02000' set @var2 = 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 'terminated handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare then handler for sqlstate '02000' set @var2 = 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 'then handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob handler for sqlstate '02000' set @var2 = 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 'tinyblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint handler for sqlstate '02000' set @var2 = 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 'tinyint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext handler for sqlstate '02000' set @var2 = 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 'tinytext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare to handler for sqlstate '02000' set @var2 = 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 'to handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trailing handler for sqlstate '02000' set @var2 = 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 'trailing handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trigger handler for sqlstate '02000' set @var2 = 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 'trigger handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare true handler for sqlstate '02000' set @var2 = 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 'true handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare undo handler for sqlstate '02000' set @var2 = 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 'undo handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare union handler for sqlstate '02000' set @var2 = 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 'union handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unique handler for sqlstate '02000' set @var2 = 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 'unique handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unlock handler for sqlstate '02000' set @var2 = 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 'unlock handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unsigned handler for sqlstate '02000' set @var2 = 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 'unsigned handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare update handler for sqlstate '02000' set @var2 = 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 'update handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare usage handler for sqlstate '02000' set @var2 = 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 'usage handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare USE handler for sqlstate '02000' set @var2 = 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 'USE handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare using handler for sqlstate '02000' set @var2 = 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 'using handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_date handler for sqlstate '02000' set @var2 = 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 'utc_date handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_time handler for sqlstate '02000' set @var2 = 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 'utc_time handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_timestamp handler for sqlstate '02000' set @var2 = 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 'utc_timestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare values handler for sqlstate '02000' set @var2 = 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 'values handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varbinary handler for sqlstate '02000' set @var2 = 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 'varbinary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varchar handler for sqlstate '02000' set @var2 = 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 'varchar handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varcharacter handler for sqlstate '02000' set @var2 = 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 'varcharacter handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varying handler for sqlstate '02000' set @var2 = 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 'varying handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare when handler for sqlstate '02000' set @var2 = 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 'when handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare where handler for sqlstate '02000' set @var2 = 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 'where handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare while handler for sqlstate '02000' set @var2 = 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 handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare with handler for sqlstate '02000' set @var2 = 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 'with handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare write handler for sqlstate '02000' set @var2 = 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 'write handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare xor handler for sqlstate '02000' set @var2 = 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 'xor handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year_month handler for sqlstate '02000' set @var2 = 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 'year_month handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare zerofill handler for sqlstate '02000' set @var2 = 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 'zerofill handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+USE db_storedproc;
+
+Testcase 4.2.26:
+--------------------------------------------------------------------------------
+set @v1='0';
+set @v2='0';
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x char;
+declare y char;
+declare cond1 condition for sqlstate '42000';
+declare cur1 cursor for SELECT f1 from t2 limit 1;
+declare continue handler for cond1 set @x = 4;
+set @x = '1';
+set @y = '2';
+BEGIN
+declare x char;
+declare y char;
+declare cur1 cursor for SELECT f1 from t2 limit 2, 1;
+declare continue handler for sqlstate '42000' set @x = 3;
+open cur1;
+fetch cur1 into y;
+close cur1;
+CALL nonsexist();
+SELECT x, y, @x;
+END;
+open cur1;
+fetch cur1 into y;
+close cur1;
+CALL nonsexist();
+set @v1 = @x;
+set @v2 = y;
+END//
+CALL sp1();
+x y @x
+NULL a 3
+Warnings:
+Warning 1265 Data truncated for column 'y' at row 3
+Warning 1265 Data truncated for column 'y' at row 1
+SELECT @v1, @v2;
+@v1 @v2
+4 a
+DROP PROCEDURE sp1;
+
+Testcase 4.2.28:
+--------------------------------------------------------------------------------
+set @x=0;
+set @y=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set session sort_buffer_size = 10 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+set @x = 4;
+set @y = 3;
+set global sort_buffer_size = 2 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+set @@sort_buffer_size = 10 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+END//
+CALL sp1();
+@@sort_buffer_size
+10485760
+@@sort_buffer_size
+10485760
+@@sort_buffer_size
+10485760
+SELECT @x, @y;
+@x @y
+4 3
+
+Testcase 4.2.29:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx char default 'x';
+declare xy char default 'y';
+declare xz char default 'z';
+set @xx = xx, @xy = xy;
+set @xz = xz;
+SELECT @xx, @xy, @xz;
+END//
+CALL sp1();
+@xx @xy @xz
+x y z
+DROP PROCEDURE sp1;
+
+Testcase 4.2.30:
+--------------------------------------------------------------------------------
+set @xx=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx int;
+set xx = 'asd';
+set @xx = xx;
+SELECT @xx;
+END//
+CALL sp1();
+@xx
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx int;
+set xx = 5;
+set @xx = xx;
+SELECT @xx;
+END//
+CALL sp1();
+@xx
+5
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - a:
+--------------------------------------------------------------------------------
+set @xx=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx char;
+set xx = 'temp';
+set @xx = xx;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'xx' at row 1
+SELECT @xx;
+@xx
+t
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - b:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx float;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0
+Warnings:
+Warning 1265 Data truncated for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx float;
+set xx = 1.6;
+SELECT xx;
+END//
+CALL sp1();
+xx
+1.6
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - c:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx datetime;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0000-00-00 00:00:00
+Warnings:
+Warning 1264 Out of range value adjusted for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx datetime;
+set xx = '2006-06-06 01:01:01';
+SELECT xx;
+END//
+CALL sp1();
+xx
+2006-06-06 01:01:01
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - d:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx varchar(20);
+set xx = "abcdefghijk";
+SELECT xx;
+END//
+CALL sp1();
+xx
+abcdefghijk
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - e:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx tinyint;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0
+Warnings:
+Warning 1366 Incorrect integer value: 'asd' for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx tinyint;
+set xx = -125;
+SELECT xx;
+END//
+CALL sp1();
+xx
+-125
+DROP PROCEDURE sp1;
+
+Testcase 4.2.37:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+SELECT sal, f2 into x, y from t2 limit 1;
+set @x=x; set @y=y;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x char ascii;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinytext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x text;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumtext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x longtext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x blob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x longblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x binary;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x date;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x time;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x datetime;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x timestamp;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year(3);
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year(4);
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x enum("1enum", "2enum");
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x set("1set", "2set");
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.38:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare notable condition for sqlstate '42S02';
+declare continue handler for notable set @x2=1;
+set @x = 1;
+insert into t2(f1) values (1);
+set @x = 2;
+insert into t2(f1) values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+
+Testcase 4.2.39:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42000';
+declare cond1 condition for sqlstate '23000';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values(1);
+END//
+ERROR 42000: Duplicate condition: cond1
+
+Testcase 4.2.41:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '1';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '1'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '12';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '12'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '1234';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '1234'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123456';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123456'
+
+Testcase 4.2.42:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'abcdefghi';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: 'abcdefghi'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42000test';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '42000test'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '00000@#$%^&';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '00000@#$%^&'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'null';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: 'null'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate ' ';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: ' '
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 1234567890;
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 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 '1234567890;
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '2005-03-03';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '2005-03-03'
+
+Testcase 4.2.43:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '00000';
+declare continue handler for cond1 set @var2 = 1;
+set @x=1;
+SELECT @var2;
+END//
+CALL sp1();
+@var2
+NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.45:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare continue handler for sqlstate '23000' set @varr1 = 5;
+declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare mycondition condition for sqlstate '23000';
+declare continue handler for mycondition set @varr3 = 7;
+declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+
+Testcase 4.2.46:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '1' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '1'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '12' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '12'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '123' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '123'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '1234' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '1234'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '123456' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '123456'
+
+Testcase 4.2.47:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '42s0200test' set @var2 = 1;
+insert into tnull values( 1);
+SELECT @var2;
+END//
+ERROR 42000: Bad SQLSTATE: '42s0200test'
+
+Testcase 4.2.48:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '00000' set @var2 = 1;
+set @x=1;
+SELECT @var2;
+END//
+CALL sp1();
+@var2
+NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.52:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare cur1 cursor for SELECT f1, f2 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newlf1, newf3, newsal;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Duplicate cursor: cur1
+
+Testcase 4.2.53:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, lf1, f3, f4 into @w, @x, @y, @z from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newlf1, newf3, newsal;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Cursor SELECT must not have INTO
+
+Testcase 4.2.54:
+--------------------------------------------------------------------------------
+
+Testcase 4.2.55:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Undefined CURSOR: cur1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf3, newf4;
+set count = count - 1;
+END while;
+END;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is already open
+
+Testcase 4.2.56:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is already open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.57:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+declare cur2 cursor for SELECT f1, f2 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur2;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.59:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+open cur1;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf3, newf4;
+set count = count - 1;
+END while;
+open cur1;
+close cur1;
+END;
+close cur1;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.60:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+close cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+close cur1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+open cur1;
+END;
+fetch cur1 into newf1, newf2, newf3, newf4;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.62:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf2 char(20);
+declare newf1 date;
+declare cur1 cursor for SELECT f1, f3 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2;
+set @x = newf1;
+set @y = newf2;
+SELECT @x, @y;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.63:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+close cur1;
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+open cur1;
+END;
+close cur1;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.64:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+BEGIN
+open cur1;
+start transaction;
+fetch cur1 into newf1, newf2, newf4, newf3;
+commit;
+fetch cur1 into newf1, newf2, newf4, newf3;
+END;
+END//
+CALL sp1();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+DROP PROCEDURE sp1;
+
+Testcase 4.2.65:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+BEGIN
+open cur1;
+fetch cur1 into newf1, newf2, newf4, newf3;
+rollback;
+fetch cur1 into newf1, newf2, newf4, newf3;
+commit;
+END;
+END//
+CALL sp1();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+DROP PROCEDURE sp1;
+
+Testcase 4.2.66:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+fetch cur1 into newf1, newf2, newf4, newf3;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.67:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+
+Testcase 4.2.70:
+--------------------------------------------------------------------------------
+create table temp1( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+create table temp2( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare newf21 char(20);
+declare newf22 char(20);
+declare newf23 char(20);
+declare newf24 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 7, 1;
+declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 15, 1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+BEGIN
+set count = 10;
+BEGIN
+open cur2;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+insert into temp1 values(newf1, newf2, newf4, newf3);
+close cur1;
+END;
+BEGIN
+while count <> 0 do
+fetch cur2 into newf21, newf22, newf24, newf23;
+set count = count - 1;
+END while;
+END;
+insert into temp2 values(newf21, newf22, newf24, newf23);
+close cur2;
+END//
+CALL sp1();
+SELECT * from temp1;
+f1 f2 f3 f4
+agaaaaaaa agaaaaaaa -4993 agaaaaaaa
+SELECT * from temp2;
+f1 f2 f3 f4
+NULL NULL NULL NULL
+DROP PROCEDURE sp1;
+drop table temp1;
+drop table temp2;
+
+Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements
+. IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.3.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742(
+middleinitial CHAR,
+lastname VARCHAR(50),
+age_averylongfieldname_averylongname_1234569 int,
+COMMENT TEXT) ENGINE=innodb;
+INSERT INTO res_t3_itisalongname_1381742_itsaverylongname_1381742
+VALUES('a', 'aaaaaaaaaabbbbbbbbc', 0, 'default');
+CREATE PROCEDURE sp1(a int)
+BEGIN
+declare itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx char;
+declare itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx varchar(100);
+declare itisjustamediumsizeintintegervariablename integer;
+set itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx = 'b';
+set itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx = 'oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@%';
+set itisjustamediumsizeintintegervariablename = 5;
+set @comment='a';
+label1: loop
+if a>100 then
+set @comment='value of a is greater than 100';
+elseif a<100 then
+if a<50 then
+set @comment='value of a is less than 50';
+elseif a<25 then
+set @comment='value of a is less than 25';
+else
+set @comment='value of a is greater than 50 and less than 100';
+END if;
+else
+set @comment='value of a is 100';
+END if;
+if itisjustamediumsizeintintegervariablename = 0 then leave label1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+values( itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx,
+concat(itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx, ' ', a),
+a, @comment );
+set itisjustamediumsizeintintegervariablename = itisjustamediumsizeintintegervariablename - 1;
+iterate label1;
+END loop label1;
+END//
+CALL sp1(101);
+CALL sp1(100);
+CALL sp1(75);
+CALL sp1(40);
+CALL sp1(20);
+CALL sp1(-1);
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742
+ORDER BY middleinitial, lastname, age_averylongfieldname_averylongname_1234569;
+middleinitial lastname age_averylongfieldname_averylongname_1234569 COMMENT
+a aaaaaaaaaabbbbbbbbc 0 default
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE sp1;
+
+Testcase 4.3.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2 = 'address';
+set count = 1;
+case when action = 'delete' then
+insert into t3 values(v1, v2, count);
+delete from t3 where f1=v1;
+when action = 'insert' then
+repeat
+insert into t3 values(v1, v2, count);
+set count = count + 1;
+until count > 5
+END repeat;
+set count = 1;
+label1: repeat
+insert into t3 values(v1, v2, count);
+if count > 5 then leave label1;
+END if;
+set count = count + 1;
+until count > 5
+END repeat;
+set count = 1;
+while count < 5 do
+insert into t3 values(v1, v2, count);
+set count = count + 1;
+END while;
+set count = 1;
+label1: while count < 5 do
+insert into t3 values(v1, v2, count);
+if count > 5 then leave label1;
+END if;
+set count = count + 1;
+END while;
+else
+set @dummystring = 'temp value';
+END case;
+END//
+CALL sp2( 'insert' );
+SELECT * from t3 where f3 <=5 && f3 >= 0;
+f1 f2 f3
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 5
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 5
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+SELECT count(*) from t3;
+count(*)
+28
+CALL sp2( 'delete' );
+SELECT count(*) from t3;
+count(*)
+10
+CALL sp2 ('test');
+SELECT @dummystring;
+@dummystring
+temp value
+DROP PROCEDURE sp2;
+
+Testcase 4.1.2:
+---------------
+Ensure that all sub-clauses that should not be supported are disallowed with
+an appropriate error message. (case)
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp3;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742 (name char, address varchar(50), age_averylongfieldname_averylongname_1234569 smallint);
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case label1;
+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 'case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsav' at line 3
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: BEGIN
+case
+action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+END label1;
+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 'then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set' at line 5
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+then action = 'truncate' when
+truncate from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+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 'then action = 'truncate' when
+truncate from res_t3_itisalongname_1381742_itsave' at line 6
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2= 'address';
+set count = 1;
+case action
+when 'delete' then
+when 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+END case;
+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 'when 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_13' at line 10
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare count int default 1;
+declare done int default 0;
+declare continue handler for sqlstate 'HY000' set done=1;
+label1: loop
+case
+when action = 'delete' then
+label3:BEGIN
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+END label3;
+when action = 'insert' then
+label2: while count < 10 do
+BEGIN
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+values('xxxxxxxxxxxxxxxxxxx', '1231230981(*&(*&)(*&(', count);
+if done=1 then
+set count=10;
+END if;
+END;
+END while label2;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+if done=1 then
+leave label1;
+END if;
+END loop label1;
+SELECT count, done;
+END//
+DROP PROCEDURE sp3;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+if count > 10 then leave label1;
+else
+set count = count + 1;
+elseif count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+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 'elseif count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+EN' at line 9
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+else
+set count = count + 1;
+if count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+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 'else
+set count = count + 1;
+if count > 20 then
+leave label1;
+END if;
+iterate lab' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+elseif count > 20 then
+leave label1;
+else
+set count=count+1;
+END if;
+iterate label1;
+END loop label1;
+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 'elseif count > 20 then
+leave label1;
+else
+set count=count+1;
+END if;
+iterate lab' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+END if;
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;
+END loop label1;
+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 'END if;
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare i int default 10;
+if i > 20 then
+set i=25;
+END if
+declare count int;
+set count = 1;
+label1: loop
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;
+END loop label1;
+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 'declare count int;
+set count = 1;
+label1: loop
+if count > 20 then
+leave label1;
+' at line 7
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare idummy int default 10;
+declare count int;
+set count = 1;
+label1: loop
+BEGIN
+if count < 20 then
+BEGIN
+declare idummy2 int default 10;
+set count=count+1;
+END;
+else
+BEGIN
+SELECT idummy2;
+leave label1;
+END;
+END if;
+iterate label1;
+END;
+END loop label1;
+END//
+CALL sp4();
+ERROR 42S22: Unknown column 'idummy2' in 'field list'
+DROP PROCEDURE sp4;
+
+Testcase 4.3.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5()
+BEGIN
+declare count integer default 1;
+set count = 1;
+case
+else
+set count = 10;
+when count = 1 then
+set count = count + 1;
+END case;
+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 'else
+set count = 10;
+when count = 1 then
+set count = count + 1;
+END case;
+END' at line 6
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+when case count = 1 then
+set count = 10;
+when count = 2 then
+set count = count + 1;
+END case;
+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 'when case count = 1 then
+set count = 10;
+when count = 2 then
+set count = count' at line 3
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+END case;
+when count = 1 then
+set count = 10;
+when count = 2 then
+set count = count + 1;
+END case;
+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 'case;
+when count = 1 then
+set count = 10;
+when count = 2 then
+set count = coun' at line 3
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+when count = 1 then
+set count = 10;
+case when count = 2 then
+set count = count + 1;
+END case;
+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 'when count = 1 then
+set count = 10;
+case when count = 2 then
+set count = count' at line 3
+
+Testcase 4.3.6:
+---------------
+Ensure that all supported sub-clauses are supported only in the correct order (repeat).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+until count1 > 5
+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 'END repeat;
+until count1 > 5
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: until count1 > 5
+repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+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 'until count1 > 5
+repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1' at line 4
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: END repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+until count1 > 5
+repeat;
+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 'END repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+unt' at line 4
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+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 'END repeat;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+until count1 > 10;
+SELECT count1;
+END repeat;
+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 ';
+SELECT count1;
+END repeat;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1;
+until count1 < 0
+END repeat label1;
+SELECT count1;
+END//
+DROP PROCEDURE sp6;
+
+Testcase 4.3.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: loop
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+label1 iterate;
+END label1 loop;
+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 'iterate;
+END label1 loop;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: END loop;
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+iterate label1;
+loop;
+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 'END loop;
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END ' at line 3
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: iterate label1;
+loop
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+END loop label1;
+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 'iterate label1;
+loop
+set @dummystring = 'temp value';
+if count > 10 then leave l' at line 3
+
+Testcase 4.3.8:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+do while v1 > 0
+set v1 = v1 - 1;
+END while;
+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 v1 > 0
+set v1 = v1 - 1;
+END while;
+END' at line 4
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+do v1 > 0 while
+set v1 = v1 - 1;
+END while;
+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 'do v1 > 0 while
+set v1 = v1 - 1;
+END while;
+END' at line 4
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+END while;
+set v1 = v1 - 1;
+while v1 > 0 do;
+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;
+set v1 = v1 - 1;
+while v1 > 0 do;
+END' at line 4
+
+Testcase 4.3.12:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp12;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp12( )
+BEGIN
+declare count1 integer default 1;
+declare count2 int;
+label1: loop
+if count1 > 2 then leave label1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+label2: loop
+if count2 > 2 then leave label2;
+END if;
+set count2 = count2 + 1;
+END loop label1;
+set count1 = count1 + 1;
+iterate label1;
+END loop label2;
+END//
+ERROR 42000: End-label label2 without match
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.13:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp13;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp13( )
+BEGIN
+declare count1 integer default 1;
+lable1: loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop;
+END//
+CALL sp13();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 1
+xyz pqr 2
+DROP PROCEDURE sp13;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.14:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp14;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp14( )
+BEGIN
+declare count1 integer default 1;
+loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop label1;
+END//
+ERROR 42000: LEAVE with no matching label: lable1
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.15:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp15;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp15( )
+BEGIN
+declare count1 integer default 1;
+label1 loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop label1;
+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 'loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1' at line 4
+
+Testcase 4.3.16:
+----------------
+Ensure that every beginning label with the same scope must be unique.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp16;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE PROCEDURE sp16( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+set count2 = 1;
+label1: repeat
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( xyz , pqr, count1);
+until count2 > 3
+END repeat label1;
+until count1 > 3
+END repeat label1;
+END//
+ERROR 42000: Redefining label label1
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+declare count3 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+label1: repeat
+set count2 = count2 + 1;
+SELECT count2;
+until count2 > 3
+END repeat label1;
+SELECT count1;
+until count1 > 3
+END repeat label1;
+label1: repeat
+set count3 = count3 + 1;
+SELECT count3;
+until count3 > 3
+END repeat label1;
+END//
+ERROR 42000: Redefining label label1
+
+Testcase 4.3.17:
+--------------------------------------------------------------------------------
+
+Testcase 4.3.18:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp18;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE PROCEDURE sp18( )
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat label2;
+END//
+ERROR 42000: End-label label2 without match
+
+Testcase 4.3.19:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp19;
+CREATE PROCEDURE sp19( )
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat;
+END//
+CALL sp19();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+DROP PROCEDURE sp19;
+
+Testcase 4.3.20:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp20;
+CREATE PROCEDURE sp20( )
+BEGIN
+declare count1 integer default 1;
+repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat label1;
+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 'label1;
+END' at line 7
+
+Testcase 4.3.21:
+--------------------------------------------------------------------------------
+
+Testcase 4.3.22:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+label1: while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while label2;
+END while;
+END//
+ERROR 42000: End-label label2 without match
+
+Testcase 4.3.23:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while label1;
+END while;
+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 'label1;
+END while;
+END' at line 11
+
+Testcase 4.3.25:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+label1: while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while;
+END while;
+END//
+CALL sp25 ();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+xyz pqr 2
+xyz pqr 3
+xyz pqr 3
+DROP PROCEDURE sp25;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Section 3.1.4 - Checks for the global nature of stored procedures:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.4.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP DATABASE IF EXISTS d40401;
+CREATE PROCEDURE sp1 ( n char(20) )
+BEGIN
+SELECT n;
+END//
+CREATE DATABASE d40401;
+USE d40401;
+CALL db_storedproc.sp1('abcd');
+n
+abcd
+USE db_storedproc;
+DROP PROCEDURE sp1;
+DROP DATABASE d40401;
+
+Testcase 4.4.2:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+DROP DATABASE IF EXISTS d40402;
+CREATE FUNCTION fn1(n int) returns int
+BEGIN
+declare a int;
+set a = 9 * n;
+return a;
+END//
+CREATE DATABASE d40402;
+USE d40402;
+SELECT db_storedproc.fn1(100);
+db_storedproc.fn1(100)
+900
+SELECT db_storedproc.fn1(1000);
+db_storedproc.fn1(1000)
+9000
+CREATE FUNCTION db_storedproc.fn11(n int) returns int
+BEGIN
+declare a int;
+set a = 9 * n;
+return a;
+END//
+SELECT db_storedproc.fn11(100);
+db_storedproc.fn11(100)
+900
+SELECT db_storedproc.fn11(1000);
+db_storedproc.fn11(1000)
+9000
+USE db_storedproc;
+DROP FUNCTION fn1;
+DROP FUNCTION fn11;
+DROP DATABASE d40402;
+
+Testcase 4.4.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+CREATE DATABASE d1;
+CREATE DATABASE d2;
+USE d1;
+create table res_t41(a char(5), b char(10));
+insert into res_t41 values('abcde', 'a!@#$%^&*(');
+USE d2;
+create table res_t42(a char(5), b char(10));
+USE d1;
+CREATE PROCEDURE sp2(n char (20))
+BEGIN
+SELECT res_t41.a, res_t41.b into @a, @b from res_t41 where res_t41.b = n;
+insert into d2.res_t42 values (@a, @b);
+END//
+USE d2;
+CALL d1.sp2('a!@#$%^&*(');
+show warnings;
+Level Code Message
+SELECT * from d1.res_t41;
+a b
+abcde a!@#$%^&*(
+SELECT * from res_t42;
+a b
+abcde a!@#$%^&*(
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+Testcase 4.4.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+CREATE PROCEDURE sp3()
+BEGIN
+USE d1;
+END//
+ERROR 0A000: USE is not allowed in stored procedures
+USE db_storedproc;
+DROP DATABASE d1;
+
+Testcase 4.4.5:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+create table t43(a char(5), b char(10));
+insert into t43 values('abcde', 'a!@#$%^&*(');
+CREATE PROCEDURE d1.sp4()
+SELECT * from d1.t43;
+SELECT * from mysql.proc where specific_name = 'sp4';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 sp4 PROCEDURE sp4 SQL CONTAINS_SQL NO DEFINER SELECT * from d1.t43 root@localhost modified created
+USE db_storedproc;
+DROP DATABASE d1;
+CREATE DATABASE d1;
+USE d1;
+create table t44(a char(5), b char(10));
+SELECT * from mysql.proc where specific_name = 'sp4';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+USE db_storedproc;
+DROP DATABASE d1;
+
+Testcase 4.4.6:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5()
+SELECT * from db_storedproc.t4 limit 0, 10;
+SELECT db from mysql.proc where specific_name = 'sp5';
+db
+db_storedproc
+DROP PROCEDURE sp5;
+
+Testcase 4.4.7:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+drop table IF EXISTS t46;
+DROP PROCEDURE IF EXISTS sp6;
+create table t46(f1 char(20), f2 char(20));
+insert into t46 values ('abcd', 'wxyz');
+CREATE PROCEDURE db_storedproc.sp6()
+SELECT * from db_storedproc.t4 limit 0, 10;
+SELECT db from mysql.proc where specific_name = 'sp6';
+db
+db_storedproc
+drop table t46;
+DROP PROCEDURE sp6;
+
+Testcase 4.4.8:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+CREATE DATABASE d1;
+CREATE DATABASE d2;
+USE d1;
+CREATE PROCEDURE sp8 ( n char(20) ) sql security definer comment 'initial'
+ SELECT * from t1 where t1.f1 = n;
+USE d2;
+alter procedure d1.sp8 sql security definer comment 'updated';
+SELECT * from mysql.proc where specific_name='sp8' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 sp8 PROCEDURE sp8 SQL CONTAINS_SQL NO DEFINER n char(20) SELECT * from t1 where t1.f1 = n root@localhost modified created updated
+
+Testcase 4.4.9:
+--------------------------------------------------------------------------------
+USE d1;
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+CREATE FUNCTION d1.fn2(n int) returns int sql security invoker comment 'initial'
+BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END//
+USE d2;
+alter function d1.fn2 sql security definer comment 'updated';
+SELECT * from mysql.proc where specific_name='fn2' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 fn2 FUNCTION fn2 SQL CONTAINS_SQL NO DEFINER n int int(11) BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END root@localhost modified created updated
+
+Testcase 4.4.10:
+--------------------------------------------------------------------------------
+USE d1;
+CREATE PROCEDURE sp9 ( n char(20) )
+SELECT * from t1 where t1.f1 = n;
+USE d2;
+DROP PROCEDURE d1.sp9;
+SELECT * from mysql.proc where specific_name='sp9' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.4.11:
+--------------------------------------------------------------------------------
+USE d1;
+CREATE FUNCTION d1.fn3(n int) returns int
+BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END//
+USE d2;
+DROP FUNCTION d1.fn3;
+SELECT * from mysql.proc where specific_name='fn3' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+Section 3.1.5 - Parameter use checks:
+Functions with all data types
+--------------------------------------------------------------------------------
+SELECT 1 as 'bug_dec_num';
+bug_dec_num
+1
+
+.
+FIXME: There are differences with datatypes DECIMAL and NUMERIC if large
+FIXME: exponent values are used. The diffs are shown only on some machines like
+FIXME: AIX52 and HPUX11. Until this has been solved we use numbers that
+FIXME: *should* be equal to the exponent representation but have no exponents
+FIXME: and use the specified count of *0*s instead.
+FIXME: In the source file these tests are marked with the comment hpux11
+.
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 bigint) returns bigint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn1(-9.22e+18);
+fn1(-9.22e+18)
+-9220000000000000000
+DROP FUNCTION IF EXISTS fn2;
+CREATE FUNCTION fn2( f1 bigint unsigned) returns bigint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn2(1.84e+19);
+fn2(1.84e+19)
+-46744073709551616
+DROP FUNCTION IF EXISTS fn3;
+CREATE FUNCTION fn3( f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn3(1.84e+17);
+fn3(1.84e+17)
+184000000000000000
+DROP FUNCTION IF EXISTS fn4;
+CREATE FUNCTION fn4( f1 bigint zerofill) returns bigint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn4(-9.22e+15);
+fn4(-9.22e+15)
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn5;
+CREATE FUNCTION fn5( f1 decimal) returns decimal
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn5(-1.00e+09);
+fn5(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn6;
+CREATE FUNCTION fn6( f1 decimal (0)) returns decimal (0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn6(-1.00e+09);
+fn6(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn7;
+CREATE FUNCTION fn7( f1 decimal (0) unsigned) returns decimal (0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn7(99999999999);
+fn7(99999999999)
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn8;
+CREATE FUNCTION fn8( f1 decimal (0) unsigned zerofill) returns decimal (0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn8(999999999);
+fn8(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn9;
+CREATE FUNCTION fn9( f1 decimal (0) zerofill) returns decimal (0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn9(-1.00e+09);
+fn9(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn10;
+CREATE FUNCTION fn10( f1 decimal (0, 0)) returns decimal (0, 0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn10(-1.00e+09);
+fn10(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn11;
+CREATE FUNCTION fn11( f1 decimal (0, 0) unsigned) returns decimal (0, 0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn11(99999999999);
+fn11(99999999999)
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn12;
+CREATE FUNCTION fn12( f1 decimal (0, 0) unsigned zerofill) returns decimal (0, 0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn12(999999999);
+fn12(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn13;
+CREATE FUNCTION fn13( f1 decimal (0, 0) zerofill) returns decimal (0, 0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn13(-1.00e+09);
+fn13(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn14;
+CREATE FUNCTION fn14( f1 decimal (63, 30)) returns decimal (63, 30)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn14(-1.00e+21);
+fn14(-1.00e+21)
+-1000000000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn15;
+CREATE FUNCTION fn15( f1 decimal (63, 30) unsigned) returns decimal (63, 30) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn15(1.00e+16);
+fn15(1.00e+16)
+10000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn16;
+CREATE FUNCTION fn16( f1 decimal (63, 30) unsigned zerofill) returns decimal (63, 30) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn16(1.00e+16);
+fn16(1.00e+16)
+000000000000000010000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn17;
+CREATE FUNCTION fn17( f1 decimal (63, 30) zerofill) returns decimal (63, 30) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn17(-1.00e+21);
+fn17(-1.00e+21)
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn18_d;
+CREATE FUNCTION fn18_d( f1 decimal (64)) returns decimal (64)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn18_d( -1000000000000000000000000000000 );
+fn18_d( -1000000000000000000000000000000 )
+-1000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn19_du;
+CREATE FUNCTION fn19_du( f1 decimal (64) unsigned) returns decimal (64) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn19_du( 100000000000000000000 );
+fn19_du( 100000000000000000000 )
+100000000000000000000
+DROP FUNCTION IF EXISTS fn20_duz;
+CREATE FUNCTION fn20_duz( f1 decimal (64) unsigned zerofill) returns decimal (64) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn20_duz( 1000000000000000000000000 );
+fn20_duz( 1000000000000000000000000 )
+0000000000000000000000000000000000000001000000000000000000000000
+DROP FUNCTION IF EXISTS fn21_d_z;
+CREATE FUNCTION fn21_d_z( f1 decimal (64) zerofill) returns decimal (64) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn21_d_z(1.00e+00);
+fn21_d_z(1.00e+00)
+0000000000000000000000000000000000000000000000000000000000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn22;
+CREATE FUNCTION fn22( f1 decimal unsigned) returns decimal unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn22(1.00e+00);
+fn22(1.00e+00)
+10
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn23;
+CREATE FUNCTION fn23( f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn23(1.00e+00);
+fn23(1.00e+00)
+0000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn24;
+CREATE FUNCTION fn24( f1 decimal zerofill) returns decimal zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn24(-1.00e+09);
+fn24(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn25;
+CREATE FUNCTION fn25( f1 double) returns double
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn25(1.00e+00);
+fn25(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn26;
+CREATE FUNCTION fn26( f1 double unsigned) returns double unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn26(1.00e+00);
+fn26(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn27;
+CREATE FUNCTION fn27( f1 double unsigned zerofill) returns double unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn27(1.00e+00);
+fn27(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn28;
+CREATE FUNCTION fn28( f1 double zerofill) returns double zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn28(1.00e+00);
+fn28(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn29;
+CREATE FUNCTION fn29( f1 float) returns float
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn29(1.00e+00);
+fn29(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn30;
+CREATE FUNCTION fn30( f1 float unsigned) returns float unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn30(1.00e+00);
+fn30(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn31;
+CREATE FUNCTION fn31( f1 float unsigned zerofill) returns float unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn31(1.00e+00);
+fn31(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn32;
+CREATE FUNCTION fn32( f1 float zerofill) returns float zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn32(1.00e+00);
+fn32(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn33;
+CREATE FUNCTION fn33( f1 float(0)) returns float(0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn33(1.00e+00);
+fn33(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn34;
+CREATE FUNCTION fn34( f1 float(0) unsigned) returns float(0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn34(1.00e+00);
+fn34(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn35;
+CREATE FUNCTION fn35( f1 float(0) unsigned zerofill) returns float(0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn35(1.00e+00);
+fn35(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn36;
+CREATE FUNCTION fn36( f1 float(0) zerofill) returns float(0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn36(1.00e+00);
+fn36(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn37;
+CREATE FUNCTION fn37( f1 float(23)) returns float(23)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn37(1.00e+00);
+fn37(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn38;
+CREATE FUNCTION fn38( f1 float(23) unsigned) returns float(23) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn38(1.00e+00);
+fn38(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn39;
+CREATE FUNCTION fn39( f1 float(23) unsigned zerofill) returns float(23) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn39(1.00e+00);
+fn39(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn40;
+CREATE FUNCTION fn40( f1 float(23) zerofill) returns float(23) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn40(1.00e+00);
+fn40(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn41;
+CREATE FUNCTION fn41( f1 float(24)) returns float(24)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn41(1.00e+00);
+fn41(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn42;
+CREATE FUNCTION fn42( f1 float(24) unsigned) returns float(24) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn42(1.00e+00);
+fn42(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn43;
+CREATE FUNCTION fn43( f1 float(24) unsigned zerofill) returns float(24) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn43(1.00e+00);
+fn43(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn44;
+CREATE FUNCTION fn44( f1 float(24) zerofill) returns float(24) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn44(1.00e+00);
+fn44(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn45;
+CREATE FUNCTION fn45( f1 float(53)) returns float(53)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn45(1.00e+00);
+fn45(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn46;
+CREATE FUNCTION fn46( f1 float(53) unsigned) returns float(53) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn46(1.00e+00);
+fn46(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn47;
+CREATE FUNCTION fn47( f1 float(53) unsigned zerofill) returns float(53) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn47(1.00e+00);
+fn47(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn48;
+CREATE FUNCTION fn48( f1 float(53) zerofill) returns float(53) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn48(1.00e+00);
+fn48(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn49;
+CREATE FUNCTION fn49( f1 int) returns int
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn49(-2.15e+09);
+fn49(-2.15e+09)
+-2147483638
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn50;
+CREATE FUNCTION fn50( f1 int unsigned) returns int unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn50(4.29e+09);
+fn50(4.29e+09)
+4290000000
+DROP FUNCTION IF EXISTS fn51;
+CREATE FUNCTION fn51( f1 int unsigned zerofill) returns int unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn51(4.29e+09);
+fn51(4.29e+09)
+4290000000
+DROP FUNCTION IF EXISTS fn52;
+CREATE FUNCTION fn52( f1 int zerofill) returns int zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn52(2.15e+08);
+fn52(2.15e+08)
+215000000
+DROP FUNCTION IF EXISTS fn53;
+CREATE FUNCTION fn53( f1 mediumint) returns mediumint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn53(-8388600);
+fn53(-8388600)
+-8388598
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn54;
+CREATE FUNCTION fn54( f1 mediumint unsigned) returns mediumint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn54(16777201);
+fn54(16777201)
+16777202
+DROP FUNCTION IF EXISTS fn55;
+CREATE FUNCTION fn55( f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn55(16777210);
+fn55(16777210)
+16777210
+DROP FUNCTION IF EXISTS fn56;
+CREATE FUNCTION fn56( f1 mediumint zerofill) returns mediumint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn56(-8388601);
+fn56(-8388601)
+16777215
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn57;
+CREATE FUNCTION fn57( f1 numeric) returns numeric
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn57(-999999999);
+fn57(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn58;
+CREATE FUNCTION fn58( f1 numeric (0)) returns numeric (0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn58(-999999999);
+fn58(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn59;
+CREATE FUNCTION fn59( f1 numeric (0) unsigned) returns numeric (0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn59(9999999999);
+fn59(9999999999)
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn60;
+CREATE FUNCTION fn60( f1 numeric (0) unsigned zerofill) returns numeric (0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn60(99999999);
+fn60(99999999)
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn61;
+CREATE FUNCTION fn61( f1 numeric (0) zerofill) returns numeric (0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn61(-99999999);
+fn61(-99999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn62;
+CREATE FUNCTION fn62( f1 numeric (0, 0)) returns numeric (0, 0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn62(-999999999);
+fn62(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn63;
+CREATE FUNCTION fn63( f1 numeric (0, 0) unsigned) returns numeric (0, 0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn63(9999999999);
+fn63(9999999999)
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn64;
+CREATE FUNCTION fn64( f1 numeric (0, 0) unsigned zerofill) returns numeric (0, 0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn64(99999999);
+fn64(99999999)
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn65;
+CREATE FUNCTION fn65( f1 numeric (0, 0) zerofill) returns numeric (0, 0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn65(-99999999);
+fn65(-99999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn66;
+CREATE FUNCTION fn66( f1 numeric (63, 30)) returns numeric (63, 30)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn66(-1e+36);
+fn66(-1e+36)
+-999999999999999999999999999999989.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn67;
+CREATE FUNCTION fn67( f1 numeric (63, 30) unsigned) returns numeric (63, 30) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn67(1e+36);
+fn67(1e+36)
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn68;
+CREATE FUNCTION fn68( f1 numeric (63, 30) unsigned zerofill) returns numeric (63, 30) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn68(1e+36);
+fn68(1e+36)
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn69;
+CREATE FUNCTION fn69( f1 numeric (63, 30) zerofill) returns numeric (63, 30) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn69(-1e+36);
+fn69(-1e+36)
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn70_n;
+CREATE FUNCTION fn70_n( f1 numeric (64)) returns numeric (64)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn70_n( -1000000000000000000000000000000 );
+fn70_n( -1000000000000000000000000000000 )
+-1000000000000000000000000000000
+SELECT fn70_n( -10000000000000000000000000000000000000000 );
+fn70_n( -10000000000000000000000000000000000000000 )
+-10000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn71_nu;
+CREATE FUNCTION fn71_nu( f1 numeric (64) unsigned) returns numeric (64) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn71_nu( 10000000000000000000000000000000000000000 );
+fn71_nu( 10000000000000000000000000000000000000000 )
+10000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn72_nuz;
+CREATE FUNCTION fn72_nuz( f1 numeric (64) unsigned zerofill) returns numeric (64) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn72_nuz( 10000000000000000000000000000000000000000 );
+fn72_nuz( 10000000000000000000000000000000000000000 )
+0000000000000000000000010000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn73_n_z;
+CREATE FUNCTION fn73_n_z( f1 numeric (64) zerofill) returns numeric (64) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn73_n_z( 10000000000000000000000000000000000000000 );
+fn73_n_z( 10000000000000000000000000000000000000000 )
+0000000000000000000000010000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn74;
+CREATE FUNCTION fn74( f1 numeric unsigned) returns numeric unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn74(999999999);
+fn74(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn75;
+CREATE FUNCTION fn75( f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn75(999999999);
+fn75(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn76;
+CREATE FUNCTION fn76( f1 numeric zerofill) returns numeric zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn76(-999999999);
+fn76(-999999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn77;
+CREATE FUNCTION fn77( f1 real) returns real
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn77(1.1);
+fn77(1.1)
+1.1
+DROP FUNCTION IF EXISTS fn78;
+CREATE FUNCTION fn78( f1 real unsigned) returns real unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn78(1.1);
+fn78(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn79;
+CREATE FUNCTION fn79( f1 real unsigned zerofill) returns real unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn79(1.1);
+fn79(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn80;
+CREATE FUNCTION fn80( f1 real zerofill) returns real zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn80(1.1);
+fn80(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn81;
+CREATE FUNCTION fn81( f1 smallint) returns smallint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn81(-32701);
+fn81(-32701)
+-32702
+DROP FUNCTION IF EXISTS fn82;
+CREATE FUNCTION fn82( f1 smallint unsigned) returns smallint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn82(65531);
+fn82(65531)
+65532
+DROP FUNCTION IF EXISTS fn83;
+CREATE FUNCTION fn83( f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn83(65531);
+fn83(65531)
+65532
+DROP FUNCTION IF EXISTS fn84;
+CREATE FUNCTION fn84( f1 smallint zerofill) returns smallint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn84(-32601);
+fn84(-32601)
+65535
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn85;
+CREATE FUNCTION fn85( f1 tinyint) returns tinyint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn85(-115);
+fn85(-115)
+-116
+DROP FUNCTION IF EXISTS fn86;
+CREATE FUNCTION fn86( f1 tinyint unsigned) returns tinyint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn86(251);
+fn86(251)
+252
+DROP FUNCTION IF EXISTS fn87;
+CREATE FUNCTION fn87( f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn87(201);
+fn87(201)
+202
+DROP FUNCTION IF EXISTS fn88;
+CREATE FUNCTION fn88( f1 tinyint zerofill) returns tinyint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn88(-101);
+fn88(-101)
+255
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn89;
+CREATE FUNCTION fn89( f1 enum('1enum', '2enum')) returns enum('1enum', '2enum')
+BEGIN
+if f1 eq "1enum" then
+set f1 = '2enum';
+else
+set f1 = '1enum';
+END if;
+return f1;
+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 'eq "1enum" then
+set f1 = '2enum';
+else
+set f1 = '1enum';
+END if;
+return f1;
+END' at line 3
+SELECT fn89( '1enum');
+ERROR 42000: FUNCTION d1.fn89 does not exist
+DROP FUNCTION IF EXISTS fn90;
+CREATE FUNCTION fn90( f1 set("1set", "2set")) returns set("1set", "2set")
+BEGIN
+if(f1 == "1set") then
+set f1 = "2set";
+else
+set f1 = "1set";
+END if;
+return f1;
+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 '== "1set") then
+set f1 = "2set";
+else
+set f1 = "1set";
+END if;
+return f1;
+END' at line 3
+SELECT fn90( '1set');
+ERROR 42000: FUNCTION d1.fn90 does not exist
+DROP FUNCTION IF EXISTS fn91;
+CREATE FUNCTION fn91( f1 date) returns date
+BEGIN
+set f1 = adddate(f1, interval 31 day);
+return f1;
+END//
+SELECT fn91('1997-12-31');
+fn91('1997-12-31')
+1998-01-31
+DROP FUNCTION IF EXISTS fn92;
+CREATE FUNCTION fn92( f1 time) returns time
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998');
+return f1;
+END//
+SELECT fn92( '23:59:59.999999');
+fn92( '23:59:59.999999')
+25:59:59
+DROP FUNCTION IF EXISTS fn93;
+CREATE FUNCTION fn93( f1 datetime) returns datetime
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002');
+return f1;
+END//
+SELECT fn93('1997-12-31 23:59:59.999999');
+fn93('1997-12-31 23:59:59.999999')
+1998-01-02 01:01:00
+DROP FUNCTION IF EXISTS fn94;
+CREATE FUNCTION fn94( f1 char) returns char
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn94( 'h');
+fn94( 'h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn95;
+CREATE FUNCTION fn95( f1 char ascii) returns char ascii
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn95('h');
+fn95('h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn96;
+CREATE FUNCTION fn96( f1 char binary) returns char binary
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn96( 'h');
+fn96( 'h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn97;
+CREATE FUNCTION fn97( f1 longtext) returns longtext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn97( 'world');
+fn97( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn98;
+CREATE FUNCTION fn98( f1 mediumtext) returns mediumtext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn98( 'world');
+fn98( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn99;
+CREATE FUNCTION fn99( f1 text) returns text
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn99( 'world');
+fn99( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn100;
+CREATE FUNCTION fn100( f1 tinytext) returns tinytext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn100( 'world');
+fn100( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn101;
+CREATE FUNCTION fn101( f1 year) returns year
+BEGIN
+set f1 = f1 + 10;
+return f1;
+END//
+SELECT fn101(51);
+fn101(51)
+2061
+DROP FUNCTION IF EXISTS fn102;
+CREATE FUNCTION fn102( f1 year(4)) returns year(4)
+BEGIN
+set f1 = f1 + 51;
+return f1;
+END//
+SELECT fn102(1982);
+fn102(1982)
+2033
+DROP FUNCTION IF EXISTS fn103;
+CREATE FUNCTION fn103( f1 geometrycollection) returns geometrycollection
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\
+
+DROP FUNCTION IF EXISTS fn104;
+CREATE FUNCTION fn104( f1 linestring) returns linestring
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@')
+
+DROP FUNCTION IF EXISTS fn105;
+CREATE FUNCTION fn105( f1 point) returns point
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@')
+
+DROP FUNCTION IF EXISTS fn106;
+CREATE FUNCTION fn106( f1 polygon) returns polygon
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\
+
+DROP FUNCTION IF EXISTS fn107;
+CREATE FUNCTION fn107( f1 timestamp) returns timestamp
+BEGIN
+set f1 = now();
+return f1;
+END//
+SELECT fn107(20050510080451);
+fn107(20050510080451)
+returned
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp1(-9.22e+18);
+f1
+-9220000000000000000
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( f1 bigint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp2(1.84e+19);
+f1
+18400000000000000000
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( f1 bigint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp3(1.84e+17);
+f1
+00184000000000000000
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4( f1 bigint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp4(-9.22e+15);
+f1
+00000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5( f1 decimal)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: default (10) for DECIMAL not checked, decimal digits shown although not defined
+CALL sp5(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( f1 decimal (0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp6(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7( f1 decimal (0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp7(99999999999);
+f1
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8( f1 decimal (0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp8(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp9;
+CREATE PROCEDURE sp9( f1 decimal (0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp9(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp10;
+CREATE PROCEDURE sp10( f1 decimal (0, 0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp10(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11( f1 decimal (0, 0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp11(99999999999);
+f1
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp12;
+CREATE PROCEDURE sp12( f1 decimal (0, 0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp12(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp13;
+CREATE PROCEDURE sp13( f1 decimal (0, 0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp13(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp14;
+CREATE PROCEDURE sp14( f1 decimal (63, 30))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp14(-1.00e+21);
+f1
+-1000000000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp15;
+CREATE PROCEDURE sp15( f1 decimal (63, 30) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp15(1.00e+16);
+f1
+10000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( f1 decimal (63, 30) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp16(1.00e+16);
+f1
+000000000000000010000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp17;
+CREATE PROCEDURE sp17( f1 decimal (63, 30) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp17(-1.00e+21);
+f1
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp18_d;
+CREATE PROCEDURE sp18_d( f1 decimal (64))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp18_d( -1000000000000000000000000000000 );
+f1
+-1000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp19_du;
+CREATE PROCEDURE sp19_du( f1 decimal (64) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp19_du( 100000000000000000000 );
+f1
+100000000000000000000
+CALL sp19_du( 1000000000000000000000000 );
+f1
+1000000000000000000000000
+DROP PROCEDURE IF EXISTS sp20_duz;
+CREATE PROCEDURE sp20_duz( f1 decimal (64) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp20_duz( 100000000000000000000 );
+f1
+0000000000000000000000000000000000000000000100000000000000000000
+CALL sp20_duz( 1000000000000000000000000 );
+f1
+0000000000000000000000000000000000000001000000000000000000000000
+DROP PROCEDURE IF EXISTS sp21;
+CREATE PROCEDURE sp21( f1 decimal (64) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp21(1.00e+00);
+f1
+0000000000000000000000000000000000000000000000000000000000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( f1 decimal unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp22(1.00e+00);
+f1
+10
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( f1 decimal unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp23(1.00e+00);
+f1
+0000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp24;
+CREATE PROCEDURE sp24( f1 decimal zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp24(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( f1 double)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp25(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp26;
+CREATE PROCEDURE sp26( f1 double unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp26(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp27;
+CREATE PROCEDURE sp27( f1 double unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp27(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp28;
+CREATE PROCEDURE sp28( f1 double zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp28(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp29;
+CREATE PROCEDURE sp29( f1 float)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp29(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp30;
+CREATE PROCEDURE sp30( f1 float unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp30(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp31;
+CREATE PROCEDURE sp31( f1 float unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp31(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp32;
+CREATE PROCEDURE sp32( f1 float zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp32(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp33;
+CREATE PROCEDURE sp33( f1 float(0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp33(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp34;
+CREATE PROCEDURE sp34( f1 float(0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp34(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp35;
+CREATE PROCEDURE sp35( f1 float(0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp35(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp36;
+CREATE PROCEDURE sp36( f1 float(0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp36(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp37;
+CREATE PROCEDURE sp37( f1 float(23))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp37(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp38;
+CREATE PROCEDURE sp38( f1 float(23) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp38(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp39;
+CREATE PROCEDURE sp39( f1 float(23) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp39(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp40;
+CREATE PROCEDURE sp40( f1 float(23) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp40(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp41;
+CREATE PROCEDURE sp41( f1 float(24))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp41(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp42;
+CREATE PROCEDURE sp42( f1 float(24) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp42(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp43;
+CREATE PROCEDURE sp43( f1 float(24) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp43(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp44;
+CREATE PROCEDURE sp44( f1 float(24) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp44(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp45;
+CREATE PROCEDURE sp45( f1 float(53))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp45(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp46;
+CREATE PROCEDURE sp46( f1 float(53) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp46(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp47;
+CREATE PROCEDURE sp47( f1 float(53) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp47(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp48;
+CREATE PROCEDURE sp48( f1 float(53) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp48(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp49;
+CREATE PROCEDURE sp49( f1 int)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp49(-2.15e+09);
+f1
+-2147483638
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp50;
+CREATE PROCEDURE sp50( f1 int unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp50(4.29e+09);
+f1
+4290000000
+DROP PROCEDURE IF EXISTS sp51;
+CREATE PROCEDURE sp51( f1 int unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp51(4.29e+09);
+f1
+4290000000
+DROP PROCEDURE IF EXISTS sp52;
+CREATE PROCEDURE sp52( f1 int zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp52(2.15e+08);
+f1
+0215000000
+DROP PROCEDURE IF EXISTS sp53;
+CREATE PROCEDURE sp53( f1 mediumint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp53(-8388600);
+f1
+-8388598
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp54;
+CREATE PROCEDURE sp54( f1 mediumint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp54(16777201);
+f1
+16777202
+DROP PROCEDURE IF EXISTS sp55;
+CREATE PROCEDURE sp55( f1 mediumint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp55(16777210);
+f1
+16777210
+DROP PROCEDURE IF EXISTS sp56;
+CREATE PROCEDURE sp56( f1 mediumint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp56(-8388601);
+f1
+16777215
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp57;
+CREATE PROCEDURE sp57( f1 numeric)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp57(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp58;
+CREATE PROCEDURE sp58( f1 numeric (0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp58(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp59;
+CREATE PROCEDURE sp59( f1 numeric (0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp59(9999999999);
+f1
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp60;
+CREATE PROCEDURE sp60( f1 numeric (0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp60(99999999);
+f1
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp61;
+CREATE PROCEDURE sp61( f1 numeric (0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp61(-99999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp62;
+CREATE PROCEDURE sp62( f1 numeric (0, 0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp62(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp63;
+CREATE PROCEDURE sp63( f1 numeric (0, 0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp63(9999999999);
+f1
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp64;
+CREATE PROCEDURE sp64( f1 numeric (0, 0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp64(99999999);
+f1
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp65;
+CREATE PROCEDURE sp65( f1 numeric (0, 0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp65(-99999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp66_n;
+CREATE PROCEDURE sp66_n( f1 numeric (63, 30))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp66_n( -1000000000000000000000000000000000000 );
+f1
+-999999999999999999999999999999989.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp67_nu;
+CREATE PROCEDURE sp67_nu( f1 numeric (63, 30) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp67_nu( 1000000000000000000000000000000000000 );
+f1
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp68_nuz;
+CREATE PROCEDURE sp68_nuz( f1 numeric (63, 30) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp68_nuz( 1000000000000000000000000000000000000 );
+f1
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp69_n_z;
+CREATE PROCEDURE sp69_n_z( f1 numeric (63, 30) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp69_n_z( -1000000000000000000000000000000000000 );
+f1
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp70_n;
+CREATE PROCEDURE sp70_n( f1 numeric (64))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp70_n( -10000000000000000000000000000000000000000 );
+f1
+-10000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp71_nu;
+CREATE PROCEDURE sp71_nu( f1 numeric (64) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp71_nu( 10000000000000000000000000000000000000000 );
+f1
+10000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp72_nuz;
+CREATE PROCEDURE sp72_nuz( f1 numeric (64) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp72_nuz( 10000000000000000000000000000000000000000 );
+f1
+0000000000000000000000010000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp73_n_z;
+CREATE PROCEDURE sp73_n_z( f1 numeric (64) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp73_n_z( 10000000000000000000000000000000000000000 );
+f1
+0000000000000000000000010000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp74;
+CREATE PROCEDURE sp74( f1 numeric unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp74(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp75;
+CREATE PROCEDURE sp75( f1 numeric unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp75(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp76;
+CREATE PROCEDURE sp76( f1 numeric zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp76(-999999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp77;
+CREATE PROCEDURE sp77( f1 real)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp77(1.1);
+f1
+1.1
+DROP PROCEDURE IF EXISTS sp78;
+CREATE PROCEDURE sp78( f1 real unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp78(1.1);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp79;
+CREATE PROCEDURE sp79( f1 real unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp79(1.1);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp80;
+CREATE PROCEDURE sp80( f1 real zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp80(1.1);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp81;
+CREATE PROCEDURE sp81( f1 smallint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp81(-32701);
+f1
+-32702
+DROP PROCEDURE IF EXISTS sp82;
+CREATE PROCEDURE sp82( f1 smallint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp82(65531);
+f1
+65532
+DROP PROCEDURE IF EXISTS sp83;
+CREATE PROCEDURE sp83( f1 smallint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp83(65531);
+f1
+65532
+DROP PROCEDURE IF EXISTS sp84;
+CREATE PROCEDURE sp84( f1 smallint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp84(-32601);
+f1
+65535
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp85;
+CREATE PROCEDURE sp85( f1 tinyint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp85(-115);
+f1
+-116
+DROP PROCEDURE IF EXISTS sp86;
+CREATE PROCEDURE sp86( f1 tinyint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp86(251);
+f1
+252
+DROP PROCEDURE IF EXISTS sp87;
+CREATE PROCEDURE sp87( f1 tinyint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp87(201);
+f1
+202
+DROP PROCEDURE IF EXISTS sp88;
+CREATE PROCEDURE sp88( f1 tinyint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp88(-101);
+f1
+255
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp89;
+DROP PROCEDURE IF EXISTS sp90;
+DROP PROCEDURE IF EXISTS sp91;
+CREATE PROCEDURE sp91( f1 date)
+BEGIN
+set f1 = adddate(f1, interval 31 day);
+SELECT f1;
+END//
+CALL sp91( '1997-12-31');
+f1
+1998-01-31
+DROP PROCEDURE IF EXISTS sp92;
+CREATE PROCEDURE sp92( f1 time)
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998');
+SELECT f1;
+END//
+CALL sp92( '23:59:59.999999');
+f1
+25:59:59
+DROP PROCEDURE IF EXISTS sp93;
+CREATE PROCEDURE sp93( f1 datetime)
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002');
+SELECT f1;
+END//
+CALL sp93('1997-12-31 23:59:59.999999');
+f1
+1998-01-02 01:01:00
+DROP PROCEDURE IF EXISTS sp94;
+CREATE PROCEDURE sp94( f1 char)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp94( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp95;
+CREATE PROCEDURE sp95( f1 char ascii)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp95( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp96;
+CREATE PROCEDURE sp96( f1 char binary)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp96( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp97;
+CREATE PROCEDURE sp97( f1 longtext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp97( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp98;
+CREATE PROCEDURE sp98( f1 mediumtext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp98( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp99;
+CREATE PROCEDURE sp99( f1 text)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp99( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp100;
+CREATE PROCEDURE sp100( f1 tinytext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp100( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp101;
+CREATE PROCEDURE sp101( f1 year)
+BEGIN
+set f1 = f1 + 10;
+SELECT f1;
+END//
+CALL sp101(51);
+f1
+2061
+DROP PROCEDURE IF EXISTS sp102;
+CREATE PROCEDURE sp102( f1 year(4))
+BEGIN
+set f1 = f1 + 51;
+SELECT f1;
+END//
+CALL sp102(1982);
+f1
+2033
+DROP PROCEDURE IF EXISTS sp103;
+CREATE PROCEDURE sp103( f1 geometrycollection)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp104;
+CREATE PROCEDURE sp104( f1 linestring)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp105;
+CREATE PROCEDURE sp105( f1 point)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+f1
+
+DROP PROCEDURE IF EXISTS sp106;
+CREATE PROCEDURE sp106( f1 polygon)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp107;
+CREATE PROCEDURE sp107( f1 timestamp)
+BEGIN
+set f1 = now() + 0 + f1;
+SELECT f1;
+END//
+CALL sp107(2.00e+13);
+f1
+returned
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( in f1 year, inout f2 year, out f3 year, in f4 year,
+inout f5 year, out f6 year, in f7 year(4), inout f8 year(4),
+out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute01;
+CREATE PROCEDURE spexecute01()
+BEGIN
+declare var1 year;
+declare var2 year;
+declare var3 year;
+declare var4 year;
+declare var5 year(4);
+declare var6 year(4);
+declare var7 year(4);
+declare var8 year(4);
+set var1 = 51;
+set var3 = 51;
+set var5 = 1982;
+set var7 = 1982;
+CALL sp1(51, var1, var2, 51, var3, var4, 1982, var5, var6, 1982, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute01();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2061 2061 2071 2061 2061 2071 2033 2033 2084 2033 2033 2084
+var1 var2 var3 var4 var5 var6 var7 var8
+2061 2071 2061 2071 2033 2084 2033 2084
+DROP PROCEDURE spexecute01;
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text,
+out f6 text, in f7 tinytext, inout f8 tinytext, out f9 tinytext,
+in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute02;
+CREATE PROCEDURE spexecute02()
+BEGIN
+declare var1 text;
+declare var2 text;
+declare var3 text;
+declare var4 text;
+declare var5 tinytext;
+declare var6 tinytext;
+declare var7 tinytext;
+declare var8 tinytext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp2( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute02();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute02;
+DROP PROCEDURE sp2;
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( in f1 char, inout f2 char, out f3 char, in f4 char ascii,
+inout f5 char ascii, out f6 char ascii, in f7 longtext,
+inout f8 longtext, out f9 longtext, in f10 mediumtext,
+inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f9);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute03;
+CREATE PROCEDURE spexecute03()
+BEGIN
+declare var1 char;
+declare var2 char;
+declare var3 char ascii;
+declare var4 char ascii;
+declare var5 longtext;
+declare var6 longtext;
+declare var7 mediumtext;
+declare var8 mediumtext;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp3( 'h', var1, var2, 'h', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute03();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a helloworld helloworld NULL helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a helloworld NULL helloworld hellohelloworld
+DROP PROCEDURE spexecute03;
+DROP PROCEDURE sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4( in f1 bigint, inout f2 bigint, out f3 bigint,
+in f4 bigint, inout f5 bigint, out f6 bigint,
+in f7 bigint, inout f8 bigint, out f9 bigint,
+in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute04;
+CREATE PROCEDURE spexecute04()
+BEGIN
+declare var1 bigint;
+declare var2 bigint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -9.22e+18;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp4(-9.22e+18, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute04();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+6744073709551616 6744073709551616 -9220000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute04;
+DROP PROCEDURE sp4;
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( in f1 timestamp, inout f2 timestamp, out f3 timestamp, in f4 timestamp, inout f5 timestamp, out f6 timestamp, in f7 timestamp, inout f8 timestamp, out f9 timestamp, in f10 timestamp, inout f11 timestamp, out f12 timestamp)
+BEGIN
+set f1 = now() + 0 + f1; set f2 = now() + 0 + f2; set f3 = now() + 0 + f1;
+set f4 = now() + 0 + f4; set f5 = now() + 0 + f5; set f6 = now() + 0 + f5;
+set f7 = now() + 0 + f7; set f8 = now() + 0 + f8; set f9 = now() + 0 + f8;
+set f10 = now() + 0 + f10; set f11 = now() + 0 + f11; set f12 = now() + 0 + f11;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute06;
+CREATE PROCEDURE spexecute06()
+BEGIN
+declare var1 timestamp;
+declare var2 timestamp;
+declare var3 timestamp;
+declare var4 timestamp;
+declare var5 timestamp;
+declare var6 timestamp;
+declare var7 timestamp;
+declare var8 timestamp;
+set var1 = 2.00e+13;
+set var3 = 2.00e+13;
+set var5 = 2.00e+13;
+set var7 = 2.00e+13;
+CALL sp6(2.00e+13, var1, var2, 2.00e+13, var3, var4, 2.00e+13, var5, var6, 2.00e+13, var7, var8);
+END//
+CALL spexecute06();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+returned returned returned returned returned returned returned returned returned returned returned returned
+DROP PROCEDURE spexecute06;
+DROP PROCEDURE sp6;
+DROP PROCEDURE IF EXISTS sp07;
+CREATE PROCEDURE sp07( IN f1 BIGINT UNSIGNED,
+INOUT f2 BIGINT UNSIGNED,
+OUT f3 BIGINT UNSIGNED,
+IN f4 BIGINT,
+INOUT f5 BIGINT,
+OUT f6 BIGINT,
+IN f7 BIGINT,
+INOUT f8 BIGINT,
+OUT f9 BIGINT,
+IN f10 BIGINT,
+INOUT f11 BIGINT,
+OUT f12 BIGINT)
+BEGIN
+SELECT f1, f2, f3;
+SELECT f4, f5, f6;
+SELECT f7, f8, f9;
+SELECT f10, f11, f12;
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f3 * 2); set f3 = (f3 - 10); set f3 = (f3 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3;
+SELECT f4, f5, f6;
+SELECT f7, f8, f9;
+SELECT f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute07;
+CREATE PROCEDURE spexecute07()
+BEGIN
+declare var1 bigint unsigned;
+declare var2 bigint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.84e+19;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+SELECT var1, var2;
+SELECT var3, var4;
+SELECT var5, var6;
+SELECT var7, var8;
+CALL sp07( var1, var1, var2, var3, var3, var4,
+var5, var5, var6, var7, var7, var8 );
+SELECT var1, var2;
+SELECT var3, var4;
+SELECT var5, var6;
+SELECT var7, var8;
+END//
+CALL spexecute07();
+var1 var2
+18400000000000000000 NULL
+var3 var4
+-9220000000000000000 NULL
+var5 var6
+-9220000000000000000 NULL
+var7 var8
+-9220000000000000000 NULL
+f1 f2 f3
+18400000000000000000 18400000000000000000 NULL
+f4 f5 f6
+-9220000000000000000 -9220000000000000000 NULL
+f7 f8 f9
+-9220000000000000000 -9220000000000000000 NULL
+f10 f11 f12
+-9220000000000000000 -9220000000000000000 NULL
+f1 f2 f3
+18353255926290448384 18353255926290448384 18353255926290448384
+f4 f5 f6
+-9220000000000000000 6744073709551616 6744073709551616
+f7 f8 f9
+-9220000000000000000 6744073709551616 6744073709551616
+f10 f11 f12
+-9220000000000000000 6744073709551616 6744073709551616
+var1 var2
+18353255926290448384 18353255926290448384
+var3 var4
+6744073709551616 6744073709551616
+var5 var6
+6744073709551616 6744073709551616
+var7 var8
+6744073709551616 6744073709551616
+DROP PROCEDURE spexecute07;
+DROP PROCEDURE sp07;
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8( in f1 bigint unsigned zerofill,
+inout f2 bigint unsigned zerofill,
+out f3 bigint unsigned zerofill,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute08;
+CREATE PROCEDURE spexecute08()
+BEGIN
+declare var1 bigint unsigned zerofill;
+declare var2 bigint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.84e+17;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp8(1.84e+17, var1, var2, -9.22e+18, var3, var4,
+-9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute08();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+00368000000000000000 00368000000000000000 00368000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+00368000000000000000 00368000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute08;
+DROP PROCEDURE sp8;
+DROP PROCEDURE IF EXISTS sp9;
+CREATE PROCEDURE sp9( in f1 bigint zerofill,
+inout f2 bigint zerofill,
+out f3 bigint zerofill,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute09;
+CREATE PROCEDURE spexecute09()
+BEGIN
+declare var1 bigint zerofill;
+declare var2 bigint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -9.22e+15;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp9(-9.22e+15, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute09();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+00000000000000000000 00000000000000000000 00000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+00000000000000000000 00000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute09;
+DROP PROCEDURE sp9;
+DROP PROCEDURE IF EXISTS sp10;
+CREATE PROCEDURE sp10( in f1 decimal,
+inout f2 decimal,
+out f3 decimal,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute10;
+CREATE PROCEDURE spexecute10()
+BEGIN
+declare var1 decimal;
+declare var2 decimal;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp10(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute10();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute10;
+DROP PROCEDURE sp10;
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11( in f1 decimal (0), inout f2 decimal (0), out f3 decimal (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute11;
+CREATE PROCEDURE spexecute11()
+BEGIN
+declare var1 decimal (0);
+declare var2 decimal (0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = --1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp11(--1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute11();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute11;
+DROP PROCEDURE sp11;
+DROP PROCEDURE IF EXISTS sp12;
+CREATE PROCEDURE sp12( in f1 decimal (0) unsigned, inout f2 decimal (0) unsigned, out f3 decimal (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute12;
+CREATE PROCEDURE spexecute12()
+BEGIN
+declare var1 decimal (0) unsigned;
+declare var2 decimal (0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp12(99999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute12();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute12;
+DROP PROCEDURE sp12;
+DROP PROCEDURE IF EXISTS sp13;
+CREATE PROCEDURE sp13( in f1 decimal (0, 0) zerofill, inout f2 decimal (0, 0) zerofill, out f3 decimal (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute13;
+CREATE PROCEDURE spexecute13()
+BEGIN
+declare var1 decimal (0, 0) zerofill;
+declare var2 decimal (0, 0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp13(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute13();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute13;
+DROP PROCEDURE sp13;
+DROP PROCEDURE IF EXISTS sp14;
+CREATE PROCEDURE sp14( in f1 decimal (63, 30), inout f2 decimal (63, 30), out f3 decimal (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute14;
+CREATE PROCEDURE spexecute14()
+BEGIN
+declare var1 decimal (63, 30);
+declare var2 decimal (63, 30);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+21;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp14(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute14();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000000000000000.000000000000000000000000000000 -1000000000000000000000.000000000000000000000000000000 -999999999999999999990.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000000000000000.000000000000000000000000000000 -999999999999999999990.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute14;
+DROP PROCEDURE sp14;
+DROP PROCEDURE IF EXISTS sp15;
+CREATE PROCEDURE sp15( in f1 double, inout f2 double, out f3 double, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute15;
+CREATE PROCEDURE spexecute15()
+BEGIN
+declare var1 double;
+declare var2 double;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp15(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute15();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute15;
+DROP PROCEDURE sp15;
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( in f1 double zerofill, inout f2 double zerofill, out f3 double zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute16;
+CREATE PROCEDURE spexecute16()
+BEGIN
+declare var1 double zerofill;
+declare var2 double zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp16(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute16();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute16;
+DROP PROCEDURE sp16;
+DROP PROCEDURE IF EXISTS sp17;
+CREATE PROCEDURE sp17( in f1 double unsigned, inout f2 double unsigned, out f3 double unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute17;
+CREATE PROCEDURE spexecute17()
+BEGIN
+declare var1 double unsigned;
+declare var2 double unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp17(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute17();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute17;
+DROP PROCEDURE sp17;
+DROP PROCEDURE IF EXISTS sp18;
+CREATE PROCEDURE sp18( in f1 double unsigned zerofill, inout f2 double unsigned zerofill, out f3 double unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute18;
+CREATE PROCEDURE spexecute18()
+BEGIN
+declare var1 double unsigned zerofill;
+declare var2 double unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp18(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute18();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute18;
+DROP PROCEDURE sp18;
+DROP PROCEDURE IF EXISTS sp19;
+CREATE PROCEDURE sp19( in f1 float unsigned, inout f2 float unsigned, out f3 float unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute19;
+CREATE PROCEDURE spexecute19()
+BEGIN
+declare var1 float unsigned;
+declare var2 float unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp19(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute19();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute19;
+DROP PROCEDURE sp19;
+DROP PROCEDURE IF EXISTS sp20;
+CREATE PROCEDURE sp20( in f1 float unsigned zerofill, inout f2 float unsigned zerofill, out f3 float unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute20;
+CREATE PROCEDURE spexecute20()
+BEGIN
+declare var1 float unsigned zerofill;
+declare var2 float unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp20(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute20();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute20;
+DROP PROCEDURE sp20;
+DROP PROCEDURE IF EXISTS sp21;
+CREATE PROCEDURE sp21( in f1 float zerofill, inout f2 float zerofill, out f3 float zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute21;
+CREATE PROCEDURE spexecute21()
+BEGIN
+declare var1 float zerofill;
+declare var2 float zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp21(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute21();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute21;
+DROP PROCEDURE sp21;
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( in f1 float(0), inout f2 float(0), out f3 float(0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute22;
+CREATE PROCEDURE spexecute22()
+BEGIN
+declare var1 float(0);
+declare var2 float(0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp22(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute22();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute22;
+DROP PROCEDURE sp22;
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( in f1 numeric, inout f2 numeric, out f3 numeric, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute23;
+CREATE PROCEDURE spexecute23()
+BEGIN
+declare var1 numeric;
+declare var2 numeric;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp23(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute23();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute23;
+DROP PROCEDURE sp23;
+DROP PROCEDURE IF EXISTS sp24;
+CREATE PROCEDURE sp24( in f1 real, inout f2 real, out f3 real, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute24;
+CREATE PROCEDURE spexecute24()
+BEGIN
+declare var1 real;
+declare var2 real;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp24(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute24();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1.1 1.1 11.1 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1.1 11.1 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute24;
+DROP PROCEDURE sp24;
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute25;
+CREATE PROCEDURE spexecute25()
+BEGIN
+declare var1 smallint;
+declare var2 smallint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32701;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp25(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute25();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-32758 -32758 -32748 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-32758 -32748 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute25;
+DROP PROCEDURE sp25;
+DROP PROCEDURE IF EXISTS sp26;
+CREATE PROCEDURE sp26( in f1 date, inout f2 date, out f3 date, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = adddate(f1, interval 31 day); set f2 = adddate(f2, interval 31 day); set f3 = adddate(f2, interval 31 day);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute26;
+CREATE PROCEDURE spexecute26()
+BEGIN
+declare var1 date;
+declare var2 date;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '1997-12-31';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp26( '1997-12-31', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute26();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1998-01-31 1998-01-31 1998-03-03 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1998-01-31 1998-03-03 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute26;
+DROP PROCEDURE sp26;
+DROP PROCEDURE IF EXISTS sp27;
+CREATE PROCEDURE sp27( in f1 time, inout f2 time, out f3 time, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998'); set f2 = addtime(f2, '02:00:00.999998'); set f3 = addtime(f2, '02:00:00.999998');
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute27;
+CREATE PROCEDURE spexecute27()
+BEGIN
+declare var1 time;
+declare var2 time;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '23:59:59.999999';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp27( '23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute27();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+25:59:59 25:59:59 27:59:59 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+25:59:59 27:59:59 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute27;
+DROP PROCEDURE sp27;
+DROP PROCEDURE IF EXISTS sp28;
+CREATE PROCEDURE sp28( in f1 datetime, inout f2 datetime, out f3 datetime, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002'); set f2 = addtime(f2, '1 1:1:1.000002'); set f3 = addtime(f1, '1 1:1:1.000002');
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute28;
+CREATE PROCEDURE spexecute28()
+BEGIN
+declare var1 datetime;
+declare var2 datetime;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '1997-12-31 23:59:59.999999';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp28('1997-12-31 23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute28();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1998-01-02 01:01:00 1998-01-02 01:01:00 1998-01-03 02:02:01 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1998-01-02 01:01:00 1998-01-03 02:02:01 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute28;
+DROP PROCEDURE sp28;
+DROP PROCEDURE IF EXISTS sp29;
+CREATE PROCEDURE sp29( in f1 float(0) unsigned, inout f2 float(0) unsigned, out f3 float(0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute29;
+CREATE PROCEDURE spexecute29()
+BEGIN
+declare var1 float(0) unsigned;
+declare var2 float(0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp29(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute29();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute29;
+DROP PROCEDURE sp29;
+DROP PROCEDURE IF EXISTS sp30;
+CREATE PROCEDURE sp30( in f1 float(0) zerofill, inout f2 float(0) zerofill, out f3 float(0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute30;
+CREATE PROCEDURE spexecute30()
+BEGIN
+declare var1 float(0) zerofill;
+declare var2 float(0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp30(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute30();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute30;
+DROP PROCEDURE sp30;
+DROP PROCEDURE IF EXISTS sp31;
+CREATE PROCEDURE sp31( in f1 float(23), inout f2 float(23), out f3 float(23), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute31;
+CREATE PROCEDURE spexecute31()
+BEGIN
+declare var1 float(23);
+declare var2 float(23);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp31(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute31();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute31;
+DROP PROCEDURE sp31;
+DROP PROCEDURE IF EXISTS sp32;
+CREATE PROCEDURE sp32( in f1 float(23) unsigned, inout f2 float(23) unsigned, out f3 float(23) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute32;
+CREATE PROCEDURE spexecute32()
+BEGIN
+declare var1 float(23) unsigned;
+declare var2 float(23) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp32(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute32();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute32;
+DROP PROCEDURE sp32;
+DROP PROCEDURE IF EXISTS sp33;
+CREATE PROCEDURE sp33( in f1 float(23) zerofill, inout f2 float(23) zerofill, out f3 float(23) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute33;
+CREATE PROCEDURE spexecute33()
+BEGIN
+declare var1 float(23) zerofill;
+declare var2 float(23) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp33(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute33();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute33;
+DROP PROCEDURE sp33;
+DROP PROCEDURE IF EXISTS sp34;
+CREATE PROCEDURE sp34( in f1 float(24), inout f2 float(24), out f3 float(24), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute34;
+CREATE PROCEDURE spexecute34()
+BEGIN
+declare var1 float(24);
+declare var2 float(24);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp34(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute34();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute34;
+DROP PROCEDURE sp34;
+DROP PROCEDURE IF EXISTS sp35;
+CREATE PROCEDURE sp35( in f1 float(24) unsigned, inout f2 float(24) unsigned, out f3 float(24) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute35;
+CREATE PROCEDURE spexecute35()
+BEGIN
+declare var1 float(24) unsigned;
+declare var2 float(24) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp35(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute35();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute35;
+DROP PROCEDURE sp35;
+DROP PROCEDURE IF EXISTS sp36;
+CREATE PROCEDURE sp36( in f1 float(24) zerofill, inout f2 float(24) zerofill, out f3 float(24) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute36;
+CREATE PROCEDURE spexecute36()
+BEGIN
+declare var1 float(24) zerofill;
+declare var2 float(24) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp36(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute36();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute36;
+DROP PROCEDURE sp36;
+DROP PROCEDURE IF EXISTS sp37;
+CREATE PROCEDURE sp37( in f1 float(53), inout f2 float(53), out f3 float(53), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute37;
+CREATE PROCEDURE spexecute37()
+BEGIN
+declare var1 float(53);
+declare var2 float(53);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp37(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute37();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute37;
+DROP PROCEDURE sp37;
+DROP PROCEDURE IF EXISTS sp38;
+CREATE PROCEDURE sp38( in f1 float(53) unsigned, inout f2 float(53) unsigned, out f3 float(53) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute38;
+CREATE PROCEDURE spexecute38()
+BEGIN
+declare var1 float(53) unsigned;
+declare var2 float(53) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp38(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute38();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute38;
+DROP PROCEDURE sp38;
+DROP PROCEDURE IF EXISTS sp39;
+CREATE PROCEDURE sp39( in f1 float(53) zerofill, inout f2 float(53) zerofill, out f3 float(53) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute39;
+CREATE PROCEDURE spexecute39()
+BEGIN
+declare var1 float(53) zerofill;
+declare var2 float(53) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp39(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute39();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute39;
+DROP PROCEDURE sp39;
+DROP PROCEDURE IF EXISTS sp40;
+CREATE PROCEDURE sp40( in f1 real unsigned, inout f2 real unsigned, out f3 real unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute40;
+CREATE PROCEDURE spexecute40()
+BEGIN
+declare var1 real unsigned;
+declare var2 real unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp40(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute40();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute40;
+DROP PROCEDURE sp40;
+DROP PROCEDURE IF EXISTS sp41;
+CREATE PROCEDURE sp41( in f1 real unsigned zerofill, inout f2 real unsigned zerofill, out f3 real unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute41;
+CREATE PROCEDURE spexecute41()
+BEGIN
+declare var1 real unsigned zerofill;
+declare var2 real unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp41(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute41();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute41;
+DROP PROCEDURE sp41;
+DROP PROCEDURE IF EXISTS sp42;
+CREATE PROCEDURE sp42( in f1 real zerofill, inout f2 real zerofill, out f3 real zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute42;
+CREATE PROCEDURE spexecute42()
+BEGIN
+declare var1 real zerofill;
+declare var2 real zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp42(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute42();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute42;
+DROP PROCEDURE sp42;
+DROP PROCEDURE IF EXISTS sp43;
+CREATE PROCEDURE sp43( in f1 numeric (0), inout f2 numeric (0), out f3 numeric (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute43;
+CREATE PROCEDURE spexecute43()
+BEGIN
+declare var1 numeric (0);
+declare var2 numeric (0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp43(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute43();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute43;
+DROP PROCEDURE sp43;
+DROP PROCEDURE IF EXISTS sp44;
+CREATE PROCEDURE sp44( in f1 numeric (0) unsigned, inout f2 numeric (0) unsigned, out f3 numeric (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute44;
+CREATE PROCEDURE spexecute44()
+BEGIN
+declare var1 numeric (0) unsigned;
+declare var2 numeric (0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp44(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute44();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute44;
+DROP PROCEDURE sp44;
+DROP PROCEDURE IF EXISTS sp45;
+CREATE PROCEDURE sp45( in f1 numeric (0) zerofill, inout f2 numeric (0) zerofill, out f3 numeric (0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute45;
+CREATE PROCEDURE spexecute45()
+BEGIN
+declare var1 numeric (0) zerofill;
+declare var2 numeric (0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp45(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute45();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute45;
+DROP PROCEDURE sp45;
+DROP PROCEDURE IF EXISTS sp46;
+CREATE PROCEDURE sp46( in f1 numeric (0, 0), inout f2 numeric (0, 0), out f3 numeric (0, 0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute46;
+CREATE PROCEDURE spexecute46()
+BEGIN
+declare var1 numeric (0, 0);
+declare var2 numeric (0, 0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp46(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute46();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute46;
+DROP PROCEDURE sp46;
+DROP PROCEDURE IF EXISTS sp47;
+CREATE PROCEDURE sp47( in f1 numeric (0, 0) unsigned, inout f2 numeric (0, 0) unsigned, out f3 numeric (0, 0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute47;
+CREATE PROCEDURE spexecute47()
+BEGIN
+declare var1 numeric (0, 0) unsigned;
+declare var2 numeric (0, 0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp47(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute47();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute47;
+DROP PROCEDURE sp47;
+DROP PROCEDURE IF EXISTS sp48;
+CREATE PROCEDURE sp48( in f1 numeric (0, 0) zerofill, inout f2 numeric (0, 0) zerofill, out f3 numeric (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute48;
+CREATE PROCEDURE spexecute48()
+BEGIN
+declare var1 numeric (0, 0) zerofill;
+declare var2 numeric (0, 0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp48(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute48();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute48;
+DROP PROCEDURE sp48;
+DROP PROCEDURE IF EXISTS sp49;
+CREATE PROCEDURE sp49( in f1 numeric unsigned, inout f2 numeric unsigned, out f3 numeric unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute49;
+CREATE PROCEDURE spexecute49()
+BEGIN
+declare var1 numeric unsigned;
+declare var2 numeric unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp49(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute49();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute49;
+DROP PROCEDURE sp49;
+DROP PROCEDURE IF EXISTS sp50;
+CREATE PROCEDURE sp50( in f1 numeric unsigned zerofill, inout f2 numeric unsigned zerofill, out f3 numeric unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute50;
+CREATE PROCEDURE spexecute50()
+BEGIN
+declare var1 numeric unsigned zerofill;
+declare var2 numeric unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp50(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute50();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute50;
+DROP PROCEDURE sp50;
+DROP PROCEDURE IF EXISTS sp51;
+CREATE PROCEDURE sp51( in f1 numeric zerofill, inout f2 numeric zerofill, out f3 numeric zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute51;
+CREATE PROCEDURE spexecute51()
+BEGIN
+declare var1 numeric zerofill;
+declare var2 numeric zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp51(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute51();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute51;
+DROP PROCEDURE sp51;
+DROP PROCEDURE IF EXISTS sp52;
+CREATE PROCEDURE sp52( in f1 numeric (63, 30), inout f2 numeric (63, 30), out f3 numeric (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute52;
+CREATE PROCEDURE spexecute52()
+BEGIN
+declare var1 numeric (63, 30);
+declare var2 numeric (63, 30);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp52(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute52();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000.000000000000000000000000000000 -10000000000000000000000.000000000000000000000000000000 -99999999999999999990.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000.000000000000000000000000000000 -99999999999999999990.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute52;
+DROP PROCEDURE sp52;
+DROP PROCEDURE IF EXISTS sp53;
+CREATE PROCEDURE sp53( in f1 numeric (64), inout f2 numeric (64), out f3 numeric (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute53;
+CREATE PROCEDURE spexecute53()
+BEGIN
+declare var1 numeric (64);
+declare var2 numeric (64);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp53(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute53();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000 -10000000000000000000000 -99999999999999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000 -99999999999999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute53;
+DROP PROCEDURE sp53;
+DROP PROCEDURE IF EXISTS sp54;
+CREATE PROCEDURE sp54( in f1 numeric (64) unsigned, inout f2 numeric (64) unsigned, out f3 numeric (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute54;
+CREATE PROCEDURE spexecute54()
+BEGIN
+declare var1 numeric (64) unsigned;
+declare var2 numeric (64) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp54(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute54();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000 10000000000000000000000 100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000 100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute54;
+DROP PROCEDURE sp54;
+DROP PROCEDURE IF EXISTS sp55;
+CREATE PROCEDURE sp55( in f1 numeric (64) zerofill, inout f2 numeric (64) zerofill, out f3 numeric (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute55;
+CREATE PROCEDURE spexecute55()
+BEGIN
+declare var1 numeric (64) zerofill;
+declare var2 numeric (64) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp55(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute55();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute55;
+DROP PROCEDURE sp55;
+DROP PROCEDURE IF EXISTS sp56;
+CREATE PROCEDURE sp56( in f1 year, inout f2 year, out f3 year, in f4 year, inout f5 year, out f6 year, in f7 year, inout f8 year, out f9 year, in f10 year, inout f11 year, out f12 year)
+BEGIN
+set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+set f7 = f7 + 10; set f8 = f8 + 10; set f9 = f8 + 10;
+set f10= f10+ 10; set f11 = f11 + 10; set f12 = f11 + 10;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute56;
+CREATE PROCEDURE spexecute56()
+BEGIN
+declare var1 year;
+declare var2 year;
+declare var3 year;
+declare var4 year;
+declare var5 year;
+declare var6 year;
+declare var7 year;
+declare var8 year;
+set var1 = 51;
+set var3 = 51;
+set var5 = 51;
+set var7 = 51;
+CALL sp56(51, var1, var2, 51, var3, var4, 51, var5, var6, 51, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute56();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2061 2061 2071 2061 2061 2071 2061 2061 2071 2061 2061 2071
+var1 var2 var3 var4 var5 var6 var7 var8
+2061 2071 2061 2071 2061 2071 2061 2071
+DROP PROCEDURE spexecute56;
+DROP PROCEDURE sp56;
+DROP PROCEDURE IF EXISTS sp57;
+CREATE PROCEDURE sp57( in f1 year(4), inout f2 year(4), out f3 year(4), in f4 year(4), inout f5 year(4), out f6 year(4), in f7 year(4), inout f8 year(4), out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+set f1 = f1 + 51; set f2 = f2 + 51; set f3 = f2 + 51;
+set f4 = f4 + 51; set f5 = f5 + 51; set f6 = f5 + 51;
+set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute57;
+CREATE PROCEDURE spexecute57()
+BEGIN
+declare var1 year(4);
+declare var2 year(4);
+declare var3 year(4);
+declare var4 year(4);
+declare var5 year(4);
+declare var6 year(4);
+declare var7 year(4);
+declare var8 year(4);
+set var1 = 1982;
+set var3 = 1982;
+set var5 = 1982;
+set var7 = 1982;
+CALL sp57(1982, var1, var2, 1982, var3, var4, 1982, var5, var6, 1982, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute57();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2033 2033 2084 2033 2033 2084 2033 2033 2084 2033 2033 2084
+var1 var2 var3 var4 var5 var6 var7 var8
+2033 2084 2033 2084 2033 2084 2033 2084
+DROP PROCEDURE spexecute57;
+DROP PROCEDURE sp57;
+DROP PROCEDURE IF EXISTS sp58;
+CREATE PROCEDURE sp58( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text, out f6 text, in f7 text, inout f8 text, out f9 text, in f10 text, inout f11 text, out f12 text)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute58;
+CREATE PROCEDURE spexecute58()
+BEGIN
+declare var1 text;
+declare var2 text;
+declare var3 text;
+declare var4 text;
+declare var5 text;
+declare var6 text;
+declare var7 text;
+declare var8 text;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp58( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute58();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute58;
+DROP PROCEDURE sp58;
+DROP PROCEDURE IF EXISTS sp59;
+CREATE PROCEDURE sp59( in f1 tinytext, inout f2 tinytext, out f3 tinytext, in f4 tinytext, inout f5 tinytext, out f6 tinytext, in f7 tinytext, inout f8 tinytext, out f9 tinytext, in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute59;
+CREATE PROCEDURE spexecute59()
+BEGIN
+declare var1 tinytext;
+declare var2 tinytext;
+declare var3 tinytext;
+declare var4 tinytext;
+declare var5 tinytext;
+declare var6 tinytext;
+declare var7 tinytext;
+declare var8 tinytext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp59( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute59();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute59;
+DROP PROCEDURE sp59;
+DROP PROCEDURE IF EXISTS sp60;
+CREATE PROCEDURE sp60( in f1 char, inout f2 char, out f3 char, in f4 char, inout f5 char, out f6 char, in f7 char, inout f8 char, out f9 char, in f10 char, inout f11 char, out f12 char)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f5);
+set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f8);
+set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute60;
+CREATE PROCEDURE spexecute60()
+BEGIN
+declare var1 char;
+declare var2 char;
+declare var3 char;
+declare var4 char;
+declare var5 char;
+declare var6 char;
+declare var7 char;
+declare var8 char;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'h';
+set var7 = 'h';
+CALL sp60( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute60();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a a a a a a a
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a a a a a
+DROP PROCEDURE spexecute60;
+DROP PROCEDURE sp60;
+DROP PROCEDURE IF EXISTS sp61;
+CREATE PROCEDURE sp61( in f1 char ascii, inout f2 char ascii, out f3 char ascii, in f4 char ascii, inout f5 char ascii, out f6 char ascii, in f7 char ascii, inout f8 char ascii, out f9 char ascii, in f10 char ascii, inout f11 char ascii, out f12 char ascii)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f2);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f9);
+set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute61;
+CREATE PROCEDURE spexecute61()
+BEGIN
+declare var1 char ascii;
+declare var2 char ascii;
+declare var3 char ascii;
+declare var4 char ascii;
+declare var5 char ascii;
+declare var6 char ascii;
+declare var7 char ascii;
+declare var8 char ascii;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'h';
+set var7 = 'h';
+CALL sp61( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute61();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a a a NULL a a a
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a a NULL a a
+DROP PROCEDURE spexecute61;
+DROP PROCEDURE sp61;
+DROP PROCEDURE IF EXISTS sp62;
+CREATE PROCEDURE sp62( in f1 longtext, inout f2 longtext, out f3 longtext, in f4 longtext, inout f5 longtext, out f6 longtext, in f7 longtext, inout f8 longtext, out f9 longtext, in f10 longtext, inout f11 longtext, out f12 longtext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute62;
+CREATE PROCEDURE spexecute62()
+BEGIN
+declare var1 longtext;
+declare var2 longtext;
+declare var3 longtext;
+declare var4 longtext;
+declare var5 longtext;
+declare var6 longtext;
+declare var7 longtext;
+declare var8 longtext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp62( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute62();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute62;
+DROP PROCEDURE sp62;
+DROP PROCEDURE IF EXISTS sp63;
+CREATE PROCEDURE sp63( in f1 mediumtext, inout f2 mediumtext, out f3 mediumtext, in f4 mediumtext, inout f5 mediumtext, out f6 mediumtext, in f7 mediumtext, inout f8 mediumtext, out f9 mediumtext, in f10 mediumtext, inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f3);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute63;
+CREATE PROCEDURE spexecute63()
+BEGIN
+declare var1 mediumtext;
+declare var2 mediumtext;
+declare var3 mediumtext;
+declare var4 mediumtext;
+declare var5 mediumtext;
+declare var6 mediumtext;
+declare var7 mediumtext;
+declare var8 mediumtext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp63( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute63();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld NULL helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld NULL helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute63;
+DROP PROCEDURE sp63;
+DROP PROCEDURE IF EXISTS sp64;
+CREATE PROCEDURE sp64( in f1 decimal, inout f2 decimal, out f3 decimal, in f4 decimal, inout f5 decimal, out f6 decimal, in f7 decimal, inout f8 decimal, out f9 decimal, in f10 decimal, inout f11 decimal, out f12 decimal)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f4 = (f4 / 2); set f4 = (f4 * 2); set f4 = (f4 - 10); set f4 = (f4 + 10); set f5 = (f5 / 2); set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f5 / 2); set f6 = (f5 * 2); set f6 = (f5 - 10); set f6 = (f5 + 10);
+set f7 = (f7 / 2); set f7 = (f7 * 2); set f7 = (f7 - 10); set f7 = (f7 + 10); set f8 = (f8 / 2); set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f8 / 2); set f9 = (f8 * 2); set f9 = (f8 - 10); set f9 = (f8 + 10);
+set f10 = (f10 / 2); set f10 = (f10 * 2); set f10 = (f10 - 10); set f10 = (f10 + 10); set f11 = (f11 / 2); set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f11 / 2); set f12 = (f11 * 2); set f12 = (f11 - 10); set f12 = (f11 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute64;
+CREATE PROCEDURE spexecute64()
+BEGIN
+declare var1 decimal;
+declare var2 decimal;
+declare var3 decimal;
+declare var4 decimal;
+declare var5 decimal;
+declare var6 decimal;
+declare var7 decimal;
+declare var8 decimal;
+set var1 = --1.00e+09;
+set var3 = --1.00e+09;
+set var5 = --1.00e+09;
+set var7 = --1.00e+09;
+CALL sp64(--1.00e+09, var1, var2, --1.00e+09, var3, var4, --1.00e+09, var5, var6, --1.00e+09, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute64();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 1000000000 1000000000 1000000010 1000000000 1000000000 1000000010 1000000000 1000000000 1000000010
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 1000000000 1000000010 1000000000 1000000010 1000000000 1000000010
+DROP PROCEDURE spexecute64;
+DROP PROCEDURE sp64;
+DROP PROCEDURE IF EXISTS sp65;
+CREATE PROCEDURE sp65( in f1 decimal (0, 0) unsigned zerofill, inout f2 decimal (0, 0) unsigned zerofill, out f3 decimal (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute65;
+CREATE PROCEDURE spexecute65()
+BEGIN
+declare var1 decimal (0, 0) unsigned zerofill;
+declare var2 decimal (0, 0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp65(999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute65();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute65;
+DROP PROCEDURE sp65;
+DROP PROCEDURE IF EXISTS sp66;
+CREATE PROCEDURE sp66( in f1 decimal (63, 30) unsigned, inout f2 decimal (63, 30) unsigned, out f3 decimal (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute66;
+CREATE PROCEDURE spexecute66()
+BEGIN
+declare var1 decimal (63, 30) unsigned;
+declare var2 decimal (63, 30) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+16;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp66(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute66();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10000000000000000.000000000000000000000000000000 10000000000000000.000000000000000000000000000000 10000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000.000000000000000000000000000000 10000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute66;
+DROP PROCEDURE sp66;
+DROP PROCEDURE IF EXISTS sp67;
+CREATE PROCEDURE sp67( in f1 decimal (63, 30) unsigned zerofill, inout f2 decimal (63, 30) unsigned zerofill, out f3 decimal (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute67;
+CREATE PROCEDURE spexecute67()
+BEGIN
+declare var1 decimal (63, 30) unsigned zerofill;
+declare var2 decimal (63, 30) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+16;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp67(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute67();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute67;
+DROP PROCEDURE sp67;
+DROP PROCEDURE IF EXISTS sp68;
+CREATE PROCEDURE sp68( in f1 decimal (63, 30) zerofill, inout f2 decimal (63, 30) zerofill, out f3 decimal (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute68;
+CREATE PROCEDURE spexecute68()
+BEGIN
+declare var1 decimal (63, 30) zerofill;
+declare var2 decimal (63, 30) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+21;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp68(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute68();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute68;
+DROP PROCEDURE sp68;
+DROP PROCEDURE IF EXISTS sp69;
+CREATE PROCEDURE sp69( in f1 decimal (64), inout f2 decimal (64), out f3 decimal (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute69;
+CREATE PROCEDURE spexecute69()
+BEGIN
+declare var1 decimal (64);
+declare var2 decimal (64);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp69(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute69();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000 -10000000000000000000000 -99999999999999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000 -99999999999999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute69;
+DROP PROCEDURE sp69;
+DROP PROCEDURE IF EXISTS sp70;
+CREATE PROCEDURE sp70( in f1 decimal (64) unsigned, inout f2 decimal (64) unsigned, out f3 decimal (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute70;
+CREATE PROCEDURE spexecute70()
+BEGIN
+declare var1 decimal (64) unsigned;
+declare var2 decimal (64) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp70(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute70();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000 10000000000000000000000 100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000 100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute70;
+DROP PROCEDURE sp70;
+DROP PROCEDURE IF EXISTS sp71;
+CREATE PROCEDURE sp71( in f1 decimal (64) unsigned zerofill, inout f2 decimal (64) unsigned zerofill, out f3 decimal (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute71;
+CREATE PROCEDURE spexecute71()
+BEGIN
+declare var1 decimal (64) unsigned zerofill;
+declare var2 decimal (64) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp71(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute71();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000100000000000000000000 0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute71;
+DROP PROCEDURE sp71;
+DROP PROCEDURE IF EXISTS sp72;
+CREATE PROCEDURE sp72( in f1 decimal (64) zerofill, inout f2 decimal (64) zerofill, out f3 decimal (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute72;
+CREATE PROCEDURE spexecute72()
+BEGIN
+declare var1 decimal (64) zerofill;
+declare var2 decimal (64) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp72(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute72();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute72;
+DROP PROCEDURE sp72;
+DROP PROCEDURE IF EXISTS sp73;
+CREATE PROCEDURE sp73( in f1 decimal unsigned, inout f2 decimal unsigned, out f3 decimal unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute73;
+CREATE PROCEDURE spexecute73()
+BEGIN
+declare var1 decimal unsigned;
+declare var2 decimal unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp73(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute73();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute73;
+DROP PROCEDURE sp73;
+DROP PROCEDURE IF EXISTS sp74;
+CREATE PROCEDURE sp74( in f1 decimal unsigned zerofill, inout f2 decimal unsigned zerofill, out f3 decimal unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute74;
+CREATE PROCEDURE spexecute74()
+BEGIN
+declare var1 decimal unsigned zerofill;
+declare var2 decimal unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp74(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute74();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute74;
+DROP PROCEDURE sp74;
+DROP PROCEDURE IF EXISTS sp75;
+CREATE PROCEDURE sp75( in f1 decimal zerofill, inout f2 decimal zerofill, out f3 decimal zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute75;
+CREATE PROCEDURE spexecute75()
+BEGIN
+declare var1 decimal zerofill;
+declare var2 decimal zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp75(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute75();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute75;
+DROP PROCEDURE sp75;
+DROP PROCEDURE IF EXISTS sp76;
+CREATE PROCEDURE sp76( in f1 float(0) unsigned zerofill, inout f2 float(0) unsigned zerofill, out f3 float(0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute76;
+CREATE PROCEDURE spexecute76()
+BEGIN
+declare var1 float(0) unsigned zerofill;
+declare var2 float(0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp76(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute76();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute76;
+DROP PROCEDURE sp76;
+DROP PROCEDURE IF EXISTS sp77;
+CREATE PROCEDURE sp77( in f1 float(23) unsigned zerofill, inout f2 float(23) unsigned zerofill, out f3 float(23) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute77;
+CREATE PROCEDURE spexecute77()
+BEGIN
+declare var1 float(23) unsigned zerofill;
+declare var2 float(23) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp77(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute77();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute77;
+DROP PROCEDURE sp77;
+DROP PROCEDURE IF EXISTS sp78;
+CREATE PROCEDURE sp78( in f1 float(24) unsigned zerofill, inout f2 float(24) unsigned zerofill, out f3 float(24) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute78;
+CREATE PROCEDURE spexecute78()
+BEGIN
+declare var1 float(24) unsigned zerofill;
+declare var2 float(24) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp78(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute78();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute78;
+DROP PROCEDURE sp78;
+DROP PROCEDURE IF EXISTS sp79;
+CREATE PROCEDURE sp79( in f1 float(53) unsigned zerofill, inout f2 float(53) unsigned zerofill, out f3 float(53) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute79;
+CREATE PROCEDURE spexecute79()
+BEGIN
+declare var1 float(53) unsigned zerofill;
+declare var2 float(53) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp79(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute79();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute79;
+DROP PROCEDURE sp79;
+DROP PROCEDURE IF EXISTS sp80;
+CREATE PROCEDURE sp80( in f1 int, inout f2 int, out f3 int, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute80;
+CREATE PROCEDURE spexecute80()
+BEGIN
+declare var1 int;
+declare var2 int;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -2.15e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp80(-2.15e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute80();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-2147483638 -2147483638 -2147483628 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-2147483638 -2147483628 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute80;
+DROP PROCEDURE sp80;
+DROP PROCEDURE IF EXISTS sp81;
+CREATE PROCEDURE sp81( in f1 int unsigned, inout f2 int unsigned, out f3 int unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute81;
+CREATE PROCEDURE spexecute81()
+BEGIN
+declare var1 int unsigned;
+declare var2 int unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 4.29e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp81(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute81();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+4290000000 4290000000 4290000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+4290000000 4290000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute81;
+DROP PROCEDURE sp81;
+DROP PROCEDURE IF EXISTS sp82;
+CREATE PROCEDURE sp82( in f1 int unsigned zerofill, inout f2 int unsigned zerofill, out f3 int unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute82;
+CREATE PROCEDURE spexecute82()
+BEGIN
+declare var1 int unsigned zerofill;
+declare var2 int unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 4.29e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp82(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute82();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+4290000000 4290000000 4290000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+4290000000 4290000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute82;
+DROP PROCEDURE sp82;
+DROP PROCEDURE IF EXISTS sp83;
+CREATE PROCEDURE sp83( in f1 int zerofill, inout f2 int zerofill, out f3 int zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute83;
+CREATE PROCEDURE spexecute83()
+BEGIN
+declare var1 int zerofill;
+declare var2 int zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 2.15e+08;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp83(2.15e+08, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute83();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0215000000 0215000000 0215000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0215000000 0215000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute83;
+DROP PROCEDURE sp83;
+DROP PROCEDURE IF EXISTS sp84;
+CREATE PROCEDURE sp84( in f1 mediumint, inout f2 mediumint, out f3 mediumint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute84;
+CREATE PROCEDURE spexecute84()
+BEGIN
+declare var1 mediumint;
+declare var2 mediumint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -8388600;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp84(-8388600, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute84();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-8388598 -8388598 -8388588 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-8388598 -8388588 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute84;
+DROP PROCEDURE sp84;
+DROP PROCEDURE IF EXISTS sp85;
+CREATE PROCEDURE sp85( in f1 mediumint unsigned, inout f2 mediumint unsigned, out f3 mediumint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute85;
+CREATE PROCEDURE spexecute85()
+BEGIN
+declare var1 mediumint unsigned;
+declare var2 mediumint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 16777201;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp85(16777201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute85();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777202 16777202 16777212 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777202 16777212 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute85;
+DROP PROCEDURE sp85;
+DROP PROCEDURE IF EXISTS sp86;
+CREATE PROCEDURE sp86( in f1 mediumint unsigned zerofill, inout f2 mediumint unsigned zerofill, out f3 mediumint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute86;
+CREATE PROCEDURE spexecute86()
+BEGIN
+declare var1 mediumint unsigned zerofill;
+declare var2 mediumint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 16777210;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp86(16777210, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute86();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777210 16777210 16777215 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777210 16777215 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute86;
+DROP PROCEDURE sp86;
+DROP PROCEDURE IF EXISTS sp87;
+CREATE PROCEDURE sp87( in f1 mediumint zerofill, inout f2 mediumint zerofill, out f3 mediumint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute87;
+CREATE PROCEDURE spexecute87()
+BEGIN
+declare var1 mediumint zerofill;
+declare var2 mediumint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -8388601;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp87(-8388601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute87();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777215 16777215 16777215 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777215 16777215 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute87;
+DROP PROCEDURE sp87;
+DROP PROCEDURE IF EXISTS sp88;
+CREATE PROCEDURE sp88( in f1 numeric (0) unsigned zerofill, inout f2 numeric (0) unsigned zerofill, out f3 numeric (0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute88;
+CREATE PROCEDURE spexecute88()
+BEGIN
+declare var1 numeric (0) unsigned zerofill;
+declare var2 numeric (0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp88(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute88();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0100000000 0100000000 0100000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0100000000 0100000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute88;
+DROP PROCEDURE sp88;
+DROP PROCEDURE IF EXISTS sp89;
+CREATE PROCEDURE sp89( in f1 numeric (0, 0) unsigned zerofill, inout f2 numeric (0, 0) unsigned zerofill, out f3 numeric (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute89;
+CREATE PROCEDURE spexecute89()
+BEGIN
+declare var1 numeric (0, 0) unsigned zerofill;
+declare var2 numeric (0, 0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp89(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute89();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0100000000 0100000000 0100000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0100000000 0100000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute89;
+DROP PROCEDURE sp89;
+DROP PROCEDURE IF EXISTS sp90;
+CREATE PROCEDURE sp90( in f1 numeric (63, 30) unsigned, inout f2 numeric (63, 30) unsigned, out f3 numeric (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute90;
+CREATE PROCEDURE spexecute90()
+BEGIN
+declare var1 numeric (63, 30) unsigned;
+declare var2 numeric (63, 30) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp90(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute90();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000.000000000000000000000000000000 10000000000000000000000.000000000000000000000000000000 100000000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000.000000000000000000000000000000 100000000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute90;
+DROP PROCEDURE sp90;
+DROP PROCEDURE IF EXISTS sp91;
+CREATE PROCEDURE sp91( in f1 numeric (63, 30) unsigned zerofill, inout f2 numeric (63, 30) unsigned zerofill, out f3 numeric (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute91;
+CREATE PROCEDURE spexecute91()
+BEGIN
+declare var1 numeric (63, 30) unsigned zerofill;
+declare var2 numeric (63, 30) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp91(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute91();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000100000000000000000000.000000000000000000000000000000 000000000010000000000000000000000.000000000000000000000000000000 000000000000100000000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010000000000000000000000.000000000000000000000000000000 000000000000100000000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute91;
+DROP PROCEDURE sp91;
+DROP PROCEDURE IF EXISTS sp92;
+CREATE PROCEDURE sp92( in f1 numeric (63, 30) zerofill, inout f2 numeric (63, 30) zerofill, out f3 numeric (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute92;
+CREATE PROCEDURE spexecute92()
+BEGIN
+declare var1 numeric (63, 30) zerofill;
+declare var2 numeric (63, 30) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp92(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute92();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute92;
+DROP PROCEDURE sp92;
+DROP PROCEDURE IF EXISTS sp93;
+CREATE PROCEDURE sp93( in f1 numeric (64) unsigned zerofill, inout f2 numeric (64) unsigned zerofill, out f3 numeric (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute93;
+CREATE PROCEDURE spexecute93()
+BEGIN
+declare var1 numeric (64) unsigned zerofill;
+declare var2 numeric (64) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp93(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute93();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000100000000000000000000 0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute93;
+DROP PROCEDURE sp93;
+DROP PROCEDURE IF EXISTS sp94;
+CREATE PROCEDURE sp94( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute94;
+CREATE PROCEDURE spexecute94()
+BEGIN
+declare var1 smallint;
+declare var2 smallint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32701;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp94(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute94();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-32702 -32702 -32692 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-32702 -32692 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute94;
+DROP PROCEDURE sp94;
+DROP PROCEDURE IF EXISTS sp95;
+CREATE PROCEDURE sp95( in f1 smallint unsigned, inout f2 smallint unsigned, out f3 smallint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute95;
+CREATE PROCEDURE spexecute95()
+BEGIN
+declare var1 smallint unsigned;
+declare var2 smallint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 65531;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp95(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute95();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65532 65532 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65532 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute95;
+DROP PROCEDURE sp95;
+DROP PROCEDURE IF EXISTS sp96;
+CREATE PROCEDURE sp96( in f1 smallint unsigned zerofill, inout f2 smallint unsigned zerofill, out f3 smallint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute96;
+CREATE PROCEDURE spexecute96()
+BEGIN
+declare var1 smallint unsigned zerofill;
+declare var2 smallint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 65531;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp96(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute96();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65532 65532 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65532 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute96;
+DROP PROCEDURE sp96;
+DROP PROCEDURE IF EXISTS sp97;
+CREATE PROCEDURE sp97( in f1 smallint zerofill, inout f2 smallint zerofill, out f3 smallint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute97;
+CREATE PROCEDURE spexecute97()
+BEGIN
+declare var1 smallint zerofill;
+declare var2 smallint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32601;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp97(-32601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute97();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65535 65535 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65535 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute97;
+DROP PROCEDURE sp97;
+DROP PROCEDURE IF EXISTS sp98;
+CREATE PROCEDURE sp98( in f1 tinyint, inout f2 tinyint, out f3 tinyint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute98;
+CREATE PROCEDURE spexecute98()
+BEGIN
+declare var1 tinyint;
+declare var2 tinyint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -115;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp98(-115, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute98();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-116 -116 -106 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-116 -106 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute98;
+DROP PROCEDURE sp98;
+DROP PROCEDURE IF EXISTS sp99;
+CREATE PROCEDURE sp99( in f1 tinyint unsigned, inout f2 tinyint unsigned, out f3 tinyint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute99;
+CREATE PROCEDURE spexecute99()
+BEGIN
+declare var1 tinyint unsigned;
+declare var2 tinyint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 251;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp99(251, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute99();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+252 252 255 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+252 255 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute99;
+DROP PROCEDURE sp99;
+DROP PROCEDURE IF EXISTS sp100;
+CREATE PROCEDURE sp100( in f1 tinyint unsigned zerofill, inout f2 tinyint unsigned zerofill, out f3 tinyint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute100;
+CREATE PROCEDURE spexecute100()
+BEGIN
+declare var1 tinyint unsigned zerofill;
+declare var2 tinyint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 201;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp100(201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute100();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+202 202 212 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+202 212 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute100;
+DROP PROCEDURE sp100;
+DROP PROCEDURE IF EXISTS sp101;
+CREATE PROCEDURE sp101( in f1 tinyint zerofill, inout f2 tinyint zerofill, out f3 tinyint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute101;
+CREATE PROCEDURE spexecute101()
+BEGIN
+declare var1 tinyint zerofill;
+declare var2 tinyint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -101;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp101(-101, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute101();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+255 255 255 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+255 255 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute101;
+DROP PROCEDURE sp101;
+USE db_storedproc;
+DROP DATABASE db1;
+USE db_storedproc;
+
+Testcase 4.7.2:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for "allow_invalid_dates" server sql mode
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+drop table IF EXISTS temp_table;
+create table temp_table (f1 datetime);
+set @@sql_mode = 'allow_invalid_dates';
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare a datetime;
+set a = '2005-03-14 01:01:02';
+insert into temp_table values(a);
+END//
+show CREATE PROCEDURE sp2;
+Procedure sql_mode Create Procedure
+sp2 ALLOW_INVALID_DATES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
+BEGIN
+declare a datetime;
+set a = '2005-03-14 01:01:02';
+insert into temp_table values(a);
+END
+set @@sql_mode = 'traditional';
+CALL sp2 ();
+SELECT * from temp_table;
+f1
+2005-03-14 01:01:02
+SELECT @@sql_mode;
+@@sql_mode
+STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP PROCEDURE sp2;
+drop table temp_table;
+
+Testcase 4.7.3:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for *high_not_precedence* server sql mode
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp3;
+set @@sql_mode = 'high_not_precedence';
+CREATE PROCEDURE sp3()
+BEGIN
+declare a int signed;
+declare b int unsigned;
+set a = -5;
+set b = 5;
+SELECT not 1 between a and b;
+END//
+show CREATE PROCEDURE sp3;
+Procedure sql_mode Create Procedure
+sp3 HIGH_NOT_PRECEDENCE CREATE DEFINER=`root`@`localhost` PROCEDURE `sp3`()
+BEGIN
+declare a int signed;
+declare b int unsigned;
+set a = -5;
+set b = 5;
+SELECT not 1 between a and b;
+END
+set @@sql_mode='';
+CALL sp3();
+not 1 between a and b
+1
+SELECT @@sql_mode;
+@@sql_mode
+
+DROP PROCEDURE sp3;
+
+Testcase 4.7.4:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for combination of server sql modes
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp4;
+set @@sql_mode = 'ansi, error_for_division_by_zero';
+ERROR 42000: Variable 'sql_mode' can't be set to the value of ' error_for_division_by_zero'
+set @@sql_mode = 'ansi,error_for_division_by_zero';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,ERROR_FOR_DIVISION_BY_ZERO
+CREATE PROCEDURE sp4()
+BEGIN
+declare a int;
+declare b int;
+declare c int;
+set a = 0;
+set b = 1;
+set c = b/a;
+show warnings;
+END//
+show CREATE PROCEDURE sp4;
+Procedure sql_mode Create Procedure
+sp4 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,ERROR_FOR_DIVISION_BY_ZERO CREATE DEFINER="root"@"localhost" PROCEDURE "sp4"()
+BEGIN
+declare a int;
+declare b int;
+declare c int;
+set a = 0;
+set b = 1;
+set c = b/a;
+show warnings;
+END
+set @@sql_mode='';
+CALL sp4();
+Level Code Message
+Error 1365 Division by 0
+Warnings:
+Error 1365 Division by 0
+DROP PROCEDURE sp4;
+set @@sql_mode='';
+
+Section 3.1.8 - SHOW statement checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.8.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+DROP PROCEDURE IF EXISTS sp6a;
+DROP PROCEDURE IF EXISTS sp6b;
+DROP PROCEDURE IF EXISTS sp6c;
+CREATE PROCEDURE sp6a (i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+language sql
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+CREATE PROCEDURE sp6b (out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+deterministic
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+CREATE PROCEDURE sp6c (inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real) comment 'this is a comment'
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+show CREATE PROCEDURE sp6a;
+Procedure sql_mode Create Procedure
+sp6a CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6a`(i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+show CREATE PROCEDURE sp6b;
+Procedure sql_mode Create Procedure
+sp6b CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6b`(out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+ DETERMINISTIC
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+show CREATE PROCEDURE sp6c;
+Procedure sql_mode Create Procedure
+sp6c CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6c`(inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real)
+ COMMENT 'this is a comment'
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+SHOW PROCEDURE status like 'sp6a';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6a PROCEDURE root@localhost modified created DEFINER
+SHOW PROCEDURE status like 'sp6b';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6b PROCEDURE root@localhost modified created DEFINER
+SHOW PROCEDURE status like 'sp6c';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6c PROCEDURE root@localhost modified created DEFINER this is a comment
+DROP PROCEDURE sp6a;
+DROP PROCEDURE sp6b;
+DROP PROCEDURE sp6c;
+
+Testcase 4.8.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE sp6;
+
+Testcase 4.8.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+SHOW CREATE FUNCTION sp6;
+ERROR 42000: FUNCTION sp6 does not exist
+DROP PROCEDURE sp6;
+
+Testcase 4.8.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE FUNCTION sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns longtext
+BEGIN
+set @x=i1;
+set @y=@x;
+return 0;
+END//
+show function status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION sp6;
+
+Testcase 4.8.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7;
+show CREATE PROCEDURE sp7;
+ERROR 42000: PROCEDURE sp7 does not exist
+
+Testcase 4.8.6:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+show procedure status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.7:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+show CREATE PROCEDURE fn1;
+ERROR 42000: PROCEDURE fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 4.8.8:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+show procedure status like 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+DROP FUNCTION fn1;
+
+Testcase 4.8.9:
+--------------------------------------------------------------------------------
+
+Testcase 4.8.10:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION fn1;
+
+Testcase 4.8.11:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+show CREATE PROCEDURE fn1;
+ERROR 42000: PROCEDURE fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 4.8.12:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1(x int) returns int
+BEGIN
+return x;
+END//
+DROP FUNCTION fn1;
+show CREATE FUNCTION fn1;
+ERROR 42000: FUNCTION fn1 does not exist
+
+Testcase 4.8.13:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS f1000;
+SHOW FUNCTION STATUS LIKE 'f1000';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.14:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+SELECT * from t8;
+END//
+show CREATE FUNCTION sp1;
+ERROR 42000: FUNCTION sp1 does not exist
+DROP PROCEDURE sp1;
+
+Testcase 4.8.15:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+show function status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+DROP PROCEDURE sp6;
+
+Testcase 4.8.16:
+--------------------------------------------------------------------------------
+
+Testcase 4.8.17:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+alter procedure sp6 sql security invoker;
+alter procedure sp6 comment 'this is a new comment';
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 PROCEDURE root@localhost modified created INVOKER this is a new comment
+DROP PROCEDURE sp6;
+
+Testcase 4.8.18:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+alter function fn1 sql security invoker;
+show create function fn1;
+Function sql_mode Create Function
+fn1 CREATE DEFINER=`root`@`localhost` FUNCTION `fn1`(x int) RETURNS int(11)
+ SQL SECURITY INVOKER
+BEGIN
+return x;
+END
+DROP FUNCTION fn1;
+
+Testcase 4.8.19:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+return i1;
+END//
+alter function fn1 sql security invoker;
+alter function fn1 comment 'this is a function 3242#@%$#@';
+show function status like 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is a function 3242#@%$#@
+DROP FUNCTION fn1;
+
+Testcase 4.8.20:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 int , i2 int)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+alter procedure sp6 comment 'this is simple';
+show CREATE PROCEDURE sp6;
+Procedure sql_mode Create Procedure
+sp6 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6`(i1 int , i2 int)
+ COMMENT 'this is simple'
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+DROP PROCEDURE sp6;
+
+Testcase 4.8.21:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 int, i2 int)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+DROP PROCEDURE sp6;
+show CREATE PROCEDURE sp6;
+ERROR 42000: PROCEDURE sp6 does not exist
+
+Testcase 4.8.22:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i3;
+set @y=@x;
+END//
+DROP PROCEDURE sp6;
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.23:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+DROP FUNCTION fn1;
+show CREATE FUNCTION fn1;
+ERROR 42000: FUNCTION fn1 does not exist
+
+Testcase 4.8.24:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+return i1;
+END//
+DROP FUNCTION fn1;
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+
+Section 3.1.9 - Routine body checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.9.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+SELECT * from t9 limit 0, 100;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+-5000 a` -5000
+-4999 aaa -4999
+-4998 abaa -4998
+-4997 acaaa -4997
+-4996 adaaaa -4996
+-4995 aeaaaaa -4995
+-4994 afaaaaaa -4994
+-4993 agaaaaaaa -4993
+-4992 a^aaaaaaaa -4992
+-4991 a_aaaaaaaaa -4991
+DROP PROCEDURE sp6;
+
+Testcase 4.9.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+delete from res_t9;
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+f1 f2 f3
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+update res_t9 set f2 = 1000 where f2 = 50;
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+f1 f2 f3
+30 1000 111
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i1;
+set @y = i3;
+set @z = i5;
+set @a = @x;
+set @b = @y;
+set @c = @z;
+create table res_t9(f1 longtext, f2 longblob, f3 real);
+insert into res_t9 values (@a, @b, @c);
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+10 30 50
+DROP PROCEDURE sp6;
+drop table IF EXISTS res_t9;
+
+Testcase 4.9.6:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+SELECT * from t9 limit 0, 100;
+return i1;
+END//
+ERROR 0A000: Not allowed to return a result set from a function
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+Warnings:
+Note 1051 Unknown table 'res_t9'
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+delete from res_t9;
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+create table res_t9 (f1 longtext, f2 longblob, f3 real);
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+Warnings:
+Note 1051 Unknown table 'res_t9'
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+insert into res_t9 values (100, 'abc', 300);
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+update res_t9 set f1 = 20;
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+drop table res_t9;
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+
+Testcase 4.9.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 longtext, f2 longblob, f3 real);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i1;
+set @y = i3;
+set @z = i5;
+set @a = @x;
+set @b = @y;
+set @c = @z;
+insert into res_t9 values (@a, @b, @c);
+SELECT * from res_t9;
+create index index_1 on res_t9 (f1 (5));
+show index from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+10 30 50
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+res_t9 1 index_1 1 f1 A NULL 5 NULL YES BTREE
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Section 3.1._ - :
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.11.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1305 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @xx=1;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for 1318 set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for 1305 set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1 ();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.6:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.8:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.9:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @xx=1;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.10:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1 ();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.11:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.12:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.13:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+fetch cur1 into a, b;
+SELECT done;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.14:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+fetch cur1 into a, b;
+SELECT done;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.15:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+set @x=0;
+fetch cur1 into a, b;
+SELECT @x=1;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.16:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+set @x=0;
+fetch cur1 into a, b;
+SELECT @x=1;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+CALL h1()
+# cleanup;
+done
+0
+@x=1
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.17:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate 'HY000' set done = 1;
+open cur1;
+SELECT done;
+fetch cur1 into a;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.18:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1328 set done = 1;
+open cur1;
+SELECT done;
+fetch cur1 into a;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.19:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate 'HY000' set done = 1;
+open cur1;
+SELECT done;
+set @x=0;
+fetch cur1 into a;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.20:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1328 set done = 1;
+open cur1;
+SELECT done;
+set @x=0;
+fetch cur1 into a;
+set @x=1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.21:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1325 set done = 1;
+open cur1;
+SELECT done;
+open cur1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.22:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1325 set done = 1;
+open cur1;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.23:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1325 set done = 1;
+open cur1;
+set @x=0;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.24:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '24000' set done = 1;
+open cur1;
+set @x=0;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.25:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1326 set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.26:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '24000' set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.27:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1326 set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.28:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '24000' set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.29:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1339 set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.30:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '20000' set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.31:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1339 set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.32:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '20000' set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.33:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+CREATE PROCEDURE h1()
+BEGIN
+declare condname condition for sqlstate '20000';
+declare done int default 0;
+declare a, b char;
+declare condname condition for sqlstate '20000';
+declare cur1 cursor for SELECT w, x from t1;
+set @x=2;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+ERROR 42000: Duplicate condition: condname
+drop table res_t1;
+
+Testcase 4.11.35:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+CREATE TABLE res_t1(w INT UNIQUE, x CHAR);
+insert into res_t1 values (1, 'a');
+CREATE PROCEDURE h1 ()
+begin1_label:BEGIN
+declare condname1 condition for sqlstate '020';
+declare condname2 condition for sqlstate 'wewe';
+declare condname3 condition for 9999;
+declare exit handler for sqlstate '020' set @var1 = 1;
+declare exit handler for sqlstate 'wewe'set @var1 = 1;
+declare exit handler for 9999 set @var1 = 1;
+set @var2 = 1;
+insert into res_t1 values (2, 'b');
+begin2_label: BEGIN
+declare continue handler for sqlstate '90000023' set @var3= 1;
+set @var4 = 1;
+insert into res_t1 values (3, 'c');
+END begin2_label;
+END begin1_label//
+ERROR 42000: Bad SQLSTATE: '020'
+drop table res_t1;
+
+Testcase 4.11.36:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '00000';
+declare exit handler for condname1 set @x = 1;
+set x1 = 1;
+set x1 = 2;
+END;
+SELECT @x, x1;
+END//
+DROP PROCEDURE h1;
+
+Testcase 4.11.40:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5 int default 0;
+declare condname1 condition for sqlstate '42000';
+declare condname2 condition for sqlstate '42000';
+declare continue handler for condname1 set x1 = 1;
+declare continue handler for condname1 set x2 = 1;
+declare exit handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x4 = 1;
+declare exit handler for condname2 set x5 = 1;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+DROP PROCEDURE IF EXISTS h1;
+drop table res_t1;
+
+Testcase 4.11.41:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '00000';
+declare exit handler for sqlstate '00000' set @x = 1;
+set x1 = 1;
+set x1 = 2;
+END;
+SELECT @x, x1;
+END//
+DROP PROCEDURE IF EXISTS h1;
+
+* Testcase 3.1.2.53 (4.11.42):
+* Ensure that a handler condition of sqlwarning takes the same action as a
+* handler condition defined with an sqlstate that begins with 01.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+CREATE PROCEDURE h1()
+BEGIN
+DECLARE EXIT HANDLER FOR SQLWARNING SET @done = 1;
+set @done=0;
+set @x=1;
+insert into res_t1 values('xxx', 'yy');
+set @x=0;
+END//
+CALL h1();
+ERROR 42S02: Table 'db_storedproc.res_t1' doesn't exist
+SELECT @done, @x;
+@done @x
+0 1
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+CALL h1();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+CREATE PROCEDURE h1()
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLWARNING SET @done = 1;
+set @done=0;
+set @x=0;
+insert into res_t1 values('xxx', 'yy');
+set @x=1;
+END//
+CALL h1();
+ERROR 42S02: Table 'db_storedproc.res_t1' doesn't exist
+SELECT @done, @x;
+@done @x
+0 0
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+CALL h1();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE h1;
+DROP TABLE res_t1;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result
new file mode 100755
index 00000000000..731d5c4a8cf
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result
@@ -0,0 +1,1387 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.2 - Syntax checks for the stored procedure-specific
+programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.2.8:
+-----------------
+
+Ensure that the scope of each BEGIN/END compound statement within a stored
+procedure definition is properly applied
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char DEFAULT 'x';
+declare y char DEFAULT 'y';
+set x = '1';
+set y = '2';
+label1: BEGIN
+declare x char DEFAULT 'X';
+declare y char DEFAULT 'Y';
+SELECT f1, f2 into x, y from t2 limit 1;
+SELECT '1.1', x, y;
+label2: BEGIN
+declare x char default 'a';
+declare y char default 'b';
+label3: BEGIN
+declare x char default 'c';
+declare y char default 'd';
+label4: BEGIN
+declare x char default 'e';
+declare y char default 'f';
+label5: BEGIN
+declare x char default 'g';
+declare y char default 'h';
+SELECT 5, x, y;
+END label5;
+SELECT 4, x, y;
+END label4;
+SELECT 3, x, y;
+END label3;
+SELECT 2, x, y;
+END label2;
+END label1;
+set @v1 = x;
+set @v2 = y;
+SELECT '1.2', @v1, @v2;
+END begin_label//
+CALL sp1();
+1.1 x y
+1.1 a a
+5 x y
+5 g h
+4 x y
+4 e f
+3 x y
+3 c d
+2 x y
+2 a b
+1.2 @v1 @v2
+1.2 1 2
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+
+Testcase 3.1.2.26:
+------------------
+
+Ensure that the initial value of every variable declared for a stored procedure
+is either NULL or its DEFAULT value, as appropriate.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+set @v1=0;
+set @v2=0;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x1 char default 'x';
+declare y1 char;
+declare x2 tinytext default 'tinytext';
+declare y2 tinytext;
+declare x3 datetime default '2005-10-03 12:13:14';
+declare y3 datetime;
+declare x4 float default 1.2;
+declare y4 float;
+declare x5 blob default 'b';
+declare y5 blob;
+declare x6 smallint default 127;
+declare y6 smallint;
+SELECT x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6;
+END//
+CALL sp1();
+x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6
+x tinytext 2005-10-03 12:13:14 1.2 b 127 NULL NULL NULL NULL NULL NULL
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.30:
+------------------
+
+Ensure that, when a stored procedure is called/executed, every variable always
+uses the correct value: either the value with which it is initialized or the
+value to which it is subsequently SET or otherwise assigned, as appropriate.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( IN invar INT, OUT outvar INT )
+BEGIN
+declare x integer;
+declare y integer default 1;
+set @x = x;
+set @y = y;
+set @z = 234;
+SELECT f1, f2 into @x, @y from t2 limit 1;
+SELECT @x, @y, @z, invar;
+BEGIN
+set @x = 2;
+SELECT @x, @y, @z;
+SET outvar = @x * invar + @z * @f;
+SET invar = outvar;
+BEGIN
+set @y = null, @z = 'abcd';
+SELECT @x, @y, @z;
+END;
+END;
+END//
+SET @invar = 100;
+SET @outvar = @invar;
+SET @f = 10;
+SELECT @x, @y, @z, @invar, @outvar;
+@x @y @z @invar @outvar
+NULL NULL NULL 100 100
+CALL sp1( @invar, @outvar );
+@x @y @z invar
+a` a` 234 100
+@x @y @z
+2 a` 234
+@x @y @z
+2 NULL abcd
+SELECT @x, @y, @z, @invar, @outvar;
+@x @y @z @invar @outvar
+2 NULL abcd 100 2540
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.31:
+------------------
+
+Ensure that the SELECT ... INTO statement properly assigns values to the
+variables in its variable list.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3 into @x, @y from t2 limit 1;
+SELECT @x, @y;
+END//
+CALL sp1();
+@x @y
+-5000 1000-01-01
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.32:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves multiple rows is
+rejected, with an appropriate error message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3 into @x, @y from t2;
+END//
+CALL sp1();
+ERROR 42000: Result consisted of more than one row
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.33:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves too many columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3, f2, f1 into @x, @y from t2;
+END//
+CALL sp1();
+ERROR 21000: The used SELECT statements have a different number of columns
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.34:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves too few columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer; declare z integer;
+set @x=x;
+set @y=y;
+set @z=z;
+SELECT f4 into @x, @y, @z from t2;
+END//
+CALL sp1();
+ERROR 21000: The used SELECT statements have a different number of columns
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.38:
+------------------
+
+Ensure that the scope of every condition declared is properly applied.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+SELECT '-1-', x1, x2, x3, x4, x5, x6;
+BEGIN
+declare condname condition for sqlstate '23000';
+declare continue handler for condname set x5 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+SELECT '-2-', x1, x2, x3, x4, x5, x6;
+END;
+begin1_label: BEGIN
+BEGIN
+declare condname condition for sqlstate '20000';
+declare continue handler for condname set x1 = 1;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+SELECT '-3-', x1, x2, x3, x4, x5, x6;
+begin2_label: BEGIN
+BEGIN
+declare condname condition for sqlstate '23000';
+declare exit handler for condname set x3 = 1;
+set x4= 1;
+SELECT '-4a', x1, x2, x3, x4, x5, x6;
+insert into res_t1 values ('a', 'b');
+set x4= 2;
+SELECT '-4b', x1, x2, x3, x4, x5, x6;
+END;
+SELECT '-5-', x1, x2, x3, x4, x5, x6;
+END begin2_label;
+SELECT '-6-', x1, x2, x3, x4, x5, x6;
+END;
+SELECT '-7-', x1, x2, x3, x4, x5, x6;
+END begin1_label;
+SELECT 'END', x1, x2, x3, x4, x5, x6;
+END//
+CALL h1();
+-1- x1 x2 x3 x4 x5 x6
+-1- 0 0 0 0 0 0
+-2- x1 x2 x3 x4 x5 x6
+-2- 0 0 0 0 1 1
+-3- x1 x2 x3 x4 x5 x6
+-3- 1 1 0 0 1 1
+-4a x1 x2 x3 x4 x5 x6
+-4a 1 1 0 1 1 1
+-5- x1 x2 x3 x4 x5 x6
+-5- 1 1 1 1 1 1
+-6- x1 x2 x3 x4 x5 x6
+-6- 1 1 1 1 1 1
+-7- x1 x2 x3 x4 x5 x6
+-7- 1 1 1 1 1 1
+END x1 x2 x3 x4 x5 x6
+END 1 1 1 1 1 1
+DROP TABLE IF EXISTS tnull;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE TABLE tnull(f1 int);
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42S02';
+declare continue handler for cond1 set @var2 = 1;
+BEGIN
+declare cond1 condition for sqlstate '23000';
+declare continue handler for cond1 set @var2 = 1;
+END;
+insert into tnull values(1);
+END//
+CALL sp1();
+DROP PROCEDURE h1;
+drop table res_t1;
+DROP PROCEDURE sp1;
+DROP TABLE tnull;
+
+Testcase 3.1.2.43:
+------------------
+
+Ensure that the DECLARE ... HANDLER FOR statement can not declare any handler
+for a condition declared outside of the scope of the handler.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS h2;
+drop table IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare cond_1 condition for sqlstate '23000';
+declare continue handler for cond_1 set x5 = 1;
+BEGIN
+declare cond_2 condition for sqlstate '20000';
+declare continue handler for cond_1 set x1 = 1;
+BEGIN
+declare continue handler for cond_2 set x3 = 1;
+set x2 = 1;
+END;
+set x6 = 0;
+END;
+BEGIN
+declare continue handler for cond_1 set x1 = 1;
+BEGIN
+declare continue handler for cond_2 set x3 = 1;
+set x2 = 1;
+END;
+set x6 = 0;
+END;
+END;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+ERROR 42000: Undefined CONDITION: cond_2
+CREATE PROCEDURE h2 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare condname condition for sqlstate '23000';
+declare continue handler for condname set x5 = 1;
+BEGIN
+declare condname condition for sqlstate '20000';
+declare continue handler for condname set x1 = 1;
+BEGIN
+declare condname condition for sqlstate '42000';
+declare continue handler for condname set x3 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+set x4= 0;
+CALL sp1();
+set x4= 1;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+END;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+END;
+END;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+CALL h2();
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+SELECT * FROM res_t1;
+w x
+a b
+DROP PROCEDURE h2;
+drop table res_t1;
+
+Testcase 3.1.2.44:
+------------------
+
+Ensure that the DECLARE ... HANDLER FOR statement cannot declare a handler for
+any invalid, or undeclared, condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '23000';
+BEGIN
+declare condname2 condition for sqlstate '20000';
+declare continue handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x1 = 1;
+END;
+END;
+BEGIN
+declare condname3 condition for sqlstate '42000';
+declare continue handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x5 = 1;
+declare continue handler for condname3 set x1 = 1;
+END;
+END//
+ERROR 42000: Undefined CONDITION: condname1
+CREATE PROCEDURE h1 ()
+BEGIN
+DECLARE x1 INT DEFAULT 0;
+BEGIN
+DECLARE condname1 CONDITION CHECK SQLSTATE '23000';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 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 'CHECK SQLSTATE '23000';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+' at line 5
+CREATE PROCEDURE h1 ()
+BEGIN
+DECLARE x1 INT DEFAULT 0;
+BEGIN
+DECLARE condname1 CONDITION FOR SQLSTATE 'qwert';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: 'qwert'
+
+Testcase 3.1.2.45 + 3.1.2.50:
+-----------------------------
+
+45. Ensure that the scope of every handler declared is properly applied.
+50. Ensure that a CONTINUE handler allows the execution of the stored procedure
+. to continue once the handler statement has completed its own execution (that
+. is, once the handler action statement has been executed).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p1undo;
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t1;
+==> 'UNDO' is still not supported.
+create procedure p1undo ()
+begin
+declare undo handler for sqlexception select '1';
+select * from tqq;
+SELECT 'end of 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 'undo handler for sqlexception select '1';
+select * from tqq;
+SELECT 'end of 1';
+' at line 3
+create procedure p1 ()
+begin
+declare exit handler for sqlexception select 'exit handler 1';
+begin
+declare exit handler for sqlexception select 'exit handler 2';
+begin
+declare continue handler for sqlexception select 'continue handler 3';
+drop table if exists tqq;
+select * from tqq;
+SELECT 'end of BEGIN/END 3';
+end;
+drop table if exists tqq;
+select * from tqq;
+SELECT 'end of BEGIN/END 2';
+end;
+select * from tqq;
+SELECT 'end of BEGIN/END 1';
+end;//
+call p1()//
+continue handler 3
+continue handler 3
+end of BEGIN/END 3
+end of BEGIN/END 3
+exit handler 2
+exit handler 2
+exit handler 1
+exit handler 1
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare continue handler for sqlstate '23000' set x5 = 1;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+END;
+begin1_label: BEGIN
+BEGIN
+declare continue handler for sqlstate '23000' set x1 = 1;
+insert into res_t1 values ('a', 'b');
+set x2 = 1;
+begin2_label: BEGIN
+BEGIN
+declare exit handler for sqlstate '23000' set x3 = 1;
+set x4= 1;
+insert into res_t1 values ('a', 'b');
+set x4= 0;
+END;
+END begin2_label;
+END;
+END begin1_label;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+CALL h1();
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+CREATE PROCEDURE sp1()
+begin1_label:BEGIN
+declare exit handler for sqlstate '00000' set @var1 = 5;
+set @var2 = 6;
+begin2_label:BEGIN
+declare continue handler for sqlstate '00000' set @var3 = 7;
+set @var4 = 8;
+SELECT @var3, @var4;
+END begin2_label;
+SELECT @var1, @var2;
+END begin1_label//
+CALL sp1();
+@var3 @var4
+NULL 8
+@var1 @var2
+NULL 6
+DROP PROCEDURE p1;
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+DROP TABLE res_t1;
+
+Testcase 3.1.2.50:
+------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=0;
+END//
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+SELECT @x2;
+CALL sp1(1);
+set @x=2;
+SELECT @x2, @x;
+END//
+CALL sp2();
+@x2
+NULL
+@x2 @x
+1 2
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.2.2.51:
+------------------
+
+Ensure that an EXIT handler causes the execution of the stored procedure to
+terminate, within its scope, once the handler action statement has been
+executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @x=0;
+END//
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x2=0;
+set @x=1;
+SELECT '-1-', @x2, @x;
+CALL sp1(1);
+SELECT '-2-', @x2, @x;
+set @x=2;
+END//
+CALL sp1(1);
+ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp1; expected 2, got 1
+CALL sp2();
+-1- @x2 @x
+-1- 0 1
+SELECT '-3-', @x2, @x;
+-3- @x2 @x
+-3- 1 1
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.52:
+------------------
+
+Ensure that an EXIT handler does not cause the execution of the stored procedure
+to terminate outside of its scope.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @x=0;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 2;
+set @x2 = 1;
+set @x =20;
+SELECT '-1-', @x2, @x;
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 11;
+SELECT '-2-', @x2, @x;
+CALL sp1(1);
+SELECT '-3a', @x2, @x;
+set @x=21;
+SELECT '-3b', @x2, @x;
+END;
+set @x=22;
+SELECT '-4-', @x2, @x;
+END//
+CALL sp2();
+-1- @x2 @x
+-1- 1 20
+-2- @x2 @x
+-2- 1 20
+-4- @x2 @x
+-4- 11 22
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.54:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“01“ is always exactly equivalent in action to a handler with an SQLWARNING
+condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+DROP TABLE IF EXISTS temp;
+CREATE TABLE temp( f1 CHAR, f2 CHAR);
+CREATE PROCEDURE sp0()
+BEGIN
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '01000' set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+declare continue handler for sqlwarning set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+declare exit handler for sqlstate '01000' set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+declare exit handler for sqlwarning set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+INSERT INTO temp VALUES('0', NULL);
+CALL sp0();
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Warning 1265 Data truncated for column 'f2' at row 1
+SELECT @done, @x;
+@done @x
+0 1
+INSERT INTO temp VALUES('1', NULL);
+CALL sp1();
+SELECT @done, @x;
+@done @x
+1 1
+INSERT INTO temp VALUES('2', NULL);
+CALL sp2();
+SELECT @done, @x;
+@done @x
+1 1
+INSERT INTO temp VALUES('3', NULL);
+CALL sp3();
+SELECT @done, @x;
+@done @x
+1 0
+INSERT INTO temp VALUES('4', NULL);
+CALL sp4();
+SELECT @done, @x;
+@done @x
+1 0
+SELECT * FROM temp;
+f1 f2
+0 NULL
+x y
+1 NULL
+x y
+2 NULL
+x y
+3 NULL
+x y
+4 NULL
+x y
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+DROP TABLE temp;
+
+Testcase 3.1.2.56:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“02“ is always exactly equivalent in action to a handler with a NOT FOUND
+condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp0()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare continue handler for sqlstate '02000' set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare continue handler for not found set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare exit handler for sqlstate '02000' set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare exit handler for not found set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CALL sp0();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+SELECT @done, @x;
+@done @x
+0 1
+CALL sp1();
+SELECT @done, @x;
+@done @x
+1 2
+CALL sp2();
+SELECT @done, @x;
+@done @x
+1 2
+CALL sp3();
+SELECT @done, @x;
+@done @x
+1 1
+CALL sp4();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+Testcase 3.1.2.58:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+anything other that “01“ or “02“ is always exactly equivalent in action to a
+handler with an SQLEXCEPTION condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp0()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE continue HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE continue HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE EXIT HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+CLOSE cur1;
+END//
+CALL sp0();
+ERROR 20000: Case not found for CASE statement
+SELECT '-0-', @x;
+-0- @x
+-0- 1
+CALL sp1();
+SQLSTATE
+20000
+SQLSTATE
+21000
+SQLSTATE
+24000
+SELECT '-1-', @x;
+-1- @x
+-1- 6
+CALL sp2();
+SQLSTATE
+SQLEXCEPTION
+SQLSTATE
+SQLEXCEPTION
+SQLSTATE
+24000
+SELECT '-2-', @x;
+-2- @x
+-2- 6
+CALL sp3();
+SQLSTATE
+20000
+SELECT '-3-', @x;
+-3- @x
+-3- 1
+CALL sp4();
+SQLSTATE
+SQLEXCEPTION
+SELECT '-4-', @x;
+-4- @x
+-4- 1
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+Testcase 3.1.2.65:
+------------------
+
+Ensure that FETCH <cursor name> returns the first row of the cursor_s result set
+the first time FETCH is executed, that it returns each subsequent row of the
+cursor_s result set each of the subsequent times FETCH is executed, and that it
+returns a NOT FOUND warning if it is executed after the last row of the cursor_s
+result set has already been fetched.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp;
+CREATE TABLE temp(
+cnt INT,
+f1 CHAR(20),
+f2 CHAR(20),
+f3 INT,
+f4 CHAR(20),
+f5 INT);
+INSERT INTO temp VALUES(0, 'onip', 'abc', 8760, 'xyz', 10);
+CREATE PROCEDURE sp1( )
+BEGIN
+declare proceed int default 1;
+declare count integer default 1;
+declare f1_value char(20);
+declare f2_value char(20);
+declare f5_value char(20);
+declare f4_value integer;
+declare f6_value integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3;
+open cur1;
+while proceed do
+SELECT count AS 'loop';
+fetch cur1 into f1_value, f2_value, f4_value, f5_value, f6_value;
+insert into temp values (count, f1_value, f2_value, f4_value, f5_value, f6_value);
+set count = count + 1;
+END while;
+END//
+CALL sp1();
+loop
+1
+loop
+2
+loop
+3
+loop
+4
+ERROR 02000: No data - zero rows fetched, selected, or processed
+SELECT * FROM temp;
+cnt f1 f2 f3 f4 f5
+0 onip abc 8760 xyz 10
+1 a` a` -5000 a` -5000
+2 aaa aaa -4999 aaa -4999
+3 abaa abaa -4998 abaa -4998
+DROP TABLE temp;
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.68:
+------------------
+
+Ensure that FETCH <cursor name> fails with an appropriate error message if the
+number of columns to be fetched does not match the number of variables specified
+by the FETCH statement.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--> not enough columns in FETCH statement
+CREATE PROCEDURE sp1( )
+BEGIN
+declare newf1 char(20);
+declare cur1 cursor for SELECT f1, f2 from t2 limit 10;
+declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+BEGIN
+open cur1;
+fetch cur1 into newf1;
+SELECT newf1;
+close cur1;
+END;
+END//
+--> too many columns in FETCH statement
+CREATE PROCEDURE sp2( )
+BEGIN
+declare newf1 char(20);
+declare newf2 char(20);
+declare cur1 cursor for SELECT f1 from t2 limit 10;
+declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+BEGIN
+open cur1;
+fetch cur1 into newf1, newf2;
+SELECT newf1, newf2;
+close cur1;
+END;
+END//
+--> not enough columns in FETCH statement
+CALL sp1();
+ERROR HY000: Incorrect number of FETCH variables
+--> too many columns in FETCH statement
+CALL sp2();
+ERROR HY000: Incorrect number of FETCH variables
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.75:
+------------------
+
+Ensure that, for nested compound statements, a cursor that was declared and
+opened during an outer level of the statement is not closed when an inner level
+of a compound statement ends.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS temp1;
+DROP PROCEDURE IF EXISTS sp1;
+create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) );
+SELECT f1, f2, f4, f5 from t2;
+f1 f2 f4 f5
+a` a` -5000 a`
+aaa aaa -4999 aaa
+abaa abaa -4998 abaa
+acaaa acaaa -4997 acaaa
+adaaaa adaaaa -4996 adaaaa
+aeaaaaa aeaaaaa -4995 aeaaaaa
+afaaaaaa afaaaaaa -4994 afaaaaaa
+agaaaaaaa agaaaaaaa -4993 agaaaaaaa
+a^aaaaaaaa a^aaaaaaaa -4992 a^aaaaaaaa
+a_aaaaaaaaa a_aaaaaaaaa -4991 a_aaaaaaaaa
+CREATE PROCEDURE sp1( )
+BEGIN
+declare count integer;
+declare from0 char(20);
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf5 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+open cur1;
+open cur2;
+BEGIN
+declare continue handler for sqlstate '02000' set count = 1;
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-1-', count, newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur1_out', newf1, newf2, newf4, newf5);
+set count = 4;
+BEGIN
+while count > 0 do
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-2-', count, newf1, newf2, newf4, newf5;
+set count = count - 1;
+END while;
+SELECT '-3-', count, newf1, newf2, newf4, newf4;
+END;
+BEGIN
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-4-', newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur1_in', newf1, newf2, newf4, newf5);
+END;
+fetch cur2 into newf1, newf2, newf4, newf5;
+SELECT '-5-', newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur2', newf1, newf2, newf4, newf5);
+close cur1;
+END;
+fetch cur2 into newf1, newf2, newf4, newf5;
+SELECT '-6-', newf1, newf2, newf4, newf5;
+close cur2;
+END//
+CALL sp1();
+-1- count newf1 newf2 newf4 newf5
+-1- NULL a` a` -5000 a`
+-2- count newf1 newf2 newf4 newf5
+-2- 4 aaa aaa -4999 aaa
+-2- count newf1 newf2 newf4 newf5
+-2- 3 abaa abaa -4998 abaa
+-2- count newf1 newf2 newf4 newf5
+-2- 2 acaaa acaaa -4997 acaaa
+-2- count newf1 newf2 newf4 newf5
+-2- 1 adaaaa adaaaa -4996 adaaaa
+-3- count newf1 newf2 newf4 newf4
+-3- 0 adaaaa adaaaa -4996 -4996
+-4- newf1 newf2 newf4 newf5
+-4- adaaaa adaaaa -4996 adaaaa
+-5- newf1 newf2 newf4 newf5
+-5- a` a` -5000 a`
+-6- newf1 newf2 newf4 newf5
+-6- aaa aaa -4999 aaa
+SELECT * from temp1;
+f0 f1 f2 f3 f4
+cur1_out a` a` -5000 a`
+cur1_in adaaaa adaaaa -4996 adaaaa
+cur2 a` a` -5000 a`
+DROP PROCEDURE sp1;
+drop table temp1;
+
+Testcase 3.1.2.76:
+------------------
+
+Ensure that all cursors operate asensitively, so that there is no concurrency
+conflict between cursors operating on the same, or similar, sets of results
+during execution of one or more stored procedures.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS temp1;
+drop table IF EXISTS temp2;
+create table temp1( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+create table temp2( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+CREATE PROCEDURE sp_inner( )
+BEGIN
+declare proceed int default 1;
+declare i_count integer default 20;
+declare i_newf1 char(20);
+declare i_newf2 char(20);
+declare i_newf3 date;
+declare i_newf4 integer;
+declare i_newf11 char(20);
+declare i_newf12 char(20);
+declare i_newf13 date;
+declare i_newf14 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4;
+declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3;
+declare continue handler for sqlstate '02000' set proceed=0;
+open cur1;
+open cur2;
+set i_count = 10;
+while proceed do
+fetch cur1 into i_newf1, i_newf2, i_newf3, i_newf4;
+IF proceed THEN
+insert into temp1 values ('sp_inner', i_count, i_newf1, i_newf2, i_newf3, i_newf4);
+fetch cur2 into i_newf11, i_newf12, i_newf13, i_newf14;
+IF proceed THEN
+insert into temp2 values ('sp_inner', i_count, i_newf11, i_newf12, i_newf13, i_newf14);
+END IF;
+END IF;
+set i_count = i_count - 1;
+END while;
+close cur1;
+close cur2;
+END//
+CREATE PROCEDURE sp_outer( )
+BEGIN
+DECLARE proceed INT DEFAULT 1;
+DECLARE o_count INTEGER DEFAULT 20;
+DECLARE o_newf1 CHAR(20);
+DECLARE o_newf2 CHAR(20);
+DECLARE o_newf3 DATE;
+DECLARE o_newf4 INTEGER;
+DECLARE o_newf11 CHAR(20);
+DECLARE o_newf12 CHAR(20);
+DECLARE o_newf13 DATE;
+DECLARE o_newf14 INTEGER;
+DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0;
+OPEN cur1;
+OPEN cur2;
+SET o_count = 1;
+WHILE proceed DO
+FETCH cur1 INTO o_newf1, o_newf2, o_newf3, o_newf4;
+IF proceed THEN
+INSERT INTO temp1 VALUES ('_sp_out_', o_count, o_newf1, o_newf2, o_newf3, o_newf4);
+CALL sp_inner();
+FETCH cur2 INTO o_newf11, o_newf12, o_newf13, o_newf14;
+IF proceed THEN
+INSERT INTO temp2 VALUES ('_sp_out_', o_count, o_newf11, o_newf12, o_newf13, o_newf14);
+END IF;
+END IF;
+SET o_count = o_count + 1;
+END WHILE;
+CLOSE cur1;
+CLOSE cur2;
+END//
+CALL sp_outer();
+SELECT * FROM temp1;
+f0 cnt f1 f2 f3 f4
+_sp_out_ 1 a` a` 1000-01-01 -5000
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 2 aaa aaa 1000-01-02 -4999
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 3 abaa abaa 1000-01-03 -4998
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 4 acaaa acaaa 1000-01-04 -4997
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 5 adaaaa adaaaa 1000-01-05 -4996
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+SELECT * FROM temp2;
+f0 cnt f1 f2 f3 f4
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 1 a` a` 1000-01-01 -5000
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 2 aaa aaa 1000-01-02 -4999
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 3 abaa abaa 1000-01-03 -4998
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 4 acaaa acaaa 1000-01-04 -4997
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 5 adaaaa adaaaa 1000-01-05 -4996
+DROP PROCEDURE sp_outer;
+DROP PROCEDURE sp_inner;
+DROP TABLE temp1;
+DROP TABLE temp2;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result
new file mode 100755
index 00000000000..6ee2d712e73
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result
@@ -0,0 +1,490 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.3 - Syntax checks for the stored procedure-specific flow
+control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.3.7:
+-----------------
+
+Ensure that the IF statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp9;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp9( action char(20), subaction char(20) )
+BEGIN
+if action = 'action' then
+if subaction = 'subaction' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction' , 1);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 2);
+END if;
+else
+if subaction = 'subaction'
+ then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction' , 3);
+elseif subaction = 'subaction1'
+ then
+BEGIN
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values ('none', 'subaction1', 4);
+END;
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 5);
+END if;
+END if;
+END//
+CALL sp9( 'action', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=1;
+f1 f2 f3
+action subaction 1
+CALL sp9( 'temp', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=3;
+f1 f2 f3
+none subaction 3
+CALL sp9( 'temp', 'subaction1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=4;
+f1 f2 f3
+none subaction1 4
+CALL sp9( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=2;
+f1 f2 f3
+action none 2
+CALL sp9( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=5;
+f1 f2 f3
+none none 5
+DROP PROCEDURE sp9;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.8.:
+------------------
+
+Ensure that the CASE statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp10;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp10( action char(20), subaction char(20) )
+BEGIN
+case action
+when 'action' then
+case
+when subaction = 'subaction_1' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 1);
+when subaction = 'subaction_2' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 2);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 3);
+END case;
+else
+case
+when subaction = 'subaction_1' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_1' , 4);
+when subaction = 'subaction_2' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_2' , 5);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 6);
+END case;
+END case;
+END//
+CALL sp10( 'action', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action subaction_2 1
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'action', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action subaction_2 2
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none subaction_1 4
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none subaction_2 5
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action none 3
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none none 6
+DROP PROCEDURE sp10;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.9 + 3.1.3.15:
+----------------------------
+
+09. Ensure that the LOOP statement acts correctly for all variants, including
+. cases where statements are nested.
+15. Ensure that the LEAVE statement acts correctly for all variants, including
+. cases where statements are nested.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp11;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp11( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: loop
+if count2 > 3 then leave label1;
+END if;
+set count1 = 1;
+label2: loop
+if count1 > 4 then leave label2;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate label2;
+END loop label2;
+set count2 = count2 + 1;
+iterate label1;
+END loop label1;
+END//
+CALL sp11();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+DROP PROCEDURE sp11;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.16:
+------------------
+
+Ensure that the ITERATE statement acts correctly for all variants, including
+cases where statements are nested.
+(tests for this testcase are also included in other testcases)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp31316;
+CREATE PROCEDURE sp31316( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: loop
+if count2 > 3 then leave label1;
+END if;
+set count1 = 1;
+label2: loop
+if count1 > 4 then leave label2;
+END if;
+insert into temp values( count1, count2);
+set count1 = count1 + 1;
+iterate label3;
+END loop label2;
+set count2 = count2 + 1;
+iterate label1;
+END loop label1;
+END//
+ERROR 42000: ITERATE with no matching label: label3
+
+Testcase 3.1.3.18:
+------------------
+
+Ensure that the REPEAT statement acts correctly for all variants, including
+cases where statements are nested.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp17;
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp17( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+repeat
+set count1 = count1 + 1;
+set count2 = 1;
+label1: repeat
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count2 > 3
+END repeat label1;
+until count1 > 3
+END repeat;
+END//
+CALL sp17();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+xyz pqr 2
+xyz pqr 2
+xyz pqr 3
+xyz pqr 3
+xyz pqr 3
+xyz pqr 4
+xyz pqr 4
+xyz pqr 4
+DROP PROCEDURE sp17;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.24:
+------------------
+
+Ensure that the WHILE statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t21;
+DROP PROCEDURE IF EXISTS sp21;
+create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);
+insert into res_t21 values('ashwin', 'mokadam', 25);
+CREATE PROCEDURE sp21( )
+BEGIN
+declare count1 integer default 0;
+declare count2 integer default 0;
+while count1 < 3 do
+BEGIN
+declare ithisissamevariablename int default 100;
+SELECT ithisissamevariablename;
+BEGIN
+declare ithisissamevariablename int default 200;
+SELECT ithisissamevariablename;
+END;
+set count2 = 0;
+label1: while count2 < 3 do
+BEGIN
+declare count1 integer default 7;
+set count2 = count2 + 1;
+insert into res_t21 values( 'xyz' , 'pqr', count2);
+label2: while count1 < 10 do
+set count1 = count1 + 1;
+insert into res_t21 values( 'xyz' , 'pqr', count1);
+END while label2;
+END;
+END while label1;
+set count1 = count1 + 1;
+END;
+END while;
+END//
+CALL sp21();
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+SELECT * from res_t21;
+name surname age_averylongfieldname_averylongname_1234569
+ashwin mokadam 25
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+DROP PROCEDURE sp21;
+drop table res_t21;
+
+Testcase 3.1.3.30:
+------------------
+
+Ensure that multiple cases of all possible combinations of the control flow
+statements, nested within multiple compound statements within a stored
+procedure, always act correctly and return the expected result.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_tbl;
+DROP PROCEDURE IF EXISTS sp31330;
+create table res_tbl (f1 int, f2 text, f3 blob, f4 date,
+f5 set('one', 'two', 'three', 'four', 'five') default 'one');
+CREATE PROCEDURE sp31330 (path int)
+BEGIN
+declare count int default 1;
+declare var1 text;
+declare var2 blob;
+declare var3 date;
+declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';
+case
+when path=1 then
+set var3 = '2000-11-09';
+set var1 = 'flowing through case 1';
+label1: loop
+if count > 5 then
+if var4=1000 then
+set var2 = 'exiting out of case 1 - invalid SET';
+END if;
+if var4='two' then
+set var2 = 'exiting out of case 1';
+END if;
+insert into res_tbl values (1, var1, var2, var3, (count-2));
+leave label1;
+elseif count = 5 then
+set count= count + 2;
+set var4='two';
+iterate label1;
+else
+set count= count + 1;
+END if;
+set var4='one';
+END loop label1;
+when path=2 then
+set var3 = '1989-11-09';
+set var1 = 'flowing through case 2';
+set @count3=0;
+label2: repeat
+set count=count + 1;
+set @count2=1;
+while @count2 <= 5 do
+set @count2 = @count2 + 1;
+END while;
+SELECT @count2;
+set @count3=@count3 + @count2;
+until count > 5
+END repeat label2;
+set var2 = 'exiting out of case 2';
+set var4 = count-3;
+SELECT @count3;
+insert into res_tbl values (2, var1, var2, var3, var4);
+ELSE BEGIN
+set @error_opt='undefined path specified';
+SELECT @error_opt;
+END;
+END case;
+END//
+CALL sp31330();
+ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp31330; expected 1, got 0
+CALL sp31330(1);
+SELECT * from res_tbl;
+f1 f2 f3 f4 f5
+1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
+CALL sp31330(2);
+@count2
+6
+@count2
+6
+@count2
+6
+@count2
+6
+@count2
+6
+@count3
+30
+SELECT * from res_tbl;
+f1 f2 f3 f4 f5
+1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
+2 flowing through case 2 exiting out of case 2 1989-11-09 one,two
+CALL sp31330(4);
+@error_opt
+undefined path specified
+DROP PROCEDURE sp31330;
+drop table res_tbl;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result
new file mode 100644
index 00000000000..a627de4b534
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result
@@ -0,0 +1,399 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.6 - Privilege Checks:
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+
+root@localhost db_storedproc_1
+
+Testcase 3.1.6.1:
+-----------------
+Ensure that no user may create a stored procedure without the GRANT CREATE
+ROUTINE privilege.
+--------------------------------------------------------------------------------
+create user 'user_1'@'localhost';
+grant all on db_storedproc_1.* to 'user_1'@'localhost';
+revoke create routine on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+DROP PROCEDURE IF EXISTS sp1;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
+
+root@localhost db_storedproc_1
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+
+root@localhost db_storedproc_1
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp1;
+
+Testcase 3.1.6.2:
+-----------------
+Ensure that root always has the GRANT CREATE ROUTINE privilege.
+(checked by other testscases)
+--------------------------------------------------------------------------------
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+DROP PROCEDURE IF EXISTS sp3;
+DROP FUNCTION IF EXISTS fn1;
+CREATE PROCEDURE sp3(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+CREATE FUNCTION fn1(v1 int) returns int
+BEGIN
+return v1;
+END//
+
+root@localhost db_storedproc_1
+drop user 'user_1'@'localhost';
+DROP PROCEDURE sp3;
+DROP FUNCTION fn1;
+Warnings:
+Error 1133 Can't find any matching row in the user table
+Error 1269 Can't revoke all privileges for one or more of the requested users
+Warning 1405 Failed to revoke all privileges to dropped routine
+
+Testcase 3.1.6.4:
+-----------------
+Ensure that the default security provision of a stored procedure is SQL SECURITY
+DEFINER.
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+grant update on db_storedproc_1.t6 to 'user_1'@'localhost';
+grant execute on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+USE db_storedproc_1;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CALL sp4('a');
+f1 f2 f3 f4 f5 f6
+SELECT SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE,
+ROUTINE_BODY, ROUTINE_DEFINITION, IS_DETERMINISTIC,
+SQL_DATA_ACCESS, SECURITY_TYPE, SQL_MODE, ROUTINE_COMMENT
+FROM information_schema.routines
+WHERE routine_schema LIKE 'db_sto%';
+SPECIFIC_NAME sp4
+ROUTINE_SCHEMA db_storedproc_1
+ROUTINE_NAME sp4
+ROUTINE_TYPE PROCEDURE
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION NULL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SECURITY_TYPE DEFINER
+SQL_MODE
+ROUTINE_COMMENT
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp4;
+DROP USER 'user_1'@'localhost';
+
+Testcase 3.1.6.5:
+-----------------
+Ensure that a stored procedure defined with SQL SECURITY DEFINER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user who created the stored procedure.
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+CREATE TABLE t3165 ( c1 char(20), c2 char(20), c3 date);
+INSERT INTO t3165 VALUES ('inserted', 'outside of SP', NULL);
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+grant SELECT on db_storedproc_1.* to 'user_2'@'localhost';
+grant execute on db_storedproc_1.* to 'user_2'@'localhost';
+flush privileges;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+CREATE PROCEDURE sp5_s_i () sql security definer
+BEGIN
+SELECT * from db_storedproc_1.t3165;
+insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_s_i', 1000);
+END//
+CREATE PROCEDURE sp5_sel () sql security definer
+BEGIN
+SELECT * from db_storedproc_1.t3165;
+END//
+CREATE PROCEDURE sp5_ins () sql security definer
+BEGIN
+insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_ins', 1000);
+END//
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+grant insert on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+CALL sp5_ins();
+CALL sp5_sel();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+
+root@localhost db_storedproc_1
+REVOKE INSERT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+
+root@localhost db_storedproc_1
+REVOKE SELECT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp5_s_i;
+DROP PROCEDURE sp5_sel;
+DROP PROCEDURE sp5_ins;
+DROP TABLE t3165;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+Testcase 3.1.6.6:
+-----------------
+Ensure that a stored procedure defined with SQL SECURITY INVOKER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user executing the stored procedure.
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+CREATE TABLE t3166 ( c1 char(30) );
+INSERT INTO db_storedproc_1.t3166 VALUES ('inserted outside SP');
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc_1.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+CREATE PROCEDURE sp3166_s_i () SQL SECURITY INVOKER
+BEGIN
+SELECT * from db_storedproc_1.t3166;
+insert into db_storedproc_1.t3166 values ('inserted from sp3166_s_i');
+END//
+CREATE PROCEDURE sp3166_sel () SQL SECURITY INVOKER
+BEGIN
+SELECT * from db_storedproc_1.t3166;
+END//
+CREATE PROCEDURE sp3166_ins () SQL SECURITY INVOKER
+BEGIN
+insert into db_storedproc_1.t3166 values ('inserted from sp3166_ins');
+END//
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+c1
+inserted outside SP
+ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_ins();
+ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_sel();
+c1
+inserted outside SP
+
+root@localhost db_storedproc_1
+CALL sp3166_sel();
+c1
+inserted outside SP
+GRANT INSERT ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+c1
+inserted outside SP
+CALL sp3166_ins();
+CALL sp3166_sel();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+
+root@localhost db_storedproc_1
+CALL sp3166_sel();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+REVOKE SELECT ON db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_ins();
+CALL sp3166_sel();
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_s_i();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+inserted from sp3166_ins
+
+root@localhost db_storedproc_1
+REVOKE EXECUTE on db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_s_i'
+CALL sp3166_ins();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_ins'
+CALL sp3166_sel();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_sel'
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp3166_s_i;
+DROP PROCEDURE sp3166_sel;
+DROP PROCEDURE sp3166_ins;
+DROP TABLE t3166;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result
new file mode 100755
index 00000000000..34e5ff76f29
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result
@@ -0,0 +1,172 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.7 - SQL mode checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 3.1.7.1:
+-----------------
+Ensure that the sql_mode setting in effect at the time a stored procedure is
+created is the same setting under which the stored procedure runs when it is
+called/executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp_tbl;
+DROP TABLE IF EXISTS result;
+CREATE TABLE temp_tbl (f1 tinyint);
+CREATE TABLE result (f1 text(200), f2 char(20));
+set @@sql_mode='traditional';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+CREATE PROCEDURE sp1()
+BEGIN
+declare a tinyint;
+declare count_ int default 1;
+declare continue handler for sqlstate '22003' set count_=1000;
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode into @cur_val_sql_mode;
+insert into temp_tbl values (1000);
+if count_ = 1000 THEN
+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//
+SHOW CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+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;
+declare count_ int default 1;
+declare continue handler for sqlstate '22003' set count_=1000;
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode into @cur_val_sql_mode;
+insert into temp_tbl values (1000);
+if count_ = 1000 THEN
+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
+set @@sql_mode='';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode
+CALL sp1();
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+SELECT * from result;
+f1 f2
+STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode
+SELECT @@sql_mode;
+@@sql_mode
+
+SET @@sql_mode='TRADITIONAL';
+DROP PROCEDURE sp1;
+DROP TABLE temp_tbl;
+DROP TABLE result;
+
+Testcase 3.1.7.2:
+-----------------
+Ensure that if the sql_mode setting is changed when a stored procedure is run,
+that the original setting is restored as soon as the stored procedure execution
+is complete.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+... show initial value
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+CREATE PROCEDURE sp2()
+BEGIN
+SET @@sql_mode='MAXDB';
+SHOW VARIABLES LIKE 'sql_mode';
+END//
+SHOW CREATE PROCEDURE sp2;
+Procedure sql_mode Create Procedure
+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
+... show value prior calling procedure
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+... call procedure that changes sql_mode
+CALL sp2();
+Variable_name Value
+sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
+... check whether old value is re-set
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP PROCEDURE sp2;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result
new file mode 100755
index 00000000000..712d9ae933f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result
@@ -0,0 +1,637 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.8 - SHOW statement checks:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.8.9:
+-----------------
+
+Ensure that all stored procedure changes made with ALTER PROCEDURE or ALTER
+FUNCTION are properly recorded and displayed when a SHOW CREATE PROCEDURE or
+SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE
+FUNCTION STATUS statement (respectively) is executed.
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn_1;
+DROP FUNCTION IF EXISTS fn_2;
+DROP PROCEDURE IF EXISTS sp_1;
+DROP PROCEDURE IF EXISTS sp_2;
+CREATE PROCEDURE sp_1 (i1 int)
+BEGIN
+set @x=i1;
+END//
+CREATE PROCEDURE sp_2 (i1 int) SQL SECURITY INVOKER COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+END//
+CREATE FUNCTION fn_1 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns year
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END//
+CREATE FUNCTION fn_2 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+RETURNS YEAR
+SQL SECURITY INVOKER
+COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END//
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT created with INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT created with INVOKER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment created with INVOKER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment created with INVOKER
+
+... now change some stuff:
+--------------------------
+ALTER PROCEDURE sp_1 SQL SECURITY INVOKER;
+ALTER PROCEDURE sp_1 COMMENT 'new comment, SP changed to INVOKER';
+ALTER PROCEDURE sp_2 SQL SECURITY DEFINER;
+ALTER PROCEDURE sp_2 DROP COMMENT;
+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 'DROP COMMENT' at line 1
+ALTER PROCEDURE sp_2 COMMENT 'SP changed to DEFINER';
+ALTER PROCEDURE sp_2 READS SQL DATA;
+ALTER FUNCTION fn_1 SQL SECURITY INVOKER;
+ALTER FUNCTION fn_1 COMMENT 'new comment, FN changed to INVOKER';
+ALTER FUNCTION fn_1 NO SQL;
+ALTER FUNCTION fn_2 SQL SECURITY DEFINER;
+ALTER FUNCTION fn_2 COMMENT 'FN changed to DEFINER';
+ALTER FUNCTION fn_2 MODIFIES SQL DATA;
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS NO SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, FN changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS MODIFIES SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT FN changed to DEFINER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, SP changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS READS SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT SP changed to DEFINER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ NO SQL
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, FN changed to INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ MODIFIES SQL DATA
+ COMMENT 'FN changed to DEFINER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, SP changed to INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ READS SQL DATA
+ COMMENT 'SP changed to DEFINER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, FN changed to INVOKER
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment FN changed to DEFINER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, SP changed to INVOKER
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment SP changed to DEFINER
+
+... change back to default and check result:
+--------------------------------------------
+ALTER FUNCTION fn_2 CONTAINS SQL;
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS NO SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, FN changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT FN changed to DEFINER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, SP changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS READS SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT SP changed to DEFINER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ NO SQL
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, FN changed to INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ COMMENT 'FN changed to DEFINER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, SP changed to INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ READS SQL DATA
+ COMMENT 'SP changed to DEFINER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, FN changed to INVOKER
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment FN changed to DEFINER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, SP changed to INVOKER
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment SP changed to DEFINER
+
+... cleanup
+-----------
+DROP FUNCTION fn_1;
+DROP FUNCTION fn_2;
+DROP PROCEDURE sp_1;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result
new file mode 100755
index 00000000000..89c2fb736eb
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result
@@ -0,0 +1,321 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.10 - CALL checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 3.1.10.2 + 3.1.10.5:
+-----------------------------
+
+2. Ensure that a procedure cannot be called if the appropriate privileges do not
+exist.
+5. Ensure that a function cannot be executed if the appropriate privileges do
+not exist.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp31102;
+DROP FUNCTION IF EXISTS fn31105;
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+GRANT CREATE ROUTINE ON db_storedproc.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc
+CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER
+BEGIN
+SELECT * FROM db_storedproc.t1 LIMIT 1;
+END//
+CREATE FUNCTION fn31105(n INT) RETURNS INT
+BEGIN
+DECLARE res INT;
+SET res = n * n;
+RETURN res;
+END//
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
+SELECT fn31105( 9 );
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
+
+root@localhost db_storedproc
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+GRANT EXECUTE ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+
+root@localhost db_storedproc
+REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
+SELECT fn31105( 9 );
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
+
+root@localhost db_storedproc
+DROP PROCEDURE sp31102;
+DROP FUNCTION fn31105;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+Testcase 3.1.10.3:
+------------------
+
+Ensure that a function can never be called.
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1(a int) returns int
+BEGIN
+set @b = 0.9 * a;
+return @b;
+END//
+CALL fn1();
+ERROR 42000: PROCEDURE db_storedproc.fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 3.1.10.6:
+------------------
+
+Ensure that a procedure can never be executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+SELECT * from t10;
+END//
+SELECT sp1();
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+DROP PROCEDURE sp1;
+
+Testcase 3.1.10.7:
+------------------
+
+Ensure that the ROW_COUNT() SQL function always returns the correct number of
+rows affected by the execution of a stored procedure.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp_ins_1;
+DROP PROCEDURE IF EXISTS sp_ins_3;
+DROP PROCEDURE IF EXISTS sp_upd;
+DROP PROCEDURE IF EXISTS sp_ins_upd;
+CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT);
+INSERT INTO temp SELECT * FROM t10;
+CREATE PROCEDURE sp_ins_1()
+BEGIN
+INSERT INTO temp VALUES ('abc', 'abc', '20051003', 100, 'uvw', 1000);
+END//
+CREATE PROCEDURE sp_ins_3()
+BEGIN
+INSERT INTO temp VALUES ('abc', 'xyz', '19490523', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('abc', 'xyz', '1989-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('abc', 'xyz', '2005-10-24', 100, 'uvw', 1000);
+END//
+CREATE PROCEDURE sp_upd()
+BEGIN
+UPDATE temp SET temp.f1 = 'updated' WHERE temp.f1 ='abc';
+END//
+CREATE PROCEDURE sp_ins_upd()
+BEGIN
+BEGIN
+INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000);
+END;
+SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1;
+UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc';
+END//
+CALL sp_ins_1();
+SELECT row_count();
+row_count()
+1
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+abc abc 2005-10-03 100 uvw 1000
+CALL sp_ins_3();
+SELECT row_count();
+row_count()
+1
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+abc abc 2005-10-03 100 uvw 1000
+abc xyz 1949-05-23 100 uvw 1000
+abc xyz 1989-11-09 100 uvw 1000
+abc xyz 2005-10-24 100 uvw 1000
+CALL sp_upd();
+SELECT row_count();
+row_count()
+4
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+updated abc 2005-10-03 100 uvw 1000
+updated xyz 1949-05-23 100 uvw 1000
+updated xyz 1989-11-09 100 uvw 1000
+updated xyz 2005-10-24 100 uvw 1000
+CALL sp_ins_upd();
+COUNT( f1 ) f1
+1 aaa
+1 abaa
+1 acaaa
+1 adaaaa
+1 aeaaaaa
+1 afaaaaaa
+1 agaaaaaaa
+1 a^aaaaaaaa
+1 a_aaaaaaaaa
+1 a`
+4 qwe
+4 updated
+SELECT row_count();
+row_count()
+3
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+updated abc 2005-10-03 100 uvw 1000
+updated xyz 1949-05-23 100 uvw 1000
+updated xyz 1989-11-09 100 uvw 1000
+updated xyz 2005-10-24 100 uvw 1000
+updated_2 abc 1989-11-09 100 uvw 1000
+qwe xyz 1998-03-26 100 uvw 1000
+updated_2 abc 2000-11-09 100 uvw 1000
+updated_2 abc 2005-11-07 100 uvw 1000
+DROP PROCEDURE sp_ins_1;
+DROP PROCEDURE sp_ins_3;
+DROP PROCEDURE sp_upd;
+DROP PROCEDURE sp_ins_upd;
+DROP TABLE temp;
+
+Testcase 3.1.10.8:
+------------------
+
+Ensure that the mysql_affected_rows() C API function always returns the correct
+number of rows affected by the execution of a stored procedure.
+--------------------------------------------------------------------------------
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0102.result b/mysql-test/suite/funcs_1/r/memory_trig_0102.result
new file mode 100644
index 00000000000..e7fec297ca7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_trig_0102.result
@@ -0,0 +1,360 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase: 3.5.1.1:
+------------------
+use test;
+Create trigger trg1_1 BEFORE INSERT
+on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+Create trigger trg1_2 AFTER INSERT
+on tb3 for each row set @test_after = 6;
+Create trigger trg1_4 BEFORE UPDATE
+on tb3 for each row set @test_before = 27,
+new.f142 = @test_before,
+new.f122 = 'Before Update Trigger';
+Create trigger trg1_3 AFTER UPDATE
+on tb3 for each row set @test_after = '15';
+Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+select count(*) into @test_before from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+Create trigger trg1_6 AFTER DELETE on tb3 for each row
+select count(*) into @test_after from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+set @test_before = 1;
+set @test_after = 5;
+select @test_before, @test_after;
+@test_before @test_after
+1 5
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 First Row 2 0000000005 1
+select @test_before, @test_after;
+@test_before @test_after
+2 6
+set @test_before = 18;
+set @test_after = 8;
+select @test_before, @test_after;
+@test_before @test_after
+18 8
+Update tb3 set tb3.f122 = 'Update',
+tb3.f142 = @test_before,
+tb3.f144 = @test_after
+where tb3.f121 = 'Test 3.5.1.1';
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+27 15
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+set @test_before = 0;
+set @test_after = 0;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+Test 3.5.1.1 Second Row 2 0000000006 2
+select @test_before, @test_after;
+@test_before @test_after
+0 0
+Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+2 1
+drop trigger trg1_1;
+drop trigger trg1_2;
+drop trigger trg1_3;
+drop trigger trg1_4;
+drop trigger trg1_5;
+drop trigger trg1_6;
+delete from tb3 where f121='Test 3.5.1.1';
+
+Testcase: 3.5.1.2:
+------------------
+Create trigger trg_1 after insert
+on tb3 for each statement set @x= 1;
+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 'statement set @x= 1' at line 2
+drop trigger trg_1;
+
+Testcase 3.5.1.3:
+-----------------
+CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+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 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
+CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+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 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
+CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+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 @ret1 = 'test' for each row' at line 1
+CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+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 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
+CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = '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 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
+drop trigger trg3_1;
+drop trigger trg3_2;
+drop trigger trg3_3;
+drop trigger trg3_4;
+drop trigger trg3_5;
+
+Testcase: 3.5.1.5:
+------------------
+CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+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 'on tb3 for each row set new.f120 = 'e'' at line 1
+CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+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 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
+CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+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 'tb3 for each row set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+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 new.f120 = 'g'' at line 1
+CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+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 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+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 'for each row set new.f120 = 'g'' at line 1
+drop trigger trg4_1;
+drop trigger trg4_2;
+drop trigger trg4_3;
+drop trigger trg4_4;
+drop trigger trg4_5;
+drop trigger trg4_6;
+
+Testcase 3.5.1.6: - Need to fix
+-------------------------------
+
+Testcase 3.5.1.7: - need to fix
+-------------------------------
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (f1 int, f2 char(25),f3 int) engine=memory;
+CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+for each row set new.f3 = '14';
+CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+insert into t1 (f2) values ('insert 3.5.1.7');
+select * from t1;
+f1 f2 f3
+NULL insert 3.5.1.7 14
+update t1 set f2='update 3.5.1.7';
+select * from t1;
+f1 f2 f3
+NULL update 3.5.1.7 42
+select trigger_name from information_schema.triggers;
+trigger_name
+trg5_1
+trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
+drop trigger trg5_1;
+drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+drop table t1;
+
+Testcase 3.5.1.8:
+-----------------
+CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+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 '* before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+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 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+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 '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+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 '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+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 '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+for each row set new.f120 ='X';
+ERROR HY000: Trigger in wrong schema
+drop database if exists trig_db;
+create database trig_db;
+use trig_db;
+create table t1 (f1 integer) engine = memory;
+use test;
+CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
+for each row set @ret_trg6_2 = 5;
+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;
+ERROR HY000: Trigger in wrong schema
+use test;
+drop database trig_db;
+drop trigger trg6_1;
+drop trigger trg6_3;
+
+Testcase 3.5.1.9:(cannot be inplemented at this point)
+------------------------------------------------------
+
+Testcase 3.5.1.10:
+------------------
+CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+ERROR HY000: Trigger already exists
+drop trigger trg7_1;
+
+Testcase 3.5.1.?:
+-----------------
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create table t2 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig t1';
+create trigger trig before update on t2
+for each row set new.f1 ='trig t2';
+ERROR HY000: Trigger already exists
+insert into t1 value ('insert to t1',1);
+select * from t1;
+f1 f2
+trig t1 1
+update t1 set f1='update to t1';
+select * from t1;
+f1 f2
+update to t1 1
+insert into t2 value ('insert to t2',2);
+update t2 set f1='update to t1';
+select * from t2;
+f1 f2
+update to t1 2
+drop table t1;
+drop table t2;
+drop trigger trig;
+
+Testcase 3.5.1.11:
+------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+drop database if exists trig_db3;
+create database trig_db1;
+create database trig_db2;
+create database trig_db3;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig1', @test_var1='trig1';
+use trig_db2;
+create table t2 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t2
+for each row set new.f1 ='trig2', @test_var2='trig2';
+use trig_db3;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig3', @test_var3='trig3';
+set @test_var1= '', @test_var2= '', @test_var3= '';
+use trig_db1;
+insert into t1 (f1,f2) values ('insert to db1 t1',1);
+insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1 trig2 trig3
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+select * from trig_db2.t2;
+f1 f2
+trig2 3
+select * from trig_db3.t1;
+f1 f2
+trig3 4
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+use test;
+drop database trig_db1;
+drop database trig_db2;
+drop database trig_db3;
+
+Testcase 3.5.2.1/2/3:
+---------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+create database trig_db1;
+create database trig_db2;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create table trig_db2.t1 (f1 char(50), f2 integer) engine = memory;
+create trigger trig1_b before insert on t1
+for each row set @test_var1='trig1_b';
+create trigger trig_db1.trig1_a after insert on t1
+for each row set @test_var2='trig1_a';
+create trigger trig_db2.trig2 before insert on trig_db2.t1
+for each row set @test_var3='trig2';
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+trig_db1 trig1_b t1
+trig_db1 trig1_a t1
+trig_db2 trig2 t1
+set @test_var1= '', @test_var2= '', @test_var3= '';
+insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1_b trig1_a trig2
+drop database trig_db1;
+drop database trig_db2;
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_03.result b/mysql-test/suite/funcs_1/r/memory_trig_03.result
new file mode 100644
index 00000000000..7309e403cff
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_trig_03.result
@@ -0,0 +1,747 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase 3.5.3:
+---------------
+drop database if exists priv_db;
+create database priv_db;
+use priv_db;
+create table t1 (f1 char(20)) engine= memory;
+create User test_noprivs@localhost;
+set password for test_noprivs@localhost = password('PWD');
+create User test_yesprivs@localhost;
+set password for test_yesprivs@localhost = password('PWD');
+
+Testcase 3.5.3.2/6:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SUPER on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.3.2:
+-----------------
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+create trigger trg1_1 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_1-no';
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_2-yes';
+select current_user;
+current_user
+root@localhost
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+
+note: once 15166 is fixed a similar case for SELECT needs to be added
+---------------------------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+
+Testcase 3.5.3.6:
+-----------------
+use priv_db;
+drop trigger trg1_2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+use priv_db;
+drop trigger trg1_2;
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+drop trigger trg1_2;
+
+Testcase 3.5.3.7a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke UPDATE on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1a');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+drop trigger trg4a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg4a_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2a';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on *.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+drop trigger trg4a_2;
+
+Testcase 3.5.3.7b:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke UPDATE on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+insert 3.5.3.7-1b
+update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+drop trigger trg4b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4b_2 before UPDATE on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2b';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+insert 3.5.3.7-2b
+update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+drop trigger trg4b_2;
+
+Testcase 3.5.3.7c
+-----------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+drop trigger trg4c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4c_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2c';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+drop trigger trg4c_2;
+
+Testcase 3.5.3.7d:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+drop trigger trg4d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4d_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2d';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+trig 3.5.3.7-2d
+drop trigger trg4d_2;
+
+Testcase 3.5.3.8a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SELECT on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var = 'before trig 3.5.3.8-1a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+insert into t1 (f1) values ('insert 3.5.3.8-1a');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+drop trigger trg5a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg5a_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-2a
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on *.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2a');
+select @test_var;
+@test_var
+insert 3.5.3.8-2a
+drop trigger trg5a_2;
+
+Testcase: 3.5.3.8b
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke SELECT on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1b';
+insert into t1 (f1) values ('insert 3.5.3.8-1b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+drop trigger trg5b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5b_2 before UPDATE on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2b';
+insert into t1 (f1) values ('insert 3.5.3.8-2b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-2b
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+select @test_var;
+@test_var
+update 3.5.3.8-2b
+drop trigger trg5b_2;
+
+Testcase 3.5.3.8c:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1c';
+insert into t1 (f1) values ('insert 3.5.3.8-1c');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1c
+drop trigger trg5c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5c_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2c';
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2c');
+select @test_var;
+@test_var
+insert 3.5.3.8-2c
+drop trigger trg5c_2;
+
+Testcase: 3.5.3.8d:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var='before trig 3.5.3.8-1d';
+insert into t1 (f1) values ('insert 3.5.3.8-1d');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1d
+drop trigger trg5d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5d_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2d';
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2d');
+select @test_var;
+@test_var
+insert 3.5.3.8-2d
+drop trigger trg5d_2;
+
+Testcase: 3.5.3.x:
+------------------
+use priv_db;
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 int) engine= memory;
+create table t2 (f2 int) engine= memory;
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT, UPDATE on priv_db.t1 to test_yesprivs@localhost;
+grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t2` TO 'test_yesprivs'@'localhost'
+GRANT SELECT, UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1 before insert on t1 for each row
+insert into t2 values (new.f1);
+use priv_db;
+insert into t1 (f1) values (4);
+ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+grant INSERT on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (4);
+select f1 from t1;
+f1
+4
+select f2 from t2;
+f2
+4
+use priv_db;
+drop trigger trg1;
+create trigger trg2 before insert on t1 for each row
+update t2 set f2=new.f1-1;
+use priv_db;
+insert into t1 (f1) values (2);
+ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
+grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (2);
+select f1 from t1;
+f1
+4
+2
+select f2 from t2;
+f2
+1
+use priv_db;
+drop trigger trg2;
+create trigger trg3 before insert on t1 for each row
+select f2 into @aaa from t2 where f2=new.f1;
+use priv_db;
+insert into t1 (f1) values (1);
+ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
+grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (1);
+select f1 from t1;
+f1
+4
+2
+1
+select f2 from t2;
+f2
+1
+select @aaa;
+@aaa
+1
+use priv_db;
+drop trigger trg3;
+create trigger trg4 before insert on t1 for each row
+delete from t2;
+use priv_db;
+insert into t1 (f1) values (1);
+ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+grant DELETE on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (1);
+select f1 from t1;
+f1
+4
+2
+1
+1
+select f2 from t2;
+f2
+drop database if exists priv_db;
+drop user test_yesprivs@localhost;
+drop user test_noprivs@localhost;
+drop user test_noprivs;
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0407.result b/mysql-test/suite/funcs_1/r/memory_trig_0407.result
new file mode 100644
index 00000000000..588039983e2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_trig_0407.result
@@ -0,0 +1,476 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.4:
+---------------
+use test;
+
+Testcase 3.5.4.1:
+-----------------
+create database db_drop;
+Use db_drop;
+create table t1 (f1 char(30)) engine=memory;
+grant INSERT, SELECT on db_drop.t1 to test_general;
+Use db_drop;
+Create trigger trg1 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.1';
+Use db_drop;
+Insert into t1 values ('Insert error 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+drop trigger trg1;
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+Insert into t1 values ('Insert no trigger 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+Insert no trigger 3.5.4.1
+drop trigger trg1;
+drop database if exists db_drop;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.2:
+-----------------
+create database db_drop2;
+Use db_drop2;
+drop table if exists t1_432 ;
+create table t1_432 (f1 char (30)) engine=memory;
+Drop trigger tr_does_not_exit;
+ERROR HY000: Trigger does not exist
+drop table if exists t1_432 ;
+drop database if exists db_drop2;
+
+Testcase 3.5.4.3:
+-----------------
+create database db_drop3;
+Use db_drop3;
+drop table if exists t1_433 ;
+drop table if exists t1_433a ;
+create table t1_433 (f1 char (30)) engine=memory;
+create table t1_433a (f1a char (5)) engine=memory;
+CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+set new.f1 = 'Trigger 3.5.4.3';
+Drop trigger t1.433.trg3;
+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 '.trg3' at line 1
+Drop trigger db_drop3.t1.433.trg3;
+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 '.433.trg3' at line 1
+Drop trigger mysql.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger tbx.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger db_drop3.trg3;
+drop table if exists t1_433;
+drop table if exists t1_433a;
+drop database if exists db_drop3;
+
+Testcase 3.5.4.4:
+-----------------
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=memory;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Create trigger trg4 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.4';
+Use db_drop4;
+Insert into t1 values ('Insert 3.5.4.4');
+Select * from t1;
+f1
+Trigger 3.5.4.4
+Drop database db_drop4;
+Show databases;
+Database
+information_schema
+mysql
+test
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg4';
+trigger_schema trigger_name event_object_table
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=memory;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.4');
+Select * from t1;
+f1
+2nd Insert 3.5.4.4
+drop trigger trg4;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop4;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.5:
+-----------------
+create database db_drop5;
+Use db_drop5;
+create table t1 (f1 char(50)) engine=memory;
+grant INSERT, SELECT on t1 to test_general;
+Create trigger trg5 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.5';
+Use db_drop5;
+Insert into t1 values ('Insert 3.5.4.5');
+Select * from t1;
+f1
+Trigger 3.5.4.5
+Drop table t1;
+Show tables;
+Tables_in_db_drop5
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg5';
+trigger_schema trigger_name event_object_table
+create table t1 (f1 char(50)) engine=memory;
+grant INSERT, SELECT on t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.5');
+Select * from t1;
+f1
+2nd Insert 3.5.4.5
+drop trigger trg5;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop5;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.5:
+---------------
+use test;
+
+Testcase 3.5.5.1:
+-----------------
+Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+ERROR 42S02: Table 'test.t100' doesn't exist
+
+Testcase 3.5.5.2:
+-----------------
+Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+Create trigger trg2 before INSERT
+on t1_temp for each row set new.f2=9999;
+ERROR HY000: Trigger's 't1_temp' is view or temporary table
+drop table t1_temp;
+
+Testcase 3.5.5.3:
+-----------------
+Create view vw3 as select f118 from tb3;
+Create trigger trg3 before INSERT
+on vw3 for each row set new.f118='s';
+ERROR HY000: 'test.vw3' is not BASE TABLE
+drop view vw3;
+
+Testcase 3.5.5.4:
+-----------------
+create database dbtest_one;
+create database dbtest_two;
+use dbtest_two;
+create table t2 (f1 char(15)) engine=memory;
+use dbtest_one;
+create trigger trg4 before INSERT
+on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ERROR HY000: Trigger in wrong schema
+grant INSERT, SELECT on dbtest_two.t2 to test_general;
+grant SELECT on dbtest_one.* to test_general;
+use dbtest_two;
+Insert into t2 values ('1st Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from t2;
+f1
+1st Insert 3.5.
+use dbtest_one;
+Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from dbtest_two.t2;
+f1
+1st Insert 3.5.
+2nd Insert 3.5.
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+DROP DATABASE if exists dbtest_one;
+drop database if EXISTS dbtest_two;
+
+Testcase 3.5.6:
+---------------
+use test;
+
+Testcase 3.5.6.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.3:
+-----------------
+Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+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 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
+Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+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 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
+drop trigger tb3.trg3_1;
+drop trigger tb3.trg3_2;
+
+Testcase 3.5.6.4 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.5 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.3 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.4:
+-----------------
+Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+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 'SELECT on tb3 for each row set new.f132=5' at line 1
+Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+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 'VALUE on tb3 for each row set new.f132=1' at line 1
+drop trigger tb3.trg4_1;
+drop trigger tb3.trg4_2;
+
+Testcase 3.5.7.5 / 3.5.7.6:
+---------------------------
+Create trigger trg5_1 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+Create trigger trg5_2 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Trigger1 3.5.7.5/6
+update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Update 3.5.7.6
+drop trigger trg5_1;
+drop trigger trg5_2;
+delete from tb3 where f121='Test 3.5.7.5/6';
+
+Testcase 3.5.7.7 / 3.5.7.8:
+---------------------------
+set @test_var='Before trig 3.5.7.7';
+Create trigger trg6_1 AFTER INSERT
+on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+Create trigger trg6_2 AFTER INSERT
+on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+Before trig 3.5.7.7
+Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Insert 3.5.7.7
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Update 3.5.7.8
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+drop trigger trg6_1;
+drop trigger trg6_2;
+delete from tb3 where f121='Test 3.5.7.7/8';
+
+Testcase 3.5.7.9/10:
+--------------------
+Create trigger trg7_1 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+Create trigger trg7_2 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Insert 3.5.7.9
+update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Trigger1 3.5.7.9/10
+drop trigger trg7_1;
+drop trigger trg7_2;
+delete from tb3 where f121='Test 3.5.7.9/10';
+
+Testcase 3.5.7.11/12:
+---------------------
+set @test_var='Before trig 3.5.7.11';
+Create trigger trg8_1 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+Create trigger trg8_2 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 Insert 3.5.7.11/12
+update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 update 3.5.7.12
+select @test_var;
+@test_var
+Trigger 3.5.7.11/12
+delete from tb3 where f121='Test 3.5.7.11/12';
+drop trigger trg8_1;
+drop trigger trg8_2;
+delete from tb3 where f121='Test 3.5.7.11/12';
+
+Testcase 3.5.7.13/14:
+---------------------
+set @test_var=1;
+Create trigger trg9_1 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+1;
+Create trigger trg9_2 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+10;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+Test 3.5.7.13/14 Insert 3.5.7.13
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.13/14';
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+select @test_var;
+@test_var
+2
+delete from tb3 where f121='Test 3.5.7.13/14';
+select @test_var;
+@test_var
+2
+drop trigger trg9_1;
+drop trigger trg9_2;
+delete from tb3 where f121='Test 3.5.7.13/14';
+
+Testcase 3.5.7.15/16:
+---------------------
+set @test_var=1;
+Create trigger trg_3_406010_1 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+5;
+Create trigger trg_3_406010_2 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+50;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Create trigger trg_3_406010_1 AFTER INSERT
+on tb3 for each row set @test_var=@test_var+1;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+Test 3.5.7.15/16 Insert 3.5.7.15/16
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.15/16';
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+select @test_var;
+@test_var
+6
+delete from tb3 where f121='Test 3.5.7.15/16';
+select @test_var;
+@test_var
+6
+drop trigger trg_3_406010_1;
+drop trigger trg_3_406010_2;
+delete from tb3 where f121='Test 3.5.7.15/16';
+
+Testcase 3.5.7.17 (see Testcase 3.5.1.1)
+----------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_08.result b/mysql-test/suite/funcs_1/r/memory_trig_08.result
new file mode 100644
index 00000000000..a842bbc3ac7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_trig_08.result
@@ -0,0 +1,495 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.8.1: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.2: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.3/4:
+-------------------
+create database db_test;
+grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+grant LOCK TABLES on db_test.* to test_general;
+Use db_test;
+create table t1_i (
+i120 char ascii not null DEFAULT b'101',
+i136 smallint zerofill not null DEFAULT 999,
+i144 int zerofill not null DEFAULT 99999,
+i163 decimal (63,30)) engine=memory;
+create table t1_u (
+u120 char ascii not null DEFAULT b'101',
+u136 smallint zerofill not null DEFAULT 999,
+u144 int zerofill not null DEFAULT 99999,
+u163 decimal (63,30)) engine=memory;
+create table t1_d (
+d120 char ascii not null DEFAULT b'101',
+d136 smallint zerofill not null DEFAULT 999,
+d144 int zerofill not null DEFAULT 99999,
+d163 decimal (63,30)) engine=memory;
+Insert into t1_u values ('a',111,99999,999.99);
+Insert into t1_u values ('b',222,99999,999.99);
+Insert into t1_u values ('c',333,99999,999.99);
+Insert into t1_u values ('d',222,99999,999.99);
+Insert into t1_u values ('e',222,99999,999.99);
+Insert into t1_u values ('f',333,99999,999.99);
+Insert into t1_d values ('a',111,99999,999.99);
+Insert into t1_d values ('b',222,99999,999.99);
+Insert into t1_d values ('c',333,99999,999.99);
+Insert into t1_d values ('d',444,99999,999.99);
+Insert into t1_d values ('e',222,99999,999.99);
+Insert into t1_d values ('f',222,99999,999.99);
+
+3.5.8.4 - multiple SQL
+----------------------
+use test;
+Create trigger trg1 AFTER INSERT on tb3 for each row
+BEGIN
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update db_test.t1_u
+set u144=new.f144, u163=new.f163
+where u136=new.f136;
+delete from db_test.t1_d where d136= new.f136;
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+END//
+Use test;
+set @test_var=0;
+Insert into tb3 (f120, f122, f136, f144, f163)
+values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+f120 f122 f136 f144 f163
+1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+b 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00222 0000023456 1.050000000000000000000000000000
+e 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00444 0000099999 999.990000000000000000000000000000
+select @test_var;
+@test_var
+3.150000000000000000000000000000
+
+3.5.8.4 - single SQL - insert
+-----------------------------
+Create trigger trg2 BEFORE UPDATE on tb3 for each row
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+I 00222 0000023456 1.050000000000000000000000000000
+
+3.5.8.4 - single SQL - update
+-----------------------------
+drop trigger trg2;
+Create trigger trg3 BEFORE UPDATE on tb3 for each row
+update db_test.t1_u
+set u120=new.f120
+where u136=new.f136;
+update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - delete
+-------------------------------
+drop trigger trg3;
+Create trigger trg4 AFTER UPDATE on tb3 for each row
+delete from db_test.t1_d where d136= new.f136;
+update tb3 set f120='D', f136=444,
+f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - select
+-------------------------------
+drop trigger trg4;
+Create trigger trg5 AFTER UPDATE on tb3 for each row
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+set @test_var=0;
+update tb3 set f120='S', f136=111,
+f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
+select @test_var;
+@test_var
+999.990000000000000000000000000000
+drop trigger trg1;
+drop trigger trg5;
+drop database if exists db_test;
+delete from tb3 where f122 like 'Test 3.5.8.4%';
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.8.5 (IF):
+----------------------
+create trigger trg2 before insert on tb3 for each row
+BEGIN
+IF new.f120='1' then
+set @test_var='one', new.f120='2';
+ELSEIF new.f120='2' then
+set @test_var='two', new.f120='3';
+ELSEIF new.f120='3' then
+set @test_var='three', new.f120='4';
+END IF;
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+END IF;
+END//
+set @test_var='Empty', @test_var2=0;
+Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 one 2nd else
+Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 two 2nd else
+D Test 3.5.8.5-if 00102 two 2nd else
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd if
+D Test 3.5.8.5-if 00102 three 2nd if
+d Test 3.5.8.5-if 00010 three 2nd if
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd else
+D Test 3.5.8.5-if 00102 three 2nd else
+d Test 3.5.8.5-if 00010 three 2nd else
+D Test 3.5.8.5-if 00103 three 2nd else
+create trigger trg3 before update on tb3 for each row
+BEGIN
+ELSEIF new.f120='2' then
+END IF;
+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 'ELSEIF new.f120='2' then
+END IF;
+END' at line 3
+drop trigger trg3//
+create trigger trg4 before update on tb3 for each row
+BEGIN
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+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 '' at line 7
+drop trigger trg4;
+drop trigger trg2;
+delete from tb3 where f121='Test 3.5.8.5-if';
+
+Testcase 3.5.8.5-case:
+----------------------
+create trigger trg3 before insert on tb3 for each row
+BEGIN
+SET new.f120=char(ascii(new.f120)-32);
+CASE
+when new.f136<100 then set new.f136=new.f136+120;
+when new.f136<10 then set new.f144=777;
+when new.f136>100 then set new.f120=new.f136-1;
+END case;
+CASE
+when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ELSE set @test_var=concat(new.f120, '*');
+END case;
+CASE new.f144
+when 1 then set @test_var=concat(@test_var, 'one');
+when 2 then set @test_var=concat(@test_var, 'two');
+when 3 then set @test_var=concat(@test_var, 'three');
+when 4 then set @test_var=concat(@test_var, 'four');
+when 5 then set @test_var=concat(@test_var, 'five');
+when 6 then set @test_var=concat(@test_var, 'six');
+when 7 then set @test_var=concat(@test_var, 'seven');
+when 8 then set @test_var=concat(@test_var, 'eight');
+when 9 then set @test_var=concat(@test_var, 'nine');
+when 10 then set @test_var=concat(@test_var, 'ten');
+when 11 then set @test_var=concat(@test_var, 'eleven');
+when 12 then set @test_var=concat(@test_var, 'twelve');
+when 13 then set @test_var=concat(@test_var, 'thirteen');
+when 14 then set @test_var=concat(@test_var, 'fourteen');
+when 15 then set @test_var=concat(@test_var, 'fifteen');
+ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+END case;
+END//
+set @test_var='Empty';
+Insert into tb3 (f120, f122, f136, f144)
+values ('a', 'Test 3.5.8.5-case', 5, 7);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 A*seven
+Insert into tb3 (f120, f122, f136, f144)
+values ('b', 'Test 3.5.8.5-case', 71,16);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 B*0000000016
+B Test 3.5.8.5-case 00191 0000000016 B*0000000016
+Insert into tb3 (f120, f122, f136, f144)
+values ('c', 'Test 3.5.8.5-case', 80,1);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 C=one
+B Test 3.5.8.5-case 00191 0000000016 C=one
+C Test 3.5.8.5-case 00200 0000000001 C=one
+Insert into tb3 (f120, f122, f136)
+values ('d', 'Test 3.5.8.5-case', 152);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1*0000099999
+B Test 3.5.8.5-case 00191 0000000016 1*0000099999
+C Test 3.5.8.5-case 00200 0000000001 1*0000099999
+1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
+Insert into tb3 (f120, f122, f136, f144)
+values ('e', 'Test 3.5.8.5-case', 200, 8);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+Insert into tb3 (f120, f122, f136, f144)
+values ('f', 'Test 3.5.8.5-case', 100, 8);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+create trigger trg3a before update on tb3 for each row
+BEGIN
+CASE
+when new.f136<100 then set new.f120='p';
+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 '' at line 5
+drop trigger trg3a;
+drop trigger trg3;
+delete from tb3 where f121='Test 3.5.8.5-case';
+
+Testcase 3.5.8.5-loop/leave:
+----------------------------
+Create trigger trg4 after insert on tb3 for each row
+BEGIN
+set @counter=0, @flag='Initial';
+Label1: loop
+if new.f136<new.f144 then
+set @counter='Nothing to loop';
+leave Label1;
+else
+set @counter=@counter+1;
+if new.f136=new.f144+@counter then
+set @counter=concat(@counter, ' loops');
+leave Label1;
+end if;
+end if;
+iterate label1;
+set @flag='Final';
+END loop Label1;
+END//
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 2, 8);
+select @counter, @flag;
+@counter @flag
+Nothing to loop Initial
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 11, 8);
+select @counter, @flag;
+@counter @flag
+3 loops Initial
+Create trigger trg4_2 after update on tb3 for each row
+BEGIN
+Label1: loop
+set @counter=@counter+1;
+END;
+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 ';
+END' at line 5
+drop trigger trg4_2;
+drop trigger trg4;
+delete from tb3 where f122='Test 3.5.8.5-loop';
+
+Testcase 3.5.8.5-repeat:
+------------------------
+Create trigger trg6 after insert on tb3 for each row
+BEGIN
+rp_label: REPEAT
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+UNTIL @counter1> new.f136 END REPEAT rp_label;
+END//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-repeat', 13);
+select @counter1, @counter2;
+@counter1 @counter2
+15 8
+Create trigger trg6_2 after update on tb3 for each row
+BEGIN
+REPEAT
+SET @counter2 = @counter2 + 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 'END' at line 5
+drop trigger trg6;
+delete from tb3 where f122='Test 3.5.8.5-repeat';
+
+Testcase 3.5.8.5-while:
+-----------------------
+Create trigger trg7 after insert on tb3 for each row
+wl_label: WHILE @counter1 < new.f136 DO
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+END WHILE wl_label//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-while', 7);
+select @counter1, @counter2;
+@counter1 @counter2
+7 4
+Create trigger trg7_2 after update on tb3 for each row
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
+delete from tb3 where f122='Test 3.5.8.5-while';
+drop trigger trg7;
+
+Testcase 3.5.8.6: (requirement void)
+------------------------------------
+
+Testcase 3.5.8.7: (Disabled as a result of bug _____)
+-----------------------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_09.result b/mysql-test/suite/funcs_1/r/memory_trig_09.result
new file mode 100644
index 00000000000..3dbe64958e3
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_trig_09.result
@@ -0,0 +1,267 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase 3.5.9.1/2:
+-------------------
+Create trigger trg1 BEFORE UPDATE on tb3 for each row
+set new.f142 = 94087, @counter=@counter+1;
+TotalRows
+10
+Affected
+9
+NotAffected
+1
+NewValuew
+0
+set @counter=0;
+Update tb3 Set f142='1' where f130<100;
+select count(*) as ExpectedChanged, @counter as TrigCounter
+from tb3 where f142=94087;
+ExpectedChanged TrigCounter
+9 9
+select count(*) as ExpectedNotChange from tb3
+where f130<100 and f142<>94087;
+ExpectedNotChange
+0
+select count(*) as NonExpectedChanged from tb3
+where f130>=130 and f142=94087;
+NonExpectedChanged
+0
+drop trigger trg1;
+
+Testcase 3.5.9.3:
+-----------------
+Create trigger trg2_a before update on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_b after update on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+Create trigger trg2_c before delete on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_d after delete on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+Insert into tb3 (f122, f136, f163)
+values ('Test 3.5.9.3', 7, 123.17);
+Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+delete from tb3 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+drop trigger trg2_a;
+drop trigger trg2_b;
+drop trigger trg2_c;
+drop trigger trg2_d;
+
+Testcase 3.5.9.4:
+-----------------
+Create trigger trg3_a before insert on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_b after insert on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+Create trigger trg3_c before update on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_d after update on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Insert into tb3 (f122, f136, f151, f163)
+values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4%';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+where f122='Test 3.5.9.4';
+Warnings:
+Warning 1048 Column 'f136' cannot be null
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4-trig';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4-trig 00000 999 NULL
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+drop trigger trg3_a;
+drop trigger trg3_b;
+drop trigger trg3_c;
+drop trigger trg3_d;
+delete from tb3 where f122='Test 3.5.9.4-trig';
+
+Testcase 3.5.9.5: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.6:
+-----------------
+create trigger trg4a before insert on tb3 for each row
+set @temp1= old.f120;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg4b after insert on tb3 for each row
+set old.f120= 'test';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg4a;
+drop trigger trg4b;
+
+Testcase 3.5.9.7: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.8: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.9:
+-----------------
+create trigger trg5a before DELETE on tb3 for each row
+set @temp1=new.f122;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg5b after DELETE on tb3 for each row
+set new.f122='test';
+ERROR HY000: There is no NEW row in on DELETE trigger
+drop trigger trg5b;
+
+Testcase 3.5.9.10: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.9.11: covered by 3.5.9.9
+-------------------------------------
+
+Testcase 3.5.9.12: covered by 3.5.9.6
+-------------------------------------
+
+Testcase 3.5.9.13:
+------------------
+create trigger trg6a before UPDATE on tb3 for each row
+set old.f118='C', new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6b after INSERT on tb3 for each row
+set old.f136=163, new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6c after UPDATE on tb3 for each row
+set old.f136=NULL;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg6a;
+drop trigger trg6b;
+drop trigger trg6c;
+
+Testcase 3.5.9.14: (implied in previous tests)
+----------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result
new file mode 100644
index 00000000000..b93c67e894b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result
@@ -0,0 +1,402 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase 3.5.10.1/2/3:
+----------------------
+Create view vw11 as select * from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+Create trigger trg1a before insert on tb3
+for each row set new.f163=111.11;
+Create trigger trg1b after insert on tb3
+for each row set @test_var='After Insert';
+Create trigger trg1c before update on tb3
+for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+Create trigger trg1d after update on tb3
+for each row set @test_var='After Update';
+Create trigger trg1e before delete on tb3
+for each row set @test_var=5;
+Create trigger trg1f after delete on tb3
+for each row set @test_var= 2* @test_var+7;
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+Insert into vw11 (f122, f151) values ('Not in View', 3);
+select f121, f122, f151, f163
+from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163
+from tb3 where f122 like 'Not in View';
+f121 f122 f151 f163
+NULL Not in View 3 111.110000000000000000000000000000
+Update vw11 set f163=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+set @test_var=0;
+Select @test_var as 'before delete';
+before delete
+0
+delete from vw11 where f151=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Select @test_var as 'after delete';
+after delete
+17
+drop view vw11;
+drop trigger trg1a;
+drop trigger trg1b;
+drop trigger trg1c;
+drop trigger trg1d;
+drop trigger trg1e;
+drop trigger trg1f;
+delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+
+Testcase 3.5.10.4:
+------------------
+create table tb_load (f1 int, f2 char(25),f3 int) engine=memory;
+Create trigger trg4 before insert on tb_load
+for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+set @counter= 0;
+select @counter as 'Rows Loaded Before';
+Rows Loaded Before
+0
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+select @counter as 'Rows Loaded After';
+Rows Loaded After
+10
+Select * from tb_load limit 10;
+f1 f2 f3
+-5000 a` 1000
+-4999 aaa 999
+-4998 abaa 999
+-4997 acaaa 999
+-4996 adaaaa 999
+-4995 aeaaaaa 999
+-4994 afaaaaaa 998
+-4993 agaaaaaaa 998
+-4992 a^aaaaaaaa 998
+-4991 a_aaaaaaaaa 998
+drop trigger trg4;
+drop table tb_load;
+
+Testcase 3.5.10.5: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.6: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.extra:
+----------------------
+create table t1_sp (var136 tinyint, var151 decimal) engine=memory;
+create trigger trg before insert on t1_sp
+for each row set @counter=@counter+1;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+select @counter;
+@counter
+11
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+11
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase 3.5.11.1 (implemented in trig_perf.test)
+-------------------------------------------------
+
+Testcase y.y.y.2: Check for triggers starting triggers
+------------------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2_1;
+drop table if exists t2_2;
+drop table if exists t2_3;
+drop table if exists t2_4;
+drop table if exists t3;
+create table t1 (f1 integer) engine=memory;
+create table t2_1 (f1 integer) engine=memory;
+create table t2_2 (f1 integer) engine=memory;
+create table t2_3 (f1 integer) engine=memory;
+create table t2_4 (f1 integer) engine=memory;
+create table t3 (f1 integer) engine=memory;
+insert into t1 values (1);
+create trigger tr1 after insert on t1 for each row
+BEGIN
+insert into t2_1 (f1) values (new.f1+1);
+insert into t2_2 (f1) values (new.f1+1);
+insert into t2_3 (f1) values (new.f1+1);
+insert into t2_4 (f1) values (new.f1+1);
+END//
+create trigger tr2_1 after insert on t2_1 for each row
+insert into t3 (f1) values (new.f1+10);
+create trigger tr2_2 after insert on t2_2 for each row
+insert into t3 (f1) values (new.f1+100);
+create trigger tr2_3 after insert on t2_3 for each row
+insert into t3 (f1) values (new.f1+1000);
+create trigger tr2_4 after insert on t2_4 for each row
+insert into t3 (f1) values (new.f1+10000);
+insert into t1 values (1);
+select * from t3;
+f1
+12
+102
+1002
+10002
+drop trigger tr1;
+drop trigger tr2_1;
+drop trigger tr2_2;
+drop trigger tr2_3;
+drop trigger tr2_4;
+drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+
+Testcase y.y.y.3: Circular trigger reference
+--------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = memory;
+create table t2 (f2 integer) engine = memory;
+create table t3 (f3 integer) engine = memory;
+create table t4 (f4 integer) engine = memory;
+insert into t1 values (0);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1);
+create trigger tr4 after insert on t4
+for each row insert into t1 (f1) values (new.f4+1);
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+0
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+select * from t4;
+f4
+4
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop trigger tr4;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
+----------------------------------------------------------------------
+set @sql_mode='traditional';
+create table t1_sp (
+count integer,
+var136 tinyint,
+var151 decimal) engine=memory;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+set @counter= @counter+1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (@counter, var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+create trigger trg before insert on t1_sp
+for each row call trig_sp();
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine trig_sp
+select @counter;
+@counter
+1
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+0
+set @@max_sp_recursion_depth= 10;
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Can't update table 't1_sp' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select @counter;
+@counter
+2
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+0
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase y.y.y.5: Roleback of nested trigger references
+-------------------------------------------------------
+set @@sql_mode='traditional';
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = memory;
+create table t2 (f2 integer) engine = memory;
+create table t3 (f3 integer) engine = memory;
+create table t4 (f4 tinyint) engine = memory;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+insert into t1 values (1);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1000);
+set autocommit=0;
+start transaction;
+insert into t1 values (1);
+ERROR 22003: Out of range value adjusted for column 'f4' at row 1
+commit;
+select * from t1;
+f1
+1
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/suite/funcs_1/r/memory_triggers.result b/mysql-test/suite/funcs_1/r/memory_triggers.result
new file mode 100644
index 00000000000..482472d8651
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_triggers.result
@@ -0,0 +1,2262 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb3;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 char(50),
+f122 char(50),
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) engine = memory;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase: 3.5.1.1:
+------------------
+use test;
+Create trigger trg1_1 BEFORE INSERT
+on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+Create trigger trg1_2 AFTER INSERT
+on tb3 for each row set @test_after = 6;
+Create trigger trg1_4 BEFORE UPDATE
+on tb3 for each row set @test_before = 27,
+new.f142 = @test_before,
+new.f122 = 'Before Update Trigger';
+Create trigger trg1_3 AFTER UPDATE
+on tb3 for each row set @test_after = '15';
+Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+select count(*) into @test_before from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+Create trigger trg1_6 AFTER DELETE on tb3 for each row
+select count(*) into @test_after from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+set @test_before = 1;
+set @test_after = 5;
+select @test_before, @test_after;
+@test_before @test_after
+1 5
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 First Row 2 0000000005 1
+select @test_before, @test_after;
+@test_before @test_after
+2 6
+set @test_before = 18;
+set @test_after = 8;
+select @test_before, @test_after;
+@test_before @test_after
+18 8
+Update tb3 set tb3.f122 = 'Update',
+tb3.f142 = @test_before,
+tb3.f144 = @test_after
+where tb3.f121 = 'Test 3.5.1.1';
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+27 15
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+set @test_before = 0;
+set @test_after = 0;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+Test 3.5.1.1 Second Row 2 0000000006 2
+select @test_before, @test_after;
+@test_before @test_after
+0 0
+Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+2 1
+drop trigger trg1_1;
+drop trigger trg1_2;
+drop trigger trg1_3;
+drop trigger trg1_4;
+drop trigger trg1_5;
+drop trigger trg1_6;
+delete from tb3 where f121='Test 3.5.1.1';
+
+Testcase: 3.5.1.2:
+------------------
+Create trigger trg_1 after insert
+on tb3 for each statement set @x= 1;
+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 'statement set @x= 1' at line 2
+drop trigger trg_1;
+
+Testcase 3.5.1.3:
+-----------------
+CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+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 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
+CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+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 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
+CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+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 @ret1 = 'test' for each row' at line 1
+CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+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 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
+CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = '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 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
+drop trigger trg3_1;
+drop trigger trg3_2;
+drop trigger trg3_3;
+drop trigger trg3_4;
+drop trigger trg3_5;
+
+Testcase: 3.5.1.5:
+------------------
+CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+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 'on tb3 for each row set new.f120 = 'e'' at line 1
+CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+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 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
+CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+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 'tb3 for each row set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+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 new.f120 = 'g'' at line 1
+CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+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 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+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 'for each row set new.f120 = 'g'' at line 1
+drop trigger trg4_1;
+drop trigger trg4_2;
+drop trigger trg4_3;
+drop trigger trg4_4;
+drop trigger trg4_5;
+drop trigger trg4_6;
+
+Testcase 3.5.1.6: - Need to fix
+-------------------------------
+
+Testcase 3.5.1.7: - need to fix
+-------------------------------
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (f1 int, f2 char(25),f3 int) engine=memory;
+CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+for each row set new.f3 = '14';
+CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+insert into t1 (f2) values ('insert 3.5.1.7');
+select * from t1;
+f1 f2 f3
+NULL insert 3.5.1.7 14
+update t1 set f2='update 3.5.1.7';
+select * from t1;
+f1 f2 f3
+NULL update 3.5.1.7 42
+select trigger_name from information_schema.triggers;
+trigger_name
+trg5_1
+trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
+drop trigger trg5_1;
+drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+drop table t1;
+
+Testcase 3.5.1.8:
+-----------------
+CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+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 '* before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+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 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+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 '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+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 '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+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 '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+for each row set new.f120 ='X';
+ERROR HY000: Trigger in wrong schema
+drop database if exists trig_db;
+create database trig_db;
+use trig_db;
+create table t1 (f1 integer) engine = memory;
+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
+use trig_db;
+CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
+for each row set @ret_trg6_3 = 18;
+ERROR HY000: Trigger in wrong schema
+use test;
+drop database trig_db;
+drop trigger trg6_1;
+drop trigger trg6_3;
+
+Testcase 3.5.1.9:(cannot be inplemented at this point)
+------------------------------------------------------
+
+Testcase 3.5.1.10:
+------------------
+CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+ERROR HY000: Trigger already exists
+drop trigger trg7_1;
+
+Testcase 3.5.1.?:
+-----------------
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create table t2 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig t1';
+create trigger trig before update on t2
+for each row set new.f1 ='trig t2';
+ERROR HY000: Trigger already exists
+insert into t1 value ('insert to t1',1);
+select * from t1;
+f1 f2
+trig t1 1
+update t1 set f1='update to t1';
+select * from t1;
+f1 f2
+update to t1 1
+insert into t2 value ('insert to t2',2);
+update t2 set f1='update to t1';
+select * from t2;
+f1 f2
+update to t1 2
+drop table t1;
+drop table t2;
+drop trigger trig;
+
+Testcase 3.5.1.11:
+------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+drop database if exists trig_db3;
+create database trig_db1;
+create database trig_db2;
+create database trig_db3;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig1', @test_var1='trig1';
+use trig_db2;
+create table t2 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t2
+for each row set new.f1 ='trig2', @test_var2='trig2';
+use trig_db3;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig3', @test_var3='trig3';
+set @test_var1= '', @test_var2= '', @test_var3= '';
+use trig_db1;
+insert into t1 (f1,f2) values ('insert to db1 t1',1);
+insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1 trig2 trig3
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+select * from trig_db2.t2;
+f1 f2
+trig2 3
+select * from trig_db3.t1;
+f1 f2
+trig3 4
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+use test;
+drop database trig_db1;
+drop database trig_db2;
+drop database trig_db3;
+
+Testcase 3.5.2.1/2/3:
+---------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+create database trig_db1;
+create database trig_db2;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = memory;
+create table trig_db2.t1 (f1 char(50), f2 integer) engine = memory;
+create trigger trig1_b before insert on t1
+for each row set @test_var1='trig1_b';
+create trigger trig_db1.trig1_a after insert on t1
+for each row set @test_var2='trig1_a';
+create trigger trig_db2.trig2 before insert on trig_db2.t1
+for each row set @test_var3='trig2';
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+trig_db1 trig1_b t1
+trig_db1 trig1_a t1
+trig_db2 trig2 t1
+set @test_var1= '', @test_var2= '', @test_var3= '';
+insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1_b trig1_a trig2
+drop database trig_db1;
+drop database trig_db2;
+
+Testcase 3.5.3:
+---------------
+drop database if exists priv_db;
+create database priv_db;
+use priv_db;
+create table t1 (f1 char(20));
+create User test_noprivs@localhost;
+set password for test_noprivs@localhost = password('PWD');
+create User test_yesprivs@localhost;
+set password for test_yesprivs@localhost = password('PWD');
+
+Testcase 3.5.3.2/6:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SUPER on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.3.2:
+-----------------
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+create trigger trg1_1 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_1-no';
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_2-yes';
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+
+Testcase 3.5.3.6:
+-----------------
+use priv_db;
+drop trigger trg1_2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+use priv_db;
+drop trigger trg1_2;
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+drop trigger trg1_2;
+
+Testcase 3.5.3.7a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke UPDATE on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1a');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+drop trigger trg4a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg4a_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2a';
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+drop trigger trg4a_2;
+
+Testcase 3.5.3.7b:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke UPDATE on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+insert 3.5.3.7-1b
+update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+drop trigger trg4b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4b_2 before UPDATE on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2b';
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+insert 3.5.3.7-2b
+update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+drop trigger trg4b_2;
+
+Testcase 3.5.3.7c
+-----------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+drop trigger trg4c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4c_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2c';
+insert into t1 (f1) values ('insert 3.5.3.7-2c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+drop trigger trg4c_2;
+
+Testcase 3.5.3.7d:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+drop trigger trg4d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4d_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2d';
+insert into t1 (f1) values ('insert 3.5.3.7-2d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+trig 3.5.3.7-2d
+drop trigger trg4d_2;
+
+Testcase 3.5.3.8a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SELECT on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var = 'before trig 3.5.3.8-1a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+insert into t1 (f1) values ('insert 3.5.3.8-1a');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+drop trigger trg5a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg5a_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-2a
+insert into t1 (f1) values ('insert 3.5.3.8-2a');
+select @test_var;
+@test_var
+insert 3.5.3.8-2a
+drop trigger trg5a_2;
+
+Testcase: 3.5.3.8b
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke SELECT on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1b';
+insert into t1 (f1) values ('insert 3.5.3.8-1b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+drop trigger trg5b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5b_2 before UPDATE on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2b';
+insert into t1 (f1) values ('insert 3.5.3.8-2b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-2b
+update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+select @test_var;
+@test_var
+update 3.5.3.8-2b
+drop trigger trg5b_2;
+
+Testcase 3.5.3.8c:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1c';
+insert into t1 (f1) values ('insert 3.5.3.8-1c');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1c
+drop trigger trg5c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5c_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2c';
+insert into t1 (f1) values ('insert 3.5.3.8-2c');
+select @test_var;
+@test_var
+insert 3.5.3.8-2c
+drop trigger trg5c_2;
+
+Testcase: 3.5.3.8d:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var='before trig 3.5.3.8-1d';
+insert into t1 (f1) values ('insert 3.5.3.8-1d');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1d
+drop trigger trg5d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5d_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2d';
+insert into t1 (f1) values ('insert 3.5.3.8-2d');
+select @test_var;
+@test_var
+insert 3.5.3.8-2d
+drop trigger trg5d_2;
+drop database if exists priv_db;
+drop user test_yesprivs@localhost;
+drop user test_noprivs@localhost;
+drop user test_noprivs;
+
+Testcase 3.5.4:
+---------------
+use test;
+
+Testcase 3.5.4.1:
+-----------------
+create database db_drop;
+Use db_drop;
+create table t1 (f1 char(30)) engine=memory;
+grant INSERT, SELECT on db_drop.t1 to test_general;
+Use db_drop;
+Create trigger trg1 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.1';
+Use db_drop;
+Insert into t1 values ('Insert error 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+drop trigger trg1;
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+Insert into t1 values ('Insert no trigger 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+Insert no trigger 3.5.4.1
+drop trigger trg1;
+drop database if exists db_drop;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.2:
+-----------------
+create database db_drop2;
+Use db_drop2;
+drop table if exists t1_432 ;
+create table t1_432 (f1 char (30)) engine=memory;
+Drop trigger tr_does_not_exit;
+ERROR HY000: Trigger does not exist
+drop table if exists t1_432 ;
+drop database if exists db_drop2;
+
+Testcase 3.5.4.3:
+-----------------
+create database db_drop3;
+Use db_drop3;
+drop table if exists t1_433 ;
+drop table if exists t1_433a ;
+create table t1_433 (f1 char (30)) engine=memory;
+create table t1_433a (f1a char (5)) engine=memory;
+CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+set new.f1 = 'Trigger 3.5.4.3';
+Drop trigger t1.433.trg3;
+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 '.trg3' at line 1
+Drop trigger db_drop3.t1.433.trg3;
+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 '.433.trg3' at line 1
+Drop trigger mysql.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger tbx.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger db_drop3.trg3;
+drop table if exists t1_433;
+drop table if exists t1_433a;
+drop database if exists db_drop3;
+
+Testcase 3.5.4.4:
+-----------------
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=memory;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Create trigger trg4 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.4';
+Use db_drop4;
+Insert into t1 values ('Insert 3.5.4.4');
+Select * from t1;
+f1
+Trigger 3.5.4.4
+Drop database db_drop4;
+Show databases;
+Database
+information_schema
+mysql
+test
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg4';
+trigger_schema trigger_name event_object_table
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=memory;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.4');
+Select * from t1;
+f1
+2nd Insert 3.5.4.4
+drop trigger trg4;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop4;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.5:
+-----------------
+create database db_drop5;
+Use db_drop5;
+create table t1 (f1 char(50)) engine=memory;
+grant INSERT, SELECT on t1 to test_general;
+Create trigger trg5 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.5';
+Use db_drop5;
+Insert into t1 values ('Insert 3.5.4.5');
+Select * from t1;
+f1
+Trigger 3.5.4.5
+Drop table t1;
+Show tables;
+Tables_in_db_drop5
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg5';
+trigger_schema trigger_name event_object_table
+create table t1 (f1 char(50)) engine=memory;
+grant INSERT, SELECT on t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.5');
+Select * from t1;
+f1
+2nd Insert 3.5.4.5
+drop trigger trg5;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop5;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.5:
+---------------
+use test;
+
+Testcase 3.5.5.1:
+-----------------
+Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+ERROR 42S02: Table 'test.t100' doesn't exist
+
+Testcase 3.5.5.2:
+-----------------
+Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+Create trigger trg2 before INSERT
+on t1_temp for each row set new.f2=9999;
+ERROR HY000: Trigger's 't1_temp' is view or temporary table
+drop table t1_temp;
+
+Testcase 3.5.5.3:
+-----------------
+Create view vw3 as select f118 from tb3;
+Create trigger trg3 before INSERT
+on vw3 for each row set new.f118='s';
+ERROR HY000: 'test.vw3' is not BASE TABLE
+drop view vw3;
+
+Testcase 3.5.5.4:
+-----------------
+create database dbtest_one;
+create database dbtest_two;
+use dbtest_two;
+create table t2 (f1 char(15));
+use dbtest_one;
+create trigger trg4 before INSERT
+on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ERROR HY000: Trigger in wrong schema
+grant INSERT, SELECT on dbtest_two.t2 to test_general;
+grant SELECT on dbtest_one.* to test_general;
+use dbtest_two;
+Insert into t2 values ('1st Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from t2;
+f1
+1st Insert 3.5.
+use dbtest_one;
+Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from dbtest_two.t2;
+f1
+1st Insert 3.5.
+2nd Insert 3.5.
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+DROP DATABASE if exists dbtest_one;
+drop database if EXISTS dbtest_two;
+
+Testcase 3.5.6:
+---------------
+use test;
+
+Testcase 3.5.6.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.3:
+-----------------
+Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+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 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
+Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+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 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
+drop trigger tb3.trg3_1;
+drop trigger tb3.trg3_2;
+
+Testcase 3.5.6.4 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.5 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.3 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.4:
+-----------------
+Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+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 'SELECT on tb3 for each row set new.f132=5' at line 1
+Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+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 'VALUE on tb3 for each row set new.f132=1' at line 1
+drop trigger tb3.trg4_1;
+drop trigger tb3.trg4_2;
+
+Testcase 3.5.7.5 / 3.5.7.6:
+---------------------------
+Create trigger trg5_1 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+Create trigger trg5_2 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+ERROR HY000: Trigger already exists
+Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Trigger1 3.5.7.5/6
+update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Update 3.5.7.6
+drop trigger trg5_1;
+drop trigger trg5_2;
+delete from tb3 where f121='Test 3.5.7.5/6';
+
+Testcase 3.5.7.7 / 3.5.7.8:
+---------------------------
+set @test_var='Before trig 3.5.7.7';
+Create trigger trg6_1 AFTER INSERT
+on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+Create trigger trg6_2 AFTER INSERT
+on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+Before trig 3.5.7.7
+Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Insert 3.5.7.7
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Update 3.5.7.8
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+drop trigger trg6_1;
+drop trigger trg6_2;
+delete from tb3 where f121='Test 3.5.7.7/8';
+
+Testcase 3.5.7.9/10:
+--------------------
+Create trigger trg7_1 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+Create trigger trg7_2 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+ERROR HY000: Trigger already exists
+Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Insert 3.5.7.9
+update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Trigger1 3.5.7.9/10
+drop trigger trg7_1;
+drop trigger trg7_2;
+delete from tb3 where f121='Test 3.5.7.9/10';
+
+Testcase 3.5.7.11/12:
+---------------------
+set @test_var='Before trig 3.5.7.11';
+Create trigger trg8_1 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+Create trigger trg8_2 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 Insert 3.5.7.11/12
+update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 update 3.5.7.12
+select @test_var;
+@test_var
+Trigger 3.5.7.11/12
+delete from tb3 where f121='Test 3.5.7.11/12';
+drop trigger trg8_1;
+drop trigger trg8_2;
+delete from tb3 where f121='Test 3.5.7.11/12';
+
+Testcase 3.5.7.13/14:
+---------------------
+set @test_var=1;
+Create trigger trg9_1 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+1;
+Create trigger trg9_2 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+10;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+Test 3.5.7.13/14 Insert 3.5.7.13
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.13/14';
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+select @test_var;
+@test_var
+2
+delete from tb3 where f121='Test 3.5.7.13/14';
+select @test_var;
+@test_var
+2
+drop trigger trg9_1;
+drop trigger trg9_2;
+delete from tb3 where f121='Test 3.5.7.13/14';
+
+Testcase 3.5.7.15/16:
+---------------------
+set @test_var=1;
+Create trigger trg_3_406010_1 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+5;
+Create trigger trg_3_406010_2 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+50;
+ERROR HY000: Trigger already exists
+Create trigger trg_3_406010_1 AFTER INSERT
+on tb3 for each row set @test_var=@test_var+1;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+Test 3.5.7.15/16 Insert 3.5.7.15/16
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.15/16';
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+select @test_var;
+@test_var
+6
+delete from tb3 where f121='Test 3.5.7.15/16';
+select @test_var;
+@test_var
+6
+drop trigger trg_3_406010_1;
+drop trigger trg_3_406010_2;
+delete from tb3 where f121='Test 3.5.7.15/16';
+
+Testcase 3.5.7.17 (see Testcase 3.5.1.1)
+----------------------------------------
+
+Testcase 3.5.8.1: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.2: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.3/4:
+-------------------
+create database db_test;
+grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+grant LOCK TABLES on db_test.* to test_general;
+Use db_test;
+create table t1_i (
+i120 char ascii not null DEFAULT b'101',
+i136 smallint zerofill not null DEFAULT 999,
+i144 int zerofill not null DEFAULT 99999,
+i163 decimal (63,30)) engine=memory;
+create table t1_u (
+u120 char ascii not null DEFAULT b'101',
+u136 smallint zerofill not null DEFAULT 999,
+u144 int zerofill not null DEFAULT 99999,
+u163 decimal (63,30)) engine=memory;
+create table t1_d (
+d120 char ascii not null DEFAULT b'101',
+d136 smallint zerofill not null DEFAULT 999,
+d144 int zerofill not null DEFAULT 99999,
+d163 decimal (63,30)) engine=memory;
+Insert into t1_u values ('a',111,99999,999.99);
+Insert into t1_u values ('b',222,99999,999.99);
+Insert into t1_u values ('c',333,99999,999.99);
+Insert into t1_u values ('d',222,99999,999.99);
+Insert into t1_u values ('e',222,99999,999.99);
+Insert into t1_u values ('f',333,99999,999.99);
+Insert into t1_d values ('a',111,99999,999.99);
+Insert into t1_d values ('b',222,99999,999.99);
+Insert into t1_d values ('c',333,99999,999.99);
+Insert into t1_d values ('d',444,99999,999.99);
+Insert into t1_d values ('e',222,99999,999.99);
+Insert into t1_d values ('f',222,99999,999.99);
+
+3.5.8.4 - multiple SQL
+----------------------
+use test;
+Create trigger trg1 AFTER INSERT on tb3 for each row
+BEGIN
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update db_test.t1_u
+set u144=new.f144, u163=new.f163
+where u136=new.f136;
+delete from db_test.t1_d where d136= new.f136;
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+END//
+Use test;
+set @test_var=0;
+Insert into tb3 (f120, f122, f136, f144, f163)
+values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+f120 f122 f136 f144 f163
+1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+b 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00222 0000023456 1.050000000000000000000000000000
+e 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00444 0000099999 999.990000000000000000000000000000
+select @test_var;
+@test_var
+3.150000000000000000000000000000
+
+3.5.8.4 - single SQL - insert
+-----------------------------
+Create trigger trg2 BEFORE UPDATE on tb3 for each row
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+I 00222 0000023456 1.050000000000000000000000000000
+
+3.5.8.4 - single SQL - update
+-----------------------------
+drop trigger trg2;
+Create trigger trg3 BEFORE UPDATE on tb3 for each row
+update db_test.t1_u
+set u120=new.f120
+where u136=new.f136;
+update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - delete
+-------------------------------
+drop trigger trg3;
+Create trigger trg4 AFTER UPDATE on tb3 for each row
+delete from db_test.t1_d where d136= new.f136;
+update tb3 set f120='D', f136=444,
+f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - select
+-------------------------------
+drop trigger trg4;
+Create trigger trg5 AFTER UPDATE on tb3 for each row
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+set @test_var=0;
+update tb3 set f120='S', f136=111,
+f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
+select @test_var;
+@test_var
+999.990000000000000000000000000000
+drop trigger trg1;
+drop trigger trg5;
+drop database if exists db_test;
+delete from tb3 where f122 like 'Test 3.5.8.4%';
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.8.5 (IF):
+----------------------
+create trigger trg2 before insert on tb3 for each row
+BEGIN
+IF new.f120='1' then
+set @test_var='one', new.f120='2';
+ELSEIF new.f120='2' then
+set @test_var='two', new.f120='3';
+ELSEIF new.f120='3' then
+set @test_var='three', new.f120='4';
+END IF;
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+END IF;
+END//
+set @test_var='Empty', @test_var2=0;
+Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 one 2nd else
+Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 two 2nd else
+D Test 3.5.8.5-if 00102 two 2nd else
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd if
+D Test 3.5.8.5-if 00102 three 2nd if
+d Test 3.5.8.5-if 00010 three 2nd if
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd else
+D Test 3.5.8.5-if 00102 three 2nd else
+d Test 3.5.8.5-if 00010 three 2nd else
+D Test 3.5.8.5-if 00103 three 2nd else
+create trigger trg3 before update on tb3 for each row
+BEGIN
+ELSEIF new.f120='2' then
+END IF;
+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 'ELSEIF new.f120='2' then
+END IF;
+END' at line 3
+drop trigger trg3//
+create trigger trg4 before update on tb3 for each row
+BEGIN
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+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 '' at line 7
+drop trigger trg4;
+drop trigger trg2;
+delete from tb3 where f121='Test 3.5.8.5-if';
+
+Testcase 3.5.8.5-case:
+----------------------
+create trigger trg3 before insert on tb3 for each row
+BEGIN
+SET new.f120=char(ascii(new.f120)-32);
+CASE
+when new.f136<100 then set new.f136=new.f136+120;
+when new.f136<10 then set new.f144=777;
+when new.f136>100 then set new.f120=new.f136-1;
+END case;
+CASE
+when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ELSE set @test_var=concat(new.f120, '*');
+END case;
+CASE new.f144
+when 1 then set @test_var=concat(@test_var, 'one');
+when 2 then set @test_var=concat(@test_var, 'two');
+when 3 then set @test_var=concat(@test_var, 'three');
+when 4 then set @test_var=concat(@test_var, 'four');
+when 5 then set @test_var=concat(@test_var, 'five');
+when 6 then set @test_var=concat(@test_var, 'six');
+when 7 then set @test_var=concat(@test_var, 'seven');
+when 8 then set @test_var=concat(@test_var, 'eight');
+when 9 then set @test_var=concat(@test_var, 'nine');
+when 10 then set @test_var=concat(@test_var, 'ten');
+when 11 then set @test_var=concat(@test_var, 'eleven');
+when 12 then set @test_var=concat(@test_var, 'twelve');
+when 13 then set @test_var=concat(@test_var, 'thirteen');
+when 14 then set @test_var=concat(@test_var, 'fourteen');
+when 15 then set @test_var=concat(@test_var, 'fifteen');
+ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+END case;
+END//
+set @test_var='Empty';
+Insert into tb3 (f120, f122, f136, f144)
+values ('a', 'Test 3.5.8.5-case', 5, 7);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 A*seven
+Insert into tb3 (f120, f122, f136, f144)
+values ('b', 'Test 3.5.8.5-case', 71,16);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 B*0000000016
+B Test 3.5.8.5-case 00191 0000000016 B*0000000016
+Insert into tb3 (f120, f122, f136, f144)
+values ('c', 'Test 3.5.8.5-case', 80,1);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 C=one
+B Test 3.5.8.5-case 00191 0000000016 C=one
+C Test 3.5.8.5-case 00200 0000000001 C=one
+Insert into tb3 (f120, f122, f136)
+values ('d', 'Test 3.5.8.5-case', 152);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1*0000099999
+B Test 3.5.8.5-case 00191 0000000016 1*0000099999
+C Test 3.5.8.5-case 00200 0000000001 1*0000099999
+1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
+Insert into tb3 (f120, f122, f136, f144)
+values ('e', 'Test 3.5.8.5-case', 200, 8);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+Insert into tb3 (f120, f122, f136, f144)
+values ('f', 'Test 3.5.8.5-case', 100, 8);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+create trigger trg3a before update on tb3 for each row
+BEGIN
+CASE
+when new.f136<100 then set new.f120='p';
+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 '' at line 5
+drop trigger trg3a;
+drop trigger trg3;
+delete from tb3 where f121='Test 3.5.8.5-case';
+
+Testcase 3.5.8.5-loop/leave:
+----------------------------
+Create trigger trg4 after insert on tb3 for each row
+BEGIN
+set @counter=0, @flag='Initial';
+Label1: loop
+if new.f136<new.f144 then
+set @counter='Nothing to loop';
+leave Label1;
+else
+set @counter=@counter+1;
+if new.f136=new.f144+@counter then
+set @counter=concat(@counter, ' loops');
+leave Label1;
+end if;
+end if;
+iterate label1;
+set @flag='Final';
+END loop Label1;
+END//
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 2, 8);
+select @counter, @flag;
+@counter @flag
+Nothing to loop Initial
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 11, 8);
+select @counter, @flag;
+@counter @flag
+3 loops Initial
+Create trigger trg4_2 after update on tb3 for each row
+BEGIN
+Label1: loop
+set @counter=@counter+1;
+END;
+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 ';
+END' at line 5
+drop trigger trg4_2;
+drop trigger trg4;
+delete from tb3 where f122='Test 3.5.8.5-loop';
+
+Testcase 3.5.8.5-repeat:
+------------------------
+Create trigger trg6 after insert on tb3 for each row
+BEGIN
+rp_label: REPEAT
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+UNTIL @counter1> new.f136 END REPEAT rp_label;
+END//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-repeat', 13);
+select @counter1, @counter2;
+@counter1 @counter2
+15 8
+Create trigger trg6_2 after update on tb3 for each row
+BEGIN
+REPEAT
+SET @counter2 = @counter2 + 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 'END' at line 5
+drop trigger trg6;
+delete from tb3 where f122='Test 3.5.8.5-repeat';
+
+Testcase 3.5.8.5-while:
+-----------------------
+Create trigger trg7 after insert on tb3 for each row
+wl_label: WHILE @counter1 < new.f136 DO
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+END WHILE wl_label//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-while', 7);
+select @counter1, @counter2;
+@counter1 @counter2
+7 4
+Create trigger trg7_2 after update on tb3 for each row
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
+delete from tb3 where f122='Test 3.5.8.5-while';
+drop trigger trg7;
+
+Testcase 3.5.8.6: (requirement void)
+------------------------------------
+
+Testcase 3.5.8.7: (Disabled as a result of bug _____)
+-----------------------------------------------------
+
+Testcase 3.5.9.1/2:
+-------------------
+Create trigger trg1 BEFORE UPDATE on tb3 for each row
+set new.f142 = 94087, @counter=@counter+1;
+TotalRows
+19
+Affected
+18
+NotAffected
+1
+NewValuew
+0
+set @counter=0;
+Update tb3 Set f142='1' where f130<100;
+select count(*) as ExpectedChanged, @counter as TrigCounter
+from tb3 where f142=94087;
+ExpectedChanged TrigCounter
+18 18
+select count(*) as ExpectedNotChange from tb3
+where f130<100 and f142<>94087;
+ExpectedNotChange
+0
+select count(*) as NonExpectedChanged from tb3
+where f130>=130 and f142=94087;
+NonExpectedChanged
+0
+drop trigger trg1;
+
+Testcase 3.5.9.3:
+-----------------
+Create trigger trg2_a before update on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_b after update on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+Create trigger trg2_c before delete on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_d after delete on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+Insert into tb3 (f122, f136, f163)
+values ('Test 3.5.9.3', 7, 123.17);
+Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+delete from tb3 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+drop trigger trg2_a;
+drop trigger trg2_b;
+drop trigger trg2_c;
+drop trigger trg2_d;
+
+Testcase 3.5.9.4:
+-----------------
+Create trigger trg3_a before insert on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_b after insert on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+Create trigger trg3_c before update on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_d after update on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Insert into tb3 (f122, f136, f151, f163)
+values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4%';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+where f122='Test 3.5.9.4';
+Warnings:
+Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f136' at row 20
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4-trig';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4-trig 00000 999 NULL
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+drop trigger trg3_a;
+drop trigger trg3_b;
+drop trigger trg3_c;
+drop trigger trg3_d;
+delete from tb3 where f122='Test 3.5.9.4-trig';
+
+Testcase 3.5.9.5: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.6:
+-----------------
+create trigger trg4a before insert on tb3 for each row
+set @temp1= old.f120;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg4b after insert on tb3 for each row
+set old.f120= 'test';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg4a;
+drop trigger trg4b;
+
+Testcase 3.5.9.7: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.8: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.9:
+-----------------
+create trigger trg5a before DELETE on tb3 for each row
+set @temp1=new.f122;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg5b after DELETE on tb3 for each row
+set new.f122='test';
+ERROR HY000: There is no NEW row in on DELETE trigger
+drop trigger trg5a;
+drop trigger trg5b;
+
+Testcase 3.5.9.10: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.9.11: covered by 3.5.9.9
+-------------------------------------
+
+Testcase 3.5.9.12: covered by 3.5.9.6
+-------------------------------------
+
+Testcase 3.5.9.13:
+------------------
+create trigger trg6a before UPDATE on tb3 for each row
+set old.f118='C', new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6b after INSERT on tb3 for each row
+set old.f136=163, new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6c after UPDATE on tb3 for each row
+set old.f136=NULL;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg6a;
+drop trigger trg6b;
+drop trigger trg6c;
+
+Testcase 3.5.9.14: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.10.1/2/3:
+----------------------
+Create view vw11 as select * from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+Create trigger trg1a before insert on tb3
+for each row set new.f163=111.11;
+Create trigger trg1b after insert on tb3
+for each row set @test_var='After Insert';
+Create trigger trg1c before update on tb3
+for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+Create trigger trg1d after update on tb3
+for each row set @test_var='After Update';
+Create trigger trg1e before delete on tb3
+for each row set @test_var=5;
+Create trigger trg1f after delete on tb3
+for each row set @test_var= 2* @test_var+7;
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+Insert into vw11 (f122, f151) values ('Not in View', 3);
+select f121, f122, f151, f163
+from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+select f121, f122, f151, f163
+from tb3 where f122 like 'Not in View';
+f121 f122 f151 f163
+NULL Not in View 3 111.110000000000000000000000000000
+Update vw11 set f163=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+set @test_var=0;
+Select @test_var as 'before delete';
+before delete
+0
+delete from vw11 where f151=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Select @test_var as 'after delete';
+after delete
+17
+drop view vw11;
+drop trigger trg1a;
+drop trigger trg1b;
+drop trigger trg1c;
+drop trigger trg1d;
+drop trigger trg1e;
+drop trigger trg1f;
+delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+
+Testcase 3.5.10.4:
+------------------
+create table tb_load (f1 int, f2 char(25),f3 int) engine=memory;
+Create trigger trg4 before insert on tb_load
+for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+set @counter= 0;
+select @counter as 'Rows Loaded Before';
+Rows Loaded Before
+0
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+select @counter as 'Rows Loaded After';
+Rows Loaded After
+10
+Select * from tb_load limit 10;
+f1 f2 f3
+-5000 a` 1000
+-4999 aaa 999
+-4998 abaa 999
+-4997 acaaa 999
+-4996 adaaaa 999
+-4995 aeaaaaa 999
+-4994 afaaaaaa 998
+-4993 agaaaaaaa 998
+-4992 a^aaaaaaaa 998
+-4991 a_aaaaaaaaa 998
+drop trigger trg4;
+drop table tb_load;
+
+Testcase 3.5.10.5: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.6: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.extra:
+----------------------
+create table t1_sp (var136 tinyint, var151 decimal) engine=memory;
+create trigger trg before insert on t1_sp
+for each row set @counter=@counter+1;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR 02000: No data to FETCH
+select @counter;
+@counter
+20
+select count(*) from tb3;
+count(*)
+20
+select count(*) from t1_sp;
+count(*)
+20
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase 3.5.11.1 (implemented in trig_perf.test)
+-------------------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
+
+Testcase y.y.y.2: Check for triggers starting triggers
+------------------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2_1;
+drop table if exists t2_2;
+drop table if exists t2_3;
+drop table if exists t2_4;
+drop table if exists t3;
+create table t1 (f1 integer);
+create table t2_1 (f1 integer);
+create table t2_2 (f1 integer);
+create table t2_3 (f1 integer);
+create table t2_4 (f1 integer);
+create table t3 (f1 integer);
+insert into t1 values (1);
+create trigger tr1 after insert on t1 for each row
+BEGIN
+insert into t2_1 (f1) values (new.f1+1);
+insert into t2_2 (f1) values (new.f1+1);
+insert into t2_3 (f1) values (new.f1+1);
+insert into t2_4 (f1) values (new.f1+1);
+END//
+create trigger tr2_1 after insert on t2_1 for each row
+insert into t3 (f1) values (new.f1+10);
+create trigger tr2_2 after insert on t2_2 for each row
+insert into t3 (f1) values (new.f1+100);
+create trigger tr2_3 after insert on t2_3 for each row
+insert into t3 (f1) values (new.f1+1000);
+create trigger tr2_4 after insert on t2_4 for each row
+insert into t3 (f1) values (new.f1+10000);
+insert into t1 values (1);
+select * from t3;
+f1
+12
+102
+1002
+10002
+drop trigger tr1;
+drop trigger tr2_1;
+drop trigger tr2_2;
+drop trigger tr2_3;
+drop trigger tr2_4;
+drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+
+Testcase y.y.y.3: Circular trigger reference
+--------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = memory;
+create table t2 (f2 integer) engine = memory;
+create table t3 (f3 integer) engine = memory;
+create table t4 (f4 integer) engine = memory;
+insert into t1 values (0);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1);
+create trigger tr4 after insert on t4
+for each row insert into t1 (f1) values (new.f4+1);
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+0
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+select * from t4;
+f4
+4
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop trigger tr4;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
+----------------------------------------------------------------------
+set @sql_mode='traditional';
+create table t1_sp (
+count integer,
+var136 tinyint,
+var151 decimal) engine=memory;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+set @counter= @counter+1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (@counter, var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+create trigger trg before insert on t1_sp
+for each row call trig_sp();
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Recursive stored routines are not allowed.
+select @counter;
+@counter
+1
+select count(*) from tb3;
+count(*)
+20
+select count(*) from t1_sp;
+count(*)
+0
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase y.y.y.5: Roleback of nested trigger references
+-------------------------------------------------------
+set @@sql_mode='traditional';
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = memory;
+create table t2 (f2 integer) engine = memory;
+create table t3 (f3 integer) engine = memory;
+create table t4 (f4 tinyint) engine = memory;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+insert into t1 values (1);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1000);
+set autocommit=0;
+start transaction;
+insert into t1 values (1);
+ERROR 22003: Out of range value adjusted for column 'f4' at row 1
+commit;
+select * from t1;
+f1
+1
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/suite/funcs_1/r/memory_views.result b/mysql-test/suite/funcs_1/r/memory_views.result
new file mode 100644
index 00000000000..69dee081446
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/memory_views.result
@@ -0,0 +1,11453 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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 = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ;
+DROP DATABASE IF EXISTS test1;
+CREATE DATABASE test1;
+USE test1;
+set @@global.max_heap_table_size = 4294967295;
+set @@session.max_heap_table_size = 4294967295;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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 = memory;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ;
+USE test;
+
+! Attention: The file with the expected results is not
+| thoroughly checked.
+! The server return codes are correct, but
+| most result sets where the table tb2 is
+! involved are not checked.
+--------------------------------------------------------------------------------
+
+There are some statements where the ps-protocol is switched off.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+
+! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables
+--------------------------------------------------------------------------------
+insert into test.tb2 (f59,f60) values (76710,226546);
+insert into test.tb2 (f59,f60) values(2760,985654);
+insert into test.tb2 (f59,f60) values(569300,9114376);
+insert into test.tb2 (f59,f60) values(660,876546);
+insert into test.tb2 (f59,f60) values(250,87895654);
+insert into test.tb2 (f59,f60) values(340,9984376);
+insert into test.tb2 (f59,f60) values(3410,996546);
+insert into test.tb2 (f59,f60) values(2550,775654);
+insert into test.tb2 (f59,f60) values(3330,764376);
+insert into test.tb2 (f59,f60) values(441,16546);
+insert into test.tb2 (f59,f60) values(24,51654);
+insert into test.tb2 (f59,f60) values(323,14376);
+insert into test.tb2 (f59,f60) values(34,41);
+insert into test.tb2 (f59,f60) values(04,74);
+insert into test.tb2 (f59,f60) values(15,87);
+insert into test.tb2 (f59,f60) values(22,93);
+insert into test.tb2 (f59,f60) values(394,41);
+insert into test.tb2 (f59,f60) values(094,74);
+insert into test.tb2 (f59,f60) values(195,87);
+insert into test.tb2 (f59,f60) values(292,93);
+insert into test.tb2 (f59,f60) values(0987,41) ;
+insert into test.tb2 (f59,f60) values(7876,74) ;
+INSERT INTO tb2 (f59,f61) VALUES(321,765 );
+INSERT INTO tb2 (f59,f61) VALUES(9112,8771);
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+Insert into tb2 (f59,f60,f61) values (107,105,106) ;
+Insert into tb2 (f59,f60,f61) values (109,108,104) ;
+Insert into tb2 (f59,f60,f61) values (207,205,206) ;
+Insert into tb2 (f59,f60,f61) values (209,208,204) ;
+Insert into tb2 (f59,f60,f61) values (27,25,26) ;
+Insert into tb2 (f59,f60,f61) values (29,28,24) ;
+Insert into tb2 (f59,f60,f61) values (17,15,16) ;
+Insert into tb2 (f59,f60,f61) values (19,18,14) ;
+insert into tb2 (f59,f60,f61) values (107,105,106);
+insert into tb2 (f59,f60,f61) values (109,108,104);
+INSERT INTO tb2 (f59,f60) VALUES( 299,899 );
+INSERT INTO tb2 (f59,f60) VALUES( 242,79 );
+INSERT INTO tb2 (f59,f60) VALUES( 424,89 );
+Use test;
+
+Testcase 3.3.1.1
+--------------------------------------------------------------------------------
+Drop table if exists t1;
+Create table t1 (f59 INT, f60 INT) ;
+Insert into t1 values (100,4234);
+Insert into t1 values (990,6624);
+Insert into t1 values (710,765);
+Insert into t1 values (300,433334);
+Insert into t1 values (800,9788);
+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;
+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;
+f59 f60 f61
+1 1 0000000001
+2 2 0000000002
+3 3 0000000003
+4 4 0000000004
+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;
+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;
+f59
+5
+6
+7
+ALTER VIEW v1 AS select f59
+FROM test.tb2 limit 6,2;
+select * FROM v1 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;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 order by f59 asc limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 order by f59 desc limit 100;
+select * FROM v1 limit 0,10;
+f59
+569300
+76710
+9112
+7876
+3410
+3330
+2760
+2550
+987
+660
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 asc limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 desc limit 100;
+select * FROM v1 limit 0,10;
+f59
+569300
+76710
+9112
+7876
+3410
+3330
+2760
+2550
+987
+660
+CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
+union (select f59 from t1) limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+UNION DISTINCT(select f59 FROM t1) ;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+UNION ALL(select f59 FROM t1) ;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+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;
+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
+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
+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
+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
+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
+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
+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
+CREATE or REPLACE VIEW v1 AS select *
+FROM test.tb2 WITH CASCADED CHECK OPTION ;
+select * FROM v1 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
+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;
+F59 F60
+1 1
+2 2
+3 3
+4 4
+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;
+f59 f60
+3330 764376
+DROP VIEW v1 ;
+DROP TABLE t1 ;
+
+Testcase 3.3.1.2
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+CREATE TABLE t1 (f1 BIGINT) ;
+SET @x=0;
+CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
+ERROR HY000: View's SELECT contains a 'INTO' clause
+Select @x;
+@x
+0
+CREATE or REPLACE VIEW v1 AS Select 1
+FROM (SELECT 1 FROM t1) my_table;
+ERROR HY000: View's SELECT contains a subquery in the FROM clause
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ;
+SET @a:=0 ;
+SELECT @a ;
+@a
+0
+INSERT INTO v1 VALUES (1) ;
+SELECT @a ;
+@a
+1
+SELECT * FROM t1;
+f1
+1
+DROP TRIGGER tr1 ;
+SET @a:=0 ;
+CREATE TRIGGER tr1 BEFORE INSERT ON v1 FOR EACH ROW SET @a:=1 ;
+ERROR HY000: 'test.v1' is not BASE TABLE
+RENAME TABLE v1 TO v2;
+RENAME VIEW v2 TO v1;
+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 'VIEW v2 TO v1' at line 1
+ALTER TABLE v2 RENAME AS v1;
+ALTER VIEW v1 RENAME AS v2;
+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 'RENAME AS v2' at line 1
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+CREATE TABLE t1 ( f1 DATE, f2 BLOB, f3 DOUBLE );
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+ALTER TABLE t1 ADD PRIMARY KEY(f1);
+ALTER TABLE v1 ADD PRIMARY KEY(f1);
+ERROR HY000: 'test.v1' is not BASE TABLE
+ALTER VIEW v1 ADD PRIMARY KEY(f1);
+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 'ADD PRIMARY KEY(f1)' at line 1
+CREATE INDEX t1_idx ON t1(f3);
+CREATE INDEX v1_idx ON v1(f3);
+ERROR HY000: 'test.v1' is not BASE TABLE
+DROP TABLE t1;
+DROP VIEW v1;
+
+Testcase 3.3.1.3 + 3.1.1.4
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50;
+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 'or REPLACE AS Select * from tb2 my_table limit 50' at line 1
+CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+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 'WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50' at line 1
+CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+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 'WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50' at line 1
+SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ;
+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 'CREATE VIEW As v1 limit 100' at line 1
+CREATE or REPLACE VIEW v1 Select f59, f60
+from test.tb2 my_table where f59 = 250 ;
+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 'Select f59, f60
+from test.tb2 my_table where f59 = 250' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+DROP VIEW v1;
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+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 'OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK ' at line 1
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+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 'SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CASCADED WITH CHECK OPTION;
+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 'CASCADED WITH CHECK OPTION' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED OPTION CHECK;
+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 'OPTION CHECK' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH CASCADED;
+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 'CHECK OPTION WITH CASCADED' at line 2
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+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 'WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1' at line 1
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+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 'OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPT' at line 1
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+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 'SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table LOCAL WITH CHECK OPTION;
+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 'LOCAL WITH CHECK OPTION' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL OPTION CHECK;
+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 'OPTION CHECK' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH LOCAL;
+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 'CHECK OPTION WITH LOCAL' at line 2
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+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 'WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1' at line 1
+Drop table if exists t1 ;
+CREATE table t1 (f1 int ,f2 int) ;
+INSERT INTO t1 values (235, 22);
+INSERT INTO t1 values (554, 11);
+CREATE or REPLACE view v1 as (Select from f59 tb2)
+Union ALL (Select from f1 t1);
+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 'from f59 tb2)
+Union ALL (Select from f1 t1)' at line 1
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by order f59 limit 100 ;
+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 'by order f59 limit 100' at line 2
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by group f59 ;
+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 'by group f59' at line 2
+
+Testcase 3.3.1.5
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
+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 'SELECT * FROM tb2 limit 100' at line 1
+CREATE v1 AS SELECT * FROM tb2 limit 100 ;
+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 'v1 AS SELECT * FROM tb2 limit 100' at line 1
+VIEW v1 AS SELECT * FROM tb2 limit 100 ;
+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 'VIEW v1 AS SELECT * FROM tb2 limit 100' at line 1
+CREATE VIEW v1 AS SELECT 1;
+DROP VIEW v1;
+VIEW v1 AS SELECT 1;
+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 'VIEW v1 AS SELECT 1' at line 1
+CREATE v1 AS SELECT 1;
+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 'v1 AS SELECT 1' at line 1
+CREATE VIEW AS SELECT 1;
+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 'AS SELECT 1' at line 1
+CREATE VIEW v1 SELECT 1;
+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 'SELECT 1' at line 1
+CREATE VIEW v1 AS ;
+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
+
+Testcase 3.3.1.6
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE or REPLACE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = MERGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+Warnings:
+Warning 1354 View merge algorithm can't be used here for now (assumed undefined algorithm)
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 '= TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM = VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'GARBAGE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+Drop view if exists v1 ;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH LOCAL CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH NO CHECK OPTION;
+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 'NO CHECK OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 CASCADED CHECK OPTION;
+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 'CASCADED CHECK OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED OPTION;
+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 'OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK ;
+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 2
+
+Testcase 3.3.1.7
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+Create view test.v1 AS Select * from test.tb2 limit 100 ;
+Alter view test.v1 AS Select F59 from test. tb2 limit 100 ;
+Drop view test.v1 ;
+Create view v1 AS Select * from test.tb2 limit 100 ;
+Alter view v1 AS Select F59 from test.tb2 limit 100 ;
+Drop view v1 ;
+
+Testcase 3.3.1.A0
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+CREATE TABLE t1 (f1 NUMERIC(4)) ENGINE = memory;
+INSERT INTO t1 VALUES(1111), (2222);
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 = 1111;
+CREATE VIEW V1 AS SELECT * FROM t1 WHERE f1 = 2222;
+SELECT * FROM v1;
+f1
+1111
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+
+Testcase 3.3.1.8
+--------------------------------------------------------------------------------
+Create view select AS Select * from test.tb2 limit 100;
+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 'select AS Select * from test.tb2 limit 100' at line 1
+Create view as AS Select * from test.tb2 limit 100;
+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 'as AS Select * from test.tb2 limit 100' at line 1
+Create view where AS Select * from test.tb2 limit 100;
+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 'where AS Select * from test.tb2 limit 100' at line 1
+Create view from AS Select * from test.tb2 limit 100;
+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 'from AS Select * from test.tb2 limit 100' at line 1
+Create view while AS Select * from test.tb2 limit 100;
+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 AS Select * from test.tb2 limit 100' at line 1
+Create view asdkj*(&*&&^ as Select * from test.tb2 limit 100 ;
+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 '*(&*&&^ as Select * from test.tb2 limit 100' at line 1
+Drop view if exists test.procedure ;
+Create view test.procedure as Select * from test.tb2 limit 100 ;
+Drop view if exists test.procedure ;
+
+Testcase 3.3.1.9
+--------------------------------------------------------------------------------
+Drop TABLE IF EXISTS t1 ;
+Drop VIEW IF EXISTS v1;
+Drop VIEW IF EXISTS v2;
+Drop VIEW IF EXISTS v3;
+CREATE TABLE t1 ( f1 char(5));
+INSERT INTO t1 SET f1 = 'abcde';
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE VIEW v2 AS SELECT * FROM v1;
+DROP TABLE t1;
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v1 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v1 SET f1 = "fffff";
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v2 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v2 SET f1 = "fffff";
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v1;
+SELECT * FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v2 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v2 SET f1 = "fffff";
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v2;
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f1 FLOAT);
+CREATE VIEW v1 AS SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE or REPLACE VIEW v1 AS SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+DROP VIEW v1;
+DROP TABLE t1;
+
+Testcase 3.3.1.10
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create view test.v1 AS Select * from test.tb2 ;
+Create view test.v1 AS Select F59 from test.tb2 ;
+ERROR 42S01: Table 'v1' already exists
+Create view v1 AS Select F59 from test.tb2 ;
+ERROR 42S01: Table 'v1' already exists
+
+Testcase 3.3.1.11
+--------------------------------------------------------------------------------
+Create view test.tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+ERROR 42S01: Table 'tb2' already exists
+Create view tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+ERROR 42S01: Table 'tb2' already exists
+Drop view if exists test.v111 ;
+Create view test.v111 as select * from tb2 limit 50;
+Create table test.v111(f1 int );
+ERROR 42S01: Table 'v111' already exists
+Create table v111(f1 int );
+ERROR 42S01: Table 'v111' already exists
+DROP VIEW test.v111;
+
+Testcase 3.3.1.12
+--------------------------------------------------------------------------------
+USE test;
+Drop database if exists test2 ;
+Create database test2 ;
+DROP TABLE IF EXISTS test.t0, test.t1, test.t2;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+CREATE TABLE test.t1 ( f1 VARCHAR(20));
+CREATE TABLE test2.t1 ( f1 VARCHAR(20));
+CREATE TABLE test.t2 ( f1 VARCHAR(20));
+CREATE TABLE test2.v1 ( f1 VARCHAR(20));
+CREATE TABLE test.t0 ( f1 VARCHAR(20));
+CREATE TABLE test2.t0 ( f1 VARCHAR(20));
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test.v1 AS SELECT * FROM test.t0;
+CREATE VIEW test.v2 AS SELECT * FROM test.t0;
+CREATE VIEW test2.v2 AS SELECT * FROM test2.t0;
+INSERT INTO test.t1 VALUES('test.t1 - 1');
+INSERT INTO test2.t1 VALUES('test2.t1 - 1');
+INSERT INTO test.t2 VALUES('test.t2 - 1');
+INSERT INTO test2.v1 VALUES('test2.v1 - 1');
+INSERT INTO test.t0 VALUES('test.t0 - 1');
+INSERT INTO test2.t0 VALUES('test2.t0 - 1');
+USE test;
+INSERT INTO t1 VALUES('test.t1 - 2');
+INSERT INTO t2 VALUES('test.t2 - 2');
+INSERT INTO t0 VALUES('test.t0 - 2');
+USE test2;
+INSERT INTO t1 VALUES('test2.t1 - 2');
+INSERT INTO v1 VALUES('test2.v1 - 2');
+INSERT INTO t0 VALUES('test2.t0 - 2');
+SELECT * FROM t1;
+f1
+test2.t1 - 1
+test2.t1 - 2
+SELECT * FROM t2;
+f1
+test2.t0 - 1
+test2.t0 - 2
+SELECT * FROM v1;
+f1
+test2.v1 - 1
+test2.v1 - 2
+SELECT * FROM v2;
+f1
+test2.t0 - 1
+test2.t0 - 2
+USE test;
+SELECT * FROM t1;
+f1
+test.t1 - 1
+test.t1 - 2
+SELECT * FROM t2;
+f1
+test.t2 - 1
+test.t2 - 2
+SELECT * FROM v1;
+f1
+test.t0 - 1
+test.t0 - 2
+SELECT * FROM v2;
+f1
+test.t0 - 1
+test.t0 - 2
+
+Testcase 3.3.1.13
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+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
+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
+SELECT * FROM test.v1;
+f1
+1
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 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 ;
+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;
+F59
+76710
+2760
+569300
+660
+250
+340
+3410
+2550
+3330
+441
+24
+323
+34
+4
+15
+22
+394
+94
+195
+292
+987
+7876
+321
+9112
+500
+500
+500
+107
+109
+207
+209
+27
+29
+17
+19
+107
+109
+299
+242
+424
+Drop table test.t1 ;
+Drop view test.v1 ;
+
+Testcase 3.3.1.14
+--------------------------------------------------------------------------------
+CREATE OR REPLACE VIEW test.tb2 AS SELECT * From tb2 LIMIT 2;
+ERROR HY000: 'test.tb2' is not VIEW
+CREATE OR REPLACE VIEW tb2 AS SELECT * From tb2 LIMIT 2;
+ERROR HY000: 'test.tb2' is not VIEW
+
+Testcase 3.3.1.15
+--------------------------------------------------------------------------------
+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
+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
+--------------------------------------------------------------------------------
+Drop table if exists test.v1 ;
+CREATE OR REPLACE VIEW v1 AS SELECT * From tb2;
+SELECT * FROM tb2 WHERE 1 = 2;
+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 v1 WHERE 1 = 2;
+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 v1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+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`
+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`
+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`
+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`
+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`
+SELECT * FROM v1;
+column1 column2
+8.800 8.800
+
+Testcase 3.3.1.18
+--------------------------------------------------------------------------------
+Drop view if exists v1 ;
+Drop view if exists v1_1 ;
+Create view v1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60
+from test.tb2 limit 0,100 ;
+Create view v1_1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60 as NewNameF2
+from tb2 limit 0,100 ;
+SELECT NewNameF1,f60 FROM test.v1_1 ;
+ERROR 42S22: Unknown column 'f60' in 'field list'
+SELECT NewNameF1, v1_1.f60 FROM test.v1_1 ;
+ERROR 42S22: Unknown column 'v1_1.f60' in 'field list'
+SELECT f59, f60 FROM test.v1 ;
+ERROR 42S22: Unknown column 'f59' in 'field list'
+Use test ;
+SELECT F59 FROM v1 ;
+ERROR 42S22: Unknown column 'F59' in 'field list'
+
+Testcase 3.3.1.19
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1, t2;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t1 VALUES(7, 7.7);
+CREATE TABLE t2( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t2 VALUES(6, 6.6);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+f1 f2
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+f1 f2
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1 AS my_f1, f2 AS my_f2 FROM t1;
+SELECT * FROM v1;
+my_f1 my_f2
+7 7.70
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+my_f1 my_f2
+7 7.70
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT t1.f1, t2.f2 FROM t1, t2;
+SELECT * FROM v1;
+my_f1 my_f2
+7 6.60
+SELECT f1, f2 AS f1 FROM t1;
+f1 f1
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 AS f1 FROM t1;
+ERROR 42S21: Duplicate column name 'f1'
+SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+f1 f1
+7 6
+CREATE OR REPLACE VIEW v1 AS SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+ERROR 42S21: Duplicate column name 'f1'
+CREATE OR REPLACE VIEW v1 (my_col, my_col) AS SELECT * FROM t1;
+ERROR 42S21: Duplicate column name 'my_col'
+
+Testcase 3.3.1.20
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT * FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT * FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT f1, f2 FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT * FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT f1, f2 FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+
+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;
+F59 F60
+1 1
+2 2
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.22
+--------------------------------------------------------------------------------
+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
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT 1*2;
+SELECT * FROM test.v1;
+product
+2
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT USER();
+SELECT * FROM test.v1;
+product
+root@localhost
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.23 + 3.3.1.24
+--------------------------------------------------------------------------------
+USE test;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE VIEW test.v2 AS SELECT * FROM test.t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+CREATE VIEW v2 AS Select * from test.v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+DROP VIEW IF EXISTS v2;
+Warnings:
+Note 1051 Unknown table 'test.v2'
+
+Testcase 3.3.1.25
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1_temp;
+DROP TABLE IF EXISTS t2_temp;
+DROP VIEW IF EXISTS v1;
+Create table t1_temp(f59 char(10),f60 int) ;
+Create temporary table t1_temp(f59 char(10),f60 int) ;
+Insert into t1_temp values('FER',90);
+Insert into t1_temp values('CAR',27);
+Create view v1 as select * from t1_temp ;
+ERROR HY000: View's SELECT refers to a temporary table 't1_temp'
+Create temporary table t2_temp(f59 char(10),f60 int) ;
+Insert into t2_temp values('AAA',11);
+Insert into t2_temp values('BBB',22);
+Create or replace view v1
+as select t1_temp.f59,t2_temp.f59 from t1_temp,t2_temp ;
+ERROR HY000: View's SELECT refers to a temporary table 't1_temp'
+DROP temporary table t1_temp;
+DROP table t1_temp;
+DROP temporary table t2_temp;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 (f1 char(10));
+CREATE TEMPORARY TABLE t2 (f2 char(10));
+INSERT INTO t1 VALUES('t1');
+INSERT INTO t1 VALUES('A');
+INSERT INTO t2 VALUES('t2');
+INSERT INTO t2 VALUES('B');
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2, t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f2, f1 FROM t2, t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1, t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1, t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2 UNION SELECT * FROM t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2 UNION SELECT f1 FROM t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1 UNION SELECT f2 FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t2
+WHERE f2 = ( SELECT f1 FROM t1 );
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t1
+WHERE f1 = ( SELECT f2 FROM t2 );
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+DROP TABLE t1;
+DROP TEMPORARY TABLE t2;
+
+Testcase 3.3.1.26
+--------------------------------------------------------------------------------
+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
+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
+--------------------------------------------------------------------------------
+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 ;
+F59
+1
+2
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+
+Testcase 3.3.1.28
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+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 ;
+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
+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
+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
+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
+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
+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
+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
+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 ;
+Drop view if exists test2.v2 ;
+Drop database test2 ;
+
+Testcase 3.3.1.29
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+create database test2 ;
+use test2;
+Create view test.v1 AS Select * from test.tb2 limit 50 ;
+Create view test2.v2 AS Select F59 from test.v1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test2.v2 ;
+
+Testcase 3.3.1.31
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+CREATE TABLE test.t1 ( f59 int, f60 int );
+INSERT INTO test.t1 VALUES( 34, 654 );
+INSERT INTO test.t1 VALUES( 906, 434 );
+INSERT INTO test.t1 VALUES( 445, 765 );
+Create or replace view test.v1
+AS SELECT test.t1.F59, test.tb2.F60
+FROM test.tb2 JOIN test.t1 ON test.tb2.F59 = test.t1.F59 ;
+Select * from test.v1;
+F59 F60
+34 41
+Drop view test.v1 ;
+
+Testcase 3.3.1.32
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+create database test2 ;
+use test2 ;
+CREATE TABLE t1 ( f59 int, f60 int );
+INSERT INTO t1 VALUES( 34, 654 );
+INSERT INTO t1 VALUES( 906, 434 );
+INSERT INTO t1 VALUES( 445, 765 );
+CREATE VIEW test2.v1
+AS SELECT test.tb2.F59, test.tb2.F60
+FROM test.tb2 INNER JOIN test2.t1 ON tb2.f59 = t1.f59;
+Select * from test2.v1;
+F59 F60
+34 41
+Use test;
+
+Testcase 3.3.1.33
+--------------------------------------------------------------------------------
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+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 ;
+
+Testcase 3.3.1.34
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+create database test2 ;
+use test2 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2 ;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2 ;
+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;
+F59 F60
+1 1
+2 2
+3 3
+4 4
+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 ;
+
+Testcase 3.3.1.35
+--------------------------------------------------------------------------------
+use test;
+Drop view if exists test.v1;
+Drop view if exists test.v1_firstview;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+4 74
+5 5
+6 6
+7 7
+8 8
+9 9
+Drop view test.v1 ;
+Drop view test.v1_firstview;
+
+Testcase 3.3.1.36
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+create database test2 ;
+use test2 ;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+4 74
+5 5
+6 6
+7 7
+8 8
+9 9
+Drop database test2 ;
+
+Testcase 3.3.1.37
+--------------------------------------------------------------------------------
+use test;
+Drop table if exists t1;
+Drop view if exists test.v1 ;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+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 ;
+Select * from v1_1 ;
+f59 f60
+90 507
+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;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+Drop table t1;
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+Drop view test.v1_main ;
+
+Testcase 3.3.1.31 - 3.3.1.37 New Implementation
+--------------------------------------------------------------------------------
+USE test;
+DROP DATABASE IF EXISTS test2;
+DROP TABLE IF EXISTS t0,t1;
+DROP VIEW IF EXISTS t3,t4;
+CREATE DATABASE test2;
+CREATE TABLE test1.t0 (f1 VARCHAR(20));
+CREATE TABLE test1.t1 (f1 VARCHAR(20));
+CREATE TABLE test2.t0 (f1 VARCHAR(20));
+CREATE TABLE test2.t1 (f1 VARCHAR(20));
+CREATE VIEW test1.t2 AS SELECT * FROM test1.t0;
+CREATE VIEW test1.t3 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t3 AS SELECT * FROM test1.t0;
+INSERT INTO test1.t0 VALUES('test1.t0');
+INSERT INTO test1.t1 VALUES('test1.t1');
+INSERT INTO test2.t0 VALUES('test2.t0');
+INSERT INTO test2.t1 VALUES('test2.t1');
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t1
+
+Testcase 3.3.1.38
+--------------------------------------------------------------------------------
+Drop table if exists test1.t1 ;
+Drop view if exists test.v1 ;
+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 ;
+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
+660 876546
+250 87895654
+340 9984376
+3410 996546
+2550 775654
+3330 764376
+441 16546
+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 ;
+Select * from test1.v1_1 ;
+f59 f60
+199 507
+Create database test3 ;
+Create table test3.t1(f59 int,f60 int) ;
+Insert into test3.t1 values (1023,7670) ;
+Create view test3.v1_2 as Select f59,f60 from test3.t1 ;
+Select * from test3.v1_2 ;
+f59 f60
+1023 7670
+use test ;
+Create view v1_main
+as SELECT test.tb2.f59 as f1, test1.v1_1.f59 as f2,
+test3.v1_2.f59 as f3
+FROM (test.tb2,test1.v1_1,test.v1) JOIN test3.v1_2
+ON (test.v1.f59 = test1.v1_1.f59) ;
+Select * from v1_main ;
+f1 f2 f3
+DROP VIEW test.v1 ;
+DROP VIEW test1.v1_1 ;
+DROP VIEW test.v1_main ;
+DROP DATABASE test3;
+
+Testcase 3.3.1.39
+--------------------------------------------------------------------------------
+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 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.40
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Set @var1 = 'ABC' ;
+Set @var2 = 'XYZ' ;
+CREATE VIEW test.v1 AS SELECT @var1, @var2 ;
+ERROR HY000: View's SELECT contains a variable or parameter
+CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
+ERROR HY000: View's SELECT contains a variable or parameter
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.41
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Drop procedure if exists sp1 ;
+Create procedure sp1() DETERMINISTIC
+Begin
+DECLARE x char;
+Set x = 200 ;
+Create view test.v1 as SELECT * FROM tb2 WHERE f59 = x ;
+End //
+ERROR HY000: View's SELECT contains a variable or parameter
+Call sp1() ;
+ERROR 42000: PROCEDURE test.sp1 does not exist
+Drop view if exists test.v1 ;
+Warnings:
+Note 1051 Unknown table 'test.v1'
+Drop procedure sp1 ;
+ERROR 42000: PROCEDURE test.sp1 does not exist
+
+Testcase 3.3.1.42
+--------------------------------------------------------------------------------
+Drop VIEW if exists test.v1 ;
+CREATE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 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 'VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2' at line 1
+CREATE OR REPLACE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 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 'TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2' at line 1
+Drop view if exists test.v1 ;
+Use test;
+
+Testcase 3.3.1.43
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
+INSERT INTO test.v1 values(122,432);
+SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20;
+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
+122 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ;
+SELECT * FROM test.tb2 where f59 = 3000 limit 0,20;
+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
+3000 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+DELETE FROM test.v1
+where test.v1.f59 = 3000 and test.v1.f60 = 432;
+SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432;
+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 test.v1 ;
+
+Testcase 3.3.1.44
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 limit 100;
+INSERT INTO test.v1 values(31, 32, 33) ;
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+Drop view test.v1 ;
+
+Testcase 3.3.1.45
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+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 ;
+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
+30 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
+30 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
+UPDATE tb2 SET f59 = 100 where f59 = 30 ;
+affected rows: 2
+info: Rows matched: 2 Changed: 2 Warnings: 0
+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 ;
+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 ;
+Drop VIEW IF EXISTS test.v1 ;
+CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), PRIMARY KEY(f1))
+ENGINE = memory;
+INSERT INTO t1 VALUES(1,'one');
+INSERT INTO t1 VALUES(2,'two');
+INSERT INTO t1 VALUES(3,'three');
+INSERT INTO t1 VALUES(5,'five');
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 BETWEEN 2 AND 4;
+SELECT COUNT(*) FROM v1 WHERE f1 = 2;
+COUNT(*)
+1
+SELECT COUNT(*) FROM v1 WHERE f1 = 4;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1 WHERE f1 = 5;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1 WHERE f1 = 10;
+COUNT(*)
+0
+INSERT INTO t1 VALUES(4,'four');
+DELETE FROM v1 WHERE f1 = 3;
+affected rows: 1
+DELETE FROM v1 WHERE f1 = 5;
+affected rows: 0
+SELECT * FROM t1 ORDER BY f1;
+f1 f2
+1 one
+2 two
+4 four
+5 five
+SELECT * FROM v1 ORDER BY f1;
+f1 f2
+2 two
+4 four
+INSERT INTO v1 VALUES(2,'two');
+ERROR 23000: Duplicate entry '2' for key 1
+INSERT INTO v1 VALUES(3,'three');
+affected rows: 1
+INSERT INTO v1 VALUES(6,'six');
+affected rows: 1
+SELECT * FROM t1 ORDER BY f1;
+f1 f2
+1 one
+2 two
+3 three
+4 four
+5 five
+6 six
+SELECT * FROM v1 ORDER BY f1;
+f1 f2
+2 two
+3 three
+4 four
+UPDATE v1 SET f1 = 2 WHERE f1 = 3;
+ERROR 23000: Duplicate entry '2' for key 1
+UPDATE v1 SET f2 = 'number' WHERE f1 = 3;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+UPDATE v1 SET f1 = 10 WHERE f1 = 3;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+UPDATE v1 SET f2 = 'number' WHERE f1 = 1;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+
+Testcase 3.3.1.46
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+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 ;
+f59 f60
+195 87
+drop view if exists test.v1 ;
+
+Testcase 3.3.1.47
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+CREATE VIEW test.v1 AS SELECT f59,f60
+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 ;
+f59 f60
+987 41
+UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
+SELECT * FROM tb2 where f59 = 9879 ;
+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 v1 ;
+drop view if exists v2 ;
+
+Testcase 3.3.1.48
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS test.t1;
+DROP VIEW IF EXISTS test.v1;
+CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER)
+ENGINE = memory;
+INSERT INTO t1 VALUES ('A', 1);
+SELECT * FROM t1;
+f1 f2
+A 1
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2
+WITH CASCADED CHECK OPTION ;
+SELECT * FROM v1;
+f1 f2
+A 1
+UPDATE v1 SET f2 = 2 WHERE f2 = 1;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+INSERT INTO v1 VALUES('B',2);
+affected rows: 1
+SELECT * FROM v1;
+f1 f2
+A 2
+B 2
+UPDATE v1 SET f2 = 4;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+INSERT INTO v1 VALUES('B',3);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+SELECT * FROM v1;
+f1 f2
+A 2
+B 2
+
+Testcase 3.3.1.49
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+Drop view if exists test.v3 ;
+Create table test.t1 (f59 INT, f60 INT) ;
+Insert into test.t1 values (100,4234);
+Insert into test.t1 values (290,6624);
+Insert into test.t1 values (410,765);
+Insert into test.t1 values (300,433334);
+Insert into test.t1 values (800,9788);
+Insert into test.t1 values (501,9866);
+Create view test.v1 as select f59
+FROM test.t1 where f59<500 with check option ;
+Create view test.v2 as select *
+from test.v1 where f59>0 with local check option ;
+Create view test.v3 as select *
+from test.v1 where f59>0 with cascaded check option ;
+Insert into test.v2 values(23) ;
+Insert into test.v3 values(24) ;
+drop view if exists test.v1 ;
+drop view if exists test.v2 ;
+drop view if exists test.v3 ;
+
+Testcase 3.3.1.49A
+--------------------------------------------------------------------------------
+USE test;
+DROP TABLE IF EXISTS test.t1 ;
+DROP TABLE IF EXISTS test.t1_results ;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+DROP VIEW IF EXISTS test.v3;
+CREATE TABLE t1 (f1 INTEGER, f2 CHAR(20));
+CREATE TABLE t1_results (v3_to_v1_options VARCHAR(100), statement VARCHAR(10),
+v3_to_v1_violation VARCHAR(20), errno CHAR(10));
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH LOCAL CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH CASCADED CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+SELECT * FROM t1_results ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+ <nothing> - <nothing> - <nothing> UPDATE _v2_ 0
+ <nothing> - <nothing> - <nothing> INSERT _v2_ 0
+ <nothing> - <nothing> - <nothing> INSERT _ _v1 0
+ <nothing> - <nothing> - <nothing> UPDATE _ _ 0
+ <nothing> - <nothing> - <nothing> UPDATE _ _v1 0
+ <nothing> - <nothing> - <nothing> UPDATE v3_ _ 0
+ <nothing> - <nothing> - <nothing> INSERT _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+
+Plausibility checks for INSERTs and UPDATEs ( 4. and 5. above).
+All following SELECTs must give ROW NOT FOUND
+--------------------------------------------------------------------------------
+SELECT * FROM t1_results
+WHERE v3_to_v1_violation = ' _ _ ' AND errno <> 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE ' %' AND errno <> 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %'
+AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %' AND v3_to_v1_options NOT LIKE 'WITH LOCAL %'
+ AND v3_to_v1_violation NOT LIKE ' _ _ ' AND errno = 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE errno <> 0 AND errno <> 1369
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+
+End of plausibility checks
+--------------------------------------------------------------------------------
+DROP TABLE t1_results;
+
+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 ;
+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
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
+SELECT * FROM test.v1 ;
+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
+22 NULL
+394 NULL
+94 NULL
+195 NULL
+292 NULL
+987 NULL
+7876 NULL
+321 0000000765
+9112 0000008771
+500 0000000900
+500 0000000900
+500 0000000900
+107 0000000106
+109 0000000104
+207 0000000206
+209 0000000204
+27 0000000026
+29 0000000024
+17 0000000016
+19 0000000014
+107 0000000106
+109 0000000104
+299 NULL
+242 NULL
+424 NULL
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
+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
+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
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
+SELECT * FROM test.v1 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
+250 NULL
+340 NULL
+3410 NULL
+2550 NULL
+3330 NULL
+441 NULL
+drop view test.v1 ;
+
+Testcase 3.3.1.54
+--------------------------------------------------------------------------------
+USE test;
+drop table if exists test.t1 ;
+drop table if exists test.t2 ;
+drop view if exists test.v1 ;
+Create table t1 (f59 int, f60 int) ;
+Create table t2 (f59 int, f60 int) ;
+Insert into t1 values (1,10) ;
+Insert into t1 values (2,20) ;
+Insert into t1 values (47,80) ;
+Insert into t2 values (1,1000) ;
+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 ;
+f59 f60
+1 10
+2 20
+drop table test.t1 ;
+drop table test.t2 ;
+drop view test.v1 ;
+
+Testcase 3.3.1.50 - 3.3.1.54 additional implementation
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 ( f1 BIGINT, f2 char(10), f3 DECIMAL(10,5) );
+INSERT INTO t1 VALUES(1, 'one', 1.1);
+INSERT INTO t1 VALUES(2, 'two', 2.2);
+INSERT INTO t1 VALUES(3, 'three', 3.3);
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+f1 f2 f3
+1 one 1.10000
+2 two 2.20000
+3 three 3.30000
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1;
+SELECT * FROM v1;
+f2
+one
+two
+three
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+f1 f2 f3
+2 two 2.20000
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+f2
+two
+SET sql_mode = 'traditional,ansi';
+CREATE OR REPLACE VIEW v1 AS
+SELECT f3 AS "pure column f3: ", f1 + f3 AS "sum of columns f1 + f3 = ",
+3 * (- 0.11111E+1) AS "product of constants 3 * (- 0.11111E+1): ",
+'->' || CAST(f3 AS CHAR) || '<-'
+ AS "expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): "
+FROM t1 WHERE f1 = 2;
+SELECT * FROM v1;
+pure column f3: 2.20000
+sum of columns f1 + f3 = 4.20000
+product of constants 3 * (- 0.11111E+1): -3.3333
+expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): ->2.20000<-
+SET sql_mode = '';
+
+Testcases 3.3.1.55 - 3.3.1.62
+--------------------------------------------------------------------------------
+Drop table if exists t1, t2 ;
+Drop view if exists v1 ;
+Create table t1 (f59 int, f60 char(10), f61 int, a char(1)) ;
+Insert into t1 values (1, 'single', 3, '1') ;
+Insert into t1 values (2, 'double', 6, '2') ;
+Insert into t1 values (3, 'single-f3', 4, '3') ;
+Create table t2 (f59 int, f60 char(10), f61 int, b char(1)) ;
+Insert into t2 values (2, 'double', 6, '2') ;
+Insert into t2 values (3, 'single-f3', 6, '3') ;
+Insert into t2 values (4, 'single', 4, '4') ;
+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;
+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
+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;
+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
+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;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2 cross join t1;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+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;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2,t1;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Create or replace view test.v1 as
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+Select * from v1;
+f59 f60 f61 a b
+2 double 6 2 2
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+f59 f60 f61 a b
+2 double 6 2 2
+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;
+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
+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;
+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
+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;
+f59 f60 f61 a b
+2 double 6 2 2
+3 single-f3 6 NULL 3
+4 single 4 NULL 4
+Select f59, f60, f61, t1.a, t2.b
+FROM t2 natural left outer join t1;
+f59 f60 f61 a b
+2 double 6 2 2
+3 single-f3 6 NULL 3
+4 single 4 NULL 4
+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;
+t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+1 NULL single NULL 3 NULL
+2 2 double double 6 6
+3 3 single-f3 single-f3 4 6
+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;
+t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+1 NULL single NULL 3 NULL
+2 2 double double 6 6
+3 3 single-f3 single-f3 4 6
+Create or replace view test.v1 as
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+Select * from v1;
+f59 f60 a b
+1 single 1 NULL
+2 double 2 2
+3 single-f3 3 NULL
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+f59 f60 a b
+1 single 1 NULL
+2 double 2 2
+3 single-f3 3 NULL
+drop table t1, t2;
+drop view v1 ;
+Use test;
+
+Testcase 3.3.1.A1 - 3.3.1.A3
+--------------------------------------------------------------------------------
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (101,201,301) ;
+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;
+f59
+1
+2
+3
+100
+5
+6
+7
+8
+9
+10
+Drop view if exists test.v1 ;
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (201,201,201) ;
+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;
+f59
+207
+Drop view if exists test.v1 ;
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (21,21,21) ;
+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;
+f59
+27
+Drop view test.v1 ;
+
+Testcase 3.3.1.63
+--------------------------------------------------------------------------------
+Drop table if exists t1 ;
+Drop view if exists test.v1 ;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (11,21,31) ;
+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;
+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;
+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;
+f59
+17
+Drop view test.v1 ;
+drop table if exists t1;
+drop view if exists test.v1;
+create table t1 (f59 int, f60 int, f61 int);
+insert into t1 values (101,201,301);
+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;
+f59
+107
+107
+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;
+f59
+107
+107
+107
+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;
+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;
+f59
+107
+drop view if exists test.v1 ;
+drop table t1;
+
+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;
+F59
+109
+109
+ALTER VIEW test.v1 AS SELECT *
+FROM test.tb2 WHERE test.tb2.f59 = 242 ;
+SELECT * FROM test.v1 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 ;
+
+Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS test.v1 ;
+CREATE TABLE t1 ( f1 VARCHAR(1000) ) ENGINE = memory ;
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+DROP VIEW v1;
+DROP VIEW v1;
+ERROR 42S02: Unknown table 'v1'
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1;
+Warnings:
+Note 1051 Unknown table 'test.v1'
+
+Testcase 3.3.1.68
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1_base ;
+DROP VIEW IF EXISTS v1_top ;
+CREATE TABLE t1 ( f1 DOUBLE);
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top CASCADE ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base CASCADE ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top RESTRICT ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base RESTRICT ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+
+Testcase 3.3.1.69, 3.3.1.70, 3.3.1.A5
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ENGINE = memory;
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP VIEW v1 ;
+SELECT * FROM v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW CREATE VIEW v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW CREATE TABLE v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW TABLE STATUS like 'v1' ;
+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
+SHOW TABLES LIKE 'v1';
+Tables_in_test (v1)
+SHOW COLUMNS FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+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 Corrupt
+DESCRIBE v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+EXPLAIN SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+Use test;
+
+Testcase 3.3.1.A6
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS test3;
+CREATE DATABASE test3;
+CREATE TABLE test3.t1 (f1 DECIMAL(5,3)) ENGINE = memory;
+INSERT INTO test3.t1 SET f1 = 1.0;
+CREATE VIEW test3.v0 AS SELECT * FROM test3.t1;
+CREATE VIEW test3.v1 AS SELECT * FROM test3.v0;
+CREATE VIEW test3.v2 AS SELECT * FROM test3.v1;
+CREATE VIEW test3.v3 AS SELECT * FROM test3.v2;
+CREATE VIEW test3.v4 AS SELECT * FROM test3.v3;
+CREATE VIEW test3.v5 AS SELECT * FROM test3.v4;
+CREATE VIEW test3.v6 AS SELECT * FROM test3.v5;
+CREATE VIEW test3.v7 AS SELECT * FROM test3.v6;
+CREATE VIEW test3.v8 AS SELECT * FROM test3.v7;
+CREATE VIEW test3.v9 AS SELECT * FROM test3.v8;
+CREATE VIEW test3.v10 AS SELECT * FROM test3.v9;
+CREATE VIEW test3.v11 AS SELECT * FROM test3.v10;
+CREATE VIEW test3.v12 AS SELECT * FROM test3.v11;
+CREATE VIEW test3.v13 AS SELECT * FROM test3.v12;
+CREATE VIEW test3.v14 AS SELECT * FROM test3.v13;
+CREATE VIEW test3.v15 AS SELECT * FROM test3.v14;
+CREATE VIEW test3.v16 AS SELECT * FROM test3.v15;
+CREATE VIEW test3.v17 AS SELECT * FROM test3.v16;
+CREATE VIEW test3.v18 AS SELECT * FROM test3.v17;
+CREATE VIEW test3.v19 AS SELECT * FROM test3.v18;
+CREATE VIEW test3.v20 AS SELECT * FROM test3.v19;
+CREATE VIEW test3.v21 AS SELECT * FROM test3.v20;
+CREATE VIEW test3.v22 AS SELECT * FROM test3.v21;
+CREATE VIEW test3.v23 AS SELECT * FROM test3.v22;
+CREATE VIEW test3.v24 AS SELECT * FROM test3.v23;
+CREATE VIEW test3.v25 AS SELECT * FROM test3.v24;
+CREATE VIEW test3.v26 AS SELECT * FROM test3.v25;
+CREATE VIEW test3.v27 AS SELECT * FROM test3.v26;
+CREATE VIEW test3.v28 AS SELECT * FROM test3.v27;
+CREATE VIEW test3.v29 AS SELECT * FROM test3.v28;
+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`
+SELECT * FROM test3.v32;
+f1
+1.000
+EXPLAIN SELECT * FROM test3.v32;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system 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`
+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;
+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
+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
+----------------------------------------------------------
+SET @join_limit = 30;
+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;
+DROP VIEW IF EXISTS test1.v24;
+DROP VIEW IF EXISTS test1.v23;
+DROP VIEW IF EXISTS test1.v22;
+DROP VIEW IF EXISTS test1.v21;
+DROP VIEW IF EXISTS test1.v20;
+DROP VIEW IF EXISTS test1.v19;
+DROP VIEW IF EXISTS test1.v18;
+DROP VIEW IF EXISTS test1.v17;
+DROP VIEW IF EXISTS test1.v16;
+DROP VIEW IF EXISTS test1.v15;
+DROP VIEW IF EXISTS test1.v14;
+DROP VIEW IF EXISTS test1.v13;
+DROP VIEW IF EXISTS test1.v12;
+DROP VIEW IF EXISTS test1.v11;
+DROP VIEW IF EXISTS test1.v10;
+DROP VIEW IF EXISTS test1.v9;
+DROP VIEW IF EXISTS test1.v8;
+DROP VIEW IF EXISTS test1.v7;
+DROP VIEW IF EXISTS test1.v6;
+DROP VIEW IF EXISTS test1.v5;
+DROP VIEW IF EXISTS test1.v4;
+DROP VIEW IF EXISTS test1.v3;
+DROP VIEW IF EXISTS test1.v2;
+DROP VIEW IF EXISTS test1.v1;
+DROP VIEW IF EXISTS test1.v0;
+CREATE DATABASE test3;
+USE test1;
+CREATE TABLE t1 (f1 BIGINT, f2 CHAR(50)) ENGINE = memory ;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0, NULL);
+INSERT INTO t1 VALUES (5, 'five');
+INSERT INTO t1 VALUES (1, 'one');
+INSERT INTO t1 VALUES (2, 'two');
+USE test2;
+CREATE TABLE t1 (f1 DECIMAL(64,30), f2 VARCHAR(50)) ENGINE = memory;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0.000000000000000000000000000000, NULL);
+INSERT INTO t1 VALUES (5.000000000000000000000000000000, 'five');
+INSERT INTO t1 VALUES (+1.000000000000000000000000000000, 'one');
+INSERT INTO t1 VALUES (3.000000000000000, 'three');
+USE test3;
+CREATE TABLE t1 (f1 DOUBLE, f2 VARBINARY(50)) ENGINE = memory;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (+0.0E-35, NULL);
+INSERT INTO t1 VALUES (+0.5E+1, 'five');
+INSERT INTO t1 VALUES (20.0E-1, 'two');
+INSERT INTO t1 VALUES (0.0300E2, 'three');
+USE test;
+CREATE OR REPLACE VIEW test1.v0 AS SELECT * FROM test2.t1;
+CREATE OR REPLACE VIEW test1.v1 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v0 tab2;
+CREATE OR REPLACE VIEW test1.v2 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v1 tab2;
+CREATE OR REPLACE VIEW test1.v3 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v2 tab2;
+CREATE OR REPLACE VIEW test1.v4 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v3 tab2;
+CREATE OR REPLACE VIEW test1.v5 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v4 tab2;
+CREATE OR REPLACE VIEW test1.v6 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v5 tab2;
+CREATE OR REPLACE VIEW test1.v7 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v6 tab2;
+CREATE OR REPLACE VIEW test1.v8 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v7 tab2;
+CREATE OR REPLACE VIEW test1.v9 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v8 tab2;
+CREATE OR REPLACE VIEW test1.v10 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v9 tab2;
+CREATE OR REPLACE VIEW test1.v11 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v10 tab2;
+CREATE OR REPLACE VIEW test1.v12 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v11 tab2;
+CREATE OR REPLACE VIEW test1.v13 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v12 tab2;
+CREATE OR REPLACE VIEW test1.v14 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v13 tab2;
+CREATE OR REPLACE VIEW test1.v15 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v14 tab2;
+CREATE OR REPLACE VIEW test1.v16 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v15 tab2;
+CREATE OR REPLACE VIEW test1.v17 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v16 tab2;
+CREATE OR REPLACE VIEW test1.v18 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v17 tab2;
+CREATE OR REPLACE VIEW test1.v19 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v18 tab2;
+CREATE OR REPLACE VIEW test1.v20 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v19 tab2;
+CREATE OR REPLACE VIEW test1.v21 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v20 tab2;
+CREATE OR REPLACE VIEW test1.v22 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v21 tab2;
+CREATE OR REPLACE VIEW test1.v23 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v22 tab2;
+CREATE OR REPLACE VIEW test1.v24 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v23 tab2;
+CREATE OR REPLACE VIEW test1.v25 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v24 tab2;
+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`))))
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+f1 f2
+5 five
+
+The output of following EXPLAIN is deactivated, because the result
+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`))))
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v30;
+f1 f2
+5 five
+
+The output of following EXPLAIN is deactivated, because the result
+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;
+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;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
+SHOW CREATE VIEW test1.v29;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
+SHOW CREATE VIEW test1.v29;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+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;
+DROP VIEW IF EXISTS test1.v27;
+DROP VIEW IF EXISTS test1.v26;
+DROP VIEW IF EXISTS test1.v25;
+DROP VIEW IF EXISTS test1.v24;
+DROP VIEW IF EXISTS test1.v23;
+DROP VIEW IF EXISTS test1.v22;
+DROP VIEW IF EXISTS test1.v21;
+DROP VIEW IF EXISTS test1.v20;
+DROP VIEW IF EXISTS test1.v19;
+DROP VIEW IF EXISTS test1.v18;
+DROP VIEW IF EXISTS test1.v17;
+DROP VIEW IF EXISTS test1.v16;
+DROP VIEW IF EXISTS test1.v15;
+DROP VIEW IF EXISTS test1.v14;
+DROP VIEW IF EXISTS test1.v13;
+DROP VIEW IF EXISTS test1.v12;
+DROP VIEW IF EXISTS test1.v11;
+DROP VIEW IF EXISTS test1.v10;
+DROP VIEW IF EXISTS test1.v9;
+DROP VIEW IF EXISTS test1.v8;
+DROP VIEW IF EXISTS test1.v7;
+DROP VIEW IF EXISTS test1.v6;
+DROP VIEW IF EXISTS test1.v5;
+DROP VIEW IF EXISTS test1.v4;
+DROP VIEW IF EXISTS test1.v3;
+DROP VIEW IF EXISTS test1.v2;
+DROP VIEW IF EXISTS test1.v1;
+DROP VIEW IF EXISTS test1.v0;
+DROP DATABASE test3;
+DROP TABLE test1.t1;
+DROP TABLE test2.t1;
+Use test;
+
+Testcase 3.3.2.1
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create View test.v1 AS SELECT f59,f60 FROM tb2 where f59 = 1995 ;
+INSERT INTO test.v1 (f59,f60) values (879,700) ;
+affected rows: 1
+SELECT f59,f60 FROM test.v1 where f59 = 879 and f60 = 700 ;
+f59 f60
+DELETE FROM tb2 where f59 = 879 and f60 = 700 ;
+Drop view test.v1 ;
+
+Testcase 3.3.2.2
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ;
+affected rows: 1
+SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ;
+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
+2005 101 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.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 = 2005 and f60 = 0101 ;
+f59 f60
+2005 101
+DELETE FROM tb2 where f59 = 2005 and f60 = 0101 ;
+Drop view test.v1 ;
+
+Testcase 3.3.2.3
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (780,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105;
+affected rows: 1
+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;
+f59 f60
+8 105
+Drop view test.v1 ;
+
+Testcase 3.3.2.4
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (781,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ;
+affected rows: 4
+info: Rows matched: 4 Changed: 4 Warnings: 0
+SELECT * FROM tb2 where f59 = 891 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
+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
+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;
+f59 f60
+891 105
+891 105
+891 105
+891 105
+Drop view test.v1 ;
+
+Testcase 3.3.2.5
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (789,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 789 ;
+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;
+f59 f60
+Drop view test.v1 ;
+
+Testcase 3.3.2.6
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (711,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 711 ;
+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;
+f59 f60
+Drop view test.v1 ;
+
+Testcase 3.3.2.1 - 3.3.2.6 alternative implementation
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4),
+f4 CHAR, PRIMARY KEY(f1));
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+INSERT INTO v1 SET f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NULL NULL NULL
+DELETE FROM t1;
+INSERT INTO v1 SET f2 = 'ABC';
+INSERT INTO v1 SET f2 = 'ABC';
+ERROR 23000: Duplicate entry '0' for key 1
+SELECT * from t1;
+f1 f2 f3 f4
+0 ABC NULL NULL
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 NNN -0.0012 X
+DELETE FROM t1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f2, f3 FROM t1;
+INSERT INTO v1 SET f2 = 'ABC';
+INSERT INTO v1 SET f2 = 'ABC';
+ERROR 23000: Duplicate entry '0' for key 1
+SELECT * from t1;
+f1 f2 f3 f4
+0 ABC NULL NULL
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f3, 'HELLO' AS my_greeting FROM t1;
+INSERT INTO v1 SET f1 = 1;
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO v1 SET f1 = 1, my_greeting = 'HELLO';
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE f1 = 1;
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE f2 = 'ABC';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE my_greeting = 'HELLO';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 NNN -0.0012 X
+DELETE FROM t1;
+DROP TABLE t1;
+SET sql_mode = 'traditional';
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4) NOT NULL,
+f4 CHAR, PRIMARY KEY(f1));
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f4 FROM t1;
+INSERT INTO v1 SET f1 = 1;
+ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f4 = 'Y' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 Y
+DELETE FROM t1;
+SET sql_mode = '';
+
+Testcases 3.3.2.7 - 3.3.2.9,
+3.3.2.10 - 3.3.2.11 omitted because of missing
+features EXCEPT and INTERSECT
+--------------------------------------------------------------------------------
+INSERT INTO tb2 (f59,f60,f61) VALUES (77,185,126) ;
+INSERT INTO tb2 (f59,f60,f61) VALUES (59,58,54) ;
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+SET @variant1 = 'UNION ';
+SET @variant2 = 'UNION ALL ';
+SET @variant3 = 'UNION DISTINCT ';
+SET @variant4 = 'EXCEPT ';
+SET @variant5 = 'INTERSECT ';
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION DISTINCT SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION ALL SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+
+Testcases 3.3.2.12 - 3.3.2.20
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS test.v1 ;
+Drop view if exists v2 ;
+CREATE TABLE t1 (f59 int, f60 int, f61 int) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+CREATE TABLE t2 (f59 int, f60 int, f61 int) ;
+INSERT INTO t2 VALUES (19,41,32) ;
+INSERT INTO t2 VALUES (59,54,71) ;
+INSERT INTO t2 VALUES (21,91,99) ;
+CREATE VIEW v2 AS SELECT f59, f60, f61 FROM t2 LIMIT 5;
+SET @variant1= 'CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1';
+SET @variant2= 'CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1';
+SET @variant3= 'CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1';
+SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61';
+SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0';
+SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1';
+SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2';
+
+Some server responses suffer from
+Bug#10773 Incorrect message is displayed while updating a view
+--------------------------------------------------------------------------------
+SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)';
+SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1';
+CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1);
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM v2;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+Drop TABLE t1, t2 ;
+Drop VIEW v2 ;
+
+Testcases 3.3.A1
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE TABLE t1 (f1 BIGINT, f2 DATE DEFAULT NULL, f4 CHAR(5),
+report char(10)) ENGINE = memory;
+CREATE VIEW v1 AS SELECT * FROM t1;
+INSERT INTO t1 SET f1 = -1, f4 = 'ABC', report = 't1 0';
+INSERT INTO v1 SET f1 = -1, f4 = 'ABC', report = 'v1 0';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(5) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(5) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5);
+INSERT INTO t1 SET f1 = 0, f4x = 'ABC', report = 't1 1';
+INSERT INTO v1 SET f1 = 0, f4 = 'ABC', report = 'v1 1';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v1 SET f1 = 0, f4x = 'ABC', report = 'v1 1a';
+ERROR 42S22: Unknown column 'f4x' in 'field list'
+INSERT INTO v1 SET f1 = 0, report = 'v1 1b';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4x char(5) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM t1;
+f1 f2 f4x report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5);
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10);
+INSERT INTO t1 SET f1 = 2, f4 = '<-- 10 -->', report = 't1 2';
+INSERT INTO v1 SET f1 = 2, f4 = '<-- 10 -->', report = 'v1 2';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(10) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(10) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 --> t1 2
+2 NULL <-- 10 --> v1 2
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 --> t1 2
+2 NULL <-- 10 --> v1 2
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(8);
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 4
+Warning 1265 Data truncated for column 'f4' at row 5
+INSERT INTO t1 SET f1 = 3, f4 = '<-- 10 -->', report = 't1 3';
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 1
+INSERT INTO v1 SET f1 = 3, f4 = '<-- 10 -->', report = 'v1 3';
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 1
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(8) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(8) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+ALTER TABLE t1 CHANGE COLUMN f4 f4 VARCHAR(20);
+INSERT INTO t1 SET f1 = 4, f4 = '<------ 20 -------->', report = 't1 4';
+INSERT INTO v1 SET f1 = 4, f4 = '<------ 20 -------->', report = 'v1 4';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30);
+INSERT INTO t1 SET f1 = '<------------- 30 ----------->',
+f4 = '<------ 20 -------->', report = 't1 5';
+INSERT INTO v1 SET f1 = '<------------- 30 ----------->',
+f4 = '<------ 20 -------->', report = 'v1 5';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ALTER TABLE t1 DROP COLUMN f2;
+INSERT INTO t1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 't1 6';
+INSERT INTO v1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 'v1 6';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM t1;
+f1 f4 report
+-1 ABC t1 0
+-1 ABC v1 0
+0 ABC t1 1
+2 <-- 10 - t1 2
+2 <-- 10 - v1 2
+3 <-- 10 - t1 3
+3 <-- 10 - v1 3
+4 <------ 20 --------> t1 4
+4 <------ 20 --------> v1 4
+<------------- 30 -----------> <------ 20 --------> t1 5
+<------------- 30 -----------> <------ 20 --------> v1 5
+ABC <------ 20 --------> t1 6
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL;
+INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04',
+f4 = '<------ 20 -------->', report = 't1 7';
+INSERT INTO v1 SET f1 = 'ABC', f2 = '1500-12-04',
+f4 = '<------ 20 -------->', report = 'v1 7';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 date YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2
+-1 ABC t1 0 NULL
+-1 ABC v1 0 NULL
+0 ABC t1 1 NULL
+2 <-- 10 - t1 2 NULL
+2 <-- 10 - v1 2 NULL
+3 <-- 10 - t1 3 NULL
+3 <-- 10 - v1 3 NULL
+4 <------ 20 --------> t1 4 NULL
+4 <------ 20 --------> v1 4 NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL
+ABC <------ 20 --------> t1 6 NULL
+ABC <------ 20 --------> t1 7 1500-12-04
+ABC <------ 20 --------> v1 7 1500-12-04
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC 1500-12-04 <------ 20 --------> t1 7
+ABC 1500-12-04 <------ 20 --------> v1 7
+ALTER TABLE t1 DROP COLUMN f2;
+ALTER TABLE t1 ADD COLUMN f2 FLOAT;
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 't1 8';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 'v1 8';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 float YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 float YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2
+-1 ABC t1 0 NULL
+-1 ABC v1 0 NULL
+0 ABC t1 1 NULL
+2 <-- 10 - t1 2 NULL
+2 <-- 10 - v1 2 NULL
+3 <-- 10 - t1 3 NULL
+3 <-- 10 - v1 3 NULL
+4 <------ 20 --------> t1 4 NULL
+4 <------ 20 --------> v1 4 NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL
+ABC <------ 20 --------> t1 6 NULL
+ABC <------ 20 --------> t1 7 NULL
+ABC <------ 20 --------> v1 7 NULL
+ABC <------ 20 --------> t1 8 -0.00033
+ABC <------ 20 --------> v1 8 -0.00033
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC NULL <------ 20 --------> t1 7
+ABC NULL <------ 20 --------> v1 7
+ABC -0.00033 <------ 20 --------> t1 8
+ABC -0.00033 <------ 20 --------> v1 8
+ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2);
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+f3 = -2.2, f4 = '<------ 20 -------->', report = 't1 9';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f3 = -2.2, f4 = '<------ 20 -------->', report = 'v1 9';
+ERROR 42S22: Unknown column 'f3' in 'field list'
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 'v1 9a';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 float YES NULL
+f3 decimal(7,2) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 float YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2 f3
+-1 ABC t1 0 NULL NULL
+-1 ABC v1 0 NULL NULL
+0 ABC t1 1 NULL NULL
+2 <-- 10 - t1 2 NULL NULL
+2 <-- 10 - v1 2 NULL NULL
+3 <-- 10 - t1 3 NULL NULL
+3 <-- 10 - v1 3 NULL NULL
+4 <------ 20 --------> t1 4 NULL NULL
+4 <------ 20 --------> v1 4 NULL NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL NULL
+ABC <------ 20 --------> t1 6 NULL NULL
+ABC <------ 20 --------> t1 7 NULL NULL
+ABC <------ 20 --------> v1 7 NULL NULL
+ABC <------ 20 --------> t1 8 -0.00033 NULL
+ABC <------ 20 --------> v1 8 -0.00033 NULL
+ABC <------ 20 --------> t1 9 -0.00033 -2.20
+ABC <------ 20 --------> v1 9a -0.00033 NULL
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC NULL <------ 20 --------> t1 7
+ABC NULL <------ 20 --------> v1 7
+ABC -0.00033 <------ 20 --------> t1 8
+ABC -0.00033 <------ 20 --------> v1 8
+ABC -0.00033 <------ 20 --------> t1 9
+ABC -0.00033 <------ 20 --------> v1 9a
+DROP TABLE t1;
+DROP VIEW v1;
+CREATE TABLE t1 (f1 CHAR(10), f2 BIGINT) ENGINE = memory;
+INSERT INTO t1 SET f1 = 'ABC', f2 = 3;
+CREATE VIEW v1 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+f2 bigint(20) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM t1;
+f1 f2
+ABC 3
+SELECT * FROM v1;
+f1 my_sqrt
+ABC 1.7320508075689
+ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30);
+INSERT INTO t1 SET f1 = 'ABC', f2 = 'DEF';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+f2 varchar(30) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM t1;
+f1 f2
+ABC 3
+ABC DEF
+SELECT * FROM v1;
+f1 my_sqrt
+ABC 1.7320508075689
+ABC 0
+SELECT SQRT('DEF');
+SQRT('DEF')
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'DEF'
+CREATE VIEW v2 AS SELECT SQRT('DEF');
+SELECT * FROM v2;
+SQRT('DEF')
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'DEF'
+CREATE OR REPLACE VIEW v2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE v2;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM v2;
+f1 my_sqrt
+ABC 1.7320508075689
+ABC 0
+CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v1;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v2;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t1;
+DROP TABLE t2;
+DROP VIEW v1;
+DROP VIEW v2;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1_1;
+DROP VIEW IF EXISTS v1_2;
+DROP VIEW IF EXISTS v1_firstview;
+DROP VIEW IF EXISTS v1_secondview;
+DROP VIEW IF EXISTS v2;
+DROP DATABASE IF EXISTS test2;
+DROP DATABASE IF EXISTS test3;
+DROP DATABASE IF EXISTS test1;
diff --git a/mysql-test/suite/funcs_1/r/myisam__datadict.result b/mysql-test/suite/funcs_1/r/myisam__datadict.result
new file mode 100644
index 00000000000..f14108d0eb9
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam__datadict.result
@@ -0,0 +1,13066 @@
+
+.
+. It is intended that the 3 <engine>__datadict.test files are named this way to be
+. sure they are - in a *full run* of the suite - the first tests done for each
+. storage engine. Using two _ and the order of processing in mysql-test-run.pl
+. ensures this in an easy way.
+.
+. If needed a restart could be implemented later between the storage engines if
+. values changes in the result depending from the position where the
+. *__datadict.test are started. This can be a result of showing e.g. maximum
+. values of the number of rows of tables.
+.
+. This .result file has been checked OK with Linux 5.0.48,
+. build tree ChangeSet@1.2477.6.3, 2007-07-30
+. except that the not fixed Bug#30020 causes a difference.
+.
+--------------------------------------------------------------------------------
+
+FIXME: There are subtests that are switched off due to known bugs:
+------------------------------------------------------------------
+SELECT 1 AS "have_bug_11589";
+have_bug_11589
+1
+
+There are some statements where the ps-protocol is switched off.
+This may come from the bug listed below, ir from other problems.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+DROP DATABASE IF EXISTS test1;
+CREATE DATABASE test1;
+USE test;
+drop table if exists tb1 ;
+create table tb1 (
+f1 char,
+f2 char binary,
+f3 char ascii,
+f4 tinytext unicode,
+f5 text,
+f6 mediumtext,
+f7 longtext,
+f8 tinyblob,
+f9 blob,
+f10 mediumblob,
+f11 longblob,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal not null DEFAULT 9.9,
+f34 decimal unsigned not null DEFAULT 9.9,
+f35 decimal zerofill not null DEFAULT 9.9,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = myisam;
+Warnings:
+Note 1265 Data truncated for column 'f33' at row 1
+Note 1265 Data truncated for column 'f34' at row 1
+Note 1265 Data truncated for column 'f35' at row 1
+Note 1265 Data truncated for column 'f36' at row 1
+Note 1265 Data truncated for column 'f37' at row 1
+Note 1265 Data truncated for column 'f38' at row 1
+Note 1265 Data truncated for column 'f39' at row 1
+Note 1265 Data truncated for column 'f40' at row 1
+Note 1265 Data truncated for column 'f41' at row 1
+Note 1265 Data truncated for column 'f42' at row 1
+Note 1265 Data truncated for column 'f43' at row 1
+Note 1265 Data truncated for column 'f44' at row 1
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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",
+f110 VARBINARY(64) null,
+f111 VARBINARY(27) null ,
+f112 VARBINARY(64) null ,
+f113 VARBINARY(192) null ,
+f114 VARBINARY(192) ,
+f115 VARBINARY(27) null ,
+f116 VARBINARY(64) null,
+f117 VARBINARY(192) null
+) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+drop table if exists tb4 ;
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f227 VARBINARY(64),
+f228 VARBINARY(27),
+f229 VARBINARY(64),
+f230 VARBINARY(192),
+f231 VARBINARY(192),
+f232 VARBINARY(27),
+f233 VARBINARY(64),
+f234 VARBINARY(192),
+f235 char(255) unicode,
+f236 char(60) ascii,
+f237 char(255) binary,
+f238 varchar(0) binary,
+f239 varbinary(1000),
+f240 varchar(120) unicode,
+f241 char(100) unicode,
+f242 bit(30)
+) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ;
+USE test1;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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",
+f110 VARBINARY(64) null,
+f111 VARBINARY(27) null ,
+f112 VARBINARY(64) null ,
+f113 VARBINARY(192) null ,
+f114 VARBINARY(192) ,
+f115 VARBINARY(27) null ,
+f116 VARBINARY(64) null,
+f117 VARBINARY(192) null
+) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ;
+USE test;
+USE test;
+DROP TABLE IF EXISTS t1, t2, t4, t10, t11;
+CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam;
+CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam;
+CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam;
+CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam;
+CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11;
+drop TABLE if exists t3;
+CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = myisam;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3;
+drop database if exists test4;
+CREATE database test4;
+use test4;
+CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6;
+use test;
+drop TABLE if exists t7, t8;
+CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = myisam;
+CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = myisam;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+drop TABLE if exists t9;
+CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = myisam;
+LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9;
+use information_schema;
+
+root@localhost information_schema
+
+Testcase 3.2.1.1:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE VIEW v1 AS SELECT * FROM information_schema.tables;
+CREATE OR REPLACE VIEW db_datadict.vu1 as
+SELECT grantee AS u
+FROM information_schema.user_privileges;
+CREATE OR REPLACE VIEW db_datadict.vu as
+SELECT DISTINCT u,
+SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 )
+AS server,
+SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3,
+LENGTH( SUBSTRING( u,
+LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 )
+AS Server_Clean
+FROM db_datadict.vu1;
+SELECT * FROM db_datadict.vu order by u;
+u server Server_Clean
+'root'@'127.0.0.1' 127.0.0.1' 127.0.0.1
+'root'@'<SERVER_NAME>' <SERVER_NAME>' <SERVER_NAME>
+'root'@'localhost' localhost' localhost
+CREATE PROCEDURE db_datadict.sp_1()
+BEGIN
+SELECT * FROM db_datadict.v1;
+END//
+USE information_schema;
+SHOW tables;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+select * from schemata ORDER BY 2 DESC, 1 ASC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test4 latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+SELECT * FROM tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME CHARACTER_SETS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATIONS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMNS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMN_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME KEY_COLUMN_USAGE
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME ROUTINES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMATA
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMA_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME STATISTICS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_CONSTRAINTS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TRIGGERS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME USER_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME VIEWS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+SELECT * FROM tables
+WHERE NOT( table_schema = 'information_schema')
+AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME v1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME columns_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Column privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME db
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 2
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME func
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT User defined functions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME host
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Host privileges; Merged with database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME proc
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 1
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Stored Procedures
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME procs_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Procedure privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME tables_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Table privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 5
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT 6
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_leap_second
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 22
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Leap seconds information for time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_name
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 6
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone names
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 393
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transitions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition_type
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 31
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transition types
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME user
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 3
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Users and global privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t1
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t10
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t11
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t2
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t3
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t4
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t7
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t8
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t9
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb1
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb3
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb4
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test1
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test4
+TABLE_NAME t6
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from schemata s inner join tables t
+ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+catalog_name schema_name default_character_set_name table_type engine
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+select * from columns;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL db_datadict v1 TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references
+NULL db_datadict v1 TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select,insert,update,references
+NULL db_datadict v1 TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL db_datadict v1 TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
+NULL db_datadict v1 CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references
+NULL db_datadict v1 CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select,insert,update,references
+NULL db_datadict v1 TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select,insert,update,references
+NULL db_datadict vu u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references
+NULL db_datadict vu server 2 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references
+NULL db_datadict vu Server_Clean 3 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references
+NULL db_datadict vu1 u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references
+NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
+NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
+NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
+NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
+NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
+NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
+NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
+NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
+NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references
+NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
+NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
+NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references
+NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
+NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
+NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
+NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
+NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
+NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references
+NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references
+NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references
+NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references
+NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references
+NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references
+NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test1 tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test1 tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test1 tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test1 tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test1 tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test1 tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test1 tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test1 tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select * from character_sets;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+latin1 latin1_swedish_ci cp1252 West European 1
+latin2 latin2_general_ci ISO 8859-2 Central European 1
+swe7 swe7_swedish_ci 7bit Swedish 1
+ascii ascii_general_ci US ASCII 1
+ujis ujis_japanese_ci EUC-JP Japanese 3
+sjis sjis_japanese_ci Shift-JIS Japanese 2
+hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
+tis620 tis620_thai_ci TIS620 Thai 1
+euckr euckr_korean_ci EUC-KR Korean 2
+koi8u koi8u_general_ci KOI8-U Ukrainian 1
+gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
+greek greek_general_ci ISO 8859-7 Greek 1
+cp1250 cp1250_general_ci Windows Central European 1
+gbk gbk_chinese_ci GBK Simplified Chinese 2
+latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
+armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
+utf8 utf8_general_ci UTF-8 Unicode 3
+ucs2 ucs2_general_ci UCS-2 Unicode 2
+cp866 cp866_general_ci DOS Russian 1
+keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
+macce macce_general_ci Mac Central European 1
+macroman macroman_general_ci Mac West European 1
+cp852 cp852_general_ci DOS Central European 1
+latin7 latin7_general_ci ISO 8859-13 Baltic 1
+cp1251 cp1251_general_ci Windows Cyrillic 1
+cp1256 cp1256_general_ci Windows Arabic 1
+cp1257 cp1257_general_ci Windows Baltic 1
+binary binary Binary pseudo charset 1
+geostd8 geostd8_general_ci GEOSTD8 Georgian 1
+cp932 cp932_japanese_ci SJIS for Windows Japanese 2
+eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
+select sum(id) from collations;
+sum(id)
+10741
+select collation_name, character_set_name into @x,@y
+from collation_character_set_applicability limit 1;
+select @x, @y;
+@x @y
+big5_chinese_ci big5
+select * from routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+select count(*) from routines;
+count(*)
+1
+select * from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 3 type A 1 NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 0 NULL NULL BTREE
+NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE
+NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE
+NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE
+select * from views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER
+NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER
+select * from user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select * from schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+select * from table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from column_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+NULL mysql PRIMARY mysql help_keyword PRIMARY KEY
+NULL mysql name mysql help_keyword UNIQUE
+NULL mysql PRIMARY mysql help_relation PRIMARY KEY
+NULL mysql PRIMARY mysql help_topic PRIMARY KEY
+NULL mysql name mysql help_topic UNIQUE
+NULL mysql PRIMARY mysql host PRIMARY KEY
+NULL mysql PRIMARY mysql proc PRIMARY KEY
+NULL mysql PRIMARY mysql procs_priv PRIMARY KEY
+NULL mysql PRIMARY mysql tables_priv PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY
+NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY
+NULL mysql PRIMARY mysql user PRIMARY KEY
+select * from key_column_usage;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL
+select count(*) as max_recs from key_column_usage;
+max_recs
+40
+select max(cardinality) from statistics
+where not (table_schema = 'mysql' and table_name like 'help_%');
+max(cardinality)
+393
+select concat("View '",
+table_name, "' is associated with the database '", table_schema, "'.")
+AS "Who is Who for the Views"
+ from views;
+Who is Who for the Views
+View 'v1' is associated with the database 'db_datadict'.
+View 'vu' is associated with the database 'db_datadict'.
+View 'vu1' is associated with the database 'db_datadict'.
+select concat("Table or view '", table_name,
+"' is associated with the database '", table_schema, "'.") as "Who is Who"
+ from tables;
+Who is Who
+Table or view 'CHARACTER_SETS' is associated with the database 'information_schema'.
+Table or view 'COLLATIONS' is associated with the database 'information_schema'.
+Table or view 'COLLATION_CHARACTER_SET_APPLICABILITY' is associated with the database 'information_schema'.
+Table or view 'COLUMNS' is associated with the database 'information_schema'.
+Table or view 'COLUMN_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'KEY_COLUMN_USAGE' is associated with the database 'information_schema'.
+Table or view 'ROUTINES' is associated with the database 'information_schema'.
+Table or view 'SCHEMATA' is associated with the database 'information_schema'.
+Table or view 'SCHEMA_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'STATISTICS' is associated with the database 'information_schema'.
+Table or view 'TABLES' is associated with the database 'information_schema'.
+Table or view 'TABLE_CONSTRAINTS' is associated with the database 'information_schema'.
+Table or view 'TABLE_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'TRIGGERS' is associated with the database 'information_schema'.
+Table or view 'USER_PRIVILEGES' is associated with the database 'information_schema'.
+Table or view 'VIEWS' is associated with the database 'information_schema'.
+Table or view 'v1' is associated with the database 'db_datadict'.
+Table or view 'vu' is associated with the database 'db_datadict'.
+Table or view 'vu1' is associated with the database 'db_datadict'.
+Table or view 'columns_priv' is associated with the database 'mysql'.
+Table or view 'db' is associated with the database 'mysql'.
+Table or view 'func' is associated with the database 'mysql'.
+Table or view 'help_category' is associated with the database 'mysql'.
+Table or view 'help_keyword' is associated with the database 'mysql'.
+Table or view 'help_relation' is associated with the database 'mysql'.
+Table or view 'help_topic' is associated with the database 'mysql'.
+Table or view 'host' is associated with the database 'mysql'.
+Table or view 'proc' is associated with the database 'mysql'.
+Table or view 'procs_priv' is associated with the database 'mysql'.
+Table or view 'tables_priv' is associated with the database 'mysql'.
+Table or view 'time_zone' is associated with the database 'mysql'.
+Table or view 'time_zone_leap_second' is associated with the database 'mysql'.
+Table or view 'time_zone_name' is associated with the database 'mysql'.
+Table or view 'time_zone_transition' is associated with the database 'mysql'.
+Table or view 'time_zone_transition_type' is associated with the database 'mysql'.
+Table or view 'user' is associated with the database 'mysql'.
+Table or view 't1' is associated with the database 'test'.
+Table or view 't10' is associated with the database 'test'.
+Table or view 't11' is associated with the database 'test'.
+Table or view 't2' is associated with the database 'test'.
+Table or view 't3' is associated with the database 'test'.
+Table or view 't4' is associated with the database 'test'.
+Table or view 't7' is associated with the database 'test'.
+Table or view 't8' is associated with the database 'test'.
+Table or view 't9' is associated with the database 'test'.
+Table or view 'tb1' is associated with the database 'test'.
+Table or view 'tb2' is associated with the database 'test'.
+Table or view 'tb3' is associated with the database 'test'.
+Table or view 'tb4' is associated with the database 'test'.
+Table or view 'tb2' is associated with the database 'test1'.
+Table or view 't6' is associated with the database 'test4'.
+select grantee as "user's having select privilege",
+substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+from user_privileges where privilege_type = 'select'
+ order by grantee;
+user's having select privilege substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
+'root'@'127.0.0.1' '127.0.0.1'
+'root'@'<SERVER_NAME>' '<SERVER_NAME>'
+'root'@'localhost' 'localhost'
+select all table_schema from schema_privileges limit 0,5;
+table_schema
+test
+test
+test
+test
+test
+select distinct(privilege_type) from table_privileges;
+privilege_type
+select * from column_privileges
+group by table_schema having table_schema = 'db_datadict';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from table_constraints limit 0,5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select count(*) as max_recs from key_column_usage limit 0,5;
+max_recs
+40
+select information_schema.tables.table_name as "table name",
+count(distinct(column_name)) as "no of columns in the table"
+ from information_schema.tables left outer join information_schema.columns on
+information_schema.tables.table_name = information_schema.columns.table_name
+group by information_schema.tables.table_name;
+table name no of columns in the table
+CHARACTER_SETS 4
+COLLATIONS 6
+COLLATION_CHARACTER_SET_APPLICABILITY 2
+COLUMNS 19
+columns_priv 7
+COLUMN_PRIVILEGES 7
+db 20
+func 4
+help_category 4
+help_keyword 2
+help_relation 2
+help_topic 6
+host 19
+KEY_COLUMN_USAGE 12
+proc 16
+procs_priv 8
+ROUTINES 20
+SCHEMATA 5
+SCHEMA_PRIVILEGES 5
+STATISTICS 15
+t1 6
+t10 6
+t11 6
+t2 6
+t3 3
+t4 6
+t6 6
+t7 4
+t8 4
+t9 3
+TABLES 21
+tables_priv 8
+TABLE_CONSTRAINTS 6
+TABLE_PRIVILEGES 6
+tb1 58
+tb2 59
+tb3 58
+tb4 67
+time_zone 2
+time_zone_leap_second 2
+time_zone_name 2
+time_zone_transition 3
+time_zone_transition_type 5
+TRIGGERS 19
+user 37
+USER_PRIVILEGES 4
+v1 21
+VIEWS 8
+vu 3
+vu1 1
+
+root: simple select to check all - and never forget some - tables
+-----------------------------------------------------------------
+SELECT * FROM schemata LIMIT 1;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+SELECT * FROM tables LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL utf8_general_ci NULL #CO#
+SELECT * FROM columns LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+SELECT * FROM character_sets LIMIT 1;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+SELECT * FROM collations LIMIT 1;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+SELECT * FROM collation_character_set_applicability LIMIT 1;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+SELECT * FROM routines LIMIT 1;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER <Created> <Last_Altered> root@localhost
+SELECT * FROM statistics LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+SELECT * FROM views LIMIT 1;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+SELECT * FROM user_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'localhost' NULL SELECT YES
+SELECT * FROM schema_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+SELECT * FROM table_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM column_privileges LIMIT 1;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM table_constraints LIMIT 1;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+SELECT * FROM key_column_usage LIMIT 1;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+SELECT * FROM triggers LIMIT 1;
+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
+SELECT * FROM parameters LIMIT 1;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+SELECT * FROM referential_constraints LIMIT 1;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+use db_datadict;
+select * from schemata;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+select * from tables;
+ERROR 42S02: Table 'db_datadict.tables' doesn't exist
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from schemata s inner join tables t
+ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+select * from columns limit 0, 5;
+ERROR 42S02: Table 'db_datadict.columns' doesn't exist
+select * from character_sets limit 0, 5;
+ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist
+select * from collations limit 0, 5;
+ERROR 42S02: Table 'db_datadict.collations' doesn't exist
+select * from collation_character_set_applicability limit 0, 5;
+ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist
+select * from routines limit 0, 5;
+ERROR 42S02: Table 'db_datadict.routines' doesn't exist
+select * from statistics limit 0, 5;
+ERROR 42S02: Table 'db_datadict.statistics' doesn't exist
+select * from views limit 0, 5;
+ERROR 42S02: Table 'db_datadict.views' doesn't exist
+select * from user_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist
+select * from schema_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist
+select * from table_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist
+select * from column_privileges limit 0, 5;
+ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist
+select * from table_constraints limit 0, 5;
+ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist
+select * from key_column_usage limit 0, 5;
+ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist
+
+will fail due to missing database name
+--------------------------------------
+
+known error 1146:
+-----------------
+SELECT * FROM schemata ;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT * FROM tables ;
+ERROR 42S02: Table 'db_datadict.tables' doesn't exist
+SELECT * FROM columns ;
+ERROR 42S02: Table 'db_datadict.columns' doesn't exist
+SELECT * FROM character_sets ;
+ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist
+SELECT * FROM collations ;
+ERROR 42S02: Table 'db_datadict.collations' doesn't exist
+SELECT * FROM collation_character_set_applicability ;
+ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist
+SELECT * FROM routines ;
+ERROR 42S02: Table 'db_datadict.routines' doesn't exist
+SELECT * FROM statistics ;
+ERROR 42S02: Table 'db_datadict.statistics' doesn't exist
+SELECT * FROM views ;
+ERROR 42S02: Table 'db_datadict.views' doesn't exist
+SELECT * FROM user_privileges ;
+ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist
+SELECT * FROM schema_privileges ;
+ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist
+SELECT * FROM table_privileges ;
+ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist
+SELECT * FROM column_privileges ;
+ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist
+SELECT * FROM table_constraints ;
+ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist
+SELECT * FROM key_column_usage ;
+ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist
+SELECT * FROM triggers ;
+ERROR 42S02: Table 'db_datadict.triggers' doesn't exist
+select * from information_schema.schemata ORDER BY 2 DESC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test4 latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME CHARACTER_SETS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATIONS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMNS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME COLUMN_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME KEY_COLUMN_USAGE
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME ROUTINES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMATA
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME SCHEMA_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME STATISTICS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_CONSTRAINTS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TABLE_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME TRIGGERS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME USER_PRIVILEGES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 0
+ROW_FORMAT Fixed
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
+TABLE_NAME VIEWS
+TABLE_TYPE SYSTEM VIEW
+ENGINE MyISAM
+VERSION 0
+ROW_FORMAT Dynamic
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema')
+AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME v1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA db_datadict
+TABLE_NAME vu1
+TABLE_TYPE VIEW
+ENGINE NULL
+VERSION NULL
+ROW_FORMAT NULL
+TABLE_ROWS NULL
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION NULL
+CHECKSUM NULL
+CREATE_OPTIONS NULL
+TABLE_COMMENT VIEW
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME columns_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Column privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME db
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 2
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME func
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT User defined functions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME host
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Host privileges; Merged with database privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME proc
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 1
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Stored Procedures
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME procs_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Procedure privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME tables_priv
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 0
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Table privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 5
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT 6
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_leap_second
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 22
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Leap seconds information for time zones
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_name
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 6
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone names
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 393
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transitions
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME time_zone_transition_type
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 31
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Time zone transition types
+TABLE_CATALOG NULL
+TABLE_SCHEMA mysql
+TABLE_NAME user
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 3
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION utf8_bin
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT Users and global privileges
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t1
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t10
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t11
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t2
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t3
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t4
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t7
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t8
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME t9
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb1
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb3
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test
+TABLE_NAME tb4
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test1
+TABLE_NAME tb2
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Dynamic
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+TABLE_CATALOG NULL
+TABLE_SCHEMA test4
+TABLE_NAME t6
+TABLE_TYPE BASE TABLE
+ENGINE MyISAM
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS 10
+AVG_ROW_LENGTH #ARL#
+DATA_LENGTH #DL#
+MAX_DATA_LENGTH #MDL#
+INDEX_LENGTH #IL#
+DATA_FREE #DF#
+AUTO_INCREMENT NULL
+CREATE_TIME YYYY-MM-DD hh:mm:ss
+UPDATE_TIME YYYY-MM-DD hh:mm:ss
+CHECK_TIME YYYY-MM-DD hh:mm:ss
+TABLE_COLLATION latin1_swedish_ci
+CHECKSUM NULL
+CREATE_OPTIONS
+TABLE_COMMENT
+select s.catalog_name, s.schema_name, s.default_character_set_name,
+t.table_type, t.engine
+from information_schema.schemata s inner join information_schema.tables t
+ORDER BY s.schema_name, s.default_character_set_name, table_type, engine;
+catalog_name schema_name default_character_set_name table_type engine
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 BASE TABLE MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MEMORY
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 SYSTEM VIEW MyISAM
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL db_datadict latin1 VIEW NULL
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 BASE TABLE MyISAM
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MEMORY
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 SYSTEM VIEW MyISAM
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL information_schema utf8 VIEW NULL
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 BASE TABLE MyISAM
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MEMORY
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 SYSTEM VIEW MyISAM
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL mysql latin1 VIEW NULL
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 BASE TABLE MyISAM
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MEMORY
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 SYSTEM VIEW MyISAM
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test latin1 VIEW NULL
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 BASE TABLE MyISAM
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MEMORY
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 SYSTEM VIEW MyISAM
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test1 latin1 VIEW NULL
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 BASE TABLE MyISAM
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MEMORY
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 SYSTEM VIEW MyISAM
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+NULL test4 latin1 VIEW NULL
+select * from information_schema.columns limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+select * from information_schema.character_sets limit 0, 5;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+select * from information_schema.collations limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+big5_bin big5 84 Yes 1
+dec8_swedish_ci dec8 3 Yes 0
+dec8_bin dec8 69 0
+cp850_general_ci cp850 4 Yes 0
+select * from information_schema.collation_character_set_applicability limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+select * from information_schema.routines limit 0, 5;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN
+SELECT * FROM db_datadict.v1;
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+select * from information_schema.statistics limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+select * from information_schema.views limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER
+NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER
+NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER
+select * from information_schema.user_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL UPDATE YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL CREATE YES
+select * from information_schema.schema_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+select * from information_schema.table_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.column_privileges limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from information_schema.table_constraints limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql PRIMARY mysql db PRIMARY KEY
+NULL mysql PRIMARY mysql func PRIMARY KEY
+NULL mysql PRIMARY mysql help_category PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select * from information_schema.key_column_usage limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+select count(*) as max_recs from information_schema.key_column_usage limit 0, 5;
+max_recs
+40
+
+root: check with db name
+------------------------
+SELECT COUNT(*) FROM information_schema. schemata ;
+COUNT(*)
+6
+SELECT COUNT(*) FROM information_schema. tables ;
+COUNT(*)
+51
+SELECT COUNT(*) FROM information_schema. columns ;
+COUNT(*)
+682
+SELECT COUNT(*) FROM information_schema. character_sets ;
+COUNT(*)
+36
+SELECT COUNT(*) FROM information_schema. collations ;
+COUNT(*)
+126
+SELECT COUNT(*) FROM information_schema. collation_character_set_applicability ;
+COUNT(*)
+126
+SELECT COUNT(*) FROM information_schema. routines ;
+COUNT(*)
+1
+SELECT COUNT(*) FROM information_schema. statistics ;
+COUNT(*)
+43
+SELECT COUNT(*) FROM information_schema. views ;
+COUNT(*)
+3
+SELECT COUNT(*) FROM information_schema. user_privileges ;
+COUNT(*)
+75
+SELECT COUNT(*) FROM information_schema. schema_privileges ;
+COUNT(*)
+28
+SELECT COUNT(*) FROM information_schema. table_privileges ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. column_privileges ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. table_constraints ;
+COUNT(*)
+20
+SELECT COUNT(*) FROM information_schema. key_column_usage ;
+COUNT(*)
+40
+SELECT COUNT(*) FROM information_schema. triggers ;
+COUNT(*)
+0
+SELECT COUNT(*) FROM information_schema. parameters ;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+SELECT COUNT(*) FROM information_schema. referential_constraints ;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+USE db_datadict;
+DROP VIEW v1, vu1, vu;
+DROP PROCEDURE db_datadict.sp_1;
+USE information_schema;
+
+Testcase 3.2.1.2:
+--------------------------------------------------------------------------------
+select catalog_name, schema_name, default_character_set_name
+from schemata where schema_name like '%s%';
+catalog_name schema_name default_character_set_name
+NULL information_schema utf8
+NULL mysql latin1
+NULL test latin1
+NULL test1 latin1
+NULL test4 latin1
+select count(*) as tot_tabs from tables;
+tot_tabs
+48
+select count(*) as the_cols from columns;
+the_cols
+657
+select max(maxlen) as the_max from character_sets;
+the_max
+3
+select * from collations order by id asc limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+latin2_czech_cs latin2 2 Yes 4
+dec8_swedish_ci dec8 3 Yes 0
+cp850_general_ci cp850 4 Yes 0
+latin1_german1_ci latin1 5 Yes 1
+select * from collation_character_set_applicability
+order by character_set_name desc, collation_name limit 0, 5;
+COLLATION_NAME CHARACTER_SET_NAME
+utf8_bin utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_esperanto_ci utf8
+utf8_estonian_ci utf8
+select routine_definition from routines;
+routine_definition
+select * from statistics where table_name not like 'help_%'
+group by index_name asc limit 0, 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
+from views;
+view_info
+select concat(table_schema, ', ', table_name) "Table_info"
+ from tables ORDER BY 1;
+Table_info
+information_schema, CHARACTER_SETS
+information_schema, COLLATIONS
+information_schema, COLLATION_CHARACTER_SET_APPLICABILITY
+information_schema, COLUMNS
+information_schema, COLUMN_PRIVILEGES
+information_schema, KEY_COLUMN_USAGE
+information_schema, ROUTINES
+information_schema, SCHEMATA
+information_schema, SCHEMA_PRIVILEGES
+information_schema, STATISTICS
+information_schema, TABLES
+information_schema, TABLE_CONSTRAINTS
+information_schema, TABLE_PRIVILEGES
+information_schema, TRIGGERS
+information_schema, USER_PRIVILEGES
+information_schema, VIEWS
+mysql, columns_priv
+mysql, db
+mysql, func
+mysql, help_category
+mysql, help_keyword
+mysql, help_relation
+mysql, help_topic
+mysql, host
+mysql, proc
+mysql, procs_priv
+mysql, tables_priv
+mysql, time_zone
+mysql, time_zone_leap_second
+mysql, time_zone_name
+mysql, time_zone_transition
+mysql, time_zone_transition_type
+mysql, user
+test, t1
+test, t10
+test, t11
+test, t2
+test, t3
+test, t4
+test, t7
+test, t8
+test, t9
+test, tb1
+test, tb2
+test, tb3
+test, tb4
+test1, tb2
+test4, t6
+select distinct grantee from user_privileges order by grantee, privilege_type;
+grantee
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+select * from schema_privileges where table_catalog is null limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+select * from table_privileges where grantee like '%r%' limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select * from column_privileges where table_catalog is not null limit 0, 5;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select HIGH_PRIORITY * from table_constraints
+group by constraint_name desc limit 0, 5;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL mysql PRIMARY mysql columns_priv PRIMARY KEY
+NULL mysql name mysql help_category UNIQUE
+select sum(ordinal_position) from key_column_usage;
+sum(ordinal_position)
+77
+select * from schemata limit 0,5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+select * from schemata limit 0,5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL mysql latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+NULL test1 latin1 latin1_swedish_ci NULL
+select distinct grantee from user_privileges;
+grantee
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+select all grantee from user_privileges order by grantee, privilege_type;
+grantee
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'127.0.0.1'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'<SERVER_NAME>'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+'root'@'localhost'
+select id , character_set_name from collations order by id asc limit 10;
+id character_set_name
+1 big5
+2 latin2
+3 dec8
+4 cp850
+5 latin1
+6 hp8
+7 koi8r
+8 latin1
+9 latin2
+10 swe7
+select table_catalog from columns
+union all
+select table_catalog from tables limit 0,5;
+table_catalog
+NULL
+NULL
+NULL
+NULL
+NULL
+select table_catalog from columns
+union
+select table_catalog from tables limit 0,5;
+table_catalog
+NULL
+select all schema_name from information_schema.schemata;
+schema_name
+information_schema
+db_datadict
+mysql
+test
+test1
+test4
+SELECT *
+INTO OUTFILE '../tmp/out.myisam.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+USE test;
+SELECT *
+INTO OUTFILE '../tmp/out.myisam.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CREATE USER user_3212@localhost;
+GRANT ALL ON db_datadict.* TO user_3212@localhost;
+GRANT FILE ON *.* TO user_3212@localhost;
+connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+user_3212@localhost db_datadict
+SELECT *
+INTO OUTFILE '../tmp/out.myisam.user.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT *
+FROM schemata LIMIT 0, 5;
+ERROR 42S02: Table 'db_datadict.schemata' doesn't exist
+SELECT *
+INTO OUTFILE '../tmp/out.myisam.user.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+SELECT *
+FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+USE information_schema;
+SELECT *
+INTO OUTFILE '../tmp/out.myisam.user_2.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM schemata LIMIT 0, 5;
+SELECT *
+FROM schemata LIMIT 0, 5;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+SELECT *
+INTO OUTFILE '../tmp/out.myisam.user_2.db.file'
+ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+ LINES TERMINATED BY '\n'
+ FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+SELECT *
+FROM information_schema.schemata
+WHERE schema_name LIKE 'db_%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+USE information_schema;
+
+root@localhost information_schema
+use db_datadict;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from information_schema.columns
+union
+select table_catalog, table_schema, table_name,
+concat( "*** type = ", table_type )
+from information_schema.tables
+order by 3, 4 desc, 1, 2 limit 30;
+1 2 3 4
+NULL information_schema CHARACTER_SETS MAXLEN
+NULL information_schema CHARACTER_SETS DESCRIPTION
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME
+NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW
+NULL information_schema COLLATIONS SORTLEN
+NULL information_schema COLLATIONS IS_DEFAULT
+NULL information_schema COLLATIONS IS_COMPILED
+NULL information_schema COLLATIONS ID
+NULL information_schema COLLATIONS COLLATION_NAME
+NULL information_schema COLLATIONS CHARACTER_SET_NAME
+NULL information_schema COLLATIONS *** type = SYSTEM VIEW
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW
+NULL information_schema COLUMNS TABLE_SCHEMA
+NULL information_schema COLUMNS TABLE_NAME
+NULL information_schema COLUMNS TABLE_CATALOG
+NULL information_schema COLUMNS PRIVILEGES
+NULL information_schema COLUMNS ORDINAL_POSITION
+NULL information_schema COLUMNS NUMERIC_SCALE
+NULL information_schema COLUMNS NUMERIC_PRECISION
+NULL information_schema COLUMNS IS_NULLABLE
+NULL information_schema COLUMNS EXTRA
+NULL information_schema COLUMNS DATA_TYPE
+NULL information_schema COLUMNS COLUMN_TYPE
+NULL information_schema COLUMNS COLUMN_NAME
+NULL information_schema COLUMNS COLUMN_KEY
+NULL information_schema COLUMNS COLUMN_DEFAULT
+NULL information_schema COLUMNS COLUMN_COMMENT
+use information_schema;
+select table_catalog "1", table_schema "2", table_name "3", column_name "4"
+ from columns
+union
+select table_catalog, table_schema, table_name,
+concat( "*** type = ", table_type )
+from tables
+order by 3, 4 desc, 1, 2 limit 30;
+1 2 3 4
+NULL information_schema CHARACTER_SETS MAXLEN
+NULL information_schema CHARACTER_SETS DESCRIPTION
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME
+NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW
+NULL information_schema COLLATIONS SORTLEN
+NULL information_schema COLLATIONS IS_DEFAULT
+NULL information_schema COLLATIONS IS_COMPILED
+NULL information_schema COLLATIONS ID
+NULL information_schema COLLATIONS COLLATION_NAME
+NULL information_schema COLLATIONS CHARACTER_SET_NAME
+NULL information_schema COLLATIONS *** type = SYSTEM VIEW
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW
+NULL information_schema COLUMNS TABLE_SCHEMA
+NULL information_schema COLUMNS TABLE_NAME
+NULL information_schema COLUMNS TABLE_CATALOG
+NULL information_schema COLUMNS PRIVILEGES
+NULL information_schema COLUMNS ORDINAL_POSITION
+NULL information_schema COLUMNS NUMERIC_SCALE
+NULL information_schema COLUMNS NUMERIC_PRECISION
+NULL information_schema COLUMNS IS_NULLABLE
+NULL information_schema COLUMNS EXTRA
+NULL information_schema COLUMNS DATA_TYPE
+NULL information_schema COLUMNS COLUMN_TYPE
+NULL information_schema COLUMNS COLUMN_NAME
+NULL information_schema COLUMNS COLUMN_KEY
+NULL information_schema COLUMNS COLUMN_DEFAULT
+NULL information_schema COLUMNS COLUMN_COMMENT
+DROP USER user_3212@localhost;
+
+Testcase 3.2.1.3:
+--------------------------------------------------------------------------------
+insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path)
+values ('null', 'db1', 'latin1', 'null');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into tables (table_schema, table_name)values('db_datadict', 't1');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into columns (table_name, column_name)values('t3', 'f2');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into character_sets (character_set_name, default_collate_name, description, maxlen)
+values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen)
+values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into collation_character_set_applicability (collation_name, character_set_name)
+values (' big5_chinese_ci', 'big6');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into routines(routine_name, routine_type ) values ('p2', 'procedure');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into statistics(table_schema, table_name, index_name)
+values ('mysql', 'db', 'primary');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into views(table_schema, table_name) values ('db2', 'v2');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into table_privileges (able_schema, table_name, privilege_type)
+values('db2', 'v2', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into column_privileges (table_name, column_name, privilege_type)
+values ('t3', 'f3', 'insert');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+values ('primary', 'mysql', 'user');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+insert into key_column_usage (constraint_schema, constraint_name, table_name)
+values ('mysql', 'primary', 'db');
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_3;
+create procedure db_datadict.sp_4_1_3()
+begin
+insert into information_schema.schema_privileges (table_schema,privilege_type)
+values('db2','insert');
+end//
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+WHERE table_schema LIKE 'db%';
+table_schema privilege_type
+call db_datadict.sp_4_1_3();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SELECT table_schema, privilege_type FROM information_schema.schema_privileges
+WHERE table_schema LIKE 'db%';
+table_schema privilege_type
+drop procedure db_datadict.sp_4_1_3;
+CREATE USER user_4_1_3@localhost;
+connect(localhost,user_4_1_3,,test,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_3@localhost test
+use information_schema;
+insert into table_constraints ( constraint_schema, constraint_name, table_schema)
+values ('primary', 'mysql', 'user');
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+
+Testcase 3.2.1.4:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root@localhost information_schema
+update schemata set schema_name = 'db5' where default_character_set_name = 'latin1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update tables set table_schema = 'db_datadict1' where table_name = 't1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update character_sets set character_set_name = 'cp1252' where maxlen = 1;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update collations set collation_name = 'cp1253_bin'
+ where character_set_name = 'cp1251';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update collation_character_set_applicability set collation_name = 'big6_chinese_ci'
+ where character_set_name = 'big6';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update routines set routine_name = p2 where routine_body = 'sql';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update statistics set table_schema = 'mysql1' where table_name = 'db';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update views set table_schema = 'db3' where table_name = 'v1';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update schema_privileges set table_schema = 'db2' where privilege_type = 'select';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update table_privileges set table_name = 'v3' where privilege_type = 'select';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update column_privileges set table_name = 't4' where column_name = 'f3';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update table_constraints set constraint_schema = 'primary'
+ where table_schema = 'proc';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+update key_column_usage set table_name = 'db1' where constraint_name = 'primary';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_4;
+create procedure db_datadict.sp_4_1_4()
+begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end//
+select * from information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+call db_datadict.sp_4_1_4();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+select * from information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin
+update information_schema.routines set routine_name = 'p2'
+ where routine_name = 'sp_4_1_4';
+end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+drop procedure db_datadict.sp_4_1_4;
+use information_schema;
+
+user_4_1_3@localhost information_schema
+update user_privileges set privilege_type = 'insert' where is_grantable = 'yes';
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+
+Testcase 3.2.1.5:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: DELETE FROM any table in IS
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DELETE FROM schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from schemata where schema_name = 'mysql';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from tables where table_name = 'abc';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from columns;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from character_sets;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from collations;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from collation_character_set_applicability;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from routines;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from statistics;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from views;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from user_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from schema_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from table_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from column_privileges;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from table_constraints;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+delete from key_column_usage;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure if exists db_datadict.sp_4_1_5;
+create procedure db_datadict.sp_4_1_5()
+begin
+delete from information_schema.column_privileges;
+end//
+call db_datadict.sp_4_1_5();
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+drop procedure db_datadict.sp_4_1_5;
+use information_schema;
+
+user_4_1_3@localhost information_schema
+delete from tables where table_name = 'abc';
+ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_3@localhost;
+
+Testcase 3.2.1.6:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: create a table with a name of an IS table directly in IS
+--------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE schemata ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE tables ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE columns ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE collations ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE routines ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE statistics ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE views ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE triggers ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create table t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use db_datadict;
+
+root: create a table with a name of an IS table from other db
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE information_schema. schemata ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. tables ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. columns ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collations ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. routines ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. statistics ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. views ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. triggers ( c1 INT );
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+CREATE USER user_4_1_6@localhost;
+grant all on *.* to user_4_1_6@localhost;
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR user_4_1_6@localhost;
+Grants for user_4_1_6@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'user_4_1_6'@'localhost'
+connect(localhost,user_4_1_6,,information_schema,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_6@localhost information_schema
+use information_schema;
+
+user: create a table with a name of an IS table directly in IS
+--------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE schemata ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE tables ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE columns ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE collations ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE routines ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE statistics ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE views ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE triggers ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+create table t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+use test;
+
+user: create a table with a name of an IS table from other db
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE TABLE information_schema. schemata ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. tables ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. columns ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. character_sets ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collations ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. routines ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. statistics ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. views ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. user_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. schema_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. column_privileges ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. table_constraints ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. key_column_usage ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+CREATE TABLE information_schema. triggers ( c1 INT );
+ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema'
+create table information_schema.t1 (f1 int, f2 int, f3 int);
+ERROR 42S02: Unknown table 't1' in information_schema
+
+root@localhost db_datadict
+DROP USER user_4_1_6@localhost;
+
+Testcase 3.2.1.7:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: create a view with a name of an IS table directly in IS
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW schemata AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW tables AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW columns AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW character_sets AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW collations AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW collation_character_set_applicability AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW routines AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW statistics AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW views AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW user_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW schema_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW table_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW column_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW table_constraints AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW key_column_usage AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW triggers AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW v1 AS SELECT * FROM information_schema.schemata;
+ERROR 42S02: Unknown table 'v1' in information_schema
+USE db_datadict;
+
+root: create a view with a name of an IS table from other db
+------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW information_schema. schemata AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. tables AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. columns AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. character_sets AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collations AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. routines AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. statistics AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. views AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. user_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. schema_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. column_privileges AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_constraints AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. key_column_usage AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. triggers AS SELECT * FROM mysql.time_zone;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE VIEW v1 AS SELECT * FROM information_schema.columns;
+SELECT * FROM v1 LIMIT 5;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+CREATE USER user_4_1_7@localhost;
+GRANT ALL ON db_datadict.* TO user_4_1_7@localhost;
+GRANT ALL ON information_schema.* TO user_4_1_7@localhost;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_7,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_7@localhost information_schema
+
+user: create a view with a name of an IS table directly in IS
+-------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW schemata AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW tables AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW columns AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW character_sets AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW collations AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW collation_character_set_applicability AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW routines AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW statistics AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW views AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW user_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW schema_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW table_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW column_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW table_constraints AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW key_column_usage AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW triggers AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+create view v1 as select * from table_privileges;
+ERROR 42S02: Unknown table 'v1' in information_schema
+use db_datadict;
+
+user: create a view with a name of an IS table from other db
+------------------------------------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+CREATE VIEW information_schema. schemata AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. tables AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. columns AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. character_sets AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collations AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. routines AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. statistics AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. views AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. user_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. schema_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. column_privileges AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. table_constraints AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. key_column_usage AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+CREATE VIEW information_schema. triggers AS SELECT * FROM db_datadict.v1;
+ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema'
+
+root@localhost db_datadict
+DROP USER user_4_1_7@localhost;
+DROP VIEW db_datadict.v1;
+
+Testcase 3.2.1.8:
+--------------------------------------------------------------------------------
+use information_schema;
+create index i1 on schemata(schema_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i2 on tables(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i3 on columns(table_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i4 on character_sets(character_set_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i6 on collation_character_set_applicability(collation_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i7 on routines(routine_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i8 on statistics(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i9 on views(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i10 on user_privileges(privilege_type);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i11 on schema_privileges(table_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i12 on table_privileges(able_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i13 on column_privileges(table_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i14 on table_constraints(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i15 on key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+create index i16 on triggers(trigger_name);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use db_datadict;
+create index i15 on information_schema.key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+CREATE USER user_4_1_8@localhost;
+grant select, index on *.* to user_4_1_8@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_8,,test,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_8@localhost test
+use information_schema;
+create index i1 on schemata(schema_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i2 on tables(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i3 on columns(table_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i4 on character_sets(character_set_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i6 on collation_character_set_applicability(collation_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i7 on routines(routine_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i8 on statistics(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i9 on views(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i10 on user_privileges(privilege_type);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i11 on schema_privileges(table_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i12 on table_privileges(able_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i13 on column_privileges(table_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i14 on table_constraints(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i15 on key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+create index i16 on triggers(trigger_name);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+use db_datadict;
+create index i15 on information_schema.key_column_usage(constraint_schema);
+ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_8@localhost;
+
+Testcase 3.2.1.9:
+--------------------------------------------------------------------------------
+
+root: alter a table from other db
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+
+root: alter a table from directly
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE tables ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE columns ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE collations ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE routines ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE views ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table schemata add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table tables drop primary key;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table columns add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table character_sets disable keys;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table collations enable keys;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table collation_character_set_applicability add f1 int;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table routines discard tablespace;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table statistics import tablespace;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table views drop column table_name;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table user_privileges drop index privilege_type;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table schema_privileges drop column is_grantable;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table table_privileges order by constraint_type;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table column_privileges rename to aaxyz;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table table_constraints order by schema_name;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table key_column_usage rename to information_schema.aabxyz;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+alter table triggers rename to information_schema.sql_mode;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE USER user_4_1_9@localhost;
+grant select, alter, create, insert on *.* to user_4_1_9@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_9,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+user_4_1_9@localhost db_datadict
+use db_datadict;
+
+user: alter a table from other db
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+use information_schema;
+
+user: alter a table from directly
+---------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE schemata ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE tables ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE columns ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE character_sets ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE collations ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE collation_character_set_applicability ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE routines ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE statistics ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE views ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE user_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE schema_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE table_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE column_privileges ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE table_constraints ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE key_column_usage ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+ALTER TABLE triggers ADD f1 INT;
+ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_9@localhost;
+
+Testcase 3.2.1.10:
+--------------------------------------------------------------------------------
+use information_schema;
+
+root: drop a table from IS
+--------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use db_datadict;
+
+root: drop a table from other db
+--------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE information_schema. schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+use information_schema;
+CREATE USER user_4_1_10@localhost;
+GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_10,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_10@localhost information_schema
+
+user: drop a table from IS
+--------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE schemata ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE tables ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE columns ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE character_sets ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE collations ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE routines ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE statistics ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE views ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE user_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE schema_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE table_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE column_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE table_constraints ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE key_column_usage ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE triggers ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+use db_datadict;
+
+user: drop a table from other db
+--------------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DROP TABLE information_schema. schemata ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. tables ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. columns ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. character_sets ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collations ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. routines ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. statistics ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. views ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+DROP TABLE information_schema. triggers ;
+ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_10@localhost;
+CREATE USER user_4_1_11@localhost;
+GRANT SUPER ON *.* TO user_4_1_11@localhost;
+FLUSH PRIVILEGES;
+connect(localhost,user_4_1_11,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+
+user_4_1_11@localhost information_schema
+drop table routines;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+alter table collations enable keys;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+create index i5 on collations( collation_name );
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+create view v1 as select * from schemata;
+ERROR 42S02: Unknown table 'v1' in information_schema
+delete from columns;
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+insert into collations ( collation_name, character_set_name, id, is_default,
+is_compiled, sortlen)
+values ('cp1251_bin', 'cp1251', 50, '', '', 0);
+ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP USER user_4_1_11@localhost;
+
+Testcase 3.2.1.11:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'u_6_401011'@'localhost';
+GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost';
+FLUSH PRIVILEGES;
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+
+root: move table to other DB
+----------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+connect(localhost,u_6_401011,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+
+u_6_401011@localhost information_schema
+ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+
+user: move table to other DB
+----------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. tables RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. columns RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collations RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. routines RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. views RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01;
+ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+DROP TABLE IF EXISTS db_datadict.schemata;
+DROP USER 'u_6_401011'@'localhost';
+
+Testcase 3.2.1.12:
+--------------------------------------------------------------------------------
+
+root: delete from IS tables
+---------------------------
+
+known error 1044 (ERROR 42000: Access denied for user ... to database ...):
+---------------------------------------------------------------------------
+DELETE FROM information_schema. schemata ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. tables ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. columns ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. character_sets ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. collations ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. collation_character_set_applicability ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. routines ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. statistics ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. views ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. user_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. schema_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. table_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. column_privileges ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. table_constraints ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. key_column_usage ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM information_schema. triggers ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.tables SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.columns SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.statistics SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.views SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.table_privileges SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.column_privileges SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.table_constraints SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.key_column_usage SET table_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.schemata SET catalog_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.character_sets SET description = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.collations SET character_set_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.collation_character_set_applicability
+SET character_set_name = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.routines SET routine_type = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.user_privileges SET grantee = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.schema_privileges SET grantee = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+UPDATE information_schema.triggers SET sql_mode = 't_4711';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE USER 'u_6_401012'@'localhost';
+connect(localhost,u_6_401012,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+insert into information_schema.schemata (catalog_name, schema_name,
+default_character_set_name, sql_path)
+values (null, information_schema1, utf16, null);
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.schemata rename db_datadict1.schemata;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.tables drop column checksum;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.statistics modify packed int;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.routines modify created int not null;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.key_column_usage drop column ordinal_position;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+alter table information_schema.table_privileges
+change privilege_type rights_approved varchar(32);
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+update columns set table_name = 't4' where column_name = 'f2';
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+delete from information_schema.collations;
+ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema'
+
+root@localhost information_schema
+drop table if exists db_datadict1.schemata;
+DROP USER 'u_6_401012'@'localhost';
+
+Testcase 3.2.1.13:
+--------------------------------------------------------------------------------
+use information_schema;
+
+first check status >before< creating the objects ...
+----------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401013(f1 char(10), f2 char(25), f3 int)
+engine = myisam;
+create view res_v_401013 as select * from res_t_401013;
+CREATE USER u_6_401013@localhost;
+create procedure sp_6_401013() select 'db_datadict';
+create function fn_6_401013() returns int return 0;
+create index i_6_401013 on res_t_401013(f3);
+use information_schema;
+
+now check whether all new objects exists in IS ...
+--------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL db_datadict res_t_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references
+NULL db_datadict res_v_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL db_datadict res_v_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401013 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401013 FUNCTION DEFINER
+sp_6_401013 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+res_t_401013 db_datadict i_6_401013 BTREE
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+'u_6_401013'@'localhost' NULL USAGE NO
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop index i_6_401013 on res_t_401013;
+drop table db_datadict.res_t_401013;
+drop view db_datadict.res_v_401013;
+DROP USER u_6_401013@localhost;
+drop procedure sp_6_401013;
+drop function fn_6_401013;
+drop database db_datadict;
+use information_schema;
+
+and now check whether all objects are removed from IS ...
+---------------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+
+Testcase 3.2.1.14:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401014(f1 char(10), f2 varchar(25), f3 int);
+create view res_v_401014 as select * from res_t_401014;
+create procedure sp_6_401014() select 'db_datadict';
+create function fn_6_401014() returns int return 0;
+
+show existing objects >before< changing them ...
+------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_t_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict res_v_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_v_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401014 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401014 FUNCTION DEFINER
+sp_6_401014 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+alter table res_t_401014 change f1 ff1 int;
+alter table res_t_401014 engine = MEMORY;
+alter table res_t_401014 change f3 f3_new bigint;
+alter view res_v_401014 as select ff1 from res_t_401014;
+alter procedure sp_6_401014 sql security invoker;
+alter function fn_6_401014 comment 'updated comments';
+alter database db_datadict character set utf8;
+
+now check whether the changes are visible in IS ...
+---------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict utf8 utf8_general_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MEMORY
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references
+NULL db_datadict res_t_401014 f3_new 3 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL db_datadict res_v_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401014 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401014 FUNCTION DEFINER
+sp_6_401014 PROCEDURE INVOKER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop table db_datadict.res_t_401014;
+drop view db_datadict.res_v_401014;
+drop procedure sp_6_401014;
+drop function fn_6_401014;
+drop database db_datadict;
+
+Testcase 3.2.1.15:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_t_401015(f1 char(10), f2 text(25), f3 int);
+create view res_v_401015 as select * from res_t_401015;
+CREATE USER u_6_401015@localhost;
+create procedure sp_6_401015() select 'test';
+create function fn_6_401015() returns int return 0;
+create index i_6_401015 on res_t_401015(f3);
+
+show existing objects >before< dropping them ...
+------------------------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+NULL db_datadict MyISAM
+NULL db_datadict NULL
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict res_t_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_t_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL db_datadict res_t_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references
+NULL db_datadict res_v_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict res_v_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL db_datadict res_v_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+db_datadict res_v_401015 YES
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+fn_6_401015 FUNCTION DEFINER
+sp_6_401015 PROCEDURE DEFINER
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+res_t_401015 db_datadict i_6_401015 BTREE
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+'u_6_401015'@'localhost' NULL USAGE NO
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+use db_datadict;
+drop index i_6_401015 on res_t_401015;
+drop table db_datadict.res_t_401015;
+drop view db_datadict.res_v_401015;
+DROP USER u_6_401015@localhost;
+drop procedure sp_6_401015;
+drop function fn_6_401015;
+
+now check they are really gone ...
+----------------------------------
+select *
+from information_schema.schemata
+where schema_name like 'db_datadict%';
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL db_datadict latin1 latin1_swedish_ci NULL
+select table_catalog, table_schema, engine
+from information_schema.tables
+where table_schema like 'db_datadict%';
+table_catalog table_schema engine
+select *
+from information_schema.columns
+where table_schema like 'db_datadict%';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+select table_schema, table_name, is_updatable
+from information_schema.views
+where table_schema like 'db_datadict%';
+table_schema table_name is_updatable
+select routine_name, routine_type, security_type, sql_mode
+from information_schema.routines
+where routine_schema like 'db_datadict%';
+routine_name routine_type security_type sql_mode
+select table_name, index_schema, index_name, index_type
+from information_schema.statistics
+where table_schema like 'db_datadict%';
+table_name index_schema index_name index_type
+select *
+from information_schema.user_privileges order by grantee, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'root'@'127.0.0.1' NULL ALTER YES
+'root'@'127.0.0.1' NULL ALTER ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE YES
+'root'@'127.0.0.1' NULL CREATE ROUTINE YES
+'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES
+'root'@'127.0.0.1' NULL CREATE USER YES
+'root'@'127.0.0.1' NULL CREATE VIEW YES
+'root'@'127.0.0.1' NULL DELETE YES
+'root'@'127.0.0.1' NULL DROP YES
+'root'@'127.0.0.1' NULL EXECUTE YES
+'root'@'127.0.0.1' NULL FILE YES
+'root'@'127.0.0.1' NULL INDEX YES
+'root'@'127.0.0.1' NULL INSERT YES
+'root'@'127.0.0.1' NULL LOCK TABLES YES
+'root'@'127.0.0.1' NULL PROCESS YES
+'root'@'127.0.0.1' NULL REFERENCES YES
+'root'@'127.0.0.1' NULL RELOAD YES
+'root'@'127.0.0.1' NULL REPLICATION CLIENT YES
+'root'@'127.0.0.1' NULL REPLICATION SLAVE YES
+'root'@'127.0.0.1' NULL SELECT YES
+'root'@'127.0.0.1' NULL SHOW DATABASES YES
+'root'@'127.0.0.1' NULL SHOW VIEW YES
+'root'@'127.0.0.1' NULL SHUTDOWN YES
+'root'@'127.0.0.1' NULL SUPER YES
+'root'@'127.0.0.1' NULL UPDATE YES
+'root'@'<SERVER_NAME>' NULL ALTER YES
+'root'@'<SERVER_NAME>' NULL ALTER ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE YES
+'root'@'<SERVER_NAME>' NULL CREATE ROUTINE YES
+'root'@'<SERVER_NAME>' NULL CREATE TEMPORARY TABLES YES
+'root'@'<SERVER_NAME>' NULL CREATE USER YES
+'root'@'<SERVER_NAME>' NULL CREATE VIEW YES
+'root'@'<SERVER_NAME>' NULL DELETE YES
+'root'@'<SERVER_NAME>' NULL DROP YES
+'root'@'<SERVER_NAME>' NULL EXECUTE YES
+'root'@'<SERVER_NAME>' NULL FILE YES
+'root'@'<SERVER_NAME>' NULL INDEX YES
+'root'@'<SERVER_NAME>' NULL INSERT YES
+'root'@'<SERVER_NAME>' NULL LOCK TABLES YES
+'root'@'<SERVER_NAME>' NULL PROCESS YES
+'root'@'<SERVER_NAME>' NULL REFERENCES YES
+'root'@'<SERVER_NAME>' NULL RELOAD YES
+'root'@'<SERVER_NAME>' NULL REPLICATION CLIENT YES
+'root'@'<SERVER_NAME>' NULL REPLICATION SLAVE YES
+'root'@'<SERVER_NAME>' NULL SELECT YES
+'root'@'<SERVER_NAME>' NULL SHOW DATABASES YES
+'root'@'<SERVER_NAME>' NULL SHOW VIEW YES
+'root'@'<SERVER_NAME>' NULL SHUTDOWN YES
+'root'@'<SERVER_NAME>' NULL SUPER YES
+'root'@'<SERVER_NAME>' NULL UPDATE YES
+'root'@'localhost' NULL ALTER YES
+'root'@'localhost' NULL ALTER ROUTINE YES
+'root'@'localhost' NULL CREATE YES
+'root'@'localhost' NULL CREATE ROUTINE YES
+'root'@'localhost' NULL CREATE TEMPORARY TABLES YES
+'root'@'localhost' NULL CREATE USER YES
+'root'@'localhost' NULL CREATE VIEW YES
+'root'@'localhost' NULL DELETE YES
+'root'@'localhost' NULL DROP YES
+'root'@'localhost' NULL EXECUTE YES
+'root'@'localhost' NULL FILE YES
+'root'@'localhost' NULL INDEX YES
+'root'@'localhost' NULL INSERT YES
+'root'@'localhost' NULL LOCK TABLES YES
+'root'@'localhost' NULL PROCESS YES
+'root'@'localhost' NULL REFERENCES YES
+'root'@'localhost' NULL RELOAD YES
+'root'@'localhost' NULL REPLICATION CLIENT YES
+'root'@'localhost' NULL REPLICATION SLAVE YES
+'root'@'localhost' NULL SELECT YES
+'root'@'localhost' NULL SHOW DATABASES YES
+'root'@'localhost' NULL SHOW VIEW YES
+'root'@'localhost' NULL SHUTDOWN YES
+'root'@'localhost' NULL SUPER YES
+'root'@'localhost' NULL UPDATE YES
+select *
+from information_schema.column_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.table_privileges
+where table_schema like 'db_datadict%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select *
+from information_schema.key_column_usage
+where table_schema like 'db_datadict%';
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+SELECT *
+FROM information_schema.triggers
+WHERE trigger_schema LIKE 'db_datadict%';
+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
+
+Testcase 3.2.1.16:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_hidden;
+USE db_hidden;
+CREATE TABLE tb_hidden ( c1 TEXT );
+USE db_datadict;
+CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int);
+CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int);
+CREATE USER 'u_6_401016'@'localhost';
+GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401016,,test,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SELECT table_schema, table_name, engine
+FROM TABLES;
+table_schema table_name engine
+information_schema CHARACTER_SETS MEMORY
+information_schema COLLATIONS MEMORY
+information_schema COLLATION_CHARACTER_SET_APPLICABILITY MEMORY
+information_schema COLUMNS MyISAM
+information_schema COLUMN_PRIVILEGES MEMORY
+information_schema KEY_COLUMN_USAGE MEMORY
+information_schema ROUTINES MyISAM
+information_schema SCHEMATA MEMORY
+information_schema SCHEMA_PRIVILEGES MEMORY
+information_schema STATISTICS MEMORY
+information_schema TABLES MEMORY
+information_schema TABLE_CONSTRAINTS MEMORY
+information_schema TABLE_PRIVILEGES MEMORY
+information_schema TRIGGERS MyISAM
+information_schema USER_PRIVILEGES MEMORY
+information_schema VIEWS MyISAM
+db_datadict res_t_401016 MyISAM
+test t1 MyISAM
+test t10 MyISAM
+test t11 MyISAM
+test t2 MyISAM
+test t3 MyISAM
+test t4 MyISAM
+test t7 MyISAM
+test t8 MyISAM
+test t9 MyISAM
+test tb1 MyISAM
+test tb2 MyISAM
+test tb3 MyISAM
+test tb4 MyISAM
+SHOW TABLES;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+
+root@localhost db_datadict
+grant usage on information_schema.* to 'u_6_401016'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401016,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SHOW TABLES;
+Tables_in_information_schema
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'u_6_401016'@'localhost';
+drop table res_t_401016;
+drop table res_t_401016_1;
+DROP DATABASE db_hidden;
+
+Testcase 3.2.1.17:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401017'@'localhost';
+grant select on information_schema.* to u_6_401017@localhost;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH PRIVILEGES;
+connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK);
+use information_schema;
+select * from collation_character_set_applicability;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+cp850_bin cp850
+hp8_english_ci hp8
+hp8_bin hp8
+koi8r_general_ci koi8r
+koi8r_bin koi8r
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+latin2_czech_cs latin2
+latin2_general_ci latin2
+latin2_hungarian_ci latin2
+latin2_croatian_ci latin2
+latin2_bin latin2
+swe7_swedish_ci swe7
+swe7_bin swe7
+ascii_general_ci ascii
+ascii_bin ascii
+ujis_japanese_ci ujis
+ujis_bin ujis
+sjis_japanese_ci sjis
+sjis_bin sjis
+hebrew_general_ci hebrew
+hebrew_bin hebrew
+tis620_thai_ci tis620
+tis620_bin tis620
+euckr_korean_ci euckr
+euckr_bin euckr
+koi8u_general_ci koi8u
+koi8u_bin koi8u
+gb2312_chinese_ci gb2312
+gb2312_bin gb2312
+greek_general_ci greek
+greek_bin greek
+cp1250_general_ci cp1250
+cp1250_czech_cs cp1250
+cp1250_croatian_ci cp1250
+cp1250_bin cp1250
+gbk_chinese_ci gbk
+gbk_bin gbk
+latin5_turkish_ci latin5
+latin5_bin latin5
+armscii8_general_ci armscii8
+armscii8_bin armscii8
+utf8_general_ci utf8
+utf8_bin utf8
+utf8_unicode_ci utf8
+utf8_icelandic_ci utf8
+utf8_latvian_ci utf8
+utf8_romanian_ci utf8
+utf8_slovenian_ci utf8
+utf8_polish_ci utf8
+utf8_estonian_ci utf8
+utf8_spanish_ci utf8
+utf8_swedish_ci utf8
+utf8_turkish_ci utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_lithuanian_ci utf8
+utf8_slovak_ci utf8
+utf8_spanish2_ci utf8
+utf8_roman_ci utf8
+utf8_persian_ci utf8
+utf8_esperanto_ci utf8
+utf8_hungarian_ci utf8
+ucs2_general_ci ucs2
+ucs2_bin ucs2
+ucs2_unicode_ci ucs2
+ucs2_icelandic_ci ucs2
+ucs2_latvian_ci ucs2
+ucs2_romanian_ci ucs2
+ucs2_slovenian_ci ucs2
+ucs2_polish_ci ucs2
+ucs2_estonian_ci ucs2
+ucs2_spanish_ci ucs2
+ucs2_swedish_ci ucs2
+ucs2_turkish_ci ucs2
+ucs2_czech_ci ucs2
+ucs2_danish_ci ucs2
+ucs2_lithuanian_ci ucs2
+ucs2_slovak_ci ucs2
+ucs2_spanish2_ci ucs2
+ucs2_roman_ci ucs2
+ucs2_persian_ci ucs2
+ucs2_esperanto_ci ucs2
+ucs2_hungarian_ci ucs2
+cp866_general_ci cp866
+cp866_bin cp866
+keybcs2_general_ci keybcs2
+keybcs2_bin keybcs2
+macce_general_ci macce
+macce_bin macce
+macroman_general_ci macroman
+macroman_bin macroman
+cp852_general_ci cp852
+cp852_bin cp852
+latin7_estonian_cs latin7
+latin7_general_ci latin7
+latin7_general_cs latin7
+latin7_bin latin7
+cp1251_bulgarian_ci cp1251
+cp1251_ukrainian_ci cp1251
+cp1251_bin cp1251
+cp1251_general_ci cp1251
+cp1251_general_cs cp1251
+cp1256_general_ci cp1256
+cp1256_bin cp1256
+cp1257_lithuanian_ci cp1257
+cp1257_bin cp1257
+cp1257_general_ci cp1257
+binary binary
+geostd8_general_ci geostd8
+geostd8_bin geostd8
+cp932_japanese_ci cp932
+cp932_bin cp932
+eucjpms_japanese_ci eucjpms
+eucjpms_bin eucjpms
+select * from schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+select table_name from tables;
+table_name
+CHARACTER_SETS
+COLLATIONS
+COLLATION_CHARACTER_SET_APPLICABILITY
+COLUMNS
+COLUMN_PRIVILEGES
+KEY_COLUMN_USAGE
+ROUTINES
+SCHEMATA
+SCHEMA_PRIVILEGES
+STATISTICS
+TABLES
+TABLE_CONSTRAINTS
+TABLE_PRIVILEGES
+TRIGGERS
+USER_PRIVILEGES
+VIEWS
+t1
+t10
+t11
+t2
+t3
+t4
+t7
+t8
+t9
+tb1
+tb2
+tb3
+tb4
+select table_name, column_name, column_type from columns;
+table_name column_name column_type
+CHARACTER_SETS CHARACTER_SET_NAME varchar(64)
+CHARACTER_SETS DEFAULT_COLLATE_NAME varchar(64)
+CHARACTER_SETS DESCRIPTION varchar(60)
+CHARACTER_SETS MAXLEN bigint(3)
+COLLATIONS COLLATION_NAME varchar(64)
+COLLATIONS CHARACTER_SET_NAME varchar(64)
+COLLATIONS ID bigint(11)
+COLLATIONS IS_DEFAULT varchar(3)
+COLLATIONS IS_COMPILED varchar(3)
+COLLATIONS SORTLEN bigint(3)
+COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar(64)
+COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar(64)
+COLUMNS TABLE_CATALOG varchar(4096)
+COLUMNS TABLE_SCHEMA varchar(64)
+COLUMNS TABLE_NAME varchar(64)
+COLUMNS COLUMN_NAME varchar(64)
+COLUMNS ORDINAL_POSITION bigint(21)
+COLUMNS COLUMN_DEFAULT longtext
+COLUMNS IS_NULLABLE varchar(3)
+COLUMNS DATA_TYPE varchar(64)
+COLUMNS CHARACTER_MAXIMUM_LENGTH bigint(21)
+COLUMNS CHARACTER_OCTET_LENGTH bigint(21)
+COLUMNS NUMERIC_PRECISION bigint(21)
+COLUMNS NUMERIC_SCALE bigint(21)
+COLUMNS CHARACTER_SET_NAME varchar(64)
+COLUMNS COLLATION_NAME varchar(64)
+COLUMNS COLUMN_TYPE longtext
+COLUMNS COLUMN_KEY varchar(3)
+COLUMNS EXTRA varchar(20)
+COLUMNS PRIVILEGES varchar(80)
+COLUMNS COLUMN_COMMENT varchar(255)
+COLUMN_PRIVILEGES GRANTEE varchar(81)
+COLUMN_PRIVILEGES TABLE_CATALOG varchar(4096)
+COLUMN_PRIVILEGES TABLE_SCHEMA varchar(64)
+COLUMN_PRIVILEGES TABLE_NAME varchar(64)
+COLUMN_PRIVILEGES COLUMN_NAME varchar(64)
+COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+COLUMN_PRIVILEGES IS_GRANTABLE varchar(3)
+KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar(4096)
+KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar(64)
+KEY_COLUMN_USAGE CONSTRAINT_NAME varchar(64)
+KEY_COLUMN_USAGE TABLE_CATALOG varchar(4096)
+KEY_COLUMN_USAGE TABLE_SCHEMA varchar(64)
+KEY_COLUMN_USAGE TABLE_NAME varchar(64)
+KEY_COLUMN_USAGE COLUMN_NAME varchar(64)
+KEY_COLUMN_USAGE ORDINAL_POSITION bigint(10)
+KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint(10)
+KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar(64)
+KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar(64)
+KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar(64)
+ROUTINES SPECIFIC_NAME varchar(64)
+ROUTINES ROUTINE_CATALOG varchar(4096)
+ROUTINES ROUTINE_SCHEMA varchar(64)
+ROUTINES ROUTINE_NAME varchar(64)
+ROUTINES ROUTINE_TYPE varchar(9)
+ROUTINES DTD_IDENTIFIER varchar(64)
+ROUTINES ROUTINE_BODY varchar(8)
+ROUTINES ROUTINE_DEFINITION longtext
+ROUTINES EXTERNAL_NAME varchar(64)
+ROUTINES EXTERNAL_LANGUAGE varchar(64)
+ROUTINES PARAMETER_STYLE varchar(8)
+ROUTINES IS_DETERMINISTIC varchar(3)
+ROUTINES SQL_DATA_ACCESS varchar(64)
+ROUTINES SQL_PATH varchar(64)
+ROUTINES SECURITY_TYPE varchar(7)
+ROUTINES CREATED datetime
+ROUTINES LAST_ALTERED datetime
+ROUTINES SQL_MODE longtext
+ROUTINES ROUTINE_COMMENT varchar(64)
+ROUTINES DEFINER varchar(77)
+SCHEMATA CATALOG_NAME varchar(4096)
+SCHEMATA SCHEMA_NAME varchar(64)
+SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar(64)
+SCHEMATA DEFAULT_COLLATION_NAME varchar(64)
+SCHEMATA SQL_PATH varchar(4096)
+SCHEMA_PRIVILEGES GRANTEE varchar(81)
+SCHEMA_PRIVILEGES TABLE_CATALOG varchar(4096)
+SCHEMA_PRIVILEGES TABLE_SCHEMA varchar(64)
+SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+SCHEMA_PRIVILEGES IS_GRANTABLE varchar(3)
+STATISTICS TABLE_CATALOG varchar(4096)
+STATISTICS TABLE_SCHEMA varchar(64)
+STATISTICS TABLE_NAME varchar(64)
+STATISTICS NON_UNIQUE bigint(1)
+STATISTICS INDEX_SCHEMA varchar(64)
+STATISTICS INDEX_NAME varchar(64)
+STATISTICS SEQ_IN_INDEX bigint(2)
+STATISTICS COLUMN_NAME varchar(64)
+STATISTICS COLLATION varchar(1)
+STATISTICS CARDINALITY bigint(21)
+STATISTICS SUB_PART bigint(3)
+STATISTICS PACKED varchar(10)
+STATISTICS NULLABLE varchar(3)
+STATISTICS INDEX_TYPE varchar(16)
+STATISTICS COMMENT varchar(16)
+TABLES TABLE_CATALOG varchar(4096)
+TABLES TABLE_SCHEMA varchar(64)
+TABLES TABLE_NAME varchar(64)
+TABLES TABLE_TYPE varchar(64)
+TABLES ENGINE varchar(64)
+TABLES VERSION bigint(21)
+TABLES ROW_FORMAT varchar(10)
+TABLES TABLE_ROWS bigint(21)
+TABLES AVG_ROW_LENGTH bigint(21)
+TABLES DATA_LENGTH bigint(21)
+TABLES MAX_DATA_LENGTH bigint(21)
+TABLES INDEX_LENGTH bigint(21)
+TABLES DATA_FREE bigint(21)
+TABLES AUTO_INCREMENT bigint(21)
+TABLES CREATE_TIME datetime
+TABLES UPDATE_TIME datetime
+TABLES CHECK_TIME datetime
+TABLES TABLE_COLLATION varchar(64)
+TABLES CHECKSUM bigint(21)
+TABLES CREATE_OPTIONS varchar(255)
+TABLES TABLE_COMMENT varchar(80)
+TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar(4096)
+TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar(64)
+TABLE_CONSTRAINTS CONSTRAINT_NAME varchar(64)
+TABLE_CONSTRAINTS TABLE_SCHEMA varchar(64)
+TABLE_CONSTRAINTS TABLE_NAME varchar(64)
+TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar(64)
+TABLE_PRIVILEGES GRANTEE varchar(81)
+TABLE_PRIVILEGES TABLE_CATALOG varchar(4096)
+TABLE_PRIVILEGES TABLE_SCHEMA varchar(64)
+TABLE_PRIVILEGES TABLE_NAME varchar(64)
+TABLE_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+TABLE_PRIVILEGES IS_GRANTABLE varchar(3)
+TRIGGERS TRIGGER_CATALOG varchar(4096)
+TRIGGERS TRIGGER_SCHEMA varchar(64)
+TRIGGERS TRIGGER_NAME varchar(64)
+TRIGGERS EVENT_MANIPULATION varchar(6)
+TRIGGERS EVENT_OBJECT_CATALOG varchar(4096)
+TRIGGERS EVENT_OBJECT_SCHEMA varchar(64)
+TRIGGERS EVENT_OBJECT_TABLE varchar(64)
+TRIGGERS ACTION_ORDER bigint(4)
+TRIGGERS ACTION_CONDITION longtext
+TRIGGERS ACTION_STATEMENT longtext
+TRIGGERS ACTION_ORIENTATION varchar(9)
+TRIGGERS ACTION_TIMING varchar(6)
+TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar(64)
+TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar(64)
+TRIGGERS ACTION_REFERENCE_OLD_ROW varchar(3)
+TRIGGERS ACTION_REFERENCE_NEW_ROW varchar(3)
+TRIGGERS CREATED datetime
+TRIGGERS SQL_MODE longtext
+TRIGGERS DEFINER longtext
+USER_PRIVILEGES GRANTEE varchar(81)
+USER_PRIVILEGES TABLE_CATALOG varchar(4096)
+USER_PRIVILEGES PRIVILEGE_TYPE varchar(64)
+USER_PRIVILEGES IS_GRANTABLE varchar(3)
+VIEWS TABLE_CATALOG varchar(4096)
+VIEWS TABLE_SCHEMA varchar(64)
+VIEWS TABLE_NAME varchar(64)
+VIEWS VIEW_DEFINITION longtext
+VIEWS CHECK_OPTION varchar(8)
+VIEWS IS_UPDATABLE varchar(3)
+VIEWS DEFINER varchar(77)
+VIEWS SECURITY_TYPE varchar(7)
+t1 f1 char(20)
+t1 f2 char(25)
+t1 f3 date
+t1 f4 int(11)
+t1 f5 char(25)
+t1 f6 int(11)
+t10 f1 char(20)
+t10 f2 char(25)
+t10 f3 date
+t10 f4 int(11)
+t10 f5 char(25)
+t10 f6 int(11)
+t11 f1 char(20)
+t11 f2 char(25)
+t11 f3 date
+t11 f4 int(11)
+t11 f5 char(25)
+t11 f6 int(11)
+t2 f1 char(20)
+t2 f2 char(25)
+t2 f3 date
+t2 f4 int(11)
+t2 f5 char(25)
+t2 f6 int(11)
+t3 f1 char(20)
+t3 f2 char(20)
+t3 f3 int(11)
+t4 f1 char(20)
+t4 f2 char(25)
+t4 f3 date
+t4 f4 int(11)
+t4 f5 char(25)
+t4 f6 int(11)
+t7 f1 char(20)
+t7 f2 char(25)
+t7 f3 date
+t7 f4 int(11)
+t8 f1 char(20)
+t8 f2 char(25)
+t8 f3 date
+t8 f4 int(11)
+t9 f1 int(11)
+t9 f2 char(25)
+t9 f3 int(11)
+tb1 f1 char(1)
+tb1 f2 char(1)
+tb1 f3 char(1)
+tb1 f4 tinytext
+tb1 f5 text
+tb1 f6 mediumtext
+tb1 f7 longtext
+tb1 f8 tinyblob
+tb1 f9 blob
+tb1 f10 mediumblob
+tb1 f11 longblob
+tb1 f12 binary(1)
+tb1 f13 tinyint(4)
+tb1 f14 tinyint(3) unsigned
+tb1 f15 tinyint(3) unsigned zerofill
+tb1 f16 tinyint(3) unsigned zerofill
+tb1 f17 smallint(6)
+tb1 f18 smallint(5) unsigned
+tb1 f19 smallint(5) unsigned zerofill
+tb1 f20 smallint(5) unsigned zerofill
+tb1 f21 mediumint(9)
+tb1 f22 mediumint(8) unsigned
+tb1 f23 mediumint(8) unsigned zerofill
+tb1 f24 mediumint(8) unsigned zerofill
+tb1 f25 int(11)
+tb1 f26 int(10) unsigned
+tb1 f27 int(10) unsigned zerofill
+tb1 f28 int(10) unsigned zerofill
+tb1 f29 bigint(20)
+tb1 f30 bigint(20) unsigned
+tb1 f31 bigint(20) unsigned zerofill
+tb1 f32 bigint(20) unsigned zerofill
+tb1 f33 decimal(10,0)
+tb1 f34 decimal(10,0) unsigned
+tb1 f35 decimal(10,0) unsigned zerofill
+tb1 f36 decimal(10,0) unsigned zerofill
+tb1 f37 decimal(10,0)
+tb1 f38 decimal(64,0)
+tb1 f39 decimal(10,0) unsigned
+tb1 f40 decimal(64,0) unsigned
+tb1 f41 decimal(10,0) unsigned zerofill
+tb1 f42 decimal(64,0) unsigned zerofill
+tb1 f43 decimal(10,0) unsigned zerofill
+tb1 f44 decimal(64,0) unsigned zerofill
+tb1 f45 decimal(10,0)
+tb1 f46 decimal(63,30)
+tb1 f47 decimal(10,0) unsigned
+tb1 f48 decimal(63,30) unsigned
+tb1 f49 decimal(10,0) unsigned zerofill
+tb1 f50 decimal(63,30) unsigned zerofill
+tb1 f51 decimal(10,0) unsigned zerofill
+tb1 f52 decimal(63,30) unsigned zerofill
+tb1 f53 decimal(10,0)
+tb1 f54 decimal(10,0) unsigned
+tb1 f55 decimal(10,0) unsigned zerofill
+tb1 f56 decimal(10,0) unsigned zerofill
+tb1 f57 decimal(10,0)
+tb1 f58 decimal(64,0)
+tb2 f59 decimal(10,0) unsigned
+tb2 f60 decimal(64,0) unsigned
+tb2 f61 decimal(10,0) unsigned zerofill
+tb2 f62 decimal(64,0) unsigned zerofill
+tb2 f63 decimal(10,0) unsigned zerofill
+tb2 f64 decimal(64,0) unsigned zerofill
+tb2 f65 decimal(10,0)
+tb2 f66 decimal(63,30)
+tb2 f67 decimal(10,0) unsigned
+tb2 f68 decimal(63,30) unsigned
+tb2 f69 decimal(10,0) unsigned zerofill
+tb2 f70 decimal(63,30) unsigned zerofill
+tb2 f71 decimal(10,0) unsigned zerofill
+tb2 f72 decimal(63,30) unsigned zerofill
+tb2 f73 double
+tb2 f74 double unsigned
+tb2 f75 double unsigned zerofill
+tb2 f76 double unsigned zerofill
+tb2 f77 double
+tb2 f78 double unsigned
+tb2 f79 double unsigned zerofill
+tb2 f80 double unsigned zerofill
+tb2 f81 float
+tb2 f82 float unsigned
+tb2 f83 float unsigned zerofill
+tb2 f84 float unsigned zerofill
+tb2 f85 float
+tb2 f86 float
+tb2 f87 float unsigned
+tb2 f88 float unsigned
+tb2 f89 float unsigned zerofill
+tb2 f90 float unsigned zerofill
+tb2 f91 float unsigned zerofill
+tb2 f92 float unsigned zerofill
+tb2 f93 float
+tb2 f94 double
+tb2 f95 float unsigned
+tb2 f96 double unsigned
+tb2 f97 float unsigned zerofill
+tb2 f98 double unsigned zerofill
+tb2 f99 float unsigned zerofill
+tb2 f100 double unsigned zerofill
+tb2 f101 date
+tb2 f102 time
+tb2 f103 datetime
+tb2 f104 timestamp
+tb2 f105 year(4)
+tb2 f106 year(4)
+tb2 f107 year(4)
+tb2 f108 enum('1enum','2enum')
+tb2 f109 set('1set','2set')
+tb2 f110 varbinary(64)
+tb2 f111 varbinary(27)
+tb2 f112 varbinary(64)
+tb2 f113 varbinary(192)
+tb2 f114 varbinary(192)
+tb2 f115 varbinary(27)
+tb2 f116 varbinary(64)
+tb2 f117 varbinary(192)
+tb3 f118 char(1)
+tb3 f119 char(1)
+tb3 f120 char(1)
+tb3 f121 tinytext
+tb3 f122 text
+tb3 f123 mediumtext
+tb3 f124 longtext
+tb3 f125 tinyblob
+tb3 f126 blob
+tb3 f127 mediumblob
+tb3 f128 longblob
+tb3 f129 binary(1)
+tb3 f130 tinyint(4)
+tb3 f131 tinyint(3) unsigned
+tb3 f132 tinyint(3) unsigned zerofill
+tb3 f133 tinyint(3) unsigned zerofill
+tb3 f134 smallint(6)
+tb3 f135 smallint(5) unsigned
+tb3 f136 smallint(5) unsigned zerofill
+tb3 f137 smallint(5) unsigned zerofill
+tb3 f138 mediumint(9)
+tb3 f139 mediumint(8) unsigned
+tb3 f140 mediumint(8) unsigned zerofill
+tb3 f141 mediumint(8) unsigned zerofill
+tb3 f142 int(11)
+tb3 f143 int(10) unsigned
+tb3 f144 int(10) unsigned zerofill
+tb3 f145 int(10) unsigned zerofill
+tb3 f146 bigint(20)
+tb3 f147 bigint(20) unsigned
+tb3 f148 bigint(20) unsigned zerofill
+tb3 f149 bigint(20) unsigned zerofill
+tb3 f150 decimal(10,0)
+tb3 f151 decimal(10,0) unsigned
+tb3 f152 decimal(10,0) unsigned zerofill
+tb3 f153 decimal(10,0) unsigned zerofill
+tb3 f154 decimal(10,0)
+tb3 f155 decimal(64,0)
+tb3 f156 decimal(10,0) unsigned
+tb3 f157 decimal(64,0) unsigned
+tb3 f158 decimal(10,0) unsigned zerofill
+tb3 f159 decimal(64,0) unsigned zerofill
+tb3 f160 decimal(10,0) unsigned zerofill
+tb3 f161 decimal(64,0) unsigned zerofill
+tb3 f162 decimal(10,0)
+tb3 f163 decimal(63,30)
+tb3 f164 decimal(10,0) unsigned
+tb3 f165 decimal(63,30) unsigned
+tb3 f166 decimal(10,0) unsigned zerofill
+tb3 f167 decimal(63,30) unsigned zerofill
+tb3 f168 decimal(10,0) unsigned zerofill
+tb3 f169 decimal(63,30) unsigned zerofill
+tb3 f170 decimal(10,0)
+tb3 f171 decimal(10,0) unsigned
+tb3 f172 decimal(10,0) unsigned zerofill
+tb3 f173 decimal(10,0) unsigned zerofill
+tb3 f174 decimal(10,0)
+tb3 f175 decimal(64,0)
+tb4 f176 decimal(10,0) unsigned
+tb4 f177 decimal(64,0) unsigned
+tb4 f178 decimal(10,0) unsigned zerofill
+tb4 f179 decimal(64,0) unsigned zerofill
+tb4 f180 decimal(10,0) unsigned zerofill
+tb4 f181 decimal(64,0) unsigned zerofill
+tb4 f182 decimal(10,0)
+tb4 f183 decimal(63,30)
+tb4 f184 decimal(10,0) unsigned
+tb4 f185 decimal(63,30) unsigned
+tb4 f186 decimal(10,0) unsigned zerofill
+tb4 f187 decimal(63,30) unsigned zerofill
+tb4 f188 decimal(10,0) unsigned zerofill
+tb4 f189 decimal(63,30) unsigned zerofill
+tb4 f190 double
+tb4 f191 double unsigned
+tb4 f192 double unsigned zerofill
+tb4 f193 double unsigned zerofill
+tb4 f194 double
+tb4 f195 double unsigned
+tb4 f196 double unsigned zerofill
+tb4 f197 double unsigned zerofill
+tb4 f198 float
+tb4 f199 float unsigned
+tb4 f200 float unsigned zerofill
+tb4 f201 float unsigned zerofill
+tb4 f202 float
+tb4 f203 float
+tb4 f204 float unsigned
+tb4 f205 float unsigned
+tb4 f206 float unsigned zerofill
+tb4 f207 float unsigned zerofill
+tb4 f208 float unsigned zerofill
+tb4 f209 float unsigned zerofill
+tb4 f210 float
+tb4 f211 double
+tb4 f212 float unsigned
+tb4 f213 double unsigned
+tb4 f214 float unsigned zerofill
+tb4 f215 double unsigned zerofill
+tb4 f216 float unsigned zerofill
+tb4 f217 double unsigned zerofill
+tb4 f218 date
+tb4 f219 time
+tb4 f220 datetime
+tb4 f221 timestamp
+tb4 f222 year(4)
+tb4 f223 year(4)
+tb4 f224 year(4)
+tb4 f225 enum('1enum','2enum')
+tb4 f226 set('1set','2set')
+tb4 f227 varbinary(64)
+tb4 f228 varbinary(27)
+tb4 f229 varbinary(64)
+tb4 f230 varbinary(192)
+tb4 f231 varbinary(192)
+tb4 f232 varbinary(27)
+tb4 f233 varbinary(64)
+tb4 f234 varbinary(192)
+tb4 f235 char(255)
+tb4 f236 char(60)
+tb4 f237 char(255)
+tb4 f238 varchar(0)
+tb4 f239 varbinary(1000)
+tb4 f240 varchar(120)
+tb4 f241 char(100)
+tb4 f242 bit(30)
+select character_set_name from character_sets;
+character_set_name
+big5
+dec8
+cp850
+hp8
+koi8r
+latin1
+latin2
+swe7
+ascii
+ujis
+sjis
+hebrew
+tis620
+euckr
+koi8u
+gb2312
+greek
+cp1250
+gbk
+latin5
+armscii8
+utf8
+ucs2
+cp866
+keybcs2
+macce
+macroman
+cp852
+latin7
+cp1251
+cp1256
+cp1257
+binary
+geostd8
+cp932
+eucjpms
+select collation_name from collations;
+collation_name
+big5_chinese_ci
+big5_bin
+dec8_swedish_ci
+dec8_bin
+cp850_general_ci
+cp850_bin
+hp8_english_ci
+hp8_bin
+koi8r_general_ci
+koi8r_bin
+latin1_german1_ci
+latin1_swedish_ci
+latin1_danish_ci
+latin1_german2_ci
+latin1_bin
+latin1_general_ci
+latin1_general_cs
+latin1_spanish_ci
+latin2_czech_cs
+latin2_general_ci
+latin2_hungarian_ci
+latin2_croatian_ci
+latin2_bin
+swe7_swedish_ci
+swe7_bin
+ascii_general_ci
+ascii_bin
+ujis_japanese_ci
+ujis_bin
+sjis_japanese_ci
+sjis_bin
+hebrew_general_ci
+hebrew_bin
+tis620_thai_ci
+tis620_bin
+euckr_korean_ci
+euckr_bin
+koi8u_general_ci
+koi8u_bin
+gb2312_chinese_ci
+gb2312_bin
+greek_general_ci
+greek_bin
+cp1250_general_ci
+cp1250_czech_cs
+cp1250_croatian_ci
+cp1250_bin
+gbk_chinese_ci
+gbk_bin
+latin5_turkish_ci
+latin5_bin
+armscii8_general_ci
+armscii8_bin
+utf8_general_ci
+utf8_bin
+utf8_unicode_ci
+utf8_icelandic_ci
+utf8_latvian_ci
+utf8_romanian_ci
+utf8_slovenian_ci
+utf8_polish_ci
+utf8_estonian_ci
+utf8_spanish_ci
+utf8_swedish_ci
+utf8_turkish_ci
+utf8_czech_ci
+utf8_danish_ci
+utf8_lithuanian_ci
+utf8_slovak_ci
+utf8_spanish2_ci
+utf8_roman_ci
+utf8_persian_ci
+utf8_esperanto_ci
+utf8_hungarian_ci
+ucs2_general_ci
+ucs2_bin
+ucs2_unicode_ci
+ucs2_icelandic_ci
+ucs2_latvian_ci
+ucs2_romanian_ci
+ucs2_slovenian_ci
+ucs2_polish_ci
+ucs2_estonian_ci
+ucs2_spanish_ci
+ucs2_swedish_ci
+ucs2_turkish_ci
+ucs2_czech_ci
+ucs2_danish_ci
+ucs2_lithuanian_ci
+ucs2_slovak_ci
+ucs2_spanish2_ci
+ucs2_roman_ci
+ucs2_persian_ci
+ucs2_esperanto_ci
+ucs2_hungarian_ci
+cp866_general_ci
+cp866_bin
+keybcs2_general_ci
+keybcs2_bin
+macce_general_ci
+macce_bin
+macroman_general_ci
+macroman_bin
+cp852_general_ci
+cp852_bin
+latin7_estonian_cs
+latin7_general_ci
+latin7_general_cs
+latin7_bin
+cp1251_bulgarian_ci
+cp1251_ukrainian_ci
+cp1251_bin
+cp1251_general_ci
+cp1251_general_cs
+cp1256_general_ci
+cp1256_bin
+cp1257_lithuanian_ci
+cp1257_bin
+cp1257_general_ci
+binary
+geostd8_general_ci
+geostd8_bin
+cp932_japanese_ci
+cp932_bin
+eucjpms_japanese_ci
+eucjpms_bin
+select routine_name, routine_type from routines;
+routine_name routine_type
+select table_name, index_name from statistics;
+table_name index_name
+select table_name from views;
+table_name
+select privilege_type from user_privileges;
+privilege_type
+USAGE
+select grantee, privilege_type from schema_privileges;
+grantee privilege_type
+select * from table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+select column_name, privilege_type from column_privileges;
+column_name privilege_type
+select table_name,constraint_type from table_constraints;
+table_name constraint_type
+select table_schema, table_name, column_name from key_column_usage;
+table_schema table_name column_name
+
+root@localhost db_datadict
+DROP USER 'u_6_401017'@'localhost';
+
+Testcase 3.2.1.18:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401018'@'localhost';
+GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost';
+SHOW GRANTS FOR 'u_6_401018'@'localhost';
+Grants for u_6_401018@localhost
+GRANT USAGE ON *.* TO 'u_6_401018'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'u_6_401018'@'localhost'
+FLUSH PRIVILEGES;
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+connect(localhost,u_6_401018,,test,MYSQL_PORT,MYSQL_SOCK);
+USE db_datadict;
+create view db_datadict.v_401018 as
+select * from information_schema.schemata;
+SELECT * FROM v_401018 ORDER BY 2 DESC;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL test latin1 latin1_swedish_ci NULL
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict latin1 latin1_swedish_ci NULL
+
+root@localhost NULL
+DROP USER 'u_6_401018'@'localhost';
+DROP DATABASE db_datadict;
+
+Testcase 3.2.1.19:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401019'@'localhost';
+grant alter on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant alter routine on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create routine on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant create temporary tables
+on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant delete on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant drop on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant execute on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant index on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant insert on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant lock tables on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+grant update on information_schema.* to 'u_6_401019'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SELECT * FROM information_schema.table_privileges
+WHERE table_schema = "information_schema";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+SELECT * FROM information_schema.column_privileges
+WHERE table_schema = "information_schema";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+DROP USER 'u_6_401019'@'localhost';
+
+Testcase 3.2.1.20:
+--------------------------------------------------------------------------------
+CREATE USER 'u_6_401020'@'localhost';
+connect(localhost,u_6_401020,,test,MYSQL_PORT,MYSQL_SOCK);
+USE information_schema;
+SELECT * FROM schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+CREATE TABLE tb_not_allowed ( col TEXT );
+ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema
+create view res_v1 as select * from information_schema.schemata;
+ERROR 42S02: Unknown table 'res_v1' in information_schema
+alter table schemata modify catalog_name varchar(255);
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+update schemata set catalog_name = 'abc'
+ where schema_name = 'information_schema';
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+CREATE PROCEDURE sp_3_2_1_20()
+BEGIN
+INSERT INTO information_schema.schema_privileges (table_schema,privilege_type)
+VALUES('db2','insert');
+END//
+ERROR 42000: Unknown database 'information_schema'
+DELETE FROM schemata WHERE schema_name = 'information_schema';
+ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema'
+
+root@localhost NULL
+DROP USER 'u_6_401020'@'localhost';
+
+Testcase 3.2.2.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC character_sets;
+Field Type Null Key Default Extra
+CHARACTER_SET_NAME varchar(64) NO
+DEFAULT_COLLATE_NAME varchar(64) NO
+DESCRIPTION varchar(60) NO
+MAXLEN bigint(3) NO 0
+SHOW CREATE TABLE character_sets;
+Table Create Table
+CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '',
+ `DESCRIPTION` varchar(60) NOT NULL default '',
+ `MAXLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'character_sets'
+ORDER BY ordinal_position;
+COUNT(*)
+4
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'character_sets'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+
+Testcase 3.2.2.2:
+--------------------------------------------------------------------------------
+
+root@localhost information_schema
+SELECT * FROM information_schema.character_sets;
+CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
+big5 big5_chinese_ci Big5 Traditional Chinese 2
+dec8 dec8_swedish_ci DEC West European 1
+cp850 cp850_general_ci DOS West European 1
+hp8 hp8_english_ci HP West European 1
+koi8r koi8r_general_ci KOI8-R Relcom Russian 1
+latin1 latin1_swedish_ci cp1252 West European 1
+latin2 latin2_general_ci ISO 8859-2 Central European 1
+swe7 swe7_swedish_ci 7bit Swedish 1
+ascii ascii_general_ci US ASCII 1
+ujis ujis_japanese_ci EUC-JP Japanese 3
+sjis sjis_japanese_ci Shift-JIS Japanese 2
+hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
+tis620 tis620_thai_ci TIS620 Thai 1
+euckr euckr_korean_ci EUC-KR Korean 2
+koi8u koi8u_general_ci KOI8-U Ukrainian 1
+gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
+greek greek_general_ci ISO 8859-7 Greek 1
+cp1250 cp1250_general_ci Windows Central European 1
+gbk gbk_chinese_ci GBK Simplified Chinese 2
+latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
+armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
+utf8 utf8_general_ci UTF-8 Unicode 3
+ucs2 ucs2_general_ci UCS-2 Unicode 2
+cp866 cp866_general_ci DOS Russian 1
+keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
+macce macce_general_ci Mac Central European 1
+macroman macroman_general_ci Mac West European 1
+cp852 cp852_general_ci DOS Central European 1
+latin7 latin7_general_ci ISO 8859-13 Baltic 1
+cp1251 cp1251_general_ci Windows Cyrillic 1
+cp1256 cp1256_general_ci Windows Arabic 1
+cp1257 cp1257_general_ci Windows Baltic 1
+binary binary Binary pseudo charset 1
+geostd8 geostd8_general_ci GEOSTD8 Georgian 1
+cp932 cp932_japanese_ci SJIS for Windows Japanese 2
+eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
+
+Testcase 3.2.2.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.3.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC collations;
+Field Type Null Key Default Extra
+COLLATION_NAME varchar(64) NO
+CHARACTER_SET_NAME varchar(64) NO
+ID bigint(11) NO 0
+IS_DEFAULT varchar(3) NO
+IS_COMPILED varchar(3) NO
+SORTLEN bigint(3) NO 0
+SHOW CREATE TABLE collations;
+Table Create Table
+COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
+ `COLLATION_NAME` varchar(64) NOT NULL default '',
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `ID` bigint(11) NOT NULL default '0',
+ `IS_DEFAULT` varchar(3) NOT NULL default '',
+ `IS_COMPILED` varchar(3) NOT NULL default '',
+ `SORTLEN` bigint(3) NOT NULL default '0'
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collations'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collations'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+
+Testcase 3.2.3.2:
+--------------------------------------------------------------------------------
+SELECT * FROM collations;
+COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
+big5_chinese_ci big5 1 Yes Yes 1
+big5_bin big5 84 Yes 1
+dec8_swedish_ci dec8 3 Yes 0
+dec8_bin dec8 69 0
+cp850_general_ci cp850 4 Yes 0
+cp850_bin cp850 80 0
+hp8_english_ci hp8 6 Yes 0
+hp8_bin hp8 72 0
+koi8r_general_ci koi8r 7 Yes 0
+koi8r_bin koi8r 74 0
+latin1_german1_ci latin1 5 Yes 1
+latin1_swedish_ci latin1 8 Yes Yes 1
+latin1_danish_ci latin1 15 Yes 1
+latin1_german2_ci latin1 31 Yes 2
+latin1_bin latin1 47 Yes 1
+latin1_general_ci latin1 48 Yes 1
+latin1_general_cs latin1 49 Yes 1
+latin1_spanish_ci latin1 94 Yes 1
+latin2_czech_cs latin2 2 Yes 4
+latin2_general_ci latin2 9 Yes Yes 1
+latin2_hungarian_ci latin2 21 Yes 1
+latin2_croatian_ci latin2 27 Yes 1
+latin2_bin latin2 77 Yes 1
+swe7_swedish_ci swe7 10 Yes 0
+swe7_bin swe7 82 0
+ascii_general_ci ascii 11 Yes 0
+ascii_bin ascii 65 0
+ujis_japanese_ci ujis 12 Yes Yes 1
+ujis_bin ujis 91 Yes 1
+sjis_japanese_ci sjis 13 Yes Yes 1
+sjis_bin sjis 88 Yes 1
+hebrew_general_ci hebrew 16 Yes 0
+hebrew_bin hebrew 71 0
+tis620_thai_ci tis620 18 Yes Yes 4
+tis620_bin tis620 89 Yes 1
+euckr_korean_ci euckr 19 Yes Yes 1
+euckr_bin euckr 85 Yes 1
+koi8u_general_ci koi8u 22 Yes 0
+koi8u_bin koi8u 75 0
+gb2312_chinese_ci gb2312 24 Yes Yes 1
+gb2312_bin gb2312 86 Yes 1
+greek_general_ci greek 25 Yes 0
+greek_bin greek 70 0
+cp1250_general_ci cp1250 26 Yes Yes 1
+cp1250_czech_cs cp1250 34 Yes 2
+cp1250_croatian_ci cp1250 44 Yes 1
+cp1250_bin cp1250 66 Yes 1
+gbk_chinese_ci gbk 28 Yes Yes 1
+gbk_bin gbk 87 Yes 1
+latin5_turkish_ci latin5 30 Yes 0
+latin5_bin latin5 78 0
+armscii8_general_ci armscii8 32 Yes 0
+armscii8_bin armscii8 64 0
+utf8_general_ci utf8 33 Yes Yes 1
+utf8_bin utf8 83 Yes 1
+utf8_unicode_ci utf8 192 Yes 8
+utf8_icelandic_ci utf8 193 Yes 8
+utf8_latvian_ci utf8 194 Yes 8
+utf8_romanian_ci utf8 195 Yes 8
+utf8_slovenian_ci utf8 196 Yes 8
+utf8_polish_ci utf8 197 Yes 8
+utf8_estonian_ci utf8 198 Yes 8
+utf8_spanish_ci utf8 199 Yes 8
+utf8_swedish_ci utf8 200 Yes 8
+utf8_turkish_ci utf8 201 Yes 8
+utf8_czech_ci utf8 202 Yes 8
+utf8_danish_ci utf8 203 Yes 8
+utf8_lithuanian_ci utf8 204 Yes 8
+utf8_slovak_ci utf8 205 Yes 8
+utf8_spanish2_ci utf8 206 Yes 8
+utf8_roman_ci utf8 207 Yes 8
+utf8_persian_ci utf8 208 Yes 8
+utf8_esperanto_ci utf8 209 Yes 8
+utf8_hungarian_ci utf8 210 Yes 8
+ucs2_general_ci ucs2 35 Yes Yes 1
+ucs2_bin ucs2 90 Yes 1
+ucs2_unicode_ci ucs2 128 Yes 8
+ucs2_icelandic_ci ucs2 129 Yes 8
+ucs2_latvian_ci ucs2 130 Yes 8
+ucs2_romanian_ci ucs2 131 Yes 8
+ucs2_slovenian_ci ucs2 132 Yes 8
+ucs2_polish_ci ucs2 133 Yes 8
+ucs2_estonian_ci ucs2 134 Yes 8
+ucs2_spanish_ci ucs2 135 Yes 8
+ucs2_swedish_ci ucs2 136 Yes 8
+ucs2_turkish_ci ucs2 137 Yes 8
+ucs2_czech_ci ucs2 138 Yes 8
+ucs2_danish_ci ucs2 139 Yes 8
+ucs2_lithuanian_ci ucs2 140 Yes 8
+ucs2_slovak_ci ucs2 141 Yes 8
+ucs2_spanish2_ci ucs2 142 Yes 8
+ucs2_roman_ci ucs2 143 Yes 8
+ucs2_persian_ci ucs2 144 Yes 8
+ucs2_esperanto_ci ucs2 145 Yes 8
+ucs2_hungarian_ci ucs2 146 Yes 8
+cp866_general_ci cp866 36 Yes 0
+cp866_bin cp866 68 0
+keybcs2_general_ci keybcs2 37 Yes 0
+keybcs2_bin keybcs2 73 0
+macce_general_ci macce 38 Yes 0
+macce_bin macce 43 0
+macroman_general_ci macroman 39 Yes 0
+macroman_bin macroman 53 0
+cp852_general_ci cp852 40 Yes 0
+cp852_bin cp852 81 0
+latin7_estonian_cs latin7 20 0
+latin7_general_ci latin7 41 Yes 0
+latin7_general_cs latin7 42 0
+latin7_bin latin7 79 0
+cp1251_bulgarian_ci cp1251 14 0
+cp1251_ukrainian_ci cp1251 23 0
+cp1251_bin cp1251 50 0
+cp1251_general_ci cp1251 51 Yes 0
+cp1251_general_cs cp1251 52 0
+cp1256_general_ci cp1256 57 Yes 0
+cp1256_bin cp1256 67 0
+cp1257_lithuanian_ci cp1257 29 0
+cp1257_bin cp1257 58 0
+cp1257_general_ci cp1257 59 Yes 0
+binary binary 63 Yes Yes 1
+geostd8_general_ci geostd8 92 Yes 0
+geostd8_bin geostd8 93 0
+cp932_japanese_ci cp932 95 Yes Yes 1
+cp932_bin cp932 96 Yes 1
+eucjpms_japanese_ci eucjpms 97 Yes Yes 1
+eucjpms_bin eucjpms 98 Yes 1
+
+Testcase 3.2.3.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.4.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC collation_character_set_applicability;
+Field Type Null Key Default Extra
+COLLATION_NAME varchar(64) NO
+CHARACTER_SET_NAME varchar(64) NO
+SHOW CREATE TABLE collation_character_set_applicability;
+Table Create Table
+COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` (
+ `COLLATION_NAME` varchar(64) NOT NULL default '',
+ `CHARACTER_SET_NAME` varchar(64) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collation_character_set_applicability'
+ORDER BY ordinal_position;
+COUNT(*)
+2
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'collation_character_set_applicability'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.4.2:
+--------------------------------------------------------------------------------
+SELECT * FROM collation_character_set_applicability;
+COLLATION_NAME CHARACTER_SET_NAME
+big5_chinese_ci big5
+big5_bin big5
+dec8_swedish_ci dec8
+dec8_bin dec8
+cp850_general_ci cp850
+cp850_bin cp850
+hp8_english_ci hp8
+hp8_bin hp8
+koi8r_general_ci koi8r
+koi8r_bin koi8r
+latin1_german1_ci latin1
+latin1_swedish_ci latin1
+latin1_danish_ci latin1
+latin1_german2_ci latin1
+latin1_bin latin1
+latin1_general_ci latin1
+latin1_general_cs latin1
+latin1_spanish_ci latin1
+latin2_czech_cs latin2
+latin2_general_ci latin2
+latin2_hungarian_ci latin2
+latin2_croatian_ci latin2
+latin2_bin latin2
+swe7_swedish_ci swe7
+swe7_bin swe7
+ascii_general_ci ascii
+ascii_bin ascii
+ujis_japanese_ci ujis
+ujis_bin ujis
+sjis_japanese_ci sjis
+sjis_bin sjis
+hebrew_general_ci hebrew
+hebrew_bin hebrew
+tis620_thai_ci tis620
+tis620_bin tis620
+euckr_korean_ci euckr
+euckr_bin euckr
+koi8u_general_ci koi8u
+koi8u_bin koi8u
+gb2312_chinese_ci gb2312
+gb2312_bin gb2312
+greek_general_ci greek
+greek_bin greek
+cp1250_general_ci cp1250
+cp1250_czech_cs cp1250
+cp1250_croatian_ci cp1250
+cp1250_bin cp1250
+gbk_chinese_ci gbk
+gbk_bin gbk
+latin5_turkish_ci latin5
+latin5_bin latin5
+armscii8_general_ci armscii8
+armscii8_bin armscii8
+utf8_general_ci utf8
+utf8_bin utf8
+utf8_unicode_ci utf8
+utf8_icelandic_ci utf8
+utf8_latvian_ci utf8
+utf8_romanian_ci utf8
+utf8_slovenian_ci utf8
+utf8_polish_ci utf8
+utf8_estonian_ci utf8
+utf8_spanish_ci utf8
+utf8_swedish_ci utf8
+utf8_turkish_ci utf8
+utf8_czech_ci utf8
+utf8_danish_ci utf8
+utf8_lithuanian_ci utf8
+utf8_slovak_ci utf8
+utf8_spanish2_ci utf8
+utf8_roman_ci utf8
+utf8_persian_ci utf8
+utf8_esperanto_ci utf8
+utf8_hungarian_ci utf8
+ucs2_general_ci ucs2
+ucs2_bin ucs2
+ucs2_unicode_ci ucs2
+ucs2_icelandic_ci ucs2
+ucs2_latvian_ci ucs2
+ucs2_romanian_ci ucs2
+ucs2_slovenian_ci ucs2
+ucs2_polish_ci ucs2
+ucs2_estonian_ci ucs2
+ucs2_spanish_ci ucs2
+ucs2_swedish_ci ucs2
+ucs2_turkish_ci ucs2
+ucs2_czech_ci ucs2
+ucs2_danish_ci ucs2
+ucs2_lithuanian_ci ucs2
+ucs2_slovak_ci ucs2
+ucs2_spanish2_ci ucs2
+ucs2_roman_ci ucs2
+ucs2_persian_ci ucs2
+ucs2_esperanto_ci ucs2
+ucs2_hungarian_ci ucs2
+cp866_general_ci cp866
+cp866_bin cp866
+keybcs2_general_ci keybcs2
+keybcs2_bin keybcs2
+macce_general_ci macce
+macce_bin macce
+macroman_general_ci macroman
+macroman_bin macroman
+cp852_general_ci cp852
+cp852_bin cp852
+latin7_estonian_cs latin7
+latin7_general_ci latin7
+latin7_general_cs latin7
+latin7_bin latin7
+cp1251_bulgarian_ci cp1251
+cp1251_ukrainian_ci cp1251
+cp1251_bin cp1251
+cp1251_general_ci cp1251
+cp1251_general_cs cp1251
+cp1256_general_ci cp1256
+cp1256_bin cp1256
+cp1257_lithuanian_ci cp1257
+cp1257_bin cp1257
+cp1257_general_ci cp1257
+binary binary
+geostd8_general_ci geostd8
+geostd8_bin geostd8
+cp932_japanese_ci cp932
+cp932_bin cp932
+eucjpms_japanese_ci eucjpms
+eucjpms_bin eucjpms
+
+Testcase 3.2.4.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.5.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC column_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE column_privileges;
+Table Create Table
+COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'column_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+7
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'column_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT);
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost';
+GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost';
+GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION;
+GRANT ALL ON db_datadict.* TO 'user_3'@'localhost';
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE NO
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+
+FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has
+-------------------------------------------------------------------------------------
+GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION;
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+
+FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES
+---------------------------------------------------------------------------------
+SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 SELECT YES
+'user_3'@'localhost' NULL db_datadict res_t40502 INSERT YES
+SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%";
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict SELECT NO
+'user_3'@'localhost' NULL db_datadict INSERT NO
+'user_3'@'localhost' NULL db_datadict UPDATE NO
+'user_3'@'localhost' NULL db_datadict DELETE NO
+'user_3'@'localhost' NULL db_datadict CREATE NO
+'user_3'@'localhost' NULL db_datadict DROP NO
+'user_3'@'localhost' NULL db_datadict REFERENCES NO
+'user_3'@'localhost' NULL db_datadict INDEX NO
+'user_3'@'localhost' NULL db_datadict ALTER NO
+'user_3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO
+'user_3'@'localhost' NULL db_datadict LOCK TABLES NO
+'user_3'@'localhost' NULL db_datadict EXECUTE NO
+'user_3'@'localhost' NULL db_datadict CREATE VIEW NO
+'user_3'@'localhost' NULL db_datadict SHOW VIEW NO
+'user_3'@'localhost' NULL db_datadict CREATE ROUTINE NO
+'user_3'@'localhost' NULL db_datadict ALTER ROUTINE NO
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost';
+
+FIXME: check whether it is intended that *my* grants to others are *NOT* shown here
+-----------------------------------------------------------------------------------
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES
+
+user_2@localhost db_datadict
+SELECT * FROM information_schema.column_privileges
+WHERE grantee LIKE "'user%"
+ ORDER BY grantee, table_name, column_name, privilege_type;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO
+'user_2'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO
+
+root@localhost db_datadict
+DROP TABLE IF EXISTS db_datadict.res_t40502;
+DROP DATABASE IF EXISTS db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+
+Testcase 3.2.6.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC columns;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+ORDINAL_POSITION bigint(21) NO 0
+COLUMN_DEFAULT longtext YES NULL
+IS_NULLABLE varchar(3) NO
+DATA_TYPE varchar(64) NO
+CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL
+CHARACTER_OCTET_LENGTH bigint(21) YES NULL
+NUMERIC_PRECISION bigint(21) YES NULL
+NUMERIC_SCALE bigint(21) YES NULL
+CHARACTER_SET_NAME varchar(64) YES NULL
+COLLATION_NAME varchar(64) YES NULL
+COLUMN_TYPE longtext NO NULL
+COLUMN_KEY varchar(3) NO
+EXTRA varchar(20) NO
+PRIVILEGES varchar(80) NO
+COLUMN_COMMENT varchar(255) NO
+SHOW CREATE TABLE columns;
+Table Create Table
+COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `ORDINAL_POSITION` bigint(21) NOT NULL default '0',
+ `COLUMN_DEFAULT` longtext,
+ `IS_NULLABLE` varchar(3) NOT NULL default '',
+ `DATA_TYPE` varchar(64) NOT NULL default '',
+ `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL,
+ `CHARACTER_OCTET_LENGTH` bigint(21) default NULL,
+ `NUMERIC_PRECISION` bigint(21) default NULL,
+ `NUMERIC_SCALE` bigint(21) default NULL,
+ `CHARACTER_SET_NAME` varchar(64) default NULL,
+ `COLLATION_NAME` varchar(64) default NULL,
+ `COLUMN_TYPE` longtext NOT NULL,
+ `COLUMN_KEY` varchar(3) NOT NULL default '',
+ `EXTRA` varchar(20) NOT NULL default '',
+ `PRIVILEGES` varchar(80) NOT NULL default '',
+ `COLUMN_COMMENT` varchar(255) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ORDER BY ordinal_position;
+COUNT(*)
+19
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'columns'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+
+Testcase 3.2.6.2 + 3.2.6.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int);
+grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost';
+create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int);
+GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL db_datadict t_6_406001 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL db_datadict t_6_406001 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references
+NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL db_datadict t_6_406002 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL db_datadict t_6_406002 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
+NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
+NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
+NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
+NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
+NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
+NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references
+NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
+NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
+NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
+NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
+NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
+NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
+NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references
+NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
+NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
+NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
+NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
+NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
+NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references
+NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
+NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
+NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
+NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
+NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
+NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
+NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
+NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
+NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
+NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
+NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
+NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
+NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references
+NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references
+NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references
+NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references
+NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references
+NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references
+NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test1 tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test1 tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test1 tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test1 tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test1 tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test1 tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test1 tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test1 tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select
+NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references
+NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references
+NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references
+NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references
+NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references
+NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.columns
+ORDER BY table_schema, table_name, ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) insert
+NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert
+NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
+NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
+NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
+NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
+NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
+NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
+NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references
+NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references
+NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
+NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references
+NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
+NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references
+NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
+NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references
+NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
+NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references
+NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
+NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references
+NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references
+NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
+NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references
+NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references
+NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
+NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references
+NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references
+NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references
+NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references
+NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
+NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
+NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
+NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
+NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
+NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
+NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references
+NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references
+NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
+NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references
+NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
+NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references
+NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
+NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references
+NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references
+NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references
+NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references
+NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references
+NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references
+NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references
+NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
+NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references
+NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
+NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
+NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references
+NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references
+NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references
+NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references
+NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references
+NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references
+NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references
+NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references
+NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references
+NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references
+NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references
+NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references
+NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references
+NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references
+
+root@localhost db_datadict
+
+Show the quotient of COL and CML for all COLUMNS
+------------------------------------------------
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+1.0000 binary NULL NULL
+1.0000 blob NULL NULL
+1.0000 longblob NULL NULL
+1.0000 mediumblob NULL NULL
+1.0000 tinyblob NULL NULL
+1.0000 varbinary NULL NULL
+1.0000 char latin1 latin1_bin
+1.0000 char latin1 latin1_swedish_ci
+1.0000 enum latin1 latin1_swedish_ci
+1.0000 longtext latin1 latin1_swedish_ci
+1.0000 mediumtext latin1 latin1_swedish_ci
+1.0000 set latin1 latin1_swedish_ci
+1.0000 text latin1 latin1_swedish_ci
+1.0000 tinytext latin1 latin1_swedish_ci
+1.0000 longtext utf8 utf8_general_ci
+1.0000 text utf8 utf8_general_ci
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+2.0000 char ucs2 ucs2_general_ci
+2.0000 longtext ucs2 ucs2_general_ci
+2.0000 varchar ucs2 ucs2_general_ci
+2.0079 tinytext ucs2 ucs2_general_ci
+3.0000 char utf8 utf8_bin
+3.0000 enum utf8 utf8_bin
+3.0000 char utf8 utf8_general_ci
+3.0000 enum utf8 utf8_general_ci
+3.0000 set utf8 utf8_general_ci
+3.0000 varchar utf8 utf8_general_ci
+SELECT DISTINCT
+CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+DATA_TYPE,
+CHARACTER_SET_NAME,
+COLLATION_NAME
+FROM information_schema.columns
+WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
+ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
+COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
+NULL bigint NULL NULL
+NULL bit NULL NULL
+NULL date NULL NULL
+NULL datetime NULL NULL
+NULL decimal NULL NULL
+NULL double NULL NULL
+NULL double unsigned NULL NULL
+NULL double unsigned zerofill NULL NULL
+NULL float NULL NULL
+NULL float unsigned NULL NULL
+NULL float unsigned zerofill NULL NULL
+NULL int NULL NULL
+NULL mediumint NULL NULL
+NULL smallint NULL NULL
+NULL time NULL NULL
+NULL timestamp NULL NULL
+NULL tinyint NULL NULL
+NULL year NULL NULL
+NULL varchar latin1 latin1_bin
+--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
+--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
+SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
+TABLE_SCHEMA,
+TABLE_NAME,
+COLUMN_NAME,
+DATA_TYPE,
+CHARACTER_MAXIMUM_LENGTH,
+CHARACTER_OCTET_LENGTH,
+CHARACTER_SET_NAME,
+COLLATION_NAME,
+COLUMN_TYPE
+FROM information_schema.columns
+ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
+COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
+1.0000 db_datadict t_6_406001 f1 char 10 10 latin1 latin1_swedish_ci char(10)
+1.0000 db_datadict t_6_406001 f2 text 65535 65535 latin1 latin1_swedish_ci text
+NULL db_datadict t_6_406001 f3 date NULL NULL NULL NULL date
+NULL db_datadict t_6_406001 f4 int NULL NULL NULL NULL int(11)
+1.0000 db_datadict t_6_406002 f1 char 10 10 latin1 latin1_swedish_ci char(10)
+1.0000 db_datadict t_6_406002 f2 text 65535 65535 latin1 latin1_swedish_ci text
+NULL db_datadict t_6_406002 f3 date NULL NULL NULL NULL date
+NULL db_datadict t_6_406002 f4 int NULL NULL NULL NULL int(11)
+3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
+NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
+3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
+NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21)
+1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20)
+3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80)
+3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255)
+3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10)
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
+3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
+1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8)
+3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
+NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
+NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
+1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
+3.0000 information_schema SCHEMATA CATALOG_NAME varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMATA SQL_PATH varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema STATISTICS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1)
+3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2)
+3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1)
+NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
+3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10)
+3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16)
+3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16)
+3.0000 information_schema TABLES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
+NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21)
+NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
+NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
+NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
+3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21)
+3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
+3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4)
+1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9)
+3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
+NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime
+1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
+3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema VIEWS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096)
+3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
+3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
+1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
+3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8)
+3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
+3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
+3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
+3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64)
+NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
+3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql db User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql func name char 64 192 utf8 utf8_bin char(64)
+NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1)
+3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128)
+3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate')
+NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128)
+NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
+1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text
+1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text
+3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128)
+3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64)
+3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE')
+3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64)
+3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL')
+3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
+3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO')
+3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER')
+1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob
+3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64)
+1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob
+3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77)
+NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
+NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE')
+3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE')
+3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
+3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
+NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16)
+3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64)
+3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77)
+NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp
+3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view')
+3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
+NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N')
+NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20)
+NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11)
+3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64)
+NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20)
+NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned
+NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11)
+NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned
+3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8)
+3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60)
+3.0000 mysql user User char 16 48 utf8 utf8_bin char(16)
+1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41)
+3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
+3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED')
+1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob
+1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob
+1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob
+NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned
+NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned
+1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t1 f3 date NULL NULL NULL NULL date
+NULL test t1 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t1 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t10 f3 date NULL NULL NULL NULL date
+NULL test t10 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t10 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t11 f3 date NULL NULL NULL NULL date
+NULL test t11 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t11 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t2 f3 date NULL NULL NULL NULL date
+NULL test t2 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t2 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20)
+NULL test t3 f3 int NULL NULL NULL NULL int(11)
+1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t4 f3 date NULL NULL NULL NULL date
+NULL test t4 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t4 f6 int NULL NULL NULL NULL int(11)
+1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t7 f3 date NULL NULL NULL NULL date
+NULL test t7 f4 int NULL NULL NULL NULL int(11)
+1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t8 f3 date NULL NULL NULL NULL date
+NULL test t8 f4 int NULL NULL NULL NULL int(11)
+NULL test t9 f1 int NULL NULL NULL NULL int(11)
+1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test t9 f3 int NULL NULL NULL NULL int(11)
+1.0000 test tb1 f1 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb1 f2 char 1 1 latin1 latin1_bin char(1)
+1.0000 test tb1 f3 char 1 1 latin1 latin1_swedish_ci char(1)
+2.0079 test tb1 f4 tinytext 127 255 ucs2 ucs2_general_ci tinytext
+1.0000 test tb1 f5 text 65535 65535 latin1 latin1_swedish_ci text
+1.0000 test tb1 f6 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext
+1.0000 test tb1 f7 longtext 4294967295 4294967295 latin1 latin1_swedish_ci longtext
+1.0000 test tb1 f8 tinyblob 255 255 NULL NULL tinyblob
+1.0000 test tb1 f9 blob 65535 65535 NULL NULL blob
+1.0000 test tb1 f10 mediumblob 16777215 16777215 NULL NULL mediumblob
+1.0000 test tb1 f11 longblob 4294967295 4294967295 NULL NULL longblob
+1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1)
+NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4)
+NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned
+NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6)
+NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned
+NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9)
+NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned
+NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb1 f25 int NULL NULL NULL NULL int(11)
+NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned
+NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20)
+NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned
+NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb2 f73 double NULL NULL NULL NULL double
+NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f77 double NULL NULL NULL NULL double
+NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f81 float NULL NULL NULL NULL float
+NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f85 float NULL NULL NULL NULL float
+NULL test tb2 f86 float NULL NULL NULL NULL float
+NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f93 float NULL NULL NULL NULL float
+NULL test tb2 f94 double NULL NULL NULL NULL double
+NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb2 f101 date NULL NULL NULL NULL date
+NULL test tb2 f102 time NULL NULL NULL NULL time
+NULL test tb2 f103 datetime NULL NULL NULL NULL datetime
+NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp
+NULL test tb2 f105 year NULL NULL NULL NULL year(4)
+NULL test tb2 f106 year NULL NULL NULL NULL year(4)
+NULL test tb2 f107 year NULL NULL NULL NULL year(4)
+1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test tb2 f110 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test tb2 f111 varbinary 27 27 NULL NULL varbinary(27)
+1.0000 test tb2 f112 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test tb2 f113 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test tb2 f114 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test tb2 f115 varbinary 27 27 NULL NULL varbinary(27)
+1.0000 test tb2 f116 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test tb2 f117 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1)
+1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1)
+1.0000 test tb3 f121 tinytext 255 255 latin1 latin1_swedish_ci tinytext
+1.0000 test tb3 f122 text 65535 65535 latin1 latin1_swedish_ci text
+1.0000 test tb3 f123 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext
+2.0000 test tb3 f124 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext
+1.0000 test tb3 f125 tinyblob 255 255 NULL NULL tinyblob
+1.0000 test tb3 f126 blob 65535 65535 NULL NULL blob
+1.0000 test tb3 f127 mediumblob 16777215 16777215 NULL NULL mediumblob
+1.0000 test tb3 f128 longblob 4294967295 4294967295 NULL NULL longblob
+1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1)
+NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4)
+NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned
+NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill
+NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6)
+NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned
+NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill
+NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9)
+NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned
+NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill
+NULL test tb3 f142 int NULL NULL NULL NULL int(11)
+NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned
+NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill
+NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20)
+NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned
+NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill
+NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0)
+NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test tb4 f190 double NULL NULL NULL NULL double
+NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f194 double NULL NULL NULL NULL double
+NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f198 float NULL NULL NULL NULL float
+NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f202 float NULL NULL NULL NULL float
+NULL test tb4 f203 float NULL NULL NULL NULL float
+NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f210 float NULL NULL NULL NULL float
+NULL test tb4 f211 double NULL NULL NULL NULL double
+NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned
+NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned
+NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test tb4 f218 date NULL NULL NULL NULL date
+NULL test tb4 f219 time NULL NULL NULL NULL time
+NULL test tb4 f220 datetime NULL NULL NULL NULL datetime
+NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp
+NULL test tb4 f222 year NULL NULL NULL NULL year(4)
+NULL test tb4 f223 year NULL NULL NULL NULL year(4)
+NULL test tb4 f224 year NULL NULL NULL NULL year(4)
+1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test tb4 f227 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test tb4 f228 varbinary 27 27 NULL NULL varbinary(27)
+1.0000 test tb4 f229 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test tb4 f230 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test tb4 f231 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test tb4 f232 varbinary 27 27 NULL NULL varbinary(27)
+1.0000 test tb4 f233 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test tb4 f234 varbinary 192 192 NULL NULL varbinary(192)
+2.0000 test tb4 f235 char 255 510 ucs2 ucs2_general_ci char(255)
+1.0000 test tb4 f236 char 60 60 latin1 latin1_swedish_ci char(60)
+1.0000 test tb4 f237 char 255 255 latin1 latin1_bin char(255)
+NULL test tb4 f238 varchar 0 0 latin1 latin1_bin varchar(0)
+1.0000 test tb4 f239 varbinary 1000 1000 NULL NULL varbinary(1000)
+2.0000 test tb4 f240 varchar 120 240 ucs2 ucs2_general_ci varchar(120)
+2.0000 test tb4 f241 char 100 200 ucs2 ucs2_general_ci char(100)
+NULL test tb4 f242 bit NULL NULL NULL NULL bit(30)
+NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned
+NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill
+NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0)
+NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30)
+NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned
+NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned
+NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill
+NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill
+NULL test1 tb2 f73 double NULL NULL NULL NULL double
+NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f77 double NULL NULL NULL NULL double
+NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f81 float NULL NULL NULL NULL float
+NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f85 float NULL NULL NULL NULL float
+NULL test1 tb2 f86 float NULL NULL NULL NULL float
+NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f93 float NULL NULL NULL NULL float
+NULL test1 tb2 f94 double NULL NULL NULL NULL double
+NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned
+NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned
+NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill
+NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill
+NULL test1 tb2 f101 date NULL NULL NULL NULL date
+NULL test1 tb2 f102 time NULL NULL NULL NULL time
+NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime
+NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp
+NULL test1 tb2 f105 year NULL NULL NULL NULL year(4)
+NULL test1 tb2 f106 year NULL NULL NULL NULL year(4)
+NULL test1 tb2 f107 year NULL NULL NULL NULL year(4)
+1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum')
+1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set')
+1.0000 test1 tb2 f110 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test1 tb2 f111 varbinary 27 27 NULL NULL varbinary(27)
+1.0000 test1 tb2 f112 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test1 tb2 f113 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test1 tb2 f114 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test1 tb2 f115 varbinary 27 27 NULL NULL varbinary(27)
+1.0000 test1 tb2 f116 varbinary 64 64 NULL NULL varbinary(64)
+1.0000 test1 tb2 f117 varbinary 192 192 NULL NULL varbinary(192)
+1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20)
+1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test4 t6 f3 date NULL NULL NULL NULL date
+NULL test4 t6 f4 int NULL NULL NULL NULL int(11)
+1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25)
+NULL test4 t6 f6 int NULL NULL NULL NULL int(11)
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE IF EXISTS t_6_406001;
+DROP TABLE IF EXISTS t_6_406002;
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.7.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC key_column_usage;
+Field Type Null Key Default Extra
+CONSTRAINT_CATALOG varchar(4096) YES NULL
+CONSTRAINT_SCHEMA varchar(64) NO
+CONSTRAINT_NAME varchar(64) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+COLUMN_NAME varchar(64) NO
+ORDINAL_POSITION bigint(10) NO 0
+POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
+REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
+REFERENCED_TABLE_NAME varchar(64) YES NULL
+REFERENCED_COLUMN_NAME varchar(64) YES NULL
+SHOW CREATE TABLE key_column_usage;
+Table Create Table
+KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` (
+ `CONSTRAINT_CATALOG` varchar(4096) default NULL,
+ `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '',
+ `CONSTRAINT_NAME` varchar(64) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `ORDINAL_POSITION` bigint(10) NOT NULL default '0',
+ `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL,
+ `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL,
+ `REFERENCED_TABLE_NAME` varchar(64) default NULL,
+ `REFERENCED_COLUMN_NAME` varchar(64) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'key_column_usage'
+ORDER BY ordinal_position;
+COUNT(*)
+12
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'key_column_usage'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.7.2 + 3.2.7.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+CREATE TABLE t_40701 (
+f1 INT NOT NULL, PRIMARY KEY(f1),
+f2 INT, INDEX f2_ind(f2)
+);
+GRANT SELECT ON t_40701 to 'user_1'@'localhost';
+CREATE TABLE t_40702 (
+f1 INT NOT NULL, PRIMARY KEY(f1),
+f2 INT, INDEX f2_ind(f2)
+);
+GRANT SELECT ON t_40702 to 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL
+NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL
+NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL
+NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.key_column_usage
+ORDER BY constraint_catalog, constraint_schema, constraint_name,
+table_catalog, table_schema, table_name, ordinal_position;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
+NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE t_40701;
+DROP TABLE t_40702;
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.8.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC routines;
+Field Type Null Key Default Extra
+SPECIFIC_NAME varchar(64) NO
+ROUTINE_CATALOG varchar(4096) YES NULL
+ROUTINE_SCHEMA varchar(64) NO
+ROUTINE_NAME varchar(64) NO
+ROUTINE_TYPE varchar(9) NO
+DTD_IDENTIFIER varchar(64) YES NULL
+ROUTINE_BODY varchar(8) NO
+ROUTINE_DEFINITION longtext YES NULL
+EXTERNAL_NAME varchar(64) YES NULL
+EXTERNAL_LANGUAGE varchar(64) YES NULL
+PARAMETER_STYLE varchar(8) NO
+IS_DETERMINISTIC varchar(3) NO
+SQL_DATA_ACCESS varchar(64) NO
+SQL_PATH varchar(64) YES NULL
+SECURITY_TYPE varchar(7) NO
+CREATED datetime NO 0000-00-00 00:00:00
+LAST_ALTERED datetime NO 0000-00-00 00:00:00
+SQL_MODE longtext NO NULL
+ROUTINE_COMMENT varchar(64) NO
+DEFINER varchar(77) NO
+SHOW CREATE TABLE routines;
+Table Create Table
+ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
+ `SPECIFIC_NAME` varchar(64) NOT NULL default '',
+ `ROUTINE_CATALOG` varchar(4096) default NULL,
+ `ROUTINE_SCHEMA` varchar(64) NOT NULL default '',
+ `ROUTINE_NAME` varchar(64) NOT NULL default '',
+ `ROUTINE_TYPE` varchar(9) NOT NULL default '',
+ `DTD_IDENTIFIER` varchar(64) default NULL,
+ `ROUTINE_BODY` varchar(8) NOT NULL default '',
+ `ROUTINE_DEFINITION` longtext,
+ `EXTERNAL_NAME` varchar(64) default NULL,
+ `EXTERNAL_LANGUAGE` varchar(64) default NULL,
+ `PARAMETER_STYLE` varchar(8) NOT NULL default '',
+ `IS_DETERMINISTIC` varchar(3) NOT NULL default '',
+ `SQL_DATA_ACCESS` varchar(64) NOT NULL default '',
+ `SQL_PATH` varchar(64) default NULL,
+ `SECURITY_TYPE` varchar(7) NOT NULL default '',
+ `CREATED` datetime NOT NULL default '0000-00-00 00:00:00',
+ `LAST_ALTERED` datetime NOT NULL default '0000-00-00 00:00:00',
+ `SQL_MODE` longtext NOT NULL,
+ `ROUTINE_COMMENT` varchar(64) NOT NULL default '',
+ `DEFINER` varchar(77) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'routines'
+ORDER BY ordinal_position;
+COUNT(*)
+20
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'routines'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+
+Testcase 3.2.8.2 + 3.2.8.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+INSERT INTO res_6_408002_1(f1, f2, f3, f4)
+VALUES('abc', 'xyz', '1989-11-09', 0815);
+DROP PROCEDURE IF EXISTS sp_6_408002_1;
+CREATE PROCEDURE sp_6_408002_1()
+BEGIN
+SELECT * FROM db_datadict.res_6_408002_1;
+END//
+CREATE DATABASE db_datadict_2;
+USE db_datadict_2;
+CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT);
+INSERT INTO res_6_408002_2(f1, f2, f3, f4)
+VALUES('abc', 'xyz', '1990-10-03', 4711);
+DROP PROCEDURE IF EXISTS sp_6_408002_2;
+CREATE PROCEDURE sp_6_408002_2()
+BEGIN
+SELECT * FROM db_datadict_2.res_6_408002_2;
+END//
+GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost';
+GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER
+
+root@localhost db_datadict_2
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+use db_datadict;
+DROP TABLE res_6_408002_1;
+DROP PROCEDURE sp_6_408002_1;
+USE db_datadict_2;
+DROP TABLE res_6_408002_2;
+DROP PROCEDURE sp_6_408002_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.8.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+USE db_datadict;
+create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10);
+drop procedure if exists sp_6_408004;
+create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year);
+insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10);
+
+Checking the max. possible length of (currently) 4 GByte is not possible in this environment here.
+--------------------------------------------------------------------------------------------------
+create procedure sp_6_408004 ()
+begin
+declare done integer default 0;
+declare variable_number_1 longtext;
+declare variable_number_2 mediumint;
+declare variable_number_3 longblob;
+declare variable_number_4 real;
+declare variable_number_5 year;
+declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+begin
+open cursor_number_1;
+while done <> 1 do
+fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+variable_number_4, variable_number_5);
+end if;
+end while;
+begin
+begin
+set done = 0;
+open cursor_number_2;
+while done <> 1 do
+fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+set done = 0;
+open cursor_number_3;
+while done <> 1 do
+fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+end;
+begin
+set done = 0;
+open cursor_number_4;
+while done <> 1 do
+fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+begin
+set done = 0;
+open cursor_number_5;
+while done <> 1 do
+fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+end//
+call sp_6_408004 ();
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+@a
+test row
+select * from res_6_408004_2;
+f1 f2 f3 f4 f5
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+abc 98765 99999999 98765 2010
+SELECT *, LENGTH(routine_definition)
+FROM information_schema.routines
+WHERE routine_schema = 'db_datadict';
+SPECIFIC_NAME sp_6_408004
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_datadict
+ROUTINE_NAME sp_6_408004
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION begin
+declare done integer default 0;
+declare variable_number_1 longtext;
+declare variable_number_2 mediumint;
+declare variable_number_3 longblob;
+declare variable_number_4 real;
+declare variable_number_5 year;
+declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10;
+declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+begin
+open cursor_number_1;
+while done <> 1 do
+fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3,
+variable_number_4, variable_number_5);
+end if;
+end while;
+begin
+begin
+set done = 0;
+open cursor_number_2;
+while done <> 1 do
+fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+set done = 0;
+open cursor_number_3;
+while done <> 1 do
+fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+end;
+begin
+set done = 0;
+open cursor_number_4;
+while done <> 1 do
+fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+begin
+set done = 0;
+open cursor_number_5;
+while done <> 1 do
+fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5;
+if done <> 0 then
+insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5);
+end if;
+end while;
+end;
+begin
+set @a='test row';
+select @a;
+select @a;
+select @a;
+end;
+end
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED YYYY-MM-DD hh:mm:ss
+LAST_ALTERED YYYY-MM-DD hh:mm:ss
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+LENGTH(routine_definition) 2549
+use db_datadict;
+drop procedure sp_6_408004;
+drop table res_6_408004_1;
+drop table res_6_408004_2;
+use test;
+drop database db_datadict;
+
+Testcase 3.2.9.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC schemata;
+Field Type Null Key Default Extra
+CATALOG_NAME varchar(4096) YES NULL
+SCHEMA_NAME varchar(64) NO
+DEFAULT_CHARACTER_SET_NAME varchar(64) NO
+DEFAULT_COLLATION_NAME varchar(64) NO
+SQL_PATH varchar(4096) YES NULL
+SHOW CREATE TABLE schemata;
+Table Create Table
+SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` (
+ `CATALOG_NAME` varchar(4096) default NULL,
+ `SCHEMA_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '',
+ `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '',
+ `SQL_PATH` varchar(4096) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schemata'
+ORDER BY ordinal_position;
+COUNT(*)
+5
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schemata'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+
+Testcase 3.2.9.2 + 3.2.9.3:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict_1;
+CREATE DATABASE db_datadict_2;
+GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict_1,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+3
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict_1 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+3
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL db_datadict_2 latin1 latin1_swedish_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT COUNT(*) FROM information_schema.schemata;
+COUNT(*)
+2
+SELECT * FROM information_schema.schemata;
+CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
+NULL information_schema utf8 utf8_general_ci NULL
+NULL test latin1 latin1_swedish_ci NULL
+
+root@localhost information_schema
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE db_datadict_1;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.10.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC table_constraints;
+Field Type Null Key Default Extra
+CONSTRAINT_CATALOG varchar(4096) YES NULL
+CONSTRAINT_SCHEMA varchar(64) NO
+CONSTRAINT_NAME varchar(64) NO
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+CONSTRAINT_TYPE varchar(64) NO
+SHOW CREATE TABLE table_constraints;
+Table Create Table
+TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` (
+ `CONSTRAINT_CATALOG` varchar(4096) default NULL,
+ `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '',
+ `CONSTRAINT_NAME` varchar(64) NOT NULL default '',
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `CONSTRAINT_TYPE` varchar(64) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_constraints'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_constraints'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+
+Testcase 3.2.10.2 + 3.2.10.3:
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+USE db_datadict;
+CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+USE db_datadict_2;
+CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2));
+GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL db_datadict PRIMARY db_datadict res_6_401003_1 PRIMARY KEY
+SELECT COUNT(*) FROM information_schema.table_constraints;
+COUNT(*)
+1
+connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_constraints;
+CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
+NULL db_datadict_2 PRIMARY db_datadict_2 res_6_401003_2 PRIMARY KEY
+SELECT COUNT(*) FROM information_schema.table_constraints;
+COUNT(*)
+1
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE res_6_401003_1;
+USE db_datadict_2;
+DROP TABLE res_6_401003_2;
+USE test;
+DROP DATABASE db_datadict;
+DROP DATABASE db_datadict_2;
+
+Testcase 3.2.11.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC table_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE table_privileges;
+Table Create Table
+TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+6
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'table_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+create database db_datadict;
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+use db_datadict;
+create table tb1(f1 int, f2 int, f3 int);
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+SELECT * FROM information_schema.table_privileges
+WHERE table_name LIKE 'tb%';
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL db_datadict tb1 SELECT NO
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict tb1 SELECT YES
+'user_2'@'localhost' NULL db_datadict tb1 INSERT YES
+'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DELETE YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DROP YES
+'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES
+'user_2'@'localhost' NULL db_datadict tb1 INDEX YES
+'user_2'@'localhost' NULL db_datadict tb1 ALTER YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES
+'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES
+SELECT USER(), COUNT(*)
+FROM information_schema.table_privileges
+WHERE grantee = USER();
+USER() COUNT(*)
+user_2@localhost 0
+SELECT USER(), COUNT(*)
+FROM information_schema.table_privileges
+WHERE grantee = "'user_2'@'localhost'";
+USER() COUNT(*)
+user_2@localhost 11
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL db_datadict tb3 SELECT NO
+
+root@localhost db_datadict
+SELECT * FROM information_schema.table_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL db_datadict tb1 SELECT YES
+'user_2'@'localhost' NULL db_datadict tb1 INSERT YES
+'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DELETE YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE YES
+'user_2'@'localhost' NULL db_datadict tb1 DROP YES
+'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES
+'user_2'@'localhost' NULL db_datadict tb1 INDEX YES
+'user_2'@'localhost' NULL db_datadict tb1 ALTER YES
+'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES
+'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES
+'user_1'@'localhost' NULL db_datadict tb1 SELECT NO
+'user_3'@'localhost' NULL db_datadict tb3 SELECT NO
+
+root@localhost db_datadict
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+drop table db_datadict.tb1;
+drop table db_datadict.tb3;
+use test;
+drop database db_datadict;
+
+Testcase 3.2.12.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC tables;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+TABLE_TYPE varchar(64) NO
+ENGINE varchar(64) YES NULL
+VERSION bigint(21) YES NULL
+ROW_FORMAT varchar(10) YES NULL
+TABLE_ROWS bigint(21) YES NULL
+AVG_ROW_LENGTH bigint(21) YES NULL
+DATA_LENGTH bigint(21) YES NULL
+MAX_DATA_LENGTH bigint(21) YES NULL
+INDEX_LENGTH bigint(21) YES NULL
+DATA_FREE bigint(21) YES NULL
+AUTO_INCREMENT bigint(21) YES NULL
+CREATE_TIME datetime YES NULL
+UPDATE_TIME datetime YES NULL
+CHECK_TIME datetime YES NULL
+TABLE_COLLATION varchar(64) YES NULL
+CHECKSUM bigint(21) YES NULL
+CREATE_OPTIONS varchar(255) YES NULL
+TABLE_COMMENT varchar(80) NO
+SHOW CREATE TABLE tables;
+Table Create Table
+TABLES CREATE TEMPORARY TABLE `TABLES` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `TABLE_TYPE` varchar(64) NOT NULL default '',
+ `ENGINE` varchar(64) default NULL,
+ `VERSION` bigint(21) default NULL,
+ `ROW_FORMAT` varchar(10) default NULL,
+ `TABLE_ROWS` bigint(21) default NULL,
+ `AVG_ROW_LENGTH` bigint(21) default NULL,
+ `DATA_LENGTH` bigint(21) default NULL,
+ `MAX_DATA_LENGTH` bigint(21) default NULL,
+ `INDEX_LENGTH` bigint(21) default NULL,
+ `DATA_FREE` bigint(21) default NULL,
+ `AUTO_INCREMENT` bigint(21) default NULL,
+ `CREATE_TIME` datetime default NULL,
+ `UPDATE_TIME` datetime default NULL,
+ `CHECK_TIME` datetime default NULL,
+ `TABLE_COLLATION` varchar(64) default NULL,
+ `CHECKSUM` bigint(21) default NULL,
+ `CREATE_OPTIONS` varchar(255) default NULL,
+ `TABLE_COMMENT` varchar(80) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'tables'
+ORDER BY ordinal_position;
+COUNT(*)
+21
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'tables'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
+NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
+
+Testcase 3.2.12.2 + 3.2.12.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+create database db_datadict;
+CREATE USER 'user_1'@'localhost';
+GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.*
+TO 'user_1'@'localhost' WITH GRANT OPTION;
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+use db_datadict;
+create table tb1(f1 int, f2 int, f3 int);
+grant select on db_datadict.tb1 to 'user_1'@'localhost';
+GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+CREATE TABLE tb2 (f1 DECIMAL);
+CREATE TABLE tb3 (f1 TEXT);
+GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost';
+GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost';
+CREATE VIEW v3 AS SELECT * FROM tb3;
+GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost';
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+
+root@localhost db_datadict
+SELECT * FROM information_schema.tables
+WHERE table_schema = 'information_schema';
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO#
+SELECT * FROM information_schema.tables
+WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
+NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW
+NULL mysql columns_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Column privileges
+NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Database privileges
+NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
+NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
+NULL mysql proc BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Stored Procedures
+NULL mysql procs_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Procedure privileges
+NULL mysql tables_priv BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Table privileges
+NULL mysql time_zone BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# 6 YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zones
+NULL mysql time_zone_leap_second BASE TABLE MyISAM 10 Fixed 22 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Leap seconds information for time zones
+NULL mysql time_zone_name BASE TABLE MyISAM 10 Fixed 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone names
+NULL mysql time_zone_transition BASE TABLE MyISAM 10 Fixed 393 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transitions
+NULL mysql time_zone_transition_type BASE TABLE MyISAM 10 Fixed 31 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transition types
+NULL mysql user BASE TABLE MyISAM 10 Dynamic 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Users and global privileges
+NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test1 tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+NULL test4 t6 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP TABLE db_datadict.tb1;
+DROP TABLE db_datadict.tb3;
+DROP VIEW db_datadict.v3;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.13.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC views;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+VIEW_DEFINITION longtext NO NULL
+CHECK_OPTION varchar(8) NO
+IS_UPDATABLE varchar(3) NO
+DEFINER varchar(77) NO
+SECURITY_TYPE varchar(7) NO
+SHOW CREATE TABLE views;
+Table Create Table
+VIEWS CREATE TEMPORARY TABLE `VIEWS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `VIEW_DEFINITION` longtext NOT NULL,
+ `CHECK_OPTION` varchar(8) NOT NULL default '',
+ `IS_UPDATABLE` varchar(3) NOT NULL default '',
+ `DEFINER` varchar(77) NOT NULL default '',
+ `SECURITY_TYPE` varchar(7) NOT NULL default ''
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'views'
+ORDER BY ordinal_position;
+COUNT(*)
+8
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'views'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
+NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
+NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
+
+Testcase 3.2.13.2 + 3.2.13.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_no_views'@'localhost';
+USE db_datadict;
+CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT);
+CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302;
+CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302;
+GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost';
+GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost';
+GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER
+NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f1` AS `f1`,`db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER
+connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER
+connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER
+NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER
+connect(localhost,user_no_views,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.views;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
+
+root@localhost db_datadict
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_no_views'@'localhost';
+DROP VIEW v_granted_to_1;
+DROP TABLE tb_401302;
+DROP VIEW v_granted_glob;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.14.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC statistics;
+Field Type Null Key Default Extra
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+TABLE_NAME varchar(64) NO
+NON_UNIQUE bigint(1) NO 0
+INDEX_SCHEMA varchar(64) NO
+INDEX_NAME varchar(64) NO
+SEQ_IN_INDEX bigint(2) NO 0
+COLUMN_NAME varchar(64) NO
+COLLATION varchar(1) YES NULL
+CARDINALITY bigint(21) YES NULL
+SUB_PART bigint(3) YES NULL
+PACKED varchar(10) YES NULL
+NULLABLE varchar(3) NO
+INDEX_TYPE varchar(16) NO
+COMMENT varchar(16) YES NULL
+SHOW CREATE TABLE statistics;
+Table Create Table
+STATISTICS CREATE TEMPORARY TABLE `STATISTICS` (
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `TABLE_NAME` varchar(64) NOT NULL default '',
+ `NON_UNIQUE` bigint(1) NOT NULL default '0',
+ `INDEX_SCHEMA` varchar(64) NOT NULL default '',
+ `INDEX_NAME` varchar(64) NOT NULL default '',
+ `SEQ_IN_INDEX` bigint(2) NOT NULL default '0',
+ `COLUMN_NAME` varchar(64) NOT NULL default '',
+ `COLLATION` varchar(1) default NULL,
+ `CARDINALITY` bigint(21) default NULL,
+ `SUB_PART` bigint(3) default NULL,
+ `PACKED` varchar(10) default NULL,
+ `NULLABLE` varchar(3) NOT NULL default '',
+ `INDEX_TYPE` varchar(16) NOT NULL default '',
+ `COMMENT` varchar(16) default NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'statistics'
+ORDER BY ordinal_position;
+COUNT(*)
+15
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'statistics'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
+NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
+NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
+NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
+NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
+NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
+NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
+
+Testcase 3.2.14.2 + 3.2.14.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+CREATE DATABASE db_datadict;
+CREATE DATABASE db_datadict_2;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+USE db_datadict;
+create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION;
+USE db_datadict_2;
+create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2));
+grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+
+root@localhost db_datadict_2
+REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.statistics
+WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%');
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict tb_6_401402_2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_2 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_2 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_2 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE
+NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE
+NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
+NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE
+NULL mysql proc 0 mysql PRIMARY 3 type A 0 NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE
+NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE
+NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE
+NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 2 NULL NULL BTREE
+NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
+NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE
+NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE
+NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE
+NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
+NULL mysql user 0 mysql PRIMARY 2 User A 5 NULL NULL BTREE
+
+user_1@localhost test
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE
+NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE
+NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE
+
+user_2@localhost test
+SELECT * FROM information_schema.statistics;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
+
+root@localhost db_datadict_2
+USE db_datadict;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP TABLE tb_6_401402_1;
+DROP TABLE tb_6_401402_2;
+USE test;
+DROP DATABASE db_datadict;
+
+Testcase 3.2.15.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC schema_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+TABLE_SCHEMA varchar(64) NO
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE schema_privileges;
+Table Create Table
+SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `TABLE_SCHEMA` varchar(64) NOT NULL default '',
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schema_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+5
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'schema_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.15.2:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+create database db_datadict;
+create database db_datadict_2;
+CREATE USER 'u_6_401502'@'localhost';
+use db_datadict;
+create table res_6_401502(f1 int, f2 int, f3 int);
+grant insert on db_datadict.* to 'u_6_401502'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401502'@'localhost' NULL db_datadict INSERT NO
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+connect(localhost,u_6_401502,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401502'@'localhost' NULL db_datadict INSERT NO
+use db_datadict;
+
+root@localhost db_datadict
+DROP USER 'u_6_401502'@'localhost';
+drop table res_6_401502;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+
+Testcase 3.2.15.3 + 3.2.15.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_2;
+create database db_datadict;
+create database db_datadict_2;
+CREATE USER 'u_6_401503_1'@'localhost';
+CREATE USER 'u_6_401503_2'@'localhost';
+CREATE USER 'u_6_401503_3'@'localhost';
+use db_datadict;
+create table res_6_401503_1(f1 int, f2 int, f3 int);
+use db_datadict_2;
+create table res_6_401503_2(f1 int, f2 int, f3 int);
+grant update on db_datadict.* to 'u_6_401503_1'@'localhost';
+grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO
+'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO
+''@'%' NULL test SELECT NO
+''@'%' NULL test INSERT NO
+''@'%' NULL test UPDATE NO
+''@'%' NULL test DELETE NO
+''@'%' NULL test CREATE NO
+''@'%' NULL test DROP NO
+''@'%' NULL test REFERENCES NO
+''@'%' NULL test INDEX NO
+''@'%' NULL test ALTER NO
+''@'%' NULL test CREATE TEMPORARY TABLES NO
+''@'%' NULL test LOCK TABLES NO
+''@'%' NULL test CREATE VIEW NO
+''@'%' NULL test SHOW VIEW NO
+''@'%' NULL test CREATE ROUTINE NO
+''@'%' NULL test\_% SELECT NO
+''@'%' NULL test\_% INSERT NO
+''@'%' NULL test\_% UPDATE NO
+''@'%' NULL test\_% DELETE NO
+''@'%' NULL test\_% CREATE NO
+''@'%' NULL test\_% DROP NO
+''@'%' NULL test\_% REFERENCES NO
+''@'%' NULL test\_% INDEX NO
+''@'%' NULL test\_% ALTER NO
+''@'%' NULL test\_% CREATE TEMPORARY TABLES NO
+''@'%' NULL test\_% LOCK TABLES NO
+''@'%' NULL test\_% CREATE VIEW NO
+''@'%' NULL test\_% SHOW VIEW NO
+''@'%' NULL test\_% CREATE ROUTINE NO
+connect(localhost,u_6_401503_1,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO
+connect(localhost,u_6_401503_2,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO
+connect(localhost,u_6_401503_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.schema_privileges;
+GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
+
+root@localhost db_datadict_2
+use db_datadict;
+DROP USER 'u_6_401503_1'@'localhost';
+DROP USER 'u_6_401503_2'@'localhost';
+DROP USER 'u_6_401503_3'@'localhost';
+drop table res_6_401503_1;
+use db_datadict_2;
+drop table res_6_401503_2;
+use test;
+drop database db_datadict;
+drop database db_datadict_2;
+
+Testcase 3.2.16.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC user_privileges;
+Field Type Null Key Default Extra
+GRANTEE varchar(81) NO
+TABLE_CATALOG varchar(4096) YES NULL
+PRIVILEGE_TYPE varchar(64) NO
+IS_GRANTABLE varchar(3) NO
+SHOW CREATE TABLE user_privileges;
+Table Create Table
+USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` (
+ `GRANTEE` varchar(81) NOT NULL default '',
+ `TABLE_CATALOG` varchar(4096) default NULL,
+ `PRIVILEGE_TYPE` varchar(64) NOT NULL default '',
+ `IS_GRANTABLE` varchar(3) NOT NULL default ''
+) ENGINE=MEMORY DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'user_privileges'
+ORDER BY ordinal_position;
+COUNT(*)
+4
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'user_privileges'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
+NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+
+Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_datadict;
+CREATE DATABASE db_datadict;
+CREATE USER 'user_1'@'localhost';
+CREATE USER 'user_2'@'localhost';
+CREATE USER 'user_3'@'localhost';
+GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost';
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+GRANT INSERT ON *.* TO 'user_2'@'localhost';
+GRANT UPDATE ON *.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+FIXME (see Bug 12269) Here we expect more than only <USAGE> for user_1
+----------------------------------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+add GRANT OPTION db_datadict.* to user_1
+----------------------------------------
+GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+FIXME (see Bug 12269) Here the <YES> is missing for the GRANT OPTION for user_1
+-------------------------------------------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+
+Now add SELECT on *.* to user_1
+-------------------------------
+
+root@localhost information_schema
+GRANT SELECT ON *.* TO 'user_1'@'localhost';
+
+Here <SELECT NO> is shown correctly for user_1
+----------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+
+Here <SELECT YES> is shown correctly for user_1
+-----------------------------------------------
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL SELECT YES
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_2@localhost
+GRANT INSERT, UPDATE ON *.* TO 'user_2'@'localhost'
+connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK);
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_3'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_3@localhost
+GRANT USAGE ON *.* TO 'user_3'@'localhost'
+
+revoke privileges from user_1
+-----------------------------
+
+root@localhost information_schema
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+
+user_1@localhost db_datadict
+CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_55'
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_66'
+
+add ALL on db_datadict.* (and select on mysql.user) to user_1
+-------------------------------------------------------------
+
+root@localhost information_schema
+GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION;
+GRANT SELECT ON mysql.user TO 'user_1'@'localhost';
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
+ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_56'
+USE db_datadict;
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION
+GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost'
+CREATE TABLE tb_57 ( c1 TEXT );
+
+revoke privileges from user_1
+-----------------------------
+
+root@localhost information_schema
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost';
+FLUSH PRIVILEGES;
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+'user_2'@'localhost' NULL INSERT NO
+'user_2'@'localhost' NULL UPDATE NO
+'user_3'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections
+localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+
+user_1@localhost db_datadict
+SELECT * FROM information_schema.user_privileges
+WHERE grantee LIKE "%user%"
+ ORDER BY grantee, table_catalog, privilege_type;
+GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
+'user_1'@'localhost' NULL USAGE NO
+SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user;
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user'
+SHOW GRANTS;
+Grants for user_1@localhost
+GRANT USAGE ON *.* TO 'user_1'@'localhost'
+CREATE TABLE db_datadict.tb_58 ( c1 TEXT );
+USE db_datadict;
+ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_datadict'
+CREATE TABLE db_datadict.tb_59 ( c1 TEXT );
+
+root@localhost information_schema
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+DROP USER 'user_3'@'localhost';
+DROP DATABASE IF EXISTS db_datadict;
+
+Testcase 3.2.17: Checks on Performance - not here in this script!
+--------------------------------------------------------------------------------
+
+Testcase 3.2.18.1:
+--------------------------------------------------------------------------------
+USE information_schema;
+DESC triggers;
+Field Type Null Key Default Extra
+TRIGGER_CATALOG varchar(4096) YES NULL
+TRIGGER_SCHEMA varchar(64) NO
+TRIGGER_NAME varchar(64) NO
+EVENT_MANIPULATION varchar(6) NO
+EVENT_OBJECT_CATALOG varchar(4096) YES NULL
+EVENT_OBJECT_SCHEMA varchar(64) NO
+EVENT_OBJECT_TABLE varchar(64) NO
+ACTION_ORDER bigint(4) NO 0
+ACTION_CONDITION longtext YES NULL
+ACTION_STATEMENT longtext NO NULL
+ACTION_ORIENTATION varchar(9) NO
+ACTION_TIMING varchar(6) NO
+ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL
+ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL
+ACTION_REFERENCE_OLD_ROW varchar(3) NO
+ACTION_REFERENCE_NEW_ROW varchar(3) NO
+CREATED datetime YES NULL
+SQL_MODE longtext NO NULL
+DEFINER longtext NO NULL
+SHOW CREATE TABLE triggers;
+Table Create Table
+TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` (
+ `TRIGGER_CATALOG` varchar(4096) default NULL,
+ `TRIGGER_SCHEMA` varchar(64) NOT NULL default '',
+ `TRIGGER_NAME` varchar(64) NOT NULL default '',
+ `EVENT_MANIPULATION` varchar(6) NOT NULL default '',
+ `EVENT_OBJECT_CATALOG` varchar(4096) default NULL,
+ `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '',
+ `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '',
+ `ACTION_ORDER` bigint(4) NOT NULL default '0',
+ `ACTION_CONDITION` longtext,
+ `ACTION_STATEMENT` longtext NOT NULL,
+ `ACTION_ORIENTATION` varchar(9) NOT NULL default '',
+ `ACTION_TIMING` varchar(6) NOT NULL default '',
+ `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL,
+ `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL,
+ `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '',
+ `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '',
+ `CREATED` datetime default NULL,
+ `SQL_MODE` longtext NOT NULL,
+ `DEFINER` longtext NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'triggers'
+ORDER BY ordinal_position;
+COUNT(*)
+19
+SELECT * FROM information_schema.columns
+WHERE table_schema = 'information_schema'
+ AND table_name = 'triggers'
+ORDER BY ordinal_position;
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select
+NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
+NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
+NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
+NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
+NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
+
+Testcase 3.2.18.2 + 3.2.18.3:
+--------------------------------------------------------------------------------
+
+Testcase 3.2.19.1:
+--------------------------------------------------------------------------------
+
+checking a table that will be implemented later
+-----------------------------------------------
+DESC parameters;
+ERROR 42S02: Unknown table 'parameters' in information_schema
+
+Testcase 3.2.20.1:
+--------------------------------------------------------------------------------
+
+checking a table that will be implemented later
+-----------------------------------------------
+DESC referential_constraints;
+ERROR 42S02: Unknown table 'referential_constraints' in information_schema
+
+*** End of Data Dictionary Tests ***
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS test.tb1;
+DROP TABLE IF EXISTS test.tb2;
+DROP TABLE IF EXISTS test.tb3;
+DROP TABLE IF EXISTS test.tb4;
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t2;
+DROP TABLE IF EXISTS test.t3;
+DROP TABLE IF EXISTS test.t4;
+DROP TABLE IF EXISTS test.t7;
+DROP TABLE IF EXISTS test.t8;
+DROP TABLE IF EXISTS test.t9;
+DROP TABLE IF EXISTS test.t10;
+DROP TABLE IF EXISTS test.t11;
+DROP DATABASE IF EXISTS test1;
+DROP DATABASE IF EXISTS test4;
+DROP DATABASE IF EXISTS db_datadict;
+DROP DATABASE IF EXISTS db_datadict_1;
+DROP DATABASE IF EXISTS db_datadict_2;
diff --git a/mysql-test/suite/funcs_1/r/myisam__load.result b/mysql-test/suite/funcs_1/r/myisam__load.result
new file mode 100644
index 00000000000..c1b9c89b257
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam__load.result
@@ -0,0 +1 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
diff --git a/mysql-test/suite/funcs_1/r/myisam_bitdata.result b/mysql-test/suite/funcs_1/r/myisam_bitdata.result
new file mode 100644
index 00000000000..8d78b70c333
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_bitdata.result
@@ -0,0 +1,76 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb4 ;
+create table tb4 (
+f176 numeric (0) unsigned not null DEFAULT 9,
+f177 numeric (64) unsigned not null DEFAULT 9,
+f178 numeric (0) zerofill not null DEFAULT 9,
+f179 numeric (64) zerofill not null DEFAULT 9,
+f180 numeric (0) unsigned zerofill not null DEFAULT 9,
+f181 numeric (64) unsigned zerofill not null DEFAULT 9,
+f182 numeric (0,0) not null DEFAULT 9,
+f183 numeric (63,30) not null DEFAULT 9,
+f184 numeric (0,0) unsigned not null DEFAULT 9,
+f185 numeric (63,30) unsigned not null DEFAULT 9,
+f186 numeric (0,0) zerofill not null DEFAULT 9,
+f187 numeric (63,30) zerofill not null DEFAULT 9,
+f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
+f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
+f190 real not null DEFAULT 88.8,
+f191 real unsigned not null DEFAULT 88.8,
+f192 real zerofill not null DEFAULT 88.8,
+f193 real unsigned zerofill not null DEFAULT 88.8,
+f194 double not null DEFAULT 55.5,
+f195 double unsigned not null DEFAULT 55.5,
+f196 double zerofill not null DEFAULT 55.5,
+f197 double unsigned zerofill not null DEFAULT 55.5,
+f198 float,
+f199 float unsigned,
+f200 float zerofill,
+f201 float unsigned zerofill,
+f202 float(0),
+f203 float(23),
+f204 float(0) unsigned,
+f205 float(23) unsigned,
+f206 float(0) zerofill,
+f207 float(23) zerofill,
+f208 float(0) unsigned zerofill,
+f209 float(23) unsigned zerofill,
+f210 float(24),
+f211 float(53),
+f212 float(24) unsigned,
+f213 float(53) unsigned,
+f214 float(24) zerofill,
+f215 float(53) zerofill,
+f216 float(24) unsigned zerofill,
+f217 float(53) unsigned zerofill,
+f218 date,
+f219 time,
+f220 datetime,
+f221 timestamp,
+f222 year,
+f223 year(3),
+f224 year(4),
+f225 enum("1enum","2enum"),
+f226 set("1set","2set"),
+f227 VARBINARY(64),
+f228 VARBINARY(27),
+f229 VARBINARY(64),
+f230 VARBINARY(192),
+f231 VARBINARY(192),
+f232 VARBINARY(27),
+f233 VARBINARY(64),
+f234 VARBINARY(192),
+f235 char(255) unicode,
+f236 char(60) ascii,
+f237 char(255) binary,
+f238 varchar(0) binary,
+f239 varbinary(1000),
+f240 varchar(120) unicode,
+f241 char(100) unicode,
+f242 bit(30)
+) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ;
+
+NOT YET IMPLEMENTED: bitdata tests
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_cursors.result b/mysql-test/suite/funcs_1/r/myisam_cursors.result
new file mode 100644
index 00000000000..35b567105f7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_cursors.result
@@ -0,0 +1,84 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb1 ;
+create table tb1 (
+f1 char,
+f2 char binary,
+f3 char ascii,
+f4 tinytext unicode,
+f5 text,
+f6 mediumtext,
+f7 longtext,
+f8 tinyblob,
+f9 blob,
+f10 mediumblob,
+f11 longblob,
+f12 binary,
+f13 tinyint,
+f14 tinyint unsigned,
+f15 tinyint zerofill,
+f16 tinyint unsigned zerofill,
+f17 smallint,
+f18 smallint unsigned,
+f19 smallint zerofill,
+f20 smallint unsigned zerofill,
+f21 mediumint,
+f22 mediumint unsigned,
+f23 mediumint zerofill,
+f24 mediumint unsigned zerofill,
+f25 int,
+f26 int unsigned,
+f27 int zerofill,
+f28 int unsigned zerofill,
+f29 bigint,
+f30 bigint unsigned,
+f31 bigint zerofill,
+f32 bigint unsigned zerofill,
+f33 decimal not null DEFAULT 9.9,
+f34 decimal unsigned not null DEFAULT 9.9,
+f35 decimal zerofill not null DEFAULT 9.9,
+f36 decimal unsigned zerofill not null DEFAULT 9.9,
+f37 decimal (0) not null DEFAULT 9.9,
+f38 decimal (64) not null DEFAULT 9.9,
+f39 decimal (0) unsigned not null DEFAULT 9.9,
+f40 decimal (64) unsigned not null DEFAULT 9.9,
+f41 decimal (0) zerofill not null DEFAULT 9.9,
+f42 decimal (64) zerofill not null DEFAULT 9.9,
+f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
+f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
+f45 decimal (0,0) not null DEFAULT 9.9,
+f46 decimal (63,30) not null DEFAULT 9.9,
+f47 decimal (0,0) unsigned not null DEFAULT 9.9,
+f48 decimal (63,30) unsigned not null DEFAULT 9.9,
+f49 decimal (0,0) zerofill not null DEFAULT 9.9,
+f50 decimal (63,30) zerofill not null DEFAULT 9.9,
+f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
+f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
+f53 numeric not null DEFAULT 99,
+f54 numeric unsigned not null DEFAULT 99,
+f55 numeric zerofill not null DEFAULT 99,
+f56 numeric unsigned zerofill not null DEFAULT 99,
+f57 numeric (0) not null DEFAULT 99,
+f58 numeric (64) not null DEFAULT 99
+) engine = myisam;
+Warnings:
+Note 1265 Data truncated for column 'f33' at row 1
+Note 1265 Data truncated for column 'f34' at row 1
+Note 1265 Data truncated for column 'f35' at row 1
+Note 1265 Data truncated for column 'f36' at row 1
+Note 1265 Data truncated for column 'f37' at row 1
+Note 1265 Data truncated for column 'f38' at row 1
+Note 1265 Data truncated for column 'f39' at row 1
+Note 1265 Data truncated for column 'f40' at row 1
+Note 1265 Data truncated for column 'f41' at row 1
+Note 1265 Data truncated for column 'f42' at row 1
+Note 1265 Data truncated for column 'f43' at row 1
+Note 1265 Data truncated for column 'f44' at row 1
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ;
+
+NOT YET IMPLEMENTED: cursor tests
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_func_view.result b/mysql-test/suite/funcs_1/r/myisam_func_view.result
new file mode 100644
index 00000000000..94cba9796a2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_func_view.result
@@ -0,0 +1,5088 @@
+
+! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1_values
+(
+id BIGINT AUTO_INCREMENT,
+select_id BIGINT,
+PRIMARY KEY(id)
+) ENGINE = 'MYISAM' ;
+ALTER TABLE t1_values ADD my_char_30 CHAR(30);
+ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000);
+ALTER TABLE t1_values ADD my_binary_30 BINARY(30);
+ALTER TABLE t1_values ADD my_varbinary_1000 VARBINARY(1000);
+ALTER TABLE t1_values ADD my_datetime DATETIME;
+ALTER TABLE t1_values ADD my_date DATE;
+ALTER TABLE t1_values ADD ts_dummy TIMESTAMP;
+ALTER TABLE t1_values ADD my_timestamp TIMESTAMP;
+ALTER TABLE t1_values ADD my_time TIME;
+ALTER TABLE t1_values ADD my_year YEAR;
+ALTER TABLE t1_values ADD my_bigint BIGINT;
+ALTER TABLE t1_values ADD my_double DOUBLE;
+ALTER TABLE t1_values ADD my_decimal DECIMAL(64,30);
+SET sql_mode = 'traditional';
+INSERT INTO t1_values SET id = 0;
+INSERT INTO t1_values SET
+my_char_30 = '',
+my_varchar_1000 = '',
+my_binary_30 = '',
+my_varbinary_1000 = '',
+my_datetime = '0001-01-01 00:00:00',
+my_date = '0001-01-01',
+my_timestamp = '1970-01-01 03:00:01',
+my_time = '-838:59:59',
+my_year = '1901',
+my_bigint = -9223372036854775808,
+my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 ,
+my_double = -1.7976931348623E+308;
+INSERT INTO t1_values SET
+my_char_30 = '<--------30 characters------->',
+my_varchar_1000 = CONCAT('<---------1000 characters',
+RPAD('',965,'-'),'--------->'),
+my_binary_30 = '<--------30 characters------->',
+my_varbinary_1000 = CONCAT('<---------1000 characters',
+RPAD('',965,'-'),'--------->'),
+my_datetime = '9999-12-31 23:59:59',
+my_date = '9999-12-31',
+my_timestamp = '2038-01-01 02:59:59',
+my_time = '838:59:59',
+my_year = 2155,
+my_bigint = 9223372036854775807,
+my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 ,
+my_double = 1.7976931348623E+308;
+INSERT INTO t1_values SET
+my_char_30 = ' ---äÖüß@µ*$-- ',
+my_varchar_1000 = ' ---äÖüß@µ*$-- ',
+my_binary_30 = ' ---äÖüß@µ*$-- ',
+my_varbinary_1000 = ' ---äÖüß@µ*$-- ',
+my_datetime = '2004-02-29 23:59:59',
+my_date = '2004-02-29',
+my_timestamp = '2004-02-29 23:59:59',
+my_time = '13:00:00',
+my_year = 2000,
+my_bigint = 0,
+my_decimal = 0.0,
+my_double = 0;
+INSERT INTO t1_values SET
+my_char_30 = '-1',
+my_varchar_1000 = '-1',
+my_binary_30 = '-1',
+my_varbinary_1000 = '-1',
+my_datetime = '2005-06-28 10:00:00',
+my_date = '2005-06-28',
+my_timestamp = '2005-06-28 10:00:00',
+my_time = '10:00:00',
+my_year = 2005,
+my_bigint = -1,
+my_decimal = -1.000000000000000000000000000000,
+my_double = -0.1E+1;
+PREPARE ins_sel_with_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'No'" ;
+PREPARE ins_sel_no_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'Yes'" ;
+SET sql_mode = 'traditional';
+SET @my_select = 'SELECT sqrt(my_bigint), my_bigint, id FROM t1_values';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 4;
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = -25;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '2005-06-27';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 20050627;
+INSERT INTO t1_values SET select_id = @select_id,
+my_double = +20.050627E+6;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '2005-06-27 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 200506271758;
+INSERT INTO t1_values SET select_id = @select_id,
+my_double = +0.0200506271758E+13;
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '1 17:58';
+INSERT INTO t1_values SET select_id = @select_id,
+my_bigint = 1758;
+
+some statements disabled because of
+Bug#12440: CAST(data type DOUBLE AS TIME) strange results
+--------------------------------------------------------------------------------
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varchar_1000 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_binary_30 = '-3333.3333';
+INSERT INTO t1_values SET select_id = @select_id,
+my_varbinary_1000 = '-3333.3333';
+
+some statements disabled because of
+Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian
+--------------------------------------------------------------------------------
+
+"Attention: CAST --> SIGNED INTEGER
+ The file with expected results suffers from
+ Bug#5083 Big integer values are inserted as negative into
+ decimal/string columns
+ Bug#5913 Traditional mode: BIGINT range not correctly delimited
+ Both have the status: To be fixed later"
+--------------------------------------------------------------------------------
+
+some statements disabled because of
+Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result
+--------------------------------------------------------------------------------
+
+"Attention: CAST --> UNSIGNED INTEGER
+ The file with expected results suffers from Bug 5083 5913 9809"
+--------------------------------------------------------------------------------
+
+some statements disabled because of
+Bugs#8663: cant use bgint unsigned as input to cast
+--------------------------------------------------------------------------------
+SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values';
+
+"Attention: IF(my_year IS NULL, ...
+ The file with expected results suffers from
+ Bug#11689. successful CREATE VIEW but SELECT on view fails."
+--------------------------------------------------------------------------------
+SET @my_select = 'SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT INSTR(my_char_30, ''char''),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values';
+SET @my_select =
+'SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values';
+
+"Attention: LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', <numeric column>)
+ The file with expected results suffers from Bug 10963 11728"
+ and the testcases with length = BIGINT or DOUBLE column are deactivated,
+because there are 32/64 Bit differences
+--------------------------------------------------------------------------------
+SET @my_select =
+'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_decimal), my_decimal, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select =
+'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''char'', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_char_30, 3),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_binary_30, 3),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_bigint),
+my_bigint, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_double),
+my_double, id FROM t1_values';
+SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', my_decimal),
+my_decimal, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values';
+SET @my_select = 'SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values';
+SET @my_select =
+'SELECT CONCAT(''A'',my_char_30), my_char_30, id FROM t1_values';
+SET @my_select = 'SELECT my_char_30, id FROM t1_values';
+INSERT INTO t1_values SET select_id = @select_id,
+my_char_30 = 'Viana do Castelo';
+SET sql_mode = '';
+
+"# The basic preparations end and the main test starts here"
+--------------------------------------------------------------------------------
+CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values;
+SELECT my_char_30, id FROM t1_values
+WHERE select_id = 187 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 187 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values;
+SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values
+WHERE select_id = 186 OR select_id IS NULL;
+CONCAT('A',my_char_30) my_char_30 id
+NULL NULL 1
+A 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 186 OR select_id IS NULL);
+CONCAT('A',my_char_30) my_char_30 id
+NULL NULL 1
+A 2
+A<--------30 characters-------> <--------30 characters-------> 3
+A ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+A-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LTRIM(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 185 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 185 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LTRIM(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 184 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 184 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LTRIM(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 183 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 183 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LTRIM(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 182 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 182 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOWER(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 181 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 181 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LOWER(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 180 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 180 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LOWER(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 179 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 179 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LOWER(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 178 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 178 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_decimal),
+my_decimal, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_decimal),
+my_decimal, id FROM t1_values
+WHERE select_id = 177 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 177 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_double),
+my_double, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_double),
+my_double, id FROM t1_values
+WHERE select_id = 176 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 176 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_bigint),
+my_bigint, id FROM t1_values;
+SELECT LOCATE('-', ' - -ABC', my_bigint),
+my_bigint, id FROM t1_values
+WHERE select_id = 175 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 175 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE('-', my_varbinary_1000, 3),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 174 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 174 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_binary_30, 3),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE('-', my_binary_30, 3),
+my_binary_30, id FROM t1_values
+WHERE select_id = 173 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 173 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE('-', my_varchar_1000, 3),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 172 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 172 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('-', my_char_30, 3),
+my_char_30, id FROM t1_values;
+SELECT LOCATE('-', my_char_30, 3),
+my_char_30, id FROM t1_values
+WHERE select_id = 171 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 171 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
+my_varbinary_1000, my_binary_30 id FROM t1_values
+WHERE select_id = 170 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 170 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
+my_varbinary_1000, my_varchar_1000 id FROM t1_values
+WHERE select_id = 169 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 169 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_char_30 ),
+my_varbinary_1000, my_char_30 id FROM t1_values
+WHERE select_id = 168 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 168 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 167 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 167 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
+my_binary_30, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 166 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 166 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_varchar_1000 ),
+my_binary_30, my_varchar_1000 id FROM t1_values
+WHERE select_id = 165 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 165 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_char_30 ),
+my_binary_30, my_char_30 id FROM t1_values
+WHERE select_id = 164 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 164 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE(my_binary_30, my_binary_30 ),
+my_binary_30, id FROM t1_values
+WHERE select_id = 163 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 163 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
+my_varchar_1000, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 162 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 162 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_binary_30 ),
+my_varchar_1000, my_binary_30 id FROM t1_values
+WHERE select_id = 161 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 161 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_char_30 ),
+my_varchar_1000, my_char_30 id FROM t1_values
+WHERE select_id = 160 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 160 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 159 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 159 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_varbinary_1000 ),
+my_char_30, my_varbinary_1000 id FROM t1_values
+WHERE select_id = 158 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 158 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_binary_30 ),
+my_char_30, my_binary_30 id FROM t1_values
+WHERE select_id = 157 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 157 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values;
+SELECT LOCATE(my_char_30, my_varchar_1000 ),
+my_char_30, my_varchar_1000 id FROM t1_values
+WHERE select_id = 156 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 156 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values;
+SELECT LOCATE(my_char_30, my_char_30 ),
+my_char_30, id FROM t1_values
+WHERE select_id = 155 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 155 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LOCATE('char', my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 154 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 154 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LOCATE('char', my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 153 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 153 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LOCATE('char', my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 152 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 152 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOCATE('char', my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LOCATE('char', my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 151 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 151 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LOAD_FILE('../log/current_test'), id FROM t1_values;
+SELECT LOAD_FILE('../log/current_test'), id FROM t1_values
+WHERE select_id = 150 OR select_id IS NULL;
+LOAD_FILE('../log/current_test') id
+CURRENT_TEST: myisam_func_view
+ 1
+CURRENT_TEST: myisam_func_view
+ 2
+CURRENT_TEST: myisam_func_view
+ 3
+CURRENT_TEST: myisam_func_view
+ 4
+CURRENT_TEST: myisam_func_view
+ 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'../log/current_test') AS `LOAD_FILE('../log/current_test')`,`t1_values`.`id` AS `id` from `t1_values`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 150 OR select_id IS NULL);
+LOAD_FILE('../log/current_test') id
+CURRENT_TEST: myisam_func_view
+ 1
+CURRENT_TEST: myisam_func_view
+ 2
+CURRENT_TEST: myisam_func_view
+ 3
+CURRENT_TEST: myisam_func_view
+ 4
+CURRENT_TEST: myisam_func_view
+ 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 149 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 149 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 148 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 148 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 147 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 147 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT LENGTH(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 146 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 146 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values;
+SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values
+WHERE select_id = 145 OR select_id IS NULL;
+LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id
+NULL NULL 1
+ -9999999999999999999999999999999999.999999999999999999999999999999 2
+AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9999999999999999999999999999999999.999999999999999999999999999999 3
+ 0.000000000000000000000000000000 4
+ -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 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 145 OR select_id IS NULL);
+LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id
+NULL NULL 1
+ -9999999999999999999999999999999999.999999999999999999999999999999 2
+AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9999999999999999999999999999999999.999999999999999999999999999999 3
+ 0.000000000000000000000000000000 4
+ -1.000000000000000000000000000000 5
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values;
+SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values
+WHERE select_id = 144 OR select_id IS NULL;
+LEFT(my_varbinary_1000, 2) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 144 OR select_id IS NULL);
+LEFT(my_varbinary_1000, 2) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values;
+SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values
+WHERE select_id = 143 OR select_id IS NULL;
+LEFT(my_binary_30, 2) my_binary_30 id
+NULL NULL 1
+
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 143 OR select_id IS NULL);
+LEFT(my_binary_30, 2) my_binary_30 id
+NULL NULL 1
+
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$--
+-1 -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values;
+SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values
+WHERE select_id = 142 OR select_id IS NULL;
+LEFT(my_varchar_1000, 2) my_varchar_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 142 OR select_id IS NULL);
+LEFT(my_varchar_1000, 2) my_varchar_1000 id
+NULL NULL 1
+ 2
+<- <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values;
+SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values
+WHERE select_id = 141 OR select_id IS NULL;
+LEFT(my_char_30, 2) my_char_30 id
+NULL NULL 1
+ 2
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 141 OR select_id IS NULL);
+LEFT(my_char_30, 2) my_char_30 id
+NULL NULL 1
+ 2
+<- <--------30 characters-------> 3
+ - ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT LCASE(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 140 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 140 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT INSTR(my_char_30, 'char'),
+my_char_30, id FROM t1_values;
+SELECT INSTR(my_char_30, 'char'),
+my_char_30, id FROM t1_values
+WHERE select_id = 139 OR select_id IS NULL;
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 139 OR select_id IS NULL);
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values;
+SELECT BIT_LENGTH(my_varbinary_1000),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 138 OR select_id IS NULL;
+BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 138 OR select_id IS NULL);
+BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+160 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values;
+SELECT BIT_LENGTH(my_binary_30),
+my_binary_30, id FROM t1_values
+WHERE select_id = 137 OR select_id IS NULL;
+BIT_LENGTH(my_binary_30) my_binary_30 id
+NULL NULL 1
+240
+240 <--------30 characters-------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 137 OR select_id IS NULL);
+BIT_LENGTH(my_binary_30) my_binary_30 id
+NULL NULL 1
+240
+240 <--------30 characters-------> 3
+240 ---äÖüß@µ*$--
+240 -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values;
+SELECT BIT_LENGTH(my_varchar_1000),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 136 OR select_id IS NULL;
+BIT_LENGTH(my_varchar_1000) my_varchar_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 136 OR select_id IS NULL);
+BIT_LENGTH(my_varchar_1000) my_varchar_1000 id
+NULL NULL 1
+0 2
+8000 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+160 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values;
+SELECT BIT_LENGTH(my_char_30),
+my_char_30, id FROM t1_values
+WHERE select_id = 135 OR select_id IS NULL;
+BIT_LENGTH(my_char_30) my_char_30 id
+NULL NULL 1
+0 2
+240 <--------30 characters-------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 135 OR select_id IS NULL);
+BIT_LENGTH(my_char_30) my_char_30 id
+NULL NULL 1
+0 2
+240 <--------30 characters-------> 3
+152 ---äÖüß@µ*$-- 4
+16 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_year,'IS_NULL'),
+my_year, id FROM t1_values;
+SELECT IFNULL(my_year,'IS_NULL'),
+my_year, id FROM t1_values
+WHERE select_id = 134 OR select_id IS NULL;
+IFNULL(my_year,'IS_NULL') my_year id
+IS_NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 134 OR select_id IS NULL);
+IFNULL(my_year,'IS_NULL') my_year id
+IS_NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_time,'IS_NULL'),
+my_time, id FROM t1_values;
+SELECT IFNULL(my_time,'IS_NULL'),
+my_time, id FROM t1_values
+WHERE select_id = 133 OR select_id IS NULL;
+IFNULL(my_time,'IS_NULL') my_time id
+IS_NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 133 OR select_id IS NULL);
+IFNULL(my_time,'IS_NULL') my_time id
+IS_NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_timestamp,'IS_NULL'),
+my_timestamp, id FROM t1_values;
+SELECT IFNULL(my_timestamp,'IS_NULL'),
+my_timestamp, id FROM t1_values
+WHERE select_id = 132 OR select_id IS NULL;
+IFNULL(my_timestamp,'IS_NULL') my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 132 OR select_id IS NULL);
+IFNULL(my_timestamp,'IS_NULL') my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_date,'IS_NULL'),
+my_date, id FROM t1_values;
+SELECT IFNULL(my_date,'IS_NULL'),
+my_date, id FROM t1_values
+WHERE select_id = 131 OR select_id IS NULL;
+IFNULL(my_date,'IS_NULL') my_date id
+IS_NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 131 OR select_id IS NULL);
+IFNULL(my_date,'IS_NULL') my_date id
+IS_NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_datetime,'IS_NULL'),
+my_datetime, id FROM t1_values;
+SELECT IFNULL(my_datetime,'IS_NULL'),
+my_datetime, id FROM t1_values
+WHERE select_id = 130 OR select_id IS NULL;
+IFNULL(my_datetime,'IS_NULL') my_datetime id
+IS_NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 130 OR select_id IS NULL);
+IFNULL(my_datetime,'IS_NULL') my_datetime id
+IS_NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_double,'IS_NULL'),
+my_double, id FROM t1_values;
+SELECT IFNULL(my_double,'IS_NULL'),
+my_double, id FROM t1_values
+WHERE select_id = 129 OR select_id IS NULL;
+IFNULL(my_double,'IS_NULL') my_double id
+IS_NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 129 OR select_id IS NULL);
+IFNULL(my_double,'IS_NULL') my_double id
+IS_NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_decimal,'IS_NULL'),
+my_decimal, id FROM t1_values;
+SELECT IFNULL(my_decimal,'IS_NULL'),
+my_decimal, id FROM t1_values
+WHERE select_id = 128 OR select_id IS NULL;
+IFNULL(my_decimal,'IS_NULL') my_decimal id
+IS_NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 128 OR select_id IS NULL);
+IFNULL(my_decimal,'IS_NULL') my_decimal id
+IS_NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_bigint,'IS_NULL'),
+my_bigint, id FROM t1_values;
+SELECT IFNULL(my_bigint,'IS_NULL'),
+my_bigint, id FROM t1_values
+WHERE select_id = 127 OR select_id IS NULL;
+IFNULL(my_bigint,'IS_NULL') my_bigint id
+IS_NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 127 OR select_id IS NULL);
+IFNULL(my_bigint,'IS_NULL') my_bigint id
+IS_NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_varbinary_1000,'IS_NULL'),
+my_varbinary_1000, id FROM t1_values;
+SELECT IFNULL(my_varbinary_1000,'IS_NULL'),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 126 OR select_id IS NULL;
+IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 126 OR select_id IS NULL);
+IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_binary_30,'IS_NULL'),
+my_binary_30, id FROM t1_values;
+SELECT IFNULL(my_binary_30,'IS_NULL'),
+my_binary_30, id FROM t1_values
+WHERE select_id = 125 OR select_id IS NULL;
+IFNULL(my_binary_30,'IS_NULL') my_binary_30 id
+IS_NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 125 OR select_id IS NULL);
+IFNULL(my_binary_30,'IS_NULL') my_binary_30 id
+IS_NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_varchar_1000,'IS_NULL'),
+my_varchar_1000, id FROM t1_values;
+SELECT IFNULL(my_varchar_1000,'IS_NULL'),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 124 OR select_id IS NULL;
+IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 124 OR select_id IS NULL);
+IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id
+IS_NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IFNULL(my_char_30,'IS_NULL'),
+my_char_30, id FROM t1_values;
+SELECT IFNULL(my_char_30,'IS_NULL'),
+my_char_30, id FROM t1_values
+WHERE select_id = 123 OR select_id IS NULL;
+IFNULL(my_char_30,'IS_NULL') my_char_30 id
+IS_NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 123 OR select_id IS NULL);
+IFNULL(my_char_30,'IS_NULL') my_char_30 id
+IS_NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL'), my_year, id FROM t1_values;
+SELECT IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL'), my_year, id FROM t1_values
+WHERE select_id = 122 OR select_id IS NULL;
+IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL') my_year id
+IS NULL NULL 1
+IS NOT NULL 1901 2
+IS NOT NULL 2155 3
+IS NOT NULL 2000 4
+IS NOT NULL 2005 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 122 OR select_id IS NULL);
+IF(my_year IS NULL, 'IS NULL',
+'IS NOT NULL') my_year id
+IS NULL NULL 1
+IS NOT NULL 1901 2
+IS NOT NULL 2155 3
+IS NOT NULL 2000 4
+IS NOT NULL 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL'), my_time, id FROM t1_values;
+SELECT IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL'), my_time, id FROM t1_values
+WHERE select_id = 121 OR select_id IS NULL;
+IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL') my_time id
+IS NULL NULL 1
+IS NOT NULL -838:59:59 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 121 OR select_id IS NULL);
+IF(my_time IS NULL, 'IS NULL',
+'IS NOT NULL') my_time id
+IS NULL NULL 1
+IS NOT NULL -838:59:59 2
+IS NOT NULL 838:59:59 3
+IS NOT NULL 13:00:00 4
+IS NOT NULL 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL'), my_timestamp, id FROM t1_values;
+SELECT IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL'), my_timestamp, id FROM t1_values
+WHERE select_id = 120 OR select_id IS NULL;
+IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL') my_timestamp id
+IS NOT NULL 0000-00-00 00:00:00 1
+IS NOT NULL 1970-01-01 03:00:01 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 120 OR select_id IS NULL);
+IF(my_timestamp IS NULL, 'IS NULL',
+'IS NOT NULL') my_timestamp id
+IS NOT NULL 0000-00-00 00:00:00 1
+IS NOT NULL 1970-01-01 03:00:01 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL'), my_date, id FROM t1_values;
+SELECT IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL'), my_date, id FROM t1_values
+WHERE select_id = 119 OR select_id IS NULL;
+IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL') my_date id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 119 OR select_id IS NULL);
+IF(my_date IS NULL, 'IS NULL',
+'IS NOT NULL') my_date id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 2
+IS NOT NULL 9999-12-31 3
+IS NOT NULL 2004-02-29 4
+IS NOT NULL 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL'), my_datetime, id FROM t1_values;
+SELECT IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL'), my_datetime, id FROM t1_values
+WHERE select_id = 118 OR select_id IS NULL;
+IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL') my_datetime id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 00:00:00 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 118 OR select_id IS NULL);
+IF(my_datetime IS NULL, 'IS NULL',
+'IS NOT NULL') my_datetime id
+IS NULL NULL 1
+IS NOT NULL 0001-01-01 00:00:00 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL'), my_double, id FROM t1_values;
+SELECT IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL'), my_double, id FROM t1_values
+WHERE select_id = 117 OR select_id IS NULL;
+IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL') my_double id
+IS NULL NULL 1
+IS NOT NULL -1.7976931348623e+308 2
+IS NOT NULL 1.7976931348623e+308 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 117 OR select_id IS NULL);
+IF(my_double IS NULL, 'IS NULL',
+'IS NOT NULL') my_double id
+IS NULL NULL 1
+IS NOT NULL -1.7976931348623e+308 2
+IS NOT NULL 1.7976931348623e+308 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL'), my_decimal, id FROM t1_values;
+SELECT IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL'), my_decimal, id FROM t1_values
+WHERE select_id = 116 OR select_id IS NULL;
+IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL') my_decimal id
+IS NULL NULL 1
+IS NOT NULL -9999999999999999999999999999999999.999999999999999999999999999999 2
+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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 116 OR select_id IS NULL);
+IF(my_decimal IS NULL, 'IS NULL',
+'IS NOT NULL') my_decimal id
+IS NULL NULL 1
+IS NOT NULL -9999999999999999999999999999999999.999999999999999999999999999999 2
+IS NOT NULL 9999999999999999999999999999999999.999999999999999999999999999999 3
+IS NOT NULL 0.000000000000000000000000000000 4
+IS NOT NULL -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL'), my_bigint, id FROM t1_values;
+SELECT IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL'), my_bigint, id FROM t1_values
+WHERE select_id = 115 OR select_id IS NULL;
+IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL') my_bigint id
+IS NULL NULL 1
+IS NOT NULL -9223372036854775808 2
+IS NOT NULL 9223372036854775807 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 115 OR select_id IS NULL);
+IF(my_bigint IS NULL, 'IS NULL',
+'IS NOT NULL') my_bigint id
+IS NULL NULL 1
+IS NOT NULL -9223372036854775808 2
+IS NOT NULL 9223372036854775807 3
+IS NOT NULL 0 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varbinary_1000, id FROM t1_values;
+SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varbinary_1000, id FROM t1_values
+WHERE select_id = 114 OR select_id IS NULL;
+IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varbinary_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 114 OR select_id IS NULL);
+IF(my_varbinary_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varbinary_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_binary_30, id FROM t1_values;
+SELECT IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_binary_30, id FROM t1_values
+WHERE select_id = 113 OR select_id IS NULL;
+IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_binary_30 id
+IS NULL NULL 1
+IS NOT NULL
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$--
+IS NOT NULL -1
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 113 OR select_id IS NULL);
+IF(my_binary_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_binary_30 id
+IS NULL NULL 1
+IS NOT NULL
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$--
+IS NOT NULL -1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varchar_1000, id FROM t1_values;
+SELECT IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_varchar_1000, id FROM t1_values
+WHERE select_id = 112 OR select_id IS NULL;
+IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varchar_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 112 OR select_id IS NULL);
+IF(my_varchar_1000 IS NULL, 'IS NULL',
+'IS NOT NULL') my_varchar_1000 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_char_30, id FROM t1_values;
+SELECT IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL'), my_char_30, id FROM t1_values
+WHERE select_id = 111 OR select_id IS NULL;
+IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_char_30 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+SHOW CREATE VIEW v1;
+View Create View
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 111 OR select_id IS NULL);
+IF(my_char_30 IS NULL, 'IS NULL',
+'IS NOT NULL') my_char_30 id
+IS NULL NULL 1
+IS NOT NULL 2
+IS NOT NULL <--------30 characters-------> 3
+IS NOT NULL ---äÖüß@µ*$-- 4
+IS NOT NULL -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'),
+my_year, id FROM t1_values;
+SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'),
+my_year, id FROM t1_values
+WHERE select_id = 110 OR select_id IS NULL;
+IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id
+IS NOT TRUE NULL 1
+IS TRUE 1901 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 110 OR select_id IS NULL);
+IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id
+IS NOT TRUE NULL 1
+IS TRUE 1901 2
+IS TRUE 2155 3
+IS TRUE 2000 4
+IS TRUE 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'),
+my_time, id FROM t1_values;
+SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'),
+my_time, id FROM t1_values
+WHERE select_id = 109 OR select_id IS NULL;
+IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id
+IS NOT TRUE NULL 1
+IS TRUE -838:59:59 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 109 OR select_id IS NULL);
+IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id
+IS NOT TRUE NULL 1
+IS TRUE -838:59:59 2
+IS TRUE 838:59:59 3
+IS TRUE 13:00:00 4
+IS TRUE 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'),
+my_timestamp, id FROM t1_values;
+SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'),
+my_timestamp, id FROM t1_values
+WHERE select_id = 108 OR select_id IS NULL;
+IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id
+IS NOT TRUE 0000-00-00 00:00:00 1
+IS TRUE 1970-01-01 03:00:01 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 108 OR select_id IS NULL);
+IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id
+IS NOT TRUE 0000-00-00 00:00:00 1
+IS TRUE 1970-01-01 03:00:01 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'),
+my_date, id FROM t1_values;
+SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'),
+my_date, id FROM t1_values
+WHERE select_id = 107 OR select_id IS NULL;
+IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 107 OR select_id IS NULL);
+IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 2
+IS TRUE 9999-12-31 3
+IS TRUE 2004-02-29 4
+IS TRUE 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'),
+my_datetime, id FROM t1_values;
+SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'),
+my_datetime, id FROM t1_values
+WHERE select_id = 106 OR select_id IS NULL;
+IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 00:00:00 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 106 OR select_id IS NULL);
+IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id
+IS NOT TRUE NULL 1
+IS TRUE 0001-01-01 00:00:00 2
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'),
+my_double, id FROM t1_values;
+SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'),
+my_double, id FROM t1_values
+WHERE select_id = 105 OR select_id IS NULL;
+IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id
+IS NOT TRUE NULL 1
+IS TRUE -1.7976931348623e+308 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 105 OR select_id IS NULL);
+IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id
+IS NOT TRUE NULL 1
+IS TRUE -1.7976931348623e+308 2
+IS TRUE 1.7976931348623e+308 3
+IS NOT TRUE 0 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'),
+my_decimal, id FROM t1_values;
+SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'),
+my_decimal, id FROM t1_values
+WHERE select_id = 104 OR select_id IS NULL;
+IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id
+IS NOT TRUE NULL 1
+IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 104 OR select_id IS NULL);
+IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id
+IS NOT TRUE NULL 1
+IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2
+IS TRUE 9999999999999999999999999999999999.999999999999999999999999999999 3
+IS NOT TRUE 0.000000000000000000000000000000 4
+IS TRUE -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'),
+my_bigint, id FROM t1_values;
+SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'),
+my_bigint, id FROM t1_values
+WHERE select_id = 103 OR select_id IS NULL;
+IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id
+IS NOT TRUE NULL 1
+IS TRUE -9223372036854775808 2
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 103 OR select_id IS NULL);
+IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id
+IS NOT TRUE NULL 1
+IS TRUE -9223372036854775808 2
+IS TRUE 9223372036854775807 3
+IS NOT TRUE 0 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varbinary_1000, id FROM t1_values;
+SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 102 OR select_id IS NULL;
+IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 102 OR select_id IS NULL);
+IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'),
+my_binary_30, id FROM t1_values;
+SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'),
+my_binary_30, id FROM t1_values
+WHERE select_id = 101 OR select_id IS NULL;
+IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$--
+IS TRUE -1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 101 OR select_id IS NULL);
+IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$--
+IS TRUE -1
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: ''
+Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect DOUBLE value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varchar_1000, id FROM t1_values;
+SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 100 OR select_id IS NULL;
+IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 100 OR select_id IS NULL);
+IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'),
+my_char_30, id FROM t1_values;
+SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'),
+my_char_30, id FROM t1_values
+WHERE select_id = 99 OR select_id IS NULL;
+IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 99 OR select_id IS NULL);
+IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id
+IS NOT TRUE NULL 1
+IS NOT TRUE 2
+IS NOT TRUE <--------30 characters-------> 3
+IS NOT TRUE ---äÖüß@µ*$-- 4
+IS TRUE -1 5
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values;
+SELECT CONVERT(my_varbinary_1000 USING koi8r),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 98 OR select_id IS NULL;
+CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---???????÷@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 98 OR select_id IS NULL);
+CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---???????÷@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values;
+SELECT CONVERT(my_binary_30 USING koi8r),
+my_binary_30, id FROM t1_values
+WHERE select_id = 97 OR select_id IS NULL;
+CONVERT(my_binary_30 USING koi8r) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---???????÷@??*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 97 OR select_id IS NULL);
+CONVERT(my_binary_30 USING koi8r) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---???????÷@??*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values;
+SELECT CONVERT(my_varchar_1000 USING koi8r),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 96 OR select_id IS NULL;
+CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 96 OR select_id IS NULL);
+CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values;
+SELECT CONVERT(my_char_30 USING koi8r),
+my_char_30, id FROM t1_values
+WHERE select_id = 95 OR select_id IS NULL;
+CONVERT(my_char_30 USING koi8r) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 95 OR select_id IS NULL);
+CONVERT(my_char_30 USING koi8r) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---????????@??*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values;
+SELECT CONVERT(my_varbinary_1000 USING utf8),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 94 OR select_id IS NULL;
+CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 94 OR select_id IS NULL);
+CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values;
+SELECT CONVERT(my_binary_30 USING utf8),
+my_binary_30, id FROM t1_values
+WHERE select_id = 93 OR select_id IS NULL;
+CONVERT(my_binary_30 USING utf8) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 93 OR select_id IS NULL);
+CONVERT(my_binary_30 USING utf8) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values;
+SELECT CONVERT(my_varchar_1000 USING utf8),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 92 OR select_id IS NULL;
+CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 92 OR select_id IS NULL);
+CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values;
+SELECT CONVERT(my_char_30 USING utf8),
+my_char_30, id FROM t1_values
+WHERE select_id = 91 OR select_id IS NULL;
+CONVERT(my_char_30 USING utf8) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 91 OR select_id IS NULL);
+CONVERT(my_char_30 USING utf8) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS UNSIGNED INTEGER),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS UNSIGNED INTEGER),
+my_year, id FROM t1_values
+WHERE select_id = 90 OR select_id IS NULL;
+CAST(my_year AS UNSIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 90 OR select_id IS NULL);
+CAST(my_year AS UNSIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS UNSIGNED INTEGER),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS UNSIGNED INTEGER),
+my_time, id FROM t1_values
+WHERE select_id = 89 OR select_id IS NULL;
+CAST(my_time AS UNSIGNED INTEGER) my_time id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 89 OR select_id IS NULL);
+CAST(my_time AS UNSIGNED INTEGER) my_time id
+NULL NULL 1
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS UNSIGNED INTEGER),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS UNSIGNED INTEGER),
+my_timestamp, id FROM t1_values
+WHERE select_id = 88 OR select_id IS NULL;
+CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 88 OR select_id IS NULL);
+CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS UNSIGNED INTEGER),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS UNSIGNED INTEGER),
+my_date, id FROM t1_values
+WHERE select_id = 87 OR select_id IS NULL;
+CAST(my_date AS UNSIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 87 OR select_id IS NULL);
+CAST(my_date AS UNSIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS UNSIGNED INTEGER),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS UNSIGNED INTEGER),
+my_datetime, id FROM t1_values
+WHERE select_id = 86 OR select_id IS NULL;
+CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 86 OR select_id IS NULL);
+CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
+NULL NULL 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS UNSIGNED INTEGER),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS UNSIGNED INTEGER),
+my_decimal, id FROM t1_values
+WHERE select_id = 85 OR select_id IS NULL;
+CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id
+NULL NULL 1
+0 -9999999999999999999999999999999999.999999999999999999999999999999 2
+18446744073709551615 9999999999999999999999999999999999.999999999999999999999999999999 3
+0 0.000000000000000000000000000000 4
+0 -1.000000000000000000000000000000 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 85 OR select_id IS NULL);
+CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id
+NULL NULL 1
+0 -9999999999999999999999999999999999.999999999999999999999999999999 2
+18446744073709551615 9999999999999999999999999999999999.999999999999999999999999999999 3
+0 0.000000000000000000000000000000 4
+0 -1.000000000000000000000000000000 5
+Warnings:
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+Error 1292 Truncated incorrect DECIMAL value: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS UNSIGNED INTEGER),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS UNSIGNED INTEGER),
+my_bigint, id FROM t1_values
+WHERE select_id = 84 OR select_id IS NULL;
+CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id
+NULL NULL 1
+9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 84 OR select_id IS NULL);
+CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id
+NULL NULL 1
+9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+18446744073709551615 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 83 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 83 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS UNSIGNED INTEGER),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS UNSIGNED INTEGER),
+my_binary_30, id FROM t1_values
+WHERE select_id = 82 OR select_id IS NULL;
+CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+18446744073709551615 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 82 OR select_id IS NULL);
+CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+18446744073709551615 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 81 OR select_id IS NULL;
+CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 81 OR select_id IS NULL);
+CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS UNSIGNED INTEGER),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS UNSIGNED INTEGER),
+my_char_30, id FROM t1_values
+WHERE select_id = 80 OR select_id IS NULL;
+CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 80 OR select_id IS NULL);
+CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+18446744073709551615 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS SIGNED INTEGER),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS SIGNED INTEGER),
+my_year, id FROM t1_values
+WHERE select_id = 79 OR select_id IS NULL;
+CAST(my_year AS SIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 79 OR select_id IS NULL);
+CAST(my_year AS SIGNED INTEGER) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS SIGNED INTEGER),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS SIGNED INTEGER),
+my_time, id FROM t1_values
+WHERE select_id = 78 OR select_id IS NULL;
+CAST(my_time AS SIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 78 OR select_id IS NULL);
+CAST(my_time AS SIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS SIGNED INTEGER),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS SIGNED INTEGER),
+my_timestamp, id FROM t1_values
+WHERE select_id = 77 OR select_id IS NULL;
+CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 77 OR select_id IS NULL);
+CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
+0 0000-00-00 00:00:00 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS SIGNED INTEGER),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS SIGNED INTEGER),
+my_date, id FROM t1_values
+WHERE select_id = 76 OR select_id IS NULL;
+CAST(my_date AS SIGNED INTEGER) 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
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 76 OR select_id IS NULL);
+CAST(my_date AS SIGNED INTEGER) 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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS SIGNED INTEGER),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS SIGNED INTEGER),
+my_datetime, id FROM t1_values
+WHERE select_id = 75 OR select_id IS NULL;
+CAST(my_datetime AS SIGNED INTEGER) my_datetime id
+NULL NULL 1
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 75 OR select_id IS NULL);
+CAST(my_datetime AS SIGNED INTEGER) my_datetime id
+NULL NULL 1
+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;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS SIGNED INTEGER),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS SIGNED INTEGER),
+my_decimal, id FROM t1_values
+WHERE select_id = 74 OR select_id IS NULL;
+CAST(my_decimal AS SIGNED INTEGER) my_decimal id
+NULL NULL 1
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 74 OR select_id IS NULL);
+CAST(my_decimal AS SIGNED INTEGER) my_decimal id
+NULL NULL 1
+-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: ''
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS SIGNED INTEGER),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS SIGNED INTEGER),
+my_bigint, id FROM t1_values
+WHERE select_id = 73 OR select_id IS NULL;
+CAST(my_bigint AS SIGNED INTEGER) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 73 OR select_id IS NULL);
+CAST(my_bigint AS SIGNED INTEGER) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 72 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 72 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS SIGNED INTEGER),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS SIGNED INTEGER),
+my_binary_30, id FROM t1_values
+WHERE select_id = 71 OR select_id IS NULL;
+CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+-1 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 71 OR select_id IS NULL);
+CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id
+NULL NULL 1
+0
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$--
+-1 -1
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect INTEGER value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS SIGNED INTEGER),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS SIGNED INTEGER),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 70 OR select_id IS NULL;
+CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 70 OR select_id IS NULL);
+CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id
+NULL NULL 1
+0 2
+0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS SIGNED INTEGER),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS SIGNED INTEGER),
+my_char_30, id FROM t1_values
+WHERE select_id = 69 OR select_id IS NULL;
+CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 69 OR select_id IS NULL);
+CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id
+NULL NULL 1
+0 2
+0 <--------30 characters-------> 3
+0 ---äÖüß@µ*$-- 4
+-1 -1 5
+Warnings:
+Warning 1292 Truncated incorrect INTEGER value: ''
+Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$--'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DECIMAL(37,2)),
+my_year, id FROM t1_values
+WHERE select_id = 68 OR select_id IS NULL;
+CAST(my_year AS DECIMAL(37,2)) my_year id
+NULL NULL 1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 68 OR select_id IS NULL);
+CAST(my_year AS DECIMAL(37,2)) my_year id
+NULL NULL 1
+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(37,2)),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DECIMAL(37,2)),
+my_time, id FROM t1_values
+WHERE select_id = 67 OR select_id IS NULL;
+CAST(my_time AS DECIMAL(37,2)) my_time id
+NULL NULL 1
+-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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 67 OR select_id IS NULL);
+CAST(my_time AS DECIMAL(37,2)) my_time id
+NULL NULL 1
+-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(37,2)),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
+my_timestamp, id FROM t1_values
+WHERE select_id = 66 OR select_id IS NULL;
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 66 OR select_id IS NULL);
+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(37,2)),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DECIMAL(37,2)),
+my_date, id FROM t1_values
+WHERE select_id = 65 OR select_id IS NULL;
+CAST(my_date AS DECIMAL(37,2)) my_date id
+NULL NULL 1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 65 OR select_id IS NULL);
+CAST(my_date AS DECIMAL(37,2)) my_date id
+NULL NULL 1
+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(37,2)),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
+my_datetime, id FROM t1_values
+WHERE select_id = 64 OR select_id IS NULL;
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 64 OR select_id IS NULL);
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
+NULL NULL 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_decimal AS DECIMAL(37,2)),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
+my_decimal, id FROM t1_values
+WHERE select_id = 63 OR select_id IS NULL;
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 63 OR select_id IS NULL);
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
+NULL NULL 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(37,2)),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
+my_bigint, id FROM t1_values
+WHERE select_id = 62 OR select_id IS NULL;
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
+NULL NULL 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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 62 OR select_id IS NULL);
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
+NULL NULL 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(37,2)),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 61 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 28
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 61 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 28
+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
+DROP VIEW v1;
+
+
+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(37,2)),
+my_binary_30, id FROM t1_values
+WHERE select_id = 60 OR select_id IS NULL;
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
+NULL NULL 1
+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: ''
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 60 OR select_id IS NULL);
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
+NULL NULL 1
+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: ''
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect DECIMAL value: '-1'
+Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
+DROP VIEW v1;
+
+
+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(37,2)),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 59 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 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
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 59 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
+NULL NULL 1
+0.00 2
+0.00 <---------1000 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
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+DROP VIEW v1;
+
+
+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(37,2)),
+my_char_30, id FROM t1_values
+WHERE select_id = 58 OR select_id IS NULL;
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
+NULL NULL 1
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 25
+Warnings:
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' '
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+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(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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 58 OR select_id IS NULL);
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
+NULL NULL 1
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 25
+Warnings:
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' '
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
+Error 1366 Incorrect decimal value: '' for column '' at row -1
+Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS TIME),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS TIME),
+my_year, id FROM t1_values
+WHERE select_id = 57 OR select_id IS NULL;
+CAST(my_year AS TIME) my_year id
+NULL NULL 1
+00:19:01 1901 2
+00:21:55 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 57 OR select_id IS NULL);
+CAST(my_year AS TIME) my_year id
+NULL NULL 1
+00:19:01 1901 2
+00:21:55 2155 3
+00:20:00 2000 4
+00:20:05 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS TIME),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS TIME),
+my_time, id FROM t1_values
+WHERE select_id = 56 OR select_id IS NULL;
+CAST(my_time AS TIME) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 56 OR select_id IS NULL);
+CAST(my_time AS TIME) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS TIME),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS TIME),
+my_timestamp, id FROM t1_values
+WHERE select_id = 55 OR select_id IS NULL;
+CAST(my_timestamp AS TIME) my_timestamp id
+00:00:00 0000-00-00 00:00:00 1
+03:00:01 1970-01-01 03:00:01 2
+02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 55 OR select_id IS NULL);
+CAST(my_timestamp AS TIME) my_timestamp id
+00:00:00 0000-00-00 00:00:00 1
+03:00:01 1970-01-01 03:00:01 2
+02:59:59 2038-01-01 02:59:59 3
+23:59:59 2004-02-29 23:59:59 4
+10:00:00 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS TIME),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS TIME),
+my_date, id FROM t1_values
+WHERE select_id = 54 OR select_id IS NULL;
+CAST(my_date AS TIME) my_date id
+NULL NULL 1
+00:00:00 0001-01-01 2
+00:00:00 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 54 OR select_id IS NULL);
+CAST(my_date AS TIME) my_date id
+NULL NULL 1
+00:00:00 0001-01-01 2
+00:00:00 9999-12-31 3
+00:00:00 2004-02-29 4
+00:00:00 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS TIME),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS TIME),
+my_datetime, id FROM t1_values
+WHERE select_id = 53 OR select_id IS NULL;
+CAST(my_datetime AS TIME) my_datetime id
+NULL NULL 1
+00:00:00 0001-01-01 00:00:00 2
+23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 53 OR select_id IS NULL);
+CAST(my_datetime AS TIME) my_datetime id
+NULL NULL 1
+00:00:00 0001-01-01 00:00:00 2
+23:59:59 9999-12-31 23:59:59 3
+23:59:59 2004-02-29 23:59:59 4
+10:00:00 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS TIME),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS TIME),
+my_bigint, id FROM t1_values
+WHERE select_id = 52 OR select_id IS NULL;
+CAST(my_bigint AS TIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+00:00:00 0 4
+-00:00:01 -1 5
+00:17:58 1758 24
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 52 OR select_id IS NULL);
+CAST(my_bigint AS TIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+00:00:00 0 4
+-00:00:01 -1 5
+00:17:58 1758 24
+Warnings:
+Warning 1292 Truncated incorrect time value: '-9223372036854775808'
+Warning 1292 Truncated incorrect time value: '9223372036854775807'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS TIME),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS TIME),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 51 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 23
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 51 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 23
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS TIME),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS TIME),
+my_binary_30, id FROM t1_values
+WHERE select_id = 50 OR select_id IS NULL;
+CAST(my_binary_30 AS TIME) my_binary_30 id
+NULL NULL 1
+00:00:00
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$--
+NULL -1
+41:58:00 1 17:58
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 50 OR select_id IS NULL);
+CAST(my_binary_30 AS TIME) my_binary_30 id
+NULL NULL 1
+00:00:00
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$--
+NULL -1
+41:58:00 1 17:58
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect time value: '-1'
+Warning 1292 Truncated incorrect time value: '1 17:58'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS TIME),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS TIME),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 49 OR select_id IS NULL;
+CAST(my_varchar_1000 AS TIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 21
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 49 OR select_id IS NULL);
+CAST(my_varchar_1000 AS TIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+00:00:00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 21
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS TIME),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS TIME),
+my_char_30, id FROM t1_values
+WHERE select_id = 48 OR select_id IS NULL;
+CAST(my_char_30 AS TIME) my_char_30 id
+NULL NULL 1
+NULL 2
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 20
+Warnings:
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 48 OR select_id IS NULL);
+CAST(my_char_30 AS TIME) my_char_30 id
+NULL NULL 1
+NULL 2
+00:00:00 <--------30 characters-------> 3
+-00:00:00 ---äÖüß@µ*$-- 4
+-00:00:01 -1 5
+41:58:00 1 17:58 20
+Warnings:
+Warning 1292 Truncated incorrect time value: ''
+Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$--'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DATETIME),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DATETIME),
+my_year, id FROM t1_values
+WHERE select_id = 47 OR select_id IS NULL;
+CAST(my_year AS DATETIME) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 47 OR select_id IS NULL);
+CAST(my_year AS DATETIME) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated incorrect datetime value: '2005'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS DATETIME),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DATETIME),
+my_time, id FROM t1_values
+WHERE select_id = 46 OR select_id IS NULL;
+CAST(my_time AS DATETIME) my_time id
+NULL NULL 1
+0000-00-00 00:00:00 -838:59:59 2
+0000-00-00 00:00:00 838:59:59 3
+0000-00-00 13:00:00 13:00:00 4
+0000-00-00 10:00:00 10:00:00 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 46 OR select_id IS NULL);
+CAST(my_time AS DATETIME) my_time id
+NULL NULL 1
+0000-00-00 00:00:00 -838:59:59 2
+0000-00-00 00:00:00 838:59:59 3
+0000-00-00 13:00:00 13:00:00 4
+0000-00-00 10:00:00 10:00:00 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+Warning 1292 Truncated incorrect datetime value: '0000-00-00 838:59:59'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATETIME),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DATETIME),
+my_timestamp, id FROM t1_values
+WHERE select_id = 45 OR select_id IS NULL;
+CAST(my_timestamp AS DATETIME) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 45 OR select_id IS NULL);
+CAST(my_timestamp AS DATETIME) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS DATETIME),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DATETIME),
+my_date, id FROM t1_values
+WHERE select_id = 44 OR select_id IS NULL;
+CAST(my_date AS DATETIME) my_date id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 2
+9999-12-31 00:00:00 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 44 OR select_id IS NULL);
+CAST(my_date AS DATETIME) my_date id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 2
+9999-12-31 00:00:00 9999-12-31 3
+2004-02-29 00:00:00 2004-02-29 4
+2005-06-28 00:00:00 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATETIME),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DATETIME),
+my_datetime, id FROM t1_values
+WHERE select_id = 43 OR select_id IS NULL;
+CAST(my_datetime AS DATETIME) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 43 OR select_id IS NULL);
+CAST(my_datetime AS DATETIME) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS DATETIME),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS DATETIME),
+my_double, id FROM t1_values
+WHERE select_id = 42 OR select_id IS NULL;
+CAST(my_double AS DATETIME) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 19
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 42 OR select_id IS NULL);
+CAST(my_double AS DATETIME) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 19
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '200506271758'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATETIME),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DATETIME),
+my_bigint, id FROM t1_values
+WHERE select_id = 41 OR select_id IS NULL;
+CAST(my_bigint AS DATETIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 18
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 41 OR select_id IS NULL);
+CAST(my_bigint AS DATETIME) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+NULL 200506271758 18
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '200506271758'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATETIME),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DATETIME),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 40 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 17
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 40 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 17
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATETIME),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS DATETIME),
+my_binary_30, id FROM t1_values
+WHERE select_id = 39 OR select_id IS NULL;
+CAST(my_binary_30 AS DATETIME) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 17:58:00 2005-06-27 17:58
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 39 OR select_id IS NULL);
+CAST(my_binary_30 AS DATETIME) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 17:58:00 2005-06-27 17:58
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect datetime value: '2005-06-27 17:58'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATETIME),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS DATETIME),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 38 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 15
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 38 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 15
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATETIME),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS DATETIME),
+my_char_30, id FROM t1_values
+WHERE select_id = 37 OR select_id IS NULL;
+CAST(my_char_30 AS DATETIME) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 14
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 37 OR select_id IS NULL);
+CAST(my_char_30 AS DATETIME) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 17:58:00 2005-06-27 17:58 14
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS DATE),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS DATE),
+my_year, id FROM t1_values
+WHERE select_id = 36 OR select_id IS NULL;
+CAST(my_year AS DATE) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 36 OR select_id IS NULL);
+CAST(my_year AS DATE) my_year id
+NULL NULL 1
+NULL 1901 2
+NULL 2155 3
+NULL 2000 4
+NULL 2005 5
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '1901'
+Warning 1292 Truncated incorrect datetime value: '2155'
+Warning 1292 Truncated incorrect datetime value: '2000'
+Warning 1292 Truncated incorrect datetime value: '2005'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS DATE),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS DATE),
+my_time, id FROM t1_values
+WHERE select_id = 35 OR select_id IS NULL;
+CAST(my_time AS DATE) my_time id
+NULL NULL 1
+0000-00-00 -838:59:59 2
+0000-00-00 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 35 OR select_id IS NULL);
+CAST(my_time AS DATE) my_time id
+NULL NULL 1
+0000-00-00 -838:59:59 2
+0000-00-00 838:59:59 3
+0000-00-00 13:00:00 4
+0000-00-00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATE),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS DATE),
+my_timestamp, id FROM t1_values
+WHERE select_id = 34 OR select_id IS NULL;
+CAST(my_timestamp AS DATE) my_timestamp id
+0000-00-00 0000-00-00 00:00:00 1
+1970-01-01 1970-01-01 03:00:01 2
+2038-01-01 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 34 OR select_id IS NULL);
+CAST(my_timestamp AS DATE) my_timestamp id
+0000-00-00 0000-00-00 00:00:00 1
+1970-01-01 1970-01-01 03:00:01 2
+2038-01-01 2038-01-01 02:59:59 3
+2004-02-29 2004-02-29 23:59:59 4
+2005-06-28 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS DATE),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS DATE),
+my_date, id FROM t1_values
+WHERE select_id = 33 OR select_id IS NULL;
+CAST(my_date AS DATE) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 33 OR select_id IS NULL);
+CAST(my_date AS DATE) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATE),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS DATE),
+my_datetime, id FROM t1_values
+WHERE select_id = 32 OR select_id IS NULL;
+CAST(my_datetime AS DATE) my_datetime id
+NULL NULL 1
+0001-01-01 0001-01-01 00:00:00 2
+9999-12-31 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 32 OR select_id IS NULL);
+CAST(my_datetime AS DATE) my_datetime id
+NULL NULL 1
+0001-01-01 0001-01-01 00:00:00 2
+9999-12-31 9999-12-31 23:59:59 3
+2004-02-29 2004-02-29 23:59:59 4
+2005-06-28 2005-06-28 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS DATE),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS DATE),
+my_double, id FROM t1_values
+WHERE select_id = 31 OR select_id IS NULL;
+CAST(my_double AS DATE) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 13
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 31 OR select_id IS NULL);
+CAST(my_double AS DATE) my_double id
+NULL NULL 1
+NULL -1.7976931348623e+308 2
+NULL 1.7976931348623e+308 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 13
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '1.7976931348623e+308'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATE),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS DATE),
+my_bigint, id FROM t1_values
+WHERE select_id = 30 OR select_id IS NULL;
+CAST(my_bigint AS DATE) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 12
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 30 OR select_id IS NULL);
+CAST(my_bigint AS DATE) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+NULL 9223372036854775807 3
+NULL 0 4
+NULL -1 5
+2005-06-27 20050627 12
+Warnings:
+Warning 1292 Truncated incorrect datetime value: '-9223372036854775808'
+Warning 1292 Truncated incorrect datetime value: '9223372036854775807'
+Warning 1292 Truncated incorrect datetime value: '0'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATE),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS DATE),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 29 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 11
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 29 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 11
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATE),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS DATE),
+my_binary_30, id FROM t1_values
+WHERE select_id = 28 OR select_id IS NULL;
+CAST(my_binary_30 AS DATE) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 2005-06-27
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 28 OR select_id IS NULL);
+CAST(my_binary_30 AS DATE) my_binary_30 id
+NULL NULL 1
+NULL
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$--
+NULL -1
+2005-06-27 2005-06-27
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+Warning 1292 Truncated incorrect date value: '2005-06-27'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATE),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS DATE),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 27 OR select_id IS NULL;
+CAST(my_varchar_1000 AS DATE) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 9
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 27 OR select_id IS NULL);
+CAST(my_varchar_1000 AS DATE) my_varchar_1000 id
+NULL NULL 1
+NULL 2
+NULL <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 9
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$-- '
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATE),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS DATE),
+my_char_30, id FROM t1_values
+WHERE select_id = 26 OR select_id IS NULL;
+CAST(my_char_30 AS DATE) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 8
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 26 OR select_id IS NULL);
+CAST(my_char_30 AS DATE) my_char_30 id
+NULL NULL 1
+NULL 2
+NULL <--------30 characters-------> 3
+NULL ---äÖüß@µ*$-- 4
+NULL -1 5
+2005-06-27 2005-06-27 8
+Warnings:
+Warning 1292 Truncated incorrect datetime value: ''
+Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->'
+Warning 1292 Truncated incorrect datetime value: ' ---äÖüß@µ*$--'
+Warning 1292 Truncated incorrect datetime value: '-1'
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS CHAR),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS CHAR),
+my_year, id FROM t1_values
+WHERE select_id = 25 OR select_id IS NULL;
+CAST(my_year AS CHAR) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 25 OR select_id IS NULL);
+CAST(my_year AS CHAR) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS CHAR),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS CHAR),
+my_time, id FROM t1_values
+WHERE select_id = 24 OR select_id IS NULL;
+CAST(my_time AS CHAR) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 24 OR select_id IS NULL);
+CAST(my_time AS CHAR) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS CHAR),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS CHAR),
+my_timestamp, id FROM t1_values
+WHERE select_id = 23 OR select_id IS NULL;
+CAST(my_timestamp AS CHAR) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 23 OR select_id IS NULL);
+CAST(my_timestamp AS CHAR) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS CHAR),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS CHAR),
+my_date, id FROM t1_values
+WHERE select_id = 22 OR select_id IS NULL;
+CAST(my_date AS CHAR) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 22 OR select_id IS NULL);
+CAST(my_date AS CHAR) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS CHAR),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS CHAR),
+my_datetime, id FROM t1_values
+WHERE select_id = 21 OR select_id IS NULL;
+CAST(my_datetime AS CHAR) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 21 OR select_id IS NULL);
+CAST(my_datetime AS CHAR) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS CHAR),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS CHAR),
+my_double, id FROM t1_values
+WHERE select_id = 20 OR select_id IS NULL;
+CAST(my_double AS CHAR) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 20 OR select_id IS NULL);
+CAST(my_double AS CHAR) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS CHAR),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS CHAR),
+my_decimal, id FROM t1_values
+WHERE select_id = 19 OR select_id IS NULL;
+CAST(my_decimal AS CHAR) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 19 OR select_id IS NULL);
+CAST(my_decimal AS CHAR) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS CHAR),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS CHAR),
+my_bigint, id FROM t1_values
+WHERE select_id = 18 OR select_id IS NULL;
+CAST(my_bigint AS CHAR) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 18 OR select_id IS NULL);
+CAST(my_bigint AS CHAR) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS CHAR),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS CHAR),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 17 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 17 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS CHAR),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS CHAR),
+my_binary_30, id FROM t1_values
+WHERE select_id = 16 OR select_id IS NULL;
+CAST(my_binary_30 AS CHAR) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 16 OR select_id IS NULL);
+CAST(my_binary_30 AS CHAR) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS CHAR),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS CHAR),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 15 OR select_id IS NULL;
+CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 15 OR select_id IS NULL);
+CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS CHAR),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS CHAR),
+my_char_30, id FROM t1_values
+WHERE select_id = 14 OR select_id IS NULL;
+CAST(my_char_30 AS CHAR) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 14 OR select_id IS NULL);
+CAST(my_char_30 AS CHAR) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_year AS BINARY),
+my_year, id FROM t1_values;
+SELECT CAST(my_year AS BINARY),
+my_year, id FROM t1_values
+WHERE select_id = 13 OR select_id IS NULL;
+CAST(my_year AS BINARY) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 13 OR select_id IS NULL);
+CAST(my_year AS BINARY) my_year id
+NULL NULL 1
+1901 1901 2
+2155 2155 3
+2000 2000 4
+2005 2005 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_time AS BINARY),
+my_time, id FROM t1_values;
+SELECT CAST(my_time AS BINARY),
+my_time, id FROM t1_values
+WHERE select_id = 12 OR select_id IS NULL;
+CAST(my_time AS BINARY) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 12 OR select_id IS NULL);
+CAST(my_time AS BINARY) my_time id
+NULL NULL 1
+-838:59:59 -838:59:59 2
+838:59:59 838:59:59 3
+13:00:00 13:00:00 4
+10:00:00 10:00:00 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS BINARY),
+my_timestamp, id FROM t1_values;
+SELECT CAST(my_timestamp AS BINARY),
+my_timestamp, id FROM t1_values
+WHERE select_id = 11 OR select_id IS NULL;
+CAST(my_timestamp AS BINARY) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 11 OR select_id IS NULL);
+CAST(my_timestamp AS BINARY) my_timestamp id
+0000-00-00 00:00:00 0000-00-00 00:00:00 1
+1970-01-01 03:00:01 1970-01-01 03:00:01 2
+2038-01-01 02:59:59 2038-01-01 02:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_date AS BINARY),
+my_date, id FROM t1_values;
+SELECT CAST(my_date AS BINARY),
+my_date, id FROM t1_values
+WHERE select_id = 10 OR select_id IS NULL;
+CAST(my_date AS BINARY) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 10 OR select_id IS NULL);
+CAST(my_date AS BINARY) my_date id
+NULL NULL 1
+0001-01-01 0001-01-01 2
+9999-12-31 9999-12-31 3
+2004-02-29 2004-02-29 4
+2005-06-28 2005-06-28 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS BINARY),
+my_datetime, id FROM t1_values;
+SELECT CAST(my_datetime AS BINARY),
+my_datetime, id FROM t1_values
+WHERE select_id = 9 OR select_id IS NULL;
+CAST(my_datetime AS BINARY) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 9 OR select_id IS NULL);
+CAST(my_datetime AS BINARY) my_datetime id
+NULL NULL 1
+0001-01-01 00:00:00 0001-01-01 00:00:00 2
+9999-12-31 23:59:59 9999-12-31 23:59:59 3
+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
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_double AS BINARY),
+my_double, id FROM t1_values;
+SELECT CAST(my_double AS BINARY),
+my_double, id FROM t1_values
+WHERE select_id = 8 OR select_id IS NULL;
+CAST(my_double AS BINARY) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 8 OR select_id IS NULL);
+CAST(my_double AS BINARY) my_double id
+NULL NULL 1
+-1.7976931348623e+308 -1.7976931348623e+308 2
+1.7976931348623e+308 1.7976931348623e+308 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS BINARY),
+my_decimal, id FROM t1_values;
+SELECT CAST(my_decimal AS BINARY),
+my_decimal, id FROM t1_values
+WHERE select_id = 7 OR select_id IS NULL;
+CAST(my_decimal AS BINARY) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 7 OR select_id IS NULL);
+CAST(my_decimal AS BINARY) my_decimal id
+NULL NULL 1
+-9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9999999999999999999999999999999999.999999999999999999999999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.000000000000000000000000000000 0.000000000000000000000000000000 4
+-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS BINARY),
+my_bigint, id FROM t1_values;
+SELECT CAST(my_bigint AS BINARY),
+my_bigint, id FROM t1_values
+WHERE select_id = 6 OR select_id IS NULL;
+CAST(my_bigint AS BINARY) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 6 OR select_id IS NULL);
+CAST(my_bigint AS BINARY) my_bigint id
+NULL NULL 1
+-9223372036854775808 -9223372036854775808 2
+9223372036854775807 9223372036854775807 3
+0 0 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS BINARY),
+my_varbinary_1000, id FROM t1_values;
+SELECT CAST(my_varbinary_1000 AS BINARY),
+my_varbinary_1000, id FROM t1_values
+WHERE select_id = 5 OR select_id IS NULL;
+CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 5 OR select_id IS NULL);
+CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS BINARY),
+my_binary_30, id FROM t1_values;
+SELECT CAST(my_binary_30 AS BINARY),
+my_binary_30, id FROM t1_values
+WHERE select_id = 4 OR select_id IS NULL;
+CAST(my_binary_30 AS BINARY) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 4 OR select_id IS NULL);
+CAST(my_binary_30 AS BINARY) my_binary_30 id
+NULL NULL 1
+
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$--
+-1
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS BINARY),
+my_varchar_1000, id FROM t1_values;
+SELECT CAST(my_varchar_1000 AS BINARY),
+my_varchar_1000, id FROM t1_values
+WHERE select_id = 3 OR select_id IS NULL;
+CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 3 OR select_id IS NULL);
+CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id
+NULL NULL 1
+ 2
+<---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS BINARY),
+my_char_30, id FROM t1_values;
+SELECT CAST(my_char_30 AS BINARY),
+my_char_30, id FROM t1_values
+WHERE select_id = 2 OR select_id IS NULL;
+CAST(my_char_30 AS BINARY) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 2 OR select_id IS NULL);
+CAST(my_char_30 AS BINARY) my_char_30 id
+NULL NULL 1
+ 2
+<--------30 characters-------> <--------30 characters-------> 3
+ ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
+-1 -1 5
+DROP VIEW v1;
+
+
+CREATE VIEW v1 AS SELECT sqrt(my_bigint), my_bigint, id FROM t1_values;
+SELECT sqrt(my_bigint), my_bigint, id FROM t1_values
+WHERE select_id = 1 OR select_id IS NULL;
+sqrt(my_bigint) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+3037000499.976 9223372036854775807 3
+0 0 4
+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`
+SELECT v1.* FROM v1
+WHERE v1.id IN (SELECT id FROM t1_values
+WHERE select_id = 1 OR select_id IS NULL);
+sqrt(my_bigint) my_bigint id
+NULL NULL 1
+NULL -9223372036854775808 2
+3037000499.976 9223372036854775807 3
+0 0 4
+NULL -1 5
+2 4 6
+NULL -25 7
+DROP VIEW v1;
+
+
+DROP TABLE t1_selects, t1_modes, t1_values;
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc.result b/mysql-test/suite/funcs_1/r/myisam_storedproc.result
new file mode 100644
index 00000000000..a1e08c94ab9
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc.result
@@ -0,0 +1,22539 @@
+
+.
+. IMPORTANT NOTICE:
+. -----------------
+.
+. FIXME: The <engine>_storedproc.result files are still NOT CHECKED
+. for correctness!
+.
+. FIXME: Several tests are affected by known problems around DECIMAL
+. FIXME: and NUMERIC that needs to be checked again after WL#2984
+. FIXME: has been completed. Some of them are marked in the result.
+.
+. This .result file has been checked OK with Linux 5.0.23-bk,
+. ChangeSet@1.2211, 2006-06-28 10:11:43-07:00.
+.
+. This file has been saved although it might contain failures / wrong
+. results to be able to detect _new_ differences in the behaviour.
+. Hopefully the remaining checks can be made soon.
+.
+--------------------------------------------------------------------------------
+ FIXME: There are subtests that are switched off due to known bugs:
+ ------------------------------------------------------------------
+WL#2984: DECIMAL and NUMERIC problems with differences on some machines
+0
+
+There are some statements where the ps-protocol is switched off.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.1 - Syntax checks for the CREATE PROCEDURE, CREATE
+FUNCTION, ALTER PROCEDURE, ALTER FUNCTION, DROP PROCEDURE, DROP FUNCTION, SHOW
+CREATE PROCEDURE, SHOW CREATE FUNCTION, SHOW CREATE PROCEDURE STATUS, SHOW
+CREATE FUNCTION STATUS, and CALL statements:
+--------------------------------------------------------------------------------
+
+Testcase 4.1.1:
+---------------
+Ensure that all clauses that should be supported are supported
+CREATE PROCEDURE
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 (f1 char(20) )
+SELECT * from t1 where f2 = f1;
+ERROR 42000: Identifier name 'sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934' is too long
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934('aaaa');
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 does not exist
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( f1 tinytext ) language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1, @v1;
+END//
+ERROR 42000: Identifier name 'sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde' is too long
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( 'abc' );
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde does not exist
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 binary ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+3
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 blob ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+34
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 int ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 34 );
+@v1
+34
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: SP definition accepted with m>60 in DECIMAL(m,n)
+CREATE PROCEDURE sp1( f1 decimal(256, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+ERROR 42000: Too big precision 256 specified for column ''. Maximum is 65.
+DROP PROCEDURE IF EXISTS sp1//
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( f1 decimal(66, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+ERROR 42000: Too big precision 66 specified for column ''. Maximum is 65.
+DROP PROCEDURE IF EXISTS sp1//
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( f1 decimal(60, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set @v1 = f1;
+SELECT @v1;
+END//
+CALL sp1( 17976931340000 );
+@v1
+17976931340000.000000000000000000000000000000
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+CALL sp1( "value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 set("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+CALL sp1( "value1, value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+SELECT f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+CALL sp1( "value1" );
+f1
+value1
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW PROCEDURE status;
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER this is simple
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) language sql SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) deterministic SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) not deterministic SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) sql security definer SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) sql security invoker SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created INVOKER
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 text ) comment 'this is simple' SELECT f1;
+CALL sp1( 'abc' );
+f1
+abc
+SHOW PROCEDURE status like 'sp1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp1 PROCEDURE root@localhost modified created DEFINER this is simple
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 does not exist
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+ERROR 42000: PROCEDURE db_storedproc.sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde does not exist
+DROP PROCEDURE sp1;
+
+Testcase 4.1.2:
+---------------
+Ensure that all clauses that should be supported are supported
+CREATE FUNCTION
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+return concat('hello, ', s, '!');
+SELECT fn1('world');
+fn1('world')
+hello, world!
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 mediumtext ) returns mediumtext language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+set @v1 = 'hello';
+set f1 = concat( @v1, f1 );
+return f1;
+END//
+SELECT fn1( ' world');
+fn1( ' world')
+hello world
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 decimal(63, 31) ) returns decimal(63, 31) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1000000 + f1;
+return f1;
+END//
+ERROR 42000: Too big scale 31 specified for column ''. Maximum is 30.
+SELECT fn1( 1.3326e+8 );
+ERROR 42000: FUNCTION db_storedproc.fn1 does not exist
+CREATE FUNCTION fn1( f1 decimal(63, 30) ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+set f1 = 1000000 + f1;
+return f1;
+END//
+SELECT fn1( 1.3326e+8 );
+fn1( 1.3326e+8 )
+134260000.000000000000000000000000000000
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 enum("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+return f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SELECT fn1( "value1" );
+fn1( "value1" )
+1.000000000000000000000000000000
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in ENUM
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 set("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+return f1;
+END//
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+SELECT fn1( "value1, value1" );
+fn1( "value1, value1" )
+1.000000000000000000000000000000
+Warnings:
+Note 1291 Column '' has duplicated value 'value1' in SET
+Warning 1265 Data truncated for column 'f1' at row 1
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is simple
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint deterministic
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint not deterministic
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+sql security definer
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+sql security invoker
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+comment 'this is simple'
+BEGIN
+set f1 = 1 + f1;
+return f1;
+END//
+SELECT fn1( 126 );
+fn1( 126 )
+127
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER this is simple
+DROP FUNCTION fn1;
+
+Testcase 4.1.3:
+---------------
+Ensure that all clauses that should be supported are supported
+SHOW CREATE PROC
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (f1 char(20) )
+SELECT * from t1 where f2 = f1;
+show CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+sp1 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`(f1 char(20) )
+SELECT * from t1 where f2 = f1
+DROP PROCEDURE sp1;
+
+Testcase 4.1.4:
+---------------
+show create function
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+return concat('hello, ', s, '!');
+show CREATE FUNCTION fn1;
+Function sql_mode Create Function
+fn1 CREATE DEFINER=`root`@`localhost` FUNCTION `fn1`(s char(20)) RETURNS char(50)
+return concat('hello, ', s, '!')
+DROP FUNCTION fn1;
+
+Testcase 4.1.5:
+---------------
+SHOW PROCEDURE status
+--------------------------------------------------------------------------------
+CREATE PROCEDURE sp5()
+SELECT * from t1;
+SHOW PROCEDURE status like 'sp5';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp5 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE sp5;
+
+Testcase 4.1.6:
+---------------
+show function status
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn5(a int) returns int
+BEGIN
+set @b = 0.9 * a;
+return @b;
+END//
+SHOW FUNCTION STATUS LIKE 'fn5';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn5 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION fn5;
+
+Testcase 4.1.7:
+---------------
+CALL procedure
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7a;
+DROP PROCEDURE IF EXISTS sp7b;
+DROP PROCEDURE IF EXISTS sp7c;
+CREATE PROCEDURE sp7a(a char(20))
+SELECT * from t1 where t1.f2 = a;
+CALL sp7a( 'xyz' );
+f1 f2 f3 f4 f5 f6
+CREATE PROCEDURE sp7b (a char (20), out b char(20))
+SELECT f1 into b from t1 where t1.f2= a;
+CALL sp7b('xyz', @out_param);
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+SELECT @out_param;
+@out_param
+NULL
+CREATE PROCEDURE sp7c (a char (20), out b char(20), inout c int)
+BEGIN
+SELECT f1 into b from t1 where t1.f2=a;
+update t1 set t1.f2=999 where t1.f4=c;
+SELECT f2 into c from t1 where t1.f2=999;
+END//
+set @c=1;
+CALL sp7c('xyz', @out_param, @c);
+Warnings:
+Warning 1329 No data - zero rows fetched, selected, or processed
+Warning 1329 No data - zero rows fetched, selected, or processed
+SELECT @out_param;
+@out_param
+NULL
+SELECT @c;
+@c
+1
+DROP PROCEDURE sp7a;
+DROP PROCEDURE sp7b;
+DROP PROCEDURE sp7c;
+
+Testcase 4.1.8:
+---------------
+calling function
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn8(a char(20)) returns char(50)
+return concat('hello, ', a, '!');
+SELECT fn8('world');
+fn8('world')
+hello, world!
+DROP FUNCTION fn8;
+
+Testcase 4.1.9:
+---------------
+drop procedure
+--------------------------------------------------------------------------------
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+DROP PROCEDURE IF EXISTS sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE PROCEDURE sp9()SELECT * from t1;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc sp9 PROCEDURE sp9 SQL CONTAINS_SQL NO DEFINER SELECT * from t1 root@localhost created modified
+DROP PROCEDURE sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE PROCEDURE sp9()SELECT * from t1;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc sp9 PROCEDURE sp9 SQL CONTAINS_SQL NO DEFINER SELECT * from t1 root@localhost created modified
+DROP PROCEDURE IF EXISTS sp9;
+SELECT * from mysql.proc where specific_name='sp9';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.1.10:
+----------------
+DROP FUNCTION
+--------------------------------------------------------------------------------
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+DROP FUNCTION IF EXISTS fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE FUNCTION fn10() returns int return 100;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc fn10 FUNCTION fn10 SQL CONTAINS_SQL NO DEFINER int(11) return 100 root@localhost created modified
+DROP FUNCTION fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+CREATE FUNCTION fn10() returns int return 100;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+db_storedproc fn10 FUNCTION fn10 SQL CONTAINS_SQL NO DEFINER int(11) return 100 root@localhost created modified
+DROP FUNCTION IF EXISTS fn10;
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.1.11:
+----------------
+alter proc
+--------------------------------------------------------------------------------
+create user 'user_1'@'localhost';
+grant execute on db_storedproc.* to 'user_1'@'localhost';
+flush privileges;
+drop table IF EXISTS mysql.t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table mysql.t1( f1 char );
+DROP PROCEDURE IF EXISTS sp11;
+Warnings:
+Note 1305 PROCEDURE sp11 does not exist
+CREATE PROCEDURE sp11() insert into mysql.t1 values('a');
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+DEFINER
+connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc
+CALL sp11();
+
+root@localhost db_storedproc
+alter procedure sp11 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+INVOKER
+
+user_1@localhost db_storedproc
+CALL sp11();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't1'
+commit work;
+
+root@localhost db_storedproc
+alter procedure sp11 sql security definer;
+SELECT security_type from mysql.proc where specific_name='sp11';
+security_type
+DEFINER
+CALL sp11();
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp11;
+drop table mysql.t1;
+
+Testcase 4.1.12:
+----------------
+alter function
+--------------------------------------------------------------------------------
+CREATE FUNCTION fn12() returns int
+return 100;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+DEFINER
+SELECT fn12();
+fn12()
+100
+alter function fn12 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+INVOKER
+SELECT fn12();
+fn12()
+100
+alter function fn12 sql security definer;
+SELECT security_type from mysql.proc where specific_name='fn12';
+security_type
+DEFINER
+SELECT fn12();
+fn12()
+100
+DROP FUNCTION fn12;
+
+Testcase 4.1.13:
+----------------
+alter proc
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp11;
+Warnings:
+Note 1305 PROCEDURE sp11 does not exist
+CREATE PROCEDURE sp11()
+SELECT * from t1;
+SELECT comment from mysql.proc where specific_name='sp11';
+comment
+
+alter procedure sp11 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='sp11';
+comment
+this is simple
+DROP PROCEDURE sp11;
+
+Testcase 4.1.14:
+----------------
+alter function
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn12;
+Warnings:
+Note 1305 FUNCTION fn12 does not exist
+CREATE FUNCTION fn12() returns int
+return 100;
+SELECT comment from mysql.proc where specific_name='fn12';
+comment
+
+alter function fn12 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='fn12';
+comment
+this is simple
+DROP FUNCTION fn12;
+
+Testcase 4.1.15:
+----------------
+Ensure that any invalid stored procedure name is never accepted, and that an
+appropriate error message is returned when the name is rejected
+--------------------------------------------------------------------------------
+CREATE PROCEDURE sp1()
+DROP PROCEDURE sp1;
+ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
+CREATE PROCEDURE !_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1;
+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 '!_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1' at line 1
+CREATE PROCEDURE function()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE function;
+CREATE PROCEDURE add()
+SELECT * from t1 where f2=f1;
+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 'add()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE all()
+SELECT * from t1 where f2=f1;
+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 'all()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE alter()
+SELECT * from t1 where f2=f1;
+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 'alter()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE analyze()
+SELECT * from t1 where f2=f1;
+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 'analyze()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE and()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE as()
+SELECT * from t1 where f2=f1;
+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 'as()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE asc()
+SELECT * from t1 where f2=f1;
+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 'asc()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE asensitive()
+SELECT * from t1 where f2=f1;
+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 'asensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE before()
+SELECT * from t1 where f2=f1;
+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 'before()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE between()
+SELECT * from t1 where f2=f1;
+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 'between()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE bigint()
+SELECT * from t1 where f2=f1;
+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 'bigint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE binary()
+SELECT * from t1 where f2=f1;
+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 'binary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE blob()
+SELECT * from t1 where f2=f1;
+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 'blob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE both()
+SELECT * from t1 where f2=f1;
+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 'both()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE by()
+SELECT * from t1 where f2=f1;
+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 'by()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE CALL()
+SELECT * from t1 where f2=f1;
+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 'CALL()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cascade()
+SELECT * from t1 where f2=f1;
+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 'cascade()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE case()
+SELECT * from t1 where f2=f1;
+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 'case()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE change()
+SELECT * from t1 where f2=f1;
+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 'change()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE char()
+SELECT * from t1 where f2=f1;
+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 'char()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE character()
+SELECT * from t1 where f2=f1;
+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 'character()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE check()
+SELECT * from t1 where f2=f1;
+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 'check()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE collate()
+SELECT * from t1 where f2=f1;
+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 'collate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE column()
+SELECT * from t1 where f2=f1;
+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 'column()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE columns()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE columns;
+CREATE PROCEDURE condition()
+SELECT * from t1 where f2=f1;
+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 'condition()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE connection()
+SELECT * from t1 where f2=f1;
+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 'connection()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE constraint()
+SELECT * from t1 where f2=f1;
+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 'constraint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE continue()
+SELECT * from t1 where f2=f1;
+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 'continue()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE convert()
+SELECT * from t1 where f2=f1;
+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 'convert()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE create()
+SELECT * from t1 where f2=f1;
+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 'create()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cross()
+SELECT * from t1 where f2=f1;
+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 'cross()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_date()
+SELECT * from t1 where f2=f1;
+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 'current_date()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_time()
+SELECT * from t1 where f2=f1;
+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 'current_time()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_timestamp()
+SELECT * from t1 where f2=f1;
+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 'current_timestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE current_user()
+SELECT * from t1 where f2=f1;
+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 'current_user()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE cursor()
+SELECT * from t1 where f2=f1;
+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 'cursor()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE database()
+SELECT * from t1 where f2=f1;
+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 'database()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE databases()
+SELECT * from t1 where f2=f1;
+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 'databases()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_hour()
+SELECT * from t1 where f2=f1;
+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 'day_hour()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_microsecond()
+SELECT * from t1 where f2=f1;
+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 'day_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_minute()
+SELECT * from t1 where f2=f1;
+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 'day_minute()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE day_second()
+SELECT * from t1 where f2=f1;
+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 'day_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE dec()
+SELECT * from t1 where f2=f1;
+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 'dec()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE decimal()
+SELECT * from t1 where f2=f1;
+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 'decimal()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE declare()
+SELECT * from t1 where f2=f1;
+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 'declare()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE default()
+SELECT * from t1 where f2=f1;
+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 'default()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE delayed()
+SELECT * from t1 where f2=f1;
+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 'delayed()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE delete()
+SELECT * from t1 where f2=f1;
+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 'delete()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE desc()
+SELECT * from t1 where f2=f1;
+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 'desc()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE describe()
+SELECT * from t1 where f2=f1;
+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 'describe()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE deterministic()
+SELECT * from t1 where f2=f1;
+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 'deterministic()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE distinct()
+SELECT * from t1 where f2=f1;
+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 'distinct()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE distinctrow()
+SELECT * from t1 where f2=f1;
+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 'distinctrow()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE div()
+SELECT * from t1 where f2=f1;
+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 'div()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE double()
+SELECT * from t1 where f2=f1;
+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 'double()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE drop()
+SELECT * from t1 where f2=f1;
+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 'drop()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE dual()
+SELECT * from t1 where f2=f1;
+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 'dual()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE each()
+SELECT * from t1 where f2=f1;
+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 'each()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE else()
+SELECT * from t1 where f2=f1;
+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 'else()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE elseif()
+SELECT * from t1 where f2=f1;
+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 'elseif()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE enclosed()
+SELECT * from t1 where f2=f1;
+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 'enclosed()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE escaped()
+SELECT * from t1 where f2=f1;
+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 'escaped()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE exists()
+SELECT * from t1 where f2=f1;
+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 'exists()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE exit()
+SELECT * from t1 where f2=f1;
+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 'exit()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE explain()
+SELECT * from t1 where f2=f1;
+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 'explain()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE false()
+SELECT * from t1 where f2=f1;
+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 'false()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fetch()
+SELECT * from t1 where f2=f1;
+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 'fetch()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fields()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE fields;
+CREATE PROCEDURE float()
+SELECT * from t1 where f2=f1;
+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 'float()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE for()
+SELECT * from t1 where f2=f1;
+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 'for()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE force()
+SELECT * from t1 where f2=f1;
+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 'force()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE foreign()
+SELECT * from t1 where f2=f1;
+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 'foreign()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE found()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE found;
+CREATE PROCEDURE from()
+SELECT * from t1 where f2=f1;
+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 'from()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE fulltext()
+SELECT * from t1 where f2=f1;
+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 'fulltext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE goto()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE goto;
+CREATE PROCEDURE grant()
+SELECT * from t1 where f2=f1;
+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 'grant()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE group()
+SELECT * from t1 where f2=f1;
+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 'group()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE having()
+SELECT * from t1 where f2=f1;
+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 'having()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE high_priority()
+SELECT * from t1 where f2=f1;
+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 'high_priority()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_microsecond()
+SELECT * from t1 where f2=f1;
+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 'hour_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_minute()
+SELECT * from t1 where f2=f1;
+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 'hour_minute()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE hour_second()
+SELECT * from t1 where f2=f1;
+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 'hour_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE if()
+SELECT * from t1 where f2=f1;
+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 'if()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE ignore()
+SELECT * from t1 where f2=f1;
+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 'ignore()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE in()
+SELECT * from t1 where f2=f1;
+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 'in()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE index()
+SELECT * from t1 where f2=f1;
+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 'index()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE infile()
+SELECT * from t1 where f2=f1;
+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 'infile()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE inner()
+SELECT * from t1 where f2=f1;
+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 'inner()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE inout()
+SELECT * from t1 where f2=f1;
+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 'inout()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE insensitive()
+SELECT * from t1 where f2=f1;
+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 'insensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE insert()
+SELECT * from t1 where f2=f1;
+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 'insert()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE int()
+SELECT * from t1 where f2=f1;
+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 'int()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE integer()
+SELECT * from t1 where f2=f1;
+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 'integer()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE interval()
+SELECT * from t1 where f2=f1;
+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 'interval()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE into()
+SELECT * from t1 where f2=f1;
+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 'into()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE is()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE iterate()
+SELECT * from t1 where f2=f1;
+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 'iterate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE join()
+SELECT * from t1 where f2=f1;
+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 'join()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE key()
+SELECT * from t1 where f2=f1;
+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 'key()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE keys()
+SELECT * from t1 where f2=f1;
+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 'keys()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE kill()
+SELECT * from t1 where f2=f1;
+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 'kill()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE leading()
+SELECT * from t1 where f2=f1;
+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 'leading()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE leave()
+SELECT * from t1 where f2=f1;
+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 'leave()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE left()
+SELECT * from t1 where f2=f1;
+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 'left()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE like()
+SELECT * from t1 where f2=f1;
+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 'like()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE limit()
+SELECT * from t1 where f2=f1;
+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 'limit()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE lines()
+SELECT * from t1 where f2=f1;
+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 'lines()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE load()
+SELECT * from t1 where f2=f1;
+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 'load()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE localtime()
+SELECT * from t1 where f2=f1;
+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 'localtime()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE localtimestamp()
+SELECT * from t1 where f2=f1;
+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 'localtimestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE lock()
+SELECT * from t1 where f2=f1;
+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 'lock()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE long()
+SELECT * from t1 where f2=f1;
+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 'long()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE longblob()
+SELECT * from t1 where f2=f1;
+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 'longblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE longtext()
+SELECT * from t1 where f2=f1;
+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 'longtext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE loop()
+SELECT * from t1 where f2=f1;
+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 'loop()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE low_priority()
+SELECT * from t1 where f2=f1;
+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 'low_priority()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE match()
+SELECT * from t1 where f2=f1;
+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 'match()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumblob()
+SELECT * from t1 where f2=f1;
+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 'mediumblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumint()
+SELECT * from t1 where f2=f1;
+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 'mediumint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mediumtext()
+SELECT * from t1 where f2=f1;
+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 'mediumtext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE middleint()
+SELECT * from t1 where f2=f1;
+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 'middleint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE minute_microsecond()
+SELECT * from t1 where f2=f1;
+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 'minute_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE minute_second()
+SELECT * from t1 where f2=f1;
+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 'minute_second()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE mod()
+SELECT * from t1 where f2=f1;
+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 'mod()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE modifies()
+SELECT * from t1 where f2=f1;
+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 'modifies()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE natural()
+SELECT * from t1 where f2=f1;
+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 'natural()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE not()
+SELECT * from t1 where f2=f1;
+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 'not()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE no_write_to_binlog()
+SELECT * from t1 where f2=f1;
+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 'no_write_to_binlog()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE null()
+SELECT * from t1 where f2=f1;
+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 'null()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE numeric()
+SELECT * from t1 where f2=f1;
+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 'numeric()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE on()
+SELECT * from t1 where f2=f1;
+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 'on()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE optimize()
+SELECT * from t1 where f2=f1;
+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 'optimize()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE option()
+SELECT * from t1 where f2=f1;
+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 'option()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE optionally()
+SELECT * from t1 where f2=f1;
+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 'optionally()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE or()
+SELECT * from t1 where f2=f1;
+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 'or()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE order()
+SELECT * from t1 where f2=f1;
+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 'order()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE out()
+SELECT * from t1 where f2=f1;
+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 'out()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE outer()
+SELECT * from t1 where f2=f1;
+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 'outer()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE outfile()
+SELECT * from t1 where f2=f1;
+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 'outfile()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE precision()
+SELECT * from t1 where f2=f1;
+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 'precision()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE primary()
+SELECT * from t1 where f2=f1;
+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 'primary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE privileges()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE privileges;
+CREATE PROCEDURE procedure()
+SELECT * from t1 where f2=f1;
+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 'procedure()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE purge()
+SELECT * from t1 where f2=f1;
+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 'purge()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE read()
+SELECT * from t1 where f2=f1;
+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 'read()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE reads()
+SELECT * from t1 where f2=f1;
+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 'reads()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE real()
+SELECT * from t1 where f2=f1;
+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 'real()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE references()
+SELECT * from t1 where f2=f1;
+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 'references()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE regexp()
+SELECT * from t1 where f2=f1;
+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 'regexp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE rename()
+SELECT * from t1 where f2=f1;
+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 'rename()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE repeat()
+SELECT * from t1 where f2=f1;
+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 'repeat()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE replace()
+SELECT * from t1 where f2=f1;
+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 'replace()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE require()
+SELECT * from t1 where f2=f1;
+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 'require()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE restrict()
+SELECT * from t1 where f2=f1;
+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 'restrict()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE return()
+SELECT * from t1 where f2=f1;
+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 'return()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE revoke()
+SELECT * from t1 where f2=f1;
+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 'revoke()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE right()
+SELECT * from t1 where f2=f1;
+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 'right()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE rlike()
+SELECT * from t1 where f2=f1;
+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 'rlike()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE schema()
+SELECT * from t1 where f2=f1;
+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 'schema()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE schemas()
+SELECT * from t1 where f2=f1;
+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 'schemas()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE second_microsecond()
+SELECT * from t1 where f2=f1;
+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 'second_microsecond()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE select()
+SELECT * from t1 where f2=f1;
+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 'select()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sensitive()
+SELECT * from t1 where f2=f1;
+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 'sensitive()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE separator()
+SELECT * from t1 where f2=f1;
+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 'separator()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE set()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE show()
+SELECT * from t1 where f2=f1;
+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 'show()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE smallint()
+SELECT * from t1 where f2=f1;
+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 'smallint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE soname()
+SELECT * from t1 where f2=f1;
+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 'soname()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE spatial()
+SELECT * from t1 where f2=f1;
+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 'spatial()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE specific()
+SELECT * from t1 where f2=f1;
+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 'specific()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql()
+SELECT * from t1 where f2=f1;
+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 'sql()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlexception()
+SELECT * from t1 where f2=f1;
+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 'sqlexception()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlstate()
+SELECT * from t1 where f2=f1;
+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 'sqlstate()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sqlwarning()
+SELECT * from t1 where f2=f1;
+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 'sqlwarning()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_big_result()
+SELECT * from t1 where f2=f1;
+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 'sql_big_result()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_calc_found_rows()
+SELECT * from t1 where f2=f1;
+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 'sql_calc_found_rows()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE sql_small_result()
+SELECT * from t1 where f2=f1;
+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 'sql_small_result()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE ssl()
+SELECT * from t1 where f2=f1;
+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 'ssl()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE starting()
+SELECT * from t1 where f2=f1;
+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 'starting()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE straight_join()
+SELECT * from t1 where f2=f1;
+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 'straight_join()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE table()
+SELECT * from t1 where f2=f1;
+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 'table()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tables()
+SELECT * from t1 where f2=f1;
+DROP PROCEDURE tables;
+CREATE PROCEDURE terminated()
+SELECT * from t1 where f2=f1;
+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 'terminated()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE then()
+SELECT * from t1 where f2=f1;
+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 'then()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinyblob()
+SELECT * from t1 where f2=f1;
+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 'tinyblob()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinyint()
+SELECT * from t1 where f2=f1;
+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 'tinyint()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE tinytext()
+SELECT * from t1 where f2=f1;
+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 'tinytext()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE to()
+SELECT * from t1 where f2=f1;
+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 'to()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE trailing()
+SELECT * from t1 where f2=f1;
+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 'trailing()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE trigger()
+SELECT * from t1 where f2=f1;
+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 'trigger()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE true()
+SELECT * from t1 where f2=f1;
+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 'true()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE undo()
+SELECT * from t1 where f2=f1;
+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 'undo()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE union()
+SELECT * from t1 where f2=f1;
+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 'union()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unique()
+SELECT * from t1 where f2=f1;
+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 'unique()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unlock()
+SELECT * from t1 where f2=f1;
+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 'unlock()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE unsigned()
+SELECT * from t1 where f2=f1;
+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 'unsigned()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE update()
+SELECT * from t1 where f2=f1;
+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 'update()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE usage()
+SELECT * from t1 where f2=f1;
+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 'usage()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE use()
+SELECT * from t1 where f2=f1;
+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 'use()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE using()
+SELECT * from t1 where f2=f1;
+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 'using()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_date()
+SELECT * from t1 where f2=f1;
+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 'utc_date()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_time()
+SELECT * from t1 where f2=f1;
+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 'utc_time()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE utc_timestamp()
+SELECT * from t1 where f2=f1;
+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 'utc_timestamp()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE values()
+SELECT * from t1 where f2=f1;
+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 'values()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varbinary()
+SELECT * from t1 where f2=f1;
+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 'varbinary()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varchar()
+SELECT * from t1 where f2=f1;
+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 'varchar()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varcharacter()
+SELECT * from t1 where f2=f1;
+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 'varcharacter()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE varying()
+SELECT * from t1 where f2=f1;
+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 'varying()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE when()
+SELECT * from t1 where f2=f1;
+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 'when()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE where()
+SELECT * from t1 where f2=f1;
+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 'where()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE while()
+SELECT * from t1 where f2=f1;
+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()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE with()
+SELECT * from t1 where f2=f1;
+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 'with()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE write()
+SELECT * from t1 where f2=f1;
+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 'write()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE xor()
+SELECT * from t1 where f2=f1;
+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 'xor()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE year_month()
+SELECT * from t1 where f2=f1;
+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 'year_month()
+SELECT * from t1 where f2=f1' at line 1
+CREATE PROCEDURE zerofill()
+SELECT * from t1 where f2=f1;
+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 'zerofill()
+SELECT * from t1 where f2=f1' at line 1
+
+Testcase 4.1.15:
+----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected
+--------------------------------------------------------------------------------
+CREATE FUNCTION !_fn1(f1 char) returns char
+return f1;
+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 '!_fn1(f1 char) returns char
+return f1' at line 1
+CREATE FUNCTION char(f1 char) returns char
+return f1;
+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 'char(f1 char) returns char
+return f1' at line 1
+CREATE FUNCTION char binary(f1 char binary) returns char binary
+return f1;
+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 'char binary(f1 char binary) returns char binary
+return f1' at line 1
+CREATE FUNCTION char ascii(f1 char ascii) returns char ascii
+return f1;
+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 'char ascii(f1 char ascii) returns char ascii
+return f1' at line 1
+CREATE FUNCTION char not null(f1 char not null) returns char not null
+return f1;
+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 'char not null(f1 char not null) returns char not null
+return f1' at line 1
+CREATE FUNCTION char binary not null(f1 char binary not null) returns char binary not null
+return f1;
+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 'char binary not null(f1 char binary not null) returns char binary not null
+retur' at line 1
+CREATE FUNCTION char ascii not null(f1 char ascii not null) returns char ascii not null
+return f1;
+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 'char ascii not null(f1 char ascii not null) returns char ascii not null
+return f' at line 1
+CREATE FUNCTION tinytext(f1 tinytext) returns tinytext
+return f1;
+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 'tinytext(f1 tinytext) returns tinytext
+return f1' at line 1
+CREATE FUNCTION text(f1 text) returns text
+return f1;
+DROP FUNCTION text;
+CREATE FUNCTION mediumtext(f1 mediumtext) returns mediumtext
+return f1;
+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 'mediumtext(f1 mediumtext) returns mediumtext
+return f1' at line 1
+CREATE FUNCTION longtext(f1 longtext) returns longtext
+return f1;
+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 'longtext(f1 longtext) returns longtext
+return f1' at line 1
+CREATE FUNCTION tinytext not null(f1 tinytext not null) returns tinytext not null
+return f1;
+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 'tinytext not null(f1 tinytext not null) returns tinytext not null
+return f1' at line 1
+CREATE FUNCTION text not null(f1 text not null) returns text not null
+return f1;
+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 'not null(f1 text not null) returns text not null
+return f1' at line 1
+CREATE FUNCTION mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+return f1;
+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 'mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+return f' at line 1
+CREATE FUNCTION longtext not null(f1 longtext not null) returns longtext not null
+return f1;
+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 'longtext not null(f1 longtext not null) returns longtext not null
+return f1' at line 1
+CREATE FUNCTION tinyblob(f1 tinyblob) returns tinyblob
+return f1;
+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 'tinyblob(f1 tinyblob) returns tinyblob
+return f1' at line 1
+CREATE FUNCTION blob(f1 blob) returns blob
+return f1;
+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 'blob(f1 blob) returns blob
+return f1' at line 1
+CREATE FUNCTION mediumblob(f1 mediumblob) returns mediumblob
+return f1;
+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 'mediumblob(f1 mediumblob) returns mediumblob
+return f1' at line 1
+CREATE FUNCTION longblob(f1 longblob) returns longblob
+return f1;
+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 'longblob(f1 longblob) returns longblob
+return f1' at line 1
+CREATE FUNCTION tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+return f1;
+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 'tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+return f1' at line 1
+CREATE FUNCTION blob not null(f1 blob not null) returns blob not null
+return f1;
+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 'blob not null(f1 blob not null) returns blob not null
+return f1' at line 1
+CREATE FUNCTION mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+return f1;
+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 'mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+return f' at line 1
+CREATE FUNCTION longblob not null(f1 longblob not null) returns longblob not null
+return f1;
+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 'longblob not null(f1 longblob not null) returns longblob not null
+return f1' at line 1
+CREATE FUNCTION binary(f1 binary) returns binary
+return f1;
+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 'binary(f1 binary) returns binary
+return f1' at line 1
+CREATE FUNCTION binary not null(f1 binary not null) returns binary not null
+return f1;
+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 'binary not null(f1 binary not null) returns binary not null
+return f1' at line 1
+CREATE FUNCTION tinyint(f1 tinyint) returns tinyint
+return f1;
+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 'tinyint(f1 tinyint) returns tinyint
+return f1' at line 1
+CREATE FUNCTION tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+return f1;
+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 'tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+return f1' at line 1
+CREATE FUNCTION tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+return f1;
+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 'tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+return f1' at line 1
+CREATE FUNCTION tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+return f1;
+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 'tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned' at line 1
+CREATE FUNCTION smallint(f1 smallint) returns smallint
+return f1;
+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 'smallint(f1 smallint) returns smallint
+return f1' at line 1
+CREATE FUNCTION smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+return f1;
+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 'smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+return f1' at line 1
+CREATE FUNCTION smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+return f1;
+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 'smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+return f1' at line 1
+CREATE FUNCTION smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+return f1;
+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 'smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsig' at line 1
+CREATE FUNCTION mediumint(f1 mediumint) returns mediumint
+return f1;
+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 'mediumint(f1 mediumint) returns mediumint
+return f1' at line 1
+CREATE FUNCTION mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+return f1;
+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 'mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+return f1' at line 1
+CREATE FUNCTION mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+return f1;
+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 'mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+return f1' at line 1
+CREATE FUNCTION mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+return f1;
+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 'mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint un' at line 1
+CREATE FUNCTION int(f1 int) returns int
+return f1;
+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 'int(f1 int) returns int
+return f1' at line 1
+CREATE FUNCTION int unsigned(f1 int unsigned) returns int unsigned
+return f1;
+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 'int unsigned(f1 int unsigned) returns int unsigned
+return f1' at line 1
+CREATE FUNCTION int zerofill(f1 int zerofill) returns int zerofill
+return f1;
+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 'int zerofill(f1 int zerofill) returns int zerofill
+return f1' at line 1
+CREATE FUNCTION int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+return f1;
+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 'int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+re' at line 1
+CREATE FUNCTION bigint(f1 bigint) returns bigint
+return f1;
+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 'bigint(f1 bigint) returns bigint
+return f1' at line 1
+CREATE FUNCTION bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+return f1;
+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 'bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+return f1' at line 1
+CREATE FUNCTION bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+return f1;
+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 'bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+return f1' at line 1
+CREATE FUNCTION bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+return f1;
+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 'bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned ze' at line 1
+CREATE FUNCTION decimal(f1 decimal) returns decimal
+return f1;
+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 'decimal(f1 decimal) returns decimal
+return f1' at line 1
+CREATE FUNCTION decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+return f1;
+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 'decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+return f1' at line 1
+CREATE FUNCTION decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+return f1;
+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 'decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+return f1' at line 1
+CREATE FUNCTION decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+return f1;
+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 'decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned' at line 1
+CREATE FUNCTION numeric(f1 numeric) returns numeric
+return f1;
+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 'numeric(f1 numeric) returns numeric
+return f1' at line 1
+CREATE FUNCTION numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+return f1;
+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 'numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+return f1' at line 1
+CREATE FUNCTION numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+return f1;
+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 'numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+return f1' at line 1
+CREATE FUNCTION numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+return f1;
+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 'numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned' at line 1
+CREATE FUNCTION real(f1 real) returns real
+return f1;
+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 'real(f1 real) returns real
+return f1' at line 1
+CREATE FUNCTION real unsigned(f1 real unsigned) returns real unsigned
+return f1;
+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 'real unsigned(f1 real unsigned) returns real unsigned
+return f1' at line 1
+CREATE FUNCTION real zerofill(f1 real zerofill) returns real zerofill
+return f1;
+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 'real zerofill(f1 real zerofill) returns real zerofill
+return f1' at line 1
+CREATE FUNCTION real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill
+return f1;
+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 'real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill' at line 1
+CREATE FUNCTION float(f1 float) returns float
+return f1;
+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 'float(f1 float) returns float
+return f1' at line 1
+CREATE FUNCTION float unsigned(f1 float unsigned) returns float unsigned
+return f1;
+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 'float unsigned(f1 float unsigned) returns float unsigned
+return f1' at line 1
+CREATE FUNCTION float zerofill(f1 float zerofill) returns float zerofill
+return f1;
+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 'float zerofill(f1 float zerofill) returns float zerofill
+return f1' at line 1
+CREATE FUNCTION float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerofill
+return f1;
+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 'float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerof' at line 1
+CREATE FUNCTION date(f1 date) returns date
+return f1;
+DROP FUNCTION date;
+CREATE FUNCTION time(f1 time) returns time
+return f1;
+DROP FUNCTION time;
+CREATE FUNCTION datetime(f1 datetime) returns datetime
+return f1;
+DROP FUNCTION datetime;
+CREATE FUNCTION timestamp(f1 timestamp) returns timestamp
+return f1;
+DROP FUNCTION timestamp;
+CREATE FUNCTION year(f1 year) returns year
+return f1;
+DROP FUNCTION year;
+CREATE FUNCTION year(3)(f1 year(3)) returns year(3)
+return f1;
+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 '3)(f1 year(3)) returns year(3)
+return f1' at line 1
+CREATE FUNCTION year(4)(f1 year(4)) returns year(4)
+return f1;
+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 '4)(f1 year(4)) returns year(4)
+return f1' at line 1
+CREATE FUNCTION enum("1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+return f1;
+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 '"1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+retu' at line 1
+CREATE FUNCTION set("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+return f1;
+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("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+return f' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char f1 ) returns char
+return f1;
+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 'char f1 ) returns char
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char binary f1 ) returns char binary
+return f1;
+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 'char binary f1 ) returns char binary
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char ascii f1 ) returns char ascii
+return f1;
+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 'char ascii f1 ) returns char ascii
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char not null f1 ) returns char not null
+return f1;
+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 'char not null f1 ) returns char not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char binary not null f1 ) returns char binary not null
+return f1;
+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 'char binary not null f1 ) returns char binary not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(char ascii not null f1 ) returns char ascii not null
+return f1;
+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 'char ascii not null f1 ) returns char ascii not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinytext f1 ) returns tinytext
+return f1;
+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 'tinytext f1 ) returns tinytext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(text f1 ) returns text
+return f1;
+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 'f1 ) returns text
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumtext f1 ) returns mediumtext
+return f1;
+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 'mediumtext f1 ) returns mediumtext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longtext f1 ) returns longtext
+return f1;
+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 'longtext f1 ) returns longtext
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinytext not null f1 ) returns tinytext not null
+return f1;
+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 'tinytext not null f1 ) returns tinytext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(text not null f1 ) returns text not null
+return f1;
+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 'not null f1 ) returns text not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumtext not null f1 ) returns mediumtext not null
+return f1;
+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 'mediumtext not null f1 ) returns mediumtext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longtext not null f1 ) returns longtext not null
+return f1;
+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 'longtext not null f1 ) returns longtext not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyblob f1 ) returns tinyblob
+return f1;
+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 'tinyblob f1 ) returns tinyblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(blob f1 ) returns blob
+return f1;
+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 'blob f1 ) returns blob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumblob f1 ) returns mediumblob
+return f1;
+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 'mediumblob f1 ) returns mediumblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longblob f1 ) returns longblob
+return f1;
+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 'longblob f1 ) returns longblob
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyblob not null f1 ) returns tinyblob not null
+return f1;
+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 'tinyblob not null f1 ) returns tinyblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(blob not null f1 ) returns blob not null
+return f1;
+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 'blob not null f1 ) returns blob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumblob not null f1 ) returns mediumblob not null
+return f1;
+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 'mediumblob not null f1 ) returns mediumblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(longblob not null f1 ) returns longblob not null
+return f1;
+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 'longblob not null f1 ) returns longblob not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(binary f1 ) returns binary
+return f1;
+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 'binary f1 ) returns binary
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(binary not null f1 ) returns binary not null
+return f1;
+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 'binary not null f1 ) returns binary not null
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint f1 ) returns tinyint
+return f1;
+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 'tinyint f1 ) returns tinyint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint unsigned f1 ) returns tinyint unsigned
+return f1;
+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 'tinyint unsigned f1 ) returns tinyint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint zerofill f1 ) returns tinyint zerofill
+return f1;
+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 'tinyint zerofill f1 ) returns tinyint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+return f1;
+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 'tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint f1 ) returns smallint
+return f1;
+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 'smallint f1 ) returns smallint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint unsigned f1 ) returns smallint unsigned
+return f1;
+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 'smallint unsigned f1 ) returns smallint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint zerofill f1 ) returns smallint zerofill
+return f1;
+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 'smallint zerofill f1 ) returns smallint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+return f1;
+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 'smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint f1 ) returns mediumint
+return f1;
+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 'mediumint f1 ) returns mediumint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint unsigned f1 ) returns mediumint unsigned
+return f1;
+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 'mediumint unsigned f1 ) returns mediumint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint zerofill f1 ) returns mediumint zerofill
+return f1;
+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 'mediumint zerofill f1 ) returns mediumint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+return f1;
+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 'mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int f1 ) returns int
+return f1;
+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 'int f1 ) returns int
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int unsigned f1 ) returns int unsigned
+return f1;
+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 'int unsigned f1 ) returns int unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int zerofill f1 ) returns int zerofill
+return f1;
+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 'int zerofill f1 ) returns int zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(int unsigned zerofill f1 ) returns int unsigned zerofill
+return f1;
+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 'int unsigned zerofill f1 ) returns int unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint f1 ) returns bigint
+return f1;
+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 'bigint f1 ) returns bigint
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint unsigned f1 ) returns bigint unsigned
+return f1;
+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 'bigint unsigned f1 ) returns bigint unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint zerofill f1 ) returns bigint zerofill
+return f1;
+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 'bigint zerofill f1 ) returns bigint zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+return f1;
+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 'bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal f1 ) returns decimal
+return f1;
+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 'decimal f1 ) returns decimal
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal unsigned f1 ) returns decimal unsigned
+return f1;
+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 'decimal unsigned f1 ) returns decimal unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal zerofill f1 ) returns decimal zerofill
+return f1;
+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 'decimal zerofill f1 ) returns decimal zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+return f1;
+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 'decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric f1 ) returns numeric
+return f1;
+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 'numeric f1 ) returns numeric
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric unsigned f1 ) returns numeric unsigned
+return f1;
+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 'numeric unsigned f1 ) returns numeric unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric zerofill f1 ) returns numeric zerofill
+return f1;
+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 'numeric zerofill f1 ) returns numeric zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+return f1;
+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 'numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real f1 ) returns real
+return f1;
+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 'real f1 ) returns real
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real unsigned f1 ) returns real unsigned
+return f1;
+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 'real unsigned f1 ) returns real unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real zerofill f1 ) returns real zerofill
+return f1;
+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 'real zerofill f1 ) returns real zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(real unsigned zerofill f1 ) returns real unsigned zerofill
+return f1;
+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 'real unsigned zerofill f1 ) returns real unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float f1 ) returns float
+return f1;
+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 'float f1 ) returns float
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float unsigned f1 ) returns float unsigned
+return f1;
+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 'float unsigned f1 ) returns float unsigned
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float zerofill f1 ) returns float zerofill
+return f1;
+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 'float zerofill f1 ) returns float zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(float unsigned zerofill f1 ) returns float unsigned zerofill
+return f1;
+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 'float unsigned zerofill f1 ) returns float unsigned zerofill
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(date f1 ) returns date
+return f1;
+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 'f1 ) returns date
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(time f1 ) returns time
+return f1;
+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 'f1 ) returns time
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(datetime f1 ) returns datetime
+return f1;
+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 'f1 ) returns datetime
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(timestamp f1 ) returns timestamp
+return f1;
+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 'f1 ) returns timestamp
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year f1 ) returns year
+return f1;
+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 'f1 ) returns year
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year(3) f1 ) returns year(3)
+return f1;
+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 '(3) f1 ) returns year(3)
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(year(4) f1 ) returns year(4)
+return f1;
+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 '(4) f1 ) returns year(4)
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(enum("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+return f1;
+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 '("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+return f1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(set("1set", "2set") f1 ) returns set("1set", "2set")
+return f1;
+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("1set", "2set") f1 ) returns set("1set", "2set")
+return f1' at line 1
+
+Testcase 4.1.16:
+----------------
+Ensure that a reference to a non-existent stored procedure is rejected with an
+appropriate error message
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp16;
+Warnings:
+Note 1305 PROCEDURE sp16 does not exist
+CALL sp16( 'xyz' );
+ERROR 42000: PROCEDURE db_storedproc.sp16 does not exist
+CREATE DATABASE db1;
+USE db1;
+CREATE PROCEDURE sp16()
+BEGIN
+set @var1 = 1;
+SELECT @var1;
+END//
+CALL db_storedproc.sp16();
+ERROR 42000: PROCEDURE db_storedproc.sp16 does not exist
+USE db_storedproc;
+DROP PROCEDURE db1.sp16;
+DROP DATABASE db1;
+
+Testcase 4.1.17:
+----------------
+Ensure that it is possible to drop, create and CALL/execute a procedure and a
+function with the same name, even in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 ()
+BEGIN
+declare x enum( 'db1', 'test' ) default 'test';
+SELECT x;
+END//
+CALL sp1();
+x
+test
+CREATE FUNCTION sp1 (y char) returns char return y;
+SELECT sp1( 'a' );
+sp1( 'a' )
+a
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+USE db1;
+CALL db_storedproc.sp1( );
+x
+test
+SELECT db_storedproc.sp1( 'a' );
+db_storedproc.sp1( 'a' )
+a
+DROP FUNCTION db_storedproc.sp1;
+USE db_storedproc;
+SELECT sp1('a');
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+DROP PROCEDURE sp1;
+CALL sp1();
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+SELECT sp1('a');
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+USE db_storedproc;
+DROP DATABASE db1;
+
+Testcase 4.1.18:
+----------------
+Ensure that it is possible to alter a procedure and
+a function with the same name, in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+set @x=null;
+set @y=null;
+CREATE PROCEDURE sp1()
+BEGIN
+set @x= 1;
+SELECT @x;
+END//
+CREATE FUNCTION sp1 () returns int return 2.2;
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+USE db1;
+alter procedure db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION DEFINER
+sp1 PROCEDURE INVOKER
+alter function db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION INVOKER
+sp1 PROCEDURE INVOKER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+USE db_storedproc;
+alter procedure sp1 sql security definer;
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+alter function sp1 sql security definer;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+name type security_type
+sp1 FUNCTION DEFINER
+sp1 PROCEDURE DEFINER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+2
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+DROP FUNCTION db_storedproc.sp1;
+
+Testcase 4.1.19:
+----------------
+verify altering procedure and function with the same name, does not affect
+properties of a procedure and a function with the same name in the different
+database.
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc_3122;
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+DROP PROCEDURE IF EXISTS db_storedproc_3122.sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+DROP FUNCTION IF EXISTS db_storedproc_3122.sp1;
+Warnings:
+Note 1305 FUNCTION sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+set @x= 1;
+SELECT @x;
+END//
+CREATE FUNCTION db_storedproc_3122.sp1() returns double return 2.2;
+CALL sp1();
+@x
+1
+SELECT db_storedproc_3122.sp1();
+db_storedproc_3122.sp1()
+2.2
+USE db_storedproc_3122;
+CREATE PROCEDURE sp1 ()
+BEGIN
+set @x= 3;
+SELECT @x;
+END//
+CREATE FUNCTION db_storedproc.sp1() returns double return 4.4;
+CALL sp1();
+@x
+3
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+4.4
+alter procedure db_storedproc_3122.sp1 sql security invoker;
+alter function sp1 sql security invoker;
+SELECT db, name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+db name type security_type
+db_storedproc sp1 FUNCTION DEFINER
+db_storedproc sp1 PROCEDURE DEFINER
+db_storedproc_3122 sp1 FUNCTION INVOKER
+db_storedproc_3122 sp1 PROCEDURE INVOKER
+CALL db_storedproc.sp1();
+@x
+1
+SELECT db_storedproc.sp1();
+db_storedproc.sp1()
+4.4
+CALL db_storedproc_3122.sp1();
+@x
+3
+SELECT db_storedproc_3122.sp1();
+db_storedproc_3122.sp1()
+2.2
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.20:
+----------------
+Ensure that it is possible to alter the comment of a procedure
+and a function with the same name, even in the same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+CREATE PROCEDURE sp1 () set @x= 1;
+CREATE FUNCTION sp1 () returns int return 2;
+DROP DATABASE IF EXISTS db_storedproc_3122;
+Warnings:
+Note 1008 Can't drop database 'db_storedproc_3122'; database doesn't exist
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc_3122;
+CREATE PROCEDURE sp1 () set @x= 3;
+CREATE FUNCTION sp1 () returns int return 4;
+alter procedure sp1 sql security invoker comment 'this is a procedure';
+alter function sp1 sql security invoker comment 'this is a function';
+alter procedure sp1 sql security definer;
+alter function sp1 sql security definer;
+show CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+sp1 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
+ COMMENT 'this is a procedure'
+set @x= 3
+show CREATE FUNCTION sp1;
+Function sql_mode Create Function
+sp1 CREATE DEFINER=`root`@`localhost` FUNCTION `sp1`() RETURNS int(11)
+ COMMENT 'this is a function'
+return 4
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.21:
+----------------
+Ensure that it is not possible to create two procedures with same name
+in same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 () set @x=1;
+CREATE PROCEDURE sp1 () set @x=2;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL sp1();
+SELECT @x;
+@x
+1
+USE db1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=3;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL db_storedproc.sp1();
+SELECT @x;
+@x
+1
+DROP PROCEDURE IF EXISTS db_storedproc.sp1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=2;
+ERROR 42000: PROCEDURE sp1 already exists
+CALL db_storedproc.sp1();
+SELECT @x;
+@x
+1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.22:
+----------------
+Ensure that it is not possible to create two functions with same name in the
+same database
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP DATABASE IF EXISTS db1;
+Warnings:
+Note 1008 Can't drop database 'db1'; database doesn't exist
+CREATE DATABASE db1;
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1 () returns int return 1;
+CREATE FUNCTION fn1 () returns int return 2;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT fn1();
+fn1()
+1
+USE db1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 3;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT db_storedproc.fn1();
+db_storedproc.fn1()
+1
+DROP FUNCTION IF EXISTS db_storedproc.fn1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 2;
+ERROR 42000: FUNCTION fn1 already exists
+SELECT db_storedproc.fn1();
+db_storedproc.fn1()
+1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP FUNCTION db_storedproc.fn1;
+
+Testcase 4.1.23:
+----------------
+Ensure that it is possible to create two or more procedures with the same name,
+providing each resides in different databases
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1 () set @x= 1;
+DROP DATABASE IF EXISTS test3124;
+Warnings:
+Note 1008 Can't drop database 'test3124'; database doesn't exist
+CREATE DATABASE test3124;
+USE test3124;
+CREATE PROCEDURE sp1 () set @y= 2;
+CALL sp1();
+SELECT @x, @y;
+@x @y
+NULL 2
+USE db_storedproc;
+CALL sp1();
+SELECT @x, @y;
+@x @y
+1 2
+USE db_storedproc;
+DROP DATABASE test3124;
+DROP PROCEDURE db_storedproc.sp1;
+
+Testcase 4.1.24:
+----------------
+Ensure that it is possible to create two or more functions with the same name,
+providing each resides in different databases.
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP FUNCTION IF EXISTS f1;
+Warnings:
+Note 1305 FUNCTION f1 does not exist
+CREATE FUNCTION f1 () returns int return 1;
+DROP DATABASE IF EXISTS test3125;
+Warnings:
+Note 1008 Can't drop database 'test3125'; database doesn't exist
+CREATE DATABASE test3125;
+USE test3125;
+CREATE FUNCTION f1 () returns int return 2;
+SELECT f1();
+f1()
+2
+USE db_storedproc;
+SELECT f1();
+f1()
+1
+USE db_storedproc;
+DROP DATABASE test3125;
+DROP FUNCTION db_storedproc.f1;
+
+Testcase 4.1.25:
+----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected. (invalid func name)
+--------------------------------------------------------------------------------
+CREATE FUNCTION !_fn1( f1 char(20) ) returns int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 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 '!_fn1( f1 char(20) ) returns int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 1;' at line 1
+CREATE FUNCTION fn1( f1 char(20) ) return int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 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 'return int
+BEGIN
+SELECT * from t1 where f2 = f1;
+return 1;
+END' at line 1
+CREATE FUNCTION fn1() returns int
+return 'a';
+CREATE FUNCTION procedure() returns int
+return 1;
+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 'procedure() returns int
+return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int lang sql return 1;
+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 'sql return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int deterministic( return 1);
+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 'return 1)' at line 1
+CREATE FUNCTION fn1(a char) returns int non deterministic return 1;
+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 'deterministic return 1' at line 1
+CREATE FUNCTION fn1(a char) returns int not deterministic comment 'abc' language sql sql security refiner return 1;
+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 'refiner return 1' at line 1
+DROP FUNCTION IF EXISTS fn1;
+
+Testcase 4.1.1:
+---------------
+Ensure that all clauses that should be supported are supported.
+CREATE PROCEDURE
+--------------------------------------------------------------------------------
+USE db_storedproc;
+set @count = 0;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1(cnt int(20))
+BEGIN
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+END//
+CALL sp1( 10 );
+SELECT @count;
+@count
+10
+DROP PROCEDURE sp1;
+
+Testcase 4.2.2:
+BEGINend
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+END//
+CALL sp1( 10 );
+@count
+10
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+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 'SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+END' at line 2
+CALL sp1( 10 );
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+END
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+BEGIN//
+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 'END
+SELECT count(*) into cnt from t2;
+set @count = cnt;
+SELECT @count;
+BEGIN' at line 2
+CALL sp1( 10 );
+ERROR 42000: PROCEDURE db_storedproc.sp1 does not exist
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+SELECT count(*) into cnt from t2;
+BEGIN
+BEGIN END;
+BEGIN
+END;
+set @count = cnt;
+SELECT @count;
+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 '' at line 10
+
+Testcase 4.2.4:
+---------------
+Ensure that every BEGIN statement is coupled with a terminating END statement.
+(BEGIN with no END)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END//
+
+Testcase ....:
+--------------
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+add:BEGIN
+SELECT @x;
+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 'add:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+all:BEGIN
+SELECT @x;
+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 'all:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+alter:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+analyze:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+and:BEGIN
+SELECT @x;
+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 'and:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+as:BEGIN
+SELECT @x;
+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 'as:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+asc:BEGIN
+SELECT @x;
+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 'asc:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+asensitive:BEGIN
+SELECT @x;
+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 'asensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+before:BEGIN
+SELECT @x;
+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 'before:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+between:BEGIN
+SELECT @x;
+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 'between:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+bigint:BEGIN
+SELECT @x;
+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 'bigint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+binary:BEGIN
+SELECT @x;
+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 'binary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+blob:BEGIN
+SELECT @x;
+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 'blob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+both:BEGIN
+SELECT @x;
+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 'both:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+by:BEGIN
+SELECT @x;
+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 'by:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+CALL:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cascade:BEGIN
+SELECT @x;
+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 'cascade:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+case:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+change:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+char:BEGIN
+SELECT @x;
+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 'char:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+character:BEGIN
+SELECT @x;
+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 'character:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+check:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+collate:BEGIN
+SELECT @x;
+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 'collate:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+column:BEGIN
+SELECT @x;
+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 'column:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+columns:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+condition:BEGIN
+SELECT @x;
+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 'condition:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+connection:BEGIN
+SELECT @x;
+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 'connection:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+constraint:BEGIN
+SELECT @x;
+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 'constraint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+continue:BEGIN
+SELECT @x;
+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 'continue:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+convert:BEGIN
+SELECT @x;
+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 'convert:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+create:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cross:BEGIN
+SELECT @x;
+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 'cross:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_date:BEGIN
+SELECT @x;
+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 'current_date:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_time:BEGIN
+SELECT @x;
+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 'current_time:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_timestamp:BEGIN
+SELECT @x;
+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 'current_timestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+current_user:BEGIN
+SELECT @x;
+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 'current_user:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+cursor:BEGIN
+SELECT @x;
+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 'cursor:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+database:BEGIN
+SELECT @x;
+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 'database:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+databases:BEGIN
+SELECT @x;
+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 'databases:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_hour:BEGIN
+SELECT @x;
+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 'day_hour:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_microsecond:BEGIN
+SELECT @x;
+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 'day_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_minute:BEGIN
+SELECT @x;
+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 'day_minute:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+day_second:BEGIN
+SELECT @x;
+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 'day_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+dec:BEGIN
+SELECT @x;
+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 'dec:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+decimal:BEGIN
+SELECT @x;
+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 'decimal:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+declare:BEGIN
+SELECT @x;
+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 'declare:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+default:BEGIN
+SELECT @x;
+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 'default:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+delayed:BEGIN
+SELECT @x;
+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 'delayed:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+delete:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+desc:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+describe:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+deterministic:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+distinct:BEGIN
+SELECT @x;
+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 'distinct:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+distinctrow:BEGIN
+SELECT @x;
+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 'distinctrow:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+div:BEGIN
+SELECT @x;
+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 'div:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+double:BEGIN
+SELECT @x;
+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 'double:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+drop:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+dual:BEGIN
+SELECT @x;
+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 'dual:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+each:BEGIN
+SELECT @x;
+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 'each:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+else:BEGIN
+SELECT @x;
+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 'else:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+elseif:BEGIN
+SELECT @x;
+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 'elseif:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+enclosed:BEGIN
+SELECT @x;
+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 'enclosed:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+escaped:BEGIN
+SELECT @x;
+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 'escaped:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+exists:BEGIN
+SELECT @x;
+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 'exists:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+exit:BEGIN
+SELECT @x;
+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 'exit:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+explain:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+false:BEGIN
+SELECT @x;
+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 'false:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fetch:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fields:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+float:BEGIN
+SELECT @x;
+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 'float:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+for:BEGIN
+SELECT @x;
+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 'for:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+force:BEGIN
+SELECT @x;
+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 'force:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+foreign:BEGIN
+SELECT @x;
+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 'foreign:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+found:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+from:BEGIN
+SELECT @x;
+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 'from:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+fulltext:BEGIN
+SELECT @x;
+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 'fulltext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+goto:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+grant:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+group:BEGIN
+SELECT @x;
+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 'group:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+having:BEGIN
+SELECT @x;
+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 'having:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+high_priority:BEGIN
+SELECT @x;
+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 'high_priority:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_microsecond:BEGIN
+SELECT @x;
+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 'hour_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_minute:BEGIN
+SELECT @x;
+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 'hour_minute:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+hour_second:BEGIN
+SELECT @x;
+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 'hour_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+if:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+ignore:BEGIN
+SELECT @x;
+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 'ignore:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+in:BEGIN
+SELECT @x;
+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 'in:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+index:BEGIN
+SELECT @x;
+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 'index:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+infile:BEGIN
+SELECT @x;
+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 'infile:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+inner:BEGIN
+SELECT @x;
+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 'inner:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+inout:BEGIN
+SELECT @x;
+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 'inout:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+insensitive:BEGIN
+SELECT @x;
+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 'insensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+insert:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+int:BEGIN
+SELECT @x;
+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 'int:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+integer:BEGIN
+SELECT @x;
+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 'integer:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+interval:BEGIN
+SELECT @x;
+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 'interval:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+into:BEGIN
+SELECT @x;
+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 'into:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+is:BEGIN
+SELECT @x;
+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 'is:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+iterate:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+join:BEGIN
+SELECT @x;
+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 'join:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+key:BEGIN
+SELECT @x;
+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 'key:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+keys:BEGIN
+SELECT @x;
+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 'keys:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+kill:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+leading:BEGIN
+SELECT @x;
+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 'leading:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+leave:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+left:BEGIN
+SELECT @x;
+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 'left:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+like:BEGIN
+SELECT @x;
+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 'like:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+limit:BEGIN
+SELECT @x;
+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 'limit:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+lines:BEGIN
+SELECT @x;
+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 'lines:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+load:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+localtime:BEGIN
+SELECT @x;
+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 'localtime:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+localtimestamp:BEGIN
+SELECT @x;
+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 'localtimestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+lock:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+long:BEGIN
+SELECT @x;
+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 'long:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+longblob:BEGIN
+SELECT @x;
+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 'longblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+longtext:BEGIN
+SELECT @x;
+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 'longtext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+loop:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+low_priority:BEGIN
+SELECT @x;
+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 'low_priority:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+match:BEGIN
+SELECT @x;
+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 'match:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumblob:BEGIN
+SELECT @x;
+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 'mediumblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumint:BEGIN
+SELECT @x;
+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 'mediumint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mediumtext:BEGIN
+SELECT @x;
+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 'mediumtext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+middleint:BEGIN
+SELECT @x;
+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 'middleint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+minute_microsecond:BEGIN
+SELECT @x;
+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 'minute_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+minute_second:BEGIN
+SELECT @x;
+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 'minute_second:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+mod:BEGIN
+SELECT @x;
+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 'mod:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+modifies:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+natural:BEGIN
+SELECT @x;
+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 'natural:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+not:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+no_write_to_binlog:BEGIN
+SELECT @x;
+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 'no_write_to_binlog:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+null:BEGIN
+SELECT @x;
+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 'null:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+numeric:BEGIN
+SELECT @x;
+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 'numeric:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+on:BEGIN
+SELECT @x;
+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 'on:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+optimize:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+option:BEGIN
+SELECT @x;
+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 'option:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+optionally:BEGIN
+SELECT @x;
+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 'optionally:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+or:BEGIN
+SELECT @x;
+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 'or:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+order:BEGIN
+SELECT @x;
+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 'order:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+out:BEGIN
+SELECT @x;
+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 'out:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+outer:BEGIN
+SELECT @x;
+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 'outer:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+outfile:BEGIN
+SELECT @x;
+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 'outfile:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+precision:BEGIN
+SELECT @x;
+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 'precision:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+primary:BEGIN
+SELECT @x;
+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 'primary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+privileges:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+procedure:BEGIN
+SELECT @x;
+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 'procedure:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+purge:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+read:BEGIN
+SELECT @x;
+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 'read:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+reads:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+real:BEGIN
+SELECT @x;
+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 'real:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+references:BEGIN
+SELECT @x;
+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 'references:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+regexp:BEGIN
+SELECT @x;
+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 'regexp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+rename:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+repeat:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+replace:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+require:BEGIN
+SELECT @x;
+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 'require:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+restrict:BEGIN
+SELECT @x;
+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 'restrict:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+return:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+revoke:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+right:BEGIN
+SELECT @x;
+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 'right:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+rlike:BEGIN
+SELECT @x;
+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 'rlike:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+schema:BEGIN
+SELECT @x;
+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 'schema:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+schemas:BEGIN
+SELECT @x;
+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 'schemas:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+second_microsecond:BEGIN
+SELECT @x;
+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 'second_microsecond:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+select:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sensitive:BEGIN
+SELECT @x;
+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 'sensitive:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+separator:BEGIN
+SELECT @x;
+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 'separator:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+set:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+show:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+smallint:BEGIN
+SELECT @x;
+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 'smallint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+soname:BEGIN
+SELECT @x;
+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 'soname:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+spatial:BEGIN
+SELECT @x;
+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 'spatial:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+specific:BEGIN
+SELECT @x;
+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 'specific:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlexception:BEGIN
+SELECT @x;
+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 'sqlexception:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlstate:BEGIN
+SELECT @x;
+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 'sqlstate:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sqlwarning:BEGIN
+SELECT @x;
+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 'sqlwarning:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_big_result:BEGIN
+SELECT @x;
+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 'sql_big_result:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_calc_found_rows:BEGIN
+SELECT @x;
+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 'sql_calc_found_rows:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+sql_small_result:BEGIN
+SELECT @x;
+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 'sql_small_result:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+ssl:BEGIN
+SELECT @x;
+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 'ssl:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+starting:BEGIN
+SELECT @x;
+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 'starting:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+straight_join:BEGIN
+SELECT @x;
+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 'straight_join:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+table:BEGIN
+SELECT @x;
+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 'table:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tables:BEGIN
+SELECT @x;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+terminated:BEGIN
+SELECT @x;
+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 'terminated:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+then:BEGIN
+SELECT @x;
+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 'then:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinyblob:BEGIN
+SELECT @x;
+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 'tinyblob:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinyint:BEGIN
+SELECT @x;
+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 'tinyint:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+tinytext:BEGIN
+SELECT @x;
+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 'tinytext:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+to:BEGIN
+SELECT @x;
+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 'to:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+trailing:BEGIN
+SELECT @x;
+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 'trailing:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+trigger:BEGIN
+SELECT @x;
+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 'trigger:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+true:BEGIN
+SELECT @x;
+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 'true:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+undo:BEGIN
+SELECT @x;
+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 'undo:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+union:BEGIN
+SELECT @x;
+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 'union:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unique:BEGIN
+SELECT @x;
+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 'unique:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unlock:BEGIN
+SELECT @x;
+END//
+ERROR 0A000: UNLOCK is not allowed in stored procedures
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+unsigned:BEGIN
+SELECT @x;
+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 'unsigned:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+update:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+usage:BEGIN
+SELECT @x;
+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 'usage:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+use:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+using:BEGIN
+SELECT @x;
+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 'using:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_date:BEGIN
+SELECT @x;
+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 'utc_date:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_time:BEGIN
+SELECT @x;
+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 'utc_time:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+utc_timestamp:BEGIN
+SELECT @x;
+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 'utc_timestamp:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+values:BEGIN
+SELECT @x;
+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 'values:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varbinary:BEGIN
+SELECT @x;
+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 'varbinary:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varchar:BEGIN
+SELECT @x;
+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 'varchar:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varcharacter:BEGIN
+SELECT @x;
+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 'varcharacter:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+varying:BEGIN
+SELECT @x;
+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 'varying:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+when:BEGIN
+SELECT @x;
+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 'when:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+where:BEGIN
+SELECT @x;
+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 'where:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+while:BEGIN
+SELECT @x;
+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 ':BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+with:BEGIN
+SELECT @x;
+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 'with:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+write:BEGIN
+SELECT @x;
+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 'write:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+xor:BEGIN
+SELECT @x;
+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 'xor:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+year_month:BEGIN
+SELECT @x;
+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 'year_month:BEGIN
+SELECT @x;
+END' at line 2
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+zerofill:BEGIN
+SELECT @x;
+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 'zerofill:BEGIN
+SELECT @x;
+END' at line 2
+
+Testcase 4.2.6:
+---------------
+Ensure that the labels for multiple BEGIN an END work properly
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char;
+declare y char;
+set x = '1';
+set y = '2';
+label1: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END label1;
+set @v1 = x;
+set @v2 = y;
+SELECT @v1, @v2;
+END begin_label//
+CALL sp1();
+@v1 @v2
+1 2
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.7:
+---------------
+Ensure that the labels enclosing each BEGIN/END compound statement must match.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin1_label: BEGIN
+declare x char;
+declare y char;
+SELECT lf1, f1 into x, y from t2 limit 1;
+begin2_label: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin2_changed;
+END begin1_changed//
+ERROR 42000: End-label begin2_changed without match
+
+Testcase 4.2.8:
+---------------
+Ensure that it is possible to put a beginning label at the start of a
+BEGIN/END compound statement without also requiring an ending label
+at the END of the same statement.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.9:
+---------------
+Ensure that it is not possible to put an ending label at the END of
+a BEGIN/END compound statement without also requiring a matching
+beginning label at the start of the same statement
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+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 'begin_label' at line 6
+
+Testcase 4.2.10:
+----------------
+Ensure that every beginning label must END with a colon(:)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+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 'BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+E' at line 2
+
+Testcase 4.2.11:
+----------------
+Ensure that every beginning label with the same scope must be unique. (same label names)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_samelabel;
+begin_samelabel: BEGIN
+declare x char;
+declare y char;
+SELECT f1, f2 into x, y from t2 limit 1;
+END begin_samelabel;
+END begin_samelabel//
+ERROR 42000: Redefining label begin_samelabel
+
+Testcase 4.2.12:
+----------------
+Ensure that the variables, cursors, conditions, and handlers declared for
+a stored procedure (with the declare statement) may only be properly defined
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: DECIMAL(255,255) is not rejected
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x char default 'a';
+declare y integer default 1;
+declare z float default 1.1;
+declare a enum("value1", "value2") default 'value1';
+declare b decimal(255, 255) default 1.2e+12;
+declare c mediumtext default 'mediumtext';
+declare d datetime default '2005-02-02 12:12:12';
+declare e char default 'b';
+declare cur1 cursor for SELECT f1 from db_storedproc.t2;
+declare continue handler for sqlstate '02000' set @x2 = 1;
+open cur1;
+fetch cur1 into e;
+SELECT x, y, z, a, b, c, d, e;
+close cur1;
+END//
+ERROR 42000: Too big scale 255 specified for column ''. Maximum is 30.
+CALL sp6();
+ERROR 42000: PROCEDURE db_storedproc.sp6 does not exist
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 char default '0';
+SELECT x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567;
+END//
+CALL sp6();
+x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
+0
+DROP PROCEDURE sp6;
+
+Testcase 4.2.13:
+----------------
+Ensure that the variables declared for a stored procedure (with the declare
+statement) may only be defined in the correct order.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x default '0' char;
+SELECT x;
+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 'default '0' char;
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x char, integer default '0';
+SELECT x;
+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 'char, integer default '0';
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x1, x2 char, integer default '0', 1;
+SELECT x;
+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 'char, integer default '0', 1;
+SELECT x;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 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 'char x;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x, y1 integer default 0;
+declare char y;
+SELECT f1, f2 into x, y from t2 limit 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 'char x, y1 integer default 0;
+declare char y;
+SELECT f1, f2 into x, y from t2 li' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare x default 'a' char;
+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 'default 'a' char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition notable for sqlstate '42s22';
+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 'condition notable for sqlstate '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for notable sqlstate '42s22';
+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 'condition for notable sqlstate '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for sqlstate notable '42s22';
+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 'condition for sqlstate notable '42s22';
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare condition for sqlstate '42s22' notable;
+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 'condition for sqlstate '42s22' notable;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor cur1 for SELECT f1 from db_storedproc.t2;
+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 'cursor cur1 for SELECT f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor for cur1 SELECT f1 from db_storedproc.t2;
+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 'cursor for cur1 SELECT f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor for SELECT cur1 f1 from db_storedproc.t2;
+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 'cursor for SELECT cur1 f1 from db_storedproc.t2;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler continue for sqlstate '02000' set @x2 = 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 'continue for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler exit for sqlstate '02000' set @x2 = 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 'exit for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare handler undo for sqlstate '02000' set @x2 = 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 'undo for sqlstate '02000' set @x2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char x;
+SELECT f1 into x from tb1 limit 9998, 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 'char x;
+SELECT f1 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char binary x;
+SELECT f2 into x from tb1 limit 9998, 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 'char binary x;
+SELECT f2 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char ascii x;
+SELECT f3 into x from tb1 limit 9998, 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 'char ascii x;
+SELECT f3 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext x;
+SELECT f4 into x from tb1 limit 9998, 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 'tinytext x;
+SELECT f4 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x;
+SELECT f5 text into x from tb1 limit 9998, 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 ';
+SELECT f5 text into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext x;
+SELECT f6 into x from tb1 limit 9998, 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 'mediumtext x;
+SELECT f6 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext x;
+SELECT f7 into x from tb1 limit 9998, 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 'longtext x;
+SELECT f7 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob x;
+SELECT f8 into x from tb1 limit 9998, 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 'tinyblob x;
+SELECT f8 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob x;
+SELECT f9 into x from tb1 limit 9998, 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 'blob x;
+SELECT f9 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob x;
+SELECT f10 into x from tb1 limit 9998, 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 'mediumblob x;
+SELECT f10 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob x;
+SELECT f11 into x from tb1 limit 9998, 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 'longblob x;
+SELECT f11 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary x;
+SELECT f12 into x from tb1 limit 9998, 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 'binary x;
+SELECT f12 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint x;
+SELECT f13 into x from tb1 limit 9998, 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 'tinyint x;
+SELECT f13 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint unsigned x;
+SELECT f14 into x from tb1 limit 9998, 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 'tinyint unsigned x;
+SELECT f14 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint zerofill x;
+SELECT f15 into x from tb1 limit 9998, 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 'tinyint zerofill x;
+SELECT f15 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint unsigned zerofill x;
+SELECT f16 into x from tb1 limit 9998, 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 'tinyint unsigned zerofill x;
+SELECT f16 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint x;
+SELECT f17 into x from tb1 limit 9998, 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 'smallint x;
+SELECT f17 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint unsigned x;
+SELECT f18 into x from tb1 limit 9998, 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 'smallint unsigned x;
+SELECT f18 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint zerofill x;
+SELECT f19 into x from tb1 limit 9998, 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 'smallint zerofill x;
+SELECT f19 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint unsigned zerofill x;
+SELECT f20 into x from tb1 limit 9998, 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 'smallint unsigned zerofill x;
+SELECT f20 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint x;
+SELECT f21 into x from tb1 limit 9998, 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 'mediumint x;
+SELECT f21 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint unsigned x;
+SELECT f22 into x from tb1 limit 9998, 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 'mediumint unsigned x;
+SELECT f22 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint zerofill x;
+SELECT f23 into x from tb1 limit 9998, 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 'mediumint zerofill x;
+SELECT f23 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint unsigned zerofill x;
+SELECT f24 into x from tb1 limit 9998, 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 'mediumint unsigned zerofill x;
+SELECT f24 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int x;
+SELECT f25 into x from tb1 limit 9998, 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 'int x;
+SELECT f25 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int unsigned x;
+SELECT f26 into x from tb1 limit 9998, 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 'int unsigned x;
+SELECT f26 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int zerofill x;
+SELECT f27 into x from tb1 limit 9998, 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 'int zerofill x;
+SELECT f27 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int unsigned zerofill x;
+SELECT f28 into x from tb1 limit 9998, 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 'int unsigned zerofill x;
+SELECT f28 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint x;
+SELECT f29 into x from tb1 limit 9998, 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 'bigint x;
+SELECT f29 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint unsigned x;
+elect f30 into x from tb1 limit 9998, 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 'bigint unsigned x;
+elect f30 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint zerofill x;
+SELECT f31 into x from tb1 limit 9998, 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 'bigint zerofill x;
+SELECT f31 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint unsigned zerofill x;
+SELECT f32 into x from tb1 limit 9998, 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 'bigint unsigned zerofill x;
+SELECT f32 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal x;
+SELECT f33 into x from tb1 limit 9998, 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 'decimal x;
+SELECT f33 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal unsigned x;
+SELECT f34 into x from tb1 limit 9998, 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 'decimal unsigned x;
+SELECT f34 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal zerofill x;
+SELECT f35 into x from tb1 limit 9998, 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 'decimal zerofill x;
+SELECT f35 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal unsigned zerofill not null x;
+SELECT f36 into x from tb1 limit 9998, 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 'decimal unsigned zerofill not null x;
+SELECT f36 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) not null x;
+SELECT f37 into x from tb1 limit 9998, 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 'decimal (0) not null x;
+SELECT f37 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) not null x;
+SELECT f38 into x from tb1 limit 9998, 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 'decimal (64) not null x;
+SELECT f38 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) unsigned not null x;
+SELECT f39 into x from tb1 limit 9998, 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 'decimal (0) unsigned not null x;
+SELECT f39 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) unsigned not null x;
+SELECT f40 into x from tb1 limit 9998, 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 'decimal (64) unsigned not null x;
+SELECT f40 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) zerofill not null x;
+SELECT f41 into x from tb1 limit 9998, 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 'decimal (0) zerofill not null x;
+SELECT f41 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) zerofill not null x;
+SELECT f42 into x from tb1 limit 9998, 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 'decimal (64) zerofill not null x;
+SELECT f42 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (0) unsigned zerofill not null x;
+SELECT f43 into x from tb1 limit 9998, 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 'decimal (0) unsigned zerofill not null x;
+SELECT f43 into x from tb1 limit 9998' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (64) unsigned zerofill not null x;
+SELECT f44 into x from tb1 limit 9998, 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 'decimal (64) unsigned zerofill not null x;
+SELECT f44 into x from tb1 limit 999' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) not null x;
+SELECT f45 into x from tb1 limit 9998, 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 'decimal (00) not null x;
+SELECT f45 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) not null x;
+SELECT f46 into x from tb1 limit 9998, 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 'decimal (63, 30) not null x;
+SELECT f46 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) unsigned not null x;
+SELECT f47 into x from tb1 limit 9998, 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 'decimal (00) unsigned not null x;
+SELECT f47 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) unsigned not null x;
+SELECT f48 into x from tb1 limit 9998, 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 'decimal (63, 30) unsigned not null x;
+SELECT f48 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) zerofill not null x;
+SELECT f49 into x from tb1 limit 9998, 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 'decimal (00) zerofill not null x;
+SELECT f49 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) zerofill not null x;
+SELECT f50 into x from tb1 limit 9998, 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 'decimal (63, 30) zerofill not null x;
+SELECT f50 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (00) unsigned zerofill not null x;
+SELECT f51 into x from tb1 limit 9998, 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 'decimal (00) unsigned zerofill not null x;
+SELECT f51 into x from tb1 limit 999' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal (63, 30) unsigned zerofill not null x;
+SELECT f52 into x from tb1 limit 9998, 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 'decimal (63, 30) unsigned zerofill not null x;
+SELECT f52 into x from tb1 limit' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric not null x;
+SELECT f53 into x from tb1 limit 9998, 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 'numeric not null x;
+SELECT f53 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric unsigned not null x;
+SELECT f54 into x from tb1 limit 9998, 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 'numeric unsigned not null x;
+SELECT f54 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric zerofill not null x;
+SELECT f55 into x from tb1 limit 9998, 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 'numeric zerofill not null x;
+SELECT f55 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric unsigned zerofill not null x;
+SELECT f56 into x from tb1 limit 9998, 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 'numeric unsigned zerofill not null x;
+SELECT f56 into x from tb1 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) not null x;
+SELECT f57 into x from tb1 limit 9998, 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 'numeric (0) not null x;
+SELECT f57 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) not nul x;
+SELECT f58 into x from tb1 limit 9998, 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 'numeric (64) not nul x;
+SELECT f58 into x from tb1 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) unsigned x;
+SELECT f59 into x from tb2 limit 9998, 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 'numeric (0) unsigned x;
+SELECT f59 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) unsigned x;
+SELECT f60 into x from tb2 limit 9998, 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 'numeric (64) unsigned x;
+SELECT f60 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) zerofill x;
+SELECT f61 into x from tb2 limit 9998, 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 'numeric (0) zerofill x;
+SELECT f61 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) zerofill x;
+SELECT f62 into x from tb2 limit 9998, 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 'numeric (64) zerofill x;
+SELECT f62 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (0) unsigned zerofill x;
+SELECT f63 into x from tb2 limit 9998, 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 'numeric (0) unsigned zerofill x;
+SELECT f63 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (64) unsigned zerofill x;
+SELECT f64 into x from tb2 limit 9998, 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 'numeric (64) unsigned zerofill x;
+SELECT f64 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) x;
+SELECT f65 into x from tb2 limit 9998, 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 'numeric (00) x;
+SELECT f65 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) x;
+SELECT f66 into x from tb2 limit 9998, 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 'numeric (63, 30) x;
+SELECT f66 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) unsigned x;
+SELECT f67 into x from tb2 limit 9998, 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 'numeric (00) unsigned x;
+SELECT f67 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) unsigned x;
+SELECT f68 into x from tb2 limit 9998, 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 'numeric (63, 30) unsigned x;
+SELECT f68 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) zerofill x;
+SELECT f69 into x from tb2 limit 9998, 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 'numeric (00) zerofill x;
+SELECT f69 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) zerofill x;
+SELECT f70 into x from tb2 limit 9998, 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 'numeric (63, 30) zerofill x;
+SELECT f70 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (00) unsigned zerofill x;
+SELECT f71 into x from tb2 limit 9998, 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 'numeric (00) unsigned zerofill x;
+SELECT f71 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric (63, 30) unsigned zerofill x;
+SELECT f72 into x from tb2 limit 9998, 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 'numeric (63, 30) unsigned zerofill x;
+SELECT f72 into x from tb2 limit 9998, 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real x;
+SELECT f73 into x from tb2 limit 9998, 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 'real x;
+SELECT f73 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real unsigned x;
+SELECT f74 into x from tb2 limit 9998, 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 'real unsigned x;
+SELECT f74 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real zerofill x;
+SELECT f75 into x from tb2 limit 9998, 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 'real zerofill x;
+SELECT f75 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real unsigned zerofill x;
+SELECT f76 into x from tb2 limit 9998, 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 'real unsigned zerofill x;
+SELECT f76 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double x;
+SELECT f77 into x from tb2 limit 9998, 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 'double x;
+SELECT f77 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double unsigned x;
+SELECT f78 into x from tb2 limit 9998, 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 'double unsigned x;
+SELECT f78 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double zerofill x;
+SELECT f79 into x from tb2 limit 9998, 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 'double zerofill x;
+SELECT f79 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double unsigned zerofill x;
+SELECT f80 into x from tb2 limit 9998, 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 'double unsigned zerofill x;
+SELECT f80 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float not null x;
+SELECT f81 into x from tb2 limit 9998, 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 'float not null x;
+SELECT f81 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float unsigned not null x;
+SELECT f82 into x from tb2 limit 9998, 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 'float unsigned not null x;
+SELECT f82 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float zerofill not null x;
+SELECT f83 into x from tb2 limit 9998, 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 'float zerofill not null x;
+SELECT f83 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float unsigned zerofill not null x;
+SELECT f84 into x from tb2 limit 9998, 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 'float unsigned zerofill not null x;
+SELECT f84 into x from tb2 limit 9998, 1;
+E' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) not null x;
+SELECT f85 into x from tb2 limit 9998, 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 'float(0) not null x;
+SELECT f85 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) not null x;
+SELECT f86 into x from tb2 limit 9998, 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 'float(23) not null x;
+SELECT f86 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) unsigned not null x;
+SELECT f87 into x from tb2 limit 9998, 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 'float(0) unsigned not null x;
+SELECT f87 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) unsigned not null x;
+SELECT f88 into x from tb2 limit 9998, 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 'float(23) unsigned not null x;
+SELECT f88 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) zerofill not null x;
+SELECT f89 into x from tb2 limit 9998, 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 'float(0) zerofill not null x;
+SELECT f89 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) zerofill not null x;
+SELECT f90 into x from tb2 limit 9998, 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 'float(23) zerofill not null x;
+SELECT f90 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(0) unsigned zerofill not null x;
+SELECT f91 into x from tb2 limit 9998, 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 'float(0) unsigned zerofill not null x;
+SELECT f91 into x from tb2 limit 9998, 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(23) unsigned zerofill not null x;
+SELECT f92 into x from tb2 limit 9998, 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 'float(23) unsigned zerofill not null x;
+SELECT f92 into x from tb2 limit 9998, ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) not null x;
+SELECT f93 into x from tb2 limit 9998, 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 'float(24) not null x;
+SELECT f93 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) not null x;
+SELECT f94 into x from tb2 limit 9998, 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 'float(53) not null x;
+SELECT f94 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) unsigned not null x;
+SELECT f95 into x from tb2 limit 9998, 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 'float(24) unsigned not null x;
+SELECT f95 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) unsigned not null x;
+SELECT f96 into x from tb2 limit 9998, 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 'float(53) unsigned not null x;
+SELECT f96 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) zerofill not null x;
+SELECT f97 into x from tb2 limit 9998, 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 'float(24) zerofill not null x;
+SELECT f97 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) zerofill not null x;
+SELECT f98 into x from tb2 limit 9998, 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 'float(53) zerofill not null x;
+SELECT f98 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(24) unsigned zerofill not null x;
+SELECT f99 into x from tb2 limit 9998, 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 'float(24) unsigned zerofill not null x;
+SELECT f99 into x from tb2 limit 9998, ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float(53) unsigned zerofill not null x;
+SELECT f100 into x from tb2 limit 9998, 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 'float(53) unsigned zerofill not null x;
+SELECT f100 into x from tb2 limit 9998,' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare date not null x;
+SELECT f101 into x from tb2 limit 9998, 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 'not null x;
+SELECT f101 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare time not null x;
+SELECT f102 into x from tb2 limit 9998, 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 'not null x;
+SELECT f102 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare datetime not null x;
+SELECT f103 into x from tb2 limit 9998, 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 'not null x;
+SELECT f103 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare timestamp not null x;
+SELECT f104 into x from tb2 limit 9998, 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 'not null x;
+SELECT f104 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year not null x;
+SELECT f105 into x from tb2 limit 9998, 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 'not null x;
+SELECT f105 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year(3) not null x;
+SELECT f106 into x from tb2 limit 9998, 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 '(3) not null x;
+SELECT f106 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year(4) not null x;
+SELECT f107 into x from tb2 limit 9998, 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 '(4) not null x;
+SELECT f107 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enum("1enum", "2enum") not null x;
+SELECT f108 into x from tb2 limit 9998, 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 '("1enum", "2enum") not null x;
+SELECT f108 into x from tb2 limit 9998, 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set("1set", "2set") not nul x;
+SELECT f109 into x from tb2 limit 9998, 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 'set("1set", "2set") not nul x;
+SELECT f109 into x from tb2 limit 9998, 1;
+END' at line 3
+
+Testcase 4.2.14:
+----------------
+Ensure that the handlers declared for a stored procedure (with the declare
+statement) may only be defined in the correct order
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor1 cursor for SELECT f1 from tb1;
+declare x char;
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare cursor1 cursor for SELECT f1 from tb1;
+declare sqlcondition condition for sqlstate '02000';
+END//
+ERROR 42000: Variable or condition declaration after cursor or handler declaration
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare sqlcondition condition for sqlstate '02000';
+declare continue handler for sqlcondition set @x=1;
+declare cursor1 cursor for SELECT f1 from tb1;
+END//
+ERROR 42000: Cursor declaration after handler declaration
+
+Testcase 4.2.15:
+----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z char default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z char ascii default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinytext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z text default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumtext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z longtext default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z blob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z longblob default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z binary default null;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+NULL NULL NULL
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint default -126;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-126 -126 -126
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint unsigned default 253;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+253 253 253
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+000 000 000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z tinyint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+001 001 001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint default -32768;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-32768 -32768 -32768
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint unsigned default 65535;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+65535 65535 65535
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000 00000 00000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z smallint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00001 00001 00001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint default -8388608;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-8388608 -8388608 -8388608
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint unsigned default 16777215;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+16777215 16777215 16777215
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000 00000000 00000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z mediumint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001 00000001 00000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int default -2147483648;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-2147483648 -2147483648 -2147483648
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int unsigned default 4294967295;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+4294967295 4294967295 4294967295
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z int unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000001 0000000001 0000000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint default -9223372036854775808;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-9223372036854775808 -9223372036854775808 -9223372036854775808
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint unsigned default 18446744073709551615;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+18446744073709551615 18446744073709551615 18446744073709551615
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint zerofill default -1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000000000000000 00000000000000000000 00000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z bigint unsigned zerofill default 1;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000000000000000001 00000000000000000001 00000000000000000001
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal default -34028234660123456789012345678901234567;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+-9999999999 -9999999999 -9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal zerofill default -34028234660123456789012345678901234567;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+Warning 1264 Out of range value adjusted for column 'y' at row 1
+Warning 1264 Out of range value adjusted for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z decimal unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0 0 0
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z numeric unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+CALL sp1();
+x y z
+0000000000 0000000000 0000000000
+Warnings:
+Note 1265 Data truncated for column 'x' at row 1
+Note 1265 Data truncated for column 'y' at row 1
+Note 1265 Data truncated for column 'z' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.175494351e-38 1.175494351e-38 1.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.175494351e-38 1.175494351e-38 1.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001.175494351e-38 00000001.175494351e-38 00000001.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z real unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+00000001.175494351e-38 00000001.175494351e-38 00000001.175494351e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.17549e-38 1.17549e-38 1.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float unsigned default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+1.17549e-38 1.17549e-38 1.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+01.17549e-38 01.17549e-38 01.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z float unsigned zerofill default 1.175494351e-38;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+01.17549e-38 01.17549e-38 01.17549e-38
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z date default '2005-02-02';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 2005-02-02 2005-02-02
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z time default '12:20:12';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+12:20:12 12:20:12 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z datetime default '2005-02-02 12:20:12';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 12:20:12 2005-02-02 12:20:12 2005-02-02 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z timestamp default '20050202122012';
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005-02-02 12:20:12 2005-02-02 12:20:12 2005-02-02 12:20:12
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year(3) default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z year(4) default 2005;
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2005 2005 2005
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z enum("1enum", "2enum") default "2enum";
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2enum 2enum 2enum
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x, y, z set("1set", "2set") default "2set";
+SELECT x, y, z;
+END//
+CALL sp1();
+x y z
+2set 2set 2set
+DROP PROCEDURE sp1;
+
+Testcase 4.2.16:
+----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( )
+BEGIN
+declare a, b char default '2';
+declare c, d float default 1.3;
+declare e, f text default 'text';
+declare g, h enum("value1", "value2" ) default 'value1';
+declare i, j datetime default '2005-02-02 12:12:12';
+declare k, l blob default 'blob';
+SELECT a, b, c, d, e, f, g, h, k, l;
+END//
+CALL sp6();
+a b c d e f g h k l
+2 2 1.3 1.3 text text value1 value1 blob blob
+DROP PROCEDURE sp6;
+
+Testcase 4.2.17:
+----------------
+Ensure that the invalid variable declarations are rejected, with an appropriate
+error message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare @x char;
+SELECT f2 into x from t2 limit 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 '@x char;
+SELECT f2 into x from t2 limit 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare add char;
+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 'add char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare all char;
+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 'all char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare alter char;
+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 'alter char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare analyze char;
+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 'analyze char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare and char;
+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 'and char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare as char;
+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 'as char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare asc char;
+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 'asc char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare asensitive char;
+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 'asensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare before char;
+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 'before char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare between char;
+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 'between char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare bigint char;
+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 'bigint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare binary char;
+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 'binary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare blob char;
+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 'blob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare both char;
+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 'both char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare by char;
+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 'by char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare CALL char;
+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 'CALL char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cascade char;
+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 'cascade char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare case char;
+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 'case char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare change char;
+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 'change char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare char char;
+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 'char char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare character char;
+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 'character char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare check char;
+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 'check char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare collate char;
+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 'collate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare column char;
+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 'column char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare columns char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare condition char;
+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 'condition char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare connection char;
+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 'connection char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare constraint char;
+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 'constraint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue char;
+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 'char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare convert char;
+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 'convert char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare create char;
+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 'create char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cross char;
+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 'cross char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_date char;
+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 'current_date char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_time char;
+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 'current_time char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_timestamp char;
+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 'current_timestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare current_user char;
+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 'current_user char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cursor char;
+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 'cursor char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare database char;
+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 'database char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare databases char;
+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 'databases char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_hour char;
+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 'day_hour char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_microsecond char;
+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 'day_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_minute char;
+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 'day_minute char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare day_second char;
+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 'day_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare dec char;
+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 'dec char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare decimal char;
+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 'decimal char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare declare char;
+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 'declare char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare default char;
+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 'default char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare delayed char;
+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 'delayed char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare delete char;
+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 'delete char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare desc char;
+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 'desc char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare describe char;
+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 'describe char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare deterministic char;
+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 'deterministic char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare distinct char;
+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 'distinct char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare distinctrow char;
+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 'distinctrow char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare div char;
+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 'div char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare double char;
+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 'double char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare drop char;
+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 'drop char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare dual char;
+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 'dual char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare each char;
+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 'each char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare else char;
+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 'else char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare elseif char;
+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 'elseif char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare enclosed char;
+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 'enclosed char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare escaped char;
+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 'escaped char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare exists char;
+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 'exists char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare exit char;
+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 'char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare explain char;
+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 'explain char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare false char;
+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 'false char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fetch char;
+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 'fetch char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fields char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare float char;
+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 'float char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare for char;
+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 'for char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare force char;
+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 'force char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare foreign char;
+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 'foreign char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare found char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare from char;
+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 'from char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare fulltext char;
+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 'fulltext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare goto char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare grant char;
+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 'grant char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare group char;
+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 'group char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare having char;
+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 'having char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare high_priority char;
+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 'high_priority char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_microsecond char;
+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 'hour_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_minute char;
+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 'hour_minute char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare hour_second char;
+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 'hour_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare if char;
+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 'if char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare ignore char;
+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 'ignore char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare in char;
+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 'in char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare index char;
+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 'index char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare infile char;
+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 'infile char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare inner char;
+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 'inner char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare inout char;
+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 'inout char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare insensitive char;
+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 'insensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare insert char;
+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 'insert char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare int char;
+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 'int char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare integer char;
+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 'integer char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare interval char;
+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 'interval char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare into char;
+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 'into char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare is char;
+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 'is char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare iterate char;
+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 'iterate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare join char;
+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 'join char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare key char;
+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 'key char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare keys char;
+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 'keys char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare kill char;
+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 'kill char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare leading char;
+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 'leading char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare leave char;
+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 'leave char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare left char;
+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 'left char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare like char;
+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 'like char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare limit char;
+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 'limit char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare lines char;
+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 'lines char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare load char;
+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 'load char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare localtime char;
+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 'localtime char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare localtimestamp char;
+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 'localtimestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare lock char;
+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 'lock char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare long char;
+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 'long char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare longblob char;
+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 'longblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare longtext char;
+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 'longtext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare loop char;
+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 'loop char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare low_priority char;
+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 'low_priority char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare match char;
+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 'match char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumblob char;
+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 'mediumblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumint char;
+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 'mediumint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mediumtext char;
+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 'mediumtext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare middleint char;
+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 'middleint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare minute_microsecond char;
+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 'minute_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare minute_second char;
+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 'minute_second char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare mod char;
+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 'mod char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare modifies char;
+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 'modifies char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare natural char;
+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 'natural char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare not char;
+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 'not char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare no_write_to_binlog char;
+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 'no_write_to_binlog char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare null char;
+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 'null char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare numeric char;
+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 'numeric char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare on char;
+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 'on char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare optimize char;
+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 'optimize char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare option char;
+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 'option char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare optionally char;
+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 'optionally char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare or char;
+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 'or char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare order char;
+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 'order char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare out char;
+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 'out char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare outer char;
+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 'outer char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare outfile char;
+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 'outfile char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare precision char;
+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 'precision char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare primary char;
+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 'primary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare privileges char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare procedure char;
+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 'procedure char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare purge char;
+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 'purge char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare read char;
+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 'read char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare reads char;
+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 'reads char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare real char;
+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 'real char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare references char;
+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 'references char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare regexp char;
+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 'regexp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare rename char;
+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 'rename char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare repeat char;
+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 'repeat char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare replace char;
+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 'replace char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare require char;
+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 'require char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare restrict char;
+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 'restrict char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare return char;
+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 'return char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare revoke char;
+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 'revoke char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare right char;
+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 'right char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare rlike char;
+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 'rlike char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare schema char;
+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 'schema char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare schemas char;
+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 'schemas char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare second_microsecond char;
+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 'second_microsecond char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare SELECT char;
+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 'SELECT char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sensitive char;
+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 'sensitive char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare separator char;
+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 'separator char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare set char;
+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 'set char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare show char;
+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 'show char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare smallint char;
+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 'smallint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare soname char;
+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 'soname char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare spatial char;
+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 'spatial char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare specific char;
+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 'specific char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql char;
+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 'sql char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlexception char;
+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 'sqlexception char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlstate char;
+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 'sqlstate char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sqlwarning char;
+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 'sqlwarning char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_big_result char;
+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 'sql_big_result char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_calc_found_rows char;
+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 'sql_calc_found_rows char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare sql_small_result char;
+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 'sql_small_result char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare ssl char;
+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 'ssl char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare starting char;
+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 'starting char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare straight_join char;
+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 'straight_join char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare table char;
+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 'table char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tables char;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare terminated char;
+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 'terminated char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare then char;
+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 'then char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinyblob char;
+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 'tinyblob char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinyint char;
+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 'tinyint char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare tinytext char;
+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 'tinytext char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare to char;
+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 'to char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare trailing char;
+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 'trailing char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare trigger char;
+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 'trigger char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare true char;
+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 'true char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare undo char;
+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 'undo char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare union char;
+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 'union char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unique char;
+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 'unique char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unlock char;
+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 'unlock char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare unsigned char;
+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 'unsigned char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare update char;
+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 'update char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare usage char;
+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 'usage char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare USE char;
+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 'USE char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare using char;
+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 'using char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_date char;
+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 'utc_date char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_time char;
+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 'utc_time char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare utc_timestamp char;
+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 'utc_timestamp char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare values char;
+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 'values char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varbinary char;
+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 'varbinary char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varchar char;
+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 'varchar char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varcharacter char;
+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 'varcharacter char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare varying char;
+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 'varying char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare when char;
+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 'when char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare where char;
+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 'where char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare while char;
+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 char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare with char;
+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 'with char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare write char;
+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 'write char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xor char;
+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 'xor char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare year_month char;
+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 'year_month char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare zerofill char;
+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 'zerofill char;
+END' at line 3
+
+Testcase :
+----------
+Ensure that every possible type of condition may be declared for a stored procedure
+( covered in more detail in handlers section.)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'HY000';
+declare cond2 condition for sqlstate '23000';
+declare cond3 condition for sqlstate 'HY001';
+declare cond4 condition for sqlstate '08004';
+declare cond5 condition for sqlstate '08S01';
+declare cond6 condition for sqlstate '42000';
+declare cond7 condition for sqlstate '28000';
+declare cond8 condition for sqlstate '3D000';
+declare cond9 condition for sqlstate '42S01';
+declare cond10 condition for sqlstate '42S02';
+declare cond11 condition for sqlstate '42S22';
+declare cond12 condition for sqlstate '21S01';
+declare cond13 condition for sqlstate '42S21';
+declare cond14 condition for sqlstate '42S12';
+declare cond15 condition for sqlstate '22004';
+declare cond16 condition for sqlstate '25000';
+declare cond17 condition for sqlstate '40001';
+declare cond18 condition for sqlstate '21000';
+declare cond19 condition for sqlstate '01000';
+declare cond20 condition for sqlstate '22003';
+declare cond21 condition for sqlstate '22007';
+declare cond22 condition for sqlstate '0A000';
+declare cond23 condition for sqlstate '70100';
+declare cond24 condition for sqlstate '2F005';
+declare cond25 condition for sqlstate '24000';
+declare cond26 condition for sqlstate '02000';
+declare continue handler for cond2 set @x2 = 1;
+declare continue handler for cond1 set @x2 = 1;
+declare continue handler for cond3 set @x2 = 1;
+declare continue handler for cond4 set @x2 = 1;
+declare continue handler for cond5 set @x2 = 1;
+declare continue handler for cond7 set @x2 = 1;
+declare continue handler for cond6 set @x2 = 1;
+declare continue handler for cond8 set @x2 = 1;
+declare continue handler for cond9 set @x2 = 1;
+declare continue handler for cond10 set @x2 = 1;
+declare continue handler for cond11 set @x2 = 1;
+declare continue handler for cond12 set @x2 = 1;
+declare continue handler for cond13 set @x2 = 1;
+declare continue handler for cond14 set @x2 = 1;
+declare continue handler for cond15 set @x2 = 1;
+declare continue handler for cond16 set @x2 = 1;
+declare continue handler for cond17 set @x2 = 1;
+declare continue handler for cond18 set @x2 = 1;
+declare continue handler for cond19 set @x2 = 1;
+declare continue handler for cond20 set @x2 = 1;
+declare continue handler for cond21 set @x2 = 1;
+declare continue handler for cond22 set @x2 = 1;
+declare continue handler for cond23 set @x2 = 1;
+declare continue handler for cond24 set @x2 = 1;
+declare continue handler for cond25 set @x2 = 1;
+declare continue handler for cond26 set @x2 = 1;
+set @x = 1;
+insert into t2 values (1);
+set @x = 2;
+insert into t2 values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare @x char;
+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 '@x char;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x char1;
+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 'char1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare add condition for sqlstate '02000';
+declare exit handler for add set @var2 = 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 'add condition for sqlstate '02000';
+declare exit handler for add set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare all condition for sqlstate '02000';
+declare exit handler for all set @var2 = 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 'all condition for sqlstate '02000';
+declare exit handler for all set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare alter condition for sqlstate '02000';
+declare exit handler for alter set @var2 = 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 'alter condition for sqlstate '02000';
+declare exit handler for alter set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare analyze condition for sqlstate '02000';
+declare exit handler for analyze set @var2 = 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 'analyze condition for sqlstate '02000';
+declare exit handler for analyze set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare and condition for sqlstate '02000';
+declare exit handler for and set @var2 = 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 'and condition for sqlstate '02000';
+declare exit handler for and set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare as condition for sqlstate '02000';
+declare exit handler for as set @var2 = 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 'as condition for sqlstate '02000';
+declare exit handler for as set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asc condition for sqlstate '02000';
+declare exit handler for asc set @var2 = 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 'asc condition for sqlstate '02000';
+declare exit handler for asc set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asensitive condition for sqlstate '02000';
+declare exit handler for asensitive set @var2 = 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 'asensitive condition for sqlstate '02000';
+declare exit handler for asensitive s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare before condition for sqlstate '02000';
+declare exit handler for before set @var2 = 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 'before condition for sqlstate '02000';
+declare exit handler for before set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare between condition for sqlstate '02000';
+declare exit handler for between set @var2 = 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 'between condition for sqlstate '02000';
+declare exit handler for between set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint condition for sqlstate '02000';
+declare exit handler for bigint set @var2 = 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 'bigint condition for sqlstate '02000';
+declare exit handler for bigint set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary condition for sqlstate '02000';
+declare exit handler for binary set @var2 = 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 'binary condition for sqlstate '02000';
+declare exit handler for binary set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob condition for sqlstate '02000';
+declare exit handler for blob set @var2 = 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 'blob condition for sqlstate '02000';
+declare exit handler for blob set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare both condition for sqlstate '02000';
+declare exit handler for both set @var2 = 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 'both condition for sqlstate '02000';
+declare exit handler for both set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare by condition for sqlstate '02000';
+declare exit handler for by set @var2 = 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 'by condition for sqlstate '02000';
+declare exit handler for by set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare CALL condition for sqlstate '02000';
+declare exit handler for CALL set @var2 = 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 'CALL condition for sqlstate '02000';
+declare exit handler for CALL set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cascade condition for sqlstate '02000';
+declare exit handler for cascade set @var2 = 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 'cascade condition for sqlstate '02000';
+declare exit handler for cascade set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare case condition for sqlstate '02000';
+declare exit handler for case set @var2 = 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 'case condition for sqlstate '02000';
+declare exit handler for case set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare change condition for sqlstate '02000';
+declare exit handler for change set @var2 = 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 'change condition for sqlstate '02000';
+declare exit handler for change set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char condition for sqlstate '02000';
+declare exit handler for char set @var2 = 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 'char condition for sqlstate '02000';
+declare exit handler for char set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare character condition for sqlstate '02000';
+declare exit handler for character set @var2 = 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 'character condition for sqlstate '02000';
+declare exit handler for character set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare check condition for sqlstate '02000';
+declare exit handler for check set @var2 = 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 'check condition for sqlstate '02000';
+declare exit handler for check set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare collate condition for sqlstate '02000';
+declare exit handler for collate set @var2 = 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 'collate condition for sqlstate '02000';
+declare exit handler for collate set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare column condition for sqlstate '02000';
+declare exit handler for column set @var2 = 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 'column condition for sqlstate '02000';
+declare exit handler for column set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare condition condition for sqlstate '02000';
+declare exit handler for condition set @var2 = 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 'condition condition for sqlstate '02000';
+declare exit handler for condition set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare connection condition for sqlstate '02000';
+declare exit handler for connection set @var2 = 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 'connection condition for sqlstate '02000';
+declare exit handler for connection s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare constraint condition for sqlstate '02000';
+declare exit handler for constraint set @var2 = 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 'constraint condition for sqlstate '02000';
+declare exit handler for constraint s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare continue condition for sqlstate '02000';
+declare exit handler for continue set @var2 = 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 'condition for sqlstate '02000';
+declare exit handler for continue set @var2 = 1;' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare convert condition for sqlstate '02000';
+declare exit handler for convert set @var2 = 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 'convert condition for sqlstate '02000';
+declare exit handler for convert set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare create condition for sqlstate '02000';
+declare exit handler for create set @var2 = 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 'create condition for sqlstate '02000';
+declare exit handler for create set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cross condition for sqlstate '02000';
+declare exit handler for cross set @var2 = 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 'cross condition for sqlstate '02000';
+declare exit handler for cross set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_date condition for sqlstate '02000';
+declare exit handler for current_date set @var2 = 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 'current_date condition for sqlstate '02000';
+declare exit handler for current_da' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_time condition for sqlstate '02000';
+declare exit handler for current_time set @var2 = 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 'current_time condition for sqlstate '02000';
+declare exit handler for current_ti' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_timestamp condition for sqlstate '02000';
+declare exit handler for current_timestamp set @var2 = 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 'current_timestamp condition for sqlstate '02000';
+declare exit handler for curre' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_user condition for sqlstate '02000';
+declare exit handler for current_user set @var2 = 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 'current_user condition for sqlstate '02000';
+declare exit handler for current_us' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cursor condition for sqlstate '02000';
+declare exit handler for cursor set @var2 = 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 'cursor condition for sqlstate '02000';
+declare exit handler for cursor set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare database condition for sqlstate '02000';
+declare exit handler for database set @var2 = 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 'database condition for sqlstate '02000';
+declare exit handler for database set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare databases condition for sqlstate '02000';
+declare exit handler for databases set @var2 = 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 'databases condition for sqlstate '02000';
+declare exit handler for databases set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_hour condition for sqlstate '02000';
+declare exit handler for day_hour set @var2 = 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 'day_hour condition for sqlstate '02000';
+declare exit handler for day_hour set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_microsecond condition for sqlstate '02000';
+declare exit handler for day_microsecond set @var2 = 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 'day_microsecond condition for sqlstate '02000';
+declare exit handler for day_mic' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_minute condition for sqlstate '02000';
+declare exit handler for day_minute set @var2 = 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 'day_minute condition for sqlstate '02000';
+declare exit handler for day_minute s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_second condition for sqlstate '02000';
+declare exit handler for day_second set @var2 = 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 'day_second condition for sqlstate '02000';
+declare exit handler for day_second s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dec condition for sqlstate '02000';
+declare exit handler for dec set @var2 = 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 'dec condition for sqlstate '02000';
+declare exit handler for dec set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal condition for sqlstate '02000';
+declare exit handler for decimal set @var2 = 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 'decimal condition for sqlstate '02000';
+declare exit handler for decimal set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare declare condition for sqlstate '02000';
+declare exit handler for declare set @var2 = 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 'declare condition for sqlstate '02000';
+declare exit handler for declare set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare default condition for sqlstate '02000';
+declare exit handler for default set @var2 = 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 'default condition for sqlstate '02000';
+declare exit handler for default set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delayed condition for sqlstate '02000';
+declare exit handler for delayed set @var2 = 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 'delayed condition for sqlstate '02000';
+declare exit handler for delayed set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delete condition for sqlstate '02000';
+declare exit handler for delete set @var2 = 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 'delete condition for sqlstate '02000';
+declare exit handler for delete set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare desc condition for sqlstate '02000';
+declare exit handler for desc set @var2 = 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 'desc condition for sqlstate '02000';
+declare exit handler for desc set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare describe condition for sqlstate '02000';
+declare exit handler for describe set @var2 = 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 'describe condition for sqlstate '02000';
+declare exit handler for describe set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare deterministic condition for sqlstate '02000';
+declare exit handler for deterministic set @var2 = 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 'deterministic condition for sqlstate '02000';
+declare exit handler for determini' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinct condition for sqlstate '02000';
+declare exit handler for distinct set @var2 = 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 'distinct condition for sqlstate '02000';
+declare exit handler for distinct set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinctrow condition for sqlstate '02000';
+declare exit handler for distinctrow set @var2 = 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 'distinctrow condition for sqlstate '02000';
+declare exit handler for distinctrow' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare div condition for sqlstate '02000';
+declare exit handler for div set @var2 = 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 'div condition for sqlstate '02000';
+declare exit handler for div set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double condition for sqlstate '02000';
+declare exit handler for double set @var2 = 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 'double condition for sqlstate '02000';
+declare exit handler for double set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare drop condition for sqlstate '02000';
+declare exit handler for drop set @var2 = 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 'drop condition for sqlstate '02000';
+declare exit handler for drop set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dual condition for sqlstate '02000';
+declare exit handler for dual set @var2 = 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 'dual condition for sqlstate '02000';
+declare exit handler for dual set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare each condition for sqlstate '02000';
+declare exit handler for each set @var2 = 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 'each condition for sqlstate '02000';
+declare exit handler for each set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare else condition for sqlstate '02000';
+declare exit handler for else set @var2 = 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 'else condition for sqlstate '02000';
+declare exit handler for else set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare elseif condition for sqlstate '02000';
+declare exit handler for elseif set @var2 = 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 'elseif condition for sqlstate '02000';
+declare exit handler for elseif set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enclosed condition for sqlstate '02000';
+declare exit handler for enclosed set @var2 = 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 'enclosed condition for sqlstate '02000';
+declare exit handler for enclosed set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare escaped condition for sqlstate '02000';
+declare exit handler for escaped set @var2 = 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 'escaped condition for sqlstate '02000';
+declare exit handler for escaped set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exists condition for sqlstate '02000';
+declare exit handler for exists set @var2 = 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 'exists condition for sqlstate '02000';
+declare exit handler for exists set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exit condition for sqlstate '02000';
+declare exit handler for exit set @var2 = 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 'condition for sqlstate '02000';
+declare exit handler for exit set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare explain condition for sqlstate '02000';
+declare exit handler for explain set @var2 = 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 'explain condition for sqlstate '02000';
+declare exit handler for explain set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare false condition for sqlstate '02000';
+declare exit handler for false set @var2 = 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 'false condition for sqlstate '02000';
+declare exit handler for false set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fetch condition for sqlstate '02000';
+declare exit handler for fetch set @var2 = 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 'fetch condition for sqlstate '02000';
+declare exit handler for fetch set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fields condition for sqlstate '02000';
+declare exit handler for fields set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float condition for sqlstate '02000';
+declare exit handler for float set @var2 = 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 'float condition for sqlstate '02000';
+declare exit handler for float set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare for condition for sqlstate '02000';
+declare exit handler for for set @var2 = 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 'for condition for sqlstate '02000';
+declare exit handler for for set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare force condition for sqlstate '02000';
+declare exit handler for force set @var2 = 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 'force condition for sqlstate '02000';
+declare exit handler for force set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare foreign condition for sqlstate '02000';
+declare exit handler for foreign set @var2 = 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 'foreign condition for sqlstate '02000';
+declare exit handler for foreign set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare found condition for sqlstate '02000';
+declare exit handler for found set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare from condition for sqlstate '02000';
+declare exit handler for from set @var2 = 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 'from condition for sqlstate '02000';
+declare exit handler for from set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fulltext condition for sqlstate '02000';
+declare exit handler for fulltext set @var2 = 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 'fulltext condition for sqlstate '02000';
+declare exit handler for fulltext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare goto condition for sqlstate '02000';
+declare exit handler for goto set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare grant condition for sqlstate '02000';
+declare exit handler for grant set @var2 = 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 'grant condition for sqlstate '02000';
+declare exit handler for grant set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare group condition for sqlstate '02000';
+declare exit handler for group set @var2 = 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 'group condition for sqlstate '02000';
+declare exit handler for group set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare having condition for sqlstate '02000';
+declare exit handler for having set @var2 = 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 'having condition for sqlstate '02000';
+declare exit handler for having set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare high_priority condition for sqlstate '02000';
+declare exit handler for high_priority set @var2 = 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 'high_priority condition for sqlstate '02000';
+declare exit handler for high_prio' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_microsecond condition for sqlstate '02000';
+declare exit handler for hour_microsecond set @var2 = 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 'hour_microsecond condition for sqlstate '02000';
+declare exit handler for hour_m' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_minute condition for sqlstate '02000';
+declare exit handler for hour_minute set @var2 = 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 'hour_minute condition for sqlstate '02000';
+declare exit handler for hour_minute' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_second condition for sqlstate '02000';
+declare exit handler for hour_second set @var2 = 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 'hour_second condition for sqlstate '02000';
+declare exit handler for hour_second' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare if condition for sqlstate '02000';
+declare exit handler for if set @var2 = 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 'if condition for sqlstate '02000';
+declare exit handler for if set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ignore condition for sqlstate '02000';
+declare exit handler for ignore set @var2 = 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 'ignore condition for sqlstate '02000';
+declare exit handler for ignore set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare in condition for sqlstate '02000';
+declare exit handler for in set @var2 = 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 'in condition for sqlstate '02000';
+declare exit handler for in set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare index condition for sqlstate '02000';
+declare exit handler for index set @var2 = 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 'index condition for sqlstate '02000';
+declare exit handler for index set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare infile condition for sqlstate '02000';
+declare exit handler for infile set @var2 = 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 'infile condition for sqlstate '02000';
+declare exit handler for infile set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inner condition for sqlstate '02000';
+declare exit handler for inner set @var2 = 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 'inner condition for sqlstate '02000';
+declare exit handler for inner set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inout condition for sqlstate '02000';
+declare exit handler for inout set @var2 = 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 'inout condition for sqlstate '02000';
+declare exit handler for inout set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insensitive condition for sqlstate '02000';
+declare exit handler for insensitive set @var2 = 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 'insensitive condition for sqlstate '02000';
+declare exit handler for insensitive' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insert condition for sqlstate '02000';
+declare exit handler for insert set @var2 = 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 'insert condition for sqlstate '02000';
+declare exit handler for insert set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int condition for sqlstate '02000';
+declare exit handler for int set @var2 = 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 'int condition for sqlstate '02000';
+declare exit handler for int set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare integer condition for sqlstate '02000';
+declare exit handler for integer set @var2 = 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 'integer condition for sqlstate '02000';
+declare exit handler for integer set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare interval condition for sqlstate '02000';
+declare exit handler for interval set @var2 = 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 'interval condition for sqlstate '02000';
+declare exit handler for interval set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare into condition for sqlstate '02000';
+declare exit handler for into set @var2 = 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 'into condition for sqlstate '02000';
+declare exit handler for into set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare is condition for sqlstate '02000';
+declare exit handler for is set @var2 = 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 'is condition for sqlstate '02000';
+declare exit handler for is set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare iterate condition for sqlstate '02000';
+declare exit handler for iterate set @var2 = 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 'iterate condition for sqlstate '02000';
+declare exit handler for iterate set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare join condition for sqlstate '02000';
+declare exit handler for join set @var2 = 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 'join condition for sqlstate '02000';
+declare exit handler for join set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare key condition for sqlstate '02000';
+declare exit handler for key set @var2 = 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 'key condition for sqlstate '02000';
+declare exit handler for key set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare keys condition for sqlstate '02000';
+declare exit handler for keys set @var2 = 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 'keys condition for sqlstate '02000';
+declare exit handler for keys set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare kill condition for sqlstate '02000';
+declare exit handler for kill set @var2 = 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 'kill condition for sqlstate '02000';
+declare exit handler for kill set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leading condition for sqlstate '02000';
+declare exit handler for leading set @var2 = 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 'leading condition for sqlstate '02000';
+declare exit handler for leading set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leave condition for sqlstate '02000';
+declare exit handler for leave set @var2 = 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 'leave condition for sqlstate '02000';
+declare exit handler for leave set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare left condition for sqlstate '02000';
+declare exit handler for left set @var2 = 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 'left condition for sqlstate '02000';
+declare exit handler for left set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare like condition for sqlstate '02000';
+declare exit handler for like set @var2 = 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 'like condition for sqlstate '02000';
+declare exit handler for like set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare limit condition for sqlstate '02000';
+declare exit handler for limit set @var2 = 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 'limit condition for sqlstate '02000';
+declare exit handler for limit set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lines condition for sqlstate '02000';
+declare exit handler for lines set @var2 = 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 'lines condition for sqlstate '02000';
+declare exit handler for lines set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare load condition for sqlstate '02000';
+declare exit handler for load set @var2 = 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 'load condition for sqlstate '02000';
+declare exit handler for load set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtime condition for sqlstate '02000';
+declare exit handler for localtime set @var2 = 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 'localtime condition for sqlstate '02000';
+declare exit handler for localtime set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtimestamp condition for sqlstate '02000';
+declare exit handler for localtimestamp set @var2 = 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 'localtimestamp condition for sqlstate '02000';
+declare exit handler for localtim' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lock condition for sqlstate '02000';
+declare exit handler for lock set @var2 = 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 'lock condition for sqlstate '02000';
+declare exit handler for lock set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare long condition for sqlstate '02000';
+declare exit handler for long set @var2 = 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 'long condition for sqlstate '02000';
+declare exit handler for long set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob condition for sqlstate '02000';
+declare exit handler for longblob set @var2 = 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 'longblob condition for sqlstate '02000';
+declare exit handler for longblob set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext condition for sqlstate '02000';
+declare exit handler for longtext set @var2 = 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 'longtext condition for sqlstate '02000';
+declare exit handler for longtext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare loop condition for sqlstate '02000';
+declare exit handler for loop set @var2 = 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 'loop condition for sqlstate '02000';
+declare exit handler for loop set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare low_priority condition for sqlstate '02000';
+declare exit handler for low_priority set @var2 = 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 'low_priority condition for sqlstate '02000';
+declare exit handler for low_priori' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare match condition for sqlstate '02000';
+declare exit handler for match set @var2 = 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 'match condition for sqlstate '02000';
+declare exit handler for match set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob condition for sqlstate '02000';
+declare exit handler for mediumblob set @var2 = 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 'mediumblob condition for sqlstate '02000';
+declare exit handler for mediumblob s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint condition for sqlstate '02000';
+declare exit handler for mediumint set @var2 = 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 'mediumint condition for sqlstate '02000';
+declare exit handler for mediumint set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext condition for sqlstate '02000';
+declare exit handler for mediumtext set @var2 = 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 'mediumtext condition for sqlstate '02000';
+declare exit handler for mediumtext s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare middleint condition for sqlstate '02000';
+declare exit handler for middleint set @var2 = 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 'middleint condition for sqlstate '02000';
+declare exit handler for middleint set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_microsecond condition for sqlstate '02000';
+declare exit handler for minute_microsecond set @var2 = 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 'minute_microsecond condition for sqlstate '02000';
+declare exit handler for minu' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_second condition for sqlstate '02000';
+declare exit handler for minute_second set @var2 = 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 'minute_second condition for sqlstate '02000';
+declare exit handler for minute_se' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mod condition for sqlstate '02000';
+declare exit handler for mod set @var2 = 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 'mod condition for sqlstate '02000';
+declare exit handler for mod set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare modifies condition for sqlstate '02000';
+declare exit handler for modifies set @var2 = 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 'modifies condition for sqlstate '02000';
+declare exit handler for modifies set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare natural condition for sqlstate '02000';
+declare exit handler for natural set @var2 = 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 'natural condition for sqlstate '02000';
+declare exit handler for natural set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare not condition for sqlstate '02000';
+declare exit handler for not set @var2 = 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 'not condition for sqlstate '02000';
+declare exit handler for not set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare no_write_to_binlog condition for sqlstate '02000';
+declare exit handler for no_write_to_binlog set @var2 = 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 'no_write_to_binlog condition for sqlstate '02000';
+declare exit handler for no_w' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare null condition for sqlstate '02000';
+declare exit handler for null set @var2 = 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 'null condition for sqlstate '02000';
+declare exit handler for null set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric condition for sqlstate '02000';
+declare exit handler for numeric set @var2 = 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 'numeric condition for sqlstate '02000';
+declare exit handler for numeric set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare on condition for sqlstate '02000';
+declare exit handler for on set @var2 = 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 'on condition for sqlstate '02000';
+declare exit handler for on set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optimize condition for sqlstate '02000';
+declare exit handler for optimize set @var2 = 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 'optimize condition for sqlstate '02000';
+declare exit handler for optimize set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare option condition for sqlstate '02000';
+declare exit handler for option set @var2 = 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 'option condition for sqlstate '02000';
+declare exit handler for option set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optionally condition for sqlstate '02000';
+declare exit handler for optionally set @var2 = 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 'optionally condition for sqlstate '02000';
+declare exit handler for optionally s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare or condition for sqlstate '02000';
+declare exit handler for or set @var2 = 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 'or condition for sqlstate '02000';
+declare exit handler for or set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare order condition for sqlstate '02000';
+declare exit handler for order set @var2 = 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 'order condition for sqlstate '02000';
+declare exit handler for order set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare out condition for sqlstate '02000';
+declare exit handler for out set @var2 = 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 'out condition for sqlstate '02000';
+declare exit handler for out set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outer condition for sqlstate '02000';
+declare exit handler for outer set @var2 = 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 'outer condition for sqlstate '02000';
+declare exit handler for outer set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outfile condition for sqlstate '02000';
+declare exit handler for outfile set @var2 = 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 'outfile condition for sqlstate '02000';
+declare exit handler for outfile set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare precision condition for sqlstate '02000';
+declare exit handler for precision set @var2 = 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 'precision condition for sqlstate '02000';
+declare exit handler for precision set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare primary condition for sqlstate '02000';
+declare exit handler for primary set @var2 = 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 'primary condition for sqlstate '02000';
+declare exit handler for primary set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare privileges condition for sqlstate '02000';
+declare exit handler for privileges set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare procedure condition for sqlstate '02000';
+declare exit handler for procedure set @var2 = 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 'procedure condition for sqlstate '02000';
+declare exit handler for procedure set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare purge condition for sqlstate '02000';
+declare exit handler for purge set @var2 = 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 'purge condition for sqlstate '02000';
+declare exit handler for purge set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare read condition for sqlstate '02000';
+declare exit handler for read set @var2 = 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 'read condition for sqlstate '02000';
+declare exit handler for read set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare reads condition for sqlstate '02000';
+declare exit handler for reads set @var2 = 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 'reads condition for sqlstate '02000';
+declare exit handler for reads set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real condition for sqlstate '02000';
+declare exit handler for real set @var2 = 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 'real condition for sqlstate '02000';
+declare exit handler for real set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare references condition for sqlstate '02000';
+declare exit handler for references set @var2 = 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 'references condition for sqlstate '02000';
+declare exit handler for references s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare regexp condition for sqlstate '02000';
+declare exit handler for regexp set @var2 = 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 'regexp condition for sqlstate '02000';
+declare exit handler for regexp set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rename condition for sqlstate '02000';
+declare exit handler for rename set @var2 = 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 'rename condition for sqlstate '02000';
+declare exit handler for rename set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare repeat condition for sqlstate '02000';
+declare exit handler for repeat set @var2 = 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 'repeat condition for sqlstate '02000';
+declare exit handler for repeat set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare replace condition for sqlstate '02000';
+declare exit handler for replace set @var2 = 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 'replace condition for sqlstate '02000';
+declare exit handler for replace set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare require condition for sqlstate '02000';
+declare exit handler for require set @var2 = 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 'require condition for sqlstate '02000';
+declare exit handler for require set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare restrict condition for sqlstate '02000';
+declare exit handler for restrict set @var2 = 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 'restrict condition for sqlstate '02000';
+declare exit handler for restrict set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare return condition for sqlstate '02000';
+declare exit handler for return set @var2 = 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 'return condition for sqlstate '02000';
+declare exit handler for return set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare revoke condition for sqlstate '02000';
+declare exit handler for revoke set @var2 = 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 'revoke condition for sqlstate '02000';
+declare exit handler for revoke set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare right condition for sqlstate '02000';
+declare exit handler for right set @var2 = 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 'right condition for sqlstate '02000';
+declare exit handler for right set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rlike condition for sqlstate '02000';
+declare exit handler for rlike set @var2 = 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 'rlike condition for sqlstate '02000';
+declare exit handler for rlike set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schema condition for sqlstate '02000';
+declare exit handler for schema set @var2 = 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 'schema condition for sqlstate '02000';
+declare exit handler for schema set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schemas condition for sqlstate '02000';
+declare exit handler for schemas set @var2 = 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 'schemas condition for sqlstate '02000';
+declare exit handler for schemas set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare second_microsecond condition for sqlstate '02000';
+declare exit handler for second_microsecond set @var2 = 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 'second_microsecond condition for sqlstate '02000';
+declare exit handler for seco' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare SELECT condition for sqlstate '02000';
+declare exit handler for SELECT set @var2 = 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 'SELECT condition for sqlstate '02000';
+declare exit handler for SELECT set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sensitive condition for sqlstate '02000';
+declare exit handler for sensitive set @var2 = 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 'sensitive condition for sqlstate '02000';
+declare exit handler for sensitive set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare separator condition for sqlstate '02000';
+declare exit handler for separator set @var2 = 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 'separator condition for sqlstate '02000';
+declare exit handler for separator set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set condition for sqlstate '02000';
+declare exit handler for set set @var2 = 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 'set condition for sqlstate '02000';
+declare exit handler for set set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare show condition for sqlstate '02000';
+declare exit handler for show set @var2 = 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 'show condition for sqlstate '02000';
+declare exit handler for show set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint condition for sqlstate '02000';
+declare exit handler for smallint set @var2 = 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 'smallint condition for sqlstate '02000';
+declare exit handler for smallint set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare soname condition for sqlstate '02000';
+declare exit handler for soname set @var2 = 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 'soname condition for sqlstate '02000';
+declare exit handler for soname set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare spatial condition for sqlstate '02000';
+declare exit handler for spatial set @var2 = 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 'spatial condition for sqlstate '02000';
+declare exit handler for spatial set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare specific condition for sqlstate '02000';
+declare exit handler for specific set @var2 = 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 'specific condition for sqlstate '02000';
+declare exit handler for specific set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql condition for sqlstate '02000';
+declare exit handler for sql set @var2 = 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 'sql condition for sqlstate '02000';
+declare exit handler for sql set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlexception condition for sqlstate '02000';
+declare exit handler for sqlexception set @var2 = 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 'sqlexception condition for sqlstate '02000';
+declare exit handler for sqlexcepti' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlstate condition for sqlstate '02000';
+declare exit handler for sqlstate set @var2 = 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 'sqlstate condition for sqlstate '02000';
+declare exit handler for sqlstate set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlwarning condition for sqlstate '02000';
+declare exit handler for sqlwarning set @var2 = 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 'sqlwarning condition for sqlstate '02000';
+declare exit handler for sqlwarning s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_big_result condition for sqlstate '02000';
+declare exit handler for sql_big_result set @var2 = 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 'sql_big_result condition for sqlstate '02000';
+declare exit handler for sql_big_' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_calc_found_rows condition for sqlstate '02000';
+declare exit handler for sql_calc_found_rows set @var2 = 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 'sql_calc_found_rows condition for sqlstate '02000';
+declare exit handler for sql' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_small_result condition for sqlstate '02000';
+declare exit handler for sql_small_result set @var2 = 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 'sql_small_result condition for sqlstate '02000';
+declare exit handler for sql_sm' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ssl condition for sqlstate '02000';
+declare exit handler for ssl set @var2 = 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 'ssl condition for sqlstate '02000';
+declare exit handler for ssl set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare starting condition for sqlstate '02000';
+declare exit handler for starting set @var2 = 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 'starting condition for sqlstate '02000';
+declare exit handler for starting set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare straight_join condition for sqlstate '02000';
+declare exit handler for straight_join set @var2 = 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 'straight_join condition for sqlstate '02000';
+declare exit handler for straight_' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare table condition for sqlstate '02000';
+declare exit handler for table set @var2 = 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 'table condition for sqlstate '02000';
+declare exit handler for table set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tables condition for sqlstate '02000';
+declare exit handler for tables set @var2 = 1;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare terminated condition for sqlstate '02000';
+declare exit handler for terminated set @var2 = 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 'terminated condition for sqlstate '02000';
+declare exit handler for terminated s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare then condition for sqlstate '02000';
+declare exit handler for then set @var2 = 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 'then condition for sqlstate '02000';
+declare exit handler for then set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob condition for sqlstate '02000';
+declare exit handler for tinyblob set @var2 = 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 'tinyblob condition for sqlstate '02000';
+declare exit handler for tinyblob set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint condition for sqlstate '02000';
+declare exit handler for tinyint set @var2 = 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 'tinyint condition for sqlstate '02000';
+declare exit handler for tinyint set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext condition for sqlstate '02000';
+declare exit handler for tinytext set @var2 = 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 'tinytext condition for sqlstate '02000';
+declare exit handler for tinytext set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare to condition for sqlstate '02000';
+declare exit handler for to set @var2 = 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 'to condition for sqlstate '02000';
+declare exit handler for to set @var2 = 1;
+EN' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trailing condition for sqlstate '02000';
+declare exit handler for trailing set @var2 = 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 'trailing condition for sqlstate '02000';
+declare exit handler for trailing set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trigger condition for sqlstate '02000';
+declare exit handler for trigger set @var2 = 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 'trigger condition for sqlstate '02000';
+declare exit handler for trigger set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare true condition for sqlstate '02000';
+declare exit handler for true set @var2 = 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 'true condition for sqlstate '02000';
+declare exit handler for true set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare undo condition for sqlstate '02000';
+declare exit handler for undo set @var2 = 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 'undo condition for sqlstate '02000';
+declare exit handler for undo set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare union condition for sqlstate '02000';
+declare exit handler for union set @var2 = 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 'union condition for sqlstate '02000';
+declare exit handler for union set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unique condition for sqlstate '02000';
+declare exit handler for unique set @var2 = 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 'unique condition for sqlstate '02000';
+declare exit handler for unique set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unlock condition for sqlstate '02000';
+declare exit handler for unlock set @var2 = 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 'unlock condition for sqlstate '02000';
+declare exit handler for unlock set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unsigned condition for sqlstate '02000';
+declare exit handler for unsigned set @var2 = 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 'unsigned condition for sqlstate '02000';
+declare exit handler for unsigned set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare update condition for sqlstate '02000';
+declare exit handler for update set @var2 = 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 'update condition for sqlstate '02000';
+declare exit handler for update set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare usage condition for sqlstate '02000';
+declare exit handler for usage set @var2 = 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 'usage condition for sqlstate '02000';
+declare exit handler for usage set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare USE condition for sqlstate '02000';
+declare exit handler for USE set @var2 = 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 'USE condition for sqlstate '02000';
+declare exit handler for USE set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare using condition for sqlstate '02000';
+declare exit handler for using set @var2 = 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 'using condition for sqlstate '02000';
+declare exit handler for using set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_date condition for sqlstate '02000';
+declare exit handler for utc_date set @var2 = 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 'utc_date condition for sqlstate '02000';
+declare exit handler for utc_date set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_time condition for sqlstate '02000';
+declare exit handler for utc_time set @var2 = 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 'utc_time condition for sqlstate '02000';
+declare exit handler for utc_time set @' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_timestamp condition for sqlstate '02000';
+declare exit handler for utc_timestamp set @var2 = 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 'utc_timestamp condition for sqlstate '02000';
+declare exit handler for utc_times' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare values condition for sqlstate '02000';
+declare exit handler for values set @var2 = 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 'values condition for sqlstate '02000';
+declare exit handler for values set @var2' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varbinary condition for sqlstate '02000';
+declare exit handler for varbinary set @var2 = 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 'varbinary condition for sqlstate '02000';
+declare exit handler for varbinary set' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varchar condition for sqlstate '02000';
+declare exit handler for varchar set @var2 = 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 'varchar condition for sqlstate '02000';
+declare exit handler for varchar set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varcharacter condition for sqlstate '02000';
+declare exit handler for varcharacter set @var2 = 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 'varcharacter condition for sqlstate '02000';
+declare exit handler for varcharact' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varying condition for sqlstate '02000';
+declare exit handler for varying set @var2 = 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 'varying condition for sqlstate '02000';
+declare exit handler for varying set @va' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare when condition for sqlstate '02000';
+declare exit handler for when set @var2 = 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 'when condition for sqlstate '02000';
+declare exit handler for when set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare where condition for sqlstate '02000';
+declare exit handler for where set @var2 = 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 'where condition for sqlstate '02000';
+declare exit handler for where set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare while condition for sqlstate '02000';
+declare exit handler for while set @var2 = 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 condition for sqlstate '02000';
+declare exit handler for while set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare with condition for sqlstate '02000';
+declare exit handler for with set @var2 = 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 'with condition for sqlstate '02000';
+declare exit handler for with set @var2 = 1' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare write condition for sqlstate '02000';
+declare exit handler for write set @var2 = 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 'write condition for sqlstate '02000';
+declare exit handler for write set @var2 =' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare xor condition for sqlstate '02000';
+declare exit handler for xor set @var2 = 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 'xor condition for sqlstate '02000';
+declare exit handler for xor set @var2 = 1;
+' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year_month condition for sqlstate '02000';
+declare exit handler for year_month set @var2 = 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 'year_month condition for sqlstate '02000';
+declare exit handler for year_month s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare zerofill condition for sqlstate '02000';
+declare exit handler for zerofill set @var2 = 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 'zerofill condition for sqlstate '02000';
+declare exit handler for zerofill set @' at line 3
+
+Testcase :
+----------
+Ensure that every possible type of handler may be declared for
+a stored procedure (continue- handler_type ).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t2(f1) values (1);
+set @x = 2;
+insert into t2(f1) values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare undo handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'undo handler for sqlstate '23000' set @x2 = 1;
+set @x = 1;
+insert into t values ' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare continueinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1()
+BEGIN
+declare undoinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare exitinv handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+set @x = 2;
+insert into t values (1);
+set @x = 3;
+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 'handler for sqlstate '2300' set @x2 = 1;
+set @x = 1;
+insert into t values (1);
+s' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare add handler for sqlstate '02000' set @var2 = 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 'add handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare all handler for sqlstate '02000' set @var2 = 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 'all handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare alter handler for sqlstate '02000' set @var2 = 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 'alter handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare analyze handler for sqlstate '02000' set @var2 = 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 'analyze handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare and handler for sqlstate '02000' set @var2 = 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 'and handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare as handler for sqlstate '02000' set @var2 = 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 'as handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asc handler for sqlstate '02000' set @var2 = 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 'asc handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare asensitive handler for sqlstate '02000' set @var2 = 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 'asensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare before handler for sqlstate '02000' set @var2 = 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 'before handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare between handler for sqlstate '02000' set @var2 = 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 'between handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare bigint handler for sqlstate '02000' set @var2 = 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 'bigint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare binary handler for sqlstate '02000' set @var2 = 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 'binary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare blob handler for sqlstate '02000' set @var2 = 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 'blob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare both handler for sqlstate '02000' set @var2 = 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 'both handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare by handler for sqlstate '02000' set @var2 = 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 'by handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare CALL handler for sqlstate '02000' set @var2 = 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 'CALL handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cascade handler for sqlstate '02000' set @var2 = 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 'cascade handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare case handler for sqlstate '02000' set @var2 = 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 'case handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare change handler for sqlstate '02000' set @var2 = 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 'change handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare char handler for sqlstate '02000' set @var2 = 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 'char handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare character handler for sqlstate '02000' set @var2 = 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 'character handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare check handler for sqlstate '02000' set @var2 = 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 'check handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare collate handler for sqlstate '02000' set @var2 = 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 'collate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare column handler for sqlstate '02000' set @var2 = 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 'column handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare columns handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare condition handler for sqlstate '02000' set @var2 = 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 'condition handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare connection handler for sqlstate '02000' set @var2 = 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 'connection handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare constraint handler for sqlstate '02000' set @var2 = 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 'constraint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare convert handler for sqlstate '02000' set @var2 = 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 'convert handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare create handler for sqlstate '02000' set @var2 = 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 'create handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cross handler for sqlstate '02000' set @var2 = 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 'cross handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_date handler for sqlstate '02000' set @var2 = 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 'current_date handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_time handler for sqlstate '02000' set @var2 = 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 'current_time handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_timestamp handler for sqlstate '02000' set @var2 = 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 'current_timestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare current_user handler for sqlstate '02000' set @var2 = 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 'current_user handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare cursor handler for sqlstate '02000' set @var2 = 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 'cursor handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare database handler for sqlstate '02000' set @var2 = 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 'database handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare databases handler for sqlstate '02000' set @var2 = 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 'databases handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_hour handler for sqlstate '02000' set @var2 = 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 'day_hour handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_microsecond handler for sqlstate '02000' set @var2 = 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 'day_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_minute handler for sqlstate '02000' set @var2 = 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 'day_minute handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare day_second handler for sqlstate '02000' set @var2 = 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 'day_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dec handler for sqlstate '02000' set @var2 = 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 'dec handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare decimal handler for sqlstate '02000' set @var2 = 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 'decimal handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare declare handler for sqlstate '02000' set @var2 = 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 'declare handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare default handler for sqlstate '02000' set @var2 = 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 'default handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delayed handler for sqlstate '02000' set @var2 = 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 'delayed handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare delete handler for sqlstate '02000' set @var2 = 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 'delete handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare desc handler for sqlstate '02000' set @var2 = 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 'desc handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare describe handler for sqlstate '02000' set @var2 = 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 'describe handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare deterministic handler for sqlstate '02000' set @var2 = 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 'deterministic handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinct handler for sqlstate '02000' set @var2 = 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 'distinct handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare distinctrow handler for sqlstate '02000' set @var2 = 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 'distinctrow handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare div handler for sqlstate '02000' set @var2 = 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 'div handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare double handler for sqlstate '02000' set @var2 = 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 'double handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare drop handler for sqlstate '02000' set @var2 = 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 'drop handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare dual handler for sqlstate '02000' set @var2 = 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 'dual handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare each handler for sqlstate '02000' set @var2 = 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 'each handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare else handler for sqlstate '02000' set @var2 = 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 'else handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare elseif handler for sqlstate '02000' set @var2 = 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 'elseif handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare enclosed handler for sqlstate '02000' set @var2 = 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 'enclosed handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare escaped handler for sqlstate '02000' set @var2 = 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 'escaped handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare exists handler for sqlstate '02000' set @var2 = 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 'exists handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare explain handler for sqlstate '02000' set @var2 = 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 'explain handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare false handler for sqlstate '02000' set @var2 = 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 'false handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fetch handler for sqlstate '02000' set @var2 = 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 'fetch handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fields handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare float handler for sqlstate '02000' set @var2 = 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 'float handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare for handler for sqlstate '02000' set @var2 = 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 'for handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare force handler for sqlstate '02000' set @var2 = 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 'force handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare foreign handler for sqlstate '02000' set @var2 = 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 'foreign handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare found handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare from handler for sqlstate '02000' set @var2 = 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 'from handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare fulltext handler for sqlstate '02000' set @var2 = 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 'fulltext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare goto handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare grant handler for sqlstate '02000' set @var2 = 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 'grant handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare group handler for sqlstate '02000' set @var2 = 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 'group handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare having handler for sqlstate '02000' set @var2 = 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 'having handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare high_priority handler for sqlstate '02000' set @var2 = 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 'high_priority handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_microsecond handler for sqlstate '02000' set @var2 = 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 'hour_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_minute handler for sqlstate '02000' set @var2 = 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 'hour_minute handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare hour_second handler for sqlstate '02000' set @var2 = 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 'hour_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare if handler for sqlstate '02000' set @var2 = 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 'if handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ignore handler for sqlstate '02000' set @var2 = 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 'ignore handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare in handler for sqlstate '02000' set @var2 = 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 'in handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare index handler for sqlstate '02000' set @var2 = 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 'index handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare infile handler for sqlstate '02000' set @var2 = 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 'infile handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inner handler for sqlstate '02000' set @var2 = 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 'inner handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare inout handler for sqlstate '02000' set @var2 = 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 'inout handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insensitive handler for sqlstate '02000' set @var2 = 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 'insensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare insert handler for sqlstate '02000' set @var2 = 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 'insert handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare int handler for sqlstate '02000' set @var2 = 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 'int handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare integer handler for sqlstate '02000' set @var2 = 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 'integer handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare interval handler for sqlstate '02000' set @var2 = 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 'interval handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare into handler for sqlstate '02000' set @var2 = 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 'into handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare is handler for sqlstate '02000' set @var2 = 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 'is handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare iterate handler for sqlstate '02000' set @var2 = 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 'iterate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare join handler for sqlstate '02000' set @var2 = 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 'join handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare key handler for sqlstate '02000' set @var2 = 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 'key handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare keys handler for sqlstate '02000' set @var2 = 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 'keys handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare kill handler for sqlstate '02000' set @var2 = 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 'kill handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leading handler for sqlstate '02000' set @var2 = 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 'leading handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare leave handler for sqlstate '02000' set @var2 = 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 'leave handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare left handler for sqlstate '02000' set @var2 = 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 'left handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare like handler for sqlstate '02000' set @var2 = 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 'like handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare limit handler for sqlstate '02000' set @var2 = 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 'limit handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lines handler for sqlstate '02000' set @var2 = 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 'lines handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare load handler for sqlstate '02000' set @var2 = 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 'load handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtime handler for sqlstate '02000' set @var2 = 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 'localtime handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare localtimestamp handler for sqlstate '02000' set @var2 = 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 'localtimestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare lock handler for sqlstate '02000' set @var2 = 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 'lock handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare long handler for sqlstate '02000' set @var2 = 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 'long handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longblob handler for sqlstate '02000' set @var2 = 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 'longblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare longtext handler for sqlstate '02000' set @var2 = 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 'longtext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare loop handler for sqlstate '02000' set @var2 = 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 'loop handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare low_priority handler for sqlstate '02000' set @var2 = 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 'low_priority handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare match handler for sqlstate '02000' set @var2 = 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 'match handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumblob handler for sqlstate '02000' set @var2 = 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 'mediumblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumint handler for sqlstate '02000' set @var2 = 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 'mediumint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mediumtext handler for sqlstate '02000' set @var2 = 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 'mediumtext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare middleint handler for sqlstate '02000' set @var2 = 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 'middleint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_microsecond handler for sqlstate '02000' set @var2 = 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 'minute_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare minute_second handler for sqlstate '02000' set @var2 = 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 'minute_second handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare mod handler for sqlstate '02000' set @var2 = 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 'mod handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare modifies handler for sqlstate '02000' set @var2 = 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 'modifies handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare natural handler for sqlstate '02000' set @var2 = 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 'natural handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare not handler for sqlstate '02000' set @var2 = 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 'not handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare no_write_to_binlog handler for sqlstate '02000' set @var2 = 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 'no_write_to_binlog handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare null handler for sqlstate '02000' set @var2 = 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 'null handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare numeric handler for sqlstate '02000' set @var2 = 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 'numeric handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare on handler for sqlstate '02000' set @var2 = 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 'on handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optimize handler for sqlstate '02000' set @var2 = 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 'optimize handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare option handler for sqlstate '02000' set @var2 = 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 'option handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare optionally handler for sqlstate '02000' set @var2 = 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 'optionally handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare or handler for sqlstate '02000' set @var2 = 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 'or handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare order handler for sqlstate '02000' set @var2 = 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 'order handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare out handler for sqlstate '02000' set @var2 = 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 'out handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outer handler for sqlstate '02000' set @var2 = 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 'outer handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare outfile handler for sqlstate '02000' set @var2 = 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 'outfile handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare precision handler for sqlstate '02000' set @var2 = 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 'precision handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare primary handler for sqlstate '02000' set @var2 = 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 'primary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare privileges handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare procedure handler for sqlstate '02000' set @var2 = 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 'procedure handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare purge handler for sqlstate '02000' set @var2 = 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 'purge handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare read handler for sqlstate '02000' set @var2 = 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 'read handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare reads handler for sqlstate '02000' set @var2 = 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 'reads handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare real handler for sqlstate '02000' set @var2 = 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 'real handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare references handler for sqlstate '02000' set @var2 = 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 'references handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare regexp handler for sqlstate '02000' set @var2 = 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 'regexp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rename handler for sqlstate '02000' set @var2 = 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 'rename handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare repeat handler for sqlstate '02000' set @var2 = 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 'repeat handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare replace handler for sqlstate '02000' set @var2 = 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 'replace handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare require handler for sqlstate '02000' set @var2 = 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 'require handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare restrict handler for sqlstate '02000' set @var2 = 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 'restrict handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare return handler for sqlstate '02000' set @var2 = 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 'return handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare revoke handler for sqlstate '02000' set @var2 = 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 'revoke handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare right handler for sqlstate '02000' set @var2 = 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 'right handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare rlike handler for sqlstate '02000' set @var2 = 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 'rlike handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schema handler for sqlstate '02000' set @var2 = 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 'schema handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare schemas handler for sqlstate '02000' set @var2 = 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 'schemas handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare second_microsecond handler for sqlstate '02000' set @var2 = 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 'second_microsecond handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare SELECT handler for sqlstate '02000' set @var2 = 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 'SELECT handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sensitive handler for sqlstate '02000' set @var2 = 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 'sensitive handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare separator handler for sqlstate '02000' set @var2 = 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 'separator handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare set handler for sqlstate '02000' set @var2 = 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 'set handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare show handler for sqlstate '02000' set @var2 = 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 'show handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare smallint handler for sqlstate '02000' set @var2 = 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 'smallint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare soname handler for sqlstate '02000' set @var2 = 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 'soname handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare spatial handler for sqlstate '02000' set @var2 = 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 'spatial handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare specific handler for sqlstate '02000' set @var2 = 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 'specific handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql handler for sqlstate '02000' set @var2 = 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 'sql handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlexception handler for sqlstate '02000' set @var2 = 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 'sqlexception handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlstate handler for sqlstate '02000' set @var2 = 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 'sqlstate handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sqlwarning handler for sqlstate '02000' set @var2 = 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 'sqlwarning handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_big_result handler for sqlstate '02000' set @var2 = 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 'sql_big_result handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_calc_found_rows handler for sqlstate '02000' set @var2 = 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 'sql_calc_found_rows handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare sql_small_result handler for sqlstate '02000' set @var2 = 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 'sql_small_result handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare ssl handler for sqlstate '02000' set @var2 = 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 'ssl handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare starting handler for sqlstate '02000' set @var2 = 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 'starting handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare straight_join handler for sqlstate '02000' set @var2 = 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 'straight_join handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare table handler for sqlstate '02000' set @var2 = 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 'table handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tables handler for sqlstate '02000' set @var2 = 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 'handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare terminated handler for sqlstate '02000' set @var2 = 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 'terminated handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare then handler for sqlstate '02000' set @var2 = 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 'then handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyblob handler for sqlstate '02000' set @var2 = 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 'tinyblob handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinyint handler for sqlstate '02000' set @var2 = 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 'tinyint handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare tinytext handler for sqlstate '02000' set @var2 = 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 'tinytext handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare to handler for sqlstate '02000' set @var2 = 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 'to handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trailing handler for sqlstate '02000' set @var2 = 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 'trailing handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare trigger handler for sqlstate '02000' set @var2 = 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 'trigger handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare true handler for sqlstate '02000' set @var2 = 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 'true handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare undo handler for sqlstate '02000' set @var2 = 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 'undo handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare union handler for sqlstate '02000' set @var2 = 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 'union handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unique handler for sqlstate '02000' set @var2 = 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 'unique handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unlock handler for sqlstate '02000' set @var2 = 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 'unlock handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare unsigned handler for sqlstate '02000' set @var2 = 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 'unsigned handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare update handler for sqlstate '02000' set @var2 = 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 'update handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare usage handler for sqlstate '02000' set @var2 = 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 'usage handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare USE handler for sqlstate '02000' set @var2 = 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 'USE handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare using handler for sqlstate '02000' set @var2 = 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 'using handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_date handler for sqlstate '02000' set @var2 = 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 'utc_date handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_time handler for sqlstate '02000' set @var2 = 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 'utc_time handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare utc_timestamp handler for sqlstate '02000' set @var2 = 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 'utc_timestamp handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare values handler for sqlstate '02000' set @var2 = 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 'values handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varbinary handler for sqlstate '02000' set @var2 = 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 'varbinary handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varchar handler for sqlstate '02000' set @var2 = 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 'varchar handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varcharacter handler for sqlstate '02000' set @var2 = 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 'varcharacter handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare varying handler for sqlstate '02000' set @var2 = 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 'varying handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare when handler for sqlstate '02000' set @var2 = 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 'when handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare where handler for sqlstate '02000' set @var2 = 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 'where handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare while handler for sqlstate '02000' set @var2 = 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 handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare with handler for sqlstate '02000' set @var2 = 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 'with handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare write handler for sqlstate '02000' set @var2 = 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 'write handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare xor handler for sqlstate '02000' set @var2 = 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 'xor handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare year_month handler for sqlstate '02000' set @var2 = 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 'year_month handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare zerofill handler for sqlstate '02000' set @var2 = 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 'zerofill handler for sqlstate '02000' set @var2 = 1;
+END' at line 3
+USE db_storedproc;
+
+Testcase 4.2.26:
+--------------------------------------------------------------------------------
+set @v1='0';
+set @v2='0';
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x char;
+declare y char;
+declare cond1 condition for sqlstate '42000';
+declare cur1 cursor for SELECT f1 from t2 limit 1;
+declare continue handler for cond1 set @x = 4;
+set @x = '1';
+set @y = '2';
+BEGIN
+declare x char;
+declare y char;
+declare cur1 cursor for SELECT f1 from t2 limit 2, 1;
+declare continue handler for sqlstate '42000' set @x = 3;
+open cur1;
+fetch cur1 into y;
+close cur1;
+CALL nonsexist();
+SELECT x, y, @x;
+END;
+open cur1;
+fetch cur1 into y;
+close cur1;
+CALL nonsexist();
+set @v1 = @x;
+set @v2 = y;
+END//
+CALL sp1();
+x y @x
+NULL a 3
+Warnings:
+Warning 1265 Data truncated for column 'y' at row 3
+Warning 1265 Data truncated for column 'y' at row 1
+SELECT @v1, @v2;
+@v1 @v2
+4 a
+DROP PROCEDURE sp1;
+
+Testcase 4.2.28:
+--------------------------------------------------------------------------------
+set @x=0;
+set @y=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set session sort_buffer_size = 10 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+set @x = 4;
+set @y = 3;
+set global sort_buffer_size = 2 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+set @@sort_buffer_size = 10 * 1024 * 1024;
+SELECT @@sort_buffer_size;
+END//
+CALL sp1();
+@@sort_buffer_size
+10485760
+@@sort_buffer_size
+10485760
+@@sort_buffer_size
+10485760
+SELECT @x, @y;
+@x @y
+4 3
+
+Testcase 4.2.29:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx char default 'x';
+declare xy char default 'y';
+declare xz char default 'z';
+set @xx = xx, @xy = xy;
+set @xz = xz;
+SELECT @xx, @xy, @xz;
+END//
+CALL sp1();
+@xx @xy @xz
+x y z
+DROP PROCEDURE sp1;
+
+Testcase 4.2.30:
+--------------------------------------------------------------------------------
+set @xx=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx int;
+set xx = 'asd';
+set @xx = xx;
+SELECT @xx;
+END//
+CALL sp1();
+@xx
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx int;
+set xx = 5;
+set @xx = xx;
+SELECT @xx;
+END//
+CALL sp1();
+@xx
+5
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - a:
+--------------------------------------------------------------------------------
+set @xx=0;
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx char;
+set xx = 'temp';
+set @xx = xx;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'xx' at row 1
+SELECT @xx;
+@xx
+t
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - b:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx float;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0
+Warnings:
+Warning 1265 Data truncated for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx float;
+set xx = 1.6;
+SELECT xx;
+END//
+CALL sp1();
+xx
+1.6
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - c:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx datetime;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0000-00-00 00:00:00
+Warnings:
+Warning 1264 Out of range value adjusted for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx datetime;
+set xx = '2006-06-06 01:01:01';
+SELECT xx;
+END//
+CALL sp1();
+xx
+2006-06-06 01:01:01
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - d:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx varchar(20);
+set xx = "abcdefghijk";
+SELECT xx;
+END//
+CALL sp1();
+xx
+abcdefghijk
+DROP PROCEDURE sp1;
+
+Testcase 4.2.31 - e:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx tinyint;
+set xx = 'asd';
+SELECT xx;
+END//
+CALL sp1();
+xx
+0
+Warnings:
+Warning 1366 Incorrect integer value: 'asd' for column 'xx' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare xx tinyint;
+set xx = -125;
+SELECT xx;
+END//
+CALL sp1();
+xx
+-125
+DROP PROCEDURE sp1;
+
+Testcase 4.2.37:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+SELECT sal, f2 into x, y from t2 limit 1;
+set @x=x; set @y=y;
+END//
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x char ascii;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinytext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x text;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumtext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x longtext;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x blob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x longblob;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x binary;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x tinyint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x smallint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x mediumint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect integer value: 'a`' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x int unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x bigint unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x decimal unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1366 Incorrect decimal value: 'a` a` !?x???a` x???' for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x real unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float unsigned;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x float unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x date;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x time;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x datetime;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x timestamp;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year;
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year(3);
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x year(4);
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1264 Out of range value adjusted for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x enum("1enum", "2enum");
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x set("1set", "2set");
+SELECT f1 into x from t2 limit 1;
+END//
+CALL sp1();
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+DROP PROCEDURE sp1;
+
+Testcase 4.2.38:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare notable condition for sqlstate '42S02';
+declare continue handler for notable set @x2=1;
+set @x = 1;
+insert into t2(f1) values (1);
+set @x = 2;
+insert into t2(f1) values (1);
+set @x = 3;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+
+Testcase 4.2.39:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42000';
+declare cond1 condition for sqlstate '23000';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values(1);
+END//
+ERROR 42000: Duplicate condition: cond1
+
+Testcase 4.2.41:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '1';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '1'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '12';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '12'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '1234';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '1234'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123456';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123456'
+
+Testcase 4.2.42:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'abcdefghi';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: 'abcdefghi'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42000test';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '42000test'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '00000@#$%^&';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '00000@#$%^&'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 'null';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: 'null'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate ' ';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: ' '
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate 1234567890;
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 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 '1234567890;
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull ' at line 3
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '2005-03-03';
+declare continue handler for cond1 set @var2 = 1;
+insert into tnull values( 1);
+END//
+ERROR 42000: Bad SQLSTATE: '2005-03-03'
+
+Testcase 4.2.43:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '00000';
+declare continue handler for cond1 set @var2 = 1;
+set @x=1;
+SELECT @var2;
+END//
+CALL sp1();
+@var2
+NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.45:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare continue handler for sqlstate '23000' set @varr1 = 5;
+declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+DROP PROCEDURE IF EXISTS handler1;
+Warnings:
+Note 1305 PROCEDURE handler1 does not exist
+CREATE PROCEDURE handler1 ()
+BEGIN
+declare mycondition condition for sqlstate '23000';
+declare continue handler for mycondition set @varr3 = 7;
+declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+
+Testcase 4.2.46:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '1' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '1'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '12' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '12'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '123' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '123'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '1234' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '1234'
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '123456' set @var2 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: '123456'
+
+Testcase 4.2.47:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '42s0200test' set @var2 = 1;
+insert into tnull values( 1);
+SELECT @var2;
+END//
+ERROR 42000: Bad SQLSTATE: '42s0200test'
+
+Testcase 4.2.48:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '00000' set @var2 = 1;
+set @x=1;
+SELECT @var2;
+END//
+CALL sp1();
+@var2
+NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.52:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare cur1 cursor for SELECT f1, f2 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newlf1, newf3, newsal;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Duplicate cursor: cur1
+
+Testcase 4.2.53:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, lf1, f3, f4 into @w, @x, @y, @z from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newlf1, newf3, newsal;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Cursor SELECT must not have INTO
+
+Testcase 4.2.54:
+--------------------------------------------------------------------------------
+
+Testcase 4.2.55:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+ERROR 42000: Undefined CURSOR: cur1
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf3, newf4;
+set count = count - 1;
+END while;
+END;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is already open
+
+Testcase 4.2.56:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is already open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.57:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+declare cur2 cursor for SELECT f1, f2 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur2;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.59:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+open cur1;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf3, newf4;
+set count = count - 1;
+END while;
+open cur1;
+close cur1;
+END;
+close cur1;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.60:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+close cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+close cur1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+open cur1;
+END;
+fetch cur1 into newf1, newf2, newf3, newf4;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.62:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf2 char(20);
+declare newf1 date;
+declare cur1 cursor for SELECT f1, f3 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2;
+set @x = newf1;
+set @y = newf2;
+SELECT @x, @y;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+@x @y
+NULL NULL
+DROP PROCEDURE sp1;
+
+Testcase 4.2.63:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1()
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+close cur1;
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 0;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+open cur1;
+END;
+close cur1;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.64:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+BEGIN
+open cur1;
+start transaction;
+fetch cur1 into newf1, newf2, newf4, newf3;
+commit;
+fetch cur1 into newf1, newf2, newf4, newf3;
+END;
+END//
+CALL sp1();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+DROP PROCEDURE sp1;
+
+Testcase 4.2.65:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+BEGIN
+open cur1;
+fetch cur1 into newf1, newf2, newf4, newf3;
+rollback;
+fetch cur1 into newf1, newf2, newf4, newf3;
+commit;
+END;
+END//
+CALL sp1();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+DROP PROCEDURE sp1;
+
+Testcase 4.2.66:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+close cur1;
+fetch cur1 into newf1, newf2, newf4, newf3;
+END;
+END//
+CALL sp1();
+ERROR 24000: Cursor is not open
+DROP PROCEDURE sp1;
+
+Testcase 4.2.67:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+declare continue handler for sqlstate '02000' set done = 1;
+BEGIN
+open cur1;
+set count = count - 1;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+END//
+CALL sp1();
+DROP PROCEDURE sp1;
+
+Testcase 4.2.70:
+--------------------------------------------------------------------------------
+create table temp1( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+create table temp2( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+DROP PROCEDURE IF EXISTS sp1;
+Warnings:
+Note 1305 PROCEDURE sp1 does not exist
+CREATE PROCEDURE sp1( )
+BEGIN
+declare done int default 0;
+declare count integer default 20;
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf3 char(20);
+declare newf4 integer;
+declare newf21 char(20);
+declare newf22 char(20);
+declare newf23 char(20);
+declare newf24 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 7, 1;
+declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 15, 1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+BEGIN
+set count = 10;
+BEGIN
+open cur2;
+while count <> 0 do
+fetch cur1 into newf1, newf2, newf4, newf3;
+set count = count - 1;
+END while;
+END;
+insert into temp1 values(newf1, newf2, newf4, newf3);
+close cur1;
+END;
+BEGIN
+while count <> 0 do
+fetch cur2 into newf21, newf22, newf24, newf23;
+set count = count - 1;
+END while;
+END;
+insert into temp2 values(newf21, newf22, newf24, newf23);
+close cur2;
+END//
+CALL sp1();
+SELECT * from temp1;
+f1 f2 f3 f4
+agaaaaaaa agaaaaaaa -4993 agaaaaaaa
+SELECT * from temp2;
+f1 f2 f3 f4
+NULL NULL NULL NULL
+DROP PROCEDURE sp1;
+drop table temp1;
+drop table temp2;
+
+Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements
+. IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.3.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742(
+middleinitial CHAR,
+lastname VARCHAR(50),
+age_averylongfieldname_averylongname_1234569 int,
+COMMENT TEXT) ENGINE=innodb;
+INSERT INTO res_t3_itisalongname_1381742_itsaverylongname_1381742
+VALUES('a', 'aaaaaaaaaabbbbbbbbc', 0, 'default');
+CREATE PROCEDURE sp1(a int)
+BEGIN
+declare itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx char;
+declare itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx varchar(100);
+declare itisjustamediumsizeintintegervariablename integer;
+set itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx = 'b';
+set itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx = 'oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@%';
+set itisjustamediumsizeintintegervariablename = 5;
+set @comment='a';
+label1: loop
+if a>100 then
+set @comment='value of a is greater than 100';
+elseif a<100 then
+if a<50 then
+set @comment='value of a is less than 50';
+elseif a<25 then
+set @comment='value of a is less than 25';
+else
+set @comment='value of a is greater than 50 and less than 100';
+END if;
+else
+set @comment='value of a is 100';
+END if;
+if itisjustamediumsizeintintegervariablename = 0 then leave label1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+values( itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx,
+concat(itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx, ' ', a),
+a, @comment );
+set itisjustamediumsizeintintegervariablename = itisjustamediumsizeintintegervariablename - 1;
+iterate label1;
+END loop label1;
+END//
+CALL sp1(101);
+CALL sp1(100);
+CALL sp1(75);
+CALL sp1(40);
+CALL sp1(20);
+CALL sp1(-1);
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742
+ORDER BY middleinitial, lastname, age_averylongfieldname_averylongname_1234569;
+middleinitial lastname age_averylongfieldname_averylongname_1234569 COMMENT
+a aaaaaaaaaabbbbbbbbc 0 default
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% -1 -1 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 100 100 value of a is 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 101 101 value of a is greater than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 20 20 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 40 40 value of a is less than 50
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+b oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@% 75 75 value of a is greater than 50 and less than 100
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE sp1;
+
+Testcase 4.3.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2 = 'address';
+set count = 1;
+case when action = 'delete' then
+insert into t3 values(v1, v2, count);
+delete from t3 where f1=v1;
+when action = 'insert' then
+repeat
+insert into t3 values(v1, v2, count);
+set count = count + 1;
+until count > 5
+END repeat;
+set count = 1;
+label1: repeat
+insert into t3 values(v1, v2, count);
+if count > 5 then leave label1;
+END if;
+set count = count + 1;
+until count > 5
+END repeat;
+set count = 1;
+while count < 5 do
+insert into t3 values(v1, v2, count);
+set count = count + 1;
+END while;
+set count = 1;
+label1: while count < 5 do
+insert into t3 values(v1, v2, count);
+if count > 5 then leave label1;
+END if;
+set count = count + 1;
+END while;
+else
+set @dummystring = 'temp value';
+END case;
+END//
+CALL sp2( 'insert' );
+SELECT * from t3 where f3 <=5 && f3 >= 0;
+f1 f2 f3
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 5
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 5
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+f1 address 1
+f1 address 2
+f1 address 3
+f1 address 4
+SELECT count(*) from t3;
+count(*)
+28
+CALL sp2( 'delete' );
+SELECT count(*) from t3;
+count(*)
+10
+CALL sp2 ('test');
+SELECT @dummystring;
+@dummystring
+temp value
+DROP PROCEDURE sp2;
+
+Testcase 4.1.2:
+---------------
+Ensure that all sub-clauses that should not be supported are disallowed with
+an appropriate error message. (case)
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp3;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742 (name char, address varchar(50), age_averylongfieldname_averylongname_1234569 smallint);
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case label1;
+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 'case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsav' at line 3
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: BEGIN
+case
+action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+END label1;
+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 'then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set' at line 5
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+case
+when action = 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+then action = 'truncate' when
+truncate from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+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 'then action = 'truncate' when
+truncate from res_t3_itisalongname_1381742_itsave' at line 6
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2= 'address';
+set count = 1;
+case action
+when 'delete' then
+when 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+END case;
+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 'when 'delete' then
+delete from res_t3_itisalongname_1381742_itsaverylongname_13' at line 10
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare count int default 1;
+declare done int default 0;
+declare continue handler for sqlstate 'HY000' set done=1;
+label1: loop
+case
+when action = 'delete' then
+label3:BEGIN
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+END label3;
+when action = 'insert' then
+label2: while count < 10 do
+BEGIN
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+values('xxxxxxxxxxxxxxxxxxx', '1231230981(*&(*&)(*&(', count);
+if done=1 then
+set count=10;
+END if;
+END;
+END while label2;
+else
+set @dummystring = 'temp value';
+iterate label1;
+END case;
+if done=1 then
+leave label1;
+END if;
+END loop label1;
+SELECT count, done;
+END//
+DROP PROCEDURE sp3;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+if count > 10 then leave label1;
+else
+set count = count + 1;
+elseif count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+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 'elseif count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+EN' at line 9
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+else
+set count = count + 1;
+if count > 20 then
+leave label1;
+END if;
+iterate label1;
+END loop label1;
+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 'else
+set count = count + 1;
+if count > 20 then
+leave label1;
+END if;
+iterate lab' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+elseif count > 20 then
+leave label1;
+else
+set count=count+1;
+END if;
+iterate label1;
+END loop label1;
+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 'elseif count > 20 then
+leave label1;
+else
+set count=count+1;
+END if;
+iterate lab' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+set count = 1;
+label1: loop
+END if;
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;
+END loop label1;
+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 'END if;
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;' at line 6
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare i int default 10;
+if i > 20 then
+set i=25;
+END if
+declare count int;
+set count = 1;
+label1: loop
+if count > 20 then
+leave label1;
+else
+set count=count+1;
+iterate label1;
+END loop label1;
+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 'declare count int;
+set count = 1;
+label1: loop
+if count > 20 then
+leave label1;
+' at line 7
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4()
+BEGIN
+declare idummy int default 10;
+declare count int;
+set count = 1;
+label1: loop
+BEGIN
+if count < 20 then
+BEGIN
+declare idummy2 int default 10;
+set count=count+1;
+END;
+else
+BEGIN
+SELECT idummy2;
+leave label1;
+END;
+END if;
+iterate label1;
+END;
+END loop label1;
+END//
+CALL sp4();
+ERROR 42S22: Unknown column 'idummy2' in 'field list'
+DROP PROCEDURE sp4;
+
+Testcase 4.3.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5()
+BEGIN
+declare count integer default 1;
+set count = 1;
+case
+else
+set count = 10;
+when count = 1 then
+set count = count + 1;
+END case;
+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 'else
+set count = 10;
+when count = 1 then
+set count = count + 1;
+END case;
+END' at line 6
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+when case count = 1 then
+set count = 10;
+when count = 2 then
+set count = count + 1;
+END case;
+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 'when case count = 1 then
+set count = 10;
+when count = 2 then
+set count = count' at line 3
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+END case;
+when count = 1 then
+set count = 10;
+when count = 2 then
+set count = count + 1;
+END case;
+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 'case;
+when count = 1 then
+set count = 10;
+when count = 2 then
+set count = coun' at line 3
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5(count int)
+BEGIN
+when count = 1 then
+set count = 10;
+case when count = 2 then
+set count = count + 1;
+END case;
+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 'when count = 1 then
+set count = 10;
+case when count = 2 then
+set count = count' at line 3
+
+Testcase 4.3.6:
+---------------
+Ensure that all supported sub-clauses are supported only in the correct order (repeat).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+until count1 > 5
+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 'END repeat;
+until count1 > 5
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: until count1 > 5
+repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+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 'until count1 > 5
+repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1' at line 4
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: END repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+until count1 > 5
+repeat;
+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 'END repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+unt' at line 4
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+END repeat;
+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 'END repeat;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+if count1 > 5 then leave label1; END if;
+until count1 > 10;
+SELECT count1;
+END repeat;
+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 ';
+SELECT count1;
+END repeat;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6()
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1;
+until count1 < 0
+END repeat label1;
+SELECT count1;
+END//
+DROP PROCEDURE sp6;
+
+Testcase 4.3.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: loop
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+label1 iterate;
+END label1 loop;
+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 'iterate;
+END label1 loop;
+END' at line 7
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: END loop;
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+iterate label1;
+loop;
+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 'END loop;
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END ' at line 3
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7()
+BEGIN
+label1: iterate label1;
+loop
+set @dummystring = 'temp value';
+if count > 10 then leave label1;
+END if;
+END loop label1;
+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 'iterate label1;
+loop
+set @dummystring = 'temp value';
+if count > 10 then leave l' at line 3
+
+Testcase 4.3.8:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+do while v1 > 0
+set v1 = v1 - 1;
+END while;
+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 v1 > 0
+set v1 = v1 - 1;
+END while;
+END' at line 4
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+do v1 > 0 while
+set v1 = v1 - 1;
+END while;
+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 'do v1 > 0 while
+set v1 = v1 - 1;
+END while;
+END' at line 4
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8()
+BEGIN
+declare v1 int default 5;
+END while;
+set v1 = v1 - 1;
+while v1 > 0 do;
+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;
+set v1 = v1 - 1;
+while v1 > 0 do;
+END' at line 4
+
+Testcase 4.3.12:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp12;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp12( )
+BEGIN
+declare count1 integer default 1;
+declare count2 int;
+label1: loop
+if count1 > 2 then leave label1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+label2: loop
+if count2 > 2 then leave label2;
+END if;
+set count2 = count2 + 1;
+END loop label1;
+set count1 = count1 + 1;
+iterate label1;
+END loop label2;
+END//
+ERROR 42000: End-label label2 without match
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.13:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp13;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp13( )
+BEGIN
+declare count1 integer default 1;
+lable1: loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop;
+END//
+CALL sp13();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 1
+xyz pqr 2
+DROP PROCEDURE sp13;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.14:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp14;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp14( )
+BEGIN
+declare count1 integer default 1;
+loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop label1;
+END//
+ERROR 42000: LEAVE with no matching label: lable1
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 4.3.15:
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp15;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp15( )
+BEGIN
+declare count1 integer default 1;
+label1 loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate lable1;
+END loop label1;
+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 'loop
+if count1 > 2 then leave lable1;
+END if;
+insert into res_t3_itisalongname_1' at line 4
+
+Testcase 4.3.16:
+----------------
+Ensure that every beginning label with the same scope must be unique.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp16;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE PROCEDURE sp16( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+set count2 = 1;
+label1: repeat
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( xyz , pqr, count1);
+until count2 > 3
+END repeat label1;
+until count1 > 3
+END repeat label1;
+END//
+ERROR 42000: Redefining label label1
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+declare count3 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+label1: repeat
+set count2 = count2 + 1;
+SELECT count2;
+until count2 > 3
+END repeat label1;
+SELECT count1;
+until count1 > 3
+END repeat label1;
+label1: repeat
+set count3 = count3 + 1;
+SELECT count3;
+until count3 > 3
+END repeat label1;
+END//
+ERROR 42000: Redefining label label1
+
+Testcase 4.3.17:
+--------------------------------------------------------------------------------
+
+Testcase 4.3.18:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp18;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE PROCEDURE sp18( )
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat label2;
+END//
+ERROR 42000: End-label label2 without match
+
+Testcase 4.3.19:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp19;
+CREATE PROCEDURE sp19( )
+BEGIN
+declare count1 integer default 1;
+label1: repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat;
+END//
+CALL sp19();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+DROP PROCEDURE sp19;
+
+Testcase 4.3.20:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp20;
+CREATE PROCEDURE sp20( )
+BEGIN
+declare count1 integer default 1;
+repeat
+set count1 = count1 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count1 < 3
+END repeat label1;
+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 'label1;
+END' at line 7
+
+Testcase 4.3.21:
+--------------------------------------------------------------------------------
+
+Testcase 4.3.22:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+label1: while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while label2;
+END while;
+END//
+ERROR 42000: End-label label2 without match
+
+Testcase 4.3.23:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while label1;
+END while;
+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 'label1;
+END while;
+END' at line 11
+
+Testcase 4.3.25:
+--------------------------------------------------------------------------------
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+while count1 < 3 do
+set count1 = count1 + 1;
+set count2 = 1;
+label1: while count2 < 3 do
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+END while;
+END while;
+END//
+CALL sp25 ();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+xyz pqr 2
+xyz pqr 3
+xyz pqr 3
+DROP PROCEDURE sp25;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Section 3.1.4 - Checks for the global nature of stored procedures:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.4.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP DATABASE IF EXISTS d40401;
+CREATE PROCEDURE sp1 ( n char(20) )
+BEGIN
+SELECT n;
+END//
+CREATE DATABASE d40401;
+USE d40401;
+CALL db_storedproc.sp1('abcd');
+n
+abcd
+USE db_storedproc;
+DROP PROCEDURE sp1;
+DROP DATABASE d40401;
+
+Testcase 4.4.2:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+DROP DATABASE IF EXISTS d40402;
+CREATE FUNCTION fn1(n int) returns int
+BEGIN
+declare a int;
+set a = 9 * n;
+return a;
+END//
+CREATE DATABASE d40402;
+USE d40402;
+SELECT db_storedproc.fn1(100);
+db_storedproc.fn1(100)
+900
+SELECT db_storedproc.fn1(1000);
+db_storedproc.fn1(1000)
+9000
+CREATE FUNCTION db_storedproc.fn11(n int) returns int
+BEGIN
+declare a int;
+set a = 9 * n;
+return a;
+END//
+SELECT db_storedproc.fn11(100);
+db_storedproc.fn11(100)
+900
+SELECT db_storedproc.fn11(1000);
+db_storedproc.fn11(1000)
+9000
+USE db_storedproc;
+DROP FUNCTION fn1;
+DROP FUNCTION fn11;
+DROP DATABASE d40402;
+
+Testcase 4.4.3:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+CREATE DATABASE d1;
+CREATE DATABASE d2;
+USE d1;
+create table res_t41(a char(5), b char(10));
+insert into res_t41 values('abcde', 'a!@#$%^&*(');
+USE d2;
+create table res_t42(a char(5), b char(10));
+USE d1;
+CREATE PROCEDURE sp2(n char (20))
+BEGIN
+SELECT res_t41.a, res_t41.b into @a, @b from res_t41 where res_t41.b = n;
+insert into d2.res_t42 values (@a, @b);
+END//
+USE d2;
+CALL d1.sp2('a!@#$%^&*(');
+show warnings;
+Level Code Message
+SELECT * from d1.res_t41;
+a b
+abcde a!@#$%^&*(
+SELECT * from res_t42;
+a b
+abcde a!@#$%^&*(
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+Testcase 4.4.4:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+CREATE PROCEDURE sp3()
+BEGIN
+USE d1;
+END//
+ERROR 0A000: USE is not allowed in stored procedures
+USE db_storedproc;
+DROP DATABASE d1;
+
+Testcase 4.4.5:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+create table t43(a char(5), b char(10));
+insert into t43 values('abcde', 'a!@#$%^&*(');
+CREATE PROCEDURE d1.sp4()
+SELECT * from d1.t43;
+SELECT * from mysql.proc where specific_name = 'sp4';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 sp4 PROCEDURE sp4 SQL CONTAINS_SQL NO DEFINER SELECT * from d1.t43 root@localhost modified created
+USE db_storedproc;
+DROP DATABASE d1;
+CREATE DATABASE d1;
+USE d1;
+create table t44(a char(5), b char(10));
+SELECT * from mysql.proc where specific_name = 'sp4';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+USE db_storedproc;
+DROP DATABASE d1;
+
+Testcase 4.4.6:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5()
+SELECT * from db_storedproc.t4 limit 0, 10;
+SELECT db from mysql.proc where specific_name = 'sp5';
+db
+db_storedproc
+DROP PROCEDURE sp5;
+
+Testcase 4.4.7:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+drop table IF EXISTS t46;
+DROP PROCEDURE IF EXISTS sp6;
+create table t46(f1 char(20), f2 char(20));
+insert into t46 values ('abcd', 'wxyz');
+CREATE PROCEDURE db_storedproc.sp6()
+SELECT * from db_storedproc.t4 limit 0, 10;
+SELECT db from mysql.proc where specific_name = 'sp6';
+db
+db_storedproc
+drop table t46;
+DROP PROCEDURE sp6;
+
+Testcase 4.4.8:
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+CREATE DATABASE d1;
+CREATE DATABASE d2;
+USE d1;
+CREATE PROCEDURE sp8 ( n char(20) ) sql security definer comment 'initial'
+ SELECT * from t1 where t1.f1 = n;
+USE d2;
+alter procedure d1.sp8 sql security definer comment 'updated';
+SELECT * from mysql.proc where specific_name='sp8' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 sp8 PROCEDURE sp8 SQL CONTAINS_SQL NO DEFINER n char(20) SELECT * from t1 where t1.f1 = n root@localhost modified created updated
+
+Testcase 4.4.9:
+--------------------------------------------------------------------------------
+USE d1;
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+CREATE FUNCTION d1.fn2(n int) returns int sql security invoker comment 'initial'
+BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END//
+USE d2;
+alter function d1.fn2 sql security definer comment 'updated';
+SELECT * from mysql.proc where specific_name='fn2' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+d1 fn2 FUNCTION fn2 SQL CONTAINS_SQL NO DEFINER n int int(11) BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END root@localhost modified created updated
+
+Testcase 4.4.10:
+--------------------------------------------------------------------------------
+USE d1;
+CREATE PROCEDURE sp9 ( n char(20) )
+SELECT * from t1 where t1.f1 = n;
+USE d2;
+DROP PROCEDURE d1.sp9;
+SELECT * from mysql.proc where specific_name='sp9' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+
+Testcase 4.4.11:
+--------------------------------------------------------------------------------
+USE d1;
+CREATE FUNCTION d1.fn3(n int) returns int
+BEGIN
+declare a int;
+set a = 0.9 * n;
+return a;
+END//
+USE d2;
+DROP FUNCTION d1.fn3;
+SELECT * from mysql.proc where specific_name='fn3' and db='d1';
+db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+Section 3.1.5 - Parameter use checks:
+Functions with all data types
+--------------------------------------------------------------------------------
+SELECT 1 as 'bug_dec_num';
+bug_dec_num
+1
+
+.
+FIXME: There are differences with datatypes DECIMAL and NUMERIC if large
+FIXME: exponent values are used. The diffs are shown only on some machines like
+FIXME: AIX52 and HPUX11. Until this has been solved we use numbers that
+FIXME: *should* be equal to the exponent representation but have no exponents
+FIXME: and use the specified count of *0*s instead.
+FIXME: In the source file these tests are marked with the comment hpux11
+.
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS d1;
+CREATE DATABASE d1;
+USE d1;
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1( f1 bigint) returns bigint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn1(-9.22e+18);
+fn1(-9.22e+18)
+-9220000000000000000
+DROP FUNCTION IF EXISTS fn2;
+CREATE FUNCTION fn2( f1 bigint unsigned) returns bigint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn2(1.84e+19);
+fn2(1.84e+19)
+-46744073709551616
+DROP FUNCTION IF EXISTS fn3;
+CREATE FUNCTION fn3( f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn3(1.84e+17);
+fn3(1.84e+17)
+184000000000000000
+DROP FUNCTION IF EXISTS fn4;
+CREATE FUNCTION fn4( f1 bigint zerofill) returns bigint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn4(-9.22e+15);
+fn4(-9.22e+15)
+0
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn5;
+CREATE FUNCTION fn5( f1 decimal) returns decimal
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn5(-1.00e+09);
+fn5(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn6;
+CREATE FUNCTION fn6( f1 decimal (0)) returns decimal (0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn6(-1.00e+09);
+fn6(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn7;
+CREATE FUNCTION fn7( f1 decimal (0) unsigned) returns decimal (0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn7(99999999999);
+fn7(99999999999)
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn8;
+CREATE FUNCTION fn8( f1 decimal (0) unsigned zerofill) returns decimal (0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn8(999999999);
+fn8(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn9;
+CREATE FUNCTION fn9( f1 decimal (0) zerofill) returns decimal (0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn9(-1.00e+09);
+fn9(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn10;
+CREATE FUNCTION fn10( f1 decimal (0, 0)) returns decimal (0, 0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn10(-1.00e+09);
+fn10(-1.00e+09)
+-1000000000
+DROP FUNCTION IF EXISTS fn11;
+CREATE FUNCTION fn11( f1 decimal (0, 0) unsigned) returns decimal (0, 0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn11(99999999999);
+fn11(99999999999)
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn12;
+CREATE FUNCTION fn12( f1 decimal (0, 0) unsigned zerofill) returns decimal (0, 0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn12(999999999);
+fn12(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn13;
+CREATE FUNCTION fn13( f1 decimal (0, 0) zerofill) returns decimal (0, 0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn13(-1.00e+09);
+fn13(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn14;
+CREATE FUNCTION fn14( f1 decimal (63, 30)) returns decimal (63, 30)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn14(-1.00e+21);
+fn14(-1.00e+21)
+-1000000000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn15;
+CREATE FUNCTION fn15( f1 decimal (63, 30) unsigned) returns decimal (63, 30) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn15(1.00e+16);
+fn15(1.00e+16)
+10000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn16;
+CREATE FUNCTION fn16( f1 decimal (63, 30) unsigned zerofill) returns decimal (63, 30) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn16(1.00e+16);
+fn16(1.00e+16)
+000000000000000010000000000000000.000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn17;
+CREATE FUNCTION fn17( f1 decimal (63, 30) zerofill) returns decimal (63, 30) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn17(-1.00e+21);
+fn17(-1.00e+21)
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn18_d;
+CREATE FUNCTION fn18_d( f1 decimal (64)) returns decimal (64)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn18_d( -1000000000000000000000000000000 );
+fn18_d( -1000000000000000000000000000000 )
+-1000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn19_du;
+CREATE FUNCTION fn19_du( f1 decimal (64) unsigned) returns decimal (64) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn19_du( 100000000000000000000 );
+fn19_du( 100000000000000000000 )
+100000000000000000000
+DROP FUNCTION IF EXISTS fn20_duz;
+CREATE FUNCTION fn20_duz( f1 decimal (64) unsigned zerofill) returns decimal (64) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn20_duz( 1000000000000000000000000 );
+fn20_duz( 1000000000000000000000000 )
+0000000000000000000000000000000000000001000000000000000000000000
+DROP FUNCTION IF EXISTS fn21_d_z;
+CREATE FUNCTION fn21_d_z( f1 decimal (64) zerofill) returns decimal (64) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn21_d_z(1.00e+00);
+fn21_d_z(1.00e+00)
+0000000000000000000000000000000000000000000000000000000000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn22;
+CREATE FUNCTION fn22( f1 decimal unsigned) returns decimal unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn22(1.00e+00);
+fn22(1.00e+00)
+10
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn23;
+CREATE FUNCTION fn23( f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn23(1.00e+00);
+fn23(1.00e+00)
+0000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn24;
+CREATE FUNCTION fn24( f1 decimal zerofill) returns decimal zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn24(-1.00e+09);
+fn24(-1.00e+09)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn25;
+CREATE FUNCTION fn25( f1 double) returns double
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn25(1.00e+00);
+fn25(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn26;
+CREATE FUNCTION fn26( f1 double unsigned) returns double unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn26(1.00e+00);
+fn26(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn27;
+CREATE FUNCTION fn27( f1 double unsigned zerofill) returns double unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn27(1.00e+00);
+fn27(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn28;
+CREATE FUNCTION fn28( f1 double zerofill) returns double zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn28(1.00e+00);
+fn28(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn29;
+CREATE FUNCTION fn29( f1 float) returns float
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn29(1.00e+00);
+fn29(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn30;
+CREATE FUNCTION fn30( f1 float unsigned) returns float unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn30(1.00e+00);
+fn30(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn31;
+CREATE FUNCTION fn31( f1 float unsigned zerofill) returns float unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn31(1.00e+00);
+fn31(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn32;
+CREATE FUNCTION fn32( f1 float zerofill) returns float zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn32(1.00e+00);
+fn32(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn33;
+CREATE FUNCTION fn33( f1 float(0)) returns float(0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn33(1.00e+00);
+fn33(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn34;
+CREATE FUNCTION fn34( f1 float(0) unsigned) returns float(0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn34(1.00e+00);
+fn34(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn35;
+CREATE FUNCTION fn35( f1 float(0) unsigned zerofill) returns float(0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn35(1.00e+00);
+fn35(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn36;
+CREATE FUNCTION fn36( f1 float(0) zerofill) returns float(0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn36(1.00e+00);
+fn36(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn37;
+CREATE FUNCTION fn37( f1 float(23)) returns float(23)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn37(1.00e+00);
+fn37(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn38;
+CREATE FUNCTION fn38( f1 float(23) unsigned) returns float(23) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn38(1.00e+00);
+fn38(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn39;
+CREATE FUNCTION fn39( f1 float(23) unsigned zerofill) returns float(23) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn39(1.00e+00);
+fn39(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn40;
+CREATE FUNCTION fn40( f1 float(23) zerofill) returns float(23) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn40(1.00e+00);
+fn40(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn41;
+CREATE FUNCTION fn41( f1 float(24)) returns float(24)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn41(1.00e+00);
+fn41(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn42;
+CREATE FUNCTION fn42( f1 float(24) unsigned) returns float(24) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn42(1.00e+00);
+fn42(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn43;
+CREATE FUNCTION fn43( f1 float(24) unsigned zerofill) returns float(24) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn43(1.00e+00);
+fn43(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn44;
+CREATE FUNCTION fn44( f1 float(24) zerofill) returns float(24) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn44(1.00e+00);
+fn44(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn45;
+CREATE FUNCTION fn45( f1 float(53)) returns float(53)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn45(1.00e+00);
+fn45(1.00e+00)
+1
+DROP FUNCTION IF EXISTS fn46;
+CREATE FUNCTION fn46( f1 float(53) unsigned) returns float(53) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn46(1.00e+00);
+fn46(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn47;
+CREATE FUNCTION fn47( f1 float(53) unsigned zerofill) returns float(53) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn47(1.00e+00);
+fn47(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn48;
+CREATE FUNCTION fn48( f1 float(53) zerofill) returns float(53) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn48(1.00e+00);
+fn48(1.00e+00)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn49;
+CREATE FUNCTION fn49( f1 int) returns int
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn49(-2.15e+09);
+fn49(-2.15e+09)
+-2147483638
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn50;
+CREATE FUNCTION fn50( f1 int unsigned) returns int unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn50(4.29e+09);
+fn50(4.29e+09)
+4290000000
+DROP FUNCTION IF EXISTS fn51;
+CREATE FUNCTION fn51( f1 int unsigned zerofill) returns int unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn51(4.29e+09);
+fn51(4.29e+09)
+4290000000
+DROP FUNCTION IF EXISTS fn52;
+CREATE FUNCTION fn52( f1 int zerofill) returns int zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn52(2.15e+08);
+fn52(2.15e+08)
+215000000
+DROP FUNCTION IF EXISTS fn53;
+CREATE FUNCTION fn53( f1 mediumint) returns mediumint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn53(-8388600);
+fn53(-8388600)
+-8388598
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn54;
+CREATE FUNCTION fn54( f1 mediumint unsigned) returns mediumint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn54(16777201);
+fn54(16777201)
+16777202
+DROP FUNCTION IF EXISTS fn55;
+CREATE FUNCTION fn55( f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn55(16777210);
+fn55(16777210)
+16777210
+DROP FUNCTION IF EXISTS fn56;
+CREATE FUNCTION fn56( f1 mediumint zerofill) returns mediumint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn56(-8388601);
+fn56(-8388601)
+16777215
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn57;
+CREATE FUNCTION fn57( f1 numeric) returns numeric
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn57(-999999999);
+fn57(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn58;
+CREATE FUNCTION fn58( f1 numeric (0)) returns numeric (0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn58(-999999999);
+fn58(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn59;
+CREATE FUNCTION fn59( f1 numeric (0) unsigned) returns numeric (0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn59(9999999999);
+fn59(9999999999)
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn60;
+CREATE FUNCTION fn60( f1 numeric (0) unsigned zerofill) returns numeric (0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn60(99999999);
+fn60(99999999)
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn61;
+CREATE FUNCTION fn61( f1 numeric (0) zerofill) returns numeric (0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn61(-99999999);
+fn61(-99999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn62;
+CREATE FUNCTION fn62( f1 numeric (0, 0)) returns numeric (0, 0)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn62(-999999999);
+fn62(-999999999)
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn63;
+CREATE FUNCTION fn63( f1 numeric (0, 0) unsigned) returns numeric (0, 0) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn63(9999999999);
+fn63(9999999999)
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn64;
+CREATE FUNCTION fn64( f1 numeric (0, 0) unsigned zerofill) returns numeric (0, 0) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn64(99999999);
+fn64(99999999)
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn65;
+CREATE FUNCTION fn65( f1 numeric (0, 0) zerofill) returns numeric (0, 0) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn65(-99999999);
+fn65(-99999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn66;
+CREATE FUNCTION fn66( f1 numeric (63, 30)) returns numeric (63, 30)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn66(-1e+36);
+fn66(-1e+36)
+-999999999999999999999999999999989.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn67;
+CREATE FUNCTION fn67( f1 numeric (63, 30) unsigned) returns numeric (63, 30) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn67(1e+36);
+fn67(1e+36)
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn68;
+CREATE FUNCTION fn68( f1 numeric (63, 30) unsigned zerofill) returns numeric (63, 30) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn68(1e+36);
+fn68(1e+36)
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn69;
+CREATE FUNCTION fn69( f1 numeric (63, 30) zerofill) returns numeric (63, 30) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn69(-1e+36);
+fn69(-1e+36)
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn70_n;
+CREATE FUNCTION fn70_n( f1 numeric (64)) returns numeric (64)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn70_n( -1000000000000000000000000000000 );
+fn70_n( -1000000000000000000000000000000 )
+-1000000000000000000000000000000
+SELECT fn70_n( -10000000000000000000000000000000000000000 );
+fn70_n( -10000000000000000000000000000000000000000 )
+-10000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn71_nu;
+CREATE FUNCTION fn71_nu( f1 numeric (64) unsigned) returns numeric (64) unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn71_nu( 10000000000000000000000000000000000000000 );
+fn71_nu( 10000000000000000000000000000000000000000 )
+10000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn72_nuz;
+CREATE FUNCTION fn72_nuz( f1 numeric (64) unsigned zerofill) returns numeric (64) unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn72_nuz( 10000000000000000000000000000000000000000 );
+fn72_nuz( 10000000000000000000000000000000000000000 )
+0000000000000000000000010000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn73_n_z;
+CREATE FUNCTION fn73_n_z( f1 numeric (64) zerofill) returns numeric (64) zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn73_n_z( 10000000000000000000000000000000000000000 );
+fn73_n_z( 10000000000000000000000000000000000000000 )
+0000000000000000000000010000000000000000000000000000000000000000
+DROP FUNCTION IF EXISTS fn74;
+CREATE FUNCTION fn74( f1 numeric unsigned) returns numeric unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn74(999999999);
+fn74(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn75;
+CREATE FUNCTION fn75( f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn75(999999999);
+fn75(999999999)
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn76;
+CREATE FUNCTION fn76( f1 numeric zerofill) returns numeric zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn76(-999999999);
+fn76(-999999999)
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn77;
+CREATE FUNCTION fn77( f1 real) returns real
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn77(1.1);
+fn77(1.1)
+1.1
+DROP FUNCTION IF EXISTS fn78;
+CREATE FUNCTION fn78( f1 real unsigned) returns real unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn78(1.1);
+fn78(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn79;
+CREATE FUNCTION fn79( f1 real unsigned zerofill) returns real unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn79(1.1);
+fn79(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn80;
+CREATE FUNCTION fn80( f1 real zerofill) returns real zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn80(1.1);
+fn80(1.1)
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn81;
+CREATE FUNCTION fn81( f1 smallint) returns smallint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn81(-32701);
+fn81(-32701)
+-32702
+DROP FUNCTION IF EXISTS fn82;
+CREATE FUNCTION fn82( f1 smallint unsigned) returns smallint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn82(65531);
+fn82(65531)
+65532
+DROP FUNCTION IF EXISTS fn83;
+CREATE FUNCTION fn83( f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn83(65531);
+fn83(65531)
+65532
+DROP FUNCTION IF EXISTS fn84;
+CREATE FUNCTION fn84( f1 smallint zerofill) returns smallint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn84(-32601);
+fn84(-32601)
+65535
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn85;
+CREATE FUNCTION fn85( f1 tinyint) returns tinyint
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn85(-115);
+fn85(-115)
+-116
+DROP FUNCTION IF EXISTS fn86;
+CREATE FUNCTION fn86( f1 tinyint unsigned) returns tinyint unsigned
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn86(251);
+fn86(251)
+252
+DROP FUNCTION IF EXISTS fn87;
+CREATE FUNCTION fn87( f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn87(201);
+fn87(201)
+202
+DROP FUNCTION IF EXISTS fn88;
+CREATE FUNCTION fn88( f1 tinyint zerofill) returns tinyint zerofill
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+END//
+SELECT fn88(-101);
+fn88(-101)
+255
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn89;
+CREATE FUNCTION fn89( f1 enum('1enum', '2enum')) returns enum('1enum', '2enum')
+BEGIN
+if f1 eq "1enum" then
+set f1 = '2enum';
+else
+set f1 = '1enum';
+END if;
+return f1;
+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 'eq "1enum" then
+set f1 = '2enum';
+else
+set f1 = '1enum';
+END if;
+return f1;
+END' at line 3
+SELECT fn89( '1enum');
+ERROR 42000: FUNCTION d1.fn89 does not exist
+DROP FUNCTION IF EXISTS fn90;
+CREATE FUNCTION fn90( f1 set("1set", "2set")) returns set("1set", "2set")
+BEGIN
+if(f1 == "1set") then
+set f1 = "2set";
+else
+set f1 = "1set";
+END if;
+return f1;
+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 '== "1set") then
+set f1 = "2set";
+else
+set f1 = "1set";
+END if;
+return f1;
+END' at line 3
+SELECT fn90( '1set');
+ERROR 42000: FUNCTION d1.fn90 does not exist
+DROP FUNCTION IF EXISTS fn91;
+CREATE FUNCTION fn91( f1 date) returns date
+BEGIN
+set f1 = adddate(f1, interval 31 day);
+return f1;
+END//
+SELECT fn91('1997-12-31');
+fn91('1997-12-31')
+1998-01-31
+DROP FUNCTION IF EXISTS fn92;
+CREATE FUNCTION fn92( f1 time) returns time
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998');
+return f1;
+END//
+SELECT fn92( '23:59:59.999999');
+fn92( '23:59:59.999999')
+25:59:59
+DROP FUNCTION IF EXISTS fn93;
+CREATE FUNCTION fn93( f1 datetime) returns datetime
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002');
+return f1;
+END//
+SELECT fn93('1997-12-31 23:59:59.999999');
+fn93('1997-12-31 23:59:59.999999')
+1998-01-02 01:01:00
+DROP FUNCTION IF EXISTS fn94;
+CREATE FUNCTION fn94( f1 char) returns char
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn94( 'h');
+fn94( 'h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn95;
+CREATE FUNCTION fn95( f1 char ascii) returns char ascii
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn95('h');
+fn95('h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn96;
+CREATE FUNCTION fn96( f1 char binary) returns char binary
+BEGIN
+set f1 = concat('a', f1);
+return f1;
+END//
+SELECT fn96( 'h');
+fn96( 'h')
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP FUNCTION IF EXISTS fn97;
+CREATE FUNCTION fn97( f1 longtext) returns longtext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn97( 'world');
+fn97( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn98;
+CREATE FUNCTION fn98( f1 mediumtext) returns mediumtext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn98( 'world');
+fn98( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn99;
+CREATE FUNCTION fn99( f1 text) returns text
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn99( 'world');
+fn99( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn100;
+CREATE FUNCTION fn100( f1 tinytext) returns tinytext
+BEGIN
+set f1 = concat('hello', f1);
+return f1;
+END//
+SELECT fn100( 'world');
+fn100( 'world')
+helloworld
+DROP FUNCTION IF EXISTS fn101;
+CREATE FUNCTION fn101( f1 year) returns year
+BEGIN
+set f1 = f1 + 10;
+return f1;
+END//
+SELECT fn101(51);
+fn101(51)
+2061
+DROP FUNCTION IF EXISTS fn102;
+CREATE FUNCTION fn102( f1 year(4)) returns year(4)
+BEGIN
+set f1 = f1 + 51;
+return f1;
+END//
+SELECT fn102(1982);
+fn102(1982)
+2033
+DROP FUNCTION IF EXISTS fn103;
+CREATE FUNCTION fn103( f1 geometrycollection) returns geometrycollection
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\
+
+DROP FUNCTION IF EXISTS fn104;
+CREATE FUNCTION fn104( f1 linestring) returns linestring
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@')
+
+DROP FUNCTION IF EXISTS fn105;
+CREATE FUNCTION fn105( f1 point) returns point
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@')
+
+DROP FUNCTION IF EXISTS fn106;
+CREATE FUNCTION fn106( f1 polygon) returns polygon
+BEGIN
+set f1 = f1;
+return f1;
+END//
+SELECT fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\
+
+DROP FUNCTION IF EXISTS fn107;
+CREATE FUNCTION fn107( f1 timestamp) returns timestamp
+BEGIN
+set f1 = now();
+return f1;
+END//
+SELECT fn107(20050510080451);
+fn107(20050510080451)
+returned
+USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( f1 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp1(-9.22e+18);
+f1
+-9220000000000000000
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( f1 bigint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp2(1.84e+19);
+f1
+18400000000000000000
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( f1 bigint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp3(1.84e+17);
+f1
+00184000000000000000
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4( f1 bigint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp4(-9.22e+15);
+f1
+00000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp5;
+CREATE PROCEDURE sp5( f1 decimal)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: default (10) for DECIMAL not checked, decimal digits shown although not defined
+CALL sp5(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( f1 decimal (0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp6(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp7;
+CREATE PROCEDURE sp7( f1 decimal (0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp7(99999999999);
+f1
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8( f1 decimal (0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp8(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp9;
+CREATE PROCEDURE sp9( f1 decimal (0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp9(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp10;
+CREATE PROCEDURE sp10( f1 decimal (0, 0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp10(-1.00e+09);
+f1
+-1000000000
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11( f1 decimal (0, 0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp11(99999999999);
+f1
+9999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp12;
+CREATE PROCEDURE sp12( f1 decimal (0, 0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp12(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp13;
+CREATE PROCEDURE sp13( f1 decimal (0, 0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp13(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp14;
+CREATE PROCEDURE sp14( f1 decimal (63, 30))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp14(-1.00e+21);
+f1
+-1000000000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp15;
+CREATE PROCEDURE sp15( f1 decimal (63, 30) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp15(1.00e+16);
+f1
+10000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( f1 decimal (63, 30) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp16(1.00e+16);
+f1
+000000000000000010000000000000000.000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp17;
+CREATE PROCEDURE sp17( f1 decimal (63, 30) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: wrong number of decimal digits shown
+CALL sp17(-1.00e+21);
+f1
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp18_d;
+CREATE PROCEDURE sp18_d( f1 decimal (64))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp18_d( -1000000000000000000000000000000 );
+f1
+-1000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp19_du;
+CREATE PROCEDURE sp19_du( f1 decimal (64) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp19_du( 100000000000000000000 );
+f1
+100000000000000000000
+CALL sp19_du( 1000000000000000000000000 );
+f1
+1000000000000000000000000
+DROP PROCEDURE IF EXISTS sp20_duz;
+CREATE PROCEDURE sp20_duz( f1 decimal (64) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp20_duz( 100000000000000000000 );
+f1
+0000000000000000000000000000000000000000000100000000000000000000
+CALL sp20_duz( 1000000000000000000000000 );
+f1
+0000000000000000000000000000000000000001000000000000000000000000
+DROP PROCEDURE IF EXISTS sp21;
+CREATE PROCEDURE sp21( f1 decimal (64) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp21(1.00e+00);
+f1
+0000000000000000000000000000000000000000000000000000000000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( f1 decimal unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp22(1.00e+00);
+f1
+10
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( f1 decimal unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp23(1.00e+00);
+f1
+0000000010
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp24;
+CREATE PROCEDURE sp24( f1 decimal zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+FIXME: Following test contains a known problem that will be checked again
+FIXME: after WL#2984 has been completed:
+FIXME: decimal digits shown although not defined
+CALL sp24(-1.00e+09);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( f1 double)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp25(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp26;
+CREATE PROCEDURE sp26( f1 double unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp26(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp27;
+CREATE PROCEDURE sp27( f1 double unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp27(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp28;
+CREATE PROCEDURE sp28( f1 double zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp28(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp29;
+CREATE PROCEDURE sp29( f1 float)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp29(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp30;
+CREATE PROCEDURE sp30( f1 float unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp30(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp31;
+CREATE PROCEDURE sp31( f1 float unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp31(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp32;
+CREATE PROCEDURE sp32( f1 float zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp32(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp33;
+CREATE PROCEDURE sp33( f1 float(0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp33(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp34;
+CREATE PROCEDURE sp34( f1 float(0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp34(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp35;
+CREATE PROCEDURE sp35( f1 float(0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp35(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp36;
+CREATE PROCEDURE sp36( f1 float(0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp36(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp37;
+CREATE PROCEDURE sp37( f1 float(23))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp37(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp38;
+CREATE PROCEDURE sp38( f1 float(23) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp38(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp39;
+CREATE PROCEDURE sp39( f1 float(23) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp39(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp40;
+CREATE PROCEDURE sp40( f1 float(23) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp40(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp41;
+CREATE PROCEDURE sp41( f1 float(24))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp41(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp42;
+CREATE PROCEDURE sp42( f1 float(24) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp42(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp43;
+CREATE PROCEDURE sp43( f1 float(24) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp43(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp44;
+CREATE PROCEDURE sp44( f1 float(24) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp44(1.00e+00);
+f1
+000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp45;
+CREATE PROCEDURE sp45( f1 float(53))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp45(1.00e+00);
+f1
+1
+DROP PROCEDURE IF EXISTS sp46;
+CREATE PROCEDURE sp46( f1 float(53) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp46(1.00e+00);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp47;
+CREATE PROCEDURE sp47( f1 float(53) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp47(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp48;
+CREATE PROCEDURE sp48( f1 float(53) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp48(1.00e+00);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp49;
+CREATE PROCEDURE sp49( f1 int)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp49(-2.15e+09);
+f1
+-2147483638
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp50;
+CREATE PROCEDURE sp50( f1 int unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp50(4.29e+09);
+f1
+4290000000
+DROP PROCEDURE IF EXISTS sp51;
+CREATE PROCEDURE sp51( f1 int unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp51(4.29e+09);
+f1
+4290000000
+DROP PROCEDURE IF EXISTS sp52;
+CREATE PROCEDURE sp52( f1 int zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp52(2.15e+08);
+f1
+0215000000
+DROP PROCEDURE IF EXISTS sp53;
+CREATE PROCEDURE sp53( f1 mediumint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp53(-8388600);
+f1
+-8388598
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp54;
+CREATE PROCEDURE sp54( f1 mediumint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp54(16777201);
+f1
+16777202
+DROP PROCEDURE IF EXISTS sp55;
+CREATE PROCEDURE sp55( f1 mediumint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp55(16777210);
+f1
+16777210
+DROP PROCEDURE IF EXISTS sp56;
+CREATE PROCEDURE sp56( f1 mediumint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp56(-8388601);
+f1
+16777215
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp57;
+CREATE PROCEDURE sp57( f1 numeric)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp57(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp58;
+CREATE PROCEDURE sp58( f1 numeric (0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp58(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp59;
+CREATE PROCEDURE sp59( f1 numeric (0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp59(9999999999);
+f1
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp60;
+CREATE PROCEDURE sp60( f1 numeric (0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp60(99999999);
+f1
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp61;
+CREATE PROCEDURE sp61( f1 numeric (0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp61(-99999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp62;
+CREATE PROCEDURE sp62( f1 numeric (0, 0))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp62(-999999999);
+f1
+-1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp63;
+CREATE PROCEDURE sp63( f1 numeric (0, 0) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp63(9999999999);
+f1
+9999999999
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp64;
+CREATE PROCEDURE sp64( f1 numeric (0, 0) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp64(99999999);
+f1
+0100000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp65;
+CREATE PROCEDURE sp65( f1 numeric (0, 0) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp65(-99999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp66_n;
+CREATE PROCEDURE sp66_n( f1 numeric (63, 30))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp66_n( -1000000000000000000000000000000000000 );
+f1
+-999999999999999999999999999999989.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp67_nu;
+CREATE PROCEDURE sp67_nu( f1 numeric (63, 30) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp67_nu( 1000000000000000000000000000000000000 );
+f1
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp68_nuz;
+CREATE PROCEDURE sp68_nuz( f1 numeric (63, 30) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp68_nuz( 1000000000000000000000000000000000000 );
+f1
+999999999999999999999999999999999.999999999999999999999999999999
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Note 1265 Data truncated for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp69_n_z;
+CREATE PROCEDURE sp69_n_z( f1 numeric (63, 30) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp69_n_z( -1000000000000000000000000000000000000 );
+f1
+000000000000000000000000000000010.000000000000000000000000000000
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp70_n;
+CREATE PROCEDURE sp70_n( f1 numeric (64))
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp70_n( -10000000000000000000000000000000000000000 );
+f1
+-10000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp71_nu;
+CREATE PROCEDURE sp71_nu( f1 numeric (64) unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp71_nu( 10000000000000000000000000000000000000000 );
+f1
+10000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp72_nuz;
+CREATE PROCEDURE sp72_nuz( f1 numeric (64) unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp72_nuz( 10000000000000000000000000000000000000000 );
+f1
+0000000000000000000000010000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp73_n_z;
+CREATE PROCEDURE sp73_n_z( f1 numeric (64) zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp73_n_z( 10000000000000000000000000000000000000000 );
+f1
+0000000000000000000000010000000000000000000000000000000000000000
+DROP PROCEDURE IF EXISTS sp74;
+CREATE PROCEDURE sp74( f1 numeric unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp74(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp75;
+CREATE PROCEDURE sp75( f1 numeric unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp75(999999999);
+f1
+1000000000
+Warnings:
+Note 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp76;
+CREATE PROCEDURE sp76( f1 numeric zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp76(-999999999);
+f1
+0000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp77;
+CREATE PROCEDURE sp77( f1 real)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp77(1.1);
+f1
+1.1
+DROP PROCEDURE IF EXISTS sp78;
+CREATE PROCEDURE sp78( f1 real unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp78(1.1);
+f1
+10
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp79;
+CREATE PROCEDURE sp79( f1 real unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp79(1.1);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp80;
+CREATE PROCEDURE sp80( f1 real zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp80(1.1);
+f1
+0000000000000000000010
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp81;
+CREATE PROCEDURE sp81( f1 smallint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp81(-32701);
+f1
+-32702
+DROP PROCEDURE IF EXISTS sp82;
+CREATE PROCEDURE sp82( f1 smallint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp82(65531);
+f1
+65532
+DROP PROCEDURE IF EXISTS sp83;
+CREATE PROCEDURE sp83( f1 smallint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp83(65531);
+f1
+65532
+DROP PROCEDURE IF EXISTS sp84;
+CREATE PROCEDURE sp84( f1 smallint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp84(-32601);
+f1
+65535
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp85;
+CREATE PROCEDURE sp85( f1 tinyint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp85(-115);
+f1
+-116
+DROP PROCEDURE IF EXISTS sp86;
+CREATE PROCEDURE sp86( f1 tinyint unsigned)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp86(251);
+f1
+252
+DROP PROCEDURE IF EXISTS sp87;
+CREATE PROCEDURE sp87( f1 tinyint unsigned zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp87(201);
+f1
+202
+DROP PROCEDURE IF EXISTS sp88;
+CREATE PROCEDURE sp88( f1 tinyint zerofill)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+SELECT f1;
+END//
+CALL sp88(-101);
+f1
+255
+Warnings:
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+Warning 1264 Out of range value adjusted for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp89;
+DROP PROCEDURE IF EXISTS sp90;
+DROP PROCEDURE IF EXISTS sp91;
+CREATE PROCEDURE sp91( f1 date)
+BEGIN
+set f1 = adddate(f1, interval 31 day);
+SELECT f1;
+END//
+CALL sp91( '1997-12-31');
+f1
+1998-01-31
+DROP PROCEDURE IF EXISTS sp92;
+CREATE PROCEDURE sp92( f1 time)
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998');
+SELECT f1;
+END//
+CALL sp92( '23:59:59.999999');
+f1
+25:59:59
+DROP PROCEDURE IF EXISTS sp93;
+CREATE PROCEDURE sp93( f1 datetime)
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002');
+SELECT f1;
+END//
+CALL sp93('1997-12-31 23:59:59.999999');
+f1
+1998-01-02 01:01:00
+DROP PROCEDURE IF EXISTS sp94;
+CREATE PROCEDURE sp94( f1 char)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp94( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp95;
+CREATE PROCEDURE sp95( f1 char ascii)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp95( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp96;
+CREATE PROCEDURE sp96( f1 char binary)
+BEGIN
+set f1 = concat('a', f1);
+SELECT f1;
+END//
+CALL sp96( 'h');
+f1
+a
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+DROP PROCEDURE IF EXISTS sp97;
+CREATE PROCEDURE sp97( f1 longtext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp97( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp98;
+CREATE PROCEDURE sp98( f1 mediumtext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp98( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp99;
+CREATE PROCEDURE sp99( f1 text)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp99( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp100;
+CREATE PROCEDURE sp100( f1 tinytext)
+BEGIN
+set f1 = concat('hello', f1);
+SELECT f1;
+END//
+CALL sp100( 'world');
+f1
+helloworld
+DROP PROCEDURE IF EXISTS sp101;
+CREATE PROCEDURE sp101( f1 year)
+BEGIN
+set f1 = f1 + 10;
+SELECT f1;
+END//
+CALL sp101(51);
+f1
+2061
+DROP PROCEDURE IF EXISTS sp102;
+CREATE PROCEDURE sp102( f1 year(4))
+BEGIN
+set f1 = f1 + 51;
+SELECT f1;
+END//
+CALL sp102(1982);
+f1
+2033
+DROP PROCEDURE IF EXISTS sp103;
+CREATE PROCEDURE sp103( f1 geometrycollection)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp104;
+CREATE PROCEDURE sp104( f1 linestring)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp105;
+CREATE PROCEDURE sp105( f1 point)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+f1
+
+DROP PROCEDURE IF EXISTS sp106;
+CREATE PROCEDURE sp106( f1 polygon)
+BEGIN
+set f1 = f1;
+SELECT f1;
+END//
+CALL sp106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+f1
+
+DROP PROCEDURE IF EXISTS sp107;
+CREATE PROCEDURE sp107( f1 timestamp)
+BEGIN
+set f1 = now() + 0 + f1;
+SELECT f1;
+END//
+CALL sp107(2.00e+13);
+f1
+returned
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+USE db_storedproc;
+DROP DATABASE db1;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( in f1 year, inout f2 year, out f3 year, in f4 year,
+inout f5 year, out f6 year, in f7 year(4), inout f8 year(4),
+out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute01;
+CREATE PROCEDURE spexecute01()
+BEGIN
+declare var1 year;
+declare var2 year;
+declare var3 year;
+declare var4 year;
+declare var5 year(4);
+declare var6 year(4);
+declare var7 year(4);
+declare var8 year(4);
+set var1 = 51;
+set var3 = 51;
+set var5 = 1982;
+set var7 = 1982;
+CALL sp1(51, var1, var2, 51, var3, var4, 1982, var5, var6, 1982, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute01();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2061 2061 2071 2061 2061 2071 2033 2033 2084 2033 2033 2084
+var1 var2 var3 var4 var5 var6 var7 var8
+2061 2071 2061 2071 2033 2084 2033 2084
+DROP PROCEDURE spexecute01;
+DROP PROCEDURE sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp2( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text,
+out f6 text, in f7 tinytext, inout f8 tinytext, out f9 tinytext,
+in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute02;
+CREATE PROCEDURE spexecute02()
+BEGIN
+declare var1 text;
+declare var2 text;
+declare var3 text;
+declare var4 text;
+declare var5 tinytext;
+declare var6 tinytext;
+declare var7 tinytext;
+declare var8 tinytext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp2( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute02();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute02;
+DROP PROCEDURE sp2;
+DROP PROCEDURE IF EXISTS sp3;
+CREATE PROCEDURE sp3( in f1 char, inout f2 char, out f3 char, in f4 char ascii,
+inout f5 char ascii, out f6 char ascii, in f7 longtext,
+inout f8 longtext, out f9 longtext, in f10 mediumtext,
+inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f9);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute03;
+CREATE PROCEDURE spexecute03()
+BEGIN
+declare var1 char;
+declare var2 char;
+declare var3 char ascii;
+declare var4 char ascii;
+declare var5 longtext;
+declare var6 longtext;
+declare var7 mediumtext;
+declare var8 mediumtext;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp3( 'h', var1, var2, 'h', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute03();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a helloworld helloworld NULL helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a helloworld NULL helloworld hellohelloworld
+DROP PROCEDURE spexecute03;
+DROP PROCEDURE sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4( in f1 bigint, inout f2 bigint, out f3 bigint,
+in f4 bigint, inout f5 bigint, out f6 bigint,
+in f7 bigint, inout f8 bigint, out f9 bigint,
+in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute04;
+CREATE PROCEDURE spexecute04()
+BEGIN
+declare var1 bigint;
+declare var2 bigint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -9.22e+18;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp4(-9.22e+18, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute04();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+6744073709551616 6744073709551616 -9220000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute04;
+DROP PROCEDURE sp4;
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6( in f1 timestamp, inout f2 timestamp, out f3 timestamp, in f4 timestamp, inout f5 timestamp, out f6 timestamp, in f7 timestamp, inout f8 timestamp, out f9 timestamp, in f10 timestamp, inout f11 timestamp, out f12 timestamp)
+BEGIN
+set f1 = now() + 0 + f1; set f2 = now() + 0 + f2; set f3 = now() + 0 + f1;
+set f4 = now() + 0 + f4; set f5 = now() + 0 + f5; set f6 = now() + 0 + f5;
+set f7 = now() + 0 + f7; set f8 = now() + 0 + f8; set f9 = now() + 0 + f8;
+set f10 = now() + 0 + f10; set f11 = now() + 0 + f11; set f12 = now() + 0 + f11;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute06;
+CREATE PROCEDURE spexecute06()
+BEGIN
+declare var1 timestamp;
+declare var2 timestamp;
+declare var3 timestamp;
+declare var4 timestamp;
+declare var5 timestamp;
+declare var6 timestamp;
+declare var7 timestamp;
+declare var8 timestamp;
+set var1 = 2.00e+13;
+set var3 = 2.00e+13;
+set var5 = 2.00e+13;
+set var7 = 2.00e+13;
+CALL sp6(2.00e+13, var1, var2, 2.00e+13, var3, var4, 2.00e+13, var5, var6, 2.00e+13, var7, var8);
+END//
+CALL spexecute06();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+returned returned returned returned returned returned returned returned returned returned returned returned
+DROP PROCEDURE spexecute06;
+DROP PROCEDURE sp6;
+DROP PROCEDURE IF EXISTS sp07;
+CREATE PROCEDURE sp07( IN f1 BIGINT UNSIGNED,
+INOUT f2 BIGINT UNSIGNED,
+OUT f3 BIGINT UNSIGNED,
+IN f4 BIGINT,
+INOUT f5 BIGINT,
+OUT f6 BIGINT,
+IN f7 BIGINT,
+INOUT f8 BIGINT,
+OUT f9 BIGINT,
+IN f10 BIGINT,
+INOUT f11 BIGINT,
+OUT f12 BIGINT)
+BEGIN
+SELECT f1, f2, f3;
+SELECT f4, f5, f6;
+SELECT f7, f8, f9;
+SELECT f10, f11, f12;
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f3 * 2); set f3 = (f3 - 10); set f3 = (f3 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3;
+SELECT f4, f5, f6;
+SELECT f7, f8, f9;
+SELECT f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute07;
+CREATE PROCEDURE spexecute07()
+BEGIN
+declare var1 bigint unsigned;
+declare var2 bigint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.84e+19;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+SELECT var1, var2;
+SELECT var3, var4;
+SELECT var5, var6;
+SELECT var7, var8;
+CALL sp07( var1, var1, var2, var3, var3, var4,
+var5, var5, var6, var7, var7, var8 );
+SELECT var1, var2;
+SELECT var3, var4;
+SELECT var5, var6;
+SELECT var7, var8;
+END//
+CALL spexecute07();
+var1 var2
+18400000000000000000 NULL
+var3 var4
+-9220000000000000000 NULL
+var5 var6
+-9220000000000000000 NULL
+var7 var8
+-9220000000000000000 NULL
+f1 f2 f3
+18400000000000000000 18400000000000000000 NULL
+f4 f5 f6
+-9220000000000000000 -9220000000000000000 NULL
+f7 f8 f9
+-9220000000000000000 -9220000000000000000 NULL
+f10 f11 f12
+-9220000000000000000 -9220000000000000000 NULL
+f1 f2 f3
+18353255926290448384 18353255926290448384 18353255926290448384
+f4 f5 f6
+-9220000000000000000 6744073709551616 6744073709551616
+f7 f8 f9
+-9220000000000000000 6744073709551616 6744073709551616
+f10 f11 f12
+-9220000000000000000 6744073709551616 6744073709551616
+var1 var2
+18353255926290448384 18353255926290448384
+var3 var4
+6744073709551616 6744073709551616
+var5 var6
+6744073709551616 6744073709551616
+var7 var8
+6744073709551616 6744073709551616
+DROP PROCEDURE spexecute07;
+DROP PROCEDURE sp07;
+DROP PROCEDURE IF EXISTS sp8;
+CREATE PROCEDURE sp8( in f1 bigint unsigned zerofill,
+inout f2 bigint unsigned zerofill,
+out f3 bigint unsigned zerofill,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute08;
+CREATE PROCEDURE spexecute08()
+BEGIN
+declare var1 bigint unsigned zerofill;
+declare var2 bigint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.84e+17;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp8(1.84e+17, var1, var2, -9.22e+18, var3, var4,
+-9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute08();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+00368000000000000000 00368000000000000000 00368000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+00368000000000000000 00368000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute08;
+DROP PROCEDURE sp8;
+DROP PROCEDURE IF EXISTS sp9;
+CREATE PROCEDURE sp9( in f1 bigint zerofill,
+inout f2 bigint zerofill,
+out f3 bigint zerofill,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5;
+set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8;
+set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11;
+set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute09;
+CREATE PROCEDURE spexecute09()
+BEGIN
+declare var1 bigint zerofill;
+declare var2 bigint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -9.22e+15;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp9(-9.22e+15, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute09();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+00000000000000000000 00000000000000000000 00000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+00000000000000000000 00000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute09;
+DROP PROCEDURE sp9;
+DROP PROCEDURE IF EXISTS sp10;
+CREATE PROCEDURE sp10( in f1 decimal,
+inout f2 decimal,
+out f3 decimal,
+in f4 bigint,
+inout f5 bigint,
+out f6 bigint,
+in f7 bigint,
+inout f8 bigint,
+out f9 bigint,
+in f10 bigint,
+inout f11 bigint,
+out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute10;
+CREATE PROCEDURE spexecute10()
+BEGIN
+declare var1 decimal;
+declare var2 decimal;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp10(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute10();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute10;
+DROP PROCEDURE sp10;
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11( in f1 decimal (0), inout f2 decimal (0), out f3 decimal (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute11;
+CREATE PROCEDURE spexecute11()
+BEGIN
+declare var1 decimal (0);
+declare var2 decimal (0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = --1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp11(--1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute11();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute11;
+DROP PROCEDURE sp11;
+DROP PROCEDURE IF EXISTS sp12;
+CREATE PROCEDURE sp12( in f1 decimal (0) unsigned, inout f2 decimal (0) unsigned, out f3 decimal (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute12;
+CREATE PROCEDURE spexecute12()
+BEGIN
+declare var1 decimal (0) unsigned;
+declare var2 decimal (0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp12(99999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute12();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute12;
+DROP PROCEDURE sp12;
+DROP PROCEDURE IF EXISTS sp13;
+CREATE PROCEDURE sp13( in f1 decimal (0, 0) zerofill, inout f2 decimal (0, 0) zerofill, out f3 decimal (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute13;
+CREATE PROCEDURE spexecute13()
+BEGIN
+declare var1 decimal (0, 0) zerofill;
+declare var2 decimal (0, 0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp13(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute13();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute13;
+DROP PROCEDURE sp13;
+DROP PROCEDURE IF EXISTS sp14;
+CREATE PROCEDURE sp14( in f1 decimal (63, 30), inout f2 decimal (63, 30), out f3 decimal (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f3 = f2;
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute14;
+CREATE PROCEDURE spexecute14()
+BEGIN
+declare var1 decimal (63, 30);
+declare var2 decimal (63, 30);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+21;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp14(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute14();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000000000000000.000000000000000000000000000000 -1000000000000000000000.000000000000000000000000000000 -999999999999999999990.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000000000000000.000000000000000000000000000000 -999999999999999999990.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute14;
+DROP PROCEDURE sp14;
+DROP PROCEDURE IF EXISTS sp15;
+CREATE PROCEDURE sp15( in f1 double, inout f2 double, out f3 double, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute15;
+CREATE PROCEDURE spexecute15()
+BEGIN
+declare var1 double;
+declare var2 double;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp15(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute15();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute15;
+DROP PROCEDURE sp15;
+DROP PROCEDURE IF EXISTS sp16;
+CREATE PROCEDURE sp16( in f1 double zerofill, inout f2 double zerofill, out f3 double zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute16;
+CREATE PROCEDURE spexecute16()
+BEGIN
+declare var1 double zerofill;
+declare var2 double zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp16(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute16();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute16;
+DROP PROCEDURE sp16;
+DROP PROCEDURE IF EXISTS sp17;
+CREATE PROCEDURE sp17( in f1 double unsigned, inout f2 double unsigned, out f3 double unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute17;
+CREATE PROCEDURE spexecute17()
+BEGIN
+declare var1 double unsigned;
+declare var2 double unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp17(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute17();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute17;
+DROP PROCEDURE sp17;
+DROP PROCEDURE IF EXISTS sp18;
+CREATE PROCEDURE sp18( in f1 double unsigned zerofill, inout f2 double unsigned zerofill, out f3 double unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute18;
+CREATE PROCEDURE spexecute18()
+BEGIN
+declare var1 double unsigned zerofill;
+declare var2 double unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp18(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute18();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute18;
+DROP PROCEDURE sp18;
+DROP PROCEDURE IF EXISTS sp19;
+CREATE PROCEDURE sp19( in f1 float unsigned, inout f2 float unsigned, out f3 float unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute19;
+CREATE PROCEDURE spexecute19()
+BEGIN
+declare var1 float unsigned;
+declare var2 float unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp19(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute19();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute19;
+DROP PROCEDURE sp19;
+DROP PROCEDURE IF EXISTS sp20;
+CREATE PROCEDURE sp20( in f1 float unsigned zerofill, inout f2 float unsigned zerofill, out f3 float unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute20;
+CREATE PROCEDURE spexecute20()
+BEGIN
+declare var1 float unsigned zerofill;
+declare var2 float unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp20(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute20();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute20;
+DROP PROCEDURE sp20;
+DROP PROCEDURE IF EXISTS sp21;
+CREATE PROCEDURE sp21( in f1 float zerofill, inout f2 float zerofill, out f3 float zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute21;
+CREATE PROCEDURE spexecute21()
+BEGIN
+declare var1 float zerofill;
+declare var2 float zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp21(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute21();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute21;
+DROP PROCEDURE sp21;
+DROP PROCEDURE IF EXISTS sp22;
+CREATE PROCEDURE sp22( in f1 float(0), inout f2 float(0), out f3 float(0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute22;
+CREATE PROCEDURE spexecute22()
+BEGIN
+declare var1 float(0);
+declare var2 float(0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp22(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute22();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute22;
+DROP PROCEDURE sp22;
+DROP PROCEDURE IF EXISTS sp23;
+CREATE PROCEDURE sp23( in f1 numeric, inout f2 numeric, out f3 numeric, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute23;
+CREATE PROCEDURE spexecute23()
+BEGIN
+declare var1 numeric;
+declare var2 numeric;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp23(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute23();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute23;
+DROP PROCEDURE sp23;
+DROP PROCEDURE IF EXISTS sp24;
+CREATE PROCEDURE sp24( in f1 real, inout f2 real, out f3 real, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute24;
+CREATE PROCEDURE spexecute24()
+BEGIN
+declare var1 real;
+declare var2 real;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp24(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute24();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1.1 1.1 11.1 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1.1 11.1 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute24;
+DROP PROCEDURE sp24;
+DROP PROCEDURE IF EXISTS sp25;
+CREATE PROCEDURE sp25( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute25;
+CREATE PROCEDURE spexecute25()
+BEGIN
+declare var1 smallint;
+declare var2 smallint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32701;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp25(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute25();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-32758 -32758 -32748 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-32758 -32748 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute25;
+DROP PROCEDURE sp25;
+DROP PROCEDURE IF EXISTS sp26;
+CREATE PROCEDURE sp26( in f1 date, inout f2 date, out f3 date, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = adddate(f1, interval 31 day); set f2 = adddate(f2, interval 31 day); set f3 = adddate(f2, interval 31 day);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute26;
+CREATE PROCEDURE spexecute26()
+BEGIN
+declare var1 date;
+declare var2 date;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '1997-12-31';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp26( '1997-12-31', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute26();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1998-01-31 1998-01-31 1998-03-03 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1998-01-31 1998-03-03 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute26;
+DROP PROCEDURE sp26;
+DROP PROCEDURE IF EXISTS sp27;
+CREATE PROCEDURE sp27( in f1 time, inout f2 time, out f3 time, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = addtime(f1, '02:00:00.999998'); set f2 = addtime(f2, '02:00:00.999998'); set f3 = addtime(f2, '02:00:00.999998');
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute27;
+CREATE PROCEDURE spexecute27()
+BEGIN
+declare var1 time;
+declare var2 time;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '23:59:59.999999';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp27( '23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute27();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+25:59:59 25:59:59 27:59:59 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+25:59:59 27:59:59 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute27;
+DROP PROCEDURE sp27;
+DROP PROCEDURE IF EXISTS sp28;
+CREATE PROCEDURE sp28( in f1 datetime, inout f2 datetime, out f3 datetime, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = addtime(f1, '1 1:1:1.000002'); set f2 = addtime(f2, '1 1:1:1.000002'); set f3 = addtime(f1, '1 1:1:1.000002');
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute28;
+CREATE PROCEDURE spexecute28()
+BEGIN
+declare var1 datetime;
+declare var2 datetime;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = '1997-12-31 23:59:59.999999';
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp28('1997-12-31 23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute28();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1998-01-02 01:01:00 1998-01-02 01:01:00 1998-01-03 02:02:01 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1998-01-02 01:01:00 1998-01-03 02:02:01 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute28;
+DROP PROCEDURE sp28;
+DROP PROCEDURE IF EXISTS sp29;
+CREATE PROCEDURE sp29( in f1 float(0) unsigned, inout f2 float(0) unsigned, out f3 float(0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute29;
+CREATE PROCEDURE spexecute29()
+BEGIN
+declare var1 float(0) unsigned;
+declare var2 float(0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp29(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute29();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute29;
+DROP PROCEDURE sp29;
+DROP PROCEDURE IF EXISTS sp30;
+CREATE PROCEDURE sp30( in f1 float(0) zerofill, inout f2 float(0) zerofill, out f3 float(0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute30;
+CREATE PROCEDURE spexecute30()
+BEGIN
+declare var1 float(0) zerofill;
+declare var2 float(0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp30(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute30();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute30;
+DROP PROCEDURE sp30;
+DROP PROCEDURE IF EXISTS sp31;
+CREATE PROCEDURE sp31( in f1 float(23), inout f2 float(23), out f3 float(23), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute31;
+CREATE PROCEDURE spexecute31()
+BEGIN
+declare var1 float(23);
+declare var2 float(23);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp31(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute31();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute31;
+DROP PROCEDURE sp31;
+DROP PROCEDURE IF EXISTS sp32;
+CREATE PROCEDURE sp32( in f1 float(23) unsigned, inout f2 float(23) unsigned, out f3 float(23) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute32;
+CREATE PROCEDURE spexecute32()
+BEGIN
+declare var1 float(23) unsigned;
+declare var2 float(23) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp32(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute32();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute32;
+DROP PROCEDURE sp32;
+DROP PROCEDURE IF EXISTS sp33;
+CREATE PROCEDURE sp33( in f1 float(23) zerofill, inout f2 float(23) zerofill, out f3 float(23) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute33;
+CREATE PROCEDURE spexecute33()
+BEGIN
+declare var1 float(23) zerofill;
+declare var2 float(23) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp33(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute33();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute33;
+DROP PROCEDURE sp33;
+DROP PROCEDURE IF EXISTS sp34;
+CREATE PROCEDURE sp34( in f1 float(24), inout f2 float(24), out f3 float(24), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute34;
+CREATE PROCEDURE spexecute34()
+BEGIN
+declare var1 float(24);
+declare var2 float(24);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp34(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute34();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute34;
+DROP PROCEDURE sp34;
+DROP PROCEDURE IF EXISTS sp35;
+CREATE PROCEDURE sp35( in f1 float(24) unsigned, inout f2 float(24) unsigned, out f3 float(24) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute35;
+CREATE PROCEDURE spexecute35()
+BEGIN
+declare var1 float(24) unsigned;
+declare var2 float(24) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp35(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute35();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute35;
+DROP PROCEDURE sp35;
+DROP PROCEDURE IF EXISTS sp36;
+CREATE PROCEDURE sp36( in f1 float(24) zerofill, inout f2 float(24) zerofill, out f3 float(24) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute36;
+CREATE PROCEDURE spexecute36()
+BEGIN
+declare var1 float(24) zerofill;
+declare var2 float(24) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp36(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute36();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute36;
+DROP PROCEDURE sp36;
+DROP PROCEDURE IF EXISTS sp37;
+CREATE PROCEDURE sp37( in f1 float(53), inout f2 float(53), out f3 float(53), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute37;
+CREATE PROCEDURE spexecute37()
+BEGIN
+declare var1 float(53);
+declare var2 float(53);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp37(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute37();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1 1 11 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1 11 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute37;
+DROP PROCEDURE sp37;
+DROP PROCEDURE IF EXISTS sp38;
+CREATE PROCEDURE sp38( in f1 float(53) unsigned, inout f2 float(53) unsigned, out f3 float(53) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute38;
+CREATE PROCEDURE spexecute38()
+BEGIN
+declare var1 float(53) unsigned;
+declare var2 float(53) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp38(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute38();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute38;
+DROP PROCEDURE sp38;
+DROP PROCEDURE IF EXISTS sp39;
+CREATE PROCEDURE sp39( in f1 float(53) zerofill, inout f2 float(53) zerofill, out f3 float(53) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute39;
+CREATE PROCEDURE spexecute39()
+BEGIN
+declare var1 float(53) zerofill;
+declare var2 float(53) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp39(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute39();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute39;
+DROP PROCEDURE sp39;
+DROP PROCEDURE IF EXISTS sp40;
+CREATE PROCEDURE sp40( in f1 real unsigned, inout f2 real unsigned, out f3 real unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute40;
+CREATE PROCEDURE spexecute40()
+BEGIN
+declare var1 real unsigned;
+declare var2 real unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp40(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute40();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute40;
+DROP PROCEDURE sp40;
+DROP PROCEDURE IF EXISTS sp41;
+CREATE PROCEDURE sp41( in f1 real unsigned zerofill, inout f2 real unsigned zerofill, out f3 real unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute41;
+CREATE PROCEDURE spexecute41()
+BEGIN
+declare var1 real unsigned zerofill;
+declare var2 real unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp41(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute41();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute41;
+DROP PROCEDURE sp41;
+DROP PROCEDURE IF EXISTS sp42;
+CREATE PROCEDURE sp42( in f1 real zerofill, inout f2 real zerofill, out f3 real zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute42;
+CREATE PROCEDURE spexecute42()
+BEGIN
+declare var1 real zerofill;
+declare var2 real zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.1;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp42(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute42();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute42;
+DROP PROCEDURE sp42;
+DROP PROCEDURE IF EXISTS sp43;
+CREATE PROCEDURE sp43( in f1 numeric (0), inout f2 numeric (0), out f3 numeric (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute43;
+CREATE PROCEDURE spexecute43()
+BEGIN
+declare var1 numeric (0);
+declare var2 numeric (0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp43(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute43();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute43;
+DROP PROCEDURE sp43;
+DROP PROCEDURE IF EXISTS sp44;
+CREATE PROCEDURE sp44( in f1 numeric (0) unsigned, inout f2 numeric (0) unsigned, out f3 numeric (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute44;
+CREATE PROCEDURE spexecute44()
+BEGIN
+declare var1 numeric (0) unsigned;
+declare var2 numeric (0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp44(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute44();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute44;
+DROP PROCEDURE sp44;
+DROP PROCEDURE IF EXISTS sp45;
+CREATE PROCEDURE sp45( in f1 numeric (0) zerofill, inout f2 numeric (0) zerofill, out f3 numeric (0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute45;
+CREATE PROCEDURE spexecute45()
+BEGIN
+declare var1 numeric (0) zerofill;
+declare var2 numeric (0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp45(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute45();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute45;
+DROP PROCEDURE sp45;
+DROP PROCEDURE IF EXISTS sp46;
+CREATE PROCEDURE sp46( in f1 numeric (0, 0), inout f2 numeric (0, 0), out f3 numeric (0, 0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute46;
+CREATE PROCEDURE spexecute46()
+BEGIN
+declare var1 numeric (0, 0);
+declare var2 numeric (0, 0);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp46(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute46();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-1000000000 -1000000000 -999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-1000000000 -999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute46;
+DROP PROCEDURE sp46;
+DROP PROCEDURE IF EXISTS sp47;
+CREATE PROCEDURE sp47( in f1 numeric (0, 0) unsigned, inout f2 numeric (0, 0) unsigned, out f3 numeric (0, 0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute47;
+CREATE PROCEDURE spexecute47()
+BEGIN
+declare var1 numeric (0, 0) unsigned;
+declare var2 numeric (0, 0) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp47(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute47();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute47;
+DROP PROCEDURE sp47;
+DROP PROCEDURE IF EXISTS sp48;
+CREATE PROCEDURE sp48( in f1 numeric (0, 0) zerofill, inout f2 numeric (0, 0) zerofill, out f3 numeric (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute48;
+CREATE PROCEDURE spexecute48()
+BEGIN
+declare var1 numeric (0, 0) zerofill;
+declare var2 numeric (0, 0) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp48(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute48();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute48;
+DROP PROCEDURE sp48;
+DROP PROCEDURE IF EXISTS sp49;
+CREATE PROCEDURE sp49( in f1 numeric unsigned, inout f2 numeric unsigned, out f3 numeric unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute49;
+CREATE PROCEDURE spexecute49()
+BEGIN
+declare var1 numeric unsigned;
+declare var2 numeric unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp49(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute49();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute49;
+DROP PROCEDURE sp49;
+DROP PROCEDURE IF EXISTS sp50;
+CREATE PROCEDURE sp50( in f1 numeric unsigned zerofill, inout f2 numeric unsigned zerofill, out f3 numeric unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute50;
+CREATE PROCEDURE spexecute50()
+BEGIN
+declare var1 numeric unsigned zerofill;
+declare var2 numeric unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 9999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp50(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute50();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+9999999999 9999999999 9999999999 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+9999999999 9999999999 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute50;
+DROP PROCEDURE sp50;
+DROP PROCEDURE IF EXISTS sp51;
+CREATE PROCEDURE sp51( in f1 numeric zerofill, inout f2 numeric zerofill, out f3 numeric zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute51;
+CREATE PROCEDURE spexecute51()
+BEGIN
+declare var1 numeric zerofill;
+declare var2 numeric zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp51(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute51();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute51;
+DROP PROCEDURE sp51;
+DROP PROCEDURE IF EXISTS sp52;
+CREATE PROCEDURE sp52( in f1 numeric (63, 30), inout f2 numeric (63, 30), out f3 numeric (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute52;
+CREATE PROCEDURE spexecute52()
+BEGIN
+declare var1 numeric (63, 30);
+declare var2 numeric (63, 30);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp52(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute52();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000.000000000000000000000000000000 -10000000000000000000000.000000000000000000000000000000 -99999999999999999990.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000.000000000000000000000000000000 -99999999999999999990.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute52;
+DROP PROCEDURE sp52;
+DROP PROCEDURE IF EXISTS sp53;
+CREATE PROCEDURE sp53( in f1 numeric (64), inout f2 numeric (64), out f3 numeric (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute53;
+CREATE PROCEDURE spexecute53()
+BEGIN
+declare var1 numeric (64);
+declare var2 numeric (64);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp53(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute53();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000 -10000000000000000000000 -99999999999999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000 -99999999999999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute53;
+DROP PROCEDURE sp53;
+DROP PROCEDURE IF EXISTS sp54;
+CREATE PROCEDURE sp54( in f1 numeric (64) unsigned, inout f2 numeric (64) unsigned, out f3 numeric (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute54;
+CREATE PROCEDURE spexecute54()
+BEGIN
+declare var1 numeric (64) unsigned;
+declare var2 numeric (64) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp54(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute54();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000 10000000000000000000000 100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000 100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute54;
+DROP PROCEDURE sp54;
+DROP PROCEDURE IF EXISTS sp55;
+CREATE PROCEDURE sp55( in f1 numeric (64) zerofill, inout f2 numeric (64) zerofill, out f3 numeric (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute55;
+CREATE PROCEDURE spexecute55()
+BEGIN
+declare var1 numeric (64) zerofill;
+declare var2 numeric (64) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp55(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute55();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute55;
+DROP PROCEDURE sp55;
+DROP PROCEDURE IF EXISTS sp56;
+CREATE PROCEDURE sp56( in f1 year, inout f2 year, out f3 year, in f4 year, inout f5 year, out f6 year, in f7 year, inout f8 year, out f9 year, in f10 year, inout f11 year, out f12 year)
+BEGIN
+set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+set f7 = f7 + 10; set f8 = f8 + 10; set f9 = f8 + 10;
+set f10= f10+ 10; set f11 = f11 + 10; set f12 = f11 + 10;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute56;
+CREATE PROCEDURE spexecute56()
+BEGIN
+declare var1 year;
+declare var2 year;
+declare var3 year;
+declare var4 year;
+declare var5 year;
+declare var6 year;
+declare var7 year;
+declare var8 year;
+set var1 = 51;
+set var3 = 51;
+set var5 = 51;
+set var7 = 51;
+CALL sp56(51, var1, var2, 51, var3, var4, 51, var5, var6, 51, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute56();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2061 2061 2071 2061 2061 2071 2061 2061 2071 2061 2061 2071
+var1 var2 var3 var4 var5 var6 var7 var8
+2061 2071 2061 2071 2061 2071 2061 2071
+DROP PROCEDURE spexecute56;
+DROP PROCEDURE sp56;
+DROP PROCEDURE IF EXISTS sp57;
+CREATE PROCEDURE sp57( in f1 year(4), inout f2 year(4), out f3 year(4), in f4 year(4), inout f5 year(4), out f6 year(4), in f7 year(4), inout f8 year(4), out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+set f1 = f1 + 51; set f2 = f2 + 51; set f3 = f2 + 51;
+set f4 = f4 + 51; set f5 = f5 + 51; set f6 = f5 + 51;
+set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute57;
+CREATE PROCEDURE spexecute57()
+BEGIN
+declare var1 year(4);
+declare var2 year(4);
+declare var3 year(4);
+declare var4 year(4);
+declare var5 year(4);
+declare var6 year(4);
+declare var7 year(4);
+declare var8 year(4);
+set var1 = 1982;
+set var3 = 1982;
+set var5 = 1982;
+set var7 = 1982;
+CALL sp57(1982, var1, var2, 1982, var3, var4, 1982, var5, var6, 1982, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute57();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+2033 2033 2084 2033 2033 2084 2033 2033 2084 2033 2033 2084
+var1 var2 var3 var4 var5 var6 var7 var8
+2033 2084 2033 2084 2033 2084 2033 2084
+DROP PROCEDURE spexecute57;
+DROP PROCEDURE sp57;
+DROP PROCEDURE IF EXISTS sp58;
+CREATE PROCEDURE sp58( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text, out f6 text, in f7 text, inout f8 text, out f9 text, in f10 text, inout f11 text, out f12 text)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute58;
+CREATE PROCEDURE spexecute58()
+BEGIN
+declare var1 text;
+declare var2 text;
+declare var3 text;
+declare var4 text;
+declare var5 text;
+declare var6 text;
+declare var7 text;
+declare var8 text;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp58( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute58();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute58;
+DROP PROCEDURE sp58;
+DROP PROCEDURE IF EXISTS sp59;
+CREATE PROCEDURE sp59( in f1 tinytext, inout f2 tinytext, out f3 tinytext, in f4 tinytext, inout f5 tinytext, out f6 tinytext, in f7 tinytext, inout f8 tinytext, out f9 tinytext, in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute59;
+CREATE PROCEDURE spexecute59()
+BEGIN
+declare var1 tinytext;
+declare var2 tinytext;
+declare var3 tinytext;
+declare var4 tinytext;
+declare var5 tinytext;
+declare var6 tinytext;
+declare var7 tinytext;
+declare var8 tinytext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp59( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute59();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute59;
+DROP PROCEDURE sp59;
+DROP PROCEDURE IF EXISTS sp60;
+CREATE PROCEDURE sp60( in f1 char, inout f2 char, out f3 char, in f4 char, inout f5 char, out f6 char, in f7 char, inout f8 char, out f9 char, in f10 char, inout f11 char, out f12 char)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f5);
+set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f8);
+set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute60;
+CREATE PROCEDURE spexecute60()
+BEGIN
+declare var1 char;
+declare var2 char;
+declare var3 char;
+declare var4 char;
+declare var5 char;
+declare var6 char;
+declare var7 char;
+declare var8 char;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'h';
+set var7 = 'h';
+CALL sp60( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute60();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a a a a a a a
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a a a a a
+DROP PROCEDURE spexecute60;
+DROP PROCEDURE sp60;
+DROP PROCEDURE IF EXISTS sp61;
+CREATE PROCEDURE sp61( in f1 char ascii, inout f2 char ascii, out f3 char ascii, in f4 char ascii, inout f5 char ascii, out f6 char ascii, in f7 char ascii, inout f8 char ascii, out f9 char ascii, in f10 char ascii, inout f11 char ascii, out f12 char ascii)
+BEGIN
+set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f2);
+set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f9);
+set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute61;
+CREATE PROCEDURE spexecute61()
+BEGIN
+declare var1 char ascii;
+declare var2 char ascii;
+declare var3 char ascii;
+declare var4 char ascii;
+declare var5 char ascii;
+declare var6 char ascii;
+declare var7 char ascii;
+declare var8 char ascii;
+set var1 = 'h';
+set var3 = 'h';
+set var5 = 'h';
+set var7 = 'h';
+CALL sp61( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute61();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+a a a a a a a a NULL a a a
+var1 var2 var3 var4 var5 var6 var7 var8
+a a a a a NULL a a
+DROP PROCEDURE spexecute61;
+DROP PROCEDURE sp61;
+DROP PROCEDURE IF EXISTS sp62;
+CREATE PROCEDURE sp62( in f1 longtext, inout f2 longtext, out f3 longtext, in f4 longtext, inout f5 longtext, out f6 longtext, in f7 longtext, inout f8 longtext, out f9 longtext, in f10 longtext, inout f11 longtext, out f12 longtext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute62;
+CREATE PROCEDURE spexecute62()
+BEGIN
+declare var1 longtext;
+declare var2 longtext;
+declare var3 longtext;
+declare var4 longtext;
+declare var5 longtext;
+declare var6 longtext;
+declare var7 longtext;
+declare var8 longtext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp62( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute62();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute62;
+DROP PROCEDURE sp62;
+DROP PROCEDURE IF EXISTS sp63;
+CREATE PROCEDURE sp63( in f1 mediumtext, inout f2 mediumtext, out f3 mediumtext, in f4 mediumtext, inout f5 mediumtext, out f6 mediumtext, in f7 mediumtext, inout f8 mediumtext, out f9 mediumtext, in f10 mediumtext, inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f3);
+set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute63;
+CREATE PROCEDURE spexecute63()
+BEGIN
+declare var1 mediumtext;
+declare var2 mediumtext;
+declare var3 mediumtext;
+declare var4 mediumtext;
+declare var5 mediumtext;
+declare var6 mediumtext;
+declare var7 mediumtext;
+declare var8 mediumtext;
+set var1 = 'world';
+set var3 = 'world';
+set var5 = 'world';
+set var7 = 'world';
+CALL sp63( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute63();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+helloworld helloworld NULL helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld helloworld helloworld hellohelloworld
+var1 var2 var3 var4 var5 var6 var7 var8
+helloworld NULL helloworld hellohelloworld helloworld hellohelloworld helloworld hellohelloworld
+DROP PROCEDURE spexecute63;
+DROP PROCEDURE sp63;
+DROP PROCEDURE IF EXISTS sp64;
+CREATE PROCEDURE sp64( in f1 decimal, inout f2 decimal, out f3 decimal, in f4 decimal, inout f5 decimal, out f6 decimal, in f7 decimal, inout f8 decimal, out f9 decimal, in f10 decimal, inout f11 decimal, out f12 decimal)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+set f4 = (f4 / 2); set f4 = (f4 * 2); set f4 = (f4 - 10); set f4 = (f4 + 10); set f5 = (f5 / 2); set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f5 / 2); set f6 = (f5 * 2); set f6 = (f5 - 10); set f6 = (f5 + 10);
+set f7 = (f7 / 2); set f7 = (f7 * 2); set f7 = (f7 - 10); set f7 = (f7 + 10); set f8 = (f8 / 2); set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f8 / 2); set f9 = (f8 * 2); set f9 = (f8 - 10); set f9 = (f8 + 10);
+set f10 = (f10 / 2); set f10 = (f10 * 2); set f10 = (f10 - 10); set f10 = (f10 + 10); set f11 = (f11 / 2); set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f11 / 2); set f12 = (f11 * 2); set f12 = (f11 - 10); set f12 = (f11 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute64;
+CREATE PROCEDURE spexecute64()
+BEGIN
+declare var1 decimal;
+declare var2 decimal;
+declare var3 decimal;
+declare var4 decimal;
+declare var5 decimal;
+declare var6 decimal;
+declare var7 decimal;
+declare var8 decimal;
+set var1 = --1.00e+09;
+set var3 = --1.00e+09;
+set var5 = --1.00e+09;
+set var7 = --1.00e+09;
+CALL sp64(--1.00e+09, var1, var2, --1.00e+09, var3, var4, --1.00e+09, var5, var6, --1.00e+09, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute64();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 1000000000 1000000000 1000000010 1000000000 1000000000 1000000010 1000000000 1000000000 1000000010
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 1000000000 1000000010 1000000000 1000000010 1000000000 1000000010
+DROP PROCEDURE spexecute64;
+DROP PROCEDURE sp64;
+DROP PROCEDURE IF EXISTS sp65;
+CREATE PROCEDURE sp65( in f1 decimal (0, 0) unsigned zerofill, inout f2 decimal (0, 0) unsigned zerofill, out f3 decimal (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute65;
+CREATE PROCEDURE spexecute65()
+BEGIN
+declare var1 decimal (0, 0) unsigned zerofill;
+declare var2 decimal (0, 0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 999999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp65(999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute65();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+1000000000 1000000000 1000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+1000000000 1000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute65;
+DROP PROCEDURE sp65;
+DROP PROCEDURE IF EXISTS sp66;
+CREATE PROCEDURE sp66( in f1 decimal (63, 30) unsigned, inout f2 decimal (63, 30) unsigned, out f3 decimal (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute66;
+CREATE PROCEDURE spexecute66()
+BEGIN
+declare var1 decimal (63, 30) unsigned;
+declare var2 decimal (63, 30) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+16;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp66(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute66();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10000000000000000.000000000000000000000000000000 10000000000000000.000000000000000000000000000000 10000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000.000000000000000000000000000000 10000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute66;
+DROP PROCEDURE sp66;
+DROP PROCEDURE IF EXISTS sp67;
+CREATE PROCEDURE sp67( in f1 decimal (63, 30) unsigned zerofill, inout f2 decimal (63, 30) unsigned zerofill, out f3 decimal (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute67;
+CREATE PROCEDURE spexecute67()
+BEGIN
+declare var1 decimal (63, 30) unsigned zerofill;
+declare var2 decimal (63, 30) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+16;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp67(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute67();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000010000000000000000.000000000000000000000000000000 000000000000000010000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute67;
+DROP PROCEDURE sp67;
+DROP PROCEDURE IF EXISTS sp68;
+CREATE PROCEDURE sp68( in f1 decimal (63, 30) zerofill, inout f2 decimal (63, 30) zerofill, out f3 decimal (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute68;
+CREATE PROCEDURE spexecute68()
+BEGIN
+declare var1 decimal (63, 30) zerofill;
+declare var2 decimal (63, 30) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+21;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp68(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute68();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute68;
+DROP PROCEDURE sp68;
+DROP PROCEDURE IF EXISTS sp69;
+CREATE PROCEDURE sp69( in f1 decimal (64), inout f2 decimal (64), out f3 decimal (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute69;
+CREATE PROCEDURE spexecute69()
+BEGIN
+declare var1 decimal (64);
+declare var2 decimal (64);
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp69(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute69();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-100000000000000000000 -10000000000000000000000 -99999999999999999990 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-10000000000000000000000 -99999999999999999990 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute69;
+DROP PROCEDURE sp69;
+DROP PROCEDURE IF EXISTS sp70;
+CREATE PROCEDURE sp70( in f1 decimal (64) unsigned, inout f2 decimal (64) unsigned, out f3 decimal (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute70;
+CREATE PROCEDURE spexecute70()
+BEGIN
+declare var1 decimal (64) unsigned;
+declare var2 decimal (64) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp70(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute70();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000 10000000000000000000000 100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000 100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute70;
+DROP PROCEDURE sp70;
+DROP PROCEDURE IF EXISTS sp71;
+CREATE PROCEDURE sp71( in f1 decimal (64) unsigned zerofill, inout f2 decimal (64) unsigned zerofill, out f3 decimal (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute71;
+CREATE PROCEDURE spexecute71()
+BEGIN
+declare var1 decimal (64) unsigned zerofill;
+declare var2 decimal (64) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp71(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute71();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000100000000000000000000 0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute71;
+DROP PROCEDURE sp71;
+DROP PROCEDURE IF EXISTS sp72;
+CREATE PROCEDURE sp72( in f1 decimal (64) zerofill, inout f2 decimal (64) zerofill, out f3 decimal (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute72;
+CREATE PROCEDURE spexecute72()
+BEGIN
+declare var1 decimal (64) zerofill;
+declare var2 decimal (64) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp72(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute72();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000000000000000000000000010 0000000000000000000000000000000000000000000000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute72;
+DROP PROCEDURE sp72;
+DROP PROCEDURE IF EXISTS sp73;
+CREATE PROCEDURE sp73( in f1 decimal unsigned, inout f2 decimal unsigned, out f3 decimal unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute73;
+CREATE PROCEDURE spexecute73()
+BEGIN
+declare var1 decimal unsigned;
+declare var2 decimal unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp73(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute73();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+10 10 20 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10 20 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute73;
+DROP PROCEDURE sp73;
+DROP PROCEDURE IF EXISTS sp74;
+CREATE PROCEDURE sp74( in f1 decimal unsigned zerofill, inout f2 decimal unsigned zerofill, out f3 decimal unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute74;
+CREATE PROCEDURE spexecute74()
+BEGIN
+declare var1 decimal unsigned zerofill;
+declare var2 decimal unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp74(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute74();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute74;
+DROP PROCEDURE sp74;
+DROP PROCEDURE IF EXISTS sp75;
+CREATE PROCEDURE sp75( in f1 decimal zerofill, inout f2 decimal zerofill, out f3 decimal zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute75;
+CREATE PROCEDURE spexecute75()
+BEGIN
+declare var1 decimal zerofill;
+declare var2 decimal zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp75(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute75();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000010 0000000010 0000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000010 0000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute75;
+DROP PROCEDURE sp75;
+DROP PROCEDURE IF EXISTS sp76;
+CREATE PROCEDURE sp76( in f1 float(0) unsigned zerofill, inout f2 float(0) unsigned zerofill, out f3 float(0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute76;
+CREATE PROCEDURE spexecute76()
+BEGIN
+declare var1 float(0) unsigned zerofill;
+declare var2 float(0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp76(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute76();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute76;
+DROP PROCEDURE sp76;
+DROP PROCEDURE IF EXISTS sp77;
+CREATE PROCEDURE sp77( in f1 float(23) unsigned zerofill, inout f2 float(23) unsigned zerofill, out f3 float(23) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute77;
+CREATE PROCEDURE spexecute77()
+BEGIN
+declare var1 float(23) unsigned zerofill;
+declare var2 float(23) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp77(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute77();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute77;
+DROP PROCEDURE sp77;
+DROP PROCEDURE IF EXISTS sp78;
+CREATE PROCEDURE sp78( in f1 float(24) unsigned zerofill, inout f2 float(24) unsigned zerofill, out f3 float(24) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute78;
+CREATE PROCEDURE spexecute78()
+BEGIN
+declare var1 float(24) unsigned zerofill;
+declare var2 float(24) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp78(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute78();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000010 000000000010 000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010 000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute78;
+DROP PROCEDURE sp78;
+DROP PROCEDURE IF EXISTS sp79;
+CREATE PROCEDURE sp79( in f1 float(53) unsigned zerofill, inout f2 float(53) unsigned zerofill, out f3 float(53) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute79;
+CREATE PROCEDURE spexecute79()
+BEGIN
+declare var1 float(53) unsigned zerofill;
+declare var2 float(53) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+00;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp79(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute79();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000010 0000000000000000000010 0000000000000000000020 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000010 0000000000000000000020 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute79;
+DROP PROCEDURE sp79;
+DROP PROCEDURE IF EXISTS sp80;
+CREATE PROCEDURE sp80( in f1 int, inout f2 int, out f3 int, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute80;
+CREATE PROCEDURE spexecute80()
+BEGIN
+declare var1 int;
+declare var2 int;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -2.15e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp80(-2.15e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute80();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-2147483638 -2147483638 -2147483628 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-2147483638 -2147483628 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute80;
+DROP PROCEDURE sp80;
+DROP PROCEDURE IF EXISTS sp81;
+CREATE PROCEDURE sp81( in f1 int unsigned, inout f2 int unsigned, out f3 int unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute81;
+CREATE PROCEDURE spexecute81()
+BEGIN
+declare var1 int unsigned;
+declare var2 int unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 4.29e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp81(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute81();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+4290000000 4290000000 4290000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+4290000000 4290000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute81;
+DROP PROCEDURE sp81;
+DROP PROCEDURE IF EXISTS sp82;
+CREATE PROCEDURE sp82( in f1 int unsigned zerofill, inout f2 int unsigned zerofill, out f3 int unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute82;
+CREATE PROCEDURE spexecute82()
+BEGIN
+declare var1 int unsigned zerofill;
+declare var2 int unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 4.29e+09;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp82(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute82();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+4290000000 4290000000 4290000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+4290000000 4290000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute82;
+DROP PROCEDURE sp82;
+DROP PROCEDURE IF EXISTS sp83;
+CREATE PROCEDURE sp83( in f1 int zerofill, inout f2 int zerofill, out f3 int zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute83;
+CREATE PROCEDURE spexecute83()
+BEGIN
+declare var1 int zerofill;
+declare var2 int zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 2.15e+08;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp83(2.15e+08, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute83();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0215000000 0215000000 0215000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0215000000 0215000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute83;
+DROP PROCEDURE sp83;
+DROP PROCEDURE IF EXISTS sp84;
+CREATE PROCEDURE sp84( in f1 mediumint, inout f2 mediumint, out f3 mediumint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute84;
+CREATE PROCEDURE spexecute84()
+BEGIN
+declare var1 mediumint;
+declare var2 mediumint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -8388600;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp84(-8388600, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute84();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-8388598 -8388598 -8388588 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-8388598 -8388588 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute84;
+DROP PROCEDURE sp84;
+DROP PROCEDURE IF EXISTS sp85;
+CREATE PROCEDURE sp85( in f1 mediumint unsigned, inout f2 mediumint unsigned, out f3 mediumint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute85;
+CREATE PROCEDURE spexecute85()
+BEGIN
+declare var1 mediumint unsigned;
+declare var2 mediumint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 16777201;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp85(16777201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute85();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777202 16777202 16777212 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777202 16777212 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute85;
+DROP PROCEDURE sp85;
+DROP PROCEDURE IF EXISTS sp86;
+CREATE PROCEDURE sp86( in f1 mediumint unsigned zerofill, inout f2 mediumint unsigned zerofill, out f3 mediumint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute86;
+CREATE PROCEDURE spexecute86()
+BEGIN
+declare var1 mediumint unsigned zerofill;
+declare var2 mediumint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 16777210;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp86(16777210, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute86();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777210 16777210 16777215 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777210 16777215 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute86;
+DROP PROCEDURE sp86;
+DROP PROCEDURE IF EXISTS sp87;
+CREATE PROCEDURE sp87( in f1 mediumint zerofill, inout f2 mediumint zerofill, out f3 mediumint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute87;
+CREATE PROCEDURE spexecute87()
+BEGIN
+declare var1 mediumint zerofill;
+declare var2 mediumint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -8388601;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp87(-8388601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute87();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+16777215 16777215 16777215 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+16777215 16777215 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute87;
+DROP PROCEDURE sp87;
+DROP PROCEDURE IF EXISTS sp88;
+CREATE PROCEDURE sp88( in f1 numeric (0) unsigned zerofill, inout f2 numeric (0) unsigned zerofill, out f3 numeric (0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute88;
+CREATE PROCEDURE spexecute88()
+BEGIN
+declare var1 numeric (0) unsigned zerofill;
+declare var2 numeric (0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp88(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute88();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0100000000 0100000000 0100000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0100000000 0100000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute88;
+DROP PROCEDURE sp88;
+DROP PROCEDURE IF EXISTS sp89;
+CREATE PROCEDURE sp89( in f1 numeric (0, 0) unsigned zerofill, inout f2 numeric (0, 0) unsigned zerofill, out f3 numeric (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute89;
+CREATE PROCEDURE spexecute89()
+BEGIN
+declare var1 numeric (0, 0) unsigned zerofill;
+declare var2 numeric (0, 0) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 99999999;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp89(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute89();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0100000000 0100000000 0100000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0100000000 0100000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute89;
+DROP PROCEDURE sp89;
+DROP PROCEDURE IF EXISTS sp90;
+CREATE PROCEDURE sp90( in f1 numeric (63, 30) unsigned, inout f2 numeric (63, 30) unsigned, out f3 numeric (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute90;
+CREATE PROCEDURE spexecute90()
+BEGIN
+declare var1 numeric (63, 30) unsigned;
+declare var2 numeric (63, 30) unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp90(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute90();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+100000000000000000000.000000000000000000000000000000 10000000000000000000000.000000000000000000000000000000 100000000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+10000000000000000000000.000000000000000000000000000000 100000000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute90;
+DROP PROCEDURE sp90;
+DROP PROCEDURE IF EXISTS sp91;
+CREATE PROCEDURE sp91( in f1 numeric (63, 30) unsigned zerofill, inout f2 numeric (63, 30) unsigned zerofill, out f3 numeric (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute91;
+CREATE PROCEDURE spexecute91()
+BEGIN
+declare var1 numeric (63, 30) unsigned zerofill;
+declare var2 numeric (63, 30) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp91(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute91();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000100000000000000000000.000000000000000000000000000000 000000000010000000000000000000000.000000000000000000000000000000 000000000000100000000000000000010.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000010000000000000000000000.000000000000000000000000000000 000000000000100000000000000000010.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute91;
+DROP PROCEDURE sp91;
+DROP PROCEDURE IF EXISTS sp92;
+CREATE PROCEDURE sp92( in f1 numeric (63, 30) zerofill, inout f2 numeric (63, 30) zerofill, out f3 numeric (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute92;
+CREATE PROCEDURE spexecute92()
+BEGIN
+declare var1 numeric (63, 30) zerofill;
+declare var2 numeric (63, 30) zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp92(-1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute92();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+000000000000000000000000000000010.000000000000000000000000000000 000000000000000000000000000000020.000000000000000000000000000000 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute92;
+DROP PROCEDURE sp92;
+DROP PROCEDURE IF EXISTS sp93;
+CREATE PROCEDURE sp93( in f1 numeric (64) unsigned zerofill, inout f2 numeric (64) unsigned zerofill, out f3 numeric (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute93;
+CREATE PROCEDURE spexecute93()
+BEGIN
+declare var1 numeric (64) unsigned zerofill;
+declare var2 numeric (64) unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 1.00e+22;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp93(1.00e+20, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute93();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+0000000000000000000000000000000000000000000100000000000000000000 0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+0000000000000000000000000000000000000000010000000000000000000000 0000000000000000000000000000000000000000000100000000000000000010 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute93;
+DROP PROCEDURE sp93;
+DROP PROCEDURE IF EXISTS sp94;
+CREATE PROCEDURE sp94( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute94;
+CREATE PROCEDURE spexecute94()
+BEGIN
+declare var1 smallint;
+declare var2 smallint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32701;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp94(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute94();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-32702 -32702 -32692 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-32702 -32692 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute94;
+DROP PROCEDURE sp94;
+DROP PROCEDURE IF EXISTS sp95;
+CREATE PROCEDURE sp95( in f1 smallint unsigned, inout f2 smallint unsigned, out f3 smallint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute95;
+CREATE PROCEDURE spexecute95()
+BEGIN
+declare var1 smallint unsigned;
+declare var2 smallint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 65531;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp95(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute95();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65532 65532 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65532 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute95;
+DROP PROCEDURE sp95;
+DROP PROCEDURE IF EXISTS sp96;
+CREATE PROCEDURE sp96( in f1 smallint unsigned zerofill, inout f2 smallint unsigned zerofill, out f3 smallint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute96;
+CREATE PROCEDURE spexecute96()
+BEGIN
+declare var1 smallint unsigned zerofill;
+declare var2 smallint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 65531;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp96(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute96();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65532 65532 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65532 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute96;
+DROP PROCEDURE sp96;
+DROP PROCEDURE IF EXISTS sp97;
+CREATE PROCEDURE sp97( in f1 smallint zerofill, inout f2 smallint zerofill, out f3 smallint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute97;
+CREATE PROCEDURE spexecute97()
+BEGIN
+declare var1 smallint zerofill;
+declare var2 smallint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -32601;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp97(-32601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute97();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+65535 65535 65535 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+65535 65535 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute97;
+DROP PROCEDURE sp97;
+DROP PROCEDURE IF EXISTS sp98;
+CREATE PROCEDURE sp98( in f1 tinyint, inout f2 tinyint, out f3 tinyint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute98;
+CREATE PROCEDURE spexecute98()
+BEGIN
+declare var1 tinyint;
+declare var2 tinyint;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -115;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp98(-115, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute98();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+-116 -116 -106 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+-116 -106 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute98;
+DROP PROCEDURE sp98;
+DROP PROCEDURE IF EXISTS sp99;
+CREATE PROCEDURE sp99( in f1 tinyint unsigned, inout f2 tinyint unsigned, out f3 tinyint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute99;
+CREATE PROCEDURE spexecute99()
+BEGIN
+declare var1 tinyint unsigned;
+declare var2 tinyint unsigned;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 251;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp99(251, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute99();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+252 252 255 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+252 255 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute99;
+DROP PROCEDURE sp99;
+DROP PROCEDURE IF EXISTS sp100;
+CREATE PROCEDURE sp100( in f1 tinyint unsigned zerofill, inout f2 tinyint unsigned zerofill, out f3 tinyint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute100;
+CREATE PROCEDURE spexecute100()
+BEGIN
+declare var1 tinyint unsigned zerofill;
+declare var2 tinyint unsigned zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = 201;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp100(201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute100();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+202 202 212 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+202 212 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute100;
+DROP PROCEDURE sp100;
+DROP PROCEDURE IF EXISTS sp101;
+CREATE PROCEDURE sp101( in f1 tinyint zerofill, inout f2 tinyint zerofill, out f3 tinyint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+DROP PROCEDURE IF EXISTS spexecute101;
+CREATE PROCEDURE spexecute101()
+BEGIN
+declare var1 tinyint zerofill;
+declare var2 tinyint zerofill;
+declare var3 bigint;
+declare var4 bigint;
+declare var5 bigint;
+declare var6 bigint;
+declare var7 bigint;
+declare var8 bigint;
+set var1 = -101;
+set var3 = -9.22e+18;
+set var5 = -9.22e+18;
+set var7 = -9.22e+18;
+CALL sp101(-101, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+CALL spexecute101();
+f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
+255 255 255 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616 -9220000000000000000 6744073709551616 6744073709551616
+var1 var2 var3 var4 var5 var6 var7 var8
+255 255 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616 6744073709551616
+DROP PROCEDURE spexecute101;
+DROP PROCEDURE sp101;
+USE db_storedproc;
+DROP DATABASE db1;
+USE db_storedproc;
+
+Testcase 4.7.2:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for "allow_invalid_dates" server sql mode
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+drop table IF EXISTS temp_table;
+create table temp_table (f1 datetime);
+set @@sql_mode = 'allow_invalid_dates';
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare a datetime;
+set a = '2005-03-14 01:01:02';
+insert into temp_table values(a);
+END//
+show CREATE PROCEDURE sp2;
+Procedure sql_mode Create Procedure
+sp2 ALLOW_INVALID_DATES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
+BEGIN
+declare a datetime;
+set a = '2005-03-14 01:01:02';
+insert into temp_table values(a);
+END
+set @@sql_mode = 'traditional';
+CALL sp2 ();
+SELECT * from temp_table;
+f1
+2005-03-14 01:01:02
+SELECT @@sql_mode;
+@@sql_mode
+STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP PROCEDURE sp2;
+drop table temp_table;
+
+Testcase 4.7.3:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for *high_not_precedence* server sql mode
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp3;
+set @@sql_mode = 'high_not_precedence';
+CREATE PROCEDURE sp3()
+BEGIN
+declare a int signed;
+declare b int unsigned;
+set a = -5;
+set b = 5;
+SELECT not 1 between a and b;
+END//
+show CREATE PROCEDURE sp3;
+Procedure sql_mode Create Procedure
+sp3 HIGH_NOT_PRECEDENCE CREATE DEFINER=`root`@`localhost` PROCEDURE `sp3`()
+BEGIN
+declare a int signed;
+declare b int unsigned;
+set a = -5;
+set b = 5;
+SELECT not 1 between a and b;
+END
+set @@sql_mode='';
+CALL sp3();
+not 1 between a and b
+1
+SELECT @@sql_mode;
+@@sql_mode
+
+DROP PROCEDURE sp3;
+
+Testcase 4.7.4:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for combination of server sql modes
+
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp4;
+set @@sql_mode = 'ansi, error_for_division_by_zero';
+ERROR 42000: Variable 'sql_mode' can't be set to the value of ' error_for_division_by_zero'
+set @@sql_mode = 'ansi,error_for_division_by_zero';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,ERROR_FOR_DIVISION_BY_ZERO
+CREATE PROCEDURE sp4()
+BEGIN
+declare a int;
+declare b int;
+declare c int;
+set a = 0;
+set b = 1;
+set c = b/a;
+show warnings;
+END//
+show CREATE PROCEDURE sp4;
+Procedure sql_mode Create Procedure
+sp4 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI,ERROR_FOR_DIVISION_BY_ZERO CREATE DEFINER="root"@"localhost" PROCEDURE "sp4"()
+BEGIN
+declare a int;
+declare b int;
+declare c int;
+set a = 0;
+set b = 1;
+set c = b/a;
+show warnings;
+END
+set @@sql_mode='';
+CALL sp4();
+Level Code Message
+Error 1365 Division by 0
+Warnings:
+Error 1365 Division by 0
+DROP PROCEDURE sp4;
+set @@sql_mode='';
+
+Section 3.1.8 - SHOW statement checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.8.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+DROP PROCEDURE IF EXISTS sp6a;
+DROP PROCEDURE IF EXISTS sp6b;
+DROP PROCEDURE IF EXISTS sp6c;
+CREATE PROCEDURE sp6a (i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+language sql
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+CREATE PROCEDURE sp6b (out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+deterministic
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+CREATE PROCEDURE sp6c (inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real) comment 'this is a comment'
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+show CREATE PROCEDURE sp6a;
+Procedure sql_mode Create Procedure
+sp6a CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6a`(i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+show CREATE PROCEDURE sp6b;
+Procedure sql_mode Create Procedure
+sp6b CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6b`(out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+ DETERMINISTIC
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+show CREATE PROCEDURE sp6c;
+Procedure sql_mode Create Procedure
+sp6c CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6c`(inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real)
+ COMMENT 'this is a comment'
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+SHOW PROCEDURE status like 'sp6a';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6a PROCEDURE root@localhost modified created DEFINER
+SHOW PROCEDURE status like 'sp6b';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6b PROCEDURE root@localhost modified created DEFINER
+SHOW PROCEDURE status like 'sp6c';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6c PROCEDURE root@localhost modified created DEFINER this is a comment
+DROP PROCEDURE sp6a;
+DROP PROCEDURE sp6b;
+DROP PROCEDURE sp6c;
+
+Testcase 4.8.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 PROCEDURE root@localhost modified created DEFINER
+DROP PROCEDURE sp6;
+
+Testcase 4.8.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+SHOW CREATE FUNCTION sp6;
+ERROR 42000: FUNCTION sp6 does not exist
+DROP PROCEDURE sp6;
+
+Testcase 4.8.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE FUNCTION sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns longtext
+BEGIN
+set @x=i1;
+set @y=@x;
+return 0;
+END//
+show function status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION sp6;
+
+Testcase 4.8.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp7;
+show CREATE PROCEDURE sp7;
+ERROR 42000: PROCEDURE sp7 does not exist
+
+Testcase 4.8.6:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+show procedure status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.7:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+show CREATE PROCEDURE fn1;
+ERROR 42000: PROCEDURE fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 4.8.8:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+show procedure status like 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+DROP FUNCTION fn1;
+
+Testcase 4.8.9:
+--------------------------------------------------------------------------------
+
+Testcase 4.8.10:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+return i1;
+END//
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created DEFINER
+DROP FUNCTION fn1;
+
+Testcase 4.8.11:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+show CREATE PROCEDURE fn1;
+ERROR 42000: PROCEDURE fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 4.8.12:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1(x int) returns int
+BEGIN
+return x;
+END//
+DROP FUNCTION fn1;
+show CREATE FUNCTION fn1;
+ERROR 42000: FUNCTION fn1 does not exist
+
+Testcase 4.8.13:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS f1000;
+SHOW FUNCTION STATUS LIKE 'f1000';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.14:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+SELECT * from t8;
+END//
+show CREATE FUNCTION sp1;
+ERROR 42000: FUNCTION sp1 does not exist
+DROP PROCEDURE sp1;
+
+Testcase 4.8.15:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+show function status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+DROP PROCEDURE sp6;
+
+Testcase 4.8.16:
+--------------------------------------------------------------------------------
+
+Testcase 4.8.17:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+alter procedure sp6 sql security invoker;
+alter procedure sp6 comment 'this is a new comment';
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc sp6 PROCEDURE root@localhost modified created INVOKER this is a new comment
+DROP PROCEDURE sp6;
+
+Testcase 4.8.18:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+alter function fn1 sql security invoker;
+show create function fn1;
+Function sql_mode Create Function
+fn1 CREATE DEFINER=`root`@`localhost` FUNCTION `fn1`(x int) RETURNS int(11)
+ SQL SECURITY INVOKER
+BEGIN
+return x;
+END
+DROP FUNCTION fn1;
+
+Testcase 4.8.19:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+return i1;
+END//
+alter function fn1 sql security invoker;
+alter function fn1 comment 'this is a function 3242#@%$#@';
+show function status like 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+db_storedproc fn1 FUNCTION root@localhost modified created INVOKER this is a function 3242#@%$#@
+DROP FUNCTION fn1;
+
+Testcase 4.8.20:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 int , i2 int)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+alter procedure sp6 comment 'this is simple';
+show CREATE PROCEDURE sp6;
+Procedure sql_mode Create Procedure
+sp6 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp6`(i1 int , i2 int)
+ COMMENT 'this is simple'
+BEGIN
+set @x=i1;
+set @y=@x;
+END
+DROP PROCEDURE sp6;
+
+Testcase 4.8.21:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 int, i2 int)
+BEGIN
+set @x=i1;
+set @y=@x;
+END//
+DROP PROCEDURE sp6;
+show CREATE PROCEDURE sp6;
+ERROR 42000: PROCEDURE sp6 does not exist
+
+Testcase 4.8.22:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x=i3;
+set @y=@x;
+END//
+DROP PROCEDURE sp6;
+SHOW PROCEDURE status like 'sp6';
+Db Name Type Definer Modified Created Security_type Comment
+
+Testcase 4.8.23:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (x int) returns int
+BEGIN
+return x;
+END//
+DROP FUNCTION fn1;
+show CREATE FUNCTION fn1;
+ERROR 42000: FUNCTION fn1 does not exist
+
+Testcase 4.8.24:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+return i1;
+END//
+DROP FUNCTION fn1;
+SHOW FUNCTION STATUS LIKE 'fn1';
+Db Name Type Definer Modified Created Security_type Comment
+
+Section 3.1.9 - Routine body checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.9.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+SELECT * from t9 limit 0, 100;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+-5000 a` -5000
+-4999 aaa -4999
+-4998 abaa -4998
+-4997 acaaa -4997
+-4996 adaaaa -4996
+-4995 aeaaaaa -4995
+-4994 afaaaaaa -4994
+-4993 agaaaaaaa -4993
+-4992 a^aaaaaaaa -4992
+-4991 a_aaaaaaaaa -4991
+DROP PROCEDURE sp6;
+
+Testcase 4.9.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+delete from res_t9;
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+f1 f2 f3
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i3;
+set @a = i5;
+set @y = @x;
+set @b = @a;
+insert into res_t9 values (@y, @a, 111);
+SELECT * from res_t9;
+update res_t9 set f2 = 1000 where f2 = 50;
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+30 50 111
+f1 f2 f3
+30 1000 111
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Testcase 4.9.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i1;
+set @y = i3;
+set @z = i5;
+set @a = @x;
+set @b = @y;
+set @c = @z;
+create table res_t9(f1 longtext, f2 longblob, f3 real);
+insert into res_t9 values (@a, @b, @c);
+SELECT * from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+10 30 50
+DROP PROCEDURE sp6;
+drop table IF EXISTS res_t9;
+
+Testcase 4.9.6:
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+SELECT * from t9 limit 0, 100;
+return i1;
+END//
+ERROR 0A000: Not allowed to return a result set from a function
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+Warnings:
+Note 1051 Unknown table 'res_t9'
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+delete from res_t9;
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+create table res_t9 (f1 longtext, f2 longblob, f3 real);
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+Warnings:
+Note 1051 Unknown table 'res_t9'
+create table res_t9 (f1 int, f2 char(25), f3 int);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+insert into res_t9 values (100, 'abc', 300);
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+update res_t9 set f1 = 20;
+drop table res_t9;
+return i1;
+END//
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+drop table res_t9;
+DROP FUNCTION IF EXISTS fn1;
+Warnings:
+Note 1305 FUNCTION fn1 does not exist
+
+Testcase 4.9.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+create table res_t9 (f1 longtext, f2 longblob, f3 real);
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+set @x = i1;
+set @y = i3;
+set @z = i5;
+set @a = @x;
+set @b = @y;
+set @c = @z;
+insert into res_t9 values (@a, @b, @c);
+SELECT * from res_t9;
+create index index_1 on res_t9 (f1 (5));
+show index from res_t9;
+END//
+CALL sp6 (10, 20, 30, 40, 50);
+f1 f2 f3
+10 30 50
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+res_t9 1 index_1 1 f1 A NULL 5 NULL YES BTREE
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+Section 3.1._ - :
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 4.11.1:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.2:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1305 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.3:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @xx=1;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for 1318 set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.4:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for 1305 set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1 ();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.5:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.6:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for 1318 set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.7:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.8:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.9:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @xx=1;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.10:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+set @x2=0;
+CALL sp1 (1);
+set @x=0;
+END//
+CALL h1 ();
+SELECT @x, @x2;
+@x @x2
+1 1
+DROP PROCEDURE h1;
+
+Testcase 4.11.11:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.12:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=x;
+END//
+CREATE PROCEDURE h1 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=0;
+CALL sp1 (1);
+set @x=1;
+SELECT @x, @x2;
+END//
+CALL h1 ();
+@x @x2
+1 1
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+Testcase 4.11.13:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+fetch cur1 into a, b;
+SELECT done;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.14:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+fetch cur1 into a, b;
+SELECT done;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.15:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+set @x=0;
+fetch cur1 into a, b;
+SELECT @x=1;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.16:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '02000' set done = 1;
+open cur1;
+repeat
+SELECT done;
+set @x=0;
+fetch cur1 into a, b;
+SELECT @x=1;
+if not done then
+insert into res_t2 values (a, b);
+END if;
+until done END repeat;
+SELECT done;
+close cur1;
+END//
+CALL h1()
+# cleanup;
+done
+0
+@x=1
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.17:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate 'HY000' set done = 1;
+open cur1;
+SELECT done;
+fetch cur1 into a;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.18:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1328 set done = 1;
+open cur1;
+SELECT done;
+fetch cur1 into a;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.19:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate 'HY000' set done = 1;
+open cur1;
+SELECT done;
+set @x=0;
+fetch cur1 into a;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.20:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1328 set done = 1;
+open cur1;
+SELECT done;
+set @x=0;
+fetch cur1 into a;
+set @x=1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.21:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1325 set done = 1;
+open cur1;
+SELECT done;
+open cur1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+done
+1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.22:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1325 set done = 1;
+open cur1;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.23:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1325 set done = 1;
+open cur1;
+set @x=0;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.24:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '24000' set done = 1;
+open cur1;
+set @x=0;
+SELECT done;
+open cur1;
+set @x=1;
+SELECT done, @x;
+close cur1;
+END//
+CALL h1();
+done
+0
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.25:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1326 set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.26:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '24000' set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.27:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1326 set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.28:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '24000' set done = 1;
+set @x=0;
+fetch cur1 into a, b;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.29:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for 1339 set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.30:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare continue handler for sqlstate '20000' set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+done @x
+1 1
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.31:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for 1339 set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.32:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+create table res_t2(y char, z char);
+CREATE PROCEDURE h1()
+BEGIN
+declare done int default 0;
+declare a, b char;
+declare cur1 cursor for SELECT w, x from res_t1;
+declare exit handler for sqlstate '20000' set done = 1;
+set @x=0;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+CALL h1();
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+Testcase 4.11.33:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+create table res_t1(w char, x char);
+insert into res_t1 values('a', 'b');
+insert into res_t1 values('c', 'd');
+CREATE PROCEDURE h1()
+BEGIN
+declare condname condition for sqlstate '20000';
+declare done int default 0;
+declare a, b char;
+declare condname condition for sqlstate '20000';
+declare cur1 cursor for SELECT w, x from t1;
+set @x=2;
+case @x
+when 1 then set @x=10;
+when 2 then set @x=11;
+END case;
+set @x=1;
+SELECT done, @x;
+END//
+ERROR 42000: Duplicate condition: condname
+drop table res_t1;
+
+Testcase 4.11.35:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+CREATE TABLE res_t1(w INT UNIQUE, x CHAR);
+insert into res_t1 values (1, 'a');
+CREATE PROCEDURE h1 ()
+begin1_label:BEGIN
+declare condname1 condition for sqlstate '020';
+declare condname2 condition for sqlstate 'wewe';
+declare condname3 condition for 9999;
+declare exit handler for sqlstate '020' set @var1 = 1;
+declare exit handler for sqlstate 'wewe'set @var1 = 1;
+declare exit handler for 9999 set @var1 = 1;
+set @var2 = 1;
+insert into res_t1 values (2, 'b');
+begin2_label: BEGIN
+declare continue handler for sqlstate '90000023' set @var3= 1;
+set @var4 = 1;
+insert into res_t1 values (3, 'c');
+END begin2_label;
+END begin1_label//
+ERROR 42000: Bad SQLSTATE: '020'
+drop table res_t1;
+
+Testcase 4.11.36:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '00000';
+declare exit handler for condname1 set @x = 1;
+set x1 = 1;
+set x1 = 2;
+END;
+SELECT @x, x1;
+END//
+DROP PROCEDURE h1;
+
+Testcase 4.11.40:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5 int default 0;
+declare condname1 condition for sqlstate '42000';
+declare condname2 condition for sqlstate '42000';
+declare continue handler for condname1 set x1 = 1;
+declare continue handler for condname1 set x2 = 1;
+declare exit handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x4 = 1;
+declare exit handler for condname2 set x5 = 1;
+END//
+ERROR 42000: Duplicate handler declared in the same block
+DROP PROCEDURE IF EXISTS h1;
+drop table res_t1;
+
+Testcase 4.11.41:
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '00000';
+declare exit handler for sqlstate '00000' set @x = 1;
+set x1 = 1;
+set x1 = 2;
+END;
+SELECT @x, x1;
+END//
+DROP PROCEDURE IF EXISTS h1;
+
+* Testcase 3.1.2.53 (4.11.42):
+* Ensure that a handler condition of sqlwarning takes the same action as a
+* handler condition defined with an sqlstate that begins with 01.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+CREATE PROCEDURE h1()
+BEGIN
+DECLARE EXIT HANDLER FOR SQLWARNING SET @done = 1;
+set @done=0;
+set @x=1;
+insert into res_t1 values('xxx', 'yy');
+set @x=0;
+END//
+CALL h1();
+ERROR 42S02: Table 'db_storedproc.res_t1' doesn't exist
+SELECT @done, @x;
+@done @x
+0 1
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+CALL h1();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+CREATE PROCEDURE h1()
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLWARNING SET @done = 1;
+set @done=0;
+set @x=0;
+insert into res_t1 values('xxx', 'yy');
+set @x=1;
+END//
+CALL h1();
+ERROR 42S02: Table 'db_storedproc.res_t1' doesn't exist
+SELECT @done, @x;
+@done @x
+0 0
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+CALL h1();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE h1;
+DROP TABLE res_t1;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result
new file mode 100755
index 00000000000..7a16c10859b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result
@@ -0,0 +1,1387 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.2 - Syntax checks for the stored procedure-specific
+programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.2.8:
+-----------------
+
+Ensure that the scope of each BEGIN/END compound statement within a stored
+procedure definition is properly applied
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+declare x char DEFAULT 'x';
+declare y char DEFAULT 'y';
+set x = '1';
+set y = '2';
+label1: BEGIN
+declare x char DEFAULT 'X';
+declare y char DEFAULT 'Y';
+SELECT f1, f2 into x, y from t2 limit 1;
+SELECT '1.1', x, y;
+label2: BEGIN
+declare x char default 'a';
+declare y char default 'b';
+label3: BEGIN
+declare x char default 'c';
+declare y char default 'd';
+label4: BEGIN
+declare x char default 'e';
+declare y char default 'f';
+label5: BEGIN
+declare x char default 'g';
+declare y char default 'h';
+SELECT 5, x, y;
+END label5;
+SELECT 4, x, y;
+END label4;
+SELECT 3, x, y;
+END label3;
+SELECT 2, x, y;
+END label2;
+END label1;
+set @v1 = x;
+set @v2 = y;
+SELECT '1.2', @v1, @v2;
+END begin_label//
+CALL sp1();
+1.1 x y
+1.1 a a
+5 x y
+5 g h
+4 x y
+4 e f
+3 x y
+3 c d
+2 x y
+2 a b
+1.2 @v1 @v2
+1.2 1 2
+Warnings:
+Warning 1265 Data truncated for column 'x' at row 1
+Warning 1265 Data truncated for column 'y' at row 1
+DROP PROCEDURE IF EXISTS sp1;
+
+Testcase 3.1.2.26:
+------------------
+
+Ensure that the initial value of every variable declared for a stored procedure
+is either NULL or its DEFAULT value, as appropriate.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+set @v1=0;
+set @v2=0;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x1 char default 'x';
+declare y1 char;
+declare x2 tinytext default 'tinytext';
+declare y2 tinytext;
+declare x3 datetime default '2005-10-03 12:13:14';
+declare y3 datetime;
+declare x4 float default 1.2;
+declare y4 float;
+declare x5 blob default 'b';
+declare y5 blob;
+declare x6 smallint default 127;
+declare y6 smallint;
+SELECT x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6;
+END//
+CALL sp1();
+x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6
+x tinytext 2005-10-03 12:13:14 1.2 b 127 NULL NULL NULL NULL NULL NULL
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.30:
+------------------
+
+Ensure that, when a stored procedure is called/executed, every variable always
+uses the correct value: either the value with which it is initialized or the
+value to which it is subsequently SET or otherwise assigned, as appropriate.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( IN invar INT, OUT outvar INT )
+BEGIN
+declare x integer;
+declare y integer default 1;
+set @x = x;
+set @y = y;
+set @z = 234;
+SELECT f1, f2 into @x, @y from t2 limit 1;
+SELECT @x, @y, @z, invar;
+BEGIN
+set @x = 2;
+SELECT @x, @y, @z;
+SET outvar = @x * invar + @z * @f;
+SET invar = outvar;
+BEGIN
+set @y = null, @z = 'abcd';
+SELECT @x, @y, @z;
+END;
+END;
+END//
+SET @invar = 100;
+SET @outvar = @invar;
+SET @f = 10;
+SELECT @x, @y, @z, @invar, @outvar;
+@x @y @z @invar @outvar
+NULL NULL NULL 100 100
+CALL sp1( @invar, @outvar );
+@x @y @z invar
+a` a` 234 100
+@x @y @z
+2 a` 234
+@x @y @z
+2 NULL abcd
+SELECT @x, @y, @z, @invar, @outvar;
+@x @y @z @invar @outvar
+2 NULL abcd 100 2540
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.31:
+------------------
+
+Ensure that the SELECT ... INTO statement properly assigns values to the
+variables in its variable list.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3 into @x, @y from t2 limit 1;
+SELECT @x, @y;
+END//
+CALL sp1();
+@x @y
+-5000 1000-01-01
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.32:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves multiple rows is
+rejected, with an appropriate error message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3 into @x, @y from t2;
+END//
+CALL sp1();
+ERROR 42000: Result consisted of more than one row
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.33:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves too many columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer;
+set @x=x;
+set @y=y;
+SELECT f4, f3, f2, f1 into @x, @y from t2;
+END//
+CALL sp1();
+ERROR 21000: The used SELECT statements have a different number of columns
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.34:
+------------------
+
+Ensure that a SELECT ... INTO statement that retrieves too few columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1( )
+BEGIN
+declare x integer; declare y integer; declare z integer;
+set @x=x;
+set @y=y;
+set @z=z;
+SELECT f4 into @x, @y, @z from t2;
+END//
+CALL sp1();
+ERROR 21000: The used SELECT statements have a different number of columns
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.38:
+------------------
+
+Ensure that the scope of every condition declared is properly applied.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+SELECT '-1-', x1, x2, x3, x4, x5, x6;
+BEGIN
+declare condname condition for sqlstate '23000';
+declare continue handler for condname set x5 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+SELECT '-2-', x1, x2, x3, x4, x5, x6;
+END;
+begin1_label: BEGIN
+BEGIN
+declare condname condition for sqlstate '20000';
+declare continue handler for condname set x1 = 1;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+SELECT '-3-', x1, x2, x3, x4, x5, x6;
+begin2_label: BEGIN
+BEGIN
+declare condname condition for sqlstate '23000';
+declare exit handler for condname set x3 = 1;
+set x4= 1;
+SELECT '-4a', x1, x2, x3, x4, x5, x6;
+insert into res_t1 values ('a', 'b');
+set x4= 2;
+SELECT '-4b', x1, x2, x3, x4, x5, x6;
+END;
+SELECT '-5-', x1, x2, x3, x4, x5, x6;
+END begin2_label;
+SELECT '-6-', x1, x2, x3, x4, x5, x6;
+END;
+SELECT '-7-', x1, x2, x3, x4, x5, x6;
+END begin1_label;
+SELECT 'END', x1, x2, x3, x4, x5, x6;
+END//
+CALL h1();
+-1- x1 x2 x3 x4 x5 x6
+-1- 0 0 0 0 0 0
+-2- x1 x2 x3 x4 x5 x6
+-2- 0 0 0 0 1 1
+-3- x1 x2 x3 x4 x5 x6
+-3- 1 1 0 0 1 1
+-4a x1 x2 x3 x4 x5 x6
+-4a 1 1 0 1 1 1
+-5- x1 x2 x3 x4 x5 x6
+-5- 1 1 1 1 1 1
+-6- x1 x2 x3 x4 x5 x6
+-6- 1 1 1 1 1 1
+-7- x1 x2 x3 x4 x5 x6
+-7- 1 1 1 1 1 1
+END x1 x2 x3 x4 x5 x6
+END 1 1 1 1 1 1
+DROP TABLE IF EXISTS tnull;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE TABLE tnull(f1 int);
+CREATE PROCEDURE sp1()
+BEGIN
+declare cond1 condition for sqlstate '42S02';
+declare continue handler for cond1 set @var2 = 1;
+BEGIN
+declare cond1 condition for sqlstate '23000';
+declare continue handler for cond1 set @var2 = 1;
+END;
+insert into tnull values(1);
+END//
+CALL sp1();
+DROP PROCEDURE h1;
+drop table res_t1;
+DROP PROCEDURE sp1;
+DROP TABLE tnull;
+
+Testcase 3.1.2.43:
+------------------
+
+Ensure that the DECLARE ... HANDLER FOR statement can not declare any handler
+for a condition declared outside of the scope of the handler.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS h2;
+drop table IF EXISTS res_t1;
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare cond_1 condition for sqlstate '23000';
+declare continue handler for cond_1 set x5 = 1;
+BEGIN
+declare cond_2 condition for sqlstate '20000';
+declare continue handler for cond_1 set x1 = 1;
+BEGIN
+declare continue handler for cond_2 set x3 = 1;
+set x2 = 1;
+END;
+set x6 = 0;
+END;
+BEGIN
+declare continue handler for cond_1 set x1 = 1;
+BEGIN
+declare continue handler for cond_2 set x3 = 1;
+set x2 = 1;
+END;
+set x6 = 0;
+END;
+END;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+ERROR 42000: Undefined CONDITION: cond_2
+CREATE PROCEDURE h2 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare condname condition for sqlstate '23000';
+declare continue handler for condname set x5 = 1;
+BEGIN
+declare condname condition for sqlstate '20000';
+declare continue handler for condname set x1 = 1;
+BEGIN
+declare condname condition for sqlstate '42000';
+declare continue handler for condname set x3 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+set x4= 0;
+CALL sp1();
+set x4= 1;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+END;
+set x2 = 0;
+case x2
+when 1 then set x2=10;
+when 2 then set x2=11;
+END case;
+set x2 = 1;
+set x6 = 0;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+END;
+END;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+CALL h2();
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+SELECT * FROM res_t1;
+w x
+a b
+DROP PROCEDURE h2;
+drop table res_t1;
+
+Testcase 3.1.2.44:
+------------------
+
+Ensure that the DECLARE ... HANDLER FOR statement cannot declare a handler for
+any invalid, or undeclared, condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS h1;
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare condname1 condition for sqlstate '23000';
+BEGIN
+declare condname2 condition for sqlstate '20000';
+declare continue handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x1 = 1;
+END;
+END;
+BEGIN
+declare condname3 condition for sqlstate '42000';
+declare continue handler for condname1 set x3 = 1;
+declare continue handler for condname2 set x5 = 1;
+declare continue handler for condname3 set x1 = 1;
+END;
+END//
+ERROR 42000: Undefined CONDITION: condname1
+CREATE PROCEDURE h1 ()
+BEGIN
+DECLARE x1 INT DEFAULT 0;
+BEGIN
+DECLARE condname1 CONDITION CHECK SQLSTATE '23000';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 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 'CHECK SQLSTATE '23000';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+' at line 5
+CREATE PROCEDURE h1 ()
+BEGIN
+DECLARE x1 INT DEFAULT 0;
+BEGIN
+DECLARE condname1 CONDITION FOR SQLSTATE 'qwert';
+END;
+DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+END//
+ERROR 42000: Bad SQLSTATE: 'qwert'
+
+Testcase 3.1.2.45 + 3.1.2.50:
+-----------------------------
+
+45. Ensure that the scope of every handler declared is properly applied.
+50. Ensure that a CONTINUE handler allows the execution of the stored procedure
+. to continue once the handler statement has completed its own execution (that
+. is, once the handler action statement has been executed).
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p1undo;
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t1;
+==> 'UNDO' is still not supported.
+create procedure p1undo ()
+begin
+declare undo handler for sqlexception select '1';
+select * from tqq;
+SELECT 'end of 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 'undo handler for sqlexception select '1';
+select * from tqq;
+SELECT 'end of 1';
+' at line 3
+create procedure p1 ()
+begin
+declare exit handler for sqlexception select 'exit handler 1';
+begin
+declare exit handler for sqlexception select 'exit handler 2';
+begin
+declare continue handler for sqlexception select 'continue handler 3';
+drop table if exists tqq;
+select * from tqq;
+SELECT 'end of BEGIN/END 3';
+end;
+drop table if exists tqq;
+select * from tqq;
+SELECT 'end of BEGIN/END 2';
+end;
+select * from tqq;
+SELECT 'end of BEGIN/END 1';
+end;//
+call p1()//
+continue handler 3
+continue handler 3
+end of BEGIN/END 3
+end of BEGIN/END 3
+exit handler 2
+exit handler 2
+exit handler 1
+exit handler 1
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+CREATE PROCEDURE h1 ()
+BEGIN
+declare x1, x2, x3, x4, x5, x6 int default 0;
+BEGIN
+declare continue handler for sqlstate '23000' set x5 = 1;
+insert into res_t1 values ('a', 'b');
+set x6 = 1;
+END;
+begin1_label: BEGIN
+BEGIN
+declare continue handler for sqlstate '23000' set x1 = 1;
+insert into res_t1 values ('a', 'b');
+set x2 = 1;
+begin2_label: BEGIN
+BEGIN
+declare exit handler for sqlstate '23000' set x3 = 1;
+set x4= 1;
+insert into res_t1 values ('a', 'b');
+set x4= 0;
+END;
+END begin2_label;
+END;
+END begin1_label;
+SELECT x1, x2, x3, x4, x5, x6;
+END//
+CALL h1();
+x1 x2 x3 x4 x5 x6
+1 1 1 1 1 1
+CREATE PROCEDURE sp1()
+begin1_label:BEGIN
+declare exit handler for sqlstate '00000' set @var1 = 5;
+set @var2 = 6;
+begin2_label:BEGIN
+declare continue handler for sqlstate '00000' set @var3 = 7;
+set @var4 = 8;
+SELECT @var3, @var4;
+END begin2_label;
+SELECT @var1, @var2;
+END begin1_label//
+CALL sp1();
+@var3 @var4
+NULL 8
+@var1 @var2
+NULL 6
+DROP PROCEDURE p1;
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+DROP TABLE res_t1;
+
+Testcase 3.1.2.50:
+------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @y=0;
+END//
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 1;
+set @x=1;
+SELECT @x2;
+CALL sp1(1);
+set @x=2;
+SELECT @x2, @x;
+END//
+CALL sp2();
+@x2
+NULL
+@x2 @x
+1 2
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.2.2.51:
+------------------
+
+Ensure that an EXIT handler causes the execution of the stored procedure to
+terminate, within its scope, once the handler action statement has been
+executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @x=0;
+END//
+CREATE PROCEDURE sp2 ()
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 1;
+set @x2=0;
+set @x=1;
+SELECT '-1-', @x2, @x;
+CALL sp1(1);
+SELECT '-2-', @x2, @x;
+set @x=2;
+END//
+CALL sp1(1);
+ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp1; expected 2, got 1
+CALL sp2();
+-1- @x2 @x
+-1- 0 1
+SELECT '-3-', @x2, @x;
+-3- @x2 @x
+-3- 1 1
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.52:
+------------------
+
+Ensure that an EXIT handler does not cause the execution of the stored procedure
+to terminate outside of its scope.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+set @x=0;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+declare continue handler for sqlstate '42000' set @x2 = 2;
+set @x2 = 1;
+set @x =20;
+SELECT '-1-', @x2, @x;
+BEGIN
+declare exit handler for sqlstate '42000' set @x2 = 11;
+SELECT '-2-', @x2, @x;
+CALL sp1(1);
+SELECT '-3a', @x2, @x;
+set @x=21;
+SELECT '-3b', @x2, @x;
+END;
+set @x=22;
+SELECT '-4-', @x2, @x;
+END//
+CALL sp2();
+-1- @x2 @x
+-1- 1 20
+-2- @x2 @x
+-2- 1 20
+-4- @x2 @x
+-4- 11 22
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.54:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“01“ is always exactly equivalent in action to a handler with an SQLWARNING
+condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+DROP TABLE IF EXISTS temp;
+CREATE TABLE temp( f1 CHAR, f2 CHAR);
+CREATE PROCEDURE sp0()
+BEGIN
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+declare continue handler for sqlstate '01000' set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+declare continue handler for sqlwarning set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+declare exit handler for sqlstate '01000' set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+declare exit handler for sqlwarning set @done = 1;
+set @done=0;
+set @x=0;
+insert into temp values('xxx', 'yy');
+set @x=1;
+END//
+INSERT INTO temp VALUES('0', NULL);
+CALL sp0();
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Warning 1265 Data truncated for column 'f2' at row 1
+SELECT @done, @x;
+@done @x
+0 1
+INSERT INTO temp VALUES('1', NULL);
+CALL sp1();
+SELECT @done, @x;
+@done @x
+1 1
+INSERT INTO temp VALUES('2', NULL);
+CALL sp2();
+SELECT @done, @x;
+@done @x
+1 1
+INSERT INTO temp VALUES('3', NULL);
+CALL sp3();
+SELECT @done, @x;
+@done @x
+1 0
+INSERT INTO temp VALUES('4', NULL);
+CALL sp4();
+SELECT @done, @x;
+@done @x
+1 0
+SELECT * FROM temp;
+f1 f2
+0 NULL
+x y
+1 NULL
+x y
+2 NULL
+x y
+3 NULL
+x y
+4 NULL
+x y
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+DROP TABLE temp;
+
+Testcase 3.1.2.56:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“02“ is always exactly equivalent in action to a handler with a NOT FOUND
+condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp0()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare continue handler for sqlstate '02000' set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare continue handler for not found set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare exit handler for sqlstate '02000' set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+declare exit handler for not found set @done = 1;
+SET @done = 0;
+SET @x = 0;
+OPEN cur1;
+FETCH cur1 INTO f1_value;
+SET @x = 1;
+FETCH cur1 INTO f1_value;
+SET @x = 2;
+CLOSE cur1;
+END//
+CALL sp0();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+SELECT @done, @x;
+@done @x
+0 1
+CALL sp1();
+SELECT @done, @x;
+@done @x
+1 2
+CALL sp2();
+SELECT @done, @x;
+@done @x
+1 2
+CALL sp3();
+SELECT @done, @x;
+@done @x
+1 1
+CALL sp4();
+SELECT @done, @x;
+@done @x
+1 1
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+Testcase 3.1.2.58:
+------------------
+
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+anything other that “01“ or “02“ is always exactly equivalent in action to a
+handler with an SQLEXCEPTION condition.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp0()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp1()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE continue HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE continue HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE EXIT HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+END//
+CREATE PROCEDURE sp4()
+BEGIN
+DECLARE f1_value CHAR(20);
+DECLARE cv INT DEFAULT 0;
+DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+SET @x = 1;
+CASE cv
+WHEN 2 THEN SET @x = 2;
+WHEN 3 THEN SET @x = 3;
+END case;
+SET @x = 4;
+SELECT f1, f2 FROM t2
+UNION
+SELECT f1, f2,3 FROM t2;
+SET @x = 5;
+FETCH cur1 INTO f1_value;
+SET @x = 6;
+CLOSE cur1;
+END//
+CALL sp0();
+ERROR 20000: Case not found for CASE statement
+SELECT '-0-', @x;
+-0- @x
+-0- 1
+CALL sp1();
+SQLSTATE
+20000
+SQLSTATE
+21000
+SQLSTATE
+24000
+SELECT '-1-', @x;
+-1- @x
+-1- 6
+CALL sp2();
+SQLSTATE
+SQLEXCEPTION
+SQLSTATE
+SQLEXCEPTION
+SQLSTATE
+24000
+SELECT '-2-', @x;
+-2- @x
+-2- 6
+CALL sp3();
+SQLSTATE
+20000
+SELECT '-3-', @x;
+-3- @x
+-3- 1
+CALL sp4();
+SQLSTATE
+SQLEXCEPTION
+SELECT '-4-', @x;
+-4- @x
+-4- 1
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+Testcase 3.1.2.65:
+------------------
+
+Ensure that FETCH <cursor name> returns the first row of the cursor_s result set
+the first time FETCH is executed, that it returns each subsequent row of the
+cursor_s result set each of the subsequent times FETCH is executed, and that it
+returns a NOT FOUND warning if it is executed after the last row of the cursor_s
+result set has already been fetched.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp;
+CREATE TABLE temp(
+cnt INT,
+f1 CHAR(20),
+f2 CHAR(20),
+f3 INT,
+f4 CHAR(20),
+f5 INT);
+INSERT INTO temp VALUES(0, 'onip', 'abc', 8760, 'xyz', 10);
+CREATE PROCEDURE sp1( )
+BEGIN
+declare proceed int default 1;
+declare count integer default 1;
+declare f1_value char(20);
+declare f2_value char(20);
+declare f5_value char(20);
+declare f4_value integer;
+declare f6_value integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3;
+open cur1;
+while proceed do
+SELECT count AS 'loop';
+fetch cur1 into f1_value, f2_value, f4_value, f5_value, f6_value;
+insert into temp values (count, f1_value, f2_value, f4_value, f5_value, f6_value);
+set count = count + 1;
+END while;
+END//
+CALL sp1();
+loop
+1
+loop
+2
+loop
+3
+loop
+4
+ERROR 02000: No data - zero rows fetched, selected, or processed
+SELECT * FROM temp;
+cnt f1 f2 f3 f4 f5
+0 onip abc 8760 xyz 10
+1 a` a` -5000 a` -5000
+2 aaa aaa -4999 aaa -4999
+3 abaa abaa -4998 abaa -4998
+DROP TABLE temp;
+DROP PROCEDURE sp1;
+
+Testcase 3.1.2.68:
+------------------
+
+Ensure that FETCH <cursor name> fails with an appropriate error message if the
+number of columns to be fetched does not match the number of variables specified
+by the FETCH statement.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--> not enough columns in FETCH statement
+CREATE PROCEDURE sp1( )
+BEGIN
+declare newf1 char(20);
+declare cur1 cursor for SELECT f1, f2 from t2 limit 10;
+declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+BEGIN
+open cur1;
+fetch cur1 into newf1;
+SELECT newf1;
+close cur1;
+END;
+END//
+--> too many columns in FETCH statement
+CREATE PROCEDURE sp2( )
+BEGIN
+declare newf1 char(20);
+declare newf2 char(20);
+declare cur1 cursor for SELECT f1 from t2 limit 10;
+declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+BEGIN
+open cur1;
+fetch cur1 into newf1, newf2;
+SELECT newf1, newf2;
+close cur1;
+END;
+END//
+--> not enough columns in FETCH statement
+CALL sp1();
+ERROR HY000: Incorrect number of FETCH variables
+--> too many columns in FETCH statement
+CALL sp2();
+ERROR HY000: Incorrect number of FETCH variables
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+Testcase 3.1.2.75:
+------------------
+
+Ensure that, for nested compound statements, a cursor that was declared and
+opened during an outer level of the statement is not closed when an inner level
+of a compound statement ends.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS temp1;
+DROP PROCEDURE IF EXISTS sp1;
+create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) );
+SELECT f1, f2, f4, f5 from t2;
+f1 f2 f4 f5
+a` a` -5000 a`
+aaa aaa -4999 aaa
+abaa abaa -4998 abaa
+acaaa acaaa -4997 acaaa
+adaaaa adaaaa -4996 adaaaa
+aeaaaaa aeaaaaa -4995 aeaaaaa
+afaaaaaa afaaaaaa -4994 afaaaaaa
+agaaaaaaa agaaaaaaa -4993 agaaaaaaa
+a^aaaaaaaa a^aaaaaaaa -4992 a^aaaaaaaa
+a_aaaaaaaaa a_aaaaaaaaa -4991 a_aaaaaaaaa
+CREATE PROCEDURE sp1( )
+BEGIN
+declare count integer;
+declare from0 char(20);
+declare newf1 char(20);
+declare newf2 char(20);
+declare newf5 char(20);
+declare newf4 integer;
+declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+open cur1;
+open cur2;
+BEGIN
+declare continue handler for sqlstate '02000' set count = 1;
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-1-', count, newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur1_out', newf1, newf2, newf4, newf5);
+set count = 4;
+BEGIN
+while count > 0 do
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-2-', count, newf1, newf2, newf4, newf5;
+set count = count - 1;
+END while;
+SELECT '-3-', count, newf1, newf2, newf4, newf4;
+END;
+BEGIN
+fetch cur1 into newf1, newf2, newf4, newf5;
+SELECT '-4-', newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur1_in', newf1, newf2, newf4, newf5);
+END;
+fetch cur2 into newf1, newf2, newf4, newf5;
+SELECT '-5-', newf1, newf2, newf4, newf5;
+insert into temp1 values ('cur2', newf1, newf2, newf4, newf5);
+close cur1;
+END;
+fetch cur2 into newf1, newf2, newf4, newf5;
+SELECT '-6-', newf1, newf2, newf4, newf5;
+close cur2;
+END//
+CALL sp1();
+-1- count newf1 newf2 newf4 newf5
+-1- NULL a` a` -5000 a`
+-2- count newf1 newf2 newf4 newf5
+-2- 4 aaa aaa -4999 aaa
+-2- count newf1 newf2 newf4 newf5
+-2- 3 abaa abaa -4998 abaa
+-2- count newf1 newf2 newf4 newf5
+-2- 2 acaaa acaaa -4997 acaaa
+-2- count newf1 newf2 newf4 newf5
+-2- 1 adaaaa adaaaa -4996 adaaaa
+-3- count newf1 newf2 newf4 newf4
+-3- 0 adaaaa adaaaa -4996 -4996
+-4- newf1 newf2 newf4 newf5
+-4- adaaaa adaaaa -4996 adaaaa
+-5- newf1 newf2 newf4 newf5
+-5- a` a` -5000 a`
+-6- newf1 newf2 newf4 newf5
+-6- aaa aaa -4999 aaa
+SELECT * from temp1;
+f0 f1 f2 f3 f4
+cur1_out a` a` -5000 a`
+cur1_in adaaaa adaaaa -4996 adaaaa
+cur2 a` a` -5000 a`
+DROP PROCEDURE sp1;
+drop table temp1;
+
+Testcase 3.1.2.76:
+------------------
+
+Ensure that all cursors operate asensitively, so that there is no concurrency
+conflict between cursors operating on the same, or similar, sets of results
+during execution of one or more stored procedures.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS temp1;
+drop table IF EXISTS temp2;
+create table temp1( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+create table temp2( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+CREATE PROCEDURE sp_inner( )
+BEGIN
+declare proceed int default 1;
+declare i_count integer default 20;
+declare i_newf1 char(20);
+declare i_newf2 char(20);
+declare i_newf3 date;
+declare i_newf4 integer;
+declare i_newf11 char(20);
+declare i_newf12 char(20);
+declare i_newf13 date;
+declare i_newf14 integer;
+declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4;
+declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3;
+declare continue handler for sqlstate '02000' set proceed=0;
+open cur1;
+open cur2;
+set i_count = 10;
+while proceed do
+fetch cur1 into i_newf1, i_newf2, i_newf3, i_newf4;
+IF proceed THEN
+insert into temp1 values ('sp_inner', i_count, i_newf1, i_newf2, i_newf3, i_newf4);
+fetch cur2 into i_newf11, i_newf12, i_newf13, i_newf14;
+IF proceed THEN
+insert into temp2 values ('sp_inner', i_count, i_newf11, i_newf12, i_newf13, i_newf14);
+END IF;
+END IF;
+set i_count = i_count - 1;
+END while;
+close cur1;
+close cur2;
+END//
+CREATE PROCEDURE sp_outer( )
+BEGIN
+DECLARE proceed INT DEFAULT 1;
+DECLARE o_count INTEGER DEFAULT 20;
+DECLARE o_newf1 CHAR(20);
+DECLARE o_newf2 CHAR(20);
+DECLARE o_newf3 DATE;
+DECLARE o_newf4 INTEGER;
+DECLARE o_newf11 CHAR(20);
+DECLARE o_newf12 CHAR(20);
+DECLARE o_newf13 DATE;
+DECLARE o_newf14 INTEGER;
+DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0;
+OPEN cur1;
+OPEN cur2;
+SET o_count = 1;
+WHILE proceed DO
+FETCH cur1 INTO o_newf1, o_newf2, o_newf3, o_newf4;
+IF proceed THEN
+INSERT INTO temp1 VALUES ('_sp_out_', o_count, o_newf1, o_newf2, o_newf3, o_newf4);
+CALL sp_inner();
+FETCH cur2 INTO o_newf11, o_newf12, o_newf13, o_newf14;
+IF proceed THEN
+INSERT INTO temp2 VALUES ('_sp_out_', o_count, o_newf11, o_newf12, o_newf13, o_newf14);
+END IF;
+END IF;
+SET o_count = o_count + 1;
+END WHILE;
+CLOSE cur1;
+CLOSE cur2;
+END//
+CALL sp_outer();
+SELECT * FROM temp1;
+f0 cnt f1 f2 f3 f4
+_sp_out_ 1 a` a` 1000-01-01 -5000
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 2 aaa aaa 1000-01-02 -4999
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 3 abaa abaa 1000-01-03 -4998
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 4 acaaa acaaa 1000-01-04 -4997
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+_sp_out_ 5 adaaaa adaaaa 1000-01-05 -4996
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+sp_inner 7 acaaa acaaa 1000-01-04 -4997
+SELECT * FROM temp2;
+f0 cnt f1 f2 f3 f4
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 1 a` a` 1000-01-01 -5000
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 2 aaa aaa 1000-01-02 -4999
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 3 abaa abaa 1000-01-03 -4998
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 4 acaaa acaaa 1000-01-04 -4997
+sp_inner 10 a` a` 1000-01-01 -5000
+sp_inner 9 aaa aaa 1000-01-02 -4999
+sp_inner 8 abaa abaa 1000-01-03 -4998
+_sp_out_ 5 adaaaa adaaaa 1000-01-05 -4996
+DROP PROCEDURE sp_outer;
+DROP PROCEDURE sp_inner;
+DROP TABLE temp1;
+DROP TABLE temp2;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result
new file mode 100755
index 00000000000..e20c32967e9
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result
@@ -0,0 +1,490 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.3 - Syntax checks for the stored procedure-specific flow
+control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.3.7:
+-----------------
+
+Ensure that the IF statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp9;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp9( action char(20), subaction char(20) )
+BEGIN
+if action = 'action' then
+if subaction = 'subaction' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction' , 1);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 2);
+END if;
+else
+if subaction = 'subaction'
+ then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction' , 3);
+elseif subaction = 'subaction1'
+ then
+BEGIN
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values ('none', 'subaction1', 4);
+END;
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 5);
+END if;
+END if;
+END//
+CALL sp9( 'action', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=1;
+f1 f2 f3
+action subaction 1
+CALL sp9( 'temp', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=3;
+f1 f2 f3
+none subaction 3
+CALL sp9( 'temp', 'subaction1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=4;
+f1 f2 f3
+none subaction1 4
+CALL sp9( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=2;
+f1 f2 f3
+action none 2
+CALL sp9( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=5;
+f1 f2 f3
+none none 5
+DROP PROCEDURE sp9;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.8.:
+------------------
+
+Ensure that the CASE statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp10;
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+CREATE PROCEDURE sp10( action char(20), subaction char(20) )
+BEGIN
+case action
+when 'action' then
+case
+when subaction = 'subaction_1' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 1);
+when subaction = 'subaction_2' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 2);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 3);
+END case;
+else
+case
+when subaction = 'subaction_1' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_1' , 4);
+when subaction = 'subaction_2' then
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_2' , 5);
+else
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 6);
+END case;
+END case;
+END//
+CALL sp10( 'action', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action subaction_2 1
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'action', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action subaction_2 2
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none subaction_1 4
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none subaction_2 5
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+action none 3
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CALL sp10( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+none none 6
+DROP PROCEDURE sp10;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.9 + 3.1.3.15:
+----------------------------
+
+09. Ensure that the LOOP statement acts correctly for all variants, including
+. cases where statements are nested.
+15. Ensure that the LEAVE statement acts correctly for all variants, including
+. cases where statements are nested.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp11;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp11( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: loop
+if count2 > 3 then leave label1;
+END if;
+set count1 = 1;
+label2: loop
+if count1 > 4 then leave label2;
+END if;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+set count1 = count1 + 1;
+iterate label2;
+END loop label2;
+set count2 = count2 + 1;
+iterate label1;
+END loop label1;
+END//
+CALL sp11();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+xyz pqr 1
+xyz pqr 2
+xyz pqr 3
+xyz pqr 4
+DROP PROCEDURE sp11;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.16:
+------------------
+
+Ensure that the ITERATE statement acts correctly for all variants, including
+cases where statements are nested.
+(tests for this testcase are also included in other testcases)
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp31316;
+CREATE PROCEDURE sp31316( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+label1: loop
+if count2 > 3 then leave label1;
+END if;
+set count1 = 1;
+label2: loop
+if count1 > 4 then leave label2;
+END if;
+insert into temp values( count1, count2);
+set count1 = count1 + 1;
+iterate label3;
+END loop label2;
+set count2 = count2 + 1;
+iterate label1;
+END loop label1;
+END//
+ERROR 42000: ITERATE with no matching label: label3
+
+Testcase 3.1.3.18:
+------------------
+
+Ensure that the REPEAT statement acts correctly for all variants, including
+cases where statements are nested.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp17;
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+CREATE PROCEDURE sp17( )
+BEGIN
+declare count1 integer default 1;
+declare count2 integer default 1;
+repeat
+set count1 = count1 + 1;
+set count2 = 1;
+label1: repeat
+set count2 = count2 + 1;
+insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+until count2 > 3
+END repeat label1;
+until count1 > 3
+END repeat;
+END//
+CALL sp17();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+f1 f2 f3
+xyz pqr 2
+xyz pqr 2
+xyz pqr 2
+xyz pqr 3
+xyz pqr 3
+xyz pqr 3
+xyz pqr 4
+xyz pqr 4
+xyz pqr 4
+DROP PROCEDURE sp17;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+Testcase 3.1.3.24:
+------------------
+
+Ensure that the WHILE statement acts correctly for all variants, including cases
+where statements are nested.
+--------------------------------------------------------------------------------
+drop table IF EXISTS res_t21;
+DROP PROCEDURE IF EXISTS sp21;
+create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);
+insert into res_t21 values('ashwin', 'mokadam', 25);
+CREATE PROCEDURE sp21( )
+BEGIN
+declare count1 integer default 0;
+declare count2 integer default 0;
+while count1 < 3 do
+BEGIN
+declare ithisissamevariablename int default 100;
+SELECT ithisissamevariablename;
+BEGIN
+declare ithisissamevariablename int default 200;
+SELECT ithisissamevariablename;
+END;
+set count2 = 0;
+label1: while count2 < 3 do
+BEGIN
+declare count1 integer default 7;
+set count2 = count2 + 1;
+insert into res_t21 values( 'xyz' , 'pqr', count2);
+label2: while count1 < 10 do
+set count1 = count1 + 1;
+insert into res_t21 values( 'xyz' , 'pqr', count1);
+END while label2;
+END;
+END while label1;
+set count1 = count1 + 1;
+END;
+END while;
+END//
+CALL sp21();
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+ithisissamevariablename
+100
+ithisissamevariablename
+200
+SELECT * from res_t21;
+name surname age_averylongfieldname_averylongname_1234569
+ashwin mokadam 25
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 1
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 2
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+xyz pqr 3
+xyz pqr 8
+xyz pqr 9
+xyz pqr 10
+DROP PROCEDURE sp21;
+drop table res_t21;
+
+Testcase 3.1.3.30:
+------------------
+
+Ensure that multiple cases of all possible combinations of the control flow
+statements, nested within multiple compound statements within a stored
+procedure, always act correctly and return the expected result.
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS res_tbl;
+DROP PROCEDURE IF EXISTS sp31330;
+create table res_tbl (f1 int, f2 text, f3 blob, f4 date,
+f5 set('one', 'two', 'three', 'four', 'five') default 'one');
+CREATE PROCEDURE sp31330 (path int)
+BEGIN
+declare count int default 1;
+declare var1 text;
+declare var2 blob;
+declare var3 date;
+declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';
+case
+when path=1 then
+set var3 = '2000-11-09';
+set var1 = 'flowing through case 1';
+label1: loop
+if count > 5 then
+if var4=1000 then
+set var2 = 'exiting out of case 1 - invalid SET';
+END if;
+if var4='two' then
+set var2 = 'exiting out of case 1';
+END if;
+insert into res_tbl values (1, var1, var2, var3, (count-2));
+leave label1;
+elseif count = 5 then
+set count= count + 2;
+set var4='two';
+iterate label1;
+else
+set count= count + 1;
+END if;
+set var4='one';
+END loop label1;
+when path=2 then
+set var3 = '1989-11-09';
+set var1 = 'flowing through case 2';
+set @count3=0;
+label2: repeat
+set count=count + 1;
+set @count2=1;
+while @count2 <= 5 do
+set @count2 = @count2 + 1;
+END while;
+SELECT @count2;
+set @count3=@count3 + @count2;
+until count > 5
+END repeat label2;
+set var2 = 'exiting out of case 2';
+set var4 = count-3;
+SELECT @count3;
+insert into res_tbl values (2, var1, var2, var3, var4);
+ELSE BEGIN
+set @error_opt='undefined path specified';
+SELECT @error_opt;
+END;
+END case;
+END//
+CALL sp31330();
+ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp31330; expected 1, got 0
+CALL sp31330(1);
+SELECT * from res_tbl;
+f1 f2 f3 f4 f5
+1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
+CALL sp31330(2);
+@count2
+6
+@count2
+6
+@count2
+6
+@count2
+6
+@count2
+6
+@count3
+30
+SELECT * from res_tbl;
+f1 f2 f3 f4 f5
+1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
+2 flowing through case 2 exiting out of case 2 1989-11-09 one,two
+CALL sp31330(4);
+@error_opt
+undefined path specified
+DROP PROCEDURE sp31330;
+drop table res_tbl;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result
new file mode 100644
index 00000000000..11b1d3873b3
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result
@@ -0,0 +1,399 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.6 - Privilege Checks:
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+
+root@localhost db_storedproc_1
+
+Testcase 3.1.6.1:
+-----------------
+Ensure that no user may create a stored procedure without the GRANT CREATE
+ROUTINE privilege.
+--------------------------------------------------------------------------------
+create user 'user_1'@'localhost';
+grant all on db_storedproc_1.* to 'user_1'@'localhost';
+revoke create routine on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+DROP PROCEDURE IF EXISTS sp1;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
+
+root@localhost db_storedproc_1
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+
+root@localhost db_storedproc_1
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp1;
+
+Testcase 3.1.6.2:
+-----------------
+Ensure that root always has the GRANT CREATE ROUTINE privilege.
+(checked by other testscases)
+--------------------------------------------------------------------------------
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+DROP PROCEDURE IF EXISTS sp3;
+DROP FUNCTION IF EXISTS fn1;
+CREATE PROCEDURE sp3(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+CREATE FUNCTION fn1(v1 int) returns int
+BEGIN
+return v1;
+END//
+
+root@localhost db_storedproc_1
+drop user 'user_1'@'localhost';
+DROP PROCEDURE sp3;
+DROP FUNCTION fn1;
+Warnings:
+Error 1133 Can't find any matching row in the user table
+Error 1269 Can't revoke all privileges for one or more of the requested users
+Warning 1405 Failed to revoke all privileges to dropped routine
+
+Testcase 3.1.6.4:
+-----------------
+Ensure that the default security provision of a stored procedure is SQL SECURITY
+DEFINER.
+--------------------------------------------------------------------------------
+CREATE USER 'user_1'@'localhost';
+grant update on db_storedproc_1.t6 to 'user_1'@'localhost';
+grant execute on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+USE db_storedproc_1;
+DROP PROCEDURE IF EXISTS sp4;
+CREATE PROCEDURE sp4(v1 char(20))
+BEGIN
+SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+USE db_storedproc_1;
+CALL sp4('a');
+f1 f2 f3 f4 f5 f6
+SELECT SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE,
+ROUTINE_BODY, ROUTINE_DEFINITION, IS_DETERMINISTIC,
+SQL_DATA_ACCESS, SECURITY_TYPE, SQL_MODE, ROUTINE_COMMENT
+FROM information_schema.routines
+WHERE routine_schema LIKE 'db_sto%';
+SPECIFIC_NAME sp4
+ROUTINE_SCHEMA db_storedproc_1
+ROUTINE_NAME sp4
+ROUTINE_TYPE PROCEDURE
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION NULL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SECURITY_TYPE DEFINER
+SQL_MODE
+ROUTINE_COMMENT
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp4;
+DROP USER 'user_1'@'localhost';
+
+Testcase 3.1.6.5:
+-----------------
+Ensure that a stored procedure defined with SQL SECURITY DEFINER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user who created the stored procedure.
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+CREATE TABLE t3165 ( c1 char(20), c2 char(20), c3 date);
+INSERT INTO t3165 VALUES ('inserted', 'outside of SP', NULL);
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+grant SELECT on db_storedproc_1.* to 'user_2'@'localhost';
+grant execute on db_storedproc_1.* to 'user_2'@'localhost';
+flush privileges;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+CREATE PROCEDURE sp5_s_i () sql security definer
+BEGIN
+SELECT * from db_storedproc_1.t3165;
+insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_s_i', 1000);
+END//
+CREATE PROCEDURE sp5_sel () sql security definer
+BEGIN
+SELECT * from db_storedproc_1.t3165;
+END//
+CREATE PROCEDURE sp5_ins () sql security definer
+BEGIN
+insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_ins', 1000);
+END//
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+grant insert on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+CALL sp5_ins();
+CALL sp5_sel();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+
+root@localhost db_storedproc_1
+REVOKE INSERT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+c1 c2 c3
+inserted outside of SP NULL
+inserted from sp5_ins 2000-10-00
+inserted from sp5_s_i 2000-10-00
+inserted from sp5_ins 2000-10-00
+
+root@localhost db_storedproc_1
+REVOKE SELECT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+user_2@localhost db_storedproc_1
+CALL sp5_s_i();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_ins();
+ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
+CALL sp5_sel();
+ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp5_s_i;
+DROP PROCEDURE sp5_sel;
+DROP PROCEDURE sp5_ins;
+DROP TABLE t3165;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+Testcase 3.1.6.6:
+-----------------
+Ensure that a stored procedure defined with SQL SECURITY INVOKER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user executing the stored procedure.
+--------------------------------------------------------------------------------
+USE db_storedproc_1;
+CREATE TABLE t3166 ( c1 char(30) );
+INSERT INTO db_storedproc_1.t3166 VALUES ('inserted outside SP');
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc_1.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc_1
+CREATE PROCEDURE sp3166_s_i () SQL SECURITY INVOKER
+BEGIN
+SELECT * from db_storedproc_1.t3166;
+insert into db_storedproc_1.t3166 values ('inserted from sp3166_s_i');
+END//
+CREATE PROCEDURE sp3166_sel () SQL SECURITY INVOKER
+BEGIN
+SELECT * from db_storedproc_1.t3166;
+END//
+CREATE PROCEDURE sp3166_ins () SQL SECURITY INVOKER
+BEGIN
+insert into db_storedproc_1.t3166 values ('inserted from sp3166_ins');
+END//
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+c1
+inserted outside SP
+ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_ins();
+ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_sel();
+c1
+inserted outside SP
+
+root@localhost db_storedproc_1
+CALL sp3166_sel();
+c1
+inserted outside SP
+GRANT INSERT ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+c1
+inserted outside SP
+CALL sp3166_ins();
+CALL sp3166_sel();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+
+root@localhost db_storedproc_1
+CALL sp3166_sel();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+REVOKE SELECT ON db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_ins();
+CALL sp3166_sel();
+ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
+CALL sp3166_s_i();
+c1
+inserted outside SP
+inserted from sp3166_s_i
+inserted from sp3166_ins
+inserted from sp3166_ins
+
+root@localhost db_storedproc_1
+REVOKE EXECUTE on db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc_1,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc_1
+CALL sp3166_s_i();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_s_i'
+CALL sp3166_ins();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_ins'
+CALL sp3166_sel();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_sel'
+
+root@localhost db_storedproc_1
+DROP PROCEDURE sp3166_s_i;
+DROP PROCEDURE sp3166_sel;
+DROP PROCEDURE sp3166_ins;
+DROP TABLE t3166;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result
new file mode 100755
index 00000000000..e4330211306
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result
@@ -0,0 +1,172 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.7 - SQL mode checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 3.1.7.1:
+-----------------
+Ensure that the sql_mode setting in effect at the time a stored procedure is
+created is the same setting under which the stored procedure runs when it is
+called/executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp_tbl;
+DROP TABLE IF EXISTS result;
+CREATE TABLE temp_tbl (f1 tinyint);
+CREATE TABLE result (f1 text(200), f2 char(20));
+set @@sql_mode='traditional';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+CREATE PROCEDURE sp1()
+BEGIN
+declare a tinyint;
+declare count_ int default 1;
+declare continue handler for sqlstate '22003' set count_=1000;
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode into @cur_val_sql_mode;
+insert into temp_tbl values (1000);
+if count_ = 1000 THEN
+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//
+SHOW CREATE PROCEDURE sp1;
+Procedure sql_mode Create Procedure
+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;
+declare count_ int default 1;
+declare continue handler for sqlstate '22003' set count_=1000;
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode into @cur_val_sql_mode;
+insert into temp_tbl values (1000);
+if count_ = 1000 THEN
+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
+set @@sql_mode='';
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode
+CALL sp1();
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+SELECT * from result;
+f1 f2
+STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode
+SELECT @@sql_mode;
+@@sql_mode
+
+SET @@sql_mode='TRADITIONAL';
+DROP PROCEDURE sp1;
+DROP TABLE temp_tbl;
+DROP TABLE result;
+
+Testcase 3.1.7.2:
+-----------------
+Ensure that if the sql_mode setting is changed when a stored procedure is run,
+that the original setting is restored as soon as the stored procedure execution
+is complete.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp2;
+... show initial value
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+CREATE PROCEDURE sp2()
+BEGIN
+SET @@sql_mode='MAXDB';
+SHOW VARIABLES LIKE 'sql_mode';
+END//
+SHOW CREATE PROCEDURE sp2;
+Procedure sql_mode Create Procedure
+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
+... show value prior calling procedure
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+... call procedure that changes sql_mode
+CALL sp2();
+Variable_name Value
+sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
+... check whether old value is re-set
+SHOW VARIABLES LIKE 'sql_mode';
+Variable_name Value
+sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
+DROP PROCEDURE sp2;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result
new file mode 100755
index 00000000000..4dda7ef69ae
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result
@@ -0,0 +1,637 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.8 - SHOW statement checks:
+--------------------------------------------------------------------------------
+
+Testcase 3.1.8.9:
+-----------------
+
+Ensure that all stored procedure changes made with ALTER PROCEDURE or ALTER
+FUNCTION are properly recorded and displayed when a SHOW CREATE PROCEDURE or
+SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE
+FUNCTION STATUS statement (respectively) is executed.
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn_1;
+DROP FUNCTION IF EXISTS fn_2;
+DROP PROCEDURE IF EXISTS sp_1;
+DROP PROCEDURE IF EXISTS sp_2;
+CREATE PROCEDURE sp_1 (i1 int)
+BEGIN
+set @x=i1;
+END//
+CREATE PROCEDURE sp_2 (i1 int) SQL SECURITY INVOKER COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+END//
+CREATE FUNCTION fn_1 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns year
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END//
+CREATE FUNCTION fn_2 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+RETURNS YEAR
+SQL SECURITY INVOKER
+COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END//
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT created with INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT created with INVOKER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment created with INVOKER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment created with INVOKER
+
+... now change some stuff:
+--------------------------
+ALTER PROCEDURE sp_1 SQL SECURITY INVOKER;
+ALTER PROCEDURE sp_1 COMMENT 'new comment, SP changed to INVOKER';
+ALTER PROCEDURE sp_2 SQL SECURITY DEFINER;
+ALTER PROCEDURE sp_2 DROP COMMENT;
+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 'DROP COMMENT' at line 1
+ALTER PROCEDURE sp_2 COMMENT 'SP changed to DEFINER';
+ALTER PROCEDURE sp_2 READS SQL DATA;
+ALTER FUNCTION fn_1 SQL SECURITY INVOKER;
+ALTER FUNCTION fn_1 COMMENT 'new comment, FN changed to INVOKER';
+ALTER FUNCTION fn_1 NO SQL;
+ALTER FUNCTION fn_2 SQL SECURITY DEFINER;
+ALTER FUNCTION fn_2 COMMENT 'FN changed to DEFINER';
+ALTER FUNCTION fn_2 MODIFIES SQL DATA;
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS NO SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, FN changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS MODIFIES SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT FN changed to DEFINER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, SP changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS READS SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT SP changed to DEFINER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ NO SQL
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, FN changed to INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ MODIFIES SQL DATA
+ COMMENT 'FN changed to DEFINER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, SP changed to INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ READS SQL DATA
+ COMMENT 'SP changed to DEFINER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, FN changed to INVOKER
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment FN changed to DEFINER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, SP changed to INVOKER
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment SP changed to DEFINER
+
+... change back to default and check result:
+--------------------------------------------
+ALTER FUNCTION fn_2 CONTAINS SQL;
+
+... now check what is stored:
+-----------------------------
+SELECT * FROM information_schema.routines;
+SPECIFIC_NAME fn_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_1
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS NO SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, FN changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME fn_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME fn_2
+ROUTINE_TYPE FUNCTION
+DTD_IDENTIFIER year(4)
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT FN changed to DEFINER
+DEFINER root@localhost
+SPECIFIC_NAME sp_1
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_1
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS CONTAINS SQL
+SQL_PATH NULL
+SECURITY_TYPE INVOKER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT new comment, SP changed to INVOKER
+DEFINER root@localhost
+SPECIFIC_NAME sp_2
+ROUTINE_CATALOG NULL
+ROUTINE_SCHEMA db_storedproc
+ROUTINE_NAME sp_2
+ROUTINE_TYPE PROCEDURE
+DTD_IDENTIFIER NULL
+ROUTINE_BODY SQL
+ROUTINE_DEFINITION BEGIN
+set @x=i1;
+END
+EXTERNAL_NAME NULL
+EXTERNAL_LANGUAGE NULL
+PARAMETER_STYLE SQL
+IS_DETERMINISTIC NO
+SQL_DATA_ACCESS READS SQL DATA
+SQL_PATH NULL
+SECURITY_TYPE DEFINER
+CREATED <modified>
+LAST_ALTERED <created>
+SQL_MODE
+ROUTINE_COMMENT SP changed to DEFINER
+DEFINER root@localhost
+SHOW CREATE FUNCTION fn_1;
+Function fn_1
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ NO SQL
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, FN changed to INVOKER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE FUNCTION fn_2;
+Function fn_2
+sql_mode
+Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
+ COMMENT 'FN changed to DEFINER'
+BEGIN
+set @x=i1;
+set @y=@x;
+return i4;
+END
+SHOW CREATE PROCEDURE sp_1;
+Procedure sp_1
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
+ SQL SECURITY INVOKER
+ COMMENT 'new comment, SP changed to INVOKER'
+BEGIN
+set @x=i1;
+END
+SHOW CREATE PROCEDURE sp_2;
+Procedure sp_2
+sql_mode
+Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
+ READS SQL DATA
+ COMMENT 'SP changed to DEFINER'
+BEGIN
+set @x=i1;
+END
+SHOW FUNCTION STATUS LIKE 'fn_%';
+Db db_storedproc
+Name fn_1
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, FN changed to INVOKER
+Db db_storedproc
+Name fn_2
+Type FUNCTION
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment FN changed to DEFINER
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+Db db_storedproc
+Name sp_1
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type INVOKER
+Comment new comment, SP changed to INVOKER
+Db db_storedproc
+Name sp_2
+Type PROCEDURE
+Definer root@localhost
+Modified <modified>
+Created <created>
+Security_type DEFINER
+Comment SP changed to DEFINER
+
+... cleanup
+-----------
+DROP FUNCTION fn_1;
+DROP FUNCTION fn_2;
+DROP PROCEDURE sp_1;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result
new file mode 100755
index 00000000000..33a51a7edbe
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result
@@ -0,0 +1,321 @@
+
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+--------------------------------------------------------------------------------
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+USE db_storedproc;
+create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+USE db_storedproc_1;
+create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+USE db_storedproc;
+create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+Warnings:
+Warning 1265 Data truncated for column 'f3' at row 1
+Warning 1265 Data truncated for column 'f3' at row 2
+Warning 1265 Data truncated for column 'f3' at row 3
+Warning 1265 Data truncated for column 'f3' at row 4
+Warning 1265 Data truncated for column 'f3' at row 5
+Warning 1265 Data truncated for column 'f3' at row 6
+Warning 1265 Data truncated for column 'f3' at row 7
+Warning 1265 Data truncated for column 'f3' at row 8
+Warning 1265 Data truncated for column 'f3' at row 9
+Warning 1265 Data truncated for column 'f3' at row 10
+create table t9(f1 int, f2 char(25), f3 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
+
+Section 3.1.10 - CALL checks:
+--------------------------------------------------------------------------------
+USE db_storedproc;
+
+Testcase 3.1.10.2 + 3.1.10.5:
+-----------------------------
+
+2. Ensure that a procedure cannot be called if the appropriate privileges do not
+exist.
+5. Ensure that a function cannot be executed if the appropriate privileges do
+not exist.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp31102;
+DROP FUNCTION IF EXISTS fn31105;
+create user 'user_1'@'localhost';
+create user 'user_2'@'localhost';
+GRANT CREATE ROUTINE ON db_storedproc.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_1@localhost db_storedproc
+CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER
+BEGIN
+SELECT * FROM db_storedproc.t1 LIMIT 1;
+END//
+CREATE FUNCTION fn31105(n INT) RETURNS INT
+BEGIN
+DECLARE res INT;
+SET res = n * n;
+RETURN res;
+END//
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
+SELECT fn31105( 9 );
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
+
+root@localhost db_storedproc
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+GRANT EXECUTE ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+
+root@localhost db_storedproc
+REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+CALL sp31102();
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+SELECT fn31105( 9 );
+fn31105( 9 )
+81
+connect(localhost,user_2,,db_storedproc,MYSQL_PORT,MYSQL_SOCK);
+
+user_2@localhost db_storedproc
+CALL sp31102();
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
+SELECT fn31105( 9 );
+ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
+
+root@localhost db_storedproc
+DROP PROCEDURE sp31102;
+DROP FUNCTION fn31105;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+Testcase 3.1.10.3:
+------------------
+
+Ensure that a function can never be called.
+--------------------------------------------------------------------------------
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1(a int) returns int
+BEGIN
+set @b = 0.9 * a;
+return @b;
+END//
+CALL fn1();
+ERROR 42000: PROCEDURE db_storedproc.fn1 does not exist
+DROP FUNCTION fn1;
+
+Testcase 3.1.10.6:
+------------------
+
+Ensure that a procedure can never be executed.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+CREATE PROCEDURE sp1()
+BEGIN
+SELECT * from t10;
+END//
+SELECT sp1();
+ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
+DROP PROCEDURE sp1;
+
+Testcase 3.1.10.7:
+------------------
+
+Ensure that the ROW_COUNT() SQL function always returns the correct number of
+rows affected by the execution of a stored procedure.
+--------------------------------------------------------------------------------
+DROP PROCEDURE IF EXISTS sp_ins_1;
+DROP PROCEDURE IF EXISTS sp_ins_3;
+DROP PROCEDURE IF EXISTS sp_upd;
+DROP PROCEDURE IF EXISTS sp_ins_upd;
+CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT);
+INSERT INTO temp SELECT * FROM t10;
+CREATE PROCEDURE sp_ins_1()
+BEGIN
+INSERT INTO temp VALUES ('abc', 'abc', '20051003', 100, 'uvw', 1000);
+END//
+CREATE PROCEDURE sp_ins_3()
+BEGIN
+INSERT INTO temp VALUES ('abc', 'xyz', '19490523', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('abc', 'xyz', '1989-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('abc', 'xyz', '2005-10-24', 100, 'uvw', 1000);
+END//
+CREATE PROCEDURE sp_upd()
+BEGIN
+UPDATE temp SET temp.f1 = 'updated' WHERE temp.f1 ='abc';
+END//
+CREATE PROCEDURE sp_ins_upd()
+BEGIN
+BEGIN
+INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000);
+INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000);
+END;
+SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1;
+UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc';
+END//
+CALL sp_ins_1();
+SELECT row_count();
+row_count()
+1
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+abc abc 2005-10-03 100 uvw 1000
+CALL sp_ins_3();
+SELECT row_count();
+row_count()
+1
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+abc abc 2005-10-03 100 uvw 1000
+abc xyz 1949-05-23 100 uvw 1000
+abc xyz 1989-11-09 100 uvw 1000
+abc xyz 2005-10-24 100 uvw 1000
+CALL sp_upd();
+SELECT row_count();
+row_count()
+4
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+updated abc 2005-10-03 100 uvw 1000
+updated xyz 1949-05-23 100 uvw 1000
+updated xyz 1989-11-09 100 uvw 1000
+updated xyz 2005-10-24 100 uvw 1000
+CALL sp_ins_upd();
+COUNT( f1 ) f1
+1 aaa
+1 abaa
+1 acaaa
+1 adaaaa
+1 aeaaaaa
+1 afaaaaaa
+1 agaaaaaaa
+1 a^aaaaaaaa
+1 a_aaaaaaaaa
+1 a`
+4 qwe
+4 updated
+SELECT row_count();
+row_count()
+3
+SELECT * FROM temp;
+f1 f2 f3 f4 f5 f6
+a` a` 1000-01-01 -5000 a` -5000
+aaa aaa 1000-01-02 -4999 aaa -4999
+abaa abaa 1000-01-03 -4998 abaa -4998
+acaaa acaaa 1000-01-04 -4997 acaaa -4997
+adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
+aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
+afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
+agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
+a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
+a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
+updated abc 2005-10-03 100 uvw 1000
+updated xyz 1949-05-23 100 uvw 1000
+updated xyz 1989-11-09 100 uvw 1000
+updated xyz 2005-10-24 100 uvw 1000
+updated_2 abc 1989-11-09 100 uvw 1000
+qwe xyz 1998-03-26 100 uvw 1000
+updated_2 abc 2000-11-09 100 uvw 1000
+updated_2 abc 2005-11-07 100 uvw 1000
+DROP PROCEDURE sp_ins_1;
+DROP PROCEDURE sp_ins_3;
+DROP PROCEDURE sp_upd;
+DROP PROCEDURE sp_ins_upd;
+DROP TABLE temp;
+
+Testcase 3.1.10.8:
+------------------
+
+Ensure that the mysql_affected_rows() C API function always returns the correct
+number of rows affected by the execution of a stored procedure.
+--------------------------------------------------------------------------------
+
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+
+. +++ END OF SCRIPT +++
+--------------------------------------------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result
new file mode 100644
index 00000000000..6dd56a1e912
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result
@@ -0,0 +1,364 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase: 3.5.1.1:
+------------------
+use test;
+Create trigger trg1_1 BEFORE INSERT
+on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+Create trigger trg1_2 AFTER INSERT
+on tb3 for each row set @test_after = 6;
+Create trigger trg1_4 BEFORE UPDATE
+on tb3 for each row set @test_before = 27,
+new.f142 = @test_before,
+new.f122 = 'Before Update Trigger';
+Create trigger trg1_3 AFTER UPDATE
+on tb3 for each row set @test_after = '15';
+Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+select count(*) into @test_before from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+Create trigger trg1_6 AFTER DELETE on tb3 for each row
+select count(*) into @test_after from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+set @test_before = 1;
+set @test_after = 5;
+select @test_before, @test_after;
+@test_before @test_after
+1 5
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 First Row 2 0000000005 1
+select @test_before, @test_after;
+@test_before @test_after
+2 6
+set @test_before = 18;
+set @test_after = 8;
+select @test_before, @test_after;
+@test_before @test_after
+18 8
+Update tb3 set tb3.f122 = 'Update',
+tb3.f142 = @test_before,
+tb3.f144 = @test_after
+where tb3.f121 = 'Test 3.5.1.1';
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+27 15
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+set @test_before = 0;
+set @test_after = 0;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+Test 3.5.1.1 Second Row 2 0000000006 2
+select @test_before, @test_after;
+@test_before @test_after
+0 0
+Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+2 1
+drop trigger trg1_1;
+drop trigger trg1_2;
+drop trigger trg1_3;
+drop trigger trg1_4;
+drop trigger trg1_5;
+drop trigger trg1_6;
+delete from tb3 where f121='Test 3.5.1.1';
+
+Testcase: 3.5.1.2:
+------------------
+Create trigger trg_1 after insert
+on tb3 for each statement set @x= 1;
+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 'statement set @x= 1' at line 2
+drop trigger trg_1;
+
+Testcase 3.5.1.3:
+-----------------
+CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+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 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
+CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+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 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
+CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+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 @ret1 = 'test' for each row' at line 1
+CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+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 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
+CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = '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 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
+drop trigger trg3_1;
+drop trigger trg3_2;
+drop trigger trg3_3;
+drop trigger trg3_4;
+drop trigger trg3_5;
+
+Testcase: 3.5.1.5:
+------------------
+CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+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 'on tb3 for each row set new.f120 = 'e'' at line 1
+CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+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 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
+CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+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 'tb3 for each row set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+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 new.f120 = 'g'' at line 1
+CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+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 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+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 'for each row set new.f120 = 'g'' at line 1
+drop trigger trg4_1;
+drop trigger trg4_2;
+drop trigger trg4_3;
+drop trigger trg4_4;
+drop trigger trg4_5;
+drop trigger trg4_6;
+
+Testcase 3.5.1.6: - Need to fix
+-------------------------------
+
+Testcase 3.5.1.7: - need to fix
+-------------------------------
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (f1 int, f2 char(25),f3 int) engine=myisam;
+CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+for each row set new.f3 = '14';
+CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+insert into t1 (f2) values ('insert 3.5.1.7');
+select * from t1;
+f1 f2 f3
+NULL insert 3.5.1.7 14
+update t1 set f2='update 3.5.1.7';
+select * from t1;
+f1 f2 f3
+NULL update 3.5.1.7 42
+select trigger_name from information_schema.triggers;
+trigger_name
+trg5_1
+trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
+drop trigger trg5_1;
+drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+drop table t1;
+
+Testcase 3.5.1.8:
+-----------------
+CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+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 '* before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+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 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+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 '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+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 '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+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 '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+for each row set new.f120 ='X';
+ERROR HY000: Trigger in wrong schema
+drop database if exists trig_db;
+create database trig_db;
+use trig_db;
+create table t1 (f1 integer) engine = myisam;
+use test;
+CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
+for each row set @ret_trg6_2 = 5;
+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;
+ERROR HY000: Trigger in wrong schema
+use test;
+drop database trig_db;
+drop trigger trg6_1;
+drop trigger trg6_3;
+
+Testcase 3.5.1.9:(cannot be inplemented at this point)
+------------------------------------------------------
+
+Testcase 3.5.1.10:
+------------------
+CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+ERROR HY000: Trigger already exists
+drop trigger trg7_1;
+
+Testcase 3.5.1.?:
+-----------------
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create table t2 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig t1';
+create trigger trig before update on t2
+for each row set new.f1 ='trig t2';
+ERROR HY000: Trigger already exists
+insert into t1 value ('insert to t1',1);
+select * from t1;
+f1 f2
+trig t1 1
+update t1 set f1='update to t1';
+select * from t1;
+f1 f2
+update to t1 1
+insert into t2 value ('insert to t2',2);
+update t2 set f1='update to t1';
+select * from t2;
+f1 f2
+update to t1 2
+drop table t1;
+drop table t2;
+drop trigger trig;
+
+Testcase 3.5.1.11:
+------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+drop database if exists trig_db3;
+create database trig_db1;
+create database trig_db2;
+create database trig_db3;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig1', @test_var1='trig1';
+use trig_db2;
+create table t2 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t2
+for each row set new.f1 ='trig2', @test_var2='trig2';
+use trig_db3;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig3', @test_var3='trig3';
+set @test_var1= '', @test_var2= '', @test_var3= '';
+use trig_db1;
+insert into t1 (f1,f2) values ('insert to db1 t1',1);
+insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1 trig2 trig3
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+select * from trig_db2.t2;
+f1 f2
+trig2 3
+select * from trig_db3.t1;
+f1 f2
+trig3 4
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+use test;
+drop database trig_db1;
+drop database trig_db2;
+drop database trig_db3;
+
+Testcase 3.5.2.1/2/3:
+---------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+create database trig_db1;
+create database trig_db2;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create table trig_db2.t1 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig1_b before insert on t1
+for each row set @test_var1='trig1_b';
+create trigger trig_db1.trig1_a after insert on t1
+for each row set @test_var2='trig1_a';
+create trigger trig_db2.trig2 before insert on trig_db2.t1
+for each row set @test_var3='trig2';
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+trig_db1 trig1_b t1
+trig_db1 trig1_a t1
+trig_db2 trig2 t1
+set @test_var1= '', @test_var2= '', @test_var3= '';
+insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1_b trig1_a trig2
+drop database trig_db1;
+drop database trig_db2;
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_03.result b/mysql-test/suite/funcs_1/r/myisam_trig_03.result
new file mode 100644
index 00000000000..3dbfa77b464
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_03.result
@@ -0,0 +1,751 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase 3.5.3:
+---------------
+drop database if exists priv_db;
+create database priv_db;
+use priv_db;
+create table t1 (f1 char(20)) engine= myisam;
+create User test_noprivs@localhost;
+set password for test_noprivs@localhost = password('PWD');
+create User test_yesprivs@localhost;
+set password for test_yesprivs@localhost = password('PWD');
+
+Testcase 3.5.3.2/6:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SUPER on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.3.2:
+-----------------
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+create trigger trg1_1 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_1-no';
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_2-yes';
+select current_user;
+current_user
+root@localhost
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+
+note: once 15166 is fixed a similar case for SELECT needs to be added
+---------------------------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+
+Testcase 3.5.3.6:
+-----------------
+use priv_db;
+drop trigger trg1_2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+use priv_db;
+drop trigger trg1_2;
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+drop trigger trg1_2;
+
+Testcase 3.5.3.7a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke UPDATE on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1a');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+drop trigger trg4a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg4a_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2a';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on *.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+drop trigger trg4a_2;
+
+Testcase 3.5.3.7b:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke UPDATE on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+insert 3.5.3.7-1b
+update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+drop trigger trg4b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4b_2 before UPDATE on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2b';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+insert 3.5.3.7-2b
+update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+drop trigger trg4b_2;
+
+Testcase 3.5.3.7c
+-----------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+drop trigger trg4c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4c_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2c';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+drop trigger trg4c_2;
+
+Testcase 3.5.3.7d:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+drop trigger trg4d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4d_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2d';
+
+SELECT priv added to bypass bug 15166
+-------------------------------------
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.7-2d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+trig 3.5.3.7-2d
+drop trigger trg4d_2;
+
+Testcase 3.5.3.8a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SELECT on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var = 'before trig 3.5.3.8-1a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+insert into t1 (f1) values ('insert 3.5.3.8-1a');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+drop trigger trg5a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg5a_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-2a
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on *.* to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2a');
+select @test_var;
+@test_var
+insert 3.5.3.8-2a
+drop trigger trg5a_2;
+
+Testcase: 3.5.3.8b
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke SELECT on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1b';
+insert into t1 (f1) values ('insert 3.5.3.8-1b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+drop trigger trg5b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5b_2 before UPDATE on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2b';
+insert into t1 (f1) values ('insert 3.5.3.8-2b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-2b
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+select @test_var;
+@test_var
+update 3.5.3.8-2b
+drop trigger trg5b_2;
+
+Testcase 3.5.3.8c:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1c';
+insert into t1 (f1) values ('insert 3.5.3.8-1c');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1c
+drop trigger trg5c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5c_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2c';
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2c');
+select @test_var;
+@test_var
+insert 3.5.3.8-2c
+drop trigger trg5c_2;
+
+Testcase: 3.5.3.8d:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var='before trig 3.5.3.8-1d';
+insert into t1 (f1) values ('insert 3.5.3.8-1d');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1d
+drop trigger trg5d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5d_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2d';
+
+UPDATE priv added to bypass bug 15166
+-------------------------------------
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+insert into t1 (f1) values ('insert 3.5.3.8-2d');
+select @test_var;
+@test_var
+insert 3.5.3.8-2d
+drop trigger trg5d_2;
+
+Testcase: 3.5.3.x:
+------------------
+use priv_db;
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 int) engine= myisam;
+create table t2 (f2 int) engine= myisam;
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT, UPDATE on priv_db.t1 to test_yesprivs@localhost;
+grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t2` TO 'test_yesprivs'@'localhost'
+GRANT SELECT, UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1 before insert on t1 for each row
+insert into t2 values (new.f1);
+use priv_db;
+insert into t1 (f1) values (4);
+ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+grant INSERT on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (4);
+select f1 from t1;
+f1
+4
+select f2 from t2;
+f2
+4
+use priv_db;
+drop trigger trg1;
+create trigger trg2 before insert on t1 for each row
+update t2 set f2=new.f1-1;
+use priv_db;
+insert into t1 (f1) values (2);
+ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
+grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (2);
+select f1 from t1;
+f1
+4
+2
+select f2 from t2;
+f2
+1
+use priv_db;
+drop trigger trg2;
+create trigger trg3 before insert on t1 for each row
+select f2 into @aaa from t2 where f2=new.f1;
+use priv_db;
+insert into t1 (f1) values (1);
+ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
+grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (1);
+select f1 from t1;
+f1
+4
+2
+1
+select f2 from t2;
+f2
+1
+select @aaa;
+@aaa
+1
+use priv_db;
+drop trigger trg3;
+create trigger trg4 before insert on t1 for each row
+delete from t2;
+use priv_db;
+insert into t1 (f1) values (1);
+ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2'
+revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+grant DELETE on priv_db.t2 to test_yesprivs@localhost;
+insert into t1 (f1) values (1);
+select f1 from t1;
+f1
+4
+2
+1
+1
+select f2 from t2;
+f2
+drop database if exists priv_db;
+drop user test_yesprivs@localhost;
+drop user test_noprivs@localhost;
+drop user test_noprivs;
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0407.result b/mysql-test/suite/funcs_1/r/myisam_trig_0407.result
new file mode 100644
index 00000000000..16d91726e30
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_0407.result
@@ -0,0 +1,480 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.4:
+---------------
+use test;
+
+Testcase 3.5.4.1:
+-----------------
+create database db_drop;
+Use db_drop;
+create table t1 (f1 char(30)) engine=myisam;
+grant INSERT, SELECT on db_drop.t1 to test_general;
+Use db_drop;
+Create trigger trg1 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.1';
+Use db_drop;
+Insert into t1 values ('Insert error 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+drop trigger trg1;
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+Insert into t1 values ('Insert no trigger 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+Insert no trigger 3.5.4.1
+drop trigger trg1;
+drop database if exists db_drop;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.2:
+-----------------
+create database db_drop2;
+Use db_drop2;
+drop table if exists t1_432 ;
+create table t1_432 (f1 char (30)) engine=myisam;
+Drop trigger tr_does_not_exit;
+ERROR HY000: Trigger does not exist
+drop table if exists t1_432 ;
+drop database if exists db_drop2;
+
+Testcase 3.5.4.3:
+-----------------
+create database db_drop3;
+Use db_drop3;
+drop table if exists t1_433 ;
+drop table if exists t1_433a ;
+create table t1_433 (f1 char (30)) engine=myisam;
+create table t1_433a (f1a char (5)) engine=myisam;
+CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+set new.f1 = 'Trigger 3.5.4.3';
+Drop trigger t1.433.trg3;
+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 '.trg3' at line 1
+Drop trigger db_drop3.t1.433.trg3;
+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 '.433.trg3' at line 1
+Drop trigger mysql.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger tbx.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger db_drop3.trg3;
+drop table if exists t1_433;
+drop table if exists t1_433a;
+drop database if exists db_drop3;
+
+Testcase 3.5.4.4:
+-----------------
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=myisam;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Create trigger trg4 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.4';
+Use db_drop4;
+Insert into t1 values ('Insert 3.5.4.4');
+Select * from t1;
+f1
+Trigger 3.5.4.4
+Drop database db_drop4;
+Show databases;
+Database
+information_schema
+mysql
+test
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg4';
+trigger_schema trigger_name event_object_table
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=myisam;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.4');
+Select * from t1;
+f1
+2nd Insert 3.5.4.4
+drop trigger trg4;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop4;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.5:
+-----------------
+create database db_drop5;
+Use db_drop5;
+create table t1 (f1 char(50)) engine=myisam;
+grant INSERT, SELECT on t1 to test_general;
+Create trigger trg5 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.5';
+Use db_drop5;
+Insert into t1 values ('Insert 3.5.4.5');
+Select * from t1;
+f1
+Trigger 3.5.4.5
+Drop table t1;
+Show tables;
+Tables_in_db_drop5
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg5';
+trigger_schema trigger_name event_object_table
+create table t1 (f1 char(50)) engine=myisam;
+grant INSERT, SELECT on t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.5');
+Select * from t1;
+f1
+2nd Insert 3.5.4.5
+drop trigger trg5;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop5;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.5:
+---------------
+use test;
+
+Testcase 3.5.5.1:
+-----------------
+Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+ERROR 42S02: Table 'test.t100' doesn't exist
+
+Testcase 3.5.5.2:
+-----------------
+Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+Create trigger trg2 before INSERT
+on t1_temp for each row set new.f2=9999;
+ERROR HY000: Trigger's 't1_temp' is view or temporary table
+drop table t1_temp;
+
+Testcase 3.5.5.3:
+-----------------
+Create view vw3 as select f118 from tb3;
+Create trigger trg3 before INSERT
+on vw3 for each row set new.f118='s';
+ERROR HY000: 'test.vw3' is not BASE TABLE
+drop view vw3;
+
+Testcase 3.5.5.4:
+-----------------
+create database dbtest_one;
+create database dbtest_two;
+use dbtest_two;
+create table t2 (f1 char(15)) engine=myisam;
+use dbtest_one;
+create trigger trg4 before INSERT
+on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ERROR HY000: Trigger in wrong schema
+grant INSERT, SELECT on dbtest_two.t2 to test_general;
+grant SELECT on dbtest_one.* to test_general;
+use dbtest_two;
+Insert into t2 values ('1st Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from t2;
+f1
+1st Insert 3.5.
+use dbtest_one;
+Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from dbtest_two.t2;
+f1
+1st Insert 3.5.
+2nd Insert 3.5.
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+DROP DATABASE if exists dbtest_one;
+drop database if EXISTS dbtest_two;
+
+Testcase 3.5.6:
+---------------
+use test;
+
+Testcase 3.5.6.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.3:
+-----------------
+Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+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 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
+Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+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 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
+drop trigger tb3.trg3_1;
+drop trigger tb3.trg3_2;
+
+Testcase 3.5.6.4 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.5 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.3 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.4:
+-----------------
+Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+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 'SELECT on tb3 for each row set new.f132=5' at line 1
+Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+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 'VALUE on tb3 for each row set new.f132=1' at line 1
+drop trigger tb3.trg4_1;
+drop trigger tb3.trg4_2;
+
+Testcase 3.5.7.5 / 3.5.7.6:
+---------------------------
+Create trigger trg5_1 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+Create trigger trg5_2 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Trigger1 3.5.7.5/6
+update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Update 3.5.7.6
+drop trigger trg5_1;
+drop trigger trg5_2;
+delete from tb3 where f121='Test 3.5.7.5/6';
+
+Testcase 3.5.7.7 / 3.5.7.8:
+---------------------------
+set @test_var='Before trig 3.5.7.7';
+Create trigger trg6_1 AFTER INSERT
+on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+Create trigger trg6_2 AFTER INSERT
+on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+Before trig 3.5.7.7
+Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Insert 3.5.7.7
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Update 3.5.7.8
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+drop trigger trg6_1;
+drop trigger trg6_2;
+delete from tb3 where f121='Test 3.5.7.7/8';
+
+Testcase 3.5.7.9/10:
+--------------------
+Create trigger trg7_1 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+Create trigger trg7_2 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Insert 3.5.7.9
+update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Trigger1 3.5.7.9/10
+drop trigger trg7_1;
+drop trigger trg7_2;
+delete from tb3 where f121='Test 3.5.7.9/10';
+
+Testcase 3.5.7.11/12:
+---------------------
+set @test_var='Before trig 3.5.7.11';
+Create trigger trg8_1 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+Create trigger trg8_2 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 Insert 3.5.7.11/12
+update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 update 3.5.7.12
+select @test_var;
+@test_var
+Trigger 3.5.7.11/12
+delete from tb3 where f121='Test 3.5.7.11/12';
+drop trigger trg8_1;
+drop trigger trg8_2;
+delete from tb3 where f121='Test 3.5.7.11/12';
+
+Testcase 3.5.7.13/14:
+---------------------
+set @test_var=1;
+Create trigger trg9_1 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+1;
+Create trigger trg9_2 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+10;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+Test 3.5.7.13/14 Insert 3.5.7.13
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.13/14';
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+select @test_var;
+@test_var
+2
+delete from tb3 where f121='Test 3.5.7.13/14';
+select @test_var;
+@test_var
+2
+drop trigger trg9_1;
+drop trigger trg9_2;
+delete from tb3 where f121='Test 3.5.7.13/14';
+
+Testcase 3.5.7.15/16:
+---------------------
+set @test_var=1;
+Create trigger trg_3_406010_1 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+5;
+Create trigger trg_3_406010_2 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+50;
+ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
+Create trigger trg_3_406010_1 AFTER INSERT
+on tb3 for each row set @test_var=@test_var+1;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+Test 3.5.7.15/16 Insert 3.5.7.15/16
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.15/16';
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+select @test_var;
+@test_var
+6
+delete from tb3 where f121='Test 3.5.7.15/16';
+select @test_var;
+@test_var
+6
+drop trigger trg_3_406010_1;
+drop trigger trg_3_406010_2;
+delete from tb3 where f121='Test 3.5.7.15/16';
+
+Testcase 3.5.7.17 (see Testcase 3.5.1.1)
+----------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_08.result b/mysql-test/suite/funcs_1/r/myisam_trig_08.result
new file mode 100644
index 00000000000..8a13e91d71d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_08.result
@@ -0,0 +1,499 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.8.1: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.2: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.3/4:
+-------------------
+create database db_test;
+grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+grant LOCK TABLES on db_test.* to test_general;
+Use db_test;
+create table t1_i (
+i120 char ascii not null DEFAULT b'101',
+i136 smallint zerofill not null DEFAULT 999,
+i144 int zerofill not null DEFAULT 99999,
+i163 decimal (63,30)) engine=myisam;
+create table t1_u (
+u120 char ascii not null DEFAULT b'101',
+u136 smallint zerofill not null DEFAULT 999,
+u144 int zerofill not null DEFAULT 99999,
+u163 decimal (63,30)) engine=myisam;
+create table t1_d (
+d120 char ascii not null DEFAULT b'101',
+d136 smallint zerofill not null DEFAULT 999,
+d144 int zerofill not null DEFAULT 99999,
+d163 decimal (63,30)) engine=myisam;
+Insert into t1_u values ('a',111,99999,999.99);
+Insert into t1_u values ('b',222,99999,999.99);
+Insert into t1_u values ('c',333,99999,999.99);
+Insert into t1_u values ('d',222,99999,999.99);
+Insert into t1_u values ('e',222,99999,999.99);
+Insert into t1_u values ('f',333,99999,999.99);
+Insert into t1_d values ('a',111,99999,999.99);
+Insert into t1_d values ('b',222,99999,999.99);
+Insert into t1_d values ('c',333,99999,999.99);
+Insert into t1_d values ('d',444,99999,999.99);
+Insert into t1_d values ('e',222,99999,999.99);
+Insert into t1_d values ('f',222,99999,999.99);
+
+3.5.8.4 - multiple SQL
+----------------------
+use test;
+Create trigger trg1 AFTER INSERT on tb3 for each row
+BEGIN
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update db_test.t1_u
+set u144=new.f144, u163=new.f163
+where u136=new.f136;
+delete from db_test.t1_d where d136= new.f136;
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+END//
+Use test;
+set @test_var=0;
+Insert into tb3 (f120, f122, f136, f144, f163)
+values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+f120 f122 f136 f144 f163
+1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+b 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00222 0000023456 1.050000000000000000000000000000
+e 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00444 0000099999 999.990000000000000000000000000000
+select @test_var;
+@test_var
+3.150000000000000000000000000000
+
+3.5.8.4 - single SQL - insert
+-----------------------------
+Create trigger trg2 BEFORE UPDATE on tb3 for each row
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+I 00222 0000023456 1.050000000000000000000000000000
+
+3.5.8.4 - single SQL - update
+-----------------------------
+drop trigger trg2;
+Create trigger trg3 BEFORE UPDATE on tb3 for each row
+update db_test.t1_u
+set u120=new.f120
+where u136=new.f136;
+update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - delete
+-------------------------------
+drop trigger trg3;
+Create trigger trg4 AFTER UPDATE on tb3 for each row
+delete from db_test.t1_d where d136= new.f136;
+update tb3 set f120='D', f136=444,
+f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - select
+-------------------------------
+drop trigger trg4;
+Create trigger trg5 AFTER UPDATE on tb3 for each row
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+set @test_var=0;
+update tb3 set f120='S', f136=111,
+f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
+select @test_var;
+@test_var
+999.990000000000000000000000000000
+drop trigger trg1;
+drop trigger trg5;
+drop database if exists db_test;
+delete from tb3 where f122 like 'Test 3.5.8.4%';
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.8.5 (IF):
+----------------------
+create trigger trg2 before insert on tb3 for each row
+BEGIN
+IF new.f120='1' then
+set @test_var='one', new.f120='2';
+ELSEIF new.f120='2' then
+set @test_var='two', new.f120='3';
+ELSEIF new.f120='3' then
+set @test_var='three', new.f120='4';
+END IF;
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+END IF;
+END//
+set @test_var='Empty', @test_var2=0;
+Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 one 2nd else
+Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 two 2nd else
+D Test 3.5.8.5-if 00102 two 2nd else
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd if
+D Test 3.5.8.5-if 00102 three 2nd if
+d Test 3.5.8.5-if 00010 three 2nd if
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd else
+D Test 3.5.8.5-if 00102 three 2nd else
+d Test 3.5.8.5-if 00010 three 2nd else
+D Test 3.5.8.5-if 00103 three 2nd else
+create trigger trg3 before update on tb3 for each row
+BEGIN
+ELSEIF new.f120='2' then
+END IF;
+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 'ELSEIF new.f120='2' then
+END IF;
+END' at line 3
+drop trigger trg3//
+create trigger trg4 before update on tb3 for each row
+BEGIN
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+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 '' at line 7
+drop trigger trg4;
+drop trigger trg2;
+delete from tb3 where f121='Test 3.5.8.5-if';
+
+Testcase 3.5.8.5-case:
+----------------------
+create trigger trg3 before insert on tb3 for each row
+BEGIN
+SET new.f120=char(ascii(new.f120)-32);
+CASE
+when new.f136<100 then set new.f136=new.f136+120;
+when new.f136<10 then set new.f144=777;
+when new.f136>100 then set new.f120=new.f136-1;
+END case;
+CASE
+when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ELSE set @test_var=concat(new.f120, '*');
+END case;
+CASE new.f144
+when 1 then set @test_var=concat(@test_var, 'one');
+when 2 then set @test_var=concat(@test_var, 'two');
+when 3 then set @test_var=concat(@test_var, 'three');
+when 4 then set @test_var=concat(@test_var, 'four');
+when 5 then set @test_var=concat(@test_var, 'five');
+when 6 then set @test_var=concat(@test_var, 'six');
+when 7 then set @test_var=concat(@test_var, 'seven');
+when 8 then set @test_var=concat(@test_var, 'eight');
+when 9 then set @test_var=concat(@test_var, 'nine');
+when 10 then set @test_var=concat(@test_var, 'ten');
+when 11 then set @test_var=concat(@test_var, 'eleven');
+when 12 then set @test_var=concat(@test_var, 'twelve');
+when 13 then set @test_var=concat(@test_var, 'thirteen');
+when 14 then set @test_var=concat(@test_var, 'fourteen');
+when 15 then set @test_var=concat(@test_var, 'fifteen');
+ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+END case;
+END//
+set @test_var='Empty';
+Insert into tb3 (f120, f122, f136, f144)
+values ('a', 'Test 3.5.8.5-case', 5, 7);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 A*seven
+Insert into tb3 (f120, f122, f136, f144)
+values ('b', 'Test 3.5.8.5-case', 71,16);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 B*0000000016
+B Test 3.5.8.5-case 00191 0000000016 B*0000000016
+Insert into tb3 (f120, f122, f136, f144)
+values ('c', 'Test 3.5.8.5-case', 80,1);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 C=one
+B Test 3.5.8.5-case 00191 0000000016 C=one
+C Test 3.5.8.5-case 00200 0000000001 C=one
+Insert into tb3 (f120, f122, f136)
+values ('d', 'Test 3.5.8.5-case', 152);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1*0000099999
+B Test 3.5.8.5-case 00191 0000000016 1*0000099999
+C Test 3.5.8.5-case 00200 0000000001 1*0000099999
+1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
+Insert into tb3 (f120, f122, f136, f144)
+values ('e', 'Test 3.5.8.5-case', 200, 8);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+Insert into tb3 (f120, f122, f136, f144)
+values ('f', 'Test 3.5.8.5-case', 100, 8);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+create trigger trg3a before update on tb3 for each row
+BEGIN
+CASE
+when new.f136<100 then set new.f120='p';
+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 '' at line 5
+drop trigger trg3a;
+drop trigger trg3;
+delete from tb3 where f121='Test 3.5.8.5-case';
+
+Testcase 3.5.8.5-loop/leave:
+----------------------------
+Create trigger trg4 after insert on tb3 for each row
+BEGIN
+set @counter=0, @flag='Initial';
+Label1: loop
+if new.f136<new.f144 then
+set @counter='Nothing to loop';
+leave Label1;
+else
+set @counter=@counter+1;
+if new.f136=new.f144+@counter then
+set @counter=concat(@counter, ' loops');
+leave Label1;
+end if;
+end if;
+iterate label1;
+set @flag='Final';
+END loop Label1;
+END//
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 2, 8);
+select @counter, @flag;
+@counter @flag
+Nothing to loop Initial
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 11, 8);
+select @counter, @flag;
+@counter @flag
+3 loops Initial
+Create trigger trg4_2 after update on tb3 for each row
+BEGIN
+Label1: loop
+set @counter=@counter+1;
+END;
+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 ';
+END' at line 5
+drop trigger trg4_2;
+drop trigger trg4;
+delete from tb3 where f122='Test 3.5.8.5-loop';
+
+Testcase 3.5.8.5-repeat:
+------------------------
+Create trigger trg6 after insert on tb3 for each row
+BEGIN
+rp_label: REPEAT
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+UNTIL @counter1> new.f136 END REPEAT rp_label;
+END//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-repeat', 13);
+select @counter1, @counter2;
+@counter1 @counter2
+15 8
+Create trigger trg6_2 after update on tb3 for each row
+BEGIN
+REPEAT
+SET @counter2 = @counter2 + 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 'END' at line 5
+drop trigger trg6;
+delete from tb3 where f122='Test 3.5.8.5-repeat';
+
+Testcase 3.5.8.5-while:
+-----------------------
+Create trigger trg7 after insert on tb3 for each row
+wl_label: WHILE @counter1 < new.f136 DO
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+END WHILE wl_label//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-while', 7);
+select @counter1, @counter2;
+@counter1 @counter2
+7 4
+Create trigger trg7_2 after update on tb3 for each row
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
+delete from tb3 where f122='Test 3.5.8.5-while';
+drop trigger trg7;
+
+Testcase 3.5.8.6: (requirement void)
+------------------------------------
+
+Testcase 3.5.8.7: (Disabled as a result of bug _____)
+-----------------------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_09.result b/mysql-test/suite/funcs_1/r/myisam_trig_09.result
new file mode 100644
index 00000000000..b7a5933e2f7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_09.result
@@ -0,0 +1,271 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase 3.5.9.1/2:
+-------------------
+Create trigger trg1 BEFORE UPDATE on tb3 for each row
+set new.f142 = 94087, @counter=@counter+1;
+TotalRows
+10
+Affected
+8
+NotAffected
+2
+NewValuew
+0
+set @counter=0;
+Update tb3 Set f142='1' where f130<100;
+select count(*) as ExpectedChanged, @counter as TrigCounter
+from tb3 where f142=94087;
+ExpectedChanged TrigCounter
+8 8
+select count(*) as ExpectedNotChange from tb3
+where f130<100 and f142<>94087;
+ExpectedNotChange
+0
+select count(*) as NonExpectedChanged from tb3
+where f130>=130 and f142=94087;
+NonExpectedChanged
+0
+drop trigger trg1;
+
+Testcase 3.5.9.3:
+-----------------
+Create trigger trg2_a before update on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_b after update on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+Create trigger trg2_c before delete on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_d after delete on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+Insert into tb3 (f122, f136, f163)
+values ('Test 3.5.9.3', 7, 123.17);
+Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+delete from tb3 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+drop trigger trg2_a;
+drop trigger trg2_b;
+drop trigger trg2_c;
+drop trigger trg2_d;
+
+Testcase 3.5.9.4:
+-----------------
+Create trigger trg3_a before insert on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_b after insert on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+Create trigger trg3_c before update on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_d after update on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Insert into tb3 (f122, f136, f151, f163)
+values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4%';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+where f122='Test 3.5.9.4';
+Warnings:
+Warning 1048 Column 'f136' cannot be null
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4-trig';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4-trig 00000 999 NULL
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+drop trigger trg3_a;
+drop trigger trg3_b;
+drop trigger trg3_c;
+drop trigger trg3_d;
+delete from tb3 where f122='Test 3.5.9.4-trig';
+
+Testcase 3.5.9.5: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.6:
+-----------------
+create trigger trg4a before insert on tb3 for each row
+set @temp1= old.f120;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg4b after insert on tb3 for each row
+set old.f120= 'test';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg4a;
+drop trigger trg4b;
+
+Testcase 3.5.9.7: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.8: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.9:
+-----------------
+create trigger trg5a before DELETE on tb3 for each row
+set @temp1=new.f122;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg5b after DELETE on tb3 for each row
+set new.f122='test';
+ERROR HY000: There is no NEW row in on DELETE trigger
+drop trigger trg5b;
+
+Testcase 3.5.9.10: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.9.11: covered by 3.5.9.9
+-------------------------------------
+
+Testcase 3.5.9.12: covered by 3.5.9.6
+-------------------------------------
+
+Testcase 3.5.9.13:
+------------------
+create trigger trg6a before UPDATE on tb3 for each row
+set old.f118='C', new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6b after INSERT on tb3 for each row
+set old.f136=163, new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6c after UPDATE on tb3 for each row
+set old.f136=NULL;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg6a;
+drop trigger trg6b;
+drop trigger trg6c;
+
+Testcase 3.5.9.14: (implied in previous tests)
+----------------------------------------------
diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result
new file mode 100644
index 00000000000..7867fc9f9e2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result
@@ -0,0 +1,406 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase 3.5.10.1/2/3:
+----------------------
+Create view vw11 as select * from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+Create trigger trg1a before insert on tb3
+for each row set new.f163=111.11;
+Create trigger trg1b after insert on tb3
+for each row set @test_var='After Insert';
+Create trigger trg1c before update on tb3
+for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+Create trigger trg1d after update on tb3
+for each row set @test_var='After Update';
+Create trigger trg1e before delete on tb3
+for each row set @test_var=5;
+Create trigger trg1f after delete on tb3
+for each row set @test_var= 2* @test_var+7;
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+Insert into vw11 (f122, f151) values ('Not in View', 3);
+select f121, f122, f151, f163
+from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+select f121, f122, f151, f163
+from tb3 where f122 like 'Not in View';
+f121 f122 f151 f163
+NULL Not in View 3 111.110000000000000000000000000000
+Update vw11 set f163=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+set @test_var=0;
+Select @test_var as 'before delete';
+before delete
+0
+delete from vw11 where f151=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Select @test_var as 'after delete';
+after delete
+17
+drop view vw11;
+drop trigger trg1a;
+drop trigger trg1b;
+drop trigger trg1c;
+drop trigger trg1d;
+drop trigger trg1e;
+drop trigger trg1f;
+delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+
+Testcase 3.5.10.4:
+------------------
+create table tb_load (f1 int, f2 char(25),f3 int) engine=myisam;
+Create trigger trg4 before insert on tb_load
+for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+set @counter= 0;
+select @counter as 'Rows Loaded Before';
+Rows Loaded Before
+0
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+select @counter as 'Rows Loaded After';
+Rows Loaded After
+10
+Select * from tb_load limit 10;
+f1 f2 f3
+-5000 a` 1000
+-4999 aaa 999
+-4998 abaa 999
+-4997 acaaa 999
+-4996 adaaaa 999
+-4995 aeaaaaa 999
+-4994 afaaaaaa 998
+-4993 agaaaaaaa 998
+-4992 a^aaaaaaaa 998
+-4991 a_aaaaaaaaa 998
+drop trigger trg4;
+drop table tb_load;
+
+Testcase 3.5.10.5: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.6: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.extra:
+----------------------
+create table t1_sp (var136 tinyint, var151 decimal) engine=myisam;
+create trigger trg before insert on t1_sp
+for each row set @counter=@counter+1;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR 02000: No data - zero rows fetched, selected, or processed
+select @counter;
+@counter
+11
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+11
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase 3.5.11.1 (implemented in trig_perf.test)
+-------------------------------------------------
+
+Testcase y.y.y.2: Check for triggers starting triggers
+------------------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2_1;
+drop table if exists t2_2;
+drop table if exists t2_3;
+drop table if exists t2_4;
+drop table if exists t3;
+create table t1 (f1 integer) engine=myisam;
+create table t2_1 (f1 integer) engine=myisam;
+create table t2_2 (f1 integer) engine=myisam;
+create table t2_3 (f1 integer) engine=myisam;
+create table t2_4 (f1 integer) engine=myisam;
+create table t3 (f1 integer) engine=myisam;
+insert into t1 values (1);
+create trigger tr1 after insert on t1 for each row
+BEGIN
+insert into t2_1 (f1) values (new.f1+1);
+insert into t2_2 (f1) values (new.f1+1);
+insert into t2_3 (f1) values (new.f1+1);
+insert into t2_4 (f1) values (new.f1+1);
+END//
+create trigger tr2_1 after insert on t2_1 for each row
+insert into t3 (f1) values (new.f1+10);
+create trigger tr2_2 after insert on t2_2 for each row
+insert into t3 (f1) values (new.f1+100);
+create trigger tr2_3 after insert on t2_3 for each row
+insert into t3 (f1) values (new.f1+1000);
+create trigger tr2_4 after insert on t2_4 for each row
+insert into t3 (f1) values (new.f1+10000);
+insert into t1 values (1);
+select * from t3;
+f1
+12
+102
+1002
+10002
+drop trigger tr1;
+drop trigger tr2_1;
+drop trigger tr2_2;
+drop trigger tr2_3;
+drop trigger tr2_4;
+drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+
+Testcase y.y.y.3: Circular trigger reference
+--------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = myisam;
+create table t2 (f2 integer) engine = myisam;
+create table t3 (f3 integer) engine = myisam;
+create table t4 (f4 integer) engine = myisam;
+insert into t1 values (0);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1);
+create trigger tr4 after insert on t4
+for each row insert into t1 (f1) values (new.f4+1);
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+0
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+select * from t4;
+f4
+4
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop trigger tr4;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
+----------------------------------------------------------------------
+set @sql_mode='traditional';
+create table t1_sp (
+count integer,
+var136 tinyint,
+var151 decimal) engine=myisam;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+set @counter= @counter+1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (@counter, var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+create trigger trg before insert on t1_sp
+for each row call trig_sp();
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine trig_sp
+select @counter;
+@counter
+1
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+0
+set @@max_sp_recursion_depth= 10;
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Can't update table 't1_sp' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select @counter;
+@counter
+2
+select count(*) from tb3;
+count(*)
+11
+select count(*) from t1_sp;
+count(*)
+0
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase y.y.y.5: Roleback of nested trigger references
+-------------------------------------------------------
+set @@sql_mode='traditional';
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = myisam;
+create table t2 (f2 integer) engine = myisam;
+create table t3 (f3 integer) engine = myisam;
+create table t4 (f4 tinyint) engine = myisam;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+insert into t1 values (1);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1000);
+set autocommit=0;
+start transaction;
+insert into t1 values (1);
+ERROR 22003: Out of range value adjusted for column 'f4' at row 1
+commit;
+select * from t1;
+f1
+1
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/suite/funcs_1/r/myisam_triggers.result b/mysql-test/suite/funcs_1/r/myisam_triggers.result
new file mode 100644
index 00000000000..4641fd5f291
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_triggers.result
@@ -0,0 +1,2266 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb3 ;
+create table tb3 (
+f118 char not null DEFAULT 'a',
+f119 char binary not null DEFAULT b'101',
+f120 char ascii not null DEFAULT b'101',
+f121 tinytext,
+f122 text,
+f123 mediumtext,
+f124 longtext unicode,
+f125 tinyblob,
+f126 blob,
+f127 mediumblob,
+f128 longblob,
+f129 binary not null DEFAULT b'101',
+f130 tinyint not null DEFAULT 99,
+f131 tinyint unsigned not null DEFAULT 99,
+f132 tinyint zerofill not null DEFAULT 99,
+f133 tinyint unsigned zerofill not null DEFAULT 99,
+f134 smallint not null DEFAULT 999,
+f135 smallint unsigned not null DEFAULT 999,
+f136 smallint zerofill not null DEFAULT 999,
+f137 smallint unsigned zerofill not null DEFAULT 999,
+f138 mediumint not null DEFAULT 9999,
+f139 mediumint unsigned not null DEFAULT 9999,
+f140 mediumint zerofill not null DEFAULT 9999,
+f141 mediumint unsigned zerofill not null DEFAULT 9999,
+f142 int not null DEFAULT 99999,
+f143 int unsigned not null DEFAULT 99999,
+f144 int zerofill not null DEFAULT 99999,
+f145 int unsigned zerofill not null DEFAULT 99999,
+f146 bigint not null DEFAULT 999999,
+f147 bigint unsigned not null DEFAULT 999999,
+f148 bigint zerofill not null DEFAULT 999999,
+f149 bigint unsigned zerofill not null DEFAULT 999999,
+f150 decimal not null DEFAULT 999.999,
+f151 decimal unsigned not null DEFAULT 999.17,
+f152 decimal zerofill not null DEFAULT 999.999,
+f153 decimal unsigned zerofill,
+f154 decimal (0),
+f155 decimal (64),
+f156 decimal (0) unsigned,
+f157 decimal (64) unsigned,
+f158 decimal (0) zerofill,
+f159 decimal (64) zerofill,
+f160 decimal (0) unsigned zerofill,
+f161 decimal (64) unsigned zerofill,
+f162 decimal (0,0),
+f163 decimal (63,30),
+f164 decimal (0,0) unsigned,
+f165 decimal (63,30) unsigned,
+f166 decimal (0,0) zerofill,
+f167 decimal (63,30) zerofill,
+f168 decimal (0,0) unsigned zerofill,
+f169 decimal (63,30) unsigned zerofill,
+f170 numeric,
+f171 numeric unsigned,
+f172 numeric zerofill,
+f173 numeric unsigned zerofill,
+f174 numeric (0),
+f175 numeric (64)
+) Engine = myisam;
+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
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ;
+
+Testcase: 3.5:
+--------------
+create User test_general@localhost;
+set password for test_general@localhost = password('PWD');
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+create User test_super@localhost;
+set password for test_super@localhost = password('PWD');
+grant ALL on *.* to test_super@localhost with grant OPTION;
+connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase: 3.5.1.1:
+------------------
+use test;
+Create trigger trg1_1 BEFORE INSERT
+on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+Create trigger trg1_2 AFTER INSERT
+on tb3 for each row set @test_after = 6;
+Create trigger trg1_4 BEFORE UPDATE
+on tb3 for each row set @test_before = 27,
+new.f142 = @test_before,
+new.f122 = 'Before Update Trigger';
+Create trigger trg1_3 AFTER UPDATE
+on tb3 for each row set @test_after = '15';
+Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+select count(*) into @test_before from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+Create trigger trg1_6 AFTER DELETE on tb3 for each row
+select count(*) into @test_after from tb3 as tr_tb3
+where f121 = 'Test 3.5.1.1';
+set @test_before = 1;
+set @test_after = 5;
+select @test_before, @test_after;
+@test_before @test_after
+1 5
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 First Row 2 0000000005 1
+select @test_before, @test_after;
+@test_before @test_after
+2 6
+set @test_before = 18;
+set @test_after = 8;
+select @test_before, @test_after;
+@test_before @test_after
+18 8
+Update tb3 set tb3.f122 = 'Update',
+tb3.f142 = @test_before,
+tb3.f144 = @test_after
+where tb3.f121 = 'Test 3.5.1.1';
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+27 15
+Insert into tb3 (f121, f122, f142, f144, f134)
+values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+set @test_before = 0;
+set @test_after = 0;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+Test 3.5.1.1 Second Row 2 0000000006 2
+select @test_before, @test_after;
+@test_before @test_after
+0 0
+Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+f121 f122 f142 f144 f134
+Test 3.5.1.1 Before Update Trigger 27 0000000008 1
+select @test_before, @test_after;
+@test_before @test_after
+2 1
+drop trigger trg1_1;
+drop trigger trg1_2;
+drop trigger trg1_3;
+drop trigger trg1_4;
+drop trigger trg1_5;
+drop trigger trg1_6;
+delete from tb3 where f121='Test 3.5.1.1';
+
+Testcase: 3.5.1.2:
+------------------
+Create trigger trg_1 after insert
+on tb3 for each statement set @x= 1;
+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 'statement set @x= 1' at line 2
+drop trigger trg_1;
+
+Testcase 3.5.1.3:
+-----------------
+CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+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 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
+CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+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 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
+CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+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 @ret1 = 'test' for each row' at line 1
+CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+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 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
+CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = '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 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
+drop trigger trg3_1;
+drop trigger trg3_2;
+drop trigger trg3_3;
+drop trigger trg3_4;
+drop trigger trg3_5;
+
+Testcase: 3.5.1.5:
+------------------
+CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+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 'on tb3 for each row set new.f120 = 'e'' at line 1
+CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+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 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
+CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+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 'tb3 for each row set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+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 new.f120 = 'g'' at line 1
+CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+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 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
+CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+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 'for each row set new.f120 = 'g'' at line 1
+drop trigger trg4_1;
+drop trigger trg4_2;
+drop trigger trg4_3;
+drop trigger trg4_4;
+drop trigger trg4_5;
+drop trigger trg4_6;
+
+Testcase 3.5.1.6: - Need to fix
+-------------------------------
+
+Testcase 3.5.1.7: - need to fix
+-------------------------------
+drop table if exists t1;
+Warnings:
+Note 1051 Unknown table 't1'
+create table t1 (f1 int, f2 char(25),f3 int) engine=myisam;
+CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+for each row set new.f3 = '14';
+CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+insert into t1 (f2) values ('insert 3.5.1.7');
+select * from t1;
+f1 f2 f3
+NULL insert 3.5.1.7 14
+update t1 set f2='update 3.5.1.7';
+select * from t1;
+f1 f2 f3
+NULL update 3.5.1.7 42
+select trigger_name from information_schema.triggers;
+trigger_name
+trg5_1
+trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
+drop trigger trg5_1;
+drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+drop table t1;
+
+Testcase 3.5.1.8:
+-----------------
+CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+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 '* before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+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 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+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 '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+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 '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+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 '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
+CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+for each row set new.f120 ='X';
+ERROR HY000: Trigger in wrong schema
+drop database if exists trig_db;
+create database trig_db;
+use trig_db;
+create table t1 (f1 integer) engine = myisam;
+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
+use trig_db;
+CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
+for each row set @ret_trg6_3 = 18;
+ERROR HY000: Trigger in wrong schema
+use test;
+drop database trig_db;
+drop trigger trg6_1;
+drop trigger trg6_3;
+
+Testcase 3.5.1.9:(cannot be inplemented at this point)
+------------------------------------------------------
+
+Testcase 3.5.1.10:
+------------------
+CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+ERROR HY000: Trigger already exists
+drop trigger trg7_1;
+
+Testcase 3.5.1.?:
+-----------------
+drop table if exists t1;
+drop table if exists t2;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create table t2 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig t1';
+create trigger trig before update on t2
+for each row set new.f1 ='trig t2';
+ERROR HY000: Trigger already exists
+insert into t1 value ('insert to t1',1);
+select * from t1;
+f1 f2
+trig t1 1
+update t1 set f1='update to t1';
+select * from t1;
+f1 f2
+update to t1 1
+insert into t2 value ('insert to t2',2);
+update t2 set f1='update to t1';
+select * from t2;
+f1 f2
+update to t1 2
+drop table t1;
+drop table t2;
+drop trigger trig;
+
+Testcase 3.5.1.11:
+------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+drop database if exists trig_db3;
+create database trig_db1;
+create database trig_db2;
+create database trig_db3;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig1', @test_var1='trig1';
+use trig_db2;
+create table t2 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t2
+for each row set new.f1 ='trig2', @test_var2='trig2';
+use trig_db3;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig before insert on t1
+for each row set new.f1 ='trig3', @test_var3='trig3';
+set @test_var1= '', @test_var2= '', @test_var3= '';
+use trig_db1;
+insert into t1 (f1,f2) values ('insert to db1 t1',1);
+insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1 trig2 trig3
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+select * from trig_db2.t2;
+f1 f2
+trig2 3
+select * from trig_db3.t1;
+f1 f2
+trig3 4
+select * from t1;
+f1 f2
+trig1 1
+trig1 2
+use test;
+drop database trig_db1;
+drop database trig_db2;
+drop database trig_db3;
+
+Testcase 3.5.2.1/2/3:
+---------------------
+drop database if exists trig_db1;
+drop database if exists trig_db2;
+create database trig_db1;
+create database trig_db2;
+use trig_db1;
+create table t1 (f1 char(50), f2 integer) engine = myisam;
+create table trig_db2.t1 (f1 char(50), f2 integer) engine = myisam;
+create trigger trig1_b before insert on t1
+for each row set @test_var1='trig1_b';
+create trigger trig_db1.trig1_a after insert on t1
+for each row set @test_var2='trig1_a';
+create trigger trig_db2.trig2 before insert on trig_db2.t1
+for each row set @test_var3='trig2';
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+trig_db1 trig1_b t1
+trig_db1 trig1_a t1
+trig_db2 trig2 t1
+set @test_var1= '', @test_var2= '', @test_var3= '';
+insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+select @test_var1, @test_var2, @test_var3;
+@test_var1 @test_var2 @test_var3
+trig1_b trig1_a trig2
+drop database trig_db1;
+drop database trig_db2;
+
+Testcase 3.5.3:
+---------------
+drop database if exists priv_db;
+create database priv_db;
+use priv_db;
+create table t1 (f1 char(20));
+create User test_noprivs@localhost;
+set password for test_noprivs@localhost = password('PWD');
+create User test_yesprivs@localhost;
+set password for test_yesprivs@localhost = password('PWD');
+
+Testcase 3.5.3.2/6:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SUPER on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+
+Testcase 3.5.3.2:
+-----------------
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+create trigger trg1_1 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_1-no';
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+select current_user;
+current_user
+test_yesprivs@localhost
+use priv_db;
+create trigger trg1_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.2_2-yes';
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.2-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+
+Testcase 3.5.3.6:
+-----------------
+use priv_db;
+drop trigger trg1_2;
+ERROR 42000: Access denied; you need the SUPER privilege for this operation
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-yes');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+use priv_db;
+drop trigger trg1_2;
+use priv_db;
+insert into t1 (f1) values ('insert 3.5.3.6-no');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+drop trigger trg1_2;
+
+Testcase 3.5.3.7a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke UPDATE on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1a');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+drop trigger trg4a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg4a_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2a';
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+drop trigger trg4a_2;
+
+Testcase 3.5.3.7b:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke UPDATE on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+insert 3.5.3.7-1b
+update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+drop trigger trg4b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4b_2 before UPDATE on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2b';
+insert into t1 (f1) values ('insert 3.5.3.7-2b');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+insert 3.5.3.7-2b
+update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+drop trigger trg4b_2;
+
+Testcase 3.5.3.7c
+-----------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+drop trigger trg4c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4c_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2c';
+insert into t1 (f1) values ('insert 3.5.3.7-2c');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+drop trigger trg4c_2;
+
+Testcase 3.5.3.7d:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs;
+Grants for test_noprivs@%
+GRANT SUPER ON *.* TO 'test_noprivs'@'%'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8884
+------------------------------------------------
+insert into t1 (f1) values ('insert 3.5.3.7-1d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+drop trigger trg4d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg4d_2 before INSERT on t1 for each row
+set new.f1 = 'trig 3.5.3.7-2d';
+insert into t1 (f1) values ('insert 3.5.3.7-2d');
+select f1 from t1;
+f1
+insert 3.5.3.2-no
+trig 3.5.3.2_2-yes
+trig 3.5.3.2_2-yes
+insert 3.5.3.6-no
+insert 3.5.3.7-1a
+trig 3.5.3.7-2a
+update 3.5.3.7-1b
+trig 3.5.3.7-2b
+insert 3.5.3.7-1c
+trig 3.5.3.7-2c
+insert 3.5.3.7-1d
+trig 3.5.3.7-2d
+drop trigger trg4d_2;
+
+Testcase 3.5.3.8a:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant ALL on *.* to test_noprivs@localhost;
+revoke SELECT on *.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+select current_user;
+current_user
+test_noprivs@localhost
+use priv_db;
+show grants;
+Grants for test_noprivs@localhost
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var = 'before trig 3.5.3.8-1a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+insert into t1 (f1) values ('insert 3.5.3.8-1a');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1a
+drop trigger trg5a_1;
+use priv_db;
+select current_user;
+current_user
+test_yesprivs@localhost
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+create trigger trg5a_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2a';
+select @test_var;
+@test_var
+before trig 3.5.3.8-2a
+insert into t1 (f1) values ('insert 3.5.3.8-2a');
+select @test_var;
+@test_var
+insert 3.5.3.8-2a
+drop trigger trg5a_2;
+
+Testcase: 3.5.3.8b
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.* to test_noprivs@localhost;
+revoke SELECT on priv_db.* from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.* to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1b';
+insert into t1 (f1) values ('insert 3.5.3.8-1b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+select @test_var;
+@test_var
+before trig 3.5.3.8-1b
+drop trigger trg5b_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5b_2 before UPDATE on t1 for each row
+set @test_var= new.f1;
+set @test_var= 'before trig 3.5.3.8-2b';
+insert into t1 (f1) values ('insert 3.5.3.8-2b');
+select @test_var;
+@test_var
+before trig 3.5.3.8-2b
+update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+select @test_var;
+@test_var
+update 3.5.3.8-2b
+drop trigger trg5b_2;
+
+Testcase 3.5.3.8c:
+------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant ALL on priv_db.t1 to test_noprivs@localhost;
+revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_yesprivs@localhost;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var= 'before trig 3.5.3.8-1c';
+insert into t1 (f1) values ('insert 3.5.3.8-1c');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1c
+drop trigger trg5c_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5c_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2c';
+insert into t1 (f1) values ('insert 3.5.3.8-2c');
+select @test_var;
+@test_var
+insert 3.5.3.8-2c
+drop trigger trg5c_2;
+
+Testcase: 3.5.3.8d:
+-------------------
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+grant SUPER on *.* to test_noprivs@localhost;
+grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+grant SUPER on *.* to test_yesprivs@localhost;
+grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+show grants for test_noprivs@localhost;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK);
+show grants;
+Grants for test_noprivs@localhost
+GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
+use priv_db;
+
+Trigger create disabled - should fail - Bug 8887
+------------------------------------------------
+set @test_var='before trig 3.5.3.8-1d';
+insert into t1 (f1) values ('insert 3.5.3.8-1d');
+select @test_var;
+@test_var
+before trig 3.5.3.8-1d
+drop trigger trg5d_1;
+show grants;
+Grants for test_yesprivs@localhost
+GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
+GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
+use priv_db;
+create trigger trg5d_2 before INSERT on t1 for each row
+set @test_var= new.f1;
+set @test_var='before trig 3.5.3.8-2d';
+insert into t1 (f1) values ('insert 3.5.3.8-2d');
+select @test_var;
+@test_var
+insert 3.5.3.8-2d
+drop trigger trg5d_2;
+drop database if exists priv_db;
+drop user test_yesprivs@localhost;
+drop user test_noprivs@localhost;
+drop user test_noprivs;
+
+Testcase 3.5.4:
+---------------
+use test;
+
+Testcase 3.5.4.1:
+-----------------
+create database db_drop;
+Use db_drop;
+create table t1 (f1 char(30)) engine=myisam;
+grant INSERT, SELECT on db_drop.t1 to test_general;
+Use db_drop;
+Create trigger trg1 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.1';
+Use db_drop;
+Insert into t1 values ('Insert error 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+drop trigger trg1;
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers;
+trigger_schema trigger_name event_object_table
+Insert into t1 values ('Insert no trigger 3.5.4.1');
+Select * from t1;
+f1
+Trigger 3.5.4.1
+Insert no trigger 3.5.4.1
+drop trigger trg1;
+drop database if exists db_drop;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.2:
+-----------------
+create database db_drop2;
+Use db_drop2;
+drop table if exists t1_432 ;
+create table t1_432 (f1 char (30)) engine=myisam;
+Drop trigger tr_does_not_exit;
+ERROR HY000: Trigger does not exist
+drop table if exists t1_432 ;
+drop database if exists db_drop2;
+
+Testcase 3.5.4.3:
+-----------------
+create database db_drop3;
+Use db_drop3;
+drop table if exists t1_433 ;
+drop table if exists t1_433a ;
+create table t1_433 (f1 char (30)) engine=myisam;
+create table t1_433a (f1a char (5)) engine=myisam;
+CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+set new.f1 = 'Trigger 3.5.4.3';
+Drop trigger t1.433.trg3;
+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 '.trg3' at line 1
+Drop trigger db_drop3.t1.433.trg3;
+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 '.433.trg3' at line 1
+Drop trigger mysql.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger tbx.trg3;
+ERROR HY000: Trigger does not exist
+Drop trigger db_drop3.trg3;
+drop table if exists t1_433;
+drop table if exists t1_433a;
+drop database if exists db_drop3;
+
+Testcase 3.5.4.4:
+-----------------
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=myisam;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Create trigger trg4 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.4';
+Use db_drop4;
+Insert into t1 values ('Insert 3.5.4.4');
+Select * from t1;
+f1
+Trigger 3.5.4.4
+Drop database db_drop4;
+Show databases;
+Database
+information_schema
+mysql
+test
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg4';
+trigger_schema trigger_name event_object_table
+create database db_drop4;
+Use db_drop4;
+create table t1 (f1 char(30)) engine=myisam;
+grant INSERT, SELECT on db_drop4.t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.4');
+Select * from t1;
+f1
+2nd Insert 3.5.4.4
+drop trigger trg4;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop4;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.4.5:
+-----------------
+create database db_drop5;
+Use db_drop5;
+create table t1 (f1 char(50)) engine=myisam;
+grant INSERT, SELECT on t1 to test_general;
+Create trigger trg5 BEFORE INSERT on t1
+for each row set new.f1='Trigger 3.5.4.5';
+Use db_drop5;
+Insert into t1 values ('Insert 3.5.4.5');
+Select * from t1;
+f1
+Trigger 3.5.4.5
+Drop table t1;
+Show tables;
+Tables_in_db_drop5
+select trigger_schema, trigger_name, event_object_table
+from information_schema.triggers
+where information_schema.triggers.trigger_name='trg5';
+trigger_schema trigger_name event_object_table
+create table t1 (f1 char(50)) engine=myisam;
+grant INSERT, SELECT on t1 to test_general;
+Insert into t1 values ('2nd Insert 3.5.4.5');
+Select * from t1;
+f1
+2nd Insert 3.5.4.5
+drop trigger trg5;
+ERROR HY000: Trigger does not exist
+drop database if exists db_drop5;
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.5:
+---------------
+use test;
+
+Testcase 3.5.5.1:
+-----------------
+Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+ERROR 42S02: Table 'test.t100' doesn't exist
+
+Testcase 3.5.5.2:
+-----------------
+Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+Create trigger trg2 before INSERT
+on t1_temp for each row set new.f2=9999;
+ERROR HY000: Trigger's 't1_temp' is view or temporary table
+drop table t1_temp;
+
+Testcase 3.5.5.3:
+-----------------
+Create view vw3 as select f118 from tb3;
+Create trigger trg3 before INSERT
+on vw3 for each row set new.f118='s';
+ERROR HY000: 'test.vw3' is not BASE TABLE
+drop view vw3;
+
+Testcase 3.5.5.4:
+-----------------
+create database dbtest_one;
+create database dbtest_two;
+use dbtest_two;
+create table t2 (f1 char(15));
+use dbtest_one;
+create trigger trg4 before INSERT
+on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ERROR HY000: Trigger in wrong schema
+grant INSERT, SELECT on dbtest_two.t2 to test_general;
+grant SELECT on dbtest_one.* to test_general;
+use dbtest_two;
+Insert into t2 values ('1st Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from t2;
+f1
+1st Insert 3.5.
+use dbtest_one;
+Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+Warnings:
+Warning 1265 Data truncated for column 'f1' at row 1
+Select * from dbtest_two.t2;
+f1
+1st Insert 3.5.
+2nd Insert 3.5.
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+DROP DATABASE if exists dbtest_one;
+drop database if EXISTS dbtest_two;
+
+Testcase 3.5.6:
+---------------
+use test;
+
+Testcase 3.5.6.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.3:
+-----------------
+Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+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 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
+Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+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 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
+drop trigger tb3.trg3_1;
+drop trigger tb3.trg3_2;
+
+Testcase 3.5.6.4 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.6.5 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.1 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.2 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.3 (see Testcase 3.5.1.1)
+---------------------------------------
+
+Testcase 3.5.7.4:
+-----------------
+Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+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 'SELECT on tb3 for each row set new.f132=5' at line 1
+Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+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 'VALUE on tb3 for each row set new.f132=1' at line 1
+drop trigger tb3.trg4_1;
+drop trigger tb3.trg4_2;
+
+Testcase 3.5.7.5 / 3.5.7.6:
+---------------------------
+Create trigger trg5_1 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+Create trigger trg5_2 BEFORE INSERT
+on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+ERROR HY000: Trigger already exists
+Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Trigger1 3.5.7.5/6
+update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+f121 f122
+Test 3.5.7.5/6 Update 3.5.7.6
+drop trigger trg5_1;
+drop trigger trg5_2;
+delete from tb3 where f121='Test 3.5.7.5/6';
+
+Testcase 3.5.7.7 / 3.5.7.8:
+---------------------------
+set @test_var='Before trig 3.5.7.7';
+Create trigger trg6_1 AFTER INSERT
+on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+Create trigger trg6_2 AFTER INSERT
+on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+Before trig 3.5.7.7
+Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Insert 3.5.7.7
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+f121 f122
+Test 3.5.7.7/8 Update 3.5.7.8
+select @test_var;
+@test_var
+Trigger1 3.5.7.7/8
+drop trigger trg6_1;
+drop trigger trg6_2;
+delete from tb3 where f121='Test 3.5.7.7/8';
+
+Testcase 3.5.7.9/10:
+--------------------
+Create trigger trg7_1 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+Create trigger trg7_2 BEFORE UPDATE
+on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+ERROR HY000: Trigger already exists
+Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Insert 3.5.7.9
+update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+f121 f122
+Test 3.5.7.9/10 Trigger1 3.5.7.9/10
+drop trigger trg7_1;
+drop trigger trg7_2;
+delete from tb3 where f121='Test 3.5.7.9/10';
+
+Testcase 3.5.7.11/12:
+---------------------
+set @test_var='Before trig 3.5.7.11';
+Create trigger trg8_1 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+Create trigger trg8_2 AFTER UPDATE
+on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+select @test_var;
+@test_var
+Before trig 3.5.7.11
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 Insert 3.5.7.11/12
+update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+f121 f122
+Test 3.5.7.11/12 update 3.5.7.12
+select @test_var;
+@test_var
+Trigger 3.5.7.11/12
+delete from tb3 where f121='Test 3.5.7.11/12';
+drop trigger trg8_1;
+drop trigger trg8_2;
+delete from tb3 where f121='Test 3.5.7.11/12';
+
+Testcase 3.5.7.13/14:
+---------------------
+set @test_var=1;
+Create trigger trg9_1 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+1;
+Create trigger trg9_2 BEFORE DELETE
+on tb3 for each row set @test_var=@test_var+10;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+Test 3.5.7.13/14 Insert 3.5.7.13
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.13/14';
+Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+f121 f122
+select @test_var;
+@test_var
+2
+delete from tb3 where f121='Test 3.5.7.13/14';
+select @test_var;
+@test_var
+2
+drop trigger trg9_1;
+drop trigger trg9_2;
+delete from tb3 where f121='Test 3.5.7.13/14';
+
+Testcase 3.5.7.15/16:
+---------------------
+set @test_var=1;
+Create trigger trg_3_406010_1 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+5;
+Create trigger trg_3_406010_2 AFTER DELETE
+on tb3 for each row set @test_var=@test_var+50;
+ERROR HY000: Trigger already exists
+Create trigger trg_3_406010_1 AFTER INSERT
+on tb3 for each row set @test_var=@test_var+1;
+ERROR HY000: Trigger already exists
+select @test_var;
+@test_var
+1
+Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+Test 3.5.7.15/16 Insert 3.5.7.15/16
+select @test_var;
+@test_var
+1
+delete from tb3 where f121='Test 3.5.7.15/16';
+Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+f121 f122
+select @test_var;
+@test_var
+6
+delete from tb3 where f121='Test 3.5.7.15/16';
+select @test_var;
+@test_var
+6
+drop trigger trg_3_406010_1;
+drop trigger trg_3_406010_2;
+delete from tb3 where f121='Test 3.5.7.15/16';
+
+Testcase 3.5.7.17 (see Testcase 3.5.1.1)
+----------------------------------------
+
+Testcase 3.5.8.1: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.2: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.8.3/4:
+-------------------
+create database db_test;
+grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+grant LOCK TABLES on db_test.* to test_general;
+Use db_test;
+create table t1_i (
+i120 char ascii not null DEFAULT b'101',
+i136 smallint zerofill not null DEFAULT 999,
+i144 int zerofill not null DEFAULT 99999,
+i163 decimal (63,30)) engine=myisam;
+create table t1_u (
+u120 char ascii not null DEFAULT b'101',
+u136 smallint zerofill not null DEFAULT 999,
+u144 int zerofill not null DEFAULT 99999,
+u163 decimal (63,30)) engine=myisam;
+create table t1_d (
+d120 char ascii not null DEFAULT b'101',
+d136 smallint zerofill not null DEFAULT 999,
+d144 int zerofill not null DEFAULT 99999,
+d163 decimal (63,30)) engine=myisam;
+Insert into t1_u values ('a',111,99999,999.99);
+Insert into t1_u values ('b',222,99999,999.99);
+Insert into t1_u values ('c',333,99999,999.99);
+Insert into t1_u values ('d',222,99999,999.99);
+Insert into t1_u values ('e',222,99999,999.99);
+Insert into t1_u values ('f',333,99999,999.99);
+Insert into t1_d values ('a',111,99999,999.99);
+Insert into t1_d values ('b',222,99999,999.99);
+Insert into t1_d values ('c',333,99999,999.99);
+Insert into t1_d values ('d',444,99999,999.99);
+Insert into t1_d values ('e',222,99999,999.99);
+Insert into t1_d values ('f',222,99999,999.99);
+
+3.5.8.4 - multiple SQL
+----------------------
+use test;
+Create trigger trg1 AFTER INSERT on tb3 for each row
+BEGIN
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update db_test.t1_u
+set u144=new.f144, u163=new.f163
+where u136=new.f136;
+delete from db_test.t1_d where d136= new.f136;
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+END//
+Use test;
+set @test_var=0;
+Insert into tb3 (f120, f122, f136, f144, f163)
+values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+f120 f122 f136 f144 f163
+1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+b 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00222 0000023456 1.050000000000000000000000000000
+e 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+d 00444 0000099999 999.990000000000000000000000000000
+select @test_var;
+@test_var
+3.150000000000000000000000000000
+
+3.5.8.4 - single SQL - insert
+-----------------------------
+Create trigger trg2 BEFORE UPDATE on tb3 for each row
+insert into db_test.t1_i
+values (new.f120, new.f136, new.f144, new.f163);
+update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_i;
+i120 i136 i144 i163
+1 00222 0000023456 1.050000000000000000000000000000
+I 00222 0000023456 1.050000000000000000000000000000
+
+3.5.8.4 - single SQL - update
+-----------------------------
+drop trigger trg2;
+Create trigger trg3 BEFORE UPDATE on tb3 for each row
+update db_test.t1_u
+set u120=new.f120
+where u136=new.f136;
+update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_u;
+u120 u136 u144 u163
+a 00111 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+U 00222 0000023456 1.050000000000000000000000000000
+f 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - delete
+-------------------------------
+drop trigger trg3;
+Create trigger trg4 AFTER UPDATE on tb3 for each row
+delete from db_test.t1_d where d136= new.f136;
+update tb3 set f120='D', f136=444,
+f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
+select * from db_test.t1_d;
+d120 d136 d144 d163
+a 00111 0000099999 999.990000000000000000000000000000
+c 00333 0000099999 999.990000000000000000000000000000
+
+3.5.8.3/4 - single SQL - select
+-------------------------------
+drop trigger trg4;
+Create trigger trg5 AFTER UPDATE on tb3 for each row
+select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+where u136= new.f136;
+set @test_var=0;
+update tb3 set f120='S', f136=111,
+f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+f120 f122 f136 f144 f163
+S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
+select @test_var;
+@test_var
+999.990000000000000000000000000000
+drop trigger trg1;
+drop trigger trg5;
+drop database if exists db_test;
+delete from tb3 where f122 like 'Test 3.5.8.4%';
+revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+Testcase 3.5.8.5 (IF):
+----------------------
+create trigger trg2 before insert on tb3 for each row
+BEGIN
+IF new.f120='1' then
+set @test_var='one', new.f120='2';
+ELSEIF new.f120='2' then
+set @test_var='two', new.f120='3';
+ELSEIF new.f120='3' then
+set @test_var='three', new.f120='4';
+END IF;
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+END IF;
+END//
+set @test_var='Empty', @test_var2=0;
+Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 one 2nd else
+Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 two 2nd else
+D Test 3.5.8.5-if 00102 two 2nd else
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd if
+D Test 3.5.8.5-if 00102 three 2nd if
+d Test 3.5.8.5-if 00010 three 2nd if
+Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+select f120, f122, f136, @test_var, @test_var2
+from tb3 where f122 = 'Test 3.5.8.5-if';
+f120 f122 f136 @test_var @test_var2
+D Test 3.5.8.5-if 00101 three 2nd else
+D Test 3.5.8.5-if 00102 three 2nd else
+d Test 3.5.8.5-if 00010 three 2nd else
+D Test 3.5.8.5-if 00103 three 2nd else
+create trigger trg3 before update on tb3 for each row
+BEGIN
+ELSEIF new.f120='2' then
+END IF;
+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 'ELSEIF new.f120='2' then
+END IF;
+END' at line 3
+drop trigger trg3//
+create trigger trg4 before update on tb3 for each row
+BEGIN
+IF (new.f120='4') and (new.f136=10) then
+set @test_var2='2nd if', new.f120='d';
+ELSE
+set @test_var2='2nd else', new.f120='D';
+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 '' at line 7
+drop trigger trg4;
+drop trigger trg2;
+delete from tb3 where f121='Test 3.5.8.5-if';
+
+Testcase 3.5.8.5-case:
+----------------------
+create trigger trg3 before insert on tb3 for each row
+BEGIN
+SET new.f120=char(ascii(new.f120)-32);
+CASE
+when new.f136<100 then set new.f136=new.f136+120;
+when new.f136<10 then set new.f144=777;
+when new.f136>100 then set new.f120=new.f136-1;
+END case;
+CASE
+when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ELSE set @test_var=concat(new.f120, '*');
+END case;
+CASE new.f144
+when 1 then set @test_var=concat(@test_var, 'one');
+when 2 then set @test_var=concat(@test_var, 'two');
+when 3 then set @test_var=concat(@test_var, 'three');
+when 4 then set @test_var=concat(@test_var, 'four');
+when 5 then set @test_var=concat(@test_var, 'five');
+when 6 then set @test_var=concat(@test_var, 'six');
+when 7 then set @test_var=concat(@test_var, 'seven');
+when 8 then set @test_var=concat(@test_var, 'eight');
+when 9 then set @test_var=concat(@test_var, 'nine');
+when 10 then set @test_var=concat(@test_var, 'ten');
+when 11 then set @test_var=concat(@test_var, 'eleven');
+when 12 then set @test_var=concat(@test_var, 'twelve');
+when 13 then set @test_var=concat(@test_var, 'thirteen');
+when 14 then set @test_var=concat(@test_var, 'fourteen');
+when 15 then set @test_var=concat(@test_var, 'fifteen');
+ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+END case;
+END//
+set @test_var='Empty';
+Insert into tb3 (f120, f122, f136, f144)
+values ('a', 'Test 3.5.8.5-case', 5, 7);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 A*seven
+Insert into tb3 (f120, f122, f136, f144)
+values ('b', 'Test 3.5.8.5-case', 71,16);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 B*0000000016
+B Test 3.5.8.5-case 00191 0000000016 B*0000000016
+Insert into tb3 (f120, f122, f136, f144)
+values ('c', 'Test 3.5.8.5-case', 80,1);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 C=one
+B Test 3.5.8.5-case 00191 0000000016 C=one
+C Test 3.5.8.5-case 00200 0000000001 C=one
+Insert into tb3 (f120, f122, f136)
+values ('d', 'Test 3.5.8.5-case', 152);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1*0000099999
+B Test 3.5.8.5-case 00191 0000000016 1*0000099999
+C Test 3.5.8.5-case 00200 0000000001 1*0000099999
+1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
+Insert into tb3 (f120, f122, f136, f144)
+values ('e', 'Test 3.5.8.5-case', 200, 8);
+Warnings:
+Warning 1265 Data truncated for column 'f120' at row 1
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+Insert into tb3 (f120, f122, f136, f144)
+values ('f', 'Test 3.5.8.5-case', 100, 8);
+select f120, f122, f136, f144, @test_var
+from tb3 where f122 = 'Test 3.5.8.5-case';
+f120 f122 f136 f144 @test_var
+A Test 3.5.8.5-case 00125 0000000007 1=eight
+B Test 3.5.8.5-case 00191 0000000016 1=eight
+C Test 3.5.8.5-case 00200 0000000001 1=eight
+1 Test 3.5.8.5-case 00152 0000099999 1=eight
+1 Test 3.5.8.5-case 00200 0000000008 1=eight
+create trigger trg3a before update on tb3 for each row
+BEGIN
+CASE
+when new.f136<100 then set new.f120='p';
+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 '' at line 5
+drop trigger trg3a;
+drop trigger trg3;
+delete from tb3 where f121='Test 3.5.8.5-case';
+
+Testcase 3.5.8.5-loop/leave:
+----------------------------
+Create trigger trg4 after insert on tb3 for each row
+BEGIN
+set @counter=0, @flag='Initial';
+Label1: loop
+if new.f136<new.f144 then
+set @counter='Nothing to loop';
+leave Label1;
+else
+set @counter=@counter+1;
+if new.f136=new.f144+@counter then
+set @counter=concat(@counter, ' loops');
+leave Label1;
+end if;
+end if;
+iterate label1;
+set @flag='Final';
+END loop Label1;
+END//
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 2, 8);
+select @counter, @flag;
+@counter @flag
+Nothing to loop Initial
+Insert into tb3 (f122, f136, f144)
+values ('Test 3.5.8.5-loop', 11, 8);
+select @counter, @flag;
+@counter @flag
+3 loops Initial
+Create trigger trg4_2 after update on tb3 for each row
+BEGIN
+Label1: loop
+set @counter=@counter+1;
+END;
+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 ';
+END' at line 5
+drop trigger trg4_2;
+drop trigger trg4;
+delete from tb3 where f122='Test 3.5.8.5-loop';
+
+Testcase 3.5.8.5-repeat:
+------------------------
+Create trigger trg6 after insert on tb3 for each row
+BEGIN
+rp_label: REPEAT
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+UNTIL @counter1> new.f136 END REPEAT rp_label;
+END//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-repeat', 13);
+select @counter1, @counter2;
+@counter1 @counter2
+15 8
+Create trigger trg6_2 after update on tb3 for each row
+BEGIN
+REPEAT
+SET @counter2 = @counter2 + 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 'END' at line 5
+drop trigger trg6;
+delete from tb3 where f122='Test 3.5.8.5-repeat';
+
+Testcase 3.5.8.5-while:
+-----------------------
+Create trigger trg7 after insert on tb3 for each row
+wl_label: WHILE @counter1 < new.f136 DO
+SET @counter1 = @counter1 + 1;
+IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+END IF;
+SET @counter2 = @counter2 + 1;
+END WHILE wl_label//
+set @counter1= 0, @counter2= 0;
+Insert into tb3 (f122, f136)
+values ('Test 3.5.8.5-while', 7);
+select @counter1, @counter2;
+@counter1 @counter2
+7 4
+Create trigger trg7_2 after update on tb3 for each row
+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 'SET @counter1 = @counter1 + 1;
+END' at line 4
+delete from tb3 where f122='Test 3.5.8.5-while';
+drop trigger trg7;
+
+Testcase 3.5.8.6: (requirement void)
+------------------------------------
+
+Testcase 3.5.8.7: (Disabled as a result of bug _____)
+-----------------------------------------------------
+
+Testcase 3.5.9.1/2:
+-------------------
+Create trigger trg1 BEFORE UPDATE on tb3 for each row
+set new.f142 = 94087, @counter=@counter+1;
+TotalRows
+19
+Affected
+17
+NotAffected
+2
+NewValuew
+0
+set @counter=0;
+Update tb3 Set f142='1' where f130<100;
+select count(*) as ExpectedChanged, @counter as TrigCounter
+from tb3 where f142=94087;
+ExpectedChanged TrigCounter
+17 17
+select count(*) as ExpectedNotChange from tb3
+where f130<100 and f142<>94087;
+ExpectedNotChange
+0
+select count(*) as NonExpectedChanged from tb3
+where f130>=130 and f142=94087;
+NonExpectedChanged
+0
+drop trigger trg1;
+
+Testcase 3.5.9.3:
+-----------------
+Create trigger trg2_a before update on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_b after update on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+Create trigger trg2_c before delete on tb3 for each row
+set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+@tr_var_b4_163=old.f163;
+Create trigger trg2_d after delete on tb3 for each row
+set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+@tr_var_af_163=old.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+Insert into tb3 (f122, f136, f163)
+values ('Test 3.5.9.3', 7, 123.17);
+Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+0 0 0 0 0
+delete from tb3 where f122='Test 3.5.9.3';
+select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+f118 f121 f122 f136 f163
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
+a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
+drop trigger trg2_a;
+drop trigger trg2_b;
+drop trigger trg2_c;
+drop trigger trg2_d;
+
+Testcase 3.5.9.4:
+-----------------
+Create trigger trg3_a before insert on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_b after insert on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+Create trigger trg3_c before update on tb3 for each row
+set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+Create trigger trg3_d after update on tb3 for each row
+set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Insert into tb3 (f122, f136, f151, f163)
+values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4%';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+0 0 0 0 0 0
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+0 0 0 0 0 0
+Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+where f122='Test 3.5.9.4';
+Warnings:
+Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f136' at row 20
+select f118, f121, f122, f136, f151, f163 from tb3
+where f122 like 'Test 3.5.9.4-trig';
+f118 f121 f122 f136 f151 f163
+a NULL Test 3.5.9.4-trig 00000 999 NULL
+select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
+a NULL Test 3.5.9.4-trig 0 999 NULL
+drop trigger trg3_a;
+drop trigger trg3_b;
+drop trigger trg3_c;
+drop trigger trg3_d;
+delete from tb3 where f122='Test 3.5.9.4-trig';
+
+Testcase 3.5.9.5: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.6:
+-----------------
+create trigger trg4a before insert on tb3 for each row
+set @temp1= old.f120;
+ERROR HY000: There is no OLD row in on INSERT trigger
+create trigger trg4b after insert on tb3 for each row
+set old.f120= 'test';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg4a;
+drop trigger trg4b;
+
+Testcase 3.5.9.7: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.8: (implied in previous tests)
+---------------------------------------------
+
+Testcase 3.5.9.9:
+-----------------
+create trigger trg5a before DELETE on tb3 for each row
+set @temp1=new.f122;
+ERROR HY000: There is no NEW row in on DELETE trigger
+create trigger trg5b after DELETE on tb3 for each row
+set new.f122='test';
+ERROR HY000: There is no NEW row in on DELETE trigger
+drop trigger trg5a;
+drop trigger trg5b;
+
+Testcase 3.5.9.10: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.9.11: covered by 3.5.9.9
+-------------------------------------
+
+Testcase 3.5.9.12: covered by 3.5.9.6
+-------------------------------------
+
+Testcase 3.5.9.13:
+------------------
+create trigger trg6a before UPDATE on tb3 for each row
+set old.f118='C', new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6b after INSERT on tb3 for each row
+set old.f136=163, new.f118='U';
+ERROR HY000: Updating of OLD row is not allowed in trigger
+create trigger trg6c after UPDATE on tb3 for each row
+set old.f136=NULL;
+ERROR HY000: Updating of OLD row is not allowed in trigger
+drop trigger trg6a;
+drop trigger trg6b;
+drop trigger trg6c;
+
+Testcase 3.5.9.14: (implied in previous tests)
+----------------------------------------------
+
+Testcase 3.5.10.1/2/3:
+----------------------
+Create view vw11 as select * from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+Create trigger trg1a before insert on tb3
+for each row set new.f163=111.11;
+Create trigger trg1b after insert on tb3
+for each row set @test_var='After Insert';
+Create trigger trg1c before update on tb3
+for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+Create trigger trg1d after update on tb3
+for each row set @test_var='After Update';
+Create trigger trg1e before delete on tb3
+for each row set @test_var=5;
+Create trigger trg1f after delete on tb3
+for each row set @test_var= 2* @test_var+7;
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+Insert into vw11 (f122, f151) values ('Not in View', 3);
+select f121, f122, f151, f163
+from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
+NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
+select f121, f122, f151, f163
+from tb3 where f122 like 'Not in View';
+f121 f122 f151 f163
+NULL Not in View 3 111.110000000000000000000000000000
+Update vw11 set f163=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
+set @test_var=0;
+Select @test_var as 'before delete';
+before delete
+0
+delete from vw11 where f151=1;
+select f121, f122, f151, f163 from tb3
+where f122 like 'Test 3.5.10.1/2/3%';
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+select f121, f122, f151, f163 from vw11;
+f121 f122 f151 f163
+Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
+Select @test_var as 'after delete';
+after delete
+17
+drop view vw11;
+drop trigger trg1a;
+drop trigger trg1b;
+drop trigger trg1c;
+drop trigger trg1d;
+drop trigger trg1e;
+drop trigger trg1f;
+delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+
+Testcase 3.5.10.4:
+------------------
+create table tb_load (f1 int, f2 char(25),f3 int) engine=myisam;
+Create trigger trg4 before insert on tb_load
+for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+set @counter= 0;
+select @counter as 'Rows Loaded Before';
+Rows Loaded Before
+0
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+select @counter as 'Rows Loaded After';
+Rows Loaded After
+10
+Select * from tb_load limit 10;
+f1 f2 f3
+-5000 a` 1000
+-4999 aaa 999
+-4998 abaa 999
+-4997 acaaa 999
+-4996 adaaaa 999
+-4995 aeaaaaa 999
+-4994 afaaaaaa 998
+-4993 agaaaaaaa 998
+-4992 a^aaaaaaaa 998
+-4991 a_aaaaaaaaa 998
+drop trigger trg4;
+drop table tb_load;
+
+Testcase 3.5.10.5: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.6: (implemented in trig_frkey.test)
+---------------------------------------------------
+
+Testcase 3.5.10.extra:
+----------------------
+create table t1_sp (var136 tinyint, var151 decimal) engine=myisam;
+create trigger trg before insert on t1_sp
+for each row set @counter=@counter+1;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR 02000: No data to FETCH
+select @counter;
+@counter
+20
+select count(*) from tb3;
+count(*)
+20
+select count(*) from t1_sp;
+count(*)
+20
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase 3.5.11.1 (implemented in trig_perf.test)
+-------------------------------------------------
+drop user test_general@localhost;
+drop user test_general;
+drop user test_super@localhost;
+
+Testcase y.y.y.2: Check for triggers starting triggers
+------------------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2_1;
+drop table if exists t2_2;
+drop table if exists t2_3;
+drop table if exists t2_4;
+drop table if exists t3;
+create table t1 (f1 integer);
+create table t2_1 (f1 integer);
+create table t2_2 (f1 integer);
+create table t2_3 (f1 integer);
+create table t2_4 (f1 integer);
+create table t3 (f1 integer);
+insert into t1 values (1);
+create trigger tr1 after insert on t1 for each row
+BEGIN
+insert into t2_1 (f1) values (new.f1+1);
+insert into t2_2 (f1) values (new.f1+1);
+insert into t2_3 (f1) values (new.f1+1);
+insert into t2_4 (f1) values (new.f1+1);
+END//
+create trigger tr2_1 after insert on t2_1 for each row
+insert into t3 (f1) values (new.f1+10);
+create trigger tr2_2 after insert on t2_2 for each row
+insert into t3 (f1) values (new.f1+100);
+create trigger tr2_3 after insert on t2_3 for each row
+insert into t3 (f1) values (new.f1+1000);
+create trigger tr2_4 after insert on t2_4 for each row
+insert into t3 (f1) values (new.f1+10000);
+insert into t1 values (1);
+select * from t3;
+f1
+12
+102
+1002
+10002
+drop trigger tr1;
+drop trigger tr2_1;
+drop trigger tr2_2;
+drop trigger tr2_3;
+drop trigger tr2_4;
+drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+
+Testcase y.y.y.3: Circular trigger reference
+--------------------------------------------
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = myisam;
+create table t2 (f2 integer) engine = myisam;
+create table t3 (f3 integer) engine = myisam;
+create table t4 (f4 integer) engine = myisam;
+insert into t1 values (0);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1);
+create trigger tr4 after insert on t4
+for each row insert into t1 (f1) values (new.f4+1);
+insert into t1 values (1);
+ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
+select * from t1;
+f1
+0
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+select * from t4;
+f4
+4
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop trigger tr4;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889)
+----------------------------------------------------------------------
+set @sql_mode='traditional';
+create table t1_sp (
+count integer,
+var136 tinyint,
+var151 decimal) engine=myisam;
+create procedure trig_sp()
+begin
+declare done int default 0;
+declare var151 decimal;
+declare var136 tinyint;
+declare cur1 cursor for select f136, f151 from tb3;
+declare continue handler for sqlstate '01000' set done = 1;
+set @counter= @counter+1;
+open cur1;
+fetch cur1 into var136, var151;
+wl_loop: WHILE NOT done DO
+insert into t1_sp values (@counter, var136, var151);
+fetch cur1 into var136, var151;
+END WHILE wl_loop;
+close cur1;
+end//
+create trigger trg before insert on t1_sp
+for each row call trig_sp();
+set @counter=0;
+select @counter;
+@counter
+0
+call trig_sp();
+ERROR HY000: Recursive stored routines are not allowed.
+select @counter;
+@counter
+1
+select count(*) from tb3;
+count(*)
+20
+select count(*) from t1_sp;
+count(*)
+0
+drop procedure trig_sp;
+drop trigger trg;
+drop table t1_sp;
+
+Testcase y.y.y.5: Roleback of nested trigger references
+-------------------------------------------------------
+set @@sql_mode='traditional';
+use test;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+create table t1 (f1 integer) engine = myisam;
+create table t2 (f2 integer) engine = myisam;
+create table t3 (f3 integer) engine = myisam;
+create table t4 (f4 tinyint) engine = myisam;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+insert into t1 values (1);
+create trigger tr1 after insert on t1
+for each row insert into t2 (f2) values (new.f1+1);
+create trigger tr2 after insert on t2
+for each row insert into t3 (f3) values (new.f2+1);
+create trigger tr3 after insert on t3
+for each row insert into t4 (f4) values (new.f3+1000);
+set autocommit=0;
+start transaction;
+insert into t1 values (1);
+ERROR 22003: Out of range value adjusted for column 'f4' at row 1
+commit;
+select * from t1;
+f1
+1
+1
+select * from t2;
+f2
+2
+select * from t3;
+f3
+3
+drop trigger tr1;
+drop trigger tr2;
+drop trigger tr3;
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/suite/funcs_1/r/myisam_views.result b/mysql-test/suite/funcs_1/r/myisam_views.result
new file mode 100644
index 00000000000..83af04dcd2c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/myisam_views.result
@@ -0,0 +1,11443 @@
+SET @NO_REFRESH = IF( '' = '', 0, 1);
+USE test;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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",
+f110 VARBINARY(64) null,
+f111 VARBINARY(27) null ,
+f112 VARBINARY(64) null ,
+f113 VARBINARY(192) null ,
+f114 VARBINARY(192) ,
+f115 VARBINARY(27) null ,
+f116 VARBINARY(64) null,
+f117 VARBINARY(192) null
+) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ;
+DROP DATABASE IF EXISTS test1;
+CREATE DATABASE test1;
+USE test1;
+drop table if exists tb2 ;
+create table tb2 (
+f59 numeric (0) unsigned,
+f60 numeric (64) unsigned,
+f61 numeric (0) zerofill,
+f62 numeric (64) zerofill,
+f63 numeric (0) unsigned zerofill,
+f64 numeric (64) unsigned zerofill,
+f65 numeric (0,0),
+f66 numeric (63,30),
+f67 numeric (0,0) unsigned,
+f68 numeric (63,30) unsigned,
+f69 numeric (0,0) zerofill,
+f70 numeric (63,30) zerofill,
+f71 numeric (0,0) unsigned zerofill,
+f72 numeric (63,30) unsigned zerofill,
+f73 real,
+f74 real unsigned,
+f75 real zerofill,
+f76 real unsigned zerofill,
+f77 double default 7.7,
+f78 double unsigned default 7.7,
+f79 double zerofill default 7.7,
+f80 double unsigned zerofill default 8.8,
+f81 float not null default 8.8,
+f82 float unsigned not null default 8.8,
+f83 float zerofill not null default 8.8,
+f84 float unsigned zerofill not null default 8.8,
+f85 float(0) not null default 8.8,
+f86 float(23) not null default 8.8,
+f87 float(0) unsigned not null default 8.8,
+f88 float(23) unsigned not null default 8.8,
+f89 float(0) zerofill not null default 8.8,
+f90 float(23) zerofill not null default 8.8,
+f91 float(0) unsigned zerofill not null default 8.8,
+f92 float(23) unsigned zerofill not null default 8.8,
+f93 float(24) not null default 8.8,
+f94 float(53) not null default 8.8,
+f95 float(24) unsigned not null default 8.8,
+f96 float(53) unsigned not null default 8.8,
+f97 float(24) zerofill not null default 8.8,
+f98 float(53) zerofill not null default 8.8,
+f99 float(24) unsigned zerofill not null default 8.8,
+f100 float(53) unsigned zerofill not null default 8.8,
+f101 date not null default '2000-01-01',
+f102 time not null default 20,
+f103 datetime not null default '2/2/2',
+f104 timestamp not null default 20001231235959,
+f105 year not null default 2000,
+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",
+f110 VARBINARY(64) null,
+f111 VARBINARY(27) null ,
+f112 VARBINARY(64) null ,
+f113 VARBINARY(192) null ,
+f114 VARBINARY(192) ,
+f115 VARBINARY(27) null ,
+f116 VARBINARY(64) null,
+f117 VARBINARY(192) null
+) engine = myisam;
+load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ;
+USE test;
+
+Attention: The nesting level @max_level in Testcase 3.3.1.A6
+(Complicated nested VIEWs) has to be limited to 20 because of
+MyISAM(only) performance issues Bug#11948
+--------------------------------------------------------------------------------
+SET @limit1 = 20;
+
+! Attention: The file with the expected results is not
+| thoroughly checked.
+! The server return codes are correct, but
+| most result sets where the table tb2 is
+! involved are not checked.
+--------------------------------------------------------------------------------
+
+There are some statements where the ps-protocol is switched off.
+Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+--------------------------------------------------------------------------------
+
+! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables
+--------------------------------------------------------------------------------
+insert into test.tb2 (f59,f60) values (76710,226546);
+insert into test.tb2 (f59,f60) values(2760,985654);
+insert into test.tb2 (f59,f60) values(569300,9114376);
+insert into test.tb2 (f59,f60) values(660,876546);
+insert into test.tb2 (f59,f60) values(250,87895654);
+insert into test.tb2 (f59,f60) values(340,9984376);
+insert into test.tb2 (f59,f60) values(3410,996546);
+insert into test.tb2 (f59,f60) values(2550,775654);
+insert into test.tb2 (f59,f60) values(3330,764376);
+insert into test.tb2 (f59,f60) values(441,16546);
+insert into test.tb2 (f59,f60) values(24,51654);
+insert into test.tb2 (f59,f60) values(323,14376);
+insert into test.tb2 (f59,f60) values(34,41);
+insert into test.tb2 (f59,f60) values(04,74);
+insert into test.tb2 (f59,f60) values(15,87);
+insert into test.tb2 (f59,f60) values(22,93);
+insert into test.tb2 (f59,f60) values(394,41);
+insert into test.tb2 (f59,f60) values(094,74);
+insert into test.tb2 (f59,f60) values(195,87);
+insert into test.tb2 (f59,f60) values(292,93);
+insert into test.tb2 (f59,f60) values(0987,41) ;
+insert into test.tb2 (f59,f60) values(7876,74) ;
+INSERT INTO tb2 (f59,f61) VALUES(321,765 );
+INSERT INTO tb2 (f59,f61) VALUES(9112,8771);
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+Insert into tb2 (f59,f60,f61) values (107,105,106) ;
+Insert into tb2 (f59,f60,f61) values (109,108,104) ;
+Insert into tb2 (f59,f60,f61) values (207,205,206) ;
+Insert into tb2 (f59,f60,f61) values (209,208,204) ;
+Insert into tb2 (f59,f60,f61) values (27,25,26) ;
+Insert into tb2 (f59,f60,f61) values (29,28,24) ;
+Insert into tb2 (f59,f60,f61) values (17,15,16) ;
+Insert into tb2 (f59,f60,f61) values (19,18,14) ;
+insert into tb2 (f59,f60,f61) values (107,105,106);
+insert into tb2 (f59,f60,f61) values (109,108,104);
+INSERT INTO tb2 (f59,f60) VALUES( 299,899 );
+INSERT INTO tb2 (f59,f60) VALUES( 242,79 );
+INSERT INTO tb2 (f59,f60) VALUES( 424,89 );
+Use test;
+
+Testcase 3.3.1.1
+--------------------------------------------------------------------------------
+Drop table if exists t1;
+Create table t1 (f59 INT, f60 INT) ;
+Insert into t1 values (100,4234);
+Insert into t1 values (990,6624);
+Insert into t1 values (710,765);
+Insert into t1 values (300,433334);
+Insert into t1 values (800,9788);
+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;
+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;
+f59 f60 f61
+1 1 0000000001
+2 2 0000000002
+3 3 0000000003
+4 4 0000000004
+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;
+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;
+f59
+5
+6
+7
+ALTER VIEW v1 AS select f59
+FROM test.tb2 limit 6,2;
+select * FROM v1 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;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 order by f59 asc limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 order by f59 desc limit 100;
+select * FROM v1 limit 0,10;
+f59
+569300
+76710
+9112
+7876
+3410
+3330
+2760
+2550
+987
+660
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 asc limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS select f59
+from tb2 group by f59 desc limit 100;
+select * FROM v1 limit 0,10;
+f59
+569300
+76710
+9112
+7876
+3410
+3330
+2760
+2550
+987
+660
+CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
+union (select f59 from t1) limit 100;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+UNION DISTINCT(select f59 FROM t1) ;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+UNION ALL(select f59 FROM t1) ;
+select * FROM v1 limit 0,10;
+f59
+1
+2
+3
+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;
+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
+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
+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
+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
+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
+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
+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
+CREATE or REPLACE VIEW v1 AS select *
+FROM test.tb2 WITH CASCADED CHECK OPTION ;
+select * FROM v1 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
+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;
+F59 F60
+1 1
+2 2
+3 3
+4 4
+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;
+f59 f60
+3330 764376
+DROP VIEW v1 ;
+DROP TABLE t1 ;
+
+Testcase 3.3.1.2
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+CREATE TABLE t1 (f1 BIGINT) ;
+SET @x=0;
+CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
+ERROR HY000: View's SELECT contains a 'INTO' clause
+Select @x;
+@x
+0
+CREATE or REPLACE VIEW v1 AS Select 1
+FROM (SELECT 1 FROM t1) my_table;
+ERROR HY000: View's SELECT contains a subquery in the FROM clause
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ;
+SET @a:=0 ;
+SELECT @a ;
+@a
+0
+INSERT INTO v1 VALUES (1) ;
+SELECT @a ;
+@a
+1
+SELECT * FROM t1;
+f1
+1
+DROP TRIGGER tr1 ;
+SET @a:=0 ;
+CREATE TRIGGER tr1 BEFORE INSERT ON v1 FOR EACH ROW SET @a:=1 ;
+ERROR HY000: 'test.v1' is not BASE TABLE
+RENAME TABLE v1 TO v2;
+RENAME VIEW v2 TO v1;
+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 'VIEW v2 TO v1' at line 1
+ALTER TABLE v2 RENAME AS v1;
+ALTER VIEW v1 RENAME AS v2;
+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 'RENAME AS v2' at line 1
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+CREATE TABLE t1 ( f1 DATE, f2 BLOB, f3 DOUBLE );
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+ALTER TABLE t1 ADD PRIMARY KEY(f1);
+ALTER TABLE v1 ADD PRIMARY KEY(f1);
+ERROR HY000: 'test.v1' is not BASE TABLE
+ALTER VIEW v1 ADD PRIMARY KEY(f1);
+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 'ADD PRIMARY KEY(f1)' at line 1
+CREATE INDEX t1_idx ON t1(f3);
+CREATE INDEX v1_idx ON v1(f3);
+ERROR HY000: 'test.v1' is not BASE TABLE
+DROP TABLE t1;
+DROP VIEW v1;
+
+Testcase 3.3.1.3 + 3.1.1.4
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50;
+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 'or REPLACE AS Select * from tb2 my_table limit 50' at line 1
+CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+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 'WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50' at line 1
+CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+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 'WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50' at line 1
+SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ;
+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 'CREATE VIEW As v1 limit 100' at line 1
+CREATE or REPLACE VIEW v1 Select f59, f60
+from test.tb2 my_table where f59 = 250 ;
+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 'Select f59, f60
+from test.tb2 my_table where f59 = 250' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+DROP VIEW v1;
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+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 'OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK ' at line 1
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+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 'SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CASCADED WITH CHECK OPTION;
+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 'CASCADED WITH CHECK OPTION' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED OPTION CHECK;
+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 'OPTION CHECK' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH CASCADED;
+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 'CHECK OPTION WITH CASCADED' at line 2
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+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 'WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1' at line 1
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+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 'OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPT' at line 1
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+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 'SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION' at line 1
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table LOCAL WITH CHECK OPTION;
+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 'LOCAL WITH CHECK OPTION' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL OPTION CHECK;
+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 'OPTION CHECK' at line 2
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH LOCAL;
+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 'CHECK OPTION WITH LOCAL' at line 2
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+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 'WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION' at line 1
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1;
+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 'AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1' at line 1
+Drop table if exists t1 ;
+CREATE table t1 (f1 int ,f2 int) ;
+INSERT INTO t1 values (235, 22);
+INSERT INTO t1 values (554, 11);
+CREATE or REPLACE view v1 as (Select from f59 tb2)
+Union ALL (Select from f1 t1);
+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 'from f59 tb2)
+Union ALL (Select from f1 t1)' at line 1
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by order f59 limit 100 ;
+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 'by order f59 limit 100' at line 2
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by group f59 ;
+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 'by group f59' at line 2
+
+Testcase 3.3.1.5
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
+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 'SELECT * FROM tb2 limit 100' at line 1
+CREATE v1 AS SELECT * FROM tb2 limit 100 ;
+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 'v1 AS SELECT * FROM tb2 limit 100' at line 1
+VIEW v1 AS SELECT * FROM tb2 limit 100 ;
+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 'VIEW v1 AS SELECT * FROM tb2 limit 100' at line 1
+CREATE VIEW v1 AS SELECT 1;
+DROP VIEW v1;
+VIEW v1 AS SELECT 1;
+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 'VIEW v1 AS SELECT 1' at line 1
+CREATE v1 AS SELECT 1;
+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 'v1 AS SELECT 1' at line 1
+CREATE VIEW AS SELECT 1;
+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 'AS SELECT 1' at line 1
+CREATE VIEW v1 SELECT 1;
+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 'SELECT 1' at line 1
+CREATE VIEW v1 AS ;
+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
+
+Testcase 3.3.1.6
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+CREATE or REPLACE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = MERGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+Warnings:
+Warning 1354 View merge algorithm can't be used here for now (assumed undefined algorithm)
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 '= TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM = VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+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 'GARBAGE VIEW v1
+as SELECT * from tb2 limit 100' at line 1
+Drop view if exists v1 ;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH LOCAL CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH NO CHECK OPTION;
+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 'NO CHECK OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 CASCADED CHECK OPTION;
+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 'CASCADED CHECK OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED OPTION;
+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 'OPTION' at line 2
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK ;
+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 2
+
+Testcase 3.3.1.7
+--------------------------------------------------------------------------------
+DROP VIEW IF EXISTS v1 ;
+Create view test.v1 AS Select * from test.tb2 limit 100 ;
+Alter view test.v1 AS Select F59 from test. tb2 limit 100 ;
+Drop view test.v1 ;
+Create view v1 AS Select * from test.tb2 limit 100 ;
+Alter view v1 AS Select F59 from test.tb2 limit 100 ;
+Drop view v1 ;
+
+Testcase 3.3.1.A0
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+CREATE TABLE t1 (f1 NUMERIC(4)) ENGINE = myisam;
+INSERT INTO t1 VALUES(1111), (2222);
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 = 1111;
+CREATE VIEW V1 AS SELECT * FROM t1 WHERE f1 = 2222;
+SELECT * FROM v1;
+f1
+1111
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+
+Testcase 3.3.1.8
+--------------------------------------------------------------------------------
+Create view select AS Select * from test.tb2 limit 100;
+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 'select AS Select * from test.tb2 limit 100' at line 1
+Create view as AS Select * from test.tb2 limit 100;
+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 'as AS Select * from test.tb2 limit 100' at line 1
+Create view where AS Select * from test.tb2 limit 100;
+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 'where AS Select * from test.tb2 limit 100' at line 1
+Create view from AS Select * from test.tb2 limit 100;
+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 'from AS Select * from test.tb2 limit 100' at line 1
+Create view while AS Select * from test.tb2 limit 100;
+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 AS Select * from test.tb2 limit 100' at line 1
+Create view asdkj*(&*&&^ as Select * from test.tb2 limit 100 ;
+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 '*(&*&&^ as Select * from test.tb2 limit 100' at line 1
+Drop view if exists test.procedure ;
+Create view test.procedure as Select * from test.tb2 limit 100 ;
+Drop view if exists test.procedure ;
+
+Testcase 3.3.1.9
+--------------------------------------------------------------------------------
+Drop TABLE IF EXISTS t1 ;
+Drop VIEW IF EXISTS v1;
+Drop VIEW IF EXISTS v2;
+Drop VIEW IF EXISTS v3;
+CREATE TABLE t1 ( f1 char(5));
+INSERT INTO t1 SET f1 = 'abcde';
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE VIEW v2 AS SELECT * FROM v1;
+DROP TABLE t1;
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v1 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v1 SET f1 = "fffff";
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v2 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v2 SET f1 = "fffff";
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v1;
+SELECT * FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DELETE FROM v2;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+UPDATE v2 SET f1 = 'aaaaa';
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v2 SET f1 = "fffff";
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v2;
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f1 FLOAT);
+CREATE VIEW v1 AS SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE or REPLACE VIEW v1 AS SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+DROP VIEW v1;
+DROP TABLE t1;
+
+Testcase 3.3.1.10
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create view test.v1 AS Select * from test.tb2 ;
+Create view test.v1 AS Select F59 from test.tb2 ;
+ERROR 42S01: Table 'v1' already exists
+Create view v1 AS Select F59 from test.tb2 ;
+ERROR 42S01: Table 'v1' already exists
+
+Testcase 3.3.1.11
+--------------------------------------------------------------------------------
+Create view test.tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+ERROR 42S01: Table 'tb2' already exists
+Create view tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+ERROR 42S01: Table 'tb2' already exists
+Drop view if exists test.v111 ;
+Create view test.v111 as select * from tb2 limit 50;
+Create table test.v111(f1 int );
+ERROR 42S01: Table 'v111' already exists
+Create table v111(f1 int );
+ERROR 42S01: Table 'v111' already exists
+DROP VIEW test.v111;
+
+Testcase 3.3.1.12
+--------------------------------------------------------------------------------
+USE test;
+Drop database if exists test2 ;
+Create database test2 ;
+DROP TABLE IF EXISTS test.t0, test.t1, test.t2;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+CREATE TABLE test.t1 ( f1 VARCHAR(20));
+CREATE TABLE test2.t1 ( f1 VARCHAR(20));
+CREATE TABLE test.t2 ( f1 VARCHAR(20));
+CREATE TABLE test2.v1 ( f1 VARCHAR(20));
+CREATE TABLE test.t0 ( f1 VARCHAR(20));
+CREATE TABLE test2.t0 ( f1 VARCHAR(20));
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test.v1 AS SELECT * FROM test.t0;
+CREATE VIEW test.v2 AS SELECT * FROM test.t0;
+CREATE VIEW test2.v2 AS SELECT * FROM test2.t0;
+INSERT INTO test.t1 VALUES('test.t1 - 1');
+INSERT INTO test2.t1 VALUES('test2.t1 - 1');
+INSERT INTO test.t2 VALUES('test.t2 - 1');
+INSERT INTO test2.v1 VALUES('test2.v1 - 1');
+INSERT INTO test.t0 VALUES('test.t0 - 1');
+INSERT INTO test2.t0 VALUES('test2.t0 - 1');
+USE test;
+INSERT INTO t1 VALUES('test.t1 - 2');
+INSERT INTO t2 VALUES('test.t2 - 2');
+INSERT INTO t0 VALUES('test.t0 - 2');
+USE test2;
+INSERT INTO t1 VALUES('test2.t1 - 2');
+INSERT INTO v1 VALUES('test2.v1 - 2');
+INSERT INTO t0 VALUES('test2.t0 - 2');
+SELECT * FROM t1;
+f1
+test2.t1 - 1
+test2.t1 - 2
+SELECT * FROM t2;
+f1
+test2.t0 - 1
+test2.t0 - 2
+SELECT * FROM v1;
+f1
+test2.v1 - 1
+test2.v1 - 2
+SELECT * FROM v2;
+f1
+test2.t0 - 1
+test2.t0 - 2
+USE test;
+SELECT * FROM t1;
+f1
+test.t1 - 1
+test.t1 - 2
+SELECT * FROM t2;
+f1
+test.t2 - 1
+test.t2 - 2
+SELECT * FROM v1;
+f1
+test.t0 - 1
+test.t0 - 2
+SELECT * FROM v2;
+f1
+test.t0 - 1
+test.t0 - 2
+
+Testcase 3.3.1.13
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+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
+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
+SELECT * FROM test.v1;
+f1
+1
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 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`,`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
+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 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
+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;
+F59
+76710
+2760
+569300
+660
+250
+340
+3410
+2550
+3330
+441
+24
+323
+34
+4
+15
+22
+394
+94
+195
+292
+987
+7876
+321
+9112
+500
+500
+500
+107
+109
+207
+209
+27
+29
+17
+19
+107
+109
+299
+242
+424
+Drop table test.t1 ;
+Drop view test.v1 ;
+
+Testcase 3.3.1.14
+--------------------------------------------------------------------------------
+CREATE OR REPLACE VIEW test.tb2 AS SELECT * From tb2 LIMIT 2;
+ERROR HY000: 'test.tb2' is not VIEW
+CREATE OR REPLACE VIEW tb2 AS SELECT * From tb2 LIMIT 2;
+ERROR HY000: 'test.tb2' is not VIEW
+
+Testcase 3.3.1.15
+--------------------------------------------------------------------------------
+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 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
+Drop view test.v1 ;
+
+Testcase 3.3.1.16 + 3.3.1.17
+--------------------------------------------------------------------------------
+Drop table if exists test.v1 ;
+CREATE OR REPLACE VIEW v1 AS SELECT * From tb2;
+SELECT * FROM tb2 WHERE 1 = 2;
+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 v1 WHERE 1 = 2;
+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 v1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+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`
+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`
+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`
+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`
+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`
+SELECT * FROM v1;
+column1 column2
+8.800 8.800
+
+Testcase 3.3.1.18
+--------------------------------------------------------------------------------
+Drop view if exists v1 ;
+Drop view if exists v1_1 ;
+Create view v1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60
+from test.tb2 limit 0,100 ;
+Create view v1_1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60 as NewNameF2
+from tb2 limit 0,100 ;
+SELECT NewNameF1,f60 FROM test.v1_1 ;
+ERROR 42S22: Unknown column 'f60' in 'field list'
+SELECT NewNameF1, v1_1.f60 FROM test.v1_1 ;
+ERROR 42S22: Unknown column 'v1_1.f60' in 'field list'
+SELECT f59, f60 FROM test.v1 ;
+ERROR 42S22: Unknown column 'f59' in 'field list'
+Use test ;
+SELECT F59 FROM v1 ;
+ERROR 42S22: Unknown column 'F59' in 'field list'
+
+Testcase 3.3.1.19
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1, t2;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t1 VALUES(7, 7.7);
+CREATE TABLE t2( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t2 VALUES(6, 6.6);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+f1 f2
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+f1 f2
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1 AS my_f1, f2 AS my_f2 FROM t1;
+SELECT * FROM v1;
+my_f1 my_f2
+7 7.70
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+my_f1 my_f2
+7 7.70
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT t1.f1, t2.f2 FROM t1, t2;
+SELECT * FROM v1;
+my_f1 my_f2
+7 6.60
+SELECT f1, f2 AS f1 FROM t1;
+f1 f1
+7 7.70
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 AS f1 FROM t1;
+ERROR 42S21: Duplicate column name 'f1'
+SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+f1 f1
+7 6
+CREATE OR REPLACE VIEW v1 AS SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+ERROR 42S21: Duplicate column name 'f1'
+CREATE OR REPLACE VIEW v1 (my_col, my_col) AS SELECT * FROM t1;
+ERROR 42S21: Duplicate column name 'my_col'
+
+Testcase 3.3.1.20
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT * FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT * FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT f1, f2 FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT * FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT f1, f2 FROM t1;
+ERROR HY000: View's SELECT and view's field list have different column counts
+
+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;
+F59 F60
+1 1
+2 2
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.22
+--------------------------------------------------------------------------------
+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
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT 1*2;
+SELECT * FROM test.v1;
+product
+2
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT USER();
+SELECT * FROM test.v1;
+product
+root@localhost
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.23 + 3.3.1.24
+--------------------------------------------------------------------------------
+USE test;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE VIEW test.v2 AS SELECT * FROM test.t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+CREATE VIEW v2 AS Select * from test.v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+DROP VIEW IF EXISTS v2;
+Warnings:
+Note 1051 Unknown table 'test.v2'
+
+Testcase 3.3.1.25
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1_temp;
+DROP TABLE IF EXISTS t2_temp;
+DROP VIEW IF EXISTS v1;
+Create table t1_temp(f59 char(10),f60 int) ;
+Create temporary table t1_temp(f59 char(10),f60 int) ;
+Insert into t1_temp values('FER',90);
+Insert into t1_temp values('CAR',27);
+Create view v1 as select * from t1_temp ;
+ERROR HY000: View's SELECT refers to a temporary table 't1_temp'
+Create temporary table t2_temp(f59 char(10),f60 int) ;
+Insert into t2_temp values('AAA',11);
+Insert into t2_temp values('BBB',22);
+Create or replace view v1
+as select t1_temp.f59,t2_temp.f59 from t1_temp,t2_temp ;
+ERROR HY000: View's SELECT refers to a temporary table 't1_temp'
+DROP temporary table t1_temp;
+DROP table t1_temp;
+DROP temporary table t2_temp;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 (f1 char(10));
+CREATE TEMPORARY TABLE t2 (f2 char(10));
+INSERT INTO t1 VALUES('t1');
+INSERT INTO t1 VALUES('A');
+INSERT INTO t2 VALUES('t2');
+INSERT INTO t2 VALUES('B');
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2, t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f2, f1 FROM t2, t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1, t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1, t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2 UNION SELECT * FROM t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2 UNION SELECT f1 FROM t1;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1 UNION SELECT f2 FROM t2;
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t2
+WHERE f2 = ( SELECT f1 FROM t1 );
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t1
+WHERE f1 = ( SELECT f2 FROM t2 );
+ERROR HY000: View's SELECT refers to a temporary table 't2'
+DROP TABLE t1;
+DROP TEMPORARY TABLE t2;
+
+Testcase 3.3.1.26
+--------------------------------------------------------------------------------
+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 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
+Drop view test.v1 ;
+
+Testcase 3.3.1.27
+--------------------------------------------------------------------------------
+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 ;
+F59
+1
+2
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+
+Testcase 3.3.1.28
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+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 ;
+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
+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
+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
+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
+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
+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
+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
+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 ;
+Drop view if exists test2.v2 ;
+Drop database test2 ;
+
+Testcase 3.3.1.29
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+create database test2 ;
+use test2;
+Create view test.v1 AS Select * from test.tb2 limit 50 ;
+Create view test2.v2 AS Select F59 from test.v1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test2.v2 ;
+
+Testcase 3.3.1.31
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+CREATE TABLE test.t1 ( f59 int, f60 int );
+INSERT INTO test.t1 VALUES( 34, 654 );
+INSERT INTO test.t1 VALUES( 906, 434 );
+INSERT INTO test.t1 VALUES( 445, 765 );
+Create or replace view test.v1
+AS SELECT test.t1.F59, test.tb2.F60
+FROM test.tb2 JOIN test.t1 ON test.tb2.F59 = test.t1.F59 ;
+Select * from test.v1;
+F59 F60
+34 41
+Drop view test.v1 ;
+
+Testcase 3.3.1.32
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+create database test2 ;
+use test2 ;
+CREATE TABLE t1 ( f59 int, f60 int );
+INSERT INTO t1 VALUES( 34, 654 );
+INSERT INTO t1 VALUES( 906, 434 );
+INSERT INTO t1 VALUES( 445, 765 );
+CREATE VIEW test2.v1
+AS SELECT test.tb2.F59, test.tb2.F60
+FROM test.tb2 INNER JOIN test2.t1 ON tb2.f59 = t1.f59;
+Select * from test2.v1;
+F59 F60
+34 41
+Use test;
+
+Testcase 3.3.1.33
+--------------------------------------------------------------------------------
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+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 ;
+
+Testcase 3.3.1.34
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+create database test2 ;
+use test2 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2 ;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2 ;
+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;
+F59 F60
+1 1
+2 2
+3 3
+4 4
+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 ;
+
+Testcase 3.3.1.35
+--------------------------------------------------------------------------------
+use test;
+Drop view if exists test.v1;
+Drop view if exists test.v1_firstview;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+4 74
+5 5
+6 6
+7 7
+8 8
+9 9
+Drop view test.v1 ;
+Drop view test.v1_firstview;
+
+Testcase 3.3.1.36
+--------------------------------------------------------------------------------
+Drop database if exists test2 ;
+create database test2 ;
+use test2 ;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+4 74
+5 5
+6 6
+7 7
+8 8
+9 9
+Drop database test2 ;
+
+Testcase 3.3.1.37
+--------------------------------------------------------------------------------
+use test;
+Drop table if exists t1;
+Drop view if exists test.v1 ;
+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;
+f59 f60
+1 1
+2 2
+3 3
+4 4
+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 ;
+Select * from v1_1 ;
+f59 f60
+90 507
+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;
+f59
+1
+2
+3
+4
+4
+5
+6
+7
+8
+9
+Drop table t1;
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+Drop view test.v1_main ;
+
+Testcase 3.3.1.31 - 3.3.1.37 New Implementation
+--------------------------------------------------------------------------------
+USE test;
+DROP DATABASE IF EXISTS test2;
+DROP TABLE IF EXISTS t0,t1;
+DROP VIEW IF EXISTS t3,t4;
+CREATE DATABASE test2;
+CREATE TABLE test1.t0 (f1 VARCHAR(20));
+CREATE TABLE test1.t1 (f1 VARCHAR(20));
+CREATE TABLE test2.t0 (f1 VARCHAR(20));
+CREATE TABLE test2.t1 (f1 VARCHAR(20));
+CREATE VIEW test1.t2 AS SELECT * FROM test1.t0;
+CREATE VIEW test1.t3 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t3 AS SELECT * FROM test1.t0;
+INSERT INTO test1.t0 VALUES('test1.t0');
+INSERT INTO test1.t1 VALUES('test1.t1');
+INSERT INTO test2.t0 VALUES('test2.t0');
+INSERT INTO test2.t1 VALUES('test2.t1');
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t3 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t3 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t2 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t2 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t0 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t3 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t2 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t0
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test2.t1 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test2.t1 test1.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test2.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test2.t1
+CREATE OR REPLACE VIEW test.v1 AS
+SELECT ta.f1 AS col1,
+tb.f1 AS col2
+FROM test1.t1 ta, test1.t1 tb;
+SELECT * FROM test.v1;
+col1 col2
+test1.t1 test1.t1
+
+Testcase 3.3.1.38
+--------------------------------------------------------------------------------
+Drop table if exists test1.t1 ;
+Drop view if exists test.v1 ;
+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 ;
+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
+660 876546
+250 87895654
+340 9984376
+3410 996546
+2550 775654
+3330 764376
+441 16546
+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 ;
+Select * from test1.v1_1 ;
+f59 f60
+199 507
+Create database test3 ;
+Create table test3.t1(f59 int,f60 int) ;
+Insert into test3.t1 values (1023,7670) ;
+Create view test3.v1_2 as Select f59,f60 from test3.t1 ;
+Select * from test3.v1_2 ;
+f59 f60
+1023 7670
+use test ;
+Create view v1_main
+as SELECT test.tb2.f59 as f1, test1.v1_1.f59 as f2,
+test3.v1_2.f59 as f3
+FROM (test.tb2,test1.v1_1,test.v1) JOIN test3.v1_2
+ON (test.v1.f59 = test1.v1_1.f59) ;
+Select * from v1_main ;
+f1 f2 f3
+DROP VIEW test.v1 ;
+DROP VIEW test1.v1_1 ;
+DROP VIEW test.v1_main ;
+DROP DATABASE test3;
+
+Testcase 3.3.1.39
+--------------------------------------------------------------------------------
+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 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.40
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Set @var1 = 'ABC' ;
+Set @var2 = 'XYZ' ;
+CREATE VIEW test.v1 AS SELECT @var1, @var2 ;
+ERROR HY000: View's SELECT contains a variable or parameter
+CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
+ERROR HY000: View's SELECT contains a variable or parameter
+Drop view if exists test.v1 ;
+
+Testcase 3.3.1.41
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Drop procedure if exists sp1 ;
+Create procedure sp1() DETERMINISTIC
+Begin
+DECLARE x char;
+Set x = 200 ;
+Create view test.v1 as SELECT * FROM tb2 WHERE f59 = x ;
+End //
+ERROR HY000: View's SELECT contains a variable or parameter
+Call sp1() ;
+ERROR 42000: PROCEDURE test.sp1 does not exist
+Drop view if exists test.v1 ;
+Warnings:
+Note 1051 Unknown table 'test.v1'
+Drop procedure sp1 ;
+ERROR 42000: PROCEDURE test.sp1 does not exist
+
+Testcase 3.3.1.42
+--------------------------------------------------------------------------------
+Drop VIEW if exists test.v1 ;
+CREATE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 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 'VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2' at line 1
+CREATE OR REPLACE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 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 'TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2' at line 1
+Drop view if exists test.v1 ;
+Use test;
+
+Testcase 3.3.1.43
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
+INSERT INTO test.v1 values(122,432);
+SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20;
+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
+122 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.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
+UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ;
+SELECT * FROM test.tb2 where f59 = 3000 limit 0,20;
+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
+3000 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.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
+DELETE FROM test.v1
+where test.v1.f59 = 3000 and test.v1.f60 = 432;
+SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432;
+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 test.v1 ;
+
+Testcase 3.3.1.44
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 limit 100;
+INSERT INTO test.v1 values(31, 32, 33) ;
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+Drop view test.v1 ;
+
+Testcase 3.3.1.45
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+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 ;
+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
+30 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
+30 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
+UPDATE tb2 SET f59 = 100 where f59 = 30 ;
+affected rows: 2
+info: Rows matched: 2 Changed: 2 Warnings: 0
+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 ;
+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 ;
+Drop VIEW IF EXISTS test.v1 ;
+CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), PRIMARY KEY(f1))
+ENGINE = myisam;
+INSERT INTO t1 VALUES(1,'one');
+INSERT INTO t1 VALUES(2,'two');
+INSERT INTO t1 VALUES(3,'three');
+INSERT INTO t1 VALUES(5,'five');
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 BETWEEN 2 AND 4;
+SELECT COUNT(*) FROM v1 WHERE f1 = 2;
+COUNT(*)
+1
+SELECT COUNT(*) FROM v1 WHERE f1 = 4;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1 WHERE f1 = 5;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1 WHERE f1 = 10;
+COUNT(*)
+0
+INSERT INTO t1 VALUES(4,'four');
+DELETE FROM v1 WHERE f1 = 3;
+affected rows: 1
+DELETE FROM v1 WHERE f1 = 5;
+affected rows: 0
+SELECT * FROM t1 ORDER BY f1;
+f1 f2
+1 one
+2 two
+4 four
+5 five
+SELECT * FROM v1 ORDER BY f1;
+f1 f2
+2 two
+4 four
+INSERT INTO v1 VALUES(2,'two');
+ERROR 23000: Duplicate entry '2' for key 1
+INSERT INTO v1 VALUES(3,'three');
+affected rows: 1
+INSERT INTO v1 VALUES(6,'six');
+affected rows: 1
+SELECT * FROM t1 ORDER BY f1;
+f1 f2
+1 one
+2 two
+3 three
+4 four
+5 five
+6 six
+SELECT * FROM v1 ORDER BY f1;
+f1 f2
+2 two
+3 three
+4 four
+UPDATE v1 SET f1 = 2 WHERE f1 = 3;
+ERROR 23000: Duplicate entry '2' for key 1
+UPDATE v1 SET f2 = 'number' WHERE f1 = 3;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+UPDATE v1 SET f1 = 10 WHERE f1 = 3;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+UPDATE v1 SET f2 = 'number' WHERE f1 = 1;
+affected rows: 0
+
+Testcase 3.3.1.46
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+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 ;
+f59 f60
+195 87
+drop view if exists test.v1 ;
+
+Testcase 3.3.1.47
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+CREATE VIEW test.v1 AS SELECT f59,f60
+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 ;
+f59 f60
+987 41
+UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
+SELECT * FROM tb2 where f59 = 9879 ;
+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 v1 ;
+drop view if exists v2 ;
+
+Testcase 3.3.1.48
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS test.t1;
+DROP VIEW IF EXISTS test.v1;
+CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER)
+ENGINE = myisam;
+INSERT INTO t1 VALUES ('A', 1);
+SELECT * FROM t1;
+f1 f2
+A 1
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2
+WITH CASCADED CHECK OPTION ;
+SELECT * FROM v1;
+f1 f2
+A 1
+UPDATE v1 SET f2 = 2 WHERE f2 = 1;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+INSERT INTO v1 VALUES('B',2);
+affected rows: 1
+SELECT * FROM v1;
+f1 f2
+A 2
+B 2
+UPDATE v1 SET f2 = 4;
+ERROR HY000: CHECK OPTION failed 'test.v1'
+INSERT INTO v1 VALUES('B',3);
+ERROR HY000: CHECK OPTION failed 'test.v1'
+SELECT * FROM v1;
+f1 f2
+A 2
+B 2
+
+Testcase 3.3.1.49
+--------------------------------------------------------------------------------
+Drop table if exists test.t1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+Drop view if exists test.v3 ;
+Create table test.t1 (f59 INT, f60 INT) ;
+Insert into test.t1 values (100,4234);
+Insert into test.t1 values (290,6624);
+Insert into test.t1 values (410,765);
+Insert into test.t1 values (300,433334);
+Insert into test.t1 values (800,9788);
+Insert into test.t1 values (501,9866);
+Create view test.v1 as select f59
+FROM test.t1 where f59<500 with check option ;
+Create view test.v2 as select *
+from test.v1 where f59>0 with local check option ;
+Create view test.v3 as select *
+from test.v1 where f59>0 with cascaded check option ;
+Insert into test.v2 values(23) ;
+Insert into test.v3 values(24) ;
+drop view if exists test.v1 ;
+drop view if exists test.v2 ;
+drop view if exists test.v3 ;
+
+Testcase 3.3.1.49A
+--------------------------------------------------------------------------------
+USE test;
+DROP TABLE IF EXISTS test.t1 ;
+DROP TABLE IF EXISTS test.t1_results ;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+DROP VIEW IF EXISTS test.v3;
+CREATE TABLE t1 (f1 INTEGER, f2 CHAR(20));
+CREATE TABLE t1_results (v3_to_v1_options VARCHAR(100), statement VARCHAR(10),
+v3_to_v1_violation VARCHAR(20), errno CHAR(10));
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH LOCAL CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH LOCAL CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH CASCADED CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH CASCADED CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 WITH CHECK OPTION ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - WITH CHECK OPTION
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 ;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH LOCAL CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH LOCAL CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CASCADED CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CASCADED CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 WITH CHECK OPTION ;
+option_variant WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - WITH CHECK OPTION - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ;
+option_variant WITH LOCAL CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CASCADED CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant WITH CHECK OPTION - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ERROR HY000: CHECK OPTION failed 'test.v3'
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(0, 'zero');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(7, 'seven');
+ERROR HY000: CHECK OPTION failed 'test.v3'
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+option_variant <nothing> - <nothing> - <nothing>
+option_variant --------------------------------------------------------------------------------
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+SELECT * FROM v1;
+f1 f2
+0 zero
+7 seven
+8 eight
+SELECT * FROM v2;
+col1 col2
+7 seven
+8 eight
+SELECT * FROM v3;
+my_col1 my_col2
+8 eight
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+DELETE FROM v3 WHERE my_col1 = 16;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 0;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 7;
+affected rows: 0
+DELETE FROM v3 WHERE my_col1 = 8;
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+DELETE FROM t1;
+INSERT INTO t1 VALUES(16, 'sixteen');
+INSERT INTO t1 VALUES(0, 'zero');
+INSERT INTO t1 VALUES(7, 'seven');
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+affected rows: 0
+info: Rows matched: 0 Changed: 0 Warnings: 0
+UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 whatever
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+7 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+0 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+16 eight
+DELETE FROM t1;
+INSERT INTO t1 VALUES(8, 'eight');
+UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+SELECT * FROM t1;
+f1 f2
+10 eight
+DELETE FROM t1;
+INSERT INTO v3 VALUES(16, 'sixteen');
+affected rows: 1
+INSERT INTO v3 VALUES(0, 'zero');
+affected rows: 1
+INSERT INTO v3 VALUES(7, 'seven');
+affected rows: 1
+INSERT INTO v3 VALUES(8, 'eight');
+affected rows: 1
+SELECT * FROM t1;
+f1 f2
+16 sixteen
+0 zero
+7 seven
+8 eight
+DELETE FROM t1;
+DROP VIEW v3;
+DROP VIEW v2;
+DROP VIEW v1;
+SELECT * FROM t1_results ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+ <nothing> - <nothing> - <nothing> UPDATE _v2_ 0
+ <nothing> - <nothing> - <nothing> INSERT _v2_ 0
+ <nothing> - <nothing> - <nothing> INSERT _ _v1 0
+ <nothing> - <nothing> - <nothing> UPDATE _ _ 0
+ <nothing> - <nothing> - <nothing> UPDATE _ _v1 0
+ <nothing> - <nothing> - <nothing> UPDATE v3_ _ 0
+ <nothing> - <nothing> - <nothing> INSERT _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+ <nothing> - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 1369
+WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - <nothing> - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - <nothing> INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH CASCADED CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _v2_ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _v1 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _ _ 0
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION UPDATE v3_ _ 1369
+WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION - WITH LOCAL CHECK OPTION INSERT _v2_ 0
+
+Plausibility checks for INSERTs and UPDATEs ( 4. and 5. above).
+All following SELECTs must give ROW NOT FOUND
+--------------------------------------------------------------------------------
+SELECT * FROM t1_results
+WHERE v3_to_v1_violation = ' _ _ ' AND errno <> 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE ' %' AND errno <> 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %'
+AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %' AND v3_to_v1_options NOT LIKE 'WITH LOCAL %'
+ AND v3_to_v1_violation NOT LIKE ' _ _ ' AND errno = 0
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+SELECT * FROM t1_results
+WHERE errno <> 0 AND errno <> 1369
+ORDER BY v3_to_v1_options;
+v3_to_v1_options statement v3_to_v1_violation errno
+
+End of plausibility checks
+--------------------------------------------------------------------------------
+DROP TABLE t1_results;
+
+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 ;
+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
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
+SELECT * FROM test.v1 ;
+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
+22 NULL
+394 NULL
+94 NULL
+195 NULL
+292 NULL
+987 NULL
+7876 NULL
+321 0000000765
+9112 0000008771
+500 0000000900
+500 0000000900
+500 0000000900
+107 0000000106
+109 0000000104
+207 0000000206
+209 0000000204
+27 0000000026
+29 0000000024
+17 0000000016
+19 0000000014
+107 0000000106
+109 0000000104
+299 NULL
+242 NULL
+424 NULL
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
+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 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
+drop view test.v1 ;
+CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
+SELECT * FROM test.v1 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
+250 NULL
+340 NULL
+3410 NULL
+2550 NULL
+3330 NULL
+441 NULL
+drop view test.v1 ;
+
+Testcase 3.3.1.54
+--------------------------------------------------------------------------------
+USE test;
+drop table if exists test.t1 ;
+drop table if exists test.t2 ;
+drop view if exists test.v1 ;
+Create table t1 (f59 int, f60 int) ;
+Create table t2 (f59 int, f60 int) ;
+Insert into t1 values (1,10) ;
+Insert into t1 values (2,20) ;
+Insert into t1 values (47,80) ;
+Insert into t2 values (1,1000) ;
+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 ;
+f59 f60
+1 10
+2 20
+drop table test.t1 ;
+drop table test.t2 ;
+drop view test.v1 ;
+
+Testcase 3.3.1.50 - 3.3.1.54 additional implementation
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 ( f1 BIGINT, f2 char(10), f3 DECIMAL(10,5) );
+INSERT INTO t1 VALUES(1, 'one', 1.1);
+INSERT INTO t1 VALUES(2, 'two', 2.2);
+INSERT INTO t1 VALUES(3, 'three', 3.3);
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+f1 f2 f3
+1 one 1.10000
+2 two 2.20000
+3 three 3.30000
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1;
+SELECT * FROM v1;
+f2
+one
+two
+three
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+f1 f2 f3
+2 two 2.20000
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+f2
+two
+SET sql_mode = 'traditional,ansi';
+CREATE OR REPLACE VIEW v1 AS
+SELECT f3 AS "pure column f3: ", f1 + f3 AS "sum of columns f1 + f3 = ",
+3 * (- 0.11111E+1) AS "product of constants 3 * (- 0.11111E+1): ",
+'->' || CAST(f3 AS CHAR) || '<-'
+ AS "expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): "
+FROM t1 WHERE f1 = 2;
+SELECT * FROM v1;
+pure column f3: 2.20000
+sum of columns f1 + f3 = 4.20000
+product of constants 3 * (- 0.11111E+1): -3.3333
+expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): ->2.20000<-
+SET sql_mode = '';
+
+Testcases 3.3.1.55 - 3.3.1.62
+--------------------------------------------------------------------------------
+Drop table if exists t1, t2 ;
+Drop view if exists v1 ;
+Create table t1 (f59 int, f60 char(10), f61 int, a char(1)) ;
+Insert into t1 values (1, 'single', 3, '1') ;
+Insert into t1 values (2, 'double', 6, '2') ;
+Insert into t1 values (3, 'single-f3', 4, '3') ;
+Create table t2 (f59 int, f60 char(10), f61 int, b char(1)) ;
+Insert into t2 values (2, 'double', 6, '2') ;
+Insert into t2 values (3, 'single-f3', 6, '3') ;
+Insert into t2 values (4, 'single', 4, '4') ;
+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;
+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
+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;
+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
+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;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2 cross join t1;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+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;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2,t1;
+t1_f59 t2_f59
+1 2
+1 3
+1 4
+2 2
+2 3
+2 4
+3 2
+3 3
+3 4
+Create or replace view test.v1 as
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+Select * from v1;
+f59 f60 f61 a b
+2 double 6 2 2
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+f59 f60 f61 a b
+2 double 6 2 2
+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;
+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
+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;
+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
+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;
+f59 f60 f61 a b
+2 double 6 2 2
+3 single-f3 6 NULL 3
+4 single 4 NULL 4
+Select f59, f60, f61, t1.a, t2.b
+FROM t2 natural left outer join t1;
+f59 f60 f61 a b
+2 double 6 2 2
+3 single-f3 6 NULL 3
+4 single 4 NULL 4
+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;
+t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+1 NULL single NULL 3 NULL
+2 2 double double 6 6
+3 3 single-f3 single-f3 4 6
+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;
+t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+1 NULL single NULL 3 NULL
+2 2 double double 6 6
+3 3 single-f3 single-f3 4 6
+Create or replace view test.v1 as
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+Select * from v1;
+f59 f60 a b
+1 single 1 NULL
+2 double 2 2
+3 single-f3 3 NULL
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+f59 f60 a b
+1 single 1 NULL
+2 double 2 2
+3 single-f3 3 NULL
+drop table t1, t2;
+drop view v1 ;
+Use test;
+
+Testcase 3.3.1.A1 - 3.3.1.A3
+--------------------------------------------------------------------------------
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (101,201,301) ;
+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;
+f59
+1
+2
+3
+100
+5
+6
+7
+8
+9
+10
+Drop view if exists test.v1 ;
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (201,201,201) ;
+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;
+f59
+207
+Drop view if exists test.v1 ;
+Drop table if exists t1 ;
+Drop view if exists v1;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (21,21,21) ;
+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;
+f59
+27
+Drop view test.v1 ;
+
+Testcase 3.3.1.63
+--------------------------------------------------------------------------------
+Drop table if exists t1 ;
+Drop view if exists test.v1 ;
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (11,21,31) ;
+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;
+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;
+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;
+f59
+17
+Drop view test.v1 ;
+drop table if exists t1;
+drop view if exists test.v1;
+create table t1 (f59 int, f60 int, f61 int);
+insert into t1 values (101,201,301);
+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;
+f59
+107
+107
+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;
+f59
+107
+107
+107
+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;
+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;
+f59
+107
+drop view if exists test.v1 ;
+drop table t1;
+
+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;
+F59
+109
+109
+ALTER VIEW test.v1 AS SELECT *
+FROM test.tb2 WHERE test.tb2.f59 = 242 ;
+SELECT * FROM test.v1 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 ;
+
+Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS test.v1 ;
+CREATE TABLE t1 ( f1 VARCHAR(1000) ) ENGINE = myisam ;
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+DROP VIEW v1;
+DROP VIEW v1;
+ERROR 42S02: Unknown table 'v1'
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1;
+Warnings:
+Note 1051 Unknown table 'test.v1'
+
+Testcase 3.3.1.68
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1_base ;
+DROP VIEW IF EXISTS v1_top ;
+CREATE TABLE t1 ( f1 DOUBLE);
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top CASCADE ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base CASCADE ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+CREATE VIEW v1_base AS SELECT * FROM t1;
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_top RESTRICT ;
+DROP VIEW v1_top;
+ERROR 42S02: Unknown table 'v1_top'
+CREATE VIEW v1_top AS SELECT * FROM v1_base;
+DROP VIEW v1_base RESTRICT ;
+DROP VIEW v1_base;
+ERROR 42S02: Unknown table 'v1_base'
+DROP VIEW v1_top;
+
+Testcase 3.3.1.69, 3.3.1.70, 3.3.1.A5
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ENGINE = myisam;
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP VIEW v1 ;
+SELECT * FROM v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW CREATE VIEW v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW CREATE TABLE v1 ;
+ERROR 42S02: Table 'test.v1' doesn't exist
+SHOW TABLE STATUS like 'v1' ;
+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
+SHOW TABLES LIKE 'v1';
+Tables_in_test (v1)
+SHOW COLUMNS FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+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 Corrupt
+DESCRIBE v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+EXPLAIN SELECT * FROM v1;
+ERROR 42S02: Table 'test.v1' doesn't exist
+Use test;
+
+Testcase 3.3.1.A6
+--------------------------------------------------------------------------------
+DROP DATABASE IF EXISTS test3;
+CREATE DATABASE test3;
+CREATE TABLE test3.t1 (f1 DECIMAL(5,3)) ENGINE = myisam;
+INSERT INTO test3.t1 SET f1 = 1.0;
+CREATE VIEW test3.v0 AS SELECT * FROM test3.t1;
+CREATE VIEW test3.v1 AS SELECT * FROM test3.v0;
+CREATE VIEW test3.v2 AS SELECT * FROM test3.v1;
+CREATE VIEW test3.v3 AS SELECT * FROM test3.v2;
+CREATE VIEW test3.v4 AS SELECT * FROM test3.v3;
+CREATE VIEW test3.v5 AS SELECT * FROM test3.v4;
+CREATE VIEW test3.v6 AS SELECT * FROM test3.v5;
+CREATE VIEW test3.v7 AS SELECT * FROM test3.v6;
+CREATE VIEW test3.v8 AS SELECT * FROM test3.v7;
+CREATE VIEW test3.v9 AS SELECT * FROM test3.v8;
+CREATE VIEW test3.v10 AS SELECT * FROM test3.v9;
+CREATE VIEW test3.v11 AS SELECT * FROM test3.v10;
+CREATE VIEW test3.v12 AS SELECT * FROM test3.v11;
+CREATE VIEW test3.v13 AS SELECT * FROM test3.v12;
+CREATE VIEW test3.v14 AS SELECT * FROM test3.v13;
+CREATE VIEW test3.v15 AS SELECT * FROM test3.v14;
+CREATE VIEW test3.v16 AS SELECT * FROM test3.v15;
+CREATE VIEW test3.v17 AS SELECT * FROM test3.v16;
+CREATE VIEW test3.v18 AS SELECT * FROM test3.v17;
+CREATE VIEW test3.v19 AS SELECT * FROM test3.v18;
+CREATE VIEW test3.v20 AS SELECT * FROM test3.v19;
+CREATE VIEW test3.v21 AS SELECT * FROM test3.v20;
+CREATE VIEW test3.v22 AS SELECT * FROM test3.v21;
+CREATE VIEW test3.v23 AS SELECT * FROM test3.v22;
+CREATE VIEW test3.v24 AS SELECT * FROM test3.v23;
+CREATE VIEW test3.v25 AS SELECT * FROM test3.v24;
+CREATE VIEW test3.v26 AS SELECT * FROM test3.v25;
+CREATE VIEW test3.v27 AS SELECT * FROM test3.v26;
+CREATE VIEW test3.v28 AS SELECT * FROM test3.v27;
+CREATE VIEW test3.v29 AS SELECT * FROM test3.v28;
+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`
+SELECT * FROM test3.v32;
+f1
+1.000
+EXPLAIN SELECT * FROM test3.v32;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 system 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`
+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;
+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
+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
+----------------------------------------------------------
+SET @join_limit = 30;
+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;
+DROP VIEW IF EXISTS test1.v24;
+DROP VIEW IF EXISTS test1.v23;
+DROP VIEW IF EXISTS test1.v22;
+DROP VIEW IF EXISTS test1.v21;
+DROP VIEW IF EXISTS test1.v20;
+DROP VIEW IF EXISTS test1.v19;
+DROP VIEW IF EXISTS test1.v18;
+DROP VIEW IF EXISTS test1.v17;
+DROP VIEW IF EXISTS test1.v16;
+DROP VIEW IF EXISTS test1.v15;
+DROP VIEW IF EXISTS test1.v14;
+DROP VIEW IF EXISTS test1.v13;
+DROP VIEW IF EXISTS test1.v12;
+DROP VIEW IF EXISTS test1.v11;
+DROP VIEW IF EXISTS test1.v10;
+DROP VIEW IF EXISTS test1.v9;
+DROP VIEW IF EXISTS test1.v8;
+DROP VIEW IF EXISTS test1.v7;
+DROP VIEW IF EXISTS test1.v6;
+DROP VIEW IF EXISTS test1.v5;
+DROP VIEW IF EXISTS test1.v4;
+DROP VIEW IF EXISTS test1.v3;
+DROP VIEW IF EXISTS test1.v2;
+DROP VIEW IF EXISTS test1.v1;
+DROP VIEW IF EXISTS test1.v0;
+CREATE DATABASE test3;
+USE test1;
+CREATE TABLE t1 (f1 BIGINT, f2 CHAR(50)) ENGINE = myisam ;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0, NULL);
+INSERT INTO t1 VALUES (5, 'five');
+INSERT INTO t1 VALUES (1, 'one');
+INSERT INTO t1 VALUES (2, 'two');
+USE test2;
+CREATE TABLE t1 (f1 DECIMAL(64,30), f2 VARCHAR(50)) ENGINE = myisam;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0.000000000000000000000000000000, NULL);
+INSERT INTO t1 VALUES (5.000000000000000000000000000000, 'five');
+INSERT INTO t1 VALUES (+1.000000000000000000000000000000, 'one');
+INSERT INTO t1 VALUES (3.000000000000000, 'three');
+USE test3;
+CREATE TABLE t1 (f1 DOUBLE, f2 VARBINARY(50)) ENGINE = myisam;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (+0.0E-35, NULL);
+INSERT INTO t1 VALUES (+0.5E+1, 'five');
+INSERT INTO t1 VALUES (20.0E-1, 'two');
+INSERT INTO t1 VALUES (0.0300E2, 'three');
+USE test;
+CREATE OR REPLACE VIEW test1.v0 AS SELECT * FROM test2.t1;
+CREATE OR REPLACE VIEW test1.v1 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v0 tab2;
+CREATE OR REPLACE VIEW test1.v2 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v1 tab2;
+CREATE OR REPLACE VIEW test1.v3 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v2 tab2;
+CREATE OR REPLACE VIEW test1.v4 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v3 tab2;
+CREATE OR REPLACE VIEW test1.v5 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v4 tab2;
+CREATE OR REPLACE VIEW test1.v6 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v5 tab2;
+CREATE OR REPLACE VIEW test1.v7 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v6 tab2;
+CREATE OR REPLACE VIEW test1.v8 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v7 tab2;
+CREATE OR REPLACE VIEW test1.v9 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v8 tab2;
+CREATE OR REPLACE VIEW test1.v10 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v9 tab2;
+CREATE OR REPLACE VIEW test1.v11 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v10 tab2;
+CREATE OR REPLACE VIEW test1.v12 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v11 tab2;
+CREATE OR REPLACE VIEW test1.v13 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v12 tab2;
+CREATE OR REPLACE VIEW test1.v14 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v13 tab2;
+CREATE OR REPLACE VIEW test1.v15 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v14 tab2;
+CREATE OR REPLACE VIEW test1.v16 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v15 tab2;
+CREATE OR REPLACE VIEW test1.v17 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v16 tab2;
+CREATE OR REPLACE VIEW test1.v18 AS SELECT f1, f2
+FROM test1.t1 tab1 NATURAL JOIN test1.v17 tab2;
+CREATE OR REPLACE VIEW test1.v19 AS SELECT f1, f2
+FROM test2.t1 tab1 NATURAL JOIN test1.v18 tab2;
+CREATE OR REPLACE VIEW test1.v20 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v19 tab2;
+SHOW CREATE VIEW test1.v20;
+View Create View
+v20 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v20` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v19` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`))))
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+f1 f2
+5 five
+
+The output of following EXPLAIN is deactivated, because the result
+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.v20;
+CREATE VIEW test1.v21 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v20 tab2;
+SHOW CREATE VIEW test1.v21;
+View Create View
+v21 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v21` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v20` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`))))
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v21;
+f1 f2
+5 five
+
+The output of following EXPLAIN is deactivated, because the result
+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.v21;
+DROP VIEW IF EXISTS test1.v21;
+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.v20;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
+SHOW CREATE VIEW test1.v20;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
+SHOW CREATE VIEW test1.v20;
+SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+CAST(f2 AS CHAR) AS f2 FROM test1.v20;
+DROP VIEW IF EXISTS test1.v20;
+DROP VIEW IF EXISTS test1.v19;
+DROP VIEW IF EXISTS test1.v18;
+DROP VIEW IF EXISTS test1.v17;
+DROP VIEW IF EXISTS test1.v16;
+DROP VIEW IF EXISTS test1.v15;
+DROP VIEW IF EXISTS test1.v14;
+DROP VIEW IF EXISTS test1.v13;
+DROP VIEW IF EXISTS test1.v12;
+DROP VIEW IF EXISTS test1.v11;
+DROP VIEW IF EXISTS test1.v10;
+DROP VIEW IF EXISTS test1.v9;
+DROP VIEW IF EXISTS test1.v8;
+DROP VIEW IF EXISTS test1.v7;
+DROP VIEW IF EXISTS test1.v6;
+DROP VIEW IF EXISTS test1.v5;
+DROP VIEW IF EXISTS test1.v4;
+DROP VIEW IF EXISTS test1.v3;
+DROP VIEW IF EXISTS test1.v2;
+DROP VIEW IF EXISTS test1.v1;
+DROP VIEW IF EXISTS test1.v0;
+DROP DATABASE test3;
+DROP TABLE test1.t1;
+DROP TABLE test2.t1;
+Use test;
+
+Testcase 3.3.2.1
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create View test.v1 AS SELECT f59,f60 FROM tb2 where f59 = 1995 ;
+INSERT INTO test.v1 (f59,f60) values (879,700) ;
+affected rows: 1
+SELECT f59,f60 FROM test.v1 where f59 = 879 and f60 = 700 ;
+f59 f60
+DELETE FROM tb2 where f59 = 879 and f60 = 700 ;
+Drop view test.v1 ;
+
+Testcase 3.3.2.2
+--------------------------------------------------------------------------------
+Drop view if exists test.v1 ;
+Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ;
+affected rows: 1
+SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ;
+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
+2005 101 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.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 = 2005 and f60 = 0101 ;
+f59 f60
+2005 101
+DELETE FROM tb2 where f59 = 2005 and f60 = 0101 ;
+Drop view test.v1 ;
+
+Testcase 3.3.2.3
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (780,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105;
+affected rows: 1
+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;
+f59 f60
+8 105
+Drop view test.v1 ;
+
+Testcase 3.3.2.4
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (781,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ;
+affected rows: 4
+info: Rows matched: 4 Changed: 4 Warnings: 0
+SELECT * FROM tb2 where f59 = 891 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
+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
+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;
+f59 f60
+891 105
+891 105
+891 105
+891 105
+Drop view test.v1 ;
+
+Testcase 3.3.2.5
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (789,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 789 ;
+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;
+f59 f60
+Drop view test.v1 ;
+
+Testcase 3.3.2.6
+--------------------------------------------------------------------------------
+Insert into tb2 (f59,f60,f61) values (711,105,106) ;
+Drop view if exists test.v1 ;
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 711 ;
+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;
+f59 f60
+Drop view test.v1 ;
+
+Testcase 3.3.2.1 - 3.3.2.6 alternative implementation
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4),
+f4 CHAR, PRIMARY KEY(f1));
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+INSERT INTO v1 SET f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NULL NULL NULL
+DELETE FROM t1;
+INSERT INTO v1 SET f2 = 'ABC';
+INSERT INTO v1 SET f2 = 'ABC';
+ERROR 23000: Duplicate entry '0' for key 1
+SELECT * from t1;
+f1 f2 f3 f4
+0 ABC NULL NULL
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 NNN -0.0012 X
+DELETE FROM t1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f2, f3 FROM t1;
+INSERT INTO v1 SET f2 = 'ABC';
+INSERT INTO v1 SET f2 = 'ABC';
+ERROR 23000: Duplicate entry '0' for key 1
+SELECT * from t1;
+f1 f2 f3 f4
+0 ABC NULL NULL
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f3, 'HELLO' AS my_greeting FROM t1;
+INSERT INTO v1 SET f1 = 1;
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO v1 SET f1 = 1, my_greeting = 'HELLO';
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1;
+SELECT * from t1;
+f1 f2 f3 f4
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+f1 f2 f3 f4
+2 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN' WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+f1 f2 f3 f4
+1 NNN -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE f1 = 1;
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE f2 = 'ABC';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej' WHERE my_greeting = 'HELLO';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET my_greeting = 'Hej';
+ERROR HY000: Column 'my_greeting' is not updatable
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 X
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+2 NNN -0.0012 X
+DELETE FROM t1;
+DROP TABLE t1;
+SET sql_mode = 'traditional';
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4) NOT NULL,
+f4 CHAR, PRIMARY KEY(f1));
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f4 FROM t1;
+INSERT INTO v1 SET f1 = 1;
+ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
+SELECT * from t1;
+f1 f2 f3 f4
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+DELETE FROM v1 WHERE f1 = 1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+UPDATE v1 SET f4 = 'Y' WHERE f2 = 'ABC';
+SELECT * from t1;
+f1 f2 f3 f4
+1 ABC -0.0012 Y
+DELETE FROM t1;
+SET sql_mode = '';
+
+Testcases 3.3.2.7 - 3.3.2.9,
+3.3.2.10 - 3.3.2.11 omitted because of missing
+features EXCEPT and INTERSECT
+--------------------------------------------------------------------------------
+INSERT INTO tb2 (f59,f60,f61) VALUES (77,185,126) ;
+INSERT INTO tb2 (f59,f60,f61) VALUES (59,58,54) ;
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+SET @variant1 = 'UNION ';
+SET @variant2 = 'UNION ALL ';
+SET @variant3 = 'UNION DISTINCT ';
+SET @variant4 = 'EXCEPT ';
+SET @variant5 = 'INTERSECT ';
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION DISTINCT SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION ALL SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+CREATE VIEW v1 AS SELECT f61 FROM tb2 WHERE f59=59 UNION SELECT f61 FROM t1 WHERE f59=19;
+INSERT INTO v1 VALUES (3000);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ERROR HY000: The target table v1 of the UPDATE is not updatable
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1 ;
+
+Testcases 3.3.2.12 - 3.3.2.20
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS test.v1 ;
+Drop view if exists v2 ;
+CREATE TABLE t1 (f59 int, f60 int, f61 int) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+CREATE TABLE t2 (f59 int, f60 int, f61 int) ;
+INSERT INTO t2 VALUES (19,41,32) ;
+INSERT INTO t2 VALUES (59,54,71) ;
+INSERT INTO t2 VALUES (21,91,99) ;
+CREATE VIEW v2 AS SELECT f59, f60, f61 FROM t2 LIMIT 5;
+SET @variant1= 'CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1';
+SET @variant2= 'CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1';
+SET @variant3= 'CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1';
+SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61';
+SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0';
+SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1';
+SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2';
+
+Some server responses suffer from
+Bug#10773 Incorrect message is displayed while updating a view
+--------------------------------------------------------------------------------
+SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)';
+SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1';
+CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1);
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM v2;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1;
+INSERT INTO v1 VALUES (1002);
+ERROR HY000: The target table v1 of the INSERT is not insertable-into
+UPDATE v1 SET f61=1007;
+Got one of the listed errors
+DELETE FROM v1;
+ERROR HY000: The target table v1 of the DELETE is not updatable
+DROP VIEW v1;
+Drop TABLE t1, t2 ;
+Drop VIEW v2 ;
+
+Testcases 3.3.A1
+--------------------------------------------------------------------------------
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+CREATE TABLE t1 (f1 BIGINT, f2 DATE DEFAULT NULL, f4 CHAR(5),
+report char(10)) ENGINE = myisam;
+CREATE VIEW v1 AS SELECT * FROM t1;
+INSERT INTO t1 SET f1 = -1, f4 = 'ABC', report = 't1 0';
+INSERT INTO v1 SET f1 = -1, f4 = 'ABC', report = 'v1 0';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(5) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(5) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5);
+INSERT INTO t1 SET f1 = 0, f4x = 'ABC', report = 't1 1';
+INSERT INTO v1 SET f1 = 0, f4 = 'ABC', report = 'v1 1';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+INSERT INTO v1 SET f1 = 0, f4x = 'ABC', report = 'v1 1a';
+ERROR 42S22: Unknown column 'f4x' in 'field list'
+INSERT INTO v1 SET f1 = 0, report = 'v1 1b';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4x char(5) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM t1;
+f1 f2 f4x report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5);
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10);
+INSERT INTO t1 SET f1 = 2, f4 = '<-- 10 -->', report = 't1 2';
+INSERT INTO v1 SET f1 = 2, f4 = '<-- 10 -->', report = 'v1 2';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(10) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(10) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 --> t1 2
+2 NULL <-- 10 --> v1 2
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 --> t1 2
+2 NULL <-- 10 --> v1 2
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(8);
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 4
+Warning 1265 Data truncated for column 'f4' at row 5
+INSERT INTO t1 SET f1 = 3, f4 = '<-- 10 -->', report = 't1 3';
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 1
+INSERT INTO v1 SET f1 = 3, f4 = '<-- 10 -->', report = 'v1 3';
+Warnings:
+Warning 1265 Data truncated for column 'f4' at row 1
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(8) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 char(8) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+ALTER TABLE t1 CHANGE COLUMN f4 f4 VARCHAR(20);
+INSERT INTO t1 SET f1 = 4, f4 = '<------ 20 -------->', report = 't1 4';
+INSERT INTO v1 SET f1 = 4, f4 = '<------ 20 -------->', report = 'v1 4';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 bigint(20) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30);
+INSERT INTO t1 SET f1 = '<------------- 30 ----------->',
+f4 = '<------ 20 -------->', report = 't1 5';
+INSERT INTO v1 SET f1 = '<------------- 30 ----------->',
+f4 = '<------ 20 -------->', report = 'v1 5';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ALTER TABLE t1 DROP COLUMN f2;
+INSERT INTO t1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 't1 6';
+INSERT INTO v1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 'v1 6';
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+DESCRIBE v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+SELECT * FROM t1;
+f1 f4 report
+-1 ABC t1 0
+-1 ABC v1 0
+0 ABC t1 1
+2 <-- 10 - t1 2
+2 <-- 10 - v1 2
+3 <-- 10 - t1 3
+3 <-- 10 - v1 3
+4 <------ 20 --------> t1 4
+4 <------ 20 --------> v1 4
+<------------- 30 -----------> <------ 20 --------> t1 5
+<------------- 30 -----------> <------ 20 --------> v1 5
+ABC <------ 20 --------> t1 6
+SELECT * FROM v1;
+ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL;
+INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04',
+f4 = '<------ 20 -------->', report = 't1 7';
+INSERT INTO v1 SET f1 = 'ABC', f2 = '1500-12-04',
+f4 = '<------ 20 -------->', report = 'v1 7';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 date YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 date YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2
+-1 ABC t1 0 NULL
+-1 ABC v1 0 NULL
+0 ABC t1 1 NULL
+2 <-- 10 - t1 2 NULL
+2 <-- 10 - v1 2 NULL
+3 <-- 10 - t1 3 NULL
+3 <-- 10 - v1 3 NULL
+4 <------ 20 --------> t1 4 NULL
+4 <------ 20 --------> v1 4 NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL
+ABC <------ 20 --------> t1 6 NULL
+ABC <------ 20 --------> t1 7 1500-12-04
+ABC <------ 20 --------> v1 7 1500-12-04
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC 1500-12-04 <------ 20 --------> t1 7
+ABC 1500-12-04 <------ 20 --------> v1 7
+ALTER TABLE t1 DROP COLUMN f2;
+ALTER TABLE t1 ADD COLUMN f2 FLOAT;
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 't1 8';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 'v1 8';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 float YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 float YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2
+-1 ABC t1 0 NULL
+-1 ABC v1 0 NULL
+0 ABC t1 1 NULL
+2 <-- 10 - t1 2 NULL
+2 <-- 10 - v1 2 NULL
+3 <-- 10 - t1 3 NULL
+3 <-- 10 - v1 3 NULL
+4 <------ 20 --------> t1 4 NULL
+4 <------ 20 --------> v1 4 NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL
+ABC <------ 20 --------> t1 6 NULL
+ABC <------ 20 --------> t1 7 NULL
+ABC <------ 20 --------> v1 7 NULL
+ABC <------ 20 --------> t1 8 -0.00033
+ABC <------ 20 --------> v1 8 -0.00033
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC NULL <------ 20 --------> t1 7
+ABC NULL <------ 20 --------> v1 7
+ABC -0.00033 <------ 20 --------> t1 8
+ABC -0.00033 <------ 20 --------> v1 8
+ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2);
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+f3 = -2.2, f4 = '<------ 20 -------->', report = 't1 9';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f3 = -2.2, f4 = '<------ 20 -------->', report = 'v1 9';
+ERROR 42S22: Unknown column 'f3' in 'field list'
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+f4 = '<------ 20 -------->', report = 'v1 9a';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+f2 float YES NULL
+f3 decimal(7,2) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 varchar(30) YES NULL
+f2 float YES NULL
+f4 varchar(20) YES NULL
+report char(10) YES NULL
+SELECT * FROM t1;
+f1 f4 report f2 f3
+-1 ABC t1 0 NULL NULL
+-1 ABC v1 0 NULL NULL
+0 ABC t1 1 NULL NULL
+2 <-- 10 - t1 2 NULL NULL
+2 <-- 10 - v1 2 NULL NULL
+3 <-- 10 - t1 3 NULL NULL
+3 <-- 10 - v1 3 NULL NULL
+4 <------ 20 --------> t1 4 NULL NULL
+4 <------ 20 --------> v1 4 NULL NULL
+<------------- 30 -----------> <------ 20 --------> t1 5 NULL NULL
+<------------- 30 -----------> <------ 20 --------> v1 5 NULL NULL
+ABC <------ 20 --------> t1 6 NULL NULL
+ABC <------ 20 --------> t1 7 NULL NULL
+ABC <------ 20 --------> v1 7 NULL NULL
+ABC <------ 20 --------> t1 8 -0.00033 NULL
+ABC <------ 20 --------> v1 8 -0.00033 NULL
+ABC <------ 20 --------> t1 9 -0.00033 -2.20
+ABC <------ 20 --------> v1 9a -0.00033 NULL
+SELECT * FROM v1;
+f1 f2 f4 report
+-1 NULL ABC t1 0
+-1 NULL ABC v1 0
+0 NULL ABC t1 1
+2 NULL <-- 10 - t1 2
+2 NULL <-- 10 - v1 2
+3 NULL <-- 10 - t1 3
+3 NULL <-- 10 - v1 3
+4 NULL <------ 20 --------> t1 4
+4 NULL <------ 20 --------> v1 4
+<------------- 30 -----------> NULL <------ 20 --------> t1 5
+<------------- 30 -----------> NULL <------ 20 --------> v1 5
+ABC NULL <------ 20 --------> t1 6
+ABC NULL <------ 20 --------> t1 7
+ABC NULL <------ 20 --------> v1 7
+ABC -0.00033 <------ 20 --------> t1 8
+ABC -0.00033 <------ 20 --------> v1 8
+ABC -0.00033 <------ 20 --------> t1 9
+ABC -0.00033 <------ 20 --------> v1 9a
+DROP TABLE t1;
+DROP VIEW v1;
+CREATE TABLE t1 (f1 CHAR(10), f2 BIGINT) ENGINE = myisam;
+INSERT INTO t1 SET f1 = 'ABC', f2 = 3;
+CREATE VIEW v1 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+f2 bigint(20) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM t1;
+f1 f2
+ABC 3
+SELECT * FROM v1;
+f1 my_sqrt
+ABC 1.7320508075689
+ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30);
+INSERT INTO t1 SET f1 = 'ABC', f2 = 'DEF';
+DESCRIBE t1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+f2 varchar(30) YES NULL
+DESCRIBE v1;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM t1;
+f1 f2
+ABC 3
+ABC DEF
+SELECT * FROM v1;
+f1 my_sqrt
+ABC 1.7320508075689
+ABC 0
+SELECT SQRT('DEF');
+SQRT('DEF')
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'DEF'
+CREATE VIEW v2 AS SELECT SQRT('DEF');
+SELECT * FROM v2;
+SQRT('DEF')
+0
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'DEF'
+CREATE OR REPLACE VIEW v2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE v2;
+Field Type Null Key Default Extra
+f1 char(10) YES NULL
+my_sqrt double YES NULL
+SELECT * FROM v2;
+f1 my_sqrt
+ABC 1.7320508075689
+ABC 0
+CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v1;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v2;
+SELECT * FROM t2;
+f1 my_sqrt
+ABC 1.73205080756888
+ABC 0
+DROP TABLE t1;
+DROP TABLE t2;
+DROP VIEW v1;
+DROP VIEW v2;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1_1;
+DROP VIEW IF EXISTS v1_2;
+DROP VIEW IF EXISTS v1_firstview;
+DROP VIEW IF EXISTS v1_secondview;
+DROP VIEW IF EXISTS v2;
+DROP DATABASE IF EXISTS test2;
+DROP DATABASE IF EXISTS test3;
+DROP DATABASE IF EXISTS test1;
diff --git a/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc b/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc
new file mode 100644
index 00000000000..493c4373d20
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc
@@ -0,0 +1,9 @@
+let $message= --source suite/funcs_1/storedproc/cleanup_sp_tb.inc;
+--source include/show_msg80.inc
+
+# called both to cleanup possibly existing data before and after the SP tests
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_storedproc;
+DROP DATABASE IF EXISTS db_storedproc_1;
+--enable_warnings
diff --git a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc
new file mode 100644
index 00000000000..6dafa23f840
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc
@@ -0,0 +1,68 @@
+let $message= --source suite/funcs_1/storedproc/load_sp_tb.inc;
+--source include/show_msg80.inc
+
+# ==============================================================================
+#
+# this load script can be called multiple times inside a test script because it
+# first cleans up all objects that will be created.
+# therefore the same script is used as it will be used at the end of a test.
+#
+# ==============================================================================
+
+--disable_abort_on_error
+--enable_query_log
+
+SET @@global.max_heap_table_size=4294967295;
+SET @@session.max_heap_table_size=4294967295;
+
+# use the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+CREATE DATABASE db_storedproc;
+CREATE DATABASE db_storedproc_1;
+
+USE db_storedproc;
+
+eval create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1;
+
+eval create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2;
+
+eval create table t3(f1 char(20),f2 char(20),f3 integer) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3;
+
+eval create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4;
+
+USE db_storedproc_1;
+
+eval create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6;
+
+USE db_storedproc;
+
+eval create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7;
+
+eval create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8;
+
+eval create table t9(f1 int, f2 char(25), f3 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9;
+
+eval create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10;
+
+eval create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc
new file mode 100755
index 00000000000..a8d52fee0b5
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc
@@ -0,0 +1,1531 @@
+#### suite/funcs_1/storedproc/storedproc_02.inc
+#
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+# ==============================================================================
+# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
+#
+# 3.1.2 Syntax checks for the stored procedure-specific programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE:
+#
+#- 1. Ensure that all subclauses that should be supported are supported.
+#- 2. Ensure that all subclauses that should not be supported are disallowed with an appropriate error message.
+#- 3. Ensure that all supported subclauses are supported only in the correct order.
+#- 4. Ensure that an appropriate error message is returned if a subclause is out-of-order in a stored procedure definition.
+#- 5. Ensure that all subclauses that are defined to be mandatory are indeed required to be mandatory by the MySQL server and tools.
+#- 6. Ensure that any subclauses that are defined to be optional are indeed treated as optional by the MySQL server and tools.
+#- 7. Ensure that every BEGIN statement is coupled with a terminating END statement.
+## 8. Ensure that the scope of each BEGIN/END compound statement within a stored procedure definition is properly applied.
+#- 9. Ensure that the labels enclosing each BEGIN/END compound statement must match.
+#- 10. Ensure that it is possible to put a beginning label at the start of a BEGIN/END compound statement without also requiring an ending label at the end of the same statement.
+#- 11. Ensure that it is not possible to put an ending label at the end of a BEGIN/END compound statement without also requiring a matching beginning label at the start of the same statement.
+#- 12. Ensure that every beginning label must end with a colon (:).
+#- 13. Ensure that every beginning label with the same scope must be unique.
+#- 14. Ensure that the variables, cursors, conditions, and handlers declared for a stored procedure (with the DECLARE statement) may only be properly defined.
+#- 15. Ensure that the variables, cursors, conditions, and handlers declared for a stored procedure (with the DECLARE statement) may only be defined in the correct order.
+#- 16. Ensure that every possible type of variable -- utilizing every data type definition supported by the MySQL server in combination with both no DEFAULT subclause and with DEFAULT subclauses that set the variable’s default value to a range of appropriate values -- may be declared for a stored procedure.
+#- 17. Ensure that the DECLARE statement can declare multiple variables both separately and all at once from a variable list.
+#- 18. Ensure that invalid variable declarations are rejected, with an appropriate error message.
+#- 19. Ensure that every possible type of cursor may be declared for a stored procedure.
+#- 20. Ensure that invalid cursor declarations are rejected, with an appropriate error message.
+#- 21. Ensure that every possible type of condition may be declared for a stored procedure.
+# -22. Ensure that invalid condition declarations are rejected, with an appropriate error message.
+#- 23. Ensure that every possible type of handler may be declared for a stored procedure.
+#- 24. Ensure that invalid handler declarations are rejected, with an appropriate error message.
+#- 25. Ensure that the scope of every variable, cursor, condition, and handler declared for a stored procedure (with the DECLARE statement) is properly applied.
+## 26. Ensure that the initial value of every variable declared for a stored procedure is either NULL or its DEFAULT value, as appropriate.
+#- 27. Ensure that the SET statement can assign a value to every local variable declared within a stored procedure’s definition, as well as to every appropriate global server variable.
+#- 28. Ensure that the SET statement can assign values to variables either separately or to multiple variables in a list.
+#- 29. Ensure that the SET statement may assign only those values to a variable that are appropriate for that variable’s data type definition.
+## 30. Ensure that, when a stored procedure is called/executed, every variable always uses the correct value: either the value with which it is initialized or the value to which it is subsequently SET or otherwise assigned, as appropriate.
+## 31. Ensure that the SELECT ... INTO statement properly assigns values to the variables in its variable list.
+## 32. Ensure that a SELECT ... INTO statement that retrieves multiple rows is rejected, with an appropriate error message.
+## 33. Ensure that a SELECT ... INTO statement that retrieves too many columns for the number of variables in its variable list is rejected, with an appropriate error message.
+## 34. Ensure that a SELECT ... INTO statement that retrieves too few columns for the number of variables in its variable list is rejected, with an appropriate error message.
+#- 35. Ensure that a SELECT ... INTO statement that retrieves column values with inappropriate data types for the matching variables in its variable list is rejected, with an appropriate error message.
+#- 36. Ensure that the DECLARE ... CONDITION FOR statement can declare a properly-named condition for every possible SQLSTATE and MySQL-specific error code.
+#- 37. Ensure that no two conditions declared with the same scope may have the same condition name.
+## 38. Ensure that the scope of every condition declared is properly applied.
+#- 39. Ensure that every SQLSTATE value declared with a DECLARE ... CONDITION FOR statement is a character string that is 5 characters long.
+#- 40. Ensure that the DECLARE ... CONDITION FOR statement cannot declare a condition for an invalid SQLSTATE.
+#- 41. Ensure that the DECLARE ... CONDITION FOR statement cannot declare a condition for the “successful completion SQLSTATE: “00000“.
+#- 42. Ensure that the DECLARE ... HANDLER FOR statement can declare a CONTINUE, EXIT, and UNDO handler for every condition declared (with a DECLARE ... CONDITION FOR statement), within the scope of the handler, for a stored procedure, as well as for every possible SQLSTATE and MySQL-specific error code, as well as for the predefined conditions SQLWARNING, NOT FOUND, and SQLEXCEPTION.
+## 43. Ensure that the DECLARE ... HANDLER FOR statement can not declare any handler for a condition declared outside of the scope of the handler.
+## 44. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a handler for any invalid, or undeclared, condition.
+## 45. Ensure that the scope of every handler declared is properly applied.
+#- 46. Ensure that, within the same scope, no two handlers may be declared for the same condition.
+#- 47. Ensure that every SQLSTATE value declared with a DECLARE ... HANDLER FOR statement is a character string that is 5 characters long.
+#- 48. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a condition for an invalid SQLSTATE.
+#- 49. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a condition for the “successful completion SQLSTATE: “00000“.
+## 50. Ensure that a CONTINUE handler allows the execution of the stored procedure to continue once the handler statement has completed its own execution (that is, once the handler action statement has been executed).
+## 51. Ensure that an EXIT handler causes the execution of the stored procedure to terminate, within its scope, once the handler action statement has been executed.
+## 52. Ensure that an EXIT handler does not cause the execution of the stored procedure to terminate outside of its scope.
+#- 53. Ensure that a handler condition of SQLWARNING takes the same action as a handler condition defined with an SQLSTATE that begins with “01“.
+## 54. Ensure that a handler with a condition defined with an SQLSTATE that begins with “01“ is always exactly equivalent in action to a handler with an SQLWARNING condition.
+#- 55. Ensure that a handler condition of NOT FOUND takes the same action as a handler condition defined with an SQLSTATE that begins with “02“.
+## 56. Ensure that a handler with a condition defined with an SQLSTATE that begins with “02“ is always exactly equivalent in action to a handler with a NOT FOUND condition.
+#- 57. Ensure that a handler condition of SQLEXCEPTION takes the same action as a handler condition defined with an SQLSTATE that begins with anything other that “01“ or “02“.
+## 58. Ensure that a handler with a condition defined with an SQLSTATE that begins with anything other that “01“ or “02“ is always exactly equivalent in action to a handler with an SQLEXCEPTION condition.
+#- 59. Ensure that no two cursors in a stored procedure can have the same name.
+#- 60. Ensure that a cursor declaration may not include a SELECT ... INTO statement.
+#- 61. Ensure that a cursor declaration that includes an ORDER BY clause may not be an updatable cursor.
+#- 62. Ensure that OPEN <cursor name> fails unless a cursor with the same name has already been declared.
+#- 63. Ensure that OPEN <cursor name> fails if the same cursor is currently already open.
+#- 64. Ensure that FETCH <cursor name> fails unless a cursor with the same name is already open.
+## 65. Ensure that FETCH <cursor name> returns the first row of the cursor’s result set the first time FETCH is executed, that it returns each subsequent row of the cursor’s result set each of the subsequent times FETCH is executed, and that it returns a NOT FOUND warning if it is executed after the last row of the cursor’s result set has already been fetched.
+#- 66. Ensure that FETCH <cursor name> fails with an appropriate error message if it is executed before the cursor has been opened.
+#- 67. Ensure that FETCH <cursor name> fails with an appropriate error message if it is executed after the cursor has been closed.
+## 68. Ensure that FETCH <cursor name> fails with an appropriate error message if the number of columns to be fetched does not match the number of variables specified by the FETCH statement.
+#- 69. Ensure that FETCH <cursor name> fails with an appropriate error message if the data type of the column values being fetched are not appropriate for the matching FETCH variables to which the data is being assigned.
+#- 70. Ensure that CLOSE <cursor name> fails unless a cursor with the same name is already open.
+#- 71. Ensure that all cursors are closed when a transaction terminates with a COMMIT statement.
+#- 72. Ensure that all cursors are closed when a transaction terminates with a ROLLBACK statement.
+#- 73. Ensure that the result set of a cursor that has been closed is not longer available to the FETCH statement.
+#- 74. Ensure that every cursor declared within a compound statement is closed when that compound statement ends.
+## 75. Ensure that, for nested compound statements, a cursor that was declared and opened during an outer level of the statement is not closed when an inner level of a compound statement ends.
+## 76. Ensure that all cursors operate asensitively, so that there is no concurrency conflict between cursors operating on the same, or similar, sets of results during execution of one or more stored procedures.
+# 77. Ensure that multiple cursors, nested within multiple compound statements within a stored procedure, always act correctly and return the expected result.
+#
+# ==============================================================================
+let $message= Section 3.1.2 - Syntax checks for the stored procedure-specific
+programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE:;
+--source include/show_msg80.inc
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.8:;
+--source include/show_msg.inc
+let $message=
+Ensure that the scope of each BEGIN/END compound statement within a stored
+procedure definition is properly applied;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+ declare x char DEFAULT 'x';
+ declare y char DEFAULT 'y';
+ set x = '1';
+ set y = '2';
+ label1: BEGIN
+ declare x char DEFAULT 'X';
+ declare y char DEFAULT 'Y';
+ SELECT f1, f2 into x, y from t2 limit 1;
+ SELECT '1.1', x, y;
+ label2: BEGIN
+ declare x char default 'a';
+ declare y char default 'b';
+ label3: BEGIN
+ declare x char default 'c';
+ declare y char default 'd';
+ label4: BEGIN
+ declare x char default 'e';
+ declare y char default 'f';
+ label5: BEGIN
+ declare x char default 'g';
+ declare y char default 'h';
+ SELECT 5, x, y;
+ END label5;
+ SELECT 4, x, y;
+ END label4;
+ SELECT 3, x, y;
+ END label3;
+ SELECT 2, x, y;
+ END label2;
+ END label1;
+ set @v1 = x;
+ set @v2 = y;
+ SELECT '1.2', @v1, @v2;
+END begin_label//
+delimiter ;//
+
+CALL sp1();
+
+#cleanup
+DROP PROCEDURE IF EXISTS sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.26:;
+--source include/show_msg.inc
+let $message=
+Ensure that the initial value of every variable declared for a stored procedure
+is either NULL or its DEFAULT value, as appropriate.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+set @v1=0;
+set @v2=0;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x1 char default 'x';
+ declare y1 char;
+ declare x2 tinytext default 'tinytext';
+ declare y2 tinytext;
+ declare x3 datetime default '2005-10-03 12:13:14';
+ declare y3 datetime;
+ declare x4 float default 1.2;
+ declare y4 float;
+ declare x5 blob default 'b';
+ declare y5 blob;
+ declare x6 smallint default 127;
+ declare y6 smallint;
+ SELECT x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.30:;
+--source include/show_msg.inc
+let $message=
+Ensure that, when a stored procedure is called/executed, every variable always
+uses the correct value: either the value with which it is initialized or the
+value to which it is subsequently SET or otherwise assigned, as appropriate.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( IN invar INT, OUT outvar INT )
+BEGIN
+ declare x integer;
+ declare y integer default 1;
+ set @x = x;
+ set @y = y;
+ set @z = 234;
+ SELECT f1, f2 into @x, @y from t2 limit 1;
+ SELECT @x, @y, @z, invar;
+ BEGIN
+ set @x = 2;
+ SELECT @x, @y, @z;
+ SET outvar = @x * invar + @z * @f;
+ SET invar = outvar;
+ BEGIN
+ set @y = null, @z = 'abcd';
+ SELECT @x, @y, @z;
+ END;
+ END;
+END//
+delimiter ;//
+
+SET @invar = 100;
+SET @outvar = @invar;
+SET @f = 10;
+
+SELECT @x, @y, @z, @invar, @outvar;
+
+CALL sp1( @invar, @outvar );
+
+SELECT @x, @y, @z, @invar, @outvar;
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.31:;
+--source include/show_msg.inc
+let $message=
+Ensure that the SELECT ... INTO statement properly assigns values to the
+variables in its variable list.;
+--source include/show_msg80.inc
+# also tested in a lot of other testcases
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x integer; declare y integer;
+ set @x=x;
+ set @y=y;
+ SELECT f4, f3 into @x, @y from t2 limit 1;
+ SELECT @x, @y;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup 3.1.2.31
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.32:;
+--source include/show_msg.inc
+let $message=
+Ensure that a SELECT ... INTO statement that retrieves multiple rows is
+rejected, with an appropriate error message.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x integer; declare y integer;
+ set @x=x;
+ set @y=y;
+ SELECT f4, f3 into @x, @y from t2;
+END//
+delimiter ;//
+
+#Error: 1172 SQLSTATE: 42000 (ER_TOO_MANY_ROWS) Message: Result consisted of more than one row
+--error 1172
+CALL sp1();
+
+# cleanup 3.1.2.32
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.33:;
+--source include/show_msg.inc
+let $message=
+Ensure that a SELECT ... INTO statement that retrieves too many columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x integer; declare y integer;
+ set @x=x;
+ set @y=y;
+ SELECT f4, f3, f2, f1 into @x, @y from t2;
+END//
+delimiter ;//
+
+--error 1222
+CALL sp1();
+
+# cleanup 3.1.2.33
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.34:;
+--source include/show_msg.inc
+let $message=
+Ensure that a SELECT ... INTO statement that retrieves too few columns for the
+number of variables in its variable list is rejected, with an appropriate error
+message.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x integer; declare y integer; declare z integer;
+ set @x=x;
+ set @y=y;
+ set @z=z;
+ SELECT f4 into @x, @y, @z from t2;
+END//
+delimiter ;//
+
+--error 1222
+CALL sp1();
+
+# cleanup 3.1.2.34
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.38:;
+--source include/show_msg.inc
+let $message=
+Ensure that the scope of every condition declared is properly applied.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+--enable_warnings
+
+create table res_t1(w char unique, x char);
+
+insert into res_t1 values('a', 'b');
+
+# Error: 1339 SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND) Message: Case not found for CASE statement
+# Error: 1022 SQLSTATE: 23000 (ER_DUP_KEY) Message: Can't write; duplicate key in table '%s'
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1, x2, x3, x4, x5, x6 int default 0;
+ SELECT '-1-', x1, x2, x3, x4, x5, x6;
+ BEGIN
+ declare condname condition for sqlstate '23000';
+ declare continue handler for condname set x5 = 1;
+ set x6 = 0;
+ insert into res_t1 values ('a', 'b');
+ set x6 = 1;
+ SELECT '-2-', x1, x2, x3, x4, x5, x6;
+ END;
+ begin1_label: BEGIN
+ BEGIN
+ declare condname condition for sqlstate '20000';
+ declare continue handler for condname set x1 = 1;
+ set x2 = 0;
+ case x2
+ when 1 then set x2=10;
+ when 2 then set x2=11;
+ END case;
+ set x2 = 1;
+ SELECT '-3-', x1, x2, x3, x4, x5, x6;
+ begin2_label: BEGIN
+ BEGIN
+ declare condname condition for sqlstate '23000';
+ declare exit handler for condname set x3 = 1;
+ set x4= 1;
+ SELECT '-4a', x1, x2, x3, x4, x5, x6;
+ insert into res_t1 values ('a', 'b');
+ set x4= 2;
+ SELECT '-4b', x1, x2, x3, x4, x5, x6;
+ END;
+ SELECT '-5-', x1, x2, x3, x4, x5, x6;
+ END begin2_label;
+ SELECT '-6-', x1, x2, x3, x4, x5, x6;
+ END;
+ SELECT '-7-', x1, x2, x3, x4, x5, x6;
+ END begin1_label;
+ SELECT 'END', x1, x2, x3, x4, x5, x6;
+END//
+delimiter ;//
+
+CALL h1();
+
+# and a 2nd test
+--disable_warnings
+DROP TABLE IF EXISTS tnull;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE TABLE tnull(f1 int);
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '42S02';
+ declare continue handler for cond1 set @var2 = 1;
+ BEGIN
+ declare cond1 condition for sqlstate '23000';
+ declare continue handler for cond1 set @var2 = 1;
+ END;
+ insert into tnull values(1);
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup 3.1.2.38
+DROP PROCEDURE h1;
+drop table res_t1;
+DROP PROCEDURE sp1;
+DROP TABLE tnull;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.43:;
+--source include/show_msg.inc
+let $message=
+Ensure that the DECLARE ... HANDLER FOR statement can not declare any handler
+for a condition declared outside of the scope of the handler.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS h2;
+drop table IF EXISTS res_t1;
+--enable_warnings
+
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+
+delimiter //;
+--error 1319
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1, x2, x3, x4, x5, x6 int default 0;
+ BEGIN
+ declare cond_1 condition for sqlstate '23000';
+ declare continue handler for cond_1 set x5 = 1;
+ BEGIN
+ declare cond_2 condition for sqlstate '20000';
+ declare continue handler for cond_1 set x1 = 1;
+ BEGIN
+ declare continue handler for cond_2 set x3 = 1;
+ set x2 = 1;
+ END;
+ set x6 = 0;
+ END;
+ BEGIN
+ declare continue handler for cond_1 set x1 = 1;
+ BEGIN
+ declare continue handler for cond_2 set x3 = 1;
+ set x2 = 1;
+ END;
+ set x6 = 0;
+ END;
+ END;
+ SELECT x1, x2, x3, x4, x5, x6;
+END//
+
+CREATE PROCEDURE h2 ()
+BEGIN
+ declare x1, x2, x3, x4, x5, x6 int default 0;
+ BEGIN
+ declare condname condition for sqlstate '23000';
+ declare continue handler for condname set x5 = 1;
+ BEGIN
+ declare condname condition for sqlstate '20000';
+ declare continue handler for condname set x1 = 1;
+ BEGIN
+ declare condname condition for sqlstate '42000';
+ declare continue handler for condname set x3 = 1;
+ set x6 = 0;
+ insert into res_t1 values ('a', 'b');
+ set x6 = 1;
+ set x4= 0;
+ CALL sp1();
+ set x4= 1;
+ set x2 = 0;
+ case x2
+ when 1 then set x2=10;
+ when 2 then set x2=11;
+ END case;
+ set x2 = 1;
+ END;
+ set x2 = 0;
+ case x2
+ when 1 then set x2=10;
+ when 2 then set x2=11;
+ END case;
+ set x2 = 1;
+ set x6 = 0;
+ insert into res_t1 values ('a', 'b');
+ set x6 = 1;
+ END;
+ END;
+ SELECT x1, x2, x3, x4, x5, x6;
+END//
+delimiter ;//
+
+CALL h2();
+SELECT * FROM res_t1;
+
+# cleanup 3.1.2.43
+DROP PROCEDURE h2;
+drop table res_t1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.44:;
+--source include/show_msg.inc
+let $message=
+Ensure that the DECLARE ... HANDLER FOR statement cannot declare a handler for
+any invalid, or undeclared, condition.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+delimiter //;
+#Error: 1319 SQLSTATE: 42000 (ER_SP_COND_MISMATCH) Message: Undefined CONDITION: %s
+--error 1319
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1, x2, x3, x4, x5, x6 int default 0;
+ BEGIN
+ declare condname1 condition for sqlstate '23000';
+ BEGIN
+ declare condname2 condition for sqlstate '20000';
+ declare continue handler for condname1 set x3 = 1;
+ declare continue handler for condname2 set x1 = 1;
+ END;
+ END;
+ BEGIN
+ declare condname3 condition for sqlstate '42000';
+ declare continue handler for condname1 set x3 = 1;
+ declare continue handler for condname2 set x5 = 1;
+ declare continue handler for condname3 set x1 = 1;
+ END;
+END//
+
+#Error: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR) Message: %s near '%s' at line %d
+--error 1064
+CREATE PROCEDURE h1 ()
+BEGIN
+ DECLARE x1 INT DEFAULT 0;
+ BEGIN
+ DECLARE condname1 CONDITION CHECK SQLSTATE '23000';
+ END;
+ DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+END//
+
+#Error: 1407 SQLSTATE: 42000 (ER_SP_BAD_SQLSTATE) Message: Bad SQLSTATE: '%s'
+--error 1407
+CREATE PROCEDURE h1 ()
+BEGIN
+ DECLARE x1 INT DEFAULT 0;
+ BEGIN
+ DECLARE condname1 CONDITION FOR SQLSTATE 'qwert';
+ END;
+ DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1;
+END//
+delimiter ;//
+
+# cleanup 3.1.2.44
+#DROP PROCEDURE h1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.45 + 3.1.2.50:;
+--source include/show_msg.inc
+let $message=
+45. Ensure that the scope of every handler declared is properly applied.
+50. Ensure that a CONTINUE handler allows the execution of the stored procedure
+. to continue once the handler statement has completed its own execution (that
+. is, once the handler action statement has been executed).;
+--source include/show_msg80.inc
+
+# RefMan: For an EXIT handler, execution of the current BEGIN...END compound
+# statement is terminated.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p1undo;
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t1;
+--enable_warnings
+
+--echo ==> 'UNDO' is still not supported.
+delimiter //;
+--error 1064
+create procedure p1undo ()
+begin
+ declare undo handler for sqlexception select '1';
+ select * from tqq;
+ SELECT 'end of 1';
+end;//
+
+create procedure p1 ()
+begin
+ declare exit handler for sqlexception select 'exit handler 1';
+ begin
+ declare exit handler for sqlexception select 'exit handler 2';
+ begin
+ declare continue handler for sqlexception select 'continue handler 3';
+ drop table if exists tqq;
+ select * from tqq;
+ SELECT 'end of BEGIN/END 3';
+ end;
+ drop table if exists tqq;
+ select * from tqq;
+ SELECT 'end of BEGIN/END 2';
+ end;
+ select * from tqq;
+ SELECT 'end of BEGIN/END 1';
+end;//
+
+call p1()//
+delimiter ;//
+
+create table res_t1(w char unique, x char);
+insert into res_t1 values ('a', 'b');
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1, x2, x3, x4, x5, x6 int default 0;
+ BEGIN
+ declare continue handler for sqlstate '23000' set x5 = 1;
+ insert into res_t1 values ('a', 'b');
+ set x6 = 1;
+ END;
+ begin1_label: BEGIN
+ BEGIN
+ declare continue handler for sqlstate '23000' set x1 = 1;
+ insert into res_t1 values ('a', 'b');
+ set x2 = 1;
+ begin2_label: BEGIN
+ BEGIN
+ declare exit handler for sqlstate '23000' set x3 = 1;
+ set x4= 1;
+ insert into res_t1 values ('a', 'b');
+ set x4= 0;
+ END;
+ END begin2_label;
+ END;
+ END begin1_label;
+ SELECT x1, x2, x3, x4, x5, x6;
+END//
+delimiter ;//
+
+CALL h1();
+
+
+delimiter //;
+CREATE PROCEDURE sp1()
+ begin1_label:BEGIN
+ declare exit handler for sqlstate '00000' set @var1 = 5;
+ set @var2 = 6;
+ begin2_label:BEGIN
+ declare continue handler for sqlstate '00000' set @var3 = 7;
+ set @var4 = 8;
+ SELECT @var3, @var4;
+ END begin2_label;
+ SELECT @var1, @var2;
+ END begin1_label//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup 3.1.2.45+50
+DROP PROCEDURE p1;
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+DROP TABLE res_t1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.50:;
+--source include/show_msg.inc
+
+# testcase: ensure that a continue handler allows the execution of the stored procedure
+# to continue once the handler statement has completed its own execution
+# (that is, once the handler action statement has been executed).
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=0;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE sp2 ()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 1;
+ set @x=1;
+ SELECT @x2;
+ CALL sp1(1);
+ set @x=2;
+ SELECT @x2, @x;
+END//
+delimiter ;//
+
+CALL sp2();
+
+# cleanup
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.2.2.51:;
+--source include/show_msg.inc
+let $message=
+Ensure that an EXIT handler causes the execution of the stored procedure to
+terminate, within its scope, once the handler action statement has been
+executed.;
+--source include/show_msg80.inc
+# also tested in 3.1.2.45
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @x=0;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE sp2 ()
+BEGIN
+ declare exit handler for sqlstate '42000' set @x2 = 1;
+ set @x2=0;
+ set @x=1;
+ SELECT '-1-', @x2, @x;
+ CALL sp1(1);
+ SELECT '-2-', @x2, @x;
+ set @x=2;
+END//
+delimiter ;//
+
+# Error: 1318 SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS) Message: Incorrect number of arguments for %s %s; expected %u, got %u
+--error 1318
+CALL sp1(1);
+CALL sp2();
+SELECT '-3-', @x2, @x;
+
+# cleanup 3.1.2.51
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.52:;
+--source include/show_msg.inc
+let $message=
+Ensure that an EXIT handler does not cause the execution of the stored procedure
+to terminate outside of its scope.;
+--source include/show_msg80.inc
+# tested also above in
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @x=0;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE sp2()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 2;
+ set @x2 = 1;
+ set @x =20;
+ SELECT '-1-', @x2, @x;
+ BEGIN
+ declare exit handler for sqlstate '42000' set @x2 = 11;
+ SELECT '-2-', @x2, @x;
+ CALL sp1(1);
+ SELECT '-3a', @x2, @x;
+ set @x=21;
+ SELECT '-3b', @x2, @x;
+ END;
+ set @x=22;
+ SELECT '-4-', @x2, @x;
+END//
+delimiter ;//
+
+CALL sp2();
+
+# cleanup 3.1.2.52
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.54:;
+--source include/show_msg.inc
+let $message=
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“01“ is always exactly equivalent in action to a handler with an SQLWARNING
+condition.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+DROP TABLE IF EXISTS temp;
+--enable_warnings
+
+CREATE TABLE temp( f1 CHAR, f2 CHAR);
+
+delimiter //;
+# 0 - without handler
+CREATE PROCEDURE sp0()
+BEGIN
+ set @done=0;
+ set @x=0;
+ insert into temp values('xxx', 'yy');
+ set @x=1;
+END//
+
+# 1st one with SQLSTATE + CONTINUE
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '01000' set @done = 1;
+ set @done=0;
+ set @x=0;
+ insert into temp values('xxx', 'yy');
+ set @x=1;
+END//
+
+# 2nd one with SQLWARNING + CONTINUE
+CREATE PROCEDURE sp2()
+BEGIN
+ declare continue handler for sqlwarning set @done = 1;
+ set @done=0;
+ set @x=0;
+ insert into temp values('xxx', 'yy');
+ set @x=1;
+END//
+
+# 3 with SQLSTATE + EXIT
+CREATE PROCEDURE sp3()
+BEGIN
+ declare exit handler for sqlstate '01000' set @done = 1;
+ set @done=0;
+ set @x=0;
+ insert into temp values('xxx', 'yy');
+ set @x=1;
+END//
+
+# 4 with SQLWARNING + EXIT
+CREATE PROCEDURE sp4()
+BEGIN
+ declare exit handler for sqlwarning set @done = 1;
+ set @done=0;
+ set @x=0;
+ insert into temp values('xxx', 'yy');
+ set @x=1;
+END//
+delimiter ;//
+
+INSERT INTO temp VALUES('0', NULL);
+CALL sp0();
+SELECT @done, @x;
+
+INSERT INTO temp VALUES('1', NULL);
+CALL sp1();
+SELECT @done, @x;
+
+INSERT INTO temp VALUES('2', NULL);
+CALL sp2();
+SELECT @done, @x;
+
+INSERT INTO temp VALUES('3', NULL);
+CALL sp3();
+SELECT @done, @x;
+
+INSERT INTO temp VALUES('4', NULL);
+CALL sp4();
+SELECT @done, @x;
+
+SELECT * FROM temp;
+
+# cleanup 3.1.2.54
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+DROP TABLE temp;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.56:;
+--source include/show_msg.inc
+let $message=
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+“02“ is always exactly equivalent in action to a handler with a NOT FOUND
+condition.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+# 0 - wihtout handler
+CREATE PROCEDURE sp0()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ SET @done = 0;
+ SET @x = 0;
+ OPEN cur1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 2;
+ CLOSE cur1;
+END//
+
+# 1st one with SQLSTATE + CONTINUE
+CREATE PROCEDURE sp1()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ declare continue handler for sqlstate '02000' set @done = 1;
+ SET @done = 0;
+ SET @x = 0;
+ OPEN cur1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 2;
+ CLOSE cur1;
+END//
+
+# 2nd one with NOT FOUND + CONTINUE
+CREATE PROCEDURE sp2()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ declare continue handler for not found set @done = 1;
+ SET @done = 0;
+ SET @x = 0;
+ OPEN cur1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 2;
+ CLOSE cur1;
+END//
+
+# 3 with SQLSTATE + EXIT
+CREATE PROCEDURE sp3()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ declare exit handler for sqlstate '02000' set @done = 1;
+ SET @done = 0;
+ SET @x = 0;
+ OPEN cur1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 2;
+ CLOSE cur1;
+END//
+
+# 4 with NOT FOUND + EXIT
+CREATE PROCEDURE sp4()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ declare exit handler for not found set @done = 1;
+ SET @done = 0;
+ SET @x = 0;
+ OPEN cur1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 1;
+ FETCH cur1 INTO f1_value;
+ SET @x = 2;
+ CLOSE cur1;
+END//
+delimiter ;//
+
+--error 1329
+CALL sp0();
+SELECT @done, @x;
+
+CALL sp1();
+SELECT @done, @x;
+
+CALL sp2();
+SELECT @done, @x;
+
+CALL sp3();
+SELECT @done, @x;
+
+CALL sp4();
+SELECT @done, @x;
+
+# cleanup 3.1.2.56
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.58:;
+--source include/show_msg.inc
+let $message=
+Ensure that a handler with a condition defined with an SQLSTATE that begins with
+anything other that “01“ or “02“ is always exactly equivalent in action to a
+handler with an SQLEXCEPTION condition.;
+--source include/show_msg80.inc
+
+# Error: 1339 SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND) Message: Case not found for CASE statement
+# Error: 1222 SQLSTATE: 21000 (ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT) Message: The used SELECT statements have a different number of columns
+# Error: 1326 SQLSTATE: 24000 (ER_SP_CURSOR_NOT_OPEN) Message: Cursor is not open
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp0;
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+# 0 - without handler
+CREATE PROCEDURE sp0()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cv INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ SET @x = 1;
+ CASE cv
+ WHEN 2 THEN SET @x = 2;
+ WHEN 3 THEN SET @x = 3;
+ END case;
+ SET @x = 4;
+ SELECT f1, f2 FROM t2
+ UNION
+ SELECT f1, f2,3 FROM t2;
+ SET @x = 5;
+ FETCH cur1 INTO f1_value;
+ SET @x = 6;
+END//
+
+# 1 - SQLSTATEs - CONTINUE
+CREATE PROCEDURE sp1()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cv INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ DECLARE continue HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+ DECLARE continue HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+ DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+ SET @x = 1;
+ CASE cv
+ WHEN 2 THEN SET @x = 2;
+ WHEN 3 THEN SET @x = 3;
+ END case;
+ SET @x = 4;
+ SELECT f1, f2 FROM t2
+ UNION
+ SELECT f1, f2,3 FROM t2;
+ SET @x = 5;
+ FETCH cur1 INTO f1_value;
+ SET @x = 6;
+END//
+
+# 2 - SQLEXCEPTION matches 2 of 3 conditions - CONTINUE
+CREATE PROCEDURE sp2()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cv INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ DECLARE continue HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+ DECLARE continue HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+ SET @x = 1;
+ CASE cv
+ WHEN 2 THEN SET @x = 2;
+ WHEN 3 THEN SET @x = 3;
+ END case;
+ SET @x = 4;
+ SELECT f1, f2 FROM t2
+ UNION
+ SELECT f1, f2,3 FROM t2;
+ SET @x = 5;
+ FETCH cur1 INTO f1_value;
+ SET @x = 6;
+END//
+
+# 3 - SQLSTATEs - EXIT
+CREATE PROCEDURE sp3()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cv INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ DECLARE EXIT HANDLER FOR SQLSTATE '20000' SELECT '20000' AS 'SQLSTATE';
+ DECLARE EXIT HANDLER FOR SQLSTATE '21000' SELECT '21000' AS 'SQLSTATE';
+ DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+ SET @x = 1;
+ CASE cv
+ WHEN 2 THEN SET @x = 2;
+ WHEN 3 THEN SET @x = 3;
+ END case;
+ SET @x = 4;
+ SELECT f1, f2 FROM t2
+ UNION
+ SELECT f1, f2,3 FROM t2;
+ SET @x = 5;
+ FETCH cur1 INTO f1_value;
+ SET @x = 6;
+END//
+
+# 4 - SQLEXCEPTION matches 2 of 3 conditions - EXIT
+CREATE PROCEDURE sp4()
+BEGIN
+ DECLARE f1_value CHAR(20);
+ DECLARE cv INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SELECT f1 FROM t2 LIMIT 1;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT 'SQLEXCEPTION' AS 'SQLSTATE';
+ DECLARE EXIT HANDLER FOR SQLSTATE '24000' SELECT '24000' AS 'SQLSTATE';
+ SET @x = 1;
+ CASE cv
+ WHEN 2 THEN SET @x = 2;
+ WHEN 3 THEN SET @x = 3;
+ END case;
+ SET @x = 4;
+ SELECT f1, f2 FROM t2
+ UNION
+ SELECT f1, f2,3 FROM t2;
+ SET @x = 5;
+ FETCH cur1 INTO f1_value;
+ SET @x = 6;
+ CLOSE cur1;
+END//
+delimiter ;//
+
+CALL sp0();
+SELECT '-0-', @x;
+
+CALL sp1();
+SELECT '-1-', @x;
+
+CALL sp2();
+SELECT '-2-', @x;
+
+CALL sp3();
+SELECT '-3-', @x;
+
+CALL sp4();
+SELECT '-4-', @x;
+
+# cleanup 3.1.2.58
+DROP PROCEDURE sp0;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+DROP PROCEDURE sp4;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.65:;
+--source include/show_msg.inc
+let $message=
+Ensure that FETCH <cursor name> returns the first row of the cursor_s result set
+the first time FETCH is executed, that it returns each subsequent row of the
+cursor_s result set each of the subsequent times FETCH is executed, and that it
+returns a NOT FOUND warning if it is executed after the last row of the cursor_s
+result set has already been fetched.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp;
+--enable_warnings
+
+CREATE TABLE temp(
+ cnt INT,
+ f1 CHAR(20),
+ f2 CHAR(20),
+ f3 INT,
+ f4 CHAR(20),
+ f5 INT);
+
+INSERT INTO temp VALUES(0, 'onip', 'abc', 8760, 'xyz', 10);
+
+# NOT used: declare continue handler for sqlstate '02000' set proceed=0;
+# --> warning is shown when procedure is executed.
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare proceed int default 1;
+ declare count integer default 1;
+ declare f1_value char(20);
+ declare f2_value char(20);
+ declare f5_value char(20);
+ declare f4_value integer;
+ declare f6_value integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3;
+ open cur1;
+ while proceed do
+ SELECT count AS 'loop';
+ fetch cur1 into f1_value, f2_value, f4_value, f5_value, f6_value;
+ insert into temp values (count, f1_value, f2_value, f4_value, f5_value, f6_value);
+ set count = count + 1;
+ END while;
+END//
+delimiter ;//
+
+--error 1329
+CALL sp1();
+
+SELECT * FROM temp;
+
+# cleanup 3.1.2.65
+DROP TABLE temp;
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.68:;
+--source include/show_msg.inc
+let $message=
+Ensure that FETCH <cursor name> fails with an appropriate error message if the
+number of columns to be fetched does not match the number of variables specified
+by the FETCH statement.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+delimiter //;
+--echo --> not enough columns in FETCH statement
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare newf1 char(20);
+ declare cur1 cursor for SELECT f1, f2 from t2 limit 10;
+ declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+ BEGIN
+ open cur1;
+ fetch cur1 into newf1;
+ SELECT newf1;
+ close cur1;
+ END;
+END//
+
+--echo --> too many columns in FETCH statement
+CREATE PROCEDURE sp2( )
+BEGIN
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare cur1 cursor for SELECT f1 from t2 limit 10;
+ declare continue handler for sqlstate '02000' SELECT 'HANDLER executed.' AS '';
+ BEGIN
+ open cur1;
+ fetch cur1 into newf1, newf2;
+ SELECT newf1, newf2;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+--echo --> not enough columns in FETCH statement
+--error 1328
+CALL sp1();
+
+--echo --> too many columns in FETCH statement
+--error 1328
+CALL sp2();
+
+# cleanup 3.1.2.68
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.75:;
+--source include/show_msg.inc
+let $message=
+Ensure that, for nested compound statements, a cursor that was declared and
+opened during an outer level of the statement is not closed when an inner level
+of a compound statement ends.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS temp1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) );
+
+#Error: 1329 SQLSTATE: 02000 (ER_SP_FETCH_NO_DATA) Message: No data to FETCH
+
+SELECT f1, f2, f4, f5 from t2;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare count integer;
+ declare from0 char(20);
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf5 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+ declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5;
+ open cur1;
+ open cur2;
+ BEGIN
+ declare continue handler for sqlstate '02000' set count = 1;
+ fetch cur1 into newf1, newf2, newf4, newf5;
+ SELECT '-1-', count, newf1, newf2, newf4, newf5;
+ insert into temp1 values ('cur1_out', newf1, newf2, newf4, newf5);
+ set count = 4;
+ BEGIN
+ while count > 0 do
+ fetch cur1 into newf1, newf2, newf4, newf5;
+ SELECT '-2-', count, newf1, newf2, newf4, newf5;
+ set count = count - 1;
+ END while;
+ SELECT '-3-', count, newf1, newf2, newf4, newf4;
+ END;
+ BEGIN
+ fetch cur1 into newf1, newf2, newf4, newf5;
+ SELECT '-4-', newf1, newf2, newf4, newf5;
+ insert into temp1 values ('cur1_in', newf1, newf2, newf4, newf5);
+ END;
+ fetch cur2 into newf1, newf2, newf4, newf5;
+ SELECT '-5-', newf1, newf2, newf4, newf5;
+ insert into temp1 values ('cur2', newf1, newf2, newf4, newf5);
+ close cur1;
+ END;
+ fetch cur2 into newf1, newf2, newf4, newf5;
+ SELECT '-6-', newf1, newf2, newf4, newf5;
+ close cur2;
+END//
+delimiter ;//
+
+CALL sp1();
+
+SELECT * from temp1;
+
+# cleanup 3.1.2.75
+DROP PROCEDURE sp1;
+drop table temp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.2.76:;
+--source include/show_msg.inc
+let $message=
+Ensure that all cursors operate asensitively, so that there is no concurrency
+conflict between cursors operating on the same, or similar, sets of results
+during execution of one or more stored procedures.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS temp1;
+drop table IF EXISTS temp2;
+--enable_warnings
+
+create table temp1( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+create table temp2( f0 char(10), cnt int, f1 char(20), f2 char(20), f3 date, f4 integer );
+
+delimiter //;
+CREATE PROCEDURE sp_inner( )
+BEGIN
+ declare proceed int default 1;
+ declare i_count integer default 20;
+ declare i_newf1 char(20);
+ declare i_newf2 char(20);
+ declare i_newf3 date;
+ declare i_newf4 integer;
+ declare i_newf11 char(20);
+ declare i_newf12 char(20);
+ declare i_newf13 date;
+ declare i_newf14 integer;
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4;
+ declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3;
+ declare continue handler for sqlstate '02000' set proceed=0;
+ open cur1;
+ open cur2;
+ set i_count = 10;
+ while proceed do
+ fetch cur1 into i_newf1, i_newf2, i_newf3, i_newf4;
+ IF proceed THEN
+ insert into temp1 values ('sp_inner', i_count, i_newf1, i_newf2, i_newf3, i_newf4);
+ fetch cur2 into i_newf11, i_newf12, i_newf13, i_newf14;
+ IF proceed THEN
+ insert into temp2 values ('sp_inner', i_count, i_newf11, i_newf12, i_newf13, i_newf14);
+ END IF;
+ END IF;
+ set i_count = i_count - 1;
+ END while;
+ close cur1;
+ close cur2;
+END//
+
+CREATE PROCEDURE sp_outer( )
+BEGIN
+ DECLARE proceed INT DEFAULT 1;
+ DECLARE o_count INTEGER DEFAULT 20;
+ DECLARE o_newf1 CHAR(20);
+ DECLARE o_newf2 CHAR(20);
+ DECLARE o_newf3 DATE;
+ DECLARE o_newf4 INTEGER;
+ DECLARE o_newf11 CHAR(20);
+ DECLARE o_newf12 CHAR(20);
+ DECLARE o_newf13 DATE;
+ DECLARE o_newf14 INTEGER;
+ DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+ DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5;
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0;
+ OPEN cur1;
+ OPEN cur2;
+ SET o_count = 1;
+ WHILE proceed DO
+ FETCH cur1 INTO o_newf1, o_newf2, o_newf3, o_newf4;
+ IF proceed THEN
+ INSERT INTO temp1 VALUES ('_sp_out_', o_count, o_newf1, o_newf2, o_newf3, o_newf4);
+ CALL sp_inner();
+ FETCH cur2 INTO o_newf11, o_newf12, o_newf13, o_newf14;
+ IF proceed THEN
+ INSERT INTO temp2 VALUES ('_sp_out_', o_count, o_newf11, o_newf12, o_newf13, o_newf14);
+ END IF;
+ END IF;
+ SET o_count = o_count + 1;
+ END WHILE;
+ CLOSE cur1;
+ CLOSE cur2;
+END//
+delimiter ;//
+
+CALL sp_outer();
+
+SELECT * FROM temp1;
+SELECT * FROM temp2;
+
+# cleanup 3.1.2.75
+DROP PROCEDURE sp_outer;
+DROP PROCEDURE sp_inner;
+DROP TABLE temp1;
+DROP TABLE temp2;
+
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc
new file mode 100755
index 00000000000..9ffa7d7f66c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc
@@ -0,0 +1,464 @@
+#### suite/funcs_1/storedproc/storedproc_03.inc
+#
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+# ==============================================================================
+# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
+#
+# 3.1.3 Syntax checks for the stored procedure-specific flow control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
+#
+#- 1. Ensure that all subclauses that should be supported are supported.
+#- 2. Ensure that all subclauses that should not be supported are disallowed with an appropriate error message.
+#- 3. Ensure that all supported subclauses are supported only in the correct order.
+#- 4. Ensure that an appropriate error message is returned if a subclause is out-of-order in a stored procedure definition.
+#- 5. Ensure that all subclauses that are defined to be mandatory are indeed required to be mandatory by the MySQL server and tools.
+#- 6. Ensure that any subclauses that are defined to be optional are indeed treated as optional by the MySQL server and tools.
+## 7. Ensure that the IF statement acts correctly for all variants, including cases where statements are nested.
+## 8. Ensure that the CASE statement acts correctly for all variants, including cases where statements are nested.
+## 9. Ensure that the LOOP statement acts correctly for all variants, including cases where statements are nested.
+#- 10. Ensure that the labels enclosing each LOOP statement must match.
+#- 11. Ensure that it is possible to put a beginning label at the start of a LOOP statement without also requiring an ending label at the end of the same statement.
+#- 12. Ensure that it is not possible to put an ending label at the end of a LOOP statement without also requiring a matching beginning label at the start of the same statement.
+#- 13. Ensure that every beginning label must end with a colon (:).
+#- 14. Ensure that every beginning label with the same scope must be unique.
+## 15. Ensure that the LEAVE statement acts correctly for all variants, including cases where statements are nested.
+## 16. Ensure that the ITERATE statement acts correctly for all variants, including cases where statements are nested.
+#- 17. Ensure that the ITERATE statement fails, with an appropriate error message, if it appears in any context other than within LOOP, REPEAT, or WHILE statements.
+## 18. Ensure that the REPEAT statement acts correctly for all variants, including cases where statements are nested.
+#- 19. Ensure that the labels enclosing each REPEAT statement must match.
+#- 20. Ensure that it is possible to put a beginning label at the start of a REPEAT statement without also requiring an ending label at the end of the same statement.
+#- 21. Ensure that it is not possible to put an ending label at the end of a REPEAT statement without also requiring a matching beginning label at the start of the same statement.
+#- 22. Ensure that every beginning label must end with a colon (:).
+#- 23. Ensure that every beginning label with the same scope must be unique.
+## 24. Ensure that the WHILE statement acts correctly for all variants, including cases where statements are nested.
+#- 25. Ensure that the labels enclosing each WHILE statement must match.
+#- 26. Ensure that it is possible to put a beginning label at the start of a WHILE statement without also requiring an ending label at the end of the same statement.
+#- 27. Ensure that it is not possible to put an ending label at the end of a WHILE statement without also requiring a matching beginning label at the start of the same statement.
+#- 28. Ensure that every beginning label must end with a colon (:).
+#- 29. Ensure that every beginning label with the same scope must be unique.
+## 30. Ensure that multiple cases of all possible combinations of the control flow statements, nested within multiple compound statements within a stored procedure, always act correctly and return the expected result.
+#
+# ==============================================================================
+let $message= Section 3.1.3 - Syntax checks for the stored procedure-specific flow
+control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:;
+--source include/show_msg80.inc
+
+#FIXME # 3.1.3: enhance syntax checks with very complicated checks
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.7:;
+--source include/show_msg.inc
+let $message=
+Ensure that the IF statement acts correctly for all variants, including cases
+where statements are nested.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp9;
+--enable_warnings
+
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+
+delimiter //;
+CREATE PROCEDURE sp9( action char(20), subaction char(20) )
+BEGIN
+ if action = 'action' then
+ if subaction = 'subaction' then
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction' , 1);
+ else
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 2);
+ END if;
+ else
+ if subaction = 'subaction'
+ then
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction' , 3);
+ elseif subaction = 'subaction1'
+ then
+ BEGIN
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values ('none', 'subaction1', 4);
+ END;
+ else
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 5);
+ END if;
+ END if;
+END//
+delimiter ;//
+
+CALL sp9( 'action', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=1;
+
+CALL sp9( 'temp', 'subaction' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=3;
+
+CALL sp9( 'temp', 'subaction1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=4;
+
+CALL sp9( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=2;
+
+CALL sp9( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=5;
+
+# cleanup 3.1.3.7
+DROP PROCEDURE sp9;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.8.:;
+--source include/show_msg.inc
+let $message=
+Ensure that the CASE statement acts correctly for all variants, including cases
+where statements are nested.;
+--source include/show_msg80.inc
+
+--disable_warnings
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp10;
+--enable_warnings
+
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+
+delimiter //;
+CREATE PROCEDURE sp10( action char(20), subaction char(20) )
+BEGIN
+ case action
+ when 'action' then
+ case
+ when subaction = 'subaction_1' then
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 1);
+ when subaction = 'subaction_2' then
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 2);
+ else
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 3);
+ END case;
+ else
+ case
+ when subaction = 'subaction_1' then
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_1' , 4);
+ when subaction = 'subaction_2' then
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_2' , 5);
+ else
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 6);
+ END case;
+ END case;
+END//
+delimiter ;//
+
+CALL sp10( 'action', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+CALL sp10( 'action', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+CALL sp10( 'temp', 'subaction_1' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+CALL sp10( 'temp', 'subaction_2' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+CALL sp10( 'action', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+CALL sp10( 'temp', 'temp' );
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+# cleanup 3.1.3.8
+DROP PROCEDURE sp10;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.9 + 3.1.3.15:;
+--source include/show_msg.inc
+let $message=
+09. Ensure that the LOOP statement acts correctly for all variants, including
+. cases where statements are nested.
+15. Ensure that the LEAVE statement acts correctly for all variants, including
+. cases where statements are nested.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp11;
+--enable_warnings
+
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+
+delimiter //;
+CREATE PROCEDURE sp11( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ label1: loop
+ if count2 > 3 then leave label1;
+ END if;
+ set count1 = 1;
+ label2: loop
+ if count1 > 4 then leave label2;
+ END if;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ set count1 = count1 + 1;
+ iterate label2;
+ END loop label2;
+ set count2 = count2 + 1;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+CALL sp11();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+# cleanup 3.1.3.9
+DROP PROCEDURE sp11;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.16:;
+--source include/show_msg.inc
+let $message=
+Ensure that the ITERATE statement acts correctly for all variants, including
+cases where statements are nested.
+(tests for this testcase are also included in other testcases);
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp31316;
+--enable_warnings
+
+delimiter //;
+
+# wrong label at iterate
+#Error: 1308 SQLSTATE: 42000 (ER_SP_LILABEL_MISMATCH) Message: %s with no matching label: %s
+--error 1308
+CREATE PROCEDURE sp31316( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ label1: loop
+ if count2 > 3 then leave label1;
+ END if;
+ set count1 = 1;
+ label2: loop
+ if count1 > 4 then leave label2;
+ END if;
+ insert into temp values( count1, count2);
+ set count1 = count1 + 1;
+ iterate label3;
+ END loop label2;
+ set count2 = count2 + 1;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+# cleanup 3.1.3.16
+#DROP PROCEDURE sp31316;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.18:;
+--source include/show_msg.inc
+let $message=
+Ensure that the REPEAT statement acts correctly for all variants, including
+cases where statements are nested.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp17;
+DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+--enable_warnings
+
+CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
+
+delimiter //;
+CREATE PROCEDURE sp17( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ repeat
+ set count1 = count1 + 1;
+ set count2 = 1;
+ label1: repeat
+ set count2 = count2 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ until count2 > 3
+ END repeat label1;
+ until count1 > 3
+ END repeat;
+END//
+delimiter ;//
+
+CALL sp17();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+# cleanup 3.1.3.18
+DROP PROCEDURE sp17;
+DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.24:;
+--source include/show_msg.inc
+let $message=
+Ensure that the WHILE statement acts correctly for all variants, including cases
+where statements are nested.;
+--source include/show_msg80.inc
+
+--disable_warnings
+drop table IF EXISTS res_t21;
+DROP PROCEDURE IF EXISTS sp21;
+--enable_warnings
+
+create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);
+insert into res_t21 values('ashwin', 'mokadam', 25);
+
+delimiter //;
+CREATE PROCEDURE sp21( )
+BEGIN
+ declare count1 integer default 0;
+ declare count2 integer default 0;
+ while count1 < 3 do
+ BEGIN
+ declare ithisissamevariablename int default 100;
+ SELECT ithisissamevariablename;
+ BEGIN
+ declare ithisissamevariablename int default 200;
+ SELECT ithisissamevariablename;
+ END;
+ set count2 = 0;
+ label1: while count2 < 3 do
+ BEGIN
+ declare count1 integer default 7;
+ set count2 = count2 + 1;
+ insert into res_t21 values( 'xyz' , 'pqr', count2);
+ label2: while count1 < 10 do
+ set count1 = count1 + 1;
+ insert into res_t21 values( 'xyz' , 'pqr', count1);
+ END while label2;
+ END;
+ END while label1;
+ set count1 = count1 + 1;
+ END;
+ END while;
+END//
+delimiter ;//
+
+CALL sp21();
+SELECT * from res_t21;
+
+# cleanup 3.1.3.
+DROP PROCEDURE sp21;
+drop table res_t21;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.3.30:;
+--source include/show_msg.inc
+let $message=
+Ensure that multiple cases of all possible combinations of the control flow
+statements, nested within multiple compound statements within a stored
+procedure, always act correctly and return the expected result.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS res_tbl;
+DROP PROCEDURE IF EXISTS sp31330;
+--enable_warnings
+
+create table res_tbl (f1 int, f2 text, f3 blob, f4 date,
+ f5 set('one', 'two', 'three', 'four', 'five') default 'one');
+
+delimiter //;
+#FIXME: can be enhanced more and more ...
+CREATE PROCEDURE sp31330 (path int)
+BEGIN
+ declare count int default 1;
+ declare var1 text;
+ declare var2 blob;
+ declare var3 date;
+ declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';
+ case
+ when path=1 then
+ set var3 = '2000-11-09';
+ set var1 = 'flowing through case 1';
+ label1: loop
+ if count > 5 then
+ if var4=1000 then
+ set var2 = 'exiting out of case 1 - invalid SET';
+ END if;
+ if var4='two' then
+ set var2 = 'exiting out of case 1';
+ END if;
+ insert into res_tbl values (1, var1, var2, var3, (count-2));
+ leave label1;
+ elseif count = 5 then
+ set count= count + 2;
+ set var4='two';
+ iterate label1;
+ else
+ set count= count + 1;
+ END if;
+ set var4='one';
+ END loop label1;
+ when path=2 then
+ set var3 = '1989-11-09';
+ set var1 = 'flowing through case 2';
+ set @count3=0;
+ label2: repeat
+ set count=count + 1;
+ set @count2=1;
+ while @count2 <= 5 do
+ set @count2 = @count2 + 1;
+ END while;
+ SELECT @count2;
+ set @count3=@count3 + @count2;
+ until count > 5
+ END repeat label2;
+ set var2 = 'exiting out of case 2';
+ set var4 = count-3;
+ SELECT @count3;
+ insert into res_tbl values (2, var1, var2, var3, var4);
+ ELSE BEGIN
+ set @error_opt='undefined path specified';
+ SELECT @error_opt;
+ END;
+ END case;
+END//
+delimiter ;//
+
+#Error: 1318 SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS) Message: Incorrect number of arguments for %s %s; expected %u, got %u
+--error 1318
+CALL sp31330();
+
+CALL sp31330(1);
+SELECT * from res_tbl;
+
+CALL sp31330(2);
+SELECT * from res_tbl;
+
+CALL sp31330(4);
+
+# cleanup 3.1.3.30
+DROP PROCEDURE sp31330;
+drop table res_tbl;
+
+
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc
new file mode 100755
index 00000000000..e2b9e846b97
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc
@@ -0,0 +1,452 @@
+#### suite/funcs_1/storedproc/storedproc_06.inc
+#
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+# ==============================================================================
+# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
+#
+# 3.1.6 Privilege checks:
+#
+# 1. Ensure that no user may create a stored procedure without the GRANT CREATE ROUTINE privilege.
+# 2. Ensure that root always has the GRANT CREATE ROUTINE privilege.
+# 3. Ensure that a user with the GRANT CREATE ROUTINE privilege can always create both a procedure and a function, on any appropriate database.
+# 4. Ensure that the default security provision of a stored procedure is SQL SECURITY DEFINER.
+# 5. Ensure that a stored procedure defined with SQL SECURITY DEFINER can be called/executed by any user, using only the privileges (including database access privileges) associated with the user who created the stored procedure.
+# 6. Ensure that a stored procedure defined with SQL SECURITY INVOKER can be called/executed by any user, using only the privileges (including database access privileges) associated with the user executing the stored procedure.
+#
+# ==============================================================================
+let $message= Section 3.1.6 - Privilege Checks:;
+--source include/show_msg80.inc
+
+USE db_storedproc_1;
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.6.1:
+ -----------------
+Ensure that no user may create a stored procedure without the GRANT CREATE
+ROUTINE privilege.;
+--source include/show_msg80.inc
+
+create user 'user_1'@'localhost';
+
+grant all on db_storedproc_1.* to 'user_1'@'localhost';
+revoke create routine on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user1a, localhost, user_1, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+USE db_storedproc_1;
+
+delimiter //;
+--error 1044
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+ SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+delimiter ;//
+
+disconnect user1a;
+
+# add privilege again and check
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user1b, localhost, user_1, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+USE db_storedproc_1;
+
+delimiter //;
+CREATE PROCEDURE sp1(v1 char(20))
+BEGIN
+ SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+delimiter ;//
+disconnect user1b;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.6.2:
+ -----------------
+Ensure that root always has the GRANT CREATE ROUTINE privilege.
+(checked by other testscases);
+--source include/show_msg80.inc
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.6.3:
+ -----------------
+Ensure that a user with the GRANT CREATE ROUTINE privilege can always create
+both a procedure and a function, on any appropriate database.
+--source include/show_msg80.inc
+
+
+create user 'user_1'@'localhost';
+
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+# disconnect default;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user2, localhost, user_1, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp3(v1 char(20))
+BEGIN
+ SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+delimiter ;//
+
+delimiter //;
+CREATE FUNCTION fn1(v1 int) returns int
+BEGIN
+ return v1;
+END//
+delimiter ;//
+
+disconnect user2;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+drop user 'user_1'@'localhost';
+DROP PROCEDURE sp3;
+DROP FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.6.4:
+ -----------------
+Ensure that the default security provision of a stored procedure is SQL SECURITY
+DEFINER.;
+--source include/show_msg80.inc
+
+CREATE USER 'user_1'@'localhost';
+
+grant update on db_storedproc_1.t6 to 'user_1'@'localhost';
+grant execute on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+USE db_storedproc_1;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp4(v1 char(20))
+BEGIN
+ SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
+END//
+delimiter ;//
+
+#disconnect default;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user3, localhost, user_1, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+USE db_storedproc_1;
+CALL sp4('a');
+
+--vertical_results
+SELECT SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE,
+ ROUTINE_BODY, ROUTINE_DEFINITION, IS_DETERMINISTIC,
+ SQL_DATA_ACCESS, SECURITY_TYPE, SQL_MODE, ROUTINE_COMMENT
+FROM information_schema.routines
+ WHERE routine_schema LIKE 'db_sto%';
+--horizontal_results
+
+disconnect user3;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+DROP PROCEDURE sp4;
+DROP USER 'user_1'@'localhost';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.6.5:
+ -----------------
+Ensure that a stored procedure defined with SQL SECURITY DEFINER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user who created the stored procedure.;
+--source include/show_msg80.inc
+
+USE db_storedproc_1;
+CREATE TABLE t3165 ( c1 char(20), c2 char(20), c3 date);
+INSERT INTO t3165 VALUES ('inserted', 'outside of SP', NULL);
+
+# creates procedures
+create user 'user_1'@'localhost';
+
+#executes procedure
+create user 'user_2'@'localhost';
+
+grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
+grant SELECT on db_storedproc_1.* to 'user_2'@'localhost';
+grant execute on db_storedproc_1.* to 'user_2'@'localhost';
+flush privileges;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user5_1, localhost, user_1, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+delimiter //;
+CREATE PROCEDURE sp5_s_i () sql security definer
+BEGIN
+ SELECT * from db_storedproc_1.t3165;
+ insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_s_i', 1000);
+END//
+
+CREATE PROCEDURE sp5_sel () sql security definer
+BEGIN
+ SELECT * from db_storedproc_1.t3165;
+END//
+
+CREATE PROCEDURE sp5_ins () sql security definer
+BEGIN
+ insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_ins', 1000);
+END//
+delimiter ;//
+
+disconnect user5_1;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user5_2, localhost, user_2, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+--error 1142
+CALL sp5_s_i();
+--error 1142
+CALL sp5_ins();
+--error 1142
+CALL sp5_sel();
+
+# now 'add' INSERT to DEFINER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+--error 1142
+CALL sp5_sel();
+grant insert on db_storedproc_1.* to 'user_1'@'localhost';
+flush privileges;
+
+connection user5_2;
+--source suite/funcs_1/include/show_connection.inc
+--error 1142
+CALL sp5_s_i();
+CALL sp5_ins();
+--error 1142
+CALL sp5_sel();
+
+# now 'add' SELECT to DEFINER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+--error 1142
+CALL sp5_sel();
+grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
+#grant execute on db_storedproc_1.* to 'user_2'@'localhost';
+flush privileges;
+
+connection user5_2;
+--source suite/funcs_1/include/show_connection.inc
+CALL sp5_s_i();
+CALL sp5_ins();
+CALL sp5_sel();
+
+# now revoke INSERT FROM DEFINER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+REVOKE INSERT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+connection user5_2;
+--source suite/funcs_1/include/show_connection.inc
+--error 1142
+CALL sp5_s_i();
+--error 1142
+CALL sp5_ins();
+CALL sp5_sel();
+
+# now revoke SELECT FROM DEFINER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+REVOKE SELECT on db_storedproc_1.* from 'user_1'@'localhost';
+flush privileges;
+
+connection user5_2;
+--source suite/funcs_1/include/show_connection.inc
+--error 1142
+CALL sp5_s_i();
+--error 1142
+CALL sp5_ins();
+--error 1142
+CALL sp5_sel();
+
+# cleanup
+disconnect user5_2;
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+DROP PROCEDURE sp5_s_i;
+DROP PROCEDURE sp5_sel;
+DROP PROCEDURE sp5_ins;
+DROP TABLE t3165;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.6.6:
+ -----------------
+Ensure that a stored procedure defined with SQL SECURITY INVOKER can be
+called/executed by any user, using only the privileges (including database
+access privileges) associated with the user executing the stored procedure.;
+--source include/show_msg80.inc
+
+USE db_storedproc_1;
+CREATE TABLE t3166 ( c1 char(30) );
+INSERT INTO db_storedproc_1.t3166 VALUES ('inserted outside SP');
+
+# DEFINER
+create user 'user_1'@'localhost';
+
+# INVOKER
+create user 'user_2'@'localhost';
+
+GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc_1.* TO 'user_2'@'localhost';
+GRANT EXECUTE ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user6_1, localhost, user_1, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+delimiter //;
+CREATE PROCEDURE sp3166_s_i () SQL SECURITY INVOKER
+BEGIN
+ SELECT * from db_storedproc_1.t3166;
+ insert into db_storedproc_1.t3166 values ('inserted from sp3166_s_i');
+END//
+
+CREATE PROCEDURE sp3166_sel () SQL SECURITY INVOKER
+BEGIN
+ SELECT * from db_storedproc_1.t3166;
+END//
+
+CREATE PROCEDURE sp3166_ins () SQL SECURITY INVOKER
+BEGIN
+ insert into db_storedproc_1.t3166 values ('inserted from sp3166_ins');
+END//
+delimiter ;//
+
+disconnect user6_1;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user6_2, localhost, user_2, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+
+--error 1142
+CALL sp3166_s_i();
+--error 1142
+CALL sp3166_ins();
+CALL sp3166_sel();
+
+# now 'add' INSERT to INVOKER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+CALL sp3166_sel();
+GRANT INSERT ON db_storedproc_1.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+disconnect user6_2;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user6_3, localhost, user_2, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+CALL sp3166_s_i();
+CALL sp3166_ins();
+CALL sp3166_sel();
+disconnect user6_3;
+
+# now 'remove' SELECT from INVOKER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+CALL sp3166_sel();
+REVOKE SELECT ON db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user6_4, localhost, user_2, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+--error 1142
+CALL sp3166_s_i();
+CALL sp3166_ins();
+--error 1142
+CALL sp3166_sel();
+disconnect user6_4;
+
+# now 'remove' EXECUTE FROM INVOKER
+connection default;
+CALL sp3166_s_i();
+--source suite/funcs_1/include/show_connection.inc
+REVOKE EXECUTE on db_storedproc_1.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user6_5, localhost, user_2, , db_storedproc_1);
+--source suite/funcs_1/include/show_connection.inc
+--error 1370
+CALL sp3166_s_i();
+--error 1370
+CALL sp3166_ins();
+--error 1370
+CALL sp3166_sel();
+disconnect user6_5;
+
+# cleanup
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+DROP PROCEDURE sp3166_s_i;
+DROP PROCEDURE sp3166_sel;
+DROP PROCEDURE sp3166_ins;
+DROP TABLE t3166;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc
new file mode 100755
index 00000000000..74ef7f4fbed
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc
@@ -0,0 +1,118 @@
+#### suite/funcs_1/storedproc/storedproc_07.inc
+#
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+# ==============================================================================
+# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
+#
+# 3.1.7 SQL mode checks:
+#
+# 1. Ensure that the sql_mode setting in effect at the time a stored procedure is created is the same setting under which the stored procedure runs when it is called/executed.
+# 2. Ensure that if the sql_mode setting is changed when a stored procedure is run, that the original setting is restored as soon as the stored procedure execution is complete.
+#
+# ==============================================================================
+let $message= Section 3.1.7 - SQL mode checks:;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.7.1:
+ -----------------
+Ensure that the sql_mode setting in effect at the time a stored procedure is
+created is the same setting under which the stored procedure runs when it is
+called/executed.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP TABLE IF EXISTS temp_tbl;
+DROP TABLE IF EXISTS result;
+--enable_warnings
+
+CREATE TABLE temp_tbl (f1 tinyint);
+CREATE TABLE result (f1 text(200), f2 char(20));
+
+set @@sql_mode='traditional';
+SHOW VARIABLES LIKE 'sql_mode';
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare a tinyint;
+ declare count_ int default 1;
+ declare continue handler for sqlstate '22003' set count_=1000;
+ SHOW VARIABLES LIKE 'sql_mode';
+ SELECT @@sql_mode into @cur_val_sql_mode;
+ insert into temp_tbl values (1000);
+ if count_ = 1000 THEN
+ 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//
+delimiter ;//
+
+SHOW CREATE PROCEDURE sp1;
+
+set @@sql_mode='';
+SHOW VARIABLES LIKE 'sql_mode';
+
+CALL sp1();
+SELECT * from result;
+
+SHOW VARIABLES LIKE 'sql_mode';
+SELECT @@sql_mode;
+
+# cleanup
+SET @@sql_mode='TRADITIONAL';
+DROP PROCEDURE sp1;
+DROP TABLE temp_tbl;
+DROP TABLE result;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.7.2:
+ -----------------
+Ensure that if the sql_mode setting is changed when a stored procedure is run,
+that the original setting is restored as soon as the stored procedure execution
+is complete.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+--echo ... show initial value
+SHOW VARIABLES LIKE 'sql_mode';
+
+delimiter //;
+CREATE PROCEDURE sp2()
+BEGIN
+ SET @@sql_mode='MAXDB';
+ SHOW VARIABLES LIKE 'sql_mode';
+END//
+delimiter ;//
+
+SHOW CREATE PROCEDURE sp2;
+--echo ... show value prior calling procedure
+SHOW VARIABLES LIKE 'sql_mode';
+
+--echo ... call procedure that changes sql_mode
+CALL sp2();
+
+--echo ... check whether old value is re-set
+SHOW VARIABLES LIKE 'sql_mode';
+
+# cleanup
+DROP PROCEDURE sp2;
+
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc
new file mode 100755
index 00000000000..9a693c5b96f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc
@@ -0,0 +1,118 @@
+#### suite/funcs_1/storedproc/storedproc_08.inc
+#
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+# ==============================================================================
+# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
+#
+# 3.1.8 SHOW statement checks:
+#
+#- 1. Ensure that the definition of a procedure is properly recorded and displayed when a SHOW CREATE PROCEDURE or SHOW CREATE PROCEDURE STATUS statement is executed.
+#- 2. Ensure that the definition of a procedure is not displayed when a SHOW CREATE FUNCTION or SHOW CREATE FUNCTION STATUS statement is executed.
+#- 3. Ensure that an attempt to execute SHOW CREATE PROCEDURE or SHOW CREATE PROCEDURE STATUS, with the name of a non-existent procedure, fails with an appropriate error message.
+#- 4. Ensure that an attempt to execute SHOW CREATE PROCEDURE or SHOW CREATE PROCEDURE STATUS, with the name of a function, fails with an appropriate error message.
+#- 5. Ensure that the definition of a function is properly recorded and displayed when a SHOW CREATE FUNCTION or SHOW CREATE FUNCTION STATUS statement is executed.
+#- 6. Ensure that the definition of a function is not displayed when a SHOW CREATE PROCEDURE or SHOW CREATE PROCEDURE STATUS statement is executed.
+#- 7. Ensure that an attempt to execute SHOW CREATE FUNCTION or SHOW CREATE FUNCTION STATUS, with the name of a non-existent function, fails with an appropriate error message.
+#- 8. Ensure that an attempt to execute SHOW CREATE FUNCTION or SHOW CREATE FUNCTION STATUS, with the name of a procedure, fails with an appropriate error message.
+## 9. Ensure that all stored procedure changes made with ALTER PROCEDURE or ALTER FUNCTION are properly recorded and displayed when a SHOW CREATE PROCEDURE or SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE FUNCTION STATUS statement (respectively) is executed.
+#- 10. Ensure that, when a stored procedure is dropped, its definition no longer appears when a SHOW CREATE PROCEDURE or SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE FUNCTION STATUS statement (respectively) is executed.
+#
+# ==============================================================================
+let $message= Section 3.1.8 - SHOW statement checks:;
+--source include/show_msg80.inc
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.8.9:;
+--source include/show_msg.inc
+let $message=
+Ensure that all stored procedure changes made with ALTER PROCEDURE or ALTER
+FUNCTION are properly recorded and displayed when a SHOW CREATE PROCEDURE or
+SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE
+FUNCTION STATUS statement (respectively) is executed.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn_1;
+DROP FUNCTION IF EXISTS fn_2;
+DROP PROCEDURE IF EXISTS sp_1;
+DROP PROCEDURE IF EXISTS sp_2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp_1 (i1 int)
+BEGIN
+ set @x=i1;
+END//
+
+CREATE PROCEDURE sp_2 (i1 int) SQL SECURITY INVOKER COMMENT 'created with INVOKER'
+BEGIN
+ set @x=i1;
+END//
+
+CREATE FUNCTION fn_1 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns year
+BEGIN
+ set @x=i1;
+ set @y=@x;
+ return i4;
+END//
+
+CREATE FUNCTION fn_2 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+ RETURNS YEAR
+ SQL SECURITY INVOKER
+ COMMENT 'created with INVOKER'
+BEGIN
+ set @x=i1;
+ set @y=@x;
+ return i4;
+END//
+delimiter ;//
+
+--source suite/funcs_1/storedproc/storedproc_08_show.inc
+
+let $message= ... now change some stuff:;
+--source include/show_msg.inc
+# some of the changes might be 'strange' here, but they are used here ONLY to
+# check that the changes are recorded / showd correct
+ALTER PROCEDURE sp_1 SQL SECURITY INVOKER;
+ALTER PROCEDURE sp_1 COMMENT 'new comment, SP changed to INVOKER';
+
+ALTER PROCEDURE sp_2 SQL SECURITY DEFINER;
+ALTER PROCEDURE sp_2 DROP COMMENT;
+ALTER PROCEDURE sp_2 COMMENT 'SP changed to DEFINER';
+ALTER PROCEDURE sp_2 READS SQL DATA;
+
+ALTER FUNCTION fn_1 SQL SECURITY INVOKER;
+ALTER FUNCTION fn_1 COMMENT 'new comment, FN changed to INVOKER';
+ALTER FUNCTION fn_1 NO SQL;
+
+ALTER FUNCTION fn_2 SQL SECURITY DEFINER;
+ALTER FUNCTION fn_2 COMMENT 'FN changed to DEFINER';
+ALTER FUNCTION fn_2 MODIFIES SQL DATA;
+
+--source suite/funcs_1/storedproc/storedproc_08_show.inc
+
+
+let $message= ... change back to default and check result:;
+--source include/show_msg.inc
+ALTER FUNCTION fn_2 CONTAINS SQL;
+--source suite/funcs_1/storedproc/storedproc_08_show.inc
+
+
+# cleanup 3.1.8.9
+let $message= ... cleanup;
+--source include/show_msg.inc
+DROP FUNCTION fn_1;
+DROP FUNCTION fn_2;
+DROP PROCEDURE sp_1;
+
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc
new file mode 100755
index 00000000000..962d9242675
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc
@@ -0,0 +1,30 @@
+#### suite/funcs_1/storedproc/storedproc_08_show.inc
+#
+# used from .../storedproc_08.inc to show all created / altered routines
+
+let $message= ... now check what is stored:;
+--source include/show_msg.inc
+
+--vertical_results
+
+#--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+
+--replace_column 16 <modified> 17 <created>
+SELECT * FROM information_schema.routines;
+
+
+SHOW CREATE FUNCTION fn_1;
+SHOW CREATE FUNCTION fn_2;
+#SHOW CREATE FUNCTION fn_2b;
+
+SHOW CREATE PROCEDURE sp_1;
+SHOW CREATE PROCEDURE sp_2;
+
+
+--replace_column 5 <modified> 6 <created>
+SHOW FUNCTION STATUS LIKE 'fn_%';
+
+--replace_column 5 <modified> 6 <created>
+SHOW PROCEDURE STATUS LIKE 'sp_%';
+
+--horizontal_results
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc
new file mode 100755
index 00000000000..d7b0a370a82
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc
@@ -0,0 +1,288 @@
+#### suite/funcs_1/storedproc/storedproc_10.inc
+#
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+# ==============================================================================
+# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
+#
+# 3.1.10 CALL checks:
+#
+## 1. Ensure that a properly defined procedure can always be called, assuming the appropriate privileges exist.
+#- 2. Ensure that a procedure cannot be called if the appropriate privileges do not exist.
+## 3. Ensure that a function can never be called.
+## 4. Ensure that a properly defined function can always be executed, assuming the appropriate privileges exist.
+#- 5. Ensure that a function cannot be executed if the appropriate privileges do not exist.
+## 6. Ensure that a procedure can never be executed.
+## 7. Ensure that the ROW_COUNT() SQL function always returns the correct number of rows affected by the execution of a stored procedure.
+## 8. Ensure that the mysql_affected_rows() C API function always returns the correct number of rows affected by the execution of a stored procedure.
+#
+# ==============================================================================
+let $message= Section 3.1.10 - CALL checks:;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.10.2 + 3.1.10.5:;
+--source include/show_msg.inc
+let $message=
+2. Ensure that a procedure cannot be called if the appropriate privileges do not
+ exist.
+5. Ensure that a function cannot be executed if the appropriate privileges do
+ not exist.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp31102;
+DROP FUNCTION IF EXISTS fn31105;
+--enable_warnings
+
+# DEFINER
+create user 'user_1'@'localhost';
+# INVOKER
+create user 'user_2'@'localhost';
+
+GRANT CREATE ROUTINE ON db_storedproc.* TO 'user_1'@'localhost';
+GRANT SELECT ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user2_1, localhost, user_1, , db_storedproc);
+--source suite/funcs_1/include/show_connection.inc
+
+delimiter //;
+CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER
+BEGIN
+ SELECT * FROM db_storedproc.t1 LIMIT 1;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE FUNCTION fn31105(n INT) RETURNS INT
+ BEGIN
+ DECLARE res INT;
+ SET res = n * n;
+ RETURN res;
+END//
+delimiter ;//
+
+disconnect user2_1;
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user2_2, localhost, user_2, , db_storedproc);
+--source suite/funcs_1/include/show_connection.inc
+
+# no privileges exist
+--error 1370
+CALL sp31102();
+SELECT fn31105( 9 );
+
+# now 'add' EXECUTE to INVOKER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+# root can execute ...
+CALL sp31102();
+SELECT fn31105( 9 );
+GRANT EXECUTE ON db_storedproc.* TO 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+disconnect user2_2;
+
+# new connection
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user2_3, localhost, user_2, , db_storedproc);
+--source suite/funcs_1/include/show_connection.inc
+CALL sp31102();
+SELECT fn31105( 9 );
+disconnect user2_3;
+
+# now 'remove' SELECT from INVOKER
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
+FLUSH PRIVILEGES;
+
+# root can still execute
+CALL sp31102();
+SELECT fn31105( 9 );
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (user2_4, localhost, user_2, , db_storedproc);
+--source suite/funcs_1/include/show_connection.inc
+CALL sp31102();
+SELECT fn31105( 9 );
+disconnect user2_4;
+
+# cleanup
+connection default;
+
+--source suite/funcs_1/include/show_connection.inc
+DROP PROCEDURE sp31102;
+DROP FUNCTION fn31105;
+DROP USER 'user_1'@'localhost';
+DROP USER 'user_2'@'localhost';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.10.3:;
+--source include/show_msg.inc
+let $message=
+Ensure that a function can never be called.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1(a int) returns int
+BEGIN
+ set @b = 0.9 * a;
+ return @b;
+END//
+delimiter ;//
+
+--error 1305
+CALL fn1();
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.10.6:;
+--source include/show_msg.inc
+let $message=
+Ensure that a procedure can never be executed.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ SELECT * from t10;
+END//
+delimiter ;//
+
+--error 1305
+ SELECT sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.10.7:;
+--source include/show_msg.inc
+let $message=
+Ensure that the ROW_COUNT() SQL function always returns the correct number of
+rows affected by the execution of a stored procedure.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp_ins_1;
+DROP PROCEDURE IF EXISTS sp_ins_3;
+DROP PROCEDURE IF EXISTS sp_upd;
+DROP PROCEDURE IF EXISTS sp_ins_upd;
+--enable_warnings
+
+CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT);
+INSERT INTO temp SELECT * FROM t10;
+
+delimiter //;
+#FIXME: add to proc: SELECT row_count() 'ins';
+CREATE PROCEDURE sp_ins_1()
+BEGIN
+ INSERT INTO temp VALUES ('abc', 'abc', '20051003', 100, 'uvw', 1000);
+END//
+
+
+#FIXME: add to proc: SELECT row_count() 'ins_3';
+CREATE PROCEDURE sp_ins_3()
+BEGIN
+ INSERT INTO temp VALUES ('abc', 'xyz', '19490523', 100, 'uvw', 1000);
+ INSERT INTO temp VALUES ('abc', 'xyz', '1989-11-09', 100, 'uvw', 1000);
+ INSERT INTO temp VALUES ('abc', 'xyz', '2005-10-24', 100, 'uvw', 1000);
+END//
+
+# FIXME: add to proc: SELECT row_count() AS 'updated';
+CREATE PROCEDURE sp_upd()
+BEGIN
+ UPDATE temp SET temp.f1 = 'updated' WHERE temp.f1 ='abc';
+END//
+
+# FIXME: use commented proc
+# CREATE PROCEDURE sp_ins_upd()
+# BEGIN
+# BEGIN
+# INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000);
+# INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000);
+# INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000);
+# INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000);
+# END;
+# SELECT row_count() AS 'insert "qwe"';
+# SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1;
+# UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc';
+# SELECT row_count() AS 'update "qwe" AND "abc"';
+# END//
+CREATE PROCEDURE sp_ins_upd()
+BEGIN
+ BEGIN
+ INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000);
+ INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000);
+ INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000);
+ INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000);
+ END;
+ SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1;
+ UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc';
+END//
+delimiter ;//
+
+CALL sp_ins_1();
+SELECT row_count();
+SELECT * FROM temp;
+
+CALL sp_ins_3();
+#FIXME: check is 1 correct here? I expect 3 for 3 inserted rows inside the procedure
+SELECT row_count();
+SELECT * FROM temp;
+
+CALL sp_upd();
+SELECT row_count();
+SELECT * FROM temp;
+
+#FIXME: check is 3 correct here? I expect 7 for 4 inserted and then 3 updated rows inside the procedure
+CALL sp_ins_upd();
+SELECT row_count();
+SELECT * FROM temp;
+
+# cleanup
+DROP PROCEDURE sp_ins_1;
+DROP PROCEDURE sp_ins_3;
+DROP PROCEDURE sp_upd;
+DROP PROCEDURE sp_ins_upd;
+DROP TABLE temp;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 3.1.10.8:;
+--source include/show_msg.inc
+let $message=
+Ensure that the mysql_affected_rows() C API function always returns the correct
+number of rows affected by the execution of a stored procedure.;
+--source include/show_msg80.inc
+
+#FIXME: 3.1.10.8: to be added later.
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_master.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_master.inc
new file mode 100644
index 00000000000..b88410b83f4
--- /dev/null
+++ b/mysql-test/suite/funcs_1/storedproc/storedproc_master.inc
@@ -0,0 +1,29346 @@
+#### suite/funcs_1/storedproc/storedproc_master.inc
+#
+--enable_query_log
+
+let $message= .
+ . IMPORTANT NOTICE:
+ . -----------------
+ .
+ . FIXME: The <engine>_storedproc.result files are still NOT CHECKED
+ . for correctness!
+ .
+ . FIXME: Several tests are affected by known problems around DECIMAL
+ . FIXME: and NUMERIC that needs to be checked again after WL#2984
+ . FIXME: has been completed. Some of them are marked in the result.
+ .
+ . This .result file has been checked OK with Linux 5.0.23-bk,
+ . ChangeSet@1.2211, 2006-06-28 10:11:43-07:00.
+ .
+ . This file has been saved although it might contain failures / wrong
+ . results to be able to detect _new_ differences in the behaviour.
+ . Hopefully the remaining checks can be made soon.
+ .;
+--source include/show_msg80.inc
+
+#FIXME-START-------------------------------------------------------------------
+#
+# remove this section prior releasing the test, then we may stop at the first
+# error we get ('passed' or 'not passed' - that's the question).
+--disable_abort_on_error
+
+ # having ALWAYS a .reject from the changing TIME makes it easier to work with
+ # the GUI diff program until the testcase is finished for pushing.
+ #
+ # let $message= FIXME: Show some information when / where the .result has been created;
+ # --source include/show_msg.inc
+ --vertical_results
+ # SELECT version(), @@version_compile_os AS 'vers_comp_os', current_date, current_time;
+
+ let $message= FIXME: There are subtests that are switched off due to known bugs:;
+ --source include/show_msg.inc
+ #set a variable here to be able to switch all crashing sub tests with ONE change HERE.
+ #change the corresponding variable to '1' to enable the crashing parts.
+ --disable_query_log
+
+ let $check_wl2984= 0;
+ eval SELECT $check_wl2984 AS 'WL#2984: DECIMAL and NUMERIC problems with differences on some machines';
+
+ --horizontal_results
+ --enable_query_log
+
+# As long as
+# Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+# is not fixed, we must switch the ps-protocol for some statements off.
+# If this bug is fixed, please
+# 1. set the following variable to 0
+# 2. check, if the test passes
+# 3. remove the workarounds
+let $have_bug_11589= 1;
+if ($have_bug_11589)
+{
+ let $message= There are some statements where the ps-protocol is switched off.
+ Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill;
+ --source include/show_msg80.inc
+}
+
+#
+#FIXME-END---------------------------------------------------------------------
+
+
+# prepare a variable to be able to suppress machine dependant diffs
+#let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host LIKE "%\%" AND host NOT In ("localhost", "127.0.0.1", "%")`;
+# can be used in: --replace_result $SERVER_NAME <SERVER_NAME>
+
+# ------------------------------------------------------------------------------
+--source suite/funcs_1/storedproc/load_sp_tb.inc
+
+
+# ==============================================================================
+let $message= Section 3.1.1 - Syntax checks for the CREATE PROCEDURE, CREATE
+FUNCTION, ALTER PROCEDURE, ALTER FUNCTION, DROP PROCEDURE, DROP FUNCTION, SHOW
+CREATE PROCEDURE, SHOW CREATE FUNCTION, SHOW CREATE PROCEDURE STATUS, SHOW
+CREATE FUNCTION STATUS, and CALL statements:;
+--source include/show_msg80.inc
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.1:
+ ---------------
+ Ensure that all clauses that should be supported are supported
+ CREATE PROCEDURE;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+--enable_warnings
+
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934 (f1 char(20) )
+ SELECT * from t1 where f2 = f1;
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934('aaaa');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( f1 tinytext ) language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+ set @v1 = f1;
+ SELECT @v1, @v1;
+END//
+delimiter ;//
+
+CALL sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 binary ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ set @v1 = f1;
+ SELECT @v1;
+END//
+delimiter ;//
+
+CALL sp1( 34 );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 blob ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ set @v1 = f1;
+ SELECT @v1;
+END//
+delimiter ;//
+
+CALL sp1( 34 );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 int ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set @v1 = f1;
+ SELECT @v1;
+END//
+delimiter ;//
+
+CALL sp1( 34 );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: SP definition accepted with m>60 in DECIMAL(m,n)
+#FIXME --error 4711
+CREATE PROCEDURE sp1( f1 decimal(256, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set @v1 = f1;
+ SELECT @v1;
+END//
+DROP PROCEDURE IF EXISTS sp1//
+
+# should fail: 66 is not allowed; maximum is 65.
+#FIXME --error 4711
+CREATE PROCEDURE sp1( f1 decimal(66, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set @v1 = f1;
+ SELECT @v1;
+END//
+DROP PROCEDURE IF EXISTS sp1//
+
+CREATE PROCEDURE sp1( f1 decimal(60, 30) ) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set @v1 = f1;
+ SELECT @v1;
+END//
+delimiter ;//
+
+CALL sp1( 17976931340000 );
+
+if ($check_wl2984)
+{
+ # switched off due to big differences with (e.g....) sol10-sparc-b
+ CALL sp1( 1.797693134e+13 );
+ CALL sp1( 1.7976931348623157493578e+308 );
+
+ -- echo FIXME: Following test contains a known problem that will be checked again
+ -- echo FIXME: after WL#2984 has been completed:
+ -- echo FIXME: values accepted without warning although m>60 in DECIMAL(m,n)
+
+ # check all ...E+100 to E-100
+ let $digits= 100;
+ while ($digits)
+ {
+ eval CALL sp1( 0.1234567890987654321e+$digits );
+ eval CALL sp1( 0.1234567890987654321e-$digits );
+ dec $digits;
+ }
+ # check the 2 values which cannot be handled easy in the loop:
+ eval CALL sp1( 0.1234567890987654321e+0 );
+ eval CALL sp1( 0.1234567890987654321e-0 );
+}
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp1( "value1" );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 set("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp1( "value1, value1" );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 enum("value1", "value1") ) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp1( "value1" );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1( f1 text ) language sql SELECT f1;
+
+CALL sp1( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp1';
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1( f1 text ) deterministic SELECT f1;
+CALL sp1( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp1';
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1( f1 text ) not deterministic SELECT f1;
+CALL sp1( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp1';
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1( f1 text ) sql security definer SELECT f1;
+CALL sp1( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp1';
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1( f1 text ) sql security invoker SELECT f1;
+CALL sp1( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp1';
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1( f1 text ) comment 'this is simple' SELECT f1;
+CALL sp1( 'abc' );
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp1';
+
+# cleanup
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongname234872934;
+DROP PROCEDURE sp1_thisisaveryverylongname234872934_thisisaveryverylongnameabcde;
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.2:
+ ---------------
+ Ensure that all clauses that should be supported are supported
+ CREATE FUNCTION;
+--source include/show_msg80.inc
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+ return concat('hello, ', s, '!');
+SELECT fn1('world');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 mediumtext ) returns mediumtext language sql deterministic sql security definer comment 'this is simple'
+ BEGIN
+ set @v1 = 'hello';
+ set f1 = concat( @v1, f1 );
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( ' world');
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+# 1425: Too big scale 63 specified for column ''. Maximum is 30.
+--error 1425
+CREATE FUNCTION fn1( f1 decimal(63, 31) ) returns decimal(63, 31) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set f1 = 1000000 + f1;
+ return f1;
+END//
+delimiter ;//
+
+--error 1305
+SELECT fn1( 1.3326e+8 );
+
+delimiter //;
+CREATE FUNCTION fn1( f1 decimal(63, 30) ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+BEGIN
+ set f1 = 1000000 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 1.3326e+8 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 enum("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( "value1" );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 set("value1", "value1") ) returns decimal(63, 30) language sql not deterministic sql security invoker comment 'this is simple'
+ BEGIN
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( "value1, value1" );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint language sql
+ BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint deterministic
+ BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint not deterministic
+ BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+ sql security definer
+ BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+ sql security invoker
+BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 smallint ) returns smallint
+ comment 'this is simple'
+BEGIN
+ set f1 = 1 + f1;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1( 126 );
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+# cleanup
+DROP FUNCTION fn1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.3:
+ ---------------
+ Ensure that all clauses that should be supported are supported
+ SHOW CREATE PROC;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1 (f1 char(20) )
+ SELECT * from t1 where f2 = f1;
+
+--replace_column 5 modified 6 created
+show CREATE PROCEDURE sp1;
+
+# cleanup
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.4:
+ ---------------
+show create function;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+CREATE FUNCTION fn1 (s char(20)) returns char(50)
+ return concat('hello, ', s, '!');
+
+--replace_column 5 modified 6 created
+show CREATE FUNCTION fn1;
+
+# cleanup
+DROP FUNCTION fn1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.5:
+ ---------------
+SHOW PROCEDURE status;
+--source include/show_msg80.inc
+
+
+CREATE PROCEDURE sp5()
+ SELECT * from t1;
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp5';
+
+# cleanup
+DROP PROCEDURE sp5;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.6:
+ ---------------
+show function status;
+--source include/show_msg80.inc
+
+
+delimiter //;
+CREATE FUNCTION fn5(a int) returns int
+BEGIN
+ set @b = 0.9 * a;
+ return @b;
+END//
+delimiter ;//
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn5';
+
+# cleanup
+DROP FUNCTION fn5;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.7:
+ ---------------
+CALL procedure;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp7a;
+DROP PROCEDURE IF EXISTS sp7b;
+DROP PROCEDURE IF EXISTS sp7c;
+--enable_warnings
+
+CREATE PROCEDURE sp7a(a char(20))
+ SELECT * from t1 where t1.f2 = a;
+
+CALL sp7a( 'xyz' );
+
+CREATE PROCEDURE sp7b (a char (20), out b char(20))
+ SELECT f1 into b from t1 where t1.f2= a;
+
+CALL sp7b('xyz', @out_param);
+SELECT @out_param;
+
+delimiter //;
+CREATE PROCEDURE sp7c (a char (20), out b char(20), inout c int)
+BEGIN
+SELECT f1 into b from t1 where t1.f2=a;
+ update t1 set t1.f2=999 where t1.f4=c;
+SELECT f2 into c from t1 where t1.f2=999;
+END//
+delimiter ;//
+
+set @c=1;
+CALL sp7c('xyz', @out_param, @c);
+SELECT @out_param;
+SELECT @c;
+
+# cleanup
+DROP PROCEDURE sp7a;
+DROP PROCEDURE sp7b;
+DROP PROCEDURE sp7c;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.8:
+ ---------------
+calling function;
+--source include/show_msg80.inc
+
+
+CREATE FUNCTION fn8(a char(20)) returns char(50)
+return concat('hello, ', a, '!');
+SELECT fn8('world');
+
+# cleanup
+DROP FUNCTION fn8;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.9:
+ ---------------
+drop procedure;
+--source include/show_msg80.inc
+
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='sp9';
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp9;
+--enable_warnings
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='sp9';
+
+CREATE PROCEDURE sp9()SELECT * from t1;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='sp9';
+
+DROP PROCEDURE sp9;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='sp9';
+
+CREATE PROCEDURE sp9()SELECT * from t1;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='sp9';
+
+DROP PROCEDURE IF EXISTS sp9;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='sp9';
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.10:
+ ----------------
+DROP FUNCTION;
+--source include/show_msg80.inc
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn10;
+--enable_warnings
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+
+
+CREATE FUNCTION fn10() returns int return 100;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+
+DROP FUNCTION fn10;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+
+CREATE FUNCTION fn10() returns int return 100;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+
+DROP FUNCTION IF EXISTS fn10;
+
+--replace_column 13 created 14 modified
+SELECT * from mysql.proc where specific_name='fn10' and type='function';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.11:
+ ----------------
+alter proc;
+--source include/show_msg80.inc
+
+
+create user 'user_1'@'localhost';
+grant execute on db_storedproc.* to 'user_1'@'localhost';
+flush privileges;
+drop table IF EXISTS mysql.t1;
+create table mysql.t1( f1 char );
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11() insert into mysql.t1 values('a');
+--replace_column 13 created 14 modified
+SELECT security_type from mysql.proc where specific_name='sp11';
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (u_1, localhost, user_1, , db_storedproc);
+--source suite/funcs_1/include/show_connection.inc
+
+CALL sp11();
+
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+alter procedure sp11 sql security invoker;
+--replace_column 13 created 14 modified
+SELECT security_type from mysql.proc where specific_name='sp11';
+
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connection u_1;
+--source suite/funcs_1/include/show_connection.inc
+
+--error 1142
+CALL sp11();
+
+commit work;
+disconnect u_1;
+connection default;
+--source suite/funcs_1/include/show_connection.inc
+
+alter procedure sp11 sql security definer;
+--replace_column 13 created 14 modified
+SELECT security_type from mysql.proc where specific_name='sp11';
+CALL sp11();
+
+# cleanup
+DROP USER 'user_1'@'localhost';
+DROP PROCEDURE sp11;
+drop table mysql.t1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.12:
+ ----------------
+alter function;
+--source include/show_msg80.inc
+
+
+CREATE FUNCTION fn12() returns int
+ return 100;
+SELECT security_type from mysql.proc where specific_name='fn12';
+--replace_column 13 created 14 modified
+SELECT fn12();
+
+alter function fn12 sql security invoker;
+SELECT security_type from mysql.proc where specific_name='fn12';
+--replace_column 13 created 14 modified
+SELECT fn12();
+
+alter function fn12 sql security definer;
+SELECT security_type from mysql.proc where specific_name='fn12';
+--replace_column 13 created 14 modified
+SELECT fn12();
+
+# cleanup
+DROP FUNCTION fn12;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.13:
+ ----------------
+alter proc;
+--source include/show_msg80.inc
+
+
+DROP PROCEDURE IF EXISTS sp11;
+CREATE PROCEDURE sp11()
+ SELECT * from t1;
+
+SELECT comment from mysql.proc where specific_name='sp11';
+--replace_column 13 created 14 modified
+alter procedure sp11 comment 'this is simple';
+SELECT comment from mysql.proc where specific_name='sp11';
+--replace_column 13 created 14 modified
+
+# cleanup
+DROP PROCEDURE sp11;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.14:
+ ----------------
+alter function;
+--source include/show_msg80.inc
+
+DROP FUNCTION IF EXISTS fn12;
+CREATE FUNCTION fn12() returns int
+ return 100;
+ SELECT comment from mysql.proc where specific_name='fn12';
+--replace_column 13 created 14 modified
+
+ alter function fn12 comment 'this is simple';
+ SELECT comment from mysql.proc where specific_name='fn12';
+--replace_column 13 created 14 modified
+
+# cleanup
+DROP FUNCTION fn12;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.15:
+ ----------------
+Ensure that any invalid stored procedure name is never accepted, and that an
+appropriate error message is returned when the name is rejected;
+--source include/show_msg80.inc
+
+
+--error 1357
+CREATE PROCEDURE sp1()
+DROP PROCEDURE sp1;
+
+--error 1064
+CREATE PROCEDURE !_sp1( f1 char(20) )
+SELECT * from t1 where f2 = f1;
+
+#FIXME: this was what I found in this file ... :
+#CREATE PROCEDURE !_sp1( f1 char(20) )
+# SELECT * from t1 where f2 = f1; ^a^kcd '/usr/mysql/mysql-test/t'
+#/t'ql/mysql-test
+#t]# t@localhost t
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE function()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE function;
+
+--error 1064
+CREATE PROCEDURE add()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE all()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE alter()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE analyze()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE and()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE as()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE asc()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE asensitive()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE before()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE between()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE bigint()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE binary()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE blob()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE both()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE by()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE CALL()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE cascade()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE case()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE change()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE char()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE character()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE check()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE collate()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE column()
+ SELECT * from t1 where f2=f1;
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE columns()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE columns;
+
+--error 1064
+CREATE PROCEDURE condition()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE connection()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE constraint()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE continue()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE convert()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE create()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE cross()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE current_date()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE current_time()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE current_timestamp()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE current_user()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE cursor()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE database()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE databases()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE day_hour()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE day_microsecond()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE day_minute()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE day_second()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE dec()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE decimal()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE declare()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE default()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE delayed()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE delete()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE desc()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE describe()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE deterministic()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE distinct()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE distinctrow()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE div()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE double()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE drop()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE dual()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE each()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE else()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE elseif()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE enclosed()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE escaped()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE exists()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE exit()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE explain()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE false()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE fetch()
+ SELECT * from t1 where f2=f1;
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE fields()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE fields;
+
+--error 1064
+CREATE PROCEDURE float()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE for()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE force()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE foreign()
+ SELECT * from t1 where f2=f1;
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE found()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE found;
+
+--error 1064
+CREATE PROCEDURE from()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE fulltext()
+ SELECT * from t1 where f2=f1;
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE goto()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE goto;
+
+--error 1064
+CREATE PROCEDURE grant()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE group()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE having()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE high_priority()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE hour_microsecond()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE hour_minute()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE hour_second()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE if()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE ignore()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE in()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE index()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE infile()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE inner()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE inout()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE insensitive()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE insert()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE int()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE integer()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE interval()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE into()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE is()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE iterate()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE join()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE key()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE keys()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE kill()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE leading()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE leave()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE left()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE like()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE limit()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE lines()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE load()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE localtime()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE localtimestamp()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE lock()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE long()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE longblob()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE longtext()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE loop()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE low_priority()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE match()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE mediumblob()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE mediumint()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE mediumtext()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE middleint()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE minute_microsecond()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE minute_second()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE mod()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE modifies()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE natural()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE not()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE no_write_to_binlog()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE null()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE numeric()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE on()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE optimize()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE option()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE optionally()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE or()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE order()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE out()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE outer()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE outfile()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE precision()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE primary()
+ SELECT * from t1 where f2=f1;
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE privileges()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE privileges;
+
+--error 1064
+CREATE PROCEDURE procedure()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE purge()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE read()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE reads()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE real()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE references()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE regexp()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE rename()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE repeat()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE replace()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE require()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE restrict()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE return()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE revoke()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE right()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE rlike()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE schema()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE schemas()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE second_microsecond()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE select()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sensitive()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE separator()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE set()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE show()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE smallint()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE soname()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE spatial()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE specific()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sql()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sqlexception()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sqlstate()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sqlwarning()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sql_big_result()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sql_calc_found_rows()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE sql_small_result()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE ssl()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE starting()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE straight_join()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE table()
+ SELECT * from t1 where f2=f1;
+
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE tables()
+ SELECT * from t1 where f2=f1;
+DROP PROCEDURE tables;
+
+--error 1064
+CREATE PROCEDURE terminated()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE then()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE tinyblob()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE tinyint()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE tinytext()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE to()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE trailing()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE trigger()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE true()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE undo()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE union()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE unique()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE unlock()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE unsigned()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE update()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE usage()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE use()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE using()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE utc_date()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE utc_time()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE utc_timestamp()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE values()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE varbinary()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE varchar()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE varcharacter()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE varying()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE when()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE where()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE while()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE with()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE write()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE xor()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE year_month()
+ SELECT * from t1 where f2=f1;
+
+--error 1064
+CREATE PROCEDURE zerofill()
+ SELECT * from t1 where f2=f1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.15:
+ ----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected;
+--source include/show_msg80.inc
+
+
+--error 1064
+CREATE FUNCTION !_fn1(f1 char) returns char
+ return f1;
+
+--error 1064
+CREATE FUNCTION char(f1 char) returns char
+ return f1;
+
+--error 1064
+CREATE FUNCTION char binary(f1 char binary) returns char binary
+ return f1;
+--error 1064
+CREATE FUNCTION char ascii(f1 char ascii) returns char ascii
+ return f1;
+
+--error 1064
+CREATE FUNCTION char not null(f1 char not null) returns char not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION char binary not null(f1 char binary not null) returns char binary not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION char ascii not null(f1 char ascii not null) returns char ascii not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinytext(f1 tinytext) returns tinytext
+ return f1;
+
+#FIXME check this is OK:--error 1064
+CREATE FUNCTION text(f1 text) returns text
+ return f1;
+ DROP FUNCTION text;
+
+--error 1064
+CREATE FUNCTION mediumtext(f1 mediumtext) returns mediumtext
+ return f1;
+
+--error 1064
+CREATE FUNCTION longtext(f1 longtext) returns longtext
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinytext not null(f1 tinytext not null) returns tinytext not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION text not null(f1 text not null) returns text not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumtext not null(f1 mediumtext not null) returns mediumtext not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION longtext not null(f1 longtext not null) returns longtext not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinyblob(f1 tinyblob) returns tinyblob
+ return f1;
+
+--error 1064
+CREATE FUNCTION blob(f1 blob) returns blob
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumblob(f1 mediumblob) returns mediumblob
+ return f1;
+
+--error 1064
+CREATE FUNCTION longblob(f1 longblob) returns longblob
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinyblob not null(f1 tinyblob not null) returns tinyblob not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION blob not null(f1 blob not null) returns blob not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumblob not null(f1 mediumblob not null) returns mediumblob not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION longblob not null(f1 longblob not null) returns longblob not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION binary(f1 binary) returns binary
+ return f1;
+
+--error 1064
+CREATE FUNCTION binary not null(f1 binary not null) returns binary not null
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinyint(f1 tinyint) returns tinyint
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinyint unsigned(f1 tinyint unsigned) returns tinyint unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinyint zerofill(f1 tinyint zerofill) returns tinyint zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION tinyint unsigned zerofill(f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION smallint(f1 smallint) returns smallint
+ return f1;
+
+--error 1064
+CREATE FUNCTION smallint unsigned(f1 smallint unsigned) returns smallint unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION smallint zerofill(f1 smallint zerofill) returns smallint zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION smallint unsigned zerofill(f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumint(f1 mediumint) returns mediumint
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumint unsigned(f1 mediumint unsigned) returns mediumint unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumint zerofill(f1 mediumint zerofill) returns mediumint zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION mediumint unsigned zerofill(f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION int(f1 int) returns int
+ return f1;
+
+--error 1064
+CREATE FUNCTION int unsigned(f1 int unsigned) returns int unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION int zerofill(f1 int zerofill) returns int zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION int unsigned zerofill(f1 int unsigned zerofill) returns int unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION bigint(f1 bigint) returns bigint
+ return f1;
+
+--error 1064
+CREATE FUNCTION bigint unsigned(f1 bigint unsigned) returns bigint unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION bigint zerofill(f1 bigint zerofill) returns bigint zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION bigint unsigned zerofill(f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION decimal(f1 decimal) returns decimal
+ return f1;
+
+--error 1064
+CREATE FUNCTION decimal unsigned(f1 decimal unsigned) returns decimal unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION decimal zerofill(f1 decimal zerofill) returns decimal zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION decimal unsigned zerofill(f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION numeric(f1 numeric) returns numeric
+ return f1;
+
+--error 1064
+CREATE FUNCTION numeric unsigned(f1 numeric unsigned) returns numeric unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION numeric zerofill(f1 numeric zerofill) returns numeric zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION numeric unsigned zerofill(f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION real(f1 real) returns real
+ return f1;
+
+--error 1064
+CREATE FUNCTION real unsigned(f1 real unsigned) returns real unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION real zerofill(f1 real zerofill) returns real zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION real unsigned zerofill(f1 real unsigned zerofill) returns real unsigned zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION float(f1 float) returns float
+ return f1;
+
+--error 1064
+CREATE FUNCTION float unsigned(f1 float unsigned) returns float unsigned
+ return f1;
+
+--error 1064
+CREATE FUNCTION float zerofill(f1 float zerofill) returns float zerofill
+ return f1;
+
+--error 1064
+CREATE FUNCTION float unsigned zerofill(f1 float unsigned zerofill) returns float unsigned zerofill
+ return f1;
+
+#FIXME check this is OK:--error 1064
+CREATE FUNCTION date(f1 date) returns date
+ return f1;
+DROP FUNCTION date;
+
+#FIXME check this is OK:--error 1064
+CREATE FUNCTION time(f1 time) returns time
+ return f1;
+DROP FUNCTION time;
+
+#FIXME check this is OK:--error 1064
+CREATE FUNCTION datetime(f1 datetime) returns datetime
+ return f1;
+DROP FUNCTION datetime;
+
+#FIXME check this is OK:--error 1064
+CREATE FUNCTION timestamp(f1 timestamp) returns timestamp
+ return f1;
+DROP FUNCTION timestamp;
+
+#FIXME check this is OK:--error 1064
+CREATE FUNCTION year(f1 year) returns year
+ return f1;
+DROP FUNCTION year;
+
+--error 1064
+CREATE FUNCTION year(3)(f1 year(3)) returns year(3)
+ return f1;
+
+--error 1064
+CREATE FUNCTION year(4)(f1 year(4)) returns year(4)
+ return f1;
+
+--error 1064
+CREATE FUNCTION enum("1enum", "2enum")(f1 enum("1enum", "2enum")) returns enum("1enum", "2enum")
+ return f1;
+
+--error 1064
+CREATE FUNCTION set("1set", "2set")(f1 set("1set", "2set")) returns set("1set", "2set")
+ return f1;
+
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(char f1 ) returns char
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(char binary f1 ) returns char binary
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(char ascii f1 ) returns char ascii
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(char not null f1 ) returns char not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(char binary not null f1 ) returns char binary not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(char ascii not null f1 ) returns char ascii not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinytext f1 ) returns tinytext
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(text f1 ) returns text
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumtext f1 ) returns mediumtext
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(longtext f1 ) returns longtext
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinytext not null f1 ) returns tinytext not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(text not null f1 ) returns text not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumtext not null f1 ) returns mediumtext not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(longtext not null f1 ) returns longtext not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinyblob f1 ) returns tinyblob
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(blob f1 ) returns blob
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumblob f1 ) returns mediumblob
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(longblob f1 ) returns longblob
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinyblob not null f1 ) returns tinyblob not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(blob not null f1 ) returns blob not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumblob not null f1 ) returns mediumblob not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(longblob not null f1 ) returns longblob not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(binary f1 ) returns binary
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(binary not null f1 ) returns binary not null
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinyint f1 ) returns tinyint
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinyint unsigned f1 ) returns tinyint unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinyint zerofill f1 ) returns tinyint zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(tinyint unsigned zerofill f1 ) returns tinyint unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(smallint f1 ) returns smallint
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(smallint unsigned f1 ) returns smallint unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(smallint zerofill f1 ) returns smallint zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(smallint unsigned zerofill f1 ) returns smallint unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumint f1 ) returns mediumint
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumint unsigned f1 ) returns mediumint unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumint zerofill f1 ) returns mediumint zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(mediumint unsigned zerofill f1 ) returns mediumint unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(int f1 ) returns int
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(int unsigned f1 ) returns int unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(int zerofill f1 ) returns int zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(int unsigned zerofill f1 ) returns int unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(bigint f1 ) returns bigint
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(bigint unsigned f1 ) returns bigint unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(bigint zerofill f1 ) returns bigint zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(bigint unsigned zerofill f1 ) returns bigint unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(decimal f1 ) returns decimal
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(decimal unsigned f1 ) returns decimal unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(decimal zerofill f1 ) returns decimal zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(decimal unsigned zerofill f1 ) returns decimal unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(numeric f1 ) returns numeric
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(numeric unsigned f1 ) returns numeric unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(numeric zerofill f1 ) returns numeric zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(numeric unsigned zerofill f1 ) returns numeric unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(real f1 ) returns real
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(real unsigned f1 ) returns real unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(real zerofill f1 ) returns real zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(real unsigned zerofill f1 ) returns real unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(float f1 ) returns float
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(float unsigned f1 ) returns float unsigned
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(float zerofill f1 ) returns float zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(float unsigned zerofill f1 ) returns float unsigned zerofill
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(date f1 ) returns date
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(time f1 ) returns time
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(datetime f1 ) returns datetime
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(timestamp f1 ) returns timestamp
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(year f1 ) returns year
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(year(3) f1 ) returns year(3)
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(year(4) f1 ) returns year(4)
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(enum("1enum", "2enum") f1 ) returns enum("1enum", "2enum")
+ return f1;
+
+DROP FUNCTION IF EXISTS fn1;
+--error 1064
+CREATE FUNCTION fn1(set("1set", "2set") f1 ) returns set("1set", "2set")
+ return f1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.16:
+ ----------------
+Ensure that a reference to a non-existent stored procedure is rejected with an
+appropriate error message;
+--source include/show_msg80.inc
+
+DROP PROCEDURE IF EXISTS sp16;
+
+--error 1305
+CALL sp16( 'xyz' );
+
+CREATE DATABASE db1;
+USE db1;
+
+delimiter //;
+CREATE PROCEDURE sp16()
+BEGIN
+ set @var1 = 1;
+ SELECT @var1;
+END//
+delimiter ;//
+
+--error 1305
+CALL db_storedproc.sp16();
+
+# cleanup
+USE db_storedproc;
+DROP PROCEDURE db1.sp16;
+DROP DATABASE db1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.17:
+ ----------------
+Ensure that it is possible to drop, create and CALL/execute a procedure and a
+function with the same name, even in the same database;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+DROP FUNCTION IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1 ()
+BEGIN
+ declare x enum( 'db1', 'test' ) default 'test';
+ SELECT x;
+END//
+delimiter ;//
+
+CALL sp1();
+
+
+CREATE FUNCTION sp1 (y char) returns char return y;
+ SELECT sp1( 'a' );
+
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+CALL db_storedproc.sp1( );
+SELECT db_storedproc.sp1( 'a' );
+
+DROP FUNCTION db_storedproc.sp1;
+USE db_storedproc;
+
+--error 1305
+SELECT sp1('a');
+
+DROP PROCEDURE sp1;
+
+--error 1305
+CALL sp1();
+
+--error 1305
+SELECT sp1('a');
+
+# cleanup
+USE db_storedproc;
+DROP DATABASE db1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.18:
+ ----------------
+Ensure that it is possible to alter a procedure and
+a function with the same name, in the same database;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+set @x=null; set @y=null;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ set @x= 1;
+ SELECT @x;
+END//
+delimiter ;//
+
+CREATE FUNCTION sp1 () returns int return 2.2;
+CALL db_storedproc.sp1();
+SELECT db_storedproc.sp1();
+
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+USE db1;
+alter procedure db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+
+alter function db_storedproc.sp1 sql security invoker;
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+
+CALL db_storedproc.sp1();
+
+SELECT db_storedproc.sp1();
+
+USE db_storedproc;
+alter procedure sp1 sql security definer;
+CALL db_storedproc.sp1();
+
+SELECT db_storedproc.sp1();
+
+alter function sp1 sql security definer;
+
+SELECT name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+CALL db_storedproc.sp1();
+
+SELECT db_storedproc.sp1();
+
+# cleanup
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+DROP FUNCTION db_storedproc.sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.19:
+ ----------------
+verify altering procedure and function with the same name, does not affect
+properties of a procedure and a function with the same name in the different
+database.;
+--source include/show_msg80.inc
+
+
+--disable_warnings
+DROP DATABASE IF EXISTS db_storedproc_3122;
+--enable_warnings
+
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS db_storedproc_3122.sp1;
+DROP FUNCTION IF EXISTS db_storedproc_3122.sp1;
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ set @x= 1;
+ SELECT @x;
+END//
+delimiter ;//
+
+# FIXME ps-protocol vs. normal difference when returning float instead of double
+CREATE FUNCTION db_storedproc_3122.sp1() returns double return 2.2;
+CALL sp1();
+ SELECT db_storedproc_3122.sp1();
+ USE db_storedproc_3122;
+
+delimiter //;
+CREATE PROCEDURE sp1 ()
+BEGIN
+ set @x= 3;
+ SELECT @x;
+END//
+delimiter ;//
+
+CREATE FUNCTION db_storedproc.sp1() returns double return 4.4;
+CALL sp1();
+SELECT db_storedproc.sp1();
+
+alter procedure db_storedproc_3122.sp1 sql security invoker;
+alter function sp1 sql security invoker;
+
+SELECT db, name, type, security_type from mysql.proc where db LIKE 'db_storedproc%' and specific_name='sp1';
+
+CALL db_storedproc.sp1();
+
+SELECT db_storedproc.sp1();
+CALL db_storedproc_3122.sp1();
+SELECT db_storedproc_3122.sp1();
+
+# clean up
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.20:
+ ----------------
+Ensure that it is possible to alter the comment of a procedure
+and a function with the same name, even in the same database;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+set @x=null;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP FUNCTION IF EXISTS sp1;
+--enable_warnings
+
+CREATE PROCEDURE sp1 () set @x= 1;
+CREATE FUNCTION sp1 () returns int return 2;
+
+DROP DATABASE IF EXISTS db_storedproc_3122;
+CREATE DATABASE db_storedproc_3122;
+USE db_storedproc_3122;
+
+CREATE PROCEDURE sp1 () set @x= 3;
+CREATE FUNCTION sp1 () returns int return 4;
+
+alter procedure sp1 sql security invoker comment 'this is a procedure';
+alter function sp1 sql security invoker comment 'this is a function';
+
+alter procedure sp1 sql security definer;
+alter function sp1 sql security definer;
+--replace_column 5 modified 6 created
+show CREATE PROCEDURE sp1;
+--replace_column 5 modified 6 created
+show CREATE FUNCTION sp1;
+
+# clean up
+USE db_storedproc;
+DROP DATABASE db_storedproc_3122;
+DROP FUNCTION db_storedproc.sp1;
+DROP PROCEDURE db_storedproc.sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.21:
+ ----------------
+Ensure that it is not possible to create two procedures with same name
+in same database;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+set @x=null;
+set @y=null;
+
+--disable_warnings
+DROP DATABASE IF EXISTS db1;
+--enable_warnings
+
+CREATE DATABASE db1;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 () set @x=1;
+
+--error 1304
+CREATE PROCEDURE sp1 () set @x=2;
+
+CALL sp1();
+SELECT @x;
+USE db1;
+--error 1304
+CREATE PROCEDURE db_storedproc.sp1 () set @x=3;
+CALL db_storedproc.sp1();
+ SELECT @x;
+
+DROP PROCEDURE IF EXISTS db_storedproc.sp1;
+CREATE PROCEDURE db_storedproc.sp1 () set @x=1;
+--error 1304
+CREATE PROCEDURE db_storedproc.sp1 () set @x=2;
+CALL db_storedproc.sp1();
+SELECT @x;
+
+# clean up
+USE db_storedproc;
+DROP DATABASE db1;
+DROP PROCEDURE db_storedproc.sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.22:
+ ----------------
+Ensure that it is not possible to create two functions with same name in the
+same database;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+DROP DATABASE IF EXISTS db1;
+CREATE DATABASE db1;
+DROP FUNCTION IF EXISTS fn1;
+CREATE FUNCTION fn1 () returns int return 1;
+--error 1304
+CREATE FUNCTION fn1 () returns int return 2;
+SELECT fn1();
+USE db1;
+--error 1304
+CREATE FUNCTION db_storedproc.fn1 () returns int return 3;
+SELECT db_storedproc.fn1();
+DROP FUNCTION IF EXISTS db_storedproc.fn1;
+CREATE FUNCTION db_storedproc.fn1 () returns int return 1;
+--error 1304
+CREATE FUNCTION db_storedproc.fn1 () returns int return 2;
+SELECT db_storedproc.fn1();
+
+# clean up
+USE db_storedproc;
+DROP DATABASE db1;
+DROP FUNCTION db_storedproc.fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.23:
+ ----------------
+Ensure that it is possible to create two or more procedures with the same name,
+providing each resides in different databases;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+set @x=null;
+set @y=null;
+DROP PROCEDURE IF EXISTS sp1;
+CREATE PROCEDURE sp1 () set @x= 1;
+DROP DATABASE IF EXISTS test3124;
+CREATE DATABASE test3124;
+USE test3124;
+CREATE PROCEDURE sp1 () set @y= 2;
+CALL sp1();
+SELECT @x, @y;
+USE db_storedproc;
+CALL sp1();
+SELECT @x, @y;
+
+# clean up
+USE db_storedproc;
+DROP DATABASE test3124;
+DROP PROCEDURE db_storedproc.sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.24:
+ ----------------
+Ensure that it is possible to create two or more functions with the same name,
+providing each resides in different databases.;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1 () returns int return 1;
+DROP DATABASE IF EXISTS test3125;
+CREATE DATABASE test3125;
+USE test3125; CREATE FUNCTION f1 () returns int return 2;
+SELECT f1();
+USE db_storedproc;
+SELECT f1();
+
+# clean up
+USE db_storedproc;
+DROP DATABASE test3125;
+DROP FUNCTION db_storedproc.f1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.25:
+ ----------------
+Ensure that any invalid function name is never accepted, and that an appropriate
+error message is returned when the name is rejected. (invalid func name);
+--source include/show_msg80.inc
+
+delimiter //;
+--error 1064
+CREATE FUNCTION !_fn1( f1 char(20) ) returns int
+BEGIN
+ SELECT * from t1 where f2 = f1;
+ return 1;
+END//
+delimiter ;//
+
+delimiter //;
+--error 1064
+CREATE FUNCTION fn1( f1 char(20) ) return int
+BEGIN
+ SELECT * from t1 where f2 = f1;
+ return 1;
+END//
+delimiter ;//
+
+CREATE FUNCTION fn1() returns int
+ return 'a';
+
+--error 1064
+CREATE FUNCTION procedure() returns int
+ return 1;
+
+--error 1064
+CREATE FUNCTION fn1(a char) returns int lang sql return 1;
+
+--error 1064
+CREATE FUNCTION fn1(a char) returns int deterministic( return 1);
+
+--error 1064
+CREATE FUNCTION fn1(a char) returns int non deterministic return 1;
+
+--error 1064
+CREATE FUNCTION fn1(a char) returns int not deterministic comment 'abc' language sql sql security refiner return 1;
+
+# clean up
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+
+# ==============================================================================
+#
+# test plan section: 4.2 - syntax checks for programming statements - 1
+#
+# ==============================================================================
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.1:
+ ---------------
+ Ensure that all clauses that should be supported are supported.
+ CREATE PROCEDURE;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+
+ set @count = 0;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1(cnt int(20))
+BEGIN
+ SELECT count(*) into cnt from t2;
+ set @count = cnt;
+END//
+delimiter ;//
+
+CALL sp1( 10 );
+
+ SELECT @count;
+
+# clean up
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.2:
+BEGINend;
+--source include/show_msg80.inc
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+ SELECT count(*) into cnt from t2;
+ set @count = cnt;
+ SELECT @count;
+END//
+delimiter ;//
+
+CALL sp1( 10 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+# missing BEGIN
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( cnt int(20) )
+ SELECT count(*) into cnt from t2;
+ set @count = cnt;
+ SELECT @count;
+END//
+delimiter ;//
+
+--error 1305
+CALL sp1( 10 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+# wrong order of BEGIN and END
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( cnt int(20) )
+END
+ SELECT count(*) into cnt from t2;
+ set @count = cnt;
+ SELECT @count;
+BEGIN//
+delimiter ;//
+
+--error 1305
+CALL sp1( 10 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+# invalid usage of BEGIN + END
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( cnt int(20) )
+BEGIN
+ SELECT count(*) into cnt from t2;
+ BEGIN
+ BEGIN END;
+ BEGIN
+ END;
+ set @count = cnt;
+ SELECT @count;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.4:
+ ---------------
+Ensure that every BEGIN statement is coupled with a terminating END statement.
+(BEGIN with no END);
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase ....:
+ --------------
+;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ add:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ all:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ alter:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ analyze:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ and:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ as:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ asc:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ asensitive:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ before:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ between:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ bigint:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ binary:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ blob:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ both:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ by:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ CALL:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ cascade:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ case:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ change:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ char:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ character:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ check:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ collate:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ column:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME: is it OK that this now succeeds? --error 1064
+CREATE PROCEDURE sp1()
+ columns:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ condition:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ connection:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ constraint:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ continue:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ convert:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ create:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ cross:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ current_date:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ current_time:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ current_timestamp:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ current_user:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ cursor:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ database:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ databases:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ day_hour:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ day_microsecond:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ day_minute:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ day_second:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ dec:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ decimal:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ declare:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ default:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ delayed:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ delete:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ desc:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ describe:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ deterministic:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ distinct:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ distinctrow:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ div:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ double:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+drop:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ dual:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ each:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ else:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ elseif:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ enclosed:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ escaped:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ exists:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ exit:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ explain:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ false:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ fetch:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME: is it OK that this now succeeds? --error 1064
+CREATE PROCEDURE sp1()
+ fields:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ float:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ for:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ force:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ foreign:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME: is it OK that this now succeeds? --error 1064
+CREATE PROCEDURE sp1()
+ found:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ from:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ fulltext:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME: is it OK that this now succeeds? --error 1064
+CREATE PROCEDURE sp1()
+ goto:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ grant:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ group:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ having:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ high_priority:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ hour_microsecond:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ hour_minute:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ hour_second:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ if:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ ignore:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ in:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ index:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ infile:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ inner:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ inout:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ insensitive:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ insert:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ int:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ integer:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ interval:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ into:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ is:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ iterate:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ join:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ key:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ keys:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ kill:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ leading:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ leave:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ left:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ like:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ limit:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ lines:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ load:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ localtime:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ localtimestamp:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ lock:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ long:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ longblob:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ longtext:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ loop:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ low_priority:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ match:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ mediumblob:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ mediumint:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ mediumtext:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ middleint:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ minute_microsecond:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ minute_second:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ mod:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ modifies:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ natural:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ not:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ no_write_to_binlog:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ null:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ numeric:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ on:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ optimize:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ option:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ optionally:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ or:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ order:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ out:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ outer:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ outfile:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ precision:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ primary:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME: is it OK that this now succeeds? --error 1064
+CREATE PROCEDURE sp1()
+ privileges:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ procedure:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ purge:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ read:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ reads:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ real:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ references:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ regexp:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ rename:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ repeat:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ replace:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ require:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ restrict:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ return:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ revoke:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ right:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ rlike:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ schema:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ schemas:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ second_microsecond:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ select:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sensitive:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ separator:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ set:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ show:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ smallint:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ soname:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ spatial:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ specific:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sql:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sqlexception:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sqlstate:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sqlwarning:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sql_big_result:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sql_calc_found_rows:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ sql_small_result:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ ssl:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ starting:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ straight_join:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ table:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME: is it OK that this now succeeds? --error 1064
+CREATE PROCEDURE sp1()
+ tables:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ terminated:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ then:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ tinyblob:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ tinyint:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ tinytext:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ to:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ trailing:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ trigger:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ true:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ undo:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ union:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ unique:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1314
+CREATE PROCEDURE sp1()
+ unlock:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ unsigned:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ update:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ usage:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ use:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ using:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ utc_date:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ utc_time:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ utc_timestamp:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ values:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ varbinary:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ varchar:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ varcharacter:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ varying:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ when:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ where:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ while:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ with:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ write:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ xor:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ year_month:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+ zerofill:BEGIN
+ SELECT @x;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.6:
+ ---------------
+Ensure that the labels for multiple BEGIN an END work properly;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+begin_label: BEGIN
+ declare x char;
+ declare y char;
+ set x = '1';
+ set y = '2';
+ label1: BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+ END label1;
+ set @v1 = x;
+ set @v2 = y;
+ SELECT @v1, @v2;
+END begin_label//
+delimiter ;//
+
+CALL sp1();
+
+# clean up
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.7:
+ ---------------
+Ensure that the labels enclosing each BEGIN/END compound statement must match.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1310
+CREATE PROCEDURE sp1( )
+begin1_label: BEGIN
+ declare x char;
+ declare y char;
+ SELECT lf1, f1 into x, y from t2 limit 1;
+ begin2_label: BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+ END begin2_changed;
+END begin1_changed//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.8:
+ ---------------
+Ensure that it is possible to put a beginning label at the start of a
+BEGIN/END compound statement without also requiring an ending label
+at the END of the same statement.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+ begin_label: BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# clean up
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.9:
+ ---------------
+Ensure that it is not possible to put an ending label at the END of
+a BEGIN/END compound statement without also requiring a matching
+beginning label at the start of the same statement;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.10:
+ ----------------
+Ensure that every beginning label must END with a colon(:);
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+begin_label BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+END begin_label//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.11:
+ ----------------
+Ensure that every beginning label with the same scope must be unique. (same label names);
+--source include/show_msg80.inc
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1309
+CREATE PROCEDURE sp6( )
+begin_samelabel: BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+ begin_samelabel: BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+ END begin_samelabel;
+ begin_samelabel: BEGIN
+ declare x char;
+ declare y char;
+ SELECT f1, f2 into x, y from t2 limit 1;
+ END begin_samelabel;
+END begin_samelabel//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.12:
+ ----------------
+Ensure that the variables, cursors, conditions, and handlers declared for
+a stored procedure (with the declare statement) may only be properly defined;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: DECIMAL(255,255) is not rejected
+
+delimiter //;
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare x char default 'a';
+ declare y integer default 1;
+ declare z float default 1.1;
+ declare a enum("value1", "value2") default 'value1';
+ declare b decimal(255, 255) default 1.2e+12;
+ declare c mediumtext default 'mediumtext';
+ declare d datetime default '2005-02-02 12:12:12';
+ declare e char default 'b';
+ declare cur1 cursor for SELECT f1 from db_storedproc.t2;
+ declare continue handler for sqlstate '02000' set @x2 = 1;
+ open cur1;
+ fetch cur1 into e;
+ SELECT x, y, z, a, b, c, d, e;
+ close cur1;
+END//
+delimiter ;//
+
+CALL sp6();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 char default '0';
+ SELECT x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567;
+END//
+delimiter ;//
+
+CALL sp6();
+
+# clean up
+DROP PROCEDURE sp6;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.13:
+ ----------------
+Ensure that the variables declared for a stored procedure (with the declare
+statement) may only be defined in the correct order.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare x default '0' char;
+ SELECT x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare x char, integer default '0';
+ SELECT x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare x1, x2 char, integer default '0', 1;
+ SELECT x;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char x;
+ declare char y;
+ SELECT f1, f2 into x, y from t2 limit 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char x, y1 integer default 0;
+ declare char y;
+ SELECT f1, f2 into x, y from t2 limit 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare x default 'a' char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare condition notable for sqlstate '42s22';
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare condition for notable sqlstate '42s22';
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare condition for sqlstate notable '42s22';
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare condition for sqlstate '42s22' notable;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare cursor cur1 for SELECT f1 from db_storedproc.t2;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare cursor for cur1 SELECT f1 from db_storedproc.t2;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare cursor for SELECT cur1 f1 from db_storedproc.t2;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare handler continue for sqlstate '02000' set @x2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare handler exit for sqlstate '02000' set @x2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare handler undo for sqlstate '02000' set @x2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char x;
+ SELECT f1 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char binary x;
+ SELECT f2 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char ascii x;
+ SELECT f3 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinytext x;
+ SELECT f4 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x;
+ SELECT f5 text into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumtext x;
+ SELECT f6 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare longtext x;
+ SELECT f7 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyblob x;
+ SELECT f8 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare blob x;
+ SELECT f9 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumblob x;
+ SELECT f10 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare longblob x;
+ SELECT f11 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare binary x;
+ SELECT f12 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyint x;
+ SELECT f13 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyint unsigned x;
+ SELECT f14 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyint zerofill x;
+ SELECT f15 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyint unsigned zerofill x;
+ SELECT f16 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare smallint x;
+ SELECT f17 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare smallint unsigned x;
+ SELECT f18 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare smallint zerofill x;
+ SELECT f19 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare smallint unsigned zerofill x;
+ SELECT f20 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumint x;
+ SELECT f21 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumint unsigned x;
+ SELECT f22 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumint zerofill x;
+ SELECT f23 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumint unsigned zerofill x;
+ SELECT f24 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare int x;
+ SELECT f25 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare int unsigned x;
+ SELECT f26 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare int zerofill x;
+ SELECT f27 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare int unsigned zerofill x;
+ SELECT f28 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare bigint x;
+ SELECT f29 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare bigint unsigned x;
+ elect f30 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare bigint zerofill x;
+ SELECT f31 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare bigint unsigned zerofill x;
+ SELECT f32 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal x;
+ SELECT f33 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal unsigned x;
+ SELECT f34 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal zerofill x;
+ SELECT f35 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal unsigned zerofill not null x;
+ SELECT f36 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (0) not null x;
+ SELECT f37 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (64) not null x;
+ SELECT f38 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (0) unsigned not null x;
+ SELECT f39 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (64) unsigned not null x;
+ SELECT f40 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (0) zerofill not null x;
+ SELECT f41 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (64) zerofill not null x;
+ SELECT f42 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (0) unsigned zerofill not null x;
+ SELECT f43 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (64) unsigned zerofill not null x;
+ SELECT f44 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (00) not null x;
+ SELECT f45 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (63, 30) not null x;
+ SELECT f46 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (00) unsigned not null x;
+ SELECT f47 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (63, 30) unsigned not null x;
+ SELECT f48 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (00) zerofill not null x;
+ SELECT f49 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (63, 30) zerofill not null x;
+ SELECT f50 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (00) unsigned zerofill not null x;
+ SELECT f51 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal (63, 30) unsigned zerofill not null x;
+ SELECT f52 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric not null x;
+ SELECT f53 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric unsigned not null x;
+ SELECT f54 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric zerofill not null x;
+ SELECT f55 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric unsigned zerofill not null x;
+ SELECT f56 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (0) not null x;
+ SELECT f57 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (64) not nul x;
+ SELECT f58 into x from tb1 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (0) unsigned x;
+ SELECT f59 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (64) unsigned x;
+ SELECT f60 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (0) zerofill x;
+ SELECT f61 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (64) zerofill x;
+ SELECT f62 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (0) unsigned zerofill x;
+ SELECT f63 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (64) unsigned zerofill x;
+ SELECT f64 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (00) x;
+ SELECT f65 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (63, 30) x;
+ SELECT f66 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (00) unsigned x;
+ SELECT f67 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (63, 30) unsigned x;
+ SELECT f68 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (00) zerofill x;
+ SELECT f69 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (63, 30) zerofill x;
+ SELECT f70 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (00) unsigned zerofill x;
+ SELECT f71 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric (63, 30) unsigned zerofill x;
+ SELECT f72 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare real x;
+ SELECT f73 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare real unsigned x;
+ SELECT f74 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare real zerofill x;
+ SELECT f75 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare real unsigned zerofill x;
+ SELECT f76 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare double x;
+ SELECT f77 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare double unsigned x;
+ SELECT f78 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare double zerofill x;
+ SELECT f79 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare double unsigned zerofill x;
+ SELECT f80 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float not null x;
+ SELECT f81 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float unsigned not null x;
+ SELECT f82 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float zerofill not null x;
+ SELECT f83 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float unsigned zerofill not null x;
+ SELECT f84 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(0) not null x;
+ SELECT f85 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(23) not null x;
+ SELECT f86 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(0) unsigned not null x;
+ SELECT f87 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(23) unsigned not null x;
+ SELECT f88 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(0) zerofill not null x;
+ SELECT f89 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(23) zerofill not null x;
+ SELECT f90 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(0) unsigned zerofill not null x;
+ SELECT f91 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(23) unsigned zerofill not null x;
+ SELECT f92 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(24) not null x;
+ SELECT f93 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(53) not null x;
+ SELECT f94 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(24) unsigned not null x;
+ SELECT f95 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(53) unsigned not null x;
+ SELECT f96 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(24) zerofill not null x;
+ SELECT f97 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(53) zerofill not null x;
+ SELECT f98 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(24) unsigned zerofill not null x;
+ SELECT f99 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float(53) unsigned zerofill not null x;
+ SELECT f100 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare date not null x;
+ SELECT f101 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare time not null x;
+ SELECT f102 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare datetime not null x;
+ SELECT f103 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare timestamp not null x;
+ SELECT f104 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare year not null x;
+ SELECT f105 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare year(3) not null x;
+ SELECT f106 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare year(4) not null x;
+ SELECT f107 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare enum("1enum", "2enum") not null x;
+ SELECT f108 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare set("1set", "2set") not nul x;
+ SELECT f109 into x from tb2 limit 9998, 1;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.14:
+ ----------------
+Ensure that the handlers declared for a stored procedure (with the declare
+statement) may only be defined in the correct order;
+--source include/show_msg80.inc
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1337
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '23000' set @x2 = 1;
+ declare x char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1337
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '23000' set @x2 = 1;
+ declare x char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1337
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare cursor1 cursor for SELECT f1 from tb1;
+ declare x char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1337
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare cursor1 cursor for SELECT f1 from tb1;
+ declare sqlcondition condition for sqlstate '02000';
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1338
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare sqlcondition condition for sqlstate '02000';
+ declare continue handler for sqlcondition set @x=1;
+ declare cursor1 cursor for SELECT f1 from tb1;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.15:
+ ----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration);
+--source include/show_msg80.inc
+
+#FIXME 4.2.15: switched off until bug is fixed:
+#FIXME 4.2.15: Bug #14376 MySQL crash on scoped variable (re)initialization
+delimiter //;
+if (0)
+{
+ --disable_warnings
+ DROP PROCEDURE IF EXISTS sp_14376//
+ --enable_warnings
+ #--error 4711
+ CREATE PROCEDURE sp_14376()
+ BEGIN
+ DECLARE x1 CHAR(100) DEFAULT 'outer';
+ BEGIN
+ DECLARE x1 CHAR(100) DEFAULT x1;
+ END;
+ END//
+ CALL sp_14376()//
+ DROP PROCEDURE sp_14376()//
+}
+delimiter ;//
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z char default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z char ascii default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z tinytext default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z text default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z mediumtext default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z longtext default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z tinyblob default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z blob default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z mediumblob default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z longblob default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z binary default null;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z tinyint default -126;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z tinyint unsigned default 253;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z tinyint zerofill default -1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z tinyint unsigned zerofill default 1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z smallint default -32768;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z smallint unsigned default 65535;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z smallint zerofill default -1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z smallint unsigned zerofill default 1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z mediumint default -8388608;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z mediumint unsigned default 16777215;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z mediumint zerofill default -1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z mediumint unsigned zerofill default 1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z int default -2147483648;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z int unsigned default 4294967295;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z int zerofill default -1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z int unsigned zerofill default 1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z bigint default -9223372036854775808;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z bigint unsigned default 18446744073709551615;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z bigint zerofill default -1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z bigint unsigned zerofill default 1;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+#FIXME check again with -3.402823466e+38
+let $default_minus38= -34028234660123456789012345678901234567;
+
+delimiter //;
+eval CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z decimal default $default_minus38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z decimal unsigned default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+#FIXME check again with -3.402823466e+38
+delimiter //;
+eval CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z decimal zerofill default $default_minus38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z decimal unsigned zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z numeric default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z numeric unsigned default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z numeric zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z numeric unsigned zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed: default (10,0) for DECIMAL not checked
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z real default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z real unsigned default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z real zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z real unsigned zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z float default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z float unsigned default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z float zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z float unsigned zerofill default 1.175494351e-38;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+--replace_result e-038 e-38
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z date default '2005-02-02';
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z time default '12:20:12';
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z datetime default '2005-02-02 12:20:12';
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z timestamp default '20050202122012';
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z year default 2005;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z year(3) default 2005;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z year(4) default 2005;
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z enum("1enum", "2enum") default "2enum";
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x, y, z set("1set", "2set") default "2set";
+ SELECT x, y, z;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# clean up
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.16:
+ ----------------
+Ensure that the declare statement can declare multiple variables both separately
+and all at once from a variable list. (multiple declaration).;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6( )
+BEGIN
+ declare a, b char default '2';
+ declare c, d float default 1.3;
+ declare e, f text default 'text';
+ declare g, h enum("value1", "value2" ) default 'value1';
+ declare i, j datetime default '2005-02-02 12:12:12';
+ declare k, l blob default 'blob';
+ SELECT a, b, c, d, e, f, g, h, k, l;
+END//
+delimiter ;//
+
+CALL sp6();
+
+# clean up
+DROP PROCEDURE sp6;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.17:
+ ----------------
+Ensure that the invalid variable declarations are rejected, with an appropriate
+error message.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare @x char;
+ SELECT f2 into x from t2 limit 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare add char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare all char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare alter char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare analyze char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare and char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare as char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare asc char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare asensitive char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare before char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare between char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare bigint char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare binary char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare blob char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare both char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare by char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare CALL char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cascade char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare case char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare change char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare char char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare character char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare check char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare collate char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare column char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+#FIXME: check why _was_ this switched off
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare columns char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare condition char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare connection char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare constraint char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare convert char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare create char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cross char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare current_date char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare current_time char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare current_timestamp char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare current_user char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cursor char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare database char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare databases char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare day_hour char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare day_microsecond char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare day_minute char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare day_second char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare dec char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare decimal char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare declare char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare default char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare delayed char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare delete char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare desc char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare describe char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare deterministic char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare distinct char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare distinctrow char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare div char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare double char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare drop char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare dual char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare each char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare else char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare elseif char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare enclosed char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare escaped char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare exists char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare exit char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare explain char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare false char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare fetch char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+#FIXME: check why _was_ this switched off
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare fields char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare float char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare for char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare force char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare foreign char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+#FIXME: check why _was_ this switched off
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare found char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare from char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare fulltext char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare goto char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare grant char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare group char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare having char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare high_priority char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare hour_microsecond char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare hour_minute char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare hour_second char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare if char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare ignore char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare in char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare index char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare infile char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare inner char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare inout char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare insensitive char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare insert char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare int char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare integer char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare interval char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare into char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare is char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare iterate char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare join char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare key char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare keys char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare kill char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare leading char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare leave char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare left char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare like char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare limit char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare lines char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare load char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare localtime char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare localtimestamp char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare lock char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare long char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare longblob char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare longtext char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare loop char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare low_priority char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare match char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare mediumblob char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare mediumint char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare mediumtext char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare middleint char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare minute_microsecond char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare minute_second char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare mod char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare modifies char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare natural char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare not char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare no_write_to_binlog char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare null char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare numeric char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare on char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare optimize char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare option char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare optionally char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare or char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare order char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare out char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare outer char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare outfile char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare precision char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare primary char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare privileges char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare procedure char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare purge char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare read char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare reads char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare real char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare references char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare regexp char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare rename char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare repeat char;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare replace char;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare require char;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare restrict char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare return char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare revoke char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare right char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare rlike char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare schema char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare schemas char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare second_microsecond char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare SELECT char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sensitive char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare separator char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare set char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare show char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare smallint char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare soname char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare spatial char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare specific char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sql char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sqlexception char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sqlstate char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sqlwarning char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sql_big_result char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sql_calc_found_rows char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare sql_small_result char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare ssl char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare starting char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare straight_join char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare table char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+#FIXME: check why _was_ this switched off
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare tables char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare terminated char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare then char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare tinyblob char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare tinyint char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare tinytext char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare to char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare trailing char;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare trigger char;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare true char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare undo char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare union char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare unique char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare unlock char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare unsigned char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare update char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare usage char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare USE char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare using char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare utc_date char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare utc_time char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare utc_timestamp char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare values char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare varbinary char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare varchar char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare varcharacter char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare varying char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare when char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare where char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare while char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare with char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare write char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xor char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare year_month char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare zerofill char;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase :
+ ----------
+Ensure that every possible type of condition may be declared for a stored procedure
+( covered in more detail in handlers section.);
+--source include/show_msg80.inc
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate 'HY000';
+
+ declare cond2 condition for sqlstate '23000';
+
+ declare cond3 condition for sqlstate 'HY001';
+
+ declare cond4 condition for sqlstate '08004';
+
+ declare cond5 condition for sqlstate '08S01';
+
+ declare cond6 condition for sqlstate '42000';
+
+ declare cond7 condition for sqlstate '28000';
+
+ declare cond8 condition for sqlstate '3D000';
+
+ declare cond9 condition for sqlstate '42S01';
+
+ declare cond10 condition for sqlstate '42S02';
+
+ declare cond11 condition for sqlstate '42S22';
+
+ declare cond12 condition for sqlstate '21S01';
+
+ declare cond13 condition for sqlstate '42S21';
+
+ declare cond14 condition for sqlstate '42S12';
+
+ declare cond15 condition for sqlstate '22004';
+
+ declare cond16 condition for sqlstate '25000';
+
+ declare cond17 condition for sqlstate '40001';
+
+ declare cond18 condition for sqlstate '21000';
+
+ declare cond19 condition for sqlstate '01000';
+
+ declare cond20 condition for sqlstate '22003';
+
+ declare cond21 condition for sqlstate '22007';
+
+ declare cond22 condition for sqlstate '0A000';
+
+ declare cond23 condition for sqlstate '70100';
+
+ declare cond24 condition for sqlstate '2F005';
+
+ declare cond25 condition for sqlstate '24000';
+
+ declare cond26 condition for sqlstate '02000';
+
+ declare continue handler for cond2 set @x2 = 1;
+
+ declare continue handler for cond1 set @x2 = 1;
+
+ declare continue handler for cond3 set @x2 = 1;
+
+ declare continue handler for cond4 set @x2 = 1;
+
+ declare continue handler for cond5 set @x2 = 1;
+
+ declare continue handler for cond7 set @x2 = 1;
+
+ declare continue handler for cond6 set @x2 = 1;
+
+ declare continue handler for cond8 set @x2 = 1;
+
+ declare continue handler for cond9 set @x2 = 1;
+
+ declare continue handler for cond10 set @x2 = 1;
+
+ declare continue handler for cond11 set @x2 = 1;
+
+ declare continue handler for cond12 set @x2 = 1;
+
+ declare continue handler for cond13 set @x2 = 1;
+
+ declare continue handler for cond14 set @x2 = 1;
+
+ declare continue handler for cond15 set @x2 = 1;
+
+ declare continue handler for cond16 set @x2 = 1;
+
+ declare continue handler for cond17 set @x2 = 1;
+
+ declare continue handler for cond18 set @x2 = 1;
+
+ declare continue handler for cond19 set @x2 = 1;
+
+ declare continue handler for cond20 set @x2 = 1;
+
+ declare continue handler for cond21 set @x2 = 1;
+
+ declare continue handler for cond22 set @x2 = 1;
+
+ declare continue handler for cond23 set @x2 = 1;
+
+ declare continue handler for cond24 set @x2 = 1;
+
+ declare continue handler for cond25 set @x2 = 1;
+
+ declare continue handler for cond26 set @x2 = 1;
+
+
+ set @x = 1;
+
+ insert into t2 values (1);
+
+ set @x = 2;
+
+ insert into t2 values (1);
+
+ set @x = 3;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# clean up
+DROP PROCEDURE sp1;
+
+# testcase: ensure that invalid condition declarations are rejected, with an appropriate error message.
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare @x char;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x char1;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare add condition for sqlstate '02000';
+ declare exit handler for add set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare all condition for sqlstate '02000';
+ declare exit handler for all set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare alter condition for sqlstate '02000';
+ declare exit handler for alter set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare analyze condition for sqlstate '02000';
+ declare exit handler for analyze set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare and condition for sqlstate '02000';
+ declare exit handler for and set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare as condition for sqlstate '02000';
+ declare exit handler for as set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare asc condition for sqlstate '02000';
+ declare exit handler for asc set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare asensitive condition for sqlstate '02000';
+ declare exit handler for asensitive set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare before condition for sqlstate '02000';
+ declare exit handler for before set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare between condition for sqlstate '02000';
+ declare exit handler for between set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare bigint condition for sqlstate '02000';
+ declare exit handler for bigint set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare binary condition for sqlstate '02000';
+ declare exit handler for binary set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare blob condition for sqlstate '02000';
+ declare exit handler for blob set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare both condition for sqlstate '02000';
+ declare exit handler for both set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare by condition for sqlstate '02000';
+ declare exit handler for by set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare CALL condition for sqlstate '02000';
+ declare exit handler for CALL set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare cascade condition for sqlstate '02000';
+ declare exit handler for cascade set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare case condition for sqlstate '02000';
+ declare exit handler for case set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare change condition for sqlstate '02000';
+ declare exit handler for change set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char condition for sqlstate '02000';
+ declare exit handler for char set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare character condition for sqlstate '02000';
+ declare exit handler for character set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare check condition for sqlstate '02000';
+ declare exit handler for check set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare collate condition for sqlstate '02000';
+ declare exit handler for collate set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare column condition for sqlstate '02000';
+ declare exit handler for column set @var2 = 1;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+#FIXME: check why this is switched off
+#--error 1064
+#delimiter //;
+#CREATE PROCEDURE sp1( )
+# BEGIN
+# declare columns condition for sqlstate '02000';
+# declare exit handler for columns set @var2 = 1;
+#END//
+#delimiter ;//
+#DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare condition condition for sqlstate '02000';
+ declare exit handler for condition set @var2 = 1;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare connection condition for sqlstate '02000';
+ declare exit handler for connection set @var2 = 1;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare constraint condition for sqlstate '02000';
+ declare exit handler for constraint set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare continue condition for sqlstate '02000';
+ declare exit handler for continue set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare convert condition for sqlstate '02000';
+ declare exit handler for convert set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare create condition for sqlstate '02000';
+ declare exit handler for create set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare cross condition for sqlstate '02000';
+ declare exit handler for cross set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_date condition for sqlstate '02000';
+ declare exit handler for current_date set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_time condition for sqlstate '02000';
+ declare exit handler for current_time set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_timestamp condition for sqlstate '02000';
+ declare exit handler for current_timestamp set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_user condition for sqlstate '02000';
+ declare exit handler for current_user set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare cursor condition for sqlstate '02000';
+ declare exit handler for cursor set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare database condition for sqlstate '02000';
+ declare exit handler for database set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare databases condition for sqlstate '02000';
+ declare exit handler for databases set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_hour condition for sqlstate '02000';
+ declare exit handler for day_hour set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_microsecond condition for sqlstate '02000';
+ declare exit handler for day_microsecond set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_minute condition for sqlstate '02000';
+ declare exit handler for day_minute set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_second condition for sqlstate '02000';
+ declare exit handler for day_second set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare dec condition for sqlstate '02000';
+ declare exit handler for dec set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal condition for sqlstate '02000';
+ declare exit handler for decimal set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare declare condition for sqlstate '02000';
+ declare exit handler for declare set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare default condition for sqlstate '02000';
+ declare exit handler for default set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare delayed condition for sqlstate '02000';
+ declare exit handler for delayed set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare delete condition for sqlstate '02000';
+ declare exit handler for delete set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare desc condition for sqlstate '02000';
+ declare exit handler for desc set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare describe condition for sqlstate '02000';
+ declare exit handler for describe set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare deterministic condition for sqlstate '02000';
+ declare exit handler for deterministic set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare distinct condition for sqlstate '02000';
+ declare exit handler for distinct set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare distinctrow condition for sqlstate '02000';
+ declare exit handler for distinctrow set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare div condition for sqlstate '02000';
+ declare exit handler for div set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare double condition for sqlstate '02000';
+ declare exit handler for double set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare drop condition for sqlstate '02000';
+ declare exit handler for drop set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare dual condition for sqlstate '02000';
+ declare exit handler for dual set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare each condition for sqlstate '02000';
+ declare exit handler for each set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare else condition for sqlstate '02000';
+ declare exit handler for else set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare elseif condition for sqlstate '02000';
+ declare exit handler for elseif set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare enclosed condition for sqlstate '02000';
+ declare exit handler for enclosed set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare escaped condition for sqlstate '02000';
+ declare exit handler for escaped set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare exists condition for sqlstate '02000';
+ declare exit handler for exists set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare exit condition for sqlstate '02000';
+ declare exit handler for exit set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare explain condition for sqlstate '02000';
+ declare exit handler for explain set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare false condition for sqlstate '02000';
+ declare exit handler for false set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare fetch condition for sqlstate '02000';
+ declare exit handler for fetch set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1( )
+ BEGIN
+ declare fields condition for sqlstate '02000';
+ declare exit handler for fields set @var2 = 1;
+END//
+delimiter ;//
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float condition for sqlstate '02000';
+ declare exit handler for float set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare for condition for sqlstate '02000';
+ declare exit handler for for set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare force condition for sqlstate '02000';
+ declare exit handler for force set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare foreign condition for sqlstate '02000';
+ declare exit handler for foreign set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+#FIXME: check why _was_ this switched off
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare found condition for sqlstate '02000';
+ declare exit handler for found set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare from condition for sqlstate '02000';
+ declare exit handler for from set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare fulltext condition for sqlstate '02000';
+ declare exit handler for fulltext set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare goto condition for sqlstate '02000';
+ declare exit handler for goto set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare grant condition for sqlstate '02000';
+ declare exit handler for grant set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare group condition for sqlstate '02000';
+ declare exit handler for group set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare having condition for sqlstate '02000';
+ declare exit handler for having set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare high_priority condition for sqlstate '02000';
+ declare exit handler for high_priority set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare hour_microsecond condition for sqlstate '02000';
+ declare exit handler for hour_microsecond set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare hour_minute condition for sqlstate '02000';
+ declare exit handler for hour_minute set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare hour_second condition for sqlstate '02000';
+ declare exit handler for hour_second set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare if condition for sqlstate '02000';
+ declare exit handler for if set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare ignore condition for sqlstate '02000';
+ declare exit handler for ignore set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare in condition for sqlstate '02000';
+ declare exit handler for in set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare index condition for sqlstate '02000';
+ declare exit handler for index set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare infile condition for sqlstate '02000';
+ declare exit handler for infile set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare inner condition for sqlstate '02000';
+ declare exit handler for inner set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare inout condition for sqlstate '02000';
+ declare exit handler for inout set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare insensitive condition for sqlstate '02000';
+ declare exit handler for insensitive set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare insert condition for sqlstate '02000';
+ declare exit handler for insert set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare int condition for sqlstate '02000';
+ declare exit handler for int set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare integer condition for sqlstate '02000';
+ declare exit handler for integer set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare interval condition for sqlstate '02000';
+ declare exit handler for interval set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare into condition for sqlstate '02000';
+ declare exit handler for into set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare is condition for sqlstate '02000';
+ declare exit handler for is set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare iterate condition for sqlstate '02000';
+ declare exit handler for iterate set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare join condition for sqlstate '02000';
+ declare exit handler for join set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare key condition for sqlstate '02000';
+ declare exit handler for key set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare keys condition for sqlstate '02000';
+ declare exit handler for keys set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare kill condition for sqlstate '02000';
+ declare exit handler for kill set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare leading condition for sqlstate '02000';
+ declare exit handler for leading set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare leave condition for sqlstate '02000';
+ declare exit handler for leave set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare left condition for sqlstate '02000';
+ declare exit handler for left set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare like condition for sqlstate '02000';
+ declare exit handler for like set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare limit condition for sqlstate '02000';
+ declare exit handler for limit set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare lines condition for sqlstate '02000';
+ declare exit handler for lines set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare load condition for sqlstate '02000';
+ declare exit handler for load set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare localtime condition for sqlstate '02000';
+ declare exit handler for localtime set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare localtimestamp condition for sqlstate '02000';
+ declare exit handler for localtimestamp set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare lock condition for sqlstate '02000';
+ declare exit handler for lock set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare long condition for sqlstate '02000';
+ declare exit handler for long set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare longblob condition for sqlstate '02000';
+ declare exit handler for longblob set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare longtext condition for sqlstate '02000';
+ declare exit handler for longtext set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare loop condition for sqlstate '02000';
+ declare exit handler for loop set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare low_priority condition for sqlstate '02000';
+ declare exit handler for low_priority set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare match condition for sqlstate '02000';
+ declare exit handler for match set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumblob condition for sqlstate '02000';
+ declare exit handler for mediumblob set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumint condition for sqlstate '02000';
+ declare exit handler for mediumint set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumtext condition for sqlstate '02000';
+ declare exit handler for mediumtext set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare middleint condition for sqlstate '02000';
+ declare exit handler for middleint set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare minute_microsecond condition for sqlstate '02000';
+ declare exit handler for minute_microsecond set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare minute_second condition for sqlstate '02000';
+ declare exit handler for minute_second set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mod condition for sqlstate '02000';
+ declare exit handler for mod set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare modifies condition for sqlstate '02000';
+ declare exit handler for modifies set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare natural condition for sqlstate '02000';
+ declare exit handler for natural set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare not condition for sqlstate '02000';
+ declare exit handler for not set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare no_write_to_binlog condition for sqlstate '02000';
+ declare exit handler for no_write_to_binlog set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare null condition for sqlstate '02000';
+ declare exit handler for null set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric condition for sqlstate '02000';
+ declare exit handler for numeric set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare on condition for sqlstate '02000';
+ declare exit handler for on set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare optimize condition for sqlstate '02000';
+ declare exit handler for optimize set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare option condition for sqlstate '02000';
+ declare exit handler for option set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare optionally condition for sqlstate '02000';
+ declare exit handler for optionally set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare or condition for sqlstate '02000';
+ declare exit handler for or set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare order condition for sqlstate '02000';
+ declare exit handler for order set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare out condition for sqlstate '02000';
+ declare exit handler for out set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare outer condition for sqlstate '02000';
+ declare exit handler for outer set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare outfile condition for sqlstate '02000';
+ declare exit handler for outfile set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare precision condition for sqlstate '02000';
+ declare exit handler for precision set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare primary condition for sqlstate '02000';
+ declare exit handler for primary set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+#FIXME: why was this switched off ?
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare privileges condition for sqlstate '02000';
+ declare exit handler for privileges set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare procedure condition for sqlstate '02000';
+ declare exit handler for procedure set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare purge condition for sqlstate '02000';
+ declare exit handler for purge set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare read condition for sqlstate '02000';
+ declare exit handler for read set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare reads condition for sqlstate '02000';
+ declare exit handler for reads set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare real condition for sqlstate '02000';
+ declare exit handler for real set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare references condition for sqlstate '02000';
+ declare exit handler for references set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare regexp condition for sqlstate '02000';
+ declare exit handler for regexp set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare rename condition for sqlstate '02000';
+ declare exit handler for rename set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare repeat condition for sqlstate '02000';
+ declare exit handler for repeat set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare replace condition for sqlstate '02000';
+ declare exit handler for replace set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare require condition for sqlstate '02000';
+ declare exit handler for require set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare restrict condition for sqlstate '02000';
+ declare exit handler for restrict set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare return condition for sqlstate '02000';
+ declare exit handler for return set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare revoke condition for sqlstate '02000';
+ declare exit handler for revoke set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare right condition for sqlstate '02000';
+ declare exit handler for right set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare rlike condition for sqlstate '02000';
+ declare exit handler for rlike set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare schema condition for sqlstate '02000';
+ declare exit handler for schema set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare schemas condition for sqlstate '02000';
+ declare exit handler for schemas set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare second_microsecond condition for sqlstate '02000';
+ declare exit handler for second_microsecond set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare SELECT condition for sqlstate '02000';
+ declare exit handler for SELECT set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sensitive condition for sqlstate '02000';
+ declare exit handler for sensitive set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare separator condition for sqlstate '02000';
+ declare exit handler for separator set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare set condition for sqlstate '02000';
+ declare exit handler for set set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare show condition for sqlstate '02000';
+ declare exit handler for show set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare smallint condition for sqlstate '02000';
+ declare exit handler for smallint set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare soname condition for sqlstate '02000';
+ declare exit handler for soname set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare spatial condition for sqlstate '02000';
+ declare exit handler for spatial set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare specific condition for sqlstate '02000';
+ declare exit handler for specific set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql condition for sqlstate '02000';
+ declare exit handler for sql set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sqlexception condition for sqlstate '02000';
+ declare exit handler for sqlexception set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sqlstate condition for sqlstate '02000';
+ declare exit handler for sqlstate set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sqlwarning condition for sqlstate '02000';
+ declare exit handler for sqlwarning set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql_big_result condition for sqlstate '02000';
+ declare exit handler for sql_big_result set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql_calc_found_rows condition for sqlstate '02000';
+ declare exit handler for sql_calc_found_rows set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql_small_result condition for sqlstate '02000';
+ declare exit handler for sql_small_result set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare ssl condition for sqlstate '02000';
+ declare exit handler for ssl set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare starting condition for sqlstate '02000';
+ declare exit handler for starting set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare straight_join condition for sqlstate '02000';
+ declare exit handler for straight_join set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare table condition for sqlstate '02000';
+ declare exit handler for table set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+#FIXME: why was this switched off ?
+#FIXME check this is OK:--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tables condition for sqlstate '02000';
+ declare exit handler for tables set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare terminated condition for sqlstate '02000';
+ declare exit handler for terminated set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare then condition for sqlstate '02000';
+ declare exit handler for then set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyblob condition for sqlstate '02000';
+ declare exit handler for tinyblob set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyint condition for sqlstate '02000';
+ declare exit handler for tinyint set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinytext condition for sqlstate '02000';
+ declare exit handler for tinytext set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare to condition for sqlstate '02000';
+ declare exit handler for to set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare trailing condition for sqlstate '02000';
+ declare exit handler for trailing set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare trigger condition for sqlstate '02000';
+ declare exit handler for trigger set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare true condition for sqlstate '02000';
+ declare exit handler for true set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare undo condition for sqlstate '02000';
+ declare exit handler for undo set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare union condition for sqlstate '02000';
+ declare exit handler for union set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare unique condition for sqlstate '02000';
+ declare exit handler for unique set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare unlock condition for sqlstate '02000';
+ declare exit handler for unlock set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare unsigned condition for sqlstate '02000';
+ declare exit handler for unsigned set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare update condition for sqlstate '02000';
+ declare exit handler for update set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare usage condition for sqlstate '02000';
+ declare exit handler for usage set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare USE condition for sqlstate '02000';
+ declare exit handler for USE set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare using condition for sqlstate '02000';
+ declare exit handler for using set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare utc_date condition for sqlstate '02000';
+ declare exit handler for utc_date set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare utc_time condition for sqlstate '02000';
+ declare exit handler for utc_time set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare utc_timestamp condition for sqlstate '02000';
+ declare exit handler for utc_timestamp set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare values condition for sqlstate '02000';
+ declare exit handler for values set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varbinary condition for sqlstate '02000';
+ declare exit handler for varbinary set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varchar condition for sqlstate '02000';
+ declare exit handler for varchar set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varcharacter condition for sqlstate '02000';
+ declare exit handler for varcharacter set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varying condition for sqlstate '02000';
+ declare exit handler for varying set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare when condition for sqlstate '02000';
+ declare exit handler for when set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare where condition for sqlstate '02000';
+ declare exit handler for where set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare while condition for sqlstate '02000';
+ declare exit handler for while set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare with condition for sqlstate '02000';
+ declare exit handler for with set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare write condition for sqlstate '02000';
+ declare exit handler for write set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare xor condition for sqlstate '02000';
+ declare exit handler for xor set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare year_month condition for sqlstate '02000';
+ declare exit handler for year_month set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare zerofill condition for sqlstate '02000';
+ declare exit handler for zerofill set @var2 = 1;
+END//
+delimiter ;//
+
+# ------------------------------------------------------------------------------
+let $message= Testcase :
+ ----------
+Ensure that every possible type of handler may be declared for
+a stored procedure (continue- handler_type ).;
+--source include/show_msg80.inc
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '23000' set @x2 = 1;
+
+ set @x = 1;
+
+ insert into t2(f1) values (1);
+
+ set @x = 2;
+
+ insert into t2(f1) values (1);
+
+ set @x = 3;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+
+DROP PROCEDURE sp1;
+
+
+# testcase: ensure that every possible type of handler may be declared
+# for a stored procedure (undo - handler_type ).
+# ?????????? undo handler not supported as of now
+
+
+DROP PROCEDURE IF EXISTS handler1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE handler1()
+BEGIN
+ declare undo handler for sqlstate '23000' set @x2 = 1;
+
+ set @x = 1;
+
+ insert into t values (1);
+
+ set @x = 2;
+
+ insert into t values (1);
+
+ set @x = 3;
+END//
+delimiter ;//
+
+# testcase: ensure that invalid handler declarations are rejected with an
+# appropriate error message. (continue- handler_type).
+
+
+DROP PROCEDURE IF EXISTS handler1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE handler1()
+BEGIN
+ declare continueinv handler for sqlstate '2300' set @x2 = 1;
+
+ set @x = 1;
+
+ insert into t values (1);
+
+ set @x = 2;
+
+ insert into t values (1);
+
+ set @x = 3;
+END//
+delimiter ;//
+
+# testcase: ensure that invalid handler declarations are rejected with
+# an appropriate error message (undo - handler_type ).
+
+
+DROP PROCEDURE IF EXISTS handler1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE handler1()
+BEGIN
+ declare undoinv handler for sqlstate '2300' set @x2 = 1;
+
+ set @x = 1;
+
+ insert into t values (1);
+
+ set @x = 2;
+
+ insert into t values (1);
+
+ set @x = 3;
+END//
+delimiter ;//
+
+# testcase: ensure that invalid handler declarations are rejected with an
+# appropriate error message (exit- handler_type )
+
+
+DROP PROCEDURE IF EXISTS handler1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE handler1 ()
+BEGIN
+ declare exitinv handler for sqlstate '2300' set @x2 = 1;
+
+ set @x = 1;
+
+ insert into t values (1);
+
+ set @x = 2;
+
+ insert into t values (1);
+
+ set @x = 3;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare add handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare all handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare alter handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare analyze handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare and handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare as handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare asc handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare asensitive handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare before handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare between handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare bigint handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare binary handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare blob handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare both handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare by handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare CALL handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare cascade handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare case handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare change handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare char handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare character handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare check handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare collate handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare column handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare columns handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare condition handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare connection handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare constraint handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+#FIXME: check why this is switched off
+#--error 1064
+#delimiter //;
+#CREATE PROCEDURE sp1( )
+# BEGIN
+# declare continue handler for sqlstate '02000' set @var2 = 1;
+#END//
+#delimiter ;//
+#DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare convert handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare create handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare cross handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_date handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_time handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_timestamp handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare current_user handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare cursor handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare database handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare databases handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_hour handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_microsecond handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_minute handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare day_second handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare dec handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare decimal handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare declare handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare default handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare delayed handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare delete handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare desc handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare describe handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare deterministic handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare distinct handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare distinctrow handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare div handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare double handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare drop handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare dual handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare each handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare else handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare elseif handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare enclosed handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare escaped handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare exists handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+#FIXME: check why this is switched off
+#--error 1064
+#delimiter //;
+#CREATE PROCEDURE sp1( )
+# BEGIN
+# declare exit handler for sqlstate '02000' set @var2 = 1;
+#END//
+#delimiter ;//
+#DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare explain handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare false handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare fetch handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare fields handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare float handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare for handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare force handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare foreign handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare found handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare from handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare fulltext handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare goto handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare grant handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare group handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare having handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare high_priority handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare hour_microsecond handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare hour_minute handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare hour_second handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare if handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare ignore handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare in handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare index handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare infile handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare inner handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare inout handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare insensitive handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare insert handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare int handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare integer handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare interval handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare into handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare is handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare iterate handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare join handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare key handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare keys handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare kill handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare leading handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare leave handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare left handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare like handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare limit handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare lines handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare load handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare localtime handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare localtimestamp handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare lock handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare long handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare longblob handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare longtext handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare loop handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare low_priority handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare match handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumblob handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumint handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mediumtext handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare middleint handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare minute_microsecond handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare minute_second handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare mod handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare modifies handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare natural handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare not handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare no_write_to_binlog handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare null handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare numeric handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare on handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare optimize handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare option handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare optionally handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare or handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare order handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare out handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare outer handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare outfile handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare precision handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare primary handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare privileges handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare procedure handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare purge handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare read handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare reads handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare real handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare references handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare regexp handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare rename handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare repeat handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare replace handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare require handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare restrict handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare return handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare revoke handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare right handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare rlike handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare schema handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare schemas handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare second_microsecond handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare SELECT handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sensitive handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare separator handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare set handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare show handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare smallint handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare soname handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare spatial handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare specific handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sqlexception handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sqlstate handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sqlwarning handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql_big_result handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql_calc_found_rows handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare sql_small_result handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare ssl handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare starting handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare straight_join handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare table handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tables handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare terminated handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare then handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyblob handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinyint handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare tinytext handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare to handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare trailing handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare trigger handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare true handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare undo handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare union handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare unique handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare unlock handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare unsigned handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare update handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare usage handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare USE handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare using handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare utc_date handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare utc_time handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare utc_timestamp handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare values handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varbinary handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varchar handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varcharacter handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare varying handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare when handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare where handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare while handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare with handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare write handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare xor handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare year_month handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare zerofill handler for sqlstate '02000' set @var2 = 1;
+END//
+delimiter ;//
+
+
+# ==============================================================================
+#
+# test plan section: 4.2 - syntax checks for programming statements - 2
+#
+# ==============================================================================
+
+
+USE db_storedproc;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.26:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the scope of every variable, cursor, condition and handler
+# declared for a stored procedure (with the declare statement) is properly applied.
+
+
+set @v1='0';
+set @v2='0';
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x char;
+ declare y char;
+ declare cond1 condition for sqlstate '42000';
+ declare cur1 cursor for SELECT f1 from t2 limit 1;
+ declare continue handler for cond1 set @x = 4;
+ set @x = '1';
+ set @y = '2';
+ BEGIN
+ declare x char;
+ declare y char;
+ declare cur1 cursor for SELECT f1 from t2 limit 2, 1;
+ declare continue handler for sqlstate '42000' set @x = 3;
+ open cur1;
+ fetch cur1 into y;
+ close cur1;
+ CALL nonsexist();
+ SELECT x, y, @x;
+ END;
+ open cur1;
+ fetch cur1 into y;
+ close cur1;
+ CALL nonsexist();
+ set @v1 = @x;
+ set @v2 = y;
+END//
+delimiter ;//
+
+CALL sp1();
+ SELECT @v1, @v2;
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.28:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the set statement can assign a value to every local variable
+# declared within a stored procedures definition, as well as to every
+# appropriate global server variable.
+
+set @x=0;
+set @y=0;
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 1;
+ set session sort_buffer_size = 10 * 1024 * 1024;
+ SELECT @@sort_buffer_size;
+ set @x = 4;
+ set @y = 3;
+ set global sort_buffer_size = 2 * 1024 * 1024;
+ SELECT @@sort_buffer_size;
+ set @@sort_buffer_size = 10 * 1024 * 1024;
+ SELECT @@sort_buffer_size;
+END//
+delimiter ;//
+CALL sp1();
+SELECT @x, @y;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.29:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the set statement can assign values to variables either
+# separately or multiple variables in a list.
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx char default 'x';
+ declare xy char default 'y';
+ declare xz char default 'z';
+ set @xx = xx, @xy = xy;
+ set @xz = xz;
+ SELECT @xx, @xy, @xz;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.30:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the set statement may assign only those values to a variable
+# that are appropriate for that variables data type definition
+
+# integer data_type.
+
+ set @xx=0;
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx int;
+ set xx = 'asd';
+ set @xx = xx;
+ SELECT @xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx int;
+ set xx = 5;
+ set @xx = xx;
+ SELECT @xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.31 - a:;
+--source include/show_msg80.inc
+
+# character data_type
+
+ set @xx=0;
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx char;
+ set xx = 'temp';
+ set @xx = xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+ SELECT @xx;
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.31 - b:;
+--source include/show_msg80.inc
+
+# float data_type
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx float;
+ set xx = 'asd';
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx float;
+ set xx = 1.6;
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.31 - c:;
+--source include/show_msg80.inc
+
+# datetime data_type
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx datetime;
+ set xx = 'asd';
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx datetime;
+ set xx = '2006-06-06 01:01:01';
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.31 - d:;
+--source include/show_msg80.inc
+
+# varchar data_type
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx varchar(20);
+ set xx = "abcdefghijk";
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.31 - e:;
+--source include/show_msg80.inc
+
+# tinyint
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx tinyint;
+ set xx = 'asd';
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare xx tinyint;
+ set xx = -125;
+ SELECT xx;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.37:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the SELECT into statement that retrieves column values
+# with inappropriate data types for the matching variables in its variable
+# list is rejected, with an appropriate error message.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare x integer; declare y integer;
+ SELECT sal, f2 into x, y from t2 limit 1;
+ set @x=x; set @y=y;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x char ascii;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x tinytext;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x text;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x mediumtext;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x longtext;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x tinyblob;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x blob;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x mediumblob;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x longblob;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x binary;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x tinyint;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x tinyint unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x tinyint zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x tinyint unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x smallint;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x smallint unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x smallint zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x smallint unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x mediumint;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x mediumint unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x mediumint zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x mediumint unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x int;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x int unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x int zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x int unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x bigint;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x bigint unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x bigint zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x bigint unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x decimal;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x decimal unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x decimal zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x decimal unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x numeric;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x numeric unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x numeric zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x numeric unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x real;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x real unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x real zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x real unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x float;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x float unsigned;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x float zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x float unsigned zerofill;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x date;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x time;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x datetime;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x timestamp;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x year;
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x year(3);
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x year(4);
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x enum("1enum", "2enum");
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare x set("1set", "2set");
+ SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.38:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare condition for statement can declare a properly
+# named condition for every possible sqlstate and mysql-specific error code.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare notable condition for sqlstate '42S02';
+ declare continue handler for notable set @x2=1;
+ set @x = 1;
+ insert into t2(f1) values (1);
+ set @x = 2;
+ insert into t2(f1) values (1);
+ set @x = 3;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.39:;
+--source include/show_msg80.inc
+
+# testcase: ensure that no two conditions declared with the same scope may have the
+# same condition name (same condition name in same scope)
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1332
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '42000';
+ declare cond1 condition for sqlstate '23000';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values(1);
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.41:;
+--source include/show_msg80.inc
+
+# testcase: ensure that every sqlstate value declared with a declare condition for
+# statement is a character string that is 5 character.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '1';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '12';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '123';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '1234';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '123456';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.42:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare condition for statement cannot declare a
+# condition for an invalid sqlstate. (bug associated) (Bug#8760)
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate 'abcdefghi';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '42000test';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '00000@#$%^&';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate 'null';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate ' ';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate 1234567890;
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '2005-03-03';
+ declare continue handler for cond1 set @var2 = 1;
+ insert into tnull values( 1);
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.43:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare condition for statement cannot declare a
+# condition for the successful completion sqlstate: 00000. (bug associated)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare cond1 condition for sqlstate '00000';
+ declare continue handler for cond1 set @var2 = 1;
+ set @x=1;
+ SELECT @var2;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.45:;
+--source include/show_msg80.inc
+
+# testcase: ensure that within the same scope, no two handlers may be declared for the same condition.
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1413
+CREATE PROCEDURE handler1 ()
+BEGIN
+ declare continue handler for sqlstate '23000' set @varr1 = 5;
+ declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS handler1;
+
+delimiter //;
+--error 1413
+CREATE PROCEDURE handler1 ()
+BEGIN
+ declare mycondition condition for sqlstate '23000';
+ declare continue handler for mycondition set @varr3 = 7;
+ declare continue handler for sqlstate '23000' set @varr3 = 7;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.46:;
+--source include/show_msg80.inc
+
+# testcase: ensure that every sqlstate value declared with a declare handler for
+# statement is a character string that is 5 characters long (bug associated).
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '1' set @var2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '12' set @var2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '123' set @var2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '1234' set @var2 = 1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '123456' set @var2 = 1;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.47:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare handler for statement cannot declare a condition
+# for an invalid sqlstate. (bug associated)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1407
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '42s0200test' set @var2 = 1;
+ insert into tnull values( 1);
+ SELECT @var2;
+END//
+delimiter ;//
+
+# cleanup
+#drop table IF EXISTS tnull;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.48:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare handler for statement cannot declare a condition
+# for the successful completion sqlstate: 00000. (bug associated)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare continue handler for sqlstate '00000' set @var2 = 1;
+ set @x=1;
+ SELECT @var2;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.52:;
+--source include/show_msg80.inc
+
+# testcase: ensure that no two cursors in a stored procedure can have the same name.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1333
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ declare cur1 cursor for SELECT f1, f2 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newlf1, newf3, newsal;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.53:;
+--source include/show_msg80.inc
+
+# testcase: ensure that a cursor declaration may not include a SELECT into statement.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1323
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, lf1, f3, f4 into @w, @x, @y, @z from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newlf1, newf3, newsal;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.54:;
+--source include/show_msg80.inc
+
+# testcase: ensure that a cursor declaration that includes an order by
+# claUSE may not be an updateable cursor.
+
+#FIXME: testcase empty / missing
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.55:;
+--source include/show_msg80.inc
+
+# testcase: ensure that open <cursor name> fails unless a cursor with
+# the same name has already been declared.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+--error 1324
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 0;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf3, newf4;
+ set count = count - 1;
+ END while;
+ END;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+#suppressed (Bug# 8892)
+--error 1325
+CALL sp1();
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.56:;
+--source include/show_msg80.inc
+
+# testcase: ensure that open <cursor name> fails if the same cursor is currently already open.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+--error 1325
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.57:;
+--source include/show_msg80.inc
+
+# testcase: ensure that fetch <cursor name> fails unless a cursor with the same name is already open.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2;
+ declare cur2 cursor for SELECT f1, f2 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur2;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.59:;
+--source include/show_msg80.inc
+
+# testcase: ensure that fetch <cursor name> fails with an appropriate error message
+# if it is executed before the cursor has been opened.
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ open cur1;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 0;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ BEGIN
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf3, newf4;
+ set count = count - 1;
+ END while;
+ open cur1;
+ close cur1;
+ END;
+ close cur1;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.60:;
+--source include/show_msg80.inc
+
+# testcase: ensure that fetch <cursor name> fails with an appropriate error message
+# if it is executed after the cursor has been closed.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ close cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ END;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 0;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ close cur1;
+ BEGIN
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ open cur1;
+ END;
+ fetch cur1 into newf1, newf2, newf3, newf4;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.62:;
+--source include/show_msg80.inc
+
+# testcase: ensure that fetch <cursor name> fails with an appropriate error message
+# if the data type of the column values being fetched are not appropriate
+# for the matching fetch variables to which the data is being assigned.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf2 char(20);
+ declare newf1 date;
+ declare cur1 cursor for SELECT f1, f3 from t2 limit 20, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2;
+ set @x = newf1;
+ set @y = newf2;
+ SELECT @x, @y;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+#FIXME check that here NO error occurs: suppressed for bug (Bug# 8702)
+#--error 1146
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.63:;
+--source include/show_msg80.inc
+
+# testcase: ensure that close <cursor name> fails unless a cursor with the same name is already open.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ close cur1;
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ close cur1;
+ END;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 0;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ declare cur1 cursor for SELECT f1, f2, f3, f4 from t2;
+ open cur1;
+ END;
+ close cur1;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.64:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all cursors are closed when a transaction terminates with a commit statement.
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+ BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ BEGIN
+ open cur1;
+ start transaction;
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ commit;
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ END;
+END//
+delimiter ;//
+
+#FIXME check this error, in 5.0.11 the error occurs. Is this wanted?
+# suppressed for bug (Bug#8756)
+--error 1329
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.65:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all cursors are closed when a transaction terminates with a rollback statement.
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ BEGIN
+ open cur1;
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ rollback;
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ commit;
+ END;
+END//
+delimiter ;//
+
+#FIXME check this error, in 5.0.11 the error occurs. Is this wanted?
+##suppressed for bug (Bug#8756)
+--error 1329
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.66:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the result set of the cursor that has been closed is not
+# longer available to the fetch statement.
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ close cur1;
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ END;
+END//
+delimiter ;//
+
+--error 1326
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.67:;
+--source include/show_msg80.inc
+
+# testcase: ensure that cursor declared within a compound statement is closed when
+# that compound statement ends (without cursor close statement)
+
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 20, 10;
+ declare continue handler for sqlstate '02000' set done = 1;
+ BEGIN
+ open cur1;
+ set count = count - 1;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ END;
+END//
+delimiter ;//
+
+CALL sp1();
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.2.70:;
+--source include/show_msg80.inc
+
+# testcase: ensure that multiple cursors, nested within multiple compound statements
+# within a stored procedure always act correctly and return the expected result.
+
+ create table temp1( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+ create table temp2( f1 char(20), f2 char(20), f3 int, f4 char(20) );
+
+DROP PROCEDURE IF EXISTS sp1;
+
+delimiter //;
+CREATE PROCEDURE sp1( )
+BEGIN
+ declare done int default 0;
+ declare count integer default 20;
+ declare newf1 char(20);
+ declare newf2 char(20);
+ declare newf3 char(20);
+ declare newf4 integer;
+ declare newf21 char(20);
+ declare newf22 char(20);
+ declare newf23 char(20);
+ declare newf24 integer;
+ declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 7, 1;
+ declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 15, 1;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ BEGIN
+ set count = 10;
+ BEGIN
+ open cur2;
+ while count <> 0 do
+ fetch cur1 into newf1, newf2, newf4, newf3;
+ set count = count - 1;
+ END while;
+ END;
+ insert into temp1 values(newf1, newf2, newf4, newf3);
+ close cur1;
+ END;
+ BEGIN
+ while count <> 0 do
+ fetch cur2 into newf21, newf22, newf24, newf23;
+ set count = count - 1;
+ END while;
+ END;
+ insert into temp2 values(newf21, newf22, newf24, newf23);
+ close cur2;
+END//
+delimiter ;//
+
+CALL sp1();
+
+SELECT * from temp1;
+SELECT * from temp2;
+
+# cleanup
+DROP PROCEDURE sp1;
+drop table temp1;
+drop table temp2;
+
+
+# ==============================================================================
+let $message= Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements
+ . IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.1:;
+--source include/show_msg80.inc
+
+# testcase : ensure that all clauses that should be supported are supported
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+--enable_warnings
+
+#FIXME: change back to $engine_type for INNODB and MYISAM, but MEMORY doesn't support this
+eval CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742(
+ middleinitial CHAR,
+ lastname VARCHAR(50),
+ age_averylongfieldname_averylongname_1234569 int,
+ COMMENT TEXT) ENGINE=innodb;
+# COMMENT TEXT) ENGINE=$engine_type;
+
+INSERT INTO res_t3_itisalongname_1381742_itsaverylongname_1381742
+ VALUES('a', 'aaaaaaaaaabbbbbbbbc', 0, 'default');
+
+delimiter //;
+CREATE PROCEDURE sp1(a int)
+BEGIN
+ declare itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx char;
+ declare itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx varchar(100);
+ declare itisjustamediumsizeintintegervariablename integer;
+ set itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx = 'b';
+ set itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx = 'oldmacdonalds)(*&(^^%$&^%$&^%*^)(*^#@$@%';
+ set itisjustamediumsizeintintegervariablename = 5;
+ set @comment='a';
+ label1: loop
+ if a>100 then
+ set @comment='value of a is greater than 100';
+ elseif a<100 then
+ if a<50 then
+ set @comment='value of a is less than 50';
+ elseif a<25 then
+ set @comment='value of a is less than 25';
+ else
+ set @comment='value of a is greater than 50 and less than 100';
+ END if;
+ else
+ set @comment='value of a is 100';
+ END if;
+
+ if itisjustamediumsizeintintegervariablename = 0 then leave label1;
+ END if;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+ values( itisjustaverylargevariablename_xxxxxxxxxxxxxxxxxxxxx,
+ concat(itisjustaverylargevarcharvariablename_xxxxxxxxxxxxxxxxxxxxx, ' ', a),
+ a, @comment );
+ set itisjustamediumsizeintintegervariablename = itisjustamediumsizeintintegervariablename - 1;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+CALL sp1(101);
+
+CALL sp1(100);
+
+CALL sp1(75);
+
+CALL sp1(40);
+
+CALL sp1(20);
+
+CALL sp1(-1);
+
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742
+ ORDER BY middleinitial, lastname, age_averylongfieldname_averylongname_1234569;
+
+# cleanup
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.2:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all clauses that should be supported are supported (case, while, repeat)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp2( action char(20) )
+BEGIN
+ declare v1 char(20);
+ declare v2 char(20);
+ declare count integer;
+ set v1 = 'f1';
+ set v2 = 'address';
+ set count = 1;
+ case when action = 'delete' then
+ insert into t3 values(v1, v2, count);
+ delete from t3 where f1=v1;
+ when action = 'insert' then
+ repeat
+ insert into t3 values(v1, v2, count);
+ set count = count + 1;
+ until count > 5
+ END repeat;
+ set count = 1;
+ label1: repeat
+ insert into t3 values(v1, v2, count);
+ if count > 5 then leave label1;
+ END if;
+ set count = count + 1;
+ until count > 5
+ END repeat;
+ set count = 1;
+ while count < 5 do
+ insert into t3 values(v1, v2, count);
+ set count = count + 1;
+ END while;
+ set count = 1;
+ label1: while count < 5 do
+ insert into t3 values(v1, v2, count);
+ if count > 5 then leave label1;
+ END if;
+ set count = count + 1;
+ END while;
+ else
+ set @dummystring = 'temp value';
+ END case;
+END//
+delimiter ;//
+
+CALL sp2( 'insert' );
+SELECT * from t3 where f3 <=5 && f3 >= 0;
+
+SELECT count(*) from t3;
+CALL sp2( 'delete' );
+SELECT count(*) from t3;
+
+CALL sp2 ('test');
+SELECT @dummystring;
+
+# cleanup
+DROP PROCEDURE sp2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.1.2:
+ ---------------
+Ensure that all sub-clauses that should not be supported are disallowed with
+an appropriate error message. (case);
+--source include/show_msg80.inc
+
+
+--disable_warnings
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742 (name char, address varchar(50), age_averylongfieldname_averylongname_1234569 smallint);
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: case
+ when action = 'delete' then
+ delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+else
+ set @dummystring = 'temp value';
+ iterate label1;
+END case label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+label1: BEGIN
+ case
+ action = 'delete' then
+ delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+ else
+ set @dummystring = 'temp value';
+ iterate label1;
+ END case;
+ END label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+case
+ when action = 'delete' then
+ delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+ then action = 'truncate' when
+ truncate from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+ else
+ set @dummystring = 'temp value';
+ iterate label1;
+ END case;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+declare v1 char(20);
+declare v2 char(20);
+declare count integer;
+set v1 = 'f1';
+set v2= 'address';
+set count = 1;
+case action
+ when 'delete' then
+ when 'delete' then
+ delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+ END case;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+
+delimiter //;
+CREATE PROCEDURE sp3( action char(20) )
+BEGIN
+ declare count int default 1;
+ declare done int default 0;
+ declare continue handler for sqlstate 'HY000' set done=1;
+ label1: loop
+ case
+ when action = 'delete' then
+ label3:BEGIN
+ delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+ END label3;
+ when action = 'insert' then
+ label2: while count < 10 do
+ BEGIN
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742
+ values('xxxxxxxxxxxxxxxxxxx', '1231230981(*&(*&)(*&(', count);
+ if done=1 then
+ set count=10;
+ END if;
+ END;
+ END while label2;
+ else
+ set @dummystring = 'temp value';
+ iterate label1;
+ END case;
+ if done=1 then
+ leave label1;
+ END if;
+ END loop label1;
+ SELECT count, done;
+END//
+delimiter ;//
+
+# results in lost connection hence suppressed--error 2013
+#CALL sp3('insert');
+
+# cleanup
+DROP PROCEDURE sp3;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.4:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all supported sub-clauses are supported only in the correct order (if)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+ set count = 1;
+ label1: loop
+ if count > 10 then leave label1;
+ else
+ set count = count + 1;
+ elseif count > 20 then
+ leave label1;
+ END if;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+ set count = 1;
+ label1: loop
+ else
+ set count = count + 1;
+ if count > 20 then
+ leave label1;
+ END if;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+ set count = 1;
+ label1: loop
+ elseif count > 20 then
+ leave label1;
+ else
+ set count=count+1;
+ END if;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp4()
+BEGIN
+declare count int;
+ set count = 1;
+ label1: loop
+ END if;
+ if count > 20 then
+ leave label1;
+ else
+ set count=count+1;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp4()
+BEGIN
+ declare i int default 10;
+ if i > 20 then
+ set i=25;
+ END if
+ declare count int;
+ set count = 1;
+ label1: loop
+ if count > 20 then
+ leave label1;
+ else
+ set count=count+1;
+ iterate label1;
+ END loop label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp4()
+BEGIN
+ declare idummy int default 10;
+ declare count int;
+ set count = 1;
+ label1: loop
+ BEGIN
+ if count < 20 then
+ BEGIN
+ declare idummy2 int default 10;
+ set count=count+1;
+ END;
+ else
+ BEGIN
+ SELECT idummy2;
+ leave label1;
+ END;
+ END if;
+ iterate label1;
+ END;
+ END loop label1;
+END//
+delimiter ;//
+
+--error 1054
+CALL sp4();
+
+# cleanup
+DROP PROCEDURE sp4;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.5:;
+--source include/show_msg80.inc
+
+#test case: ensure that all supported sub-clauses are supported only in the correct order (case)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp5;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp5()
+BEGIN
+ declare count integer default 1;
+ set count = 1;
+ case
+ else
+ set count = 10;
+ when count = 1 then
+ set count = count + 1;
+ END case;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp5;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp5(count int)
+BEGIN
+ when case count = 1 then
+ set count = 10;
+ when count = 2 then
+ set count = count + 1;
+ END case;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp5;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp5(count int)
+BEGIN
+ END case;
+ when count = 1 then
+ set count = 10;
+ when count = 2 then
+ set count = count + 1;
+ END case;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp5;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp5(count int)
+BEGIN
+ when count = 1 then
+ set count = 10;
+ case when count = 2 then
+ set count = count + 1;
+ END case;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.6:
+ ---------------
+Ensure that all supported sub-clauses are supported only in the correct order (repeat).;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6()
+BEGIN
+ declare count1 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ if count1 > 5 then leave label1; END if;
+ END repeat;
+ until count1 > 5
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6()
+BEGIN
+ declare count1 integer default 1;
+ label1: until count1 > 5
+ repeat
+ set count1 = count1 + 1;
+ if count1 > 5 then leave label1; END if;
+ END repeat;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6()
+BEGIN
+ declare count1 integer default 1;
+ label1: END repeat
+ set count1 = count1 + 1;
+ if count1 > 5 then leave label1; END if;
+ until count1 > 5
+ repeat;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6()
+BEGIN
+ declare count1 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ if count1 > 5 then leave label1; END if;
+ END repeat;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp6()
+BEGIN
+ declare count1 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ if count1 > 5 then leave label1; END if;
+ until count1 > 10;
+ SELECT count1;
+ END repeat;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6()
+BEGIN
+ declare count1 integer default 1;
+ label1: repeat
+ set count1 = count1;
+ until count1 < 0
+ END repeat label1;
+ SELECT count1;
+END//
+delimiter ;//
+
+# results in lost connection hence suppressed--error 2013
+# CALL sp6();
+
+# cleanup
+DROP PROCEDURE sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.7:;
+--source include/show_msg80.inc
+
+# testcase: ensure that an appropriate error message is returned if a
+# sub claUSE is out-of-order in a stored procedure definition (loop, if, iterate, leave).
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp7;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp7()
+BEGIN
+ label1: loop
+ set @dummystring = 'temp value';
+ if count > 10 then leave label1;
+ END if;
+ label1 iterate;
+ END label1 loop;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp7;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp7()
+BEGIN
+ label1: END loop;
+ set @dummystring = 'temp value';
+ if count > 10 then leave label1;
+ END if;
+ iterate label1;
+ loop;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp7;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp7()
+BEGIN
+ label1: iterate label1;
+ loop
+ set @dummystring = 'temp value';
+ if count > 10 then leave label1;
+ END if;
+
+ END loop label1;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.8:;
+--source include/show_msg80.inc
+
+# testcase: ensure that an appropriate error message is returned if a sub claUSE is
+# out-of-order in a stored procedure definition. (while)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp8;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp8()
+BEGIN
+ declare v1 int default 5;
+ do while v1 > 0
+ set v1 = v1 - 1;
+ END while;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp8;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp8()
+BEGIN
+ declare v1 int default 5;
+ do v1 > 0 while
+ set v1 = v1 - 1;
+ END while;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp8;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp8()
+BEGIN
+ declare v1 int default 5;
+ END while;
+ set v1 = v1 - 1;
+ while v1 > 0 do;
+END//
+delimiter ;//
+
+
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.12:;
+--source include/show_msg80.inc
+
+# testcase : ensure that the labels enclosing each loop statement must match
+
+--disable_warnings
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp12;
+--enable_warnings
+
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+
+delimiter //;
+--error 1310
+CREATE PROCEDURE sp12( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 int;
+ label1: loop
+ if count1 > 2 then leave label1;
+ END if;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ label2: loop
+ if count2 > 2 then leave label2;
+ END if;
+ set count2 = count2 + 1;
+ END loop label1;
+ set count1 = count1 + 1;
+ iterate label1;
+ END loop label2;
+END//
+delimiter ;//
+
+# cleanup
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.13:;
+--source include/show_msg80.inc
+
+# ensure that it is possible to put a beginning label at the start of a loop statement
+# without also requiring an ending label at the END of the same statement
+
+--disable_warnings
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp13;
+--enable_warnings
+
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+
+delimiter //;
+CREATE PROCEDURE sp13( )
+BEGIN
+ declare count1 integer default 1;
+ lable1: loop
+ if count1 > 2 then leave lable1;
+ END if;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ set count1 = count1 + 1;
+ iterate lable1;
+ END loop;
+END//
+delimiter ;//
+
+CALL sp13();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+# cleanup
+DROP PROCEDURE sp13;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.14:;
+--source include/show_msg80.inc
+
+# testcase: ensure that it is not possible to put an ending label at the END of a loop statement
+# without also requiring a matching beginning label at the start of the same statement.
+
+--disable_warnings
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp14;
+--enable_warnings
+
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+
+delimiter //;
+--error 1308
+CREATE PROCEDURE sp14( )
+BEGIN
+ declare count1 integer default 1;
+ loop
+ if count1 > 2 then leave lable1;
+ END if;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ set count1 = count1 + 1;
+ iterate lable1;
+ END loop label1;
+END//
+delimiter ;//
+
+# cleanup
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.15:;
+--source include/show_msg80.inc
+
+# ensure that every beginning label must END with a colon (:)
+
+--disable_warnings
+drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
+DROP PROCEDURE IF EXISTS sp15;
+--enable_warnings
+
+create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp15( )
+BEGIN
+ declare count1 integer default 1;
+ label1 loop
+ if count1 > 2 then leave lable1;
+ END if;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ set count1 = count1 + 1;
+ iterate lable1;
+ END loop label1;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.16:
+ ----------------
+Ensure that every beginning label with the same scope must be unique.;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp16;
+--enable_warnings
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+delimiter //;
+--error 1309
+CREATE PROCEDURE sp16( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ set count2 = 1;
+ label1: repeat
+ set count2 = count2 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( xyz , pqr, count1);
+ until count2 > 3
+ END repeat label1;
+ until count1 > 3
+ END repeat label1;
+END//
+delimiter ;//
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp16;
+--enable_warnings
+
+delimiter //;
+--error 1309
+CREATE PROCEDURE sp16( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ declare count3 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ label1: repeat
+ set count2 = count2 + 1;
+ SELECT count2;
+ until count2 > 3
+ END repeat label1;
+ SELECT count1;
+ until count1 > 3
+ END repeat label1;
+ label1: repeat
+ set count3 = count3 + 1;
+ SELECT count3;
+ until count3 > 3
+ END repeat label1;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.17:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the repeat statement acts correctly for all variants,
+# including cases where statements are nested.
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.18:;
+--source include/show_msg80.inc
+
+# testcase : ensure that the labels enclosing each repeat statement must match.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp18;
+--enable_warnings
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+delimiter //;
+--error 1310
+CREATE PROCEDURE sp18( )
+BEGIN
+ declare count1 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ until count1 < 3
+ END repeat label2;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.19:;
+--source include/show_msg80.inc
+
+# testcase: ensure that it is possible to put a beginning label at the start of
+# a repeat statement without also requiring an ending label at the
+# END of the same statement.
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp19;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp19( )
+BEGIN
+ declare count1 integer default 1;
+ label1: repeat
+ set count1 = count1 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ until count1 < 3
+ END repeat;
+END//
+delimiter ;//
+
+CALL sp19();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+# cleanup
+DROP PROCEDURE sp19;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.20:;
+--source include/show_msg80.inc
+
+# testcase: ensure that it is not possible to put an ending label at the END of a
+# repeat statement without also requiring a matching beginning label
+# at the start of the same statement.
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp20;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp20( )
+BEGIN
+ declare count1 integer default 1;
+ repeat
+ set count1 = count1 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ until count1 < 3
+ END repeat label1;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.21:;
+--source include/show_msg80.inc
+
+# ensure that the while statement acts correctly for all variants,
+# including cases where statements are nested
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.22:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the labels enclosing each while statement must match.
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp22;
+--enable_warnings
+
+delimiter //;
+--error 1310
+CREATE PROCEDURE sp22( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ while count1 < 3 do
+ set count1 = count1 + 1;
+ set count2 = 1;
+ label1: while count2 < 3 do
+ set count2 = count2 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ END while label2;
+ END while;
+END//
+delimiter ;//
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.23:;
+--source include/show_msg80.inc
+
+# testcase: ensure that it is not possible to put an ending label at the END of
+# a while statement without also requiring a matching beginning label
+# at the start of the same statement.
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp23;
+--enable_warnings
+
+delimiter //;
+--error 1064
+CREATE PROCEDURE sp23( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ while count1 < 3 do
+ set count1 = count1 + 1;
+ set count2 = 1;
+ while count2 < 3 do
+ set count2 = count2 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ END while label1;
+ END while;
+END//
+delimiter ;//
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.3.25:;
+--source include/show_msg80.inc
+
+# testcase: ensure that it is possible to put a beginning label at the start of a
+# while statement without also requiring an ending label at the END of the same statement.
+
+delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp25;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp25( )
+BEGIN
+ declare count1 integer default 1;
+ declare count2 integer default 1;
+ while count1 < 3 do
+ set count1 = count1 + 1;
+ set count2 = 1;
+ label1: while count2 < 3 do
+ set count2 = count2 + 1;
+ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
+ END while;
+ END while;
+END//
+delimiter ;//
+
+CALL sp25 ();
+SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+# cleanup
+DROP PROCEDURE sp25;
+drop table res_t3_itisalongname_1381742_itsaverylongname_1381742;
+
+
+# ==============================================================================
+let $message= Section 3.1.4 - Checks for the global nature of stored procedures:;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.1:;
+--source include/show_msg80.inc
+
+# testcase: ensure that, regardless of the database in which it was created,
+# a stored procedure can be called (for a procedure) from any #database
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+DROP DATABASE IF EXISTS d40401;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 ( n char(20) )
+BEGIN
+ SELECT n;
+END//
+delimiter ;//
+
+ CREATE DATABASE d40401;
+ USE d40401;
+
+CALL db_storedproc.sp1('abcd');
+
+ USE db_storedproc;
+
+# cleanup
+DROP PROCEDURE sp1;
+DROP DATABASE d40401;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.2:;
+--source include/show_msg80.inc
+
+# testcase: ensure that, regardless of the database in which it was created,
+# a stored procedure can be executed (for a function) from any database.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+DROP DATABASE IF EXISTS d40402;
+--enable warnings
+
+delimiter //;
+CREATE FUNCTION fn1(n int) returns int
+ BEGIN
+ declare a int;
+ set a = 9 * n;
+ return a;
+END//
+delimiter ;//
+
+ CREATE DATABASE d40402;
+ USE d40402;
+
+
+ SELECT db_storedproc.fn1(100);
+
+ SELECT db_storedproc.fn1(1000);
+
+delimiter //;
+CREATE FUNCTION db_storedproc.fn11(n int) returns int
+BEGIN
+ declare a int;
+ set a = 9 * n;
+ return a;
+END//
+delimiter ;//
+
+ SELECT db_storedproc.fn11(100);
+
+ SELECT db_storedproc.fn11(1000);
+
+ USE db_storedproc;
+
+# cleanup
+DROP FUNCTION fn1;
+DROP FUNCTION fn11;
+DROP DATABASE d40402;
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.3:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the USE of a stored procedure from a database other than the database in
+# which it was created does not permanently change the database in use.
+
+--disable_warnings
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+--enable_warnings
+
+ CREATE DATABASE d1;
+ CREATE DATABASE d2;
+
+ USE d1;
+
+ create table res_t41(a char(5), b char(10));
+ insert into res_t41 values('abcde', 'a!@#$%^&*(');
+
+ USE d2;
+
+ create table res_t42(a char(5), b char(10));
+
+ USE d1;
+
+delimiter //;
+CREATE PROCEDURE sp2(n char (20))
+BEGIN
+ SELECT res_t41.a, res_t41.b into @a, @b from res_t41 where res_t41.b = n;
+ insert into d2.res_t42 values (@a, @b);
+END//
+delimiter ;//
+
+ USE d2;
+
+CALL d1.sp2('a!@#$%^&*(');
+
+ show warnings;
+
+ SELECT * from d1.res_t41;
+ SELECT * from res_t42;
+
+# cleanup
+ USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.4:;
+--source include/show_msg80.inc
+
+# testcase : ensure that the mysql-specific USE <database name> statement is disallowed
+# in a stored procedure.
+
+--disable_warnings
+DROP DATABASE IF EXISTS d1;
+--enable_warnings
+
+ CREATE DATABASE d1;
+
+ USE d1;
+
+delimiter //;
+--error 1314
+CREATE PROCEDURE sp3()
+BEGIN
+ USE d1;
+END//
+delimiter ;//
+
+# cleanup
+ USE db_storedproc;
+DROP DATABASE d1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.5:;
+--source include/show_msg80.inc
+
+# testcase: ensure that when a database is dropped, all stored procedures #created within
+# that database are also cleanly dropped.
+
+--disable_warnings
+DROP DATABASE IF EXISTS d1;
+--enable_warnings
+
+ CREATE DATABASE d1;
+
+ USE d1;
+ create table t43(a char(5), b char(10));
+ insert into t43 values('abcde', 'a!@#$%^&*(');
+
+CREATE PROCEDURE d1.sp4()
+ SELECT * from d1.t43;
+
+--replace_column 13 modified 14 created
+ SELECT * from mysql.proc where specific_name = 'sp4';
+
+ USE db_storedproc;
+DROP DATABASE d1;
+ CREATE DATABASE d1;
+
+ USE d1;
+ create table t44(a char(5), b char(10));
+
+#FIXME: check why here no rows are shown
+--replace_column 13 modified 14 created
+ SELECT * from mysql.proc where specific_name = 'sp4';
+
+# cleanup
+ USE db_storedproc;
+DROP DATABASE d1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.6:;
+--source include/show_msg80.inc
+
+# testcase: ensure that a stored procedure created without a qualifying #database name belongs
+# to the database in USE at creation time.
+
+
+ USE db_storedproc;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp5;
+--enable_warnings
+
+CREATE PROCEDURE sp5()
+ SELECT * from db_storedproc.t4 limit 0, 10;
+
+ SELECT db from mysql.proc where specific_name = 'sp5';
+
+# cleanup
+DROP PROCEDURE sp5;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.7:;
+--source include/show_msg80.inc
+
+# testcase: ensure that a stored procedure created with a qualifying database
+# name belongs to the database specified.
+
+ USE db_storedproc;
+
+--disable_warnings
+drop table IF EXISTS t46;
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+ create table t46(f1 char(20), f2 char(20));
+ insert into t46 values ('abcd', 'wxyz');
+
+CREATE PROCEDURE db_storedproc.sp6()
+ SELECT * from db_storedproc.t4 limit 0, 10;
+
+ SELECT db from mysql.proc where specific_name = 'sp6';
+
+# cleanup
+drop table t46;
+DROP PROCEDURE sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.8:;
+--source include/show_msg80.inc
+
+# testcase : ensure that, regardless of the database in which it was created,
+# a procedure can be altered from any database.
+
+--disable_warnings
+DROP DATABASE IF EXISTS d1;
+DROP DATABASE IF EXISTS d2;
+--enable_warnings
+
+ CREATE DATABASE d1;
+ CREATE DATABASE d2;
+
+ USE d1;
+
+CREATE PROCEDURE sp8 ( n char(20) ) sql security definer comment 'initial'
+ SELECT * from t1 where t1.f1 = n;
+
+ USE d2;
+ alter procedure d1.sp8 sql security definer comment 'updated';
+--replace_column 13 modified 14 created
+ SELECT * from mysql.proc where specific_name='sp8' and db='d1';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.9:;
+--source include/show_msg80.inc
+
+# testcase :ensure that, regardless of the database in which it was created,
+# a stored procedure can be executed (for a function) from any database.
+
+ USE d1;
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+DROP FUNCTION IF EXISTS fn11;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION d1.fn2(n int) returns int sql security invoker comment 'initial'
+BEGIN
+ declare a int;
+ set a = 0.9 * n;
+ return a;
+END//
+delimiter ;//
+
+ USE d2;
+ alter function d1.fn2 sql security definer comment 'updated';
+--replace_column 13 modified 14 created
+ SELECT * from mysql.proc where specific_name='fn2' and db='d1';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.10:;
+--source include/show_msg80.inc
+
+# testcase: ensure that, regardless of the database in which it was created,
+# a procedure can be dropped from any database.
+
+
+ USE d1;
+
+CREATE PROCEDURE sp9 ( n char(20) )
+ SELECT * from t1 where t1.f1 = n;
+
+ USE d2;
+DROP PROCEDURE d1.sp9; --replace_column 13 modified 14 created
+ SELECT * from mysql.proc where specific_name='sp9' and db='d1';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.4.11:;
+--source include/show_msg80.inc
+
+# testcase: ensure that, regardless of the database in which it was created,
+# a function can be dropped from any database.
+
+
+ USE d1;
+
+delimiter //;
+CREATE FUNCTION d1.fn3(n int) returns int
+BEGIN
+ declare a int;
+ set a = 0.9 * n;
+ return a;
+END//
+delimiter ;//
+
+ USE d2;
+DROP FUNCTION d1.fn3;
+--replace_column 13 modified 14 created
+ SELECT * from mysql.proc where specific_name='fn3' and db='d1';
+
+# cleanup
+
+ USE db_storedproc;
+DROP DATABASE d1;
+DROP DATABASE d2;
+
+
+# ==============================================================================
+# test plan section: 4.5 -
+# ==============================================================================
+let $message= Section 3.1.5 - Parameter use checks:
+Functions with all data types;
+--source include/show_msg80.inc
+
+#FIXME hpux11
+let $plus_20= 1.00e+20;
+let $plus_24= 1.00e+24;
+let $plus_30= 1.00e+30;
+let $plus_36= 1.00e+36;
+let $plus_40= 1.00e+40;
+let $minus_30= -1.00e+30;
+let $minus_36= -1.00e+36;
+let $minus_40= -1.00e+40;
+
+let $callvar01m= -1.00e+20;
+let $callvar01p= 1.00e+20;
+let $callvar02= -9.22e+18;
+let $callvar03= -9.22e+18;
+
+let $procvar01_m30= -1.00e+30;
+let $procvar01_m36= -1.00e+36;
+let $procvar01_m40= -1.00e+40;
+let $procvar01_20= 1.00e+20;
+let $procvar01_24= 1.00e+24;
+let $procvar01_30= 1.00e+30;
+let $procvar01_36= 1.00e+36;
+let $procvar01_40= 1.00e+40;
+
+let $bug_dec_num= 1;
+
+eval SELECT $bug_dec_num as 'bug_dec_num';
+
+if ($bug_dec_num)
+{
+ let $message=
+ .
+ FIXME: There are differences with datatypes DECIMAL and NUMERIC if large
+ FIXME: exponent values are used. The diffs are shown only on some machines like
+ FIXME: AIX52 and HPUX11. Until this has been solved we use numbers that
+ FIXME: *should* be equal to the exponent representation but have no exponents
+ FIXME: and use the specified count of *0*s instead.
+ FIXME: In the source file these tests are marked with the comment hpux11
+ .;
+ --source include/show_msg80.inc
+ # FIXME values above changed to values below to fix DECIMAL/NUMERIC issues on hpux11
+
+ #################123456789-123456789-123456789-123456789-
+ let $plus_20= 100000000000000000000;
+ let $plus_24= 1000000000000000000000000;
+ let $plus_30= 1000000000000000000000000000000;
+ let $plus_36= 1000000000000000000000000000000000000;
+ let $plus_40= 10000000000000000000000000000000000000000;
+ let $minus_30= -1000000000000000000000000000000;
+ let $minus_36= -1000000000000000000000000000000000000;
+ let $minus_40= -10000000000000000000000000000000000000000;
+
+ let $procvar_m00= -1.00e+22;
+ let $procvar_00= 1.00e+22;
+ let $procvar01_m30= $procvar_m00;
+ let $procvar01_m36= $procvar_m00;
+ let $procvar01_m40= $procvar_m00;
+ let $procvar01_20= $procvar_00;
+ let $procvar01_24= $procvar_00;
+ let $procvar01_30= $procvar_00;
+ let $procvar01_36= $procvar_00;
+ let $procvar01_40= $procvar_00;
+}
+let $procvar03= -9.22e+18;
+let $procvar05= -9.22e+18;
+let $procvar07= -9.22e+18;
+
+
+--disable_warnings
+DROP DATABASE IF EXISTS d1;
+--enable_warnings
+
+CREATE DATABASE d1;
+USE d1;
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1( f1 bigint) returns bigint
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn1(-9.22e+18);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn2;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn2( f1 bigint unsigned) returns bigint unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn2(1.84e+19);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn3;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn3( f1 bigint unsigned zerofill) returns bigint unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT fn3(1.84e+17);
+--enable_ps_protocol
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn4;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn4( f1 bigint zerofill) returns bigint zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT fn4(-9.22e+15);
+--enable_ps_protocol
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn5;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn5( f1 decimal) returns decimal
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn5(-1.00e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn6;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn6( f1 decimal (0)) returns decimal (0)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn6(-1.00e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn7;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn7( f1 decimal (0) unsigned) returns decimal (0) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn7(99999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn8;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn8( f1 decimal (0) unsigned zerofill) returns decimal (0) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn8(999999999);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn9;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn9( f1 decimal (0) zerofill) returns decimal (0) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn9(-1.00e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn10;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn10( f1 decimal (0, 0)) returns decimal (0, 0)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn10(-1.00e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn11;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn11( f1 decimal (0, 0) unsigned) returns decimal (0, 0) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn11(99999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn12;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn12( f1 decimal (0, 0) unsigned zerofill) returns decimal (0, 0) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn12(999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn13;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn13( f1 decimal (0, 0) zerofill) returns decimal (0, 0) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn13(-1.00e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn14;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn14( f1 decimal (63, 30)) returns decimal (63, 30)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn14(-1.00e+21);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn15;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn15( f1 decimal (63, 30) unsigned) returns decimal (63, 30) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn15(1.00e+16);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn16;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn16( f1 decimal (63, 30) unsigned zerofill) returns decimal (63, 30) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn16(1.00e+16);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn17;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn17( f1 decimal (63, 30) zerofill) returns decimal (63, 30) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn17(-1.00e+21);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn18_d;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn18_d( f1 decimal (64)) returns decimal (64)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+eval SELECT fn18_d( $minus_30 );
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn19_du;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn19_du( f1 decimal (64) unsigned) returns decimal (64) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+eval SELECT fn19_du( $plus_20 );
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn20_duz;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn20_duz( f1 decimal (64) unsigned zerofill) returns decimal (64) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+eval SELECT fn20_duz( $plus_24 );
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn21_d_z;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn21_d_z( f1 decimal (64) zerofill) returns decimal (64) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn21_d_z(1.00e+00);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn22;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn22( f1 decimal unsigned) returns decimal unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn22(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn23;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn23( f1 decimal unsigned zerofill) returns decimal unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn23(1.00e+00);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn24;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn24( f1 decimal zerofill) returns decimal zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn24(-1.00e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn25;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn25( f1 double) returns double
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn25(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn26;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn26( f1 double unsigned) returns double unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn26(1.00e+00);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn27;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn27( f1 double unsigned zerofill) returns double unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn27(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn28;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn28( f1 double zerofill) returns double zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn28(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn29;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn29( f1 float) returns float
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn29(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn30;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn30( f1 float unsigned) returns float unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn30(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn31;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn31( f1 float unsigned zerofill) returns float unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn31(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn32;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn32( f1 float zerofill) returns float zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn32(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn33;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn33( f1 float(0)) returns float(0)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn33(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn34;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn34( f1 float(0) unsigned) returns float(0) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn34(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn35;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn35( f1 float(0) unsigned zerofill) returns float(0) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn35(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn36;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn36( f1 float(0) zerofill) returns float(0) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn36(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn37;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn37( f1 float(23)) returns float(23)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn37(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn38;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn38( f1 float(23) unsigned) returns float(23) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn38(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn39;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn39( f1 float(23) unsigned zerofill) returns float(23) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn39(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn40;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn40( f1 float(23) zerofill) returns float(23) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn40(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn41;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn41( f1 float(24)) returns float(24)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn41(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn42;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn42( f1 float(24) unsigned) returns float(24) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn42(1.00e+00);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn43;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn43( f1 float(24) unsigned zerofill) returns float(24) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn43(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn44;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn44( f1 float(24) zerofill) returns float(24) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn44(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn45;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn45( f1 float(53)) returns float(53)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn45(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn46;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn46( f1 float(53) unsigned) returns float(53) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn46(1.00e+00);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn47;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn47( f1 float(53) unsigned zerofill) returns float(53) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn47(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn48;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn48( f1 float(53) zerofill) returns float(53) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn48(1.00e+00);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn49;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn49( f1 int) returns int
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn49(-2.15e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn50;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn50( f1 int unsigned) returns int unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn50(4.29e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn51;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn51( f1 int unsigned zerofill) returns int unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn51(4.29e+09);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn52;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn52( f1 int zerofill) returns int zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT fn52(2.15e+08);
+--enable_ps_protocol
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn53;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn53( f1 mediumint) returns mediumint
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn53(-8388600);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn54;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn54( f1 mediumint unsigned) returns mediumint unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn54(16777201);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn55;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn55( f1 mediumint unsigned zerofill) returns mediumint unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn55(16777210);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn56;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn56( f1 mediumint zerofill) returns mediumint zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT fn56(-8388601);
+--enable_ps_protocol
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn57;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn57( f1 numeric) returns numeric
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn57(-999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn58;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn58( f1 numeric (0)) returns numeric (0)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn58(-999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn59;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn59( f1 numeric (0) unsigned) returns numeric (0) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn59(9999999999);
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn60;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn60( f1 numeric (0) unsigned zerofill) returns numeric (0) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn60(99999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn61;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn61( f1 numeric (0) zerofill) returns numeric (0) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn61(-99999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn62;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn62( f1 numeric (0, 0)) returns numeric (0, 0)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn62(-999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn63;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn63( f1 numeric (0, 0) unsigned) returns numeric (0, 0) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn63(9999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn64;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn64( f1 numeric (0, 0) unsigned zerofill) returns numeric (0, 0) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn64(99999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn65;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn65( f1 numeric (0, 0) zerofill) returns numeric (0, 0) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn65(-99999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn66;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn66( f1 numeric (63, 30)) returns numeric (63, 30)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn66(-1e+36);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn67;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn67( f1 numeric (63, 30) unsigned) returns numeric (63, 30) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn67(1e+36);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn68;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn68( f1 numeric (63, 30) unsigned zerofill) returns numeric (63, 30) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn68(1e+36);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn69;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn69( f1 numeric (63, 30) zerofill) returns numeric (63, 30) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn69(-1e+36);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn70_n;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn70_n( f1 numeric (64)) returns numeric (64)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+#SELECT fn70_n(-1e+40);
+eval SELECT fn70_n( $minus_30 );
+eval SELECT fn70_n( $minus_40 );
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn71_nu;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn71_nu( f1 numeric (64) unsigned) returns numeric (64) unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+#SELECT fn71_nu(1.00e+40);
+eval SELECT fn71_nu( $plus_40 );
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn72_nuz;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn72_nuz( f1 numeric (64) unsigned zerofill) returns numeric (64) unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+#SELECT fn72_nuz(1.00e+40);
+eval SELECT fn72_nuz( $plus_40 );
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn73_n_z;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn73_n_z( f1 numeric (64) zerofill) returns numeric (64) zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME hpux11
+#SELECT fn73_n_z(1.00e+40);
+eval SELECT fn73_n_z( $plus_40 );
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn74;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn74( f1 numeric unsigned) returns numeric unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn74(999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn75;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn75( f1 numeric unsigned zerofill) returns numeric unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn75(999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn76;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn76( f1 numeric zerofill) returns numeric zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn76(-999999999);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn77;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn77( f1 real) returns real
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn77(1.1);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn78;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn78( f1 real unsigned) returns real unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn78(1.1);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn79;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn79( f1 real unsigned zerofill) returns real unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn79(1.1);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn80;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn80( f1 real zerofill) returns real zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn80(1.1);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn81;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn81( f1 smallint) returns smallint
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn81(-32701);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn82;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn82( f1 smallint unsigned) returns smallint unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn82(65531);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn83;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn83( f1 smallint unsigned zerofill) returns smallint unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn83(65531);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn84;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn84( f1 smallint zerofill) returns smallint zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT fn84(-32601);
+--enable_ps_protocol
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn85;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn85( f1 tinyint) returns tinyint
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn85(-115);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn86;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn86( f1 tinyint unsigned) returns tinyint unsigned
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn86(251);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn87;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn87( f1 tinyint unsigned zerofill) returns tinyint unsigned zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn87(201);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn88;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn88( f1 tinyint zerofill) returns tinyint zerofill
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ return f1;
+END//
+delimiter ;//
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT fn88(-101);
+--enable_ps_protocol
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn89;
+--enable_warnings
+
+
+#FIXME why was fn89 switched off ?
+delimiter //;
+#FIXME: check whether this error 1064 is OK!
+--error 1064
+CREATE FUNCTION fn89( f1 enum('1enum', '2enum')) returns enum('1enum', '2enum')
+BEGIN
+ if f1 eq "1enum" then
+ set f1 = '2enum';
+ else
+ set f1 = '1enum';
+ END if;
+ return f1;
+END//
+delimiter ;//
+
+#FIXME: this is OK as long as the error 1064 above is OK!
+--error 1305
+SELECT fn89( '1enum');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn90;
+--enable_warnings
+
+
+#FIXME: wah was fn90 switched off ?
+delimiter //;
+#FIXME: check whether this error 1064 is OK!
+--error 1064
+CREATE FUNCTION fn90( f1 set("1set", "2set")) returns set("1set", "2set")
+BEGIN
+ if(f1 == "1set") then
+ set f1 = "2set";
+ else
+ set f1 = "1set";
+ END if;
+ return f1;
+END//
+delimiter ;//
+
+#FIXME: this is OK as long as the error 1064 above is OK!
+--error 1305
+SELECT fn90( '1set');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn91;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn91( f1 date) returns date
+BEGIN
+ set f1 = adddate(f1, interval 31 day);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn91('1997-12-31');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn92;
+--enable_warnings
+
+
+delimiter //;
+CREATE FUNCTION fn92( f1 time) returns time
+BEGIN
+ set f1 = addtime(f1, '02:00:00.999998');
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn92( '23:59:59.999999');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn93;
+--enable_warnings
+
+
+delimiter //;
+CREATE FUNCTION fn93( f1 datetime) returns datetime
+BEGIN
+ set f1 = addtime(f1, '1 1:1:1.000002');
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn93('1997-12-31 23:59:59.999999');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn94;
+--enable_warnings
+
+
+delimiter //;
+CREATE FUNCTION fn94( f1 char) returns char
+BEGIN
+ set f1 = concat('a', f1);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn94( 'h');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn95;
+--enable_warnings
+
+
+delimiter //;
+CREATE FUNCTION fn95( f1 char ascii) returns char ascii
+BEGIN
+ set f1 = concat('a', f1);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn95('h');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn96;
+--enable_warnings
+
+delimiter //;
+#FIXME: check whether this error 1064 is OK!
+#--error 1064
+CREATE FUNCTION fn96( f1 char binary) returns char binary
+BEGIN
+ set f1 = concat('a', f1);
+ return f1;
+END//
+delimiter ;//
+
+#FIXME: this is OK as long as the error 1064 above is OK!
+#--error 1305
+SELECT fn96( 'h');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn97;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn97( f1 longtext) returns longtext
+BEGIN
+ set f1 = concat('hello', f1);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn97( 'world');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn98;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn98( f1 mediumtext) returns mediumtext
+BEGIN
+ set f1 = concat('hello', f1);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn98( 'world');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn99;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn99( f1 text) returns text
+BEGIN
+ set f1 = concat('hello', f1);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn99( 'world');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn100;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn100( f1 tinytext) returns tinytext
+BEGIN
+ set f1 = concat('hello', f1);
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn100( 'world');
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn101;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn101( f1 year) returns year
+BEGIN
+ set f1 = f1 + 10;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn101(51);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn102;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn102( f1 year(4)) returns year(4)
+BEGIN
+ set f1 = f1 + 51;
+ return f1;
+END//
+delimiter ;//
+
+SELECT fn102(1982);
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn103;
+--enable_warnings
+
+#FIXME Bug: (Bug#10499)
+delimiter //;
+#--error 1178
+CREATE FUNCTION fn103( f1 geometrycollection) returns geometrycollection
+BEGIN
+ set f1 = f1;
+ return f1;
+END//
+delimiter ;//
+
+#FIXME Bug: (Bug#10499)
+SELECT fn103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn104;
+--enable_warnings
+
+#FIXME Bug: (Bug#10499)
+delimiter //;
+#--error 1178
+CREATE FUNCTION fn104( f1 linestring) returns linestring
+BEGIN
+ set f1 = f1;
+ return f1;
+END//
+delimiter ;//
+
+#FIXME Bug: (Bug#10499)
+SELECT fn104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn105;
+--enable_warnings
+
+#FIXME Bug: (Bug#10499)
+delimiter //;
+#--error 1178
+CREATE FUNCTION fn105( f1 point) returns point
+BEGIN
+ set f1 = f1;
+ return f1;
+END//
+delimiter ;//
+
+#FIXME Bug: (Bug#10499)
+SELECT fn105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn106;
+--enable_warnings
+
+#FIXME Bug: (Bug#10499)
+delimiter //;
+#--error 1178
+CREATE FUNCTION fn106( f1 polygon) returns polygon
+BEGIN
+ set f1 = f1;
+ return f1;
+END//
+delimiter ;//
+
+#FIXME Bug: (Bug#10499)
+SELECT fn106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn107;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn107( f1 timestamp) returns timestamp
+BEGIN
+ set f1 = now();
+ return f1;
+END//
+delimiter ;//
+
+--replace_column 1 returned
+SELECT fn107(20050510080451);
+
+USE db_storedproc;
+DROP DATABASE d1;
+
+
+# ==============================================================================
+# test plan section: 4.5 - stored procs with in, out parameters using all datatypes
+# ==============================================================================
+
+--disable_warnings
+DROP DATABASE IF EXISTS db1;
+--enable_warnings
+
+CREATE DATABASE db1;
+USE db1;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1( f1 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp1(-9.22e+18);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp2;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp2( f1 bigint unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp2(1.84e+19);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp3( f1 bigint unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp3(1.84e+17);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp4( f1 bigint zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp4(-9.22e+15);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp5;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp5( f1 decimal)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: default (10) for DECIMAL not checked, decimal digits shown although not defined
+
+CALL sp5(-1.00e+09);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6( f1 decimal (0))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp6(-1.00e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp7;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp7( f1 decimal (0) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp7(99999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp8;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp8( f1 decimal (0) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp8(999999999);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp9;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp9( f1 decimal (0) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp9(-1.00e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp10;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp10( f1 decimal (0, 0))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp10(-1.00e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp11;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp11( f1 decimal (0, 0) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp11(99999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp12;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp12( f1 decimal (0, 0) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp12(999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp13;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp13( f1 decimal (0, 0) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp13(-1.00e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp14;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp14( f1 decimal (63, 30))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: wrong number of decimal digits shown
+
+CALL sp14(-1.00e+21);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp15;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp15( f1 decimal (63, 30) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: wrong number of decimal digits shown
+
+CALL sp15(1.00e+16);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp16;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp16( f1 decimal (63, 30) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: wrong number of decimal digits shown
+
+CALL sp16(1.00e+16);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp17;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp17( f1 decimal (63, 30) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: wrong number of decimal digits shown
+
+CALL sp17(-1.00e+21);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp18_d;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp18_d( f1 decimal (64))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp18_d(-1.00e+30);
+eval CALL sp18_d( $minus_30 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp19_du;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp19_du( f1 decimal (64) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp19_du(1.00e+20);
+eval CALL sp19_du( $plus_20 );
+#CALL sp19_du(1.00e+24);
+eval CALL sp19_du( $plus_24 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp20_duz;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp20_duz( f1 decimal (64) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+# hpux11
+#CALL sp20_duz(1.00e+20);
+eval CALL sp20_duz( $plus_20 );
+#CALL sp20_duz(1.00e+24);
+eval CALL sp20_duz( $plus_24 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp21;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp21( f1 decimal (64) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp21(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp22;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp22( f1 decimal unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp22(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp23;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp23( f1 decimal unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp23(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp24;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp24( f1 decimal zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+-- echo FIXME: Following test contains a known problem that will be checked again
+-- echo FIXME: after WL#2984 has been completed:
+-- echo FIXME: decimal digits shown although not defined
+
+CALL sp24(-1.00e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp25;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp25( f1 double)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp25(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp26;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp26( f1 double unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp26(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp27;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp27( f1 double unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp27(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp28;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp28( f1 double zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp28(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp29;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp29( f1 float)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp29(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp30;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp30( f1 float unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp30(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp31;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp31( f1 float unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp31(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp32;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp32( f1 float zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp32(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp33;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp33( f1 float(0))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp33(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp34;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp34( f1 float(0) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp34(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp35;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp35( f1 float(0) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp35(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp36;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp36( f1 float(0) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp36(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp37;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp37( f1 float(23))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp37(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp38;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp38( f1 float(23) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp38(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp39;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp39( f1 float(23) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp39(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp40;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp40( f1 float(23) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp40(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp41;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp41( f1 float(24))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp41(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp42;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp42( f1 float(24) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp42(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp43;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp43( f1 float(24) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp43(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp44;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp44( f1 float(24) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp44(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp45;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp45( f1 float(53))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp45(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp46;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp46( f1 float(53) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp46(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp47;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp47( f1 float(53) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp47(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp48;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp48( f1 float(53) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp48(1.00e+00);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp49;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp49( f1 int)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp49(-2.15e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp50;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp50( f1 int unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp50(4.29e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp51;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp51( f1 int unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp51(4.29e+09);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp52;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp52( f1 int zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp52(2.15e+08);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp53;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp53( f1 mediumint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp53(-8388600);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp54;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp54( f1 mediumint unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp54(16777201);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp55;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp55( f1 mediumint unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp55(16777210);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp56;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp56( f1 mediumint zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp56(-8388601);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp57;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp57( f1 numeric)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp57(-999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp58;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp58( f1 numeric (0))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp58(-999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp59;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp59( f1 numeric (0) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp59(9999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp60;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp60( f1 numeric (0) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp60(99999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp61;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp61( f1 numeric (0) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp61(-99999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp62;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp62( f1 numeric (0, 0))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp62(-999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp63;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp63( f1 numeric (0, 0) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp63(9999999999);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp64;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp64( f1 numeric (0, 0) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp64(99999999);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp65;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp65( f1 numeric (0, 0) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp65(-99999999);
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp66_n;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp66_n( f1 numeric (63, 30))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp66_n(-1e+36);
+eval CALL sp66_n( $minus_36 );
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp67_nu;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp67_nu( f1 numeric (63, 30) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp67_nu(1e+36);
+eval CALL sp67_nu( $plus_36 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp68_nuz;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp68_nuz( f1 numeric (63, 30) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp68_nuz(1e+36);
+eval CALL sp68_nuz( $plus_36 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp69_n_z;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp69_n_z( f1 numeric (63, 30) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp69_n_z(-1e+36);
+eval CALL sp69_n_z( $minus_36 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp70_n;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp70_n( f1 numeric (64))
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp70_n(-1e+40);
+eval CALL sp70_n( $minus_40 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp71_nu;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp71_nu( f1 numeric (64) unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp71_nu(1.00e+40);
+eval CALL sp71_nu( $plus_40 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp72_nuz;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp72_nuz( f1 numeric (64) unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp72_nuz(1.00e+40);
+eval CALL sp72_nuz( $plus_40 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp73_n_z;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp73_n_z( f1 numeric (64) zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+# hpux11
+#CALL sp73_n_z(1.00e+40);
+eval CALL sp73_n_z( $plus_40 );
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp74;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp74( f1 numeric unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp74(999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp75;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp75( f1 numeric unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp75(999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp76;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp76( f1 numeric zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp76(-999999999);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp77;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp77( f1 real)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp77(1.1);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp78;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp78( f1 real unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp78(1.1);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp79;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp79( f1 real unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp79(1.1);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp80;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp80( f1 real zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp80(1.1);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp81;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp81( f1 smallint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp81(-32701);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp82;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp82( f1 smallint unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp82(65531);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp83;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp83( f1 smallint unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp83(65531);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp84;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp84( f1 smallint zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp84(-32601);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp85;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp85( f1 tinyint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp85(-115);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp86;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp86( f1 tinyint unsigned)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp86(251);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp87;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp87( f1 tinyint unsigned zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp87(201);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp88;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp88( f1 tinyint zerofill)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp88(-101);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp89;
+--enable_warnings
+
+#FIXME: check why this is switched off
+#delimiter //;
+#CREATE PROCEDURE sp89( f1 enum("1enum", "2enum"))
+#BEGIN
+# if(f1 == "1enum") { set f1 = "2enum"; } else { set f1 = "1enum"; }
+# SELECT f1;
+#END//
+#delimiter ;//
+
+#CALL sp89( '1enum');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp90;
+--enable_warnings
+
+#FIXME: check why this is switched off
+#delimiter //;
+#CREATE PROCEDURE sp90( f1 set("1set", "2set"))
+#BEGIN
+# if(f1 == "1set") { set f1 = "2set"; } else { set f1 = "1set"; }
+# SELECT f1;
+#END//
+#delimiter ;//
+
+#CALL sp90( '1set');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp91;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp91( f1 date)
+BEGIN
+ set f1 = adddate(f1, interval 31 day);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp91( '1997-12-31');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp92;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp92( f1 time)
+BEGIN
+ set f1 = addtime(f1, '02:00:00.999998');
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp92( '23:59:59.999999');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp93;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp93( f1 datetime)
+BEGIN
+ set f1 = addtime(f1, '1 1:1:1.000002');
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp93('1997-12-31 23:59:59.999999');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp94;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp94( f1 char)
+BEGIN
+ set f1 = concat('a', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp94( 'h');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp95;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp95( f1 char ascii)
+BEGIN
+ set f1 = concat('a', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp95( 'h');
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp96;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp96( f1 char binary)
+BEGIN
+ set f1 = concat('a', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp96( 'h');
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp97;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp97( f1 longtext)
+BEGIN
+ set f1 = concat('hello', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp97( 'world');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp98;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp98( f1 mediumtext)
+BEGIN
+ set f1 = concat('hello', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp98( 'world');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp99;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp99( f1 text)
+BEGIN
+ set f1 = concat('hello', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp99( 'world');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp100;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp100( f1 tinytext)
+BEGIN
+ set f1 = concat('hello', f1);
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp100( 'world');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp101;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp101( f1 year)
+BEGIN
+ set f1 = f1 + 10;
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp101(51);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp102;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp102( f1 year(4))
+BEGIN
+ set f1 = f1 + 51;
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp102(1982);
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp103;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp103( f1 geometrycollection)
+BEGIN
+ set f1 = f1;
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp103('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp104;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp104( f1 linestring)
+BEGIN
+ set f1 = f1;
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp104('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0@');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp105;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp105( f1 point)
+BEGIN
+ set f1 = f1;
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp105('\0\0\0\0\0\0\0\0\0\0\0\0\04@\0\0\0\0\0\04@');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp106;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp106( f1 polygon)
+BEGIN
+ set f1 = f1;
+ SELECT f1;
+END//
+delimiter ;//
+
+CALL sp106('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\04@\0\0\0\0\0\0?\0\0\0\0\0\0?\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0 @\0\0\0\0\0\0@\0\0\0\0\0\0@');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp107;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp107( f1 timestamp)
+BEGIN
+ set f1 = now() + 0 + f1;
+ SELECT f1;
+END//
+delimiter ;//
+
+--replace_column 1 returned
+CALL sp107(2.00e+13);
+
+USE db_storedproc;
+DROP DATABASE db1;
+
+
+# ==============================================================================
+# test plan section: 4.5 - parameter checks - multiple data types in stored procedure and functions
+# ==============================================================================
+
+--disable_warnings
+DROP DATABASE IF EXISTS db1;
+--enable_warnings
+
+CREATE DATABASE db1;
+USE db1;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+delimiter //;
+CREATE PROCEDURE sp1( in f1 year, inout f2 year, out f3 year, in f4 year,
+ inout f5 year, out f6 year, in f7 year(4), inout f8 year(4),
+ out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+ set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+ set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+ set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+ set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute01;
+delimiter //;
+CREATE PROCEDURE spexecute01()
+BEGIN
+ declare var1 year;
+ declare var2 year;
+ declare var3 year;
+ declare var4 year;
+ declare var5 year(4);
+ declare var6 year(4);
+ declare var7 year(4);
+ declare var8 year(4);
+ set var1 = 51;
+ set var3 = 51;
+ set var5 = 1982;
+ set var7 = 1982;
+ CALL sp1(51, var1, var2, 51, var3, var4, 1982, var5, var6, 1982, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute01();
+DROP PROCEDURE spexecute01;
+DROP PROCEDURE sp1;
+
+
+DROP PROCEDURE IF EXISTS sp2;
+delimiter //;
+CREATE PROCEDURE sp2( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text,
+ out f6 text, in f7 tinytext, inout f8 tinytext, out f9 tinytext,
+ in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+ set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+ set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+ set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+ set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute02;
+delimiter //;
+CREATE PROCEDURE spexecute02()
+BEGIN
+ declare var1 text;
+ declare var2 text;
+ declare var3 text;
+ declare var4 text;
+ declare var5 tinytext;
+ declare var6 tinytext;
+ declare var7 tinytext;
+ declare var8 tinytext;
+ set var1 = 'world';
+ set var3 = 'world';
+ set var5 = 'world';
+ set var7 = 'world';
+ CALL sp2( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute02();
+DROP PROCEDURE spexecute02;
+DROP PROCEDURE sp2;
+
+
+DROP PROCEDURE IF EXISTS sp3;
+delimiter //;
+CREATE PROCEDURE sp3( in f1 char, inout f2 char, out f3 char, in f4 char ascii,
+ inout f5 char ascii, out f6 char ascii, in f7 longtext,
+ inout f8 longtext, out f9 longtext, in f10 mediumtext,
+ inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+ set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+ set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+ set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f9);
+ set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute03;
+delimiter //;
+CREATE PROCEDURE spexecute03()
+BEGIN
+ declare var1 char;
+ declare var2 char;
+ declare var3 char ascii;
+ declare var4 char ascii;
+ declare var5 longtext;
+ declare var6 longtext;
+ declare var7 mediumtext;
+ declare var8 mediumtext;
+ set var1 = 'h';
+ set var3 = 'h';
+ set var5 = 'world';
+ set var7 = 'world';
+ CALL sp3( 'h', var1, var2, 'h', var3, var4, 'world', var5, var6, 'world', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute03();
+
+DROP PROCEDURE spexecute03;
+DROP PROCEDURE sp3;
+
+
+DROP PROCEDURE IF EXISTS sp4;
+delimiter //;
+CREATE PROCEDURE sp4( in f1 bigint, inout f2 bigint, out f3 bigint,
+ in f4 bigint, inout f5 bigint, out f6 bigint,
+ in f7 bigint, inout f8 bigint, out f9 bigint,
+ in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+ set f6 = f5;
+ set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+ set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8;
+ set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+ set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11;
+ set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+ set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute04;
+delimiter //;
+CREATE PROCEDURE spexecute04()
+BEGIN
+ declare var1 bigint;
+ declare var2 bigint;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -9.22e+18;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp4(-9.22e+18, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute04();
+DROP PROCEDURE spexecute04;
+DROP PROCEDURE sp4;
+
+# sp5 removed
+
+DROP PROCEDURE IF EXISTS sp6;
+delimiter //;
+CREATE PROCEDURE sp6( in f1 timestamp, inout f2 timestamp, out f3 timestamp, in f4 timestamp, inout f5 timestamp, out f6 timestamp, in f7 timestamp, inout f8 timestamp, out f9 timestamp, in f10 timestamp, inout f11 timestamp, out f12 timestamp)
+BEGIN
+ set f1 = now() + 0 + f1; set f2 = now() + 0 + f2; set f3 = now() + 0 + f1;
+ set f4 = now() + 0 + f4; set f5 = now() + 0 + f5; set f6 = now() + 0 + f5;
+ set f7 = now() + 0 + f7; set f8 = now() + 0 + f8; set f9 = now() + 0 + f8;
+ set f10 = now() + 0 + f10; set f11 = now() + 0 + f11; set f12 = now() + 0 + f11;
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute06;
+delimiter //;
+CREATE PROCEDURE spexecute06()
+BEGIN
+ declare var1 timestamp;
+ declare var2 timestamp;
+ declare var3 timestamp;
+ declare var4 timestamp;
+ declare var5 timestamp;
+ declare var6 timestamp;
+ declare var7 timestamp;
+ declare var8 timestamp;
+ set var1 = 2.00e+13;
+ set var3 = 2.00e+13;
+ set var5 = 2.00e+13;
+ set var7 = 2.00e+13;
+ CALL sp6(2.00e+13, var1, var2, 2.00e+13, var3, var4, 2.00e+13, var5, var6, 2.00e+13, var7, var8);
+END//
+delimiter ;//
+
+--replace_column 1 returned 2 returned 3 returned 4 returned 5 returned 6 returned 7 returned 8 returned 9 returned 10 returned 11 returned 12 returned
+CALL spexecute06();
+DROP PROCEDURE spexecute06;
+DROP PROCEDURE sp6;
+
+
+DROP PROCEDURE IF EXISTS sp07;
+delimiter //;
+CREATE PROCEDURE sp07( IN f1 BIGINT UNSIGNED,
+ INOUT f2 BIGINT UNSIGNED,
+ OUT f3 BIGINT UNSIGNED,
+ IN f4 BIGINT,
+ INOUT f5 BIGINT,
+ OUT f6 BIGINT,
+ IN f7 BIGINT,
+ INOUT f8 BIGINT,
+ OUT f9 BIGINT,
+ IN f10 BIGINT,
+ INOUT f11 BIGINT,
+ OUT f12 BIGINT)
+BEGIN
+ SELECT f1, f2, f3;
+ SELECT f4, f5, f6;
+ SELECT f7, f8, f9;
+ SELECT f10, f11, f12;
+ set f3 = f2;
+ set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+ set f3 = (f3 * 2); set f3 = (f3 - 10); set f3 = (f3 + 10);
+ set f6 = f5;
+ set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+ set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8;
+ set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+ set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11;
+ set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+ set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3;
+ SELECT f4, f5, f6;
+ SELECT f7, f8, f9;
+ SELECT f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute07;
+delimiter //;
+CREATE PROCEDURE spexecute07()
+BEGIN
+ declare var1 bigint unsigned;
+ declare var2 bigint unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.84e+19;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ SELECT var1, var2;
+ SELECT var3, var4;
+ SELECT var5, var6;
+ SELECT var7, var8;
+ CALL sp07( var1, var1, var2, var3, var3, var4,
+ var5, var5, var6, var7, var7, var8 );
+ SELECT var1, var2;
+ SELECT var3, var4;
+ SELECT var5, var6;
+ SELECT var7, var8;
+END//
+delimiter ;//
+
+#let $message= FIXME: CALL of spexecute07 temporarily switched off due to differences
+# FIXME: between Linux and Solaris;
+#--source include/show_msg80.inc
+#FIXME CALL spexecute07();
+CALL spexecute07();
+DROP PROCEDURE spexecute07;
+DROP PROCEDURE sp07;
+
+
+DROP PROCEDURE IF EXISTS sp8;
+delimiter //;
+CREATE PROCEDURE sp8( in f1 bigint unsigned zerofill,
+ inout f2 bigint unsigned zerofill,
+ out f3 bigint unsigned zerofill,
+ in f4 bigint,
+ inout f5 bigint,
+ out f6 bigint,
+ in f7 bigint,
+ inout f8 bigint,
+ out f9 bigint,
+ in f10 bigint,
+ inout f11 bigint,
+ out f12 bigint)
+BEGIN
+ set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+ set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5;
+ set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+ set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8;
+ set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+ set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11;
+ set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+ set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute08;
+delimiter //;
+CREATE PROCEDURE spexecute08()
+BEGIN
+ declare var1 bigint unsigned zerofill;
+ declare var2 bigint unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.84e+17;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp8(1.84e+17, var1, var2, -9.22e+18, var3, var4,
+ -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute08();
+DROP PROCEDURE spexecute08;
+DROP PROCEDURE sp8;
+
+
+DROP PROCEDURE IF EXISTS sp9;
+delimiter //;
+CREATE PROCEDURE sp9( in f1 bigint zerofill,
+ inout f2 bigint zerofill,
+ out f3 bigint zerofill,
+ in f4 bigint,
+ inout f5 bigint,
+ out f6 bigint,
+ in f7 bigint,
+ inout f8 bigint,
+ out f9 bigint,
+ in f10 bigint,
+ inout f11 bigint,
+ out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10);
+ set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10);
+ set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5;
+ set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10);
+ set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8;
+ set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10);
+ set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11;
+ set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10);
+ set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute09;
+delimiter //;
+CREATE PROCEDURE spexecute09()
+BEGIN
+ declare var1 bigint zerofill;
+ declare var2 bigint zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -9.22e+15;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp9(-9.22e+15, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute09();
+DROP PROCEDURE spexecute09;
+DROP PROCEDURE sp9;
+
+
+DROP PROCEDURE IF EXISTS sp10;
+delimiter //;
+CREATE PROCEDURE sp10( in f1 decimal,
+ inout f2 decimal,
+ out f3 decimal,
+ in f4 bigint,
+ inout f5 bigint,
+ out f6 bigint,
+ in f7 bigint,
+ inout f8 bigint,
+ out f9 bigint,
+ in f10 bigint,
+ inout f11 bigint,
+ out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute10;
+delimiter //;
+CREATE PROCEDURE spexecute10()
+BEGIN
+ declare var1 decimal;
+ declare var2 decimal;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -1.00e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp10(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute10();
+DROP PROCEDURE spexecute10;
+DROP PROCEDURE sp10;
+
+
+DROP PROCEDURE IF EXISTS sp11;
+delimiter //;
+CREATE PROCEDURE sp11( in f1 decimal (0), inout f2 decimal (0), out f3 decimal (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute11;
+delimiter //;
+CREATE PROCEDURE spexecute11()
+BEGIN
+ declare var1 decimal (0);
+ declare var2 decimal (0);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = --1.00e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp11(--1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute11();
+DROP PROCEDURE spexecute11;
+DROP PROCEDURE sp11;
+
+
+DROP PROCEDURE IF EXISTS sp12;
+delimiter //;
+CREATE PROCEDURE sp12( in f1 decimal (0) unsigned, inout f2 decimal (0) unsigned, out f3 decimal (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute12;
+delimiter //;
+CREATE PROCEDURE spexecute12()
+BEGIN
+ declare var1 decimal (0) unsigned;
+ declare var2 decimal (0) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 99999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp12(99999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute12();
+DROP PROCEDURE spexecute12;
+DROP PROCEDURE sp12;
+
+
+DROP PROCEDURE IF EXISTS sp13;
+delimiter //;
+CREATE PROCEDURE sp13( in f1 decimal (0, 0) zerofill, inout f2 decimal (0, 0) zerofill, out f3 decimal (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute13;
+delimiter //;
+CREATE PROCEDURE spexecute13()
+BEGIN
+ declare var1 decimal (0, 0) zerofill;
+ declare var2 decimal (0, 0) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -1.00e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp13(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute13();
+DROP PROCEDURE spexecute13;
+DROP PROCEDURE sp13;
+
+
+DROP PROCEDURE IF EXISTS sp14;
+delimiter //;
+CREATE PROCEDURE sp14( in f1 decimal (63, 30), inout f2 decimal (63, 30), out f3 decimal (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f3 = f2;
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute14;
+delimiter //;
+CREATE PROCEDURE spexecute14()
+BEGIN
+ declare var1 decimal (63, 30);
+ declare var2 decimal (63, 30);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -1.00e+21;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp14(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute14();
+DROP PROCEDURE spexecute14;
+DROP PROCEDURE sp14;
+
+
+DROP PROCEDURE IF EXISTS sp15;
+delimiter //;
+CREATE PROCEDURE sp15( in f1 double, inout f2 double, out f3 double, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute15;
+delimiter //;
+CREATE PROCEDURE spexecute15()
+BEGIN
+ declare var1 double;
+ declare var2 double;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp15(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute15();
+DROP PROCEDURE spexecute15;
+DROP PROCEDURE sp15;
+
+
+DROP PROCEDURE IF EXISTS sp16;
+delimiter //;
+CREATE PROCEDURE sp16( in f1 double zerofill, inout f2 double zerofill, out f3 double zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute16;
+delimiter //;
+CREATE PROCEDURE spexecute16()
+BEGIN
+ declare var1 double zerofill;
+ declare var2 double zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp16(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute16();
+DROP PROCEDURE spexecute16;
+DROP PROCEDURE sp16;
+
+
+DROP PROCEDURE IF EXISTS sp17;
+delimiter //;
+CREATE PROCEDURE sp17( in f1 double unsigned, inout f2 double unsigned, out f3 double unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute17;
+delimiter //;
+CREATE PROCEDURE spexecute17()
+BEGIN
+ declare var1 double unsigned;
+ declare var2 double unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp17(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute17();
+DROP PROCEDURE spexecute17;
+DROP PROCEDURE sp17;
+
+
+DROP PROCEDURE IF EXISTS sp18;
+delimiter //;
+CREATE PROCEDURE sp18( in f1 double unsigned zerofill, inout f2 double unsigned zerofill, out f3 double unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute18;
+delimiter //;
+CREATE PROCEDURE spexecute18()
+BEGIN
+ declare var1 double unsigned zerofill;
+ declare var2 double unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp18(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute18();
+DROP PROCEDURE spexecute18;
+DROP PROCEDURE sp18;
+
+
+DROP PROCEDURE IF EXISTS sp19;
+delimiter //;
+CREATE PROCEDURE sp19( in f1 float unsigned, inout f2 float unsigned, out f3 float unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute19;
+delimiter //;
+CREATE PROCEDURE spexecute19()
+BEGIN
+ declare var1 float unsigned;
+ declare var2 float unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp19(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute19();
+DROP PROCEDURE spexecute19;
+DROP PROCEDURE sp19;
+
+
+DROP PROCEDURE IF EXISTS sp20;
+delimiter //;
+CREATE PROCEDURE sp20( in f1 float unsigned zerofill, inout f2 float unsigned zerofill, out f3 float unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute20;
+delimiter //;
+CREATE PROCEDURE spexecute20()
+BEGIN
+ declare var1 float unsigned zerofill;
+ declare var2 float unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp20(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute20();
+DROP PROCEDURE spexecute20;
+DROP PROCEDURE sp20;
+
+
+DROP PROCEDURE IF EXISTS sp21;
+delimiter //;
+CREATE PROCEDURE sp21( in f1 float zerofill, inout f2 float zerofill, out f3 float zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute21;
+delimiter //;
+CREATE PROCEDURE spexecute21()
+BEGIN
+ declare var1 float zerofill;
+ declare var2 float zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp21(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute21();
+DROP PROCEDURE spexecute21;
+DROP PROCEDURE sp21;
+
+
+DROP PROCEDURE IF EXISTS sp22;
+delimiter //;
+CREATE PROCEDURE sp22( in f1 float(0), inout f2 float(0), out f3 float(0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute22;
+delimiter //;
+CREATE PROCEDURE spexecute22()
+BEGIN
+ declare var1 float(0);
+ declare var2 float(0);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp22(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute22();
+DROP PROCEDURE spexecute22;
+DROP PROCEDURE sp22;
+
+
+DROP PROCEDURE IF EXISTS sp23;
+delimiter //;
+CREATE PROCEDURE sp23( in f1 numeric, inout f2 numeric, out f3 numeric, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute23;
+delimiter //;
+CREATE PROCEDURE spexecute23()
+BEGIN
+ declare var1 numeric;
+ declare var2 numeric;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp23(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute23();
+DROP PROCEDURE spexecute23;
+DROP PROCEDURE sp23;
+
+
+DROP PROCEDURE IF EXISTS sp24;
+delimiter //;
+CREATE PROCEDURE sp24( in f1 real, inout f2 real, out f3 real, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute24;
+delimiter //;
+CREATE PROCEDURE spexecute24()
+BEGIN
+ declare var1 real;
+ declare var2 real;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.1;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp24(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute24();
+DROP PROCEDURE spexecute24;
+DROP PROCEDURE sp24;
+
+
+DROP PROCEDURE IF EXISTS sp25;
+delimiter //;
+CREATE PROCEDURE sp25( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute25;
+delimiter //;
+CREATE PROCEDURE spexecute25()
+BEGIN
+ declare var1 smallint;
+ declare var2 smallint;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -32701;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp25(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute25();
+DROP PROCEDURE spexecute25;
+DROP PROCEDURE sp25;
+
+
+DROP PROCEDURE IF EXISTS sp26;
+delimiter //;
+CREATE PROCEDURE sp26( in f1 date, inout f2 date, out f3 date, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = adddate(f1, interval 31 day); set f2 = adddate(f2, interval 31 day); set f3 = adddate(f2, interval 31 day);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute26;
+delimiter //;
+CREATE PROCEDURE spexecute26()
+BEGIN
+ declare var1 date;
+ declare var2 date;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = '1997-12-31';
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp26( '1997-12-31', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute26();
+DROP PROCEDURE spexecute26;
+DROP PROCEDURE sp26;
+
+
+DROP PROCEDURE IF EXISTS sp27;
+delimiter //;
+CREATE PROCEDURE sp27( in f1 time, inout f2 time, out f3 time, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = addtime(f1, '02:00:00.999998'); set f2 = addtime(f2, '02:00:00.999998'); set f3 = addtime(f2, '02:00:00.999998');
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute27;
+delimiter //;
+CREATE PROCEDURE spexecute27()
+BEGIN
+ declare var1 time;
+ declare var2 time;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = '23:59:59.999999';
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp27( '23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute27();
+DROP PROCEDURE spexecute27;
+DROP PROCEDURE sp27;
+
+
+DROP PROCEDURE IF EXISTS sp28;
+delimiter //;
+CREATE PROCEDURE sp28( in f1 datetime, inout f2 datetime, out f3 datetime, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = addtime(f1, '1 1:1:1.000002'); set f2 = addtime(f2, '1 1:1:1.000002'); set f3 = addtime(f1, '1 1:1:1.000002');
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute28;
+delimiter //;
+CREATE PROCEDURE spexecute28()
+BEGIN
+ declare var1 datetime;
+ declare var2 datetime;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = '1997-12-31 23:59:59.999999';
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp28('1997-12-31 23:59:59.999999', var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute28();
+DROP PROCEDURE spexecute28;
+DROP PROCEDURE sp28;
+
+
+DROP PROCEDURE IF EXISTS sp29;
+delimiter //;
+CREATE PROCEDURE sp29( in f1 float(0) unsigned, inout f2 float(0) unsigned, out f3 float(0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute29;
+delimiter //;
+CREATE PROCEDURE spexecute29()
+BEGIN
+ declare var1 float(0) unsigned;
+ declare var2 float(0) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp29(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute29();
+DROP PROCEDURE spexecute29;
+DROP PROCEDURE sp29;
+
+
+DROP PROCEDURE IF EXISTS sp30;
+delimiter //;
+CREATE PROCEDURE sp30( in f1 float(0) zerofill, inout f2 float(0) zerofill, out f3 float(0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute30;
+delimiter //;
+CREATE PROCEDURE spexecute30()
+BEGIN
+ declare var1 float(0) zerofill;
+ declare var2 float(0) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp30(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute30();
+DROP PROCEDURE spexecute30;
+DROP PROCEDURE sp30;
+
+
+DROP PROCEDURE IF EXISTS sp31;
+delimiter //;
+CREATE PROCEDURE sp31( in f1 float(23), inout f2 float(23), out f3 float(23), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute31;
+delimiter //;
+CREATE PROCEDURE spexecute31()
+BEGIN
+ declare var1 float(23);
+ declare var2 float(23);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp31(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute31();
+DROP PROCEDURE spexecute31;
+DROP PROCEDURE sp31;
+
+
+DROP PROCEDURE IF EXISTS sp32;
+delimiter //;
+CREATE PROCEDURE sp32( in f1 float(23) unsigned, inout f2 float(23) unsigned, out f3 float(23) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute32;
+delimiter //;
+CREATE PROCEDURE spexecute32()
+BEGIN
+ declare var1 float(23) unsigned;
+ declare var2 float(23) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp32(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute32();
+DROP PROCEDURE spexecute32;
+DROP PROCEDURE sp32;
+
+
+DROP PROCEDURE IF EXISTS sp33;
+delimiter //;
+CREATE PROCEDURE sp33( in f1 float(23) zerofill, inout f2 float(23) zerofill, out f3 float(23) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute33;
+delimiter //;
+CREATE PROCEDURE spexecute33()
+BEGIN
+ declare var1 float(23) zerofill;
+ declare var2 float(23) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp33(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute33();
+DROP PROCEDURE spexecute33;
+DROP PROCEDURE sp33;
+
+
+DROP PROCEDURE IF EXISTS sp34;
+delimiter //;
+CREATE PROCEDURE sp34( in f1 float(24), inout f2 float(24), out f3 float(24), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute34;
+delimiter //;
+CREATE PROCEDURE spexecute34()
+BEGIN
+ declare var1 float(24);
+ declare var2 float(24);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp34(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute34();
+DROP PROCEDURE spexecute34;
+DROP PROCEDURE sp34;
+
+
+DROP PROCEDURE IF EXISTS sp35;
+delimiter //;
+CREATE PROCEDURE sp35( in f1 float(24) unsigned, inout f2 float(24) unsigned, out f3 float(24) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute35;
+delimiter //;
+CREATE PROCEDURE spexecute35()
+BEGIN
+ declare var1 float(24) unsigned;
+ declare var2 float(24) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp35(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute35();
+DROP PROCEDURE spexecute35;
+DROP PROCEDURE sp35;
+
+
+DROP PROCEDURE IF EXISTS sp36;
+delimiter //;
+CREATE PROCEDURE sp36( in f1 float(24) zerofill, inout f2 float(24) zerofill, out f3 float(24) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute36;
+delimiter //;
+CREATE PROCEDURE spexecute36()
+BEGIN
+ declare var1 float(24) zerofill;
+ declare var2 float(24) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp36(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute36();
+DROP PROCEDURE spexecute36;
+DROP PROCEDURE sp36;
+
+
+DROP PROCEDURE IF EXISTS sp37;
+delimiter //;
+CREATE PROCEDURE sp37( in f1 float(53), inout f2 float(53), out f3 float(53), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute37;
+delimiter //;
+CREATE PROCEDURE spexecute37()
+BEGIN
+ declare var1 float(53);
+ declare var2 float(53);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp37(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute37();
+DROP PROCEDURE spexecute37;
+DROP PROCEDURE sp37;
+
+
+DROP PROCEDURE IF EXISTS sp38;
+delimiter //;
+CREATE PROCEDURE sp38( in f1 float(53) unsigned, inout f2 float(53) unsigned, out f3 float(53) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute38;
+delimiter //;
+CREATE PROCEDURE spexecute38()
+BEGIN
+ declare var1 float(53) unsigned;
+ declare var2 float(53) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp38(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute38();
+DROP PROCEDURE spexecute38;
+DROP PROCEDURE sp38;
+
+
+DROP PROCEDURE IF EXISTS sp39;
+delimiter //;
+CREATE PROCEDURE sp39( in f1 float(53) zerofill, inout f2 float(53) zerofill, out f3 float(53) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute39;
+delimiter //;
+CREATE PROCEDURE spexecute39()
+BEGIN
+ declare var1 float(53) zerofill;
+ declare var2 float(53) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp39(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute39();
+DROP PROCEDURE spexecute39;
+DROP PROCEDURE sp39;
+
+
+DROP PROCEDURE IF EXISTS sp40;
+delimiter //;
+CREATE PROCEDURE sp40( in f1 real unsigned, inout f2 real unsigned, out f3 real unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute40;
+delimiter //;
+CREATE PROCEDURE spexecute40()
+BEGIN
+ declare var1 real unsigned;
+ declare var2 real unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.1;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp40(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute40();
+DROP PROCEDURE spexecute40;
+DROP PROCEDURE sp40;
+
+
+DROP PROCEDURE IF EXISTS sp41;
+delimiter //;
+CREATE PROCEDURE sp41( in f1 real unsigned zerofill, inout f2 real unsigned zerofill, out f3 real unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute41;
+delimiter //;
+CREATE PROCEDURE spexecute41()
+BEGIN
+ declare var1 real unsigned zerofill;
+ declare var2 real unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.1;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp41(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute41();
+DROP PROCEDURE spexecute41;
+DROP PROCEDURE sp41;
+
+
+DROP PROCEDURE IF EXISTS sp42;
+delimiter //;
+CREATE PROCEDURE sp42( in f1 real zerofill, inout f2 real zerofill, out f3 real zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute42;
+delimiter //;
+CREATE PROCEDURE spexecute42()
+BEGIN
+ declare var1 real zerofill;
+ declare var2 real zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.1;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp42(1.1, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute42();
+DROP PROCEDURE spexecute42;
+DROP PROCEDURE sp42;
+
+
+DROP PROCEDURE IF EXISTS sp43;
+delimiter //;
+CREATE PROCEDURE sp43( in f1 numeric (0), inout f2 numeric (0), out f3 numeric (0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute43;
+delimiter //;
+CREATE PROCEDURE spexecute43()
+BEGIN
+ declare var1 numeric (0);
+ declare var2 numeric (0);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp43(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute43();
+DROP PROCEDURE spexecute43;
+DROP PROCEDURE sp43;
+
+
+DROP PROCEDURE IF EXISTS sp44;
+delimiter //;
+CREATE PROCEDURE sp44( in f1 numeric (0) unsigned, inout f2 numeric (0) unsigned, out f3 numeric (0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute44;
+delimiter //;
+CREATE PROCEDURE spexecute44()
+BEGIN
+ declare var1 numeric (0) unsigned;
+ declare var2 numeric (0) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 9999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp44(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute44();
+DROP PROCEDURE spexecute44;
+DROP PROCEDURE sp44;
+
+
+DROP PROCEDURE IF EXISTS sp45;
+delimiter //;
+CREATE PROCEDURE sp45( in f1 numeric (0) zerofill, inout f2 numeric (0) zerofill, out f3 numeric (0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute45;
+delimiter //;
+CREATE PROCEDURE spexecute45()
+BEGIN
+ declare var1 numeric (0) zerofill;
+ declare var2 numeric (0) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -99999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp45(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute45();
+DROP PROCEDURE spexecute45;
+DROP PROCEDURE sp45;
+
+
+DROP PROCEDURE IF EXISTS sp46;
+delimiter //;
+CREATE PROCEDURE sp46( in f1 numeric (0, 0), inout f2 numeric (0, 0), out f3 numeric (0, 0), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute46;
+delimiter //;
+CREATE PROCEDURE spexecute46()
+BEGIN
+ declare var1 numeric (0, 0);
+ declare var2 numeric (0, 0);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp46(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute46();
+DROP PROCEDURE spexecute46;
+DROP PROCEDURE sp46;
+
+
+DROP PROCEDURE IF EXISTS sp47;
+delimiter //;
+CREATE PROCEDURE sp47( in f1 numeric (0, 0) unsigned, inout f2 numeric (0, 0) unsigned, out f3 numeric (0, 0) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute47;
+delimiter //;
+CREATE PROCEDURE spexecute47()
+BEGIN
+ declare var1 numeric (0, 0) unsigned;
+ declare var2 numeric (0, 0) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 9999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp47(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute47();
+DROP PROCEDURE spexecute47;
+DROP PROCEDURE sp47;
+
+
+DROP PROCEDURE IF EXISTS sp48;
+delimiter //;
+CREATE PROCEDURE sp48( in f1 numeric (0, 0) zerofill, inout f2 numeric (0, 0) zerofill, out f3 numeric (0, 0) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute48;
+delimiter //;
+CREATE PROCEDURE spexecute48()
+BEGIN
+ declare var1 numeric (0, 0) zerofill;
+ declare var2 numeric (0, 0) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -99999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp48(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute48();
+DROP PROCEDURE spexecute48;
+DROP PROCEDURE sp48;
+
+
+DROP PROCEDURE IF EXISTS sp49;
+delimiter //;
+CREATE PROCEDURE sp49( in f1 numeric unsigned, inout f2 numeric unsigned, out f3 numeric unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute49;
+delimiter //;
+CREATE PROCEDURE spexecute49()
+BEGIN
+ declare var1 numeric unsigned;
+ declare var2 numeric unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp49(-999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute49();
+DROP PROCEDURE spexecute49;
+DROP PROCEDURE sp49;
+
+
+DROP PROCEDURE IF EXISTS sp50;
+delimiter //;
+CREATE PROCEDURE sp50( in f1 numeric unsigned zerofill, inout f2 numeric unsigned zerofill, out f3 numeric unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute50;
+delimiter //;
+CREATE PROCEDURE spexecute50()
+BEGIN
+ declare var1 numeric unsigned zerofill;
+ declare var2 numeric unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 9999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp50(9999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute50();
+DROP PROCEDURE spexecute50;
+DROP PROCEDURE sp50;
+
+
+DROP PROCEDURE IF EXISTS sp51;
+delimiter //;
+CREATE PROCEDURE sp51( in f1 numeric zerofill, inout f2 numeric zerofill, out f3 numeric zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute51;
+delimiter //;
+CREATE PROCEDURE spexecute51()
+BEGIN
+ declare var1 numeric zerofill;
+ declare var2 numeric zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -99999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp51(-99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute51();
+DROP PROCEDURE spexecute51;
+DROP PROCEDURE sp51;
+
+
+DROP PROCEDURE IF EXISTS sp52;
+delimiter //;
+CREATE PROCEDURE sp52( in f1 numeric (63, 30), inout f2 numeric (63, 30), out f3 numeric (63, 30), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute52;
+delimiter //;
+eval CREATE PROCEDURE spexecute52()
+BEGIN
+ declare var1 numeric (63, 30);
+ declare var2 numeric (63, 30);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_m36;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp52($callvar01m, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: check later again with E+40
+CALL spexecute52();
+DROP PROCEDURE spexecute52;
+DROP PROCEDURE sp52;
+
+
+DROP PROCEDURE IF EXISTS sp53;
+delimiter //;
+CREATE PROCEDURE sp53( in f1 numeric (64), inout f2 numeric (64), out f3 numeric (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute53;
+delimiter //;
+eval CREATE PROCEDURE spexecute53()
+BEGIN
+ declare var1 numeric (64);
+ declare var2 numeric (64);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_m40;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp53($callvar01m, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: check later again with E+40
+CALL spexecute53();
+DROP PROCEDURE spexecute53;
+DROP PROCEDURE sp53;
+
+
+DROP PROCEDURE IF EXISTS sp54;
+delimiter //;
+CREATE PROCEDURE sp54( in f1 numeric (64) unsigned, inout f2 numeric (64) unsigned, out f3 numeric (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute54;
+delimiter //;
+eval CREATE PROCEDURE spexecute54()
+BEGIN
+ declare var1 numeric (64) unsigned;
+ declare var2 numeric (64) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_40;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp54($callvar01p, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: check later again with E+40
+CALL spexecute54();
+DROP PROCEDURE spexecute54;
+DROP PROCEDURE sp54;
+
+
+DROP PROCEDURE IF EXISTS sp55;
+delimiter //;
+CREATE PROCEDURE sp55( in f1 numeric (64) zerofill, inout f2 numeric (64) zerofill, out f3 numeric (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute55;
+delimiter //;
+eval CREATE PROCEDURE spexecute55()
+BEGIN
+ declare var1 numeric (64) zerofill;
+ declare var2 numeric (64) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_m40;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp55($callvar01m, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: check later again with E+40
+CALL spexecute55();
+DROP PROCEDURE spexecute55;
+DROP PROCEDURE sp55;
+
+
+DROP PROCEDURE IF EXISTS sp56;
+delimiter //;
+CREATE PROCEDURE sp56( in f1 year, inout f2 year, out f3 year, in f4 year, inout f5 year, out f6 year, in f7 year, inout f8 year, out f9 year, in f10 year, inout f11 year, out f12 year)
+BEGIN
+ set f1 = f1 + 10; set f2 = f2 + 10; set f3 = f2 + 10;
+ set f4 = f4 + 10; set f5 = f5 + 10; set f6 = f5 + 10;
+ set f7 = f7 + 10; set f8 = f8 + 10; set f9 = f8 + 10;
+ set f10= f10+ 10; set f11 = f11 + 10; set f12 = f11 + 10;
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute56;
+delimiter //;
+CREATE PROCEDURE spexecute56()
+BEGIN
+ declare var1 year;
+ declare var2 year;
+ declare var3 year;
+ declare var4 year;
+ declare var5 year;
+ declare var6 year;
+ declare var7 year;
+ declare var8 year;
+ set var1 = 51;
+ set var3 = 51;
+ set var5 = 51;
+ set var7 = 51;
+ CALL sp56(51, var1, var2, 51, var3, var4, 51, var5, var6, 51, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute56();
+DROP PROCEDURE spexecute56;
+DROP PROCEDURE sp56;
+
+
+DROP PROCEDURE IF EXISTS sp57;
+delimiter //;
+CREATE PROCEDURE sp57( in f1 year(4), inout f2 year(4), out f3 year(4), in f4 year(4), inout f5 year(4), out f6 year(4), in f7 year(4), inout f8 year(4), out f9 year(4), in f10 year(4), inout f11 year(4), out f12 year(4))
+BEGIN
+ set f1 = f1 + 51; set f2 = f2 + 51; set f3 = f2 + 51;
+ set f4 = f4 + 51; set f5 = f5 + 51; set f6 = f5 + 51;
+ set f7 = f7 + 51; set f8 = f8 + 51; set f9 = f8 + 51;
+ set f10 = f10 + 51; set f11 = f11 + 51; set f12 = f11 + 51;
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute57;
+delimiter //;
+CREATE PROCEDURE spexecute57()
+BEGIN
+ declare var1 year(4);
+ declare var2 year(4);
+ declare var3 year(4);
+ declare var4 year(4);
+ declare var5 year(4);
+ declare var6 year(4);
+ declare var7 year(4);
+ declare var8 year(4);
+ set var1 = 1982;
+ set var3 = 1982;
+ set var5 = 1982;
+ set var7 = 1982;
+ CALL sp57(1982, var1, var2, 1982, var3, var4, 1982, var5, var6, 1982, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute57();
+DROP PROCEDURE spexecute57;
+DROP PROCEDURE sp57;
+
+
+DROP PROCEDURE IF EXISTS sp58;
+delimiter //;
+CREATE PROCEDURE sp58( in f1 text, inout f2 text, out f3 text, in f4 text, inout f5 text, out f6 text, in f7 text, inout f8 text, out f9 text, in f10 text, inout f11 text, out f12 text)
+BEGIN
+ set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+ set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+ set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+ set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute58;
+delimiter //;
+CREATE PROCEDURE spexecute58()
+BEGIN
+ declare var1 text;
+ declare var2 text;
+ declare var3 text;
+ declare var4 text;
+ declare var5 text;
+ declare var6 text;
+ declare var7 text;
+ declare var8 text;
+ set var1 = 'world';
+ set var3 = 'world';
+ set var5 = 'world';
+ set var7 = 'world';
+ CALL sp58( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute58();
+DROP PROCEDURE spexecute58;
+DROP PROCEDURE sp58;
+
+
+DROP PROCEDURE IF EXISTS sp59;
+delimiter //;
+CREATE PROCEDURE sp59( in f1 tinytext, inout f2 tinytext, out f3 tinytext, in f4 tinytext, inout f5 tinytext, out f6 tinytext, in f7 tinytext, inout f8 tinytext, out f9 tinytext, in f10 tinytext, inout f11 tinytext, out f12 tinytext)
+BEGIN
+ set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+ set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+ set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+ set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute59;
+delimiter //;
+CREATE PROCEDURE spexecute59()
+BEGIN
+ declare var1 tinytext;
+ declare var2 tinytext;
+ declare var3 tinytext;
+ declare var4 tinytext;
+ declare var5 tinytext;
+ declare var6 tinytext;
+ declare var7 tinytext;
+ declare var8 tinytext;
+ set var1 = 'world';
+ set var3 = 'world';
+ set var5 = 'world';
+ set var7 = 'world';
+ CALL sp59( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute59();
+DROP PROCEDURE spexecute59;
+DROP PROCEDURE sp59;
+
+
+DROP PROCEDURE IF EXISTS sp60;
+delimiter //;
+CREATE PROCEDURE sp60( in f1 char, inout f2 char, out f3 char, in f4 char, inout f5 char, out f6 char, in f7 char, inout f8 char, out f9 char, in f10 char, inout f11 char, out f12 char)
+BEGIN
+ set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f1);
+ set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f5);
+ set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f8);
+ set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute60;
+delimiter //;
+CREATE PROCEDURE spexecute60()
+BEGIN
+ declare var1 char;
+ declare var2 char;
+ declare var3 char;
+ declare var4 char;
+ declare var5 char;
+ declare var6 char;
+ declare var7 char;
+ declare var8 char;
+ set var1 = 'h';
+ set var3 = 'h';
+ set var5 = 'h';
+ set var7 = 'h';
+ CALL sp60( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute60();
+DROP PROCEDURE spexecute60;
+DROP PROCEDURE sp60;
+
+
+DROP PROCEDURE IF EXISTS sp61;
+delimiter //;
+CREATE PROCEDURE sp61( in f1 char ascii, inout f2 char ascii, out f3 char ascii, in f4 char ascii, inout f5 char ascii, out f6 char ascii, in f7 char ascii, inout f8 char ascii, out f9 char ascii, in f10 char ascii, inout f11 char ascii, out f12 char ascii)
+BEGIN
+ set f1 = concat('a', f1); set f2 = concat('a', f2); set f3 = concat('a', f2);
+ set f4 = concat('a', f4); set f5 = concat('a', f5); set f6 = concat('a', f4);
+ set f7 = concat('a', f7); set f8 = concat('a', f8); set f9 = concat('a', f9);
+ set f10 = concat('a', f10); set f11 = concat('a', f11); set f12 = concat('a', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute61;
+delimiter //;
+CREATE PROCEDURE spexecute61()
+BEGIN
+ declare var1 char ascii;
+ declare var2 char ascii;
+ declare var3 char ascii;
+ declare var4 char ascii;
+ declare var5 char ascii;
+ declare var6 char ascii;
+ declare var7 char ascii;
+ declare var8 char ascii;
+ set var1 = 'h';
+ set var3 = 'h';
+ set var5 = 'h';
+ set var7 = 'h';
+ CALL sp61( 'h', var1, var2, 'h', var3, var4, 'h', var5, var6, 'h', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute61();
+
+DROP PROCEDURE spexecute61;
+DROP PROCEDURE sp61;
+
+
+DROP PROCEDURE IF EXISTS sp62;
+delimiter //;
+CREATE PROCEDURE sp62( in f1 longtext, inout f2 longtext, out f3 longtext, in f4 longtext, inout f5 longtext, out f6 longtext, in f7 longtext, inout f8 longtext, out f9 longtext, in f10 longtext, inout f11 longtext, out f12 longtext)
+BEGIN
+ set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f2);
+ set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+ set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+ set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute62;
+delimiter //;
+CREATE PROCEDURE spexecute62()
+BEGIN
+ declare var1 longtext;
+ declare var2 longtext;
+ declare var3 longtext;
+ declare var4 longtext;
+ declare var5 longtext;
+ declare var6 longtext;
+ declare var7 longtext;
+ declare var8 longtext;
+ set var1 = 'world';
+ set var3 = 'world';
+ set var5 = 'world';
+ set var7 = 'world';
+ CALL sp62( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute62();
+DROP PROCEDURE spexecute62;
+DROP PROCEDURE sp62;
+
+
+DROP PROCEDURE IF EXISTS sp63;
+delimiter //;
+CREATE PROCEDURE sp63( in f1 mediumtext, inout f2 mediumtext, out f3 mediumtext, in f4 mediumtext, inout f5 mediumtext, out f6 mediumtext, in f7 mediumtext, inout f8 mediumtext, out f9 mediumtext, in f10 mediumtext, inout f11 mediumtext, out f12 mediumtext)
+BEGIN
+ set f1 = concat('hello', f1); set f2 = concat('hello', f2); set f3 = concat('hello', f3);
+ set f4 = concat('hello', f4); set f5 = concat('hello', f5); set f6 = concat('hello', f5);
+ set f7 = concat('hello', f7); set f8 = concat('hello', f8); set f9 = concat('hello', f8);
+ set f10 = concat('hello', f10); set f11 = concat('hello', f11); set f12 = concat('hello', f11);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute63;
+delimiter //;
+CREATE PROCEDURE spexecute63()
+BEGIN
+ declare var1 mediumtext;
+ declare var2 mediumtext;
+ declare var3 mediumtext;
+ declare var4 mediumtext;
+ declare var5 mediumtext;
+ declare var6 mediumtext;
+ declare var7 mediumtext;
+ declare var8 mediumtext;
+ set var1 = 'world';
+ set var3 = 'world';
+ set var5 = 'world';
+ set var7 = 'world';
+ CALL sp63( 'world', var1, var2, 'world', var3, var4, 'world', var5, var6, 'world', var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute63();
+
+DROP PROCEDURE spexecute63;
+DROP PROCEDURE sp63;
+
+
+DROP PROCEDURE IF EXISTS sp64;
+delimiter //;
+CREATE PROCEDURE sp64( in f1 decimal, inout f2 decimal, out f3 decimal, in f4 decimal, inout f5 decimal, out f6 decimal, in f7 decimal, inout f8 decimal, out f9 decimal, in f10 decimal, inout f11 decimal, out f12 decimal)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f2 / 2); set f3 = (f2 * 2); set f3 = (f2 - 10); set f3 = (f2 + 10);
+ set f4 = (f4 / 2); set f4 = (f4 * 2); set f4 = (f4 - 10); set f4 = (f4 + 10); set f5 = (f5 / 2); set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f5 / 2); set f6 = (f5 * 2); set f6 = (f5 - 10); set f6 = (f5 + 10);
+ set f7 = (f7 / 2); set f7 = (f7 * 2); set f7 = (f7 - 10); set f7 = (f7 + 10); set f8 = (f8 / 2); set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f8 / 2); set f9 = (f8 * 2); set f9 = (f8 - 10); set f9 = (f8 + 10);
+ set f10 = (f10 / 2); set f10 = (f10 * 2); set f10 = (f10 - 10); set f10 = (f10 + 10); set f11 = (f11 / 2); set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f11 / 2); set f12 = (f11 * 2); set f12 = (f11 - 10); set f12 = (f11 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute64;
+delimiter //;
+CREATE PROCEDURE spexecute64()
+BEGIN
+ declare var1 decimal;
+ declare var2 decimal;
+ declare var3 decimal;
+ declare var4 decimal;
+ declare var5 decimal;
+ declare var6 decimal;
+ declare var7 decimal;
+ declare var8 decimal;
+ set var1 = --1.00e+09;
+ set var3 = --1.00e+09;
+ set var5 = --1.00e+09;
+ set var7 = --1.00e+09;
+ CALL sp64(--1.00e+09, var1, var2, --1.00e+09, var3, var4, --1.00e+09, var5, var6, --1.00e+09, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute64();
+DROP PROCEDURE spexecute64;
+DROP PROCEDURE sp64;
+
+
+DROP PROCEDURE IF EXISTS sp65;
+delimiter //;
+CREATE PROCEDURE sp65( in f1 decimal (0, 0) unsigned zerofill, inout f2 decimal (0, 0) unsigned zerofill, out f3 decimal (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute65;
+delimiter //;
+CREATE PROCEDURE spexecute65()
+BEGIN
+ declare var1 decimal (0, 0) unsigned zerofill;
+ declare var2 decimal (0, 0) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 999999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp65(999999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute65();
+DROP PROCEDURE spexecute65;
+DROP PROCEDURE sp65;
+
+
+DROP PROCEDURE IF EXISTS sp66;
+delimiter //;
+CREATE PROCEDURE sp66( in f1 decimal (63, 30) unsigned, inout f2 decimal (63, 30) unsigned, out f3 decimal (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute66;
+delimiter //;
+CREATE PROCEDURE spexecute66()
+BEGIN
+ declare var1 decimal (63, 30) unsigned;
+ declare var2 decimal (63, 30) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+16;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp66(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute66();
+DROP PROCEDURE spexecute66;
+DROP PROCEDURE sp66;
+
+
+DROP PROCEDURE IF EXISTS sp67;
+delimiter //;
+CREATE PROCEDURE sp67( in f1 decimal (63, 30) unsigned zerofill, inout f2 decimal (63, 30) unsigned zerofill, out f3 decimal (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute67;
+delimiter //;
+CREATE PROCEDURE spexecute67()
+BEGIN
+ declare var1 decimal (63, 30) unsigned zerofill;
+ declare var2 decimal (63, 30) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+16;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp67(1.00e+16, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute67();
+DROP PROCEDURE spexecute67;
+DROP PROCEDURE sp67;
+
+
+DROP PROCEDURE IF EXISTS sp68;
+delimiter //;
+CREATE PROCEDURE sp68( in f1 decimal (63, 30) zerofill, inout f2 decimal (63, 30) zerofill, out f3 decimal (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute68;
+delimiter //;
+CREATE PROCEDURE spexecute68()
+BEGIN
+ declare var1 decimal (63, 30) zerofill;
+ declare var2 decimal (63, 30) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -1.00e+21;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp68(-1.00e+21, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute68();
+DROP PROCEDURE spexecute68;
+DROP PROCEDURE sp68;
+
+
+DROP PROCEDURE IF EXISTS sp69;
+delimiter //;
+CREATE PROCEDURE sp69( in f1 decimal (64), inout f2 decimal (64), out f3 decimal (64), in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute69;
+delimiter //;
+eval CREATE PROCEDURE spexecute69()
+BEGIN
+ declare var1 decimal (64);
+ declare var2 decimal (64);
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_m30;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp69($callvar01m, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: hpux11 - check later again with E+40
+CALL spexecute69();
+DROP PROCEDURE spexecute69;
+DROP PROCEDURE sp69;
+
+
+DROP PROCEDURE IF EXISTS sp70;
+delimiter //;
+CREATE PROCEDURE sp70( in f1 decimal (64) unsigned, inout f2 decimal (64) unsigned, out f3 decimal (64) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute70;
+delimiter //;
+eval CREATE PROCEDURE spexecute70()
+BEGIN
+ declare var1 decimal (64) unsigned;
+ declare var2 decimal (64) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_20;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp70($callvar01p, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute70();
+DROP PROCEDURE spexecute70;
+DROP PROCEDURE sp70;
+
+
+DROP PROCEDURE IF EXISTS sp71;
+delimiter //;
+CREATE PROCEDURE sp71( in f1 decimal (64) unsigned zerofill, inout f2 decimal (64) unsigned zerofill, out f3 decimal (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute71;
+delimiter //;
+eval CREATE PROCEDURE spexecute71()
+BEGIN
+ declare var1 decimal (64) unsigned zerofill;
+ declare var2 decimal (64) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_24;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp71($callvar01p, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: hpux11 - check later again with E+40
+CALL spexecute71();
+DROP PROCEDURE spexecute71;
+DROP PROCEDURE sp71;
+
+
+DROP PROCEDURE IF EXISTS sp72;
+delimiter //;
+CREATE PROCEDURE sp72( in f1 decimal (64) zerofill, inout f2 decimal (64) zerofill, out f3 decimal (64) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute72;
+delimiter //;
+CREATE PROCEDURE spexecute72()
+BEGIN
+ declare var1 decimal (64) zerofill;
+ declare var2 decimal (64) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp72(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute72();
+DROP PROCEDURE spexecute72;
+DROP PROCEDURE sp72;
+
+
+DROP PROCEDURE IF EXISTS sp73;
+delimiter //;
+CREATE PROCEDURE sp73( in f1 decimal unsigned, inout f2 decimal unsigned, out f3 decimal unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute73;
+delimiter //;
+CREATE PROCEDURE spexecute73()
+BEGIN
+ declare var1 decimal unsigned;
+ declare var2 decimal unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp73(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute73();
+DROP PROCEDURE spexecute73;
+DROP PROCEDURE sp73;
+
+
+DROP PROCEDURE IF EXISTS sp74;
+delimiter //;
+CREATE PROCEDURE sp74( in f1 decimal unsigned zerofill, inout f2 decimal unsigned zerofill, out f3 decimal unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute74;
+delimiter //;
+CREATE PROCEDURE spexecute74()
+BEGIN
+ declare var1 decimal unsigned zerofill;
+ declare var2 decimal unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp74(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute74();
+DROP PROCEDURE spexecute74;
+DROP PROCEDURE sp74;
+
+
+DROP PROCEDURE IF EXISTS sp75;
+delimiter //;
+CREATE PROCEDURE sp75( in f1 decimal zerofill, inout f2 decimal zerofill, out f3 decimal zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute75;
+delimiter //;
+CREATE PROCEDURE spexecute75()
+BEGIN
+ declare var1 decimal zerofill;
+ declare var2 decimal zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -1.00e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp75(-1.00e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute75();
+DROP PROCEDURE spexecute75;
+DROP PROCEDURE sp75;
+
+
+DROP PROCEDURE IF EXISTS sp76;
+delimiter //;
+CREATE PROCEDURE sp76( in f1 float(0) unsigned zerofill, inout f2 float(0) unsigned zerofill, out f3 float(0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute76;
+delimiter //;
+CREATE PROCEDURE spexecute76()
+BEGIN
+ declare var1 float(0) unsigned zerofill;
+ declare var2 float(0) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp76(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute76();
+DROP PROCEDURE spexecute76;
+DROP PROCEDURE sp76;
+
+
+DROP PROCEDURE IF EXISTS sp77;
+delimiter //;
+CREATE PROCEDURE sp77( in f1 float(23) unsigned zerofill, inout f2 float(23) unsigned zerofill, out f3 float(23) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute77;
+delimiter //;
+CREATE PROCEDURE spexecute77()
+BEGIN
+ declare var1 float(23) unsigned zerofill;
+ declare var2 float(23) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp77(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute77();
+DROP PROCEDURE spexecute77;
+DROP PROCEDURE sp77;
+
+
+DROP PROCEDURE IF EXISTS sp78;
+delimiter //;
+CREATE PROCEDURE sp78( in f1 float(24) unsigned zerofill, inout f2 float(24) unsigned zerofill, out f3 float(24) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute78;
+delimiter //;
+CREATE PROCEDURE spexecute78()
+BEGIN
+ declare var1 float(24) unsigned zerofill;
+ declare var2 float(24) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp78(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute78();
+DROP PROCEDURE spexecute78;
+DROP PROCEDURE sp78;
+
+
+DROP PROCEDURE IF EXISTS sp79;
+delimiter //;
+CREATE PROCEDURE sp79( in f1 float(53) unsigned zerofill, inout f2 float(53) unsigned zerofill, out f3 float(53) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute79;
+delimiter //;
+CREATE PROCEDURE spexecute79()
+BEGIN
+ declare var1 float(53) unsigned zerofill;
+ declare var2 float(53) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 1.00e+00;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp79(1.00e+00, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute79();
+DROP PROCEDURE spexecute79;
+DROP PROCEDURE sp79;
+
+
+DROP PROCEDURE IF EXISTS sp80;
+delimiter //;
+CREATE PROCEDURE sp80( in f1 int, inout f2 int, out f3 int, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute80;
+delimiter //;
+CREATE PROCEDURE spexecute80()
+BEGIN
+ declare var1 int;
+ declare var2 int;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -2.15e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp80(-2.15e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute80();
+DROP PROCEDURE spexecute80;
+DROP PROCEDURE sp80;
+
+
+DROP PROCEDURE IF EXISTS sp81;
+delimiter //;
+CREATE PROCEDURE sp81( in f1 int unsigned, inout f2 int unsigned, out f3 int unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute81;
+delimiter //;
+CREATE PROCEDURE spexecute81()
+BEGIN
+ declare var1 int unsigned;
+ declare var2 int unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 4.29e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp81(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute81();
+DROP PROCEDURE spexecute81;
+DROP PROCEDURE sp81;
+
+
+DROP PROCEDURE IF EXISTS sp82;
+delimiter //;
+CREATE PROCEDURE sp82( in f1 int unsigned zerofill, inout f2 int unsigned zerofill, out f3 int unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute82;
+delimiter //;
+CREATE PROCEDURE spexecute82()
+BEGIN
+ declare var1 int unsigned zerofill;
+ declare var2 int unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 4.29e+09;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp82(4.29e+09, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute82();
+DROP PROCEDURE spexecute82;
+DROP PROCEDURE sp82;
+
+
+DROP PROCEDURE IF EXISTS sp83;
+delimiter //;
+CREATE PROCEDURE sp83( in f1 int zerofill, inout f2 int zerofill, out f3 int zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute83;
+delimiter //;
+CREATE PROCEDURE spexecute83()
+BEGIN
+ declare var1 int zerofill;
+ declare var2 int zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 2.15e+08;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp83(2.15e+08, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute83();
+DROP PROCEDURE spexecute83;
+DROP PROCEDURE sp83;
+
+
+DROP PROCEDURE IF EXISTS sp84;
+delimiter //;
+CREATE PROCEDURE sp84( in f1 mediumint, inout f2 mediumint, out f3 mediumint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute84;
+delimiter //;
+CREATE PROCEDURE spexecute84()
+BEGIN
+ declare var1 mediumint;
+ declare var2 mediumint;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -8388600;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp84(-8388600, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute84();
+DROP PROCEDURE spexecute84;
+DROP PROCEDURE sp84;
+
+
+DROP PROCEDURE IF EXISTS sp85;
+delimiter //;
+CREATE PROCEDURE sp85( in f1 mediumint unsigned, inout f2 mediumint unsigned, out f3 mediumint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute85;
+delimiter //;
+CREATE PROCEDURE spexecute85()
+BEGIN
+ declare var1 mediumint unsigned;
+ declare var2 mediumint unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 16777201;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp85(16777201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute85();
+DROP PROCEDURE spexecute85;
+DROP PROCEDURE sp85;
+
+
+DROP PROCEDURE IF EXISTS sp86;
+delimiter //;
+CREATE PROCEDURE sp86( in f1 mediumint unsigned zerofill, inout f2 mediumint unsigned zerofill, out f3 mediumint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute86;
+delimiter //;
+CREATE PROCEDURE spexecute86()
+BEGIN
+ declare var1 mediumint unsigned zerofill;
+ declare var2 mediumint unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 16777210;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp86(16777210, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute86();
+DROP PROCEDURE spexecute86;
+DROP PROCEDURE sp86;
+
+
+DROP PROCEDURE IF EXISTS sp87;
+delimiter //;
+CREATE PROCEDURE sp87( in f1 mediumint zerofill, inout f2 mediumint zerofill, out f3 mediumint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute87;
+delimiter //;
+CREATE PROCEDURE spexecute87()
+BEGIN
+ declare var1 mediumint zerofill;
+ declare var2 mediumint zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -8388601;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp87(-8388601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute87();
+DROP PROCEDURE spexecute87;
+DROP PROCEDURE sp87;
+
+
+DROP PROCEDURE IF EXISTS sp88;
+delimiter //;
+CREATE PROCEDURE sp88( in f1 numeric (0) unsigned zerofill, inout f2 numeric (0) unsigned zerofill, out f3 numeric (0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute88;
+delimiter //;
+CREATE PROCEDURE spexecute88()
+BEGIN
+ declare var1 numeric (0) unsigned zerofill;
+ declare var2 numeric (0) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 99999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp88(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute88();
+DROP PROCEDURE spexecute88;
+DROP PROCEDURE sp88;
+
+
+DROP PROCEDURE IF EXISTS sp89;
+delimiter //;
+CREATE PROCEDURE sp89( in f1 numeric (0, 0) unsigned zerofill, inout f2 numeric (0, 0) unsigned zerofill, out f3 numeric (0, 0) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute89;
+delimiter //;
+CREATE PROCEDURE spexecute89()
+BEGIN
+ declare var1 numeric (0, 0) unsigned zerofill;
+ declare var2 numeric (0, 0) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 99999999;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp89(99999999, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute89();
+DROP PROCEDURE spexecute89;
+DROP PROCEDURE sp89;
+
+
+DROP PROCEDURE IF EXISTS sp90;
+delimiter //;
+CREATE PROCEDURE sp90( in f1 numeric (63, 30) unsigned, inout f2 numeric (63, 30) unsigned, out f3 numeric (63, 30) unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute90;
+delimiter //;
+eval CREATE PROCEDURE spexecute90()
+BEGIN
+ declare var1 numeric (63, 30) unsigned;
+ declare var2 numeric (63, 30) unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_36;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp90($callvar01p, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: hpux11 - check later again with E+40
+CALL spexecute90();
+DROP PROCEDURE spexecute90;
+DROP PROCEDURE sp90;
+
+
+DROP PROCEDURE IF EXISTS sp91;
+delimiter //;
+CREATE PROCEDURE sp91( in f1 numeric (63, 30) unsigned zerofill, inout f2 numeric (63, 30) unsigned zerofill, out f3 numeric (63, 30) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute91;
+delimiter //;
+eval CREATE PROCEDURE spexecute91()
+BEGIN
+ declare var1 numeric (63, 30) unsigned zerofill;
+ declare var2 numeric (63, 30) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_36;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp91($callvar01p, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: hpux11 - check later again with E+40
+CALL spexecute91();
+DROP PROCEDURE spexecute91;
+DROP PROCEDURE sp91;
+
+
+DROP PROCEDURE IF EXISTS sp92;
+delimiter //;
+CREATE PROCEDURE sp92( in f1 numeric (63, 30) zerofill, inout f2 numeric (63, 30) zerofill, out f3 numeric (63, 30) zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute92;
+delimiter //;
+eval CREATE PROCEDURE spexecute92()
+BEGIN
+ declare var1 numeric (63, 30) zerofill;
+ declare var2 numeric (63, 30) zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_m36;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp92($callvar01m, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: hpux11 - check later again with E+40
+CALL spexecute92();
+DROP PROCEDURE spexecute92;
+DROP PROCEDURE sp92;
+
+
+DROP PROCEDURE IF EXISTS sp93;
+delimiter //;
+CREATE PROCEDURE sp93( in f1 numeric (64) unsigned zerofill, inout f2 numeric (64) unsigned zerofill, out f3 numeric (64) unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute93;
+delimiter //;
+eval CREATE PROCEDURE spexecute93()
+BEGIN
+ declare var1 numeric (64) unsigned zerofill;
+ declare var2 numeric (64) unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = $procvar01_40;
+ set var3 = $procvar03;
+ set var5 = $procvar05;
+ set var7 = $procvar07;
+ CALL sp93($callvar01p, var1, var2, $callvar02, var3, var4, $callvar03, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+#FIXME: hpux11 - check later again with E+40
+CALL spexecute93();
+DROP PROCEDURE spexecute93;
+DROP PROCEDURE sp93;
+
+
+DROP PROCEDURE IF EXISTS sp94;
+delimiter //;
+CREATE PROCEDURE sp94( in f1 smallint, inout f2 smallint, out f3 smallint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute94;
+delimiter //;
+CREATE PROCEDURE spexecute94()
+BEGIN
+ declare var1 smallint;
+ declare var2 smallint;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -32701;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp94(-32701, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute94();
+DROP PROCEDURE spexecute94;
+DROP PROCEDURE sp94;
+
+
+DROP PROCEDURE IF EXISTS sp95;
+delimiter //;
+CREATE PROCEDURE sp95( in f1 smallint unsigned, inout f2 smallint unsigned, out f3 smallint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute95;
+delimiter //;
+CREATE PROCEDURE spexecute95()
+BEGIN
+ declare var1 smallint unsigned;
+ declare var2 smallint unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 65531;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp95(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute95();
+DROP PROCEDURE spexecute95;
+DROP PROCEDURE sp95;
+
+
+DROP PROCEDURE IF EXISTS sp96;
+delimiter //;
+CREATE PROCEDURE sp96( in f1 smallint unsigned zerofill, inout f2 smallint unsigned zerofill, out f3 smallint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute96;
+delimiter //;
+CREATE PROCEDURE spexecute96()
+BEGIN
+ declare var1 smallint unsigned zerofill;
+ declare var2 smallint unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 65531;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp96(65531, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute96();
+DROP PROCEDURE spexecute96;
+DROP PROCEDURE sp96;
+
+
+DROP PROCEDURE IF EXISTS sp97;
+delimiter //;
+CREATE PROCEDURE sp97( in f1 smallint zerofill, inout f2 smallint zerofill, out f3 smallint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute97;
+delimiter //;
+CREATE PROCEDURE spexecute97()
+BEGIN
+ declare var1 smallint zerofill;
+ declare var2 smallint zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -32601;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp97(-32601, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute97();
+DROP PROCEDURE spexecute97;
+DROP PROCEDURE sp97;
+
+
+DROP PROCEDURE IF EXISTS sp98;
+delimiter //;
+CREATE PROCEDURE sp98( in f1 tinyint, inout f2 tinyint, out f3 tinyint, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute98;
+delimiter //;
+CREATE PROCEDURE spexecute98()
+BEGIN
+ declare var1 tinyint;
+ declare var2 tinyint;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -115;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp98(-115, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute98();
+DROP PROCEDURE spexecute98;
+DROP PROCEDURE sp98;
+
+
+DROP PROCEDURE IF EXISTS sp99;
+delimiter //;
+CREATE PROCEDURE sp99( in f1 tinyint unsigned, inout f2 tinyint unsigned, out f3 tinyint unsigned, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute99;
+delimiter //;
+CREATE PROCEDURE spexecute99()
+BEGIN
+ declare var1 tinyint unsigned;
+ declare var2 tinyint unsigned;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 251;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp99(251, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute99();
+DROP PROCEDURE spexecute99;
+DROP PROCEDURE sp99;
+
+
+DROP PROCEDURE IF EXISTS sp100;
+delimiter //;
+CREATE PROCEDURE sp100( in f1 tinyint unsigned zerofill, inout f2 tinyint unsigned zerofill, out f3 tinyint unsigned zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute100;
+delimiter //;
+CREATE PROCEDURE spexecute100()
+BEGIN
+ declare var1 tinyint unsigned zerofill;
+ declare var2 tinyint unsigned zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = 201;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp100(201, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute100();
+DROP PROCEDURE spexecute100;
+DROP PROCEDURE sp100;
+
+
+DROP PROCEDURE IF EXISTS sp101;
+delimiter //;
+CREATE PROCEDURE sp101( in f1 tinyint zerofill, inout f2 tinyint zerofill, out f3 tinyint zerofill, in f4 bigint, inout f5 bigint, out f6 bigint, in f7 bigint, inout f8 bigint, out f9 bigint, in f10 bigint, inout f11 bigint, out f12 bigint)
+BEGIN
+ set f1 = (f1 / 2); set f1 = (f1 * 2); set f1 = (f1 - 10); set f1 = (f1 + 10); set f2 = (f2 / 2); set f2 = (f2 * 2); set f2 = (f2 - 10); set f2 = (f2 + 10); set f3 = (f1 / 2); set f3 = (f1 * 2); set f3 = (f1 - 10); set f3 = (f1 + 10);
+ set f6 = f5; set f5 = (f5 * 2); set f5 = (f5 - 10); set f5 = (f5 + 10); set f6 = (f6 * 2); set f6 = (f6 - 10); set f6 = (f6 + 10);
+ set f9 = f8; set f8 = (f8 * 2); set f8 = (f8 - 10); set f8 = (f8 + 10); set f9 = (f9 * 2); set f9 = (f9 - 10); set f9 = (f9 + 10);
+ set f12 = f11; set f11 = (f11 * 2); set f11 = (f11 - 10); set f11 = (f11 + 10); set f12 = (f12 * 2); set f12 = (f12 - 10); set f12 = (f12 + 10);
+ SELECT f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12;
+END//
+delimiter ;//
+
+DROP PROCEDURE IF EXISTS spexecute101;
+delimiter //;
+CREATE PROCEDURE spexecute101()
+BEGIN
+ declare var1 tinyint zerofill;
+ declare var2 tinyint zerofill;
+ declare var3 bigint;
+ declare var4 bigint;
+ declare var5 bigint;
+ declare var6 bigint;
+ declare var7 bigint;
+ declare var8 bigint;
+ set var1 = -101;
+ set var3 = -9.22e+18;
+ set var5 = -9.22e+18;
+ set var7 = -9.22e+18;
+ CALL sp101(-101, var1, var2, -9.22e+18, var3, var4, -9.22e+18, var5, var6, -9.22e+18, var7, var8);
+ SELECT var1, var2, var3, var4, var5, var6, var7, var8;
+END//
+delimiter ;//
+
+CALL spexecute101();
+DROP PROCEDURE spexecute101;
+DROP PROCEDURE sp101;
+
+USE db_storedproc;
+DROP DATABASE db1;
+
+
+
+USE db_storedproc;
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.7.2:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for "allow_invalid_dates" server sql mode
+;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp2;
+drop table IF EXISTS temp_table;
+--enable_warnings
+
+create table temp_table (f1 datetime);
+
+set @@sql_mode = 'allow_invalid_dates';
+
+delimiter //;
+CREATE PROCEDURE sp2 ()
+BEGIN
+ declare a datetime;
+ set a = '2005-03-14 01:01:02';
+ insert into temp_table values(a);
+END//
+delimiter ;//
+
+show CREATE PROCEDURE sp2;
+
+set @@sql_mode = 'traditional';
+
+CALL sp2 ();
+SELECT * from temp_table;
+
+SELECT @@sql_mode;
+
+# cleanup
+DROP PROCEDURE sp2;
+drop table temp_table;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.7.3:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for *high_not_precedence* server sql mode
+;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp3;
+--enable_warnings
+
+set @@sql_mode = 'high_not_precedence';
+
+delimiter //;
+CREATE PROCEDURE sp3()
+BEGIN
+ declare a int signed;
+ declare b int unsigned;
+ set a = -5;
+ set b = 5;
+ SELECT not 1 between a and b;
+END//
+delimiter ;//
+
+show CREATE PROCEDURE sp3;
+
+set @@sql_mode='';
+
+CALL sp3();
+SELECT @@sql_mode;
+
+# cleanup
+DROP PROCEDURE sp3;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.7.4:
+FIXME: a wrong testcase number and/or description has been detected here. This
+FIXME: needs to be checked to be sure where the missing testcase is located.
+.
+check for combination of server sql modes
+;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp4;
+--enable_warnings
+
+#FIXME 4.7.4: check it is correct that having a blank after the comma lets this fail:
+--error 1231
+set @@sql_mode = 'ansi, error_for_division_by_zero';
+
+# now set the corrent value:
+set @@sql_mode = 'ansi,error_for_division_by_zero';
+
+SHOW VARIABLES LIKE 'sql_mode';
+
+delimiter //;
+CREATE PROCEDURE sp4()
+BEGIN
+ declare a int;
+ declare b int;
+ declare c int;
+ set a = 0;
+ set b = 1;
+ set c = b/a;
+ show warnings;
+END//
+delimiter ;//
+
+show CREATE PROCEDURE sp4;
+
+set @@sql_mode='';
+
+CALL sp4();
+
+# cleanup
+DROP PROCEDURE sp4;
+set @@sql_mode='';
+
+
+# ==============================================================================
+let $message= Section 3.1.8 - SHOW statement checks:;
+--source include/show_msg80.inc
+
+
+USE db_storedproc;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.1:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a procedure is properly recorded and displayed when a show create
+# procedure statement is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+DROP PROCEDURE IF EXISTS sp6a;
+DROP PROCEDURE IF EXISTS sp6b;
+DROP PROCEDURE IF EXISTS sp6c;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6a (i1 longtext, out i2 mediumint , inout i3 longblob, in i4 year, out i5 real)
+language sql
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE sp6b (out i1 longtext, out i2 mediumint , out i3 longblob, out i4 year, out i5 real)
+deterministic
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE sp6c (inout i1 longtext, inout i2 mediumint , inout i3 longblob, inout i4 year, inout i5 real) comment 'this is a comment'
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+show CREATE PROCEDURE sp6a;
+
+show CREATE PROCEDURE sp6b;
+
+show CREATE PROCEDURE sp6c;
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp6a';
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp6b';
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp6c';
+
+# cleanup
+DROP PROCEDURE sp6a;
+DROP PROCEDURE sp6b;
+DROP PROCEDURE sp6c;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.2:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a procedure is properly recorded and displayed when a show procedure
+# status statement is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp6';
+
+# cleanup
+DROP PROCEDURE sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.3:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a procedure is not displayed when a show create function
+# statement is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+--error 1305
+SHOW CREATE FUNCTION sp6;
+
+# cleanup
+DROP PROCEDURE sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.4:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a procedure is properly recorded and displayed when a show function
+# status statement is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns longtext
+ BEGIN
+ set @x=i1;
+ set @y=@x;
+ return 0;
+END//
+delimiter ;//
+
+--replace_column 5 modified 6 created
+ show function status like 'sp6';
+
+# cleanup
+DROP FUNCTION sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.5:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the attempt to execute show CREATE PROCEDURE with the name of a non-existing
+# procedure fails with an appropriate error message.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp7;
+--enable_warnings
+
+--error 1305
+ show CREATE PROCEDURE sp7;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.6:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the attempt to execute SHOW PROCEDURE status with the name of a non-existing
+# procedure returns an empty set.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+ show procedure status like 'sp6';
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.7:;
+--source include/show_msg80.inc
+
+# testcase: ensure that an attempt to execute show CREATE PROCEDURE with the name of a function fails
+# with an appropriate error message.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (i1 real) returns real
+ BEGIN
+ return i1;
+END//
+delimiter ;//
+
+--error 1305
+ show CREATE PROCEDURE fn1;
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.8:;
+--source include/show_msg80.inc
+
+# testcase: ensure that an attempt to execute SHOW PROCEDURE status with the name of a
+# function returns an empty set.
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (i1 real) returns real
+ BEGIN
+ return i1;
+END//
+delimiter ;//
+
+--replace_column 5 modified 6 created
+ show procedure status like 'fn1';
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.9:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a function is properly recorded and displayed when a
+# show CREATE FUNCTION statement is executed.
+
+# part of 3.1.8.9
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.10:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a function is properly recorded and displayed when a
+# SHOW FUNCTION status.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (i1 real) returns real
+BEGIN
+ return i1;
+END//
+delimiter ;//
+
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.11:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the definition of a function is not displayed when a
+# show CREATE PROCEDURE statement is executed.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (x int) returns int
+ BEGIN
+ return x;
+END//
+delimiter ;//
+
+--error 1305
+ show CREATE PROCEDURE fn1;
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.12:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the attempt to execute show CREATE FUNCTION with the name of a
+# non-existing function fails with an appropriate error message.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1(x int) returns int
+ BEGIN
+ return x;
+END//
+delimiter ;//
+
+DROP FUNCTION fn1;
+
+--error 1305
+ show CREATE FUNCTION fn1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.13:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the attempt to execute show function status with the name of a
+# non-existing function returns an empty set.
+
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1000;
+--enable warnings
+
+SHOW FUNCTION STATUS LIKE 'f1000';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.14:;
+--source include/show_msg80.inc
+
+# testcase: ensure that an attempt to execute show CREATE FUNCTION with the name of a procedure
+# fails with an appropriate error message.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnibgs
+
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ SELECT * from t8;
+END//
+delimiter ;//
+
+--error 1305
+ show CREATE FUNCTION sp1;
+
+# cleanup
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.15:;
+--source include/show_msg80.inc
+
+# testcase: ensure that an attempt to execute show function status with the name of a procedure fails with an
+# appropriate error message.
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+--replace_column 5 modified 6 created
+ show function status like 'sp6';
+
+# cleanup
+DROP PROCEDURE sp6;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.16:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all stored procedure changes made with alter procedure are properly recorded
+# and displayed when a show CREATE PROCEDURE statement is executed.
+
+# part of 3.1.8.9
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.17:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all stored procedure changes made with alter procedure are properly recorded
+# and displayed when a SHOW PROCEDURE status statement is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+ alter procedure sp6 sql security invoker;
+
+ alter procedure sp6 comment 'this is a new comment';
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp6';
+
+# cleanup
+DROP PROCEDURE sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.18:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all stored procedure changes made with alter function are properly recorded
+# and displayed when a show CREATE FUNCTION statement is executed.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (x int) returns int
+ BEGIN
+ return x;
+END//
+delimiter ;//
+
+ alter function fn1 sql security invoker;
+
+ show create function fn1;
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.19:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all function changes made with alter function are properly recorded and
+# displayed when a show function status statement is executed.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+ BEGIN
+ return i1;
+END//
+delimiter ;//
+
+ alter function fn1 sql security invoker;
+ alter function fn1 comment 'this is a function 3242#@%$#@';
+
+#FIXME: check why here no rows are shown
+--replace_column 5 modified 6 created
+ show function status like 'fn1';
+
+# cleanup
+DROP FUNCTION fn1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.20:;
+--source include/show_msg80.inc
+
+# testcase: ensure that all stored procedure changes made with alter procedure are properly
+# recorded and displayed when a show CREATE PROCEDURE statement is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 int , i2 int)
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+ alter procedure sp6 comment 'this is simple';
+
+ show CREATE PROCEDURE sp6;
+
+# cleanup
+DROP PROCEDURE sp6;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.21:;
+--source include/show_msg80.inc
+
+# testcase: ensure that when a stored procedure is dropped, its definition no longer appears when
+# a show CREATE PROCEDURE is executed.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 int, i2 int)
+BEGIN
+ set @x=i1;
+ set @y=@x;
+END//
+delimiter ;//
+
+DROP PROCEDURE sp6;
+
+--error 1305
+ show CREATE PROCEDURE sp6;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.22:;
+--source include/show_msg80.inc
+
+# testcase: ensure that when a stored procedure is dropped, its definition no longer appears when
+# SHOW PROCEDURE status.
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x=i3;
+ set @y=@x;
+END//
+delimiter ;//
+
+DROP PROCEDURE sp6;
+
+--replace_column 5 modified 6 created
+SHOW PROCEDURE status like 'sp6';
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.23:;
+--source include/show_msg80.inc
+
+# testcase: ensure that when a stored procedure is dropped, its definition no longer appears
+# when a statement or a show CREATE FUNCTION statement is executed.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (x int) returns int
+ BEGIN
+ return x;
+END//
+delimiter ;//
+
+DROP FUNCTION fn1;
+
+--error 1305
+ show CREATE FUNCTION fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.8.24:;
+--source include/show_msg80.inc
+
+# testcase: ensure that when a function is dropped, its definition no longer appears when a
+# SHOW FUNCTION status statement is executed.
+# suppressed: the test does not display an error message. it just returns an empty set
+
+--disable_warnings
+DROP FUNCTION IF EXISTS fn1;
+--enable_warnings
+
+delimiter //;
+CREATE FUNCTION fn1 (i1 longtext) returns longtext
+BEGIN
+ return i1;
+END//
+delimiter ;//
+
+DROP FUNCTION fn1;
+
+#FIXME: check why here no rows are shown
+--replace_column 5 modified 6 created
+SHOW FUNCTION STATUS LIKE 'fn1';
+
+
+# ==============================================================================
+let $message= Section 3.1.9 - Routine body checks:;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.1:;
+--source include/show_msg80.inc
+
+# testcase: verify SELECT sql statements that may be executed by a stored procedure.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x = i3;
+ set @a = i5;
+ set @y = @x;
+ set @b = @a;
+ SELECT * from t9 limit 0, 100;
+END//
+delimiter ;//
+
+CALL sp6 (10, 20, 30, 40, 50);
+
+# cleanup
+DROP PROCEDURE sp6;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.2:;
+--source include/show_msg80.inc
+
+# testcase: verify insert sql statements that can be executed by a stored procedure.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+--enable_warnings
+
+ create table res_t9 (f1 int, f2 char(25), f3 int);
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x = i3;
+ set @a = i5;
+ set @y = @x;
+ set @b = @a;
+ insert into res_t9 values (@y, @a, 111);
+ SELECT * from res_t9;
+END//
+delimiter ;//
+
+CALL sp6 (10, 20, 30, 40, 50);
+
+# cleanup
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.3:;
+--source include/show_msg80.inc
+
+# testcase: verify delete sql statements that may be executed by a stored procedure.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+--enable_warnings
+
+ create table res_t9 (f1 int, f2 char(25), f3 int);
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x = i3;
+ set @a = i5;
+ set @y = @x;
+ set @b = @a;
+ insert into res_t9 values (@y, @a, 111);
+ SELECT * from res_t9;
+ delete from res_t9;
+ SELECT * from res_t9;
+END//
+delimiter ;//
+
+
+CALL sp6 (10, 20, 30, 40, 50);
+
+# cleanup
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.4:;
+--source include/show_msg80.inc
+
+# testcase: verify update sql statements that may be executed by a stored procedure.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+--enable_warnings
+
+ create table res_t9 (f1 int, f2 char(25), f3 int);
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x = i3;
+ set @a = i5;
+ set @y = @x;
+ set @b = @a;
+ insert into res_t9 values (@y, @a, 111);
+ SELECT * from res_t9;
+ update res_t9 set f2 = 1000 where f2 = 50;
+ SELECT * from res_t9;
+END//
+delimiter ;//
+
+CALL sp6 (10, 20, 30, 40, 50);
+
+# cleanup
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.5:;
+--source include/show_msg80.inc
+
+# testcase: verify create sql statements that may be executed by a stored procedure
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x = i1;
+ set @y = i3;
+ set @z = i5;
+ set @a = @x;
+ set @b = @y;
+ set @c = @z;
+ create table res_t9(f1 longtext, f2 longblob, f3 real);
+ insert into res_t9 values (@a, @b, @c);
+ SELECT * from res_t9;
+END//
+delimiter ;//
+
+#FIXME Bug: (Bug#9079)
+# suppressed: currenlty the table creation from within sproc fails!
+#FIXME check why this NOW works--error 1146
+CALL sp6 (10, 20, 30, 40, 50);
+
+# cleanup
+DROP PROCEDURE sp6;
+--disable_warnings
+drop table IF EXISTS res_t9;
+--enable_warnings
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.6:;
+--source include/show_msg80.inc
+
+# testcase: verify select/insert/update/create statements are disallowed in a function.
+# updated testcase: verify select/insert/update/create statements are ALLOWED in a function.
+#
+DROP FUNCTION IF EXISTS fn1;
+
+delimiter //;
+#FIXME: check this is OK: failed: 1415: Not allowed to return a result set from a function
+--error 1415
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+ SELECT * from t9 limit 0, 100;
+ return i1;
+END//
+delimiter ;//
+
+DROP FUNCTION IF EXISTS fn1;
+drop table IF EXISTS res_t9;
+
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+
+delimiter //;
+#FIXME: check this is OK: failed: 1422: Explicit or implicit commit is not allowed in stored function or trigger.
+--error 1422
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+ delete from res_t9;
+ drop table res_t9;
+ return i1;
+END//
+delimiter ;//
+
+DROP FUNCTION IF EXISTS fn1;
+drop table IF EXISTS res_t9;
+
+delimiter //;
+#FIXME: check this is OK: failed: 1422: Explicit or implicit commit is not allowed in stored function or trigger.
+--error 1422
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+ create table res_t9 (f1 longtext, f2 longblob, f3 real);
+ drop table res_t9;
+ return i1;
+END//
+delimiter ;//
+
+DROP FUNCTION IF EXISTS fn1;
+drop table IF EXISTS res_t9;
+
+create table res_t9 (f1 int, f2 char(25), f3 int);
+
+delimiter //;
+#FIXME: check this is OK: failed: 1422: Explicit or implicit commit is not allowed in stored function or trigger.
+--error 1422
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+ insert into res_t9 values (100, 'abc', 300);
+ drop table res_t9;
+ return i1;
+END//
+delimiter ;//
+
+DROP FUNCTION IF EXISTS fn1;
+drop table IF EXISTS res_t9;
+
+create table res_t9 (f1 int, f2 char(25), f3 int);
+insert into res_t9 values (10, 'abc', 20);
+
+delimiter //;
+#FIXME: check this is OK: failed: 1422: Explicit or implicit commit is not allowed in stored function or trigger.
+--error 1422
+CREATE FUNCTION fn1(i1 longtext) returns longtext
+BEGIN
+ update res_t9 set f1 = 20;
+ drop table res_t9;
+ return i1;
+END//
+delimiter ;//
+
+# cleanup
+drop table res_t9;
+DROP FUNCTION IF EXISTS fn1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.9.7:;
+--source include/show_msg80.inc
+
+# testcase: verify create index sql statement that may be executed by a stored procedure
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp6;
+drop table IF EXISTS res_t9;
+--enable_warnings
+
+ create table res_t9 (f1 longtext, f2 longblob, f3 real);
+
+delimiter //;
+CREATE PROCEDURE sp6 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
+BEGIN
+ set @x = i1;
+ set @y = i3;
+ set @z = i5;
+ set @a = @x;
+ set @b = @y;
+ set @c = @z;
+ insert into res_t9 values (@a, @b, @c);
+ SELECT * from res_t9;
+ create index index_1 on res_t9 (f1 (5));
+ show index from res_t9;
+END//
+delimiter ;//
+
+CALL sp6 (10, 20, 30, 40, 50);
+
+# cleanup
+DROP PROCEDURE sp6;
+drop table res_t9;
+
+
+# ==============================================================================
+#
+# test plan section: 4.11 - verify handlers with continue and exit conditions
+#
+# ==============================================================================
+let $message= Section 3.1._ - :;
+--source include/show_msg80.inc
+
+USE db_storedproc;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.1:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1318 (er_sp_wrong_no_of_args)
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for 1318 set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.2:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1305 (er_sp_does_not_exist)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for 1305 set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.3:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1318 (er_sp_wrong_no_of_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @xx=1;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare exit handler for 1318 set @x2 = 1;
+ set @x=1;
+ set @x2=0;
+ CALL sp1 (1);
+ set @x=0;
+END//
+delimiter ;//
+
+CALL h1();
+
+ SELECT @x, @x2;
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.4:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1305 (er_sp_does_not_exist)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare exit handler for 1305 set @x2 = 1;
+ set @x=1;
+ set @x2=0;
+ CALL sp1 (1);
+ set @x=0;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+ SELECT @x, @x2;
+
+# cleanup
+DROP PROCEDURE h1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.5:;
+--source include/show_msg80.inc
+
+# testcase: verify undo handler for error code 1318 (er_sp_wrong_no_of_args)
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for 1318 set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.6:;
+--source include/show_msg80.inc
+
+# testcase: verify undo handler for error code 1305 (er_sp_does_not_exist)
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for 1318 set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.7:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sql state 42000 (er_sp_wrong_no_of_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.8:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sql state 42000 (er_sp_does_not_exist)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.9:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sql state 42000 (er_sp_wrong_no_of_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @xx=1;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare exit handler for sqlstate '42000' set @x2 = 1;
+ set @x=1;
+ set @x2=0;
+ CALL sp1 (1);
+ set @x=0;
+END//
+delimiter ;//
+
+CALL h1();
+
+ SELECT @x, @x2;
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.10:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sql state 42000 (er_sp_does_not_exist)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare exit handler for sqlstate '42000' set @x2 = 1;
+ set @x=1;
+ set @x2=0;
+ CALL sp1 (1);
+ set @x=0;
+END//
+delimiter ;//
+
+CALL h1 ();
+ SELECT @x, @x2;
+
+# cleanup
+DROP PROCEDURE h1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.11:;
+--source include/show_msg80.inc
+
+# testcase: verify undo handler for sql state 42000 (er_sp_wrong_no_of_args)
+# ?????????????
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.12:;
+--source include/show_msg80.inc
+
+# testcase: verify undo handler for sql state 42000 (er_sp_does_not_exist)
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE sp1 (x int, y int)
+BEGIN
+ set @y=x;
+END//
+delimiter ;//
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare continue handler for sqlstate '42000' set @x2 = 1;
+ set @x=0;
+ CALL sp1 (1);
+ set @x=1;
+ SELECT @x, @x2;
+END//
+delimiter ;//
+
+CALL h1 ();
+
+# cleanup
+DROP PROCEDURE h1;
+DROP PROCEDURE sp1;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.13:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sql state 02000 (er_sp_fetch_no_data)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ repeat
+ SELECT done;
+ fetch cur1 into a, b;
+ SELECT done;
+ if not done then
+ insert into res_t2 values (a, b);
+ END if;
+ until done END repeat;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.14:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1329 (er_sp_fetch_no_data)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+
+ create table res_t1(w char, x char);
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ repeat
+ SELECT done;
+ fetch cur1 into a, b;
+ SELECT done;
+ if not done then
+ insert into res_t2 values (a, b);
+ END if;
+ until done END repeat;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.15:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1329 (er_sp_fetch_no_data)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ repeat
+ SELECT done;
+ set @x=0;
+ fetch cur1 into a, b;
+ SELECT @x=1;
+ if not done then
+ insert into res_t2 values (a, b);
+ END if;
+ until done END repeat;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.16:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sql state '02000' (er_sp_fetch_no_data)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ repeat
+ SELECT done;
+ set @x=0;
+ fetch cur1 into a, b;
+ SELECT @x=1;
+ if not done then
+ insert into res_t2 values (a, b);
+ END if;
+ until done END repeat;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1()
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.17:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sql state HY000 (er_sp_wrong_no_of_fetch_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate 'HY000' set done = 1;
+ open cur1;
+ SELECT done;
+ fetch cur1 into a;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.18:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1328 (er_sp_wrong_no_of_fetch_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for 1328 set done = 1;
+ open cur1;
+ SELECT done;
+ fetch cur1 into a;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.19:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sql state HY000 (er_sp_wrong_no_of_fetch_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for sqlstate 'HY000' set done = 1;
+ open cur1;
+ SELECT done;
+ set @x=0;
+ fetch cur1 into a;
+ set @x=1;
+ SELECT done, @x;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.20:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1328 (er_sp_wrong_no_of_fetch_args)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for 1328 set done = 1;
+ open cur1;
+ SELECT done;
+ set @x=0;
+ fetch cur1 into a;
+ set @x=1;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.21:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1325 (er_sp_cursor_already_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for 1325 set done = 1;
+ open cur1;
+ SELECT done;
+ open cur1;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.22:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sqlstate 24000 (er_sp_cursor_already_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for 1325 set done = 1;
+ open cur1;
+ SELECT done;
+ open cur1;
+ set @x=1;
+ SELECT done, @x;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.23:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1325 (er_sp_cursor_already_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for 1325 set done = 1;
+ open cur1;
+ set @x=0;
+ SELECT done;
+ open cur1;
+ set @x=1;
+ SELECT done;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.24:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sqlstate 24000 (er_sp_cursor_already_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for sqlstate '24000' set done = 1;
+ open cur1;
+ set @x=0;
+ SELECT done;
+ open cur1;
+ set @x=1;
+ SELECT done, @x;
+ close cur1;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.25:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1326 (er_sp_cursor_not_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for 1326 set done = 1;
+ set @x=0;
+ fetch cur1 into a, b;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.26:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sqlstate 24000 (er_sp_cursor_not_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate '24000' set done = 1;
+ set @x=0;
+ fetch cur1 into a, b;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.27:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1326 (er_sp_cursor_not_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for 1326 set done = 1;
+ set @x=0;
+ fetch cur1 into a, b;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.28:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sqlstate 24000 (er_sp_cursor_not_open)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for sqlstate '24000' set done = 1;
+ set @x=0;
+ fetch cur1 into a, b;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.29:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for error code 1339 (er_sp_case_not_found)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for 1339 set done = 1;
+ set @x=0;
+ case @x
+ when 1 then set @x=10;
+ when 2 then set @x=11;
+ END case;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.30:;
+--source include/show_msg80.inc
+
+# testcase: verify continue handler for sqlstate 20000 (er_sp_case_not_found)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare continue handler for sqlstate '20000' set done = 1;
+ set @x=0;
+ case @x
+ when 1 then set @x=10;
+ when 2 then set @x=11;
+ END case;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.31:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for error code 1339 (er_sp_case_not_found)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for 1339 set done = 1;
+ set @x=0;
+ case @x
+ when 1 then set @x=10;
+ when 2 then set @x=11;
+ END case;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.32:;
+--source include/show_msg80.inc
+
+# testcase: verify exit handler for sqlstate 20000 (er_sp_case_not_found)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+drop table IF EXISTS res_t2;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+ create table res_t2(y char, z char);
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ declare done int default 0;
+ declare a, b char;
+ declare cur1 cursor for SELECT w, x from res_t1;
+ declare exit handler for sqlstate '20000' set done = 1;
+ set @x=0;
+ case @x
+ when 1 then set @x=10;
+ when 2 then set @x=11;
+ END case;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+CALL h1();
+
+# cleanup
+DROP PROCEDURE h1;
+drop table res_t1;
+drop table res_t2;
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.33:;
+--source include/show_msg80.inc
+
+# testcase: ensure that no two conditions declared with the same scope may have the same condition name.
+# (same condition name in same scope)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+--enable_warnings
+
+ create table res_t1(w char, x char);
+
+ insert into res_t1 values('a', 'b');
+ insert into res_t1 values('c', 'd');
+
+delimiter //;
+--error 1332
+CREATE PROCEDURE h1()
+BEGIN
+ declare condname condition for sqlstate '20000';
+ declare done int default 0;
+ declare a, b char;
+ declare condname condition for sqlstate '20000';
+ declare cur1 cursor for SELECT w, x from t1;
+ set @x=2;
+ case @x
+ when 1 then set @x=10;
+ when 2 then set @x=11;
+ END case;
+ set @x=1;
+ SELECT done, @x;
+END//
+delimiter ;//
+
+# cleanup
+drop table res_t1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.35:;
+
+# Ensure that every sqlstate value declared with a declare condition for
+# statement and declare handler is a character string that is 5 character and
+# cannot be an invalid state.;
+
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+--enable_warnings
+
+CREATE TABLE res_t1(w INT UNIQUE, x CHAR);
+
+insert into res_t1 values (1, 'a');
+
+delimiter //;
+
+--error 1407
+CREATE PROCEDURE h1 ()
+begin1_label:BEGIN
+ declare condname1 condition for sqlstate '020';
+ declare condname2 condition for sqlstate 'wewe';
+ declare condname3 condition for 9999;
+ declare exit handler for sqlstate '020' set @var1 = 1;
+ declare exit handler for sqlstate 'wewe'set @var1 = 1;
+ declare exit handler for 9999 set @var1 = 1;
+ set @var2 = 1;
+ insert into res_t1 values (2, 'b');
+ begin2_label: BEGIN
+ declare continue handler for sqlstate '90000023' set @var3= 1;
+ set @var4 = 1;
+ insert into res_t1 values (3, 'c');
+ END begin2_label;
+END begin1_label//
+
+# FIXME: same statement except the 3 lines containing 'exit'
+#-# --error 1407
+#-# CREATE PROCEDURE h1 ()
+#-# begin1_label:BEGIN
+#-# declare condname1 condition for sqlstate '020';
+#-# declare condname2 condition for sqlstate 'wewe';
+#-# declare condname3 condition for 9999;
+#-# set @var2 = 1;
+#-# insert into res_t1 values (2, 'b');
+#-# begin2_label: BEGIN
+#-# declare continue handler for sqlstate '90000023 set @var3= 1;
+#-# set @var4 = 1;
+#-# insert into res_t1 values (3, 'c');
+#-# END begin2_label;
+#-# END begin1_label//
+delimiter ;//
+
+# cleanup
+drop table res_t1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.36:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare condition for statement cannot declare a condition for the successful
+# completion sqlstate: 00000.
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1 int default 0;
+ BEGIN
+ declare condname1 condition for sqlstate '00000';
+ declare exit handler for condname1 set @x = 1;
+ set x1 = 1;
+ set x1 = 2;
+ END;
+ SELECT @x, x1;
+END//
+delimiter ;//
+
+# cleanup
+DROP PROCEDURE h1;
+
+
+
+
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.40:;
+--source include/show_msg80.inc
+
+# testcase: ensure that within the same scope, no two handlers may be declared for the same condition
+# Bug (
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+drop table IF EXISTS res_t1;
+--enable_warnings
+
+ create table res_t1(w char unique, x char);
+ insert into res_t1 values ('a', 'b');
+
+# suppressed--error for having two similar handlers in the same scope
+
+delimiter //;
+#FIXME 3.1.11.40: check whether error 1413 is OK
+--error 1413
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1, x2, x3, x4, x5 int default 0;
+ declare condname1 condition for sqlstate '42000';
+ declare condname2 condition for sqlstate '42000';
+ declare continue handler for condname1 set x1 = 1;
+ declare continue handler for condname1 set x2 = 1;
+ declare exit handler for condname1 set x3 = 1;
+ declare continue handler for condname2 set x4 = 1;
+ declare exit handler for condname2 set x5 = 1;
+END//
+delimiter ;//
+
+#FIXME 3.1.11.40: CALL h1();
+
+# cleanup
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+drop table res_t1;
+
+
+# ------------------------------------------------------------------------------
+let $message= Testcase 4.11.41:;
+--source include/show_msg80.inc
+
+# testcase: ensure that the declare handler for statement cannot declare a condition for the successful
+# completion sqlstate: 00000.
+#FIXME Bug: (Bug#8759)
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+--enable_warnings
+
+# supressed should actually fail --error
+delimiter //;
+CREATE PROCEDURE h1 ()
+BEGIN
+ declare x1 int default 0;
+ BEGIN
+ declare condname1 condition for sqlstate '00000';
+ declare exit handler for sqlstate '00000' set @x = 1;
+ set x1 = 1;
+ set x1 = 2;
+ END;
+ SELECT @x, x1;
+END//
+delimiter ;//
+
+# cleanup
+DROP PROCEDURE IF EXISTS h1;
+
+
+# ------------------------------------------------------------------------------
+# FIXME 3.1.2.53: check numbering difference
+let $message= * Testcase 3.1.2.53 (4.11.42):
+* Ensure that a handler condition of sqlwarning takes the same action as a
+* handler condition defined with an sqlstate that begins with 01.;
+--source include/show_msg80.inc
+
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ DECLARE EXIT HANDLER FOR SQLWARNING SET @done = 1;
+ set @done=0;
+ set @x=1;
+ insert into res_t1 values('xxx', 'yy');
+ set @x=0;
+END//
+delimiter ;//
+
+# table doesn't exist
+--error 1146
+CALL h1();
+SELECT @done, @x;
+
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+
+# now table exists
+CALL h1();
+SELECT @done, @x;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS h1;
+DROP TABLE IF EXISTS res_t1;
+--enable_warnings
+
+delimiter //;
+CREATE PROCEDURE h1()
+BEGIN
+ DECLARE CONTINUE HANDLER FOR SQLWARNING SET @done = 1;
+ set @done=0;
+ set @x=0;
+ insert into res_t1 values('xxx', 'yy');
+ set @x=1;
+END//
+delimiter ;//
+
+# table doesn't exist
+--error 1146
+CALL h1();
+SELECT @done, @x;
+
+CREATE TABLE res_t1(w CHAR, x CHAR);
+INSERT INTO res_t1 VALUES('a', 'b');
+INSERT INTO res_t1 VALUES('c', 'd');
+
+# now table exists
+CALL h1();
+SELECT @done, @x;
+
+# cleanup
+DROP PROCEDURE h1;
+DROP TABLE res_t1;
+
+
+# ==============================================================================
+# USE the same .inc to cleanup before and after the test
+--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
+
+# ==============================================================================
+let $message= . +++ END OF SCRIPT +++;
+--source include/show_msg80.inc
+# ==============================================================================
diff --git a/mysql-test/suite/funcs_1/t/datadict_help_tables_build.test b/mysql-test/suite/funcs_1/t/datadict_help_tables_build.test
new file mode 100644
index 00000000000..370fcf0375c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/datadict_help_tables_build.test
@@ -0,0 +1,73 @@
+###### suite/funcs_1/t/datadict_help_tables_dev.test #####
+#
+# Check the information about the help tables within
+# INFORMATION_SCHEMA.TABLES/INFORMATION_SCHEMA.STATISTICS
+#
+# Variant for use during build tests (non empty help tables)
+#
+# Creation:
+# 2007-08-25 mleich Add this test as compensation for the
+# checks removed within datadict_master.inc.
+#
+
+let $c_help_category= `SELECT COUNT(*) FROM mysql.help_category`;
+let $c_help_keyword= `SELECT COUNT(*) FROM mysql.help_keyword`;
+let $c_help_relation= `SELECT COUNT(*) FROM mysql.help_relation`;
+let $c_help_topic= `SELECT COUNT(*) FROM mysql.help_topic`;
+
+if (`SELECT $c_help_category + $c_help_keyword + $c_help_relation
+ + $c_help_topic = 0`)
+{
+ --skip # Test requires non empty help tables = Build test configuration
+}
+
+# We reach this point when we run on a configuration with at least one
+# non empty help table.
+# 2007-08 MySQL 5.0 row count of the help tables
+# help_category help_keyword help_relation help_topic
+# 36 395 809 466
+# Let's assume for all help tables that their content never dramatic
+# shrinks and do some plausibility checks.
+let $limit_help_category = 30;
+let $limit_help_keyword = 320;
+let $limit_help_relation = 640;
+let $limit_help_topic = 380;
+if (`SELECT $c_help_category < $limit_help_category
+ OR $c_help_keyword < $limit_help_keyword
+ OR $c_help_relation < $limit_help_relation
+ OR $c_help_topic < $limit_help_topic`)
+{
+ --echo # The row count within the help tables is unexepected small.
+ SELECT COUNT(*), 'exepected: >= $limit_help_category' FROM mysql.help_category;
+ SELECT COUNT(*), 'exepected: >= $limit_help_keyword' FROM mysql.help_keyword;
+ SELECT COUNT(*), 'exepected: >= $limit_help_relation' FROM mysql.help_relation;
+ SELECT COUNT(*), 'exepected: >= $limit_help_topic' FROM mysql.help_topic;
+ --echo # Either the current help table content (build problem? or
+ --echo # the expected minimum row count within this script is wrong.
+ --echo # Abort
+ exit;
+}
+
+# Enforce a static number of rows within the help tables.
+let $limit= `SELECT $c_help_category - $limit_help_category`;
+--replace_result $limit <number>
+eval DELETE FROM mysql.help_category LIMIT $limit;
+#
+let $limit= `SELECT $c_help_keyword - $limit_help_keyword`;
+--replace_result $limit <number>
+eval DELETE FROM mysql.help_keyword LIMIT $limit;
+#
+let $limit= `SELECT $c_help_relation - $limit_help_relation`;
+--replace_result $limit <number>
+eval DELETE FROM mysql.help_relation LIMIT $limit;
+#
+let $limit= `SELECT $c_help_topic - $limit_help_topic`;
+--replace_result $limit <number>
+eval DELETE FROM mysql.help_topic LIMIT $limit;
+
+
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM INFORMATION_SCHEMA.TABLES
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
+SELECT * FROM INFORMATION_SCHEMA.STATISTICS
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
diff --git a/mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test b/mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test
new file mode 100644
index 00000000000..3342fbca4be
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test
@@ -0,0 +1,27 @@
+###### suite/funcs_1/t/datadict_help_tables_dev.test #####
+#
+# Check the information about the help tables within
+# INFORMATION_SCHEMA.TABLES/INFORMATION_SCHEMA.STATISTICS
+#
+# Variant for use during development (empty help tables)
+#
+# Creation:
+# 2007-08-25 mleich Add this test as compensation for the
+# checks removed within datadict_master.inc.
+#
+
+let $c_help_category= `SELECT COUNT(*) FROM mysql.help_category`;
+let $c_help_keyword= `SELECT COUNT(*) FROM mysql.help_keyword`;
+let $c_help_relation= `SELECT COUNT(*) FROM mysql.help_relation`;
+let $c_help_topic= `SELECT COUNT(*) FROM mysql.help_topic`;
+if (`SELECT $c_help_category + $c_help_keyword + $c_help_relation
+ + $c_help_topic > 0`)
+{
+ --skip # Test requires empty help tables = Development test configuration
+}
+
+--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
+SELECT * FROM INFORMATION_SCHEMA.TABLES
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
+SELECT * FROM INFORMATION_SCHEMA.STATISTICS
+WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%';
diff --git a/mysql-test/suite/funcs_1/t/disabled.def b/mysql-test/suite/funcs_1/t/disabled.def
new file mode 100644
index 00000000000..6833178a353
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/disabled.def
@@ -0,0 +1,15 @@
+##############################################################################
+#
+# List the test cases that are to be disabled temporarely.
+#
+# Separate the test case name and the comment with ':'.
+#
+# <testcasename> : Comment test
+#
+# Don't use any TAB characters for whitespace.
+#
+##############################################################################
+
+innodb_storedproc: (changes of WL#2984, using storeproc_nn instead)
+memory_storedproc: (changes of WL#2984, using storeproc_nn instead)
+myisam_storedproc: (changes of WL#2984, using storeproc_nn instead)
diff --git a/mysql-test/suite/funcs_1/t/innodb__datadict.test b/mysql-test/suite/funcs_1/t/innodb__datadict.test
new file mode 100644
index 00000000000..587ab1d6588
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb__datadict.test
@@ -0,0 +1,11 @@
+#### suite/funcs_1/t/datadict_innodb.test
+#
+--source include/have_innodb.inc
+
+let $engine_type= innodb;
+# $OTHER_ENGINE_TYPE must be
+# - <> $engine_type
+# - all time available like MyISAM or MEMORY
+let $OTHER_ENGINE_TYPE= MEMORY;
+
+--source suite/funcs_1/datadict/datadict_master.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb__load.test b/mysql-test/suite/funcs_1/t/innodb__load.test
new file mode 100644
index 00000000000..d03672b31ff
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb__load.test
@@ -0,0 +1,47 @@
+##### suite/funcs_1/funcs_1/t/innodb__load.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means all objects have to be (re)created within the current script.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means the current script must not (re)create any object and every
+# testscript/case (re)creates only the objects it needs.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb1.inc
+ --source suite/funcs_1/include/innodb_tb2.inc
+ --source suite/funcs_1/include/innodb_tb3.inc
+ --source suite/funcs_1/include/innodb_tb4.inc
+
+ # The database test1 is needed for the VIEW testcases
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test1;
+ --source suite/funcs_1/include/innodb_tb2.inc
+ USE test;
+
+ # These tables are needed for the stored procedure testscases
+ --source suite/funcs_1/include/sp_tb.inc
+
+ let $run= 0;
+}
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_bitdata.test b/mysql-test/suite/funcs_1/t/innodb_bitdata.test
new file mode 100644
index 00000000000..24d5f077d96
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_bitdata.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_bitdata.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb4.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/bitdata/bitdata_master.test
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_cursors.test b/mysql-test/suite/funcs_1/t/innodb_cursors.test
new file mode 100644
index 00000000000..8d77045f2e7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_cursors.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_cursors.test
+
+# Innodb tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb1.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/cursors/cursors_master.test
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_func_view.test b/mysql-test/suite/funcs_1/t/innodb_func_view.test
new file mode 100644
index 00000000000..1ca74ff53b4
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_func_view.test
@@ -0,0 +1,16 @@
+###################################################
+# #
+# Functions within VIEWs based on InnoDB tables #
+# #
+###################################################
+
+#
+# NOTE: PLEASE SEE THE DETAILED DESCRIPTION IN
+# suite/funcs_1/views/func_view.inc
+# BEFORE ADDING NEW TEST CASES HERE !!!
+
+let $type= 'InnoDB' ;
+--source include/have_innodb.inc
+
+--source suite/funcs_1/views/func_view.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc.test b/mysql-test/suite/funcs_1/t/innodb_storedproc.test
new file mode 100644
index 00000000000..cd94577e79b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/innodb_storedproc.test
+#
+
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_master.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_02.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_02.test
new file mode 100755
index 00000000000..ace4d0cdc37
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc_02.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/innodb_storedproc_02.test
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_02.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_03.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_03.test
new file mode 100755
index 00000000000..3d1d6134b6f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc_03.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/innodb_storedproc_03.test
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_03.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_06.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_06.test
new file mode 100755
index 00000000000..ce061da2299
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc_06.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/innodb_storedproc_06.test
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_06.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_07.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_07.test
new file mode 100755
index 00000000000..dd1396e982e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc_07.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/innodb_storedproc_07.test
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_07.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_08.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_08.test
new file mode 100755
index 00000000000..c8c289c5f49
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc_08.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/innodb_storedproc_08.test
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_08.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_10.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_10.test
new file mode 100755
index 00000000000..88a44a263d7
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_storedproc_10.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/innodb_storedproc_10.test
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+--source suite/funcs_1/storedproc/storedproc_10.inc
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_0102.test b/mysql-test/suite/funcs_1/t/innodb_trig_0102.test
new file mode 100644
index 00000000000..edd706b9e5d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_0102.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_0102.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_03.test b/mysql-test/suite/funcs_1/t/innodb_trig_03.test
new file mode 100644
index 00000000000..5f931e1be47
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_03.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_03.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_0407.test b/mysql-test/suite/funcs_1/t/innodb_trig_0407.test
new file mode 100644
index 00000000000..da8a074bab6
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_0407.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_0407.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_08.test b/mysql-test/suite/funcs_1/t/innodb_trig_08.test
new file mode 100644
index 00000000000..05aabe8b0f5
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_08.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_08.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_09.test b/mysql-test/suite/funcs_1/t/innodb_trig_09.test
new file mode 100644
index 00000000000..ac21142779e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_09.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_09.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test b/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test
new file mode 100644
index 00000000000..a507a488ca9
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_1011ext.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test b/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test
new file mode 100644
index 00000000000..e99273672cd
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test
@@ -0,0 +1,34 @@
+#### suite/funcs_1/t/innodb_triggers.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/trig_frkey.inc
+
diff --git a/mysql-test/suite/funcs_1/t/innodb_views.test b/mysql-test/suite/funcs_1/t/innodb_views.test
new file mode 100644
index 00000000000..1a835779762
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/innodb_views.test
@@ -0,0 +1,46 @@
+#### suite/funcs_1/t/innodb_views.test
+
+# InnoDB tables should be used
+#
+# 1. Check if InnoDB is available
+--source include/have_innodb.inc
+# 2. Set $engine_type
+let $engine_type= innodb;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/innodb_tb2.inc
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test1;
+ --source suite/funcs_1/include/innodb_tb2.inc
+ USE test;
+
+}
+
+--source suite/funcs_1/views/views_master.inc
+
+# If we created the database in the above loop we now need to drop it
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+ DROP DATABASE IF EXISTS test1;
+}
+
diff --git a/mysql-test/suite/funcs_1/t/memory__datadict.test b/mysql-test/suite/funcs_1/t/memory__datadict.test
new file mode 100644
index 00000000000..b78a2511f3c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory__datadict.test
@@ -0,0 +1,9 @@
+#### suite/funcs_1/t/datadict_memory.test
+#
+let $engine_type= memory;
+# $OTHER_ENGINE_TYPE must be
+# - <> $engine_type
+# - all time available like MyISAM or MEMORY
+let $OTHER_ENGINE_TYPE= MyISAM;
+
+--source suite/funcs_1/datadict/datadict_master.inc
diff --git a/mysql-test/suite/funcs_1/t/memory__load.test b/mysql-test/suite/funcs_1/t/memory__load.test
new file mode 100644
index 00000000000..44bd054f420
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory__load.test
@@ -0,0 +1,45 @@
+##### suite/funcs_1/funcs_1/t/memory__load.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means all objects have to be (re)created within the current script.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means the current script must not (re)create any object and every
+# testscript/case (re)creates only the objects it needs.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb1.inc
+ --source suite/funcs_1/include/memory_tb2.inc
+ --source suite/funcs_1/include/memory_tb3.inc
+ --source suite/funcs_1/include/memory_tb4.inc
+
+ # The database test1 is needed for the VIEW testcases
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test1;
+ --source suite/funcs_1/include/memory_tb2.inc
+ USE test;
+
+ # These tables are needed for the stored procedure testscases
+ --source suite/funcs_1/include/sp_tb.inc
+
+ let $run= 0;
+}
+
diff --git a/mysql-test/suite/funcs_1/t/memory_bitdata.test b/mysql-test/suite/funcs_1/t/memory_bitdata.test
new file mode 100644
index 00000000000..3aa30c2d835
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_bitdata.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_bitdata
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb4.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/bitdata/bitdata_master.test
+
diff --git a/mysql-test/suite/funcs_1/t/memory_cursors.test b/mysql-test/suite/funcs_1/t/memory_cursors.test
new file mode 100644
index 00000000000..1361c83ecb0
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_cursors.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_cursors.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb1.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/cursors/cursors_master.test
+
diff --git a/mysql-test/suite/funcs_1/t/memory_func_view.test b/mysql-test/suite/funcs_1/t/memory_func_view.test
new file mode 100644
index 00000000000..e22a32dff8c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_func_view.test
@@ -0,0 +1,15 @@
+###################################################
+# #
+# Functions within VIEWs based on Memory tables #
+# #
+###################################################
+
+#
+# NOTE: PLEASE SEE THE DETAILED DESCRIPTION IN
+# suite/funcs_1/views/func_view.inc
+# BEFORE ADDING NEW TEST CASES HERE !!!
+
+let $type= 'MEMORY' ;
+
+--source suite/funcs_1/views/func_view.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc.test b/mysql-test/suite/funcs_1/t/memory_storedproc.test
new file mode 100644
index 00000000000..df73fe6815b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_master.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_02.test b/mysql-test/suite/funcs_1/t/memory_storedproc_02.test
new file mode 100755
index 00000000000..f92657ee665
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc_02.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc_02.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_02.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_03.test b/mysql-test/suite/funcs_1/t/memory_storedproc_03.test
new file mode 100755
index 00000000000..8a839b255e1
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc_03.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc_03.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_03.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_06.test b/mysql-test/suite/funcs_1/t/memory_storedproc_06.test
new file mode 100755
index 00000000000..059528590b9
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc_06.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc_06.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_06.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_07.test b/mysql-test/suite/funcs_1/t/memory_storedproc_07.test
new file mode 100755
index 00000000000..1d7cee3dbd6
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc_07.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc_07.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_07.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_08.test b/mysql-test/suite/funcs_1/t/memory_storedproc_08.test
new file mode 100755
index 00000000000..304be8c477a
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc_08.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc_08.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_08.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_10.test b/mysql-test/suite/funcs_1/t/memory_storedproc_10.test
new file mode 100755
index 00000000000..13fbe99fabf
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_storedproc_10.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/memory_storedproc_10.test
+#
+
+let $engine_type= memory;
+
+--source suite/funcs_1/storedproc/storedproc_10.inc
diff --git a/mysql-test/suite/funcs_1/t/memory_trig_0102.test b/mysql-test/suite/funcs_1/t/memory_trig_0102.test
new file mode 100644
index 00000000000..efa739cfb14
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_trig_0102.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_triggers.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_0102.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_trig_03.test b/mysql-test/suite/funcs_1/t/memory_trig_03.test
new file mode 100644
index 00000000000..76980b6b1b0
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_trig_03.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_triggers.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_03.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_trig_0407.test b/mysql-test/suite/funcs_1/t/memory_trig_0407.test
new file mode 100644
index 00000000000..05217a7f97f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_trig_0407.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_triggers.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_0407.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_trig_08.test b/mysql-test/suite/funcs_1/t/memory_trig_08.test
new file mode 100644
index 00000000000..8caae1ec45f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_trig_08.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_triggers.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_08.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_trig_09.test b/mysql-test/suite/funcs_1/t/memory_trig_09.test
new file mode 100644
index 00000000000..95a7fefbe90
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_trig_09.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_triggers.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_09.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test b/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test
new file mode 100644
index 00000000000..726b878854e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/memory_triggers.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_1011ext.inc
+
diff --git a/mysql-test/suite/funcs_1/t/memory_views.test b/mysql-test/suite/funcs_1/t/memory_views.test
new file mode 100644
index 00000000000..303d0bb2ac1
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/memory_views.test
@@ -0,0 +1,44 @@
+#### suite/funcs_1/t/memory_views.test
+
+# Memory tables should be used
+#
+# Set $engine_type
+let $engine_type= memory;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/memory_tb2.inc
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test1;
+ --source suite/funcs_1/include/memory_tb2.inc
+ USE test;
+
+}
+
+--source suite/funcs_1/views/views_master.inc
+
+# If we created the database in the above loop we now need to drop it
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+ DROP DATABASE IF EXISTS test1;
+}
+
diff --git a/mysql-test/suite/funcs_1/t/myisam__datadict.test b/mysql-test/suite/funcs_1/t/myisam__datadict.test
new file mode 100644
index 00000000000..e4baba1de3a
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam__datadict.test
@@ -0,0 +1,10 @@
+#### suite/funcs_1/t/datadict_myisam.test
+#
+
+let $engine_type= myisam;
+# $OTHER_ENGINE_TYPE must be
+# - <> $engine_type
+# - all time available like MyISAM or MEMORY
+let $OTHER_ENGINE_TYPE= MEMORY;
+
+--source suite/funcs_1/datadict/datadict_master.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam__load.test b/mysql-test/suite/funcs_1/t/myisam__load.test
new file mode 100644
index 00000000000..b63044f128c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam__load.test
@@ -0,0 +1,45 @@
+##### suite/funcs_1/funcs_1/t/myisam__load.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means all objects have to be (re)created within the current script.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means the current script must not (re)create any object and every
+# testscript/case (re)creates only the objects it needs.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb1.inc
+ --source suite/funcs_1/include/myisam_tb2.inc
+ --source suite/funcs_1/include/myisam_tb3.inc
+ --source suite/funcs_1/include/myisam_tb4.inc
+
+ # The database test1 is needed for the VIEW testcases
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test1;
+ --source suite/funcs_1/include/myisam_tb2.inc
+ USE test;
+
+ # These tables are needed for the stored procedure testscases
+ --source suite/funcs_1/include/sp_tb.inc
+
+ let $run= 0;
+}
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_bitdata.test b/mysql-test/suite/funcs_1/t/myisam_bitdata.test
new file mode 100644
index 00000000000..7ee15e02ea0
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_bitdata.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_bitdata.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb4.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/bitdata/bitdata_master.test
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_cursors.test b/mysql-test/suite/funcs_1/t/myisam_cursors.test
new file mode 100644
index 00000000000..841903148cd
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_cursors.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_cursors.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb1.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/cursors/cursors_master.test
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_func_view.test b/mysql-test/suite/funcs_1/t/myisam_func_view.test
new file mode 100644
index 00000000000..8f701d9bbda
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_func_view.test
@@ -0,0 +1,15 @@
+###################################################
+# #
+# Functions within VIEWs based on MYISAM tables #
+# #
+###################################################
+
+#
+# NOTE: PLEASE SEE THE DETAILED DESCRIPTION IN
+# suite/funcs_1/views/func_view.inc
+# BEFORE ADDING NEW TEST CASES HERE !!!
+
+let $type= 'MYISAM' ;
+
+--source suite/funcs_1/views/func_view.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc.test b/mysql-test/suite/funcs_1/t/myisam_storedproc.test
new file mode 100644
index 00000000000..64fba295907
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_master.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test
new file mode 100755
index 00000000000..108b0fe5611
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc_02.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_02.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test
new file mode 100755
index 00000000000..b181e3ce7ab
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc_03.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_03.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test
new file mode 100755
index 00000000000..81d3d24a01f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc_06.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_06.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test
new file mode 100755
index 00000000000..a02f2f544ee
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc_07.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_07.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test
new file mode 100755
index 00000000000..24e574fa9e2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc_08.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_08.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test
new file mode 100755
index 00000000000..6b4f6c21b62
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test
@@ -0,0 +1,6 @@
+#### suite/funcs_1/t/myisam_storedproc_10.test
+#
+
+let $engine_type= myisam;
+
+--source suite/funcs_1/storedproc/storedproc_10.inc
diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_0102.test b/mysql-test/suite/funcs_1/t/myisam_trig_0102.test
new file mode 100644
index 00000000000..77bde5f99ef
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_trig_0102.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_triggers.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_0102.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_03.test b/mysql-test/suite/funcs_1/t/myisam_trig_03.test
new file mode 100644
index 00000000000..6edaaf7d14c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_trig_03.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_triggers.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_03.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_0407.test b/mysql-test/suite/funcs_1/t/myisam_trig_0407.test
new file mode 100644
index 00000000000..a28959b407e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_trig_0407.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_triggers.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_0407.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_08.test b/mysql-test/suite/funcs_1/t/myisam_trig_08.test
new file mode 100644
index 00000000000..dda01314052
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_trig_08.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_triggers.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_08.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_09.test b/mysql-test/suite/funcs_1/t/myisam_trig_09.test
new file mode 100644
index 00000000000..9f2c932e608
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_trig_09.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_triggers.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_09.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test b/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test
new file mode 100644
index 00000000000..b4d29476aa5
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test
@@ -0,0 +1,32 @@
+#### suite/funcs_1/t/myisam_triggers.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+# FIXME Replace the following, when "if" for mysqltest is available
+let $run= `SELECT @NO_REFRESH = 0`;
+while ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb3.inc
+
+ let $run= 0;
+}
+
+--source suite/funcs_1/triggers/triggers_1011ext.inc
+
diff --git a/mysql-test/suite/funcs_1/t/myisam_views.test b/mysql-test/suite/funcs_1/t/myisam_views.test
new file mode 100644
index 00000000000..3fa50a3a2a0
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/myisam_views.test
@@ -0,0 +1,49 @@
+#### suite/funcs_1/t/myisam_views.test
+
+# MyISAM tables should be used
+#
+# Set $engine_type
+let $engine_type= myisam;
+
+# Decide, if the objects are to be (re)created
+#
+# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE)
+# That means the current script must not (re)create any object.
+# It can expect, that the objects already exist.
+#
+# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE)
+# That means all objects have to be (re)created within the current script.
+
+eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1);
+
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+
+ # Create some objects needed in many testcases
+ USE test;
+ --source suite/funcs_1/include/myisam_tb2.inc
+ --disable_warnings
+ DROP DATABASE IF EXISTS test1;
+ --enable_warnings
+ CREATE DATABASE test1;
+ USE test1;
+ --source suite/funcs_1/include/myisam_tb2.inc
+ USE test;
+
+}
+
+let $message= Attention: The nesting level @max_level in Testcase 3.3.1.A6
+ (Complicated nested VIEWs) has to be limited to 20 because of
+ MyISAM(only) performance issues Bug#11948;
+--source include/show_msg80.inc
+SET @limit1 = 20;
+--source suite/funcs_1/views/views_master.inc
+
+# If we created the database in the above loop we now need to drop it
+let $run= `SELECT @NO_REFRESH = 0`;
+if ($run)
+{
+ DROP DATABASE IF EXISTS test1;
+}
+
diff --git a/mysql-test/suite/funcs_1/triggers/trig_frkey.inc b/mysql-test/suite/funcs_1/triggers/trig_frkey.inc
new file mode 100644
index 00000000000..5d6b6a72b1e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/trig_frkey.inc
@@ -0,0 +1,93 @@
+#################################################################
+# This file inclde tests that address the foreign key cases of
+# the following requirements since they are specific to innodb.
+# Other test cases for these requirements are included in the
+# triggers_master.test file.
+#################################################################
+
+--disable_abort_on_error
+
+#Section x.x.x.1
+# Test case: Verifing that a trigger that activates a primary key results in
+# the primary key acting correctly on the foreign key
+let $message= Testcase x.x.x.1:;
+--source include/show_msg.inc
+
+
+ --disable_warnings
+ DROP TABLE IF EXISTS t0, t1, t2;
+ --enable_warnings
+
+ eval CREATE TABLE t0 (col1 char(50)) ENGINE=$engine_type;
+ eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+ PRIMARY KEY (id)) ENGINE=$engine_type;
+ eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+ INDEX par_ind (f_id), col1 char(50),
+ FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL) ENGINE=$engine_type;
+
+ insert into t1 values (1,'Department A');
+ insert into t1 values (2,'Department B');
+ insert into t1 values (3,'Department C');
+ insert into t2 values (1,2,'Emp 1');
+ insert into t2 values (2,2,'Emp 2');
+ insert into t2 values (3,2,'Emp 3');
+
+ create trigger trig after insert on t0 for each row
+ delete from t1 where col1=new.col1;
+
+ select * from t2;
+lock tables t0 write, t1 write;
+ insert into t0 values ('Department B');
+unlock tables;
+ select * from t2;
+
+# Cleanup
+ drop trigger trig;
+ drop table t2, t1;
+
+
+#Section x.x.x.2
+# Test case: Checking that triggers can be used as a way to address missing foreign
+# key definition
+let $message= Testcase x.x.x.2:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+
+ eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+ PRIMARY KEY (id)) ENGINE=$engine_type;
+ eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+ INDEX par_ind (f_id), col1 char(50),
+ FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON UPDATE CASCADE) ENGINE=$engine_type;
+
+ insert into t1 values (1,'Department A');
+ insert into t1 values (2,'Department B');
+ insert into t1 values (3,'Department C');
+ insert into t2 values (1,2,'Emp 1');
+ insert into t2 values (2,3,'Emp 2');
+
+ --error 1452
+ insert into t2 values (3,4,'Emp 3');
+
+ create trigger tr_t2 before insert on t2 for each row
+ insert into t1 values(new.f_id, concat('New Department ', new.f_id));
+
+lock tables t1 write, t2 write;
+ insert into t2 values (3,4,'Emp 3');
+unlock tables;
+
+ select * from t1;
+ select * from t2;
+
+# Cleanup
+ drop trigger tr_t2;
+ drop table t2, t1, t0;
+
+
+let $message= Foreign Key tests disabled (bug 11472 - stored in trig_frkey2.test);
+--source include/show_msg.inc
+
diff --git a/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc b/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc
new file mode 100644
index 00000000000..51cc2a81d18
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc
@@ -0,0 +1,244 @@
+#################################################################
+# This file inclde tests that address the foreign key cases of
+# the following requirements since they are specific to innodb.
+# Other test cases for these requirements are included in the
+# triggers_master.test file.
+#################################################################
+
+--disable_abort_on_error
+
+# OBN - The following tests are disabled until triggers are supported with forign
+# keys in innodb (foreign keys tests dispabled - bug 11472)
+#################################################################################
+#Section x.x.x.3
+# Test case: Similar to 3.5.10.5 but with ten tables to see if multiple triggers
+# can be executed at once
+let $message= Testcase x.x.x.3:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+
+ eval CREATE TABLE t0 (col1 char(50)) ENGINE=$engine_type;
+ eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+ PRIMARY KEY (id)) ENGINE=$engine_type;
+ eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL) ENGINE=$engine_type;
+ eval CREATE TABLE t3 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t4 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t5 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t6 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t7 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t8 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t9 (id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t10(id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ eval CREATE TABLE t11(id INT PRIMARY KEY, f_id INT, INDEX par_ind
+ (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+
+ create trigger tr1 after update on t2 for each row
+ insert into t0 values ('tr_t2');
+ create trigger tr2 after update on t3 for each row
+ insert into t0 values ('tr_t3');
+ create trigger tr3 after update on t4 for each row
+ insert into t0 values ('tr_t4');
+ create trigger tr3 after update on t5 for each row
+ insert into t0 values ('tr_t5');
+ create trigger tr4 after update on t6 for each row
+ insert into t0 values ('tr_t6');
+ create trigger tr5 after update on t7 for each row
+ insert into t0 values ('tr_t7');
+ create trigger tr5 after update on t8 for each row
+ insert into t0 values ('tr_t8');
+ create trigger tr6 after update on t9 for each row
+ insert into t0 values ('tr_t9');
+ create trigger tr7 after update on t10 for each row
+ insert into t0 values ('tr_t10');
+ create trigger tr8 after update on t11 for each row
+ insert into t0 values ('tr_t11');
+
+ insert into t1 values (1,'Department A');
+ insert into t1 values (2,'Department B');
+ insert into t1 values (3,'Department C');
+
+ insert into t2 values (1,2,'Employee');
+ insert into t3 values (1,2,'Employee');
+ insert into t4 values (1,2,'Employee');
+ insert into t5 values (1,2,'Employee');
+ insert into t6 values (1,2,'Employee');
+ insert into t7 values (1,2,'Employee');
+ insert into t8 values (1,2,'Employee');
+ insert into t9 values (1,2,'Employee');
+ insert into t10 values (1,2,'Employee');
+ insert into t11 values (1,2,'Employee');
+
+ select * from t1;
+ select * from t2;
+ select * from t3;
+ select * from t4;
+ select * from t5;
+ select * from t6;
+ select * from t7;
+ select * from t8;
+ select * from t9;
+ select * from t10;
+ select * from t11;
+
+ delete from t1 where id=2;
+ select * from t1;
+ select * from t2;
+ select * from t3;
+ select * from t4;
+ select * from t5;
+ select * from t6;
+ select * from t7;
+ select * from t8;
+ select * from t9;
+ select * from t10;
+ select * from t11;
+
+ select * from t0;
+
+# Cleanup
+ drop trigger tr1;
+ drop trigger tr2;
+ drop trigger tr3;
+ drop trigger tr4;
+ drop trigger tr5;
+ drop trigger tr6;
+ drop trigger tr7;
+ drop trigger tr8;
+ drop trigger tr9;
+ drop trigger tr10;
+ drop table t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t1,t0;
+
+
+
+
+#Section 3.5.10.5
+# Test case: Ensure that every trigger that should be activated by every possible
+# type of implicit update of its subject table (e.g. a FOREIGN KEY SET
+# DEFAULT action or an UPDATE of a view based on the subject table)
+# is indeed activated correctly.
+let $message= Testcase 3.5.10.5 (foreign keys):;
+--source include/show_msg.inc
+
+
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+
+ eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+ PRIMARY KEY (id)) ENGINE=$engine_type;
+ eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+ INDEX par_ind (f_id), col1 char(50),
+ FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type;
+ create trigger tr_t2 after update on t2
+ for each row set @counter=@counter+1;
+
+ insert into t1 values (1,'Department A');
+ insert into t1 values (2,'Department B');
+ insert into t1 values (3,'Department C');
+ insert into t2 values (1,2,'Emp 1');
+ insert into t2 values (2,2,'Emp 2');
+ insert into t2 values (3,2,'Emp 3');
+ insert into t2 values (4,2,'Emp 4');
+ insert into t2 values (5,2,'Emp 5');
+ insert into t2 values (6,3,'Emp 6');
+ set @counter=0;
+
+ select * from t1;
+ select * from t2;
+ select @counter;
+
+ update t1 set id=4 where id=3;
+ select * from t1;
+ select * from t2;
+ select @counter;
+
+ delete from t1 where id=2;
+ select * from t1;
+ select * from t2;
+ select @counter;
+
+# This is to verify that the trigger works when updated directly
+ update t2 set col1='Emp 5a' where id=5;
+ select * from t2;
+ select @counter;
+
+# Cleanup
+ drop trigger tr_t2;
+ drop table t2, t1;
+
+
+#Section 3.5.10.6
+# Test case: Ensure that every trigger that should be activated by every possible
+# type of implicit deletion from its subject table (e.g. a FOREIGN KEY
+# CASCADE action or a DELETE from a view based on the subject table)
+# is indeed activated correctly.
+let $message= Testcase 3.5.10.6 (foreign keys):;
+--source include/show_msg.inc
+
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+
+ eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50),
+ PRIMARY KEY (id)) ENGINE=$engine_type;
+ eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
+ INDEX par_ind (f_id), col1 char(50),
+ FOREIGN KEY (f_id) REFERENCES t1(id)
+ ON DELETE CASCADE) ENGINE=$engine_type;
+
+ create trigger tr_t2 before delete on t2
+ for each row set @counter=@counter+1;
+
+ insert into t1 values (1,'Department A');
+ insert into t1 values (2,'Department B');
+ insert into t1 values (3,'Department C');
+ insert into t2 values (1,2,'Emp 1');
+ insert into t2 values (2,2,'Emp 2');
+ insert into t2 values (3,2,'Emp 3');
+ insert into t2 values (4,2,'Emp 4');
+ insert into t2 values (5,2,'Emp 5');
+ insert into t2 values (6,3,'Emp 6');
+ set @counter=0;
+
+ select * from t1;
+ select * from t2;
+ select @counter;
+
+ delete from t1 where id=2;
+
+ select * from t1;
+ select * from t2;
+ select @counter;
+
+# This is to verify that the trigger works when deleted directly
+ delete from t2 where id=6;
+ select * from t2;
+ select @counter;
+
+# Cleanup
+ drop trigger tr_t2;
+ drop table t2, t1;
+
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_0102.inc b/mysql-test/suite/funcs_1/triggers/triggers_0102.inc
new file mode 100644
index 00000000000..b11455c07d3
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_0102.inc
@@ -0,0 +1,447 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+# OBM - ToDo
+############
+# 1. Performace
+###############################################
+
+--disable_abort_on_error
+
+#####################################################
+################# Section 3.5.1 #####################
+# Syntax checks for CREATE TRIGGER and DROP TRIGGER #
+#####################################################
+
+#Section 3.5.1.1
+# Testcase: Ensure that all clauses that should be supported are supported.
+let $message= Testcase: 3.5.1.1:;
+--source include/show_msg.inc
+# OBN - This test case tests basic trigger definition and execution
+# of INSERT/UPDATE/DELETE actions and BEFORE/AFTER timings.
+# As such it covers the equirements in sections 3.5.6.1, 3.5.6.2,
+# 3.5.6.4, 3.5.6.5, 3.5.7.1, 3.5.7.2, 3.5.7.3, 3.5.7.17 below.
+# - Note currently as a result of limitations with locking tables in
+# triggers, a specifc lockingof the tables is done.
+# Once fixed, the locking and alias referances should be removed
+
+use test;
+# Trigger Definition
+ Create trigger trg1_1 BEFORE INSERT
+ on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+ Create trigger trg1_2 AFTER INSERT
+ on tb3 for each row set @test_after = 6;
+ Create trigger trg1_4 BEFORE UPDATE
+ on tb3 for each row set @test_before = 27,
+ new.f142 = @test_before,
+ new.f122 = 'Before Update Trigger';
+ Create trigger trg1_3 AFTER UPDATE
+ on tb3 for each row set @test_after = '15';
+ Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+ select count(*) into @test_before from tb3 as tr_tb3
+ where f121 = 'Test 3.5.1.1';
+ Create trigger trg1_6 AFTER DELETE on tb3 for each row
+ select count(*) into @test_after from tb3 as tr_tb3
+ where f121 = 'Test 3.5.1.1';
+# Trigger Execution Insert (before and after)
+ set @test_before = 1;
+ set @test_after = 5;
+ select @test_before, @test_after;
+ Insert into tb3 (f121, f122, f142, f144, f134)
+ values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+
+# Trigger Execution Update (before and after)
+ set @test_before = 18;
+ set @test_after = 8;
+ select @test_before, @test_after;
+ Update tb3 set tb3.f122 = 'Update',
+ tb3.f142 = @test_before,
+ tb3.f144 = @test_after
+ where tb3.f121 = 'Test 3.5.1.1';
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+
+# Trigger Execution Delete (before and after)
+ Insert into tb3 (f121, f122, f142, f144, f134)
+ values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+ set @test_before = 0;
+ set @test_after = 0;
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+ Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg1_1;
+ --error 0, 1360
+ drop trigger trg1_2;
+ --error 0, 1360
+ drop trigger trg1_3;
+ --error 0, 1360
+ drop trigger trg1_4;
+ --error 0, 1360
+ drop trigger trg1_5;
+ --error 0, 1360
+ drop trigger trg1_6;
+ --enable_warnings
+ delete from tb3 where f121='Test 3.5.1.1';
+ --enable_warnings
+
+#Section 3.5.1.2
+# Testcase: Ensure that all clauses that should not be supported are disallowed
+# with an appropriate error message.
+let $message= Testcase: 3.5.1.2:;
+--source include/show_msg.inc
+
+ --error 1064
+ Create trigger trg_1 after insert
+ on tb3 for each statement set @x= 1;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg_1;
+ --enable_warnings
+
+
+#Section 3.5.1.3
+# Testcase: Ensure that all supported clauses are supported only in the correct order.
+let $message= Testcase 3.5.1.3:;
+--source include/show_msg.inc
+ --error 1064
+ CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+
+ --error 1064
+ CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+
+ --error 1064
+ CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+
+ --error 1064
+ CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test';
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg3_1;
+ --error 0, 1360
+ drop trigger trg3_2;
+ --error 0, 1360
+ drop trigger trg3_3;
+ --error 0, 1360
+ drop trigger trg3_4;
+ --error 0, 1360
+ drop trigger trg3_5;
+ --enable_warnings
+
+
+#Section 3.5.1.4
+# Testcase: Ensure that an appropriate error message is returned if a clause
+# is out-of-order in an SQL statement.
+# OBN - FIXME - Missing 3.5.1.4 need to add
+
+#Section 3.5.1.5
+# Testcase: Ensure that all clauses that are defined to be mandatory are indeed
+# required to be mandatory by the MySQL server and tools
+let $message= Testcase: 3.5.1.5:;
+--source include/show_msg.inc
+
+ --error 1064
+ CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+
+ --error 1064
+ CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+
+ --error 1064
+ CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+
+ --error 1064
+ CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+
+ --error 1064
+ CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+
+ --error 1064
+ CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg4_1;
+ --error 0, 1360
+ drop trigger trg4_2;
+ --error 0, 1360
+ drop trigger trg4_3;
+ --error 0, 1360
+ drop trigger trg4_4;
+ --error 0, 1360
+ drop trigger trg4_5;
+ --error 0, 1360
+ drop trigger trg4_6;
+ --enable_warnings
+
+#Section 3.5.1.6
+# Testcase: Ensure that any clauses that are defined to be optional are indeed
+# trated as optional by MySQL server and tools
+let $message= Testcase 3.5.1.6: - Need to fix;
+--source include/show_msg.inc
+# OBN - FIXME - Missing 3.5.1.6 need to add
+
+#Section 3.5.1.7
+# Testcase: Ensure that all valid, fully-qualified, and non-qualified,
+# trigger names are accepted, at creation time.
+let $message= Testcase 3.5.1.7: - need to fix;
+--source include/show_msg.inc
+
+ drop table if exists t1;
+ eval create table t1 (f1 int, f2 char(25),f3 int) engine=$engine_type;
+ CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+ for each row set new.f3 = '14';
+ CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+
+ insert into t1 (f2) values ('insert 3.5.1.7');
+ select * from t1;
+ update t1 set f2='update 3.5.1.7';
+ select * from t1;
+ select trigger_name from information_schema.triggers;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg5_1;
+ # The above trigger should be dropped since the name was trimmed.
+ drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+ drop table t1;
+
+#Section 3.5.1.8
+# Testcase: Ensure that any invalid trigger name is never accepted, and that an
+# appropriate error message is returned when the name is rejected.
+let $message= Testcase 3.5.1.8:;
+--source include/show_msg.inc
+
+ --error 1064
+ CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1435
+ CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+ for each row set new.f120 ='X';
+
+ --disable_warnings
+ drop database if exists trig_db;
+ --enable_warnings
+ create database trig_db;
+ use trig_db;
+ eval create table t1 (f1 integer) engine = $engine_type;
+
+ # Can't create a trigger in a different database
+ use test;
+ --error 1146
+ CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
+ for each row set @ret_trg6_2 = 5;
+
+ # Can't create a trigger refrencing a table in a different db
+ use trig_db;
+ --error 1435
+ CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
+ for each row set @ret_trg6_3 = 18;
+
+ use test;
+
+#Cleanup
+ --disable_warnings
+ drop database trig_db;
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --error 0, 1360
+ drop trigger trg6_1;
+ --error 0, 1360
+ drop trigger trg6_3;
+ --enable_warnings
+
+#Section 3.5.1.9
+#Testcase: Ensure that a reference to a non-existent trigger is rejected with
+# an appropriate error message.
+let $message= Testcase 3.5.1.9:(cannot be inplemented at this point);
+--source include/show_msg.inc
+
+
+#Section 3.5.1.10
+#Testcase: Ensure that it is not possible to create two triggers with the same name on
+# the same table
+let $message= Testcase 3.5.1.10:;
+--source include/show_msg.inc
+
+ CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+
+ --error 1359
+ CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg7_1;
+ --enable_warnings
+
+
+#Section 3.5.1.?
+# Testcase: Ensure that it is not possible to create two or more triggers with
+# the same name, provided each is associated with a different table.
+let $message= Testcase 3.5.1.?:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ --enable_warnings
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ eval create table t2 (f1 char(50), f2 integer) engine = $engine_type;
+
+ create trigger trig before insert on t1
+ for each row set new.f1 ='trig t1';
+
+ --error 1359
+ create trigger trig before update on t2
+ for each row set new.f1 ='trig t2';
+
+ insert into t1 value ('insert to t1',1);
+ select * from t1;
+ update t1 set f1='update to t1';
+ select * from t1;
+ insert into t2 value ('insert to t2',2);
+ update t2 set f1='update to t1';
+ select * from t2;
+
+#Cleanup
+ --disable_warnings
+ drop table t1;
+ drop table t2;
+ --error 0, 1360
+ drop trigger trig;
+ --enable_warnings
+
+
+#Section 3.5.1.11
+# Testcase: Ensure that it is possible to create two or more triggers with
+# the same name, provided each resides in a different database
+let $message= Testcase 3.5.1.11:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ drop database if exists trig_db1;
+ drop database if exists trig_db2;
+ drop database if exists trig_db3;
+ --enable_warnings
+ create database trig_db1;
+ create database trig_db2;
+ create database trig_db3;
+ use trig_db1;
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig before insert on t1
+ for each row set new.f1 ='trig1', @test_var1='trig1';
+ use trig_db2;
+ eval create table t2 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig before insert on t2
+ for each row set new.f1 ='trig2', @test_var2='trig2';
+ use trig_db3;
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig before insert on t1
+ for each row set new.f1 ='trig3', @test_var3='trig3';
+
+ set @test_var1= '', @test_var2= '', @test_var3= '';
+ use trig_db1;
+ insert into t1 (f1,f2) values ('insert to db1 t1',1);
+ insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+ insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+ insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+ select @test_var1, @test_var2, @test_var3;
+ select * from t1;
+ select * from trig_db2.t2;
+ select * from trig_db3.t1;
+ select * from t1;
+ use test;
+
+#Cleanup
+ --disable_warnings
+ drop database trig_db1;
+ drop database trig_db2;
+ drop database trig_db3;
+ --enable_warnings
+
+###########################################
+################ Section 3.5.2 ############
+# Check for the global nature of Triggers #
+###########################################
+
+#Section 3.5.2.1
+# Test case: Ensure that if a trigger created without a qualifying database
+# name belongs to the database in use at creation time.
+#Section 3.5.2.2
+# Test case: Ensure that if a trigger created with a qualifying database name
+# belongs to the database specified.
+#Section 3.5.2.3
+# Test case: Ensure that if a trigger created with a qualifying database name
+# does not belong to the database in use at creation time unless
+# the qualifying database name identifies the database that is
+# also in use at creation time.
+let $message= Testcase 3.5.2.1/2/3:;
+--source include/show_msg.inc
+
+
+ --disable_warnings
+ drop database if exists trig_db1;
+ drop database if exists trig_db2;
+ --enable_warnings
+ create database trig_db1;
+ create database trig_db2;
+ use trig_db1;
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ eval create table trig_db2.t1 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig1_b before insert on t1
+ for each row set @test_var1='trig1_b';
+ create trigger trig_db1.trig1_a after insert on t1
+ for each row set @test_var2='trig1_a';
+ create trigger trig_db2.trig2 before insert on trig_db2.t1
+ for each row set @test_var3='trig2';
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers;
+
+ set @test_var1= '', @test_var2= '', @test_var3= '';
+ insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+ insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+ select @test_var1, @test_var2, @test_var3;
+
+#Cleanup
+ --disable_warnings
+ drop database trig_db1;
+ drop database trig_db2;
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_03.inc b/mysql-test/suite/funcs_1/triggers/triggers_03.inc
new file mode 100644
index 00000000000..764fccec734
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_03.inc
@@ -0,0 +1,735 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+--disable_abort_on_error
+
+###########################################
+################ Section 3.5.3 ############
+# Check for the global nature of Triggers #
+###########################################
+
+# General setup to be used in all testcases of 3.5.3
+let $message= Testcase 3.5.3:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ drop database if exists priv_db;
+ --enable_warnings
+ create database priv_db;
+ use priv_db;
+ eval create table t1 (f1 char(20)) engine= $engine_type;
+
+ create User test_noprivs@localhost;
+ set password for test_noprivs@localhost = password('PWD');
+
+ create User test_yesprivs@localhost;
+ set password for test_yesprivs@localhost = password('PWD');
+
+#Section 3.5.3.1 / 3.5.3.2
+# Test case: Ensure SUPER privilege is required to create a trigger
+#Section 3.5.3.3 / 3.5.3.4
+# Test case: Ensure that root always has the SUPER privilege.
+# OMR - No need to test this since SUPER priv is an existing one and not related
+# or added for triggers (TP 2005-06-06)
+#Section 3.5.3.5 / 3.5.3.6
+# Test case: Ensure that the SUPER privilege is required to drop a trigger.
+let $message= Testcase 3.5.3.2/6:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant ALL on *.* to test_noprivs@localhost;
+ revoke SUPER on *.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+# Adding the minimal priv to be able to set to the db
+ grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+let $message= Testcase 3.5.3.2:;
+--source include/show_msg.inc
+
+ connection no_privs;
+ select current_user;
+ use priv_db;
+
+ --error 1227
+ create trigger trg1_1 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.2_1-no';
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.2-no');
+ select f1 from t1;
+
+ connection yes_privs;
+ select current_user;
+ use priv_db;
+
+ create trigger trg1_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.2_2-yes';
+
+ connection default;
+ select current_user;
+ use priv_db;
+
+ # Added following the fix to bug 5861
+ --error 1143
+ insert into t1 (f1) values ('insert 3.5.3.2-yes');
+ select f1 from t1;
+ grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+let $message= note: once 15166 is fixed a similar case for SELECT needs to be added;
+--source include/show_msg.inc
+
+ insert into t1 (f1) values ('insert 3.5.3.2-yes');
+ select f1 from t1;
+let $message= Testcase 3.5.3.6:;
+--source include/show_msg.inc
+
+ connection no_privs;
+ use priv_db;
+
+ --error 1227
+ drop trigger trg1_2;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.6-yes');
+ select f1 from t1;
+
+ connection yes_privs;
+ use priv_db;
+
+ drop trigger trg1_2;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.6-no');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ connection default;
+ --error 0, 1360
+ drop trigger trg1_2;
+ disconnect no_privs;
+ disconnect yes_privs;
+ --enable_warnings
+
+
+#Section 3.5.3.7
+# Test case: Ensure that use of the construct "SET NEW. <column name> = <value>"
+# fails at CREATE TRIGGER time, if the current user does not have the
+# UPDATE privilege on the column specified
+# Note: As a result of bug 8884 the triggers are actually created.
+# Disabled because of bug 8884
+
+# --- 3.5.3.7a - Privs set on a global level
+let $message=Testcase 3.5.3.7a:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant ALL on *.* to test_noprivs@localhost;
+ revoke UPDATE on *.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424a,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424a,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+
+ connection no_privs_424a;
+ select current_user;
+ use priv_db;
+ show grants;
+ select f1 from t1;
+
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4a_1 before INSERT on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1a';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1a');
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4a_1;
+
+ connection yes_privs_424a;
+ use priv_db;
+ select current_user;
+ show grants;
+ create trigger trg4a_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2a';
+
+ connection default;
+
+
+ # Added to bypass bug 15166
+let $message= SELECT priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant SELECT on *.* to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.7-2b');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg4a_2;
+ disconnect no_privs_424a;
+ disconnect yes_privs_424a;
+ --enable_warnings
+
+# --- 3.5.3.7b - Privs set on a database level
+let $message= Testcase 3.5.3.7b:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs;
+ grant ALL on priv_db.* to test_noprivs@localhost;
+ revoke UPDATE on priv_db.* from test_noprivs@localhost;
+ show grants for test_noprivs;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant UPDATE on priv_db.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424b,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424b,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_424b;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4b_1 before UPDATE on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1b';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1b');
+ select f1 from t1;
+ update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4b_1;
+
+ connection yes_privs_424b;
+ show grants;
+ use priv_db;
+ create trigger trg4b_2 before UPDATE on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2b';
+
+ connection default;
+
+ # Added to bypass bug 15166
+let $message= SELECT priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant SELECT on priv_db.* to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.7-2b');
+ select f1 from t1;
+ update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+ select f1 from t1;
+# Cleanup
+ --disable_warnings
+ drop trigger trg4b_2;
+ disconnect no_privs_424b;
+ disconnect yes_privs_424b;
+ --enable_warnings
+
+# --- 3.5.3.7c - Privs set on a table level
+let $message= Testcase 3.5.3.7c;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+ grant ALL on priv_db.t1 to test_noprivs@localhost;
+ revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+ show grants for test_noprivs;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424c,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424c,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_424c;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4c_1 before INSERT on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1c';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1c');
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4c_1;
+
+ connection yes_privs_424c;
+ show grants;
+ use priv_db;
+ create trigger trg4c_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2c';
+
+ connection default;
+
+ # Added to bypass bug 15166
+let $message= SELECT priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.7-2c');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg4c_2;
+ disconnect no_privs_424c;
+ disconnect yes_privs_424c;
+ --enable_warnings
+
+# --- 3.5.3.7d - Privs set on a column level
+--disable_query_log
+let $message= Testcase 3.5.3.7d:;
+--enable_query_log
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+# There is no ALL privs on the column level
+ grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+ show grants for test_noprivs;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_noprivs;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424d,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424d,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_424d;
+ show grants;
+ use priv_db;
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4d_1 before INSERT on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1d';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1d');
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4d_1;
+
+ connection yes_privs_424d;
+ show grants;
+ use priv_db;
+ create trigger trg4d_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2d';
+
+ connection default;
+
+ # Added to bypass bug 15166
+let $message= SELECT priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.7-2d');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg4d_2;
+ disconnect no_privs_424d;
+ disconnect yes_privs_424d;
+ --enable_warnings
+
+#Section 3.5.3.8
+# Test case: Ensure that use of the construct "SET <target> = NEW. <Column name>" fails
+# at CREATE TRIGGER time, if the current user does not have the SELECT privilege
+# on the column specified.
+
+# --- 3.5.3.8a - Privs set on a global level
+let $message= Testcase 3.5.3.8a:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant ALL on *.* to test_noprivs@localhost;
+ revoke SELECT on *.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425a,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425a,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425a;
+ select current_user;
+ use priv_db;
+ show grants;
+
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5a_1 before INSERT on t1 for each row
+# set @test_var = new.f1;
+
+ connection default;
+ set @test_var = 'before trig 3.5.3.8-1a';
+ select @test_var;
+ insert into t1 (f1) values ('insert 3.5.3.8-1a');
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5a_1;
+
+ connection yes_privs_425a;
+ use priv_db;
+ select current_user;
+ show grants;
+ create trigger trg5a_2 before INSERT on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-2a';
+ select @test_var;
+
+ # Added to bypass bug 15166
+let $message= UPDATE priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant UPDATE on *.* to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.8-2a');
+ select @test_var;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg5a_2;
+ disconnect no_privs_425a;
+ disconnect yes_privs_425a;
+ --enable_warnings
+
+# --- 3.5.3.8b - Privs set on a database level
+let $message= Testcase: 3.5.3.8b;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+ grant ALL on priv_db.* to test_noprivs@localhost;
+ revoke SELECT on priv_db.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT on priv_db.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425b,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425b,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425b;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5b_1 before UPDATE on t1 for each row
+# set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-1b';
+ insert into t1 (f1) values ('insert 3.5.3.8-1b');
+ select @test_var;
+ update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5b_1;
+
+ connection yes_privs_425b;
+ show grants;
+ use priv_db;
+ create trigger trg5b_2 before UPDATE on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-2b';
+ insert into t1 (f1) values ('insert 3.5.3.8-2b');
+ select @test_var;
+
+ # Added to bypass bug 15166
+let $message= UPDATE priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant UPDATE on priv_db.* to test_yesprivs@localhost;
+
+ update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+ select @test_var;
+# Cleanup
+ --disable_warnings
+ drop trigger trg5b_2;
+ disconnect no_privs_425b;
+ disconnect yes_privs_425b;
+ --enable_warnings
+
+# --- 3.5.3.8c - Privs set on a table level
+let $message= Testcase 3.5.3.8c:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+ grant ALL on priv_db.t1 to test_noprivs@localhost;
+ revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425c,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425c,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425c;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5c_1 before INSERT on t1 for each row
+# set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-1c';
+ insert into t1 (f1) values ('insert 3.5.3.8-1c');
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5c_1;
+
+ connection yes_privs_425c;
+ show grants;
+ use priv_db;
+ create trigger trg5c_2 before INSERT on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var='before trig 3.5.3.8-2c';
+
+ # Added to bypass bug 15166
+let $message= UPDATE priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.8-2c');
+ select @test_var;
+# Cleanup
+ --disable_warnings
+ drop trigger trg5c_2;
+ disconnect no_privs_425c;
+ disconnect yes_privs_425c;
+ --enable_warnings
+
+# --- 3.5.3.8d - Privs set on a column level
+let $message=Testcase: 3.5.3.8d:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+# There is no ALL prov on the column level
+ grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425d,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425d,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425d;
+ show grants;
+ use priv_db;
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5d_1 before INSERT on t1 for each row
+# set @test_var= new.f1;
+
+ connection default;
+ set @test_var='before trig 3.5.3.8-1d';
+ insert into t1 (f1) values ('insert 3.5.3.8-1d');
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5d_1;
+
+ connection yes_privs_425d;
+ show grants;
+ use priv_db;
+ create trigger trg5d_2 before INSERT on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var='before trig 3.5.3.8-2d';
+
+ # Added to bypass bug 15166
+let $message= UPDATE priv added to bypass bug 15166;
+--source include/show_msg.inc
+ grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+
+ insert into t1 (f1) values ('insert 3.5.3.8-2d');
+ select @test_var;
+
+# Cleanup 3.5.3.8
+ --disable_warnings
+ drop trigger trg5d_2;
+ --enable_warnings
+
+# --- 3.5.3.x - additional tests following the fix to bug 5861 / WL 2818
+# to test for trigger definer privs in the case of trigger
+# actions (insert/update/delete/select) performed on other
+# tables.
+let $message=Testcase: 3.5.3.x:;
+--source include/show_msg.inc
+
+ use priv_db;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ --enable_warnings
+
+ eval create table t1 (f1 int) engine= $engine_type;
+ eval create table t2 (f2 int) engine= $engine_type;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT, UPDATE on priv_db.t1 to test_yesprivs@localhost;
+ grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_353x,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+
+ connection yes_353x;
+ select current_user;
+ use priv_db;
+
+ create trigger trg1 before insert on t1 for each row
+ insert into t2 values (new.f1);
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values (4);
+ revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+ grant INSERT on priv_db.t2 to test_yesprivs@localhost;
+ insert into t1 (f1) values (4);
+ select f1 from t1;
+ select f2 from t2;
+
+ connection yes_353x;
+ use priv_db;
+ drop trigger trg1;
+
+ create trigger trg2 before insert on t1 for each row
+ update t2 set f2=new.f1-1;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values (2);
+ revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
+ grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
+ insert into t1 (f1) values (2);
+ select f1 from t1;
+ select f2 from t2;
+
+ connection yes_353x;
+ use priv_db;
+ drop trigger trg2;
+
+ create trigger trg3 before insert on t1 for each row
+ select f2 into @aaa from t2 where f2=new.f1;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values (1);
+ revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
+ grant SELECT on priv_db.t2 to test_yesprivs@localhost;
+ insert into t1 (f1) values (1);
+ select f1 from t1;
+ select f2 from t2;
+ select @aaa;
+
+ connection yes_353x;
+ use priv_db;
+ drop trigger trg3;
+
+ create trigger trg4 before insert on t1 for each row
+ delete from t2;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values (1);
+ revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
+ grant DELETE on priv_db.t2 to test_yesprivs@localhost;
+ insert into t1 (f1) values (1);
+ select f1 from t1;
+ select f2 from t2;
+
+
+
+# Cleanup 3.5.3
+ --disable_warnings
+ drop database if exists priv_db;
+ drop user test_yesprivs@localhost;
+ drop user test_noprivs@localhost;
+ drop user test_noprivs;
+ --enable_warnings
+
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_0407.inc b/mysql-test/suite/funcs_1/triggers/triggers_0407.inc
new file mode 100644
index 00000000000..15c94ada975
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_0407.inc
@@ -0,0 +1,611 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+--disable_abort_on_error
+
+# General setup for Trigger tests
+let $message= Testcase: 3.5:;
+--source include/show_msg.inc
+
+--disable_abort_on_error
+
+ create User test_general@localhost;
+ set password for test_general@localhost = password('PWD');
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+
+ create User test_super@localhost;
+ set password for test_super@localhost = password('PWD');
+ grant ALL on *.* to test_super@localhost with grant OPTION;
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (con1_general,localhost,test_general,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (con1_super,localhost,test_super,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+####################################
+############ Section 3.5.4 #########
+# Drop Trigger Checkes: #
+####################################
+let $message= Testcase 3.5.4:;
+--source include/show_msg.inc
+
+ connection default;
+ use test;
+
+#Section 3.5.4.1
+# Testcase: Ensure that the DROP TRIGGER statement cleanly drops its target trigger.
+let $message= Testcase 3.5.4.1:;
+--source include/show_msg.inc
+
+ connection con1_super;
+ create database db_drop;
+ Use db_drop;
+ eval create table t1 (f1 char(30)) engine=$engine_type;
+ grant INSERT, SELECT on db_drop.t1 to test_general;
+ Use db_drop;
+ Create trigger trg1 BEFORE INSERT on t1
+ for each row set new.f1='Trigger 3.5.4.1';
+ connection con1_general;
+ Use db_drop;
+ Insert into t1 values ('Insert error 3.5.4.1');
+ Select * from t1;
+ connection con1_super;
+ drop trigger trg1;
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers;
+ connection con1_general;
+ Insert into t1 values ('Insert no trigger 3.5.4.1');
+ Select * from t1;
+
+#Cleanup
+ --disable_warnings
+ connection con1_super;
+ --disable_warnings
+ --error 0,1360
+ drop trigger trg1;
+ drop database if exists db_drop;
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+ --enable_warnings
+
+#Section 3.5.4.2
+# Test case: Ensure that DROP TRIGGER <trigger name> fails, with an appropriate error
+# message, if the trigger name does not exist.
+let $message= Testcase 3.5.4.2:;
+--source include/show_msg.inc
+
+ connection con1_super;
+ create database db_drop2;
+ Use db_drop2;
+ --disable_warnings
+ drop table if exists t1_432 ;
+ --enable_warnings
+ eval create table t1_432 (f1 char (30)) engine=$engine_type;
+ --error 1360
+ Drop trigger tr_does_not_exit;
+#cleanup
+ --disable_warnings
+ drop table if exists t1_432 ;
+ drop database if exists db_drop2;
+ --enable_warnings
+
+#Section 3.5.4.3
+# Test case: Ensure that DROP TRIGGER <trigger name> fails, with an appropriate
+# error message, if <trigger name> is not a qualified name.
+let $message= Testcase 3.5.4.3:;
+--source include/show_msg.inc
+
+ connection con1_super;
+ create database db_drop3;
+ Use db_drop3;
+ --disable_warnings
+ drop table if exists t1_433 ;
+ drop table if exists t1_433a ;
+ --enable_warnings
+ eval create table t1_433 (f1 char (30)) engine=$engine_type;
+ eval create table t1_433a (f1a char (5)) engine=$engine_type;
+
+ CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+ set new.f1 = 'Trigger 3.5.4.3';
+
+# Using table
+ --error 1064
+ Drop trigger t1.433.trg3;
+
+# Using database.table
+ --error 1064
+ Drop trigger db_drop3.t1.433.trg3;
+
+# wrong database
+ --error 1360
+ Drop trigger mysql.trg3;
+
+# database does not exist
+ --error 1360
+ Drop trigger tbx.trg3;
+
+#cleanup
+ Drop trigger db_drop3.trg3;
+ drop table if exists t1_433;
+ drop table if exists t1_433a;
+ drop database if exists db_drop3;
+
+#Section 3.5.4.4
+# Test case: Ensure that when a database is dropped, all triggers created within
+# that database are also cleanly dropped.
+let $message= Testcase 3.5.4.4:;
+--source include/show_msg.inc
+
+ connection con1_super;
+ create database db_drop4;
+ Use db_drop4;
+ eval create table t1 (f1 char(30)) engine=$engine_type;
+ grant INSERT, SELECT on db_drop4.t1 to test_general;
+ Create trigger trg4 BEFORE INSERT on t1
+ for each row set new.f1='Trigger 3.5.4.4';
+ connection con1_general;
+ Use db_drop4;
+ Insert into t1 values ('Insert 3.5.4.4');
+ Select * from t1;
+ connection con1_super;
+ Drop database db_drop4;
+ Show databases;
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers
+ where information_schema.triggers.trigger_name='trg4';
+ create database db_drop4;
+ Use db_drop4;
+ eval create table t1 (f1 char(30)) engine=$engine_type;
+ grant INSERT, SELECT on db_drop4.t1 to test_general;
+ connection con1_general;
+ Insert into t1 values ('2nd Insert 3.5.4.4');
+ Select * from t1;
+
+#Cleanup
+ connection con1_super;
+ --disable_warnings
+ --error 1360
+ drop trigger trg4;
+ drop database if exists db_drop4;
+ --enable_warnings
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+#Section 3.5.4.5
+# Test case: Ensure that when a table is dropped, all triggers for which it is the
+# subject table are also cleanly dropped.
+let $message= Testcase 3.5.4.5:;
+--source include/show_msg.inc
+
+ connection con1_super;
+ create database db_drop5;
+ Use db_drop5;
+ eval create table t1 (f1 char(50)) engine=$engine_type;
+ grant INSERT, SELECT on t1 to test_general;
+ Create trigger trg5 BEFORE INSERT on t1
+ for each row set new.f1='Trigger 3.5.4.5';
+ connection con1_general;
+ Use db_drop5;
+ Insert into t1 values ('Insert 3.5.4.5');
+ Select * from t1;
+ connection con1_super;
+ Drop table t1;
+ Show tables;
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers
+ where information_schema.triggers.trigger_name='trg5';
+ eval create table t1 (f1 char(50)) engine=$engine_type;
+ grant INSERT, SELECT on t1 to test_general;
+ connection con1_general;
+ Insert into t1 values ('2nd Insert 3.5.4.5');
+ Select * from t1;
+
+#Cleanup
+ connection con1_super;
+ --disable_warnings
+ --error 1360
+ drop trigger trg5;
+ drop database if exists db_drop5;
+ --enable_warnings
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+
+##################################
+######### Section 3.5.5 ##########
+# Checks on the Subject Table #
+##################################
+
+let $message= Testcase 3.5.5:;
+--source include/show_msg.inc
+
+ connection default;
+ use test;
+
+#Section 3.5.5.1
+# Test case: Ensure that, if CREATE TRIGGER is executed with a non-existent
+# subject table, the statement fails with an appropriate error message.
+let $message= Testcase 3.5.5.1:;
+--source include/show_msg.inc
+
+ --error 1146
+ Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+
+
+#Section 3.5.5.2
+# Test case: Ensure that, if CREATE TRIGGER is executed with a temporary table
+# as the subject table, the statement fails with an appropriate error message.
+let $message= Testcase 3.5.5.2:;
+--source include/show_msg.inc
+
+ Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+
+ --error 1361
+ Create trigger trg2 before INSERT
+ on t1_temp for each row set new.f2=9999;
+
+#Cleanup
+ --disable_warnings
+ drop table t1_temp;
+ --enable_warnings
+
+
+#Section 3.5.5.3
+# Test case: Ensure that, if CREATE TRIGGER is executed with a view as the subject
+# table, the statement fails with an appropriate error message.
+let $message= Testcase 3.5.5.3:;
+--source include/show_msg.inc
+
+ Create view vw3 as select f118 from tb3;
+
+# OBN Not sure why the server is returning error 1347
+ --error 1347
+ Create trigger trg3 before INSERT
+ on vw3 for each row set new.f118='s';
+
+#Cleanup
+ --disable_warnings
+ drop view vw3;
+ --enable_warnings
+
+
+#Section 3.5.5.4
+# Test case: Ensure that, if CREATE TRIGGER is executed with a table that resides
+# in a different database than in which the trigger will reside, the
+# statement fails with an appropriate error message; that is, ensure that
+# the trigger and its subject table must reside in the same database.
+let $message= Testcase 3.5.5.4:;
+--source include/show_msg.inc
+
+ connection con1_super;
+ create database dbtest_one;
+ create database dbtest_two;
+ use dbtest_two;
+ eval create table t2 (f1 char(15)) engine=$engine_type;
+ use dbtest_one;
+ --error 1435
+ create trigger trg4 before INSERT
+ on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ grant INSERT, SELECT on dbtest_two.t2 to test_general;
+ grant SELECT on dbtest_one.* to test_general;
+ connection con1_general;
+ use dbtest_two;
+ Insert into t2 values ('1st Insert 3.5.5.4');
+ Select * from t2;
+ use dbtest_one;
+ Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+ Select * from dbtest_two.t2;
+
+#Cleanup
+ connection con1_super;
+ --disable_warnings
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+ DROP DATABASE if exists dbtest_one;
+ drop database if EXISTS dbtest_two;
+ --enable_warnings
+
+#####################################
+########### Section 3.5.6 ###########
+# Check on the Trigger Action Time #
+#####################################
+
+let $message= Testcase 3.5.6:;
+--source include/show_msg.inc
+
+ connection default;
+ use test;
+
+#Section 3.5.6.1
+# Test case: Ensure that a trigger definition can specify a trigger action time of BEFORE.
+# See section 3.5.1.1
+let $message= Testcase 3.5.6.1 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.6.2
+# Test case: Ensure that a trigger definition can specify a trigger action time of AFTER.
+# See section 3.5.1.1
+let $message= Testcase 3.5.6.2 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.6.3
+# Test case: Ensure that a trigger definition that specifies a trigger action
+# time that is not either BEFORE or AFTER fails, with an appropriate
+# error message, at CREATE TRIGGER time.
+let $message= Testcase 3.5.6.3:;
+--source include/show_msg.inc
+
+ --error 1064
+ Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+ --error 1064
+ Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger tb3.trg3_1;
+ --error 0, 1360
+ drop trigger tb3.trg3_2;
+ --enable_warnings
+
+#Section 3.5.6.4
+# Test case: Ensure that a trigger defined with a trigger action time of BEFORE
+# always executes its triggered action immediately before the trigger event.
+# See section 3.5.1.1
+let $message= Testcase 3.5.6.4 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.6.5
+# Test case: Ensure that a trigger defined with a trigger action time of AFTER
+# always executes its triggered action immediately after the trigger event.
+let $message= Testcase 3.5.6.5 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#############################
+####### Section 3.5.7 #######
+# Check on Trigger Event #
+#############################
+
+#Section 3.5.7.1
+#Test case: Ensure that a trigger definition can specify a trigger event of INSERT.
+let $message= Testcase 3.5.7.1 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.7.2
+# Test case: Ensure that a trigger definition can specify a trigger event of UPDATE.
+let $message= Testcase 3.5.7.2 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.7.3
+# Test case: Ensure that a trigger definition can specify a trigger event of DELETE.
+let $message= Testcase 3.5.7.3 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.7.4
+# Test case: Ensure that a trigger definition that specifies a trigger event that
+# is not either INSERT, UPDATE or DELETE fails, with an appropriate error
+# message, at CREATE TRIGGER time.
+let $message= Testcase 3.5.7.4:;
+--source include/show_msg.inc
+
+ --error 1064
+ Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+ --error 1064
+ Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger tb3.trg4_1;
+ --error 0, 1360
+ drop trigger tb3.trg4_2;
+ --enable_warnings
+
+#Section 3.5.7.5 / 3.5.7.6
+# Test case: Ensure that it is not possible to create multiple BEFORE INSERT triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.5 / 3.5.7.6:;
+--source include/show_msg.inc
+
+ Create trigger trg5_1 BEFORE INSERT
+ on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+
+ --error ER_NOT_SUPPORTED_YET
+ Create trigger trg5_2 BEFORE INSERT
+ on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+ update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg5_1;
+ --error 0, 1360
+ drop trigger trg5_2;
+ delete from tb3 where f121='Test 3.5.7.5/6';
+ --enable_warnings
+
+
+#Section 3.5.7.7 / 3.5.7.8
+# Test case: Ensure that it is not possible to create multiple AFTER INSERT triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.7 / 3.5.7.8:;
+--source include/show_msg.inc
+
+ set @test_var='Before trig 3.5.7.7';
+ Create trigger trg6_1 AFTER INSERT
+ on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+
+ --error ER_NOT_SUPPORTED_YET
+ Create trigger trg6_2 AFTER INSERT
+ on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+ select @test_var;
+ update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+ select @test_var;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg6_1;
+ --error 0, 1360
+ drop trigger trg6_2;
+ delete from tb3 where f121='Test 3.5.7.7/8';
+ --enable_warnings
+
+
+#Section 3.5.7.9 / 3.5.7.10
+# Test case: Ensure that it is not possible to create multiple BEFORE UPDATE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.9/10:;
+--source include/show_msg.inc
+
+ Create trigger trg7_1 BEFORE UPDATE
+ on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+
+ --error ER_NOT_SUPPORTED_YET
+ Create trigger trg7_2 BEFORE UPDATE
+ on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+ update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg7_1;
+ --error 0, 1360
+ drop trigger trg7_2;
+ delete from tb3 where f121='Test 3.5.7.9/10';
+
+#Section 3.5.7.11 / 3.5.7.12
+# Test case: Ensure that it is not possible to create multiple AFTER UPDATE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.11/12:;
+--source include/show_msg.inc
+
+ set @test_var='Before trig 3.5.7.11';
+ Create trigger trg8_1 AFTER UPDATE
+ on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+
+ --error ER_NOT_SUPPORTED_YET
+ Create trigger trg8_2 AFTER UPDATE
+ on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+ select @test_var;
+ Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+ update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.11/12';
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg8_1;
+ --error 0, 1360
+ drop trigger trg8_2;
+ delete from tb3 where f121='Test 3.5.7.11/12';
+
+#Section 3.5.7.13 / 3.5.7.14
+# Test case: Ensure that it is not possible to create multiple BEFORE DELETE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.13/14:;
+--source include/show_msg.inc
+
+ set @test_var=1;
+ Create trigger trg9_1 BEFORE DELETE
+ on tb3 for each row set @test_var=@test_var+1;
+
+ --error ER_NOT_SUPPORTED_YET
+ Create trigger trg9_2 BEFORE DELETE
+ on tb3 for each row set @test_var=@test_var+10;
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.13/14';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.13/14';
+ select @test_var;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg9_1;
+ --error 0, 1360
+ drop trigger trg9_2;
+ delete from tb3 where f121='Test 3.5.7.13/14';
+
+#Section 3.5.7.15 / 3.5.7.16
+# Test case: Ensure that it is not possible to create multiple AFTER DELETE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.15/16:;
+--source include/show_msg.inc
+
+ set @test_var=1;
+ Create trigger trg_3_406010_1 AFTER DELETE
+ on tb3 for each row set @test_var=@test_var+5;
+
+ --error ER_NOT_SUPPORTED_YET
+ Create trigger trg_3_406010_2 AFTER DELETE
+ on tb3 for each row set @test_var=@test_var+50;
+
+ --error 1359
+ Create trigger trg_3_406010_1 AFTER INSERT
+ on tb3 for each row set @test_var=@test_var+1;
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.15/16';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.15/16';
+ select @test_var;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg_3_406010_1;
+ --error 0, 1360
+ drop trigger trg_3_406010_2;
+ delete from tb3 where f121='Test 3.5.7.15/16';
+ --enable_warnings
+
+
+#Section 3.5.7.17
+# Test case: Ensure that it is possible to have a BEFORE INSERT, an AFTER INSERT,
+# a BEFORE UPDATE, an AFTER UPDATE, a BEFORE DELETE, and an AFTER DELETE
+# trigger on the same table; that is, ensure that every persistent base
+# table may be the subject table for exactly six triggers
+let $message= Testcase 3.5.7.17 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+
+# Cleanup section 3.5
+ connection default;
+ drop user test_general@localhost;
+ drop user test_general;
+ drop user test_super@localhost;
+
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_08.inc b/mysql-test/suite/funcs_1/triggers/triggers_08.inc
new file mode 100644
index 00000000000..300080e455d
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_08.inc
@@ -0,0 +1,531 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+# General setup for Trigger tests
+let $message= Testcase: 3.5:;
+--source include/show_msg.inc
+
+--disable_abort_on_error
+
+ create User test_general@localhost;
+ set password for test_general@localhost = password('PWD');
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+
+ create User test_super@localhost;
+ set password for test_super@localhost = password('PWD');
+ grant ALL on *.* to test_super@localhost with grant OPTION;
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (con2_general,localhost,test_general,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (con2_super,localhost,test_super,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+#################################
+####### Section 3.5.8 ###########
+# Checks on Triggered Actions #
+#################################
+
+#Section 3.5.8.1
+# Testcase: Ensure that the triggered action of every trigger always executes
+# correctly and the results in all expected changes made to the database
+let $message= Testcase 3.5.8.1: (implied in previous tests);
+--source include/show_msg.inc
+
+# OBN - FIXME - Missing 3.5.8.1 need to add
+
+#Section 3.5.8.2
+# Testcase: Ensure that the triggered actions of every trigger never results
+# in an unexpected change made to the database.
+let $message= Testcase 3.5.8.2: (implied in previous tests);
+--source include/show_msg.inc
+
+
+#Section 3.5.8.3 / 3.5.8.4
+#Test case: Ensure that the triggered action can any valid SQL statement / set
+# of valid SQL statements, provided the statements are written within
+# a BEGIN/END compound statement construct
+# OBN - At this point the tests focuses on the the INSERT/UPDATE/DELETE SQL statements
+# as there are the most likely to be used in triggers
+let $message= Testcase 3.5.8.3/4:;
+--source include/show_msg.inc
+
+# creating test tables to perform the trigger SQL on
+ connection con2_super;
+ create database db_test;
+ grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+ grant LOCK TABLES on db_test.* to test_general;
+ Use db_test;
+ eval create table t1_i (
+ i120 char ascii not null DEFAULT b'101',
+ i136 smallint zerofill not null DEFAULT 999,
+ i144 int zerofill not null DEFAULT 99999,
+ i163 decimal (63,30)) engine=$engine_type;
+ eval create table t1_u (
+ u120 char ascii not null DEFAULT b'101',
+ u136 smallint zerofill not null DEFAULT 999,
+ u144 int zerofill not null DEFAULT 99999,
+ u163 decimal (63,30)) engine=$engine_type;
+ eval create table t1_d (
+ d120 char ascii not null DEFAULT b'101',
+ d136 smallint zerofill not null DEFAULT 999,
+ d144 int zerofill not null DEFAULT 99999,
+ d163 decimal (63,30)) engine=$engine_type;
+ Insert into t1_u values ('a',111,99999,999.99);
+ Insert into t1_u values ('b',222,99999,999.99);
+ Insert into t1_u values ('c',333,99999,999.99);
+ Insert into t1_u values ('d',222,99999,999.99);
+ Insert into t1_u values ('e',222,99999,999.99);
+ Insert into t1_u values ('f',333,99999,999.99);
+ Insert into t1_d values ('a',111,99999,999.99);
+ Insert into t1_d values ('b',222,99999,999.99);
+ Insert into t1_d values ('c',333,99999,999.99);
+ Insert into t1_d values ('d',444,99999,999.99);
+ Insert into t1_d values ('e',222,99999,999.99);
+ Insert into t1_d values ('f',222,99999,999.99);
+
+let $message= 3.5.8.4 - multiple SQL;
+--source include/show_msg.inc
+# Trigger definition - multiple SQL
+ use test;
+ delimiter //;
+ Create trigger trg1 AFTER INSERT on tb3 for each row
+ BEGIN
+ insert into db_test.t1_i
+ values (new.f120, new.f136, new.f144, new.f163);
+ update db_test.t1_u
+ set u144=new.f144, u163=new.f163
+ where u136=new.f136;
+ delete from db_test.t1_d where d136= new.f136;
+ select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+ where u136= new.f136;
+ END//
+ delimiter ;//
+
+# Test trigger execution - multiple SQL
+ connection con2_general;
+ Use test;
+ set @test_var=0;
+ Insert into tb3 (f120, f122, f136, f144, f163)
+ values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+ Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+ select * from db_test.t1_i;
+ select * from db_test.t1_u;
+ select * from db_test.t1_d;
+ select @test_var;
+
+
+let $message= 3.5.8.4 - single SQL - insert;
+--source include/show_msg.inc
+# Trigger definition - single SQL Insert
+ connection con2_super;
+ Create trigger trg2 BEFORE UPDATE on tb3 for each row
+ insert into db_test.t1_i
+ values (new.f120, new.f136, new.f144, new.f163);
+
+# Trigger exeution - single SQL Insert
+ connection con2_general;
+ update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select * from db_test.t1_i;
+
+
+let $message= 3.5.8.4 - single SQL - update;
+--source include/show_msg.inc
+# Trigger definition - single SQL update
+ connection con2_super;
+ drop trigger trg2;
+ Create trigger trg3 BEFORE UPDATE on tb3 for each row
+ update db_test.t1_u
+ set u120=new.f120
+ where u136=new.f136;
+
+# Trigger exeution - single SQL - update;
+ connection con2_general;
+ update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select * from db_test.t1_u;
+
+
+let $message= 3.5.8.3/4 - single SQL - delete;
+--source include/show_msg.inc
+# Trigger definition - single SQL delete
+ connection con2_super;
+ drop trigger trg3;
+ Create trigger trg4 AFTER UPDATE on tb3 for each row
+ delete from db_test.t1_d where d136= new.f136;
+
+# Trigger exeution - single SQL delete
+ connection con2_general;
+#lock tables tb3 write, db_test.t1_i write, db_test.t1_u write, db_test.t1_d write;
+ update tb3 set f120='D', f136=444,
+ f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+#unlock tables;
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select * from db_test.t1_d;
+
+
+let $message= 3.5.8.3/4 - single SQL - select;
+--source include/show_msg.inc
+# Trigger definition - single SQL select
+ connection con2_super;
+ drop trigger trg4;
+ Create trigger trg5 AFTER UPDATE on tb3 for each row
+ select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+ where u136= new.f136;
+
+# Trigger exeution - single SQL select
+ connection con2_general;
+ set @test_var=0;
+ update tb3 set f120='S', f136=111,
+ f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select @test_var;
+
+#Cleanup
+ connection default;
+ --disable_warnings
+ drop trigger trg1;
+ drop trigger trg5;
+ drop database if exists db_test;
+ delete from tb3 where f122 like 'Test 3.5.8.4%';
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+ --enable_warnings
+
+
+#Section 3.5.8.5 (IF)
+# Test case: Ensure that the stored procedure-specific flow control statement like IF
+# works correctly when it is a part of the triggered action portion of a
+# trigger definition.
+let $message= Testcase 3.5.8.5 (IF):;
+--source include/show_msg.inc
+
+ delimiter //;
+ create trigger trg2 before insert on tb3 for each row
+ BEGIN
+ IF new.f120='1' then
+ set @test_var='one', new.f120='2';
+ ELSEIF new.f120='2' then
+ set @test_var='two', new.f120='3';
+ ELSEIF new.f120='3' then
+ set @test_var='three', new.f120='4';
+ END IF;
+
+ IF (new.f120='4') and (new.f136=10) then
+ set @test_var2='2nd if', new.f120='d';
+ ELSE
+ set @test_var2='2nd else', new.f120='D';
+ END IF;
+ END//
+ delimiter ;//
+
+ set @test_var='Empty', @test_var2=0;
+ Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+ Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+ Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+ Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+
+ delimiter //;
+ --error 1064
+ create trigger trg3 before update on tb3 for each row
+ BEGIN
+ ELSEIF new.f120='2' then
+ END IF;
+ END//
+ --error 0, 1360
+ drop trigger trg3//
+
+ --error 1064
+ create trigger trg4 before update on tb3 for each row
+ BEGIN
+ IF (new.f120='4') and (new.f136=10) then
+ set @test_var2='2nd if', new.f120='d';
+ ELSE
+ set @test_var2='2nd else', new.f120='D';
+ END//
+ delimiter ;//
+ --error 0, 1360
+ drop trigger trg4;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg2;
+ delete from tb3 where f121='Test 3.5.8.5-if';
+ --enable_warnings
+
+
+#Section 3.5.8.5 (CASE)
+# Test case: Ensure that the stored procedure-specific flow control statement
+# like CASE works correctly when it is a part of the triggered action
+# portion of a trigger definition.
+let $message= Testcase 3.5.8.5-case:;
+--source include/show_msg.inc
+
+ delimiter //;
+ create trigger trg3 before insert on tb3 for each row
+ BEGIN
+ SET new.f120=char(ascii(new.f120)-32);
+ CASE
+ when new.f136<100 then set new.f136=new.f136+120;
+ when new.f136<10 then set new.f144=777;
+ when new.f136>100 then set new.f120=new.f136-1;
+ END case;
+ CASE
+ when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ ELSE set @test_var=concat(new.f120, '*');
+ END case;
+ CASE new.f144
+ when 1 then set @test_var=concat(@test_var, 'one');
+ when 2 then set @test_var=concat(@test_var, 'two');
+ when 3 then set @test_var=concat(@test_var, 'three');
+ when 4 then set @test_var=concat(@test_var, 'four');
+ when 5 then set @test_var=concat(@test_var, 'five');
+ when 6 then set @test_var=concat(@test_var, 'six');
+ when 7 then set @test_var=concat(@test_var, 'seven');
+ when 8 then set @test_var=concat(@test_var, 'eight');
+ when 9 then set @test_var=concat(@test_var, 'nine');
+ when 10 then set @test_var=concat(@test_var, 'ten');
+ when 11 then set @test_var=concat(@test_var, 'eleven');
+ when 12 then set @test_var=concat(@test_var, 'twelve');
+ when 13 then set @test_var=concat(@test_var, 'thirteen');
+ when 14 then set @test_var=concat(@test_var, 'fourteen');
+ when 15 then set @test_var=concat(@test_var, 'fifteen');
+ ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+ END case;
+ END//
+ delimiter ;//
+
+ set @test_var='Empty';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('a', 'Test 3.5.8.5-case', 5, 7);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('b', 'Test 3.5.8.5-case', 71,16);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('c', 'Test 3.5.8.5-case', 80,1);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136)
+ values ('d', 'Test 3.5.8.5-case', 152);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('e', 'Test 3.5.8.5-case', 200, 8);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ --error 0, 1339
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('f', 'Test 3.5.8.5-case', 100, 8);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+
+ delimiter //;
+ --error 1064
+ create trigger trg3a before update on tb3 for each row
+ BEGIN
+ CASE
+ when new.f136<100 then set new.f120='p';
+ END//
+ delimiter ;//
+
+ --error 0, 1360
+ drop trigger trg3a;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg3;
+ delete from tb3 where f121='Test 3.5.8.5-case';
+ --enable_warnings
+
+#Section 3.5.8.5 (LOOP)
+# Test case: Ensure that the stored procedure-specific flow control
+# statement like LOOP / LEAVE work correctly when they are
+# part of the triggered action portion of a trigger definition.
+let $message= Testcase 3.5.8.5-loop/leave:;
+--source include/show_msg.inc
+
+ delimiter //;
+ Create trigger trg4 after insert on tb3 for each row
+ BEGIN
+ set @counter=0, @flag='Initial';
+ Label1: loop
+ if new.f136<new.f144 then
+ set @counter='Nothing to loop';
+ leave Label1;
+ else
+ set @counter=@counter+1;
+ if new.f136=new.f144+@counter then
+ set @counter=concat(@counter, ' loops');
+ leave Label1;
+ end if;
+ end if;
+ iterate label1;
+ set @flag='Final';
+ END loop Label1;
+ END//
+ delimiter ;//
+ Insert into tb3 (f122, f136, f144)
+ values ('Test 3.5.8.5-loop', 2, 8);
+ select @counter, @flag;
+ Insert into tb3 (f122, f136, f144)
+ values ('Test 3.5.8.5-loop', 11, 8);
+ select @counter, @flag;
+
+
+ delimiter //;
+
+ --error 1064
+ Create trigger trg4_2 after update on tb3 for each row
+ BEGIN
+ Label1: loop
+ set @counter=@counter+1;
+ END;
+ END//
+ delimiter ;//
+ --error 0, 1360
+ drop trigger trg4_2;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg4;
+ delete from tb3 where f122='Test 3.5.8.5-loop';
+ --enable_warnings
+
+#Section 3.5.8.5 (REPEAT ITERATE)
+#Testcase: Ensure that the stored procedure-specific flow control statements
+# like REPEAT work correctly when they are part of the triggered action
+# portion of a trigger definition.
+let $message= Testcase 3.5.8.5-repeat:;
+--source include/show_msg.inc
+
+ delimiter //;
+ Create trigger trg6 after insert on tb3 for each row
+ BEGIN
+ rp_label: REPEAT
+ SET @counter1 = @counter1 + 1;
+ IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+ END IF;
+ SET @counter2 = @counter2 + 1;
+ UNTIL @counter1> new.f136 END REPEAT rp_label;
+ END//
+ delimiter ;//
+
+ set @counter1= 0, @counter2= 0;
+ Insert into tb3 (f122, f136)
+ values ('Test 3.5.8.5-repeat', 13);
+ select @counter1, @counter2;
+
+
+ delimiter //;
+ --error 1064
+ Create trigger trg6_2 after update on tb3 for each row
+ BEGIN
+ REPEAT
+ SET @counter2 = @counter2 + 1;
+ END//
+ delimiter ;//
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg6;
+ delete from tb3 where f122='Test 3.5.8.5-repeat';
+ --enable_warnings
+
+
+#Section 3.5.8.5 (WHILE)
+# Test case: Ensure that the stored procedure-specific flow control
+# statements WHILE, work correctly when they are part of
+# the triggered action portion of a trigger definition.
+let $message= Testcase 3.5.8.5-while:;
+--source include/show_msg.inc
+
+ delimiter //;
+ Create trigger trg7 after insert on tb3 for each row
+ wl_label: WHILE @counter1 < new.f136 DO
+ SET @counter1 = @counter1 + 1;
+ IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+ END IF;
+ SET @counter2 = @counter2 + 1;
+ END WHILE wl_label//
+ delimiter ;//
+
+ set @counter1= 0, @counter2= 0;
+ Insert into tb3 (f122, f136)
+ values ('Test 3.5.8.5-while', 7);
+ select @counter1, @counter2;
+ delimiter //;
+ --error 1064
+ Create trigger trg7_2 after update on tb3 for each row
+ BEGIN
+ WHILE @counter1 < new.f136
+ SET @counter1 = @counter1 + 1;
+ END//
+ delimiter ;//
+
+#Cleanup
+ --disable_warnings
+ delete from tb3 where f122='Test 3.5.8.5-while';
+ drop trigger trg7;
+ --enable_warnings
+
+#Section 3.5.8.6
+# Test case: Ensure that a trigger definition that includes a CALL to a stored
+# procedure fails, at CREATE TRIGGER time, with an appropriate error
+# message
+# OBN - requirement void since allowed
+# Fails due to Bug 9909 the bug allows the trigger to be created
+# and fails in execution time
+let $message= Testcase 3.5.8.6: (requirement void);
+--source include/show_msg.inc
+
+
+#Section 3.5.8.7
+# Test case: Ensure that a trigger definition that includes a
+# transaction-delimiting statement (e.g. COMMIT,
+# ROLLBACK, START TRANSACTION) fails, at CREATE TRIGGER
+# time, with an appropriate error message.
+# OBN - Fails due to Bug ____
+let $message= Testcase 3.5.8.7: (Disabled as a result of bug _____);
+--source include/show_msg.inc
+
+# --error 1314
+# Create trigger trg9_1 before update on tb3 for each row
+# BEGIN
+# Start transaction;
+# Set new.f120='U';
+# Commit;
+# END;
+
+# --error 1314
+# Create trigger trg9_2 before delete on tb3 for each row
+# BEGIN
+# Start transaction;
+# Set @var2=old.f120;
+# Rollback;
+# END;
+
+
+# Cleanup section 3.5
+ connection default;
+ drop user test_general@localhost;
+ drop user test_general;
+ drop user test_super@localhost;
+
+
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_09.inc b/mysql-test/suite/funcs_1/triggers/triggers_09.inc
new file mode 100644
index 00000000000..4eaaf3e35e2
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_09.inc
@@ -0,0 +1,318 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+
+#################################
+####### Section 3.5.9 ###########
+# Checks on old and new rows #
+#################################
+
+#Section 3.5.9.1
+#Test case: Ensure that every trigger executes its triggered action on each row
+# that meets the conditions stated in the trigger definition.
+#Section 3.5.9.2
+#Testcase: Ensure that a trigger never executes its triggered action on any row
+# that doesn't meet the conditions stated in the trigger definition.
+let $message= Testcase 3.5.9.1/2:;
+--source include/show_msg.inc
+
+ Create trigger trg1 BEFORE UPDATE on tb3 for each row
+ set new.f142 = 94087, @counter=@counter+1;
+--disable_query_log
+ select count(*) as TotalRows from tb3;
+ select count(*) as Affected from tb3 where f130<100;
+ select count(*) as NotAffected from tb3 where f130>=100;
+ select count(*) as NewValuew from tb3 where f142=94087;
+--enable_query_log
+ set @counter=0;
+ Update tb3 Set f142='1' where f130<100;
+ select count(*) as ExpectedChanged, @counter as TrigCounter
+ from tb3 where f142=94087;
+ select count(*) as ExpectedNotChange from tb3
+ where f130<100 and f142<>94087;
+ select count(*) as NonExpectedChanged from tb3
+ where f130>=130 and f142=94087;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg1;
+ --enable_warnings
+
+
+#Section 3.5.9.3
+#Test case: Ensure that a reference to OLD.<column name> always correctly refers
+# to the values of the specified column of the subject table before a
+# data row is updated or deleted.
+let $message= Testcase 3.5.9.3:;
+--source include/show_msg.inc
+
+ Create trigger trg2_a before update on tb3 for each row
+ set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+ @tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+ @tr_var_b4_163=old.f163;
+
+ Create trigger trg2_b after update on tb3 for each row
+ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+ @tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+ @tr_var_af_163=old.f163;
+
+ Create trigger trg2_c before delete on tb3 for each row
+ set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+ @tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+ @tr_var_b4_163=old.f163;
+
+ Create trigger trg2_d after delete on tb3 for each row
+ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+ @tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+ @tr_var_af_163=old.f163;
+
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+--enable_query_log
+
+ Insert into tb3 (f122, f136, f163)
+ values ('Test 3.5.9.3', 7, 123.17);
+ Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+
+ select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+--enable_query_log
+
+ delete from tb3 where f122='Test 3.5.9.3';
+
+ select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+#Cleanup
+ --disable_warnings
+ drop trigger trg2_a;
+ drop trigger trg2_b;
+ drop trigger trg2_c;
+ drop trigger trg2_d;
+ --enable_warnings
+
+#Section 3.5.9.4
+#Test case: Ensure that a reference to NEW.<column name> always correctly refers
+# to the values of the specified column of the subject table after an
+# existing data row has been updated or a new data row has been inserted.
+let $message= Testcase 3.5.9.4:;
+--source include/show_msg.inc
+
+ Create trigger trg3_a before insert on tb3 for each row
+ set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+ @tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+ @tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+
+ Create trigger trg3_b after insert on tb3 for each row
+ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+ @tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+ @tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+
+ Create trigger trg3_c before update on tb3 for each row
+ set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+ @tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+ @tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+
+ Create trigger trg3_d after update on tb3 for each row
+ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+ @tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+ @tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+--enable_query_log
+
+ Insert into tb3 (f122, f136, f151, f163)
+ values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+
+ select f118, f121, f122, f136, f151, f163 from tb3
+ where f122 like 'Test 3.5.9.4%';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+--enable_query_log
+
+ Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+ where f122='Test 3.5.9.4';
+
+ select f118, f121, f122, f136, f151, f163 from tb3
+ where f122 like 'Test 3.5.9.4-trig';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+#Cleanup
+ --disable_warnings
+ drop trigger trg3_a;
+ drop trigger trg3_b;
+ drop trigger trg3_c;
+ drop trigger trg3_d;
+ delete from tb3 where f122='Test 3.5.9.4-trig';
+ --enable_warnings
+
+
+#Section 3.5.9.5
+# Test case: Ensure that the definition of an INSERT trigger can include a
+# reference to NEW. <Column name>.
+let $message= Testcase 3.5.9.5: (implied in previous tests);
+--source include/show_msg.inc
+
+#Section 3.5.9.6
+# Test case: Ensure that the definition of an INSERT trigger cannot include
+# a reference to OLD. <Column name>.
+let $message= Testcase 3.5.9.6:;
+--source include/show_msg.inc
+
+ --error 1363
+ create trigger trg4a before insert on tb3 for each row
+ set @temp1= old.f120;
+ --error 1362
+ create trigger trg4b after insert on tb3 for each row
+ set old.f120= 'test';
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg4a;
+ --error 0, 1360
+ drop trigger trg4b;
+ --enable_warnings
+
+
+#Section 3.5.9.7
+# Test case: Ensure that the definition of an UPDATE trigger can include a
+# reference to NEW. <Column name>.
+let $message= Testcase 3.5.9.7: (implied in previous tests);
+--source include/show_msg.inc
+
+#Section 3.5.9.8
+# Test case: Ensure that the definition of an UPDATE trigger cannot include a
+# reference to OLD. <Column name>.
+let $message= Testcase 3.5.9.8: (implied in previous tests);
+--source include/show_msg.inc
+
+#Section 3.5.9.9
+# Test case: Ensure that the definition of a DELETE trigger cannot include a
+# reference to NEW.<column name>.
+let $message= Testcase 3.5.9.9:;
+--source include/show_msg.inc
+
+ --error 1363
+ create trigger trg5a before DELETE on tb3 for each row
+ set @temp1=new.f122;
+ --error 1363
+ create trigger trg5b after DELETE on tb3 for each row
+ set new.f122='test';
+let $message= The above returns the wrong error, should be error 1362 (Bug 11648)
+--source include/show_msg.inc
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg5a;
+ --error 0, 1360
+ drop trigger trg5b;
+ --enable_warnings
+
+
+#Section 3.5.9.10
+# Test case: Ensure that the definition of a DELETE trigger can include a reference
+# to OLD.<column name>.
+let $message= Testcase 3.5.9.10: (implied in previous tests);
+--source include/show_msg.inc
+
+
+#Section 3.5.9.11
+# Testcase: Ensure that trigger definition that includes a referance to
+# NEW.<colunm name> fails with an appropriate error message,
+# at CREATE TRIGGER time, if the trigger event in not INSERT or UPDATE
+let $message= Testcase 3.5.9.11: covered by 3.5.9.9;
+--source include/show_msg.inc
+
+
+#Section 3.5.9.12
+# Testcase: Ensure that trigger definition that includes a referance to
+# OLD.<column name> fails with an appropriate error message, at
+# CREATE TRIGGER time, if the trigger event is not DELETE or UPDATE
+let $message= Testcase 3.5.9.12: covered by 3.5.9.6;
+--source include/show_msg.inc
+
+
+#Section 3.5.9.13
+# Test case: Ensure that all references to OLD. <Column name> are read-only,
+# that is, that they cannot be used to modify a data row.
+let $message= Testcase 3.5.9.13:;
+--source include/show_msg.inc
+
+ --error 1362
+ create trigger trg6a before UPDATE on tb3 for each row
+ set old.f118='C', new.f118='U';
+ --error 1362
+ create trigger trg6b after INSERT on tb3 for each row
+ set old.f136=163, new.f118='U';
+ --error 1362
+ create trigger trg6c after UPDATE on tb3 for each row
+ set old.f136=NULL;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg6a;
+ --error 0, 1360
+ drop trigger trg6b;
+ --error 0, 1360
+ drop trigger trg6c;
+ --enable_warnings
+
+
+#Section 3.5.9.14
+# Test case: Ensure that all references to NEW. <Column name> may be used both to
+# read a data row and to modify a data row
+let $message= Testcase 3.5.9.14: (implied in previous tests);
+--source include/show_msg.inc
+
+
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc b/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc
new file mode 100644
index 00000000000..534c4efaa86
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc
@@ -0,0 +1,401 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+--disable_abort_on_error
+
+##############################################
+################ Section 3.5.10 #################
+# Check on Trigger Activation
+##############################################
+#Section 3.5.10.1
+# Test case: Ensure that every trigger that should be activated by
+# every possible type of implicit insertion into its subject
+# table (INSERT into a view based on the subject table) is
+# indeed activated correctly
+#Section 3.5.10.2
+# Test case: Ensure that every trigger that should be activated by every
+# possible type of implicit insertion into its subject table
+# (UPDATE into a view based on the subject table) is indeed
+# activated correctly
+#Section 3.5.10.3
+# Test case: Ensure that every trigger that should be activated by every
+# possible type of implicit insertion into its subject table
+# (DELETE from a view based on the subject table) is indeed
+# activated correctly
+let $message= Testcase 3.5.10.1/2/3:;
+--source include/show_msg.inc
+
+ Create view vw11 as select * from tb3
+ where f122 like 'Test 3.5.10.1/2/3%';
+ Create trigger trg1a before insert on tb3
+ for each row set new.f163=111.11;
+ Create trigger trg1b after insert on tb3
+ for each row set @test_var='After Insert';
+ Create trigger trg1c before update on tb3
+ for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+ Create trigger trg1d after update on tb3
+ for each row set @test_var='After Update';
+ Create trigger trg1e before delete on tb3
+ for each row set @test_var=5;
+ Create trigger trg1f after delete on tb3
+ for each row set @test_var= 2* @test_var+7;
+
+#Section 3.5.10.1
+ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+ Insert into vw11 (f122, f151) values ('Not in View', 3);
+ select f121, f122, f151, f163
+ from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+ select f121, f122, f151, f163 from vw11;
+ select f121, f122, f151, f163
+ from tb3 where f122 like 'Not in View';
+
+#Section 3.5.10.2
+ Update vw11 set f163=1;
+ select f121, f122, f151, f163 from tb3
+ where f122 like 'Test 3.5.10.1/2/3%';
+ select f121, f122, f151, f163 from vw11;
+
+#Section 3.5.10.3
+ set @test_var=0;
+ Select @test_var as 'before delete';
+ delete from vw11 where f151=1;
+ select f121, f122, f151, f163 from tb3
+ where f122 like 'Test 3.5.10.1/2/3%';
+ select f121, f122, f151, f163 from vw11;
+ Select @test_var as 'after delete';
+
+#Cleanup
+ --disable_warnings
+ drop view vw11;
+ drop trigger trg1a;
+ drop trigger trg1b;
+ drop trigger trg1c;
+ drop trigger trg1d;
+ drop trigger trg1e;
+ drop trigger trg1f;
+ delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+ --enable_warnings
+
+
+#Section 3.5.10.4
+# Test case: Ensure that every trigger that should be activated by every
+# possible type of implicit insertion into its subject table
+# (LOAD into the subject table) is indeed activated correctly
+let $message= Testcase 3.5.10.4:;
+--source include/show_msg.inc
+
+ eval create table tb_load (f1 int, f2 char(25),f3 int) engine=$engine_type;
+ Create trigger trg4 before insert on tb_load
+ for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+
+ set @counter= 0;
+ select @counter as 'Rows Loaded Before';
+ --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+ eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+
+ select @counter as 'Rows Loaded After';
+ Select * from tb_load limit 10;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg4;
+ drop table tb_load;
+ --enable_warnings
+
+
+#Section 3.5.10.5
+# Testcase: Ensure that every trigger that should be activated by every possible
+# type of implicit update of its subject table (e.g.a FOREIGN KEY SET
+# DEFAULT action or an UPDATE of a view based on the subject table) is
+# indeed activated correctly
+let $message= Testcase 3.5.10.5: (implemented in trig_frkey.test);
+--source include/show_msg.inc
+
+
+#Section 3.5.10.6
+# Testcase: Ensure that every trigger that should be activated by every possible
+# type of implicit deletion from its subject table (e.g.a FOREIGN KEY
+# CASCADE action or a DELETE from a view based on the subject table) is
+# indeed activated correctly
+let $message= Testcase 3.5.10.6: (implemented in trig_frkey.test);
+--source include/show_msg.inc
+
+#Section 3.5.10.extra
+# Testcase: Ensure that every trigger that should be activated by every possible
+# type of implicit deletion from its subject table (e.g. an action performed
+# on the subject table from a stored procedure is indeed activated correctly
+let $message= Testcase 3.5.10.extra:;
+--source include/show_msg.inc
+
+ eval create table t1_sp (var136 tinyint, var151 decimal) engine=$engine_type;
+
+ create trigger trg before insert on t1_sp
+ for each row set @counter=@counter+1;
+ # declare continue handler for sqlstate '01000' set done = 1;
+
+ delimiter //;
+ create procedure trig_sp()
+ begin
+ declare done int default 0;
+ declare var151 decimal;
+ declare var136 tinyint;
+ declare cur1 cursor for select f136, f151 from tb3;
+ declare continue handler for sqlstate '01000' set done = 1;
+ open cur1;
+ fetch cur1 into var136, var151;
+ wl_loop: WHILE NOT done DO
+ insert into t1_sp values (var136, var151);
+ fetch cur1 into var136, var151;
+ END WHILE wl_loop;
+ close cur1;
+ end//
+ delimiter ;//
+
+ set @counter=0;
+ select @counter;
+ --error 1329
+ call trig_sp();
+ select @counter;
+ select count(*) from tb3;
+ select count(*) from t1_sp;
+
+#Cleanup
+ --disable_warnings
+ drop procedure trig_sp;
+ drop trigger trg;
+ drop table t1_sp;
+ --enable_warnings
+
+##################################
+########## Section 3.5.11 ########
+# Check on Trigger Performance #
+##################################
+#Section 3.5.11.1
+# Testcase: Ensure that a set of complicated, interlocking triggers that are activated
+# by multiple trigger events on no fewer than 50 different tables with at least
+# 500,000 rows each, all work correctly, return the correct results, and have
+# the correct effects on the database. It is expected that the Services Provider
+# will use its own skills and experience in database testing to devise tables and
+# triggers that fulfill this requirement.
+let $message= Testcase 3.5.11.1 (implemented in trig_perf.test);
+--source include/show_msg.inc
+
+
+##########################################
+# Other Scenasrios (not in requirements) #
+##########################################
+# Testcase: y.y.y.2:
+# Checking for triggers starting triggers (no direct requirement)
+let $message= Testcase y.y.y.2: Check for triggers starting triggers;
+--source include/show_msg.inc
+
+ use test;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2_1;
+ drop table if exists t2_2;
+ drop table if exists t2_3;
+ drop table if exists t2_4;
+ drop table if exists t3;
+ --enable_warnings
+
+ eval create table t1 (f1 integer) engine=$engine_type;
+ eval create table t2_1 (f1 integer) engine=$engine_type;
+ eval create table t2_2 (f1 integer) engine=$engine_type;
+ eval create table t2_3 (f1 integer) engine=$engine_type;
+ eval create table t2_4 (f1 integer) engine=$engine_type;
+ eval create table t3 (f1 integer) engine=$engine_type;
+
+ insert into t1 values (1);
+ delimiter //;
+ create trigger tr1 after insert on t1 for each row
+ BEGIN
+ insert into t2_1 (f1) values (new.f1+1);
+ insert into t2_2 (f1) values (new.f1+1);
+ insert into t2_3 (f1) values (new.f1+1);
+ insert into t2_4 (f1) values (new.f1+1);
+ END//
+ delimiter ;//
+
+ create trigger tr2_1 after insert on t2_1 for each row
+ insert into t3 (f1) values (new.f1+10);
+ create trigger tr2_2 after insert on t2_2 for each row
+ insert into t3 (f1) values (new.f1+100);
+ create trigger tr2_3 after insert on t2_3 for each row
+ insert into t3 (f1) values (new.f1+1000);
+ create trigger tr2_4 after insert on t2_4 for each row
+ insert into t3 (f1) values (new.f1+10000);
+
+#lock tables t1 write, t2_1 write, t2_2 write, t2_3 write, t2_4 write, t3 write;
+ insert into t1 values (1);
+#unlock tables;
+ select * from t3;
+
+#Cleanup
+ --disable_warnings
+ drop trigger tr1;
+ drop trigger tr2_1;
+ drop trigger tr2_2;
+ drop trigger tr2_3;
+ drop trigger tr2_4;
+ drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+ --enable_warnings
+
+# Testcase: y.y.y.3:
+# Checking for circular trigger definitions
+let $message= Testcase y.y.y.3: Circular trigger reference;
+--source include/show_msg.inc
+ use test;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ drop table if exists t3;
+ drop table if exists t4;
+ --enable_warnings
+ eval create table t1 (f1 integer) engine = $engine_type;
+ eval create table t2 (f2 integer) engine = $engine_type;
+ eval create table t3 (f3 integer) engine = $engine_type;
+ eval create table t4 (f4 integer) engine = $engine_type;
+
+ insert into t1 values (0);
+ create trigger tr1 after insert on t1
+ for each row insert into t2 (f2) values (new.f1+1);
+ create trigger tr2 after insert on t2
+ for each row insert into t3 (f3) values (new.f2+1);
+ create trigger tr3 after insert on t3
+ for each row insert into t4 (f4) values (new.f3+1);
+ create trigger tr4 after insert on t4
+ for each row insert into t1 (f1) values (new.f4+1);
+
+ # OBN See bug 11896
+ --error 1442
+ insert into t1 values (1);
+ select * from t1;
+ select * from t2;
+ select * from t3;
+ select * from t4;
+
+#Cleanup
+ --disable_warnings
+ drop trigger tr1;
+ drop trigger tr2;
+ drop trigger tr3;
+ drop trigger tr4;
+ drop table t1;
+ drop table t2;
+ drop table t3;
+ drop table t4;
+ --enable_warnings
+
+
+#Section y.y.y.4
+# Testcase: create recursive trigger/storedprocedures conditions
+let $message= Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889);
+--source include/show_msg.inc
+
+set @sql_mode='traditional';
+ eval create table t1_sp (
+ count integer,
+ var136 tinyint,
+ var151 decimal) engine=$engine_type;
+
+ delimiter //;
+ create procedure trig_sp()
+ begin
+ declare done int default 0;
+ declare var151 decimal;
+ declare var136 tinyint;
+ declare cur1 cursor for select f136, f151 from tb3;
+ declare continue handler for sqlstate '01000' set done = 1;
+ set @counter= @counter+1;
+ open cur1;
+ fetch cur1 into var136, var151;
+ wl_loop: WHILE NOT done DO
+ insert into t1_sp values (@counter, var136, var151);
+ fetch cur1 into var136, var151;
+ END WHILE wl_loop;
+ close cur1;
+ end//
+ delimiter ;//
+
+ create trigger trg before insert on t1_sp
+ for each row call trig_sp();
+
+ set @counter=0;
+ select @counter;
+ --error 1456
+ call trig_sp();
+ select @counter;
+ select count(*) from tb3;
+ select count(*) from t1_sp;
+
+ # check recursion will not work here:
+ set @@max_sp_recursion_depth= 10;
+ set @counter=0;
+ select @counter;
+ --error 1442
+ call trig_sp();
+ select @counter;
+ select count(*) from tb3;
+ select count(*) from t1_sp;
+
+#Cleanup
+ --disable_warnings
+ drop procedure trig_sp;
+ drop trigger trg;
+ drop table t1_sp;
+ --enable_warnings
+
+
+# Testcase: y.y.y.5:
+# Checking rollback of nested trigger definitions
+let $message= Testcase y.y.y.5: Roleback of nested trigger references;
+--source include/show_msg.inc
+
+ set @@sql_mode='traditional';
+ use test;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ drop table if exists t3;
+ drop table if exists t4;
+ --enable_warnings
+ eval create table t1 (f1 integer) engine = $engine_type;
+ eval create table t2 (f2 integer) engine = $engine_type;
+ eval create table t3 (f3 integer) engine = $engine_type;
+ eval create table t4 (f4 tinyint) engine = $engine_type;
+ show create table t1;
+ insert into t1 values (1);
+ create trigger tr1 after insert on t1
+ for each row insert into t2 (f2) values (new.f1+1);
+ create trigger tr2 after insert on t2
+ for each row insert into t3 (f3) values (new.f2+1);
+ create trigger tr3 after insert on t3
+ for each row insert into t4 (f4) values (new.f3+1000);
+
+#lock tables t1 write, t2 write, t3 write, t4 write;
+
+ set autocommit=0;
+ start transaction;
+ --error 1264
+ insert into t1 values (1);
+ commit;
+ select * from t1;
+ select * from t2;
+ select * from t3;
+#unlock tables;
+#Cleanup
+ --disable_warnings
+ drop trigger tr1;
+ drop trigger tr2;
+ drop trigger tr3;
+ drop table t1;
+ drop table t2;
+ drop table t3;
+ drop table t4;
+ --enable_warnings
+
diff --git a/mysql-test/suite/funcs_1/triggers/triggers_master.test b/mysql-test/suite/funcs_1/triggers/triggers_master.test
new file mode 100644
index 00000000000..0f6d4ff555f
--- /dev/null
+++ b/mysql-test/suite/funcs_1/triggers/triggers_master.test
@@ -0,0 +1,2818 @@
+#======================================================================
+#
+# Trigger Tests
+# (test case numbering refer to requirement document TP v1.1)
+#======================================================================
+
+# OBM - ToDo
+############
+# 1. Information Schema Trigger Table
+# 2. Performace
+###############################################
+
+# General setup for Trigger tests
+let $message= Testcase: 3.5:;
+--source include/show_msg.inc
+
+--disable_abort_on_error
+
+ create User test_general@localhost;
+ set password for test_general@localhost = password('PWD');
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
+
+ create User test_super@localhost;
+ set password for test_super@localhost = password('PWD');
+ grant ALL on *.* to test_super@localhost with grant OPTION;
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (con_general,localhost,test_general,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (con_super,localhost,test_super,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+
+#####################################################
+################# Section 3.5.1 #####################
+# Syntax checks for CREATE TRIGGER and DROP TRIGGER #
+#####################################################
+
+#Section 3.5.1.1
+# Testcase: Ensure that all clauses that should be supported are supported.
+let $message= Testcase: 3.5.1.1:;
+--source include/show_msg.inc
+# OBN - This test case tests basic trigger definition and execution
+# of INSERT/UPDATE/DELETE actions and BEFORE/AFTER timings.
+# As such it covers the equirements in sections 3.5.6.1, 3.5.6.2,
+# 3.5.6.4, 3.5.6.5, 3.5.7.1, 3.5.7.2, 3.5.7.3, 3.5.7.17 below.
+# - Note currently as a result of limitations with locking tables in
+# triggers, a specifc lockingof the tables is done.
+# Once fixed, the locking and alias referances should be removed
+
+use test;
+# Trigger Definition
+ Create trigger trg1_1 BEFORE INSERT
+ on tb3 for each row set @test_before = 2, new.f142 = @test_before;
+ Create trigger trg1_2 AFTER INSERT
+ on tb3 for each row set @test_after = 6;
+ Create trigger trg1_4 BEFORE UPDATE
+ on tb3 for each row set @test_before = 27,
+ new.f142 = @test_before,
+ new.f122 = 'Before Update Trigger';
+ Create trigger trg1_3 AFTER UPDATE
+ on tb3 for each row set @test_after = '15';
+ Create trigger trg1_5 BEFORE DELETE on tb3 for each row
+ select count(*) into @test_before from tb3 as tr_tb3
+ where f121 = 'Test 3.5.1.1';
+ Create trigger trg1_6 AFTER DELETE on tb3 for each row
+ select count(*) into @test_after from tb3 as tr_tb3
+ where f121 = 'Test 3.5.1.1';
+# Trigger Execution Insert (before and after)
+ set @test_before = 1;
+ set @test_after = 5;
+ select @test_before, @test_after;
+ Insert into tb3 (f121, f122, f142, f144, f134)
+ values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+
+# Trigger Execution Update (before and after)
+ set @test_before = 18;
+ set @test_after = 8;
+ select @test_before, @test_after;
+ Update tb3 set tb3.f122 = 'Update',
+ tb3.f142 = @test_before,
+ tb3.f144 = @test_after
+ where tb3.f121 = 'Test 3.5.1.1';
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+
+# Trigger Execution Delete (before and after)
+ Insert into tb3 (f121, f122, f142, f144, f134)
+ values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
+ set @test_before = 0;
+ set @test_after = 0;
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+ Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
+ select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
+ select @test_before, @test_after;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg1_1;
+ --error 0, 1360
+ drop trigger trg1_2;
+ --error 0, 1360
+ drop trigger trg1_3;
+ --error 0, 1360
+ drop trigger trg1_4;
+ --error 0, 1360
+ drop trigger trg1_5;
+ --error 0, 1360
+ drop trigger trg1_6;
+ --enable_warnings
+ delete from tb3 where f121='Test 3.5.1.1';
+ --enable_warnings
+
+#Section 3.5.1.2
+# Testcase: Ensure that all clauses that should not be supported are disallowed
+# with an appropriate error message.
+let $message= Testcase: 3.5.1.2:;
+--source include/show_msg.inc
+
+ --error 1064
+ Create trigger trg_1 after insert
+ on tb3 for each statement set @x= 1;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg_1;
+ --enable_warnings
+
+
+#Section 3.5.1.3
+# Testcase: Ensure that all supported clauses are supported only in the correct order.
+let $message= Testcase 3.5.1.3:;
+--source include/show_msg.inc
+ --error 1064
+ CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
+
+ --error 1064
+ CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
+
+ --error 1064
+ CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
+
+ --error 1064
+ CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test';
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg3_1;
+ --error 0, 1360
+ drop trigger trg3_2;
+ --error 0, 1360
+ drop trigger trg3_3;
+ --error 0, 1360
+ drop trigger trg3_4;
+ --error 0, 1360
+ drop trigger trg3_5;
+ --enable_warnings
+
+
+#Section 3.5.1.4
+# Testcase: Ensure that an appropriate error message is returned if a clause
+# is out-of-order in an SQL statement.
+# OBN - FIXME - Missing 3.5.1.4 need to add
+
+#Section 3.5.1.5
+# Testcase: Ensure that all clauses that are defined to be mandatory are indeed
+# required to be mandatory by the MySQL server and tools
+let $message= Testcase: 3.5.1.5:;
+--source include/show_msg.inc
+
+ --error 1064
+ CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
+
+ --error 1064
+ CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
+
+ --error 1064
+ CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
+
+ --error 1064
+ CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
+
+ --error 1064
+ CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
+
+ --error 1064
+ CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg4_1;
+ --error 0, 1360
+ drop trigger trg4_2;
+ --error 0, 1360
+ drop trigger trg4_3;
+ --error 0, 1360
+ drop trigger trg4_4;
+ --error 0, 1360
+ drop trigger trg4_5;
+ --error 0, 1360
+ drop trigger trg4_6;
+ --enable_warnings
+
+#Section 3.5.1.6
+# Testcase: Ensure that any clauses that are defined to be optional are indeed
+# trated as optional by MySQL server and tools
+let $message= Testcase 3.5.1.6: - Need to fix;
+--source include/show_msg.inc
+# OBN - FIXME - Missing 3.5.1.6 need to add
+
+#Section 3.5.1.7
+# Testcase: Ensure that all valid, fully-qualified, and non-qualified,
+# trigger names are accepted, at creation time.
+let $message= Testcase 3.5.1.7: - need to fix;
+--source include/show_msg.inc
+
+ drop table if exists t1;
+ eval create table t1 (f1 int, f2 char(25),f3 int) engine=$engine_type;
+ CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
+ for each row set new.f3 = '14';
+ CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
+
+ insert into t1 (f2) values ('insert 3.5.1.7');
+ select * from t1;
+ update t1 set f2='update 3.5.1.7';
+ select * from t1;
+ select trigger_name from information_schema.triggers;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg5_1;
+ # The above trigger should be dropped since the name was trimmed.
+ drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
+ drop table t1;
+
+#Section 3.5.1.8
+# Testcase: Ensure that any invalid trigger name is never accepted, and that an
+# appropriate error message is returned when the name is rejected.
+let $message= Testcase 3.5.1.8:;
+--source include/show_msg.inc
+
+ --error 1064
+ CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1064
+ CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
+
+ --error 1435
+ CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
+ for each row set new.f120 ='X';
+
+ --disable_warnings
+ drop database if exists trig_db;
+ --enable_warnings
+ create database trig_db;
+ use trig_db;
+ eval create table t1 (f1 integer) engine = $engine_type;
+
+ # Can't create a trigger in a different database
+ use test;
+ --error 1435
+ CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
+ for each row set @ret_trg6_2 = 5;
+
+ # Can't create a trigger refrencing a table in a different db
+ use trig_db;
+ --error 1435
+ CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
+ for each row set @ret_trg6_3 = 18;
+
+ use test;
+
+#Cleanup
+ --disable_warnings
+ drop database trig_db;
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --error 0, 1360
+ drop trigger trg6_1;
+ --error 0, 1360
+ drop trigger trg6_3;
+ --enable_warnings
+
+#Section 3.5.1.9
+#Testcase: Ensure that a reference to a non-existent trigger is rejected with
+# an appropriate error message.
+let $message= Testcase 3.5.1.9:(cannot be inplemented at this point);
+--source include/show_msg.inc
+
+
+#Section 3.5.1.10
+#Testcase: Ensure that it is not possible to create two triggers with the same name on
+# the same table
+let $message= Testcase 3.5.1.10:;
+--source include/show_msg.inc
+
+ CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
+
+ --error 1359
+ CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg7_1;
+ --enable_warnings
+
+
+#Section 3.5.1.?
+# Testcase: Ensure that it is not possible to create two or more triggers with
+# the same name, provided each is associated with a different table.
+let $message= Testcase 3.5.1.?:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ --enable_warnings
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ eval create table t2 (f1 char(50), f2 integer) engine = $engine_type;
+
+ create trigger trig before insert on t1
+ for each row set new.f1 ='trig t1';
+
+ --error 1359
+ create trigger trig before update on t2
+ for each row set new.f1 ='trig t2';
+
+ insert into t1 value ('insert to t1',1);
+ select * from t1;
+ update t1 set f1='update to t1';
+ select * from t1;
+ insert into t2 value ('insert to t2',2);
+ update t2 set f1='update to t1';
+ select * from t2;
+
+#Cleanup
+ --disable_warnings
+ drop table t1;
+ drop table t2;
+ --error 0, 1360
+ drop trigger trig;
+ --enable_warnings
+
+
+#Section 3.5.1.11
+# Testcase: Ensure that it is possible to create two or more triggers with
+# the same name, provided each resides in a different database
+let $message= Testcase 3.5.1.11:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ drop database if exists trig_db1;
+ drop database if exists trig_db2;
+ drop database if exists trig_db3;
+ --enable_warnings
+ create database trig_db1;
+ create database trig_db2;
+ create database trig_db3;
+ use trig_db1;
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig before insert on t1
+ for each row set new.f1 ='trig1', @test_var1='trig1';
+ use trig_db2;
+ eval create table t2 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig before insert on t2
+ for each row set new.f1 ='trig2', @test_var2='trig2';
+ use trig_db3;
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig before insert on t1
+ for each row set new.f1 ='trig3', @test_var3='trig3';
+
+ set @test_var1= '', @test_var2= '', @test_var3= '';
+ use trig_db1;
+ insert into t1 (f1,f2) values ('insert to db1 t1',1);
+ insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
+ insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
+ insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
+ select @test_var1, @test_var2, @test_var3;
+ select * from t1;
+ select * from trig_db2.t2;
+ select * from trig_db3.t1;
+ select * from t1;
+ use test;
+
+#Cleanup
+ --disable_warnings
+ drop database trig_db1;
+ drop database trig_db2;
+ drop database trig_db3;
+ --enable_warnings
+
+###########################################
+################ Section 3.5.2 ############
+# Check for the global nature of Triggers #
+###########################################
+
+#Section 3.5.2.1
+# Test case: Ensure that if a trigger created without a qualifying database
+# name belongs to the database in use at creation time.
+#Section 3.5.2.2
+# Test case: Ensure that if a trigger created with a qualifying database name
+# belongs to the database specified.
+#Section 3.5.2.3
+# Test case: Ensure that if a trigger created with a qualifying database name
+# does not belong to the database in use at creation time unless
+# the qualifying database name identifies the database that is
+# also in use at creation time.
+let $message= Testcase 3.5.2.1/2/3:;
+--source include/show_msg.inc
+
+
+ --disable_warnings
+ drop database if exists trig_db1;
+ drop database if exists trig_db2;
+ --enable_warnings
+ create database trig_db1;
+ create database trig_db2;
+ use trig_db1;
+ eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
+ eval create table trig_db2.t1 (f1 char(50), f2 integer) engine = $engine_type;
+ create trigger trig1_b before insert on t1
+ for each row set @test_var1='trig1_b';
+ create trigger trig_db1.trig1_a after insert on t1
+ for each row set @test_var2='trig1_a';
+ create trigger trig_db2.trig2 before insert on trig_db2.t1
+ for each row set @test_var3='trig2';
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers;
+
+ set @test_var1= '', @test_var2= '', @test_var3= '';
+ insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
+ insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
+ select @test_var1, @test_var2, @test_var3;
+
+#Cleanup
+ --disable_warnings
+ drop database trig_db1;
+ drop database trig_db2;
+
+###########################################
+################ Section 3.5.3 ############
+# Check for the global nature of Triggers #
+###########################################
+
+# General setup to be used in all testcases of 3.5.3
+let $message= Testcase 3.5.3:;
+--source include/show_msg.inc
+
+ --disable_warnings
+ drop database if exists priv_db;
+ --enable_warnings
+ create database priv_db;
+ use priv_db;
+ create table t1 (f1 char(20));
+
+ create User test_noprivs@localhost;
+ set password for test_noprivs@localhost = password('PWD');
+
+ create User test_yesprivs@localhost;
+ set password for test_yesprivs@localhost = password('PWD');
+
+#Section 3.5.3.1 / 3.5.3.2
+# Test case: Ensure SUPER privilege is required to create a trigger
+#Section 3.5.3.3 / 3.5.3.4
+# Test case: Ensure that root always has the SUPER privilege.
+# OMR - No need to test this since SUPER priv is an existing one and not related
+# or added for triggers (TP 2005-06-06)
+#Section 3.5.3.5 / 3.5.3.6
+# Test case: Ensure that the SUPER privilege is required to drop a trigger.
+let $message= Testcase 3.5.3.2/6:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant ALL on *.* to test_noprivs@localhost;
+ revoke SUPER on *.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+# Adding the minimal priv to be able to set to the db
+ grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+let $message= Testcase 3.5.3.2:;
+--source include/show_msg.inc
+
+ connection no_privs;
+ select current_user;
+ use priv_db;
+
+ --error 1227
+ create trigger trg1_1 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.2_1-no';
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.2-no');
+ select f1 from t1;
+
+ connection yes_privs;
+ select current_user;
+ use priv_db;
+
+ create trigger trg1_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.2_2-yes';
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.2-yes');
+ select f1 from t1;
+
+let $message= Testcase 3.5.3.6:;
+--source include/show_msg.inc
+
+ connection no_privs;
+ use priv_db;
+
+ --error 1227
+ drop trigger trg1_2;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.6-yes');
+ select f1 from t1;
+
+ connection yes_privs;
+ use priv_db;
+
+ drop trigger trg1_2;
+
+ connection default;
+ use priv_db;
+ insert into t1 (f1) values ('insert 3.5.3.6-no');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ connection default;
+ --error 0, 1360
+ drop trigger trg1_2;
+ disconnect no_privs;
+ disconnect yes_privs;
+ --enable_warnings
+
+
+#Section 3.5.3.7
+# Test case: Ensure that use of the construct "SET NEW. <column name> = <value>"
+# fails at CREATE TRIGGER time, if the current user does not have the
+# UPDATE privilege on the column specified
+# Note: As a result of bug 8884 the triggers are actually created.
+# Disabled because of bug 8884
+
+# --- 3.5.3.7a - Privs set on a global level
+let $message=Testcase 3.5.3.7a:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant ALL on *.* to test_noprivs@localhost;
+ revoke UPDATE on *.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER, UPDATE on *.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424a,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424a,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+
+ connection no_privs_424a;
+ select current_user;
+ use priv_db;
+ show grants;
+ select f1 from t1;
+
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4a_1 before INSERT on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1a';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1a');
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4a_1;
+
+ connection yes_privs_424a;
+ use priv_db;
+ select current_user;
+ show grants;
+ create trigger trg4a_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2a';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-2b');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg4a_2;
+ disconnect no_privs_424a;
+ disconnect yes_privs_424a;
+ --enable_warnings
+
+# --- 3.5.3.7b - Privs set on a database level
+let $message= Testcase 3.5.3.7b:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs;
+ grant ALL on priv_db.* to test_noprivs@localhost;
+ revoke UPDATE on priv_db.* from test_noprivs@localhost;
+ show grants for test_noprivs;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant UPDATE on priv_db.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424b,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424b,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_424b;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4b_1 before UPDATE on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1b';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1b');
+ select f1 from t1;
+ update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4b_1;
+
+ connection yes_privs_424b;
+ show grants;
+ use priv_db;
+ create trigger trg4b_2 before UPDATE on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2b';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-2b');
+ select f1 from t1;
+ update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
+ select f1 from t1;
+# Cleanup
+ --disable_warnings
+ drop trigger trg4b_2;
+ disconnect no_privs_424b;
+ disconnect yes_privs_424b;
+ --enable_warnings
+
+# --- 3.5.3.7c - Privs set on a table level
+let $message= Testcase 3.5.3.7c;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+ grant ALL on priv_db.t1 to test_noprivs@localhost;
+ revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
+ show grants for test_noprivs;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424c,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424c,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_424c;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4c_1 before INSERT on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1c';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1c');
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4c_1;
+
+ connection yes_privs_424c;
+ show grants;
+ use priv_db;
+ create trigger trg4c_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2c';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-2c');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg4c_2;
+ disconnect no_privs_424c;
+ disconnect yes_privs_424c;
+ --enable_warnings
+
+# --- 3.5.3.7d - Privs set on a column level
+--disable_query_log
+let $message= Testcase 3.5.3.7d:;
+--enable_query_log
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+# There is no ALL privs on the column level
+ grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+ show grants for test_noprivs;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_noprivs;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_424d,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_424d,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_424d;
+ show grants;
+ use priv_db;
+let $message= Trigger create disabled - should fail - Bug 8884;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg4d_1 before INSERT on t1 for each row
+# set new.f1 = 'trig 3.5.3.7-1d';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-1d');
+ select f1 from t1;
+ --error 0, 1360
+ drop trigger trg4d_1;
+
+ connection yes_privs_424d;
+ show grants;
+ use priv_db;
+ create trigger trg4d_2 before INSERT on t1 for each row
+ set new.f1 = 'trig 3.5.3.7-2d';
+
+ connection default;
+ insert into t1 (f1) values ('insert 3.5.3.7-2d');
+ select f1 from t1;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg4d_2;
+ disconnect no_privs_424d;
+ disconnect yes_privs_424d;
+ --enable_warnings
+
+#Section 3.5.3.8
+# Test case: Ensure that use of the construct "SET <target> = NEW. <Column name>" fails
+# at CREATE TRIGGER time, if the current user does not have the SELECT privilege
+# on the column specified.
+
+# --- 3.5.3.8a - Privs set on a global level
+let $message= Testcase 3.5.3.8a:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant ALL on *.* to test_noprivs@localhost;
+ revoke SELECT on *.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER, SELECT on *.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425a,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425a,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425a;
+ select current_user;
+ use priv_db;
+ show grants;
+
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5a_1 before INSERT on t1 for each row
+# set @test_var = new.f1;
+
+ connection default;
+ set @test_var = 'before trig 3.5.3.8-1a';
+ select @test_var;
+ insert into t1 (f1) values ('insert 3.5.3.8-1a');
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5a_1;
+
+ connection yes_privs_425a;
+ use priv_db;
+ select current_user;
+ show grants;
+ create trigger trg5a_2 before INSERT on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-2a';
+ select @test_var;
+ insert into t1 (f1) values ('insert 3.5.3.8-2a');
+ select @test_var;
+
+# Cleanup
+ --disable_warnings
+ drop trigger trg5a_2;
+ disconnect no_privs_425a;
+ disconnect yes_privs_425a;
+ --enable_warnings
+
+# --- 3.5.3.8b - Privs set on a database level
+let $message= Testcase: 3.5.3.8b;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+ grant ALL on priv_db.* to test_noprivs@localhost;
+ revoke SELECT on priv_db.* from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT on priv_db.* to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425b,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425b,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425b;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5b_1 before UPDATE on t1 for each row
+# set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-1b';
+ insert into t1 (f1) values ('insert 3.5.3.8-1b');
+ select @test_var;
+ update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5b_1;
+
+ connection yes_privs_425b;
+ show grants;
+ use priv_db;
+ create trigger trg5b_2 before UPDATE on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-2b';
+ insert into t1 (f1) values ('insert 3.5.3.8-2b');
+ select @test_var;
+ update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
+ select @test_var;
+# Cleanup
+ --disable_warnings
+ drop trigger trg5b_2;
+ disconnect no_privs_425b;
+ disconnect yes_privs_425b;
+ --enable_warnings
+
+# --- 3.5.3.8c - Privs set on a table level
+let $message= Testcase 3.5.3.8c:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+ grant ALL on priv_db.t1 to test_noprivs@localhost;
+ revoke SELECT on priv_db.t1 from test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_yesprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425c,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425c,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425c;
+ show grants;
+ use priv_db;
+
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5c_1 before INSERT on t1 for each row
+# set @test_var= new.f1;
+
+ connection default;
+ set @test_var= 'before trig 3.5.3.8-1c';
+ insert into t1 (f1) values ('insert 3.5.3.8-1c');
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5c_1;
+
+ connection yes_privs_425c;
+ show grants;
+ use priv_db;
+ create trigger trg5c_2 before INSERT on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var='before trig 3.5.3.8-2c';
+ insert into t1 (f1) values ('insert 3.5.3.8-2c');
+ select @test_var;
+# Cleanup
+ --disable_warnings
+ drop trigger trg5c_2;
+ disconnect no_privs_425c;
+ disconnect yes_privs_425c;
+ --enable_warnings
+
+# --- 3.5.3.8d - Privs set on a column level
+let $message=Testcase: 3.5.3.8d:;
+--source include/show_msg.inc
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
+ grant SUPER on *.* to test_noprivs@localhost;
+# There is no ALL prov on the column level
+ grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
+ grant SUPER on *.* to test_yesprivs@localhost;
+ grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
+ show grants for test_noprivs@localhost;
+
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (no_privs_425d,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
+ connect (yes_privs_425d,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+ connection default;
+
+ connection no_privs_425d;
+ show grants;
+ use priv_db;
+let $message= Trigger create disabled - should fail - Bug 8887;
+--source include/show_msg.inc
+# --error 1227
+# create trigger trg5d_1 before INSERT on t1 for each row
+# set @test_var= new.f1;
+
+ connection default;
+ set @test_var='before trig 3.5.3.8-1d';
+ insert into t1 (f1) values ('insert 3.5.3.8-1d');
+ select @test_var;
+ --error 0, 1360
+ drop trigger trg5d_1;
+
+ connection yes_privs_425d;
+ show grants;
+ use priv_db;
+ create trigger trg5d_2 before INSERT on t1 for each row
+ set @test_var= new.f1;
+
+ connection default;
+ set @test_var='before trig 3.5.3.8-2d';
+ insert into t1 (f1) values ('insert 3.5.3.8-2d');
+ select @test_var;
+
+# Cleanup 3.5.3.8
+ --disable_warnings
+ drop trigger trg5d_2;
+ --enable_warnings
+
+# Cleanup 3.5.3
+ --disable_warnings
+ drop database if exists priv_db;
+ drop user test_yesprivs@localhost;
+ drop user test_noprivs@localhost;
+ drop user test_noprivs;
+ --enable_warnings
+
+####################################
+############ Section 3.5.4 #########
+# Drop Trigger Checkes: #
+####################################
+let $message= Testcase 3.5.4:;
+--source include/show_msg.inc
+
+ connection default;
+ use test;
+
+#Section 3.5.4.1
+# Testcase: Ensure that the DROP TRIGGER statement cleanly drops its target trigger.
+let $message= Testcase 3.5.4.1:;
+--source include/show_msg.inc
+
+ connection con_super;
+ create database db_drop;
+ Use db_drop;
+ eval create table t1 (f1 char(30)) engine=$engine_type;
+ grant INSERT, SELECT on db_drop.t1 to test_general;
+ Use db_drop;
+ Create trigger trg1 BEFORE INSERT on t1
+ for each row set new.f1='Trigger 3.5.4.1';
+ connection con_general;
+ Use db_drop;
+ Insert into t1 values ('Insert error 3.5.4.1');
+ Select * from t1;
+ connection con_super;
+ drop trigger trg1;
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers;
+ connection con_general;
+ Insert into t1 values ('Insert no trigger 3.5.4.1');
+ Select * from t1;
+
+#Cleanup
+ --disable_warnings
+ connection con_super;
+ --disable_warnings
+ --error 0,1360
+ drop trigger trg1;
+ drop database if exists db_drop;
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+ --enable_warnings
+
+#Section 3.5.4.2
+# Test case: Ensure that DROP TRIGGER <trigger name> fails, with an appropriate error
+# message, if the trigger name does not exist.
+let $message= Testcase 3.5.4.2:;
+--source include/show_msg.inc
+
+ connection con_super;
+ create database db_drop2;
+ Use db_drop2;
+ --disable_warnings
+ drop table if exists t1_432 ;
+ --enable_warnings
+ eval create table t1_432 (f1 char (30)) engine=$engine_type;
+ --error 1360
+ Drop trigger tr_does_not_exit;
+#cleanup
+ --disable_warnings
+ drop table if exists t1_432 ;
+ drop database if exists db_drop2;
+ --enable_warnings
+
+#Section 3.5.4.3
+# Test case: Ensure that DROP TRIGGER <trigger name> fails, with an appropriate
+# error message, if <trigger name> is not a qualified name.
+let $message= Testcase 3.5.4.3:;
+--source include/show_msg.inc
+
+ connection con_super;
+ create database db_drop3;
+ Use db_drop3;
+ --disable_warnings
+ drop table if exists t1_433 ;
+ drop table if exists t1_433a ;
+ --enable_warnings
+ eval create table t1_433 (f1 char (30)) engine=$engine_type;
+ eval create table t1_433a (f1a char (5)) engine=$engine_type;
+
+ CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
+ set new.f1 = 'Trigger 3.5.4.3';
+
+# Using table
+ --error 1064
+ Drop trigger t1.433.trg3;
+
+# Using database.table
+ --error 1064
+ Drop trigger db_drop3.t1.433.trg3;
+
+# wrong database
+ --error 1360
+ Drop trigger mysql.trg3;
+
+# database does not exist
+ --error 1360
+ Drop trigger tbx.trg3;
+
+#cleanup
+ Drop trigger db_drop3.trg3;
+ drop table if exists t1_433;
+ drop table if exists t1_433a;
+ drop database if exists db_drop3;
+
+#Section 3.5.4.4
+# Test case: Ensure that when a database is dropped, all triggers created within
+# that database are also cleanly dropped.
+let $message= Testcase 3.5.4.4:;
+--source include/show_msg.inc
+
+ connection con_super;
+ create database db_drop4;
+ Use db_drop4;
+ eval create table t1 (f1 char(30)) engine=$engine_type;
+ grant INSERT, SELECT on db_drop4.t1 to test_general;
+ Create trigger trg4 BEFORE INSERT on t1
+ for each row set new.f1='Trigger 3.5.4.4';
+ connection con_general;
+ Use db_drop4;
+ Insert into t1 values ('Insert 3.5.4.4');
+ Select * from t1;
+ connection con_super;
+ Drop database db_drop4;
+ Show databases;
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers
+ where information_schema.triggers.trigger_name='trg4';
+ create database db_drop4;
+ Use db_drop4;
+ eval create table t1 (f1 char(30)) engine=$engine_type;
+ grant INSERT, SELECT on db_drop4.t1 to test_general;
+ connection con_general;
+ Insert into t1 values ('2nd Insert 3.5.4.4');
+ Select * from t1;
+
+#Cleanup
+ connection con_super;
+ --disable_warnings
+ --error 1360
+ drop trigger trg4;
+ drop database if exists db_drop4;
+ --enable_warnings
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+#Section 3.5.4.5
+# Test case: Ensure that when a table is dropped, all triggers for which it is the
+# subject table are also cleanly dropped.
+let $message= Testcase 3.5.4.5:;
+--source include/show_msg.inc
+
+ connection con_super;
+ create database db_drop5;
+ Use db_drop5;
+ eval create table t1 (f1 char(50)) engine=$engine_type;
+ grant INSERT, SELECT on t1 to test_general;
+ Create trigger trg5 BEFORE INSERT on t1
+ for each row set new.f1='Trigger 3.5.4.5';
+ connection con_general;
+ Use db_drop5;
+ Insert into t1 values ('Insert 3.5.4.5');
+ Select * from t1;
+ connection con_super;
+ Drop table t1;
+ Show tables;
+ select trigger_schema, trigger_name, event_object_table
+ from information_schema.triggers
+ where information_schema.triggers.trigger_name='trg5';
+ eval create table t1 (f1 char(50)) engine=$engine_type;
+ grant INSERT, SELECT on t1 to test_general;
+ connection con_general;
+ Insert into t1 values ('2nd Insert 3.5.4.5');
+ Select * from t1;
+
+#Cleanup
+ connection con_super;
+ --disable_warnings
+ --error 1360
+ drop trigger trg5;
+ drop database if exists db_drop5;
+ --enable_warnings
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+
+
+##################################
+######### Section 3.5.5 ##########
+# Checks on the Subject Table #
+##################################
+
+let $message= Testcase 3.5.5:;
+--source include/show_msg.inc
+
+ connection default;
+ use test;
+
+#Section 3.5.5.1
+# Test case: Ensure that, if CREATE TRIGGER is executed with a non-existent
+# subject table, the statement fails with an appropriate error message.
+let $message= Testcase 3.5.5.1:;
+--source include/show_msg.inc
+
+ --error 1146
+ Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
+
+
+#Section 3.5.5.2
+# Test case: Ensure that, if CREATE TRIGGER is executed with a temporary table
+# as the subject table, the statement fails with an appropriate error message.
+let $message= Testcase 3.5.5.2:;
+--source include/show_msg.inc
+
+ Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
+
+ --error 1361
+ Create trigger trg2 before INSERT
+ on t1_temp for each row set new.f2=9999;
+
+#Cleanup
+ --disable_warnings
+ drop table t1_temp;
+ --enable_warnings
+
+
+#Section 3.5.5.3
+# Test case: Ensure that, if CREATE TRIGGER is executed with a view as the subject
+# table, the statement fails with an appropriate error message.
+let $message= Testcase 3.5.5.3:;
+--source include/show_msg.inc
+
+ Create view vw3 as select f118 from tb3;
+
+# OBN Not sure why the server is returning error 1347
+ --error 1347
+ Create trigger trg3 before INSERT
+ on vw3 for each row set new.f118='s';
+
+#Cleanup
+ --disable_warnings
+ drop view vw3;
+ --enable_warnings
+
+
+#Section 3.5.5.4
+# Test case: Ensure that, if CREATE TRIGGER is executed with a table that resides
+# in a different database than in which the trigger will reside, the
+# statement fails with an appropriate error message; that is, ensure that
+# the trigger and its subject table must reside in the same database.
+let $message= Testcase 3.5.5.4:;
+--source include/show_msg.inc
+
+ connection con_super;
+ create database dbtest_one;
+ create database dbtest_two;
+ use dbtest_two;
+ create table t2 (f1 char(15));
+ use dbtest_one;
+ --error 1435
+ create trigger trg4 before INSERT
+ on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
+ grant INSERT, SELECT on dbtest_two.t2 to test_general;
+ grant SELECT on dbtest_one.* to test_general;
+ connection con_general;
+ use dbtest_two;
+ Insert into t2 values ('1st Insert 3.5.5.4');
+ Select * from t2;
+ use dbtest_one;
+ Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
+ Select * from dbtest_two.t2;
+
+#Cleanup
+ connection con_super;
+ --disable_warnings
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+ DROP DATABASE if exists dbtest_one;
+ drop database if EXISTS dbtest_two;
+ --enable_warnings
+
+#####################################
+########### Section 3.5.6 ###########
+# Check on the Trigger Action Time #
+#####################################
+
+let $message= Testcase 3.5.6:;
+--source include/show_msg.inc
+
+ connection default;
+ use test;
+
+#Section 3.5.6.1
+# Test case: Ensure that a trigger definition can specify a trigger action time of BEFORE.
+# See section 3.5.1.1
+let $message= Testcase 3.5.6.1 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.6.2
+# Test case: Ensure that a trigger definition can specify a trigger action time of AFTER.
+# See section 3.5.1.1
+let $message= Testcase 3.5.6.2 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.6.3
+# Test case: Ensure that a trigger definition that specifies a trigger action
+# time that is not either BEFORE or AFTER fails, with an appropriate
+# error message, at CREATE TRIGGER time.
+let $message= Testcase 3.5.6.3:;
+--source include/show_msg.inc
+
+ --error 1064
+ Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
+ --error 1064
+ Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger tb3.trg3_1;
+ --error 0, 1360
+ drop trigger tb3.trg3_2;
+ --enable_warnings
+
+#Section 3.5.6.4
+# Test case: Ensure that a trigger defined with a trigger action time of BEFORE
+# always executes its triggered action immediately before the trigger event.
+# See section 3.5.1.1
+let $message= Testcase 3.5.6.4 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.6.5
+# Test case: Ensure that a trigger defined with a trigger action time of AFTER
+# always executes its triggered action immediately after the trigger event.
+let $message= Testcase 3.5.6.5 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#############################
+####### Section 3.5.7 #######
+# Check on Trigger Event #
+#############################
+
+#Section 3.5.7.1
+#Test case: Ensure that a trigger definition can specify a trigger event of INSERT.
+let $message= Testcase 3.5.7.1 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.7.2
+# Test case: Ensure that a trigger definition can specify a trigger event of UPDATE.
+let $message= Testcase 3.5.7.2 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.7.3
+# Test case: Ensure that a trigger definition can specify a trigger event of DELETE.
+let $message= Testcase 3.5.7.3 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+#Section 3.5.7.4
+# Test case: Ensure that a trigger definition that specifies a trigger event that
+# is not either INSERT, UPDATE or DELETE fails, with an appropriate error
+# message, at CREATE TRIGGER time.
+let $message= Testcase 3.5.7.4:;
+--source include/show_msg.inc
+
+ --error 1064
+ Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
+ --error 1064
+ Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
+
+#Cleanup
+# OBN - Although none of the above should have been created we should do a cleanup
+# since if they have been created, not dropping them will affect following
+# tests.
+ --disable_warnings
+ --error 0, 1360
+ drop trigger tb3.trg4_1;
+ --error 0, 1360
+ drop trigger tb3.trg4_2;
+ --enable_warnings
+
+#Section 3.5.7.5 / 3.5.7.6
+# Test case: Ensure that it is not possible to create multiple BEFORE INSERT triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.5 / 3.5.7.6:;
+--source include/show_msg.inc
+
+ Create trigger trg5_1 BEFORE INSERT
+ on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
+
+ --error 1359
+ Create trigger trg5_2 BEFORE INSERT
+ on tb3 for each row set new.f122='Trigger2 3.5.7.5';
+
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+ update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg5_1;
+ --error 0, 1360
+ drop trigger trg5_2;
+ delete from tb3 where f121='Test 3.5.7.5/6';
+ --enable_warnings
+
+
+#Section 3.5.7.7 / 3.5.7.8
+# Test case: Ensure that it is not possible to create multiple AFTER INSERT triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.7 / 3.5.7.8:;
+--source include/show_msg.inc
+
+ set @test_var='Before trig 3.5.7.7';
+ Create trigger trg6_1 AFTER INSERT
+ on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
+
+ --error 1359
+ Create trigger trg6_2 AFTER INSERT
+ on tb3 for each row set @test_var='Trigger2 3.5.7.7';
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+ select @test_var;
+ update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
+ select @test_var;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg6_1;
+ --error 0, 1360
+ drop trigger trg6_2;
+ delete from tb3 where f121='Test 3.5.7.7/8';
+ --enable_warnings
+
+
+#Section 3.5.7.9 / 3.5.7.10
+# Test case: Ensure that it is not possible to create multiple BEFORE UPDATE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.9/10:;
+--source include/show_msg.inc
+
+ Create trigger trg7_1 BEFORE UPDATE
+ on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
+
+ --error 1359
+ Create trigger trg7_2 BEFORE UPDATE
+ on tb3 for each row set new.f122='Trigger2 3.5.7.9';
+
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+ update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg7_1;
+ --error 0, 1360
+ drop trigger trg7_2;
+ delete from tb3 where f121='Test 3.5.7.9/10';
+
+#Section 3.5.7.11 / 3.5.7.12
+# Test case: Ensure that it is not possible to create multiple AFTER UPDATE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.11/12:;
+--source include/show_msg.inc
+
+ set @test_var='Before trig 3.5.7.11';
+ Create trigger trg8_1 AFTER UPDATE
+ on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
+
+ --error 1359
+ Create trigger trg8_2 AFTER UPDATE
+ on tb3 for each row set @test_var='Trigger2 3.5.7.11';
+
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
+ select @test_var;
+ Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+ update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.11/12';
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg8_1;
+ --error 0, 1360
+ drop trigger trg8_2;
+ delete from tb3 where f121='Test 3.5.7.11/12';
+
+#Section 3.5.7.13 / 3.5.7.14
+# Test case: Ensure that it is not possible to create multiple BEFORE DELETE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.13/14:;
+--source include/show_msg.inc
+
+ set @test_var=1;
+ Create trigger trg9_1 BEFORE DELETE
+ on tb3 for each row set @test_var=@test_var+1;
+
+ --error 1359
+ Create trigger trg9_2 BEFORE DELETE
+ on tb3 for each row set @test_var=@test_var+10;
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.13/14';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.13/14';
+ select @test_var;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg9_1;
+ --error 0, 1360
+ drop trigger trg9_2;
+ delete from tb3 where f121='Test 3.5.7.13/14';
+
+#Section 3.5.7.15 / 3.5.7.16
+# Test case: Ensure that it is not possible to create multiple AFTER DELETE triggers
+# on the same table, even if the triggers have different names / different
+# triggered actions.
+let $message= Testcase 3.5.7.15/16:;
+--source include/show_msg.inc
+
+ set @test_var=1;
+ Create trigger trg_3_406010_1 AFTER DELETE
+ on tb3 for each row set @test_var=@test_var+5;
+
+ --error 1359
+ Create trigger trg_3_406010_2 AFTER DELETE
+ on tb3 for each row set @test_var=@test_var+50;
+
+ --error 1359
+ Create trigger trg_3_406010_1 AFTER INSERT
+ on tb3 for each row set @test_var=@test_var+1;
+
+ select @test_var;
+ Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
+ Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.15/16';
+ Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
+ select @test_var;
+ delete from tb3 where f121='Test 3.5.7.15/16';
+ select @test_var;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg_3_406010_1;
+ --error 0, 1360
+ drop trigger trg_3_406010_2;
+ delete from tb3 where f121='Test 3.5.7.15/16';
+ --enable_warnings
+
+
+#Section 3.5.7.17
+# Test case: Ensure that it is possible to have a BEFORE INSERT, an AFTER INSERT,
+# a BEFORE UPDATE, an AFTER UPDATE, a BEFORE DELETE, and an AFTER DELETE
+# trigger on the same table; that is, ensure that every persistent base
+# table may be the subject table for exactly six triggers
+let $message= Testcase 3.5.7.17 (see Testcase 3.5.1.1);
+--source include/show_msg.inc
+
+
+#################################
+####### Section 3.5.8 ###########
+# Checks on Triggered Actions #
+#################################
+
+#Section 3.5.8.1
+# Testcase: Ensure that the triggered action of every trigger always executes
+# correctly and the results in all expected changes made to the database
+let $message= Testcase 3.5.8.1: (implied in previous tests);
+--source include/show_msg.inc
+# OBN - FIXME - Missing 3.5.8.1 need to add
+
+#Section 3.5.8.2
+# Testcase: Ensure that the triggered actions of every trigger never results
+# in an unexpected change made to the database.
+let $message= Testcase 3.5.8.2: (implied in previous tests);
+--source include/show_msg.inc
+
+
+#Section 3.5.8.3 / 3.5.8.4
+#Test case: Ensure that the triggered action can any valid SQL statement / set
+# of valid SQL statements, provided the statements are written within
+# a BEGIN/END compound statement construct
+# OBN - At this point the tests focuses on the the INSERT/UPDATE/DELETE SQL statements
+# as there are the most likely to be used in triggers
+let $message= Testcase 3.5.8.3/4:;
+--source include/show_msg.inc
+
+# creating test tables to perform the trigger SQL on
+ connection con_super;
+ create database db_test;
+ grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
+ grant LOCK TABLES on db_test.* to test_general;
+ Use db_test;
+ eval create table t1_i (
+ i120 char ascii not null DEFAULT b'101',
+ i136 smallint zerofill not null DEFAULT 999,
+ i144 int zerofill not null DEFAULT 99999,
+ i163 decimal (63,30)) engine=$engine_type;
+ eval create table t1_u (
+ u120 char ascii not null DEFAULT b'101',
+ u136 smallint zerofill not null DEFAULT 999,
+ u144 int zerofill not null DEFAULT 99999,
+ u163 decimal (63,30)) engine=$engine_type;
+ eval create table t1_d (
+ d120 char ascii not null DEFAULT b'101',
+ d136 smallint zerofill not null DEFAULT 999,
+ d144 int zerofill not null DEFAULT 99999,
+ d163 decimal (63,30)) engine=$engine_type;
+ Insert into t1_u values ('a',111,99999,999.99);
+ Insert into t1_u values ('b',222,99999,999.99);
+ Insert into t1_u values ('c',333,99999,999.99);
+ Insert into t1_u values ('d',222,99999,999.99);
+ Insert into t1_u values ('e',222,99999,999.99);
+ Insert into t1_u values ('f',333,99999,999.99);
+ Insert into t1_d values ('a',111,99999,999.99);
+ Insert into t1_d values ('b',222,99999,999.99);
+ Insert into t1_d values ('c',333,99999,999.99);
+ Insert into t1_d values ('d',444,99999,999.99);
+ Insert into t1_d values ('e',222,99999,999.99);
+ Insert into t1_d values ('f',222,99999,999.99);
+
+let $message= 3.5.8.4 - multiple SQL;
+--source include/show_msg.inc
+# Trigger definition - multiple SQL
+ use test;
+ delimiter //;
+ Create trigger trg1 AFTER INSERT on tb3 for each row
+ BEGIN
+ insert into db_test.t1_i
+ values (new.f120, new.f136, new.f144, new.f163);
+ update db_test.t1_u
+ set u144=new.f144, u163=new.f163
+ where u136=new.f136;
+ delete from db_test.t1_d where d136= new.f136;
+ select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+ where u136= new.f136;
+ END//
+ delimiter ;//
+
+# Test trigger execution - multiple SQL
+ connection con_general;
+ Use test;
+ set @test_var=0;
+ Insert into tb3 (f120, f122, f136, f144, f163)
+ values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
+ Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
+ select * from db_test.t1_i;
+ select * from db_test.t1_u;
+ select * from db_test.t1_d;
+ select @test_var;
+
+
+let $message= 3.5.8.4 - single SQL - insert;
+--source include/show_msg.inc
+# Trigger definition - single SQL Insert
+ connection con_super;
+ Create trigger trg2 BEFORE UPDATE on tb3 for each row
+ insert into db_test.t1_i
+ values (new.f120, new.f136, new.f144, new.f163);
+
+# Trigger exeution - single SQL Insert
+ connection con_general;
+ update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
+ where f122='Test 3.5.8.4';
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select * from db_test.t1_i;
+
+
+let $message= 3.5.8.4 - single SQL - update;
+--source include/show_msg.inc
+# Trigger definition - single SQL update
+ connection con_super;
+ drop trigger trg2;
+ Create trigger trg3 BEFORE UPDATE on tb3 for each row
+ update db_test.t1_u
+ set u120=new.f120
+ where u136=new.f136;
+
+# Trigger exeution - single SQL - update;
+ connection con_general;
+ update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
+ where f122='Test 3.5.8.4-Single Insert';
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select * from db_test.t1_u;
+
+
+let $message= 3.5.8.3/4 - single SQL - delete;
+--source include/show_msg.inc
+# Trigger definition - single SQL delete
+ connection con_super;
+ drop trigger trg3;
+ Create trigger trg4 AFTER UPDATE on tb3 for each row
+ delete from db_test.t1_d where d136= new.f136;
+
+# Trigger exeution - single SQL delete
+ connection con_general;
+#lock tables tb3 write, db_test.t1_i write, db_test.t1_u write, db_test.t1_d write;
+ update tb3 set f120='D', f136=444,
+ f122='Test 3.5.8.4-Single Delete'
+ where f122='Test 3.5.8.4-Single Update';
+#unlock tables;
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select * from db_test.t1_d;
+
+
+let $message= 3.5.8.3/4 - single SQL - select;
+--source include/show_msg.inc
+# Trigger definition - single SQL select
+ connection con_super;
+ drop trigger trg4;
+ Create trigger trg5 AFTER UPDATE on tb3 for each row
+ select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
+ where u136= new.f136;
+
+# Trigger exeution - single SQL select
+ connection con_general;
+ set @test_var=0;
+ update tb3 set f120='S', f136=111,
+ f122='Test 3.5.8.4-Single Select'
+ where f122='Test 3.5.8.4-Single Delete';
+ Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
+ select @test_var;
+
+#Cleanup
+ connection default;
+ --disable_warnings
+ drop trigger trg1;
+ drop trigger trg5;
+ drop database if exists db_test;
+ delete from tb3 where f122 like 'Test 3.5.8.4%';
+ revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
+ --enable_warnings
+
+
+#Section 3.5.8.5 (IF)
+# Test case: Ensure that the stored procedure-specific flow control statement like IF
+# works correctly when it is a part of the triggered action portion of a
+# trigger definition.
+let $message= Testcase 3.5.8.5 (IF):;
+--source include/show_msg.inc
+
+ delimiter //;
+ create trigger trg2 before insert on tb3 for each row
+ BEGIN
+ IF new.f120='1' then
+ set @test_var='one', new.f120='2';
+ ELSEIF new.f120='2' then
+ set @test_var='two', new.f120='3';
+ ELSEIF new.f120='3' then
+ set @test_var='three', new.f120='4';
+ END IF;
+
+ IF (new.f120='4') and (new.f136=10) then
+ set @test_var2='2nd if', new.f120='d';
+ ELSE
+ set @test_var2='2nd else', new.f120='D';
+ END IF;
+ END//
+ delimiter ;//
+
+ set @test_var='Empty', @test_var2=0;
+ Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+ Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+ Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+ Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
+ select f120, f122, f136, @test_var, @test_var2
+ from tb3 where f122 = 'Test 3.5.8.5-if';
+
+ delimiter //;
+ --error 1064
+ create trigger trg3 before update on tb3 for each row
+ BEGIN
+ ELSEIF new.f120='2' then
+ END IF;
+ END//
+ --error 0, 1360
+ drop trigger trg3//
+
+ --error 1064
+ create trigger trg4 before update on tb3 for each row
+ BEGIN
+ IF (new.f120='4') and (new.f136=10) then
+ set @test_var2='2nd if', new.f120='d';
+ ELSE
+ set @test_var2='2nd else', new.f120='D';
+ END//
+ delimiter ;//
+ --error 0, 1360
+ drop trigger trg4;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg2;
+ delete from tb3 where f121='Test 3.5.8.5-if';
+ --enable_warnings
+
+
+#Section 3.5.8.5 (CASE)
+# Test case: Ensure that the stored procedure-specific flow control statement
+# like CASE works correctly when it is a part of the triggered action
+# portion of a trigger definition.
+let $message= Testcase 3.5.8.5-case:;
+--source include/show_msg.inc
+
+ delimiter //;
+ create trigger trg3 before insert on tb3 for each row
+ BEGIN
+ SET new.f120=char(ascii(new.f120)-32);
+ CASE
+ when new.f136<100 then set new.f136=new.f136+120;
+ when new.f136<10 then set new.f144=777;
+ when new.f136>100 then set new.f120=new.f136-1;
+ END case;
+ CASE
+ when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
+ ELSE set @test_var=concat(new.f120, '*');
+ END case;
+ CASE new.f144
+ when 1 then set @test_var=concat(@test_var, 'one');
+ when 2 then set @test_var=concat(@test_var, 'two');
+ when 3 then set @test_var=concat(@test_var, 'three');
+ when 4 then set @test_var=concat(@test_var, 'four');
+ when 5 then set @test_var=concat(@test_var, 'five');
+ when 6 then set @test_var=concat(@test_var, 'six');
+ when 7 then set @test_var=concat(@test_var, 'seven');
+ when 8 then set @test_var=concat(@test_var, 'eight');
+ when 9 then set @test_var=concat(@test_var, 'nine');
+ when 10 then set @test_var=concat(@test_var, 'ten');
+ when 11 then set @test_var=concat(@test_var, 'eleven');
+ when 12 then set @test_var=concat(@test_var, 'twelve');
+ when 13 then set @test_var=concat(@test_var, 'thirteen');
+ when 14 then set @test_var=concat(@test_var, 'fourteen');
+ when 15 then set @test_var=concat(@test_var, 'fifteen');
+ ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
+ END case;
+ END//
+ delimiter ;//
+
+ set @test_var='Empty';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('a', 'Test 3.5.8.5-case', 5, 7);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('b', 'Test 3.5.8.5-case', 71,16);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('c', 'Test 3.5.8.5-case', 80,1);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136)
+ values ('d', 'Test 3.5.8.5-case', 152);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('e', 'Test 3.5.8.5-case', 200, 8);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+ --error 0, 1339
+ Insert into tb3 (f120, f122, f136, f144)
+ values ('f', 'Test 3.5.8.5-case', 100, 8);
+ select f120, f122, f136, f144, @test_var
+ from tb3 where f122 = 'Test 3.5.8.5-case';
+
+ delimiter //;
+ --error 1064
+ create trigger trg3a before update on tb3 for each row
+ BEGIN
+ CASE
+ when new.f136<100 then set new.f120='p';
+ END//
+ delimiter ;//
+
+ --error 0, 1360
+ drop trigger trg3a;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg3;
+ delete from tb3 where f121='Test 3.5.8.5-case';
+ --enable_warnings
+
+#Section 3.5.8.5 (LOOP)
+# Test case: Ensure that the stored procedure-specific flow control
+# statement like LOOP / LEAVE work correctly when they are
+# part of the triggered action portion of a trigger definition.
+let $message= Testcase 3.5.8.5-loop/leave:;
+--source include/show_msg.inc
+
+ delimiter //;
+ Create trigger trg4 after insert on tb3 for each row
+ BEGIN
+ set @counter=0, @flag='Initial';
+ Label1: loop
+ if new.f136<new.f144 then
+ set @counter='Nothing to loop';
+ leave Label1;
+ else
+ set @counter=@counter+1;
+ if new.f136=new.f144+@counter then
+ set @counter=concat(@counter, ' loops');
+ leave Label1;
+ end if;
+ end if;
+ iterate label1;
+ set @flag='Final';
+ END loop Label1;
+ END//
+ delimiter ;//
+ Insert into tb3 (f122, f136, f144)
+ values ('Test 3.5.8.5-loop', 2, 8);
+ select @counter, @flag;
+ Insert into tb3 (f122, f136, f144)
+ values ('Test 3.5.8.5-loop', 11, 8);
+ select @counter, @flag;
+
+
+ delimiter //;
+
+ --error 1064
+ Create trigger trg4_2 after update on tb3 for each row
+ BEGIN
+ Label1: loop
+ set @counter=@counter+1;
+ END;
+ END//
+ delimiter ;//
+ --error 0, 1360
+ drop trigger trg4_2;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg4;
+ delete from tb3 where f122='Test 3.5.8.5-loop';
+ --enable_warnings
+
+#Section 3.5.8.5 (REPEAT ITERATE)
+#Testcase: Ensure that the stored procedure-specific flow control statements
+# like REPEAT work correctly when they are part of the triggered action
+# portion of a trigger definition.
+let $message= Testcase 3.5.8.5-repeat:;
+--source include/show_msg.inc
+
+ delimiter //;
+ Create trigger trg6 after insert on tb3 for each row
+ BEGIN
+ rp_label: REPEAT
+ SET @counter1 = @counter1 + 1;
+ IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
+ END IF;
+ SET @counter2 = @counter2 + 1;
+ UNTIL @counter1> new.f136 END REPEAT rp_label;
+ END//
+ delimiter ;//
+
+ set @counter1= 0, @counter2= 0;
+ Insert into tb3 (f122, f136)
+ values ('Test 3.5.8.5-repeat', 13);
+ select @counter1, @counter2;
+
+
+ delimiter //;
+ --error 1064
+ Create trigger trg6_2 after update on tb3 for each row
+ BEGIN
+ REPEAT
+ SET @counter2 = @counter2 + 1;
+ END//
+ delimiter ;//
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg6;
+ delete from tb3 where f122='Test 3.5.8.5-repeat';
+ --enable_warnings
+
+
+#Section 3.5.8.5 (WHILE)
+# Test case: Ensure that the stored procedure-specific flow control
+# statements WHILE, work correctly when they are part of
+# the triggered action portion of a trigger definition.
+let $message= Testcase 3.5.8.5-while:;
+--source include/show_msg.inc
+
+ delimiter //;
+ Create trigger trg7 after insert on tb3 for each row
+ wl_label: WHILE @counter1 < new.f136 DO
+ SET @counter1 = @counter1 + 1;
+ IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
+ END IF;
+ SET @counter2 = @counter2 + 1;
+ END WHILE wl_label//
+ delimiter ;//
+
+ set @counter1= 0, @counter2= 0;
+ Insert into tb3 (f122, f136)
+ values ('Test 3.5.8.5-while', 7);
+ select @counter1, @counter2;
+ delimiter //;
+ --error 1064
+ Create trigger trg7_2 after update on tb3 for each row
+ BEGIN
+ WHILE @counter1 < new.f136
+ SET @counter1 = @counter1 + 1;
+ END//
+ delimiter ;//
+
+#Cleanup
+ --disable_warnings
+ delete from tb3 where f122='Test 3.5.8.5-while';
+ drop trigger trg7;
+ --enable_warnings
+
+#Section 3.5.8.6
+# Test case: Ensure that a trigger definition that includes a CALL to a stored
+# procedure fails, at CREATE TRIGGER time, with an appropriate error
+# message
+# OBN - requirement void since allowed
+# Fails due to Bug 9909 the bug allows the trigger to be created
+# and fails in execution time
+let $message= Testcase 3.5.8.6: (requirement void);
+--source include/show_msg.inc
+
+
+#Section 3.5.8.7
+# Test case: Ensure that a trigger definition that includes a
+# transaction-delimiting statement (e.g. COMMIT,
+# ROLLBACK, START TRANSACTION) fails, at CREATE TRIGGER
+# time, with an appropriate error message.
+# OBN - Fails due to Bug ____
+let $message= Testcase 3.5.8.7: (Disabled as a result of bug _____);
+--source include/show_msg.inc
+
+# --error 1314
+# Create trigger trg9_1 before update on tb3 for each row
+# BEGIN
+# Start transaction;
+# Set new.f120='U';
+# Commit;
+# END;
+
+# --error 1314
+# Create trigger trg9_2 before delete on tb3 for each row
+# BEGIN
+# Start transaction;
+# Set @var2=old.f120;
+# Rollback;
+# END;
+
+#################################
+####### Section 3.5.9 ###########
+# Checks on old and new rows #
+#################################
+
+#Section 3.5.9.1
+#Test case: Ensure that every trigger executes its triggered action on each row
+# that meets the conditions stated in the trigger definition.
+#Section 3.5.9.2
+#Testcase: Ensure that a trigger never executes its triggered action on any row
+# that doesn't meet the conditions stated in the trigger definition.
+let $message= Testcase 3.5.9.1/2:;
+--source include/show_msg.inc
+
+ Create trigger trg1 BEFORE UPDATE on tb3 for each row
+ set new.f142 = 94087, @counter=@counter+1;
+--disable_query_log
+ select count(*) as TotalRows from tb3;
+ select count(*) as Affected from tb3 where f130<100;
+ select count(*) as NotAffected from tb3 where f130>=100;
+ select count(*) as NewValuew from tb3 where f142=94087;
+--enable_query_log
+ set @counter=0;
+ Update tb3 Set f142='1' where f130<100;
+ select count(*) as ExpectedChanged, @counter as TrigCounter
+ from tb3 where f142=94087;
+ select count(*) as ExpectedNotChange from tb3
+ where f130<100 and f142<>94087;
+ select count(*) as NonExpectedChanged from tb3
+ where f130>=130 and f142=94087;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg1;
+ --enable_warnings
+
+
+#Section 3.5.9.3
+#Test case: Ensure that a reference to OLD.<column name> always correctly refers
+# to the values of the specified column of the subject table before a
+# data row is updated or deleted.
+let $message= Testcase 3.5.9.3:;
+--source include/show_msg.inc
+
+ Create trigger trg2_a before update on tb3 for each row
+ set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+ @tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+ @tr_var_b4_163=old.f163;
+
+ Create trigger trg2_b after update on tb3 for each row
+ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+ @tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+ @tr_var_af_163=old.f163;
+
+ Create trigger trg2_c before delete on tb3 for each row
+ set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
+ @tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
+ @tr_var_b4_163=old.f163;
+
+ Create trigger trg2_d after delete on tb3 for each row
+ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
+ @tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
+ @tr_var_af_163=old.f163;
+
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+--enable_query_log
+
+ Insert into tb3 (f122, f136, f163)
+ values ('Test 3.5.9.3', 7, 123.17);
+ Update tb3 Set f136=8 where f122='Test 3.5.9.3';
+
+ select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+--enable_query_log
+
+ delete from tb3 where f122='Test 3.5.9.3';
+
+ select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_163;
+#Cleanup
+ --disable_warnings
+ drop trigger trg2_a;
+ drop trigger trg2_b;
+ drop trigger trg2_c;
+ drop trigger trg2_d;
+ --enable_warnings
+
+#Section 3.5.9.4
+#Test case: Ensure that a reference to NEW.<column name> always correctly refers
+# to the values of the specified column of the subject table after an
+# existing data row has been updated or a new data row has been inserted.
+let $message= Testcase 3.5.9.4:;
+--source include/show_msg.inc
+
+ Create trigger trg3_a before insert on tb3 for each row
+ set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+ @tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+ @tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+
+ Create trigger trg3_b after insert on tb3 for each row
+ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+ @tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+ @tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+
+ Create trigger trg3_c before update on tb3 for each row
+ set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
+ @tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
+ @tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
+
+ Create trigger trg3_d after update on tb3 for each row
+ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
+ @tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
+ @tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+--enable_query_log
+
+ Insert into tb3 (f122, f136, f151, f163)
+ values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
+
+ select f118, f121, f122, f136, f151, f163 from tb3
+ where f122 like 'Test 3.5.9.4%';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+
+--disable_query_log
+ set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0,
+ @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0;
+ set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0,
+ @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0;
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+--enable_query_log
+
+ Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
+ where f122='Test 3.5.9.4';
+
+ select f118, f121, f122, f136, f151, f163 from tb3
+ where f122 like 'Test 3.5.9.4-trig';
+ select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
+ @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
+ select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
+ @tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
+#Cleanup
+ --disable_warnings
+ drop trigger trg3_a;
+ drop trigger trg3_b;
+ drop trigger trg3_c;
+ drop trigger trg3_d;
+ delete from tb3 where f122='Test 3.5.9.4-trig';
+ --enable_warnings
+
+
+#Section 3.5.9.5
+# Test case: Ensure that the definition of an INSERT trigger can include a
+# reference to NEW. <Column name>.
+let $message= Testcase 3.5.9.5: (implied in previous tests);
+--source include/show_msg.inc
+
+#Section 3.5.9.6
+# Test case: Ensure that the definition of an INSERT trigger cannot include
+# a reference to OLD. <Column name>.
+let $message= Testcase 3.5.9.6:;
+--source include/show_msg.inc
+
+ --error 1363
+ create trigger trg4a before insert on tb3 for each row
+ set @temp1= old.f120;
+ --error 1362
+ create trigger trg4b after insert on tb3 for each row
+ set old.f120= 'test';
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg4a;
+ --error 0, 1360
+ drop trigger trg4b;
+ --enable_warnings
+
+
+#Section 3.5.9.7
+# Test case: Ensure that the definition of an UPDATE trigger can include a
+# reference to NEW. <Column name>.
+let $message= Testcase 3.5.9.7: (implied in previous tests);
+--source include/show_msg.inc
+
+#Section 3.5.9.8
+# Test case: Ensure that the definition of an UPDATE trigger cannot include a
+# reference to OLD. <Column name>.
+let $message= Testcase 3.5.9.8: (implied in previous tests);
+--source include/show_msg.inc
+
+#Section 3.5.9.9
+# Test case: Ensure that the definition of a DELETE trigger cannot include a
+# reference to NEW.<column name>.
+let $message= Testcase 3.5.9.9:;
+--source include/show_msg.inc
+
+ --error 1363
+ create trigger trg5a before DELETE on tb3 for each row
+ set @temp1=new.f122;
+ --error 1363
+ create trigger trg5b after DELETE on tb3 for each row
+ set new.f122='test';
+let $message= The above returns the wrong error, should be error 1362 (Bug 11648)
+--source include/show_msg.inc
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg5a;
+ --error 0, 1360
+ drop trigger trg5b;
+ --enable_warnings
+
+
+#Section 3.5.9.10
+# Test case: Ensure that the definition of a DELETE trigger can include a reference
+# to OLD.<column name>.
+let $message= Testcase 3.5.9.10: (implied in previous tests);
+--source include/show_msg.inc
+
+
+#Section 3.5.9.11
+# Testcase: Ensure that trigger definition that includes a referance to
+# NEW.<colunm name> fails with an appropriate error message,
+# at CREATE TRIGGER time, if the trigger event in not INSERT or UPDATE
+let $message= Testcase 3.5.9.11: covered by 3.5.9.9;
+--source include/show_msg.inc
+
+
+#Section 3.5.9.12
+# Testcase: Ensure that trigger definition that includes a referance to
+# OLD.<column name> fails with an appropriate error message, at
+# CREATE TRIGGER time, if the trigger event is not DELETE or UPDATE
+let $message= Testcase 3.5.9.12: covered by 3.5.9.6;
+--source include/show_msg.inc
+
+
+#Section 3.5.9.13
+# Test case: Ensure that all references to OLD. <Column name> are read-only,
+# that is, that they cannot be used to modify a data row.
+let $message= Testcase 3.5.9.13:;
+--source include/show_msg.inc
+
+ --error 1362
+ create trigger trg6a before UPDATE on tb3 for each row
+ set old.f118='C', new.f118='U';
+ --error 1362
+ create trigger trg6b after INSERT on tb3 for each row
+ set old.f136=163, new.f118='U';
+ --error 1362
+ create trigger trg6c after UPDATE on tb3 for each row
+ set old.f136=NULL;
+
+#Cleanup
+ --disable_warnings
+ --error 0, 1360
+ drop trigger trg6a;
+ --error 0, 1360
+ drop trigger trg6b;
+ --error 0, 1360
+ drop trigger trg6c;
+ --enable_warnings
+
+
+#Section 3.5.9.14
+# Test case: Ensure that all references to NEW. <Column name> may be used both to
+# read a data row and to modify a data row
+let $message= Testcase 3.5.9.14: (implied in previous tests);
+--source include/show_msg.inc
+
+
+##############################################
+################ Section 3.5.10 #################
+# Check on Trigger Activation
+##############################################
+#Section 3.5.10.1
+# Test case: Ensure that every trigger that should be activated by
+# every possible type of implicit insertion into its subject
+# table (INSERT into a view based on the subject table) is
+# indeed activated correctly
+#Section 3.5.10.2
+# Test case: Ensure that every trigger that should be activated by every
+# possible type of implicit insertion into its subject table
+# (UPDATE into a view based on the subject table) is indeed
+# activated correctly
+#Section 3.5.10.3
+# Test case: Ensure that every trigger that should be activated by every
+# possible type of implicit insertion into its subject table
+# (DELETE from a view based on the subject table) is indeed
+# activated correctly
+let $message= Testcase 3.5.10.1/2/3:;
+--source include/show_msg.inc
+
+ Create view vw11 as select * from tb3
+ where f122 like 'Test 3.5.10.1/2/3%';
+ Create trigger trg1a before insert on tb3
+ for each row set new.f163=111.11;
+ Create trigger trg1b after insert on tb3
+ for each row set @test_var='After Insert';
+ Create trigger trg1c before update on tb3
+ for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
+ Create trigger trg1d after update on tb3
+ for each row set @test_var='After Update';
+ Create trigger trg1e before delete on tb3
+ for each row set @test_var=5;
+ Create trigger trg1f after delete on tb3
+ for each row set @test_var= 2* @test_var+7;
+
+#Section 3.5.10.1
+ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
+ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
+ Insert into vw11 (f122, f151) values ('Not in View', 3);
+ select f121, f122, f151, f163
+ from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+ select f121, f122, f151, f163 from vw11;
+ select f121, f122, f151, f163
+ from tb3 where f122 like 'Not in View';
+
+#Section 3.5.10.2
+ Update vw11 set f163=1;
+ select f121, f122, f151, f163 from tb3
+ where f122 like 'Test 3.5.10.1/2/3%';
+ select f121, f122, f151, f163 from vw11;
+
+#Section 3.5.10.3
+ set @test_var=0;
+ Select @test_var as 'before delete';
+ delete from vw11 where f151=1;
+ select f121, f122, f151, f163 from tb3
+ where f122 like 'Test 3.5.10.1/2/3%';
+ select f121, f122, f151, f163 from vw11;
+ Select @test_var as 'after delete';
+
+#Cleanup
+ --disable_warnings
+ drop view vw11;
+ drop trigger trg1a;
+ drop trigger trg1b;
+ drop trigger trg1c;
+ drop trigger trg1d;
+ drop trigger trg1e;
+ drop trigger trg1f;
+ delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
+ --enable_warnings
+
+
+#Section 3.5.10.4
+# Test case: Ensure that every trigger that should be activated by every
+# possible type of implicit insertion into its subject table
+# (LOAD into the subject table) is indeed activated correctly
+let $message= Testcase 3.5.10.4:;
+--source include/show_msg.inc
+
+ eval create table tb_load (f1 int, f2 char(25),f3 int) engine=$engine_type;
+ Create trigger trg4 before insert on tb_load
+ for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
+
+ set @counter= 0;
+ select @counter as 'Rows Loaded Before';
+ --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+ eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load;
+
+ select @counter as 'Rows Loaded After';
+ Select * from tb_load limit 10;
+
+#Cleanup
+ --disable_warnings
+ drop trigger trg4;
+ drop table tb_load;
+ --enable_warnings
+
+
+#Section 3.5.10.5
+# Testcase: Ensure that every trigger that should be activated by every possible
+# type of implicit update of its subject table (e.g.a FOREIGN KEY SET
+# DEFAULT action or an UPDATE of a view based on the subject table) is
+# indeed activated correctly
+let $message= Testcase 3.5.10.5: (implemented in trig_frkey.test);
+--source include/show_msg.inc
+
+
+#Section 3.5.10.6
+# Testcase: Ensure that every trigger that should be activated by every possible
+# type of implicit deletion from its subject table (e.g.a FOREIGN KEY
+# CASCADE action or a DELETE from a view based on the subject table) is
+# indeed activated correctly
+let $message= Testcase 3.5.10.6: (implemented in trig_frkey.test);
+--source include/show_msg.inc
+
+#Section 3.5.10.extra
+# Testcase: Ensure that every trigger that should be activated by every possible
+# type of implicit deletion from its subject table (e.g. an action performed
+# on the subject table from a stored procedure is indeed activated correctly
+let $message= Testcase 3.5.10.extra:;
+--source include/show_msg.inc
+
+ eval create table t1_sp (var136 tinyint, var151 decimal) engine=$engine_type;
+
+ create trigger trg before insert on t1_sp
+ for each row set @counter=@counter+1;
+ # declare continue handler for sqlstate '01000' set done = 1;
+
+ delimiter //;
+ create procedure trig_sp()
+ begin
+ declare done int default 0;
+ declare var151 decimal;
+ declare var136 tinyint;
+ declare cur1 cursor for select f136, f151 from tb3;
+ declare continue handler for sqlstate '01000' set done = 1;
+ open cur1;
+ fetch cur1 into var136, var151;
+ wl_loop: WHILE NOT done DO
+ insert into t1_sp values (var136, var151);
+ fetch cur1 into var136, var151;
+ END WHILE wl_loop;
+ close cur1;
+ end//
+ delimiter ;//
+
+ set @counter=0;
+ select @counter;
+ --error 1329
+ call trig_sp();
+ select @counter;
+ select count(*) from tb3;
+ select count(*) from t1_sp;
+
+#Cleanup
+ --disable_warnings
+ drop procedure trig_sp;
+ drop trigger trg;
+ drop table t1_sp;
+ --enable_warnings
+
+##################################
+########## Section 3.5.11 ########
+# Check on Trigger Performance #
+##################################
+#Section 3.5.11.1
+# Testcase: Ensure that a set of complicated, interlocking triggers that are activated
+# by multiple trigger events on no fewer than 50 different tables with at least
+# 500,000 rows each, all work correctly, return the correct results, and have
+# the correct effects on the database. It is expected that the Services Provider
+# will use its own skills and experience in database testing to devise tables and
+# triggers that fulfill this requirement.
+let $message= Testcase 3.5.11.1 (implemented in trig_perf.test);
+--source include/show_msg.inc
+
+# Cleanup section 3.5
+ connection default;
+ drop user test_general@localhost;
+ drop user test_general;
+ drop user test_super@localhost;
+
+##########################################
+# Other Scenasrios (not in requirements) #
+##########################################
+# Testcase: y.y.y.2:
+# Checking for triggers starting triggers (no direct requirement)
+let $message= Testcase y.y.y.2: Check for triggers starting triggers;
+--source include/show_msg.inc
+
+ use test;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2_1;
+ drop table if exists t2_2;
+ drop table if exists t2_3;
+ drop table if exists t2_4;
+ drop table if exists t3;
+ --enable_warnings
+
+ create table t1 (f1 integer);
+ create table t2_1 (f1 integer);
+ create table t2_2 (f1 integer);
+ create table t2_3 (f1 integer);
+ create table t2_4 (f1 integer);
+ create table t3 (f1 integer);
+
+ insert into t1 values (1);
+ delimiter //;
+ create trigger tr1 after insert on t1 for each row
+ BEGIN
+ insert into t2_1 (f1) values (new.f1+1);
+ insert into t2_2 (f1) values (new.f1+1);
+ insert into t2_3 (f1) values (new.f1+1);
+ insert into t2_4 (f1) values (new.f1+1);
+ END//
+ delimiter ;//
+
+ create trigger tr2_1 after insert on t2_1 for each row
+ insert into t3 (f1) values (new.f1+10);
+ create trigger tr2_2 after insert on t2_2 for each row
+ insert into t3 (f1) values (new.f1+100);
+ create trigger tr2_3 after insert on t2_3 for each row
+ insert into t3 (f1) values (new.f1+1000);
+ create trigger tr2_4 after insert on t2_4 for each row
+ insert into t3 (f1) values (new.f1+10000);
+
+#lock tables t1 write, t2_1 write, t2_2 write, t2_3 write, t2_4 write, t3 write;
+ insert into t1 values (1);
+#unlock tables;
+ select * from t3;
+
+#Cleanup
+ --disable_warnings
+ drop trigger tr1;
+ drop trigger tr2_1;
+ drop trigger tr2_2;
+ drop trigger tr2_3;
+ drop trigger tr2_4;
+ drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
+ --enable_warnings
+
+# Testcase: y.y.y.3:
+# Checking for circular trigger definitions
+let $message= Testcase y.y.y.3: Circular trigger reference;
+--source include/show_msg.inc
+ use test;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ drop table if exists t3;
+ drop table if exists t4;
+ --enable_warnings
+ eval create table t1 (f1 integer) engine = $engine_type;
+ eval create table t2 (f2 integer) engine = $engine_type;
+ eval create table t3 (f3 integer) engine = $engine_type;
+ eval create table t4 (f4 integer) engine = $engine_type;
+
+ insert into t1 values (0);
+ create trigger tr1 after insert on t1
+ for each row insert into t2 (f2) values (new.f1+1);
+ create trigger tr2 after insert on t2
+ for each row insert into t3 (f3) values (new.f2+1);
+ create trigger tr3 after insert on t3
+ for each row insert into t4 (f4) values (new.f3+1);
+ create trigger tr4 after insert on t4
+ for each row insert into t1 (f1) values (new.f4+1);
+
+ # OBN See bug 11896
+ --error 1442
+ insert into t1 values (1);
+ select * from t1;
+ select * from t2;
+ select * from t3;
+ select * from t4;
+
+#Cleanup
+ --disable_warnings
+ drop trigger tr1;
+ drop trigger tr2;
+ drop trigger tr3;
+ drop trigger tr4;
+ drop table t1;
+ drop table t2;
+ drop table t3;
+ drop table t4;
+ --enable_warnings
+
+
+#Section y.y.y.4
+# Testcase: create recursive trigger/storedprocedures conditions
+let $message= Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889);
+--source include/show_msg.inc
+
+set @sql_mode='traditional';
+ eval create table t1_sp (
+ count integer,
+ var136 tinyint,
+ var151 decimal) engine=$engine_type;
+
+ delimiter //;
+ create procedure trig_sp()
+ begin
+ declare done int default 0;
+ declare var151 decimal;
+ declare var136 tinyint;
+ declare cur1 cursor for select f136, f151 from tb3;
+ declare continue handler for sqlstate '01000' set done = 1;
+ set @counter= @counter+1;
+ open cur1;
+ fetch cur1 into var136, var151;
+ wl_loop: WHILE NOT done DO
+ insert into t1_sp values (@counter, var136, var151);
+ fetch cur1 into var136, var151;
+ END WHILE wl_loop;
+ close cur1;
+ end//
+ delimiter ;//
+
+ create trigger trg before insert on t1_sp
+ for each row call trig_sp();
+
+ set @counter=0;
+ select @counter;
+ --error 1424
+ call trig_sp();
+ select @counter;
+ select count(*) from tb3;
+ select count(*) from t1_sp;
+
+#Cleanup
+ --disable_warnings
+ drop procedure trig_sp;
+ drop trigger trg;
+ drop table t1_sp;
+ --enable_warnings
+
+
+# Testcase: y.y.y.5:
+# Checking rollback of nested trigger definitions
+let $message= Testcase y.y.y.5: Roleback of nested trigger references;
+--source include/show_msg.inc
+
+ set @@sql_mode='traditional';
+ use test;
+ --disable_warnings
+ drop table if exists t1;
+ drop table if exists t2;
+ drop table if exists t3;
+ drop table if exists t4;
+ --enable_warnings
+ eval create table t1 (f1 integer) engine = $engine_type;
+ eval create table t2 (f2 integer) engine = $engine_type;
+ eval create table t3 (f3 integer) engine = $engine_type;
+ eval create table t4 (f4 tinyint) engine = $engine_type;
+ show create table t1;
+ insert into t1 values (1);
+ create trigger tr1 after insert on t1
+ for each row insert into t2 (f2) values (new.f1+1);
+ create trigger tr2 after insert on t2
+ for each row insert into t3 (f3) values (new.f2+1);
+ create trigger tr3 after insert on t3
+ for each row insert into t4 (f4) values (new.f3+1000);
+
+#lock tables t1 write, t2 write, t3 write, t4 write;
+
+ set autocommit=0;
+ start transaction;
+ --error 1264
+ insert into t1 values (1);
+ commit;
+ select * from t1;
+ select * from t2;
+ select * from t3;
+#unlock tables;
+#Cleanup
+ --disable_warnings
+ drop trigger tr1;
+ drop trigger tr2;
+ drop trigger tr3;
+ drop table t1;
+ drop table t2;
+ drop table t3;
+ drop table t4;
+ --enable_warnings
+
diff --git a/mysql-test/suite/funcs_1/views/func_view.inc b/mysql-test/suite/funcs_1/views/func_view.inc
new file mode 100644
index 00000000000..c477eafc610
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/func_view.inc
@@ -0,0 +1,1405 @@
+###################################################
+# #
+# Functions within VIEWs #
+# #
+###################################################
+# 14.09.2005 ML
+
+let $message= ! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables;
+--source include/show_msg80.inc
+#
+# 0. Some notes about this test:
+# #################################################################
+#
+# 0.1 This test is unfinished and incomplete, but already useful.
+# -----------------------------------------------------------------
+# 0.1.1 There will be architectural changes in future.
+# The long sequences with
+# let $col_type= <column to use>;
+# --source suite/funcs_1/views/<file containing the
+# select with function>
+# per every column type do not look very smart.
+#
+# Ugly combinations of functions and data types must be also checked,
+# because an accidental typo like assigning a string column to an
+# numeric parameter could happen and should not result in a server crash.
+#
+# Maybe it is better to change the architecture of this test in such
+# a way:
+# 1. A generator script (this one or written in Perl or SP language)
+# generates an prototype of the the final testscript.
+# 2. Some manual adjustments because of open bugs (depending on
+# storage engine or function) might be needed (I hope not :)
+# 3. The final testscript is pushed to the other regression testscripts.
+# Advantage: The analysis of bugs, extension and maintenance of this
+# test will be much easier.
+# Disadvantage: Much redundant code within the final testscript,
+# but the maintenance of the redundant code will be done
+# by the script generator.
+#
+# 0.1.2 The behaviour of SELECTs on VIEWs could be affected by the SQL mode
+# which was valid during VIEW creation time. This means some variations
+# of the SQL mode are needed.
+# 0.1.3 There are much more functions to be tested.
+# 0.1.4 There are problems with the option "--ps-protocol".
+# Double values with 15 digit mantissa are printed with 14 digit
+# mantissa (Bug#11589).
+# I altered the Minimum/Maximum double values to 14 digit mantissa
+# to avoid these problems. But there are some other unsolved problems
+# with "--ps-protocol".
+--disable_ps_protocol
+# 0.1.5 The result sets of some CAST sub testcases with ugly function parameter
+# column data type combinations must be discussed.
+#
+#
+# 0.2 How to valuate the test results:
+# ---------------------------------------------------------------------------
+# Due to the extreme "greedy bug hunting" architecture (combinatorics
+# + heavy use of sourced scripts) of the following tests, there will be
+# - no abort of the test execution, when one statements gets an return
+# code != 0 (The sub testcases are independend.)
+# But statements, which do not make sense like SELECT on non existent
+# VIEW will be omitted. This decreases the amount of useless output.
+# - a file with expected results, which might contain incorrect server
+# responses
+# There are open bugs and I cannot omit statements which reveal these
+# bugs.
+# But there will be a special messages within the protocol files.
+# Example:
+# "Attention: CAST --> SIGNED INTEGER
+# The file with expected results suffers from Bug 5083 5913 9809";
+# means, the file with expected results contains result sets which
+# are known to be wrong.
+# "Attention: The last <whatever> failed"
+# means, a statement which should be successful (bugfree MySQL)
+# failed.
+#
+# "Passed" : The behaviour of your MySQL version does not differ from the
+# version used to generate the files with expected results.
+# Known bugs affecting these tests could be retrieved by
+# grep "Attention" r/<testcase>.result .
+#
+# "Failed" : The behaviour of your MySQL version differs from the version
+# used to generate the files with expected results.
+# These differences could be result of bug fixes or new bugs.
+# Please compare r/<testcase>.reject and r/<testcase>.result .
+#
+# The test will abort if one of the basic preparation statement fails
+# (except ALTER TABLE ADD ...).
+#
+#
+# 0.3 How to debug sub testcases with "unexpected" results:
+# ---------------------------------------------------------------------------
+# 1. Please execute this test and copy the "reject" file to a save place.
+# Search within the "reject" file for the sub testcase (the SELECT)
+# with the suspicious result set or server response.
+# Now all t1_values records are preloaded.
+# 2. Start the server without the initial cleanup of databases etc.
+# This preserves the content of the table t1_values, which
+# might be needed for replaying the situation.
+# Example:
+# ./mysql-test-run.pl --socket=var/tmp/master.sock --start-dirty
+# 3. Issue the statements needed by using "mysql" or "mysqltest".
+#
+# Maybe an internal routine of this test fails. Please ask me (ML) or
+# enable the logging of auxiliary queries and try to analyze the
+# problem.
+#
+#
+# 0.4 How to extend the number of functions to be checked:
+# ---------------------------------------------------------------------------
+# Please jump to the paragraphs of the basic preparations
+# 1. Extend t1_values with the columns you need
+# 2. Insert some predefinded rows
+# 3. Add the SELECTs with function which should be used within VIEWs
+# and
+# records which should be used dedicated to the SELECT above
+#
+#
+# 0.5 How to alter the internal routines of this test:
+# ---------------------------------------------------------------------------
+# Please try to achieve a state where the protocol
+# - contains ALL statements, which are needed to replay a problem within
+# the field of functions within VIEWs
+# - does not contain too much auxiliary statements, which are not needed
+# to replay a problem (--> "--disable_query_log")
+# Example:
+# Needed for replay:
+# - DROP/CREATE TABLE t1_values
+# - INSERT of records into t1_values
+# - DROP/CREATE/SELECT/SHOW VIEW v1
+# - SELECT direct on base table
+# Not needed for replay:
+# - SET @<uservariable> = <value>
+# - DROP/CREATE/INSERT/SELECT TABLE t1_selects, t1_modes
+#
+#
+# 0.6 A trick for checking results
+# ---------------------------------------------------------------------------
+# Standard setting for common execution of this test:
+ let $simple_select_result= 1;
+ let $view_select_result= 1;
+# The implementation of some additional function tests may lead to
+# masses of result sets, which have to be checked. The result sets of
+# the simple selects on the base table must equal the result sets of the
+# queries on the VIEWs. This step could be made more comfortable by
+# 1. Edit this file to
+# let $simple_select_result= 1;
+# let $view_select_result= 0;
+# Please execute this test.
+# The script will omit CREATE/DROP/SHOW/SELECT on VIEW.
+# The "reject" file contains only the simple select result sets.
+# 2. Edit this file to
+# let $simple_select_result= 0;
+# let $view_select_result= 1;
+# Please execute this test.
+# The script will work with the VIEWs, but omit the simple selects.
+# The "reject" file contains the view select result sets.
+# 3. Compare the "reject" files of 1. and 2. within a graphical diff tool.
+#
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+--disable_query_log
+# Storage for the SELECTs to be used for the VIEW definition
+CREATE TABLE t1_selects
+(
+ id BIGINT AUTO_INCREMENT,
+ my_select VARCHAR(200) NOT NULL,
+ disable_result ENUM('Yes','No') NOT NULL default 'No',
+ PRIMARY KEY(id),
+ UNIQUE (my_select)
+);
+
+# MODES to be checked
+CREATE TABLE t1_modes
+(
+ id BIGINT AUTO_INCREMENT,
+ my_mode VARCHAR(200) NOT NULL,
+ PRIMARY KEY(id),
+ UNIQUE (my_mode)
+);
+--enable_query_log
+
+# The table to be used in the FROM parts of the SELECTs
+eval CREATE TABLE t1_values
+(
+ id BIGINT AUTO_INCREMENT,
+ select_id BIGINT,
+ PRIMARY KEY(id)
+) ENGINE = $type;
+
+##### BEGIN Basic preparations #######################################
+#
+# 1. Extend t1_values with the columns you need
+# - the column name must show the data type
+# - do not add NOT NULL columns
+# - do not worry if the intended column data type is not
+# available for some storage engines
+# Please do not forget to assign values for the new columns (paragraph 2.).
+--disable_abort_on_error
+ALTER TABLE t1_values ADD my_char_30 CHAR(30);
+ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000);
+ALTER TABLE t1_values ADD my_binary_30 BINARY(30);
+ALTER TABLE t1_values ADD my_varbinary_1000 VARBINARY(1000);
+ALTER TABLE t1_values ADD my_datetime DATETIME;
+ALTER TABLE t1_values ADD my_date DATE;
+ALTER TABLE t1_values ADD ts_dummy TIMESTAMP;
+ALTER TABLE t1_values ADD my_timestamp TIMESTAMP;
+ALTER TABLE t1_values ADD my_time TIME;
+ALTER TABLE t1_values ADD my_year YEAR;
+ALTER TABLE t1_values ADD my_bigint BIGINT;
+ALTER TABLE t1_values ADD my_double DOUBLE;
+ALTER TABLE t1_values ADD my_decimal DECIMAL(64,30);
+--enable_abort_on_error
+
+#-------------------------------------------------------------------------------
+
+#
+# 2. Insert some predefinded rows
+# Predefined rows
+# - t1_values.select_id IS NULL
+# - will be selected by every SELECT with function to be tested
+# - have to be inserted when sql_mode = 'traditional' is valid, because
+# we do not want to start with "illegal/unexpected/..." values.
+# Such experiments should be done in other testcases.
+# Please be careful
+# - modifying column values of predefined rows they might change many
+# result sets
+# - additional predefined rows should be really useful for the majority of
+# all sub testcases, since they blow up all result sets.
+SET sql_mode = 'traditional';
+#
+# 2.1 record -- everything to NULL
+INSERT INTO t1_values SET id = 0;
+#
+# 2.2 record -- everything to "minimum"
+# numbers, date/time types -> minimum of range
+# strings, blobs, binaries -> ''
+# FIXME enum, set ??
+INSERT INTO t1_values SET
+ my_char_30 = '',
+ my_varchar_1000 = '',
+ my_binary_30 = '',
+ my_varbinary_1000 = '',
+ my_datetime = '0001-01-01 00:00:00',
+ my_date = '0001-01-01',
+ my_timestamp = '1970-01-01 03:00:01',
+ my_time = '-838:59:59',
+ my_year = '1901',
+ my_bigint = -9223372036854775808,
+ my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 ,
+ my_double = -1.7976931348623E+308;
+# Note(ML): Values like
+# - my_timestamp = '19700101030000' do not work
+# - my_double = -1.7976931348623157E+308 cause problems with
+# --ps-protocol (Bug#11589)
+#
+# 2.3 record -- everything to "maximum"
+# numbers, date/time types -> maximum of range
+# strings, blobs, binaries -> '<- full length of used data type>'
+# FIXME enum, set ??
+INSERT INTO t1_values SET
+ my_char_30 = '<--------30 characters------->',
+ my_varchar_1000 = CONCAT('<---------1000 characters',
+ RPAD('',965,'-'),'--------->'),
+ my_binary_30 = '<--------30 characters------->',
+ my_varbinary_1000 = CONCAT('<---------1000 characters',
+ RPAD('',965,'-'),'--------->'),
+ my_datetime = '9999-12-31 23:59:59',
+ my_date = '9999-12-31',
+ my_timestamp = '2038-01-01 02:59:59',
+ my_time = '838:59:59',
+ my_year = 2155,
+ my_bigint = 9223372036854775807,
+ my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 ,
+ my_double = 1.7976931348623E+308;
+# Note(ML): Values like
+# - my_timestamp = '20380101030000' do not work
+# - my_double = 1.7976931348623157E+308 cause problems with
+# --ps-protocol (Bug#11589)
+#
+# 2.4 record -- everything to "magic" value if available or
+# other interesting value
+# numbers -> 0
+# strings, blobs, binaries -> not full length of used data type, "exotic"
+# characters and preceeding and trailing spaces
+# FIXME enum, set ??
+INSERT INTO t1_values SET
+ my_char_30 = ' ---äÖüß@µ*$-- ',
+ my_varchar_1000 = ' ---äÖüß@µ*$-- ',
+ my_binary_30 = ' ---äÖüß@µ*$-- ',
+ my_varbinary_1000 = ' ---äÖüß@µ*$-- ',
+ my_datetime = '2004-02-29 23:59:59',
+ my_date = '2004-02-29',
+ my_timestamp = '2004-02-29 23:59:59',
+ my_time = '13:00:00',
+ my_year = 2000,
+ my_bigint = 0,
+ my_decimal = 0.0,
+ my_double = 0;
+#
+# 2.5 record -- everything to "harmless" value if available
+# numbers -> -1 (logical)
+# strings, blobs, binaries -> '-1' useful for numeric functions
+# FIXME enum, set ??
+INSERT INTO t1_values SET
+ my_char_30 = '-1',
+ my_varchar_1000 = '-1',
+ my_binary_30 = '-1',
+ my_varbinary_1000 = '-1',
+ my_datetime = '2005-06-28 10:00:00',
+ my_date = '2005-06-28',
+ my_timestamp = '2005-06-28 10:00:00',
+ my_time = '10:00:00',
+ my_year = 2005,
+ my_bigint = -1,
+ my_decimal = -1.000000000000000000000000000000,
+ my_double = -0.1E+1;
+
+#-------------------------------------------------------------------------------
+
+#
+# 3. Add the SELECTs with function which should be used within VIEWs
+# and
+# records which should be used dedicated to the SELECT above
+# - Please avoid WHERE clauses
+# - Include the PRIMARY KEY ("id") of the base table t1_values into the
+# select column list
+# - Include the base table column used as function parameter into the
+# select column list, because it is much easier to check the results
+# - Do not forget to escape single quotes
+# Example:
+# SET @my_select = 'SELECT sqrt(my_bigint), my_bigint, id FROM t1_values'
+# SET @my_select = 'SELECT CONCAT(\'A\',my_char_30), id FROM t1_values';
+# - Statements, which reveal open crashing bugs MUST be disabled.
+# - Result sets must not contain data, which might differ between boxes
+# executing this test.
+# Example: current time, absolute path to some files ...
+# - Please derive the functions to be checked from the MySQL manual
+# and use the same order. This means copy the the function names as
+# comment into this test and start to implement a testcase for your
+# most preferred function.
+# This method avoids that we forget a function and gives a better
+# overview.
+#
+# If you have the time to check the result sets do the insert of the
+# SELECT with function via:
+# eval SET @my_select =
+# '<your SELECT>';
+# --source suite/funcs_1/views/fv1.inc
+# fv1.inc sets t1_selects.disable_result to 'No' and the effect will be,
+# that the result set will be logged.
+#
+# If you do have the time to check the result sets do the insert of the
+# SELECT with function via:
+# eval SET @my_select =
+# '<your SELECT>';
+# --source suite/funcs_1/views/fv2.inc
+# fv2.inc sets t1_selects.disable_result to 'Yes' and the effect will be,
+# that the result set will be not logged.
+# This should be only a temporary solution and it does not remove the
+# need to check the server return codes.
+# That means even when we do not have the time to check the correctness of
+# the result sets, we check if
+# - SELECT <function> or
+# - SELECT * FROM <VIEW with function>
+# crash the server or get suspicious server responses.
+#
+# - the SELECTs will be applied to the rows defined here (3.) +
+# all predefined rows (2.)
+# - the rows dedicated to the SELECT should contain especially interesting
+# column values or combinations of column values, which are not covered
+# by the predefined records
+# - The records have to be inserted when sql_mode = 'traditional' is valid.
+# - Please do not insert records with column values where the allowed
+# range is exceeded. The SQL mode 'traditional' will prevent such
+# inserts. Such experiments should be done in other tests, because
+# they inflate the current test without giving an appropriate value.
+#
+# Example:
+# The function to be tested is "sqrt".
+# The minimum, maximum, default and NULL value are covered by the
+# predefined rows.
+# A value where sqrt(<value>) = <integer value> in strict mathematics
+# would be of interest.
+# --> Add a record with my_bigint = 4
+# --> Just for fun my_bigint = -25 .
+#
+# Some internal stuff
+PREPARE ins_sel_with_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'No'" ;
+PREPARE ins_sel_no_result FROM "INSERT INTO t1_selects SET my_select = @my_select,
+disable_result = 'Yes'" ;
+SET sql_mode = 'traditional';
+# --disable_query_log
+
+let $col_type= my_bigint;
+# Example:
+# eval SET @my_select = 'SELECT CONCAT(''A'', $col_type), $col_type, id';
+eval SET @my_select = 'SELECT sqrt($col_type), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+# Content of suite/funcs_1/views/fv1.inc :
+# --disable_query_log
+# EXECUTE ins_sel_with_result;
+# SET @select_id = LAST_INSERT_ID();
+# --enable_query_log
+
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = 4;
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = -25;
+# SELECT * FROM t1_values;
+
+# 1. Cast Functions and Operators
+# 1.1. CAST
+#
+# Note(ML): I guess the CAST routines are used in many other functions.
+# Therefore check also nearly all "ugly" variants like
+# CAST(<string composed of non digits> AS DECIMAL) here.
+#
+# suite/funcs_1/views/fv_cast.inc contains
+# SELECT CAST($col_type AS $target_type), ...
+#
+#
+# 1.1.1. CAST --> BINARY
+let $target_type= BINARY;
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.2. CAST --> CHAR
+let $target_type= CHAR;
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.3. CAST --> DATE
+let $target_type= DATE;
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27';
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27';
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27';
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27';
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = 20050627;
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = +20.050627E+6;
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.4. CAST --> DATETIME
+let $target_type= DATETIME;
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27 17:58';
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27 17:58';
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27 17:58';
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '2005-06-27 17:58';
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = 200506271758;
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = +0.0200506271758E+13;
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.5. CAST --> TIME
+let $target_type= TIME;
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '1 17:58';
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '1 17:58';
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '1 17:58';
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '1 17:58';
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = 1758;
+let $col_type= my_double;
+let $message= some statements disabled because of
+Bug#12440: CAST(data type DOUBLE AS TIME) strange results;
+--source include/show_msg80.inc
+if (0)
+{
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = +1.758E+3;
+}
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.6. CAST --> DECIMAL
+# Set the following to (37,2) since the default was changed to (10,0) - OBN
+let $target_type= DECIMAL(37,2);
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '-3333.3333';
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '-3333.3333';
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '-3333.3333';
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = '-3333.3333';
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_cast.inc
+let $message= some statements disabled because of
+Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian;
+--source include/show_msg80.inc
+if (0)
+{
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ $col_type = -0.33333333E+4;
+}
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.7. CAST --> SIGNED INTEGER
+let $target_type= SIGNED INTEGER;
+#
+let $message=
+"Attention: CAST --> SIGNED INTEGER
+ The file with expected results suffers from
+ Bug#5083 Big integer values are inserted as negative into
+ decimal/string columns
+ Bug#5913 Traditional mode: BIGINT range not correctly delimited
+ Both have the status: To be fixed later";
+--source include/show_msg80.inc
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_cast.inc
+let $message= some statements disabled because of
+Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result;
+--source include/show_msg80.inc
+if (0)
+{
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+}
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.1.8. CAST --> UNSIGNED INTEGER
+let $target_type= UNSIGNED INTEGER;
+#
+let $message=
+"Attention: CAST --> UNSIGNED INTEGER
+ The file with expected results suffers from Bug 5083 5913 9809";
+--source include/show_msg80.inc
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_cast.inc
+let $message= some statements disabled because of
+Bugs#8663: cant use bgint unsigned as input to cast;
+--source include/show_msg80.inc
+if (0)
+{
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_cast.inc
+}
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_cast.inc
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_cast.inc
+
+
+# 1.2. BINARY
+# Manual: BINARY str is a shorthand for CAST(str AS BINARY).
+# Therefore we do not test it here in the moment.
+# FIXME: Add testcases for str in CHAR and VARCHAR only.
+
+
+# 1.3 CONVERT(expr USING transcoding_name)
+#
+# 1.3.1 CONVERT(expr USING utf8)
+let $target_charset= utf8;
+#
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+#
+# 1.3.2 CONVERT(expr USING koi8r)
+let $target_charset= koi8r;
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+
+
+# 2. Control Flow Functions
+# 2.1. CASE value WHEN [compare-value] THEN result [WHEN ...] [ELSE result]
+# END or
+# CASE WHEN [condition] THEN result [WHEN ...] [ELSE result] END
+#
+# FIXME: to be implemented
+#
+# 2.2. IF(expr1,expr2,expr3)
+# expr1 is TRUE when (expr1 <> 0 and expr1 <> NULL) is fulfilled
+#
+# 2.2.1 IF(expr1,expr2,expr3) with expr1 = <column>
+#
+# Note(ML): Strings, which do not contain a number -> FALSE
+#
+# suite/funcs_1/views/fv_if1.inc contains
+# SELECT IF($col_type, 'IS TRUE', 'IS NOT TRUE'), ...
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_if1.inc
+#
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_if1.inc
+
+
+# 2.2.2 IF(expr1,expr2,expr3) with expr1 != <column>
+#
+# suite/funcs_1/views/fv_if2.inc contains
+# SELECT IF($col_type IS NULL, 'IS NULL', 'IS NOT NULL'), ...
+#
+# Note(ML): July 2005 IF($col_type IS NULL, ...) is mapped to a VIEW definition
+# create ... view ... as
+# select if(isnull(`test`.`t1`.`f1`),_latin1'IS NULL',
+# _latin1'IS NOT NULL'),...
+#
+let $message=
+"Attention: IF($col_type IS NULL, ...
+ The file with expected results suffers from
+ Bug#11689. successful CREATE VIEW but SELECT on view fails.";
+--source include/show_msg80.inc
+# Bug#11689 success on Create view .. IF(col1 IS NULL,...), col2 ; but SELECT fails
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_if2.inc
+#
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_if2.inc
+
+
+# 2.3. IFNULL(expr1,expr2)
+# If expr1 is not NULL, IFNULL() returns expr1, else it returns expr2.
+#
+# suite/funcs_1/views/fv_ifnull.inc contains
+# SELECT IFNULL($col_type, 'IS_NULL'), ....
+# FIXME: The mixup of non string column values
+# and the string 'IS NULL' within the first column of the
+# result table is extreme ugly.
+# CAST(IFNULL($col_type, 'IS_NULL') AS CHAR) looks better, but
+# it has the disadvantage, that it involves CAST as additional
+# function.
+#
+let $col_type= my_char_30;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_varchar_1000;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_binary_30;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_varbinary_1000;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_bigint;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_decimal;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_double;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_datetime;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_date;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_timestamp;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_time;
+--source suite/funcs_1/views/fv_ifnull.inc
+#
+let $col_type= my_year;
+--source suite/funcs_1/views/fv_ifnull.inc
+
+
+# 2.4. NULLIF(expr1,expr2)
+# Returns NULL if expr1 = expr2 is true, else returns expr1.
+# This is the same as
+# CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END.
+#
+# FIXME: to be implemented
+#
+
+
+# 3. String Functions
+# 3.1. ASCII(str)
+# 3.2. BIN(N)
+# FIXME: to be implemented
+#
+# 3.3. BIT_LENGTH(str)
+# Returns the length of the string str in bits.
+#
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT BIT_LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT BIT_LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT BIT_LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT BIT_LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+
+
+# 3.4. CHAR(N,...)
+# 3.5. CHAR_LENGTH(str)
+# 3.6 CHARACTER_LENGTH(str)
+# CHARACTER_LENGTH() is a synonym for CHAR_LENGTH().
+# 3.7. COMPRESS(string_to_compress)
+# 3.8. CONCAT(str1,str2,...)
+# 3.9. CONCAT_WS(separator,str1,str2,...)
+# 3.10. CONV(N,from_base,to_base)
+# 3.11. ELT(N,str1,str2,str3,...)
+# 3.12. EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
+# 3.13. FIELD(str,str1,str2,str3,...)
+# 3.14. FIND_IN_SET(str,strlist)
+# 3.15. HEX(N_or_S
+# 3.16. INSERT(str,pos,len,newstr)
+# 3.17. INSTR(str,substr)
+# This is the same as the two-argument form of LOCATE(),
+# except that the arguments are swapped.
+# The majority of the testcases should be made with LOCATE().
+# Therefore test only one example here.
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT INSTR($col_type, ''char''),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+
+# 3.18. LCASE(str)
+# LCASE() is a synonym for LOWER().
+# The majority of the testcases should be made with LOWER().
+# Therefore test only one example here.
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT LCASE($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+
+# 3.19. LEFT(str,len)
+# Returns the leftmost len characters from the string str.
+let $col_type= my_char_30;
+eval SET @my_select =
+'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select =
+'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_binary_30;
+eval SET @my_select =
+'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select =
+'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+#
+let $message=
+"Attention: LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', <numeric column>)
+ The file with expected results suffers from Bug 10963 11728"
+ and the testcases with length = BIGINT or DOUBLE column are deactivated,
+ because there are 32/64 Bit differences;
+--source include/show_msg80.inc
+# Bug#11728 string function LEFT, strange undocumented behaviour, strict mode
+# Bug#10963 LEFT string function returns wrong result with large length
+let $col_type= my_bigint;
+if (0)
+{
+# Bug#10963 LEFT string function returns wrong result with large length
+eval SET @my_select =
+'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', $col_type), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+}
+#
+let $col_type= my_decimal;
+eval SET @my_select =
+'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', $col_type), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+#
+if (0)
+{
+# Bug#10963 LEFT string function returns wrong result with large length
+let $col_type= my_double;
+eval SET @my_select =
+'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', $col_type), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+}
+
+
+# 3.20. LENGTH(str)
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT LENGTH($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+
+# 3.21. LOAD_FILE(file_name)
+# Reads the file and returns the file contents as a string.
+# If the file doesn't exist or cannot be read ... ,
+# the function returns NULL.
+# SELECT LOADFILE
+eval SET @my_select =
+'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
+
+
+# 3.22. LOCATE(substr,str) , LOCATE(substr,str,pos)
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT LOCATE(''char'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT LOCATE(''char'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT LOCATE(''char'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT LOCATE(''char'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+#------------------------------------------------------
+let $col_type1= my_char_30;
+# against all other
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type1 ),
+$col_type1, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_varchar_1000;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_binary_30;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_varbinary_1000;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+#------------------------------------------------------
+let $col_type1= my_varchar_1000;
+# against all other
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type1 ),
+$col_type1, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_char_30;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_binary_30;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_varbinary_1000;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+#------------------------------------------------------
+let $col_type1= my_binary_30;
+# against all other
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type1 ),
+$col_type1, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_char_30;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_varchar_1000;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_varbinary_1000;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+#------------------------------------------------------
+let $col_type1= my_varbinary_1000;
+# against all other
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type1 ),
+$col_type1, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_char_30;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_varchar_1000;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type2= my_binary_30;
+eval SET @my_select = 'SELECT LOCATE($col_type1, $col_type2 ),
+$col_type1, $col_type2 id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+# FIXME How to test exotic or interesting substr values like NULL, '', ' '
+# without getting too much result rows
+# FIXME Testcases with LOCATE(substr,str,pos)
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT LOCATE(''-'', $col_type, 3),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT LOCATE(''-'', $col_type, 3),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT LOCATE(''-'', $col_type, 3),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT LOCATE(''-'', $col_type, 3),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+#--------------------------------------------------------
+let $col_type= my_bigint;
+eval SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_double;
+eval SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_decimal;
+eval SET @my_select = 'SELECT LOCATE(''-'', '' - -ABC'', $col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+
+# 3.23. LOWER(str)
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT LOWER($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT LOWER($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT LOWER($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT LOWER($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+
+# 3.24. LPAD(str,len,padstr)
+# 3.25. LTRIM(str)
+let $col_type= my_char_30;
+eval SET @my_select = 'SELECT LTRIM($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varchar_1000;
+eval SET @my_select = 'SELECT LTRIM($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_binary_30;
+eval SET @my_select = 'SELECT LTRIM($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+let $col_type= my_varbinary_1000;
+eval SET @my_select = 'SELECT LTRIM($col_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv2.inc
+
+
+# 3.26. MAKE_SET(bits,str1,str2,...)
+# .....
+# FIXME: to be implemented
+
+################################################################################
+# Please do not add SELECTs and interesting records after this line. #
+# These last SELECTs are mostly for checking the testcase code itself. #
+################################################################################
+eval SET @my_select =
+ 'SELECT CONCAT(''A'',my_char_30), my_char_30, id FROM t1_values'; #
+--source suite/funcs_1/views/fv1.inc
+#
+eval SET @my_select = 'SELECT my_char_30, id FROM t1_values'; #
+--source suite/funcs_1/views/fv2.inc
+eval INSERT INTO t1_values SET select_id = @select_id,
+ my_char_30 = 'Viana do Castelo';
+################################################################################
+SET sql_mode = ''; #
+
+##### END Basic preparations #######################################
+
+
+let $message= "# The basic preparations end and the main test starts here";
+--source include/show_msg80.inc
+
+
+##### The tests start here #####################################################
+
+# Determine the number of different SELECTs to be checked
+--disable_query_log
+SELECT COUNT(*) INTO @num_selects FROM t1_selects;
+--enable_query_log
+# Debug statement
+# SELECT @num_selects AS "number of SELECTS:";
+
+--disable_abort_on_error
+let $select_id= `SELECT @num_selects`;
+while ($select_id)
+{
+ # Determine the SELECT
+ --disable_query_log
+ eval SELECT my_select, disable_result INTO @my_select, @disable_result
+ FROM t1_selects WHERE id = $select_id;
+ let $run_no_result= `SELECT @disable_result = 'Yes'`;
+ --enable_query_log
+ # Debug statement
+ # SELECT @my_select AS "SELECT:";
+ let $my_select= `SELECT @my_select`;
+
+ let $run0= 0;
+ if ($view_select_result)
+ {
+ # Create the VIEW
+ eval CREATE VIEW v1 AS $my_select;
+ --disable_query_log
+ eval set @got_errno= $mysql_errno ;
+ let $run0= `SELECT @got_errno = 0`;
+ let $print_warning= `SELECT @got_errno`;
+ if ($print_warning)
+ {
+ SELECT 'Attention: The last CREATE VIEW failed ' AS ""
+ UNION
+ SELECT '' ;
+ }
+ --enable_query_log
+ }
+
+ # FIXME The loop over the modes will start here.
+
+ if ($simple_select_result)
+ {
+ # Simple SELECT on the base table of the VIEW for comparison
+
+ if ($run_no_result)
+ {
+ --disable_result_log
+ }
+ eval $my_select
+ WHERE select_id = $select_id OR select_id IS NULL;
+ if ($run_no_result)
+ {
+ --enable_result_log
+ }
+ --disable_query_log
+ eval set @got_errno= $mysql_errno ;
+ let $print_warning= `SELECT @got_errno`;
+ if ($print_warning)
+ {
+ SELECT 'Attention: The last SELECT on the base table failed' AS ""
+ UNION
+ SELECT '' ;
+ }
+ --enable_query_log
+ }
+
+ # $run0 is 1, if CREATE VIEW was successful.
+ # That means SHOW CREATE VIEW/SELECT/DROP should be executed.
+ if ($run0)
+ {
+ # Check the CREATE VIEW statement
+ SHOW CREATE VIEW v1;
+ --disable_query_log
+ eval set @got_errno= $mysql_errno ;
+ let $print_warning= `SELECT @got_errno`;
+ if ($print_warning)
+ {
+ SELECT 'Attention: The last SHOW CREATE VIEW failed' AS ""
+ UNION
+ SELECT '' ;
+ }
+ --enable_query_log
+
+ # Maybe a Join is faster
+ if ($run_no_result)
+ {
+ --disable_result_log
+ }
+ eval SELECT v1.* FROM v1
+ WHERE v1.id IN (SELECT id FROM t1_values
+ WHERE select_id = $select_id OR select_id IS NULL);
+ if ($run_no_result)
+ {
+ --enable_result_log
+ }
+ --disable_query_log
+ eval set @got_errno= $mysql_errno ;
+ let $print_warning= `SELECT @got_errno`;
+ if ($print_warning)
+ {
+ SELECT 'Attention: The last SELECT from VIEW failed' AS ""
+ UNION
+ SELECT '' ;
+ }
+ --enable_query_log
+
+ DROP VIEW v1;
+ }
+
+ # FIXME The loop over the modes will end here.
+
+ # Produce two empty lines as separator between different SELECTS
+ # to be tested.
+ --disable_query_log
+ SELECT '' AS "";
+ --enable_query_log
+
+ dec $select_id ;
+}
+
+DROP TABLE t1_selects, t1_modes, t1_values;
diff --git a/mysql-test/suite/funcs_1/views/fv1.inc b/mysql-test/suite/funcs_1/views/fv1.inc
new file mode 100644
index 00000000000..3befbdde27b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/fv1.inc
@@ -0,0 +1,5 @@
+--disable_query_log
+EXECUTE ins_sel_with_result;
+SET @select_id = LAST_INSERT_ID();
+--enable_query_log
+
diff --git a/mysql-test/suite/funcs_1/views/fv2.inc b/mysql-test/suite/funcs_1/views/fv2.inc
new file mode 100644
index 00000000000..3bdddc6471b
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/fv2.inc
@@ -0,0 +1,5 @@
+--disable_query_log
+EXECUTE ins_sel_no_result;
+SET @select_id = LAST_INSERT_ID();
+--enable_query_log
+
diff --git a/mysql-test/suite/funcs_1/views/fv_cast.inc b/mysql-test/suite/funcs_1/views/fv_cast.inc
new file mode 100644
index 00000000000..8a878b8f4d4
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/fv_cast.inc
@@ -0,0 +1,4 @@
+--disable_query_log
+eval SET @my_select = 'SELECT CAST($col_type AS $target_type),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
diff --git a/mysql-test/suite/funcs_1/views/fv_if1.inc b/mysql-test/suite/funcs_1/views/fv_if1.inc
new file mode 100644
index 00000000000..39d832035c8
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/fv_if1.inc
@@ -0,0 +1,4 @@
+--disable_query_log
+eval SET @my_select = 'SELECT IF($col_type, ''IS TRUE'', ''IS NOT TRUE''),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
diff --git a/mysql-test/suite/funcs_1/views/fv_if2.inc b/mysql-test/suite/funcs_1/views/fv_if2.inc
new file mode 100644
index 00000000000..72a3c0a671e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/fv_if2.inc
@@ -0,0 +1,4 @@
+--disable_query_log
+eval SET @my_select = 'SELECT IF($col_type IS NULL, ''IS NULL'',
+''IS NOT NULL''), $col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
diff --git a/mysql-test/suite/funcs_1/views/fv_ifnull.inc b/mysql-test/suite/funcs_1/views/fv_ifnull.inc
new file mode 100644
index 00000000000..60fc066f59e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/fv_ifnull.inc
@@ -0,0 +1,4 @@
+--disable_query_log
+eval SET @my_select = 'SELECT IFNULL($col_type,''IS_NULL''),
+$col_type, id FROM t1_values';
+--source suite/funcs_1/views/fv1.inc
diff --git a/mysql-test/suite/funcs_1/views/views_master.inc b/mysql-test/suite/funcs_1/views/views_master.inc
new file mode 100644
index 00000000000..b06873af159
--- /dev/null
+++ b/mysql-test/suite/funcs_1/views/views_master.inc
@@ -0,0 +1,4036 @@
+#### suite/funcs_1/views/views_master.test
+
+let $message= ! Attention: The file with the expected results is not
+ | thoroughly checked.
+ ! The server return codes are correct, but
+ | most result sets where the table tb2 is
+ ! involved are not checked.;
+--source include/show_msg80.inc
+
+# As long as
+# Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill
+# is not fixed, we must switch the ps-protocol for some statements off.
+# If this bug is fixed, please
+# 1. set the following variable to 0
+# 2. check, if the test passes
+# 3. remove the workarounds
+let $have_bug_11589= 1;
+if ($have_bug_11589)
+{
+ let $message= There are some statements where the ps-protocol is switched off.
+ Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill;
+ --source include/show_msg80.inc
+}
+
+let $message= ! Attention: The file with the expected results suffers from
+Bug#10713: mysqldump includes database in create view and referenced tables;
+--source include/show_msg80.inc
+
+
+# The sub testcases are nearly independend. That is the reason why
+# we do not want to abort after the first error.
+--disable_abort_on_error
+
+
+# 3.3 Views
+# MySQL views are based on a subset of the view requirements described in
+# the following standard SQL document:
+#
+# * ISO/IEC 9075-2:2003 Information technology -- Database languages --
+# SQL -- Part 2: Foundation (SQL/Foundation)
+#
+# MySQL has also added some vendor-specific enhancements to the standard
+# SQL requirements.
+
+# FIXME (ML)
+# - Alter all object names so that they follow the v/t/..<number> scheme or
+# apply another method which prevents that customer data might be
+# accidently modified
+# - Remove any reference to the preloaded tables tb1 - tb4, if they could
+# be replaced without loss of value.
+# Example: failing CREATE VIEW statements
+# The goal is to split this script into two, where the first one does
+# not need the possibly huge tables.
+
+# Load records needed within the testcases.
+# We load them here and not within the testcases itself, because the
+# removal of any unneeded testcase during bug analysis should not alter
+# result sets.
+# Testcase 3.3.1.1
+insert into test.tb2 (f59,f60) values (76710,226546);
+insert into test.tb2 (f59,f60) values(2760,985654);
+insert into test.tb2 (f59,f60) values(569300,9114376);
+insert into test.tb2 (f59,f60) values(660,876546);
+insert into test.tb2 (f59,f60) values(250,87895654);
+insert into test.tb2 (f59,f60) values(340,9984376);
+insert into test.tb2 (f59,f60) values(3410,996546);
+insert into test.tb2 (f59,f60) values(2550,775654);
+insert into test.tb2 (f59,f60) values(3330,764376);
+insert into test.tb2 (f59,f60) values(441,16546);
+insert into test.tb2 (f59,f60) values(24,51654);
+insert into test.tb2 (f59,f60) values(323,14376);
+# Testcase 3.3.1.45
+insert into test.tb2 (f59,f60) values(34,41);
+insert into test.tb2 (f59,f60) values(04,74);
+insert into test.tb2 (f59,f60) values(15,87);
+insert into test.tb2 (f59,f60) values(22,93);
+# Testcase 3.3.1.46
+insert into test.tb2 (f59,f60) values(394,41);
+insert into test.tb2 (f59,f60) values(094,74);
+insert into test.tb2 (f59,f60) values(195,87);
+insert into test.tb2 (f59,f60) values(292,93);
+# Testcase 3.3.1.47
+insert into test.tb2 (f59,f60) values(0987,41) ;
+insert into test.tb2 (f59,f60) values(7876,74) ;
+# Testcase 3.3.1.52
+INSERT INTO tb2 (f59,f61) VALUES(321,765 );
+INSERT INTO tb2 (f59,f61) VALUES(9112,8771);
+# Testcase 3.3.1.53
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+INSERT INTO tb2 (f59,f61) VALUES (500,900 ) ;
+# Testcase 3.3.1.A1
+Insert into tb2 (f59,f60,f61) values (107,105,106) ;
+Insert into tb2 (f59,f60,f61) values (109,108,104) ;
+# Testcase 3.3.1.A2
+Insert into tb2 (f59,f60,f61) values (207,205,206) ;
+Insert into tb2 (f59,f60,f61) values (209,208,204) ;
+# Testcase 3.3.1.A3
+Insert into tb2 (f59,f60,f61) values (27,25,26) ;
+Insert into tb2 (f59,f60,f61) values (29,28,24) ;
+# Testcase 3.3.1.63
+Insert into tb2 (f59,f60,f61) values (17,15,16) ;
+Insert into tb2 (f59,f60,f61) values (19,18,14) ;
+insert into tb2 (f59,f60,f61) values (107,105,106);
+insert into tb2 (f59,f60,f61) values (109,108,104);
+# Testcase 3.3.1.64
+INSERT INTO tb2 (f59,f60) VALUES( 299,899 );
+INSERT INTO tb2 (f59,f60) VALUES( 242,79 );
+INSERT INTO tb2 (f59,f60) VALUES( 424,89 );
+#
+#
+Use test;
+#
+# End of basic preparations.
+#
+##############################################################################
+
+
+
+#==============================================================================
+# 3.3.1 Syntax checks for CREATE VIEW, CREATE OR REPLACE VIEW, ALTER VIEW,
+# and DROP VIEW:
+#==============================================================================
+
+let $message= Testcase 3.3.1.1 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.1: Ensure that all clauses that should be supported
+# are supported.
+###############################################################################
+--disable_warnings
+Drop table if exists t1;
+--enable_warnings
+Create table t1 (f59 INT, f60 INT) ;
+Insert into t1 values (100,4234);
+Insert into t1 values (990,6624);
+Insert into t1 values (710,765);
+Insert into t1 values (300,433334);
+Insert into t1 values (800,9788);
+Insert into t1 values (500,9866);
+
+#(01)
+ --disable_warnings
+ Drop view if exists v1 ;
+ --enable_warnings
+ CREATE VIEW v1 AS select f59,f60,f61
+ FROM test.tb2 where f59=250;
+ select * FROM v1 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;
+
+#(03)
+ CREATE or REPLACE VIEW v1 AS select f59,f60,f61
+ FROM test.tb2 limit 4,3;
+ select * FROM v1 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;
+
+#(05)
+ ALTER VIEW v1 AS select f59
+ FROM test.tb2 limit 6,2;
+ select * FROM v1 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;
+
+#(07)
+ CREATE or REPLACE VIEW v1 AS select f59
+ from tb2 order by f59 asc limit 100;
+ select * FROM v1 limit 0,10;
+
+#(08)
+ CREATE or REPLACE VIEW v1 AS select f59
+ from tb2 order by f59 desc limit 100;
+ select * FROM v1 limit 0,10;
+
+#(09)
+ CREATE or REPLACE VIEW v1 AS select f59
+ from tb2 group by f59 limit 100;
+ select * FROM v1 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;
+
+#(11)
+ CREATE or REPLACE VIEW v1 AS select f59
+ from tb2 group by f59 desc limit 100;
+ select * FROM v1 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;
+
+#(13)
+ CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
+ UNION DISTINCT(select f59 FROM t1) ;
+ select * FROM v1 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;
+
+#(15)
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+ CREATE or REPLACE VIEW v1 AS select *
+ FROM test.tb2 WITH LOCAL CHECK OPTION ;
+ select * FROM v1 limit 0,50;
+
+ #(16)
+CREATE or REPLACE VIEW v1 AS select *
+ FROM test.tb2 WITH CASCADED CHECK OPTION ;
+ select * FROM v1 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;
+
+
+#(18)
+ CREATE or REPLACE VIEW v1 AS select f59, f60
+ from test.tb2 where f59=3330 ;
+ select * FROM v1 limit 0,10;
+
+ DROP VIEW v1 ;
+ DROP TABLE t1 ;
+
+
+let $message= Testcase 3.3.1.2 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.2: Ensure that all clauses that should not be supported are
+# disallowed with an appropriate error message.
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+--enable_warnings
+CREATE TABLE t1 (f1 BIGINT) ;
+
+# User variables and parameters are not supported in VIEWs -> 3.3.1.40
+
+# SELECT INTO is illegal
+SET @x=0;
+--error 1350
+CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
+Select @x;
+
+# Subquery in the FROM clause is illegal
+--error 1349
+CREATE or REPLACE VIEW v1 AS Select 1
+FROM (SELECT 1 FROM t1) my_table;
+
+# Triggers cannot be associated with VIEWs
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+# Show that 1. The trigger code basically works and the VIEW is updatable
+# 2. The VIEW is updatable
+# 3. Insert into view causes that the trigger is executed
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ;
+SET @a:=0 ;
+SELECT @a ;
+INSERT INTO v1 VALUES (1) ;
+SELECT @a ;
+SELECT * FROM t1;
+DROP TRIGGER tr1 ;
+SET @a:=0 ;
+--error 1347
+CREATE TRIGGER tr1 BEFORE INSERT ON v1 FOR EACH ROW SET @a:=1 ;
+
+# RENAME VIEW is not available even when we try it via rename table.
+# FIXME: Write a bug report for the ugly error message
+# 1017: Can't find file: './test/v1.frm' (errno: 2),
+# because the much more beautiful
+# 1347: 'test.v1' is not BASE TABLE
+# exists.
+--replace_result '\\' '/'
+# MLML --error 1017
+RENAME TABLE v1 TO v2;
+--error 1064
+RENAME VIEW v2 TO v1;
+#--error 1347
+ALTER TABLE v2 RENAME AS v1;
+--error 1064
+ALTER VIEW v1 RENAME AS v2;
+
+# VIEWs cannot contain a PRIMARY KEY or have an Index.
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS v2 ;
+--enable_warnings
+CREATE TABLE t1 ( f1 DATE, f2 BLOB, f3 DOUBLE );
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+ALTER TABLE t1 ADD PRIMARY KEY(f1);
+--error 1347
+ALTER TABLE v1 ADD PRIMARY KEY(f1);
+--error 1064
+ALTER VIEW v1 ADD PRIMARY KEY(f1);
+CREATE INDEX t1_idx ON t1(f3);
+--error 1347
+CREATE INDEX v1_idx ON v1(f3);
+DROP TABLE t1;
+DROP VIEW v1;
+
+
+let $message= Testcase 3.3.1.3 + 3.1.1.4 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.1.1.3: Ensure that all supported clauses are supported only in
+# the correct order.
+# Testcase 3.1.1.4: Ensure that an appropriate error message is returned if
+# a clause is out-of-order in an SQL statement.
+###############################################################################
+--disable_warnings
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+# REPLACE after VIEW name
+--error 1064
+CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50;
+# CHECK OPTION before AS SELECT
+--error 1064
+CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+# CHECK OPTION before AS SELECT
+--error 1064
+CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select *
+from tb2 my_table limit 50;
+# CREATE after SELECT
+--error 1064
+SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ;
+# AS forgotten
+--error 1064
+CREATE or REPLACE VIEW v1 Select f59, f60
+from test.tb2 my_table where f59 = 250 ;
+# positive case
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+DROP VIEW v1;
+# REPLACE OR CREATE instead of CREATE OR REPLACE
+--error 1064
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+# AS after SELECT
+--error 1064
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION;
+--error 1064
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CASCADED WITH CHECK OPTION;
+# OPTION CHECK instead of CHECK OPTION
+--error 1064
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED OPTION CHECK;
+# CHECK OPTION before WITH
+--error 1064
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH CASCADED;
+# CHECK OPTION before AS SELECT
+--error 1064
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+# VIEW <viewname> after AS SELECT
+--error 1064
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION;
+# VIEW <viewname> after CHECK OPTION
+--error 1064
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1;
+
+# Variants with LOCAL CHECK OPTION
+--error 1064
+REPLACE OR CREATE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+--error 1064
+CREATE OR REPLACE VIEW v1 SELECT AS F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION;
+--error 1064
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table LOCAL WITH CHECK OPTION;
+--error 1064
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL OPTION CHECK;
+--error 1064
+CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
+FROM test.tb2 my_table CHECK OPTION WITH LOCAL;
+--error 1064
+CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION
+AS SELECT F59, F60 FROM test.tb2 my_table;
+--error 1064
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION;
+--error 1064
+CREATE OR REPLACE AS SELECT F59, F60
+FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1;
+
+--disable_warnings
+Drop table if exists t1 ;
+--enable_warnings
+CREATE table t1 (f1 int ,f2 int) ;
+INSERT INTO t1 values (235, 22);
+INSERT INTO t1 values (554, 11);
+# SELECTs of UNION in braces
+--error 1064
+CREATE or REPLACE view v1 as (Select from f59 tb2)
+Union ALL (Select from f1 t1);
+# by before order
+--error 1064
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by order f59 limit 100 ;
+# by before group
+--error 1064
+CREATE or REPLACE view v1 as Select f59, f60
+from tb2 by group f59 ;
+
+
+let $message= Testcase 3.3.1.5 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.5: Ensure that all clauses that are defined to be mandatory
+# are indeed required to be mandatory by the MySQL server
+# and tools.
+###############################################################################
+--disable_warnings
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+--error 1064
+CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
+--error 1064
+CREATE v1 AS SELECT * FROM tb2 limit 100 ;
+--error 1064
+VIEW v1 AS SELECT * FROM tb2 limit 100 ;
+# positive case
+CREATE VIEW v1 AS SELECT 1;
+DROP VIEW v1;
+--error 1064
+ VIEW v1 AS SELECT 1;
+--error 1064
+CREATE v1 AS SELECT 1;
+--error 1064
+CREATE VIEW AS SELECT 1;
+--error 1064
+CREATE VIEW v1 SELECT 1;
+--error 1064
+CREATE VIEW v1 AS ;
+
+
+let $message= Testcase 3.3.1.6 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.6: Ensure that any clauses that are defined to be optional
+# are indeed treated as optional by the MySQL server
+# and tools.
+###############################################################################
+# Note: The positive test in 3.3.1.5 shows, that ALGORITHM ..., CHECK OPTION
+# and any column_list after the VIEW name are optional.
+# Therefore check here:
+# - ALGORITHM = <all possible algorithms>
+# - all possible CHECK OPTIONs
+# - some incomplete or wrong stuff
+--disable_warnings
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+CREATE or REPLACE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = MERGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+# negative test cases
+--error 1064
+CREATE or REPLACE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+--error 1064
+CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+--error 1064
+CREATE or REPLACE ALGORITHM = VIEW v1
+as SELECT * from tb2 limit 100 ;
+--error 1064
+CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+--error 1064
+CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1
+as SELECT * from tb2 limit 100 ;
+--error 1064
+CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1
+as SELECT * from tb2 limit 100 ;
+--error 1064
+CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1
+as SELECT * from tb2 limit 100 ;
+Drop view if exists v1 ;
+
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK OPTION;
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH LOCAL CHECK OPTION;
+# negative test cases
+--error 1064
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH NO CHECK OPTION;
+--error 1064
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 CASCADED CHECK OPTION;
+--error 1064
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED OPTION;
+--error 1064
+CREATE or REPLACE VIEW v1
+AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK ;
+
+
+let $message= Testcase 3.3.1.7 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.7: Ensure that all valid, fully-qualified, and non-qualified,
+# view names are accepted, at creation time, alteration time,
+# and drop time.
+###############################################################################
+# Note(ML): non-qualified view name means a view name without preceeding
+# database name
+--disable_warnings
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+Create view test.v1 AS Select * from test.tb2 limit 100 ;
+Alter view test.v1 AS Select F59 from test. tb2 limit 100 ;
+Drop view test.v1 ;
+Create view v1 AS Select * from test.tb2 limit 100 ;
+Alter view v1 AS Select F59 from test.tb2 limit 100 ;
+Drop view v1 ;
+
+
+let $message= Testcase 3.3.1.A0 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.A0: Ensure that view names are treated case sensitive.
+###############################################################################
+# Note(ML): Maybe this test produces portability problems on Windows.
+# FIXME There should be a test outside this one checking the
+# creation of objects with cases sensitive names.
+# If we have this test the following sub testcase should
+# be deleted.
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+--enable_warnings
+eval CREATE TABLE t1 (f1 NUMERIC(4)) ENGINE = $engine_type;
+INSERT INTO t1 VALUES(1111), (2222);
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 = 1111;
+# We get here the sql code
+# - 0 on OS with cases sensitive view names (Example: UNIX)
+# - 1050 on OS without cases sensitive view names (Example: WINDOWS)
+--error 0,1050
+CREATE VIEW V1 AS SELECT * FROM t1 WHERE f1 = 2222;
+SELECT * FROM v1;
+# SELECT * FROM V1;
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+DROP VIEW IF EXISTS V1 ;
+--enable_warnings
+
+
+let $message= Testcase 3.3.1.8 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.8: Ensure that any invalid view name is never accepted, and
+# that an appropriate error message is returned when the name
+# is rejected.
+###############################################################################
+# Note(ML): There could be more negative tests here, but I assume that the
+# server routines checking if a table or view name is acceptable are
+# heavily tested in tests checking the creation of tables.
+--error 1064
+Create view select AS Select * from test.tb2 limit 100;
+--error 1064
+Create view as AS Select * from test.tb2 limit 100;
+--error 1064
+Create view where AS Select * from test.tb2 limit 100;
+--error 1064
+Create view from AS Select * from test.tb2 limit 100;
+--error 1064
+Create view while AS Select * from test.tb2 limit 100;
+--error 1064
+Create view asdkj*(&*&&^ as Select * from test.tb2 limit 100 ;
+--disable_warnings
+Drop view if exists test.procedure ;
+--enable_warnings
+Create view test.procedure as Select * from test.tb2 limit 100 ;
+Drop view if exists test.procedure ;
+
+
+let $message= Testcase 3.3.1.9 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.9: Ensure that a reference to a non-existent view is rejected
+# with an appropriate error message
+###############################################################################
+# Note(ML): The SELECT statement syntax does not contain any functionality to
+# claim, that the object after FROM must be a VIEW. SHOW's will be
+# checked in 3.3.11 Checks on SHOW, EXPLAIN, and DESCRIBE statements.
+# Let's check here a view based on a dropped view or table.
+--disable_warnings
+Drop TABLE IF EXISTS t1 ;
+Drop VIEW IF EXISTS v1;
+Drop VIEW IF EXISTS v2;
+Drop VIEW IF EXISTS v3;
+--enable_warnings
+CREATE TABLE t1 ( f1 char(5));
+INSERT INTO t1 SET f1 = 'abcde';
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE VIEW v2 AS SELECT * FROM v1;
+
+# Only negative cases, positive cases will be checked later:
+DROP TABLE t1;
+--error 1356
+SELECT * FROM v1;
+--error 1356
+DELETE FROM v1;
+--error 1356
+UPDATE v1 SET f1 = 'aaaaa';
+--error 1356
+INSERT INTO v1 SET f1 = "fffff";
+# v2 is based on v1, which is now invalid
+--error 1356
+SELECT * FROM v2;
+--error 1356
+DELETE FROM v2;
+--error 1356
+UPDATE v2 SET f1 = 'aaaaa';
+--error 1356
+INSERT INTO v2 SET f1 = "fffff";
+DROP VIEW v1;
+# v2 is based on v1, which is now dropped
+--error 1356
+SELECT * FROM v2;
+--error 1356
+DELETE FROM v2;
+--error 1356
+UPDATE v2 SET f1 = 'aaaaa';
+--error 1356
+INSERT INTO v2 SET f1 = "fffff";
+
+DROP VIEW v2;
+
+# A VIEW based on itself is non sense.
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+CREATE TABLE t1 (f1 FLOAT);
+# Create a new VIEW based on itself
+--error 1146
+CREATE VIEW v1 AS SELECT * FROM v1;
+# Replace a valid VIEW with one new based on itself
+CREATE VIEW v1 AS SELECT * FROM t1;
+--error 1146
+CREATE or REPLACE VIEW v1 AS SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+let $message= Testcase 3.3.1.10 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.10: Ensure that it is not possible to create two views with
+# the same name in the same database.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+Create view test.v1 AS Select * from test.tb2 ;
+--error 1050
+Create view test.v1 AS Select F59 from test.tb2 ;
+--error 1050
+Create view v1 AS Select F59 from test.tb2 ;
+
+
+let $message= Testcase 3.3.1.11 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.11: Ensure that it is not possible to create a view and a base
+# table with the same name in the same database.
+###############################################################################
+# The VIEW should get the same name like an already existing TABLE.
+--error 1050
+Create view test.tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+--error 1050
+Create view tb2 AS Select f59,f60 from test.tb2 limit 100 ;
+# The TABLE should get the same name like an already existing VIEW.
+--disable_warnings
+Drop view if exists test.v111 ;
+--enable_warnings
+Create view test.v111 as select * from tb2 limit 50;
+--error 1050
+Create table test.v111(f1 int );
+--error 1050
+Create table v111(f1 int );
+DROP VIEW test.v111;
+
+
+let $message= Testcase 3.3.1.12 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.12: Ensure that it is possible to create two or more views and
+# base tables with the same name, providing each resides in
+# a different database.
+###############################################################################
+USE test;
+--disable_warnings
+Drop database if exists test2 ;
+--enable_warnings
+Create database test2 ;
+# Plan of sub tests
+# Object name object type in object type in
+# database test database test2
+# t1 TABLE TABLE
+# t2 TABLE VIEW
+# v1 VIEW TABLE
+# v2 VIEW VIEW
+--disable_warnings
+DROP TABLE IF EXISTS test.t0, test.t1, test.t2;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+--enable_warnings
+CREATE TABLE test.t1 ( f1 VARCHAR(20));
+CREATE TABLE test2.t1 ( f1 VARCHAR(20));
+CREATE TABLE test.t2 ( f1 VARCHAR(20));
+CREATE TABLE test2.v1 ( f1 VARCHAR(20));
+# t0 is an auxiliary table needed for the VIEWs
+CREATE TABLE test.t0 ( f1 VARCHAR(20));
+CREATE TABLE test2.t0 ( f1 VARCHAR(20));
+
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test.v1 AS SELECT * FROM test.t0;
+CREATE VIEW test.v2 AS SELECT * FROM test.t0;
+CREATE VIEW test2.v2 AS SELECT * FROM test2.t0;
+
+# Some additional tests on the just created objects to show that they are
+# accessable and do have the expected content.
+# INSERTs with full qualified table
+INSERT INTO test.t1 VALUES('test.t1 - 1');
+INSERT INTO test2.t1 VALUES('test2.t1 - 1');
+INSERT INTO test.t2 VALUES('test.t2 - 1');
+INSERT INTO test2.v1 VALUES('test2.v1 - 1');
+INSERT INTO test.t0 VALUES('test.t0 - 1');
+INSERT INTO test2.t0 VALUES('test2.t0 - 1');
+# INSERTs with not full qualified table name.
+USE test;
+INSERT INTO t1 VALUES('test.t1 - 2');
+INSERT INTO t2 VALUES('test.t2 - 2');
+INSERT INTO t0 VALUES('test.t0 - 2');
+USE test2;
+INSERT INTO t1 VALUES('test2.t1 - 2');
+INSERT INTO v1 VALUES('test2.v1 - 2');
+INSERT INTO t0 VALUES('test2.t0 - 2');
+# SELECTs with full qualified table
+SELECT * FROM t1;
+SELECT * FROM t2;
+SELECT * FROM v1;
+SELECT * FROM v2;
+USE test;
+SELECT * FROM t1;
+SELECT * FROM t2;
+SELECT * FROM v1;
+SELECT * FROM v2;
+
+
+let $message= Testcase 3.3.1.13 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.13: Ensure that, if the CREATE OR REPLACE VIEW statement is
+# used to create a view using the name of an existing view,
+# it first cleanly drops the existing view and then creates
+# the new view.
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+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;
+SELECT * FROM test.v1;
+# Switch the algorithm
+CREATE OR REPLACE ALGORITHM = TEMPTABLE VIEW test.v1
+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;
+SHOW CREATE VIEW test.v1;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.v1 ;
+--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;
+Drop table test.t1 ;
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.14 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.14: Ensure that, if the CREATE OR REPLACE VIEW statement is
+# used to create a view using the name of an existing base
+# table, it fails with an appropriate error message.
+###############################################################################
+--error 1347
+CREATE OR REPLACE VIEW test.tb2 AS SELECT * From tb2 LIMIT 2;
+--error 1347
+CREATE OR REPLACE VIEW tb2 AS SELECT * From tb2 LIMIT 2;
+
+
+let $message= Testcase 3.3.1.15 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.15: Ensure that, if the CREATE OR REPLACE VIEW statement is
+# used to create a view using a name that does not already
+# belong to an existing view or base table, it cleanly
+# creates the view.
+###############################################################################
+--disable_warnings
+Drop table if exists test.v1 ;
+--enable_warnings
+CREATE OR REPLACE view test.v1 as select * from tb2 LIMIT 2;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.v1;
+--enable_ps_protocol
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.16 + 3.3.1.17 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.16: Ensure that a view with a definition that does not include
+# an explicit column-name list takes its column names from
+# the underlying base table(s).
+# Testcase 3.3.1.17: Ensure that a view with a definition that does include an
+# explicit column-name list uses the explicit names and not
+# the name of the columns from the underlying base tables(s)
+###############################################################################
+--disable_warnings
+Drop table if exists test.v1 ;
+--enable_warnings
+CREATE OR REPLACE VIEW v1 AS SELECT * From tb2;
+# Note(ML): The empty result is intended, because I want to compare
+# column names only
+SELECT * FROM tb2 WHERE 1 = 2;
+SELECT * FROM v1 WHERE 1 = 2;
+Drop view v1;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+CREATE TABLE t1 (f1 NUMERIC(15,3));
+INSERT INTO t1 VALUES(8.8);
+# 1. no explicit column in VIEW definition or SELECT
+CREATE VIEW v1 AS SELECT * FROM t1;
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+# 2. no explicit column in VIEW definition, but in SELECT column_list
+CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1;
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+# 3. no explicit column in VIEW definition, but alias from SELECT column_list
+CREATE OR REPLACE VIEW v1 AS SELECT f1 As my_column FROM t1;
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+# 4. Finally the requirement: explicit column_list in VIEW definition
+CREATE OR REPLACE VIEW v1(column1,column2)
+AS SELECT f1 As my_column, f1 FROM t1;
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+CREATE OR REPLACE VIEW test.v1(column1,column2)
+AS SELECT f1 As my_column, f1 FROM test.t1;
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+
+
+let $message= Testcase 3.3.1.18 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.18: Ensure that a reference to a view with a definition that
+# includes an explicit column-name fails, with an appropriate
+# error message, if the reference includes columns names
+# from the underlying base table(s) rather than the view
+# column names.
+###############################################################################
+# Note(ML): The goal is to check the merge algorithm.
+--disable_warnings
+Drop view if exists v1 ;
+Drop view if exists v1_1 ;
+--enable_warnings
+Create view v1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60
+from test.tb2 limit 0,100 ;
+Create view v1_1
+as Select test.tb2.f59 as NewNameF1, test.tb2.f60 as NewNameF2
+from tb2 limit 0,100 ;
+--error 1054
+SELECT NewNameF1,f60 FROM test.v1_1 ;
+--error 1054
+SELECT NewNameF1, v1_1.f60 FROM test.v1_1 ;
+--error 1054
+SELECT f59, f60 FROM test.v1 ;
+Use test ;
+--error 1054
+SELECT F59 FROM v1 ;
+
+
+let $message= Testcase 3.3.1.19 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.19: Ensure that every column of a view must have a
+# distinct name
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t1 VALUES(7, 7.7);
+CREATE TABLE t2( f1 BIGINT, f2 DECIMAL(5,2));
+INSERT INTO t2 VALUES(6, 6.6);
+# positive testcases
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+CREATE OR REPLACE VIEW v1 AS SELECT f1 AS my_f1, f2 AS my_f2 FROM t1;
+SELECT * FROM v1;
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+SELECT * FROM v1;
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT t1.f1, t2.f2 FROM t1, t2;
+SELECT * FROM v1;
+# negative testcases (sometimes including the underlying SELECT)
+# duplicate via alias in SELECT
+SELECT f1, f2 AS f1 FROM t1;
+--error 1060
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 AS f1 FROM t1;
+# duplicate via JOIN SELECT
+SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+--error 1060
+CREATE OR REPLACE VIEW v1 AS SELECT t1.f1, t2.f1 AS f1 FROM t1, t2;
+# duplicate via VIEW definition
+--error 1060
+CREATE OR REPLACE VIEW v1 (my_col, my_col) AS SELECT * FROM t1;
+
+
+let $message= Testcase 3.3.1.20 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.20: Ensure that, if a column-name list is provided for a
+# view definition, the list contains a name for every column
+# in the view
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2));
+# positive case
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT * FROM t1;
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1;
+# negative cases, where we assign a wrong number of column names
+--error 1353
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT * FROM t1;
+--error 1353
+CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT f1, f2 FROM t1;
+--error 1353
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT * FROM t1;
+--error 1353
+CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT f1, f2 FROM t1;
+
+
+let $message= Testcase 3.3.1.21 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.21: Ensure that a view column can be a direct copy of a
+# column from an underlying table.
+###############################################################################
+--disable_warnings
+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;
+Drop view if exists test.v1 ;
+
+
+let $message= Testcase 3.3.1.22 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.22: Ensure that a view column can be based on any valid
+# expression, whether or not the expression includes a
+# reference of the column of an underlying table.
+###############################################################################
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 LIMIT 2;
+SELECT * FROM test.v1;
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT 1*2;
+SELECT * FROM test.v1;
+CREATE OR REPLACE VIEW test.v1( product ) AS SELECT USER();
+SELECT * FROM test.v1;
+Drop view if exists test.v1 ;
+
+
+let $message= Testcase 3.3.1.23 + 3.3.1.24 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.23: Ensure that a view definition that includes a reference to
+# a non-existent table fails, with an appropriate error
+# message, at creation time.
+# Testcase 3.3.1.24: Ensure that a view definition that includes a reference to
+# a non-existent view fails, with an appropriate error
+# message, at creation time.
+###############################################################################
+# Note(ML): The SELECT statement syntax does not contain any functionality to
+# claim, that the object after FROM must be a VIEW.
+# Testcase 3.3.1.24 should be deleted.
+USE test;
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+--enable_warnings
+--error 1146
+CREATE VIEW test.v2 AS SELECT * FROM test.t1;
+--error 1146
+CREATE VIEW v2 AS Select * from test.v1;
+DROP VIEW IF EXISTS v2;
+
+
+let $message= Testcase 3.3.1.25 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.25: Ensure that a view cannot be based on one or more
+# temporary tables.
+###############################################################################
+# Note(ML): A temporary table hides permanent tables which have the same name.
+# So do not forget to drop the temporary table.
+--disable_warnings
+DROP TABLE IF EXISTS t1_temp;
+DROP TABLE IF EXISTS t2_temp;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+Create table t1_temp(f59 char(10),f60 int) ;
+Create temporary table t1_temp(f59 char(10),f60 int) ;
+Insert into t1_temp values('FER',90);
+Insert into t1_temp values('CAR',27);
+--error 1352
+Create view v1 as select * from t1_temp ;
+
+Create temporary table t2_temp(f59 char(10),f60 int) ;
+Insert into t2_temp values('AAA',11);
+Insert into t2_temp values('BBB',22);
+--error 1352
+Create or replace view v1
+as select t1_temp.f59,t2_temp.f59 from t1_temp,t2_temp ;
+DROP temporary table t1_temp;
+DROP table t1_temp;
+DROP temporary table t2_temp;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+CREATE TABLE t1 (f1 char(10));
+CREATE TEMPORARY TABLE t2 (f2 char(10));
+INSERT INTO t1 VALUES('t1');
+INSERT INTO t1 VALUES('A');
+INSERT INTO t2 VALUES('t2');
+INSERT INTO t2 VALUES('B');
+# simple SELECT
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2;
+# JOIN - temporary table first
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2, t1;
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT f2, f1 FROM t2, t1;
+# JOIN - temporary table last
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1, t2;
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1, t2;
+# UNION - temporary table first
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2 UNION SELECT * FROM t1;
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2 UNION SELECT f1 FROM t1;
+# UNION - temporary table last
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2;
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1 UNION SELECT f2 FROM t2;
+# SUBQUERY - temporary table first
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t2
+WHERE f2 = ( SELECT f1 FROM t1 );
+# SUBQUERY - temporary table last
+--error 1352
+CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t1
+WHERE f1 = ( SELECT f2 FROM t2 );
+DROP TABLE t1;
+DROP TEMPORARY TABLE t2;
+
+
+let $message= Testcase 3.3.1.26 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.26: Ensure that a view can be based on an underlying table
+# within the same database
+###############################################################################
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+Create view test.v1 AS Select * from test.tb2 limit 2 ;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+Select * from test.v1;
+--enable_ps_protocol
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.27 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.27: Ensure that a view can be based on an underlying view
+# within the same database.
+###############################################################################
+--disable_warnings
+DROP VIEW IF EXISTS test.v1;
+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 ;
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+
+
+let $message= Testcase 3.3.1.28 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.28: Ensure that a view can be based on an underlying table
+# from another database.
+###############################################################################
+--disable_warnings
+Drop database if exists test2 ;
+--enable_warnings
+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 ;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+Select * from v1 ;
+--enable_ps_protocol
+Select * from test2.v2 ;
+Drop view if exists test2.v1 ;
+Drop view if exists test2.v2 ;
+Drop database test2 ;
+
+
+let $message= Testcase 3.3.1.29 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.29: Ensure that a view can be based on an underlying view from
+# another database.
+###############################################################################
+--disable_warnings
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+--enable_warnings
+create database test2 ;
+
+use test2;
+Create view test.v1 AS Select * from test.tb2 limit 50 ;
+Create view test2.v2 AS Select F59 from test.v1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test2.v2 ;
+
+# Note(ML): Testcase 3.3.1.30 (identical requirements like 3.3.1.26) omitted
+
+let $message= Testcase 3.3.1.31 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.31: Ensure that a view can be based on a join of multiple
+# tables within the same database.
+###############################################################################
+--disable_warnings
+Drop table if exists test.t1 ;
+--enable_warnings
+CREATE TABLE test.t1 ( f59 int, f60 int );
+INSERT INTO test.t1 VALUES( 34, 654 );
+INSERT INTO test.t1 VALUES( 906, 434 );
+INSERT INTO test.t1 VALUES( 445, 765 );
+Create or replace view test.v1
+AS SELECT test.t1.F59, test.tb2.F60
+FROM test.tb2 JOIN test.t1 ON test.tb2.F59 = test.t1.F59 ;
+Select * from test.v1;
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.32 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.32: Ensure that a view can be based on a join of multiple
+# tables from another database.
+###############################################################################
+--disable_warnings
+Drop table if exists test.t1 ;
+Drop database if exists test2 ;
+Drop view if exists test.v1 ;
+--enable_warnings
+create database test2 ;
+use test2 ;
+CREATE TABLE t1 ( f59 int, f60 int );
+INSERT INTO t1 VALUES( 34, 654 );
+INSERT INTO t1 VALUES( 906, 434 );
+INSERT INTO t1 VALUES( 445, 765 );
+CREATE VIEW test2.v1
+AS SELECT test.tb2.F59, test.tb2.F60
+FROM test.tb2 INNER JOIN test2.t1 ON tb2.f59 = t1.f59;
+Select * from test2.v1;
+
+Use test;
+
+
+let $message= Testcase 3.3.1.33 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.33: Ensure that a view can be based on a join of multiple
+# views within the same database.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+Drop view if exists test.v1 ;
+--enable_warnings
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2;
+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;
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+Drop view if exists test.v1 ;
+
+
+let $message= Testcase 3.3.1.34 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.34: Ensure that a view can be based on a join of multiple
+# views from another database.
+###############################################################################
+--disable_warnings
+Drop database if exists test2 ;
+Drop view if exists test.v1_firstview ;
+Drop view if exists test.v1_secondview ;
+--enable_warnings
+
+create database test2 ;
+use test2 ;
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2 ;
+CREATE VIEW test.v1_secondview AS SELECT * FROM test.tb2 ;
+
+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;
+Drop view v1 ;
+Drop view test.v1_firstview ;
+Drop view test.v1_secondview ;
+
+
+let $message= Testcase 3.3.1.35 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.35: Ensure that a view can be based on a join of multiple
+# tables and/or views within the same database.
+###############################################################################
+use test;
+
+--disable_warnings
+Drop view if exists test.v1;
+Drop view if exists test.v1_firstview;
+--enable_warnings
+
+CREATE VIEW test.v1_firstview AS SELECT * FROM test.tb2;
+
+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;
+Drop view test.v1 ;
+Drop view test.v1_firstview;
+
+
+let $message= Testcase 3.3.1.36 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.36: Ensure that a view can be based on a join of multiple
+# tables and/or views from another database.
+###############################################################################
+--disable_warnings
+Drop database if exists test2 ;
+--enable_warnings
+create database test2 ;
+use test2 ;
+
+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;
+
+Drop database test2 ;
+
+
+let $message= Testcase 3.3.1.37 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.37: Ensure that a view can be based on a join of multiple
+# tables and/or views, some of which reside in the same
+# database and some of which reside in one other database.
+###############################################################################
+# (Bug Associated)
+# FIXME: ??? Bug number
+# FIXME: reimplement this test
+
+use test;
+--disable_warnings
+Drop table if exists t1;
+Drop view if exists test.v1 ;
+Drop view if exists test.v1_1 ;
+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;
+
+Create table t1(f59 int, f60 int);
+Insert into t1 values (90,507) ;
+
+Create view v1_1 as Select f59,f60 from t1 ;
+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;
+
+Drop table t1;
+Drop view test.v1 ;
+Drop view test.v1_1 ;
+Drop view test.v1_main ;
+
+
+let $message= Testcase 3.3.1.31 - 3.3.1.37 New Implementation ;
+--source include/show_msg80.inc
+###############################################################################
+# ML: The testcases 3.3.1.31 - 3.3.1.37 should be tested more systematic.
+# Ensure that a view can be based on a join of multiple
+# Testcase 3.3.1.31: tables within the same database
+# Testcase 3.3.1.32: tables from another database.
+# Testcase 3.3.1.33: views within the same database
+# Testcase 3.3.1.34: views from another database
+# Testcase 3.3.1.35: tables and/or views within the same database
+# Testcase 3.3.1.36: tables and/or views from another database
+# Testcase 3.3.1.37: tables and/or views, some of which reside in
+# the same database and some of which reside in
+# one other database.
+###############################################################################
+USE test;
+--disable_warnings
+DROP DATABASE IF EXISTS test2;
+DROP TABLE IF EXISTS t0,t1;
+DROP VIEW IF EXISTS t3,t4;
+--enable_warnings
+CREATE DATABASE test2;
+
+--disable_warnings
+CREATE TABLE test1.t0 (f1 VARCHAR(20));
+CREATE TABLE test1.t1 (f1 VARCHAR(20));
+--enable_warnings
+CREATE TABLE test2.t0 (f1 VARCHAR(20));
+CREATE TABLE test2.t1 (f1 VARCHAR(20));
+--disable_warnings
+CREATE VIEW test1.t2 AS SELECT * FROM test1.t0;
+CREATE VIEW test1.t3 AS SELECT * FROM test2.t0;
+--enable_warnings
+CREATE VIEW test2.t2 AS SELECT * FROM test2.t0;
+CREATE VIEW test2.t3 AS SELECT * FROM test1.t0;
+INSERT INTO test1.t0 VALUES('test1.t0');
+INSERT INTO test1.t1 VALUES('test1.t1');
+INSERT INTO test2.t0 VALUES('test2.t0');
+INSERT INTO test2.t1 VALUES('test2.t1');
+
+# The extreme simple standard JOIN VIEW is:
+# CREATE OR REPLACE VIEW <database>.v1
+# AS SELECT * FROM <table or view 1>,<table or view 2>
+let $view= test.v1;
+let $tab1= test.t0;
+let $tab2= test.t1;
+# eval CREATE OR REPLACE VIEW $view AS SELECT * FROM $tab1, $tab2;
+# Produce at least all testcases via simple combinatorics, because it is better
+# to check some useless combinations than to forget an important one.
+let $view= test.v1;
+let $num_tab1= 3;
+while ($num_tab1)
+{
+ let $num_tab2= 3;
+ while ($num_tab2)
+ {
+ let $num_db1= 2;
+ while ($num_db1)
+ {
+ let $num_db2= 2;
+ while ($num_db2)
+ {
+ # Maybe somebody needs to check the generated values
+ # --disable_query_log
+ # eval SELECT '$num_db1.$num_tab1,$num_db2.$num_tab2';
+ # --enable_query_log
+ eval CREATE OR REPLACE VIEW $view AS
+ SELECT ta.f1 AS col1,
+ tb.f1 AS col2
+ FROM test$num_db1.t$num_tab1 ta, test$num_db2.t$num_tab2 tb;
+ eval SELECT * FROM $view;
+
+ dec $num_db2;
+ }
+
+ dec $num_db1;
+ }
+
+ dec $num_tab2;
+ }
+
+ dec $num_tab1;
+}
+
+
+let $message= Testcase 3.3.1.38 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.38: Ensure that a view can be based on a join of multiple
+# tables and/or views, some of which reside in the same
+# database and some of which reside two or more other
+# databases.
+###############################################################################
+--disable_warnings
+Drop table if exists test1.t1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test.v1_main;
+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 ;
+
+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 ;
+Select * from test1.v1_1 ;
+
+--disable_warnings
+--enable_warnings
+Create database test3 ;
+
+Create table test3.t1(f59 int,f60 int) ;
+Insert into test3.t1 values (1023,7670) ;
+Create view test3.v1_2 as Select f59,f60 from test3.t1 ;
+Select * from test3.v1_2 ;
+use test ;
+
+# ML: FIXME The SELECT should deliver at least one row.
+Create view v1_main
+as SELECT test.tb2.f59 as f1, test1.v1_1.f59 as f2,
+ test3.v1_2.f59 as f3
+FROM (test.tb2,test1.v1_1,test.v1) JOIN test3.v1_2
+ON (test.v1.f59 = test1.v1_1.f59) ;
+Select * from v1_main ;
+
+DROP VIEW test.v1 ;
+DROP VIEW test1.v1_1 ;
+DROP VIEW test.v1_main ;
+DROP DATABASE test3;
+
+
+let $message= Testcase 3.3.1.39 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.39: Ensure that a view definition that includes a subquery in
+# a FROM clause is rejected with an appropriate error
+# message at create time.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+--error 1349
+CREATE VIEW test.v1
+AS Select f59 from (Select * FROM tb2 limit 20) tx ;
+--error 1146
+SELECT * FROM test.v1 ;
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+
+let $message= Testcase 3.3.1.40 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.40: Ensure that a view definition that includes references to
+# one or more user variables is rejected with an appropriate
+# error message at create time.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+Set @var1 = 'ABC' ;
+Set @var2 = 'XYZ' ;
+--error 1351
+CREATE VIEW test.v1 AS SELECT @var1, @var2 ;
+# System variables (name starts with '@@') are also not allowed
+--error 1351
+CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+
+let $message= Testcase 3.3.1.41 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.41: Ensure that a view definition within a stored procedure
+# definition cannot include references to any of the stored
+# procedure’s parameters.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+Drop procedure if exists sp1 ;
+--enable_warnings
+
+delimiter //;
+Create procedure sp1() DETERMINISTIC
+ Begin
+ DECLARE x char;
+ Set x = 200 ;
+ Create view test.v1 as SELECT * FROM tb2 WHERE f59 = x ;
+ End //
+delimiter ;//
+--error ER_SP_DOES_NOT_EXIST
+Call sp1() ;
+Drop view if exists test.v1 ;
+Drop procedure sp1 ;
+
+
+let $message= Testcase 3.3.1.42 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.42: Ensure that a view definition that attempts to create a
+# temporary view (e.g. CREATE TEMPORARY VIEW or CREATE OR
+# REPLACE TEMPORARY VIEW) fails, with an appropriate
+# error message.
+###############################################################################
+#(01)
+--disable_warnings
+Drop VIEW if exists test.v1 ;
+--enable_warnings
+--error 1064
+CREATE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2 ;
+#(02)
+--error 1064
+CREATE OR REPLACE TEMPORARY VIEW test.v1 AS
+SELECT * FROM test.tb2 limit 2 ;
+
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+Use test;
+
+
+let $message= Testcase 3.3.1.43 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.43: Ensure that all valid changes (i.e. INSERT, UPDATE, DELETE
+# statements) to a view are shown in the view and are
+# accepted as changes by the underlying table(s).
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
+
+INSERT INTO test.v1 values(122,432);
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20;
+--enable_ps_protocol
+
+UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ;
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.tb2 where f59 = 3000 limit 0,20;
+--enable_ps_protocol
+
+DELETE FROM test.v1
+where test.v1.f59 = 3000 and test.v1.f60 = 432;
+
+SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432;
+
+drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.44 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.44: Ensure that all invalid changes to a view are rejected
+# with an appropriate error message and do not affect the
+# data in the underlying tables(s).
+###############################################################################
+# ML: Maybe we need some more tests here.
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+# Note(ML): The modification will fail, because the VIEW contains 'limit'
+CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 limit 100;
+
+--error ER_NON_INSERTABLE_TABLE
+INSERT INTO test.v1 values(31, 32, 33) ;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.45 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.45: Ensure that, for a view with a definition that does not
+# include WITH CHECK OPTION, all changes to the view which
+# violate the view definition do not show in the view but
+# are accepted as changes by the underlying table(s) unless
+# a constraint on an underlying table also makes the change
+# invalid.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+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 ;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.tb2 where f59 = 30 ;
+--enable_ps_protocol
+
+--enable_info
+UPDATE tb2 SET f59 = 100 where f59 = 30 ;
+--disable_info
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM tb2 where f59 = 100 ;
+--enable_ps_protocol
+SELECT * FROM test.v1 ;
+
+drop view if exists test.v1 ;
+
+--disable_warnings
+Drop TABLE IF EXISTS test.t1 ;
+Drop VIEW IF EXISTS test.v1 ;
+--enable_warnings
+eval CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), PRIMARY KEY(f1))
+ ENGINE = $engine_type;
+INSERT INTO t1 VALUES(1,'one');
+INSERT INTO t1 VALUES(2,'two');
+INSERT INTO t1 VALUES(3,'three');
+INSERT INTO t1 VALUES(5,'five');
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 BETWEEN 2 AND 4;
+
+### SELECTs
+# 1. Searched record is within the scope of the view
+# 1.1 + exists within the base table
+SELECT COUNT(*) FROM v1 WHERE f1 = 2;
+# 1.2 + does not exists within the base table
+SELECT COUNT(*) FROM v1 WHERE f1 = 4;
+# 2. Searched record is outside of the scope of the view
+# 2.1 + exists within the base table
+SELECT COUNT(*) FROM v1 WHERE f1 = 5;
+# 2.2 + does not exists within the base table
+SELECT COUNT(*) FROM v1 WHERE f1 = 10;
+
+INSERT INTO t1 VALUES(4,'four');
+
+### DELETEs
+--enable_info
+# 1. Searched record is within the scope of the view
+# + exists within the base table
+DELETE FROM v1 WHERE f1 = 3;
+# 2. Searched record is outside of the scope of the view
+# + exists within the base table
+DELETE FROM v1 WHERE f1 = 5;
+--disable_info
+SELECT * FROM t1 ORDER BY f1;
+SELECT * FROM v1 ORDER BY f1;
+
+### INSERTs
+--enable_info
+# 1. The record to be inserted will be within the scope of the view.
+# But there is already a record with the PRIMARY KEY f1 = 2 .
+--error 1062
+INSERT INTO v1 VALUES(2,'two');
+# 2. The record to be inserted will be within the scope of the view.
+# There is no already existing record with the PRIMARY KEY f1 = 3 .
+INSERT INTO v1 VALUES(3,'three');
+# 3. The record to be inserted will be outside of the scope of the view.
+# There is no already existing record with the PRIMARY KEY f1 = 6 .
+INSERT INTO v1 VALUES(6,'six');
+--disable_info
+SELECT * FROM t1 ORDER BY f1;
+SELECT * FROM v1 ORDER BY f1;
+
+### UPDATEs
+--enable_info
+# 1. The record to be updated is within the scope of the view
+# and will stay inside the scope.
+# But there is already a record with the PRIMARY KEY f1 = 2 .
+--error 1062
+UPDATE v1 SET f1 = 2 WHERE f1 = 3;
+# 2. The record to be updated is within the scope of the view
+# and will stay inside the scope.
+UPDATE v1 SET f2 = 'number' WHERE f1 = 3;
+# 3. The record to be updated is within the scope of the view
+# and will leave the scope.
+UPDATE v1 SET f1 = 10 WHERE f1 = 3;
+# 4. The record to be updated is outside of the scope of the view.
+UPDATE v1 SET f2 = 'number' WHERE f1 = 1;
+--disable_info
+
+
+let $message= Testcase 3.3.1.46 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.46: Ensure that, for a view with a definition that does
+# include WITH CHECK OPTION, all changes to the view which
+# violate the view definition are rejected with an
+# appropriate error message and are not accepted as changes
+# by the underlying table(s).
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+CREATE VIEW test.v1 AS SELECT f59,f60
+FROM test.tb2 where f59 = 195 WITH CHECK OPTION ;
+
+--error 1369
+UPDATE test.v1 SET f59 = 198 where f59=195 ;
+SELECT * FROM test.v1 ;
+
+drop view if exists test.v1 ;
+
+
+let $message= Testcase 3.3.1.47 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.47: Ensure that, for a view with a definition that does
+# include WITH LOCAL CHECK OPTION, all changes to the view
+# which violate the view definition are rejected with an
+# appropriate error message and are not accepted as changes
+# by the underlying table(s).
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+--enable_warnings
+CREATE VIEW test.v1 AS SELECT f59,f60
+FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ;
+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 ;
+
+# ML: This UPDATE violates the definition of VIEW test.v1, but this
+# does not count, because the UPDATE runs on test.v2, which
+# is defined without any CHECK OPTION.
+# FIXME Does this testcase fit to 3.3.1.47 ?
+UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
+SELECT * FROM tb2 where f59 = 9879 ;
+
+drop view if exists v1 ;
+drop view if exists v2 ;
+
+
+let $message= Testcase 3.3.1.48 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.48: Ensure that, for a view with a definition that does
+# include WITH CASCADED CHECK OPTION, all changes to the
+# view which violate the view definition are rejected with
+# an appropriate error message and are not accepted as
+# changes by the underlying table(s).
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+DROP VIEW IF EXISTS test.v1;
+--enable_warnings
+eval CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER)
+ ENGINE = $engine_type;
+INSERT INTO t1 VALUES ('A', 1);
+SELECT * FROM t1;
+
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2
+WITH CASCADED CHECK OPTION ;
+SELECT * FROM v1;
+--enable_info
+# positive cases
+UPDATE v1 SET f2 = 2 WHERE f2 = 1;
+INSERT INTO v1 VALUES('B',2);
+--disable_info
+# Bug#11771: View over InnoDB table, wrong result SELECT on VIEW,
+# field->query_id wrong
+SELECT * FROM v1;
+# negative cases
+--enable_info
+--error 1369
+UPDATE v1 SET f2 = 4;
+--error 1369
+INSERT INTO v1 VALUES('B',3);
+--disable_info
+# Bug#11771: View over InnoDB table, wrong result SELECT on VIEW,
+# field->query_id wrong
+SELECT * FROM v1;
+
+
+let $message= Testcase 3.3.1.49 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.49: Ensure that the WITH [LOCAL | CASCADED] CHECK OPTION
+# constraint is always correctly performed within the
+# correct scope, including in cases where a view is based
+# upon multiple other views whose definitions include every
+# possible combination of the WITH CHECK OPTION variants.
+###############################################################################
+--disable_warnings
+Drop table if exists test.t1 ;
+Drop view if exists test.v1 ;
+Drop view if exists test.v2 ;
+Drop view if exists test.v3 ;
+--enable_warnings
+Create table test.t1 (f59 INT, f60 INT) ;
+
+Insert into test.t1 values (100,4234);
+Insert into test.t1 values (290,6624);
+Insert into test.t1 values (410,765);
+Insert into test.t1 values (300,433334);
+Insert into test.t1 values (800,9788);
+Insert into test.t1 values (501,9866);
+
+Create view test.v1 as select f59
+FROM test.t1 where f59<500 with check option ;
+
+Create view test.v2 as select *
+from test.v1 where f59>0 with local check option ;
+
+--disable_warnings
+--enable_warnings
+
+Create view test.v3 as select *
+from test.v1 where f59>0 with cascaded check option ;
+
+Insert into test.v2 values(23) ;
+Insert into test.v3 values(24) ;
+
+drop view if exists test.v1 ;
+drop view if exists test.v2 ;
+drop view if exists test.v3 ;
+
+let $message= Testcase 3.3.1.49A ;
+--source include/show_msg80.inc
+# Testplan:
+# -----------------------------------------------------------
+# VIEW v1 is based on table t1 (*)
+# VIEW v2 is based on view v1 (*)
+# VIEW v3 is based on view v2 (*)
+#
+# (*) All variants like
+# - without check option
+# - WITH CASCADED CHECK OPTION
+# - WITH CHECK OPTION (default = CASCADED)
+# - WITH LOCAL CHECK OPTION
+#
+# The rules for updating and inserting column values:
+# 1. Top VIEW WITH CASCADED CHECK OPTION
+# --> The WHERE qualifications of all nested VIEWs have to be fulfilled.
+# The CHECK OPTIONS of underlying VIEWs have no effect.
+# 2. Top VIEW WITH LOCAL CHECK OPTION
+# --> Only the WHERE qualification of this VIEW has to be fulfilled.
+# The CHECK OPTIONS of underlying VIEWs have no effect.
+# 3. Top VIEW without any CHECK OPTION
+# --> The WHERE qualifications of all nested VIEWs need not to be fulfilled.
+# The CHECK OPTIONS of underlying VIEWs have no effect.
+#
+# v3 | v2 | v1 | Qualifications to be checked
+# ------------------------------------------------------------------------
+# CASCADED | <any> | <any> | qual_v3 + qual_v2 + qual_v3
+# <default> | <any> | <any> | qual_v3 + qual_v2 + qual_v3
+# LOCAL | <any> | <any> | qual_v3
+# <without> | <any> | <any> |
+#
+# Note: The CHECK OPTION does not influence the retrieval of rows
+# (SELECT/DELETE/UPDATE). All WHERE qualifications will be applied
+# for the retrieval of rows.
+#
+# The annoying redundant
+# eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+# @v3_to_v1_violation,$mysql_errno);
+# could not be put into a file to be sourced because of
+# Bug#10267 mysqltest, wrong number of loops when a script is sourced
+# within a loop
+#
+
+USE test;
+--disable_warnings
+DROP TABLE IF EXISTS test.t1 ;
+DROP TABLE IF EXISTS test.t1_results ;
+DROP VIEW IF EXISTS test.v1;
+DROP VIEW IF EXISTS test.v2;
+DROP VIEW IF EXISTS test.v3;
+--enable_warnings
+CREATE TABLE t1 (f1 INTEGER, f2 CHAR(20));
+CREATE TABLE t1_results (v3_to_v1_options VARCHAR(100), statement VARCHAR(10),
+ v3_to_v1_violation VARCHAR(20), errno CHAR(10));
+--disable_query_log
+SET @part1= '';
+SET @part2= 'WITH CHECK OPTION';
+SET @part3= 'WITH CASCADED CHECK OPTION';
+SET @part4= 'WITH LOCAL CHECK OPTION';
+--enable_query_log
+
+let $num1= 4;
+while ($num1)
+{
+ --disable_query_log
+ eval SET @v1_part= @part$num1;
+ let $aux= `SELECT CONCAT('CREATE VIEW v1 AS SELECT f1, f2
+ FROM t1 WHERE f1 BETWEEN 0 AND 10 ', @v1_part)` ;
+ --enable_query_log
+ eval $aux ;
+
+ let $num2= 4;
+ while ($num2)
+ {
+ --disable_query_log
+ eval SET @v2_part= @part$num2;
+ let $aux= `SELECT CONCAT('CREATE VIEW v2 AS SELECT f1 AS col1, f2 AS col2
+ FROM v1 WHERE f1 BETWEEN 6 AND 16 ', @v2_part)` ;
+ --enable_query_log
+ eval $aux ;
+
+ let $num3= 4;
+ while ($num3)
+ {
+ --disable_query_log
+ eval SET @v3_part= @part$num3;
+ let $aux= `SELECT CONCAT('CREATE VIEW v3 (my_col1,my_col2) AS SELECT *
+ FROM v2 WHERE col1 MOD 2 = 0 ', @v3_part)` ;
+ eval $aux ;
+ --vertical_results
+ SELECT CONCAT(IF(@v3_part = '',' <nothing> ',
+ @v3_part), ' - ',
+ IF(@v2_part = '',' <nothing> ',
+ @v2_part), ' - ',
+ IF(@v1_part = '',' <nothing> ',
+ @v1_part))
+ AS "option_variant"
+ UNION SELECT RPAD('', 80, '-');
+ SET @v3_to_v1_options = CONCAT(IF(@v3_part = '',' <nothing> ',
+ @v3_part), ' - ',
+ IF(@v2_part = '',' <nothing> ',
+ @v2_part), ' - ',
+ IF(@v1_part = '',' <nothing> ',
+ @v1_part));
+ --horizontal_results
+ --enable_query_log
+ # 1. Visibility of records of t1 via SELECT on the VIEWs
+ # Outside v1 (0 to 10)
+ INSERT INTO t1 VALUES(16, 'sixteen');
+ # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ INSERT INTO t1 VALUES(0, 'zero');
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Outside v3 ( value MOD 2 = 0 )
+ INSERT INTO t1 VALUES(7, 'seven');
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Inside v3 ( value MOD 2 = 0 )
+ INSERT INTO t1 VALUES(8, 'eight');
+ SELECT * FROM v1;
+ SELECT * FROM v2;
+ SELECT * FROM v3;
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ # 2. DELETEs within v3
+ # Outside v1 (0 to 10)
+ INSERT INTO t1 VALUES(16, 'sixteen');
+ # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ INSERT INTO t1 VALUES(0, 'zero');
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Outside v3 ( value MOD 2 = 0 )
+ INSERT INTO t1 VALUES(7, 'seven');
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Inside v3 ( value MOD 2 = 0 )
+ INSERT INTO t1 VALUES(8, 'eight');
+ --enable_info
+ # Outside v1 (0 to 10)
+ DELETE FROM v3 WHERE my_col1 = 16;
+ # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ DELETE FROM v3 WHERE my_col1 = 0;
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Outside v3 ( value MOD 2 = 0 )
+ DELETE FROM v3 WHERE my_col1 = 7;
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Inside v3 ( value MOD 2 = 0 )
+ DELETE FROM v3 WHERE my_col1 = 8;
+ --disable_info
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ # 3. UPDATEs within v3 (modify my_col2, which is not part of any
+ # WHERE qualification)
+ # The behaviour should be similar to 3. DELETE.
+ # Outside v1 (0 to 10)
+ INSERT INTO t1 VALUES(16, 'sixteen');
+ # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ INSERT INTO t1 VALUES(0, 'zero');
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Outside v3 ( value MOD 2 = 0 )
+ INSERT INTO t1 VALUES(7, 'seven');
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Inside v3 ( value MOD 2 = 0 )
+ INSERT INTO t1 VALUES(8, 'eight');
+ --enable_info
+ # Outside v1 (0 to 10)
+ UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 16;
+ # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 0;
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Outside v3 ( value MOD 2 = 0 )
+ UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 7;
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Inside v3 ( value MOD 2 = 0 )
+ UPDATE v3 SET my_col2 = 'whatever' WHERE my_col1 = 8;
+ --disable_info
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ # 4. UPDATEs within v3 (modify my_col1 to values inside and outside
+ # of the WHERE qualifications)
+ --disable_query_log
+ SET @statement = 'UPDATE';
+ --enable_query_log
+ INSERT INTO t1 VALUES(8, 'eight');
+ # Alter to value outside of v3
+ --disable_query_log
+ SET @v3_to_v1_violation = 'v3_ _ ';
+ --enable_query_log
+ --enable_info
+ UPDATE v3 SET my_col1 = 7 WHERE my_col1 = 8;
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ INSERT INTO t1 VALUES(8, 'eight');
+ # Alter to value outside of v2
+ --disable_query_log
+ SET @v3_to_v1_violation = ' _v2_ ';
+ --enable_query_log
+ --enable_info
+ UPDATE v3 SET my_col1 = 0 WHERE my_col1 = 8;
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ INSERT INTO t1 VALUES(8, 'eight');
+ # Alter to value outside of v1
+ --disable_query_log
+ SET @v3_to_v1_violation = ' _ _v1';
+ --enable_query_log
+ --enable_info
+ UPDATE v3 SET my_col1 = 16 WHERE my_col1 = 8;
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ INSERT INTO t1 VALUES(8, 'eight');
+ # Alter to value inside of v1
+ --disable_query_log
+ SET @v3_to_v1_violation = ' _ _ ';
+ --enable_query_log
+ --enable_info
+ UPDATE v3 SET my_col1 = 10 WHERE my_col1 = 8;
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ SELECT * FROM t1;
+ DELETE FROM t1;
+ # 5. INSERTs into v3
+ --disable_query_log
+ SET @statement = 'INSERT';
+ --enable_query_log
+ # Outside v1 (0 to 10)
+ --disable_query_log
+ SET @v3_to_v1_violation = ' _ _v1';
+ --enable_query_log
+ --enable_info
+ INSERT INTO v3 VALUES(16, 'sixteen');
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ --disable_query_log
+ SET @v3_to_v1_violation = ' _v2_ ';
+ --enable_query_log
+ --enable_info
+ INSERT INTO v3 VALUES(0, 'zero');
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Outside v3 ( value MOD 2 = 0 )
+ --disable_query_log
+ SET @v3_to_v1_violation = 'v3_ _ ';
+ --enable_query_log
+ --enable_info
+ INSERT INTO v3 VALUES(7, 'seven');
+ --disable_info
+ # Inside v1 (0 to 10), Inside v2 ((0 to 10) AND (6 to 16) -> (6 to 10))
+ # Inside v3 ( value MOD 2 = 0 )
+ --disable_query_log
+ SET @v3_to_v1_violation = ' _ _ ';
+ --enable_query_log
+ --enable_info
+ INSERT INTO v3 VALUES(8, 'eight');
+ --disable_info
+ --disable_query_log
+ eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement,
+ @v3_to_v1_violation,$mysql_errno);
+ --enable_query_log
+ SELECT * FROM t1;
+ DELETE FROM t1;
+
+ DROP VIEW v3;
+ dec $num3;
+ }
+
+ DROP VIEW v2;
+ dec $num2;
+ }
+
+ DROP VIEW v1;
+ dec $num1;
+}
+
+SELECT * FROM t1_results ORDER BY v3_to_v1_options;
+
+let $message=
+Plausibility checks for INSERTs and UPDATEs ( 4. and 5. above).
+All following SELECTs must give ROW NOT FOUND ;
+--source include/show_msg80.inc
+
+# Plausibility checks for INSERTs and UPDATEs ( 4. and 5. above):
+# 1. There must be NO denied INSERT/UPDATE, when no WHERE qualification
+# is violated. Expect ROW NOT FUND
+SELECT * FROM t1_results
+WHERE v3_to_v1_violation = ' _ _ ' AND errno <> 0
+ORDER BY v3_to_v1_options;
+# 2. There must be NO denied INSERT/UPDATE, when the toplevel VIEW v3 is
+# defined without any CHECK OPTION. Expect ROW NOT FUND
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE ' %' AND errno <> 0
+ORDER BY v3_to_v1_options;
+# 3. There must be NO successful INSERT/UPDATE, when the toplevel VIEW v3 is
+# defined with any CHECK OPTION and the WHERE qualification of this VIEW is
+# violated. Expect ROW NOT FUND
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %'
+ AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0
+ORDER BY v3_to_v1_options;
+# 4. There must be NO successful INSERT/UPDATE, when the toplevel VIEW v3 is
+# defined with any CHECK OPTION and the CHECK OPTION does not contain LOCAL
+# and the WHERE qualification of any VIEW is violated. Expect ROW NOT FUND
+SELECT * FROM t1_results
+WHERE v3_to_v1_options LIKE 'WITH %' AND v3_to_v1_options NOT LIKE 'WITH LOCAL %'
+ AND v3_to_v1_violation NOT LIKE ' _ _ ' AND errno = 0
+ORDER BY v3_to_v1_options;
+# 5. There must be NO failing INSERT/UPDATE getting a sql_errno <> 1369.
+SELECT * FROM t1_results
+WHERE errno <> 0 AND errno <> 1369
+ORDER BY v3_to_v1_options;
+let $message= End of plausibility checks;
+--source include/show_msg80.inc
+
+DROP TABLE t1_results;
+
+
+let $message= Testcase 3.3.1.50 - 3.3.1.53;
+--source include/show_msg80.inc
+--disable_warnings
+DROP VIEW IF EXISTS test.v1;
+--enable_warnings
+###############################################################################
+# Testcase 3.3.1.50: Ensure that a view that is a subset of every column and
+# every row of a single underlying table, contains the
+# correct row-and-column data; such a view has a definition
+# that is semantically equivalent to CREATE VIEW <view name>
+# AS SELECT * FROM <table name>.
+###############################################################################
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.v1 ;
+--enable_ps_protocol
+drop view test.v1 ;
+###############################################################################
+# Testcase 3.3.1.51: Ensure that a view that is a subset of only some columns
+# and every row of a single underlying table, contains the
+# correct row-and-column data; such a view has a definition
+# that is semantically equivalent to CREATE VIEW <view name>
+# AS SELECT col1, col3 FROM <table name>.
+###############################################################################
+CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
+SELECT * FROM test.v1 ;
+drop view test.v1 ;
+###############################################################################
+# Testcase 3.3.1.52: Ensure that a view that is a subset of every column and
+# some rows of a single underlying table, contains the
+# correct row-and-column data; such a view has a definition
+# 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 ;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.v1;
+--enable_ps_protocol
+drop view test.v1 ;
+###############################################################################
+# Testcase 3.3.1.53: Ensure that a view that is a subset of only some columns
+# and some rows of a single underlying table, contains
+# the correct row-and-column data; such a view has a
+# definition that is semantically equivalent to CREATE VIEW
+# <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;
+drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.54 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.54: Ensure that a view that is a subset of some or all columns
+# and/or column expressions and some or all rows of a single
+# underlying table contains the correct row-and-column data.
+###############################################################################
+USE test;
+--disable_warnings
+drop table if exists test.t1 ;
+drop table if exists test.t2 ;
+drop view if exists test.v1 ;
+--enable_warnings
+Create table t1 (f59 int, f60 int) ;
+Create table t2 (f59 int, f60 int) ;
+
+Insert into t1 values (1,10) ;
+Insert into t1 values (2,20) ;
+Insert into t1 values (47,80) ;
+Insert into t2 values (1,1000) ;
+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 ;
+
+drop table test.t1 ;
+drop table test.t2 ;
+drop view test.v1 ;
+
+
+# FIXME(ML): Implement an automatic check for 3.3.1.50 - 3.3.1.54
+# CREATE VIEW ... AS <SELECT ... FROM tb2 ...>
+# CREATE TEMPORARY TABLE ... AS <SELECT ... FROM tb2 ...>
+# Comparison of the VIEW with the temporary table
+
+let $message= Testcase 3.3.1.50 - 3.3.1.54 additional implementation;
+--source include/show_msg80.inc
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+#
+#
+# Testplan
+# ------------------------
+#
+# Testcase | all columns | all rows | column expressions
+# ---------------------------------------------------
+# 3.3.1.50 | yes | yes | no
+# 3.3.1.51 | no | yes | no
+# 3.3.1.52 | yes | no | no
+# 3.3.1.53 | no | no | no
+# 3.3.1.54 | no | no | yes
+CREATE TABLE t1 ( f1 BIGINT, f2 char(10), f3 DECIMAL(10,5) );
+INSERT INTO t1 VALUES(1, 'one', 1.1);
+INSERT INTO t1 VALUES(2, 'two', 2.2);
+INSERT INTO t1 VALUES(3, 'three', 3.3);
+# 3.3.1.50
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM v1;
+# 3.3.1.51
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1;
+SELECT * FROM v1;
+# 3.3.1.52
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+# 3.3.1.53
+CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t1 WHERE f3 = 2.2;
+SELECT * FROM v1;
+# 3.3.1.54
+--vertical_results
+SET sql_mode = 'traditional,ansi';
+CREATE OR REPLACE VIEW v1 AS
+SELECT f3 AS "pure column f3: ", f1 + f3 AS "sum of columns f1 + f3 = ",
+ 3 * (- 0.11111E+1) AS "product of constants 3 * (- 0.11111E+1): ",
+ '->' || CAST(f3 AS CHAR) || '<-'
+ AS "expression with '||'=CONCAT and CAST(DECIMAL column AS CHAR): "
+FROM t1 WHERE f1 = 2;
+SELECT * FROM v1;
+SET sql_mode = '';
+--horizontal_results
+
+
+let $message= Testcases 3.3.1.55 - 3.3.1.62 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase: Ensure that a view that is a subset of some or all columns and
+# some or all rows of multiple tables joined with an
+# 3.3.1.55 INNER JOIN
+# 3.3.1.56 CROSS JOIN
+# 3.3.1.57 STRAIGHT JOIN
+# 3.3.1.58 NATURAL JOIN
+# 3.3.1.59 LEFT OUTER JOIN
+# 3.3.1.60 NATURAL LEFT OUTER JOIN
+# 3.3.1.61 RIGHT OUTER
+# 3.3.1.62 NATURAL RIGHT OUTER
+# condition contains the correct row-and-column data.
+###############################################################################
+--disable_warnings
+Drop table if exists t1, t2 ;
+Drop view if exists v1 ;
+--enable_warnings
+Create table t1 (f59 int, f60 char(10), f61 int, a char(1)) ;
+Insert into t1 values (1, 'single', 3, '1') ;
+Insert into t1 values (2, 'double', 6, '2') ;
+Insert into t1 values (3, 'single-f3', 4, '3') ;
+
+Create table t2 (f59 int, f60 char(10), f61 int, b char(1)) ;
+Insert into t2 values (2, 'double', 6, '2') ;
+Insert into t2 values (3, 'single-f3', 6, '3') ;
+Insert into t2 values (4, 'single', 4, '4') ;
+
+# Testcase 3.3.1.55 ;
+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 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;
+
+# Testcase 3.3.1.56 ;
+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 t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2 cross join t1;
+
+# Testcase 3.3.1.57 ;
+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 straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
+FROM t2,t1;
+
+# Testcase 3.3.1.58 ;
+Create or replace view test.v1 as
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+Select * from v1;
+Select f59, f60, f61, a, b
+FROM t2 natural join t1;
+
+# Testcase 3.3.1.59 ;
+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 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;
+
+# Testcase 3.3.1.60 ;
+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 f59, f60, f61, t1.a, t2.b
+FROM t2 natural left outer join t1;
+
+# Testcase 3.3.1.61 ;
+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 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;
+
+# Testcase 3.3.1.62 ;
+Create or replace view test.v1 as
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+Select * from v1;
+Select f59, f60, a, b
+FROM t2 natural right outer join t1;
+
+drop table t1, t2;
+drop view v1 ;
+
+Use test;
+
+
+let $message= Testcase 3.3.1.A1 - 3.3.1.A3 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase: Ensure that a view that is a subset of some or all columns and/or
+# column expressions and some or all rows of multiple tables joined
+# with the combination of
+# 3.3.1.A1 LEFT JOIN
+# 3.3.1.A2 INNER JOIN
+# 3.3.1.A3 CROSS JOIN
+# condition contains the correct row-and-column data
+###############################################################################
+# Testcase 3.3.1.A1 ;
+--disable_warnings
+Drop table if exists t1 ;
+Drop view if exists v1;
+--enable_warnings
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (101,201,301) ;
+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;
+Drop view if exists test.v1 ;
+
+# Testcase 3.3.1.A2 ;
+--disable_warnings
+Drop table if exists t1 ;
+Drop view if exists v1;
+--enable_warnings
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (201,201,201) ;
+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;
+Drop view if exists test.v1 ;
+
+# Testcase 3.3.1.A3 ;
+--disable_warnings
+Drop table if exists t1 ;
+Drop view if exists v1;
+--enable_warnings
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (21,21,21) ;
+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;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.63 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.63: Ensure that a view that is a subset of some or all columns
+# and/or column expressions and some or all rows of multiple
+# tables joined with every possible combination of JOIN
+# conditions, UNION, UNION ALL and UNION DISTINCT, nested at
+# multiple levels, contains the correct row-and-column data.
+###############################################################################
+--disable_warnings
+Drop table if exists t1 ;
+Drop view if exists test.v1 ;
+--enable_warnings
+
+Create table t1 (f59 int, f60 int, f61 int) ;
+Insert into t1 values (11,21,31) ;
+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;
+
+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;
+
+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;
+
+Drop view test.v1 ;
+
+--disable_warnings
+drop table if exists t1;
+drop view if exists test.v1;
+--enable_warnings
+create table t1 (f59 int, f60 int, f61 int);
+
+insert into t1 values (101,201,301);
+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;
+
+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;
+
+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;
+
+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;
+
+drop view if exists test.v1 ;
+drop table t1;
+
+
+let $message= Testcase 3.3.1.64 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.64: Ensure that all changes to a view definition, executed by
+# the ALTER VIEW statement, are correctly recorded and have
+# the correct effect on the data shown by the view.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+CREATE VIEW test.v1 AS SELECT F59
+FROM test.tb2 where test.tb2.F59 = 109;
+
+SELECT * FROM test.v1 limit 0,10;
+
+ALTER VIEW test.v1 AS SELECT *
+FROM test.tb2 WHERE test.tb2.f59 = 242 ;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM test.v1 limit 0,10;
+--enable_ps_protocol
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.65: Ensure that the DROP VIEW statement cleanly drops its
+# target view.
+# Testcase 3.3.1.A4: Ensure that the DROP VIEW IF EXISTS statement cleanly
+# drops its target view.
+# Testcase 3.3.1.66: Ensure that DROP VIEW <view name> fails, with an appro-
+# priate error message, if the view named does not exist.
+# Testcase 3.3.1.67: Ensure that DROP VIEW IF EXISTS <view name> does not fail,
+# but merely returns an appropriate warning, if the view
+# named does not exist.
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS test.v1 ;
+--enable_warnings
+eval CREATE TABLE t1 ( f1 VARCHAR(1000) ) ENGINE = $engine_type ;
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+
+# DROP VIEW
+DROP VIEW v1;
+--error 1051
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+# DROP VIEW IF EXISTS
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1;
+
+
+let $message= Testcase 3.3.1.68 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.1.68: Ensure that DROP VIEW <view name>, DROP VIEW <view name>
+# RESTRICT, and DROP VIEW <view name> CASCADE all take
+# exactly the same action, until such time as the RESTRICT
+# and CASCADE keyword actions are implemented by MySQL.
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1_base ;
+DROP VIEW IF EXISTS v1_top ;
+--enable_warnings
+CREATE TABLE t1 ( f1 DOUBLE);
+
+--disable_query_log
+SET @part1= '';
+SET @part2= 'RESTRICT';
+SET @part3= 'CASCADE';
+--enable_query_log
+
+let $num1= 3;
+while ($num1)
+{
+
+ CREATE VIEW v1_base AS SELECT * FROM t1;
+ CREATE VIEW v1_top AS SELECT * FROM v1_base;
+ --disable_query_log
+ let $aux1= `SELECT CONCAT('DROP VIEW v1_top ', @v1_part)` ;
+ let $aux2= `SELECT CONCAT('DROP VIEW v1_base ', @v1_part)` ;
+ eval SET @v1_part= @part$num1;
+ --enable_query_log
+
+ # 1. more non important sub testcase, where the view (v1_top) is not the base of
+ # another object
+ # DROP VIEW v1_top < |RESTRICD|CASCADE> must be successful.
+ eval $aux1 ;
+ # Check, that v1_top really no more exists + cleanup for the second sub test
+ --error 1051
+ DROP VIEW v1_top;
+
+ CREATE VIEW v1_top AS SELECT * FROM v1_base;
+ # 2. more important sub testcase, where the view (v1_base) is the base of
+ # another object (v1_top)
+ # DROP VIEW v1_base < |RESTRICT|CASCADE>
+ # If the RESTRICT and CASCADE keyword actions are implemented by MySQL,
+ # CASCADE will remove v1_base and the dependend view v1_top and
+ # RESTRICT will fail, because there exists the dependend view v1_top
+ eval $aux2 ;
+ # Check, if v1_base and v1_top exist + cleanup for next loop
+ DROP VIEW v1_base;
+ DROP VIEW v1_top;
+
+ dec $num1;
+}
+
+
+let $message= Testcase 3.3.1.69, 3.3.1.70, 3.3.1.A5 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcases : Ensure that, when a view is dropped, its definition no longer
+# appears when a
+# 3.3.1.69 SHOW CREATE VIEW, SHOW CREATE TABLE, SHOW TABLE STATUS,
+# SHOW TABLE
+# 3.3.1.70 CHECK TABLE statement is executed
+# 3.3.1.A5 SHOW COLUMNS, SHOW FIELDS, DESCRIBE, EXPLAIN
+# statement is executed
+###############################################################################
+# Note(ML): There will be no non failing sub testcases with SHOW here.
+# They will be done in 3.3.11 ff.
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+eval CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ENGINE = $engine_type;
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP VIEW v1 ;
+
+# The negative tests:
+# SELECT
+--error 1146
+SELECT * FROM v1 ;
+#
+--error 1146
+SHOW CREATE VIEW v1 ;
+--error 1146
+SHOW CREATE TABLE v1 ;
+# Attention: Like is a filter. So we will get an empty result set here.
+SHOW TABLE STATUS like 'v1' ;
+SHOW TABLES LIKE 'v1';
+--error 1146
+SHOW COLUMNS FROM v1;
+--error 1146
+SHOW FIELDS FROM v1;
+CHECK TABLE v1;
+--error 1146
+DESCRIBE v1;
+--error 1146
+EXPLAIN SELECT * FROM v1;
+
+Use test;
+
+let $message= Testcase 3.3.1.A6 ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcases 3.3.1.A6 : Ensure that nested views up to level @max_level work.
+###############################################################################
+# 1. Simple nested VIEWs
+# Configurable parameter @max_level = nesting level
+# 128 must be good enough, it is already a pathologic value.
+# We currently set it to 32, because of performance issues.
+--disable_query_log
+SET @max_level= 32;
+--enable_query_log
+--disable_warnings
+DROP DATABASE IF EXISTS test3;
+--enable_warnings
+CREATE DATABASE test3;
+eval CREATE TABLE test3.t1 (f1 DECIMAL(5,3)) ENGINE = $engine_type;
+INSERT INTO test3.t1 SET f1 = 1.0;
+CREATE VIEW test3.v0 AS SELECT * FROM test3.t1;
+
+let $level= 1;
+let $run= 1;
+while ($run)
+{
+ --disable_query_log
+ eval SET @aux = $level - 1;
+ --enable_query_log
+ let $sublevel= `SELECT @aux`;
+
+ eval CREATE VIEW test3.v$level AS SELECT * FROM test3.v$sublevel;
+
+ # DEBUG Please set $debug to 1, if the statements on the toplevel VIEW
+ # (direct after the while loop) show suspicious results.
+ let $debug= 0;
+ if ($debug)
+ {
+ eval SHOW CREATE VIEW test3.v$level;
+ eval SELECT * FROM test3.v$level;
+ eval EXPLAIN SELECT * FROM test3.v$level;
+ }
+
+ --disable_query_log
+ eval SET @aux = @max_level > $level;
+ --enable_query_log
+ inc $level;
+ # DEBUG
+ # eval SELECT @aux AS "@aux", $level AS "next level";
+
+ let $run= `SELECT @aux`;
+}
+#--------------------------------------------------------------------------
+# Attention: If the following statements get suspicious/unexpected results
+# and you assume that something with the non toplevel VIEWs might
+# be wrong, please edit the while loop above and set $debug to 1.
+#--------------------------------------------------------------------------
+# 1.1 Check of top level VIEW
+let $toplevel= `SELECT @max_level`;
+eval SHOW CREATE VIEW test3.v$toplevel;
+eval SELECT * FROM test3.v$toplevel;
+eval EXPLAIN SELECT * FROM test3.v$toplevel;
+
+# 1.2 Check the top level view when a base VIEW is dropped
+DROP VIEW test3.v0;
+eval SHOW CREATE VIEW test3.v$toplevel;
+--error 1356
+eval SELECT * FROM test3.v$toplevel;
+--error 1356
+eval EXPLAIN SELECT * FROM test3.v$toplevel;
+
+
+# 2. Complicated nested VIEWs
+# parameter @max_level = nesting level
+# There is a limit(@join_limit = 61) for the number of tables which
+# could be joined. This limit will be reached, when we set
+# @max_level = @join_limit - 1 .
+--disable_query_log
+#++++++++++++++++++++++++++++++++++++++++++++++
+# OBN - Reduced the value of join limit to 30
+# Above seems to hang - FIXME
+# ML - Reason unclear why it hangs for OBN on innodb and memory.
+# Hypothesis: Maybe the consumption of virtual memory is high
+# 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;
+--source include/show_msg.inc
+#SET @join_limit = 61;
+SET @join_limit = 30;
+SET @max_level = @join_limit - 1;
+--enable_query_log
+
+--disable_warnings
+DROP DATABASE IF EXISTS test3;
+DROP TABLE IF EXISTS test1.t1;
+DROP TABLE IF EXISTS test2.t1;
+let $level= `SELECT @max_level + 1`;
+while ($level)
+{
+ dec $level;
+
+ eval DROP VIEW IF EXISTS test1.v$level;
+}
+--enable_warnings
+CREATE DATABASE test3;
+
+# Testplan for the content of the tables:
+# ---------------------------------------------------------
+# Records test1.t1 test2.t1 test3.t1
+# NULL, 'numeric column is NULL' yes yes yes
+# 0 , NULL yes yes yes
+# 5 , 'five' yes yes yes
+# 1 , 'one' yes yes no
+# 2 , 'two' yes no yes
+# 3 , 'three' no yes yes
+
+USE test1;
+eval CREATE TABLE t1 (f1 BIGINT, f2 CHAR(50)) ENGINE = $engine_type ;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0, NULL);
+INSERT INTO t1 VALUES (5, 'five');
+
+INSERT INTO t1 VALUES (1, 'one');
+INSERT INTO t1 VALUES (2, 'two');
+
+USE test2;
+eval CREATE TABLE t1 (f1 DECIMAL(64,30), f2 VARCHAR(50)) ENGINE = $engine_type;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (0.000000000000000000000000000000, NULL);
+INSERT INTO t1 VALUES (5.000000000000000000000000000000, 'five');
+
+INSERT INTO t1 VALUES (+1.000000000000000000000000000000, 'one');
+INSERT INTO t1 VALUES (3.000000000000000, 'three');
+
+USE test3;
+eval CREATE TABLE t1 (f1 DOUBLE, f2 VARBINARY(50)) ENGINE = $engine_type;
+INSERT INTO t1 VALUES (NULL, 'numeric column is NULL');
+INSERT INTO t1 VALUES (+0.0E-35, NULL);
+INSERT INTO t1 VALUES (+0.5E+1, 'five');
+
+INSERT INTO t1 VALUES (20.0E-1, 'two');
+INSERT INTO t1 VALUES (0.0300E2, 'three');
+
+USE test;
+
+CREATE OR REPLACE VIEW test1.v0 AS SELECT * FROM test2.t1;
+
+--disable_query_log
+SET @max_level = IFNULL(@limit1,@max_level);
+--enable_query_log
+let $level= 1;
+let $run= 1;
+while ($run)
+{
+ --disable_query_log
+ eval SET @aux = $level - 1;
+ let $sublevel= `SELECT @aux`;
+ eval SET @AUX = $level MOD 3 + 1;
+ let $dbnum= `SELECT @AUX`;
+ --enable_query_log
+
+ eval CREATE OR REPLACE VIEW test1.v$level AS SELECT f1, f2
+ FROM test$dbnum.t1 tab1 NATURAL JOIN test1.v$sublevel tab2;
+
+ # DEBUG Please set $debug to 1, if the statements on the toplevel VIEW
+ # (direct after the while loop) show suspicious results.
+ let $debug= 0;
+ if ($debug)
+ {
+ eval SHOW CREATE VIEW test1.v$level;
+ eval SELECT * FROM test1.v$level;
+ eval SELECT f1, f2
+ FROM test$dbnum.t1 tab1 NATURAL JOIN test1.v$sublevel tab2;
+ eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$level;
+ eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$level;
+ }
+
+ --disable_query_log
+ eval SET @aux = @max_level > $level;
+ --enable_query_log
+ inc $level;
+ # DEBUG
+ # eval SELECT @aux AS "@aux", $level AS "next level";
+
+ let $run= `SELECT @aux`;
+}
+
+#--------------------------------------------------------------------------
+# Atention: If the following statements get suspicious/unexpected results
+# and you assume that something with the non toplevel VIEWs might
+# be wrong, please edit the while loop above and set $debug to 1.
+#--------------------------------------------------------------------------
+# 2.1 Check of top level VIEW
+let $toplevel= `SELECT @max_level`;
+# Show should be easy
+eval SHOW CREATE VIEW test1.v$toplevel;
+# SELECT is much more complicated
+eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+let $message= The output of following EXPLAIN is deactivated, because the result
+ differs on some platforms
+ FIXME Is this a bug ? ;
+--source include/show_msg80.inc
+if (1)
+{
+--disable_result_log
+}
+# EXPLAIN might be the hell
+eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+if (1)
+{
+--enable_result_log
+}
+
+# 2.2 Check of top level VIEW when join limit is exceeded
+# Exceed the limit for the number of tables which could be joined.
+let $level= `SELECT @max_level + 1`;
+let $sublevel= `SELECT @max_level`;
+eval CREATE VIEW test1.v$level AS SELECT f1, f2
+ FROM test3.t1 tab1 NATURAL JOIN test1.v$sublevel tab2;
+eval SHOW CREATE VIEW test1.v$level;
+# the following line as written as '--eror 1116' and the command
+# is successful so assuming no expected error was intended
+# --error 1116
+eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$level;
+let $message= The output of following EXPLAIN is deactivated, because the result
+ differs on some platforms
+ FIXME Is this a bug ? ;
+--source include/show_msg80.inc
+if (1)
+{
+--disable_result_log
+}
+# the following line as written as '--eror 1116' and the command
+# is successful so assuming no expected error was intended
+# --error 1116
+eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$level;
+if (1)
+{
+--enable_result_log
+}
+eval DROP VIEW IF EXISTS test1.v$level;
+
+# 2.3 Create a logical wrong (data type "garbage") base for the upper views
+# and check the behaviour of the top level view.
+# 2.3.1 Exchange numeric and string column
+--disable_result_log
+CREATE OR REPLACE VIEW test1.v0 AS
+SELECT f1 as f2, f2 as f1 FROM test2.t1;
+# 2.3.2 DATE instead of numeric
+CREATE OR REPLACE VIEW test2.v0 AS
+SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1;
+eval SHOW CREATE VIEW test1.v$toplevel;
+eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+# 2.3.3 UCS2 string instead of common string
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
+eval SHOW CREATE VIEW test1.v$toplevel;
+eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+
+# 2.3.4 UCS2 string instead of numeric
+CREATE OR REPLACE VIEW test3.v0 AS
+SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
+eval SHOW CREATE VIEW test1.v$toplevel;
+eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
+ CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
+--enable_result_log
+
+# Cleanup
+let $level= `SELECT @max_level + 1`;
+while ($level)
+{
+ dec $level;
+
+eval DROP VIEW IF EXISTS test1.v$level;
+
+}
+DROP DATABASE test3;
+DROP TABLE test1.t1;
+DROP TABLE test2.t1;
+
+#==============================================================================
+# 3.3.2 Updatable and Insertable-into views:
+#==============================================================================
+Use test;
+
+let $message= Testcase 3.3.2.1;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.1: Ensure that every view which may theoretically accept new
+# rows via the INSERT statement does, in fact, do so.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+Create View test.v1 AS SELECT f59,f60 FROM tb2 where f59 = 1995 ;
+--enable_info
+INSERT INTO test.v1 (f59,f60) values (879,700) ;
+--disable_info
+SELECT f59,f60 FROM test.v1 where f59 = 879 and f60 = 700 ;
+DELETE FROM tb2 where f59 = 879 and f60 = 700 ;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.2.2;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.2: Ensure that, for every row inserted into a view,
+# the correct new data also appears in every relevant
+# underlying table.
+###############################################################################
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+--enable_info
+INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ;
+--disable_info
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ;
+--enable_ps_protocol
+SELECT f59,f60 FROM test.v1 where f59 = 2005 and f60 = 0101 ;
+DELETE FROM tb2 where f59 = 2005 and f60 = 0101 ;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.2.3;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.3: Ensure that every view which may theoretically accept data
+# changes via the UPDATE statement does, in fact, do so.
+###############################################################################
+Insert into tb2 (f59,f60,f61) values (780,105,106) ;
+
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+--enable_info
+UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105;
+--disable_info
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM tb2 where f59 = 8 and f60 = 105;
+--enable_ps_protocol
+SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.2.4;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.4: Ensure that, for data values updated within a view, the
+# correct new data also appears in every relevant
+# underlying table.
+###############################################################################
+Insert into tb2 (f59,f60,f61) values (781,105,106) ;
+
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ;
+--enable_info
+UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ;
+--disable_info
+
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM tb2 where f59 = 891 and f60 = 105;
+--enable_ps_protocol
+SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.2.5;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.5: Ensure that every view which may theoretically accept data
+# deletions via the DELETE statement does, in fact, do so.
+###############################################################################
+Insert into tb2 (f59,f60,f61) values (789,105,106) ;
+
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 789 ;
+--enable_info
+DELETE FROM test.v1 where f59 = 789 ;
+--disable_info
+SELECT * FROM tb2 where f59 = 789 ;
+SELECT f59,f60 FROM test.v1 where f59 = 789;
+
+Drop view test.v1 ;
+
+
+let $message= Testcase 3.3.2.6;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.6: Ensure that, for data rows deleted from a view, the correct
+# rows have also been deleted from every relevant
+# underlying table.
+###############################################################################
+Insert into tb2 (f59,f60,f61) values (711,105,106) ;
+
+--disable_warnings
+Drop view if exists test.v1 ;
+--enable_warnings
+CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 711 ;
+--enable_info
+DELETE FROM test.v1 where f59 = 711 ;
+--disable_info
+
+SELECT * FROM tb2 where f59 = 711 ;
+SELECT f59,f60 FROM test.v1 where f59 = 711;
+
+Drop view test.v1 ;
+
+let $message= Testcase 3.3.2.1 - 3.3.2.6 alternative implementation;
+--source include/show_msg80.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4),
+ f4 CHAR, PRIMARY KEY(f1));
+
+# VIEW including the base table PRIMARY KEY, but not all base table columns (f4)
+# no additional columns
+CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1;
+
+# Incomplete INSERT 1
+# - f2 missing
+# - PRIMARY KEY f1 included
+# f2 gets the default NULL
+INSERT INTO v1 SET f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+
+# Incomplete INSERT 2
+# - f2 included
+# - PRIMARY KEY f1 missing
+# f1 gets the default 0, because we are in the native sql_mode
+INSERT INTO v1 SET f2 = 'ABC';
+# f1 gets the default 0, but this value is already exists
+--error 1062
+INSERT INTO v1 SET f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+
+# Testplan for DELETE:
+#
+# Column within WHERE qualification
+# f1 (PK)
+# f2 (non PK)
+# none
+#
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE f1
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE f2
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE none
+DELETE FROM v1;
+SELECT * from t1;
+
+# Testplan for UPDATE:
+# Column to modify Column within WHERE qualification
+# f1 (PK) f1(PK + same column to modify)
+# f1 (PK) f2
+# f1 (PK) none
+# f2 (non PK) f1(PK)
+# f2 (non PK) f2(non PK + same column to modify)
+# f2 (non PK) f3(non PK)
+# f2 (non PK) none
+# f1,f2 f1,f2
+#
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - f1
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - f2
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - none
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f1
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f2
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f3
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - none
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1,f2 - f1,f2
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+
+
+DROP VIEW v1;
+# VIEW without the PRIMARY KEY f1 of the base table
+# no additional columns
+CREATE VIEW v1 AS SELECT f2, f3 FROM t1;
+
+# INSERT
+# - PRIMARY KEY f1 missing in VIEW definition
+# f1 gets the default 0, because we are in the native sql_mode
+INSERT INTO v1 SET f2 = 'ABC';
+# f1 gets the default 0 and this value is already exists
+--error 1062
+INSERT INTO v1 SET f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+
+# Testplan for DELETE:
+#
+# Column within WHERE qualification
+# f2 (non PK)
+# none
+#
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE f2
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE none
+DELETE FROM v1;
+SELECT * from t1;
+
+# Testplan for UPDATE:
+#
+# Column to modify Column within WHERE qualification
+# f2 (non PK) f2(non PK + same column to modify)
+# f2 (non PK) f3(non PK)
+# f2 (non PK) none
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f2
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f3
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - none
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+DELETE FROM t1;
+
+
+DROP VIEW v1;
+# VIEW with the PRIMARY KEY f1 of the base table
+# but additional constant column
+CREATE VIEW v1 AS SELECT f1, f2, f3, 'HELLO' AS my_greeting FROM t1;
+
+# Maybe the SQL standard allows the following INSERT.
+# But it would be a very sophisticated DBMS.
+--error ER_NON_INSERTABLE_TABLE
+INSERT INTO v1 SET f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+# The next INSERTs should never work, because my_greeting is a constant.
+--error ER_NON_INSERTABLE_TABLE
+INSERT INTO v1 SET f1 = 1, my_greeting = 'HELLO';
+SELECT * from t1;
+DELETE FROM t1;
+
+# Testplan for DELETE:
+#
+# Column within WHERE qualification
+# f1 (PK)
+# f2 (non PK)
+# my_greeting(non base table column)
+# none
+#
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE f1
+DELETE FROM v1 WHERE f1 = 1;
+SELECT * from t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE f2
+DELETE FROM v1 WHERE f2 = 'ABC';
+SELECT * from t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE my_greeting
+DELETE FROM v1 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE none
+DELETE FROM v1;
+SELECT * from t1;
+
+
+# Testplan for UPDATE:
+#
+# Column to modify Column within WHERE qualification
+# f1 (PK) f1(PK + same column to modify)
+# f1 (PK) f2
+# f1 (PK) my_greeting(non base table column)
+# f1 (PK) none
+# f2 (non PK) f1(PK)
+# f2 (non PK) f2(non PK + same column to modify)
+# f2 (non PK) f3(non PK)
+# f2 (non PK) my_greeting(non base table column)
+# f2 (non PK) none
+# my_greeting(non base table column) f1(PK)
+# my_greeting(non base table column) f2(non PK)
+# my_greeting(non base table column) my_greeting(same non base table column)
+# my_greeting(non base table column) none
+# f1,f2 f1,f2
+#
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - f1
+UPDATE v1 SET f1 = 2 WHERE f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - f2
+UPDATE v1 SET f1 = 2 WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - my_greeting
+UPDATE v1 SET f1 = 2 WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - none
+UPDATE v1 SET f1 = 2;
+SELECT * from t1;
+DELETE FROM t1;
+#------------------------------------------------
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f1
+UPDATE v1 SET f2 = 'NNN' WHERE f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f2
+UPDATE v1 SET f2 = 'NNN' WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - f3
+UPDATE v1 SET f2 = 'NNN' WHERE f3 = -1.2E-3;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - my_greeting
+UPDATE v1 SET f2 = 'NNN' WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f2 - none
+UPDATE v1 SET f2 = 'NNN';
+SELECT * from t1;
+DELETE FROM t1;
+#------------------------------------------------
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE my_greeting - f1
+--error 1348
+UPDATE v1 SET my_greeting = 'Hej' WHERE f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE my_greeting - f2
+--error 1348
+UPDATE v1 SET my_greeting = 'Hej' WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE my_greeting - my_greeting
+--error 1348
+UPDATE v1 SET my_greeting = 'Hej' WHERE my_greeting = 'HELLO';
+SELECT * from t1;
+DELETE FROM t1;
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE my_greeting - none
+--error 1348
+UPDATE v1 SET my_greeting = 'Hej';
+SELECT * from t1;
+DELETE FROM t1;
+#------------------------------------------------
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1, f2 - f1, f2
+UPDATE v1 SET f1 = 2, f2 = 'NNN' WHERE f1 = 1 AND f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+
+
+DROP TABLE t1;
+SET sql_mode = 'traditional';
+CREATE TABLE t1 ( f1 BIGINT, f2 CHAR(20), f3 NUMERIC(7,4) NOT NULL,
+ f4 CHAR, PRIMARY KEY(f1));
+# VIEW including the base table PRIMARY KEY, but not the NOT NULL
+# base table column (f3)
+# no additional columns
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT f1, f2, f4 FROM t1;
+
+# This INSERT must fail
+--error 1423
+INSERT INTO v1 SET f1 = 1;
+SELECT * from t1;
+DELETE FROM t1;
+
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# DELETE f1
+DELETE FROM v1 WHERE f1 = 1;
+
+INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X');
+# UPDATE f1 - f2
+UPDATE v1 SET f4 = 'Y' WHERE f2 = 'ABC';
+SELECT * from t1;
+DELETE FROM t1;
+
+# Switch back to the native SQL mode
+SET sql_mode = '';
+
+
+
+let $message= Testcases 3.3.2.7 - 3.3.2.9,
+ 3.3.2.10 - 3.3.2.11 omitted because of missing
+ features EXCEPT and INTERSECT ;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.7: Ensure that a view with a definition that includes
+# UNION
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.8: Ensure that a view with a definition that includes
+# UNION DISTINCT
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.9: Ensure that a view with a definition that includes
+# UNION ALL
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.10: Ensure that a view with a definition that includes
+# EXCEPT
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# (Note: MySQL does not support EXCEPT at this time;
+# this test is for the future.)
+# Testcase 3.3.2.11: Ensure that a view with a definition that includes
+# INTERSECT
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# (Note: MySQL does not support INTERSECT at this time;
+# this test is for the future.)
+#
+# Summary of 3.3.2.7 - 3.3.2.11
+# Ensure that a view with a definition that includes
+# UNION or UNION DISTINCT or UNION ALL or EXCEPT or INTERSECT
+# rejects any INSERT or UPDATE or DELETE statement with an
+# appropriate error message
+#
+# ML: I assume the type of the storage engine does not play any role.
+###############################################################################
+INSERT INTO tb2 (f59,f60,f61) VALUES (77,185,126) ;
+INSERT INTO tb2 (f59,f60,f61) VALUES (59,58,54) ;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1 ;
+DROP VIEW IF EXISTS v1 ;
+--enable_warnings
+CREATE TABLE t1 (f59 INT, f60 INT, f61 INT) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+
+SET @variant1 = 'UNION ';
+SET @variant2 = 'UNION ALL ';
+SET @variant3 = 'UNION DISTINCT ';
+SET @variant4 = 'EXCEPT ';
+SET @variant5 = 'INTERSECT ';
+
+# Attention: Set $num to 5, when EXCEPT and INTERSECT is supported
+let $num= 3;
+while ($num)
+{
+ --disable_query_log
+ eval SET @variant= @variant$num;
+ let $aux= `SELECT CONCAT('CREATE VIEW v1 AS ',
+ 'SELECT f61 FROM tb2 WHERE f59=59 ',
+ @variant,
+ 'SELECT f61 FROM t1 WHERE f59=19')`;
+ --enable_query_log
+ # $aux contains the CREATE VIEW statement
+ eval $aux;
+ --error ER_NON_INSERTABLE_TABLE
+ INSERT INTO v1 VALUES (3000);
+ --error 1288
+ UPDATE v1 SET f61 = 100 WHERE f61 = 32;
+ --error 1288
+ DELETE FROM v1;
+ DROP VIEW v1 ;
+
+ dec $num;
+}
+
+
+let $message= Testcases 3.3.2.12 - 3.3.2.20;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.2.12: Ensure that a view with a definition that includes
+# DISTINCT
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.13: Ensure that a view with a definition that includes
+# DISTINCTROW
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.14: Ensure that a view with a definition that includes
+# a set function
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.15: Ensure that a view with a definition that includes
+# GROUP BY
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.16: Ensure that a view with a definition that includes
+# HAVING
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.17: Ensure that a view with a definition that includes
+# a subquery in the select list
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.18: Ensure that a view with a definition that includes
+# a reference to a non-updatable view
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.19: Ensure that a view with a definition that includes
+# a WHERE clause subquery that refers to a table also
+# referenced in a FROM clause
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+# Testcase 3.3.2.20: Ensure that a view with a definition that includes
+# ALGORITHM = TEMPTABLE
+# rejects all INSERT, UPDATE, or DELETE attempts
+# with an appropriate error message.
+#
+# Summary of 3.3.2.12 - 3.3.2.20:
+# Ensure that a view with a definition that includes
+# DISTINCT 3.3.2.12
+# DISTINCTROW 3.3.2.13
+# SET 3.3.2.14
+# GROUP BY 3.3.2.15
+# HAVING 3.3.2.16
+# a sub query in the select list 3.3.2.17
+# a reference to a non-updateable view 3.3.2.18
+# a WHERE clause sub query that refers to a table also referenced in a
+# FROM clause 3.3.2.19
+# ALGORITHM = TEMPTABLE 3.3.2.20
+# rejects
+# any INSERT or UPDATE or DELETE statement
+# with an appropriate error message.
+#
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2 ;
+DROP VIEW IF EXISTS test.v1 ;
+Drop view if exists v2 ;
+--enable_warnings
+
+CREATE TABLE t1 (f59 int, f60 int, f61 int) ;
+INSERT INTO t1 VALUES (19,41,32) ;
+INSERT INTO t1 VALUES (59,54,71) ;
+INSERT INTO t1 VALUES (21,91,99) ;
+CREATE TABLE t2 (f59 int, f60 int, f61 int) ;
+INSERT INTO t2 VALUES (19,41,32) ;
+INSERT INTO t2 VALUES (59,54,71) ;
+INSERT INTO t2 VALUES (21,91,99) ;
+CREATE VIEW v2 AS SELECT f59, f60, f61 FROM t2 LIMIT 5;
+
+# For DISTINCT 3.3.2.12
+SET @variant1= 'CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1';
+# For DISTINCTROW 3.3.2.13
+SET @variant2= 'CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1';
+# For SET 3.3.2.14
+SET @variant3= 'CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1';
+# For GROUP BY 3.3.2.15
+SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61';
+# For HAVING 3.3.2.16
+SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0';
+# For a sub query in the select list 3.3.2.17
+SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1';
+# For a WHERE clause sub query that refers to a table also referenced in a
+# FROM clause 3.3.2.18
+SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2';
+# Attention: The attempt to UPDATE the next VIEW fails like expected,
+# but the error message
+# ERROR 1093 (HY000) : You can't specify target table 'v1' for
+# update in FORM clause"
+# is wrong. The server must deliver ERROR 1288.
+# Bug#10773 Incorrect message is displayed while updating a view
+# ML FIXME (remove the comment above, replace --error 1288,1093 with
+# --error 1288 and update the file with expected results)
+# when Bug#10773 is solved
+# For a reference to a non-updateable view 3.3.2.19
+let $message= Some server responses suffer from
+Bug#10773 Incorrect message is displayed while updating a view;
+--source include/show_msg80.inc
+SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)';
+# For ALGORITHM = TEMPTABLE 3.3.2.20
+SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1';
+
+let $num= 9;
+while ($num)
+{
+ --disable_abort_on_error
+ --disable_query_log
+ eval SET @variant= @variant$num;
+ let $aux= `SELECT @variant`;
+ --enable_query_log
+
+ # CREATE VIEW v1 ...
+ eval $aux;
+
+ --error ER_NON_INSERTABLE_TABLE
+ INSERT INTO v1 VALUES (1002);
+ --error 1288, 1093
+ UPDATE v1 SET f61=1007;
+ --error 1288
+ DELETE FROM v1;
+
+ # The following "--error 0" will be no more needed, when
+ # Bug#12471: mysqltest, --error within loop affects wrong statement
+ # is fixed.
+ --error 0
+ DROP VIEW v1;
+
+ dec $num;
+}
+
+Drop TABLE t1, t2 ;
+Drop VIEW v2 ;
+
+
+let $message= Testcases 3.3.A1;
+--source include/show_msg80.inc
+###############################################################################
+# Testcase 3.3.A1: Check the effects of base table modifications on an already
+# existing VIEW
+#
+# Attention: Many modifications are logical non sense.
+# The consequence is in many cases a "garbage in garbage out" effect.
+#
+# There is no specification of the intended behaviour within
+# the MySQL manual. That means I assume the observed effects are
+# no bug as long we do not get a crash or obviously non
+# reasonable results.
+###############################################################################
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+--enable_warnings
+
+eval CREATE TABLE t1 (f1 BIGINT, f2 DATE DEFAULT NULL, f4 CHAR(5),
+ report char(10)) ENGINE = $engine_type;
+CREATE VIEW v1 AS SELECT * FROM t1;
+INSERT INTO t1 SET f1 = -1, f4 = 'ABC', report = 't1 0';
+INSERT INTO v1 SET f1 = -1, f4 = 'ABC', report = 'v1 0';
+
+# 0. Initial state
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 1. Name of one base table column is altered
+ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5);
+INSERT INTO t1 SET f1 = 0, f4x = 'ABC', report = 't1 1';
+--error 1356
+INSERT INTO v1 SET f1 = 0, f4 = 'ABC', report = 'v1 1';
+--error 1054
+INSERT INTO v1 SET f1 = 0, f4x = 'ABC', report = 'v1 1a';
+--error 1356
+INSERT INTO v1 SET f1 = 0, report = 'v1 1b';
+DESCRIBE t1;
+# Bug#12533 crash on DESCRIBE <view> after renaming base table column;
+--error 1356
+DESCRIBE v1;
+SELECT * FROM t1;
+--error 1356
+SELECT * FROM v1;
+ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5);
+#
+# 2. Length of one base table column is increased
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10);
+INSERT INTO t1 SET f1 = 2, f4 = '<-- 10 -->', report = 't1 2';
+INSERT INTO v1 SET f1 = 2, f4 = '<-- 10 -->', report = 'v1 2';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 3. Length of one base table column is reduced
+ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(8);
+INSERT INTO t1 SET f1 = 3, f4 = '<-- 10 -->', report = 't1 3';
+INSERT INTO v1 SET f1 = 3, f4 = '<-- 10 -->', report = 'v1 3';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 4. Type of one base table column is altered string -> string
+ALTER TABLE t1 CHANGE COLUMN f4 f4 VARCHAR(20);
+INSERT INTO t1 SET f1 = 4, f4 = '<------ 20 -------->', report = 't1 4';
+INSERT INTO v1 SET f1 = 4, f4 = '<------ 20 -------->', report = 'v1 4';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 5. Type of one base table column altered numeric -> string
+ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30);
+INSERT INTO t1 SET f1 = '<------------- 30 ----------->',
+ f4 = '<------ 20 -------->', report = 't1 5';
+INSERT INTO v1 SET f1 = '<------------- 30 ----------->',
+ f4 = '<------ 20 -------->', report = 'v1 5';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 6. DROP of one base table column
+ALTER TABLE t1 DROP COLUMN f2;
+INSERT INTO t1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 't1 6';
+--error 1356
+INSERT INTO v1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 'v1 6';
+DESCRIBE t1;
+--error 1356
+DESCRIBE v1;
+SELECT * FROM t1;
+--error 1356
+SELECT * FROM v1;
+#
+# 7. Recreation of dropped base table column with the same data type like before
+ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL;
+INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04',
+ f4 = '<------ 20 -------->', report = 't1 7';
+INSERT INTO v1 SET f1 = 'ABC', f2 = '1500-12-04',
+ f4 = '<------ 20 -------->', report = 'v1 7';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 8. Recreation of dropped base table column with a different data type
+# like before
+ALTER TABLE t1 DROP COLUMN f2;
+ALTER TABLE t1 ADD COLUMN f2 FLOAT;
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+ f4 = '<------ 20 -------->', report = 't1 8';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+ f4 = '<------ 20 -------->', report = 'v1 8';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 9. Add a column to the base table
+ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2);
+INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4,
+ f3 = -2.2, f4 = '<------ 20 -------->', report = 't1 9';
+--error 1054
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+ f3 = -2.2, f4 = '<------ 20 -------->', report = 'v1 9';
+INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4,
+ f4 = '<------ 20 -------->', report = 'v1 9a';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+#
+# 10. VIEW with numeric function is "victim" of data type change
+DROP TABLE t1;
+DROP VIEW v1;
+eval CREATE TABLE t1 (f1 CHAR(10), f2 BIGINT) ENGINE = $engine_type;
+INSERT INTO t1 SET f1 = 'ABC', f2 = 3;
+CREATE VIEW v1 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30);
+INSERT INTO t1 SET f1 = 'ABC', f2 = 'DEF';
+DESCRIBE t1;
+DESCRIBE v1;
+SELECT * FROM t1;
+SELECT * FROM v1;
+# Some statements for comparison
+# - the ugly SQRT('DEF) as constant
+SELECT SQRT('DEF');
+# - Will a VIEW based on the same definition show the same result ?
+CREATE VIEW v2 AS SELECT SQRT('DEF');
+SELECT * FROM v2;
+# - Will a VIEW v2 created after the base table column recreation show the same
+# result set like v1 ?
+CREATE OR REPLACE VIEW v2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+DESCRIBE v2;
+SELECT * FROM v2;
+# - What will be the content of base table created with AS SELECT ?
+CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM t2;
+--enable_ps_protocol
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v1;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM t2;
+--enable_ps_protocol
+DROP TABLE t2;
+CREATE TABLE t2 AS SELECT * FROM v2;
+if ($have_bug_11589)
+{
+--disable_ps_protocol
+}
+SELECT * FROM t2;
+--enable_ps_protocol
+#
+DROP TABLE t1;
+DROP TABLE t2;
+DROP VIEW v1;
+DROP VIEW v2;
+
+
+
+# Clean up
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v1_1;
+DROP VIEW IF EXISTS v1_2;
+DROP VIEW IF EXISTS v1_firstview;
+DROP VIEW IF EXISTS v1_secondview;
+DROP VIEW IF EXISTS v2;
+DROP DATABASE IF EXISTS test2;
+DROP DATABASE IF EXISTS test3;
+--enable_warnings
+
+# FIXME sub testcases, which might be included, if they fit good into
+# the requirements and the completeness of the tests is increased
+# Bug#10970 Views: dependence on temporary table allowed
+# Bug#4663 constant function in WHERE clause evaluated in view definition
+# Bug#6808 Views: CREATE VIEW v ... FROM t AS v fails
+# Bug#10977 Views: no warning if column name is truncated
+# Bug#9505: Views: privilege needed on underlying function
+
+# --source suite/funcs_1/Views/Views_403x406.test
+# --source suite/funcs_1/Views/Views_407.test
+# --source suite/funcs_1/Views/Views_408x411.test
+
+
+
diff --git a/mysql-test/suite/funcs_2/charset/charset_master.test b/mysql-test/suite/funcs_2/charset/charset_master.test
new file mode 100644
index 00000000000..a241e62f0f4
--- /dev/null
+++ b/mysql-test/suite/funcs_2/charset/charset_master.test
@@ -0,0 +1,606 @@
+#################################################################################
+# Author: Serge Kozlov #
+# Date: 09/21/2005 #
+# Purpose: used by ../t/*_charset.test #
+# Require: set $engine_type= [NDB,MyISAM,InnoDB,etc] before calling #
+#################################################################################
+
+#
+#
+#
+
+let $check_std_csets= 1;
+let $check_ucs2_csets= 1;
+let $check_utf8_csets= 1;
+
+#
+# Check all charsets/collation combinations
+#
+
+if ($check_std_csets)
+{
+
+# armscii8
+
+let $cset= armscii8;
+let $coll= armscii8_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= armscii8;
+let $coll= armscii8_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# ascii
+
+let $cset= ascii;
+let $coll= ascii_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= ascii;
+let $coll= ascii_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# big5
+
+let $cset= big5;
+let $coll= big5_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= big5;
+let $coll= big5_chinese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# binary
+
+let $cset= binary;
+let $coll= ;
+let $bin_cset= 1;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp1250
+
+let $cset= cp1250;
+let $coll= cp1250_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1250;
+let $coll= cp1250_croatian_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+
+let $cset= cp1250;
+let $coll= cp1250_czech_cs;
+--source suite/funcs_2/include/check_charset.inc
+
+
+let $cset= cp1250;
+let $coll= cp1250_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp1251
+
+let $cset= cp1251;
+let $coll= cp1251_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1251;
+let $coll= cp1251_bulgarian_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1251;
+let $coll= cp1251_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1251;
+let $coll= cp1251_general_cs;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1251;
+let $coll= cp1251_ukrainian_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp1256
+
+let $cset= cp1256;
+let $coll= cp1256_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1256;
+let $coll= cp1256_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp1257
+
+let $cset= cp1257;
+let $coll= cp1257_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1257;
+let $coll= cp1257_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp1257;
+let $coll= cp1257_lithuanian_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp850
+
+let $cset= cp850;
+let $coll= cp850_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp850;
+let $coll= cp850_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp852
+
+let $cset= cp852;
+let $coll= cp852_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp852;
+let $coll= cp852_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp866
+
+let $cset= cp866;
+let $coll= cp866_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp866;
+let $coll= cp866_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# cp932
+
+let $cset= cp932;
+let $coll= cp932_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= cp932;
+let $coll= cp932_japanese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# dec8
+
+let $cset= dec8;
+let $coll= dec8_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= dec8;
+let $coll= dec8_swedish_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# eucjpms
+
+let $cset= eucjpms;
+let $coll= eucjpms_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= eucjpms;
+let $coll= eucjpms_japanese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# euckr
+
+let $cset= euckr;
+let $coll= euckr_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= euckr;
+let $coll= euckr_korean_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# gb2312
+
+let $cset= gb2312;
+let $coll= gb2312_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= gb2312;
+let $coll= gb2312_chinese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# gbk
+
+let $cset= gbk;
+let $coll= gbk_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= gbk;
+let $coll= gbk_chinese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# geostd8
+
+let $cset= geostd8;
+let $coll= geostd8_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= geostd8;
+let $coll= geostd8_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# greek
+
+let $cset= greek;
+let $coll= greek_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= greek;
+let $coll= greek_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# hebrew
+
+let $cset= hebrew;
+let $coll= hebrew_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= hebrew;
+let $coll= hebrew_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# hp8
+
+let $cset= hp8;
+let $coll= hp8_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= hp8;
+let $coll= hp8_english_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# keybcs2
+
+let $cset= keybcs2;
+let $coll= keybcs2_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= keybcs2;
+let $coll= keybcs2_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# koi8r
+
+let $cset= koi8r;
+let $coll= koi8r_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= koi8r;
+let $coll= koi8r_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# koi8u
+
+let $cset= koi8u;
+let $coll= koi8u_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= koi8u;
+let $coll= koi8u_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# latin1
+
+let $cset= latin1;
+let $coll= latin1_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin1;
+let $coll= latin1_danish_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin1;
+let $coll= latin1_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin1;
+let $coll= latin1_general_cs;
+--source suite/funcs_2/include/check_charset.inc
+
+
+let $cset= latin1;
+let $coll= latin1_german1_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin1;
+let $coll= latin1_german2_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin1;
+let $coll= latin1_spanish_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin1;
+let $coll= latin1_swedish_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# latin2
+
+let $cset= latin2;
+let $coll= latin2_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin2;
+let $coll= latin2_croatian_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin2;
+let $coll= latin2_czech_cs;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin2;
+let $coll= latin2_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin2;
+let $coll= latin2_hungarian_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# latin5
+
+let $cset= latin5;
+let $coll= latin5_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin5;
+let $coll= latin5_turkish_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# latin7
+
+let $cset= latin7;
+let $coll= latin7_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin7;
+let $coll= latin7_estonian_cs;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin7;
+let $coll= latin7_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= latin7;
+let $coll= latin7_general_cs;
+--source suite/funcs_2/include/check_charset.inc
+
+# macce
+
+let $cset= macce;
+let $coll= macce_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= macce;
+let $coll= macce_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# macroman
+
+let $cset= macroman;
+let $coll= macroman_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= macroman;
+let $coll= macroman_general_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# sjis
+
+let $cset= sjis;
+let $coll= sjis_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= sjis;
+let $coll= sjis_japanese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# swe7
+
+let $cset= swe7;
+let $coll= swe7_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= swe7;
+let $coll= swe7_swedish_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# tis620
+
+let $cset= tis620;
+let $coll= tis620_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= tis620;
+let $coll= tis620_thai_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+# ujis
+
+let $cset= ujis;
+let $coll= ujis_bin;
+--source suite/funcs_2/include/check_charset.inc
+
+let $cset= ujis;
+let $coll= ujis_japanese_ci;
+--source suite/funcs_2/include/check_charset.inc
+
+}
+
+if ($check_ucs2_csets)
+{
+
+# ucs2
+
+let $cset= ucs2;
+let $coll= ucs2_bin;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_czech_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_danish_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_estonian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_general_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_hungarian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_icelandic_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_latvian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_lithuanian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_persian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_polish_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_roman_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_romanian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_slovak_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_slovenian_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_spanish2_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_spanish_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_swedish_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_turkish_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+let $cset= ucs2;
+let $coll= ucs2_unicode_ci;
+--source suite/funcs_2/include/check_charset_ucs2.inc
+
+}
+
+if ($check_utf8_csets)
+{
+
+# utf8
+
+let $cset= utf8;
+let $coll= utf8_bin;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_czech_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_danish_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_estonian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_general_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_hungarian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_icelandic_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_latvian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_lithuanian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_persian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_polish_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_roman_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_romanian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_slovak_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_slovenian_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_spanish2_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_spanish_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_swedish_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_turkish_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+let $cset= utf8;
+let $coll= utf8_unicode_ci;
+--source suite/funcs_2/include/check_charset_utf8.inc
+
+}
+
diff --git a/mysql-test/suite/funcs_2/data/charset_utf8.txt b/mysql-test/suite/funcs_2/data/charset_utf8.txt
new file mode 100644
index 00000000000..3fd23d10f04
--- /dev/null
+++ b/mysql-test/suite/funcs_2/data/charset_utf8.txt
@@ -0,0 +1,2527 @@
+!
+"
+#
+$
+%
+&
+'
+(
+)
+*
++
+,
+-
+.
+/
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+:
+;
+<
+=
+>
+?
+@
+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
+{
+|
+}
+~
+
+€
+‚
+ƒ
+„
+Â…
+†
+‡
+ˆ
+‰
+Š
+‹
+Œ
+ÂŽ
+‘
+Â’
+“
+”
+•
+–
+—
+˜
+™
+š
+›
+œ
+ž
+Ÿ
+ 
+¡
+¢
+£
+¤
+Â¥
+¦
+§
+¨
+©
+ª
+«
+¬
+­
+®
+¯
+°
+±
+²
+³
+´
+µ
+¶
+·
+¸
+¹
+º
+»
+¼
+½
+¾
+¿
+À
+Â
+Ã
+Ä
+Ã…
+Æ
+Ç
+È
+É
+Ê
+Ë
+Ì
+ÃŽ
+Ñ
+Ã’
+Ó
+Ô
+Õ
+Ö
+×
+Ø
+Ù
+Ú
+Û
+Ü
+Þ
+ß
+à
+á
+â
+ã
+ä
+Ã¥
+æ
+ç
+è
+é
+ê
+ë
+ì
+í
+î
+ï
+ð
+ñ
+ò
+ó
+ô
+õ
+ö
+÷
+ø
+ù
+ú
+û
+ü
+ý
+þ
+ÿ
+Ä€
+Ä‚
+ă
+Ä„
+Ä…
+Ć
+ć
+Ĉ
+ĉ
+ÄŠ
+Ä‹
+Č
+ÄŽ
+Ä‘
+Ä’
+Ä“
+Ä”
+Ä•
+Ä–
+Ä—
+Ę
+Ä™
+Äš
+Ä›
+Ĝ
+Äž
+ÄŸ
+Ä 
+Ä¡
+Ä¢
+Ä£
+Ĥ
+Ä¥
+Ħ
+ħ
+Ĩ
+Ä©
+Ī
+Ä«
+Ĭ
+Ä­
+Ä®
+į
+Ä°
+ı
+IJ
+ij
+Ä´
+ĵ
+Ķ
+Ä·
+ĸ
+Ĺ
+ĺ
+Ä»
+ļ
+Ľ
+ľ
+Ä¿
+Å€
+Å‚
+Ń
+Å„
+Å…
+ņ
+Ň
+ň
+ʼn
+ÅŠ
+Å‹
+Ō
+ÅŽ
+Å‘
+Å’
+Å“
+Å”
+Å•
+Å–
+Å—
+Ř
+Å™
+Åš
+Å›
+Ŝ
+Åž
+ÅŸ
+Å 
+Å¡
+Å¢
+Å£
+Ť
+Å¥
+Ŧ
+ŧ
+Ũ
+Å©
+Ū
+Å«
+Ŭ
+Å­
+Å®
+ů
+Å°
+ű
+Ų
+ų
+Å´
+ŵ
+Ŷ
+Å·
+Ÿ
+Ź
+ź
+Å»
+ż
+Ž
+ž
+Å¿
+Æ€
+Æ‚
+ƃ
+Æ„
+Æ…
+Ɔ
+Ƈ
+ƈ
+Ɖ
+ÆŠ
+Æ‹
+ƌ
+ÆŽ
+Æ‘
+Æ’
+Æ“
+Æ”
+Æ•
+Æ–
+Æ—
+Ƙ
+Æ™
+Æš
+Æ›
+Ɯ
+Æž
+ÆŸ
+Æ 
+Æ¡
+Æ¢
+Æ£
+Ƥ
+Æ¥
+Ʀ
+Ƨ
+ƨ
+Æ©
+ƪ
+Æ«
+Ƭ
+Æ­
+Æ®
+Ư
+Æ°
+Ʊ
+Ʋ
+Ƴ
+Æ´
+Ƶ
+ƶ
+Æ·
+Ƹ
+ƹ
+ƺ
+Æ»
+Ƽ
+ƽ
+ƾ
+Æ¿
+Ç€
+Ç‚
+ǃ
+Ç„
+Ç…
+dž
+LJ
+Lj
+lj
+ÇŠ
+Ç‹
+nj
+ÇŽ
+Ç‘
+Ç’
+Ç“
+Ç”
+Ç•
+Ç–
+Ç—
+ǘ
+Ç™
+Çš
+Ç›
+ǜ
+Çž
+ÇŸ
+Ç 
+Ç¡
+Ç¢
+Ç£
+Ǥ
+Ç¥
+Ǧ
+ǧ
+Ǩ
+Ç©
+Ǫ
+Ç«
+Ǭ
+Ç­
+Ç®
+ǯ
+Ç°
+DZ
+Dz
+dz
+Ç´
+ǵ
+Ƕ
+Ç·
+Ǹ
+ǹ
+Ǻ
+Ç»
+Ǽ
+ǽ
+Ǿ
+Ç¿
+È€
+È‚
+ȃ
+È„
+È…
+Ȇ
+ȇ
+Ȉ
+ȉ
+ÈŠ
+È‹
+Ȍ
+ÈŽ
+È‘
+È’
+È“
+È”
+È•
+È–
+È—
+Ș
+È™
+Èš
+È›
+Ȝ
+Èž
+ÈŸ
+È 
+È¡
+È¢
+È£
+Ȥ
+È¥
+Ȧ
+ȧ
+Ȩ
+È©
+Ȫ
+È«
+Ȭ
+È­
+È®
+ȯ
+È°
+ȱ
+Ȳ
+ȳ
+È´
+ȵ
+ȶ
+È·
+ȸ
+ȹ
+Ⱥ
+È»
+ȼ
+Ƚ
+Ⱦ
+È¿
+É€
+É‚
+Ƀ
+É„
+É…
+Ɇ
+ɇ
+Ɉ
+ɉ
+ÉŠ
+É‹
+Ɍ
+ÉŽ
+É‘
+É’
+É“
+É”
+É•
+É–
+É—
+ɘ
+É™
+Éš
+É›
+ɜ
+Éž
+ÉŸ
+É 
+É¡
+É¢
+É£
+ɤ
+É¥
+ɦ
+ɧ
+ɨ
+É©
+ɪ
+É«
+ɬ
+É­
+É®
+ɯ
+É°
+ɱ
+ɲ
+ɳ
+É´
+ɵ
+ɶ
+É·
+ɸ
+ɹ
+ɺ
+É»
+ɼ
+ɽ
+ɾ
+É¿
+Ê€
+Ê‚
+ʃ
+Ê„
+Ê…
+ʆ
+ʇ
+ʈ
+ʉ
+ÊŠ
+Ê‹
+ʌ
+ÊŽ
+Ê‘
+Ê’
+Ê“
+Ê”
+Ê•
+Ê–
+Ê—
+ʘ
+Ê™
+Êš
+Ê›
+ʜ
+Êž
+ÊŸ
+Ê 
+Ê¡
+Ê¢
+Ê£
+ʤ
+Ê¥
+ʦ
+ʧ
+ʨ
+Ê©
+ʪ
+Ê«
+ʬ
+Ê­
+Ê®
+ʯ
+Ê°
+ʱ
+ʲ
+ʳ
+Ê´
+ʵ
+ʶ
+Ê·
+ʸ
+ʹ
+ʺ
+Ê»
+ʼ
+ʽ
+ʾ
+Ê¿
+Ë€
+Ë‚
+˃
+Ë„
+Ë…
+ˆ
+ˇ
+ˈ
+ˉ
+ËŠ
+Ë‹
+ˌ
+ËŽ
+Ë‘
+Ë’
+Ë“
+Ë”
+Ë•
+Ë–
+Ë—
+˘
+Ë™
+Ëš
+Ë›
+˜
+Ëž
+ËŸ
+Ë 
+Ë¡
+Ë¢
+Ë£
+ˤ
+Ë¥
+˦
+˧
+˨
+Ë©
+˪
+Ë«
+ˬ
+Ë­
+Ë®
+˯
+Ë°
+˱
+˲
+˳
+Ë´
+˵
+˶
+Ë·
+˸
+˹
+˺
+Ë»
+˼
+˽
+˾
+Ë¿
+Ì€
+Ì‚
+̃
+Ì„
+Ì…
+̆
+̇
+̈
+̉
+ÌŠ
+Ì‹
+̌
+ÌŽ
+Ì‘
+Ì’
+Ì“
+Ì”
+Ì•
+Ì–
+Ì—
+̘
+Ì™
+Ìš
+Ì›
+̜
+Ìž
+ÌŸ
+Ì 
+Ì¡
+Ì¢
+Ì£
+̤
+Ì¥
+̦
+̧
+̨
+Ì©
+̪
+Ì«
+̬
+Ì­
+Ì®
+̯
+Ì°
+̱
+̲
+̳
+Ì´
+̵
+̶
+Ì·
+̸
+̹
+̺
+Ì»
+̼
+̽
+̾
+Ì¿
+Í€
+Í‚
+̓
+Í„
+Í…
+͆
+͇
+͈
+͉
+ÍŠ
+Í‹
+͌
+ÍŽ
+Í‘
+Í’
+Í“
+Í”
+Í•
+Í–
+Í—
+͘
+Í™
+Íš
+Í›
+͜
+Íž
+ÍŸ
+Í 
+Í¡
+Í¢
+Í£
+ͤ
+Í¥
+ͦ
+ͧ
+ͨ
+Í©
+ͪ
+Í«
+ͬ
+Í­
+Í®
+ͯ
+Í°
+ͱ
+Ͳ
+ͳ
+Í´
+͵
+Ͷ
+Í·
+͸
+͹
+ͺ
+Í»
+ͼ
+ͽ
+;
+Í¿
+΀
+΂
+΃
+΄
+Î…
+Ά
+·
+Έ
+Ή
+Ί
+΋
+Ό
+ÎŽ
+Α
+Î’
+Γ
+Δ
+Ε
+Ζ
+Η
+Θ
+Ι
+Κ
+Λ
+Μ
+Ξ
+Ο
+Π
+Ρ
+΢
+Σ
+Τ
+Î¥
+Φ
+Χ
+Ψ
+Ω
+Ϊ
+Ϋ
+ά
+έ
+ή
+ί
+ΰ
+α
+β
+γ
+δ
+ε
+ζ
+η
+θ
+ι
+κ
+λ
+μ
+ν
+ξ
+ο
+Ï€
+Ï‚
+σ
+Ï„
+Ï…
+φ
+χ
+ψ
+ω
+ÏŠ
+Ï‹
+ό
+ÏŽ
+Ï‘
+Ï’
+Ï“
+Ï”
+Ï•
+Ï–
+Ï—
+Ϙ
+Ï™
+Ïš
+Ï›
+Ϝ
+Ïž
+ÏŸ
+Ï 
+Ï¡
+Ï¢
+Ï£
+Ϥ
+Ï¥
+Ϧ
+ϧ
+Ϩ
+Ï©
+Ϫ
+Ï«
+Ϭ
+Ï­
+Ï®
+ϯ
+Ï°
+ϱ
+ϲ
+ϳ
+Ï´
+ϵ
+϶
+Ï·
+ϸ
+Ϲ
+Ϻ
+Ï»
+ϼ
+Ͻ
+Ͼ
+Ï¿
+Ѐ
+Ђ
+Ѓ
+Є
+Ð…
+І
+Ї
+Ј
+Љ
+Њ
+Ћ
+Ќ
+ÐŽ
+Б
+Ð’
+Г
+Д
+Е
+Ж
+З
+И
+Й
+К
+Л
+М
+О
+П
+Р
+С
+Т
+У
+Ф
+Ð¥
+Ц
+Ч
+Ш
+Щ
+Ъ
+Ы
+Ь
+Э
+Ю
+Я
+а
+б
+в
+г
+д
+е
+ж
+з
+и
+й
+к
+л
+м
+н
+о
+п
+Ñ€
+Ñ‚
+у
+Ñ„
+Ñ…
+ц
+ч
+ш
+щ
+ÑŠ
+Ñ‹
+ь
+ÑŽ
+Ñ‘
+Ñ’
+Ñ“
+Ñ”
+Ñ•
+Ñ–
+Ñ—
+ј
+Ñ™
+Ñš
+Ñ›
+ќ
+Ñž
+ÑŸ
+Ñ 
+Ñ¡
+Ñ¢
+Ñ£
+Ѥ
+Ñ¥
+Ѧ
+ѧ
+Ѩ
+Ñ©
+Ѫ
+Ñ«
+Ѭ
+Ñ­
+Ñ®
+ѯ
+Ñ°
+ѱ
+Ѳ
+ѳ
+Ñ´
+ѵ
+Ѷ
+Ñ·
+Ѹ
+ѹ
+Ѻ
+Ñ»
+Ѽ
+ѽ
+Ѿ
+Ñ¿
+Ò€
+Ò‚
+Òƒ
+Ò„
+Ò…
+Ò†
+Ò‡
+Òˆ
+Ò‰
+ÒŠ
+Ò‹
+Ҍ
+ÒŽ
+Ò‘
+Ò’
+Ò“
+Ò”
+Ò•
+Ò–
+Ò—
+Ò˜
+Ò™
+Òš
+Ò›
+Ҝ
+Òž
+ÒŸ
+Ò 
+Ò¡
+Ò¢
+Ò£
+Ò¤
+Ò¥
+Ò¦
+Ò§
+Ò¨
+Ò©
+Òª
+Ò«
+Ò¬
+Ò­
+Ò®
+Ò¯
+Ò°
+Ò±
+Ò²
+Ò³
+Ò´
+Òµ
+Ò¶
+Ò·
+Ò¸
+Ò¹
+Òº
+Ò»
+Ò¼
+Ò½
+Ò¾
+Ò¿
+Ó€
+Ó‚
+Óƒ
+Ó„
+Ó…
+Ó†
+Ó‡
+Óˆ
+Ó‰
+ÓŠ
+Ó‹
+ӌ
+ÓŽ
+Ó‘
+Ó’
+Ó“
+Ó”
+Ó•
+Ó–
+Ó—
+Ó˜
+Ó™
+Óš
+Ó›
+Ӝ
+Óž
+ÓŸ
+Ó 
+Ó¡
+Ó¢
+Ó£
+Ó¤
+Ó¥
+Ó¦
+Ó§
+Ó¨
+Ó©
+Óª
+Ó«
+Ó¬
+Ó­
+Ó®
+Ó¯
+Ó°
+Ó±
+Ó²
+Ó³
+Ó´
+Óµ
+Ó¶
+Ó·
+Ó¸
+Ó¹
+Óº
+Ó»
+Ó¼
+Ó½
+Ó¾
+Ó¿
+Ô€
+Ô‚
+Ôƒ
+Ô„
+Ô…
+Ô†
+Ô‡
+Ôˆ
+Ô‰
+ÔŠ
+Ô‹
+Ԍ
+ÔŽ
+Ô‘
+Ô’
+Ô“
+Ô”
+Ô•
+Ô–
+Ô—
+Ô˜
+Ô™
+Ôš
+Ô›
+Ԝ
+Ôž
+ÔŸ
+Ô 
+Ô¡
+Ô¢
+Ô£
+Ô¤
+Ô¥
+Ô¦
+Ô§
+Ô¨
+Ô©
+Ôª
+Ô«
+Ô¬
+Ô­
+Ô®
+Ô¯
+Ô°
+Ô±
+Ô²
+Ô³
+Ô´
+Ôµ
+Ô¶
+Ô·
+Ô¸
+Ô¹
+Ôº
+Ô»
+Ô¼
+Ô½
+Ô¾
+Ô¿
+Õ€
+Õ‚
+Õƒ
+Õ„
+Õ…
+Õ†
+Õ‡
+Õˆ
+Õ‰
+ÕŠ
+Õ‹
+Ռ
+ÕŽ
+Õ‘
+Õ’
+Õ“
+Õ”
+Õ•
+Õ–
+Õ—
+Õ˜
+Õ™
+Õš
+Õ›
+՜
+Õž
+ÕŸ
+Õ 
+Õ¡
+Õ¢
+Õ£
+Õ¤
+Õ¥
+Õ¦
+Õ§
+Õ¨
+Õ©
+Õª
+Õ«
+Õ¬
+Õ­
+Õ®
+Õ¯
+Õ°
+Õ±
+Õ²
+Õ³
+Õ´
+Õµ
+Õ¶
+Õ·
+Õ¸
+Õ¹
+Õº
+Õ»
+Õ¼
+Õ½
+Õ¾
+Õ¿
+Ö€
+Ö‚
+Öƒ
+Ö„
+Ö…
+Ö†
+Ö‡
+Öˆ
+Ö‰
+ÖŠ
+Ö‹
+֌
+ÖŽ
+Ö‘
+Ö’
+Ö“
+Ö”
+Ö•
+Ö–
+Ö—
+Ö˜
+Ö™
+Öš
+Ö›
+֜
+Öž
+ÖŸ
+Ö 
+Ö¡
+Ö¢
+Ö£
+Ö¤
+Ö¥
+Ö¦
+Ö§
+Ö¨
+Ö©
+Öª
+Ö«
+Ö¬
+Ö­
+Ö®
+Ö¯
+Ö°
+Ö±
+Ö²
+Ö³
+Ö´
+Öµ
+Ö¶
+Ö·
+Ö¸
+Ö¹
+Öº
+Ö»
+Ö¼
+Ö½
+Ö¾
+Ö¿
+×€
+ׂ
+׃
+ׄ
+×…
+׆
+ׇ
+׈
+׉
+׊
+׋
+׌
+׎
+ב
+×’
+ד
+×”
+ו
+×–
+×—
+ט
+×™
+ך
+×›
+ל
+מ
+ן
+× 
+ס
+×¢
+×£
+פ
+×¥
+צ
+ק
+ר
+ש
+ת
+׫
+׬
+×­
+×®
+ׯ
+×°
+×±
+ײ
+׳
+×´
+×µ
+׶
+×·
+׸
+×¹
+׺
+×»
+×¼
+×½
+×¾
+׿
+Ø€
+Ø‚
+؃
+Ø„
+Ø…
+؆
+؇
+؈
+؉
+ØŠ
+Ø‹
+،
+ØŽ
+Ø‘
+Ø’
+Ø“
+Ø”
+Ø•
+Ø–
+Ø—
+ؘ
+Ø™
+Øš
+Ø›
+؜
+Øž
+ØŸ
+Ø 
+Ø¡
+Ø¢
+Ø£
+ؤ
+Ø¥
+ئ
+ا
+ب
+Ø©
+ت
+Ø«
+ج
+Ø­
+Ø®
+د
+Ø°
+ر
+ز
+س
+Ø´
+ص
+ض
+Ø·
+ظ
+ع
+غ
+Ø»
+ؼ
+ؽ
+ؾ
+Ø¿
+Ù€
+Ù‚
+Ùƒ
+Ù„
+Ù…
+Ù†
+Ù‡
+Ùˆ
+Ù‰
+ÙŠ
+Ù‹
+ٌ
+ÙŽ
+Ù‘
+Ù’
+Ù“
+Ù”
+Ù•
+Ù–
+Ù—
+Ù˜
+Ù™
+Ùš
+Ù›
+ٜ
+Ùž
+ÙŸ
+Ù 
+Ù¡
+Ù¢
+Ù£
+Ù¤
+Ù¥
+Ù¦
+Ù§
+Ù¨
+Ù©
+Ùª
+Ù«
+Ù¬
+Ù­
+Ù®
+Ù¯
+Ù°
+Ù±
+Ù²
+Ù³
+Ù´
+Ùµ
+Ù¶
+Ù·
+Ù¸
+Ù¹
+Ùº
+Ù»
+Ù¼
+Ù½
+Ù¾
+Ù¿
+Ú€
+Ú‚
+Úƒ
+Ú„
+Ú…
+Ú†
+Ú‡
+Úˆ
+Ú‰
+ÚŠ
+Ú‹
+ڌ
+ÚŽ
+Ú‘
+Ú’
+Ú“
+Ú”
+Ú•
+Ú–
+Ú—
+Ú˜
+Ú™
+Úš
+Ú›
+ڜ
+Úž
+ÚŸ
+Ú 
+Ú¡
+Ú¢
+Ú£
+Ú¤
+Ú¥
+Ú¦
+Ú§
+Ú¨
+Ú©
+Úª
+Ú«
+Ú¬
+Ú­
+Ú®
+Ú¯
+Ú°
+Ú±
+Ú²
+Ú³
+Ú´
+Úµ
+Ú¶
+Ú·
+Ú¸
+Ú¹
+Úº
+Ú»
+Ú¼
+Ú½
+Ú¾
+Ú¿
+Û€
+Û‚
+Ûƒ
+Û„
+Û…
+Û†
+Û‡
+Ûˆ
+Û‰
+ÛŠ
+Û‹
+ی
+ÛŽ
+Û‘
+Û’
+Û“
+Û”
+Û•
+Û–
+Û—
+Û˜
+Û™
+Ûš
+Û›
+ۜ
+Ûž
+ÛŸ
+Û 
+Û¡
+Û¢
+Û£
+Û¤
+Û¥
+Û¦
+Û§
+Û¨
+Û©
+Ûª
+Û«
+Û¬
+Û­
+Û®
+Û¯
+Û°
+Û±
+Û²
+Û³
+Û´
+Ûµ
+Û¶
+Û·
+Û¸
+Û¹
+Ûº
+Û»
+Û¼
+Û½
+Û¾
+Û¿
+Ü€
+Ü‚
+܃
+Ü„
+Ü…
+܆
+܇
+܈
+܉
+ÜŠ
+Ü‹
+܌
+ÜŽ
+Ü‘
+Ü’
+Ü“
+Ü”
+Ü•
+Ü–
+Ü—
+ܘ
+Ü™
+Üš
+Ü›
+ܜ
+Üž
+ÜŸ
+Ü 
+Ü¡
+Ü¢
+Ü£
+ܤ
+Ü¥
+ܦ
+ܧ
+ܨ
+Ü©
+ܪ
+Ü«
+ܬ
+Ü­
+Ü®
+ܯ
+Ü°
+ܱ
+ܲ
+ܳ
+Ü´
+ܵ
+ܶ
+Ü·
+ܸ
+ܹ
+ܺ
+Ü»
+ܼ
+ܽ
+ܾ
+Ü¿
+Ý€
+Ý‚
+݃
+Ý„
+Ý…
+݆
+݇
+݈
+݉
+ÝŠ
+Ý‹
+݌
+ÝŽ
+Ý‘
+Ý’
+Ý“
+Ý”
+Ý•
+Ý–
+Ý—
+ݘ
+Ý™
+Ýš
+Ý›
+ݜ
+Ýž
+ÝŸ
+Ý 
+Ý¡
+Ý¢
+Ý£
+ݤ
+Ý¥
+ݦ
+ݧ
+ݨ
+Ý©
+ݪ
+Ý«
+ݬ
+Ý­
+Ý®
+ݯ
+Ý°
+ݱ
+ݲ
+ݳ
+Ý´
+ݵ
+ݶ
+Ý·
+ݸ
+ݹ
+ݺ
+Ý»
+ݼ
+ݽ
+ݾ
+Ý¿
+Þ€
+Þ‚
+Þƒ
+Þ„
+Þ…
+Þ†
+Þ‡
+Þˆ
+Þ‰
+ÞŠ
+Þ‹
+ތ
+ÞŽ
+Þ‘
+Þ’
+Þ“
+Þ”
+Þ•
+Þ–
+Þ—
+Þ˜
+Þ™
+Þš
+Þ›
+ޜ
+Þž
+ÞŸ
+Þ 
+Þ¡
+Þ¢
+Þ£
+Þ¤
+Þ¥
+Þ¦
+Þ§
+Þ¨
+Þ©
+Þª
+Þ«
+Þ¬
+Þ­
+Þ®
+Þ¯
+Þ°
+Þ±
+Þ²
+Þ³
+Þ´
+Þµ
+Þ¶
+Þ·
+Þ¸
+Þ¹
+Þº
+Þ»
+Þ¼
+Þ½
+Þ¾
+Þ¿
+߀
+ß‚
+߃
+ß„
+ß…
+߆
+߇
+߈
+߉
+ߊ
+ß‹
+ߌ
+ߎ
+ß‘
+ß’
+ß“
+ß”
+ß•
+ß–
+ß—
+ߘ
+ß™
+ßš
+ß›
+ߜ
+ßž
+ߟ
+ß 
+ß¡
+ߢ
+ߣ
+ߤ
+ߥ
+ߦ
+ߧ
+ߨ
+ß©
+ߪ
+ß«
+߬
+ß­
+ß®
+߯
+ß°
+ß±
+ß²
+ß³
+ß´
+ßµ
+߶
+ß·
+߸
+ß¹
+ߺ
+ß»
+ß¼
+ß½
+ß¾
+ß¿
+一
+ä¸
+丂
+七
+丄
+丅
+丆
+万
+丈
+三
+上
+下
+丌
+ä¸
+与
+ä¸
+ä¸
+丑
+丒
+专
+且
+丕
+世
+丗
+丘
+丙
+业
+丛
+东
+ä¸
+丞
+丟
+丠
+両
+丢
+丣
+两
+严
+並
+丧
+丨
+丩
+个
+丫
+丬
+中
+丮
+丯
+丰
+丱
+串
+丳
+临
+丵
+丶
+丷
+丸
+丹
+为
+主
+丼
+丽
+举
+丿
+ä¹€
+ä¹
+乂
+乃
+乄
+ä¹…
+乆
+乇
+么
+义
+乊
+之
+乌
+ä¹
+乎
+ä¹
+ä¹
+乑
+ä¹’
+乓
+ä¹”
+乕
+ä¹–
+ä¹—
+乘
+ä¹™
+乚
+ä¹›
+乜
+ä¹
+乞
+也
+ä¹ 
+乡
+ä¹¢
+ä¹£
+乤
+ä¹¥
+书
+乧
+乨
+乩
+乪
+乫
+乬
+ä¹­
+ä¹®
+乯
+ä¹°
+ä¹±
+ä¹²
+ä¹³
+ä¹´
+ä¹µ
+乶
+ä¹·
+乸
+ä¹¹
+乺
+ä¹»
+ä¹¼
+ä¹½
+ä¹¾
+乿
+亀
+äº
+亂
+亃
+亄
+亅
+了
+亇
+予
+争
+亊
+事
+二
+äº
+于
+äº
+äº
+云
+互
+亓
+五
+井
+亖
+亗
+亘
+亙
+亚
+些
+亜
+äº
+亞
+亟
+亠
+亡
+亢
+亣
+交
+亥
+亦
+产
+亨
+亩
+亪
+享
+京
+亭
+亮
+亯
+亰
+亱
+亲
+亳
+亴
+亵
+亶
+亷
+亸
+亹
+人
+亻
+亼
+亽
+亾
+亿
+什
+ä»
+仂
+仃
+仄
+ä»…
+仆
+仇
+仈
+仉
+今
+介
+仌
+ä»
+从
+ä»
+ä»
+仑
+ä»’
+仓
+ä»”
+仕
+ä»–
+ä»—
+付
+ä»™
+仚
+ä»›
+仜
+ä»
+仞
+仟
+ä» 
+仡
+仢
+代
+令
+以
+仦
+仧
+仨
+仩
+仪
+仫
+们
+ä»­
+ä»®
+仯
+ä»°
+ä»±
+仲
+仳
+ä»´
+仵
+件
+ä»·
+仸
+仹
+仺
+ä»»
+仼
+份
+仾
+仿
+ä¼€
+ä¼
+伂
+伃
+伄
+ä¼…
+伆
+伇
+伈
+伉
+伊
+伋
+伌
+ä¼
+伎
+ä¼
+ä¼
+休
+ä¼’
+伓
+ä¼”
+伕
+ä¼–
+ä¼—
+优
+ä¼™
+会
+ä¼›
+伜
+ä¼
+伞
+伟
+ä¼ 
+伡
+ä¼¢
+ä¼£
+伤
+ä¼¥
+伦
+伧
+伨
+伩
+伪
+伫
+伬
+ä¼­
+ä¼®
+伯
+ä¼°
+ä¼±
+ä¼²
+ä¼³
+ä¼´
+ä¼µ
+伶
+ä¼·
+伸
+ä¼¹
+伺
+ä¼»
+ä¼¼
+ä¼½
+ä¼¾
+伿
+ä½€
+ä½
+佂
+佃
+佄
+ä½…
+但
+佇
+佈
+佉
+佊
+佋
+佌
+ä½
+低
+ä½
+ä½
+佑
+ä½’
+体
+ä½”
+何
+ä½–
+ä½—
+佘
+ä½™
+佚
+ä½›
+作
+ä½
+佞
+佟
+ä½ 
+佡
+ä½¢
+ä½£
+佤
+ä½¥
+佦
+佧
+佨
+佩
+佪
+佫
+佬
+ä½­
+ä½®
+佯
+ä½°
+ä½±
+ä½²
+ä½³
+ä½´
+ä½µ
+佶
+ä½·
+佸
+ä½¹
+佺
+ä½»
+ä½¼
+ä½½
+ä½¾
+使
+ä¾€
+ä¾
+侂
+侃
+侄
+ä¾…
+來
+侇
+侈
+侉
+侊
+例
+侌
+ä¾
+侎
+ä¾
+ä¾
+侑
+ä¾’
+侓
+ä¾”
+侕
+ä¾–
+ä¾—
+侘
+ä¾™
+侚
+ä¾›
+侜
+ä¾
+侞
+侟
+ä¾ 
+価
+ä¾¢
+ä¾£
+侤
+ä¾¥
+侦
+侧
+侨
+侩
+侪
+侫
+侬
+ä¾­
+ä¾®
+侯
+ä¾°
+ä¾±
+ä¾²
+ä¾³
+ä¾´
+ä¾µ
+侶
+ä¾·
+侸
+ä¾¹
+侺
+ä¾»
+ä¾¼
+ä¾½
+ä¾¾
+便
+ä¿€
+ä¿
+ä¿‚
+促
+ä¿„
+ä¿…
+俆
+俇
+俈
+俉
+ä¿Š
+ä¿‹
+俌
+ä¿
+ä¿Ž
+ä¿
+ä¿
+ä¿‘
+ä¿’
+ä¿“
+ä¿”
+ä¿•
+ä¿–
+ä¿—
+俘
+ä¿™
+ä¿š
+ä¿›
+俜
+ä¿
+ä¿ž
+ä¿Ÿ
+ä¿ 
+ä¿¡
+ä¿¢
+ä¿£
+俤
+ä¿¥
+俦
+俧
+俨
+ä¿©
+俪
+ä¿«
+俬
+ä¿­
+ä¿®
+俯
+ä¿°
+俱
+俲
+俳
+ä¿´
+俵
+俶
+ä¿·
+俸
+俹
+俺
+ä¿»
+俼
+俽
+俾
+ä¿¿
diff --git a/mysql-test/suite/funcs_2/include/check_charset.inc b/mysql-test/suite/funcs_2/include/check_charset.inc
new file mode 100644
index 00000000000..df4a58d0eeb
--- /dev/null
+++ b/mysql-test/suite/funcs_2/include/check_charset.inc
@@ -0,0 +1,40 @@
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+--enable_warnings
+
+eval SET NAMES $cset;
+
+let $std_cset= 1;
+
+if ($bin_cset)
+{
+ eval CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET $cset) ENGINE=$engine_type CHARACTER SET $cset;
+ let $bin_cset= 0;
+ let $std_cset= 0;
+}
+if ($std_cset)
+{
+ eval CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET $cset COLLATE $coll) ENGINE=$engine_type CHARACTER SET $cset COLLATE $coll;
+}
+
+--replace_column 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 # 14 # 16 # 17 # 18 #
+SHOW TABLE STATUS LIKE 't1';
+
+--disable_warnings
+--disable_query_log
+let $1= 221;
+while ($1)
+{
+ eval INSERT INTO test.t1 VALUES(CHAR(254-$1));
+ dec $1;
+}
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+--enable_query_log
+--enable_warnings
+
+SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+--enable_warnings
+
diff --git a/mysql-test/suite/funcs_2/include/check_charset_ucs2.inc b/mysql-test/suite/funcs_2/include/check_charset_ucs2.inc
new file mode 100644
index 00000000000..4a3c21e17e4
--- /dev/null
+++ b/mysql-test/suite/funcs_2/include/check_charset_ucs2.inc
@@ -0,0 +1,22 @@
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+eval CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+--enable_warnings
+SET NAMES utf8;
+eval CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=$engine_type CHARACTER SET utf8;
+--replace_column 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 # 14 # 16 # 17 # 18 #
+SHOW TABLE STATUS LIKE 't1';
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval LOAD DATA INFILE
+'$MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
+eval ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET $cset COLLATE $coll;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+--enable_warnings
diff --git a/mysql-test/suite/funcs_2/include/check_charset_utf8.inc b/mysql-test/suite/funcs_2/include/check_charset_utf8.inc
new file mode 100644
index 00000000000..42cf38eeec1
--- /dev/null
+++ b/mysql-test/suite/funcs_2/include/check_charset_utf8.inc
@@ -0,0 +1,21 @@
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+eval CREATE DATABASE test CHARACTER SET $cset;
+USE test;
+--enable_warnings
+#eval SET NAMES $cset;
+eval CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET $cset COLLATE $coll) ENGINE=$engine_type CHARACTER SET $cset COLLATE $coll;
+--replace_column 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 # 14 # 16 # 17 # 18 #
+SHOW TABLE STATUS LIKE 't1';
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval 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;
+
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+--enable_warnings
diff --git a/mysql-test/suite/funcs_2/lib/gen_charset_utf8.pl b/mysql-test/suite/funcs_2/lib/gen_charset_utf8.pl
new file mode 100755
index 00000000000..3b85ed02f5b
--- /dev/null
+++ b/mysql-test/suite/funcs_2/lib/gen_charset_utf8.pl
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+
+#################################################################################
+# Author: Serge Kozlov #
+# Date: 09/21/2005 #
+# Purpose: The script produces a text file ../data/charset_utf8.txt #
+# in UTF8 format. Each line contains one UTF8 character #
+# between 20 and 07FF #
+#################################################################################
+
+genfile("../data/charset_utf8.txt", 33, 2047, "utf8");
+genfile(">../data/charset_utf8.txt", 19968, 20479,"utf8");
+
+
+#genfile("../data/charset_utf8.txt", 33, 2047, "utf8");
+
+sub genfile ($$$$)
+{
+ my $fn = shift;
+ my $i_from = shift;
+ my $i_to = shift;
+ my $typ = shift;
+ open F, ">$fn";
+ for ($i = $i_from; $i <= $i_to; $i++)
+ {
+ if (($i > 32) && ($i < 65533) && ($i != 65279))
+ {
+ if ($typ eq "utf8")
+ {
+ if ($i < 128)
+ {
+ print F pack("C", $i), "\n";
+ }
+ elsif (($i > 127) && ($i < 2048))
+ {
+ $b1 = (($i & 1984) >> 6) + 192;
+ $b2 = ($i & 63) + 128;
+ print F pack("C", $b1);
+ print F pack("C", $b2), "\n";
+ }
+ else
+ {
+ $b1 = (($i & 61440) >> 12) + 224;
+ $b2 = (($i & 4032) >> 6) + 128;
+ $b3 = ($i & 63) + 128;
+ print F pack("C", $b1);
+ print F pack("C", $b2);
+ print F pack("C", $b3), "\n";
+ }
+ }
+ elsif ($typ eq "ucs2")
+ {
+ print F pack("C", 0);
+ print F pack("C", $i);
+ print F pack("C", 0), "\n";
+ }
+ }
+ }
+ close F;
+}
diff --git a/mysql-test/suite/funcs_2/r/innodb_charset.result b/mysql-test/suite/funcs_2/r/innodb_charset.result
new file mode 100644
index 00000000000..09076145c44
--- /dev/null
+++ b/mysql-test/suite/funcs_2/r/innodb_charset.result
@@ -0,0 +1,119156 @@
+DROP TABLE IF EXISTS test.t1;
+SET NAMES armscii8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES armscii8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ascii;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ascii;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES big5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES big5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_chinese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES binary;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET binary) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_croatian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+DF 1
+8A 1
+9A 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8F 1
+9F 1
+AF 1
+BF 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_czech_cs) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+80 1
+81 1
+83 1
+88 1
+90 1
+98 1
+B6 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+A5 1
+B9 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+E9 1
+CC 1
+EC 1
+CB 1
+EB 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+C5 1
+E5 1
+BC 1
+BE 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+D6 1
+F6 1
+D5 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+E0 1
+D8 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+8A 1
+9A 1
+DF 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+DA 1
+FA 1
+D9 1
+F9 1
+DC 1
+FC 1
+DB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AF 1
+BF 1
+8F 1
+9F 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+82 1
+84 1
+85 1
+86 1
+87 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A7 1
+AA 1
+BA 1
+DF 1
+8A 1
+8C 1
+9A 1
+9C 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8E 1
+8F 1
+9E 1
+9F 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_cs) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+C5 1
+E5 1
+AA 1
+BA 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1256;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1256;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+E0 1
+E2 1
+42 1
+62 1
+43 1
+63 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+83 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+F4 1
+8C 1
+9C 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+F9 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+81 1
+CB 1
+CC 1
+8D 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+8E 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+CA 1
+D9 1
+DA 1
+DB 1
+DD 1
+DE 1
+DF 1
+90 1
+E1 1
+E3 1
+E4 1
+E5 1
+E6 1
+EC 1
+ED 1
+DC 1
+F0 1
+F1 1
+F2 1
+F3 1
+F5 1
+F6 1
+F8 1
+FA 1
+A1 1
+BA 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8F 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+C0 1
+D7 1
+F7 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+AF 1
+BF 1
+C0 1
+C2 1
+C4 1
+C5 1
+E0 1
+E2 1
+E4 1
+E5 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+C8 1
+E3 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+C7 1
+C9 1
+CB 1
+E6 1
+E7 1
+E9 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+C1 1
+CE 1
+E1 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+D9 1
+EF 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+A8 1
+B8 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+D0 1
+DA 1
+DF 1
+F0 1
+FA 1
+54 1
+74 1
+55 1
+75 1
+D8 1
+DB 1
+DC 1
+F8 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+DD 1
+DE 1
+EA 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_lithuanian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+42 1
+62 1
+43 1
+63 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+E6 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+59 1
+79 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+D0 1
+F0 1
+54 1
+74 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+5A 1
+7A 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C2 1
+C3 1
+C4 1
+C5 1
+C7 1
+C9 1
+CA 1
+CC 1
+CD 1
+CE 1
+CF 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D9 1
+DA 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E2 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+EA 1
+EC 1
+ED 1
+EE 1
+EF 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F9 1
+FA 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp850;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp850;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+85 1
+B7 1
+A0 1
+B5 1
+83 1
+B6 1
+C6 1
+C7 1
+84 1
+8E 1
+86 1
+8F 1
+91 1
+92 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+D0 1
+D1 1
+45 1
+65 1
+8A 1
+D4 1
+82 1
+90 1
+88 1
+D2 1
+89 1
+D3 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8D 1
+DE 1
+A1 1
+D6 1
+8C 1
+D7 1
+8B 1
+D8 1
+D5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+95 1
+E3 1
+A2 1
+E0 1
+93 1
+E2 1
+E4 1
+E5 1
+94 1
+99 1
+9B 1
+9D 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+E1 1
+54 1
+74 1
+55 1
+75 1
+97 1
+EB 1
+A3 1
+E9 1
+96 1
+EA 1
+81 1
+9A 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+98 1
+5A 1
+7A 1
+E7 1
+E8 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+F7 1
+9E 1
+9F 1
+F6 1
+F2 1
+C4 1
+B3 1
+DA 1
+BF 1
+C0 1
+D9 1
+C3 1
+B4 1
+C2 1
+C1 1
+C5 1
+CD 1
+AD 1
+BA 1
+C9 1
+BB 1
+C8 1
+BC 1
+CC 1
+B9 1
+CB 1
+CA 1
+CE 1
+DF 1
+DC 1
+DB 1
+B0 1
+B1 1
+B2 1
+BD 1
+9C 1
+CF 1
+BE 1
+DD 1
+F5 1
+F9 1
+B8 1
+A6 1
+AE 1
+AA 1
+F0 1
+A9 1
+EE 1
+F8 1
+F1 1
+FD 1
+FC 1
+EF 1
+E6 1
+F4 1
+FA 1
+FB 1
+A7 1
+AF 1
+AC 1
+AB 1
+F3 1
+A8 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp852;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp852;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+83 1
+84 1
+8E 1
+A0 1
+A4 1
+A5 1
+B5 1
+B6 1
+C6 1
+C7 1
+42 1
+62 1
+43 1
+63 1
+80 1
+86 1
+87 1
+8F 1
+9F 1
+AC 1
+44 1
+64 1
+D0 1
+D1 1
+D2 1
+D4 1
+45 1
+65 1
+82 1
+89 1
+90 1
+A8 1
+A9 1
+B7 1
+D3 1
+D8 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+A1 1
+D6 1
+D7 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+88 1
+91 1
+92 1
+95 1
+96 1
+9D 1
+4D 1
+6D 1
+4E 1
+6E 1
+D5 1
+E3 1
+E4 1
+E5 1
+4F 1
+6F 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A2 1
+E0 1
+E2 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+E8 1
+EA 1
+FC 1
+FD 1
+53 1
+73 1
+97 1
+98 1
+AD 1
+B8 1
+E6 1
+E7 1
+E1 1
+54 1
+74 1
+9B 1
+9C 1
+DD 1
+EE 1
+55 1
+75 1
+81 1
+85 1
+9A 1
+A3 1
+DE 1
+E9 1
+EB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+5A 1
+7A 1
+8D 1
+A6 1
+A7 1
+AB 1
+BD 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+9E 1
+AA 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B9 1
+BA 1
+BB 1
+BC 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D9 1
+DA 1
+DB 1
+DC 1
+DF 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp866;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp866;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+80 1
+A0 1
+81 1
+A1 1
+82 1
+A2 1
+83 1
+A3 1
+84 1
+A4 1
+85 1
+A5 1
+F0 1
+F1 1
+F2 1
+F3 1
+86 1
+A6 1
+87 1
+A7 1
+88 1
+A8 1
+F4 1
+F5 1
+89 1
+A9 1
+8A 1
+AA 1
+8B 1
+AB 1
+8C 1
+AC 1
+8D 1
+AD 1
+8E 1
+AE 1
+8F 1
+AF 1
+90 1
+E0 1
+91 1
+E1 1
+92 1
+E2 1
+93 1
+E3 1
+F6 1
+F7 1
+94 1
+E4 1
+95 1
+E5 1
+96 1
+E6 1
+97 1
+E7 1
+98 1
+E8 1
+99 1
+E9 1
+9A 1
+EA 1
+9B 1
+EB 1
+9C 1
+EC 1
+9D 1
+ED 1
+9E 1
+EE 1
+9F 1
+EF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+B0 1
+B1 1
+B2 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp932;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp932;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_japanese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES dec8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES dec8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_swedish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES eucjpms;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES eucjpms;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES euckr;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES euckr;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_korean_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gb2312;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gb2312;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gbk;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gbk;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_chinese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES geostd8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES geostd8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES greek;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES greek;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B7 1
+BB 1
+BD 1
+B6 1
+C1 1
+DC 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+B8 1
+C5 1
+DD 1
+E5 1
+C6 1
+E6 1
+B9 1
+C7 1
+DE 1
+E7 1
+C8 1
+E8 1
+BA 1
+C0 1
+C9 1
+DA 1
+DF 1
+E9 1
+FA 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+BC 1
+CF 1
+EF 1
+FC 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+D3 1
+F2 1
+F3 1
+D4 1
+F4 1
+BE 1
+D5 1
+DB 1
+E0 1
+F5 1
+FB 1
+FD 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+BF 1
+D9 1
+F9 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hebrew;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hebrew;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+D7 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hp8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hp8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_english_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES keybcs2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES keybcs2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+84 1
+8E 1
+8F 1
+A0 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+83 1
+85 1
+45 1
+65 1
+82 1
+88 1
+89 1
+90 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8B 1
+A1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+8A 1
+8C 1
+8D 1
+9C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+93 1
+94 1
+95 1
+99 1
+A2 1
+A7 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+9E 1
+A9 1
+AA 1
+AB 1
+53 1
+73 1
+9B 1
+A8 1
+E1 1
+54 1
+74 1
+86 1
+9F 1
+55 1
+75 1
+81 1
+96 1
+97 1
+9A 1
+A3 1
+A6 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+98 1
+9D 1
+5A 1
+7A 1
+91 1
+92 1
+E0 1
+EB 1
+EE 1
+E2 1
+EA 1
+E8 1
+ED 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E6 1
+EC 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8r;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8r;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+C4 1
+E4 1
+C5 1
+E5 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8u;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8u;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+AD 1
+BD 1
+C4 1
+E4 1
+C5 1
+E5 1
+A4 1
+B4 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+A6 1
+B6 1
+A7 1
+B7 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A5 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B5 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_danish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C4 1
+C6 1
+E4 1
+E6 1
+5C 1
+D6 1
+D8 1
+F6 1
+F8 1
+5D 1
+C5 1
+E5 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_cs) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german1_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D0 1
+F0 1
+D7 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german2_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+C6 1
+E6 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_spanish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_swedish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_croatian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+A5 1
+B3 1
+B5 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A6 1
+AA 1
+B6 1
+BA 1
+DF 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+AF 1
+BC 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_czech_cs) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+2C 1
+3B 1
+3F 1
+21 1
+3A 1
+22 1
+60 1
+27 1
+2F 1
+7C 1
+5C 1
+28 1
+29 1
+5B 1
+5D 1
+3C 1
+3E 1
+7B 1
+7D 1
+40 1
+26 1
+25 1
+23 1
+5E 1
+5F 1
+7E 1
+3D 1
+2B 1
+2A 1
+2D 1
+D7 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+24 1
+7F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+DF 1
+F7 1
+61 1
+41 1
+E1 1
+C1 1
+E2 1
+C2 1
+E4 1
+C4 1
+E3 1
+C3 1
+B1 1
+A1 1
+62 1
+42 1
+63 1
+43 1
+E8 1
+C8 1
+E6 1
+C6 1
+E7 1
+C7 1
+64 1
+44 1
+EF 1
+CF 1
+F0 1
+D0 1
+65 1
+45 1
+E9 1
+C9 1
+EC 1
+CC 1
+EB 1
+CB 1
+EA 1
+CA 1
+66 1
+46 1
+67 1
+47 1
+68 1
+48 1
+69 1
+49 1
+ED 1
+CD 1
+EE 1
+CE 1
+6A 1
+4A 1
+6B 1
+4B 1
+6C 1
+4C 1
+E5 1
+C5 1
+B5 1
+A5 1
+B3 1
+A3 1
+6D 1
+4D 1
+6E 1
+4E 1
+F2 1
+D2 1
+F1 1
+D1 1
+6F 1
+4F 1
+F3 1
+D3 1
+F4 1
+D4 1
+F6 1
+D6 1
+F5 1
+D5 1
+70 1
+50 1
+71 1
+51 1
+72 1
+52 1
+E0 1
+C0 1
+F8 1
+D8 1
+73 1
+53 1
+B9 1
+A9 1
+B6 1
+A6 1
+BA 1
+AA 1
+74 1
+54 1
+BB 1
+AB 1
+DE 1
+75 1
+55 1
+FA 1
+DA 1
+F9 1
+D9 1
+FC 1
+DC 1
+FB 1
+DB 1
+76 1
+56 1
+77 1
+57 1
+78 1
+58 1
+79 1
+59 1
+FD 1
+DD 1
+7A 1
+5A 1
+BE 1
+AE 1
+BC 1
+AC 1
+BF 1
+AF 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C6 1
+E6 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+C9 1
+CB 1
+CC 1
+E9 1
+EB 1
+EC 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A5 1
+B5 1
+C5 1
+E5 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D2 1
+F2 1
+D1 1
+F1 1
+4F 1
+6F 1
+D4 1
+D5 1
+D6 1
+F4 1
+F5 1
+F6 1
+D3 1
+F3 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+AA 1
+BA 1
+A6 1
+B6 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AF 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_hungarian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+80 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8E 1
+91 1
+92 1
+9B 1
+9C 1
+9D 1
+9E 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+8F 1
+A0 1
+B5 1
+C1 1
+E1 1
+B1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C8 1
+E8 1
+C7 1
+E7 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+82 1
+90 1
+C9 1
+E9 1
+CC 1
+EC 1
+CA 1
+EA 1
+CB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+8D 1
+A1 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+B3 1
+A4 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+95 1
+A2 1
+D3 1
+E0 1
+F3 1
+D4 1
+F4 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A7 1
+D5 1
+D6 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+F8 1
+53 1
+73 1
+A5 1
+B6 1
+A9 1
+B9 1
+AA 1
+BA 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+97 1
+A3 1
+DA 1
+FA 1
+D9 1
+F9 1
+81 1
+96 1
+98 1
+9A 1
+DB 1
+DC 1
+EB 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AE 1
+BE 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+9F 1
+A6 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_turkish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+D0 1
+F0 1
+48 1
+68 1
+49 1
+FD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+DD 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F8 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+DE 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_estonian_cs) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+7F 1
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+EF 1
+D9 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+A8 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+58 1
+78 1
+59 1
+79 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+A8 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+74 1
+54 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_cs) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+A8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macce;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macce;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+82 1
+84 1
+87 1
+88 1
+8A 1
+E7 1
+42 1
+62 1
+43 1
+63 1
+89 1
+8B 1
+8C 1
+8D 1
+44 1
+64 1
+91 1
+93 1
+45 1
+65 1
+83 1
+8E 1
+94 1
+95 1
+96 1
+98 1
+9D 1
+9E 1
+A2 1
+AB 1
+46 1
+66 1
+47 1
+67 1
+AE 1
+48 1
+68 1
+49 1
+69 1
+92 1
+AF 1
+B0 1
+B1 1
+B4 1
+EA 1
+4A 1
+6A 1
+4B 1
+6B 1
+B5 1
+FA 1
+4C 1
+6C 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+FC 1
+4D 1
+4E 1
+6D 1
+6E 1
+BF 1
+C0 1
+C1 1
+C4 1
+C5 1
+CB 1
+4F 1
+6F 1
+85 1
+97 1
+99 1
+9A 1
+9B 1
+CC 1
+CD 1
+CE 1
+CF 1
+D8 1
+EE 1
+EF 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+D9 1
+DA 1
+DB 1
+DE 1
+DF 1
+E0 1
+53 1
+73 1
+A7 1
+E1 1
+E4 1
+E5 1
+E6 1
+54 1
+74 1
+E8 1
+E9 1
+55 1
+75 1
+86 1
+9C 1
+9F 1
+ED 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+F8 1
+F9 1
+5A 1
+7A 1
+8F 1
+90 1
+EB 1
+EC 1
+FB 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AC 1
+AD 1
+B2 1
+B3 1
+B6 1
+B7 1
+C2 1
+C3 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DC 1
+DD 1
+E2 1
+E3 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macroman;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macroman;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+CB 1
+CC 1
+E5 1
+E7 1
+AE 1
+BE 1
+42 1
+62 1
+43 1
+63 1
+82 1
+8D 1
+44 1
+64 1
+45 1
+65 1
+83 1
+8E 1
+8F 1
+90 1
+91 1
+E6 1
+E8 1
+E9 1
+46 1
+66 1
+C4 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+92 1
+93 1
+94 1
+95 1
+EA 1
+EB 1
+EC 1
+ED 1
+F5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+84 1
+96 1
+4F 1
+6F 1
+85 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+AF 1
+BF 1
+CD 1
+EE 1
+EF 1
+F1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+A7 1
+54 1
+74 1
+55 1
+75 1
+86 1
+9C 1
+9D 1
+9E 1
+9F 1
+F2 1
+F3 1
+F4 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+D8 1
+D9 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+F0 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES sjis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES sjis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_japanese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES swe7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES swe7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_swedish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+40 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+5E 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+7D 1
+5B 1
+7B 1
+5C 1
+7C 1
+5F 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES tis620;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES tis620;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_thai_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+EC 1
+F9 1
+E7 1
+FA 1
+E8 1
+FB 1
+E9 1
+FC 1
+EA 1
+FD 1
+EB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ujis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ujis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_japanese_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+FE 1
+FF 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+10E 1
+10F 1
+110 1
+111 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+124 1
+125 1
+126 1
+127 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+132 1
+133 1
+134 1
+135 1
+136 1
+137 1
+138 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+13F 1
+140 1
+141 1
+142 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+149 1
+14A 1
+14B 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+152 1
+153 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+162 1
+163 1
+164 1
+165 1
+166 1
+167 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+174 1
+175 1
+176 1
+177 1
+178 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+17F 1
+180 1
+181 1
+182 1
+183 1
+184 1
+185 1
+186 1
+187 1
+188 1
+189 1
+18A 1
+18B 1
+18C 1
+18D 1
+18E 1
+18F 1
+190 1
+191 1
+192 1
+193 1
+194 1
+195 1
+196 1
+197 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+19D 1
+19E 1
+19F 1
+1A0 1
+1A1 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+1A7 1
+1A8 1
+1A9 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+1AF 1
+1B0 1
+1B1 1
+1B2 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1BF 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1CD 1
+1CE 1
+1CF 1
+1D0 1
+1D1 1
+1D2 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+1DD 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1E2 1
+1E3 1
+1E4 1
+1E5 1
+1E6 1
+1E7 1
+1E8 1
+1E9 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+1EE 1
+1EF 1
+1F0 1
+1F1 1
+1F2 1
+1F3 1
+1F4 1
+1F5 1
+1F6 1
+1F7 1
+1F8 1
+1F9 1
+1FA 1
+1FB 1
+1FC 1
+1FD 1
+1FE 1
+1FF 1
+200 1
+201 1
+202 1
+203 1
+204 1
+205 1
+206 1
+207 1
+208 1
+209 1
+20A 1
+20B 1
+20C 1
+20D 1
+20E 1
+20F 1
+210 1
+211 1
+212 1
+213 1
+214 1
+215 1
+216 1
+217 1
+218 1
+219 1
+21A 1
+21B 1
+21C 1
+21D 1
+21E 1
+21F 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+226 1
+227 1
+228 1
+229 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+232 1
+233 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+253 1
+254 1
+255 1
+256 1
+257 1
+258 1
+259 1
+25A 1
+25B 1
+25C 1
+25D 1
+25E 1
+25F 1
+260 1
+261 1
+262 1
+263 1
+264 1
+265 1
+266 1
+267 1
+268 1
+269 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+26F 1
+270 1
+271 1
+272 1
+273 1
+274 1
+275 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+280 1
+281 1
+282 1
+283 1
+284 1
+285 1
+286 1
+287 1
+288 1
+289 1
+28A 1
+28B 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+292 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+386 1
+387 1
+388 1
+389 1
+38A 1
+38B 1
+38C 1
+38D 1
+38E 1
+38F 1
+390 1
+391 1
+392 1
+393 1
+394 1
+395 1
+396 1
+397 1
+398 1
+399 1
+39A 1
+39B 1
+39C 1
+39D 1
+39E 1
+39F 1
+3A0 1
+3A1 1
+3A2 1
+3A3 1
+3A4 1
+3A5 1
+3A6 1
+3A7 1
+3A8 1
+3A9 1
+3AA 1
+3AB 1
+3AC 1
+3AD 1
+3AE 1
+3AF 1
+3B0 1
+3B1 1
+3B2 1
+3B3 1
+3B4 1
+3B5 1
+3B6 1
+3B7 1
+3B8 1
+3B9 1
+3BA 1
+3BB 1
+3BC 1
+3BD 1
+3BE 1
+3BF 1
+3C0 1
+3C1 1
+3C2 1
+3C3 1
+3C4 1
+3C5 1
+3C6 1
+3C7 1
+3C8 1
+3C9 1
+3CA 1
+3CB 1
+3CC 1
+3CD 1
+3CE 1
+3CF 1
+3D0 1
+3D1 1
+3D2 1
+3D3 1
+3D4 1
+3D5 1
+3D6 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F0 1
+3F1 1
+3F2 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+400 1
+401 1
+402 1
+403 1
+404 1
+405 1
+406 1
+407 1
+408 1
+409 1
+40A 1
+40B 1
+40C 1
+40D 1
+40E 1
+40F 1
+410 1
+411 1
+412 1
+413 1
+414 1
+415 1
+416 1
+417 1
+418 1
+419 1
+41A 1
+41B 1
+41C 1
+41D 1
+41E 1
+41F 1
+420 1
+421 1
+422 1
+423 1
+424 1
+425 1
+426 1
+427 1
+428 1
+429 1
+42A 1
+42B 1
+42C 1
+42D 1
+42E 1
+42F 1
+430 1
+431 1
+432 1
+433 1
+434 1
+435 1
+436 1
+437 1
+438 1
+439 1
+43A 1
+43B 1
+43C 1
+43D 1
+43E 1
+43F 1
+440 1
+441 1
+442 1
+443 1
+444 1
+445 1
+446 1
+447 1
+448 1
+449 1
+44A 1
+44B 1
+44C 1
+44D 1
+44E 1
+44F 1
+450 1
+451 1
+452 1
+453 1
+454 1
+455 1
+456 1
+457 1
+458 1
+459 1
+45A 1
+45B 1
+45C 1
+45D 1
+45E 1
+45F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C1 1
+4C2 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D4 1
+4D5 1
+4D6 1
+4D7 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4DC 1
+4DD 1
+4DE 1
+4DF 1
+4E0 1
+4E1 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4EC 1
+4ED 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4F4 1
+4F5 1
+4F6 1
+4F7 1
+4F8 1
+4F9 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+532 1
+533 1
+534 1
+535 1
+536 1
+537 1
+538 1
+539 1
+53A 1
+53B 1
+53C 1
+53D 1
+53E 1
+53F 1
+540 1
+541 1
+542 1
+543 1
+544 1
+545 1
+546 1
+547 1
+548 1
+549 1
+54A 1
+54B 1
+54C 1
+54D 1
+54E 1
+54F 1
+550 1
+551 1
+552 1
+553 1
+554 1
+555 1
+556 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+561 1
+562 1
+563 1
+564 1
+565 1
+566 1
+567 1
+568 1
+569 1
+56A 1
+56B 1
+56C 1
+56D 1
+56E 1
+56F 1
+570 1
+571 1
+572 1
+573 1
+574 1
+575 1
+576 1
+577 1
+578 1
+579 1
+57A 1
+57B 1
+57C 1
+57D 1
+57E 1
+57F 1
+580 1
+581 1
+582 1
+583 1
+584 1
+585 1
+586 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+158 1
+159 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+170 1
+171 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+150 1
+151 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+F2 1
+F3 1
+F4 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+5A 1
+7A 1
+17D 1
+17E 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+44 1
+64 1
+10E 1
+10F 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+46 1
+66 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+56 1
+76 1
+57 1
+77 1
+174 1
+175 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+D0 1
+F0 1
+D7 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+DE 1
+FE 1
+DF 1
+F7 1
+110 1
+111 1
+126 1
+127 1
+132 1
+133 1
+138 1
+13F 1
+140 1
+141 1
+142 1
+149 1
+14A 1
+14B 1
+152 1
+153 1
+166 1
+167 1
+180 1
+181 1
+253 1
+182 1
+183 1
+184 1
+185 1
+186 1
+254 1
+187 1
+188 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+18D 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+191 1
+192 1
+193 1
+260 1
+194 1
+263 1
+196 1
+269 1
+197 1
+268 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+26F 1
+19D 1
+272 1
+19E 1
+19F 1
+275 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+280 1
+1A7 1
+1A8 1
+1A9 1
+283 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+1B1 1
+28A 1
+1B2 1
+28B 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1E4 1
+1E5 1
+1F1 1
+1F2 1
+1F3 1
+195 1
+1F6 1
+1BF 1
+1F7 1
+21C 1
+21D 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+255 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+25F 1
+261 1
+262 1
+264 1
+265 1
+266 1
+267 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+270 1
+271 1
+273 1
+274 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+282 1
+284 1
+285 1
+286 1
+287 1
+289 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+387 1
+38B 1
+38D 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+345 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+39A 1
+3BA 1
+3F0 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3A1 1
+3C1 1
+3F1 1
+3A2 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3CF 1
+3D2 1
+3D3 1
+3D4 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+402 1
+452 1
+404 1
+454 1
+405 1
+455 1
+406 1
+407 1
+456 1
+457 1
+408 1
+458 1
+409 1
+459 1
+40A 1
+45A 1
+40B 1
+45B 1
+40F 1
+45F 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+411 1
+431 1
+412 1
+432 1
+403 1
+413 1
+433 1
+453 1
+414 1
+434 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+417 1
+437 1
+4DE 1
+4DF 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+419 1
+439 1
+40C 1
+41A 1
+43A 1
+45C 1
+41B 1
+43B 1
+41C 1
+43C 1
+41D 1
+43D 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+41F 1
+43F 1
+420 1
+440 1
+421 1
+441 1
+422 1
+442 1
+40E 1
+423 1
+443 1
+45E 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+424 1
+444 1
+425 1
+445 1
+426 1
+446 1
+427 1
+447 1
+4F4 1
+4F5 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D4 1
+4D5 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4E0 1
+4E1 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+150 1
+151 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+170 1
+171 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C2 1
+C3 1
+E0 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C1 1
+E1 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+D0 1
+F0 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+45 1
+65 1
+C8 1
+CA 1
+CB 1
+E8 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+C9 1
+E9 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CE 1
+CF 1
+EC 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CD 1
+ED 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+F2 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DB 1
+DC 1
+F9 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DA 1
+FA 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+DD 1
+FD 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+DE 1
+FE 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+122 1
+123 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+59 1
+79 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+1E8 1
+1E9 1
+136 1
+137 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+13B 1
+13C 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+145 1
+146 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+156 1
+157 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+59 1
+69 1
+79 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+653 1
+654 1
+655 1
+670 1
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+651 1
+652 1
+656 1
+657 1
+658 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+64E 1
+26 1
+650 1
+23 1
+64F 1
+25 1
+66A 1
+64B 1
+64D 1
+64C 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+622 1
+627 1
+671 1
+621 1
+623 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+625 1
+624 1
+626 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+674 1
+6FD 1
+672 1
+673 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+689 1
+68A 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A9 1
+643 1
+6A8 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6D5 1
+648 1
+6E5 1
+676 1
+647 1
+6C4 1
+629 1
+6C5 1
+6C0 1
+6C6 1
+6C7 1
+6CC 1
+677 1
+649 1
+6C8 1
+64A 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+6E6 1
+678 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+104 1
+105 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+106 1
+107 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+118 1
+119 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+141 1
+142 1
+29F 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+143 1
+144 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+D6 1
+F2 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15A 1
+15B 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+17D 1
+17E 1
+18D 1
+179 1
+17A 1
+17B 1
+17C 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+4A 1
+69 1
+6A 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+55 1
+56 1
+75 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+102 1
+103 1
+C2 1
+E2 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CF 1
+EC 1
+ED 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CE 1
+EE 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+2E2 1
+DF 1
+15E 1
+15F 1
+218 1
+219 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+164 1
+165 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+162 1
+163 1
+21A 1
+21B 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C4 1
+E4 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D5 1
+D6 1
+F2 1
+F3 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D4 1
+F4 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C5 1
+E5 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+C7 1
+E7 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+11E 1
+11F 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+49 1
+131 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15E 1
+15F 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_bin) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B5 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C386 1
+C387 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C390 1
+C391 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C397 1
+C398 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C39D 1
+C39E 1
+C39F 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C3A6 1
+C3A7 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C3B0 1
+C3B1 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C3B7 1
+C3B8 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C3BD 1
+C3BE 1
+C3BF 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+C48E 1
+C48F 1
+C490 1
+C491 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C4A4 1
+C4A5 1
+C4A6 1
+C4A7 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C4B2 1
+C4B3 1
+C4B4 1
+C4B5 1
+C4B6 1
+C4B7 1
+C4B8 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C589 1
+C58A 1
+C58B 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C592 1
+C593 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C5A6 1
+C5A7 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C5B4 1
+C5B5 1
+C5B6 1
+C5B7 1
+C5B8 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C5BF 1
+C680 1
+C681 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C687 1
+C688 1
+C689 1
+C68A 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C68F 1
+C690 1
+C691 1
+C692 1
+C693 1
+C694 1
+C695 1
+C696 1
+C697 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C69D 1
+C69E 1
+C69F 1
+C6A0 1
+C6A1 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+C6A7 1
+C6A8 1
+C6A9 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+C6AF 1
+C6B0 1
+C6B1 1
+C6B2 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C6BF 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C78D 1
+C78E 1
+C78F 1
+C790 1
+C791 1
+C792 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C79D 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7A2 1
+C7A3 1
+C7A4 1
+C7A5 1
+C7A6 1
+C7A7 1
+C7A8 1
+C7A9 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C7AE 1
+C7AF 1
+C7B0 1
+C7B1 1
+C7B2 1
+C7B3 1
+C7B4 1
+C7B5 1
+C7B6 1
+C7B7 1
+C7B8 1
+C7B9 1
+C7BA 1
+C7BB 1
+C7BC 1
+C7BD 1
+C7BE 1
+C7BF 1
+C880 1
+C881 1
+C882 1
+C883 1
+C884 1
+C885 1
+C886 1
+C887 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C890 1
+C891 1
+C892 1
+C893 1
+C894 1
+C895 1
+C896 1
+C897 1
+C898 1
+C899 1
+C89A 1
+C89B 1
+C89C 1
+C89D 1
+C89E 1
+C89F 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8A6 1
+C8A7 1
+C8A8 1
+C8A9 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+C8B2 1
+C8B3 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C993 1
+C994 1
+C995 1
+C996 1
+C997 1
+C998 1
+C999 1
+C99A 1
+C99B 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A0 1
+C9A1 1
+C9A2 1
+C9A3 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9A8 1
+C9A9 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9AF 1
+C9B0 1
+C9B1 1
+C9B2 1
+C9B3 1
+C9B4 1
+C9B5 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA80 1
+CA81 1
+CA82 1
+CA83 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA88 1
+CA89 1
+CA8A 1
+CA8B 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA92 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE86 1
+CE87 1
+CE88 1
+CE89 1
+CE8A 1
+CE8B 1
+CE8C 1
+CE8D 1
+CE8E 1
+CE8F 1
+CE90 1
+CE91 1
+CE92 1
+CE93 1
+CE94 1
+CE95 1
+CE96 1
+CE97 1
+CE98 1
+CE99 1
+CE9A 1
+CE9B 1
+CE9C 1
+CE9D 1
+CE9E 1
+CE9F 1
+CEA0 1
+CEA1 1
+CEA2 1
+CEA3 1
+CEA4 1
+CEA5 1
+CEA6 1
+CEA7 1
+CEA8 1
+CEA9 1
+CEAA 1
+CEAB 1
+CEAC 1
+CEAD 1
+CEAE 1
+CEAF 1
+CEB0 1
+CEB1 1
+CEB2 1
+CEB3 1
+CEB4 1
+CEB5 1
+CEB6 1
+CEB7 1
+CEB8 1
+CEB9 1
+CEBA 1
+CEBB 1
+CEBC 1
+CEBD 1
+CEBE 1
+CEBF 1
+CF80 1
+CF81 1
+CF82 1
+CF83 1
+CF84 1
+CF85 1
+CF86 1
+CF87 1
+CF88 1
+CF89 1
+CF8A 1
+CF8B 1
+CF8C 1
+CF8D 1
+CF8E 1
+CF8F 1
+CF90 1
+CF91 1
+CF92 1
+CF93 1
+CF94 1
+CF95 1
+CF96 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB0 1
+CFB1 1
+CFB2 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D080 1
+D081 1
+D082 1
+D083 1
+D084 1
+D085 1
+D086 1
+D087 1
+D088 1
+D089 1
+D08A 1
+D08B 1
+D08C 1
+D08D 1
+D08E 1
+D08F 1
+D090 1
+D091 1
+D092 1
+D093 1
+D094 1
+D095 1
+D096 1
+D097 1
+D098 1
+D099 1
+D09A 1
+D09B 1
+D09C 1
+D09D 1
+D09E 1
+D09F 1
+D0A0 1
+D0A1 1
+D0A2 1
+D0A3 1
+D0A4 1
+D0A5 1
+D0A6 1
+D0A7 1
+D0A8 1
+D0A9 1
+D0AA 1
+D0AB 1
+D0AC 1
+D0AD 1
+D0AE 1
+D0AF 1
+D0B0 1
+D0B1 1
+D0B2 1
+D0B3 1
+D0B4 1
+D0B5 1
+D0B6 1
+D0B7 1
+D0B8 1
+D0B9 1
+D0BA 1
+D0BB 1
+D0BC 1
+D0BD 1
+D0BE 1
+D0BF 1
+D180 1
+D181 1
+D182 1
+D183 1
+D184 1
+D185 1
+D186 1
+D187 1
+D188 1
+D189 1
+D18A 1
+D18B 1
+D18C 1
+D18D 1
+D18E 1
+D18F 1
+D190 1
+D191 1
+D192 1
+D193 1
+D194 1
+D195 1
+D196 1
+D197 1
+D198 1
+D199 1
+D19A 1
+D19B 1
+D19C 1
+D19D 1
+D19E 1
+D19F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D381 1
+D382 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D390 1
+D391 1
+D392 1
+D393 1
+D394 1
+D395 1
+D396 1
+D397 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D39C 1
+D39D 1
+D39E 1
+D39F 1
+D3A0 1
+D3A1 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3AC 1
+D3AD 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D3B4 1
+D3B5 1
+D3B6 1
+D3B7 1
+D3B8 1
+D3B9 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D4B2 1
+D4B3 1
+D4B4 1
+D4B5 1
+D4B6 1
+D4B7 1
+D4B8 1
+D4B9 1
+D4BA 1
+D4BB 1
+D4BC 1
+D4BD 1
+D4BE 1
+D4BF 1
+D580 1
+D581 1
+D582 1
+D583 1
+D584 1
+D585 1
+D586 1
+D587 1
+D588 1
+D589 1
+D58A 1
+D58B 1
+D58C 1
+D58D 1
+D58E 1
+D58F 1
+D590 1
+D591 1
+D592 1
+D593 1
+D594 1
+D595 1
+D596 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D5A1 1
+D5A2 1
+D5A3 1
+D5A4 1
+D5A5 1
+D5A6 1
+D5A7 1
+D5A8 1
+D5A9 1
+D5AA 1
+D5AB 1
+D5AC 1
+D5AD 1
+D5AE 1
+D5AF 1
+D5B0 1
+D5B1 1
+D5B2 1
+D5B3 1
+D5B4 1
+D5B5 1
+D5B6 1
+D5B7 1
+D5B8 1
+D5B9 1
+D5BA 1
+D5BB 1
+D5BC 1
+D5BD 1
+D5BE 1
+D5BF 1
+D680 1
+D681 1
+D682 1
+D683 1
+D684 1
+D685 1
+D686 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_czech_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C598 1
+C599 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_danish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B0 1
+C5B1 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C590 1
+C591 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_estonian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C3B2 1
+C3B3 1
+C3B4 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+C395 1
+C3B5 1
+C384 1
+C3A4 1
+C396 1
+C3B6 1
+C39C 1
+C3BC 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+42 1
+62 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+44 1
+64 1
+C48E 1
+C48F 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+46 1
+66 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+4D 1
+6D 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+4F 1
+6F 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+56 1
+76 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+58 1
+78 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C390 1
+C3B0 1
+C397 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C39E 1
+C3BE 1
+C39F 1
+C3B7 1
+C490 1
+C491 1
+C4A6 1
+C4A7 1
+C4B2 1
+C4B3 1
+C4B8 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C589 1
+C58A 1
+C58B 1
+C592 1
+C593 1
+C5A6 1
+C5A7 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C994 1
+C687 1
+C688 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C691 1
+C692 1
+C693 1
+C9A0 1
+C694 1
+C9A3 1
+C696 1
+C9A9 1
+C697 1
+C9A8 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C9AF 1
+C69D 1
+C9B2 1
+C69E 1
+C69F 1
+C9B5 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+CA80 1
+C6A7 1
+C6A8 1
+C6A9 1
+CA83 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C6B1 1
+CA8A 1
+C6B2 1
+CA8B 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C7A4 1
+C7A5 1
+C7B1 1
+C7B2 1
+C7B3 1
+C695 1
+C7B6 1
+C6BF 1
+C7B7 1
+C89C 1
+C89D 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C995 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A1 1
+C9A2 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9B0 1
+C9B1 1
+C9B3 1
+C9B4 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CA82 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA89 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE87 1
+CE8B 1
+CE8D 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CD85 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CE9A 1
+CEBA 1
+CFB0 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA2 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CF8F 1
+CF92 1
+CF93 1
+CF94 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D082 1
+D192 1
+D084 1
+D194 1
+D085 1
+D195 1
+D086 1
+D087 1
+D196 1
+D197 1
+D088 1
+D198 1
+D089 1
+D199 1
+D08A 1
+D19A 1
+D08B 1
+D19B 1
+D08F 1
+D19F 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D083 1
+D093 1
+D0B3 1
+D193 1
+D094 1
+D0B4 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D097 1
+D0B7 1
+D39E 1
+D39F 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D099 1
+D0B9 1
+D08C 1
+D09A 1
+D0BA 1
+D19C 1
+D09B 1
+D0BB 1
+D09C 1
+D0BC 1
+D09D 1
+D0BD 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D09F 1
+D0BF 1
+D0A0 1
+D180 1
+D0A1 1
+D181 1
+D0A2 1
+D182 1
+D08E 1
+D0A3 1
+D183 1
+D19E 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D0A6 1
+D186 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D394 1
+D395 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D3A0 1
+D3A1 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_hungarian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C590 1
+C591 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+C5B0 1
+C5B1 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_icelandic_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C382 1
+C383 1
+C3A0 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C381 1
+C3A1 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C390 1
+C3B0 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+45 1
+65 1
+C388 1
+C38A 1
+C38B 1
+C3A8 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C389 1
+C3A9 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38E 1
+C38F 1
+C3AC 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38D 1
+C3AD 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C3B2 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39B 1
+C39C 1
+C3B9 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39A 1
+C3BA 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+C39D 1
+C3BD 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C39E 1
+C3BE 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_latvian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C4A2 1
+C4A3 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+59 1
+79 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C7A8 1
+C7A9 1
+C4B6 1
+C4B7 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C4BB 1
+C4BC 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C585 1
+C586 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C596 1
+C597 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_lithuanian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+59 1
+69 1
+79 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_persian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+D993 1
+D994 1
+D995 1
+D9B0 1
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D991 1
+D992 1
+D996 1
+D997 1
+D998 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+D98E 1
+26 1
+D990 1
+23 1
+D98F 1
+25 1
+D9AA 1
+D98B 1
+D98D 1
+D98C 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+D8A2 1
+D8A7 1
+D9B1 1
+D8A1 1
+D8A3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+D8A5 1
+D8A4 1
+D8A6 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D9B4 1
+DBBD 1
+D9B2 1
+D9B3 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+DA89 1
+DA8A 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA9 1
+D983 1
+DAA8 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+D987 1
+DB84 1
+D8A9 1
+DB85 1
+DB80 1
+DB86 1
+DB87 1
+DB8C 1
+D9B7 1
+D989 1
+DB88 1
+D98A 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+DBA6 1
+D9B8 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_polish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C484 1
+C485 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C486 1
+C487 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C498 1
+C499 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C581 1
+C582 1
+CA9F 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C583 1
+C584 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59A 1
+C59B 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+C68D 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_roman_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+4A 1
+69 1
+6A 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+55 1
+56 1
+75 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_romanian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C482 1
+C483 1
+C382 1
+C3A2 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38E 1
+C3AE 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+C898 1
+C899 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A4 1
+C5A5 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A2 1
+C5A3 1
+C89A 1
+C89B 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovak_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C384 1
+C3A4 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C394 1
+C3B4 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovenian_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish2_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_swedish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C385 1
+C3A5 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_turkish_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C387 1
+C3A7 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C49E 1
+C49F 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+49 1
+C4B1 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci) ENGINE=InnoDB 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 InnoDB # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
diff --git a/mysql-test/suite/funcs_2/r/memory_charset.result b/mysql-test/suite/funcs_2/r/memory_charset.result
new file mode 100644
index 00000000000..8536ac4a9b2
--- /dev/null
+++ b/mysql-test/suite/funcs_2/r/memory_charset.result
@@ -0,0 +1,119156 @@
+DROP TABLE IF EXISTS test.t1;
+SET NAMES armscii8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES armscii8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ascii;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ascii;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES big5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES big5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_chinese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES binary;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET binary) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_croatian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+DF 1
+8A 1
+9A 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8F 1
+9F 1
+AF 1
+BF 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_czech_cs) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+80 1
+81 1
+83 1
+88 1
+90 1
+98 1
+B6 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+A5 1
+B9 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+E9 1
+CC 1
+EC 1
+CB 1
+EB 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+C5 1
+E5 1
+BC 1
+BE 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+D6 1
+F6 1
+D5 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+E0 1
+D8 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+8A 1
+9A 1
+DF 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+DA 1
+FA 1
+D9 1
+F9 1
+DC 1
+FC 1
+DB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AF 1
+BF 1
+8F 1
+9F 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+82 1
+84 1
+85 1
+86 1
+87 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A7 1
+AA 1
+BA 1
+DF 1
+8A 1
+8C 1
+9A 1
+9C 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8E 1
+8F 1
+9E 1
+9F 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_cs) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+C5 1
+E5 1
+AA 1
+BA 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1256;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1256;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+E0 1
+E2 1
+42 1
+62 1
+43 1
+63 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+83 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+F4 1
+8C 1
+9C 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+F9 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+81 1
+CB 1
+CC 1
+8D 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+8E 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+CA 1
+D9 1
+DA 1
+DB 1
+DD 1
+DE 1
+DF 1
+90 1
+E1 1
+E3 1
+E4 1
+E5 1
+E6 1
+EC 1
+ED 1
+DC 1
+F0 1
+F1 1
+F2 1
+F3 1
+F5 1
+F6 1
+F8 1
+FA 1
+A1 1
+BA 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8F 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+C0 1
+D7 1
+F7 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+AF 1
+BF 1
+C0 1
+C2 1
+C4 1
+C5 1
+E0 1
+E2 1
+E4 1
+E5 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+C8 1
+E3 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+C7 1
+C9 1
+CB 1
+E6 1
+E7 1
+E9 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+C1 1
+CE 1
+E1 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+D9 1
+EF 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+A8 1
+B8 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+D0 1
+DA 1
+DF 1
+F0 1
+FA 1
+54 1
+74 1
+55 1
+75 1
+D8 1
+DB 1
+DC 1
+F8 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+DD 1
+DE 1
+EA 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_lithuanian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+42 1
+62 1
+43 1
+63 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+E6 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+59 1
+79 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+D0 1
+F0 1
+54 1
+74 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+5A 1
+7A 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C2 1
+C3 1
+C4 1
+C5 1
+C7 1
+C9 1
+CA 1
+CC 1
+CD 1
+CE 1
+CF 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D9 1
+DA 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E2 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+EA 1
+EC 1
+ED 1
+EE 1
+EF 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F9 1
+FA 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp850;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp850;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+85 1
+B7 1
+A0 1
+B5 1
+83 1
+B6 1
+C6 1
+C7 1
+84 1
+8E 1
+86 1
+8F 1
+91 1
+92 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+D0 1
+D1 1
+45 1
+65 1
+8A 1
+D4 1
+82 1
+90 1
+88 1
+D2 1
+89 1
+D3 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8D 1
+DE 1
+A1 1
+D6 1
+8C 1
+D7 1
+8B 1
+D8 1
+D5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+95 1
+E3 1
+A2 1
+E0 1
+93 1
+E2 1
+E4 1
+E5 1
+94 1
+99 1
+9B 1
+9D 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+E1 1
+54 1
+74 1
+55 1
+75 1
+97 1
+EB 1
+A3 1
+E9 1
+96 1
+EA 1
+81 1
+9A 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+98 1
+5A 1
+7A 1
+E7 1
+E8 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+F7 1
+9E 1
+9F 1
+F6 1
+F2 1
+C4 1
+B3 1
+DA 1
+BF 1
+C0 1
+D9 1
+C3 1
+B4 1
+C2 1
+C1 1
+C5 1
+CD 1
+AD 1
+BA 1
+C9 1
+BB 1
+C8 1
+BC 1
+CC 1
+B9 1
+CB 1
+CA 1
+CE 1
+DF 1
+DC 1
+DB 1
+B0 1
+B1 1
+B2 1
+BD 1
+9C 1
+CF 1
+BE 1
+DD 1
+F5 1
+F9 1
+B8 1
+A6 1
+AE 1
+AA 1
+F0 1
+A9 1
+EE 1
+F8 1
+F1 1
+FD 1
+FC 1
+EF 1
+E6 1
+F4 1
+FA 1
+FB 1
+A7 1
+AF 1
+AC 1
+AB 1
+F3 1
+A8 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp852;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp852;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+83 1
+84 1
+8E 1
+A0 1
+A4 1
+A5 1
+B5 1
+B6 1
+C6 1
+C7 1
+42 1
+62 1
+43 1
+63 1
+80 1
+86 1
+87 1
+8F 1
+9F 1
+AC 1
+44 1
+64 1
+D0 1
+D1 1
+D2 1
+D4 1
+45 1
+65 1
+82 1
+89 1
+90 1
+A8 1
+A9 1
+B7 1
+D3 1
+D8 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+A1 1
+D6 1
+D7 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+88 1
+91 1
+92 1
+95 1
+96 1
+9D 1
+4D 1
+6D 1
+4E 1
+6E 1
+D5 1
+E3 1
+E4 1
+E5 1
+4F 1
+6F 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A2 1
+E0 1
+E2 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+E8 1
+EA 1
+FC 1
+FD 1
+53 1
+73 1
+97 1
+98 1
+AD 1
+B8 1
+E6 1
+E7 1
+E1 1
+54 1
+74 1
+9B 1
+9C 1
+DD 1
+EE 1
+55 1
+75 1
+81 1
+85 1
+9A 1
+A3 1
+DE 1
+E9 1
+EB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+5A 1
+7A 1
+8D 1
+A6 1
+A7 1
+AB 1
+BD 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+9E 1
+AA 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B9 1
+BA 1
+BB 1
+BC 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D9 1
+DA 1
+DB 1
+DC 1
+DF 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp866;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp866;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+80 1
+A0 1
+81 1
+A1 1
+82 1
+A2 1
+83 1
+A3 1
+84 1
+A4 1
+85 1
+A5 1
+F0 1
+F1 1
+F2 1
+F3 1
+86 1
+A6 1
+87 1
+A7 1
+88 1
+A8 1
+F4 1
+F5 1
+89 1
+A9 1
+8A 1
+AA 1
+8B 1
+AB 1
+8C 1
+AC 1
+8D 1
+AD 1
+8E 1
+AE 1
+8F 1
+AF 1
+90 1
+E0 1
+91 1
+E1 1
+92 1
+E2 1
+93 1
+E3 1
+F6 1
+F7 1
+94 1
+E4 1
+95 1
+E5 1
+96 1
+E6 1
+97 1
+E7 1
+98 1
+E8 1
+99 1
+E9 1
+9A 1
+EA 1
+9B 1
+EB 1
+9C 1
+EC 1
+9D 1
+ED 1
+9E 1
+EE 1
+9F 1
+EF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+B0 1
+B1 1
+B2 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp932;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp932;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_japanese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES dec8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES dec8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_swedish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES eucjpms;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES eucjpms;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES euckr;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES euckr;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_korean_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gb2312;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gb2312;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gbk;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gbk;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_chinese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES geostd8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES geostd8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES greek;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES greek;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B7 1
+BB 1
+BD 1
+B6 1
+C1 1
+DC 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+B8 1
+C5 1
+DD 1
+E5 1
+C6 1
+E6 1
+B9 1
+C7 1
+DE 1
+E7 1
+C8 1
+E8 1
+BA 1
+C0 1
+C9 1
+DA 1
+DF 1
+E9 1
+FA 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+BC 1
+CF 1
+EF 1
+FC 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+D3 1
+F2 1
+F3 1
+D4 1
+F4 1
+BE 1
+D5 1
+DB 1
+E0 1
+F5 1
+FB 1
+FD 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+BF 1
+D9 1
+F9 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hebrew;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hebrew;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+D7 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hp8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hp8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_english_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES keybcs2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES keybcs2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+84 1
+8E 1
+8F 1
+A0 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+83 1
+85 1
+45 1
+65 1
+82 1
+88 1
+89 1
+90 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8B 1
+A1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+8A 1
+8C 1
+8D 1
+9C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+93 1
+94 1
+95 1
+99 1
+A2 1
+A7 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+9E 1
+A9 1
+AA 1
+AB 1
+53 1
+73 1
+9B 1
+A8 1
+E1 1
+54 1
+74 1
+86 1
+9F 1
+55 1
+75 1
+81 1
+96 1
+97 1
+9A 1
+A3 1
+A6 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+98 1
+9D 1
+5A 1
+7A 1
+91 1
+92 1
+E0 1
+EB 1
+EE 1
+E2 1
+EA 1
+E8 1
+ED 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E6 1
+EC 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8r;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8r;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+C4 1
+E4 1
+C5 1
+E5 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8u;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8u;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+AD 1
+BD 1
+C4 1
+E4 1
+C5 1
+E5 1
+A4 1
+B4 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+A6 1
+B6 1
+A7 1
+B7 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A5 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B5 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_danish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C4 1
+C6 1
+E4 1
+E6 1
+5C 1
+D6 1
+D8 1
+F6 1
+F8 1
+5D 1
+C5 1
+E5 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_cs) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german1_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D0 1
+F0 1
+D7 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german2_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+C6 1
+E6 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_spanish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_swedish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_croatian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+A5 1
+B3 1
+B5 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A6 1
+AA 1
+B6 1
+BA 1
+DF 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+AF 1
+BC 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_czech_cs) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+2C 1
+3B 1
+3F 1
+21 1
+3A 1
+22 1
+60 1
+27 1
+2F 1
+7C 1
+5C 1
+28 1
+29 1
+5B 1
+5D 1
+3C 1
+3E 1
+7B 1
+7D 1
+40 1
+26 1
+25 1
+23 1
+5E 1
+5F 1
+7E 1
+3D 1
+2B 1
+2A 1
+2D 1
+D7 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+24 1
+7F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+DF 1
+F7 1
+61 1
+41 1
+E1 1
+C1 1
+E2 1
+C2 1
+E4 1
+C4 1
+E3 1
+C3 1
+B1 1
+A1 1
+62 1
+42 1
+63 1
+43 1
+E8 1
+C8 1
+E6 1
+C6 1
+E7 1
+C7 1
+64 1
+44 1
+EF 1
+CF 1
+F0 1
+D0 1
+65 1
+45 1
+E9 1
+C9 1
+EC 1
+CC 1
+EB 1
+CB 1
+EA 1
+CA 1
+66 1
+46 1
+67 1
+47 1
+68 1
+48 1
+69 1
+49 1
+ED 1
+CD 1
+EE 1
+CE 1
+6A 1
+4A 1
+6B 1
+4B 1
+6C 1
+4C 1
+E5 1
+C5 1
+B5 1
+A5 1
+B3 1
+A3 1
+6D 1
+4D 1
+6E 1
+4E 1
+F2 1
+D2 1
+F1 1
+D1 1
+6F 1
+4F 1
+F3 1
+D3 1
+F4 1
+D4 1
+F6 1
+D6 1
+F5 1
+D5 1
+70 1
+50 1
+71 1
+51 1
+72 1
+52 1
+E0 1
+C0 1
+F8 1
+D8 1
+73 1
+53 1
+B9 1
+A9 1
+B6 1
+A6 1
+BA 1
+AA 1
+74 1
+54 1
+BB 1
+AB 1
+DE 1
+75 1
+55 1
+FA 1
+DA 1
+F9 1
+D9 1
+FC 1
+DC 1
+FB 1
+DB 1
+76 1
+56 1
+77 1
+57 1
+78 1
+58 1
+79 1
+59 1
+FD 1
+DD 1
+7A 1
+5A 1
+BE 1
+AE 1
+BC 1
+AC 1
+BF 1
+AF 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C6 1
+E6 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+C9 1
+CB 1
+CC 1
+E9 1
+EB 1
+EC 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A5 1
+B5 1
+C5 1
+E5 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D2 1
+F2 1
+D1 1
+F1 1
+4F 1
+6F 1
+D4 1
+D5 1
+D6 1
+F4 1
+F5 1
+F6 1
+D3 1
+F3 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+AA 1
+BA 1
+A6 1
+B6 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AF 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_hungarian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+80 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8E 1
+91 1
+92 1
+9B 1
+9C 1
+9D 1
+9E 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+8F 1
+A0 1
+B5 1
+C1 1
+E1 1
+B1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C8 1
+E8 1
+C7 1
+E7 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+82 1
+90 1
+C9 1
+E9 1
+CC 1
+EC 1
+CA 1
+EA 1
+CB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+8D 1
+A1 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+B3 1
+A4 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+95 1
+A2 1
+D3 1
+E0 1
+F3 1
+D4 1
+F4 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A7 1
+D5 1
+D6 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+F8 1
+53 1
+73 1
+A5 1
+B6 1
+A9 1
+B9 1
+AA 1
+BA 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+97 1
+A3 1
+DA 1
+FA 1
+D9 1
+F9 1
+81 1
+96 1
+98 1
+9A 1
+DB 1
+DC 1
+EB 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AE 1
+BE 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+9F 1
+A6 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_turkish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+D0 1
+F0 1
+48 1
+68 1
+49 1
+FD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+DD 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F8 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+DE 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_estonian_cs) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+7F 1
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+EF 1
+D9 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+A8 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+58 1
+78 1
+59 1
+79 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+A8 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+74 1
+54 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_cs) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+A8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macce;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macce;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+82 1
+84 1
+87 1
+88 1
+8A 1
+E7 1
+42 1
+62 1
+43 1
+63 1
+89 1
+8B 1
+8C 1
+8D 1
+44 1
+64 1
+91 1
+93 1
+45 1
+65 1
+83 1
+8E 1
+94 1
+95 1
+96 1
+98 1
+9D 1
+9E 1
+A2 1
+AB 1
+46 1
+66 1
+47 1
+67 1
+AE 1
+48 1
+68 1
+49 1
+69 1
+92 1
+AF 1
+B0 1
+B1 1
+B4 1
+EA 1
+4A 1
+6A 1
+4B 1
+6B 1
+B5 1
+FA 1
+4C 1
+6C 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+FC 1
+4D 1
+4E 1
+6D 1
+6E 1
+BF 1
+C0 1
+C1 1
+C4 1
+C5 1
+CB 1
+4F 1
+6F 1
+85 1
+97 1
+99 1
+9A 1
+9B 1
+CC 1
+CD 1
+CE 1
+CF 1
+D8 1
+EE 1
+EF 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+D9 1
+DA 1
+DB 1
+DE 1
+DF 1
+E0 1
+53 1
+73 1
+A7 1
+E1 1
+E4 1
+E5 1
+E6 1
+54 1
+74 1
+E8 1
+E9 1
+55 1
+75 1
+86 1
+9C 1
+9F 1
+ED 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+F8 1
+F9 1
+5A 1
+7A 1
+8F 1
+90 1
+EB 1
+EC 1
+FB 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AC 1
+AD 1
+B2 1
+B3 1
+B6 1
+B7 1
+C2 1
+C3 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DC 1
+DD 1
+E2 1
+E3 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macroman;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macroman;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+CB 1
+CC 1
+E5 1
+E7 1
+AE 1
+BE 1
+42 1
+62 1
+43 1
+63 1
+82 1
+8D 1
+44 1
+64 1
+45 1
+65 1
+83 1
+8E 1
+8F 1
+90 1
+91 1
+E6 1
+E8 1
+E9 1
+46 1
+66 1
+C4 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+92 1
+93 1
+94 1
+95 1
+EA 1
+EB 1
+EC 1
+ED 1
+F5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+84 1
+96 1
+4F 1
+6F 1
+85 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+AF 1
+BF 1
+CD 1
+EE 1
+EF 1
+F1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+A7 1
+54 1
+74 1
+55 1
+75 1
+86 1
+9C 1
+9D 1
+9E 1
+9F 1
+F2 1
+F3 1
+F4 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+D8 1
+D9 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+F0 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES sjis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES sjis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_japanese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES swe7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES swe7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_swedish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+40 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+5E 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+7D 1
+5B 1
+7B 1
+5C 1
+7C 1
+5F 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES tis620;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES tis620;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_thai_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+EC 1
+F9 1
+E7 1
+FA 1
+E8 1
+FB 1
+E9 1
+FC 1
+EA 1
+FD 1
+EB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ujis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ujis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_japanese_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+FE 1
+FF 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+10E 1
+10F 1
+110 1
+111 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+124 1
+125 1
+126 1
+127 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+132 1
+133 1
+134 1
+135 1
+136 1
+137 1
+138 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+13F 1
+140 1
+141 1
+142 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+149 1
+14A 1
+14B 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+152 1
+153 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+162 1
+163 1
+164 1
+165 1
+166 1
+167 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+174 1
+175 1
+176 1
+177 1
+178 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+17F 1
+180 1
+181 1
+182 1
+183 1
+184 1
+185 1
+186 1
+187 1
+188 1
+189 1
+18A 1
+18B 1
+18C 1
+18D 1
+18E 1
+18F 1
+190 1
+191 1
+192 1
+193 1
+194 1
+195 1
+196 1
+197 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+19D 1
+19E 1
+19F 1
+1A0 1
+1A1 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+1A7 1
+1A8 1
+1A9 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+1AF 1
+1B0 1
+1B1 1
+1B2 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1BF 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1CD 1
+1CE 1
+1CF 1
+1D0 1
+1D1 1
+1D2 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+1DD 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1E2 1
+1E3 1
+1E4 1
+1E5 1
+1E6 1
+1E7 1
+1E8 1
+1E9 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+1EE 1
+1EF 1
+1F0 1
+1F1 1
+1F2 1
+1F3 1
+1F4 1
+1F5 1
+1F6 1
+1F7 1
+1F8 1
+1F9 1
+1FA 1
+1FB 1
+1FC 1
+1FD 1
+1FE 1
+1FF 1
+200 1
+201 1
+202 1
+203 1
+204 1
+205 1
+206 1
+207 1
+208 1
+209 1
+20A 1
+20B 1
+20C 1
+20D 1
+20E 1
+20F 1
+210 1
+211 1
+212 1
+213 1
+214 1
+215 1
+216 1
+217 1
+218 1
+219 1
+21A 1
+21B 1
+21C 1
+21D 1
+21E 1
+21F 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+226 1
+227 1
+228 1
+229 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+232 1
+233 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+253 1
+254 1
+255 1
+256 1
+257 1
+258 1
+259 1
+25A 1
+25B 1
+25C 1
+25D 1
+25E 1
+25F 1
+260 1
+261 1
+262 1
+263 1
+264 1
+265 1
+266 1
+267 1
+268 1
+269 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+26F 1
+270 1
+271 1
+272 1
+273 1
+274 1
+275 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+280 1
+281 1
+282 1
+283 1
+284 1
+285 1
+286 1
+287 1
+288 1
+289 1
+28A 1
+28B 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+292 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+386 1
+387 1
+388 1
+389 1
+38A 1
+38B 1
+38C 1
+38D 1
+38E 1
+38F 1
+390 1
+391 1
+392 1
+393 1
+394 1
+395 1
+396 1
+397 1
+398 1
+399 1
+39A 1
+39B 1
+39C 1
+39D 1
+39E 1
+39F 1
+3A0 1
+3A1 1
+3A2 1
+3A3 1
+3A4 1
+3A5 1
+3A6 1
+3A7 1
+3A8 1
+3A9 1
+3AA 1
+3AB 1
+3AC 1
+3AD 1
+3AE 1
+3AF 1
+3B0 1
+3B1 1
+3B2 1
+3B3 1
+3B4 1
+3B5 1
+3B6 1
+3B7 1
+3B8 1
+3B9 1
+3BA 1
+3BB 1
+3BC 1
+3BD 1
+3BE 1
+3BF 1
+3C0 1
+3C1 1
+3C2 1
+3C3 1
+3C4 1
+3C5 1
+3C6 1
+3C7 1
+3C8 1
+3C9 1
+3CA 1
+3CB 1
+3CC 1
+3CD 1
+3CE 1
+3CF 1
+3D0 1
+3D1 1
+3D2 1
+3D3 1
+3D4 1
+3D5 1
+3D6 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F0 1
+3F1 1
+3F2 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+400 1
+401 1
+402 1
+403 1
+404 1
+405 1
+406 1
+407 1
+408 1
+409 1
+40A 1
+40B 1
+40C 1
+40D 1
+40E 1
+40F 1
+410 1
+411 1
+412 1
+413 1
+414 1
+415 1
+416 1
+417 1
+418 1
+419 1
+41A 1
+41B 1
+41C 1
+41D 1
+41E 1
+41F 1
+420 1
+421 1
+422 1
+423 1
+424 1
+425 1
+426 1
+427 1
+428 1
+429 1
+42A 1
+42B 1
+42C 1
+42D 1
+42E 1
+42F 1
+430 1
+431 1
+432 1
+433 1
+434 1
+435 1
+436 1
+437 1
+438 1
+439 1
+43A 1
+43B 1
+43C 1
+43D 1
+43E 1
+43F 1
+440 1
+441 1
+442 1
+443 1
+444 1
+445 1
+446 1
+447 1
+448 1
+449 1
+44A 1
+44B 1
+44C 1
+44D 1
+44E 1
+44F 1
+450 1
+451 1
+452 1
+453 1
+454 1
+455 1
+456 1
+457 1
+458 1
+459 1
+45A 1
+45B 1
+45C 1
+45D 1
+45E 1
+45F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C1 1
+4C2 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D4 1
+4D5 1
+4D6 1
+4D7 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4DC 1
+4DD 1
+4DE 1
+4DF 1
+4E0 1
+4E1 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4EC 1
+4ED 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4F4 1
+4F5 1
+4F6 1
+4F7 1
+4F8 1
+4F9 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+532 1
+533 1
+534 1
+535 1
+536 1
+537 1
+538 1
+539 1
+53A 1
+53B 1
+53C 1
+53D 1
+53E 1
+53F 1
+540 1
+541 1
+542 1
+543 1
+544 1
+545 1
+546 1
+547 1
+548 1
+549 1
+54A 1
+54B 1
+54C 1
+54D 1
+54E 1
+54F 1
+550 1
+551 1
+552 1
+553 1
+554 1
+555 1
+556 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+561 1
+562 1
+563 1
+564 1
+565 1
+566 1
+567 1
+568 1
+569 1
+56A 1
+56B 1
+56C 1
+56D 1
+56E 1
+56F 1
+570 1
+571 1
+572 1
+573 1
+574 1
+575 1
+576 1
+577 1
+578 1
+579 1
+57A 1
+57B 1
+57C 1
+57D 1
+57E 1
+57F 1
+580 1
+581 1
+582 1
+583 1
+584 1
+585 1
+586 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+158 1
+159 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+170 1
+171 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+150 1
+151 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+F2 1
+F3 1
+F4 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+5A 1
+7A 1
+17D 1
+17E 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+44 1
+64 1
+10E 1
+10F 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+46 1
+66 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+56 1
+76 1
+57 1
+77 1
+174 1
+175 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+D0 1
+F0 1
+D7 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+DE 1
+FE 1
+DF 1
+F7 1
+110 1
+111 1
+126 1
+127 1
+132 1
+133 1
+138 1
+13F 1
+140 1
+141 1
+142 1
+149 1
+14A 1
+14B 1
+152 1
+153 1
+166 1
+167 1
+180 1
+181 1
+253 1
+182 1
+183 1
+184 1
+185 1
+186 1
+254 1
+187 1
+188 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+18D 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+191 1
+192 1
+193 1
+260 1
+194 1
+263 1
+196 1
+269 1
+197 1
+268 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+26F 1
+19D 1
+272 1
+19E 1
+19F 1
+275 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+280 1
+1A7 1
+1A8 1
+1A9 1
+283 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+1B1 1
+28A 1
+1B2 1
+28B 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1E4 1
+1E5 1
+1F1 1
+1F2 1
+1F3 1
+195 1
+1F6 1
+1BF 1
+1F7 1
+21C 1
+21D 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+255 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+25F 1
+261 1
+262 1
+264 1
+265 1
+266 1
+267 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+270 1
+271 1
+273 1
+274 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+282 1
+284 1
+285 1
+286 1
+287 1
+289 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+387 1
+38B 1
+38D 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+345 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+39A 1
+3BA 1
+3F0 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3A1 1
+3C1 1
+3F1 1
+3A2 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3CF 1
+3D2 1
+3D3 1
+3D4 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+402 1
+452 1
+404 1
+454 1
+405 1
+455 1
+406 1
+407 1
+456 1
+457 1
+408 1
+458 1
+409 1
+459 1
+40A 1
+45A 1
+40B 1
+45B 1
+40F 1
+45F 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+411 1
+431 1
+412 1
+432 1
+403 1
+413 1
+433 1
+453 1
+414 1
+434 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+417 1
+437 1
+4DE 1
+4DF 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+419 1
+439 1
+40C 1
+41A 1
+43A 1
+45C 1
+41B 1
+43B 1
+41C 1
+43C 1
+41D 1
+43D 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+41F 1
+43F 1
+420 1
+440 1
+421 1
+441 1
+422 1
+442 1
+40E 1
+423 1
+443 1
+45E 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+424 1
+444 1
+425 1
+445 1
+426 1
+446 1
+427 1
+447 1
+4F4 1
+4F5 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D4 1
+4D5 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4E0 1
+4E1 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+150 1
+151 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+170 1
+171 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C2 1
+C3 1
+E0 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C1 1
+E1 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+D0 1
+F0 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+45 1
+65 1
+C8 1
+CA 1
+CB 1
+E8 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+C9 1
+E9 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CE 1
+CF 1
+EC 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CD 1
+ED 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+F2 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DB 1
+DC 1
+F9 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DA 1
+FA 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+DD 1
+FD 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+DE 1
+FE 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+122 1
+123 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+59 1
+79 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+1E8 1
+1E9 1
+136 1
+137 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+13B 1
+13C 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+145 1
+146 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+156 1
+157 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+59 1
+69 1
+79 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+653 1
+654 1
+655 1
+670 1
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+651 1
+652 1
+656 1
+657 1
+658 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+64E 1
+26 1
+650 1
+23 1
+64F 1
+25 1
+66A 1
+64B 1
+64D 1
+64C 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+622 1
+627 1
+671 1
+621 1
+623 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+625 1
+624 1
+626 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+674 1
+6FD 1
+672 1
+673 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+689 1
+68A 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A9 1
+643 1
+6A8 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6D5 1
+648 1
+6E5 1
+676 1
+647 1
+6C4 1
+629 1
+6C5 1
+6C0 1
+6C6 1
+6C7 1
+6CC 1
+677 1
+649 1
+6C8 1
+64A 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+6E6 1
+678 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+104 1
+105 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+106 1
+107 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+118 1
+119 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+141 1
+142 1
+29F 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+143 1
+144 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+D6 1
+F2 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15A 1
+15B 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+17D 1
+17E 1
+18D 1
+179 1
+17A 1
+17B 1
+17C 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+4A 1
+69 1
+6A 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+55 1
+56 1
+75 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+102 1
+103 1
+C2 1
+E2 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CF 1
+EC 1
+ED 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CE 1
+EE 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+2E2 1
+DF 1
+15E 1
+15F 1
+218 1
+219 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+164 1
+165 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+162 1
+163 1
+21A 1
+21B 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C4 1
+E4 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D5 1
+D6 1
+F2 1
+F3 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D4 1
+F4 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C5 1
+E5 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+C7 1
+E7 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+11E 1
+11F 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+49 1
+131 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15E 1
+15F 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_bin) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B5 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C386 1
+C387 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C390 1
+C391 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C397 1
+C398 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C39D 1
+C39E 1
+C39F 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C3A6 1
+C3A7 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C3B0 1
+C3B1 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C3B7 1
+C3B8 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C3BD 1
+C3BE 1
+C3BF 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+C48E 1
+C48F 1
+C490 1
+C491 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C4A4 1
+C4A5 1
+C4A6 1
+C4A7 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C4B2 1
+C4B3 1
+C4B4 1
+C4B5 1
+C4B6 1
+C4B7 1
+C4B8 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C589 1
+C58A 1
+C58B 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C592 1
+C593 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C5A6 1
+C5A7 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C5B4 1
+C5B5 1
+C5B6 1
+C5B7 1
+C5B8 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C5BF 1
+C680 1
+C681 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C687 1
+C688 1
+C689 1
+C68A 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C68F 1
+C690 1
+C691 1
+C692 1
+C693 1
+C694 1
+C695 1
+C696 1
+C697 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C69D 1
+C69E 1
+C69F 1
+C6A0 1
+C6A1 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+C6A7 1
+C6A8 1
+C6A9 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+C6AF 1
+C6B0 1
+C6B1 1
+C6B2 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C6BF 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C78D 1
+C78E 1
+C78F 1
+C790 1
+C791 1
+C792 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C79D 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7A2 1
+C7A3 1
+C7A4 1
+C7A5 1
+C7A6 1
+C7A7 1
+C7A8 1
+C7A9 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C7AE 1
+C7AF 1
+C7B0 1
+C7B1 1
+C7B2 1
+C7B3 1
+C7B4 1
+C7B5 1
+C7B6 1
+C7B7 1
+C7B8 1
+C7B9 1
+C7BA 1
+C7BB 1
+C7BC 1
+C7BD 1
+C7BE 1
+C7BF 1
+C880 1
+C881 1
+C882 1
+C883 1
+C884 1
+C885 1
+C886 1
+C887 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C890 1
+C891 1
+C892 1
+C893 1
+C894 1
+C895 1
+C896 1
+C897 1
+C898 1
+C899 1
+C89A 1
+C89B 1
+C89C 1
+C89D 1
+C89E 1
+C89F 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8A6 1
+C8A7 1
+C8A8 1
+C8A9 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+C8B2 1
+C8B3 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C993 1
+C994 1
+C995 1
+C996 1
+C997 1
+C998 1
+C999 1
+C99A 1
+C99B 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A0 1
+C9A1 1
+C9A2 1
+C9A3 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9A8 1
+C9A9 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9AF 1
+C9B0 1
+C9B1 1
+C9B2 1
+C9B3 1
+C9B4 1
+C9B5 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA80 1
+CA81 1
+CA82 1
+CA83 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA88 1
+CA89 1
+CA8A 1
+CA8B 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA92 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE86 1
+CE87 1
+CE88 1
+CE89 1
+CE8A 1
+CE8B 1
+CE8C 1
+CE8D 1
+CE8E 1
+CE8F 1
+CE90 1
+CE91 1
+CE92 1
+CE93 1
+CE94 1
+CE95 1
+CE96 1
+CE97 1
+CE98 1
+CE99 1
+CE9A 1
+CE9B 1
+CE9C 1
+CE9D 1
+CE9E 1
+CE9F 1
+CEA0 1
+CEA1 1
+CEA2 1
+CEA3 1
+CEA4 1
+CEA5 1
+CEA6 1
+CEA7 1
+CEA8 1
+CEA9 1
+CEAA 1
+CEAB 1
+CEAC 1
+CEAD 1
+CEAE 1
+CEAF 1
+CEB0 1
+CEB1 1
+CEB2 1
+CEB3 1
+CEB4 1
+CEB5 1
+CEB6 1
+CEB7 1
+CEB8 1
+CEB9 1
+CEBA 1
+CEBB 1
+CEBC 1
+CEBD 1
+CEBE 1
+CEBF 1
+CF80 1
+CF81 1
+CF82 1
+CF83 1
+CF84 1
+CF85 1
+CF86 1
+CF87 1
+CF88 1
+CF89 1
+CF8A 1
+CF8B 1
+CF8C 1
+CF8D 1
+CF8E 1
+CF8F 1
+CF90 1
+CF91 1
+CF92 1
+CF93 1
+CF94 1
+CF95 1
+CF96 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB0 1
+CFB1 1
+CFB2 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D080 1
+D081 1
+D082 1
+D083 1
+D084 1
+D085 1
+D086 1
+D087 1
+D088 1
+D089 1
+D08A 1
+D08B 1
+D08C 1
+D08D 1
+D08E 1
+D08F 1
+D090 1
+D091 1
+D092 1
+D093 1
+D094 1
+D095 1
+D096 1
+D097 1
+D098 1
+D099 1
+D09A 1
+D09B 1
+D09C 1
+D09D 1
+D09E 1
+D09F 1
+D0A0 1
+D0A1 1
+D0A2 1
+D0A3 1
+D0A4 1
+D0A5 1
+D0A6 1
+D0A7 1
+D0A8 1
+D0A9 1
+D0AA 1
+D0AB 1
+D0AC 1
+D0AD 1
+D0AE 1
+D0AF 1
+D0B0 1
+D0B1 1
+D0B2 1
+D0B3 1
+D0B4 1
+D0B5 1
+D0B6 1
+D0B7 1
+D0B8 1
+D0B9 1
+D0BA 1
+D0BB 1
+D0BC 1
+D0BD 1
+D0BE 1
+D0BF 1
+D180 1
+D181 1
+D182 1
+D183 1
+D184 1
+D185 1
+D186 1
+D187 1
+D188 1
+D189 1
+D18A 1
+D18B 1
+D18C 1
+D18D 1
+D18E 1
+D18F 1
+D190 1
+D191 1
+D192 1
+D193 1
+D194 1
+D195 1
+D196 1
+D197 1
+D198 1
+D199 1
+D19A 1
+D19B 1
+D19C 1
+D19D 1
+D19E 1
+D19F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D381 1
+D382 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D390 1
+D391 1
+D392 1
+D393 1
+D394 1
+D395 1
+D396 1
+D397 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D39C 1
+D39D 1
+D39E 1
+D39F 1
+D3A0 1
+D3A1 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3AC 1
+D3AD 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D3B4 1
+D3B5 1
+D3B6 1
+D3B7 1
+D3B8 1
+D3B9 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D4B2 1
+D4B3 1
+D4B4 1
+D4B5 1
+D4B6 1
+D4B7 1
+D4B8 1
+D4B9 1
+D4BA 1
+D4BB 1
+D4BC 1
+D4BD 1
+D4BE 1
+D4BF 1
+D580 1
+D581 1
+D582 1
+D583 1
+D584 1
+D585 1
+D586 1
+D587 1
+D588 1
+D589 1
+D58A 1
+D58B 1
+D58C 1
+D58D 1
+D58E 1
+D58F 1
+D590 1
+D591 1
+D592 1
+D593 1
+D594 1
+D595 1
+D596 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D5A1 1
+D5A2 1
+D5A3 1
+D5A4 1
+D5A5 1
+D5A6 1
+D5A7 1
+D5A8 1
+D5A9 1
+D5AA 1
+D5AB 1
+D5AC 1
+D5AD 1
+D5AE 1
+D5AF 1
+D5B0 1
+D5B1 1
+D5B2 1
+D5B3 1
+D5B4 1
+D5B5 1
+D5B6 1
+D5B7 1
+D5B8 1
+D5B9 1
+D5BA 1
+D5BB 1
+D5BC 1
+D5BD 1
+D5BE 1
+D5BF 1
+D680 1
+D681 1
+D682 1
+D683 1
+D684 1
+D685 1
+D686 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_czech_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C598 1
+C599 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_danish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B0 1
+C5B1 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C590 1
+C591 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_estonian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C3B2 1
+C3B3 1
+C3B4 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+C395 1
+C3B5 1
+C384 1
+C3A4 1
+C396 1
+C3B6 1
+C39C 1
+C3BC 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+42 1
+62 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+44 1
+64 1
+C48E 1
+C48F 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+46 1
+66 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+4D 1
+6D 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+4F 1
+6F 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+56 1
+76 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+58 1
+78 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C390 1
+C3B0 1
+C397 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C39E 1
+C3BE 1
+C39F 1
+C3B7 1
+C490 1
+C491 1
+C4A6 1
+C4A7 1
+C4B2 1
+C4B3 1
+C4B8 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C589 1
+C58A 1
+C58B 1
+C592 1
+C593 1
+C5A6 1
+C5A7 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C994 1
+C687 1
+C688 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C691 1
+C692 1
+C693 1
+C9A0 1
+C694 1
+C9A3 1
+C696 1
+C9A9 1
+C697 1
+C9A8 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C9AF 1
+C69D 1
+C9B2 1
+C69E 1
+C69F 1
+C9B5 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+CA80 1
+C6A7 1
+C6A8 1
+C6A9 1
+CA83 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C6B1 1
+CA8A 1
+C6B2 1
+CA8B 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C7A4 1
+C7A5 1
+C7B1 1
+C7B2 1
+C7B3 1
+C695 1
+C7B6 1
+C6BF 1
+C7B7 1
+C89C 1
+C89D 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C995 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A1 1
+C9A2 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9B0 1
+C9B1 1
+C9B3 1
+C9B4 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CA82 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA89 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE87 1
+CE8B 1
+CE8D 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CD85 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CE9A 1
+CEBA 1
+CFB0 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA2 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CF8F 1
+CF92 1
+CF93 1
+CF94 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D082 1
+D192 1
+D084 1
+D194 1
+D085 1
+D195 1
+D086 1
+D087 1
+D196 1
+D197 1
+D088 1
+D198 1
+D089 1
+D199 1
+D08A 1
+D19A 1
+D08B 1
+D19B 1
+D08F 1
+D19F 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D083 1
+D093 1
+D0B3 1
+D193 1
+D094 1
+D0B4 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D097 1
+D0B7 1
+D39E 1
+D39F 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D099 1
+D0B9 1
+D08C 1
+D09A 1
+D0BA 1
+D19C 1
+D09B 1
+D0BB 1
+D09C 1
+D0BC 1
+D09D 1
+D0BD 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D09F 1
+D0BF 1
+D0A0 1
+D180 1
+D0A1 1
+D181 1
+D0A2 1
+D182 1
+D08E 1
+D0A3 1
+D183 1
+D19E 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D0A6 1
+D186 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D394 1
+D395 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D3A0 1
+D3A1 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_hungarian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C590 1
+C591 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+C5B0 1
+C5B1 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_icelandic_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C382 1
+C383 1
+C3A0 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C381 1
+C3A1 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C390 1
+C3B0 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+45 1
+65 1
+C388 1
+C38A 1
+C38B 1
+C3A8 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C389 1
+C3A9 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38E 1
+C38F 1
+C3AC 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38D 1
+C3AD 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C3B2 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39B 1
+C39C 1
+C3B9 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39A 1
+C3BA 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+C39D 1
+C3BD 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C39E 1
+C3BE 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_latvian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C4A2 1
+C4A3 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+59 1
+79 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C7A8 1
+C7A9 1
+C4B6 1
+C4B7 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C4BB 1
+C4BC 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C585 1
+C586 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C596 1
+C597 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_lithuanian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+59 1
+69 1
+79 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_persian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+D993 1
+D994 1
+D995 1
+D9B0 1
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D991 1
+D992 1
+D996 1
+D997 1
+D998 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+D98E 1
+26 1
+D990 1
+23 1
+D98F 1
+25 1
+D9AA 1
+D98B 1
+D98D 1
+D98C 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+D8A2 1
+D8A7 1
+D9B1 1
+D8A1 1
+D8A3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+D8A5 1
+D8A4 1
+D8A6 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D9B4 1
+DBBD 1
+D9B2 1
+D9B3 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+DA89 1
+DA8A 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA9 1
+D983 1
+DAA8 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+D987 1
+DB84 1
+D8A9 1
+DB85 1
+DB80 1
+DB86 1
+DB87 1
+DB8C 1
+D9B7 1
+D989 1
+DB88 1
+D98A 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+DBA6 1
+D9B8 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_polish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C484 1
+C485 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C486 1
+C487 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C498 1
+C499 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C581 1
+C582 1
+CA9F 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C583 1
+C584 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59A 1
+C59B 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+C68D 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_roman_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+4A 1
+69 1
+6A 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+55 1
+56 1
+75 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_romanian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C482 1
+C483 1
+C382 1
+C3A2 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38E 1
+C3AE 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+C898 1
+C899 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A4 1
+C5A5 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A2 1
+C5A3 1
+C89A 1
+C89B 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovak_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C384 1
+C3A4 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C394 1
+C3B4 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovenian_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish2_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_swedish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C385 1
+C3A5 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_turkish_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C387 1
+C3A7 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C49E 1
+C49F 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+49 1
+C4B1 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci) ENGINE=Memory 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 MEMORY # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
diff --git a/mysql-test/suite/funcs_2/r/myisam_charset.result b/mysql-test/suite/funcs_2/r/myisam_charset.result
new file mode 100644
index 00000000000..698cce1be37
--- /dev/null
+++ b/mysql-test/suite/funcs_2/r/myisam_charset.result
@@ -0,0 +1,119156 @@
+DROP TABLE IF EXISTS test.t1;
+SET NAMES armscii8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES armscii8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ascii;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ascii;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES big5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES big5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_chinese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES binary;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET binary) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_croatian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+DF 1
+8A 1
+9A 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8F 1
+9F 1
+AF 1
+BF 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_czech_cs) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+80 1
+81 1
+83 1
+88 1
+90 1
+98 1
+B6 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+A5 1
+B9 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+E9 1
+CC 1
+EC 1
+CB 1
+EB 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+C5 1
+E5 1
+BC 1
+BE 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+D6 1
+F6 1
+D5 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+E0 1
+D8 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+8A 1
+9A 1
+DF 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+DA 1
+FA 1
+D9 1
+F9 1
+DC 1
+FC 1
+DB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AF 1
+BF 1
+8F 1
+9F 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+82 1
+84 1
+85 1
+86 1
+87 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1250;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A7 1
+AA 1
+BA 1
+DF 1
+8A 1
+8C 1
+9A 1
+9C 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8E 1
+8F 1
+9E 1
+9F 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_cs) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1251;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+C5 1
+E5 1
+AA 1
+BA 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1256;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1256;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+E0 1
+E2 1
+42 1
+62 1
+43 1
+63 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+83 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+F4 1
+8C 1
+9C 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+F9 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+81 1
+CB 1
+CC 1
+8D 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+8E 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+CA 1
+D9 1
+DA 1
+DB 1
+DD 1
+DE 1
+DF 1
+90 1
+E1 1
+E3 1
+E4 1
+E5 1
+E6 1
+EC 1
+ED 1
+DC 1
+F0 1
+F1 1
+F2 1
+F3 1
+F5 1
+F6 1
+F8 1
+FA 1
+A1 1
+BA 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8F 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+C0 1
+D7 1
+F7 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+AF 1
+BF 1
+C0 1
+C2 1
+C4 1
+C5 1
+E0 1
+E2 1
+E4 1
+E5 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+C8 1
+E3 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+C7 1
+C9 1
+CB 1
+E6 1
+E7 1
+E9 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+C1 1
+CE 1
+E1 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+D9 1
+EF 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+A8 1
+B8 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+D0 1
+DA 1
+DF 1
+F0 1
+FA 1
+54 1
+74 1
+55 1
+75 1
+D8 1
+DB 1
+DC 1
+F8 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+DD 1
+DE 1
+EA 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp1257;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_lithuanian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+42 1
+62 1
+43 1
+63 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+E6 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+59 1
+79 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+D0 1
+F0 1
+54 1
+74 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+5A 1
+7A 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C2 1
+C3 1
+C4 1
+C5 1
+C7 1
+C9 1
+CA 1
+CC 1
+CD 1
+CE 1
+CF 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D9 1
+DA 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E2 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+EA 1
+EC 1
+ED 1
+EE 1
+EF 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F9 1
+FA 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp850;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp850;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+85 1
+B7 1
+A0 1
+B5 1
+83 1
+B6 1
+C6 1
+C7 1
+84 1
+8E 1
+86 1
+8F 1
+91 1
+92 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+D0 1
+D1 1
+45 1
+65 1
+8A 1
+D4 1
+82 1
+90 1
+88 1
+D2 1
+89 1
+D3 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8D 1
+DE 1
+A1 1
+D6 1
+8C 1
+D7 1
+8B 1
+D8 1
+D5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+95 1
+E3 1
+A2 1
+E0 1
+93 1
+E2 1
+E4 1
+E5 1
+94 1
+99 1
+9B 1
+9D 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+E1 1
+54 1
+74 1
+55 1
+75 1
+97 1
+EB 1
+A3 1
+E9 1
+96 1
+EA 1
+81 1
+9A 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+98 1
+5A 1
+7A 1
+E7 1
+E8 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+F7 1
+9E 1
+9F 1
+F6 1
+F2 1
+C4 1
+B3 1
+DA 1
+BF 1
+C0 1
+D9 1
+C3 1
+B4 1
+C2 1
+C1 1
+C5 1
+CD 1
+AD 1
+BA 1
+C9 1
+BB 1
+C8 1
+BC 1
+CC 1
+B9 1
+CB 1
+CA 1
+CE 1
+DF 1
+DC 1
+DB 1
+B0 1
+B1 1
+B2 1
+BD 1
+9C 1
+CF 1
+BE 1
+DD 1
+F5 1
+F9 1
+B8 1
+A6 1
+AE 1
+AA 1
+F0 1
+A9 1
+EE 1
+F8 1
+F1 1
+FD 1
+FC 1
+EF 1
+E6 1
+F4 1
+FA 1
+FB 1
+A7 1
+AF 1
+AC 1
+AB 1
+F3 1
+A8 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp852;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp852;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+83 1
+84 1
+8E 1
+A0 1
+A4 1
+A5 1
+B5 1
+B6 1
+C6 1
+C7 1
+42 1
+62 1
+43 1
+63 1
+80 1
+86 1
+87 1
+8F 1
+9F 1
+AC 1
+44 1
+64 1
+D0 1
+D1 1
+D2 1
+D4 1
+45 1
+65 1
+82 1
+89 1
+90 1
+A8 1
+A9 1
+B7 1
+D3 1
+D8 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+A1 1
+D6 1
+D7 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+88 1
+91 1
+92 1
+95 1
+96 1
+9D 1
+4D 1
+6D 1
+4E 1
+6E 1
+D5 1
+E3 1
+E4 1
+E5 1
+4F 1
+6F 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A2 1
+E0 1
+E2 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+E8 1
+EA 1
+FC 1
+FD 1
+53 1
+73 1
+97 1
+98 1
+AD 1
+B8 1
+E6 1
+E7 1
+E1 1
+54 1
+74 1
+9B 1
+9C 1
+DD 1
+EE 1
+55 1
+75 1
+81 1
+85 1
+9A 1
+A3 1
+DE 1
+E9 1
+EB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+5A 1
+7A 1
+8D 1
+A6 1
+A7 1
+AB 1
+BD 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+9E 1
+AA 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B9 1
+BA 1
+BB 1
+BC 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D9 1
+DA 1
+DB 1
+DC 1
+DF 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp866;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp866;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+80 1
+A0 1
+81 1
+A1 1
+82 1
+A2 1
+83 1
+A3 1
+84 1
+A4 1
+85 1
+A5 1
+F0 1
+F1 1
+F2 1
+F3 1
+86 1
+A6 1
+87 1
+A7 1
+88 1
+A8 1
+F4 1
+F5 1
+89 1
+A9 1
+8A 1
+AA 1
+8B 1
+AB 1
+8C 1
+AC 1
+8D 1
+AD 1
+8E 1
+AE 1
+8F 1
+AF 1
+90 1
+E0 1
+91 1
+E1 1
+92 1
+E2 1
+93 1
+E3 1
+F6 1
+F7 1
+94 1
+E4 1
+95 1
+E5 1
+96 1
+E6 1
+97 1
+E7 1
+98 1
+E8 1
+99 1
+E9 1
+9A 1
+EA 1
+9B 1
+EB 1
+9C 1
+EC 1
+9D 1
+ED 1
+9E 1
+EE 1
+9F 1
+EF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+B0 1
+B1 1
+B2 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp932;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES cp932;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_japanese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES dec8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES dec8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_swedish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES eucjpms;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES eucjpms;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES euckr;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES euckr;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_korean_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gb2312;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gb2312;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gbk;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES gbk;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_chinese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES geostd8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES geostd8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES greek;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES greek;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B7 1
+BB 1
+BD 1
+B6 1
+C1 1
+DC 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+B8 1
+C5 1
+DD 1
+E5 1
+C6 1
+E6 1
+B9 1
+C7 1
+DE 1
+E7 1
+C8 1
+E8 1
+BA 1
+C0 1
+C9 1
+DA 1
+DF 1
+E9 1
+FA 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+BC 1
+CF 1
+EF 1
+FC 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+D3 1
+F2 1
+F3 1
+D4 1
+F4 1
+BE 1
+D5 1
+DB 1
+E0 1
+F5 1
+FB 1
+FD 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+BF 1
+D9 1
+F9 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hebrew;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hebrew;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+D7 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hp8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES hp8;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_english_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES keybcs2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES keybcs2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+84 1
+8E 1
+8F 1
+A0 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+83 1
+85 1
+45 1
+65 1
+82 1
+88 1
+89 1
+90 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8B 1
+A1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+8A 1
+8C 1
+8D 1
+9C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+93 1
+94 1
+95 1
+99 1
+A2 1
+A7 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+9E 1
+A9 1
+AA 1
+AB 1
+53 1
+73 1
+9B 1
+A8 1
+E1 1
+54 1
+74 1
+86 1
+9F 1
+55 1
+75 1
+81 1
+96 1
+97 1
+9A 1
+A3 1
+A6 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+98 1
+9D 1
+5A 1
+7A 1
+91 1
+92 1
+E0 1
+EB 1
+EE 1
+E2 1
+EA 1
+E8 1
+ED 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E6 1
+EC 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8r;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8r;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+C4 1
+E4 1
+C5 1
+E5 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8u;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES koi8u;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+AD 1
+BD 1
+C4 1
+E4 1
+C5 1
+E5 1
+A4 1
+B4 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+A6 1
+B6 1
+A7 1
+B7 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A5 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B5 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_danish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C4 1
+C6 1
+E4 1
+E6 1
+5C 1
+D6 1
+D8 1
+F6 1
+F8 1
+5D 1
+C5 1
+E5 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_cs) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german1_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D0 1
+F0 1
+D7 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german2_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+C6 1
+E6 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_spanish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin1;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_swedish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_croatian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+A5 1
+B3 1
+B5 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A6 1
+AA 1
+B6 1
+BA 1
+DF 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+AF 1
+BC 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_czech_cs) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+2C 1
+3B 1
+3F 1
+21 1
+3A 1
+22 1
+60 1
+27 1
+2F 1
+7C 1
+5C 1
+28 1
+29 1
+5B 1
+5D 1
+3C 1
+3E 1
+7B 1
+7D 1
+40 1
+26 1
+25 1
+23 1
+5E 1
+5F 1
+7E 1
+3D 1
+2B 1
+2A 1
+2D 1
+D7 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+24 1
+7F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+DF 1
+F7 1
+61 1
+41 1
+E1 1
+C1 1
+E2 1
+C2 1
+E4 1
+C4 1
+E3 1
+C3 1
+B1 1
+A1 1
+62 1
+42 1
+63 1
+43 1
+E8 1
+C8 1
+E6 1
+C6 1
+E7 1
+C7 1
+64 1
+44 1
+EF 1
+CF 1
+F0 1
+D0 1
+65 1
+45 1
+E9 1
+C9 1
+EC 1
+CC 1
+EB 1
+CB 1
+EA 1
+CA 1
+66 1
+46 1
+67 1
+47 1
+68 1
+48 1
+69 1
+49 1
+ED 1
+CD 1
+EE 1
+CE 1
+6A 1
+4A 1
+6B 1
+4B 1
+6C 1
+4C 1
+E5 1
+C5 1
+B5 1
+A5 1
+B3 1
+A3 1
+6D 1
+4D 1
+6E 1
+4E 1
+F2 1
+D2 1
+F1 1
+D1 1
+6F 1
+4F 1
+F3 1
+D3 1
+F4 1
+D4 1
+F6 1
+D6 1
+F5 1
+D5 1
+70 1
+50 1
+71 1
+51 1
+72 1
+52 1
+E0 1
+C0 1
+F8 1
+D8 1
+73 1
+53 1
+B9 1
+A9 1
+B6 1
+A6 1
+BA 1
+AA 1
+74 1
+54 1
+BB 1
+AB 1
+DE 1
+75 1
+55 1
+FA 1
+DA 1
+F9 1
+D9 1
+FC 1
+DC 1
+FB 1
+DB 1
+76 1
+56 1
+77 1
+57 1
+78 1
+58 1
+79 1
+59 1
+FD 1
+DD 1
+7A 1
+5A 1
+BE 1
+AE 1
+BC 1
+AC 1
+BF 1
+AF 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C6 1
+E6 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+C9 1
+CB 1
+CC 1
+E9 1
+EB 1
+EC 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A5 1
+B5 1
+C5 1
+E5 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D2 1
+F2 1
+D1 1
+F1 1
+4F 1
+6F 1
+D4 1
+D5 1
+D6 1
+F4 1
+F5 1
+F6 1
+D3 1
+F3 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+AA 1
+BA 1
+A6 1
+B6 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AF 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin2;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_hungarian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+80 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8E 1
+91 1
+92 1
+9B 1
+9C 1
+9D 1
+9E 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+8F 1
+A0 1
+B5 1
+C1 1
+E1 1
+B1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C8 1
+E8 1
+C7 1
+E7 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+82 1
+90 1
+C9 1
+E9 1
+CC 1
+EC 1
+CA 1
+EA 1
+CB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+8D 1
+A1 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+B3 1
+A4 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+95 1
+A2 1
+D3 1
+E0 1
+F3 1
+D4 1
+F4 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A7 1
+D5 1
+D6 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+F8 1
+53 1
+73 1
+A5 1
+B6 1
+A9 1
+B9 1
+AA 1
+BA 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+97 1
+A3 1
+DA 1
+FA 1
+D9 1
+F9 1
+81 1
+96 1
+98 1
+9A 1
+DB 1
+DC 1
+EB 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AE 1
+BE 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+9F 1
+A6 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin5;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_turkish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+D0 1
+F0 1
+48 1
+68 1
+49 1
+FD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+DD 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F8 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+DE 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_estonian_cs) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+7F 1
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+EF 1
+D9 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+A8 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+58 1
+78 1
+59 1
+79 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+A8 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+74 1
+54 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES latin7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_cs) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+A8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macce;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macce;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+82 1
+84 1
+87 1
+88 1
+8A 1
+E7 1
+42 1
+62 1
+43 1
+63 1
+89 1
+8B 1
+8C 1
+8D 1
+44 1
+64 1
+91 1
+93 1
+45 1
+65 1
+83 1
+8E 1
+94 1
+95 1
+96 1
+98 1
+9D 1
+9E 1
+A2 1
+AB 1
+46 1
+66 1
+47 1
+67 1
+AE 1
+48 1
+68 1
+49 1
+69 1
+92 1
+AF 1
+B0 1
+B1 1
+B4 1
+EA 1
+4A 1
+6A 1
+4B 1
+6B 1
+B5 1
+FA 1
+4C 1
+6C 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+FC 1
+4D 1
+4E 1
+6D 1
+6E 1
+BF 1
+C0 1
+C1 1
+C4 1
+C5 1
+CB 1
+4F 1
+6F 1
+85 1
+97 1
+99 1
+9A 1
+9B 1
+CC 1
+CD 1
+CE 1
+CF 1
+D8 1
+EE 1
+EF 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+D9 1
+DA 1
+DB 1
+DE 1
+DF 1
+E0 1
+53 1
+73 1
+A7 1
+E1 1
+E4 1
+E5 1
+E6 1
+54 1
+74 1
+E8 1
+E9 1
+55 1
+75 1
+86 1
+9C 1
+9F 1
+ED 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+F8 1
+F9 1
+5A 1
+7A 1
+8F 1
+90 1
+EB 1
+EC 1
+FB 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AC 1
+AD 1
+B2 1
+B3 1
+B6 1
+B7 1
+C2 1
+C3 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DC 1
+DD 1
+E2 1
+E3 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macroman;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES macroman;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+CB 1
+CC 1
+E5 1
+E7 1
+AE 1
+BE 1
+42 1
+62 1
+43 1
+63 1
+82 1
+8D 1
+44 1
+64 1
+45 1
+65 1
+83 1
+8E 1
+8F 1
+90 1
+91 1
+E6 1
+E8 1
+E9 1
+46 1
+66 1
+C4 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+92 1
+93 1
+94 1
+95 1
+EA 1
+EB 1
+EC 1
+ED 1
+F5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+84 1
+96 1
+4F 1
+6F 1
+85 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+AF 1
+BF 1
+CD 1
+EE 1
+EF 1
+F1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+A7 1
+54 1
+74 1
+55 1
+75 1
+86 1
+9C 1
+9D 1
+9E 1
+9F 1
+F2 1
+F3 1
+F4 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+D8 1
+D9 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+F0 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES sjis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES sjis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_japanese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES swe7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES swe7;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_swedish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+40 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+5E 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+7D 1
+5B 1
+7B 1
+5C 1
+7C 1
+5F 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES tis620;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES tis620;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_thai_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+EC 1
+F9 1
+E7 1
+FA 1
+E8 1
+FB 1
+E9 1
+FC 1
+EA 1
+FD 1
+EB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ujis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+SET NAMES ujis;
+CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_japanese_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+FE 1
+FF 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+10E 1
+10F 1
+110 1
+111 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+124 1
+125 1
+126 1
+127 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+132 1
+133 1
+134 1
+135 1
+136 1
+137 1
+138 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+13F 1
+140 1
+141 1
+142 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+149 1
+14A 1
+14B 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+152 1
+153 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+162 1
+163 1
+164 1
+165 1
+166 1
+167 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+174 1
+175 1
+176 1
+177 1
+178 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+17F 1
+180 1
+181 1
+182 1
+183 1
+184 1
+185 1
+186 1
+187 1
+188 1
+189 1
+18A 1
+18B 1
+18C 1
+18D 1
+18E 1
+18F 1
+190 1
+191 1
+192 1
+193 1
+194 1
+195 1
+196 1
+197 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+19D 1
+19E 1
+19F 1
+1A0 1
+1A1 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+1A7 1
+1A8 1
+1A9 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+1AF 1
+1B0 1
+1B1 1
+1B2 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1BF 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1CD 1
+1CE 1
+1CF 1
+1D0 1
+1D1 1
+1D2 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+1DD 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1E2 1
+1E3 1
+1E4 1
+1E5 1
+1E6 1
+1E7 1
+1E8 1
+1E9 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+1EE 1
+1EF 1
+1F0 1
+1F1 1
+1F2 1
+1F3 1
+1F4 1
+1F5 1
+1F6 1
+1F7 1
+1F8 1
+1F9 1
+1FA 1
+1FB 1
+1FC 1
+1FD 1
+1FE 1
+1FF 1
+200 1
+201 1
+202 1
+203 1
+204 1
+205 1
+206 1
+207 1
+208 1
+209 1
+20A 1
+20B 1
+20C 1
+20D 1
+20E 1
+20F 1
+210 1
+211 1
+212 1
+213 1
+214 1
+215 1
+216 1
+217 1
+218 1
+219 1
+21A 1
+21B 1
+21C 1
+21D 1
+21E 1
+21F 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+226 1
+227 1
+228 1
+229 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+232 1
+233 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+253 1
+254 1
+255 1
+256 1
+257 1
+258 1
+259 1
+25A 1
+25B 1
+25C 1
+25D 1
+25E 1
+25F 1
+260 1
+261 1
+262 1
+263 1
+264 1
+265 1
+266 1
+267 1
+268 1
+269 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+26F 1
+270 1
+271 1
+272 1
+273 1
+274 1
+275 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+280 1
+281 1
+282 1
+283 1
+284 1
+285 1
+286 1
+287 1
+288 1
+289 1
+28A 1
+28B 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+292 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+386 1
+387 1
+388 1
+389 1
+38A 1
+38B 1
+38C 1
+38D 1
+38E 1
+38F 1
+390 1
+391 1
+392 1
+393 1
+394 1
+395 1
+396 1
+397 1
+398 1
+399 1
+39A 1
+39B 1
+39C 1
+39D 1
+39E 1
+39F 1
+3A0 1
+3A1 1
+3A2 1
+3A3 1
+3A4 1
+3A5 1
+3A6 1
+3A7 1
+3A8 1
+3A9 1
+3AA 1
+3AB 1
+3AC 1
+3AD 1
+3AE 1
+3AF 1
+3B0 1
+3B1 1
+3B2 1
+3B3 1
+3B4 1
+3B5 1
+3B6 1
+3B7 1
+3B8 1
+3B9 1
+3BA 1
+3BB 1
+3BC 1
+3BD 1
+3BE 1
+3BF 1
+3C0 1
+3C1 1
+3C2 1
+3C3 1
+3C4 1
+3C5 1
+3C6 1
+3C7 1
+3C8 1
+3C9 1
+3CA 1
+3CB 1
+3CC 1
+3CD 1
+3CE 1
+3CF 1
+3D0 1
+3D1 1
+3D2 1
+3D3 1
+3D4 1
+3D5 1
+3D6 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F0 1
+3F1 1
+3F2 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+400 1
+401 1
+402 1
+403 1
+404 1
+405 1
+406 1
+407 1
+408 1
+409 1
+40A 1
+40B 1
+40C 1
+40D 1
+40E 1
+40F 1
+410 1
+411 1
+412 1
+413 1
+414 1
+415 1
+416 1
+417 1
+418 1
+419 1
+41A 1
+41B 1
+41C 1
+41D 1
+41E 1
+41F 1
+420 1
+421 1
+422 1
+423 1
+424 1
+425 1
+426 1
+427 1
+428 1
+429 1
+42A 1
+42B 1
+42C 1
+42D 1
+42E 1
+42F 1
+430 1
+431 1
+432 1
+433 1
+434 1
+435 1
+436 1
+437 1
+438 1
+439 1
+43A 1
+43B 1
+43C 1
+43D 1
+43E 1
+43F 1
+440 1
+441 1
+442 1
+443 1
+444 1
+445 1
+446 1
+447 1
+448 1
+449 1
+44A 1
+44B 1
+44C 1
+44D 1
+44E 1
+44F 1
+450 1
+451 1
+452 1
+453 1
+454 1
+455 1
+456 1
+457 1
+458 1
+459 1
+45A 1
+45B 1
+45C 1
+45D 1
+45E 1
+45F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C1 1
+4C2 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D4 1
+4D5 1
+4D6 1
+4D7 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4DC 1
+4DD 1
+4DE 1
+4DF 1
+4E0 1
+4E1 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4EC 1
+4ED 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4F4 1
+4F5 1
+4F6 1
+4F7 1
+4F8 1
+4F9 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+532 1
+533 1
+534 1
+535 1
+536 1
+537 1
+538 1
+539 1
+53A 1
+53B 1
+53C 1
+53D 1
+53E 1
+53F 1
+540 1
+541 1
+542 1
+543 1
+544 1
+545 1
+546 1
+547 1
+548 1
+549 1
+54A 1
+54B 1
+54C 1
+54D 1
+54E 1
+54F 1
+550 1
+551 1
+552 1
+553 1
+554 1
+555 1
+556 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+561 1
+562 1
+563 1
+564 1
+565 1
+566 1
+567 1
+568 1
+569 1
+56A 1
+56B 1
+56C 1
+56D 1
+56E 1
+56F 1
+570 1
+571 1
+572 1
+573 1
+574 1
+575 1
+576 1
+577 1
+578 1
+579 1
+57A 1
+57B 1
+57C 1
+57D 1
+57E 1
+57F 1
+580 1
+581 1
+582 1
+583 1
+584 1
+585 1
+586 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+158 1
+159 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+170 1
+171 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+150 1
+151 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+F2 1
+F3 1
+F4 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+5A 1
+7A 1
+17D 1
+17E 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+44 1
+64 1
+10E 1
+10F 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+46 1
+66 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+56 1
+76 1
+57 1
+77 1
+174 1
+175 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+D0 1
+F0 1
+D7 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+DE 1
+FE 1
+DF 1
+F7 1
+110 1
+111 1
+126 1
+127 1
+132 1
+133 1
+138 1
+13F 1
+140 1
+141 1
+142 1
+149 1
+14A 1
+14B 1
+152 1
+153 1
+166 1
+167 1
+180 1
+181 1
+253 1
+182 1
+183 1
+184 1
+185 1
+186 1
+254 1
+187 1
+188 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+18D 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+191 1
+192 1
+193 1
+260 1
+194 1
+263 1
+196 1
+269 1
+197 1
+268 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+26F 1
+19D 1
+272 1
+19E 1
+19F 1
+275 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+280 1
+1A7 1
+1A8 1
+1A9 1
+283 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+1B1 1
+28A 1
+1B2 1
+28B 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1E4 1
+1E5 1
+1F1 1
+1F2 1
+1F3 1
+195 1
+1F6 1
+1BF 1
+1F7 1
+21C 1
+21D 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+255 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+25F 1
+261 1
+262 1
+264 1
+265 1
+266 1
+267 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+270 1
+271 1
+273 1
+274 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+282 1
+284 1
+285 1
+286 1
+287 1
+289 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+387 1
+38B 1
+38D 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+345 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+39A 1
+3BA 1
+3F0 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3A1 1
+3C1 1
+3F1 1
+3A2 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3CF 1
+3D2 1
+3D3 1
+3D4 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+402 1
+452 1
+404 1
+454 1
+405 1
+455 1
+406 1
+407 1
+456 1
+457 1
+408 1
+458 1
+409 1
+459 1
+40A 1
+45A 1
+40B 1
+45B 1
+40F 1
+45F 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+411 1
+431 1
+412 1
+432 1
+403 1
+413 1
+433 1
+453 1
+414 1
+434 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+417 1
+437 1
+4DE 1
+4DF 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+419 1
+439 1
+40C 1
+41A 1
+43A 1
+45C 1
+41B 1
+43B 1
+41C 1
+43C 1
+41D 1
+43D 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+41F 1
+43F 1
+420 1
+440 1
+421 1
+441 1
+422 1
+442 1
+40E 1
+423 1
+443 1
+45E 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+424 1
+444 1
+425 1
+445 1
+426 1
+446 1
+427 1
+447 1
+4F4 1
+4F5 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D4 1
+4D5 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4E0 1
+4E1 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+150 1
+151 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+170 1
+171 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C2 1
+C3 1
+E0 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C1 1
+E1 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+D0 1
+F0 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+45 1
+65 1
+C8 1
+CA 1
+CB 1
+E8 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+C9 1
+E9 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CE 1
+CF 1
+EC 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CD 1
+ED 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+F2 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DB 1
+DC 1
+F9 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DA 1
+FA 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+DD 1
+FD 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+DE 1
+FE 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+122 1
+123 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+59 1
+79 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+1E8 1
+1E9 1
+136 1
+137 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+13B 1
+13C 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+145 1
+146 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+156 1
+157 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+59 1
+69 1
+79 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+653 1
+654 1
+655 1
+670 1
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+651 1
+652 1
+656 1
+657 1
+658 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+64E 1
+26 1
+650 1
+23 1
+64F 1
+25 1
+66A 1
+64B 1
+64D 1
+64C 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+622 1
+627 1
+671 1
+621 1
+623 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+625 1
+624 1
+626 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+674 1
+6FD 1
+672 1
+673 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+689 1
+68A 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A9 1
+643 1
+6A8 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6D5 1
+648 1
+6E5 1
+676 1
+647 1
+6C4 1
+629 1
+6C5 1
+6C0 1
+6C6 1
+6C7 1
+6CC 1
+677 1
+649 1
+6C8 1
+64A 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+6E6 1
+678 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+104 1
+105 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+106 1
+107 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+118 1
+119 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+141 1
+142 1
+29F 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+143 1
+144 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+D6 1
+F2 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15A 1
+15B 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+17D 1
+17E 1
+18D 1
+179 1
+17A 1
+17B 1
+17C 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+4A 1
+69 1
+6A 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+55 1
+56 1
+75 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+102 1
+103 1
+C2 1
+E2 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CF 1
+EC 1
+ED 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CE 1
+EE 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+2E2 1
+DF 1
+15E 1
+15F 1
+218 1
+219 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+164 1
+165 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+162 1
+163 1
+21A 1
+21B 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C4 1
+E4 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D5 1
+D6 1
+F2 1
+F3 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D4 1
+F4 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C5 1
+E5 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+C7 1
+E7 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+11E 1
+11F 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+49 1
+131 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15E 1
+15F 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+SET NAMES utf8;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_bin) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B5 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C386 1
+C387 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C390 1
+C391 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C397 1
+C398 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C39D 1
+C39E 1
+C39F 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C3A6 1
+C3A7 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C3B0 1
+C3B1 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C3B7 1
+C3B8 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C3BD 1
+C3BE 1
+C3BF 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+C48E 1
+C48F 1
+C490 1
+C491 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C4A4 1
+C4A5 1
+C4A6 1
+C4A7 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C4B2 1
+C4B3 1
+C4B4 1
+C4B5 1
+C4B6 1
+C4B7 1
+C4B8 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C589 1
+C58A 1
+C58B 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C592 1
+C593 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C5A6 1
+C5A7 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C5B4 1
+C5B5 1
+C5B6 1
+C5B7 1
+C5B8 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C5BF 1
+C680 1
+C681 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C687 1
+C688 1
+C689 1
+C68A 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C68F 1
+C690 1
+C691 1
+C692 1
+C693 1
+C694 1
+C695 1
+C696 1
+C697 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C69D 1
+C69E 1
+C69F 1
+C6A0 1
+C6A1 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+C6A7 1
+C6A8 1
+C6A9 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+C6AF 1
+C6B0 1
+C6B1 1
+C6B2 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C6BF 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C78D 1
+C78E 1
+C78F 1
+C790 1
+C791 1
+C792 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C79D 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7A2 1
+C7A3 1
+C7A4 1
+C7A5 1
+C7A6 1
+C7A7 1
+C7A8 1
+C7A9 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C7AE 1
+C7AF 1
+C7B0 1
+C7B1 1
+C7B2 1
+C7B3 1
+C7B4 1
+C7B5 1
+C7B6 1
+C7B7 1
+C7B8 1
+C7B9 1
+C7BA 1
+C7BB 1
+C7BC 1
+C7BD 1
+C7BE 1
+C7BF 1
+C880 1
+C881 1
+C882 1
+C883 1
+C884 1
+C885 1
+C886 1
+C887 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C890 1
+C891 1
+C892 1
+C893 1
+C894 1
+C895 1
+C896 1
+C897 1
+C898 1
+C899 1
+C89A 1
+C89B 1
+C89C 1
+C89D 1
+C89E 1
+C89F 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8A6 1
+C8A7 1
+C8A8 1
+C8A9 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+C8B2 1
+C8B3 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C993 1
+C994 1
+C995 1
+C996 1
+C997 1
+C998 1
+C999 1
+C99A 1
+C99B 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A0 1
+C9A1 1
+C9A2 1
+C9A3 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9A8 1
+C9A9 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9AF 1
+C9B0 1
+C9B1 1
+C9B2 1
+C9B3 1
+C9B4 1
+C9B5 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA80 1
+CA81 1
+CA82 1
+CA83 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA88 1
+CA89 1
+CA8A 1
+CA8B 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA92 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE86 1
+CE87 1
+CE88 1
+CE89 1
+CE8A 1
+CE8B 1
+CE8C 1
+CE8D 1
+CE8E 1
+CE8F 1
+CE90 1
+CE91 1
+CE92 1
+CE93 1
+CE94 1
+CE95 1
+CE96 1
+CE97 1
+CE98 1
+CE99 1
+CE9A 1
+CE9B 1
+CE9C 1
+CE9D 1
+CE9E 1
+CE9F 1
+CEA0 1
+CEA1 1
+CEA2 1
+CEA3 1
+CEA4 1
+CEA5 1
+CEA6 1
+CEA7 1
+CEA8 1
+CEA9 1
+CEAA 1
+CEAB 1
+CEAC 1
+CEAD 1
+CEAE 1
+CEAF 1
+CEB0 1
+CEB1 1
+CEB2 1
+CEB3 1
+CEB4 1
+CEB5 1
+CEB6 1
+CEB7 1
+CEB8 1
+CEB9 1
+CEBA 1
+CEBB 1
+CEBC 1
+CEBD 1
+CEBE 1
+CEBF 1
+CF80 1
+CF81 1
+CF82 1
+CF83 1
+CF84 1
+CF85 1
+CF86 1
+CF87 1
+CF88 1
+CF89 1
+CF8A 1
+CF8B 1
+CF8C 1
+CF8D 1
+CF8E 1
+CF8F 1
+CF90 1
+CF91 1
+CF92 1
+CF93 1
+CF94 1
+CF95 1
+CF96 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB0 1
+CFB1 1
+CFB2 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D080 1
+D081 1
+D082 1
+D083 1
+D084 1
+D085 1
+D086 1
+D087 1
+D088 1
+D089 1
+D08A 1
+D08B 1
+D08C 1
+D08D 1
+D08E 1
+D08F 1
+D090 1
+D091 1
+D092 1
+D093 1
+D094 1
+D095 1
+D096 1
+D097 1
+D098 1
+D099 1
+D09A 1
+D09B 1
+D09C 1
+D09D 1
+D09E 1
+D09F 1
+D0A0 1
+D0A1 1
+D0A2 1
+D0A3 1
+D0A4 1
+D0A5 1
+D0A6 1
+D0A7 1
+D0A8 1
+D0A9 1
+D0AA 1
+D0AB 1
+D0AC 1
+D0AD 1
+D0AE 1
+D0AF 1
+D0B0 1
+D0B1 1
+D0B2 1
+D0B3 1
+D0B4 1
+D0B5 1
+D0B6 1
+D0B7 1
+D0B8 1
+D0B9 1
+D0BA 1
+D0BB 1
+D0BC 1
+D0BD 1
+D0BE 1
+D0BF 1
+D180 1
+D181 1
+D182 1
+D183 1
+D184 1
+D185 1
+D186 1
+D187 1
+D188 1
+D189 1
+D18A 1
+D18B 1
+D18C 1
+D18D 1
+D18E 1
+D18F 1
+D190 1
+D191 1
+D192 1
+D193 1
+D194 1
+D195 1
+D196 1
+D197 1
+D198 1
+D199 1
+D19A 1
+D19B 1
+D19C 1
+D19D 1
+D19E 1
+D19F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D381 1
+D382 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D390 1
+D391 1
+D392 1
+D393 1
+D394 1
+D395 1
+D396 1
+D397 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D39C 1
+D39D 1
+D39E 1
+D39F 1
+D3A0 1
+D3A1 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3AC 1
+D3AD 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D3B4 1
+D3B5 1
+D3B6 1
+D3B7 1
+D3B8 1
+D3B9 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D4B2 1
+D4B3 1
+D4B4 1
+D4B5 1
+D4B6 1
+D4B7 1
+D4B8 1
+D4B9 1
+D4BA 1
+D4BB 1
+D4BC 1
+D4BD 1
+D4BE 1
+D4BF 1
+D580 1
+D581 1
+D582 1
+D583 1
+D584 1
+D585 1
+D586 1
+D587 1
+D588 1
+D589 1
+D58A 1
+D58B 1
+D58C 1
+D58D 1
+D58E 1
+D58F 1
+D590 1
+D591 1
+D592 1
+D593 1
+D594 1
+D595 1
+D596 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D5A1 1
+D5A2 1
+D5A3 1
+D5A4 1
+D5A5 1
+D5A6 1
+D5A7 1
+D5A8 1
+D5A9 1
+D5AA 1
+D5AB 1
+D5AC 1
+D5AD 1
+D5AE 1
+D5AF 1
+D5B0 1
+D5B1 1
+D5B2 1
+D5B3 1
+D5B4 1
+D5B5 1
+D5B6 1
+D5B7 1
+D5B8 1
+D5B9 1
+D5BA 1
+D5BB 1
+D5BC 1
+D5BD 1
+D5BE 1
+D5BF 1
+D680 1
+D681 1
+D682 1
+D683 1
+D684 1
+D685 1
+D686 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_czech_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C598 1
+C599 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_danish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B0 1
+C5B1 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C590 1
+C591 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_estonian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C3B2 1
+C3B3 1
+C3B4 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+C395 1
+C3B5 1
+C384 1
+C3A4 1
+C396 1
+C3B6 1
+C39C 1
+C3BC 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+42 1
+62 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+44 1
+64 1
+C48E 1
+C48F 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+46 1
+66 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+4D 1
+6D 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+4F 1
+6F 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+56 1
+76 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+58 1
+78 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C390 1
+C3B0 1
+C397 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C39E 1
+C3BE 1
+C39F 1
+C3B7 1
+C490 1
+C491 1
+C4A6 1
+C4A7 1
+C4B2 1
+C4B3 1
+C4B8 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C589 1
+C58A 1
+C58B 1
+C592 1
+C593 1
+C5A6 1
+C5A7 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C994 1
+C687 1
+C688 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C691 1
+C692 1
+C693 1
+C9A0 1
+C694 1
+C9A3 1
+C696 1
+C9A9 1
+C697 1
+C9A8 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C9AF 1
+C69D 1
+C9B2 1
+C69E 1
+C69F 1
+C9B5 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+CA80 1
+C6A7 1
+C6A8 1
+C6A9 1
+CA83 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C6B1 1
+CA8A 1
+C6B2 1
+CA8B 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C7A4 1
+C7A5 1
+C7B1 1
+C7B2 1
+C7B3 1
+C695 1
+C7B6 1
+C6BF 1
+C7B7 1
+C89C 1
+C89D 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C995 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A1 1
+C9A2 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9B0 1
+C9B1 1
+C9B3 1
+C9B4 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CA82 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA89 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE87 1
+CE8B 1
+CE8D 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CD85 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CE9A 1
+CEBA 1
+CFB0 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA2 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CF8F 1
+CF92 1
+CF93 1
+CF94 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D082 1
+D192 1
+D084 1
+D194 1
+D085 1
+D195 1
+D086 1
+D087 1
+D196 1
+D197 1
+D088 1
+D198 1
+D089 1
+D199 1
+D08A 1
+D19A 1
+D08B 1
+D19B 1
+D08F 1
+D19F 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D083 1
+D093 1
+D0B3 1
+D193 1
+D094 1
+D0B4 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D097 1
+D0B7 1
+D39E 1
+D39F 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D099 1
+D0B9 1
+D08C 1
+D09A 1
+D0BA 1
+D19C 1
+D09B 1
+D0BB 1
+D09C 1
+D0BC 1
+D09D 1
+D0BD 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D09F 1
+D0BF 1
+D0A0 1
+D180 1
+D0A1 1
+D181 1
+D0A2 1
+D182 1
+D08E 1
+D0A3 1
+D183 1
+D19E 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D0A6 1
+D186 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D394 1
+D395 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D3A0 1
+D3A1 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_hungarian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C590 1
+C591 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+C5B0 1
+C5B1 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_icelandic_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C382 1
+C383 1
+C3A0 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C381 1
+C3A1 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C390 1
+C3B0 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+45 1
+65 1
+C388 1
+C38A 1
+C38B 1
+C3A8 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C389 1
+C3A9 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38E 1
+C38F 1
+C3AC 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38D 1
+C3AD 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C3B2 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39B 1
+C39C 1
+C3B9 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39A 1
+C3BA 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+C39D 1
+C3BD 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C39E 1
+C3BE 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_latvian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C4A2 1
+C4A3 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+59 1
+79 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C7A8 1
+C7A9 1
+C4B6 1
+C4B7 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C4BB 1
+C4BC 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C585 1
+C586 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C596 1
+C597 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_lithuanian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+59 1
+69 1
+79 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_persian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+D993 1
+D994 1
+D995 1
+D9B0 1
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D991 1
+D992 1
+D996 1
+D997 1
+D998 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+D98E 1
+26 1
+D990 1
+23 1
+D98F 1
+25 1
+D9AA 1
+D98B 1
+D98D 1
+D98C 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+D8A2 1
+D8A7 1
+D9B1 1
+D8A1 1
+D8A3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+D8A5 1
+D8A4 1
+D8A6 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D9B4 1
+DBBD 1
+D9B2 1
+D9B3 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+DA89 1
+DA8A 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA9 1
+D983 1
+DAA8 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+D987 1
+DB84 1
+D8A9 1
+DB85 1
+DB80 1
+DB86 1
+DB87 1
+DB8C 1
+D9B7 1
+D989 1
+DB88 1
+D98A 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+DBA6 1
+D9B8 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_polish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C484 1
+C485 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C486 1
+C487 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C498 1
+C499 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C581 1
+C582 1
+CA9F 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C583 1
+C584 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59A 1
+C59B 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+C68D 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_roman_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+4A 1
+69 1
+6A 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+55 1
+56 1
+75 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_romanian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C482 1
+C483 1
+C382 1
+C3A2 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38E 1
+C3AE 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+C898 1
+C899 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A4 1
+C5A5 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A2 1
+C5A3 1
+C89A 1
+C89B 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovak_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C384 1
+C3A4 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C394 1
+C3B4 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovenian_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish2_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_swedish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C385 1
+C3A5 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_turkish_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C387 1
+C3A7 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C49E 1
+C49F 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+49 1
+C4B1 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci) ENGINE=MyISAM 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 MyISAM # # # # # # # # # # # # 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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
diff --git a/mysql-test/suite/funcs_2/r/ndb_charset.result b/mysql-test/suite/funcs_2/r/ndb_charset.result
new file mode 100644
index 00000000000..0a4dba2e302
--- /dev/null
+++ b/mysql-test/suite/funcs_2/r/ndb_charset.result
@@ -0,0 +1,119156 @@
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+DF 1
+8A 1
+9A 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8F 1
+9F 1
+AF 1
+BF 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+80 1
+81 1
+83 1
+88 1
+90 1
+98 1
+B6 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+A5 1
+B9 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+E9 1
+CC 1
+EC 1
+CB 1
+EB 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+C5 1
+E5 1
+BC 1
+BE 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+D6 1
+F6 1
+D5 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+E0 1
+D8 1
+F8 1
+53 1
+73 1
+8C 1
+9C 1
+AA 1
+BA 1
+8A 1
+9A 1
+DF 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+DA 1
+FA 1
+D9 1
+F9 1
+DC 1
+FC 1
+DB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AF 1
+BF 1
+8F 1
+9F 1
+8E 1
+9E 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+82 1
+84 1
+85 1
+86 1
+87 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A7 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A5 1
+B9 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+B3 1
+BC 1
+BE 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A7 1
+AA 1
+BA 1
+DF 1
+8A 1
+8C 1
+9A 1
+9C 1
+54 1
+74 1
+8D 1
+9D 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+8E 1
+8F 1
+9E 1
+9F 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A1 1
+A2 1
+A4 1
+A6 1
+A8 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+BB 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+80 1
+90 1
+81 1
+83 1
+C5 1
+E5 1
+A8 1
+B8 1
+AA 1
+BA 1
+C6 1
+E6 1
+C7 1
+E7 1
+BD 1
+BE 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+A3 1
+BC 1
+CA 1
+EA 1
+8D 1
+9D 1
+CB 1
+EB 1
+8A 1
+9A 1
+CC 1
+EC 1
+CD 1
+ED 1
+8C 1
+9C 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+8E 1
+9E 1
+D3 1
+F3 1
+A1 1
+A2 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+8F 1
+9F 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8B 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9B 1
+A0 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+A5 1
+B4 1
+C4 1
+E4 1
+C5 1
+E5 1
+AA 1
+BA 1
+A8 1
+B8 1
+C6 1
+E6 1
+C7 1
+E7 1
+C8 1
+E8 1
+B2 1
+B3 1
+AF 1
+BF 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+DD 1
+FD 1
+DE 1
+DF 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+E0 1
+E2 1
+42 1
+62 1
+43 1
+63 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+83 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+F4 1
+8C 1
+9C 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+F9 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+81 1
+CB 1
+CC 1
+8D 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+8E 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+CA 1
+D9 1
+DA 1
+DB 1
+DD 1
+DE 1
+DF 1
+90 1
+E1 1
+E3 1
+E4 1
+E5 1
+E6 1
+EC 1
+ED 1
+DC 1
+F0 1
+F1 1
+F2 1
+F3 1
+F5 1
+F6 1
+F8 1
+FA 1
+A1 1
+BA 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+82 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8F 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+C0 1
+D7 1
+F7 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+AF 1
+BF 1
+C0 1
+C2 1
+C4 1
+C5 1
+E0 1
+E2 1
+E4 1
+E5 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+C8 1
+E3 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+C7 1
+C9 1
+CB 1
+E6 1
+E7 1
+E9 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+C1 1
+CE 1
+E1 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+D9 1
+EF 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+A8 1
+B8 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+D0 1
+DA 1
+DF 1
+F0 1
+FA 1
+54 1
+74 1
+55 1
+75 1
+D8 1
+DB 1
+DC 1
+F8 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+DD 1
+DE 1
+EA 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A9 1
+AB 1
+AC 1
+AD 1
+AE 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B9 1
+BB 1
+BC 1
+BD 1
+BE 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+42 1
+62 1
+43 1
+63 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C6 1
+E6 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+59 1
+79 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+D0 1
+F0 1
+54 1
+74 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+5A 1
+7A 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C2 1
+C3 1
+C4 1
+C5 1
+C7 1
+C9 1
+CA 1
+CC 1
+CD 1
+CE 1
+CF 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D9 1
+DA 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E2 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+EA 1
+EC 1
+ED 1
+EE 1
+EF 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F9 1
+FA 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+85 1
+B7 1
+A0 1
+B5 1
+83 1
+B6 1
+C6 1
+C7 1
+84 1
+8E 1
+86 1
+8F 1
+91 1
+92 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+D0 1
+D1 1
+45 1
+65 1
+8A 1
+D4 1
+82 1
+90 1
+88 1
+D2 1
+89 1
+D3 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8D 1
+DE 1
+A1 1
+D6 1
+8C 1
+D7 1
+8B 1
+D8 1
+D5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+95 1
+E3 1
+A2 1
+E0 1
+93 1
+E2 1
+E4 1
+E5 1
+94 1
+99 1
+9B 1
+9D 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+E1 1
+54 1
+74 1
+55 1
+75 1
+97 1
+EB 1
+A3 1
+E9 1
+96 1
+EA 1
+81 1
+9A 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+98 1
+5A 1
+7A 1
+E7 1
+E8 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+F7 1
+9E 1
+9F 1
+F6 1
+F2 1
+C4 1
+B3 1
+DA 1
+BF 1
+C0 1
+D9 1
+C3 1
+B4 1
+C2 1
+C1 1
+C5 1
+CD 1
+AD 1
+BA 1
+C9 1
+BB 1
+C8 1
+BC 1
+CC 1
+B9 1
+CB 1
+CA 1
+CE 1
+DF 1
+DC 1
+DB 1
+B0 1
+B1 1
+B2 1
+BD 1
+9C 1
+CF 1
+BE 1
+DD 1
+F5 1
+F9 1
+B8 1
+A6 1
+AE 1
+AA 1
+F0 1
+A9 1
+EE 1
+F8 1
+F1 1
+FD 1
+FC 1
+EF 1
+E6 1
+F4 1
+FA 1
+FB 1
+A7 1
+AF 1
+AC 1
+AB 1
+F3 1
+A8 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+83 1
+84 1
+8E 1
+A0 1
+A4 1
+A5 1
+B5 1
+B6 1
+C6 1
+C7 1
+42 1
+62 1
+43 1
+63 1
+80 1
+86 1
+87 1
+8F 1
+9F 1
+AC 1
+44 1
+64 1
+D0 1
+D1 1
+D2 1
+D4 1
+45 1
+65 1
+82 1
+89 1
+90 1
+A8 1
+A9 1
+B7 1
+D3 1
+D8 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+A1 1
+D6 1
+D7 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+88 1
+91 1
+92 1
+95 1
+96 1
+9D 1
+4D 1
+6D 1
+4E 1
+6E 1
+D5 1
+E3 1
+E4 1
+E5 1
+4F 1
+6F 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A2 1
+E0 1
+E2 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+E8 1
+EA 1
+FC 1
+FD 1
+53 1
+73 1
+97 1
+98 1
+AD 1
+B8 1
+E6 1
+E7 1
+E1 1
+54 1
+74 1
+9B 1
+9C 1
+DD 1
+EE 1
+55 1
+75 1
+81 1
+85 1
+9A 1
+A3 1
+DE 1
+E9 1
+EB 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+EC 1
+ED 1
+5A 1
+7A 1
+8D 1
+A6 1
+A7 1
+AB 1
+BD 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+9E 1
+AA 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B9 1
+BA 1
+BB 1
+BC 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D9 1
+DA 1
+DB 1
+DC 1
+DF 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+80 1
+A0 1
+81 1
+A1 1
+82 1
+A2 1
+83 1
+A3 1
+84 1
+A4 1
+85 1
+A5 1
+F0 1
+F1 1
+F2 1
+F3 1
+86 1
+A6 1
+87 1
+A7 1
+88 1
+A8 1
+F4 1
+F5 1
+89 1
+A9 1
+8A 1
+AA 1
+8B 1
+AB 1
+8C 1
+AC 1
+8D 1
+AD 1
+8E 1
+AE 1
+8F 1
+AF 1
+90 1
+E0 1
+91 1
+E1 1
+92 1
+E2 1
+93 1
+E3 1
+F6 1
+F7 1
+94 1
+E4 1
+95 1
+E5 1
+96 1
+E6 1
+97 1
+E7 1
+98 1
+E8 1
+99 1
+E9 1
+9A 1
+EA 1
+9B 1
+EB 1
+9C 1
+EC 1
+9D 1
+ED 1
+9E 1
+EE 1
+9F 1
+EF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+B0 1
+B1 1
+B2 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B7 1
+BB 1
+BD 1
+B6 1
+C1 1
+DC 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+B8 1
+C5 1
+DD 1
+E5 1
+C6 1
+E6 1
+B9 1
+C7 1
+DE 1
+E7 1
+C8 1
+E8 1
+BA 1
+C0 1
+C9 1
+DA 1
+DF 1
+E9 1
+FA 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+BC 1
+CF 1
+EF 1
+FC 1
+D0 1
+F0 1
+D1 1
+F1 1
+D2 1
+D3 1
+F2 1
+F3 1
+D4 1
+F4 1
+BE 1
+D5 1
+DB 1
+E0 1
+F5 1
+FB 1
+FD 1
+D6 1
+F6 1
+D7 1
+F7 1
+D8 1
+F8 1
+BF 1
+D9 1
+F9 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+D7 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5D 1
+5B 1
+5C 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+84 1
+8E 1
+8F 1
+A0 1
+42 1
+62 1
+43 1
+63 1
+80 1
+87 1
+44 1
+64 1
+83 1
+85 1
+45 1
+65 1
+82 1
+88 1
+89 1
+90 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8B 1
+A1 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+8A 1
+8C 1
+8D 1
+9C 1
+4D 1
+6D 1
+4E 1
+6E 1
+A4 1
+A5 1
+4F 1
+6F 1
+93 1
+94 1
+95 1
+99 1
+A2 1
+A7 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+9E 1
+A9 1
+AA 1
+AB 1
+53 1
+73 1
+9B 1
+A8 1
+E1 1
+54 1
+74 1
+86 1
+9F 1
+55 1
+75 1
+81 1
+96 1
+97 1
+9A 1
+A3 1
+A6 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+98 1
+9D 1
+5A 1
+7A 1
+91 1
+92 1
+E0 1
+EB 1
+EE 1
+E2 1
+EA 1
+E8 1
+ED 1
+E3 1
+E4 1
+E5 1
+E7 1
+E9 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E6 1
+EC 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+C4 1
+E4 1
+C5 1
+E5 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C1 1
+E1 1
+C2 1
+E2 1
+D7 1
+F7 1
+C7 1
+E7 1
+AD 1
+BD 1
+C4 1
+E4 1
+C5 1
+E5 1
+A4 1
+B4 1
+A3 1
+B3 1
+D6 1
+F6 1
+DA 1
+FA 1
+C9 1
+E9 1
+A6 1
+B6 1
+A7 1
+B7 1
+CA 1
+EA 1
+CB 1
+EB 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+D0 1
+F0 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+C6 1
+E6 1
+C8 1
+E8 1
+C3 1
+E3 1
+DE 1
+DB 1
+FB 1
+DD 1
+FD 1
+DF 1
+D9 1
+F9 1
+D8 1
+F8 1
+DC 1
+FC 1
+C0 1
+E0 1
+D1 1
+F1 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A5 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B5 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C4 1
+C6 1
+E4 1
+E6 1
+5C 1
+D6 1
+D8 1
+F6 1
+F8 1
+5D 1
+C5 1
+E5 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+E0 1
+C1 1
+E1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+C5 1
+E5 1
+C6 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+E8 1
+C9 1
+E9 1
+CA 1
+EA 1
+CB 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+EC 1
+CD 1
+ED 1
+CE 1
+EE 1
+CF 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+F2 1
+D3 1
+F3 1
+D4 1
+F4 1
+D5 1
+F5 1
+D6 1
+F6 1
+D8 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+F9 1
+DA 1
+FA 1
+DB 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D0 1
+F0 1
+D7 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+5B 1
+5C 1
+C6 1
+E6 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+DE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+D7 1
+F7 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+5A 1
+7A 1
+5B 1
+C5 1
+E5 1
+5C 1
+C4 1
+C6 1
+E4 1
+E6 1
+5D 1
+D6 1
+F6 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+D8 1
+F8 1
+DE 1
+DF 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C8 1
+E8 1
+C6 1
+E6 1
+44 1
+64 1
+CF 1
+EF 1
+D0 1
+F0 1
+45 1
+65 1
+C9 1
+CA 1
+CB 1
+CC 1
+E9 1
+EA 1
+EB 1
+EC 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A3 1
+A5 1
+B3 1
+B5 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+D2 1
+F1 1
+F2 1
+4F 1
+6F 1
+D3 1
+D4 1
+D5 1
+D6 1
+F3 1
+F4 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+A6 1
+AA 1
+B6 1
+BA 1
+DF 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+AF 1
+BC 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+2C 1
+3B 1
+3F 1
+21 1
+3A 1
+22 1
+60 1
+27 1
+2F 1
+7C 1
+5C 1
+28 1
+29 1
+5B 1
+5D 1
+3C 1
+3E 1
+7B 1
+7D 1
+40 1
+26 1
+25 1
+23 1
+5E 1
+5F 1
+7E 1
+3D 1
+2B 1
+2A 1
+2D 1
+D7 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+24 1
+7F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+DF 1
+F7 1
+61 1
+41 1
+E1 1
+C1 1
+E2 1
+C2 1
+E4 1
+C4 1
+E3 1
+C3 1
+B1 1
+A1 1
+62 1
+42 1
+63 1
+43 1
+E8 1
+C8 1
+E6 1
+C6 1
+E7 1
+C7 1
+64 1
+44 1
+EF 1
+CF 1
+F0 1
+D0 1
+65 1
+45 1
+E9 1
+C9 1
+EC 1
+CC 1
+EB 1
+CB 1
+EA 1
+CA 1
+66 1
+46 1
+67 1
+47 1
+68 1
+48 1
+69 1
+49 1
+ED 1
+CD 1
+EE 1
+CE 1
+6A 1
+4A 1
+6B 1
+4B 1
+6C 1
+4C 1
+E5 1
+C5 1
+B5 1
+A5 1
+B3 1
+A3 1
+6D 1
+4D 1
+6E 1
+4E 1
+F2 1
+D2 1
+F1 1
+D1 1
+6F 1
+4F 1
+F3 1
+D3 1
+F4 1
+D4 1
+F6 1
+D6 1
+F5 1
+D5 1
+70 1
+50 1
+71 1
+51 1
+72 1
+52 1
+E0 1
+C0 1
+F8 1
+D8 1
+73 1
+53 1
+B9 1
+A9 1
+B6 1
+A6 1
+BA 1
+AA 1
+74 1
+54 1
+BB 1
+AB 1
+DE 1
+75 1
+55 1
+FA 1
+DA 1
+F9 1
+D9 1
+FC 1
+DC 1
+FB 1
+DB 1
+76 1
+56 1
+77 1
+57 1
+78 1
+58 1
+79 1
+59 1
+FD 1
+DD 1
+7A 1
+5A 1
+BE 1
+AE 1
+BC 1
+AC 1
+BF 1
+AF 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+A1 1
+B1 1
+C1 1
+C2 1
+C3 1
+C4 1
+E1 1
+E2 1
+E3 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+C6 1
+E6 1
+C8 1
+E8 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+C9 1
+CB 1
+CC 1
+E9 1
+EB 1
+EC 1
+CA 1
+EA 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+CD 1
+CE 1
+ED 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+A5 1
+B5 1
+C5 1
+E5 1
+A3 1
+B3 1
+4D 1
+6D 1
+4E 1
+6E 1
+D2 1
+F2 1
+D1 1
+F1 1
+4F 1
+6F 1
+D4 1
+D5 1
+D6 1
+F4 1
+F5 1
+F6 1
+D3 1
+F3 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+E0 1
+F8 1
+53 1
+73 1
+AA 1
+BA 1
+A6 1
+B6 1
+A9 1
+B9 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AF 1
+BF 1
+AE 1
+BE 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A2 1
+A4 1
+A7 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+80 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8E 1
+91 1
+92 1
+9B 1
+9C 1
+9D 1
+9E 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+8F 1
+A0 1
+B5 1
+C1 1
+E1 1
+B1 1
+C2 1
+E2 1
+C3 1
+E3 1
+C4 1
+E4 1
+42 1
+62 1
+43 1
+63 1
+C6 1
+E6 1
+C8 1
+E8 1
+C7 1
+E7 1
+44 1
+64 1
+CF 1
+EF 1
+45 1
+65 1
+82 1
+90 1
+C9 1
+E9 1
+CC 1
+EC 1
+CA 1
+EA 1
+CB 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+8C 1
+8D 1
+A1 1
+CD 1
+ED 1
+CE 1
+EE 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+B3 1
+A4 1
+C5 1
+E5 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+95 1
+A2 1
+D3 1
+E0 1
+F3 1
+D4 1
+F4 1
+8A 1
+8B 1
+93 1
+94 1
+99 1
+A7 1
+D5 1
+D6 1
+F5 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C0 1
+D8 1
+F8 1
+53 1
+73 1
+A5 1
+B6 1
+A9 1
+B9 1
+AA 1
+BA 1
+54 1
+74 1
+AB 1
+BB 1
+DE 1
+55 1
+75 1
+97 1
+A3 1
+DA 1
+FA 1
+D9 1
+F9 1
+81 1
+96 1
+98 1
+9A 1
+DB 1
+DC 1
+EB 1
+FB 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+5A 1
+7A 1
+AC 1
+BC 1
+AE 1
+BE 1
+AF 1
+BF 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+9F 1
+A6 1
+A8 1
+AD 1
+B0 1
+B2 1
+B4 1
+B7 1
+B8 1
+BD 1
+D0 1
+D7 1
+DF 1
+F0 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+44 1
+64 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+46 1
+66 1
+47 1
+67 1
+D0 1
+F0 1
+48 1
+68 1
+49 1
+FD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+DD 1
+EC 1
+ED 1
+EE 1
+EF 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D8 1
+F2 1
+F3 1
+F4 1
+F5 1
+F8 1
+D6 1
+F6 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+DF 1
+DE 1
+54 1
+74 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+DC 1
+FC 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+D7 1
+F7 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+7F 1
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+CF 1
+EF 1
+D9 1
+F9 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D4 1
+F4 1
+A8 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+58 1
+78 1
+59 1
+79 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+A8 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+74 1
+54 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+81 1
+83 1
+88 1
+8A 1
+8C 1
+90 1
+98 1
+9A 1
+9C 1
+9F 1
+27 1
+2D 1
+AD 1
+96 1
+97 1
+A0 1
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+28 1
+29 1
+2A 1
+2C 1
+2E 1
+2F 1
+3A 1
+3B 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+A6 1
+8D 1
+9D 1
+B4 1
+8F 1
+8E 1
+9E 1
+91 1
+92 1
+82 1
+93 1
+94 1
+84 1
+8B 1
+9B 1
+2B 1
+3C 1
+3D 1
+3E 1
+B1 1
+AB 1
+BB 1
+D7 1
+F7 1
+A2 1
+A3 1
+A4 1
+A7 1
+A9 1
+AC 1
+AE 1
+B0 1
+B5 1
+B6 1
+B7 1
+86 1
+87 1
+95 1
+85 1
+89 1
+80 1
+30 1
+BC 1
+BD 1
+BE 1
+31 1
+B9 1
+32 1
+B2 1
+33 1
+B3 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+41 1
+61 1
+C4 1
+E4 1
+C2 1
+E2 1
+C5 1
+E5 1
+C0 1
+E0 1
+AF 1
+BF 1
+42 1
+62 1
+43 1
+63 1
+C3 1
+E3 1
+C8 1
+E8 1
+44 1
+64 1
+45 1
+65 1
+C9 1
+E9 1
+CB 1
+EB 1
+C7 1
+E7 1
+C6 1
+E6 1
+46 1
+66 1
+47 1
+67 1
+CC 1
+EC 1
+48 1
+68 1
+49 1
+69 1
+CE 1
+EE 1
+C1 1
+E1 1
+4A 1
+6A 1
+4B 1
+6B 1
+CD 1
+ED 1
+4C 1
+6C 1
+D9 1
+F9 1
+CF 1
+EF 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+D2 1
+F2 1
+4F 1
+6F 1
+D3 1
+F3 1
+D6 1
+F6 1
+D4 1
+F4 1
+D5 1
+F5 1
+B8 1
+A8 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+AA 1
+BA 1
+53 1
+73 1
+DA 1
+FA 1
+DF 1
+D0 1
+F0 1
+54 1
+74 1
+99 1
+55 1
+75 1
+DC 1
+FC 1
+DB 1
+FB 1
+D8 1
+F8 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+CA 1
+EA 1
+DD 1
+FD 1
+DE 1
+A1 1
+A5 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+82 1
+84 1
+87 1
+88 1
+8A 1
+E7 1
+42 1
+62 1
+43 1
+63 1
+89 1
+8B 1
+8C 1
+8D 1
+44 1
+64 1
+91 1
+93 1
+45 1
+65 1
+83 1
+8E 1
+94 1
+95 1
+96 1
+98 1
+9D 1
+9E 1
+A2 1
+AB 1
+46 1
+66 1
+47 1
+67 1
+AE 1
+48 1
+68 1
+49 1
+69 1
+92 1
+AF 1
+B0 1
+B1 1
+B4 1
+EA 1
+4A 1
+6A 1
+4B 1
+6B 1
+B5 1
+FA 1
+4C 1
+6C 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+FC 1
+4D 1
+4E 1
+6D 1
+6E 1
+BF 1
+C0 1
+C1 1
+C4 1
+C5 1
+CB 1
+4F 1
+6F 1
+85 1
+97 1
+99 1
+9A 1
+9B 1
+CC 1
+CD 1
+CE 1
+CF 1
+D8 1
+EE 1
+EF 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+D9 1
+DA 1
+DB 1
+DE 1
+DF 1
+E0 1
+53 1
+73 1
+A7 1
+E1 1
+E4 1
+E5 1
+E6 1
+54 1
+74 1
+E8 1
+E9 1
+55 1
+75 1
+86 1
+9C 1
+9F 1
+ED 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+F8 1
+F9 1
+5A 1
+7A 1
+8F 1
+90 1
+EB 1
+EC 1
+FB 1
+FD 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AC 1
+AD 1
+B2 1
+B3 1
+B6 1
+B7 1
+C2 1
+C3 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DC 1
+DD 1
+E2 1
+E3 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+80 1
+81 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+CB 1
+CC 1
+E5 1
+E7 1
+AE 1
+BE 1
+42 1
+62 1
+43 1
+63 1
+82 1
+8D 1
+44 1
+64 1
+45 1
+65 1
+83 1
+8E 1
+8F 1
+90 1
+91 1
+E6 1
+E8 1
+E9 1
+46 1
+66 1
+C4 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+92 1
+93 1
+94 1
+95 1
+EA 1
+EB 1
+EC 1
+ED 1
+F5 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+84 1
+96 1
+4F 1
+6F 1
+85 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+AF 1
+BF 1
+CD 1
+EE 1
+EF 1
+F1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+A7 1
+54 1
+74 1
+55 1
+75 1
+86 1
+9C 1
+9D 1
+9E 1
+9F 1
+F2 1
+F3 1
+F4 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+D8 1
+D9 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+F0 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+40 1
+45 1
+60 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+5E 1
+79 1
+7E 1
+5A 1
+7A 1
+5D 1
+7D 1
+5B 1
+7B 1
+5C 1
+7C 1
+5F 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+EC 1
+F9 1
+E7 1
+FA 1
+E8 1
+FB 1
+E9 1
+FC 1
+EA 1
+FD 1
+EB 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+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 # # #
+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
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+42 1
+62 1
+43 1
+63 1
+44 1
+64 1
+45 1
+65 1
+46 1
+66 1
+47 1
+67 1
+48 1
+68 1
+49 1
+69 1
+4A 1
+6A 1
+4B 1
+6B 1
+4C 1
+6C 1
+4D 1
+6D 1
+4E 1
+6E 1
+4F 1
+6F 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+53 1
+73 1
+54 1
+74 1
+55 1
+75 1
+56 1
+76 1
+57 1
+77 1
+58 1
+78 1
+59 1
+79 1
+5A 1
+7A 1
+5B 1
+5C 1
+5D 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B5 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+C6 1
+C7 1
+C8 1
+C9 1
+CA 1
+CB 1
+CC 1
+CD 1
+CE 1
+CF 1
+D0 1
+D1 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+D7 1
+D8 1
+D9 1
+DA 1
+DB 1
+DC 1
+DD 1
+DE 1
+DF 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+E6 1
+E7 1
+E8 1
+E9 1
+EA 1
+EB 1
+EC 1
+ED 1
+EE 1
+EF 1
+F0 1
+F1 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+F7 1
+F8 1
+F9 1
+FA 1
+FB 1
+FC 1
+FD 1
+FE 1
+FF 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+10E 1
+10F 1
+110 1
+111 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+124 1
+125 1
+126 1
+127 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+132 1
+133 1
+134 1
+135 1
+136 1
+137 1
+138 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+13F 1
+140 1
+141 1
+142 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+149 1
+14A 1
+14B 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+152 1
+153 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+162 1
+163 1
+164 1
+165 1
+166 1
+167 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+174 1
+175 1
+176 1
+177 1
+178 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+17F 1
+180 1
+181 1
+182 1
+183 1
+184 1
+185 1
+186 1
+187 1
+188 1
+189 1
+18A 1
+18B 1
+18C 1
+18D 1
+18E 1
+18F 1
+190 1
+191 1
+192 1
+193 1
+194 1
+195 1
+196 1
+197 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+19D 1
+19E 1
+19F 1
+1A0 1
+1A1 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+1A7 1
+1A8 1
+1A9 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+1AF 1
+1B0 1
+1B1 1
+1B2 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1BF 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1CD 1
+1CE 1
+1CF 1
+1D0 1
+1D1 1
+1D2 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+1DD 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1E2 1
+1E3 1
+1E4 1
+1E5 1
+1E6 1
+1E7 1
+1E8 1
+1E9 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+1EE 1
+1EF 1
+1F0 1
+1F1 1
+1F2 1
+1F3 1
+1F4 1
+1F5 1
+1F6 1
+1F7 1
+1F8 1
+1F9 1
+1FA 1
+1FB 1
+1FC 1
+1FD 1
+1FE 1
+1FF 1
+200 1
+201 1
+202 1
+203 1
+204 1
+205 1
+206 1
+207 1
+208 1
+209 1
+20A 1
+20B 1
+20C 1
+20D 1
+20E 1
+20F 1
+210 1
+211 1
+212 1
+213 1
+214 1
+215 1
+216 1
+217 1
+218 1
+219 1
+21A 1
+21B 1
+21C 1
+21D 1
+21E 1
+21F 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+226 1
+227 1
+228 1
+229 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+232 1
+233 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+253 1
+254 1
+255 1
+256 1
+257 1
+258 1
+259 1
+25A 1
+25B 1
+25C 1
+25D 1
+25E 1
+25F 1
+260 1
+261 1
+262 1
+263 1
+264 1
+265 1
+266 1
+267 1
+268 1
+269 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+26F 1
+270 1
+271 1
+272 1
+273 1
+274 1
+275 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+280 1
+281 1
+282 1
+283 1
+284 1
+285 1
+286 1
+287 1
+288 1
+289 1
+28A 1
+28B 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+292 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+386 1
+387 1
+388 1
+389 1
+38A 1
+38B 1
+38C 1
+38D 1
+38E 1
+38F 1
+390 1
+391 1
+392 1
+393 1
+394 1
+395 1
+396 1
+397 1
+398 1
+399 1
+39A 1
+39B 1
+39C 1
+39D 1
+39E 1
+39F 1
+3A0 1
+3A1 1
+3A2 1
+3A3 1
+3A4 1
+3A5 1
+3A6 1
+3A7 1
+3A8 1
+3A9 1
+3AA 1
+3AB 1
+3AC 1
+3AD 1
+3AE 1
+3AF 1
+3B0 1
+3B1 1
+3B2 1
+3B3 1
+3B4 1
+3B5 1
+3B6 1
+3B7 1
+3B8 1
+3B9 1
+3BA 1
+3BB 1
+3BC 1
+3BD 1
+3BE 1
+3BF 1
+3C0 1
+3C1 1
+3C2 1
+3C3 1
+3C4 1
+3C5 1
+3C6 1
+3C7 1
+3C8 1
+3C9 1
+3CA 1
+3CB 1
+3CC 1
+3CD 1
+3CE 1
+3CF 1
+3D0 1
+3D1 1
+3D2 1
+3D3 1
+3D4 1
+3D5 1
+3D6 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F0 1
+3F1 1
+3F2 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+400 1
+401 1
+402 1
+403 1
+404 1
+405 1
+406 1
+407 1
+408 1
+409 1
+40A 1
+40B 1
+40C 1
+40D 1
+40E 1
+40F 1
+410 1
+411 1
+412 1
+413 1
+414 1
+415 1
+416 1
+417 1
+418 1
+419 1
+41A 1
+41B 1
+41C 1
+41D 1
+41E 1
+41F 1
+420 1
+421 1
+422 1
+423 1
+424 1
+425 1
+426 1
+427 1
+428 1
+429 1
+42A 1
+42B 1
+42C 1
+42D 1
+42E 1
+42F 1
+430 1
+431 1
+432 1
+433 1
+434 1
+435 1
+436 1
+437 1
+438 1
+439 1
+43A 1
+43B 1
+43C 1
+43D 1
+43E 1
+43F 1
+440 1
+441 1
+442 1
+443 1
+444 1
+445 1
+446 1
+447 1
+448 1
+449 1
+44A 1
+44B 1
+44C 1
+44D 1
+44E 1
+44F 1
+450 1
+451 1
+452 1
+453 1
+454 1
+455 1
+456 1
+457 1
+458 1
+459 1
+45A 1
+45B 1
+45C 1
+45D 1
+45E 1
+45F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C1 1
+4C2 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D4 1
+4D5 1
+4D6 1
+4D7 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4DC 1
+4DD 1
+4DE 1
+4DF 1
+4E0 1
+4E1 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4EC 1
+4ED 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4F4 1
+4F5 1
+4F6 1
+4F7 1
+4F8 1
+4F9 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+532 1
+533 1
+534 1
+535 1
+536 1
+537 1
+538 1
+539 1
+53A 1
+53B 1
+53C 1
+53D 1
+53E 1
+53F 1
+540 1
+541 1
+542 1
+543 1
+544 1
+545 1
+546 1
+547 1
+548 1
+549 1
+54A 1
+54B 1
+54C 1
+54D 1
+54E 1
+54F 1
+550 1
+551 1
+552 1
+553 1
+554 1
+555 1
+556 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+561 1
+562 1
+563 1
+564 1
+565 1
+566 1
+567 1
+568 1
+569 1
+56A 1
+56B 1
+56C 1
+56D 1
+56E 1
+56F 1
+570 1
+571 1
+572 1
+573 1
+574 1
+575 1
+576 1
+577 1
+578 1
+579 1
+57A 1
+57B 1
+57C 1
+57D 1
+57E 1
+57F 1
+580 1
+581 1
+582 1
+583 1
+584 1
+585 1
+586 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+158 1
+159 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+170 1
+171 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+150 1
+151 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+F2 1
+F3 1
+F4 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+5A 1
+7A 1
+17D 1
+17E 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+D5 1
+F5 1
+C4 1
+E4 1
+D6 1
+F6 1
+DC 1
+FC 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+42 1
+62 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+44 1
+64 1
+10E 1
+10F 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+46 1
+66 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+131 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+4D 1
+6D 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+4F 1
+6F 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+56 1
+76 1
+57 1
+77 1
+174 1
+175 1
+58 1
+78 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+85 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+A1 1
+A2 1
+A3 1
+A4 1
+A5 1
+A6 1
+A7 1
+A8 1
+A9 1
+AA 1
+AB 1
+AC 1
+AD 1
+AE 1
+AF 1
+B0 1
+B1 1
+B2 1
+B3 1
+B4 1
+B6 1
+B7 1
+B8 1
+B9 1
+BA 1
+BB 1
+BC 1
+BD 1
+BE 1
+BF 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+D0 1
+F0 1
+D7 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+DE 1
+FE 1
+DF 1
+F7 1
+110 1
+111 1
+126 1
+127 1
+132 1
+133 1
+138 1
+13F 1
+140 1
+141 1
+142 1
+149 1
+14A 1
+14B 1
+152 1
+153 1
+166 1
+167 1
+180 1
+181 1
+253 1
+182 1
+183 1
+184 1
+185 1
+186 1
+254 1
+187 1
+188 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+18D 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+191 1
+192 1
+193 1
+260 1
+194 1
+263 1
+196 1
+269 1
+197 1
+268 1
+198 1
+199 1
+19A 1
+19B 1
+19C 1
+26F 1
+19D 1
+272 1
+19E 1
+19F 1
+275 1
+1A2 1
+1A3 1
+1A4 1
+1A5 1
+1A6 1
+280 1
+1A7 1
+1A8 1
+1A9 1
+283 1
+1AA 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+1B1 1
+28A 1
+1B2 1
+28B 1
+1B3 1
+1B4 1
+1B5 1
+1B6 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+1BB 1
+1BC 1
+1BD 1
+1BE 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+1C4 1
+1C5 1
+1C6 1
+1C7 1
+1C8 1
+1C9 1
+1CA 1
+1CB 1
+1CC 1
+1E4 1
+1E5 1
+1F1 1
+1F2 1
+1F3 1
+195 1
+1F6 1
+1BF 1
+1F7 1
+21C 1
+21D 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+250 1
+251 1
+252 1
+255 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+25F 1
+261 1
+262 1
+264 1
+265 1
+266 1
+267 1
+26A 1
+26B 1
+26C 1
+26D 1
+26E 1
+270 1
+271 1
+273 1
+274 1
+276 1
+277 1
+278 1
+279 1
+27A 1
+27B 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+282 1
+284 1
+285 1
+286 1
+287 1
+289 1
+28C 1
+28D 1
+28E 1
+28F 1
+290 1
+291 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+29A 1
+29B 1
+29C 1
+29D 1
+29E 1
+29F 1
+2A0 1
+2A1 1
+2A2 1
+2A3 1
+2A4 1
+2A5 1
+2A6 1
+2A7 1
+2A8 1
+2A9 1
+2AA 1
+2AB 1
+2AC 1
+2AD 1
+2AE 1
+2AF 1
+2B0 1
+2B1 1
+2B2 1
+2B3 1
+2B4 1
+2B5 1
+2B6 1
+2B7 1
+2B8 1
+2B9 1
+2BA 1
+2BB 1
+2BC 1
+2BD 1
+2BE 1
+2BF 1
+2C0 1
+2C1 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D0 1
+2D1 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2D8 1
+2D9 1
+2DA 1
+2DB 1
+2DC 1
+2DD 1
+2DE 1
+2DF 1
+2E0 1
+2E1 1
+2E2 1
+2E3 1
+2E4 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EE 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+36A 1
+36B 1
+36C 1
+36D 1
+36E 1
+36F 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+37A 1
+37B 1
+37C 1
+37D 1
+37E 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+387 1
+38B 1
+38D 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+345 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+39A 1
+3BA 1
+3F0 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3A1 1
+3C1 1
+3F1 1
+3A2 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3CF 1
+3D2 1
+3D3 1
+3D4 1
+3D7 1
+3D8 1
+3D9 1
+3DA 1
+3DB 1
+3DC 1
+3DD 1
+3DE 1
+3DF 1
+3E0 1
+3E1 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+3F3 1
+3F4 1
+3F5 1
+3F6 1
+3F7 1
+3F8 1
+3F9 1
+3FA 1
+3FB 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+402 1
+452 1
+404 1
+454 1
+405 1
+455 1
+406 1
+407 1
+456 1
+457 1
+408 1
+458 1
+409 1
+459 1
+40A 1
+45A 1
+40B 1
+45B 1
+40F 1
+45F 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+411 1
+431 1
+412 1
+432 1
+403 1
+413 1
+433 1
+453 1
+414 1
+434 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+417 1
+437 1
+4DE 1
+4DF 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+4E4 1
+4E5 1
+419 1
+439 1
+40C 1
+41A 1
+43A 1
+45C 1
+41B 1
+43B 1
+41C 1
+43C 1
+41D 1
+43D 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+41F 1
+43F 1
+420 1
+440 1
+421 1
+441 1
+422 1
+442 1
+40E 1
+423 1
+443 1
+45E 1
+4EE 1
+4EF 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+424 1
+444 1
+425 1
+445 1
+426 1
+446 1
+427 1
+447 1
+4F4 1
+4F5 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+46A 1
+46B 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+47A 1
+47B 1
+47C 1
+47D 1
+47E 1
+47F 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+48A 1
+48B 1
+48C 1
+48D 1
+48E 1
+48F 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+49A 1
+49B 1
+49C 1
+49D 1
+49E 1
+49F 1
+4A0 1
+4A1 1
+4A2 1
+4A3 1
+4A4 1
+4A5 1
+4A6 1
+4A7 1
+4A8 1
+4A9 1
+4AA 1
+4AB 1
+4AC 1
+4AD 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+4B2 1
+4B3 1
+4B4 1
+4B5 1
+4B6 1
+4B7 1
+4B8 1
+4B9 1
+4BA 1
+4BB 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+4C0 1
+4C3 1
+4C4 1
+4C5 1
+4C6 1
+4C7 1
+4C8 1
+4C9 1
+4CA 1
+4CB 1
+4CC 1
+4CD 1
+4CE 1
+4CF 1
+4D4 1
+4D5 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4E0 1
+4E1 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+50A 1
+50B 1
+50C 1
+50D 1
+50E 1
+50F 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+557 1
+558 1
+559 1
+55A 1
+55B 1
+55C 1
+55D 1
+55E 1
+55F 1
+560 1
+587 1
+588 1
+589 1
+58A 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A2 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BA 1
+5BB 1
+5BC 1
+5BD 1
+5BE 1
+5BF 1
+5C0 1
+5C1 1
+5C2 1
+5C3 1
+5C4 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F0 1
+5F1 1
+5F2 1
+5F3 1
+5F4 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+600 1
+601 1
+602 1
+603 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+60C 1
+60D 1
+60E 1
+60F 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61B 1
+61C 1
+61D 1
+61E 1
+61F 1
+620 1
+621 1
+622 1
+623 1
+624 1
+625 1
+626 1
+627 1
+628 1
+629 1
+62A 1
+62B 1
+62C 1
+62D 1
+62E 1
+62F 1
+630 1
+631 1
+632 1
+633 1
+634 1
+635 1
+636 1
+637 1
+638 1
+639 1
+63A 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+640 1
+641 1
+642 1
+643 1
+644 1
+645 1
+646 1
+647 1
+648 1
+649 1
+64A 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+660 1
+661 1
+662 1
+663 1
+664 1
+665 1
+666 1
+667 1
+668 1
+669 1
+66A 1
+66B 1
+66C 1
+66D 1
+66E 1
+66F 1
+670 1
+671 1
+672 1
+673 1
+674 1
+675 1
+676 1
+677 1
+678 1
+679 1
+67A 1
+67B 1
+67C 1
+67D 1
+67E 1
+67F 1
+680 1
+681 1
+682 1
+683 1
+684 1
+685 1
+686 1
+687 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+69A 1
+69B 1
+69C 1
+69D 1
+69E 1
+69F 1
+6A0 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+6A7 1
+6A8 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+6B9 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6BE 1
+6BF 1
+6C0 1
+6C1 1
+6C2 1
+6C3 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CC 1
+6CD 1
+6CE 1
+6CF 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+6D4 1
+6D5 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E5 1
+6E6 1
+6E7 1
+6E8 1
+6E9 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+6EE 1
+6EF 1
+6F0 1
+6F1 1
+6F2 1
+6F3 1
+6F4 1
+6F5 1
+6F6 1
+6F7 1
+6F8 1
+6F9 1
+6FA 1
+6FB 1
+6FC 1
+6FD 1
+6FE 1
+6FF 1
+700 1
+701 1
+702 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+709 1
+70A 1
+70B 1
+70C 1
+70D 1
+70E 1
+70F 1
+710 1
+711 1
+712 1
+713 1
+714 1
+715 1
+716 1
+717 1
+718 1
+719 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+72D 1
+72E 1
+72F 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+74B 1
+74C 1
+74D 1
+74E 1
+74F 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+780 1
+781 1
+782 1
+783 1
+784 1
+785 1
+786 1
+787 1
+788 1
+789 1
+78A 1
+78B 1
+78C 1
+78D 1
+78E 1
+78F 1
+790 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+798 1
+799 1
+79A 1
+79B 1
+79C 1
+79D 1
+79E 1
+79F 1
+7A0 1
+7A1 1
+7A2 1
+7A3 1
+7A4 1
+7A5 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+7B1 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+150 1
+151 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+170 1
+171 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C2 1
+C3 1
+E0 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C1 1
+E1 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+D0 1
+F0 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+45 1
+65 1
+C8 1
+CA 1
+CB 1
+E8 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+C9 1
+E9 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CE 1
+CF 1
+EC 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CD 1
+ED 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+F2 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DB 1
+DC 1
+F9 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DA 1
+FA 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+DD 1
+FD 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+DE 1
+FE 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+C5 1
+E5 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+122 1
+123 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+59 1
+79 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+1E8 1
+1E9 1
+136 1
+137 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+13B 1
+13C 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+145 1
+146 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+156 1
+157 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+59 1
+69 1
+79 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+653 1
+654 1
+655 1
+670 1
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+651 1
+652 1
+656 1
+657 1
+658 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+64E 1
+26 1
+650 1
+23 1
+64F 1
+25 1
+66A 1
+64B 1
+64D 1
+64C 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+622 1
+627 1
+671 1
+621 1
+623 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+625 1
+624 1
+626 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+674 1
+6FD 1
+672 1
+673 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+689 1
+68A 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A9 1
+643 1
+6A8 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6D5 1
+648 1
+6E5 1
+676 1
+647 1
+6C4 1
+629 1
+6C5 1
+6C0 1
+6C6 1
+6C7 1
+6CC 1
+677 1
+649 1
+6C8 1
+64A 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+6E6 1
+678 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+104 1
+105 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+106 1
+107 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+118 1
+119 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+141 1
+142 1
+29F 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+143 1
+144 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D4 1
+D5 1
+D6 1
+F2 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D3 1
+F3 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15A 1
+15B 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+17D 1
+17E 1
+18D 1
+179 1
+17A 1
+17B 1
+17C 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+4A 1
+69 1
+6A 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+55 1
+56 1
+75 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+102 1
+103 1
+C2 1
+E2 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CF 1
+EC 1
+ED 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+CE 1
+EE 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+2E2 1
+DF 1
+15E 1
+15F 1
+218 1
+219 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+164 1
+165 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+162 1
+163 1
+21A 1
+21B 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C4 1
+E4 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D5 1
+D6 1
+F2 1
+F3 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D4 1
+F4 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+368 1
+10C 1
+10D 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+160 1
+161 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+18D 1
+17D 1
+17E 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+D1 1
+F1 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+E0 1
+E1 1
+E2 1
+E3 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DC 1
+DD 1
+FC 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+C5 1
+E5 1
+C4 1
+C6 1
+E4 1
+E6 1
+D6 1
+D8 1
+F6 1
+F8 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+C7 1
+E7 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+11E 1
+11F 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+49 1
+131 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+F2 1
+F3 1
+F4 1
+F5 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+D6 1
+F6 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+15E 1
+15F 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+F9 1
+FA 1
+FB 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+DC 1
+FC 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+USE test;
+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 # # #
+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;
+DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+85 1
+7F 1
+80 1
+81 1
+82 1
+83 1
+84 1
+86 1
+87 1
+88 1
+89 1
+8A 1
+8B 1
+8C 1
+8D 1
+8E 1
+8F 1
+90 1
+91 1
+92 1
+93 1
+94 1
+95 1
+96 1
+97 1
+98 1
+99 1
+9A 1
+9B 1
+9C 1
+9D 1
+9E 1
+9F 1
+A0 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+30A 1
+30B 1
+30C 1
+30D 1
+30E 1
+30F 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+31A 1
+31B 1
+31C 1
+31D 1
+31E 1
+31F 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+32A 1
+32B 1
+32C 1
+32D 1
+32E 1
+32F 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+33A 1
+33B 1
+33C 1
+33D 1
+33E 1
+33F 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+34A 1
+34B 1
+34C 1
+34D 1
+34E 1
+34F 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+35D 1
+35E 1
+35F 1
+360 1
+361 1
+362 1
+483 1
+484 1
+485 1
+486 1
+488 1
+489 1
+591 1
+592 1
+593 1
+594 1
+595 1
+596 1
+597 1
+598 1
+599 1
+59A 1
+59B 1
+59C 1
+59D 1
+59E 1
+59F 1
+5A0 1
+5A1 1
+5A3 1
+5A4 1
+5A5 1
+5A6 1
+5A7 1
+5A8 1
+5A9 1
+5AA 1
+5AB 1
+5AC 1
+5AD 1
+5AE 1
+5AF 1
+5B0 1
+5B1 1
+5B2 1
+5B3 1
+5B4 1
+5B5 1
+5B6 1
+5B7 1
+5B8 1
+5B9 1
+5BB 1
+5BC 1
+5BD 1
+5BF 1
+5C1 1
+5C2 1
+5C4 1
+600 1
+601 1
+602 1
+603 1
+610 1
+611 1
+612 1
+613 1
+614 1
+615 1
+64B 1
+64C 1
+64D 1
+64E 1
+64F 1
+650 1
+651 1
+652 1
+653 1
+654 1
+655 1
+656 1
+657 1
+658 1
+670 1
+6D6 1
+6D7 1
+6D8 1
+6D9 1
+6DA 1
+6DB 1
+6DC 1
+6DD 1
+6DE 1
+6DF 1
+6E0 1
+6E1 1
+6E2 1
+6E3 1
+6E4 1
+6E7 1
+6E8 1
+6EA 1
+6EB 1
+6EC 1
+6ED 1
+70F 1
+711 1
+730 1
+731 1
+732 1
+733 1
+734 1
+735 1
+736 1
+737 1
+738 1
+739 1
+73A 1
+73B 1
+73C 1
+73D 1
+73E 1
+73F 1
+740 1
+741 1
+742 1
+743 1
+744 1
+745 1
+746 1
+747 1
+748 1
+749 1
+74A 1
+640 1
+60 1
+B4 1
+384 1
+2DC 1
+5E 1
+AF 1
+2D8 1
+2D9 1
+A8 1
+385 1
+2DA 1
+2DD 1
+B8 1
+2DB 1
+5F 1
+AD 1
+2D 1
+58A 1
+2C 1
+55D 1
+60C 1
+60D 1
+66B 1
+66C 1
+3B 1
+37E 1
+61B 1
+3A 1
+589 1
+703 1
+704 1
+705 1
+706 1
+707 1
+708 1
+21 1
+A1 1
+55C 1
+3F 1
+BF 1
+55E 1
+61F 1
+709 1
+2E 1
+6D4 1
+701 1
+702 1
+B7 1
+387 1
+700 1
+27 1
+22 1
+AB 1
+BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+A7 1
+B6 1
+A9 1
+AE 1
+40 1
+2A 1
+66D 1
+2F 1
+26 1
+23 1
+25 1
+66A 1
+55A 1
+55B 1
+55F 1
+5BE 1
+5C0 1
+5C3 1
+5F3 1
+5F4 1
+70A 1
+70B 1
+70C 1
+70D 1
+2B9 1
+374 1
+375 1
+2BA 1
+2C2 1
+2C3 1
+2C4 1
+2C5 1
+2C6 1
+2C7 1
+2C8 1
+2C9 1
+2CA 1
+2CB 1
+2CC 1
+2CD 1
+2CE 1
+2CF 1
+2D2 1
+2D3 1
+2D4 1
+2D5 1
+2D6 1
+2D7 1
+2DE 1
+2DF 1
+2E5 1
+2E6 1
+2E7 1
+2E8 1
+2E9 1
+2EA 1
+2EB 1
+2EC 1
+2ED 1
+2EF 1
+2F0 1
+2F1 1
+2F2 1
+2F3 1
+2F4 1
+2F5 1
+2F6 1
+2F7 1
+2F8 1
+2F9 1
+2FA 1
+2FB 1
+2FC 1
+2FD 1
+2FE 1
+2FF 1
+B0 1
+482 1
+60E 1
+60F 1
+6E9 1
+3F6 1
+2B 1
+B1 1
+F7 1
+D7 1
+3C 1
+3D 1
+3E 1
+AC 1
+7C 1
+A6 1
+7E 1
+2D0 1
+2D1 1
+A4 1
+A2 1
+24 1
+A3 1
+A5 1
+30 1
+660 1
+6F0 1
+31 1
+B9 1
+661 1
+6F1 1
+BD 1
+BC 1
+32 1
+B2 1
+662 1
+6F2 1
+33 1
+B3 1
+663 1
+6F3 1
+BE 1
+34 1
+664 1
+6F4 1
+35 1
+665 1
+6F5 1
+36 1
+666 1
+6F6 1
+37 1
+667 1
+6F7 1
+38 1
+668 1
+6F8 1
+39 1
+669 1
+6F9 1
+41 1
+61 1
+AA 1
+C0 1
+C1 1
+C2 1
+C3 1
+C4 1
+C5 1
+E0 1
+E1 1
+E2 1
+E3 1
+E4 1
+E5 1
+100 1
+101 1
+102 1
+103 1
+104 1
+105 1
+1CD 1
+1CE 1
+1DE 1
+1DF 1
+1E0 1
+1E1 1
+1FA 1
+1FB 1
+200 1
+201 1
+202 1
+203 1
+226 1
+227 1
+363 1
+C6 1
+E6 1
+1E2 1
+1E3 1
+1FC 1
+1FD 1
+250 1
+251 1
+252 1
+42 1
+62 1
+299 1
+180 1
+181 1
+253 1
+182 1
+183 1
+43 1
+63 1
+C7 1
+E7 1
+106 1
+107 1
+108 1
+109 1
+10A 1
+10B 1
+10C 1
+10D 1
+368 1
+187 1
+188 1
+255 1
+44 1
+64 1
+10E 1
+10F 1
+369 1
+1C4 1
+1C5 1
+1C6 1
+1F1 1
+1F2 1
+1F3 1
+2A3 1
+2A5 1
+2A4 1
+110 1
+111 1
+189 1
+256 1
+18A 1
+257 1
+18B 1
+18C 1
+221 1
+D0 1
+F0 1
+45 1
+65 1
+C8 1
+C9 1
+CA 1
+CB 1
+E8 1
+E9 1
+EA 1
+EB 1
+112 1
+113 1
+114 1
+115 1
+116 1
+117 1
+118 1
+119 1
+11A 1
+11B 1
+204 1
+205 1
+206 1
+207 1
+228 1
+229 1
+364 1
+18E 1
+1DD 1
+18F 1
+259 1
+190 1
+25B 1
+258 1
+25A 1
+25C 1
+25D 1
+25E 1
+29A 1
+264 1
+46 1
+66 1
+2A9 1
+191 1
+192 1
+47 1
+67 1
+11C 1
+11D 1
+11E 1
+11F 1
+120 1
+121 1
+122 1
+123 1
+1E6 1
+1E7 1
+1F4 1
+1F5 1
+261 1
+262 1
+1E4 1
+1E5 1
+193 1
+260 1
+29B 1
+194 1
+263 1
+2E0 1
+1A2 1
+1A3 1
+48 1
+68 1
+124 1
+125 1
+21E 1
+21F 1
+2B0 1
+36A 1
+29C 1
+195 1
+1F6 1
+126 1
+127 1
+266 1
+2B1 1
+267 1
+2BB 1
+2BD 1
+49 1
+69 1
+CC 1
+CD 1
+CE 1
+CF 1
+EC 1
+ED 1
+EE 1
+EF 1
+128 1
+129 1
+12A 1
+12B 1
+12C 1
+12D 1
+12E 1
+12F 1
+130 1
+1CF 1
+1D0 1
+208 1
+209 1
+20A 1
+20B 1
+365 1
+132 1
+133 1
+131 1
+26A 1
+197 1
+268 1
+196 1
+269 1
+4A 1
+6A 1
+134 1
+135 1
+1F0 1
+2B2 1
+29D 1
+25F 1
+284 1
+4B 1
+6B 1
+136 1
+137 1
+1E8 1
+1E9 1
+198 1
+199 1
+29E 1
+4C 1
+6C 1
+139 1
+13A 1
+13B 1
+13C 1
+13D 1
+13E 1
+2E1 1
+13F 1
+140 1
+1C7 1
+1C8 1
+1C9 1
+2AA 1
+2AB 1
+29F 1
+141 1
+142 1
+19A 1
+26B 1
+26C 1
+26D 1
+234 1
+26E 1
+19B 1
+28E 1
+4D 1
+6D 1
+36B 1
+271 1
+4E 1
+6E 1
+D1 1
+F1 1
+143 1
+144 1
+145 1
+146 1
+147 1
+148 1
+1F8 1
+1F9 1
+1CA 1
+1CB 1
+1CC 1
+274 1
+19D 1
+272 1
+19E 1
+220 1
+273 1
+235 1
+14A 1
+14B 1
+4F 1
+6F 1
+BA 1
+D2 1
+D3 1
+D4 1
+D5 1
+D6 1
+F2 1
+F3 1
+F4 1
+F5 1
+F6 1
+14C 1
+14D 1
+14E 1
+14F 1
+150 1
+151 1
+1A0 1
+1A1 1
+1D1 1
+1D2 1
+1EA 1
+1EB 1
+1EC 1
+1ED 1
+20C 1
+20D 1
+20E 1
+20F 1
+22A 1
+22B 1
+22C 1
+22D 1
+22E 1
+22F 1
+230 1
+231 1
+366 1
+152 1
+153 1
+276 1
+D8 1
+F8 1
+1FE 1
+1FF 1
+186 1
+254 1
+19F 1
+275 1
+277 1
+222 1
+223 1
+50 1
+70 1
+1A4 1
+1A5 1
+278 1
+51 1
+71 1
+2A0 1
+138 1
+52 1
+72 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+210 1
+211 1
+212 1
+213 1
+2B3 1
+36C 1
+1A6 1
+280 1
+279 1
+2B4 1
+27A 1
+27B 1
+2B5 1
+27C 1
+27D 1
+27E 1
+27F 1
+281 1
+2B6 1
+53 1
+73 1
+15A 1
+15B 1
+15C 1
+15D 1
+15E 1
+15F 1
+160 1
+161 1
+17F 1
+218 1
+219 1
+2E2 1
+DF 1
+282 1
+1A9 1
+283 1
+1AA 1
+285 1
+286 1
+54 1
+74 1
+162 1
+163 1
+164 1
+165 1
+21A 1
+21B 1
+36D 1
+2A8 1
+1BE 1
+2A6 1
+2A7 1
+166 1
+167 1
+1AB 1
+1AC 1
+1AD 1
+1AE 1
+288 1
+236 1
+287 1
+55 1
+75 1
+D9 1
+DA 1
+DB 1
+DC 1
+F9 1
+FA 1
+FB 1
+FC 1
+168 1
+169 1
+16A 1
+16B 1
+16C 1
+16D 1
+16E 1
+16F 1
+170 1
+171 1
+172 1
+173 1
+1AF 1
+1B0 1
+1D3 1
+1D4 1
+1D5 1
+1D6 1
+1D7 1
+1D8 1
+1D9 1
+1DA 1
+1DB 1
+1DC 1
+214 1
+215 1
+216 1
+217 1
+367 1
+289 1
+265 1
+2AE 1
+2AF 1
+19C 1
+26F 1
+270 1
+1B1 1
+28A 1
+56 1
+76 1
+36E 1
+1B2 1
+28B 1
+28C 1
+57 1
+77 1
+174 1
+175 1
+2B7 1
+28D 1
+58 1
+78 1
+2E3 1
+36F 1
+59 1
+79 1
+DD 1
+FD 1
+FF 1
+176 1
+177 1
+178 1
+232 1
+233 1
+2B8 1
+28F 1
+1B3 1
+1B4 1
+5A 1
+7A 1
+179 1
+17A 1
+17B 1
+17C 1
+17D 1
+17E 1
+18D 1
+1B5 1
+1B6 1
+224 1
+225 1
+290 1
+291 1
+1B7 1
+1EE 1
+1EF 1
+292 1
+1B8 1
+1B9 1
+1BA 1
+293 1
+21C 1
+21D 1
+DE 1
+FE 1
+1BF 1
+1F7 1
+1BB 1
+1A7 1
+1A8 1
+1BC 1
+1BD 1
+184 1
+185 1
+294 1
+2C0 1
+2BC 1
+149 1
+2EE 1
+2BE 1
+295 1
+2E4 1
+2BF 1
+2C1 1
+2A1 1
+2A2 1
+296 1
+1C0 1
+1C1 1
+1C2 1
+1C3 1
+297 1
+298 1
+2AC 1
+2AD 1
+386 1
+391 1
+3AC 1
+3B1 1
+392 1
+3B2 1
+3D0 1
+393 1
+3B3 1
+394 1
+3B4 1
+388 1
+395 1
+3AD 1
+3B5 1
+3F5 1
+3DC 1
+3DD 1
+3DA 1
+3DB 1
+396 1
+3B6 1
+389 1
+397 1
+3AE 1
+3B7 1
+398 1
+3B8 1
+3D1 1
+3F4 1
+37A 1
+38A 1
+390 1
+399 1
+3AA 1
+3AF 1
+3B9 1
+3CA 1
+3F3 1
+39A 1
+3BA 1
+3F0 1
+3D7 1
+39B 1
+3BB 1
+B5 1
+39C 1
+3BC 1
+39D 1
+3BD 1
+39E 1
+3BE 1
+38C 1
+39F 1
+3BF 1
+3CC 1
+3A0 1
+3C0 1
+3D6 1
+3DE 1
+3DF 1
+3D8 1
+3D9 1
+3A1 1
+3C1 1
+3F1 1
+3A3 1
+3C2 1
+3C3 1
+3F2 1
+3F9 1
+3A4 1
+3C4 1
+38E 1
+3A5 1
+3AB 1
+3B0 1
+3C5 1
+3CB 1
+3CD 1
+3D2 1
+3D3 1
+3D4 1
+3A6 1
+3C6 1
+3D5 1
+3A7 1
+3C7 1
+3A8 1
+3C8 1
+38F 1
+3A9 1
+3C9 1
+3CE 1
+3E0 1
+3E1 1
+3F7 1
+3F8 1
+3FA 1
+3FB 1
+3E2 1
+3E3 1
+3E4 1
+3E5 1
+3E6 1
+3E7 1
+3E8 1
+3E9 1
+3EA 1
+3EB 1
+3EC 1
+3ED 1
+3EE 1
+3EF 1
+410 1
+430 1
+4D0 1
+4D1 1
+4D2 1
+4D3 1
+4D8 1
+4D9 1
+4DA 1
+4DB 1
+4D4 1
+4D5 1
+411 1
+431 1
+412 1
+432 1
+413 1
+433 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+414 1
+434 1
+500 1
+501 1
+402 1
+452 1
+502 1
+503 1
+403 1
+453 1
+498 1
+499 1
+400 1
+401 1
+415 1
+435 1
+450 1
+451 1
+4D6 1
+4D7 1
+404 1
+454 1
+416 1
+436 1
+4C1 1
+4C2 1
+4DC 1
+4DD 1
+496 1
+497 1
+417 1
+437 1
+504 1
+505 1
+4DE 1
+4DF 1
+405 1
+455 1
+4E0 1
+4E1 1
+506 1
+507 1
+40D 1
+418 1
+438 1
+45D 1
+4E2 1
+4E3 1
+48A 1
+48B 1
+4E4 1
+4E5 1
+406 1
+456 1
+407 1
+457 1
+419 1
+439 1
+408 1
+458 1
+41A 1
+43A 1
+49A 1
+49B 1
+4C3 1
+4C4 1
+4A0 1
+4A1 1
+49E 1
+49F 1
+49C 1
+49D 1
+41B 1
+43B 1
+4C5 1
+4C6 1
+409 1
+459 1
+508 1
+509 1
+41C 1
+43C 1
+4CD 1
+4CE 1
+41D 1
+43D 1
+4C9 1
+4CA 1
+4A2 1
+4A3 1
+4C7 1
+4C8 1
+4A4 1
+4A5 1
+40A 1
+45A 1
+50A 1
+50B 1
+41E 1
+43E 1
+4E6 1
+4E7 1
+4E8 1
+4E9 1
+4EA 1
+4EB 1
+41F 1
+43F 1
+4A6 1
+4A7 1
+480 1
+481 1
+420 1
+440 1
+48E 1
+48F 1
+421 1
+441 1
+50C 1
+50D 1
+4AA 1
+4AB 1
+422 1
+442 1
+50E 1
+50F 1
+4AC 1
+4AD 1
+40B 1
+45B 1
+40C 1
+45C 1
+423 1
+443 1
+4EE 1
+4EF 1
+40E 1
+45E 1
+4F0 1
+4F1 1
+4F2 1
+4F3 1
+4AE 1
+4AF 1
+4B0 1
+4B1 1
+478 1
+479 1
+424 1
+444 1
+425 1
+445 1
+4B2 1
+4B3 1
+4BA 1
+4BB 1
+460 1
+461 1
+47E 1
+47F 1
+47C 1
+47D 1
+47A 1
+47B 1
+426 1
+446 1
+4B4 1
+4B5 1
+427 1
+447 1
+4F4 1
+4F5 1
+4B6 1
+4B7 1
+4CB 1
+4CC 1
+4B8 1
+4B9 1
+4BC 1
+4BD 1
+4BE 1
+4BF 1
+40F 1
+45F 1
+428 1
+448 1
+429 1
+449 1
+42A 1
+44A 1
+42B 1
+44B 1
+4F8 1
+4F9 1
+42C 1
+44C 1
+48C 1
+48D 1
+462 1
+463 1
+42D 1
+44D 1
+4EC 1
+4ED 1
+42E 1
+44E 1
+42F 1
+44F 1
+464 1
+465 1
+466 1
+467 1
+46A 1
+46B 1
+468 1
+469 1
+46C 1
+46D 1
+46E 1
+46F 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+4A8 1
+4A9 1
+4C0 1
+531 1
+561 1
+532 1
+562 1
+533 1
+563 1
+534 1
+564 1
+535 1
+565 1
+587 1
+536 1
+566 1
+537 1
+567 1
+538 1
+568 1
+539 1
+569 1
+53A 1
+56A 1
+53B 1
+56B 1
+53C 1
+56C 1
+53D 1
+56D 1
+53E 1
+56E 1
+53F 1
+56F 1
+540 1
+570 1
+541 1
+571 1
+542 1
+572 1
+543 1
+573 1
+544 1
+574 1
+545 1
+575 1
+546 1
+576 1
+547 1
+577 1
+548 1
+578 1
+549 1
+579 1
+54A 1
+57A 1
+54B 1
+57B 1
+54C 1
+57C 1
+54D 1
+57D 1
+54E 1
+57E 1
+54F 1
+57F 1
+550 1
+580 1
+551 1
+581 1
+552 1
+582 1
+553 1
+583 1
+554 1
+584 1
+555 1
+585 1
+556 1
+586 1
+559 1
+5D0 1
+5D1 1
+5D2 1
+5D3 1
+5D4 1
+5D5 1
+5F0 1
+5F1 1
+5D6 1
+5D7 1
+5D8 1
+5D9 1
+5F2 1
+5DA 1
+5DB 1
+5DC 1
+5DD 1
+5DE 1
+5DF 1
+5E0 1
+5E1 1
+5E2 1
+5E3 1
+5E4 1
+5E5 1
+5E6 1
+5E7 1
+5E8 1
+5E9 1
+5EA 1
+621 1
+674 1
+6FD 1
+622 1
+623 1
+672 1
+671 1
+624 1
+625 1
+673 1
+626 1
+627 1
+675 1
+66E 1
+628 1
+67B 1
+67E 1
+680 1
+629 1
+62A 1
+62B 1
+679 1
+67A 1
+67C 1
+67D 1
+67F 1
+62C 1
+683 1
+684 1
+686 1
+6BF 1
+687 1
+62D 1
+62E 1
+681 1
+682 1
+685 1
+62F 1
+630 1
+688 1
+689 1
+68A 1
+68B 1
+68C 1
+68D 1
+68E 1
+68F 1
+690 1
+6EE 1
+631 1
+632 1
+691 1
+692 1
+693 1
+694 1
+695 1
+696 1
+697 1
+698 1
+699 1
+6EF 1
+633 1
+634 1
+69A 1
+69B 1
+69C 1
+6FA 1
+635 1
+636 1
+69D 1
+69E 1
+6FB 1
+637 1
+638 1
+69F 1
+639 1
+63A 1
+6A0 1
+6FC 1
+641 1
+6A1 1
+6A2 1
+6A3 1
+6A4 1
+6A5 1
+6A6 1
+66F 1
+642 1
+6A7 1
+6A8 1
+643 1
+6A9 1
+6AA 1
+6AB 1
+6AC 1
+6AD 1
+6AE 1
+6AF 1
+6B0 1
+6B1 1
+6B2 1
+6B3 1
+6B4 1
+644 1
+6B5 1
+6B6 1
+6B7 1
+6B8 1
+645 1
+6FE 1
+646 1
+6BA 1
+6BB 1
+6BC 1
+6BD 1
+6B9 1
+647 1
+6BE 1
+6C1 1
+6C2 1
+6C3 1
+6FF 1
+6C0 1
+6D5 1
+648 1
+6E5 1
+676 1
+6C4 1
+6C5 1
+6C6 1
+6C7 1
+677 1
+6C8 1
+6C9 1
+6CA 1
+6CB 1
+6CF 1
+649 1
+64A 1
+6E6 1
+678 1
+6CC 1
+6CD 1
+6CE 1
+6D0 1
+6D1 1
+6D2 1
+6D3 1
+710 1
+712 1
+72D 1
+713 1
+714 1
+72E 1
+716 1
+715 1
+72F 1
+717 1
+718 1
+719 1
+74D 1
+71A 1
+71B 1
+71C 1
+71D 1
+71E 1
+71F 1
+74E 1
+720 1
+721 1
+722 1
+723 1
+724 1
+725 1
+726 1
+727 1
+74F 1
+728 1
+729 1
+72A 1
+72B 1
+72C 1
+780 1
+799 1
+79A 1
+781 1
+782 1
+783 1
+79C 1
+784 1
+785 1
+786 1
+787 1
+7A2 1
+7A3 1
+788 1
+7A5 1
+789 1
+78A 1
+78B 1
+79B 1
+78C 1
+798 1
+7A0 1
+7A1 1
+78D 1
+78E 1
+7A4 1
+78F 1
+790 1
+79D 1
+79E 1
+79F 1
+791 1
+792 1
+793 1
+794 1
+795 1
+796 1
+797 1
+7B1 1
+7A6 1
+7A7 1
+7A8 1
+7A9 1
+7AA 1
+7AB 1
+7AC 1
+7AD 1
+7AE 1
+7AF 1
+7B0 1
+4E00 1
+4E01 1
+4E02 1
+4E03 1
+4E04 1
+4E05 1
+4E06 1
+4E07 1
+4E08 1
+4E09 1
+4E0A 1
+4E0B 1
+4E0C 1
+4E0D 1
+4E0E 1
+4E0F 1
+4E10 1
+4E11 1
+4E12 1
+4E13 1
+4E14 1
+4E15 1
+4E16 1
+4E17 1
+4E18 1
+4E19 1
+4E1A 1
+4E1B 1
+4E1C 1
+4E1D 1
+4E1E 1
+4E1F 1
+4E20 1
+4E21 1
+4E22 1
+4E23 1
+4E24 1
+4E25 1
+4E26 1
+4E27 1
+4E28 1
+4E29 1
+4E2A 1
+4E2B 1
+4E2C 1
+4E2D 1
+4E2E 1
+4E2F 1
+4E30 1
+4E31 1
+4E32 1
+4E33 1
+4E34 1
+4E35 1
+4E36 1
+4E37 1
+4E38 1
+4E39 1
+4E3A 1
+4E3B 1
+4E3C 1
+4E3D 1
+4E3E 1
+4E3F 1
+4E40 1
+4E41 1
+4E42 1
+4E43 1
+4E44 1
+4E45 1
+4E46 1
+4E47 1
+4E48 1
+4E49 1
+4E4A 1
+4E4B 1
+4E4C 1
+4E4D 1
+4E4E 1
+4E4F 1
+4E50 1
+4E51 1
+4E52 1
+4E53 1
+4E54 1
+4E55 1
+4E56 1
+4E57 1
+4E58 1
+4E59 1
+4E5A 1
+4E5B 1
+4E5C 1
+4E5D 1
+4E5E 1
+4E5F 1
+4E60 1
+4E61 1
+4E62 1
+4E63 1
+4E64 1
+4E65 1
+4E66 1
+4E67 1
+4E68 1
+4E69 1
+4E6A 1
+4E6B 1
+4E6C 1
+4E6D 1
+4E6E 1
+4E6F 1
+4E70 1
+4E71 1
+4E72 1
+4E73 1
+4E74 1
+4E75 1
+4E76 1
+4E77 1
+4E78 1
+4E79 1
+4E7A 1
+4E7B 1
+4E7C 1
+4E7D 1
+4E7E 1
+4E7F 1
+4E80 1
+4E81 1
+4E82 1
+4E83 1
+4E84 1
+4E85 1
+4E86 1
+4E87 1
+4E88 1
+4E89 1
+4E8A 1
+4E8B 1
+4E8C 1
+4E8D 1
+4E8E 1
+4E8F 1
+4E90 1
+4E91 1
+4E92 1
+4E93 1
+4E94 1
+4E95 1
+4E96 1
+4E97 1
+4E98 1
+4E99 1
+4E9A 1
+4E9B 1
+4E9C 1
+4E9D 1
+4E9E 1
+4E9F 1
+4EA0 1
+4EA1 1
+4EA2 1
+4EA3 1
+4EA4 1
+4EA5 1
+4EA6 1
+4EA7 1
+4EA8 1
+4EA9 1
+4EAA 1
+4EAB 1
+4EAC 1
+4EAD 1
+4EAE 1
+4EAF 1
+4EB0 1
+4EB1 1
+4EB2 1
+4EB3 1
+4EB4 1
+4EB5 1
+4EB6 1
+4EB7 1
+4EB8 1
+4EB9 1
+4EBA 1
+4EBB 1
+4EBC 1
+4EBD 1
+4EBE 1
+4EBF 1
+4EC0 1
+4EC1 1
+4EC2 1
+4EC3 1
+4EC4 1
+4EC5 1
+4EC6 1
+4EC7 1
+4EC8 1
+4EC9 1
+4ECA 1
+4ECB 1
+4ECC 1
+4ECD 1
+4ECE 1
+4ECF 1
+4ED0 1
+4ED1 1
+4ED2 1
+4ED3 1
+4ED4 1
+4ED5 1
+4ED6 1
+4ED7 1
+4ED8 1
+4ED9 1
+4EDA 1
+4EDB 1
+4EDC 1
+4EDD 1
+4EDE 1
+4EDF 1
+4EE0 1
+4EE1 1
+4EE2 1
+4EE3 1
+4EE4 1
+4EE5 1
+4EE6 1
+4EE7 1
+4EE8 1
+4EE9 1
+4EEA 1
+4EEB 1
+4EEC 1
+4EED 1
+4EEE 1
+4EEF 1
+4EF0 1
+4EF1 1
+4EF2 1
+4EF3 1
+4EF4 1
+4EF5 1
+4EF6 1
+4EF7 1
+4EF8 1
+4EF9 1
+4EFA 1
+4EFB 1
+4EFC 1
+4EFD 1
+4EFE 1
+4EFF 1
+4F00 1
+4F01 1
+4F02 1
+4F03 1
+4F04 1
+4F05 1
+4F06 1
+4F07 1
+4F08 1
+4F09 1
+4F0A 1
+4F0B 1
+4F0C 1
+4F0D 1
+4F0E 1
+4F0F 1
+4F10 1
+4F11 1
+4F12 1
+4F13 1
+4F14 1
+4F15 1
+4F16 1
+4F17 1
+4F18 1
+4F19 1
+4F1A 1
+4F1B 1
+4F1C 1
+4F1D 1
+4F1E 1
+4F1F 1
+4F20 1
+4F21 1
+4F22 1
+4F23 1
+4F24 1
+4F25 1
+4F26 1
+4F27 1
+4F28 1
+4F29 1
+4F2A 1
+4F2B 1
+4F2C 1
+4F2D 1
+4F2E 1
+4F2F 1
+4F30 1
+4F31 1
+4F32 1
+4F33 1
+4F34 1
+4F35 1
+4F36 1
+4F37 1
+4F38 1
+4F39 1
+4F3A 1
+4F3B 1
+4F3C 1
+4F3D 1
+4F3E 1
+4F3F 1
+4F40 1
+4F41 1
+4F42 1
+4F43 1
+4F44 1
+4F45 1
+4F46 1
+4F47 1
+4F48 1
+4F49 1
+4F4A 1
+4F4B 1
+4F4C 1
+4F4D 1
+4F4E 1
+4F4F 1
+4F50 1
+4F51 1
+4F52 1
+4F53 1
+4F54 1
+4F55 1
+4F56 1
+4F57 1
+4F58 1
+4F59 1
+4F5A 1
+4F5B 1
+4F5C 1
+4F5D 1
+4F5E 1
+4F5F 1
+4F60 1
+4F61 1
+4F62 1
+4F63 1
+4F64 1
+4F65 1
+4F66 1
+4F67 1
+4F68 1
+4F69 1
+4F6A 1
+4F6B 1
+4F6C 1
+4F6D 1
+4F6E 1
+4F6F 1
+4F70 1
+4F71 1
+4F72 1
+4F73 1
+4F74 1
+4F75 1
+4F76 1
+4F77 1
+4F78 1
+4F79 1
+4F7A 1
+4F7B 1
+4F7C 1
+4F7D 1
+4F7E 1
+4F7F 1
+4F80 1
+4F81 1
+4F82 1
+4F83 1
+4F84 1
+4F85 1
+4F86 1
+4F87 1
+4F88 1
+4F89 1
+4F8A 1
+4F8B 1
+4F8C 1
+4F8D 1
+4F8E 1
+4F8F 1
+4F90 1
+4F91 1
+4F92 1
+4F93 1
+4F94 1
+4F95 1
+4F96 1
+4F97 1
+4F98 1
+4F99 1
+4F9A 1
+4F9B 1
+4F9C 1
+4F9D 1
+4F9E 1
+4F9F 1
+4FA0 1
+4FA1 1
+4FA2 1
+4FA3 1
+4FA4 1
+4FA5 1
+4FA6 1
+4FA7 1
+4FA8 1
+4FA9 1
+4FAA 1
+4FAB 1
+4FAC 1
+4FAD 1
+4FAE 1
+4FAF 1
+4FB0 1
+4FB1 1
+4FB2 1
+4FB3 1
+4FB4 1
+4FB5 1
+4FB6 1
+4FB7 1
+4FB8 1
+4FB9 1
+4FBA 1
+4FBB 1
+4FBC 1
+4FBD 1
+4FBE 1
+4FBF 1
+4FC0 1
+4FC1 1
+4FC2 1
+4FC3 1
+4FC4 1
+4FC5 1
+4FC6 1
+4FC7 1
+4FC8 1
+4FC9 1
+4FCA 1
+4FCB 1
+4FCC 1
+4FCD 1
+4FCE 1
+4FCF 1
+4FD0 1
+4FD1 1
+4FD2 1
+4FD3 1
+4FD4 1
+4FD5 1
+4FD6 1
+4FD7 1
+4FD8 1
+4FD9 1
+4FDA 1
+4FDB 1
+4FDC 1
+4FDD 1
+4FDE 1
+4FDF 1
+4FE0 1
+4FE1 1
+4FE2 1
+4FE3 1
+4FE4 1
+4FE5 1
+4FE6 1
+4FE7 1
+4FE8 1
+4FE9 1
+4FEA 1
+4FEB 1
+4FEC 1
+4FED 1
+4FEE 1
+4FEF 1
+4FF0 1
+4FF1 1
+4FF2 1
+4FF3 1
+4FF4 1
+4FF5 1
+4FF6 1
+4FF7 1
+4FF8 1
+4FF9 1
+4FFA 1
+4FFB 1
+4FFC 1
+4FFD 1
+4FFE 1
+4FFF 1
+237 1
+238 1
+239 1
+23A 1
+23B 1
+23C 1
+23D 1
+23E 1
+23F 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+24A 1
+24B 1
+24C 1
+24D 1
+24E 1
+24F 1
+358 1
+359 1
+35A 1
+35B 1
+35C 1
+370 1
+371 1
+372 1
+373 1
+376 1
+377 1
+378 1
+379 1
+37B 1
+37C 1
+37D 1
+37F 1
+380 1
+381 1
+382 1
+383 1
+38B 1
+38D 1
+3A2 1
+3CF 1
+3FC 1
+3FD 1
+3FE 1
+3FF 1
+487 1
+4CF 1
+4F6 1
+4F7 1
+4FA 1
+4FB 1
+4FC 1
+4FD 1
+4FE 1
+4FF 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+51A 1
+51B 1
+51C 1
+51D 1
+51E 1
+51F 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+52A 1
+52B 1
+52C 1
+52D 1
+52E 1
+52F 1
+530 1
+557 1
+558 1
+560 1
+588 1
+58B 1
+58C 1
+58D 1
+58E 1
+58F 1
+590 1
+5A2 1
+5BA 1
+5C5 1
+5C6 1
+5C7 1
+5C8 1
+5C9 1
+5CA 1
+5CB 1
+5CC 1
+5CD 1
+5CE 1
+5CF 1
+5EB 1
+5EC 1
+5ED 1
+5EE 1
+5EF 1
+5F5 1
+5F6 1
+5F7 1
+5F8 1
+5F9 1
+5FA 1
+5FB 1
+5FC 1
+5FD 1
+5FE 1
+5FF 1
+604 1
+605 1
+606 1
+607 1
+608 1
+609 1
+60A 1
+60B 1
+616 1
+617 1
+618 1
+619 1
+61A 1
+61C 1
+61D 1
+61E 1
+620 1
+63B 1
+63C 1
+63D 1
+63E 1
+63F 1
+659 1
+65A 1
+65B 1
+65C 1
+65D 1
+65E 1
+65F 1
+70E 1
+74B 1
+74C 1
+750 1
+751 1
+752 1
+753 1
+754 1
+755 1
+756 1
+757 1
+758 1
+759 1
+75A 1
+75B 1
+75C 1
+75D 1
+75E 1
+75F 1
+760 1
+761 1
+762 1
+763 1
+764 1
+765 1
+766 1
+767 1
+768 1
+769 1
+76A 1
+76B 1
+76C 1
+76D 1
+76E 1
+76F 1
+770 1
+771 1
+772 1
+773 1
+774 1
+775 1
+776 1
+777 1
+778 1
+779 1
+77A 1
+77B 1
+77C 1
+77D 1
+77E 1
+77F 1
+7B2 1
+7B3 1
+7B4 1
+7B5 1
+7B6 1
+7B7 1
+7B8 1
+7B9 1
+7BA 1
+7BB 1
+7BC 1
+7BD 1
+7BE 1
+7BF 1
+7C0 1
+7C1 1
+7C2 1
+7C3 1
+7C4 1
+7C5 1
+7C6 1
+7C7 1
+7C8 1
+7C9 1
+7CA 1
+7CB 1
+7CC 1
+7CD 1
+7CE 1
+7CF 1
+7D0 1
+7D1 1
+7D2 1
+7D3 1
+7D4 1
+7D5 1
+7D6 1
+7D7 1
+7D8 1
+7D9 1
+7DA 1
+7DB 1
+7DC 1
+7DD 1
+7DE 1
+7DF 1
+7E0 1
+7E1 1
+7E2 1
+7E3 1
+7E4 1
+7E5 1
+7E6 1
+7E7 1
+7E8 1
+7E9 1
+7EA 1
+7EB 1
+7EC 1
+7ED 1
+7EE 1
+7EF 1
+7F0 1
+7F1 1
+7F2 1
+7F3 1
+7F4 1
+7F5 1
+7F6 1
+7F7 1
+7F8 1
+7F9 1
+7FA 1
+7FB 1
+7FC 1
+7FD 1
+7FE 1
+7FF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+4A 1
+4B 1
+4C 1
+4D 1
+4E 1
+4F 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+5A 1
+5B 1
+5E 1
+5F 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+6A 1
+6B 1
+6C 1
+6D 1
+6E 1
+6F 1
+70 1
+71 1
+72 1
+73 1
+74 1
+75 1
+76 1
+77 1
+78 1
+79 1
+7A 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B5 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C386 1
+C387 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C390 1
+C391 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C397 1
+C398 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C39D 1
+C39E 1
+C39F 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C3A6 1
+C3A7 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C3B0 1
+C3B1 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C3B7 1
+C3B8 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C3BD 1
+C3BE 1
+C3BF 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+C48E 1
+C48F 1
+C490 1
+C491 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C4A4 1
+C4A5 1
+C4A6 1
+C4A7 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C4B2 1
+C4B3 1
+C4B4 1
+C4B5 1
+C4B6 1
+C4B7 1
+C4B8 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C589 1
+C58A 1
+C58B 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C592 1
+C593 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C5A6 1
+C5A7 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C5B4 1
+C5B5 1
+C5B6 1
+C5B7 1
+C5B8 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C5BF 1
+C680 1
+C681 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C687 1
+C688 1
+C689 1
+C68A 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C68F 1
+C690 1
+C691 1
+C692 1
+C693 1
+C694 1
+C695 1
+C696 1
+C697 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C69D 1
+C69E 1
+C69F 1
+C6A0 1
+C6A1 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+C6A7 1
+C6A8 1
+C6A9 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+C6AF 1
+C6B0 1
+C6B1 1
+C6B2 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C6BF 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C78D 1
+C78E 1
+C78F 1
+C790 1
+C791 1
+C792 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C79D 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7A2 1
+C7A3 1
+C7A4 1
+C7A5 1
+C7A6 1
+C7A7 1
+C7A8 1
+C7A9 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C7AE 1
+C7AF 1
+C7B0 1
+C7B1 1
+C7B2 1
+C7B3 1
+C7B4 1
+C7B5 1
+C7B6 1
+C7B7 1
+C7B8 1
+C7B9 1
+C7BA 1
+C7BB 1
+C7BC 1
+C7BD 1
+C7BE 1
+C7BF 1
+C880 1
+C881 1
+C882 1
+C883 1
+C884 1
+C885 1
+C886 1
+C887 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C890 1
+C891 1
+C892 1
+C893 1
+C894 1
+C895 1
+C896 1
+C897 1
+C898 1
+C899 1
+C89A 1
+C89B 1
+C89C 1
+C89D 1
+C89E 1
+C89F 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8A6 1
+C8A7 1
+C8A8 1
+C8A9 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+C8B2 1
+C8B3 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C993 1
+C994 1
+C995 1
+C996 1
+C997 1
+C998 1
+C999 1
+C99A 1
+C99B 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A0 1
+C9A1 1
+C9A2 1
+C9A3 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9A8 1
+C9A9 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9AF 1
+C9B0 1
+C9B1 1
+C9B2 1
+C9B3 1
+C9B4 1
+C9B5 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA80 1
+CA81 1
+CA82 1
+CA83 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA88 1
+CA89 1
+CA8A 1
+CA8B 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA92 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE86 1
+CE87 1
+CE88 1
+CE89 1
+CE8A 1
+CE8B 1
+CE8C 1
+CE8D 1
+CE8E 1
+CE8F 1
+CE90 1
+CE91 1
+CE92 1
+CE93 1
+CE94 1
+CE95 1
+CE96 1
+CE97 1
+CE98 1
+CE99 1
+CE9A 1
+CE9B 1
+CE9C 1
+CE9D 1
+CE9E 1
+CE9F 1
+CEA0 1
+CEA1 1
+CEA2 1
+CEA3 1
+CEA4 1
+CEA5 1
+CEA6 1
+CEA7 1
+CEA8 1
+CEA9 1
+CEAA 1
+CEAB 1
+CEAC 1
+CEAD 1
+CEAE 1
+CEAF 1
+CEB0 1
+CEB1 1
+CEB2 1
+CEB3 1
+CEB4 1
+CEB5 1
+CEB6 1
+CEB7 1
+CEB8 1
+CEB9 1
+CEBA 1
+CEBB 1
+CEBC 1
+CEBD 1
+CEBE 1
+CEBF 1
+CF80 1
+CF81 1
+CF82 1
+CF83 1
+CF84 1
+CF85 1
+CF86 1
+CF87 1
+CF88 1
+CF89 1
+CF8A 1
+CF8B 1
+CF8C 1
+CF8D 1
+CF8E 1
+CF8F 1
+CF90 1
+CF91 1
+CF92 1
+CF93 1
+CF94 1
+CF95 1
+CF96 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB0 1
+CFB1 1
+CFB2 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D080 1
+D081 1
+D082 1
+D083 1
+D084 1
+D085 1
+D086 1
+D087 1
+D088 1
+D089 1
+D08A 1
+D08B 1
+D08C 1
+D08D 1
+D08E 1
+D08F 1
+D090 1
+D091 1
+D092 1
+D093 1
+D094 1
+D095 1
+D096 1
+D097 1
+D098 1
+D099 1
+D09A 1
+D09B 1
+D09C 1
+D09D 1
+D09E 1
+D09F 1
+D0A0 1
+D0A1 1
+D0A2 1
+D0A3 1
+D0A4 1
+D0A5 1
+D0A6 1
+D0A7 1
+D0A8 1
+D0A9 1
+D0AA 1
+D0AB 1
+D0AC 1
+D0AD 1
+D0AE 1
+D0AF 1
+D0B0 1
+D0B1 1
+D0B2 1
+D0B3 1
+D0B4 1
+D0B5 1
+D0B6 1
+D0B7 1
+D0B8 1
+D0B9 1
+D0BA 1
+D0BB 1
+D0BC 1
+D0BD 1
+D0BE 1
+D0BF 1
+D180 1
+D181 1
+D182 1
+D183 1
+D184 1
+D185 1
+D186 1
+D187 1
+D188 1
+D189 1
+D18A 1
+D18B 1
+D18C 1
+D18D 1
+D18E 1
+D18F 1
+D190 1
+D191 1
+D192 1
+D193 1
+D194 1
+D195 1
+D196 1
+D197 1
+D198 1
+D199 1
+D19A 1
+D19B 1
+D19C 1
+D19D 1
+D19E 1
+D19F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D381 1
+D382 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D390 1
+D391 1
+D392 1
+D393 1
+D394 1
+D395 1
+D396 1
+D397 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D39C 1
+D39D 1
+D39E 1
+D39F 1
+D3A0 1
+D3A1 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3AC 1
+D3AD 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D3B4 1
+D3B5 1
+D3B6 1
+D3B7 1
+D3B8 1
+D3B9 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D4B2 1
+D4B3 1
+D4B4 1
+D4B5 1
+D4B6 1
+D4B7 1
+D4B8 1
+D4B9 1
+D4BA 1
+D4BB 1
+D4BC 1
+D4BD 1
+D4BE 1
+D4BF 1
+D580 1
+D581 1
+D582 1
+D583 1
+D584 1
+D585 1
+D586 1
+D587 1
+D588 1
+D589 1
+D58A 1
+D58B 1
+D58C 1
+D58D 1
+D58E 1
+D58F 1
+D590 1
+D591 1
+D592 1
+D593 1
+D594 1
+D595 1
+D596 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D5A1 1
+D5A2 1
+D5A3 1
+D5A4 1
+D5A5 1
+D5A6 1
+D5A7 1
+D5A8 1
+D5A9 1
+D5AA 1
+D5AB 1
+D5AC 1
+D5AD 1
+D5AE 1
+D5AF 1
+D5B0 1
+D5B1 1
+D5B2 1
+D5B3 1
+D5B4 1
+D5B5 1
+D5B6 1
+D5B7 1
+D5B8 1
+D5B9 1
+D5BA 1
+D5BB 1
+D5BC 1
+D5BD 1
+D5BE 1
+D5BF 1
+D680 1
+D681 1
+D682 1
+D683 1
+D684 1
+D685 1
+D686 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C598 1
+C599 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B0 1
+C5B1 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C590 1
+C591 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C3B2 1
+C3B3 1
+C3B4 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+C395 1
+C3B5 1
+C384 1
+C3A4 1
+C396 1
+C3B6 1
+C39C 1
+C3BC 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+21 1
+22 1
+23 1
+24 1
+25 1
+26 1
+27 1
+28 1
+29 1
+2A 1
+2B 1
+2C 1
+2D 1
+2E 1
+2F 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+3A 1
+3B 1
+3C 1
+3D 1
+3E 1
+3F 1
+40 1
+41 1
+61 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+42 1
+62 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+44 1
+64 1
+C48E 1
+C48F 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+46 1
+66 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C4B1 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+4D 1
+6D 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+4F 1
+6F 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+50 1
+70 1
+51 1
+71 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+56 1
+76 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+58 1
+78 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+5B 1
+5E 1
+5F 1
+60 1
+7B 1
+7C 1
+7D 1
+7E 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C285 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+C2A1 1
+C2A2 1
+C2A3 1
+C2A4 1
+C2A5 1
+C2A6 1
+C2A7 1
+C2A8 1
+C2A9 1
+C2AA 1
+C2AB 1
+C2AC 1
+C2AD 1
+C2AE 1
+C2AF 1
+C2B0 1
+C2B1 1
+C2B2 1
+C2B3 1
+C2B4 1
+C2B6 1
+C2B7 1
+C2B8 1
+C2B9 1
+C2BA 1
+C2BB 1
+C2BC 1
+C2BD 1
+C2BE 1
+C2BF 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C390 1
+C3B0 1
+C397 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C39E 1
+C3BE 1
+C39F 1
+C3B7 1
+C490 1
+C491 1
+C4A6 1
+C4A7 1
+C4B2 1
+C4B3 1
+C4B8 1
+C4BF 1
+C580 1
+C581 1
+C582 1
+C589 1
+C58A 1
+C58B 1
+C592 1
+C593 1
+C5A6 1
+C5A7 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+C684 1
+C685 1
+C686 1
+C994 1
+C687 1
+C688 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C68D 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C691 1
+C692 1
+C693 1
+C9A0 1
+C694 1
+C9A3 1
+C696 1
+C9A9 1
+C697 1
+C9A8 1
+C698 1
+C699 1
+C69A 1
+C69B 1
+C69C 1
+C9AF 1
+C69D 1
+C9B2 1
+C69E 1
+C69F 1
+C9B5 1
+C6A2 1
+C6A3 1
+C6A4 1
+C6A5 1
+C6A6 1
+CA80 1
+C6A7 1
+C6A8 1
+C6A9 1
+CA83 1
+C6AA 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C6B1 1
+CA8A 1
+C6B2 1
+CA8B 1
+C6B3 1
+C6B4 1
+C6B5 1
+C6B6 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+C6BB 1
+C6BC 1
+C6BD 1
+C6BE 1
+C780 1
+C781 1
+C782 1
+C783 1
+C784 1
+C785 1
+C786 1
+C787 1
+C788 1
+C789 1
+C78A 1
+C78B 1
+C78C 1
+C7A4 1
+C7A5 1
+C7B1 1
+C7B2 1
+C7B3 1
+C695 1
+C7B6 1
+C6BF 1
+C7B7 1
+C89C 1
+C89D 1
+C8A0 1
+C8A1 1
+C8A2 1
+C8A3 1
+C8A4 1
+C8A5 1
+C8B4 1
+C8B5 1
+C8B6 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+C990 1
+C991 1
+C992 1
+C995 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+C99F 1
+C9A1 1
+C9A2 1
+C9A4 1
+C9A5 1
+C9A6 1
+C9A7 1
+C9AA 1
+C9AB 1
+C9AC 1
+C9AD 1
+C9AE 1
+C9B0 1
+C9B1 1
+C9B3 1
+C9B4 1
+C9B6 1
+C9B7 1
+C9B8 1
+C9B9 1
+C9BA 1
+C9BB 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CA82 1
+CA84 1
+CA85 1
+CA86 1
+CA87 1
+CA89 1
+CA8C 1
+CA8D 1
+CA8E 1
+CA8F 1
+CA90 1
+CA91 1
+CA93 1
+CA94 1
+CA95 1
+CA96 1
+CA97 1
+CA98 1
+CA99 1
+CA9A 1
+CA9B 1
+CA9C 1
+CA9D 1
+CA9E 1
+CA9F 1
+CAA0 1
+CAA1 1
+CAA2 1
+CAA3 1
+CAA4 1
+CAA5 1
+CAA6 1
+CAA7 1
+CAA8 1
+CAA9 1
+CAAA 1
+CAAB 1
+CAAC 1
+CAAD 1
+CAAE 1
+CAAF 1
+CAB0 1
+CAB1 1
+CAB2 1
+CAB3 1
+CAB4 1
+CAB5 1
+CAB6 1
+CAB7 1
+CAB8 1
+CAB9 1
+CABA 1
+CABB 1
+CABC 1
+CABD 1
+CABE 1
+CABF 1
+CB80 1
+CB81 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB90 1
+CB91 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB98 1
+CB99 1
+CB9A 1
+CB9B 1
+CB9C 1
+CB9D 1
+CB9E 1
+CB9F 1
+CBA0 1
+CBA1 1
+CBA2 1
+CBA3 1
+CBA4 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAE 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+CDA3 1
+CDA4 1
+CDA5 1
+CDA6 1
+CDA7 1
+CDA8 1
+CDA9 1
+CDAA 1
+CDAB 1
+CDAC 1
+CDAD 1
+CDAE 1
+CDAF 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB4 1
+CDB5 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBA 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBE 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE84 1
+CE85 1
+CE87 1
+CE8B 1
+CE8D 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CD85 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CE9A 1
+CEBA 1
+CFB0 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA2 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CF8F 1
+CF92 1
+CF93 1
+CF94 1
+CF97 1
+CF98 1
+CF99 1
+CF9A 1
+CF9B 1
+CF9C 1
+CF9D 1
+CF9E 1
+CF9F 1
+CFA0 1
+CFA1 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+CFB3 1
+CFB4 1
+CFB5 1
+CFB6 1
+CFB7 1
+CFB8 1
+CFB9 1
+CFBA 1
+CFBB 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D082 1
+D192 1
+D084 1
+D194 1
+D085 1
+D195 1
+D086 1
+D087 1
+D196 1
+D197 1
+D088 1
+D198 1
+D089 1
+D199 1
+D08A 1
+D19A 1
+D08B 1
+D19B 1
+D08F 1
+D19F 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D083 1
+D093 1
+D0B3 1
+D193 1
+D094 1
+D0B4 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D097 1
+D0B7 1
+D39E 1
+D39F 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D3A4 1
+D3A5 1
+D099 1
+D0B9 1
+D08C 1
+D09A 1
+D0BA 1
+D19C 1
+D09B 1
+D0BB 1
+D09C 1
+D0BC 1
+D09D 1
+D0BD 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D09F 1
+D0BF 1
+D0A0 1
+D180 1
+D0A1 1
+D181 1
+D0A2 1
+D182 1
+D08E 1
+D0A3 1
+D183 1
+D19E 1
+D3AE 1
+D3AF 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D0A6 1
+D186 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A0 1
+D1A1 1
+D1A2 1
+D1A3 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1A8 1
+D1A9 1
+D1AA 1
+D1AB 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D1B8 1
+D1B9 1
+D1BA 1
+D1BB 1
+D1BC 1
+D1BD 1
+D1BE 1
+D1BF 1
+D280 1
+D281 1
+D282 1
+D283 1
+D284 1
+D285 1
+D286 1
+D287 1
+D288 1
+D289 1
+D28A 1
+D28B 1
+D28C 1
+D28D 1
+D28E 1
+D28F 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D296 1
+D297 1
+D298 1
+D299 1
+D29A 1
+D29B 1
+D29C 1
+D29D 1
+D29E 1
+D29F 1
+D2A0 1
+D2A1 1
+D2A2 1
+D2A3 1
+D2A4 1
+D2A5 1
+D2A6 1
+D2A7 1
+D2A8 1
+D2A9 1
+D2AA 1
+D2AB 1
+D2AC 1
+D2AD 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D2B2 1
+D2B3 1
+D2B4 1
+D2B5 1
+D2B6 1
+D2B7 1
+D2B8 1
+D2B9 1
+D2BA 1
+D2BB 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D380 1
+D383 1
+D384 1
+D385 1
+D386 1
+D387 1
+D388 1
+D389 1
+D38A 1
+D38B 1
+D38C 1
+D38D 1
+D38E 1
+D38F 1
+D394 1
+D395 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D3A0 1
+D3A1 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D480 1
+D481 1
+D482 1
+D483 1
+D484 1
+D485 1
+D486 1
+D487 1
+D488 1
+D489 1
+D48A 1
+D48B 1
+D48C 1
+D48D 1
+D48E 1
+D48F 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D597 1
+D598 1
+D599 1
+D59A 1
+D59B 1
+D59C 1
+D59D 1
+D59E 1
+D59F 1
+D5A0 1
+D687 1
+D688 1
+D689 1
+D68A 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A2 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BA 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BE 1
+D6BF 1
+D780 1
+D781 1
+D782 1
+D783 1
+D784 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D796 1
+D797 1
+D798 1
+D799 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B0 1
+D7B1 1
+D7B2 1
+D7B3 1
+D7B4 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D880 1
+D881 1
+D882 1
+D883 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D88C 1
+D88D 1
+D88E 1
+D88F 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89B 1
+D89C 1
+D89D 1
+D89E 1
+D89F 1
+D8A0 1
+D8A1 1
+D8A2 1
+D8A3 1
+D8A4 1
+D8A5 1
+D8A6 1
+D8A7 1
+D8A8 1
+D8A9 1
+D8AA 1
+D8AB 1
+D8AC 1
+D8AD 1
+D8AE 1
+D8AF 1
+D8B0 1
+D8B1 1
+D8B2 1
+D8B3 1
+D8B4 1
+D8B5 1
+D8B6 1
+D8B7 1
+D8B8 1
+D8B9 1
+D8BA 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D980 1
+D981 1
+D982 1
+D983 1
+D984 1
+D985 1
+D986 1
+D987 1
+D988 1
+D989 1
+D98A 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+D9A0 1
+D9A1 1
+D9A2 1
+D9A3 1
+D9A4 1
+D9A5 1
+D9A6 1
+D9A7 1
+D9A8 1
+D9A9 1
+D9AA 1
+D9AB 1
+D9AC 1
+D9AD 1
+D9AE 1
+D9AF 1
+D9B0 1
+D9B1 1
+D9B2 1
+D9B3 1
+D9B4 1
+D9B5 1
+D9B6 1
+D9B7 1
+D9B8 1
+D9B9 1
+D9BA 1
+D9BB 1
+D9BC 1
+D9BD 1
+D9BE 1
+D9BF 1
+DA80 1
+DA81 1
+DA82 1
+DA83 1
+DA84 1
+DA85 1
+DA86 1
+DA87 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DA9A 1
+DA9B 1
+DA9C 1
+DA9D 1
+DA9E 1
+DA9F 1
+DAA0 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+DAA7 1
+DAA8 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+DAB9 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DABE 1
+DABF 1
+DB80 1
+DB81 1
+DB82 1
+DB83 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB8F 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DB94 1
+DB95 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA5 1
+DBA6 1
+DBA7 1
+DBA8 1
+DBA9 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DBAE 1
+DBAF 1
+DBB0 1
+DBB1 1
+DBB2 1
+DBB3 1
+DBB4 1
+DBB5 1
+DBB6 1
+DBB7 1
+DBB8 1
+DBB9 1
+DBBA 1
+DBBB 1
+DBBC 1
+DBBD 1
+DBBE 1
+DBBF 1
+DC80 1
+DC81 1
+DC82 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+DC89 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+DC8E 1
+DC8F 1
+DC90 1
+DC91 1
+DC92 1
+DC93 1
+DC94 1
+DC95 1
+DC96 1
+DC97 1
+DC98 1
+DC99 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DCAD 1
+DCAE 1
+DCAF 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+DD8B 1
+DD8C 1
+DD8D 1
+DD8E 1
+DD8F 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DE80 1
+DE81 1
+DE82 1
+DE83 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DE88 1
+DE89 1
+DE8A 1
+DE8B 1
+DE8C 1
+DE8D 1
+DE8E 1
+DE8F 1
+DE90 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DE98 1
+DE99 1
+DE9A 1
+DE9B 1
+DE9C 1
+DE9D 1
+DE9E 1
+DE9F 1
+DEA0 1
+DEA1 1
+DEA2 1
+DEA3 1
+DEA4 1
+DEA5 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+DEB1 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C590 1
+C591 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+C5B0 1
+C5B1 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C382 1
+C383 1
+C3A0 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C381 1
+C3A1 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C390 1
+C3B0 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+45 1
+65 1
+C388 1
+C38A 1
+C38B 1
+C3A8 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C389 1
+C3A9 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38E 1
+C38F 1
+C3AC 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38D 1
+C3AD 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C3B2 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39B 1
+C39C 1
+C3B9 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39A 1
+C3BA 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+C39D 1
+C3BD 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C39E 1
+C3BE 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C385 1
+C3A5 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C4A2 1
+C4A3 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+59 1
+79 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C7A8 1
+C7A9 1
+C4B6 1
+C4B7 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C4BB 1
+C4BC 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C585 1
+C586 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C596 1
+C597 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+59 1
+69 1
+79 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+D993 1
+D994 1
+D995 1
+D9B0 1
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D991 1
+D992 1
+D996 1
+D997 1
+D998 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+D98E 1
+26 1
+D990 1
+23 1
+D98F 1
+25 1
+D9AA 1
+D98B 1
+D98D 1
+D98C 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+D8A2 1
+D8A7 1
+D9B1 1
+D8A1 1
+D8A3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+D8A5 1
+D8A4 1
+D8A6 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D9B4 1
+DBBD 1
+D9B2 1
+D9B3 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+DA89 1
+DA8A 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA9 1
+D983 1
+DAA8 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+D987 1
+DB84 1
+D8A9 1
+DB85 1
+DB80 1
+DB86 1
+DB87 1
+DB8C 1
+D9B7 1
+D989 1
+DB88 1
+D98A 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+DBA6 1
+D9B8 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C484 1
+C485 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C486 1
+C487 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C498 1
+C499 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+C581 1
+C582 1
+CA9F 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C583 1
+C584 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C393 1
+C3B3 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59A 1
+C59B 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5BD 1
+C5BE 1
+C68D 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+4A 1
+69 1
+6A 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+55 1
+56 1
+75 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C482 1
+C483 1
+C382 1
+C3A2 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C38E 1
+C3AE 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+C898 1
+C899 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A4 1
+C5A5 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A2 1
+C5A3 1
+C89A 1
+C89B 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C384 1
+C3A4 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C394 1
+C3B4 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+CDA8 1
+C48C 1
+C48D 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C5A0 1
+C5A1 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C68D 1
+C5BD 1
+C5BE 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C391 1
+C3B1 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39C 1
+C39D 1
+C3BC 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C385 1
+C3A5 1
+C384 1
+C386 1
+C3A4 1
+C3A6 1
+C396 1
+C398 1
+C3B6 1
+C3B8 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C387 1
+C3A7 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C49E 1
+C49F 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+49 1
+C4B1 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C396 1
+C3B6 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+C59E 1
+C59F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C3B9 1
+C3BA 1
+C3BB 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+C39C 1
+C3BC 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t1;
+DROP DATABASE test;
+CREATE DATABASE test CHARACTER SET utf8;
+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 # # #
+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;
+SELECT HEX(ORD(a)) AS a_ord, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
+a_ord a_len
+C285 1
+7F 1
+C280 1
+C281 1
+C282 1
+C283 1
+C284 1
+C286 1
+C287 1
+C288 1
+C289 1
+C28A 1
+C28B 1
+C28C 1
+C28D 1
+C28E 1
+C28F 1
+C290 1
+C291 1
+C292 1
+C293 1
+C294 1
+C295 1
+C296 1
+C297 1
+C298 1
+C299 1
+C29A 1
+C29B 1
+C29C 1
+C29D 1
+C29E 1
+C29F 1
+C2A0 1
+CC80 1
+CC81 1
+CC82 1
+CC83 1
+CC84 1
+CC85 1
+CC86 1
+CC87 1
+CC88 1
+CC89 1
+CC8A 1
+CC8B 1
+CC8C 1
+CC8D 1
+CC8E 1
+CC8F 1
+CC90 1
+CC91 1
+CC92 1
+CC93 1
+CC94 1
+CC95 1
+CC96 1
+CC97 1
+CC98 1
+CC99 1
+CC9A 1
+CC9B 1
+CC9C 1
+CC9D 1
+CC9E 1
+CC9F 1
+CCA0 1
+CCA1 1
+CCA2 1
+CCA3 1
+CCA4 1
+CCA5 1
+CCA6 1
+CCA7 1
+CCA8 1
+CCA9 1
+CCAA 1
+CCAB 1
+CCAC 1
+CCAD 1
+CCAE 1
+CCAF 1
+CCB0 1
+CCB1 1
+CCB2 1
+CCB3 1
+CCB4 1
+CCB5 1
+CCB6 1
+CCB7 1
+CCB8 1
+CCB9 1
+CCBA 1
+CCBB 1
+CCBC 1
+CCBD 1
+CCBE 1
+CCBF 1
+CD80 1
+CD81 1
+CD82 1
+CD83 1
+CD84 1
+CD85 1
+CD86 1
+CD87 1
+CD88 1
+CD89 1
+CD8A 1
+CD8B 1
+CD8C 1
+CD8D 1
+CD8E 1
+CD8F 1
+CD90 1
+CD91 1
+CD92 1
+CD93 1
+CD94 1
+CD95 1
+CD96 1
+CD97 1
+CD9D 1
+CD9E 1
+CD9F 1
+CDA0 1
+CDA1 1
+CDA2 1
+D283 1
+D284 1
+D285 1
+D286 1
+D288 1
+D289 1
+D691 1
+D692 1
+D693 1
+D694 1
+D695 1
+D696 1
+D697 1
+D698 1
+D699 1
+D69A 1
+D69B 1
+D69C 1
+D69D 1
+D69E 1
+D69F 1
+D6A0 1
+D6A1 1
+D6A3 1
+D6A4 1
+D6A5 1
+D6A6 1
+D6A7 1
+D6A8 1
+D6A9 1
+D6AA 1
+D6AB 1
+D6AC 1
+D6AD 1
+D6AE 1
+D6AF 1
+D6B0 1
+D6B1 1
+D6B2 1
+D6B3 1
+D6B4 1
+D6B5 1
+D6B6 1
+D6B7 1
+D6B8 1
+D6B9 1
+D6BB 1
+D6BC 1
+D6BD 1
+D6BF 1
+D781 1
+D782 1
+D784 1
+D880 1
+D881 1
+D882 1
+D883 1
+D890 1
+D891 1
+D892 1
+D893 1
+D894 1
+D895 1
+D98B 1
+D98C 1
+D98D 1
+D98E 1
+D98F 1
+D990 1
+D991 1
+D992 1
+D993 1
+D994 1
+D995 1
+D996 1
+D997 1
+D998 1
+D9B0 1
+DB96 1
+DB97 1
+DB98 1
+DB99 1
+DB9A 1
+DB9B 1
+DB9C 1
+DB9D 1
+DB9E 1
+DB9F 1
+DBA0 1
+DBA1 1
+DBA2 1
+DBA3 1
+DBA4 1
+DBA7 1
+DBA8 1
+DBAA 1
+DBAB 1
+DBAC 1
+DBAD 1
+DC8F 1
+DC91 1
+DCB0 1
+DCB1 1
+DCB2 1
+DCB3 1
+DCB4 1
+DCB5 1
+DCB6 1
+DCB7 1
+DCB8 1
+DCB9 1
+DCBA 1
+DCBB 1
+DCBC 1
+DCBD 1
+DCBE 1
+DCBF 1
+DD80 1
+DD81 1
+DD82 1
+DD83 1
+DD84 1
+DD85 1
+DD86 1
+DD87 1
+DD88 1
+DD89 1
+DD8A 1
+D980 1
+60 1
+C2B4 1
+CE84 1
+CB9C 1
+5E 1
+C2AF 1
+CB98 1
+CB99 1
+C2A8 1
+CE85 1
+CB9A 1
+CB9D 1
+C2B8 1
+CB9B 1
+5F 1
+C2AD 1
+2D 1
+D68A 1
+2C 1
+D59D 1
+D88C 1
+D88D 1
+D9AB 1
+D9AC 1
+3B 1
+CDBE 1
+D89B 1
+3A 1
+D689 1
+DC83 1
+DC84 1
+DC85 1
+DC86 1
+DC87 1
+DC88 1
+21 1
+C2A1 1
+D59C 1
+3F 1
+C2BF 1
+D59E 1
+D89F 1
+DC89 1
+2E 1
+DB94 1
+DC81 1
+DC82 1
+C2B7 1
+CE87 1
+DC80 1
+27 1
+22 1
+C2AB 1
+C2BB 1
+28 1
+29 1
+5B 1
+7B 1
+7D 1
+C2A7 1
+C2B6 1
+C2A9 1
+C2AE 1
+40 1
+2A 1
+D9AD 1
+2F 1
+26 1
+23 1
+25 1
+D9AA 1
+D59A 1
+D59B 1
+D59F 1
+D6BE 1
+D780 1
+D783 1
+D7B3 1
+D7B4 1
+DC8A 1
+DC8B 1
+DC8C 1
+DC8D 1
+CAB9 1
+CDB4 1
+CDB5 1
+CABA 1
+CB82 1
+CB83 1
+CB84 1
+CB85 1
+CB86 1
+CB87 1
+CB88 1
+CB89 1
+CB8A 1
+CB8B 1
+CB8C 1
+CB8D 1
+CB8E 1
+CB8F 1
+CB92 1
+CB93 1
+CB94 1
+CB95 1
+CB96 1
+CB97 1
+CB9E 1
+CB9F 1
+CBA5 1
+CBA6 1
+CBA7 1
+CBA8 1
+CBA9 1
+CBAA 1
+CBAB 1
+CBAC 1
+CBAD 1
+CBAF 1
+CBB0 1
+CBB1 1
+CBB2 1
+CBB3 1
+CBB4 1
+CBB5 1
+CBB6 1
+CBB7 1
+CBB8 1
+CBB9 1
+CBBA 1
+CBBB 1
+CBBC 1
+CBBD 1
+CBBE 1
+CBBF 1
+C2B0 1
+D282 1
+D88E 1
+D88F 1
+DBA9 1
+CFB6 1
+2B 1
+C2B1 1
+C3B7 1
+C397 1
+3C 1
+3D 1
+3E 1
+C2AC 1
+7C 1
+C2A6 1
+7E 1
+CB90 1
+CB91 1
+C2A4 1
+C2A2 1
+24 1
+C2A3 1
+C2A5 1
+30 1
+D9A0 1
+DBB0 1
+31 1
+C2B9 1
+D9A1 1
+DBB1 1
+C2BD 1
+C2BC 1
+32 1
+C2B2 1
+D9A2 1
+DBB2 1
+33 1
+C2B3 1
+D9A3 1
+DBB3 1
+C2BE 1
+34 1
+D9A4 1
+DBB4 1
+35 1
+D9A5 1
+DBB5 1
+36 1
+D9A6 1
+DBB6 1
+37 1
+D9A7 1
+DBB7 1
+38 1
+D9A8 1
+DBB8 1
+39 1
+D9A9 1
+DBB9 1
+41 1
+61 1
+C2AA 1
+C380 1
+C381 1
+C382 1
+C383 1
+C384 1
+C385 1
+C3A0 1
+C3A1 1
+C3A2 1
+C3A3 1
+C3A4 1
+C3A5 1
+C480 1
+C481 1
+C482 1
+C483 1
+C484 1
+C485 1
+C78D 1
+C78E 1
+C79E 1
+C79F 1
+C7A0 1
+C7A1 1
+C7BA 1
+C7BB 1
+C880 1
+C881 1
+C882 1
+C883 1
+C8A6 1
+C8A7 1
+CDA3 1
+C386 1
+C3A6 1
+C7A2 1
+C7A3 1
+C7BC 1
+C7BD 1
+C990 1
+C991 1
+C992 1
+42 1
+62 1
+CA99 1
+C680 1
+C681 1
+C993 1
+C682 1
+C683 1
+43 1
+63 1
+C387 1
+C3A7 1
+C486 1
+C487 1
+C488 1
+C489 1
+C48A 1
+C48B 1
+C48C 1
+C48D 1
+CDA8 1
+C687 1
+C688 1
+C995 1
+44 1
+64 1
+C48E 1
+C48F 1
+CDA9 1
+C784 1
+C785 1
+C786 1
+C7B1 1
+C7B2 1
+C7B3 1
+CAA3 1
+CAA5 1
+CAA4 1
+C490 1
+C491 1
+C689 1
+C996 1
+C68A 1
+C997 1
+C68B 1
+C68C 1
+C8A1 1
+C390 1
+C3B0 1
+45 1
+65 1
+C388 1
+C389 1
+C38A 1
+C38B 1
+C3A8 1
+C3A9 1
+C3AA 1
+C3AB 1
+C492 1
+C493 1
+C494 1
+C495 1
+C496 1
+C497 1
+C498 1
+C499 1
+C49A 1
+C49B 1
+C884 1
+C885 1
+C886 1
+C887 1
+C8A8 1
+C8A9 1
+CDA4 1
+C68E 1
+C79D 1
+C68F 1
+C999 1
+C690 1
+C99B 1
+C998 1
+C99A 1
+C99C 1
+C99D 1
+C99E 1
+CA9A 1
+C9A4 1
+46 1
+66 1
+CAA9 1
+C691 1
+C692 1
+47 1
+67 1
+C49C 1
+C49D 1
+C49E 1
+C49F 1
+C4A0 1
+C4A1 1
+C4A2 1
+C4A3 1
+C7A6 1
+C7A7 1
+C7B4 1
+C7B5 1
+C9A1 1
+C9A2 1
+C7A4 1
+C7A5 1
+C693 1
+C9A0 1
+CA9B 1
+C694 1
+C9A3 1
+CBA0 1
+C6A2 1
+C6A3 1
+48 1
+68 1
+C4A4 1
+C4A5 1
+C89E 1
+C89F 1
+CAB0 1
+CDAA 1
+CA9C 1
+C695 1
+C7B6 1
+C4A6 1
+C4A7 1
+C9A6 1
+CAB1 1
+C9A7 1
+CABB 1
+CABD 1
+49 1
+69 1
+C38C 1
+C38D 1
+C38E 1
+C38F 1
+C3AC 1
+C3AD 1
+C3AE 1
+C3AF 1
+C4A8 1
+C4A9 1
+C4AA 1
+C4AB 1
+C4AC 1
+C4AD 1
+C4AE 1
+C4AF 1
+C4B0 1
+C78F 1
+C790 1
+C888 1
+C889 1
+C88A 1
+C88B 1
+CDA5 1
+C4B2 1
+C4B3 1
+C4B1 1
+C9AA 1
+C697 1
+C9A8 1
+C696 1
+C9A9 1
+4A 1
+6A 1
+C4B4 1
+C4B5 1
+C7B0 1
+CAB2 1
+CA9D 1
+C99F 1
+CA84 1
+4B 1
+6B 1
+C4B6 1
+C4B7 1
+C7A8 1
+C7A9 1
+C698 1
+C699 1
+CA9E 1
+4C 1
+6C 1
+C4B9 1
+C4BA 1
+C4BB 1
+C4BC 1
+C4BD 1
+C4BE 1
+CBA1 1
+C4BF 1
+C580 1
+C787 1
+C788 1
+C789 1
+CAAA 1
+CAAB 1
+CA9F 1
+C581 1
+C582 1
+C69A 1
+C9AB 1
+C9AC 1
+C9AD 1
+C8B4 1
+C9AE 1
+C69B 1
+CA8E 1
+4D 1
+6D 1
+CDAB 1
+C9B1 1
+4E 1
+6E 1
+C391 1
+C3B1 1
+C583 1
+C584 1
+C585 1
+C586 1
+C587 1
+C588 1
+C7B8 1
+C7B9 1
+C78A 1
+C78B 1
+C78C 1
+C9B4 1
+C69D 1
+C9B2 1
+C69E 1
+C8A0 1
+C9B3 1
+C8B5 1
+C58A 1
+C58B 1
+4F 1
+6F 1
+C2BA 1
+C392 1
+C393 1
+C394 1
+C395 1
+C396 1
+C3B2 1
+C3B3 1
+C3B4 1
+C3B5 1
+C3B6 1
+C58C 1
+C58D 1
+C58E 1
+C58F 1
+C590 1
+C591 1
+C6A0 1
+C6A1 1
+C791 1
+C792 1
+C7AA 1
+C7AB 1
+C7AC 1
+C7AD 1
+C88C 1
+C88D 1
+C88E 1
+C88F 1
+C8AA 1
+C8AB 1
+C8AC 1
+C8AD 1
+C8AE 1
+C8AF 1
+C8B0 1
+C8B1 1
+CDA6 1
+C592 1
+C593 1
+C9B6 1
+C398 1
+C3B8 1
+C7BE 1
+C7BF 1
+C686 1
+C994 1
+C69F 1
+C9B5 1
+C9B7 1
+C8A2 1
+C8A3 1
+50 1
+70 1
+C6A4 1
+C6A5 1
+C9B8 1
+51 1
+71 1
+CAA0 1
+C4B8 1
+52 1
+72 1
+C594 1
+C595 1
+C596 1
+C597 1
+C598 1
+C599 1
+C890 1
+C891 1
+C892 1
+C893 1
+CAB3 1
+CDAC 1
+C6A6 1
+CA80 1
+C9B9 1
+CAB4 1
+C9BA 1
+C9BB 1
+CAB5 1
+C9BC 1
+C9BD 1
+C9BE 1
+C9BF 1
+CA81 1
+CAB6 1
+53 1
+73 1
+C59A 1
+C59B 1
+C59C 1
+C59D 1
+C59E 1
+C59F 1
+C5A0 1
+C5A1 1
+C5BF 1
+C898 1
+C899 1
+CBA2 1
+C39F 1
+CA82 1
+C6A9 1
+CA83 1
+C6AA 1
+CA85 1
+CA86 1
+54 1
+74 1
+C5A2 1
+C5A3 1
+C5A4 1
+C5A5 1
+C89A 1
+C89B 1
+CDAD 1
+CAA8 1
+C6BE 1
+CAA6 1
+CAA7 1
+C5A6 1
+C5A7 1
+C6AB 1
+C6AC 1
+C6AD 1
+C6AE 1
+CA88 1
+C8B6 1
+CA87 1
+55 1
+75 1
+C399 1
+C39A 1
+C39B 1
+C39C 1
+C3B9 1
+C3BA 1
+C3BB 1
+C3BC 1
+C5A8 1
+C5A9 1
+C5AA 1
+C5AB 1
+C5AC 1
+C5AD 1
+C5AE 1
+C5AF 1
+C5B0 1
+C5B1 1
+C5B2 1
+C5B3 1
+C6AF 1
+C6B0 1
+C793 1
+C794 1
+C795 1
+C796 1
+C797 1
+C798 1
+C799 1
+C79A 1
+C79B 1
+C79C 1
+C894 1
+C895 1
+C896 1
+C897 1
+CDA7 1
+CA89 1
+C9A5 1
+CAAE 1
+CAAF 1
+C69C 1
+C9AF 1
+C9B0 1
+C6B1 1
+CA8A 1
+56 1
+76 1
+CDAE 1
+C6B2 1
+CA8B 1
+CA8C 1
+57 1
+77 1
+C5B4 1
+C5B5 1
+CAB7 1
+CA8D 1
+58 1
+78 1
+CBA3 1
+CDAF 1
+59 1
+79 1
+C39D 1
+C3BD 1
+C3BF 1
+C5B6 1
+C5B7 1
+C5B8 1
+C8B2 1
+C8B3 1
+CAB8 1
+CA8F 1
+C6B3 1
+C6B4 1
+5A 1
+7A 1
+C5B9 1
+C5BA 1
+C5BB 1
+C5BC 1
+C5BD 1
+C5BE 1
+C68D 1
+C6B5 1
+C6B6 1
+C8A4 1
+C8A5 1
+CA90 1
+CA91 1
+C6B7 1
+C7AE 1
+C7AF 1
+CA92 1
+C6B8 1
+C6B9 1
+C6BA 1
+CA93 1
+C89C 1
+C89D 1
+C39E 1
+C3BE 1
+C6BF 1
+C7B7 1
+C6BB 1
+C6A7 1
+C6A8 1
+C6BC 1
+C6BD 1
+C684 1
+C685 1
+CA94 1
+CB80 1
+CABC 1
+C589 1
+CBAE 1
+CABE 1
+CA95 1
+CBA4 1
+CABF 1
+CB81 1
+CAA1 1
+CAA2 1
+CA96 1
+C780 1
+C781 1
+C782 1
+C783 1
+CA97 1
+CA98 1
+CAAC 1
+CAAD 1
+CE86 1
+CE91 1
+CEAC 1
+CEB1 1
+CE92 1
+CEB2 1
+CF90 1
+CE93 1
+CEB3 1
+CE94 1
+CEB4 1
+CE88 1
+CE95 1
+CEAD 1
+CEB5 1
+CFB5 1
+CF9C 1
+CF9D 1
+CF9A 1
+CF9B 1
+CE96 1
+CEB6 1
+CE89 1
+CE97 1
+CEAE 1
+CEB7 1
+CE98 1
+CEB8 1
+CF91 1
+CFB4 1
+CDBA 1
+CE8A 1
+CE90 1
+CE99 1
+CEAA 1
+CEAF 1
+CEB9 1
+CF8A 1
+CFB3 1
+CE9A 1
+CEBA 1
+CFB0 1
+CF97 1
+CE9B 1
+CEBB 1
+C2B5 1
+CE9C 1
+CEBC 1
+CE9D 1
+CEBD 1
+CE9E 1
+CEBE 1
+CE8C 1
+CE9F 1
+CEBF 1
+CF8C 1
+CEA0 1
+CF80 1
+CF96 1
+CF9E 1
+CF9F 1
+CF98 1
+CF99 1
+CEA1 1
+CF81 1
+CFB1 1
+CEA3 1
+CF82 1
+CF83 1
+CFB2 1
+CFB9 1
+CEA4 1
+CF84 1
+CE8E 1
+CEA5 1
+CEAB 1
+CEB0 1
+CF85 1
+CF8B 1
+CF8D 1
+CF92 1
+CF93 1
+CF94 1
+CEA6 1
+CF86 1
+CF95 1
+CEA7 1
+CF87 1
+CEA8 1
+CF88 1
+CE8F 1
+CEA9 1
+CF89 1
+CF8E 1
+CFA0 1
+CFA1 1
+CFB7 1
+CFB8 1
+CFBA 1
+CFBB 1
+CFA2 1
+CFA3 1
+CFA4 1
+CFA5 1
+CFA6 1
+CFA7 1
+CFA8 1
+CFA9 1
+CFAA 1
+CFAB 1
+CFAC 1
+CFAD 1
+CFAE 1
+CFAF 1
+D090 1
+D0B0 1
+D390 1
+D391 1
+D392 1
+D393 1
+D398 1
+D399 1
+D39A 1
+D39B 1
+D394 1
+D395 1
+D091 1
+D0B1 1
+D092 1
+D0B2 1
+D093 1
+D0B3 1
+D290 1
+D291 1
+D292 1
+D293 1
+D294 1
+D295 1
+D094 1
+D0B4 1
+D480 1
+D481 1
+D082 1
+D192 1
+D482 1
+D483 1
+D083 1
+D193 1
+D298 1
+D299 1
+D080 1
+D081 1
+D095 1
+D0B5 1
+D190 1
+D191 1
+D396 1
+D397 1
+D084 1
+D194 1
+D096 1
+D0B6 1
+D381 1
+D382 1
+D39C 1
+D39D 1
+D296 1
+D297 1
+D097 1
+D0B7 1
+D484 1
+D485 1
+D39E 1
+D39F 1
+D085 1
+D195 1
+D3A0 1
+D3A1 1
+D486 1
+D487 1
+D08D 1
+D098 1
+D0B8 1
+D19D 1
+D3A2 1
+D3A3 1
+D28A 1
+D28B 1
+D3A4 1
+D3A5 1
+D086 1
+D196 1
+D087 1
+D197 1
+D099 1
+D0B9 1
+D088 1
+D198 1
+D09A 1
+D0BA 1
+D29A 1
+D29B 1
+D383 1
+D384 1
+D2A0 1
+D2A1 1
+D29E 1
+D29F 1
+D29C 1
+D29D 1
+D09B 1
+D0BB 1
+D385 1
+D386 1
+D089 1
+D199 1
+D488 1
+D489 1
+D09C 1
+D0BC 1
+D38D 1
+D38E 1
+D09D 1
+D0BD 1
+D389 1
+D38A 1
+D2A2 1
+D2A3 1
+D387 1
+D388 1
+D2A4 1
+D2A5 1
+D08A 1
+D19A 1
+D48A 1
+D48B 1
+D09E 1
+D0BE 1
+D3A6 1
+D3A7 1
+D3A8 1
+D3A9 1
+D3AA 1
+D3AB 1
+D09F 1
+D0BF 1
+D2A6 1
+D2A7 1
+D280 1
+D281 1
+D0A0 1
+D180 1
+D28E 1
+D28F 1
+D0A1 1
+D181 1
+D48C 1
+D48D 1
+D2AA 1
+D2AB 1
+D0A2 1
+D182 1
+D48E 1
+D48F 1
+D2AC 1
+D2AD 1
+D08B 1
+D19B 1
+D08C 1
+D19C 1
+D0A3 1
+D183 1
+D3AE 1
+D3AF 1
+D08E 1
+D19E 1
+D3B0 1
+D3B1 1
+D3B2 1
+D3B3 1
+D2AE 1
+D2AF 1
+D2B0 1
+D2B1 1
+D1B8 1
+D1B9 1
+D0A4 1
+D184 1
+D0A5 1
+D185 1
+D2B2 1
+D2B3 1
+D2BA 1
+D2BB 1
+D1A0 1
+D1A1 1
+D1BE 1
+D1BF 1
+D1BC 1
+D1BD 1
+D1BA 1
+D1BB 1
+D0A6 1
+D186 1
+D2B4 1
+D2B5 1
+D0A7 1
+D187 1
+D3B4 1
+D3B5 1
+D2B6 1
+D2B7 1
+D38B 1
+D38C 1
+D2B8 1
+D2B9 1
+D2BC 1
+D2BD 1
+D2BE 1
+D2BF 1
+D08F 1
+D19F 1
+D0A8 1
+D188 1
+D0A9 1
+D189 1
+D0AA 1
+D18A 1
+D0AB 1
+D18B 1
+D3B8 1
+D3B9 1
+D0AC 1
+D18C 1
+D28C 1
+D28D 1
+D1A2 1
+D1A3 1
+D0AD 1
+D18D 1
+D3AC 1
+D3AD 1
+D0AE 1
+D18E 1
+D0AF 1
+D18F 1
+D1A4 1
+D1A5 1
+D1A6 1
+D1A7 1
+D1AA 1
+D1AB 1
+D1A8 1
+D1A9 1
+D1AC 1
+D1AD 1
+D1AE 1
+D1AF 1
+D1B0 1
+D1B1 1
+D1B2 1
+D1B3 1
+D1B4 1
+D1B5 1
+D1B6 1
+D1B7 1
+D2A8 1
+D2A9 1
+D380 1
+D4B1 1
+D5A1 1
+D4B2 1
+D5A2 1
+D4B3 1
+D5A3 1
+D4B4 1
+D5A4 1
+D4B5 1
+D5A5 1
+D687 1
+D4B6 1
+D5A6 1
+D4B7 1
+D5A7 1
+D4B8 1
+D5A8 1
+D4B9 1
+D5A9 1
+D4BA 1
+D5AA 1
+D4BB 1
+D5AB 1
+D4BC 1
+D5AC 1
+D4BD 1
+D5AD 1
+D4BE 1
+D5AE 1
+D4BF 1
+D5AF 1
+D580 1
+D5B0 1
+D581 1
+D5B1 1
+D582 1
+D5B2 1
+D583 1
+D5B3 1
+D584 1
+D5B4 1
+D585 1
+D5B5 1
+D586 1
+D5B6 1
+D587 1
+D5B7 1
+D588 1
+D5B8 1
+D589 1
+D5B9 1
+D58A 1
+D5BA 1
+D58B 1
+D5BB 1
+D58C 1
+D5BC 1
+D58D 1
+D5BD 1
+D58E 1
+D5BE 1
+D58F 1
+D5BF 1
+D590 1
+D680 1
+D591 1
+D681 1
+D592 1
+D682 1
+D593 1
+D683 1
+D594 1
+D684 1
+D595 1
+D685 1
+D596 1
+D686 1
+D599 1
+D790 1
+D791 1
+D792 1
+D793 1
+D794 1
+D795 1
+D7B0 1
+D7B1 1
+D796 1
+D797 1
+D798 1
+D799 1
+D7B2 1
+D79A 1
+D79B 1
+D79C 1
+D79D 1
+D79E 1
+D79F 1
+D7A0 1
+D7A1 1
+D7A2 1
+D7A3 1
+D7A4 1
+D7A5 1
+D7A6 1
+D7A7 1
+D7A8 1
+D7A9 1
+D7AA 1
+D8A1 1
+D9B4 1
+DBBD 1
+D8A2 1
+D8A3 1
+D9B2 1
+D9B1 1
+D8A4 1
+D8A5 1
+D9B3 1
+D8A6 1
+D8A7 1
+D9B5 1
+D9AE 1
+D8A8 1
+D9BB 1
+D9BE 1
+DA80 1
+D8A9 1
+D8AA 1
+D8AB 1
+D9B9 1
+D9BA 1
+D9BC 1
+D9BD 1
+D9BF 1
+D8AC 1
+DA83 1
+DA84 1
+DA86 1
+DABF 1
+DA87 1
+D8AD 1
+D8AE 1
+DA81 1
+DA82 1
+DA85 1
+D8AF 1
+D8B0 1
+DA88 1
+DA89 1
+DA8A 1
+DA8B 1
+DA8C 1
+DA8D 1
+DA8E 1
+DA8F 1
+DA90 1
+DBAE 1
+D8B1 1
+D8B2 1
+DA91 1
+DA92 1
+DA93 1
+DA94 1
+DA95 1
+DA96 1
+DA97 1
+DA98 1
+DA99 1
+DBAF 1
+D8B3 1
+D8B4 1
+DA9A 1
+DA9B 1
+DA9C 1
+DBBA 1
+D8B5 1
+D8B6 1
+DA9D 1
+DA9E 1
+DBBB 1
+D8B7 1
+D8B8 1
+DA9F 1
+D8B9 1
+D8BA 1
+DAA0 1
+DBBC 1
+D981 1
+DAA1 1
+DAA2 1
+DAA3 1
+DAA4 1
+DAA5 1
+DAA6 1
+D9AF 1
+D982 1
+DAA7 1
+DAA8 1
+D983 1
+DAA9 1
+DAAA 1
+DAAB 1
+DAAC 1
+DAAD 1
+DAAE 1
+DAAF 1
+DAB0 1
+DAB1 1
+DAB2 1
+DAB3 1
+DAB4 1
+D984 1
+DAB5 1
+DAB6 1
+DAB7 1
+DAB8 1
+D985 1
+DBBE 1
+D986 1
+DABA 1
+DABB 1
+DABC 1
+DABD 1
+DAB9 1
+D987 1
+DABE 1
+DB81 1
+DB82 1
+DB83 1
+DBBF 1
+DB80 1
+DB95 1
+D988 1
+DBA5 1
+D9B6 1
+DB84 1
+DB85 1
+DB86 1
+DB87 1
+D9B7 1
+DB88 1
+DB89 1
+DB8A 1
+DB8B 1
+DB8F 1
+D989 1
+D98A 1
+DBA6 1
+D9B8 1
+DB8C 1
+DB8D 1
+DB8E 1
+DB90 1
+DB91 1
+DB92 1
+DB93 1
+DC90 1
+DC92 1
+DCAD 1
+DC93 1
+DC94 1
+DCAE 1
+DC96 1
+DC95 1
+DCAF 1
+DC97 1
+DC98 1
+DC99 1
+DD8D 1
+DC9A 1
+DC9B 1
+DC9C 1
+DC9D 1
+DC9E 1
+DC9F 1
+DD8E 1
+DCA0 1
+DCA1 1
+DCA2 1
+DCA3 1
+DCA4 1
+DCA5 1
+DCA6 1
+DCA7 1
+DD8F 1
+DCA8 1
+DCA9 1
+DCAA 1
+DCAB 1
+DCAC 1
+DE80 1
+DE99 1
+DE9A 1
+DE81 1
+DE82 1
+DE83 1
+DE9C 1
+DE84 1
+DE85 1
+DE86 1
+DE87 1
+DEA2 1
+DEA3 1
+DE88 1
+DEA5 1
+DE89 1
+DE8A 1
+DE8B 1
+DE9B 1
+DE8C 1
+DE98 1
+DEA0 1
+DEA1 1
+DE8D 1
+DE8E 1
+DEA4 1
+DE8F 1
+DE90 1
+DE9D 1
+DE9E 1
+DE9F 1
+DE91 1
+DE92 1
+DE93 1
+DE94 1
+DE95 1
+DE96 1
+DE97 1
+DEB1 1
+DEA6 1
+DEA7 1
+DEA8 1
+DEA9 1
+DEAA 1
+DEAB 1
+DEAC 1
+DEAD 1
+DEAE 1
+DEAF 1
+DEB0 1
+E4B880 1
+E4B881 1
+E4B882 1
+E4B883 1
+E4B884 1
+E4B885 1
+E4B886 1
+E4B887 1
+E4B888 1
+E4B889 1
+E4B88A 1
+E4B88B 1
+E4B88C 1
+E4B88D 1
+E4B88E 1
+E4B88F 1
+E4B890 1
+E4B891 1
+E4B892 1
+E4B893 1
+E4B894 1
+E4B895 1
+E4B896 1
+E4B897 1
+E4B898 1
+E4B899 1
+E4B89A 1
+E4B89B 1
+E4B89C 1
+E4B89D 1
+E4B89E 1
+E4B89F 1
+E4B8A0 1
+E4B8A1 1
+E4B8A2 1
+E4B8A3 1
+E4B8A4 1
+E4B8A5 1
+E4B8A6 1
+E4B8A7 1
+E4B8A8 1
+E4B8A9 1
+E4B8AA 1
+E4B8AB 1
+E4B8AC 1
+E4B8AD 1
+E4B8AE 1
+E4B8AF 1
+E4B8B0 1
+E4B8B1 1
+E4B8B2 1
+E4B8B3 1
+E4B8B4 1
+E4B8B5 1
+E4B8B6 1
+E4B8B7 1
+E4B8B8 1
+E4B8B9 1
+E4B8BA 1
+E4B8BB 1
+E4B8BC 1
+E4B8BD 1
+E4B8BE 1
+E4B8BF 1
+E4B980 1
+E4B981 1
+E4B982 1
+E4B983 1
+E4B984 1
+E4B985 1
+E4B986 1
+E4B987 1
+E4B988 1
+E4B989 1
+E4B98A 1
+E4B98B 1
+E4B98C 1
+E4B98D 1
+E4B98E 1
+E4B98F 1
+E4B990 1
+E4B991 1
+E4B992 1
+E4B993 1
+E4B994 1
+E4B995 1
+E4B996 1
+E4B997 1
+E4B998 1
+E4B999 1
+E4B99A 1
+E4B99B 1
+E4B99C 1
+E4B99D 1
+E4B99E 1
+E4B99F 1
+E4B9A0 1
+E4B9A1 1
+E4B9A2 1
+E4B9A3 1
+E4B9A4 1
+E4B9A5 1
+E4B9A6 1
+E4B9A7 1
+E4B9A8 1
+E4B9A9 1
+E4B9AA 1
+E4B9AB 1
+E4B9AC 1
+E4B9AD 1
+E4B9AE 1
+E4B9AF 1
+E4B9B0 1
+E4B9B1 1
+E4B9B2 1
+E4B9B3 1
+E4B9B4 1
+E4B9B5 1
+E4B9B6 1
+E4B9B7 1
+E4B9B8 1
+E4B9B9 1
+E4B9BA 1
+E4B9BB 1
+E4B9BC 1
+E4B9BD 1
+E4B9BE 1
+E4B9BF 1
+E4BA80 1
+E4BA81 1
+E4BA82 1
+E4BA83 1
+E4BA84 1
+E4BA85 1
+E4BA86 1
+E4BA87 1
+E4BA88 1
+E4BA89 1
+E4BA8A 1
+E4BA8B 1
+E4BA8C 1
+E4BA8D 1
+E4BA8E 1
+E4BA8F 1
+E4BA90 1
+E4BA91 1
+E4BA92 1
+E4BA93 1
+E4BA94 1
+E4BA95 1
+E4BA96 1
+E4BA97 1
+E4BA98 1
+E4BA99 1
+E4BA9A 1
+E4BA9B 1
+E4BA9C 1
+E4BA9D 1
+E4BA9E 1
+E4BA9F 1
+E4BAA0 1
+E4BAA1 1
+E4BAA2 1
+E4BAA3 1
+E4BAA4 1
+E4BAA5 1
+E4BAA6 1
+E4BAA7 1
+E4BAA8 1
+E4BAA9 1
+E4BAAA 1
+E4BAAB 1
+E4BAAC 1
+E4BAAD 1
+E4BAAE 1
+E4BAAF 1
+E4BAB0 1
+E4BAB1 1
+E4BAB2 1
+E4BAB3 1
+E4BAB4 1
+E4BAB5 1
+E4BAB6 1
+E4BAB7 1
+E4BAB8 1
+E4BAB9 1
+E4BABA 1
+E4BABB 1
+E4BABC 1
+E4BABD 1
+E4BABE 1
+E4BABF 1
+E4BB80 1
+E4BB81 1
+E4BB82 1
+E4BB83 1
+E4BB84 1
+E4BB85 1
+E4BB86 1
+E4BB87 1
+E4BB88 1
+E4BB89 1
+E4BB8A 1
+E4BB8B 1
+E4BB8C 1
+E4BB8D 1
+E4BB8E 1
+E4BB8F 1
+E4BB90 1
+E4BB91 1
+E4BB92 1
+E4BB93 1
+E4BB94 1
+E4BB95 1
+E4BB96 1
+E4BB97 1
+E4BB98 1
+E4BB99 1
+E4BB9A 1
+E4BB9B 1
+E4BB9C 1
+E4BB9D 1
+E4BB9E 1
+E4BB9F 1
+E4BBA0 1
+E4BBA1 1
+E4BBA2 1
+E4BBA3 1
+E4BBA4 1
+E4BBA5 1
+E4BBA6 1
+E4BBA7 1
+E4BBA8 1
+E4BBA9 1
+E4BBAA 1
+E4BBAB 1
+E4BBAC 1
+E4BBAD 1
+E4BBAE 1
+E4BBAF 1
+E4BBB0 1
+E4BBB1 1
+E4BBB2 1
+E4BBB3 1
+E4BBB4 1
+E4BBB5 1
+E4BBB6 1
+E4BBB7 1
+E4BBB8 1
+E4BBB9 1
+E4BBBA 1
+E4BBBB 1
+E4BBBC 1
+E4BBBD 1
+E4BBBE 1
+E4BBBF 1
+E4BC80 1
+E4BC81 1
+E4BC82 1
+E4BC83 1
+E4BC84 1
+E4BC85 1
+E4BC86 1
+E4BC87 1
+E4BC88 1
+E4BC89 1
+E4BC8A 1
+E4BC8B 1
+E4BC8C 1
+E4BC8D 1
+E4BC8E 1
+E4BC8F 1
+E4BC90 1
+E4BC91 1
+E4BC92 1
+E4BC93 1
+E4BC94 1
+E4BC95 1
+E4BC96 1
+E4BC97 1
+E4BC98 1
+E4BC99 1
+E4BC9A 1
+E4BC9B 1
+E4BC9C 1
+E4BC9D 1
+E4BC9E 1
+E4BC9F 1
+E4BCA0 1
+E4BCA1 1
+E4BCA2 1
+E4BCA3 1
+E4BCA4 1
+E4BCA5 1
+E4BCA6 1
+E4BCA7 1
+E4BCA8 1
+E4BCA9 1
+E4BCAA 1
+E4BCAB 1
+E4BCAC 1
+E4BCAD 1
+E4BCAE 1
+E4BCAF 1
+E4BCB0 1
+E4BCB1 1
+E4BCB2 1
+E4BCB3 1
+E4BCB4 1
+E4BCB5 1
+E4BCB6 1
+E4BCB7 1
+E4BCB8 1
+E4BCB9 1
+E4BCBA 1
+E4BCBB 1
+E4BCBC 1
+E4BCBD 1
+E4BCBE 1
+E4BCBF 1
+E4BD80 1
+E4BD81 1
+E4BD82 1
+E4BD83 1
+E4BD84 1
+E4BD85 1
+E4BD86 1
+E4BD87 1
+E4BD88 1
+E4BD89 1
+E4BD8A 1
+E4BD8B 1
+E4BD8C 1
+E4BD8D 1
+E4BD8E 1
+E4BD8F 1
+E4BD90 1
+E4BD91 1
+E4BD92 1
+E4BD93 1
+E4BD94 1
+E4BD95 1
+E4BD96 1
+E4BD97 1
+E4BD98 1
+E4BD99 1
+E4BD9A 1
+E4BD9B 1
+E4BD9C 1
+E4BD9D 1
+E4BD9E 1
+E4BD9F 1
+E4BDA0 1
+E4BDA1 1
+E4BDA2 1
+E4BDA3 1
+E4BDA4 1
+E4BDA5 1
+E4BDA6 1
+E4BDA7 1
+E4BDA8 1
+E4BDA9 1
+E4BDAA 1
+E4BDAB 1
+E4BDAC 1
+E4BDAD 1
+E4BDAE 1
+E4BDAF 1
+E4BDB0 1
+E4BDB1 1
+E4BDB2 1
+E4BDB3 1
+E4BDB4 1
+E4BDB5 1
+E4BDB6 1
+E4BDB7 1
+E4BDB8 1
+E4BDB9 1
+E4BDBA 1
+E4BDBB 1
+E4BDBC 1
+E4BDBD 1
+E4BDBE 1
+E4BDBF 1
+E4BE80 1
+E4BE81 1
+E4BE82 1
+E4BE83 1
+E4BE84 1
+E4BE85 1
+E4BE86 1
+E4BE87 1
+E4BE88 1
+E4BE89 1
+E4BE8A 1
+E4BE8B 1
+E4BE8C 1
+E4BE8D 1
+E4BE8E 1
+E4BE8F 1
+E4BE90 1
+E4BE91 1
+E4BE92 1
+E4BE93 1
+E4BE94 1
+E4BE95 1
+E4BE96 1
+E4BE97 1
+E4BE98 1
+E4BE99 1
+E4BE9A 1
+E4BE9B 1
+E4BE9C 1
+E4BE9D 1
+E4BE9E 1
+E4BE9F 1
+E4BEA0 1
+E4BEA1 1
+E4BEA2 1
+E4BEA3 1
+E4BEA4 1
+E4BEA5 1
+E4BEA6 1
+E4BEA7 1
+E4BEA8 1
+E4BEA9 1
+E4BEAA 1
+E4BEAB 1
+E4BEAC 1
+E4BEAD 1
+E4BEAE 1
+E4BEAF 1
+E4BEB0 1
+E4BEB1 1
+E4BEB2 1
+E4BEB3 1
+E4BEB4 1
+E4BEB5 1
+E4BEB6 1
+E4BEB7 1
+E4BEB8 1
+E4BEB9 1
+E4BEBA 1
+E4BEBB 1
+E4BEBC 1
+E4BEBD 1
+E4BEBE 1
+E4BEBF 1
+E4BF80 1
+E4BF81 1
+E4BF82 1
+E4BF83 1
+E4BF84 1
+E4BF85 1
+E4BF86 1
+E4BF87 1
+E4BF88 1
+E4BF89 1
+E4BF8A 1
+E4BF8B 1
+E4BF8C 1
+E4BF8D 1
+E4BF8E 1
+E4BF8F 1
+E4BF90 1
+E4BF91 1
+E4BF92 1
+E4BF93 1
+E4BF94 1
+E4BF95 1
+E4BF96 1
+E4BF97 1
+E4BF98 1
+E4BF99 1
+E4BF9A 1
+E4BF9B 1
+E4BF9C 1
+E4BF9D 1
+E4BF9E 1
+E4BF9F 1
+E4BFA0 1
+E4BFA1 1
+E4BFA2 1
+E4BFA3 1
+E4BFA4 1
+E4BFA5 1
+E4BFA6 1
+E4BFA7 1
+E4BFA8 1
+E4BFA9 1
+E4BFAA 1
+E4BFAB 1
+E4BFAC 1
+E4BFAD 1
+E4BFAE 1
+E4BFAF 1
+E4BFB0 1
+E4BFB1 1
+E4BFB2 1
+E4BFB3 1
+E4BFB4 1
+E4BFB5 1
+E4BFB6 1
+E4BFB7 1
+E4BFB8 1
+E4BFB9 1
+E4BFBA 1
+E4BFBB 1
+E4BFBC 1
+E4BFBD 1
+E4BFBE 1
+E4BFBF 1
+C8B7 1
+C8B8 1
+C8B9 1
+C8BA 1
+C8BB 1
+C8BC 1
+C8BD 1
+C8BE 1
+C8BF 1
+C980 1
+C981 1
+C982 1
+C983 1
+C984 1
+C985 1
+C986 1
+C987 1
+C988 1
+C989 1
+C98A 1
+C98B 1
+C98C 1
+C98D 1
+C98E 1
+C98F 1
+CD98 1
+CD99 1
+CD9A 1
+CD9B 1
+CD9C 1
+CDB0 1
+CDB1 1
+CDB2 1
+CDB3 1
+CDB6 1
+CDB7 1
+CDB8 1
+CDB9 1
+CDBB 1
+CDBC 1
+CDBD 1
+CDBF 1
+CE80 1
+CE81 1
+CE82 1
+CE83 1
+CE8B 1
+CE8D 1
+CEA2 1
+CF8F 1
+CFBC 1
+CFBD 1
+CFBE 1
+CFBF 1
+D287 1
+D38F 1
+D3B6 1
+D3B7 1
+D3BA 1
+D3BB 1
+D3BC 1
+D3BD 1
+D3BE 1
+D3BF 1
+D490 1
+D491 1
+D492 1
+D493 1
+D494 1
+D495 1
+D496 1
+D497 1
+D498 1
+D499 1
+D49A 1
+D49B 1
+D49C 1
+D49D 1
+D49E 1
+D49F 1
+D4A0 1
+D4A1 1
+D4A2 1
+D4A3 1
+D4A4 1
+D4A5 1
+D4A6 1
+D4A7 1
+D4A8 1
+D4A9 1
+D4AA 1
+D4AB 1
+D4AC 1
+D4AD 1
+D4AE 1
+D4AF 1
+D4B0 1
+D597 1
+D598 1
+D5A0 1
+D688 1
+D68B 1
+D68C 1
+D68D 1
+D68E 1
+D68F 1
+D690 1
+D6A2 1
+D6BA 1
+D785 1
+D786 1
+D787 1
+D788 1
+D789 1
+D78A 1
+D78B 1
+D78C 1
+D78D 1
+D78E 1
+D78F 1
+D7AB 1
+D7AC 1
+D7AD 1
+D7AE 1
+D7AF 1
+D7B5 1
+D7B6 1
+D7B7 1
+D7B8 1
+D7B9 1
+D7BA 1
+D7BB 1
+D7BC 1
+D7BD 1
+D7BE 1
+D7BF 1
+D884 1
+D885 1
+D886 1
+D887 1
+D888 1
+D889 1
+D88A 1
+D88B 1
+D896 1
+D897 1
+D898 1
+D899 1
+D89A 1
+D89C 1
+D89D 1
+D89E 1
+D8A0 1
+D8BB 1
+D8BC 1
+D8BD 1
+D8BE 1
+D8BF 1
+D999 1
+D99A 1
+D99B 1
+D99C 1
+D99D 1
+D99E 1
+D99F 1
+DC8E 1
+DD8B 1
+DD8C 1
+DD90 1
+DD91 1
+DD92 1
+DD93 1
+DD94 1
+DD95 1
+DD96 1
+DD97 1
+DD98 1
+DD99 1
+DD9A 1
+DD9B 1
+DD9C 1
+DD9D 1
+DD9E 1
+DD9F 1
+DDA0 1
+DDA1 1
+DDA2 1
+DDA3 1
+DDA4 1
+DDA5 1
+DDA6 1
+DDA7 1
+DDA8 1
+DDA9 1
+DDAA 1
+DDAB 1
+DDAC 1
+DDAD 1
+DDAE 1
+DDAF 1
+DDB0 1
+DDB1 1
+DDB2 1
+DDB3 1
+DDB4 1
+DDB5 1
+DDB6 1
+DDB7 1
+DDB8 1
+DDB9 1
+DDBA 1
+DDBB 1
+DDBC 1
+DDBD 1
+DDBE 1
+DDBF 1
+DEB2 1
+DEB3 1
+DEB4 1
+DEB5 1
+DEB6 1
+DEB7 1
+DEB8 1
+DEB9 1
+DEBA 1
+DEBB 1
+DEBC 1
+DEBD 1
+DEBE 1
+DEBF 1
+DF80 1
+DF81 1
+DF82 1
+DF83 1
+DF84 1
+DF85 1
+DF86 1
+DF87 1
+DF88 1
+DF89 1
+DF8A 1
+DF8B 1
+DF8C 1
+DF8D 1
+DF8E 1
+DF8F 1
+DF90 1
+DF91 1
+DF92 1
+DF93 1
+DF94 1
+DF95 1
+DF96 1
+DF97 1
+DF98 1
+DF99 1
+DF9A 1
+DF9B 1
+DF9C 1
+DF9D 1
+DF9E 1
+DF9F 1
+DFA0 1
+DFA1 1
+DFA2 1
+DFA3 1
+DFA4 1
+DFA5 1
+DFA6 1
+DFA7 1
+DFA8 1
+DFA9 1
+DFAA 1
+DFAB 1
+DFAC 1
+DFAD 1
+DFAE 1
+DFAF 1
+DFB0 1
+DFB1 1
+DFB2 1
+DFB3 1
+DFB4 1
+DFB5 1
+DFB6 1
+DFB7 1
+DFB8 1
+DFB9 1
+DFBA 1
+DFBB 1
+DFBC 1
+DFBD 1
+DFBE 1
+DFBF 1
+DROP TABLE IF EXISTS test.t1;
diff --git a/mysql-test/suite/funcs_2/readme.txt b/mysql-test/suite/funcs_2/readme.txt
new file mode 100644
index 00000000000..53ce41cc845
--- /dev/null
+++ b/mysql-test/suite/funcs_2/readme.txt
@@ -0,0 +1,22 @@
+funcs_2 suite
+=============
+
+Serge Kozlov 11/17/05
+---------------------
+
+Currently the suite covers testing all combination of charsets/collations
+for MySQL 5.0 only. All cases separated by 4 test scenarios (by engines):
+ - innodb_charset.test;
+ - memory_charset.test;
+ - myisam_charset.test;
+ - ndb_charset.test;
+Note: if you use standard binary distributions or compile from source tree
+without cluster support then ndb_charset.test will be skipped. Use
+BUILD/compile-*****-max shellscript for compilation with ndb support or
+download MAX package.
+
+Before running the suite under Windows/cygwin make sure that all files
+inside it converted to unix text format.
+
+Whole suite can be running by following command line:
+./mysql-test-run.pl --suite=funcs_2
diff --git a/mysql-test/suite/funcs_2/t/innodb_charset.test b/mysql-test/suite/funcs_2/t/innodb_charset.test
new file mode 100644
index 00000000000..5d4a72cfa2e
--- /dev/null
+++ b/mysql-test/suite/funcs_2/t/innodb_charset.test
@@ -0,0 +1,11 @@
+#################################################################################
+# Author: Serge Kozlov #
+# Date: 09/21/2005 #
+# Purpose: Testing the charsets for InnoDB engine #
+#################################################################################
+
+--source include/have_innodb.inc
+
+let $engine_type= InnoDB;
+--source suite/funcs_2/charset/charset_master.test
+
diff --git a/mysql-test/suite/funcs_2/t/memory_charset.test b/mysql-test/suite/funcs_2/t/memory_charset.test
new file mode 100644
index 00000000000..ce9b80462f1
--- /dev/null
+++ b/mysql-test/suite/funcs_2/t/memory_charset.test
@@ -0,0 +1,9 @@
+#################################################################################
+# Author: Serge Kozlov #
+# Date: 09/21/2005 #
+# Purpose: Testing the charsets for Memory engine #
+#################################################################################
+
+let $engine_type= Memory;
+--source suite/funcs_2/charset/charset_master.test
+
diff --git a/mysql-test/suite/funcs_2/t/myisam_charset.test b/mysql-test/suite/funcs_2/t/myisam_charset.test
new file mode 100644
index 00000000000..b3f862c89de
--- /dev/null
+++ b/mysql-test/suite/funcs_2/t/myisam_charset.test
@@ -0,0 +1,9 @@
+#################################################################################
+# Author: Serge Kozlov #
+# Date: 09/21/2005 #
+# Purpose: Testing the charsets for MyISAM engine #
+#################################################################################
+
+let $engine_type= MyISAM;
+--source suite/funcs_2/charset/charset_master.test
+
diff --git a/mysql-test/suite/funcs_2/t/ndb_charset.test b/mysql-test/suite/funcs_2/t/ndb_charset.test
new file mode 100644
index 00000000000..72ebbad43d7
--- /dev/null
+++ b/mysql-test/suite/funcs_2/t/ndb_charset.test
@@ -0,0 +1,12 @@
+#################################################################################
+# Author: Serge Kozlov #
+# Date: 09/21/2005 #
+# Purpose: Testing the charsets for NDB engine #
+#################################################################################
+
+--source include/have_ndb.inc
+--source include/not_embedded.inc
+
+let $engine_type= NDB;
+--source suite/funcs_2/charset/charset_master.test
+
diff --git a/mysql-test/suite/large_tests/README.TXT b/mysql-test/suite/large_tests/README.TXT
new file mode 100644
index 00000000000..51cd4e41a40
--- /dev/null
+++ b/mysql-test/suite/large_tests/README.TXT
@@ -0,0 +1,13 @@
+large_test suite
+================
+
+Iggy Galarza 07/20/07
+---------------------
+
+This test suite should include any test that requires:
+1. Longer than the default timeout to complete.
+2. A considerable amount of disk space.
+
+These tests can be completed with the following command:
+
+mysql-test-run.pl --suite=large_tests --big-test --suite-timeout=6360 --testcase-timeout=795
diff --git a/mysql-test/suite/large_tests/r/alter_table.result b/mysql-test/suite/large_tests/r/alter_table.result
new file mode 100644
index 00000000000..921711e9812
--- /dev/null
+++ b/mysql-test/suite/large_tests/r/alter_table.result
@@ -0,0 +1,37 @@
+drop table if exists t1;
+create table `t1` (`c1` tinyint unsigned not null, key `c1` (`c1`))
+engine=myisam default charset=utf8;
+alter table `t1` disable keys;
+insert into t1 values (1),(2),(3),(4);
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1 limit 2147483647;
+alter table t1 enable keys;
+drop table t1;
diff --git a/mysql-test/suite/large_tests/t/alter_table.test b/mysql-test/suite/large_tests/t/alter_table.test
new file mode 100644
index 00000000000..61f0b34d904
--- /dev/null
+++ b/mysql-test/suite/large_tests/t/alter_table.test
@@ -0,0 +1,47 @@
+# The test for bug#27029 requires about 8 hours and 20 minutes on my
+# fastest machine. This test requires at least 60 GB of disk space.
+--source include/big_test.inc
+
+#
+# Bug#27029 alter table ... enable keys crashes mysqld on large table
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table `t1` (`c1` tinyint unsigned not null, key `c1` (`c1`))
+engine=myisam default charset=utf8;
+alter table `t1` disable keys;
+insert into t1 values (1),(2),(3),(4);
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1;
+insert into t1 select * from t1 limit 2147483647; #Insert 4294967295 rows.
+alter table t1 enable keys;
+drop table t1;
diff --git a/mysql-test/t/alias.test b/mysql-test/t/alias.test
index 941bc8091fc..6546581eef2 100644
--- a/mysql-test/t/alias.test
+++ b/mysql-test/t/alias.test
@@ -30,7 +30,7 @@ CREATE TABLE t1 (
prov_hdl_nr int(11) NOT NULL default '0',
auto_wirknetz varchar(50) default NULL,
auto_billing varchar(50) default NULL,
- touch timestamp(14) NOT NULL,
+ touch timestamp NOT NULL,
kategorie varchar(50) default NULL,
kundentyp varchar(20) NOT NULL default '',
sammel_rech_msisdn varchar(30) NOT NULL default '',
@@ -61,7 +61,6 @@ INSERT INTO t1 VALUES (3359361,406,3359361,'Mustermann Musterfrau',7001,'2000-05
INSERT INTO t1 VALUES (3359362,406,3359362,'Mustermann Musterfrau',7001,'2000-05-20','workflow','Auftrag erledigt','Originalvertrag eingegangen und geprüft','','privat',1509984,2145874,'+','','P',1909154,'MobilComSuper92000D1(Akquise)',NULL,NULL,'MS9ND1',327,24,'MobilCom Intern',7003,NULL,'auto',20010202105916,'Mobilfunk','PP','','','');
# This died because we used the field Kundentyp twice
-
SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie;
drop table t1;
diff --git a/mysql-test/t/alter_table-big.test b/mysql-test/t/alter_table-big.test
new file mode 100644
index 00000000000..9a773f48a9c
--- /dev/null
+++ b/mysql-test/t/alter_table-big.test
@@ -0,0 +1,62 @@
+# In order to be more or less robust test for bug#25044 has to take
+# significant time (e.g. about 9 seconds on my (Dmitri's) computer)
+# so we probably want execute it only in --big-test mode.
+# Also in 5.1 this test will require statement-based binlog.
+--source include/big_test.inc
+
+
+#
+# Test for bug #25044 "ALTER TABLE ... ENABLE KEYS acquires global
+# 'opening tables' lock".
+#
+# ALTER TABLE ... ENABLE KEYS should not acquire LOCK_open mutex for
+# the whole its duration as it prevents other queries from execution.
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+connect (addconroot, localhost, root,,);
+connection default;
+create table t1 (n1 int, n2 int, n3 int,
+ key (n1, n2, n3),
+ key (n2, n3, n1),
+ key (n3, n1, n2));
+create table t2 (i int);
+
+# Populating 't1' table with keys disabled, so ALTER TABLE .. ENABLE KEYS
+# will run for some time
+alter table t1 disable keys;
+--disable_query_log
+insert into t1 values (RAND()*1000,RAND()*1000,RAND()*1000);
+let $1=19;
+while ($1)
+{
+ eval insert into t1 select RAND()*1000,RAND()*1000,RAND()*1000 from t1;
+ dec $1;
+}
+--enable_query_log
+
+# Later we use binlog to check the order in which statements are
+# executed so let us reset it first.
+reset master;
+--send alter table t1 enable keys;
+connection addconroot;
+let $show_type= PROCESSLIST;
+let $show_pattern= '%Repair by sorting%alter table t1 enable keys%';
+--source include/wait_show_pattern.inc
+# This statement should not be blocked by in-flight ALTER and therefore
+# should be executed and written to binlog before ALTER TABLE ... ENABLE KEYS
+# finishes.
+insert into t2 values (1);
+# And this should wait until the end of ALTER TABLE ... ENABLE KEYS.
+insert into t1 values (1, 1, 1);
+connection default;
+--reap
+# Check that statements were executed/binlogged in correct order.
+--replace_column 2 # 5 #
+show binlog events in 'master-bin.000001' from 98;
+
+# Clean up
+drop tables t1, t2;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test
index 874c42ac0b6..bcca122f9f8 100644
--- a/mysql-test/t/alter_table.test
+++ b/mysql-test/t/alter_table.test
@@ -278,7 +278,7 @@ insert into t1 values ('ÔÅÓÔ');
select a,hex(a) from t1;
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
-alter table t1 change a a binary(10);
+alter table t1 change a a binary(4);
select a,hex(a) from t1;
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
@@ -338,6 +338,16 @@ alter table t1 drop key a;
drop table t1;
#
+# BUG 12207 alter table ... discard table space on MyISAM table causes ERROR 2013 (HY000)
+#
+# Some platforms (Mac OS X, Windows) will send the error message using small letters.
+CREATE TABLE T12207(a int) ENGINE=MYISAM;
+--replace_result t12207 T12207
+--error 1031
+ALTER TABLE T12207 DISCARD TABLESPACE;
+DROP TABLE T12207;
+
+#
# Bug #6479 ALTER TABLE ... changing charset fails for TEXT columns
#
# The column's character set was changed but the actual data was not
@@ -462,24 +472,24 @@ drop table t1;
# Bug#11493 - Alter table rename to default database does not work without
# db name qualifying
#
-create database mysqltest1;
+create database mysqltest;
create table t1 (c1 int);
# Move table to other database.
-alter table t1 rename mysqltest1.t1;
+alter table t1 rename mysqltest.t1;
# Assure that it has moved.
--error 1051
drop table t1;
# Move table back.
-alter table mysqltest1.t1 rename t1;
+alter table mysqltest.t1 rename t1;
# Assure that it is back.
drop table t1;
# Now test for correct message if no database is selected.
# Create t1 in 'test'.
create table t1 (c1 int);
# Change to other db.
-use mysqltest1;
+use mysqltest;
# Drop the current db. This de-selects any db.
-drop database mysqltest1;
+drop database mysqltest;
# Now test for correct message.
--error 1046
alter table test.t1 rename t1;
@@ -569,30 +579,120 @@ order by table_24562.subsection ASC, table_24562.section DESC;
select * from table_24562;
---error 1064
+--error ER_PARSE_ERROR
alter table table_24562 order by 12;
---error 1064
+--error ER_PARSE_ERROR
alter table table_24562 order by (section + 12);
---error 1064
+--error ER_PARSE_ERROR
alter table table_24562 order by length(title);
---error 1064
+--error ER_PARSE_ERROR
alter table table_24562 order by (select 12 from dual);
---error 1054
+--error ER_BAD_FIELD_ERROR
alter table table_24562 order by no_such_col;
drop table table_24562;
+# End of 4.1 tests
+
#
-# Bug #20710: adding unique index of column with duplicated
-# long values to reproduce error message with truncated key value.
+# Bug #14693 (ALTER SET DEFAULT doesn't work)
#
-CREATE TABLE t1 (c1 CHAR(255));
-INSERT INTO t1 VALUES (REPEAT("x", 255)), (REPEAT("x", 255));
---error 1062
-ALTER TABLE t1 ADD UNIQUE (c1);
+create table t1 (mycol int(10) not null);
+alter table t1 alter column mycol set default 0;
+desc t1;
+drop table t1;
+
+#
+# Bug#6073 "ALTER table minor glich": ALTER TABLE complains that an index
+# without # prefix is not allowed for TEXT columns, while index
+# is defined with prefix.
+#
+create table t1 (t varchar(255) default null, key t (t(80)))
+engine=myisam default charset=latin1;
+alter table t1 change t t text;
+drop table t1;
+
+#
+# Bug #26794: Adding an index with a prefix on a SPATIAL type breaks ALTER
+# TABLE
+#
+CREATE TABLE t1 (a varchar(500));
+
+ALTER TABLE t1 ADD b GEOMETRY NOT NULL, ADD SPATIAL INDEX(b);
+SHOW CREATE TABLE t1;
+ALTER TABLE t1 ADD KEY(b(50));
+SHOW CREATE TABLE t1;
+
+ALTER TABLE t1 ADD c POINT;
+SHOW CREATE TABLE t1;
+
+--error ER_WRONG_SUB_KEY
+CREATE TABLE t2 (a INT, KEY (a(20)));
+
+ALTER TABLE t1 ADD d INT;
+--error ER_WRONG_SUB_KEY
+ALTER TABLE t1 ADD KEY (d(20));
+
DROP TABLE t1;
+# Bug#25262 Auto Increment lost when changing Engine type
+#
-# End of 4.1 tests
+create table t1(id int(8) primary key auto_increment) engine=heap;
+
+insert into t1 values (null);
+insert into t1 values (null);
+
+select * from t1;
+
+# Set auto increment to 50
+alter table t1 auto_increment = 50;
+
+# Alter to myisam
+alter table t1 engine = myisam;
+
+# This insert should get id 50
+insert into t1 values (null);
+select * from t1;
+
+# Alter to heap again
+alter table t1 engine = heap;
+insert into t1 values (null);
+select * from t1;
+
+drop table t1;
+#
+# Bug#27507: Wrong DATETIME value was allowed by ALTER TABLE in the
+# NO_ZERO_DATE mode.
+#
+set @orig_sql_mode = @@sql_mode;
+set sql_mode="no_zero_date";
+create table t1(f1 int);
+alter table t1 add column f2 datetime not null, add column f21 date not null;
+insert into t1 values(1,'2000-01-01','2000-01-01');
+--error 1292
+alter table t1 add column f3 datetime not null;
+--error 1292
+alter table t1 add column f3 date not null;
+--error 1292
+alter table t1 add column f4 datetime not null default '2002-02-02',
+ add column f41 date not null;
+alter table t1 add column f4 datetime not null default '2002-02-02',
+ add column f41 date not null default '2002-02-02';
+select * from t1;
+drop table t1;
+set sql_mode= @orig_sql_mode;
+
+#
+# BUG#29957 - alter_table.test fails
+#
+create table t1 (c char(10) default "Two");
+lock table t1 write;
+insert into t1 values ();
+alter table t1 modify c char(10) default "Three";
+unlock tables;
+select * from t1;
+check table t1;
+drop table t1;
diff --git a/mysql-test/t/analyse.test b/mysql-test/t/analyse.test
index 88fe8dc55e7..efcf5f6421c 100644
--- a/mysql-test/t/analyse.test
+++ b/mysql-test/t/analyse.test
@@ -48,6 +48,14 @@ insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),(
select * from t1 procedure analyse();
drop table t1;
+#decimal-related test
+
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+insert into t1 values(2.2);
+select * from t1 procedure analyse();
+drop table t1;
+
#
# Bug#10716 - Procedure Analyse results in wrong values for optimal field type
#
diff --git a/mysql-test/t/analyze.test b/mysql-test/t/analyze.test
index a4694c32d3c..7c9830bb468 100644
--- a/mysql-test/t/analyze.test
+++ b/mysql-test/t/analyze.test
@@ -39,6 +39,20 @@ check table t1;
drop table t1;
+# Bug #14902 ANALYZE TABLE fails to recognize up-to-date tables
+# minimal test case to get an error.
+# The problem is happening when analysing table with FT index that
+# contains stopwords only. The first execution of analyze table should
+# mark index statistics as up to date so that next execution of this
+# statement will end up with Table is up to date status.
+create table t1 (a mediumtext, fulltext key key1(a)) charset utf8 collate utf8_general_ci engine myisam;
+insert into t1 values ('hello');
+
+analyze table t1;
+analyze table t1;
+
+drop table t1;
+
#
# procedure in PS BUG#13673
#
@@ -47,6 +61,7 @@ prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()";
execute stmt1;
execute stmt1;
deallocate prepare stmt1;
+drop table t1;
#
# bug#15225 (ANALYZE temporary has no effect)
diff --git a/mysql-test/t/archive-big.test b/mysql-test/t/archive-big.test
new file mode 100644
index 00000000000..414b689b180
--- /dev/null
+++ b/mysql-test/t/archive-big.test
@@ -0,0 +1,25 @@
+--source include/big_test.inc
+--source include/have_archive.inc
+CREATE TABLE t1(a BLOB) ENGINE=ARCHIVE;
+--disable_query_log
+INSERT INTO t1 VALUES('<W*a8,mnd-Kt35R&Z\"-ZgzY-iUPm^o:j5\\W\'PFM6_bRV:Z@ixJCQOw8GANFVahj^wcjnm^k(wOa\"uX9LXZ@hv>gt:Y;V(Wh/DM;z\'@Scyb^2u*b:8GBTan./A;D(7x(PB98IL%ipw0x=^H,>8=i%m\'heEdN:pR*o%Ywtf&x]H2[]Ex\\Bn1>\'EhfGmw56OpkO(n$VpXE2d.M#Z*XevKM$`Er;euB&2e3d-HdFlw;RobzhxMQ3EFn&aCf`5y79V/\"UmMt-t36S(aAY&Ekt.w@m4Q!G,@@]?\\<Pazh\"\\79X7D3m[\\@gnt\'RPzBq@&6y5.)z`POzG+>:D.R;j1Kj[j*&\"n8cq6Me>@fgW_Wx$821=#0fAM@75D7\'Wi2T8W32B96C2kQ5MiO2C>NP-(!fms!;I?Biu7F?G*6o[Z54D?LCJ/H\\#+M,-;$?Rd\'-Ii`+GfW_\\5-zRc\'.M%dV`dYpOv2,\"`L;\"3u(Xk9pU8Ry79Z?fo\"K=-b7#FxX0!OS6Oma\"uZ@m1C?Q]c\\*P=z\")Hq/(xSsrd\"j&n(m{J9x#4y:KM%cSV7LZft=gzUtse$tM`#zsV35Oqsrf,=0u-q#H-@=Qc(1\\ddM6`gke>>^F{fmt(Zuey[9G=;O_tRx1zH2[Z9E5rjDL8j<)RIVX<\\Bq@\'<<X-nqmT:`_@Y*Yl<yz#/a*@I1S9[G/S9``Chja*E]-]va`Eq8V34J]wg\"c[{&=CuT!?[4+u@uX;U$H),@@bRS11DGt@wfvJF`7-u7KSFBVmMostran-)\'(0YW/x@m3Kd<;Pc-ImokLw>cbFq2;qS+q*lprp_gnv/t0$`Ep4HP>$4w-iWW35Lc7{8<bcK0GWbl\"R_l(r:_Y$:<^NH]&;:Pe7trbsD5v%Fr<es:]MIgRD=E\',EZxtcp3D=F-Ii\\pFHvH@DrA(@I5h:z,]u]Sh9vvs_`I.CK4[Uy.iUMb-N)uH?Bl)tA#$*Ea@UmO#WscxX0zH4d,AEvRo`tOf;/r&Ve{c^1po]da=G1[_LA@\\629duIFa?Sd&\'1^p>zxpK`+KyLKs.{Si>3#PR.,.@>Uqd%zj(wRpe,@Cm)q4D<>caAZ+[qQy9HCT_e_3sy0qw,b6#Fz`QT7Qv+a4v\'N;xxudtC+FcJ%p9``Cjt0)vJKt7JO5T10<\"-\\qK_#&2iIke<7?tY@m4Os$H((0TC/[did@K<)TU0)vJJq(eO;uj6aq>u_Z*Yi+1S6Pqo`qA*Fg\\u`_ChmkXU&SU8Pod.M{Q[[:LR=rR&\\)L.;\"1l\\i\"Z0u1)s;a_>Q^k&js+lkYY7B*FbEkr&U`hljR9cp01GUYAtRw/qz8>m:k=)M3Oy>`OMr\"Bju6A\'<:LUKWV.yJ>9Axft@va`Be\\#,RC5#EwV)]&<@gr-zQavV-ox56L_!wh&uM\\k,0Ia7\'YrYI?>W&N<{)L*).JmlZ]H0S9[I9!5)i`,N.7d\"m/:r\\UutlDH#hp!F#rIO4Q&\\*TNiO-0GWeyY/v59``ChiYbf]#,O6W<ccK/A?W\"73:g%tIIs5C3pg9y*TPv-lf><QhAEtHCXq[SjG_/_\"ym<wpP{F%ygwI@EvPg>8Ayk1EN;xwpQ$Vi9unNu-q#I1Q/1HZoHRGL+,<-gL\'p1;pQ\"MERQ#OO{J<-fFh^%2kP08h2T:\\LDQNpty*V\\NO(lu1(o+xMS=qMhL\"Y\'K-9tlDJ,8q`it4:g%q=sW8KWU,mng:)Yl=#3sz3\"MFWexSpauQod-G_4z;KL{Sg4c$xb`B`Dp6OpnZU$Er;er8T(^.`(:/u33ECbL5`hq%S[TsmLmkUGARYNXV*b>I:#<I;,c>G.Ii\\rPs\"<KJp\"G)1XNa#xi\'vRn[\\AjzQ]efVZD%&/Y[An5Orx-fGkme6qd&%&0\\fny=[<TtupU8T(^0fAL>0omXQkN&gb8+i[n@.`\'5qjERPy<W\'RPx:O`zm7^\\79X9LUL[gwKLwBw]LFVbn+yUx\'I\"bUcvN_tT%QS/++2[\\@ebAZ)QEFlt-p\"G(.Jmnc+?BjxG1XQn\\bYxvj6d$sJQ;oIZj1HYl;xvl?.b3mVHGfV\\NR6NjS@&7&QOw7@yn?-]sU-t7JO4Q$Td{fkmd0Z\\E\"o;mB;Bv\\E(.P2A2t#?Vw$:<[?bZz#0f>>Y.oty.iSD;:M[ccM6`kyI8z.gIq,vAv[Cx`Y!-\\oEDeV`dXk:uj8lFTX@qGJzW#;D(7x)UX?m2FM6][4.*%tJR@+O5T0.5_e`81./?4%Ywtcp6NjUIK\"\\512I[qOrw\'N9oOyAk%gb;:PiF]*M-3XJJp&Yxvl=&B\\0qtx(K)&#tU*hX`]4(eRHTQv,fK%l$]6/*!bYwqU5A.[j++4d*:\'OA7.yMMyI8x%>LG]\'ASczfo!G*8x&CcRPw44D>J=0s\'Wh0H`2n`uSz8@v^Sd%{n<ueyX-ka(:-mjS=qPv.pw/r$L<\'I!_G%ydfYh($tQsvx!+SGK\'vN]m7\\UqbuPiIliQ8]TmQ-%l%cN=&AVsf,=1y@flmb\'1azk.9r_d[{%8/zMMv:Rsqd%{n:j8i:wy\"+Q@-X]MIcBY#6,r,u:Y8E7$Fy[<Uz2x9JL%dYoIZm>\'AWupW@v`\\/jWRv)WexSrjCK1LosuwvpS-zRf3^hu:X309h1O#WrcxX0yG0S:bf\\zyucn(jmiKs1/4YLP/4W@wcheFid=Ak&hiZft?qIRD=Cxa[*SJ[k3S.&n+zVz1t)]\'ATe(.Kq$QQ)n#PS5GJzW$Be[vi2R-$ggUS$NFPGO<yxrV7KWX6A(<8E7{89W32>(Eg]#)BVmKfK#cUajs+kfBRZO[aZ$95?yqPu)\\#/`%)@G*7rh6h7oU;`]611A71-/CGwQjIj`)=>\\=X-j^tW4:euD-O1A6*h[m<z#0e9)ZrV7KUNf=<Pd-GcFlv33C=F-GcDcM8lDK-9wy$4y7;`Z\'I{^Cn1;r[Qd*:)Xg&wW/v;W.u34IXabL3WE1_uV0%bN?/hL{ToWF7\">UsmKjZdmw9KQ9aggO7_`G!fjfFcGtAzoD>I9z0ne5mR3A2og<0v6=pIVX=_QU<fuB%)@I2WJL{Sh;\'M4WB\"yn>\'D`A^=P`rGEdO>(HvE1_sL]pD?OR3?)IvC&.R>xm?.c4n]c_5\'[%81)t@ym<vl@3y=V\"<KJnt\"?Wz0nf<1zF*8w%AX#:?l.4YMUIKzQc\'-Hi_&2g>9C(9)[woJ_%1e5mT=m;rZJCPMornXKP3IXdp.(wTv#:?l.4\\Z2&cL0I_+N.8k@738`cRP{G+<0t+i\\oB7,r+mt&M=)N4V<cg\\xqOrw(PEFm\"OO&bI($tOjN\'kr&UcvM[baCf`1hHi_&5srf/Kmm`w\\G0T<l6_d]\'C[-_)?G,AEuKQ:exTttmJb:308g,;\'L/CH\"fjc7$FxW)[yxpNpn^hu=b`?TnR2<tahiYcg`1e:-k_\"yl6_d[\",UNhGeQC96@#(=>^H+:&J)\'\'-N&inm\\dfV]Re+>7;`Y#7-xH:(RPu.q\"DsC1f;-j[j-5`m-+/JlfAJ6h6kESR(fUU23FJ%m)tA#%.VMa*@F&#w_Xxz$5z9C+E\\*REB\\.fGjhM(vMWQpjCL9r`ggVW7GCXsctG@I2ZW)[uez]Cn1?*M1EL1I`.Zdls%PJb7&QOx:Oa$%*D\\)L.;{,YfvG<3*s8S\"Co4HTNjR<oJ\\rS\'^3x69Z@k\'r=k1HXfyZ3)o(eUZF-Kt5?zubjq\"Ey]DyaXsdy[;O`w`WrcvRpc%%(7!:D)<68S%RXE0[`VlCGwPb%(5rnS3?%91*xRkLs-s10=#4x3,zUvwwr]W#<H9%FuH@F\'\',HgW\\NO\'kqx0u2+#gi]xi+0Mv7D3oax`XxxtdvN[ceTR$R[RjF[xrU5C5y4-%jr)bAX{/fANGWeyX+dDbGxUx)QHSK]t[I:\'N:scsB*Gg[pLb3jKs/%f`3pjFXk<$:;V(ZwmDCdU[MO,$l%dTYE/R8]TkDOB;Bw_Tg1T;es9Y>eh_)CWqZP_rGFjiVPna{l2HXdr8U-w@m5S,vAtS#I-BG$o8_\\63;mA6)dK+,>4)lptvwxwoLgIq-zP^hvAw^Q[Y0zH4c&&,Jt6GCZ#3w1#Ui;&Em{J;&I&vSv&GyY0xAm.5]\\<Qe0VHD[%<Ap=t]Wy)QDBZ&Em#Sd$w\\E&(6rkERR&Z$7,r+mry3$Ug0Mv7F?G*5jFXl>-]wh)%xb_;D&*?CrB,N-1Kka*@F#o;j6am)uB&0[fo&^5&XpU7Nd6w\'I%r?zu^Y\'M6`jwAp?&8*b@R`l+\"da;=_NG[vh+3\\_I3YRmVE7#Ciq&Xr]Z0u1(lx=^I1S9^TkGXi0I`2lYW,i[j-7h7oV>n=yyueyW(Xi2R-#dYqW?n8cr>pHSK[l7cuLUHK\"\\9B#{u]Q^gnv1$[*SNkY[BsIO2EJ*)1XRpd+;.nlYU$FzbYvoNqw,a5w*]{{{\"$-WT%RS/-0JhTMb/XT#Fy[;QiEVez`OKiVRx1{I8vulDFs>qK^{vbgb<<Y2*uC\'5tsi8q_d_3v*_-VQt\"9=ceUYD(7v\"6*khM(s>qJX^Sg3_j!Vsh3[Y0w;Sv&GxQiBJ3WF7z63;nFN7csC-SC5x1x<Y3-)%tM`#!vbf^)FfZl:pU5GFha2jKt36V5C2kQ6Qy9H?Co7V39blyF+@Cl$^=NTA(=?aVg,:\"4%WnNt+fQ?)Gmv58X;W/xCx`Yz)N3Ov2-\'xZ6=j.<\'Gr5IQ={$2kTB+K\"]9Ayl5YIAI.DM=(L.<&DeXj6an-,3[X,fK$d\\$3pkLs.xF/P1<ws]W\"6-xH9&J+1R4EC`A_Bhj`\'5sqbuOf:(TYF/TD4tuvr][4-#cU^];IBL;\"2rw(QGN7cvN]n9f$p8^Y&H\"cZxwoJ`,O0>)L-7kA@Z-gM++3]edK,4^edJ$jyH7rh8raq:clw9M\\i&o.-5c!izRe0S<j0FSPy;RmWKO.3U<fvD.R<m@1oiCOFRMjUIM*\'{i#`I-=0pstq^bT_aNB>QavV*eK%n+{]@aQR*q,xH<2#Te)2\\aUd#o:h,4`p<oIXdo+u?qIRFGmy?c]0iO-0GZoHSOqpd)3d+<4-\"`H((1YW+fN5WAv]NN\"Sd$uU*dGr3=wl>(J%m)q4D=E&*<3-#d[z\")Hp+r13LhN+($uT%OH\\vf\"bXoP#QXICUf((2`vW0#Z+[rT*mqssj>/l`{qISJWY@l-2Q+u>l4S.%hi\\pHQA2pkMx@m3J`,O2DCeYoIZk6_cYqU7M_{rQu)[uduHBQT4C:47W7HFeUV6F@LCJ.?60/7g.BH&x]F*7rj=/mc/TC2kQ4K_#(==Y1\"R_k\"X$?Q_n2B::Su#>P\\_NGXg\'!i\"[0t,nsw\'J*,=4*q,wF1^o:j3R01EI%o4IXbgc@NKj^yk3Ow7B*GgYg#hp#L?5+q,vC\"wdks([z#/_yl6][64@*L*\'$yen\"MFTXC%\'6uz,^\"{yoHRHQC95;h\'zaWq[TqbwX1&eXg%sHGkjY^QYNZ_QWF8$FuKO/6_d_1kVL[guAxeo)knkS=qNl^rIRB5#G&#v\\J=0qx0s&T\\TnVC.UJQ;pPv2)r6KZg{Z1\"OQ,#aPMnjLv<]I7mO\"QYN[dg]ysYC\"tS%S[Qd-HfO:oMnkQ1<woNomXPiG_4x55FFifGlpqkIfM/;z*N4T4@(BUi8oT7NgDWlA<H7tp\\W\'OB=I:(PEI#hmpnZX/w:Sw)Wbhi[k2KfGkmg>=TrkFWcq8V2/7ctG@J7oWF8\">Vx\'Fp/.9oS/-2Q,ySlO&fZnDB_?X(O@3u*`1jO,)(*:*]$1gBL:y(Gp,wIAI0KorsnP)lu/xArFBVmKgM,/GYm@3w0yF*8y-d>DwW-r(^/gDZy\"*L+*0P+yUw%AY%Cf]%6\"Bjt38\\NR6R!Co3FJ%o2@.^zqMfBRZO[aYz%:7D4qlMt/\"Wwy\".`&3jIke=<Tv$=KDSYH;0v46R\"H-ABfeK(zb\\(Gp-\"[5.)z^G*4d,AG$sKWW32>(Go(g]\"$-TJRD;<[<Tw\'L/CDku46T*lmb\'/WQm\\b\\,[k5XE1_tOkR;i-;\"2rw(N8j8pV?qHN2KgJyP]eia1b*@G(+>:E2b(4kN{OS6Pt#AaOCDks(^/e<7>n@-Ydkr\"Bir+ox6:]PYQh?=TpasE;8D0`yh{[50/;z\'DaGwQg<0v3/2KhP6ZKF]+P<uf%rB.WV/\"TkDN?.a.UKVQu&K1Kkb-O,+2YRlR6Onf6qe+;-fHo\"MGYnDB`Dn*vF3iDPKgJwG7w\'H!_I0Mw=_PS18bn,#eb?NMu47W:V-nrv!2t%L7i:wvpQ#QYKN(r8W5<nA4!Bl\'lw;Tz75GFifIt:X7A\'9,kc2d.O,\'y_MEROu.s-t37W:U)^/b-Q6S+q,s5A.X]J</mg><RlN!OU?tZE)6rh6lJgQ@*N0>.fBR[Trh8rcwU%L7j>0olVGAONw;V(YnEK+.DPI]{yt\\P[Z7>oC:8IL\'o,$gja*FbCbL3XG:+eGp(ha0a(7x,a0c-Jt39cp16]X%GwQiDT]X&H!aTal%`AaM<&@UmMr$J3YO_sMa(9+dFhc<;SrlLoqpbzdh`-R@)Ho$VlCFtD0_sOjQ5Nnf8z2zCsGD^3x56OkXV+fO7aip\"Ex\\Bm-.>1t(Wg(%zl1FN9oNrz:E0[aWr`hkhIoz?`NFSPw56PplQ05WB!sU-u8Og?@d^0iM\'n&cL2P$Wsf\'&\'1^n6XByk/>/iP3IZk3T4C91*zW&M9oQ)jhQ;l?-^zsU.#]8;]KAAcWh.@;G6ri;%@UpZRjHa80&f\\z{\"(BTd\"j&m$[,_(<8F:-ortrd\"l+(\'\'0Z[=Z67R!Bit6C2iJnsy0t)_/b-N+%rB-R@*K#aK6d#qC7&SXB\"wclv6?vbhfM/;z)K&p4HSIVW48[I=4+u?m6[Qax^ONw;V(Zvj6`l\'ku0%dU^Z.jY`Z&B^;F2c\'0ZZ;Ttwy#0f@EzaZ{*N6ZJCRT5EAR\\]@bUcuIGh]xj2Nu/{OS9[H4e.Lv<]I6jBFvMWQqlN#UnP\'eTT/\'o,#cXmEL1Jb9.s/%bN@4\"G)0T>u_\\3&\\*RFJ#bUbn-)&\"p?\'@OP)q/,/FV`dZt`f_1jR:fyUy0omZY406ZNWOb*?@d_3v+b;:PiEXmEJ(\"k(uJIq(dL.=-b5v&GuG=;MXU\'Xk=\'Ejmg@F$rFATe(,DVdz^H-BH\'&&+CUf)/N%cOC?R`q?yu__?Z/prqbwW.t22A3u\'RQ$R[W\'PDEm#R_k$^=Rd,@Biq%UcuJL\"[0t+gSIRFFkoqnVB(;42?\'@PWF8&OB;C\"v\\LFWg+5d)1\\bZ#5&Vg.CI+5e.HdEf\\xqPu-nof6nU>qJX`[,`,O2EGuE1^qD9/\"Vq_gljR;l=$7,nt%I)*8z2v.t1+$m*wNXRstnO!LETW?n8bl$[-c9,liM&kt0&hgN3LgKzRe.Kpy;LS>ucn(knlWN^tU+i^\"\"!!!\"$/^rMd8%L5]_F$rGFjgM)z^I.H`3u$BbRP\"J8sh6g4`q?!#)EbGwO`w\\G0R8W9PlTA&5u#=NQ2?,X_Wsh2T9]NN{NMu5=qMgJt8Ne7x*Xcm\"OS4D<BsIP8bkw>caA\\3#NH\\yvexTtvtg+5g6lKmiM$_Cinqqg3_m0;xwnIYh))/Q4HP>$5z:F4lR4GN3Q\'cK.<\'J%p7U0+&uM^qFDaCdYmDFo*u?n<tajq%SYLM!TjDL7i6g1R4ECaEp04U6IQ?\'@MH_/`&/XX44GJ&q9`^=MP..:z)N4T4@\'>DzhzRh;)TV5A+O3LhM*%rC3mZZ8E3lS8ZCygt>k.8nP\"PVA\"zqNma#zn>&>I9z.gGh_\':1%bK/CI*,ACl#Xz+UU0(r7Rz=Tri=-eD].d:.r(]+TNjQ8[MN$\\1t\'U_`H&{k,/CJ,7oWE4kO)q3@*K#`I,:#:?j\'tD2hDT^^Bgjc6w(PEGt=j*\'&\'1^p?$2lVJO2GRKa,KzSh;)SNng?>X+`0c1^l0?1ohADsD5u\"6-yNS9_[0omYU#Bgi]u]OUA\'6x.k`{rMe;2*vE1_sL^wes8T\'Zyxtaipx2&aCe[xrW<b]3!E#o<pOu*b;9LWU*dIzVx)P?-\\oA0hKu8OiImppc#uX6?xm=$6\'YrZKJox7<er5FFjk\\k-6d!ixI?>W%I&vV(Zvj5^bWk<%>MKnrrmLpy529h/EQMk\\i$hmne4i@>Usj@9>j(xTy0ptw$;BvY9LWU)b>K@>W%Fs?u]OT<i(#p=t^Y&I#is22DCcQLfHkmd0ZZ:LS?\"&8(\\&;9M[dg\\ubkv8IIr.#^>W#<I>8=h$hkf@I3]da@Ti<*XclzG.JnqrmNw;Sw\'N:r^_DsC/\\hxLLwAuT#G\'%$#!xj/BCdYpOt)\\\"+O4S+q,wC\'/XSy3&`?TkGZrV6HJyOXOe5nVE5soZRjF\\&:8GAOLorrh8tmJc>Dx`Tf,;*Zm=%<@n5QzAjzOVF:.q\"Ey`QU<gwLN&gc?K@<LKr,t6GD^5\'^2rtsh5d%ygxOYTz9>n9i1Lnof4d,CMA9<`VmH\\zyubhi[i&sC0]n:j4[V#=P\\bYws]Y*ZoIYg{]@cZxvi/CI(%yfq-#aNA98L\\k0A:=b_;C#yl4R)ls#FxY1$\\0qtx%?PWG?DxZ9KM)vIGeQD>LG^)JyQazi$feK&r=pHRGJ$ip#K7nP$Xx{)Ht=h\"`L9pYLP/7bsB*GjhN/8lDH\"da=H4g5kESV:V.u5?zvf\"d_4{?aPKgL(xUz613J_(=@eeO9l?1rv%En*s9U+h[k4WAwbbL6`l%dV_^>TqatKR?$0e9)Yl?.c3mWKQ7[NR4IVX9PjKr,p%Vi7kCH#j!Up\\Z54D;=]E\"o<s\\OZV\'U\\UslFSS*mrx,dAS`m,)(*:*]$1iHhZj/@74?#*Ir11A9:U$J1NzH2]ddJ)$tPn`sJRC8,ox7>n=!(EeUZF.N%dU]W!3{DwW/xAqB0c/TD7&PKeAR[V#?X&J(&$\"wep/+,:\"4\"I3ZV%K3XG=9E1c*;0v46S&WlDGuE5pd)4g7rf,?=Qe0S<j2Lj\\k.8nNv5:bhfL(y\\Ais1-,6h6kEST1/;uk>.b4pd,AEtHFfUW;W/{NO(kqy3*s6JTJVW34Lc5sq`m,\'y`Tap9]Q_j\"Y)SNl^sOiM$`G\"glnhCPLjX\\H2\\_K;%BaI*/Mw?i\"[2#R]aPNu1(n%]1s\"=Qb%\"wchc=An5Pw2*vD.S=sYC\"sOl\\fmw43D=G.Jnsy/l_yi&o2?+RFFjmg@Cn1<wrXAv_Ti;\'I%o3EEjld6uy(HwKL!UnR17]Z/on`vV.u8IM+))1[]E\"o;oIXdn(ieBWq]Z2&aDjr&T\\X\'O@3z=V\";H<0x<Y54FEheC\\,[pGN6^_EvN_sPnc(3g:%Fq6NjR9cm#Xvtf%vU&SW>j*\'$yh$eb<BrGEeUX>hyOYU%L8mH\\wi.@89S{>V{4)g\\t\\OXMZ_Tf,=4*p\'cJ*+7tmLnm[aZ!+UPqrjA@]:D*AK:xz&=F,BK4_iv?l1B>LJkd7#AaM>.e@K;%AZ-c8+hVX9Of:*^*K\"\\8;`Xy\'DdTT/)wO`xceUX?k,.?76E?J:$=KEXoNqtx&CaFvMWQph=2#S^edJ#d\\&;=\\Ahr,u:W1*xO[_ONx@j!Vvxz&:8JM)wN]k,+5e-DQOw9IGh\\rR#NEPGRGP=z\")EbFs>qK[m8h.AChlhKxF/Q4Ka/XY9JL$e[yxrV8Nb,Js0*{`NDH$n0;vl?1okN#Z*UY@n7[LMzLHcAWrcvRn\\aWmGWcm$Y$=H8x(K-7kAA^>W#=LKs0(r:_Xx$833HQD@R`n0;uk;x{\'ATe)2[^K:!1ppc%{pB7(_2pmT;g\"bUais-v=caA]:D*=;NZ^K>3#PT7NiLzOU@!xm?,Ydo(jiSE?LCI+5h9y)O:oLiVQrtp[Sqd%!qGJ\"`H*0R6R$NFSQz@fi`*EbDe[xqT-yNT>rS%Vg.CI((-HgW\\NN\"R`m.2Nu/zMIiZg\"`J3ZSqh9wz&?OP+zW$A_BggSHP<ueyY2)mx>`QS28bl\"RasHEcHyW(TZH<2$Y\"3x7<h$jv=`Uf+7p]_L<(K)\'%$#$*DZ$7*i^\"\"\"#\'<9KO0:pU6IQ@-VU-s.{TlJhWV2.2Nt*fP>\",UOl[`Td{ejiQ8afa6&RV=fs7L\\pEATi:z,Ydq15W>l1EL/DH#l&jqz;NWNb*><Sqe,>:F4lR3EBZ&En$Y!/e>@c\\)IzVy,_)BVi:wwtctD2f:)Yk6an/3Q(fZnA7/%bOCCbM9oT2:i/CH$o5Q!F\'(3e/R7U.\"Y(QFL,3ZRnZX.s)cDeV_]89W34GL.;#6)fUS&WoNs(Zvh/DK1Mt.t4<oEHvF5o]eeRGO9g-<+]!#\'<:MYY9LSC6{<MQ6U1-0FSQ{E{hu>j)z_K9uqZP^m/:r\\W%H\"glmb(7x,a2kQ3D@R_k$`Er;fxNZ]G-BJ/Ib931:nJb8+gTMc6uw\"1ne4h<.lc1_rHJyP_p<qPu+eK%n*ySmR2?)Hs7OiL!Ti?8:X5;fz[79Z@m3IYh)(-F[\"-ZchfHnzCtLY_R_k#Z)SQy9IDYul?/jTD9.w=b]/hJu;Z>_K;$>MLt0)tB%-R>xnB:=_PQ+wKHgW]Q[X.s)a<ArFARZTsp]^DsB,O2GSOojIi_\"ypJ]u^Up[Ux)RJ[oC>K@?\\:D,KxF1YX2+xNWOc.R8]Sf2ZV$FwQkP+!^Co4IUU,r-xF1[aVlBBdXl=\'Eg`2kS>sW;Y6<h\'wSw\'N=$7-v<\\E\"p@\'>D{k*&ycbFr7Pruy(J#d^0iM$`Do1;pR(fXdr9[G1ZW-ot{5.#_Dn-)%vX6=m:qU5FBWr^bVdwQjLu7E9/w?j$dXlA7/&jr(^0jP1=%<?i{Vuq]\\;JImpnZX0zI9\"85C2jLxG3aw]LAAbOHW`aK0KiY_Xwxui4[Uvz-_$-Q9co,#fcAWvr\\W\"8:V,kfCTbq:cm\"NLs+i`(==X+a8-t20;tg*/MzMKpz:JJq\'_70*yY.pu\'N>+TQu\'SR)kk[emx:N^o?&8,mpmT?wetB%,N--<*V[I;+b6#EvQmXPe7tsf*3_m/8kA;D*;1zH2ZW)^+N3Mlc-Jr-xF/TA*GjfHlrz8;a\\.d;417bn*wLQ5NkYZ>aTcvOb)9\'ST.$e](ATf+;*Xg&vT\"?X)Xi-:z*SK]sU.\"Y%Elw;Su{2u+dC[-_\':0zK@=Rg7re)0WKQ;mA5%T`jt4<m=$6\'XoMprqarC3oc&\'0Y[>_MA=MQ07`hov+cAS`l(o,#dZxrZJDUakyE)5o]aTam*xPb%$$)?Ezfp(dO?*P=!&:6?vbild6trd$vX44JYgzX(SR%YvqW?pD;=\\@dbC`BcU__Dn.-9r`ju7GCZ#4z;O`w\\F*:\'O?0jTE=An3FL/A>P\\`PNx>aXr]Z.nlWN_wbaFtE3hCNCCfa90%bN<\"-]tV34K`+Jv?o>z{#+K$cWf\'\"o:i1KhSHO4S.%fb?LCL5`n/3P#Saq<nD@Tg4c#rGGkptv{,[m9l@4&Xs_d[{%4v(UZKEYs]X%Fq6L`)?F%ydifFha1f=7<dks%PMnkQ5OojHfQA2og:&K0H^\';7D1a%*@I3ZW)]$1iHjb2iGa949`aH&x^MDM;xz%92,&uKP8^Y)UX<aZ\"3u)[xqPx9IGg[n?-\\oD?NP)n%]2v.q#H*2]gq*lnf:)ZrU23GQC;?izP^j#`G{c\\+SIRD=F+=7;_VpXF7!8:Y9M\\j&o/3Ov2*vIAL=,_(?E#sKXZBsKVRv)Xh,8tk@711A70*yV{60,-=0omWM\\k-4[Uv\"4$PNt.v<^MEPHXdq3?(BY{-[n@-ZgzW%H$m.1I_,Q=vh+1T<h&tF=<Uz5+t9V,mne1\\egYi,6g0R2=zz#+O6W<a]3y>[:JJp&[\'CaGwRlP,$ir(bC`Be])Hr4B2m[`Uf,<,b6z8>k0B@X%B`Ckw<[?bZy{&8.xD%\'0\\hvC&-M%dVco17cq:_[.iUKVRx1zG-EVdyZ9D2d.N\'m$Y\"3x7>oD=D#tS!AgliQ8]TjEQKb3n_m2CAZ,_)D\\*SLc4nZW*_.\\n=\")FjiSFD^85@%1gBNCCgc@Q[W*]&8+gRFGr3?&;7D3lVF<7@xi*)0Q3D@Sd$vZ?gp&Z\"-]sT*je>?bYtg)-DSYI?Ae`81*z\\>Y.pty,^#)AQVA$&4n]flojKt23HUU.yLHdHuC*?Cp:fyW&L6e$uT%OGV_\\4)ieAOP%[*UV4:euE3jIi[j0A<I>;IDVg,9{0nhBL:y%95;h\'yaWpV>j+*2YSqh:$>P\\aVh4^efQB7,nt%H\'!k){aRXIAI/Ha945Le==X,gO7^\\513LjVPm^j\'p3A3v*\\yt]Up]`PLk^sRz>[67OjQ7X@qFDbHz^Cr?yrR#MEM:th0Ib<@j!Wy+Xclx@k(r8V33HSK^xl6^aNDH!bVg+7re\'\'-Jp%Vi7j=-b3n^i!Vx#70(s;dm{I7rd\"k(tC-R>xnB<C!o?%7([yxqQ\"H0Q-)&{l.8nLjZep+s5D90%aI*.Hb?K@=OYV*a91,\'xX0{LG](C\\-b3lS=oDB]4)ib4qlKnnc)8\"9>j(xW(YnEK**3_l.1Nu0&eWcp03P!J9wxz&<=^J5e*8w\"3v-j_yn>\'@R_it5>wh*-AEr=m>&>H3_l*$m--;\"3x8B%.UL[gvG:*^)D_9;X44GM0A=LIhYdo*q-zSjDQNpro[W(TYG5o[Y0w=^I3[Z53?(BXx\"-\\pFFkqw,d?J;\'L0EN;wtajv8HHnzBp8^Y\'I&vStw!/gGeQFGq/.5`m*{]>Z1zI5g4d*:\'M6cvQjMyG3ayfp(g\\vfz[8@wep/-2Q,zX&H$n/5][53=yvi0FTW>gu=gu>m6YF3f4f2[^G+8x(M2Mprqf,@?Z3&aCdVbn+!]?[7<ep+s6IN/=(K)\'\'+BM?3\"K:!0mb)9\'RNqu{3zBo7YAtS\"Bir)eN5ZMQ4IVV5=qQy>\\<RjJjb/XU(ZwpNry0u/w?iyMO+zZ1zH4d)2ayfq0.7h1S6Mc3jIgTLa*DZ\"0jQ4MjTGFha3mZ[>\\=Uy.jXZ<[;Ob%&0Z_PR18csA$*CYy$5#H)0T@zu]UmP\'g\\zvg&uOf=65HN4Q#RYO]i#^@`H*3]egXabM:tg+4d(0VIIs5C5{=RiBFxV%J,:#97JP7]UtoS14S-zTnWG<8@zpJXa`AaK4ZSnZW*a90%aGyZ7<eo*p+s7L\\m6]Z.mf>:JJq*mrx/oph;)V_\\4)ha2hDWk<&CbL6cwT{:F5o_k&jr\'XpR)jhO2HVZE,CPNs(Ztcq7R{@ecDf[t`bN@6.{SjAAcVbo/1FRKb3lR7U/#_?Z0u/xBtPoe/P-+-BFwTy/oph</opg9y)QFHwJE[%::PjKt5>u`aK1NzG/O(m#Tg0O&dTV8OiJr+p\']/gFbEilf@F$sL]pEB[-`,M*$m.1JeFifFh_\'<:O`xbbH#jzLKow/s(^0iN+\'y^J8rbuOd3f7usd#m.4WA!u[I<0v32={\'?MGZucp18g)+:(RNqroZUz2\"J:z+VZE)6rh:z.c6z63<pOs%L7h6f0Q..:x!+P<t`cVbm(lt+hZg\"aOGUYD&.Q5Px8B(<:KO0;wqU4?\"\'>DzhwG7x(N7e\"ixG7trbsE7#EsD2f9#>Sh=1u-pz<Qe1YTx-gL$fb>J=0s&RS.\'sA#&6y2\"K>4)h_)D\\-_%-TGGls#Fz_MCI&ya[&AWwwuh.BDl\"Sc\"n5S*mt\'U`ghURx52=wl?0jR<m@1pkMxArHL(wStvvqZNTB,P8__Er=oEDeV__Cjr+kjSC2jM\"TmMt.yG1ZZ7@xk4T28bn)p,xKJp$QR/+)*7utj=+XbheHp*p(fUV4;j1JfK$fcBXy\'B[+Zl:pR(fXbjqz:ICRU;^PT:a_=OWM[fo&]/iQ:h)(,BJ3XLTD5w+_*Hp(fUW9PjN\'n%^84>zvg%sF>DwZ;SrlLot#@[4)lr\"Bgi[k0CCe[yxoIYh&vPiHeL+/GZs^Y)SR$RXG9)[xrX>gu?pC946T*jd;7>oB7-s.{TkG[wnDB_AaM=)PA1m`vY:Rn^k)xRmUA#(<:MWQqkIfO6YG9&K0Ic?K>4)kk]m6\\SkJhUQw.orrh9vuj:xyz\"*JwI>=V\":@qGJyRiABe^.\\oB6%SYKKv<^NKj]qJYer4B3qnYRnYSsp[V%FxTttnQ\'bFs?tW8LY\\F)5kIdDcK0EPGSLb1e3f4d)7uwwr[Qc&*?@d^1m^m2FM6][79X8IIq*lrx-iTIRA0f@DvSuy,^#)ANH^+M,-?612EGt@yk3Q\'bGuD/Y[Al*zZ53>$2n^n7\\Rd)6p_j!UpZRjG`3sw%CcODGuF8%J/GXg(\'*:+c?H2YTw\'J*.EVdxV#AcTZKGa:9MZbaEm%`@Y(QHRIW]OR4GJ\"_FxZ8D2e6p_iwBw`Y$98M^sOlZ^J:$>MN$\\0qw*Yl:q[P^j&js-u8M\\i&o2@-[m9i1P)o\'aDgb<=]G)1[^K<*Xet@xg\"`MA<J@Bjv<]I3_k\'p/-7h3[W)Zt`dXmC?Rbw[Bo9adXj4[Ux(O=%92-,3[X.px2&bI%q?{yrT-v@pA.]sS&Udy[<Uz3%WnNv32?+SJVW6A*Gh_*E`>LIgTLb.SA+N.6dzefW`]:AuY;V&PKd?G*8z/jXX6<l7cwRo`tLZa]5*nv0zH5kG^)Hq.%ju5=rS)eN8h2S3>%7)a;<Z8F9,iX_WuoR,zSjCK3WF6u{0ojIgTMgCWlB>QawZ>_L@;D\'1_rIO5U6GGkniGcDdSPy=Y1#Sd&#v^Tf/IhX^Ti=.gIs6IM-2T8V/#\\2yAixE-HgXadRQ{F%{n:j7g.DPJb5v(PC@UnR.)#k%gc@PVB(:-pw.mjN\'kv6>uadVcp4GK(xZ7<j,2T8V33GL0CCdWeyY1$[,\\sV5?\"\'9/xBuSy52:mA7/&imjQ7YBw`[)P>(Gq0/<$834JZl7dxY54GJ\"`K4_iu8Nc/VKTGGlqv\'OA6,p$RYMR9af`3rtpZO]hu>j(xW*^,SEAUkDL5^aRT27__BghZh%m*yW$BdZt`dYqT26U25R\'^2v,gO8aipw2%^6,u=dhc90!PXLTE;9HD\\+SMc5uw#4z>Y.ot{4)h^$-VOjP2A6(`82/3T4@,UMd8%K4ZSmU?t[KCL9q]Z1!K?:D)9*a5x1\"PT9\\I:&Hz\\=Uy0omYU$FwQkO\'iiWV/#[,b3oc&);2%^5,s39blyCxb_;C$\"xj-7i;#86B.[guAw`\\.iR=t]Wx$:=^NH_/^u[H6p^efQA3w.opkLr&Vi5_gmrw\'K-;%>NO\'ij]pC8/!Sg4bycaA[.gL\'q6Pt\"<LJp$NEPCA[0r!=SmR2={&:44IW\\J?:F3g=2\"OO%^9;Z;Uz629g&y_NKle:+b<@ht5B0d6ttj>1t)_0e9(V`e^*K#`K4\\\\<RjFZueyY2(kprqe(/O+#ea>J>63:k:ulB=I>8=i%l&dU[OYStuulBB`FyZ7?sS\'[#1lYY8F<9F7\"@[5/.5an/3P\"LBFvKQ9adYpNon_o:g%sF>DwX46OoiF]*L)$sGBWr^^Bhow1$Y\"3w2)myBo9cp16[Qaxa\\.d=>^H-CL:umFQFJ\'y^I3^gnv1$Y%?PXN^qFBY{,Zh#fdJ$jv:RrmS8U.zP[\\?bUe#l-/DI))0S=oDB[-b6!=P^n4Ou-nnb\'1[b_98M\\l3LiVPog8w#5%RV=gvG:+`2lXSuz.d;56Prv#9:W-r)eM4S00>*SMgFa@UpYLP3GO<xtaipy:IBQS01DFq5HN3Ns$H),@Ck\"Ti;$?Sh:{/jTGC\\.d:/w>eh\\wg\"d]+SJVU.!Sg3]dbDeXg)(-Jp!DvStw\"3v,fK$hnruy(K(y^K9x#5&Ubo3EDcM9mI^&7%NCBaJ/GYnFN7csB)?F&%\'4n[]Ezfmu-py:G<67PplQ04U6GHq/)!d_5$OI_+L)y\\@bXoOx=Y2)p+u?o=wmA70+&tJN/9mH\\yqS(aAZ(N9lA<H8!5-xI<3(igL\'o04T4A/`$%/Y[CtOe8#@Z.la):.q\"ExZ7>pHQA2qo^iu<^OP%_=KF\\\'@R_jyH9!5)jfD\\,Yckqy4-$ggRC947U1/6bsD5v$?Ww\"3u\'SV9U(\\$4w.oqlNzLFWg((.Kt22C?PYQh@Cm)r7Qv+c?K@?X\'L3S01FM7dy^H,>63>!&90$[-b3lVJM\'p4EC]3!G,?<LM$aH$o4MkYZ<W+c>I7rf-BFwU!:E.Q8\\OXPe4iDOEJ*,>5/+*.HcDbI\'\"k)xUx,_+L%iow.noe0S:dq3?\'@QZUy.gK#^@_EwSu\"5+o#PP%\\/hM\'q6Oog;+^&8+gUS%RWAzqJYfuE0[b]/iO.4[SlO&bK1Nw8G@H/MxBw\\E$ygyRg7sj@;D+BMBA`EuJL#^>Vy*VX>fp(ePC;>c_:;[@jzNT>qMfCUg/H_.]rNgGfSLa+JwD\'1`yi$e`7*fRHQ@-[j-7i8q\\Z3*s5GFhb7(Ys^Z0u/xBvW/\"WvulCEn(jk_yi*),@Bhmm^pA,TISHM-5_hp\"H,<.iVRw/qy67OiM%eZs]UtmLle9&K0JeFh`0b+BOJeEdQGP>&<BrD9-s+ox9E4lT<l7csD3mYV%M;x!*L*&x`VlFST-{Urd%w^PU<gxO]hxH<2%Z\'FmzG-DQP!H2[Z9E4mVGAOKhTK[l5W?pE@OQ,$fgRFIwJGa?NP*t?sQv,fL\'r>qNjTD91&f\\zxqR$QU<er3<rX@sQtz2y?`QR,xNT@%1e5nVE6w(QGQEEhfJyRg6lLq{>Y-jZchdAQVB(8(YqT0-.>4\'_71-/B@[0r$H)/N#Wwy$7*dJ$is,t4<nEI!^Fzb\\*P?*L(xY2*r5D:58\\LIgTL`(;404S0.5^bWi5_jxF/P1<z#0f=8@wfvICQT3>!&;8G?E\"o<sYF0WLY]LDOB?Se.G`5#I/G]\'AR\\\\;O]j&lzK?<KIlma!rOkWOg?AgkfDZz\'B[+W^Wwy$6\'ZwoJ`,N.5`jyI9$BbPHYg%rB.XY;Tw)U[KG^-ZfwLM$^<LMzKDPJ`/^tU-s1.1I_-TKYbcPC@Vrd%w\\G,BI.DN>*SLc4n]c^1ne5jG^-WX7F>Am,+0P+ySnVE7!;I>=TsoVA{tY>dh_)BUe).Lt5<oGN6_aNDFq4GIvD.Q7[I=65GHq.%ggTNiN,(\"m0<\".a-N,))2]eh`*D\\-^ztY@m5U38`bOEJ\'y`Tbr@$,M+(\'+@ExZ:LQ9ahgQ?)GnzDx\\F&(2b%&.TF@NLpv*^)EbI#jxG1ZX2)q/-1Mt,moh@Ad^,VV0)vH?Bm)wMTD7&RQ&^4$RYMUE9-nsx*XfxRlO&dUYF0YX1\'hc<>`PR-\"^BffP=!\'?K>2\"NJfM/:wtcs@ypJZk5YIBOH[t]TlLr&Ubq:aaGy[8B&3iEYqV:Z=[>]Cq>wi,5c{izTnWF8$EuHCUf)0S;fwMVM[gvE0YZ<V%H\'!l/<\"0hHlmc,HhZj/@712EI$iu9Od2b$#zqMfCWpT15V9Ru\":@qEBXwxxs[P^l-/A?X\'K-<\'J(!hvB\"tW6C2hCOJb8)_1m]gu<a\\-_&6z5.\'q7U-xD(5n[Y0yF*9#@[1w6?vclw;Sv%Dikc1a!rKZg{Z3\'fXexSpbzfmw44GL-6e\'(4iCN?3zAit5>wh*.Hb?KACiq#H+9y(K*)0T>t\\MN\"Tj@<I??^BjxC\"qISFGn#R[W%FwSqh;\'I$l(r9X9LVRu#<JDSZMR:do+vG6v{/fCTdzaYvoMnkR6Qw1&aEn(n\"LAChmkVJQ<qS)jeBS`k$]74?\"(ARZSo_m.3U:[CvY:QjIkfCUe&yejiUM`%-O0;xwpPy>`PMpw,eEaDjoqo[X.r$M>0ojJlkWSy2%Z%@Th8qap8YC#xgyRjG^+RD=D#uY<Z8B(<6<i*+7p]`NEPC=I9\":@o>\"*Is5E@NMv7C.WT&RV<digO2I[oFK+,=2zBqA*Is4A+O6XAxfuAyl6^_G\"k%gfM-5^edGr7NhGgVX<^MEQKeCXscvOc-Ill^o>zxrV5C3roZV$Eq6Om_rGGn#S^aRU8Sz=Vy.fGic:0!OT:^Vq^cYs`gfN3P#OO\"NMw<\\@gozBn09j<#7.xF/S>sYBzk.:wsakyF+@BkzMMzJ>9@rMe=:KM\'o-%kyH8vy&?MHa:6?zubij^u\\J?<LP/3R+s5C5y7:ZAn7[OVE9,hVW36Qx8@zrR\"F&\"pD<>bZ!+RFDbGxTv$>P[Z69ZD\"qHM/=\'Df^(?J:$>P\\`S[SlO&dSPw6:`^:@pB2n`tRtz2w42=z$2nb\"rMc2d-Ks1,,4^fi^\"\"%2hCPKfKzUslGXj4WD/WQoaxa]3{Cq?{xoGP@-\\qIVU.xG4iCK4\\[:G<3-&p6Rz=X,iVU,nv.ou&L6bsD4pg6mR05U6GIu?qHP;nI\\vco+vC)=<RjHdFkon_p=s\\Rd(2]i\"Z,c;7A$+KzRe,BJ3XLR;i0EPEGuD/WRtz2x9G?Bn2B835Qx7>pFIxP_o:h+4_m-.=-c8\'Vbm\'jmf?Bl\'ks*gVV0)t?tV37YC$!uZD%%\'6x.jWV/!RarE<<U!:E/UHFfW_\\5+t;Z@iwC#{rPs\";E/TB/]o@-X]PU@wg$iu9Og@F\"j%geGp+u?n<uf#ht39co,$fdGr5E>G0S;fxP`vZ?egZm;ug((.M$]8;\\G,@AcZxrZKF_1m_tPod/O)t@v_Y&Df`2lVLVRw,dATf-@@_FxZ9F7#BfdDcPCAY\'K+.DQNr{:G7w\'L1Lk]pEAUj>1t)[{$/`%,L#^=Qaxb_<I;*^%4ty+XbhgN1CCf`2lWNa$#%,N.3S29g*1T=l7bq;fxPc*=8>m8bq6Rz@c[$4y9D-N)vKL#^=NVIK{VuumFRKa0a$#\"ztZH5mQ/2KgN/:sdxY2)q14Nr\">X&I\'\"o<rXAw_Wti7j=+ZnB821=#3rsp[V#>Rg5jESS-yMQ08g+5i<*Yi+2WHBQS3@*M.9oS3;pOv1$[-a1c.O.1H\\wk8h4]aSZPb#uZ@m2DDf^)EeTT/&kv9MZccM8h0Lq\"Cn1;r[Rh;+\\vewN]hxKJnrttoS/-4[W\'OB>MMxCzh![4,yRf1YV\'U]W\"6/\'p18dwSpf1T?xm<y{%6%NEK,8oV?tY=aXtg.A@[4*n{G,?=To]c[$6\'[#/c1`vZ>c`=G1\\b\\*P>\'?NMu6?xnB821?-\\qK_#\'7%NA86C1g@DtJM*%rB,O4Ml^sOjO/7ctGAPQ,zTp]bYtdwTy/prqc!k(uF;2(lt-p{Aiv;Y6;fvH>>Y1#R^fgW\\KEU^[4,wI>=TrjBDn,\"_G$sKVQt#=NT>rR%S[RkJkc2c.LzMN%aEr:^RbwZ<V&PJ_(?H.F\\%6%OGUX?n8bl\"R`o4JZl7ak{OT;cika(8&OC@X\"4%Uf+6lJhUOjR;j3U8T&S[Qc(0YX2)q03KfEbEn&aFt@zsV36U11?-]u^TlH_-X[E\'.O--7lH]%6\"@_H+7qbvStuumHZoHRIVV1-/A=MP/5YKJp$QQ*r3:i/DN=&@Se,?=Qc&(6v!1rw(PB<Cyeo%Xti3[Uz4\'_99Oe7x,^#*Hp\'`<G1[^K<+Yj3Q)n\"K=-fHo\"I5d(/S=oDAWvuj7i7nR,\"\\:G9%I\'$w`WulDI%p8\\NP+ySo^fi_$,M(vJL\"Z+[t]Vsi:{-]wes<fwIAJ5atIM)yY3-&p5K\\sT(cEijZft>l2Jb7$J/FV`cU_`H\'$xdlu/zLHa:6A)BR[Uv#84=t\\NS9[J?<P^m/:tg*0S8W7E;9G@J8sh2U?v`]87M_xgxQd.Lw>elr!=Qe/N&e[t`dXj7i6i<(L1GXi.?4&[(K\'vN`zo@,TMd6tusbsA\'8(Zt`bPIZnC@RbyaXtg+4d\'+AK6i;$>LHdGq.(vMXX5:``Cjt1,\'y^I4bzgs4?$0b*AL?5,u=dg^$-THM,0JfM-5`m,(\"l+(%yenzDydg[sYBw^R_k#\\5+s6E=BrD5y64D931:oOt,i]u\\LFXnHUX<\\F(-Jq%T_ggWZCxcdO@3v/r\'[z%5y8<gwKKu9PlXQmXOe5o\\`NHZoHUU/&kv6?zwi-:y\'DdRNprmP*r5GJySmQ,$iq%S]\\8=j*)-F\\%:5:dp16ZKIll[eknkR9^Wwxz%90\'lx?ddK+1P*uB#$)BS\\X+c=@ht8PjP1<z$1jM&hhSGJ#aOHXg&sHE`=J?=SmS7T*gYdn\'fZnEFo*s8S!@_H+8tmIb7\'Wk:umHWaeYoJ^\"$+K\"[1x;Sqh9z,\\tX>dh^$,O2FL1KiUOkUGD\\+VX:Sv\'M7cxX/x@n3LeBTd#qC3od-Ij`(==Z3-\'tF:/w>c_71-0EM9nMopf6nV@yl6_e^-Zg{Z2&_<I;.mgBNEM9pS.%kv:Stx\'HxRkLu47X=a[\'DdU]VtmKj[gzVy+[qPt$H%sFAOP(kqz77PqmU@yoC<Ap?%2mYV(XmB>MMyG1ZY6;er4D:7C/[gt:Y;Ty1x=[;Qg;+a3ob\"rMb-O1?-\\rOoh??[7:ZBrHIt:Y9MY[@k&ku48[I<1zE&(6uvwtcr=nA4y69X7D6{;H??^EwSuz1pqh=/niIi^ypHRFI{[50/<#2sz2!H.JljS>vf#hq&Z\".a)=;N\\gv@tS%PLld6uuq\\Y+_-VQt{4(dN9j;\"2sy/lb*?Cq=rU0+$l&geFieBVkA>SjDNA:?izUuse\'&)9\'RPx7B\'7#CkzMKov)[wmA5$POyCx_QYMWQpe1ZW)])Fhb5w-iUPm_p>yvg\'zfms#EvPe6qbyb^6+p$S\\X+`/_wchdC\\-a.WSz8=i)\"k&inplQ05XC&-O-0I_-UPn_sMa);402I^&5x1w8G?F$w\\F*:(UYB{pD;>aVkA:@o>\"\'=An5Pw3..7kBA_Er<i+.DPGSNng>:G:,fJ!Z.k_zoC948ZF-Ks.\"X\"722B;@n7[LLw@n7[NS;h(#qB/^tU,p%T_ffN7_bQPzF&$###%/]m5W?m5T0-1NyBrE=@j!Vvxy!(C]4&[\'C`A_Dq8ZBvX7E8&RR)kl^sPqpbw[>^J5f-CL7i:z,Zg#ea=F.Ks0(r7Qt!76IP;oKd;6>pGK*\'#w^PWIE_4\"Ezb\\+TPqsp]aRV<eq0.6d%vX6<l8e%wX44HP?*O7_`K3VB(9*b:6A%2iIjc7$Gz]F\"n4Nqu\"73:evLTB-TGHr15S,u;]I7oYPb$#zsU.\"X#;AsMc4mU@ypIXckq{=Vy-eBRYLR9bikc1`xbaFq7Qt$Dl$Z\'GvG:+c?LESS.$dWi2P(hb8)`4y66KZeo*r3:j4XH?Bn/5[To[[;N[cdN8i4[W\'RNrz63=vh-9vsbp4FIxO\\ekl_xdlu1*uE1_tQtz3\"J7oU=j,1R/.7j=,]xk4W@v]Q[Z6:_Y$=JAEwSrmQ+wH<65IRFDaFtC,L#];IAH+9x&B_@[3%[)O;qV:Z@j$aJ/FTYG8y.fEbCeYpMjUJSEAUlH[vh)(+@Dq=pKa-R<qQ#L@;D(5rlJhVRy7;a`Be[wl=\'DcPFN:oOv1&dTV9U\'Vdy]DtJP5T/)wPf7uvsctHCUh1P)r4?\'=Ao8^[/niJp#MDI\'zccJ&tHGg[pIW\\NQ/0BA^?Z1zDx`TcwX/yE(4iADn,&sD3lR8[H8x(L1H[rS+q+p(dN8i4]aQQ(id>E$yh{X)V__@^Ae^._zrNl]k)\"fib1c,E\\&<Am3IYevH@ExZ;Sqg7oWF8%J-;(O?,X^UkFV`bPI]\"#(ANLorrjAAbOFQGP>$5{=V#?X\'M9mFO@1ma!rL`\'7#BgfO7^^AcXmFN;tez`RV?tU,q\'_4#I2VE4n\\_LA=MP-*,;*Yi0EPEJ(\"m/9mH[t_]:B#!vadWco//@5*kjUJQ?&<<Z6<fwKInu*a7)a;=`R\\X*^*JzSlLq#H)0UC0^rIQ?)FihP9g%uN`{qL_#$,O1@1ojIhX^R_j!Vrf.DQMooayceTS(eN9k=+V[I9#=LKq&WmI\\wh)*5lLpx2\'eSQz@d`;=^K>3%Yws^^BghW[F-Jns\">Rh;*[rU0*!bWlDHz\\=V!87KYa`BaL7g0O%_?UqasF@J7mP(knkS:dr6Me=<Qg=3&_<E-Hi`)?G+:%FuHAK9unLk\\m8bn-(!fkl]n;qT.#aI,:#<E+BM@86GC\\/gGgXbf]#+N2HV]Q`p<m?-^xi+/G^*L)\"hs38__Dn+!]@`K6h8q]\\<RlP)q01B>NO*uB##%/Y]LCK4YNZ]F\')8{5.#`I-=/ngAI.CL7g.FWe!c^1nc,GcC_>TmQ,$iox54B5#H*3`rD9-s,ox7>qL`(9+eJ\"^Cm*yUx+\\sZE)8#?X%ChgP<s]Usi:y(Ht@wbf\\zxoIV[I:(SS(dL0EN=&=G1XPiEYqW@qHO6ZKHgUS$NEOA70(s>oD=D\"tQu&M;xvmB?Se+<0u1)tA{sU/#[0ry4-\"];JGbAX\"2sz5,xLKr)dJ%l(n&aCfb:6?wj/@:@pA0e;1#Scyb[\'Gp/-2P)mw9HCXr^aM?4\'].d:-lhHjfDYxwnI[pLd:.s,p{Bl&josw$>OVD1d/TB.XZ>c_97F?I5e-DT\\Uvy$81*yV\";H9#@Y*Yl9oOy@gp&\\)L,1R05U6GHs7KX\\G1XOd2b#xcga4stram,\'vQlUD2g><RiAFwSrmQ-(xV$H&y`VmH\\wj2Nt,mpkN\"Sf.F\\#.ZfvF7x*VZH9$ChhWW5<m?,VW5=rR&Ywuf%sFAPR.++4auPlWN`!sS&XoNr#Cn,#hnrw&En(ihSE>I5f3`p<nB837X<`Td$sJUNe;0w=\\CtLVSy4.\'tC/[bbFr9X:Tz9@uX;V\'TZMR9`aGz]DtIK{Urg3\\]Afja0]l0?.e>?_L?3\"L@;F1[`R\\X+b;;Sv#99T#Dp7U0)xRlP+zW%Fs?sV21?+VW8IJvD\'3f9\"9=elt+hYdo(jk^sOnb&*@H-AEtHCVj;!/d:-osv\"5(dJ%n09mGV\\OUC.UM_xh\"bRV=i%m)s:]LFWg*1S:beWeyW(Wf#k%cPI]yrS*ic7\"AbU^^AfdGq/-1NyD#w`Xy%:9Pg@Cn-)(*:*]$.X\\H4d+</r#Fy\\@da?Q\\`OI`1f>=Vz2x;QkN%bM7e\'&*>;NXSw+]$0c0\\ddPB;>dgZl:nMniJq%Vh0Ls)bBZ(L.=,]xn@/f@H-DQLiVPlYX1$]4(fUU23IYer7Rw0x>bXuj7g2YPd.N(n(lt+iZi)&!m4R)id=@eeM5WB#$)ANFU\\Rg6kFXj6cxZ:LQ8^Y(QHVW9Nb,HkiO1A70\'n(koob%%(8$G{c],ZfxNZ\\Dx^OLqz:IDWnKeCXvr\\W{2x8E6y1w7@!xl;tdxUz75C5y52:k:r_d]\'BXwxxug(\'+@Cn-,4^gmpn]c`97GCZ%>LEWf&zdg[rU36S*lme5lP,\"bVcuKR>yt^Wx&AXy\'Gq16W@rJTNf?ExY7@xl8h/ETYE-Kt38_]8:X7D2iIkhKv?m5T0.6ao3C;@l,,8tmJdAPR.*&{k*$o5Qz>^F#n6U4>wj4WC(:0x@k\'p19i1O\"OS6L`&0`yj-3ZSo]dbCcQKb6y4*o$Ui9uoR,yQd+<2$Yy$5$NEO@2sy/la\'1_rIP8dwQkM{PVE7!:E-N\'n\'hc;9JKzRc&);-lgBOIa5z7;`[+[oDCaEr;fuE0Z_QU>oD?LDNA;AsNgDYte!eeP?*O9j6d{fo{E#rFD`?Re.HdEf\\xoHVYBvX47V6B0b+F_4y;MXSu$A_Ciou&K3U<gzV!739bkv6@$,N0>*Q@/d5soYO`xdhd>E%\"tS#J3[W)Xl;y{&:45OohAH\'\'+CPMr{=SlP*vH><Qh>9AzoA0hGcGt@va_?UtnP&bGvKN*yY0w<X.t1,&tIIs4>ys[MO)q3@,UNf>=W(SV7JTL^wbf^\'<;Rpb\"o>ywj5^aPMprrf/Ls.yKCOFPEGq15XAv_UlH[uexSpc&%(6w%DhiZgzX*[wj2P%[+Xdp//;z&@PUA\"zrQx6;bdU\\Q^l)yW)Xj3U<eo(fXcn\'hb8,ja-O0:r\\V{3zBn08h2U?rQv.r$J3YQg:\'O>,XaaEr<fxNYY6;fwKN&jpy517]Y+]\"&7(ZvmA6-wBxeo\'bI#hp\"F#rIP7_`I+7p\\Z2$Z%=F.M#Y(M4YH@DuOb(6tsg1R2>&=CxaZ$95=sX=aYxyz$0e:-j^uZAo=s\\Si=0ry5/,.BDkxBw[Ap;m@0jSA,R>\"(APT:]NP)p-#cWh,9wz)M0B=LIhYes<dijY`[+[oD?PZStsi7mKhSHN3LjWV.xE\'1\\ekk^rK[j,1R03Nqu\"61/7f()6qd\'(3e2_n7ZI<1!LBEq9]OT<j0BA^>Vw#95A)BUh2XJL!UoXJHia.WU&T[RiBG\"iyMMyF,BNDK-;%CbK2Q+wG8z2!H.G`5{?\\<O_qB3qkJiZep+vE/S>vevLP4J[oEEjnlYY42>$4w-j\\m7_cXj8nNt-p!Cp8[J@Ae`6\'Ys__G\"ixH;-hQ=xpLfDZ\".`\'4oavX59^VunOw9JL\"Z-gL\'q7U/%eZqR%VmHYj5[UuupV<chd@K>60.6ap7U1-/CFuHCT`ir)dM1GWblxBrF?I7qbsF?I2WJIr.$bQKc;45K]tY?izUre+8utlB>P\\bZ#1na{n;pQ$S_hov.r(],X_Y%@WvvpT4B0d6v\"4\"I0O&eU[NR4HREC^;D&.P3IW\\OS7S&Vi6f.G\\{%7&T]X(ROt\'SU5C3ro[Z69[G0VGANI`1hGeM2KgKzUrf/Mv;U$H((/S<m>(Eg^\'=An3GQEEf^%6\"@`J0Nx@l.5]\\9E1a#xgxMS=qPv.q!Ahpz@ea>I:%FtB(:/v7D3n_qA+N.4\\[9D.Q9``H$q@%2hEZyyuez_I0Mv8HFdL2MoqnXMWQpg9y(K+/JgRB5\"Bl&f]#.Y_WrcuKP7[MQ1:qV9S\"Co09lCDgeHq12FN9k?2t\'V`e`4u&N;y#/d7x,b7\'T[NVKQ:h*-BJ2R04S.%ggSHO7__EvOb\'2d-IlkZ_R^bT^`L;z)L*)/O)r8S$NFSS(aA[0psslH[uduG<55IQC7,ov.r$M@85B0a\'4nZX0\"QZRn\\`OLlb,KxI=5/.7i7mKkb,Jq+nv/u48\\MN$]738af`4w-ka\'2g>:E3f6p^gox56La+GfTQv/u1+{^Dq=oEGq01DGtB(;2)p+vE-LxH9\"8:V*fO9i3U;dkr$J3[W(TV;Z?dbB_AaL8oS2;pOrz500@4\"H/IdGn{G.G`7,nv,iZgwKJr+q(dK-7mKk_yl8ez`QS02Ja3mXQn]gp$S\\W\'PEHzY.oqo\\`OIa6#G\"j#^?Z1w:Pf8y,`,Q;k7h1O\'eWdq5K]u[G1[\\Bn0:pU9T&T]X)U[LKr+mrx.iSB2oc\'-Kv?l/;xxs^\\9@uX:T{9A{rPt#@[2\"LABdXmEJ($sM_{sS\'Zz$5y8?qL^{t[H6rf-BH\'$v[E%$$&1a%(7\"?Z-gO3Mk[ft9W31<yyxoKb4srf/Kmm_tRx3+t=en$WoS28cp1:mFM5[RjDRQ%WoR,wI?@cWk;z*P=yvk8k?3y>\\?_G\'&\'0Z_PT9X9MZb_;C%&-P4Kc7$FvPd1]hu>h![50/9pWAxh&q:adTX?n9f&wX305XC(7y/mg?@aPKgM-1KmiJp#L=-c7%K4[V$Cjt/%cROs&PKeE`<G1[^LBCghVV22A3v+dBXy$6\'Yvk;{*Q?*L)$o8]Sf3^iwByi&q:dn&_;Av[BuU&SZMR9]Sh8re)2\\bYwr\\Uurao4GM0DGvJKyJ??\\<NXRroZUx*Yh\'x]E$vY:Pe7ux!+SK\\pGL-7i:x{*N5XC&0Z^MESS-!X#;Aw]OO&dRMjVOgAL;!0jTGCZ$81+\"c\\%:7D3kP/1KgK$fa8-q\'^2qpc\"n:i2S2;nHTT-wD\'/UJO4Nry0v2-)$uQqjG_0f@G)0T?xk5\\W%Eo03P\"K>2y=Z7=m:nHZk7cvQkQ2?*P;qT0/7g/JiZgzY,gM-1Mt,p\"G\'*9%Er<g!^DsE9-ot$FuF;43A/c4nYU{9>l2I\\ubkt.v=aXsctHCXuj:uk?2v/u5;g\"cYs^]:F3h>77OkUGCYz)J{Z1x>aVj<&A[.hM)yY3+yP_rHK#aK6f-CN@4%TcuM[djk[gvE1\\fp)kmc0XU$I.ABe])Fkoph=1x=\\=Y.pv(ST/\'q6Mc4mVD5ssj?4(eRIW^Wvuj9q]\\8?tU,ox8C*CUf,;)TT,t6GFg[tZH:&I%sE:2-)#o8``Gy\\AgkjTE;7B)?F%zl4Px;Pe4g7tmKka&1`xdmw7@#\'8*dFigO2HV\\NP,&tHDZ#3w/s([#0f@F\"k(vMYZ<U#@_EuJKxJAH*4e/MyH5lN{MJi\\n=z#,RA-WZ?flon[^K9wws`ghWZBw]I8sk@:?l/9sbp7U1-,4^hq\'`;@o;nFL1Jc<<W)\\!%7&T[O[^I1VG>?`MCFr:a_=OYV(YnGRJYes<dlw9IGia1b,E]-]tW8JO2FM2Nw6?vadU[LLwBuV.v:Ty5/*#l*\"d_2sw(QEFlx<X1&bK0FU\\P]daAX\"4#MDM9mI`0b,Ilnf9#=NS9_[.hO1CAY\'K.<&DhhSHO5XC%*BRYLM&gdD`>Q^hr-zP^hs1/7g/IeGo%[(J#fgSK\\oC948]Q`o7X>gvC%*BS[Vz0qv%Em%_<JBJ4\\\\<Qf8x&DhfL(wRo]gnw56PqrjCG\"hp%Vi6f.FZtbku7D3lVIK{Ure)0UB,M){`NGXf\"d_3t$Eq6Pt#?X(SOs%I,:\"4%WoOzDx]I3`qA)CZ$81-+/Lq#G\'%\"wabI&wY6>pGO7cr=l7dy\\@ecEheGmw7@ynA4z<Pa\"uX8IJxJCNDHz\\>Y-iYbbI%rC1c/VM[emv2*vH=8B%-Q7ZH8x*UW8Nb+E^1plR4ISL`&4n^izP\\aTbtHFfUV4=sW;Z>^H/Lt1+\"d^/d9*^)EdO=$4y9B&2f8{5*kjVOiLwC#wa^9=dieCWq\\Y+b92*ySpasGCZ%=F.Ks.\"Z*ZmA3w2)mv46Prv$>OUD1b(6v!1rx-eEbDgeGls&RQ\'cJ(%yceTR\'].b3iFZyvk7f+7q`m,(\"l/8j=)P?,VU.wAsL]rPpmWKR>wl9nKeEa@Wy)M1HZpNomVG@K:\"6,s23GQDB[+Yh\'xZ8C,L$dXi2S18e{aSZPaxaZ\'Fp-%m\'jopjFZug\'#rGGknkR9acSR)ia1f;.oro]da=F,DSYH;1zH2]efVYBuV/!Sd(0UC2gAF!hv?n:i1Lpu%G{`NEO?0l\\fp\'`=I:(QKb2iHeN6ZNXPf<4,xMP07ctGBRXIDXr\\TnWG?DuM^rNf>>\\=W$Dku5>sW;[?c^0iN*z\\<RkKq#L:z*P>%:5:et?qK^wfvIDVi7i;#6+ox9F9(YpMme5p`p:g$n1<xug)*7rf-BJ1Nx?efW]Sg7nU<eo(jk\\l1EL1Ib8,ljR=sZH;+^\';8F9,hURw1!LCK1O$Y\"2u(Wf#l+#hnt&OFM3T6JUOm^n7]Uq`m,*,;(QJ[nA3v,gN2I]{zwj1LnlXRph;\'M5[Tp`q>xoIW_Y$<E)9%FuIE\\*RGJ#bT]X&I\'zfo#QV>n=\")EfYi.=-c9+fO9i0Kle;2\'dQIYg#feN7am\'jmf?Bjw@p?#+M*$n4K`)?G,ADp4IVY?hxJBL:y$820:r\\Uvwxvl>-_%/\\h\"\\:D.R=rU38^Y&I&wX/yH3aycdQFI\"`K7j>2x8D1a\"uX:QmYW+eK$iq$QQ(g\\xl:r]X&L3T7OlXRrqbwV*b;=`RYNYW-ow0yAp<qQ\"I1VC.TF@LAAbQNr\"?\\7<bdQHSMhM&ilgBOJeGjk^sOm_qD;9JM\'p1:mC@X#:<]J:#:<_QU>oC95>sYAuX5:es;bfZqPw303P#PQ)o(ha1c0XSy2!K>600=%;=_QXG;2)o&]2t&M<$:9Of;.mjM%dVahke<7?rPqrmO{KADo..;z)N5ZKImpo^hr0,,4bwW-q&XoNr\"@aPKhR>\"\'<<Y3,\"_G&ydha3ph;)UYAuW46T+ms\"=Re0S9^VuoS16YE,Ins!;G8!8:Y;Ty1y?c],Yep//;y$5$OGTV6FAQZPc*<3*q0/;xxvl=\'DeWco,{Z2$Uj=-b3lTA&3mYV&N@710<z%6\'Yuf\'{i$dXmC?Sh9wy&=CydigN.5]]>X+`2m]hvAuX8GAOOzG,BI-AAbTYJCRS16XBzn={&:59_X!2w1$[*TQw418csB\'7$I-=/la&/XT!>X)YnEHyW$Er;bg`1f<52;qS,u>hyQax`Wr_gi\\pGM/?1s#Ckw?i!X$>OVF:0\"Q[[9E4o`q?#+KzSjCJ.BEs@\"zt[I:)Wcn(lw7B*CWnLla&/VNa&1`xbbK-8sf+6lLpx2$Z$;@n7ZI?@cXpQ%WqZP_rGHo$Te(+><Pazi&q8Y=caB^>SjERR\'cH{^Co3DBZ)TPv-oqqd\'(5pby`WpV<fs7OkUE:2)s:]LET[NWKSA.[fu?oB4x2\'f[t]Sf0Q07akyI9!4$QU<eo)n{H/Lv9Oc.R9_^<LM\"UoVB\'5rlKnna{m8aiq$L<&Elw9LUIP8bl{NLs,q(bAX#723GQC=D$xgxOYY44HP;r[MP-**2]fje@MCGxW(V`cU^^Ad])Hq14Q#MEOA7.zRc$yi&q:cild3jG`7,mpo]fjd<9IE^1qpd)5mR19i1P%]3!F$uSx2&`>QauSy4,xJF_2pkMxBsMa(9(Xi1Mu0%dU[LIja-P3Ka0^tS\"Bl(o)o(fYg%sD3oc%$%,Js1/6bq=oGP=#1hHjc6z4,vB\"u\\I;,b7([{%7)^0e>>Y2$Z(L0DK.=-eBRZPazj+*2[[;NZ^NIb9/\"Vsg/G^+P<s]UtpWA\"yl6^_F!fkiQ8af`4w,fJyQb\"rKY`Z\'GuC)?F$tOgCS[Rh<0t)_0gCS[Tp^gox8A$*FfUU0(s@wdp,\"_Dp5K`(:.r)dJ&p7V36U4:g\'{gr/)wPc*=9C)=9HCT_cYqXB#zpGN6^^AfcAXwvpS-#_Ck!R^iu9Ru!5-xKEZug+2YSsp]aS[Qd,DRV=guB##$)?F%zj++4c\"pB4u$ChhW[D\"tT&UcsB)?H0O(n&bGwPa\"rNiL{Sf0R4EFlt.t21>*N2KgN/;y#0gBNDK0FUZH9&L3S3>{#.Zeo%Z%>KDRQ$Td{flon^j#_Dm\'igO7[Q`uRt{4(dL.=*VX>gq.%fcAWr`hnrv!2v1#Wsg.FYnGQEDdSQ\"I1UC+Jt8PlWOf:,c?I4b{k*#l,\'{gp\'a@VtnMqx1zH0P-)%yen\"LBEr;chfIwH<3+uB{sS#K9tj<%AZ)QDB[.hN.4[SnWIE`:<^L@=OYTz64@*IwH;-j^tV34IW^TkGXk9nKeFha1gAH,=0t)`7*hYfuE2e5kHc?MIfM/<&C`Cjq%PMqx2#QYO`xa[)RGM1HYj1KhQ;pQzDvSv%Dku49_\\2zBn2D@WuqZLP1?-]sT,q\'^2t%K1NzF*7w%@Wur`is0\'lx>dcHzY.oqnWJJu;\\Dzgt<aZ\'I!^FzbZ\".^xi)&#w_WuoQ%Yxz#.\\m8dxW+cBVpZPaxa]2v1#VpYMUF<<X,fN3MnkS:do*q12I\\t[I<1zG-G_3sy/k\\k/:tg,=.k]pC6(\\%80$_A`I+5h9y)M3Ov58Y>ejgJv@rL]qJYdn$Z$96D7\'Ve#k&iorqe+9$CgeGp*ny>^F$w\\F)3f4c(/S>vds?rOojKox3*s6HM+,;&I\"d`7/#[.gL\'r;fxNZ\\CvSy2$XuoNt+fN2Lk\\k/<$7.xG5kIdC_=KF\\&<=_L?75D:6<k4U7Pnaxdg_*GkolWKTE<<V\'RR(cK+.G[xt_^<NXPhCQNu0$[,]xoEHwJF`7/$_BcU_aM<%>LFXmC@Wy&B_>P^k\'q7R{@aQP{I4c#rIP8dtD0_tRx4.(y\\@ecFlw;Tz4)mt)](Fhc;5;clx?eh]zwg\"d]*Q?&=BtOg?BjwAtRu%Eq5HQC:6A&5x/nkQ3GL.;$96A+M*\"goy=Z4.+-=.k\\k-3WC,LzRc&&+CVi4^fgX_Z(L1KhRA-XZ@l.3WB$&1d0VLXZ>_NJc?J<+]zveuD/Z]I6lMr&Wi5bwU$I+7nU>pEEg^%5z78Rw0x@iyLLw@n6V7JRC7*gVW6C3n]gq+r/)yZ52;pPw7B\'7$GzbWpS/+),=63<rYF0WNa&0Y[?fh^#)ANIdAScxZ9JIq)jeBRXIE]._\"!yrT-wE*?Aea=F.Lv;Y6>sT-u9PjO,)).Ks-u:U(Zuh/CFvNZ`Uh4^fgXclw9KP6T0,-9wxz#-X[F+?@cXmDHyV!9?l1FN:r\\SmR19h0Lnm^l,,8tlGWae](D`@Z,a0c1]i\"[2{G-F\\$2lWPkO)s:]NMv;U\"?Y-gM++3_n3FK($rD8*dHt;`Y{-_$,M)yX-j\\n={&8-s.zOT>sU.\"Y%ElzG1VIGjeAQWC)@G\'(4iDRS.&n*t=h!\\;JE]+SISKZi)#m0:scr>t\\LF\\$5z:F6tvtg,:#;D\'/WRro\\_I1Q.**1UB)@J7mMt.w>dg]{yrU37YD&+DWoOv59[F0T>uadWg))1YV(ZueyX+dEdPC@Vsi8q\\Y-hSEBVpYLN(q6KZh&rA%/Z`XvpT3=wnFL1I^(@K>5+t:Y:QlR6Pt&PFM3S16XB{pEBY%?Rby`Ui8q\\Z4-%ju7GD\\*RFGr7M`&1b(3g:(SQ\"J7oWD/VM_v_X!1ng=529exV$G\"hq)h^!ztZG3b!n8`fa:5;h)(,AI.DOEL1Llc1_qB2kS<l;voMme9$Bfa80&g`1iImpo]flniHfQD<ArE>G+>8?sQw/t0$]9<b^86FAPS5GHt;a^6-wD)8%I),@?Y-hRC6$L<&Eikb,Inv.r%SXD,Hjc9+eIvD.P3GO<y!&8+jb/Y[Am1>*P=z#,UM`%.ULZb`@W!4$RXG:,gP<t_^=Qe/P,%m+\"bWj:wtdz^F$tNd4kO&eWduHDWnMqv\'N:sdwRpf0Q/4V;a\\1s$H$sGD]/gHkl_wa_>P]dbDe[tae[vi2O\"PS4FFkqw-iWW1,\'xZ;Ob\'/TA*FgZm@0hIp%XsdwRmWJN,+3[[9D0^p?&:6@!ypHTQw0w;Tx/njO*zZ4-#cWj7h3ZSrjCI)-EU`fdEeV]Vur_cWk:wui3XHBNGXg&wX3/0A<F2_p@\'>Dydg]ypKa.XY8E6y2\"MFXh-:\"4\"F$uV-r)cGr4C90\'ij^u\\LDRR\'cL0FQJ\\rS&Z!+RC;:Pf:)ZoI[pK^\"zvdq5GHs:[D{k.6cy`TcwW,kb.R<qPu+eHq12FL/BCfb>H1VF>?cZy\"*JyO\\b\\*REB[*W^UmNzI7sj?5-xH9$Ciml[aYxz&;9KSB1f?AffQC;<[>\\@cZz$2lYU&QNqx/nmZZ:LUHIt;\\H4d*:)V]TnT7Ry7;dkorri=-eD\\+XbeYk8h4\\^H+7rf,=3(h_\':1&f[vg&vRqlKnog8z.eBQXF7y2x;Sqg4e+;*]\")CY!.`(;69ZBw]MG]%4suwy{\'@PS5KZgzX)Xf#j{Q`o9co-%kzLEVbl$]727YD&.S@\':3..8pZNVLXX6@#(>CuPkR6T*jfE_70(s<h&r?xk5\\V\"88PlYX1\'g_*K#_EvMZa[(K*(*9\":B{qJX`]76FAR^bVf&!l1C@Wy(I\"cWk;{,Ydn$UlFQLe?F%\"qJUOnc*>:JHh]wi+/IdFiiTHM/:ti7j>1t)\\%5z:H@EzdeRK`+Jv?m3Noo`sHK#bRT01@4{Cq;i,3[Z53>$3rrjBEo..:unLjWX5:cjq\"Co2>\'C_;E.O-.=-a.VPn`uU*dFjnm\\cbElzF+>9C*@F$vZ=]CsHIq+s4?#,P7\\Si>4,vC%*CVh2T<es9Y=`QU<er5EAVoU<cheFg^%2kP07e#l,))0VF<:LTD6{<Pb\"tS\"Dq<l;s`fdGo&]1ry3&\\-_\'6{9?pC935Ld:0{LFYqU4@(AR[X-j\\l3Nptx(L-8q[Uv!0m_uU,moh?>V!74>xoHUU.{Sg6lIb:48ZE+AI/H`3rqd)1XRpg6kGZucq5HO9j7i8p[TtrbtIHmu-ml\\dg[rR%WoOzCsJQ;l>+US%S\\Y/pt{4(fVZF/P1<xvj4[W&M7h2T<fxNXQobzi#`I.A?Z0t+fP;s^]<O]flokO)s;`Y#96C0c1\\eib6y4-\"Z1w9IGfVY@n9g&x\\CuOd5pbvV*eK)!fmqtvxyyz!$1g@DrB,P5S,v?k.6bvPjKq(`;@k*%sFAONyE%%\'3iDU`fb>J<,c9/xC!o?%5z<NYY56MgGgYh%q<k5[Qc(1[`TbsD5w(RMk\\j&p4ISISJYdm{I6mO\"SasHEa@Wvuk<%>LH`6(\\&<Ao9cp2<vj6aq<k6^`J1Q.)%uQod+@Aea:8HFdN8f(*8w$=H6qbvSx1w7A%-TIM,-<)QGM3P\"K?9@sPqpd&$\"u\\KCK3WF7y/opf3avW2*xQg;)V\\Rb\"o;l>)L.;!.c4pe/N&eZoIZk6^bQQ&]0kWT#H\'&(3g=4,yRg6lMu33DAY%@WvvqW>k/>-^\"!ysV7IO2EJ&rB.WV+ja.UL[fs9W2/5XF6tuoR+u?n:l>*SLa*Ea?Q\\^H+:\'N;vlA86B1e8#>TmQ.-5_hp\"H,>8<difIr00<z\'@R]bUf\'$zk.8mKiXZ@m.6am,%n..>.gK!W{2v-nrsnP\'eV\\P[]E!k(vLUHGjhQ;oJ^#\':3-*\'&(3g9#?TmNzH4g5f3`p;j1Kj\\k/;!.a*E].c4pd*8y+Zj2Nt,mm^pA/`$\'7!;JDUdxX/t/$]77M_zrMgHkiR>yt^Z,b5v&H#hp$PQ*s7OhHh[pGL-7j>1v1%`BdZrZJBNB?TmNyE(/R;h*-ACm&dRPv1\'jk]rK]rOnc)9$Es>rPu\'SR*knhBK7i9wxwoLhN,,8re%w[Cx]J:\"5\'^1nc,GdIzV{5*nzCrE:2*uD/WOf;0x>`PP$VoS3@)It9V.u8JO2FK-9sh2U@zrOqqg4d(1ZY6=n?+SHO8bp3A4w-le;0xAn4Ld==Y2&bHz^Ezca@UnS5HO7__Fzb[&>I:&GwQg=63=xoK`-Q:h),<0s(\\$4x0w8E9*cATf,<.mhEYuf&y`Ui:x\"-[m:oNs%N@4$QR/-5_it24LfE_6,r/(s@yl8e!fkhL&kw;X/w>b]0l[ccK,3\\^F#n8^X$>QawY6>pK^yoC<Czj+)+;-iTK[h#fcC^86F@MGYoJ^$*Ho!H0Q07`e`7*eM/?4#ONt.xE(3h=2\"LBDl\"UlIb8+i_!ym>(Ht?oA/b/Y[@j{TmP&`BbNA:>hxIAH+9z.d<8E6u{0nhCPJa4suupS0/<!,VV0(p18cq6OojHcAVran./B?Urf+8vvsbn-\'x[;N\\hvD(8\"<JBNDH#jzMLt0&ika\'7z4(fV\\NP+zY/qy79W5=nC=G1ZY3-(y]Ezfn{F&\'/S?zwh+1R3@+TJX]NLu47W;W1&dUYE.Q5Qx55JYckq!@_EwTx-fIu=ft:Z?eic:2,#cZvmC@X$=I<2$Uj=+[qOpmWLVM_zn?*O9h-<(PB80(o+yTp`p8^W{0k[dg[sZH6qf-AFxZ69ZArIN2HV[MLs/&gb91(n%]2x8B\'7$G{da=F.M#\\3#NJfM-4[W&M:uj9pYIAK:y$7+mpmVE7$H%sJR?#+O4R)h`,P8`cU`e^+O8bl$\\/k\\j*$p=t[MMzJ?=SkIeJ{Z.ooe/P/4V=h!\\:G:+a7\'Zvj5^d\\&<@l*$o3HSK^zu]Se*7usf+6mQ.)#o7W<aYz\'DbI($vZ@j$bQKeAPQ,#cXlA86D90!Q\\]Bk!TkH_-WV1)s:_Xy(Ht>l2KgM*&yaYy\",UOjQ4LeAPP&`A\\63:k8i6e\'+>:H>?`L<%@Vrcy`QV=l3Ox9KR=rU4;i0I`2m]fmu+fN4T0/8kA:BxbbJ+2XMVOiHi^zrR!E{hwC\'0\\emt)`4x3(koqjEU^^AaQNqy4*p(eTQ{Cp7X?k)\"iu:T$I+8tnO{I4d*6rf.HcC`?Uqczb[\'EijZdkqv(TW;\\Cw[Aj$`FvLS@%4stq_fgUS#J6j?5+s6FC]0l]n7^\\514Nqty+Zi,5czejfGid>Ak$_A_F{ddJ(zc^2rw&Eo-%k{NQ/2Moph=0r\"AcVe$o7X>fq,vB#zpFFks\'Vf$rD8)`7)dI{[528ahiZep/,->5-yOYTy2zCvU\'Wg(*6nUA\"#\':1\'jmf>;N[`S]_I0N\"Sc!j$dYqS,wD)9\'SS+o$Uf)/Q1<xvh.?8;]I5g6nQ-&r>t[I:%GwNYZ<U\">Vy-a.Y]LCH\'#sKX^PVD/WSx2#SbtLVQrpatJO4Orz63>zyucn(iiVS{=Uv!1nf;+`/]n=xs[OVIIq-zQbzhxLLyJ@?Z0s*cDdRMl`zn;s\\Rd*8\"86HK$fcC_;C#!u[F,EZuj6br@%2hF[#2m^m3IYfzY.mjO.0FRNmc,HfTOpmWKO.4WB$(;3-(zaXpV=fr5FEeSPx9H@I1S6Psx+]\"$+N-2P$Y\"1oiDRT13I[pIX`_A^AaOFQIYevG;3,\"_DsC1b*><TrjBDo/2KfIu?o@,SGGo&^722DB\\2y@fh^zrT+mqrmNzJ:&HyX,eIt;^NN\"QXNZ_OP&`?Vutg/Ha5\"Co1;sal{OQ/1FO?+UU,p#J7oWC)=;N\\hyP_n3IXdr8U-u:T\"?Z/s(Zuh+4bzdha3mXRqg9x&A[-d?H.FZwpQ{E{hxLLxF/S;h&vQlS<k2OyBq>zveuF8%I*/MxCzi$fc@Sc!k)xTx*Xcm%^:>fr27[MN\'ij]sS$NDK0H]#,R@,RA/a\'6x-gK!Y*Yj2Q*s7OhFa<D%%*@J5c!l,.A?X&I(#rIM.7j;$:<\\DycaCcQMk]m4R)jfGh`,O1B=G3b$zo@,VT&Wk=)O;r[OXPg><Qe2`qC2lVKUJTJTMb.TF?J;&En&cOA4#J5czejhM*#k#\\4\'cI%r?ypKa-Q9aikd7!9@qGIwIAI0Mw;W+eHq01A;?l.6d\"m1C?Q_j#]9>j*\'%#zoC<BtQpg9\"87JSE>E\'*>=Uux#6\'Z{(BY$::Sv\'L2R-%js+lmb(6soWF7x,b8(YpQ%Z\"-^xh(zdcGuE3iF]\'?LBH$q>vewN[b^7.#_@_Fy^I4_l+%p8[KCOFPDB^:C#yn?(D`@W!3y<U!8:Y8HE^4#MCH$o5Qz>^Ex[?aRU;a]6-yMN&dUZJCOFPEI\"bT][4+t<`Z%@UoXICS][4-$geL-4[W%J,9y(IyTrh7pZSo\\^H+:\'O?-^xk1KfJxKIll^pB3str`l(q3>$2m]hwH8#=MQ1=#1jQ6V4:h+0MxC!n8dtF9,kb0[cdO<!)IyRh=0s&PKd?I5e*8y,\\t[JBH*2ZX.s*fP?+Q>!&;7D3jKp#L<)O=#2oh?;JDUcvN`xcfZpMkY]LCJ/ERNqw*\\vg%o6R%UcvRrlNyE\'-LxE+??_H,;*[rS(a@Vsf,<-eEcI%q<m>\'C`A\\76GGlrz9C(:-nm^o=ubjr%SZLM$_Be]\'@OO%\\0qssj?3$Tao5MfDXui3ZPd-Kr*jgGic:2,$is-v>fnx<W+b;;Su\"5)fUU1-,6g4c$uW1(o)mv2.,3WH?CsF?G+=4+u>i\'r=n>(Hs:[F)6smKkb-M%dXi1NxAl.1Ms&Ucs@#%0^tT)b@R^fh^ztYAuU*dHt<dmzE%{n<vh-:#98Nd1`uW2-,3YN[`WpV=j*(+;*]!\"(?H2XOb\'3e3b$xdkr{<P`vW0#Xy\'CbL4ZRkMw?hxI>:F6v#725Q\"J5d(/Q5MiO2C?OUA$)AOLqy529g)+:&J)(,BNCFq6NiN,(\"n5S*ny<W(U^]9@rOjSA)CYz\'AUmKj^uZCzl0>,[oFHvF8!9?pC934J\\pGO8f((1YU&OGRMgJs4@%5y64D:48X=ca@VrczdfTT*lmd3d+=7<dkpv(RNqsp^fi_%/Y]I8tlDJ-9vvqV<a^6.#_Ckx@o9dtC,M\'p2<vmA85@\':45La+Hnu.r\'Zws]Vusf).Lt36U23J]xm?-]sS\'^1ma#yk2I]\"&6\"AcUbq8[G0VHFcI$k{R`p;j4V>n>%8,ll]l0A7/%geIt>j+*3]b[&?MIcC]2x:LR=sZH;*]$0`%*AK;&Fq3?(AUlEM9pS26ZH:)YnDB`CgdGmzF)2]iyMR4IUS%RU9Y:Su\"88Ne7v#723HRISMd8\'SW<`Yz*P>#0d6w%B_AbSU6JSHK%l$]611C>OU?u^VtlFQHSMiN-0EQLeCVj>-d:2,$jv=`WnOzG,AH\'$zm6YH<4//<$95>u``G{aVj8pWC(7#BgfM.8mLmiKt24Lc7$I,;\'K/A<JAG%vX2./?5(dL1Ja5w-j[gyQc&(4kLt0\'n\'dSR&[\'Ega6\"AfeM0A<F1\\dcJ)(*9%G{aQT6KX^Q]`POx<X-ot\":D\'3iEWi5_fi]vaaH%sIK{Wy,\\sU23GM4W?pEBXy\'C_>SjDM;z(Flr%M?2w419i5^bVf\'$yfs6IQ>!\'=CtM_ym8dyZ9E6v$?Si>3&[(J#d^/e>>\\<Qd/Q4J\\pHP?*L,.BDm&dRNolS;g$jv<]G-BK3XKM&kv8HD\\-_$)BUg1P+ySlMu6@#)CXsdxW*b=CwZ<X-kd7z614Pz@gp#K9x!-ZfvIAL;$;?i\"]=Rh=3\'dQFHxPc\'.P2B:<]H1S8W6@\':1\'jle;1#UkDJ,8p[V{739co/1GSOqux\'Gr6Ne<68W5;i-7lGZpLfD\\*SIUQx3-\'tG>CrB+L&o.-4[Y2%^9:X45JZi(y_NGZrW<b]4#NFTV8OgCRU:Y<Z7>rR\"F$tNc1_rHK#cU`e]\'@Q[W\'SS,wE-Jp%WlEM7cwStvxz%6\'[\"*M.8lFQIZm;tf%sIN-1Nv6@\"!zveuE3jHfO9g+6jBEs?vclv6=oEGq2;pNpssi<)RHSJZi*()3e0UE7#EsC.XX32>\'AUlGWds>pISITNjR9co,#d[\"+N3Ml_xdkr$K5asGBUg/Hc@R]aS[SmT=m=!(C\\,^zvdo-(xW,hWY=`R\\Y/q{=SlP+zVy-eAPQ*q00?/gIq)g\\sW:T\"Ad]*L(z_NEPCB]9=eo$Tf+7rh4^fkjTF@ONyD{l0A99Rsurcy\\Aj\"Vsg1T;dlx@iyKEYqV9T$I.ESU3:i0FU^X&Fr9[H6nU=j-4_jxD(4lO(n&aBbNA71-,7nS3?(EeTU25Py;Pf8y-c8)^*J\"^@aPKd@NJgRA0d4lQ1:nI^%3m[^I3\\_MBA_Cl#Wvuk?2v0\"Q]`NGV_];G7w&Dga6#EvPhBM>0ng=4-&o/0CFs<fuC);3+yQe/O(q3=woJ_\'8+eJ$feJ\"`M=*VX>gq-\"Z,b6\"Ae^/e;1#Te*7uth2T:_Xx\"1l\\dg\\veuC-O.3U;baFuF;2\'eXh))2]gp%Vi8oV>m7bo/1FO?+UT)bB\\1r{;H>;KM$`FwRmVD4ob#tT%OGUYC%(9\'TZLJnqsq_jwByfq.&o19i2R2:l=\'Eij]qJWY>b^4$OJc<?c^1ne2^l,*-CL;y$5\"Co3D?OS8W5@$/[gwJDVg,8vwtdxU{8<cdQJ[n?-[i+->3&\\,]u^Vsh4aq=sX=a\\.b4n]ca?Q^fkjWT$I,<,b7\'XlA71.2Q*s6HM.7g2VB\'5v&FtD/XX45JZi+/H`3qnVF:0yF-HdFmx?ddL-7kEN<\"/c4n\\_NFTW;\\F(.P0;tdxTy0ptvz(Ht<ep-\"]<OYX2+yQg7tpYJHjc8%K3WD.R:f\"fjb2hCPKhP9f#k$bPFPB;=_NH_,UMd6ttnNv6?xm>%:8KP7[OXQjJpy;Pb#zm;qW?m5U6F@OO%\\/k\\j(wPg</s\'XpPzAm-,5f.IfN5V9T$M>0mc/R:cm#WrcvPe7uumKfJzTqasHIp*lomXPiF[z%5y4-&o1:nHV^X\"6.zP]efTR{Cp8[I>9@v^Q]d_7,q&\\\'DeXh*.Hb>I7rf-ADq9]Q\\_MBA^@`G&zfp*p)kl^qGIvC);3,{Z1{J9z,\\rPu+fK&n..:wvoKfGlrx0u/zMKot{5.$dZtafb>F+=3+t=ep)ifHo%Ywtey\\Aiu:W.v:RsskEPEI$l(o,ySlMxAo<oJ_)@I5f0R3C<Cw^OQ+yTrh7mLnn_sKVT&T^_G%vU%NBA^=P]hwC#ym9j7h5bwX1%bK0GWez[9D/WQn^n4Nppg7qbuOf;,fK\"^@_H((/Q5Pw1\"R]_L=*V\\OWHDZz%;:Od1]i#_Ad\\%:47V5>xnB:;V+gTLb/XU\'VctD2hCNA=NS8X<_ONx@k)wPb\'/TC1f:,fK$ggTOnd-ImokO(n&bGwQg:\'M8lCDlyF-F](Go(fYh*,<,d?I5g4e*9!5)jgIp(bGr9[F,EWj:umHXf#gkfD[%;?izSjDN@7/\'p18bn,&sB,N,+4`p=pNl]k-3XJInw43C8.v>gs6HJzUrg0Q19k:uk>0md2azj*\'\"qD<=]G(/O)s=j*(*:&K1JfL&o1<wqS+s3:i.?4)jgJv?m6ZKHfQB7-u7HGklb(7z2zE#rJTL^wes9Z@l,-9wy#2plR2>$2pkJiZh#ea<Cx_Ui8rcvRobzhxLO)vH?@da;=_PR.\'vN]m3Mmd4iAEvM[b_:>fq/(uG=:KO0:sbq:acQKa2hCQS.&m\'ijZfr6HL+*2[]Cp;h)\'&(5pbx]F*7skCFwPd.M$`DkxBvY;Tw\'N:pS12GRIX_[0ppe0Q3C:9M^qIQ>\"+O6ZKIhYfuD.R=qPt(Wi0Kk`&/Z]J:$>PZV%I,7oYLR;i/DJ*.HdEf[uae\\{#*JyP\\b].a+Io\"J9uq\\Y+_,THL+*1VF;42<woI\\u`aH#k&kt-u7GBTcxY6<j,4]_I/Lpz>Y-iVRx3*s5FBXxxyvj5]`J3\\[8?rMe;42;r[OYW+dEg^\'=@gmt&ODDks)a97D5w*ZoGO;saiq&UcuLVNd4mU?wh(#n4LhN,+2XMXW.w>caAZ,b5w,eC[&CaH\"glmb):+b90&e[tagdBZ(L.:y$6\'\\(DdTU4>xqOqtuulCEp02Kd>E#tPlXRpg6nU>qMf@J5e,ACk!R_k$`Dm&cN<#3t{60/;ws^]=Pb\"rMa,Jt5A*Ho$S]^Bl(n(h`0a%(:/t/\"X\"4$PP%]2u+fK&p3EEf]\"(@LAA`H%w\\E$w_VoT7Pnc\'1\\ca?Si<*V\\Q^jzQ^j\"Y\'M7ctIJt7KXZ>aXsdwRpb!l1DGuF8&L8kA<G5kMu6@\"$,N/8k?3y?_L>1u-ov,eEdQHTQz=W&N=\'C`BdWg+2ZW*b:59^X\"5)eQDAXy\'Fm\"NLpx4-$hjb1b)9\'PEJ&vRpg5h;)TU37YD&+F_6,p&Yws^[2!J:%@Y\'L/CEo/2I^$-THJzVy.d=?aUd!fid;419i2U<er4A-ZdmzD{k+*0R5Md8(Vbl!PU?tZE)7x)QEHuC(7\"=Rg9!4&\\+US&WnJb7%OEL1JeD]3y<Uz4)h^#+It:W2..:vsctF<7?wdn\'g]zxpNl]n:l>*P>$3rpbx]G.G])Gn\"ONw=^I1T<g{]@`NA>P\\_L?88PkT@%/^uW35MiR>vg&uOe9%H\"fi_%/\\k,->2\"L@=P_m2FN8e#o7X@n;mA6,r/\'n*r4B3sw$<D\'0[_OO#SbuPiIke@G)2\\ddL/?5,t7HK#bPKeD^4$QS2:k8j=*V[J>9C&1c);.px3(ha1e9&M:r_bQPzF(.M#\\5+q-yOZW*`3pkKpz<Pb%&-P4K_(<9JKyMO*wMUHEaCdTZH<2&bGwPc(4iCL9q[TsnQ*s8Rw/t.t23FIzZ2\'eU[JBI,9y(M1I_)CZ$7.yJ?>Y+_,Q<qS)ic:0\"Tf/KnpmVF<8A#%/\\hyRh=2\"LCH&yccI\"cZz#-WW34J]u^Up[Ux+\\wh*,?9@sOkUIJwG6snQ,\"^AcZue\"hs38\\Q_n3GN9mDH\"edHt>oA0e=9G<69Y<[<W+b92/3S0.7h3[W*^+M,/H\\\"\'<<V%L6cwW+hUQv*`1gCT_cYpR\'bFr9Y=^LBBcWg\'$w\\I9w\"3w3*r5D91(q2;oJ`.VPnb#wbdTW=ceUV8LY_VoS16XC$$)?EzdgYi.?4&\\+TOog:\'PDDheIt<djiWU(])Hr3=vi.>0omWM[dkmd4kKq#H,=2\"LA@];IBL:x\"/b.TFAS`l(o*s8Qsw#838^Z,b6!>UsnP&bJ*+9#:>hyO[\\CuOe9%FwQiEUaip\"DtJM(wO_rHM/=(HvH@G&$\"wabJ+1U@{u``EtB*FcHxP`w\\H3bx`Wsbq:bf_-UPog:\'M8kA:AtS#I.FXk8j=,`*D]1ppb!m5S*nw6=oC<@l-1Lnm[^J:{0kYY9LVNb,Jq(a>KCL9se&zhwH;0x>c_6*jfBS_hov,hUQt\"<LM#[-b6z9@uY>deSOpn[[<Uw(N9oMpsslFV`dYoLfEa?Sg3]c[\'B\\/k\\j)\"ixH:&L4ZO]k*#iwArKY`Z(K)\'&)9\'RQ#NH]%4v\'M6btGBTap7W8M_zm8f&ydg]yrS*ic6{9@rNhHh]xj0DI(\')6spYMTA(>CsHGkk\\l3Mmg>;MS?!\"&7\'Xk<\"1kXV)]*M/;y&<ArE=Bq?$-UMc2e3c(1^m3HW^X\"4&Xsajv<Z9HDXtg)/Ls.!TjCH&x_QV@wchdD^6.$`FwRmXQkN&dUZG8x*W`_AbSV9U\'XnJ_*Hms%M>.e@I1UA$)APP&');
+--enable_query_log
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+--error 0,1114
+INSERT INTO t1 SELECT * FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test
index 7b3ee45de5f..2d29cab041d 100644
--- a/mysql-test/t/archive.test
+++ b/mysql-test/t/archive.test
@@ -1289,16 +1289,6 @@ select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
select fld1,fld3 from t2 where fld1 like "25050%";
select fld1,fld3 from t2 where fld1 like "25050_";
-#
-# Test for insert after select
-#
-INSERT INTO t2 VALUES (1,000001,00,'Omaha','teethe','neat','');
-INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
-INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
-INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
-SELECT * FROM t2;
-OPTIMIZE TABLE t2;
-SELECT * FROM t2;
#
# Test rename of table
@@ -1306,14 +1296,38 @@ SELECT * FROM t2;
create table t3 engine=archive select * from t2;
select * from t3 where fld3='bonfire';
select count(*) from t3;
+# Clean up path in error message
+--replace_result $MYSQL_TEST_DIR . /var/master-data/ /
rename table t3 to t4;
select * from t4 where fld3='bonfire';
select count(*) from t4;
-
# End of 4.1 tests
#
+# Test for insert after select
+#
+INSERT INTO t2 VALUES (1,000001,00,'Omaha','teethe','neat','');
+INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
+INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
+INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
+SELECT * FROM t2;
+OPTIMIZE TABLE t2;
+SELECT * FROM t2;
+INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
+INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
+INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
+OPTIMIZE TABLE t2 EXTENDED;
+SELECT * FROM t2;
+REPAIR TABLE t2;
+SELECT * FROM t2;
+
+#
+# Test bulk inserts
+INSERT INTO t2 VALUES (1,000001,00,'Omaha','teethe','neat','') , (2,011401,37,'breaking','dreaded','Steinberg','W') , (3,011402,37,'Romans','scholastics','jarring','') , (4,011403,37,'intercepted','audiology','tinily','');
+SELECT * FROM t2;
+
+#
# For bug #12836
# Delete was allowing all rows to be removed
--error 1031
@@ -1327,4 +1341,53 @@ SELECT * FROM t2;
TRUNCATE TABLE t2;
SELECT * FROM t2;
+# Adding support for CHECK table
+CHECK TABLE t2;
+SELECT * FROM t2;
+
+# Test INSERT DELAYED and wait until the table has one more record
+SELECT COUNT(auto) FROM t2;
+INSERT DELAYED INTO t2 VALUES (99999,011403,37,'the','delayed','insert','');
+
+# Insert another record since in Archive delayed values are only
+# guaranteed to materialize based on either:
+# 1) A new row showing up from a normal insert
+# 2) A flush table has occurred.
+INSERT INTO t2 VALUES (100000,000001,00,'after','delayed','insert','');
+
+# Wait for the delayed insert to appear
+while (`SELECT COUNT(auto)!=1215 FROM t2`)
+{
+ sleep 0.1;
+}
+SELECT COUNT(auto) FROM t2;
+
+# Adding test for alter table
+ALTER TABLE t2 DROP COLUMN fld6;
+SHOW CREATE TABLE t2;
+SELECT * from t2 WHERE auto != 100000;
+#
+# Cleanup, test is over
+#
+
+
drop table t1, t2, t4;
+
+#
+# BUG#26138 - REPAIR TABLE with option USE_FRM erases all records in ARCHIVE
+# table
+#
+create table t1 (i int) engine=archive;
+insert into t1 values (1);
+repair table t1 use_frm;
+select * from t1;
+drop table t1;
+
+#
+# BUG#29207 - archive table reported as corrupt by check table
+#
+create table t1(a longblob) engine=archive;
+insert into t1 set a='';
+insert into t1 set a='a';
+check table t1 extended;
+drop table t1;
diff --git a/mysql-test/t/archive_gis.test b/mysql-test/t/archive_gis.test
new file mode 100644
index 00000000000..ffbad923173
--- /dev/null
+++ b/mysql-test/t/archive_gis.test
@@ -0,0 +1,3 @@
+--source include/have_archive.inc
+SET storage_engine=archive;
+--source include/gis_generic.inc
diff --git a/mysql-test/t/auto_increment.test b/mysql-test/t/auto_increment.test
index 37b92b32bfb..5d22bdd46a0 100644
--- a/mysql-test/t/auto_increment.test
+++ b/mysql-test/t/auto_increment.test
@@ -256,3 +256,39 @@ select * from t2;
drop table t1, t2;
--echo End of 4.1 tests
+
+#
+# Bug #11080 & #11005 Multi-row REPLACE fails on a duplicate key error
+#
+
+CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`));
+insert into t1 (b) values (1);
+replace into t1 (b) values (2), (1), (3);
+select * from t1;
+truncate table t1;
+insert into t1 (b) values (1);
+replace into t1 (b) values (2);
+replace into t1 (b) values (1);
+replace into t1 (b) values (3);
+select * from t1;
+drop table t1;
+
+create table t1 (rowid int not null auto_increment, val int not null,primary
+key (rowid), unique(val));
+replace into t1 (val) values ('1'),('2');
+replace into t1 (val) values ('1'),('2');
+--error 1062
+insert into t1 (val) values ('1'),('2');
+select * from t1;
+drop table t1;
+
+#
+# Test that update changes internal auto-increment value
+#
+
+create table t1 (a int not null auto_increment primary key, val int);
+insert into t1 (val) values (1);
+update t1 set a=2 where a=1;
+insert into t1 (val) values (1);
+select * from t1;
+drop table t1;
diff --git a/mysql-test/t/backup-master.sh b/mysql-test/t/backup-master.sh
index 99da5857afe..c099064f6b7 100755
--- a/mysql-test/t/backup-master.sh
+++ b/mysql-test/t/backup-master.sh
@@ -1,5 +1,5 @@
#!/bin/sh
if [ "$MYSQL_TEST_DIR" ]
then
- rm -f $MYSQL_TEST_DIR/var/tmp/*.frm $MYSQL_TEST_DIR/var/tmp/*.MY?
+ rm -f $MYSQLTEST_VARDIR/tmp/*.frm $MYSQLTEST_VARDIR/tmp/*.MY?
fi
diff --git a/mysql-test/t/backup.test b/mysql-test/t/backup.test
index 0f1881368a9..b05eef6a3ad 100644
--- a/mysql-test/t/backup.test
+++ b/mysql-test/t/backup.test
@@ -1,3 +1,8 @@
+
+# The server need to be started in $MYSQLTEST_VARDIR since it
+# uses ../std_data_ln/
+-- source include/uses_vardir.inc
+
#
# This test is a bit tricky as we can't use backup table to overwrite an old
# table
@@ -10,10 +15,10 @@ set SQL_LOG_BIN=0;
drop table if exists t1, t2, t3;
--enable_warnings
create table t4(n int);
---replace_result "errno: 1" "errno: X" "errno: 2" "errno: X" "errno: 22" "errno: X" "errno: 23" "errno: X"
+--replace_result ": 1" ": X" ": 2" ": X" ": 22" ": X" ": 23" ": X" $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
backup table t4 to '../bogus';
backup table t4 to '../tmp';
---replace_result "errno: 7" "errno: X" "errno: 17" "errno: X"
+--replace_result ": 7" ": X" ": 17" ": X" $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
backup table t4 to '../tmp';
drop table t4;
restore table t4 from '../tmp';
@@ -23,6 +28,7 @@ create table t1(n int);
insert into t1 values (23),(45),(67);
backup table t1 to '../tmp';
drop table t1;
+--replace_result ": 1" ": X" ": 2" ": X" ": 22" ": X" ": 23" ": X" $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
restore table t1 from '../bogus';
restore table t1 from '../tmp';
select n from t1;
@@ -51,6 +57,15 @@ 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
diff --git a/mysql-test/t/bdb.test b/mysql-test/t/bdb.test
index de9709b97ad..d017d91bfb1 100644
--- a/mysql-test/t/bdb.test
+++ b/mysql-test/t/bdb.test
@@ -42,8 +42,13 @@ update ignore t1 set id=id+1; # This will change all rows
select * from t1;
update ignore t1 set id=1023 where id=1010;
select * from t1 where parent_id=102 order by parent_id,id;
+# Here and below the differences in result are caused by difference in
+# floating point calculations performed in BDB handler.
+--replace_result 5 X 6 X
explain select level from t1 where level=1;
+--replace_result 5 X 6 X
explain select level,id from t1 where level=1;
+--replace_result 5 X 6 X
explain select level,id,parent_id from t1 where level=1;
select level,id from t1 where level=1;
select level,id,parent_id from t1 where level=1;
@@ -349,6 +354,7 @@ update ignore t1 set id=id+1; # This will change all rows
select * from t1;
update ignore t1 set id=1023 where id=1010;
select * from t1 where parent_id=102;
+--replace_result 5 X 6 X
explain select level from t1 where level=1;
select level,id from t1 where level=1;
select level,id,parent_id from t1 where level=1;
@@ -395,6 +401,7 @@ set @a:=now();
CREATE TABLE t1 (a int not null, b timestamp not null, primary key (a)) engine=bdb;
insert into t1 (a) values(1),(2),(3);
select t1.a from t1 natural join t1 as t2 where t1.b >= @a order by t1.a;
+select a from t1 natural join t1 as t2 where b >= @a order by a;
update t1 set a=5 where a=1;
select a from t1;
drop table t1;
@@ -824,7 +831,7 @@ select a from t1;
drop table t1;
#
-# bug#2686 - index_merge select on BerkeleyDB table with varchar PK causes mysqld to crash
+# bug#2686 - index_merge select on BerkeleyDB table with varchar PK crashes
#
create table t1(
@@ -842,7 +849,8 @@ select substring(pk1, 1, 4), substring(pk1, 4001),
drop table t1;
#
-# bug#2688 - Wrong index_merge query results for BDB table with variable length primary key
+# bug#2688 - Wrong index_merge query results for BDB table with
+# variable length primary key
#
create table t1 (
@@ -949,3 +957,66 @@ select count(*) from t1;
drop table t1, t2;
--echo End of 4.1 tests
+
+#
+# alter temp table
+#
+create temporary table t1 (a int, primary key(a)) engine=bdb;
+select * from t1;
+alter table t1 add b int;
+select * from t1;
+drop table t1;
+
+
+#
+# Test varchar
+#
+
+let $default=`select @@storage_engine`;
+set storage_engine=bdb;
+source include/varchar.inc;
+
+#
+# Some errors/warnings on create
+#
+
+--replace_result 1024 MAX_KEY_LENGTH 3072 MAX_KEY_LENGTH
+create table t1 (v varchar(65530), key(v));
+drop table if exists t1;
+create table t1 (v varchar(65536));
+show create table t1;
+drop table t1;
+create table t1 (v varchar(65530) character set utf8);
+show create table t1;
+drop table t1;
+
+# End varchar test
+eval set storage_engine=$default;
+
+#
+# Test that we can create a large key
+#
+create table t1 (a varchar(255) character set utf8,
+ b varchar(255) character set utf8,
+ c varchar(255) character set utf8,
+ d varchar(255) character set utf8,
+ key (a,b,c,d)) engine=bdb;
+drop table t1;
+--error ER_TOO_LONG_KEY
+create table t1 (a varchar(255) character set utf8,
+ b varchar(255) character set utf8,
+ c varchar(255) character set utf8,
+ d varchar(255) character set utf8,
+ e varchar(255) character set utf8,
+ key (a,b,c,d,e)) engine=bdb;
+
+#
+# Bug #14212: Server crash after COMMIT + ALTER TABLE
+#
+set autocommit=0;
+create table t1 (a int) engine=bdb;
+commit;
+alter table t1 add primary key(a);
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/bdb_gis.test b/mysql-test/t/bdb_gis.test
new file mode 100644
index 00000000000..cb6d0683874
--- /dev/null
+++ b/mysql-test/t/bdb_gis.test
@@ -0,0 +1,4 @@
+-- source include/have_bdb.inc
+SET storage_engine=bdb;
+--source include/gis_generic.inc
+--source include/gis_keys.inc
diff --git a/mysql-test/t/bdb_notembedded.test b/mysql-test/t/bdb_notembedded.test
new file mode 100644
index 00000000000..24e64ebbfb2
--- /dev/null
+++ b/mysql-test/t/bdb_notembedded.test
@@ -0,0 +1,38 @@
+-- source include/not_embedded.inc
+-- source include/have_bdb.inc
+
+#
+# Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode
+#
+set autocommit=1;
+
+let $VERSION=`select version()`;
+
+reset master;
+create table bug16206 (a int);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+--replace_result $VERSION VERSION
+--replace_column 1 f 2 n 5 n
+show binlog events;
+drop table bug16206;
+
+reset master;
+create table bug16206 (a int) engine= bdb;
+insert into bug16206 values(0);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+insert into bug16206 values(3);
+--replace_result $VERSION VERSION
+--replace_column 1 f 2 n 5 n
+show binlog events;
+drop table bug16206;
+
+set autocommit=0;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/bigint.test b/mysql-test/t/bigint.test
index 8a238d33e08..002dfad9981 100644
--- a/mysql-test/t/bigint.test
+++ b/mysql-test/t/bigint.test
@@ -2,7 +2,7 @@
# Initialize
--disable_warnings
-drop table if exists t1;
+drop table if exists t1, t2;
--enable_warnings
#
@@ -35,21 +35,27 @@ drop table t1;
create table t1 ( a int not null default 1, big bigint );
insert into t1 (big) values (-1),(12345678901234567),(9223372036854775807),(18446744073709551615);
+select * from t1;
select min(big),max(big),max(big)-1 from t1;
select min(big),max(big),max(big)-1 from t1 group by a;
alter table t1 modify big bigint unsigned not null;
select min(big),max(big),max(big)-1 from t1;
select min(big),max(big),max(big)-1 from t1 group by a;
+insert into t1 (big) values (18446744073709551615);
+select * from t1;
+select min(big),max(big),max(big)-1 from t1;
+select min(big),max(big),max(big)-1 from t1 group by a;
alter table t1 add key (big);
select min(big),max(big),max(big)-1 from t1;
select min(big),max(big),max(big)-1 from t1 group by a;
alter table t1 modify big bigint not null;
+select * from t1;
select min(big),max(big),max(big)-1 from t1;
select min(big),max(big),max(big)-1 from t1 group by a;
drop table t1;
#
-# Test problem with big values fir auto_increment
+# Test problem with big values for auto_increment
#
create table t1 (id bigint auto_increment primary key, a int) auto_increment=9999999999;
@@ -108,3 +114,199 @@ t2.value64=t1.value64;
drop table t1, t2;
# End of 4.1 tests
+
+#
+# Test of CREATE ... SELECT and unsigned integers
+#
+
+create table t1 select 1 as 'a';
+show create table t1;
+drop table t1;
+create table t1 select 9223372036854775809 as 'a';
+show create table t1;
+select * from t1;
+drop table t1;
+DROP DATABASE IF EXISTS `scott`;
+
+
+#
+# Check various conversions from/to unsigned bigint.
+#
+
+create table t1 (a char(100), b varchar(100), c text, d blob);
+insert into t1 values(
+ 18446744073709551615,18446744073709551615,
+ 18446744073709551615, 18446744073709551615
+);
+
+insert into t1 values (-1 | 0,-1 | 0,-1 | 0 ,-1 | 0);
+select * from t1;
+drop table t1;
+
+create table t1 ( quantity decimal(2) unsigned);
+insert into t1 values (500), (-500), (~0), (-1);
+select * from t1;
+drop table t1;
+
+#
+# Test of storing decimal values in BIGINT range
+# (Bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0))
+#
+
+CREATE TABLE t1 (
+ `col1` INT(1) NULL,
+ `col2` INT(2) NULL,
+ `col3` INT(3) NULL,
+ `col4` INT(4) NULL,
+ `col5` INT(5) NULL,
+ `col6` INT(6) NULL,
+ `col7` INT(7) NULL,
+ `col8` INT(8) NULL,
+ `col9` INT(9) NULL,
+ `col10` BIGINT(10) NULL,
+ `col11` BIGINT(11) NULL,
+ `col12` BIGINT(12) NULL,
+ `col13` BIGINT(13) NULL,
+ `col14` BIGINT(14) NULL,
+ `col15` BIGINT(15) NULL,
+ `col16` BIGINT(16) NULL,
+ `col17` BIGINT(17) NULL,
+ `col18` BIGINT(18) NULL,
+ `col19` DECIMAL(19, 0) NULL,
+ `col20` DECIMAL(20, 0) NULL,
+ `col21` DECIMAL(21, 0) NULL,
+ `col22` DECIMAL(22, 0) NULL,
+ `col23` DECIMAL(23, 0) NULL,
+ `col24` DECIMAL(24, 0) NULL,
+ `col25` DECIMAL(25, 0) NULL,
+ `col26` DECIMAL(26, 0) NULL,
+ `col27` DECIMAL(27, 0) NULL,
+ `col28` DECIMAL(28, 0) NULL,
+ `col29` DECIMAL(29, 0) NULL,
+ `col30` DECIMAL(30, 0) NULL,
+ `col31` DECIMAL(31, 0) NULL,
+ `col32` DECIMAL(32, 0) NULL,
+ `col33` DECIMAL(33, 0) NULL,
+ `col34` DECIMAL(34, 0) NULL,
+ `col35` DECIMAL(35, 0) NULL,
+ `col36` DECIMAL(36, 0) NULL,
+ `col37` DECIMAL(37, 0) NULL,
+ `col38` DECIMAL(38, 0) NULL,
+ `fix1` DECIMAL(38, 1) NULL,
+ `fix2` DECIMAL(38, 2) NULL,
+ `fix3` DECIMAL(38, 3) NULL,
+ `fix4` DECIMAL(38, 4) NULL,
+ `fix5` DECIMAL(38, 5) NULL,
+ `fix6` DECIMAL(38, 6) NULL,
+ `fix7` DECIMAL(38, 7) NULL,
+ `fix8` DECIMAL(38, 8) NULL,
+ `fix9` DECIMAL(38, 9) NULL,
+ `fix10` DECIMAL(38, 10) NULL,
+ `fix11` DECIMAL(38, 11) NULL,
+ `fix12` DECIMAL(38, 12) NULL,
+ `fix13` DECIMAL(38, 13) NULL,
+ `fix14` DECIMAL(38, 14) NULL,
+ `fix15` DECIMAL(38, 15) NULL,
+ `fix16` DECIMAL(38, 16) NULL,
+ `fix17` DECIMAL(38, 17) NULL,
+ `fix18` DECIMAL(38, 18) NULL,
+ `fix19` DECIMAL(38, 19) NULL,
+ `fix20` DECIMAL(38, 20) NULL,
+ `fix21` DECIMAL(38, 21) NULL,
+ `fix22` DECIMAL(38, 22) NULL,
+ `fix23` DECIMAL(38, 23) NULL,
+ `fix24` DECIMAL(38, 24) NULL,
+ `fix25` DECIMAL(38, 25) NULL,
+ `fix26` DECIMAL(38, 26) NULL,
+ `fix27` DECIMAL(38, 27) NULL,
+ `fix28` DECIMAL(38, 28) NULL,
+ `fix29` DECIMAL(38, 29) NULL,
+ `fix30` DECIMAL(38, 30) NULL
+);
+
+INSERT INTO t1(`col1`, `col2`, `col3`, `col4`, `col5`, `col6`, `col7`, `col8`, `col9`, `col10`, `col11`, `col12`, `col13`, `col14`, `col15`, `col16`, `col17`, `col18`, `col19`, `col20`, `col21`, `col22`, `col23`, `col24`, `col25`, `col26`, `col27`, `col28`, `col29`, `col30`, `col31`, `col32`, `col33`, `col34`, `col35`, `col36`, `col37`, `col38`, `fix1`, `fix2`, `fix3`, `fix4`, `fix5`, `fix6`, `fix7`, `fix8`, `fix9`, `fix10`, `fix11`, `fix12`, `fix13`, `fix14`, `fix15`, `fix16`, `fix17`, `fix18`, `fix19`, `fix20`, `fix21`, `fix22`, `fix23`, `fix24`, `fix25`, `fix26`, `fix27`, `fix28`, `fix29`, `fix30`)
+VALUES (9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999,
+9999999999, 99999999999, 999999999999, 9999999999999, 99999999999999,
+999999999999999, 9999999999999999, 99999999999999999, 999999999999999999,
+9999999999999999999, 99999999999999999999, 999999999999999999999,
+9999999999999999999999, 99999999999999999999999, 999999999999999999999999,
+9999999999999999999999999, 99999999999999999999999999,
+999999999999999999999999999, 9999999999999999999999999999,
+99999999999999999999999999999, 999999999999999999999999999999,
+9999999999999999999999999999999, 99999999999999999999999999999999,
+999999999999999999999999999999999, 9999999999999999999999999999999999,
+99999999999999999999999999999999999, 999999999999999999999999999999999999,
+9999999999999999999999999999999999999, 99999999999999999999999999999999999999,
+9999999999999999999999999999999999999.9,
+999999999999999999999999999999999999.99,
+99999999999999999999999999999999999.999,
+9999999999999999999999999999999999.9999,
+999999999999999999999999999999999.99999,
+99999999999999999999999999999999.999999,
+9999999999999999999999999999999.9999999,
+999999999999999999999999999999.99999999,
+99999999999999999999999999999.999999999,
+9999999999999999999999999999.9999999999,
+999999999999999999999999999.99999999999,
+99999999999999999999999999.999999999999,
+9999999999999999999999999.9999999999999,
+999999999999999999999999.99999999999999,
+99999999999999999999999.999999999999999,
+9999999999999999999999.9999999999999999,
+999999999999999999999.99999999999999999,
+99999999999999999999.999999999999999999,
+9999999999999999999.9999999999999999999,
+999999999999999999.99999999999999999999,
+99999999999999999.999999999999999999999,
+9999999999999999.9999999999999999999999,
+999999999999999.99999999999999999999999,
+99999999999999.999999999999999999999999,
+9999999999999.9999999999999999999999999,
+999999999999.99999999999999999999999999,
+99999999999.999999999999999999999999999,
+9999999999.9999999999999999999999999999,
+999999999.99999999999999999999999999999,
+99999999.999999999999999999999999999999);
+
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#bug #9088 BIGINT WHERE CLAUSE
+create table t1 (bigint_col bigint unsigned);
+insert into t1 values (17666000000000000000);
+select * from t1 where bigint_col=17666000000000000000;
+select * from t1 where bigint_col='17666000000000000000';
+drop table t1;
+
+--echo
+--echo bug 19955 -- mod is signed with bigint
+
+select cast(10000002383263201056 as unsigned) mod 50 as result;
+
+create table t1 (c1 bigint unsigned);
+insert into t1 values (10000002383263201056);
+select c1 mod 50 as result from t1;
+drop table t1;
+
+#
+# Bug #8663 cant use bgint unsigned as input to cast
+#
+
+select cast(19999999999999999999 as signed);
+select cast(-19999999999999999999 as signed);
+
+#
+# Bug #28625: -9223372036854775808 doesn't fit in BIGINT.
+#
+
+# PS protocol gives different metadata for `Max length' column
+--disable_ps_protocol
+--enable_metadata
+select -9223372036854775808;
+select -(9223372036854775808);
+select -((9223372036854775808));
+select -(-(9223372036854775808));
+--disable_metadata
+--enable_ps_protocol
+select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
+select -(-9223372036854775808), -(-(-9223372036854775808));
diff --git a/mysql-test/t/binary.test b/mysql-test/t/binary.test
index 02773b32302..1cc6ae07675 100644
--- a/mysql-test/t/binary.test
+++ b/mysql-test/t/binary.test
@@ -56,7 +56,7 @@ drop table t1;
#
# Test of binary and upper/lower
#
-create table t1 (a char(15) binary, b binary(15));
+create table t1 (a char(3) binary, b binary(3));
insert into t1 values ('aaa','bbb'),('AAA','BBB');
select upper(a),upper(b) from t1;
select lower(a),lower(b) from t1;
@@ -89,3 +89,53 @@ show create table t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug#16857
+#
+create table t1 (col1 binary(4));
+insert into t1 values ('a'),('a ');
+select hex(col1) from t1;
+alter table t1 modify col1 binary(10);
+select hex(col1) from t1;
+insert into t1 values ('b'),('b ');
+select hex(col1) from t1;
+drop table t1;
+
+#
+# Bug #29087: assertion abort for a search in a BINARY non-nullable index
+# by a key with trailing spaces
+#
+
+CREATE TABLE t1 (
+ a binary(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+ index idx(a)
+);
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029087575');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+INSERT INTO t1 SET a=unhex('1F9480179366F2BF567E1C4B964C1EF029080707');
+
+SELECT hex(a) FROM t1 order by a;
+EXPLAIN SELECT hex(a) FROM t1 order by a;
+
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+EXPLAIN
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF029082020');
+
+SELECT hex(a) from t1 WHERE a=unhex('1F9480179366F2BF567E1C4B964C1EF02908');
+
+DROP TABLE t1;
+
+CREATE TABLE t1 (
+ id numeric(20) NOT NULL,
+ lang varchar(8) NOT NULL,
+ msg varchar(32) NOT NULL,
+ PRIMARY KEY (id,lang)
+);
+INSERT INTO t1 VALUES (33, 'en', 'zzzzzzz');
+INSERT INTO t1 VALUES (31, 'en', 'xxxxxxx');
+INSERT INTO t1 VALUES (32, 'en', 'yyyyyyy');
+SELECT * FROM t1 WHERE id=32;
+
+DROP TABLE t1;
+
diff --git a/mysql-test/t/binlog-master.opt b/mysql-test/t/binlog-master.opt
new file mode 100644
index 00000000000..ad2c6a647b5
--- /dev/null
+++ b/mysql-test/t/binlog-master.opt
@@ -0,0 +1 @@
+-O max_binlog_size=4096
diff --git a/mysql-test/t/binlog.test b/mysql-test/t/binlog.test
new file mode 100644
index 00000000000..5d1399925c3
--- /dev/null
+++ b/mysql-test/t/binlog.test
@@ -0,0 +1,109 @@
+#
+# misc binlogging tests that do not require a slave running
+#
+-- source include/have_log_bin.inc
+-- source include/not_embedded.inc
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+reset master;
+
+create table t1 (a int) engine=innodb;
+create table t2 (a int) engine=innodb;
+begin;
+insert t1 values (5);
+commit;
+begin;
+insert t2 values (5);
+commit;
+# first COMMIT must be Query_log_event, second - Xid_log_event
+--replace_column 2 # 5 #
+--replace_regex /\/\* xid=.* \*\//\/* XID *\//
+show binlog events from 98;
+drop table t1,t2;
+
+#
+# binlog rotation after one big transaction
+#
+reset master;
+let $1=100;
+
+create table t1 (n int) engine=innodb;
+begin;
+--disable_query_log
+while ($1)
+{
+ eval insert into t1 values($1 + 4);
+ dec $1;
+}
+--enable_query_log
+commit;
+drop table t1;
+--replace_column 2 # 5 #
+--replace_regex /\/\* xid=.* \*\//\/* XID *\//
+show binlog events in 'master-bin.000001' from 98;
+--replace_column 2 # 5 #
+show binlog events in 'master-bin.000002' from 98;
+
+#
+# Bug#22540 - Incorrect value in column End_log_pos of
+# SHOW BINLOG EVENTS using InnoDB
+#
+
+# the following tests will show that certain queries now return
+# absolute offsets (from binlog start, rather than relative to
+# the beginning of the current transaction). under what
+# conditions it should be allowed / is sensible to put the
+# slider into the middle of a transaction is not our concern
+# here; we just guarantee that if and when it's done, the
+# user has valid offsets to use. if the setter function still
+# wants to throw a "positioning into middle of transaction"
+# warning, that's its prerogative and handled elsewhere.
+
+set @ac = @@autocommit;
+
+# first show this to work for SHOW BINLOG EVENTS
+
+set autocommit= 0;
+reset master;
+create table t1(n int) engine=innodb;
+begin;
+insert into t1 values (1);
+insert into t1 values (2);
+insert into t1 values (3);
+commit;
+drop table t1;
+--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
+show binlog events from 0;
+
+# now show that nothing breaks if we need to read from the cache more
+# than once, resulting in split event-headers
+
+set @bcs = @@binlog_cache_size;
+set global binlog_cache_size=4096;
+reset master;
+
+create table t1 (a int) engine=innodb;
+
+let $1=400;
+disable_query_log;
+begin;
+while ($1)
+{
+ eval insert into t1 values( $1 );
+ dec $1;
+}
+commit;
+enable_query_log;
+
+--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
+show binlog events from 0;
+
+drop table t1;
+
+set global binlog_cache_size=@bcs;
+set session autocommit = @ac;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/binlog_innodb.test b/mysql-test/t/binlog_innodb.test
new file mode 100644
index 00000000000..2da7b2b0895
--- /dev/null
+++ b/mysql-test/t/binlog_innodb.test
@@ -0,0 +1,39 @@
+-- source include/have_innodb.inc
+-- source include/have_log_bin.inc
+
+
+#
+# Let us test binlog_cache_use and binlog_cache_disk_use status vars.
+# Actually this test has nothing to do with innodb per se, it just requires
+# transactional table.
+#
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+
+create table t1 (a int) engine=innodb;
+
+# Now we are going to create transaction which is long enough so its
+# transaction binlog will be flushed to disk...
+let $1=2000;
+disable_query_log;
+begin;
+while ($1)
+{
+ eval insert into t1 values( $1 );
+ dec $1;
+}
+commit;
+enable_query_log;
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+
+# Transaction which should not be flushed to disk and so should not
+# increase binlog_cache_disk_use.
+begin;
+delete from t1;
+commit;
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+drop table t1;
+
+
diff --git a/mysql-test/t/binlog_killed.test b/mysql-test/t/binlog_killed.test
new file mode 100644
index 00000000000..034895f17cb
--- /dev/null
+++ b/mysql-test/t/binlog_killed.test
@@ -0,0 +1,248 @@
+-- source include/have_innodb.inc
+--source include/not_embedded.inc
+--source include/have_log_bin.inc
+
+###
+### bug#22725 : incorrect killed error in binlogged query
+###
+
+connect (con1, localhost, root,,);
+connect (con2, localhost, root,,);
+
+create table t1 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
+create table t2 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=MyISAM;
+create table t3 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
+
+#
+# effective test for bug#22725
+#
+
+connection con1;
+select get_lock("a", 20);
+
+connection con2;
+let $ID= `select connection_id()`;
+reset master;
+send insert into t2 values (null, null), (null, get_lock("a", 10));
+
+
+connection con1;
+
+disable_abort_on_error;
+disable_query_log;
+disable_result_log;
+
+eval kill query $ID;
+
+connection con2;
+--error 0,ER_QUERY_INTERRUPTED
+reap;
+let $rows= `select count(*) from t2 /* must be 2 or 0 */`;
+
+--exec $MYSQL_BINLOG --start-position=126 $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval select
+(@a:=load_file("$MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog"))
+is not null;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+let $error_code= `select @a like "%#%error_code=0%" /* must return 1 or 0*/`;
+let $insert_binlogged= `select @a like "%insert into%" /* must return 1 or 0 */`;
+eval set @result= $rows- $error_code - $insert_binlogged;
+
+enable_abort_on_error;
+enable_query_log;
+enable_result_log;
+
+select @result /* must be zero either way */;
+
+# the functions are either *insensitive* to killing or killing can cause
+# strange problmes with the error propagation out of SF's stack
+# Bug#27563, Bug#27565, BUG#24971
+#
+# TODO: use if's block as regression test for the bugs or remove
+#
+if (0)
+{
+delimiter |;
+create function bug27563()
+RETURNS int(11)
+DETERMINISTIC
+begin
+ select get_lock("a", 10) into @a;
+ return 1;
+end|
+delimiter ;|
+
+# the function is sensitive to killing requiring innodb though with wrong client error
+# TO FIX in BUG#27565; TODO: remove --error 1105 afterwards
+delimiter |;
+create function bug27565()
+RETURNS int(11)
+DETERMINISTIC
+begin
+ select a from t1 where a=1 into @a for update;
+ return 1;
+end|
+delimiter ;|
+
+reset master;
+
+
+### ta table case: killing causes rollback
+
+# A. autocommit ON
+connection con1;
+select get_lock("a", 20);
+
+connection con2;
+let $ID= `select connection_id()`;
+send insert into t1 values (bug27563(),1);
+
+connection con1;
+eval kill query $ID;
+
+connection con2;
+# todo (re-record test): after bugs 27563,27565 got fixed affected rows will report zero
+--enable_info
+# todo: remove 0 return after fixing Bug#27563
+--error 0,ER_QUERY_INTERRUPTED
+reap; ### pb: wrong error
+--disable_info
+###--replace_column 2 # 5 #
+### show binlog events from 98 /* nothing in binlog unless Bug#27563 */;
+show master status /* must be only FD event unless Bug#27563 */;
+select count(*) from t1 /* must be zero unless Bug#27563 */;
+
+# M. multi-statement-ta
+connection con2;
+let $ID= `select connection_id()`;
+begin;
+send insert into t1 values (bug27563(),1);
+
+connection con1;
+eval kill query $ID;
+connection con2;
+# todo (re-record test): after bugs 27563,27565 got fixed affected rows will report zero
+--enable_info
+# todo: remove 0 return after fixing Bug#27563
+--error 0,ER_QUERY_INTERRUPTED
+reap;
+--disable_info
+select count(*) from t1 /* must be zero unless Bug#27563 */;
+commit;
+
+
+### non-ta table case: killing must be recorded in binlog
+
+reset master;
+
+connection con2;
+let $ID= `select connection_id()`;
+send insert into t2 values (bug27563(),1);
+
+connection con1;
+eval kill query $ID;
+
+connection con2;
+# todo: remove 0 return after fixing Bug#27563
+--error 0,ER_QUERY_INTERRUPTED
+reap;
+select count(*) from t2 /* must be one */;
+#show binlog events from 98 /* must have the insert on non-ta table */;
+show master status /* must have the insert event more to FD */;
+# the value of the error flag of KILLED_QUERY is tested further
+
+connection con1;
+select RELEASE_LOCK("a");
+
+### test with effective killing of SF()
+
+delete from t1;
+delete from t2;
+insert into t1 values (1,1);
+insert into t2 values (1,1);
+
+#
+# Bug#27565
+# test where KILL is propagated as error to the top level
+# still another bug with the error message to the user
+# todo: fix reexecute the result file after fixing
+#
+begin; update t1 set b=0 where a=1;
+
+connection con2;
+let $ID= `select connection_id()`;
+send update t2 set b=bug27565()-1 where a=1;
+
+connection con1;
+eval kill query $ID;
+commit;
+
+connection con2;
+# todo: fix Bug #27565 killed query of SF() is not reported correctly and
+# remove 1105 (wrong)
+#--error ER_QUERY_INTERRUPTED
+--error 1105,ER_QUERY_INTERRUPTED
+reap; ### pb: wrong error
+select * from t1 /* must be: (1,0) */;
+select * from t2 /* must be as before: (1,1) */;
+
+## bug#22725 with effective and propagating killing
+#
+# top-level ta-table
+connection con1;
+delete from t3;
+reset master;
+begin; update t1 set b=0 where a=1;
+
+connection con2;
+let $ID= `select connection_id()`;
+# the query won't perform completely since the function gets interrupted
+send insert into t3 values (0,0),(1,bug27565());
+
+connection con1;
+eval kill query $ID;
+rollback;
+
+connection con2;
+# todo: fix Bug #27565 killed query of SF() is not reported correctly and
+# remove 1105 (wrong)
+#--error ER_QUERY_INTERRUPTED
+--error 1105,ER_QUERY_INTERRUPTED
+reap; ### pb: wrong error
+select count(*) from t3 /* must be zero */;
+show master status /* nothing in binlog */;
+
+# top-level non-ta-table
+connection con1;
+delete from t2;
+reset master;
+begin; update t1 set b=0 where a=1;
+
+connection con2;
+let $ID= `select connection_id()`;
+# the query won't perform completely since the function gets intrurrupted
+send insert into t2 values (0,0),(1,bug27565()) /* non-ta t2 */;
+
+connection con1;
+eval kill query $ID;
+rollback;
+
+connection con2;
+# todo: fix Bug #27565 killed query of SF() is not reported correctly and
+# remove 1105 (wrong)
+#--error ER_QUERY_INTERRUPTED
+--error 1105,ER_QUERY_INTERRUPTED
+reap; ### pb: wrong error
+
+select count(*) from t2 /* count must be one */;
+show master status /* insert into non-ta must be in binlog */;
+
+drop function bug27563;
+drop function bug27565;
+}
+
+system rm $MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog ;
+
+drop table t1,t2,t3;
+
diff --git a/mysql-test/t/blackhole.test b/mysql-test/t/blackhole.test
index 4375f1c13ce..d8ffdeb8312 100644
--- a/mysql-test/t/blackhole.test
+++ b/mysql-test/t/blackhole.test
@@ -2,7 +2,13 @@
# Simple test for blackhole example
# Taken from the select test
#
+-- source include/not_embedded.inc
-- source include/have_blackhole.inc
+-- source include/have_log_bin.inc
+
+# The server need to be started in $MYSQLTEST_VARDIR since it
+# uses ../std_data_ln/
+-- source include/uses_vardir.inc
--disable_warnings
drop table if exists t1,t2;
@@ -108,7 +114,7 @@ insert into t1 values(1);
insert ignore into t1 values(1);
replace into t1 values(100);
create table t2 (a varchar(200)) engine=blackhole;
-load data infile '../../std_data/words.dat' into table t2;
+eval load data infile '../std_data_ln/words.dat' into table t2;
alter table t1 add b int;
alter table t1 drop b;
create table t3 like t1;
@@ -136,3 +142,20 @@ INSERT DELAYED INTO t1 VALUES(1);
DROP TABLE t1;
# End of 4.1 tests
+
+#
+#Bug#19717: DELETE Query Error on BLACKHOLE when using WHERE on column with UNIQUE INDEX
+#
+CREATE TABLE t1(a INT, b INT) ENGINE=BLACKHOLE;
+DELETE FROM t1 WHERE a=10;
+ALTER TABLE t1 ADD INDEX(a);
+DELETE FROM t1 WHERE a=10;
+ALTER TABLE t1 DROP INDEX a;
+ALTER TABLE t1 ADD UNIQUE INDEX(a);
+DELETE FROM t1 WHERE a=10;
+ALTER TABLE t1 DROP INDEX a;
+ALTER TABLE t1 ADD PRIMARY KEY(a);
+DELETE FROM t1 WHERE a=10;
+DROP TABLE t1;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/bool.test b/mysql-test/t/bool.test
index 67b9eeaeb94..34c51c648d3 100644
--- a/mysql-test/t/bool.test
+++ b/mysql-test/t/bool.test
@@ -20,6 +20,16 @@ SELECT * FROM t1 where (1 AND a)=0;
SELECT * FROM t1 where (1 AND a)=1;
SELECT * FROM t1 where (1 AND a) IS NULL;
+# WL#638 - Behaviour of NOT does not follow SQL specification
+set sql_mode='high_not_precedence';
+select * from t1 where not a between 2 and 3;
+set sql_mode=default;
+select * from t1 where not a between 2 and 3;
+
+# SQL boolean tests
+select a, a is false, a is true, a is unknown from t1;
+select a, a is not false, a is not true, a is not unknown from t1;
+
# Verify that NULL optimisation works in AND clause:
SET @a=0, @b=0;
SELECT * FROM t1 WHERE NULL AND (@a:=@a+1);
diff --git a/mysql-test/t/bootstrap.test b/mysql-test/t/bootstrap.test
new file mode 100644
index 00000000000..203ba9b2914
--- /dev/null
+++ b/mysql-test/t/bootstrap.test
@@ -0,0 +1,49 @@
+#
+# test mysqld in bootstrap mode
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+
+#
+# Check that --bootstrap reads from stdin
+#
+--write_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql
+use test;
+CREATE TABLE t1(a int);
+EOF
+--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
+#
+--write_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql
+use test;
+CREATE TABLE t1;
+EOF
+--error 1
+--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
+# 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
+#
+set @my_max_allowed_packet= @@max_allowed_packet;
+set global max_allowed_packet=100*@@max_allowed_packet;
+--disable_query_log
+create table t1 select 2 as a, concat(repeat('MySQL', @@max_allowed_packet/10), ';') as b;
+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/case.test b/mysql-test/t/case.test
index fd1b6e5247f..0e9e141f6d8 100644
--- a/mysql-test/t/case.test
+++ b/mysql-test/t/case.test
@@ -58,7 +58,10 @@ CREATE TABLE t1 SELECT
CASE WHEN 1 THEN 1.0 ELSE 'a' END AS c6,
CASE WHEN 1 THEN 1 ELSE 1.0 END AS c7,
CASE WHEN 1 THEN 1.0 ELSE 1 END AS c8,
- CASE WHEN 1 THEN 1.0 END AS c9
+ CASE WHEN 1 THEN 1.0 END AS c9,
+ CASE WHEN 1 THEN 0.1e1 else 0.1 END AS c10,
+ CASE WHEN 1 THEN 0.1e1 else 1 END AS c11,
+ CASE WHEN 1 THEN 0.1e1 else '1' END AS c12
;
SHOW CREATE TABLE t1;
DROP TABLE t1;
@@ -130,4 +133,23 @@ select min(a), min(case when 1=1 then a else NULL end),
from t1 where b=3 group by b;
drop table t1;
+
+#
+# Tests for bug #9939: conversion of the arguments for COALESCE and IFNULL
+#
+
+CREATE TABLE t1 (EMPNUM INT);
+INSERT INTO t1 VALUES (0), (2);
+CREATE TABLE t2 (EMPNUM DECIMAL (4, 2));
+INSERT INTO t2 VALUES (0.0), (9.0);
+
+SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
+ t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
+ FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
+
+SELECT IFNULL(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
+ t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
+ FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
+
+DROP TABLE t1,t2;
# End of 4.1 tests
diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test
index 8eef66f9e1b..316b79efe4d 100644
--- a/mysql-test/t/cast.test
+++ b/mysql-test/t/cast.test
@@ -4,17 +4,30 @@
select CAST(1-2 AS UNSIGNED);
select CAST(CAST(1-2 AS UNSIGNED) AS SIGNED INTEGER);
+select CAST('10 ' as unsigned integer);
select cast(-5 as unsigned) | 1, cast(-5 as unsigned) & -1;
select cast(-5 as unsigned) -1, cast(-5 as unsigned) + 1;
select ~5, cast(~5 as signed);
explain extended select ~5, cast(~5 as signed);
select cast(5 as unsigned) -6.0;
-select cast(NULL as signed), cast(1/0 as signed);
+select cast(NULL as signed), cast(1/0 as signed);
+#
+# Bug #28250: Run-Time Check Failure #3 - The variable 'value' is being used
+# without being def
+#
+# The following line causes Run-Time Check Failure on
+# binaries built with Visual C++ 2005
select cast(NULL as unsigned), cast(1/0 as unsigned);
select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A";
select cast("2001-1-1" as DATE), cast("2001-1-1" as DATETIME);
select cast("1:2:3" as TIME);
select CONVERT("2004-01-22 21:45:33",DATE);
+select 10+'10';
+select 10.0+'10';
+select 10E+0+'10';
+
+# The following cast creates warnings
+
select CONVERT(DATE "2004-01-22 21:45:33" USING latin1);
select CONVERT(DATE "2004-01-22 21:45:33",CHAR);
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
@@ -24,6 +37,11 @@ select CAST(0xb3 as signed);
select CAST(0x8fffffffffffffff as signed);
select CAST(0xffffffffffffffff as unsigned);
select CAST(0xfffffffffffffffe as signed);
+select cast('-10a' as signed integer);
+select cast('a10' as unsigned integer);
+select 10+'a';
+select 10.0+cast('a' as decimal);
+select 10E+0+'a';
# out-of-range cases
select cast('18446744073709551616' as unsigned);
@@ -52,7 +70,8 @@ select
cast(_latin1'a ' AS char) as c2,
cast(_latin1'abc' AS char(2)) as c3,
cast(_latin1'a ' AS char(2)) as c4,
- cast(_latin1'a' AS char(2)) as c5;
+ hex(cast(_latin1'a' AS char(2))) as c5;
+select cast(1000 as CHAR(3));
create table t1 select
cast(_latin1'ab' AS char) as c1,
@@ -60,7 +79,7 @@ create table t1 select
cast(_latin1'abc' AS char(2)) as c3,
cast(_latin1'a ' AS char(2)) as c4,
cast(_latin1'a' AS char(2)) as c5;
-select * from t1;
+select c1,c2,c3,c4,hex(c5) from t1;
show create table t1;
drop table t1;
@@ -88,7 +107,7 @@ drop table t1;
# Bug 2202
# CAST from BINARY to non-BINARY and from non-BINARY to BINARY
#
-create table t1 (a binary(10), b char(10) character set koi8r);
+create table t1 (a binary(4), b char(4) character set koi8r);
insert into t1 values (_binary'ÔÅÓÔ',_binary'ÔÅÓÔ');
select a,b,cast(a as char character set cp1251),cast(b as binary) from t1;
set names koi8r;
@@ -148,12 +167,6 @@ select cast(repeat('1',20) as unsigned);
select cast(repeat('1',20) as signed);
#
-# Bug#8663 cant use bgint unsigned as input to cast
-#
-select cast(19999999999999999999 as unsigned);
-
-
-#
# Bug #13344: cast of large decimal to signed int not handled correctly
#
select cast(1.0e+300 as signed int);
@@ -164,6 +177,8 @@ select cast(1.0e+300 as signed int);
CREATE TABLE t1 (f1 double);
INSERT INTO t1 SET f1 = -1.0e+30 ;
INSERT INTO t1 SET f1 = +1.0e+30 ;
+# Expected result is +-1e+30, but Windows returns +-1e+030.
+--replace_result 1e+030 1e+30
SELECT f1 AS double_val, CAST(f1 AS SIGNED INT) AS cast_val FROM t1;
DROP TABLE t1;
@@ -180,3 +195,55 @@ SELECT CAST(cast('01-01-01' as date) AS UNSIGNED);
SELECT CAST(cast('01-01-01' as date) AS SIGNED);
--echo End of 4.1 tests
+
+
+#decimal-related additions
+select cast('1.2' as decimal(3,2));
+select 1e18 * cast('1.2' as decimal(3,2));
+select cast(cast('1.2' as decimal(3,2)) as signed);
+set @v1=1e18;
+select cast(@v1 as decimal(22, 2));
+select cast(-1e18 as decimal(22,2));
+
+create table t1(s1 time);
+insert into t1 values ('11:11:11');
+select cast(s1 as decimal(7,2)) from t1;
+drop table t1;
+
+#
+# Test for bug #11283: field conversion from varchar, and text types to decimal
+#
+
+CREATE TABLE t1 (v varchar(10), tt tinytext, t text,
+ mt mediumtext, lt longtext);
+INSERT INTO t1 VALUES ('1.01', '2.02', '3.03', '4.04', '5.05');
+
+SELECT CAST(v AS DECIMAL), CAST(tt AS DECIMAL), CAST(t AS DECIMAL),
+ CAST(mt AS DECIMAL), CAST(lt AS DECIMAL) from t1;
+
+DROP TABLE t1;
+
+#
+# Bug #10237 (CAST(NULL DECIMAL) crashes server)
+#
+select cast(NULL as decimal(6)) as t1;
+
+
+#
+# Bug #17903: cast to char results in binary
+#
+set names latin1;
+select hex(cast('a' as char(2) binary));
+select hex(cast('a' as binary(2)));
+select hex(cast('a' as char(2) binary));
+
+#
+# Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag.
+#
+CREATE TABLE t1 (d1 datetime);
+INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL),
+ ('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00');
+SELECT cast(date(d1) as signed) FROM t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/check.test b/mysql-test/t/check.test
index 4ce2cb04a3b..698f6538529 100644
--- a/mysql-test/t/check.test
+++ b/mysql-test/t/check.test
@@ -23,3 +23,25 @@ reap;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #9897 Views: 'Check Table' crashes MySQL, with a view and a table
+# in the statement
+#
+
+connection default;
+Create table t1(f1 int);
+Create table t2(f1 int);
+Create view v1 as Select * from t1;
+Check Table v1,t2;
+drop view v1;
+drop table t1, t2;
+
+#
+# BUG#26325 - TEMPORARY TABLE "corrupt" after first read, according to CHECK
+# TABLE
+#
+CREATE TEMPORARY TABLE t1(a INT);
+CHECK TABLE t1;
+REPAIR TABLE t1;
+DROP TABLE t1;
diff --git a/mysql-test/t/client_xml.test b/mysql-test/t/client_xml.test
new file mode 100644
index 00000000000..8ee63a6131b
--- /dev/null
+++ b/mysql-test/t/client_xml.test
@@ -0,0 +1,23 @@
+# Can't run with embedded server
+-- source include/not_embedded.inc
+
+# Test of the xml output of the 'mysql' and 'mysqldump' clients -- makes
+# sure that basic encoding issues are handled properly
+create table t1 (
+ `a&b` int,
+ `a<b` int,
+ `a>b` text
+);
+insert into t1 values (1, 2, 'a&b a<b a>b');
+--exec $MYSQL --xml test -e "select * from t1"
+--exec $MYSQL_DUMP --xml --skip-create test
+
+--exec $MYSQL --xml test -e "select count(*) from t1"
+--exec $MYSQL --xml test -e "select 1 < 2 from dual"
+--exec $MYSQL --xml test -e "select 1 > 2 from dual"
+--exec $MYSQL --xml test -e "select 1 & 3 from dual"
+--exec $MYSQL --xml test -e "select null from dual"
+--exec $MYSQL --xml test -e "select 1 limit 0"
+--exec $MYSQL --xml test -vv -e "select 1 limit 0"
+
+drop table t1;
diff --git a/mysql-test/t/comments.test b/mysql-test/t/comments.test
index 52273ec9523..0c6853cf298 100644
--- a/mysql-test/t/comments.test
+++ b/mysql-test/t/comments.test
@@ -19,3 +19,36 @@ select 1 # The rest of the row will be ignored
/* line with only comment */;
# End of 4.1 tests
+
+
+#
+# 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/compare.test b/mysql-test/t/compare.test
index a42ba5ac88a..337035a8095 100644
--- a/mysql-test/t/compare.test
+++ b/mysql-test/t/compare.test
@@ -37,3 +37,12 @@ SELECT CHAR(31) = '', '' = CHAR(31);
SELECT CHAR(30) = '', '' = CHAR(30);
# End of 4.1 tests
+
+#
+#Bug #21159: Optimizer: wrong result after AND with different data types
+#
+create table t1 (a tinyint(1),b binary(1));
+insert into t1 values (0x01,0x01);
+select * from t1 where a=b;
+select * from t1 where a=b and b=0x01;
+drop table if exists t1;
diff --git a/mysql-test/t/compress.test b/mysql-test/t/compress.test
new file mode 100644
index 00000000000..3f1892b5dec
--- /dev/null
+++ b/mysql-test/t/compress.test
@@ -0,0 +1,18 @@
+# Turn on compression between the client and server
+# and run a number of tests
+
+# Can't test with embedded server
+-- source include/not_embedded.inc
+
+-- source include/have_compress.inc
+
+connect (comp_con,localhost,root,,,,,COMPRESS);
+
+# Check compression turned on
+SHOW STATUS LIKE 'Compression';
+
+# Source select test case
+-- source include/common-tests.inc
+
+# Check compression turned on
+SHOW STATUS LIKE 'Compression';
diff --git a/mysql-test/t/connect.test b/mysql-test/t/connect.test
index 89e34f0c8e0..2147d5b71af 100644
--- a/mysql-test/t/connect.test
+++ b/mysql-test/t/connect.test
@@ -57,7 +57,7 @@ connect (con10,localhost,test,gambling2,);
connect (con5,localhost,test,gambling2,mysql);
connection con5;
set password="";
---error 1105
+--error 1372
set password='gambling3';
set password=old_password('gambling3');
show tables;
diff --git a/mysql-test/t/count_distinct.test b/mysql-test/t/count_distinct.test
index 8e3ca7025b4..e63bdabdb95 100644
--- a/mysql-test/t/count_distinct.test
+++ b/mysql-test/t/count_distinct.test
@@ -56,3 +56,24 @@ select count(distinct f) from t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #6515
+#
+
+create table t1 (a char(3), b char(20), primary key (a, b));
+insert into t1 values ('ABW', 'Dutch'), ('ABW', 'English');
+select count(distinct a) from t1 group by b;
+drop table t1;
+
+#
+# Bug #9593 "The combination of COUNT, DISTINCT and CONCAT
+# seems to lock the server"
+# Bug appears only on Windows system
+#
+
+create table t1 (f1 int, f2 int);
+insert into t1 values (0,1),(1,2);
+select count(distinct if(f1,3,f2)) from t1;
+drop table t1;
+
diff --git a/mysql-test/t/count_distinct2.test b/mysql-test/t/count_distinct2.test
index dd43fe6f7ba..8dcb2a70065 100644
--- a/mysql-test/t/count_distinct2.test
+++ b/mysql-test/t/count_distinct2.test
@@ -64,7 +64,7 @@ select count(distinct n) from t1;
show status like 'Created_tmp_disk_tables';
drop table t1;
-#test conversion from heap to MyISAM
+# Test use of MyISAM tmp tables
create table t1 (s text);
let $1=5000;
disable_query_log;
diff --git a/mysql-test/t/count_distinct3.test b/mysql-test/t/count_distinct3.test
index 9c3e7f439c2..f817b2c635d 100644
--- a/mysql-test/t/count_distinct3.test
+++ b/mysql-test/t/count_distinct3.test
@@ -9,7 +9,6 @@ DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER);
---disable_warnings
--disable_query_log
SET @rnd_max= 2147483647;
let $1 = 1000;
@@ -18,7 +17,7 @@ while ($1)
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
- SET @grp= CAST(128.0 * @rnd AS UNSIGNED);
+ SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
dec $1;
}
@@ -44,7 +43,6 @@ INSERT INTO t1 (id, grp, id_rev) SELECT id, grp, id_rev FROM t2;
INSERT INTO t2 (id, grp, id_rev) SELECT id, grp, id_rev FROM t1;
DROP TABLE t2;
--enable_query_log
---enable_warnings
SELECT COUNT(*) FROM t1;
diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test
index 57b16a13c01..64081c0248a 100644
--- a/mysql-test/t/create.test
+++ b/mysql-test/t/create.test
@@ -49,14 +49,25 @@ create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int);
#
-# Some wrong defaults, so these creates should fail too
+# Some wrong defaults, so these creates should fail too (Bug #5902)
#
--error 1067
-create table test (a datetime default now());
+create table t1 (a datetime default now());
--error 1294
-create table test (a datetime on update now());
+create table t1 (a datetime on update now());
--error 1067
-create table test (a int default 100 auto_increment);
+create table t1 (a int default 100 auto_increment);
+--error 1067
+create table t1 (a tinyint default 1000);
+--error 1067
+create table t1 (a varchar(5) default 'abcdef');
+
+create table t1 (a varchar(5) default 'abcde');
+insert into t1 values();
+select * from t1;
+--error 1067
+alter table t1 alter column a set default 'abcdef';
+drop table t1;
#
# test of dummy table names
@@ -266,8 +277,8 @@ create table t3 like t1;
show create table t3;
select * from t3;
# Disable PS becasue of @@warning_count
---disable_ps_protocol
create table if not exists t3 like t1;
+--disable_ps_protocol
select @@warning_count;
--enable_ps_protocol
create temporary table t3 like t2;
@@ -395,12 +406,14 @@ select database();
drop database mysqltest;
select database();
-# Connect without a database
+# Connect without a database as user mysqltest_1
+create user mysqltest_1;
connect (user1,localhost,mysqltest_1,,*NO-ONE*);
connection user1;
select database(), user();
connection default;
disconnect user1;
+drop user mysqltest_1;
use test;
#
@@ -489,8 +502,7 @@ drop table t1,t2;
# Bug #12537: UNION produces longtext instead of varchar
#
CREATE TABLE t1 (f1 VARCHAR(255) CHARACTER SET utf8);
-CREATE TABLE t2 AS SELECT LEFT(f1,86) AS f2 FROM t1 UNION SELECT LEFT(f1,86)
-AS f2 FROM t1;
+CREATE TABLE t2 AS SELECT LEFT(f1,171) AS f2 FROM t1 UNION SELECT LEFT(f1,171) AS f2 FROM t1;
DESC t2;
DROP TABLE t1,t2;
@@ -507,13 +519,22 @@ DROP TABLE t12913;
create database mysqltest;
use mysqltest;
drop database mysqltest;
---error 1102
+--error ER_NO_DB_ERROR
create table test.t1 like x;
--disable_warnings
drop table if exists test.t1;
--enable_warnings
#
+# Bug #6859: Bogus error message on attempt to CREATE TABLE t LIKE view
+#
+create database mysqltest;
+use mysqltest;
+create view v1 as select 'foo' from dual;
+--error 1347
+create table t1 like v1;
+drop view v1;
+drop database mysqltest;
# Bug #6008 MySQL does not create warnings when
# creating database and using IF NOT EXISTS
#
@@ -531,6 +552,7 @@ create table t1 (
a varchar(112) charset utf8 collate utf8_bin not null,
primary key (a)
) select 'test' as a ;
+#--warning 1364
show create table t1;
drop table t1;
@@ -543,6 +565,7 @@ CREATE TABLE t2 (
);
insert into t2 values(111);
+#--warning 1364
create table t1 (
a varchar(12) charset utf8 collate utf8_bin not null,
b int not null, primary key (a)
@@ -550,6 +573,23 @@ create table t1 (
show create table t1;
drop table t1;
+#--warning 1364
+create table t1 (
+ a varchar(12) charset utf8 collate utf8_bin not null,
+ b int not null, primary key (a)
+) select a, 1 as c from t2 ;
+show create table t1;
+drop table t1;
+
+#--warning 1364
+create table t1 (
+ a varchar(12) charset utf8 collate utf8_bin not null,
+ b int null, primary key (a)
+) select a, 1 as c from t2 ;
+show create table t1;
+drop table t1;
+
+#--warning 1364
create table t1 (
a varchar(12) charset utf8 collate utf8_bin not null,
b int not null, primary key (a)
@@ -557,6 +597,7 @@ create table t1 (
show create table t1;
drop table t1;
+#--warning 1364
create table t1 (
a varchar(12) charset utf8 collate utf8_bin,
b int not null, primary key (a)
@@ -570,6 +611,7 @@ create table t1 (
);
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
+#--warning 1364
create table t2 (
a1 varchar(12) charset utf8 collate utf8_bin not null,
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
@@ -577,17 +619,20 @@ create table t2 (
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
drop table t2;
+#--warning 1364
create table t2 (
a1 varchar(12) charset utf8 collate utf8_bin,
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1;
drop table t1, t2;
+#--warning 1364
create table t1 (
a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
);
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
+#--warning 1364
create table t2 (
a1 varchar(12) charset utf8 collate utf8_bin not null,
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
@@ -606,7 +651,501 @@ drop table t1, t2;
#
# Bug #15316 SET value having comma not correctly handled
#
---error 1105
+--error 1367
create table t1(a set("a,b","c,d") not null);
# End of 4.1 tests
+
+
+#
+# Bug #14155: Maximum value of MAX_ROWS handled incorrectly on 64-bit
+# platforms
+#
+create table t1 (i int) engine=myisam max_rows=100000000000;
+show create table t1;
+alter table t1 max_rows=100;
+show create table t1;
+alter table t1 max_rows=100000000000;
+show create table t1;
+drop table t1;
+
+
+#
+# Tests for errors happening at various stages of CREATE TABLES ... SELECT
+#
+# (Also checks that it behaves atomically in the sense that in case
+# of error it is automatically dropped if it has not existed before.)
+#
+# Error during open_and_lock_tables() of tables
+--error ER_NO_SUCH_TABLE
+create table t1 select * from t2;
+# Rather special error which also caught during open tables pahse
+--error ER_UPDATE_TABLE_USED
+create table t1 select * from t1;
+# Error which happens before select_create::prepare()
+--error ER_CANT_AGGREGATE_2COLLATIONS
+create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);
+# Error during table creation
+--error ER_KEY_COLUMN_DOES_NOT_EXITS
+create table t1 (primary key(a)) select "b" as b;
+# Error in select_create::prepare() which is not related to table creation
+create table t1 (a int);
+--error ER_WRONG_VALUE_COUNT_ON_ROW
+create table if not exists t1 select 1 as a, 2 as b;
+drop table t1;
+# Finally error which happens during insert
+--error ER_DUP_ENTRY
+create table t1 (primary key (a)) (select 1 as a) union all (select 1 as a);
+# What happens if table already exists ?
+create table t1 (i int);
+--error ER_TABLE_EXISTS_ERROR
+create table t1 select 1 as i;
+create table if not exists t1 select 1 as i;
+select * from t1;
+# Error before select_create::prepare()
+--error ER_CANT_AGGREGATE_2COLLATIONS
+create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);
+select * from t1;
+# Error which happens during insertion of rows
+alter table t1 add primary key (i);
+--error ER_DUP_ENTRY
+create table if not exists t1 (select 2 as i) union all (select 2 as i);
+select * from t1;
+drop table t1;
+
+
+# Base vs temporary tables dillema (a.k.a. bug#24508 "Inconsistent
+# results of CREATE TABLE ... SELECT when temporary table exists").
+# In this situation we either have to create non-temporary table and
+# insert data in it or insert data in temporary table without creation
+# of permanent table. Since currently temporary tables always shadow
+# permanent tables we adopt second approach.
+create temporary table t1 (j int);
+create table if not exists t1 select 1;
+select * from t1;
+drop temporary table t1;
+--error ER_NO_SUCH_TABLE
+select * from t1;
+--error ER_BAD_TABLE_ERROR
+drop table t1;
+
+
+#
+# CREATE TABLE ... SELECT and LOCK TABLES
+#
+# There is little sense in using CREATE TABLE ... SELECT under
+# LOCK TABLES as it mostly does not work. At least we check that
+# the server doesn't crash, hang and produces sensible errors.
+# Includes test for bug #20662 "Infinite loop in CREATE TABLE
+# IF NOT EXISTS ... SELECT with locked tables".
+create table t1 (i int);
+insert into t1 values (1), (2);
+lock tables t1 read;
+--error ER_TABLE_NOT_LOCKED
+create table t2 select * from t1;
+--error ER_TABLE_NOT_LOCKED
+create table if not exists t2 select * from t1;
+unlock tables;
+create table t2 (j int);
+lock tables t1 read;
+--error ER_TABLE_NOT_LOCKED
+create table t2 select * from t1;
+# This should not be ever allowed as it will undermine
+# lock-all-at-once approach
+--error ER_TABLE_NOT_LOCKED
+create table if not exists t2 select * from t1;
+unlock tables;
+lock table t1 read, t2 read;
+--error ER_TABLE_NOT_LOCKED_FOR_WRITE
+create table t2 select * from t1;
+--error ER_TABLE_NOT_LOCKED_FOR_WRITE
+create table if not exists t2 select * from t1;
+unlock tables;
+lock table t1 read, t2 write;
+--error ER_TABLE_EXISTS_ERROR
+create table t2 select * from t1;
+# This is the only case which really works.
+create table if not exists t2 select * from t1;
+select * from t1;
+unlock tables;
+drop table t2;
+
+# OTOH CREATE TEMPORARY TABLE ... SELECT should work
+# well under LOCK TABLES.
+lock tables t1 read;
+create temporary table t2 select * from t1;
+create temporary table if not exists t2 select * from t1;
+select * from t2;
+unlock tables;
+drop table t1, t2;
+
+
+#
+# Bug#21772: can not name a column 'upgrade' when create a table
+#
+create table t1 (upgrade int);
+drop table t1;
+
+
+#
+# Bug #26642: create index corrupts table definition in .frm
+#
+# Problem with creating keys with maximum key-parts and maximum name length
+# This test is made for a mysql server supporting names up to 64 bytes
+# and a maximum of 16 key segements per Key
+#
+
+create table t1 (
+ c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int,
+ c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int,
+
+ key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16)
+);
+
+# Check that the table is not corrupted
+show create table t1;
+flush tables;
+show create table t1;
+
+# Repeat test using ALTER to add indexes
+
+drop table t1;
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int);
+
+alter table t1
+
+ add key a001_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a002_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a003_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a004_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a005_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a006_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a007_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a008_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a009_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a010_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a011_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a012_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a013_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a014_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a015_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a016_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a017_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a018_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a019_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a020_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a021_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a022_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a023_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a024_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a025_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a026_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a027_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a028_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a029_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a030_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a031_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a032_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a033_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a034_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a035_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a036_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a037_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a038_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a039_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a040_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a041_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a042_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a043_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a044_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a045_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a046_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a047_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a048_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a049_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a050_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a051_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a052_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a053_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a054_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a055_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a056_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a057_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a058_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a059_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+
+ add key a060_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a061_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a062_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a063_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
+ add key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+
+show create table t1;
+flush tables;
+show create table t1;
+
+# Test the server limits; if any of these pass, all above tests need
+# to be rewritten to hit the limit
+#
+# Ensure limit is really 64 keys
+--error 1069
+alter table t1 add key
+ a065_long_123456789_123456789_123456789_123456789_123456789_1234 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
+
+drop table t1;
+
+# Ensure limit is really 16 key parts per key
+
+create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
+c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int,
+c16 int, c17 int);
+
+# Get error for max key parts
+--error 1070
+alter table t1 add key i1 (
+ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16, c17);
+
+# Get error for max key-name length
+--error 1059
+alter table t1 add key
+ a001_long_123456789_123456789_123456789_123456789_123456789_12345 (c1);
+
+show create table t1;
+
+drop table t1;
+
+--echo
+--echo Bug #26104 Bug on foreign key class constructor
+--echo
+--echo Check that ref_columns is initalized correctly in the constructor
+--echo and semantic checks in mysql_prepare_table work.
+--echo
+--echo We do not need a storage engine that supports foreign keys
+--echo for this test, as the checks are purely syntax-based, and the
+--echo syntax is supported for all engines.
+--echo
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+
+create table t1(a int not null, b int not null, primary key (a, b));
+--error ER_WRONG_FK_DEF
+create table t2(a int not null, b int not null, c int not null, primary key (a),
+foreign key fk_bug26104 (b,c) references t1(a));
+drop table t1;
+
+#
+# Bug#15130:CREATE .. SELECT was denied to use advantages of the SQL_BIG_RESULT.
+#
+create table t1(f1 int,f2 int);
+insert into t1 value(1,1),(1,2),(1,3),(2,1),(2,2),(2,3);
+flush status;
+create table t2 select sql_big_result f1,count(f2) from t1 group by f1;
+show status like 'handler_read%';
+drop table t1,t2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/create_not_windows.test b/mysql-test/t/create_not_windows.test
new file mode 100644
index 00000000000..7e51ff51024
--- /dev/null
+++ b/mysql-test/t/create_not_windows.test
@@ -0,0 +1,21 @@
+# Non-windows specific create tests.
+
+--source include/not_windows.inc
+
+#
+# Bug#19479:mysqldump creates invalid dump
+#
+--disable_warnings
+drop table if exists `about:text`;
+--enable_warnings
+create table `about:text` (
+_id int not null auto_increment,
+`about:text` varchar(255) not null default '',
+primary key (_id)
+);
+
+show create table `about:text`;
+drop table `about:text`;
+
+
+# End of 5.0 tests
diff --git a/mysql-test/t/create_select_tmp.test b/mysql-test/t/create_select_tmp.test
index 1661a115f72..c527548e282 100644
--- a/mysql-test/t/create_select_tmp.test
+++ b/mysql-test/t/create_select_tmp.test
@@ -27,5 +27,6 @@ select * from t2;
CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=MYISAM SELECT a FROM t1;
--error 1146
select * from t2;
+drop table t1;
# End of 4.1 tests
diff --git a/mysql-test/t/csv.test b/mysql-test/t/csv.test
index e78c2ccc578..db5cb92c3e6 100644
--- a/mysql-test/t/csv.test
+++ b/mysql-test/t/csv.test
@@ -1352,3 +1352,112 @@ SELECT * FROM bug14672;
DROP TABLE bug14672;
# End of 4.1 tests
+
+#
+# BUG#13406 - incorrect amount of "records deleted"
+#
+
+create table t1 (a int) engine=csv;
+insert t1 values (1);
+--enable_info
+delete from t1; # delete_row
+delete from t1; # delete_all_rows
+--disable_info
+insert t1 values (1),(2);
+--enable_info
+delete from t1; # delete_all_rows
+--disable_info
+insert t1 values (1),(2),(3);
+flush tables;
+--enable_info
+delete from t1; # delete_row
+--disable_info
+insert t1 values (1),(2),(3),(4);
+flush tables;
+select count(*) from t1;
+--enable_info
+delete from t1; # delete_all_rows
+--disable_info
+insert t1 values (1),(2),(3),(4),(5);
+--enable_info
+truncate table t1; # truncate
+--disable_info
+drop table t1;
+
+#
+# Bug #15205 Select from CSV table without the datafile causes crash
+#
+# NOTE: the bug is not deterministic
+
+# The crash happens because the necessary cleanup after an error wasn't
+# performed. Namely, the table share, inserted in the hash during table
+# open, was not deleted from hash. At the same time the share was freed
+# when an error was encountered. Thus, subsequent access to the hash
+# resulted in scanning through deleted memory and we were geting a crash.
+# that's why we need two tables in the bugtest
+
+create table bug15205 (val int(11) default null) engine=csv;
+create table bug15205_2 (val int(11) default null) engine=csv;
+--remove_file $MYSQLTEST_VARDIR/master-data/test/bug15205.CSV
+# system error (can't open the datafile)
+--error ER_GET_ERRNO
+select * from bug15205;
+select * from bug15205_2;
+# Create empty file
+--write_file $MYSQLTEST_VARDIR/master-data/test/bug15205.CSV
+EOF
+select * from bug15205;
+drop table bug15205;
+drop table bug15205_2;
+
+#
+# Bug#28862 "Extended Latin1 characters get lost in CVS engine"
+#
+set names latin1;
+create table t1 (
+ c varchar(1),
+ name varchar(64)
+) character set latin1 engine=csv;
+insert into t1 values (0xC0,'LATIN CAPITAL LETTER A WITH GRAVE');
+insert into t1 values (0xE0,'LATIN SMALL LETTER A WITH GRAVE');
+insert into t1 values (0xEE,'LATIN SMALL LETTER I WITH CIRCUMFLEX');
+insert into t1 values (0xFE,'LATIN SMALL LETTER THORN');
+insert into t1 values (0xF7,'DIVISION SIGN');
+insert into t1 values (0xFF,'LATIN SMALL LETTER Y WITH DIAERESIS');
+select hex(c), c, name from t1 order by 1;
+drop table t1;
+
+#
+# Bug #31473: does not work with NULL value in datetime field
+# This bug is a 5.1 but is here to prevent 5.0 regression.
+#
+create table t1(a datetime) engine=csv;
+insert into t1 values();
+select * from t1;
+drop table t1;
+create table t1(a set('foo','bar')) engine=csv;
+insert into t1 values();
+select * from t1;
+drop table t1;
+create table t1(a varchar(32)) engine=csv;
+insert into t1 values();
+select * from t1;
+drop table t1;
+create table t1(a int) engine=csv;
+insert into t1 values();
+select * from t1;
+drop table t1;
+create table t1(a blob) engine=csv;
+insert into t1 values();
+select * from t1;
+drop table t1;
+create table t1(a bit(1)) engine=csv;
+insert into t1 values();
+select BIN(a) from t1;
+drop table t1;
+create table t1(a enum('foo','bar') default 'foo') engine=csv;
+insert into t1 values();
+select * from t1;
+drop table t1;
+
+--echo End of 5.0 tests
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/ctype_big5.test b/mysql-test/t/ctype_big5.test
index 200002cd235..5f3357e0406 100644
--- a/mysql-test/t/ctype_big5.test
+++ b/mysql-test/t/ctype_big5.test
@@ -63,4 +63,21 @@ drop table t1;
#
select hex(convert(_big5 0xC84041 using ucs2));
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+#
+# Bug#26711 "binary content 0x00 sometimes becomes 0x5C 0x00 after dump/load"
+#
+set names big5;
+create table t1 (a blob);
+insert into t1 values (0xEE00);
+select * into outfile 'test/t1.txt' from t1;
+delete from t1;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--eval select hex(load_file('$MYSQLTEST_VARDIR/master-data/test/t1.txt'));
+load data infile 't1.txt' into table t1;
+select hex(a) from t1;
+--exec rm $MYSQLTEST_VARDIR/master-data/test/t1.txt
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/ctype_collate.test b/mysql-test/t/ctype_collate.test
index e59693680bf..cfef8dfe81a 100644
--- a/mysql-test/t/ctype_collate.test
+++ b/mysql-test/t/ctype_collate.test
@@ -59,7 +59,7 @@ INSERT INTO t1 (latin1_f) VALUES (_latin1'Z');
INSERT INTO t1 (latin1_f) VALUES (_latin1'z');
--- ORDER BY
+# ORDER BY
SELECT latin1_f FROM t1 ORDER BY latin1_f;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_swedish_ci;
@@ -69,9 +69,9 @@ SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_bin;
--error 1253
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE koi8r_general_ci;
---SELECT latin1_f COLLATE koi8r FROM t1 ;
+# SELECT latin1_f COLLATE koi8r FROM t1 ;
--- AS + ORDER BY
+# AS + ORDER BY
SELECT latin1_f COLLATE latin1_swedish_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
SELECT latin1_f COLLATE latin1_german2_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
SELECT latin1_f COLLATE latin1_general_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
@@ -80,7 +80,7 @@ SELECT latin1_f COLLATE latin1_bin AS latin1_f_as FROM t1 ORDER BY latin1
SELECT latin1_f COLLATE koi8r_general_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
--- GROUP BY
+# GROUP BY
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_swedish_ci;
@@ -91,7 +91,7 @@ SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_bin;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE koi8r_general_ci;
--- DISTINCT
+# DISTINCT
SELECT DISTINCT latin1_f FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_swedish_ci FROM t1;
@@ -102,21 +102,20 @@ SELECT DISTINCT latin1_f COLLATE latin1_bin FROM t1;
SELECT DISTINCT latin1_f COLLATE koi8r FROM t1;
--- Aggregates
---SELECT MAX(k COLLATE latin1_german2_ci)
---FROM t1
-
-
--- WHERE
---SELECT *
---FROM t1
---WHERE (_latin1'Mu"ller' COLLATE latin1_german2_ci) = k
-
---HAVING
---SELECT *
---FROM t1
---HAVING (_latin1'Mu"ller' COLLATE latin1_german2_ci) = k
+# Aggregates
+--disable_parsing
+SELECT MAX(k COLLATE latin1_german2_ci)
+FROM t1
+WHERE
+SELECT *
+FROM t1
+WHERE (_latin1'Mu"ller' COLLATE latin1_german2_ci) = k
+HAVING
+SELECT *
+FROM t1
+HAVING (_latin1'Mu"ller' COLLATE latin1_german2_ci) = k;
+--enable_parsing
#
# Check that SHOW displays COLLATE clause
@@ -208,3 +207,25 @@ EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Bug#29261: Sort order of the collation wasn't used when comparing trailing
+# spaces.
+#
+create table t1(f1 varchar(10) character set latin2 collate latin2_hungarian_ci, key(f1));
+insert into t1 set f1=0x3F3F9DC73F;
+insert into t1 set f1=0x3F3F1E563F;
+insert into t1 set f1=0x3F3F;
+check table t1 extended;
+drop table t1;
+
+#
+# Bug#29461: Sort order of the collation wasn't used when comparing characters
+# with the space character.
+#
+create table t1 (a varchar(2) character set latin7 collate latin7_general_ci,key(a));
+insert into t1 set a=0x4c20;
+insert into t1 set a=0x6c;
+insert into t1 set a=0x4c98;
+check table t1 extended;
+drop table t1;
diff --git a/mysql-test/t/ctype_cp1250_ch.test b/mysql-test/t/ctype_cp1250_ch.test
index 65550e0c193..86eb8c31d99 100644
--- a/mysql-test/t/ctype_cp1250_ch.test
+++ b/mysql-test/t/ctype_cp1250_ch.test
@@ -1,5 +1,9 @@
-- source include/have_cp1250_ch.inc
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
SHOW COLLATION LIKE 'cp1250_czech_cs';
#
diff --git a/mysql-test/t/ctype_cp1251.test b/mysql-test/t/ctype_cp1251.test
index 1aafe7b7266..463a9cea4bc 100644
--- a/mysql-test/t/ctype_cp1251.test
+++ b/mysql-test/t/ctype_cp1251.test
@@ -21,7 +21,7 @@ drop table t1;
#
# Test of binary and upper/lower
#
-create table t1 (a char(15) binary, b binary(15)) character set cp1251;
+create table t1 (a char(3) binary, b binary(3)) character set cp1251;
insert into t1 values ('aaa','bbb'),('AAA','BBB');
select upper(a),upper(b) from t1;
select lower(a),lower(b) from t1;
diff --git a/mysql-test/t/ctype_cp932.test b/mysql-test/t/ctype_cp932.test
index 3ea8be211df..633f3af0d2b 100644
--- a/mysql-test/t/ctype_cp932.test
+++ b/mysql-test/t/ctype_cp932.test
@@ -379,35 +379,84 @@ INSERT INTO t1 VALUES
(0xF9F8),(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC);
#Test that all the characters are stored correctly
-SELECT HEX(c1) FROM t1 ORDER BY BINARY c1;
+SELECT HEX(c1) FROM t1;
#Test conversion to ucs2
-CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1 ORDER BY BINARY c1;
-SELECT HEX(c1) FROM t2 ORDER BY BINARY c1;
+CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1;
+SELECT HEX(c1) FROM t2;
#Test round trip conversion
-CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2 ORDER BY BINARY c1;
-SELECT HEX(c1) FROM t3 ORDER BY BINARY c1;
+CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2;
+SELECT HEX(c1) FROM t3;
-#eucjpms is only available from version 5.0
-#skip this test in version 4.1
-#
#Test conversion to eucjpms
-#CREATE TABLE t4 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t1 ORDER BY BINARY c1;
-#SELECT HEX(c1) FROM t4 ORDER BY BINARY c1;
+CREATE TABLE t4 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t1;
+SELECT HEX(c1) FROM t4;
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
-#DROP TABLE t4;
+DROP TABLE t4;
SET collation_connection='cp932_japanese_ci';
-- source include/ctype_filesort.inc
--- source include/ctype_innodb_like.inc
--- source include/ctype_like_escape.inc
SET collation_connection='cp932_bin';
-- source include/ctype_filesort.inc
--- source include/ctype_innodb_like.inc
--- source include/ctype_like_escape.inc
-# End of 4.1 tests
+#
+# Bug#29333 myisam corruption with
+# character set cp932 collate cp932_japanese_ci
+#
+create table t2 (a char(1));
+insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
+insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
+create table t1 (
+ a varchar(2) character set cp932
+) engine=myisam;
+--disable_warnings
+insert into t1
+select unhex(concat(t24.a, t23.a, t22.a, t21.a))
+from t2 t21, t2 t22, t2 t23, t2 t24;
+--enable_warnings
+delete from t1 where a='';
+alter table t1 add key(a);
+check table t1;
+drop table t1;
+drop table t2;
+
+
+#
+# Bug#12547: Inserting long string into varchar causes table crash in cp932
+#
+create table t1 (col1 varchar(1)) character set cp932;
+insert into t1 values ('a');
+insert into t1 values ('ab');
+select * from t1;
+insert into t1 values ('abc');
+select * from t1;
+drop table t1;
+
+#
+# BUG#16217 - MySQL client misinterpretes multi-byte char as escape `\'
+#
+
+# new command \C or charset
+--exec $MYSQL --default-character-set=utf8 test -e "\C cp932 \g"
+--exec $MYSQL --default-character-set=cp932 test -e "charset utf8;"
+
+# its usage to switch internally in mysql to requested charset
+--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; select 'ƒ\'; create table t1 (c_cp932 TEXT CHARACTER SET cp932); insert into t1 values('ƒ\'); select * from t1; drop table t1;"
+--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; select 'ƒ\'"
+--exec $MYSQL --default-character-set=utf8 test -e "/*charset cp932 */; set character_set_client= cp932; select 'ƒ\'"
+--exec $MYSQL --default-character-set=utf8 test -e "/*!\C cp932 */; set character_set_client= cp932; select 'ƒ\'"
+
+#
+# Bug#25815 Data truncated for column TEXT
+#
+set names utf8;
+create table t1 (a text) default character set cp932;
+insert into t1 values (_utf8 0xE38182);
+show warnings;
+select * from t1;
+select hex(a) from t1;
+drop table t1;
diff --git a/mysql-test/t/ctype_cp932_binlog.test b/mysql-test/t/ctype_cp932_binlog.test
index e8ec0d46caf..7db8f311800 100644
--- a/mysql-test/t/ctype_cp932_binlog.test
+++ b/mysql-test/t/ctype_cp932_binlog.test
@@ -1,5 +1,6 @@
-- source include/not_embedded.inc
-- source include/have_cp932.inc
+-- source include/have_log_bin.inc
--character_set cp932
--disable_warnings
@@ -26,10 +27,32 @@ SET @var1= x'8300';
# code (and I have used it to test the fix) until there is some way to
# exercise this code from mysql-test-run.
EXECUTE stmt1 USING @var1;
---replace_column 2 # 5 #
-SHOW BINLOG EVENTS FROM 79;
+SHOW BINLOG EVENTS FROM 98;
SELECT HEX(f1) FROM t1;
DROP table t1;
# end test for bug#11338
# End of 4.1 tests
+
+#
+# Bug#18293: Values in stored procedure written to binlog unescaped
+#
+
+delimiter |;
+CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1,
+ s2 CHAR(50) CHARACTER SET cp932,
+ d DECIMAL(10,2))|
+CREATE PROCEDURE bug18293 (IN ins1 CHAR(50),
+ IN ins2 CHAR(50) CHARACTER SET cp932,
+ IN ind DECIMAL(10,2))
+ BEGIN
+ INSERT INTO t4 VALUES (ins1, ins2, ind);
+ END|
+CALL bug18293("Foo's a Bar", _cp932 0xED40ED41ED42, 47.93)|
+SELECT HEX(s1),HEX(s2),d FROM t4|
+DROP PROCEDURE bug18293|
+DROP TABLE t4|
+SHOW BINLOG EVENTS FROM 362|
+delimiter ;|
+
+# End of 5.0 tests
diff --git a/mysql-test/t/ctype_eucjpms.test b/mysql-test/t/ctype_eucjpms.test
new file mode 100644
index 00000000000..8f813fbd82b
--- /dev/null
+++ b/mysql-test/t/ctype_eucjpms.test
@@ -0,0 +1,382 @@
+-- source include/have_eucjpms.inc
+
+
+--disable_warnings
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+--enable_warnings
+
+set names eucjpms;
+set character_set_database = eucjpms;
+
+CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = eucjpms;
+
+#Characters which are converted to Unicode ambiguously
+INSERT INTO t1 VALUES
+(0x5C),(0x7E),(0xA1B1),(0xA1BD),(0xA1C0),(0xA1C1),(0xA1C2),(0xA1DD),(0xA1F1),(0xA1F2),(0xA1EF),(0xA2CC),(0x8FA2B7),(0x8FA2C3);
+
+#NEC ROW 13 characters (0x8740 - 0x879C of cp932)
+INSERT INTO t1 VALUES
+(0xADA1),(0xADA2),(0xADA3),(0xADA4),(0xADA5),(0xADA6),(0xADA7),(0xADA8),
+(0xADA9),(0xADAA),(0xADAB),(0xADAC),(0xADAD),(0xADAE),(0xADAF),(0xADB0),
+(0xADB1),(0xADB2),(0xADB3),(0xADB4),(0xADB5),(0xADB6),(0xADB7),(0xADB8),
+(0xADB9),(0xADBA),(0xADBB),(0xADBC),(0xADBD),(0xADBE),(0xADC0),(0xADC1),
+(0xADC2),(0xADC3),(0xADC4),(0xADC5),(0xADC6),(0xADC7),(0xADC8),(0xADC9),
+(0xADCA),(0xADCB),(0xADCC),(0xADCD),(0xADCE),(0xADCF),(0xADD0),(0xADD1),
+(0xADD2),(0xADD3),(0xADD4),(0xADD5),(0xADD6),(0xADDF),(0xADE0),(0xADE1),
+(0xADE2),(0xADE3),(0xADE4),(0xADE5),(0xADE6),(0xADE7),(0xADE8),(0xADE9),
+(0xADEA),(0xADEB),(0xADEC),(0xADED),(0xADEE),(0xADEF),(0xADF0),(0xADF1),
+(0xADF2),(0xADF3),(0xADF4),(0xADF5),(0xADF6),(0xADF7),(0xADF8),(0xADF9),
+(0xADFA),(0xADFB),(0xADFC);
+
+#IBM Selected Kanji and Non-Kanji (0xFA40 - 0xFC4B of cp932)
+INSERT INTO t1 VALUES
+(0x8FF3F3),(0x8FF3F4),(0x8FF3F5),(0x8FF3F6),(0x8FF3F7),(0x8FF3F8),(0x8FF3F9),(0x8FF3FA),
+(0x8FF3FB),(0x8FF3FC),(0x8FF3FD),(0x8FF3FE),(0x8FF4A1),(0x8FF4A2),(0x8FF4A3),(0x8FF4A4),
+(0x8FF4A5),(0x8FF4A6),(0x8FF4A7),(0x8FF4A8),(0xA2CC),(0x8FA2C3),(0x8FF4A9),(0x8FF4AA),
+(0x8FF4AB),(0x8FF4AC),(0x8FF4AD),(0xA2E8),(0x8FD4E3),(0x8FDCDF),(0x8FE4E9),(0x8FE3F8),
+(0x8FD9A1),(0x8FB1BB),(0x8FF4AE),(0x8FC2AD),(0x8FC3FC),(0x8FE4D0),(0x8FC2BF),(0x8FBCF4),
+(0x8FB0A9),(0x8FB0C8),(0x8FF4AF),(0x8FB0D2),(0x8FB0D4),(0x8FB0E3),(0x8FB0EE),(0x8FB1A7),
+(0x8FB1A3),(0x8FB1AC),(0x8FB1A9),(0x8FB1BE),(0x8FB1DF),(0x8FB1D8),(0x8FB1C8),(0x8FB1D7),
+(0x8FB1E3),(0x8FB1F4),(0x8FB1E1),(0x8FB2A3),(0x8FF4B0),(0x8FB2BB),(0x8FB2E6),(0x8FB2ED),
+(0x8FB2F5),(0x8FB2FC),(0x8FF4B1),(0x8FB3B5),(0x8FB3D8),(0x8FB3DB),(0x8FB3E5),(0x8FB3EE),
+(0x8FB3FB),(0x8FF4B2),(0x8FF4B3),(0x8FB4C0),(0x8FB4C7),(0x8FB4D0),(0x8FB4DE),(0x8FF4B4),
+(0x8FB5AA),(0x8FF4B5),(0x8FB5AF),(0x8FB5C4),(0x8FB5E8),(0x8FF4B6),(0x8FB7C2),(0x8FB7E4),
+(0x8FB7E8),(0x8FB7E7),(0x8FF4B7),(0x8FF4B8),(0x8FF4B9),(0x8FB8CE),(0x8FB8E1),(0x8FB8F5),
+(0x8FB8F7),(0x8FB8F8),(0x8FB8FC),(0x8FB9AF),(0x8FB9B7),(0x8FBABE),(0x8FBADB),(0x8FCDAA),
+(0x8FBAE1),(0x8FF4BA),(0x8FBAEB),(0x8FBBB3),(0x8FBBB8),(0x8FF4BB),(0x8FBBCA),(0x8FF4BC),
+(0x8FF4BD),(0x8FBBD0),(0x8FBBDE),(0x8FBBF4),(0x8FBBF5),(0x8FBBF9),(0x8FBCE4),(0x8FBCED),
+(0x8FBCFE),(0x8FF4BE),(0x8FBDC2),(0x8FBDE7),(0x8FF4BF),(0x8FBDF0),(0x8FBEB0),(0x8FBEAC),
+(0x8FF4C0),(0x8FBEB3),(0x8FBEBD),(0x8FBECD),(0x8FBEC9),(0x8FBEE4),(0x8FBFA8),(0x8FBFC9),
+(0x8FC0C4),(0x8FC0E4),(0x8FC0F4),(0x8FC1A6),(0x8FF4C1),(0x8FC1F5),(0x8FC1FC),(0x8FF4C2),
+(0x8FC1F8),(0x8FC2AB),(0x8FC2A1),(0x8FC2A5),(0x8FF4C3),(0x8FC2B8),(0x8FC2BA),(0x8FF4C4),
+(0x8FC2C4),(0x8FC2D2),(0x8FC2D7),(0x8FC2DB),(0x8FC2DE),(0x8FC2ED),(0x8FC2F0),(0x8FF4C5),
+(0x8FC3A1),(0x8FC3B5),(0x8FC3C9),(0x8FC3B9),(0x8FF4C6),(0x8FC3D8),(0x8FC3FE),(0x8FF4C7),
+(0x8FC4CC),(0x8FF4C8),(0x8FC4D9),(0x8FC4EA),(0x8FC4FD),(0x8FF4C9),(0x8FC5A7),(0x8FC5B5),
+(0x8FC5B6),(0x8FF4CA),(0x8FC5D5),(0x8FC6B8),(0x8FC6D7),(0x8FC6E0),(0x8FC6EA),(0x8FC6E3),
+(0x8FC7A1),(0x8FC7AB),(0x8FC7C7),(0x8FC7C3),(0x8FC7CB),(0x8FC7CF),(0x8FC7D9),(0x8FF4CB),
+(0x8FF4CC),(0x8FC7E6),(0x8FC7EE),(0x8FC7FC),(0x8FC7EB),(0x8FC7F0),(0x8FC8B1),(0x8FC8E5),
+(0x8FC8F8),(0x8FC9A6),(0x8FC9AB),(0x8FC9AD),(0x8FF4CD),(0x8FC9CA),(0x8FC9D3),(0x8FC9E9),
+(0x8FC9E3),(0x8FC9FC),(0x8FC9F4),(0x8FC9F5),(0x8FF4CE),(0x8FCAB3),(0x8FCABD),(0x8FCAEF),
+(0x8FCAF1),(0x8FCBAE),(0x8FF4CF),(0x8FCBCA),(0x8FCBE6),(0x8FCBEA),(0x8FCBF0),(0x8FCBF4),
+(0x8FCBEE),(0x8FCCA5),(0x8FCBF9),(0x8FCCAB),(0x8FCCAE),(0x8FCCAD),(0x8FCCB2),(0x8FCCC2),
+(0x8FCCD0),(0x8FCCD9),(0x8FF4D0),(0x8FCDBB),(0x8FF4D1),(0x8FCEBB),(0x8FF4D2),(0x8FCEBA),
+(0x8FCEC3),(0x8FF4D3),(0x8FCEF2),(0x8FB3DD),(0x8FCFD5),(0x8FCFE2),(0x8FCFE9),(0x8FCFED),
+(0x8FF4D4),(0x8FF4D5),(0x8FF4D6),(0x8FF4D7),(0x8FD0E5),(0x8FF4D8),(0x8FD0E9),(0x8FD1E8),
+(0x8FF4D9),(0x8FF4DA),(0x8FD1EC),(0x8FD2BB),(0x8FF4DB),(0x8FD3E1),(0x8FD3E8),(0x8FD4A7),
+(0x8FF4DC),(0x8FF4DD),(0x8FD4D4),(0x8FD4F2),(0x8FD5AE),(0x8FF4DE),(0x8FD7DE),(0x8FF4DF),
+(0x8FD8A2),(0x8FD8B7),(0x8FD8C1),(0x8FD8D1),(0x8FD8F4),(0x8FD9C6),(0x8FD9C8),(0x8FD9D1),
+(0x8FF4E0),(0x8FF4E1),(0x8FF4E2),(0x8FF4E3),(0x8FF4E4),(0x8FDCD3),(0x8FDDC8),(0x8FDDD4),
+(0x8FDDEA),(0x8FDDFA),(0x8FDEA4),(0x8FDEB0),(0x8FF4E5),(0x8FDEB5),(0x8FDECB),(0x8FF4E6),
+(0x8FDFB9),(0x8FF4E7),(0x8FDFC3),(0x8FF4E8),(0x8FF4E9),(0x8FE0D9),(0x8FF4EA),(0x8FF4EB),
+(0x8FE1E2),(0x8FF4EC),(0x8FF4ED),(0x8FF4EE),(0x8FE2C7),(0x8FE3A8),(0x8FE3A6),(0x8FE3A9),
+(0x8FE3AF),(0x8FE3B0),(0x8FE3AA),(0x8FE3AB),(0x8FE3BC),(0x8FE3C1),(0x8FE3BF),(0x8FE3D5),
+(0x8FE3D8),(0x8FE3D6),(0x8FE3DF),(0x8FE3E3),(0x8FE3E1),(0x8FE3D4),(0x8FE3E9),(0x8FE4A6),
+(0x8FE3F1),(0x8FE3F2),(0x8FE4CB),(0x8FE4C1),(0x8FE4C3),(0x8FE4BE),(0x8FF4EF),(0x8FE4C0),
+(0x8FE4C7),(0x8FE4BF),(0x8FE4E0),(0x8FE4DE),(0x8FE4D1),(0x8FF4F0),(0x8FE4DC),(0x8FE4D2),
+(0x8FE4DB),(0x8FE4D4),(0x8FE4FA),(0x8FE4EF),(0x8FE5B3),(0x8FE5BF),(0x8FE5C9),(0x8FE5D0),
+(0x8FE5E2),(0x8FE5EA),(0x8FE5EB),(0x8FF4F1),(0x8FF4F2),(0x8FF4F3),(0x8FE6E8),(0x8FE6EF),
+(0x8FE7AC),(0x8FF4F4),(0x8FE7AE),(0x8FF4F5),(0x8FE7B1),(0x8FF4F6),(0x8FE7B2),(0x8FE8B1),
+(0x8FE8B6),(0x8FF4F7),(0x8FF4F8),(0x8FE8DD),(0x8FF4F9),(0x8FF4FA),(0x8FE9D1),(0x8FF4FB),
+(0x8FE9ED),(0x8FEACD),(0x8FF4FC),(0x8FEADB),(0x8FEAE6),(0x8FEAEA),(0x8FEBA5),(0x8FEBFB),
+(0x8FEBFA),(0x8FF4FD),(0x8FECD6),(0x8FF4FE);
+
+#User defined characters (0xF040-F9FC of cp932)
+INSERT INTO t1 VALUES
+(0xF5A1),(0xF5A2),(0xF5A3),(0xF5A4),(0xF5A5),(0xF5A6),(0xF5A7),(0xF5A8),
+(0xF5A9),(0xF5AA),(0xF5AB),(0xF5AC),(0xF5AD),(0xF5AE),(0xF5AF),(0xF5B0),
+(0xF5B1),(0xF5B2),(0xF5B3),(0xF5B4),(0xF5B5),(0xF5B6),(0xF5B7),(0xF5B8),
+(0xF5B9),(0xF5BA),(0xF5BB),(0xF5BC),(0xF5BD),(0xF5BE),(0xF5BF),(0xF5C0),
+(0xF5C1),(0xF5C2),(0xF5C3),(0xF5C4),(0xF5C5),(0xF5C6),(0xF5C7),(0xF5C8),
+(0xF5C9),(0xF5CA),(0xF5CB),(0xF5CC),(0xF5CD),(0xF5CE),(0xF5CF),(0xF5D0),
+(0xF5D1),(0xF5D2),(0xF5D3),(0xF5D4),(0xF5D5),(0xF5D6),(0xF5D7),(0xF5D8),
+(0xF5D9),(0xF5DA),(0xF5DB),(0xF5DC),(0xF5DD),(0xF5DE),(0xF5DF),(0xF5E0),
+(0xF5E1),(0xF5E2),(0xF5E3),(0xF5E4),(0xF5E5),(0xF5E6),(0xF5E7),(0xF5E8),
+(0xF5E9),(0xF5EA),(0xF5EB),(0xF5EC),(0xF5ED),(0xF5EE),(0xF5EF),(0xF5F0),
+(0xF5F1),(0xF5F2),(0xF5F3),(0xF5F4),(0xF5F5),(0xF5F6),(0xF5F7),(0xF5F8),
+(0xF5F9),(0xF5FA),(0xF5FB),(0xF5FC),(0xF5FD),(0xF5FE),
+(0xF6A1),(0xF6A2),(0xF6A3),(0xF6A4),(0xF6A5),(0xF6A6),(0xF6A7),(0xF6A8),
+(0xF6A9),(0xF6AA),(0xF6AB),(0xF6AC),(0xF6AD),(0xF6AE),(0xF6AF),(0xF6B0),
+(0xF6B1),(0xF6B2),(0xF6B3),(0xF6B4),(0xF6B5),(0xF6B6),(0xF6B7),(0xF6B8),
+(0xF6B9),(0xF6BA),(0xF6BB),(0xF6BC),(0xF6BD),(0xF6BE),(0xF6BF),(0xF6C0),
+(0xF6C1),(0xF6C2),(0xF6C3),(0xF6C4),(0xF6C5),(0xF6C6),(0xF6C7),(0xF6C8),
+(0xF6C9),(0xF6CA),(0xF6CB),(0xF6CC),(0xF6CD),(0xF6CE),(0xF6CF),(0xF6D0),
+(0xF6D1),(0xF6D2),(0xF6D3),(0xF6D4),(0xF6D5),(0xF6D6),(0xF6D7),(0xF6D8),
+(0xF6D9),(0xF6DA),(0xF6DB),(0xF6DC),(0xF6DD),(0xF6DE),(0xF6DF),(0xF6E0),
+(0xF6E1),(0xF6E2),(0xF6E3),(0xF6E4),(0xF6E5),(0xF6E6),(0xF6E7),(0xF6E8),
+(0xF6E9),(0xF6EA),(0xF6EB),(0xF6EC),(0xF6ED),(0xF6EE),(0xF6EF),(0xF6F0),
+(0xF6F1),(0xF6F2),(0xF6F3),(0xF6F4),(0xF6F5),(0xF6F6),(0xF6F7),(0xF6F8),
+(0xF6F9),(0xF6FA),(0xF6FB),(0xF6FC),(0xF6FD),(0xF6FE),
+(0xF7A1),(0xF7A2),(0xF7A3),(0xF7A4),(0xF7A5),(0xF7A6),(0xF7A7),(0xF7A8),
+(0xF7A9),(0xF7AA),(0xF7AB),(0xF7AC),(0xF7AD),(0xF7AE),(0xF7AF),(0xF7B0),
+(0xF7B1),(0xF7B2),(0xF7B3),(0xF7B4),(0xF7B5),(0xF7B6),(0xF7B7),(0xF7B8),
+(0xF7B9),(0xF7BA),(0xF7BB),(0xF7BC),(0xF7BD),(0xF7BE),(0xF7BF),(0xF7C0),
+(0xF7C1),(0xF7C2),(0xF7C3),(0xF7C4),(0xF7C5),(0xF7C6),(0xF7C7),(0xF7C8),
+(0xF7C9),(0xF7CA),(0xF7CB),(0xF7CC),(0xF7CD),(0xF7CE),(0xF7CF),(0xF7D0),
+(0xF7D1),(0xF7D2),(0xF7D3),(0xF7D4),(0xF7D5),(0xF7D6),(0xF7D7),(0xF7D8),
+(0xF7D9),(0xF7DA),(0xF7DB),(0xF7DC),(0xF7DD),(0xF7DE),(0xF7DF),(0xF7E0),
+(0xF7E1),(0xF7E2),(0xF7E3),(0xF7E4),(0xF7E5),(0xF7E6),(0xF7E7),(0xF7E8),
+(0xF7E9),(0xF7EA),(0xF7EB),(0xF7EC),(0xF7ED),(0xF7EE),(0xF7EF),(0xF7F0),
+(0xF7F1),(0xF7F2),(0xF7F3),(0xF7F4),(0xF7F5),(0xF7F6),(0xF7F7),(0xF7F8),
+(0xF7F9),(0xF7FA),(0xF7FB),(0xF7FC),(0xF7FD),(0xF7FE),
+(0xF8A1),(0xF8A2),(0xF8A3),(0xF8A4),(0xF8A5),(0xF8A6),(0xF8A7),(0xF8A8),
+(0xF8A9),(0xF8AA),(0xF8AB),(0xF8AC),(0xF8AD),(0xF8AE),(0xF8AF),(0xF8B0),
+(0xF8B1),(0xF8B2),(0xF8B3),(0xF8B4),(0xF8B5),(0xF8B6),(0xF8B7),(0xF8B8),
+(0xF8B9),(0xF8BA),(0xF8BB),(0xF8BC),(0xF8BD),(0xF8BE),(0xF8BF),(0xF8C0),
+(0xF8C1),(0xF8C2),(0xF8C3),(0xF8C4),(0xF8C5),(0xF8C6),(0xF8C7),(0xF8C8),
+(0xF8C9),(0xF8CA),(0xF8CB),(0xF8CC),(0xF8CD),(0xF8CE),(0xF8CF),(0xF8D0),
+(0xF8D1),(0xF8D2),(0xF8D3),(0xF8D4),(0xF8D5),(0xF8D6),(0xF8D7),(0xF8D8),
+(0xF8D9),(0xF8DA),(0xF8DB),(0xF8DC),(0xF8DD),(0xF8DE),(0xF8DF),(0xF8E0),
+(0xF8E1),(0xF8E2),(0xF8E3),(0xF8E4),(0xF8E5),(0xF8E6),(0xF8E7),(0xF8E8),
+(0xF8E9),(0xF8EA),(0xF8EB),(0xF8EC),(0xF8ED),(0xF8EE),(0xF8EF),(0xF8F0),
+(0xF8F1),(0xF8F2),(0xF8F3),(0xF8F4),(0xF8F5),(0xF8F6),(0xF8F7),(0xF8F8),
+(0xF8F9),(0xF8FA),(0xF8FB),(0xF8FC),(0xF8FD),(0xF8FE),
+(0xF9A1),(0xF9A2),(0xF9A3),(0xF9A4),(0xF9A5),(0xF9A6),(0xF9A7),(0xF9A8),
+(0xF9A9),(0xF9AA),(0xF9AB),(0xF9AC),(0xF9AD),(0xF9AE),(0xF9AF),(0xF9B0),
+(0xF9B1),(0xF9B2),(0xF9B3),(0xF9B4),(0xF9B5),(0xF9B6),(0xF9B7),(0xF9B8),
+(0xF9B9),(0xF9BA),(0xF9BB),(0xF9BC),(0xF9BD),(0xF9BE),(0xF9BF),(0xF9C0),
+(0xF9C1),(0xF9C2),(0xF9C3),(0xF9C4),(0xF9C5),(0xF9C6),(0xF9C7),(0xF9C8),
+(0xF9C9),(0xF9CA),(0xF9CB),(0xF9CC),(0xF9CD),(0xF9CE),(0xF9CF),(0xF9D0),
+(0xF9D1),(0xF9D2),(0xF9D3),(0xF9D4),(0xF9D5),(0xF9D6),(0xF9D7),(0xF9D8),
+(0xF9D9),(0xF9DA),(0xF9DB),(0xF9DC),(0xF9DD),(0xF9DE),(0xF9DF),(0xF9E0),
+(0xF9E1),(0xF9E2),(0xF9E3),(0xF9E4),(0xF9E5),(0xF9E6),(0xF9E7),(0xF9E8),
+(0xF9E9),(0xF9EA),(0xF9EB),(0xF9EC),(0xF9ED),(0xF9EE),(0xF9EF),(0xF9F0),
+(0xF9F1),(0xF9F2),(0xF9F3),(0xF9F4),(0xF9F5),(0xF9F6),(0xF9F7),(0xF9F8),
+(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC),(0xF9FD),(0xF9FE),
+(0xFAA1),(0xFAA2),(0xFAA3),(0xFAA4),(0xFAA5),(0xFAA6),(0xFAA7),(0xFAA8),
+(0xFAA9),(0xFAAA),(0xFAAB),(0xFAAC),(0xFAAD),(0xFAAE),(0xFAAF),(0xFAB0),
+(0xFAB1),(0xFAB2),(0xFAB3),(0xFAB4),(0xFAB5),(0xFAB6),(0xFAB7),(0xFAB8),
+(0xFAB9),(0xFABA),(0xFABB),(0xFABC),(0xFABD),(0xFABE),(0xFABF),(0xFAC0),
+(0xFAC1),(0xFAC2),(0xFAC3),(0xFAC4),(0xFAC5),(0xFAC6),(0xFAC7),(0xFAC8),
+(0xFAC9),(0xFACA),(0xFACB),(0xFACC),(0xFACD),(0xFACE),(0xFACF),(0xFAD0),
+(0xFAD1),(0xFAD2),(0xFAD3),(0xFAD4),(0xFAD5),(0xFAD6),(0xFAD7),(0xFAD8),
+(0xFAD9),(0xFADA),(0xFADB),(0xFADC),(0xFADD),(0xFADE),(0xFADF),(0xFAE0),
+(0xFAE1),(0xFAE2),(0xFAE3),(0xFAE4),(0xFAE5),(0xFAE6),(0xFAE7),(0xFAE8),
+(0xFAE9),(0xFAEA),(0xFAEB),(0xFAEC),(0xFAED),(0xFAEE),(0xFAEF),(0xFAF0),
+(0xFAF1),(0xFAF2),(0xFAF3),(0xFAF4),(0xFAF5),(0xFAF6),(0xFAF7),(0xFAF8),
+(0xFAF9),(0xFAFA),(0xFAFB),(0xFAFC),(0xFAFD),(0xFAFE),
+(0xFBA1),(0xFBA2),(0xFBA3),(0xFBA4),(0xFBA5),(0xFBA6),(0xFBA7),(0xFBA8),
+(0xFBA9),(0xFBAA),(0xFBAB),(0xFBAC),(0xFBAD),(0xFBAE),(0xFBAF),(0xFBB0),
+(0xFBB1),(0xFBB2),(0xFBB3),(0xFBB4),(0xFBB5),(0xFBB6),(0xFBB7),(0xFBB8),
+(0xFBB9),(0xFBBA),(0xFBBB),(0xFBBC),(0xFBBD),(0xFBBE),(0xFBBF),(0xFBC0),
+(0xFBC1),(0xFBC2),(0xFBC3),(0xFBC4),(0xFBC5),(0xFBC6),(0xFBC7),(0xFBC8),
+(0xFBC9),(0xFBCA),(0xFBCB),(0xFBCC),(0xFBCD),(0xFBCE),(0xFBCF),(0xFBD0),
+(0xFBD1),(0xFBD2),(0xFBD3),(0xFBD4),(0xFBD5),(0xFBD6),(0xFBD7),(0xFBD8),
+(0xFBD9),(0xFBDA),(0xFBDB),(0xFBDC),(0xFBDD),(0xFBDE),(0xFBDF),(0xFBE0),
+(0xFBE1),(0xFBE2),(0xFBE3),(0xFBE4),(0xFBE5),(0xFBE6),(0xFBE7),(0xFBE8),
+(0xFBE9),(0xFBEA),(0xFBEB),(0xFBEC),(0xFBED),(0xFBEE),(0xFBEF),(0xFBF0),
+(0xFBF1),(0xFBF2),(0xFBF3),(0xFBF4),(0xFBF5),(0xFBF6),(0xFBF7),(0xFBF8),
+(0xFBF9),(0xFBFA),(0xFBFB),(0xFBFC),(0xFBFD),(0xFBFE),
+(0xFCA1),(0xFCA2),(0xFCA3),(0xFCA4),(0xFCA5),(0xFCA6),(0xFCA7),(0xFCA8),
+(0xFCA9),(0xFCAA),(0xFCAB),(0xFCAC),(0xFCAD),(0xFCAE),(0xFCAF),(0xFCB0),
+(0xFCB1),(0xFCB2),(0xFCB3),(0xFCB4),(0xFCB5),(0xFCB6),(0xFCB7),(0xFCB8),
+(0xFCB9),(0xFCBA),(0xFCBB),(0xFCBC),(0xFCBD),(0xFCBE),(0xFCBF),(0xFCC0),
+(0xFCC1),(0xFCC2),(0xFCC3),(0xFCC4),(0xFCC5),(0xFCC6),(0xFCC7),(0xFCC8),
+(0xFCC9),(0xFCCA),(0xFCCB),(0xFCCC),(0xFCCD),(0xFCCE),(0xFCCF),(0xFCD0),
+(0xFCD1),(0xFCD2),(0xFCD3),(0xFCD4),(0xFCD5),(0xFCD6),(0xFCD7),(0xFCD8),
+(0xFCD9),(0xFCDA),(0xFCDB),(0xFCDC),(0xFCDD),(0xFCDE),(0xFCDF),(0xFCE0),
+(0xFCE1),(0xFCE2),(0xFCE3),(0xFCE4),(0xFCE5),(0xFCE6),(0xFCE7),(0xFCE8),
+(0xFCE9),(0xFCEA),(0xFCEB),(0xFCEC),(0xFCED),(0xFCEE),(0xFCEF),(0xFCF0),
+(0xFCF1),(0xFCF2),(0xFCF3),(0xFCF4),(0xFCF5),(0xFCF6),(0xFCF7),(0xFCF8),
+(0xFCF9),(0xFCFA),(0xFCFB),(0xFCFC),(0xFCFD),(0xFCFE),
+(0xFDA1),(0xFDA2),(0xFDA3),(0xFDA4),(0xFDA5),(0xFDA6),(0xFDA7),(0xFDA8),
+(0xFDA9),(0xFDAA),(0xFDAB),(0xFDAC),(0xFDAD),(0xFDAE),(0xFDAF),(0xFDB0),
+(0xFDB1),(0xFDB2),(0xFDB3),(0xFDB4),(0xFDB5),(0xFDB6),(0xFDB7),(0xFDB8),
+(0xFDB9),(0xFDBA),(0xFDBB),(0xFDBC),(0xFDBD),(0xFDBE),(0xFDBF),(0xFDC0),
+(0xFDC1),(0xFDC2),(0xFDC3),(0xFDC4),(0xFDC5),(0xFDC6),(0xFDC7),(0xFDC8),
+(0xFDC9),(0xFDCA),(0xFDCB),(0xFDCC),(0xFDCD),(0xFDCE),(0xFDCF),(0xFDD0),
+(0xFDD1),(0xFDD2),(0xFDD3),(0xFDD4),(0xFDD5),(0xFDD6),(0xFDD7),(0xFDD8),
+(0xFDD9),(0xFDDA),(0xFDDB),(0xFDDC),(0xFDDD),(0xFDDE),(0xFDDF),(0xFDE0),
+(0xFDE1),(0xFDE2),(0xFDE3),(0xFDE4),(0xFDE5),(0xFDE6),(0xFDE7),(0xFDE8),
+(0xFDE9),(0xFDEA),(0xFDEB),(0xFDEC),(0xFDED),(0xFDEE),(0xFDEF),(0xFDF0),
+(0xFDF1),(0xFDF2),(0xFDF3),(0xFDF4),(0xFDF5),(0xFDF6),(0xFDF7),(0xFDF8),
+(0xFDF9),(0xFDFA),(0xFDFB),(0xFDFC),(0xFDFD),(0xFDFE),
+(0xFEA1),(0xFEA2),(0xFEA3),(0xFEA4),(0xFEA5),(0xFEA6),(0xFEA7),(0xFEA8),
+(0xFEA9),(0xFEAA),(0xFEAB),(0xFEAC),(0xFEAD),(0xFEAE),(0xFEAF),(0xFEB0),
+(0xFEB1),(0xFEB2),(0xFEB3),(0xFEB4),(0xFEB5),(0xFEB6),(0xFEB7),(0xFEB8),
+(0xFEB9),(0xFEBA),(0xFEBB),(0xFEBC),(0xFEBD),(0xFEBE),(0xFEBF),(0xFEC0),
+(0xFEC1),(0xFEC2),(0xFEC3),(0xFEC4),(0xFEC5),(0xFEC6),(0xFEC7),(0xFEC8),
+(0xFEC9),(0xFECA),(0xFECB),(0xFECC),(0xFECD),(0xFECE),(0xFECF),(0xFED0),
+(0xFED1),(0xFED2),(0xFED3),(0xFED4),(0xFED5),(0xFED6),(0xFED7),(0xFED8),
+(0xFED9),(0xFEDA),(0xFEDB),(0xFEDC),(0xFEDD),(0xFEDE),(0xFEDF),(0xFEE0),
+(0xFEE1),(0xFEE2),(0xFEE3),(0xFEE4),(0xFEE5),(0xFEE6),(0xFEE7),(0xFEE8),
+(0xFEE9),(0xFEEA),(0xFEEB),(0xFEEC),(0xFEED),(0xFEEE),(0xFEEF),(0xFEF0),
+(0xFEF1),(0xFEF2),(0xFEF3),(0xFEF4),(0xFEF5),(0xFEF6),(0xFEF7),(0xFEF8),
+(0xFEF9),(0xFEFA),(0xFEFB),(0xFEFC),(0xFEFD),(0xFEFE),
+(0x8FF5A1),(0x8FF5A2),(0x8FF5A3),(0x8FF5A4),(0x8FF5A5),(0x8FF5A6),(0x8FF5A7),(0x8FF5A8),
+(0x8FF5A9),(0x8FF5AA),(0x8FF5AB),(0x8FF5AC),(0x8FF5AD),(0x8FF5AE),(0x8FF5AF),(0x8FF5B0),
+(0x8FF5B1),(0x8FF5B2),(0x8FF5B3),(0x8FF5B4),(0x8FF5B5),(0x8FF5B6),(0x8FF5B7),(0x8FF5B8),
+(0x8FF5B9),(0x8FF5BA),(0x8FF5BB),(0x8FF5BC),(0x8FF5BD),(0x8FF5BE),(0x8FF5BF),(0x8FF5C0),
+(0x8FF5C1),(0x8FF5C2),(0x8FF5C3),(0x8FF5C4),(0x8FF5C5),(0x8FF5C6),(0x8FF5C7),(0x8FF5C8),
+(0x8FF5C9),(0x8FF5CA),(0x8FF5CB),(0x8FF5CC),(0x8FF5CD),(0x8FF5CE),(0x8FF5CF),(0x8FF5D0),
+(0x8FF5D1),(0x8FF5D2),(0x8FF5D3),(0x8FF5D4),(0x8FF5D5),(0x8FF5D6),(0x8FF5D7),(0x8FF5D8),
+(0x8FF5D9),(0x8FF5DA),(0x8FF5DB),(0x8FF5DC),(0x8FF5DD),(0x8FF5DE),(0x8FF5DF),(0x8FF5E0),
+(0x8FF5E1),(0x8FF5E2),(0x8FF5E3),(0x8FF5E4),(0x8FF5E5),(0x8FF5E6),(0x8FF5E7),(0x8FF5E8),
+(0x8FF5E9),(0x8FF5EA),(0x8FF5EB),(0x8FF5EC),(0x8FF5ED),(0x8FF5EE),(0x8FF5EF),(0x8FF5F0),
+(0x8FF5F1),(0x8FF5F2),(0x8FF5F3),(0x8FF5F4),(0x8FF5F5),(0x8FF5F6),(0x8FF5F7),(0x8FF5F8),
+(0x8FF5F9),(0x8FF5FA),(0x8FF5FB),(0x8FF5FC),(0x8FF5FD),(0x8FF5FE),
+(0x8FF6A1),(0x8FF6A2),(0x8FF6A3),(0x8FF6A4),(0x8FF6A5),(0x8FF6A6),(0x8FF6A7),(0x8FF6A8),
+(0x8FF6A9),(0x8FF6AA),(0x8FF6AB),(0x8FF6AC),(0x8FF6AD),(0x8FF6AE),(0x8FF6AF),(0x8FF6B0),
+(0x8FF6B1),(0x8FF6B2),(0x8FF6B3),(0x8FF6B4),(0x8FF6B5),(0x8FF6B6),(0x8FF6B7),(0x8FF6B8),
+(0x8FF6B9),(0x8FF6BA),(0x8FF6BB),(0x8FF6BC),(0x8FF6BD),(0x8FF6BE),(0x8FF6BF),(0x8FF6C0),
+(0x8FF6C1),(0x8FF6C2),(0x8FF6C3),(0x8FF6C4),(0x8FF6C5),(0x8FF6C6),(0x8FF6C7),(0x8FF6C8),
+(0x8FF6C9),(0x8FF6CA),(0x8FF6CB),(0x8FF6CC),(0x8FF6CD),(0x8FF6CE),(0x8FF6CF),(0x8FF6D0),
+(0x8FF6D1),(0x8FF6D2),(0x8FF6D3),(0x8FF6D4),(0x8FF6D5),(0x8FF6D6),(0x8FF6D7),(0x8FF6D8),
+(0x8FF6D9),(0x8FF6DA),(0x8FF6DB),(0x8FF6DC),(0x8FF6DD),(0x8FF6DE),(0x8FF6DF),(0x8FF6E0),
+(0x8FF6E1),(0x8FF6E2),(0x8FF6E3),(0x8FF6E4),(0x8FF6E5),(0x8FF6E6),(0x8FF6E7),(0x8FF6E8),
+(0x8FF6E9),(0x8FF6EA),(0x8FF6EB),(0x8FF6EC),(0x8FF6ED),(0x8FF6EE),(0x8FF6EF),(0x8FF6F0),
+(0x8FF6F1),(0x8FF6F2),(0x8FF6F3),(0x8FF6F4),(0x8FF6F5),(0x8FF6F6),(0x8FF6F7),(0x8FF6F8),
+(0x8FF6F9),(0x8FF6FA),(0x8FF6FB),(0x8FF6FC),(0x8FF6FD),(0x8FF6FE),
+(0x8FF7A1),(0x8FF7A2),(0x8FF7A3),(0x8FF7A4),(0x8FF7A5),(0x8FF7A6),(0x8FF7A7),(0x8FF7A8),
+(0x8FF7A9),(0x8FF7AA),(0x8FF7AB),(0x8FF7AC),(0x8FF7AD),(0x8FF7AE),(0x8FF7AF),(0x8FF7B0),
+(0x8FF7B1),(0x8FF7B2),(0x8FF7B3),(0x8FF7B4),(0x8FF7B5),(0x8FF7B6),(0x8FF7B7),(0x8FF7B8),
+(0x8FF7B9),(0x8FF7BA),(0x8FF7BB),(0x8FF7BC),(0x8FF7BD),(0x8FF7BE),(0x8FF7BF),(0x8FF7C0),
+(0x8FF7C1),(0x8FF7C2),(0x8FF7C3),(0x8FF7C4),(0x8FF7C5),(0x8FF7C6),(0x8FF7C7),(0x8FF7C8),
+(0x8FF7C9),(0x8FF7CA),(0x8FF7CB),(0x8FF7CC),(0x8FF7CD),(0x8FF7CE),(0x8FF7CF),(0x8FF7D0),
+(0x8FF7D1),(0x8FF7D2),(0x8FF7D3),(0x8FF7D4),(0x8FF7D5),(0x8FF7D6),(0x8FF7D7),(0x8FF7D8),
+(0x8FF7D9),(0x8FF7DA),(0x8FF7DB),(0x8FF7DC),(0x8FF7DD),(0x8FF7DE),(0x8FF7DF),(0x8FF7E0),
+(0x8FF7E1),(0x8FF7E2),(0x8FF7E3),(0x8FF7E4),(0x8FF7E5),(0x8FF7E6),(0x8FF7E7),(0x8FF7E8),
+(0x8FF7E9),(0x8FF7EA),(0x8FF7EB),(0x8FF7EC),(0x8FF7ED),(0x8FF7EE),(0x8FF7EF),(0x8FF7F0),
+(0x8FF7F1),(0x8FF7F2),(0x8FF7F3),(0x8FF7F4),(0x8FF7F5),(0x8FF7F6),(0x8FF7F7),(0x8FF7F8),
+(0x8FF7F9),(0x8FF7FA),(0x8FF7FB),(0x8FF7FC),(0x8FF7FD),(0x8FF7FE),
+(0x8FF8A1),(0x8FF8A2),(0x8FF8A3),(0x8FF8A4),(0x8FF8A5),(0x8FF8A6),(0x8FF8A7),(0x8FF8A8),
+(0x8FF8A9),(0x8FF8AA),(0x8FF8AB),(0x8FF8AC),(0x8FF8AD),(0x8FF8AE),(0x8FF8AF),(0x8FF8B0),
+(0x8FF8B1),(0x8FF8B2),(0x8FF8B3),(0x8FF8B4),(0x8FF8B5),(0x8FF8B6),(0x8FF8B7),(0x8FF8B8),
+(0x8FF8B9),(0x8FF8BA),(0x8FF8BB),(0x8FF8BC),(0x8FF8BD),(0x8FF8BE),(0x8FF8BF),(0x8FF8C0),
+(0x8FF8C1),(0x8FF8C2),(0x8FF8C3),(0x8FF8C4),(0x8FF8C5),(0x8FF8C6),(0x8FF8C7),(0x8FF8C8),
+(0x8FF8C9),(0x8FF8CA),(0x8FF8CB),(0x8FF8CC),(0x8FF8CD),(0x8FF8CE),(0x8FF8CF),(0x8FF8D0),
+(0x8FF8D1),(0x8FF8D2),(0x8FF8D3),(0x8FF8D4),(0x8FF8D5),(0x8FF8D6),(0x8FF8D7),(0x8FF8D8),
+(0x8FF8D9),(0x8FF8DA),(0x8FF8DB),(0x8FF8DC),(0x8FF8DD),(0x8FF8DE),(0x8FF8DF),(0x8FF8E0),
+(0x8FF8E1),(0x8FF8E2),(0x8FF8E3),(0x8FF8E4),(0x8FF8E5),(0x8FF8E6),(0x8FF8E7),(0x8FF8E8),
+(0x8FF8E9),(0x8FF8EA),(0x8FF8EB),(0x8FF8EC),(0x8FF8ED),(0x8FF8EE),(0x8FF8EF),(0x8FF8F0),
+(0x8FF8F1),(0x8FF8F2),(0x8FF8F3),(0x8FF8F4),(0x8FF8F5),(0x8FF8F6),(0x8FF8F7),(0x8FF8F8),
+(0x8FF8F9),(0x8FF8FA),(0x8FF8FB),(0x8FF8FC),(0x8FF8FD),(0x8FF8FE),
+(0x8FF9A1),(0x8FF9A2),(0x8FF9A3),(0x8FF9A4),(0x8FF9A5),(0x8FF9A6),(0x8FF9A7),(0x8FF9A8),
+(0x8FF9A9),(0x8FF9AA),(0x8FF9AB),(0x8FF9AC),(0x8FF9AD),(0x8FF9AE),(0x8FF9AF),(0x8FF9B0),
+(0x8FF9B1),(0x8FF9B2),(0x8FF9B3),(0x8FF9B4),(0x8FF9B5),(0x8FF9B6),(0x8FF9B7),(0x8FF9B8),
+(0x8FF9B9),(0x8FF9BA),(0x8FF9BB),(0x8FF9BC),(0x8FF9BD),(0x8FF9BE),(0x8FF9BF),(0x8FF9C0),
+(0x8FF9C1),(0x8FF9C2),(0x8FF9C3),(0x8FF9C4),(0x8FF9C5),(0x8FF9C6),(0x8FF9C7),(0x8FF9C8),
+(0x8FF9C9),(0x8FF9CA),(0x8FF9CB),(0x8FF9CC),(0x8FF9CD),(0x8FF9CE),(0x8FF9CF),(0x8FF9D0),
+(0x8FF9D1),(0x8FF9D2),(0x8FF9D3),(0x8FF9D4),(0x8FF9D5),(0x8FF9D6),(0x8FF9D7),(0x8FF9D8),
+(0x8FF9D9),(0x8FF9DA),(0x8FF9DB),(0x8FF9DC),(0x8FF9DD),(0x8FF9DE),(0x8FF9DF),(0x8FF9E0),
+(0x8FF9E1),(0x8FF9E2),(0x8FF9E3),(0x8FF9E4),(0x8FF9E5),(0x8FF9E6),(0x8FF9E7),(0x8FF9E8),
+(0x8FF9E9),(0x8FF9EA),(0x8FF9EB),(0x8FF9EC),(0x8FF9ED),(0x8FF9EE),(0x8FF9EF),(0x8FF9F0),
+(0x8FF9F1),(0x8FF9F2),(0x8FF9F3),(0x8FF9F4),(0x8FF9F5),(0x8FF9F6),(0x8FF9F7),(0x8FF9F8),
+(0x8FF9F9),(0x8FF9FA),(0x8FF9FB),(0x8FF9FC),(0x8FF9FD),(0x8FF9FE),
+(0x8FFAA1),(0x8FFAA2),(0x8FFAA3),(0x8FFAA4),(0x8FFAA5),(0x8FFAA6),(0x8FFAA7),(0x8FFAA8),
+(0x8FFAA9),(0x8FFAAA),(0x8FFAAB),(0x8FFAAC),(0x8FFAAD),(0x8FFAAE),(0x8FFAAF),(0x8FFAB0),
+(0x8FFAB1),(0x8FFAB2),(0x8FFAB3),(0x8FFAB4),(0x8FFAB5),(0x8FFAB6),(0x8FFAB7),(0x8FFAB8),
+(0x8FFAB9),(0x8FFABA),(0x8FFABB),(0x8FFABC),(0x8FFABD),(0x8FFABE),(0x8FFABF),(0x8FFAC0),
+(0x8FFAC1),(0x8FFAC2),(0x8FFAC3),(0x8FFAC4),(0x8FFAC5),(0x8FFAC6),(0x8FFAC7),(0x8FFAC8),
+(0x8FFAC9),(0x8FFACA),(0x8FFACB),(0x8FFACC),(0x8FFACD),(0x8FFACE),(0x8FFACF),(0x8FFAD0),
+(0x8FFAD1),(0x8FFAD2),(0x8FFAD3),(0x8FFAD4),(0x8FFAD5),(0x8FFAD6),(0x8FFAD7),(0x8FFAD8),
+(0x8FFAD9),(0x8FFADA),(0x8FFADB),(0x8FFADC),(0x8FFADD),(0x8FFADE),(0x8FFADF),(0x8FFAE0),
+(0x8FFAE1),(0x8FFAE2),(0x8FFAE3),(0x8FFAE4),(0x8FFAE5),(0x8FFAE6),(0x8FFAE7),(0x8FFAE8),
+(0x8FFAE9),(0x8FFAEA),(0x8FFAEB),(0x8FFAEC),(0x8FFAED),(0x8FFAEE),(0x8FFAEF),(0x8FFAF0),
+(0x8FFAF1),(0x8FFAF2),(0x8FFAF3),(0x8FFAF4),(0x8FFAF5),(0x8FFAF6),(0x8FFAF7),(0x8FFAF8),
+(0x8FFAF9),(0x8FFAFA),(0x8FFAFB),(0x8FFAFC),(0x8FFAFD),(0x8FFAFE),
+(0x8FFBA1),(0x8FFBA2),(0x8FFBA3),(0x8FFBA4),(0x8FFBA5),(0x8FFBA6),(0x8FFBA7),(0x8FFBA8),
+(0x8FFBA9),(0x8FFBAA),(0x8FFBAB),(0x8FFBAC),(0x8FFBAD),(0x8FFBAE),(0x8FFBAF),(0x8FFBB0),
+(0x8FFBB1),(0x8FFBB2),(0x8FFBB3),(0x8FFBB4),(0x8FFBB5),(0x8FFBB6),(0x8FFBB7),(0x8FFBB8),
+(0x8FFBB9),(0x8FFBBA),(0x8FFBBB),(0x8FFBBC),(0x8FFBBD),(0x8FFBBE),(0x8FFBBF),(0x8FFBC0),
+(0x8FFBC1),(0x8FFBC2),(0x8FFBC3),(0x8FFBC4),(0x8FFBC5),(0x8FFBC6),(0x8FFBC7),(0x8FFBC8),
+(0x8FFBC9),(0x8FFBCA),(0x8FFBCB),(0x8FFBCC),(0x8FFBCD),(0x8FFBCE),(0x8FFBCF),(0x8FFBD0),
+(0x8FFBD1),(0x8FFBD2),(0x8FFBD3),(0x8FFBD4),(0x8FFBD5),(0x8FFBD6),(0x8FFBD7),(0x8FFBD8),
+(0x8FFBD9),(0x8FFBDA),(0x8FFBDB),(0x8FFBDC),(0x8FFBDD),(0x8FFBDE),(0x8FFBDF),(0x8FFBE0),
+(0x8FFBE1),(0x8FFBE2),(0x8FFBE3),(0x8FFBE4),(0x8FFBE5),(0x8FFBE6),(0x8FFBE7),(0x8FFBE8),
+(0x8FFBE9),(0x8FFBEA),(0x8FFBEB),(0x8FFBEC),(0x8FFBED),(0x8FFBEE),(0x8FFBEF),(0x8FFBF0),
+(0x8FFBF1),(0x8FFBF2),(0x8FFBF3),(0x8FFBF4),(0x8FFBF5),(0x8FFBF6),(0x8FFBF7),(0x8FFBF8),
+(0x8FFBF9),(0x8FFBFA),(0x8FFBFB),(0x8FFBFC),(0x8FFBFD),(0x8FFBFE),
+(0x8FFCA1),(0x8FFCA2),(0x8FFCA3),(0x8FFCA4),(0x8FFCA5),(0x8FFCA6),(0x8FFCA7),(0x8FFCA8),
+(0x8FFCA9),(0x8FFCAA),(0x8FFCAB),(0x8FFCAC),(0x8FFCAD),(0x8FFCAE),(0x8FFCAF),(0x8FFCB0),
+(0x8FFCB1),(0x8FFCB2),(0x8FFCB3),(0x8FFCB4),(0x8FFCB5),(0x8FFCB6),(0x8FFCB7),(0x8FFCB8),
+(0x8FFCB9),(0x8FFCBA),(0x8FFCBB),(0x8FFCBC),(0x8FFCBD),(0x8FFCBE),(0x8FFCBF),(0x8FFCC0),
+(0x8FFCC1),(0x8FFCC2),(0x8FFCC3),(0x8FFCC4),(0x8FFCC5),(0x8FFCC6),(0x8FFCC7),(0x8FFCC8),
+(0x8FFCC9),(0x8FFCCA),(0x8FFCCB),(0x8FFCCC),(0x8FFCCD),(0x8FFCCE),(0x8FFCCF),(0x8FFCD0),
+(0x8FFCD1),(0x8FFCD2),(0x8FFCD3),(0x8FFCD4),(0x8FFCD5),(0x8FFCD6),(0x8FFCD7),(0x8FFCD8),
+(0x8FFCD9),(0x8FFCDA),(0x8FFCDB),(0x8FFCDC),(0x8FFCDD),(0x8FFCDE),(0x8FFCDF),(0x8FFCE0),
+(0x8FFCE1),(0x8FFCE2),(0x8FFCE3),(0x8FFCE4),(0x8FFCE5),(0x8FFCE6),(0x8FFCE7),(0x8FFCE8),
+(0x8FFCE9),(0x8FFCEA),(0x8FFCEB),(0x8FFCEC),(0x8FFCED),(0x8FFCEE),(0x8FFCEF),(0x8FFCF0),
+(0x8FFCF1),(0x8FFCF2),(0x8FFCF3),(0x8FFCF4),(0x8FFCF5),(0x8FFCF6),(0x8FFCF7),(0x8FFCF8),
+(0x8FFCF9),(0x8FFCFA),(0x8FFCFB),(0x8FFCFC),(0x8FFCFD),(0x8FFCFE),
+(0x8FFDA1),(0x8FFDA2),(0x8FFDA3),(0x8FFDA4),(0x8FFDA5),(0x8FFDA6),(0x8FFDA7),(0x8FFDA8),
+(0x8FFDA9),(0x8FFDAA),(0x8FFDAB),(0x8FFDAC),(0x8FFDAD),(0x8FFDAE),(0x8FFDAF),(0x8FFDB0),
+(0x8FFDB1),(0x8FFDB2),(0x8FFDB3),(0x8FFDB4),(0x8FFDB5),(0x8FFDB6),(0x8FFDB7),(0x8FFDB8),
+(0x8FFDB9),(0x8FFDBA),(0x8FFDBB),(0x8FFDBC),(0x8FFDBD),(0x8FFDBE),(0x8FFDBF),(0x8FFDC0),
+(0x8FFDC1),(0x8FFDC2),(0x8FFDC3),(0x8FFDC4),(0x8FFDC5),(0x8FFDC6),(0x8FFDC7),(0x8FFDC8),
+(0x8FFDC9),(0x8FFDCA),(0x8FFDCB),(0x8FFDCC),(0x8FFDCD),(0x8FFDCE),(0x8FFDCF),(0x8FFDD0),
+(0x8FFDD1),(0x8FFDD2),(0x8FFDD3),(0x8FFDD4),(0x8FFDD5),(0x8FFDD6),(0x8FFDD7),(0x8FFDD8),
+(0x8FFDD9),(0x8FFDDA),(0x8FFDDB),(0x8FFDDC),(0x8FFDDD),(0x8FFDDE),(0x8FFDDF),(0x8FFDE0),
+(0x8FFDE1),(0x8FFDE2),(0x8FFDE3),(0x8FFDE4),(0x8FFDE5),(0x8FFDE6),(0x8FFDE7),(0x8FFDE8),
+(0x8FFDE9),(0x8FFDEA),(0x8FFDEB),(0x8FFDEC),(0x8FFDED),(0x8FFDEE),(0x8FFDEF),(0x8FFDF0),
+(0x8FFDF1),(0x8FFDF2),(0x8FFDF3),(0x8FFDF4),(0x8FFDF5),(0x8FFDF6),(0x8FFDF7),(0x8FFDF8),
+(0x8FFDF9),(0x8FFDFA),(0x8FFDFB),(0x8FFDFC),(0x8FFDFD),(0x8FFDFE),
+(0x8FFEA1),(0x8FFEA2),(0x8FFEA3),(0x8FFEA4),(0x8FFEA5),(0x8FFEA6),(0x8FFEA7),(0x8FFEA8),
+(0x8FFEA9),(0x8FFEAA),(0x8FFEAB),(0x8FFEAC),(0x8FFEAD),(0x8FFEAE),(0x8FFEAF),(0x8FFEB0),
+(0x8FFEB1),(0x8FFEB2),(0x8FFEB3),(0x8FFEB4),(0x8FFEB5),(0x8FFEB6),(0x8FFEB7),(0x8FFEB8),
+(0x8FFEB9),(0x8FFEBA),(0x8FFEBB),(0x8FFEBC),(0x8FFEBD),(0x8FFEBE),(0x8FFEBF),(0x8FFEC0),
+(0x8FFEC1),(0x8FFEC2),(0x8FFEC3),(0x8FFEC4),(0x8FFEC5),(0x8FFEC6),(0x8FFEC7),(0x8FFEC8),
+(0x8FFEC9),(0x8FFECA),(0x8FFECB),(0x8FFECC),(0x8FFECD),(0x8FFECE),(0x8FFECF),(0x8FFED0),
+(0x8FFED1),(0x8FFED2),(0x8FFED3),(0x8FFED4),(0x8FFED5),(0x8FFED6),(0x8FFED7),(0x8FFED8),
+(0x8FFED9),(0x8FFEDA),(0x8FFEDB),(0x8FFEDC),(0x8FFEDD),(0x8FFEDE),(0x8FFEDF),(0x8FFEE0),
+(0x8FFEE1),(0x8FFEE2),(0x8FFEE3),(0x8FFEE4),(0x8FFEE5),(0x8FFEE6),(0x8FFEE7),(0x8FFEE8),
+(0x8FFEE9),(0x8FFEEA),(0x8FFEEB),(0x8FFEEC),(0x8FFEED),(0x8FFEEE),(0x8FFEEF),(0x8FFEF0),
+(0x8FFEF1),(0x8FFEF2),(0x8FFEF3),(0x8FFEF4),(0x8FFEF5),(0x8FFEF6),(0x8FFEF7),(0x8FFEF8),
+(0x8FFEF9),(0x8FFEFA),(0x8FFEFB),(0x8FFEFC),(0x8FFEFD),(0x8FFEFE);
+
+#Test that all the characters are stored correctly
+SELECT HEX(c1) FROM t1;
+
+#Test conversion to ucs2
+CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1;
+SELECT HEX(c1) FROM t2;
+
+#Test round trip conversion
+CREATE TABLE t3 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t2;
+SELECT HEX(c1) FROM t3;
+
+#Test conversion to cp932
+CREATE TABLE t4 SELECT CONVERT(c1 USING cp932) AS c1 FROM t1;
+SELECT HEX(c1) FROM t4;
+
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE t3;
+DROP TABLE t4;
+
+#Test bug#11717
+CREATE TABLE t1(c1 varchar(10)) default character set = eucjpms;
+
+insert into t1 values(_ucs2 0x00F7);
+insert into t1 values(_eucjpms 0xA1E0);
+insert into t1 values(_ujis 0xA1E0);
+insert into t1 values(_sjis 0x8180);
+insert into t1 values(_cp932 0x8180);
+
+SELECT HEX(c1) FROM t1;
+
+DROP TABLE t1;
+
+SET collation_connection='eucjpms_japanese_ci';
+-- source include/ctype_filesort.inc
+SET collation_connection='eucjpms_bin';
+-- source include/ctype_filesort.inc
+
+
+#
+# Bugs#15375: Unassigned multibyte codes are broken
+# into parts when converting to Unicode.
+# This query should return 0x003F0041. I.e. it should
+# scan unassigned double-byte character 0xA5FE, convert
+# it as QUESTION MARK 0x003F and then scan the next
+# character, which is a single byte character 0x41.
+#
+select hex(convert(_eucjpms 0xA5FE41 using ucs2));
+# This one should return 0x003F0041:
+# scan unassigned three-byte character 0x8FABF8,
+# convert it as QUESTION MARK 0x003F and then scan
+# the next character, which is a single byte character 0x41.
+select hex(convert(_eucjpms 0x8FABF841 using ucs2));
+
diff --git a/mysql-test/t/ctype_gbk.test b/mysql-test/t/ctype_gbk.test
index 7aec48586d8..5ff138fa97b 100644
--- a/mysql-test/t/ctype_gbk.test
+++ b/mysql-test/t/ctype_gbk.test
@@ -42,3 +42,13 @@ DROP TABLE t1;
select hex(convert(_gbk 0xA14041 using ucs2));
# End of 4.1 tests
+
+#
+# Bug#21620 ALTER TABLE affects other columns
+#
+create table t1 (c1 text not null, c2 text not null) character set gbk;
+alter table t1 change c1 c1 mediumtext character set gbk not null;
+show create table t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/ctype_latin1.test b/mysql-test/t/ctype_latin1.test
index dead9a7a0bc..5727603f1d3 100644
--- a/mysql-test/t/ctype_latin1.test
+++ b/mysql-test/t/ctype_latin1.test
@@ -110,3 +110,10 @@ SELECT convert(@str collate latin1_german2_ci using utf8);
SELECT convert(@str collate latin1_swedish_ci using utf8);
# End of 4.1 tests
+
+#
+# Bug#29499 Converting 'del' from ascii to Unicode results in 'question mark'
+#
+select hex(cast(_ascii 0x7f as char(1) character set latin1));
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/ctype_latin1_de.test b/mysql-test/t/ctype_latin1_de.test
index 58153913648..d6a11a22857 100644
--- a/mysql-test/t/ctype_latin1_de.test
+++ b/mysql-test/t/ctype_latin1_de.test
@@ -66,7 +66,7 @@ drop table t1;
#
# The below checks both binary and character comparisons.
#
-create table t1 (word varchar(255) not null, word2 varchar(255) not null, index(word));
+create table t1 (word varchar(255) not null, word2 varchar(255) not null default '', index(word));
show create table t1;
insert into t1 (word) values ('ss'),(0xDF),(0xE4),('ae');
update t1 set word2=word;
@@ -134,3 +134,11 @@ SELECT * FROM t1 WHERE col1='ß' ORDER BY col1, BINARY col1;
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Bug#9509
+#
+create table t1 (s1 char(5) character set latin1 collate latin1_german2_ci);
+insert into t1 values (0xf6) /* this is o-umlaut */;
+select * from t1 where length(s1)=1 and s1='oe';
+drop table t1;
diff --git a/mysql-test/t/ctype_latin2_ch.test b/mysql-test/t/ctype_latin2_ch.test
index 626d83fa17d..3925d02659d 100644
--- a/mysql-test/t/ctype_latin2_ch.test
+++ b/mysql-test/t/ctype_latin2_ch.test
@@ -28,3 +28,5 @@ select * from t1 ignore index (primary) where tt like 'AA%';
select * from t1 where tt like '%AA%';
# End of 4.1 tests
+
+drop table t1;
diff --git a/mysql-test/t/ctype_ldml-master.opt b/mysql-test/t/ctype_ldml-master.opt
new file mode 100644
index 00000000000..a2532d4cfd9
--- /dev/null
+++ b/mysql-test/t/ctype_ldml-master.opt
@@ -0,0 +1,2 @@
+--character-sets-dir=$MYSQL_TEST_DIR/std_data/
+
diff --git a/mysql-test/t/ctype_ldml.test b/mysql-test/t/ctype_ldml.test
new file mode 100644
index 00000000000..fc6ed0f2579
--- /dev/null
+++ b/mysql-test/t/ctype_ldml.test
@@ -0,0 +1,63 @@
+--source include/have_ucs2.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+set names utf8;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+show variables like 'character_sets_dir%';
+
+show collation like 'utf8_test_ci';
+create table t1 (c1 char(1) character set utf8 collate utf8_test_ci);
+insert into t1 values ('a');
+select * from t1 where c1='b';
+drop table t1;
+
+show collation like 'ucs2_test_ci';
+create table t1 (c1 char(1) character set ucs2 collate ucs2_test_ci);
+insert into t1 values ('a');
+select * from t1 where c1='b';
+drop table t1;
+
+#
+# Vietnamese experimental collation
+#
+
+show collation like 'ucs2_vn_ci';
+create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
+insert into t1 values (0x0061),(0x0041),(0x00E0),(0x00C0),(0x1EA3),(0x1EA2),
+ (0x00E3),(0x00C3),(0x00E1),(0x00C1),(0x1EA1),(0x1EA0);
+insert into t1 values (0x0103),(0x0102),(0x1EB1),(0x1EB0),(0x1EB3),(0x1EB2),
+ (0x1EB5),(0x1EB4),(0x1EAF),(0x1EAE),(0x1EB7),(0x1EB6);
+insert into t1 values (0x00E2),(0x00C2),(0x1EA7),(0x1EA6),(0x1EA9),(0x1EA8),
+ (0x1EAB),(0x1EAA),(0x1EA5),(0x1EA4),(0x1EAD),(0x1EAC);
+insert into t1 values ('b'),('B'),('c'),('C');
+insert into t1 values ('d'),('D'),(0x0111),(0x0110);
+insert into t1 values (0x0065),(0x0045),(0x00E8),(0x00C8),(0x1EBB),(0x1EBA),
+ (0x1EBD),(0x1EBC),(0x00E9),(0x00C9),(0x1EB9),(0x1EB8);
+insert into t1 values (0x00EA),(0x00CA),(0x1EC1),(0x1EC0),(0x1EC3),(0x1EC2),
+ (0x1EC5),(0x1EC4),(0x1EBF),(0x1EBE),(0x1EC7),(0x1EC6);
+insert into t1 values ('g'),('G'),('h'),('H');
+insert into t1 values (0x0069),(0x0049),(0x00EC),(0x00CC),(0x1EC9),(0x1EC8),
+ (0x0129),(0x0128),(0x00ED),(0x00CD),(0x1ECB),(0x1ECA);
+insert into t1 values ('k'),('K'),('l'),('L'),('m'),('M');
+insert into t1 values (0x006F),(0x004F),(0x00F2),(0x00D2),(0x1ECF),(0x1ECE),
+ (0x00F5),(0x00D5),(0x00F3),(0x00D3),(0x1ECD),(0x1ECC);
+insert into t1 values (0x00F4),(0x00D4),(0x1ED3),(0x1ED2),(0x1ED5),(0x1ED4),
+ (0x1ED7),(0x1ED6),(0x1ED1),(0x1ED0),(0x1ED9),(0x1ED8);
+insert into t1 values (0x01A1),(0x01A0),(0x1EDD),(0x1EDC),(0x1EDF),(0x1EDE),
+ (0x1EE1),(0x1EE0),(0x1EDB),(0x1EDA),(0x1EE3),(0x1EE2);
+insert into t1 values ('p'),('P'),('q'),('Q'),('r'),('R'),('s'),('S'),('t'),('T');
+insert into t1 values (0x0075),(0x0055),(0x00F9),(0x00D9),(0x1EE7),(0x1EE6),
+ (0x0169),(0x0168),(0x00FA),(0x00DA),(0x1EE5),(0x1EE4);
+insert into t1 values (0x01B0),(0x01AF),(0x1EEB),(0x1EEA),(0x1EED),(0x1EEC),
+ (0x1EEF),(0x1EEE),(0x1EE9),(0x1EE8),(0x1EF1),(0x1EF0);
+insert into t1 values ('v'),('V'),('x'),('X');
+insert into t1 values (0x0079),(0x0059),(0x1EF3),(0x1EF2),(0x1EF7),(0x1EF6),
+ (0x1EF9),(0x1EF8),(0x00FD),(0x00DD),(0x1EF5),(0x1EF4);
+select hex(c1) as h, c1 from t1 order by c1, h;
+select group_concat(hex(c1) order by hex(c1)) from t1 group by c1;
+select group_concat(c1 order by hex(c1) SEPARATOR '') from t1 group by c1;
+drop table t1;
diff --git a/mysql-test/t/ctype_many.test b/mysql-test/t/ctype_many.test
index 26dc6282e1e..0903c3dd7fa 100644
--- a/mysql-test/t/ctype_many.test
+++ b/mysql-test/t/ctype_many.test
@@ -8,7 +8,7 @@ SET CHARACTER SET latin1;
CREATE TABLE t1 (
comment CHAR(32) ASCII NOT NULL,
- koi8_ru_f CHAR(32) CHARACTER SET koi8r NOT NULL
+ koi8_ru_f CHAR(32) CHARACTER SET koi8r NOT NULL default ''
) CHARSET=latin5;
SHOW CREATE TABLE t1;
@@ -142,13 +142,13 @@ INSERT INTO t1 (koi8_ru_f,comment) VALUES (_koi8r'ñ','CYR CAPIT YA');
SET CHARACTER SET utf8;
SELECT koi8_ru_f,MIN(comment),COUNT(*) FROM t1 GROUP BY 1;
-ALTER TABLE t1 ADD utf8_f CHAR(32) CHARACTER SET utf8 NOT NULL;
+ALTER TABLE t1 ADD utf8_f CHAR(32) CHARACTER SET utf8 NOT NULL default '';
UPDATE t1 SET utf8_f=CONVERT(koi8_ru_f USING utf8);
SET CHARACTER SET koi8r;
SELECT * FROM t1;
-ALTER TABLE t1 ADD bin_f CHAR(32) BYTE NOT NULL;
+ALTER TABLE t1 ADD bin_f CHAR(1) BYTE NOT NULL default '';
UPDATE t1 SET bin_f=koi8_ru_f;
SELECT COUNT(DISTINCT bin_f),COUNT(DISTINCT koi8_ru_f),COUNT(DISTINCT utf8_f) FROM t1;
@@ -204,7 +204,7 @@ UPDATE t1 SET greek_f=CONVERT(ucs2_f USING greek) WHERE comment LIKE _latin2'GRE
UPDATE t1 SET armscii8_f=CONVERT(ucs2_f USING armscii8) WHERE comment LIKE _latin2'ARM%';
UPDATE t1 SET utf8_f=CONVERT(ucs2_f USING utf8) WHERE utf8_f=_utf8'';
UPDATE t1 SET ucs2_f=CONVERT(utf8_f USING ucs2) WHERE ucs2_f=_ucs2'';
-SELECT * FROM t1;
+SELECT comment, koi8_ru_f, utf8_f, hex(bin_f), ucs2_f, armscii8_f, greek_f FROM t1;
SET CHARACTER SET 'binary';
SELECT * FROM t1;
SELECT min(comment),count(*) FROM t1 GROUP BY ucs2_f;
diff --git a/mysql-test/t/ctype_recoding.test b/mysql-test/t/ctype_recoding.test
index ddaaa7b9e4f..1f55aea414a 100644
--- a/mysql-test/t/ctype_recoding.test
+++ b/mysql-test/t/ctype_recoding.test
@@ -153,6 +153,16 @@ drop table t1;
set names latin1;
#
+# Test the same with ascii
+#
+set names ascii;
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a');
+select * from t1 where a='a';
+drop table t1;
+set names latin1;
+
+#
# Bug#10446 Illegal mix of collations
#
create table t1 (a char(10) character set utf8 collate utf8_bin);
@@ -187,7 +197,7 @@ select rpad(c1,3,'ö'), rpad('ö',3,c1) from t1;
#select case c1 when 'ß' then 'ß' when 'ö' then 'ö' else 'c' end from t1;
#select export_set(5,c1,'ö'), export_set(5,'ö',c1) from t1;
drop table t1;
-
+
#
# Bug 20695: problem with field default value's character set
#
@@ -199,4 +209,4 @@ drop table t1;
--error 1067
create table t1(a char character set latin1 default _cp1251 0xFF);
-# End of 4.1 tests
+--echo End of 4.1 tests
diff --git a/mysql-test/t/ctype_uca.test b/mysql-test/t/ctype_uca.test
index 2300abca69d..695a21adbf5 100644
--- a/mysql-test/t/ctype_uca.test
+++ b/mysql-test/t/ctype_uca.test
@@ -211,6 +211,8 @@ select group_concat(c1 order by c1) from t1 group by c1 collate utf8_lithuanian_
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_slovak_ci;
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_spanish2_ci;
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_roman_ci;
+select group_concat(c1 order by c1) from t1 group by c1 collate utf8_esperanto_ci;
+select group_concat(c1 order by c1) from t1 group by c1 collate utf8_hungarian_ci;
drop table t1;
@@ -458,3 +460,82 @@ SET collation_connection='utf8_unicode_ci';
-- source include/ctype_like_escape.inc
# End of 4.1 tests
+
+#
+# Check UPPER/LOWER changeing length
+#
+# Result shorter than argument
+CREATE TABLE t1 (id int, a varchar(30) character set utf8);
+INSERT INTO t1 VALUES (1, _ucs2 0x01310069), (2, _ucs2 0x01310131);
+INSERT INTO t1 VALUES (3, _ucs2 0x00690069), (4, _ucs2 0x01300049);
+INSERT INTO t1 VALUES (5, _ucs2 0x01300130), (6, _ucs2 0x00490049);
+SELECT a, length(a) la, @l:=lower(a) l, length(@l) ll, @u:=upper(a) u, length(@u) lu
+FROM t1 ORDER BY id;
+ALTER TABLE t1 MODIFY a VARCHAR(30) character set utf8 collate utf8_turkish_ci;
+SELECT a, length(a) la, @l:=lower(a) l, length(@l) ll, @u:=upper(a) u, length(@u) lu
+FROM t1 ORDER BY id;
+DROP TABLE t1;
+
+#
+# Bug #27079 Crash while grouping empty ucs2 strings
+#
+CREATE TABLE t1 (
+ c1 text character set ucs2 collate ucs2_polish_ci NOT NULL
+) ENGINE=MyISAM;
+insert into t1 values (''),('a');
+SELECT COUNT(*), c1 FROM t1 GROUP BY c1;
+DROP TABLE IF EXISTS t1;
+
+#
+# Bug#27345 Incorrect data returned when range-read from utf8_danish_ci indexes
+#
+set names utf8;
+create table t1 (
+ a varchar(255),
+ key a(a)
+) character set utf8 collate utf8_danish_ci;
+insert into t1 values ('åaaaa'),('ååaaa'),('aaaaa');
+select a as like_a from t1 where a like 'a%';
+select a as like_aa from t1 where a like 'aa%';
+select a as like_aaa from t1 where a like 'aaa%';
+select a as like_aaaa from t1 where a like 'aaaa%';
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+alter table t1 convert to character set ucs2 collate ucs2_danish_ci;
+select a as like_a from t1 where a like 'a%';
+select a as like_aa from t1 where a like 'aa%';
+select a as like_aaa from t1 where a like 'aaa%';
+select a as like_aaaa from t1 where a like 'aaaa%';
+select a as like_aaaaa from t1 where a like 'aaaaa%';
+drop table t1;
+
+create table t1 (
+ a varchar(255),
+ key(a)
+) character set utf8 collate utf8_spanish2_ci;
+insert into t1 values ('aaaaa'),('lllll'),('zzzzz');
+select a as like_l from t1 where a like 'l%';
+select a as like_ll from t1 where a like 'll%';
+select a as like_lll from t1 where a like 'lll%';
+select a as like_llll from t1 where a like 'llll%';
+select a as like_lllll from t1 where a like 'lllll%';
+alter table t1 convert to character set ucs2 collate ucs2_spanish2_ci;
+select a as like_l from t1 where a like 'l%';
+select a as like_ll from t1 where a like 'll%';
+select a as like_lll from t1 where a like 'lll%';
+select a as like_llll from t1 where a like 'llll%';
+select a as like_lllll from t1 where a like 'lllll%';
+drop table t1;
+
+create table t1 (
+ a varchar(255),
+ key a(a)
+) character set utf8 collate utf8_czech_ci;
+# In Czech 'ch' is a single letter between 'h' and 'i'
+insert into t1 values
+('b'),('c'),('d'),('e'),('f'),('g'),('h'),('ch'),('i'),('j');
+select * from t1 where a like 'c%';
+alter table t1 convert to character set ucs2 collate ucs2_czech_ci;
+select * from t1 where a like 'c%';
+drop table t1;
+
+-- echo End for 5.0 tests
diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test
index 57f741597e0..7827ff0d31e 100644
--- a/mysql-test/t/ctype_ucs.test
+++ b/mysql-test/t/ctype_ucs.test
@@ -20,17 +20,19 @@ SET CHARACTER SET koi8r;
# which contains 0x20 in the high byte.
#
-CREATE TABLE t1 (word VARCHAR(64) CHARACTER SET ucs2);
-INSERT INTO t1 VALUES (_koi8r'ò'), (X'2004');
+CREATE TABLE t1 (word VARCHAR(64) CHARACTER SET ucs2, word2 CHAR(64) CHARACTER SET ucs2);
+INSERT INTO t1 VALUES (_koi8r'ò',_koi8r'ò'), (X'2004',X'2004');
SELECT hex(word) FROM t1 ORDER BY word;
+SELECT hex(word2) FROM t1 ORDER BY word2;
DELETE FROM t1;
#
# Check that real spaces are correctly trimmed.
#
-INSERT INTO t1 VALUES (X'042000200020'), (X'200400200020');
+INSERT INTO t1 VALUES (X'042000200020',X'042000200020'), (X'200400200020', X'200400200020');
SELECT hex(word) FROM t1 ORDER BY word;
+SELECT hex(word2) FROM t1 ORDER BY word2;
DROP TABLE t1;
#
@@ -52,7 +54,6 @@ RPAD(_ucs2 X'0420',10,_ucs2 X'0421') r;
SHOW CREATE TABLE t1;
DROP TABLE t1;
-
#
# BUG3946
#
@@ -61,6 +62,7 @@ create table t2(f1 Char(30));
insert into t2 values ("103000"), ("22720000"), ("3401200"), ("78000");
select lpad(f1, 12, "-o-/") from t2;
drop table t2;
+
######################################################
#
# Test of like
@@ -296,7 +298,7 @@ INSERT INTO t1 VALUES (0xA),(0xAA),(0xAAA),(0xAAAA),(0xAAAAA);
SELECT HEX(a) FROM t1;
DROP TABLE t1;
--- the same should be also done with enum and set
+# the same should be also done with enum and set
#
@@ -469,7 +471,6 @@ alter table t1 drop index a;
select hex(a) from t1 order by a;
drop table t1;
-
#
# Bug #20076: server crashes for a query with GROUP BY if MIN/MAX aggregation
# over a 'ucs2' field uses a temporary table
@@ -528,6 +529,17 @@ DROP TABLE t1,t2;
select password(name) from bug20536;
select old_password(name) from bug20536;
+# Disable test case as encrypt relies on 'crypt' function.
+# "decrypt" is noramlly tested in func_crypt.test which have a
+# "have_crypt.inc" test
+--disable_parsing
+# ENCRYPT relies on OS function crypt() which takes a NUL-terminated string; it
+# doesn't return good results for strings with embedded 0 bytes. It won't be
+# fixed unless we choose to re-implement the crypt() function ourselves to take
+# an extra size_t string_length argument.
+select encrypt(name, 'SALT') from bug20536;
+--enable_parsing
+
# QUOTE doesn't work with UCS2 data. It would require a total rewrite
# of Item_func_quote::val_str(), which isn't worthwhile until UCS2 is
# supported fully as a client character set.
@@ -544,3 +556,112 @@ SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE);
DROP TABLE t1;
--echo End of 4.1 tests
+
+#
+# Conversion from an UCS2 string to a decimal column
+#
+CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3));
+INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
+update t1 set b=a;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug#9442 Set parameter make query fail if column character set is UCS2
+#
+create table t1 (utext varchar(20) character set ucs2);
+insert into t1 values ("lily");
+insert into t1 values ("river");
+prepare stmt from 'select utext from t1 where utext like ?';
+set @param1='%%';
+execute stmt using @param1;
+execute stmt using @param1;
+select utext from t1 where utext like '%%';
+drop table t1;
+deallocate prepare stmt;
+
+#
+# Bug#22638 SOUNDEX broken for international characters
+#
+set names latin1;
+set character_set_connection=ucs2;
+select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
+select hex(soundex('')),hex(soundex('he')),hex(soundex('hello all folks')),hex(soundex('#3556 in bugdb'));
+select 'mood' sounds like 'mud';
+# Cyrillic A, BE, VE
+select hex(soundex(_ucs2 0x041004110412));
+# Make sure that "U+00BF INVERTED QUESTION MARK" is not considered as letter
+select hex(soundex(_ucs2 0x00BF00C0));
+set names latin1;
+
+#
+# Bug #14290: character_maximum_length for text fields
+#
+create table t1(a blob, b text charset utf8, c text charset ucs2);
+select data_type, character_octet_length, character_maximum_length
+ from information_schema.columns where table_name='t1';
+drop table t1;
+
+#
+# Bug#28925 GROUP_CONCAT inserts wrong separators for a ucs2 column
+#
+create table t1 (a char(1) character set ucs2);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+select collation(group_concat(a)) from t1;
+drop table t1;
+
+set names latin1;
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+set character_set_connection=ucs2;
+select hex(group_concat(a separator ',')) from t1;
+select collation(group_concat(a separator ',')) from t1;
+drop table t1;
+set names latin1;
+
+#
+# Bug#29499 Converting 'del' from ascii to Unicode results in 'question mark'
+#
+create table t1 (s1 char(1) character set ascii, s2 char(1) character set ucs2);
+insert into t1 (s1) values (0x7f);
+update t1 set s2 = s1;
+select hex(s2) from t1;
+select hex(convert(s1 using latin1)) from t1;
+drop table t1;
+
+#
+# Conversion from UCS2 to ASCII is possible
+# if the UCS2 string consists of only ASCII characters
+#
+create table t1 (a varchar(15) character set ascii not null, b int);
+insert into t1 values ('a',1);
+select concat(a,if(b<10,_ucs2 0x0061,_ucs2 0x0062)) from t1;
+select concat(a,if(b>10,_ucs2 0x0061,_ucs2 0x0062)) from t1;
+select * from t1 where a=if(b<10,_ucs2 0x0061,_ucs2 0x0062);
+select * from t1 where a=if(b>10,_ucs2 0x0061,_ucs2 0x0062);
+
+#
+# Conversion from UCS2 to ASCII is not possible if
+# the UCS2 string has non-ASCII characters
+#
+--error 1267
+select concat(a,if(b<10,_ucs2 0x00C0,_ucs2 0x0062)) from t1;
+--error 1267
+select concat(a,if(b>10,_ucs2 0x00C0,_ucs2 0x0062)) from t1;
+--error 1267
+select concat(a,if(b<10,_ucs2 0x0062,_ucs2 0x00C0)) from t1;
+--error 1267
+select concat(a,if(b>10,_ucs2 0x0062,_ucs2 0x00C0)) from t1;
+--error 1267
+select * from t1 where a=if(b<10,_ucs2 0x00C0,_ucs2 0x0062);
+--error 1267
+select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
+drop table t1;
+
+#
+# Bug#30981 CHAR(0x41 USING ucs2) doesn't add leading zero
+#
+select hex(char(0x41 using ucs2));
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/ctype_ucs2_def-master.opt b/mysql-test/t/ctype_ucs2_def-master.opt
index a0b5b061860..84d2a52b639 100644
--- a/mysql-test/t/ctype_ucs2_def-master.opt
+++ b/mysql-test/t/ctype_ucs2_def-master.opt
@@ -1 +1 @@
---default-collation=ucs2_unicode_ci --default-character-set=ucs2
+--default-collation=ucs2_unicode_ci --default-character-set=ucs2,latin1
diff --git a/mysql-test/t/ctype_ucs2_def.test b/mysql-test/t/ctype_ucs2_def.test
index 00f636d79dc..c80444daddd 100644
--- a/mysql-test/t/ctype_ucs2_def.test
+++ b/mysql-test/t/ctype_ucs2_def.test
@@ -1,3 +1,5 @@
+-- source include/have_ucs2.inc
+
#
# MySQL Bug#15276: MySQL ignores collation-server
#
@@ -12,3 +14,29 @@ DROP TABLE IF EXISTS t1;
--enable_warnings
create table t1 (a int);
drop table t1;
+
+--echo End of 4.1 tests
+
+#
+# Bug #28925 GROUP_CONCAT inserts wrong separators for a ucs2 column
+# Check that GROUP_CONCAT works fine with --default-character-set=ucs2
+#
+create table t1 (a char(1) character set latin1);
+insert into t1 values ('a'),('b'),('c');
+select hex(group_concat(a)) from t1;
+drop table t1;
+#
+# Bug #27643: query failed : 1114 (The table '' is full)
+#
+# Check that HASH indexes ignore trailing spaces when comparing
+# strings with the ucs2_bin collation
+
+CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
+ col2 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
+ UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C');
+--error ER_DUP_ENTRY
+INSERT INTO t1 VALUES('A ', 'A ');
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/ctype_ucs_binlog.test b/mysql-test/t/ctype_ucs_binlog.test
index 7faefde7d1a..92d4458a9c2 100644
--- a/mysql-test/t/ctype_ucs_binlog.test
+++ b/mysql-test/t/ctype_ucs_binlog.test
@@ -1,5 +1,6 @@
--source include/not_embedded.inc
--source include/have_ucs2.inc
+--source include/have_log_bin.inc
#
# Check correct binlogging of UCS2 user variables (BUG#3875)
@@ -9,12 +10,12 @@ create table t2 (c char(30)) charset=ucs2;
set @v=convert('abc' using ucs2);
reset master;
insert into t2 values (@v);
-show binlog events from 79;
+show binlog events from 98;
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
# absolutely need variables names to be quoted and strings to be
# escaped).
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
drop table t2;
# End of 4.1 tests
diff --git a/mysql-test/t/ctype_ujis.test b/mysql-test/t/ctype_ujis.test
index 12d05f44a94..14b37569b11 100644
--- a/mysql-test/t/ctype_ujis.test
+++ b/mysql-test/t/ctype_ujis.test
@@ -1168,3 +1168,45 @@ select hex(convert(_ujis 0xA5FE41 using ucs2));
select hex(convert(_ujis 0x8FABF841 using ucs2));
# End of 4.1 tests
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+DROP PROCEDURE IF EXISTS sp1;
+--enable_warnings
+
+set names ujis;
+set character_set_database = ujis;
+set character_set_server = ujis;
+
+CREATE TABLE t1(c1 char(2)) default charset = ujis;
+CREATE TABLE t2(c2 char(2)) default charset = ujis;
+
+INSERT INTO t1 VALUES(_ujis 0xA4A2);
+
+DELIMITER |;
+CREATE PROCEDURE sp1()
+BEGIN
+ DECLARE a CHAR(2) CHARSET ujis;
+ DECLARE cur1 CURSOR FOR SELECT c1 FROM t1;
+ OPEN cur1;
+ FETCH cur1 INTO a;
+ INSERT INTO t2 VALUES (a);
+ CLOSE cur1;
+END|
+DELIMITER ;|
+CALL sp1();
+
+#The data in t1 and t2 should be the same but different
+SELECT c1,c2 FROM t1,t2;
+
+#Since the result of hex(convert(_latin1 0xA4A2 using ujis))
+#equals to hex(c2), it seems that the value which was inserted
+#by using cursor is interpreted as latin1 character set
+SELECT hex(convert(_latin1 0xA4A2 using ujis)),hex(c2) FROM t1,t2;
+
+DROP PROCEDURE sp1;
+DROP TABLE t1;
+DROP TABLE t2;
+
+set names default;
+set character_set_database=default;
+set character_set_server=default;
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index 0b3f9ed2400..0ae4b2be0ca 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -702,6 +702,14 @@ select * from t1 where soundex(a) = soundex('TEST');
select * from t1 where soundex(a) = soundex('test');
drop table t1;
+#
+# Bug#22638 SOUNDEX broken for international characters
+#
+select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB);
+select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB));
+select soundex(_utf8 0xD091D092D093);
+select hex(soundex(_utf8 0xD091D092D093));
+
SET collation_connection='utf8_general_ci';
-- source include/ctype_filesort.inc
@@ -878,20 +886,6 @@ drop table t1;
#
-# Bug #12371 executing prepared statement fails (illegal mix of collations)
-#
-set names utf8;
-create table t1 (a char(3), b varchar(10));
-insert into t1 values ('bar','kostja');
-prepare my_stmt from "select * from t1 where a=?";
-set @a:='bar';
-execute my_stmt using @a;
-set @a:=NULL;
-execute my_stmt using @a;
-drop table t1;
-
-
-#
# Bug#9557 MyISAM utf8 table crash
#
CREATE TABLE t1 (
@@ -931,6 +925,17 @@ DROP TABLE t2;
DROP TABLE t1;
#
+# Bug#17313: N'xxx' and _utf8'xxx' are not equivalent
+#
+CREATE TABLE t1 (item varchar(255)) default character set utf8;
+INSERT INTO t1 VALUES (N'\\');
+INSERT INTO t1 VALUES (_utf8'\\');
+INSERT INTO t1 VALUES (N'Cote d\'Ivoire');
+INSERT INTO t1 VALUES (_utf8'Cote d\'Ivoire');
+SELECT item FROM t1 ORDER BY item;
+DROP TABLE t1;
+
+#
# Bug#17705: Corruption of compressed index when index length changes between
# 254 and 256
#
@@ -1162,7 +1167,6 @@ explain select a from t1 group by a;
select a from t1 group by a;
drop table t1;
-
#
# Bug #20204: "order by" changes the results returned
#
@@ -1174,3 +1178,255 @@ explain
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
drop table t1;
# End of 4.1 tests
+
+#
+# Test for bug #11484: wrong results for a DISTINCT varchar column in uft8.
+#
+
+CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
+INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
+
+SELECT id FROM t1;
+SELECT DISTINCT id FROM t1;
+SELECT DISTINCT id FROM t1 ORDER BY id;
+
+DROP TABLE t1;
+
+#
+# Bug#20095 Changing length of VARCHAR field with UTF8
+# collation does not truncate values
+#
+create table t1 (
+ a varchar(26) not null
+) default character set utf8;
+insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz');
+select * from t1;
+# varchar to varchar
+alter table t1 change a a varchar(20) character set utf8 not null;
+select * from t1;
+# varchar to char
+alter table t1 change a a char(15) character set utf8 not null;
+select * from t1;
+# char to char
+alter table t1 change a a char(10) character set utf8 not null;
+select * from t1;
+# char to varchar
+alter table t1 change a a varchar(5) character set utf8 not null;
+select * from t1;
+drop table t1;
+
+#
+# Check that do_varstring2_mb produces a warning
+#
+create table t1 (
+ a varchar(4000) not null
+) default character set utf8;
+insert into t1 values (repeat('a',4000));
+alter table t1 change a a varchar(3000) character set utf8 not null;
+select length(a) from t1;
+drop table t1;
+
+
+#
+# Bug#10504: Character set does not support traditional mode
+# Bug#14146: CHAR(...USING ...) and CONVERT(CHAR(...) USING...)
+# produce different results
+#
+set names utf8;
+# correct value
+select hex(char(1 using utf8));
+select char(0xd1,0x8f using utf8);
+select char(0xd18f using utf8);
+select char(53647 using utf8);
+# incorrect value: return with warning
+select char(0xff,0x8f using utf8);
+select convert(char(0xff,0x8f) using utf8);
+# incorrect value in strict mode: return NULL with "Error" level warning
+set sql_mode=traditional;
+select char(0xff,0x8f using utf8);
+select char(195 using utf8);
+select char(196 using utf8);
+select char(2557 using utf8);
+select convert(char(0xff,0x8f) using utf8);
+
+#
+# Check convert + char + using
+#
+select hex(convert(char(2557 using latin1) using utf8));
+
+#
+# char() without USING returns "binary" by default, any argument is ok
+#
+select hex(char(195));
+select hex(char(196));
+select hex(char(2557));
+
+
+
+#
+# Bug#12891: UNION doesn't return DISTINCT result for multi-byte characters
+#
+set names utf8;
+create table t1 (a char(1)) default character set utf8;
+create table t2 (a char(1)) default character set utf8;
+insert into t1 values('a'),('a'),(0xE38182),(0xE38182);
+insert into t1 values('i'),('i'),(0xE38184),(0xE38184);
+select * from t1 union distinct select * from t2;
+drop table t1,t2;
+
+
+#
+# Bug#12371: executing prepared statement fails (illegal mix of collations)
+#
+set names utf8;
+create table t1 (a char(10), b varchar(10));
+insert into t1 values ('bar','kostja');
+insert into t1 values ('kostja','bar');
+prepare my_stmt from "select * from t1 where a=?";
+set @a:='bar';
+execute my_stmt using @a;
+set @a:='kostja';
+execute my_stmt using @a;
+set @a:=null;
+execute my_stmt using @a;
+drop table if exists t1;
+
+
+#
+# Bug#21505 Create view - illegal mix of collation for operation 'UNION'
+#
+--disable_warnings
+drop table if exists t1;
+drop view if exists v1, v2;
+--enable_warnings
+set names utf8;
+create table t1(col1 varchar(12) character set utf8 collate utf8_unicode_ci);
+insert into t1 values('t1_val');
+create view v1 as select 'v1_val' as col1;
+select coercibility(col1), collation(col1) from v1;
+create view v2 as select col1 from v1 union select col1 from t1;
+select coercibility(col1), collation(col1)from v2;
+drop view v1, v2;
+create view v1 as select 'v1_val' collate utf8_swedish_ci as col1;
+select coercibility(col1), collation(col1) from v1;
+create view v2 as select col1 from v1 union select col1 from t1;
+select coercibility(col1), collation(col1) from v2;
+drop view v1, v2;
+drop table t1;
+
+#
+# Check conversion of NCHAR strings to subset (e.g. latin1).
+# Conversion is possible if string repertoire is ASCII.
+# Conversion is not possible if the string have extended characters
+#
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, N'x', N'y')) from t1;
+--error 1267
+select concat(a, if(b>10, N'æ', N'ß')) from t1;
+drop table t1;
+
+# Conversion tests for character set introducers
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, _utf8'x', _utf8'y')) from t1;
+--error 1267
+select concat(a, if(b>10, _utf8'æ', _utf8'ß')) from t1;
+drop table t1;
+
+# Conversion tests for introducer + HEX string
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, _utf8 0x78, _utf8 0x79)) from t1;
+--error 1267
+select concat(a, if(b>10, _utf8 0xC3A6, _utf8 0xC3AF)) from t1;
+drop table t1;
+
+# Conversion tests for "text_literal TEXT_STRING_literal" syntax structure
+set names utf8;
+create table t1 (a varchar(10) character set latin1, b int);
+insert into t1 values ('a',1);
+select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
+--error 1267
+select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1;
+drop table t1;
+
+
+#
+# Bug#19960: Inconsistent results when joining
+# InnoDB tables using partial UTF8 indexes
+#
+--disable_warnings
+CREATE TABLE t1 (
+ colA int(11) NOT NULL,
+ colB varchar(255) character set utf8 NOT NULL,
+ PRIMARY KEY (colA)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+--enable_warnings
+INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar');
+--disable_warnings
+CREATE TABLE t2 (
+ colA int(11) NOT NULL,
+ colB varchar(255) character set utf8 NOT NULL,
+ KEY bad (colA,colB(3))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+--enable_warnings
+INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar');
+SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB
+WHERE t1.colA < 3;
+DROP TABLE t1, t2;
+
+#
+# Bug#29205: truncation of UTF8 values when the UNION statement
+# forces collation to the binary charset
+#
+
+SELECT 'н1234567890' UNION SELECT _binary '1';
+SELECT 'н1234567890' UNION SELECT 1;
+
+SELECT '1' UNION SELECT 'н1234567890';
+SELECT 1 UNION SELECT 'н1234567890';
+
+CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8;
+CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT);
+
+INSERT INTO t1 (c) VALUES ('н1234567890');
+INSERT INTO t2 (b, i) VALUES ('1', 1);
+
+SELECT c FROM t1 UNION SELECT b FROM t2;
+SELECT c FROM t1 UNION SELECT i FROM t2;
+
+SELECT b FROM t2 UNION SELECT c FROM t1;
+SELECT i FROM t2 UNION SELECT c FROM t1;
+
+DROP TABLE t1, t2;
+
+#
+# Bug#30982: CHAR(..USING..) can return a not-well-formed string
+# Bug #30986: Character set introducer followed by a HEX string can return bad result
+#
+set sql_mode=traditional;
+select hex(char(0xFF using utf8));
+select hex(convert(0xFF using utf8));
+--error ER_INVALID_CHARACTER_STRING
+select hex(_utf8 0x616263FF);
+--error ER_INVALID_CHARACTER_STRING
+select hex(_utf8 X'616263FF');
+--error ER_INVALID_CHARACTER_STRING
+select hex(_utf8 B'001111111111');
+--error ER_INVALID_CHARACTER_STRING
+select (_utf8 X'616263FF');
+set sql_mode=default;
+select hex(char(0xFF using utf8));
+select hex(convert(0xFF using utf8));
+--error ER_INVALID_CHARACTER_STRING
+select hex(_utf8 0x616263FF);
+--error ER_INVALID_CHARACTER_STRING
+select hex(_utf8 X'616263FF');
+--error ER_INVALID_CHARACTER_STRING
+select hex(_utf8 B'001111111111');
+--error ER_INVALID_CHARACTER_STRING
+select (_utf8 X'616263FF');
diff --git a/mysql-test/t/date_formats.test b/mysql-test/t/date_formats.test
index 7e74c128dee..faa6d4242db 100644
--- a/mysql-test/t/date_formats.test
+++ b/mysql-test/t/date_formats.test
@@ -122,12 +122,15 @@ SET datetime_format=default;
--disable_ps_protocol
select str_to_date(concat('15-01-2001',' 2:59:58.999'),
concat('%d-%m-%Y',' ','%H:%i:%s.%f'));
+select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T');
--enable_ps_protocol
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'),
('03-01-02 8:11:2.123456', '%y-%m-%d %H:%i:%S.%#'),
+('0003-01-02 8:11:2.123456', '%Y-%m-%d %H:%i:%S.%#'),
+('03-01-02 8:11:2.123456', '%Y-%m-%d %H:%i:%S.%#'),
('2003-01-02 10:11:12 PM', '%Y-%m-%d %h:%i:%S %p'),
('2003-01-02 01:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f%p'),
('2003-01-02 02:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f %p'),
@@ -292,6 +295,10 @@ select str_to_date( 1, IF(1=1,NULL,NULL) );
#
# Bug#11326
+# TIME_FORMAT using "%r" returns wrong hour using 24:00:00 in TIME column
+#
+# This tests that 24:00:00 does not return PM, when it should be AM.
+# Some other values are being tested same time.
#
SELECT TIME_FORMAT("24:00:00", '%r');
@@ -303,6 +310,10 @@ SELECT TIME_FORMAT("25:00:00", '%r');
#
# Bug#11324
+# TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column
+#
+# This tests that 24:00:00 does not change to "36:00 AM". Testing
+# some other values same time.
#
SELECT TIME_FORMAT("00:00:00", '%l %p');
diff --git a/mysql-test/t/default.test b/mysql-test/t/default.test
new file mode 100644
index 00000000000..14aa4b02cfe
--- /dev/null
+++ b/mysql-test/t/default.test
@@ -0,0 +1,149 @@
+#
+# test of already fixed bugs
+#
+--disable_warnings
+drop table if exists t1,t2,t3,t4,t5,t6;
+drop database if exists mysqltest;
+
+#
+# Bug 10838
+# Insert causes warnings for no default values and corrupts tables
+#
+CREATE TABLE t1 (a varchar(30) binary NOT NULL DEFAULT ' ',
+ b varchar(1) binary NOT NULL DEFAULT ' ',
+ c varchar(4) binary NOT NULL DEFAULT '0000',
+ d tinyblob NULL,
+ e tinyblob NULL,
+ f tinyblob NULL,
+ g tinyblob NULL,
+ h tinyblob NULL,
+ i tinyblob NULL,
+ j tinyblob NULL,
+ k tinyblob NULL,
+ l tinyblob NULL,
+ m tinyblob NULL,
+ n tinyblob NULL,
+ o tinyblob NULL,
+ p tinyblob NULL,
+ q varchar(30) binary NOT NULL DEFAULT ' ',
+ r varchar(30) binary NOT NULL DEFAULT ' ',
+ s tinyblob NULL,
+ t varchar(4) binary NOT NULL DEFAULT ' ',
+ u varchar(1) binary NOT NULL DEFAULT ' ',
+ v varchar(30) binary NOT NULL DEFAULT ' ',
+ w varchar(30) binary NOT NULL DEFAULT ' ',
+ x tinyblob NULL,
+ y varchar(5) binary NOT NULL DEFAULT ' ',
+ z varchar(20) binary NOT NULL DEFAULT ' ',
+ a1 varchar(30) binary NOT NULL DEFAULT ' ',
+ b1 tinyblob NULL)
+ENGINE=InnoDB DEFAULT CHARACTER SET = latin1 COLLATE latin1_bin;
+--enable_warnings
+
+INSERT into t1 (b) values ('1');
+SHOW WARNINGS;
+SELECT * from t1;
+
+CREATE TABLE t2 (a varchar(30) binary NOT NULL DEFAULT ' ',
+ b varchar(1) binary NOT NULL DEFAULT ' ',
+ c varchar(4) binary NOT NULL DEFAULT '0000',
+ d tinyblob NULL,
+ e tinyblob NULL,
+ f tinyblob NULL,
+ g tinyblob NULL,
+ h tinyblob NULL,
+ i tinyblob NULL,
+ j tinyblob NULL,
+ k tinyblob NULL,
+ l tinyblob NULL,
+ m tinyblob NULL,
+ n tinyblob NULL,
+ o tinyblob NULL,
+ p tinyblob NULL,
+ q varchar(30) binary NOT NULL DEFAULT ' ',
+ r varchar(30) binary NOT NULL DEFAULT ' ',
+ s tinyblob NULL,
+ t varchar(4) binary NOT NULL DEFAULT ' ',
+ u varchar(1) binary NOT NULL DEFAULT ' ',
+ v varchar(30) binary NOT NULL DEFAULT ' ',
+ w varchar(30) binary NOT NULL DEFAULT ' ',
+ x tinyblob NULL,
+ y varchar(5) binary NOT NULL DEFAULT ' ',
+ z varchar(20) binary NOT NULL DEFAULT ' ',
+ a1 varchar(30) binary NOT NULL DEFAULT ' ',
+ b1 tinyblob NULL)
+ENGINE=MyISAM DEFAULT CHARACTER SET = latin1 COLLATE latin1_bin;
+
+SHOW CREATE TABLE t2;
+INSERT into t2 (b) values ('1');
+SHOW WARNINGS;
+SELECT * from t2;
+
+drop table t1;
+drop table t2;
+
+
+#
+# Bug#20691: DATETIME col (NOT NULL, NO DEFAULT) may insert garbage when specifying DEFAULT
+#
+# From the docs:
+# If the column can take NULL as a value, the column is defined with an
+# explicit DEFAULT NULL clause. This is the same as before 5.0.2.
+#
+# If the column cannot take NULL as the value, MySQL defines the column with
+# no explicit DEFAULT clause. For data entry, if an INSERT or REPLACE
+# statement includes no value for the column, MySQL handles the column
+# according to the SQL mode in effect at the time:
+#
+# * If strict SQL mode is not enabled, MySQL sets the column to the
+# implicit default value for the column data type.
+#
+# * If strict mode is enabled, an error occurs for transactional tables and
+# the statement is rolled back. For non-transactional tables, an error
+# occurs, but if this happens for the second or subsequent row of a
+# multiple-row statement, the preceding rows will have been inserted.
+#
+create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00');
+insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT);
+insert into bug20691 (i) values (2);
+desc bug20691;
+insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT);
+insert into bug20691 (i) values (4);
+insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT);
+SET sql_mode = 'ALLOW_INVALID_DATES';
+insert into bug20691 values (6, DEFAULT, DEFAULT), (6, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (6, DEFAULT, DEFAULT);
+SET sql_mode = 'STRICT_ALL_TABLES';
+--error 1364
+insert into bug20691 values (7, DEFAULT, DEFAULT), (7, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (7, DEFAULT, DEFAULT);
+select * from bug20691 order by i asc;
+drop table bug20691;
+
+SET sql_mode = '';
+create table bug20691 (
+ a set('one', 'two', 'three') not null,
+ b enum('small', 'medium', 'large', 'enormous', 'ellisonego') not null,
+ c time not null,
+ d date not null,
+ e int not null,
+ f long not null,
+ g blob not null,
+ h datetime not null,
+ i decimal not null,
+ x int);
+insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 1);
+insert into bug20691 (x) values (2);
+insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 3);
+insert into bug20691 values (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 4);
+select * from bug20691 order by x asc;
+drop table bug20691;
+
+create table t1 (id int not null);
+insert into t1 values(default);
+
+create view v1 (c) as select id from t1;
+insert into t1 values(default);
+drop view v1;
+drop table t1;
+
+--echo End of 5.0 tests.
+
diff --git a/mysql-test/t/delayed.test b/mysql-test/t/delayed.test
index 961bcc946bf..13615c8c269 100644
--- a/mysql-test/t/delayed.test
+++ b/mysql-test/t/delayed.test
@@ -16,7 +16,8 @@ insert delayed into t1 set a = 4;
insert delayed into t1 set a = 5, tmsp = 19711006010203;
insert delayed into t1 (a, tmsp) values (6, 19711006010203);
insert delayed into t1 (a, tmsp) values (7, NULL);
---sleep 2
+# Wait until the rows are flushed to the table files.
+FLUSH TABLE t1;
insert into t1 set a = 8,tmsp=19711006010203;
select * from t1 where tmsp=0;
select * from t1 where tmsp=19711006010203;
@@ -33,8 +34,221 @@ insert delayed into t1 values (null,"c");
insert delayed into t1 values (3,"d"),(null,"e");
--error 1136
insert delayed into t1 values (3,"this will give an","error");
---sleep 2
+# Wait until the rows are flushed to the table files.
+FLUSH TABLE t1;
+show status like 'not_flushed_delayed_rows';
select * from t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #12226: Crash when a delayed insert fails due to a duplicate key
+#
+create table t1 (a int not null primary key);
+insert into t1 values (1);
+insert delayed into t1 values (1);
+select * from t1;
+drop table t1;
+
+#
+# Bug #20195: INSERT DELAYED with auto_increment is assigned wrong values
+#
+CREATE TABLE t1 ( a int(10) NOT NULL auto_increment, PRIMARY KEY (a));
+
+# Make one delayed insert to start the separate thread
+insert delayed into t1 values(null);
+
+# Do some normal inserts
+insert into t1 values(null);
+insert into t1 values(null);
+
+# Discarded, since the delayed-counter is 2, which is already used
+insert delayed into t1 values(null);
+
+# Discarded, since the delayed-counter is 3, which is already used
+insert delayed into t1 values(null);
+
+# Works, since the delayed-counter is 4, which is unused
+insert delayed into t1 values(null);
+
+# Do some more inserts
+insert into t1 values(null);
+insert into t1 values(null);
+insert into t1 values(null);
+
+# Delete one of the above to make a hole
+delete from t1 where a=6;
+
+# Discarded, since the delayed-counter is 5, which is already used
+insert delayed into t1 values(null);
+
+# Works, since the delayed-counter is 6, which is unused (the row we deleted)
+insert delayed into t1 values(null);
+
+# Discarded, since the delayed-counter is 7, which is already used
+insert delayed into t1 values(null);
+
+# Works, since the delayed-counter is 8, which is unused
+insert delayed into t1 values(null);
+
+# Wait until the rows are flushed to the table files.
+FLUSH TABLE t1;
+# Check what we have now
+select * from t1 order by a;
+
+DROP TABLE t1;
+
+#
+# Bug#20627 - INSERT DELAYED does not honour auto_increment_* variables
+#
+SET @bug20627_old_auto_increment_offset=
+ @@auto_increment_offset= 2;
+SET @bug20627_old_auto_increment_increment=
+ @@auto_increment_increment= 3;
+SET @bug20627_old_session_auto_increment_offset=
+ @@session.auto_increment_offset= 4;
+SET @bug20627_old_session_auto_increment_increment=
+ @@session.auto_increment_increment= 5;
+SET @@auto_increment_offset= 2;
+SET @@auto_increment_increment= 3;
+SET @@session.auto_increment_offset= 4;
+SET @@session.auto_increment_increment= 5;
+#
+# Normal insert as reference.
+CREATE TABLE t1 (
+ c1 INT NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (c1)
+ );
+INSERT INTO t1 VALUES (NULL),(NULL),(NULL);
+# Check what we have now
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+# Delayed insert.
+CREATE TABLE t1 (
+ c1 INT NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (c1)
+ );
+INSERT DELAYED INTO t1 VALUES (NULL),(NULL),(NULL);
+# Wait until the rows are flushed to the table files.
+FLUSH TABLE t1;
+# Check what we have now
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+# Cleanup
+SET @@auto_increment_offset=
+ @bug20627_old_auto_increment_offset;
+SET @@auto_increment_increment=
+ @bug20627_old_auto_increment_increment;
+SET @@session.auto_increment_offset=
+ @bug20627_old_session_auto_increment_offset;
+SET @@session.auto_increment_increment=
+ @bug20627_old_session_auto_increment_increment;
+
+#
+# Bug#20830 - INSERT DELAYED does not honour SET INSERT_ID
+#
+SET @bug20830_old_auto_increment_offset=
+ @@auto_increment_offset= 2;
+SET @bug20830_old_auto_increment_increment=
+ @@auto_increment_increment= 3;
+SET @bug20830_old_session_auto_increment_offset=
+ @@session.auto_increment_offset= 4;
+SET @bug20830_old_session_auto_increment_increment=
+ @@session.auto_increment_increment= 5;
+SET @@auto_increment_offset= 2;
+SET @@auto_increment_increment= 3;
+SET @@session.auto_increment_offset= 4;
+SET @@session.auto_increment_increment= 5;
+#
+# Normal insert as reference.
+CREATE TABLE t1 (
+ c1 INT(11) NOT NULL AUTO_INCREMENT,
+ c2 INT(11) DEFAULT NULL,
+ PRIMARY KEY (c1)
+ );
+SET insert_id= 14;
+INSERT INTO t1 VALUES(NULL, 11), (NULL, 12), (NULL, 13);
+INSERT INTO t1 VALUES(NULL, 21), (NULL, 22), (NULL, 23);
+# Restart sequence at a different value.
+INSERT INTO t1 VALUES( 69, 31), (NULL, 32), (NULL, 33);
+INSERT INTO t1 VALUES(NULL, 41), (NULL, 42), (NULL, 43);
+# Restart sequence at a different value.
+SET insert_id= 114;
+INSERT INTO t1 VALUES(NULL, 51), (NULL, 52), (NULL, 53);
+INSERT INTO t1 VALUES(NULL, 61), (NULL, 62), (NULL, 63);
+# Set one value below the maximum value.
+INSERT INTO t1 VALUES( 49, 71), (NULL, 72), (NULL, 73);
+INSERT INTO t1 VALUES(NULL, 81), (NULL, 82), (NULL, 83);
+# Create a duplicate value.
+SET insert_id= 114;
+--error 1062
+INSERT INTO t1 VALUES(NULL, 91);
+INSERT INTO t1 VALUES (NULL, 92), (NULL, 93);
+# Check what we have now
+SELECT * FROM t1;
+SELECT COUNT(*) FROM t1;
+SELECT SUM(c1) FROM t1;
+DROP TABLE t1;
+#
+# Delayed insert.
+CREATE TABLE t1 (
+ c1 INT(11) NOT NULL AUTO_INCREMENT,
+ c2 INT(11) DEFAULT NULL,
+ PRIMARY KEY (c1)
+ );
+SET insert_id= 14;
+INSERT DELAYED INTO t1 VALUES(NULL, 11), (NULL, 12), (NULL, 13);
+INSERT DELAYED INTO t1 VALUES(NULL, 21), (NULL, 22), (NULL, 23);
+# Restart sequence at a different value.
+INSERT DELAYED INTO t1 VALUES( 69, 31), (NULL, 32), (NULL, 33);
+INSERT DELAYED INTO t1 VALUES(NULL, 41), (NULL, 42), (NULL, 43);
+# Restart sequence at a different value.
+SET insert_id= 114;
+INSERT DELAYED INTO t1 VALUES(NULL, 51), (NULL, 52), (NULL, 53);
+INSERT DELAYED INTO t1 VALUES(NULL, 61), (NULL, 62), (NULL, 63);
+# Set one value below the maximum value.
+INSERT DELAYED INTO t1 VALUES( 49, 71), (NULL, 72), (NULL, 73);
+INSERT DELAYED INTO t1 VALUES(NULL, 81), (NULL, 82), (NULL, 83);
+# Create a duplicate value.
+SET insert_id= 114;
+INSERT DELAYED INTO t1 VALUES(NULL, 91);
+INSERT DELAYED INTO t1 VALUES (NULL, 92), (NULL, 93);
+# Wait until the rows are flushed to the table files.
+FLUSH TABLE t1;
+# Check what we have now
+SELECT * FROM t1;
+SELECT COUNT(*) FROM t1;
+SELECT SUM(c1) FROM t1;
+DROP TABLE t1;
+#
+# Cleanup
+SET @@auto_increment_offset=
+ @bug20830_old_auto_increment_offset;
+SET @@auto_increment_increment=
+ @bug20830_old_auto_increment_increment;
+SET @@session.auto_increment_offset=
+ @bug20830_old_session_auto_increment_offset;
+SET @@session.auto_increment_increment=
+ @bug20830_old_session_auto_increment_increment;
+
+#
+# BUG#26238 - inserted delayed always inserts 0 for BIT columns
+#
+CREATE TABLE t1(a BIT);
+INSERT DELAYED INTO t1 VALUES(1);
+FLUSH TABLE t1;
+SELECT HEX(a) FROM t1;
+DROP TABLE t1;
+
+#
+# Bug#26464 - insert delayed + update + merge = corruption
+#
+CREATE TABLE t1(c1 INT) ENGINE=MyISAM;
+CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
+--error 1031
+INSERT DELAYED INTO t2 VALUES(1);
+DROP TABLE t1, t2;
+
diff --git a/mysql-test/t/delete.test b/mysql-test/t/delete.test
index fdbb96e0c2f..602e30687c8 100644
--- a/mysql-test/t/delete.test
+++ b/mysql-test/t/delete.test
@@ -3,7 +3,7 @@
#
--disable_warnings
-drop table if exists t1,t11,t12,t2;
+drop table if exists t1,t2,t3,t11,t12;
--enable_warnings
CREATE TABLE t1 (a tinyint(3), b tinyint(5));
INSERT INTO t1 VALUES (1,1);
@@ -164,17 +164,6 @@ delete FROM `4.t1` USING t1 as `4.t1` where `4.t1`.a = 5;
drop table t1;
#
-# Bug #8143: deleting '0000-00-00' values using IS NULL
-#
-
-create table t1(a date not null);
-insert into t1 values (0);
-select * from t1 where a is null;
-delete from t1 where a is null;
-select count(*) from t1;
-drop table t1;
-
-#
# Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and
# non-restricting WHERE is present.
#
@@ -198,3 +187,108 @@ DELETE FROM t1 ORDER BY date ASC, time ASC LIMIT 1;
drop table t1;
--echo End of 4.1 tests
+
+#
+# Test of multi-delete where we are not scanning the first table
+#
+
+CREATE TABLE t1 (a int not null,b int not null);
+CREATE TABLE t2 (a int not null, b int not null, primary key (a,b));
+CREATE TABLE t3 (a int not null, b int not null, primary key (a,b));
+insert into t1 values (1,1),(2,1),(1,3);
+insert into t2 values (1,1),(2,2),(3,3);
+insert into t3 values (1,1),(2,1),(1,3);
+select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b;
+explain select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b;
+delete t2.*,t3.* from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b;
+# This should be empty
+select * from t3;
+drop table t1,t2,t3;
+
+#
+# Bug #8143: deleting '0000-00-00' values using IS NULL
+#
+
+create table t1(a date not null);
+insert into t1 values (0);
+select * from t1 where a is null;
+delete from t1 where a is null;
+select count(*) from t1;
+drop table t1;
+
+#
+# Bug #26186: delete order by, sometimes accept unknown column
+#
+CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1);
+
+--error ER_BAD_FIELD_ERROR
+DELETE FROM t1 ORDER BY x;
+
+# even columns from a table not used in query (and not even existing)
+--error ER_BAD_FIELD_ERROR
+DELETE FROM t1 ORDER BY t2.x;
+
+# subquery (as long as the subquery from is valid or DUAL)
+--error ER_BAD_FIELD_ERROR
+DELETE FROM t1 ORDER BY (SELECT x);
+
+DROP TABLE t1;
+
+#
+# Bug #30234: Unexpected behavior using DELETE with AS and USING
+# '
+CREATE TABLE t1 (
+ a INT
+);
+
+CREATE TABLE t2 (
+ a INT
+);
+
+CREATE DATABASE db1;
+CREATE TABLE db1.t1 (
+ a INT
+);
+INSERT INTO db1.t1 (a) SELECT * FROM t1;
+
+CREATE DATABASE db2;
+CREATE TABLE db2.t1 (
+ a INT
+);
+INSERT INTO db2.t1 (a) SELECT * FROM t2;
+
+--error ER_PARSE_ERROR
+DELETE FROM t1 alias USING t1, t2 alias WHERE t1.a = alias.a;
+DELETE FROM alias USING t1, t2 alias WHERE t1.a = alias.a;
+DELETE FROM t1, alias USING t1, t2 alias WHERE t1.a = alias.a;
+--error ER_UNKNOWN_TABLE
+DELETE FROM t1, t2 USING t1, t2 alias WHERE t1.a = alias.a;
+--error ER_PARSE_ERROR
+DELETE FROM db1.t1 alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+--error ER_UNKNOWN_TABLE
+DELETE FROM alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+DELETE FROM db2.alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
+DELETE FROM t1 USING t1 WHERE a = 1;
+SELECT * FROM t1;
+--error ER_PARSE_ERROR
+DELETE FROM t1 alias USING t1 alias WHERE a = 2;
+SELECT * FROM t1;
+
+DROP TABLE t1, t2;
+DROP DATABASE db1;
+DROP DATABASE db2;
+
+#
+# Bug 31742: delete from ... order by function call that causes an error,
+# asserts server
+#
+
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (0);
+--error 1318
+DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
+DROP TABLE t1;
+DROP FUNCTION f1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test
index 91fa3238e69..4e79fac584f 100644
--- a/mysql-test/t/derived.test
+++ b/mysql-test/t/derived.test
@@ -42,7 +42,7 @@ CREATE TABLE t2 (a int not null);
insert into t2 values(1);
select * from (select * from t1 where t1.a=(select a from t2 where t2.a=t1.a)) a;
select * from (select * from t1 where t1.a=(select t2.a from t2 where t2.a=t1.a) union select t1.a, t1.b from t1) a;
-explain select * from (select * from t1,t2 where t1.a=t2.a) t1;
+explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
drop table t1, t2;
create table t1(a int not null, t char(8), index(a));
disable_query_log;
@@ -99,7 +99,8 @@ SELECT a.x FROM (SELECT 1 AS x) AS a HAVING a.x = 1;
#
# Test for select if database is not selected.
#
-# Connect without a database
+# Connect without a database as user mysqltest_1
+create user mysqltest_1;
create table t1 select 1 as a;
connect (con1,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK);
connection con1;
@@ -140,7 +141,6 @@ select * from ( select * from t1 union select * from t1) a,(select * from t1 uni
explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
drop table t1;
-
#
# multi-update & multi-delete with derived tables
#
@@ -158,7 +158,7 @@ UPDATE `t1` AS P1 INNER JOIN (SELECT aaaa FROM `t1` GROUP BY N HAVING Count(M) >
delete P1.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
select * from t1;
--replace_result P2 p2
---error 1288
+--error ER_UNKNOWN_TABLE
delete P1.*,P2.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
-- error 1054
delete P1.* from `t1` AS P1 INNER JOIN (SELECT aaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
@@ -211,7 +211,8 @@ drop table t2;
# select list counter
#
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
-insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
+insert into t1 values (128, 'rozn', 2, curdate(), 10),
+ (128, 'rozn', 1, curdate(), 10);
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
DROP TABLE t1;
@@ -224,6 +225,19 @@ select distinct sum(b) from t1 group by a;
select distinct sum(b) from (select a,b from t1) y group by a;
drop table t1;
+
+#
+# Test for bug #7413 "Subquery with non-scalar results participating in
+# select list of derived table crashes server" aka "VIEW with sub query can
+# cause the MySQL server to crash". If we have encountered problem during
+# filling of derived table we should report error and perform cleanup
+# properly.
+#
+CREATE TABLE t1 (a char(10), b char(10));
+INSERT INTO t1 VALUES ('root','localhost'), ('root','%');
+--error 1242
+SELECT * FROM (SELECT (SELECT a.a FROM t1 AS a WHERE a.a = b.a) FROM t1 AS b) AS c;
+DROP TABLE t1;
#
# test of union subquery in the FROM clause with complex distinct/all (BUG#6565)
#
@@ -237,4 +251,30 @@ select * from t1 union distinct select * from t2 union all select * from t3;
select * from (select * from t1 union distinct select * from t2 union all select * from t3) X;
drop table t1, t2, t3;
+#
+# Bug #11864 non unique names are allowed in subquery
+#
+create table t1 (a int);
+create table t2 (a int);
+--error 1060
+select * from (select * from t1,t2) foo;
+drop table t1,t2;
+
+#
+# Bug#10586 - query works with 4.1.8, but not with 4.1.11
+#
+create table t1 (ID int unsigned not null auto_increment,
+ DATA varchar(5) not null, primary key (ID));
+create table t2 (ID int unsigned not null auto_increment,
+ DATA varchar(5) not null, FID int unsigned not null,
+ primary key (ID));
+select A.* from (t1 inner join (select * from t2) as A on t1.ID = A.FID);
+select t2.* from ((select * from t1) as A inner join t2 on A.ID = t2.FID);
+select t2.* from (select * from t1) as A inner join t2 on A.ID = t2.FID;
+drop table t1, t2;
+
+disconnect con1;
+connection default;
+drop user mysqltest_1;
+
# End of 4.1 tests
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index 80b28e11da6..9d6a9b57e9a 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -10,4 +10,9 @@
#
##############################################################################
-rpl000015 : Bug#31030 - rpl000015.test fails if $MYSQL_TCP_PORT != 3306
+user_limits : Bug#23921 random failure of user_limits.test
+im_life_cycle : Bug#27851: Instance manager test im_life_cycle fails randomly
+im_daemon_life_cycle : Bug#20294: Instance manager tests fail randomly
+im_options_set : Bug#20294: Instance manager tests fail randomly
+im_options_unset : Bug#20294: Instance manager tests fail randomly
+im_utils : Bug#20294: Instance manager tests fail randomly
diff --git a/mysql-test/t/distinct.test b/mysql-test/t/distinct.test
index bd46115231e..7310f98cd16 100644
--- a/mysql-test/t/distinct.test
+++ b/mysql-test/t/distinct.test
@@ -1,5 +1,3 @@
-# test script should specify proper directories for embedded
---source include/not_embedded.inc
#
# Bug with distinct and INSERT INTO
# Bug with group by and not used fields
@@ -328,11 +326,11 @@ drop table t1,t2;
CREATE TABLE t1 (
html varchar(5) default NULL,
rin int(11) default '0',
- out int(11) default '0'
+ rout int(11) default '0'
) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('1',1,0);
-SELECT DISTINCT html,SUM(out)/(SUM(rin)+1) as 'prod' FROM t1 GROUP BY rin;
+SELECT DISTINCT html,SUM(rout)/(SUM(rin)+1) as 'prod' FROM t1 GROUP BY rin;
drop table t1;
#
@@ -366,7 +364,8 @@ EXPLAIN SELECT a FROM t1 GROUP BY a;
EXPLAIN SELECT a,b FROM t1 GROUP BY a,b;
EXPLAIN SELECT DISTINCT a,b FROM t1 GROUP BY a,b;
-CREATE TABLE t2(a INT, b INT, c INT, d INT, PRIMARY KEY (a,b));
+CREATE TABLE t2(a INT, b INT NOT NULL, c INT NOT NULL, d INT,
+ PRIMARY KEY (a,b));
INSERT INTO t2 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
EXPLAIN SELECT DISTINCT a FROM t2;
EXPLAIN SELECT DISTINCT a,a FROM t2;
@@ -380,6 +379,13 @@ EXPLAIN SELECT DISTINCT a,b,d FROM t2 GROUP BY c,b,d;
DROP TABLE t1,t2;
+# Bug 9784 DISTINCT IFNULL truncates data
+#
+create table t1 (id int, dsc varchar(50));
+insert into t1 values (1, "line number one"), (2, "line number two"), (3, "line number three");
+select distinct id, IFNULL(dsc, '-') from t1;
+drop table t1;
+
#
# Bug 21456: SELECT DISTINCT(x) produces incorrect results when using order by
#
@@ -391,69 +397,159 @@ explain SELECT DISTINCT a, b FROM t1 ORDER BY b;
SELECT DISTINCT a, b FROM t1 ORDER BY b;
DROP TABLE t1;
-#
-#Bug #20836: Selecting into variables results in wrong results being returned
-#
---disable_warnings
-DROP TABLE IF EXISTS t1;
---enable_warnings
-
-CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
-
-INSERT INTO t1 VALUES (1,1,'ORANGE');
-INSERT INTO t1 VALUES (2,2,'APPLE');
-INSERT INTO t1 VALUES (3,2,'APPLE');
-INSERT INTO t1 VALUES (4,3,'PEAR');
-
-SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v1, @v2;
+# End of 4.1 tests
-SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
-fruit_name HAVING fruit_name = 'APPLE';
-SELECT @v3, @v4;
-SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
-fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8;
+#
+# Bug #15745 ( COUNT(DISTINCT CONCAT(x,y)) returns wrong result)
+#
+CREATE TABLE t1 (
+ ID int(11) NOT NULL auto_increment,
+ x varchar(20) default NULL,
+ y decimal(10,0) default NULL,
+ PRIMARY KEY (ID),
+ KEY (y)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+INSERT INTO t1 VALUES
+(1,'ba','-1'),
+(2,'ba','1150'),
+(306,'ba','-1'),
+(307,'ba','1150'),
+(611,'ba','-1'),
+(612,'ba','1150');
+
+select count(distinct x,y) from t1;
+select count(distinct concat(x,y)) from t1;
+drop table t1;
-SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
-WHERE fruit_name = 'APPLE';
-SELECT @v5, @v6, @v7, @v8, @v9, @v10;
+#
+# Bug #18068: SELECT DISTINCT
+#
+CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b));
-SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
-@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v11, @v12, @v13, @v14;
+INSERT INTO t1 VALUES (1, 101);
+INSERT INTO t1 SELECT a + 1, a + 101 FROM t1;
+INSERT INTO t1 SELECT a + 2, a + 102 FROM t1;
+INSERT INTO t1 SELECT a + 4, a + 104 FROM t1;
+INSERT INTO t1 SELECT a + 8, a + 108 FROM t1;
-SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
-SELECT @v15, @v16;
+EXPLAIN SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
+SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
-SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
-'APPLE';
-SELECT @v17, @v18;
+DROP TABLE t1;
+# The test case for bug#20836 should be re-enabled when bug#16861 is resolved
+# The results for the test should be the same as in 4.1.
+#
+#Bug #20836: Selecting into variables results in wrong results being returned
+#
+#--disable_warnings
+#DROP TABLE IF EXISTS t1;
+#--enable_warnings
+#
+#CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
+#default NULL);
+#
+#INSERT INTO t1 VALUES (1,1,'ORANGE');
+#INSERT INTO t1 VALUES (2,2,'APPLE');
+#INSERT INTO t1 VALUES (3,2,'APPLE');
+#INSERT INTO t1 VALUES (4,3,'PEAR');
+#
+#SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
+#'APPLE';
+#SELECT @v1, @v2;
+#
+#SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
+#fruit_name HAVING fruit_name = 'APPLE';
+#SELECT @v3, @v4;
+#
+#SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
+#fruit_name = 'APPLE';
+#SELECT @v5, @v6, @v7, @v8;
+#
+#SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
+#WHERE fruit_name = 'APPLE';
+#SELECT @v5, @v6, @v7, @v8, @v9, @v10;
+#
+#SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
+#@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
+#SELECT @v11, @v12, @v13, @v14;
+#
+#SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
+#SELECT @v15, @v16;
+#
+#SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
+#'APPLE';
+#SELECT @v17, @v18;
+#
+#--disable_warnings
+#DROP TABLE IF EXISTS t2;
+#--enable_warnings
+#
+#CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
+#default NULL);
+#
+#SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
+#'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+#LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
+#--exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp
+#
+#SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
+#'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+#LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
+#--exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp
+#
+#SELECT @v19, @v20;
+#SELECT * FROM t2;
+#
+#DROP TABLE t1;
+#DROP TABLE t2;
---disable_warnings
-DROP TABLE IF EXISTS t2;
---enable_warnings
+#
+# Bug #15881: cast problems
+#
+CREATE TABLE t1 (a CHAR(1)); INSERT INTO t1 VALUES('A'), (0);
+SELECT a FROM t1 WHERE a=0;
+SELECT DISTINCT a FROM t1 WHERE a=0;
+DROP TABLE t1;
+CREATE TABLE t1 (a DATE);
+INSERT INTO t1 VALUES ('1972-07-29'), ('1972-02-06');
+EXPLAIN SELECT (SELECT DISTINCT a FROM t1 WHERE a = '2002-08-03');
+EXPLAIN SELECT (SELECT DISTINCT ADDDATE(a,1) FROM t1
+ WHERE ADDDATE(a,1) = '2002-08-03');
+CREATE TABLE t2 (a CHAR(5) CHARACTER SET latin1 COLLATE latin1_general_ci);
+INSERT INTO t2 VALUES (0xf6);
+INSERT INTO t2 VALUES ('oe');
-CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
-default NULL);
+SELECT COUNT(*) FROM (SELECT DISTINCT a FROM t2) dt;
+SELECT COUNT(*) FROM
+ (SELECT DISTINCT a FROM t2 WHERE a='oe' COLLATE latin1_german2_ci) dt;
-SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
-'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
---exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp
+DROP TABLE t1, t2;
-SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
-'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
---exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp
+#
+# Bug #25551: inconsistent behaviour in grouping NULL, depending on index type
+#
+CREATE TABLE t1 (a INT, UNIQUE (a));
+INSERT INTO t1 VALUES (4),(null),(2),(1),(null),(3);
+EXPLAIN SELECT DISTINCT a FROM t1;
+#result must have one row with NULL
+SELECT DISTINCT a FROM t1;
+EXPLAIN SELECT a FROM t1 GROUP BY a;
+#result must have one row with NULL
+SELECT a FROM t1 GROUP BY a;
-SELECT @v19, @v20;
-SELECT * FROM t2;
+DROP TABLE t1;
+#
+#Bug #27659: SELECT DISTINCT returns incorrect result set when field is
+#repeated
+#
+#
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES(1,1),(1,2),(1,3);
+SELECT DISTINCT a, b FROM t1;
+SELECT DISTINCT a, a, b FROM t1;
DROP TABLE t1;
-DROP TABLE t2;
-# End of 4.1 tests
+--echo End of 5.0 tests
diff --git a/mysql-test/t/drop.test b/mysql-test/t/drop.test
index 7cd943d46da..a1451773e90 100644
--- a/mysql-test/t/drop.test
+++ b/mysql-test/t/drop.test
@@ -81,3 +81,44 @@ show tables;
drop table t1;
# End of 4.1 tests
+
+
+#
+# Test for bug#21216 "Simultaneous DROP TABLE and SHOW OPEN TABLES causes
+# server to crash". Crash (caused by failed assertion in 5.0 or by null
+# pointer dereference in 5.1) happened when one ran SHOW OPEN TABLES
+# while concurrently doing DROP TABLE (or RENAME TABLE, CREATE TABLE LIKE
+# or any other command that takes name-lock) in other connection.
+#
+# Also includes test for similar bug#12212 "Crash that happens during
+# removing of database name from cache" reappeared in 5.1 as bug#19403
+# In its case crash happened when one concurrently executed DROP DATABASE
+# and one of name-locking command.
+#
+--disable_warnings
+drop database if exists mysqltest;
+drop table if exists t1;
+--enable_warnings
+create table t1 (i int);
+lock tables t1 read;
+create database mysqltest;
+connect (addconroot1, localhost, root,,);
+--send drop table t1
+connect (addconroot2, localhost, root,,);
+# Server should not crash in any of the following statements
+--disable_result_log
+show open tables;
+--enable_result_log
+--send drop database mysqltest
+connection default;
+select 1;
+unlock tables;
+connection addconroot1;
+--reap
+connection addconroot2;
+--reap
+disconnect addconroot1;
+disconnect addconroot2;
+connection default;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/drop_temp_table.test b/mysql-test/t/drop_temp_table.test
index 38c13e3e5e4..b456e75576b 100644
--- a/mysql-test/t/drop_temp_table.test
+++ b/mysql-test/t/drop_temp_table.test
@@ -1,5 +1,8 @@
-# Embedded server doesn't support binlog
--- source include/not_embedded.inc
+-- source include/have_log_bin.inc
+
+--disable_warnings
+drop database if exists `drop-temp+table-test`;
+--enable_warnings
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
diff --git a/mysql-test/t/endspace.test b/mysql-test/t/endspace.test
index 28b288e34a3..c4d53450910 100644
--- a/mysql-test/t/endspace.test
+++ b/mysql-test/t/endspace.test
@@ -41,16 +41,16 @@ alter table t1 modify text1 text not null, pack_keys=1;
select concat('|', text1, '|') from t1 where text1='teststring';
select concat('|', text1, '|') from t1 where text1='teststring ';
explain select concat('|', text1, '|') from t1 where text1='teststring ';
-select * from t1 where text1 like 'teststring_%';
-select * from t1 where text1='teststring' or text1 like 'teststring_%';
+select concat('|', text1, '|') from t1 where text1 like 'teststring_%';
+select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
select concat('|', text1, '|') from t1 order by text1;
drop table t1;
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) pack_keys=0;
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
-select * from t1 where text1='teststring' or text1 like 'teststring_%';
-select * from t1 where text1='teststring' or text1 >= 'teststring\t';
+select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
+select concat('|', text1, '|') from t1 where text1='teststring' or text1 >= 'teststring\t';
drop table t1;
# Test HEAP tables (with BTREE keys)
diff --git a/mysql-test/t/error_simulation-master.opt b/mysql-test/t/error_simulation-master.opt
new file mode 100644
index 00000000000..edb77cfa85e
--- /dev/null
+++ b/mysql-test/t/error_simulation-master.opt
@@ -0,0 +1 @@
+--loose-debug=d,raise_error
diff --git a/mysql-test/t/error_simulation.test b/mysql-test/t/error_simulation.test
new file mode 100644
index 00000000000..8c044224b8a
--- /dev/null
+++ b/mysql-test/t/error_simulation.test
@@ -0,0 +1,29 @@
+-- source include/have_debug.inc
+
+#
+# Bug #28499: crash for grouping query when tmp_table_size is too small
+#
+
+DROP TABLE IF EXISTS t1;
+
+CREATE TABLE t1 (
+ a varchar(32) character set utf8 collate utf8_bin NOT NULL,
+ b varchar(32) character set utf8 collate utf8_bin NOT NULL )
+ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+INSERT INTO t1 VALUES
+ ('AAAAAAAAAA','AAAAAAAAAA'), ('AAAAAAAAAB','AAAAAAAAAB '),
+ ('AAAAAAAAAB','AAAAAAAAAB'), ('AAAAAAAAAC','AAAAAAAAAC'),
+ ('AAAAAAAAAD','AAAAAAAAAD'), ('AAAAAAAAAE','AAAAAAAAAE'),
+ ('AAAAAAAAAF','AAAAAAAAAF'), ('AAAAAAAAAG','AAAAAAAAAG'),
+ ('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'),
+ ('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK');
+
+set tmp_table_size=1024;
+
+--error ER_DUP_KEY
+SELECT MAX(a) FROM t1 GROUP BY a,b;
+
+set tmp_table_size=default;
+
+DROP TABLE t1;
diff --git a/mysql-test/t/errors.test b/mysql-test/t/errors.test
index 93668ffdd3d..89579ec1739 100644
--- a/mysql-test/t/errors.test
+++ b/mysql-test/t/errors.test
@@ -14,9 +14,9 @@ update t1 set a=1;
create table t1 (a int);
--error 1054
select count(test.t1.b) from t1;
---error 1109
+--error 1054
select count(not_existing_database.t1) from t1;
---error 1109
+--error 1054
select count(not_existing_database.t1.a) from t1;
--error 1044,1146
select count(not_existing_database.t1.a) from not_existing_database.t1;
@@ -31,3 +31,39 @@ select count(*),b from t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #6080: Error message for a field with a display width that is too long
+#
+--error 1439
+create table t1 (a int(256));
+set sql_mode='traditional';
+--error 1074
+create table t1 (a varchar(66000));
+set sql_mode=default;
+
+#
+# Bug #27513: mysql 5.0.x + NULL pointer DoS
+#
+CREATE TABLE t1 (a INT);
+SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
+INSERT INTO t1 VALUES(1);
+SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
+INSERT INTO t1 VALUES(2),(3);
+SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
+DROP TABLE t1;
+
+#
+# Bug #28677: SELECT on missing column gives extra error
+#
+CREATE TABLE t1( a INT );
+--error ER_BAD_FIELD_ERROR
+SELECT b FROM t1;
+SHOW ERRORS;
+--error ER_BAD_FIELD_ERROR
+CREATE TABLE t2 SELECT b FROM t1;
+SHOW ERRORS;
+--error ER_BAD_FIELD_ERROR
+INSERT INTO t1 SELECT b FROM t1;
+DROP TABLE t1;
+# End of 5.0 tests
diff --git a/mysql-test/t/execution_constants.test b/mysql-test/t/execution_constants.test
new file mode 100644
index 00000000000..4930164d3fa
--- /dev/null
+++ b/mysql-test/t/execution_constants.test
@@ -0,0 +1,77 @@
+# In embedded server we don't really have a control over stack usage
+-- source include/not_embedded.inc
+
+#
+# Bug#21476: Lost Database Connection During Query
+#
+# When the amount of stack space we think we need to report an error is
+# actually too small, then we can get SEGVs. But, we don't want to reserve
+# space that we could use to get real work done. So, we want the reserved
+# space small, and this test verifies that the reservation is not too small.
+
+CREATE TABLE `t_bug21476` (
+ `ID_BOARD` smallint(5) unsigned NOT NULL default '0',
+ `ID_MEMBER` mediumint(8) unsigned NOT NULL default '0',
+ `logTime` int(10) unsigned NOT NULL default '0',
+ `ID_MSG` mediumint(8) unsigned NOT NULL default '0',
+ PRIMARY KEY (`ID_MEMBER`,`ID_BOARD`),
+ KEY `logTime` (`logTime`)
+) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci;
+
+INSERT INTO `t_bug21476` VALUES (2,2,1154870939,0),(1,2,1154870957,0),(2,183,1154941362,0),(2,84,1154904301,0),(1,84,1154905867,0),(2,13,1154947484,10271),(3,84,1154880549,0),(1,6,1154892183,0),(2,25,1154947581,10271),(3,25,1154904760,0),(1,25,1154947373,10271),(1,179,1154899992,0),(2,179,1154899410,0),(5,25,1154901666,0),(2,329,1154902026,0),(3,329,1154902040,0),(1,329,1154902058,0),(1,13,1154930841,0),(3,85,1154904987,0),(1,183,1154929665,0),(3,13,1154931268,0),(1,85,1154936888,0),(1,169,1154937959,0),(2,169,1154941717,0),(3,183,1154939810,0),(3,169,1154941734,0);
+
+delimiter //;
+let $query_head=UPDATE t_bug21476 SET ID_MSG = IF(logTime BETWEEN 1 AND 1101770053, 2, //
+let $query_tail =) WHERE logTime BETWEEN 1 AND 1104091539 AND ID_MSG = 0//
+
+# Scan over the possible stack heights, trying to recurse to exactly that
+# depth. Eventually, we will reach our imposed limit on height and try to
+# raise an error. If the remaining stack space is enough to raise that error,
+# we will get an error-number of 1436 and quit the loop. If it's not enough
+# space, we should get a SEGV
+
+# Well more than enough recursions to find the end of our stack.
+let $i = 100000//
+disable_query_log//
+disable_result_log//
+while ($i)
+{
+ # If we SEGV because the min stack size is exceeded, this would return error
+ # 2013 .
+ error 0,1436 //
+ eval $query_head 0 $query_tail//
+
+ if ($mysql_errno != 1436)
+ {
+ # We reached the place where we reported an error about the stack limit,
+ # and we successfully returned the error. That means that at the stack
+ # limit, we still have enough space reserved to report an error.
+ let $i = 1//
+ }
+
+ # Multiplying by three stack frames should be fine enough resolution.
+ # Trading exactness for speed.
+
+ # go one more level deep
+ let $query_head = $query_head IF(logTime <= 1104091$i, $i, //
+ let $query_tail =) $query_tail//
+
+ # go one more level deep
+ let $query_head = $query_head IF(logTime <= 1105091$i, $i, //
+ let $query_tail =) $query_tail//
+
+ # go one more level deep
+ let $query_head = $query_head IF(logTime <= 1106091$i, $i, //
+ let $query_tail =) $query_tail//
+
+ dec $i//
+}
+enable_result_log//
+enable_query_log//
+
+echo Assertion: mysql_errno 1436 == $mysql_errno//
+
+delimiter ;//
+DROP TABLE `t_bug21476`;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/explain.test b/mysql-test/t/explain.test
index 5bfae0a96bb..04cf37f457a 100644
--- a/mysql-test/t/explain.test
+++ b/mysql-test/t/explain.test
@@ -43,3 +43,27 @@ drop table ÔÁÂ;
set names latin1;
# End of 4.1 tests
+
+
+#
+# Bug#15463: EXPLAIN SELECT..INTO hangs the client (QB, command line)
+#
+select 3 into @v1;
+explain select 3 into @v1;
+
+#
+# Bug#22331: Wrong WHERE in EXPLAIN EXTENDED when all expressions were
+# optimized away.
+#
+create table t1(f1 int, f2 int);
+insert into t1 values (1,1);
+create view v1 as select * from t1 where f1=1;
+explain extended select * from v1 where f2=1;
+explain extended select * from t1 where 0;
+explain extended select * from t1 where 1;
+explain extended select * from t1 having 0;
+explain extended select * from t1 having 1;
+drop view v1;
+drop table t1;
+
+# End of 5.0 tests.
diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test
new file mode 100644
index 00000000000..cc66a6ab4bc
--- /dev/null
+++ b/mysql-test/t/federated.test
@@ -0,0 +1,1689 @@
+source include/federated.inc;
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ DEFAULT CHARSET=latin1;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+# test too many items (malformed) in the comment string url
+--error 1432
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:@/too/many/items/federated/t1';
+
+# test not enough items (malformed) in the comment string url
+--error 1432
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1';
+
+# test non-existant table
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t3';
+--error 1431
+SELECT * FROM federated.t1;
+DROP TABLE federated.t1;
+
+# test bad user/password
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://user:pass@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+--error 1429
+SELECT * FROM federated.t1;
+DROP TABLE federated.t1;
+
+# # correct connection, same named tables
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t1 (id, name) VALUES (2, 'fee');
+
+SELECT * FROM federated.t1;
+DELETE FROM federated.t1;
+DROP TABLE federated.t1;
+
+# correct connection, differently named tables
+DROP TABLE IF EXISTS federated.t2;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t2 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval SHOW CREATE TABLE federated.t2;
+
+INSERT INTO federated.t2 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t2 (id, name) VALUES (2, 'fee');
+
+SELECT * FROM federated.t2;
+DROP TABLE federated.t2;
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+
+DROP TABLE IF EXISTS federated.`t1%`;
+CREATE TABLE federated.`t1%` (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ DEFAULT CHARSET=latin1;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1%';
+
+INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t1 (id, name) VALUES (2, 'fee');
+
+SELECT * FROM federated.t1;
+DELETE FROM federated.t1;
+DROP TABLE IF EXISTS federated.t1;
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.`t1%` (
+ `id` int(20) NOT NULL,
+ `name` varchar(32) NOT NULL default ''
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1%';
+
+INSERT INTO federated.`t1%` (id, name) VALUES (1, 'foo');
+INSERT INTO federated.`t1%` (id, name) VALUES (2, 'fee');
+
+SELECT * FROM federated.`t1%`;
+DELETE FROM federated.`t1%`;
+DROP TABLE IF EXISTS federated.`t1%`;
+
+connection slave;
+DROP TABLE IF EXISTS federated.`t1%`;
+
+# I wanted to use timestamp, but results will fail if so!!!
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32) NOT NULL default '',
+ `other` int(20) NOT NULL default '0',
+ `created` datetime default '2004-04-04 04:04:04',
+ PRIMARY KEY (`id`))
+ DEFAULT CHARSET=latin1;
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32) NOT NULL default '',
+ `other` int(20) NOT NULL default '0',
+ `created` datetime default '2004-04-04 04:04:04',
+ PRIMARY KEY (`id`))
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (name, other) VALUES ('First Name', 11111);
+INSERT INTO federated.t1 (name, other) VALUES ('Second Name', 22222);
+INSERT INTO federated.t1 (name, other) VALUES ('Third Name', 33333);
+INSERT INTO federated.t1 (name, other) VALUES ('Fourth Name', 44444);
+INSERT INTO federated.t1 (name, other) VALUES ('Fifth Name', 55555);
+INSERT INTO federated.t1 (name, other) VALUES ('Sixth Name', 66666);
+INSERT INTO federated.t1 (name, other) VALUES ('Seventh Name', 77777);
+INSERT INTO federated.t1 (name, other) VALUES ('Eigth Name', 88888);
+INSERT INTO federated.t1 (name, other) VALUES ('Ninth Name', 99999);
+INSERT INTO federated.t1 (name, other) VALUES ('Tenth Name', 101010);
+
+# basic select
+SELECT * FROM federated.t1;
+# with PRIMARY KEY index_read_idx
+SELECT * FROM federated.t1 WHERE id = 5;
+SELECT * FROM federated.t1 WHERE name = 'Sixth Name';
+SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
+SELECT * FROM federated.t1 WHERE name = 'Sixth Name' AND other = 44444;
+SELECT * FROM federated.t1 WHERE name like '%th%';
+UPDATE federated.t1 SET name = '3rd name' WHERE id = 3;
+SELECT * FROM federated.t1 WHERE name = '3rd name';
+UPDATE federated.t1 SET name = 'Third name' WHERE name = '3rd name';
+SELECT * FROM federated.t1 WHERE name = 'Third name';
+# rnd_post, ::position
+SELECT * FROM federated.t1 ORDER BY id DESC;
+SELECT * FROM federated.t1 ORDER BY name;
+SELECT * FROM federated.t1 ORDER BY name DESC;
+SELECT * FROM federated.t1 ORDER BY name ASC;
+SELECT * FROM federated.t1 GROUP BY other;
+
+# ::delete_row
+DELETE FROM federated.t1 WHERE id = 5;
+SELECT * FROM federated.t1 WHERE id = 5;
+
+# ::delete_all_rows
+DELETE FROM federated.t1;
+SELECT * FROM federated.t1 WHERE id = 5;
+
+# previous test, but this time with indexes
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32) NOT NULL default '',
+ `other` int(20) NOT NULL default '0',
+ `created` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ key name(`name`),
+ key other(`other`),
+ key created(`created`))
+ DEFAULT CHARSET=latin1;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32) NOT NULL default '',
+ `other` int(20) NOT NULL default '0',
+ `created` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ key name(`name`),
+ key other(`other`),
+ key created(`created`))
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('First Name', 11111, '2004-01-01 01:01:01');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Second Name', 22222, '2004-01-23 02:43:00');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Third Name', 33333, '2004-02-14 02:14:00');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Fourth Name', 44444, '2003-04-05 00:00:00');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Fifth Name', 55555, '2001-02-02 02:02:02');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Sixth Name', 66666, '2005-06-06 15:30:00');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Seventh Name', 77777, '2003-12-12 18:32:00');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Eigth Name', 88888, '2005-03-12 11:00:00');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Ninth Name', 99999, '2005-03-12 11:00:01');
+INSERT INTO federated.t1 (name, other, created)
+ VALUES ('Tenth Name', 101010, '2005-03-12 12:00:01');
+
+# basic select
+SELECT * FROM federated.t1;
+# with PRIMARY KEY index_read_idx
+SELECT * FROM federated.t1 WHERE id = 5;
+# with regular key index_read -> index_read_idx
+# regular and PRIMARY KEY index_read_idx
+SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
+# with regular key index_read -> index_read_idx
+SELECT * FROM federated.t1 WHERE other = 44444;
+SELECT * FROM federated.t1 WHERE name like '%th%';
+# update - update_row, index_read_idx
+UPDATE federated.t1 SET name = '3rd name' WHERE id = 3;
+SELECT * FROM federated.t1 WHERE name = '3rd name';
+# update - update_row, index_read -> index_read_idx
+UPDATE federated.t1 SET name = 'Third name' WHERE name = '3rd name';
+SELECT * FROM federated.t1 WHERE name = 'Third name';
+# rnd_post, ::position
+SELECT * FROM federated.t1 ORDER BY id DESC;
+SELECT * FROM federated.t1 ORDER BY name;
+SELECT * FROM federated.t1 ORDER BY name DESC;
+SELECT * FROM federated.t1 ORDER BY name ASC;
+SELECT * FROM federated.t1 GROUP BY other;
+
+# ::delete_row
+DELETE FROM federated.t1 WHERE id = 5;
+SELECT * FROM federated.t1 WHERE id = 5;
+
+# ::delete_all_rows
+DELETE FROM federated.t1;
+SELECT * FROM federated.t1 WHERE id = 5;
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32),
+ `other` varchar(20),
+ PRIMARY KEY (`id`) );
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32),
+ `other` varchar(20),
+ PRIMARY KEY (`id`) )
+ ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (name, other) VALUES ('First Name', 11111);
+INSERT INTO federated.t1 (name, other) VALUES ('Second Name', NULL);
+INSERT INTO federated.t1 (name, other) VALUES ('Third Name', 33333);
+INSERT INTO federated.t1 (name, other) VALUES (NULL, NULL);
+INSERT INTO federated.t1 (name, other) VALUES ('Fifth Name', 55555);
+INSERT INTO federated.t1 (name, other) VALUES ('Sixth Name', 66666);
+INSERT INTO federated.t1 (name) VALUES ('Seventh Name');
+INSERT INTO federated.t1 (name, other) VALUES ('Eigth Name', 88888);
+INSERT INTO federated.t1 (name, other) VALUES ('Ninth Name', 99999);
+INSERT INTO federated.t1 (other) VALUES ('fee fie foe fum');
+
+SELECT * FROM federated.t1 WHERE other IS NULL;
+SELECT * FROM federated.t1 WHERE name IS NULL;
+SELECT * FROM federated.t1 WHERE name IS NULL and other IS NULL;
+SELECT * FROM federated.t1 WHERE name IS NULL or other IS NULL;
+
+UPDATE federated.t1
+SET name = 'Fourth Name', other = 'four four four'
+WHERE name IS NULL AND other IS NULL;
+
+UPDATE federated.t1 SET other = 'two two two two' WHERE name = 'Second Name';
+UPDATE federated.t1 SET other = 'seven seven' WHERE name like 'Sev%';
+UPDATE federated.t1 SET name = 'Tenth Name' WHERE other like 'fee fie%';
+SELECT * FROM federated.t1 WHERE name IS NULL OR other IS NULL ;
+SELECT * FROM federated.t1;
+
+# test multi-keys
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32) NOT NULL DEFAULT '',
+ `other` varchar(20) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY nameoth (name, other) );
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `name` varchar(32) NOT NULL DEFAULT '',
+ `other` varchar(20) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY nameoth (name, other))
+ ENGINE="FEDERATED" DEFAULT
+ CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (name, other) VALUES ('First Name', '1111');
+INSERT INTO federated.t1 (name, other) VALUES ('Second Name', '2222');
+INSERT INTO federated.t1 (name, other) VALUES ('Third Name', '3333');
+SELECT * FROM federated.t1 WHERE name = 'Second Name';
+SELECT * FROM federated.t1 WHERE other = '2222';
+SELECT * FROM federated.t1 WHERE name = 'Third Name';
+SELECT * FROM federated.t1 WHERE name = 'Third Name' AND other = '3333';
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int NOT NULL auto_increment,
+ `name` char(32) NOT NULL DEFAULT '',
+ `bincol` binary(1) NOT NULL,
+ `floatval` decimal(5,2) NOT NULL DEFAULT 0.0,
+ `other` int NOT NULL DEFAULT 0,
+ PRIMARY KEY (id),
+ KEY nameoth(name, other),
+ KEY bincol(bincol),
+ KEY floatval(floatval));
+
+# test other types of indexes
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int NOT NULL auto_increment,
+ `name` char(32) NOT NULL DEFAULT '',
+ `bincol` binary(1) NOT NULL,
+ `floatval` decimal(5,2) NOT NULL DEFAULT 0.0,
+ `other` int NOT NULL DEFAULT 0,
+ PRIMARY KEY (id),
+ KEY nameoth(name,other),
+ KEY bincol(bincol),
+ KEY floatval(floatval))
+ ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (name, bincol, floatval, other)
+ VALUES ('first', 0x65, 11.11, 1111);
+INSERT INTO federated.t1 (name, bincol, floatval, other)
+ VALUES ('second', 0x66, 22.22, 2222);
+INSERT INTO federated.t1 (name, bincol, floatval, other)
+ VALUES ('third', 'g', 22.22, 2222);
+SELECT * FROM federated.t1;
+SELECT * FROM federated.t1 WHERE name = 'second';
+SELECT * FROM federated.t1 WHERE bincol= 'f';
+SELECT * FROM federated.t1 WHERE bincol= 0x66;
+SELECT * FROM federated.t1 WHERE bincol= 0x67;
+SELECT * FROM federated.t1 WHERE bincol= 'g';
+SELECT * FROM federated.t1 WHERE floatval=11.11;
+SELECT * FROM federated.t1 WHERE name='third';
+SELECT * FROM federated.t1 WHERE other=2222;
+SELECT * FROM federated.t1 WHERE name='third' and other=2222;
+
+# more multi-column indexes, in the primary key
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int NOT NULL auto_increment,
+ `col1` int(10) NOT NULL DEFAULT 0,
+ `col2` varchar(64) NOT NULL DEFAULT '',
+ `col3` int(20) NOT NULL,
+ `col4` int(40) NOT NULL,
+ primary key (`id`, `col1`, `col2`, `col3`, `col4`),
+ key col1(col1),
+ key col2(col2),
+ key col3(col3),
+ key col4(col4));
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int NOT NULL auto_increment,
+ `col1` int(10) NOT NULL DEFAULT 0,
+ `col2` varchar(64) NOT NULL DEFAULT '',
+ `col3` int(20) NOT NULL,
+ `col4` int(40) NOT NULL,
+ primary key (`id`, `col1`, `col2`, `col3`, `col4`),
+ key col1(col1),
+ key col2(col2),
+ key col3(col3),
+ key col4(col4))
+ ENGINE="FEDERATED"
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (1, 'one One', 11, 1111);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (2, 'Two two', 22, 2222);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (3, 'three Three', 33, 33333);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (4, 'fourfourfour', 444, 4444444);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (5, 'five 5 five five 5', 5, 55555);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (6, 'six six Sixsix', 6666, 6);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (7, 'seven Sevenseven', 77777, 7777);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (8, 'eight eight eight', 88888, 88);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (9, 'nine Nine', 999999, 999999);
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES (10, 'Tenth ten TEN', 1010101, 1010);
+
+SELECT * FROM federated.t1 WHERE col2 = 'two two';
+SELECT * FROM federated.t1 WHERE col2 = 'two Two';
+SELECT * FROM federated.t1 WHERE id = 3;
+SELECT * FROM federated.t1 WHERE id = 3 AND col1 = 3;
+SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'Two two';
+SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'fourfourfour';
+SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
+ AND col3 = 5;
+SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
+ AND col3 = 5
+ AND col4 = 55555;
+SELECT * FROM federated.t1 WHERE id = 5
+ AND col2 = 'Two two' AND col3 = 22
+ AND col4 = 33;
+SELECT * FROM federated.t1 WHERE id = 5
+ AND col2 = 'five 5 five five 5' AND col3 = 5
+ AND col4 = 55555;
+SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'five 5 five five 5')
+ OR (col2 = 'three Three' AND col3 = 33);
+SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'Two two')
+ OR (col2 = 444 AND col3 = 4444444);
+SELECT * FROM federated.t1 WHERE id = 1
+ OR col1 = 10
+ OR col2 = 'Two two'
+ OR col3 = 33
+ OR col4 = 4444444;
+SELECT * FROM federated.t1 WHERE id > 5;
+SELECT * FROM federated.t1 WHERE id >= 5;
+SELECT * FROM federated.t1 WHERE id < 5;
+SELECT * FROM federated.t1 WHERE id <= 5;
+SELECT * FROM federated.t1 WHERE id != 5;
+SELECT * FROM federated.t1 WHERE id > 3 AND id < 7;
+SELECT * FROM federated.t1 WHERE id > 3 AND id <= 7;
+SELECT * FROM federated.t1 WHERE id >= 3 AND id <= 7;
+SELECT * FROM federated.t1 WHERE id < 3 AND id <= 7;
+SELECT * FROM federated.t1 WHERE id < 3 AND id > 7;
+SELECT * FROM federated.t1 WHERE id < 3 OR id > 7;
+SELECT * FROM federated.t1 WHERE col2 = 'three Three';
+SELECT * FROM federated.t1 WHERE col2 > 'one';
+SELECT * FROM federated.t1 WHERE col2 LIKE 's%';
+SELECT * FROM federated.t1 WHERE col2 LIKE 'si%';
+SELECT * FROM federated.t1 WHERE col2 LIKE 'se%';
+SELECT * FROM federated.t1 WHERE col2 NOT LIKE 'e%';
+SELECT * FROM federated.t1 WHERE col2 <> 'one One';
+
+# more multi-column indexes, in the primary key
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `col1` varchar(8) NOT NULL DEFAULT '',
+ `col2` varchar(128) NOT NULL DEFAULT '',
+ `col3` varchar(20) NOT NULL DEFAULT '',
+ `col4` varchar(40) NOT NULL DEFAULT '',
+ primary key (`col1`, `col2`, `col3`, `col4`),
+ key 3key(`col2`,`col3`,`col4`),
+ key 2key (`col3`,`col4`),
+ key col4(col4));
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `col1` varchar(8) NOT NULL DEFAULT '',
+ `col2` varchar(128) NOT NULL DEFAULT '',
+ `col3` varchar(20) NOT NULL DEFAULT '',
+ `col4` varchar(40) NOT NULL DEFAULT '',
+ primary key (`col1`, `col2`, `col3`, `col4`),
+ key 3key(`col2`,`col3`,`col4`),
+ key 2key (`col3`,`col4`),
+ key col4(col4))
+ ENGINE="FEDERATED"
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('aaaa', 'aaaaaaaaaaaaaaaaaaa', 'ababababab', 'acacacacacacacac');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('bbbb', 'bbbbbbbbbbbbbbbbbbb', 'bababababa', 'bcbcbcbcbcbcbcbc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('cccc', 'ccccccccccccccccccc', 'cacacacaca', 'cbcbcbcbcbcbcbcb');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('dddd', 'ddddddddddddddddddd', 'dadadadada', 'dcdcdcdcdcdcdcdc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('eeee', 'eeeeeeeeeeeeeeeeeee', 'eaeaeaeaea', 'ecececececececec');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('ffff', 'fffffffffffffffffff', 'fafafafafa', 'fcfcfcfcfcfcfcfc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('gggg', 'ggggggggggggggggggg', 'gagagagaga', 'gcgcgcgcgcgcgcgc');
+INSERT INTO federated.t1 (col1, col2, col3, col4)
+ VALUES ('hhhh', 'hhhhhhhhhhhhhhhhhhh', 'hahahahaha', 'hchchchchchchchc');
+
+SELECT * FROM federated.t1 WHERE col1 = 'cccc';
+SELECT * FROM federated.t1 WHERE col2 = 'eeeeeeeeeeeeeeeeeee';
+SELECT * FROM federated.t1 WHERE col3 = 'bababababa';
+SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col2 = 'ggggggggggggggggggg';
+SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col3 = 'gagagagaga';
+SELECT * FROM federated.t1 WHERE col1 = 'ffff' AND col4 = 'fcfcfcfcfcfcfcfc';
+SELECT * FROM federated.t1 WHERE col1 > 'bbbb';
+SELECT * FROM federated.t1 WHERE col1 >= 'bbbb';
+SELECT * FROM federated.t1 WHERE col1 < 'bbbb';
+SELECT * FROM federated.t1 WHERE col1 <= 'bbbb';
+SELECT * FROM federated.t1 WHERE col1 <> 'bbbb';
+SELECT * FROM federated.t1 WHERE col1 LIKE 'b%';
+SELECT * FROM federated.t1 WHERE col4 LIKE '%b%';
+SELECT * FROM federated.t1 WHERE col1 NOT LIKE 'c%';
+SELECT * FROM federated.t1 WHERE col4 NOT LIKE '%c%';
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `col1` varchar(8) NOT NULL DEFAULT '',
+ `col2` int(8) NOT NULL DEFAULT 0,
+ `col3` varchar(8) NOT NULL DEFAULT '',
+ primary key (`col1`, `col2`, `col3`));
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `col1` varchar(8) NOT NULL DEFAULT '',
+ `col2` varchar(8) NOT NULL DEFAULT '',
+ `col3` varchar(8) NOT NULL DEFAULT '',
+ primary key (`col1`, `col2`, `col3`))
+ ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 VALUES ('a00', '110', 'cc0');
+INSERT INTO federated.t1 VALUES ('aaa', '111', 'ccc');
+INSERT INTO federated.t1 VALUES ('bbb', '222', 'yyy');
+INSERT INTO federated.t1 VALUES ('ccc', '111', 'zzz');
+INSERT INTO federated.t1 VALUES ('ccd', '112', 'zzzz');
+
+# let's see what the foreign database says
+connection slave;
+SELECT col3 FROM federated.t1 WHERE (
+(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
+(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
+
+connection master;
+SELECT col3 FROM federated.t1 WHERE (
+(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
+(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
+
+# test NULLs
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int,
+ `name` varchar(32),
+ `floatval` float,
+ `other` int)
+DEFAULT CHARSET=latin1;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int,
+ `name` varchar(32),
+ `floatval` float,
+ `other` int)
+ENGINE="FEDERATED"
+DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+# these both should be the same
+INSERT INTO federated.t1 values (NULL, NULL, NULL, NULL);
+INSERT INTO federated.t1 values ();
+INSERT INTO federated.t1 (id) VALUES (1);
+INSERT INTO federated.t1 (name, floatval, other)
+ VALUES ('foo', 33.33333332, NULL);
+INSERT INTO federated.t1 (name, floatval, other)
+ VALUES (0, 00.3333, NULL);
+SELECT * FROM federated.t1;
+SELECT count(*) FROM federated.t1
+WHERE id IS NULL
+AND name IS NULL
+AND floatval IS NULL
+AND other IS NULL;
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `blurb_id` int NOT NULL DEFAULT 0,
+ `blurb` text default '',
+ PRIMARY KEY (blurb_id))
+ DEFAULT CHARSET=latin1;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `blurb_id` int NOT NULL DEFAULT 0,
+ `blurb` text default '',
+ PRIMARY KEY (blurb_id))
+ ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 VALUES (1, " MySQL supports a number of column types in several categories: numeric types, date and time types, and string (character) types. This chapter first gives an overview of these column types, and then provides a more detailed description of the properties of the types in each category, and a summary of the column type storage requirements. The overview is intentionally brief. The more detailed descriptions should be consulted for additional information about particular column types, such as the allowable formats in which you can specify values.");
+INSERT INTO federated.t1 VALUES (2, "All arithmetic is done using signed BIGINT or DOUBLE values, so you should not use unsigned big integers larger than 9223372036854775807 (63 bits) except with bit functions! If you do that, some of the last digits in the result may be wrong because of rounding errors when converting a BIGINT value to a DOUBLE.");
+INSERT INTO federated.t1 VALUES (3, " A floating-point number. p represents the precision. It can be from 0 to 24 for a single-precision floating-point number and from 25 to 53 for a double-precision floating-point number. These types are like the FLOAT and DOUBLE types described immediately following. FLOAT(p) has the same range as the corresponding FLOAT and DOUBLE types, but the display size and number of decimals are undefined. ");
+INSERT INTO federated.t1 VALUES(4, "Die Übersetzung einer so umfangreichen technischen Dokumentation wie des MySQL-Referenzhandbuchs ist schon eine besondere Herausforderung. Zumindest für jemanden, der seine Zielsprache ernst nimmt:");
+SELECT * FROM federated.t1;
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `a` int NOT NULL,
+ `b` int NOT NULL,
+ `c` int NOT NULL,
+ PRIMARY KEY (a),key(b));
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `a` int NOT NULL,
+ `b` int NOT NULL,
+ `c` int NOT NULL,
+ PRIMARY KEY (a),
+ KEY (b))
+ ENGINE="FEDERATED"
+ DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 VALUES (3,3,3),(1,1,1),(2,2,2),(4,4,4);
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8
+int, i9 int, i10 int, i11 int, i12 int, i13 int, i14 int, i15 int, i16 int, i17
+int, i18 int, i19 int, i20 int, i21 int, i22 int, i23 int, i24 int, i25 int,
+i26 int, i27 int, i28 int, i29 int, i30 int, i31 int, i32 int, i33 int, i34
+int, i35 int, i36 int, i37 int, i38 int, i39 int, i40 int, i41 int, i42 int,
+i43 int, i44 int, i45 int, i46 int, i47 int, i48 int, i49 int, i50 int, i51
+int, i52 int, i53 int, i54 int, i55 int, i56 int, i57 int, i58 int, i59 int,
+i60 int, i61 int, i62 int, i63 int, i64 int, i65 int, i66 int, i67 int, i68
+int, i69 int, i70 int, i71 int, i72 int, i73 int, i74 int, i75 int, i76 int,
+i77 int, i78 int, i79 int, i80 int, i81 int, i82 int, i83 int, i84 int, i85
+int, i86 int, i87 int, i88 int, i89 int, i90 int, i91 int, i92 int, i93 int,
+i94 int, i95 int, i96 int, i97 int, i98 int, i99 int, i100 int, i101 int, i102
+int, i103 int, i104 int, i105 int, i106 int, i107 int, i108 int, i109 int, i110
+int, i111 int, i112 int, i113 int, i114 int, i115 int, i116 int, i117 int, i118
+int, i119 int, i120 int, i121 int, i122 int, i123 int, i124 int, i125 int, i126
+int, i127 int, i128 int, i129 int, i130 int, i131 int, i132 int, i133 int, i134
+int, i135 int, i136 int, i137 int, i138 int, i139 int, i140 int, i141 int, i142
+int, i143 int, i144 int, i145 int, i146 int, i147 int, i148 int, i149 int, i150
+int, i151 int, i152 int, i153 int, i154 int, i155 int, i156 int, i157 int, i158
+int, i159 int, i160 int, i161 int, i162 int, i163 int, i164 int, i165 int, i166
+int, i167 int, i168 int, i169 int, i170 int, i171 int, i172 int, i173 int, i174
+int, i175 int, i176 int, i177 int, i178 int, i179 int, i180 int, i181 int, i182
+int, i183 int, i184 int, i185 int, i186 int, i187 int, i188 int, i189 int, i190
+int, i191 int, i192 int, i193 int, i194 int, i195 int, i196 int, i197 int, i198
+int, i199 int, i200 int, i201 int, i202 int, i203 int, i204 int, i205 int, i206
+int, i207 int, i208 int, i209 int, i210 int, i211 int, i212 int, i213 int, i214
+int, i215 int, i216 int, i217 int, i218 int, i219 int, i220 int, i221 int, i222
+int, i223 int, i224 int, i225 int, i226 int, i227 int, i228 int, i229 int, i230
+int, i231 int, i232 int, i233 int, i234 int, i235 int, i236 int, i237 int, i238
+int, i239 int, i240 int, i241 int, i242 int, i243 int, i244 int, i245 int, i246
+int, i247 int, i248 int, i249 int, i250 int, i251 int, i252 int, i253 int, i254
+int, i255 int, i256 int, i257 int, i258 int, i259 int, i260 int, i261 int, i262
+int, i263 int, i264 int, i265 int, i266 int, i267 int, i268 int, i269 int, i270
+int, i271 int, i272 int, i273 int, i274 int, i275 int, i276 int, i277 int, i278
+int, i279 int, i280 int, i281 int, i282 int, i283 int, i284 int, i285 int, i286
+int, i287 int, i288 int, i289 int, i290 int, i291 int, i292 int, i293 int, i294
+int, i295 int, i296 int, i297 int, i298 int, i299 int, i300 int, i301 int, i302
+int, i303 int, i304 int, i305 int, i306 int, i307 int, i308 int, i309 int, i310
+int, i311 int, i312 int, i313 int, i314 int, i315 int, i316 int, i317 int, i318
+int, i319 int, i320 int, i321 int, i322 int, i323 int, i324 int, i325 int, i326
+int, i327 int, i328 int, i329 int, i330 int, i331 int, i332 int, i333 int, i334
+int, i335 int, i336 int, i337 int, i338 int, i339 int, i340 int, i341 int, i342
+int, i343 int, i344 int, i345 int, i346 int, i347 int, i348 int, i349 int, i350
+int, i351 int, i352 int, i353 int, i354 int, i355 int, i356 int, i357 int, i358
+int, i359 int, i360 int, i361 int, i362 int, i363 int, i364 int, i365 int, i366
+int, i367 int, i368 int, i369 int, i370 int, i371 int, i372 int, i373 int, i374
+int, i375 int, i376 int, i377 int, i378 int, i379 int, i380 int, i381 int, i382
+int, i383 int, i384 int, i385 int, i386 int, i387 int, i388 int, i389 int, i390
+int, i391 int, i392 int, i393 int, i394 int, i395 int, i396 int, i397 int, i398
+int, i399 int, i400 int, i401 int, i402 int, i403 int, i404 int, i405 int, i406
+int, i407 int, i408 int, i409 int, i410 int, i411 int, i412 int, i413 int, i414
+int, i415 int, i416 int, i417 int, i418 int, i419 int, i420 int, i421 int, i422
+int, i423 int, i424 int, i425 int, i426 int, i427 int, i428 int, i429 int, i430
+int, i431 int, i432 int, i433 int, i434 int, i435 int, i436 int, i437 int, i438
+int, i439 int, i440 int, i441 int, i442 int, i443 int, i444 int, i445 int, i446
+int, i447 int, i448 int, i449 int, i450 int, i451 int, i452 int, i453 int, i454
+int, i455 int, i456 int, i457 int, i458 int, i459 int, i460 int, i461 int, i462
+int, i463 int, i464 int, i465 int, i466 int, i467 int, i468 int, i469 int, i470
+int, i471 int, i472 int, i473 int, i474 int, i475 int, i476 int, i477 int, i478
+int, i479 int, i480 int, i481 int, i482 int, i483 int, i484 int, i485 int, i486
+int, i487 int, i488 int, i489 int, i490 int, i491 int, i492 int, i493 int, i494
+int, i495 int, i496 int, i497 int, i498 int, i499 int, i500 int, i501 int, i502
+int, i503 int, i504 int, i505 int, i506 int, i507 int, i508 int, i509 int, i510
+int, i511 int, i512 int, i513 int, i514 int, i515 int, i516 int, i517 int, i518
+int, i519 int, i520 int, i521 int, i522 int, i523 int, i524 int, i525 int, i526
+int, i527 int, i528 int, i529 int, i530 int, i531 int, i532 int, i533 int, i534
+int, i535 int, i536 int, i537 int, i538 int, i539 int, i540 int, i541 int, i542
+int, i543 int, i544 int, i545 int, i546 int, i547 int, i548 int, i549 int, i550
+int, i551 int, i552 int, i553 int, i554 int, i555 int, i556 int, i557 int, i558
+int, i559 int, i560 int, i561 int, i562 int, i563 int, i564 int, i565 int, i566
+int, i567 int, i568 int, i569 int, i570 int, i571 int, i572 int, i573 int, i574
+int, i575 int, i576 int, i577 int, i578 int, i579 int, i580 int, i581 int, i582
+int, i583 int, i584 int, i585 int, i586 int, i587 int, i588 int, i589 int, i590
+int, i591 int, i592 int, i593 int, i594 int, i595 int, i596 int, i597 int, i598
+int, i599 int, i600 int, i601 int, i602 int, i603 int, i604 int, i605 int, i606
+int, i607 int, i608 int, i609 int, i610 int, i611 int, i612 int, i613 int, i614
+int, i615 int, i616 int, i617 int, i618 int, i619 int, i620 int, i621 int, i622
+int, i623 int, i624 int, i625 int, i626 int, i627 int, i628 int, i629 int, i630
+int, i631 int, i632 int, i633 int, i634 int, i635 int, i636 int, i637 int, i638
+int, i639 int, i640 int, i641 int, i642 int, i643 int, i644 int, i645 int, i646
+int, i647 int, i648 int, i649 int, i650 int, i651 int, i652 int, i653 int, i654
+int, i655 int, i656 int, i657 int, i658 int, i659 int, i660 int, i661 int, i662
+int, i663 int, i664 int, i665 int, i666 int, i667 int, i668 int, i669 int, i670
+int, i671 int, i672 int, i673 int, i674 int, i675 int, i676 int, i677 int, i678
+int, i679 int, i680 int, i681 int, i682 int, i683 int, i684 int, i685 int, i686
+int, i687 int, i688 int, i689 int, i690 int, i691 int, i692 int, i693 int, i694
+int, i695 int, i696 int, i697 int, i698 int, i699 int, i700 int, i701 int, i702
+int, i703 int, i704 int, i705 int, i706 int, i707 int, i708 int, i709 int, i710
+int, i711 int, i712 int, i713 int, i714 int, i715 int, i716 int, i717 int, i718
+int, i719 int, i720 int, i721 int, i722 int, i723 int, i724 int, i725 int, i726
+int, i727 int, i728 int, i729 int, i730 int, i731 int, i732 int, i733 int, i734
+int, i735 int, i736 int, i737 int, i738 int, i739 int, i740 int, i741 int, i742
+int, i743 int, i744 int, i745 int, i746 int, i747 int, i748 int, i749 int, i750
+int, i751 int, i752 int, i753 int, i754 int, i755 int, i756 int, i757 int, i758
+int, i759 int, i760 int, i761 int, i762 int, i763 int, i764 int, i765 int, i766
+int, i767 int, i768 int, i769 int, i770 int, i771 int, i772 int, i773 int, i774
+int, i775 int, i776 int, i777 int, i778 int, i779 int, i780 int, i781 int, i782
+int, i783 int, i784 int, i785 int, i786 int, i787 int, i788 int, i789 int, i790
+int, i791 int, i792 int, i793 int, i794 int, i795 int, i796 int, i797 int, i798
+int, i799 int, i800 int, i801 int, i802 int, i803 int, i804 int, i805 int, i806
+int, i807 int, i808 int, i809 int, i810 int, i811 int, i812 int, i813 int, i814
+int, i815 int, i816 int, i817 int, i818 int, i819 int, i820 int, i821 int, i822
+int, i823 int, i824 int, i825 int, i826 int, i827 int, i828 int, i829 int, i830
+int, i831 int, i832 int, i833 int, i834 int, i835 int, i836 int, i837 int, i838
+int, i839 int, i840 int, i841 int, i842 int, i843 int, i844 int, i845 int, i846
+int, i847 int, i848 int, i849 int, i850 int, i851 int, i852 int, i853 int, i854
+int, i855 int, i856 int, i857 int, i858 int, i859 int, i860 int, i861 int, i862
+int, i863 int, i864 int, i865 int, i866 int, i867 int, i868 int, i869 int, i870
+int, i871 int, i872 int, i873 int, i874 int, i875 int, i876 int, i877 int, i878
+int, i879 int, i880 int, i881 int, i882 int, i883 int, i884 int, i885 int, i886
+int, i887 int, i888 int, i889 int, i890 int, i891 int, i892 int, i893 int, i894
+int, i895 int, i896 int, i897 int, i898 int, i899 int, i900 int, i901 int, i902
+int, i903 int, i904 int, i905 int, i906 int, i907 int, i908 int, i909 int, i910
+int, i911 int, i912 int, i913 int, i914 int, i915 int, i916 int, i917 int, i918
+int, i919 int, i920 int, i921 int, i922 int, i923 int, i924 int, i925 int, i926
+int, i927 int, i928 int, i929 int, i930 int, i931 int, i932 int, i933 int, i934
+int, i935 int, i936 int, i937 int, i938 int, i939 int, i940 int, i941 int, i942
+int, i943 int, i944 int, i945 int, i946 int, i947 int, i948 int, i949 int, i950
+int, i951 int, i952 int, i953 int, i954 int, i955 int, i956 int, i957 int, i958
+int, i959 int, i960 int, i961 int, i962 int, i963 int, i964 int, i965 int, i966
+int, i967 int, i968 int, i969 int, i970 int, i971 int, i972 int, i973 int, i974
+int, i975 int, i976 int, i977 int, i978 int, i979 int, i980 int, i981 int, i982
+int, i983 int, i984 int, i985 int, i986 int, i987 int, i988 int, i989 int, i990
+int, i991 int, i992 int, i993 int, i994 int, i995 int, i996 int, i997 int, i998
+int, i999 int, i1000 int, b varchar(256)) row_format=dynamic;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1
+(i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8
+int, i9 int, i10 int, i11 int, i12 int, i13 int, i14 int, i15 int, i16 int,
+i17 int, i18 int, i19 int, i20 int, i21 int, i22 int, i23 int, i24 int, i25 int,
+i26 int, i27 int, i28 int, i29 int, i30 int, i31 int, i32 int, i33 int, i34
+int, i35 int, i36 int, i37 int, i38 int, i39 int, i40 int, i41 int, i42 int,
+i43 int, i44 int, i45 int, i46 int, i47 int, i48 int, i49 int, i50 int, i51
+int, i52 int, i53 int, i54 int, i55 int, i56 int, i57 int, i58 int, i59 int,
+i60 int, i61 int, i62 int, i63 int, i64 int, i65 int, i66 int, i67 int, i68
+int, i69 int, i70 int, i71 int, i72 int, i73 int, i74 int, i75 int, i76 int,
+i77 int, i78 int, i79 int, i80 int, i81 int, i82 int, i83 int, i84 int, i85
+int, i86 int, i87 int, i88 int, i89 int, i90 int, i91 int, i92 int, i93 int,
+i94 int, i95 int, i96 int, i97 int, i98 int, i99 int, i100 int, i101 int, i102
+int, i103 int, i104 int, i105 int, i106 int, i107 int, i108 int, i109 int, i110
+int, i111 int, i112 int, i113 int, i114 int, i115 int, i116 int, i117 int, i118
+int, i119 int, i120 int, i121 int, i122 int, i123 int, i124 int, i125 int, i126
+int, i127 int, i128 int, i129 int, i130 int, i131 int, i132 int, i133 int, i134
+int, i135 int, i136 int, i137 int, i138 int, i139 int, i140 int, i141 int, i142
+int, i143 int, i144 int, i145 int, i146 int, i147 int, i148 int, i149 int, i150
+int, i151 int, i152 int, i153 int, i154 int, i155 int, i156 int, i157 int, i158
+int, i159 int, i160 int, i161 int, i162 int, i163 int, i164 int, i165 int, i166
+int, i167 int, i168 int, i169 int, i170 int, i171 int, i172 int, i173 int, i174
+int, i175 int, i176 int, i177 int, i178 int, i179 int, i180 int, i181 int, i182
+int, i183 int, i184 int, i185 int, i186 int, i187 int, i188 int, i189 int, i190
+int, i191 int, i192 int, i193 int, i194 int, i195 int, i196 int, i197 int, i198
+int, i199 int, i200 int, i201 int, i202 int, i203 int, i204 int, i205 int, i206
+int, i207 int, i208 int, i209 int, i210 int, i211 int, i212 int, i213 int, i214
+int, i215 int, i216 int, i217 int, i218 int, i219 int, i220 int, i221 int, i222
+int, i223 int, i224 int, i225 int, i226 int, i227 int, i228 int, i229 int, i230
+int, i231 int, i232 int, i233 int, i234 int, i235 int, i236 int, i237 int, i238
+int, i239 int, i240 int, i241 int, i242 int, i243 int, i244 int, i245 int, i246
+int, i247 int, i248 int, i249 int, i250 int, i251 int, i252 int, i253 int, i254
+int, i255 int, i256 int, i257 int, i258 int, i259 int, i260 int, i261 int, i262
+int, i263 int, i264 int, i265 int, i266 int, i267 int, i268 int, i269 int, i270
+int, i271 int, i272 int, i273 int, i274 int, i275 int, i276 int, i277 int, i278
+int, i279 int, i280 int, i281 int, i282 int, i283 int, i284 int, i285 int, i286
+int, i287 int, i288 int, i289 int, i290 int, i291 int, i292 int, i293 int, i294
+int, i295 int, i296 int, i297 int, i298 int, i299 int, i300 int, i301 int, i302
+int, i303 int, i304 int, i305 int, i306 int, i307 int, i308 int, i309 int, i310
+int, i311 int, i312 int, i313 int, i314 int, i315 int, i316 int, i317 int, i318
+int, i319 int, i320 int, i321 int, i322 int, i323 int, i324 int, i325 int, i326
+int, i327 int, i328 int, i329 int, i330 int, i331 int, i332 int, i333 int, i334
+int, i335 int, i336 int, i337 int, i338 int, i339 int, i340 int, i341 int, i342
+int, i343 int, i344 int, i345 int, i346 int, i347 int, i348 int, i349 int, i350
+int, i351 int, i352 int, i353 int, i354 int, i355 int, i356 int, i357 int, i358
+int, i359 int, i360 int, i361 int, i362 int, i363 int, i364 int, i365 int, i366
+int, i367 int, i368 int, i369 int, i370 int, i371 int, i372 int, i373 int, i374
+int, i375 int, i376 int, i377 int, i378 int, i379 int, i380 int, i381 int, i382
+int, i383 int, i384 int, i385 int, i386 int, i387 int, i388 int, i389 int, i390
+int, i391 int, i392 int, i393 int, i394 int, i395 int, i396 int, i397 int, i398
+int, i399 int, i400 int, i401 int, i402 int, i403 int, i404 int, i405 int, i406
+int, i407 int, i408 int, i409 int, i410 int, i411 int, i412 int, i413 int, i414
+int, i415 int, i416 int, i417 int, i418 int, i419 int, i420 int, i421 int, i422
+int, i423 int, i424 int, i425 int, i426 int, i427 int, i428 int, i429 int, i430
+int, i431 int, i432 int, i433 int, i434 int, i435 int, i436 int, i437 int, i438
+int, i439 int, i440 int, i441 int, i442 int, i443 int, i444 int, i445 int, i446
+int, i447 int, i448 int, i449 int, i450 int, i451 int, i452 int, i453 int, i454
+int, i455 int, i456 int, i457 int, i458 int, i459 int, i460 int, i461 int, i462
+int, i463 int, i464 int, i465 int, i466 int, i467 int, i468 int, i469 int, i470
+int, i471 int, i472 int, i473 int, i474 int, i475 int, i476 int, i477 int, i478
+int, i479 int, i480 int, i481 int, i482 int, i483 int, i484 int, i485 int, i486
+int, i487 int, i488 int, i489 int, i490 int, i491 int, i492 int, i493 int, i494
+int, i495 int, i496 int, i497 int, i498 int, i499 int, i500 int, i501 int, i502
+int, i503 int, i504 int, i505 int, i506 int, i507 int, i508 int, i509 int, i510
+int, i511 int, i512 int, i513 int, i514 int, i515 int, i516 int, i517 int, i518
+int, i519 int, i520 int, i521 int, i522 int, i523 int, i524 int, i525 int, i526
+int, i527 int, i528 int, i529 int, i530 int, i531 int, i532 int, i533 int, i534
+int, i535 int, i536 int, i537 int, i538 int, i539 int, i540 int, i541 int, i542
+int, i543 int, i544 int, i545 int, i546 int, i547 int, i548 int, i549 int, i550
+int, i551 int, i552 int, i553 int, i554 int, i555 int, i556 int, i557 int, i558
+int, i559 int, i560 int, i561 int, i562 int, i563 int, i564 int, i565 int, i566
+int, i567 int, i568 int, i569 int, i570 int, i571 int, i572 int, i573 int, i574
+int, i575 int, i576 int, i577 int, i578 int, i579 int, i580 int, i581 int, i582
+int, i583 int, i584 int, i585 int, i586 int, i587 int, i588 int, i589 int, i590
+int, i591 int, i592 int, i593 int, i594 int, i595 int, i596 int, i597 int, i598
+int, i599 int, i600 int, i601 int, i602 int, i603 int, i604 int, i605 int, i606
+int, i607 int, i608 int, i609 int, i610 int, i611 int, i612 int, i613 int, i614
+int, i615 int, i616 int, i617 int, i618 int, i619 int, i620 int, i621 int, i622
+int, i623 int, i624 int, i625 int, i626 int, i627 int, i628 int, i629 int, i630
+int, i631 int, i632 int, i633 int, i634 int, i635 int, i636 int, i637 int, i638
+int, i639 int, i640 int, i641 int, i642 int, i643 int, i644 int, i645 int, i646
+int, i647 int, i648 int, i649 int, i650 int, i651 int, i652 int, i653 int, i654
+int, i655 int, i656 int, i657 int, i658 int, i659 int, i660 int, i661 int, i662
+int, i663 int, i664 int, i665 int, i666 int, i667 int, i668 int, i669 int, i670
+int, i671 int, i672 int, i673 int, i674 int, i675 int, i676 int, i677 int, i678
+int, i679 int, i680 int, i681 int, i682 int, i683 int, i684 int, i685 int, i686
+int, i687 int, i688 int, i689 int, i690 int, i691 int, i692 int, i693 int, i694
+int, i695 int, i696 int, i697 int, i698 int, i699 int, i700 int, i701 int, i702
+int, i703 int, i704 int, i705 int, i706 int, i707 int, i708 int, i709 int, i710
+int, i711 int, i712 int, i713 int, i714 int, i715 int, i716 int, i717 int, i718
+int, i719 int, i720 int, i721 int, i722 int, i723 int, i724 int, i725 int, i726
+int, i727 int, i728 int, i729 int, i730 int, i731 int, i732 int, i733 int, i734
+int, i735 int, i736 int, i737 int, i738 int, i739 int, i740 int, i741 int, i742
+int, i743 int, i744 int, i745 int, i746 int, i747 int, i748 int, i749 int, i750
+int, i751 int, i752 int, i753 int, i754 int, i755 int, i756 int, i757 int, i758
+int, i759 int, i760 int, i761 int, i762 int, i763 int, i764 int, i765 int, i766
+int, i767 int, i768 int, i769 int, i770 int, i771 int, i772 int, i773 int, i774
+int, i775 int, i776 int, i777 int, i778 int, i779 int, i780 int, i781 int, i782
+int, i783 int, i784 int, i785 int, i786 int, i787 int, i788 int, i789 int, i790
+int, i791 int, i792 int, i793 int, i794 int, i795 int, i796 int, i797 int, i798
+int, i799 int, i800 int, i801 int, i802 int, i803 int, i804 int, i805 int, i806
+int, i807 int, i808 int, i809 int, i810 int, i811 int, i812 int, i813 int, i814
+int, i815 int, i816 int, i817 int, i818 int, i819 int, i820 int, i821 int, i822
+int, i823 int, i824 int, i825 int, i826 int, i827 int, i828 int, i829 int, i830
+int, i831 int, i832 int, i833 int, i834 int, i835 int, i836 int, i837 int, i838
+int, i839 int, i840 int, i841 int, i842 int, i843 int, i844 int, i845 int, i846
+int, i847 int, i848 int, i849 int, i850 int, i851 int, i852 int, i853 int, i854
+int, i855 int, i856 int, i857 int, i858 int, i859 int, i860 int, i861 int, i862
+int, i863 int, i864 int, i865 int, i866 int, i867 int, i868 int, i869 int, i870
+int, i871 int, i872 int, i873 int, i874 int, i875 int, i876 int, i877 int, i878
+int, i879 int, i880 int, i881 int, i882 int, i883 int, i884 int, i885 int, i886
+int, i887 int, i888 int, i889 int, i890 int, i891 int, i892 int, i893 int, i894
+int, i895 int, i896 int, i897 int, i898 int, i899 int, i900 int, i901 int, i902
+int, i903 int, i904 int, i905 int, i906 int, i907 int, i908 int, i909 int, i910
+int, i911 int, i912 int, i913 int, i914 int, i915 int, i916 int, i917 int, i918
+int, i919 int, i920 int, i921 int, i922 int, i923 int, i924 int, i925 int, i926
+int, i927 int, i928 int, i929 int, i930 int, i931 int, i932 int, i933 int, i934
+int, i935 int, i936 int, i937 int, i938 int, i939 int, i940 int, i941 int, i942
+int, i943 int, i944 int, i945 int, i946 int, i947 int, i948 int, i949 int, i950
+int, i951 int, i952 int, i953 int, i954 int, i955 int, i956 int, i957 int, i958
+int, i959 int, i960 int, i961 int, i962 int, i963 int, i964 int, i965 int, i966
+int, i967 int, i968 int, i969 int, i970 int, i971 int, i972 int, i973 int, i974
+int, i975 int, i976 int, i977 int, i978 int, i979 int, i980 int, i981 int, i982
+int, i983 int, i984 int, i985 int, i986 int, i987 int, i988 int, i989 int, i990
+int, i991 int, i992 int, i993 int, i994 int, i995 int, i996 int, i997 int, i998
+int, i999 int, i1000 int, b varchar(256))
+row_format=dynamic
+ENGINE="FEDERATED"
+DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1
+values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, "PatrickG");
+UPDATE federated.t1 SET b=repeat('a',256);
+UPDATE federated.t1 SET i1=0, i2=0, i3=0, i4=0, i5=0, i6=0, i7=0, i8=0, i9=0, i10=0;
+SELECT * FROM federated.t1 WHERE i9=0 and i10=0;
+UPDATE federated.t1 SET i50=20;
+SELECT * FROM federated.t1;
+DELETE FROM federated.t1 WHERE i51=20;
+SELECT * FROM federated.t1;
+DELETE FROM federated.t1 WHERE i50=20;
+SELECT * FROM federated.t1;
+
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (id int NOT NULL auto_increment, code char(20) NOT NULL, fileguts blob NOT NULL, creation_date datetime, entered_time datetime default '2004-04-04 04:04:04', PRIMARY KEY(id), index(code), index(fileguts(10))) DEFAULT CHARSET=latin1;
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ id int NOT NULL auto_increment,
+ code char(20) NOT NULL,
+ fileguts blob NOT NULL,
+ creation_date datetime,
+ entered_time datetime default '2004-04-04 04:04:04',
+ PRIMARY KEY(id),
+ index(code),
+ index(fileguts(10)))
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+INSERT INTO federated.t1 (code, fileguts, creation_date) VALUES ('ASDFWERQWETWETAWETA', '*()w*09*$()*#)(*09*^90*d)(*s()d8g)(s*ned)(*)(s*d)(*hn(d*)(*sbn)D((#$*(#*%%&#&^$#&#&#&#&^&#*&*#$*&^*(&#(&Q*&&(*!&!(*&*(#&*(%&#<S-F8>*<S-F8><S-F8><S-F8>#<S-F8>#<S-F8>#<S-F8>[[', '2003-03-03 03:03:03');
+INSERT INTO federated.t1 (code, fileguts, creation_date) VALUES ('DEUEUEUEUEUEUEUEUEU', '*()w*09*$()*#)(*09*^90*d)(*s()d8g)(s*ned)(*)(s*d)(*hn(d*)(*sbn)D((#$*(#*%%&#&^$#&#&#&#&^&#*&*#$*&^*(&#(&Q*&&(*!&!(*&*(#&*(%&#<S-F8>*<S-F8><S-F8><S-F8>#<S-F8>#<S-F8>#<S-F8>[[', '2004-04-04 04:04:04');
+INSERT INTO federated.t1 (code, fileguts, creation_date) VALUES ('DEUEUEUEUEUEUEUEUEU', 'jimbob', '2004-04-04 04:04:04');
+SELECT * FROM federated.t1;
+# test blob indexes
+SELECT * FROM federated.t1 WHERE fileguts = 'jimbob';
+
+# test blob with binary
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (`a` BLOB);
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `a` BLOB)
+ENGINE="FEDERATED"
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 VALUES (0x00);
+INSERT INTO federated.t1 VALUES (0x0001);
+INSERT INTO federated.t1 VALUES (0x0100);
+SELECT HEX(a) FROM federated.t1;
+
+# # simple tests for cyrillic, given to me by
+# DROP TABLE IF EXISTS federated.t1;
+# --replace_result $SLAVE_MYPORT SLAVE_PORT
+# eval CREATE TABLE federated.t1
+# (a char(20)) charset=cp1251
+# ENGINE="FEDERATED" CONNECTION="mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1";
+# #
+# connection slave;
+# DROP TABLE IF EXISTS federated.t1;
+# CREATE TABLE federated.t1 (a char(20)) charset=cp1251;
+# #
+# connection master;
+# INSERT INTO federated.t1 values (_cp1251'À-ÁÂÃ-1');
+# INSERT INTO federated.t1 values (_cp1251'Á-ÂÃÄ-2');
+# SELECT * FROM federated.t1;
+# SET names cp1251;
+# INSERT INTO federated.t1 values ('Â-ÃÄÅ-3');
+# INSERT INTO federated.t1 values ('Ã-ŨÆ-4');
+# SELECT * FROM federated.t1;
+# SELECT hex(a) from federated.t1;
+# SELECT hex(a) from federated.t1 ORDER BY a desc;
+# UPDATE federated.t1 SET a='À-ÁÂÃ-1íîâûé' WHERE a='À-ÁÂÃ-1';
+# SELECT * FROM federated.t1;
+# DELETE FROM federated.t1 WHERE a='Ã-ŨÆ-4';
+# SELECT * FROM federated.t1;
+# DELETE FROM federated.t1 WHERE a>'Â-';
+# SELECT * FROM federated.t1;
+# SET names default;
+# DROP TABLE IF EXISTS federated.t1;
+
+#
+# DROP TABLE IF EXISTS federated.t1;
+#
+
+# test joins with non-federated table
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `country_id` int(20) NOT NULL DEFAULT 0,
+ `name` varchar(32),
+ `other` varchar(20),
+ PRIMARY KEY (`id`),
+ key (country_id));
+
+connection master;
+DROP TABLE IF EXISTS federated.countries;
+CREATE TABLE federated.countries (
+ `id` int(20) NOT NULL auto_increment,
+ `country` varchar(32),
+ PRIMARY KEY (id));
+INSERT INTO federated.countries (country) VALUES ('India');
+INSERT INTO federated.countries (country) VALUES ('Germany');
+INSERT INTO federated.countries (country) VALUES ('Italy');
+INSERT INTO federated.countries (country) VALUES ('Finland');
+INSERT INTO federated.countries (country) VALUES ('Ukraine');
+
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ `country_id` int(20) NOT NULL DEFAULT 0,
+ `name` varchar(32),
+ `other` varchar(20),
+ PRIMARY KEY (`id`),
+ KEY (country_id) )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Kumar', 1, 11111);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Lenz', 2, 22222);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Marizio', 3, 33333);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Monty', 4, 33333);
+INSERT INTO federated.t1 (name, country_id, other) VALUES ('Sanja', 5, 33333);
+
+#inner join
+SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
+federated.t1.other AS other, federated.countries.country AS country
+FROM federated.t1, federated.countries WHERE
+federated.t1.country_id = federated.countries.id;
+
+SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
+federated.t1.other AS other, federated.countries.country AS country
+FROM federated.t1 INNER JOIN federated.countries ON
+federated.t1.country_id = federated.countries.id;
+
+SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
+federated.t1.other AS other, federated.countries.country AS country
+FROM federated.t1 INNER JOIN federated.countries ON
+federated.t1.country_id = federated.countries.id
+WHERE federated.t1.name = 'Monty';
+
+#left join
+SELECT federated.t1.*, federated.countries.country
+FROM federated.t1 LEFT JOIN federated.countries
+ON federated.t1.country_id = federated.countries.id
+ORDER BY federated.countries.id;
+
+SELECT federated.t1.*, federated.countries.country
+FROM federated.t1 LEFT JOIN federated.countries
+ON federated.t1.country_id = federated.countries.id
+ORDER BY federated.countries.country;
+
+#right join
+SELECT federated.t1.*, federated.countries.country
+FROM federated.t1 RIGHT JOIN federated.countries
+ON federated.t1.country_id = federated.countries.id
+ORDER BY federated.t1.country_id;
+
+DROP TABLE federated.countries;
+
+#BEGIN optimize and repair tests
+OPTIMIZE TABLE federated.t1;
+REPAIR TABLE federated.t1;
+REPAIR TABLE federated.t1 QUICK;
+REPAIR TABLE federated.t1 EXTENDED;
+REPAIR TABLE federated.t1 USE_FRM;
+#END optimize and repair tests
+
+
+# BEGIN ALTER TEST
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.normal_table;
+--enable_warnings
+
+CREATE TABLE federated.normal_table (
+ `id` int(4) NOT NULL,
+ `name` varchar(10) default NULL
+ ) DEFAULT CHARSET=latin1;
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.alter_me;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.alter_me (
+ `id` int(4) NOT NULL,
+ `name` varchar(10) default NULL,
+ PRIMARY KEY (`id`)
+ ) ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/normal_table';
+
+INSERT INTO federated.alter_me (id, name) VALUES (1, 'Monty');
+INSERT INTO federated.alter_me (id, name) VALUES (2, 'David');
+
+SELECT * FROM federated.alter_me;
+
+--error 1031
+ALTER TABLE federated.alter_me MODIFY COLUMN id int(16) NOT NULL;
+
+SELECT * FROM federated.alter_me;
+
+DROP TABLE federated.alter_me;
+connection slave;
+DROP TABLE federated.normal_table;
+# END ALTER TEST
+
+#
+# Test BUG #14532 - bit columns broken in federated
+# storage engine
+#
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+--enable_warnings
+CREATE TABLE federated.t1 (
+ `bitty` bit(3)
+) DEFAULT CHARSET=latin1;
+
+connection master;
+
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `bitty` bit(3)
+) ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 VALUES (b'001');
+INSERT INTO federated.t1 VALUES (b'010');
+INSERT INTO federated.t1 VALUES (b'011');
+INSERT INTO federated.t1 VALUES (b'100');
+INSERT INTO federated.t1 VALUES (b'101');
+INSERT INTO federated.t1 VALUES (b'110');
+INSERT INTO federated.t1 VALUES (b'111');
+select * FROM federated.t1;
+drop table federated.t1;
+
+connection slave;
+drop table federated.t1;
+
+#
+# BUG# 14768 test auto_increment last_insert_id()
+#
+connection slave;
+DROP TABLE IF EXISTS federated.t1;
+CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ PRIMARY KEY (`id`));
+
+connection master;
+DROP TABLE IF EXISTS federated.t1;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(20) NOT NULL auto_increment,
+ PRIMARY KEY (`id`)
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+INSERT INTO federated.t1 VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT * FROM federated.t1;
+DROP TABLE federated.t1;
+
+connection slave;
+DROP TABLE federated.t1;
+
+#
+# Bug#17377 Federated Engine returns wrong Data, always the rows
+# with the highest ID
+#
+
+connection slave;
+
+--disable_warnings
+DROP TABLE IF EXISTS federated.bug_17377_table;
+--enable_warnings
+
+CREATE TABLE federated.bug_17377_table (
+`fld_cid` bigint(20) NOT NULL auto_increment,
+`fld_name` varchar(255) NOT NULL default '',
+`fld_parentid` bigint(20) NOT NULL default '0',
+`fld_delt` int(1) NOT NULL default '0',
+PRIMARY KEY (`fld_cid`),
+KEY `fld_parentid` (`fld_parentid`),
+KEY `fld_delt` (`fld_delt`),
+KEY `fld_cid` (`fld_cid`)
+) ENGINE=MyISAM;
+
+# Insert some test-data
+insert into federated.bug_17377_table( fld_name )
+values
+("Mats"), ("Sivert"), ("Sigvard"), ("Torgny"), ("Torkel");
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+`fld_cid` bigint(20) NOT NULL auto_increment,
+`fld_name` varchar(255) NOT NULL default '',
+`fld_parentid` bigint(20) NOT NULL default '0',
+`fld_delt` int(1) NOT NULL default '0',
+PRIMARY KEY (`fld_cid`),
+KEY `fld_parentid` (`fld_parentid`),
+KEY `fld_delt` (`fld_delt`),
+KEY `fld_cid` (`fld_cid`)
+) ENGINE=FEDERATED
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/bug_17377_table';
+
+select * from federated.t1 where fld_parentid=0 and fld_delt=0
+order by fld_name;
+
+select * from federated.t1 where fld_parentid=0 and fld_delt=0;
+
+DROP TABLE federated.t1;
+connection slave;
+DROP TABLE federated.bug_17377_table;
+
+#
+# BUG 19773 Crash when using multi-table updates, deletes
+# with federated tables
+#
+connection slave;
+create table federated.t1 (i1 int, i2 int, i3 int);
+create table federated.t2 (id int, c1 varchar(20), c2 varchar(20));
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (i1 int, i2 int, i3 int) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t2 (id int, c1 varchar(20), c2 varchar(20)) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t2';
+insert into federated.t1 values (1,5,10),(3,7,12),(4,5,2),(9,10,15),(2,2,2);
+insert into federated.t2 values (9,"abc","def"),(5,"opq","lmn"),(2,"test t","t test");
+select * from federated.t1 order by i1;
+select * from federated.t2;
+update federated.t1,federated.t2 set t1.i2=15, t2.c2="ppc" where t1.i1=t2.id;
+select * from federated.t1 order by i1;
+select * from federated.t2 order by id;
+delete federated.t1.*,federated.t2.* from federated.t1,federated.t2 where t1.i2=t2.id;
+select * from federated.t1 order by i1;
+select * from federated.t2 order by id;
+drop table federated.t1, federated.t2;
+connection slave;
+drop table federated.t1, federated.t2;
+
+# Test multi updates and deletes with keys
+connection slave;
+create table federated.t1 (i1 int, i2 int, i3 int, primary key (i1));
+create table federated.t2 (id int, c1 varchar(20), c2 varchar(20), primary key (id));
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (i1 int auto_increment not null, i2 int, i3 int, primary key (i1)) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t2 (id int auto_increment not null, c1 varchar(20), c2 varchar(20), primary key(id)) ENGINE=FEDERATED CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t2';
+insert into federated.t1 values (1,5,10),(3,7,12),(4,5,2),(9,10,15),(2,2,2);
+insert into federated.t2 values (9,"abc","def"),(5,"opq","lmn"),(2,"test t","t test");
+select * from federated.t1 order by i1;
+select * from federated.t2 order by id;
+update federated.t1,federated.t2 set t1.i2=15, t2.c2="ppc" where t1.i1=t2.id;
+select * from federated.t1 order by i1;
+select * from federated.t2 order by id;
+delete federated.t1.*,federated.t2.* from federated.t1,federated.t2 where t1.i2=t2.id;
+select * from federated.t1 order by i1;
+select * from federated.t2 order by id;
+drop table federated.t1, federated.t2;
+
+connection slave;
+drop table federated.t1, federated.t2;
+
+#
+# BUG #18764: Delete conditions causing inconsistencies in Federated tables
+#
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.test;
+--enable_warnings
+CREATE TABLE federated.test (
+ `id` int(11) NOT NULL,
+ `val1` varchar(255) NOT NULL,
+ `val2` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.test_local;
+DROP TABLE IF EXISTS federated.test_remote;
+--enable_warnings
+CREATE TABLE federated.test_local (
+ `id` int(11) NOT NULL,
+ `val1` varchar(255) NOT NULL,
+ `val2` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+INSERT INTO federated.test_local VALUES (1, 'foo', 'bar'),
+(2, 'bar', 'foo');
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.test_remote (
+ `id` int(11) NOT NULL,
+ `val1` varchar(255) NOT NULL,
+ `val2` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=FEDERATED DEFAULT CHARSET=latin1
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/test';
+
+insert into federated.test_remote select * from federated.test_local;
+
+select * from federated.test_remote;
+
+delete from federated.test_remote where id in (1,2);
+
+insert into federated.test_remote select * from federated.test_local;
+
+select * from federated.test_remote;
+--disable_warnings
+DROP TABLE federated.test_local;
+DROP TABLE federated.test_remote;
+--enable_warnings
+connection slave;
+--disable_warnings
+DROP TABLE federated.test;
+--enable_warnings
+
+#
+# Additional test for bug#18437 "Wrong values inserted with a before
+# update trigger on NDB table". SQL-layer didn't properly inform
+# handler about fields which were read and set in triggers. In some
+# cases this resulted in incorrect (garbage) values of OLD variables
+# and lost changes to NEW variables.
+# Since for federated engine only operation which is affected by wrong
+# fields mark-up is handler::write_row() this file constains coverage
+# for ON INSERT triggers only. Tests for other types of triggers reside
+# in ndb_trigger.test.
+#
+--disable_warnings
+drop table if exists federated.t1;
+--enable_warnings
+create table federated.t1 (a int, b int, c int);
+connection master;
+--disable_warnings
+drop table if exists federated.t1;
+drop table if exists federated.t2;
+--enable_warnings
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (a int, b int, c int) engine=federated connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+create trigger federated.t1_bi before insert on federated.t1 for each row set new.c= new.a * new.b;
+create table federated.t2 (a int, b int);
+insert into federated.t2 values (13, 17), (19, 23);
+# Each of three statements should correctly set values for all three fields
+# insert
+insert into federated.t1 (a, b) values (1, 2), (3, 5), (7, 11);
+select * from federated.t1;
+delete from federated.t1;
+# insert ... select
+insert into federated.t1 (a, b) select * from federated.t2;
+select * from federated.t1;
+delete from federated.t1;
+# load
+load data infile '../std_data_ln/loaddata5.dat' into table federated.t1 fields terminated by '' enclosed by '' ignore 1 lines (a, b);
+select * from federated.t1;
+drop tables federated.t1, federated.t2;
+
+connection slave;
+drop table federated.t1;
+#
+# Bug #16494: Updates that set a column to NULL fail sometimes
+#
+connection slave;
+create table t1 (id int not null auto_increment primary key, val int);
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table t1
+ (id int not null auto_increment primary key, val int) engine=federated
+ connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1';
+insert into t1 values (1,0),(2,0);
+update t1 set val = NULL where id = 1;
+select * from t1;
+connection slave;
+select * from t1;
+drop table t1;
+connection master;
+drop table t1;
+
+#
+# Bug #17608: String literals lost during INSERT query on FEDERATED table
+#
+connection slave;
+create table t1 (a longblob not null);
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table t1
+ (a longblob not null) engine=federated
+ connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1';
+insert into t1 values (repeat('a',5000));
+select length(a) from t1;
+connection slave;
+select length(a) from t1;
+drop table t1;
+connection master;
+drop table t1;
+
+#
+# BUG #15133: unique index with nullable value not accepted in federated table
+#
+
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.test;
+CREATE TABLE federated.test (
+ `i` int(11) NOT NULL,
+ `j` int(11) NOT NULL,
+ `c` varchar(30) default NULL,
+ PRIMARY KEY (`i`,`j`),
+ UNIQUE KEY `i` (`i`,`c`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+--enable_warnings
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.test1;
+DROP TABLE IF EXISTS federated.test2;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.test1 (
+ i int not null,
+ j int not null,
+ c varchar(30),
+ primary key (i,j),
+ unique key (i, c))
+engine = federated
+connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/test';
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.test2 (
+ i int default null,
+ j int not null,
+ c varchar(30),
+ key (i))
+engine = federated
+connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/test';
+drop table federated.test1, federated.test2;
+
+connection slave;
+drop table federated.test;
+
+#
+# BUG# 17044 Federated Storage Engine not UTF8 clean
+#
+connection slave;
+set names utf8;
+create table federated.t1 (a varchar(64)) DEFAULT CHARSET=utf8;
+
+insert into federated.t1 values (0x6DC3A56E6164);
+select hex(a) from federated.t1;
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (a varchar(64))
+ENGINE=FEDERATED
+connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
+DEFAULT CHARSET=utf8;
+set names utf8;
+select hex(a) from federated.t1;
+insert into federated.t1 values (0xC3A4C3B6C3BCC39F);
+insert into federated.t1 values (0xD18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E);
+select hex(a) from federated.t1;
+
+connection slave;
+select hex(a) from federated.t1;
+
+connection master;
+drop table federated.t1;
+
+connection slave;
+drop table federated.t1;
+
+#
+# Bug#26909: Specified key was too long; max key length is 255 bytes
+# when creating a table
+#
+connection slave;
+CREATE TABLE federated.t1 (
+ categoryId int(11) NOT NULL AUTO_INCREMENT,
+ domainId varchar(745) NOT NULL DEFAULT '',
+ categoryName varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (categoryId),
+ UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+ KEY idx_category_domainId (domainId)
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ categoryId int(11) NOT NULL AUTO_INCREMENT,
+ domainId varchar(745) NOT NULL DEFAULT '',
+ categoryName varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (categoryId),
+ UNIQUE KEY idx_unique_category_categoryName (domainId, categoryName),
+ KEY idx_category_domainId (domainId)
+ ) ENGINE=FEDERATED DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+
+insert into federated.t1 (domainId, categoryName) values ( '1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231 300', '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 250');
+insert into federated.t1 (domainId, categoryName) values ( '12312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312 301', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 250');
+insert into federated.t1 (domainId, categoryName) values ('a', 'b');
+
+select categoryId from federated.t1 order by domainId, categoryName;
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+select categoryId from federated.t1 where domainId='a' and categoryName='b' order by categoryId;
+select categoryId from federated.t1 where domainId<>'a' and categoryName<>'b' order by categoryId;
+
+drop table federated.t1;
+
+connection slave;
+drop table federated.t1;
+
+#
+# BUG#21019 Federated Engine does not support REPLACE/INSERT IGNORE/UPDATE IGNORE
+#
+connection slave;
+create table federated.t1 (a int primary key, b varchar(64))
+ DEFAULT CHARSET=utf8;
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (a int primary key, b varchar(64))
+ ENGINE=FEDERATED
+ connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
+ DEFAULT CHARSET=utf8;
+
+insert ignore into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+select * from federated.t1;
+
+truncate federated.t1;
+replace into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+select * from federated.t1;
+
+update ignore federated.t1 set a=a+1;
+select * from federated.t1;
+
+drop table federated.t1;
+connection slave;
+drop table federated.t1;
+
+#
+# BUG#25511 Federated Insert failures.
+#
+# When the user performs a INSERT...ON DUPLICATE KEY UPDATE, we want
+# it to fail if a duplicate key exists instead of ignoring it.
+#
+connection slave;
+create table federated.t1 (a int primary key, b varchar(64))
+ DEFAULT CHARSET=utf8;
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (a int primary key, b varchar(64))
+ ENGINE=FEDERATED
+ connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
+ DEFAULT CHARSET=utf8;
+
+--error ER_DUP_KEY
+insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe")
+on duplicate key update a=a+100;
+select * from federated.t1;
+
+drop table federated.t1;
+connection slave;
+drop table federated.t1;
+
+--echo
+--echo Bug#18287 create federated table always times out, error 1159 ' '
+--echo
+--echo Test that self-references work
+--echo
+connection slave;
+create table federated.t1 (a int primary key);
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t2 (a int primary key)
+ ENGINE=FEDERATED
+ connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+insert into federated.t1 (a) values (1);
+select * from federated.t2;
+drop table federated.t1, federated.t2;
+
+source include/federated_cleanup.inc;
diff --git a/mysql-test/t/federated_archive.test b/mysql-test/t/federated_archive.test
new file mode 100644
index 00000000000..6d80664fef7
--- /dev/null
+++ b/mysql-test/t/federated_archive.test
@@ -0,0 +1,58 @@
+source include/have_archive.inc;
+source include/federated.inc;
+
+
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.archive_table;
+--enable_warnings
+
+CREATE TABLE federated.archive_table (
+ `id` int(4) NOT NULL,
+ `name` varchar(54) default NULL
+ ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
+
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int(4) NOT NULL,
+ `name` varchar(54) default NULL,
+ PRIMARY KEY (`id`)
+ )
+ ENGINE="FEDERATED" DEFAULT CHARSET=latin1
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/archive_table';
+
+INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
+INSERT INTO federated.t1 (id, name) VALUES (2, 'bar');
+
+SELECT * FROM federated.t1;
+
+--error 1296
+DELETE FROM federated.t1 WHERE id = 1;
+
+SELECT * FROM federated.t1;
+
+
+--error 1296
+UPDATE federated.t1 SET name='baz' WHERE id = 1;
+
+SELECT * FROM federated.t1;
+
+
+# --error 1296
+# TRUNCATE federated.t1;
+#
+# SELECT * from federated.t1;
+
+DROP TABLE federated.t1;
+connection slave;
+DROP TABLE federated.archive_table;
+
+
+source include/federated_cleanup.inc;
+
diff --git a/mysql-test/t/federated_bug_13118.test b/mysql-test/t/federated_bug_13118.test
new file mode 100644
index 00000000000..deec79becd2
--- /dev/null
+++ b/mysql-test/t/federated_bug_13118.test
@@ -0,0 +1,42 @@
+source include/federated.inc;
+
+
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.bug_13118_table;
+--enable_warnings
+
+CREATE TABLE federated.bug_13118_table (
+ `foo` integer,
+ `bar` integer
+ );
+
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `foo` integer,
+ `bar` integer
+ ) ENGINE="FEDERATED"
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/bug_13118_table';
+
+SELECT * from federated.t1;
+
+INSERT INTO federated.t1 VALUES (1,1);
+SELECT * FROM federated.t1;
+
+INSERT INTO federated.t1 VALUES (1,1);
+SELECT * FROM federated.t1;
+
+
+DROP TABLE federated.t1;
+connection slave;
+DROP TABLE federated.bug_13118_table;
+
+
+source include/federated_cleanup.inc;
+
diff --git a/mysql-test/t/federated_bug_25714.test b/mysql-test/t/federated_bug_25714.test
new file mode 100644
index 00000000000..9c185181511
--- /dev/null
+++ b/mysql-test/t/federated_bug_25714.test
@@ -0,0 +1,47 @@
+--source include/have_bug25714.inc
+source include/federated.inc;
+
+
+connection slave;
+--disable_warnings
+DROP TABLE IF EXISTS federated.bug_13118_table;
+--enable_warnings
+
+CREATE TABLE federated.t1 (
+ `id` int auto_increment primary key,
+ `value` int
+ ) ENGINE=MyISAM;
+INSERT INTO federated.t1 SET value=1;
+INSERT INTO federated.t1 SET value=2;
+INSERT INTO federated.t1 SET value=2;
+
+connection master;
+--disable_warnings
+DROP TABLE IF EXISTS federated.t1;
+--enable_warnings
+
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE federated.t1 (
+ `id` int auto_increment primary key,
+ `value` int
+ ) ENGINE=FEDERATED
+ CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+SELECT * from federated.t1;
+
+INSERT INTO federated.t1 SET value=4;
+
+SELECT LAST_INSERT_ID();
+
+--exec $MYSQL_BUG25714 $SLAVE_MYPORT
+--exec $MYSQL_BUG25714 $MASTER_MYPORT
+
+SELECT * from federated.t1;
+
+DROP TABLE federated.t1;
+connection slave;
+DROP TABLE federated.t1;
+
+
+source include/federated_cleanup.inc;
+
diff --git a/mysql-test/t/federated_innodb-slave.opt b/mysql-test/t/federated_innodb-slave.opt
new file mode 100644
index 00000000000..627becdbfb5
--- /dev/null
+++ b/mysql-test/t/federated_innodb-slave.opt
@@ -0,0 +1 @@
+--innodb
diff --git a/mysql-test/t/federated_innodb.test b/mysql-test/t/federated_innodb.test
new file mode 100644
index 00000000000..772e37a2929
--- /dev/null
+++ b/mysql-test/t/federated_innodb.test
@@ -0,0 +1,34 @@
+source include/federated.inc;
+source include/have_innodb.inc;
+
+#
+# Bug#25513 Federated transaction failures
+#
+connection slave;
+create table federated.t1 (a int primary key, b varchar(64))
+ engine=myisam;
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval create table federated.t1 (a int primary key, b varchar(64))
+ engine=federated
+ connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
+
+--error ER_DUP_KEY
+insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+select * from federated.t1;
+
+connection slave;
+truncate federated.t1;
+alter table federated.t1 engine=innodb;
+connection master;
+
+--error ER_DUP_KEY
+insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
+select * from federated.t1;
+
+drop table federated.t1;
+connection slave;
+drop table federated.t1;
+
+
+source include/federated_cleanup.inc;
diff --git a/mysql-test/t/fix_priv_tables.test b/mysql-test/t/fix_priv_tables.test
new file mode 100644
index 00000000000..3051fd88076
--- /dev/null
+++ b/mysql-test/t/fix_priv_tables.test
@@ -0,0 +1,73 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+# Don't run this test if $MYSQL_FIX_PRIVILEGE_TABLES isn't set
+# to the location of mysql_fix_privilege_tables.sql
+if (`SELECT LENGTH("$MYSQL_FIX_PRIVILEGE_TABLES") <= 0`)
+{
+ skip Test need MYSQL_FIX_PRIVILEGE_TABLES;
+}
+
+#
+# This is the test for mysql_fix_privilege_tables
+# It checks that a system tables from mysql 4.1.23
+# can be upgraded to current system table format
+#
+# Note: If this test fails, don't be confused about the errors reported
+# by mysql-test-run This shows warnings generated by
+# mysql_fix_system_tables which should be ignored.
+# Instead, concentrate on the errors in r/system_mysql_db.reject
+
+--disable_warnings
+drop table if exists t1,t1aa,t2aa;
+--enable_warnings
+
+#
+# Bug #20589 Missing some table level privileges after upgrade
+#
+# Add some grants that should survive the "upgrade"
+
+--disable_warnings
+DROP DATABASE IF EXISTS testdb;
+--enable_warnings
+CREATE DATABASE testdb;
+CREATE TABLE testdb.t1 (
+ c1 INT,
+ c3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
+
+CREATE VIEW testdb.v1 AS
+ SELECT * FROM testdb.t1;
+
+GRANT CREATE VIEW, SHOW VIEW ON testdb.v1 TO 'show_view_tbl'@'localhost';
+SHOW GRANTS FOR 'show_view_tbl'@'localhost';
+echo;
+
+# Some extra GRANTS for more complete test
+GRANT SELECT(c1) on testdb.v1 to 'select_only_c1'@localhost;
+SHOW GRANTS FOR 'select_only_c1'@'localhost';
+echo;
+
+-- disable_result_log
+-- disable_query_log
+
+# Run the mysql_fix_privilege_tables.sql using "mysql --force"
+--exec $MYSQL --force mysql < $MYSQL_FIX_PRIVILEGE_TABLES > $MYSQLTEST_VARDIR/log/fix_priv_tables.log 2>&1
+
+-- enable_query_log
+-- enable_result_log
+
+echo "after fix privs";
+
+SHOW GRANTS FOR 'show_view_tbl'@'localhost';
+echo;
+SHOW GRANTS FOR 'select_only_c1'@'localhost';
+echo;
+
+DROP USER 'show_view_tbl'@'localhost';
+DROP USER 'select_only_c1'@'localhost';
+
+DROP VIEW testdb.v1;
+DROP TABLE testdb.t1;
+DROP DATABASE testdb;
+
+# End of 4.1 tests
diff --git a/mysql-test/t/flush.test b/mysql-test/t/flush.test
index 8fe62ecac01..3a4f2f2f5f2 100644
--- a/mysql-test/t/flush.test
+++ b/mysql-test/t/flush.test
@@ -29,7 +29,7 @@ connection con1;
select * from t1;
connection con2;
flush tables with read lock;
---error 1099
+--error 1223
drop table t2;
connection con1;
send drop table t2;
@@ -94,3 +94,43 @@ unlock tables;
drop table t1, t2, t3;
# End of 4.1 tests
+
+#
+# Test of deadlock problem when doing FLUSH TABLE with read lock
+# (Bug was in NTPL threads in Linux when using different mutex while
+# waiting for a condtion variable)
+
+create table t1 (c1 int);
+create table t2 (c1 int);
+
+connect (con1,localhost,root,,);
+connect (con3,localhost,root,,);
+
+connection con1;
+lock table t1 write;
+
+connection con2;
+send flush tables with read lock;
+--sleep 1
+
+connection con3;
+send insert into t2 values(1);
+--sleep 1
+
+connection con1;
+unlock tables;
+disconnect con1;
+
+connection con2;
+reap;
+disconnect con2;
+
+connection con3;
+# It hangs here (insert into t2 does not end).
+reap;
+disconnect con3;
+
+connection default;
+drop table t1, t2;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/flush2-master.opt b/mysql-test/t/flush2-master.opt
new file mode 100644
index 00000000000..789275fa25e
--- /dev/null
+++ b/mysql-test/t/flush2-master.opt
@@ -0,0 +1 @@
+--skip-log-bin
diff --git a/mysql-test/t/flush2.test b/mysql-test/t/flush2.test
new file mode 100644
index 00000000000..7582ab8426b
--- /dev/null
+++ b/mysql-test/t/flush2.test
@@ -0,0 +1,9 @@
+#
+# Bug#17733 Flushing logs causes daily server crash
+#
+flush logs;
+set global expire_logs_days = 3;
+show variables like 'log_bin%';
+flush logs;
+show variables like 'log_bin%';
+set global expire_logs_days = 0;
diff --git a/mysql-test/t/flush_block_commit_notembedded.test b/mysql-test/t/flush_block_commit_notembedded.test
new file mode 100644
index 00000000000..4a0300acf78
--- /dev/null
+++ b/mysql-test/t/flush_block_commit_notembedded.test
@@ -0,0 +1,34 @@
+# Let's see if FLUSH TABLES WITH READ LOCK blocks COMMIT of existing
+# transactions.
+# We verify that we did not introduce a deadlock.
+# This is intended to mimick how mysqldump and innobackup work.
+
+-- source include/have_log_bin.inc
+
+# And it requires InnoDB
+-- source include/have_log_bin.inc
+-- source include/have_innodb.inc
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+# FLUSH TABLES WITH READ LOCK should block writes to binlog too
+connection con1;
+create table t1 (a int) engine=innodb;
+reset master;
+set autocommit=0;
+insert t1 values (1);
+connection con2;
+flush tables with read lock;
+show master status;
+connection con1;
+send commit;
+connection con2;
+sleep 1;
+show master status;
+unlock tables;
+connection con1;
+reap;
+drop table t1;
+set autocommit=1;
+
diff --git a/mysql-test/t/flush_read_lock_kill-master.opt b/mysql-test/t/flush_read_lock_kill-master.opt
new file mode 100644
index 00000000000..2b2b5eb5ebf
--- /dev/null
+++ b/mysql-test/t/flush_read_lock_kill-master.opt
@@ -0,0 +1 @@
+--loose-debug=d,make_global_read_lock_block_commit_loop
diff --git a/mysql-test/t/flush_read_lock_kill.test b/mysql-test/t/flush_read_lock_kill.test
new file mode 100644
index 00000000000..19a47b2893a
--- /dev/null
+++ b/mysql-test/t/flush_read_lock_kill.test
@@ -0,0 +1,49 @@
+# Let's see if FLUSH TABLES WITH READ LOCK can be killed when waiting
+# for running commits to finish (in the past it could not)
+# This will not be a meaningful test on non-debug servers so will be
+# skipped.
+# If running mysql-test-run --debug, the --debug added by
+# mysql-test-run to the mysqld command line will override the one of
+# -master.opt. But this test is designed to still pass then (though it
+# won't test anything interesting).
+
+# This also won't work with the embedded server test
+-- source include/not_embedded.inc
+
+-- source include/have_debug.inc
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+connection con1;
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (kill_id int);
+insert into t1 values(connection_id());
+
+# Thanks to the parameter we passed to --debug, this FLUSH will
+# block on a debug build running with our --debug=make_global... It
+# will block until killed. In other cases (non-debug build or other
+# --debug) it will succeed immediately
+
+connection con1;
+send flush tables with read lock;
+
+# kill con1
+connection con2;
+select ((@id := kill_id) - kill_id) from t1;
+
+--sleep 2 # leave time for FLUSH to block
+kill connection @id;
+
+connection con1;
+# On debug builds it will be error 1053 (killed); on non-debug, or
+# debug build running without our --debug=make_global..., will be
+# error 0 (no error). The only important thing to test is that on
+# debug builds with our --debug=make_global... we don't hang forever.
+--error 0,1053,2013
+reap;
+
+connection con2;
+drop table t1;
diff --git a/mysql-test/t/flush_table.test b/mysql-test/t/flush_table.test
index 0330582bc34..e46b67ad3d0 100644
--- a/mysql-test/t/flush_table.test
+++ b/mysql-test/t/flush_table.test
@@ -73,4 +73,11 @@ handler t1 read next limit 1;
handler t1 close;
drop table t1;
+#
+# Bug #11934 Two sequential FLUSH TABLES WITH READ LOCK hangs client
+#
+FLUSH TABLES WITH READ LOCK ;
+FLUSH TABLES WITH READ LOCK ;
+UNLOCK TABLES;
+
# End of 4.1 tests
diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test
index 661e93d8d87..e5f1db14b7f 100644
--- a/mysql-test/t/fulltext.test
+++ b/mysql-test/t/fulltext.test
@@ -59,6 +59,7 @@ select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+select * from t1 where MATCH a,b AGAINST ('"now support"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE);
@@ -68,7 +69,6 @@ select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('+collections -supp* -foobar*' IN BOOLEAN MODE);
-select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
# bug#2708, bug#3870 crash
@@ -128,14 +128,14 @@ WHERE ticket2.id = ttxt.ticket AND t1.id = ticket2.ticket and
match(ttxt.inhalt) against ('foobar');
# In the following query MySQL didn't use the fulltext index
-select t1.id FROM t2 as ttxt,t1 INNER JOIN t1 as ticket2 ON
-ticket2.id = ttxt.ticket
-WHERE t1.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
+select ticket2.id FROM t2 as ttxt,t2 INNER JOIN t1 as ticket2 ON
+ticket2.id = t2.ticket
+WHERE ticket2.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
INSERT INTO t1 VALUES (3,3);
-select t1.id FROM t2 as ttxt,t1
-INNER JOIN t1 as ticket2 ON ticket2.id = ttxt.ticket
-WHERE t1.id = ticket2.ticket and
+select ticket2.id FROM t2 as ttxt,t2
+INNER JOIN t1 as ticket2 ON ticket2.id = t2.ticket
+WHERE ticket2.id = ticket2.ticket and
match(ttxt.inhalt) against ('foobar');
# Check that we get 'fulltext' index in SHOW CREATE
@@ -358,12 +358,20 @@ SELECT a FROM t1 WHERE MATCH a AGAINST('testword\'\'' IN BOOLEAN MODE);
DROP TABLE t1;
#
+# BUG#13835: max key length is 1000 bytes when trying to create
+# a fulltext index
+#
+CREATE TABLE t1 (a VARCHAR(10000), FULLTEXT(a));
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+
+#
# BUG#14496: Crash or strange results with prepared statement,
# MATCH and FULLTEXT
#
CREATE TABLE t1 (a TEXT, FULLTEXT KEY(a));
INSERT INTO t1 VALUES('test'),('test1'),('test');
-PREPARE stmt from "SELECT a, MATCH(a) AGAINST('test1 test') FROM t1 WHERE MATCH(a) AGAINST('test1 test')";
+PREPARE stmt from "SELECT a, FORMAT(MATCH(a) AGAINST('test1 test'),6) FROM t1 WHERE MATCH(a) AGAINST('test1 test')";
EXECUTE stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
diff --git a/mysql-test/t/fulltext3.test b/mysql-test/t/fulltext3.test
new file mode 100644
index 00000000000..a57fd48daaa
--- /dev/null
+++ b/mysql-test/t/fulltext3.test
@@ -0,0 +1,24 @@
+--source include/have_gbk.inc
+#
+# test of new fulltext search features
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+
+#
+# BUG#29299 - repeatable myisam fulltext index corruption
+#
+CREATE TABLE t1(a VARCHAR(255) CHARACTER SET gbk, FULLTEXT(a));
+SET NAMES utf8;
+INSERT INTO t1 VALUES(0xF043616161),(0xBEF361616197C22061616161);
+SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST(0x97C22061616161 IN BOOLEAN MODE);
+DELETE FROM t1 LIMIT 1;
+CHECK TABLE t1;
+SET NAMES latin1;
+DROP TABLE t1;
+
+# End of 5.0 tests
+
diff --git a/mysql-test/t/fulltext_left_join.test b/mysql-test/t/fulltext_left_join.test
index 516c006b109..8c13ae5cad9 100644
--- a/mysql-test/t/fulltext_left_join.test
+++ b/mysql-test/t/fulltext_left_join.test
@@ -32,7 +32,7 @@ select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
drop table t1, t2;
#
-# Bug #484, reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>
+# BUG#484, reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>
#
create table t1 (venue_id int(11) default null, venue_text varchar(255) default null, dt datetime default null) engine=myisam;
@@ -87,3 +87,14 @@ SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance
DROP TABLE t1,t2;
# End of 4.1 tests
+
+#
+# BUG#25729 - boolean full text search is confused by NULLs produced by LEFT
+# JOIN
+#
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (b INT, c TEXT, KEY(b));
+INSERT INTO t1 VALUES(1);
+INSERT INTO t2(b,c) VALUES(2,'castle'),(3,'castle');
+SELECT * FROM t1 LEFT JOIN t2 ON a=b WHERE MATCH(c) AGAINST('+castle' IN BOOLEAN MODE);
+DROP TABLE t1, t2;
diff --git a/mysql-test/t/fulltext_order_by.test b/mysql-test/t/fulltext_order_by.test
index da05fd494c4..074aefbf943 100644
--- a/mysql-test/t/fulltext_order_by.test
+++ b/mysql-test/t/fulltext_order_by.test
@@ -1,5 +1,5 @@
--disable_warnings
-DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1,t2,t3;
--enable_warnings
CREATE TABLE t1 (
@@ -80,7 +80,7 @@ CREATE TABLE t3 (
FULLTEXT KEY betreff (betreff)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=996 ;
---error 1109
+--error 1054
select a.text, b.id, b.betreff
from
t2 a inner join t3 b on a.id = b.forum inner join
@@ -100,7 +100,7 @@ group by
order by
match(b.betreff) against ('+abc' in boolean mode) desc;
---error 1109
+--error 1054
select a.text, b.id, b.betreff
from
t2 a inner join t3 b on a.id = b.forum inner join
diff --git a/mysql-test/t/fulltext_var.test b/mysql-test/t/fulltext_var.test
index 6b0b8aa463b..a048dab7f40 100644
--- a/mysql-test/t/fulltext_var.test
+++ b/mysql-test/t/fulltext_var.test
@@ -5,6 +5,9 @@
drop table if exists t1;
--enable_warnings
+# Save ft_boolean_syntax variable
+let $saved_ft_boolean_syntax=`select @@global.ft_boolean_syntax`;
+
show variables like "ft\_%";
create table t1 (b text not null);
@@ -25,4 +28,9 @@ set global ft_boolean_syntax='@ -><()~*:""@|';
set global ft_boolean_syntax='+ -><()~*:""@!|';
drop table t1;
+# Restore ft_boolean_syntax variable
+--disable_query_log
+eval set global ft_boolean_syntax='$saved_ft_boolean_syntax';
+--enable_query_log
+
# End of 4.1 tests
diff --git a/mysql-test/t/func_compress.test b/mysql-test/t/func_compress.test
index 223a5540f38..68f07f258bf 100644
--- a/mysql-test/t/func_compress.test
+++ b/mysql-test/t/func_compress.test
@@ -2,6 +2,8 @@
#
# Test for compress and uncompress functions:
#
+# Note that this test gives error in the gzip library when running under
+# valgrind, but these warnings can be ignored
select @test_compress_string:='string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ';
select length(@test_compress_string);
@@ -67,3 +69,17 @@ select compress(a) is null from t1;
drop table t1;
--echo End of 4.1 tests
+
+#
+# Bug #18539: uncompress(d) is null: impossible?
+#
+create table t1 (a varchar(32) not null);
+insert into t1 values ('foo');
+explain select * from t1 where uncompress(a) is null;
+select * from t1 where uncompress(a) is null;
+explain select *, uncompress(a) from t1;
+select *, uncompress(a) from t1;
+select *, uncompress(a), uncompress(a) is null from t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_concat.test b/mysql-test/t/func_concat.test
index f546a25f647..5487ad9c56b 100644
--- a/mysql-test/t/func_concat.test
+++ b/mysql-test/t/func_concat.test
@@ -46,10 +46,12 @@ select 'a' union select concat('a', -'3');
select 'a' union select concat('a', -concat('3',4));
select 'a' union select concat('a', -0);
-
---replace_result 'a-0.0' good 'a0.0' good
+--replace_result a-0.0 a0.0
select 'a' union select concat('a', -0.0);
+--replace_result a-0.0000 a0.0000
+select 'a' union select concat('a', -0.0000);
+
#
# Bug#16716: subselect in concat() may lead to a wrong result
#
@@ -58,3 +60,11 @@ select concat((select x from (select 'a' as x) as t1 ),
as t3;
# End of 4.1 tests
+
+#
+# Bug#15962: CONCAT() in UNION may lead to a data trucation.
+#
+create table t1(f1 varchar(6)) charset=utf8;
+insert into t1 values ("123456");
+select concat(f1, 2) a from t1 union select 'x' a from t1;
+drop table t1;
diff --git a/mysql-test/t/func_date_add.test b/mysql-test/t/func_date_add.test
index 5213395c35d..fc5a5cb2823 100644
--- a/mysql-test/t/func_date_add.test
+++ b/mysql-test/t/func_date_add.test
@@ -11,7 +11,7 @@ CREATE TABLE t1 (
group_id int(10) unsigned DEFAULT '0' NOT NULL,
hits int(10) unsigned DEFAULT '0' NOT NULL,
sessions int(10) unsigned DEFAULT '0' NOT NULL,
- ts timestamp(14),
+ ts timestamp,
PRIMARY KEY (visitor_id,group_id)
)/*! engine=MyISAM */;
INSERT INTO t1 VALUES (465931136,7,2,2,20000318160952);
@@ -41,4 +41,50 @@ select visitor_id,max(ts) as mts from t1 group by visitor_id
having DATE_ADD(mts,INTERVAL 3 MONTH) < NOW();
drop table t1;
-# End of 4.1 tests
+#
+# Bug #10627: Invalid date turned to NULL from date_sub/date_add in
+# traditional mode
+#
+set sql_mode='traditional';
+create table t1 (d date);
+--error S22008
+insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
+--error S22008
+insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
+# No warnings/errors from the next two
+insert into t1 values (date_add(NULL, INTERVAL 1 DAY));
+insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY));
+set sql_mode='';
+# These will all work now, and we'll end up with some NULL entries in the
+# table and some warnings.
+insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
+insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
+insert into t1 values (date_add(NULL, INTERVAL 1 DAY));
+insert into t1 values (date_add('2000-01-04', INTERVAL NULL DAY));
+select * from t1;
+drop table t1;
+
+--echo End of 4.1 tests
+
+#
+# Bug#21811
+#
+# Make sure we end up with an appropriate
+# date format (DATE) after addition operation
+#
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 DAY;
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 MONTH;
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 YEAR;
+SELECT CAST('2006-09-26' AS DATE) + INTERVAL 1 WEEK;
+
+#
+# Bug#28450: The Item_date_add_interval in select list may fail the field
+# type assertion.
+#
+create table t1 (a int, b varchar(10));
+insert into t1 values (1, '2001-01-01'),(2, '2002-02-02');
+select '2007-01-01' + interval a day from t1;
+select b + interval a day from t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_default.test b/mysql-test/t/func_default.test
index 836511cc07a..7bebd4b4b72 100644
--- a/mysql-test/t/func_default.test
+++ b/mysql-test/t/func_default.test
@@ -19,3 +19,13 @@ explain select * from t1 where str <> default(str);
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #11314 (HAVING DEFAULT() hangs)
+#
+CREATE TABLE t1 (id int(11), s varchar(20));
+INSERT INTO t1 VALUES (1, 'one'), (2, 'two'), (3, 'three');
+--error 1364
+SELECT s, 32 AS mi FROM t1 GROUP BY s HAVING DEFAULT(mi) IS NULL;
+DROP TABLE t1;
+
diff --git a/mysql-test/t/func_des_encrypt.test b/mysql-test/t/func_des_encrypt.test
index 5d102bd02eb..b757a632adf 100644
--- a/mysql-test/t/func_des_encrypt.test
+++ b/mysql-test/t/func_des_encrypt.test
@@ -1,4 +1,4 @@
--- source include/have_openssl.inc
+-- source include/have_ssl.inc
# This test can't be in func_encrypt.test, because it requires
# --des-key-file to not be set.
diff --git a/mysql-test/t/func_encrypt.test b/mysql-test/t/func_encrypt.test
index a7364fa43da..bcf1e5a77f4 100644
--- a/mysql-test/t/func_encrypt.test
+++ b/mysql-test/t/func_encrypt.test
@@ -1,4 +1,4 @@
--- source include/have_openssl.inc
+-- source include/have_ssl.inc
--disable_warnings
drop table if exists t1;
diff --git a/mysql-test/t/func_equal.test b/mysql-test/t/func_equal.test
index 18d34e3ba16..1c219af0254 100644
--- a/mysql-test/t/func_equal.test
+++ b/mysql-test/t/func_equal.test
@@ -11,10 +11,12 @@ drop table if exists t1,t2;
# First some simple tests
#
-select 0<=>0,0.0<=>0.0,"A"<=>"A",NULL<=>NULL;
+select 0<=>0,0.0<=>0.0,0E0=0E0,"A"<=>"A",NULL<=>NULL;
select 1<=>0,0<=>NULL,NULL<=>0;
select 1.0<=>0.0,0.0<=>NULL,NULL<=>0.0;
select "A"<=>"B","A"<=>NULL,NULL<=>"A";
+select 0<=>0.0, 0.0<=>0E0, 0E0<=>"0", 10.0<=>1E1, 10<=>10.0, 10<=>1E1;
+select 1.0<=>0E1,10<=>NULL,NULL<=>0.0, NULL<=>0E0;
#
# Test with tables
@@ -32,4 +34,13 @@ select * from t1 where value <=> value;
select * from t1 where id <=> value or value<=>id;
drop table t1,t2;
+#
+# Bug #12612: quoted bigint unsigned value and the use of "in" in where clause
+#
+create table t1 (a bigint unsigned);
+insert into t1 values (4828532208463511553);
+select * from t1 where a = '4828532208463511553';
+select * from t1 where a in ('4828532208463511553');
+drop table t1;
+
# End of 4.1 tests
diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test
index fb21822caa0..c415ca6c6eb 100644
--- a/mysql-test/t/func_gconcat.test
+++ b/mysql-test/t/func_gconcat.test
@@ -29,8 +29,10 @@ select grp,group_concat(c order by c) from t1 group by grp;
select grp,group_concat(c order by c desc) from t1 group by grp;
select grp,group_concat(d order by a) from t1 group by grp;
select grp,group_concat(d order by a desc) from t1 group by grp;
+--disable_warnings
select grp,group_concat(a order by a,d+c-ascii(c)-a) from t1 group by grp;
select grp,group_concat(a order by d+c-ascii(c),a) from t1 group by grp;
+--enable_warnings
select grp,group_concat(c order by 1) from t1 group by grp;
select grp,group_concat(distinct c order by c) from t1 group by grp;
select grp,group_concat(distinct c order by c desc) from t1 group by grp;
@@ -68,7 +70,7 @@ set group_concat_max_len = 1024;
# Test errors
--error 1111
-select group_concat(sum(a)) from t1 group by grp;
+select group_concat(sum(c)) from t1 group by grp;
--error 1054
select grp,group_concat(c order by 2) from t1 group by grp;
@@ -320,6 +322,13 @@ select a, group_concat(distinct b order by b) from t1 group by a with rollup;
drop table t1;
#
+# Bug #6475
+#
+create table t1 (a char(3), b char(20), primary key (a, b));
+insert into t1 values ('ABW', 'Dutch'), ('ABW', 'English');
+select group_concat(a) from t1 group by b;
+drop table t1;
+#
# Bug #12095: GROUP_CONCAT for one row table
#
@@ -391,6 +400,70 @@ select count(distinct (f1+1)) from t1 group by f1 with rollup;
drop table t1;
#
+# Bug#14169 type of group_concat() result changed to blob if tmp_table was used
+#
+create table t1 (f1 int unsigned, f2 varchar(255));
+insert into t1 values (1,repeat('a',255)),(2,repeat('b',255));
+--enable_metadata
+select f2,group_concat(f1) from t1 group by f2;
+--disable_metadata
+drop table t1;
+
+# End of 4.1 tests
+
+#
+# Bug#8568 "GROUP_CONCAT returns string, unless in a UNION in which case
+# returns BLOB": add a test case, the bug can not be repeated any more.
+#
+
+set names latin1;
+create table t1 (a char, b char);
+insert into t1 values ('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b');
+create table t2 select group_concat(b) as a from t1 where a = 'a';
+create table t3 (select group_concat(a) as a from t1 where a = 'a') union
+ (select group_concat(b) as a from t1 where a = 'b');
+select charset(a) from t2;
+select charset(a) from t3;
+drop table t1, t2, t3;
+set names default;
+
+#
+# Bug#18281 group_concat changes charset to binary
+#
+create table t1 (c1 varchar(10), c2 int);
+select charset(group_concat(c1 order by c2)) from t1;
+drop table t1;
+
+#
+# Bug #16712: group_concat returns odd string instead of intended result
+#
+CREATE TABLE t1 (a INT(10), b LONGTEXT, PRIMARY KEY (a));
+
+SET GROUP_CONCAT_MAX_LEN = 20000000;
+
+INSERT INTO t1 VALUES (1,REPEAT(CONCAT('A',CAST(CHAR(0) AS BINARY),'B'), 40000));
+INSERT INTO t1 SELECT a + 1, b FROM t1;
+
+SELECT a, CHAR_LENGTH(b) FROM t1;
+SELECT CHAR_LENGTH( GROUP_CONCAT(b) ) FROM t1;
+SET GROUP_CONCAT_MAX_LEN = 1024;
+DROP TABLE t1;
+
+#
+# Bug #22015: crash with GROUP_CONCAT over a derived table that
+# returns the results of aggregation by GROUP_CONCAT
+#
+
+CREATE TABLE t1 (a int, b int);
+
+INSERT INTO t1 VALUES (2,1), (1,2), (2,2), (1,3);
+
+SELECT GROUP_CONCAT(a), x
+ FROM (SELECT a, GROUP_CONCAT(b) x FROM t1 GROUP BY a) AS s
+ GROUP BY x;
+
+DROP TABLE t1;
+#
# Bug#23451 GROUP_CONCAT truncates a multibyte utf8 character
#
set names utf8;
@@ -424,4 +497,97 @@ select f2,group_concat(f1) from t1 group by f2;
--disable_metadata
drop table t1;
-# End of 4.1 tests
+#
+# Bug #26815: Unexpected built-in function behavior: group_concat(distinct
+# substring_index())
+#
+CREATE TABLE t1(a TEXT, b CHAR(20));
+INSERT INTO t1 VALUES ("one.1","one.1"),("two.2","two.2"),("one.3","one.3");
+SELECT GROUP_CONCAT(DISTINCT UCASE(a)) FROM t1;
+SELECT GROUP_CONCAT(DISTINCT UCASE(b)) FROM t1;
+DROP TABLE t1;
+
+#
+# Bug #28273: GROUP_CONCAT and ORDER BY: No warning when result gets truncated.
+#
+CREATE TABLE t1( a VARCHAR( 10 ), b INT );
+INSERT INTO t1 VALUES ( repeat( 'a', 10 ), 1),
+ ( repeat( 'b', 10 ), 2);
+SET group_concat_max_len = 20;
+SELECT GROUP_CONCAT( a ) FROM t1;
+SELECT GROUP_CONCAT( DISTINCT a ) FROM t1;
+SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
+SELECT GROUP_CONCAT( DISTINCT a ORDER BY b ) FROM t1;
+SET group_concat_max_len = DEFAULT;
+DROP TABLE t1;
+# Bug #23856:GROUP_CONCAT and ORDER BY: junk from previous rows for query on I_S
+#
+SET group_concat_max_len= 65535;
+CREATE TABLE t1( a TEXT, b INTEGER );
+INSERT INTO t1 VALUES ( 'a', 0 ), ( 'b', 1 );
+SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
+SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
+SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
+SET group_concat_max_len= 10;
+SELECT GROUP_CONCAT(a ORDER BY b) FROM t1;
+SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
+SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
+
+SET group_concat_max_len= 65535;
+CREATE TABLE t2( a TEXT );
+INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
+INSERT INTO t2 VALUES( REPEAT( 'b', 5000 ) );
+INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
+SELECT LENGTH( GROUP_CONCAT( DISTINCT a ) ) FROM t2;
+
+CREATE TABLE t3( a TEXT, b INT );
+INSERT INTO t3 VALUES( REPEAT( 'a', 65534 ), 1 );
+INSERT INTO t3 VALUES( REPEAT( 'a', 65535 ), 2 );
+INSERT INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 );
+SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 1;
+SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 2;
+SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 3;
+
+SET group_concat_max_len= DEFAULT;
+DROP TABLE t1, t2, t3;
+
+#
+# Bug#29850: Wrong charset of the GROUP_CONCAT result when the select employs
+# a temporary table.
+#
+set names latin1;
+create table t1 (id int, name varchar(20)) DEFAULT CHARSET=utf8;
+insert into t1 (id, name) values (1, "óra");
+insert into t1 (id, name) values (2, "óra");
+select b.id, group_concat(b.name) from t1 a, t1 b group by b.id;
+drop table t1;
+
+#
+# Bug #31154: group_concat() and bit fields;
+#
+create table t1(a bit not null);
+insert into t1 values (), (), ();
+select group_concat(distinct a) from t1;
+select group_concat(distinct a order by a) from t1;
+drop table t1;
+
+create table t1(a bit(2) not null);
+insert into t1 values (1), (0), (0), (3), (1);
+select group_concat(distinct a) from t1;
+select group_concat(distinct a order by a) from t1;
+select group_concat(distinct a order by a desc) from t1;
+drop table t1;
+
+create table t1(a bit(2), b varchar(10), c bit);
+insert into t1 values (1, 'a', 0), (0, 'b', 1), (0, 'c', 0), (3, 'd', 1),
+(1, 'e', 1), (3, 'f', 1), (0, 'g', 1);
+select group_concat(distinct a, c) from t1;
+select group_concat(distinct a, c order by a) from t1;
+select group_concat(distinct a, c) from t1;
+select group_concat(distinct a, c order by a, c) from t1;
+select group_concat(distinct a, c order by a desc, c desc) from t1;
+
+drop table t1;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_group.test b/mysql-test/t/func_group.test
index 18cb5d0a430..8c020eb3dc8 100644
--- a/mysql-test/t/func_group.test
+++ b/mysql-test/t/func_group.test
@@ -2,12 +2,13 @@
# simple test of all group functions
#
---source include/have_innodb.inc
-
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
+set @sav_dpi= @@div_precision_increment;
+set div_precision_increment= 5;
+show variables like 'div_precision_increment';
create table t1 (grp int, a bigint unsigned, c char(10) not null);
insert into t1 values (1,1,"a");
insert into t1 values (2,2,"b");
@@ -28,15 +29,15 @@ select count(distinct a),count(distinct grp) from t1;
select sum(all a),count(all a),avg(all a),std(all a),variance(all a),bit_or(all a),bit_and(all a),min(all a),max(all a),min(all c),max(all c) from t1;
select grp, sum(a),count(a),avg(a),std(a),variance(a),bit_or(a),bit_and(a),min(a),max(a),min(c),max(c) from t1 group by grp;
+--disable_warnings
select grp, sum(a)+count(a)+avg(a)+std(a)+variance(a)+bit_or(a)+bit_and(a)+min(a)+max(a)+min(c)+max(c) as sum from t1 group by grp;
+--enable_warnings
create table t2 (grp int, a bigint unsigned, c char(10));
insert into t2 select grp,max(a)+max(grp),max(c) from t1 group by grp;
# REPLACE ... SELECT doesn't yet work with PS
---disable_ps_protocol
replace into t2 select grp, a, c from t1 limit 2,1;
---enable_ps_protocol
select * from t2;
drop table t1,t2;
@@ -62,6 +63,11 @@ create table t2 (id int not null,rating int null);
insert into t1 values(1),(2),(3);
insert into t2 values(1, 3),(2, NULL),(2, NULL),(3, 2),(3, NULL);
select t1.id, avg(rating) from t1 left join t2 on ( t1.id = t2.id ) group by t1.id;
+# Test different types with avg()
+select sql_small_result t2.id, avg(rating) from t2 group by t2.id;
+select sql_big_result t2.id, avg(rating) from t2 group by t2.id;
+select sql_small_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;
+select sql_big_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;
drop table t1,t2;
#
@@ -218,6 +224,7 @@ insert into t1 values('GTM',3,'DAL',0.070,date'1977-09-23');
insert into t1 values('SSJ',null,'CHI',null,date'1974-03-19');
insert into t1 values('KKK',3,'ATL',null,null);
insert into t1 values('XXX',null,'MIN',null,null);
+insert into t1 values('WWW',1,'LED',null,null);
# Populate table t2
insert into t2 values('TKF','Seattle','WA','AME');
@@ -226,6 +233,7 @@ insert into t2 values('DEN','Denver','CO','BDL');
insert into t2 values('SDC','San Diego','CA','TWU');
insert into t2 values('NOL','New Orleans','LA','GTM');
insert into t2 values('LAK','Los Angeles','CA','TWU');
+insert into t2 values('AAA','AAA','AA','AME');
# Show the table contents
select * from t1;
@@ -392,8 +400,12 @@ create table t1 (a char character set latin2);
insert into t1 values ('a'),('b');
select charset(max(a)), coercibility(max(a)),
charset(min(a)), coercibility(min(a)) from t1;
+show create table t1;
create table t2 select max(a),min(a) from t1;
show create table t2;
+drop table t2;
+create table t2 select concat(a) from t1;
+show create table t2;
drop table t2,t1;
#
@@ -530,75 +542,6 @@ SELECT MAX(id) FROM t1 WHERE id < 3 AND a=2 AND b=6;
DROP TABLE t1;
#
-# Bug #12882 min/max inconsistent on empty table
-#
-
-create table t1m (a int) engine=myisam;
-create table t1i (a int) engine=innodb;
-create table t2m (a int) engine=myisam;
-create table t2i (a int) engine=innodb;
-insert into t2m values (5);
-insert into t2i values (5);
-
-# test with MyISAM
-select min(a) from t1m;
-select min(7) from t1m;
-select min(7) from DUAL;
-explain select min(7) from t2m join t1m;
-select min(7) from t2m join t1m;
-
-select max(a) from t1m;
-select max(7) from t1m;
-select max(7) from DUAL;
-explain select max(7) from t2m join t1m;
-select max(7) from t2m join t1m;
-
-select 1, min(a) from t1m where a=99;
-select 1, min(a) from t1m where 1=99;
-select 1, min(1) from t1m where a=99;
-select 1, min(1) from t1m where 1=99;
-
-select 1, max(a) from t1m where a=99;
-select 1, max(a) from t1m where 1=99;
-select 1, max(1) from t1m where a=99;
-select 1, max(1) from t1m where 1=99;
-
-# test with InnoDB
-select min(a) from t1i;
-select min(7) from t1i;
-select min(7) from DUAL;
-explain select min(7) from t2i join t1i;
-select min(7) from t2i join t1i;
-
-select max(a) from t1i;
-select max(7) from t1i;
-select max(7) from DUAL;
-explain select max(7) from t2i join t1i;
-select max(7) from t2i join t1i;
-
-select 1, min(a) from t1i where a=99;
-select 1, min(a) from t1i where 1=99;
-select 1, min(1) from t1i where a=99;
-select 1, min(1) from t1i where 1=99;
-
-select 1, max(a) from t1i where a=99;
-select 1, max(a) from t1i where 1=99;
-select 1, max(1) from t1i where a=99;
-select 1, max(1) from t1i where 1=99;
-
-# mixed MyISAM/InnoDB test
-explain select count(*), min(7), max(7) from t1m, t1i;
-select count(*), min(7), max(7) from t1m, t1i;
-
-explain select count(*), min(7), max(7) from t1m, t2i;
-select count(*), min(7), max(7) from t1m, t2i;
-
-explain select count(*), min(7), max(7) from t2m, t1i;
-select count(*), min(7), max(7) from t2m, t1i;
-
-drop table t1m, t1i, t2m, t2i;
-
-#
# Bug #18206: min/max optimization cannot be applied to partial index
#
@@ -617,6 +560,14 @@ SELECT MAX(b) FROM t1;
EXPLAIN SELECT MAX(b) FROM t1;
DROP TABLE t1;
+CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin;
+INSERT INTO t1 VALUES
+ (1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")),
+ (1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff"));
+
+SELECT MAX(b) FROM t1;
+EXPLAIN SELECT MAX(b) FROM t1;
+DROP TABLE t1;
#
# Bug #16792 query with subselect, join, and group not returning proper values
#
@@ -632,3 +583,295 @@ SELECT AVG(2), BIT_AND(2), BIT_OR(2), BIT_XOR(2), COUNT(*), COUNT(12),
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# decimal-related tests
+#
+create table t2 (ff double);
+insert into t2 values (2.2);
+select cast(sum(distinct ff) as decimal(5,2)) from t2;
+select cast(sum(distinct ff) as signed) from t2;
+select cast(variance(ff) as decimal(10,3)) from t2;
+select cast(min(ff) as decimal(5,2)) from t2;
+
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+insert into t1 values(2.2);
+select cast(sum(distinct df) as signed) from t1;
+select cast(min(df) as signed) from t1;
+select 1e8 * sum(distinct df) from t1;
+select 1e8 * min(df) from t1;
+
+create table t3 (ifl int);
+insert into t3 values(1), (2);
+select cast(min(ifl) as decimal(5,2)) from t3;
+
+drop table t1, t2, t3;
+
+
+#
+# BUG#3190, WL#1639: Standard Deviation STDDEV - 2 different calculations
+#
+
+CREATE TABLE t1 (id int(11),value1 float(10,2));
+INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00), (2,13.00);
+select id, stddev_pop(value1), var_pop(value1), stddev_samp(value1), var_samp(value1) from t1 group by id;
+DROP TABLE t1;
+
+#
+# BUG#8464 decimal AVG returns incorrect result
+#
+
+CREATE TABLE t1 (col1 decimal(16,12));
+INSERT INTO t1 VALUES (-5.00000000001),(-5.00000000002),(-5.00000000003),(-5.00000000000),(-5.00000000001),(-5.00000000002);
+insert into t1 select * from t1;
+select col1,count(col1),sum(col1),avg(col1) from t1 group by col1;
+DROP TABLE t1;
+
+#
+# BUG#8465 decimal MIN and MAX return incorrect result
+#
+
+create table t1 (col1 decimal(16,12));
+insert into t1 values (-5.00000000001);
+insert into t1 values (-5.00000000001);
+select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
+delete from t1;
+insert into t1 values (5.00000000001);
+insert into t1 values (5.00000000001);
+select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
+DROP TABLE t1;
+
+#
+# Test that new VARCHAR correctly works with COUNT(DISTINCT)
+#
+
+CREATE TABLE t1 (a VARCHAR(400));
+INSERT INTO t1 (a) VALUES ("A"), ("a"), ("a "), ("a "),
+ ("B"), ("b"), ("b "), ("b ");
+SELECT COUNT(DISTINCT a) FROM t1;
+DROP TABLE t1;
+
+#
+# Test for buf #9210: GROUP BY with expression if a decimal type
+#
+
+CREATE TABLE t1 (a int, b int, c int);
+INSERT INTO t1 (a, b, c) VALUES
+ (1,1,1), (1,1,2), (1,1,3),
+ (1,2,1), (1,2,2), (1,2,3),
+ (1,3,1), (1,3,2), (1,3,3),
+ (2,1,1), (2,1,2), (2,1,3),
+ (2,2,1), (2,2,2), (2,2,3),
+ (2,3,1), (2,3,2), (2,3,3),
+ (3,1,1), (3,1,2), (3,1,3),
+ (3,2,1), (3,2,2), (3,2,3),
+ (3,3,1), (3,3,2), (3,3,3);
+
+SELECT b/c as v, a FROM t1 ORDER BY v;
+SELECT b/c as v, SUM(a) FROM t1 GROUP BY v;
+SELECT SUM(a) FROM t1 GROUP BY b/c;
+
+DROP TABLE t1;
+set div_precision_increment= @sav_dpi;
+
+#
+# Bug #20868: Client connection is broken on SQL query error
+#
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
+INSERT INTO t1 VALUES (1,1), (2,2);
+
+CREATE TABLE t2 (a INT PRIMARY KEY, b INT);
+INSERT INTO t2 VALUES (1,1), (3,3);
+
+SELECT SQL_NO_CACHE
+ (SELECT SUM(c.a) FROM t1 ttt, t2 ccc
+ WHERE ttt.a = ccc.b AND ttt.a = t.a GROUP BY ttt.a) AS minid
+FROM t1 t, t2 c WHERE t.a = c.b;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #10966: Variance functions return wrong data type
+#
+
+create table t1 select variance(0);
+show create table t1;
+drop table t1;
+create table t1 select stddev(0);
+show create table t1;
+drop table t1;
+
+
+#
+# Bug#22555: STDDEV yields positive result for groups with only one row
+#
+
+create table bug22555 (i smallint primary key auto_increment, s1 smallint, s2 smallint, e decimal(30,10), o double);
+insert into bug22555 (s1, s2, e, o) values (53, 78, 11.4276528, 6.828112), (17, 78, 5.916793, 1.8502951), (18, 76, 2.679231, 9.17975591), (31, 62, 6.07831, 0.1), (19, 41, 5.37463, 15.1), (83, 73, 14.567426, 7.959222), (92, 53, 6.10151, 13.1856852), (7, 12, 13.92272, 3.442007), (92, 35, 11.95358909, 6.01376678), (38, 84, 2.572, 7.904571);
+select std(s1/s2) from bug22555 group by i;
+select std(e) from bug22555 group by i;
+select std(o) from bug22555 group by i;
+drop table bug22555;
+
+create table bug22555 (i smallint, s1 smallint, s2 smallint, o1 double, o2 double, e1 decimal, e2 decimal);
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+select i, count(*) from bug22555 group by i;
+select std(s1/s2) from bug22555 where i=1;
+select std(s1/s2) from bug22555 where i=2;
+select std(s1/s2) from bug22555 where i=3;
+select std(s1/s2) from bug22555 where i=1 group by i;
+select std(s1/s2) from bug22555 where i=2 group by i;
+select std(s1/s2) from bug22555 where i=3 group by i;
+select std(s1/s2) from bug22555 group by i order by i;
+select i, count(*), std(o1/o2) from bug22555 group by i order by i;
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+set @saved_div_precision_increment=@@div_precision_increment;
+set div_precision_increment=19;
+select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
+select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
+select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+select i, count(*), std(o1/o2) from bug22555 group by i order by i;
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+set div_precision_increment=20;
+select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
+select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
+select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+select i, count(*), std(o1/o2) from bug22555 group by i order by i;
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+set @@div_precision_increment=@saved_div_precision_increment;
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
+
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+select std(s1/s2) from bug22555;
+select std(o1/o2) from bug22555;
+select std(e1/e2) from bug22555;
+set @saved_div_precision_increment=@@div_precision_increment;
+set div_precision_increment=19;
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+select round(std(s1/s2), 17) from bug22555;
+select std(o1/o2) from bug22555;
+select round(std(e1/e2), 17) from bug22555;
+set div_precision_increment=20;
+select i, count(*), std(s1/s2) from bug22555 group by i order by i;
+select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
+select i, count(*), std(e1/e2) from bug22555 group by i order by i;
+select round(std(s1/s2), 17) from bug22555;
+select std(o1/o2) from bug22555;
+select round(std(e1/e2), 17) from bug22555;
+set @@div_precision_increment=@saved_div_precision_increment;
+drop table bug22555;
+
+create table bug22555 (s smallint, o double, e decimal);
+insert into bug22555 values (1,1,1),(2,2,2),(3,3,3),(6,6,6),(7,7,7);
+select var_samp(s), var_pop(s) from bug22555;
+select var_samp(o), var_pop(o) from bug22555;
+select var_samp(e), var_pop(e) from bug22555;
+drop table bug22555;
+
+create table bug22555 (s smallint, o double, e decimal);
+insert into bug22555 values (null,null,null),(null,null,null);
+select var_samp(s) as 'null', var_pop(s) as 'null' from bug22555;
+select var_samp(o) as 'null', var_pop(o) as 'null' from bug22555;
+select var_samp(e) as 'null', var_pop(e) as 'null' from bug22555;
+insert into bug22555 values (1,1,1);
+select var_samp(s) as 'null', var_pop(s) as '0' from bug22555;
+select var_samp(o) as 'null', var_pop(o) as '0' from bug22555;
+select var_samp(e) as 'null', var_pop(e) as '0' from bug22555;
+insert into bug22555 values (2,2,2);
+select var_samp(s) as '0.5', var_pop(s) as '0.25' from bug22555;
+select var_samp(o) as '0.5', var_pop(o) as '0.25' from bug22555;
+select var_samp(e) as '0.5', var_pop(e) as '0.25' from bug22555;
+drop table bug22555;
+
+
+#
+# Bug #21976: Unnecessary warning with count(decimal)
+#
+
+create table t1 (a decimal(20));
+insert into t1 values (12345678901234567890);
+select count(a) from t1;
+select count(distinct a) from t1;
+drop table t1;
+
+#
+# Bug #23184: SELECT causes server crash
+#
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
+INSERT INTO t1 SELECT a, b+8 FROM t1;
+INSERT INTO t1 SELECT a, b+16 FROM t1;
+INSERT INTO t1 SELECT a, b+32 FROM t1;
+INSERT INTO t1 SELECT a, b+64 FROM t1;
+INSERT INTO t1 SELECT a, b+128 FROM t1;
+INSERT INTO t1 SELECT a, b+256 FROM t1;
+INSERT INTO t1 SELECT a, b+512 FROM t1;
+INSERT INTO t1 SELECT a, b+1024 FROM t1;
+INSERT INTO t1 SELECT a, b+2048 FROM t1;
+INSERT INTO t1 SELECT a, b+4096 FROM t1;
+INSERT INTO t1 SELECT a, b+8192 FROM t1;
+INSERT INTO t1 SELECT a, b+16384 FROM t1;
+INSERT INTO t1 SELECT a, b+32768 FROM t1;
+SELECT a,COUNT(DISTINCT b) AS cnt FROM t1 GROUP BY a HAVING cnt > 50;
+SELECT a,SUM(DISTINCT b) AS sumation FROM t1 GROUP BY a HAVING sumation > 50;
+SELECT a,AVG(DISTINCT b) AS average FROM t1 GROUP BY a HAVING average > 50;
+
+DROP TABLE t1;
+
+#
+# Bug #27573: MIN() on an indexed column which is always NULL sets _other_
+# results to NULL
+#
+CREATE TABLE t1 ( a INT, b INT, KEY(a) );
+INSERT INTO t1 VALUES (NULL, 1), (NULL, 2);
+EXPLAIN SELECT MIN(a), MIN(b) FROM t1;
+SELECT MIN(a), MIN(b) FROM t1;
+
+CREATE TABLE t2( a INT, b INT, c INT, KEY(a, b) );
+INSERT INTO t2 ( a, b, c ) VALUES ( 1, NULL, 2 ), ( 1, 3, 4 ), ( 1, 4, 4 );
+EXPLAIN SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
+SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
+
+CREATE TABLE t3 (a INT, b INT, c int, KEY(a, b));
+INSERT INTO t3 VALUES (1, NULL, 1), (2, NULL, 2), (2, NULL, 2), (3, NULL, 3);
+EXPLAIN SELECT MIN(a), MIN(b) FROM t3 where a = 2;
+SELECT MIN(a), MIN(b) FROM t3 where a = 2;
+
+CREATE TABLE t4 (a INT, b INT, c int, KEY(a, b));
+INSERT INTO t4 VALUES (1, 1, 1), (2, NULL, 2), (2, NULL, 2), (3, 1, 3);
+EXPLAIN SELECT MIN(a), MIN(b) FROM t4 where a = 2;
+SELECT MIN(a), MIN(b) FROM t4 where a = 2;
+SELECT MIN(b), min(c) FROM t4 where a = 2;
+
+CREATE TABLE t5( a INT, b INT, KEY( a, b) );
+INSERT INTO t5 VALUES( 1, 1 ), ( 1, 2 );
+EXPLAIN SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
+SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
+SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
+
+DROP TABLE t1, t2, t3, t4, t5;
+
+#
+# Bug #31156: mysqld: item_sum.cc:918:
+# virtual bool Item_sum_distinct::setup(THD*): Assertion
+#
+
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 values (),(),();
+SELECT (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ) as x FROM t1
+ GROUP BY x;
+SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
+
+DROP TABLE t1;
+
+###
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_if.test b/mysql-test/t/func_if.test
index 5756793c673..5373ca3fec6 100644
--- a/mysql-test/t/func_if.test
+++ b/mysql-test/t/func_if.test
@@ -25,9 +25,10 @@ explain extended select if(u=1,st,binary st) s from t1 where st like "%a%" order
#
# NULLIF test
#
-select nullif(u=0, 'test') from t1;
-explain extended select nullif(u=0, 'test') from t1;
+select nullif(u, 1) from t1;
+explain extended select nullif(u, 1) from t1;
drop table t1;
+select nullif(1,'test');
#
# Bug 2629
@@ -62,6 +63,20 @@ drop table t1;
SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL;
#
+# Bug #9669 Ordering on IF function with FROM_UNIXTIME function fails
+#
+CREATE TABLE `t1` (
+ `id` int(11) NOT NULL ,
+ `date` int(10) default NULL,
+ `text` varchar(32) NOT NULL
+);
+INSERT INTO t1 VALUES (1,1110000000,'Day 1'),(2,1111000000,'Day 2'),(3,1112000000,'Day 3');
+SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord ASC;
+SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord DESC;
+DROP TABLE t1;
+
+
+#
# Test for bug #11142: evaluation of NULLIF when the first argument is NULL
#
@@ -74,3 +89,22 @@ SELECT a, NULLIF(a,'') FROM t1 WHERE NULLIF(a,'') IS NULL;
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Bug #16272 IF function with decimal args can produce wrong result
+#
+create table t1 (f1 int, f2 int);
+insert into t1 values(1,1),(0,0);
+select f1, f2, if(f1, 40.0, 5.00) from t1 group by f1 order by f2;
+drop table t1;
+
+#
+# Bug#24532 (The return data type of IS TRUE is different from similar
+# operations)
+#
+# IF(x, unsigned, unsigned) should be unsigned.
+#
+
+select if(0, 18446744073709551610, 18446744073709551610);
+
+
diff --git a/mysql-test/t/func_in.test b/mysql-test/t/func_in.test
index ffed2aac2a0..a84ffada1ee 100644
--- a/mysql-test/t/func_in.test
+++ b/mysql-test/t/func_in.test
@@ -1,6 +1,6 @@
# Initialise
--disable_warnings
-drop table if exists t1;
+drop table if exists t1, t2;
--enable_warnings
#
# test of IN (NULL)
@@ -97,7 +97,7 @@ select 1 in ('1.1',2.0);
# Test case for bug #6365
-create table t1 (a char(20) character set binary);
+create table t1 (a char(2) character set binary);
insert into t1 values ('aa'), ('bb');
select * from t1 where a in (NULL, 'aa');
drop table t1;
@@ -130,3 +130,254 @@ DROP TABLE t1;
--echo End of 4.1 tests
+
+
+#
+# Bug #11885: WHERE condition with NOT IN (one element)
+#
+
+CREATE TABLE t1 (a int PRIMARY KEY);
+INSERT INTO t1 VALUES (44), (45), (46);
+
+SELECT * FROM t1 WHERE a IN (45);
+SELECT * FROM t1 WHERE a NOT IN (0, 45);
+SELECT * FROM t1 WHERE a NOT IN (45);
+
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45);
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+# BUG#15872: Excessive memory consumption of range analysis of NOT IN
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, filler char(200), key(a));
+
+insert into t2 select C.a*2, 'no' from t1 A, t1 B, t1 C;
+insert into t2 select C.a*2+1, 'yes' from t1 C;
+
+explain
+select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
+select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
+
+explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
+explain select * from t2 force index(a) where a <> 2;
+
+drop table t2;
+
+#
+# Repeat the test for DATETIME
+#
+create table t2 (a datetime, filler char(200), key(a));
+
+insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
+ 'no' from t1 A, t1 B, t1 C where C.a % 2 = 0;
+
+insert into t2 select '2006-04-25 10:00:00' + interval C.a*2+1 minute,
+ 'yes' from t1 C;
+
+explain
+select * from t2 where a NOT IN (
+ '2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
+ '2006-04-25 10:06:00', '2006-04-25 10:08:00');
+select * from t2 where a NOT IN (
+ '2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
+ '2006-04-25 10:06:00', '2006-04-25 10:08:00');
+drop table t2;
+
+#
+# Repeat the test for CHAR(N)
+#
+create table t2 (a varchar(10), filler char(200), key(a));
+
+insert into t2 select 'foo', 'no' from t1 A, t1 B;
+insert into t2 select 'barbar', 'no' from t1 A, t1 B;
+insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B;
+
+insert into t2 values ('fon', '1'), ('fop','1'), ('barbaq','1'),
+ ('barbas','1'), ('bazbazbay', '1'),('zz','1');
+
+explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
+
+drop table t2;
+
+#
+# Repeat for DECIMAL
+#
+create table t2 (a decimal(10,5), filler char(200), key(a));
+
+insert into t2 select 345.67890, 'no' from t1 A, t1 B;
+insert into t2 select 43245.34, 'no' from t1 A, t1 B;
+insert into t2 select 64224.56344, 'no' from t1 A, t1 B;
+
+insert into t2 values (0, '1'), (22334.123,'1'), (33333,'1'),
+ (55555,'1'), (77777, '1');
+
+explain
+select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
+select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
+
+drop table t2;
+
+# Try a very big IN-list
+create table t2 (a int, key(a), b int);
+insert into t2 values (1,1),(2,2);
+
+set @cnt= 1;
+set @str="update t2 set b=1 where a not in (";
+select count(*) from (
+ select @str:=concat(@str, @cnt:=@cnt+1, ",")
+ from t1 A, t1 B, t1 C, t1 D) Z;
+
+set @str:=concat(@str, "10000)");
+select substr(@str, 1, 50);
+prepare s from @str;
+execute s;
+deallocate prepare s;
+set @str=NULL;
+
+drop table t2;
+drop table t1;
+
+# BUG#19618: Crash in range optimizer for
+# "unsigned_keypart NOT IN(negative_number,...)"
+# (introduced in fix BUG#15872)
+create table t1 (
+ some_id smallint(5) unsigned,
+ key (some_id)
+);
+insert into t1 values (1),(2);
+select some_id from t1 where some_id not in(2,-1);
+select some_id from t1 where some_id not in(-4,-1,-4);
+select some_id from t1 where some_id not in(-4,-1,3423534,2342342);
+
+#
+# BUG#24261: crash when WHERE contains NOT IN ('<negative value>') for unsigned column type
+#
+
+select some_id from t1 where some_id not in('-1', '0');
+
+drop table t1;
+
+#
+# BUG#20420: optimizer reports wrong keys on left join with IN
+#
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
+
+CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
+INSERT INTO t2 VALUES (3,2),(4,2);
+
+CREATE TABLE t3 (a int PRIMARY KEY);
+INSERT INTO t3 VALUES (1),(2),(3),(4);
+
+CREATE TABLE t4 (a int PRIMARY KEY);
+INSERT INTO t4 VALUES (1),(2);
+
+EXPLAIN SELECT STRAIGHT_JOIN * FROM t3
+ JOIN t1 ON t3.a=t1.a
+ JOIN t2 ON t3.a=t2.a
+ JOIN t4 WHERE t4.a IN (t1.b, t2.b);
+
+SELECT STRAIGHT_JOIN * FROM t3
+ JOIN t1 ON t3.a=t1.a
+ JOIN t2 ON t3.a=t2.a
+ JOIN t4 WHERE t4.a IN (t1.b, t2.b);
+
+EXPLAIN SELECT STRAIGHT_JOIN
+ (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+ FROM t3, t1, t2
+ WHERE t3.a=t1.a AND t3.a=t2.a;
+
+SELECT STRAIGHT_JOIN
+ (SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
+ FROM t3, t1, t2
+ WHERE t3.a=t1.a AND t3.a=t2.a;
+
+DROP TABLE t1,t2,t3,t4;
+
+#
+# BUG#19342: IN works incorrectly for BIGINT UNSIGNED values
+#
+CREATE TABLE t1(a BIGINT UNSIGNED);
+INSERT INTO t1 VALUES (0xFFFFFFFFFFFFFFFF);
+
+SELECT * FROM t1 WHERE a=-1 OR a=-2 ;
+SELECT * FROM t1 WHERE a IN (-1, -2);
+
+CREATE TABLE t2 (a BIGINT UNSIGNED);
+insert into t2 values(13491727406643098568),
+ (0x7fffffefffffffff),
+ (0x7ffffffeffffffff),
+ (0x7fffffffefffffff),
+ (0x7ffffffffeffffff),
+ (0x7fffffffffefffff),
+ (0x7ffffffffffeffff),
+ (0x7fffffffffffefff),
+ (0x7ffffffffffffeff),
+ (0x7fffffffffffffef),
+ (0x7ffffffffffffffe),
+ (0x7fffffffffffffff),
+ (0x8000000000000000),
+ (0x8000000000000001),
+ (0x8000000000000002),
+ (0x8000000000000300),
+ (0x8000000000000400),
+ (0x8000000000000401),
+ (0x8000000000004001),
+ (0x8000000000040001),
+ (0x8000000000400001),
+ (0x8000000004000001),
+ (0x8000000040000001),
+ (0x8000000400000001),
+ (0x8000004000000001),
+ (0x8000040000000001);
+
+SELECT HEX(a) FROM t2 WHERE a IN
+ (CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
+ 42);
+
+SELECT HEX(a) FROM t2 WHERE a IN
+ (CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
+ CAST(0x7fffffffffffffff AS UNSIGNED),
+ CAST(0x8000000000000000 AS UNSIGNED),
+ CAST(0x8000000000000400 AS UNSIGNED),
+ CAST(0x8000000000000401 AS UNSIGNED),
+ 42);
+
+SELECT HEX(a) FROM t2 WHERE a IN
+ (CAST(0x7fffffffffffffff AS UNSIGNED),
+ CAST(0x8000000000000001 AS UNSIGNED));
+SELECT HEX(a) FROM t2 WHERE a IN
+ (CAST(0x7ffffffffffffffe AS UNSIGNED),
+ CAST(0x7fffffffffffffff AS UNSIGNED));
+SELECT HEX(a) FROM t2 WHERE a IN
+ (0x7ffffffffffffffe,
+ 0x7fffffffffffffff,
+ 'abc');
+
+CREATE TABLE t3 (a BIGINT UNSIGNED);
+INSERT INTO t3 VALUES (9223372036854775551);
+
+SELECT HEX(a) FROM t3 WHERE a IN (9223372036854775807, 42);
+
+CREATE TABLE t4 (a DATE);
+INSERT INTO t4 VALUES ('1972-02-06'), ('1972-07-29');
+SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29');
+
+DROP TABLE t1,t2,t3,t4;
+
+#
+# BUG#27362: IN with a decimal expression that may return NULL
+#
+
+CREATE TABLE t1 (id int not null);
+INSERT INTO t1 VALUES (1),(2);
+
+SELECT id FROM t1 WHERE id IN(4564, (SELECT IF(1=0,1,1/0)) );
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test
index c22c09ab62b..9f12fdd696e 100644
--- a/mysql-test/t/func_math.test
+++ b/mysql-test/t/func_math.test
@@ -54,6 +54,11 @@ SELECT ASIN(1.2-0.2);
#select floor(log(8)/log(2));
#select floor(log(16)/log(2));
+#
+# Bug #9060 (format returns incorrect result)
+#
+select format(4.55, 1), format(4.551, 1);
+
explain extended select degrees(pi()),radians(360);
#
@@ -63,6 +68,26 @@ explain extended select degrees(pi()),radians(360);
--error 1054
select rand(rand);
+# End of 4.1 tests
+
+#
+# Bug #8459 (FORMAT returns incorrect result)
+#
+create table t1 (col1 int, col2 decimal(60,30));
+insert into t1 values(1,1234567890.12345);
+select format(col2,7) from t1;
+select format(col2,8) from t1;
+insert into t1 values(7,1234567890123456.12345);
+select format(col2,6) from t1 where col1=7;
+drop table t1;
+
+
+#
+# Bug @10632 (Ceiling function returns wrong answer)
+#
+select ceil(0.09);
+select ceil(0.000000000000000009);
+
#
# Bug #9837: problem with round()
#
@@ -99,3 +124,110 @@ select a from t1 where a='http://www.foo.com/' order by abs(timediff(ts, 0));
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #13820 (No warning on log(negative)
+#
+set sql_mode='traditional';
+select ln(-1);
+select log10(-1);
+select log2(-1);
+select log(2,-1);
+select log(-2,1);
+set sql_mode='';
+
+#
+# Bug #8461 truncate() and round() return false results 2nd argument negative.
+#
+# round(a,-b) log_10(b) > a
+select round(111,-10);
+# round on bigint
+select round(-5000111000111000155,-1);
+# round on unsigned bigint
+select round(15000111000111000155,-1);
+# truncate on bigint
+select truncate(-5000111000111000155,-1);
+# truncate on unsigned bigint
+select truncate(15000111000111000155,-1);
+
+#
+# Bug#16678 FORMAT gives wrong result if client run with default-character-set=utf8
+#
+set names utf8;
+create table t1
+(f1 varchar(32) not null,
+ f2 smallint(5) unsigned not null,
+ f3 int(10) unsigned not null default '0')
+engine=myisam default charset=utf8;
+insert into t1 values ('zombie',0,0),('gold',1,10000),('silver',2,10000);
+
+create table t2
+(f1 int(10) unsigned not null,
+ f2 int(10) unsigned not null,
+ f3 smallint(5) unsigned not null)
+engine=myisam default charset=utf8;
+insert into t2 values (16777216,16787215,1),(33554432,33564431,2);
+
+select format(t2.f2-t2.f1+1,0) from t1,t2
+where t1.f2 = t2.f3 order by t1.f1;
+drop table t1, t2;
+set names default;
+
+# Bug 24912 -- misc functions have trouble with unsigned
+
+select cast(-2 as unsigned), 18446744073709551614, -2;
+select abs(cast(-2 as unsigned)), abs(18446744073709551614), abs(-2);
+select ceiling(cast(-2 as unsigned)), ceiling(18446744073709551614), ceiling(-2);
+select floor(cast(-2 as unsigned)), floor(18446744073709551614), floor(-2);
+select format(cast(-2 as unsigned), 2), format(18446744073709551614, 2), format(-2, 2);
+select sqrt(cast(-2 as unsigned)), sqrt(18446744073709551614), sqrt(-2);
+select round(cast(-2 as unsigned), 1), round(18446744073709551614, 1), round(-2, 1);
+select round(4, cast(-2 as unsigned)), round(4, 18446744073709551614), round(4, -2);
+select truncate(cast(-2 as unsigned), 1), truncate(18446744073709551614, 1), truncate(-2, 1);
+select truncate(4, cast(-2 as unsigned)), truncate(4, 18446744073709551614), truncate(4, -2);
+select round(10000000000000000000, -19), truncate(10000000000000000000, -19);
+select round(1e0, -309), truncate(1e0, -309);
+select round(1e1,308), truncate(1e1, 308);
+select round(1e1, 2147483648), truncate(1e1, 2147483648);
+select round(1.1e1, 4294967295), truncate(1.1e1, 4294967295);
+select round(1.12e1, 4294967296), truncate(1.12e1, 4294967296);
+select round(1.5, 2147483640), truncate(1.5, 2147483640);
+select round(1.5, -2147483649), round(1.5, 2147483648);
+select truncate(1.5, -2147483649), truncate(1.5, 2147483648);
+select round(1.5, -4294967296), round(1.5, 4294967296);
+select truncate(1.5, -4294967296), truncate(1.5, 4294967296);
+select round(1.5, -9223372036854775808), round(1.5, 9223372036854775808);
+select truncate(1.5, -9223372036854775808), truncate(1.5, 9223372036854775808);
+select round(1.5, 18446744073709551615), truncate(1.5, 18446744073709551615);
+select round(18446744073709551614, -1), truncate(18446744073709551614, -1);
+select round(4, -4294967200), truncate(4, -4294967200);
+select mod(cast(-2 as unsigned), 3), mod(18446744073709551614, 3), mod(-2, 3);
+select mod(5, cast(-2 as unsigned)), mod(5, 18446744073709551614), mod(5, -2);
+select pow(cast(-2 as unsigned), 5), pow(18446744073709551614, 5), pow(-2, 5);
+
+#
+# Bug #30587: mysql crashes when trying to group by TIME div NUMBER
+#
+
+CREATE TABLE t1 (a timestamp, b varchar(20), c bit(1));
+INSERT INTO t1 VALUES('1998-09-23', 'str1', 1), ('2003-03-25', 'str2', 0);
+SELECT a DIV 900 y FROM t1 GROUP BY y;
+SELECT DISTINCT a DIV 900 y FROM t1;
+SELECT b DIV 900 y FROM t1 GROUP BY y;
+SELECT c DIV 900 y FROM t1 GROUP BY y;
+DROP TABLE t1;
+
+CREATE TABLE t1(a LONGBLOB);
+INSERT INTO t1 VALUES('1'),('2'),('3');
+SELECT DISTINCT (a DIV 254576881) FROM t1;
+SELECT (a DIV 254576881) FROM t1 UNION ALL
+ SELECT (a DIV 254576881) FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1(a SET('a','b','c'));
+INSERT INTO t1 VALUES ('a');
+SELECT a DIV 2 FROM t1 UNION SELECT a DIV 2 FROM t1;
+DROP TABLE t1;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test
index a7dc9e7c966..2c34f77b1ff 100644
--- a/mysql-test/t/func_misc.test
+++ b/mysql-test/t/func_misc.test
@@ -38,11 +38,6 @@ select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
drop table t1;
-# Test for BUG#9535
-create table t1 as select uuid(), length(uuid());
-show create table t1;
-drop table t1;
-
#
# Bug#16501: IS_USED_LOCK does not appear to work
@@ -89,3 +84,125 @@ DROP TABLE t1;
select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
--echo End of 4.1 tests
+
+
+#
+# Test for BUG#9535
+#
+create table t1 as select uuid(), length(uuid());
+show create table t1;
+drop table t1;
+
+#
+# Bug #6760: Add SLEEP() function
+#
+create table t1 (a timestamp default '2005-05-05 01:01:01',
+ b timestamp default '2005-05-05 01:01:01');
+insert into t1 set a = now();
+select sleep(3);
+update t1 set b = now();
+select timediff(b, a) >= '00:00:03' from t1;
+drop table t1;
+
+#
+# Bug #12689: SLEEP() gets incorrectly cached/optimized-away
+#
+set global query_cache_size=1355776;
+create table t1 (a int);
+insert into t1 values (1),(1),(1);
+create table t2 (a datetime default null, b datetime default null);
+insert into t2 set a = now();
+select a from t1 where sleep(1);
+update t2 set b = now() where b is null;
+insert into t2 set a = now();
+select a from t1 where sleep(a);
+update t2 set b = now() where b is null;
+insert into t2 set a = now();
+select a from t1 where sleep(1);
+update t2 set b = now() where b is null;
+select timediff(b, a) >= '00:00:03' from t2;
+drop table t2;
+drop table t1;
+set global query_cache_size=default;
+
+#
+# Bug #21466: INET_ATON() returns signed, not unsigned
+#
+
+create table t1 select INET_ATON('255.255.0.1') as `a`;
+show create table t1;
+drop table t1;
+
+#
+# Bug#26093 (SELECT BENCHMARK() for SELECT statements does not produce
+# valid results)
+#
+
+--disable_warnings
+drop table if exists table_26093;
+drop function if exists func_26093_a;
+drop function if exists func_26093_b;
+--enable_warnings
+
+create table table_26093(a int);
+insert into table_26093 values
+(1), (2), (3), (4), (5),
+(6), (7), (8), (9), (10);
+
+delimiter //;
+
+create function func_26093_a(x int) returns int
+begin
+ set @invoked := @invoked + 1;
+ return x;
+end//
+
+create function func_26093_b(x int, y int) returns int
+begin
+ set @invoked := @invoked + 1;
+ return x;
+end//
+
+delimiter ;//
+
+select avg(a) from table_26093;
+
+select benchmark(100, (select avg(a) from table_26093));
+
+set @invoked := 0;
+select benchmark(100, (select avg(func_26093_a(a)) from table_26093));
+# Returns only 10, since intermediate results are cached.
+select @invoked;
+
+set @invoked := 0;
+select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093));
+# Returns 1000, due to rand() preventing caching.
+select @invoked;
+
+--error ER_SUBQUERY_NO_1_ROW
+select benchmark(100, (select (a) from table_26093));
+
+--error ER_OPERAND_COLUMNS
+select benchmark(100, (select 1, 1));
+
+drop table table_26093;
+drop function func_26093_a;
+drop function func_26093_b;
+
+#
+# Bug #30832: Assertion + crash with select name_const('test',now());
+#
+--error ER_WRONG_ARGUMENTS
+SELECT NAME_CONST('test', NOW());
+--error ER_WRONG_ARGUMENTS
+SELECT NAME_CONST('test', UPPER('test'));
+
+SELECT NAME_CONST('test', NULL);
+SELECT NAME_CONST('test', 1);
+SELECT NAME_CONST('test', -1);
+SELECT NAME_CONST('test', 1.0);
+SELECT NAME_CONST('test', -1.0);
+SELECT NAME_CONST('test', 'test');
+
+--echo End of 5.0 tests
+
diff --git a/mysql-test/t/func_regexp.test b/mysql-test/t/func_regexp.test
index 23070c71fe9..5eff404bc0f 100644
--- a/mysql-test/t/func_regexp.test
+++ b/mysql-test/t/func_regexp.test
@@ -74,4 +74,13 @@ execute stmt1 using @a;
deallocate prepare stmt1;
drop table t1;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+
+#
+# Bug #31440: 'select 1 regex null' asserts debug server
+#
+
+SELECT 1 REGEXP NULL;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_sapdb.test b/mysql-test/t/func_sapdb.test
index 930ad37c60c..5db6db70e8f 100644
--- a/mysql-test/t/func_sapdb.test
+++ b/mysql-test/t/func_sapdb.test
@@ -30,15 +30,24 @@ select adddate("1997-12-31 23:59:59.000001", 10);
select subdate("1997-12-31 23:59:59.000001", 10);
select datediff("1997-12-31 23:59:59.000001","1997-12-30");
+select datediff("1997-11-30 23:59:59.000001","1997-12-31");
+SET @@SQL_MODE="ALLOW_INVALID_DATES";
select datediff("1997-11-31 23:59:59.000001","1997-12-31");
-select datediff("1997-11-31 23:59:59.000001",null);
+SET @@SQL_MODE="";
-select weekofyear("1997-11-31 23:59:59.000001");
+# This will give a warning
+select datediff("1997-11-31 23:59:59.000001","1997-12-31");
+select datediff("1997-11-30 23:59:59.000001",null);
+
+select weekofyear("1997-11-30 23:59:59.000001");
+select makedate(03,1);
+select makedate('0003',1);
select makedate(1997,1);
select makedate(1997,0);
select makedate(9999,365);
select makedate(9999,366);
+select makedate(100,1);
#Time functions
@@ -110,7 +119,8 @@ insert into test values
SELECT ADDTIME(t1,t2) As ttt, ADDTIME(t2, t3) As qqq from test;
# PS doesn't support fractional seconds
--disable_ps_protocol
-SELECT TIMEDIFF(t1,t4) As ttt, TIMEDIFF(t2, t3) As qqq from test;
+SELECT TIMEDIFF(t1, t4) As ttt, TIMEDIFF(t2, t3) As qqq,
+ TIMEDIFF(t3, t2) As eee, TIMEDIFF(t2, t4) As rrr from test;
--enable_ps_protocol
drop table t1, test;
diff --git a/mysql-test/t/func_set.test b/mysql-test/t/func_set.test
index c003826ff5a..710b9b90a05 100644
--- a/mysql-test/t/func_set.test
+++ b/mysql-test/t/func_set.test
@@ -18,6 +18,8 @@ select export_set(9,"Y","N","-",5),export_set(9,"Y","N"),export_set(9,"Y","N",""
# Wrong usage of functions
#
select elt(2,1),field(NULL,"a","b","c");
+select field("b","a",NULL),field(1,0,NULL)+0,field(1.0,0.0,NULL)+0.0,field(1.0e1,0.0e1,NULL)+0.0e1;
+select field(NULL,"a",NULL),field(NULL,0,NULL)+0,field(NULL,0.0,NULL)+0.0,field(NULL,0.0e1,NULL)+0.0e1;
select find_in_set("","a,b,c"),find_in_set("","a,b,c,"),find_in_set("",",a,b,c");
select find_in_set("abc","abc"),find_in_set("ab","abc"),find_in_set("abcd","abc");
select interval(null, 1, 10, 100);
diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test
index 5897674d1d4..e04276fa305 100644
--- a/mysql-test/t/func_str.test
+++ b/mysql-test/t/func_str.test
@@ -3,7 +3,7 @@
# Testing string functions
--disable_warnings
-drop table if exists t1;
+drop table if exists t1,t2;
--enable_warnings
set names latin1;
@@ -15,9 +15,15 @@ select bit_length('\n\t\r\b\0\_\%\\');
select char_length('\n\t\r\b\0\_\%\\');
select length(_latin1'\n\t\n\b\0\\_\\%\\');
select concat('monty',' was here ','again'),length('hello'),char(ascii('h')),ord('h');
+select hex(char(256));
select locate('he','hello'),locate('he','hello',2),locate('lo','hello',2) ;
select instr('hello','HE'), instr('hello',binary 'HE'), instr(binary 'hello','HE');
select position(binary 'll' in 'hello'),position('a' in binary 'hello');
+#
+# Bug#11728 string function LEFT,
+# strange undocumented behaviour, strict mode
+#
+select left('hello',null), right('hello',null);
select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5) ;
select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) ;
select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1);
@@ -64,6 +70,7 @@ select substring_index('the king of the the hill','the',2);
select substring_index('the king of the the hill','the',3);
select concat(':',ltrim(' left '),':',rtrim(' right '),':');
+select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':');
select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':');
select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':');
select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':');
@@ -166,7 +173,7 @@ CREATE TABLE t1 (
program int(10) unsigned default NULL,
bugdesc text,
created datetime default NULL,
- modified timestamp(14) NOT NULL,
+ modified timestamp NOT NULL,
bugstatus int(10) unsigned default NULL,
submitter int(10) unsigned default NULL
) ENGINE=MyISAM;
@@ -282,7 +289,7 @@ select FIELD('b','A' COLLATE latin1_bin,'B');
select FIELD(_latin2'b','A','B');
--error 1270
select FIELD('b',_latin2'A','B');
-select FIELD('b',_latin2'A','B',1);
+select FIELD('1',_latin2'3','2',1);
select POSITION(_latin1'B' IN _latin1'abcd');
select POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin);
@@ -293,18 +300,26 @@ select POSITION(_latin1'B' COLLATE latin1_general_ci IN _latin1'abcd' COLLATE la
select POSITION(_latin1'B' IN _latin2'abcd');
select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d');
---fix this:
---select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d' COLLATE latin1_bin);
---select FIND_IN_SET(_latin1'B' COLLATE latin1_bin,_latin1'a,b,c,d');
+
+# fix this:
+--disable_parsing
+select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d' COLLATE latin1_bin);
+select FIND_IN_SET(_latin1'B' COLLATE latin1_bin,_latin1'a,b,c,d');
+--enable_parsing
+
--error 1267
select FIND_IN_SET(_latin1'B' COLLATE latin1_general_ci,_latin1'a,b,c,d' COLLATE latin1_bin);
--error 1267
select FIND_IN_SET(_latin1'B',_latin2'a,b,c,d');
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2);
---fix this:
---select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_bin,_latin1'd',2);
---select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd' COLLATE latin1_bin,2);
+
+# fix this:
+--disable_parsing
+select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_bin,_latin1'd',2);
+select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd' COLLATE latin1_bin,2);
+--enable_parsing
+
--error 1267
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin2'd',2);
--error 1267
@@ -466,6 +481,7 @@ SELECT lpad(12345, 5, "#");
#
SELECT conv(71, 10, 36), conv('1Z', 36, 10);
+SELECT conv(71, 10, 37), conv('1Z', 37, 10), conv(0,1,10),conv(0,0,10), conv(0,-1,10);
#
# Bug in SUBSTRING when mixed with CONCAT and ORDER BY (Bug #3089)
@@ -511,6 +527,8 @@ drop table t1;
#
select trim(null from 'kate') as "must_be_null";
select trim('xyz' from null) as "must_be_null";
+select trim(leading NULL from 'kate') as "must_be_null";
+select trim(trailing NULL from 'xyz') as "must_be_null";
#
# Bug #7751 - conversion for a bigint unsigned constant
@@ -560,7 +578,6 @@ SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id
DROP TABLE t1, t2;
-
#
# Bug #10944: Mishandling of NULL arguments in FIELD()
#
@@ -722,3 +739,401 @@ explain extended select decode(f1,'zxcv') as 'enc' from t1;
drop table t1;
--echo End of 4.1 tests
+
+#
+# Bug #13361: SELECT FORMAT(<decimal field with null>, 2) crashes
+#
+create table t1 (d decimal default null);
+insert into t1 values (null);
+select format(d, 2) from t1;
+drop table t1;
+
+#
+# Bug #14676: substring_index() returns incorrect results
+#
+create table t1 (c varchar(40));
+insert into t1 values ('y,abc'),('y,abc');
+select c, substring_index(lcase(c), @q:=',', -1) as res from t1;
+drop table t1;
+
+#
+# Bug #17043: Casting trimmed string to decimal loses precision
+#
+select cast(rtrim(' 20.06 ') as decimal(19,2));
+select cast(ltrim(' 20.06 ') as decimal(19,2));
+select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
+
+#
+# Bug #13975: "same string" + 0 has 2 different results
+#
+select conv("18383815659218730760",10,10) + 0;
+select "18383815659218730760" + 0;
+
+#
+# Bug #21698: substitution of a string field for a constant under a function
+#
+
+CREATE TABLE t1 (code varchar(10));
+INSERT INTO t1 VALUES ('a12'), ('A12'), ('a13');
+
+SELECT ASCII(code), code FROM t1 WHERE code='A12';
+SELECT ASCII(code), code FROM t1 WHERE code='A12' AND ASCII(code)=65;
+
+INSERT INTO t1 VALUES ('a12 '), ('A12 ');
+
+SELECT LENGTH(code), code FROM t1 WHERE code='A12';
+SELECT LENGTH(code), code FROM t1 WHERE code='A12' AND LENGTH(code)=5;
+
+ALTER TABLE t1 ADD INDEX (code);
+CREATE TABLE t2 (id varchar(10) PRIMARY KEY);
+INSERT INTO t2 VALUES ('a11'), ('a12'), ('a13'), ('a14');
+
+SELECT * FROM t1 INNER JOIN t2 ON t1.code=t2.id
+ WHERE t2.id='a12' AND (LENGTH(code)=5 OR code < 'a00');
+EXPLAIN EXTENDED
+SELECT * FROM t1 INNER JOIN t2 ON code=id
+ WHERE id='a12' AND (LENGTH(code)=5 OR code < 'a00');
+
+DROP TABLE t1,t2;
+
+
+#
+# Bug #10963
+# 4294967296 18446744073709551616
+
+select locate('he','hello',-2);
+select locate('lo','hello',-4294967295);
+select locate('lo','hello',4294967295);
+select locate('lo','hello',-4294967296);
+select locate('lo','hello',4294967296);
+select locate('lo','hello',-4294967297);
+select locate('lo','hello',4294967297);
+select locate('lo','hello',-18446744073709551615);
+select locate('lo','hello',18446744073709551615);
+select locate('lo','hello',-18446744073709551616);
+select locate('lo','hello',18446744073709551616);
+select locate('lo','hello',-18446744073709551617);
+select locate('lo','hello',18446744073709551617);
+
+select left('hello', 10);
+select left('hello', 0);
+select left('hello', -1);
+select left('hello', -4294967295);
+select left('hello', 4294967295);
+select left('hello', -4294967296);
+select left('hello', 4294967296);
+select left('hello', -4294967297);
+select left('hello', 4294967297);
+select left('hello', -18446744073709551615);
+select left('hello', 18446744073709551615);
+select left('hello', -18446744073709551616);
+select left('hello', 18446744073709551616);
+select left('hello', -18446744073709551617);
+select left('hello', 18446744073709551617);
+
+select right('hello', 10);
+select right('hello', 0);
+select right('hello', -1);
+select right('hello', -4294967295);
+select right('hello', 4294967295);
+select right('hello', -4294967296);
+select right('hello', 4294967296);
+select right('hello', -4294967297);
+select right('hello', 4294967297);
+select right('hello', -18446744073709551615);
+select right('hello', 18446744073709551615);
+select right('hello', -18446744073709551616);
+select right('hello', 18446744073709551616);
+select right('hello', -18446744073709551617);
+select right('hello', 18446744073709551617);
+
+select substring('hello', 2, -1);
+
+select substring('hello', -1, 1);
+select substring('hello', -2, 1);
+select substring('hello', -4294967295, 1);
+select substring('hello', 4294967295, 1);
+select substring('hello', -4294967296, 1);
+select substring('hello', 4294967296, 1);
+select substring('hello', -4294967297, 1);
+select substring('hello', 4294967297, 1);
+select substring('hello', -18446744073709551615, 1);
+select substring('hello', 18446744073709551615, 1);
+select substring('hello', -18446744073709551616, 1);
+select substring('hello', 18446744073709551616, 1);
+select substring('hello', -18446744073709551617, 1);
+select substring('hello', 18446744073709551617, 1);
+select substring('hello', 1, -1);
+select substring('hello', 1, -4294967295);
+select substring('hello', 1, 4294967295);
+select substring('hello', 1, -4294967296);
+select substring('hello', 1, 4294967296);
+select substring('hello', 1, -4294967297);
+select substring('hello', 1, 4294967297);
+select substring('hello', 1, -18446744073709551615);
+select substring('hello', 1, 18446744073709551615);
+select substring('hello', 1, -18446744073709551616);
+select substring('hello', 1, 18446744073709551616);
+select substring('hello', 1, -18446744073709551617);
+select substring('hello', 1, 18446744073709551617);
+select substring('hello', -1, -1);
+select substring('hello', -4294967295, -4294967295);
+select substring('hello', 4294967295, 4294967295);
+select substring('hello', -4294967296, -4294967296);
+select substring('hello', 4294967296, 4294967296);
+select substring('hello', -4294967297, -4294967297);
+select substring('hello', 4294967297, 4294967297);
+select substring('hello', -18446744073709551615, -18446744073709551615);
+select substring('hello', 18446744073709551615, 18446744073709551615);
+select substring('hello', -18446744073709551616, -18446744073709551616);
+select substring('hello', 18446744073709551616, 18446744073709551616);
+select substring('hello', -18446744073709551617, -18446744073709551617);
+select substring('hello', 18446744073709551617, 18446744073709551617);
+
+select insert('hello', -1, 1, 'hi');
+select insert('hello', -4294967295, 1, 'hi');
+select insert('hello', 4294967295, 1, 'hi');
+select insert('hello', -4294967296, 1, 'hi');
+select insert('hello', 4294967296, 1, 'hi');
+select insert('hello', -4294967297, 1, 'hi');
+select insert('hello', 4294967297, 1, 'hi');
+select insert('hello', -18446744073709551615, 1, 'hi');
+select insert('hello', 18446744073709551615, 1, 'hi');
+select insert('hello', -18446744073709551616, 1, 'hi');
+select insert('hello', 18446744073709551616, 1, 'hi');
+select insert('hello', -18446744073709551617, 1, 'hi');
+select insert('hello', 18446744073709551617, 1, 'hi');
+select insert('hello', 1, -1, 'hi');
+select insert('hello', 1, -4294967295, 'hi');
+select insert('hello', 1, 4294967295, 'hi');
+select insert('hello', 1, -4294967296, 'hi');
+select insert('hello', 1, 4294967296, 'hi');
+select insert('hello', 1, -4294967297, 'hi');
+select insert('hello', 1, 4294967297, 'hi');
+select insert('hello', 1, -18446744073709551615, 'hi');
+select insert('hello', 1, 18446744073709551615, 'hi');
+select insert('hello', 1, -18446744073709551616, 'hi');
+select insert('hello', 1, 18446744073709551616, 'hi');
+select insert('hello', 1, -18446744073709551617, 'hi');
+select insert('hello', 1, 18446744073709551617, 'hi');
+select insert('hello', -1, -1, 'hi');
+select insert('hello', -4294967295, -4294967295, 'hi');
+select insert('hello', 4294967295, 4294967295, 'hi');
+select insert('hello', -4294967296, -4294967296, 'hi');
+select insert('hello', 4294967296, 4294967296, 'hi');
+select insert('hello', -4294967297, -4294967297, 'hi');
+select insert('hello', 4294967297, 4294967297, 'hi');
+select insert('hello', -18446744073709551615, -18446744073709551615, 'hi');
+select insert('hello', 18446744073709551615, 18446744073709551615, 'hi');
+select insert('hello', -18446744073709551616, -18446744073709551616, 'hi');
+select insert('hello', 18446744073709551616, 18446744073709551616, 'hi');
+select insert('hello', -18446744073709551617, -18446744073709551617, 'hi');
+select insert('hello', 18446744073709551617, 18446744073709551617, 'hi');
+
+select repeat('hello', -1);
+select repeat('hello', -4294967295);
+select repeat('hello', 4294967295);
+select repeat('hello', -4294967296);
+select repeat('hello', 4294967296);
+select repeat('hello', -4294967297);
+select repeat('hello', 4294967297);
+select repeat('hello', -18446744073709551615);
+select repeat('hello', 18446744073709551615);
+select repeat('hello', -18446744073709551616);
+select repeat('hello', 18446744073709551616);
+select repeat('hello', -18446744073709551617);
+select repeat('hello', 18446744073709551617);
+
+select space(-1);
+select space(-4294967295);
+select space(4294967295);
+select space(-4294967296);
+select space(4294967296);
+select space(-4294967297);
+select space(4294967297);
+select space(-18446744073709551615);
+select space(18446744073709551615);
+select space(-18446744073709551616);
+select space(18446744073709551616);
+select space(-18446744073709551617);
+select space(18446744073709551617);
+
+select rpad('hello', -1, '1');
+select rpad('hello', -4294967295, '1');
+select rpad('hello', 4294967295, '1');
+select rpad('hello', -4294967296, '1');
+select rpad('hello', 4294967296, '1');
+select rpad('hello', -4294967297, '1');
+select rpad('hello', 4294967297, '1');
+select rpad('hello', -18446744073709551615, '1');
+select rpad('hello', 18446744073709551615, '1');
+select rpad('hello', -18446744073709551616, '1');
+select rpad('hello', 18446744073709551616, '1');
+select rpad('hello', -18446744073709551617, '1');
+select rpad('hello', 18446744073709551617, '1');
+
+select lpad('hello', -1, '1');
+select lpad('hello', -4294967295, '1');
+select lpad('hello', 4294967295, '1');
+select lpad('hello', -4294967296, '1');
+select lpad('hello', 4294967296, '1');
+select lpad('hello', -4294967297, '1');
+select lpad('hello', 4294967297, '1');
+select lpad('hello', -18446744073709551615, '1');
+select lpad('hello', 18446744073709551615, '1');
+select lpad('hello', -18446744073709551616, '1');
+select lpad('hello', 18446744073709551616, '1');
+select lpad('hello', -18446744073709551617, '1');
+select lpad('hello', 18446744073709551617, '1');
+
+
+#
+# BUG#17047: CHAR() and IN() can return NULL without signaling NULL
+# result
+#
+SET @orig_sql_mode = @@SQL_MODE;
+SET SQL_MODE=traditional;
+
+SELECT CHAR(0xff,0x8f USING utf8);
+SELECT CHAR(0xff,0x8f USING utf8) IS NULL;
+
+SET SQL_MODE=@orig_sql_mode;
+
+#
+# Bug #24947: problem with some string function with unsigned int parameters
+#
+
+select substring('abc', cast(2 as unsigned int));
+select repeat('a', cast(2 as unsigned int));
+select rpad('abc', cast(5 as unsigned integer), 'x');
+select lpad('abc', cast(5 as unsigned integer), 'x');
+
+#
+# Bug#15757: Wrong SUBSTRING() result when a tmp table was employed.
+#
+create table t1(f1 longtext);
+insert into t1 values ("123"),("456");
+select substring(f1,1,1) from t1 group by 1;
+create table t2(f1 varchar(3));
+insert into t1 values ("123"),("456");
+select substring(f1,4,1), substring(f1,-4,1) from t2;
+drop table t1,t2;
+
+#
+# Bug #25197 :repeat function returns null when using table field directly as count
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE `t1` (
+ `id` varchar(20) NOT NULL,
+ `tire` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`id`)
+);
+
+INSERT INTO `t1` (`id`, `tire`) VALUES ('A', 0), ('B', 1),('C', 2);
+
+SELECT REPEAT( '#', tire ) AS A,
+ REPEAT( '#', tire % 999 ) AS B, tire FROM `t1`;
+
+SELECT REPEAT('0', CAST(0 AS UNSIGNED));
+SELECT REPEAT('0', -2);
+SELECT REPEAT('0', 2);
+
+DROP TABLE t1;
+
+#
+# Bug #26537: UNHEX() IS NULL comparison fails
+#
+SELECT UNHEX('G');
+SELECT UNHEX('G') IS NULL;
+
+#
+# Bug #26281: INSERT() function mishandles NUL on boundary condition
+#
+SELECT INSERT('abc', 3, 3, '1234');
+SELECT INSERT('abc', 4, 3, '1234');
+SELECT INSERT('abc', 5, 3, '1234');
+SELECT INSERT('abc', 6, 3, '1234');
+
+#
+# Bug #27530: Grouping on crc32, or create table select crc32
+#
+CREATE TABLE t1 (a INT);
+CREATE VIEW v1 AS SELECT CRC32(a) AS C FROM t1;
+
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+SELECT CRC32(a), COUNT(*) FROM t1 GROUP BY 1;
+SELECT CRC32(a), COUNT(*) FROM t1 GROUP BY 1 ORDER BY 1;
+SELECT * FROM (SELECT CRC32(a) FROM t1) t2;
+CREATE TABLE t2 SELECT CRC32(a) FROM t1;
+desc t2;
+SELECT * FROM v1;
+SELECT * FROM (SELECT * FROM v1) x;
+
+DROP TABLE t1, t2;
+DROP VIEW v1;
+
+#
+# Bug #27932: LOCATE with argument evaluated to NULL
+#
+
+SELECT LOCATE('foo', NULL) FROM DUAL;
+SELECT LOCATE(NULL, 'o') FROM DUAL;
+SELECT LOCATE(NULL, NULL) FROM DUAL;
+SELECT LOCATE('foo', NULL) IS NULL FROM DUAL;
+SELECT LOCATE(NULL, 'o') IS NULL FROM DUAL;
+SELECT LOCATE(NULL, NULL) IS NULL FROM DUAL;
+SELECT ISNULL(LOCATE('foo', NULL)) FROM DUAL;
+SELECT ISNULL(LOCATE(NULL, 'o')) FROM DUAL;
+SELECT ISNULL(LOCATE(NULL, NULL)) FROM DUAL;
+SELECT LOCATE('foo', NULL) <=> NULL FROM DUAL;
+SELECT LOCATE(NULL, 'o') <=> NULL FROM DUAL;
+SELECT LOCATE(NULL, NULL) <=> NULL FROM DUAL;
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a varchar(10), p varchar(10));
+
+INSERT INTO t1 VALUES (1, 'foo', 'o');
+INSERT INTO t1 VALUES (2, 'foo', NULL);
+INSERT INTO t1 VALUES (3, NULL, 'o');
+INSERT INTO t1 VALUES (4, NULL, NULL);
+
+SELECT id, LOCATE(a,p) FROM t1;
+SELECT id, LOCATE(a,p) IS NULL FROM t1;
+SELECT id, ISNULL(LOCATE(a,p)) FROM t1;
+SELECT id, LOCATE(a,p) <=> NULL FROM t1;
+SELECT id FROM t1 WHERE LOCATE(a,p) IS NULL;
+SELECT id FROM t1 WHERE LOCATE(a,p) <=> NULL;
+
+DROP TABLE t1;
+
+#
+# Bug #27130: SUBSTR with UNSIGNED 0 as the last argument
+#
+
+SELECT SUBSTR('foo',1,0) FROM DUAL;
+SELECT SUBSTR('foo',1,CAST(0 AS SIGNED)) FROM DUAL;
+SELECT SUBSTR('foo',1,CAST(0 AS UNSIGNED)) FROM DUAL;
+
+CREATE TABLE t1 (a varchar(10), len int unsigned);
+INSERT INTO t1 VALUES ('bar', 2), ('foo', 0);
+
+SELECT SUBSTR(a,1,len) FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug #28850: Potential bugs related to the return type of the CHAR function
+#
+
+CREATE TABLE t1 AS SELECT CHAR(0x414243) as c1;
+SELECT HEX(c1) from t1;
+DROP TABLE t1;
+
+CREATE VIEW v1 AS SELECT CHAR(0x414243) as c1;
+SELECT HEX(c1) from v1;
+DROP VIEW v1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_test.test b/mysql-test/t/func_test.test
index 99519b54ca6..77bf3be5e72 100644
--- a/mysql-test/t/func_test.test
+++ b/mysql-test/t/func_test.test
@@ -140,4 +140,23 @@ select mod(12.0, NULL) as 'NULL';
select mod(NULL, 2) as 'NULL';
select mod(NULL, 2.0) as 'NULL';
+
+#
+# Bug#6726: NOT BETWEEN parse failure
+#
+create table t1 (a int, b int);
+insert into t1 values (1,2), (2,3), (3,4), (4,5);
+select * from t1 where a not between 1 and 2;
+select * from t1 where a not between 1 and 2 and b not between 3 and 4;
+drop table t1;
+
+#
+# Test for bug #12791: one of the arguments of LEAST/GREATEST is NULL
+#
+
+SELECT GREATEST(1,NULL) FROM DUAL;
+SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL;
+SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL;
+SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL;
+
# End of 4.1 tests
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index 2fb5ea04a19..c0a449ac3f4 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -5,6 +5,9 @@
drop table if exists t1,t2,t3;
--enable_warnings
+# Set timezone to GMT-3, to make it possible to use "interval 3 hour"
+set time_zone="+03:00";
+
select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days(date_add(curdate(), interval 1 day))-to_days(curdate()),weekday("1997-11-29");
select period_add("9602",-12),period_diff(199505,"9404") ;
@@ -140,6 +143,22 @@ select extract(SECOND FROM "1999-01-02 10:11:12");
select extract(MONTH FROM "2001-02-00");
#
+# test EXTRACT QUARTER (Bug #18100)
+#
+
+SELECT EXTRACT(QUARTER FROM '2004-01-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-02-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-03-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-04-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-05-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-06-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-07-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-08-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-09-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-10-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-11-15') AS quarter;
+SELECT EXTRACT(QUARTER FROM '2004-12-15') AS quarter;
+#
# MySQL Bugs: #12356: DATE_SUB or DATE_ADD incorrectly returns null
#
SELECT DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
@@ -217,7 +236,7 @@ drop table t1;
CREATE TABLE t1 ( start datetime default NULL);
INSERT INTO t1 VALUES ('2002-10-21 00:00:00'),('2002-10-28 00:00:00'),('2002-11-04 00:00:00');
-CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL);
+CREATE TABLE t2 ( ctime1 timestamp NOT NULL, ctime2 timestamp NOT NULL);
INSERT INTO t2 VALUES (20021029165106,20021105164731);
CREATE TABLE t3 (ctime1 char(19) NOT NULL, ctime2 char(19) NOT NULL);
INSERT INTO t3 VALUES ("2002-10-29 16:51:06","2002-11-05 16:47:31");
@@ -312,6 +331,64 @@ select date_add(date,INTERVAL "1 1" YEAR_MONTH) from t1;
select date_add(date,INTERVAL "1:1:1" HOUR_SECOND) from t1;
select date_add(date,INTERVAL "1 1:1" DAY_MINUTE) from t1;
select date_add(date,INTERVAL "1 1:1:1" DAY_SECOND) from t1;
+select date_add(date,INTERVAL "1" WEEK) from t1;
+select date_add(date,INTERVAL "1" QUARTER) from t1;
+select timestampadd(MINUTE, 1, date) from t1;
+select timestampadd(WEEK, 1, date) from t1;
+select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
+# Prepared statements doesn't support FRAC_SECOND yet
+--disable_ps_protocol
+select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1;
+--enable_ps_protocol
+
+select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a;
+select timestampdiff(YEAR, '2002-05-01', '2001-01-01') as a;
+select timestampdiff(QUARTER, '2002-05-01', '2001-01-01') as a;
+select timestampdiff(MONTH, '2000-03-28', '2000-02-29') as a;
+select timestampdiff(MONTH, '1991-03-28', '2000-02-29') as a;
+select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a;
+select timestampdiff(SQL_TSI_HOUR, '2001-02-01', '2001-05-01') as a;
+select timestampdiff(SQL_TSI_DAY, '2001-02-01', '2001-05-01') as a;
+select timestampdiff(SQL_TSI_MINUTE, '2001-02-01 12:59:59', '2001-05-01 12:58:59') as a;
+select timestampdiff(SQL_TSI_SECOND, '2001-02-01 12:59:59', '2001-05-01 12:58:58') as a;
+select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a;
+
+select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1,
+ timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2,
+ timestampdiff(SQL_TSI_DAY, '1996-02-01', '1996-03-01') as a3,
+ timestampdiff(SQL_TSI_DAY, '2000-02-01', '2000-03-01') as a4;
+
+# bug 16226
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:27');
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:28');
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:29');
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:27');
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:28');
+SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:29');
+
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:27');
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:28');
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:29');
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:27');
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:28');
+SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:29');
+
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:27');
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:28');
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:29');
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:27');
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:28');
+SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:29');
+
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:27');
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:28');
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:29');
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:27');
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:28');
+SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:29');
+
+# end of bug
+
select date_add(time,INTERVAL 1 SECOND) from t1;
drop table t1;
@@ -336,6 +413,7 @@ select last_day("1997-12-1")+0.0;
# Test SAPDB UTC_% functions. This part is TZ dependant (It is supposed that
# TZ variable set to GMT-3
+
select strcmp(date_sub(localtimestamp(), interval 3 hour), utc_timestamp())=0;
select strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%T"), utc_time())=0;
select strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%Y-%m-%d"), utc_date())=0;
@@ -345,11 +423,11 @@ select strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0;
explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_days(to_days("960101")),dayofmonth("1997-01-02"), month("1997-01-02"), monthname("1972-03-04"),dayofyear("0000-00-00"),HOUR("1997-03-03 23:03:22"),MINUTE("23:03:22"),SECOND(230322),QUARTER(980303),WEEK("1998-03-03"),yearweek("2000-01-01",1),week(19950101,1),year("98-02-03"),weekday(curdate())-weekday(now()),dayname("1962-03-03"),unix_timestamp(),sec_to_time(time_to_sec("0:30:47")/6.21),curtime(),utc_time(),curdate(),utc_date(),utc_timestamp(),date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w"),from_unixtime(unix_timestamp("1994-03-02 10:11:12")),"1997-12-31 23:59:59" + INTERVAL 1 SECOND,"1998-01-01 00:00:00" - INTERVAL 1 SECOND,INTERVAL 1 DAY + "1997-12-31", extract(YEAR FROM "1999-01-02 10:11:12"),date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND);
-SET @TMP=NOW();
+SET @TMP='2007-08-01 12:22:49';
CREATE TABLE t1 (d DATETIME);
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
-INSERT INTO t1 VALUES (NOW());
+INSERT INTO t1 VALUES ('2007-08-01 12:22:59');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:01');
+INSERT INTO t1 VALUES ('2007-08-01 12:23:20');
SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
DROP TABLE t1;
@@ -394,7 +472,7 @@ select f3 from t1 where f3 between cast("2006-1-1 12:1:1" as datetime) and cast(
select f3 from t1 where timestamp(f3) between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
select f1 from t1 where cast("2006-1-1" as date) between f1 and f3;
select f1 from t1 where cast("2006-1-1" as date) between date(f1) and date(f3);
-select f1 from t1 where cast("2006-1-1" as date) between f1 and 'zzz';
+select f1 from t1 where cast("2006-1-1" as date) between f1 and cast('zzz' as date);
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
select f1 from t1 where makedate(2006,2) between date(f1) and date(f3);
drop table t1;
@@ -467,6 +545,16 @@ DROP TABLE testBug8868;
SET NAMES DEFAULT;
+#
+# Bug #31160: MAKETIME() crashes server when returning NULL in ORDER BY using
+# filesort
+#
+CREATE TABLE t1 (
+ a TIMESTAMP
+);
+INSERT INTO t1 VALUES (now()), (now());
+SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
+DROP TABLE t1;
#
# Bug #19844 time_format in Union truncates values
@@ -500,3 +588,203 @@ select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
week(20061108), week(20061108.01), week(20061108085411.000002);
--echo End of 4.1 tests
+
+explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
+ timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
+
+#
+# Bug #10568
+#
+
+select last_day('2005-00-00');
+select last_day('2005-00-01');
+select last_day('2005-01-00');
+
+#
+# Bug #10590: %h, %I, and %l format specifies should all return results in
+# the 0-11 range
+#
+select time_format('100:00:00', '%H %k %h %I %l');
+
+#
+# Bug #12562: Make SYSDATE behave like it does in Oracle: always the current
+# time, regardless of magic to make NOW() always the same for the
+# entirety of a statement.
+create table t1 (a timestamp default '2005-05-05 01:01:01',
+ b timestamp default '2005-05-05 01:01:01');
+delimiter //;
+create function t_slow_sysdate() returns timestamp
+begin
+ do sleep(2);
+ return sysdate();
+end;
+//
+
+insert into t1 set a = sysdate(), b = t_slow_sysdate();//
+
+create trigger t_before before insert on t1
+for each row begin
+ set new.b = t_slow_sysdate();
+end
+//
+
+delimiter ;//
+
+insert into t1 set a = sysdate();
+
+select a != b from t1;
+
+drop trigger t_before;
+drop function t_slow_sysdate;
+drop table t1;
+
+create table t1 (a datetime, i int, b datetime);
+insert into t1 select sysdate(), sleep(1), sysdate() from dual;
+select a != b from t1;
+drop table t1;
+
+delimiter //;
+create procedure t_sysdate()
+begin
+ select sysdate() into @a;
+ do sleep(2);
+ select sysdate() into @b;
+ select @a != @b;
+end;
+//
+delimiter ;//
+call t_sysdate();
+drop procedure t_sysdate;
+
+#
+# Bug #13534: timestampdiff() returned incorrect results across leap years
+#
+select timestampdiff(month,'2004-09-11','2004-09-11');
+select timestampdiff(month,'2004-09-11','2005-09-11');
+select timestampdiff(month,'2004-09-11','2006-09-11');
+select timestampdiff(month,'2004-09-11','2007-09-11');
+select timestampdiff(month,'2005-09-11','2004-09-11');
+select timestampdiff(month,'2005-09-11','2003-09-11');
+
+select timestampdiff(month,'2004-02-28','2005-02-28');
+select timestampdiff(month,'2004-02-29','2005-02-28');
+select timestampdiff(month,'2004-02-28','2005-02-28');
+select timestampdiff(month,'2004-03-29','2005-03-28');
+select timestampdiff(month,'2003-02-28','2004-02-29');
+select timestampdiff(month,'2003-02-28','2005-02-28');
+
+select timestampdiff(month,'1999-09-11','2001-10-10');
+select timestampdiff(month,'1999-09-11','2001-9-11');
+
+select timestampdiff(year,'1999-09-11','2001-9-11');
+select timestampdiff(year,'2004-02-28','2005-02-28');
+select timestampdiff(year,'2004-02-29','2005-02-28');
+
+#
+# Bug #18618: BETWEEN for dates with the second argument being a constant
+# expression and the first and the third arguments being fields
+#
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, day date);
+CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, day date);
+
+INSERT INTO t1 VALUES
+ (1, '2005-06-01'), (2, '2005-02-01'), (3, '2005-07-01');
+INSERT INTO t2 VALUES
+ (1, '2005-08-01'), (2, '2005-06-15'), (3, '2005-07-15');
+
+SELECT * FROM t1, t2
+ WHERE t1.day BETWEEN
+ '2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+SELECT * FROM t1, t2
+ WHERE CAST(t1.day AS DATE) BETWEEN
+ '2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+
+DROP TABLE t1,t2;
+
+# End of 5.0 tests
+
+# Restore timezone to default
+set time_zone= @@global.time_zone;
+
+#
+# 21913: DATE_FORMAT() Crashes mysql server if I use it through
+# mysql-connector-j driver.
+#
+
+SET NAMES latin1;
+SET character_set_results = NULL;
+SHOW VARIABLES LIKE 'character_set_results';
+
+CREATE TABLE testBug8868 (field1 DATE, field2 VARCHAR(32) CHARACTER SET BINARY);
+INSERT INTO testBug8868 VALUES ('2006-09-04', 'abcd');
+
+SELECT DATE_FORMAT(field1,'%b-%e %l:%i%p') as fmtddate, field2 FROM testBug8868;
+
+DROP TABLE testBug8868;
+
+SET NAMES DEFAULT;
+
+#
+# Bug #22229: bug in DATE_ADD()
+#
+
+select str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
+
+#
+# Bug #21103: DATE column not compared as DATE
+#
+
+create table t1 (field DATE);
+insert into t1 values ('2006-11-06');
+select * from t1 where field < '2006-11-06 04:08:36.0';
+select * from t1 where field = '2006-11-06 04:08:36.0';
+select * from t1 where field = '2006-11-06';
+select * from t1 where CAST(field as DATETIME) < '2006-11-06 04:08:36.0';
+select * from t1 where CAST(field as DATE) < '2006-11-06 04:08:36.0';
+drop table t1;
+
+#
+# Bug #25643: SEC_TO_TIME function problem
+#
+CREATE TABLE t1 (a int, t1 time, t2 time, d date, PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1, '10:00:00', NULL, NULL),
+ (2, '11:00:00', '11:15:00', '1972-02-06');
+SELECT t1, t2, SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ), QUARTER(d)
+ FROM t1;
+SELECT t1, t2, SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ), QUARTER(d)
+ FROM t1 ORDER BY a DESC;
+DROP TABLE t1;
+
+#
+# Bug #20293: group by cuts off value from time_format
+#
+# Check if using GROUP BY with TIME_FORMAT() produces correct results
+
+SELECT TIME_FORMAT(SEC_TO_TIME(a),"%H:%i:%s") FROM (SELECT 3020399 AS a UNION SELECT 3020398 ) x GROUP BY 1;
+
+#
+# Bug#28875 Conversion between ASCII and LATIN1 charsets does not function
+#
+set names latin1;
+create table t1 (a varchar(15) character set ascii not null);
+insert into t1 values ('070514-000000');
+# Conversion of date_format() result to ASCII
+# is safe with the default locale en_US
+--replace_column 1 #
+select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1;
+# Error for swe7: it is not ASCII compatible
+set names swe7;
+--error 1267
+select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1;
+set names latin1;
+# Conversion of date_format() result to ASCII
+# is not safe with the non-default locale fr_FR
+# because month and day names can have accented characters
+set lc_time_names=fr_FR;
+--error 1267
+select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1;
+set lc_time_names=en_US;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/func_timestamp.test b/mysql-test/t/func_timestamp.test
index e1bb7e878ee..05a91b06d28 100644
--- a/mysql-test/t/func_timestamp.test
+++ b/mysql-test/t/func_timestamp.test
@@ -6,6 +6,9 @@
drop table if exists t1;
--enable_warnings
+# Set timezone to GMT-3, to make it possible to use "interval 3 hour"
+set time_zone="+03:00";
+
create table t1 (Zeit time, Tag tinyint not null, Monat tinyint not null,
Jahr smallint not null, index(Tag), index(Monat), index(Jahr) );
insert into t1 values ("09:26:00",16,9,1998),("09:26:00",16,9,1998);
@@ -15,3 +18,6 @@ FROM t1;
drop table t1;
# End of 4.1 tests
+
+# Restore timezone to default
+set time_zone= @@global.time_zone;
diff --git a/mysql-test/t/gis-rtree.test b/mysql-test/t/gis-rtree.test
index b7d0f797e37..e68e5039adf 100644
--- a/mysql-test/t/gis-rtree.test
+++ b/mysql-test/t/gis-rtree.test
@@ -120,7 +120,6 @@ INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('
drop table t1;
CREATE TABLE t1 (
- geoobjid INT NOT NULL,
line LINESTRING NOT NULL,
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
name VARCHAR(32),
@@ -169,7 +168,7 @@ drop table t1;
CREATE TABLE t1 (st varchar(100));
INSERT INTO t1 VALUES ("Fake string");
CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
---error 1105
+--error 1416
INSERT INTO t2 SELECT GeomFromText(st) FROM t1;
drop table t1, t2;
@@ -835,3 +834,51 @@ insert into t1 values (PointFromWKB(POINT(1.94906280228e+289, 1.2338789709327e-1
drop table t1;
# End of 4.1 tests
+
+#
+# bug #21790 (UNKNOWN ERROR on NULLs in RTree)
+#
+CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) );
+--error 1048
+INSERT INTO t1(foo) VALUES (NULL);
+--error 1416
+INSERT INTO t1() VALUES ();
+--error 1416
+INSERT INTO t1(foo) VALUES ('');
+DROP TABLE t1;
+
+#
+# Bug #23578: Corruption prevents Optimize table from working properly with a
+# spatial index
+#
+
+CREATE TABLE t1 (a INT AUTO_INCREMENT, b POINT NOT NULL, KEY (a), SPATIAL KEY (b));
+
+INSERT INTO t1 (b) VALUES (GeomFromText('POINT(1 2)'));
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+INSERT INTO t1 (b) SELECT b FROM t1;
+
+OPTIMIZE TABLE t1;
+DROP TABLE t1;
+
+
+#
+# Bug #29070: Error in spatial index
+#
+
+CREATE TABLE t1 (a INT, b GEOMETRY NOT NULL, SPATIAL KEY b(b));
+INSERT INTO t1 VALUES (1, GEOMFROMTEXT('LINESTRING(1102218.456 1,2000000 2)'));
+INSERT INTO t1 VALUES (2, GEOMFROMTEXT('LINESTRING(1102218.456 1,2000000 2)'));
+
+# must return the same number as the next select
+SELECT COUNT(*) FROM t1 WHERE
+ MBRINTERSECTS(b, GEOMFROMTEXT('LINESTRING(1 1,1102219 2)') );
+SELECT COUNT(*) FROM t1 IGNORE INDEX (b) WHERE
+ MBRINTERSECTS(b, GEOMFROMTEXT('LINESTRING(1 1,1102219 2)') );
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test
index cf5c3b31bc1..b7da7db1d76 100644
--- a/mysql-test/t/gis.test
+++ b/mysql-test/t/gis.test
@@ -165,9 +165,9 @@ explain extended select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimpl
create table t1 (a geometry not null);
insert into t1 values (GeomFromText('Point(1 2)'));
--- error 1105
+-- error 1416
insert into t1 values ('Garbage');
--- error 1105
+-- error 1416
insert IGNORE into t1 values ('Garbage');
alter table t1 add spatial index(a);
@@ -281,7 +281,7 @@ INSERT INTO t1 VALUES(GeomFromText('POINT(580848489 219587743)'));
INSERT INTO t1 VALUES(GeomFromText('POINT(11247614 782797569)'));
drop table t1;
-create table t1 select POINT(1,3);
+create table t1 select GeomFromWKB(POINT(1,3));
show create table t1;
drop table t1;
@@ -360,6 +360,18 @@ t1 where object_id=85984;
drop table t1;
+create table t1 (fl geometry not null);
+--error 1416
+insert into t1 values (1);
+--error 1416
+insert into t1 values (1.11);
+--error 1416
+insert into t1 values ("qwerty");
+--error 1048
+insert into t1 values (pointfromtext('point(1,1)'));
+
+drop table t1;
+
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
@@ -373,7 +385,7 @@ drop table t1;
create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b));
alter table t1 disable keys;
--error 1263
-load data infile '../../std_data/bad_gis_data.dat' into table t1;
+load data infile '../std_data_ln/bad_gis_data.dat' into table t1;
alter table t1 enable keys;
drop table t1;
@@ -428,3 +440,164 @@ select geomfromtext(col9,col89) as a from t1;
DROP TABLE t1;
--echo End of 4.1 tests
+
+#
+# Bug #12281 (Geometry: crash in trigger)
+#
+
+create table t1 (s1 geometry not null,s2 char(100));
+create trigger t1_bu before update on t1 for each row set new.s1 = null;
+--error 1048
+insert into t1 values (null,null);
+drop table t1;
+
+#
+# Bug #10499 (function creation with GEOMETRY datatype)
+#
+--disable_warnings
+drop procedure if exists fn3;
+--enable_warnings
+create function fn3 () returns point return GeomFromText("point(1 1)");
+show create function fn3;
+select astext(fn3());
+drop function fn3;
+
+#
+# Bug #12267 (primary key over GIS)
+#
+create table t1(pt POINT);
+alter table t1 add primary key pti(pt);
+drop table t1;
+create table t1(pt GEOMETRY);
+--error 1170
+alter table t1 add primary key pti(pt);
+alter table t1 add primary key pti(pt(20));
+drop table t1;
+
+
+create table t1 select GeomFromText('point(1 1)');
+desc t1;
+drop table t1;
+
+#
+# Bug #20691 (DEFAULT over NOT NULL field)
+#
+create table t1 (g geometry not null);
+--error ER_CANT_CREATE_GEOMETRY_OBJECT
+insert into t1 values(default);
+drop table t1;
+
+#
+# Bug #27300: create view with geometry functions lost columns types
+#
+CREATE TABLE t1 (a GEOMETRY);
+CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1;
+CREATE VIEW v2 AS SELECT a FROM t1;
+DESCRIBE v1;
+DESCRIBE v2;
+
+DROP VIEW v1,v2;
+DROP TABLE t1;
+
+#
+# Bug#24563: MBROverlaps does not seem to function propertly
+# Bug#54888: MBROverlaps missing in 5.1?
+#
+
+# Test all MBR* functions and their non-MBR-prefixed aliases,
+# using shifted squares to verify the spatial relations.
+
+create table t1 (name VARCHAR(100), square GEOMETRY);
+
+INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
+
+INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
+INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
+
+INSERT INTO t1 VALUES("up", GeomFromText('POLYGON (( 0 1, 0 3, 2 3, 2 1, 0 1))'));
+INSERT INTO t1 VALUES("up2", GeomFromText('POLYGON (( 0 2, 0 4, 2 4, 2 2, 0 2))'));
+INSERT INTO t1 VALUES("up3", GeomFromText('POLYGON (( 0 3, 0 5, 2 5, 2 3, 0 3))'));
+
+INSERT INTO t1 VALUES("down", GeomFromText('POLYGON (( 0 -1, 0 1, 2 1, 2 -1, 0 -1))'));
+INSERT INTO t1 VALUES("down2", GeomFromText('POLYGON (( 0 -2, 0 0, 2 0, 2 -2, 0 -2))'));
+INSERT INTO t1 VALUES("down3", GeomFromText('POLYGON (( 0 -3, 0 -1, 2 -1, 2 -3, 0 -3))'));
+
+INSERT INTO t1 VALUES("right", GeomFromText('POLYGON (( 1 0, 1 2, 3 2, 3 0, 1 0))'));
+INSERT INTO t1 VALUES("right2", GeomFromText('POLYGON (( 2 0, 2 2, 4 2, 4 0, 2 0))'));
+INSERT INTO t1 VALUES("right3", GeomFromText('POLYGON (( 3 0, 3 2, 5 2, 5 0, 3 0))'));
+
+INSERT INTO t1 VALUES("left", GeomFromText('POLYGON (( -1 0, -1 2, 1 2, 1 0, -1 0))'));
+INSERT INTO t1 VALUES("left2", GeomFromText('POLYGON (( -2 0, -2 2, 0 2, 0 0, -2 0))'));
+INSERT INTO t1 VALUES("left3", GeomFromText('POLYGON (( -3 0, -3 2, -1 2, -1 0, -3 0))'));
+
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrcontains FROM t1 a1 JOIN t1 a2 ON MBRContains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrdisjoint FROM t1 a1 JOIN t1 a2 ON MBRDisjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbroverlaps FROM t1 a1 JOIN t1 a2 ON MBROverlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrtouches FROM t1 a1 JOIN t1 a2 ON MBRTouches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrwithin FROM t1 a1 JOIN t1 a2 ON MBRWithin( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS contains FROM t1 a1 JOIN t1 a2 ON Contains( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS disjoint FROM t1 a1 JOIN t1 a2 ON Disjoint( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS equals FROM t1 a1 JOIN t1 a2 ON Equals( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS intersect FROM t1 a1 JOIN t1 a2 ON Intersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS overlaps FROM t1 a1 JOIN t1 a2 ON Overlaps( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS touches FROM t1 a1 JOIN t1 a2 ON Touches( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS within FROM t1 a1 JOIN t1 a2 ON Within( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
+
+# Overlaps needs a few more tests, with point and line dimensions
+
+SET @vert1 = GeomFromText('POLYGON ((0 -2, 0 2, 0 -2))');
+SET @horiz1 = GeomFromText('POLYGON ((-2 0, 2 0, -2 0))');
+SET @horiz2 = GeomFromText('POLYGON ((-1 0, 3 0, -1 0))');
+SET @horiz3 = GeomFromText('POLYGON ((2 0, 3 0, 2 0))');
+SET @point1 = GeomFromText('POLYGON ((0 0))');
+SET @point2 = GeomFromText('POLYGON ((-2 0))');
+
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @vert1) GROUP BY a1.name;
+SELECT GROUP_CONCAT(a1.name ORDER BY a1.name) AS overlaps FROM t1 a1 WHERE Overlaps(a1.square, @horiz1) GROUP BY a1.name;
+SELECT Overlaps(@horiz1, @vert1) FROM DUAL;
+SELECT Overlaps(@horiz1, @horiz2) FROM DUAL;
+SELECT Overlaps(@horiz1, @horiz3) FROM DUAL;
+SELECT Overlaps(@horiz1, @point1) FROM DUAL;
+SELECT Overlaps(@horiz1, @point2) FROM DUAL;
+
+DROP TABLE t1;
+
+#
+# Bug#28763: Selecting geometry fields in UNION caused server crash.
+#
+create table t1(f1 geometry, f2 point, f3 linestring);
+select f1 from t1 union select f1 from t1;
+insert into t1 (f2,f3) values (GeomFromText('POINT(1 1)'),
+ GeomFromText('LINESTRING(0 0,1 1,2 2)'));
+select AsText(f2),AsText(f3) from t1;
+select AsText(a) from (select f2 as a from t1 union select f3 from t1) t;
+create table t2 as select f2 as a from t1 union select f3 from t1;
+desc t2;
+select AsText(a) from t2;
+drop table t1, t2;
+
+#
+# Bug #29166: MYsql crash when query is run
+#
+
+# The test query itself is not logged : too large output.
+# The real test is the second query : see if the first hasn't crashed the
+# server
+--disable_query_log
+--disable_result_log
+SELECT AsText(GeometryFromText(CONCAT(
+ 'MULTIPOLYGON(((',
+ REPEAT ('-0.00000000001234567890123456789012 -0.123456789012345678,', 1000),
+ '-0.00000000001234567890123456789012 -0.123456789012345678',
+ ')))'
+))) AS a;
+--enable_result_log
+--enable_query_log
+SELECT 1;
+
+-- source include/gis_keys.inc
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test
index ea148c67262..1d11a669811 100644
--- a/mysql-test/t/grant.test
+++ b/mysql-test/t/grant.test
@@ -6,6 +6,7 @@
# Cleanup
--disable_warnings
drop table if exists t1;
+drop database if exists mysqltest;
--enable_warnings
connect (master,localhost,root,,);
@@ -117,7 +118,7 @@ drop table t1;
#
--error 1221
GRANT FILE on mysqltest.* to mysqltest_1@localhost;
-select 1; -- To test that the previous command didn't cause problems
+select 1; # To test that the previous command didn't cause problems
#
# Bug #4898: User privileges depending on ORDER BY Settings of table db
@@ -184,16 +185,18 @@ grant select(a) on test.t1 to drop_user1@localhost;
grant select on test.t1 to drop_user2@localhost;
grant select on test.* to drop_user3@localhost;
grant select on *.* to drop_user4@localhost;
---error 1268
+# Drop user now implicitly revokes all privileges.
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
+--error 1269
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
drop_user3@localhost, drop_user4@localhost;
+--error 1396
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
drop table t1;
grant usage on *.* to mysqltest_1@localhost identified by "password";
-grant select, update, insert on test.* to mysqltest@localhost;
+grant select, update, insert on test.* to mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
drop user mysqltest_1@localhost;
@@ -217,6 +220,9 @@ GRANT SELECT (ËÏÌ) ON ÂÄ.ÔÁÂ TO ÀÚÅÒ@localhost;
SHOW GRANTS FOR ÀÚÅÒ@localhost;
REVOKE SELECT (ËÏÌ) ON ÂÄ.ÔÁÂ FROM ÀÚÅÒ@localhost;
+# Revoke does not drop user. Leave a clean user table for the next tests.
+DROP USER ÀÚÅÒ@localhost;
+
DROP DATABASE ÂÄ;
SET NAMES latin1;
@@ -296,7 +302,7 @@ DROP DATABASE testdb10;
create table t1(a int, b int, c int, d int);
grant insert(b), insert(c), insert(d), insert(a) on t1 to grant_user@localhost;
show grants for grant_user@localhost;
-select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
+select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv order by Column_name;
revoke ALL PRIVILEGES on t1 from grant_user@localhost;
show grants for grant_user@localhost;
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
@@ -320,12 +326,25 @@ grant select (c) on mysqltest_2.t1 to mysqltest_3@localhost;
grant update (d) on mysqltest_2.t2 to mysqltest_3@localhost;
connect (conn1,localhost,mysqltest_3,,);
connection conn1;
-show grants for mysqltest_3@localhost;
+SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
+ WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ ORDER BY TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE;
+SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
+ WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ ORDER BY TABLE_NAME,PRIVILEGE_TYPE;
+SELECT * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
+ WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ ORDER BY TABLE_SCHEMA,PRIVILEGE_TYPE;
+SELECT * from INFORMATION_SCHEMA.USER_PRIVILEGES
+ WHERE GRANTEE = '''mysqltest_3''@''localhost'''
+ ORDER BY TABLE_CATALOG,PRIVILEGE_TYPE;
--error 1143
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
+--error 1143
+update mysqltest_1.t2, mysqltest_2.t2 set d=20 where d=1;
--error 1142
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
---error 1143
+--error 1142
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
--error 1143
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
@@ -352,7 +371,7 @@ connection conn2;
use mysqltest_1;
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
# the following failed before, should fail now.
---error 1143
+--error 1142
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
use mysqltest_2;
#the following used to succeed, it must fail now.
@@ -376,6 +395,11 @@ drop database mysqltest_1;
drop database mysqltest_2;
#
+# just SHOW PRIVILEGES test
+#
+SHOW PRIVILEGES;
+
+#
# Rights for renaming test (Bug #3270)
#
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
@@ -389,12 +413,78 @@ connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK);
connection user1;
-- error 1142
alter table t1 rename t2;
+disconnect user1;
connection root;
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
delete from mysql.user where user=_binary'mysqltest_1';
drop database mysqltest;
#
+# check all new table priveleges
+#
+CREATE USER dummy@localhost;
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.dummytable (dummyfield INT);
+CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
+GRANT ALL PRIVILEGES ON mysqltest.dummytable TO dummy@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.dummyview TO dummy@localhost;
+SHOW GRANTS FOR dummy@localhost;
+use INFORMATION_SCHEMA;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR dummy@localhost;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+SHOW FIELDS FROM mysql.tables_priv;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
+DROP USER dummy@localhost;
+DROP DATABASE mysqltest;
+# check view only privileges
+CREATE USER dummy@localhost;
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.dummytable (dummyfield INT);
+CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
+GRANT CREATE VIEW ON mysqltest.dummytable TO dummy@localhost;
+GRANT CREATE VIEW ON mysqltest.dummyview TO dummy@localhost;
+SHOW GRANTS FOR dummy@localhost;
+use INFORMATION_SCHEMA;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR dummy@localhost;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
+DROP USER dummy@localhost;
+DROP DATABASE mysqltest;
+CREATE USER dummy@localhost;
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.dummytable (dummyfield INT);
+CREATE VIEW mysqltest.dummyview AS SELECT dummyfield FROM mysqltest.dummytable;
+GRANT SHOW VIEW ON mysqltest.dummytable TO dummy@localhost;
+GRANT SHOW VIEW ON mysqltest.dummyview TO dummy@localhost;
+SHOW GRANTS FOR dummy@localhost;
+use INFORMATION_SCHEMA;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR dummy@localhost;
+SELECT TABLE_SCHEMA, TABLE_NAME, GROUP_CONCAT(PRIVILEGE_TYPE ORDER BY
+PRIVILEGE_TYPE SEPARATOR ', ') AS PRIVILEGES FROM TABLE_PRIVILEGES WHERE GRANTEE
+= '\'dummy\'@\'localhost\'' GROUP BY TABLE_SCHEMA, TABLE_NAME;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
+DROP USER dummy@localhost;
+DROP DATABASE mysqltest;
+#
# Bug #11330: Entry in tables_priv with host = '' causes crash
#
connection default;
@@ -403,6 +493,7 @@ insert into tables_priv values ('','test_db','mysqltest_1','test_table','test_gr
flush privileges;
delete from tables_priv where host = '' and user = 'mysqltest_1';
flush privileges;
+use test;
#
# Bug #10892 user variables not auto cast for comparisons
@@ -427,8 +518,7 @@ set names latin1;
# Bug #15598 Server crashes in specific case during setting new password
# - Caused by a user with host ''
#
-insert into mysql.user (host, user) values ('', 'mysqltest_7');
-flush privileges;
+create user mysqltest_7@;
set password for mysqltest_7@ = password('systpass');
show grants for mysqltest_7@;
drop user mysqltest_7@;
@@ -473,3 +563,592 @@ drop user user27515@localhost;
drop database db27515;
--echo End of 4.1 tests
+
+#
+# Bug #16297 In memory grant tables not flushed when users's hostname is ""
+#
+use test;
+create table t1 (a int);
+
+# Backup anonymous users and remove them. (They get in the way of
+# the one we test with here otherwise.)
+create table t2 as select * from mysql.user where user='';
+delete from mysql.user where user='';
+flush privileges;
+
+# Create some users with different hostnames
+create user mysqltest_8@'';
+create user mysqltest_8;
+create user mysqltest_8@host8;
+
+# Try to create them again
+--error 1396
+create user mysqltest_8@'';
+--error 1396
+create user mysqltest_8;
+--error 1396
+create user mysqltest_8@host8;
+
+select user, QUOTE(host) from mysql.user where user="mysqltest_8";
+
+--echo Schema privileges
+grant select on mysqltest.* to mysqltest_8@'';
+show grants for mysqltest_8@'';
+grant select on mysqltest.* to mysqltest_8@;
+show grants for mysqltest_8@;
+grant select on mysqltest.* to mysqltest_8;
+show grants for mysqltest_8;
+select * from information_schema.schema_privileges
+where grantee like "'mysqltest_8'%";
+connect (conn3,localhost,mysqltest_8,,);
+select * from t1;
+disconnect conn3;
+connection master;
+revoke select on mysqltest.* from mysqltest_8@'';
+revoke select on mysqltest.* from mysqltest_8;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.schema_privileges
+where grantee like "'mysqltest_8'%";
+flush privileges;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8@;
+grant select on mysqltest.* to mysqltest_8@'';
+flush privileges;
+show grants for mysqltest_8@;
+revoke select on mysqltest.* from mysqltest_8@'';
+flush privileges;
+
+--echo Column privileges
+grant update (a) on t1 to mysqltest_8@'';
+grant update (a) on t1 to mysqltest_8;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+flush privileges;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.column_privileges;
+connect (conn4,localhost,mysqltest_8,,);
+select * from t1;
+disconnect conn4;
+connection master;
+revoke update (a) on t1 from mysqltest_8@'';
+revoke update (a) on t1 from mysqltest_8;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.column_privileges;
+flush privileges;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+
+--echo Table privileges
+grant update on t1 to mysqltest_8@'';
+grant update on t1 to mysqltest_8;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+flush privileges;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.table_privileges;
+connect (conn5,localhost,mysqltest_8,,);
+select * from t1;
+disconnect conn5;
+connection master;
+revoke update on t1 from mysqltest_8@'';
+revoke update on t1 from mysqltest_8;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.table_privileges;
+flush privileges;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+
+--echo "DROP USER" should clear privileges
+grant all privileges on mysqltest.* to mysqltest_8@'';
+grant select on mysqltest.* to mysqltest_8@'';
+grant update on t1 to mysqltest_8@'';
+grant update (a) on t1 to mysqltest_8@'';
+grant all privileges on mysqltest.* to mysqltest_8;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.user_privileges
+where grantee like "'mysqltest_8'%";
+connect (conn5,localhost,mysqltest_8,,);
+select * from t1;
+disconnect conn5;
+connection master;
+flush privileges;
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+drop user mysqltest_8@'';
+--error 1141
+show grants for mysqltest_8@'';
+show grants for mysqltest_8;
+select * from information_schema.user_privileges
+where grantee like "'mysqltest_8'%";
+drop user mysqltest_8;
+--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
+--error 1045
+connect (conn6,localhost,mysqltest_8,,);
+connection master;
+--error 1141
+show grants for mysqltest_8;
+drop user mysqltest_8@host8;
+--error 1141
+show grants for mysqltest_8@host8;
+
+# Restore the anonymous users.
+insert into mysql.user select * from t2;
+flush privileges;
+drop table t2;
+
+drop table t1;
+
+#
+# Bug#20214: Incorrect error when user calls SHOW CREATE VIEW on non
+# privileged view
+#
+
+connection master;
+
+CREATE DATABASE mysqltest3;
+use mysqltest3;
+
+CREATE TABLE t_nn (c1 INT);
+CREATE VIEW v_nn AS SELECT * FROM t_nn;
+
+CREATE DATABASE mysqltest2;
+use mysqltest2;
+
+CREATE TABLE t_nn (c1 INT);
+CREATE VIEW v_nn AS SELECT * FROM t_nn;
+CREATE VIEW v_yn AS SELECT * FROM t_nn;
+CREATE VIEW v_gy AS SELECT * FROM t_nn;
+CREATE VIEW v_ny AS SELECT * FROM t_nn;
+CREATE VIEW v_yy AS SELECT * FROM t_nn WHERE c1=55;
+
+GRANT SHOW VIEW ON mysqltest2.v_ny TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+GRANT SELECT ON mysqltest2.v_yn TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
+
+connect (mysqltest_1, localhost, mysqltest_1, mysqltest_1,);
+
+# fail because of missing SHOW VIEW (have generic SELECT)
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE VIEW mysqltest2.v_nn;
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE TABLE mysqltest2.v_nn;
+
+
+
+# fail because of missing SHOW VIEW
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE VIEW mysqltest2.v_yn;
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE TABLE mysqltest2.v_yn;
+
+
+
+# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
+SHOW CREATE TABLE mysqltest2.v_ny;
+
+# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
+SHOW CREATE VIEW mysqltest2.v_ny;
+
+
+
+# fail because of missing (specific or generic) SELECT
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE TABLE mysqltest3.t_nn;
+
+# fail because of missing (specific or generic) SELECT (not because it's not a view!)
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE VIEW mysqltest3.t_nn;
+
+
+
+# fail because of missing missing (specific or generic) SELECT (and SHOW VIEW)
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE VIEW mysqltest3.v_nn;
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE TABLE mysqltest3.v_nn;
+
+
+
+# succeed thanks to generic SELECT
+SHOW CREATE TABLE mysqltest2.t_nn;
+
+# fail because it's not a view! (have generic SELECT though)
+--error ER_WRONG_OBJECT
+SHOW CREATE VIEW mysqltest2.t_nn;
+
+
+
+# succeed, have SELECT and SHOW VIEW
+SHOW CREATE VIEW mysqltest2.v_yy;
+
+# succeed, have SELECT and SHOW VIEW
+SHOW CREATE TABLE mysqltest2.v_yy;
+
+
+
+#clean-up
+connection master;
+
+# succeed, we're root
+SHOW CREATE TABLE mysqltest2.v_nn;
+SHOW CREATE VIEW mysqltest2.v_nn;
+
+SHOW CREATE TABLE mysqltest2.t_nn;
+
+# fail because it's not a view!
+--error ER_WRONG_OBJECT
+SHOW CREATE VIEW mysqltest2.t_nn;
+
+
+
+DROP VIEW mysqltest2.v_nn;
+DROP VIEW mysqltest2.v_yn;
+DROP VIEW mysqltest2.v_ny;
+DROP VIEW mysqltest2.v_yy;
+
+DROP TABLE mysqltest2.t_nn;
+
+DROP DATABASE mysqltest2;
+
+
+
+DROP VIEW mysqltest3.v_nn;
+DROP TABLE mysqltest3.t_nn;
+
+DROP DATABASE mysqltest3;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
+DROP USER 'mysqltest_1'@'localhost';
+
+# restore the original database
+use test;
+
+#
+# Bug #10668: CREATE USER does not enforce username length limit
+#
+--error ER_WRONG_STRING_LENGTH
+create user mysqltest1_thisisreallytoolong;
+
+#
+# Test for BUG#16899: Possible buffer overflow in handling of DEFINER-clause.
+#
+# These checks are intended to ensure that appropriate errors are risen when
+# illegal user name or hostname is specified in user-clause of GRANT/REVOKE
+# statements.
+#
+
+# Working with database-level privileges.
+
+--error ER_WRONG_STRING_LENGTH
+GRANT CREATE ON mysqltest.* TO 1234567890abcdefGHIKL@localhost;
+
+--error ER_WRONG_STRING_LENGTH
+GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+
+--error ER_WRONG_STRING_LENGTH
+REVOKE CREATE ON mysqltest.* FROM 1234567890abcdefGHIKL@localhost;
+
+--error ER_WRONG_STRING_LENGTH
+REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+
+# Working with table-level privileges.
+
+--error ER_WRONG_STRING_LENGTH
+GRANT CREATE ON t1 TO 1234567890abcdefGHIKL@localhost;
+
+--error ER_WRONG_STRING_LENGTH
+GRANT CREATE ON t1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+
+--error ER_WRONG_STRING_LENGTH
+REVOKE CREATE ON t1 FROM 1234567890abcdefGHIKL@localhost;
+
+--error ER_WRONG_STRING_LENGTH
+REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+
+# Working with routine-level privileges.
+
+--error ER_WRONG_STRING_LENGTH
+GRANT EXECUTE ON PROCEDURE p1 TO 1234567890abcdefGHIKL@localhost;
+
+--error ER_WRONG_STRING_LENGTH
+GRANT EXECUTE ON PROCEDURE p1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+
+--error ER_WRONG_STRING_LENGTH
+REVOKE EXECUTE ON PROCEDURE p1 FROM 1234567890abcdefGHIKL@localhost;
+
+--error ER_WRONG_STRING_LENGTH
+REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+
+#
+# Bug #6774: Replication fails with Wrong usage of DB GRANT and GLOBAL PRIVILEGES
+#
+# Check if GRANT ... ON * ... fails when no database is selected
+connect (con1, localhost, root,,*NO-ONE*);
+connection con1;
+--error ER_NO_DB_ERROR
+GRANT PROCESS ON * TO user@localhost;
+disconnect con1;
+connection default;
+
+
+#
+# BUG#9504: Stored procedures: execute privilege doesn't make 'use database'
+# okay.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+DROP DATABASE IF EXISTS mysqltest3;
+DROP DATABASE IF EXISTS mysqltest4;
+--enable_warnings
+
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+CREATE DATABASE mysqltest3;
+CREATE DATABASE mysqltest4;
+
+CREATE PROCEDURE mysqltest1.p_def() SQL SECURITY DEFINER
+ SELECT 1;
+
+CREATE PROCEDURE mysqltest2.p_inv() SQL SECURITY INVOKER
+ SELECT 1;
+
+CREATE FUNCTION mysqltest3.f_def() RETURNS INT SQL SECURITY DEFINER
+ RETURN 1;
+
+CREATE FUNCTION mysqltest4.f_inv() RETURNS INT SQL SECURITY INVOKER
+ RETURN 1;
+
+GRANT EXECUTE ON PROCEDURE mysqltest1.p_def TO mysqltest_1@localhost;
+GRANT EXECUTE ON PROCEDURE mysqltest2.p_inv TO mysqltest_1@localhost;
+GRANT EXECUTE ON FUNCTION mysqltest3.f_def TO mysqltest_1@localhost;
+GRANT EXECUTE ON FUNCTION mysqltest4.f_inv TO mysqltest_1@localhost;
+
+GRANT ALL PRIVILEGES ON test.* TO mysqltest_1@localhost;
+
+# Test.
+
+--connect (bug9504_con1,localhost,mysqltest_1,,)
+--echo
+--echo ---> connection: bug9504_con1
+
+# - Check that we can switch to the db;
+
+use mysqltest1;
+
+use mysqltest2;
+
+use mysqltest3;
+
+use mysqltest4;
+
+# - Check that we can call stored routines;
+
+use test;
+
+CALL mysqltest1.p_def();
+
+CALL mysqltest2.p_inv();
+
+SELECT mysqltest3.f_def();
+
+SELECT mysqltest4.f_inv();
+
+# Cleanup.
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect bug9504_con1
+
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+DROP DATABASE mysqltest3;
+DROP DATABASE mysqltest4;
+
+DROP USER mysqltest_1@localhost;
+
+
+#
+# BUG#27337: Privileges are not restored properly.
+#
+# Actually, the patch for this bugs fixes two problems. So, here are two test
+# cases.
+
+# Test case 1: privileges are not restored properly after calling a stored
+# routine defined with SQL SECURITY INVOKER clause.
+
+# Prepare.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+--enable_warnings
+
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+
+GRANT ALL PRIVILEGES ON mysqltest1.* TO mysqltest_1@localhost;
+GRANT SELECT ON mysqltest2.* TO mysqltest_1@localhost;
+
+CREATE PROCEDURE mysqltest1.p1() SQL SECURITY INVOKER
+ SELECT 1;
+
+# Test.
+
+--connect (bug27337_con1,localhost,mysqltest_1,,mysqltest2)
+--echo
+--echo ---> connection: bug27337_con1
+
+--error ER_TABLEACCESS_DENIED_ERROR
+CREATE TABLE t1(c INT);
+
+CALL mysqltest1.p1();
+
+--error ER_TABLEACCESS_DENIED_ERROR
+CREATE TABLE t1(c INT);
+
+--disconnect bug27337_con1
+
+--connect (bug27337_con2,localhost,mysqltest_1,,mysqltest2)
+--echo
+--echo ---> connection: bug27337_con2
+
+--error ER_TABLEACCESS_DENIED_ERROR
+CREATE TABLE t1(c INT);
+
+SHOW TABLES;
+
+# Cleanup.
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect bug27337_con2
+
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+
+DROP USER mysqltest_1@localhost;
+
+# Test case 2: priveleges are not checked properly for prepared statements.
+
+# Prepare.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+--enable_warnings
+
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+
+CREATE TABLE mysqltest1.t1(c INT);
+CREATE TABLE mysqltest2.t2(c INT);
+
+GRANT SELECT ON mysqltest1.t1 TO mysqltest_1@localhost;
+GRANT SELECT ON mysqltest2.t2 TO mysqltest_2@localhost;
+
+# Test.
+
+--connect (bug27337_con1,localhost,mysqltest_1,,mysqltest1)
+--echo
+--echo ---> connection: bug27337_con1
+
+SHOW TABLES FROM mysqltest1;
+
+PREPARE stmt1 FROM 'SHOW TABLES FROM mysqltest1';
+
+EXECUTE stmt1;
+
+--connect (bug27337_con2,localhost,mysqltest_2,,mysqltest2)
+--echo
+--echo ---> connection: bug27337_con2
+
+SHOW COLUMNS FROM mysqltest2.t2;
+
+PREPARE stmt2 FROM 'SHOW COLUMNS FROM mysqltest2.t2';
+
+EXECUTE stmt2;
+
+--connection default
+--echo
+--echo ---> connection: default
+
+REVOKE SELECT ON mysqltest1.t1 FROM mysqltest_1@localhost;
+REVOKE SELECT ON mysqltest2.t2 FROM mysqltest_2@localhost;
+
+--connection bug27337_con1
+--echo
+--echo ---> connection: bug27337_con1
+
+--error ER_DBACCESS_DENIED_ERROR
+SHOW TABLES FROM mysqltest1;
+
+--error ER_DBACCESS_DENIED_ERROR
+EXECUTE stmt1;
+
+--connection bug27337_con2
+--echo
+--echo ---> connection: bug27337_con2
+
+--error ER_TABLEACCESS_DENIED_ERROR
+SHOW COLUMNS FROM mysqltest2.t2;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+EXECUTE stmt2;
+
+# Cleanup.
+
+--connection default
+--echo
+--echo ---> connection: default
+
+--disconnect bug27337_con2
+
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+
+DROP USER mysqltest_1@localhost;
+
+#
+# Bug#27878: Unchecked privileges on a view referring to a table from another
+# database.
+#
+use test;
+CREATE TABLE t1 (f1 int, f2 int);
+INSERT INTO t1 VALUES(1,1), (2,2);
+CREATE DATABASE db27878;
+GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
+GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
+GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
+use db27878;
+CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
+connect (user1,localhost,mysqltest_1,,test);
+connection user1;
+use db27878;
+--error 1356
+UPDATE v1 SET f2 = 4;
+SELECT * FROM test.t1;
+disconnect user1;
+connection default;
+REVOKE UPDATE (f1) ON `test`.`t1` FROM 'mysqltest_1'@'localhost';
+REVOKE SELECT ON `test`.* FROM 'mysqltest_1'@'localhost';
+REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
+DROP DATABASE db27878;
+use test;
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test
index 9da95cd42da..e2d92ee58d4 100644
--- a/mysql-test/t/grant2.test
+++ b/mysql-test/t/grant2.test
@@ -21,17 +21,61 @@ delete from mysql.columns_priv where user like 'mysqltest\_%';
flush privileges;
+grant all privileges on `my\_1`.* to mysqltest_1@localhost with grant option;
+grant create user on *.* to mysqltest_1@localhost;
+create user mysqltest_2@localhost;
+connect (user_a,localhost,mysqltest_1,,);
+connection user_a;
+grant select on `my\_1`.* to mysqltest_2@localhost;
+--error 1132
+grant select on `my\_1`.* to mysqltest_2@localhost identified by 'pass';
+disconnect user_a;
+connection default;
+grant update on mysql.* to mysqltest_1@localhost;
+connect (user_b,localhost,mysqltest_1,,);
+connection user_b;
+grant select on `my\_1`.* to mysqltest_2@localhost identified by 'pass';
+grant select on `my\_1`.* to mysqltest_3@localhost;
+disconnect user_b;
+connection default;
+grant insert on mysql.* to mysqltest_1@localhost;
+connect (user_c,localhost,mysqltest_1,,);
+connection user_c;
+grant select on `my\_1`.* to mysqltest_3@localhost;
+grant select on `my\_1`.* to mysqltest_4@localhost identified by 'pass';
+disconnect user_c;
+connection default;
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+
#
# wild_compare fun
#
grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option;
+grant create user on *.* to mysqltest_1@localhost;
connect (user1,localhost,mysqltest_1,,);
connection user1;
select current_user();
grant all privileges on `my\_1`.* to mysqltest_2@localhost with grant option;
--error 1044
grant all privileges on `my_%`.* to mysqltest_3@localhost with grant option;
+
+#
+# NO_AUTO_CREATE_USER mode
+#
+set @@sql_mode='NO_AUTO_CREATE_USER';
+select @@sql_mode;
+#
+# GRANT without IDENTIFIED BY does not create new users
+#
+--error 1133
+grant select on `my\_1`.* to mysqltest_4@localhost with grant option;
+grant select on `my\_1`.* to mysqltest_4@localhost identified by 'mypass'
+with grant option;
disconnect user1;
connection default;
show grants for mysqltest_1@localhost;
@@ -75,10 +119,10 @@ connect (mrbad, localhost, mysqltest_1,,mysqltest);
connection mrbad;
show grants for current_user();
insert into t1 values (1, 'I can''t change it!');
---error 1044
+--error 1142
update t1 set data='I can change it!' where id = 1;
# This should not be allowed since it too require UPDATE privilege.
---error 1044
+--error 1142
insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!';
select * from t1;
disconnect mrbad;
@@ -88,7 +132,8 @@ drop table t1;
delete from mysql.user where user like 'mysqltest\_%';
delete from mysql.db where user like 'mysqltest\_%';
flush privileges;
-
+#
+#
create table t1 (a int, b int);
grant select (a) on t1 to mysqltest_1@localhost with grant option;
connect (mrugly, localhost, mysqltest_1,,mysqltest);
@@ -110,7 +155,202 @@ flush privileges;
drop database mysqltest;
use test;
+
+#
+# Bug #15775: "drop user" command does not refresh acl_check_hosts
+#
+
+# Create some test users
+create user mysqltest_1@host1;
+create user mysqltest_2@host2;
+create user mysqltest_3@host3;
+create user mysqltest_4@host4;
+create user mysqltest_5@host5;
+create user mysqltest_6@host6;
+create user mysqltest_7@host7;
+flush privileges;
+
+# Drop one user
+drop user mysqltest_3@host3;
+
+# This connect failed before fix since the acl_check_hosts list was corrupted by the "drop user"
+connect (con8,127.0.0.1,root,,test,$MASTER_MYPORT,);
+disconnect con8;
+connection default;
+
+# Clean up - Drop all of the remaining users at once
+drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
+ mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
+
+# Check that it's still possible to connect
+connect (con9,127.0.0.1,root,,test,$MASTER_MYPORT,);
+disconnect con9;
+connection default;
+
+#
+# Bug# 16180 - Setting SQL_LOG_OFF without SUPER privilege is silently ignored
+#
+create database mysqltest_1;
+grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
+connect (con10,localhost,mysqltest_1,,);
+connection con10;
+--error 1227
+set sql_log_off = 1;
+--error 1227
+set sql_log_bin = 0;
+disconnect con10;
+connection default;
+delete from mysql.user where user like 'mysqltest\_1';
+delete from mysql.db where user like 'mysqltest\_1';
+drop database mysqltest_1;
+flush privileges;
+
+# End of 4.1 tests
+# Create and drop user
+#
+set sql_mode='maxdb';
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+create table t1(c1 int);
+create table t2(c1 int, c2 int);
+#
+# Three forms of CREATE USER
+create user 'mysqltest_1';
+--error 1396
+create user 'mysqltest_1';
+create user 'mysqltest_2' identified by 'Mysqltest-2';
+create user 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
+grant select on *.* to 'mysqltest_2';
+grant insert on test.* to 'mysqltest_2';
+grant update on test.t1 to 'mysqltest_2';
+grant update (c2) on test.t2 to 'mysqltest_2';
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
+select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
+select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
+show grants for 'mysqltest_1';
+show grants for 'mysqltest_2';
+#
+# Drop
+drop user 'mysqltest_1';
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
+select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
+select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
+--error 1141
+show grants for 'mysqltest_1';
+#
+# Rename
+rename user 'mysqltest_2' to 'mysqltest_1';
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+select host,db,user from mysql.db where user like 'mysqltest_%' order by host,db,user;
+select host,db,user,table_name from mysql.tables_priv where user like 'mysqltest_%' order by host,db,user,table_name;
+select host,db,user,table_name,column_name from mysql.columns_priv where user like 'mysqltest_%' order by host,db,user,table_name,column_name;
+show grants for 'mysqltest_1';
+drop user 'mysqltest_1', 'mysqltest_3';
+--error 1396
+drop user 'mysqltest_1';
+#
+# Cleanup
+drop table t1, t2;
+#
+# Add a stray record
+insert into mysql.db set user='mysqltest_1', db='%', host='%';
+flush privileges;
+--error 1141
+show grants for 'mysqltest_1';
+--error 1269
+revoke all privileges, grant option from 'mysqltest_1';
+drop user 'mysqltest_1';
+select host,db,user from mysql.db where user = 'mysqltest_1' order by host,db,user;
+#
+# Add a stray record
+insert into mysql.tables_priv set host='%', db='test', user='mysqltest_1', table_name='t1';
+flush privileges;
+--error 1141
+show grants for 'mysqltest_1';
+drop user 'mysqltest_1';
+select host,db,user,table_name from mysql.tables_priv where user = 'mysqltest_1' order by host,db,user,table_name;
+#
+# Add a stray record
+insert into mysql.columns_priv set host='%', db='test', user='mysqltest_1', table_name='t1', column_name='c1';
+flush privileges;
+--error 1141
+show grants for 'mysqltest_1';
+drop user 'mysqltest_1';
+select host,db,user,table_name,column_name from mysql.columns_priv where user = 'mysqltest_1' order by host,db,user,table_name,column_name;
+#
+# Handle multi user lists
+create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+create user 'mysqltest_1', 'mysqltest_2' identified by 'Mysqltest-2', 'mysqltest_3' identified by password 'fffffffffffffffffffffffffffffffffffffffff';
+rename user 'mysqltest_1' to 'mysqltest_1a', 'mysqltest_2' TO 'mysqltest_2a', 'mysqltest_3' TO 'mysqltest_3a';
+--error 1396
+drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+drop user 'mysqltest_1a', 'mysqltest_2a', 'mysqltest_3a';
+#
+# Let one of multiple users fail
+create user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+--error 1396
+create user 'mysqltest_1a', 'mysqltest_2', 'mysqltest_3a';
+--error 1396
+rename user 'mysqltest_1a' to 'mysqltest_1b', 'mysqltest_2a' TO 'mysqltest_2b', 'mysqltest_3a' TO 'mysqltest_3b';
+drop user 'mysqltest_1', 'mysqltest_2', 'mysqltest_3';
+--error 1396
+drop user 'mysqltest_1b', 'mysqltest_2b', 'mysqltest_3b';
+#
+# Obsolete syntax has been dropped
+create user 'mysqltest_2' identified by 'Mysqltest-2';
+--error 1064
+drop user 'mysqltest_2' identified by 'Mysqltest-2';
+drop user 'mysqltest_2';
+#
+# Strange user names
+create user '%@b'@'b';
+show grants for '%@b'@'b';
+grant select on mysql.* to '%@b'@'b';
+show grants for '%@b'@'b';
+rename user '%@b'@'b' to '%@a'@'a';
+--error 1141
+show grants for '%@b'@'b';
+show grants for '%@a'@'a';
+drop user '%@a'@'a';
+#
+# CREATE USER privilege is enough
+#
+create user mysqltest_2@localhost;
+grant create user on *.* to mysqltest_2@localhost;
+connect (user3,localhost,mysqltest_2,,);
+connection user3;
+--error 1142
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+create user mysqltest_A@'%';
+rename user mysqltest_A@'%' to mysqltest_B@'%';
+drop user mysqltest_B@'%';
+disconnect user3;
+connection default;
+drop user mysqltest_2@localhost;
+#
+# INSERT/UPDATE/DELETE is ok too
+create user mysqltest_3@localhost;
+grant INSERT,DELETE,UPDATE on mysql.* to mysqltest_3@localhost;
+connect (user4,localhost,mysqltest_3,,);
+connection user4;
+show grants;
+--error 1142
+select host,user,password from mysql.user where user like 'mysqltest_%' order by host,user,password;
+insert into mysql.user set host='%', user='mysqltest_B';
+create user mysqltest_A@'%';
+rename user mysqltest_B@'%' to mysqltest_C@'%';
+drop user mysqltest_C@'%';
+drop user mysqltest_A@'%';
+disconnect user4;
+connection default;
+drop user mysqltest_3@localhost;
+#
# Bug #3309: Test IP addresses with netmask
+set @@sql_mode='';
create database mysqltest_1;
create table mysqltest_1.t1 (i int);
insert into mysqltest_1.t1 values (1),(2),(3);
@@ -155,6 +395,8 @@ delete from mysql.user where user like 'mysqltest\_1';
flush privileges;
drop database mysqltest_1;
+--source include/add_anonymous_users.inc
+
# But anonymous users can't change their password
connect (n5,localhost,test,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
connection n5;
@@ -163,6 +405,8 @@ set password = password("changed");
disconnect n5;
connection default;
+--source include/delete_anonymous_users.inc
+
# Bug #12423 "Deadlock when doing FLUSH PRIVILEGES and GRANT in
# multi-threaded environment". We should be able to execute FLUSH
@@ -206,54 +450,172 @@ drop user 'mysqltest_1'@'localhost';
disconnect con2root;
disconnect con3root;
+# End of 4.1 tests
+
#
-# Bug #15775: "drop user" command does not refresh acl_check_hosts
+# Bug#17279 user with no global privs and with create
+# priv in db can create databases
#
-# Create some test users
-insert into mysql.user (user, host) values
- ('mysqltest_1', 'host1'),
- ('mysqltest_2', 'host2'),
- ('mysqltest_3', 'host3'),
- ('mysqltest_4', 'host4'),
- ('mysqltest_5', 'host5'),
- ('mysqltest_6', 'host6'),
- ('mysqltest_7', 'host7');
+create database TESTDB;
+create table t2(a int);
+create temporary table t1 as select * from mysql.user;
+delete from mysql.user where host='localhost';
+INSERT INTO mysql.user VALUES
+('%','mysqltest_1',password('password'),'N','N','N','N','N','N',
+'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N',
+'','','','',0,0,0,0);
+INSERT INTO mysql.db VALUES
+('%','TESTDB','mysqltest_1','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','N','Y','Y','Y','
+Y','N');
+FLUSH PRIVILEGES;
+
+connect (con1,localhost,mysqltest_1,password,TESTDB);
+
+# The user mysqltest_1 should only be allowed access to
+# database TESTDB, not TEStdb
+# On system with "lowercase names" we get error "1007: Can't create db..."
+--error 1044, 1007
+create database TEStdb;
+
+# Clean-up
+connection default;
+delete from mysql.user;
+delete from mysql.db where host='%' and user='mysqltest_1' and db='TESTDB';
+insert into mysql.user select * from t1;
+drop table t1, t2;
+drop database TESTDB;
flush privileges;
-# Drop one user
-drop user mysqltest_3@host3;
+#
+# BUG#13310 incorrect user parsing by SP
+#
+
+grant all privileges on test.* to `a@`@localhost;
+grant execute on * to `a@`@localhost;
+connect (bug13310,localhost,'a@',,test);
+connection bug13310;
+create table t2 (s1 int);
+insert into t2 values (1);
+--disable_warnings
+drop function if exists f2;
+--enable_warnings
+delimiter //;
+create function f2 () returns int begin declare v int; select s1 from t2
+into v; return v; end//
+delimiter ;//
+select f2();
+
+drop function f2;
+drop table t2;
+disconnect bug13310;
-# This connect failed before fix since the acl_check_hosts list was corrupted by the "drop user"
-connect (con8,127.0.0.1,root,,test,$MASTER_MYPORT,);
-disconnect con8;
connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM `a@`@localhost;
+drop user `a@`@localhost;
-# Clean up - Drop all of the remaining users at once
-drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
- mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
-# Check that it's still possible to connect
-connect (con9,127.0.0.1,root,,test,$MASTER_MYPORT,);
-disconnect con9;
+#
+# Bug#25578 "CREATE TABLE LIKE does not require any privileges on source table"
+#
+--disable_warnings
+drop database if exists mysqltest_1;
+drop database if exists mysqltest_2;
+--enable_warnings
+--error 0,ER_CANNOT_USER
+drop user mysqltest_u1@localhost;
+
+create database mysqltest_1;
+create database mysqltest_2;
+grant all on mysqltest_1.* to mysqltest_u1@localhost;
+use mysqltest_2;
+create table t1 (i int);
+
+# Connect as user with all rights on mysqltest_1 but with no rights on mysqltest_2.
+connect (user1,localhost,mysqltest_u1,,mysqltest_1);
+connection user1;
+# As expected error is emitted
+--error ER_TABLEACCESS_DENIED_ERROR
+show create table mysqltest_2.t1;
+# This should emit error as well
+--error ER_TABLEACCESS_DENIED_ERROR
+create table t1 like mysqltest_2.t1;
+
+# Now let us check that SELECT privilege on the source is enough
connection default;
+grant select on mysqltest_2.t1 to mysqltest_u1@localhost;
+connection user1;
+show create table mysqltest_2.t1;
+create table t1 like mysqltest_2.t1;
+
+# Clean-up
+connection default;
+use test;
+drop database mysqltest_1;
+drop database mysqltest_2;
+drop user mysqltest_u1@localhost;
#
-# Bug# 16180 - Setting SQL_LOG_OFF without SUPER privilege is silently ignored
+# Bug#18660 Can't grant any privileges on single table in database
+# with underscore char
#
+grant all on `mysqltest\_%`.* to mysqltest_1@localhost with grant option;
+grant usage on *.* to mysqltest_2@localhost;
+connect (con18600_1,localhost,mysqltest_1,,);
+
create database mysqltest_1;
-grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
-connect (con10,localhost,mysqltest_1,,);
-connection con10;
---error 1227
-set sql_log_off = 1;
---error 1227
-set sql_log_bin = 0;
-disconnect con10;
+use mysqltest_1;
+create table t1 (f1 int);
+
+grant create on `mysqltest\_1`.* to mysqltest_2@localhost;
+grant select on mysqltest_1.t1 to mysqltest_2@localhost;
+connect (con3,localhost,mysqltest_2,,);
+connection con3;
+--error 1044
+create database mysqltest_3;
+use mysqltest_1;
+create table t2(f1 int);
+select * from t1;
connection default;
-delete from mysql.user where user like 'mysqltest\_1';
-delete from mysql.db where user like 'mysqltest\_1';
drop database mysqltest_1;
-flush privileges;
-# End of 4.1 tests
+revoke all privileges, grant option from mysqltest_1@localhost;
+revoke all privileges, grant option from mysqltest_2@localhost;
+drop user mysqltest_1@localhost;
+drop user mysqltest_2@localhost;
+
+
+#
+# Bug #30468: column level privileges not respected when joining tables
+#
+CREATE DATABASE db1;
+
+USE db1;
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1,1),(2,2);
+
+CREATE TABLE t2 (b INT, c INT);
+INSERT INTO t2 VALUES (1,100),(2,200);
+
+GRANT SELECT ON t1 TO mysqltest1@localhost;
+GRANT SELECT (b) ON t2 TO mysqltest1@localhost;
+
+connect (conn1,localhost,mysqltest1,,);
+connection conn1;
+USE db1;
+--error ER_COLUMNACCESS_DENIED_ERROR
+SELECT c FROM t2;
+--error ER_COLUMNACCESS_DENIED_ERROR
+SELECT * FROM t2;
+--error ER_COLUMNACCESS_DENIED_ERROR
+SELECT * FROM t1 JOIN t2 USING (b);
+
+connection default;
+disconnect conn1;
+DROP TABLE db1.t1, db1.t2;
+DROP USER mysqltest1@localhost;
+DROP DATABASE db1;
+
+
+--echo End of 5.0 tests
+
diff --git a/mysql-test/t/grant3-master.opt b/mysql-test/t/grant3-master.opt
new file mode 100644
index 00000000000..4b11f5902c1
--- /dev/null
+++ b/mysql-test/t/grant3-master.opt
@@ -0,0 +1 @@
+--safe-user-create
diff --git a/mysql-test/t/grant3.test b/mysql-test/t/grant3.test
new file mode 100644
index 00000000000..fac577ef0ff
--- /dev/null
+++ b/mysql-test/t/grant3.test
@@ -0,0 +1,136 @@
+# Can't run with embedded server
+-- source include/not_embedded.inc
+
+# Test of GRANT commands
+
+SET NAMES binary;
+connect (master,localhost,root,,);
+connection master;
+
+# Cleanup
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+
+create user mysqltest_1@localhost;
+grant create user on *.* to mysqltest_1@localhost;
+grant select on `my\_1`.* to mysqltest_1@localhost with grant option;
+connect (user_a,localhost,mysqltest_1,,);
+connection user_a;
+--error 1410
+grant select on `my\_1`.* to mysqltest_2@localhost;
+create user mysqltest_2@localhost;
+disconnect user_a;
+connection default;
+
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+
+#
+# Bug: #19828 Case sensitivity in Grant/Revoke
+#
+
+grant select on test.* to CUser@localhost;
+grant select on test.* to CUser@LOCALHOST;
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
+
+DROP USER CUser@localhost;
+DROP USER CUser@LOCALHOST;
+
+#### table grants
+create table t1 (a int);
+grant select on test.t1 to CUser@localhost;
+grant select on test.t1 to CUser@LOCALHOST;
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+
+DROP USER CUser@localhost;
+DROP USER CUser@LOCALHOST;
+
+### column grants
+
+grant select(a) on test.t1 to CUser@localhost;
+grant select(a) on test.t1 to CUser@LOCALHOST;
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
+SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
+
+DROP USER CUser@localhost;
+DROP USER CUser@LOCALHOST;
+
+drop table t1;
+
+# revoke on a specific DB only
+
+grant select on test.* to CUser2@localhost;
+grant select on test.* to CUser2@LOCALHOST;
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
+
+REVOKE SELECT ON test.* FROM 'CUser2'@'LOCALHOST';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
+
+REVOKE SELECT ON test.* FROM 'CUser2'@'localhost';
+flush privileges;
+
+SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
+SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
+
+DROP USER CUser2@localhost;
+DROP USER CUser2@LOCALHOST;
diff --git a/mysql-test/t/grant_cache.test b/mysql-test/t/grant_cache.test
index 7e17a03ec21..c2e31621744 100644
--- a/mysql-test/t/grant_cache.test
+++ b/mysql-test/t/grant_cache.test
@@ -2,6 +2,8 @@
-- source include/not_embedded.inc
-- source include/have_query_cache.inc
+--source include/add_anonymous_users.inc
+
#
# Test grants with query cache
#
@@ -71,6 +73,7 @@ show status like "Qcache_queries_in_cache";
show status like "Qcache_hits";
show status like "Qcache_not_cached";
+
# Don't use '' as user because it will pick Unix login
connect (unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK);
connection unkuser;
@@ -150,4 +153,7 @@ drop database mysqltest;
set GLOBAL query_cache_size=default;
+--source include/delete_anonymous_users.inc
+
+
# End of 4.1 tests
diff --git a/mysql-test/t/greedy_optimizer.test b/mysql-test/t/greedy_optimizer.test
new file mode 100644
index 00000000000..b73f70c6a3e
--- /dev/null
+++ b/mysql-test/t/greedy_optimizer.test
@@ -0,0 +1,313 @@
+#
+# A simple test of the greedy query optimization algorithm and the switches that
+# control the optimizationprocess.
+#
+
+#
+# Schema
+#
+--disable_warnings
+drop table if exists t1,t2,t3,t4,t5,t6,t7;
+--enable_warnings
+
+create table t1 (
+ c11 integer,c12 integer,c13 integer,c14 integer,c15 integer,c16 integer,
+ primary key (c11)
+);
+create table t2 (
+ c21 integer,c22 integer,c23 integer,c24 integer,c25 integer,c26 integer
+);
+create table t3 (
+ c31 integer,c32 integer,c33 integer,c34 integer,c35 integer,c36 integer,
+ primary key (c31)
+);
+create table t4 (
+ c41 integer,c42 integer,c43 integer,c44 integer,c45 integer,c46 integer
+);
+create table t5 (
+ c51 integer,c52 integer,c53 integer,c54 integer,c55 integer,c56 integer,
+ primary key (c51)
+);
+create table t6 (
+ c61 integer,c62 integer,c63 integer,c64 integer,c65 integer,c66 integer
+);
+create table t7 (
+ c71 integer,c72 integer,c73 integer,c74 integer,c75 integer,c76 integer,
+ primary key (c71)
+);
+
+#
+# Data
+# cardinality(Ti) = cardinality(T(i-1)) + 3
+#
+insert into t1 values (1,2,3,4,5,6);
+insert into t1 values (2,2,3,4,5,6);
+insert into t1 values (3,2,3,4,5,6);
+
+insert into t2 values (1,2,3,4,5,6);
+insert into t2 values (2,2,3,4,5,6);
+insert into t2 values (3,2,3,4,5,6);
+insert into t2 values (4,2,3,4,5,6);
+insert into t2 values (5,2,3,4,5,6);
+insert into t2 values (6,2,3,4,5,6);
+
+insert into t3 values (1,2,3,4,5,6);
+insert into t3 values (2,2,3,4,5,6);
+insert into t3 values (3,2,3,4,5,6);
+insert into t3 values (4,2,3,4,5,6);
+insert into t3 values (5,2,3,4,5,6);
+insert into t3 values (6,2,3,4,5,6);
+insert into t3 values (7,2,3,4,5,6);
+insert into t3 values (8,2,3,4,5,6);
+insert into t3 values (9,2,3,4,5,6);
+
+insert into t4 values (1,2,3,4,5,6);
+insert into t4 values (2,2,3,4,5,6);
+insert into t4 values (3,2,3,4,5,6);
+insert into t4 values (4,2,3,4,5,6);
+insert into t4 values (5,2,3,4,5,6);
+insert into t4 values (6,2,3,4,5,6);
+insert into t4 values (7,2,3,4,5,6);
+insert into t4 values (8,2,3,4,5,6);
+insert into t4 values (9,2,3,4,5,6);
+insert into t4 values (10,2,3,4,5,6);
+insert into t4 values (11,2,3,4,5,6);
+insert into t4 values (12,2,3,4,5,6);
+
+insert into t5 values (1,2,3,4,5,6);
+insert into t5 values (2,2,3,4,5,6);
+insert into t5 values (3,2,3,4,5,6);
+insert into t5 values (4,2,3,4,5,6);
+insert into t5 values (5,2,3,4,5,6);
+insert into t5 values (6,2,3,4,5,6);
+insert into t5 values (7,2,3,4,5,6);
+insert into t5 values (8,2,3,4,5,6);
+insert into t5 values (9,2,3,4,5,6);
+insert into t5 values (10,2,3,4,5,6);
+insert into t5 values (11,2,3,4,5,6);
+insert into t5 values (12,2,3,4,5,6);
+insert into t5 values (13,2,3,4,5,6);
+insert into t5 values (14,2,3,4,5,6);
+insert into t5 values (15,2,3,4,5,6);
+
+insert into t6 values (1,2,3,4,5,6);
+insert into t6 values (2,2,3,4,5,6);
+insert into t6 values (3,2,3,4,5,6);
+insert into t6 values (4,2,3,4,5,6);
+insert into t6 values (5,2,3,4,5,6);
+insert into t6 values (6,2,3,4,5,6);
+insert into t6 values (7,2,3,4,5,6);
+insert into t6 values (8,2,3,4,5,6);
+insert into t6 values (9,2,3,4,5,6);
+insert into t6 values (10,2,3,4,5,6);
+insert into t6 values (11,2,3,4,5,6);
+insert into t6 values (12,2,3,4,5,6);
+insert into t6 values (13,2,3,4,5,6);
+insert into t6 values (14,2,3,4,5,6);
+insert into t6 values (15,2,3,4,5,6);
+insert into t6 values (16,2,3,4,5,6);
+insert into t6 values (17,2,3,4,5,6);
+insert into t6 values (18,2,3,4,5,6);
+
+insert into t7 values (1,2,3,4,5,6);
+insert into t7 values (2,2,3,4,5,6);
+insert into t7 values (3,2,3,4,5,6);
+insert into t7 values (4,2,3,4,5,6);
+insert into t7 values (5,2,3,4,5,6);
+insert into t7 values (6,2,3,4,5,6);
+insert into t7 values (7,2,3,4,5,6);
+insert into t7 values (8,2,3,4,5,6);
+insert into t7 values (9,2,3,4,5,6);
+insert into t7 values (10,2,3,4,5,6);
+insert into t7 values (11,2,3,4,5,6);
+insert into t7 values (12,2,3,4,5,6);
+insert into t7 values (13,2,3,4,5,6);
+insert into t7 values (14,2,3,4,5,6);
+insert into t7 values (15,2,3,4,5,6);
+insert into t7 values (16,2,3,4,5,6);
+insert into t7 values (17,2,3,4,5,6);
+insert into t7 values (18,2,3,4,5,6);
+insert into t7 values (19,2,3,4,5,6);
+insert into t7 values (20,2,3,4,5,6);
+insert into t7 values (21,2,3,4,5,6);
+
+#
+# The actual test begins here
+#
+
+# Check the default values for the optimizer paramters
+
+select @@optimizer_search_depth;
+select @@optimizer_prune_level;
+
+# This value swithes back to the old implementation of 'find_best()'
+# set optimizer_search_depth=63; - old (independent of the optimizer_prune_level)
+#
+# These are the values for the parameters that control the greedy optimizer
+# (total 6 combinations - 3 for optimizer_search_depth, 2 for optimizer_prune_level):
+# 3:
+# set optimizer_search_depth=0; - automatic
+# set optimizer_search_depth=1; - min
+# set optimizer_search_depth=62; - max (default)
+# 2:
+# set optimizer_prune_level=0 - exhaustive;
+# set optimizer_prune_level=1 - heuristic; # default
+
+
+#
+# Compile several queries with all combinations of the query
+# optimizer parameters. Each test query has two variants, where
+# in the second variant the tables in the FROM clause are in
+# inverse order to the tables in the first variant.
+# Due to pre-sorting of tables before compilation, there should
+# be no difference in the plans for each two such query variants.
+#
+
+# First, for reference compile the test queries with the 'old' optimization
+# procedure 'find_best'. Notice that 'find_best' does not depend on the
+# choice of heuristic.
+
+set optimizer_search_depth=63;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+
+# Test the new optimization procedures
+
+set optimizer_prune_level=0;
+select @@optimizer_prune_level;
+
+set optimizer_search_depth=0;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+set optimizer_search_depth=1;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+set optimizer_search_depth=62;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+
+set optimizer_prune_level=1;
+select @@optimizer_prune_level;
+
+set optimizer_search_depth=0;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+set optimizer_search_depth=1;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+set optimizer_search_depth=62;
+select @@optimizer_search_depth;
+
+# 6-table join, chain
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, star
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
+show status like 'Last_query_cost';
+# 6-table join, clique
+explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
+show status like 'Last_query_cost';
+
+drop table t1,t2,t3,t4,t5,t6,t7;
diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test
index 180299f7f4a..b7c28cada46 100644
--- a/mysql-test/t/group_by.test
+++ b/mysql-test/t/group_by.test
@@ -135,7 +135,7 @@ CREATE TABLE t1 (
bug_severity enum('blocker','critical','major','normal','minor','trivial','enhancement') DEFAULT 'blocker' NOT NULL,
bug_status enum('','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED') DEFAULT 'NEW' NOT NULL,
creation_ts datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
- delta_ts timestamp(14),
+ delta_ts timestamp,
short_desc mediumtext,
long_desc mediumtext,
op_sys enum('All','Windows 3.1','Windows 95','Windows 98','Windows NT','Windows 2000','Linux','other') DEFAULT 'All' NOT NULL,
@@ -575,22 +575,12 @@ CREATE TABLE t1 (id varchar(20) NOT NULL);
INSERT INTO t1 VALUES ('trans1'), ('trans2');
CREATE TABLE t2 (id varchar(20) NOT NULL, err_comment blob NOT NULL);
INSERT INTO t2 VALUES ('trans1', 'a problem');
-
-SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS err_comment
- FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY err_comment;
+SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS comment
+ FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY comment;
DROP TABLE t1, t2;
#
-# Test for bug #11414: crash on Windows for a simple GROUP BY query
-#
-
-CREATE TABLE t1 (n int);
-INSERT INTO t1 VALUES (1);
-SELECT n+1 AS n FROM t1 GROUP BY n;
-DROP TABLE t1;
-
-#
# Bug #12266 GROUP BY expression on DATE column produces result with
# reduced length
#
@@ -601,6 +591,15 @@ select date(left(f1+0,8)) from t1 group by 1;
drop table t1;
#
+# Test for bug #11414: crash on Windows for a simple GROUP BY query
+#
+
+CREATE TABLE t1 (n int);
+INSERT INTO t1 VALUES (1);
+SELECT n+1 AS n FROM t1 GROUP BY n;
+DROP TABLE t1;
+
+#
# BUG#12695: Item_func_isnull::update_used_tables
# did not update const_item_cache
#
@@ -634,7 +633,6 @@ SELECT a FROM t1 ORDER BY "a" DESC;
SELECT a FROM t1 ORDER BY `a` DESC;
DROP TABLE t1;
-
#
# Bug #29717 INSERT INTO SELECT inserts values even if SELECT statement itself
# returns empty
@@ -656,4 +654,164 @@ SELECT SQL_BUFFER_RESULT avg(t2.f1) FROM t1, t2 where t2.f2 = 'SIR' GROUP BY t1.
SELECT avg(t2.f1) FROM t1, t2 where t2.f2 = 'SIR' GROUP BY t1.f1;
DROP TABLE t1, t2;
+
# End of 4.1 tests
+
+#
+# Bug#11211: Ambiguous column reference in GROUP BY.
+#
+
+create table t1 (c1 char(3), c2 char(3));
+create table t2 (c3 char(3), c4 char(3));
+insert into t1 values ('aaa', 'bb1'), ('aaa', 'bb2');
+insert into t2 values ('aaa', 'bb1'), ('aaa', 'bb2');
+
+# query with ambiguous column reference 'c2'
+select t1.c1 as c2 from t1, t2 where t1.c2 = t2.c4
+group by c2;
+show warnings;
+
+# this query has no ambiguity
+select t1.c1 as c2 from t1, t2 where t1.c2 = t2.c4
+group by t1.c1;
+
+show warnings;
+drop table t1, t2;
+
+#
+# Bug #20466: a view is mixing data when there's a trigger on the table
+#
+CREATE TABLE t1 (a tinyint(3), b varchar(255), PRIMARY KEY (a));
+
+INSERT INTO t1 VALUES (1,'-----'), (6,'Allemagne'), (17,'Autriche'),
+ (25,'Belgique'), (54,'Danemark'), (62,'Espagne'), (68,'France');
+
+CREATE TABLE t2 (a tinyint(3), b tinyint(3), PRIMARY KEY (a), KEY b (b));
+
+INSERT INTO t2 VALUES (1,1), (2,1), (6,6), (18,17), (15,25), (16,25),
+ (17,25), (10,54), (5,62),(3,68);
+
+CREATE VIEW v1 AS select t1.a, concat(t1.b,'') AS b, t1.b as real_b from t1;
+
+explain
+SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
+where t2.b=v1.a GROUP BY t2.b;
+SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
+where t2.b=v1.a GROUP BY t2.b;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Bug#22781: SQL_BIG_RESULT fails to influence sort plan
+#
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT, key (b));
+
+INSERT INTO t1 VALUES (1, 1);
+INSERT INTO t1 SELECT a + 1 , MOD(a + 1 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 2 , MOD(a + 2 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 4 , MOD(a + 4 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 8 , MOD(a + 8 , 20) FROM t1;
+INSERT INTO t1 SELECT a + 16, MOD(a + 16, 20) FROM t1;
+INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20) FROM t1;
+INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20) FROM t1;
+
+SELECT MIN(b), MAX(b) from t1;
+
+EXPLAIN SELECT b, sum(1) FROM t1 GROUP BY b;
+EXPLAIN SELECT SQL_BIG_RESULT b, sum(1) FROM t1 GROUP BY b;
+SELECT b, sum(1) FROM t1 GROUP BY b;
+SELECT SQL_BIG_RESULT b, sum(1) FROM t1 GROUP BY b;
+DROP TABLE t1;
+
+#
+# Bug #23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode
+#
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
+INSERT INTO t1 VALUES (1,1),(2,1),(3,2),(4,2),(5,3),(6,3);
+
+SET SQL_MODE = 'ONLY_FULL_GROUP_BY';
+SELECT MAX(a)-MIN(a) FROM t1 GROUP BY b;
+SELECT CEILING(MIN(a)) FROM t1 GROUP BY b;
+SELECT CASE WHEN AVG(a)>=0 THEN 'Positive' ELSE 'Negative' END FROM t1
+ GROUP BY b;
+SELECT a + 1 FROM t1 GROUP BY a;
+--error ER_WRONG_FIELD_WITH_GROUP
+SELECT a + b FROM t1 GROUP BY b;
+SELECT (SELECT t1_outer.a FROM t1 AS t1_inner GROUP BY b LIMIT 1)
+ FROM t1 AS t1_outer;
+SELECT 1 FROM t1 as t1_outer GROUP BY a
+ HAVING (SELECT t1_outer.a FROM t1 AS t1_inner GROUP BY b LIMIT 1);
+--error ER_WRONG_FIELD_WITH_GROUP
+SELECT (SELECT t1_outer.a FROM t1 AS t1_inner LIMIT 1)
+ FROM t1 AS t1_outer GROUP BY t1_outer.b;
+--error ER_BAD_FIELD_ERROR
+SELECT 1 FROM t1 as t1_outer GROUP BY a
+ HAVING (SELECT t1_outer.b FROM t1 AS t1_inner LIMIT 1);
+SELECT (SELECT SUM(t1_inner.a) FROM t1 AS t1_inner LIMIT 1)
+ FROM t1 AS t1_outer GROUP BY t1_outer.b;
+SELECT (SELECT SUM(t1_inner.a) FROM t1 AS t1_inner GROUP BY t1_inner.b LIMIT 1)
+ FROM t1 AS t1_outer;
+--error ER_WRONG_FIELD_WITH_GROUP
+SELECT (SELECT SUM(t1_outer.a) FROM t1 AS t1_inner LIMIT 1)
+ FROM t1 AS t1_outer GROUP BY t1_outer.b;
+
+SELECT 1 FROM t1 as t1_outer
+ WHERE (SELECT t1_outer.b FROM t1 AS t1_inner GROUP BY t1_inner.b LIMIT 1);
+
+SELECT b FROM t1 GROUP BY b HAVING CEILING(b) > 0;
+
+SELECT 1 FROM t1 GROUP BY b HAVING b = 2 OR b = 3 OR SUM(a) > 12;
+SELECT 1 FROM t1 GROUP BY b HAVING ROW (b,b) = ROW (1,1);
+
+--error ER_BAD_FIELD_ERROR
+SELECT 1 FROM t1 GROUP BY b HAVING a = 2;
+--error ER_INVALID_GROUP_FUNC_USE
+SELECT 1 FROM t1 GROUP BY SUM(b);
+--error ER_WRONG_FIELD_WITH_GROUP
+SELECT b FROM t1 AS t1_outer GROUP BY a HAVING t1_outer.a IN
+ (SELECT SUM(t1_inner.b)+t1_outer.b FROM t1 AS t1_inner GROUP BY t1_inner.a
+ HAVING SUM(t1_inner.b)+t1_outer.b > 5);
+DROP TABLE t1;
+SET SQL_MODE = '';
+#
+# Bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode.
+#
+SET SQL_MODE = 'ONLY_FULL_GROUP_BY';
+create table t1(f1 int, f2 int);
+--error 1055
+select * from t1 group by f1;
+--error 1055
+select * from t1 group by f2;
+select * from t1 group by f1, f2;
+--error 1055
+select t1.f1,t.* from t1, t1 t group by 1;
+drop table t1;
+SET SQL_MODE = '';
+
+#
+# Bug#30596: GROUP BY optimization gives wrong result order
+#
+CREATE TABLE t1(
+ a INT,
+ b INT NOT NULL,
+ c INT NOT NULL,
+ d INT,
+ UNIQUE KEY (c,b)
+);
+
+INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
+
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
+SELECT c,b,d FROM t1 GROUP BY c,b,d;
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+EXPLAIN SELECT c,b,d FROM t1 ORDER BY c,b,d;
+SELECT c,b,d FROM t1 ORDER BY c,b,d;
+
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b;
+SELECT c,b,d FROM t1 GROUP BY c,b;
+EXPLAIN SELECT c,b FROM t1 GROUP BY c,b;
+SELECT c,b FROM t1 GROUP BY c,b;
+
+DROP TABLE t1;
diff --git a/mysql-test/t/group_min_max.test b/mysql-test/t/group_min_max.test
new file mode 100644
index 00000000000..e1010c9fcfe
--- /dev/null
+++ b/mysql-test/t/group_min_max.test
@@ -0,0 +1,894 @@
+#
+# Test file for WL#1724 (Min/Max Optimization for Queries with Group By Clause).
+# The queries in this file test query execution via QUICK_GROUP_MIN_MAX_SELECT.
+#
+
+#
+# TODO:
+# Add queries with:
+# - C != const
+# - C IS NOT NULL
+# - HAVING clause
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (
+ a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
+);
+
+insert into t1 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
+
+create index idx_t1_0 on t1 (a1);
+create index idx_t1_1 on t1 (a1,a2,b,c);
+create index idx_t1_2 on t1 (a1,a2,b);
+analyze table t1;
+
+# t2 is the same as t1, but with some NULLs in the MIN/MAX column, and
+# one more nullable attribute
+
+--disable_warnings
+drop table if exists t2;
+--enable_warnings
+
+create table t2 (
+ a1 char(64), a2 char(64) not null, b char(16), c char(16), d char(16), dummy char(64) default ' '
+);
+insert into t2 select * from t1;
+# add few rows with NULL's in the MIN/MAX column
+insert into t2 (a1, a2, b, c, d) values
+('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
+('a','a','a',NULL,'xyz'),
+('a','a','b',NULL,'xyz'),
+('a','b','a',NULL,'xyz'),
+('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
+('d','b','b',NULL,'xyz'),
+('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
+('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),
+('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
+('a','a','a',NULL,'xyz'),
+('a','a','b',NULL,'xyz'),
+('a','b','a',NULL,'xyz'),
+('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
+('d','b','b',NULL,'xyz'),
+('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
+('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz');
+
+create index idx_t2_0 on t2 (a1);
+create index idx_t2_1 on t2 (a1,a2,b,c);
+create index idx_t2_2 on t2 (a1,a2,b);
+analyze table t2;
+
+# Table t3 is the same as t1, but with smaller column lenghts.
+# This allows to test different branches of the cost computation procedure
+# when the number of keys per block are less than the number of keys in the
+# sub-groups formed by predicates over non-group attributes.
+
+--disable_warnings
+drop table if exists t3;
+--enable_warnings
+
+create table t3 (
+ a1 char(1), a2 char(1), b char(1), c char(4) not null, d char(3), dummy char(1) default ' '
+);
+
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+insert into t3 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
+
+create index idx_t3_0 on t3 (a1);
+create index idx_t3_1 on t3 (a1,a2,b,c);
+create index idx_t3_2 on t3 (a1,a2,b);
+analyze table t3;
+
+
+#
+# Queries without a WHERE clause. These queries do not use ranges.
+#
+
+# plans
+explain select a1, min(a2) from t1 group by a1;
+explain select a1, max(a2) from t1 group by a1;
+explain select a1, min(a2), max(a2) from t1 group by a1;
+explain select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b;
+explain select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b;
+--replace_column 7 # 9 #
+explain select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b;
+# Select fields in different order
+explain select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1;
+explain select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b;
+explain select min(a2) from t1 group by a1;
+explain select a2, min(c), max(c) from t1 group by a1,a2,b;
+
+# queries
+select a1, min(a2) from t1 group by a1;
+select a1, max(a2) from t1 group by a1;
+select a1, min(a2), max(a2) from t1 group by a1;
+select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b;
+select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b;
+select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b;
+# Select fields in different order
+select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1;
+select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b;
+select min(a2) from t1 group by a1;
+select a2, min(c), max(c) from t1 group by a1,a2,b;
+
+#
+# Queries with a where clause
+#
+
+# A) Preds only over the group 'A' attributes
+# plans
+explain select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+explain select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+explain select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+explain select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
+
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+--replace_column 9 #
+explain select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+--replace_column 9 #
+explain select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
+
+# queries
+select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
+select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
+
+select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
+select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
+select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
+
+# B) Equalities only over the non-group 'B' attributes
+# plans
+explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+explain select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+explain select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2;
+explain select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2;
+explain select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2;
+
+explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+explain select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+explain select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2;
+explain select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2;
+explain select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2;
+
+# these queries test case 2) in TRP_GROUP_MIN_MAX::update_cost()
+explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+explain select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+
+# queries
+select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
+select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2;
+select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2;
+select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2;
+
+select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
+select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2;
+select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2;
+select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2;
+
+# these queries test case 2) in TRP_GROUP_MIN_MAX::update_cost()
+select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
+
+
+# IS NULL (makes sense for t2 only)
+# plans
+explain select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+explain select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+explain select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2;
+explain select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2;
+explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+# queries
+select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1;
+select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2;
+select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2;
+select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
+
+# C) Range predicates for the MIN/MAX attribute
+# plans
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+explain select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b;
+
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+
+# queries
+select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b;
+
+select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
+select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
+
+# analyze the sub-select
+explain select a1,a2,b,min(c),max(c) from t1
+where exists ( select * from t2 where t2.c = t1.c )
+group by a1,a2,b;
+
+# the sub-select is unrelated to MIN/MAX
+explain select a1,a2,b,min(c),max(c) from t1
+where exists ( select * from t2 where t2.c > 'b1' )
+group by a1,a2,b;
+
+
+# A,B,C) Predicates referencing mixed classes of attributes
+# plans
+explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+explain select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+explain select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+explain select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b;
+
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+
+# queries
+select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b;
+
+select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
+select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
+select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
+select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
+select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+
+
+#
+# GROUP BY queries without MIN/MAX
+#
+
+# plans
+explain select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+explain select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+explain select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+explain select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+
+--replace_column 9 #
+explain select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+--replace_column 9 #
+explain select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+
+# queries
+select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+
+select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
+select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+
+#
+# DISTINCT queries
+#
+
+# plans
+explain select distinct a1,a2,b from t1;
+explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a');
+explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+explain select distinct b from t1 where (a2 >= 'b') and (b = 'a');
+
+--replace_column 9 #
+explain select distinct a1,a2,b from t2;
+--replace_column 9 #
+explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a');
+explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+--replace_column 9 #
+explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+explain select distinct b from t2 where (a2 >= 'b') and (b = 'a');
+
+# queries
+select distinct a1,a2,b from t1;
+select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a');
+select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+select distinct b from t1 where (a2 >= 'b') and (b = 'a');
+
+select distinct a1,a2,b from t2;
+select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a');
+select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+select distinct b from t2 where (a2 >= 'b') and (b = 'a');
+
+# BUG #6303
+select distinct t_00.a1
+from t1 t_00
+where exists ( select * from t2 where a1 = t_00.a1 );
+
+# BUG #8532 - SELECT DISTINCT a, a causes server to crash
+select distinct a1,a1 from t1;
+select distinct a2,a1,a2,a1 from t1;
+select distinct t1.a1,t2.a1 from t1,t2;
+
+
+#
+# DISTINCT queries with GROUP-BY
+#
+
+# plans
+explain select distinct a1,a2,b from t1;
+explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+explain select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+
+--replace_column 9 #
+explain select distinct a1,a2,b from t2;
+--replace_column 9 #
+explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+--replace_column 9 #
+explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+--replace_column 9 #
+explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+--replace_column 9 #
+explain select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+
+# queries
+select distinct a1,a2,b from t1;
+select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+
+select distinct a1,a2,b from t2;
+select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
+select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
+select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
+
+
+#
+# COUNT (DISTINCT cols) queries
+#
+
+explain select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
+explain select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+explain select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+explain select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
+explain select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
+
+select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
+select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
+select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
+select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
+select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
+
+#
+# Queries with expressions in the select clause
+#
+
+explain select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
+explain select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
+explain select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
+explain select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+explain select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
+
+select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
+select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
+select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
+select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
+select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
+
+
+#
+# Negative examples: queries that should NOT be treated as optimizable by
+# QUICK_GROUP_MIN_MAX_SELECT
+#
+
+# select a non-indexed attribute
+explain select a1,a2,b,d,min(c),max(c) from t1 group by a1,a2,b;
+
+explain select a1,a2,b,d from t1 group by a1,a2,b;
+
+# predicate that references an attribute that is after the MIN/MAX argument
+# in the index
+explain select a1,a2,min(b),max(b) from t1
+where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2;
+
+# predicate that references a non-indexed attribute
+explain select a1,a2,b,min(c),max(c) from t1
+where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b;
+
+explain select a1,a2,b,c from t1
+where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c;
+
+# non-equality predicate for a non-group select attribute
+explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1;
+explain select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b;
+
+# non-group field with an equality predicate that references a keypart after the
+# MIN/MAX argument
+explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
+select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
+
+# disjunction for a non-group select attribute
+explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b = 'a') group by a1;
+
+# non-range predicate for the MIN/MAX attribute
+explain select a1,a2,b,min(c),max(c) from t2
+where (c > 'a000') and (c <= 'd999') and (c like '_8__') group by a1,a2,b;
+
+# not all attributes are indexed by one index
+explain select a1, a2, b, c, min(d), max(d) from t1 group by a1,a2,b,c;
+
+# other aggregate functions than MIN/MAX
+explain select a1,a2,count(a2) from t1 group by a1,a2,b;
+explain select a1,a2,count(a2) from t1 where (a1 > 'a') group by a1,a2,b;
+explain select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b;
+
+
+#
+# Bug #16710: select distinct doesn't return all it should
+#
+
+explain select distinct(a1) from t1 where ord(a2) = 98;
+select distinct(a1) from t1 where ord(a2) = 98;
+
+#
+# BUG#11044: DISTINCT or GROUP BY queries with equality predicates instead of MIN/MAX.
+#
+
+explain select a1 from t1 where a2 = 'b' group by a1;
+select a1 from t1 where a2 = 'b' group by a1;
+
+explain select distinct a1 from t1 where a2 = 'b';
+select distinct a1 from t1 where a2 = 'b';
+
+drop table t1,t2,t3;
+#
+# Bug #14920 Ordering aggregated result sets with composite primary keys
+# corrupts resultset
+#
+create table t1 (c1 int not null,c2 int not null, primary key(c1,c2));
+insert into t1 (c1,c2) values
+(10,1),(10,2),(10,3),(20,4),(20,5),(20,6),(30,7),(30,8),(30,9);
+select distinct c1, c2 from t1 order by c2;
+select c1,min(c2) as c2 from t1 group by c1 order by c2;
+select c1,c2 from t1 group by c1,c2 order by c2;
+drop table t1;
+
+#
+# Bug #16203: Analysis for possible min/max optimization erroneously
+# returns impossible range
+#
+
+CREATE TABLE t1 (a varchar(5), b int(11), PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES ('AA',1), ('AA',2), ('AA',3), ('BB',1), ('AA',4);
+OPTIMIZE TABLE t1;
+
+SELECT a FROM t1 WHERE a='AA' GROUP BY a;
+SELECT a FROM t1 WHERE a='BB' GROUP BY a;
+
+EXPLAIN SELECT a FROM t1 WHERE a='AA' GROUP BY a;
+EXPLAIN SELECT a FROM t1 WHERE a='BB' GROUP BY a;
+
+SELECT DISTINCT a FROM t1 WHERE a='BB';
+SELECT DISTINCT a FROM t1 WHERE a LIKE 'B%';
+SELECT a FROM t1 WHERE a LIKE 'B%' GROUP BY a;
+
+DROP TABLE t1;
+
+
+#
+# Bug #15102: select distinct returns empty result, select count
+# distinct > 0 (correct)
+#
+
+CREATE TABLE t1 (
+ a int(11) NOT NULL DEFAULT '0',
+ b varchar(16) COLLATE latin1_general_ci NOT NULL DEFAULT '',
+ PRIMARY KEY (a,b)
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+
+delimiter |;
+
+CREATE PROCEDURE a(x INT)
+BEGIN
+ DECLARE rnd INT;
+ DECLARE cnt INT;
+
+ WHILE x > 0 DO
+ SET rnd= x % 100;
+ SET cnt = (SELECT COUNT(*) FROM t1 WHERE a = rnd);
+ INSERT INTO t1(a,b) VALUES (rnd, CAST(cnt AS CHAR));
+ SET x= x - 1;
+ END WHILE;
+END|
+
+DELIMITER ;|
+
+CALL a(1000);
+
+SELECT a FROM t1 WHERE a=0;
+SELECT DISTINCT a FROM t1 WHERE a=0;
+SELECT COUNT(DISTINCT a) FROM t1 WHERE a=0;
+
+DROP TABLE t1;
+DROP PROCEDURE a;
+
+#
+# Bug #18068: SELECT DISTINCT
+#
+
+CREATE TABLE t1 (a varchar(64) NOT NULL default '', PRIMARY KEY(a));
+
+INSERT INTO t1 (a) VALUES
+ (''), ('CENTRAL'), ('EASTERN'), ('GREATER LONDON'),
+ ('NORTH CENTRAL'), ('NORTH EAST'), ('NORTH WEST'), ('SCOTLAND'),
+ ('SOUTH EAST'), ('SOUTH WEST'), ('WESTERN');
+
+EXPLAIN SELECT DISTINCT a,a FROM t1 ORDER BY a;
+SELECT DISTINCT a,a FROM t1 ORDER BY a;
+
+DROP TABLE t1;
+
+#
+# Bug #21007: NATURAL JOIN (any JOIN (2 x NATURAL JOIN)) crashes the server
+#
+
+CREATE TABLE t1 (id1 INT, id2 INT);
+CREATE TABLE t2 (id2 INT, id3 INT, id5 INT);
+CREATE TABLE t3 (id3 INT, id4 INT);
+CREATE TABLE t4 (id4 INT);
+CREATE TABLE t5 (id5 INT, id6 INT);
+CREATE TABLE t6 (id6 INT);
+
+INSERT INTO t1 VALUES(1,1);
+INSERT INTO t2 VALUES(1,1,1);
+INSERT INTO t3 VALUES(1,1);
+INSERT INTO t4 VALUES(1);
+INSERT INTO t5 VALUES(1,1);
+INSERT INTO t6 VALUES(1);
+
+# original bug query
+SELECT * FROM
+t1
+ NATURAL JOIN
+(t2 JOIN (t3 NATURAL JOIN t4, t5 NATURAL JOIN t6)
+ ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5));
+
+# inner join swapped
+SELECT * FROM
+t1
+ NATURAL JOIN
+(((t3 NATURAL JOIN t4) join (t5 NATURAL JOIN t6) on t3.id4 = t5.id5) JOIN t2
+ ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5));
+
+# one join less, no ON cond
+SELECT * FROM t1 NATURAL JOIN ((t3 join (t5 NATURAL JOIN t6)) JOIN t2);
+
+# wrong error message: 'id2' - ambiguous column
+SELECT * FROM
+(t2 JOIN (t3 NATURAL JOIN t4, t5 NATURAL JOIN t6)
+ ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5))
+ NATURAL JOIN
+t1;
+SELECT * FROM
+(t2 JOIN ((t3 NATURAL JOIN t4) join (t5 NATURAL JOIN t6)))
+ NATURAL JOIN
+t1;
+
+DROP TABLE t1,t2,t3,t4,t5,t6;
+
+#
+# Bug#22342: No results returned for query using max and group by
+#
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b), KEY b (b));
+INSERT INTO t1 VALUES (1,1),(1,2),(1,0),(1,3);
+
+explain SELECT MAX(b), a FROM t1 WHERE b < 2 AND a = 1 GROUP BY a;
+SELECT MAX(b), a FROM t1 WHERE b < 2 AND a = 1 GROUP BY a;
+SELECT MIN(b), a FROM t1 WHERE b > 1 AND a = 1 GROUP BY a;
+CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c));
+INSERT INTO t2 SELECT a,b,b FROM t1;
+explain SELECT MIN(c) FROM t2 WHERE b = 2 and a = 1 and c > 1 GROUP BY a;
+SELECT MIN(c) FROM t2 WHERE b = 2 and a = 1 and c > 1 GROUP BY a;
+
+DROP TABLE t1,t2;
+
+#
+# Bug#24156: Loose index scan not used with CREATE TABLE ...SELECT and similar statements
+#
+
+CREATE TABLE t1 (a INT, b INT, INDEX (a,b));
+INSERT INTO t1 (a, b) VALUES (1,1), (1,2), (1,3), (1,4), (1,5),
+ (2,2), (2,3), (2,1), (3,1), (4,1), (4,2), (4,3), (4,4), (4,5), (4,6);
+EXPLAIN SELECT max(b), a FROM t1 GROUP BY a;
+FLUSH STATUS;
+SELECT max(b), a FROM t1 GROUP BY a;
+SHOW STATUS LIKE 'handler_read__e%';
+EXPLAIN SELECT max(b), a FROM t1 GROUP BY a;
+FLUSH STATUS;
+CREATE TABLE t2 SELECT max(b), a FROM t1 GROUP BY a;
+SHOW STATUS LIKE 'handler_read__e%';
+FLUSH STATUS;
+SELECT * FROM (SELECT max(b), a FROM t1 GROUP BY a) b;
+SHOW STATUS LIKE 'handler_read__e%';
+FLUSH STATUS;
+(SELECT max(b), a FROM t1 GROUP BY a) UNION
+ (SELECT max(b), a FROM t1 GROUP BY a);
+SHOW STATUS LIKE 'handler_read__e%';
+EXPLAIN (SELECT max(b), a FROM t1 GROUP BY a) UNION
+ (SELECT max(b), a FROM t1 GROUP BY a);
+
+EXPLAIN SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
+ FROM t1 AS t1_outer;
+EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE EXISTS
+ (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2);
+EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE
+ (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) > 12;
+EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE
+ a IN (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2);
+EXPLAIN SELECT 1 FROM t1 AS t1_outer GROUP BY a HAVING
+ a > (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2);
+EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2
+ ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
+ AND t1_outer1.b = t1_outer2.b;
+EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
+ FROM t1 AS t1_outer) x2 FROM t1 AS t1_outer2;
+
+CREATE TABLE t3 LIKE t1;
+FLUSH STATUS;
+INSERT INTO t3 SELECT a,MAX(b) FROM t1 GROUP BY a;
+SHOW STATUS LIKE 'handler_read__e%';
+DELETE FROM t3;
+FLUSH STATUS;
+INSERT INTO t3 SELECT 1, (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2)
+ FROM t1 LIMIT 1;
+SHOW STATUS LIKE 'handler_read__e%';
+FLUSH STATUS;
+DELETE FROM t3 WHERE (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) > 10000;
+SHOW STATUS LIKE 'handler_read__e%';
+FLUSH STATUS;
+DELETE FROM t3 WHERE (SELECT (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) x
+ FROM t1) > 10000;
+SHOW STATUS LIKE 'handler_read__e%';
+
+DROP TABLE t1,t2,t3;
+
+#
+# Bug#25602: queries with DISTINCT and SQL_BIG_RESULT hint
+# for which loose scan optimization is applied
+#
+
+CREATE TABLE t1 (a int, INDEX idx(a));
+INSERT INTO t1 VALUES
+ (4), (2), (1), (2), (4), (2), (1), (4),
+ (4), (2), (1), (2), (2), (4), (1), (4);
+
+EXPLAIN SELECT DISTINCT(a) FROM t1;
+SELECT DISTINCT(a) FROM t1;
+EXPLAIN SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
+SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
+
+DROP TABLE t1;
+
+
+
+
+
diff --git a/mysql-test/t/handler.test b/mysql-test/t/handler.test
index 55936e44b32..6ef216f6ed2 100644
--- a/mysql-test/t/handler.test
+++ b/mysql-test/t/handler.test
@@ -3,8 +3,11 @@
# test of HANDLER ...
#
+# should work in embedded server after mysqltest is fixed
+-- source include/not_embedded.inc
+
--disable_warnings
-drop table if exists t1;
+drop table if exists t1,t3,t4,t5;
--enable_warnings
create table t1 (a int, b char(10), key a(a), key b(a,b));
@@ -377,3 +380,83 @@ connection default;
drop table t1;
# End of 4.1 tests
+
+#
+# Addendum to Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
+# Show that DROP TABLE can no longer deadlock against
+# FLUSH TABLES WITH READ LOCK. This is a 5.0 issue.
+#
+create table t1 (c1 int);
+insert into t1 values (14397);
+flush tables with read lock;
+# The thread with the global read lock cannot drop the table itself:
+--error 1223
+drop table t1;
+#
+# client 2
+# We need a second connection to try the drop.
+# The drop waits for the global read lock to go away.
+# Without the addendum fix it locked LOCK_open before entering the wait loop.
+connection con2;
+--exec echo send the below to another connection, do not wait for the result
+send drop table t1;
+--sleep 1
+#
+# client 1
+# Now we need something that wants LOCK_open. A simple table access which
+# opens the table does the trick.
+--exec echo proceed with the normal connection
+connection default;
+# This would hang on LOCK_open without the 5.0 addendum fix.
+select * from t1;
+# Release the read lock. This should make the DROP go through.
+unlock tables;
+#
+# client 2
+# Read the result of the drop command.
+connection con2;
+--exec echo read the result from the other connection
+reap;
+#
+# client 1
+# Now back to normal operation. The table should not exist any more.
+--exec echo proceed with the normal connection
+connection default;
+--error 1146
+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
+create table t1 (a int) ENGINE=MEMORY;
+--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/t/having.test b/mysql-test/t/having.test
index c0ce3cbace7..827b83f11a0 100644
--- a/mysql-test/t/having.test
+++ b/mysql-test/t/having.test
@@ -2,7 +2,7 @@
#
--disable_warnings
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3;
--enable_warnings
create table t1 (a int);
@@ -178,3 +178,257 @@ SELECT DISTINCT t1.a
DROP TABLE t1,t2,t3;
# End of 4.1 tests
+
+#
+# Tests for WL#1972 CORRECT EVALUATION OF COLUMN REFERENCES IN THE HAVING CLAUSE
+# Per the SAP VERI tests and WL#1972, MySQL must ensure that HAVING can
+# correctly evaluate column references from the GROUP BY clause, even if the
+# same references are not also found in the select list.
+#
+
+# set global sql_mode='ansi';
+# set session sql_mode='ansi';
+
+create table t1 (col1 int, col2 varchar(5), col_t1 int);
+create table t2 (col1 int, col2 varchar(5), col_t2 int);
+create table t3 (col1 int, col2 varchar(5), col_t3 int);
+
+insert into t1 values(10,'hello',10);
+insert into t1 values(20,'hello',20);
+insert into t1 values(30,'hello',30);
+insert into t1 values(10,'bye',10);
+insert into t1 values(10,'sam',10);
+insert into t1 values(10,'bob',10);
+
+insert into t2 select * from t1;
+insert into t3 select * from t1;
+
+select count(*) from t1 group by col1 having col1 = 10;
+select count(*) as count_col1 from t1 group by col1 having col1 = 10;
+select count(*) as count_col1 from t1 as tmp1 group by col1 having col1 = 10;
+select count(*) from t1 group by col2 having col2 = 'hello';
+--error 1054
+select count(*) from t1 group by col2 having col1 = 10;
+select col1 as count_col1 from t1 as tmp1 group by col1 having col1 = 10;
+select col1 as count_col1 from t1 as tmp1 group by col1 having count_col1 = 10;
+select col1 as count_col1 from t1 as tmp1 group by count_col1 having col1 = 10;
+# ANSI: should return SQLSTATE 42000 Syntax error or access violation
+# MySQL: returns 10 - because of GROUP BY name resolution
+select col1 as count_col1 from t1 as tmp1 group by count_col1 having count_col1 = 10;
+# ANSI: should return SQLSTATE 42000 Syntax error or access violation
+# MySQL: returns 10 - because of GROUP BY name resolution
+select col1 as count_col1,col2 from t1 as tmp1 group by col1,col2 having col1 = 10;
+select col1 as count_col1,col2 from t1 as tmp1 group by col1,col2 having count_col1 = 10;
+select col1 as count_col1,col2 from t1 as tmp1 group by col1,col2 having col2 = 'hello';
+select col1 as count_col1,col2 as group_col2 from t1 as tmp1 group by col1,col2 having group_col2 = 'hello';
+--error 1064
+select sum(col1) as co12 from t1 group by col2 having col2 10;
+select sum(col1) as co2, count(col2) as cc from t1 group by col1 having col1 =10;
+--error 1054
+select t2.col2 from t2 group by t2.col1, t2.col2 having t1.col1 <= 10;
+
+
+#
+# queries with nested sub-queries
+#
+
+# the having column is resolved in the same query
+select t1.col1 from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2 having t2.col1 <= 10);
+
+select t1.col1 from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2
+ having t2.col1 <=
+ (select min(t3.col1) from t3));
+
+# the having column is resolved in the SELECT clause of the outer query -
+# works in ANSI
+select t1.col1 from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2 having t1.col1 <= 10);
+
+# the having column is resolved in the SELECT clause of the outer query -
+# error in ANSI, works with MySQL extension
+select t1.col1 as tmp_col from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2 having tmp_col <= 10);
+
+# the having column is resolved in the FROM clause of the outer query -
+# works in ANSI
+select t1.col1 from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2 having col_t1 <= 10);
+
+# Item_field must be resolved in the same way as Item_ref
+select sum(col1) from t1
+group by col_t1
+having (select col_t1 from t2 where col_t1 = col_t2 order by col_t2 limit 1);
+
+# nested queries with HAVING, inner having column resolved in outer FROM clause
+# the outer having column is not referenced in GROUP BY which results in an error
+--error 1054
+select t1.col1 from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2 having col_t1 <= 10)
+having col_t1 <= 20;
+
+# both having columns are resolved in the GROUP clause of the outer query
+select t1.col1 from t1
+where t1.col2 in
+ (select t2.col2 from t2
+ group by t2.col1, t2.col2 having col_t1 <= 10)
+group by col_t1
+having col_t1 <= 20;
+
+#
+# nested HAVING clauses
+#
+
+# non-correlated subqueries
+select col_t1, sum(col1) from t1
+group by col_t1
+having col_t1 > 10 and
+ exists (select sum(t2.col1) from t2
+ group by t2.col2 having t2.col2 > 'b');
+
+# correlated subqueries - inner having column 't1.col2' resolves to
+# the outer FROM clause, which cannot be used because the outer query
+# is grouped
+--error 1054
+select sum(col1) from t1
+group by col_t1
+having col_t1 in (select sum(t2.col1) from t2
+ group by t2.col2, t2.col1 having t2.col1 = t1.col1);
+
+# correlated subqueries - inner having column 'col_t1' resolves to
+# the outer GROUP clause
+select sum(col1) from t1
+group by col_t1
+having col_t1 in (select sum(t2.col1) from t2
+ group by t2.col2, t2.col1 having t2.col1 = col_t1);
+
+#
+# queries with joins and ambiguous column names
+#
+--error 1052
+select t1.col1, t2.col1 from t1, t2 where t1.col1 = t2.col1
+group by t1.col1, t2.col1 having col1 = 2;
+
+--error 1052
+select t1.col1*10+t2.col1 from t1,t2 where t1.col1=t2.col1
+group by t1.col1, t2.col1 having col1 = 2;
+
+drop table t1, t2, t3;
+
+# More queries to test ANSI compatibility
+create table t1 (s1 int);
+insert into t1 values (1),(2),(3);
+
+select count(*) from t1 group by s1 having s1 is null;
+
+# prepared statements prints warnings too early
+--disable_ps_protocol
+select s1*0 as s1 from t1 group by s1 having s1 <> 0;
+--enable_ps_protocol
+
+# ANSI requires: 3 rows
+# MySQL returns: 0 rows - because of GROUP BY name resolution
+
+select s1*0 from t1 group by s1 having s1 = 0;
+
+select s1 from t1 group by 1 having 1 = 0;
+
+select count(s1) from t1 group by s1 having count(1+1)=2;
+# ANSI requires: 3 rows
+# MySQL returns: 0 rows - because of GROUP BY name resolution
+
+select count(s1) from t1 group by s1 having s1*0=0;
+
+-- error 1052
+select * from t1 a, t1 b group by a.s1 having s1 is null;
+# ANSI requires: 0 rows
+# MySQL returns:
+# "ERROR 1052 (23000): Column 's1' in having clause is ambiguous"
+# I think the column is ambiguous in ANSI too.
+# It is the same as:
+# select a.s1, b.s1 from t1 a, t1 b group by a.s1 having s1 is null;
+# currently we first check SELECT, thus s1 is ambiguous.
+
+drop table t1;
+
+create table t1 (s1 char character set latin1 collate latin1_german1_ci);
+insert into t1 values ('ü'),('y');
+
+select s1,count(s1) from t1
+group by s1 collate latin1_swedish_ci having s1 = 'y';
+# ANSI requires: 1 row, with count(s1) = 2
+# MySQL returns: 1 row, with count(s1) = 1
+
+drop table t1;
+
+
+#
+# Bug #15917: unexpected complain for a name in having clause
+# when the server is run on Windows or with --lower-case-table-names=1
+#
+
+--disable_warnings
+DROP SCHEMA IF EXISTS HU;
+--enable_warnings
+CREATE SCHEMA HU ;
+USE HU ;
+
+CREATE TABLE STAFF
+ (EMPNUM CHAR(3) NOT NULL UNIQUE,
+ EMPNAME CHAR(20),
+ GRADE DECIMAL(4),
+ CITY CHAR(15));
+
+CREATE TABLE PROJ
+ (PNUM CHAR(3) NOT NULL UNIQUE,
+ PNAME CHAR(20),
+ PTYPE CHAR(6),
+ BUDGET DECIMAL(9),
+ CITY CHAR(15));
+
+INSERT INTO STAFF VALUES ('E1','Alice',12,'Deale');
+INSERT INTO STAFF VALUES ('E2','Betty',10,'Vienna');
+INSERT INTO STAFF VALUES ('E3','Carmen',13,'Vienna');
+INSERT INTO STAFF VALUES ('E4','Don',12,'Deale');
+INSERT INTO STAFF VALUES ('E5','Ed',13,'Akron');
+
+INSERT INTO PROJ VALUES ('P1','MXSS','Design',10000,'Deale');
+INSERT INTO PROJ VALUES ('P2','CALM','Code',30000,'Vienna');
+INSERT INTO PROJ VALUES ('P3','SDP','Test',30000,'Tampa');
+INSERT INTO PROJ VALUES ('P4','SDP','Design',20000,'Deale');
+INSERT INTO PROJ VALUES ('P5','IRM','Test',10000,'Vienna');
+INSERT INTO PROJ VALUES ('P6','PAYR','Design',50000,'Deale');
+
+SELECT EMPNUM, GRADE*1000
+ FROM HU.STAFF WHERE GRADE * 1000 >
+ ANY (SELECT SUM(BUDGET) FROM HU.PROJ
+ GROUP BY CITY, PTYPE
+ HAVING HU.PROJ.CITY = HU.STAFF.CITY);
+
+DROP SCHEMA HU;
+USE test;
+#
+# Bug#18739: non-standard HAVING extension was allowed in strict ANSI sql mode.
+#
+create table t1(f1 int);
+select f1 from t1 having max(f1)=f1;
+select f1 from t1 group by f1 having max(f1)=f1;
+set session sql_mode='ONLY_FULL_GROUP_BY';
+--error 1463
+select f1 from t1 having max(f1)=f1;
+select f1 from t1 group by f1 having max(f1)=f1;
+set session sql_mode='';
+drop table t1;
diff --git a/mysql-test/t/heap.test b/mysql-test/t/heap.test
index 50147b4182d..e501fce1eeb 100644
--- a/mysql-test/t/heap.test
+++ b/mysql-test/t/heap.test
@@ -3,7 +3,7 @@
#
--disable_warnings
-drop table if exists t1;
+drop table if exists t1,t2,t3;
--enable_warnings
create table t1 (a int not null,b int not null, primary key (a)) engine=heap comment="testing heaps" avg_row_length=100 min_rows=1 max_rows=100;
@@ -34,7 +34,7 @@ select * from t1;
drop table t1;
create table t1 (a int not null) engine=heap;
-insert into t1 values (869751),(736494),(226312),(802616);
+insert into t1 values (869751),(736494),(226312),(802616),(728912);
select * from t1 where a > 736494;
alter table t1 add unique uniq_id(a);
select * from t1 where a > 736494;
@@ -197,34 +197,236 @@ select * from t1;
drop table t1;
#
+# Test varchar
+# We can't use varchar.inc becasue heap doesn't support blob's
+#
+
+let $default=`select @@storage_engine`;
+set storage_engine=HEAP;
+
+#
+# Simple basic test that endspace is saved
+#
+
+create table t1 (v varchar(10), c char(10), t varchar(50));
+insert into t1 values('+ ', '+ ', '+ ');
+set @a=repeat(' ',20);
+insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
+select concat('*',v,'*',c,'*',t,'*') from t1;
+
+# Check how columns are copied
+show create table t1;
+create table t2 like t1;
+show create table t2;
+create table t3 select * from t1;
+show create table t3;
+alter table t1 modify c varchar(10);
+show create table t1;
+alter table t1 modify v char(10);
+show create table t1;
+alter table t1 modify t varchar(10);
+show create table t1;
+select concat('*',v,'*',c,'*',t,'*') from t1;
+drop table t1,t2,t3;
+
+#
+# Testing of keys
+#
+create table t1 (v varchar(10), c char(10), t varchar(50), key(v), key(c), key(t(10)));
+show create table t1;
+disable_query_log;
+let $1=10;
+while ($1)
+{
+ let $2=27;
+ eval set @space=repeat(' ',10-$1);
+ while ($2)
+ {
+ eval set @char=char(ascii('a')+$2-1);
+ insert into t1 values(concat(@char,@space),concat(@char,@space),concat(@char,@space));
+ dec $2;
+ }
+ dec $1;
+}
+enable_query_log;
+select count(*) from t1;
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+select count(*) from t1 where c='a';
+select count(*) from t1 where t='a';
+select count(*) from t1 where v='a ';
+select count(*) from t1 where c='a ';
+select count(*) from t1 where t='a ';
+select count(*) from t1 where v between 'a' and 'a ';
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+select count(*) from t1 where v like 'a%';
+select count(*) from t1 where c like 'a%';
+select count(*) from t1 where t like 'a%';
+select count(*) from t1 where v like 'a %';
+explain select count(*) from t1 where v='a ';
+explain select count(*) from t1 where c='a ';
+explain select count(*) from t1 where t='a ';
+explain select count(*) from t1 where v like 'a%';
+explain select count(*) from t1 where v between 'a' and 'a ';
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+
+--error 1062
+alter table t1 add unique(v);
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a' order by length(concat('*',v,'*',c,'*',t,'*'));
+explain select * from t1 where v='a';
+
+# GROUP BY
+
+select v,count(*) from t1 group by v limit 10;
+select v,count(t) from t1 group by v limit 10;
+select v,count(c) from t1 group by v limit 10;
+select sql_big_result trim(v),count(t) from t1 group by v limit 10;
+select sql_big_result trim(v),count(c) from t1 group by v limit 10;
+select c,count(*) from t1 group by c limit 10;
+select c,count(t) from t1 group by c limit 10;
+select sql_big_result c,count(t) from t1 group by c limit 10;
+select t,count(*) from t1 group by t limit 10;
+select t,count(t) from t1 group by t limit 10;
+select sql_big_result trim(t),count(t) from t1 group by t limit 10;
+drop table t1;
+
+#
+# Test unique keys
+#
+
+create table t1 (a char(10), unique (a));
+insert into t1 values ('a');
+--error 1062
+insert into t1 values ('a ');
+
+alter table t1 modify a varchar(10);
+--error 1062
+insert into t1 values ('a '),('a '),('a '),('a ');
+--error 1062
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+update t1 set a='a ' where a like 'a ';
+update t1 set a='a ' where a like 'a ';
+drop table t1;
+
+#
+# Testing of btree keys
+#
+
+create table t1 (v varchar(10), c char(10), t varchar(50), key using btree (v), key using btree (c), key using btree (t(10)));
+show create table t1;
+disable_query_log;
+let $1=10;
+while ($1)
+{
+ let $2=27;
+ eval set @space=repeat(' ',10-$1);
+ while ($2)
+ {
+ eval set @char=char(ascii('a')+$2-1);
+ insert into t1 values(concat(@char,@space),concat(@char,@space),concat(@char,@space));
+ dec $2;
+ }
+ dec $1;
+}
+enable_query_log;
+select count(*) from t1;
+insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
+select count(*) from t1 where v='a';
+select count(*) from t1 where c='a';
+select count(*) from t1 where t='a';
+select count(*) from t1 where v='a ';
+select count(*) from t1 where c='a ';
+select count(*) from t1 where t='a ';
+select count(*) from t1 where v between 'a' and 'a ';
+--replace_column 9 #
+select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+--replace_column 9 #
+explain select count(*) from t1 where v='a ';
+--replace_column 9 #
+explain select count(*) from t1 where c='a ';
+--replace_column 9 #
+explain select count(*) from t1 where t='a ';
+--replace_column 9 #
+explain select count(*) from t1 where v like 'a%';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ';
+--replace_column 9 #
+explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
+
+--error 1062
+alter table t1 add unique(v);
+select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a' order by length(concat('*',v,'*',c,'*',t,'*'));
+# Number of rows is not constant for b-trees keys
+--replace_column 9 #
+explain select * from t1 where v='a';
+
+drop table t1;
+
+#
+# Test unique btree keys
+#
+
+create table t1 (a char(10), unique using btree (a)) engine=heap;
+insert into t1 values ('a');
+--error 1062
+insert into t1 values ('a ');
+
+alter table t1 modify a varchar(10);
+--error 1062
+insert into t1 values ('a '),('a '),('a '),('a ');
+--error 1062
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+--error 1062
+insert into t1 values ('a ');
+update t1 set a='a ' where a like 'a ';
+update t1 set a='a ' where a like 'a ';
+drop table t1;
+
+#
+# test show create table
+#
+
+create table t1 (v varchar(10), c char(10), t varchar(50), key(v(5)), key(c(5)), key(t(5)));
+show create table t1;
+drop table t1;
+
+create table t1 (v varchar(65530), key(v(10)));
+show create table t1;
+insert into t1 values(repeat('a',65530));
+select length(v) from t1 where v=repeat('a',65530);
+drop table t1;
+
+#
+# Reset varchar test
+#
+eval set storage_engine=$default;
+
+#
# Bug #8489: Strange auto_increment behaviour
#
create table t1 (a bigint unsigned auto_increment primary key, b int,
key (b, a)) engine=heap;
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-insert t1 (b) values (1);
-select * from t1;
+insert t1 (b) values (1),(1),(1),(1),(1),(1),(1),(1);
+select * from t1;
drop table t1;
+
create table t1 (a int not null, b int not null auto_increment,
primary key(a, b), key(b)) engine=heap;
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-insert t1 (a) values (1);
-select * from t1;
+insert t1 (a) values (1),(1),(1),(1),(1),(1),(1),(1);
+select * from t1;
drop table t1;
+--error 1075
+create table t1 (a int not null, b int not null auto_increment,
+ primary key(a, b)) engine=heap;
+
#
# Bug #10566: Verify that we can create a prefixed key with length > 255
#
@@ -246,3 +448,26 @@ select * from t1 where a = 0;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #3094: Row format of memory tables should always be reported as Fixed
+#
+create table t1 (c char(10)) engine=memory;
+create table t2 (c varchar(10)) engine=memory;
+--replace_column 8 #
+show table status like 't_';
+drop table t1, t2;
+
+#
+# BUG#18233 - Memory tables INDEX USING HASH (a,b) returns 1 row on
+# SELECT WHERE a= AND b=
+#
+CREATE TABLE t1(a VARCHAR(1), b VARCHAR(2), c VARCHAR(256),
+ KEY(a), KEY(b), KEY(c)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('a','aa',REPEAT('a', 256)),('a','aa',REPEAT('a',256));
+SELECT COUNT(*) FROM t1 WHERE a='a';
+SELECT COUNT(*) FROM t1 WHERE b='aa';
+SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256);
+DROP TABLE t1;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/heap_btree.test b/mysql-test/t/heap_btree.test
index 849b7e12843..76c319c0bc1 100644
--- a/mysql-test/t/heap_btree.test
+++ b/mysql-test/t/heap_btree.test
@@ -34,7 +34,7 @@ select * from t1;
drop table t1;
create table t1 (a int not null) engine=heap;
-insert into t1 values (869751),(736494),(226312),(802616);
+insert into t1 values (869751),(736494),(226312),(802616),(728912);
select * from t1 where a > 736494;
alter table t1 add unique uniq_id using BTREE (a);
select * from t1 where a > 736494;
@@ -170,14 +170,14 @@ DROP TABLE t1;
create table t1(a int not null, key using btree(a)) engine=heap;
insert into t1 values (2), (2), (2), (1), (1), (3), (3), (3), (3);
-select a from t1 where a > 2;
+select a from t1 where a > 2 order by a;
delete from t1 where a < 4;
select a from t1 order by a;
insert into t1 values (2), (2), (2), (1), (1), (3), (3), (3), (3);
-select a from t1 where a > 4;
+select a from t1 where a > 4 order by a;
delete from t1 where a > 4;
select a from t1 order by a;
-select a from t1 where a > 3;
+select a from t1 where a > 3 order by a;
delete from t1 where a >= 2;
select a from t1 order by a;
drop table t1;
@@ -223,3 +223,35 @@ SELECT * FROM t1;
DROP TABLE t1;
--echo End of 4.1 tests
+
+#
+# BUG#18160 - Memory-/HEAP Table endless growing indexes
+#
+CREATE TABLE t1(val INT, KEY USING BTREE(val)) ENGINE=memory;
+INSERT INTO t1 VALUES(0);
+--replace_result 37 21
+SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1';
+UPDATE t1 SET val=1;
+--replace_result 37 21
+SELECT INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1';
+DROP TABLE t1;
+
+#
+# BUG#12873 - BTREE index on MEMORY table with multiple NULL values doesn't
+# work properly
+#
+CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES(NULL),(NULL);
+DROP TABLE t1;
+
+#
+# Bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup
+#
+create table t1(a varchar(255), b varchar(255),
+ key using btree (a,b)) engine=memory;
+insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0);
+select * from t1 where a is null;
+drop table t1;
+
+--echo End of 5.0 tests
+
diff --git a/mysql-test/t/heap_hash.test b/mysql-test/t/heap_hash.test
index 2cdec652688..c0f37fe490e 100644
--- a/mysql-test/t/heap_hash.test
+++ b/mysql-test/t/heap_hash.test
@@ -34,7 +34,7 @@ select * from t1;
drop table t1;
create table t1 (a int not null) engine=heap;
-insert into t1 values (869751),(736494),(226312),(802616);
+insert into t1 values (869751),(736494),(226312),(802616),(728912);
select * from t1 where a > 736494;
alter table t1 add unique uniq_id using HASH (a);
select * from t1 where a > 736494;
@@ -260,4 +260,27 @@ select a from t1 where a in (1,3);
explain select a from t1 where a in (1,3);
drop table t1;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+#
+# Bug #27643: query failed : 1114 (The table '' is full)
+#
+# Check that HASH indexes disregard trailing spaces when comparing
+# strings with binary collations
+
+CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ col2 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('A', 'A');
+--error ER_DUP_ENTRY
+INSERT INTO t1 VALUES('A ', 'A ');
+DROP TABLE t1;
+CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+ col2 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
+ UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
+INSERT INTO t1 VALUES('A', 'A');
+--error ER_DUP_ENTRY
+INSERT INTO t1 VALUES('A ', 'A ');
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/im_daemon_life_cycle-im.opt b/mysql-test/t/im_daemon_life_cycle-im.opt
new file mode 100644
index 00000000000..3a45c7a41f7
--- /dev/null
+++ b/mysql-test/t/im_daemon_life_cycle-im.opt
@@ -0,0 +1,3 @@
+--run-as-service
+--log=$MYSQLTEST_VARDIR/log/im.log
+--monitoring-interval=1
diff --git a/mysql-test/t/im_daemon_life_cycle.imtest b/mysql-test/t/im_daemon_life_cycle.imtest
new file mode 100644
index 00000000000..0ecc3f18f40
--- /dev/null
+++ b/mysql-test/t/im_daemon_life_cycle.imtest
@@ -0,0 +1,98 @@
+###########################################################################
+#
+# This file contains test for (1.2) test suite.
+#
+# Consult WL#2789 for more information.
+#
+###########################################################################
+
+--exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle im_daemon_life_cycle.imtest started.
+
+###########################################################################
+
+--source include/im_check_env.inc
+
+# Turn on reconnect, not on by default anymore.
+--enable_reconnect
+
+###########################################################################
+#
+# The main daemon-life-cycle test case -- check that IM-angel will restart
+# IM-main if it got killed:
+# - kill IM-main and check that IM-angel will restart it;
+# - wait for IM-main to start accepting connections before continue test
+# case;
+#
+# NOTE: timeout is 55 seconds. Timeout should be more than shutdown-delay
+# specified for managed MySQL instance. Now shutdown-delay is 10 seconds
+# (set in mysql-test-run.pl). So, 55 seconds should be enough to make 5
+# attempts.
+#
+###########################################################################
+
+--exec $MYSQL_TEST_DIR/t/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 $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 $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Main-test: done.
+
+###########################################################################
+#
+# BUG#12751: Instance Manager: client hangs
+# - start nonguarded instance (mysqld2);
+# - kill IM-main and get it restarted by IM-angel;
+# - check that guarded instance (mysqld1) is accepting connections.
+# - check that non-guarded instance (mysqld2) were not stopped.
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- Test for BUG#12751
+--echo --------------------------------------------------------------------
+
+--exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle BUG12751: starting...
+
+# 1. Start mysqld;
+
+--exec $MYSQL_TEST_DIR/t/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 $MYSQL_TEST_DIR/t/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 $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
+
+# 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...
+
+--replace_column 2 STATE 3 VERSION
+SHOW INSTANCE STATUS mysqld1;
+
+# 4. Stop mysqld2, because it will not be stopped by IM, as it is nonguarded.
+# 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...
+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 $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle BUG12751: done.
diff --git a/mysql-test/t/im_life_cycle-im.opt b/mysql-test/t/im_life_cycle-im.opt
new file mode 100644
index 00000000000..34b74ce0c95
--- /dev/null
+++ b/mysql-test/t/im_life_cycle-im.opt
@@ -0,0 +1 @@
+--monitoring-interval=1
diff --git a/mysql-test/t/im_life_cycle.imtest b/mysql-test/t/im_life_cycle.imtest
new file mode 100644
index 00000000000..3721b92e2b7
--- /dev/null
+++ b/mysql-test/t/im_life_cycle.imtest
@@ -0,0 +1,203 @@
+###########################################################################
+#
+# This file contains test for (1.1) test suite.
+#
+# Consult WL#2789 for more information.
+#
+###########################################################################
+
+--source include/im_check_env.inc
+
+###########################################################################
+#
+# 1.1.2. Check 'START INSTANCE' command:
+# - start the second instance;
+# - check that it is reported as online;
+# - execute some SQL-statement on mysqld2 to ensure that it is really up and
+# running;
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.2.
+--echo --------------------------------------------------------------------
+
+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
+
+# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
+# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
+# its pid file is not enough, because it is unknown when IM detects that
+# mysqld has started.
+# SHOW INSTANCES;
+
+--connect (mysql_con,localhost,root,,mysql,$IM_MYSQLD2_PORT,$IM_MYSQLD2_SOCK)
+--connection mysql_con
+
+--replace_result $IM_MYSQLD2_PORT IM_MYSQLD2_PORT
+SHOW VARIABLES LIKE 'port';
+
+--connection default
+--disconnect mysql_con
+
+###########################################################################
+#
+# 1.1.3. Check 'STOP INSTANCE' command:
+# - stop the second instance;
+# - check that it is reported as offline;
+# - TODO: try to execute some SQL-statement to ensure that it is really down;
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.3.
+--echo --------------------------------------------------------------------
+
+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
+
+# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
+# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
+# its pid file is not enough, because it is unknown when IM detects that
+# mysqld has started.
+# SHOW INSTANCES;
+
+###########################################################################
+#
+# 1.1.4. Check that Instance Manager reports correct errors for 'START
+# INSTANCE' command:
+# - if the client tries to start unregistered instance;
+# - if the client tries to start already started instance;
+# - if the client submits invalid arguments;
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.4.
+--echo --------------------------------------------------------------------
+
+--error 3000 # ER_BAD_INSTANCE_NAME
+START INSTANCE mysqld3;
+
+--error 3002 # ER_INSTANCE_ALREADY_STARTED
+START INSTANCE mysqld1;
+
+###########################################################################
+#
+# 1.1.5. Check that Instance Manager reports correct errors for
+# 'STOP INSTANCE' command:
+# - if the client tries to start unregistered instance;
+# - if the client tries to start already stopped instance;
+# - if the client submits invalid arguments;
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.5.
+--echo --------------------------------------------------------------------
+
+--error 3000 # ER_BAD_INSTANCE_NAME
+STOP INSTANCE mysqld3;
+
+# TODO: IM should be fixed.
+# BUG#12673: Instance Manager allows to stop the instance many times
+# --error 3002 # ER_INSTANCE_ALREADY_STARTED
+# STOP INSTANCE mysqld2;
+
+###########################################################################
+#
+# 1.1.6. Check that Instance Manager is able to restart guarded instances.
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.6.
+--echo --------------------------------------------------------------------
+
+--exec $MYSQL_TEST_DIR/t/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.
+
+--sleep 3
+
+SHOW INSTANCES;
+
+###########################################################################
+#
+# 1.1.7. Check that Instance Manager does not restart non-guarded instance.
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.7.
+--echo --------------------------------------------------------------------
+
+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
+
+# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
+# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
+# its pid file is not enough, because it is unknown when IM detects that
+# mysqld has started.
+# SHOW INSTANCES;
+
+--exec $MYSQL_TEST_DIR/t/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
+# its pid file is not enough, because it is unknown when IM detects that
+# mysqld has started.
+# SHOW INSTANCES;
+
+###########################################################################
+#
+# 1.1.8. Check that Instance Manager returns an error on
+# incomplete SHOW INSTANCE STATUS command.
+#
+###########################################################################
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- 1.1.8.
+--echo --------------------------------------------------------------------
+
+--error ER_SYNTAX_ERROR
+SHOW INSTANCE STATUS;
+
+#
+# Tests for bug fixes
+#
+
+#
+# Bug #12813 Instance Manager: START/STOP INSTANCE commands accept
+# a list as argument.
+#
+
+--echo
+--echo --------------------------------------------------------------------
+--echo -- BUG#12813
+--echo --------------------------------------------------------------------
+
+--error ER_SYNTAX_ERROR
+START INSTANCE mysqld1,mysqld2,mysqld3;
+
+--error ER_SYNTAX_ERROR
+STOP INSTANCE mysqld1,mysqld2,mysqld3;
+
+#
+# Bug #12673: Instance Manager: allows to stop the instance many times
+#
+--error 3001
+STOP INSTANCE mysqld2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/im_options_set.imtest b/mysql-test/t/im_options_set.imtest
new file mode 100644
index 00000000000..6a70c31c0a4
--- /dev/null
+++ b/mysql-test/t/im_options_set.imtest
@@ -0,0 +1,116 @@
+###########################################################################
+#
+# This file contains test for (3) test suite.
+#
+# Consult WL#2789 for more information.
+#
+###########################################################################
+
+#
+# Check the options-management commands:
+# - SET;
+# - FLUSH INSTANCES;
+#
+# Let's test the commands on the option 'server_id'. It's expected that
+# originally the instances have the following server ids:
+# - mysqld1: 1
+# - mysqld2: 2
+#
+# 1. SET <instance_id>.server_id= SERVER_ID); where SERVER_ID is 11 or 12.
+# 1.1. check that the configuration file has been updated (i.e. contains
+# server_id=SERVER_ID for the instance);
+# 1.2. (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns zero;
+# 1.3. check that internal cache of Instance Manager has not been affected
+# (i.e. SHOW INSTANCE OPTIONS <instance> does not contain updated value).
+#
+# 2. FLUSH INSTANCES;
+# 2.1. check that the configuration file has not been updated;
+# 2.2. (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns zero value;
+# 2.3. check that internal cache of Instance Manager has been updated (i.e.
+# SHOW INSTANCE OPTIONS <instance> contains 'server_id=SERVER_ID' line).
+#
+# 3. Restore options.
+#
+
+###########################################################################
+
+--source include/im_check_env.inc
+
+###########################################################################
+#
+# 1. SET <instance_id>.server_id= SERVER_ID); where SERVER_ID is 11 or 12.
+#
+###########################################################################
+
+# * mysqld1
+
+SET mysqld1.server_id = 11;
+
+# - check that the configuration file has been updated (i.e. contains
+# server_id=SERVER_ID for the instance);
+
+--exec grep server_id $MYSQLTEST_VARDIR/im.cnf ;
+
+# - (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns zero;
+
+--connection mysql1_con
+
+SHOW VARIABLES LIKE 'server_id';
+
+--connection default
+
+# - check that internal cache of Instance Manager has not been affected
+# (i.e. SHOW INSTANCE OPTIONS <instance> does not contain updated value).
+# TODO: we should check only server_id option here.
+
+# SHOW INSTANCE OPTIONS mysqld1;
+
+# * mysqld2
+
+SET mysqld2.server_id = 12;
+
+# - check that the configuration file has been updated (i.e. contains
+# server_id=SERVER_ID for the instance);
+
+--exec grep server_id $MYSQLTEST_VARDIR/im.cnf ;
+
+# - check that internal cache of Instance Manager has not been affected
+# (i.e. SHOW INSTANCE OPTIONS <instance> does not contain updated value).
+# TODO: we should check only server_id option here.
+
+# SHOW INSTANCE OPTIONS mysqld2;
+
+###########################################################################
+#
+# 2. FLUSH INSTANCES;
+#
+###########################################################################
+
+FLUSH INSTANCES;
+
+# - check that the configuration file has not been updated;
+
+--exec grep server_id $MYSQLTEST_VARDIR/im.cnf ;
+
+# - (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns zero value;
+
+--connection mysql1_con
+
+SHOW VARIABLES LIKE 'server_id';
+
+--connection default
+
+# - check that internal cache of Instance Manager has been updated (i.e.
+# SHOW INSTANCE OPTIONS <instance> contains 'server_id=' line).
+# TODO: we should check only server_id option here.
+
+# SHOW INSTANCE OPTIONS mysqld1;
+# SHOW INSTANCE OPTIONS mysqld2;
diff --git a/mysql-test/t/im_options_unset.imtest b/mysql-test/t/im_options_unset.imtest
new file mode 100644
index 00000000000..074c9a3b869
--- /dev/null
+++ b/mysql-test/t/im_options_unset.imtest
@@ -0,0 +1,124 @@
+###########################################################################
+#
+# This file contains test for (3) test suite.
+#
+# Consult WL#2789 for more information.
+#
+###########################################################################
+
+#
+# Check the options-management commands:
+# - UNSET;
+# - FLUSH INSTANCES;
+#
+# Let's test the commands on the option 'server_id'. It's expected that
+# originally the instances have the following server ids:
+# - mysqld1: 1
+# - mysqld2: 2
+#
+# The test case:
+#
+# 1. UNSET <instance_id>.server_id;
+#
+# Do the step for both instances.
+#
+# 1.1. check that the configuration file has been updated (i.e. does not
+# contain 'server_id=' line for the instance);
+# 1.2. (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns non-zero value;
+# 1.3. check that internal cache of Instance Manager is not affected (i.e.
+# SHOW INSTANCE OPTIONS <instance> contains non-zero value for server_id);
+#
+# 2. FLUSH INSTANCES;
+#
+# Do the step for both instances.
+#
+# 2.1. check that the configuration file has not been updated (i.e. does not
+# contain 'server_id=' for the instance);
+# 2.2. (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns non-zero value;
+# 2.3. check that internal cache of Instance Manager has been updated (i.e.
+# SHOW INSTANCE OPTIONS <instance> does not contain 'server_id=' line).
+#
+
+###########################################################################
+
+--source include/im_check_env.inc
+
+###########################################################################
+#
+# 1. UNSET <instance_id>.server_id;
+#
+###########################################################################
+
+# * mysqld1
+
+UNSET mysqld1.server_id;
+
+# - check that the configuration file has been updated (i.e. does not
+# contain 'server_id=' line for the instance);
+
+--exec grep server_id $MYSQLTEST_VARDIR/im.cnf ;
+
+# - check that the running instance has not been affected: connect to the
+# instance and check that 'SHOW VARIABLES LIKE 'server_id'' returns non-zero
+# value;
+
+--connection mysql1_con
+
+SHOW VARIABLES LIKE 'server_id';
+
+--connection default
+
+# - check that internal cache of Instance Manager is not affected (i.e. SHOW
+# INSTANCE OPTIONS <instance> contains non-zero value for server_id);
+# TODO: we should check only server_id option here.
+
+# SHOW INSTANCE OPTIONS mysqld1;
+
+# * mysqld2
+
+UNSET mysqld2.server_id;
+
+# - check that the configuration file has been updated (i.e. does not
+# contain 'server_id=' line for the instance);
+
+--exec grep server_id $MYSQLTEST_VARDIR/im.cnf || true;
+
+# - check that internal cache of Instance Manager is not affected (i.e. SHOW
+# INSTANCE OPTIONS <instance> contains non-zero value for server_id);
+# TODO: we should check only server_id option here.
+
+# SHOW INSTANCE OPTIONS mysqld2;
+
+###########################################################################
+#
+# 2. FLUSH INSTANCES;
+#
+###########################################################################
+
+FLUSH INSTANCES;
+
+# - check that the configuration file has not been updated (i.e. does not
+# contain 'server_id=' for the instance);
+
+--exec grep server_id $MYSQLTEST_VARDIR/im.cnf || true;
+
+# - (for mysqld1) check that the running instance has not been affected:
+# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
+# returns non-zero value;
+
+--connection mysql1_con
+
+SHOW VARIABLES LIKE 'server_id';
+
+--connection default
+
+# - check that internal cache of Instance Manager has been updated (i.e.
+# SHOW INSTANCE OPTIONS <instance> does not contain 'server_id=' line).
+# TODO: we should check only server_id option here.
+
+# SHOW INSTANCE OPTIONS mysqld1;
+# SHOW INSTANCE OPTIONS mysqld2;
diff --git a/mysql-test/t/im_utils-im.opt b/mysql-test/t/im_utils-im.opt
new file mode 100644
index 00000000000..34b74ce0c95
--- /dev/null
+++ b/mysql-test/t/im_utils-im.opt
@@ -0,0 +1 @@
+--monitoring-interval=1
diff --git a/mysql-test/t/im_utils.imtest b/mysql-test/t/im_utils.imtest
new file mode 100644
index 00000000000..0866b87204a
--- /dev/null
+++ b/mysql-test/t/im_utils.imtest
@@ -0,0 +1,105 @@
+###########################################################################
+#
+# This file contains test for (2) test suite.
+#
+# Consult WL#2789 for more information.
+#
+###########################################################################
+
+--source include/im_check_env.inc
+
+###########################################################################
+
+#
+# Check 'SHOW INSTANCE OPTIONS' command.
+#
+# Since configuration of an mysqld-instance contains directories, we should
+# completely ignore the second column (values) in order to make the test
+# case produce the same results on different installations;
+# TODO: ignore values of only directory-specific options.
+#
+
+--replace_column 2 VALUE
+SHOW INSTANCE OPTIONS mysqld1;
+
+--replace_column 2 VALUE
+SHOW INSTANCE OPTIONS mysqld2;
+
+#
+# Before checking log files, we should start the second instance (mysqld2) to
+# give it a chance to create log files.
+#
+
+START INSTANCE mysqld2;
+--exec $MYSQL_TEST_DIR/t/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
+
+#
+# Check 'SHOW LOG FILES' command:
+# - check that log files of both offline and online instances are accessible;
+# - since placement of the log files is installation-specific, we should
+# ignore it in comparisson;
+# - also, we should ignore log file size, since it may depend on the version
+# being tested;
+#
+
+--replace_column 2 PATH 3 FILE_SIZE
+SHOW mysqld1 LOG FILES;
+
+--replace_column 2 PATH 3 FILE_SIZE
+SHOW mysqld2 LOG FILES;
+
+#
+# Check 'SHOW LOG' command:
+# - check that all three kinds of logs are available for both offline and
+# online instances;
+# - we should ignore the value, because it is very specific and depends on
+# many factors; we only check that Instance Manager is able to provide log
+# files.
+#
+
+# mysqld1 (online) w/o the optional argument.
+
+--replace_column 1 LOG_DATA
+SHOW mysqld1 LOG ERROR 10;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld1 LOG SLOW 10;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld1 LOG GENERAL 10;
+
+# mysqld1 (online) with the optional argument.
+
+--replace_column 1 LOG_DATA
+SHOW mysqld1 LOG ERROR 10, 2;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld1 LOG SLOW 10, 2;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld1 LOG GENERAL 10, 2;
+
+# mysqld2 (offline) w/o the optional argument.
+
+--replace_column 1 LOG_DATA
+SHOW mysqld2 LOG ERROR 10;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld2 LOG SLOW 10;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld2 LOG GENERAL 10;
+
+# mysqld2 (offline) with the optional argument.
+
+--replace_column 1 LOG_DATA
+SHOW mysqld2 LOG ERROR 10, 2;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld2 LOG SLOW 10, 2;
+
+--replace_column 1 LOG_DATA
+SHOW mysqld2 LOG GENERAL 10, 2;
diff --git a/mysql-test/t/index_merge.test b/mysql-test/t/index_merge.test
new file mode 100644
index 00000000000..8c19ab4d7d6
--- /dev/null
+++ b/mysql-test/t/index_merge.test
@@ -0,0 +1,465 @@
+#
+# Index merge tests
+#
+--disable_warnings
+drop table if exists t0, t1, t2, t3, t4;
+--enable_warnings
+
+# Create and fill a table with simple keys
+create table t0
+(
+ key1 int not null,
+ INDEX i1(key1)
+);
+
+--disable_query_log
+insert into t0 values (1),(2),(3),(4),(5),(6),(7),(8);
+
+let $1=7;
+set @d=8;
+while ($1)
+{
+ eval insert into t0 select key1+@d from t0;
+ eval set @d=@d*2;
+ dec $1;
+}
+--enable_query_log
+
+alter table t0 add key2 int not null, add index i2(key2);
+alter table t0 add key3 int not null, add index i3(key3);
+alter table t0 add key4 int not null, add index i4(key4);
+alter table t0 add key5 int not null, add index i5(key5);
+alter table t0 add key6 int not null, add index i6(key6);
+alter table t0 add key7 int not null, add index i7(key7);
+alter table t0 add key8 int not null, add index i8(key8);
+
+update t0 set key2=key1,key3=key1,key4=key1,key5=key1,key6=key1,key7=key1,key8=1024-key1;
+analyze table t0;
+
+# 1. One index
+explain select * from t0 where key1 < 3 or key1 > 1020;
+
+# 2. Simple cases
+explain
+select * from t0 where key1 < 3 or key2 > 1020;
+select * from t0 where key1 < 3 or key2 > 1020;
+
+explain select * from t0 where key1 < 3 or key2 <4;
+
+explain
+select * from t0 where (key1 > 30 and key1<35) or (key2 >32 and key2 < 40);
+select * from t0 where (key1 > 30 and key1<35) or (key2 >32 and key2 < 40);
+
+# 3. Check that index_merge doesn't break "ignore/force/use index"
+explain select * from t0 ignore index (i2) where key1 < 3 or key2 <4;
+explain select * from t0 where (key1 < 3 or key2 <4) and key3 = 50;
+explain select * from t0 use index (i1,i2) where (key1 < 3 or key2 <4) and key3 = 50;
+
+explain select * from t0 where (key1 > 1 or key2 > 2);
+explain select * from t0 force index (i1,i2) where (key1 > 1 or key2 > 2);
+
+
+# 4. Check if conjuncts are grouped by keyuse
+explain
+ select * from t0 where key1<3 or key2<3 or (key1>5 and key1<8) or
+ (key1>10 and key1<12) or (key2>100 and key2<110);
+
+# 5. Check index_merge with conjuncts that are always true/false
+# verify fallback to "range" if there is only one non-confluent condition
+explain select * from t0 where key2 = 45 or key1 <=> null;
+
+explain select * from t0 where key2 = 45 or key1 is not null;
+explain select * from t0 where key2 = 45 or key1 is null;
+
+# the last conj. is always false and will be discarded
+explain select * from t0 where key2=10 or key3=3 or key4 <=> null;
+
+# the last conj. is always true and will cause 'all' scan
+explain select * from t0 where key2=10 or key3=3 or key4 is null;
+
+# some more complicated cases
+explain select key1 from t0 where (key1 <=> null) or (key2 < 5) or
+ (key3=10) or (key4 <=> null);
+explain select key1 from t0 where (key1 <=> null) or (key1 < 5) or
+ (key3=10) or (key4 <=> null);
+
+# 6.Several ways to do index_merge, (ignored) index_merge vs. range
+explain select * from t0 where
+ (key1 < 3 or key2 < 3) and (key3 < 4 or key4 < 4) and (key5 < 5 or key6 < 5);
+
+explain
+select * from t0 where (key1 < 3 or key2 < 6) and (key1 < 7 or key3 < 4);
+
+select * from t0 where (key1 < 3 or key2 < 6) and (key1 < 7 or key3 < 4);
+
+
+explain select * from t0 where
+ (key1 < 3 or key2 < 3) and (key3 < 4 or key4 < 4) and (key5 < 2 or key6 < 2);
+
+# now index_merge is not used at all when "range" is possible
+explain select * from t0 where
+ (key1 < 3 or key2 < 3) and (key3 < 100);
+
+# this even can cause "all" scan:
+explain select * from t0 where
+ (key1 < 3 or key2 < 3) and (key3 < 1000);
+
+
+# 7. Complex cases
+# tree_or(List<SEL_IMERGE>, range SEL_TREE).
+explain select * from t0 where
+ ((key1 < 4 or key2 < 4) and (key2 <5 or key3 < 4))
+ or
+ key2 > 5;
+
+explain select * from t0 where
+ ((key1 < 4 or key2 < 4) and (key2 <5 or key3 < 4))
+ or
+ key1 < 7;
+
+select * from t0 where
+ ((key1 < 4 or key2 < 4) and (key2 <5 or key3 < 4))
+ or
+ key1 < 7;
+
+# tree_or(List<SEL_IMERGE>, List<SEL_IMERGE>).
+explain select * from t0 where
+ ((key1 < 4 or key2 < 4) and (key3 <5 or key5 < 4))
+ or
+ ((key5 < 5 or key6 < 6) and (key7 <7 or key8 < 4));
+
+explain select * from t0 where
+ ((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+ or
+ ((key7 <7 or key8 < 4) and (key5 < 5 or key6 < 6));
+
+explain select * from t0 where
+ ((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+ or
+ ((key3 <7 or key5 < 2) and (key5 < 5 or key6 < 6));
+
+explain select * from t0 where
+ ((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+ or
+ (((key3 <7 and key7 < 6) or key5 < 2) and (key5 < 5 or key6 < 6));
+
+explain select * from t0 where
+ ((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+ or
+ ((key3 >=5 or key5 < 2) and (key5 < 5 or key6 < 6));
+
+explain select * from t0 force index(i1, i2, i3, i4, i5, i6 ) where
+ ((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
+ or
+ ((key3 >=5 or key5 < 2) and (key5 < 5 or key6 < 6));
+
+# 8. Verify that "order by" after index merge uses filesort
+select * from t0 where key1 < 5 or key8 < 4 order by key1;
+
+explain
+select * from t0 where key1 < 5 or key8 < 4 order by key1;
+
+# 9. Check that index_merge cost is compared to 'index' where possible
+create table t2 like t0;
+insert into t2 select * from t0;
+
+alter table t2 add index i1_3(key1, key3);
+alter table t2 add index i2_3(key2, key3);
+alter table t2 drop index i1;
+alter table t2 drop index i2;
+alter table t2 add index i321(key3, key2, key1);
+
+# index_merge vs 'index', index_merge is better.
+explain select key3 from t2 where key1 = 100 or key2 = 100;
+
+# index_merge vs 'index', 'index' is better.
+explain select key3 from t2 where key1 <100 or key2 < 100;
+
+# index_merge vs 'all', index_merge is better.
+explain select key7 from t2 where key1 <100 or key2 < 100;
+
+# 10. Multipart keys.
+create table t4 (
+ key1a int not null,
+ key1b int not null,
+ key2 int not null,
+ key2_1 int not null,
+ key2_2 int not null,
+ key3 int not null,
+
+ index i1a (key1a, key1b),
+ index i1b (key1b, key1a),
+
+ index i2_1(key2, key2_1),
+ index i2_2(key2, key2_1)
+);
+
+insert into t4 select key1,key1,key1 div 10, key1 % 10, key1 % 10, key1 from t0;
+
+# the following will be handled by index_merge:
+select * from t4 where key1a = 3 or key1b = 4;
+explain select * from t4 where key1a = 3 or key1b = 4;
+
+# and the following will not
+explain select * from t4 where key2 = 1 and (key2_1 = 1 or key3 = 5);
+
+explain select * from t4 where key2 = 1 and (key2_1 = 1 or key2_2 = 5);
+
+explain select * from t4 where key2_1 = 1 or key2_2 = 5;
+
+
+# 11. Multitable selects
+create table t1 like t0;
+insert into t1 select * from t0;
+
+# index_merge on first table in join
+explain select * from t0 left join t1 on (t0.key1=t1.key1)
+ where t0.key1=3 or t0.key2=4;
+
+select * from t0 left join t1 on (t0.key1=t1.key1)
+ where t0.key1=3 or t0.key2=4;
+
+explain
+select * from t0,t1 where (t0.key1=t1.key1) and ( t0.key1=3 or t0.key2=4);
+
+# index_merge vs. ref
+explain
+select * from t0,t1 where (t0.key1=t1.key1) and
+ (t0.key1=3 or t0.key2=4) and t1.key1<200;
+
+# index_merge vs. ref
+explain
+select * from t0,t1 where (t0.key1=t1.key1) and
+ (t0.key1=3 or t0.key2<4) and t1.key1=2;
+
+# index_merge on second table in join
+explain select * from t0,t1 where t0.key1 = 5 and
+ (t1.key1 = t0.key1 or t1.key8 = t0.key1);
+
+# Fix for bug#1974
+explain select * from t0,t1 where t0.key1 < 3 and
+ (t1.key1 = t0.key1 or t1.key8 = t0.key1);
+
+# index_merge inside union
+explain select * from t1 where key1=3 or key2=4
+ union select * from t1 where key1<4 or key3=5;
+
+# index merge in subselect
+explain select * from (select * from t1 where key1 = 3 or key2 =3) as Z where key8 >5;
+
+# 12. check for long index_merges.
+create table t3 like t0;
+insert into t3 select * from t0;
+alter table t3 add key9 int not null, add index i9(key9);
+alter table t3 add keyA int not null, add index iA(keyA);
+alter table t3 add keyB int not null, add index iB(keyB);
+alter table t3 add keyC int not null, add index iC(keyC);
+update t3 set key9=key1,keyA=key1,keyB=key1,keyC=key1;
+
+explain select * from t3 where
+ key1=1 or key2=2 or key3=3 or key4=4 or
+ key5=5 or key6=6 or key7=7 or key8=8 or
+ key9=9 or keyA=10 or keyB=11 or keyC=12;
+
+select * from t3 where
+ key1=1 or key2=2 or key3=3 or key4=4 or
+ key5=5 or key6=6 or key7=7 or key8=8 or
+ key9=9 or keyA=10 or keyB=11 or keyC=12;
+
+# Test for Bug#3183
+explain select * from t0 where key1 < 3 or key2 < 4;
+select * from t0 where key1 < 3 or key2 < 4;
+
+update t0 set key8=123 where key1 < 3 or key2 < 4;
+select * from t0 where key1 < 3 or key2 < 4;
+
+delete from t0 where key1 < 3 or key2 < 4;
+select * from t0 where key1 < 3 or key2 < 4;
+select count(*) from t0;
+
+# Test for BUG#4177
+drop table t4;
+create table t4 (a int);
+insert into t4 values (1),(4),(3);
+set @save_join_buffer_size=@@join_buffer_size;
+set join_buffer_size= 4000;
+explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+ where (A.key1 < 500000 or A.key2 < 3)
+ and (B.key1 < 500000 or B.key2 < 3);
+
+select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+ where (A.key1 < 500000 or A.key2 < 3)
+ and (B.key1 < 500000 or B.key2 < 3);
+
+update t0 set key1=1;
+explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+ where (A.key1 = 1 or A.key2 = 1)
+ and (B.key1 = 1 or B.key2 = 1);
+
+select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
+ where (A.key1 = 1 or A.key2 = 1)
+ and (B.key1 = 1 or B.key2 = 1);
+
+alter table t0 add filler1 char(200), add filler2 char(200), add filler3 char(200);
+update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500;
+
+# The next query will not use index i7 in intersection if the OS doesn't
+# support file sizes > 2GB. (ha_myisam::ref_length depends on this and index
+# scan cost estimates depend on ha_myisam::ref_length)
+--replace_column 9 #
+--replace_result "4,4,4,4,4,4,4" X "4,4,4,4,4,4" X "i6,i7" "i6,i7?" "i6" "i6,i7?"
+explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+ from t0 as A, t0 as B
+ where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
+ and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
+
+select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
+ from t0 as A, t0 as B
+ where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
+ and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
+
+set join_buffer_size= @save_join_buffer_size;
+# Test for BUG#4177 ends
+
+drop table t0, t1, t2, t3, t4;
+
+# BUG#16166
+CREATE TABLE t1 (
+ cola char(3) not null, colb char(3) not null, filler char(200),
+ key(cola), key(colb)
+);
+INSERT INTO t1 VALUES ('foo','bar', 'ZZ'),('fuz','baz', 'ZZ');
+
+--disable_query_log
+let $1=9;
+while ($1)
+{
+ eval INSERT INTO t1 SELECT * from t1 WHERE cola = 'foo';
+ dec $1;
+}
+
+let $1=13;
+while ($1)
+{
+ eval INSERT INTO t1 SELECT * from t1 WHERE cola <> 'foo';
+ dec $1;
+}
+
+--enable_query_log
+
+OPTIMIZE TABLE t1;
+select count(*) from t1;
+explain select * from t1 WHERE cola = 'foo' AND colb = 'bar';
+explain select * from t1 force index(cola,colb) WHERE cola = 'foo' AND colb = 'bar';
+drop table t1;
+
+#
+# BUG#17314: Index_merge/intersection not choosen by the optimizer for MERGE tables
+#
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t1 (
+ a int, b int,
+ filler1 char(200), filler2 char(200),
+ key(a),key(b)
+);
+insert into t1 select @v:= A.a, @v, 't1', 'filler2' from t0 A, t0 B, t0 C;
+create table t2 like t1;
+
+create table t3 (
+ a int, b int,
+ filler1 char(200), filler2 char(200),
+ key(a),key(b)
+) engine=merge union=(t1,t2);
+
+--replace_column 9 #
+explain select * from t1 where a=1 and b=1;
+--replace_column 9 #
+explain select * from t3 where a=1 and b=1;
+
+drop table t3;
+drop table t0, t1, t2;
+
+#
+# BUG#20256 - LOCK WRITE - MyISAM
+#
+CREATE TABLE t1(a INT);
+INSERT INTO t1 VALUES(1);
+CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b));
+INSERT INTO t2(a,b) VALUES
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
+(1,2);
+LOCK TABLES t1 WRITE, t2 WRITE;
+INSERT INTO t2(a,b) VALUES(1,2);
+SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1;
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+
+#
+# BUG#29740: HA_KEY_SCAN_NOT_ROR wasn't set for HEAP engine
+#
+CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `filler` char(200) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ KEY `a` (`a`),
+ KEY `b` (`b`)
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+
+insert into t1 values
+(0, 'filler', 0), (1, 'filler', 1), (2, 'filler', 2), (3, 'filler', 3),
+(4, 'filler', 4), (5, 'filler', 5), (6, 'filler', 6), (7, 'filler', 7),
+(8, 'filler', 8), (9, 'filler', 9), (0, 'filler', 0), (1, 'filler', 1),
+(2, 'filler', 2), (3, 'filler', 3), (4, 'filler', 4), (5, 'filler', 5),
+(6, 'filler', 6), (7, 'filler', 7), (8, 'filler', 8), (9, 'filler', 9),
+(10, 'filler', 10), (11, 'filler', 11), (12, 'filler', 12), (13, 'filler', 13),
+(14, 'filler', 14), (15, 'filler', 15), (16, 'filler', 16), (17, 'filler', 17),
+(18, 'filler', 18), (19, 'filler', 19), (4, '5 ', 0), (5, '4 ', 0),
+(4, '4 ', 0), (4, 'qq ', 5), (5, 'qq ', 4), (4, 'zz ', 4);
+
+create table t2(
+ `a` int(11) DEFAULT NULL,
+ `filler` char(200) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ KEY USING BTREE (`a`),
+ KEY USING BTREE (`b`)
+) ENGINE=MEMORY DEFAULT CHARSET=latin1;
+insert into t2 select * from t1;
+
+--echo must use sort-union rather than union:
+--replace_column 9 #
+explain select * from t1 where a=4 or b=4;
+--sorted_result
+select * from t1 where a=4 or b=4;
+--sorted_result
+select * from t1 ignore index(a,b) where a=4 or b=4;
+
+--echo must use union, not sort-union:
+--replace_column 9 #
+explain select * from t2 where a=4 or b=4;
+--sorted_result
+select * from t2 where a=4 or b=4;
+
+drop table t1, t2;
+
diff --git a/mysql-test/t/index_merge_bdb.test b/mysql-test/t/index_merge_bdb.test
new file mode 100644
index 00000000000..c49e6ab3175
--- /dev/null
+++ b/mysql-test/t/index_merge_bdb.test
@@ -0,0 +1,52 @@
+#
+# 2-sweeps read Index_merge test
+#
+-- source include/have_bdb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (
+ pk int primary key,
+ key1 int,
+ key2 int,
+ filler char(200),
+ filler2 char(200),
+ index(key1),
+ index(key2)
+) engine=bdb;
+
+
+--disable_query_log
+let $1=1000;
+while ($1)
+{
+ eval insert into t1 values($1, $1, $1, 'filler-data','filler-data-2');
+ dec $1;
+}
+--enable_query_log
+
+select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 );
+
+set @maxv=1000;
+
+select * from t1 where
+ (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+ or key1=18 or key1=60;
+
+select * from t1 where
+ (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+ or key1 < 3 or key1 > @maxv-11;
+
+select * from t1 where
+ (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+ or
+ (key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10);
+
+select * from t1 where
+ (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 )
+ or
+ (key1 < 5) or (key1 > @maxv-10);
+
+drop table t1;
diff --git a/mysql-test/t/index_merge_innodb.test b/mysql-test/t/index_merge_innodb.test
new file mode 100644
index 00000000000..25f4e0b4e65
--- /dev/null
+++ b/mysql-test/t/index_merge_innodb.test
@@ -0,0 +1,302 @@
+#
+# Index merge tests
+#
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+
+create table t1
+(
+ key1 int not null,
+ key2 int not null,
+
+ INDEX i1(key1),
+ INDEX i2(key2)
+) engine=innodb;
+
+--disable_query_log
+let $1=200;
+while ($1)
+{
+ eval insert into t1 values (200-$1, $1);
+ dec $1;
+}
+--enable_query_log
+
+# No primary key
+explain select * from t1 where key1 < 5 or key2 > 197;
+
+select * from t1 where key1 < 5 or key2 > 197;
+
+explain select * from t1 where key1 < 3 or key2 > 195;
+select * from t1 where key1 < 3 or key2 > 195;
+
+# Primary key as case-sensitive string with \0s.
+# also make primary key be longer then max. index length of MyISAM.
+alter table t1 add str1 char (255) not null,
+ add zeroval int not null default 0,
+ add str2 char (255) not null,
+ add str3 char (255) not null;
+
+update t1 set str1='aaa', str2='bbb', str3=concat(key2, '-', key1 div 2, '_' ,if(key1 mod 2 = 0, 'a', 'A'));
+
+alter table t1 add primary key (str1, zeroval, str2, str3);
+
+explain select * from t1 where key1 < 5 or key2 > 197;
+
+select * from t1 where key1 < 5 or key2 > 197;
+
+explain select * from t1 where key1 < 3 or key2 > 195;
+select * from t1 where key1 < 3 or key2 > 195;
+
+# Test for BUG#5401
+drop table t1;
+create table t1 (
+ pk integer not null auto_increment primary key,
+ key1 integer,
+ key2 integer not null,
+ filler char (200),
+ index (key1),
+ index (key2)
+) engine=innodb;
+show warnings;
+--disable_query_log
+let $1=30;
+while ($1)
+{
+ eval insert into t1 (key1, key2, filler) values ($1/4, $1/8, 'filler-data');
+ dec $1;
+}
+--enable_query_log
+explain select pk from t1 where key1 = 1 and key2 = 1;
+select pk from t1 where key2 = 1 and key1 = 1;
+select pk from t1 ignore index(key1,key2) where key2 = 1 and key1 = 1;
+
+# More tests for BUG#5401.
+drop table t1;
+create table t1 (
+ pk int primary key auto_increment,
+ key1a int,
+ key2a int,
+ key1b int,
+ key2b int,
+ dummy1 int,
+ dummy2 int,
+ dummy3 int,
+ dummy4 int,
+ key3a int,
+ key3b int,
+ filler1 char (200),
+ index i1(key1a, key1b),
+ index i2(key2a, key2b),
+ index i3(key3a, key3b)
+) engine=innodb;
+
+create table t2 (a int);
+insert into t2 values (0),(1),(2),(3),(4),(NULL);
+
+insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
+ select A.a, B.a, C.a, D.a, C.a, D.a from t2 A,t2 B,t2 C, t2 D;
+insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
+ select key1a, key1b, key2a, key2b, key3a, key3b from t1;
+insert into t1 (key1a, key1b, key2a, key2b, key3a, key3b)
+ select key1a, key1b, key2a, key2b, key3a, key3b from t1;
+analyze table t1;
+select count(*) from t1;
+
+explain select count(*) from t1 where
+ key1a = 2 and key1b is null and key2a = 2 and key2b is null;
+
+select count(*) from t1 where
+ key1a = 2 and key1b is null and key2a = 2 and key2b is null;
+
+explain select count(*) from t1 where
+ key1a = 2 and key1b is null and key3a = 2 and key3b is null;
+
+select count(*) from t1 where
+ key1a = 2 and key1b is null and key3a = 2 and key3b is null;
+
+drop table t1,t2;
+
+# Test for BUG#8441
+create table t1 (
+ id1 int,
+ id2 date ,
+ index idx2 (id1,id2),
+ index idx1 (id2)
+) engine = innodb;
+insert into t1 values(1,'20040101'), (2,'20040102');
+select * from t1 where id1 = 1 and id2= '20040101';
+drop table t1;
+
+# Test for BUG#12720
+--disable_warnings
+drop view if exists v1;
+--enable_warnings
+CREATE TABLE t1 (
+ `oid` int(11) unsigned NOT NULL auto_increment,
+ `fk_bbk_niederlassung` int(11) unsigned NOT NULL,
+ `fk_wochentag` int(11) unsigned NOT NULL,
+ `uhrzeit_von` time NOT NULL COMMENT 'HH:MM',
+ `uhrzeit_bis` time NOT NULL COMMENT 'HH:MM',
+ `geloescht` tinyint(4) NOT NULL,
+ `version` int(5) NOT NULL,
+ PRIMARY KEY (`oid`),
+ KEY `fk_bbk_niederlassung` (`fk_bbk_niederlassung`),
+ KEY `fk_wochentag` (`fk_wochentag`),
+ KEY `ix_version` (`version`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+insert into t1 values
+(1, 38, 1, '08:00:00', '13:00:00', 0, 1),
+(2, 38, 2, '08:00:00', '13:00:00', 0, 1),
+(3, 38, 3, '08:00:00', '13:00:00', 0, 1),
+(4, 38, 4, '08:00:00', '13:00:00', 0, 1),
+(5, 38, 5, '08:00:00', '13:00:00', 0, 1),
+(6, 38, 5, '08:00:00', '13:00:00', 1, 2),
+(7, 38, 3, '08:00:00', '13:00:00', 1, 2),
+(8, 38, 1, '08:00:00', '13:00:00', 1, 2),
+(9, 38, 2, '08:00:00', '13:00:00', 1, 2),
+(10, 38, 4, '08:00:00', '13:00:00', 1, 2),
+(11, 38, 1, '08:00:00', '13:00:00', 0, 3),
+(12, 38, 2, '08:00:00', '13:00:00', 0, 3),
+(13, 38, 3, '08:00:00', '13:00:00', 0, 3),
+(14, 38, 4, '08:00:00', '13:00:00', 0, 3),
+(15, 38, 5, '08:00:00', '13:00:00', 0, 3),
+(16, 38, 4, '08:00:00', '13:00:00', 0, 4),
+(17, 38, 5, '08:00:00', '13:00:00', 0, 4),
+(18, 38, 1, '08:00:00', '13:00:00', 0, 4),
+(19, 38, 2, '08:00:00', '13:00:00', 0, 4),
+(20, 38, 3, '08:00:00', '13:00:00', 0, 4),
+(21, 7, 1, '08:00:00', '13:00:00', 0, 1),
+(22, 7, 2, '08:00:00', '13:00:00', 0, 1),
+(23, 7, 3, '08:00:00', '13:00:00', 0, 1),
+(24, 7, 4, '08:00:00', '13:00:00', 0, 1),
+(25, 7, 5, '08:00:00', '13:00:00', 0, 1);
+
+create view v1 as
+select
+ zeit1.oid AS oid,
+ zeit1.fk_bbk_niederlassung AS fk_bbk_niederlassung,
+ zeit1.fk_wochentag AS fk_wochentag,
+ zeit1.uhrzeit_von AS uhrzeit_von,
+ zeit1.uhrzeit_bis AS uhrzeit_bis,
+ zeit1.geloescht AS geloescht,
+ zeit1.version AS version
+from
+ t1 zeit1
+where
+(zeit1.version =
+ (select max(zeit2.version) AS `max(version)`
+ from t1 zeit2
+ where
+ ((zeit1.fk_bbk_niederlassung = zeit2.fk_bbk_niederlassung) and
+ (zeit1.fk_wochentag = zeit2.fk_wochentag) and
+ (zeit1.uhrzeit_von = zeit2.uhrzeit_von) and
+ (zeit1.uhrzeit_bis = zeit2.uhrzeit_bis)
+ )
+ )
+)
+and (zeit1.geloescht = 0);
+
+select * from v1 where oid = 21;
+drop view v1;
+drop table t1;
+##
+CREATE TABLE t1(
+ t_cpac varchar(2) NOT NULL,
+ t_vers varchar(4) NOT NULL,
+ t_rele varchar(2) NOT NULL,
+ t_cust varchar(4) NOT NULL,
+ filler1 char(250) default NULL,
+ filler2 char(250) default NULL,
+ PRIMARY KEY (t_cpac,t_vers,t_rele,t_cust),
+ UNIQUE KEY IX_4 (t_cust,t_cpac,t_vers,t_rele),
+ KEY IX_5 (t_vers,t_rele,t_cust)
+) ENGINE=InnoDB;
+
+insert into t1 values
+('tm','2.5 ','a ',' ','',''), ('tm','2.5U','a ','stnd','',''),
+('da','3.3 ','b ',' ','',''), ('da','3.3U','b ','stnd','',''),
+('tl','7.6 ','a ',' ','',''), ('tt','7.6 ','a ',' ','',''),
+('bc','B61 ','a ',' ','',''), ('bp','B61 ','a ',' ','',''),
+('ca','B61 ','a ',' ','',''), ('ci','B61 ','a ',' ','',''),
+('cp','B61 ','a ',' ','',''), ('dm','B61 ','a ',' ','',''),
+('ec','B61 ','a ',' ','',''), ('ed','B61 ','a ',' ','',''),
+('fm','B61 ','a ',' ','',''), ('nt','B61 ','a ',' ','',''),
+('qm','B61 ','a ',' ','',''), ('tc','B61 ','a ',' ','',''),
+('td','B61 ','a ',' ','',''), ('tf','B61 ','a ',' ','',''),
+('tg','B61 ','a ',' ','',''), ('ti','B61 ','a ',' ','',''),
+('tp','B61 ','a ',' ','',''), ('ts','B61 ','a ',' ','',''),
+('wh','B61 ','a ',' ','',''), ('bc','B61U','a ','stnd','',''),
+('bp','B61U','a ','stnd','',''), ('ca','B61U','a ','stnd','',''),
+('ci','B61U','a ','stnd','',''), ('cp','B61U','a ','stnd','',''),
+('dm','B61U','a ','stnd','',''), ('ec','B61U','a ','stnd','',''),
+('fm','B61U','a ','stnd','',''), ('nt','B61U','a ','stnd','',''),
+('qm','B61U','a ','stnd','',''), ('tc','B61U','a ','stnd','',''),
+('td','B61U','a ','stnd','',''), ('tf','B61U','a ','stnd','',''),
+('tg','B61U','a ','stnd','',''), ('ti','B61U','a ','stnd','',''),
+('tp','B61U','a ','stnd','',''), ('ts','B61U','a ','stnd','',''),
+('wh','B61U','a ','stnd','','');
+show create table t1;
+
+select t_vers,t_rele,t_cust,filler1 from t1 where t_vers = '7.6';
+select t_vers,t_rele,t_cust,filler1 from t1 where t_vers = '7.6'
+ and t_rele='a' and t_cust = ' ';
+
+drop table t1;
+
+# BUG#19021: Crash in index_merge/ROR-intersection optimizer under
+# specific circumstances.
+create table t1 (
+ pk int(11) not null auto_increment,
+ a int(11) not null default '0',
+ b int(11) not null default '0',
+ c int(11) not null default '0',
+
+ filler1 datetime, filler2 varchar(15),
+ filler3 longtext,
+
+ kp1 varchar(4), kp2 varchar(7),
+ kp3 varchar(2), kp4 varchar(4),
+ kp5 varchar(7),
+ filler4 char(1),
+
+ primary key (pk),
+ key idx1(a,b,c),
+ key idx2(c),
+ key idx3(kp1,kp2,kp3,kp4,kp5)
+) engine=innodb default charset=latin1;
+--disable_query_log
+set @fill= uncompress(unhex(concat(
+'F91D0000789CDD993D6FDB301086F7FE0A6D4E0105B8E3F1335D5BA028DA0EEDE28E1D320408',
+'52A0713BF4D7571FB62C51A475924839080307B603E77DEE787C8FA41F9E9EEF7F1F8A87A7C3',
+'AFE280C5DF9F8F7FEE9F8B1B2CB114D6902E918455245DB91300FA16E42D5201FA4EE29DA05D',
+'B9FB3718A33718A3FA8C30AEFAFDE1F317D016AA67BA7A60FDE45BF5F8BA7B5BDE8812AA9F1A',
+'069DB03C9804346644F3A3A6A1338DB572756A3C4D1BCC804CABF912C654AE9BB855A2B85962',
+'3A479259CAE6A86C0411D01AE5483581EDCBD9A39C45252D532E533979EB9F82E971D979BDB4',
+'8531105670740AFBFD1E34AAB0029E4AD0A1D46A6D0946A21A16038A5CD965CD2D524673F712',
+'20C304477315CE18405EAF9BD0AFFEAC74FDA14F1FBF5BD34C769D73FBBEDF4750ADD4E5A99C',
+'5C8DC04934AFA275D483D536D174C11B12AF27F8F888B41B6FC9DBA569E1FD7BD72D698130B7',
+'91B23A98803512B3D31881E8DCDA2AC1754E3644C4BB3A8466750B911681274A39E35E8624B7',
+'444A42AC1213F354758E3CF1A4CDD5A688C767CF1B11ABC5867CB15D8A18E0B91E9EC275BB94',
+'58F33C2936F64690D55BC29E4A293D95A798D84217736CEAAA538CE1354269EE2162053FBC66',
+'496D90CB53323CB279D3A6AF651B4B22B9E430743D83BE48E995A09D4FC9871C22D8D189B945',
+'706911BCB8C3C774B9C08D2FC6ED853ADACA37A14A4CB2E027630E5B80ECACD939431B1CDF62',
+'7D71487536EA2C678F59685E91F4B6C144BCCB94C1EBA9FA6F5552DDCA4E4539BE326A2720CB',
+'45ED028EB3616AC93C46E775FEA9FA6DA7CFCEC6DEBA5FCD1F915EED4D983BDDB881528AD9AB',
+'43C1576F29AAB35BDFBC21D422F52B307D350589D45225A887AC46C8EDD72D99EC3ED2E1BCEF',
+'7AF26FC4C74097B6768A5EDAFA660CC64278F7E63F99AC954B')));
+prepare x from @fill;
+execute x;
+deallocate prepare x;
+--enable_query_log
+set @fill=NULL;
+SELECT COUNT(*) FROM t1 WHERE b = 0 AND a = 0 AND c = 13286427 AND
+ kp1='279' AND kp2='ELM0678' AND kp3='6' AND kp4='10' AND kp5 = 'R ';
+
+drop table t1;
+
+
diff --git a/mysql-test/t/index_merge_innodb2.test b/mysql-test/t/index_merge_innodb2.test
new file mode 100644
index 00000000000..ec4ea672bc1
--- /dev/null
+++ b/mysql-test/t/index_merge_innodb2.test
@@ -0,0 +1,52 @@
+#
+# 2-sweeps read Index_merge test
+#
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (
+ pk int primary key,
+ key1 int,
+ key2 int,
+ filler char(200),
+ filler2 char(200),
+ index(key1),
+ index(key2)
+) engine=innodb;
+
+
+--disable_query_log
+let $1=1000;
+while ($1)
+{
+ eval insert into t1 values($1, $1, $1, 'filler-data','filler-data-2');
+ dec $1;
+}
+--enable_query_log
+
+select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 );
+
+set @maxv=1000;
+
+select * from t1 where
+ (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+ or key1=18 or key1=60;
+
+select * from t1 where
+ (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+ or key1 < 3 or key1 > @maxv-11;
+
+select * from t1 where
+ (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
+ or
+ (key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10);
+
+select * from t1 where
+ (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 )
+ or
+ (key1 < 5) or (key1 > @maxv-10);
+
+drop table t1;
diff --git a/mysql-test/t/index_merge_ror.test b/mysql-test/t/index_merge_ror.test
new file mode 100644
index 00000000000..a9de2f955ee
--- /dev/null
+++ b/mysql-test/t/index_merge_ror.test
@@ -0,0 +1,267 @@
+#
+# ROR-index_merge tests.
+#
+--disable_warnings
+drop table if exists t0,t1,t2;
+--enable_warnings
+--disable_query_log
+create table t1
+(
+ /* Field names reflect value(rowid) distribution, st=STairs, swt= SaWTooth */
+ st_a int not null default 0,
+ swt1a int not null default 0,
+ swt2a int not null default 0,
+
+ st_b int not null default 0,
+ swt1b int not null default 0,
+ swt2b int not null default 0,
+
+ /* fields/keys for row retrieval tests */
+ key1 int,
+ key2 int,
+ key3 int,
+ key4 int,
+
+ /* make rows much bigger then keys */
+ filler1 char (200),
+ filler2 char (200),
+ filler3 char (200),
+ filler4 char (200),
+ filler5 char (200),
+ filler6 char (200),
+
+ /* order of keys is important */
+ key sta_swt12a(st_a,swt1a,swt2a),
+ key sta_swt1a(st_a,swt1a),
+ key sta_swt2a(st_a,swt2a),
+ key sta_swt21a(st_a,swt2a,swt1a),
+
+ key st_a(st_a),
+ key stb_swt1a_2b(st_b,swt1b,swt2a),
+ key stb_swt1b(st_b,swt1b),
+ key st_b(st_b),
+
+ key(key1),
+ key(key2),
+ key(key3),
+ key(key4)
+) ;
+
+# Fill table
+create table t0 as select * from t1;
+let $cnt=1000;
+while ($cnt)
+{
+ eval insert into t0 values (1, 2, 3, 1, 2, 3, 0, 0, 0, 0, 'data1', 'data2', 'data3', 'data4', 'data5', 'data6');
+ dec $cnt;
+}
+
+alter table t1 disable keys;
+let $1=4;
+while ($1)
+{
+ let $2=4;
+ while ($2)
+ {
+ let $3=4;
+ while ($3)
+ {
+ eval insert into t1 select $1, $2, $3, $1 ,$2, $3, key1, key2, key3, key4, filler1, filler2, filler3, filler4, filler5, filler6 from t0;
+ dec $3;
+ }
+ dec $2;
+ }
+ dec $1;
+}
+
+# Row retrieval tests
+# -1 is used for values 'out of any range we are using'
+# insert enough rows for index intersection to be used for (key1,key2)
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 100, 100,'key1-key2-key3-key4');
+let $cnt=400;
+while ($cnt)
+{
+ eval insert into t1 (key1, key2, key3, key4, filler1) values (100, -1, 100, -1,'key1-key3');
+ dec $cnt;
+}
+let $cnt=400;
+while ($cnt)
+{
+ eval insert into t1 (key1, key2, key3, key4, filler1) values (-1, 100, -1, 100,'key2-key4');
+ dec $cnt;
+}
+alter table t1 enable keys;
+--enable_query_log
+select count(*) from t1;
+
+# One row results tests for cases where a single row matches all conditions
+explain select key1,key2 from t1 where key1=100 and key2=100;
+select key1,key2 from t1 where key1=100 and key2=100;
+
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+
+# Several-rows results
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, -1, -1, 'key1-key2');
+insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 100, 100, 'key4-key3');
+
+# ROR-intersection, not covering
+explain select key1,key2,filler1 from t1 where key1=100 and key2=100;
+select key1,key2,filler1 from t1 where key1=100 and key2=100;
+
+# ROR-intersection, covering
+explain select key1,key2 from t1 where key1=100 and key2=100;
+select key1,key2 from t1 where key1=100 and key2=100;
+
+# ROR-union of ROR-intersections
+explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+
+# 3-way ROR-intersection
+explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
+select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
+
+# ROR-union(ROR-intersection, ROR-range)
+insert into t1 (key1,key2,key3,key4,filler1) values (101,101,101,101, 'key1234-101');
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=101;
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=101;
+
+# Run some ROR updates/deletes
+select key1,key2, filler1 from t1 where key1=100 and key2=100;
+update t1 set filler1='to be deleted' where key1=100 and key2=100;
+update t1 set key1=200,key2=200 where key1=100 and key2=100;
+delete from t1 where key1=200 and key2=200;
+select key1,key2,filler1 from t1 where key2=100 and key2=200;
+
+# ROR-union(ROR-intersection) with one of ROR-intersection giving empty
+# results
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+
+delete from t1 where key3=100 and key4=100;
+
+# ROR-union with all ROR-intersections giving empty results
+explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
+
+# ROR-intersection with empty result
+explain select key1,key2 from t1 where key1=100 and key2=100;
+select key1,key2 from t1 where key1=100 and key2=100;
+
+# ROR-union tests with various cases.
+# All scans returning duplicate rows:
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-1');
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-2');
+insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-3');
+
+explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+
+insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, -1, 200,'key4');
+
+explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+
+insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 200, -1,'key3');
+
+explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
+
+##
+## Optimizer tests
+##
+
+# Check that the shortest key is used for ROR-intersection, covering and non-covering.
+explain select * from t1 where st_a=1 and st_b=1;
+explain select st_a,st_b from t1 where st_a=1 and st_b=1;
+
+# Check if "ingore index" syntax works
+explain select st_a from t1 ignore index (st_a) where st_a=1 and st_b=1;
+
+# Do many tests
+# Check that keys that don't improve selectivity are skipped.
+#
+
+# Different value on 32 and 64 bit
+--replace_result sta_swt12a sta_swt21a sta_swt12a, sta_swt12a,
+explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1;
+
+explain select * from t1 where st_b=1 and swt1b=1 and swt2b=1;
+
+explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+
+explain select * from t1 ignore index (sta_swt21a, stb_swt1a_2b)
+ where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+
+explain select * from t1 ignore index (sta_swt21a, sta_swt12a, stb_swt1a_2b)
+ where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+
+explain select * from t1 ignore index (sta_swt21a, sta_swt12a, stb_swt1a_2b, stb_swt1b)
+ where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
+
+explain select * from t1
+ where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1;
+
+explain select * from t1
+ where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
+
+explain select st_a from t1
+ where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
+
+explain select st_a from t1
+ where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
+
+drop table t0,t1;
+
+# 'Partially' covered fields test
+
+create table t2 (
+ a char(10),
+ b char(10),
+ filler1 char(255),
+ filler2 char(255),
+ key(a(5)),
+ key(b(5))
+);
+
+--disable_query_log
+let $1=8;
+while ($1)
+{
+ eval insert into t2 values (repeat(char($1+64), 8),repeat(char($1+64), 8),'filler1', 'filler2');
+ dec $1;
+}
+insert into t2 select * from t2;
+insert into t2 select * from t2;
+--enable_query_log
+
+# The table row buffer is reused. Fill it with rows that don't match.
+select count(a) from t2 where a='BBBBBBBB';
+select count(a) from t2 where b='BBBBBBBB';
+
+# BUG#1:
+--replace_result a a_or_b b a_or_b
+explain select count(a) from t2 where a='AAAAAAAA' and b='AAAAAAAA';
+select count(a) from t2 where a='AAAAAAAA' and b='AAAAAAAA';
+select count(a) from t2 ignore index(a,b) where a='AAAAAAAA' and b='AAAAAAAA';
+
+insert into t2 values ('ab', 'ab', 'uh', 'oh');
+explain select a from t2 where a='ab';
+drop table t2;
+
+#
+# BUG#25048 - ERROR 126 : Incorrect key file for table '.XXXX.MYI'; try to
+# repair it
+#
+CREATE TABLE t1(c1 INT, c2 INT DEFAULT 0, c3 CHAR(255) DEFAULT '',
+KEY(c1), KEY(c2), KEY(c3));
+INSERT INTO t1(c1) VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),
+(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
+INSERT INTO t1 VALUES(0,0,0);
+CREATE TABLE t2(c1 int);
+INSERT INTO t2 VALUES(1);
+DELETE t1 FROM t1,t2 WHERE t1.c1=0 AND t1.c2=0;
+SELECT * FROM t1;
+DROP TABLE t1,t2;
diff --git a/mysql-test/t/index_merge_ror_cpk.test b/mysql-test/t/index_merge_ror_cpk.test
new file mode 100644
index 00000000000..94abf395d0a
--- /dev/null
+++ b/mysql-test/t/index_merge_ror_cpk.test
@@ -0,0 +1,111 @@
+#
+# Clustered PK ROR-index_merge tests
+#
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1
+(
+ pk1 int not null,
+ pk2 int not null,
+
+ key1 int not null,
+ key2 int not null,
+
+ pktail1ok int not null,
+ pktail2ok int not null,
+ pktail3bad int not null,
+ pktail4bad int not null,
+ pktail5bad int not null,
+
+ pk2copy int not null,
+ badkey int not null,
+
+ filler1 char (200),
+ filler2 char (200),
+ key (key1),
+ key (key2),
+
+ /* keys with tails from CPK members */
+ key (pktail1ok, pk1),
+ key (pktail2ok, pk1, pk2),
+ key (pktail3bad, pk2, pk1),
+ key (pktail4bad, pk1, pk2copy),
+ key (pktail5bad, pk1, pk2, pk2copy),
+
+ primary key (pk1, pk2)
+) engine=innodb;
+
+--disable_query_log
+set autocommit=0;
+let $1=10000;
+while ($1)
+{
+ eval insert into t1 values ($1 div 10,$1 mod 100, $1/100,$1/100, $1/100,$1/100,$1/100,$1/100,$1/100, $1 mod 100, $1/1000,'filler-data-$1','filler2');
+ dec $1;
+}
+set autocommit=1;
+--enable_query_log
+
+# Verify that range scan on CPK is ROR
+# (use index_intersection because it is impossible to check that for index union)
+explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
+# CPK scan + 1 ROR range scan is a special case
+select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
+
+# Verify that CPK fields are considered to be covered by index scans
+explain select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
+select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
+
+# Verify that CPK is always used for index intersection scans
+# (this is because it is used as a filter, not for retrieval)
+explain select * from t1 where badkey=1 and key1=10;
+--replace_result 38 ROWS 37 ROWS
+explain select * from t1 where pk1 < 7500 and key1 = 10;
+
+# Verify that keys with 'tails' of PK members are ok.
+explain select * from t1 where pktail1ok=1 and key1=10;
+explain select * from t1 where pktail2ok=1 and key1=10;
+
+select ' The following is actually a deficiency, it uses sort_union currently:' as 'note:';
+explain select * from t1 where (pktail2ok=1 and pk1< 50000) or key1=10;
+
+# The expected rows differs a bit from platform to platform
+--replace_result 98 ROWS 99 ROWS
+explain select * from t1 where pktail3bad=1 and key1=10;
+explain select * from t1 where pktail4bad=1 and key1=10;
+explain select * from t1 where pktail5bad=1 and key1=10;
+
+# Test for problem with innodb key values prefetch buffer:
+explain select pk1,pk2,key1,key2 from t1 where key1 = 10 and key2=10 limit 10;
+select pk1,pk2,key1,key2 from t1 where key1 = 10 and key2=10 limit 10;
+
+drop table t1;
+# Testcase for BUG#4984
+create table t1
+(
+ RUNID varchar(22),
+ SUBMITNR varchar(5),
+ ORDERNR char(1) ,
+ PROGRAMM varchar(8),
+ TESTID varchar(4),
+ UCCHECK char(1),
+ ETEXT varchar(80),
+ ETEXT_TYPE char(1),
+ INFO char(1),
+ SEVERITY tinyint(3),
+ TADIRFLAG char(1),
+ PRIMARY KEY (RUNID,SUBMITNR,ORDERNR,PROGRAMM,TESTID,UCCHECK),
+ KEY `TVERM~KEY` (PROGRAMM,TESTID,UCCHECK)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+update t1 set `ETEXT` = '', `ETEXT_TYPE`='', `INFO`='', `SEVERITY`='', `TADIRFLAG`=''
+WHERE
+ `RUNID`= '' AND `SUBMITNR`= '' AND `ORDERNR`='' AND `PROGRAMM`='' AND
+ `TESTID`='' AND `UCCHECK`='';
+
+drop table t1;
+
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
new file mode 100644
index 00000000000..04ffd30ec62
--- /dev/null
+++ b/mysql-test/t/information_schema.test
@@ -0,0 +1,1100 @@
+# This test uses grants, which can't get tested for embedded server
+-- source include/not_embedded.inc
+
+# Test for information_schema.schemata &
+# show databases
+
+--disable_warnings
+DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+
+show variables where variable_name like "skip_show_database";
+grant select, update, execute on test.* to mysqltest_2@localhost;
+grant select, update on test.* to mysqltest_1@localhost;
+create user mysqltest_3@localhost;
+create user mysqltest_3;
+
+
+select * from information_schema.SCHEMATA where schema_name > 'm';
+select schema_name from information_schema.schemata;
+show databases like 't%';
+show databases;
+show databases where `database` = 't%';
+
+# Test for information_schema.tables &
+# show tables
+
+create database mysqltest;
+create table mysqltest.t1(a int, b VARCHAR(30), KEY string_data (b));
+create table test.t2(a int);
+create table t3(a int, KEY a_data (a));
+create table mysqltest.t4(a int);
+create table t5 (id int auto_increment primary key);
+insert into t5 values (10);
+create view v1 (c) as select table_name from information_schema.TABLES;
+select * from v1;
+
+select c,table_name from v1
+inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
+where v1.c like "t%";
+
+select c,table_name from v1
+left join information_schema.TABLES v2 on (v1.c=v2.table_name)
+where v1.c like "t%";
+
+select c, v2.table_name from v1
+right join information_schema.TABLES v2 on (v1.c=v2.table_name)
+where v1.c like "t%";
+
+select table_name from information_schema.TABLES
+where table_schema = "mysqltest" and table_name like "t%";
+
+select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
+show keys from t3 where Key_name = "a_data";
+
+show tables like 't%';
+--replace_column 8 # 12 # 13 #
+show table status;
+show full columns from t3 like "a%";
+show full columns from mysql.db like "Insert%";
+show full columns from v1;
+select * from information_schema.COLUMNS where table_name="t1"
+and column_name= "a";
+show columns from mysqltest.t1 where field like "%a%";
+
+create view mysqltest.v1 (c) as select a from mysqltest.t1;
+grant select (a) on mysqltest.t1 to mysqltest_2@localhost;
+grant select on mysqltest.v1 to mysqltest_3;
+connect (user3,localhost,mysqltest_2,,);
+connection user3;
+select table_name, column_name, privileges from information_schema.columns
+where table_schema = 'mysqltest' and table_name = 't1';
+show columns from mysqltest.t1;
+connect (user4,localhost,mysqltest_3,,mysqltest);
+connection user4;
+select table_name, column_name, privileges from information_schema.columns
+where table_schema = 'mysqltest' and table_name = 'v1';
+connection default;
+
+drop view v1, mysqltest.v1;
+drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
+drop database mysqltest;
+
+# Test for information_schema.CHARACTER_SETS &
+# SHOW CHARACTER SET
+
+select * from information_schema.CHARACTER_SETS
+where CHARACTER_SET_NAME like 'latin1%';
+SHOW CHARACTER SET LIKE 'latin1%';
+SHOW CHARACTER SET WHERE charset like 'latin1%';
+
+# Test for information_schema.COLLATIONS &
+# SHOW COLLATION
+
+--replace_column 5 #
+select * from information_schema.COLLATIONS
+where COLLATION_NAME like 'latin1%';
+--replace_column 5 #
+SHOW COLLATION LIKE 'latin1%';
+--replace_column 5 #
+SHOW COLLATION WHERE collation like 'latin1%';
+
+select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
+where COLLATION_NAME like 'latin1%';
+
+# Test for information_schema.ROUTINES &
+#
+
+--disable_warnings
+drop procedure if exists sel2;
+drop function if exists sub1;
+drop function if exists sub2;
+--enable_warnings
+
+create function sub1(i int) returns int
+ return i+1;
+delimiter |;
+create procedure sel2()
+begin
+ select * from t1;
+ select * from t2;
+end|
+delimiter ;|
+
+#
+# Bug#7222 information_schema: errors in "routines"
+#
+select parameter_style, sql_data_access, dtd_identifier
+from information_schema.routines;
+
+--replace_column 5 # 6 #
+show procedure status;
+--replace_column 5 # 6 #
+show function status;
+select a.ROUTINE_NAME from information_schema.ROUTINES a,
+information_schema.SCHEMATA b where
+a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
+--replace_column 3 #
+explain select a.ROUTINE_NAME from information_schema.ROUTINES a,
+information_schema.SCHEMATA b where
+a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
+
+select a.ROUTINE_NAME, b.name from information_schema.ROUTINES a,
+mysql.proc b where a.ROUTINE_NAME = convert(b.name using utf8) order by 1;
+select count(*) from information_schema.ROUTINES;
+
+create view v1 as select routine_schema, routine_name from information_schema.routines
+order by routine_schema, routine_name;
+select * from v1;
+drop view v1;
+
+connect (user1,localhost,mysqltest_1,,);
+connection user1;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+--error 1305
+show create function sub1;
+connection user3;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+connection default;
+grant all privileges on test.* to mysqltest_1@localhost;
+connect (user2,localhost,mysqltest_1,,);
+connection user2;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+create function sub2(i int) returns int
+ return i+1;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+show create procedure sel2;
+show create function sub1;
+show create function sub2;
+--replace_column 5 # 6 #
+show function status like "sub2";
+connection default;
+disconnect user1;
+drop function sub2;
+show create procedure sel2;
+
+#
+# Test for views
+#
+create view v0 (c) as select schema_name from information_schema.schemata;
+select * from v0;
+--replace_column 3 #
+explain select * from v0;
+create view v1 (c) as select table_name from information_schema.tables
+where table_name="v1";
+select * from v1;
+create view v2 (c) as select column_name from information_schema.columns
+where table_name="v2";
+select * from v2;
+create view v3 (c) as select CHARACTER_SET_NAME from information_schema.character_sets
+where CHARACTER_SET_NAME like "latin1%";
+select * from v3;
+create view v4 (c) as select COLLATION_NAME from information_schema.collations
+where COLLATION_NAME like "latin1%";
+select * from v4;
+show keys from v4;
+select * from information_schema.views where TABLE_NAME like "v%";
+drop view v0, v1, v2, v3, v4;
+
+#
+# Test for privileges tables
+#
+create table t1 (a int);
+grant select,update,insert on t1 to mysqltest_1@localhost;
+grant select (a), update (a),insert(a), references(a) on t1 to mysqltest_1@localhost;
+grant all on test.* to mysqltest_1@localhost with grant option;
+select * from information_schema.USER_PRIVILEGES where grantee like '%mysqltest_1%';
+select * from information_schema.SCHEMA_PRIVILEGES where grantee like '%mysqltest_1%';
+select * from information_schema.TABLE_PRIVILEGES where grantee like '%mysqltest_1%';
+select * from information_schema.COLUMN_PRIVILEGES where grantee like '%mysqltest_1%';
+delete from mysql.user where user like 'mysqltest%';
+delete from mysql.db where user like 'mysqltest%';
+delete from mysql.tables_priv where user like 'mysqltest%';
+delete from mysql.columns_priv where user like 'mysqltest%';
+flush privileges;
+drop table t1;
+
+
+#
+# Test for KEY_COLUMN_USAGE & TABLE_CONSTRAINTS tables
+#
+
+create table t1 (a int null, primary key(a));
+alter table t1 add constraint constraint_1 unique (a);
+alter table t1 add constraint unique key_1(a);
+alter table t1 add constraint constraint_2 unique key_2(a);
+show create table t1;
+select * from information_schema.TABLE_CONSTRAINTS where
+TABLE_SCHEMA= "test";
+select * from information_schema.KEY_COLUMN_USAGE where
+TABLE_SCHEMA= "test";
+
+connection user2;
+select table_name from information_schema.TABLES where table_schema like "test%";
+select table_name,column_name from information_schema.COLUMNS where table_schema like "test%";
+select ROUTINE_NAME from information_schema.ROUTINES;
+disconnect user2;
+connection default;
+delete from mysql.user where user='mysqltest_1';
+drop table t1;
+drop procedure sel2;
+drop function sub1;
+
+create table t1(a int);
+create view v1 (c) as select a from t1 with check option;
+create view v2 (c) as select a from t1 WITH LOCAL CHECK OPTION;
+create view v3 (c) as select a from t1 WITH CASCADED CHECK OPTION;
+select * from information_schema.views;
+grant select (a) on test.t1 to joe@localhost with grant option;
+select * from INFORMATION_SCHEMA.COLUMN_PRIVILEGES;
+select * from INFORMATION_SCHEMA.TABLE_PRIVILEGES;
+drop view v1, v2, v3;
+drop table t1;
+delete from mysql.user where user='joe';
+delete from mysql.db where user='joe';
+delete from mysql.tables_priv where user='joe';
+delete from mysql.columns_priv where user='joe';
+flush privileges;
+
+# QQ This results in NULLs instead of the version numbers when
+# QQ a LOCK TABLES is in effect when selecting from
+# QQ information_schema.tables.
+
+--disable_parsing # until bug is fixed
+delimiter //;
+create procedure px5 ()
+begin
+declare v int;
+declare c cursor for select version from
+information_schema.tables where table_schema <> 'information_schema';
+open c;
+fetch c into v;
+select v;
+close c;
+end;//
+
+call px5()//
+call px5()//
+delimiter ;//
+select sql_mode from information_schema.ROUTINES;
+drop procedure px5;
+--enable_parsing
+
+create table t1 (a int not null auto_increment,b int, primary key (a));
+insert into t1 values (1,1),(NULL,3),(NULL,4);
+select AUTO_INCREMENT from information_schema.tables where table_name = 't1';
+drop table t1;
+
+create table t1 (s1 int);
+insert into t1 values (0),(9),(0);
+select s1 from t1 where s1 in (select version from
+information_schema.tables) union select version from
+information_schema.tables;
+drop table t1;
+
+SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
+set names latin2;
+SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
+set names latin1;
+
+create table t1 select * from information_schema.CHARACTER_SETS
+where CHARACTER_SET_NAME like "latin1";
+select * from t1;
+alter table t1 default character set utf8;
+show create table t1;
+drop table t1;
+
+create view v1 as select * from information_schema.TABLES;
+drop view v1;
+create table t1(a NUMERIC(5,3), b NUMERIC(5,1), c float(5,2),
+ d NUMERIC(6,4), e float, f DECIMAL(6,3), g int(11), h DOUBLE(10,3),
+ i DOUBLE);
+select COLUMN_NAME,COLUMN_TYPE, CHARACTER_MAXIMUM_LENGTH,
+ CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
+from information_schema.columns where table_name= 't1';
+drop table t1;
+
+create table t115 as select table_name, column_name, column_type
+from information_schema.columns where table_name = 'proc';
+select * from t115;
+drop table t115;
+
+delimiter //;
+create procedure p108 () begin declare c cursor for select data_type
+from information_schema.columns; open c; open c; end;//
+--error 1325
+call p108()//
+delimiter ;//
+drop procedure p108;
+
+create view v1 as select A1.table_name from information_schema.TABLES A1
+where table_name= "user";
+select * from v1;
+drop view v1;
+
+create view vo as select 'a' union select 'a';
+show index from vo;
+select * from information_schema.TABLE_CONSTRAINTS where
+TABLE_NAME= "vo";
+select * from information_schema.KEY_COLUMN_USAGE where
+TABLE_NAME= "vo";
+drop view vo;
+
+select TABLE_NAME,TABLE_TYPE,ENGINE
+from information_schema.tables
+where table_schema='information_schema' limit 2;
+show tables from information_schema like "T%";
+
+--error 1044
+create database information_schema;
+use information_schema;
+show full tables like "T%";
+--error 1109
+create table t1(a int);
+use test;
+show tables;
+use information_schema;
+show tables like "T%";
+
+#
+# Bug#7210: information_schema: can't access when table-name = reserved word
+#
+select table_name from tables where table_name='user';
+select column_name, privileges from columns
+where table_name='user' and column_name like '%o%';
+
+#
+# Bug#7212: information_schema: "Can't find file" errors if storage engine gone
+# Bug#7211: information_schema: crash if bad view
+#
+use test;
+create function sub1(i int) returns int
+ return i+1;
+create table t1(f1 int);
+create view v2 (c) as select f1 from t1;
+create view v3 (c) as select sub1(1);
+create table t4(f1 int, KEY f1_key (f1));
+drop table t1;
+drop function sub1;
+select table_name from information_schema.views
+where table_schema='test';
+select table_name from information_schema.views
+where table_schema='test';
+select column_name from information_schema.columns
+where table_schema='test';
+select index_name from information_schema.statistics where table_schema='test';
+select constraint_name from information_schema.table_constraints
+where table_schema='test';
+show create view v2;
+show create table v3;
+drop view v2;
+drop view v3;
+drop table t4;
+
+#
+# Bug#7213: information_schema: redundant non-standard TABLE_NAMES table
+#
+--error 1109
+select * from information_schema.table_names;
+
+#
+# Bug#2719 information_schema: errors in "columns"
+#
+select column_type from information_schema.columns
+where table_schema="information_schema" and table_name="COLUMNS" and
+(column_name="character_set_name" or column_name="collation_name");
+
+#
+# Bug#2718 information_schema: errors in "tables"
+#
+select TABLE_ROWS from information_schema.tables where
+table_schema="information_schema" and table_name="COLUMNS";
+select table_type from information_schema.tables
+where table_schema="mysql" and table_name="user";
+
+# test for 'show open tables ... where'
+show open tables where `table` like "user";
+# test for 'show status ... where'
+show status where variable_name like "%database%";
+# test for 'show variables ... where'
+show variables where variable_name like "skip_show_databas";
+
+#
+# Bug #7981:SHOW GLOBAL STATUS crashes server
+#
+# We don't actually care about the value, just that it doesn't crash.
+--replace_column 2 #
+show global status like "Threads_running";
+
+#
+# Bug #7915 crash,JOIN VIEW, subquery,
+# SELECT .. FROM INFORMATION_SCHEMA.COLUMNS
+#
+create table t1(f1 int);
+create table t2(f2 int);
+create view v1 as select * from t1, t2;
+set @got_val= (select count(*) from information_schema.columns);
+drop view v1;
+drop table t1, t2;
+
+#
+# Bug #7476: crash on SELECT * FROM INFORMATION_SCHEMA.TABLES
+#
+
+CREATE TABLE t_crashme ( f1 BIGINT);
+CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1;
+CREATE VIEW a2 AS SELECT t_CRASHME FROM a1;
+let $tab_count= 65;
+--disable_query_log
+while ($tab_count)
+{
+ EVAL CREATE TABLE t_$tab_count (f1 BIGINT);
+ dec $tab_count ;
+}
+--disable_result_log
+SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES;
+--enable_result_log
+SELECT count(*) FROM INFORMATION_SCHEMA.TABLES;
+let $tab_count= 65;
+while ($tab_count)
+{
+ EVAL DROP TABLE t_$tab_count;
+ dec $tab_count ;
+}
+--enable_query_log
+drop view a2, a1;
+drop table t_crashme;
+
+#
+# Bug #7215 information_schema: columns are longtext instead of varchar
+# Bug #7217 information_schema: columns are varbinary() instead of timestamp
+#
+select table_schema,table_name, column_name from
+information_schema.columns
+where data_type = 'longtext';
+select table_name, column_name, data_type from information_schema.columns
+where data_type = 'datetime';
+
+#
+# Bug #8164 subquery with INFORMATION_SCHEMA.COLUMNS, 100 % CPU
+#
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
+WHERE NOT EXISTS
+(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
+ WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
+ AND A.TABLE_NAME = B.TABLE_NAME);
+
+#
+# Bug #9344 INFORMATION_SCHEMA, wrong content, numeric columns
+#
+
+create table t1
+( x_bigint BIGINT,
+ x_integer INTEGER,
+ x_smallint SMALLINT,
+ x_decimal DECIMAL(5,3),
+ x_numeric NUMERIC(5,3),
+ x_real REAL,
+ x_float FLOAT,
+ x_double_precision DOUBLE PRECISION );
+SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE TABLE_NAME= 't1';
+drop table t1;
+
+#
+# Bug#10261 INFORMATION_SCHEMA.COLUMNS, incomplete result for non root user
+#
+
+grant select on test.* to mysqltest_4@localhost;
+connect (user10261,localhost,mysqltest_4,,);
+connection user10261;
+SELECT TABLE_NAME, COLUMN_NAME, PRIVILEGES FROM INFORMATION_SCHEMA.COLUMNS
+where COLUMN_NAME='TABLE_NAME';
+connection default;
+delete from mysql.user where user='mysqltest_4';
+delete from mysql.db where user='mysqltest_4';
+flush privileges;
+
+#
+# Bug #9404 information_schema: Weird error messages
+# with SELECT SUM() ... GROUP BY queries
+#
+SELECT table_schema, count(*) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA;
+
+
+#
+# TRIGGERS table test
+#
+create table t1 (i int, j int);
+
+delimiter |;
+create trigger trg1 before insert on t1 for each row
+begin
+ if new.j > 10 then
+ set new.j := 10;
+ end if;
+end|
+create trigger trg2 before update on t1 for each row
+begin
+ if old.i % 2 = 0 then
+ set new.j := -1;
+ end if;
+end|
+create trigger trg3 after update on t1 for each row
+begin
+ if new.j = -1 then
+ set @fired:= "Yes";
+ end if;
+end|
+delimiter ;|
+show triggers;
+select * from information_schema.triggers;
+
+drop trigger trg1;
+drop trigger trg2;
+drop trigger trg3;
+drop table t1;
+
+
+#
+# Bug #10964 Information Schema:Authorization check on privilege tables is improper
+#
+
+create database mysqltest;
+create table mysqltest.t1 (f1 int, f2 int);
+create table mysqltest.t2 (f1 int);
+grant select (f1) on mysqltest.t1 to user1@localhost;
+grant select on mysqltest.t2 to user2@localhost;
+grant select on mysqltest.* to user3@localhost;
+grant select on *.* to user4@localhost;
+
+connect (con1,localhost,user1,,mysqltest);
+connect (con2,localhost,user2,,mysqltest);
+connect (con3,localhost,user3,,mysqltest);
+connect (con4,localhost,user4,,);
+connection con1;
+select * from information_schema.column_privileges order by grantee;
+select * from information_schema.table_privileges order by grantee;
+select * from information_schema.schema_privileges order by grantee;
+select * from information_schema.user_privileges order by grantee;
+show grants;
+connection con2;
+select * from information_schema.column_privileges order by grantee;
+select * from information_schema.table_privileges order by grantee;
+select * from information_schema.schema_privileges order by grantee;
+select * from information_schema.user_privileges order by grantee;
+show grants;
+connection con3;
+select * from information_schema.column_privileges order by grantee;
+select * from information_schema.table_privileges order by grantee;
+select * from information_schema.schema_privileges order by grantee;
+select * from information_schema.user_privileges order by grantee;
+show grants;
+connection con4;
+select * from information_schema.column_privileges where grantee like '%user%'
+order by grantee;
+select * from information_schema.table_privileges where grantee like '%user%'
+order by grantee;
+select * from information_schema.schema_privileges where grantee like '%user%'
+order by grantee;
+select * from information_schema.user_privileges where grantee like '%user%'
+order by grantee;
+show grants;
+connection default;
+drop user user1@localhost, user2@localhost, user3@localhost, user4@localhost;
+use test;
+drop database mysqltest;
+
+#
+# Bug #11055 information_schema: routines.sql_data_access has wrong value
+#
+--disable_warnings
+drop procedure if exists p1;
+drop procedure if exists p2;
+--enable_warnings
+
+create procedure p1 () modifies sql data set @a = 5;
+create procedure p2 () set @a = 5;
+select sql_data_access from information_schema.routines
+where specific_name like 'p%';
+drop procedure p1;
+drop procedure p2;
+
+#
+# Bug #9434 SHOW CREATE DATABASE information_schema;
+#
+show create database information_schema;
+
+#
+# Bug #11057 information_schema: columns table has some questionable contents
+# Bug #12301 information_schema: NUMERIC_SCALE must be 0 for integer columns
+#
+create table t1(f1 LONGBLOB, f2 LONGTEXT);
+select column_name,data_type,CHARACTER_OCTET_LENGTH,
+ CHARACTER_MAXIMUM_LENGTH
+from information_schema.columns
+where table_name='t1';
+drop table t1;
+create table t1(f1 tinyint, f2 SMALLINT, f3 mediumint, f4 int,
+ f5 BIGINT, f6 BIT, f7 bit(64));
+select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
+from information_schema.columns
+where table_name='t1';
+drop table t1;
+
+#
+# Bug #12127 triggers do not show in info_schema before they are used if set to the database
+#
+create table t1 (f1 integer);
+create trigger tr1 after insert on t1 for each row set @test_var=42;
+use information_schema;
+select trigger_schema, trigger_name from triggers where
+trigger_name='tr1';
+use test;
+drop table t1;
+
+#
+# Bug#12518 COLUMN_DEFAULT has wrong value if NOT NULL is set
+#
+create table t1 (a int not null, b int);
+use information_schema;
+select column_name, column_default from columns
+ where table_schema='test' and table_name='t1';
+use test;
+show columns from t1;
+drop table t1;
+
+#
+# Bug #12636: SHOW TABLE STATUS with where condition containing a subquery
+# over information schema
+#
+
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+
+--replace_column 8 # 12 # 13 #
+SHOW TABLE STATUS FROM test
+ WHERE name IN ( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
+ WHERE TABLE_SCHEMA='test' AND TABLE_TYPE='BASE TABLE');
+
+DROP TABLE t1,t2;
+
+#
+# Bug #12905 show fields from view behaving erratically with current database
+#
+create table t1(f1 int);
+create view v1 (c) as select f1 from t1;
+connect (con5,localhost,root,,*NO-ONE*);
+select database();
+show fields from test.v1;
+connection default;
+drop view v1;
+drop table t1;
+
+#
+# Bug #9846 Inappropriate error displayed while dropping table from 'INFORMATION_SCHEMA'
+#
+--error ER_PARSE_ERROR
+alter database information_schema;
+--error 1044
+drop database information_schema;
+--error 1044
+drop table information_schema.tables;
+--error 1044
+alter table information_schema.tables;
+#
+# Bug #9683 INFORMATION_SCH: Creation of temporary table allowed in Information_schema DB
+#
+use information_schema;
+--error 1044
+create temporary table schemata(f1 char(10));
+#
+# Bug #10708 SP's can use INFORMATION_SCHEMA as ROUTINE_SCHEMA
+#
+delimiter |;
+--error ER_BAD_DB_ERROR
+CREATE PROCEDURE p1 ()
+BEGIN
+ SELECT 'foo' FROM DUAL;
+END |
+delimiter ;|
+select ROUTINE_NAME from routines;
+#
+# Bug #10734 Grant of privileges other than 'select' and 'create view' should fail on schema
+#
+--error 1044
+grant all on information_schema.* to 'user1'@'localhost';
+--error 1044
+grant select on information_schema.* to 'user1'@'localhost';
+
+#
+# Bug#14089 FROM list subquery always fails when information_schema is current database
+#
+use test;
+create table t1(id int);
+insert into t1(id) values (1);
+select 1 from (select 1 from test.t1) a;
+use information_schema;
+select 1 from (select 1 from test.t1) a;
+use test;
+drop table t1;
+
+#
+# Bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value
+#
+create table t1 (f1 int(11));
+create view v1 as select * from t1;
+drop table t1;
+select table_type from information_schema.tables
+where table_name="v1";
+drop view v1;
+
+#
+# Bug #14387 SHOW COLUMNS doesn't work on temporary tables
+# Bug #15224 SHOW INDEX from temporary table doesn't work
+# Bug #12770 DESC cannot display the info. about temporary table
+#
+create temporary table t1(f1 int, index(f1));
+show columns from t1;
+describe t1;
+show indexes from t1;
+drop table t1;
+
+#
+# Bug#14271 I_S: columns has no size for (var)binary columns
+#
+create table t1(f1 binary(32), f2 varbinary(64));
+select character_maximum_length, character_octet_length
+from information_schema.columns where table_name='t1';
+drop table t1;
+
+#
+# Bug#15533 crash, information_schema, function, view
+#
+CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), f3 BIGINT);
+INSERT INTO t1 SET f1 = 1, f2 = 'Schoenenbourg', f3 = 1;
+
+CREATE FUNCTION func2() RETURNS BIGINT RETURN 1;
+
+delimiter //;
+CREATE FUNCTION func1() RETURNS BIGINT
+BEGIN
+ RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS);
+END//
+delimiter ;//
+
+CREATE VIEW v1 AS SELECT 1 FROM t1
+ WHERE f3 = (SELECT func2 ());
+SELECT func1();
+DROP TABLE t1;
+DROP VIEW v1;
+DROP FUNCTION func1;
+DROP FUNCTION func2;
+
+
+#
+# Bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema
+#
+select column_type, group_concat(table_schema, '.', table_name), count(*) as num
+from information_schema.columns where
+table_schema='information_schema' and
+(column_type = 'varchar(7)' or column_type = 'varchar(20)')
+group by column_type order by num;
+
+#
+# Bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
+#
+create table t1(f1 char(1) not null, f2 char(9) not null)
+default character set utf8;
+select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from
+information_schema.columns where table_schema='test' and table_name = 't1';
+drop table t1;
+
+#
+# Bug#18177 any access to INFORMATION_SCHEMA.ROUTINES crashes
+#
+use mysql;
+INSERT INTO `proc` VALUES ('test','','PROCEDURE','','SQL','CONTAINS_SQL',
+'NO','DEFINER','','','BEGIN\r\n \r\nEND','root@%','2006-03-02 18:40:03',
+'2006-03-02 18:40:03','','');
+select routine_name from information_schema.routines;
+delete from proc where name='';
+use test;
+
+#
+# Bug#16681 information_schema shows forbidden VIEW details
+#
+grant select on test.* to mysqltest_1@localhost;
+create table t1 (id int);
+create view v1 as select * from t1;
+create definer = mysqltest_1@localhost
+sql security definer view v2 as select 1;
+
+connect (con16681,localhost,mysqltest_1,,test);
+connection con16681;
+
+select * from information_schema.views
+where table_name='v1' or table_name='v2';
+connection default;
+drop view v1, v2;
+drop table t1;
+drop user mysqltest_1@localhost;
+
+#
+# Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
+#
+set @a:= '.';
+create table t1(f1 char(5));
+create table t2(f1 char(5));
+select concat(@a, table_name), @a, table_name
+from information_schema.tables where table_schema = 'test';
+drop table t1,t2;
+
+
+#
+# Bug#20230: routine_definition is not null
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+CREATE PROCEDURE p1() SET @a= 1;
+CREATE FUNCTION f1() RETURNS INT RETURN @a + 1;
+CREATE USER mysql_bug20230@localhost;
+GRANT EXECUTE ON PROCEDURE p1 TO mysql_bug20230@localhost;
+GRANT EXECUTE ON FUNCTION f1 TO mysql_bug20230@localhost;
+
+SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES;
+SHOW CREATE PROCEDURE p1;
+SHOW CREATE FUNCTION f1;
+
+connect (conn1, localhost, mysql_bug20230,,);
+
+SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES;
+SHOW CREATE PROCEDURE p1;
+SHOW CREATE FUNCTION f1;
+CALL p1();
+SELECT f1();
+
+disconnect conn1;
+connection default;
+
+DROP FUNCTION f1;
+DROP PROCEDURE p1;
+DROP USER mysql_bug20230@localhost;
+
+#
+# Bug#18925: subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
+#
+
+SELECT t.table_name, c1.column_name
+ FROM information_schema.tables t
+ INNER JOIN
+ information_schema.columns c1
+ ON t.table_schema = c1.table_schema AND
+ t.table_name = c1.table_name
+ WHERE t.table_schema = 'information_schema' AND
+ c1.ordinal_position =
+ ( SELECT COALESCE(MIN(c2.ordinal_position),1)
+ FROM information_schema.columns c2
+ WHERE c2.table_schema = t.table_schema AND
+ c2.table_name = t.table_name AND
+ c2.column_name LIKE '%SCHEMA%'
+ );
+SELECT t.table_name, c1.column_name
+ FROM information_schema.tables t
+ INNER JOIN
+ information_schema.columns c1
+ ON t.table_schema = c1.table_schema AND
+ t.table_name = c1.table_name
+ WHERE t.table_schema = 'information_schema' AND
+ c1.ordinal_position =
+ ( SELECT COALESCE(MIN(c2.ordinal_position),1)
+ FROM information_schema.columns c2
+ WHERE c2.table_schema = 'information_schema' AND
+ c2.table_name = t.table_name AND
+ c2.column_name LIKE '%SCHEMA%'
+ );
+
+#
+# Bug#21231: query with a simple non-correlated subquery over
+# INFORMARTION_SCHEMA.TABLES
+#
+
+SELECT MAX(table_name) FROM information_schema.tables;
+SELECT table_name from information_schema.tables
+ WHERE table_name=(SELECT MAX(table_name)
+ FROM information_schema.tables);
+
+#
+# Bug #23037: Bug in field "Default" of query "SHOW COLUMNS FROM table"
+#
+# Note, MyISAM/InnoDB can't take more that 65532 chars, because the row
+# size is limited to 65535 bytes (BLOBs not counted)
+#
+--disable_warnings
+DROP TABLE IF EXISTS bug23037;
+DROP FUNCTION IF EXISTS get_value;
+--enable_warnings
+--disable_query_log
+DELIMITER |;
+CREATE FUNCTION get_value()
+ RETURNS TEXT
+ DETERMINISTIC
+BEGIN
+ DECLARE col1, col2, col3, col4, col6 CHAR(255);
+ DECLARE default_val VARCHAR(65532);
+ DECLARE done INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR SHOW COLUMNS FROM bug23037;
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
+ OPEN cur1;
+ FETCH cur1 INTO col1, col2, col3, col4, default_val, col6;
+ CLOSE cur1;
+ RETURN default_val;
+end|
+DELIMITER ;|
+
+let $body=`SELECT REPEAT('A', 65532)`;
+eval CREATE TABLE bug23037(fld1 VARCHAR(65532) CHARACTER SET latin1 DEFAULT "$body");
+--enable_query_log
+
+SELECT COLUMN_NAME, MD5(COLUMN_DEFAULT), LENGTH(COLUMN_DEFAULT) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='bug23037';
+
+SELECT MD5(get_value());
+
+SELECT COLUMN_NAME, MD5(COLUMN_DEFAULT), LENGTH(COLUMN_DEFAULT), COLUMN_DEFAULT=get_value() FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='bug23037';
+
+DROP TABLE bug23037;
+DROP FUNCTION get_value;
+
+
+
+
+#
+# Bug#22413: EXPLAIN SELECT FROM view with ORDER BY yield server crash
+#
+create view v1 as
+select table_schema as object_schema,
+ table_name as object_name,
+ table_type as object_type
+from information_schema.tables
+order by object_schema;
+explain select * from v1;
+explain select * from (select table_name from information_schema.tables) as a;
+drop view v1;
+
+#
+# Bug#23299 Some queries against INFORMATION_SCHEMA with subqueries fail
+#
+create table t1 (f1 int(11));
+create table t2 (f1 int(11), f2 int(11));
+
+select table_name from information_schema.tables
+where table_schema = 'test' and table_name not in
+(select table_name from information_schema.columns
+ where table_schema = 'test' and column_name = 'f3');
+drop table t1,t2;
+
+
+#
+# Bug#24630 Subselect query crashes mysqld
+#
+select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
+(select cast(table_name as char) from information_schema.tables
+ order by table_name limit 1) limit 1;
+
+select t.table_name, group_concat(t.table_schema, '.', t.table_name),
+ count(*) as num1
+from information_schema.tables t
+inner join information_schema.columns c1
+on t.table_schema = c1.table_schema AND t.table_name = c1.table_name
+where t.table_schema = 'information_schema' and
+ c1.ordinal_position =
+ (select isnull(c2.column_type) -
+ isnull(group_concat(c2.table_schema, '.', c2.table_name)) +
+ count(*) as num
+ from information_schema.columns c2 where
+ c2.table_schema='information_schema' and
+ (c2.column_type = 'varchar(7)' or c2.column_type = 'varchar(20)')
+ group by c2.column_type order by num limit 1)
+group by t.table_name order by num1, t.table_name;
+
+#
+# Bug#28266 IS_UPDATABLE field on VIEWS table in I_S database is wrong
+#
+create table t1(f1 int);
+create view v1 as select f1+1 as a from t1;
+create table t2 (f1 int, f2 int);
+create view v2 as select f1+1 as a, f2 as b from t2;
+select table_name, is_updatable from information_schema.views;
+#
+# Note: we can perform 'delete' for non updatable view.
+#
+delete from v1;
+drop view v1,v2;
+drop table t1,t2;
+
+#
+# Bug#25859 ALTER DATABASE works w/o parameters
+#
+--error ER_PARSE_ERROR
+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;
+
+#
+# Bug#27747 database metadata doesn't return sufficient column default info
+#
+create table t1 (
+ f1 varchar(50),
+ f2 varchar(50) not null,
+ f3 varchar(50) default '',
+ f4 varchar(50) default NULL,
+ f5 bigint not null,
+ f6 bigint not null default 10,
+ f7 datetime not null,
+ f8 datetime default '2006-01-01'
+);
+select column_default from information_schema.columns where table_name= 't1';
+show columns from t1;
+drop table t1;
+
+--echo End of 5.0 tests.
+
+#
+# Bug#30079 A check for "hidden" I_S tables is flawed
+#
+--error 1109
+show fields from information_schema.table_names;
+--error 1109
+show keys from information_schema.table_names;
+
diff --git a/mysql-test/t/information_schema_chmod.test b/mysql-test/t/information_schema_chmod.test
new file mode 100644
index 00000000000..51e67a0c956
--- /dev/null
+++ b/mysql-test/t/information_schema_chmod.test
@@ -0,0 +1,23 @@
+#
+# Due to "Bug#18474 Unlistable directories yield no info from
+# information_schema, part2" this test can't be run on Window with our
+# current test framework. When "chmod -r" is done within cygwin the
+# MySQL Server can still read the directory.
+# Manual testing shows the functionalty to skip unlistable directories
+# works on windows
+#
+--source include/not_windows.inc
+
+# This test uses chmod, can't be run with root permissions
+-- source include/not_as_root.inc
+
+
+#
+# Bug #15851 Unlistable directories yield no info from information_schema
+#
+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';
+chmod 0777 $MYSQLTEST_VARDIR/master-data/mysqltest;
+drop database mysqltest;
diff --git a/mysql-test/t/information_schema_db.test b/mysql-test/t/information_schema_db.test
new file mode 100644
index 00000000000..666f331c7b9
--- /dev/null
+++ b/mysql-test/t/information_schema_db.test
@@ -0,0 +1,212 @@
+# this test mostly test privilege control (what doesn't work
+# in the embedded server by default). So disabled in embedded-server mode
+-- source include/not_embedded.inc
+
+-- source include/testdb_only.inc
+
+--disable_warnings
+drop table if exists t1,t2;
+drop view if exists v1,v2;
+drop function if exists f1;
+drop function if exists f2;
+--enable_warnings
+
+use INFORMATION_SCHEMA;
+--replace_result Tables_in_INFORMATION_SCHEMA Tables_in_information_schema
+show tables;
+--replace_result 'Tables_in_INFORMATION_SCHEMA (T%)' 'Tables_in_information_schema (T%)'
+show tables from INFORMATION_SCHEMA like 'T%';
+create database `inf%`;
+create database mbase;
+use `inf%`;
+show tables;
+
+#
+# Bug#18113 SELECT * FROM information_schema.xxx crashes server
+# Bug#17204 second CALL to procedure crashes Server
+# Crash happened when one selected data from one of INFORMATION_SCHEMA
+# tables and in order to build its contents server had to open view which
+# used stored function and table or view on which one had not global or
+# database-level privileges (e.g. had only table-level or had no
+# privileges at all).
+#
+grant all privileges on `inf%`.* to 'mysqltest_1'@'localhost';
+grant all privileges on `mbase`.* to 'mysqltest_1'@'localhost';
+create table t1 (f1 int);
+delimiter |;
+create function func1(curr_int int) returns int
+begin
+ declare ret_val int;
+ select max(f1) from t1 into ret_val;
+ return ret_val;
+end|
+delimiter ;|
+create view v1 as select f1 from t1 where f1 = func1(f1);
+create function func2() returns int return 1;
+
+use mbase;
+delimiter |;
+create procedure p1 ()
+begin
+select table_name from information_schema.key_column_usage
+order by table_name;
+end|
+delimiter ;|
+
+create table t1
+(f1 int(10) unsigned not null,
+ f2 varchar(100) not null,
+ primary key (f1), unique key (f2));
+
+connect (user1,localhost,mysqltest_1,,);
+connection user1;
+--disable_result_log
+select * from information_schema.tables;
+call mbase.p1();
+call mbase.p1();
+call mbase.p1();
+--enable_result_log
+
+connection default;
+use `inf%`;
+drop user mysqltest_1@localhost;
+drop table t1;
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='inf%' and func2();
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='inf%' and func2();
+drop view v1;
+drop function func1;
+drop function func2;
+
+drop database `inf%`;
+drop procedure mbase.p1;
+drop database mbase;
+
+#
+# Bug#18282 INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views
+#
+use test;
+create table t1 (i int);
+create function f1 () returns int return (select max(i) from t1);
+create view v1 as select f1();
+create table t2 (id int);
+create function f2 () returns int return (select max(i) from t2);
+create view v2 as select f2();
+drop table t2;
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='test';
+drop table t1;
+select table_name, table_type, table_comment from information_schema.tables
+where table_schema='test';
+drop function f1;
+drop function f2;
+drop view v1, v2;
+
+#
+# Bug#20543: select on information_schema strange warnings, view, different
+# schemas/users
+#
+#
+create database testdb_1;
+create user testdb_1@localhost;
+grant all on testdb_1.* to testdb_1@localhost with grant option;
+
+create user testdb_2@localhost;
+grant all on test.* to testdb_2@localhost with grant option;
+
+connect (testdb_1,localhost,testdb_1,,test);
+use testdb_1;
+create table t1 (f1 char(4));
+create view v1 as select f1 from t1;
+grant insert on v1 to testdb_2@localhost;
+
+create view v5 as select f1 from t1;
+grant show view on v5 to testdb_2@localhost;
+
+--error 1227
+create definer=`no_such_user`@`no_such_host` view v6 as select f1 from t1;
+
+connection default;
+use testdb_1;
+create view v6 as select f1 from t1;
+grant show view on v6 to testdb_2@localhost;
+
+create table t2 (f1 char(4));
+create definer=`no_such_user`@`no_such_host` view v7 as select * from t2;
+
+show fields from testdb_1.v6;
+show create view testdb_1.v6;
+
+show create view testdb_1.v7;
+show fields from testdb_1.v7;
+
+connection testdb_1;
+
+create table t3 (f1 char(4), f2 char(4));
+create view v3 as select f1,f2 from t3;
+grant insert(f1), insert(f2) on v3 to testdb_2@localhost;
+
+connect (testdb_2,localhost,testdb_2,,test);
+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;
+show create view testdb_1.v5;
+
+show fields from testdb_1.v6;
+show create view testdb_1.v6;
+
+connection testdb_1;
+show fields from testdb_1.v7;
+show create view testdb_1.v7;
+
+revoke insert(f1) on v3 from testdb_2@localhost;
+revoke show view on v5 from testdb_2@localhost;
+connection default;
+use testdb_1;
+revoke show view on v6 from testdb_2@localhost;
+connection testdb_2;
+
+--error 1142
+show fields from testdb_1.v5;
+--error 1142
+show create view testdb_1.v5;
+
+--error 1142
+show fields from testdb_1.v6;
+--error 1142
+show create view testdb_1.v6;
+
+--error 1142
+show fields from testdb_1.v7;
+--error 1142
+show create view testdb_1.v7;
+
+--error 1345
+show create view v4;
+#--error 1345
+show fields from v4;
+
+show fields from v2;
+show fields from testdb_1.v1;
+show create view v2;
+--error 1142
+show create view testdb_1.v1;
+
+select table_name from information_schema.columns a
+where a.table_name = 'v2';
+select view_definition from information_schema.views a
+where a.table_name = 'v2';
+select view_definition from information_schema.views a
+where a.table_name = 'testdb_1.v1';
+
+--error 1356
+select * from v2;
+
+connection default;
+use test;
+drop view testdb_1.v1, v2, testdb_1.v3, v4;
+drop database testdb_1;
+drop user testdb_1@localhost;
+drop user testdb_2@localhost;
diff --git a/mysql-test/t/information_schema_inno.test b/mysql-test/t/information_schema_inno.test
new file mode 100644
index 00000000000..9cd64a54ad9
--- /dev/null
+++ b/mysql-test/t/information_schema_inno.test
@@ -0,0 +1,23 @@
+-- source include/have_innodb.inc
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2,t3;
+--enable_warnings
+
+#
+# Test for KEY_COLUMN_USAGE & TABLE_CONSTRAINTS tables
+#
+
+CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
+CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id, id),
+FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE,
+FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB;
+
+CREATE TABLE t3 (id INT PRIMARY KEY, t2_id INT, INDEX par_ind (t2_id),
+FOREIGN KEY (id, t2_id) REFERENCES t2(t1_id, id) ON DELETE CASCADE) ENGINE=INNODB;
+
+select * from information_schema.TABLE_CONSTRAINTS where
+TABLE_SCHEMA= "test";
+select * from information_schema.KEY_COLUMN_USAGE where
+TABLE_SCHEMA= "test";
+
+drop table t3, t2, t1;
diff --git a/mysql-test/t/init_connect.test b/mysql-test/t/init_connect.test
index 7ceaef1aad7..0a08559279c 100644
--- a/mysql-test/t/init_connect.test
+++ b/mysql-test/t/init_connect.test
@@ -3,7 +3,10 @@
#
# should work with embedded server after mysqltest is fixed
--- source include/not_embedded.inc
+--source include/not_embedded.inc
+
+--source include/add_anonymous_users.inc
+
connect (con0,localhost,root,,);
connection con0;
select hex(@a);
@@ -21,7 +24,7 @@ connect (con3,localhost,user_1,,);
connection con3;
select @a;
connection con0;
-set global init_connect="create table t1(a char(10));\
+set global init_connect="drop table if exists t1; create table t1(a char(10));\
insert into t1 values ('\0');insert into t1 values('abc')";
connect (con4,localhost,user_1,,);
connection con4;
@@ -35,4 +38,209 @@ select @a;
connection con0;
drop table t1;
-# End of 4.1 tests
+disconnect con1;
+disconnect con2;
+disconnect con3;
+disconnect con4;
+disconnect con5;
+
+--source include/delete_anonymous_users.inc
+
+--echo End of 4.1 tests
+#
+# Test 5.* features
+#
+
+create table t1 (x int);
+insert into t1 values (3), (5), (7);
+create table t2 (y int);
+
+create user mysqltest1@localhost;
+grant all privileges on test.* to mysqltest1@localhost;
+#
+# Create a simple procedure
+#
+set global init_connect="create procedure p1() select * from t1";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+call p1();
+drop procedure p1;
+
+connection con0;
+disconnect con1;
+#
+# Create a multi-result set procedure
+#
+set global init_connect="create procedure p1(x int)\
+begin\
+ select count(*) from t1;\
+ select * from t1;\
+ set @x = x;
+end";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+call p1(42);
+select @x;
+
+connection con0;
+disconnect con1;
+#
+# Just call it - this will not generate any output
+#
+set global init_connect="call p1(4711)";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+select @x;
+
+connection con0;
+disconnect con1;
+#
+# Drop the procedure
+#
+set global init_connect="drop procedure if exists p1";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+--error ER_SP_DOES_NOT_EXIST
+call p1();
+
+connection con0;
+disconnect con1;
+#
+# Execution of a more complex procedure
+#
+delimiter |;
+create procedure p1(out sum int)
+begin
+ declare n int default 0;
+ declare c cursor for select * from t1;
+ declare exit handler for not found
+ begin
+ close c;
+ set sum = n;
+ end;
+
+ open c;
+ loop
+ begin
+ declare x int;
+
+ fetch c into x;
+ if x > 3 then
+ set n = n + x;
+ end if;
+ end;
+ end loop;
+end|
+delimiter ;|
+# Call the procedure with a cursor
+set global init_connect="call p1(@sum)";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+select @sum;
+
+connection con0;
+disconnect con1;
+drop procedure p1;
+#
+# Test Dynamic SQL
+#
+delimiter |;
+create procedure p1(tbl char(10), v int)
+begin
+ set @s = concat('insert into ', tbl, ' values (?)');
+ set @v = v;
+ prepare stmt1 from @s;
+ execute stmt1 using @v;
+ deallocate prepare stmt1;
+end|
+delimiter ;|
+# Call the procedure with prepared statements
+set global init_connect="call p1('t1', 11)";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+select * from t1;
+
+connection con0;
+disconnect con1;
+drop procedure p1;
+#
+# Stored functions
+#
+delimiter |;
+create function f1() returns int
+begin
+ declare n int;
+
+ select count(*) into n from t1;
+ return n;
+end|
+delimiter ;|
+# Invoke a function
+set global init_connect="set @x = f1()";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+select @x;
+
+connection con0;
+disconnect con1;
+#
+# Create a view
+#
+set global init_connect="create view v1 as select f1()";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+select * from v1;
+
+connection con0;
+disconnect con1;
+#
+# Drop the view
+#
+set global init_connect="drop view v1";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+--error ER_NO_SUCH_TABLE
+select * from v1;
+
+connection con0;
+disconnect con1;
+drop function f1;
+
+# We can't test "create trigger", since this requires super privileges
+# in 5.0, but with super privileges, init_connect is not executed.
+# (However, this can be tested in 5.1)
+#
+#set global init_connect="create trigger trg1\
+# after insert on t2\
+# for each row\
+# insert into t1 values (new.y)";
+#connect (con1,localhost,mysqltest1,,);
+#connection con1;
+#insert into t2 values (2), (4);
+#select * from t1;
+#
+#connection con0;
+#disconnect con1;
+
+create trigger trg1
+ after insert on t2
+ for each row
+ insert into t1 values (new.y);
+
+# Invoke trigger
+set global init_connect="insert into t2 values (13), (17), (19)";
+connect (con1,localhost,mysqltest1,,);
+connection con1;
+select * from t1;
+
+connection con0;
+disconnect con1;
+
+drop trigger trg1;
+# Set init connect back to the value provided in init_connect-master.opt
+# doesn't matter as server will be restarted
+set global init_connect="set @a='a\\0c'";
+
+revoke all privileges, grant option from mysqltest1@localhost;
+drop user mysqltest1@localhost;
+drop table t1, t2;
diff --git a/mysql-test/t/init_file.test b/mysql-test/t/init_file.test
index 34d738415c8..7c580afadda 100644
--- a/mysql-test/t/init_file.test
+++ b/mysql-test/t/init_file.test
@@ -16,4 +16,14 @@ SELECT YEAR(@X)-YEAR(@Y);
DROP DATABASE init_file;
--echo ok
---echo End of 4.1 tests
+--echo end of 4.1 tests
+#
+# Chec 5.x features
+#
+# Expected:
+# 3, 5, 7, 11, 13
+select * from t1;
+# Expected:
+# 30, 3, 11, 13
+select * from t2;
+drop table t1, t2;
diff --git a/mysql-test/t/innodb-big.test b/mysql-test/t/innodb-big.test
new file mode 100644
index 00000000000..dcb32cd8e71
--- /dev/null
+++ b/mysql-test/t/innodb-big.test
@@ -0,0 +1,152 @@
+#
+# Test some things that takes a long time
+
+-- source include/big_test.inc
+-- source include/have_innodb.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2, t3, t4;
+--enable_warnings
+
+#
+# Test test how filesort and buffered-record-reads works with innodb
+#
+
+CREATE TABLE t1 (id INTEGER) ENGINE=MYISAM;
+CREATE TABLE t2 (id INTEGER primary key) ENGINE=INNODB;
+CREATE TABLE t3 (a char(32) primary key,id INTEGER) ENGINE=INNODB;
+CREATE TABLE t4 (a char(32) primary key,id INTEGER) ENGINE=MYISAM;
+
+INSERT INTO t1 (id) VALUES (1);
+INSERT INTO t1 SELECT id+1 FROM t1;
+INSERT INTO t1 SELECT id+2 FROM t1;
+INSERT INTO t1 SELECT id+4 FROM t1;
+INSERT INTO t1 SELECT id+8 FROM t1;
+INSERT INTO t1 SELECT id+16 FROM t1;
+INSERT INTO t1 SELECT id+32 FROM t1;
+INSERT INTO t1 SELECT id+64 FROM t1;
+INSERT INTO t1 SELECT id+128 FROM t1;
+INSERT INTO t1 SELECT id+256 FROM t1;
+INSERT INTO t1 SELECT id+512 FROM t1;
+INSERT INTO t1 SELECT id+1024 FROM t1;
+INSERT INTO t1 SELECT id+2048 FROM t1;
+INSERT INTO t1 SELECT id+4096 FROM t1;
+INSERT INTO t1 SELECT id+8192 FROM t1;
+INSERT INTO t1 SELECT id+16384 FROM t1;
+INSERT INTO t1 SELECT id+32768 FROM t1;
+INSERT INTO t1 SELECT id+65536 FROM t1;
+INSERT INTO t1 SELECT id+131072 FROM t1;
+INSERT INTO t1 SELECT id+262144 FROM t1;
+INSERT INTO t1 SELECT id+524288 FROM t1;
+INSERT INTO t1 SELECT id+1048576 FROM t1;
+INSERT INTO t2 SELECT * FROM t1;
+INSERT INTO t3 SELECT concat(id),id from t2 ORDER BY -id;
+INSERT INTO t4 SELECT * from t3 ORDER BY concat(a);
+select sum(id) from t3;
+drop table t1,t2,t3,t4;
+
+#
+# Bug#24989: The DEADLOCK error is improperly handled by InnoDB.
+#
+CREATE TABLE t1 (f1 int NOT NULL) ENGINE=InnoDB;
+CREATE TABLE t2 (f2 int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
+DELIMITER |;
+CREATE TRIGGER t1_bi before INSERT
+ ON t1 FOR EACH ROW
+BEGIN
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '40001' SET @a:= 'deadlock';
+ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
+ INSERT INTO t2 (f2) VALUES (1);
+ DELETE FROM t2 WHERE f2 = 1;
+END;|
+
+CREATE PROCEDURE proc24989()
+BEGIN
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '40001' SET @b:= 'deadlock';
+ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
+ INSERT INTO t2 (f2) VALUES (1);
+ DELETE FROM t2 WHERE f2 = 1;
+END;|
+
+create procedure proc24989_2()
+ deterministic
+begin
+ declare continue handler for sqlexception
+ select 'Outer handler' as 'exception';
+
+ insert into t1 values(1);
+ select "continued";
+end|
+
+DELIMITER ;|
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+connection con1;
+start transaction;
+insert into t1 values(1);
+
+connection con2;
+start transaction;
+insert into t2 values(123);
+send insert into t1 values(1);
+
+connection con1;
+--sleep 1
+insert into t1 values(1);
+
+connection con2;
+--error 1213
+reap;
+select @a;
+# check that the whole transaction was rolled back
+select * from t2;
+
+connection con1;
+commit;
+start transaction;
+insert into t1 values(1);
+
+connection con2;
+start transaction;
+insert into t2 values(123);
+send call proc24989();
+
+connection con1;
+--sleep 1
+insert into t1 values(1);
+
+connection con2;
+reap;
+select @a,@b;
+# check that the whole transaction was rolled back
+select * from t2;
+
+connection con1;
+commit;
+start transaction;
+insert into t1 values(1);
+
+connection con2;
+start transaction;
+insert into t2 values(123);
+send call proc24989_2();
+
+connection con1;
+--sleep 1
+insert into t1 values(1);
+commit;
+
+connection con2;
+reap;
+# check that the whole transaction was rolled back
+select * from t2;
+
+disconnect con1;
+disconnect con2;
+connection default;
+drop procedure proc24989;
+drop procedure proc24989_2;
+drop table t1,t2;
+
diff --git a/mysql-test/t/innodb-deadlock.test b/mysql-test/t/innodb-deadlock.test
index 81acfba5c93..1a184f98771 100644
--- a/mysql-test/t/innodb-deadlock.test
+++ b/mysql-test/t/innodb-deadlock.test
@@ -112,4 +112,29 @@ commit;
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/t/innodb-replace.test b/mysql-test/t/innodb-replace.test
index 51b70f34b65..d44ede65ce8 100644
--- a/mysql-test/t/innodb-replace.test
+++ b/mysql-test/t/innodb-replace.test
@@ -12,10 +12,10 @@ drop table if exists t1;
create table t1 (c1 char(5) unique not null, c2 int, stamp timestamp) engine=innodb;
select * from t1;
--error 1031
-replace delayed into t1 (c1, c2) values ( "text1","11"),( "text2","12");
+replace delayed into t1 (c1, c2) values ( "text1","11");
select * from t1;
--error 1031
-replace delayed into t1 (c1, c2) values ( "text1","12"),( "text2","13"),( "text3","14", "a" ),( "text4","15", "b" );
+replace delayed into t1 (c1, c2) values ( "text1","12");
select * from t1;
drop table t1;
diff --git a/mysql-test/t/innodb-ucs2.test b/mysql-test/t/innodb-ucs2.test
new file mode 100644
index 00000000000..6647a9d0845
--- /dev/null
+++ b/mysql-test/t/innodb-ucs2.test
@@ -0,0 +1,226 @@
+-- source include/have_innodb.inc
+-- source include/have_ucs2.inc
+
+#
+# BUG 14056 Column prefix index on UTF-8 primary key column causes: Can't find record..
+#
+
+create table t1 (
+ a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+ a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
+insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
+insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+select a,hex(b),hex(c),filler from t2 order by filler;
+drop table t1;
+drop table t2;
+
+create table t1 (
+ a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+ a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
+insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
+insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+select a,hex(b),hex(c),filler from t2 order by filler;
+drop table t1;
+drop table t2;
+
+create table t1 (
+ a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+ a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
+insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
+insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+select a,hex(b),hex(c),filler from t2 order by filler;
+drop table t1;
+drop table t2;
+
+create table t1 (
+ a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2))
+) character set utf8 engine = innodb;
+create table t2 (
+ a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2))
+) character set ucs2 engine = innodb;
+insert into t1 values (1,'abcdefg','abcdefg','one');
+insert into t1 values (2,'ijkilmn','ijkilmn','two');
+insert into t1 values (3,'qrstuvw','qrstuvw','three');
+insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
+insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
+insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
+insert into t2 values (1,'abcdefg','abcdefg','one');
+insert into t2 values (2,'ijkilmn','ijkilmn','two');
+insert into t2 values (3,'qrstuvw','qrstuvw','three');
+insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
+insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
+insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
+insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
+insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
+insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
+insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
+update t1 set filler = 'boo' where a = 1;
+update t2 set filler ='email' where a = 4;
+select a,hex(b),hex(c),filler from t1 order by filler;
+select a,hex(b),hex(c),filler from t2 order by filler;
+drop table t1;
+drop table t2;
+commit;
+
+#
+# Test cases for bug #15308 Problem of Order with Enum Column in Primary Key
+#
+CREATE TABLE t1 (
+ ind enum('0','1','2') NOT NULL default '0',
+ string1 varchar(250) NOT NULL,
+ PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE t2 (
+ ind enum('0','1','2') NOT NULL default '0',
+ string1 varchar(250) NOT NULL,
+ PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=ucs2;
+
+INSERT INTO t1 VALUES ('1', ''),('2', '');
+INSERT INTO t2 VALUES ('1', ''),('2', '');
+SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1;
+SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1;
+drop table t1,t2;
+
+CREATE TABLE t1 (
+ ind set('0','1','2') NOT NULL default '0',
+ string1 varchar(250) NOT NULL,
+ PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE t2 (
+ ind set('0','1','2') NOT NULL default '0',
+ string1 varchar(250) NOT NULL,
+ PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=ucs2;
+
+INSERT INTO t1 VALUES ('1', ''),('2', '');
+INSERT INTO t2 VALUES ('1', ''),('2', '');
+SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1;
+SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1;
+drop table t1,t2;
+
+CREATE TABLE t1 (
+ ind bit not null,
+ string1 varchar(250) NOT NULL,
+ PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE t2 (
+ ind bit not null,
+ string1 varchar(250) NOT NULL,
+ PRIMARY KEY (ind)
+) ENGINE=InnoDB DEFAULT CHARSET=ucs2;
+insert into t1 values(0,''),(1,'');
+insert into t2 values(0,''),(1,'');
+select hex(ind),hex(string1) from t1 order by string1;
+select hex(ind),hex(string1) from t2 order by string1;
+drop table t1,t2;
+
+# tests for bug #14056 Column prefix index on UTF-8 primary key column causes 'Can't find record..'
+
+create table t2 (
+ a int, b char(10), filler char(10), primary key(a, b(2))
+) character set utf8 engine = innodb;
+
+insert into t2 values (1,'abcdefg','one');
+insert into t2 values (2,'ijkilmn','two');
+insert into t2 values (3, 'qrstuvw','three');
+update t2 set a=5, filler='booo' where a=1;
+drop table t2;
+create table t2 (
+ a int, b char(10), filler char(10), primary key(a, b(2))
+) character set ucs2 engine = innodb;
+
+insert into t2 values (1,'abcdefg','one');
+insert into t2 values (2,'ijkilmn','two');
+insert into t2 values (3, 'qrstuvw','three');
+update t2 set a=5, filler='booo' where a=1;
+drop table t2;
+
+create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8;
+insert into t1 values(1,'abcdefg'),(2,'defghijk');
+insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
+insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
+select a,hex(b) from t1 order by b;
+update t1 set b = 'three' where a = 6;
+drop table t1;
+create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8;
+insert into t1 values(1,'abcdefg'),(2,'defghijk');
+insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
+insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
+select a,hex(b) from t1 order by b;
+update t1 set b = 'three' where a = 6;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index 7e594c358f2..04dfa1d0836 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -142,6 +142,32 @@ insert into t1 values (6);
-- error 1062
insert into t1 values (4);
select n from t1;
+set autocommit=0;
+#
+# savepoints
+#
+begin;
+savepoint `my_savepoint`;
+insert into t1 values (7);
+savepoint `savept2`;
+insert into t1 values (3);
+select n from t1;
+savepoint savept3;
+rollback to savepoint savept2;
+--error 1305
+rollback to savepoint savept3;
+rollback to savepoint savept2;
+release savepoint `my_savepoint`;
+select n from t1;
+-- error 1305
+rollback to savepoint `my_savepoint`;
+--error 1305
+rollback to savepoint savept2;
+insert into t1 values (8);
+savepoint sv;
+commit;
+savepoint sv;
+set autocommit=1;
# nop
rollback;
drop table t1;
@@ -428,6 +454,7 @@ set @a:=now();
CREATE TABLE t1 (a int not null, b timestamp not null, primary key (a)) engine=innodb;
insert into t1 (a) values(1),(2),(3);
select t1.a from t1 natural join t1 as t2 where t1.b >= @a order by t1.a;
+select a from t1 natural join t1 as t2 where b >= @a order by a;
update t1 set a=5 where a=1;
select a from t1;
drop table t1;
@@ -573,7 +600,7 @@ insert into mysqltest.t3 values(1);
commit;
drop database mysqltest;
# Don't check error message
---error 12,12
+--error 1049
show tables from mysqltest;
#
@@ -647,9 +674,9 @@ CREATE TABLE t1 (
cname char(15) NOT NULL default '',
carrier_id smallint(6) NOT NULL default '0',
privacy tinyint(4) NOT NULL default '0',
- last_mod_date timestamp(14) NOT NULL,
+ last_mod_date timestamp NOT NULL,
last_mod_id smallint(6) NOT NULL default '0',
- last_app_date timestamp(14) NOT NULL,
+ last_app_date timestamp NOT NULL,
last_app_id smallint(6) default '-1',
version smallint(6) NOT NULL default '0',
assigned_scps int(11) default '0',
@@ -666,9 +693,9 @@ CREATE TABLE t2 (
cname char(15) NOT NULL default '',
carrier_id smallint(6) NOT NULL default '0',
privacy tinyint(4) NOT NULL default '0',
- last_mod_date timestamp(14) NOT NULL,
+ last_mod_date timestamp NOT NULL,
last_mod_id smallint(6) NOT NULL default '0',
- last_app_date timestamp(14) NOT NULL,
+ last_app_date timestamp NOT NULL,
last_app_id smallint(6) default '-1',
version smallint(6) NOT NULL default '0',
assigned_scps int(11) default '0',
@@ -727,6 +754,45 @@ 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;
@@ -964,11 +1030,11 @@ create table `t2` (`id` int( 11 ) not null default '0',unique key `id` ( `id` )
insert into `t2`values ( 1 ) ;
create table `t3` (`id` int( 11 ) not null default '0',key `id` ( `id` ) ,constraint `t2_id_fk` foreign key ( `id` ) references `t2` (`id` )) engine = innodb;
insert into `t3`values ( 1 ) ;
---error 1217
+--error 1451
delete t3,t2,t1 from t1,t2,t3 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
---error 1217
+--error 1451
update t1,t2,t3 set t3.id=5, t2.id=6, t1.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
---error 1109
+--error 1054
update t3 set t3.id=7 where t1.id =1 and t2.id = t1.id and t3.id = t2.id;
drop table t3,t2,t1;
@@ -982,7 +1048,7 @@ create table t1(
foreign key(pid) references t1(id) on delete cascade) engine=innodb;
insert into t1 values(0,0),(1,0),(2,1),(3,2),(4,3),(5,4),(6,5),(7,6),
(8,7),(9,8),(10,9),(11,10),(12,11),(13,12),(14,13),(15,14);
--- error 1217
+-- error 1451
delete from t1 where id=0;
delete from t1 where id=15;
delete from t1 where id=0;
@@ -1011,7 +1077,7 @@ CREATE TABLE t1 (
`id` int(10) unsigned NOT NULL auto_increment,
`id_object` int(10) unsigned default '0',
`id_version` int(10) unsigned NOT NULL default '1',
- label varchar(100) NOT NULL default '',
+ `label` varchar(100) NOT NULL default '',
`description` text,
PRIMARY KEY (`id`),
KEY `id_object` (`id_object`),
@@ -1029,8 +1095,8 @@ CREATE TABLE t2 (
INSERT INTO t2 VALUES("3524", "1"),("3525", "1"),("1794", "4"),("102", "5"),("1822", "6"),("3382", "9");
-SELECT t2.id, t1.label FROM t2 INNER JOIN
-(SELECT t1.id_object as id_object FROM t1 WHERE t1.label LIKE '%test%') AS lbl
+SELECT t2.id, t1.`label` FROM t2 INNER JOIN
+(SELECT t1.id_object as id_object FROM t1 WHERE t1.`label` LIKE '%test%') AS lbl
ON (t2.id = lbl.id_object) INNER JOIN t1 ON (t2.id = t1.id_object);
drop table t1,t2;
@@ -1052,7 +1118,7 @@ drop table t1,t2,t3;
#
create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb;
insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt');
-select name2 from t1 union all select name from t1 union all select id from t1;
+select trim(name2) from t1 union all select trim(name) from t1 union all select trim(id) from t1;
drop table t1;
#
@@ -1110,8 +1176,11 @@ show create table t2;
drop table t2;
# Test error handling
---replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ /
---error 1005
+
+# 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
+--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;
# bug#3749
@@ -1125,41 +1194,6 @@ drop table t2, t1;
#
-# Let us test binlog_cache_use and binlog_cache_disk_use status vars.
-# Actually this test has nothing to do with innodb per se, it just requires
-# transactional table.
-#
-show status like "binlog_cache_use";
-show status like "binlog_cache_disk_use";
-
-create table t1 (a int) engine=innodb;
-
-# Now we are going to create transaction which is long enough so its
-# transaction binlog will be flushed to disk...
-let $1=2000;
-disable_query_log;
-begin;
-while ($1)
-{
- eval insert into t1 values( $1 );
- dec $1;
-}
-commit;
-enable_query_log;
-show status like "binlog_cache_use";
-show status like "binlog_cache_disk_use";
-
-# Transaction which should not be flushed to disk and so should not
-# increase binlog_cache_disk_use.
-begin;
-delete from t1;
-commit;
-show status like "binlog_cache_use";
-show status like "binlog_cache_disk_use";
-
-drop table t1;
-
-#
# Bug #6126: Duplicate columns in keys gives misleading error message
#
--error 1060
@@ -1253,45 +1287,359 @@ select min(a) from t1;
select min(b) from t1 where a='8';
drop table t1;
+# End of 4.1 tests
+
+#
+# range optimizer problem
+#
+
+create table t1 (x bigint unsigned not null primary key) engine=innodb;
+insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1);
+select * from t1;
+select count(*) from t1 where x>0;
+select count(*) from t1 where x=0;
+select count(*) from t1 where x<0;
+select count(*) from t1 where x < -16;
+select count(*) from t1 where x = -16;
+explain select count(*) from t1 where x > -16;
+select count(*) from t1 where x > -16;
+select * from t1 where x > -16;
+select count(*) from t1 where x = 18446744073709551601;
+drop table t1;
+
+
+# Test for testable InnoDB status variables. This test
+# uses previous ones(pages_created, rows_deleted, ...).
+show status like "Innodb_buffer_pool_pages_total";
+show status like "Innodb_page_size";
+show status like "Innodb_rows_deleted";
+show status like "Innodb_rows_inserted";
+show status like "Innodb_rows_updated";
+
+# Test for row locks InnoDB status variables.
+show status like "Innodb_row_lock_waits";
+show status like "Innodb_row_lock_current_waits";
+show status like "Innodb_row_lock_time";
+show status like "Innodb_row_lock_time_max";
+show status like "Innodb_row_lock_time_avg";
+
+# Test for innodb_sync_spin_loops variable
+show variables like "innodb_sync_spin_loops";
+set global innodb_sync_spin_loops=1000;
+show variables like "innodb_sync_spin_loops";
+set global innodb_sync_spin_loops=0;
+show variables like "innodb_sync_spin_loops";
+set global innodb_sync_spin_loops=20;
+show variables like "innodb_sync_spin_loops";
+
+# Test for innodb_thread_concurrency variable
+show variables like "innodb_thread_concurrency";
+set global innodb_thread_concurrency=1001;
+show variables like "innodb_thread_concurrency";
+set global innodb_thread_concurrency=0;
+show variables like "innodb_thread_concurrency";
+set global innodb_thread_concurrency=16;
+show variables like "innodb_thread_concurrency";
+
+# Test for innodb_concurrency_tickets variable
+show variables like "innodb_concurrency_tickets";
+set global innodb_concurrency_tickets=1000;
+show variables like "innodb_concurrency_tickets";
+set global innodb_concurrency_tickets=0;
+show variables like "innodb_concurrency_tickets";
+set global innodb_concurrency_tickets=500;
+show variables like "innodb_concurrency_tickets";
+
+# Test for innodb_thread_sleep_delay variable
+show variables like "innodb_thread_sleep_delay";
+set global innodb_thread_sleep_delay=100000;
+show variables like "innodb_thread_sleep_delay";
+set global innodb_thread_sleep_delay=0;
+show variables like "innodb_thread_sleep_delay";
+set global innodb_thread_sleep_delay=10000;
+show variables like "innodb_thread_sleep_delay";
+
+#
+# Test varchar
+#
+
+let $default=`select @@storage_engine`;
+set storage_engine=INNODB;
+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
+create table t1 (v varchar(65530), key(v));
+drop table t1;
+create table t1 (v varchar(65536));
+show create table t1;
+drop table t1;
+create table t1 (v varchar(65530) character set utf8);
+show create table t1;
+drop table t1;
+
+eval set storage_engine=$default;
+
+# InnoDB specific varchar tests
+create table t1 (v varchar(16384)) engine=innodb;
+drop table t1;
+
+#
+# BUG#11039 Wrong key length in min()
+#
+
+create table t1 (a char(1), b char(1), key(a, b)) engine=innodb;
+insert into t1 values ('8', '6'), ('4', '7');
+select min(a) from t1;
+select min(b) from t1 where a='8';
+drop table t1;
+
+#
+# Bug #11080 & #11005 Multi-row REPLACE fails on a duplicate key error
+#
+
+CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`)) ENGINE=innodb;
+insert into t1 (b) values (1);
+replace into t1 (b) values (2), (1), (3);
+select * from t1;
+truncate table t1;
+insert into t1 (b) values (1);
+replace into t1 (b) values (2);
+replace into t1 (b) values (1);
+replace into t1 (b) values (3);
+select * from t1;
+drop table t1;
+
+create table t1 (rowid int not null auto_increment, val int not null,primary
+key (rowid), unique(val)) engine=innodb;
+replace into t1 (val) values ('1'),('2');
+replace into t1 (val) values ('1'),('2');
+--error 1062
+insert into t1 (val) values ('1'),('2');
+select * from t1;
+drop table t1;
+
+#
+# Test that update does not change internal auto-increment value
+#
+
+create table t1 (a int not null auto_increment primary key, val int) engine=InnoDB;
+insert into t1 (val) values (1);
+update t1 set a=2 where a=1;
+# We should get the following error because InnoDB does not update the counter
+--error 1062
+insert into t1 (val) values (1);
+select * from t1;
+drop table t1;
+#
+# Bug #10465
+#
+
+--disable_warnings
+CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
+--enable_warnings
+INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
+SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
+SELECT GRADE FROM t1 WHERE GRADE= 151;
+DROP TABLE t1;
+
+#
+# Bug #12340 multitable delete deletes only one record
+#
+create table t1 (f1 varchar(10), f2 varchar(10), primary key (f1,f2)) engine=innodb;
+create table t2 (f3 varchar(10), f4 varchar(10), key (f4)) engine=innodb;
+insert into t2 values ('aa','cc');
+insert into t1 values ('aa','bb'),('aa','cc');
+delete t1 from t1,t2 where f1=f3 and f4='cc';
+select * from t1;
+drop table t1,t2;
+
+#
+# Test that the slow TRUNCATE implementation resets autoincrement columns
+# (bug #11946)
+#
+
+CREATE TABLE t1 (
+id INTEGER NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)
+) ENGINE=InnoDB;
+
+CREATE TABLE t2 (
+id INTEGER NOT NULL,
+FOREIGN KEY (id) REFERENCES t1 (id)
+) ENGINE=InnoDB;
+
+INSERT INTO t1 (id) VALUES (NULL);
+SELECT * FROM t1;
+TRUNCATE t1;
+INSERT INTO t1 (id) VALUES (NULL);
+SELECT * FROM t1;
+
+# continued from above; test that doing a slow TRUNCATE on a table with 0
+# rows resets autoincrement columns
+DELETE FROM t1;
+TRUNCATE t1;
+INSERT INTO t1 (id) VALUES (NULL);
+SELECT * FROM t1;
+DROP TABLE t2, t1;
+
+# Test that foreign keys in temporary tables are not accepted (bug #12084)
+CREATE TABLE t1
+(
+ id INT PRIMARY KEY
+) ENGINE=InnoDB;
+
+--error 1005,1005
+CREATE TEMPORARY TABLE t2
+(
+ id INT NOT NULL PRIMARY KEY,
+ b INT,
+ FOREIGN KEY (b) REFERENCES test.t1(id)
+) ENGINE=InnoDB;
+DROP TABLE t1;
+
+#
+# Test that index column max sizes are honored (bug #13315)
+#
+
+# prefix index
+create table t1 (col1 varchar(2000), index (col1(767)))
+ character set = latin1 engine = innodb;
+
+# normal indexes
+create table t2 (col1 char(255), index (col1))
+ character set = latin1 engine = innodb;
+create table t3 (col1 binary(255), index (col1))
+ character set = latin1 engine = innodb;
+create table t4 (col1 varchar(767), index (col1))
+ character set = latin1 engine = innodb;
+create table t5 (col1 varchar(767) primary key)
+ character set = latin1 engine = innodb;
+create table t6 (col1 varbinary(767) primary key)
+ character set = latin1 engine = innodb;
+create table t7 (col1 text, index(col1(767)))
+ character set = latin1 engine = innodb;
+create table t8 (col1 blob, index(col1(767)))
+ character set = latin1 engine = innodb;
+
+# multi-column indexes are allowed to be longer
+create table t9 (col1 varchar(512), col2 varchar(512), index(col1, col2))
+ character set = latin1 engine = innodb;
+
+show create table t9;
+
+drop table t1, t2, t3, t4, t5, t6, t7, t8, t9;
+
+# these should have their index length trimmed
+create table t1 (col1 varchar(768), index(col1))
+ character set = latin1 engine = innodb;
+create table t2 (col1 varbinary(768), index(col1))
+ character set = latin1 engine = innodb;
+create table t3 (col1 text, index(col1(768)))
+ character set = latin1 engine = innodb;
+create table t4 (col1 blob, index(col1(768)))
+ character set = latin1 engine = innodb;
+
+show create table t1;
+
+drop table t1, t2, t3, t4;
+
+# these should be refused
+--error 1071
+create table t1 (col1 varchar(768) primary key)
+ character set = latin1 engine = innodb;
+--error 1071
+create table t2 (col1 varbinary(768) primary key)
+ character set = latin1 engine = innodb;
+--error 1071
+create table t3 (col1 text, primary key(col1(768)))
+ character set = latin1 engine = innodb;
+--error 1071
+create table t4 (col1 blob, primary key(col1(768)))
+ character set = latin1 engine = innodb;
+
+#
+# Test improved foreign key error messages (bug #3443)
+#
+
+CREATE TABLE t1
+(
+ id INT PRIMARY KEY
+) ENGINE=InnoDB;
+
+CREATE TABLE t2
+(
+ v INT,
+ CONSTRAINT c1 FOREIGN KEY (v) REFERENCES t1(id)
+) ENGINE=InnoDB;
+
+--error 1452
+INSERT INTO t2 VALUES(2);
+
+INSERT INTO t1 VALUES(1);
+INSERT INTO t2 VALUES(1);
+
+--error 1451
+DELETE FROM t1 WHERE id = 1;
+
+--error 1217
+DROP TABLE t1;
+
+SET FOREIGN_KEY_CHECKS=0;
+DROP TABLE t1;
+SET FOREIGN_KEY_CHECKS=1;
+
+--error 1452
+INSERT INTO t2 VALUES(3);
+
+DROP TABLE t2;
#
# Test that checksum table uses a consistent read Bug #12669
#
connect (a,localhost,root,,);
connect (b,localhost,root,,);
connection a;
-create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
-insert into test_checksum values (1),(2);
+create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
+insert into t1 values (1),(2);
set autocommit=0;
-checksum table test_checksum;
+checksum table t1;
connection b;
-insert into test_checksum values(3);
+insert into t1 values(3);
connection a;
#
# Here checksum should not see insert
#
-checksum table test_checksum;
+checksum table t1;
connection a;
commit;
-checksum table test_checksum;
+checksum table t1;
commit;
-drop table test_checksum;
+drop table t1;
#
# autocommit = 1
#
connection a;
-create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
-insert into test_checksum values (1),(2);
+create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
+insert into t1 values (1),(2);
set autocommit=1;
-checksum table test_checksum;
+checksum table t1;
connection b;
set autocommit=1;
-insert into test_checksum values(3);
+insert into t1 values(3);
connection a;
#
# Here checksum sees insert
#
-checksum table test_checksum;
-drop table test_checksum;
+checksum table t1;
+drop table t1;
+
+connection default;
+disconnect a;
+disconnect b;
# tests for bugs #9802 and #13778
@@ -1299,7 +1647,7 @@ drop table test_checksum;
set foreign_key_checks=0;
create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = innodb;
---replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ /
+--replace_result $MYSQLTEST_VARDIR . master-data/ ''
-- error 1005
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
set foreign_key_checks=1;
@@ -1310,7 +1658,7 @@ drop table t2;
set foreign_key_checks=0;
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
---replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ /
+--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;
set foreign_key_checks=1;
@@ -1340,48 +1688,139 @@ 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;
---replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ /
+--replace_result $MYSQLTEST_VARDIR . master-data/ ''
-- error 1025
rename table t3 to t1;
set foreign_key_checks=1;
drop table t2,t3;
-# tests for bug #14056 Column prefix index on UTF-8 primary key column causes 'Can't find record..'
+# test that foreign key errors are reported correctly (Bug #15550)
+
+create table t1(a int primary key) row_format=redundant engine=innodb;
+create table t2(a int primary key,constraint foreign key(a)references t1(a)) row_format=compact engine=innodb;
+create table t3(a int primary key) row_format=compact engine=innodb;
+create table t4(a int primary key,constraint foreign key(a)references t3(a)) row_format=redundant engine=innodb;
+
+insert into t1 values(1);
+insert into t3 values(1);
+-- error 1452
+insert into t2 values(2);
+-- error 1452
+insert into t4 values(2);
+insert into t2 values(1);
+insert into t4 values(1);
+-- error 1451
+update t1 set a=2;
+-- error 1452
+update t2 set a=2;
+-- error 1451
+update t3 set a=2;
+-- error 1452
+update t4 set a=2;
+-- error 1451
+truncate t1;
+-- error 1451
+truncate t3;
+truncate t2;
+truncate t4;
+truncate t1;
+truncate t3;
-create table t2 (
- a int, b char(10), filler char(10), primary key(a, b(2))
-) character set utf8 engine = innodb;
+drop table t4,t3,t2,t1;
-insert into t2 values (1,'abcdefg','one');
-insert into t2 values (2,'ijkilmn','two');
-insert into t2 values (3, 'qrstuvw','three');
-update t2 set a=5, filler='booo' where a=1;
-drop table t2;
-create table t2 (
- a int, b char(10), filler char(10), primary key(a, b(2))
-) character set ucs2 engine = innodb;
-
-insert into t2 values (1,'abcdefg','one');
-insert into t2 values (2,'ijkilmn','two');
-insert into t2 values (3, 'qrstuvw','three');
-update t2 set a=5, filler='booo' where a=1;
-drop table t2;
-create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8;
-insert into t1 values(1,'abcdefg'),(2,'defghijk');
-insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
-insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
-select a,hex(b) from t1 order by b;
-update t1 set b = 'three' where a = 6;
-drop table t1;
-create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8;
-insert into t1 values(1,'abcdefg'),(2,'defghijk');
-insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
-insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
-select a,hex(b) from t1 order by b;
-update t1 set b = 'three' where a = 6;
+#
+# Test that we can create a large (>1K) key
+#
+create table t1 (a varchar(255) character set utf8,
+ b varchar(255) character set utf8,
+ c varchar(255) character set utf8,
+ d varchar(255) character set utf8,
+ key (a,b,c,d)) engine=innodb;
drop table t1;
+--error ER_TOO_LONG_KEY
+create table t1 (a varchar(255) character set utf8,
+ b varchar(255) character set utf8,
+ c varchar(255) character set utf8,
+ d varchar(255) character set utf8,
+ e varchar(255) character set utf8,
+ key (a,b,c,d,e)) engine=innodb;
+
+
+# test the padding of BINARY types and collations (Bug #14189)
+
+create table t1 (s1 varbinary(2),primary key (s1)) engine=innodb;
+create table t2 (s1 binary(2),primary key (s1)) engine=innodb;
+create table t3 (s1 varchar(2) binary,primary key (s1)) engine=innodb;
+create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
+
+insert into t1 values (0x41),(0x4120),(0x4100);
+-- error 1062
+insert into t2 values (0x41),(0x4120),(0x4100);
+insert into t2 values (0x41),(0x4120);
+-- error 1062
+insert into t3 values (0x41),(0x4120),(0x4100);
+insert into t3 values (0x41),(0x4100);
+-- error 1062
+insert into t4 values (0x41),(0x4120),(0x4100);
+insert into t4 values (0x41),(0x4100);
+select hex(s1) from t1;
+select hex(s1) from t2;
+select hex(s1) from t3;
+select hex(s1) from t4;
+drop table t1,t2,t3,t4;
+
+create table t1 (a int primary key,s1 varbinary(3) not null unique) engine=innodb;
+create table t2 (s1 binary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
+
+insert into t1 values(1,0x4100),(2,0x41),(3,0x4120),(4,0x42);
+-- error 1452
+insert into t2 values(0x42);
+insert into t2 values(0x41);
+select hex(s1) from t2;
+update t1 set s1=0x123456 where a=2;
+select hex(s1) from t2;
+-- error 1451
+update t1 set s1=0x12 where a=1;
+-- error 1451
+update t1 set s1=0x12345678 where a=1;
+-- error 1451
+update t1 set s1=0x123457 where a=1;
+update t1 set s1=0x1220 where a=1;
+select hex(s1) from t2;
+update t1 set s1=0x1200 where a=1;
+select hex(s1) from t2;
+update t1 set s1=0x4200 where a=1;
+select hex(s1) from t2;
+-- error 1451
+delete from t1 where a=1;
+delete from t1 where a=2;
+update t2 set s1=0x4120;
+-- error 1451
+delete from t1;
+delete from t1 where a!=3;
+select a,hex(s1) from t1;
+select hex(s1) from t2;
+
+drop table t2,t1;
+
+create table t1 (a int primary key,s1 varchar(2) binary not null unique) engine=innodb;
+create table t2 (s1 char(2) binary not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=innodb;
+
+insert into t1 values(1,0x4100),(2,0x41);
+insert into t2 values(0x41);
+select hex(s1) from t2;
+update t1 set s1=0x1234 where a=1;
+select hex(s1) from t2;
+update t1 set s1=0x12 where a=2;
+select hex(s1) from t2;
+delete from t1 where a=1;
+-- error 1451
+delete from t1 where a=2;
+select a,hex(s1) from t1;
+select hex(s1) from t2;
+drop table t2,t1;
# Ensure that <tablename>_ibfk_0 is not mistreated as a
# generated foreign key identifier. (Bug #16387)
@@ -1394,4 +1833,211 @@ ALTER TABLE t2 DROP FOREIGN KEY t2_ibfk_0;
SHOW CREATE TABLE t2;
DROP TABLE t2,t1;
-# End of 4.1 tests
+#
+# Test case for bug #16229: MySQL/InnoDB uses full explicit table locks in trigger processing
+#
+
+connect (a,localhost,root,,);
+connect (b,localhost,root,,);
+connection a;
+create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+insert into t1(a) values (1),(2),(3);
+commit;
+connection b;
+set autocommit = 0;
+update t1 set b = 5 where a = 2;
+connection a;
+delimiter |;
+create trigger t1t before insert on t1 for each row begin set NEW.b = NEW.a * 10 + 5, NEW.c = NEW.a / 10; end |
+delimiter ;|
+set autocommit = 0;
+connection a;
+insert into t1(a) values (10),(20),(30),(40),(50),(60),(70),(80),(90),(100),
+(11),(21),(31),(41),(51),(61),(71),(81),(91),(101),
+(12),(22),(32),(42),(52),(62),(72),(82),(92),(102),
+(13),(23),(33),(43),(53),(63),(73),(83),(93),(103),
+(14),(24),(34),(44),(54),(64),(74),(84),(94),(104);
+connection b;
+commit;
+connection a;
+commit;
+drop trigger t1t;
+drop table t1;
+disconnect a;
+disconnect b;
+#
+# Another trigger test
+#
+connect (a,localhost,root,,);
+connect (b,localhost,root,,);
+connection a;
+create table t1(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t2(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t3(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t4(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+create table t5(a int not null, b int, c int, d int, primary key(a)) engine=innodb;
+insert into t1(a) values (1),(2),(3);
+insert into t2(a) values (1),(2),(3);
+insert into t3(a) values (1),(2),(3);
+insert into t4(a) values (1),(2),(3);
+insert into t3(a) values (5),(7),(8);
+insert into t4(a) values (5),(7),(8);
+insert into t5(a) values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12);
+
+delimiter |;
+create trigger t1t before insert on t1 for each row begin
+ INSERT INTO t2 SET a = NEW.a;
+end |
+
+create trigger t2t before insert on t2 for each row begin
+ DELETE FROM t3 WHERE a = NEW.a;
+end |
+
+create trigger t3t before delete on t3 for each row begin
+ UPDATE t4 SET b = b + 1 WHERE a = OLD.a;
+end |
+
+create trigger t4t before update on t4 for each row begin
+ UPDATE t5 SET b = b + 1 where a = NEW.a;
+end |
+delimiter ;|
+commit;
+set autocommit = 0;
+update t1 set b = b + 5 where a = 1;
+update t2 set b = b + 5 where a = 1;
+update t3 set b = b + 5 where a = 1;
+update t4 set b = b + 5 where a = 1;
+insert into t5(a) values(20);
+connection b;
+set autocommit = 0;
+insert into t1(a) values(7);
+insert into t2(a) values(8);
+delete from t2 where a = 3;
+update t4 set b = b + 1 where a = 3;
+commit;
+drop trigger t1t;
+drop trigger t2t;
+drop trigger t3t;
+drop trigger t4t;
+drop table t1, t2, t3, t4, t5;
+connection default;
+disconnect a;
+disconnect b;
+
+#
+# Bug #14360: problem with intervals
+#
+
+create table t1(a date) engine=innodb;
+create table t2(a date, key(a)) engine=innodb;
+insert into t1 values('2005-10-01');
+insert into t2 values('2005-10-01');
+select * from t1, t2
+ where t2.a between t1.a - interval 2 day and t1.a + interval 2 day;
+drop table t1, t2;
+
+# bug 18934, "InnoDB crashes when table uses column names like DB_ROW_ID"
+--replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ /
+--error 1005
+CREATE TABLE t1 (DB_ROW_ID int) engine=innodb;
+
+#
+# Bug #17152: Wrong result with BINARY comparison on aliased column
+#
+
+CREATE TABLE t1 (
+ a BIGINT(20) NOT NULL,
+ PRIMARY KEY (a)
+ ) ENGINE=INNODB DEFAULT CHARSET=UTF8;
+
+CREATE TABLE t2 (
+ a BIGINT(20) NOT NULL,
+ b VARCHAR(128) NOT NULL,
+ c TEXT NOT NULL,
+ PRIMARY KEY (a,b),
+ KEY idx_t2_b_c (b,c(200)),
+ CONSTRAINT t_fk FOREIGN KEY (a) REFERENCES t1 (a)
+ ON DELETE CASCADE
+ ) ENGINE=INNODB DEFAULT CHARSET=UTF8;
+
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1, 'bar', 'vbar');
+INSERT INTO t2 VALUES (1, 'BAR2', 'VBAR');
+INSERT INTO t2 VALUES (1, 'bar_bar', 'bibi');
+INSERT INTO t2 VALUES (1, 'customer_over', '1');
+
+SELECT * FROM t2 WHERE b = 'customer_over';
+SELECT * FROM t2 WHERE BINARY b = 'customer_over';
+SELECT DISTINCT p0.a FROM t2 p0 WHERE p0.b = 'customer_over';
+/* Bang: Empty result set, above was expected: */
+SELECT DISTINCT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over';
+SELECT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over';
+
+drop table t2, t1;
+
+#
+# Bug #15680 (SPATIAL key in innodb)
+#
+--error ER_TABLE_CANT_HANDLE_SPKEYS
+create table t1 (g geometry not null, spatial gk(g)) engine=innodb;
+
+#
+# Bug #25927: Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns
+# for which there is a foreign key constraint ON ... SET NULL.
+#
+
+CREATE TABLE t1 (a INT, INDEX(a)) ENGINE=InnoDB;
+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'/
+--error 1025
+ALTER TABLE t2 MODIFY a INT NOT NULL;
+DELETE FROM t1;
+DROP TABLE t2,t1;
+
+#
+# Bug #26835: table corruption after delete+insert
+#
+
+CREATE TABLE t1 (a VARCHAR(5) COLLATE utf8_unicode_ci PRIMARY KEY)
+ENGINE=InnoDB;
+INSERT INTO t1 VALUES (0xEFBCA4EFBCA4EFBCA4);
+DELETE FROM t1;
+INSERT INTO t1 VALUES ('DDD');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug #23313 (AUTO_INCREMENT=# not reported back for InnoDB tables)
+# Bug #21404 (AUTO_INCREMENT value reset when Adding FKEY (or ALTER?))
+#
+
+CREATE TABLE t1 (id int PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB
+AUTO_INCREMENT=42;
+
+INSERT INTO t1 VALUES (0),(347),(0);
+SELECT * FROM t1;
+
+SHOW CREATE TABLE t1;
+
+CREATE TABLE t2 (id int PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t2 VALUES(42),(347),(348);
+ALTER TABLE t1 ADD CONSTRAINT t1_t2 FOREIGN KEY (id) REFERENCES t2(id);
+SHOW CREATE TABLE t1;
+
+DROP TABLE t1,t2;
+
+#######################################################################
+# #
+# Please, DO NOT TOUCH this file as well as the innodb.result file. #
+# These files are to be modified ONLY BY INNOBASE guys. #
+# #
+# Use innodb_mysql.[test|result] files instead. #
+# #
+# If nevertheless you need to make some changes here, please, forward #
+# your commit message To: dev@innodb.com Cc: dev-innodb@mysql.com #
+# (otherwise your changes may be erased). #
+# #
+#######################################################################
diff --git a/mysql-test/t/innodb_cache.test b/mysql-test/t/innodb_cache.test
index a811d660bd7..8ed2853e4f7 100644
--- a/mysql-test/t/innodb_cache.test
+++ b/mysql-test/t/innodb_cache.test
@@ -63,6 +63,7 @@ drop table t1;
#
# one statement roll back inside transation
#
+let $save_query_cache_size=`select @@global.query_cache_size`;
set GLOBAL query_cache_size=1355776;
CREATE TABLE t1 ( id int(10) NOT NULL auto_increment, a varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY a (a)) ENGINE=innodb;
CREATE TABLE t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)) ENGINE=innodb;
@@ -79,5 +80,8 @@ insert into t3 VALUES ( NULL, 1, 1, 2 );
commit;
select t1.* from t1, t2, t3 where t3.state & 1 = 0 and t3.t1_id = t1.id and t3.t2_id = t2.id and t1.id = 1 order by t1.a asc;
drop table t3,t2,t1;
+--disable_query_log
+eval set GLOBAL query_cache_size=$save_query_cache_size;
+--enable_query_log
# End of 4.1 tests
diff --git a/mysql-test/t/innodb_gis.test b/mysql-test/t/innodb_gis.test
new file mode 100644
index 00000000000..024d17c5363
--- /dev/null
+++ b/mysql-test/t/innodb_gis.test
@@ -0,0 +1,4 @@
+--source include/have_innodb.inc
+SET storage_engine=innodb;
+--source include/gis_generic.inc
+--source include/gis_keys.inc
diff --git a/mysql-test/t/innodb_mysql-master.opt b/mysql-test/t/innodb_mysql-master.opt
new file mode 100644
index 00000000000..205c733455d
--- /dev/null
+++ b/mysql-test/t/innodb_mysql-master.opt
@@ -0,0 +1 @@
+--innodb-lock-wait-timeout=2
diff --git a/mysql-test/t/innodb_mysql.test b/mysql-test/t/innodb_mysql.test
index 4e20535549a..f64efd600c5 100644
--- a/mysql-test/t/innodb_mysql.test
+++ b/mysql-test/t/innodb_mysql.test
@@ -1,7 +1,7 @@
-- source include/have_innodb.inc
--disable_warnings
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3,t4;
--enable_warnings
# BUG#16798: Uninitialized row buffer reads in ref-or-null optimizer
@@ -118,37 +118,11 @@ INSERT INTO `t2`(`id1`,`id2`,`id3`,`id4`) VALUES
SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` = 1 AND `id3` = 2);
DROP TABLE t1, t2;
-
-#
-# BUG#18819: DELETE IGNORE hangs on foreign key parent delete
-#
-# The bug itself does not relate to InnoDB, but we have to use foreign
-# keys to reproduce it.
-#
---disable_warnings
-DROP TABLE IF EXISTS t2, t1;
---enable_warnings
-
-CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE= InnoDB;
-CREATE TABLE t2 (
- i INT NOT NULL,
- FOREIGN KEY (i) REFERENCES t1 (i) ON DELETE NO ACTION
-) ENGINE= InnoDB;
-
-INSERT INTO t1 VALUES (1);
-INSERT INTO t2 VALUES (1);
-
-DELETE IGNORE FROM t1 WHERE i = 1;
-
-SELECT * FROM t1, t2;
-
-DROP TABLE t2, t1;
-
-
#
# Bug #22728 - Handler_rollback value is growing
#
-flush status;
+
+let $before= `show /*!50002 GLOBAL */ status like 'Handler_rollback'`;
create table t1 (c1 int) engine=innodb;
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
@@ -157,7 +131,11 @@ handler t1 open;
handler t1 read first;
disconnect con2;
connection con1;
-show /*!50002 GLOBAL */ status like 'Handler_rollback';
+let $after= `show /*!50002 GLOBAL */ status like 'Handler_rollback'`;
+# Compare the before and after value, it should be equal
+--disable_query_log
+eval select STRCMP("$before", "$after") as "Before and after comparison";
+--enable_query_log
connection default;
drop table t1;
disconnect con1;
@@ -216,10 +194,420 @@ t1.a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS';
DROP TABLE t1;
+--echo End of 4.1 tests
+#
+# Bug #12882 min/max inconsistent on empty table
+#
+
+--disable_warnings
+create table t1m (a int) engine=myisam;
+create table t1i (a int) engine=innodb;
+create table t2m (a int) engine=myisam;
+create table t2i (a int) engine=innodb;
+--enable_warnings
+insert into t2m values (5);
+insert into t2i values (5);
+
+# test with MyISAM
+select min(a) from t1m;
+select min(7) from t1m;
+select min(7) from DUAL;
+explain select min(7) from t2m join t1m;
+select min(7) from t2m join t1m;
+
+select max(a) from t1m;
+select max(7) from t1m;
+select max(7) from DUAL;
+explain select max(7) from t2m join t1m;
+select max(7) from t2m join t1m;
+
+select 1, min(a) from t1m where a=99;
+select 1, min(a) from t1m where 1=99;
+select 1, min(1) from t1m where a=99;
+select 1, min(1) from t1m where 1=99;
+
+select 1, max(a) from t1m where a=99;
+select 1, max(a) from t1m where 1=99;
+select 1, max(1) from t1m where a=99;
+select 1, max(1) from t1m where 1=99;
+
+# test with InnoDB
+select min(a) from t1i;
+select min(7) from t1i;
+select min(7) from DUAL;
+explain select min(7) from t2i join t1i;
+select min(7) from t2i join t1i;
+
+select max(a) from t1i;
+select max(7) from t1i;
+select max(7) from DUAL;
+explain select max(7) from t2i join t1i;
+select max(7) from t2i join t1i;
+
+select 1, min(a) from t1i where a=99;
+select 1, min(a) from t1i where 1=99;
+select 1, min(1) from t1i where a=99;
+select 1, min(1) from t1i where 1=99;
+
+select 1, max(a) from t1i where a=99;
+select 1, max(a) from t1i where 1=99;
+select 1, max(1) from t1i where a=99;
+select 1, max(1) from t1i where 1=99;
+
+# mixed MyISAM/InnoDB test
+explain select count(*), min(7), max(7) from t1m, t1i;
+select count(*), min(7), max(7) from t1m, t1i;
+
+explain select count(*), min(7), max(7) from t1m, t2i;
+select count(*), min(7), max(7) from t1m, t2i;
+
+explain select count(*), min(7), max(7) from t2m, t1i;
+select count(*), min(7), max(7) from t2m, t1i;
+
+drop table t1m, t1i, t2m, t2i;
+
+#
+# Bug #12672: primary key implcitly included in every innodb index
+# (was part of group_min_max.test)
+#
+
+create table t1 (
+ a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
+);
+
+insert into t1 (a1, a2, b, c, d) values
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
+('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
+('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
+('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
+('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
+('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
+('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
+('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
+('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
+('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
+('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
+('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
+('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
+('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
+('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
+('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
+('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
+--disable_warnings
+create table t4 (
+ pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
+) engine=innodb;
+--enable_warnings
+insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
+
+create index idx12672_0 on t4 (a1);
+create index idx12672_1 on t4 (a1,a2,b,c);
+create index idx12672_2 on t4 (a1,a2,b);
+analyze table t1;
+
+select distinct a1 from t4 where pk_col not in (1,2,3,4);
+
+drop table t1,t4;
+
+
+#
+# BUG#18819: DELETE IGNORE hangs on foreign key parent delete
+#
+# The bug itself does not relate to InnoDB, but we have to use foreign
+# keys to reproduce it.
+#
+--disable_warnings
+DROP TABLE IF EXISTS t2, t1;
+--enable_warnings
+
+CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE= InnoDB;
+CREATE TABLE t2 (
+ i INT NOT NULL,
+ FOREIGN KEY (i) REFERENCES t1 (i) ON DELETE NO ACTION
+) ENGINE= InnoDB;
+
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1);
+
+DELETE IGNORE FROM t1 WHERE i = 1;
+
+SELECT * FROM t1, t2;
+
+DROP TABLE t2, t1;
+
+
+--echo End of 4.1 tests.
+
+
+#
+# Bug #6142: a problem with the empty innodb table
+# (was part of group_min_max.test)
+#
+
+--disable_warnings
+create table t1 (
+ a varchar(30), b varchar(30), primary key(a), key(b)
+) engine=innodb;
+--enable_warnings
+select distinct a from t1;
+drop table t1;
+
+#
+# Bug #9798: group by with rollup
+# (was part of group_min_max.test)
+#
+
+--disable_warnings
+create table t1(a int, key(a)) engine=innodb;
+--enable_warnings
+insert into t1 values(1);
+select a, count(a) from t1 group by a with rollup;
+drop table t1;
+
+#
+# Bug #13293 Wrongly used index results in endless loop.
+# (was part of group_min_max.test)
+#
+create table t1 (f1 int, f2 char(1), primary key(f1,f2)) engine=innodb;
+insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
+alter table t1 drop primary key, add primary key (f2, f1);
+explain select distinct f1 a, f1 b from t1;
+explain select distinct f1, f2 from t1;
+drop table t1;
+
+#
+# Test for bug #17164: ORed FALSE blocked conversion of outer join into join
+#
+
+CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
+ INDEX (name)) ENGINE=InnoDB;
+CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
+ FOREIGN KEY (fkey) REFERENCES t2(id)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
+INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
+
+EXPLAIN
+SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
+ WHERE t1.name LIKE 'A%';
+
+EXPLAIN
+SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
+ WHERE t1.name LIKE 'A%' OR FALSE;
+
+DROP TABLE t1,t2;
+
+#
+# Bug#17530: Incorrect key truncation on table creation caused server crash.
+#
+create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
+ character set utf8 collate utf8_general_ci;
+insert into t1 values('aaa');
+drop table t1;
+
+
+#
+# Bug#22781: SQL_BIG_RESULT fails to influence sort plan
+#
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB;
+
+INSERT INTO t1 VALUES ( 1 , 1 , 1);
+INSERT INTO t1 SELECT a + 1 , MOD(a + 1 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 2 , MOD(a + 2 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 4 , MOD(a + 4 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 8 , MOD(a + 8 , 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 16, MOD(a + 16, 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20), 1 FROM t1;
+INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20), 1 FROM t1;
+
+EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b;
+EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
+DROP TABLE t1;
+
+
+#
+# Bug#26159: crash for a loose scan of a table that has been emptied
+#
+
+CREATE TABLE t1 (
+ id int NOT NULL,
+ name varchar(20) NOT NULL,
+ dept varchar(20) NOT NULL,
+ age tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (id),
+ INDEX (name,dept)
+) ENGINE=InnoDB;
+INSERT INTO t1(id, dept, age, name) VALUES
+ (3987, 'cs1', 10, 'rs1'), (3988, 'cs2', 20, 'rs1'), (3995, 'cs3', 10, 'rs2'),
+ (3996, 'cs4', 20, 'rs2'), (4003, 'cs5', 10, 'rs3'), (4004, 'cs6', 20, 'rs3'),
+ (4011, 'cs7', 10, 'rs4'), (4012, 'cs8', 20, 'rs4'), (4019, 'cs9', 10, 'rs5'),
+ (4020, 'cs10', 20, 'rs5'),(4027, 'cs11', 10, 'rs6'),(4028, 'cs12', 20, 'rs6');
+
+EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+DELETE FROM t1;
+EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
+
+DROP TABLE t1;
+
+--source include/innodb_rollback_on_timeout.inc
+
#
-# Bug #28878: InnoDB tables with UTF8 character set and indexes cause wrong result for DML
+# Bug #27210: INNODB ON DUPLICATE KEY UPDATE
#
+set @save_qcache_size=@@global.query_cache_size;
+set @save_qcache_type=@@global.query_cache_type;
+set global query_cache_size=10*1024*1024;
+set global query_cache_type=1;
+connect (con1,localhost,root,,);
+connection con1;
+drop table if exists `test`;
+CREATE TABLE `test` (`test1` varchar(3) NOT NULL,
+ `test2` varchar(4) NOT NULL,PRIMARY KEY (`test1`))
+ ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678');
+disconnect con1;
+connect (con2,localhost,root,,);
+connection con2;
+select * from test;
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '1234')
+ ON DUPLICATE KEY UPDATE `test2` = '1234';
+select * from test;
+flush tables;
+select * from test;
+disconnect con2;
+connection default;
+drop table test;
+set global query_cache_type=@save_qcache_type;
+set global query_cache_size=@save_qcache_size;
+
+-- source include/have_innodb.inc
+
+#
+# Bug #27650: INSERT fails after multi-row INSERT of the form:
+# INSERT INTO t (id...) VALUES (NULL...) ON DUPLICATE KEY UPDATE id=VALUES(id)
+#
+
+create table t1(
+id int auto_increment,
+c char(1) not null,
+counter int not null default 1,
+primary key (id),
+unique key (c)
+) engine=innodb;
+
+insert into t1 (id, c) values
+(NULL, 'a'),
+(NULL, 'a')
+on duplicate key update id = values(id), counter = counter + 1;
+
+select * from t1;
+
+insert into t1 (id, c) values
+(NULL, 'b')
+on duplicate key update id = values(id), counter = counter + 1;
+
+select * from t1;
+
+truncate table t1;
+
+insert into t1 (id, c) values (NULL, 'a');
+
+select * from t1;
+
+insert into t1 (id, c) values (NULL, 'b'), (NULL, 'b')
+on duplicate key update id = values(id), c = values(c), counter = counter + 1;
+
+select * from t1;
+
+insert into t1 (id, c) values (NULL, 'a')
+on duplicate key update id = values(id), c = values(c), counter = counter + 1;
+
+select * from t1;
+
+drop table t1;
+
+#
+# Bug #28189: optimizer erroniously prefers ref access to range access
+# for an InnoDB table
+#
+
+CREATE TABLE t1(
+ id int AUTO_INCREMENT PRIMARY KEY,
+ stat_id int NOT NULL,
+ acct_id int DEFAULT NULL,
+ INDEX idx1 (stat_id, acct_id),
+ INDEX idx2 (acct_id)
+) ENGINE=MyISAM;
+
+CREATE TABLE t2(
+ id int AUTO_INCREMENT PRIMARY KEY,
+ stat_id int NOT NULL,
+ acct_id int DEFAULT NULL,
+ INDEX idx1 (stat_id, acct_id),
+ INDEX idx2 (acct_id)
+) ENGINE=InnoDB;
+
+INSERT INTO t1(stat_id,acct_id) VALUES
+ (1,759), (2,831), (3,785), (4,854), (1,921),
+ (1,553), (2,589), (3,743), (2,827), (2,545),
+ (4,779), (4,783), (1,597), (1,785), (4,832),
+ (1,741), (1,833), (3,788), (2,973), (1,907);
+
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
+UPDATE t1 SET acct_id=785
+ WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id);
+OPTIMIZE TABLE t1;
+
+SELECT COUNT(*) FROM t1;
+SELECT COUNT(*) FROM t1 WHERE acct_id=785;
+
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785;
+
+INSERT INTO t2 SELECT * FROM t1;
+OPTIMIZE TABLE t2;
+
+EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #28652: assert when alter innodb table operation
+#
+create table t1(a int) engine=innodb;
+alter table t1 comment '123';
+show create table t1;
+drop table t1;
+
+#
+# Bug #25866: Getting "#HY000 Can't find record in..." on and INSERT
+#
CREATE TABLE t1 (a CHAR(2), KEY (a)) ENGINE = InnoDB DEFAULT CHARSET=UTF8;
INSERT INTO t1 VALUES ('uk'),('bg');
SELECT * FROM t1 WHERE a = 'uk';
@@ -248,4 +636,328 @@ SELECT * FROM t3 WHERE a = 'uk';
DROP TABLE t1,t2,t3;
---echo End of 4.1 tests
+#
+# Test bug when trying to drop data file which no InnoDB directory entry
+#
+
+create table t1 (a int) engine=innodb;
+copy_file $MYSQLTEST_VARDIR/master-data/test/t1.frm $MYSQLTEST_VARDIR/master-data/test/t2.frm;
+--error 1146
+select * from t2;
+drop table t1;
+--error 1051
+drop table t2;
+create table t2 (a int);
+drop table t2;
+
+
+#
+# Bug #29154: LOCK TABLES is not atomic when >1 InnoDB tables are locked
+#
+
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
+
+CONNECT (c1,localhost,root,,);
+CONNECT (c2,localhost,root,,);
+
+--echo switch to connection c1
+CONNECTION c1;
+SET AUTOCOMMIT=0;
+INSERT INTO t2 VALUES (1);
+
+--echo switch to connection c2
+CONNECTION c2;
+SET AUTOCOMMIT=0;
+--error ER_LOCK_WAIT_TIMEOUT
+LOCK TABLES t1 READ, t2 READ;
+
+--echo switch to connection c1
+CONNECTION c1;
+COMMIT;
+INSERT INTO t1 VALUES (1);
+
+--echo switch to connection default
+CONNECTION default;
+SET AUTOCOMMIT=default;
+DISCONNECT c1;
+DISCONNECT c2;
+DROP TABLE t1,t2;
+
+#
+# Bug #25798: a query with forced index merge returns wrong result
+#
+
+CREATE TABLE t1 (
+ id int NOT NULL auto_increment PRIMARY KEY,
+ b int NOT NULL,
+ c datetime NOT NULL,
+ INDEX idx_b(b),
+ INDEX idx_c(c)
+) ENGINE=InnoDB;
+
+CREATE TABLE t2 (
+ b int NOT NULL auto_increment PRIMARY KEY,
+ c datetime NOT NULL
+) ENGINE= MyISAM;
+
+INSERT INTO t2(c) VALUES ('2007-01-01');
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+INSERT INTO t2(c) SELECT c FROM t2;
+
+INSERT INTO t1(b,c) SELECT b,c FROM t2;
+UPDATE t2 SET c='2007-01-02';
+INSERT INTO t1(b,c) SELECT b,c FROM t2;
+UPDATE t2 SET c='2007-01-03';
+INSERT INTO t1(b,c) SELECT b,c FROM t2;
+
+set @@sort_buffer_size=8192;
+
+SELECT COUNT(*) FROM t1;
+
+--replace_column 9 #
+EXPLAIN
+SELECT COUNT(*) FROM t1
+ WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+SELECT COUNT(*) FROM t1
+ WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+
+--replace_column 9 #
+EXPLAIN
+SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
+ WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
+ WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
+
+set @@sort_buffer_size=default;
+
+DROP TABLE t1,t2;
+
+
+# Bug#27296 Assertion in ALTER TABLE SET DEFAULT in Linux Debug build
+# (possible deadlock).
+#
+# The bug is applicable only to a transactoinal table.
+# Cover with tests behavior that no longer causes an
+# assertion.
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (a int) engine=innodb;
+alter table t1 alter a set default 1;
+drop table t1;
+
+
+--echo
+--echo Bug#24918 drop table and lock / inconsistent between
+--echo perm and temp tables
+--echo
+--echo Check transactional tables under LOCK TABLES
+--echo
+--disable_warnings
+drop table if exists t24918, t24918_tmp, t24918_trans, t24918_trans_tmp,
+t24918_access;
+--enable_warnings
+create table t24918_access (id int);
+create table t24918 (id int) engine=myisam;
+create temporary table t24918_tmp (id int) engine=myisam;
+create table t24918_trans (id int) engine=innodb;
+create temporary table t24918_trans_tmp (id int) engine=innodb;
+
+lock table t24918 write, t24918_tmp write, t24918_trans write, t24918_trans_tmp write;
+drop table t24918;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+drop table t24918_trans;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+drop table t24918_trans_tmp;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+drop table t24918_tmp;
+--error ER_TABLE_NOT_LOCKED
+select * from t24918_access;
+unlock tables;
+
+drop table t24918_access;
+#
+# Bug #28591: MySQL need not sort the records in case of ORDER BY
+# primary_key on InnoDB table
+#
+
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY bkey (b)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1,2),(3,2),(2,2),(4,2),(5,2),(6,2),(7,2),(8,2);
+INSERT INTO t1 SELECT a + 8, 2 FROM t1;
+INSERT INTO t1 SELECT a + 16, 1 FROM t1;
+query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a;
+SELECT * FROM t1 WHERE b=2 ORDER BY a;
+query_vertical EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
+SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
+query_vertical EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
+SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
+
+CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a), KEY bkey (b,c))
+ ENGINE=InnoDB;
+INSERT INTO t2 VALUES (1,1,1),(3,1,1),(2,1,1),(4,1,1);
+INSERT INTO t2 SELECT a + 4, 1, 1 FROM t2;
+INSERT INTO t2 SELECT a + 8, 1, 1 FROM t2;
+
+query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 ORDER BY a;
+SELECT * FROM t2 WHERE b=1 ORDER BY a;
+query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
+SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
+query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a;
+SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a;
+query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a;
+SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a;
+
+DROP TABLE t1,t2;
+
+
+#
+# Bug #29644: alter table hangs if records locked in share mode by long
+# running transaction
+#
+
+CREATE TABLE t1 (a INT, PRIMARY KEY (a)) ENGINE=InnoDB;
+
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+INSERT INTO t1 SELECT a + 8 FROM t1;
+INSERT INTO t1 SELECT a + 16 FROM t1;
+
+DELIMITER |;
+CREATE PROCEDURE p1 ()
+BEGIN
+ DECLARE i INT DEFAULT 50;
+ DECLARE cnt INT;
+ START TRANSACTION;
+ ALTER TABLE t1 ENGINE=InnoDB;
+ COMMIT;
+ START TRANSACTION;
+ WHILE (i > 0) DO
+ SET i = i - 1;
+ SELECT COUNT(*) INTO cnt FROM t1 LOCK IN SHARE MODE;
+ END WHILE;
+ COMMIT;
+END;|
+
+DELIMITER ;|
+
+CONNECT (con1,localhost,root,,);
+CONNECT (con2,localhost,root,,);
+
+CONNECTION con1;
+SEND CALL p1();
+CONNECTION con2;
+SEND CALL p1();
+CONNECTION default;
+CALL p1();
+
+CONNECTION con1;
+REAP;
+CONNECTION con2;
+REAP;
+CONNECTION default;
+DISCONNECT con1;
+DISCONNECT con2;
+
+DROP PROCEDURE p1;
+DROP TABLE t1;
+
+#
+# Bug #28125: ERROR 2013 when adding index.
+#
+create table t1(a text) engine=innodb default charset=utf8;
+insert into t1 values('aaa');
+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;
+
+#
+# Bug#30596: GROUP BY optimization gives wrong result order
+#
+CREATE TABLE t1(
+ a INT,
+ b INT NOT NULL,
+ c INT NOT NULL,
+ d INT,
+ UNIQUE KEY (c,b)
+) engine=innodb;
+
+INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
+
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
+SELECT c,b,d FROM t1 GROUP BY c,b,d;
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
+EXPLAIN SELECT c,b,d FROM t1 ORDER BY c,b,d;
+SELECT c,b,d FROM t1 ORDER BY c,b,d;
+
+EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b;
+SELECT c,b,d FROM t1 GROUP BY c,b;
+EXPLAIN SELECT c,b FROM t1 GROUP BY c,b;
+SELECT c,b FROM t1 GROUP BY c,b;
+
+DROP TABLE t1;
+
+#
+# Bug #31001: ORDER BY DESC in InnoDB not working
+#
+CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB;
+INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2);
+
+#The two queries below should produce different results, but they don't.
+query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
+SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
+query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
+SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
+
+query_vertical EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a ASC;
+SELECT * FROM t1 ORDER BY b ASC, a ASC;
+query_vertical EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a DESC;
+SELECT * FROM t1 ORDER BY b DESC, a DESC;
+query_vertical EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a DESC;
+SELECT * FROM t1 ORDER BY b ASC, a DESC;
+query_vertical EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a ASC;
+SELECT * FROM t1 ORDER BY b DESC, a ASC;
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/innodb_notembedded.test b/mysql-test/t/innodb_notembedded.test
new file mode 100644
index 00000000000..53332d9fda4
--- /dev/null
+++ b/mysql-test/t/innodb_notembedded.test
@@ -0,0 +1,40 @@
+-- source include/not_embedded.inc
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+connect (a,localhost,root,,);
+connect (b,localhost,root,,);
+
+
+#
+# BUG#11238 - in prelocking mode SELECT .. FOR UPDATE is changed to
+# non-blocking SELECT
+#
+create table t1 (col1 integer primary key, col2 integer) engine=innodb;
+insert t1 values (1,100);
+delimiter |;
+create function f1 () returns integer begin
+declare var1 int;
+select col2 into var1 from t1 where col1=1 for update;
+return var1;
+end|
+delimiter ;|
+start transaction;
+select f1();
+connection b;
+send update t1 set col2=0 where col1=1;
+connection default;
+select * from t1;
+connection a;
+rollback;
+connection b;
+reap;
+rollback;
+connection default;
+drop table t1;
+drop function f1;
+disconnect a;
+disconnect b;
diff --git a/mysql-test/t/innodb_timeout_rollback-master.opt b/mysql-test/t/innodb_timeout_rollback-master.opt
new file mode 100644
index 00000000000..50921bb4df0
--- /dev/null
+++ b/mysql-test/t/innodb_timeout_rollback-master.opt
@@ -0,0 +1 @@
+--innodb_lock_wait_timeout=2 --innodb_rollback_on_timeout
diff --git a/mysql-test/t/innodb_timeout_rollback.test b/mysql-test/t/innodb_timeout_rollback.test
new file mode 100644
index 00000000000..99890971064
--- /dev/null
+++ b/mysql-test/t/innodb_timeout_rollback.test
@@ -0,0 +1,5 @@
+-- source include/have_innodb.inc
+
+--source include/innodb_rollback_on_timeout.inc
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/innodb_unsafe_binlog-master.opt b/mysql-test/t/innodb_unsafe_binlog-master.opt
new file mode 100644
index 00000000000..5c0136b5db3
--- /dev/null
+++ b/mysql-test/t/innodb_unsafe_binlog-master.opt
@@ -0,0 +1 @@
+--loose-innodb_locks_unsafe_for_binlog=true
diff --git a/mysql-test/t/innodb_unsafe_binlog.test b/mysql-test/t/innodb_unsafe_binlog.test
new file mode 100644
index 00000000000..fa240eb7608
--- /dev/null
+++ b/mysql-test/t/innodb_unsafe_binlog.test
@@ -0,0 +1,67 @@
+-- source include/have_innodb.inc
+#
+# Note that these tests uses a innodb_locks_unsafe_for_binlog option.
+#
+# Test cases for a bug #15650 DELETE with LEFT JOIN crashes server
+#
+
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+create table t1 (id int not null, f_id int not null, f int not null,
+primary key(f_id, id)) engine=innodb;
+create table t2 (id int not null,s_id int not null,s varchar(200),
+primary key(id)) engine=innodb;
+INSERT INTO t1 VALUES (8, 1, 3);
+INSERT INTO t1 VALUES (1, 2, 1);
+INSERT INTO t2 VALUES (1, 0, '');
+INSERT INTO t2 VALUES (8, 1, '');
+commit;
+DELETE ml.* FROM t1 AS ml LEFT JOIN t2 AS mm ON (mm.id=ml.id)
+WHERE mm.id IS NULL;
+select ml.* from t1 as ml left join t2 as mm on (mm.id=ml.id)
+where mm.id is null lock in share mode;
+drop table t1,t2;
+
+create table t1 (id int not null, f_id int not null, f int not null,
+primary key(id),key(f_id)) engine=innodb;
+create table t2 (id int not null,s_id int not null,s varchar(200),
+primary key(id),key(s_id)) engine=innodb;
+INSERT INTO t1 VALUES (8, 1, 3);
+INSERT INTO t1 VALUES (1, 2, 1);
+INSERT INTO t2 VALUES (1, 0, '');
+INSERT INTO t2 VALUES (8, 1, '');
+commit;
+delete ml.* from t1 as ml left join t2 as mm on (mm.s_id=ml.f_id) where mm.s is null;
+select ml.* from t1 as ml left join t2 as mm on (mm.s_id=ml.f_id) where mm.s is null lock in share mode;
+drop table t1,t2;
+
+#
+# Test case for unlock row bug where unlock releases all locks granted for
+# a row. Only the latest lock should be released.
+#
+
+connect (a,localhost,root,,);
+connect (b,localhost,root,,);
+connection a;
+create table t1(a int not null, b int, primary key(a)) engine=innodb;
+insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2);
+commit;
+set autocommit = 0;
+select * from t1 lock in share mode;
+update t1 set b = 5 where b = 1;
+connection b;
+set autocommit = 0;
+#
+# S-lock to records (2,2),(4,2), and (6,2) should not be released in a update
+#
+--error 1205
+select * from t1 where a = 2 and b = 2 for update;
+connection a;
+commit;
+connection b;
+commit;
+drop table t1;
+disconnect a;
+disconnect b;
+
diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test
index 0c8252ad479..76177403bd0 100644
--- a/mysql-test/t/insert.test
+++ b/mysql-test/t/insert.test
@@ -3,7 +3,7 @@
#
--disable_warnings
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3;
--enable_warnings
create table t1 (a int not null);
@@ -87,6 +87,7 @@ use mysqltest;
create table t1 (c int);
insert into mysqltest.t1 set mysqltest.t1.c = '1';
drop database mysqltest;
+use test;
#
# Test of wrong values for float data (bug #2082)
@@ -94,65 +95,263 @@ drop database mysqltest;
# PS gives sligthly different numbers for max-float/max-double
--disable_ps_protocol
-use test;
create table t1(number int auto_increment primary key, original_value varchar(50), f_double double, f_float float, f_double_7_2 double(7,2), f_float_4_3 float (4,3), f_double_u double unsigned, f_float_u float unsigned, f_double_15_1_u double(15,1) unsigned, f_float_3_1_u float (3,1) unsigned);
set @value= "aa";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= "1aa";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= "aa1";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= "1e+1111111111a";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= "-1e+1111111111a";
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
+--error 1367
set @value= 1e+1111111111;
-insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
---query_vertical select * from t1 where number =last_insert_id()
-
+--error 1367
set @value= -1e+1111111111;
-insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
---query_vertical select * from t1 where number =last_insert_id()
+
set @value= 1e+111;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= -1e+111;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= 1;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
set @value= -1;
insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
---replace_result e-0 e- e+0 e+
--query_vertical select * from t1 where number =last_insert_id()
drop table t1;
--enable_ps_protocol
# End of 4.1 tests
+
+#
+# Test automatic result buffering with INSERT INTO t1 ... SELECT ... FROM t1
+#
+
+create table t1(id1 int not null auto_increment primary key, t char(12));
+create table t2(id2 int not null, t char(12));
+create table t3(id3 int not null, t char(12), index(id3));
+disable_query_log;
+let $1 = 100;
+while ($1)
+ {
+ let $2 = 5;
+ eval insert into t1(t) values ('$1');
+ while ($2)
+ {
+ eval insert into t2(id2,t) values ($1,'$2');
+ let $3 = 10;
+ while ($3)
+ {
+ eval insert into t3(id3,t) values ($1,'$2');
+ dec $3;
+ }
+ dec $2;
+ }
+ dec $1;
+ }
+enable_query_log;
+select count(*) from t2;
+insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
+select count(*) from t2;
+drop table t1,t2,t3;
+
+#
+# Test for values returned by ROW_COUNT() function
+# (and thus for values returned by mysql_affected_rows())
+# for various forms of INSERT
+#
+create table t1 (id int primary key, data int);
+insert into t1 values (1, 1), (2, 2), (3, 3);
+select row_count();
+insert ignore into t1 values (1, 1);
+select row_count();
+# Reports that 2 rows are affected (1 deleted + 1 inserted)
+replace into t1 values (1, 11);
+select row_count();
+replace into t1 values (4, 4);
+select row_count();
+# Reports that 2 rows are affected. This conforms to documentation.
+# (Useful for differentiating inserts from updates).
+insert into t1 values (2, 2) on duplicate key update data= data + 10;
+select row_count();
+insert into t1 values (5, 5) on duplicate key update data= data + 10;
+select row_count();
+drop table t1;
+
+#
+# Bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table
+#
+create table t1 (f1 int unique, f2 int);
+create table t2 (f3 int, f4 int);
+create view v1 as select * from t1, t2 where f1= f3;
+insert into t1 values (1,11), (2,22);
+insert into t2 values (1,12), (2,24);
+--error 1393
+insert into v1 (f1) values (3) on duplicate key update f3= f3 + 10;
+insert into v1 (f1) values (3) on duplicate key update f1= f3 + 10;
+select * from t1;
+insert into v1 (f1) values (3) on duplicate key update f1= f3 + 10;
+select * from t1;
+drop view v1;
+drop table t1,t2;
+
+
+#
+# BUG#21483: Server abort or deadlock on INSERT DELAYED with another
+# implicit insert
+#
+# The solution is to downgrade INSERT DELAYED to normal INSERT if the
+# statement uses functions and access tables or triggers, or is called
+# from a function or a trigger.
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+delimiter |;
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+ INSERT INTO t1 VALUES (1);
+ RETURN 1;
+END |
+CREATE FUNCTION f2() RETURNS INT
+BEGIN
+ INSERT DELAYED INTO t1 VALUES (2);
+ RETURN 1;
+END |
+delimiter ;|
+
+SELECT f1();
+SELECT f2();
+INSERT INTO t1 VALUES (3);
+INSERT DELAYED INTO t1 VALUES (4);
+
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+INSERT INTO t1 VALUES (f1());
+
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+INSERT DELAYED INTO t1 VALUES (f1());
+
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+INSERT INTO t1 VALUES (f2());
+
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+INSERT DELAYED INTO t1 VALUES (f2());
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ INSERT INTO t1 VALUES (NEW.i);
+
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+INSERT INTO t1 VALUES (1);
+
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+INSERT DELAYED INTO t1 VALUES (1);
+
+SELECT * FROM t1;
+
+DROP FUNCTION f2;
+DROP FUNCTION f1;
+DROP TABLE t1;
+
+#
+# BUG#20497: Trigger with INSERT DELAYED causes Error 1165
+#
+# Fixed by the patch for Bug#21483
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+CREATE TABLE t2 (i INT);
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ INSERT DELAYED INTO t2 VALUES (NEW.i);
+
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+ INSERT DELAYED INTO t2 VALUES (NEW.i);
+
+CREATE TRIGGER t1_bd BEFORE DELETE ON t1 FOR EACH ROW
+ INSERT DELAYED INTO t2 VALUES (OLD.i);
+
+INSERT INTO t1 VALUES (1);
+INSERT DELAYED INTO t1 VALUES (2);
+SELECT * FROM t1;
+UPDATE t1 SET i = 3 WHERE i = 1;
+SELECT * FROM t1;
+DELETE FROM t1 WHERE i = 3;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+DROP TABLE t1, t2;
+
+#
+# BUG#21714: Wrong NEW.value and server abort on INSERT DELAYED to a
+# table with a trigger
+#
+# Fixed by the patch for Bug#21483
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ SET @a= NEW.i;
+
+SET @a= 0;
+INSERT DELAYED INTO t1 VALUES (1);
+SELECT @a;
+INSERT DELAYED INTO t1 VALUES (2);
+SELECT @a;
+
+DROP TABLE t1;
+
+CREATE TABLE t1 (i INT);
+CREATE TABLE t2 (i INT);
+
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+ INSERT INTO t2 VALUES (NEW.i);
+
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+ INSERT DELAYED INTO t2 VALUES (NEW.i);
+
+CREATE TRIGGER t1_ad AFTER DELETE ON t1 FOR EACH ROW
+ INSERT DELAYED INTO t2 VALUES (OLD.i);
+
+INSERT DELAYED INTO t1 VALUES (1);
+SELECT * FROM t1;
+UPDATE t1 SET i = 2 WHERE i = 1;
+SELECT * FROM t1;
+DELETE FROM t1 WHERE i = 2;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+DROP TABLE t1, t2;
+
+--echo End of 5.0 tests.
+
diff --git a/mysql-test/t/insert_notembedded.test b/mysql-test/t/insert_notembedded.test
new file mode 100644
index 00000000000..bdea72e9eca
--- /dev/null
+++ b/mysql-test/t/insert_notembedded.test
@@ -0,0 +1,154 @@
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+# Test for INSERT DELAYED INTO a <view>
+# BUG#13683: INSERT DELAYED into a view creates an infinite loop
+#
+
+create table t1 (n int);
+create view v1 as select * from t1;
+--error 1347
+insert delayed into v1 values (1);
+drop table t1;
+drop view v1;
+
+#
+# Bug #20989: View '(null).(null)' references invalid table(s)... on
+# SQL SECURITY INVOKER
+#
+# this is really the fact that REPLACE ... SELECT required additional
+# INSERT privs (on tables that are part of a view) over the related
+# REPLACE, SELECT
+#
+
+CREATE DATABASE meow;
+
+connect (root,localhost,root,,meow);
+connection root;
+
+CREATE TABLE table_target ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE TABLE table_target2 ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE TABLE table_target3 ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE VIEW view_target2 AS SELECT mexs_id,messzeit FROM table_target2;
+CREATE SQL SECURITY INVOKER VIEW view_target3 AS SELECT mexs_id,messzeit FROM table_target3;
+
+CREATE TABLE table_stations ( mexs_id VARCHAR(8), icao VARCHAR(4), country CHAR(2), PRIMARY KEY (mexs_id), UNIQUE KEY icao (icao), KEY country (country), CONSTRAINT stations_ibfk_8 FOREIGN KEY (country) REFERENCES countries (country) ON UPDATE CASCADE);
+INSERT INTO table_stations VALUES ('87654321','XXXX','YY');
+
+CREATE TABLE table_countries ( country CHAR(2), iso_short_en VARCHAR(64), PRIMARY KEY (country));
+INSERT INTO table_countries VALUES ('YY','Entenhausen');
+
+CREATE ALGORITHM=MERGE SQL SECURITY INVOKER VIEW view_stations AS select table_stations.mexs_id AS mexs_id, table_stations.icao AS icao, table_stations.country AS landescode from (table_stations join table_countries on((table_stations.country = table_countries.country)));
+
+CREATE TABLE table_source ( id varchar(4), datetime TIMESTAMP, PRIMARY KEY (id));
+INSERT INTO table_source VALUES ('XXXX','2006-07-12 07:50:00');
+
+GRANT SELECT ON table_source TO user20989@localhost;
+GRANT SELECT ON table_countries TO user20989@localhost;
+GRANT SELECT ON table_stations TO user20989@localhost;
+GRANT SELECT ON view_stations TO user20989@localhost;
+GRANT SELECT ON table_target TO user20989@localhost;
+GRANT SELECT ON table_target2 TO user20989@localhost;
+GRANT INSERT,DELETE,SELECT ON view_target3 TO user20989@localhost;
+
+connect (user20989,localhost,user20989,,meow);
+connection user20989;
+
+--error 1142
+REPLACE INTO table_target
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN table_target AS old
+USING (mexs_id);
+
+--error 1142
+REPLACE INTO view_target2
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target2 AS old
+USING (mexs_id);
+
+--error 1356
+REPLACE INTO view_target3
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target3 AS old
+USING (mexs_id);
+
+connection root;
+disconnect user20989;
+
+GRANT INSERT,DELETE ON table_target TO user20989@localhost;
+GRANT INSERT,DELETE,SELECT ON view_target2 TO user20989@localhost;
+GRANT INSERT,DELETE,SELECT ON table_target3 TO user20989@localhost;
+
+connect (user20989,localhost,user20989,,meow);
+connection user20989;
+
+REPLACE INTO table_target
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN table_target AS old
+USING (mexs_id);
+
+--error 1142
+REPLACE INTO table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00');
+REPLACE INTO view_target2 VALUES ('12X45Y78','2006-07-12 07:50:00');
+
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target2 AS old
+USING (mexs_id);
+
+REPLACE INTO view_target2
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target2 AS old
+USING (mexs_id);
+
+REPLACE INTO view_target3
+SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM table_source
+INNER JOIN view_stations AS stations
+ON table_source.id = stations.icao
+LEFT JOIN view_target3 AS old
+USING (mexs_id);
+
+connection root;
+disconnect user20989;
+
+SELECT * FROM table_target;
+SELECT * FROM view_target2;
+SELECT * FROM view_target3;
+
+DROP VIEW view_stations;
+DROP TABLE table_source;
+DROP TABLE table_countries;
+DROP TABLE table_stations;
+DROP TABLE table_target;
+DROP TABLE table_target2;
+DROP TABLE table_target3;
+DROP VIEW view_target2;
+DROP VIEW view_target3;
+DROP USER user20989@localhost;
+
+disconnect root;
+
+connection default;
+
+DROP DATABASE meow;
diff --git a/mysql-test/t/insert_select-binlog.test b/mysql-test/t/insert_select-binlog.test
index d4041f86ab5..4bff09577a7 100644
--- a/mysql-test/t/insert_select-binlog.test
+++ b/mysql-test/t/insert_select-binlog.test
@@ -1,5 +1,6 @@
# Embedded server doesn't support binlog
-- source include/not_embedded.inc
+-- source include/have_log_bin.inc
# Check if a partly-completed INSERT SELECT in a MyISAM table goes into the
# binlog
diff --git a/mysql-test/t/insert_select.test b/mysql-test/t/insert_select.test
index dfb313706dd..78a903e0d18 100644
--- a/mysql-test/t/insert_select.test
+++ b/mysql-test/t/insert_select.test
@@ -105,9 +105,7 @@ insert into t2 values (2,"t2:2"), (3,"t2:3");
insert into t1 select * from t2;
select * from t1;
# REPLACE .. SELECT is not yet supported by PS
---disable_ps_protocol
replace into t1 select * from t2;
---enable_ps_protocol
select * from t1;
drop table t1,t2;
@@ -198,9 +196,9 @@ insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= a +
#Some error cases
--error 1052
insert into t1 select t2.a from t2 on duplicate key update a= a + t2.b;
---error 1109
+--error 1054
insert into t1 select t2.a from t2 on duplicate key update t2.a= a + t2.b;
---error 1109
+--error 1054
insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= t1.a + t2.b;
drop table t1,t2,t3;
@@ -222,7 +220,7 @@ create table t2(x int, z int);
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(x);
--error 1054
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z);
---error 1109
+--error 1054
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x);
drop table t1,t2;
@@ -235,7 +233,9 @@ drop table t1,t2;
CREATE TABLE t1 (a int PRIMARY KEY);
INSERT INTO t1 values (1), (2);
+flush status;
INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1;
+show status like 'Handler_read%';
DROP TABLE t1;
@@ -268,3 +268,132 @@ SELECT * FROM t1;
DROP TABLE t1, t2;
# End of 4.1 tests
+
+#
+# Bug #18080: INSERT ... SELECT ... JOIN results in ambiguous field list error
+#
+CREATE TABLE t1 (x int, y int);
+CREATE TABLE t2 (z int, y int);
+CREATE TABLE t3 (a int, b int);
+INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
+DROP TABLE IF EXISTS t1,t2,t3;
+
+#
+# Bug #21774: Column count doesn't match value count at row x
+#
+CREATE DATABASE bug21774_1;
+CREATE DATABASE bug21774_2;
+
+CREATE TABLE bug21774_1.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
+CREATE TABLE bug21774_2.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
+CREATE TABLE bug21774_1.t2(id VARCHAR(10) NOT NULL,label VARCHAR(255));
+
+INSERT INTO bug21774_2.t1 SELECT t1.* FROM bug21774_1.t1;
+
+use bug21774_1;
+INSERT INTO bug21774_2.t1 SELECT t1.* FROM t1;
+
+DROP DATABASE bug21774_1;
+DROP DATABASE bug21774_2;
+USE test;
+
+#
+# Bug#19978: INSERT .. ON DUPLICATE erroneously reports some records were
+# updated.
+#
+create table t1(f1 int primary key, f2 int);
+--enable_info
+insert into t1 values (1,1);
+insert into t1 values (1,1) on duplicate key update f2=1;
+insert into t1 values (1,1) on duplicate key update f2=2;
+--disable_info
+select * from t1;
+drop table t1;
+
+#
+# Bug#23170: LAST_INSERT_ID isn't reset to 0 in INSERT .. SELECT if no rows
+# were inserted.
+#
+create table t1(f1 int primary key auto_increment, f2 int unique);
+insert into t1(f2) values(1);
+select @@identity;
+insert ignore t1(f2) values(1);
+select @@identity;
+insert ignore t1(f2) select 1;
+select @@identity;
+drop table t1;
+
+#
+# Bug#16630: wrong result, when INSERT t1 SELECT ... FROM t1 ON DUPLICATE
+#
+CREATE TABLE t1 (f1 INT, f2 INT );
+CREATE TABLE t2 (f1 INT PRIMARY KEY, f2 INT);
+INSERT INTO t1 VALUES (1,1),(2,2),(10,10);
+INSERT INTO t2 (f1, f2) SELECT f1, f2 FROM t1;
+INSERT INTO t2 (f1, f2)
+ SELECT f1, f1 FROM t2 src WHERE f1 < 2
+ ON DUPLICATE KEY UPDATE f1 = 100 + src.f1;
+SELECT * FROM t2;
+DROP TABLE t1, t2;
+
+#
+# Bug #26207: inserts don't work with shortened index
+#
+SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+
+CREATE TABLE t1 (c VARCHAR(30), INDEX ix_c (c(10)));
+CREATE TABLE t2 (d VARCHAR(10));
+INSERT INTO t1 (c) VALUES ('7_chars'), ('13_characters');
+
+EXPLAIN
+ SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters') FROM t1;
+
+SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters') FROM t1;
+
+INSERT INTO t2 (d)
+ SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='13_characters') FROM t1;
+
+INSERT INTO t2 (d)
+ SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c='7_chars') FROM t1;
+
+INSERT INTO t2 (d)
+ SELECT (SELECT SUM(LENGTH(c)) FROM t1 WHERE c IN (SELECT t1.c FROM t1))
+ FROM t1;
+
+SELECT * FROM t2;
+DROP TABLE t1,t2;
+
+#
+# Bug #29095: incorrect pushing of LIMIT into the temporary
+# table ignoring ORDER BY clause
+#
+
+CREATE TABLE t1 (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ prev_id INT,
+ join_id INT DEFAULT 0);
+
+INSERT INTO t1 (prev_id) VALUES (NULL), (1), (2);
+SELECT * FROM t1;
+
+CREATE TABLE t2 (join_id INT);
+INSERT INTO t2 (join_id) VALUES (0);
+
+INSERT INTO t1 (prev_id) SELECT id
+ FROM t2 LEFT JOIN t1 ON t1.join_id = t2.join_id
+ ORDER BY id DESC LIMIT 1;
+SELECT * FROM t1;
+
+DROP TABLE t1,t2;
+
+--echo #
+--echo # Bug#30384: Having SQL_BUFFER_RESULT option in the
+--echo # CREATE .. KEY(..) .. SELECT led to creating corrupted index.
+--echo #
+create table t1(f1 int);
+insert into t1 values(1),(2),(3);
+create table t2 (key(f1)) engine=myisam select sql_buffer_result f1 from t1;
+check table t2 extended;
+drop table t1,t2;
+--echo ##################################################################
+
diff --git a/mysql-test/t/insert_update.test b/mysql-test/t/insert_update.test
index 56885a555fd..67108744ec6 100644
--- a/mysql-test/t/insert_update.test
+++ b/mysql-test/t/insert_update.test
@@ -1,5 +1,5 @@
--disable_warnings
-DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1, t2;
--enable_warnings
CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
@@ -139,3 +139,170 @@ INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
SELECT * FROM t1;
DROP TABLE t1;
+
+#
+# Bug#25831: Deficiencies in INSERT ... SELECT ... field name resolving.
+#
+CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
+--error ER_BAD_FIELD_ERROR
+INSERT INTO t1 SELECT 1, j;
+DROP TABLE t1;
+
+CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
+CREATE TABLE t2 (a INT, b INT);
+CREATE TABLE t3 (a INT, c INT);
+INSERT INTO t1 SELECT 1, a FROM t2 NATURAL JOIN t3
+ ON DUPLICATE KEY UPDATE j= a;
+DROP TABLE t1,t2,t3;
+
+CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t1 VALUES (1, 1);
+INSERT INTO t2 VALUES (1), (3);
+--error ER_BAD_FIELD_ERROR
+INSERT INTO t1 SELECT 1, COUNT(*) FROM t2 ON DUPLICATE KEY UPDATE j= a;
+DROP TABLE t1,t2;
+
+#
+# Bug #26261: Missing default value isn't noticed in
+# insert ... on duplicate key update
+#
+SET SQL_MODE = 'TRADITIONAL';
+
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL);
+
+--error 1364
+INSERT INTO t1 (a) VALUES (1);
+
+--error 1364
+INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE a = b;
+
+--error 1364
+INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = b;
+
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug#27033: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE if rows were
+# touched but not actually changed.
+#
+CREATE TABLE t1 (f1 INT AUTO_INCREMENT PRIMARY KEY,
+ f2 VARCHAR(5) NOT NULL UNIQUE);
+INSERT t1 (f2) VALUES ('test') ON DUPLICATE KEY UPDATE f1 = LAST_INSERT_ID(f1);
+SELECT LAST_INSERT_ID();
+INSERT t1 (f2) VALUES ('test') ON DUPLICATE KEY UPDATE f1 = LAST_INSERT_ID(f1);
+SELECT LAST_INSERT_ID();
+DROP TABLE t1;
+
+#
+# Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the
+# NO_AUTO_VALUE_ON_ZERO mode.
+#
+SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
+CREATE TABLE `t1` (
+ `id` int(11) PRIMARY KEY auto_increment,
+ `f1` varchar(10) NOT NULL UNIQUE
+);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+SELECT * FROM t1;
+INSERT IGNORE INTO t1 (f1) VALUES ("test2")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT * FROM t1;
+INSERT IGNORE INTO t1 (f1) VALUES ("test2")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+SELECT * FROM t1;
+INSERT IGNORE INTO t1 (f1) VALUES ("test3")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+SELECT * FROM t1;
+DROP TABLE t1;
+CREATE TABLE `t1` (
+ `id` int(11) PRIMARY KEY auto_increment,
+ `f1` varchar(10) NOT NULL UNIQUE
+);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+SELECT * FROM t1;
+INSERT IGNORE INTO t1 (f1) VALUES ("test1"),("test4")
+ ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
+SELECT LAST_INSERT_ID();
+SELECT * FROM t1;
+DROP TABLE t1;
+CREATE TABLE `t1` (
+ `id` int(11) PRIMARY KEY auto_increment,
+ `f1` varchar(10) NOT NULL UNIQUE,
+ tim1 timestamp default '2003-01-01 00:00:00' on update current_timestamp
+);
+INSERT INTO t1 (f1) VALUES ("test1");
+SELECT id, f1 FROM t1;
+REPLACE INTO t1 VALUES (0,"test1",null);
+SELECT id, f1 FROM t1;
+DROP TABLE t1;
+SET SQL_MODE='';
+
+#
+# Bug#27954: multi-row INSERT ... ON DUPLICATE with duplicated
+# row at the first place into table with AUTO_INCREMENT and
+# additional UNIQUE key.
+#
+CREATE TABLE t1 (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ c1 CHAR(1) UNIQUE KEY,
+ cnt INT DEFAULT 1
+);
+INSERT INTO t1 (c1) VALUES ('A'), ('B'), ('C');
+SELECT * FROM t1;
+INSERT INTO t1 (c1) VALUES ('A'), ('X'), ('Y'), ('Z')
+ ON DUPLICATE KEY UPDATE cnt=cnt+1;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug#28000: INSERT IGNORE ... SELECT ... ON DUPLICATE
+# with erroneous UPDATE: NOT NULL field with NULL value.
+#
+CREATE TABLE t1 (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ c1 INT NOT NULL,
+ cnt INT DEFAULT 1
+);
+INSERT INTO t1 (id,c1) VALUES (1,10);
+SELECT * FROM t1;
+CREATE TABLE t2 (id INT, c1 INT);
+INSERT INTO t2 VALUES (1,NULL), (2,2);
+--error 1048
+INSERT INTO t1 (id,c1) SELECT 1,NULL
+ ON DUPLICATE KEY UPDATE c1=NULL;
+SELECT * FROM t1;
+INSERT IGNORE INTO t1 (id,c1) SELECT 1,NULL
+ ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
+SELECT * FROM t1;
+INSERT IGNORE INTO t1 (id,c1) SELECT * FROM t2
+ ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug#28904: INSERT .. ON DUPLICATE was silently updating rows when it
+# shouldn't.
+#
+create table t1(f1 int primary key,
+ f2 timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP);
+insert into t1(f1) values(1);
+--replace_column 1 #
+select @stamp1:=f2 from t1;
+--sleep 2
+insert into t1(f1) values(1) on duplicate key update f1=1;
+--replace_column 1 #
+select @stamp2:=f2 from t1;
+select if( @stamp1 = @stamp2, "correct", "wrong");
+drop table t1;
diff --git a/mysql-test/t/isam.test b/mysql-test/t/isam.test
deleted file mode 100644
index 7fa841c11a3..00000000000
--- a/mysql-test/t/isam.test
+++ /dev/null
@@ -1,249 +0,0 @@
--- source include/have_isam.inc
-
---disable_warnings
-drop table if exists t1,t2;
---enable_warnings
-
-#
-# Test possible problem with rows that are about 65535 bytes long
-#
-
-create table t1 (a tinyint not null auto_increment, b blob not null, primary key (a)) engine=isam;
-
-let $1=100;
-disable_query_log;
---disable_warnings
-while ($1)
-{
- eval insert into t1 (b) values(repeat(char(65+$1),65540-$1));
- dec $1;
-}
-enable_query_log;
---enable_warnings
-delete from t1 where (a & 1);
-select sum(length(b)) from t1;
-drop table t1;
-
-#
-# Test of auto_increment; The test for BDB tables is in bdb.test
-#
-
-create table t1 (a int not null auto_increment,b int, primary key (a)) engine=isam;
-insert into t1 values (1,1),(NULL,2),(3,3),(NULL,4);
-delete from t1 where a=4 or a=2;
-insert into t1 values (NULL,4),(NULL,5),(6,6);
-select * from t1;
-delete from t1 where a=6;
-#show table status like "t1";
-replace t1 values (3,1);
-replace t1 values (3,3);
-ALTER TABLE t1 add c int;
-insert into t1 values (NULL,6,6);
-select * from t1;
-drop table t1;
-
-#
-# Test of some CREATE TABLE's that should fail
-#
---error 1121
-create table t1 (a int,b text, index(a)) engine=isam;
---error 1073
-create table t1 (a int,b text, index(b)) engine=isam;
---error 1075
-create table t1 (ordid int(8) not null auto_increment, ord varchar(50) not null, primary key (ord,ordid)) engine=isam;
---error 1121
-create table t1 (ordid int(8), unique (ordid)) engine=isam;
-drop table if exists t1;
-
-#
-# Test of some show commands
-#
-
-create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
-insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
-create table t2 engine=isam select * from t1;
-optimize table t1;
-check table t1,t2;
-repair table t1,t2;
-check table t2,t1;
-lock tables t1 write;
-check table t2,t1;
-show columns from t1;
-show full columns from t1;
-show index from t1;
-drop table t1,t2;
-
-#
-# test of table with huge number of packed fields
-#
-
-create table t1 (i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8
-int, i9 int, i10 int, i11 int, i12 int, i13 int, i14 int, i15 int, i16 int, i17
-int, i18 int, i19 int, i20 int, i21 int, i22 int, i23 int, i24 int, i25 int,
-i26 int, i27 int, i28 int, i29 int, i30 int, i31 int, i32 int, i33 int, i34
-int, i35 int, i36 int, i37 int, i38 int, i39 int, i40 int, i41 int, i42 int,
-i43 int, i44 int, i45 int, i46 int, i47 int, i48 int, i49 int, i50 int, i51
-int, i52 int, i53 int, i54 int, i55 int, i56 int, i57 int, i58 int, i59 int,
-i60 int, i61 int, i62 int, i63 int, i64 int, i65 int, i66 int, i67 int, i68
-int, i69 int, i70 int, i71 int, i72 int, i73 int, i74 int, i75 int, i76 int,
-i77 int, i78 int, i79 int, i80 int, i81 int, i82 int, i83 int, i84 int, i85
-int, i86 int, i87 int, i88 int, i89 int, i90 int, i91 int, i92 int, i93 int,
-i94 int, i95 int, i96 int, i97 int, i98 int, i99 int, i100 int, i101 int, i102
-int, i103 int, i104 int, i105 int, i106 int, i107 int, i108 int, i109 int, i110
-int, i111 int, i112 int, i113 int, i114 int, i115 int, i116 int, i117 int, i118
-int, i119 int, i120 int, i121 int, i122 int, i123 int, i124 int, i125 int, i126
-int, i127 int, i128 int, i129 int, i130 int, i131 int, i132 int, i133 int, i134
-int, i135 int, i136 int, i137 int, i138 int, i139 int, i140 int, i141 int, i142
-int, i143 int, i144 int, i145 int, i146 int, i147 int, i148 int, i149 int, i150
-int, i151 int, i152 int, i153 int, i154 int, i155 int, i156 int, i157 int, i158
-int, i159 int, i160 int, i161 int, i162 int, i163 int, i164 int, i165 int, i166
-int, i167 int, i168 int, i169 int, i170 int, i171 int, i172 int, i173 int, i174
-int, i175 int, i176 int, i177 int, i178 int, i179 int, i180 int, i181 int, i182
-int, i183 int, i184 int, i185 int, i186 int, i187 int, i188 int, i189 int, i190
-int, i191 int, i192 int, i193 int, i194 int, i195 int, i196 int, i197 int, i198
-int, i199 int, i200 int, i201 int, i202 int, i203 int, i204 int, i205 int, i206
-int, i207 int, i208 int, i209 int, i210 int, i211 int, i212 int, i213 int, i214
-int, i215 int, i216 int, i217 int, i218 int, i219 int, i220 int, i221 int, i222
-int, i223 int, i224 int, i225 int, i226 int, i227 int, i228 int, i229 int, i230
-int, i231 int, i232 int, i233 int, i234 int, i235 int, i236 int, i237 int, i238
-int, i239 int, i240 int, i241 int, i242 int, i243 int, i244 int, i245 int, i246
-int, i247 int, i248 int, i249 int, i250 int, i251 int, i252 int, i253 int, i254
-int, i255 int, i256 int, i257 int, i258 int, i259 int, i260 int, i261 int, i262
-int, i263 int, i264 int, i265 int, i266 int, i267 int, i268 int, i269 int, i270
-int, i271 int, i272 int, i273 int, i274 int, i275 int, i276 int, i277 int, i278
-int, i279 int, i280 int, i281 int, i282 int, i283 int, i284 int, i285 int, i286
-int, i287 int, i288 int, i289 int, i290 int, i291 int, i292 int, i293 int, i294
-int, i295 int, i296 int, i297 int, i298 int, i299 int, i300 int, i301 int, i302
-int, i303 int, i304 int, i305 int, i306 int, i307 int, i308 int, i309 int, i310
-int, i311 int, i312 int, i313 int, i314 int, i315 int, i316 int, i317 int, i318
-int, i319 int, i320 int, i321 int, i322 int, i323 int, i324 int, i325 int, i326
-int, i327 int, i328 int, i329 int, i330 int, i331 int, i332 int, i333 int, i334
-int, i335 int, i336 int, i337 int, i338 int, i339 int, i340 int, i341 int, i342
-int, i343 int, i344 int, i345 int, i346 int, i347 int, i348 int, i349 int, i350
-int, i351 int, i352 int, i353 int, i354 int, i355 int, i356 int, i357 int, i358
-int, i359 int, i360 int, i361 int, i362 int, i363 int, i364 int, i365 int, i366
-int, i367 int, i368 int, i369 int, i370 int, i371 int, i372 int, i373 int, i374
-int, i375 int, i376 int, i377 int, i378 int, i379 int, i380 int, i381 int, i382
-int, i383 int, i384 int, i385 int, i386 int, i387 int, i388 int, i389 int, i390
-int, i391 int, i392 int, i393 int, i394 int, i395 int, i396 int, i397 int, i398
-int, i399 int, i400 int, i401 int, i402 int, i403 int, i404 int, i405 int, i406
-int, i407 int, i408 int, i409 int, i410 int, i411 int, i412 int, i413 int, i414
-int, i415 int, i416 int, i417 int, i418 int, i419 int, i420 int, i421 int, i422
-int, i423 int, i424 int, i425 int, i426 int, i427 int, i428 int, i429 int, i430
-int, i431 int, i432 int, i433 int, i434 int, i435 int, i436 int, i437 int, i438
-int, i439 int, i440 int, i441 int, i442 int, i443 int, i444 int, i445 int, i446
-int, i447 int, i448 int, i449 int, i450 int, i451 int, i452 int, i453 int, i454
-int, i455 int, i456 int, i457 int, i458 int, i459 int, i460 int, i461 int, i462
-int, i463 int, i464 int, i465 int, i466 int, i467 int, i468 int, i469 int, i470
-int, i471 int, i472 int, i473 int, i474 int, i475 int, i476 int, i477 int, i478
-int, i479 int, i480 int, i481 int, i482 int, i483 int, i484 int, i485 int, i486
-int, i487 int, i488 int, i489 int, i490 int, i491 int, i492 int, i493 int, i494
-int, i495 int, i496 int, i497 int, i498 int, i499 int, i500 int, i501 int, i502
-int, i503 int, i504 int, i505 int, i506 int, i507 int, i508 int, i509 int, i510
-int, i511 int, i512 int, i513 int, i514 int, i515 int, i516 int, i517 int, i518
-int, i519 int, i520 int, i521 int, i522 int, i523 int, i524 int, i525 int, i526
-int, i527 int, i528 int, i529 int, i530 int, i531 int, i532 int, i533 int, i534
-int, i535 int, i536 int, i537 int, i538 int, i539 int, i540 int, i541 int, i542
-int, i543 int, i544 int, i545 int, i546 int, i547 int, i548 int, i549 int, i550
-int, i551 int, i552 int, i553 int, i554 int, i555 int, i556 int, i557 int, i558
-int, i559 int, i560 int, i561 int, i562 int, i563 int, i564 int, i565 int, i566
-int, i567 int, i568 int, i569 int, i570 int, i571 int, i572 int, i573 int, i574
-int, i575 int, i576 int, i577 int, i578 int, i579 int, i580 int, i581 int, i582
-int, i583 int, i584 int, i585 int, i586 int, i587 int, i588 int, i589 int, i590
-int, i591 int, i592 int, i593 int, i594 int, i595 int, i596 int, i597 int, i598
-int, i599 int, i600 int, i601 int, i602 int, i603 int, i604 int, i605 int, i606
-int, i607 int, i608 int, i609 int, i610 int, i611 int, i612 int, i613 int, i614
-int, i615 int, i616 int, i617 int, i618 int, i619 int, i620 int, i621 int, i622
-int, i623 int, i624 int, i625 int, i626 int, i627 int, i628 int, i629 int, i630
-int, i631 int, i632 int, i633 int, i634 int, i635 int, i636 int, i637 int, i638
-int, i639 int, i640 int, i641 int, i642 int, i643 int, i644 int, i645 int, i646
-int, i647 int, i648 int, i649 int, i650 int, i651 int, i652 int, i653 int, i654
-int, i655 int, i656 int, i657 int, i658 int, i659 int, i660 int, i661 int, i662
-int, i663 int, i664 int, i665 int, i666 int, i667 int, i668 int, i669 int, i670
-int, i671 int, i672 int, i673 int, i674 int, i675 int, i676 int, i677 int, i678
-int, i679 int, i680 int, i681 int, i682 int, i683 int, i684 int, i685 int, i686
-int, i687 int, i688 int, i689 int, i690 int, i691 int, i692 int, i693 int, i694
-int, i695 int, i696 int, i697 int, i698 int, i699 int, i700 int, i701 int, i702
-int, i703 int, i704 int, i705 int, i706 int, i707 int, i708 int, i709 int, i710
-int, i711 int, i712 int, i713 int, i714 int, i715 int, i716 int, i717 int, i718
-int, i719 int, i720 int, i721 int, i722 int, i723 int, i724 int, i725 int, i726
-int, i727 int, i728 int, i729 int, i730 int, i731 int, i732 int, i733 int, i734
-int, i735 int, i736 int, i737 int, i738 int, i739 int, i740 int, i741 int, i742
-int, i743 int, i744 int, i745 int, i746 int, i747 int, i748 int, i749 int, i750
-int, i751 int, i752 int, i753 int, i754 int, i755 int, i756 int, i757 int, i758
-int, i759 int, i760 int, i761 int, i762 int, i763 int, i764 int, i765 int, i766
-int, i767 int, i768 int, i769 int, i770 int, i771 int, i772 int, i773 int, i774
-int, i775 int, i776 int, i777 int, i778 int, i779 int, i780 int, i781 int, i782
-int, i783 int, i784 int, i785 int, i786 int, i787 int, i788 int, i789 int, i790
-int, i791 int, i792 int, i793 int, i794 int, i795 int, i796 int, i797 int, i798
-int, i799 int, i800 int, i801 int, i802 int, i803 int, i804 int, i805 int, i806
-int, i807 int, i808 int, i809 int, i810 int, i811 int, i812 int, i813 int, i814
-int, i815 int, i816 int, i817 int, i818 int, i819 int, i820 int, i821 int, i822
-int, i823 int, i824 int, i825 int, i826 int, i827 int, i828 int, i829 int, i830
-int, i831 int, i832 int, i833 int, i834 int, i835 int, i836 int, i837 int, i838
-int, i839 int, i840 int, i841 int, i842 int, i843 int, i844 int, i845 int, i846
-int, i847 int, i848 int, i849 int, i850 int, i851 int, i852 int, i853 int, i854
-int, i855 int, i856 int, i857 int, i858 int, i859 int, i860 int, i861 int, i862
-int, i863 int, i864 int, i865 int, i866 int, i867 int, i868 int, i869 int, i870
-int, i871 int, i872 int, i873 int, i874 int, i875 int, i876 int, i877 int, i878
-int, i879 int, i880 int, i881 int, i882 int, i883 int, i884 int, i885 int, i886
-int, i887 int, i888 int, i889 int, i890 int, i891 int, i892 int, i893 int, i894
-int, i895 int, i896 int, i897 int, i898 int, i899 int, i900 int, i901 int, i902
-int, i903 int, i904 int, i905 int, i906 int, i907 int, i908 int, i909 int, i910
-int, i911 int, i912 int, i913 int, i914 int, i915 int, i916 int, i917 int, i918
-int, i919 int, i920 int, i921 int, i922 int, i923 int, i924 int, i925 int, i926
-int, i927 int, i928 int, i929 int, i930 int, i931 int, i932 int, i933 int, i934
-int, i935 int, i936 int, i937 int, i938 int, i939 int, i940 int, i941 int, i942
-int, i943 int, i944 int, i945 int, i946 int, i947 int, i948 int, i949 int, i950
-int, i951 int, i952 int, i953 int, i954 int, i955 int, i956 int, i957 int, i958
-int, i959 int, i960 int, i961 int, i962 int, i963 int, i964 int, i965 int, i966
-int, i967 int, i968 int, i969 int, i970 int, i971 int, i972 int, i973 int, i974
-int, i975 int, i976 int, i977 int, i978 int, i979 int, i980 int, i981 int, i982
-int, i983 int, i984 int, i985 int, i986 int, i987 int, i988 int, i989 int, i990
-int, i991 int, i992 int, i993 int, i994 int, i995 int, i996 int, i997 int, i998
-int, i999 int, i1000 int, b blob) row_format=dynamic;
-insert into t1 values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, "Sergei");
-update t1 set b=repeat('a',256);
-update t1 set i1=0, i2=0, i3=0, i4=0, i5=0, i6=0, i7=0;
-check table t1;
-drop table t1;
-
-# End of 4.1 tests
diff --git a/mysql-test/t/join.test b/mysql-test/t/join.test
index 0fe5de8c9b7..5b599c3dad7 100644
--- a/mysql-test/t/join.test
+++ b/mysql-test/t/join.test
@@ -115,6 +115,10 @@ select t1.a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using
--replace_result "31 tables" "XX tables" "61 tables" "XX tables"
--error 1116
select t1.a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a) left join t1 as t32 using (a) left join t1 as t33 using (a) left join t1 as t34 using (a) left join t1 as t35 using (a) left join t1 as t36 using (a) left join t1 as t37 using (a) left join t1 as t38 using (a) left join t1 as t39 using (a) left join t1 as t40 using (a) left join t1 as t41 using (a) left join t1 as t42 using (a) left join t1 as t43 using (a) left join t1 as t44 using (a) left join t1 as t45 using (a) left join t1 as t46 using (a) left join t1 as t47 using (a) left join t1 as t48 using (a) left join t1 as t49 using (a) left join t1 as t50 using (a) left join t1 as t51 using (a) left join t1 as t52 using (a) left join t1 as t53 using (a) left join t1 as t54 using (a) left join t1 as t55 using (a) left join t1 as t56 using (a) left join t1 as t57 using (a) left join t1 as t58 using (a) left join t1 as t59 using (a) left join t1 as t60 using (a) left join t1 as t61 using (a) left join t1 as t62 using (a) left join t1 as t63 using (a) left join t1 as t64 using (a) left join t1 as t65 using (a);
+select a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a);
+--replace_result "31 tables" "XX tables" "61 tables" "XX tables"
+--error 1116
+select a from t1 as t1 left join t1 as t2 using (a) left join t1 as t3 using (a) left join t1 as t4 using (a) left join t1 as t5 using (a) left join t1 as t6 using (a) left join t1 as t7 using (a) left join t1 as t8 using (a) left join t1 as t9 using (a) left join t1 as t10 using (a) left join t1 as t11 using (a) left join t1 as t12 using (a) left join t1 as t13 using (a) left join t1 as t14 using (a) left join t1 as t15 using (a) left join t1 as t16 using (a) left join t1 as t17 using (a) left join t1 as t18 using (a) left join t1 as t19 using (a) left join t1 as t20 using (a) left join t1 as t21 using (a) left join t1 as t22 using (a) left join t1 as t23 using (a) left join t1 as t24 using (a) left join t1 as t25 using (a) left join t1 as t26 using (a) left join t1 as t27 using (a) left join t1 as t28 using (a) left join t1 as t29 using (a) left join t1 as t30 using (a) left join t1 as t31 using (a) left join t1 as t32 using (a) left join t1 as t33 using (a) left join t1 as t34 using (a) left join t1 as t35 using (a) left join t1 as t36 using (a) left join t1 as t37 using (a) left join t1 as t38 using (a) left join t1 as t39 using (a) left join t1 as t40 using (a) left join t1 as t41 using (a) left join t1 as t42 using (a) left join t1 as t43 using (a) left join t1 as t44 using (a) left join t1 as t45 using (a) left join t1 as t46 using (a) left join t1 as t47 using (a) left join t1 as t48 using (a) left join t1 as t49 using (a) left join t1 as t50 using (a) left join t1 as t51 using (a) left join t1 as t52 using (a) left join t1 as t53 using (a) left join t1 as t54 using (a) left join t1 as t55 using (a) left join t1 as t56 using (a) left join t1 as t57 using (a) left join t1 as t58 using (a) left join t1 as t59 using (a) left join t1 as t60 using (a) left join t1 as t61 using (a) left join t1 as t62 using (a) left join t1 as t63 using (a) left join t1 as t64 using (a) left join t1 as t65 using (a);
drop table t1;
#
@@ -145,6 +149,7 @@ CREATE TABLE t1 (d DATE NOT NULL);
CREATE TABLE t2 (d DATE NOT NULL);
INSERT INTO t1 (d) VALUES ('2001-08-01'),('0000-00-00');
SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE t2.d IS NULL;
+SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE d IS NULL;
SELECT * from t1 WHERE t1.d IS NULL;
SELECT * FROM t1 WHERE 1/0 IS NULL;
DROP TABLE t1,t2;
@@ -268,6 +273,8 @@ CREATE TABLE t2 (
INSERT INTO t2 VALUES ('rivercats','cust',20);
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE emp.emp_id = 'psmith' AND lr.siteid = 'rivercats';
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE lr.siteid = 'rivercats' AND emp.emp_id = 'psmith';
+SELECT rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE emp.emp_id = 'psmith' AND siteid = 'rivercats';
+SELECT rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING (siteid, rate_code) WHERE siteid = 'rivercats' AND emp.emp_id = 'psmith';
drop table t1,t2;
#
@@ -351,3 +358,305 @@ SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
DROP TABLE t1,t2;
# End of 4.1 tests
+
+#
+# Tests for WL#2486 Natural/using join according to SQL:2003.
+#
+# NOTICE:
+# - The tests are designed so that all statements, except MySQL
+# extensions run on any SQL server. Please do no change.
+# - Tests marked with TODO will be submitted as bugs.
+#
+
+create table t1 (c int, b int);
+create table t2 (a int, b int);
+create table t3 (b int, c int);
+create table t4 (y int, c int);
+create table t5 (y int, z int);
+create table t6 (a int, c int);
+
+insert into t1 values (10,1);
+insert into t1 values (3 ,1);
+insert into t1 values (3 ,2);
+insert into t2 values (2, 1);
+insert into t3 values (1, 3);
+insert into t3 values (1,10);
+insert into t4 values (11,3);
+insert into t4 values (2, 3);
+insert into t5 values (11,4);
+insert into t6 values (2, 3);
+
+# Views with simple natural join.
+create algorithm=merge view v1a as
+select * from t1 natural join t2;
+# as above, but column names are cross-renamed: a->c, c->b, b->a
+create algorithm=merge view v1b(a,b,c) as
+select * from t1 natural join t2;
+# as above, but column names are aliased: a->c, c->b, b->a
+create algorithm=merge view v1c as
+select b as a, c as b, a as c from t1 natural join t2;
+# as above, but column names are cross-renamed, and aliased
+# a->c->b, c->b->a, b->a->c
+create algorithm=merge view v1d(b, a, c) as
+select a as c, c as b, b as a from t1 natural join t2;
+
+# Views with JOIN ... ON
+create algorithm=merge view v2a as
+select t1.c, t1.b, t2.a from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
+create algorithm=merge view v2b as
+select t1.c as b, t1.b as a, t2.a as c
+from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
+
+# Views with bigger natural join
+create algorithm=merge view v3a as
+select * from t1 natural join t2 natural join t3;
+create algorithm=merge view v3b as
+select * from t1 natural join (t2 natural join t3);
+
+# View over views with mixed natural join and join ... on
+create algorithm=merge view v4 as
+select * from v2a natural join v3a;
+
+# Nested natural/using joins.
+select * from (t1 natural join t2) natural join (t3 natural join t4);
+select * from (t1 natural join t2) natural left join (t3 natural join t4);
+select * from (t3 natural join t4) natural right join (t1 natural join t2);
+select * from (t1 natural left join t2) natural left join (t3 natural left join t4);
+select * from (t4 natural right join t3) natural right join (t2 natural right join t1);
+select * from t1 natural join t2 natural join t3 natural join t4;
+select * from ((t1 natural join t2) natural join t3) natural join t4;
+select * from t1 natural join (t2 natural join (t3 natural join t4));
+# BUG#15355: this query fails in 'prepared statements' mode
+# select * from ((t3 natural join (t1 natural join t2)) natural join t4) natural join t5;
+# select * from ((t3 natural left join (t1 natural left join t2)) natural left join t4) natural left join t5;
+select * from t5 natural right join (t4 natural right join ((t2 natural right join t1) natural right join t3));
+select * from (t1 natural join t2), (t3 natural join t4);
+# MySQL extension - nested comma ',' operator instead of cross join.
+select * from t5 natural join ((t1 natural join t2), (t3 natural join t4));
+select * from ((t1 natural join t2), (t3 natural join t4)) natural join t5;
+select * from t5 natural join ((t1 natural join t2) cross join (t3 natural join t4));
+select * from ((t1 natural join t2) cross join (t3 natural join t4)) natural join t5;
+
+select * from (t1 join t2 using (b)) join (t3 join t4 using (c)) using (c);
+select * from (t1 join t2 using (b)) natural join (t3 join t4 using (c));
+
+
+# Other clauses refer to NJ columns.
+select a,b,c from (t1 natural join t2) natural join (t3 natural join t4)
+where b + 1 = y or b + 10 = y group by b,c,a having min(b) < max(y) order by a;
+select * from (t1 natural join t2) natural left join (t3 natural join t4)
+where b + 1 = y or b + 10 = y group by b,c,a,y having min(b) < max(y) order by a, y;
+select * from (t3 natural join t4) natural right join (t1 natural join t2)
+where b + 1 = y or b + 10 = y group by b,c,a,y having min(b) < max(y) order by a, y;
+
+# Qualified column references to NJ columns.
+select * from t1 natural join t2 where t1.c > t2.a;
+select * from t1 natural join t2 where t1.b > t2.b;
+select * from t1 natural left join (t4 natural join t5) where t5.z is not NULL;
+
+# Nested 'join ... on' - name resolution of ON conditions
+select * from t1 join (t2 join t4 on b + 1 = y) on t1.c = t4.c;
+select * from (t2 join t4 on b + 1 = y) join t1 on t1.c = t4.c;
+select * from t1 natural join (t2 join t4 on b + 1 = y);
+select * from (t1 cross join t2) join (t3 cross join t4) on (a < y and t2.b < t3.c);
+
+# MySQL extension - 'join ... on' over nested comma operator
+select * from (t1, t2) join (t3, t4) on (a < y and t2.b < t3.c);
+select * from (t1 natural join t2) join (t3 natural join t4) on a = y;
+select * from ((t3 join (t1 join t2 on c > a) on t3.b < t2.a) join t4 on y > t1.c) join t5 on z = t1.b + 3;
+
+# MySQL extension - refererence qualified coalesced columns
+select * from t1 natural join t2 where t1.b > 0;
+select * from t1 natural join (t4 natural join t5) where t4.y > 7;
+select * from (t4 natural join t5) natural join t1 where t4.y > 7;
+select * from t1 natural left join (t4 natural join t5) where t4.y > 7;
+select * from (t4 natural join t5) natural right join t1 where t4.y > 7;
+select * from (t1 natural join t2) join (t3 natural join t4) on t1.b = t3.b;
+
+# MySQL extension - select qualified columns of NJ columns
+select t1.*, t2.* from t1 natural join t2;
+select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) natural join (t3 natural join t4);
+
+# Queries over subselects in the FROM clause
+select * from (select * from t1 natural join t2) as t12
+ natural join
+ (select * from t3 natural join t4) as t34;
+select * from (select * from t1 natural join t2) as t12
+ natural left join
+ (select * from t3 natural join t4) as t34;
+select * from (select * from t3 natural join t4) as t34
+ natural right join
+ (select * from t1 natural join t2) as t12;
+
+# Queries over views
+select * from v1a;
+select * from v1b;
+select * from v1c;
+select * from v1d;
+select * from v2a;
+select * from v2b;
+select * from v3a;
+select * from v3b;
+select * from v4;
+select * from v1a natural join v2a;
+select v2a.* from v1a natural join v2a;
+select * from v1b join v2a on v1b.b = v2a.c;
+select * from v1c join v2a on v1c.b = v2a.c;
+select * from v1d join v2a on v1d.a = v2a.c;
+select * from v1a join (t3 natural join t4) on a = y;
+
+# TODO: add tests with correlated subqueries for natural join/join on.
+# related to BUG#15269
+
+
+#--------------------------------------------------------------------
+# Negative tests (tests for errors)
+#--------------------------------------------------------------------
+# works in Oracle - bug
+-- error 1052
+select * from t1 natural join (t3 cross join t4);
+# works in Oracle - bug
+-- error 1052
+select * from (t3 cross join t4) natural join t1;
+-- error 1052
+select * from t1 join (t2, t3) using (b);
+-- error 1052
+select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
+-- error 1052
+select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
+-- error 1052
+select * from t6 natural join ((t1 natural join t2), (t3 natural join t4));
+-- error 1052
+select * from (t1 join t2 on t1.b=t2.b) natural join (t3 natural join t4);
+-- error 1052
+select * from (t3 natural join t4) natural join (t1 join t2 on t1.b=t2.b);
+# this one is OK, the next equivalent one is incorrect (bug in Oracle)
+-- error 1052
+select * from (t3 join (t4 natural join t5) on (b < z))
+ natural join
+ (t1 natural join t2);
+-- error 1052
+select * from (t1 natural join t2) natural join (t3 join (t4 natural join t5) on (b < z));
+
+-- error 1054
+select t1.b from v1a;
+-- error 1054
+select * from v1a join v1b on t1.b = t2.b;
+
+#
+# Bug #17523 natural join and information_schema
+#
+# We mask out the Privileges column because it differs with embedded server
+--replace_column 31 #
+select * from information_schema.statistics join information_schema.columns
+ using(table_name,column_name) where table_name='user';
+
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+drop table t5;
+drop table t6;
+
+drop view v1a;
+drop view v1b;
+drop view v1c;
+drop view v1d;
+drop view v2a;
+drop view v2b;
+drop view v3a;
+drop view v3b;
+drop view v4;
+
+#
+# BUG#15229 - columns of nested joins that are not natural joins incorrectly
+# materialized
+#
+create table t1 (a1 int, a2 int);
+create table t2 (a1 int, b int);
+create table t3 (c1 int, c2 int);
+create table t4 (c2 int);
+
+insert into t1 values (1,1);
+insert into t2 values (1,1);
+insert into t3 values (1,1);
+insert into t4 values (1);
+
+select * from t1 join t2 using (a1) join t3 on b=c1 join t4 using (c2);
+select * from t3 join (t1 join t2 using (a1)) on b=c1 join t4 using (c2);
+select a2 from t1 join t2 using (a1) join t3 on b=c1 join t4 using (c2);
+select a2 from t3 join (t1 join t2 using (a1)) on b=c1 join t4 using (c2);
+select a2 from ((t1 join t2 using (a1)) join t3 on b=c1) join t4 using (c2);
+select a2 from ((t1 natural join t2) join t3 on b=c1) natural join t4;
+
+drop table t1,t2,t3,t4;
+
+#
+# BUG#15355: Common natural join column not resolved in prepared statement nested query
+#
+create table t1 (c int, b int);
+create table t2 (a int, b int);
+create table t3 (b int, c int);
+create table t4 (y int, c int);
+create table t5 (y int, z int);
+
+insert into t1 values (3,2);
+insert into t2 values (1,2);
+insert into t3 values (2,3);
+insert into t4 values (1,3);
+insert into t5 values (1,4);
+
+# this fails
+prepare stmt1 from "select * from ((t3 natural join (t1 natural join t2))
+natural join t4) natural join t5";
+execute stmt1;
+
+# this works
+select * from ((t3 natural join (t1 natural join t2)) natural join t4)
+ natural join t5;
+drop table t1, t2, t3, t4, t5;
+
+# End of tests for WL#2486 - natural/using join
+
+#
+# BUG#25106: A USING clause in combination with a VIEW results in column
+# aliases ignored
+#
+CREATE TABLE t1 (ID INTEGER, Name VARCHAR(50));
+CREATE TABLE t2 (Test_ID INTEGER);
+CREATE VIEW v1 (Test_ID, Description) AS SELECT ID, Name FROM t1;
+
+CREATE TABLE tv1 SELECT Description AS Name FROM v1 JOIN t2
+ USING (Test_ID);
+DESCRIBE tv1;
+CREATE TABLE tv2 SELECT Description AS Name FROM v1 JOIN t2
+ ON v1.Test_ID = t2.Test_ID;
+DESCRIBE tv2;
+
+DROP VIEW v1;
+DROP TABLE t1,t2,tv1,tv2;
+
+
+# BUG#27939: Early NULLs filtering doesn't work for eq_ref access
+create table t1 (a int, b int);
+insert into t1 values
+ (NULL, 1),
+ (NULL, 2),
+ (NULL, 3),
+ (NULL, 4);
+
+create table t2 (a int not null, primary key(a));
+insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t3 (a int not null, primary key(a));
+insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+flush status;
+select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
+explain select * from t1, t2, t3 where t3.a=t1.a and t2.a=t1.b;
+--echo We expect rnd_next=5, and read_key must be 0 because of short-cutting:
+show status like 'Handler_read%';
+drop table t1, t2, t3;
+
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/join_crash.test b/mysql-test/t/join_crash.test
index 68fd9226e41..2ec96dc2c28 100644
--- a/mysql-test/t/join_crash.test
+++ b/mysql-test/t/join_crash.test
@@ -92,18 +92,11 @@ select distinct
t1.comments as comments,
sum( t3.amount_received ) + sum( t3.adjustment ) as total_budget
from
- t1 ,
t2 as client_period ,
- t2 as project_period
- left join
- t3
- on
- t3.project_ptr = t1.project_id
- and t3.date_received <= '2001-03-22 14:15:09'
- left join
- t4
- on
- t4.client_id = t1.client_ptr
+ t2 as project_period,
+ t3 left join t1 on (t3.project_ptr = t1.project_id and
+ t3.date_received <= '2001-03-22 14:15:09')
+ left join t4 on t4.client_id = t1.client_ptr
where
1
and ( client_period.period_type = 'client_table'
diff --git a/mysql-test/t/join_nested.test b/mysql-test/t/join_nested.test
new file mode 100644
index 00000000000..5b07d8966f1
--- /dev/null
+++ b/mysql-test/t/join_nested.test
@@ -0,0 +1,1200 @@
+
+--disable_warnings
+DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
+--enable_warnings
+
+CREATE TABLE t0 (a int, b int, c int);
+CREATE TABLE t1 (a int, b int, c int);
+CREATE TABLE t2 (a int, b int, c int);
+CREATE TABLE t3 (a int, b int, c int);
+CREATE TABLE t4 (a int, b int, c int);
+CREATE TABLE t5 (a int, b int, c int);
+CREATE TABLE t6 (a int, b int, c int);
+CREATE TABLE t7 (a int, b int, c int);
+CREATE TABLE t8 (a int, b int, c int);
+CREATE TABLE t9 (a int, b int, c int);
+
+INSERT INTO t0 VALUES (1,1,0), (1,2,0), (2,2,0);
+INSERT INTO t1 VALUES (1,3,0), (2,2,0), (3,2,0);
+INSERT INTO t2 VALUES (3,3,0), (4,2,0), (5,3,0);
+INSERT INTO t3 VALUES (1,2,0), (2,2,0);
+INSERT INTO t4 VALUES (3,2,0), (4,2,0);
+INSERT INTO t5 VALUES (3,1,0), (2,2,0), (3,3,0);
+INSERT INTO t6 VALUES (3,2,0), (6,2,0), (6,1,0);
+INSERT INTO t7 VALUES (1,1,0), (2,2,0);
+INSERT INTO t8 VALUES (0,2,0), (1,2,0);
+INSERT INTO t9 VALUES (1,1,0), (1,2,0), (3,3,0);
+
+
+SELECT t2.a,t2.b
+ FROM t2;
+
+SELECT t3.a,t3.b
+ FROM t3;
+
+SELECT t4.a,t4.b
+ FROM t4;
+
+SELECT t3.a,t3.b,t4.a,t4.b
+ FROM t3,t4;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t2.b=t4.b;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b;
+
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t2.b=t4.b
+ WHERE t3.a=1 OR t3.c IS NULL;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t2.b=t4.b
+ WHERE t3.a=1 OR t3.c IS NULL;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t2.b=t4.b
+ WHERE t3.a>1 OR t3.c IS NULL;
+
+SELECT t5.a,t5.b
+ FROM t5;
+
+SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+ FROM t3,t4,t5;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4, t5)
+ ON t2.b=t4.b;
+
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4, t5)
+ ON t2.b=t4.b
+ WHERE t3.a>1 OR t3.c IS NULL;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4, t5)
+ ON t2.b=t4.b
+ WHERE t3.a>1 OR t3.c IS NULL;
+
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4, t5)
+ ON t2.b=t4.b
+ WHERE (t3.a>1 OR t3.c IS NULL) AND
+ (t5.a<3 OR t5.c IS NULL);
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4, t5)
+ ON t2.b=t4.b
+ WHERE (t3.a>1 OR t3.c IS NULL) AND
+ (t5.a<3 OR t5.c IS NULL);
+
+SELECT t6.a,t6.b
+ FROM t6;
+
+SELECT t7.a,t7.b
+ FROM t7;
+
+SELECT t6.a,t6.b,t7.a,t7.b
+ FROM t6,t7;
+
+SELECT t8.a,t8.b
+ FROM t8;
+
+EXPLAIN EXTENDED
+SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10;
+
+SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10;
+
+SELECT t5.a,t5.b
+ FROM t5;
+
+SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b;
+
+SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b AND
+ (t8.a < 1 OR t8.c IS NULL);
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ WHERE t2.a > 3 AND
+ (t6.a < 6 OR t6.c IS NULL);
+
+SELECT t1.a,t1.b
+ FROM t1;
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2);
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2)
+ WHERE (t2.a >= 4 OR t2.c IS NULL);
+
+SELECT t0.a,t0.b
+ FROM t0;
+
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2)
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL);
+
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2)
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL);
+
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+SELECT t9.a,t9.b
+ FROM t9;
+
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+SELECT t1.a,t1.b
+ FROM t1;
+
+SELECT t2.a,t2.b
+ FROM t2;
+
+SELECT t3.a,t3.b
+ FROM t3;
+
+SELECT t2.a,t2.b,t3.a,t3.b
+ FROM t2
+ LEFT JOIN
+ t3
+ ON t2.b=t3.b;
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
+ FROM t1, t2
+ LEFT JOIN
+ t3
+ ON t2.b=t3.b
+ WHERE t1.a <= 2;
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
+ FROM t1, t3
+ RIGHT JOIN
+ t2
+ ON t2.b=t3.b
+ WHERE t1.a <= 2;
+
+SELECT t3.a,t3.b,t4.a,t4.b
+ FROM t3,t4;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b;
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t1, t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b
+ WHERE t1.a <= 2;
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t1, (t3, t4)
+ RIGHT JOIN
+ t2
+ ON t3.a=1 AND t2.b=t4.b
+ WHERE t1.a <= 2;
+
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t1, (t3, t4)
+ RIGHT JOIN
+ t2
+ ON t3.a=1 AND t2.b=t4.b
+ WHERE t1.a <= 2;
+
+EXPLAIN EXTENDED
+SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM t1, (t3, t4)
+ RIGHT JOIN
+ t2
+ ON t3.a=1 AND t2.b=t4.b
+ WHERE t1.a <= 2;
+
+CREATE INDEX idx_b ON t2(b);
+
+EXPLAIN EXTENDED
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM (t3,t4)
+ LEFT JOIN
+ (t1,t2)
+ ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
+
+SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
+ FROM (t3,t4)
+ LEFT JOIN
+ (t1,t2)
+ ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
+
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+CREATE INDEX idx_b ON t4(b);
+CREATE INDEX idx_b ON t5(b);
+
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+CREATE INDEX idx_b ON t8(b);
+
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+CREATE INDEX idx_b ON t1(b);
+CREATE INDEX idx_a ON t0(a);
+
+EXPLAIN EXTENDED
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
+ t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
+ FROM t0,t1
+ LEFT JOIN
+ (
+ t2
+ LEFT JOIN
+ (t3, t4)
+ ON t3.a=1 AND t2.b=t4.b,
+ t5
+ LEFT JOIN
+ (
+ (t6, t7)
+ LEFT JOIN
+ t8
+ ON t7.b=t8.b AND t6.b < 10
+ )
+ ON t6.b >= 2 AND t5.b=t7.b
+ )
+ ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
+ (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
+ (t1.a != 2),
+ t9
+ WHERE t0.a=1 AND
+ t0.b=t1.b AND
+ (t2.a >= 4 OR t2.c IS NULL) AND
+ (t3.a < 5 OR t3.c IS NULL) AND
+ (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
+ (t5.a >=2 OR t5.c IS NULL) AND
+ (t6.a >=4 OR t6.c IS NULL) AND
+ (t7.a <= 2 OR t7.c IS NULL) AND
+ (t8.a < 1 OR t8.c IS NULL) AND
+ (t8.b=t9.b OR t8.c IS NULL) AND
+ (t9.a=1);
+
+SELECT t2.a,t2.b
+ FROM t2;
+
+SELECT t3.a,t3.b
+ FROM t3;
+
+SELECT t2.a,t2.b,t3.a,t3.b
+ FROM t2 LEFT JOIN t3 ON t2.b=t3.b
+ WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
+
+SELECT t2.a,t2.b,t3.a,t3.b
+ FROM t2 LEFT JOIN (t3) ON t2.b=t3.b
+ WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
+
+ALTER TABLE t3
+ CHANGE COLUMN a a1 int,
+ CHANGE COLUMN c c1 int;
+
+SELECT t2.a,t2.b,t3.a1,t3.b
+ FROM t2 LEFT JOIN t3 ON t2.b=t3.b
+ WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
+
+SELECT t2.a,t2.b,t3.a1,t3.b
+ FROM t2 NATURAL LEFT JOIN t3
+ WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
+
+DROP TABLE t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
+
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (a int);
+CREATE TABLE t3 (a int);
+
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (2);
+INSERT INTO t3 VALUES (2);
+INSERT INTO t1 VALUES (2);
+
+#check proper syntax for nested outer joins
+
+SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.a=t3.a;
+
+#must be equivalent to:
+
+SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
+
+#check that everything is al right when all tables contain not more than 1 row
+#(bug #4922)
+
+DELETE FROM t1 WHERE a=2;
+SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
+DELETE FROM t2;
+SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
+
+DROP TABLE t1,t2,t3;
+
+#on expression for a nested outer join does not depend on the outer table
+#bug #4976
+
+CREATE TABLE t1(a int, key (a));
+CREATE TABLE t2(b int, key (b));
+CREATE TABLE t3(c int, key (c));
+
+INSERT INTO t1 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
+
+INSERT INTO t2 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
+(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
+
+INSERT INTO t3 VALUES (0), (1), (2), (3), (4), (5);
+
+EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON c < 3 and b = c;
+EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+
+DELETE FROM t3;
+EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
+
+DROP TABLE t1,t2,t3;
+
+#
+# Test for bug #11284: empty table in a nested left join
+#
+
+CREATE TABLE t1 (c11 int);
+CREATE TABLE t2 (c21 int);
+CREATE TABLE t3 (c31 int);
+
+INSERT INTO t1 VALUES (4), (5);
+
+SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
+
+SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
+EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
+
+DROP TABLE t1,t2,t3;
+
+#
+# Bug #12154: creation of temp table for a query with nested outer join
+#
+
+CREATE TABLE t1 (goods int(12) NOT NULL, price varchar(128) NOT NULL);
+INSERT INTO t1 VALUES (23, 2340), (26, 9900);
+
+CREATE TABLE t2 (goods int(12), name varchar(50), shop char(2));
+INSERT INTO t2 VALUES (23, 'as300', 'fr'), (26, 'as600', 'fr');
+
+create table t3 (groupid int(12) NOT NULL, goodsid int(12) NOT NULL);
+INSERT INTO t3 VALUES (3,23), (6,26);
+
+CREATE TABLE t4 (groupid int(12));
+INSERT INTO t4 VALUES (1), (2), (3), (4), (5), (6);
+
+SELECT * FROM
+(SELECT DISTINCT gl.groupid, gp.price
+ FROM t4 gl
+ LEFT JOIN
+ (t3 g INNER JOIN t2 p ON g.goodsid = p.goods
+ INNER JOIN t1 gp ON p.goods = gp.goods)
+ ON gl.groupid = g.groupid and p.shop = 'fr') t;
+
+CREATE VIEW v1 AS
+SELECT g.groupid groupid, p.goods goods,
+ p.name name, p.shop shop,
+ gp.price price
+ FROM t3 g INNER JOIN t2 p ON g.goodsid = p.goods
+ INNER JOIN t1 gp on p.goods = gp.goods;
+
+CREATE VIEW v2 AS
+SELECT DISTINCT g.groupid, fr.price
+ FROM t4 g
+ LEFT JOIN
+ v1 fr on g.groupid = fr.groupid and fr.shop = 'fr';
+
+SELECT * FROM v2;
+
+SELECT * FROM
+(SELECT DISTINCT g.groupid, fr.price
+ FROM t4 g
+ LEFT JOIN
+ v1 fr on g.groupid = fr.groupid and fr.shop = 'fr') t;
+
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3,t4;
+
+#
+# Bug #13545: problem with NATURAL/USING joins.
+#
+
+CREATE TABLE t1(a int);
+CREATE TABLE t2(b int);
+CREATE TABLE t3(c int, d int);
+CREATE TABLE t4(d int);
+CREATE TABLE t5(e int, f int);
+CREATE TABLE t6(f int);
+CREATE VIEW v1 AS
+ SELECT e FROM t5 JOIN t6 ON t5.e=t6.f;
+CREATE VIEW v2 AS
+ SELECT e FROM t5 NATURAL JOIN t6;
+
+SELECT t1.a FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c JOIN t4 USING(d);
+--error 1054
+SELECT t1.x FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c JOIN t4 USING(d);
+SELECT t1.a FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c NATURAL JOIN t4;
+--error 1054
+SELECT t1.x FROM t1 JOIN t2 ON a=b JOIN t3 ON a=c NATURAL JOIN t4;
+SELECT v1.e FROM v1 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+--error 1054
+SELECT v1.x FROM v1 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+SELECT v2.e FROM v2 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+--error 1054
+SELECT v2.x FROM v2 JOIN t2 ON e=b JOIN t3 ON e=c JOIN t4 USING(d);
+
+DROP VIEW v1, v2;
+DROP TABLE t1, t2, t3, t4, t5, t6;
+
+#
+# BUG#13126 -test case from bug report
+#
+create table t1 (id1 int(11) not null);
+insert into t1 values (1),(2);
+
+create table t2 (id2 int(11) not null);
+insert into t2 values (1),(2),(3),(4);
+
+create table t3 (id3 char(16) not null);
+insert into t3 values ('100');
+
+create table t4 (id2 int(11) not null, id3 char(16));
+
+create table t5 (id1 int(11) not null, key (id1));
+insert into t5 values (1),(2),(1);
+
+create view v1 as
+ select t4.id3 from t4 join t2 on t4.id2 = t2.id2;
+
+select t1.id1 from t1 inner join (t3 left join v1 on t3.id3 = v1.id3);
+
+drop view v1;
+drop table t1, t2, t3, t4, t5;
+
+create table t0 (a int);
+insert into t0 values (0),(1),(2),(3);
+create table t1(a int);
+insert into t1 select A.a + 10*(B.a) from t0 A, t0 B;
+
+create table t2 (a int, b int);
+insert into t2 values (1,1), (2,2), (3,3);
+
+create table t3(a int, b int, filler char(200), key(a));
+insert into t3 select a,a,'filler' from t1;
+insert into t3 select a,a,'filler' from t1;
+
+create table t4 like t3;
+insert into t4 select * from t3;
+insert into t4 select * from t3;
+
+create table t5 like t4;
+insert into t5 select * from t4;
+insert into t5 select * from t4;
+
+create table t6 like t5;
+insert into t6 select * from t5;
+insert into t6 select * from t5;
+
+create table t7 like t6;
+insert into t7 select * from t6;
+insert into t7 select * from t6;
+
+--replace_column 9 X
+explain select * from t4 join
+ t2 left join (t3 join t5 on t5.a=t3.b) on t3.a=t2.b where t4.a<=>t3.b;
+
+--replace_column 9 X
+explain select * from (t4 join t6 on t6.a=t4.b) right join t3 on t4.a=t3.b
+ join t2 left join (t5 join t7 on t7.a=t5.b) on t5.a=t2.b where t3.a<=>t2.b;
+
+--replace_column 9 X
+explain select * from t2 left join
+ (t3 left join (t4 join t6 on t6.a=t4.b) on t4.a=t3.b
+ join t5 on t5.a=t3.b) on t3.a=t2.b;
+
+drop table t0, t1, t2, t3, t4, t5, t6, t7;
+
+# BUG#16393
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, filler char(100), key(a));
+insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
+create table t3 like t2;
+insert into t3 select * from t2;
+
+explain select * from t1 left join
+ (t2 left join t3 on (t2.a = t3.a))
+ on (t1.a = t2.a);
+drop table t1, t2, t3;
+
+#
+# Bug #16260: single row table in the inner nest of an outer join
+#
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, type varchar(10));
+CREATE TABLE t2 (pid int NOT NULL PRIMARY KEY, type varchar(10));
+CREATE TABLE t3 (cid int NOT NULL PRIMARY KEY,
+ id int NOT NULL,
+ pid int NOT NULL);
+
+INSERT INTO t1 VALUES (1, 'A'), (3, 'C');
+INSERT INTO t2 VALUES (1, 'A'), (3, 'C');
+INSERT INTO t3 VALUES (1, 1, 1), (3, 3, 3);
+
+SELECT * FROM t1 p LEFT JOIN (t3 JOIN t1)
+ ON (t1.id=t3.id AND t1.type='B' AND p.id=t3.id)
+ LEFT JOIN t2 ON (t3.pid=t2.pid)
+ WHERE p.id=1;
+
+CREATE VIEW v1 AS
+ SELECT t3.* FROM t3 JOIN t1 ON t1.id=t3.id AND t1.type='B';
+
+SELECT * FROM t1 p LEFT JOIN v1 ON p.id=v1.id
+ LEFT JOIN t2 ON v1.pid=t2.pid
+ WHERE p.id=1;
+
+DROP VIEW v1;
+DROP TABLE t1,t2,t3;
+
+
+#
+# Test for bug #18279: crash when on conditions are moved out of a nested join
+# to the on conditions for the nest
+
+CREATE TABLE t1 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t2 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t3 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t4 (id1 int PRIMARY KEY, id2 int);
+CREATE TABLE t5 (id1 int PRIMARY KEY, id2 int);
+
+SELECT t1.id1 AS id, t5.id1 AS ngroupbynsa
+ FROM t1 INNER JOIN t2 ON t2.id2 = t1.id1
+ LEFT OUTER JOIN
+ (t3 INNER JOIN t4 ON t4.id1 = t3.id2 INNER JOIN t5 ON t4.id2 = t5.id1)
+ ON t3.id2 IS NOT NULL
+ WHERE t1.id1=2;
+
+PREPARE stmt FROM
+"SELECT t1.id1 AS id, t5.id1 AS ngroupbynsa
+ FROM t1 INNER JOIN t2 ON t2.id2 = t1.id1
+ LEFT OUTER JOIN
+ (t3 INNER JOIN t4 ON t4.id1 = t3.id2 INNER JOIN t5 ON t4.id2 = t5.id1)
+ ON t3.id2 IS NOT NULL
+ WHERE t1.id1=2";
+
+EXECUTE stmt;
+EXECUTE stmt;
+EXECUTE stmt;
+EXECUTE stmt;
+
+INSERT INTO t1 VALUES (1,1), (2,1), (3,2);
+INSERT INTO t2 VALUES (2,1), (3,2), (4,3);
+INSERT INTO t3 VALUES (1,1), (3,2), (2,NULL);
+INSERT INTO t4 VALUES (1,1), (2,1), (3,3);
+INSERT INTO t5 VALUES (1,1), (2,2), (3,3), (4,3);
+
+EXECUTE stmt;
+EXECUTE stmt;
+EXECUTE stmt;
+EXECUTE stmt;
+
+SELECT t1.id1 AS id, t5.id1 AS ngroupbynsa
+ FROM t1 INNER JOIN t2 ON t2.id2 = t1.id1
+ LEFT OUTER JOIN
+ (t3 INNER JOIN t4 ON t4.id1 = t3.id2 INNER JOIN t5 ON t4.id2 = t5.id1)
+ ON t3.id2 IS NOT NULL
+ WHERE t1.id1=2;
+
+DROP TABLE t1,t2,t3,t4,t5;
+
+#
+# Test for bug #24345: crash with nested left outer join when outer table is substituted
+# for a row that happens to have a null value for the join attribute.
+#
+
+CREATE TABLE t1 (
+ id int NOT NULL PRIMARY KEY,
+ ct int DEFAULT NULL,
+ pc int DEFAULT NULL,
+ INDEX idx_ct (ct),
+ INDEX idx_pc (pc)
+);
+INSERT INTO t1 VALUES
+ (1,NULL,NULL),(2,NULL,NULL),(3,NULL,NULL),(4,NULL,NULL),(5,NULL,NULL);
+
+CREATE TABLE t2 (
+ id int NOT NULL PRIMARY KEY,
+ sr int NOT NULL,
+ nm varchar(255) NOT NULL,
+ INDEX idx_sr (sr)
+);
+INSERT INTO t2 VALUES
+ (2441905,4308,'LesAbymes'),(2441906,4308,'Anse-Bertrand');
+
+CREATE TABLE t3 (
+ id int NOT NULL PRIMARY KEY,
+ ct int NOT NULL,
+ ln int NOT NULL,
+ INDEX idx_ct (ct),
+ INDEX idx_ln (ln)
+);
+
+CREATE TABLE t4 (
+ id int NOT NULL PRIMARY KEY,
+ nm varchar(255) NOT NULL
+);
+
+INSERT INTO t4 VALUES (4308,'Guadeloupe'),(4309,'Martinique');
+
+SELECT t1.*
+ FROM t1 LEFT JOIN
+ (t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
+ WHERE t1.id='5';
+
+SELECT t1.*, t4.nm
+ FROM t1 LEFT JOIN
+ (t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
+ LEFT JOIN t4 ON t2.sr=t4.id
+ WHERE t1.id='5';
+
+DROP TABLE t1,t2,t3,t4;
+
+#
+# BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
+#
+CREATE TABLE t1 (a INT, b INT);
+CREATE TABLE t2 (a INT);
+CREATE TABLE t3 (a INT, c INT);
+CREATE TABLE t4 (a INT, c INT);
+CREATE TABLE t5 (a INT, c INT);
+
+SELECT b FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
+LEFT JOIN t5 USING (a)) USING (a);
+
+--error ER_NON_UNIQ_ERROR
+SELECT c FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
+LEFT JOIN t5 USING (a)) USING (a);
+
+SELECT b FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
+JOIN t5 USING (a)) USING (a);
+
+--error ER_NON_UNIQ_ERROR
+SELECT c FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
+JOIN t5 USING (a)) USING (a);
+
+DROP TABLE t1,t2,t3,t4,t5;
+CREATE TABLE t1 (a INT, b INT);
+CREATE TABLE t2 (a INT, b INT);
+CREATE TABLE t3 (a INT, b INT);
+
+INSERT INTO t1 VALUES (1,1);
+INSERT INTO t2 VALUES (1,1);
+INSERT INTO t3 VALUES (1,1);
+
+--error ER_NON_UNIQ_ERROR
+SELECT * FROM t1 JOIN (t2 JOIN t3 USING (b)) USING (a);
+
+DROP TABLE t1,t2,t3;
+
+#
+# BUG#29604: inner nest of left join interleaves with outer tables
+#
+
+CREATE TABLE t1 (
+ carrier char(2) default NULL,
+ id int NOT NULL auto_increment PRIMARY KEY
+);
+INSERT INTO t1 VALUES
+ ('CO',235371754),('CO',235376554),('CO',235376884),('CO',235377874),
+ ('CO',231060394),('CO',231059224),('CO',231059314),('CO',231060484),
+ ('CO',231060274),('CO',231060124),('CO',231060244),('CO',231058594),
+ ('CO',231058924),('CO',231058504),('CO',231059344),('CO',231060424),
+ ('CO',231059554),('CO',231060304),('CO',231059644),('CO',231059464),
+ ('CO',231059764),('CO',231058294),('CO',231058624),('CO',231058864),
+ ('CO',231059374),('CO',231059584),('CO',231059734),('CO',231059014),
+ ('CO',231059854),('CO',231059494),('CO',231059794),('CO',231058534),
+ ('CO',231058324),('CO',231058684),('CO',231059524),('CO',231059974);
+
+CREATE TABLE t2 (
+ scan_date date default NULL,
+ package_id int default NULL,
+ INDEX scan_date(scan_date),
+ INDEX package_id(package_id)
+);
+INSERT INTO t2 VALUES
+ ('2008-12-29',231062944),('2008-12-29',231065764),('2008-12-29',231066124),
+ ('2008-12-29',231060094),('2008-12-29',231061054),('2008-12-29',231065644),
+ ('2008-12-29',231064384),('2008-12-29',231064444),('2008-12-29',231073774),
+ ('2008-12-29',231058594),('2008-12-29',231059374),('2008-12-29',231066004),
+ ('2008-12-29',231068494),('2008-12-29',231070174),('2008-12-29',231071884),
+ ('2008-12-29',231063274),('2008-12-29',231063754),('2008-12-29',231064144),
+ ('2008-12-29',231069424),('2008-12-29',231073714),('2008-12-29',231058414),
+ ('2008-12-29',231060994),('2008-12-29',231069154),('2008-12-29',231068614),
+ ('2008-12-29',231071464),('2008-12-29',231074014),('2008-12-29',231059614),
+ ('2008-12-29',231059074),('2008-12-29',231059464),('2008-12-29',231069094),
+ ('2008-12-29',231067294),('2008-12-29',231070144),('2008-12-29',231073804),
+ ('2008-12-29',231072634),('2008-12-29',231058294),('2008-12-29',231065344),
+ ('2008-12-29',231066094),('2008-12-29',231069034),('2008-12-29',231058594),
+ ('2008-12-29',231059854),('2008-12-29',231059884),('2008-12-29',231059914),
+ ('2008-12-29',231063664),('2008-12-29',231063814),('2008-12-29',231063904);
+
+CREATE TABLE t3 (
+ package_id int default NULL,
+ INDEX package_id(package_id)
+);
+INSERT INTO t3 VALUES
+ (231058294),(231058324),(231058354),(231058384),(231058414),(231058444),
+ (231058474),(231058504),(231058534),(231058564),(231058594),(231058624),
+ (231058684),(231058744),(231058804),(231058864),(231058924),(231058954),
+ (231059014),(231059074),(231059104),(231059134),(231059164),(231059194),
+ (231059224),(231059254),(231059284),(231059314),(231059344),(231059374),
+ (231059404),(231059434),(231059464),(231059494),(231059524),(231059554),
+ (231059584),(231059614),(231059644),(231059674),(231059704),(231059734),
+ (231059764),(231059794),(231059824),(231059854),(231059884),(231059914),
+ (231059944),(231059974),(231060004),(231060034),(231060064),(231060094),
+ (231060124),(231060154),(231060184),(231060214),(231060244),(231060274),
+ (231060304),(231060334),(231060364),(231060394),(231060424),(231060454),
+ (231060484),(231060514),(231060544),(231060574),(231060604),(231060634),
+ (231060664),(231060694),(231060724),(231060754),(231060784),(231060814),
+ (231060844),(231060874),(231060904),(231060934),(231060964),(231060994),
+ (231061024),(231061054),(231061084),(231061144),(231061174),(231061204),
+ (231061234),(231061294),(231061354),(231061384),(231061414),(231061474),
+ (231061564),(231061594),(231061624),(231061684),(231061714),(231061774),
+ (231061804),(231061894),(231061984),(231062074),(231062134),(231062224),
+ (231062254),(231062314),(231062374),(231062434),(231062494),(231062554),
+ (231062584),(231062614),(231062644),(231062704),(231062734),(231062794),
+ (231062854),(231062884),(231062944),(231063004),(231063034),(231063064),
+ (231063124),(231063154),(231063184),(231063214),(231063274),(231063334),
+ (231063394),(231063424),(231063454),(231063514),(231063574),(231063664);
+
+CREATE TABLE t4 (
+ carrier char(2) NOT NULL default '' PRIMARY KEY,
+ id int(11) default NULL,
+ INDEX id(id)
+);
+INSERT INTO t4 VALUES
+ ('99',6),('SK',456),('UA',486),('AI',1081),('OS',1111),('VS',1510);
+
+CREATE TABLE t5 (
+ carrier_id int default NULL,
+ INDEX carrier_id(carrier_id)
+);
+INSERT INTO t5 VALUES
+ (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+ (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+ (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+ (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+ (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
+ (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(456),(456),(456),
+ (456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),
+ (456),(486),(1081),(1111),(1111),(1111),(1111),(1510);
+
+SELECT COUNT(*)
+ FROM((t2 JOIN t1 ON t2.package_id = t1.id)
+ JOIN t3 ON t3.package_id = t1.id);
+
+EXPLAIN
+SELECT COUNT(*)
+ FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
+ JOIN t3 ON t3.package_id = t1.id)
+ LEFT JOIN
+ (t5 JOIN t4 ON t5.carrier_id = t4.id)
+ ON t4.carrier = t1.carrier;
+SELECT COUNT(*)
+ FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
+ JOIN t3 ON t3.package_id = t1.id)
+ LEFT JOIN
+ (t5 JOIN t4 ON t5.carrier_id = t4.id)
+ ON t4.carrier = t1.carrier;
+
+DROP TABLE t1,t2,t3,t4,t5;
+
+--echo End of 5.0 tests
+
diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test
index 05cd2fb152e..1a59dbf8fc2 100644
--- a/mysql-test/t/join_outer.test
+++ b/mysql-test/t/join_outer.test
@@ -3,7 +3,7 @@
#
--disable_warnings
-drop table if exists t1,t2,t3,t4,t5;
+drop table if exists t0,t1,t2,t3,t4,t5;
--enable_warnings
CREATE TABLE t1 (
@@ -34,13 +34,13 @@ explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
# The next query should rearange the left joins to get this to work
---error 1120
+--error 1054
explain select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t1.a=t3.a);
---error 1120
+--error 1054
select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t1.a=t3.a);
# The next query should give an error in MySQL
---error 1120
+--error 1054
select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
# Test of inner join
@@ -135,7 +135,7 @@ INSERT INTO t1 VALUES (10363,'Tecniques de Comunicacio Oral i Escrita','Tecnicas
INSERT INTO t1 VALUES (11403,'Projecte Fi de Carrera','Proyecto Fin de Carrera','Projecte Fi de Carrera','PFC',9.0,NULL,NULL,NULL);
INSERT INTO t1 VALUES (11404,'+lgebra lineal','Algebra lineal','+lgebra lineal','+lgebra lineal',15.0,NULL,NULL,NULL);
INSERT INTO t1 VALUES (11405,'+lgebra lineal','Algebra lineal','+lgebra lineal','+lgebra lineal',18.0,NULL,NULL,NULL);
-INSERT INTO t1 VALUES (11406,'Calcul Infinitesimal','Cßlculo Infinitesimal','Calcul Infinitesimal','Calcul Infinitesimal',15.0,NULL,NULL,NULL);
+INSERT INTO t1 VALUES (11406,'Calcul Infinitesimal','Cßlculo Infinitesimal','Calcul Infinitesimal','Calcul Infinitesimal',15.0,NULL,NULL,NULL);
CREATE TABLE t2 (
idAssignatura int(11) DEFAULT '0' NOT NULL,
@@ -292,7 +292,7 @@ insert into t3 values (1);
insert into t4 values (1,1);
insert into t5 values (1,1);
---error 1120
+--error 1054
explain select * from t3 left join t4 on t4.seq_1_id = t2.t2_id left join t1 on t1.t1_id = t4.seq_0_id left join t5 on t5.seq_0_id = t1.t1_id left join t2 on t2.t2_id = t5.seq_1_id where t3.t3_id = 23;
drop table t1,t2,t3,t4,t5;
@@ -430,6 +430,10 @@ insert into t1 values(1),(2);
insert into t2 values(2),(3);
insert into t3 values(2),(4);
select * from t1 natural left join t2 natural left join t3;
+select * from t1 natural left join t2 where (t2.i is not null)=0;
+select * from t1 natural left join t2 where (t2.i is not null) is not null;
+select * from t1 natural left join t2 where (i is not null)=0;
+select * from t1 natural left join t2 where (i is not null) is not null;
drop table t1,t2,t3;
#
@@ -438,7 +442,6 @@ drop table t1,t2,t3;
create table t1 (f1 integer,f2 integer,f3 integer);
create table t2 (f2 integer,f4 integer);
create table t3 (f3 integer,f5 integer);
---error 1054
select * from t1
left outer join t2 using (f2)
left outer join t3 using (f3);
@@ -567,34 +570,68 @@ SELECT t1.flag_name,t2.flag_value
DROP TABLE t1,t2;
-CREATE TABLE invoice (
+CREATE TABLE t1 (
id int(11) unsigned NOT NULL auto_increment,
text_id int(10) unsigned default NULL,
PRIMARY KEY (id)
);
-INSERT INTO invoice VALUES("1", "0");
-INSERT INTO invoice VALUES("2", "10");
+INSERT INTO t1 VALUES("1", "0");
+INSERT INTO t1 VALUES("2", "10");
-CREATE TABLE text_table (
+CREATE TABLE t2 (
text_id char(3) NOT NULL default '',
language_id char(3) NOT NULL default '',
text_data text,
PRIMARY KEY (text_id,language_id)
);
-INSERT INTO text_table VALUES("0", "EN", "0-EN");
-INSERT INTO text_table VALUES("0", "SV", "0-SV");
-INSERT INTO text_table VALUES("10", "EN", "10-EN");
-INSERT INTO text_table VALUES("10", "SV", "10-SV");
+INSERT INTO t2 VALUES("0", "EN", "0-EN");
+INSERT INTO t2 VALUES("0", "SV", "0-SV");
+INSERT INTO t2 VALUES("10", "EN", "10-EN");
+INSERT INTO t2 VALUES("10", "SV", "10-SV");
+SELECT t1.id, t1.text_id, t2.text_data
+ FROM t1 LEFT JOIN t2
+ ON t1.text_id = t2.text_id
+ AND t2.language_id = 'SV'
+ WHERE (t1.id LIKE '%' OR t2.text_data LIKE '%');
+
+DROP TABLE t1, t2;
+
+# Test for bug #5896
+
+CREATE TABLE t0 (a0 int PRIMARY KEY);
+CREATE TABLE t1 (a1 int PRIMARY KEY);
+CREATE TABLE t2 (a2 int);
+CREATE TABLE t3 (a3 int);
+INSERT INTO t0 VALUES (1);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1), (2);
+INSERT INTO t3 VALUES (1), (2);
+
+SELECT * FROM t1 LEFT JOIN t2 ON a1=0;
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON a1=0;
+SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
+EXPLAIN SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
+SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
+EXPLAIN SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
+
+INSERT INTO t0 VALUES (0);
+INSERT INTO t1 VALUES (0);
+SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=5 WHERE a0=a1 AND a0=1;
+EXPLAIN SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=5 WHERE a0=a1 AND a0=1;
+
+# Test for BUG#4480
+drop table t1,t2;
+create table t1 (a int, b int);
+insert into t1 values (1,1),(2,2),(3,3);
+create table t2 (a int, b int);
+insert into t2 values (1,1), (2,2);
-SELECT invoice.id, invoice.text_id, text_table.text_data
- FROM invoice LEFT JOIN text_table
- ON invoice.text_id = text_table.text_id
- AND text_table.language_id = 'SV'
- WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%');
+select * from t2 right join t1 on t2.a=t1.a;
+select straight_join * from t2 right join t1 on t2.a=t1.a;
-DROP TABLE invoice, text_table;
+DROP TABLE t0,t1,t2,t3;
#
# Test for bug #9017: left join mistakingly converted to inner join
@@ -622,9 +659,60 @@ insert into t1 values (1,"aaaaaaaaaa"),(2,"bbbbbbbbbb");
insert into t2 values (1,"cccccccccc"),(2,"dddddddddd");
select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by t1.a;
select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by t1.a;
+select group_concat(t1.b,t2.c) from t1 left join t2 using(a) group by a;
+select group_concat(t1.b,t2.c) from t1 inner join t2 using(a) group by a;
drop table t1, t2;
set group_concat_max_len=default;
+# End of 4.1 tests
+
+#
+# BUG#10162 - ON is merged with WHERE, left join is convered to a regular join
+#
+create table t1 (gid smallint(5) unsigned not null, x int(11) not null, y int(11) not null, art int(11) not null, primary key (gid,x,y));
+insert t1 values (1, -5, -8, 2), (1, 2, 2, 1), (1, 1, 1, 1);
+create table t2 (gid smallint(5) unsigned not null, x int(11) not null, y int(11) not null, id int(11) not null, primary key (gid,id,x,y), key id (id));
+insert t2 values (1, -5, -8, 1), (1, 1, 1, 1), (1, 2, 2, 1);
+create table t3 ( set_id smallint(5) unsigned not null, id tinyint(4) unsigned not null, name char(12) not null, primary key (id,set_id));
+insert t3 values (0, 1, 'a'), (1, 1, 'b'), (0, 2, 'c'), (1, 2, 'd'), (1, 3, 'e'), (1, 4, 'f'), (1, 5, 'g'), (1, 6, 'h');
+explain select name from t1 left join t2 on t1.x = t2.x and t1.y = t2.y
+left join t3 on t1.art = t3.id where t2.id =1 and t2.x = -5 and t2.y =-8
+and t1.gid =1 and t2.gid =1 and t3.set_id =1;
+drop tables t1,t2,t3;
+
+#
+# Test for bug #9938: invalid conversion from outer join to inner join
+# for queries containing indirect reference in WHERE clause
+#
+
+CREATE TABLE t1 (EMPNUM INT, GRP INT);
+INSERT INTO t1 VALUES (0, 10);
+INSERT INTO t1 VALUES (2, 30);
+
+CREATE TABLE t2 (EMPNUM INT, NAME CHAR(5));
+INSERT INTO t2 VALUES (0, 'KERI');
+INSERT INTO t2 VALUES (9, 'BARRY');
+
+CREATE VIEW v1 AS
+SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS EMPNUM, NAME, GRP
+ FROM t2 LEFT OUTER JOIN t1 ON t2.EMPNUM=t1.EMPNUM;
+
+SELECT * FROM v1;
+SELECT * FROM v1 WHERE EMPNUM < 10;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Test for bug #11285: false Item_equal on expression in outer join
+#
+
+CREATE TABLE t1 (c11 int);
+CREATE TABLE t2 (c21 int);
+INSERT INTO t1 VALUES (30), (40), (50);
+INSERT INTO t2 VALUES (300), (400), (500);
+SELECT * FROM t1 LEFT JOIN t2 ON (c11=c21 AND c21=30) WHERE c11=40;
+DROP TABLE t1, t2;
#
# Test for bugs
# #12101: erroneously applied outer join elimination in case of WHERE NOT BETWEEN
@@ -671,4 +759,105 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b
DROP TABLE t1,t2;
-# End of 4.1 tests
+#
+# Bug 19396: LEFT OUTER JOIN over views in curly braces
+#
+--disable_warnings
+DROP VIEW IF EXISTS v1,v2;
+DROP TABLE IF EXISTS t1,t2;
+--enable_warnings
+
+CREATE TABLE t1 (a int);
+CREATE table t2 (b int);
+INSERT INTO t1 VALUES (1), (2), (3), (4), (1), (1), (3);
+INSERT INTO t2 VALUES (2), (3);
+
+CREATE VIEW v1 AS SELECT a FROM t1 JOIN t2 ON t1.a=t2.b;
+CREATE VIEW v2 AS SELECT b FROM t2 JOIN t1 ON t2.b=t1.a;
+
+SELECT v1.a, v2. b
+ FROM v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3)
+ GROUP BY v1.a;
+SELECT v1.a, v2. b
+ FROM { OJ v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3) }
+ GROUP BY v1.a;
+
+DROP VIEW v1,v2;
+DROP TABLE t1,t2;
+
+#
+# Bug 19816: LEFT OUTER JOIN with constant ORed predicates in WHERE clause
+#
+
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+INSERT INTO t2 VALUES (2), (3);
+
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1);
+
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1 OR 1);
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (0 OR 1);
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 2=2);
+SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 1=0);
+
+DROP TABLE t1,t2;
+
+#
+# Bug 26017: LEFT OUTER JOIN over two constant tables and
+# a case-insensitive comparison predicate field=const
+#
+
+CREATE TABLE t1 (
+ f1 varchar(16) collate latin1_swedish_ci PRIMARY KEY,
+ f2 varchar(16) collate latin1_swedish_ci
+);
+CREATE TABLE t2 (
+ f1 varchar(16) collate latin1_swedish_ci PRIMARY KEY,
+ f3 varchar(16) collate latin1_swedish_ci
+);
+
+INSERT INTO t1 VALUES ('bla','blah');
+INSERT INTO t2 VALUES ('bla','sheep');
+
+SELECT * FROM t1 JOIN t2 USING(f1) WHERE f1='Bla';
+SELECT * FROM t1 LEFT JOIN t2 USING(f1) WHERE f1='bla';
+SELECT * FROM t1 LEFT JOIN t2 USING(f1) WHERE f1='Bla';
+
+DROP TABLE t1,t2;
+
+#
+# Bug 28188: 'not exists' optimization for outer joins
+#
+
+CREATE TABLE t1 (id int PRIMARY KEY, a varchar(8));
+CREATE TABLE t2 (id int NOT NULL, b int NOT NULL, INDEX idx(id));
+INSERT INTO t1 VALUES
+ (1,'aaaaaaa'), (5,'eeeeeee'), (4,'ddddddd'), (2,'bbbbbbb'), (3,'ccccccc');
+INSERT INTO t2 VALUES
+ (3,10), (2,20), (5,30), (3,20), (5,10), (3,40), (3,30), (2,10), (2,40);
+
+EXPLAIN
+SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
+
+flush status;
+SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
+show status like 'Handler_read%';
+
+DROP TABLE t1,t2;
+
+#
+# Bug 28571: outer join with false on condition over constant tables
+#
+
+CREATE TABLE t1 (c int PRIMARY KEY, e int NOT NULL);
+INSERT INTO t1 VALUES (1,0), (2,1);
+CREATE TABLE t2 (d int PRIMARY KEY);
+INSERT INTO t2 VALUES (1), (2), (3);
+
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
+SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
+SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d<=>NULL;
+
+DROP TABLE t1,t2;
+
diff --git a/mysql-test/t/key.test b/mysql-test/t/key.test
index 9aab8a13b06..3d0e68dc0f3 100644
--- a/mysql-test/t/key.test
+++ b/mysql-test/t/key.test
@@ -129,7 +129,11 @@ create table t2
INSERT t2 select * from t1;
SELECT * FROM t2 WHERE name='[T,U]_axpy';
SELECT * FROM t2 WHERE name='[T,U]_axpby';
-drop table t1,t2;
+# Test possible problems with warnings in CREATE ... SELECT
+CREATE TABLE t3 SELECT * FROM t2 WHERE name='[T,U]_axpby';
+SELECT * FROM t2 WHERE name='[T,U]_axpby';
+
+drop table t1,t2,t3;
#
# Test bug with long primary key
@@ -295,7 +299,7 @@ drop table t1;
# create dedicated error code for this and
# and change my_printf_error() to my_error
---error 1105
+--error 1391
create table t1 (c char(10), index (c(0)));
#
@@ -348,5 +352,95 @@ insert into t1 values (2,' \t\tTest String');
insert into t1 values (3,' \n\tTest String');
update t1 set c2 = 'New Test String' where c1 = 1;
select * from t1;
+drop table t1;
+
+#
+# If we use a partial field for a key that is actually the length of the
+# field, and we extend the field, we end up with a key that includes the
+# whole new length of the field.
+#
+create table t1 (a varchar(10), b varchar(10), key(a(10),b(10)));
+show create table t1;
+alter table t1 modify b varchar(20);
+show create table t1;
+alter table t1 modify a varchar(20);
+show create table t1;
+drop table t1;
+
+#
+# Bug #11227: Incorrectly reporting 'MUL' vs. 'UNI' on varchar
+#
+create table t1 (a int not null primary key, b varchar(20) not null unique);
+desc t1;
+drop table t1;
+create table t1 (a int not null primary key, b int not null unique);
+desc t1;
+drop table t1;
+create table t1 (a int not null primary key, b varchar(20) not null, unique (b(10)));
+desc t1;
+drop table t1;
+create table t1 (a int not null primary key, b varchar(20) not null, c varchar(20) not null, unique(b(10),c(10)));
+desc t1;
+drop table t1;
# End of 4.1 tests
+
+#
+# Bug #24778: Innodb: No result when using ORDER BY
+#
+CREATE TABLE t1 (
+ a INTEGER auto_increment PRIMARY KEY,
+ b INTEGER NOT NULL,
+ c INTEGER NOT NULL,
+ d CHAR(64)
+);
+
+CREATE TABLE t2 (
+ a INTEGER auto_increment PRIMARY KEY,
+ b INTEGER NOT NULL,
+ c SMALLINT NOT NULL,
+ d DATETIME NOT NULL,
+ e SMALLINT NOT NULL,
+ f INTEGER NOT NULL,
+ g INTEGER NOT NULL,
+ h SMALLINT NOT NULL,
+ i INTEGER NOT NULL,
+ j INTEGER NOT NULL,
+ UNIQUE INDEX (b),
+ INDEX (b, d, e, f, g, h, i, j, c),
+ INDEX (c)
+);
+
+INSERT INTO t2 VALUES
+ (NULL, 1, 254, '1000-01-01 00:00:00', 257, 0, 0, 0, 0, 0),
+ (NULL, 2, 1, '2004-11-30 12:00:00', 1, 0, 0, 0, 0, 0),
+ (NULL, 3, 1, '2004-11-30 12:00:00', 1, 0, 0, 2, -21600, 0),
+ (NULL, 4, 1, '2004-11-30 12:00:00', 1, 0, 0, 2, -10800, 0),
+ (NULL, 5, 1, '2004-11-30 12:00:00', 1, 0, 0, 5, -10800, 0),
+ (NULL, 6, 1, '2004-11-30 12:00:00', 102, 0, 0, 0, 0, 0),
+ (NULL, 7, 1, '2004-11-30 12:00:00', 105, 2, 0, 0, 0, 0),
+ (NULL, 8, 1, '2004-11-30 12:00:00', 105, 10, 0, 0, 0, 0);
+
+INSERT INTO t1 (b, c, d) VALUES
+ (3388000, -553000, NULL),
+ (3388000, -553000, NULL);
+
+SELECT *
+FROM t2 c JOIN t1 pa ON c.b = pa.a
+WHERE c.c = 1
+ORDER BY c.b, c.d
+;
+
+DROP TABLE t1, t2;
+
+
+#
+# Bug #20604: Test for disabled keys with aggregate functions and FORCE INDEX.
+#
+CREATE TABLE t1( a TINYINT, KEY(a) ) ENGINE=MyISAM;
+INSERT INTO t1 VALUES( 1 );
+ALTER TABLE t1 DISABLE KEYS;
+EXPLAIN SELECT MAX(a) FROM t1 FORCE INDEX(a);
+DROP TABLE t1;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/key_cache.test b/mysql-test/t/key_cache.test
index 6e772a7a9ad..4c14dc96aaa 100644
--- a/mysql-test/t/key_cache.test
+++ b/mysql-test/t/key_cache.test
@@ -164,16 +164,19 @@ create table t1 (mytext text, FULLTEXT (mytext));
insert t1 values ('aaabbb');
check table t1;
+set @my_key_cache_block_size= @@global.key_cache_block_size;
set GLOBAL key_cache_block_size=2048;
check table t1;
-
drop table t1;
+# Restore the changed variable value
+set global key_cache_block_size= @my_key_cache_block_size;
#
# Bug #19079: corrupted index when key_cache_block_size is not multiple of
# myisam_block_size
CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY);
+SET @my_key_cache_block_size= @@global.key_cache_block_size;
SET GLOBAL key_cache_block_size=1536;
INSERT INTO t1 VALUES (1);
SELECT @@key_cache_block_size;
@@ -206,5 +209,41 @@ SELECT COUNT(*) FROM t1;
SELECT @@key_cache_block_size;
CHECK TABLE t1;
DROP TABLE t1,t2;
+# Restore changed variables
+set global key_cache_block_size= @my_key_cache_block_size;
+
+#
+# Bug#10473 - Can't set 'key_buffer_size' system variable to ZERO
+# (One cannot drop the default key cache.)
+#
+set @@global.key_buffer_size=0;
+select @@global.key_buffer_size;
+
+#
+# Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
+#
+SET @bug28478_key_cache_block_size= @@global.key_cache_block_size;
+SET GLOBAL key_cache_block_size= 1536;
+CREATE TABLE t1 (
+ id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ c1 CHAR(150),
+ c2 CHAR(150),
+ c3 CHAR(150),
+ KEY(c1, c2, c3)
+ ) ENGINE= MyISAM;
+INSERT INTO t1 (c1, c2, c3) VALUES
+ ('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
+ ('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
+ ('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
+ ('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
+ ('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
+ ('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
+INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
+INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
+INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
+CHECK TABLE t1;
+SHOW VARIABLES LIKE 'key_cache_block_size';
+SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
+DROP TABLE t1;
# End of 4.1 tests
diff --git a/mysql-test/t/keywords.test b/mysql-test/t/keywords.test
index 96c3dc3f17c..46933a230ee 100644
--- a/mysql-test/t/keywords.test
+++ b/mysql-test/t/keywords.test
@@ -6,10 +6,12 @@
drop table if exists t1;
--enable_warnings
-create table t1 (time time, date date, timestamp timestamp);
-insert into t1 values ("12:22:22","97:02:03","1997-01-02");
+create table t1 (time time, date date, timestamp timestamp,
+quarter int, week int, year int, timestampadd int, timestampdiff int);
+insert into t1 values ("12:22:22","97:02:03","1997-01-02",1,2,3,4,5);
select * from t1;
-select t1.time+0,t1.date+0,t1.timestamp+0,concat(date," ",time) from t1;
+select t1.time+0,t1.date+0,t1.timestamp+0,concat(date," ",time),
+ t1.quarter+t1.week, t1.year+timestampadd, timestampdiff from t1;
drop table t1;
create table events(binlog int);
insert into events values(1);
@@ -17,3 +19,25 @@ select events.binlog from events;
drop table events;
# End of 4.1 tests
+
+
+#
+# Bug#12204 - CONNECTION should not be a reserved word
+#
+
+create table t1 (connection int, b int);
+delimiter |;
+create procedure p1()
+begin
+ declare connection int;
+ select max(t1.connection) into connection from t1;
+ select concat("max=",connection) 'p1';
+end|
+delimiter ;|
+insert into t1 (connection) values (1);
+call p1();
+drop procedure p1;
+drop table t1;
+
+
+# End of 5.0 tests
diff --git a/mysql-test/t/kill.test b/mysql-test/t/kill.test
index 1cf871d5f9f..cedca9db3da 100644
--- a/mysql-test/t/kill.test
+++ b/mysql-test/t/kill.test
@@ -15,6 +15,7 @@ connection con1;
drop table if exists t1, t2, t3;
--enable_warnings
+--disable_reconnect
create table t1 (kill_id int);
insert into t1 values(connection_id());
@@ -24,12 +25,18 @@ select ((@id := kill_id) - kill_id) from t1;
kill @id;
connection con1;
---sleep 1
+--sleep 2
---disable_reconnect
-# this statement should fail
---error 2006,2013
+--disable_query_log
+--disable_result_log
+# One of the following statements should fail
+--error 0,2006,2013
+select 1;
+--error 0,2006,2013
select 1;
+--enable_query_log
+--enable_result_log
+
--enable_reconnect
# this should work, and we should have a new connection_id()
select ((@id := kill_id) - kill_id) from t1;
@@ -40,7 +47,6 @@ connection con2;
select 4;
drop table t1;
connection default;
-disconnect con2;
--error 1064
kill (select count(*) from mysql.user);
@@ -75,7 +81,9 @@ connection conn2;
connection conn1;
-- disable_result_log
-send select id from t1 where id in (select distinct id from t2);
+# This is a very long running query. If this test start failing, it may
+# be necessary to change to an even longer query.
+send select id from t1 where id in (select distinct a.id from t2 a, t2 b, t2 c, t2 d group by a.id, b.id, c.id, d.id having a.id between 10 and 20);
-- enable_result_log
connection conn2;
@@ -87,10 +95,212 @@ connection conn1;
-- error 1053,2013
reap;
-disconnect conn1;
-disconnect conn2;
connection default;
drop table t1, t2, t3;
# End of 4.1 tests
+
+#
+# test of blocking of sending ERROR after OK or EOF
+#
+connection con1;
+select get_lock("a", 10);
+connection con2;
+let $ID= `select connection_id()`;
+send select get_lock("a", 10);
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+reap;
+select 1;
+connection con1;
+select RELEASE_LOCK("a");
+
+#
+# Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
+#
+create table t1(f1 int);
+delimiter |;
+create function bug27563() returns int(11)
+deterministic
+begin
+ declare continue handler for sqlstate '70100' set @a:= 'killed';
+ declare continue handler for sqlexception set @a:= 'exception';
+ set @a= get_lock("lock27563", 10);
+ return 1;
+end|
+delimiter ;|
+# Test stored functions
+# Test INSERT
+connection con1;
+select get_lock("lock27563",10);
+connection con2;
+let $ID= `select connection_id()`;
+send insert into t1 values (bug27563());
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+--error 1317
+reap;
+select @a;
+connection con1;
+select * from t1;
+
+# Test UPDATE
+insert into t1 values(0);
+connection con2;
+send update t1 set f1= bug27563();
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+--error 1317
+reap;
+select @a;
+connection con1;
+select * from t1;
+
+# Test DELETE
+insert into t1 values(1);
+connection con2;
+send delete from t1 where bug27563() is null;
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+--error 1317
+reap;
+select @a;
+connection con1;
+select * from t1;
+
+# Test SELECT
+connection con2;
+send select * from t1 where f1= bug27563();
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+--error 1317
+reap;
+select @a;
+
+# Test PROCEDURE
+connection con2;
+delimiter |;
+create procedure proc27563()
+begin
+ declare continue handler for sqlstate '70100' set @a:= 'killed';
+ declare continue handler for sqlexception set @a:= 'exception';
+ select get_lock("lock27563",10);
+ select "shouldn't be selected";
+end|
+delimiter ;|
+send call proc27563();
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+--error 1317
+reap;
+select @a;
+
+# Test TRIGGERS
+connection con2;
+create table t2 (f2 int);
+delimiter |;
+create trigger trg27563 before insert on t1 for each row
+begin
+ declare continue handler for sqlstate '70100' set @a:= 'killed';
+ declare continue handler for sqlexception set @a:= 'exception';
+ set @a:= get_lock("lock27563",10);
+ insert into t2 values(1);
+end|
+delimiter ;|
+send insert into t1 values(2),(3);
+real_sleep 2;
+connection con1;
+disable_query_log;
+eval kill query $ID;
+enable_query_log;
+connection con2;
+--error 1317
+reap;
+select @a;
+connection con1;
+select * from t1;
+select * from t2;
+
+# Cleanup
+select release_lock("lock27563");
+drop table t1, t2;
+drop function bug27563;
+drop procedure proc27563;
+
+#
+# Bug#28598: mysqld crash when killing a long-running explain query.
+#
+--disable_query_log
+connection con1;
+let $ID= `select connection_id()`;
+let $tab_count= 40;
+
+let $i= $tab_count;
+while ($i)
+{
+ eval CREATE TABLE t$i (a$i int, KEY(a$i));
+ eval INSERT INTO t$i VALUES (1),(2),(3),(4),(5),(6),(7);
+ dec $i ;
+}
+set session optimizer_search_depth=0;
+
+let $i=$tab_count;
+while ($i)
+{
+ let $a= a$i;
+ let $t= t$i;
+ dec $i;
+ if ($i)
+ {
+ let $comma=,;
+ let $from=$comma$t$from;
+ let $where=a$i=$a $and $where;
+ }
+ if (!$i)
+ {
+ let $from=FROM $t$from;
+ let $where=WHERE $where;
+ }
+ let $and=AND;
+}
+
+--enable_query_log
+eval PREPARE stmt FROM 'EXPLAIN SELECT * $from $where';
+send EXECUTE stmt;
+--disable_query_log
+
+connection con2;
+real_sleep 2;
+eval kill query $ID;
+let $i= $tab_count;
+while ($i)
+{
+ eval DROP TABLE t$i;
+ dec $i ;
+}
+--enable_query_log
diff --git a/mysql-test/t/kill_n_check.sh b/mysql-test/t/kill_n_check.sh
new file mode 100755
index 00000000000..6f2a0825dcd
--- /dev/null
+++ b/mysql-test/t/kill_n_check.sh
@@ -0,0 +1,147 @@
+#!/bin/sh
+
+###########################################################################
+
+# NOTE: this script returns 0 (success) even in case of failure (except for
+# usage-error). This is because this script is executed under
+# mysql-test-run[.pl] and it's better to examine particular problem in log
+# file, than just having said that the test case has failed.
+
+###########################################################################
+
+basename=`basename "$0"`
+dirname=`dirname "$0"`
+
+###########################################################################
+
+. "$dirname/utils.sh"
+
+###########################################################################
+
+check_restart()
+{
+ if [ ! -r "$pid_path" ]; then
+ log_debug "No '$pid_path' found."
+ user_msg='the process was killed'
+ return 1
+ fi
+
+ new_pid=`cat "$pid_path" 2>/dev/null`
+ err_code=$?
+
+ log_debug "err_code: $err_code; original_pid: $original_pid; new_pid: $new_pid."
+
+ if [ $err_code -eq 0 -a "$original_pid" = "$new_pid" ]; then
+ log_debug "The process was not restarted."
+ user_msg='the process was not restarted'
+ return 1
+ fi
+
+ log_debug "The process was restarted."
+ user_msg='the process was restarted'
+ return 0
+}
+
+###########################################################################
+
+if [ $# -ne 4 ]; then
+ echo "Usage: $basename <pid file path> killed|restarted <timeout> <test id>"
+ exit 1
+fi
+
+pid_path="$1"
+expected_result="$2"
+total_timeout="$3"
+test_id="$4"
+log_file="$MYSQLTEST_VARDIR/log/$test_id.script.log"
+
+log_debug "-- $basename: starting --"
+log_debug "pid_path: '$pid_path'"
+log_debug "expected_result: '$expected_result'"
+log_debug "total_timeout: '$total_timeout'"
+log_debug "test_id: '$test_id'"
+log_debug "log_file: '$log_file'"
+
+###########################################################################
+
+if [ "$expected_result" != 'killed' -a \
+ "$expected_result" != 'restarted' ]; then
+ log_error "Invalid second argument ($expected_result): 'killed' or 'restarted' expected."
+ quit 0
+fi
+
+if [ -z "$pid_path" ]; then
+ log_error "Invalid PID path ($pid_path)."
+ quit 0
+fi
+
+if [ ! -r "$pid_path" ]; then
+ log_error "PID file ($pid_path) does not exist."
+ quit 0
+fi
+
+if [ -z "$total_timeout" ]; then
+ log_error "Timeout is not specified."
+ quit 0
+fi
+
+###########################################################################
+
+original_pid=`cat "$pid_path"`
+log_debug "original_pid: $original_pid."
+
+log_info "Killing the process..."
+
+kill -9 $original_pid
+
+###########################################################################
+
+log_info "Waiting..."
+
+if [ "$expected_result" = "restarted" ]; then
+
+ # Wait for the process to restart.
+
+ cur_attempt=1
+
+ while true; do
+
+ log_debug "cur_attempt: $cur_attempt."
+
+ if check_restart; then
+ log_info "Success: $user_msg."
+ quit 0
+ fi
+
+ [ $cur_attempt -ge $total_timeout ] && break
+
+ log_debug "Sleeping for 1 second..."
+ sleep 1
+
+ cur_attempt=`expr $cur_attempt + 1`
+
+ done
+
+ log_error "$user_msg."
+ quit 0
+
+else # $expected_result == killed
+
+ # Here we have to sleep for some long time to ensure that the process will
+ # not be restarted.
+
+ log_debug "Sleeping for $total_timeout seconds..."
+ sleep $total_timeout
+
+ new_pid=`cat "$pid_path" 2>/dev/null`
+ log_debug "new_pid: $new_pid."
+
+ if [ "$new_pid" -a "$new_pid" -ne "$original_pid" ]; then
+ log_error "The process was restarted."
+ else
+ log_info "Success: the process was killed."
+ fi
+
+ quit 0
+
+fi
diff --git a/mysql-test/t/limit.test b/mysql-test/t/limit.test
index f70cf835588..286c04785ff 100644
--- a/mysql-test/t/limit.test
+++ b/mysql-test/t/limit.test
@@ -6,8 +6,8 @@
drop table if exists t1;
--enable_warnings
-create table t1 (a int primary key, b int not null);
-insert into t1 () values (); -- Testing default values
+create table t1 (a int not null default 0 primary key, b int not null default 0);
+insert into t1 () values (); # Testing default values
insert into t1 values (1,1),(2,1),(3,1);
update t1 set a=4 where b=1 limit 1;
select * from t1;
@@ -69,5 +69,22 @@ explain select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
explain select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
-
+drop table t1;
# End of 4.1 tests
+
+#
+# Bug #28464: a string argument to 'limit ?' PS
+#
+
+prepare s from "select 1 limit ?";
+set @a='qwe';
+--error 1210
+execute s using @a;
+prepare s from "select 1 limit 1, ?";
+--error 1210
+execute s using @a;
+prepare s from "select 1 limit ?, ?";
+--error 1210
+execute s using @a, @a;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test
index 14f33c6b396..9eb92015399 100644
--- a/mysql-test/t/loaddata.test
+++ b/mysql-test/t/loaddata.test
@@ -3,29 +3,29 @@
#
--disable_warnings
-drop table if exists t1,t2;
+drop table if exists t1, t2;
--enable_warnings
create table t1 (a date, b date, c date not null, d date);
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',';
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',';
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
SELECT * from t1;
truncate table t1;
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
SELECT * from t1;
drop table t1;
create table t1 (a text, b text);
-load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
select concat('|',a,'|'), concat('|',b,'|') from t1;
drop table t1;
create table t1 (a int, b char(10));
-load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
select * from t1;
truncate table t1;
-load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
# The empty line last comes from the end line field in the file
select * from t1;
@@ -38,23 +38,23 @@ SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
create table t1(id integer not null auto_increment primary key);
insert into t1 values(0);
disable_query_log;
-eval SELECT * INTO OUTFILE '$MYSQL_TEST_DIR/var/tmp/t1' from t1;
+eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' from t1;
delete from t1;
-eval load data infile '$MYSQL_TEST_DIR/var/tmp/t1' into table t1;
+eval load data infile '$MYSQLTEST_VARDIR/tmp/t1' into table t1;
enable_query_log;
select * from t1;
---exec rm $MYSQL_TEST_DIR/var/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
disable_query_log;
-eval SELECT * INTO OUTFILE '$MYSQL_TEST_DIR/var/tmp/t1'
+eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1'
FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n'
FROM t1;
delete from t1;
-eval load data infile '$MYSQL_TEST_DIR/var/tmp/t1' into table t1
+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 $MYSQL_TEST_DIR/var/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
SET @@SQL_MODE=@OLD_SQL_MODE;
drop table t1;
@@ -63,7 +63,7 @@ drop table t1;
# ENCLOSED
#
create table t1 (a varchar(20), b varchar(20));
-load data infile '../../std_data/loaddata5.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
+load data infile '../std_data_ln/loaddata_dq.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
select * from t1;
drop table t1;
@@ -89,17 +89,151 @@ INSERT INTO t1 (c1) VALUES
('.r.'), ('.rr.'), ('.rrr.'), ('.rrrr.');
SELECT * FROM t1;
---exec rm -f $MYSQL_TEST_DIR/var/tmp/t1
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval SELECT * INTO OUTFILE '$MYSQL_TEST_DIR/var/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
---exec cat $MYSQL_TEST_DIR/var/tmp/t1
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
+cat_file $MYSQLTEST_VARDIR/tmp/t1;
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval LOAD DATA INFILE '$MYSQL_TEST_DIR/var/tmp/t1' INTO TABLE t2 FIELDS ENCLOSED BY 'r';
+--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 $MYSQL_TEST_DIR/var/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
DROP TABLE t1,t2;
# End of 4.1 tests
+
+#
+# Let us test extended LOAD DATA features
+#
+create table t1 (a int default 100, b int, c varchar(60));
+# we can do something like this
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set b=@b+10, c=concat("b=",@b);
+select * from t1;
+truncate table t1;
+# we can use filled fields in expressions
+# we also assigning NULL value to field with non-NULL default here
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set c= if(a is null,"oops",a);
+select * from t1;
+truncate table t1;
+# we even can use variables in set clause, and missed columns will be set
+# with default values
+set @c:=123;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, b) set c= if(@a is null,@c,b);
+select * from t1;
+# let us test side-effect of such load
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, @b);
+select * from t1;
+select @a, @b;
+truncate table t1;
+# now going to test fixed field-row file format
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, b) set c="Wow";
+select * from t1;
+truncate table t1;
+# this also should work
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, b) set c=concat(a,"+",b,"+",@c,"+",b,"+",if(c is null,"NIL",c));
+select * from t1;
+# and this should bark
+--error 1409
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, @b);
+
+# Now let us test LOAD DATA with subselect
+create table t2 (num int primary key, str varchar(10));
+insert into t2 values (10,'Ten'), (15,'Fifteen');
+truncate table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@dummy,@n) set a= @n, c= (select str from t2 where num=@n);
+select * from t1;
+
+#
+# Bug#18628 mysql-test-run: security problem
+#
+# It should not be possible to load from a file outside of vardir
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+show variables like "secure_file_pri%";
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+select @@secure_file_priv;
+--error 1238
+set @@secure_file_priv= 0;
+
+# Test "load data"
+truncate table t1;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--error 1290
+eval load data infile '$MYSQL_TEST_DIR/t/loaddata.test' into table t1;
+select * from t1;
+
+# Test "load_file" returns NULL
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval select load_file("$MYSQL_TEST_DIR/t/loaddata.test");
+
+# cleanup
+drop table t1, t2;
+
+#
+# Bug#27586: Wrong autoinc value assigned by LOAD DATA in the
+# NO_AUTO_VALUE_ON_ZERO mode
+#
+create table t1(f1 int);
+insert into t1 values(1),(null);
+create table t2(f2 int auto_increment primary key);
+disable_query_log;
+eval select * into outfile '$MYSQLTEST_VARDIR/tmp/t1' from t1;
+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;
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
+SET @@SQL_MODE=@OLD_SQL_MODE;
+drop table t1,t2;
+
+#
+# Bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP default value for a
+# TIMESTAMP field when no value has been provided.
+#
+create table t1(f1 int, f2 timestamp not null default current_timestamp);
+create table t2(f1 int);
+insert into t2 values(1),(2);
+disable_query_log;
+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;
+remove_file $MYSQLTEST_VARDIR/tmp/t2;
+delete from t1;
+disable_query_log;
+eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t2'
+FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n'
+FROM t2;
+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;
+remove_file $MYSQLTEST_VARDIR/tmp/t2;
+drop table t1,t2;
+
+#
+# Bug#29442: SELECT INTO OUTFILE FIELDS ENCLOSED BY digit, minus sign etc
+# corrupts non-string fields containing this character.
+#
+
+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;
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY '-' FROM t1;
+cat_file $MYSQLTEST_VARDIR/tmp/t1;
+echo EOF;
+
+TRUNCATE t1;
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 FIELDS ENCLOSED BY '-';
+SELECT * FROM t1;
+
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
+DROP TABLE t1;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/loaddata_autocom_innodb.test b/mysql-test/t/loaddata_autocom_innodb.test
new file mode 100644
index 00000000000..d7f152cb286
--- /dev/null
+++ b/mysql-test/t/loaddata_autocom_innodb.test
@@ -0,0 +1,4 @@
+--source include/have_innodb.inc
+let $engine_type= InnoDB;
+
+--source include/loaddata_autocom.inc
diff --git a/mysql-test/t/loaddata_autocom_ndb.test b/mysql-test/t/loaddata_autocom_ndb.test
new file mode 100644
index 00000000000..f4a6743aabe
--- /dev/null
+++ b/mysql-test/t/loaddata_autocom_ndb.test
@@ -0,0 +1,4 @@
+--source include/have_ndb.inc
+let $engine_type=ndbcluster;
+
+--source include/loaddata_autocom.inc
diff --git a/mysql-test/t/lock.test b/mysql-test/t/lock.test
index adf13fb4dd8..8300219b3d4 100644
--- a/mysql-test/t/lock.test
+++ b/mysql-test/t/lock.test
@@ -54,7 +54,7 @@ check table t1;
lock tables t1 write;
check table t2;
--error 1100
-insert into t1 select nr from t1;
+insert into t1 select index1,nr from t1;
unlock tables;
lock tables t1 write, t1 as t1_alias read;
insert into t1 select index1,nr from t1 as t1_alias;
diff --git a/mysql-test/t/lock_multi.test b/mysql-test/t/lock_multi.test
index 32e7f4234c4..d670bb55a18 100644
--- a/mysql-test/t/lock_multi.test
+++ b/mysql-test/t/lock_multi.test
@@ -1,3 +1,4 @@
+-- source include/not_embedded.inc
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
@@ -88,3 +89,164 @@ connection locker;
drop table t1;
# End of 4.1 tests
+
+#
+# BUG#9998 - MySQL client hangs on USE "database"
+#
+create table t1(a int);
+lock tables t1 write;
+connection reader;
+show columns from t1;
+connection locker;
+unlock tables;
+drop table t1;
+
+#
+# Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
+#
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+#
+connection con1;
+CREATE DATABASE mysqltest_1;
+FLUSH TABLES WITH READ LOCK;
+#
+# With bug in place: acquire LOCK_mysql_create_table and
+# wait in wait_if_global_read_lock().
+connection con2;
+send DROP DATABASE mysqltest_1;
+--sleep 1
+#
+# With bug in place: try to acquire LOCK_mysql_create_table...
+# When fixed: Reject dropping db because of the read lock.
+connection con1;
+--error ER_CANT_UPDATE_WITH_READLOCK
+DROP DATABASE mysqltest_1;
+UNLOCK TABLES;
+#
+connection con2;
+reap;
+#
+connection default;
+disconnect con1;
+disconnect con2;
+# This must have been dropped by connection 2 already,
+# which waited until the global read lock was released.
+--error ER_DB_DROP_EXISTS
+DROP DATABASE mysqltest_1;
+
+#
+# Bug#16986 - Deadlock condition with MyISAM tables
+#
+
+# Need a matching user in mysql.user for multi-table select
+--source include/add_anonymous_users.inc
+
+connection locker;
+use mysql;
+LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE;
+FLUSH TABLES;
+--sleep 1
+#
+connection reader;
+use mysql;
+#NOTE: This must be a multi-table select, otherwise the deadlock will not occur
+send SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1;
+--sleep 1
+#
+connection locker;
+# Make test case independent from earlier grants.
+--replace_result "Table is already up to date" "OK"
+OPTIMIZE TABLES columns_priv, db, host, user;
+UNLOCK TABLES;
+#
+connection reader;
+reap;
+use test;
+#
+connection locker;
+use test;
+#
+connection default;
+#
+# Test if CREATE TABLE with LOCK TABLE deadlocks.
+#
+connection writer;
+CREATE TABLE t1 (c1 int);
+LOCK TABLE t1 WRITE;
+#
+# This waits until t1 is unlocked.
+connection locker;
+send FLUSH TABLES WITH READ LOCK;
+--sleep 1
+#
+# This must not block.
+connection writer;
+CREATE TABLE t2 (c1 int);
+UNLOCK TABLES;
+#
+# This awakes now.
+connection locker;
+reap;
+UNLOCK TABLES;
+#
+connection default;
+DROP TABLE t1, t2;
+#
+# Test if CREATE TABLE SELECT with LOCK TABLE deadlocks.
+#
+connection writer;
+CREATE TABLE t1 (c1 int);
+LOCK TABLE t1 WRITE;
+#
+# This waits until t1 is unlocked.
+connection locker;
+send FLUSH TABLES WITH READ LOCK;
+--sleep 1
+#
+# This must not block.
+connection writer;
+--error 1100
+CREATE TABLE t2 AS SELECT * FROM t1;
+UNLOCK TABLES;
+#
+# This awakes now.
+connection locker;
+reap;
+UNLOCK TABLES;
+#
+connection default;
+DROP TABLE t1;
+
+--source include/delete_anonymous_users.inc
+
+#
+# Bug #17264: MySQL Server freeze
+#
+connection locker;
+# Disable warnings to allow test to run also without InnoDB
+--disable_warnings
+create table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb;
+--enable_warnings
+lock tables t1 write;
+connection writer;
+--sleep 2
+delimiter //;
+send alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //
+delimiter ;//
+connection reader;
+--sleep 2
+delimiter //;
+send alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //
+delimiter ;//
+connection locker;
+--sleep 2
+unlock tables;
+connection writer;
+reap;
+connection reader;
+reap;
+connection locker;
+drop table t1;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/log.sh b/mysql-test/t/log.sh
new file mode 100755
index 00000000000..33ef6d6701f
--- /dev/null
+++ b/mysql-test/t/log.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+###########################################################################
+
+basename=`basename "$0"`
+dirname=`dirname "$0"`
+
+###########################################################################
+
+. "$dirname/utils.sh"
+
+###########################################################################
+
+if [ $# -lt 2 ]; then
+ echo "Usage: $basename <test id> log message ..."
+ exit 1
+fi
+
+test_id="$1"
+log_file="$MYSQLTEST_VARDIR/log/$test_id.script.log"
+
+shift
+
+log_debug "$*"
diff --git a/mysql-test/t/long_tmpdir-master.opt b/mysql-test/t/long_tmpdir-master.opt
new file mode 100644
index 00000000000..398abfc4632
--- /dev/null
+++ b/mysql-test/t/long_tmpdir-master.opt
@@ -0,0 +1 @@
+--tmpdir=$MYSQLTEST_VARDIR/tmp/long_temporary_directory_path_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
diff --git a/mysql-test/t/long_tmpdir-master.sh b/mysql-test/t/long_tmpdir-master.sh
new file mode 100644
index 00000000000..318955fbcca
--- /dev/null
+++ b/mysql-test/t/long_tmpdir-master.sh
@@ -0,0 +1,3 @@
+d="$MYSQLTEST_VARDIR/tmp/long_temporary_directory_path_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789"
+test -d "$d" || mkdir "$d"
+rm -f "$d"/*
diff --git a/mysql-test/t/long_tmpdir.test b/mysql-test/t/long_tmpdir.test
new file mode 100644
index 00000000000..cf0bed29918
--- /dev/null
+++ b/mysql-test/t/long_tmpdir.test
@@ -0,0 +1,9 @@
+#
+# Bug #29015: Stack overflow in processing temporary table name when tmpdir path
+# is long
+#
+
+create view v1 as select table_name from information_schema.tables;
+drop view v1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/lowercase_fs_off.test b/mysql-test/t/lowercase_fs_off.test
index 883315994fe..414027cb485 100644
--- a/mysql-test/t/lowercase_fs_off.test
+++ b/mysql-test/t/lowercase_fs_off.test
@@ -21,6 +21,7 @@ create database D1;
disconnect sample;
connection master;
+drop user 'sample'@'localhost';
drop database if exists d1;
disconnect master;
connection default;
diff --git a/mysql-test/t/lowercase_mixed_tmpdir-master.opt b/mysql-test/t/lowercase_mixed_tmpdir-master.opt
new file mode 100644
index 00000000000..3d21ea72f6b
--- /dev/null
+++ b/mysql-test/t/lowercase_mixed_tmpdir-master.opt
@@ -0,0 +1,2 @@
+--lower-case-table-names=1
+--tmpdir=$MYSQLTEST_VARDIR/tmp/MixedCase
diff --git a/mysql-test/t/lowercase_mixed_tmpdir-master.sh b/mysql-test/t/lowercase_mixed_tmpdir-master.sh
new file mode 100644
index 00000000000..95c26e3aa02
--- /dev/null
+++ b/mysql-test/t/lowercase_mixed_tmpdir-master.sh
@@ -0,0 +1,6 @@
+# This test requires a non-lowercase tmpdir directory on a case-sensitive
+# filesystem.
+
+d="$MYSQLTEST_VARDIR/tmp/MixedCase"
+test -d "$d" || mkdir "$d"
+rm -f "$d"/*
diff --git a/mysql-test/t/lowercase_mixed_tmpdir.test b/mysql-test/t/lowercase_mixed_tmpdir.test
new file mode 100644
index 00000000000..6bd3a6f2acc
--- /dev/null
+++ b/mysql-test/t/lowercase_mixed_tmpdir.test
@@ -0,0 +1,12 @@
+--source include/have_case_sensitive_file_system.inc
+--source include/have_lowercase1.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (id int) engine=myisam;
+insert into t1 values (1);
+create temporary table t2 select * from t1;
+drop temporary table t2;
+drop table t1;
diff --git a/mysql-test/t/lowercase_table.test b/mysql-test/t/lowercase_table.test
index 709743ce687..31513f1bd06 100644
--- a/mysql-test/t/lowercase_table.test
+++ b/mysql-test/t/lowercase_table.test
@@ -7,6 +7,7 @@ drop table if exists t1,t2,t3,t4;
# Clear up from other tests (to ensure that SHOW TABLES below is right)
drop table if exists t0,t5,t6,t7,t8,t9;
drop database if exists mysqltest;
+drop view if exists v0, v1, v2, v3, v4;
--enable_warnings
create table T1 (id int primary key, Word varchar(40) not null, Index(Word));
@@ -84,3 +85,23 @@ drop table t1, t2;
show tables;
# End of 4.1 tests
+
+
+#
+# Bug#20404: SHOW CREATE TABLE fails with Turkish I
+#
+set names utf8;
+--disable_warnings
+drop table if exists Ä°,Ä°Ä°;
+--enable_warnings
+create table Ä° (s1 int);
+show create table Ä°;
+show tables;
+drop table Ä°;
+create table Ä°Ä° (s1 int);
+show create table Ä°Ä°;
+show tables;
+drop table Ä°Ä°;
+set names latin1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/lowercase_table2.test b/mysql-test/t/lowercase_table2.test
index c02ae8f5073..521df01cc9b 100644
--- a/mysql-test/t/lowercase_table2.test
+++ b/mysql-test/t/lowercase_table2.test
@@ -139,3 +139,14 @@ select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
drop table t2aA, t1Aa;
# End of 4.1 tests
+
+#
+# Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
+#
+create database mysqltest_LC2;
+use mysqltest_LC2;
+create table myUC (i int);
+select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES
+where TABLE_SCHEMA ='mysqltest_LC2';
+use test;
+drop database mysqltest_LC2;
diff --git a/mysql-test/t/lowercase_table3.test b/mysql-test/t/lowercase_table3.test
index bf48710d4a6..75f6e5188c5 100644
--- a/mysql-test/t/lowercase_table3.test
+++ b/mysql-test/t/lowercase_table3.test
@@ -28,7 +28,7 @@ flush tables;
#
CREATE TABLE t1 (a int) ENGINE=INNODB;
---error 1030
+--error 1146
SELECT * from T1;
drop table t1;
diff --git a/mysql-test/t/lowercase_view-master.opt b/mysql-test/t/lowercase_view-master.opt
new file mode 100644
index 00000000000..62ab6dad1e0
--- /dev/null
+++ b/mysql-test/t/lowercase_view-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=1
diff --git a/mysql-test/t/lowercase_view.test b/mysql-test/t/lowercase_view.test
new file mode 100644
index 00000000000..e9cc26bec18
--- /dev/null
+++ b/mysql-test/t/lowercase_view.test
@@ -0,0 +1,140 @@
+--disable_warnings
+drop table if exists t1Aa,t2Aa,v1Aa,v2Aa;
+drop view if exists t1Aa,t2Aa,v1Aa,v2Aa;
+drop database if exists MySQLTest;
+--enable_warnings
+
+#
+# different cases in VIEW
+#
+create database MySQLTest;
+use MySQLTest;
+create table TaB (Field int);
+create view ViE as select * from TAb;
+show create table VIe;
+drop database MySQLTest;
+use test;
+
+#
+# test of updating and fetching from the same table check
+#
+create table t1Aa (col1 int);
+create table t2aA (col1 int);
+create view v1Aa as select * from t1aA;
+create view v2aA as select * from v1aA;
+create view v3Aa as select v2Aa.col1 from v2aA,t2Aa where v2Aa.col1 = t2aA.col1;
+-- error 1443
+update v2aA set col1 = (select max(col1) from v1Aa);
+-- error 1443
+update v2Aa set col1 = (select max(col1) from t1Aa);
+-- error 1093
+update v2aA set col1 = (select max(col1) from v2Aa);
+-- error 1443
+update v2aA,t2Aa set v2Aa.col1 = (select max(col1) from v1aA) where v2aA.col1 = t2aA.col1;
+-- error 1443
+update t1aA,t2Aa set t1Aa.col1 = (select max(col1) from v1Aa) where t1aA.col1 = t2aA.col1;
+-- error 1093
+update v1aA,t2Aa set v1Aa.col1 = (select max(col1) from v1aA) where v1Aa.col1 = t2aA.col1;
+-- error 1443
+update t2Aa,v2Aa set v2aA.col1 = (select max(col1) from v1aA) where v2Aa.col1 = t2aA.col1;
+-- error 1443
+update t2Aa,t1Aa set t1aA.col1 = (select max(col1) from v1Aa) where t1Aa.col1 = t2aA.col1;
+-- error 1443
+update t2Aa,v1aA set v1Aa.col1 = (select max(col1) from v1aA) where v1Aa.col1 = t2aA.col1;
+-- error 1443
+update v2aA,t2Aa set v2Aa.col1 = (select max(col1) from t1aA) where v2aA.col1 = t2aA.col1;
+-- error 1093
+update t1Aa,t2Aa set t1aA.col1 = (select max(col1) from t1Aa) where t1aA.col1 = t2aA.col1;
+-- error 1443
+update v1aA,t2Aa set v1Aa.col1 = (select max(col1) from t1Aa) where v1aA.col1 = t2aA.col1;
+-- error 1093
+update t2Aa,v2Aa set v2aA.col1 = (select max(col1) from t1aA) where v2Aa.col1 = t2aA.col1;
+-- error 1093
+update t2Aa,t1Aa set t1aA.col1 = (select max(col1) from t1Aa) where t1aA.col1 = t2aA.col1;
+-- error 1093
+update t2Aa,v1Aa set v1aA.col1 = (select max(col1) from t1Aa) where v1Aa.col1 = t2aA.col1;
+-- error 1093
+update v2aA,t2Aa set v2Aa.col1 = (select max(col1) from v2aA) where v2Aa.col1 = t2aA.col1;
+-- error 1443
+update t1aA,t2Aa set t1Aa.col1 = (select max(col1) from v2aA) where t1aA.col1 = t2aA.col1;
+-- error 1443
+update v1aA,t2Aa set v1Aa.col1 = (select max(col1) from v2Aa) where v1aA.col1 = t2aA.col1;
+-- error 1443
+update t2Aa,v2aA set v2Aa.col1 = (select max(col1) from v2aA) where v2Aa.col1 = t2aA.col1;
+-- error 1443
+update t2Aa,t1Aa set t1aA.col1 = (select max(col1) from v2aA) where t1Aa.col1 = t2aA.col1;
+-- error 1443
+update t2Aa,v1Aa set v1aA.col1 = (select max(col1) from v2Aa) where v1Aa.col1 = t2aA.col1;
+-- error 1443
+update v3aA set v3Aa.col1 = (select max(col1) from v1aA);
+-- error 1443
+update v3aA set v3Aa.col1 = (select max(col1) from t1aA);
+-- error 1443
+update v3aA set v3Aa.col1 = (select max(col1) from v2aA);
+-- error 1093
+update v3aA set v3Aa.col1 = (select max(col1) from v3aA);
+-- error 1443
+delete from v2Aa where col1 = (select max(col1) from v1Aa);
+-- error 1443
+delete from v2aA where col1 = (select max(col1) from t1Aa);
+-- error 1093
+delete from v2Aa where col1 = (select max(col1) from v2aA);
+-- error 1443
+delete v2Aa from v2aA,t2Aa where (select max(col1) from v1aA) > 0 and v2Aa.col1 = t2aA.col1;
+-- error 1443
+delete t1aA from t1Aa,t2Aa where (select max(col1) from v1Aa) > 0 and t1aA.col1 = t2aA.col1;
+-- error 1093
+delete v1aA from v1Aa,t2Aa where (select max(col1) from v1aA) > 0 and v1Aa.col1 = t2aA.col1;
+-- error 1443
+delete v2aA from v2Aa,t2Aa where (select max(col1) from t1Aa) > 0 and v2aA.col1 = t2aA.col1;
+-- error 1093
+delete t1aA from t1Aa,t2Aa where (select max(col1) from t1aA) > 0 and t1Aa.col1 = t2aA.col1;
+-- error 1443
+delete v1aA from v1Aa,t2Aa where (select max(col1) from t1aA) > 0 and v1aA.col1 = t2aA.col1;
+-- error 1093
+delete v2Aa from v2aA,t2Aa where (select max(col1) from v2Aa) > 0 and v2aA.col1 = t2aA.col1;
+-- error 1443
+delete t1Aa from t1aA,t2Aa where (select max(col1) from v2Aa) > 0 and t1Aa.col1 = t2aA.col1;
+-- error 1443
+delete v1Aa from v1aA,t2Aa where (select max(col1) from v2aA) > 0 and v1Aa.col1 = t2aA.col1;
+-- error 1443
+insert into v2Aa values ((select max(col1) from v1aA));
+-- error 1443
+insert into t1aA values ((select max(col1) from v1Aa));
+-- error 1443
+insert into v2aA values ((select max(col1) from v1aA));
+-- error 1443
+insert into v2Aa values ((select max(col1) from t1Aa));
+-- error 1093
+insert into t1aA values ((select max(col1) from t1Aa));
+-- error 1443
+insert into v2aA values ((select max(col1) from t1aA));
+-- error 1093
+insert into v2Aa values ((select max(col1) from v2aA));
+-- error 1443
+insert into t1Aa values ((select max(col1) from v2Aa));
+-- error 1093
+insert into v2aA values ((select max(col1) from v2Aa));
+-- error 1443
+insert into v3Aa (col1) values ((select max(col1) from v1Aa));
+-- error 1443
+insert into v3aA (col1) values ((select max(col1) from t1aA));
+-- error 1443
+insert into v3Aa (col1) values ((select max(col1) from v2aA));
+drop view v3aA,v2Aa,v1aA;
+drop table t1Aa,t2Aa;
+
+#
+# aliases in VIEWs
+#
+create table t1Aa (col1 int);
+create view v1Aa as select col1 from t1Aa as AaA;
+show create view v1AA;
+drop view v1AA;
+select Aaa.col1 from t1Aa as AaA;
+create view v1Aa as select Aaa.col1 from t1Aa as AaA;
+drop view v1AA;
+create view v1Aa as select AaA.col1 from t1Aa as AaA;
+show create view v1AA;
+drop view v1AA;
+drop table t1Aa;
diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test
index 377160d0312..b5c1a01fe8e 100644
--- a/mysql-test/t/merge.test
+++ b/mysql-test/t/merge.test
@@ -284,6 +284,8 @@ insert into t2 values (1);
create table t3 engine=merge union=(t1, t2) select * from t1;
--error 1093
create table t3 engine=merge union=(t1, t2) select * from t2;
+--error 1093
+create table t3 engine=merge union=(t1, t2) select (select max(a) from t2);
drop table t1, t2;
#
@@ -428,16 +430,7 @@ CREATE TABLE tm1(a SMALLINT, b SMALLINT, KEY(a)) ENGINE=MERGE UNION=(t1);
SELECT * FROM tm1;
DROP TABLE t1, tm1;
-#
-# Bug#26464 - insert delayed + update + merge = corruption
-#
-CREATE TABLE t1(c1 INT) ENGINE=MyISAM;
-CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
---error 1031
-INSERT DELAYED INTO t2 VALUES(1);
-DROP TABLE t1, t2;
-#
# BUG#26881 - Large MERGE tables report incorrect specification when no
# differences in tables
#
@@ -468,3 +461,64 @@ SELECT COUNT(*) FROM t3 WHERE a=0xDF AND b=2;
DROP TABLE t1,t2,t3;
# End of 4.1 tests
+
+#
+# BUG#19648 - Merge table does not work with bit types
+#
+create table t1 (b bit(1));
+create table t2 (b bit(1));
+create table tm (b bit(1)) engine = merge union = (t1,t2);
+select * from tm;
+drop table tm, t1, t2;
+
+#
+# Bug #17766: The server accepts to create MERGE tables which cannot work
+#
+create table t1 (a int) insert_method = last engine = merge;
+--error ER_OPEN_AS_READONLY
+insert into t1 values (1);
+create table t2 (a int) engine = myisam;
+alter table t1 union (t2);
+insert into t1 values (1);
+alter table t1 insert_method = no;
+--error ER_OPEN_AS_READONLY
+insert into t1 values (1);
+drop table t2;
+drop table t1;
+
+#
+# BUG#26976 - Missing table in merge not noted in related error msg + SHOW
+# CREATE TABLE fails
+#
+CREATE TABLE tm1(a INT) ENGINE=MERGE UNION=(t1, t2);
+--error 1168
+SELECT * FROM tm1;
+CHECK TABLE tm1;
+CREATE TABLE t1(a INT);
+--error 1168
+SELECT * FROM tm1;
+CHECK TABLE tm1;
+CREATE TABLE t2(a BLOB);
+--error 1168
+SELECT * FROM tm1;
+CHECK TABLE tm1;
+ALTER TABLE t2 MODIFY a INT;
+SELECT * FROM tm1;
+CHECK TABLE tm1;
+DROP TABLE tm1, t1, t2;
+
+#
+# Bug#15522 - create ... select and with merge tables
+#
+# This was fixed together with Bug#20662 (Infinite loop in CREATE TABLE
+# IF NOT EXISTS ... SELECT with locked tables).
+# The new behavior for MERGE tables is consistent with the
+# CREATE TABLE SELECT behavior for ordinary tables.
+#
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2 (c1 INT) ENGINE=MERGE UNION=(t1) INSERT_METHOD=FIRST;
+--error ER_UPDATE_TABLE_USED
+CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2;
+DROP TABLE t1, t2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/metadata.test b/mysql-test/t/metadata.test
index 65338448555..65c062399b7 100644
--- a/mysql-test/t/metadata.test
+++ b/mysql-test/t/metadata.test
@@ -61,4 +61,55 @@ drop table t1;//
delimiter ;//
--disable_info
+#
+# Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
+#
+--enable_metadata
+create table t1 (id int(10));
+insert into t1 values (1);
+CREATE VIEW v1 AS select t1.id as id from t1;
+CREATE VIEW v2 AS select t1.id as renamed from t1;
+CREATE VIEW v3 AS select t1.id + 12 as renamed from t1;
+select * from v1 group by id limit 1;
+select * from v1 group by id limit 0;
+select * from v1 where id=1000 group by id;
+select * from v1 where id=1 group by id;
+select * from v2 where renamed=1 group by renamed;
+select * from v3 where renamed=1 group by renamed;
+drop table t1;
+drop view v1,v2,v3;
+--disable_metadata
+
# End of 4.1 tests
+
+#
+# Bug #28492: subselect returns LONG in >5.0.24a and LONGLONG in <=5.0.24a
+#
+--enable_metadata
+select a.* from (select 2147483648 as v_large) a;
+select a.* from (select 214748364 as v_small) a;
+--disable_metadata
+
+#
+# Bug #28898: table alias and database name of VIEW columns is empty in the
+# metadata of # SELECT statement where join is executed via temporary table.
+#
+
+CREATE TABLE t1 (c1 CHAR(1));
+CREATE TABLE t2 (c2 CHAR(1));
+CREATE VIEW v1 AS SELECT t1.c1 FROM t1;
+CREATE VIEW v2 AS SELECT t2.c2 FROM t2;
+INSERT INTO t1 VALUES ('1'), ('2'), ('3');
+INSERT INTO t2 VALUES ('1'), ('2'), ('3'), ('2');
+
+--enable_metadata
+SELECT v1.c1 FROM v1 JOIN t2 ON c1=c2 ORDER BY 1;
+SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2;
+SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2 GROUP BY v1.c1;
+SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2 GROUP BY v1.c1 ORDER BY v2.c2;
+--disable_metadata
+
+DROP VIEW v1,v2;
+DROP TABLE t1,t2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/mix_innodb_myisam_binlog.test b/mysql-test/t/mix_innodb_myisam_binlog.test
index 4581736ac8c..f9d7235ff84 100644
--- a/mysql-test/t/mix_innodb_myisam_binlog.test
+++ b/mysql-test/t/mix_innodb_myisam_binlog.test
@@ -5,9 +5,7 @@
# did some tests manually on a slave; tables are replicated fine and
# Exec_Master_Log_Pos advances as expected.
-# Embedded server doesn't support binlogging
--- source include/not_embedded.inc
-
+-- source include/have_log_bin.inc
-- source include/have_innodb.inc
--disable_warnings
@@ -28,7 +26,7 @@ insert into t1 values(1);
insert into t2 select * from t1;
commit;
-show binlog events from 79;
+source include/show_binlog_events.inc;
delete from t1;
delete from t2;
@@ -40,7 +38,7 @@ insert into t2 select * from t1;
# should say some changes to non-transact1onal tables couldn't be rolled back
rollback;
-show binlog events from 79;
+source include/show_binlog_events.inc;
delete from t1;
delete from t2;
@@ -54,7 +52,7 @@ insert into t2 select * from t1;
rollback to savepoint my_savepoint;
commit;
-show binlog events from 79;
+source include/show_binlog_events.inc;
delete from t1;
delete from t2;
@@ -70,7 +68,7 @@ insert into t1 values(7);
commit;
select a from t1 order by a; # check that savepoints work :)
-show binlog events from 79;
+source include/show_binlog_events.inc;
# and when ROLLBACK is not explicit?
delete from t1;
@@ -90,7 +88,7 @@ connection con2;
# so SHOW BINLOG EVENTS may come before con1 does the loggin. To be sure that
# logging has been done, we use a user lock.
select get_lock("a",10);
-show binlog events from 79;
+source include/show_binlog_events.inc;
# and when not in a transact1on?
delete from t1;
@@ -100,10 +98,10 @@ reset master;
insert into t1 values(9);
insert into t2 select * from t1;
-show binlog events from 79;
+source include/show_binlog_events.inc;
# Check that when the query updat1ng the MyISAM table is the first in the
-# transact1on, we log it immediately.
+# transaction, we log it immediately.
delete from t1;
delete from t2;
reset master;
@@ -111,12 +109,11 @@ reset master;
insert into t1 values(10); # first make t1 non-empty
begin;
insert into t2 select * from t1;
-show binlog events from 79;
+source include/show_binlog_events.inc;
insert into t1 values(11);
commit;
-show binlog events from 79;
-
+source include/show_binlog_events.inc;
# Check that things work like before this BEGIN/ROLLBACK code was added,
# when t2 is INNODB
@@ -132,7 +129,7 @@ insert into t1 values(12);
insert into t2 select * from t1;
commit;
-show binlog events from 79;
+source include/show_binlog_events.inc;
delete from t1;
delete from t2;
@@ -143,7 +140,7 @@ insert into t1 values(13);
insert into t2 select * from t1;
rollback;
-show binlog events from 79;
+source include/show_binlog_events.inc;
delete from t1;
delete from t2;
@@ -157,7 +154,7 @@ insert into t2 select * from t1;
rollback to savepoint my_savepoint;
commit;
-show binlog events from 79;
+source include/show_binlog_events.inc;
delete from t1;
delete from t2;
@@ -173,7 +170,7 @@ insert into t1 values(18);
commit;
select a from t1 order by a; # check that savepoints work :)
-show binlog events from 79;
+source include/show_binlog_events.inc;
# Test for BUG#5714, where a MyISAM update in the transaction used to
# release row-level locks in InnoDB
@@ -232,9 +229,159 @@ insert into t2 values (3);
disconnect con2;
connection con3;
select get_lock("lock1",60);
-show binlog events from 79;
+source include/show_binlog_events.inc;
do release_lock("lock1");
drop table t0,t2;
+# Test for BUG#16559 (ROLLBACK should always have a zero error code in
+# binlog). Has to be here and not earlier, as the SELECTs influence
+# XIDs differently between normal and ps-protocol (and SHOW BINLOG
+# EVENTS above read XIDs).
+
+connect (con4,localhost,root,,);
+connection con3;
+reset master;
+create table t1 (a int) engine=innodb;
+create table t2 (a int) engine=myisam;
+select get_lock("a",10);
+begin;
+insert into t1 values(8);
+insert into t2 select * from t1;
+disconnect con3;
+
+connection con4;
+select get_lock("a",10); # wait for rollback to finish
+
+# we check that the error code of the "ROLLBACK" event is 0 and not
+# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction
+# and does not make slave to stop)
+--exec $MYSQL_BINLOG --start-position=547 $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval select
+(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
+is not null;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval select
+@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
+@a not like "%#%error_code=%error_code=%";
+drop table t1, t2;
+
+#
+# Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack
+# bug #28960 non-trans temp table changes with insert .. select
+# not binlogged after rollback
+#
+# testing appearence of insert into temp_table in binlog.
+# There are two branches of execution that require different setup.
+
+## send_eof() branch
+
+# prepare
+
+create temporary table tt (a int unique);
+create table ti (a int) engine=innodb;
+reset master;
+show master status;
+
+# action
+
+begin;
+insert into ti values (1);
+insert into ti values (2) ;
+insert into tt select * from ti;
+rollback;
+
+# check
+
+select count(*) from tt /* 2 */;
+show master status;
+--replace_column 2 # 5 #
+show binlog events from 98;
+select count(*) from ti /* zero */;
+insert into ti select * from tt;
+select * from ti /* that is what slave would miss - a bug */;
+
+
+## send_error() branch
+delete from ti;
+delete from tt where a=1;
+reset master;
+show master status;
+
+# action
+
+begin;
+insert into ti values (1);
+insert into ti values (2) /* to make the dup error in the following */;
+--error ER_DUP_ENTRY
+insert into tt select * from ti /* one affected and error */;
+rollback;
+
+# check
+
+show master status;
+--replace_column 2 # 5 #
+show binlog events from 98;
+select count(*) from ti /* zero */;
+insert into ti select * from tt;
+select * from tt /* that is what otherwise slave missed - the bug */;
+
+drop table ti;
+
+
+#
+# Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack
+#
+# Testing asserts: if there is a side effect of modifying non-transactional
+# table thd->no_trans_update.stmt must be TRUE;
+# the assert is active with debug build
+#
+
+--disable_warnings
+drop function if exists bug27417;
+drop table if exists t1,t2;
+--enable_warnings
+# side effect table
+CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM;
+# target tables
+CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a));
+
+delimiter |;
+create function bug27417(n int)
+RETURNS int(11)
+begin
+ insert into t1 values (null);
+ return n;
+end|
+delimiter ;|
+
+reset master;
+
+# execute
+
+insert into t2 values (bug27417(1));
+insert into t2 select bug27417(2);
+reset master;
+
+--error ER_DUP_ENTRY
+insert into t2 values (bug27417(2));
+show master status; /* only (!) with fixes for #23333 will show there is the query */;
+select count(*) from t1 /* must be 3 */;
+
+reset master;
+select count(*) from t2;
+delete from t2 where a=bug27417(3);
+select count(*) from t2 /* nothing got deleted */;
+show master status; /* the query must be in regardless of #23333 */;
+select count(*) from t1 /* must be 5 */;
+
+--enable_info
+delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */;
+--disable_info
+select count(*) from t1 /* must be 7 */;
+
+drop function bug27417;
+drop table t1,t2;
+
+--echo end of tests
-# End of 4.1 tests
diff --git a/mysql-test/t/multi_statement.test b/mysql-test/t/multi_statement.test
index eb8d867f3f0..785aa749f5e 100644
--- a/mysql-test/t/multi_statement.test
+++ b/mysql-test/t/multi_statement.test
@@ -1,6 +1,10 @@
# PS doesn't support multi-statements
--disable_ps_protocol
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
select 1;
delimiter ||||;
select 2;
diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test
index e628e900c73..84e6a444d47 100644
--- a/mysql-test/t/multi_update.test
+++ b/mysql-test/t/multi_update.test
@@ -2,9 +2,13 @@
# Test of update statement that uses many tables.
#
+# Requires grants, so won't work with embedded server test
+-- source include/not_embedded.inc
+
--disable_warnings
drop table if exists t1,t2,t3;
drop database if exists mysqltest;
+drop view if exists v1;
--error 0,1141,1147
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
--error 0,1141,1147
@@ -457,3 +461,117 @@ create table t2(a int);
delete from t1,t2 using t1,t2 where t1.a=(select a from t1);
drop table t1, t2;
# End of 4.1 tests
+
+#
+# Test for bug #1980.
+#
+--disable_warnings
+create table t1 ( c char(8) not null ) engine=innodb;
+--enable_warnings
+
+insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
+insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
+
+alter table t1 add b char(8) not null;
+alter table t1 add a char(8) not null;
+alter table t1 add primary key (a,b,c);
+update t1 set a=c, b=c;
+
+create table t2 like t1;
+insert into t2 select * from t1;
+
+delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
+
+drop table t1,t2;
+
+--disable_warnings
+create table t1 ( c char(8) not null ) engine=bdb;
+--enable_warnings
+
+insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
+insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
+
+alter table t1 add b char(8) not null;
+alter table t1 add a char(8) not null;
+alter table t1 add primary key (a,b,c);
+update t1 set a=c, b=c;
+
+create table t2 like t1;
+insert into t2 select * from t1;
+
+delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
+
+drop table t1,t2;
+
+create table t1 (a int, b int);
+insert into t1 values (1, 2), (2, 3), (3, 4);
+create table t2 (a int);
+insert into t2 values (10), (20), (30);
+create view v1 as select a as b, a/10 as a from t2;
+
+connect (locker,localhost,root,,test);
+connection locker;
+lock table t1 write;
+
+connect (changer,localhost,root,,test);
+connection changer;
+send alter table t1 add column c int default 100 after a;
+
+connect (updater,localhost,root,,test);
+connection updater;
+send update t1, v1 set t1.b=t1.a+t1.b+v1.b where t1.a=v1.a;
+
+connection locker;
+sleep 2;
+unlock tables;
+
+connection changer;
+reap;
+
+connection updater;
+reap;
+select * from t1;
+select * from t2;
+drop view v1;
+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=MyISAM 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 be the UPDATE query event */;
+
+# 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 the UPDATE query event */;
+
+# cleanup bug#27716
+drop table t1, t2;
+
+--echo end of tests
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index f882a393621..ad223dc2664 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -450,11 +450,14 @@ drop table t1;
# Test text and unique
#
create table t1 (a int not null auto_increment primary key, b text not null, unique b (b(20)));
-insert into t1 (b) values ('a'),('a '),('a ');
+insert into t1 (b) values ('a'),('b'),('c');
select concat(b,'.') from t1;
update t1 set b='b ' where a=2;
--error 1062
update t1 set b='b ' where a > 1;
+--error 1062
+insert into t1 (b) values ('b');
+select * from t1;
delete from t1 where b='b';
select a,concat(b,'.') from t1;
drop table t1;
@@ -609,20 +612,6 @@ check table t1;
drop table t1;
-# BUG#9622 - ANALYZE TABLE and ALTER TABLE .. ENABLE INDEX produce
-# different statistics on the same table with NULL values.
-create table t1 (a int, key(a));
-
-insert into t1 values (1),(2),(3),(4),(NULL),(NULL),(NULL),(NULL);
-analyze table t1;
-show keys from t1;
-
-alter table t1 disable keys;
-alter table t1 enable keys;
-show keys from t1;
-
-drop table t1;
-
#
# Bug#12296 - CHECKSUM TABLE reports 0 for the table
# This happened if the first record was marked as deleted.
@@ -638,7 +627,10 @@ checksum table t1;
checksum table t2;
drop table t1, t2;
+#
# BUG#12232: New myisam_stats_method variable.
+#
+
show variables like 'myisam_stats_method';
create table t1 (a int, key(a));
@@ -1027,3 +1019,172 @@ SELECT DISTINCT length(c1), c1 FROM t1 ORDER BY c1;
DROP TABLE t1;
--echo End of 4.1 tests
+
+
+# Test varchar
+#
+
+let $default=`select @@storage_engine`;
+set storage_engine=MyISAM;
+source include/varchar.inc;
+
+#
+# Some errors/warnings on create
+#
+
+create table t1 (v varchar(65530), key(v));
+drop table if exists t1;
+create table t1 (v varchar(65536));
+show create table t1;
+drop table t1;
+create table t1 (v varchar(65530) character set utf8);
+show create table t1;
+drop table t1;
+
+# MyISAM specific varchar tests
+--error 1118
+create table t1 (v varchar(65535));
+
+eval set storage_engine=$default;
+
+#
+# Test how DROP TABLE works if the index or data file doesn't exists
+
+create table t1 (a int) engine=myisam;
+remove_file $MYSQLTEST_VARDIR/master-data/test/t1.MYI ;
+drop table if exists t1;
+create table t1 (a int) engine=myisam;
+remove_file $MYSQLTEST_VARDIR/master-data/test/t1.MYI ;
+--error 1051,6
+drop table t1;
+create table t1 (a int) engine=myisam;
+remove_file $MYSQLTEST_VARDIR/master-data/test/t1.MYD ;
+--error 1105,6,29
+drop table t1;
+--error 1051
+drop table t1;
+
+#
+# Test concurrent insert
+# First with static record length
+#
+set @save_concurrent_insert=@@concurrent_insert;
+set global concurrent_insert=1;
+create table t1 (a int);
+insert into t1 values (1),(2),(3),(4),(5);
+lock table t1 read local;
+connect (con1,localhost,root,,);
+connection con1;
+# Insert in table without hole
+insert into t1 values(6),(7);
+connection default;
+unlock tables;
+delete from t1 where a>=3 and a<=4;
+lock table t1 read local;
+connection con1;
+set global concurrent_insert=2;
+# Insert in table with hole -> Should insert at end
+insert into t1 values (8),(9);
+connection default;
+unlock tables;
+# Insert into hole
+insert into t1 values (10),(11),(12);
+select * from t1;
+check table t1;
+drop table t1;
+disconnect con1;
+
+# Same test with dynamic record length
+create table t1 (a int, b varchar(30) default "hello");
+insert into t1 (a) values (1),(2),(3),(4),(5);
+lock table t1 read local;
+connect (con1,localhost,root,,);
+connection con1;
+# Insert in table without hole
+insert into t1 (a) values(6),(7);
+connection default;
+unlock tables;
+delete from t1 where a>=3 and a<=4;
+lock table t1 read local;
+connection con1;
+set global concurrent_insert=2;
+# Insert in table with hole -> Should insert at end
+insert into t1 (a) values (8),(9);
+connection default;
+unlock tables;
+# Insert into hole
+insert into t1 (a) values (10),(11),(12);
+select a from t1;
+check table t1;
+drop table t1;
+disconnect con1;
+set global concurrent_insert=@save_concurrent_insert;
+
+
+# BUG#9622 - ANALYZE TABLE and ALTER TABLE .. ENABLE INDEX produce
+# different statistics on the same table with NULL values.
+create table t1 (a int, key(a));
+
+insert into t1 values (1),(2),(3),(4),(NULL),(NULL),(NULL),(NULL);
+analyze table t1;
+show keys from t1;
+
+alter table t1 disable keys;
+alter table t1 enable keys;
+show keys from t1;
+
+drop table t1;
+
+#
+# Bug#10056 - PACK_KEYS option take values greater than 1 while creating table
+#
+create table t1 (c1 int) engine=myisam pack_keys=0;
+create table t2 (c1 int) engine=myisam pack_keys=1;
+create table t3 (c1 int) engine=myisam pack_keys=default;
+--error 1064
+create table t4 (c1 int) engine=myisam pack_keys=2;
+drop table t1, t2, t3;
+
+#
+# Bug#28476: force index on a disabled myisam index gives error 124
+#
+CREATE TABLE t1(a INT, b INT, KEY inx (a), UNIQUE KEY uinx (b)) ENGINE=MyISAM;
+INSERT INTO t1(a,b) VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
+SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
+ALTER TABLE t1 DISABLE KEYS;
+SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
+SELECT a FROM t1 USE INDEX (inx) WHERE a=1;
+SELECT b FROM t1 FORCE INDEX (uinx) WHERE b=1;
+SELECT b FROM t1 USE INDEX (uinx) WHERE b=1;
+SELECT a FROM t1 FORCE INDEX (inx,uinx) WHERE a=1;
+ALTER TABLE t1 ENABLE KEYS;
+SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
+DROP TABLE t1;
+
+#
+# Bug#4692 - DISABLE/ENABLE KEYS waste a space
+#
+CREATE TABLE t1 (c1 INT, c2 INT, UNIQUE INDEX (c1), INDEX (c2)) ENGINE=MYISAM;
+--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 #
+SHOW TABLE STATUS LIKE 't1';
+INSERT INTO t1 VALUES (1,1);
+--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 #
+SHOW TABLE STATUS LIKE 't1';
+ALTER TABLE t1 DISABLE KEYS;
+--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 #
+SHOW TABLE STATUS LIKE 't1';
+ALTER TABLE t1 ENABLE KEYS;
+--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 #
+SHOW TABLE STATUS LIKE 't1';
+ALTER TABLE t1 DISABLE KEYS;
+--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 #
+SHOW TABLE STATUS LIKE 't1';
+ALTER TABLE t1 ENABLE KEYS;
+--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 #
+SHOW TABLE STATUS LIKE 't1';
+#--exec ls -log var/master-data/test/t1.MYI
+#--exec myisamchk -dvv var/master-data/test/t1.MYI
+#--exec myisamchk -iev var/master-data/test/t1.MYI
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test
new file mode 100644
index 00000000000..6e97d0faede
--- /dev/null
+++ b/mysql-test/t/mysql.test
@@ -0,0 +1,284 @@
+# This test should work in embedded server after we fix mysqltest
+-- source include/not_embedded.inc
+#
+# Testing the MySQL command line client(mysql)
+#
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Test the "delimiter" functionality
+# Bug#9879
+#
+create table t1(a int);
+insert into t1 values(1);
+
+# Test delimiters
+--exec $MYSQL test 2>&1 < "./t/mysql_delimiter.sql"
+
+--disable_query_log
+# Test delimiter : supplied on the command line
+select "Test delimiter : from command line" as "_";
+--exec $MYSQL test --delimiter=":" -e "select * from t1:"
+# Test delimiter :; supplied on the command line
+select "Test delimiter :; from command line" as "_";
+--exec $MYSQL test --delimiter=":;" -e "select * from t1:;"
+# Test 'go' command (vertical output) \G
+select "Test 'go' command(vertical output) \G" as "_";
+--exec $MYSQL test -e "select * from t1\G"
+# Test 'go' command \g
+select "Test 'go' command \g" as "_";
+--exec $MYSQL test -e "select * from t1\g"
+--enable_query_log
+drop table t1;
+
+#
+# BUG9998 - MySQL client hangs on USE "database"
+#
+create table t1(a int);
+lock tables t1 write;
+--exec $MYSQL -e "use test; select database();"
+unlock tables;
+drop table t1;
+
+#
+# Bug#16859 -- NULLs in columns must not truncate data as if a C-language "string".
+#
+--exec $MYSQL -t test -e "create table t1 (col1 binary(4), col2 varchar(10), col3 int); insert into t1 values ('a', 'b', 123421),('a ', '0123456789', 4), ('abcd', '', 4); select concat('>',col1,'<'), col2, col3 from t1; drop table t1;" 2>&1
+
+#
+# Bug#17939 Wrong table format when using UTF8 strings
+#
+--exec $MYSQL --default-character-set=utf8 --table -e "SELECT 'John Doe' as '__tañgè Ñãmé'" 2>&1
+--exec $MYSQL --default-character-set=utf8 --table -e "SELECT '__tañgè Ñãmé' as 'John Doe'" 2>&1
+
+#
+# Bug#18265 -- mysql client: No longer right-justifies numeric columns
+#
+--exec $MYSQL -t --default-character-set utf8 test -e "create table t1 (i int, j int, k char(25) charset utf8); insert into t1 (i) values (1); insert into t1 (k) values ('<----------------------->'); insert into t1 (k) values ('<-----'); insert into t1 (k) values ('Τη γλώσσα'); insert into t1 (k) values ('á›–áš´ áš·á›–á›'); select * from t1; DROP TABLE t1;"
+
+#
+# "DESCRIBE" commands may return strange NULLness flags.
+#
+--exec $MYSQL --default-character-set utf8 test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
+--exec $MYSQL -t --default-character-set utf8 test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
+
+#
+# Bug#19564: mysql displays NULL instead of space
+#
+--exec $MYSQL test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;"
+--exec $MYSQL -t test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;"
+
+#
+# Bug#21618: NULL shown as empty string in client
+#
+--exec $MYSQL test -e "select unhex('zz');"
+--exec $MYSQL -t test -e "select unhex('zz');"
+
+# Bug#19265 describe command does not work from mysql prompt
+#
+
+create table t1(a int, b varchar(255), c int);
+--exec $MYSQL test -e "desc t1"
+--exec $MYSQL test -e "desc t1\g"
+drop table t1;
+
+--disable_parsing
+#
+# Bug#21042 mysql client segfaults on importing a mysqldump export
+#
+--error 1
+--exec $MYSQL test -e "connect verylongdatabasenamethatshouldblowthe256byteslongbufferincom_connectfunctionxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxendcccccccdxxxxxxxxxxxxxxxxxkskskskskkskskskskskskskskskskkskskskskkskskskskskskskskskend" 2>&1
+--enable_parsing
+
+
+#
+# Bug #20432: mysql client interprets commands in comments
+#
+
+# if the client sees the 'use' within the comment, we haven't fixed
+--exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "*/" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+
+# SQL can have embedded comments => workie
+--exec echo "select /*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "*/ 1" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+
+# client commands on the other hand must be at BOL => error
+--exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "xxx" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "*/ use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--error 1
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+
+# client comment recognized, but parameter missing => error
+--exec echo "use" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+
+#
+# Bug #20328: mysql client interprets commands in comments
+#
+--exec $MYSQL -e "help" > $MYSQLTEST_VARDIR/tmp/bug20328_1.result
+--exec $MYSQL -e "help " > $MYSQLTEST_VARDIR/tmp/bug20328_2.result
+--diff_files $MYSQLTEST_VARDIR/tmp/bug20328_1.result $MYSQLTEST_VARDIR/tmp/bug20328_2.result
+
+#
+# Bug #19216: Client crashes on long SELECT
+#
+# Create large SELECT
+# - 3400 * 20 makes 68000 columns that is more than the
+# max number that can fit in a 16 bit number.
+
+--perl
+open(FILE,">","$ENV{'MYSQLTEST_VARDIR'}/tmp/b19216.tmp") or die;
+print FILE "select\n";
+print FILE "'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a',\n" x 3400;
+print FILE "'b';\n";
+close FILE;
+EOF
+
+--disable_query_log
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/b19216.tmp >/dev/null
+--enable_query_log
+
+--remove_file $MYSQLTEST_VARDIR/tmp/b19216.tmp
+
+#
+# Bug #20103: Escaping with backslash does not work
+#
+--exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
+--exec echo "SELECT '\';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
+
+--exec echo "SET SQL_MODE = '';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
+--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
+
+#
+# Bug#17583: mysql drops connection when stdout is not writable
+#
+create table t17583 (a int);
+insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+insert into t17583 select a from t17583;
+# Close to the minimal data needed to exercise bug.
+select count(*) from t17583;
+--exec echo "select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; " |$MYSQL test >&-
+drop table t17583;
+
+#
+# Bug#20984: Reproducible MySQL client segmentation fault
+# + additional tests for the "com_connect" function in mysql
+#
+#
+--echo Test connect without db- or host-name => reconnect
+--exec $MYSQL test -e "\r" 2>&1
+--exec $MYSQL test -e "connect" 2>&1
+
+--echo Test connect with dbname only => new dbname, old hostname
+--exec $MYSQL test -e "\r test" 2>&1
+--exec $MYSQL test -e "connect test" 2>&1
+--exec $MYSQL test -e "\rtest" 2>&1
+--error 1
+--exec $MYSQL test -e "connecttest" 2>&1
+
+--echo Test connect with _invalid_ dbname only => new invalid dbname, old hostname
+--error 1
+--exec $MYSQL test -e "\r invalid" 2>&1
+--error 1
+--exec $MYSQL test -e "connect invalid" 2>&1
+
+--echo Test connect with dbname + hostname
+--exec $MYSQL test -e "\r test localhost" 2>&1
+--exec $MYSQL test -e "connect test localhost" 2>&1
+
+--echo Test connect with dbname + _invalid_ hostname
+# Mask the errno of the error message
+--replace_regex /\([0-9]*\)/(errno)/
+--error 1
+--exec $MYSQL test -e "\r test invalid_hostname" 2>&1
+--replace_regex /\([0-9]*\)/(errno)/
+--error 1
+--exec $MYSQL test -e "connect test invalid_hostname" 2>&1
+
+--echo The commands reported in the bug report
+--replace_regex /\([0-9]*\)/(errno)/
+--error 1
+--exec $MYSQL test -e "\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1
+
+#--replace_regex /\([0-9]*\)/(errno)/
+#--error 1
+#--exec echo '\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' | $MYSQL 2>&1
+
+--echo Too long dbname
+--error 1
+--exec $MYSQL test -e "\r test_really_long_dbnamexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx localhost" 2>&1
+
+--echo Too long hostname
+--replace_regex /\([0-9]*\)/(errno)/
+--error 1
+--exec $MYSQL test -e "\r test cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1
+
+#
+# Bug #21412: mysql cmdline client allows backslash(es)
+# as delimiter but can't recognize them
+#
+
+# This should work just fine...
+--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
+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
+#
+
+--disable_query_log
+--exec $MYSQL test -e "show status" 2>&1 > /dev/null
+--exec $MYSQL --help 2>&1 > /dev/null
+--exec $MYSQL --version 2>&1 > /dev/null
+--enable_query_log
+
+#
+# bug #26851: Mysql Client --pager Buffer Overflow
+#
+
+# allow error 7(invalid argument) since --pager does not always exist in mysql
+--error 0,7
+--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/mysql_client.test b/mysql-test/t/mysql_client.test
deleted file mode 100644
index 505ca5d4b21..00000000000
--- a/mysql-test/t/mysql_client.test
+++ /dev/null
@@ -1,89 +0,0 @@
-# This test should work in embedded server after we fix mysqltest
--- source include/not_embedded.inc
-
-#
-# Bug #20432: mysql client interprets commands in comments
-#
-
-# if the client sees the 'use' within the comment, we haven't fixed
---exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "*/" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
-
-# SQL can have embedded comments => workie
---exec echo "select /*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "*/ 1" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
-
-# client commands on the other hand must be at BOL => error
---exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "xxx" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "*/ use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---error 1
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
-
-# client comment recognized, but parameter missing => error
---exec echo "use" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
-
-#
-# Bug #20328: mysql client: dumb about trailing spaces on 'help' command
-#
---exec echo 'help' | $MYSQL > $MYSQLTEST_VARDIR/tmp/bug20328.tmp
---exec echo 'help ' | $MYSQL > $MYSQLTEST_VARDIR/tmp/bug20328.tmp
-
-#
-# Bug #19216: Client crashes on long SELECT
-#
---exec echo "select" > $MYSQLTEST_VARDIR/tmp/b19216.tmp
-# 3400 * 20 makes 68000 columns that is more than the max number that can fit
-# in a 16 bit number.
-let $i= 3400;
-while ($i)
-{
- --exec echo "'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a'," >> $MYSQLTEST_VARDIR/tmp/b19216.tmp
- dec $i;
-}
-
---exec echo "'b';" >> $MYSQLTEST_VARDIR/tmp/b19216.tmp
---disable_query_log
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/b19216.tmp >/dev/null
---enable_query_log
-
-#
-# Bug#17583: mysql drops connection when stdout is not writable
-#
-create table t17583 (a int);
-insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-insert into t17583 select a from t17583;
-# Close to the minimal data needed to exercise bug.
-select count(*) from t17583;
---exec echo "select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; " |$MYSQL test >&-
-drop table t17583;
-
-#
-# Bug #19216: Client crashes on long SELECT
-#
---exec echo "select" > $MYSQLTEST_VARDIR/tmp/b19216.tmp
-# 3400 * 20 makes 68000 columns that is more than the max number that can fit
-# in a 16 bit number.
-let $i= 3400;
-while ($i)
-{
- --exec echo "'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a'," >> $MYSQLTEST_VARDIR/tmp/b19216.tmp
- dec $i;
-}
-
---exec echo "'b';" >> $MYSQLTEST_VARDIR/tmp/b19216.tmp
---disable_query_log
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/b19216.tmp >/dev/null
---enable_query_log
---echo End of 4.1 tests.
diff --git a/mysql-test/t/mysql_client_test.opt b/mysql-test/t/mysql_client_test.opt
new file mode 100644
index 00000000000..968ba95c6cc
--- /dev/null
+++ b/mysql-test/t/mysql_client_test.opt
@@ -0,0 +1 @@
+--log
diff --git a/mysql-test/t/mysql_client_test.test b/mysql-test/t/mysql_client_test.test
index 2677e470289..66a27abd61a 100644
--- a/mysql-test/t/mysql_client_test.test
+++ b/mysql-test/t/mysql_client_test.test
@@ -8,8 +8,9 @@
# server or run mysql-test-run --debug mysql_client_test and check
# var/log/mysql_client_test.trace
---exec echo "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M" > $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1
+--exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1
# End of 4.1 tests
echo ok;
+
diff --git a/mysql-test/t/mysql_delimiter.sql b/mysql-test/t/mysql_delimiter.sql
new file mode 100644
index 00000000000..db679c3b06b
--- /dev/null
+++ b/mysql-test/t/mysql_delimiter.sql
@@ -0,0 +1,61 @@
+
+# Test default delimiter ;
+select "Test default delimiter ;" as " ";
+select * from t1;
+
+# Test delimiter without argument
+select "Test delimiter without arg" as " ";
+# Nothing should be displayed, error is returned
+delimiter
+delimiter ; # Reset delimiter
+
+# Test delimiter :
+select "Test delimiter :" as " ";
+delimiter :
+select * from t1:
+delimiter ; # Reset delimiter
+
+# Test delimiter ':'
+select "Test delimiter :" as " ";
+delimiter ':'
+select * from t1:
+delimiter ; # Reset delimiter
+
+# Test delimiter :;
+select "Test delimiter :;" as " ";
+delimiter :;
+select * from t1 :;
+delimiter ; # Reset delimiter
+
+## Test delimiter //
+select "Test delimiter //" as " ";
+delimiter //
+select * from t1//
+delimiter ; # Reset delimiter
+
+# Test delimiter 'MySQL'
+select "Test delimiter MySQL" as " ";
+delimiter 'MySQL'
+select * from t1MySQL
+delimiter ; # Reset delimiter
+
+# Test delimiter 'delimiter'(should be allowed according to the code)
+select "Test delimiter delimiter" as " ";
+delimiter delimiter
+select * from t1 delimiter
+delimiter ; # Reset delimiter
+
+#
+# Bug #11523: \d works differently than delimiter
+#
+source t/mysql_delimiter_source.sql
+delimiter ; # Reset delimiter
+
+#
+# Bug #19799: delimiter command not working correctly when sourcing a sql file
+# with Windows style line endings.
+#
+source t/mysql_delimiter_19799.sql
+use test//
+show tables//
+delimiter ; # Reset delimiter
diff --git a/mysql-test/t/mysql_delimiter_19799.sql b/mysql-test/t/mysql_delimiter_19799.sql
new file mode 100755
index 00000000000..2a3d4378492
--- /dev/null
+++ b/mysql-test/t/mysql_delimiter_19799.sql
@@ -0,0 +1 @@
+delimiter //
diff --git a/mysql-test/t/mysql_delimiter_source.sql b/mysql-test/t/mysql_delimiter_source.sql
new file mode 100644
index 00000000000..f645091f3d4
--- /dev/null
+++ b/mysql-test/t/mysql_delimiter_source.sql
@@ -0,0 +1,8 @@
+delimiter //
+create table t2 (a int) //
+delimiter ;
+\d //
+create table t3 (a int) //
+\d ;
+show tables;
+drop table t2, t3;
diff --git a/mysql-test/t/mysql_upgrade.test b/mysql-test/t/mysql_upgrade.test
new file mode 100644
index 00000000000..233e8c7c256
--- /dev/null
+++ b/mysql-test/t/mysql_upgrade.test
@@ -0,0 +1,70 @@
+# Can't run test of external client with embedded server
+-- source include/not_embedded.inc
+
+# Only run test if "mysql_upgrade" is found
+--require r/have_mysql_upgrade.result
+--disable_query_log
+select LENGTH("$MYSQL_UPGRADE")>0 as have_mysql_upgrade;
+--enable_query_log
+
+#
+# Basic test that we can run mysql_upgrde and that it finds the
+# expected binaries it uses.
+#
+--echo Run mysql_upgrade once
+--exec $MYSQL_UPGRADE --skip-verbose 2>&1
+
+# It should have created a file in the MySQL Servers datadir
+file_exists $MYSQLTEST_VARDIR/master-data/mysql_upgrade_info;
+
+--echo Run it again - should say already completed
+--replace_result $MYSQL_SERVER_VERSION VERSION
+--error 1
+--exec $MYSQL_UPGRADE --skip-verbose 2>&1
+
+# It should have created a file in the MySQL Servers datadir
+file_exists $MYSQLTEST_VARDIR/master-data/mysql_upgrade_info;
+
+--echo Force should run it regardless of wether it's been run before
+--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
+
+# It should have created a file in the MySQL Servers datadir
+file_exists $MYSQLTEST_VARDIR/master-data/mysql_upgrade_info;
+
+
+#
+# Bug #25452 mysql_upgrade access denied.
+#
+
+# Password protect a root account and run mysql_upgrade
+
+CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
+GRANT ALL ON *.* TO mysqltest1@'%';
+--echo Run mysql_upgrade with password protected account
+--exec $MYSQL_UPGRADE --skip-verbose --force --user=mysqltest1 --password=sakila 2>&1
+
+DROP USER mysqltest1@'%';
+
+
+#
+# Bug #26639 mysql_upgrade exits successfully even if external command failed
+#
+
+--echo Run mysql_upgrade with a non existing server socket
+--replace_result $MYSQLTEST_VARDIR var
+--replace_regex /.*mysqlcheck.*: Got/mysqlcheck: Got/ /\([0-9]*\)/(errno)/
+--error 1
+--exec $MYSQL_UPGRADE --skip-verbose --force --host=not_existing_host 2>&1
+
+#
+# Bug #28401 mysql_upgrade Failed with STRICT_ALL_TABLES, ANSI_QUOTES and NO_ZERO_DATE
+#
+
+# The SQL commands used by mysql_upgrade are written to be run
+# with sql_mode set to '' - thus the scripts should change sql_mode
+# for the session to make sure the SQL is legal.
+
+# Test by setting sql_mode before running mysql_upgrade
+set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
+--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
+eval set GLOBAL sql_mode=default;
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/mysqlbinlog-cp932-master.opt b/mysql-test/t/mysqlbinlog-cp932-master.opt
new file mode 100644
index 00000000000..bb0cda4519a
--- /dev/null
+++ b/mysql-test/t/mysqlbinlog-cp932-master.opt
@@ -0,0 +1 @@
+--max-binlog-size=8192
diff --git a/mysql-test/t/mysqlbinlog-cp932.test b/mysql-test/t/mysqlbinlog-cp932.test
new file mode 100644
index 00000000000..1c9f91fd9a8
--- /dev/null
+++ b/mysql-test/t/mysqlbinlog-cp932.test
@@ -0,0 +1,22 @@
+# disabled in embedded until tools running is fixed with embedded
+-- source include/not_embedded.inc
+-- source include/have_cp932.inc
+-- source include/have_log_bin.inc
+
+# Bug#16217 (mysql client did not know how not switch its internal charset)
+flush logs;
+create table t3 (f text character set utf8);
+create table t4 (f text character set cp932);
+--exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'ソ')"
+--exec $MYSQL --default-character-set=cp932 test -e "insert into t4 values(_cp932'ƒ\');"
+flush logs;
+rename table t3 to t03, t4 to t04;
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000002 | $MYSQL --default-character-set=utf8
+# original and recovered data must be equal
+select HEX(f) from t03;
+select HEX(f) from t3;
+select HEX(f) from t04;
+select HEX(f) from t4;
+
+drop table t3, t4, t03, t04;
+--echo End of 5.0 tests
diff --git a/mysql-test/t/mysqlbinlog.test b/mysql-test/t/mysqlbinlog.test
index 6fed78fe4ae..451eef17108 100644
--- a/mysql-test/t/mysqlbinlog.test
+++ b/mysql-test/t/mysqlbinlog.test
@@ -1,13 +1,12 @@
# We are using .opt file since we need small binlog size
-# Embedded server doesn't support binlogging
--- source include/not_embedded.inc
+-- source include/have_log_bin.inc
# we need this for getting fixed timestamps inside of this test
set timestamp=1000000000;
--disable_warnings
-drop table if exists t1,t2;
+drop table if exists t1,t2,t3,t4,t5,t03,t04;
--enable_warnings
create table t1 (word varchar(20));
@@ -22,12 +21,11 @@ insert into t2 values ();
# test for load data and load data distributed among the several
# files (we need to fill up first binlog)
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
-load data infile '../../std_data/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
# simple query to show more in second binlog
insert into t1 values ("Alas");
flush logs;
@@ -42,29 +40,29 @@ select "--- Local --" as "";
# be time dependend. Better than nothing.
#
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ $MYSQL_TEST_DIR/var/log/master-bin.000001
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000001
# this should not fail but shouldn't produce any working statements
--disable_query_log
select "--- Broken LOAD DATA --" as "";
--enable_query_log
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ $MYSQL_TEST_DIR/var/log/master-bin.000002 2> /dev/null
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000002 2> /dev/null
# this should show almost nothing
--disable_query_log
select "--- --database --" as "";
--enable_query_log
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --database=nottest $MYSQL_TEST_DIR/var/log/master-bin.000001 2> /dev/null
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --database=nottest $MYSQLTEST_VARDIR/log/master-bin.000001 2> /dev/null
# this test for position option
--disable_query_log
select "--- --position --" as "";
--enable_query_log
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --position=27 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=231 $MYSQLTEST_VARDIR/log/master-bin.000002
# These are tests for remote binlog.
# They should return the same as previous test.
@@ -74,62 +72,169 @@ select "--- Remote --" as "";
--enable_query_log
# This is broken now
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
# This is broken too
--disable_query_log
select "--- Broken LOAD DATA --" as "";
--enable_query_log
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 2> /dev/null
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 2> /dev/null
# And this too ! (altough it is documented)
--disable_query_log
select "--- --database --" as "";
--enable_query_log
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --database=nottest master-bin.000001 2> /dev/null
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --database=nottest master-bin.000001 2> /dev/null
# Strangely but this works
--disable_query_log
select "--- --position --" as "";
--enable_query_log
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --position=27 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --position=231 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
+# Bug#7853 (mysqlbinlog does not accept input from stdin)
+--disable_query_log
+select "--- reading stdin --" as "";
+--enable_query_log
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--exec $MYSQL_BINLOG --short-form - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
-# Bug#16217 (mysql client did not know how not switch its internal charset)
-flush logs;
-create table t3 (f text character set utf8);
-create table t4 (f text character set cp932);
---exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'ソ')"
---exec $MYSQL --default-character-set=cp932 test -e "insert into t4 values(_cp932'ƒ\');"
-flush logs;
-rename table t3 to t03, t4 to t04;
---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000004 > $MYSQL_TEST_DIR/var/tmp/bug16217.sql
---exec $MYSQL --default-character-set=utf8 < $MYSQL_TEST_DIR/var/tmp/bug16217.sql
-# original and recovered data must be equal
-select HEX(f) from t03;
-select HEX(f) from t3;
-select HEX(f) from t04;
-select HEX(f) from t4;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--exec $MYSQL_BINLOG --short-form --position=79 - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
+drop table t1,t2;
#
#BUG#14157: utf8 encoding in binlog without set character_set_client
#
flush logs;
---exec $MYSQL test -e 'create table if not exists t5 (a int); set names latin1; create temporary table `äöüÄÖÜ` (a int); insert into `äöüÄÖÜ` values (1); insert into t5 select * from `äöüÄÖÜ`'
+--write_file $MYSQLTEST_VARDIR/tmp/bug14157.sql
+create table if not exists t5 (a int);
+set names latin1;
+create temporary table `äöüÄÖÜ` (a int);
+insert into `äöüÄÖÜ` values (1);
+insert into t5 select * from `äöüÄÖÜ`
+EOF
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug14157.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/bug14157.sql
# resulted binlog, parly consisting of multi-byte utf8 chars,
# must be digestable for both client and server. In 4.1 the client
# should use default-character-set same as the server.
---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000006 > $MYSQL_TEST_DIR/var/tmp/bug14157.sql
---exec $MYSQL < $MYSQL_TEST_DIR/var/tmp/bug14157.sql
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000004 | $MYSQL
select * from t5 /* must be (1),(1) */;
+drop table t5;
+
+#
+# Bug#22645 LC_TIME_NAMES: Statement not replicated
+# Check that a dump created by mysqlbinlog reproduces
+# lc_time_names dependent values correctly
+#
+flush logs;
+create table t5 (c1 int, c2 varchar(128) character set latin1 not null);
+insert into t5 values (1, date_format('2001-01-01','%W'));
+set lc_time_names=de_DE;
+insert into t5 values (2, date_format('2001-01-01','%W'));
+set lc_time_names=en_US;
+insert into t5 values (3, date_format('2001-01-01','%W'));
+select * from t5 order by c1;
+flush logs;
+drop table t5;
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000005 | $MYSQL
+select * from t5 order by c1;
+drop table t5;
+
+#
+# Bug#20396 Bin Log does not get DELIMETER cmd - Recover StoredProc fails
+#
+--disable_warnings
+drop procedure if exists p1;
+--enable_warnings
+flush logs;
+delimiter //;
+create procedure p1()
+begin
+select 1;
+end;
+//
+delimiter ;//
+flush logs;
+call p1();
+drop procedure p1;
+--error 1305
+call p1();
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000007
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000007 | $MYSQL
+call p1();
+drop procedure p1;
+
+#
+# Some coverage of not normally used parts
+#
+--disable_query_log
+--exec $MYSQL_BINLOG --version 2>&1 > /dev/null
+--exec $MYSQL_BINLOG --help 2>&1 > /dev/null
+--enable_query_log
-# clean up
-drop table t1, t2, t03, t04, t3, t4, t5;
+#
+# Bug#15126 character_set_database is not replicated
+# (LOAD DATA INFILE need it)
+#
-# End of 4.1 tests
+flush logs;
+create table t1 (a varchar(64) character set utf8);
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=latin1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set character_set_database=latin1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1 character set koi8r;
+select hex(a) from t1;
+drop table t1;
+flush logs;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000009
+#
+# Bug#28293 missed '#' sign in the hex dump when the dump length
+# is divisible by 16.
+#
+
+CREATE TABLE t1 (c1 CHAR(10));
+# we need this for getting fixed timestamps inside of this test
+flush logs;
+INSERT INTO t1 VALUES ('0123456789');
+flush logs;
+DROP TABLE t1;
+--exec $MYSQL_BINLOG --hexdump --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000011 | grep 'Query' | sed 's/[0-9]\{1,\}/REMOVED/g'
+
+#
+# Bug #29928: incorrect connection_id() restoring from mysqlbinlog out
+#
+flush logs;
+create table t1(a int);
+insert into t1 values(connection_id());
+let $a= `select a from t1`;
+flush logs;
+--exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000013 > $MYSQLTEST_VARDIR/tmp/bug29928.sql
+drop table t1;
+connect (con1, localhost, root, , test);
+connection con1;
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug29928.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/bug29928.sql
+let $b= `select a from t1`;
+disconnect con1;
+connection default;
+let $c= `select $a=$b`;
+--echo $c
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/mysqlbinlog2.test b/mysql-test/t/mysqlbinlog2.test
index 67131dd9d0d..c6869d67da1 100644
--- a/mysql-test/t/mysqlbinlog2.test
+++ b/mysql-test/t/mysqlbinlog2.test
@@ -1,8 +1,7 @@
# Test for the new options --start-datetime, stop-datetime,
# and a few others.
-# Embedded server doesn't support binlogging
--- source include/not_embedded.inc
+-- source include/have_log_bin.inc
--disable_warnings
drop table if exists t1;
@@ -40,28 +39,32 @@ select "--- Local --" as "";
# be time dependent (the Start events). Better than nothing.
#
---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- offset --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --offset=2 $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form --offset=2 $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- start-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --start-position=497 $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form --start-position=600 $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- stop-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --stop-position=497 $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form --stop-position=600 $MYSQLTEST_VARDIR/log/master-bin.000001
+--disable_query_log
+select "--- start and stop positions ---" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --start-position=600 --stop-position 725 $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- start-datetime --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- stop-datetime --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- Local with 2 binlogs on command line --" as "";
@@ -69,28 +72,28 @@ select "--- Local with 2 binlogs on command line --" as "";
# This is to verify that some options apply only to first, or last binlog
---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
--disable_query_log
select "--- offset --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --offset=2 $MYSQL_TEST_DIR/var/log/master-bin.000001 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--exec $MYSQL_BINLOG --short-form --offset=2 $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
--disable_query_log
select "--- start-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --start-position=497 $MYSQL_TEST_DIR/var/log/master-bin.000001 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--exec $MYSQL_BINLOG --short-form --start-position=600 $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
--disable_query_log
select "--- stop-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --stop-position=32 $MYSQL_TEST_DIR/var/log/master-bin.000001 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--exec $MYSQL_BINLOG --short-form --stop-position=126 $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
--disable_query_log
select "--- start-datetime --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQL_TEST_DIR/var/log/master-bin.000001 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
--disable_query_log
select "--- stop-datetime --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQL_TEST_DIR/var/log/master-bin.000001 $MYSQL_TEST_DIR/var/log/master-bin.000002
+--exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
--disable_query_log
select "--- Remote --" as "";
@@ -105,11 +108,15 @@ select "--- offset --" as "";
--disable_query_log
select "--- start-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --start-position=497 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
+--exec $MYSQL_BINLOG --short-form --start-position=600 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
--disable_query_log
select "--- stop-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --stop-position=497 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
+--exec $MYSQL_BINLOG --short-form --stop-position=600 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
+--disable_query_log
+select "--- start and stop positions ---" as "";
+--enable_query_log
+--exec $MYSQL_BINLOG --short-form --start-position=600 --stop-position 725 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
--disable_query_log
select "--- start-datetime --" as "";
--enable_query_log
@@ -132,11 +139,11 @@ select "--- offset --" as "";
--disable_query_log
select "--- start-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --start-position=497 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
+--exec $MYSQL_BINLOG --short-form --start-position=600 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
--disable_query_log
select "--- stop-position --" as "";
--enable_query_log
---exec $MYSQL_BINLOG --short-form --stop-position=32 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
+--exec $MYSQL_BINLOG --short-form --stop-position=126 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
--disable_query_log
select "--- start-datetime --" as "";
--enable_query_log
diff --git a/mysql-test/t/mysqlcheck.test b/mysql-test/t/mysqlcheck.test
new file mode 100644
index 00000000000..f4e18d4004f
--- /dev/null
+++ b/mysql-test/t/mysqlcheck.test
@@ -0,0 +1,34 @@
+# Clean up after previous tests
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+drop view if exists v1;
+drop database if exists client_test_db;
+--enable_warnings
+
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+#
+# Bug #13783 mysqlcheck tries to optimize and analyze information_schema
+#
+--replace_result 'Table is already up to date' OK
+--exec $MYSQL_CHECK --all-databases --analyze --optimize
+--replace_result 'Table is already up to date' OK
+--exec $MYSQL_CHECK --analyze --optimize --databases test information_schema mysql
+--exec $MYSQL_CHECK --analyze --optimize information_schema schemata
+
+#
+# Bug #16502: mysqlcheck tries to check views
+#
+create table t1 (a int);
+create view v1 as select * from t1;
+--replace_result 'Table is already up to date' OK
+--exec $MYSQL_CHECK --analyze --optimize --databases test
+--replace_result 'Table is already up to date' OK
+--exec $MYSQL_CHECK --all-in-1 --analyze --optimize --databases test
+drop view v1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/mysqldump-compat.opt b/mysql-test/t/mysqldump-compat.opt
new file mode 100644
index 00000000000..40d4ac738a6
--- /dev/null
+++ b/mysql-test/t/mysqldump-compat.opt
@@ -0,0 +1 @@
+--loose-debug=d,4x_server_emul
diff --git a/mysql-test/t/mysqldump-compat.test b/mysql-test/t/mysqldump-compat.test
new file mode 100644
index 00000000000..848d66cc728
--- /dev/null
+++ b/mysql-test/t/mysqldump-compat.test
@@ -0,0 +1,13 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+#
+# Bug #30126: semicolon before closing */ in /*!... CREATE DATABASE ;*/
+#
+
+CREATE DATABASE mysqldump_30126;
+USE mysqldump_30126;
+CREATE TABLE t1 (c1 int);
+--exec $MYSQL_DUMP --add-drop-database mysqldump_30126 > $MYSQLTEST_VARDIR/tmp/bug30126.sql
+--exec $MYSQL mysqldump_30126 < $MYSQLTEST_VARDIR/tmp/bug30126.sql
+DROP DATABASE mysqldump_30126;
diff --git a/mysql-test/t/mysqldump-max.test b/mysql-test/t/mysqldump-max.test
new file mode 100644
index 00000000000..359c4ea5793
--- /dev/null
+++ b/mysql-test/t/mysqldump-max.test
@@ -0,0 +1,68 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+--source include/have_innodb.inc
+--source include/have_archive.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3, t4, t5, t6;
+--enable_warnings
+
+create table t1 (id int(8), name varchar(32));
+create table t2 (id int(8), name varchar(32)) ENGINE="MyISAM";
+create table t3 (id int(8), name varchar(32)) ENGINE="MEMORY";
+create table t4 (id int(8), name varchar(32)) ENGINE="HEAP";
+create table t5 (id int(8), name varchar(32)) ENGINE="ARCHIVE";
+create table t6 (id int(8), name varchar(32)) ENGINE="InnoDB";
+
+insert into t1 values (1, 'first value');
+insert into t1 values (2, 'first value');
+insert into t1 values (3, 'first value');
+insert into t1 values (4, 'first value');
+insert into t1 values (5, 'first value');
+
+insert into t2 values (1, 'first value');
+insert into t2 values (2, 'first value');
+insert into t2 values (3, 'first value');
+insert into t2 values (4, 'first value');
+insert into t2 values (5, 'first value');
+
+insert into t3 values (1, 'first value');
+insert into t3 values (2, 'first value');
+insert into t3 values (3, 'first value');
+insert into t3 values (4, 'first value');
+insert into t3 values (5, 'first value');
+
+insert into t4 values (1, 'first value');
+insert into t4 values (2, 'first value');
+insert into t4 values (3, 'first value');
+insert into t4 values (4, 'first value');
+insert into t4 values (5, 'first value');
+
+insert into t5 values (1, 'first value');
+insert into t5 values (2, 'first value');
+insert into t5 values (3, 'first value');
+insert into t5 values (4, 'first value');
+insert into t5 values (5, 'first value');
+
+insert into t6 values (1, 'first value');
+insert into t6 values (2, 'first value');
+insert into t6 values (3, 'first value');
+insert into t6 values (4, 'first value');
+insert into t6 values (5, 'first value');
+
+select * from t1;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+select * from t6;
+
+--exec $MYSQL_DUMP --skip-comments --delayed-insert --insert-ignore --databases test
+--exec $MYSQL_DUMP --skip-comments --delayed-insert --databases test
+
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+drop table t5;
+drop table t6;
diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test
index 4a077f1ffa3..6dba0a590d0 100644
--- a/mysql-test/t/mysqldump.test
+++ b/mysql-test/t/mysqldump.test
@@ -1,8 +1,16 @@
# Embedded server doesn't support external clients
--source include/not_embedded.inc
+--source include/have_log_bin.inc
+
+# Binlog is required
+--source include/have_log_bin.inc
--disable_warnings
-DROP TABLE IF EXISTS t1, `"t"1`, t2, t3;
+DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa, t3;
+drop database if exists mysqldump_test_db;
+drop database if exists db1;
+drop database if exists db2;
+drop view if exists v1, v2, v3;
--enable_warnings
# XML output
@@ -12,31 +20,31 @@ INSERT INTO t1 VALUES (1), (2);
--exec $MYSQL_DUMP --skip-create --skip-comments -X test t1
DROP TABLE t1;
-#
-# Bug #2005
-#
+--echo #
+--echo # Bug #2005
+--echo #
-CREATE TABLE t1 (a decimal(240, 20));
+CREATE TABLE t1 (a decimal(64, 20));
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
("0987654321098765432109876543210987654321");
--exec $MYSQL_DUMP --compact test t1
DROP TABLE t1;
-#
-# Bug #2055
-#
+--echo #
+--echo # Bug #2055
+--echo #
CREATE TABLE t1 (a double);
-INSERT INTO t1 VALUES (-9e999999);
+INSERT INTO t1 VALUES ('-9e999999');
# The following replaces is here because some systems replaces the above
# double with '-inf' and others with MAX_DOUBLE
--replace_result (-1.79769313486232e+308) (RES) (NULL) (RES)
--exec $MYSQL_DUMP --compact test t1
DROP TABLE t1;
-#
-# Bug #3361 mysqldump quotes DECIMAL values inconsistently
-#
+--echo #
+--echo # Bug #3361 mysqldump quotes DECIMAL values inconsistently
+--echo #
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
@@ -65,28 +73,28 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
--exec $MYSQL_DUMP --skip-create --compact -X test t1
DROP TABLE t1;
-#
-# Bug #1707
-#
+--echo #
+--echo # Bug #1707
+--echo #
CREATE TABLE t1 (`a"b"` char(2));
INSERT INTO t1 VALUES ("1\""), ("\"2");
--exec $MYSQL_DUMP --compact --skip-create -X test t1
DROP TABLE t1;
-#
-# Bug #1994
-# Bug #4261
-#
+--echo #
+--echo # Bug #1994
+--echo # Bug #4261
+--echo #
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
--exec $MYSQL_DUMP --skip-comments --skip-extended-insert test t1
DROP TABLE t1;
-#
-# Bug #2634
-#
+--echo #
+--echo # Bug #2634
+--echo #
CREATE TABLE t1 (a int) ENGINE=MYISAM;
INSERT INTO t1 VALUES (1), (2);
@@ -94,17 +102,17 @@ INSERT INTO t1 VALUES (1), (2);
--exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1
DROP TABLE t1;
-#
-# Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
-#
+--echo #
+--echo # Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
+--echo #
create table ```a` (i int);
--exec $MYSQL_DUMP --compact test
drop table ```a`;
-#
-# Bug #2591 "mysqldump quotes names inconsistently"
-#
+--echo #
+--echo # Bug #2591 "mysqldump quotes names inconsistently"
+--echo #
create table t1(a int);
--exec $MYSQL_DUMP --comments=0 test
@@ -115,25 +123,25 @@ set global sql_mode='ANSI_QUOTES';
set global sql_mode='';
drop table t1;
-#
-# Bug #2705 'mysqldump --tab extra output'
-#
+--echo #
+--echo # Bug #2705 'mysqldump --tab extra output'
+--echo #
create table t1(a int);
insert into t1 values (1),(2),(3);
---exec $MYSQL_DUMP --skip-comments --tab=$MYSQL_TEST_DIR/var/tmp/ test
---exec cat $MYSQL_TEST_DIR/var/tmp/t1.sql
---exec cat $MYSQL_TEST_DIR/var/tmp/t1.txt
---exec rm $MYSQL_TEST_DIR/var/tmp/t1.sql
---exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
---exec $MYSQL_DUMP --tab=$MYSQL_TEST_DIR/var/tmp/ test
---exec rm $MYSQL_TEST_DIR/var/tmp/t1.sql
---exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
+--exec $MYSQL_DUMP --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test
+--cat_file $MYSQLTEST_VARDIR/tmp/t1.sql
+--cat_file $MYSQLTEST_VARDIR/tmp/t1.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.txt
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ test
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.txt
drop table t1;
-#
-# Bug #6101: create database problem
-#
+--echo #
+--echo # Bug #6101: create database problem
+--echo #
--exec $MYSQL_DUMP --skip-comments --databases test
@@ -141,32 +149,34 @@ create database mysqldump_test_db character set latin2 collate latin2_bin;
--exec $MYSQL_DUMP --skip-comments --databases mysqldump_test_db
drop database mysqldump_test_db;
-#
-# Bug #7020
-# Check that we don't dump in UTF8 in compatible mode by default,
-# but use the default compiled values, or the values given in
-# --default-character-set=xxx. However, we should dump in UTF8
-# if it is explicitely set.
+--echo #
+--echo # Bug #7020
+--echo # Check that we don't dump in UTF8 in compatible mode by default,
+--echo # but use the default compiled values, or the values given in
+--echo # --default-character-set=xxx. However, we should dump in UTF8
+--echo # if it is explicitely set.
CREATE TABLE t1 (a CHAR(10));
INSERT INTO t1 VALUES (_latin1 'ÄÖÜß');
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments test t1
-#
-# Bug#8063: make test mysqldump [ fail ]
-# We cannot tes this command because its output depends
-# on --default-character-set incompiled into "mysqldump" program.
-# If the future we can move this command into a separate test with
-# checking that "mysqldump" is compiled with "latin1"
-#
+
+--echo #
+--echo # Bug#8063: make test mysqldump [ fail ]
+--echo # We cannot tes this command because its output depends
+--echo # on --default-character-set incompiled into "mysqldump" program.
+--echo # If the future we can move this command into a separate test with
+--echo # checking that "mysqldump" is compiled with "latin1"
+--echo #
+
#--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 test t1
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1
DROP TABLE t1;
-#
-# WL #2319: Exclude Tables from dump
-#
+--echo #
+--echo # WL #2319: Exclude Tables from dump
+--echo #
CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
@@ -176,30 +186,30 @@ INSERT INTO t2 VALUES (4),(5),(6);
DROP TABLE t1;
DROP TABLE t2;
-#
-# Bug #8830
-#
+--echo #
+--echo # Bug #8830
+--echo #
CREATE TABLE t1 (`b` blob);
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1
DROP TABLE t1;
-#
-# Test for --insert-ignore
-#
+--echo #
+--echo # Test for --insert-ignore
+--echo #
-CREATE TABLE t1 (a decimal(240, 20));
-INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
-("0987654321098765432109876543210987654321");
---exec $MYSQL_DUMP --insert-ignore --skip-comments test t1
---exec $MYSQL_DUMP --insert-ignore --skip-comments --delayed-insert test t1
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1),(2),(3);
+INSERT INTO t1 VALUES (4),(5),(6);
+--exec $MYSQL_DUMP --skip-comments --insert-ignore test t1
+--exec $MYSQL_DUMP --skip-comments --insert-ignore --delayed-insert test t1
DROP TABLE t1;
-#
-# Bug #10286: mysqldump -c crashes on table that has many fields with long
-# names
-#
+--echo #
+--echo # Bug #10286: mysqldump -c crashes on table that has many fields with long
+--echo # names
+--echo #
create table t1 (
F_c4ca4238a0b923820dcc509a6f75849b int,
F_c81e728d9d4c2f636f067f89cc14862c int,
@@ -535,18 +545,18 @@ insert into t1 (F_8d3bba7425e7c98c50f52ca1b52d3735) values (1);
--exec $MYSQL_DUMP --skip-comments -c test
drop table t1;
-#
-# Test for --add-drop-database
-#
+--echo #
+--echo # Test for --add-drop-database
+--echo #
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (1),(2),(3);
--exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test
DROP TABLE t1;
-#
-# Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
-#
+--echo #
+--echo # Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
+--echo #
CREATE DATABASE mysqldump_test_db;
USE mysqldump_test_db;
@@ -556,14 +566,16 @@ INSERT INTO t1 VALUES (1), (2);
INSERT INTO t2 VALUES (1), (2);
--exec $MYSQL_DUMP --skip-comments --no-data mysqldump_test_db
--exec $MYSQL_DUMP --skip-comments --no-data mysqldump_test_db t1 t2
+--exec $MYSQL_DUMP --skip-comments --skip-create --xml --no-data mysqldump_test_db
+--exec $MYSQL_DUMP --skip-comments --skip-create --xml --no-data mysqldump_test_db t1 t2
DROP TABLE t1, t2;
DROP DATABASE mysqldump_test_db;
-#
-# Testing with tables and databases that don't exists
-# or contains illegal characters
-# (Bug #9358 mysqldump crashes if tablename starts with \)
-#
+--echo #
+--echo # Testing with tables and databases that don't exists
+--echo # or contains illegal characters
+--echo # (Bug #9358 mysqldump crashes if tablename starts with \)
+--echo #
create database mysqldump_test_db;
use mysqldump_test_db;
create table t1(a varchar(30) primary key, b int not null);
@@ -595,19 +607,19 @@ select '------ Testing with illegal table names ------' as test_sequence ;
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t/1" 2>&1
--error 6
---exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T_1"
+--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_1" 2>&1
--error 6
---exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T%1"
+--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T%1" 2>&1
--error 6
---exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T'1"
+--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T'1" 2>&1
--error 6
---exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T_1"
+--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_1" 2>&1
--error 6
---exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T_"
+--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_" 2>&1
--disable_query_log
select '------ Testing with illegal database names ------' as test_sequence ;
@@ -623,9 +635,9 @@ drop database mysqldump_test_db;
use test;
-#
-# Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
-#
+--echo #
+--echo # Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
+--echo #
create table t1 (a int(10));
create table t2 (pk int primary key auto_increment,
@@ -635,28 +647,30 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
--exec $MYSQL_DUMP --skip-comments --xml --no-create-info test
drop table t1, t2;
-#
-# BUG #12123
-#
+--echo #
+--echo # BUG #12123
+--echo #
+
create table t1 (a text character set utf8, b text character set latin1);
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
select * from t1;
---exec $MYSQL_DUMP --tab=$MYSQL_TEST_DIR/var/tmp/ test
---exec $MYSQL test < $MYSQL_TEST_DIR/var/tmp/t1.sql
---exec $MYSQL_IMPORT test $MYSQL_TEST_DIR/var/tmp/t1.txt
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ test
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/t1.sql
+--exec $MYSQL_IMPORT test $MYSQLTEST_VARDIR/tmp/t1.txt
select * from t1;
drop table t1;
-#
-# BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
-#
+--echo #
+--echo # BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
+--echo #
---exec $MYSQL_MY_PRINT_DEFAULTS --defaults-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
+--exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
+--echo #
+--echo # BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
+--echo #
-# BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
-#
create table `t1` (
t1_name varchar(255) default null,
t1_id int(10) unsigned not null auto_increment,
@@ -683,9 +697,9 @@ show create table `t1`;
drop table `t1`;
-#
-# Bug #18536: wrong table order
-#
+--echo #
+--echo # Bug #18536: wrong table order
+--echo #
create table t1(a int);
create table t2(a int);
@@ -694,17 +708,21 @@ create table t3(a int);
--exec $MYSQL_DUMP --skip-comments --force --no-data test t3 t1 non_existing t2
drop table t1, t2, t3;
-#
-# Bug #21288: mysqldump segmentation fault when using --where
-#
+--echo #
+--echo # Bug #21288: mysqldump segmentation fault when using --where
+--echo #
+
create table t1 (a int);
--error 2
---exec $MYSQL_DUMP --skip-comments --force test t1 --where='xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 2>&1
+--exec $MYSQL_DUMP --skip-comments --force test t1 --where="xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 2>&1
drop table t1;
-#
-# BUG#13926: --order-by-primary fails if PKEY contains quote character
-#
+--echo #
+--echo # BUG#13926: --order-by-primary fails if PKEY contains quote character
+--echo #
+
+--disable_warnings
+DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a b` INT,
`c"d` INT,
@@ -716,5 +734,865 @@ insert into t1 values (0815, 4711, 2006);
--exec $MYSQL_DUMP --skip-comments --compatible=ansi --order-by-primary test t1
--exec $MYSQL_DUMP --skip-comments --order-by-primary test t1
DROP TABLE `t1`;
+--enable_warnings
--echo End of 4.1 tests
+
+--echo #
+--echo # Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
+--echo #
+
+create database db1;
+use db1;
+
+CREATE TABLE t2 (
+ a varchar(30) default NULL,
+ KEY a (a(5))
+);
+
+INSERT INTO t2 VALUES ('alfred');
+INSERT INTO t2 VALUES ('angie');
+INSERT INTO t2 VALUES ('bingo');
+INSERT INTO t2 VALUES ('waffle');
+INSERT INTO t2 VALUES ('lemon');
+create view v2 as select * from t2 where a like 'a%' with check option;
+--exec $MYSQL_DUMP --skip-comments db1
+drop table t2;
+drop view v2;
+drop database db1;
+use test;
+
+--echo #
+--echo # Bug 10713 mysqldump includes database in create view and referenced tables
+--echo #
+
+# create table and views in db2
+create database db2;
+use db2;
+create table t1 (a int);
+create table t2 (a int, b varchar(10), primary key(a));
+insert into t2 values (1, "on"), (2, "off"), (10, "pol"), (12, "meg");
+insert into t1 values (289), (298), (234), (456), (789);
+create view v1 as select * from t2;
+create view v2 as select * from t1;
+
+# dump tables and view from db2
+--exec $MYSQL_DUMP db2 > $MYSQLTEST_VARDIR/tmp/bug10713.sql
+
+# drop the db, tables and views
+drop table t1, t2;
+drop view v1, v2;
+drop database db2;
+use test;
+
+# create db1 and reload dump
+create database db1;
+use db1;
+--exec $MYSQL db1 < $MYSQLTEST_VARDIR/tmp/bug10713.sql
+
+# check that all tables and views could be created
+show tables;
+select * from t2 order by a;
+
+drop table t1, t2;
+drop database db1;
+use test;
+
+#
+# dump of view
+#
+create table t1(a int);
+create view v1 as select * from t1;
+--exec $MYSQL_DUMP --skip-comments test
+drop view v1;
+drop table t1;
+
+--echo #
+--echo # Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
+--echo #
+
+create database mysqldump_test_db;
+use mysqldump_test_db;
+
+CREATE TABLE t2 (
+ a varchar(30) default NULL,
+ KEY a (a(5))
+);
+
+INSERT INTO t2 VALUES ('alfred');
+INSERT INTO t2 VALUES ('angie');
+INSERT INTO t2 VALUES ('bingo');
+INSERT INTO t2 VALUES ('waffle');
+INSERT INTO t2 VALUES ('lemon');
+create view v2 as select * from t2 where a like 'a%' with check option;
+--exec $MYSQL_DUMP --skip-comments mysqldump_test_db
+drop table t2;
+drop view v2;
+drop database mysqldump_test_db;
+use test;
+
+--echo #
+--echo # Bug #9756
+--echo #
+
+CREATE TABLE t1 (a char(10));
+INSERT INTO t1 VALUES ('\'');
+--exec $MYSQL_DUMP --skip-comments test t1
+DROP TABLE t1;
+
+--echo #
+--echo # Bug #10927 mysqldump: Can't reload dump with view that consist of other view
+--echo #
+
+create table t1(a int, b int, c varchar(30));
+
+insert into t1 values(1, 2, "one"), (2, 4, "two"), (3, 6, "three");
+
+create view v3 as
+select * from t1;
+
+create view v1 as
+select * from v3 where b in (1, 2, 3, 4, 5, 6, 7);
+
+create view v2 as
+select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1;
+
+--exec $MYSQL_DUMP --skip-comments test
+
+drop view v1, v2, v3;
+drop table t1;
+
+--echo #
+--echo # Test for dumping triggers
+--echo #
+
+CREATE TABLE t1 (a int, b bigint default NULL);
+CREATE TABLE t2 (a int);
+delimiter |;
+create trigger trg1 before insert on t1 for each row
+begin
+ if new.a > 10 then
+ set new.a := 10;
+ set new.a := 11;
+ end if;
+end|
+create trigger trg2 before update on t1 for each row begin
+ if old.a % 2 = 0 then set new.b := 12; end if;
+end|
+set sql_mode="traditional"|
+create trigger trg3 after update on t1 for each row
+begin
+ if new.a = -1 then
+ set @fired:= "Yes";
+ end if;
+end|
+create trigger trg4 before insert on t2 for each row
+begin
+ if new.a > 10 then
+ set @fired:= "No";
+ end if;
+end|
+set sql_mode=default|
+delimiter ;|
+--replace_column 6 '0000-00-00 00:00:00'
+show triggers like "t1";
+INSERT INTO t1 (a) VALUES (1),(2),(3),(22);
+update t1 set a = 4 where a=3;
+# Triggers should be dumped by default
+--exec $MYSQL_DUMP --skip-comments --databases test
+# Skip dumping triggers
+--exec $MYSQL_DUMP --skip-comments --databases --skip-triggers test
+# Dump and reload...
+--exec $MYSQL_DUMP --skip-comments --databases test > $MYSQLTEST_VARDIR/tmp/mysqldump.sql
+drop table t1;
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqldump.sql
+# Check that tables have been reloaded
+show tables;
+--replace_column 6 #
+show triggers;
+DROP TABLE t1, t2;
+
+--echo #
+--echo # Bugs #9136, #12917: problems with --defaults-extra-file option
+--echo #
+
+--write_file $MYSQLTEST_VARDIR/tmp/tmp.cnf
+[mysqltest1]
+port=1234
+EOF
+--exec $MYSQL_MY_PRINT_DEFAULTS -c $MYSQLTEST_VARDIR/tmp/tmp.cnf mysqltest1
+--exec $MYSQL_MY_PRINT_DEFAULTS -e $MYSQLTEST_VARDIR/tmp/tmp.cnf mysqltest1 mysqltest1
+--remove_file $MYSQLTEST_VARDIR/tmp/tmp.cnf
+
+--echo #
+--echo # Test of fix to BUG 12597
+--echo #
+
+DROP TABLE IF EXISTS `test1`;
+CREATE TABLE `test1` (
+ `a1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+DROP TABLE IF EXISTS `test2`;
+CREATE TABLE `test2` (
+ `a2` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+DELIMITER //;
+CREATE TRIGGER `testref` BEFORE INSERT ON `test1` FOR EACH ROW BEGIN
+INSERT INTO test2 SET a2 = NEW.a1; END //
+DELIMITER ;//
+
+INSERT INTO `test1` VALUES (1);
+SELECT * FROM `test2`;
+
+# dump
+--exec $MYSQL_DUMP --skip-comments --databases test > $MYSQLTEST_VARDIR/tmp/mysqldump.sql
+
+#DROP TRIGGER testref;
+#DROP TABLE test1;
+#DROP TABLE test2;
+# restore
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqldump.sql
+SHOW TRIGGERS;
+SELECT * FROM `test1`;
+SELECT * FROM `test2`;
+
+DROP TRIGGER testref;
+DROP TABLE test1;
+DROP TABLE test2;
+
+--echo #
+--echo # BUG#9056 - mysqldump does not dump routines
+--echo #
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS bug9056_func1;
+DROP FUNCTION IF EXISTS bug9056_func2;
+DROP PROCEDURE IF EXISTS bug9056_proc1;
+DROP PROCEDURE IF EXISTS bug9056_proc2;
+DROP PROCEDURE IF EXISTS `a'b`;
+--enable_warnings
+
+CREATE TABLE t1 (id int);
+INSERT INTO t1 VALUES(1), (2), (3), (4), (5);
+
+DELIMITER //;
+CREATE FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) RETURN a+b //
+CREATE PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
+BEGIN SELECT a+b INTO c; end //
+
+create function bug9056_func2(f1 char binary) returns char binary
+begin
+ set f1= concat( 'hello', f1 );
+ return f1;
+end //
+
+CREATE PROCEDURE bug9056_proc2(OUT a INT)
+BEGIN
+ select sum(id) from t1 into a;
+END //
+
+DELIMITER ;//
+
+set sql_mode='ansi';
+create procedure `a'b` () select 1; # to fix syntax highlighting :')
+set sql_mode='';
+
+# Dump the DB and ROUTINES
+--exec $MYSQL_DUMP --skip-comments --routines --databases test
+
+# ok, now blow it all away
+DROP FUNCTION bug9056_func1;
+DROP FUNCTION bug9056_func2;
+DROP PROCEDURE bug9056_proc1;
+DROP PROCEDURE bug9056_proc2;
+DROP PROCEDURE `a'b`;
+drop table t1;
+
+--echo #
+--echo # BUG# 13052 - mysqldump timestamp reloads broken
+--echo #
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (`d` timestamp, unique (`d`));
+set time_zone='+00:00';
+insert into t1 values ('2003-10-25 22:00:00'),('2003-10-25 23:00:00');
+# results should show two different time values
+select * from t1;
+set time_zone='Europe/Moscow';
+# results should show two same time values, despite unique
+select * from t1;
+set global time_zone='Europe/Moscow';
+--exec $MYSQL_DUMP --skip-comments --databases test
+--exec $MYSQL_DUMP --skip-tz-utc --skip-comments --databases test
+drop table t1;
+set global time_zone=default;
+set time_zone=default;
+
+--echo #
+--echo # Test of fix to BUG 13146 - ansi quotes break loading of triggers
+--echo #
+
+--disable_warnings
+DROP TABLE IF EXISTS `t1 test`;
+DROP TABLE IF EXISTS `t2 test`;
+--enable_warnings
+
+CREATE TABLE `t1 test` (
+ `a1` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+CREATE TABLE `t2 test` (
+ `a2` int(11) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+DELIMITER //;
+CREATE TRIGGER `test trig` BEFORE INSERT ON `t1 test` FOR EACH ROW BEGIN
+INSERT INTO `t2 test` SET a2 = NEW.a1; END //
+DELIMITER ;//
+
+INSERT INTO `t1 test` VALUES (1);
+INSERT INTO `t1 test` VALUES (2);
+INSERT INTO `t1 test` VALUES (3);
+SELECT * FROM `t2 test`;
+# dump with compatible=ansi. Everything except triggers should be double
+# quoted
+--exec $MYSQL_DUMP --skip-comments --compatible=ansi --triggers test
+
+DROP TRIGGER `test trig`;
+DROP TABLE `t1 test`;
+DROP TABLE `t2 test`;
+
+--echo #
+--echo # BUG# 12838 mysqldump -x with views exits with error
+--echo #
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (a int, b varchar(32), c varchar(32));
+insert into t1 values (1, 'first value', 'xxxx');
+insert into t1 values (2, 'second value', 'tttt');
+insert into t1 values (3, 'third value', 'vvv vvv');
+
+create view v1 as select * from t1;
+create view v0 as select * from v1;
+create view v2 as select * from v0;
+
+select * from v2;
+--exec $MYSQL_DUMP -x --skip-comments --databases test
+
+drop view v2;
+drop view v0;
+drop view v1;
+drop table t1;
+
+--echo #
+--echo # BUG#14554 - mysqldump does not separate words "ROW" and "BEGIN"
+--echo # for tables with trigger created in the IGNORE_SPACE sql mode.
+--echo #
+
+SET @old_sql_mode = @@SQL_MODE;
+SET SQL_MODE = IGNORE_SPACE;
+
+CREATE TABLE t1 (a INT);
+DELIMITER |;
+CREATE TRIGGER tr1 BEFORE INSERT ON t1
+ FOR EACH ROW
+ BEGIN
+ SET new.a = 0;
+ END|
+DELIMITER ;|
+
+SET SQL_MODE = @old_sql_mode;
+
+--exec $MYSQL_DUMP --skip-comments --databases test
+
+DROP TRIGGER tr1;
+DROP TABLE t1;
+
+--echo #
+--echo # Bug #13318: Bad result with empty field and --hex-blob
+--echo #
+
+create table t1 (a binary(1), b blob);
+insert into t1 values ('','');
+--exec $MYSQL_DUMP --skip-comments --skip-extended-insert --hex-blob test t1
+--exec $MYSQL_DUMP --skip-comments --hex-blob test t1
+drop table t1;
+
+--echo #
+--echo # Bug 14871 Invalid view dump output
+--echo #
+
+create table t1 (a int);
+insert into t1 values (289), (298), (234), (456), (789);
+create definer = CURRENT_USER view v1 as select * from t1;
+create SQL SECURITY INVOKER view v2 as select * from t1;
+create view v3 as select * from t1 with local check option;
+create algorithm=merge view v4 as select * from t1 with cascaded check option;
+create algorithm =temptable view v5 as select * from t1;
+
+# dump tables and views
+--exec $MYSQL_DUMP test > $MYSQLTEST_VARDIR/tmp/bug14871.sql
+
+# drop the db, tables and views
+drop table t1;
+drop view v1, v2, v3, v4, v5;
+
+# Reload dump
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug14871.sql
+
+# check that all tables and views could be created
+show tables;
+select * from v3 order by a;
+
+drop table t1;
+drop view v1, v2, v3, v4, v5;
+
+--echo #
+--echo # Bug #16878 dump of trigger
+--echo #
+
+create table t1 (a int, created datetime);
+create table t2 (b int, created datetime);
+create trigger tr1 before insert on t1 for each row set
+new.created=now();
+delimiter |;
+create trigger tr2 after insert on t1
+for each row
+begin
+ insert into t2 set b=new.a and created=new.created;
+end|
+delimiter ;|
+
+# dump table and trigger
+--exec $MYSQL_DUMP test > $MYSQLTEST_VARDIR/tmp/bug16878.sql
+drop trigger tr1;
+drop trigger tr2;
+drop table t1, t2;
+
+# reload dump
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug16878.sql
+--replace_column 6 #
+show triggers;
+drop trigger tr1;
+drop trigger tr2;
+drop table t1, t2;
+
+--echo #
+--echo # Bug#18462 mysqldump does not dump view structures correctly
+--echo #
+
+create table t (qty int, price int);
+insert into t values(3, 50);
+insert into t values(5, 51);
+create view v1 as select qty, price, qty*price as value from t;
+create view v2 as select qty from v1;
+--echo mysqldump {
+--exec $MYSQL_DUMP --compact -F --tab $MYSQLTEST_VARDIR/tmp test
+--cat_file $MYSQLTEST_VARDIR/tmp/v1.sql
+--echo } mysqldump {
+--cat_file $MYSQLTEST_VARDIR/tmp/v2.sql
+--echo } mysqldump
+drop view v1;
+drop view v2;
+drop table t;
+
+
+--echo #
+--echo # Bug#14857 Reading dump files with single statement stored routines fails.
+--echo # fixed by patch for bug#16878
+--echo #
+
+DELIMITER |;
+/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
+return 42 */|
+/*!50003 CREATE PROCEDURE `p`()
+select 42 */|
+DELIMITER ;|
+show create function f;
+show create procedure p;
+drop function f;
+drop procedure p;
+
+--echo #
+--echo # Bug #17371 Unable to dump a schema with invalid views
+--echo #
+
+create table t1 ( id serial );
+create view v1 as select * from t1;
+drop table t1;
+# mysqldump gets 1356 from server, but gives us 2
+--echo mysqldump {
+--error 2
+--exec $MYSQL_DUMP --force -N --compact --skip-comments test
+--echo } mysqldump
+drop view v1;
+
+--echo # BUG#17201 Spurious 'DROP DATABASE' in output,
+--echo # also confusion between tables and views.
+--echo # Example code from Markus Popp
+
+create database mysqldump_test_db;
+use mysqldump_test_db;
+create table t1 (id int);
+create view v1 as select * from t1;
+insert into t1 values (1232131);
+insert into t1 values (4711);
+insert into t1 values (3231);
+insert into t1 values (0815);
+--exec $MYSQL_DUMP --skip-comments --add-drop-database --databases mysqldump_test_db
+drop view v1;
+drop table t1;
+drop database mysqldump_test_db;
+
+--echo #
+--echo # Bug21014 Segmentation fault of mysqldump on view
+--echo #
+
+create database mysqldump_tables;
+use mysqldump_tables;
+create table basetable ( id serial, tag varchar(64) );
+
+create database mysqldump_views;
+use mysqldump_views;
+create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_tables.basetable;
+
+--exec $MYSQL_DUMP --skip-comments --compact --databases mysqldump_tables mysqldump_views
+
+drop view nasishnasifu;
+drop database mysqldump_views;
+drop table mysqldump_tables.basetable;
+drop database mysqldump_tables;
+
+--echo #
+--echo # Bug20221 Dumping of multiple databases containing view(s) yields maleformed dumps
+--echo #
+
+create database mysqldump_dba;
+use mysqldump_dba;
+create table t1 (f1 int, f2 int);
+insert into t1 values (1,1);
+create view v1 as select f1, f2 from t1;
+
+create database mysqldump_dbb;
+use mysqldump_dbb;
+create table t1 (f1 int, f2 int);
+insert into t1 values (2,2);
+create view v1 as select f1, f2 from t1;
+
+--exec $MYSQL_DUMP --skip-comments --add-drop-database --databases mysqldump_dba mysqldump_dbb > $MYSQLTEST_VARDIR/tmp/bug20221_backup
+
+drop view v1;
+drop table t1;
+drop database mysqldump_dbb;
+use mysqldump_dba;
+drop view v1;
+drop table t1;
+drop database mysqldump_dba;
+
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20221_backup
+
+select * from mysqldump_dba.v1;
+select * from mysqldump_dbb.v1;
+
+use mysqldump_dba;
+drop view v1;
+drop table t1;
+drop database mysqldump_dba;
+use mysqldump_dbb;
+drop view v1;
+drop table t1;
+drop database mysqldump_dbb;
+use test;
+
+--echo #
+--echo # Bug#21215 mysqldump creating incomplete backups without warning
+--echo #
+
+# Create user without sufficient privs to perform the requested operation
+create user mysqltest_1@localhost;
+create table t1(a int, b varchar(34));
+
+# To get consistent output, reset the master, starts over from first log
+reset master;
+
+# Execute mysqldump, will fail on FLUSH TABLES
+--error 2
+--exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1
+
+# Execute mysqldump, will fail on FLUSH TABLES
+# use --force, should no affect behaviour
+--error 2
+--exec $MYSQL_DUMP --compact --force --master-data -u mysqltest_1 test 2>&1
+
+# Add RELOAD grants
+grant RELOAD on *.* to mysqltest_1@localhost;
+
+# Execute mysqldump, will fail on SHOW MASTER STATUS
+--error 2
+--exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1
+
+# Execute mysqldump, will fail on SHOW MASTER STATUS.
+# use --force, should not alter behaviour
+--error 2
+--exec $MYSQL_DUMP --compact --force --master-data -u mysqltest_1 test 2>&1
+
+# Add REPLICATION CLIENT grants
+grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
+
+# Execute mysqldump, should now succeed
+--exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1
+
+# Clean up
+drop table t1;
+drop user mysqltest_1@localhost;
+
+--echo #
+--echo # Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
+--echo # information_schema database.
+--echo #
+--echo # Bug #21424 mysqldump failing to export/import views
+--echo #
+
+# Do as root
+connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+connection root;
+create database mysqldump_myDB;
+use mysqldump_myDB;
+create user myDB_User@localhost;
+grant create, create view, select, insert on mysqldump_myDB.* to myDB_User@localhost;
+create table t1 (c1 int);
+insert into t1 values (3);
+
+# Do as a user
+connect (user1,localhost,myDB_User,,mysqldump_myDB,$MASTER_MYPORT,$MASTER_MYSOCK);
+connection user1;
+use mysqldump_myDB;
+create table u1 (f1 int);
+insert into u1 values (4);
+create view v1 (c1) as select * from t1;
+
+# Backup should not fail for Bug #21527. Flush priviliges test begins.
+--exec $MYSQL_DUMP --skip-comments --add-drop-table --flush-privileges --ignore-table=mysql.general_log --ignore-table=mysql.slow_log --databases mysqldump_myDB mysql > $MYSQLTEST_VARDIR/tmp/bug21527.sql
+
+# Clean up
+connection root;
+use mysqldump_myDB;
+drop view v1;
+drop table t1;
+drop table u1;
+revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
+drop user myDB_User@localhost;
+drop database mysqldump_myDB;
+flush privileges;
+
+--echo # Bug #21424 continues from here.
+--echo # Restore. Flush Privileges test ends.
+--echo #
+
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21527.sql
+
+# Do as a user
+connection user1;
+use mysqldump_myDB;
+
+# Ultimate test for correct data.
+select * from mysqldump_myDB.v1;
+select * from mysqldump_myDB.u1;
+
+#Final cleanup.
+connection root;
+use mysqldump_myDB;
+drop view v1;
+drop table t1;
+drop table u1;
+revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
+drop user myDB_User@localhost;
+drop database mysqldump_myDB;
+use test;
+
+--echo #
+--echo # Bug #19745: mysqldump --xml produces invalid xml
+--echo #
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (f1 int(10), data MEDIUMBLOB);
+INSERT INTO t1 VALUES(1,0xff00fef0);
+
+--exec $MYSQL_DUMP --xml --hex-blob --skip-create-options test t1
+
+DROP TABLE t1;
+
+
+
+--echo #
+--echo # Bug#26346: stack + buffer overrun in mysqldump
+--echo #
+
+CREATE TABLE t1(a int);
+INSERT INTO t1 VALUES (1), (2);
+
+# too long a file path causes an error
+--error 1
+--exec $MYSQL_DUMP --tab=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
+
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
+--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
+
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.txt
+
+DROP TABLE t1;
+
+#
+# Bug #25993: crashe with a merge table and -c
+#
+
+CREATE TABLE t2 (a int);
+CREATE TABLE t3 (a int);
+CREATE TABLE t1 (a int) ENGINE=merge UNION=(t2, t3);
+--exec $MYSQL_DUMP --skip-comments -c test
+DROP TABLE t1, t2, t3;
+
+--echo #
+--echo # Bug #23491: MySQLDump prefix function call in a view by database name
+--echo #
+
+# Setup
+create database bug23491_original;
+create database bug23491_restore;
+use bug23491_original;
+create table t1 (c1 int);
+create view v1 as select * from t1;
+create procedure p1() select 1;
+create function f1() returns int return 1;
+create view v2 as select f1();
+create function f2() returns int return f1();
+create view v3 as select bug23491_original.f1();
+
+# Backup.
+--exec $MYSQL_DUMP --skip-comments -uroot --opt --routines bug23491_original > $MYSQLTEST_VARDIR/tmp/bug23491_backup.sql
+
+# Restore.
+--exec $MYSQL bug23491_restore < $MYSQLTEST_VARDIR/tmp/bug23491_backup.sql
+
+# Verify
+use bug23491_restore;
+show create view bug23491_restore.v2;
+show create view bug23491_restore.v3;
+
+# Cleanup
+drop database bug23491_original;
+drop database bug23491_restore;
+use test;
+
+
+
+--echo #
+--echo # Bug 27293: mysqldump crashes when dumping routines
+--echo # defined by a different user
+--echo #
+--echo # Bug #22761: mysqldump reports no errors when using
+--echo # --routines without mysql.proc privileges
+--echo #
+
+create database mysqldump_test_db;
+
+grant all privileges on mysqldump_test_db.* to user1;
+grant all privileges on mysqldump_test_db.* to user2;
+
+connect (user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK);
+connection user27293;
+
+create procedure mysqldump_test_db.sp1() select 'hello';
+
+--error 2
+--exec $MYSQL_DUMP -f --compact --user=user2 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db
+
+--exec $MYSQL_DUMP -f --compact --user=user1 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db
+
+drop procedure sp1;
+
+connection default;
+drop user user1;
+drop user user2;
+
+drop database mysqldump_test_db;
+
+--echo #
+--echo # Bug #28522: buffer overrun by '\0' byte using --hex-blob.
+--echo #
+
+CREATE TABLE t1 (c1 INT, c2 LONGBLOB);
+INSERT INTO t1 SET c1=11, c2=REPEAT('q',509);
+--exec $MYSQL_DUMP --skip-create --compact --hex-blob test t1
+DROP TABLE t1;
+
+--echo #
+--echo # Bug #28524: mysqldump --skip-add-drop-table is not
+--echo # compatible with views
+--echo #
+
+CREATE VIEW v1 AS SELECT 1;
+--exec $MYSQL_DUMP --skip-add-drop-table test > $MYSQLTEST_VARDIR/tmp/bug28524.sql
+DROP VIEW v1;
+
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug28524.sql
+SELECT * FROM v1;
+DROP VIEW v1;
+
+--echo #
+--echo # Bug #29788: mysqldump discards the NO_AUTO_VALUE_ON_ZERO value of
+--echo # the SQL_MODE variable after the dumping of triggers.
+--echo #
+
+CREATE TABLE t1 (c1 INT);
+CREATE TRIGGER t1bd BEFORE DELETE ON t1 FOR EACH ROW BEGIN END;
+
+CREATE TABLE t2 (c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
+
+SET @TMP_SQL_MODE = @@SQL_MODE;
+SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO';
+INSERT INTO t2 VALUES (0), (1), (2);
+SET SQL_MODE = @TMP_SQL_MODE;
+SELECT * FROM t2;
+
+--exec $MYSQL_DUMP --routines test >$MYSQLTEST_VARDIR/tmp/bug29788.sql
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug29788.sql
+SELECT * FROM t2;
+
+DROP TABLE t1,t2;
+
+--echo #
+--echo # Bug#29815: new option for suppressing last line of mysqldump:
+--echo # "Dump completed on"
+--echo #
+
+--echo # --skip-dump-date:
+--replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*//
+--exec $MYSQL_DUMP --skip-dump-date test
+
+--echo # --dump-date:
+--replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/
+--exec $MYSQL_DUMP --dump-date test
+
+--echo # --dump-date (default):
+--replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/
+--exec $MYSQL_DUMP test
+
+--echo #
+--echo # End of 5.0 tests
+--echo #
diff --git a/mysql-test/t/mysqlshow.test b/mysql-test/t/mysqlshow.test
new file mode 100644
index 00000000000..9ed93079f57
--- /dev/null
+++ b/mysql-test/t/mysqlshow.test
@@ -0,0 +1,36 @@
+# Can't run test of external client with embedded server
+-- source include/not_embedded.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2,test1,test2;
+--enable_warnings
+
+#
+## Bug #5036 mysqlshow is missing a column
+#
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1),(2),(3);
+CREATE TABLE t2 (a int, b int);
+show tables;
+select "--------------------" as "";
+--exec $MYSQL_SHOW test
+select "---- -v ------------" as "";
+--exec $MYSQL_SHOW test -v
+select "---- -v -v ---------" as "";
+--exec $MYSQL_SHOW test -v -v
+select "----- -t -----------" as "";
+--exec $MYSQL_SHOW test -t
+select "---- -v -t ---------" as "";
+--exec $MYSQL_SHOW test -v -t
+select "---- -v -v -t ------" as "";
+--exec $MYSQL_SHOW test -v -v -t
+DROP TABLE t1, t2;
+
+#
+# Bug #19147: mysqlshow INFORMATION_SCHEMA does not work
+#
+--exec $MYSQL_SHOW information_schema
+--exec $MYSQL_SHOW INFORMATION_SCHEMA
+--exec $MYSQL_SHOW inf_rmation_schema
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test
index 5bc004125c4..ec188af0244 100644
--- a/mysql-test/t/mysqltest.test
+++ b/mysql-test/t/mysqltest.test
@@ -1,6 +1,11 @@
+-- source include/have_log_bin.inc
+
# This test should work in embedded server after mysqltest is fixed
-- source include/not_embedded.inc
+# This test uses chmod, can't be run with root permissions
+-- source include/not_as_root.inc
+
# ============================================================================
#
# Test of mysqltest itself
@@ -43,11 +48,6 @@ select otto from (select 1 as otto) as t1;
--error 0
select otto from (select 1 as otto) as t1;
-# expectation <> response
--- // --error 1054
--- // select otto from (select 1 as otto) as t1;
-
-
# ----------------------------------------------------------------------------
# Negative case(statement):
# The derived table t1 does not contain a column named 'friedrich' .
@@ -328,9 +328,9 @@ select 3 from t1 ;
# This is a comment
# This is a ; comment
# This is a -- comment
--- This is also a comment
--- # This is also a comment
--- This is also a ; comment
+# -- This is also a comment
+# -- # This is also a comment
+# -- This is also a ; comment
# ----------------------------------------------------------------------------
# Test comments with embedded command
@@ -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
#
@@ -685,6 +692,36 @@ echo # <whatever> success: $success ;
--echo # Execute: echo \$success ;
echo $success ;
+
+# ----------------------------------------------------------------------------
+# Test to assign let from variable
+# let $<var_name>=$<var_name>;
+# ----------------------------------------------------------------------------
+
+--echo # Check if let \$B = \$A is an assignment per value.
+
+# Basic preparations:
+--echo let \$A = initial value of A;
+let $A = initial value of A;
+# --echo # Content of \$A is: $A
+--echo let \$B = initial value of B;
+let $B = initial value of B;
+# --echo # Content of \$B is: $B
+
+# Assign $B to $A:
+--echo let \$B = \$A
+let $A = $B;
+--echo # Content of \$A is: $A
+
+# Changes of $B must NOT affect $A and Changes of $A must NOT affect $B !
+--echo let \$A = changed value of A;
+let $A = changed value of A;
+--echo # Content of \$B is: $B
+
+--echo let \$B = changed value of B;
+let $B = changed value of B;
+--echo # Content of \$A is: $A
+
# ----------------------------------------------------------------------------
# Test let from query with $variable
# let $<var_name>=`<query with $variable>`;
@@ -704,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
# ----------------------------------------------------------------------------
@@ -756,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
@@ -763,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
@@ -813,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
# ----------------------------------------------------------------------------
@@ -888,9 +942,9 @@ echo $d;
# ----------------------------------------------------------------------------
# Test system
# ----------------------------------------------------------------------------
-system ls > /dev/null;
+#system ls > /dev/null;
system echo "hej" > /dev/null;
---system ls > /dev/null
+#--system ls > /dev/null
--system echo "hej" > /dev/null;
--error 1
@@ -933,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);
}
@@ -1120,21 +1174,31 @@ EOF
--error 1
--exec echo "{;" | $MYSQL_TEST 2>&1
---system echo "while (0)" > $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "echo hej;" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+while (0)
+echo hej;
+EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
---system echo "while (0)" > $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "{echo hej;" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+while (0)
+{echo hej;
+EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
---system echo "while (0){" > $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "echo hej;" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+while (0){
+ echo hej;
+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
# ----------------------------------------------------------------------------
@@ -1192,11 +1256,9 @@ select "a" as col1, "c" as col2;
# Test sync_with_master
# ----------------------------------------------------------------------------
--error 1
---exec echo "save_master_pos; sync_with_master 10!;" | $MYSQL_TEST 2>&1
---error 1
---exec echo "save_master_pos; sync_with_master 10 !;" | $MYSQL_TEST 2>&1
+--exec echo "sync_with_master 10!;" | $MYSQL_TEST 2>&1
--error 1
---exec echo "save_master_pos; sync_with_master a;" | $MYSQL_TEST 2>&1
+--exec echo "sync_with_master a;" | $MYSQL_TEST 2>&1
# ----------------------------------------------------------------------------
# Test connect
@@ -1228,42 +1290,61 @@ 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, exceed max number of connections
---system echo "let \$i=200;" > $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "while (\$i)" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "{" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo " connect (test_con1,localhost,root,,); " >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo " disconnect test_con1; " >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo " dec \$i; " >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "}" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+# Repeat connect/disconnect
+--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+let $i=200;
+while ($i)
+{
+ connect (test_con1,localhost,root,,);
+ disconnect test_con1;
+ dec $i;
+}
+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
---system echo "connect (test_con1,localhost,root,,);" > $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "disconnect test_con1; " >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "connection test_con1;" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+connect (test_con1,localhost,root,,);
+disconnect test_con1;
+connection test_con1;
+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
---system echo "connect (test_con1,localhost,root,,);" > $MYSQLTEST_VARDIR/tmp/mysqltest.sql
---system echo "connect (test_con1,localhost,root,,);" >> $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
+connect (test_con1,localhost,root,,);
+connect (test_con1,localhost,root,,);
+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;
+
# connect when "disable_abort_on_error" caused "connection not found"
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
--disable_abort_on_error
connect (con1,localhost,root,,);
connection default;
connection con1;
+disconnect con1;
--enable_abort_on_error
+# Test connect without a database
+connect (con2,localhost,root,,*NO-ONE*);
+--error ER_NO_DB_ERROR
+show tables;
+disconnect con2;
+connection default;
+
# ----------------------------------------------------------------------------
# Test mysqltest arguments
# ----------------------------------------------------------------------------
@@ -1351,7 +1432,14 @@ 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;
+--error 0,1
+remove_file $MYSQLTEST_VARDIR/log/zero_length_file.reject;
+--error 0,1
+remove_file $MYSQL_TEST_DIR/r/zero_length_file.reject;
+
#
# Test that a test file that does not generate any output fails.
#
@@ -1359,6 +1447,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
@@ -1388,6 +1478,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
@@ -1414,6 +1505,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
@@ -1488,6 +1582,7 @@ remove_file non_existing_file;
--error 1
--exec echo "write_file filename ;" | $MYSQL_TEST 2>&1
+# Comment out this test as it confuses cmd.exe with unmatched "
#--error 1
#--exec echo "write_file filename \";" | $MYSQL_TEST 2>&1
@@ -1495,12 +1590,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;
# ----------------------------------------------------------------------------
@@ -1522,6 +1624,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
# ----------------------------------------------------------------------------
@@ -1532,6 +1636,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
@@ -1558,19 +1663,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
# ----------------------------------------------------------------------------
@@ -1623,6 +1757,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
@@ -1814,6 +1949,19 @@ INSERT INTO t1 SELECT f1 - 512 FROM t1;
SELECT * FROM t1;
--enable_result_log
DROP TABLE t1;
+# ----------------------------------------------------------------------------
+# Some coverage tests
+# ----------------------------------------------------------------------------
+
+--disable_query_log
+--exec $MYSQL_TEST --help 2>&1 > /dev/null
+--exec $MYSQL_TEST --version 2>&1 > /dev/null
+--enable_query_log
+--disable_abort_on_error
+--error 1
+--exec $MYSQL_TEST a b c 2>&1 > /dev/null
+--enable_abort_on_error
+--enable_query_log
# ----------------------------------------------------------------------------
# test for query_get_value
diff --git a/mysql-test/t/named_pipe-master.opt b/mysql-test/t/named_pipe-master.opt
new file mode 100644
index 00000000000..e534ae1eae5
--- /dev/null
+++ b/mysql-test/t/named_pipe-master.opt
@@ -0,0 +1 @@
+--loose-enable-named-pipe
diff --git a/mysql-test/t/named_pipe.test b/mysql-test/t/named_pipe.test
new file mode 100644
index 00000000000..e3dfd24bb52
--- /dev/null
+++ b/mysql-test/t/named_pipe.test
@@ -0,0 +1,14 @@
+# We currently only have named pipe support on windows, so
+# in order to optimize things we skip this test on all
+# other platforms
+--source include/windows.inc
+
+# Only run this test if named pipe is avaliable
+let $nmp= query_get_value("SHOW VARIABLES LIKE 'named_pipe'", Value, 1);
+if (`SELECT '$nmp' != 'ON'`){
+ skip No named pipe support;
+}
+
+# Source select test case
+-- source include/common-tests.inc
+
diff --git a/mysql-test/t/ndb_alter_table.test b/mysql-test/t/ndb_alter_table.test
index 22383a82bca..957b95c6fd9 100644
--- a/mysql-test/t/ndb_alter_table.test
+++ b/mysql-test/t/ndb_alter_table.test
@@ -3,7 +3,7 @@
-- source include/not_embedded.inc
--disable_warnings
-DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1, t2;
drop database if exists mysqltest;
--enable_warnings
@@ -56,10 +56,12 @@ col3 varchar (20) not null,
col4 varchar(4) not null,
col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null,
col6 int not null, to_be_deleted int) ENGINE=ndbcluster;
+--replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
show table status;
SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
insert into t1 values
(0,4,3,5,"PENDING",1,7),(NULL,4,3,5,"PENDING",1,7),(31,4,3,5,"PENDING",1,7), (7,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7), (100,4,3,5,"PENDING",1,7), (99,4,3,5,"PENDING",1,7), (8,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7);
+--replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
show table status;
select * from t1 order by col1;
alter table t1
@@ -68,9 +70,11 @@ add column col7 varchar(30) not null after col5,
add column col8 datetime not null, drop column to_be_deleted,
change column col2 fourth varchar(30) not null after col3,
modify column col6 int not null first;
+--replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
show table status;
select * from t1 order by col1;
insert into t1 values (2, NULL,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
+--replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
show table status;
select * from t1 order by col1;
delete from t1;
@@ -322,4 +326,20 @@ on t1 (c010, c011, c012, c013);
drop table t1;
+# simple test that auto incr is not lost at rename or alter
+create table t1 (a int primary key auto_increment, b int) engine=ndb;
+insert into t1 (b) values (101),(102),(103);
+select * from t1 where a = 3;
+alter table t1 rename t2;
+insert into t2 (b) values (201),(202),(203);
+select * from t2 where a = 6;
+alter table t2 add c int;
+insert into t2 (b) values (301),(302),(303);
+select * from t2 where a = 9;
+alter table t2 rename t1;
+insert into t1 (b) values (401),(402),(403);
+select * from t1 where a = 12;
+drop table t1;
+
# End of 4.1 tests
+
diff --git a/mysql-test/t/ndb_alter_table2.test b/mysql-test/t/ndb_alter_table2.test
new file mode 100644
index 00000000000..3861fcc6c9d
--- /dev/null
+++ b/mysql-test/t/ndb_alter_table2.test
@@ -0,0 +1,83 @@
+-- source include/have_ndb.inc
+-- source include/have_multi_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+connect (con1,localhost,root,,test);
+connect (con2,localhost,root,,test);
+connect (con3,localhost,root,,test);
+connect (con4,localhost,root,,test);
+connect (con5,localhost,root,,test);
+connect (con6,localhost,root,,test);
+
+CREATE TABLE t1 (
+ a INT NOT NULL PRIMARY KEY,
+ b INT NOT NULL
+) ENGINE=ndbcluster;
+
+connection con1;
+BEGIN;
+INSERT INTO t1 VALUES (9410,9412);
+connection con2;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9411,9412);
+connection con3;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9412,9412);
+connection con4;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9413,9412);
+connection con5;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9414,9412);
+connection con6;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9415,9412);
+connection con1;
+sleep 1;
+
+ROLLBACK;
+connection con2;
+reap;
+ROLLBACK;
+connection con3;
+reap;
+ROLLBACK;
+connection con4;
+reap;
+ROLLBACK;
+connection con5;
+reap;
+ROLLBACK;
+connection con6;
+reap;
+ROLLBACK;
+
+connection server2;
+
+drop table t1;
+CREATE TABLE t1 (
+ a INT NOT NULL PRIMARY KEY,
+ b INT NOT NULL,
+ c INT NOT NULL
+) ENGINE=ndbcluster;
+
+connection server1;
+
+--error 1296
+select * from t1;
+select * from t1;
+select * from t1;
+select * from t1;
+select * from t1;
+select * from t1;
+
+drop table t1;
diff --git a/mysql-test/t/ndb_autodiscover.test b/mysql-test/t/ndb_autodiscover.test
index e45133afbca..6eb039c2df2 100644
--- a/mysql-test/t/ndb_autodiscover.test
+++ b/mysql-test/t/ndb_autodiscover.test
@@ -24,7 +24,7 @@ create table t1(
insert into t1 values(1, "Autodiscover");
flush tables;
-system rm var/master-data/test/t1.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
select * from t1;
show status like 'handler_discover%';
@@ -33,13 +33,13 @@ show status like 'handler_discover%';
#
flush tables;
-system rm var/master-data/test/t1.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
insert into t1 values (2, "Auto 2");
show status like 'handler_discover%';
insert into t1 values (3, "Discover 3");
show status like 'handler_discover%';
flush tables;
-system rm var/master-data/test/t1.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
select * from t1 order by id;
show status like 'handler_discover%';
@@ -48,7 +48,7 @@ show status like 'handler_discover%';
#
flush tables;
-system rm var/master-data/test/t1.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
update t1 set name="Autodiscover" where id = 2;
show status like 'handler_discover%';
select * from t1 order by id;
@@ -59,7 +59,7 @@ show status like 'handler_discover%';
#
flush tables;
-system rm var/master-data/test/t1.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
delete from t1 where id = 3;
select * from t1 order by id;
show status like 'handler_discover%';
@@ -85,7 +85,7 @@ show status like 'handler_discover%';
flush tables;
# Modify the frm file on disk
-system echo "blaj" >> var/master-data/test/t2.frm ;
+system echo "blaj" >> $MYSQLTEST_VARDIR/master-data/test/t2.frm ;
select * from t2;
show status like 'handler_discover%';
@@ -111,7 +111,7 @@ show status like 'handler_discover%';
flush tables;
# Remove the frm file from disk
-system rm var/master-data/test/t3.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t3.frm ;
--error 1050
create table t3(
@@ -168,16 +168,16 @@ show status like 'handler_discover%';
# Remove the frm file from disk
flush tables;
-system rm var/master-data/test/t7.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t7.frm ;
show tables from test;
show status like 'handler_discover%';
# Remove the frm file from disk again
flush tables;
-system rm var/master-data/test/t7.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t7.frm ;
---replace_column 7 # 8 # 9 # 12 # 13 # 15 #
+--replace_column 7 # 8 # 9 # 12 # 13 # 15 # 18 #
show table status;
show status like 'handler_discover%';
@@ -210,8 +210,30 @@ select * from t4;
select * from t4;
show status like 'handler_discover%';
+--error 1051
drop table t4;
+create table t4(
+ id int not null primary key,
+ name char(27)
+) engine=ndb;
+insert into t4 values (1, "Automatic");
+select * from t4;
+
+# Remove the table from NDB
+system exec $NDB_TOOLS_DIR/ndb_drop_table --no-defaults -d test t4 >> $NDB_TOOLS_OUTPUT ;
+
+--error 1146
+select * from t4;
+
+drop table if exists t4;
+
+# Test that dropping a table that does not exists
+# on disk or in NDB gives same result as above
+--error 1051
+drop table t5;
+drop table if exists t5;
+
#######################################################
# Test that a table that has been dropped from NDB
@@ -268,8 +290,8 @@ insert into t9 values (9);
system exec $NDB_TOOLS_DIR/ndb_drop_table --no-defaults -d test t3 >> $NDB_TOOLS_OUTPUT ;
system exec $NDB_TOOLS_DIR/ndb_drop_table --no-defaults -d test t5 >> $NDB_TOOLS_OUTPUT ;
# Remove t6, t7 from disk
-system rm var/master-data/test/t6.frm > /dev/null ;
-system rm var/master-data/test/t7.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t6.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t7.frm > /dev/null ;
SHOW TABLES;
@@ -310,8 +332,8 @@ insert into t9 values (9);
system exec $NDB_TOOLS_DIR/ndb_drop_table --no-defaults -d test t3 > /dev/null ;
system exec $NDB_TOOLS_DIR/ndb_drop_table --no-defaults -d test t5 > /dev/null ;
# Remove t6, t7 from disk
-system rm var/master-data/test/t6.frm > /dev/null ;
-system rm var/master-data/test/t7.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t6.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t7.frm > /dev/null ;
SHOW TABLES LIKE 't6';
@@ -353,9 +375,9 @@ insert into t3 values (3, "ndb table 3");
insert into t4 values (4);
# Remove t1, t2, t3 from disk
-system rm var/master-data/test/t1.frm > /dev/null ;
-system rm var/master-data/test/t2.frm > /dev/null ;
-system rm var/master-data/test/t3.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t2.frm > /dev/null ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t3.frm > /dev/null ;
flush tables;
# Select from the table which only exists in NDB.
@@ -450,9 +472,28 @@ drop table t1;
use test2;
drop table t2;
drop database test2;
-show databases;
use test;
+#########################################################
+# Bug#8035
+# mysqld would segfault on second select * before bug was fixed
+#
+--disable_warnings
+drop database if exists test_only_ndb_tables;
+--enable_warnings
+create database test_only_ndb_tables;
+use test_only_ndb_tables;
+create table t1 (a int primary key) engine=ndb;
+select * from t1;
+--exec $NDB_MGM --no-defaults -e "all restart -n" > /dev/null
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --not-started > /dev/null
+--error 1015
+select * from t1;
+--exec $NDB_MGM --no-defaults -e "all start" > /dev/null
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults > /dev/null
+use test;
+drop database test_only_ndb_tables;
+
#####################################################
# Test that it's not possible to create tables
# with same name as NDB internal tables
@@ -489,7 +530,7 @@ CREATE TABLE t9 (
insert t9 values(1, 2), (2,3), (3, 4), (4, 5);
#Don't drop the table, instead remove the frm file
-system rm var/master-data/test/t9.frm ;
+system rm $MYSQLTEST_VARDIR/master-data/test/t9.frm ;
# Now leave test case, when ndb_autodiscover2 will run, this
# MySQL Server will have been restarted because it has a
diff --git a/mysql-test/t/ndb_autodiscover3.test b/mysql-test/t/ndb_autodiscover3.test
index 73b4bf8b94f..259da6e3501 100644
--- a/mysql-test/t/ndb_autodiscover3.test
+++ b/mysql-test/t/ndb_autodiscover3.test
@@ -1,5 +1,6 @@
-- source include/have_ndb.inc
-- source include/have_multi_ndb.inc
+-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
@@ -7,6 +8,11 @@
drop table if exists t1, t2;
--enable_warnings
+# Workaround for Bug#27644
+# ndb: connecting api node/mysqld may "steal" node_id from running mysqld
+# - let ndb_waiter use a fixed node id so "steal" cannot happen
+--let connect_str = "nodeid=6;$NDB_CONNECTSTRING"
+
#
# Transaction ongoing while cluster is restarted
#
@@ -17,7 +23,7 @@ begin;
insert into t1 values (1);
--exec $NDB_MGM --no-defaults -e "all restart" >> $NDB_TOOLS_OUTPUT
---exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults -c $connect_str >> $NDB_TOOLS_OUTPUT
--error 1297
insert into t1 values (2);
@@ -35,7 +41,7 @@ insert into t2 values (1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1),(9,1),(10,
select * from t2 order by a limit 3;
--exec $NDB_MGM --no-defaults -e "all restart -i" >> $NDB_TOOLS_OUTPUT
---exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults -c $connect_str >> $NDB_TOOLS_OUTPUT
--connection server2
create table t2 (a int key) engine=ndbcluster;
@@ -49,7 +55,7 @@ select * from t2 order by a limit 3;
select * from t2 order by a limit 3;
--exec $NDB_MGM --no-defaults -e "all restart -i" >> $NDB_TOOLS_OUTPUT
---exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults -c $connect_str >> $NDB_TOOLS_OUTPUT
--connection server1
show tables;
diff --git a/mysql-test/t/ndb_backup_print.test b/mysql-test/t/ndb_backup_print.test
new file mode 100644
index 00000000000..1e516f03ae6
--- /dev/null
+++ b/mysql-test/t/ndb_backup_print.test
@@ -0,0 +1,66 @@
+-- source include/have_ndb.inc
+-- source include/ndb_default_cluster.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+--enable_warnings
+
+#NO.1 test output of backup
+--exec $NDB_MGM --no-defaults -e "start backup" |sed -e 's/[0-9]//g' |sed -e 's/localhost//g' |sed -e 's/\.\.\.*//g'
+
+create table t1
+ (pk int key
+ ,a1 BIT(1), a2 BIT(5), a3 BIT(33), a4 BIT(63), a5 BIT(64)
+ ,b1 TINYINT, b2 TINYINT UNSIGNED
+ ,c1 SMALLINT, c2 SMALLINT UNSIGNED
+ ,d1 INT, d2 INT UNSIGNED
+ ,e1 BIGINT, e2 BIGINT UNSIGNED
+ ,f1 CHAR(1) BINARY, f2 CHAR(32) BINARY, f3 CHAR(255) BINARY
+ ,g1 VARCHAR(32) BINARY, g2 VARCHAR(255) BINARY, g3 VARCHAR(1000) BINARY
+ ,h1 BINARY(1), h2 BINARY(8), h3 BINARY(255)
+ ,i1 VARBINARY(32), i2 VARBINARY(255), i3 VARBINARY(1000)
+ ) engine ndb;
+
+insert into t1 values
+ (1
+ ,0x1, 0x17, 0x789a, 0x789abcde, 0xfedc0001
+ ,127, 255
+ ,32767, 65535
+ ,2147483647, 4294967295
+ ,9223372036854775807, 18446744073709551615
+ ,'1','12345678901234567890123456789012','123456789'
+ ,'1','12345678901234567890123456789012','123456789'
+ ,0x12,0x123456789abcdef0, 0x012345
+ ,0x12,0x123456789abcdef0, 0x00123450
+ );
+
+insert into t1 values
+ (2
+ ,0, 0, 0, 0, 0
+ ,-128, 0
+ ,-32768, 0
+ ,-2147483648, 0
+ ,-9223372036854775808, 0
+ ,'','',''
+ ,'','',''
+ ,0x0,0x0,0x0
+ ,0x0,0x0,0x0
+ );
+
+insert into t1 values
+ (3
+ ,NULL,NULL,NULL,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL,NULL
+ ,NULL,NULL,NULL
+ ,NULL,NULL,NULL
+ ,NULL,NULL,NULL
+ );
+
+#NO.2 test output of backup after some simple SQL operations
+--exec $NDB_MGM --no-defaults -e "start backup" |sed -e 's/[0-9]//g' |sed -e 's/localhost//g' |sed -e 's/\.\.\.*//g'
diff --git a/mysql-test/t/ndb_basic.test b/mysql-test/t/ndb_basic.test
index fdc87382308..80c8942348c 100644
--- a/mysql-test/t/ndb_basic.test
+++ b/mysql-test/t/ndb_basic.test
@@ -551,7 +551,7 @@ create table t1
(a bigint, b bigint, c bigint, d bigint,
primary key (a,b,c,d))
engine=ndb
- max_rows=200000000;
+ max_rows=800000000;
insert into t1 values
(1,2,3,4),(2,3,4,5),(3,4,5,6),
(3,2,3,4),(1,3,4,5),(2,4,5,6),
@@ -583,8 +583,8 @@ drop table t1;
# Test auto_increment
#
-connect (con1,localhost,,,test);
-connect (con2,localhost,,,test);
+connect (con1,localhost,root,,test);
+connect (con2,localhost,root,,test);
create table t1
(counter int(64) NOT NULL auto_increment,
@@ -607,6 +607,21 @@ select * from t1 order by counter;
drop table t1;
#
+# bug#27437
+connection con1;
+create table t1 (a int primary key auto_increment) engine = ndb;
+insert into t1() values (),(),(),(),(),(),(),(),(),(),(),();
+connection con2;
+insert into t1(a) values (20),(28);
+connection con1;
+insert into t1() values (),(),(),(),(),(),(),(),(),(),(),();
+connection con2;
+insert into t1() values (21), (22);
+connection con1;
+
+drop table t1;
+
+#
# BUG#14514 Creating table with packed key fails silently
#
@@ -617,7 +632,7 @@ drop table t1;
#
# Bug #17249 delete statement with join where clause fails
# when table do not have pk
-#
+ #
create table t1 (a int) engine=ndb;
create table t2 (a int) engine=ndb;
@@ -681,3 +696,91 @@ drop table t2;
drop table t3;
# End of 4.1 tests
+
+#
+# Test long table name
+#
+create table atablewithareallylongandirritatingname (a int);
+insert into atablewithareallylongandirritatingname values (2);
+select * from atablewithareallylongandirritatingname;
+drop table atablewithareallylongandirritatingname;
+
+#
+# Bug#15682
+#
+create table t1 (f1 varchar(50), f2 text,f3 int, primary key(f1)) engine=NDB;
+insert into t1 (f1,f2,f3)VALUES("111111","aaaaaa",1);
+insert into t1 (f1,f2,f3)VALUES("222222","bbbbbb",2);
+select * from t1 order by f1;
+select * from t1 order by f2;
+select * from t1 order by f3;
+drop table t1;
+
+#
+# Bug#16561 Unknown ERROR msg "ERROR 1186 (HY000): Binlog closed" by perror
+#
+
+# As long there is no error code 1186 defined by NDB
+# we should get a message "Illegal ndb error code: 1186"
+--error 1
+--exec $MY_PERROR --ndb 1186 2>&1
+
+#
+# Bug #25746 - VARCHAR UTF8 PK issue
+# - prior to bugfix 4209, illegal length parameter would be
+# returned in SELECT *
+
+CREATE TABLE t1 (
+a VARBINARY(40) NOT NULL,
+b VARCHAR (256) CHARACTER SET UTF8 NOT NULL,
+c VARCHAR(256) CHARACTER SET UTF8 NOT NULL,
+PRIMARY KEY (b,c)) ENGINE=ndbcluster;
+INSERT INTO t1 VALUES
+("a","ab","abc"),("b","abc","abcd"),("c","abc","ab"),("d","ab","ab"),("e","abc","abc");
+SELECT * FROM t1 ORDER BY a;
+DROP TABLE t1;
+
+# delete
+create table t1 (a int not null primary key, b int not null) engine=ndb;
+create table t2 (a int not null primary key, b int not null) engine=ndb;
+insert into t1 values (1,10), (2,20), (3,30);
+insert into t2 values (1,10), (2,20), (3,30);
+select * from t1 order by a;
+delete from t1 where a > 0 order by a desc limit 1;
+select * from t1 order by a;
+delete from t1,t2 using t1,t2 where t1.a = t2.a;
+select * from t2 order by a;
+drop table t1,t2;
+
+# insert ignore
+create table t1 (a int not null primary key, b int not null) engine=ndb;
+insert into t1 values (1,10), (2,20), (3,30);
+--error ER_DUP_ENTRY
+insert into t1 set a=1, b=100;
+insert ignore into t1 set a=1, b=100;
+select * from t1 order by a;
+insert into t1 set a=1, b=1000 on duplicate key update b=b+1;
+select * from t1 order by a;
+drop table t1;
+
+# update
+create table t1 (a int not null primary key, b int not null) engine=ndb;
+create table t2 (c int not null primary key, d int not null) engine=ndb;
+insert into t1 values (1,10), (2,10), (3,30), (4, 30);
+insert into t2 values (1,10), (2,10), (3,30), (4, 30);
+--error ER_DUP_ENTRY
+update t1 set a = 1 where a = 3;
+select * from t1 order by a;
+update t1 set b = 1 where a > 1 order by a desc limit 1;
+select * from t1 order by a;
+--error ER_DUP_ENTRY
+update t1,t2 set a = 1, c = 1 where a = 3 and c = 3;
+select * from t1 order by a;
+update ignore t1,t2 set a = 1, c = 1 where a = 3 and c = 3;
+select * from t1 order by a;
+drop table t1,t2;
+
+# End of 5.0 tests
+--echo End of 5.0 tests
+
+
diff --git a/mysql-test/t/ndb_bitfield.test b/mysql-test/t/ndb_bitfield.test
new file mode 100644
index 00000000000..59d6e56577e
--- /dev/null
+++ b/mysql-test/t/ndb_bitfield.test
@@ -0,0 +1,122 @@
+-- source include/have_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (
+ pk1 int not null primary key,
+ b bit(64)
+) engine=ndbcluster;
+
+show create table t1;
+insert into t1 values
+(0,b'1111111111111111111111111111111111111111111111111111111111111111'),
+(1,b'1000000000000000000000000000000000000000000000000000000000000000'),
+(2,b'0000000000000000000000000000000000000000000000000000000000000001'),
+(3,b'1010101010101010101010101010101010101010101010101010101010101010'),
+(4,b'0101010101010101010101010101010101010101010101010101010101010101');
+select hex(b) from t1 order by pk1;
+drop table t1;
+
+create table t1 (
+ pk1 int not null primary key,
+ b bit(9)
+) engine=ndbcluster;
+insert into t1 values
+(0,b'000000000'),
+(1,b'000000001'),
+(2,b'000000010'),
+(3,b'000000011'),
+(4,b'000000100');
+select hex(b) from t1 order by pk1;
+update t1 set b = b + b'101010101';
+select hex(b) from t1 order by pk1;
+drop table t1;
+
+create table t1 (a bit(7), b bit(9)) engine = ndbcluster;
+insert into t1 values
+(94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),
+(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),
+(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),
+(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),
+(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),
+(44, 307), (68, 454), (57, 135);
+select a+0 from t1 order by a;
+select b+0 from t1 order by b;
+drop table t1;
+
+create table t1 (
+ dummyKey INTEGER NOT NULL,
+ a001 TINYINT,
+ a010 TINYINT,
+ a012 TINYINT,
+ a015 TINYINT,
+ a016 TINYINT,
+ a017 TINYINT,
+ a019 TINYINT,
+ a029 TINYINT,
+ a030 TINYINT,
+ a031 TINYINT,
+ a032 TINYINT,
+ a042 TINYINT,
+ a043 TINYINT,
+ a044 TINYINT,
+ a3001 TINYINT,
+ a3002 TINYINT,
+ a3003 TINYINT,
+ a3004 TINYINT,
+ a3005 TINYINT,
+ a3021 TINYINT,
+ a3022 TINYINT,
+ a BIT(6),
+ b BIT(6),
+ c BIT(6),
+ d TINYINT,
+ e TINYINT,
+ f TINYINT,
+ g TINYINT,
+ h TINYINT,
+ i TINYINT,
+ j TINYINT,
+ k TINYINT,
+ l TINYINT,
+ m TINYINT,
+ n TINYINT,
+ o TINYINT,
+ a034 TINYINT,
+PRIMARY KEY USING HASH (dummyKey) ) engine=ndb;
+INSERT INTO `t1` VALUES
+(1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000001',b'111111',b'111110',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000010',b'000000',b'111101',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000100',b'001111',b'111011',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'001000',b'110000',b'110111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'010000',b'100001',b'101111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1),
+(8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1);
+--exec $MYSQL_DUMP --hex-blob --compact --order-by-primary --skip-extended-insert --no-create-info test t1
+drop table t1;
+
+--error 1005
+create table t1 (
+ pk1 bit(9) not null primary key,
+ b int
+) engine=ndbcluster;
+
+--error 1005
+create table t1 (
+ pk1 int not null primary key,
+ b bit(9),
+ key(b)
+) engine=ndbcluster;
+
+# bug#16125
+create table t1 (
+ pk1 int primary key,
+ b bit(32) not null
+) engine=ndbcluster;
+
+insert into t1 values (1,1);
+drop table t1;
diff --git a/mysql-test/t/ndb_blob.test b/mysql-test/t/ndb_blob.test
index bf82a793049..32699017c03 100644
--- a/mysql-test/t/ndb_blob.test
+++ b/mysql-test/t/ndb_blob.test
@@ -96,6 +96,11 @@ update t1 set d=null where a=1;
commit;
select a from t1 where d is null;
+# bug#24028 - does not occur on MySQL level
+# bug#17986 - not seen by us anymore but could show as warning here
+delete from t1 where a=45567;
+commit;
+
# pk delete
delete from t1 where a=1;
delete from t1 where a=2;
@@ -428,4 +433,60 @@ truncate t1;
select count(*) from t1;
drop table t1;
+# -- bug#19956 - var* key, complex key
+
+create table t1 (
+ a varchar(40) not null,
+ b mediumint not null,
+ t text,
+ c varchar(2) not null,
+ d bigint not null,
+ primary key (a,b,c),
+ key (c,a),
+ unique key (d)
+) engine=ndb;
+
+--disable_query_log
+set @s1 = 'rggurloniukyehuxdbfkkyzlceixzrehqhvxvxbpwizzvjzpucqmzrhzxzfau';
+set @s2 = 'ykyymbzqgqlcjhlhmyqelfoaaohvtbekvifukdtnvcrrjveevfakxarxexomz';
+set @s3 = 'dbnfqyzgtqxalcrwtfsqabknvtfcbpoonxsjiqvmhnfikxxhcgoexlkoezvah';
+set @v1 = repeat(@s1,123);
+set @v2 = repeat(@s2,234);
+set @v3 = repeat(@s3,345);
+set @v4 = NULL;
+--enable_query_log
+
+insert into t1 (a,b,c,d,t) values ('a',1110,'a',1,@v1);
+insert into t1 (a,b,c,d,t) values ('b',1110,'a',2,@v2);
+insert into t1 (a,b,c,d,t) values ('a',1110,'b',3,@v3);
+insert into t1 (a,b,c,d,t) values ('b',1110,'b',4,@v4);
+select a,b,c,d,sha1(t) from t1 order by c,a;
+
+select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='a';
+select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='b';
+
+update t1 set t=@v4 where a='b' and b=1110 and c='a';
+update t1 set t=@v2 where a='b' and b=1110 and c='b';
+select a,b,c,d,sha1(t) from t1 order by c,a;
+
+update t1 set t=@v2 where d=2;
+update t1 set t=@v4 where d=4;
+select a,b,c,d,sha1(t) from t1 order by c,a;
+
+update t1 set t=@v4 where a='b' and c='a';
+update t1 set t=@v2 where a='b' and c='b';
+select a,b,c,d,sha1(t) from t1 order by c,a;
+
+update t1 set t=@v2 where b+d=1112;
+update t1 set t=@v4 where b+d=1114;
+select a,b,c,d,sha1(t) from t1 order by c,a;
+
+delete from t1 where a='a' and b=1110 and c='a';
+delete from t1 where a='b' and c='a';
+delete from t1 where d=3;
+delete from t1 where b+d=1114;
+select count(*) from t1;
+
+drop table t1;
+
# End of 4.1 tests
diff --git a/mysql-test/t/ndb_bug26793.test b/mysql-test/t/ndb_bug26793.test
new file mode 100644
index 00000000000..f35d8808c1a
--- /dev/null
+++ b/mysql-test/t/ndb_bug26793.test
@@ -0,0 +1,35 @@
+-- source include/have_ndb.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE `test` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`t` VARCHAR( 10 ) NOT NULL
+) ENGINE = ndbcluster;
+
+# Add user1@localhost with a specific password
+# and connect as that user
+GRANT USAGE ON *.* TO user1@localhost IDENTIFIED BY 'pass';
+connect (user1,localhost,user1,pass,*NO-ONE*);
+
+# Run the query 100 times
+disable_query_log;
+disable_result_log;
+let $i= 100;
+while ($i)
+{
+select count(*) from information_schema.tables union all select count(*) from information_schema.tables union all select count(*) from information_schema.tables;
+dec $i;
+}
+enable_query_log;
+enable_result_log;
+
+disconnect user1;
+
+# Switch back to the default connection and cleanup
+connection default;
+DROP TABLE `test`.`test`;
+drop user user1@localhost;
+
diff --git a/mysql-test/t/ndb_cache.test b/mysql-test/t/ndb_cache.test
index 481ec156307..9c299b61c24 100644
--- a/mysql-test/t/ndb_cache.test
+++ b/mysql-test/t/ndb_cache.test
@@ -2,32 +2,120 @@
-- source include/have_ndb.inc
-- source include/not_embedded.inc
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+# Turn on and reset query cache
+set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776;
reset query cache;
flush status;
---disable_warnings
-drop table if exists t1,t2;
---enable_warnings
+# Create test table in NDB
+CREATE TABLE t1 ( pk int not null primary key,
+ a int, b int not null, c varchar(20)) ENGINE=ndbcluster;
+insert into t1 value (1, 2, 3, 'First row');
-CREATE TABLE t1 (a int) ENGINE=ndbcluster;
-CREATE TABLE t2 (a int);
+# Perform one query which should be inerted in query cache
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+# Perform the same query and make sure the query cache is hit
+select * from t1;
+show status like "Qcache_hits";
+# Update the table and make sure the correct data is returned
+update t1 set a=3 where pk=1;
select * from t1;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+# Insert a new record and make sure the correct data is returned
+insert into t1 value (2, 7, 8, 'Second row');
+insert into t1 value (4, 5, 6, 'Fourth row');
+select * from t1 order by pk;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1 order by pk;
+show status like "Qcache_hits";
+
+# Perform a "new" query and make sure the query cache is not hit
+select * from t1 where b=3;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_hits";
+
+# Same query again...
+select * from t1 where b=3;
+show status like "Qcache_hits";
+
+# Delete from the table
+delete from t1 where c='Fourth row';
show status like "Qcache_queries_in_cache";
+select * from t1 where b=3;
+show status like "Qcache_hits";
+
+# Start another connection and check that the query cache is hit
+connect (con1,localhost,root,,);
+connection con1;
+use test;
+select * from t1 order by pk;
+select * from t1 where b=3;
+show status like "Qcache_hits";
+
+# Update the table and switch to other connection
+update t1 set a=4 where b=3;
+connect (con2,localhost,root,,);
+connection con2;
+use test;
+show status like "Qcache_queries_in_cache";
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
show status like "Qcache_inserts";
show status like "Qcache_hits";
-select * from t2;
+connection con1;
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
-select * from t1;
-select * from t2;
+
+# Use transactions and make sure the query cache is not updated until
+# transaction is commited
+begin;
+update t1 set a=5 where pk=1;
+# Note!! the below test shows that table is invalidated
+# before transaction is committed
+# TODO Fix so that cache is not invalidated HERE!
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+commit;
+# TODO Here query is invalidated once again, commit count in NDB has changed
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+select * from t1 order by pk desc;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
-drop table t1, t2;
+drop table t1;
+
+show status like "Qcache_queries_in_cache";
SET GLOBAL query_cache_size=0;
diff --git a/mysql-test/t/ndb_cache2.test b/mysql-test/t/ndb_cache2.test
new file mode 100644
index 00000000000..352b01ef73f
--- /dev/null
+++ b/mysql-test/t/ndb_cache2.test
@@ -0,0 +1,361 @@
+-- source include/have_query_cache.inc
+-- source include/have_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3, t4, t5;
+--enable_warnings
+
+
+# Turn on and reset query cache
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+# Turn on thread that will fetch commit count for open tables
+set GLOBAL ndb_cache_check_time=100;
+reset query cache;
+flush status;
+
+# Create test tables in NDB
+CREATE TABLE t1 (
+ pk int not null primary key,
+ a1 int,
+ b1 int not null,
+ c1 varchar(20)
+) ENGINE=ndb;
+CREATE TABLE t2 (
+ pk int not null primary key,
+ a2 int,
+ b2 int not null
+) ENGINE=ndb;
+CREATE TABLE t3 (
+ pk int not null primary key,
+ a3 int,
+ b3 int not null,
+ c3 int not null,
+ d3 varchar(20)
+) ENGINE=ndb;
+CREATE TABLE t4 (
+ a4 int,
+ b4 int not null,
+ c4 char(20)
+) ENGINE=ndbcluster;
+CREATE TABLE t5 (
+ pk int not null primary key,
+ a5 int,
+ b5 int not null,
+ c5 varchar(255)
+) ENGINE=ndbcluster;
+insert into t1 value (1, 2, 3, 'First row');
+insert into t2 value (1, 2, 3);
+insert into t3 value (1, 2, 3, 4, '3 - First row');
+insert into t4 value (2, 3, '4 - First row');
+insert into t5 value (1, 2, 3, '5 - First row');
+
+# Perform one query which should be inserted in query cache
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+# Perform the same query and make sure the query cache is hit
+select * from t1;
+show status like "Qcache_hits";
+
+# Update the table and make sure the correct data is returned
+update t1 set a1=3 where pk=1;
+select * from t1;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+# Insert a new record and make sure the correct data is returned
+insert into t1 value (2, 7, 8, 'Second row');
+insert into t1 value (4, 5, 6, 'Fourth row');
+select * from t1 order by pk desc;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1 order by pk desc;
+show status like "Qcache_hits";
+
+# Perform a "new" query and make sure the query cache is not hit
+select * from t1 where b1=3;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_hits";
+
+# Same query again...
+select * from t1 where b1=3;
+show status like "Qcache_hits";
+
+# Delete from the table
+delete from t1 where c1='Fourth row';
+show status like "Qcache_queries_in_cache";
+select * from t1 where b1=3;
+show status like "Qcache_hits";
+
+# Start another connection and check that the query cache is hit
+connect (con1,localhost,root,,);
+connection con1;
+use test;
+select * from t1 order by pk desc;
+select * from t1 where b1=3;
+show status like "Qcache_hits";
+
+# Update the table and switch to other connection
+update t1 set a1=4 where b1=3;
+connect (con2,localhost,root,,);
+connection con2;
+use test;
+show status like "Qcache_queries_in_cache";
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+# Load all tables into cache
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+
+#####################################################################
+# Start transaction and perform update
+# Switch to other transaction and check that update does not show up
+# Switch back and commit transaction
+# Switch to other transaction and check that update shows up
+#####################################################################
+connection con1;
+flush status;
+begin;
+update t1 set a1=5 where pk=1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+commit;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+#####################################################################
+# Start transaction and perform update
+# Switch to other transaction and check that update does not show up
+# Switch back, perform selects and commit transaction
+# Switch to other transaction and check that update shows up
+#####################################################################
+connection con1;
+flush status;
+begin;
+update t1 set a1=6 where pk=1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+# The two queries below will not hit cache since transaction is ongoing
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+commit;
+
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+#####################################################################
+# Start transaction and perform insert
+# Switch to other transaction and check that insert does not show up
+# Switch back, perform selects and commit transaction
+# Switch to other transaction and check that update shows up
+#####################################################################
+connection con1;
+flush status;
+begin;
+insert into t1 set pk=5, a1=6, b1=3, c1="New row";
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 where pk=5;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+# The below four queries will not be cached, trans is ongoing
+select * from t1 where pk=5;
+select * from t1 where pk=5;
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+commit;
+
+connection con2;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+connection con1;
+
+#####################################################################
+# Start transaction and perform delete
+# Switch to other transaction and check that delete does not show up
+# Switch back, perform selects and commit transaction
+# Switch to other transaction and check that update shows up
+#####################################################################
+connection con1;
+flush status;
+begin;
+delete from t1 where pk=2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 where pk=2;
+select * from t1 order by pk desc;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+# The below four queries will not be cached, trans is ongoing
+select * from t1 where pk=2;
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+select * from t1 where pk=2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+commit;
+
+connection con2;
+select * from t1 order by pk desc;
+select * from t1 where pk=2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+connection con1;
+
+#####################################################################
+# Start a transaction which updates all tables
+# Switch to other transaction and check updates does not show up
+# Switch back, perform selects and commit transaction
+# Switch to other transaction and check that update shows up
+#####################################################################
+flush status;
+begin;
+update t1 set a1=9 where pk=1;
+update t2 set a2=9 where pk=1;
+update t3 set a3=9 where pk=1;
+update t4 set a4=9 where a4=2;
+update t5 set a5=9 where pk=1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con2;
+select * from t1 order by pk desc;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connection con1;
+# The below five queries will not be cached, trans is ongoing
+select * from t1 order by pk desc;
+select * from t1 order by pk desc;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+commit;
+
+connection con2;
+select * from t1 order by pk desc;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+connection con1;
+select * from t1 order by pk desc;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1 order by pk desc;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+connection con2;
+select * from t1 order by pk desc;
+select * from t2;
+select * from t3;
+select * from t4;
+select * from t5;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+drop table t1, t2, t3, t4, t5;
+
+# There should be no queries in cache, when tables have been dropped
+show status like "Qcache_queries_in_cache";
+
+SET GLOBAL query_cache_size=0;
+SET GLOBAL ndb_cache_check_time=0;
+
+
diff --git a/mysql-test/t/ndb_cache_multi.test b/mysql-test/t/ndb_cache_multi.test
new file mode 100644
index 00000000000..beb8e4bc2ac
--- /dev/null
+++ b/mysql-test/t/ndb_cache_multi.test
@@ -0,0 +1,65 @@
+-- source include/have_query_cache.inc
+-- source include/have_ndb.inc
+-- source include/have_multi_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+
+
+# Turn on and reset query cache on server1
+connection server1;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+reset query cache;
+flush status;
+
+# Turn on and reset query cache on server2
+connection server2;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+reset query cache;
+flush status;
+
+
+
+# Create test tables in NDB and load them into cache
+# on server1
+connection server1;
+create table t1 (a int) engine=ndbcluster;
+create table t2 (a int) engine=ndbcluster;
+insert into t1 value (2);
+insert into t2 value (3);
+select * from t1;
+select * from t2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+
+# Connect server2, load table in to cache, then update the table
+connection server2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+update t1 set a=3 where a=2;
+
+# Connect to server1 and check that cache is invalidated
+# and correct data is returned
+connection server1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+drop table t1, t2;
+
+
diff --git a/mysql-test/t/ndb_cache_multi2.test b/mysql-test/t/ndb_cache_multi2.test
new file mode 100644
index 00000000000..4abb537624a
--- /dev/null
+++ b/mysql-test/t/ndb_cache_multi2.test
@@ -0,0 +1,95 @@
+-- source include/have_query_cache.inc
+-- source include/have_ndb.inc
+-- source include/have_multi_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+
+
+# Turn on and reset query cache on server1
+connection server1;
+echo == Connected to server1 ==;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+set GLOBAL ndb_cache_check_time=1;
+reset query cache;
+flush status;
+
+# Turn on and reset query cache on server2
+connection server2;
+echo == Connected to server2 ==;
+set GLOBAL query_cache_type=on;
+set GLOBAL query_cache_size=1355776;
+set GLOBAL ndb_cache_check_time=1;
+reset query cache;
+flush status;
+
+# Create test tables in NDB and load them into cache
+# on server1
+connection server1;
+echo == Connected to server1 ==;
+create table t1 (a int) engine=ndbcluster;
+create table t2 (a int) engine=ndbcluster;
+insert into t1 value (2);
+insert into t2 value (3);
+select * from t1;
+# Run the check query once to load it into qc on server1
+select a != 3 from t1;
+select * from t2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+
+# Connect server2, load table in to cache, then update the table
+connection server2;
+echo == Connected to server2 ==;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+update t1 set a=3 where a=2;
+
+# Connect to server1 and check that cache is invalidated
+# and correct data is returned
+connection server1;
+echo == Connected to server1 ==;
+
+# Loop and wait for max 10 seconds until query cache thread
+# has invalidated the cache and the column a in t1 is equal to 3
+let $retries=20;
+while (`select a != 3 from t1`)
+{
+ dec $retries;
+ if (!$retries)
+ {
+ The query_cache thread failed to invalidate query_cache in 10 seconds;
+ }
+ sleep 0.5;
+}
+
+# Select from t1 one last time for the result file
+# Column a should be 3
+select * from t1;
+
+# There should now be three queries in the cache
+show status like "Qcache_queries_in_cache";
+
+drop table t1, t2;
+
+# Turn off and reset query cache on server1 and server2
+connection server1;
+set GLOBAL query_cache_size=0;
+set GLOBAL ndb_cache_check_time=0;
+reset query cache;
+flush status;
+connection server2;
+set GLOBAL query_cache_size=0;
+set GLOBAL ndb_cache_check_time=0;
+reset query cache;
+flush status;
diff --git a/mysql-test/t/ndb_charset.test b/mysql-test/t/ndb_charset.test
index a885427f593..5941e5750db 100644
--- a/mysql-test/t/ndb_charset.test
+++ b/mysql-test/t/ndb_charset.test
@@ -54,6 +54,25 @@ select * from t1 where a = 'AaA';
select * from t1 where a = 'AAA';
drop table t1;
+# pk - varchar
+
+create table t1 (
+ a varchar(20) character set latin1 collate latin1_swedish_ci primary key
+) engine=ndb;
+#
+insert into t1 values ('A'),('b '),('C '),('d '),('E'),('f');
+-- error 1062
+insert into t1 values('b');
+-- error 1062
+insert into t1 values('a ');
+#
+select a,length(a) from t1 order by a;
+select a,length(a) from t1 order by a desc;
+select * from t1 where a = 'a';
+select * from t1 where a = 'a ';
+select * from t1 where a = 'd';
+drop table t1;
+
# unique hash index - binary
create table t1 (
@@ -103,6 +122,27 @@ select * from t1 where a = 'AaA';
select * from t1 where a = 'AAA';
drop table t1;
+# unique hash index - varchar
+
+create table t1 (
+ p int primary key,
+ a varchar(20) character set latin1 collate latin1_swedish_ci not null,
+ unique key(a)
+) engine=ndb;
+#
+insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
+-- error 1062
+insert into t1 values(99,'b');
+-- error 1062
+insert into t1 values(99,'a ');
+#
+select a,length(a) from t1 order by a;
+select a,length(a) from t1 order by a desc;
+select * from t1 where a = 'a';
+select * from t1 where a = 'a ';
+select * from t1 where a = 'd';
+drop table t1;
+
# ordered index - binary
create table t1 (
@@ -159,6 +199,44 @@ select * from t1 where a = 'AaA' order by p;
select * from t1 where a = 'AAA' order by p;
drop table t1;
+# ordered index - varchar
+
+create table t1 (
+ p int primary key,
+ a varchar(20) character set latin1 collate latin1_swedish_ci not null,
+ index(a, p)
+) engine=ndb;
+#
+insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
+insert into t1 values (7,'a'),(8,'B '),(9,'c '),(10,'D'),(11,'e'),(12,'F ');
+select p,a,length(a) from t1 order by a, p;
+select * from t1 where a = 'a ' order by a desc, p desc;
+select * from t1 where a >= 'D' order by a, p;
+select * from t1 where a < 'D' order by a, p;
+#
+select count(*) from t1 x, t1 y, t1 z where x.a = y.a and y.a = z.a;
+drop table t1;
+
+# minimal multi-byte test
+# removed by jonas as this requires a configure --with-extra-charsets
+#create table t1 (
+# a char(5) character set ucs2,
+# b varchar(7) character set utf8,
+# primary key(a, b)
+#) engine=ndb;
+#
+#insert into t1 values
+# ('a','A '),('B ','b'),('c','C '),('D','d'),('e ','E'),('F','f '),
+# ('A','b '),('b ','C'),('C','d '),('d','E'),('E ','f'),
+# ('a','C '),('B ','d'),('c','E '),('D','f');
+#-- error 1062
+#insert into t1 values('d','f');
+#
+#select a,b,length(a),length(b) from t1 order by a,b limit 3;
+#select a,b,length(a),length(b) from t1 order by a desc, b desc limit 3;
+#select a,b,length(a),length(b) from t1 where a='c' and b='c';
+#drop table t1;
+
# bug#14007
create table t1 (
a char(10) primary key
@@ -173,3 +251,5 @@ select * from t1;
replace into t1 set a = 'aaabb';
select * from t1;
drop table t1;
+
+# End of 4.1 tests
diff --git a/mysql-test/t/ndb_condition_pushdown.test b/mysql-test/t/ndb_condition_pushdown.test
new file mode 100644
index 00000000000..b5b7e41fb21
--- /dev/null
+++ b/mysql-test/t/ndb_condition_pushdown.test
@@ -0,0 +1,2747 @@
+-- source include/have_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2;
+--enable_warnings
+
+#
+# Test of condition pushdown to storage engine
+#
+CREATE TABLE t1 (
+ auto int(5) unsigned NOT NULL auto_increment,
+ string char(10),
+ vstring varchar(10),
+ bin binary(2),
+ vbin varbinary(7),
+ tiny tinyint(4) DEFAULT '0' NOT NULL ,
+ short smallint(6) DEFAULT '1' NOT NULL ,
+ medium mediumint(8) DEFAULT '0' NOT NULL,
+ long_int int(11) DEFAULT '0' NOT NULL,
+ longlong bigint(13) DEFAULT '0' NOT NULL,
+ real_float float(13,1) DEFAULT 0.0 NOT NULL,
+ real_double double(16,4),
+ real_decimal decimal(16,4),
+ utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
+ ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
+ umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
+ ulong int(11) unsigned DEFAULT '0' NOT NULL,
+ ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
+ bits bit(3),
+ options enum('zero','one','two','three','four') not null,
+ flags set('zero','one','two','three','four') not null,
+ date_field date,
+ year_field year,
+ time_field time,
+ date_time datetime,
+ time_stamp timestamp,
+ PRIMARY KEY (auto)
+) engine=ndb;
+
+insert into t1 values
+(NULL,"aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1.1,1,1,1,1,1,
+ b'001','one','one',
+ '1901-01-01','1901',
+'01:01:01','1901-01-01 01:01:01',NULL),
+(NULL,"bbbb","bbbb",0xBBBB,0xBBBB,-2,-2,-2,-2,-2,2.2,2.2,2.2,2,2,2,2,2,
+ b'010','two','one,two',
+ '1902-02-02','1902',
+'02:02:02','1902-02-02 02:02:02',NULL),
+(NULL,"cccc","cccc",0xCCCC,0xCCCC,-3,-3,-3,-3,-3,3.3,3.3,3.3,3,3,3,3,3,
+ b'011','three','one,two,three',
+ '1903-03-03','1903',
+'03:03:03','1903-03-03 03:03:03',NULL),
+(NULL,"dddd","dddd",0xDDDD,0xDDDD,-4,-4,-4,-4,-4,4.4,4.4,4.4,4,4,4,4,4,
+ b'100','four','one,two,three,four',
+ '1904-04-04','1904',
+'04:04:04','1904-04-04 04:04:04',NULL);
+
+CREATE TABLE t2 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 int unsigned, attr3 VARCHAR(10) ) ENGINE=ndbcluster;
+
+insert into t2 values (0,0,0, "a"),(1,1,1,"b"),(2,2,NULL,NULL),(3,3,3,"d"),(4,4,4,"e"),(5,5,5,"f");
+
+CREATE TABLE t3 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 bigint unsigned, attr3 tinyint unsigned, attr4 VARCHAR(10) ) ENGINE=ndbcluster;
+
+insert into t3 values (0,0,0,0,"a"),(1,1,9223372036854775803,1,"b"),(2,2,9223372036854775804,2,"c"),(3,3,9223372036854775805,3,"d"),(4,4,9223372036854775806,4,"e"),(5,5,9223372036854775807,5,"f");
+
+CREATE TABLE t4 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 bigint unsigned, attr3 tinyint unsigned, attr4 VARCHAR(10) , KEY (attr1)) ENGINE=ndbcluster;
+
+insert into t4 values (0,0,0,0,"a"),(1,1,9223372036854775803,1,"b"),(2,2,9223372036854775804,2,"c"),(3,3,9223372036854775805,3,"d"),(4,4,9223372036854775806,4,"e"),(5,5,9223372036854775807,5,"f");
+
+set @old_ecpd = @@session.engine_condition_pushdown;
+set engine_condition_pushdown = off;
+
+# Test all types and compare operators
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+bits = b'001' and
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+bits != b'001' and
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+bits > b'001' and
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+bits >= b'001' and
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+bits < b'100' and
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 and
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+bits <= b'100' and
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+
+# Test LIKE/NOT LIKE
+select auto from t1 where
+string like "b%" and
+vstring like "b%" and
+bin like concat(0xBB, '%') and
+vbin like concat(0xBB, '%')
+order by auto;
+
+select auto from t1 where
+string not like "b%" and
+vstring not like "b%" and
+bin not like concat(0xBB, '%') and
+vbin not like concat(0xBB, '%')
+order by auto;
+
+# BETWEEN
+select auto from t1 where
+(string between "aaaa" and "cccc") and
+(vstring between "aaaa" and "cccc") and
+(bin between 0xAAAA and 0xCCCC) and
+(vbin between 0xAAAA and 0xCCCC) and
+(tiny between -3 and -1) and
+(short between -3 and -1) and
+(medium between -3 and -1) and
+(long_int between -3 and -1) and
+(longlong between -3 and -1) and
+(utiny between 1 and 3) and
+(ushort between 1 and 3) and
+(umedium between 1 and 3) and
+(ulong between 1 and 3) and
+(ulonglong between 1 and 3) and
+(bits between b'001' and b'011') and
+(options between 'one' and 'three') and
+(flags between 'one' and 'one,two,three') and
+(date_field between '1901-01-01' and '1903-03-03') and
+(year_field between '1901' and '1903') and
+(time_field between '01:01:01' and '03:03:03') and
+(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+("aaaa" between string and string) and
+("aaaa" between vstring and vstring) and
+(0xAAAA between bin and bin) and
+(0xAAAA between vbin and vbin) and
+(-1 between tiny and tiny) and
+(-1 between short and short) and
+(-1 between medium and medium) and
+(-1 between long_int and long_int) and
+(-1 between longlong and longlong) and
+(1 between utiny and utiny) and
+(1 between ushort and ushort) and
+(1 between umedium and umedium) and
+(1 between ulong and ulong) and
+(1 between ulonglong and ulonglong) and
+(b'001' between bits and bits) and
+('one' between options and options) and
+('one' between flags and flags) and
+('1901-01-01' between date_field and date_field) and
+('1901' between year_field and year_field) and
+('01:01:01' between time_field and time_field) and
+('1901-01-01 01:01:01' between date_time and date_time)
+order by auto;
+
+# NOT BETWEEN
+select auto from t1 where
+(string not between "aaaa" and "cccc") and
+(vstring not between "aaaa" and "cccc") and
+(bin not between 0xAAAA and 0xCCCC) and
+(vbin not between 0xAAAA and 0xCCCC) and
+(tiny not between -3 and -1) and
+(short not between -3 and -1) and
+(medium not between -3 and -1) and
+(long_int not between -3 and -1) and
+(longlong not between -3 and -1) and
+(utiny not between 1 and 3) and
+(ushort not between 1 and 3) and
+(umedium not between 1 and 3) and
+(ulong not between 1 and 3) and
+(ulonglong not between 1 and 3) and
+(bits not between b'001' and b'011') and
+(options not between 'one' and 'three') and
+(flags not between 'one' and 'one,two,three') and
+(date_field not between '1901-01-01' and '1903-03-03') and
+(year_field not between '1901' and '1903') and
+(time_field not between '01:01:01' and '03:03:03') and
+(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+("aaaa" not between string and string) and
+("aaaa" not between vstring and vstring) and
+(0xAAAA not between bin and bin) and
+(0xAAAA not between vbin and vbin) and
+(-1 not between tiny and tiny) and
+(-1 not between short and short) and
+(-1 not between medium and medium) and
+(-1 not between long_int and long_int) and
+(-1 not between longlong and longlong) and
+(1 not between utiny and utiny) and
+(1 not between ushort and ushort) and
+(1 not between umedium and umedium) and
+(1 not between ulong and ulong) and
+(1 not between ulonglong and ulonglong) and
+(b'001' not between bits and bits) and
+('one' not between options and options) and
+('one' not between flags and flags) and
+('1901-01-01' not between date_field and date_field) and
+('1901' not between year_field and year_field) and
+('01:01:01' not between time_field and time_field) and
+('1901-01-01 01:01:01' not between date_time and date_time)
+order by auto;
+
+# IN
+select auto from t1 where
+string in("aaaa","cccc") and
+vstring in("aaaa","cccc") and
+bin in(0xAAAA,0xCCCC) and
+vbin in(0xAAAA,0xCCCC) and
+tiny in(-1,-3) and
+short in(-1,-3) and
+medium in(-1,-3) and
+long_int in(-1,-3) and
+longlong in(-1,-3) and
+utiny in(1,3) and
+ushort in(1,3) and
+umedium in(1,3) and
+ulong in(1,3) and
+ulonglong in(1,3) and
+bits in(b'001',b'011') and
+options in('one','three') and
+flags in('one','one,two,three') and
+date_field in('1901-01-01','1903-03-03') and
+year_field in('1901','1903') and
+time_field in('01:01:01','03:03:03') and
+date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+"aaaa" in(string) and
+"aaaa" in(vstring) and
+0xAAAA in(bin) and
+0xAAAA in(vbin) and
+(-1 in(tiny)) and
+(-1 in(short)) and
+(-1 in(medium)) and
+(-1 in(long_int)) and
+(-1 in(longlong)) and
+1 in(utiny) and
+1 in(ushort) and
+1 in(umedium) and
+1 in(ulong) and
+1 in(ulonglong) and
+b'001' in(bits) and
+'one' in(options) and
+'one' in(flags) and
+'1901-01-01' in(date_field) and
+'1901' in(year_field) and
+'01:01:01' in(time_field) and
+'1901-01-01 01:01:01' in(date_time)
+order by auto;
+
+# NOT IN
+select auto from t1 where
+string not in("aaaa","cccc") and
+vstring not in("aaaa","cccc") and
+bin not in(0xAAAA,0xCCCC) and
+vbin not in(0xAAAA,0xCCCC) and
+tiny not in(-1,-3) and
+short not in(-1,-3) and
+medium not in(-1,-3) and
+long_int not in(-1,-3) and
+longlong not in(-1,-3) and
+utiny not in(1,3) and
+ushort not in(1,3) and
+umedium not in(1,3) and
+ulong not in(1,3) and
+ulonglong not in(1,3) and
+bits not in(b'001',b'011') and
+options not in('one','three') and
+flags not in('one','one,two,three') and
+date_field not in('1901-01-01','1903-03-03') and
+year_field not in('1901','1903') and
+time_field not in('01:01:01','03:03:03') and
+date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+"aaaa" not in(string) and
+"aaaa" not in(vstring) and
+0xAAAA not in(bin) and
+0xAAAA not in(vbin) and
+(-1 not in(tiny)) and
+(-1 not in(short)) and
+(-1 not in(medium)) and
+(-1 not in(long_int)) and
+(-1 not in(longlong)) and
+1 not in(utiny) and
+1 not in(ushort) and
+1 not in(umedium) and
+1 not in(ulong) and
+1 not in(ulonglong) and
+b'001' not in(bits) and
+'one' not in(options) and
+'one' not in(flags) and
+'1901-01-01' not in(date_field) and
+'1901' not in(year_field) and
+'01:01:01' not in(time_field) and
+'1901-01-01 01:01:01' not in(date_time)
+order by auto;
+
+# Various tests
+select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
+select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
+select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
+select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
+select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
+select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
+
+set engine_condition_pushdown = on;
+
+# Test all types and compare operators
+explain
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+
+explain
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+
+# Test index scan with filter
+create index medium_index on t1(medium);
+
+# Test all types and compare operators
+explain
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string != "aaaa" and
+vstring != "aaaa" and
+bin != 0xAAAA and
+vbin != 0xAAAA and
+tiny != -1 and
+short != -1 and
+medium != -1 and
+long_int != -1 and
+longlong != -1 and
+(real_float < 1.0 or real_float > 2.0) and
+(real_double < 1.0 or real_double > 2.0) and
+(real_decimal < 1.0 or real_decimal > 2.0) and
+utiny != 1 and
+ushort != 1 and
+umedium != 1 and
+ulong != 1 and
+ulonglong != 1 and
+/* bits != b'001' and */
+options != 'one' and
+flags != 'one' and
+date_field != '1901-01-01' and
+year_field != '1901' and
+time_field != '01:01:01' and
+date_time != '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string > "aaaa" and
+vstring > "aaaa" and
+bin > 0xAAAA and
+vbin > 0xAAAA and
+tiny < -1 and
+short < -1 and
+medium < -1 and
+long_int < -1 and
+longlong < -1 and
+real_float > 1.1 and
+real_double > 1.1 and
+real_decimal > 1.1 and
+utiny > 1 and
+ushort > 1 and
+umedium > 1 and
+ulong > 1 and
+ulonglong > 1 and
+/* bits > b'001' and */
+(options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field > '1901-01-01' and
+year_field > '1901' and
+time_field > '01:01:01' and
+date_time > '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+
+select auto from t1 where
+string >= "aaaa" and
+vstring >= "aaaa" and
+bin >= 0xAAAA and
+vbin >= 0xAAAA and
+tiny <= -1 and
+short <= -1 and
+medium <= -1 and
+long_int <= -1 and
+longlong <= -1 and
+real_float >= 1.0 and
+real_double >= 1.0 and
+real_decimal >= 1.0 and
+utiny >= 1 and
+ushort >= 1 and
+umedium >= 1 and
+ulong >= 1 and
+ulonglong >= 1 and
+/* bits >= b'001' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field >= '1901-01-01' and
+year_field >= '1901' and
+time_field >= '01:01:01' and
+date_time >= '1901-01-01 01:01:01'
+order by auto;
+
+explain
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+
+select auto from t1 where
+string < "dddd" and
+vstring < "dddd" and
+bin < 0xDDDD and
+vbin < 0xDDDD and
+tiny > -4 and
+short > -4 and
+medium > -4 and
+long_int > -4 and
+longlong > -4 and
+real_float < 4.4 and
+real_double < 4.4 and
+real_decimal < 4.4 and
+utiny < 4 and
+ushort < 4 and
+umedium < 4 and
+ulong < 4 and
+ulonglong < 4 and
+/* bits < b'100' and */
+(options = 'one' or options = 'two' or options = 'three') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
+date_field < '1904-01-01' and
+year_field < '1904' and
+time_field < '04:04:04' and
+date_time < '1904-04-04 04:04:04'
+order by auto;
+
+explain
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+
+select auto from t1 where
+string <= "dddd" and
+vstring <= "dddd" and
+bin <= 0xDDDD and
+vbin <= 0xDDDD and
+tiny >= -4 and
+short >= -4 and
+medium >= -4 and
+long_int >= -4 and
+longlong >= -4 and
+real_float <= 4.5 and
+real_double <= 4.5 and
+real_decimal <= 4.5 and
+utiny <= 4 - 1 + 1 and /* Checking function composition */
+ushort <= 4 and
+umedium <= 4 and
+ulong <= 4 and
+ulonglong <= 4 and
+/* bits <= b'100' and */
+(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
+(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
+date_field <= '1904-04-04' and
+year_field <= '1904' and
+time_field <= '04:04:04' and
+date_time <= '1904-04-04 04:04:04'
+order by auto;
+
+# Test LIKE/NOT LIKE
+explain
+select auto from t1 where
+string like "b%" and
+vstring like "b%" and
+bin like concat(0xBB, '%') and
+vbin like concat(0xBB, '%')
+order by auto;
+
+select auto from t1 where
+string like "b%" and
+vstring like "b%" and
+bin like concat(0xBB, '%') and
+vbin like concat(0xBB, '%')
+order by auto;
+
+explain
+select auto from t1 where
+string not like "b%" and
+vstring not like "b%" and
+bin not like concat(0xBB, '%') and
+vbin not like concat(0xBB, '%')
+order by auto;
+
+select auto from t1 where
+string not like "b%" and
+vstring not like "b%" and
+bin not like concat(0xBB, '%') and
+vbin not like concat(0xBB, '%')
+order by auto;
+
+# BETWEEN
+explain
+select auto from t1 where
+(string between "aaaa" and "cccc") and
+(vstring between "aaaa" and "cccc") and
+(bin between 0xAAAA and 0xCCCC) and
+(vbin between 0xAAAA and 0xCCCC) and
+(tiny between -3 and -1) and
+(short between -3 and -1) and
+(medium between -3 and -1) and
+(long_int between -3 and -1) and
+(longlong between -3 and -1) and
+(utiny between 1 and 3) and
+(ushort between 1 and 3) and
+(umedium between 1 and 3) and
+(ulong between 1 and 3) and
+(ulonglong between 1 and 3) and
+/* (bits between b'001' and b'011') and */
+(options between 'one' and 'three') and
+(flags between 'one' and 'one,two,three') and
+(date_field between '1901-01-01' and '1903-03-03') and
+(year_field between '1901' and '1903') and
+(time_field between '01:01:01' and '03:03:03') and
+(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+(string between "aaaa" and "cccc") and
+(vstring between "aaaa" and "cccc") and
+(bin between 0xAAAA and 0xCCCC) and
+(vbin between 0xAAAA and 0xCCCC) and
+(tiny between -3 and -1) and
+(short between -3 and -1) and
+(medium between -3 and -1) and
+(long_int between -3 and -1) and
+(longlong between -3 and -1) and
+(utiny between 1 and 3) and
+(ushort between 1 and 3) and
+(umedium between 1 and 3) and
+(ulong between 1 and 3) and
+(ulonglong between 1 and 3) and
+/* (bits between b'001' and b'011') and */
+(options between 'one' and 'three') and
+(flags between 'one' and 'one,two,three') and
+(date_field between '1901-01-01' and '1903-03-03') and
+(year_field between '1901' and '1903') and
+(time_field between '01:01:01' and '03:03:03') and
+(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+
+explain
+select auto from t1 where
+("aaaa" between string and string) and
+("aaaa" between vstring and vstring) and
+(0xAAAA between bin and bin) and
+(0xAAAA between vbin and vbin) and
+(-1 between tiny and tiny) and
+(-1 between short and short) and
+(-1 between medium and medium) and
+(-1 between long_int and long_int) and
+(-1 between longlong and longlong) and
+(1 between utiny and utiny) and
+(1 between ushort and ushort) and
+(1 between umedium and umedium) and
+(1 between ulong and ulong) and
+(1 between ulonglong and ulonglong) and
+/* (b'001' between bits and bits) and */
+('one' between options and options) and
+('one' between flags and flags) and
+('1901-01-01' between date_field and date_field) and
+('1901' between year_field and year_field) and
+('01:01:01' between time_field and time_field) and
+('1901-01-01 01:01:01' between date_time and date_time)
+order by auto;
+
+select auto from t1 where
+("aaaa" between string and string) and
+("aaaa" between vstring and vstring) and
+(0xAAAA between bin and bin) and
+(0xAAAA between vbin and vbin) and
+(-1 between tiny and tiny) and
+(-1 between short and short) and
+(-1 between medium and medium) and
+(-1 between long_int and long_int) and
+(-1 between longlong and longlong) and
+(1 between utiny and utiny) and
+(1 between ushort and ushort) and
+(1 between umedium and umedium) and
+(1 between ulong and ulong) and
+(1 between ulonglong and ulonglong) and
+/* (b'001' between bits and bits) and */
+('one' between options and options) and
+('one' between flags and flags) and
+('1901-01-01' between date_field and date_field) and
+('1901' between year_field and year_field) and
+('01:01:01' between time_field and time_field) and
+('1901-01-01 01:01:01' between date_time and date_time)
+order by auto;
+
+# NOT BETWEEN
+explain
+select auto from t1 where
+(string not between "aaaa" and "cccc") and
+(vstring not between "aaaa" and "cccc") and
+(bin not between 0xAAAA and 0xCCCC) and
+(vbin not between 0xAAAA and 0xCCCC) and
+(tiny not between -3 and -1) and
+(short not between -3 and -1) and
+(medium not between -3 and -1) and
+(long_int not between -3 and -1) and
+(longlong not between -3 and -1) and
+(utiny not between 1 and 3) and
+(ushort not between 1 and 3) and
+(umedium not between 1 and 3) and
+(ulong not between 1 and 3) and
+(ulonglong not between 1 and 3) and
+/* (bits not between b'001' and b'011') and */
+(options not between 'one' and 'three') and
+(flags not between 'one' and 'one,two,three') and
+(date_field not between '1901-01-01' and '1903-03-03') and
+(year_field not between '1901' and '1903') and
+(time_field not between '01:01:01' and '03:03:03') and
+(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+(string not between "aaaa" and "cccc") and
+(vstring not between "aaaa" and "cccc") and
+(bin not between 0xAAAA and 0xCCCC) and
+(vbin not between 0xAAAA and 0xCCCC) and
+(tiny not between -3 and -1) and
+(short not between -3 and -1) and
+(medium not between -3 and -1) and
+(long_int not between -3 and -1) and
+(longlong not between -3 and -1) and
+(utiny not between 1 and 3) and
+(ushort not between 1 and 3) and
+(umedium not between 1 and 3) and
+(ulong not between 1 and 3) and
+(ulonglong not between 1 and 3) and
+/* (bits not between b'001' and b'011') and */
+(options not between 'one' and 'three') and
+(flags not between 'one' and 'one,two,three') and
+(date_field not between '1901-01-01' and '1903-03-03') and
+(year_field not between '1901' and '1903') and
+(time_field not between '01:01:01' and '03:03:03') and
+(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
+order by auto;
+
+explain
+select auto from t1 where
+("aaaa" not between string and string) and
+("aaaa" not between vstring and vstring) and
+(0xAAAA not between bin and bin) and
+(0xAAAA not between vbin and vbin) and
+(-1 not between tiny and tiny) and
+(-1 not between short and short) and
+(-1 not between medium and medium) and
+(-1 not between long_int and long_int) and
+(-1 not between longlong and longlong) and
+(1 not between utiny and utiny) and
+(1 not between ushort and ushort) and
+(1 not between umedium and umedium) and
+(1 not between ulong and ulong) and
+(1 not between ulonglong and ulonglong) and
+/* (b'001' not between bits and bits) and */
+('one' not between options and options) and
+('one' not between flags and flags) and
+('1901-01-01' not between date_field and date_field) and
+('1901' not between year_field and year_field) and
+('01:01:01' not between time_field and time_field) and
+('1901-01-01 01:01:01' not between date_time and date_time)
+order by auto;
+
+select auto from t1 where
+("aaaa" not between string and string) and
+("aaaa" not between vstring and vstring) and
+(0xAAAA not between bin and bin) and
+(0xAAAA not between vbin and vbin) and
+(-1 not between tiny and tiny) and
+(-1 not between short and short) and
+(-1 not between medium and medium) and
+(-1 not between long_int and long_int) and
+(-1 not between longlong and longlong) and
+(1 not between utiny and utiny) and
+(1 not between ushort and ushort) and
+(1 not between umedium and umedium) and
+(1 not between ulong and ulong) and
+(1 not between ulonglong and ulonglong) and
+/* (b'001' not between bits and bits) and */
+('one' not between options and options) and
+('one' not between flags and flags) and
+('1901-01-01' not between date_field and date_field) and
+('1901' not between year_field and year_field) and
+('01:01:01' not between time_field and time_field) and
+('1901-01-01 01:01:01' not between date_time and date_time)
+order by auto;
+
+# IN
+explain
+select auto from t1 where
+string in("aaaa","cccc") and
+vstring in("aaaa","cccc") and
+bin in(0xAAAA,0xCCCC) and
+vbin in(0xAAAA,0xCCCC) and
+tiny in(-1,-3) and
+short in(-1,-3) and
+medium in(-1,-3) and
+long_int in(-1,-3) and
+longlong in(-1,-3) and
+utiny in(1,3) and
+ushort in(1,3) and
+umedium in(1,3) and
+ulong in(1,3) and
+ulonglong in(1,3) and
+/* bits in(b'001',b'011') and */
+options in('one','three') and
+flags in('one','one,two,three') and
+date_field in('1901-01-01','1903-03-03') and
+year_field in('1901','1903') and
+time_field in('01:01:01','03:03:03') and
+date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+string in("aaaa","cccc") and
+vstring in("aaaa","cccc") and
+bin in(0xAAAA,0xCCCC) and
+vbin in(0xAAAA,0xCCCC) and
+tiny in(-1,-3) and
+short in(-1,-3) and
+medium in(-1,-3) and
+long_int in(-1,-3) and
+longlong in(-1,-3) and
+utiny in(1,3) and
+ushort in(1,3) and
+umedium in(1,3) and
+ulong in(1,3) and
+ulonglong in(1,3) and
+/* bits in(b'001',b'011') and */
+options in('one','three') and
+flags in('one','one,two,three') and
+date_field in('1901-01-01','1903-03-03') and
+year_field in('1901','1903') and
+time_field in('01:01:01','03:03:03') and
+date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+
+explain
+select auto from t1 where
+"aaaa" in(string) and
+"aaaa" in(vstring) and
+0xAAAA in(bin) and
+0xAAAA in(vbin) and
+(-1 in(tiny)) and
+(-1 in (short)) and
+(-1 in(medium)) and
+(-1 in(long_int)) and
+(-1 in(longlong)) and
+1 in(utiny) and
+1 in(ushort) and
+1 in(umedium) and
+1 in(ulong) and
+1 in(ulonglong) and
+/* b'001' in(bits) and */
+'one' in(options) and
+'one' in(flags) and
+'1901-01-01' in(date_field) and
+'1901' in(year_field) and
+'01:01:01' in(time_field) and
+'1901-01-01 01:01:01' in(date_time)
+order by auto;
+
+select auto from t1 where
+"aaaa" in(string) and
+"aaaa" in(vstring) and
+0xAAAA in(bin) and
+0xAAAA in(vbin) and
+(-1 in(tiny)) and
+(-1 in (short)) and
+(-1 in(medium)) and
+(-1 in(long_int)) and
+(-1 in(longlong)) and
+1 in(utiny) and
+1 in(ushort) and
+1 in(umedium) and
+1 in(ulong) and
+1 in(ulonglong) and
+/* b'001' in(bits) and */
+'one' in(options) and
+'one' in(flags) and
+'1901-01-01' in(date_field) and
+'1901' in(year_field) and
+'01:01:01' in(time_field) and
+'1901-01-01 01:01:01' in(date_time)
+order by auto;
+
+# NOT IN
+explain
+select auto from t1 where
+string not in("aaaa","cccc") and
+vstring not in("aaaa","cccc") and
+bin not in(0xAAAA,0xCCCC) and
+vbin not in(0xAAAA,0xCCCC) and
+tiny not in(-1,-3) and
+short not in(-1,-3) and
+medium not in(-1,-3) and
+long_int not in(-1,-3) and
+longlong not in(-1,-3) and
+utiny not in(1,3) and
+ushort not in(1,3) and
+umedium not in(1,3) and
+ulong not in(1,3) and
+ulonglong not in(1,3) and
+/* bits not in(b'001',b'011') and */
+options not in('one','three') and
+flags not in('one','one,two,three') and
+date_field not in('1901-01-01','1903-03-03') and
+year_field not in('1901','1903') and
+time_field not in('01:01:01','03:03:03') and
+date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+
+select auto from t1 where
+string not in("aaaa","cccc") and
+vstring not in("aaaa","cccc") and
+bin not in(0xAAAA,0xCCCC) and
+vbin not in(0xAAAA,0xCCCC) and
+tiny not in(-1,-3) and
+short not in(-1,-3) and
+medium not in(-1,-3) and
+long_int not in(-1,-3) and
+longlong not in(-1,-3) and
+utiny not in(1,3) and
+ushort not in(1,3) and
+umedium not in(1,3) and
+ulong not in(1,3) and
+ulonglong not in(1,3) and
+/* bits not in(b'001',b'011') and */
+options not in('one','three') and
+flags not in('one','one,two,three') and
+date_field not in('1901-01-01','1903-03-03') and
+year_field not in('1901','1903') and
+time_field not in('01:01:01','03:03:03') and
+date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
+order by auto;
+
+explain
+select auto from t1 where
+"aaaa" not in(string) and
+"aaaa" not in(vstring) and
+0xAAAA not in(bin) and
+0xAAAA not in(vbin) and
+(-1 not in(tiny)) and
+(-1 not in(short)) and
+(-1 not in(medium)) and
+(-1 not in(long_int)) and
+(-1 not in(longlong)) and
+1 not in(utiny) and
+1 not in(ushort) and
+1 not in(umedium) and
+1 not in(ulong) and
+1 not in(ulonglong) and
+/* b'001' not in(bits) and */
+'one' not in(options) and
+'one' not in(flags) and
+'1901-01-01' not in(date_field) and
+'1901' not in(year_field) and
+'01:01:01' not in(time_field) and
+'1901-01-01 01:01:01' not in(date_time)
+order by auto;
+
+select auto from t1 where
+"aaaa" not in(string) and
+"aaaa" not in(vstring) and
+0xAAAA not in(bin) and
+0xAAAA not in(vbin) and
+(-1 not in(tiny)) and
+(-1 not in(short)) and
+(-1 not in(medium)) and
+(-1 not in(long_int)) and
+(-1 not in(longlong)) and
+1 not in(utiny) and
+1 not in(ushort) and
+1 not in(umedium) and
+1 not in(ulong) and
+1 not in(ulonglong) and
+/* b'001' not in(bits) and */
+'one' not in(options) and
+'one' not in(flags) and
+'1901-01-01' not in(date_field) and
+'1901' not in(year_field) and
+'01:01:01' not in(time_field) and
+'1901-01-01 01:01:01' not in(date_time)
+order by auto;
+
+# Update test
+update t1
+set medium = 17
+where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = -1 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01';
+
+# Delete test
+delete from t1
+where
+string = "aaaa" and
+vstring = "aaaa" and
+bin = 0xAAAA and
+vbin = 0xAAAA and
+tiny = -1 and
+short = -1 and
+medium = 17 and
+long_int = -1 and
+longlong = -1 and
+real_float > 1.0 and real_float < 2.0 and
+real_double > 1.0 and real_double < 2.0 and
+real_decimal > 1.0 and real_decimal < 2.0 and
+utiny = 1 and
+ushort = 1 and
+umedium = 1 and
+ulong = 1 and
+ulonglong = 1 and
+/* bits = b'001' and */
+options = 'one' and
+flags = 'one' and
+date_field = '1901-01-01' and
+year_field = '1901' and
+time_field = '01:01:01' and
+date_time = '1901-01-01 01:01:01';
+
+select count(*) from t1;
+
+# Various tests
+explain
+select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
+select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
+
+explain
+select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
+select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
+
+explain
+select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
+select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
+
+explain
+select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
+select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
+
+explain
+select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
+select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
+
+explain
+select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
+select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
+
+# Some tests that are currently not supported and should not push condition
+explain
+select auto from t1 where string = "aaaa" collate latin1_general_ci order by auto;
+explain
+select * from t2 where (attr1 < 2) = (attr2 < 2) order by pk1;
+explain
+select * from t3 left join t4 on t4.attr2 = t3.attr2 where t4.attr1 > 1 and t4.attr3 < 5 or t4.attr1 is null order by t4.pk1;
+
+# bug#15722
+create table t5 (a int primary key auto_increment, b tinytext not null)
+engine = ndb;
+insert into t5 (b) values ('jonas'), ('jensing'), ('johan');
+set engine_condition_pushdown = off;
+select * from t5 where b like '%jo%' order by a;
+set engine_condition_pushdown = on;
+explain select * from t5 where b like '%jo%';
+select * from t5 where b like '%jo%' order by a;
+
+# bug#21056 ndb pushdown equal/setValue error on datetime
+set engine_condition_pushdown = off;
+select auto from t1 where date_time like '1902-02-02 %' order by auto;
+select auto from t1 where date_time not like '1902-02-02 %' order by auto;
+set engine_condition_pushdown = on;
+explain select auto from t1 where date_time like '1902-02-02 %';
+select auto from t1 where date_time like '1902-02-02 %' order by auto;
+explain select auto from t1 where date_time not like '1902-02-02 %';
+select auto from t1 where date_time not like '1902-02-02 %' order by auto;
+
+# bug#17421 -1
+drop table t1;
+create table t1 (a int, b varchar(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+# in TUP the constants 'ab' 'abc' were expected in varchar format
+# "like" returned error which became "false"
+# scan filter negates "or" which exposes the bug
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+
+# bug#17421 -2
+drop table t1;
+create table t1 (a int, b char(3), primary key using hash(a))
+engine=ndb;
+insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
+# test that incorrect MySQL behaviour is preserved
+# 'ab ' LIKE 'ab' is true in MySQL
+set engine_condition_pushdown = off;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+set engine_condition_pushdown = on;
+select * from t1 where b like 'ab';
+select * from t1 where b like 'ab' or b like 'ab';
+select * from t1 where b like 'abc';
+select * from t1 where b like 'abc' or b like 'abc';
+
+# bug#20406 (maybe same as bug#17421 -1, not seen on 32-bit x86)
+drop table t1;
+create table t1 ( fname varchar(255), lname varchar(255) )
+engine=ndbcluster;
+insert into t1 values ("Young","Foo");
+
+set engine_condition_pushdown = 0;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+set engine_condition_pushdown = 1;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+
+# make sure optimizer does not do some crazy shortcut
+insert into t1 values ("aaa", "aaa");
+insert into t1 values ("bbb", "bbb");
+insert into t1 values ("ccc", "ccc");
+insert into t1 values ("ddd", "ddd");
+
+set engine_condition_pushdown = 0;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+set engine_condition_pushdown = 1;
+SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
+
+# bug#29390 (scan filter is too large, discarded)
+
+drop table t1;
+
+create table t1 (a int, b int, c int, d int, primary key using hash(a))
+ engine=ndbcluster;
+
+insert into t1 values (10,1,100,0+0x1111);
+insert into t1 values (20,2,200,0+0x2222);
+insert into t1 values (30,3,300,0+0x3333);
+insert into t1 values (40,4,400,0+0x4444);
+insert into t1 values (50,5,500,0+0x5555);
+
+set engine_condition_pushdown = on;
+
+select a,b,d from t1
+ where b in (0,1,2,5)
+ order by b;
+
+--disable_query_log
+select a,b,d from t1
+ where b in (
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,
+0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2,5,0,1,2)
+ order by b;
+--enable_query_log
+
+set engine_condition_pushdown = @old_ecpd;
+DROP TABLE t1,t2,t3,t4,t5;
diff --git a/mysql-test/t/ndb_config.test b/mysql-test/t/ndb_config.test
index 0c24c794dbc..f63c0087c1e 100644
--- a/mysql-test/t/ndb_config.test
+++ b/mysql-test/t/ndb_config.test
@@ -1,10 +1,23 @@
-- source include/have_ndb.inc
+-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=type,nodeid,host 2> /dev/null
--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null
---exec $NDB_TOOLS_DIR/ndb_config --no-defaults -r \\n -f " " --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null
+--exec $NDB_TOOLS_DIR/ndb_config --no-defaults -r \\\n -f " " --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null
--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid --type=ndbd --host=localhost 2> /dev/null
--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=type,nodeid,host --config-file=$NDB_BACKUP_DIR/config.ini 2> /dev/null
# End of 4.1 tests
+
+--exec $NDB_TOOLS_DIR/ndb_config --defaults-group-suffix=.jonas --defaults-file=$MYSQL_TEST_DIR/std_data/ndb_config_mycnf1.cnf --query=type,nodeid,host,IndexMemory,DataMemory --mycnf 2> /dev/null
+
+--exec $NDB_TOOLS_DIR/ndb_config --defaults-group-suffix=.cluster0 --defaults-file=$MYSQL_TEST_DIR/std_data/ndb_config_mycnf2.cnf --query=type,nodeid,host --mycnf 2> /dev/null
+--exec $NDB_TOOLS_DIR/ndb_config --defaults-group-suffix=.cluster1 --defaults-file=$MYSQL_TEST_DIR/std_data/ndb_config_mycnf2.cnf --query=type,nodeid,host --mycnf 2> /dev/null
+--exec $NDB_TOOLS_DIR/ndb_config --defaults-group-suffix=.cluster2 --defaults-file=$MYSQL_TEST_DIR/std_data/ndb_config_mycnf2.cnf --query=type,nodeid,host --mycnf 2> /dev/null
+--exec $NDB_TOOLS_DIR/ndb_config --defaults-group-suffix=.cluster2 --defaults-file=$MYSQL_TEST_DIR/std_data/ndb_config_mycnf2.cnf --ndb-shm --connections --query=type,nodeid1,nodeid2,group,nodeidserver --mycnf 2> /dev/null
+
+
+--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid --host=localhost --config-file=$NDB_BACKUP_DIR/config.ini 2> /dev/null
+--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid --host=1.2.3.4 --config-file=$NDB_BACKUP_DIR/config.ini 2> /dev/null
+--exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid --host=127.0.0.1 --config-file=$NDB_BACKUP_DIR/config.ini 2> /dev/null
diff --git a/mysql-test/t/ndb_gis.test b/mysql-test/t/ndb_gis.test
new file mode 100644
index 00000000000..e14f462c32d
--- /dev/null
+++ b/mysql-test/t/ndb_gis.test
@@ -0,0 +1,5 @@
+--source include/have_ndb.inc
+SET storage_engine=ndbcluster;
+--source include/gis_generic.inc
+set engine_condition_pushdown = on;
+--source include/gis_generic.inc
diff --git a/mysql-test/t/ndb_grant.later b/mysql-test/t/ndb_grant.later
index 5258501d79e..5431d94e1f8 100644
--- a/mysql-test/t/ndb_grant.later
+++ b/mysql-test/t/ndb_grant.later
@@ -226,19 +226,23 @@ grant select on test.t1 to drop_user2@localhost;
grant select on test.* to drop_user3@localhost;
grant select on *.* to drop_user4@localhost;
commit;
---error 1268
+flush privileges;
+# Drop user now implicitly revokes all privileges.
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
begin;
+--error 1269
revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost,
drop_user3@localhost, drop_user4@localhost;
commit;
+flush privileges;
+#--error 1268
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
drop table t1;
begin;
grant usage on *.* to mysqltest_1@localhost identified by "password";
-grant select, update, insert on test.* to mysqltest@localhost;
+grant select, update, insert on test.* to mysqltest_1@localhost;
commit;
show grants for mysqltest_1@localhost;
drop user mysqltest_1@localhost;
@@ -352,6 +356,11 @@ DROP DATABASE testdb9;
DROP DATABASE testdb10;
#
+# just SHOW PRIVILEGES test
+#
+SHOW PRIVILEGES;
+
+#
# Alter mysql system tables back to myisam
#
use mysql;
diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test
index eb2b4e86343..31385fd56b2 100644
--- a/mysql-test/t/ndb_index_ordered.test
+++ b/mysql-test/t/ndb_index_ordered.test
@@ -50,7 +50,7 @@ update t1 set c = 13 where b <= 3;
select * from t1 order by a;
update t1 set b = b + 1 where b > 4 and b < 7;
select * from t1 order by a;
--- Update primary key
+# Update primary key
update t1 set a = a + 10 where b > 1 and b < 7;
select * from t1 order by a;
@@ -149,6 +149,37 @@ select * from t1 use index (bc) where b IS NOT NULL order by a;
drop table t1;
#
+# Order by again, including descending.
+#
+
+create table t1 (
+ a int unsigned primary key,
+ b int unsigned,
+ c char(10),
+ key bc (b, c)
+) engine=ndb;
+
+insert into t1 values(1,1,'a'),(2,2,'b'),(3,3,'c'),(4,4,'d'),(5,5,'e');
+insert into t1 select a*7,10*b,'f' from t1;
+insert into t1 select a*13,10*b,'g' from t1;
+insert into t1 select a*17,10*b,'h' from t1;
+insert into t1 select a*19,10*b,'i' from t1;
+insert into t1 select a*23,10*b,'j' from t1;
+insert into t1 select a*29,10*b,'k' from t1;
+#
+select b, c from t1 where b <= 10 and c <'f' order by b, c;
+select b, c from t1 where b <= 10 and c <'f' order by b desc, c desc;
+#
+select b, c from t1 where b=4000 and c<'k' order by b, c;
+select b, c from t1 where b=4000 and c<'k' order by b desc, c desc;
+select b, c from t1 where 1000<=b and b<=100000 and c<'j' order by b, c;
+select b, c from t1 where 1000<=b and b<=100000 and c<'j' order by b desc, c desc;
+#
+select min(b), max(b) from t1;
+#
+drop table t1;
+
+#
# Bug #6435
CREATE TABLE test1 (
SubscrID int(11) NOT NULL auto_increment,
@@ -305,8 +336,8 @@ drop table t1;
# bug#7798
create table t1(a int primary key, b int not null, index(b));
insert into t1 values (1,1), (2,2);
-connect (con1,localhost,,,test);
-connect (con2,localhost,,,test);
+connect (con1,localhost,root,,test);
+connect (con2,localhost,root,,test);
connection con1;
set autocommit=0;
begin;
@@ -318,4 +349,22 @@ select a from t1 where b = 2;
show tables;
drop table t1;
+# mysqld 5.0.13 crash, no bug#
+create table t1 (a int, c varchar(10),
+ primary key using hash (a), index(c)) engine=ndb;
+insert into t1 (a, c) values (1,'aaa'),(3,'bbb');
+select count(*) from t1 where c<'bbb';
+
# End of 4.1 tests
+
+# bug#24820 CREATE INDEX ....USING HASH on NDB table creates ordered index, not HASH index
+
+--error ER_CANT_CREATE_TABLE
+create table nationaldish (DishID int(10) unsigned NOT NULL AUTO_INCREMENT,
+ CountryCode char(3) NOT NULL,
+ DishTitle varchar(64) NOT NULL,
+ calories smallint(5) unsigned DEFAULT NULL,
+ PRIMARY KEY (DishID),
+ INDEX i USING HASH (countrycode,calories)
+ ) ENGINE=ndbcluster;
+
diff --git a/mysql-test/t/ndb_index_unique.test b/mysql-test/t/ndb_index_unique.test
index 2bf4a763313..18eec046074 100644
--- a/mysql-test/t/ndb_index_unique.test
+++ b/mysql-test/t/ndb_index_unique.test
@@ -2,7 +2,7 @@
-- source include/not_embedded.inc
--disable_warnings
-drop table if exists t1, t2, t3, t4, t5, t6, t7;
+drop table if exists t1, t2, t3, t4, t5, t6, t7, t8;
--enable_warnings
#
@@ -93,7 +93,6 @@ select * from t2 order by a;
drop table t2;
--- error 1121
CREATE TABLE t2 (
a int unsigned NOT NULL PRIMARY KEY,
b int unsigned not null,
@@ -101,6 +100,20 @@ CREATE TABLE t2 (
UNIQUE USING HASH (b, c)
) engine=ndbcluster;
+
+insert t2 values(1,1,NULL),(2,2,2),(3,3,NULL),(4,4,4),(5,5,NULL),(6,6,6),(7,7,NULL),(8,3,NULL),(9,3,NULL);
+
+select * from t2 where c IS NULL order by a;
+select * from t2 where b = 3 AND c IS NULL order by a;
+select * from t2 where (b = 3 OR b = 5) AND c IS NULL order by a;
+set @old_ecpd = @@session.engine_condition_pushdown;
+set engine_condition_pushdown = true;
+explain select * from t2 where (b = 3 OR b = 5) AND c IS NULL AND a < 9 order by a;
+select * from t2 where (b = 3 OR b = 5) AND c IS NULL AND a < 9 order by a;
+set engine_condition_pushdown = @old_ecpd;
+
+drop table t2;
+
#
# Show use of PRIMARY KEY USING HASH indexes
#
@@ -191,8 +204,8 @@ INSERT INTO t3 VALUES (1,'V1',NULL);
CREATE TABLE t4 (
uid bigint(20) unsigned NOT NULL default '0',
gid bigint(20) unsigned NOT NULL,
- rid bigint(20) unsigned NOT NULL default '-1',
- cid bigint(20) unsigned NOT NULL default '-1',
+ rid bigint(20) unsigned NOT NULL,
+ cid bigint(20) unsigned NOT NULL,
UNIQUE KEY m (uid,gid,rid,cid)
) engine=ndbcluster;
INSERT INTO t4 VALUES (1,1,2,4);
@@ -218,8 +231,8 @@ CREATE TABLE t7 (
mid bigint(20) unsigned NOT NULL PRIMARY KEY,
uid bigint(20) unsigned NOT NULL default '0',
gid bigint(20) unsigned NOT NULL,
- rid bigint(20) unsigned NOT NULL default '-1',
- cid bigint(20) unsigned NOT NULL default '-1',
+ rid bigint(20) unsigned NOT NULL,
+ cid bigint(20) unsigned NOT NULL,
UNIQUE KEY m (uid,gid,rid,cid)
) engine=ndbcluster;
INSERT INTO t7 VALUES(1, 1, 1, 1, 1);
@@ -317,4 +330,18 @@ select * from t1 where code = '12' and month = 4 and year = 2004 ;
drop table t1;
+# bug#15918 Unique Key Limit in NDB Engine
+
+create table t1 (a int primary key, b varchar(1000) not null, unique key (b))
+engine=ndb charset=utf8;
+
+insert into t1 values (1, repeat(_utf8 0xe288ab6474, 200));
+--error 1062
+insert into t1 values (2, repeat(_utf8 0xe288ab6474, 200));
+select a, sha1(b) from t1;
+
+# perl -e 'print pack("H2000","e288ab6474"x200)' | sha1sum
+
+drop table t1;
+
# End of 4.1 tests
diff --git a/mysql-test/t/ndb_insert.test b/mysql-test/t/ndb_insert.test
index 92bc51bcf4f..b8f00d6f6aa 100644
--- a/mysql-test/t/ndb_insert.test
+++ b/mysql-test/t/ndb_insert.test
@@ -591,14 +591,14 @@ DELETE FROM t1 WHERE pk1 = 2 OR pk1 = 4 OR pk1 = 6;
INSERT INTO t1 VALUES(1,1,1),(2,2,17),(3,4,5) ON DUPLICATE KEY UPDATE pk1=b;
select * from t1 where pk1 = b and b != c order by pk1;
-# The following test case currently does not work
-#DELETE FROM t1;
-#CREATE UNIQUE INDEX bi ON t1(b);
-#INSERT INTO t1 VALUES
-#(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
-#(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
-#INSERT INTO t1 VALUES(0,1,0),(21,21,21) ON DUPLICATE KEY UPDATE pk1=b+10,c=b+10;
-#select * from t1 order by pk1;
+# Test handling of duplicate unique
+DELETE FROM t1;
+CREATE UNIQUE INDEX bi ON t1(b);
+INSERT INTO t1 VALUES
+(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
+(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
+INSERT INTO t1 VALUES(0,1,0),(21,21,21) ON DUPLICATE KEY UPDATE pk1=b+10,b=b+10;
+select * from t1 order by pk1;
DROP TABLE t1;
@@ -614,7 +614,166 @@ INSERT IGNORE INTO t1 SELECT a FROM t1;
INSERT IGNORE INTO t1 SELECT a FROM t1;
INSERT IGNORE INTO t1 VALUES (1);
INSERT IGNORE INTO t1 VALUES (1);
-SELECT * FROM t1;
+SELECT * FROM t1 ORDER BY a;
+DELETE FROM t1;
+CREATE UNIQUE INDEX ai ON t1(a);
+INSERT IGNORE INTO t1 VALUES (1);
+INSERT IGNORE INTO t1 VALUES (1);
+INSERT IGNORE INTO t1 VALUES (NULL),(2);
+SELECT * FROM t1 ORDER BY a;
DROP TABLE t1;
+# Ignore and NULL values
+CREATE TABLE t1(pk INT NOT NULL PRIMARY KEY, a INT, UNIQUE (a)) ENGINE=ndb;
+INSERT IGNORE INTO t1 VALUES (1,1),(2,2),(3,3);
+INSERT IGNORE INTO t1 VALUES (4,NULL),(5,NULL),(6,NULL),(7,4);
+SELECT * FROM t1 ORDER BY pk;
+DROP TABLE t1;
+
+#
+# Bug #27980 INSERT IGNORE wrongly ignores NULLs in unique index
+#
+
+create table t1(a int primary key, b int, unique key(b)) engine=ndb;
+insert ignore into t1 values (1,0), (2,0), (2,null), (3,null);
+select * from t1 order by a;
+drop table t1;
+
+# Bug#26342 auto_increment_increment AND auto_increment_offset REALLY REALLY anger NDB cluster
+
+CREATE TABLE t1 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER;
+
+CREATE TABLE t2 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=MYISAM;
+
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+TRUNCATE t1;
+TRUNCATE t2;
+SET @@session.auto_increment_offset=5;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t1 (pk,b,c) VALUES (27,4,3),(NULL,5,4),(99,6,5),(NULL,7,6);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (pk,b,c) VALUES (27,4,3),(NULL,5,4),(99,6,5),(NULL,7,6);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+TRUNCATE t1;
+TRUNCATE t2;
+SET @@session.auto_increment_increment=2;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+DROP TABLE t1, t2;
+
+CREATE TABLE t1 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 7;
+
+CREATE TABLE t2 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 7;
+
+SET @@session.auto_increment_offset=1;
+SET @@session.auto_increment_increment=1;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+DROP TABLE t1, t2;
+
+CREATE TABLE t1 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 3;
+
+CREATE TABLE t2 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 3;
+
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+DROP TABLE t1, t2;
+
+CREATE TABLE t1 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 7;
+
+CREATE TABLE t2 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 7;
+
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+DROP TABLE t1, t2;
+
+CREATE TABLE t1 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 5;
+
+CREATE TABLE t2 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 5;
+
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+DROP TABLE t1, t2;
+
+CREATE TABLE t1 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=NDBCLUSTER AUTO_INCREMENT = 100;
+
+CREATE TABLE t2 (
+ pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ b INT NOT NULL,
+ c INT NOT NULL UNIQUE
+) ENGINE=MYISAM AUTO_INCREMENT = 100;
+
+SET @@session.auto_increment_offset=5;
+SET @@session.auto_increment_increment=10;
+INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
+INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
+SELECT * FROM t1 ORDER BY pk;
+SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
+DROP TABLE t1, t2;
+
# End of 4.1 tests
diff --git a/mysql-test/t/ndb_load.test b/mysql-test/t/ndb_load.test
index 72a5b53eaad..af2df70b74e 100644
--- a/mysql-test/t/ndb_load.test
+++ b/mysql-test/t/ndb_load.test
@@ -12,12 +12,12 @@ DROP TABLE IF EXISTS t1;
# should give duplicate key
CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=NDB;
--error 1022
-LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ;
+LOAD DATA INFILE '../std_data_ln/words.dat' INTO TABLE t1 ;
DROP TABLE t1;
# now without a primary key we should be ok
CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=NDB;
-LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 ;
+LOAD DATA INFILE '../std_data_ln/words.dat' INTO TABLE t1 ;
SELECT * FROM t1 ORDER BY word;
DROP TABLE t1;
diff --git a/mysql-test/t/ndb_lock.test b/mysql-test/t/ndb_lock.test
index 3804782b150..bd35a7d28c3 100644
--- a/mysql-test/t/ndb_lock.test
+++ b/mysql-test/t/ndb_lock.test
@@ -102,9 +102,17 @@ connection con1;
commit;
# table scan
+#
+# Note that there are two distinct execution paths in which we unlock
+# non-matching rows inspected during table scan - one that is used in
+# case of filesort and one that used in rest of cases. Below we cover
+# the latter (Bug #20390 "SELECT FOR UPDATE does not release locks of
+# untouched rows in full table scans").
connection con1;
begin;
-select * from t1 where y = 'one' or y = 'three' order by x for update;
+# We can't use "order by x" here as it will cause filesort
+--replace_column 1 # 2 # 3 #
+select * from t1 where y = 'one' or y = 'three' for update;
connection con2;
begin;
@@ -118,6 +126,19 @@ rollback;
connection con1;
commit;
+# And now the test for case with filesort
+begin;
+select * from t1 where y = 'one' or y = 'three' order by x for update;
+connection con2;
+begin;
+select * from t1 where x = 2 for update;
+--error 1205
+select * from t1 where x = 1 for update;
+rollback;
+
+connection con1;
+commit;
+
# index scan
connection con1;
begin;
@@ -128,7 +149,7 @@ begin;
# Have to check with pk access here since scans take locks on
# all rows and then release them in chunks
select * from t1 where x = 1 for update;
---error 1205
+--error 1105,1205
select * from t1 where x = 2 for update;
rollback;
@@ -156,7 +177,9 @@ commit;
# table scan
connection con1;
begin;
-select * from t1 where y = 'one' or y = 'three' order by x lock in share mode;
+# We can't use "order by x" here as it will cause filesort
+--replace_column 1 # 2 # 3 #
+select * from t1 where y = 'one' or y = 'three' lock in share mode;
connection con2;
begin;
@@ -171,6 +194,22 @@ rollback;
connection con1;
commit;
+# And the same test for case with filesort
+connection con1;
+begin;
+select * from t1 where y = 'one' or y = 'three' order by x lock in share mode;
+
+connection con2;
+begin;
+select * from t1 where y = 'one' lock in share mode;
+select * from t1 where x = 2 for update;
+--error 1205
+select * from t1 where x = 1 for update;
+rollback;
+
+connection con1;
+commit;
+
# index scan
connection con1;
begin;
diff --git a/mysql-test/t/ndb_multi.test b/mysql-test/t/ndb_multi.test
index ce8ce420793..97cce08fce0 100644
--- a/mysql-test/t/ndb_multi.test
+++ b/mysql-test/t/ndb_multi.test
@@ -19,8 +19,8 @@ select * from t2;
show status like 'handler_discover%';
# Check dropping and recreating table on same server
-connect (con1,localhost,,,test);
-connect (con2,localhost,,,test);
+connect (con1,localhost,root,,test);
+connect (con2,localhost,root,,test);
connection con1;
select * from t1;
connection con2;
@@ -37,9 +37,6 @@ drop table t1;
create table t1 (a int) engine=ndbcluster;
insert into t1 value (2);
connection server1;
-# Currently a retry is required remotely
---error 1296
-select * from t1;
flush table t1;
select * from t1;
diff --git a/mysql-test/t/ndb_read_multi_range.test b/mysql-test/t/ndb_read_multi_range.test
new file mode 100644
index 00000000000..1d1d5f26552
--- /dev/null
+++ b/mysql-test/t/ndb_read_multi_range.test
@@ -0,0 +1,315 @@
+-- source include/have_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2, r1;
+--enable_warnings
+
+#
+# Basic test to see that batching is working
+#
+
+create table t1 (
+ a int primary key,
+ b int not null,
+ c int not null,
+ index(b), unique index using hash(c)
+) engine = ndb;
+insert into t1 values
+ (1,2,1),(2,3,2),(3,4,3),(4,5,4),
+ (5,2,12),(6,3,11),(7,4,10),(8,5,9),
+ (9,2,8),(10,3,7),(11,4,6),(12,5,5);
+
+# batch on primary key
+create table r1 as select * from t1 where a in (2,8,12);
+select * from r1 order by a;
+drop table r1;
+
+# batch on ordered index
+create table r1 as select * from t1 where b in (1,2,5);
+select * from r1 order by a;
+drop table r1;
+
+# batch on unique hash index
+create table r1 as select * from t1 where c in (2,8,12);
+select * from r1 order by a;
+drop table r1;
+
+# batch mixed
+create table r1 as select * from t1 where a in (2,8) or (a > 11) or (a <= 1);
+select * from r1 order by a;
+drop table r1;
+
+# batch on primary key, missing values
+create table r1 as select * from t1 where a in (33,8,12);
+select * from r1 order by a;
+drop table r1;
+create table r1 as select * from t1 where a in (2,33,8,12,34);
+select * from r1 order by a;
+drop table r1;
+
+# batch on ordered index, missing values
+create table r1 as select * from t1 where b in (1,33,5);
+select * from r1 order by a;
+drop table r1;
+select * from t1 where b in (1,33,5) order by a;
+create table r1 as select * from t1 where b in (45,1,33,5,44);
+select * from r1 order by a;
+drop table r1;
+select * from t1 where b in (45,22) order by a;
+
+# batch on unique hash index, missing values
+create table r1 as select * from t1 where c in (2,8,33);
+select * from r1 order by a;
+drop table r1;
+create table r1 as select * from t1 where c in (13,2,8,33,12);
+select * from r1 order by a;
+drop table r1;
+
+select * from t1 where a in (33,8,12) order by a;
+select * from t1 where a in (33,34,35) order by a;
+select * from t1 where a in (2,8) or (a > 11) or (a <= 1) order by a;
+select * from t1 where b in (6,7) or (b <= 5) or (b >= 10) order by b,a;
+select * from t1 where c in (13,2,8,33,12) order by c,a;
+drop table t1;
+
+#
+# Somewhat more complicated
+#
+
+create table t1 (
+ a int not null,
+ b int not null,
+ c int not null,
+ d int not null,
+ e int not null,
+ primary key (a,b,c,d), index (d)
+) engine = ndb;
+
+insert into t1 values
+ (1,2,1,1,1),(2,3,2,3,1),(3,4,3,1,1),(4,5,4,7,1),
+ (5,2,12,12,1),(6,3,11,1,1),(7,4,10,3,1),(8,5,9,5,1),
+ (9,2,8,6,1),(10,3,7,5,1),(11,4,6,3,1),(12,5,5,2,1),
+ (1,2,1,2,1),
+ (1,2,1,3,1),
+ (1,2,1,4,1),
+ (1,2,1,5,1);
+
+# batch on primary key
+create table r1 as select * from t1
+ where a=1 and b=2 and c=1 and d in (1,4,3,2);
+select * from r1 order by a,b,c,d;
+drop table r1;
+
+# batched update ordered index, one value for all
+update t1 set e = 100
+ where d in (12,6,7);
+select * from t1 where d in (12,6,7) order by a,b,c,d;
+select * from t1 where d not in (12,6,7) and e = 100;
+
+# batched update primary key, one value for all
+update t1
+ set e = 101
+ where a=1 and
+ b=2 and
+ c=1 and
+ d in (1,4,3,2);
+select *
+ from t1
+ where a=1 and b=2 and c=1 and d in (1,4,3,2)
+ order by a,b,c,d;
+select *
+ from t1
+ where not (a=1 and b=2 and c=1 and d in (1,4,3,2))
+ and e=101;
+
+
+# batched update ordered index, different values
+update t1
+ set e =
+ (case d
+ when 12 then 112
+ when 6 then 106
+ when 7 then 107
+ end)
+ where d in (12,6,7);
+select * from t1 where d in (12,6,7) order by a,b,c,d;
+
+# batched update primary key, different values
+update t1
+ set e =
+ (case d
+ when 1 then 111
+ when 4 then 444
+ when 3 then 333
+ when 2 then 222
+ end)
+ where a=1 and
+ b=2 and
+ c=1 and
+ d in (1,4,3,2);
+select *
+ from t1
+ where a=1 and b=2 and c=1 and d in (1,4,3,2)
+ order by a,b,c,d;
+
+# batched delete
+delete from t1 where d in (12,6,7);
+select * from t1 where d in (12,6,7);
+
+drop table t1;
+
+# null handling
+create table t1 (
+ a int not null primary key,
+ b int,
+ c int,
+ d int,
+ unique index (b),
+ index(c)
+) engine = ndb;
+
+insert into t1 values
+ (1,null,1,1),
+ (2,2,2,2),
+ (3,null,null,3),
+ (4,4,null,4),
+ (5,null,5,null),
+ (6,6,6,null),
+ (7,null,null,null),
+ (8,8,null,null),
+ (9,null,9,9),
+ (10,10,10,10),
+ (11,null,null,11),
+ (12,12,null,12),
+ (13,null,13,null),
+ (14,14,14,null),
+ (15,null,null,null),
+ (16,16,null,null);
+
+create table t2 as select * from t1 where a in (5,6,7,8,9,10);
+select * from t2 order by a;
+drop table t2;
+
+create table t2 as select * from t1 where b in (5,6,7,8,9,10);
+select * from t2 order by a;
+drop table t2;
+
+create table t2 as select * from t1 where c in (5,6,7,8,9,10);
+select * from t2 order by a;
+drop table t2;
+
+drop table t1;
+
+# bug17729
+
+CREATE TABLE t1 (
+ a int(11) NOT NULL,
+ b int(11) NOT NULL,
+ c datetime default NULL,
+ PRIMARY KEY (a),
+ KEY idx_bc (b,c)
+) ENGINE=ndbcluster;
+
+INSERT INTO t1 VALUES
+(406989,67,'2006-02-23 17:08:46'), (150078,67,'2005-10-26 11:17:45'),
+(406993,67,'2006-02-27 11:20:57'), (245655,67,'2005-12-08 15:59:08'),
+(406994,67,'2006-02-27 11:26:46'), (256,67,NULL),
+(398341,67,'2006-02-20 04:48:44'), (254,67,NULL),(1120,67,NULL),
+(406988,67,'2006-02-23 17:07:22'), (255,67,NULL),
+(398340,67,'2006-02-20 04:38:53'),(406631,67,'2006-02-23 10:49:42'),
+(245653,67,'2005-12-08 15:59:07'),(406992,67,'2006-02-24 16:47:18'),
+(245654,67,'2005-12-08 15:59:08'),(406995,67,'2006-02-28 11:55:00'),
+(127261,67,'2005-10-13 12:17:58'),(406991,67,'2006-02-24 16:42:32'),
+(245652,67,'2005-12-08 15:58:27'),(398545,67,'2006-02-20 04:53:13'),
+(154504,67,'2005-10-28 11:53:01'),(9199,67,NULL),(1,67,'2006-02-23 15:01:35'),
+(223456,67,NULL),(4101,67,NULL),(1133,67,NULL),
+(406990,67,'2006-02-23 18:01:45'),(148815,67,'2005-10-25 15:34:17'),
+(148812,67,'2005-10-25 15:30:01'),(245651,67,'2005-12-08 15:58:27'),
+(154503,67,'2005-10-28 11:52:38');
+
+create table t11 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 asc;
+create table t12 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 desc;
+create table t21 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 asc;
+create table t22 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 desc;
+
+select * from t11 order by 1,2,3;
+select * from t12 order by 1,2,3;
+select * from t21 order by 1,2,3;
+select * from t22 order by 1,2,3;
+DROP TABLE t1, t11, t12, t21, t22;
+
+# bug#19956
+CREATE TABLE t1 (id varchar(255) NOT NULL,
+ tag int(11) NOT NULL,
+ doc text NOT NULL,
+ type varchar(150) NOT NULL,
+ modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (id)
+ ) ENGINE=ndbcluster;
+
+INSERT INTO t1 VALUES ('sakila',1,'Some text goes here','text',CURRENT_TIMESTAMP);
+SELECT id, tag, doc, type FROM t1 WHERE id IN ('flipper','orka');
+SELECT id, tag, doc, type FROM t1 WHERE id IN ('flipper','sakila');
+
+DROP TABLE t1;
+
+#bug#25522
+CREATE TABLE t1 (
+ var1 int(2) NOT NULL,
+ var2 int(2) NOT NULL,
+ PRIMARY KEY (var1)
+ ) ENGINE=ndbcluster DEFAULT CHARSET=ascii CHECKSUM=1;
+
+
+CREATE TABLE t2 (
+ var1 int(2) NOT NULL,
+ var2 int(2) NOT NULL,
+ PRIMARY KEY (var1)
+ ) ENGINE=MyISAM DEFAULT CHARSET=ascii CHECKSUM=1;
+
+
+DELIMITER |;
+CREATE TRIGGER testtrigger
+ AFTER UPDATE ON t1 FOR EACH ROW BEGIN
+ REPLACE INTO t2 SELECT * FROM t1 WHERE t1.var1 = NEW.var1;END|
+DELIMITER ;|
+
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+
+UPDATE t1 SET var2 = 9 WHERE var1 IN(1,2,3);
+
+DROP TRIGGER testtrigger;
+
+DROP TABLE t1, t2;
+
+#bug#25821
+create table t2 (a int, b int, primary key (a), key ab (a,b)) engine=ndbcluster;
+
+insert into t2 values (1,1), (10,10);
+
+select * from t2 use index (ab) where a in(1,10) order by a;
+
+drop table t2;
+
+#bug#30337
+
+create table t1 (id int primary key) engine ndb;
+insert into t1 values (1), (2), (3);
+
+create table t2 (id int primary key) engine ndb;
+insert into t2 select id from t1;
+
+delimiter |;
+create trigger kaboom after delete on t1
+for each row begin
+ delete from t2 where id=old.id;
+end|
+delimiter ;|
+
+select * from t1 order by id;
+delete from t1 where id in (1,2);
+select * from t2 order by id;
+
+drop trigger kaboom;
+drop table t1;
diff --git a/mysql-test/t/ndb_replace.test b/mysql-test/t/ndb_replace.test
index b97a0322a6a..476a607ed44 100644
--- a/mysql-test/t/ndb_replace.test
+++ b/mysql-test/t/ndb_replace.test
@@ -6,7 +6,7 @@
#
--disable_warnings
-drop table if exists t1;
+drop table if exists t1,t2;
--enable_warnings
CREATE TABLE t1 (
@@ -28,3 +28,77 @@ select * from t1 order by gesuchnr;
drop table t1;
# End of 4.1 tests
+
+# bug#17431
+CREATE TABLE t1(i INT PRIMARY KEY AUTO_INCREMENT,
+ j INT,
+ k INT,
+ UNIQUE INDEX(j)
+ ) ENGINE = ndb;
+INSERT INTO t1 VALUES (1,1,23),(2,2,24);
+REPLACE INTO t1 (j,k) VALUES (1,42);
+REPLACE INTO t1 (i,j) VALUES (17,2);
+SELECT * from t1 ORDER BY i;
+DROP TABLE t1;
+
+# bug#19906
+CREATE TABLE t2 (a INT(11) NOT NULL,
+ b INT(11) NOT NULL,
+ c INT(11) NOT NULL,
+ x TEXT,
+ y TEXT,
+ z TEXT,
+ id INT(10) unsigned NOT NULL AUTO_INCREMENT,
+ i INT(11) DEFAULT NULL,
+ PRIMARY KEY (id),
+ UNIQUE KEY a (a,b,c)
+) ENGINE=ndbcluster;
+
+REPLACE INTO t2 (a,b,c,x,y,z,i) VALUES (1,1,1,'a','a','a',1),(1,1,1,'b','b','b',2), (1,1,1,'c','c','c',3);
+
+SELECT * FROM t2 ORDER BY id;
+
+REPLACE INTO t2(a,b,c,x,y,z,i) values (1,1,1,'a','a','a',1);
+REPLACE INTO t2(a,b,c,x,y,z,i) values (1,1,1,'b','b','b',2);
+
+SELECT * FROM t2 ORDER BY id;
+
+DROP TABLE t2;
+
+#
+# Bug #20728 "REPLACE does not work correctly for NDB table with PK and
+# unique index"
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (pk int primary key, apk int unique, data int) engine=ndbcluster;
+# Test for plain replace which updates pk
+insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3);
+replace into t1 (pk, apk) values (4, 1), (5, 2);
+select * from t1 order by pk;
+delete from t1;
+# Another test for plain replace which doesn't touch pk
+insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3);
+replace into t1 (pk, apk) values (1, 4), (2, 5);
+select * from t1 order by pk;
+delete from t1;
+# Test for load data replace which updates pk
+insert into t1 values (1, 1, 1), (4, 4, 4), (6, 6, 6);
+load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (pk, apk);
+select * from t1 order by pk;
+delete from t1;
+# Now test for load data replace which doesn't touch pk
+insert into t1 values (1, 1, 1), (3, 3, 3), (5, 5, 5);
+load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (pk, apk);
+select * from t1 order by pk;
+delete from t1;
+# Finally test for both types of replace ... select
+insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3);
+replace into t1 (pk, apk) select 4, 1;
+replace into t1 (pk, apk) select 2, 4;
+select * from t1 order by pk;
+# Clean-up
+drop table t1;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/ndb_restore.test b/mysql-test/t/ndb_restore.test
index 586c39ed96b..266a0c7fbc1 100644
--- a/mysql-test/t/ndb_restore.test
+++ b/mysql-test/t/ndb_restore.test
@@ -1,21 +1,29 @@
-- source include/have_ndb.inc
+-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc
--disable_warnings
use test;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
--enable_warnings
-CREATE TABLE `t1` (
- `capgoaledatta` smallint(5) unsigned NOT NULL auto_increment,
+# Bug #27775 - mediumint auto inc not restored correctly
+# - check mediumint
+CREATE TABLE `t1_c` (
+ `capgoaledatta` mediumint(5) unsigned NOT NULL auto_increment,
`goaledatta` char(2) NOT NULL default '',
`maturegarbagefa` varchar(32) NOT NULL default '',
PRIMARY KEY (`capgoaledatta`,`goaledatta`,`maturegarbagefa`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t1` VALUES (2,'3','q3plus.qt'),(4,'4','q3plus.qt'),(1,'3','q3.net'),(3,'4','q3.net'),(3,'20','threetrees.qt');
-
-CREATE TABLE `t2` (
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t1_c` VALUES (2,'3','q3plus.qt'),(400,'4','q3plus.qt'),(1,'3','q3.net'),(3,'4','q3.net'),(3000,'20','threetrees.qt');
+#
+# Bug #27758 Restoring NDB backups makes table usable in SQL nodes
+# - space in key made table unusable after restore
+#
+# Bug #27775 - mediumint auto inc not restored correctly
+# - check smallint
+CREATE TABLE `t2_c` (
`capgotod` smallint(5) unsigned NOT NULL auto_increment,
`gotod` smallint(5) unsigned NOT NULL default '0',
`goaledatta` char(2) default NULL,
@@ -23,18 +31,20 @@ CREATE TABLE `t2` (
`descrpooppo` varchar(64) default NULL,
`svcutonsa` varchar(64) NOT NULL default '',
PRIMARY KEY (`capgotod`),
- KEY `i_quadaddsvr` (`gotod`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t2` VALUES (5,4,'','q3.net','addavp:MK_CASELECTOR=1','postorod rattoaa'),(2,1,'4','','addavp:MK_BRANDTAD=345','REDS Brandtad'),(3,2,'4','q3.net','execorder','fixedRatediPO REDS'),(1,1,'3','','addavp:MK_BRANDTAD=123','TEST Brandtad'),(6,5,'','told.q3.net','addavp:MK_BRANDTAD=123','Brandtad Toldzone'),(4,3,'3','q3.net','addavp:MK_POOLHINT=2','ratedi PO TEST');
+ KEY `i quadaddsvr` (`gotod`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t2_c` VALUES (500,4,'','q3.net','addavp:MK_CASELECTOR=1','postorod rattoaa'),(2,1,'4','','addavp:MK_BRANDTAD=345','REDS Brandtad'),(3,2,'4','q3.net','execorder','fixedRatediPO REDS'),(1,1,'3','','addavp:MK_BRANDTAD=123','TEST Brandtad'),(6,5,'','told.q3.net','addavp:MK_BRANDTAD=123','Brandtad Toldzone'),(4,3,'3','q3.net','addavp:MK_POOLHINT=2','ratedi PO TEST');
-CREATE TABLE `t3` (
+CREATE TABLE `t3_c` (
`CapGoaledatta` smallint(5) unsigned NOT NULL default '0',
`capgotod` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`capgotod`,`CapGoaledatta`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t3` VALUES (5,3),(2,4),(5,4),(1,3);
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t3_c` VALUES (5,3),(2,4),(5,4),(1,3);
-CREATE TABLE `t4` (
+# Bug #27775 - mediumint auto inc not restored correctly
+# - check bigint
+CREATE TABLE `t4_c` (
`capfa` bigint(20) unsigned NOT NULL auto_increment,
`realm` varchar(32) NOT NULL default '',
`authpwchap` varchar(32) default NULL,
@@ -44,38 +54,40 @@ CREATE TABLE `t4` (
PRIMARY KEY (`fa`,`realm`),
KEY `capfa` (`capfa`),
KEY `i_quadentity` (`fa`,`realm`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t4` VALUES (18,'john.smith','q3.net','dessjohn.smith',0,NULL),(21,'quad_katt_with_brandtad','q3.net','acne',0,NULL),(22,'quad_katt_carattoaa','q3.net','acne',0,NULL),(26,'436462612809','sqasdt.q3.net','N/A',0,'6'),(19,'john','smith.qt','dessjohn',0,NULL),(33,'436643196120','sqasdt.q3.net','N/A',1,'6'),(28,'436642900019','sqasdt.q3.net','N/A',0,'6'),(30,'436462900209','sqasdt.q3.net','N/A',0,'6'),(16,'436640006666','sqasdt.q3.net','',0,NULL),(19,'dette','el-redun.com','dessdette',0,NULL),(12,'quad_kattPP','q3.net','acne',2,NULL),(14,'436640008888','sqasdt.q3.net','',0,NULL),(29,'463624900028','sqasdt.q3.net','N/A',0,'6'),(15,'436640099099','sqasdt.q3.net','',0,NULL),(13,'pap','q3plus.qt','acne',1,NULL),(19,'436642612091','sqasdt.q3.net','N/A',0,'6'),(12,'quad_katt','q3.net','acne',0,NULL),(11,'quad_kattVK','q3.net','acne',1,NULL),(32,'463641969502','sqasdt.q3.net','N/A',1,'6'),(20,'joe','q3.net','joedesswd',0,NULL),(29,'436642900034','sqasdt.q3.net','N/A',0,'6'),(25,'contind','armerde.qt','acne',1,NULL);
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t4_c` VALUES (18,'john.smith','q3.net','dessjohn.smith',0,NULL),(21,'quad_katt_with_brandtad','q3.net','acne',0,NULL),(2200,'quad_katt_carattoaa','q3.net','acne',0,NULL),(26,'436462612809','sqasdt.q3.net','N/A',0,'6'),(19,'john','smith.qt','dessjohn',0,NULL),(33,'436643196120','sqasdt.q3.net','N/A',1,'6'),(28,'436642900019','sqasdt.q3.net','N/A',0,'6'),(30,'436462900209','sqasdt.q3.net','N/A',0,'6'),(16,'436640006666','sqasdt.q3.net','',0,NULL),(19,'dette','el-redun.com','dessdette',0,NULL),(12,'quad_kattPP','q3.net','acne',2,NULL),(14,'436640008888','sqasdt.q3.net','',0,NULL),(29,'463624900028','sqasdt.q3.net','N/A',0,'6'),(15,'436640099099','sqasdt.q3.net','',0,NULL),(13,'pap','q3plus.qt','acne',1,NULL),(19,'436642612091','sqasdt.q3.net','N/A',0,'6'),(12,'quad_katt','q3.net','acne',0,NULL),(11,'quad_kattVK','q3.net','acne',1,NULL),(32000,'463641969502','sqasdt.q3.net','N/A',1,'6'),(20,'joe','q3.net','joedesswd',0,NULL),(290000000,'436642900034','sqasdt.q3.net','N/A',0,'6'),(25,'contind','armerde.qt','acne',1,NULL);
-CREATE TABLE `t5` (
+CREATE TABLE `t5_c` (
`capfa` bigint(20) unsigned NOT NULL default '0',
`gotod` smallint(5) unsigned NOT NULL default '0',
`orderutonsa` varchar(64) NOT NULL default '',
PRIMARY KEY (`capfa`,`gotod`,`orderutonsa`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t5` VALUES (21,2,''),(21,1,''),(22,4,'');
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t5_c` VALUES (21,2,''),(21,1,''),(22,4,'');
-CREATE TABLE `t6` (
+CREATE TABLE `t6_c` (
`capfa_parent` bigint(20) unsigned NOT NULL default '0',
`capfa_child` bigint(20) unsigned NOT NULL default '0',
`relatta` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`capfa_child`,`capfa_parent`,`relatta`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t6` VALUES (15,16,0),(19,20,0),(18326932092909551615,30,0),(26,29,0),(18326932092909551615,29,0),(19,18,0),(26,28,0),(12,14,0);
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t6_c` VALUES (15,16,0),(19,20,0),(18326932092909551615,30,0),(26,29,0),(18326932092909551615,29,0),(19,18,0),(26,28,0),(12,14,0);
-CREATE TABLE `t7` (
+# Bug #27775 - mediumint auto inc not restored correctly
+# - check tinyint
+CREATE TABLE `t7_c` (
`dardpo` char(15) NOT NULL default '',
- `dardtestard` tinyint(3) unsigned NOT NULL default '0',
+ `dardtestard` tinyint(3) unsigned NOT NULL auto_increment,
`FastFA` char(5) NOT NULL default '',
`FastCode` char(6) NOT NULL default '',
`Fastca` char(1) NOT NULL default '',
`Fastmag` char(1) NOT NULL default '',
`Beareratta` char(2) NOT NULL default '',
PRIMARY KEY (`dardpo`,`dardtestard`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t7` VALUES ('2.6.2.4',24,'CECHP','54545','0','0','5'),('2.2.5.4',26,'CANFA','33223','1','1','4'),('4.3.2.4',28,'ITALD','54222','1','0','5'),('129..0.0.eins',28,'G','99999','1','1','5'),('1.1.1.1',24,'AUTPT','32323','0','1','3');
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t7_c` VALUES ('2.6.2.4',24,'CECHP','54545','0','0','5'),('2.2.5.4',26,'CANFA','33223','1','1','4'),('4.3.2.4',28,'ITALD','54222','1','0','5'),('129..0.0.eins',28,'G','99999','1','1','5'),('1.1.1.1',24,'AUTPT','32323','0','1','3');
-CREATE TABLE `t8` (
+CREATE TABLE `t8_c` (
`kattjame` varchar(32) NOT NULL default '',
`realm` varchar(32) NOT NULL default '',
`realm_entered` varchar(32) NOT NULL default '',
@@ -101,10 +113,10 @@ CREATE TABLE `t8` (
`acctinputoctets` bigint(20) unsigned default NULL,
PRIMARY KEY (`kattjame`,`hunderaaarbagefa`,`hassetistart`,`hassetino`),
KEY `squardporoot` (`squardporoot`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t8` VALUES ('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643196120','436643196929','8956234534568968','5524595699','uxasmt21.net.acne.qt/481889229462692422','','1.1.1.1','2.2.4.6','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565),('4545435545','john','q3.net','q3.net','acne.li','436643196120','436643196929','45345234568968','995696699','uxasmt21.net.acne.qt/481889229462692423','','1.1.1.1','2.2.9.8','2','86989','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8821923,169,3565),('versteckter_q3net_katt','joe','q3.net','elredun.com','q3.net','436643196120','436643196939','91341234568968','695595699','uxasmt21.net.acne.qt/481889229462692421','','1.1.1.1','2.5.2.5','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',1923123,9569,6565);
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t8_c` VALUES ('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643196120','436643196929','8956234534568968','5524595699','uxasmt21.net.acne.qt/481889229462692422','','1.1.1.1','2.2.4.6','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565),('4545435545','john','q3.net','q3.net','acne.li','436643196120','436643196929','45345234568968','995696699','uxasmt21.net.acne.qt/481889229462692423','','1.1.1.1','2.2.9.8','2','86989','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8821923,169,3565),('versteckter_q3net_katt','joe','q3.net','elredun.com','q3.net','436643196120','436643196939','91341234568968','695595699','uxasmt21.net.acne.qt/481889229462692421','','1.1.1.1','2.5.2.5','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',1923123,9569,6565);
-CREATE TABLE `t9` (
+CREATE TABLE `t9_c` (
`kattjame` varchar(32) NOT NULL default '',
`kattjame_entered` varchar(32) NOT NULL default '',
`realm` varchar(32) NOT NULL default '',
@@ -128,24 +140,35 @@ CREATE TABLE `t9` (
`actinputocctets` bigint(20) unsigned default NULL,
`terminateraste` tinyint(3) unsigned default NULL,
PRIMARY KEY (`kattjame`,`hunderaaarbagefa`,`hassetistart`,`hassetino`)
-) ENGINE=myisam DEFAULT CHARSET=latin1;
-INSERT INTO `t9` VALUES ('3g4jh8gar2t','joe','q3.net','elredun.com','q3.net','436643316120','436643316939','91341234568968','695595699','1.1.1.1','2.2.6.2','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',3123123,9569,6565,1),('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643316120','436643316939','8956234534568968','5254595969','1.1.1.1','8.6.2.2','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565,2),('4545435545','john','q3.net','q3.net','acne.li','436643316120','436643316939','45345234568968','995696699','1.1.1.1','2.9.9.2','2','86998','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8823123,169,3565,3);
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t9_c` VALUES ('3g4jh8gar2t','joe','q3.net','elredun.com','q3.net','436643316120','436643316939','91341234568968','695595699','1.1.1.1','2.2.6.2','3','86989','34','x','x','2012-03-12 18:35:04','2012-12-05 12:35:04',3123123,9569,6565,1),('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643316120','436643316939','8956234534568968','5254595969','1.1.1.1','8.6.2.2','4','86989','34','x','x','2012-03-12 12:55:34','2012-12-05 11:20:04',3223433,3369,9565,2),('4545435545','john','q3.net','q3.net','acne.li','436643316120','436643316939','45345234568968','995696699','1.1.1.1','2.9.9.2','2','86998','34','x','x','2012-03-12 11:35:03','2012-12-05 08:50:04',8823123,169,3565,3);
-create table t1_c engine=ndbcluster as select * from t1;
-create table t2_c engine=ndbcluster as select * from t2;
-create table t3_c engine=ndbcluster as select * from t3;
-create table t4_c engine=ndbcluster as select * from t4;
-create table t5_c engine=ndbcluster as select * from t5;
-create table t6_c engine=ndbcluster as select * from t6;
-create table t7_c engine=ndbcluster as select * from t7;
-create table t8_c engine=ndbcluster as select * from t8;
-create table t9_c engine=ndbcluster as select * from t9;
+# Bug #20820
+# auto inc table not handled correctly when restored from cluster backup
+# - before fix ndb_restore would not set auto inc value correct,
+# seen by select below
+create table t10_c (a int auto_increment key) ENGINE=ndbcluster;
+insert into t10_c values (1),(2),(3);
+# Bug #27775 - mediumint auto inc not restored correctly
+# - check int
+insert into t10_c values (10000),(2000),(3000);
+create table t1 engine=myisam as select * from t1_c;
+create table t2 engine=myisam as select * from t2_c;
+create table t3 engine=myisam as select * from t3_c;
+create table t4 engine=myisam as select * from t4_c;
+create table t5 engine=myisam as select * from t5_c;
+create table t6 engine=myisam as select * from t6_c;
+create table t7 engine=myisam as select * from t7_c;
+create table t8 engine=myisam as select * from t8_c;
+create table t9 engine=myisam as select * from t9_c;
+create table t10 engine=myisam as select * from t10_c;
---exec $NDB_MGM --no-defaults -e "start backup" >> $NDB_TOOLS_OUTPUT
-drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-1 >> $NDB_TOOLS_OUTPUT
---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-1 >> $NDB_TOOLS_OUTPUT
+
+--source include/ndb_backup.inc
+drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c, t10_c;
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b $the_backup_id -n 1 -m -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b $the_backup_id -n 2 -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
show tables;
@@ -204,15 +227,30 @@ select count(*)
from (select * from t9 union
select * from t9_c) a;
+# Bug #20820 cont'd
+select * from t10_c order by a;
+# Bug #27775 cont'd
+# - auto inc info should be correct
+--replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X
+show table status like 't1_c';
+--replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X
+show table status like 't2_c';
+--replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X
+show table status like 't4_c';
+--replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X
+show table status like 't7_c';
+--replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X
+show table status like 't10_c';
+
--disable_warnings
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9, t10;
+drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c, t10_c;
--enable_warnings
#
# Test BUG#10287
#
---exec $NDB_TOOLS_DIR/ndb_select_all --no-defaults -d sys -D , SYSTAB_0 | grep 520093696
+--exec $NDB_TOOLS_DIR/ndb_select_all --no-defaults -d sys -D , SYSTAB_0 | grep 520093696, | sed "s/,$the_backup_id/,<the_backup_id>/"
-# End of 4.1 tests
+# End of 5.0 tests (4.1 test intermixed to save test time)
diff --git a/mysql-test/t/ndb_restore_different_endian_data.test b/mysql-test/t/ndb_restore_different_endian_data.test
new file mode 100644
index 00000000000..208ab8b459d
--- /dev/null
+++ b/mysql-test/t/ndb_restore_different_endian_data.test
@@ -0,0 +1,185 @@
+-- source include/have_ndb.inc
+-- source include/ndb_default_cluster.inc
+-- source include/not_embedded.inc
+
+#
+# Bug #27543 restore of backup from different endian does not work for blob column
+# Bug #30024 restore of backup from different endian does not work for datetime column
+# Bug #28674 backup will run forever if disk full and later write succes will kill ndb node
+#
+# The table structure and data list below
+#
+# CREATE TABLE t_num (
+# t_pk INT PRIMARY KEY,
+# t_bit BIT(64),
+# t_tinyint TINYINT,
+# t_bool BOOL,
+# t_smallint SMALLINT,
+# t_mediumint MEDIUMINT,
+# t_int INT,
+# t_bigint BIGINT,
+# t_float FLOAT,
+# t_double DOUBLE,
+# t_decimal DECIMAL (37, 16)
+# ) ENGINE=NDBCLUSTER;
+#
+# INSERT INTO t_num VALUE (
+# 1,
+# b'1010101010101010101010101010101010101010101010101010101010101010',
+# 125,
+# 1,
+# 32765,
+# 8388606,
+# 2147483647,
+# 9223372036854775807,
+# 1e+20,
+# 1e+150,
+# '331.0000000000'
+# );
+#
+# CREATE TABLE t_datetime (
+# t_pk INT PRIMARY KEY,
+# t_date DATE,
+# t_datetime DATETIME,
+# t_timestamp TIMESTAMP,
+# t_time TIME,
+# t_year YEAR
+# ) ENGINE=NDBCLUSTER;
+#
+# INSERT INTO t_datetime VALUE (
+# 1,
+# '1998-01-01',
+# '2006-08-10 10:11:12',
+# 20021029165106,
+# '19:38:34',
+# 2155
+# );
+#
+# CREATE TABLE t_string_1 (
+# t_pk INT PRIMARY KEY,
+# t_char CHAR(255),
+# t_varchar VARCHAR(655),
+# t_binary BINARY(255),
+# t_varbinary VARBINARY(6553)
+# ) ENGINE=NDBCLUSTER;
+#
+# CREATE TABLE t_string_2 (
+# t_pk INT PRIMARY KEY,
+# t_tinyblob TINYBLOB,
+# t_tinytext TINYTEXT,
+# t_blob BLOB,
+# t_text TEXT,
+# t_mediumblob MEDIUMBLOB,
+# t_mediumtext MEDIUMTEXT,
+# t_longblob LONGBLOB,
+# t_longtext LONGTEXT,
+# t_enum ENUM('001001','001004','001010','001018','001019','001020','001021','001027','001028','001029','001030','001031','001100','002003','002004','002005','002007')DEFAULT '001001' NOT NULL,
+# t_set SET('a','B')
+# ) ENGINE=NDBCLUSTER;
+#
+# INSERT INTO t_string_1 VALUE (
+# 1,
+# 'abcdefghijklmn',
+# 'abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn',
+# 0x612020,
+# 0x4100
+# );
+#
+# INSERT INTO t_string_2 VALUE (
+# 1,
+# 'abcdefghijklmnabcdefghijklmn',
+# 'abcdefghijklmnabcdefghijklmn',
+# 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789',
+# 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789',
+# 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789',
+# 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789',
+# 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789',
+# 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789',
+# '001001',
+# 'a'
+# );
+#
+# CREATE TABLE t_gis (
+# t_pk INT PRIMARY KEY,
+# t_point POINT,
+# t_linestring LINESTRING,
+# t_polygon POLYGON,
+# t_multipoint MULTIPOINT,
+# t_multilinestring MULTILINESTRING,
+# t_multipolygon MULTIPOLYGON,
+# t_geometrycollection GEOMETRYCOLLECTION,
+# t_geometry GEOMETRY
+# ) ENGINE=NDBCLUSTER;
+#
+# INSERT INTO t_gis VALUE (
+# 1,
+# PointFromText('POINT(10 10)'),
+# LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)'),
+# PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'),
+# MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)'),
+# MLineFromText('MULTILINESTRING((10 48,10 21,10 0))'),
+# MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),
+# GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'),
+# MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')
+# );
+#
+# INSERT INTO t_gis VALUE (
+# 2,
+# PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))),
+# LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))),
+# PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))),
+# MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))),
+# MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))),
+# MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))),
+# GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))),
+# GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9))))
+# );
+
+
+
+#
+# Restore backup files (from little endian)
+#
+
+--disable_warnings
+USE test;
+DROP TABLE IF EXISTS t_num,t_datetime,t_string_1,t_string_2,t_gis;
+--enable_warnings
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_le >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_le >> $NDB_TOOLS_OUTPUT
+SHOW TABLES;
+SHOW CREATE TABLE t_num;
+SHOW CREATE TABLE t_datetime;
+SHOW CREATE TABLE t_string_1;
+SHOW CREATE TABLE t_string_2;
+SHOW CREATE TABLE t_gis;
+SELECT * FROM t_datetime;
+SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num;
+SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1;
+SELECT * FROM t_string_2;
+SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk;
+SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk;
+SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk;
+
+#
+# Restore backup files (from big endian)
+#
+
+DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis;
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_be >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_be >> $NDB_TOOLS_OUTPUT
+SHOW TABLES;
+SHOW CREATE TABLE t_num;
+SHOW CREATE TABLE t_datetime;
+SHOW CREATE TABLE t_string_1;
+SHOW CREATE TABLE t_string_2;
+SHOW CREATE TABLE t_gis;
+SELECT * FROM t_datetime;
+SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num;
+SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1;
+SELECT * FROM t_string_2;
+SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk;
+SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk;
+SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk;
+
+DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis;
diff --git a/mysql-test/t/ndb_restore_print.test b/mysql-test/t/ndb_restore_print.test
new file mode 100644
index 00000000000..6dbbfdf5933
--- /dev/null
+++ b/mysql-test/t/ndb_restore_print.test
@@ -0,0 +1,189 @@
+-- source include/have_ndb.inc
+-- source include/ndb_default_cluster.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+--enable_warnings
+
+# basic datatypes
+create table t1
+ (pk int key
+ ,a1 BIT(1), a2 BIT(5), a3 BIT(33), a4 BIT(63), a5 BIT(64)
+ ,b1 TINYINT, b2 TINYINT UNSIGNED
+ ,c1 SMALLINT, c2 SMALLINT UNSIGNED
+ ,d1 INT, d2 INT UNSIGNED
+ ,e1 BIGINT, e2 BIGINT UNSIGNED
+ ,f1 CHAR(1) BINARY, f2 CHAR(32) BINARY, f3 CHAR(255) BINARY
+ ,g1 VARCHAR(32) BINARY, g2 VARCHAR(255) BINARY, g3 VARCHAR(1000) BINARY
+ ,h1 BINARY(1), h2 BINARY(8), h3 BINARY(255)
+ ,i1 VARBINARY(32), i2 VARBINARY(255), i3 VARBINARY(1000)
+ ) engine myisam;
+
+# max values
+insert into t1 values
+ (1
+ ,0x1, 0x17, 0x789a, 0x789abcde, 0xfedc0001
+ ,127, 255
+ ,32767, 65535
+ ,2147483647, 4294967295
+ ,9223372036854775807, 18446744073709551615
+ ,'1','12345678901234567890123456789012','123456789'
+ ,'1','12345678901234567890123456789012','123456789'
+ ,0x12,0x123456789abcdef0, 0x012345
+ ,0x12,0x123456789abcdef0, 0x00123450
+ );
+
+# min values
+insert into t1 values
+ (2
+ ,0, 0, 0, 0, 0
+ ,-128, 0
+ ,-32768, 0
+ ,-2147483648, 0
+ ,-9223372036854775808, 0
+ ,'','',''
+ ,'','',''
+ ,0x0,0x0,0x0
+ ,0x0,0x0,0x0
+ );
+
+# null values
+insert into t1 values
+ (3
+ ,NULL,NULL,NULL,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL
+ ,NULL,NULL,NULL
+ ,NULL,NULL,NULL
+ ,NULL,NULL,NULL
+ ,NULL,NULL,NULL
+ );
+
+--vertical_results
+select pk
+ ,hex(a1), hex(a2), hex(a3), hex(a4), hex(a5)
+ ,b1, b2
+ ,c1 , c2
+ ,d1 , d2
+ ,e1 , e2
+ ,f1 , f2, f3
+ ,g1 , g2, g3
+ ,hex(h1), hex(h2), hex(h3)
+ ,hex(i1), hex(i2), hex(i3)
+ from t1 order by pk;
+
+alter table t1 engine ndb;
+
+select pk
+ ,hex(a1), hex(a2), hex(a3), hex(a4), hex(a5)
+ ,b1, b2
+ ,c1 , c2
+ ,d1 , d2
+ ,e1 , e2
+ ,f1 , f2, f3
+ ,g1 , g2, g3
+ ,hex(h1), hex(h2), hex(h3)
+ ,hex(i1), hex(i2), hex(i3)
+ from t1 order by pk;
+--horizontal_results
+
+--source include/ndb_backup.inc
+
+--let ndb_restore_filter=test t1
+--let ndb_restore_opts=--verbose=0 --print_data --hex --fields-terminated-by=";"
+--source include/ndb_backup_print.inc
+
+--let ndb_restore_filter=test t1
+--let ndb_restore_opts=--verbose=0 --print_data --hex --fields-terminated-by="," --fields-optionally-enclosed-by="'"
+--source include/ndb_backup_print.inc
+
+
+drop table t1;
+
+# some binary char tests with trailing spaces
+create table t1
+ (pk int key
+ ,f1 CHAR(1) BINARY, f2 CHAR(32) BINARY, f3 CHAR(255) BINARY
+ ,g1 VARCHAR(32) BINARY, g2 VARCHAR(255) BINARY, g3 VARCHAR(1000) BINARY
+ ,h1 BINARY(1), h2 BINARY(9), h3 BINARY(255)
+ ,i1 VARBINARY(32), i2 VARBINARY(255), i3 VARBINARY(1000)
+ ) engine ndb;
+
+insert into t1 values
+ (1
+ ,'1','12345678901234567890123456789012','123456789 '
+ ,'1 ','12345678901234567890123456789012 ','123456789 '
+ ,0x20,0x123456789abcdef020, 0x012345000020
+ ,0x1200000020,0x123456789abcdef000000020, 0x00123450000020
+ );
+
+create table t2 (pk int key, a int) engine ndb;
+create table t3 (pk int key, a int) engine ndb;
+create table t4 (pk int key, a int) engine ndb;
+
+insert into t2 values (1,11),(2,12),(3,13),(4,14),(5,15);
+insert into t3 values (1,21),(2,22),(3,23),(4,24),(5,25);
+insert into t4 values (1,31),(2,32),(3,33),(4,34),(5,35);
+
+--source include/ndb_backup.inc
+--let ndb_restore_opts=--verbose=0 --print_data --hex --fields-enclosed-by="'" --fields-optionally-enclosed-by="X"
+--let ndb_restore_filter=test t1
+--source include/ndb_backup_print.inc
+
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t1.txt
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t2.txt
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t3.txt
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t4.txt
+
+--let ndb_restore_opts=--verbose=0 --print_data --hex --tab $MYSQLTEST_VARDIR/tmp --append
+--let ndb_restore_filter=test
+--source include/ndb_backup_print.inc
+
+--let $message= t1
+--source include/show_msg.inc
+--exec sort $MYSQLTEST_VARDIR/tmp/t1.txt
+--let $message= t2
+--source include/show_msg.inc
+--exec sort $MYSQLTEST_VARDIR/tmp/t2.txt
+--let $message= t3
+--source include/show_msg.inc
+--exec sort $MYSQLTEST_VARDIR/tmp/t3.txt
+--let $message= t4
+--source include/show_msg.inc
+--exec sort $MYSQLTEST_VARDIR/tmp/t4.txt
+
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t1.txt
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t2.txt
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t3.txt
+--exec rm -f $MYSQLTEST_VARDIR/tmp/t4.txt
+
+# now test some other datatypes
+drop table t1;
+create table t1
+ (pk int key
+ ,a1 MEDIUMINT, a2 MEDIUMINT UNSIGNED
+ ) engine ndb;
+
+# max values
+insert into t1 values(1, 8388607, 16777215);
+# min values
+insert into t1 values(2, -8388608, 0);
+# small values
+insert into t1 values(3, -1, 1);
+
+# backup and print
+--source include/ndb_backup.inc
+
+--let ndb_restore_filter=test t1
+--let ndb_restore_opts=--verbose=0 --print_data --hex --fields-terminated-by=";"
+--source include/ndb_backup_print.inc
+
+# clean up
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
diff --git a/mysql-test/t/ndb_single_user.test b/mysql-test/t/ndb_single_user.test
new file mode 100644
index 00000000000..631d3800499
--- /dev/null
+++ b/mysql-test/t/ndb_single_user.test
@@ -0,0 +1,120 @@
+-- source include/have_ndb.inc
+-- source include/have_multi_ndb.inc
+-- source include/ndb_default_cluster.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+--enable_warnings
+
+# operations allowed while cluster is in single user mode
+
+--connection server1
+--let $node_id= `SHOW STATUS LIKE 'Ndb_cluster_node_id'`
+--disable_query_log
+--eval set @node_id= SUBSTRING('$node_id', 20)+0
+--enable_query_log
+--let $node_id= `SELECT @node_id`
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "enter single user mode $node_id" >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" --single-user >> $NDB_TOOLS_OUTPUT
+
+# verify that we are indeed in single user mode
+--connection server2
+--error 1005
+create table t1 (a int key, b int unique, c int) engine ndb;
+
+# test some sql on first mysqld
+--connection server1
+create table t1 (a int key, b int unique, c int) engine ndb;
+insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);
+create table t2 as select * from t1;
+# read with pk
+select * from t1 where a = 1;
+# read with unique index
+select * from t1 where b = 4;
+# read with ordered index
+select * from t1 where a > 4 order by a;
+# update with pk
+update t1 set b=102 where a = 2;
+# update with unique index
+update t1 set b=103 where b = 3;
+# update with full table scan
+update t1 set b=b+100;
+# update with ordered insex scan
+update t1 set b=b+100 where a > 7;
+# delete with full table scan
+delete from t1;
+insert into t1 select * from t2;
+# Bug #27710 Creating unique index fails during single user mode
+# - prior to bugfix this would fail
+create unique index new_index on t1 (b,c);
+
+# test some sql on other mysqld
+--connection server2
+--error 1051
+drop table t1;
+--error 1296
+create index new_index_fail on t1 (c);
+--error 1296
+insert into t1 values (21,21,0),(22,22,0),(23,23,0),(24,24,0),(25,25,0),(26,26,0),(27,27,0),(28,28,0),(29,29,0),(210,210,0);
+--error 1296
+select * from t1 where a = 1;
+--error 1296
+select * from t1 where b = 4;
+--error 1296
+update t1 set b=102 where a = 2;
+--error 1296
+update t1 set b=103 where b = 3;
+--error 1296
+update t1 set b=b+100;
+--error 1296
+update t1 set b=b+100 where a > 7;
+
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "exit single user mode" >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT
+
+#
+# we should be able to run transaction while in single user mode
+#
+--connection server1
+BEGIN;
+update t1 set b=b+100 where a=1;
+
+--connection server2
+BEGIN;
+update t1 set b=b+100 where a=2;
+
+# enter single user mode
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "enter single user mode $node_id" >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" --single-user >> $NDB_TOOLS_OUTPUT
+
+--connection server1
+update t1 set b=b+100 where a=3;
+COMMIT;
+
+# while on other mysqld it should be aborted
+--connection server2
+--error 1296
+update t1 set b=b+100 where a=4;
+--error 1296
+COMMIT;
+
+# Bug #25275 SINGLE USER MODE prevents ALTER on non-ndb
+# tables for other mysqld nodes
+--connection server2
+create table t2 (a int) engine myisam;
+alter table t2 add column (b int);
+
+# exit single user mode
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "exit single user mode" >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT
+
+# cleanup
+--connection server2
+drop table t2;
+--connection server1
+drop table t1;
+
+# End of 5.0 tests
+
diff --git a/mysql-test/t/ndb_subquery.test b/mysql-test/t/ndb_subquery.test
index 135dc4fb862..93c45c521a0 100644
--- a/mysql-test/t/ndb_subquery.test
+++ b/mysql-test/t/ndb_subquery.test
@@ -39,3 +39,27 @@ drop table t2;
##########
# End of 4.1 tests
+
+#
+# bug#11205
+#
+create table t1 (p int not null primary key, u int not null) engine=ndb;
+insert into t1 values (1,1),(2,2),(3,3);
+
+create table t2 as
+select t1.*
+from t1 as t1, t1 as t2, t1 as t3, t1 as t4, t1 as t5, t1 as t6, t1 as t7, t1 as t8
+where t1.u = t2.u
+ and t2.u = t3.u
+ and t3.u = t4.u
+ and t4.u = t5.u
+ and t5.u = t6.u
+ and t6.u = t7.u
+ and t7.u = t8.u;
+
+select * from t2 order by 1;
+
+drop table t1;
+drop table t2;
+
+
diff --git a/mysql-test/t/ndb_trigger.test b/mysql-test/t/ndb_trigger.test
new file mode 100644
index 00000000000..25b079cfe7c
--- /dev/null
+++ b/mysql-test/t/ndb_trigger.test
@@ -0,0 +1,200 @@
+# Tests which involve triggers and NDB storage engine
+--source include/have_ndb.inc
+--source include/not_embedded.inc
+
+#
+# Test for bug#18437 "Wrong values inserted with a before update
+# trigger on NDB table". SQL-layer didn't properly inform handler
+# about fields which were read and set in triggers. In some cases
+# this resulted in incorrect (garbage) values of OLD variables and
+# lost changes to NEW variables.
+# You can find similar tests for ON INSERT triggers in federated.test
+# since this engine so far is the only engine in MySQL which cares
+# about field mark-up during handler::write_row() operation.
+#
+
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+
+create table t1 (id int primary key, a int not null, b decimal (63,30) default 0) engine=ndb;
+create table t2 (op char(1), a int not null, b decimal (63,30));
+create table t3 select 1 as i;
+
+delimiter //;
+create trigger t1_bu before update on t1 for each row
+begin
+ insert into t2 values ("u", old.a, old.b);
+ set new.b = old.b + 10;
+end;//
+create trigger t1_bd before delete on t1 for each row
+begin
+ insert into t2 values ("d", old.a, old.b);
+end;//
+delimiter ;//
+insert into t1 values (1, 1, 1.05), (2, 2, 2.05), (3, 3, 3.05), (4, 4, 4.05);
+
+# Check that usual update works as it should
+update t1 set a=5 where a != 3;
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t2;
+# Check that everything works for multi-update
+update t1, t3 set a=6 where a = 5;
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t2;
+# Check for delete
+delete from t1 where a != 3;
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t2;
+# Check for multi-delete
+insert into t1 values (1, 1, 1.05), (2, 2, 2.05), (4, 4, 4.05);
+delete t1 from t1, t3 where a != 3;
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t2;
+# Check for insert ... on duplicate key update
+insert into t1 values (4, 4, 4.05);
+insert into t1 (id, a) values (4, 1), (3, 1) on duplicate key update a= a + 1;
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t2;
+# Check for insert ... select ... on duplicate key update
+delete from t3;
+insert into t3 values (4), (3);
+insert into t1 (id, a) (select i, 1 from t3) on duplicate key update a= a + 1;
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t2;
+# Check for replace
+replace into t1 (id, a) values (4, 1), (3, 1);
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t1;
+delete from t2;
+# Check for replace ... select ...
+insert into t1 values (3, 1, 1.05), (4, 1, 2.05);
+replace into t1 (id, a) (select i, 2 from t3);
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+delete from t1;
+delete from t2;
+# Check for load data replace
+insert into t1 values (3, 1, 1.05), (5, 2, 2.05);
+load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (id, a);
+select * from t1 order by id;
+select * from t2 order by op, a, b;
+
+drop tables t1, t2, t3;
+
+# Test for bug#26242
+# Verify that AFTER UPDATE/DELETE triggers are executed
+# after the change has actually taken place
+
+CREATE TABLE t1 (
+ id INT NOT NULL PRIMARY KEY,
+ xy INT
+) ENGINE=ndbcluster;
+
+INSERT INTO t1 VALUES (1, 0);
+
+DELIMITER //;
+CREATE TRIGGER t1_update AFTER UPDATE ON t1 FOR EACH ROW BEGIN REPLACE INTO t2 SELECT * FROM t1 WHERE t1.id = NEW.id; END //
+DELIMITER ;//
+
+CREATE TABLE t2 (
+ id INT NOT NULL PRIMARY KEY,
+ xy INT
+) ENGINE=ndbcluster;
+
+INSERT INTO t2 VALUES (2, 0);
+
+CREATE TABLE t3 (id INT NOT NULL PRIMARY KEY) ENGINE=ndbcluster;
+
+INSERT INTO t3 VALUES (1);
+
+CREATE TABLE t4 LIKE t1;
+
+DELIMITER //;
+CREATE TRIGGER t4_update AFTER UPDATE ON t4 FOR EACH ROW BEGIN REPLACE INTO t5 SELECT * FROM t4 WHERE t4.id = NEW.id; END //
+DELIMITER ;//
+
+CREATE TABLE t5 LIKE t2;
+
+UPDATE t1 SET xy = 3 WHERE id = 1;
+SELECT xy FROM t1 where id = 1;
+SELECT xy FROM t2 where id = 1;
+
+UPDATE t1 SET xy = 4 WHERE id IN (SELECT id FROM t3 WHERE id = 1);
+SELECT xy FROM t1 where id = 1;
+SELECT xy FROM t2 where id = 1;
+
+INSERT INTO t4 SELECT * FROM t1;
+INSERT INTO t5 SELECT * FROM t2;
+UPDATE t1,t4 SET t1.xy = 3, t4.xy = 3 WHERE t1.id = 1 AND t4.id = 1;
+SELECT xy FROM t1 where id = 1;
+SELECT xy FROM t2 where id = 1;
+SELECT xy FROM t4 where id = 1;
+SELECT xy FROM t5 where id = 1;
+
+UPDATE t1,t4 SET t1.xy = 4, t4.xy = 4 WHERE t1.id IN (SELECT id FROM t3 WHERE id = 1) AND t4.id IN (SELECT id FROM t3 WHERE id = 1);
+SELECT xy FROM t1 where id = 1;
+SELECT xy FROM t2 where id = 1;
+SELECT xy FROM t4 where id = 1;
+SELECT xy FROM t5 where id = 1;
+
+INSERT INTO t1 VALUES (1,0) ON DUPLICATE KEY UPDATE xy = 5;
+SELECT xy FROM t1 where id = 1;
+SELECT xy FROM t2 where id = 1;
+
+DROP TRIGGER t1_update;
+DROP TRIGGER t4_update;
+
+DELIMITER //;
+CREATE TRIGGER t1_delete AFTER DELETE ON t1 FOR EACH ROW BEGIN REPLACE INTO t2 SELECT * FROM t1 WHERE t1.id > 4; END //
+DELIMITER ;//
+
+DELIMITER //;
+CREATE TRIGGER t4_delete AFTER DELETE ON t4 FOR EACH ROW BEGIN REPLACE INTO t5 SELECT * FROM t4 WHERE t4.id > 4; END //
+DELIMITER ;//
+
+INSERT INTO t1 VALUES (5, 0),(6,0);
+INSERT INTO t2 VALUES (5, 1),(6,1);
+INSERT INTO t3 VALUES (5);
+SELECT * FROM t1 order by id;
+SELECT * FROM t2 order by id;
+DELETE FROM t1 WHERE id IN (SELECT id FROM t3 WHERE id = 5);
+SELECT * FROM t1 order by id;
+SELECT * FROM t2 order by id;
+
+INSERT INTO t1 VALUES (5,0);
+UPDATE t2 SET xy = 1 WHERE id = 6;
+TRUNCATE t4;
+INSERT INTO t4 SELECT * FROM t1;
+TRUNCATE t5;
+INSERT INTO t5 SELECT * FROM t2;
+SELECT * FROM t1 order by id;
+SELECT * FROM t2 order by id;
+SELECT * FROM t4 order by id;
+SELECT * FROM t5 order by id;
+DELETE FROM t1,t4 USING t1,t3,t4 WHERE t1.id IN (SELECT id FROM t3 WHERE id = 5) AND t4.id IN (SELECT id FROM t3 WHERE id = 5);
+SELECT * FROM t1 order by id;
+SELECT * FROM t2 order by id;
+SELECT * FROM t4 order by id;
+SELECT * FROM t5 order by id;
+
+INSERT INTO t1 VALUES (5, 0);
+REPLACE INTO t2 VALUES (6,1);
+SELECT * FROM t1 order by id;
+SELECT * FROM t2 order by id;
+REPLACE INTO t1 VALUES (5, 1);
+SELECT * FROM t1 order by id;
+SELECT * FROM t2 order by id;
+
+DROP TRIGGER t1_delete;
+DROP TRIGGER t4_delete;
+DROP TABLE t1, t2, t3, t4, t5;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/ndb_types.test b/mysql-test/t/ndb_types.test
index 7b0b4972248..ab18817132e 100644
--- a/mysql-test/t/ndb_types.test
+++ b/mysql-test/t/ndb_types.test
@@ -12,7 +12,7 @@ CREATE TABLE t1 (
auto int(5) unsigned NOT NULL auto_increment,
string char(10) default "hello",
vstring varchar(10) default "hello",
- bin binary(7),
+ bin binary(2),
vbin varbinary(7),
tiny tinyint(4) DEFAULT '0' NOT NULL ,
short smallint(6) DEFAULT '1' NOT NULL ,
@@ -21,11 +21,13 @@ CREATE TABLE t1 (
longlong bigint(13) DEFAULT '0' NOT NULL,
real_float float(13,1) DEFAULT 0.0 NOT NULL,
real_double double(16,4),
+ real_decimal decimal(16,4),
utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
ulong int(11) unsigned DEFAULT '0' NOT NULL,
ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
+ bits bit(3),
options enum('one','two','tree') not null,
flags set('one','two','tree') not null,
date_field date,
@@ -51,15 +53,15 @@ set @now = now();
--sleep 1.5
insert into t1
(string,vstring,bin,vbin,tiny,short,medium,long_int,longlong,
- real_float,real_double, utiny, ushort, umedium,ulong,ulonglong,
- options,flags,date_field,year_field,time_field,date_time)
+ real_float,real_double, real_decimal,utiny, ushort, umedium,ulong,ulonglong,
+ bits,options,flags,date_field,year_field,time_field,date_time)
values
-("aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1,1,1,1,1,
- 'one','one', '1901-01-01','1901','01:01:01','1901-01-01 01:01:01');
+("aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1.1,1,1,1,1,1,
+ b'001','one','one', '1901-01-01','1901','01:01:01','1901-01-01 01:01:01');
select auto,string,vstring,bin,vbin,tiny,short,medium,long_int,longlong,
- real_float,real_double, utiny, ushort, umedium,ulong,ulonglong,
- options,flags,date_field,year_field,time_field,date_time
+ real_float,real_double,real_decimal,utiny,ushort,umedium,ulong,ulonglong,
+ bits,options,flags,date_field,year_field,time_field,date_time
from t1;
select time_stamp>@now from t1;
@@ -67,13 +69,14 @@ set @now = now();
--sleep 1.5
update t1 set string="bbbb",vstring="bbbb",bin=0xBBBB,vbin=0xBBBB,
tiny=-2,short=-2,medium=-2,long_int=-2,longlong=-2,real_float=2.2,
-real_double=2.2,utiny=2,ushort=2,umedium=2,ulong=2,ulonglong=2,
+real_double=2.2,real_decimal=2.2,utiny=2,ushort=2,umedium=2,ulong=2,
+ulonglong=2, bits=b'010',
options='one',flags='one', date_field='1902-02-02',year_field='1902',
time_field='02:02:02',date_time='1902-02-02 02:02:02' where auto=1;
select auto,string,vstring,bin,vbin,tiny,short,medium,long_int,longlong,
- real_float,real_double, utiny, ushort, umedium,ulong,ulonglong,
- options,flags,date_field,year_field,time_field,date_time
+ real_float,real_double,real_decimal,utiny,ushort,umedium,ulong,ulonglong,
+ bits,options,flags,date_field,year_field,time_field,date_time
from t1;
select time_stamp>@now from t1;
diff --git a/mysql-test/t/ndb_update.test b/mysql-test/t/ndb_update.test
index 45e3add4639..0f8793300e0 100644
--- a/mysql-test/t/ndb_update.test
+++ b/mysql-test/t/ndb_update.test
@@ -23,11 +23,21 @@ UPDATE t1 set b = c;
select * from t1 order by pk1;
UPDATE t1 set pk1 = 4 where pk1 = 1;
select * from t1 order by pk1;
+--error 1062
+UPDATE t1 set pk1 = 4 where pk1 = 2;
+UPDATE IGNORE t1 set pk1 = 4 where pk1 = 2;
+select * from t1 order by pk1;
-- error 1062
UPDATE t1 set pk1 = 1, c = 2 where pk1 = 4;
+UPDATE IGNORE t1 set pk1 = 1, c = 2 where pk1 = 4;
select * from t1 order by pk1;
UPDATE t1 set pk1 = pk1 + 10;
select * from t1 order by pk1;
+# bug#25817
+create unique index ib on t1(b);
+update t1 set c = 4 where pk1 = 12;
+update ignore t1 set b = 55 where pk1 = 14;
+select * from t1 order by pk1;
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/t/null.test b/mysql-test/t/null.test
index b405b8fb852..2878b54c357 100644
--- a/mysql-test/t/null.test
+++ b/mysql-test/t/null.test
@@ -1,6 +1,6 @@
# Initialise
--disable_warnings
-drop table if exists t1;
+drop table if exists t1, t2;
--enable_warnings
#
@@ -59,7 +59,7 @@ drop table t1;
#
# Test inserting and updating with NULL
#
-CREATE TABLE t1 (a varchar(16) NOT NULL, b smallint(6) NOT NULL, c datetime NOT NULL, d smallint(6) NOT NULL);
+CREATE TABLE t1 (a varchar(16) NOT NULL default '', b smallint(6) NOT NULL default 0, c datetime NOT NULL default '0000-00-00 00:00:00', d smallint(6) NOT NULL default 0);
INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55";
UPDATE t1 SET d=1/NULL;
UPDATE t1 SET d=NULL;
@@ -100,9 +100,9 @@ drop table t1;
select cast(NULL as signed);
#
-# Test case for bug #4256
+# IS NULL is unable to use index in range if column is declared not null
+# (Bug #4256)
#
-
create table t1(i int, key(i));
insert into t1 values(1);
insert into t1 select i*2 from t1;
@@ -114,9 +114,12 @@ insert into t1 select i*2 from t1;
insert into t1 select i*2 from t1;
insert into t1 select i*2 from t1;
insert into t1 select i*2 from t1;
+insert into t1 values(null);
explain select * from t1 where i=2 or i is null;
+select count(*) from t1 where i=2 or i is null;
alter table t1 change i i int not null;
explain select * from t1 where i=2 or i is null;
+select count(*) from t1 where i=2 or i is null;
drop table t1;
#
@@ -174,7 +177,7 @@ drop table t1;
# non-null string collation, i.e. case insensitively,
# rather than according to NULL's collation, i.e. case sensitively
#
--- in field
+# in field
select
case 'str' when 'STR' then 'str' when null then 'null' end as c01,
case 'str' when null then 'null' when 'STR' then 'str' end as c02,
@@ -228,4 +231,27 @@ drop table bug19145a;
drop table bug19145b;
drop table bug19145c;
-# End of 4.1 tests
+--echo # End of 4.1 tests
+
+--echo #
+--echo # Bug #31471: decimal_bin_size: Assertion `scale >= 0 &&
+--echo # precision > 0 && scale <= precision'
+--echo #
+
+CREATE TABLE t1 (a DECIMAL (1, 0) ZEROFILL, b DECIMAL (1, 0) ZEROFILL);
+INSERT INTO t1 (a, b) VALUES (0, 0);
+
+CREATE TABLE t2 SELECT IFNULL(a, b) FROM t1;
+DESCRIBE t2;
+DROP TABLE t2;
+
+CREATE TABLE t2 SELECT IFNULL(a, NULL) FROM t1;
+DESCRIBE t2;
+DROP TABLE t2;
+
+CREATE TABLE t2 SELECT IFNULL(NULL, b) FROM t1;
+DESCRIBE t2;
+
+DROP TABLE t1, t2;
+
+--echo # End of 5.0 tests
diff --git a/mysql-test/t/null_key.test b/mysql-test/t/null_key.test
index a43916d6397..e15aec01d2a 100644
--- a/mysql-test/t/null_key.test
+++ b/mysql-test/t/null_key.test
@@ -26,6 +26,8 @@ select * from t1 where (a is null or a > 0 and a < 3) and b < 5 limit 3;
select * from t1 where (a is null or a > 0 and a < 3) and b > 7 limit 3;
select * from t1 where (a is null or a = 7) and b=7;
select * from t1 where a is null and b=9 or a is null and b=7 limit 3;
+select * from t1 where a > 1 and a < 3 limit 1;
+select * from t1 where a > 8 and a < 9;
create table t2 like t1;
insert into t2 select * from t1;
alter table t1 modify b blob not null, add c int not null, drop key a, add unique key (a,b(20),c), drop key b, add key (b(10));
diff --git a/mysql-test/t/olap.test b/mysql-test/t/olap.test
index 61c1bd45e5f..1ac99d9c39f 100644
--- a/mysql-test/t/olap.test
+++ b/mysql-test/t/olap.test
@@ -2,6 +2,10 @@
drop table if exists t1,t2;
--enable_warnings
+set @sav_dpi= @@div_precision_increment;
+set div_precision_increment= 5;
+show variables like 'div_precision_increment';
+
create table t1 (product varchar(32), country_id int not null, year int, profit int);
insert into t1 values ( 'Computer', 2,2000, 1200),
( 'TV', 1, 1999, 150),
@@ -153,6 +157,13 @@ SELECT DISTINCT SUM(b), COUNT(DISTINCT b), COUNT(*) FROM t1
SELECT a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP;
SELECT DISTINCT a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP;
+SELECT b, a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP;
+SELECT DISTINCT b,a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP;
+
+ALTER TABLE t1 ADD COLUMN c INT;
+SELECT a,b,sum(c) FROM t1 GROUP BY a,b,c WITH ROLLUP;
+SELECT distinct a,b,sum(c) FROM t1 GROUP BY a,b,c WITH ROLLUP;
+
DROP TABLE t1;
#
@@ -184,6 +195,7 @@ SELECT a, SUM(a) m FROM t1 GROUP BY a WITH ROLLUP;
SELECT * FROM ( SELECT a, SUM(a) m FROM t1 GROUP BY a WITH ROLLUP ) t2;
DROP TABLE t1;
+set div_precision_increment= @sav_dpi;
#
# Tests for bug #7914: ROLLUP over expressions on temporary table
@@ -250,9 +262,8 @@ SELECT a, b, a AS c, COUNT(*) AS count FROM t1 GROUP BY a, b, c WITH ROLLUP;
DROP TABLE t1;
-#
-# Bug #11885: derived table specified by a subquery with
-# ROLLUP over expressions on not nullable group by attributes
+# Bug #12885(1): derived table specified by a subquery with
+# ROLLUP over expressions on not nullable group by attributes
#
CREATE TABLE t1 (a int(11) NOT NULL);
@@ -301,3 +312,58 @@ SELECT DISTINCT 'x', a, SUM(b) FROM t1 GROUP BY 1,2 WITH ROLLUP;
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Tests for bug #11639: ROLLUP over view executed through filesort
+#
+
+CREATE TABLE t1(id int, type char(1));
+INSERT INTO t1 VALUES
+ (1,"A"),(2,"C"),(3,"A"),(4,"A"),(5,"B"),
+ (6,"B"),(7,"A"),(8,"C"),(9,"A"),(10,"C");
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+SELECT type FROM t1 GROUP BY type WITH ROLLUP;
+SELECT type FROM v1 GROUP BY type WITH ROLLUP;
+EXPLAIN SELECT type FROM v1 GROUP BY type WITH ROLLUP;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #12885(2): view specified by a subquery with
+# ROLLUP over expressions on not nullable group by attributes
+#
+
+CREATE TABLE t1 (a int(11) NOT NULL);
+INSERT INTO t1 VALUES (1),(2);
+
+CREATE VIEW v1 AS
+ SELECT a, LENGTH(a), COUNT(*) FROM t1 GROUP BY a WITH ROLLUP;
+
+DESC v1;
+SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #26830: derived table with ROLLUP
+#
+
+CREATE TABLE t1 (a int, KEY (a));
+INSERT INTO t1 VALUES (3), (1), (4), (1), (3), (1), (1);
+
+SELECT * FROM (SELECT a, SUM(a) FROM t1 GROUP BY a WITH ROLLUP) as t;
+
+DROP TABLE t1;
+
+--echo #
+--echo # Bug#31095: Unexpected NULL constant caused server crash.
+--echo #
+create table t1(a int);
+insert into t1 values (1),(2),(3);
+select count(a) from t1 group by null with rollup;
+drop table t1;
+--echo ##############################################################
+
diff --git a/mysql-test/t/openssl_1.test b/mysql-test/t/openssl_1.test
index 3f398a91834..a752e990846 100644
--- a/mysql-test/t/openssl_1.test
+++ b/mysql-test/t/openssl_1.test
@@ -1,6 +1,7 @@
-# We test openssl. Result set is optimized to be compiled with --with-openssl.
-# Use mysql-test-run with --with-openssl option.
--- source include/have_openssl_1.inc
+# Tests for SSL connections, only run if mysqld is compiled
+# with support for SSL.
+
+-- source include/have_ssl.inc
--disable_warnings
drop table if exists t1;
@@ -10,38 +11,144 @@ insert into t1 values (5);
grant select on test.* to ssl_user1@localhost require SSL;
grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
-grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com";
-grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/L=Uppsala/O=MySQL AB/CN=MySQL Client/Email=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com";
+grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com";
+grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB/emailAddress=abstract.mysql.developer@mysql.com" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
+grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
flush privileges;
-connect (con1,localhost,ssl_user1,,);
-connect (con2,localhost,ssl_user2,,);
-connect (con3,localhost,ssl_user3,,);
-connect (con4,localhost,ssl_user4,,);
+
+connect (con1,localhost,ssl_user1,,,,,SSL);
+connect (con2,localhost,ssl_user2,,,,,SSL);
+connect (con3,localhost,ssl_user3,,,,,SSL);
+connect (con4,localhost,ssl_user4,,,,,SSL);
+--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
+--error 1045
+connect (con5,localhost,ssl_user5,,,,,SSL);
connection con1;
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
select * from t1;
---error 1044
+--error 1142
delete from t1;
connection con2;
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
select * from t1;
---error 1044
+--error 1142
delete from t1;
connection con3;
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
select * from t1;
---error 1044
+--error 1142
delete from t1;
connection con4;
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
select * from t1;
---error 1044
+--error 1142
delete from t1;
connection default;
-delete from mysql.user where user='ssl_user%';
-delete from mysql.db where user='ssl_user%';
-flush privileges;
+drop user ssl_user1@localhost, ssl_user2@localhost,
+ssl_user3@localhost, ssl_user4@localhost, ssl_user5@localhost;
+
drop table t1;
# End of 4.1 tests
+
+#
+# Test that we can't open connection to server if we are using
+# a different cacert
+#
+--exec echo "this query should not execute;" > $MYSQLTEST_VARDIR/tmp/test.sql
+--error 1
+--exec $MYSQL_TEST --ssl-ca=$MYSQL_TEST_DIR/std_data/untrusted-cacert.pem --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Test that we can't open connection to server if we are using
+# a blank ca
+#
+--error 1
+--exec $MYSQL_TEST --ssl-ca= --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Test that we can't open connection to server if we are using
+# a nonexistent ca file
+#
+--error 1
+--exec $MYSQL_TEST --ssl-ca=nonexisting_file.pem --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Test that we can't open connection to server if we are using
+# a blank client-key
+#
+--error 1
+--exec $MYSQL_TEST --ssl-key= --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Test that we can't open connection to server if we are using
+# a blank client-cert
+#
+--error 1
+--exec $MYSQL_TEST --ssl-cert= --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# BUG#21611 Slave can't connect when master-ssl-cipher specified
+# - Apparently selecting a cipher doesn't work at all
+# - Usa a cipher that both yaSSL and OpenSSL supports
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--exec $MYSQL_TEST --ssl-cipher=DHE-RSA-AES256-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Bug#25309 SSL connections without CA certificate broken since MySQL 5.0.23
+#
+# Test that we can open encrypted connection to server without
+# verification of servers certificate by setting both ca certificate
+# and ca path to NULL
+#
+--exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
+
+
+#
+# Test to connect using a list of ciphers
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--exec $MYSQL_TEST --ssl-cipher=UNKNOWN-CIPHER:AES128-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+
+# Test to connect using a specifi cipher
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--exec $MYSQL_TEST --ssl-cipher=AES128-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+# Test to connect using an unknown cipher
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--error 1
+--exec $MYSQL_TEST --ssl-cipher=UNKNOWN-CIPHER < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Bug #27669 mysqldump: SSL connection error when trying to connect
+#
+
+CREATE TABLE t1(a int);
+INSERT INTO t1 VALUES (1), (2);
+
+# Run mysqldump
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test t1
+
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test
+
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test
+
+# With wrong parameters
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--error 2
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test 2>&1
+
+DROP TABLE t1;
diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test
index 5c607608462..29a290c7fbf 100644
--- a/mysql-test/t/order_by.test
+++ b/mysql-test/t/order_by.test
@@ -44,7 +44,7 @@ INSERT INTO t2 VALUES (7,'Liste des t2','t2_liste_form.phtml',51060,'link.gif');
INSERT INTO t2 VALUES (8,'Consulter les soumissions','consulter_soumissions.phtml',200,'link.gif');
INSERT INTO t2 VALUES (9,'Ajouter un type de materiel','typeMateriel_ajoute_form.phtml',51000,'link.gif');
INSERT INTO t2 VALUES (10,'Lister/modifier un type de materiel','typeMateriel_liste_form.phtml',51010,'link.gif');
-INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
+INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
INSERT INTO t2 VALUES (4,'Modifier des clients','en_construction.html',40010,'link.gif');
INSERT INTO t2 VALUES (5,'Effacer des clients','en_construction.html',40020,'link.gif');
INSERT INTO t2 VALUES (6,'Ajouter un service','t2_ajoute_form.phtml',51050,'link.gif');
@@ -158,10 +158,21 @@ LEFT JOIN t3 ON t3.c = t1.c;
SELECT a,b,if(b = 1,i,if(b = 2,v,''))
FROM t1
+LEFT JOIN t2 ON t1.c = t2.c
+LEFT JOIN t3 ON t3.c = t1.c;
+
+SELECT a,b,if(b = 1,i,if(b = 2,v,''))
+FROM t1
LEFT JOIN t2 USING(c)
LEFT JOIN t3 ON t3.c = t1.c
ORDER BY a;
+SELECT a,b,if(b = 1,i,if(b = 2,v,''))
+FROM t1
+LEFT JOIN t2 ON t1.c = t2.c
+LEFT JOIN t3 ON t3.c = t1.c
+ORDER BY a;
+
drop table t1,t2,t3;
#
@@ -206,7 +217,7 @@ CREATE TABLE t1 (
favo_tv varchar(50) NOT NULL default '',
favo_eten varchar(50) NOT NULL default '',
favo_muziek varchar(30) NOT NULL default '',
- info text NOT NULL,
+ info text NOT NULL default '',
ipnr varchar(30) NOT NULL default '',
PRIMARY KEY (member_id)
) ENGINE=MyISAM PACK_KEYS=1;
@@ -340,7 +351,9 @@ CREATE TABLE t2 (
INSERT INTO t1 (titre,auteur,dest) VALUES ('test','joce','bug');
INSERT INTO t2 (numeropost,pseudo) VALUES (1,'joce'),(1,'bug');
SELECT titre,t1.numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
+SELECT titre,numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
SELECT titre,t1.numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
+SELECT titre,numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
drop table t1,t2;
#
@@ -651,7 +664,65 @@ SELECT a FROM t1 ORDER BY a IN (1,2);
SELECT a+10 FROM t1 ORDER BY a IN (1,2);
SELECT a, IF(a IN (1,2), a, a+10) FROM t1
ORDER BY IF(a IN (3,4), a, a+10);
-
DROP TABLE t1;
-# End of 4.1 tests
+# End of 4.1
+create table t1 (a int not null, b int not null, c int not null);
+insert t1 values (1,1,1),(1,1,2),(1,2,1);
+select a, b from t1 group by a, b order by sum(c);
+drop table t1;
+
+#
+# Bug#21302: Result not properly sorted when using an ORDER BY on a second
+# table in a join
+#
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
+INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
+
+explain SELECT t1.b as a, t2.b as c FROM
+ t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)
+ORDER BY c;
+SELECT t2.b as c FROM
+ t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)
+ORDER BY c;
+
+# check that it still removes sort of const table
+explain SELECT t1.b as a, t2.b as c FROM
+ t1 JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)
+ORDER BY c;
+
+CREATE TABLE t2 LIKE t1;
+INSERT INTO t2 SELECT * from t1;
+CREATE TABLE t3 LIKE t1;
+INSERT INTO t3 SELECT * from t1;
+CREATE TABLE t4 LIKE t1;
+INSERT INTO t4 SELECT * from t1;
+INSERT INTO t1 values (0,0),(4,4);
+
+SELECT t2.b FROM t1 LEFT JOIN (t2, t3 LEFT JOIN t4 ON t3.a=t4.a)
+ON (t1.a=t2.a AND t1.b=t3.b) order by t2.b;
+
+DROP TABLE t1,t2,t3,t4;
+
+#
+# Bug#25376: Incomplete setup of ORDER BY clause results in a wrong result.
+#
+create table t1 (a int, b int, c int);
+insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9);
+select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc;
+drop table t1;
+
+#
+# Bug#26672: Incorrect SEC_TO_TIME() casting in ORDER BY
+#
+CREATE TABLE t1 (a INT UNSIGNED NOT NULL, b TIME);
+INSERT INTO t1 (a) VALUES (100000), (0), (100), (1000000),(10000), (1000), (10);
+UPDATE t1 SET b = SEC_TO_TIME(a);
+
+# Correct ORDER
+SELECT a, b FROM t1 ORDER BY b DESC;
+
+# must be ordered as the above
+SELECT a, b FROM t1 ORDER BY SEC_TO_TIME(a) DESC;
+
+DROP TABLE t1;
diff --git a/mysql-test/t/outfile.test b/mysql-test/t/outfile.test
index 149c92ece38..2b80b0b9d93 100644
--- a/mysql-test/t/outfile.test
+++ b/mysql-test/t/outfile.test
@@ -1,6 +1,7 @@
disable_query_log;
-- source include/test_outfile.inc
-eval set @tmpdir="$MYSQL_TEST_DIR/var/tmp";
+# Server are started in "var/master-data", so "../tmp" will be "var/tmp"
+eval set @tmpdir="../tmp";
enable_query_log;
-- source include/have_outfile.inc
@@ -15,41 +16,42 @@ drop table if exists t1;
create table t1 (`a` blob);
insert into t1 values("hello world"),("Hello mars"),(NULL);
disable_query_log;
-eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
+eval select * into outfile "../tmp/outfile-test.1" from t1;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.1"));
disable_query_log;
-eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1 limit 1;
+eval select * into dumpfile "../tmp/outfile-test.2" from t1 limit 1;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.2"));
disable_query_log;
-eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1 where a is null;
+eval select * into dumpfile "../tmp/outfile-test.3" from t1 where a is null;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.3"));
# the following should give errors
-#disabled as error message has variable path
-#disable_query_log;
-#--error 1086
-#eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
-#--error 1086
-#eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1;
-#--error 1086
-#eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1;
-#enable_query_log;
+disable_query_log;
+--error 1086
+eval select * into outfile "../tmp/outfile-test.1" from t1;
+
+--error 1086
+eval select * into dumpfile "../tmp/outfile-test.2" from t1;
+
+--error 1086
+eval select * into dumpfile "../tmp/outfile-test.3" from t1;
+enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.not-exist"));
---remove_file $MYSQL_TEST_DIR/var/tmp/outfile-test.1
---remove_file $MYSQL_TEST_DIR/var/tmp/outfile-test.2
---remove_file $MYSQL_TEST_DIR/var/tmp/outfile-test.3
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.1
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.2
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.3
drop table t1;
# Bug#8191
disable_query_log;
-eval select 1 into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.4";
+eval select 1 into outfile "../tmp/outfile-test.4";
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.4"));
---remove_file $MYSQL_TEST_DIR/var/tmp/outfile-test.4
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4
#
# Bug #5382: 'explain select into outfile' crashes the server
@@ -64,3 +66,68 @@ EXPLAIN
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Bug#13202 SELECT * INTO OUTFILE ... FROM information_schema.schemata now fails
+#
+disable_query_log;
+eval SELECT * INTO OUTFILE "../tmp/outfile-test.4"
+FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+FROM information_schema.schemata LIMIT 0, 5;
+# enable_query_log;
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4
+
+use information_schema;
+# disable_query_log;
+eval SELECT * INTO OUTFILE "../tmp/outfile-test.4"
+FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
+FROM schemata LIMIT 0, 5;
+enable_query_log;
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4
+use test;
+
+#
+# Bug#18628 mysql-test-run: security problem
+#
+# It should not be possible to write to a file outside of vardir
+create table t1(a int);
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--error 1290
+eval select * into outfile "$MYSQL_TEST_DIR/outfile-test1" from t1;
+drop table t1;
+
+#
+# Bug#28181 Access denied to 'information_schema when
+# select into out file (regression)
+#
+create database mysqltest;
+create user user_1@localhost;
+grant all on mysqltest.* to user_1@localhost;
+connect (con28181_1,localhost,user_1,,mysqltest);
+
+--error 1044
+eval select schema_name
+into outfile "../tmp/outfile-test.4"
+fields terminated by ',' optionally enclosed by '"'
+ lines terminated by '\n'
+from information_schema.schemata
+where schema_name like 'mysqltest';
+
+connection default;
+grant file on *.* to user_1@localhost;
+
+connect (con28181_2,localhost,user_1,,mysqltest);
+eval select schema_name
+into outfile "../tmp/outfile-test.4"
+fields terminated by ',' optionally enclosed by '"'
+ lines terminated by '\n'
+from information_schema.schemata
+where schema_name like 'mysqltest';
+
+connection default;
+--exec rm $MYSQLTEST_VARDIR/tmp/outfile-test.4
+use test;
+revoke all privileges on *.* from user_1@localhost;
+drop user user_1@localhost;
+drop database mysqltest;
+
diff --git a/mysql-test/t/overflow.test b/mysql-test/t/overflow.test
index c930707413b..a62ef9c4cd2 100644
--- a/mysql-test/t/overflow.test
+++ b/mysql-test/t/overflow.test
@@ -1,4 +1,4 @@
-connect (con1,localhost,boo,,);
+connect (con1,localhost,root,,);
connection con1;
-- error 1064,1102,1280
drop database AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;
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/perror.test b/mysql-test/t/perror.test
new file mode 100644
index 00000000000..a4b99d8aa22
--- /dev/null
+++ b/mysql-test/t/perror.test
@@ -0,0 +1,19 @@
+#
+# Check if the variable MY_PERROR is set
+#
+--require r/have_perror.require
+disable_query_log;
+eval select LENGTH("$MY_PERROR") > 0 as "have_perror";
+enable_query_log;
+
+--exec $MY_PERROR 150 > /dev/null
+--exec $MY_PERROR --silent 120 > /dev/null
+
+#
+# Bug#16561 Unknown ERROR msg "ERROR 1186 (HY000): Binlog closed" by perror
+#
+
+# Test with error code 10000 as it's a common "unknown error"
+# As there is no error code defined for 10000, expect error
+--error 1
+--exec $MY_PERROR 10000 2>&1
diff --git a/mysql-test/t/ps-master.opt b/mysql-test/t/ps-master.opt
new file mode 100644
index 00000000000..3eb98fc3d6b
--- /dev/null
+++ b/mysql-test/t/ps-master.opt
@@ -0,0 +1 @@
+--log-slow-queries --log-long-format --log-queries-not-using-indexes
diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test
index 5e5dcc36b19..cd2fc44e3ce 100644
--- a/mysql-test/t/ps.test
+++ b/mysql-test/t/ps.test
@@ -3,6 +3,9 @@
#
--disable_warnings
drop table if exists t1,t2;
+
+# Avoid wrong warnings if mysql_client_test fails
+drop database if exists client_test_db;
--enable_warnings
create table t1
@@ -30,13 +33,13 @@ deallocate prepare no_such_statement;
execute stmt1;
# Nesting ps commands is not allowed:
---error 1064
+--error ER_UNSUPPORTED_PS
prepare stmt2 from 'prepare nested_stmt from "select 1"';
---error 1064
+--error ER_UNSUPPORTED_PS
prepare stmt2 from 'execute stmt1';
---error 1064
+--error ER_UNSUPPORTED_PS
prepare stmt2 from 'deallocate prepare z';
# PS insert
@@ -149,7 +152,7 @@ create table t1
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
- c13 date, c14 datetime, c15 timestamp(14), c16 time,
+ c13 date, c14 datetime, c15 timestamp, c16 time,
c17 year, c18 bit, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
@@ -487,6 +490,42 @@ execute stmt;
deallocate prepare stmt;
drop table t1, t2;
+#
+#
+# Bug#19399 "Stored Procedures 'Lost Connection' when dropping/creating
+# tables"
+# Check that multi-delete tables are also cleaned up before re-execution.
+#
+--disable_warnings
+drop table if exists t1;
+create temporary table if not exists t1 (a1 int);
+--enable_warnings
+# exact delete syntax is essential
+prepare stmt from "delete t1 from t1 where (cast(a1/3 as unsigned) * 3) = a1";
+drop temporary table t1;
+create temporary table if not exists t1 (a1 int);
+# the server crashed on the next statement without the fix
+execute stmt;
+drop temporary table t1;
+create temporary table if not exists t1 (a1 int);
+# the problem was in memory corruption: repeat the test just in case
+execute stmt;
+drop temporary table t1;
+create temporary table if not exists t1 (a1 int);
+execute stmt;
+drop temporary table t1;
+deallocate prepare stmt;
+
+# Bug#6102 "Server crash with prepared statement and blank after
+# function name"
+# ensure that stored functions are cached when preparing a statement
+# before we open tables
+#
+create table t1 (a varchar(20));
+insert into t1 values ('foo');
+--error 1305
+prepare stmt FROM 'SELECT char_length (a) FROM t1';
+drop table t1;
#
# Bug #6089: FOUND_ROWS returns wrong values when no table/view is used
@@ -524,6 +563,7 @@ set @a=200887, @b=860;
# this query did not return all matching rows
execute stmt using @a, @b;
deallocate prepare stmt;
+
drop table t1;
#
@@ -583,7 +623,6 @@ execute stmt;
execute stmt;
deallocate prepare stmt;
drop table t1;
-
#
# Bug#11458 "Prepared statement with subselects return random data":
# drop PARAM_TABLE_BIT from the list of tables used by a subquery
@@ -652,7 +691,6 @@ execute stmt using @user_id, @id;
execute stmt using @user_id, @id;
deallocate prepare stmt;
drop table t1, t2, t3, t4;
-
#
# Bug#9379: make sure that Item::collation is reset when one sets
# a parameter marker from a string variable.
@@ -767,7 +805,6 @@ execute stmt using @like;
deallocate prepare stmt;
drop table t1;
-
#
# Bug#13134 "Length of VARCHAR() utf8 column is increasing when table is
# recreated with PS/SP"
@@ -841,11 +878,11 @@ set global max_prepared_stmt_count=10000000000000000;
select @@max_prepared_stmt_count;
set global max_prepared_stmt_count=default;
select @@max_prepared_stmt_count;
---error 1229 # ER_GLOBAL_VARIABLE
+--error ER_GLOBAL_VARIABLE
set @@max_prepared_stmt_count=1;
---error 1229 # ER_GLOBAL_VARIABLE
+--error ER_GLOBAL_VARIABLE
set max_prepared_stmt_count=1;
---error 1229 # ER_GLOBAL_VARIABLE
+--error ER_GLOBAL_VARIABLE
set local max_prepared_stmt_count=1;
# set to a reasonable limit works
set global max_prepared_stmt_count=1;
@@ -856,13 +893,13 @@ select @@max_prepared_stmt_count;
set global max_prepared_stmt_count=0;
select @@max_prepared_stmt_count;
show status like 'prepared_stmt_count';
---error 1105 # ER_UNKNOWN_ERROR
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
prepare stmt from "select 1";
show status like 'prepared_stmt_count';
set global max_prepared_stmt_count=1;
prepare stmt from "select 1";
show status like 'prepared_stmt_count';
---error 1105 # ER_UNKNOWN_ERROR
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
prepare stmt1 from "select 1";
show status like 'prepared_stmt_count';
deallocate prepare stmt;
@@ -882,13 +919,13 @@ show status like 'prepared_stmt_count';
show status like 'prepared_stmt_count';
select @@max_prepared_stmt_count;
set global max_prepared_stmt_count=0;
---error 1105 # ER_UNKNOWN_ERROR
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
prepare stmt from "select 1";
# Result: the old statement is deallocated, the new is not created.
---error 1243 # ER_UNKNOWN_STMT_HANDLER
+--error ER_UNKNOWN_STMT_HANDLER
execute stmt;
show status like 'prepared_stmt_count';
---error 1105 # ER_UNKNOWN_ERROR
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
prepare stmt from "select 1";
show status like 'prepared_stmt_count';
#
@@ -903,10 +940,10 @@ connect (con1,localhost,root,,);
connection con1;
prepare stmt from "select 2";
prepare stmt1 from "select 3";
---error 1105 # ER_UNKNOWN_ERROR
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
prepare stmt2 from "select 4";
connection default;
---error 1105 # ER_UNKNOWN_ERROR
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
prepare stmt2 from "select 4";
select @@max_prepared_stmt_count;
show status like 'prepared_stmt_count';
@@ -919,6 +956,7 @@ deallocate prepare stmt;
set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
--enable_ps_protocol
+
#
# Bug#19399 "Stored Procedures 'Lost Connection' when dropping/creating
# tables"
@@ -1128,6 +1166,32 @@ drop database mysqltest;
deallocate prepare stmt1;
deallocate prepare stmt2;
#
+# CREATE TABLE with DATA DIRECTORY option
+#
+--disable_warnings
+--disable_query_log
+eval prepare stmt from "create table t1 (c char(10)) data directory='$MYSQLTEST_VARDIR/tmp'";
+--enable_query_log
+execute stmt;
+#
+# DATA DIRECTORY option does not always work: if the operating
+# system does not support symlinks, have_symlinks option is automatically
+# disabled.
+# In this case DATA DIRECTORY is silently ignored when
+# creating a table, and is not output by SHOW CREATE TABLE.
+#
+--disable_result_log
+show create table t1;
+--enable_result_log
+drop table t1;
+execute stmt;
+--disable_result_log
+show create table t1;
+--enable_result_log
+--enable_warnings
+drop table t1;
+deallocate prepare stmt;
+#
#
# Bug #27937: crash on the second execution for prepared statement
@@ -1147,3 +1211,590 @@ DEALLOCATE PREPARE st1;
DROP TABLE t1;
--echo End of 4.1 tests.
+
+############################# 5.0 tests start ################################
+#
+#
+# Bug#6102 "Server crash with prepared statement and blank after
+# function name"
+# ensure that stored functions are cached when preparing a statement
+# before we open tables
+#
+create table t1 (a varchar(20));
+insert into t1 values ('foo');
+--error 1305
+prepare stmt FROM 'SELECT char_length (a) FROM t1';
+drop table t1;
+
+#
+# Bug#8115: equality propagation and prepared statements
+#
+
+create table t1 (a char(3) not null, b char(3) not null,
+ c char(3) not null, primary key (a, b, c));
+create table t2 like t1;
+
+# reduced query
+prepare stmt from
+ "select t1.a from (t1 left outer join t2 on t2.a=1 and t1.b=t2.b)
+ where t1.a=1";
+execute stmt;
+execute stmt;
+execute stmt;
+
+# original query
+prepare stmt from
+"select t1.a, t1.b, t1.c, t2.a, t2.b, t2.c from
+(t1 left outer join t2 on t2.a=? and t1.b=t2.b)
+left outer join t2 t3 on t3.a=? where t1.a=?";
+
+set @a:=1, @b:=1, @c:=1;
+
+execute stmt using @a, @b, @c;
+execute stmt using @a, @b, @c;
+execute stmt using @a, @b, @c;
+
+deallocate prepare stmt;
+
+drop table t1,t2;
+
+
+#
+# Bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement
+#
+
+eval SET @aux= "SELECT COUNT(*)
+ FROM INFORMATION_SCHEMA.COLUMNS A,
+ INFORMATION_SCHEMA.COLUMNS B
+ WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
+ AND A.TABLE_NAME = B.TABLE_NAME
+ AND A.COLUMN_NAME = B.COLUMN_NAME AND
+ A.TABLE_NAME = 'user'";
+
+let $exec_loop_count= 3;
+eval prepare my_stmt from @aux;
+while ($exec_loop_count)
+{
+ eval execute my_stmt;
+ dec $exec_loop_count;
+}
+deallocate prepare my_stmt;
+
+# Test CALL in prepared mode
+delimiter |;
+--disable_warnings
+drop procedure if exists p1|
+drop table if exists t1|
+--enable_warnings
+create table t1 (id int)|
+insert into t1 values(1)|
+create procedure p1(a int, b int)
+begin
+ declare c int;
+ select max(id)+1 into c from t1;
+ insert into t1 select a+b;
+ insert into t1 select a-b;
+ insert into t1 select a-c;
+end|
+set @a= 3, @b= 4|
+prepare stmt from "call p1(?, ?)"|
+execute stmt using @a, @b|
+execute stmt using @a, @b|
+select * from t1|
+deallocate prepare stmt|
+drop procedure p1|
+drop table t1|
+delimiter ;|
+
+
+#
+# Bug#7306 LIMIT ?, ? and also WL#1785 " Prepared statements: implement
+# support for placeholders in LIMIT clause."
+# Add basic test coverage for the feature.
+#
+create table t1 (a int);
+insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+prepare stmt from "select * from t1 limit ?, ?";
+set @offset=0, @limit=1;
+execute stmt using @offset, @limit;
+select * from t1 limit 0, 1;
+set @offset=3, @limit=2;
+execute stmt using @offset, @limit;
+select * from t1 limit 3, 2;
+prepare stmt from "select * from t1 limit ?";
+execute stmt using @limit;
+--error 1235
+prepare stmt from "select * from t1 where a in (select a from t1 limit ?)";
+prepare stmt from "select * from t1 union all select * from t1 limit ?, ?";
+set @offset=9;
+set @limit=2;
+execute stmt using @offset, @limit;
+prepare stmt from "(select * from t1 limit ?, ?) union all
+ (select * from t1 limit ?, ?) order by a limit ?";
+execute stmt using @offset, @limit, @offset, @limit, @limit;
+
+drop table t1;
+deallocate prepare stmt;
+
+#
+# Bug#12651
+# (Crash on a PS including a subquery which is a select from a simple view)
+#
+CREATE TABLE b12651_T1(a int) ENGINE=MYISAM;
+CREATE TABLE b12651_T2(b int) ENGINE=MYISAM;
+CREATE VIEW b12651_V1 as SELECT b FROM b12651_T2;
+
+PREPARE b12651 FROM 'SELECT 1 FROM b12651_T1 WHERE a IN (SELECT b FROM b12651_V1)';
+EXECUTE b12651;
+
+DROP VIEW b12651_V1;
+DROP TABLE b12651_T1, b12651_T2;
+DEALLOCATE PREPARE b12651;
+
+
+
+#
+# Bug #14956: ROW_COUNT() returns incorrect result after EXECUTE of prepared
+# statement
+#
+create table t1 (id int);
+prepare ins_call from "insert into t1 (id) values (1)";
+execute ins_call;
+select row_count();
+drop table t1;
+
+#
+# BUG#16474: SP crashed MySQL
+# (when using "order by localvar", where 'localvar' is just that.
+# The actual bug test is in sp.test, this is just testing that we get the
+# expected result for prepared statements too, i.e. place holders work as
+# textual substitution. If it's a single integer, it works as the (deprecated)
+# "order by column#", otherwise it's an expression.
+#
+create table t1 (a int, b int);
+insert into t1 (a,b) values (2,8),(1,9),(3,7);
+
+# Will order by index
+prepare stmt from "select * from t1 order by ?";
+set @a=NULL;
+execute stmt using @a;
+set @a=1;
+execute stmt using @a;
+set @a=2;
+execute stmt using @a;
+deallocate prepare stmt;
+# For reference:
+select * from t1 order by 1;
+
+# Will not order by index.
+prepare stmt from "select * from t1 order by ?+1";
+set @a=0;
+execute stmt using @a;
+set @a=1;
+execute stmt using @a;
+deallocate prepare stmt;
+# For reference:
+select * from t1 order by 1+1;
+
+drop table t1;
+
+#
+# Bug#19308 "REPAIR/OPTIMIZE/ANALYZE supported in SP but not in PS".
+# Add test coverage for the added commands.
+#
+create table t1 (a int);
+create table t2 like t1;
+create table t3 like t2;
+prepare stmt from "repair table t1";
+execute stmt;
+execute stmt;
+prepare stmt from "optimize table t1";
+execute stmt;
+execute stmt;
+prepare stmt from "analyze table t1";
+execute stmt;
+execute stmt;
+prepare stmt from "repair table t1, t2, t3";
+execute stmt;
+execute stmt;
+prepare stmt from "optimize table t1, t2, t3";
+execute stmt;
+execute stmt;
+prepare stmt from "analyze table t1, t2, t3";
+execute stmt;
+execute stmt;
+prepare stmt from "repair table t1, t4, t3";
+execute stmt;
+execute stmt;
+prepare stmt from "optimize table t1, t3, t4";
+execute stmt;
+execute stmt;
+prepare stmt from "analyze table t4, t1";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+drop table t1, t2, t3;
+
+#
+# Bug#17199 "Table not found" error occurs if the query contains a call
+# to a function from another database.
+# Test prepared statements- related behaviour.
+#
+#
+# ALTER TABLE RENAME and Prepared Statements: wrong DB name buffer was used
+# in ALTER ... RENAME which caused memory corruption in prepared statements.
+# No need to fix this problem in 4.1 as ALTER TABLE is not allowed in
+# Prepared Statements in 4.1.
+#
+create database mysqltest_long_database_name_to_thrash_heap;
+use test;
+create table t1 (i int);
+prepare stmt from "alter table test.t1 rename t1";
+use mysqltest_long_database_name_to_thrash_heap;
+execute stmt;
+show tables like 't1';
+prepare stmt from "alter table test.t1 rename t1";
+use test;
+execute stmt;
+show tables like 't1';
+use mysqltest_long_database_name_to_thrash_heap;
+show tables like 't1';
+deallocate prepare stmt;
+#
+# Check that a prepared statement initializes its current database at
+# PREPARE, and then works correctly even if the current database has been
+# changed.
+#
+use mysqltest_long_database_name_to_thrash_heap;
+# Necessary for preparation of INSERT/UPDATE/DELETE to succeed
+prepare stmt_create from "create table t1 (i int)";
+prepare stmt_insert from "insert into t1 (i) values (1)";
+prepare stmt_update from "update t1 set i=2";
+prepare stmt_delete from "delete from t1 where i=2";
+prepare stmt_select from "select * from t1";
+prepare stmt_alter from "alter table t1 add column (b int)";
+prepare stmt_alter1 from "alter table t1 drop column b";
+prepare stmt_analyze from "analyze table t1";
+prepare stmt_optimize from "optimize table t1";
+prepare stmt_show from "show tables like 't1'";
+prepare stmt_truncate from "truncate table t1";
+prepare stmt_drop from "drop table t1";
+# Drop the table that was used to prepare INSERT/UPDATE/DELETE: we will
+# create a new one by executing stmt_create
+drop table t1;
+# Switch the current database
+use test;
+# Check that all prepared statements operate on the database that was
+# active at PREPARE
+execute stmt_create;
+# should return empty set
+show tables like 't1';
+use mysqltest_long_database_name_to_thrash_heap;
+show tables like 't1';
+use test;
+execute stmt_insert;
+select * from mysqltest_long_database_name_to_thrash_heap.t1;
+execute stmt_update;
+select * from mysqltest_long_database_name_to_thrash_heap.t1;
+execute stmt_delete;
+execute stmt_select;
+execute stmt_alter;
+show columns from mysqltest_long_database_name_to_thrash_heap.t1;
+execute stmt_alter1;
+show columns from mysqltest_long_database_name_to_thrash_heap.t1;
+execute stmt_analyze;
+execute stmt_optimize;
+execute stmt_show;
+execute stmt_truncate;
+execute stmt_drop;
+show tables like 't1';
+use mysqltest_long_database_name_to_thrash_heap;
+show tables like 't1';
+#
+# Attempt a statement PREPARE when there is no current database:
+# is expected to return an error.
+#
+drop database mysqltest_long_database_name_to_thrash_heap;
+--error ER_NO_DB_ERROR
+prepare stmt_create from "create table t1 (i int)";
+--error ER_NO_DB_ERROR
+prepare stmt_insert from "insert into t1 (i) values (1)";
+--error ER_NO_DB_ERROR
+prepare stmt_update from "update t1 set i=2";
+--error ER_NO_DB_ERROR
+prepare stmt_delete from "delete from t1 where i=2";
+--error ER_NO_DB_ERROR
+prepare stmt_select from "select * from t1";
+--error ER_NO_DB_ERROR
+prepare stmt_alter from "alter table t1 add column (b int)";
+--error ER_NO_DB_ERROR
+prepare stmt_alter1 from "alter table t1 drop column b";
+--error ER_NO_DB_ERROR
+prepare stmt_analyze from "analyze table t1";
+--error ER_NO_DB_ERROR
+prepare stmt_optimize from "optimize table t1";
+--error ER_NO_DB_ERROR
+prepare stmt_show from "show tables like 't1'";
+--error ER_NO_DB_ERROR
+prepare stmt_truncate from "truncate table t1";
+--error ER_NO_DB_ERROR
+prepare stmt_drop from "drop table t1";
+#
+# The above has automatically deallocated all our statements.
+#
+# Attempt to CREATE a temporary table when no DB used: it should fail
+# This proves that no table can be used without explicit specification of
+# its database if there is no current database.
+#
+--error ER_NO_DB_ERROR
+create temporary table t1 (i int);
+#
+# Restore the old environemnt
+#
+use test;
+
+
+#
+# BUG#21166: Prepared statement causes signal 11 on second execution
+#
+# Changes in an item tree done by optimizer weren't properly
+# registered and went unnoticed, which resulted in preliminary freeing
+# of used memory.
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2, t3;
+--enable_warnings
+
+CREATE TABLE t1 (i BIGINT, j BIGINT);
+CREATE TABLE t2 (i BIGINT);
+CREATE TABLE t3 (i BIGINT, j BIGINT);
+
+PREPARE stmt FROM "SELECT * FROM t1 JOIN t2 ON (t2.i = t1.i)
+ LEFT JOIN t3 ON ((t3.i, t3.j) = (t1.i, t1.j))
+ WHERE t1.i = ?";
+
+SET @a= 1;
+EXECUTE stmt USING @a;
+EXECUTE stmt USING @a;
+
+DEALLOCATE PREPARE stmt;
+DROP TABLE IF EXISTS t1, t2, t3;
+
+
+#
+# BUG#21081: SELECT inside stored procedure returns wrong results
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+CREATE TABLE t1 (i INT KEY);
+CREATE TABLE t2 (i INT);
+
+INSERT INTO t1 VALUES (1), (2);
+INSERT INTO t2 VALUES (1);
+
+PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i
+ WHERE t1.i = ?";
+
+SET @arg= 1;
+EXECUTE stmt USING @arg;
+SET @arg= 2;
+EXECUTE stmt USING @arg;
+SET @arg= 1;
+EXECUTE stmt USING @arg;
+
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1, t2;
+
+
+#
+# BUG#20327: Marking of a wrong field leads to a wrong result on select with
+# view, prepared statement and subquery.
+#
+CREATE TABLE t1 (i INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+INSERT INTO t1 VALUES (1), (2);
+
+let $query = SELECT t1.i FROM t1 JOIN v1 ON t1.i = v1.i
+ WHERE EXISTS (SELECT * FROM t1 WHERE v1.i = 1);
+eval $query;
+eval PREPARE stmt FROM "$query";
+# Statement execution should return '1'.
+EXECUTE stmt;
+# Check re-execution.
+EXECUTE stmt;
+
+DEALLOCATE PREPARE stmt;
+DROP VIEW v1;
+DROP TABLE t1;
+
+
+#
+# BUG#21856: Prepared Statments: crash if bad create
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+let $iterations= 100;
+--disable_query_log
+--disable_result_log
+while ($iterations > 0)
+{
+ --error ER_PARSE_ERROR
+ PREPARE stmt FROM "CREATE PROCEDURE p1()";
+ dec $iterations;
+}
+--enable_query_log
+--enable_result_log
+
+#
+# Bug 19764: SHOW commands end up in the slow log as table scans
+#
+
+flush status;
+prepare sq from 'show status like "slow_queries"';
+execute sq;
+prepare no_index from 'select 1 from information_schema.tables limit 1';
+execute sq;
+execute no_index;
+execute sq;
+deallocate prepare no_index;
+deallocate prepare sq;
+
+
+#
+# Bug 25027: query with a single-row non-correlated subquery
+# and IS NULL predicate
+#
+
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1), (2);
+CREATE TABLE t2 (b int);
+INSERT INTO t2 VALUES (NULL);
+
+SELECT a FROM t1 WHERE (SELECT b FROM t2) IS NULL;
+PREPARE stmt FROM 'SELECT a FROM t1 WHERE (SELECT b FROM t2) IS NULL';
+
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+PREPARE stmt FROM 'SELECT a FROM t1 WHERE (SELECT b FROM t2 limit ?) IS NULL';
+SET @arg=1;
+EXECUTE stmt USING @arg;
+DEALLOCATE PREPARE stmt;
+
+DROP TABLE t1,t2;
+#
+# Bug#4968 "Stored procedure crash if cursor opened on altered table"
+# The bug is not repeatable any more after the fix for
+# Bug#15217 "Bug #15217 Using a SP cursor on a table created with PREPARE
+# fails with weird error", however ALTER TABLE is not re-execution friendly
+# and that caused a valgrind warning. Check that the warning is gone.
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (s1 char(20));
+prepare stmt from "alter table t1 modify s1 int";
+execute stmt;
+execute stmt;
+drop table t1;
+deallocate prepare stmt;
+
+#
+# Bug#6895 "Prepared Statements: ALTER TABLE DROP COLUMN does nothing"
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (a int, b int);
+prepare s_6895 from "alter table t1 drop column b";
+execute s_6895;
+show columns from t1;
+drop table t1;
+create table t1 (a int, b int);
+execute s_6895;
+show columns from t1;
+drop table t1;
+create table t1 (a int, b int);
+execute s_6895;
+show columns from t1;
+deallocate prepare s_6895;
+drop table t1;
+
+#
+# Bug #22060 "ALTER TABLE x AUTO_INCREMENT=y in SP crashes server"
+#
+# 5.0 part of the test.
+#
+
+# ALTER TABLE
+create table t1 (i int primary key auto_increment) comment='comment for table t1';
+create table t2 (i int, j int, k int);
+prepare stmt from "alter table t1 auto_increment=100";
+execute stmt;
+show create table t1;
+# Let us trash table-cache's memory
+flush tables;
+select * from t2;
+execute stmt;
+show create table t1;
+deallocate prepare stmt;
+drop table t1, t2;
+# 5.1 part of the test.
+# CREATE DATABASE
+#set @old_character_set_server= @@character_set_server;
+#set @@character_set_server= latin1;
+#prepare stmt from "create database mysqltest";
+#execute stmt;
+#show create database mysqltest;
+#drop database mysqltest;
+#set @@character_set_server= utf8;
+#execute stmt;
+#show create database mysqltest;
+#drop database mysqltest;
+#deallocate prepare stmt;
+#set @@character_set_server= @old_character_set_server;
+
+
+#
+# BUG#24491 "using alias from source table in insert ... on duplicate key"
+#
+--disable_warnings
+drop tables if exists t1;
+--enable_warnings
+create table t1 (id int primary key auto_increment, value varchar(10));
+insert into t1 (id, value) values (1, 'FIRST'), (2, 'SECOND'), (3, 'THIRD');
+# Let us prepare INSERT ... SELECT ... ON DUPLICATE KEY UPDATE statement
+# which in its ON DUPLICATE KEY clause erroneously tries to assign value
+# to a column which is mentioned only in SELECT part.
+prepare stmt from "insert into t1 (id, value) select * from (select 4 as i, 'FOURTH' as v) as y on duplicate key update v = 'DUP'";
+# Both first and second attempts to execute it should fail
+--error ER_BAD_FIELD_ERROR
+execute stmt;
+--error ER_BAD_FIELD_ERROR
+execute stmt;
+deallocate prepare stmt;
+# And now the same test for more complex case which is more close
+# to the one that was reported originally.
+prepare stmt from "insert into t1 (id, value) select * from (select 4 as id, 'FOURTH' as value) as y on duplicate key update y.value = 'DUP'";
+--error ER_BAD_FIELD_ERROR
+execute stmt;
+--error ER_BAD_FIELD_ERROR
+execute stmt;
+deallocate prepare stmt;
+drop tables t1;
+
+#
+# Bug #28509: strange behaviour: passing a decimal value to PS
+#
+prepare stmt from "create table t1 select ?";
+set @a=1.0;
+execute stmt using @a;
+show create table t1;
+drop table t1;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/ps_11bugs.test b/mysql-test/t/ps_11bugs.test
index ff1c87f3bd8..515bcc03c1a 100644
--- a/mysql-test/t/ps_11bugs.test
+++ b/mysql-test/t/ps_11bugs.test
@@ -144,3 +144,37 @@ prepare st_18492 from 'select * from t1 where 3 in (select (1+1) union select 1)
execute st_18492;
drop table t1;
+
+#
+# Bug#19356: Assertion failure with undefined @uservar in prepared statement execution
+#
+create table t1 (a int, b varchar(4));
+create table t2 (a int, b varchar(4), primary key(a));
+
+prepare stmt1 from 'insert into t1 (a, b) values (?, ?)';
+prepare stmt2 from 'insert into t2 (a, b) values (?, ?)';
+
+set @intarg= 11;
+set @varchararg= '2222';
+execute stmt1 using @intarg, @varchararg;
+execute stmt2 using @intarg, @varchararg;
+set @intarg= 12;
+execute stmt1 using @intarg, @UNDEFINED;
+execute stmt2 using @intarg, @UNDEFINED;
+set @intarg= 13;
+execute stmt1 using @UNDEFINED, @varchararg;
+--error 1048
+execute stmt2 using @UNDEFINED, @varchararg;
+set @intarg= 14;
+set @nullarg= Null;
+execute stmt1 using @UNDEFINED, @nullarg;
+--error 1048
+execute stmt2 using @nullarg, @varchararg;
+
+select * from t1;
+select * from t2;
+
+drop table t1;
+drop table t2;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/ps_1general.test b/mysql-test/t/ps_1general.test
index ec4964d116a..952931f2ad1 100644
--- a/mysql-test/t/ps_1general.test
+++ b/mysql-test/t/ps_1general.test
@@ -11,7 +11,12 @@
--disable_warnings
drop table if exists t5, t6, t7, t8;
drop database if exists mysqltest ;
+
+# Cleanup from other tests
drop database if exists client_test_db;
+drop database if exists testtets;
+drop table if exists t1Aa,t2Aa,v1Aa,v2Aa;
+drop view if exists t1Aa,t2Aa,v1Aa,v2Aa;
--enable_warnings
--disable_query_log
@@ -287,6 +292,14 @@ prepare stmt4 from ' show databases ';
execute stmt4;
prepare stmt4 from ' show tables from test like ''t2%'' ';
execute stmt4;
+prepare stmt4 from ' show columns from t2 where field in (select ?) ';
+SET @arg00="a";
+execute stmt4 using @arg00;
+SET @arg00="b";
+execute stmt4 using @arg00;
+SET @arg00=1;
+execute stmt4 using @arg00;
+
prepare stmt4 from ' show columns from t2 from test like ''a%'' ';
execute stmt4;
create index t2_idx on t2(b);
@@ -294,15 +307,13 @@ prepare stmt4 from ' show index from t2 from test ';
execute stmt4;
prepare stmt4 from ' show table status from test like ''t2%'' ';
# egalize date and time values
---replace_column 12 # 13 # 14 #
---replace_result 2147483647 64424509439
+--replace_column 8 # 12 # 13 # 14 #
# Bug#4288 : prepared statement 'show table status ..', wrong output on execute
execute stmt4;
# try the same with the big table
prepare stmt4 from ' show table status from test like ''t9%'' ';
# egalize date and time values
---replace_column 12 # 13 # 14 #
---replace_result 2147483647 4294967295
+--replace_column 8 # 12 # 13 # 14 #
# Bug#4288
execute stmt4;
prepare stmt4 from ' show status like ''Threads_running'' ';
@@ -405,13 +416,17 @@ deallocate prepare stmt_do ;
deallocate prepare stmt_set ;
## nonsense like prepare of prepare,execute or deallocate
---error 1064
+--error ER_UNSUPPORTED_PS
prepare stmt1 from ' prepare stmt2 from '' select 1 '' ' ;
---error 1064
+--error ER_UNSUPPORTED_PS
prepare stmt1 from ' execute stmt2 ' ;
---error 1064
+--error ER_UNSUPPORTED_PS
prepare stmt1 from ' deallocate prepare never_prepared ' ;
+## We don't support alter view as prepared statements
+--error ER_UNSUPPORTED_PS
+prepare stmt1 from 'alter view v1 as select 2';
+
## switch the database connection
--error 1295
prepare stmt4 from ' use test ' ;
@@ -424,20 +439,6 @@ create database mysqltest ;
prepare stmt3 from ' drop database mysqltest ';
drop database mysqltest ;
-## grant/revoke + drop user
---error 1295
-prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
-identified by ''looser'' ';
-grant all on test.t1 to drop_user@localhost
-identified by 'looser' ;
---error 1295
-prepare stmt3 from ' revoke all privileges on test.t1 from
-drop_user@localhost ';
-revoke all privileges on test.t1 from drop_user@localhost ;
---error 1295
-prepare stmt3 from ' drop user drop_user@localhost ';
-drop user drop_user@localhost;
-
#### table related commands
## describe
prepare stmt3 from ' describe t2 ';
@@ -457,13 +458,10 @@ into table t1 fields terminated by ''\t'' ';
prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
execute stmt1 ;
##
---error 1295
prepare stmt1 from ' optimize table t1 ' ;
---error 1295
prepare stmt1 from ' analyze table t1 ' ;
--error 1295
prepare stmt1 from ' checksum table t1 ' ;
---error 1295
prepare stmt1 from ' repair table t1 ' ;
--error 1295
prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
@@ -473,9 +471,7 @@ prepare stmt1 from ' handler t1 open ';
## commit/rollback
---error 1295
prepare stmt3 from ' commit ' ;
---error 1295
prepare stmt3 from ' rollback ' ;
@@ -487,10 +483,10 @@ select 'a' || 'b' ;
prepare stmt4 from ' SET sql_mode="" ';
execute stmt4;
# check if the sql_mode is not ansi
-select 'a' || 'b' ;
+select '2' || '3' ;
# Will a switch of the sqlmode affect the execution of already prepared
# statements ?
-prepare stmt5 from ' select ''a'' || ''b'' ' ;
+prepare stmt5 from ' select ''2'' || ''3'' ' ;
execute stmt5;
SET sql_mode=ansi;
execute stmt5;
@@ -576,11 +572,8 @@ execute stmt3 using @arg00;
select m from t3;
drop table t3;
---error 1295
prepare stmt3 from ' create index t2_idx on t2(b) ';
---error 1295
prepare stmt3 from ' drop index t2_idx on t2 ' ;
---error 1295
prepare stmt3 from ' alter table t2 drop primary key ';
## RENAME TABLE
@@ -599,7 +592,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 \\ / $MYSQL_TEST_DIR . /var/master-data/ /
+--replace_result \\ / $MYSQLTEST_VARDIR . /master-data/ / t7.frm t7
--error 1017
execute stmt1 ;
create table t7 (a int) ;
@@ -840,7 +833,7 @@ execute stmt1 ;
--disable_metadata
--horizontal_results
-drop table t5 ;
+drop table t1, t5, t9;
##### RULES OF THUMB TO PRESERVE THE SYSTEMATICS OF THE PS TEST CASES #####
#
diff --git a/mysql-test/t/ps_4heap.test b/mysql-test/t/ps_4heap.test
index 9538224bb95..f16d4599a74 100644
--- a/mysql-test/t/ps_4heap.test
+++ b/mysql-test/t/ps_4heap.test
@@ -31,11 +31,11 @@ eval create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
- c13 date, c14 datetime, c15 timestamp(14), c16 time,
- c17 year, c18 bit, c19 bool, c20 char,
- c21 char(10), c22 varchar(30), c23 char(100), c24 char(100),
- c25 char(100), c26 char(100), c27 char(100), c28 char(100),
- c29 char(100), c30 char(100), c31 enum('one', 'two', 'three'),
+ c13 date, c14 datetime, c15 timestamp, c16 time,
+ c17 year, c18 tinyint, c19 bool, c20 char,
+ c21 char(10), c22 varchar(30), c23 varchar(100), c24 varchar(100),
+ c25 varchar(100), c26 varchar(100), c27 varchar(100), c28 varchar(100),
+ c29 varchar(100), c30 varchar(100), c31 enum('one', 'two', 'three'),
c32 set('monday', 'tuesday', 'wednesday'),
primary key(c1)
) engine = $type ;
diff --git a/mysql-test/t/ps_5merge.test b/mysql-test/t/ps_5merge.test
index 3f4468d569f..e6ce9bf42d3 100644
--- a/mysql-test/t/ps_5merge.test
+++ b/mysql-test/t/ps_5merge.test
@@ -31,8 +31,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
- c13 date, c14 datetime, c15 timestamp(14), c16 time,
- c17 year, c18 bit, c19 bool, c20 char,
+ c13 date, c14 datetime, c15 timestamp, c16 time,
+ c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
@@ -62,8 +62,8 @@ create table t9
c1 tinyint, c2 smallint, c3 mediumint, c4 int,
c5 integer, c6 bigint, c7 float, c8 double,
c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
- c13 date, c14 datetime, c15 timestamp(14), c16 time,
- c17 year, c18 bit, c19 bool, c20 char,
+ c13 date, c14 datetime, c15 timestamp, c16 time,
+ c17 year, c18 tinyint, c19 bool, c20 char,
c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
diff --git a/mysql-test/t/ps_grant.test b/mysql-test/t/ps_grant.test
index afd543caacc..22ac8675328 100644
--- a/mysql-test/t/ps_grant.test
+++ b/mysql-test/t/ps_grant.test
@@ -113,3 +113,19 @@ show grants for second_user@localhost ;
drop database mysqltest;
# End of 4.1 tests
+
+#
+# grant/revoke + drop user
+#
+--error 1295
+prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
+identified by ''looser'' ';
+grant all on test.t1 to drop_user@localhost
+identified by 'looser' ;
+--error 1295
+prepare stmt3 from ' revoke all privileges on test.t1 from
+drop_user@localhost ';
+revoke all privileges on test.t1 from drop_user@localhost ;
+--error 1295
+prepare stmt3 from ' drop user drop_user@localhost ';
+drop user drop_user@localhost;
diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test
index d447df9187b..44b63df9739 100644
--- a/mysql-test/t/query_cache.test
+++ b/mysql-test/t/query_cache.test
@@ -89,7 +89,11 @@ show status like "Qcache_queries_in_cache";
select sql_cache * from t1 union select * from t1;
set query_cache_type=2;
select sql_cache * from t1 union select * from t1;
+
+# all sql_cache statements, except for the first select, are ignored.
select * from t1 union select sql_cache * from t1;
+select * from t1 where a IN (select sql_cache a from t1);
+select * from t1 where a IN (select a from t1 union select sql_cache a from t1);
show status like "Qcache_hits";
show status like "Qcache_queries_in_cache";
set query_cache_type=on;
@@ -102,6 +106,15 @@ show status like "Qcache_queries_in_cache";
# SELECT SQL_NO_CACHE
#
select sql_no_cache * from t1;
+# sql_no_cache can occur in any nested select to turn on cacheing for the whole
+# expression and it will always override a sql_cache statement.
+select * from t1 union select sql_no_cache * from t1;
+select * from t1 where a IN (select sql_no_cache a from t1);
+select * from t1 where a IN (select a from t1 union select sql_no_cache a from t1);
+select sql_cache sql_no_cache * from t1;
+select sql_cache * from t1 union select sql_no_cache * from t1;
+select sql_cache * from t1 where a IN (select sql_no_cache a from t1);
+select sql_cache * from t1 where a IN (select a from t1 union select sql_no_cache a from t1);
show status like "Qcache_queries_in_cache";
drop table t1;
#
@@ -405,8 +418,8 @@ select * from t1 where id=2;
create table t1 (word char(20) not null);
select * from t1;
show status like "Qcache_queries_in_cache";
---replace_result $MYSQL_TEST_DIR TEST_DIR
-eval load data infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval load data infile '$MYSQLTEST_VARDIR/std_data_ln/words.dat' into table t1;
show status like "Qcache_queries_in_cache";
select count(*) from t1;
drop table t1;
@@ -554,9 +567,8 @@ set character_set_results=cp1251;
SELECT a,'Â','â'='Â' FROM t1;
show status like "Qcache_hits";
show status like "Qcache_queries_in_cache";
-#
-# Keep things tidy
-#
+SET NAMES default;
+
DROP TABLE t1;
#
@@ -576,7 +588,6 @@ DROP TABLE t1;
set character_set_results=null;
select @@character_set_results;
set character_set_results=default;
-
#
# query cache and environment variables
#
@@ -611,7 +622,36 @@ select group_concat(a) FROM t1 group by b;
set group_concat_max_len=default;
drop table t1;
+# comments before command
+#
+create table t1 (a int);
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+/**/ select * from t1;
+/**/ select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+#
+# Keep things tidy
+#
+DROP TABLE t1;
+SET GLOBAL query_cache_size=0;
+
+#
+# Information schema & query cache test
+#
+SET SESSION query_cache_type = 2;
+create table t1(a int);
+select table_name from information_schema.tables
+where table_schema="test";
+drop table t1;
+select table_name from information_schema.tables
+where table_schema="test";
# Bug #8480: REPAIR TABLE needs to flush the table from the query cache
+SET SESSION query_cache_type = 1;
set global query_cache_size=1024*1024;
flush query cache;
create table t1 ( a int );
@@ -623,9 +663,10 @@ repair table t1;
show status like 'qcache_queries_in_cache';
drop table t1;
+#
# Bug #9549: Make sure cached queries that span more than one cache block
# are handled properly in the embedded server.
-
+#
# We just want a small query cache, so we can fragment it easily
set GLOBAL query_cache_size=64*1024;
# This actually gives us a usable cache size of about 48K
@@ -667,6 +708,8 @@ select a from t1;
flush query cache;
drop table t1, t2;
+set GLOBAL query_cache_size=1355776;
+
#
# Query with warning prohibited to query cache (BUG#9414)
@@ -726,11 +769,152 @@ show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
drop table t1;
+# SP cursors and selects with query cache (BUG#9715)
+#
+create table t1 (a int);
+insert into t1 values (1),(2);
+delimiter //;
+CREATE PROCEDURE `p1`()
+begin
+Declare c1 cursor for select a from t1;
+open c1;
+select * from t1;
+end//
+call p1()//
+drop procedure p1;
+
+create function f1() returns int
+begin
+Declare var1 int;
+select max(a) from t1 into var1;
+return var1;
+end//
+create procedure `p1`()
+begin
+ select a, f1() from t1;
+end//
+call p1()//
+drop procedure p1//
+drop function f1//
+
+drop table t1//
+delimiter ;//
+
+#
+# query in QC from normal execution and SP (BUG#6897)
+# improved to also test BUG#3583 and BUG#12990
+#
+flush query cache;
+reset query cache;
+flush status;
+delimiter //;
+create table t1 (s1 int)//
+create procedure f1 () begin
+select sql_cache * from t1;
+select sql_cache * from t1;
+select sql_cache * from t1;
+end;//
+create procedure f2 () begin
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+end;//
+create procedure f3 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+end;//
+create procedure f4 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1 where s1=1;
+end;//
+delimiter ;//
+call f1();
+call f1();
+call f1();
+select sql_cache * from t1;
+insert into t1 values (1);
+select sql_cache * from t1;
+call f1();
+call f1();
+select sql_cache * from t1;
+flush query cache;
+reset query cache;
+flush status;
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+call f1();
+call f2();
+call f3();
+call f4();
+call f4();
+call f3();
+call f2();
+select sql_cache * from t1 where s1=1;
+insert into t1 values (2);
+call f1();
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+call f1();
+call f3();
+call f3();
+call f1();
+
+drop procedure f1;
+drop procedure f2;
+drop procedure f3;
+drop procedure f4;
+drop table t1;
set GLOBAL query_cache_size=0;
+# End of 4.1 tests
+
+#
+# Bug #10303: problem with last_query_cost
+#
+
+SET GLOBAL query_cache_size=102400;
+create table t1(a int);
+insert into t1 values(0), (1), (4), (5);
+select * from t1 where a > 3;
+select * from t1 where a > 3;
+show status like 'last_query_cost';
+drop table t1;
+SET GLOBAL query_cache_size=0;
+
+#
+# Bug #20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
+#
+set global query_cache_size=1024*1024;
+flush status;
+create table t1 (a int);
+insert into t1 (a) values (1), (2), (3);
+select * from t1;
+show status like 'Qcache_hits';
+select * from t1;
+show status like 'Qcache_hits';
+create table t2 like t1;
+select * from t1;
+show status like 'Qcache_hits';
+insert into t2 select * from t1;
+select * from t1;
+show status like 'Qcache_hits';
+drop table t1, t2;
+
+create table t1(c1 int);
+create table t2(c1 int);
+create table t3(c1 int);
+create view v1 as select t3.c1 as c1 from t3,t2 where t3.c1 = t2.c1;
+start transaction;
+insert into t1(c1) select c1 from v1;
+drop table t1, t2, t3;
+drop view v1;
+set global query_cache_size=0;
+
#
-# Bug #27792 query cache returns wrong result, with certain system variables
+# Query cache and changes to system variables
#
create table t1 (a int);
@@ -745,10 +929,22 @@ reset query cache;
set LOCAL default_week_format = 0;
select week('2007-01-04');
select week('2007-01-04') from t1;
+select extract(WEEK FROM '2007-01-04') from t1;
set LOCAL default_week_format = 2;
select week('2007-01-04');
select week('2007-01-04') from t1;
+select extract(WEEK FROM '2007-01-04') from t1;
+
+# div_precision_increment
+reset query cache;
+set LOCAL div_precision_increment=2;
+select 1/7;
+select 1/7 from t1;
+
+set LOCAL div_precision_increment=4;
+select 1/7;
+select 1/7 from t1;
drop table t1;
@@ -769,10 +965,295 @@ set GLOBAL ft_boolean_syntax='- +><()~*:""&|';
select *, MATCH(a,b) AGAINST("+called +collections" IN BOOLEAN MODE) as x from t1;
+# If in the future we need to cache queries with functions
+# be sure not to cause dead lock if the query cache is flushed
+# while inserting a query in the query cache.
+delimiter |;
+create function change_global() returns integer
+begin
+ set global ft_boolean_syntax='+ -><()~*:""&|';
+ return 1;
+end|
+delimiter ;|
+select *, change_global() from t1;
+drop function change_global;
+
+drop table t1;
+
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;
+set GLOBAL query_cache_size= default;
-# End of 4.1 tests
+#
+# Bug #28897 UUID() returns non-unique values when query cache is enabled
+#
+
+set GLOBAL query_cache_size=1000000;
+
+create table t1 (a char);
+insert into t1 values ('c');
+
+let $q1= `select UUID(), a from t1`;
+let $q2= `select UUID(), a from t1`;
+
+# disabling the logging of the query because the UUIDs are different each run.
+--disable_query_log
+eval select a from t1 where "$q1" = "$q2";
+--enable_query_log
+
+drop table t1;
+
+set GLOBAL query_cache_size= default;
+
+#
+# Bug #29053 SQL_CACHE in UNION causes non-deterministic functions to be cached
+#
+
+set GLOBAL query_cache_size=1000000;
+
+create table t1 (a char);
+insert into t1 values ('c');
+
+let $q1= `select RAND() from t1 union select sql_cache 1 from t1;`;
+let $q2= `select RAND() from t1 union select sql_cache 1 from t1;`;
+
+# disabling the logging of the query because the times are different each run.
+--disable_query_log
+eval select a from t1 where "$q1" = "$q2";
+--enable_query_log
+
+drop table t1;
+
+set GLOBAL query_cache_size= default;
+
+#
+# Bug#29856: Insufficient buffer space led to a server crash.
+#
+SET GLOBAL query_cache_size=64*1024*1024;
+CREATE TABLE t1 (id INT);
+DELIMITER |;
+CREATE PROCEDURE proc29856(IN theUPC TEXT)
+BEGIN
+ SET @stmtStr := '';
+ SELECT CONCAT("SELECT id FROM t1 WHERE id IN (",theUPC,")") INTO @stmtStr;
+ PREPARE stmt FROM @stmtStr;
+ EXECUTE stmt;
+END |
+DELIMITER ;|
+CALL proc29856('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
+25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
+51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,
+77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,
+102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,
+121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,
+140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,
+159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,
+178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,
+197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,
+216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,
+235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,
+254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,
+273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,
+292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,
+311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,
+330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,
+349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,
+368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,
+387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,
+406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,
+425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,
+444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,
+463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,
+482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,
+501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,
+520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,
+539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,
+558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,
+577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,
+596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,
+615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,
+634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,
+653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,
+672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,
+691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,
+710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,
+729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,
+748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,
+767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,
+786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,
+805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,
+824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,
+843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,
+862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,
+881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,
+900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,
+919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,
+938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,
+957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,
+976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,
+995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,
+1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,
+1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,
+1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,
+1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,
+1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,
+1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,
+1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,
+1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,
+1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,
+1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,
+1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,
+1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,
+1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,
+1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,
+1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,
+1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,
+1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,
+1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,
+1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,
+1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,
+1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,
+1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,
+1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,
+1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,
+1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,
+1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,
+1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,
+1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,
+1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,
+1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,
+1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,
+1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,
+1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,
+1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,
+1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,
+1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,
+1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,
+1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,
+1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,
+1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,
+1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,
+1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,
+1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,
+1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,
+1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,
+1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,
+1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,
+1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,
+1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,
+1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,
+1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,
+1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,
+1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,
+1806,1807,1808,1809,1810,1811');
+DROP PROCEDURE proc29856;
+DROP TABLE t1;
+SET GLOBAL query_cache_size= default;
+
+#
+# Bug #28249 Query Cache returns wrong result with concurrent insert / certain lock
+#
+--echo Bug#28249 Query Cache returns wrong result with concurrent insert/ certain lock
+connect (user1,localhost,root,,test,,);
+connect (user2,localhost,root,,test,,);
+connect (user3,localhost,root,,test,,);
+
+connection user1;
+
+set GLOBAL query_cache_type=1;
+set GLOBAL query_cache_limit=10000;
+set GLOBAL query_cache_min_res_unit=0;
+set GLOBAL query_cache_size= 100000;
+
+flush tables;
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+create table t1 (a int);
+create table t2 (a int);
+insert into t1 values (1),(2),(3);
+connection user2;
+--echo Locking table T2 with a write lock.
+lock table t2 write;
+
+connection user1;
+--echo Select blocked by write lock.
+--send select *, (select count(*) from t2) from t1;
+--echo Sleeing is ok, because selecting should be done very fast.
+sleep 5;
+
+connection user3;
+--echo Inserting into table T1.
+insert into t1 values (4);
+
+connection user2;
+--echo Unlocking the tables.
+unlock tables;
+
+connection user1;
+--echo Collecting result from previously blocked select.
+#
+# Since the lock ordering rule in thr_multi_lock depends on
+# pointer values, from execution to execution we might have
+# different lock order, and therefore, sometimes lock t1 and block
+# on t2, and sometimes block on t2 right away. In the second case,
+# the following insert succeeds, and only then this select can
+# proceed, and we actually test nothing, as the very first select
+# returns 4 rows right away.
+# It's fine to have a test case that covers the problematic area
+# at least once in a while.
+# We, however, need to disable the result log here to make the
+# test repeatable.
+--disable_result_log
+--reap
+--enable_result_log
+--echo Next select should contain 4 rows, as the insert is long finished.
+select *, (select count(*) from t2) from t1;
+reset query cache;
+select *, (select count(*) from t2) from t1;
+
+drop table t1,t2;
+
+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;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/query_cache_notembedded.test b/mysql-test/t/query_cache_notembedded.test
index 20baf3450e2..a4f4144d9c6 100644
--- a/mysql-test/t/query_cache_notembedded.test
+++ b/mysql-test/t/query_cache_notembedded.test
@@ -97,4 +97,128 @@ connection root;
SELECT * FROM t1;
drop table t1;
+#
+# query in QC from normal execution and SP (BUG#6897)
+# improved to also test BUG#3583 and BUG#12990
+#
+flush query cache;
+reset query cache;
+flush status;
+delimiter //;
+create table t1 (s1 int)//
+create procedure f1 () begin
+select sql_cache * from t1;
+select sql_cache * from t1;
+select sql_cache * from t1;
+end;//
+create procedure f2 () begin
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+end;//
+create procedure f3 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+end;//
+create procedure f4 () begin
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1 where s1=1;
+end;//
+delimiter ;//
+call f1();
+--replace_result 1 3
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+call f1();
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+call f1();
+select sql_cache * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+insert into t1 values (1);
+select sql_cache * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+call f1();
+call f1();
+select sql_cache * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+flush query cache;
+reset query cache;
+flush status;
+select sql_cache * from t1;
+select sql_cache * from t1 where s1=1;
+call f1();
+call f2();
+call f3();
+call f4();
+call f4();
+call f3();
+call f2();
+select sql_cache * from t1 where s1=1;
+insert into t1 values (2);
+call f1();
+select sql_cache * from t1 where s1=1;
+select sql_cache * from t1;
+call f1();
+call f3();
+call f3();
+call f1();
+
+drop procedure f1;
+drop procedure f2;
+drop procedure f3;
+drop procedure f4;
+drop table t1;
+
+#
+# bug#14767: INSERT in SF + concurrent SELECT with query cache
+#
+reset query cache;
+--disable_warnings
+drop function if exists f1;
+--enable_warnings
+create table t1 (id int);
+delimiter |;
+create function f1 ()
+ returns int
+begin
+ declare i_var int;
+ set i_var = sleep(3);
+ insert into t1 values(3);
+ set i_var = sleep(3);
+ return 0;
+end;|
+delimiter ;|
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+connection con1;
+send select f1();
+connection con2;
+select sleep(4);
+select * from t1;
+connection con1;
+reap;
+connection con2;
+# This gives wrong result i.e. 't' table seems to be empty
+select * from t1;
+reset query cache;
+select * from t1;
+drop table t1;
+drop function f1;
+disconnect con1;
+disconnect con2;
+connection default;
+
set GLOBAL query_cache_size=0;
diff --git a/mysql-test/t/query_cache_with_views.test b/mysql-test/t/query_cache_with_views.test
new file mode 100644
index 00000000000..d4ebe45b7ac
--- /dev/null
+++ b/mysql-test/t/query_cache_with_views.test
@@ -0,0 +1,130 @@
+-- source include/have_query_cache.inc
+#
+# QUERY CACHE options for VIEWs
+#
+--disable_warnings
+drop table if exists t1,t2,v1,v2,v3;
+drop view if exists t1,t2,v1,v2,v3;
+--enable_warnings
+
+set GLOBAL query_cache_size=1355776;
+flush status;
+create table t1 (a int, b int);
+
+# queries with following views should not be in query cache
+create view v1 (c,d) as select sql_no_cache a,b from t1;
+create view v2 (c,d) as select a+rand(),b from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from v1;
+select * from v2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from v1;
+select * from v2;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+
+drop view v1,v2;
+
+# SQL_CACHE option
+set query_cache_type=demand;
+flush status;
+# query with view will be cached, but direct acess to table will not
+create view v1 (c,d) as select sql_cache a,b from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from v1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from v1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+drop view v1;
+set query_cache_type=default;
+
+drop table t1;
+
+#
+# invalidation of view
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+create view v1 as select a from t1 where a > 1;
+select * from v1;
+alter view v1 as select a from t1 where a > 2;
+select * from v1;
+drop view v1;
+-- error 1146
+select * from v1;
+drop table t1;
+
+#
+# join view with QC
+#
+create table t1 (a int, primary key (a), b int);
+create table t2 (a int, primary key (a), b int);
+insert into t2 values (1000, 2000);
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2;
+select * from v3;
+drop view v3;
+drop table t1, t2;
+
+#
+# Bug #13424 locking view with query cache enabled crashes server
+#
+create table t1(f1 int);
+insert into t1 values(1),(2),(3);
+create view v1 as select * from t1;
+set query_cache_wlock_invalidate=1;
+lock tables v1 read /*!32311 local */;
+unlock tables;
+set query_cache_wlock_invalidate=default;
+drop view v1;
+drop table t1;
+
+#
+# BUG#15119: returning temptable view from the query cache.
+#
+flush status;
+create table t1 (a int, b int);
+create algorithm=temptable view v1 as select * from t1;
+select * from v1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from v1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+insert into t1 values (1,1);
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+select * from v1;
+select * from v1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+drop view v1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+drop table t1;
+
+# Reset default environment.
+set GLOBAL query_cache_size=default;
diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test
index 0dbfde92bd5..b8d4b91f03d 100644
--- a/mysql-test/t/range.test
+++ b/mysql-test/t/range.test
@@ -3,7 +3,7 @@
#
--disable_warnings
-drop table if exists t1, t2;
+drop table if exists t1, t2, t3;
--enable_warnings
CREATE TABLE t1 (
@@ -181,8 +181,8 @@ create table t1 (x int, y int, index(x), index(y));
insert into t1 (x) values (1),(2),(3),(4),(5),(6),(7),(8),(9);
update t1 set y=x;
# between with only one end fixed
-explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 7 and t1.y+0;
-explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 7 and t2.x <= t1.y+0;
+explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
+explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
# between with both expressions on both ends
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
@@ -195,13 +195,15 @@ explain select count(*) from t1 where x in (1,2);
drop table t1;
#
-# bug #1172
+# bug #1172: "Force index" option caused server crash
#
CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1));
-INSERT INTO t1 VALUES (0),(0),(1),(1);
+INSERT INTO t1 VALUES (0),(0),(0),(0),(0),(1),(1);
CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
+explain select * from t1 force index(i1), t2 force index(j1) where
+ (t1.key1 <t2.keya + 1) and t2.keya=3;
DROP TABLE t1,t2;
#
@@ -376,8 +378,12 @@ insert into t2(id, uid, name) select id, uid, name from t1;
select count(*) from t1;
select count(*) from t2;
+analyze table t1,t2;
+
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
+explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid > 0;
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid != 0;
+explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid != 0;
select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
select * from t1, t2 where t1.uid=t2.uid AND t1.uid != 0;
@@ -410,8 +416,8 @@ select count(*) from t2 where x < -16;
select count(*) from t2 where x = -16;
select count(*) from t2 where x > -16;
select count(*) from t2 where x = 18446744073709551601;
+drop table t1,t2;
-drop table t1;
--disable_warnings
create table t1 (x bigint unsigned not null primary key) engine=innodb;
--enable_warnings
@@ -489,7 +495,6 @@ drop table t1;
create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
-DROP TABLE IF EXISTS t2;
CREATE TABLE t2 (
pk1 int(11) NOT NULL,
pk2 int(11) NOT NULL,
@@ -707,3 +712,227 @@ select * from t1 where
"abcdefgC", "12345678C", "qwertyuiC", "asddfgC");
drop table t1;
--echo End of 4.1 tests
+
+#
+# Test for optimization request #10561: to use keys for
+# NOT IN (c1,...,cn) and NOT BETWEEN c1 AND c2
+#
+
+CREATE TABLE t1 (
+ id int(11) NOT NULL auto_increment,
+ status varchar(20),
+ PRIMARY KEY (id),
+ KEY (status)
+);
+
+INSERT INTO t1 VALUES
+(1,'B'), (2,'B'), (3,'B'), (4,'B'), (5,'B'), (6,'B'),
+(7,'B'), (8,'B'), (9,'B'), (10,'B'), (11,'B'), (12,'B'),
+(13,'B'), (14,'B'), (15,'B'), (16,'B'), (17,'B'), (18,'B'),
+(19,'B'), (20,'B'), (21,'B'), (22,'B'), (23,'B'), (24,'B'),
+(25,'A'), (26,'A'), (27,'A'), (28,'A'), (29,'A'), (30,'A'),
+(31,'A'), (32,'A'), (33,'A'), (34,'A'), (35,'A'), (36,'A'),
+(37,'A'), (38,'A'), (39,'A'), (40,'A'), (41,'A'), (42,'A'),
+(43,'A'), (44,'A'), (45,'A'), (46,'A'), (47,'A'), (48,'A'),
+(49,'A'), (50,'A'), (51,'A'), (52,'A'), (53,'C'), (54,'C'),
+(55,'C'), (56,'C'), (57,'C'), (58,'C'), (59,'C'), (60,'C');
+
+EXPLAIN SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
+EXPLAIN SELECT * FROM t1 WHERE status NOT IN ('A','B');
+
+SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
+SELECT * FROM t1 WHERE status NOT IN ('A','B');
+
+EXPLAIN SELECT status FROM t1 WHERE status <> 'A' AND status <> 'B';
+EXPLAIN SELECT status FROM t1 WHERE status NOT IN ('A','B');
+
+EXPLAIN SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
+EXPLAIN SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
+
+SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
+SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
+
+DROP TABLE t1;
+
+#
+# Test for bug #10031: range to be used over a view
+#
+
+CREATE TABLE t1 (a int, b int, primary key(a,b));
+
+INSERT INTO t1 VALUES
+ (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3),(4,1),(4,2),(4,3);
+
+CREATE VIEW v1 as SELECT a,b FROM t1 WHERE b=3;
+
+EXPLAIN SELECT a,b FROM t1 WHERE a < 2 and b=3;
+EXPLAIN SELECT a,b FROM v1 WHERE a < 2 and b=3;
+
+EXPLAIN SELECT a,b FROM t1 WHERE a < 2;
+EXPLAIN SELECT a,b FROM v1 WHERE a < 2;
+
+SELECT a,b FROM t1 WHERE a < 2 and b=3;
+SELECT a,b FROM v1 WHERE a < 2 and b=3;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #11853: DELETE statement with a NOT (LIKE/<=>) where condition
+# for an indexed attribute
+#
+
+CREATE TABLE t1 (name varchar(15) NOT NULL, KEY idx(name));
+INSERT INTO t1 VALUES ('Betty'), ('Anna');
+
+SELECT * FROM t1;
+DELETE FROM t1 WHERE name NOT LIKE 'A%a';
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+CREATE TABLE t1 (a int, KEY idx(a));
+INSERT INTO t1 VALUES (NULL), (1), (2), (3);
+
+SELECT * FROM t1;
+DELETE FROM t1 WHERE NOT(a <=> 2);
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+#
+# BUG#13317: range optimization doesn't work for IN over VIEW.
+#
+create table t1 (a int, b int, primary key(a,b));
+create view v1 as select a, b from t1;
+
+INSERT INTO `t1` VALUES
+(0,0),(1,0),(2,0),(3,0),(4,0),(5,1),(6,1),(7,1),(8,1),(9,1),(10,2),(11,2),(12,2)
+,(13,2),(14,2),(15,3),(16,3),(17,3),(18,3),(19,3);
+
+--replace_column 9 #
+explain select * from t1 where a in (3,4) and b in (1,2,3);
+--replace_column 9 #
+explain select * from v1 where a in (3,4) and b in (1,2,3);
+--replace_column 9 #
+explain select * from t1 where a between 3 and 4 and b between 1 and 2;
+--replace_column 9 #
+explain select * from v1 where a between 3 and 4 and b between 1 and 2;
+
+drop view v1;
+drop table t1;
+
+# BUG#13455:
+create table t3 (a int);
+insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+
+create table t1 (a varchar(10), filler char(200), key(a)) charset=binary;
+insert into t1 values ('a','');
+insert into t1 values ('a ','');
+insert into t1 values ('a ', '');
+insert into t1 select concat('a', 1000 + A.a + 10 * (B.a + 10 * C.a)), ''
+ from t3 A, t3 B, t3 C;
+
+create table t2 (a varchar(10), filler char(200), key(a));
+insert into t2 select * from t1;
+
+--replace_column 9 #
+explain select * from t1 where a between 'a' and 'a ';
+--replace_column 9 #
+explain select * from t1 where a = 'a' or a='a ';
+
+--replace_column 9 #
+explain select * from t2 where a between 'a' and 'a ';
+--replace_column 9 #
+explain select * from t2 where a = 'a' or a='a ';
+
+update t1 set a='b' where a<>'a';
+--replace_column 9 #
+explain select * from t1 where a not between 'b' and 'b';
+select a, hex(filler) from t1 where a not between 'b' and 'b';
+
+drop table t1,t2,t3;
+
+#
+# BUG#21282
+#
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, key(a));
+insert into t2 select 2*(A.a + 10*(B.a + 10*C.a)) from t1 A, t1 B, t1 C;
+
+set @a="select * from t2 force index (a) where a NOT IN(0";
+select count(*) from (select @a:=concat(@a, ',', a) from t2 ) Z;
+set @a=concat(@a, ')');
+
+insert into t2 values (11),(13),(15);
+
+set @b= concat("explain ", @a);
+
+prepare stmt1 from @b;
+execute stmt1;
+
+prepare stmt1 from @a;
+execute stmt1;
+
+drop table t1, t2;
+
+#
+# Bug #18165: range access for BETWEEN with a constant for the first argument
+#
+
+CREATE TABLE t1 (
+ id int NOT NULL DEFAULT '0',
+ b int NOT NULL DEFAULT '0',
+ c int NOT NULL DEFAULT '0',
+ INDEX idx1(b,c), INDEX idx2(c));
+
+INSERT INTO t1(id) VALUES (1), (2), (3), (4), (5), (6), (7), (8);
+
+INSERT INTO t1(b,c) VALUES (3,4), (3,4);
+
+SELECT * FROM t1 WHERE b<=3 AND 3<=c;
+SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
+
+EXPLAIN SELECT * FROM t1 WHERE b<=3 AND 3<=c;
+EXPLAIN SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
+
+SELECT * FROM t1 WHERE 0 < b OR 0 > c;
+SELECT * FROM t1 WHERE 0 NOT BETWEEN b AND c;
+
+EXPLAIN SELECT * FROM t1 WHERE 0 < b OR 0 > c;
+EXPLAIN SELECT * FROM t1 WHERE 0 NOT BETWEEN b AND c;
+
+DROP TABLE t1;
+
+#
+# Bug #16249: different results for a range with an without index
+# when a range condition use an invalid datetime constant
+#
+
+CREATE TABLE t1 (
+ item char(20) NOT NULL default '',
+ started datetime NOT NULL default '0000-00-00 00:00:00',
+ price decimal(16,3) NOT NULL default '0.000',
+ PRIMARY KEY (item,started)
+) ENGINE=MyISAM;
+
+INSERT INTO t1 VALUES
+('A1','2005-11-01 08:00:00',1000),
+('A1','2005-11-15 00:00:00',2000),
+('A1','2005-12-12 08:00:00',3000),
+('A2','2005-12-01 08:00:00',1000);
+
+EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-02 00:00:00';
+
+DROP INDEX `PRIMARY` ON t1;
+
+EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
+SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-02 00:00:00';
+
+DROP TABLE t1;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/read_only.test b/mysql-test/t/read_only.test
new file mode 100644
index 00000000000..8e14b310f4c
--- /dev/null
+++ b/mysql-test/t/read_only.test
@@ -0,0 +1,120 @@
+# Test of the READ_ONLY global variable:
+# check that it blocks updates unless they are only on temporary tables.
+
+# should work with embedded server after mysqltest is fixed
+-- source include/not_embedded.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2,t3;
+--enable_warnings
+
+# READ_ONLY does nothing to SUPER users
+# so we use a non-SUPER one:
+
+grant CREATE, SELECT, DROP on *.* to test@localhost;
+
+connect (con1,localhost,test,,test);
+
+connection default;
+
+set global read_only=0;
+
+connection con1;
+
+create table t1 (a int);
+
+insert into t1 values(1);
+
+create table t2 select * from t1;
+
+connection default;
+
+set global read_only=1;
+
+# We check that SUPER can:
+
+create table t3 (a int);
+drop table t3;
+
+connection con1;
+
+select @@global.read_only;
+
+--error 1290
+create table t3 (a int);
+
+--error 1290
+insert into t1 values(1);
+
+# if a statement, after parse stage, looks like it will update a
+# non-temp table, it will be rejected, even if at execution it would
+# have turned out that 0 rows would be updated
+--error 1290
+update t1 set a=1 where 1=0;
+
+# multi-update is special (see sql_parse.cc) so we test it
+--error 1290
+update t1,t2 set t1.a=t2.a+1 where t1.a=t2.a;
+
+# check multi-delete to be sure
+--error 1290
+delete t1,t2 from t1,t2 where t1.a=t2.a;
+
+# With temp tables updates should be accepted:
+
+create temporary table t3 (a int);
+
+create temporary table t4 (a int) select * from t3;
+
+insert into t3 values(1);
+
+insert into t4 select * from t3;
+
+# a non-temp table updated:
+--error 1290
+update t1,t3 set t1.a=t3.a+1 where t1.a=t3.a;
+
+# no non-temp table updated (just swapped):
+update t1,t3 set t3.a=t1.a+1 where t1.a=t3.a;
+
+update t4,t3 set t4.a=t3.a+1 where t4.a=t3.a;
+
+--error 1290
+delete t1 from t1,t3 where t1.a=t3.a;
+
+delete t3 from t1,t3 where t1.a=t3.a;
+
+delete t4 from t3,t4 where t4.a=t3.a;
+
+# and even homonymous ones
+
+create temporary table t1 (a int);
+
+insert into t1 values(1);
+
+update t1,t3 set t1.a=t3.a+1 where t1.a=t3.a;
+
+delete t1 from t1,t3 where t1.a=t3.a;
+
+drop table t1;
+
+--error 1290
+insert into t1 values(1);
+
+#
+# BUG #22077 "DROP TEMPORARY TABLE fails with wrong error if read_only is set"
+#
+# check if DROP TEMPORARY on a non-existing temporary table returns the right
+# error
+
+--error ER_BAD_TABLE_ERROR
+drop temporary table ttt;
+
+# check if DROP TEMPORARY TABLE IF EXISTS produces a warning with read_only set
+drop temporary table if exists ttt;
+
+connection default;
+drop table t1,t2;
+drop user test@localhost;
+
+set global read_only=0;
diff --git a/mysql-test/t/rename.test b/mysql-test/t/rename.test
index cd1cc1e66b8..fce37d8466d 100644
--- a/mysql-test/t/rename.test
+++ b/mysql-test/t/rename.test
@@ -56,6 +56,9 @@ send RENAME TABLE t1 TO t2, t3 to t4;
connection con2;
show tables;
UNLOCK TABLES;
+connection con1;
+reap;
+connection con2;
# Wait for the the tables to be renamed
# i.e the query below succeds
@@ -70,4 +73,23 @@ disconnect con2;
disconnect con1;
connection default;
+
--echo End of 4.1 tests
+
+
+#
+# Bug#14959: ALTER TABLE isn't able to rename a view
+#
+create table t1(f1 int);
+create view v1 as select * from t1;
+alter table v1 rename to v2;
+--error 1146
+alter table v1 rename to v2;
+rename table v2 to v1;
+--error 1050
+rename table v2 to v1;
+drop view v1;
+drop table t1;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/repair.test b/mysql-test/t/repair.test
index 1e3facdc3c2..9870e1749b3 100644
--- a/mysql-test/t/repair.test
+++ b/mysql-test/t/repair.test
@@ -29,7 +29,7 @@ repair table t1 use_frm;
create table t1 engine=myisam SELECT 1,"table 1";
flush tables;
-system echo 1 > $MYSQL_TEST_DIR/var/master-data/test/t1.MYI ;
+system echo 1 > $MYSQLTEST_VARDIR/master-data/test/t1.MYI ;
repair table t1;
repair table t1 use_frm;
drop table t1;
diff --git a/mysql-test/t/replace.test b/mysql-test/t/replace.test
index 81f7b0089b8..269854fb180 100644
--- a/mysql-test/t/replace.test
+++ b/mysql-test/t/replace.test
@@ -1,7 +1,5 @@
--- source include/have_isam.inc
-
#
-# Test of REPLACE with ISAM and MyISAM and HEAP
+# Test of REPLACE with MyISAM and HEAP
#
--disable_warnings
@@ -12,13 +10,11 @@ CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
benutzer_id int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (gesuchnr,benutzer_id)
-) engine=ISAM;
+);
replace into t1 (gesuchnr,benutzer_id) values (2,1);
replace into t1 (gesuchnr,benutzer_id) values (1,1);
replace into t1 (gesuchnr,benutzer_id) values (1,1);
-alter table t1 engine=myisam;
-replace into t1 (gesuchnr,benutzer_id) values (1,1);
alter table t1 engine=heap;
replace into t1 (gesuchnr,benutzer_id) values (1,1);
drop table t1;
@@ -39,3 +35,13 @@ select * from t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug#19789: REPLACE was allowed for a VIEW with CHECK OPTION enabled.
+#
+CREATE TABLE t1 (f1 INT);
+CREATE VIEW v1 AS SELECT f1 FROM t1 WHERE f1 = 0 WITH CHECK OPTION;
+--error 1369
+REPLACE INTO v1 (f1) VALUES (1);
+DROP TABLE t1;
+DROP VIEW v1;
diff --git a/mysql-test/t/round.test b/mysql-test/t/round.test
new file mode 100644
index 00000000000..d018fa7e34e
--- /dev/null
+++ b/mysql-test/t/round.test
@@ -0,0 +1,145 @@
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (sint8 tinyint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('127.4');
+INSERT INTO t1 VALUES ('127.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-127.4');
+INSERT INTO t1 VALUES ('-127.5');
+INSERT INTO t1 VALUES ('-128.4');
+INSERT INTO t1 VALUES ('-128.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (uint8 tinyint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('127.4');
+INSERT INTO t1 VALUES ('127.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('255.4');
+INSERT INTO t1 VALUES ('255.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+
+CREATE TABLE t1 (sint16 smallint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('32767.4');
+INSERT INTO t1 VALUES ('32767.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-32767.4');
+INSERT INTO t1 VALUES ('-32767.5');
+INSERT INTO t1 VALUES ('-32768.4');
+INSERT INTO t1 VALUES ('-32768.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+
+CREATE TABLE t1 (uint16 smallint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('32767.4');
+INSERT INTO t1 VALUES ('32767.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('65535.4');
+INSERT INTO t1 VALUES ('65535.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (sint24 mediumint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('8388607.4');
+INSERT INTO t1 VALUES ('8388607.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-8388607.4');
+INSERT INTO t1 VALUES ('-8388607.5');
+INSERT INTO t1 VALUES ('-8388608.4');
+INSERT INTO t1 VALUES ('-8388608.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (uint24 mediumint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('8388607.4');
+INSERT INTO t1 VALUES ('8388607.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('16777215.4');
+INSERT INTO t1 VALUES ('16777215.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (sint64 bigint not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('9223372036854775807.4');
+INSERT INTO t1 VALUES ('9223372036854775807.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('-9223372036854775807.4');
+INSERT INTO t1 VALUES ('-9223372036854775807.5');
+INSERT INTO t1 VALUES ('-9223372036854775808.4');
+INSERT INTO t1 VALUES ('-9223372036854775808.5');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (uint64 bigint unsigned not null);
+INSERT INTO t1 VALUES ('0.1');
+INSERT INTO t1 VALUES ('0.5');
+INSERT INTO t1 VALUES ('9223372036854775807.4');
+INSERT INTO t1 VALUES ('9223372036854775807.5');
+INSERT INTO t1 VALUES ('-0.1');
+INSERT INTO t1 VALUES ('-0.5');
+INSERT INTO t1 VALUES ('18446744073709551615.4');
+INSERT INTO t1 VALUES ('18446744073709551615.5');
+INSERT INTO t1 VALUES ('1844674407370955161.0');
+INSERT INTO t1 VALUES ('1844674407370955161.1');
+INSERT INTO t1 VALUES ('1844674407370955161.2');
+INSERT INTO t1 VALUES ('1844674407370955161.3');
+INSERT INTO t1 VALUES ('1844674407370955161.4');
+INSERT INTO t1 VALUES ('1844674407370955161.5');
+INSERT INTO t1 VALUES ('1844674407370955161.0e1');
+INSERT INTO t1 VALUES ('1844674407370955161.1e1');
+INSERT INTO t1 VALUES ('1844674407370955161.2e1');
+INSERT INTO t1 VALUES ('1844674407370955161.3e1');
+INSERT INTO t1 VALUES ('1844674407370955161.4e1');
+INSERT INTO t1 VALUES ('1844674407370955161.5e1');
+INSERT INTO t1 VALUES ('18446744073709551610e-1');
+INSERT INTO t1 VALUES ('18446744073709551611e-1');
+INSERT INTO t1 VALUES ('18446744073709551612e-1');
+INSERT INTO t1 VALUES ('18446744073709551613e-1');
+INSERT INTO t1 VALUES ('18446744073709551614e-1');
+INSERT INTO t1 VALUES ('18446744073709551615e-1');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (str varchar(128), sint64 bigint not null default 0);
+INSERT INTO t1 (str) VALUES ('1.5');
+INSERT INTO t1 (str) VALUES ('1.00005e4');
+INSERT INTO t1 (str) VALUES ('1.0005e3');
+INSERT INTO t1 (str) VALUES ('1.005e2');
+INSERT INTO t1 (str) VALUES ('1.05e1');
+INSERT INTO t1 (str) VALUES ('1.5e0');
+INSERT INTO t1 (str) VALUES ('100005e-1');
+INSERT INTO t1 (str) VALUES ('100050e-2');
+INSERT INTO t1 (str) VALUES ('100500e-3');
+INSERT INTO t1 (str) VALUES ('105000e-4');
+INSERT INTO t1 (str) VALUES ('150000e-5');
+UPDATE t1 SET sint64=str;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+
diff --git a/mysql-test/t/row.test b/mysql-test/t/row.test
index 6f845607d8c..20d044306a6 100644
--- a/mysql-test/t/row.test
+++ b/mysql-test/t/row.test
@@ -8,8 +8,8 @@ select row(10,2,3) IN (row(3,2,3), row(1,2,3), row(1,3,3));
select row(1,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3));
select row(10,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3));
select row('a',1.5,3) IN (row(1,2,3), row('a',1.5,3), row('a','a','a'));
-select row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3));
select row('a',0,3) IN (row(3,2,3), row('a','a','3'), row(1,3,3));
+select row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3));
select row('a',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
select row('b',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
select row('b',1.5,3) IN (row('b',NULL,3), row('a',1.5,3), row(1,3,3));
@@ -154,3 +154,73 @@ SELECT * FROM t1 WHERE (a,b,c) >= (1,2,3);
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Correct NULL handling in row comporison (BUG#12509)
+#
+SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NULL,1) = ROW(2,2,1) as `0`, ROW(1,NULL,1) = ROW(1,2,2) as `0`, ROW(1,NULL,1) = ROW(1,2,1) as `null` ;
+select row(NULL,1)=(2,0);
+
+#
+# Bug #16081: row equalities are to be used for query optimizations
+#
+
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (1,2), (3,2), (3,3);
+
+EXPLAIN SELECT * FROM t1 WHERE a=3 AND b=2;
+EXPLAIN SELECT * FROM t1 WHERE (a,b)=(3,2);
+SELECT * FROM t1 WHERE a=3 and b=2;
+SELECT * FROM t1 WHERE (a,b)=(3,2);
+
+CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c));
+INSERT INTO t2 VALUES
+ (1,1,2), (3,1,3), (1,2,2), (4,4,2),
+ (1,1,1), (3,1,1), (1,2,1);
+
+EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
+EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
+SELECT * FROM t1,t2 WHERE t1.a=t2.a and t1.b=t2.b;
+SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
+
+EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=2;
+EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
+SELECT * FROM t1,t2 WHERE t1.a=1 and t1.b=t2.b;
+SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
+
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
+SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
+
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
+SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
+
+EXPLAIN SELECT * FROM t2 WHERE a=3 AND b=2;
+EXPLAIN SELECT * FROM t2 WHERE (a,b)=(3,2);
+SELECT * FROM t2 WHERE a=3 and b=2;
+SELECT * FROM t2 WHERE (a,b)=(3,2);
+
+EXPLAIN SELECT * FROM t1,t2 WHERE t2.a=t1.a AND t2.b=2 AND t2.c=1;
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
+SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
+
+EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
+SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
+
+DROP TABLE t1,t2;
+
+#
+# Bug #27154: crash (memory corruption) when using row equalities
+#
+
+CREATE TABLE t1(
+ a int, b int, c int, d int, e int, f int, g int, h int,
+ PRIMARY KEY (a,b,c,d,e,f,g)
+);
+INSERT INTO t1 VALUES (1,2,3,4,5,6,7,99);
+
+SELECT h FROM t1 WHERE (a,b,c,d,e,f,g)=(1,2,3,4,5,6,7);
+
+SET @x:= (SELECT h FROM t1 WHERE (a,b,c,d,e,f,g)=(1,2,3,4,5,6,7));
+SELECT @x;
+
+DROP TABLE t1;
diff --git a/mysql-test/t/rowid_order_bdb.test b/mysql-test/t/rowid_order_bdb.test
new file mode 100644
index 00000000000..ef133054c35
--- /dev/null
+++ b/mysql-test/t/rowid_order_bdb.test
@@ -0,0 +1,108 @@
+#
+# Test for rowid ordering (and comparison) functions.
+# do index_merge select for tables with PK of various types.
+#
+--disable_warnings
+drop table if exists t1, t2, t3,t4;
+--enable_warnings
+
+-- source include/have_bdb.inc
+
+# Signed number as rowid
+create table t1 (
+ pk1 int not NULL,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=bdb;
+insert into t1 values (-5, 1, 1),
+ (-100, 1, 1),
+ (3, 1, 1),
+ (0, 1, 1),
+ (10, 1, 1);
+explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Unsigned numbers as rowids
+create table t1 (
+ pk1 int unsigned not NULL,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=bdb;
+insert into t1 values (0, 1, 1),
+ (0xFFFFFFFF, 1, 1),
+ (0xFFFFFFFE, 1, 1),
+ (1, 1, 1),
+ (2, 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Case-insensitive char(N)
+create table t1 (
+ pk1 char(4) not NULL,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=bdb collate latin2_general_ci;
+insert into t1 values ('a1', 1, 1),
+ ('b2', 1, 1),
+ ('A3', 1, 1),
+ ('B4', 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Multi-part PK
+create table t1 (
+ pk1 int not NULL,
+ pk2 char(4) not NULL collate latin1_german1_ci,
+ pk3 char(4) not NULL collate latin1_bin,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1,pk2,pk3),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=bdb;
+insert into t1 values
+ (1, 'u', 'u', 1, 1),
+ (1, 'u', char(0xEC), 1, 1),
+ (1, 'u', 'x', 1, 1);
+insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
+insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
+insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
+select * from t1;
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+
+# Hidden PK
+alter table t1 drop primary key;
+select * from t1;
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Variable-length PK
+# this is also test for Bug#2688
+create table t1 (
+ pk1 varchar(8) NOT NULL default '',
+ pk2 varchar(4) NOT NULL default '',
+ key1 int(11),
+ key2 int(11),
+ primary key(pk1, pk2),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=bdb;
+insert into t1 values ('','empt',2,2),
+ ('a','a--a',2,2),
+ ('bb','b--b',2,2),
+ ('ccc','c--c',2,2),
+ ('dddd','d--d',2,2);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+
+drop table t1;
+
diff --git a/mysql-test/t/rowid_order_innodb.test b/mysql-test/t/rowid_order_innodb.test
new file mode 100644
index 00000000000..fb4959d78e6
--- /dev/null
+++ b/mysql-test/t/rowid_order_innodb.test
@@ -0,0 +1,108 @@
+#
+# Test for rowid ordering (and comparison) functions.
+# do index_merge select for tables with PK of various types.
+#
+--disable_warnings
+drop table if exists t1, t2, t3,t4;
+--enable_warnings
+
+-- source include/have_innodb.inc
+
+# Signed number as rowid
+create table t1 (
+ pk1 int not NULL,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=innodb;
+insert into t1 values (-5, 1, 1),
+ (-100, 1, 1),
+ (3, 1, 1),
+ (0, 1, 1),
+ (10, 1, 1);
+explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Unsigned numbers as rowids
+create table t1 (
+ pk1 int unsigned not NULL,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=innodb;
+insert into t1 values (0, 1, 1),
+ (0xFFFFFFFF, 1, 1),
+ (0xFFFFFFFE, 1, 1),
+ (1, 1, 1),
+ (2, 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Case-insensitive char(N)
+create table t1 (
+ pk1 char(4) not NULL,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=innodb collate latin2_general_ci;
+insert into t1 values ('a1', 1, 1),
+ ('b2', 1, 1),
+ ('A3', 1, 1),
+ ('B4', 1, 1);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Multi-part PK
+create table t1 (
+ pk1 int not NULL,
+ pk2 char(4) not NULL collate latin1_german1_ci,
+ pk3 char(4) not NULL collate latin1_bin,
+ key1 int(11),
+ key2 int(11),
+ PRIMARY KEY (pk1,pk2,pk3),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=innodb;
+insert into t1 values
+ (1, 'u', 'u', 1, 1),
+ (1, 'u', char(0xEC), 1, 1),
+ (1, 'u', 'x', 1, 1);
+insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
+insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
+insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
+select * from t1;
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+
+# Hidden PK
+alter table t1 drop primary key;
+select * from t1;
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+drop table t1;
+
+# Variable-length PK
+# this is also test for Bug#2688
+create table t1 (
+ pk1 varchar(8) NOT NULL default '',
+ pk2 varchar(4) NOT NULL default '',
+ key1 int(11),
+ key2 int(11),
+ primary key(pk1, pk2),
+ KEY key1 (key1),
+ KEY key2 (key2)
+) engine=innodb;
+insert into t1 values ('','empt',2,2),
+ ('a','a--a',2,2),
+ ('bb','b--b',2,2),
+ ('ccc','c--c',2,2),
+ ('dddd','d--d',2,2);
+select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
+
+drop table t1;
+
diff --git a/mysql-test/t/rpl000001.test b/mysql-test/t/rpl000001.test
index 8f7ba50476a..5b4b29addc4 100644
--- a/mysql-test/t/rpl000001.test
+++ b/mysql-test/t/rpl000001.test
@@ -1,7 +1,7 @@
source include/master-slave.inc;
create table t1 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
select * from t1 limit 10;
@@ -39,7 +39,13 @@ save_master_pos;
connection slave;
sync_with_master;
-#test handling of aborted connection in the middle of update
+# Test if the slave SQL thread can be more than 16K behind the slave
+# I/O thread (> IO_SIZE)
+
+connection master;
+# we'll use table-level locking to delay slave SQL thread
+create table t1 (n int) engine=myisam;
+sync_slave_with_master;
connection master;
reset master;
connection slave;
@@ -47,29 +53,26 @@ stop slave;
reset slave;
connection master;
-create table t1(n int);
-#we want the log to exceed 16K to test deal with the log that is bigger than
-#IO_SIZE
let $1=5000;
+# Generate 16K of relay log
disable_query_log;
while ($1)
{
- eval insert into t1 values($1+get_lock("hold_slave",10)*0);
+ eval insert into t1 values($1);
dec $1;
}
enable_query_log;
-# Try to cause a large relay log lag on the slave
+# Try to cause a large relay log lag on the slave by locking t1
connection slave;
-select get_lock("hold_slave",10);
-explain extended select get_lock("hold_slave",10);
+lock tables t1 read;
start slave;
#hope this is long enough for I/O thread to fetch over 16K relay log data
sleep 3;
-select release_lock("hold_slave");
-explain extended select release_lock("hold_slave");
unlock tables;
+#test handling of aborted connection in the middle of update
+
connection master;
create table t2(id int);
insert into t2 values(connection_id());
@@ -89,7 +92,7 @@ kill @id;
# We don't drop t3 as this is a temporary table
drop table t2;
connection master;
---error 1053
+--error 1053,2013
reap;
connection slave;
# The SQL slave thread should now have stopped because the query was killed on
@@ -120,6 +123,7 @@ select n from t1;
select select_priv,user from mysql.user where user = _binary'blafasel2';
connection master1;
drop table t1;
+delete from mysql.user where user="blafasel2";
save_master_pos;
connection slave;
sync_with_master;
diff --git a/mysql-test/t/rpl000004.test b/mysql-test/t/rpl000004.test
index f2a02bd4dd6..9c8c535c67d 100644
--- a/mysql-test/t/rpl000004.test
+++ b/mysql-test/t/rpl000004.test
@@ -2,9 +2,9 @@ source include/master-slave.inc;
set SQL_LOG_BIN=0;
create table t1 (word char(20) not null, index(word));
-load data infile '../../std_data/words.dat' into table t1;
+load data infile '../std_data_ln/words.dat' into table t1;
create table t2 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t2;
+load data infile '../std_data_ln/words.dat' into table t2;
create table t3 (word char(20) not null primary key);
connection slave;
load table t1 from master;
diff --git a/mysql-test/t/rpl000009.test b/mysql-test/t/rpl000009.test
index 81e9860c186..161e01ad293 100644
--- a/mysql-test/t/rpl000009.test
+++ b/mysql-test/t/rpl000009.test
@@ -138,10 +138,10 @@ select * from mysqltest.t1;
# DISABLED FOR NOW AS chmod IS NOT PORTABLE ON NON-UNIX
# insert into mysqltest.t1 values(10, 'should be there');
# flush tables;
-# system chmod 500 var/slave-data/mysqltest/;
+# system chmod 500 $MYSQLTEST_VARDIR/slave-data/mysqltest/;
# --error 6
# load data from master; # should fail (errno 13)
-# system chmod 700 var/slave-data/mysqltest/;
+# system chmod 700 $MYSQLTEST_VARDIR/slave-data/mysqltest/;
# select * from mysqltest.t1; # should contain the row (10, ...)
diff --git a/mysql-test/t/rpl000010-slave.opt b/mysql-test/t/rpl000010-slave.opt
index 429a7f63f7b..0dbfb311e33 100644
--- a/mysql-test/t/rpl000010-slave.opt
+++ b/mysql-test/t/rpl000010-slave.opt
@@ -1 +1 @@
---disconnect-slave-event-count=1
+--disconnect-slave-event-count=2
diff --git a/mysql-test/t/rpl000015-slave.sh b/mysql-test/t/rpl000015-slave.sh
index 62748605af1..7deeca3d2d6 100755
--- a/mysql-test/t/rpl000015-slave.sh
+++ b/mysql-test/t/rpl000015-slave.sh
@@ -1 +1 @@
-rm -f $MYSQL_TEST_DIR/var/slave-data/master.info
+rm -f $MYSQLTEST_VARDIR/slave-data/master.info
diff --git a/mysql-test/t/rpl000015.test b/mysql-test/t/rpl000015.test
index a23a4b0ba5f..e103d40943f 100644
--- a/mysql-test/t/rpl000015.test
+++ b/mysql-test/t/rpl000015.test
@@ -1,3 +1,5 @@
+-- source include/have_log_bin.inc
+
connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK);
connection master;
@@ -12,7 +14,7 @@ show slave status;
change master to master_host='127.0.0.1';
# The following needs to be cleaned up when change master is fixed
---replace_result $MASTER_MYPORT MASTER_PORT $MYSQL_TCP_PORT MASTER_PORT
+--replace_result $DEFAULT_MASTER_PORT DEFAULT_MASTER_PORT
--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
--replace_result $MASTER_MYPORT MASTER_PORT
diff --git a/mysql-test/t/rpl000017-slave.sh b/mysql-test/t/rpl000017-slave.sh
index 4dbbaec31ce..17188aba0db 100755
--- a/mysql-test/t/rpl000017-slave.sh
+++ b/mysql-test/t/rpl000017-slave.sh
@@ -1,6 +1,6 @@
-rm -f $MYSQL_TEST_DIR/var/log/*relay*
-rm -f $MYSQL_TEST_DIR/var/slave-data/relay-log.info
-cat > $MYSQL_TEST_DIR/var/slave-data/master.info <<EOF
+rm -f $MYSQLTEST_VARDIR/log/*relay*
+rm -f $MYSQLTEST_VARDIR/slave-data/relay-log.info
+cat > $MYSQLTEST_VARDIR/slave-data/master.info <<EOF
master-bin.000001
4
127.0.0.1
diff --git a/mysql-test/t/rpl000017.test b/mysql-test/t/rpl000017.test
index ea3aba8fb75..4488cbad230 100644
--- a/mysql-test/t/rpl000017.test
+++ b/mysql-test/t/rpl000017.test
@@ -1,3 +1,5 @@
+-- source include/have_log_bin.inc
+
connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK);
connection master;
@@ -16,6 +18,7 @@ sync_slave_with_master;
select * from t1;
connection master;
drop table t1;
+delete from mysql.user where user="replicate";
sync_slave_with_master;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_EE_error.test b/mysql-test/t/rpl_EE_error.test
index 5f68b699e9f..640a2b1a88c 100644
--- a/mysql-test/t/rpl_EE_error.test
+++ b/mysql-test/t/rpl_EE_error.test
@@ -8,8 +8,8 @@ source include/master-slave.inc;
create table t1 (a int) engine=myisam;
flush tables;
-system rm ./var/master-data/test/t1.MYI ;
-drop table t1;
+system rm $MYSQLTEST_VARDIR/master-data/test/t1.MYI ;
+drop table if exists t1;
save_master_pos;
connection slave;
sync_with_master;
diff --git a/mysql-test/t/rpl_auto_increment-master.opt b/mysql-test/t/rpl_auto_increment-master.opt
new file mode 100644
index 00000000000..a8a6af19da9
--- /dev/null
+++ b/mysql-test/t/rpl_auto_increment-master.opt
@@ -0,0 +1 @@
+--auto-increment-increment=10 --auto-increment-offset=2
diff --git a/mysql-test/t/rpl_auto_increment.test b/mysql-test/t/rpl_auto_increment.test
new file mode 100644
index 00000000000..caa2b79feb5
--- /dev/null
+++ b/mysql-test/t/rpl_auto_increment.test
@@ -0,0 +1,142 @@
+#
+# Test of auto_increment with offset
+#
+source include/have_innodb.inc;
+source include/master-slave.inc;
+
+create table t1 (a int not null auto_increment,b int, primary key (a)) engine=myisam auto_increment=3;
+insert into t1 values (NULL,1),(NULL,2),(NULL,3);
+select * from t1;
+
+sync_slave_with_master;
+select * from t1;
+connection master;
+drop table t1;
+
+create table t1 (a int not null auto_increment,b int, primary key (a)) engine=myisam;
+insert into t1 values (1,1),(NULL,2),(3,3),(NULL,4);
+delete from t1 where b=4;
+insert into t1 values (NULL,5),(NULL,6);
+select * from t1;
+
+sync_slave_with_master;
+select * from t1;
+connection master;
+
+drop table t1;
+
+set @@session.auto_increment_increment=100, @@session.auto_increment_offset=10;
+show variables like "%auto_inc%";
+
+create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
+# Insert with 2 insert statements to get better testing of logging
+insert into t1 values (NULL),(5),(NULL);
+insert into t1 values (250),(NULL);
+select * from t1;
+insert into t1 values (1000);
+set @@insert_id=400;
+insert into t1 values(NULL),(NULL);
+select * from t1;
+
+sync_slave_with_master;
+select * from t1;
+connection master;
+drop table t1;
+
+#
+# Same test with innodb (as the innodb code is a bit different)
+#
+create table t1 (a int not null auto_increment, primary key (a)) engine=innodb;
+# Insert with 2 insert statements to get better testing of logging
+insert into t1 values (NULL),(5),(NULL);
+insert into t1 values (250),(NULL);
+select * from t1;
+insert into t1 values (1000);
+set @@insert_id=400;
+insert into t1 values(NULL),(NULL);
+select * from t1;
+
+sync_slave_with_master;
+select * from t1;
+connection master;
+drop table t1;
+
+set @@session.auto_increment_increment=1, @@session.auto_increment_offset=1;
+create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
+# Insert with 2 insert statements to get better testing of logging
+insert into t1 values (NULL),(5),(NULL),(NULL);
+insert into t1 values (500),(NULL),(502),(NULL),(NULL);
+select * from t1;
+set @@insert_id=600;
+--error 1062
+insert into t1 values(600),(NULL),(NULL);
+set @@insert_id=600;
+insert ignore into t1 values(600),(NULL),(NULL),(610),(NULL);
+select * from t1;
+
+sync_slave_with_master;
+select * from t1;
+connection master;
+drop table t1;
+
+#
+# Test that auto-increment works when slave has rows in the table
+#
+set @@session.auto_increment_increment=10, @@session.auto_increment_offset=1;
+
+create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
+
+sync_slave_with_master;
+insert into t1 values(2),(12),(22),(32),(42);
+connection master;
+
+insert into t1 values (NULL),(NULL);
+insert into t1 values (3),(NULL),(NULL);
+select * from t1;
+
+sync_slave_with_master;
+select * from t1;
+
+# Test for BUG#20524 "auto_increment_* not observed when inserting
+# a too large value". When an autogenerated value was bigger than the
+# maximum possible value of the field, it was truncated to that max
+# possible value, without being "rounded down" to still honour
+# auto_increment_* variables.
+
+connection master;
+drop table t1;
+create table t1 (a tinyint not null auto_increment primary key) engine=myisam;
+insert into t1 values(103);
+set auto_increment_increment=11;
+set auto_increment_offset=4;
+insert into t1 values(null);
+insert into t1 values(null);
+--error 1062
+insert into t1 values(null);
+select a, mod(a-@@auto_increment_offset,@@auto_increment_increment) from t1 order by a;
+
+# same but with a larger value
+create table t2 (a tinyint unsigned not null auto_increment primary key) engine=myisam;
+set auto_increment_increment=10;
+set auto_increment_offset=1;
+set insert_id=1000;
+insert into t2 values(null);
+select a, mod(a-@@auto_increment_offset,@@auto_increment_increment) from t2 order by a;
+
+# An offset so big that even first value does not fit
+create table t3 like t1;
+set auto_increment_increment=1000;
+set auto_increment_offset=700;
+insert into t3 values(null);
+select * from t3 order by a;
+sync_slave_with_master;
+select * from t1 order by a;
+select * from t2 order by a;
+select * from t3 order by a;
+
+connection master;
+
+drop table t1,t2,t3;
+
+# End cleanup
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_auto_increment_11932.test b/mysql-test/t/rpl_auto_increment_11932.test
new file mode 100644
index 00000000000..d4b7872fb2b
--- /dev/null
+++ b/mysql-test/t/rpl_auto_increment_11932.test
@@ -0,0 +1,63 @@
+#
+# Test of auto_increment
+# BUG#11932
+#
+# Bug reported that master and slave get out of sync after TRUNCATE
+# TABLE.
+#
+# Test supplied by Are Casilla
+
+source include/master-slave.inc;
+--disable_warnings
+connection master;
+drop database if exists test1;
+--enable_warnings
+create database test1;
+use test1;
+
+CREATE TABLE `t1` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `fname` varchar(100) default NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
+
+INSERT INTO `t1` VALUES (1, 'blablabla');
+
+CREATE TABLE `t2` (
+ `id` int(10) NOT NULL auto_increment,
+ `comment` varchar(255) NOT NULL default '',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=3 ;
+
+INSERT INTO `t2` VALUES (1, 'testtest 1');
+INSERT INTO `t2` VALUES (2, 'test 2');
+
+DELIMITER $;
+CREATE PROCEDURE simpleproc3 ()
+ NOT DETERMINISTIC
+ BEGIN
+ INSERT INTO t1 (fname) (SELECT t2.comment FROM t2 WHERE t2.id = '1');
+ INSERT INTO t1 (fname) VALUES('test');
+ END
+ $
+DELIMITER ;$
+
+CALL simpleproc3();
+
+select * from t2;
+
+TRUNCATE TABLE `t1`;
+CALL simpleproc3();
+
+select * from t1;
+
+save_master_pos;
+connection slave;
+sync_with_master;
+
+use test1;
+select * from t1;
+
+drop database test1;
+connection master;
+drop database test1;
diff --git a/mysql-test/t/rpl_change_master.test b/mysql-test/t/rpl_change_master.test
index acb34b31ea2..9dd1505af90 100644
--- a/mysql-test/t/rpl_change_master.test
+++ b/mysql-test/t/rpl_change_master.test
@@ -1,26 +1,30 @@
+# Verify that after CHANGE MASTER, replication (I/O thread and SQL
+# thread) restart from where SQL thread left, not from where
+# I/O thread left (some old bug fixed in 4.0.17)
+
source include/master-slave.inc;
-connection slave;
-select get_lock("a",5);
connection master;
+# Make SQL slave thread advance a bit
create table t1(n int);
-insert into t1 values(1+get_lock("a",15)*0);
+sync_slave_with_master;
+select * from t1;
+# Now stop it and make I/O slave thread be ahead
+stop slave sql_thread;
+connection master;
+insert into t1 values(1);
insert into t1 values(2);
save_master_pos;
connection slave;
---real_sleep 3 # can't sync_with_master as we should be blocked
+--real_sleep 3 # wait for I/O thread to have read updates
stop slave;
-select * from t1;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 8 # 9 # 23 # 33 #
---replace_column 1 # 33 #
query_vertical show slave status;
change master to master_user='root';
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 8 # 9 # 23 # 33 #
query_vertical show slave status;
-# Will restart from after the values(2), which is bug
-select release_lock("a");
start slave;
sync_with_master;
select * from t1;
diff --git a/mysql-test/t/rpl_charset.test b/mysql-test/t/rpl_charset.test
index a6f4c2ba9be..e916ae9ad6c 100644
--- a/mysql-test/t/rpl_charset.test
+++ b/mysql-test/t/rpl_charset.test
@@ -1,11 +1,9 @@
# Replication of character sets.
# This test will fail if the server/client does not support enough charsets.
-# Remember that there currently exists
-# Bug #2326: Charset of table is determined by charset of db only if "USE db;"
-
source include/master-slave.inc;
--disable_warnings
+set timestamp=1000000000;
drop database if exists mysqltest2;
drop database if exists mysqltest3;
--enable_warnings
@@ -46,7 +44,7 @@ set character_set_client=cp850, collation_connection=latin2_croatian_ci;
insert into t1 (b) values(@@character_set_server);
insert into t1 (b) values(@@collation_server);
# character_set_database and collation_database are not tested as they
-# are not replicated (Bar said that this variable may be removed shortly).
+# needn't be replicated (Bar said in Jan 2005).
insert into t1 (b) values(@@character_set_client);
# collation_client does not exist
insert into t1 (b) values(@@character_set_connection);
@@ -79,9 +77,10 @@ select "--- --slave--" as "";
--enable_query_log
select * from mysqltest2.t1 order by a;
-# See if SET ONE_SHOT gets into binlog when LOAD DATA
-connection master;
-load data infile '../../std_data/words.dat' into table t1 (b);
+# Presently charset info is not logged with LOAD DATA but it will
+# change in Jan 2005 when Dmitri pushes his new LOAD DATA,
+# before 5.0.3 goes out. When done, LOAD DATA INFILE should be tested
+# here.
# See if user var is prefixed with collation in binlog and replicated well.
# Note: replication of user variables is broken as far as derivation is
@@ -90,6 +89,7 @@ load data infile '../../std_data/words.dat' into table t1 (b);
# know if the collation was explicit or not, so we use DERIVATION_NONE,
# which provokes error messages (like 'Illegal mix of collation') when
# we replay the master's INSERT/etc statements.
+connection master;
set @a= _cp850 'Müller' collate cp850_general_ci;
truncate table t1;
insert into t1 (b) values(collation(@a));
@@ -106,18 +106,17 @@ select * from mysqltest2.t1 order by a;
connection master;
drop database mysqltest2;
drop database mysqltest3;
-# file_id: xx can vary depending on previous tests
---replace_regex /file_id=[0-9]/file_id=x/
-show binlog events from 79;
+--replace_column 2 # 5 #
+show binlog events from 98;
sync_slave_with_master;
-# Check that we can't change global.collation_server
+# Check that we can change global.collation_server (since 5.0.3)
-error 1105;
set global character_set_server=latin2;
+set global character_set_server=latin1; # back
connection master;
-error 1105;
set global character_set_server=latin2;
+set global character_set_server=latin1; # back
# Check that SET ONE_SHOT is really one shot
@@ -130,7 +129,7 @@ select @@character_set_server;
select @@character_set_server;
# ONE_SHOT on not charset/collation stuff is not allowed
-error 1105;
+-- error 1382
set one_shot max_join_size=10;
# Test of wrong character set numbers;
@@ -151,24 +150,10 @@ select hex(c1), hex(c2) from t1;
sync_slave_with_master;
select hex(c1), hex(c2) from t1;
-# Now test for BUG##5705: SET CHARATER_SET_SERVERetc will be lost if
-# STOP SLAVE before following query
-
-stop slave;
-delete from t1;
-change master to master_log_pos=5847;
-start slave until master_log_file='master-bin.000001', master_log_pos=5983;
-# Slave is supposed to stop _after_ the INSERT, even though 5983 is
-# the position of the beginning of the INSERT; after SET slave is not
-# supposed to increment position.
-wait_for_slave_to_stop;
-# When you merge this into 5.0 you will have to adjust positions
-# above; the first master_log_pos above should be the one of the SET,
-# the second should be the one of the INSERT.
-start slave;
-sync_with_master;
-select hex(c1), hex(c2) from t1;
connection master;
+# Let's have a look at generated SETs.
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
drop table t1;
sync_slave_with_master;
diff --git a/mysql-test/t/rpl_charset_sjis.test b/mysql-test/t/rpl_charset_sjis.test
new file mode 100644
index 00000000000..2469b0db8a2
--- /dev/null
+++ b/mysql-test/t/rpl_charset_sjis.test
@@ -0,0 +1,25 @@
+source include/have_sjis.inc;
+source include/master-slave.inc;
+
+--disable_warnings
+drop table if exists t1;
+drop procedure if exists p1;
+--enable_warnings
+create table t1 (a varchar(255) character set sjis);
+create procedure p1 (in a varchar(255) character set sjis) insert into t1 values (a);
+
+SET NAMES binary;
+CALL p1 ('–\\');
+select "--- on master ---";
+select hex(a) from t1 ;
+sync_slave_with_master;
+connection slave;
+select "--- on slave ---";
+select hex(a) from t1;
+connection master;
+drop table t1;
+drop procedure p1;
+sync_slave_with_master;
+connection master;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/rpl_create_database.test b/mysql-test/t/rpl_create_database.test
index 96781b25f20..cfccc4567b5 100644
--- a/mysql-test/t/rpl_create_database.test
+++ b/mysql-test/t/rpl_create_database.test
@@ -56,6 +56,7 @@ USE mysqltest_sisyfos;
CREATE TABLE t2 (a INT);
let $VERSION=`select version()`;
--replace_result $VERSION VERSION
+--replace_column 2 # 5 #
SHOW BINLOG EVENTS;
SHOW DATABASES;
sync_slave_with_master;
diff --git a/mysql-test/t/rpl_critical_errors.test b/mysql-test/t/rpl_critical_errors.test
new file mode 100644
index 00000000000..ffe00050b01
--- /dev/null
+++ b/mysql-test/t/rpl_critical_errors.test
@@ -0,0 +1,66 @@
+# Test for BUG#26551
+#
+
+# This test is unfortunately very fragile and very dependent on the
+# load of the computer. The test is therefore disabled normally. It is
+# entered here to demonstrate how to check that the bug is actually
+# solved.
+
+--echo Turn on parsing to run this test
+
+disable_parsing;
+
+source include/master-slave.inc;
+
+connection master;
+CREATE TABLE t1 (data LONGBLOB) ENGINE=MYISAM;
+CREATE TABLE t2 (data LONGBLOB) ENGINE=MYISAM;
+
+INSERT INTO t1 (data) VALUES (repeat('a',1024*1024));
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+sync_slave_with_master;
+
+connection master;
+send INSERT INTO t2 SELECT * FROM t1;
+
+connection master1;
+
+# This sleep is picked so that the query above has started to insert
+# some rows into t2. If it hasn't the slave will not stop below.
+sleep 4;
+
+# SHOW PROCESSLIST;
+
+# Code for the 5.1 server to get the thread id of the thread executing
+# the query above.
+#
+#SET @id = 0;
+#SELECT id INTO @id
+# FROM information_schema.processlist
+# WHERE info LIKE 'INSERT INTO t2%';
+
+# This is the connection that is executing the INSERT INTO t2...
+KILL QUERY 2;
+
+connection slave;
+
+# Here the slave will only stop if the query above actually started
+# inserting some rows into t2. Otherwise, it will hang forever.
+wait_for_slave_to_stop;
+
+# The following should be 0
+SELECT COUNT(*) FROM t2;
+
+# ... and there the error code should be 1317 (ER_QUERY_INTERRUPTED)
+--replace_result $MASTER_MYPORT MASTER_PORT
+--replace_column 1 # 7 # 8 # 9 # 20 # 22 # 23 # 33 #
+query_vertical SHOW SLAVE STATUS;
+
+enable_parsing;
diff --git a/mysql-test/t/rpl_ddl.test b/mysql-test/t/rpl_ddl.test
index ce9518e80ec..d2a41a305b6 100644
--- a/mysql-test/t/rpl_ddl.test
+++ b/mysql-test/t/rpl_ddl.test
@@ -34,6 +34,10 @@
###############################################################
# Some preparations
###############################################################
+# The sync_slave_with_master is needed to make the xids deterministic.
+sync_slave_with_master;
+connection master;
+
SET AUTOCOMMIT = 1;
#
# 1. DROP all objects, which probably already exist, but must be created here
@@ -336,6 +340,164 @@ connection master;
SELECT '-------- switch to master -------' as "";
--enable_query_log
+# End of 4.1 tests
+
+###############################################################
+# Cases with stored procedures
+###############################################################
+let $my_stmt= CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1";
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+--vertical_results
+--replace_column 5 # 6 #
+SHOW PROCEDURE STATUS LIKE 'p1';
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+--replace_column 5 # 6 #
+SHOW PROCEDURE STATUS LIKE 'p1';
+connection master;
+--horizontal_results
+
+let $my_stmt= ALTER PROCEDURE p1 COMMENT "I have been altered";
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+--vertical_results
+--replace_column 5 # 6 #
+SHOW PROCEDURE STATUS LIKE 'p1';
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+--replace_column 5 # 6 #
+SHOW PROCEDURE STATUS LIKE 'p1';
+connection master;
+--horizontal_results
+
+let $my_stmt= DROP PROCEDURE p1;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+--vertical_results
+SHOW PROCEDURE STATUS LIKE 'p1';
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SHOW PROCEDURE STATUS LIKE 'p1';
+connection master;
+--horizontal_results
+
+###############################################################
+# Cases with VIEWs
+###############################################################
+let $my_stmt= CREATE OR REPLACE VIEW v1 as select * from t1;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SHOW CREATE VIEW v1;
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SHOW CREATE VIEW v1;
+connection master;
+
+let $my_stmt= ALTER VIEW v1 AS select f1 from t1;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SHOW CREATE VIEW v1;
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SHOW CREATE VIEW v1;
+connection master;
+
+let $my_stmt= DROP VIEW IF EXISTS v1;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+--error 1146
+SHOW CREATE VIEW v1;
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+--error 1146
+SHOW CREATE VIEW v1;
+connection master;
+
+###############################################################
+# Cases with TRIGGERs
+###############################################################
+let $my_stmt= CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SHOW TRIGGERS;
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SHOW TRIGGERS;
+connection master;
+
+let $my_stmt= DROP TRIGGER trg1;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SHOW TRIGGERS;
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SHOW TRIGGERS;
+connection master;
+
+###############################################################
+# Cases with USERs
+###############################################################
+let $my_stmt= CREATE USER user1@localhost;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SELECT user FROM mysql.user WHERE user = 'user1';
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SELECT user FROM mysql.user WHERE user = 'user1';
+connection master;
+
+let $my_stmt= RENAME USER user1@localhost TO rename1@localhost;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SELECT user FROM mysql.user WHERE user = 'rename1';
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SELECT user FROM mysql.user WHERE user = 'rename1';
+connection master;
+
+let $my_stmt= DROP USER rename1@localhost;
+let $my_master_commit= true;
+let $my_slave_commit= true;
+--source include/rpl_stmt_seq.inc
+SELECT user FROM mysql.user WHERE user = 'rename1';
+--disable_query_log
+SELECT '-------- switch to slave -------' as "";
+--enable_query_log
+connection slave;
+SELECT user FROM mysql.user WHERE user = 'rename1';
+connection master;
+
###############################################################
# Cleanup
###############################################################
@@ -345,4 +507,4 @@ DROP DATABASE IF EXISTS mysqltest2;
DROP DATABASE IF EXISTS mysqltest3;
--enable_warnings
-# End of 4.1 tests
+
diff --git a/mysql-test/t/rpl_deadlock.test b/mysql-test/t/rpl_deadlock.test
index e8ba6d6faec..db2a7ec3a8d 100644
--- a/mysql-test/t/rpl_deadlock.test
+++ b/mysql-test/t/rpl_deadlock.test
@@ -16,7 +16,8 @@ source include/master-slave.inc;
connection master;
create table t1 (a int not null, key(a)) engine=innodb;
create table t2 (a int not null, key(a)) engine=innodb;
-create table t3 (a int) engine=innodb;
+# requiring 'unique' for the timeout part of the test
+create table t3 (a int unique) engine=innodb;
create table t4 (a int) engine=innodb;
show variables like 'slave_transaction_retries';
sync_slave_with_master;
@@ -31,8 +32,7 @@ stop slave;
connection master;
begin;
# Let's keep BEGIN and the locked statement in two different relay logs.
-let $1=200;
-disable_query_log;
+let $1=200;disable_query_log;
while ($1)
{
eval insert into t3 values( $1 );
@@ -59,7 +59,7 @@ enable_query_log;
select * from t1 for update;
start slave;
--real_sleep 3 # hope that slave is blocked now
-insert into t2 values(22); # provoke deadlock, slave should be victim
+insert into t2 values(201); # provoke deadlock, slave should be victim
commit;
sync_with_master;
select * from t1; # check that slave succeeded finally
@@ -74,11 +74,13 @@ show slave status;
# 2) Test lock wait timeout
stop slave;
-change master to master_log_pos=401; # the BEGIN log event
+delete from t3;
+change master to master_log_pos=539; # the BEGIN log event
begin;
select * from t2 for update; # hold lock
start slave;
--real_sleep 10 # slave should have blocked, and be retrying
+select count(*) from t3 /* must be zero */; # replaying begins after rollback
commit;
sync_with_master;
select * from t1; # check that slave succeeded finally
@@ -92,16 +94,18 @@ show slave status;
# Now we repeat 2), but with BEGIN in the same relay log as
# COMMIT (to see if seeking into hot log is ok).
-
+set @my_max_relay_log_size= @@global.max_relay_log_size;
set global max_relay_log_size=0;
# This is really copy-paste of 2) of above
stop slave;
-change master to master_log_pos=401;
+delete from t3;
+change master to master_log_pos=539;
begin;
select * from t2 for update;
start slave;
--real_sleep 10
+select count(*) from t3 /* must be zero */; # replaying begins after rollback
commit;
sync_with_master;
select * from t1;
@@ -115,5 +119,6 @@ show slave status;
connection master;
drop table t1,t2,t3,t4;
sync_slave_with_master;
+set global max_relay_log_size= @my_max_relay_log_size;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_delete_all.test b/mysql-test/t/rpl_delete_all.test
index db33ee3bb86..e0c0757bbc2 100644
--- a/mysql-test/t/rpl_delete_all.test
+++ b/mysql-test/t/rpl_delete_all.test
@@ -7,7 +7,7 @@ drop database if exists mysqltest;
sync_slave_with_master;
# can't read dir
--replace_result "Errcode: 1" "Errcode: X" "Errcode: 2" "Errcode: X" \\ /
---error 12
+--error 1049
show tables from mysqltest;
connection slave;
diff --git a/mysql-test/t/rpl_do_grant.test b/mysql-test/t/rpl_do_grant.test
index 54287a67657..4a9c1554630 100644
--- a/mysql-test/t/rpl_do_grant.test
+++ b/mysql-test/t/rpl_do_grant.test
@@ -33,6 +33,22 @@ connection slave;
sync_with_master;
select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
+#
+# Bug#24158 SET PASSWORD in binary log fails under ANSI_QUOTES
+#
+connection master;
+update mysql.user set password='' where user='rpl_do_grant';
+flush privileges;
+select password<>'' from mysql.user where user='rpl_do_grant';
+set sql_mode='ANSI_QUOTES';
+set password for rpl_do_grant@localhost=password('does it work?');
+set sql_mode='';
+save_master_pos;
+connection slave;
+sync_with_master;
+select password<>'' from mysql.user where user='rpl_do_grant';
+
+
# clear what we have done, to not influence other tests.
connection master;
delete from mysql.user where user=_binary'rpl_do_grant';
diff --git a/mysql-test/t/rpl_drop_db.test b/mysql-test/t/rpl_drop_db.test
index 98afc6e3d02..f14c9bc0164 100644
--- a/mysql-test/t/rpl_drop_db.test
+++ b/mysql-test/t/rpl_drop_db.test
@@ -53,5 +53,10 @@ sync_slave_with_master;
#cleanup
connection slave;
stop slave;
-system rm -rf var/master-data/mysqltest1;
+drop database mysqltest1;
+
+connection master;
+# Remove the "extra" file created above
+--remove_file $MYSQLTEST_VARDIR/master-data/mysqltest1/f1.txt
+drop database mysqltest1;
diff --git a/mysql-test/t/rpl_dual_pos_advance.test b/mysql-test/t/rpl_dual_pos_advance.test
index 518fa9df885..074aeec63b1 100644
--- a/mysql-test/t/rpl_dual_pos_advance.test
+++ b/mysql-test/t/rpl_dual_pos_advance.test
@@ -106,3 +106,9 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+
+# Cleanup
+# The A->B->A replication causes the master to start writing relay logs
+# in var/run, remove them
+remove_file $MYSQLTEST_VARDIR/run/master-relay-bin.000001;
+remove_file $MYSQLTEST_VARDIR/run/master-relay-bin.index;
diff --git a/mysql-test/t/rpl_empty_master_crash.test b/mysql-test/t/rpl_empty_master_crash.test
index eae967a4bb1..5f26bedc9fe 100644
--- a/mysql-test/t/rpl_empty_master_crash.test
+++ b/mysql-test/t/rpl_empty_master_crash.test
@@ -1,6 +1,6 @@
source include/master-slave.inc;
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
#
diff --git a/mysql-test/t/rpl_error_ignored_table.test b/mysql-test/t/rpl_error_ignored_table.test
index 8076d835ac0..339d966dbb3 100644
--- a/mysql-test/t/rpl_error_ignored_table.test
+++ b/mysql-test/t/rpl_error_ignored_table.test
@@ -45,10 +45,11 @@ select (@id := id) - id from t3;
kill @id;
drop table t2,t3;
connection master;
---error 0,1053
+--error 0,1053,2013
reap;
connection master1;
-show binlog events from 79;
+--replace_column 2 # 5 #
+show binlog events from 98;
save_master_pos;
connection slave;
# SQL slave thread should not have stopped (because table of the killed
@@ -56,3 +57,4 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+# Adding comment for force manual merge 5.0 -> wl1012. delete me if needed
diff --git a/mysql-test/t/rpl_failed_optimize.test b/mysql-test/t/rpl_failed_optimize.test
index 57afaa89e83..8c4698c0d9b 100644
--- a/mysql-test/t/rpl_failed_optimize.test
+++ b/mysql-test/t/rpl_failed_optimize.test
@@ -17,4 +17,7 @@ OPTIMIZE TABLE t1;
OPTIMIZE TABLE non_existing;
sync_slave_with_master;
+connection master;
+drop table t1;
+sync_slave_with_master;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_flush_log_loop-master.opt b/mysql-test/t/rpl_flush_log_loop-master.opt
index 4f6e0f3d00c..a4d1d403dc9 100644
--- a/mysql-test/t/rpl_flush_log_loop-master.opt
+++ b/mysql-test/t/rpl_flush_log_loop-master.opt
@@ -1 +1 @@
--O max_binlog_size=1M --relay-log=$MYSQL_TEST_DIR/var/master-data/relay-log
+-O max_binlog_size=1M --relay-log=$MYSQLTEST_VARDIR/master-data/relay-log
diff --git a/mysql-test/t/rpl_flush_log_loop-master.sh b/mysql-test/t/rpl_flush_log_loop-master.sh
index 9e56af99f5c..a321dd690cd 100755
--- a/mysql-test/t/rpl_flush_log_loop-master.sh
+++ b/mysql-test/t/rpl_flush_log_loop-master.sh
@@ -1,5 +1,5 @@
-rm -f $MYSQL_TEST_DIR/var/slave-data/*-bin.*
-rm -f $MYSQL_TEST_DIR/var/slave-data/master.info
-rm -f $MYSQL_TEST_DIR/var/slave-data/*.index
+rm -f $MYSQLTEST_VARDIR/slave-data/*-bin.*
+rm -f $MYSQLTEST_VARDIR/slave-data/master.info
+rm -f $MYSQLTEST_VARDIR/slave-data/*.index
diff --git a/mysql-test/t/rpl_flush_log_loop-slave.opt b/mysql-test/t/rpl_flush_log_loop-slave.opt
index d1373f139b1..95839c831c9 100644
--- a/mysql-test/t/rpl_flush_log_loop-slave.opt
+++ b/mysql-test/t/rpl_flush_log_loop-slave.opt
@@ -1 +1 @@
--O max_binlog_size=1M --relay-log=$MYSQL_TEST_DIR/var/slave-data/relay-log
+-O max_binlog_size=1M --relay-log=$MYSQLTEST_VARDIR/slave-data/relay-log
diff --git a/mysql-test/t/rpl_flush_log_loop-slave.sh b/mysql-test/t/rpl_flush_log_loop-slave.sh
index b8814e059a9..e46ea6d400b 100755
--- a/mysql-test/t/rpl_flush_log_loop-slave.sh
+++ b/mysql-test/t/rpl_flush_log_loop-slave.sh
@@ -1,4 +1,4 @@
-rm -f $MYSQL_TEST_DIR/var/master-data/master.info
-rm -f $MYSQL_TEST_DIR/var/master-data/*-bin.*
-rm -f $MYSQL_TEST_DIR/var/master-data/*.index
+rm -f $MYSQLTEST_VARDIR/master-data/master.info
+rm -f $MYSQLTEST_VARDIR/master-data/*-bin.*
+rm -f $MYSQLTEST_VARDIR/master-data/*.index
diff --git a/mysql-test/t/rpl_flush_log_loop.test b/mysql-test/t/rpl_flush_log_loop.test
index e08f1a23ef3..f0b368c285b 100644
--- a/mysql-test/t/rpl_flush_log_loop.test
+++ b/mysql-test/t/rpl_flush_log_loop.test
@@ -3,6 +3,9 @@
source include/master-slave.inc;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+show variables like 'relay_log%';
+
connection slave;
stop slave;
--replace_result $MASTER_MYPORT MASTER_PORT
@@ -18,7 +21,7 @@ sleep 5;
flush logs;
sleep 5;
--replace_result $SLAVE_MYPORT SLAVE_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_flush_tables.test b/mysql-test/t/rpl_flush_tables.test
index aea8d7a5353..f7c8774286a 100644
--- a/mysql-test/t/rpl_flush_tables.test
+++ b/mysql-test/t/rpl_flush_tables.test
@@ -23,6 +23,7 @@ rename table t1 to t5, t2 to t1;
flush no_write_to_binlog tables;
# Check that it's not in the binlog.
--replace_result $SERVER_VERSION SERVER_VERSION
+--replace_column 2 # 5 #
show binlog events;
# Check that the master is not confused.
select * from t3;
@@ -30,6 +31,7 @@ select * from t3;
flush tables;
# Check that it's in the binlog.
--replace_result $SERVER_VERSION SERVER_VERSION
+--replace_column 2 # 5 #
show binlog events;
save_master_pos;
connection slave;
@@ -49,4 +51,8 @@ sleep 1;
--error 1192
stop slave;
+connection master;
+drop table t3, t4, t5;
+
# End of 4.1 tests
+# Adding comment for force manual merge 5.0 -> wl1012. Delete me if needed.
diff --git a/mysql-test/t/rpl_get_lock.test b/mysql-test/t/rpl_get_lock.test
index a0e3c829c11..945bd98c993 100644
--- a/mysql-test/t/rpl_get_lock.test
+++ b/mysql-test/t/rpl_get_lock.test
@@ -22,6 +22,13 @@ connection slave;
sync_with_master;
select get_lock("lock",3);
select * from t1;
+# There is no point in testing REPLICATIION of the IS_*_LOCK
+# functions; slave does not run with the same concurrency context as
+# master (generally in slave we can't know that on master this lock
+# was already held by another connection and so that the the
+# get_lock() we're replicating timed out on master hence returned 0,
+# or that the is_free_lock() we're playing returned 0 etc.
+# But here all we do is test these functions outside of replication.
select is_free_lock("lock"), is_used_lock("lock") = connection_id();
explain extended select is_free_lock("lock"), is_used_lock("lock");
# Check lock functions
diff --git a/mysql-test/t/rpl_grant.test b/mysql-test/t/rpl_grant.test
new file mode 100644
index 00000000000..71e36342584
--- /dev/null
+++ b/mysql-test/t/rpl_grant.test
@@ -0,0 +1,42 @@
+# Tests of grants and users
+
+source include/master-slave.inc;
+source include/not_embedded.inc;
+
+--echo **** On Master ****
+connection master;
+
+CREATE USER dummy@localhost;
+CREATE USER dummy1@localhost, dummy2@localhost;
+
+SELECT user, host FROM mysql.user WHERE user != 'root'; # root host non-determ
+SELECT COUNT(*) FROM mysql.user;
+sync_slave_with_master;
+--echo **** On Slave ****
+SELECT user,host FROM mysql.user WHERE user != 'root'; # root host non-determ
+SELECT COUNT(*) FROM mysql.user;
+
+--echo **** On Master ****
+connection master;
+
+# No user exists
+error ER_CANNOT_USER;
+DROP USER nonexisting@localhost;
+
+# At least one user exists, but not all
+error ER_CANNOT_USER;
+DROP USER nonexisting@localhost, dummy@localhost;
+
+# All users exist
+DROP USER dummy1@localhost, dummy2@localhost;
+
+SELECT user, host FROM mysql.user WHERE user != 'root'; # root host non-determ
+SELECT COUNT(*) FROM mysql.user;
+sync_slave_with_master;
+--echo **** On Slave ****
+SELECT user,host FROM mysql.user WHERE user != 'root'; # root host non-determ
+SELECT COUNT(*) FROM mysql.user;
+
+--replace_result $MASTER_MYPORT MASTER_PORT
+--replace_column 1 # 8 # 9 # 23 # 33 #
+query_vertical SHOW SLAVE STATUS;
diff --git a/mysql-test/t/rpl_ignore_revoke-slave.opt b/mysql-test/t/rpl_ignore_revoke-slave.opt
new file mode 100644
index 00000000000..e931bfbd37e
--- /dev/null
+++ b/mysql-test/t/rpl_ignore_revoke-slave.opt
@@ -0,0 +1 @@
+--replicate-wild-ignore-table=mysql.%
diff --git a/mysql-test/t/rpl_ignore_revoke.test b/mysql-test/t/rpl_ignore_revoke.test
new file mode 100644
index 00000000000..00171605a92
--- /dev/null
+++ b/mysql-test/t/rpl_ignore_revoke.test
@@ -0,0 +1,51 @@
+# test verifies that REVOKE must not be replicated when
+# slave server starts with --replicate-wild-ignore-table=mysql.%
+# the option is set in rpl_ignore_revoke-slave.opt
+# The first part of BUG#9483 for GRANT is checked by
+# existed specific rpl_ignore_grant test case (BUG#980)
+
+
+source include/master-slave.inc;
+
+### CLEAN-UP: create an account and manually duplicate it on the slave
+
+connection master;
+grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
+revoke select on *.* from 'user_foo'@'%';
+select select_priv from mysql.user where user='user_foo' /* master:must be N */;
+
+sync_slave_with_master;
+#connection slave;
+grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
+revoke select on *.* from 'user_foo'@'%';
+select select_priv from mysql.user where user='user_foo' /* slave:must be N */;
+
+
+### TEST
+
+#connection slave;
+grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
+select select_priv from mysql.user where user='user_foo' /* slave:must be Y */;
+
+connection master;
+revoke select on *.* from 'user_foo';
+select select_priv from mysql.user where user='user_foo' /* master:must be N */;
+
+sync_slave_with_master;
+#connection slave;
+select select_priv from mysql.user where user='user_foo' /* slave:must get Y */;
+
+### CLEAN-UP
+
+connection slave;
+--disable_abort_on_error
+revoke select on *.* FROM 'user_foo';
+--enable_abort_on_error
+
+connection master;
+delete from mysql.user where user="user_foo";
+sync_slave_with_master;
+
+# Since changes to mysql.* are ignored, the revoke need to
+# be done on slave as well
+delete from mysql.user where user="user_foo";
diff --git a/mysql-test/t/rpl_ignore_table-slave.opt b/mysql-test/t/rpl_ignore_table-slave.opt
index cb49119bfcb..3aabbb2e0f5 100644
--- a/mysql-test/t/rpl_ignore_table-slave.opt
+++ b/mysql-test/t/rpl_ignore_table-slave.opt
@@ -1 +1 @@
---replicate-ignore-table=test.t1 --replicate-ignore-table=test.t2 --replicate-ignore-table=test.t3
+--replicate-ignore-table=test.t1 --replicate-ignore-table=test.t2 --replicate-ignore-table=test.t3 --replicate-wild-ignore-table=%.tmptbl%
diff --git a/mysql-test/t/rpl_ignore_table.test b/mysql-test/t/rpl_ignore_table.test
index 660921a94be..79235f0cd4a 100644
--- a/mysql-test/t/rpl_ignore_table.test
+++ b/mysql-test/t/rpl_ignore_table.test
@@ -124,3 +124,27 @@ delete from mysql.db where user like "mysqltest%";
delete from mysql.tables_priv where user like "mysqltest%";
delete from mysql.columns_priv where user like "mysqltest%";
sync_slave_with_master;
+
+connection master;
+
+#
+# bug#22877 replication character sets get out of sync
+# using replicate-wild-ignore-table
+#
+--disable_warnings
+DROP TABLE IF EXISTS t5;
+--enable_warnings
+CREATE TABLE t5 (
+ word varchar(50) collate utf8_unicode_ci NOT NULL default ''
+) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+SET @@session.character_set_client=33,@@session.collation_connection=192;
+CREATE TEMPORARY TABLE tmptbl504451f4258$1 (id INT NOT NULL) ENGINE=MEMORY;
+INSERT INTO t5 (word) VALUES ('TEST’');
+SELECT HEX(word) FROM t5;
+sync_slave_with_master;
+connection slave;
+SELECT HEX(word) FROM t5;
+--error 1146
+SELECT * FROM tmptbl504451f4258$1;
+connection master;
+DROP TABLE t5;
diff --git a/mysql-test/t/rpl_init_slave.test b/mysql-test/t/rpl_init_slave.test
index cefb04a7b75..139b4902e12 100644
--- a/mysql-test/t/rpl_init_slave.test
+++ b/mysql-test/t/rpl_init_slave.test
@@ -17,6 +17,8 @@ show variables like 'max_connections';
save_master_pos;
connection slave;
sync_with_master;
+# Save variable value
+set @my_global_init_connect= @@global.init_connect;
set global init_connect="set @c=1";
show variables like 'init_connect';
connection master;
@@ -25,4 +27,8 @@ connection slave;
sync_with_master;
stop slave;
+# Restore changed global variable
+set global init_connect= @my_global_init_connect;
+set global max_connections= default;
+
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_innodb.test b/mysql-test/t/rpl_innodb.test
index 551657fd7e3..b88276e2107 100644
--- a/mysql-test/t/rpl_innodb.test
+++ b/mysql-test/t/rpl_innodb.test
@@ -18,7 +18,7 @@ CREATE TABLE t4 (
--disable_warnings
LOAD DATA
- INFILE '../../std_data/loaddata_pair.dat'
+ INFILE '../std_data_ln/loaddata_pair.dat'
REPLACE INTO TABLE t4
(name,number);
--enable_warnings
@@ -30,7 +30,7 @@ SELECT * FROM t4;
connection master;
--disable_warnings
LOAD DATA
- INFILE '../../std_data/loaddata_pair.dat'
+ INFILE '../std_data_ln/loaddata_pair.dat'
REPLACE INTO TABLE t4
(name,number);
--enable_warnings
diff --git a/mysql-test/t/rpl_insert_delayed.test b/mysql-test/t/rpl_insert_delayed.test
new file mode 100644
index 00000000000..09e0c5cc2e9
--- /dev/null
+++ b/mysql-test/t/rpl_insert_delayed.test
@@ -0,0 +1,97 @@
+--source include/master-slave.inc
+--source include/not_embedded.inc
+--source include/not_windows.inc
+
+connection master;
+
+let $binlog_format_statement=1;
+
+CREATE TABLE t1 (id INT primary key auto_increment, name VARCHAR(64));
+
+sync_slave_with_master;
+
+#
+# BUG#26116 "If multi-row INSERT DELAYED has errors,
+# statement-based binlogging breaks";
+# happened only in statement-based binlogging.
+#
+
+connection master;
+truncate table t1;
+# first scenario: duplicate on first row
+insert delayed into t1 values(10, "my name");
+if ($binlog_format_statement)
+{
+ # statement below will be converted to non-delayed INSERT and so
+ # will stop at first error, guaranteeing replication.
+ --error ER_DUP_ENTRY
+ insert delayed into t1 values(10, "is Bond"), (20, "James Bond");
+}
+if (!$binlog_format_statement)
+{
+ insert delayed into t1 values(10, "is Bond"), (20, "James Bond");
+}
+flush table t1; # to wait for INSERT DELAYED to be done
+select * from t1;
+sync_slave_with_master;
+# when bug existed in statement-based binlogging, t1 on slave had
+# different content from on master
+select * from t1;
+
+# second scenario: duplicate on second row
+connection master;
+delete from t1 where id!=10;
+if ($binlog_format_statement)
+{
+ # statement below will be converted to non-delayed INSERT and so
+ # will be binlogged with its ER_DUP_ENTRY error code, guaranteeing
+ # replication (slave will hit the same error code and so be fine).
+ --error ER_DUP_ENTRY
+ insert delayed into t1 values(20, "is Bond"), (10, "James Bond");
+}
+if (!$binlog_format_statement)
+{
+ insert delayed into t1 values(20, "is Bond"), (10, "James Bond");
+}
+flush table t1; # to wait for INSERT DELAYED to be done
+select * from t1;
+sync_slave_with_master;
+# when bug existed in statement-based binlogging, query was binlogged
+# with error_code=0 so slave stopped
+select * from t1;
+
+# clean up
+connection master;
+drop table t1;
+sync_slave_with_master;
+connection master;
+
+#
+# Bug #29571: INSERT DELAYED IGNORE written to binary log on the master but
+# on the slave
+#
+CREATE TABLE t1(a int, UNIQUE(a));
+INSERT DELAYED IGNORE INTO t1 VALUES(1);
+INSERT DELAYED IGNORE INTO t1 VALUES(1);
+flush table t1; # to wait for INSERT DELAYED to be done
+
+#must show two INSERT DELAYED
+--replace_column 1 x 2 x 3 x 4 x 5 x
+show binlog events limit 11,100;
+select * from t1;
+
+sync_slave_with_master;
+echo On slave;
+#must show two INSERT DELAYED
+--replace_column 1 x 2 x 3 x 4 x 5 x
+show binlog events limit 12,100;
+select * from t1;
+
+
+# clean up
+connection master;
+drop table t1;
+sync_slave_with_master;
+connection master;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/rpl_insert_id.test b/mysql-test/t/rpl_insert_id.test
index 7fb514fb7af..be2948e9678 100644
--- a/mysql-test/t/rpl_insert_id.test
+++ b/mysql-test/t/rpl_insert_id.test
@@ -87,13 +87,16 @@ SET FOREIGN_KEY_CHECKS=0;
--error 1062
INSERT INTO t1 VALUES (1),(1);
sync_slave_with_master;
+
+connection master;
+drop table t1;
+sync_slave_with_master;
--echo #
--echo # Bug#14553: NULL in WHERE resets LAST_INSERT_ID
--echo #
connection master;
-drop table t1;
create table t1(a int auto_increment, key(a));
create table t2(a int);
insert into t1 (a) values (null);
@@ -108,38 +111,325 @@ drop table t1;
drop table t2;
sync_slave_with_master;
+--echo #
+--echo # End of 4.1 tests
+--echo #
#
-# BUG#21726: Incorrect result with multiple invocations of
-# LAST_INSERT_ID
+# BUG#15728: LAST_INSERT_ID function inside a stored function returns 0
+#
+# The solution is not to reset last_insert_id on enter to sub-statement.
+#
+connection master;
+--disable_warnings
+drop function if exists bug15728;
+drop function if exists bug15728_insert;
+drop table if exists t1, t2;
+--enable_warnings
+
+create table t1 (
+ id int not null auto_increment,
+ last_id int,
+ primary key (id)
+);
+create function bug15728() returns int(11)
+ return last_insert_id();
+
+insert into t1 (last_id) values (0);
+insert into t1 (last_id) values (last_insert_id());
+insert into t1 (last_id) values (bug15728());
+
+# Check that nested call replicates too.
+create table t2 (
+ id int not null auto_increment,
+ last_id int,
+ primary key (id)
+);
+delimiter |;
+create function bug15728_insert() returns int(11) modifies sql data
+begin
+ insert into t2 (last_id) values (bug15728());
+ return bug15728();
+end|
+create trigger t1_bi before insert on t1 for each row
+begin
+ declare res int;
+ select bug15728_insert() into res;
+ set NEW.last_id = res;
+end|
+delimiter ;|
+
+insert into t1 (last_id) values (0);
+
+drop trigger t1_bi;
+
+# Check that nested call doesn't affect outer context.
+select last_insert_id();
+select bug15728_insert();
+select last_insert_id();
+insert into t1 (last_id) values (bug15728());
+# This should be exactly one greater than in the previous call.
+select last_insert_id();
+
+save_master_pos;
+connection slave;
+sync_with_master;
+select * from t1;
+select * from t2;
+connection master;
+
+drop function bug15728;
+drop function bug15728_insert;
+drop table t1, t2;
+
+# test of BUG#20188 REPLACE or ON DUPLICATE KEY UPDATE in
+# auto_increment breaks binlog
+
+create table t1 (n int primary key auto_increment not null,
+b int, unique(b));
+
+# First, test that we do not call restore_auto_increment() too early
+# in write_record():
+set sql_log_bin=0;
+insert into t1 values(null,100);
+replace into t1 values(null,50),(null,100),(null,150);
+select * from t1 order by n;
+truncate table t1;
+set sql_log_bin=1;
+
+insert into t1 values(null,100);
+select * from t1 order by n;
+sync_slave_with_master;
+# make slave's table autoinc counter bigger
+insert into t1 values(null,200),(null,300);
+delete from t1 where b <> 100;
+# check that slave's table content is identical to master
+select * from t1 order by n;
+# only the auto_inc counter differs.
+
+connection master;
+replace into t1 values(null,100),(null,350);
+select * from t1 order by n;
+sync_slave_with_master;
+select * from t1 order by n;
+
+# Same test as for REPLACE, but for ON DUPLICATE KEY UPDATE
+
+# We first check that if we update a row using a value larger than the
+# table's counter, the counter for next row is bigger than the
+# after-value of the updated row.
+connection master;
+insert into t1 values (NULL,400),(3,500),(NULL,600) on duplicate key UPDATE n=1000;
+select * from t1 order by n;
+sync_slave_with_master;
+select * from t1 order by n;
+
+# and now test for the bug:
+connection master;
+drop table t1;
+create table t1 (n int primary key auto_increment not null,
+b int, unique(b));
+insert into t1 values(null,100);
+select * from t1 order by n;
+sync_slave_with_master;
+insert into t1 values(null,200),(null,300);
+delete from t1 where b <> 100;
+select * from t1 order by n;
+
+connection master;
+insert into t1 values(null,100),(null,350) on duplicate key update n=2;
+select * from t1 order by n;
+sync_slave_with_master;
+select * from t1 order by n;
+
+connection master;
+drop table t1;
+
#
+# BUG#24432 "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
+#
+
+# testcase with INSERT VALUES
+CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
+UNIQUE(b));
+INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
+SELECT * FROM t1;
+sync_slave_with_master;
+SELECT * FROM t1;
+connection master;
+drop table t1;
+
+# tescase with INSERT SELECT
+CREATE TABLE t1 (
+ id bigint(20) unsigned NOT NULL auto_increment,
+ field_1 int(10) unsigned NOT NULL,
+ field_2 varchar(255) NOT NULL,
+ field_3 varchar(255) NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE KEY field_1 (field_1, field_2)
+);
+CREATE TABLE t2 (
+ field_a int(10) unsigned NOT NULL,
+ field_b varchar(255) NOT NULL,
+ field_c varchar(255) NOT NULL
+);
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (1, 'a', '1a');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (2, 'b', '2b');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (3, 'c', '3c');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (4, 'd', '4d');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (5, 'e', '5e');
+# Updating table t1 based on values from table t2
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+# Inserting new record into t2
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (6, 'f', '6f');
+# Updating t1 again
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+SELECT * FROM t1;
+sync_slave_with_master;
+SELECT * FROM t1;
+connection master;
+drop table t1, t2;
+
+#
+# BUG#20339: stored procedure using LAST_INSERT_ID() does not
+# replicate statement-based
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+# Reset result of LAST_INSERT_ID().
+SELECT LAST_INSERT_ID(0);
+
+CREATE TABLE t1 (
+ id INT NOT NULL DEFAULT 0,
+ last_id INT,
+ PRIMARY KEY (id)
+);
+
+CREATE TABLE t2 (
+ id INT NOT NULL AUTO_INCREMENT,
+ last_id INT,
+ PRIMARY KEY (id)
+);
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ INSERT INTO t2 (last_id) VALUES (LAST_INSERT_ID());
+ INSERT INTO t1 (last_id) VALUES (LAST_INSERT_ID());
+END|
+delimiter ;|
+
+CALL p1();
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+sync_slave_with_master;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
connection master;
+DROP PROCEDURE p1;
+DROP TABLE t1, t2;
+
+
+#
+# BUG#21726: Incorrect result with multiple invocations of
+# LAST_INSERT_ID
+#
--disable_warnings
-DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+DROP TABLE IF EXISTS t1, t2;
--enable_warnings
CREATE TABLE t1 (
i INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
j INT DEFAULT 0
);
+CREATE TABLE t2 (i INT);
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ INSERT INTO t1 (i) VALUES (NULL);
+ INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+ INSERT INTO t1 (i) VALUES (NULL), (NULL);
+ INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+END |
+
+CREATE FUNCTION f1() RETURNS INT MODIFIES SQL DATA
+BEGIN
+ INSERT INTO t1 (i) VALUES (NULL);
+ INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+ INSERT INTO t1 (i) VALUES (NULL), (NULL);
+ INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+ RETURN 0;
+END |
+
+CREATE FUNCTION f2() RETURNS INT NOT DETERMINISTIC
+ RETURN LAST_INSERT_ID() |
+
+CREATE FUNCTION f3() RETURNS INT MODIFIES SQL DATA
+BEGIN
+ INSERT INTO t2 (i) VALUES (LAST_INSERT_ID());
+ RETURN 0;
+END |
+delimiter ;|
INSERT INTO t1 VALUES (NULL, -1);
+CALL p1();
+SELECT f1();
+INSERT INTO t1 VALUES (NULL, f2()), (NULL, LAST_INSERT_ID()),
+ (NULL, LAST_INSERT_ID()), (NULL, f2()), (NULL, f2());
+INSERT INTO t1 VALUES (NULL, f2());
INSERT INTO t1 VALUES (NULL, LAST_INSERT_ID()), (NULL, LAST_INSERT_ID(5)),
(NULL, @@LAST_INSERT_ID);
# Test replication of substitution "IS NULL" -> "= LAST_INSERT_ID".
INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
UPDATE t1 SET j= -1 WHERE i IS NULL;
+# Test statement-based replication of function calls.
+INSERT INTO t1 (i) VALUES (NULL);
+
+connection master1;
+INSERT INTO t1 (i) VALUES (NULL);
+
+connection master;
+SELECT f3();
+
SELECT * FROM t1;
+SELECT * FROM t2;
sync_slave_with_master;
SELECT * FROM t1;
+SELECT * FROM t2;
connection master;
-DROP TABLE t1;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;
+DROP TABLE t1, t2;
+
+
+sync_slave_with_master;
+
+--echo
+--echo # End of 5.0 tests
+--echo
---echo #
---echo # End of 4.1 tests
---echo #
diff --git a/mysql-test/t/rpl_known_bugs_detection-master.opt b/mysql-test/t/rpl_known_bugs_detection-master.opt
new file mode 100644
index 00000000000..d4ba386a1a0
--- /dev/null
+++ b/mysql-test/t/rpl_known_bugs_detection-master.opt
@@ -0,0 +1 @@
+--loose-debug=d,pretend_version_50034_in_binlog
diff --git a/mysql-test/t/rpl_known_bugs_detection.test b/mysql-test/t/rpl_known_bugs_detection.test
new file mode 100644
index 00000000000..4719716d4a1
--- /dev/null
+++ b/mysql-test/t/rpl_known_bugs_detection.test
@@ -0,0 +1,90 @@
+# Test to see if slave can detect certain known bugs present
+# on the master, and appropriately decides to stop
+# (assuming the bug is fixed in the slave, slave cannot of course
+# imitate the bug, so it has to stop).
+
+source include/have_debug.inc;
+source include/master-slave.inc;
+
+#
+# This is to test that slave properly detects if
+# master may suffer from:
+# BUG#24432 "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
+# (i.e. on master, INSERT ON DUPLICATE KEY UPDATE is used and manipulates
+# an auto_increment column, and is binlogged statement-based).
+#
+
+# testcase with INSERT VALUES
+CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
+UNIQUE(b));
+sync_slave_with_master;
+connection master;
+INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
+SELECT * FROM t1;
+connection slave;
+wait_for_slave_to_stop;
+# show the error message
+--replace_column 1 # 4 # 7 # 8 # 9 # 23 # 33 #
+--query_vertical show slave status;
+# show that it was not replicated
+SELECT * FROM t1;
+
+# restart replication for the next testcase
+stop slave;
+reset slave;
+connection master;
+reset master;
+drop table t1;
+connection slave;
+start slave;
+
+# testcase with INSERT SELECT
+connection master;
+CREATE TABLE t1 (
+ id bigint(20) unsigned NOT NULL auto_increment,
+ field_1 int(10) unsigned NOT NULL,
+ field_2 varchar(255) NOT NULL,
+ field_3 varchar(255) NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE KEY field_1 (field_1, field_2)
+);
+CREATE TABLE t2 (
+ field_a int(10) unsigned NOT NULL,
+ field_b varchar(255) NOT NULL,
+ field_c varchar(255) NOT NULL
+);
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (1, 'a', '1a');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (2, 'b', '2b');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (3, 'c', '3c');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (4, 'd', '4d');
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (5, 'e', '5e');
+sync_slave_with_master;
+connection master;
+# Updating table t1 based on values from table t2
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+# Inserting new record into t2
+INSERT INTO t2 (field_a, field_b, field_c) VALUES (6, 'f', '6f');
+# Updating t1 again
+INSERT INTO t1 (field_1, field_2, field_3)
+SELECT t2.field_a, t2.field_b, t2.field_c
+FROM t2
+ON DUPLICATE KEY UPDATE
+t1.field_3 = t2.field_c;
+SELECT * FROM t1;
+connection slave;
+wait_for_slave_to_stop;
+# show the error message
+--replace_column 1 # 4 # 7 # 8 # 9 # 23 # 33 #
+--query_vertical show slave status;
+# show that it was not replicated
+SELECT * FROM t1;
+connection master;
+drop table t1, t2;
+connection slave;
+drop table t1, t2;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/rpl_loaddata.test b/mysql-test/t/rpl_loaddata.test
index 65855dd3ceb..a4781ed4faa 100644
--- a/mysql-test/t/rpl_loaddata.test
+++ b/mysql-test/t/rpl_loaddata.test
@@ -12,16 +12,17 @@
# Last_slave_errno in SHOW SLAVE STATUS (1st and 3rd commands did not: bug 986)
source include/master-slave.inc;
+source include/have_innodb.inc;
connection slave;
reset master;
connection master;
create table t1(a int not null auto_increment, b int, primary key(a) );
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
create temporary table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60));
-load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines;
+load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines;
create table t3 (day date,id int(9),category enum('a','b','c'),name varchar(60));
insert into t3 select * from t2;
@@ -36,8 +37,7 @@ select * from t3;
# But we can't simply read this binlog, because as the slave has not been
# restarted for this test, the file_id is uncertain (would cause test
# failures). So instead, we test if the binlog looks long enough to
-# contain LOAD DATA. That is, I (Guilhem) have done SHOW BINLOG EVENTS on my
-# machine, saw that the binlog is of size 964 when things go fine.
+# contain LOAD DATA. Since 5.0.3 we assume that binlog of 1292 is ok.
# If LOAD DATA was not logged, the binlog would be shorter.
show master status;
@@ -57,7 +57,7 @@ sync_with_master;
insert into t1 values(1,10);
connection master;
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
@@ -81,10 +81,12 @@ connection master;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
-# The SQL slave thread should be stopped now.
+# The SQL slave thread should be stopped now.
+# Exec_Master_Log_Pos should point to the start of Execute event
+# for last load data.
wait_for_slave_to_stop;
# CHANGE MASTER and see if error is cleared in SHOW SLAVE STATUS.
@@ -104,7 +106,7 @@ connection master;
set sql_log_bin=0;
delete from t1;
set sql_log_bin=1;
-load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
save_master_pos;
connection slave;
# The SQL slave thread should be stopped now.
@@ -122,14 +124,41 @@ show slave status;
connection master;
reset master;
create table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60),
-unique(day));
+unique(day)) engine=MyISAM; # no transactions
--error 1062
-load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields
+load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
'\n##\n' starting by '>' ignore 1 lines;
-# To test that there is Create_file & Delete_file, we test if the binlog is as
-# long as expected (can't do SHOW BINLOG EVENTS because of varying file_id).
-show master status;
+select * from t2;
+save_master_pos;
+connection slave;
+start slave;
+sync_with_master;
+select * from t2;
+
+# verify that if no error on slave, this is an error
+
+alter table t2 drop key day;
+connection master;
+delete from t2;
+--error 1062
+load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields
+terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
+'\n##\n' starting by '>' ignore 1 lines;
+connection slave;
+wait_for_slave_to_stop;
drop table t2;
+connection master;
+drop table t2;
+drop table t1;
+# BUG#17233 LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed
+CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;
+
+--error 1062
+LOAD DATA INFILE "../std_data_ln/words.dat" INTO TABLE t1;
+
+DROP TABLE t1;
+
+sync_with_master;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_loaddata_charset.test b/mysql-test/t/rpl_loaddata_charset.test
new file mode 100644
index 00000000000..7f2389cb9f6
--- /dev/null
+++ b/mysql-test/t/rpl_loaddata_charset.test
@@ -0,0 +1,33 @@
+#
+# Check LOAD DATA + character sets + replication
+#
+source include/master-slave.inc;
+
+#
+# Bug#15126 character_set_database is not replicated
+# (LOAD DATA INFILE need it)
+#
+connection master;
+create table t1 (a varchar(10) character set utf8);
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=DEFAULT;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=koi8r;
+load data infile '../std_data_ln/loaddata6.dat' into table t1;
+set @@character_set_database=DEFAULT;
+load data infile '../std_data_ln/loaddata6.dat' into table t1 character set koi8r;
+
+select hex(a) from t1;
+
+save_master_pos;
+connection slave;
+sync_with_master;
+
+select hex(a) from t1;
+connection master;
+drop table t1;
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_loaddata_rule_m.test b/mysql-test/t/rpl_loaddata_rule_m.test
index 1ece82122ea..4b8e5326c98 100644
--- a/mysql-test/t/rpl_loaddata_rule_m.test
+++ b/mysql-test/t/rpl_loaddata_rule_m.test
@@ -18,8 +18,16 @@ connection master;
create database mysqltest;
create table t1(a int, b int, unique(b));
use mysqltest;
-load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
-show binlog events from 79; # should be nothing
+load data infile '../std_data_ln/rpl_loaddata.dat' into table test.t1;
+# Starting from 5.0.3 LOAD DATA is replicated much in the same way as ordinary
+# query so "show binlog ..." should show two events (before 5.0.3 no events
+# were returned).
+--replace_column 2 # 5 #
+show binlog events from 98;
+
drop database mysqltest;
+use test;
+drop table t1;
# End of 4.1 tests
+# Adding comment for force manual merge 5.0 -> wl1012: Delete me
diff --git a/mysql-test/t/rpl_loaddata_rule_s.test b/mysql-test/t/rpl_loaddata_rule_s.test
index b4a9b5b2ee0..2061e898811 100644
--- a/mysql-test/t/rpl_loaddata_rule_s.test
+++ b/mysql-test/t/rpl_loaddata_rule_s.test
@@ -9,7 +9,7 @@ reset master;
connection master;
# 'test' is the current database
create table t1(a int, b int, unique(b));
-load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table test.t1;
# Test logging on slave;
@@ -17,6 +17,9 @@ save_master_pos;
connection slave;
sync_with_master;
select count(*) from t1; # check that LOAD was replicated
-show binlog events from 79; # should be nothing
+show binlog events from 98; # should be nothing
+
+connection master;
+drop table t1;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_loaddatalocal.test b/mysql-test/t/rpl_loaddatalocal.test
index fd91aba856a..af4fd0106bd 100644
--- a/mysql-test/t/rpl_loaddatalocal.test
+++ b/mysql-test/t/rpl_loaddatalocal.test
@@ -14,8 +14,7 @@ disable_query_log;
set SQL_LOG_BIN=0;
while ($1)
{
-#eval means expand $ expressions
- eval insert into t1 values(1);
+ insert into t1 values(1);
dec $1;
}
set SQL_LOG_BIN=1;
@@ -26,7 +25,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.sele
truncate table t1;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval load data local infile '$MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile' into table t1;
---remove_file $MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile
+system rm $MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile ;
save_master_pos;
connection slave;
sync_with_master;
@@ -38,3 +37,29 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+
+#
+# Now let us test how well we replicate LOAD DATA LOCAL in situation when
+# we met duplicates in tables to which we are adding rows.
+# (It supposed that LOAD DATA LOCAL ignores such errors)
+#
+connection master;
+create table t1(a int);
+insert into t1 values (1), (2), (2), (3);
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval select * into outfile '$MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile' from t1;
+drop table t1;
+create table t1(a int primary key);
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval load data local infile '$MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile' into table t1;
+system rm $MYSQLTEST_VARDIR/master-data/rpl_loaddatalocal.select_outfile ;
+select * from t1;
+save_master_pos;
+connection slave;
+sync_with_master;
+select * from t1;
+connection master;
+drop table t1;
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/mysql-test/t/rpl_locale.test b/mysql-test/t/rpl_locale.test
index 530a3d77636..2f2d637e1b4 100644
--- a/mysql-test/t/rpl_locale.test
+++ b/mysql-test/t/rpl_locale.test
@@ -9,6 +9,8 @@ connection master;
create table t1 (s1 char(10));
set lc_time_names= 'de_DE';
insert into t1 values (date_format('2001-01-01','%W'));
+set lc_time_names= 'en_US';
+insert into t1 values (date_format('2001-01-01','%W'));
select * from t1;
sync_slave_with_master;
connection slave;
diff --git a/mysql-test/t/rpl_log.test b/mysql-test/t/rpl_log.test
index 40fc36cad4a..578a39efd6e 100644
--- a/mysql-test/t/rpl_log.test
+++ b/mysql-test/t/rpl_log.test
@@ -33,14 +33,14 @@ create table t1(n int not null auto_increment primary key);
insert into t1 values (NULL);
drop table t1;
create table t1 (word char(20) not null);
-load data infile '../../std_data/words.dat' into table t1 ignore 1 lines;
+load data infile '../std_data_ln/words.dat' into table t1 ignore 1 lines;
select count(*) from t1;
drop table t1;
--replace_result $VERSION VERSION
show binlog events;
-show binlog events from 79 limit 1;
-show binlog events from 79 limit 2;
-show binlog events from 79 limit 2,1;
+show binlog events from 98 limit 1;
+show binlog events from 98 limit 2;
+show binlog events from 98 limit 2,1;
flush logs;
# We need an extra update before doing save_master_pos.
@@ -82,6 +82,7 @@ insert into t1 values (1);
drop table t1;
--replace_result $VERSION VERSION
show binlog events;
+--replace_result $VERSION VERSION
show binlog events in 'master-bin.000002';
show binary logs;
save_master_pos;
@@ -123,3 +124,4 @@ select * from t1;
drop table t1;
# End of 4.1 tests
+# Adding comment for force manual merge 5.0 -> wl1012: Delete me
diff --git a/mysql-test/t/rpl_log_pos.test b/mysql-test/t/rpl_log_pos.test
index 25a485c7947..ee8da494f86 100644
--- a/mysql-test/t/rpl_log_pos.test
+++ b/mysql-test/t/rpl_log_pos.test
@@ -4,31 +4,29 @@
source include/master-slave.inc;
show master status;
sync_slave_with_master;
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
-show slave status;
-stop slave;
-change master to master_log_pos=73;
-start slave;
-sleep 5;
+
stop slave;
+--source include/wait_for_slave_to_stop.inc
change master to master_log_pos=73;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
-show slave status;
+--replace_column 1 # 8 # 9 # 23 # 33 #
+query_vertical show slave status;
+
start slave;
-sleep 5;
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
-show slave status;
+let $slave_param= Slave_SQL_Running;
+let $slave_param_value= Yes;
+--source include/wait_for_slave_param.inc
+let $slave_param= Slave_IO_Running;
+let $slave_param_value= No;
+--source include/wait_for_slave_param.inc
stop slave;
-change master to master_log_pos=173;
-start slave;
-sleep 2;
+--source include/wait_for_slave_to_stop.inc
+
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
-show slave status;
+--replace_column 1 # 8 # 9 # 23 # 33 #
+query_vertical show slave status;
+
connection master;
show master status;
create table if not exists t1 (n int);
@@ -37,8 +35,7 @@ create table t1 (n int);
insert into t1 values (1),(2),(3);
save_master_pos;
connection slave;
-stop slave;
-change master to master_log_pos=79;
+change master to master_log_pos=98;
start slave;
sync_with_master;
select * from t1;
@@ -46,4 +43,4 @@ connection master;
drop table t1;
sync_slave_with_master;
-# End of 4.1 tests
+--echo End of 5.0 tests
diff --git a/mysql-test/t/rpl_max_relay_size.test b/mysql-test/t/rpl_max_relay_size.test
index 003f60df28f..e5278ff5727 100644
--- a/mysql-test/t/rpl_max_relay_size.test
+++ b/mysql-test/t/rpl_max_relay_size.test
@@ -32,6 +32,7 @@ reset slave;
--echo # Test 1
--echo #
+set @my_max_binlog_size= @@global.max_binlog_size;
set global max_binlog_size=8192;
set global max_relay_log_size=8192-1; # mapped to 4096
select @@global.max_relay_log_size;
@@ -127,4 +128,10 @@ connection master;
flush logs;
show master status;
-# End of 4.1 tests
+# Restore max_binlog_size
+connection slave;
+set global max_binlog_size= @my_max_binlog_size;
+
+--echo #
+--echo # End of 4.1 tests
+--echo #
diff --git a/mysql-test/t/rpl_misc_functions-slave.sh b/mysql-test/t/rpl_misc_functions-slave.sh
index c293715e16f..8ce79797822 100755
--- a/mysql-test/t/rpl_misc_functions-slave.sh
+++ b/mysql-test/t/rpl_misc_functions-slave.sh
@@ -1 +1 @@
-rm -f $MYSQL_TEST_DIR/var/master-data/test/rpl_misc_functions.outfile
+rm -f $MYSQLTEST_VARDIR/master-data/test/rpl_misc_functions.outfile
diff --git a/mysql-test/t/rpl_misc_functions.test b/mysql-test/t/rpl_misc_functions.test
index f20d0aa83e4..1c94471c975 100644
--- a/mysql-test/t/rpl_misc_functions.test
+++ b/mysql-test/t/rpl_misc_functions.test
@@ -24,9 +24,91 @@ select * into outfile 'rpl_misc_functions.outfile' from t1;
sync_slave_with_master;
create table t2 like t1;
# read the values from the master table
-load data local infile './var/master-data/test/rpl_misc_functions.outfile' into table t2;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval load data local infile '$MYSQLTEST_VARDIR/master-data/test/rpl_misc_functions.outfile' into table t2;
# compare them with the replica; the SELECT below should return no row
select * from t1, t2 where (t1.id=t2.id) and not(t1.i=t2.i and t1.r1=t2.r1 and t1.r2=t2.r2 and t1.p=t2.p);
-stop slave;
+
+connection master;
+drop table t1;
# End of 4.1 tests
+
+#
+# BUG#25543 test calling rand() multiple times on the master in
+# a stored procedure.
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ col_a DOUBLE DEFAULT NULL);
+
+DELIMITER |;
+
+# Use a SP that calls rand() multiple times
+CREATE PROCEDURE test_replication_sp1()
+BEGIN
+ INSERT INTO t1 (col_a) VALUES (rand()), (rand());
+ INSERT INTO t1 (col_a) VALUES (rand());
+END|
+
+# Use a SP that calls another SP to call rand() multiple times
+CREATE PROCEDURE test_replication_sp2()
+BEGIN
+ CALL test_replication_sp1();
+ CALL test_replication_sp1();
+END|
+
+# Use a SF that calls rand() multiple times
+CREATE FUNCTION test_replication_sf() RETURNS DOUBLE DETERMINISTIC
+BEGIN
+ RETURN (rand() + rand());
+END|
+
+DELIMITER ;|
+
+# Exercise the functions and procedures then compare the results on
+# the master to those on the slave.
+CALL test_replication_sp1();
+CALL test_replication_sp2();
+INSERT INTO t1 (col_a) VALUES (test_replication_sf());
+INSERT INTO t1 (col_a) VALUES (test_replication_sf());
+INSERT INTO t1 (col_a) VALUES (test_replication_sf());
+
+--sync_slave_with_master
+
+# Dump table on slave
+select * from t1 into outfile "../tmp/t1_slave.txt";
+
+# Load data from slave into temp table on master
+connection master;
+create temporary table t1_slave select * from t1 where 1=0;
+load data infile '../tmp/t1_slave.txt' into table t1_slave;
+--remove_file $MYSQLTEST_VARDIR/tmp/t1_slave.txt
+
+# Compare master and slave temp table, use subtraction
+# for floating point comparison of "double"
+select count(*) into @aux from t1 join t1_slave using (id)
+where ABS(t1.col_a - t1_slave.col_a) < 0.0000001 ;
+SELECT @aux;
+if (`SELECT @aux <> 12 OR @aux IS NULL`)
+{
+ --echo # ERROR: We expected to get count(*) = 12.
+ SELECT id, col_a FROM t1;
+ SELECT id, col_a FROM t1_slave;
+ --echo # abort
+ exit;
+}
+
+# Cleanup
+connection master;
+DROP TABLE t1, t1_slave;
+DROP PROCEDURE test_replication_sp1;
+DROP PROCEDURE test_replication_sp2;
+DROP FUNCTION test_replication_sf;
+--sync_slave_with_master
+
+
diff --git a/mysql-test/t/rpl_multi_delete.test b/mysql-test/t/rpl_multi_delete.test
index 2fd7b820b1a..4a8c0ab6912 100644
--- a/mysql-test/t/rpl_multi_delete.test
+++ b/mysql-test/t/rpl_multi_delete.test
@@ -16,10 +16,26 @@ sync_with_master;
select * from t1;
select * from t2;
+# End of 4.1 tests
+
+# Check if deleting 0 rows is binlogged (BUG#13348)
+
connection master;
-drop table t1,t2;
-save_master_pos;
-connection slave;
-sync_with_master;
+delete from t1;
+delete from t2;
-# End of 4.1 tests
+sync_slave_with_master;
+# force a difference to see if master's multi-DELETE will correct it
+insert into t1 values(1);
+insert into t2 values(1);
+
+connection master;
+DELETE t1.*, t2.* from t1, t2;
+
+sync_slave_with_master;
+select * from t1;
+select * from t2;
+
+connection master;
+drop table t1,t2;
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_multi_query.test b/mysql-test/t/rpl_multi_query.test
index 7c764bd4ea2..b4cd88f756e 100644
--- a/mysql-test/t/rpl_multi_query.test
+++ b/mysql-test/t/rpl_multi_query.test
@@ -24,8 +24,9 @@ sync_slave_with_master;
select * from mysqltest.t1;
connection master;
--replace_column 2 # 5 #
-show binlog events from 79;
+show binlog events from 98;
drop database mysqltest;
sync_slave_with_master;
# End of 4.1 tests
+#
diff --git a/mysql-test/t/rpl_multi_update.test b/mysql-test/t/rpl_multi_update.test
index dd75edb3055..f6a960434ad 100644
--- a/mysql-test/t/rpl_multi_update.test
+++ b/mysql-test/t/rpl_multi_update.test
@@ -24,3 +24,26 @@ connection slave;
sync_with_master;
# End of 4.1 tests
+
+# Check if updating 0 rows is binlogged (BUG#13348)
+
+connection master;
+delete from t1;
+delete from t2;
+insert into t1 values(1,1);
+insert into t2 values(1,1);
+
+sync_slave_with_master;
+# force a difference to see if master's multi-UPDATE will correct it
+update t1 set a=2;
+
+connection master;
+UPDATE t1, t2 SET t1.a = t2.a;
+
+sync_slave_with_master;
+select * from t1;
+select * from t2;
+
+connection master;
+drop table t1, t2;
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_multi_update3.test b/mysql-test/t/rpl_multi_update3.test
index 36ac7a59cb3..8d566764ad9 100644
--- a/mysql-test/t/rpl_multi_update3.test
+++ b/mysql-test/t/rpl_multi_update3.test
@@ -217,4 +217,7 @@ select "-- SLAVE AFTER JOIN --" as "";
select * from t1;
select * from t2;
+connection master;
+drop table t1, t2;
+sync_slave_with_master;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_ndb_innodb_trans-slave.opt b/mysql-test/t/rpl_ndb_innodb_trans-slave.opt
new file mode 100644
index 00000000000..627becdbfb5
--- /dev/null
+++ b/mysql-test/t/rpl_ndb_innodb_trans-slave.opt
@@ -0,0 +1 @@
+--innodb
diff --git a/mysql-test/t/rpl_ndb_innodb_trans.test b/mysql-test/t/rpl_ndb_innodb_trans.test
new file mode 100644
index 00000000000..127c2464570
--- /dev/null
+++ b/mysql-test/t/rpl_ndb_innodb_trans.test
@@ -0,0 +1,66 @@
+# Test of a transaction mixing the two engines
+
+-- source include/have_ndb.inc
+-- source include/have_innodb.inc
+-- source include/master-slave.inc
+
+create table t1 (a int, unique(a)) engine=ndbcluster;
+create table t2 (a int, unique(a)) engine=innodb;
+
+
+begin;
+insert into t1 values(1);
+insert into t2 values(1);
+rollback;
+
+select count(*) from t1;
+select count(*) from t2;
+sync_slave_with_master;
+select count(*) from t1;
+select count(*) from t2;
+connection master;
+
+begin;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t2;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
+rollback;
+
+select count(*) from t1;
+select count(*) from t2;
+sync_slave_with_master;
+select count(*) from t1;
+select count(*) from t2;
+connection master;
+
+delete from t1;
+delete from t2;
+begin;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t2;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
+rollback;
+
+select count(*) from t1;
+select count(*) from t2;
+sync_slave_with_master;
+select count(*) from t1;
+select count(*) from t2;
+connection master;
+
+delete from t1;
+delete from t2;
+begin;
+insert into t2 values(3),(4);
+insert into t1 values(3),(4);
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t2;
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1;
+rollback;
+
+select count(*) from t1;
+select count(*) from t2;
+sync_slave_with_master;
+select count(*) from t1;
+select count(*) from t2;
+connection master;
+
+drop table t1,t2;
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_openssl.test b/mysql-test/t/rpl_openssl.test
index 83a3a340e6d..085620a9692 100644
--- a/mysql-test/t/rpl_openssl.test
+++ b/mysql-test/t/rpl_openssl.test
@@ -1,4 +1,4 @@
-source include/have_openssl_1.inc;
+source include/have_ssl.inc;
source include/master-slave.inc;
# We don't test all types of ssl auth params here since it's a bit hard
@@ -45,7 +45,7 @@ select * from t1;
#checking show slave status
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
#checking if replication works without ssl also performing clean up
@@ -53,12 +53,13 @@ stop slave;
change master to master_user='root',master_password='', master_ssl=0;
start slave;
connection master;
+drop user replssl@localhost;
drop table t1;
save_master_pos;
connection slave;
sync_with_master;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_packet.test b/mysql-test/t/rpl_packet.test
index d01979a4731..f410b561663 100644
--- a/mysql-test/t/rpl_packet.test
+++ b/mysql-test/t/rpl_packet.test
@@ -36,4 +36,37 @@ save_master_pos;
connection slave;
sync_with_master;
+#
+# Bug #23755: Replicated event larger that max_allowed_packet infinitely re-transmits
+#
+# Check that a situation when the size of event on the master is greater than
+# max_allowed_packet on the slave does not lead to infinite re-transmits.
+
+connection master;
+
+# Change the max packet size on master
+
+SET @@global.max_allowed_packet=4096;
+SET @@global.net_buffer_length=4096;
+
+# Restart slave for new setting to take effect
+connection slave;
+STOP SLAVE;
+START SLAVE;
+
+# Reconnect to master for new setting to take effect
+disconnect master;
+connect (master, localhost, root);
+connection master;
+
+CREATE TABLe `t1` (`f1` LONGTEXT) ENGINE=MyISAM;
+
+INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2048');
+
+# The slave I/O thread must stop after trying to read the above event
+connection slave;
+sleep 2;
+SHOW STATUS LIKE 'Slave_running';
+
+
# End of tests
diff --git a/mysql-test/t/rpl_redirect.test b/mysql-test/t/rpl_redirect.test
index 18f68b1fd03..beb18348b40 100644
--- a/mysql-test/t/rpl_redirect.test
+++ b/mysql-test/t/rpl_redirect.test
@@ -14,7 +14,7 @@ sync_with_master;
#discover slaves
connection master;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
SHOW SLAVE STATUS;
--replace_result $SLAVE_MYPORT SLAVE_PORT
SHOW SLAVE HOSTS;
diff --git a/mysql-test/t/rpl_relayrotate-slave.opt b/mysql-test/t/rpl_relayrotate-slave.opt
index 8b671423363..3a4abbf091e 100644
--- a/mysql-test/t/rpl_relayrotate-slave.opt
+++ b/mysql-test/t/rpl_relayrotate-slave.opt
@@ -1,4 +1,3 @@
--O max_binlog_size=16384
+-O max_relay_log_size=16384
--innodb
--log-warnings
-
diff --git a/mysql-test/t/rpl_relayspace.test b/mysql-test/t/rpl_relayspace.test
index 70315c14f34..d4ef2fe59bd 100644
--- a/mysql-test/t/rpl_relayspace.test
+++ b/mysql-test/t/rpl_relayspace.test
@@ -14,6 +14,22 @@ connection slave;
reset slave;
start slave io_thread;
# Give the I/O thread time to block.
+let $run= 1;
+let $counter= 300;
+while ($run)
+{
+ let $io_state= query_get_value("SHOW SLAVE STATUS", Slave_IO_State, 1);
+ if (`SELECT '$io_state' = 'Waiting for the slave SQL thread to free enough relay log space'`){
+ let $run= 0;
+ }
+ sleep 0.1;
+ if (!$counter){
+ --echo "Failed while waiting for slave IO thread block"
+ SHOW SLAVE STATUS;
+ exit;
+ }
+ dec $counter;
+}
sleep 2;
# A bug caused the I/O thread to refuse stopping.
stop slave io_thread;
diff --git a/mysql-test/t/rpl_replicate_do.test b/mysql-test/t/rpl_replicate_do.test
index b8559af2394..0e95d71514b 100644
--- a/mysql-test/t/rpl_replicate_do.test
+++ b/mysql-test/t/rpl_replicate_do.test
@@ -12,7 +12,7 @@ create table t2 (n int);
insert into t2 values(4);
connection master;
create table t2 (s char(20));
-load data infile '../../std_data/words.dat' into table t2;
+load data infile '../std_data_ln/words.dat' into table t2;
insert into t2 values('five');
create table t1 (m int);
insert into t1 values(15),(16),(17);
@@ -54,4 +54,40 @@ connection slave;
set one_shot time_zone='met';
select * from t1;
+connection master;
+drop table t1;
+sync_slave_with_master;
+
# End of 4.1 tests
+
+#
+# Bug#24478 DROP TRIGGER is not caught by replicate-*-table filters
+#
+--echo *** master ***
+connection master;
+create table t1 (a int, b int);
+create trigger trg1 before insert on t1 for each row set new.b=2;
+create table t2 (a int, b int);
+create trigger trg2 before insert on t2 for each row set new.b=2;
+show tables;
+show triggers;
+sync_slave_with_master;
+--echo *** slave ***
+connection slave;
+show tables;
+show triggers;
+--echo *** master ***
+connection master;
+drop trigger trg1;
+drop trigger trg2;
+show triggers;
+sync_slave_with_master;
+--echo *** slave ***
+connection slave;
+show tables;
+show triggers;
+--echo *** master ***
+connection master;
+drop table t1;
+drop table t2;
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_reset_slave.test b/mysql-test/t/rpl_reset_slave.test
index 102c72d9882..00b1cf68294 100644
--- a/mysql-test/t/rpl_reset_slave.test
+++ b/mysql-test/t/rpl_reset_slave.test
@@ -11,24 +11,24 @@ save_master_pos;
connection slave;
sync_with_master;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
stop slave;
change master to master_user='test';
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
reset slave;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
start slave;
sync_with_master;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# test of crash with temp tables & RESET SLAVE
@@ -48,3 +48,4 @@ sync_with_master;
show status like 'slave_open_temp_tables';
# End of 4.1 tests
+#
diff --git a/mysql-test/t/rpl_rewrite_db.test b/mysql-test/t/rpl_rewrite_db.test
index 1e8e5a992d8..6b8624aff39 100644
--- a/mysql-test/t/rpl_rewrite_db.test
+++ b/mysql-test/t/rpl_rewrite_db.test
@@ -31,8 +31,8 @@ create database rewrite;
connection master;
use test;
create table t1 (a date, b date, c date not null, d date);
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',';
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',';
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
sync_slave_with_master;
connection slave;
@@ -40,7 +40,7 @@ select * from rewrite.t1;
connection master;
truncate table t1;
-load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
+load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
sync_slave_with_master;
connection slave;
@@ -49,7 +49,7 @@ select * from rewrite.t1;
connection master;
drop table t1;
create table t1 (a text, b text);
-load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
+load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
sync_slave_with_master;
connection slave;
@@ -58,7 +58,7 @@ select concat('|',a,'|'), concat('|',b,'|') from rewrite.t1;
connection master;
drop table t1;
create table t1 (a int, b char(10));
-load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
sync_slave_with_master;
connection slave;
@@ -66,7 +66,7 @@ select * from rewrite.t1;
connection master;
truncate table t1;
-load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
+load data infile '../std_data_ln/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
sync_slave_with_master;
connection slave;
diff --git a/mysql-test/t/rpl_rotate_logs-slave.sh b/mysql-test/t/rpl_rotate_logs-slave.sh
index 9259f593e54..81490a54b4b 100755
--- a/mysql-test/t/rpl_rotate_logs-slave.sh
+++ b/mysql-test/t/rpl_rotate_logs-slave.sh
@@ -1,2 +1,2 @@
-rm -f $MYSQL_TEST_DIR/var/slave-data/master.info
-rm -f $MYSQL_TEST_DIR/var/slave-data/*relay*
+rm -f $MYSQLTEST_VARDIR/slave-data/master.info
+rm -f $MYSQLTEST_VARDIR/slave-data/*relay*
diff --git a/mysql-test/t/rpl_rotate_logs.test b/mysql-test/t/rpl_rotate_logs.test
index 8d751e43958..0b7efb81f61 100644
--- a/mysql-test/t/rpl_rotate_logs.test
+++ b/mysql-test/t/rpl_rotate_logs.test
@@ -1,3 +1,8 @@
+# This test uses chmod, can't be run with root permissions
+-- source include/not_as_root.inc
+
+-- source include/have_log_bin.inc
+
#
# Test is run with max_binlog_size=2048 to force automatic rotation of the
# binary log
@@ -14,8 +19,10 @@ connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
drop table if exists t1, t2, t3, t4;
--enable_warnings
connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK);
-system cat /dev/null > var/slave-data/master.info;
-system chmod 000 var/slave-data/master.info;
+# Create empty file
+write_file $MYSQLTEST_VARDIR/slave-data/master.info;
+EOF
+chmod 0000 $MYSQLTEST_VARDIR/slave-data/master.info;
connection slave;
--disable_warnings
drop table if exists t1, t2, t3, t4;
@@ -23,9 +30,10 @@ drop table if exists t1, t2, t3, t4;
# START SLAVE will fail because it can't read the file (mode 000)
# (system error 13)
---error 1201
+--replace_result $MYSQL_TEST_DIR TESTDIR
+--error 1105,1105,29
start slave;
-system chmod 600 var/slave-data/master.info;
+chmod 0600 $MYSQLTEST_VARDIR/slave-data/master.info;
# It will fail again because the file is empty so the slave cannot get valuable
# info about how to connect to the master from it (failure in
# init_strvar_from_file() in init_master_info()).
@@ -55,7 +63,7 @@ create table t1 (s text);
insert into t1 values('Could not break slave'),('Tried hard');
sync_slave_with_master;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
select * from t1;
connection master;
@@ -101,14 +109,23 @@ show master logs;
# we just tests if synonyms are accepted
purge binary logs to 'master-bin.000002';
show binary logs;
-# sleeping 10 seconds or more would make the slave believe connection is down
---real_sleep 1
-purge master logs before now();
+
+# Calculate time to use in "purge master logs before" by taking
+# last modification time of t2 and adding 1 second
+# This is donw in order to handle the case where file system
+# time differs from mysqld's time
+--disable_result_log
+select @time_for_purge:=DATE_ADD(UPDATE_TIME, INTERVAL 1 SECOND)
+ from information_schema.tables
+ where TABLE_SCHEMA="test" and TABLE_NAME="t2";
+--enable_result_log
+
+purge master logs before (@time_for_purge);
show binary logs;
insert into t2 values (65);
sync_slave_with_master;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
select * from t2;
@@ -140,7 +157,7 @@ sync_with_master;
select * from t4;
--replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 33 #
+--replace_column 1 # 8 # 9 # 23 # 33 #
show slave status;
# because of concurrent insert, the table may not be up to date
# if we do not lock
@@ -152,4 +169,16 @@ connection master;
drop table if exists t1,t2,t3,t4;
sync_slave_with_master;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+#
+# Bug #29420: crash with show and purge binlogs
+#
+--error 1220
+show binlog events in 'non existing_binlog_file';
+purge master logs before now();
+--error 1220
+show binlog events in '';
+purge master logs before now();
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/rpl_session_var.test b/mysql-test/t/rpl_session_var.test
new file mode 100644
index 00000000000..8231a0dbefd
--- /dev/null
+++ b/mysql-test/t/rpl_session_var.test
@@ -0,0 +1,64 @@
+# Replication of session variables.
+# FOREIGN_KEY_CHECKS is tested in rpl_insert_id.test
+
+source include/master-slave.inc;
+drop table if exists t1;
+create table t1(a varchar(100),b int);
+set @@session.sql_mode=pipes_as_concat;
+insert into t1 values('My'||'SQL', 1);
+set @@session.sql_mode=default;
+insert into t1 values('1'||'2', 2);
+select * from t1 where b<3 order by a;
+save_master_pos;
+connection slave;
+sync_with_master;
+select * from t1 where b<3 order by a;
+connection master;
+# if the slave does the next sync_with_master fine, then it means it accepts the
+# two lines of ANSI syntax below, which is what we want to check.
+set @@session.sql_mode=ignore_space;
+insert into t1 values(password ('MySQL'), 3);
+set @@session.sql_mode=ansi_quotes;
+create table "t2" ("a" int);
+drop table t1, t2;
+set @@session.sql_mode=default;
+create table t1(a int auto_increment primary key);
+create table t2(b int, a int);
+set @@session.sql_auto_is_null=1;
+insert into t1 values(null);
+insert into t2 select 1,a from t1 where a is null;
+set @@session.sql_auto_is_null=0;
+insert into t1 values(null);
+insert into t2 select 2,a from t1 where a is null;
+select * from t2 order by b;
+save_master_pos;
+connection slave;
+sync_with_master;
+select * from t2 order by b;
+connection master;
+drop table t1,t2;
+save_master_pos;
+connection slave;
+sync_with_master;
+
+#
+# Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
+#
+
+connection master;
+CREATE TABLE t1 (
+ `id` int(11) NOT NULL auto_increment,
+ `data` varchar(100),
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM;
+
+INSERT INTO t1(data) VALUES(SESSION_USER());
+save_master_pos;
+connection slave;
+sync_with_master;
+SELECT * FROM t1;
+connection master;
+drop table t1;
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/mysql-test/t/rpl_skip_error.test b/mysql-test/t/rpl_skip_error.test
index e0e569a65b7..baa7a88b8bb 100644
--- a/mysql-test/t/rpl_skip_error.test
+++ b/mysql-test/t/rpl_skip_error.test
@@ -13,4 +13,28 @@ connection slave;
sync_with_master;
select * from t1;
+connection master;
+drop table t1;
+sync_with_master;
# End of 4.1 tests
+
+#
+# #28839 Errors in strict mode silently stop SQL thread if --slave-skip-errors exists
+#
+create table t1(a int primary key);
+insert into t1 values (1),(2);
+delete from t1 where @@server_id=1;
+set sql_mode=strict_trans_tables;
+select @@server_id;
+insert into t1 values (1),(2),(3);
+sync_slave_with_master;
+connection slave;
+select @@server_id;
+select * from t1;
+--replace_column 1 # 8 # 9 # 23 # 33 #
+--replace_result $MASTER_MYPORT MASTER_PORT
+show slave status;
+connection master;
+drop table t1;
+sync_with_master;
+# End of 5.0 tests
diff --git a/mysql-test/t/rpl_slave_status.test b/mysql-test/t/rpl_slave_status.test
index cb12198bae2..b97b769d181 100644
--- a/mysql-test/t/rpl_slave_status.test
+++ b/mysql-test/t/rpl_slave_status.test
@@ -29,4 +29,8 @@ start slave;
--vertical_results
show slave status;
+connection master;
+drop table t1;
+sync_with_master;
+
# end of 4.1 tests
diff --git a/mysql-test/t/rpl_sp-master.opt b/mysql-test/t/rpl_sp-master.opt
new file mode 100644
index 00000000000..709a224fd92
--- /dev/null
+++ b/mysql-test/t/rpl_sp-master.opt
@@ -0,0 +1 @@
+--log_bin_trust_routine_creators=0
diff --git a/mysql-test/t/rpl_sp-slave.opt b/mysql-test/t/rpl_sp-slave.opt
new file mode 100644
index 00000000000..709a224fd92
--- /dev/null
+++ b/mysql-test/t/rpl_sp-slave.opt
@@ -0,0 +1 @@
+--log_bin_trust_routine_creators=0
diff --git a/mysql-test/t/rpl_sp.test b/mysql-test/t/rpl_sp.test
new file mode 100644
index 00000000000..fc17c5615ef
--- /dev/null
+++ b/mysql-test/t/rpl_sp.test
@@ -0,0 +1,579 @@
+# Test of replication of stored procedures (WL#2146 for MySQL 5.0)
+# Modified by WL#2971.
+
+# Note that in the .opt files we still use the old variable name
+# log-bin-trust-routine-creators so that this test checks that it's
+# still accepted (this test also checks that the new name is
+# accepted). The old name could be removed in 5.1 or 6.0.
+
+source include/master-slave.inc;
+
+# we need a db != test, where we don't have automatic grants
+--disable_warnings
+drop database if exists mysqltest1;
+--enable_warnings
+create database mysqltest1;
+use mysqltest1;
+create table t1 (a varchar(100));
+sync_slave_with_master;
+use mysqltest1;
+
+# ********************** PART 1 : STORED PROCEDURES ***************
+
+# Does the same proc as on master get inserted into mysql.proc ?
+# (same definer, same properties...)
+
+connection master;
+
+delimiter |;
+
+# Stored procedures don't have the limitations that functions have
+# regarding binlogging: it's ok to create a procedure as not
+# deterministic and updating data, while it's not ok to create such a
+# function. We test this.
+
+create procedure foo()
+begin
+ declare b int;
+ set b = 8;
+ insert into t1 values (b);
+ insert into t1 values (unix_timestamp());
+end|
+delimiter ;|
+
+# we replace columns having times
+# (even with fixed timestamp displayed time may changed based on TZ)
+--replace_result localhost.localdomain localhost 127.0.0.1 localhost
+--replace_column 13 # 14 #
+select * from mysql.proc where name='foo' and db='mysqltest1';
+sync_slave_with_master;
+# You will notice in the result that the definer does not match what
+# it is on master, it is a known bug on which Alik is working
+--replace_result localhost.localdomain localhost 127.0.0.1 localhost
+--replace_column 13 # 14 #
+select * from mysql.proc where name='foo' and db='mysqltest1';
+
+connection master;
+# see if timestamp used in SP on slave is same as on master
+set timestamp=1000000000;
+call foo();
+select * from t1;
+sync_slave_with_master;
+select * from t1;
+
+# Now a SP which is not updating tables
+
+connection master;
+delete from t1;
+create procedure foo2()
+ select * from mysqltest1.t1;
+call foo2();
+
+# check that this is allowed (it's not for functions):
+alter procedure foo2 contains sql;
+
+# SP with definer's right
+
+drop table t1;
+create table t1 (a int);
+create table t2 like t1;
+
+create procedure foo3()
+ deterministic
+ insert into t1 values (15);
+
+# let's create a non-privileged user
+grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1;
+grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1;
+grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1;
+
+# ToDo: BUG#14931: There is a race between the last grant binlogging, and
+# the binlogging in the new connection made below, causing sporadic test
+# failures due to switched statement order in binlog. To fix this we do
+# SELECT 1 in the first connection before starting the second, ensuring
+# that binlogging is done in the expected order.
+# Please remove this SELECT 1 when BUG#14931 is fixed.
+SELECT 1;
+
+connect (con1,127.0.0.1,zedjzlcsjhd,,mysqltest1,$MASTER_MYPORT,);
+connection con1;
+
+# this routine will fail in the second INSERT because of privileges
+delimiter |;
+create procedure foo4()
+ deterministic
+ begin
+ insert into t2 values(3);
+ insert into t1 values (5);
+ end|
+
+delimiter ;|
+
+# I add ,0 so that it does not print the error in the test output,
+# because this error is hostname-dependent
+--error 1142,0
+call foo4(); # invoker has no INSERT grant on table t1 => failure
+
+connection master;
+call foo3(); # success (definer == root)
+show warnings;
+
+--error 1142,0
+call foo4(); # definer's rights => failure
+
+# we test replication of ALTER PROCEDURE
+alter procedure foo4 sql security invoker;
+call foo4(); # invoker's rights => success
+show warnings;
+
+# Note that half-failed procedure calls are ok with binlogging;
+# if we compare t2 on master and slave we see they are identical:
+
+select * from t1;
+select * from t2;
+sync_slave_with_master;
+select * from t1;
+select * from t2;
+
+# Let's check another failing-in-the-middle procedure
+connection master;
+delete from t2;
+alter table t2 add unique (a);
+
+drop procedure foo4;
+delimiter |;
+create procedure foo4()
+ deterministic
+ begin
+ insert into t2 values(20),(20);
+ end|
+
+delimiter ;|
+
+--error 1062
+call foo4();
+show warnings;
+
+select * from t2;
+sync_slave_with_master;
+# check that this failed-in-the-middle replicated right:
+select * from t2;
+
+# Test of DROP PROCEDURE
+
+--replace_result localhost.localdomain localhost 127.0.0.1 localhost
+--replace_column 13 # 14 #
+select * from mysql.proc where name="foo4" and db='mysqltest1';
+connection master;
+drop procedure foo4;
+select * from mysql.proc where name="foo4" and db='mysqltest1';
+sync_slave_with_master;
+select * from mysql.proc where name="foo4" and db='mysqltest1';
+
+# ********************** PART 2 : FUNCTIONS ***************
+
+connection master;
+drop procedure foo;
+drop procedure foo2;
+drop procedure foo3;
+
+delimiter |;
+# check that needs "deterministic"
+--error 1418
+create function fn1(x int)
+ returns int
+begin
+ insert into t1 values (x);
+ return x+2;
+end|
+create function fn1(x int)
+ returns int
+ deterministic
+begin
+ insert into t1 values (x);
+ return x+2;
+end|
+
+delimiter ;|
+delete t1,t2 from t1,t2;
+select fn1(20);
+insert into t2 values(fn1(21));
+select * from t1;
+select * from t2;
+sync_slave_with_master;
+select * from t1;
+select * from t2;
+
+connection master;
+delimiter |;
+
+drop function fn1;
+
+create function fn1()
+ returns int
+ no sql
+begin
+ return unix_timestamp();
+end|
+
+delimiter ;|
+# check that needs "deterministic"
+--error 1418
+alter function fn1 contains sql;
+
+delete from t1;
+set timestamp=1000000000;
+insert into t1 values(fn1());
+
+connection con1;
+
+delimiter |;
+--error 1419 # only full-global-privs user can create a function
+create function fn2()
+ returns int
+ no sql
+begin
+ return unix_timestamp();
+end|
+delimiter ;|
+connection master;
+# test old variable name:
+set global log_bin_trust_routine_creators=1;
+# now use new name:
+set global log_bin_trust_function_creators=0;
+set global log_bin_trust_function_creators=1;
+# slave needs it too otherwise will not execute what master allowed:
+connection slave;
+set global log_bin_trust_function_creators=1;
+
+connection con1;
+
+delimiter |;
+create function fn2()
+ returns int
+ no sql
+begin
+ return unix_timestamp();
+end|
+delimiter ;|
+
+connection master;
+
+# Now a function which is supposed to not update tables
+# as it's "reads sql data", so should not give error even if
+# non-deterministic.
+
+delimiter |;
+create function fn3()
+ returns int
+ not deterministic
+ reads sql data
+begin
+ return 0;
+end|
+delimiter ;|
+
+select fn3();
+--replace_result localhost.localdomain localhost 127.0.0.1 localhost
+--replace_column 13 # 14 #
+select * from mysql.proc where db='mysqltest1';
+select * from t1;
+
+sync_slave_with_master;
+use mysqltest1;
+select * from t1;
+--replace_result localhost.localdomain localhost 127.0.0.1 localhost
+--replace_column 13 # 14 #
+select * from mysql.proc where db='mysqltest1';
+
+# Let's check a failing-in-the-middle function
+connection master;
+delete from t2;
+alter table t2 add unique (a);
+
+drop function fn1;
+
+delimiter |;
+create function fn1(x int)
+ returns int
+begin
+ insert into t2 values(x),(x);
+ return 10;
+end|
+
+delimiter ;|
+
+do fn1(100);
+
+--error 1062
+select fn1(20);
+
+select * from t2;
+sync_slave_with_master;
+
+# check that this failed-in-the-middle replicated right:
+select * from t2;
+
+# ********************** PART 3 : TRIGGERS ***************
+
+connection con1;
+--error 1227
+create trigger trg before insert on t1 for each row set new.a= 10;
+
+connection master;
+delete from t1;
+# TODO: when triggers can contain an update, test that this update
+# does not go into binlog.
+# I'm not setting user vars in the trigger, because replication of user vars
+# would take care of propagating the user var's value to slave, so even if
+# the trigger was not executed on slave it would not be discovered.
+create trigger trg before insert on t1 for each row set new.a= 10;
+insert into t1 values (1);
+select * from t1;
+sync_slave_with_master;
+select * from t1;
+
+connection master;
+delete from t1;
+drop trigger trg;
+insert into t1 values (1);
+select * from t1;
+sync_slave_with_master;
+select * from t1;
+
+
+# ********************** PART 4 : RELATED FIXED BUGS ***************
+
+
+#
+# Test for bug #13969 "Routines which are replicated from master can't be
+# executed on slave".
+#
+connection master;
+create procedure foo()
+ not deterministic
+ reads sql data
+ select * from t1;
+sync_slave_with_master;
+# This should not fail
+call foo();
+connection master;
+drop procedure foo;
+sync_slave_with_master;
+
+
+# Clean up
+connection master;
+drop function fn1;
+drop database mysqltest1;
+drop user "zedjzlcsjhd"@127.0.0.1;
+use test;
+sync_slave_with_master;
+use test;
+
+#
+# Bug#14077 "Failure to replicate a stored function with a cursor":
+# verify that stored routines with cursors work on slave.
+#
+connection master;
+--disable_warnings
+drop function if exists f1;
+--enable_warnings
+delimiter |;
+create function f1() returns int reads sql data
+begin
+ declare var integer;
+ declare c cursor for select a from v1;
+ open c;
+ fetch c into var;
+ close c;
+ return var;
+end|
+delimiter ;|
+create view v1 as select 1 as a;
+create table t1 (a int);
+insert into t1 (a) values (f1());
+select * from t1;
+drop view v1;
+drop function f1;
+sync_slave_with_master;
+connection slave;
+select * from t1;
+
+#
+# Bug#16621 "INSERTs in Stored Procedures causes data corruption in the Binary
+# Log for 5.0.18"
+#
+
+# Prepare environment.
+
+connection master;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+# Test case.
+
+CREATE TABLE t1(col VARCHAR(10));
+
+CREATE PROCEDURE p1(arg VARCHAR(10))
+ INSERT INTO t1 VALUES(arg);
+
+CALL p1('test');
+
+SELECT * FROM t1;
+
+sync_slave_with_master;
+connection slave;
+
+SELECT * FROM t1;
+
+# Cleanup.
+
+connection master;
+
+DROP PROCEDURE p1;
+
+
+#
+# BUG#20438: CREATE statements for views, stored routines and triggers can be
+# not replicable.
+#
+
+--echo
+--echo ---> Test for BUG#20438
+
+# Prepare environment.
+
+--echo
+--echo ---> Preparing environment...
+--echo ---> connection: master
+--connection master
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+--echo
+--echo ---> Synchronizing slave with master...
+
+--save_master_pos
+--connection slave
+--sync_with_master
+
+--echo
+--echo ---> connection: master
+--connection master
+
+# Test.
+
+--echo
+--echo ---> Creating procedure...
+
+/*!50003 CREATE PROCEDURE p1() SET @a = 1 */;
+
+/*!50003 CREATE FUNCTION f1() RETURNS INT RETURN 0 */;
+
+--echo
+--echo ---> Checking on master...
+
+SHOW CREATE PROCEDURE p1;
+SHOW CREATE FUNCTION f1;
+
+--echo
+--echo ---> Synchronizing slave with master...
+
+--save_master_pos
+--connection slave
+--sync_with_master
+
+--echo ---> connection: master
+
+--echo
+--echo ---> Checking on slave...
+
+SHOW CREATE PROCEDURE p1;
+SHOW CREATE FUNCTION f1;
+
+# Cleanup.
+
+--echo
+--echo ---> connection: master
+--connection master
+
+--echo
+--echo ---> Cleaning up...
+
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+
+--save_master_pos
+--connection slave
+--sync_with_master
+--connection master
+
+
+# cleanup
+connection master;
+drop table t1;
+sync_slave_with_master;
+
+#
+# Bug22043: MySQL don't add "USE <DATABASE>" before "DROP PROCEDURE IF EXISTS"
+#
+
+connection master;
+--disable_warnings
+drop database if exists mysqltest;
+drop database if exists mysqltest2;
+--enable_warnings
+create database mysqltest;
+create database mysqltest2;
+use mysqltest2;
+create table t ( t integer );
+create procedure mysqltest.test() begin end;
+insert into t values ( 1 );
+--error ER_WRONG_DB_NAME
+create procedure `\\`.test() begin end;
+
+#
+# BUG#19725: Calls to stored function in other database are not
+# replicated correctly in some cases
+#
+
+connection master;
+delimiter |;
+create function f1 () returns int
+begin
+ insert into t values (1);
+ return 0;
+end|
+delimiter ;|
+sync_slave_with_master;
+# Let us test if we don't forget to binlog the function's database
+connection master;
+use mysqltest;
+set @a:= mysqltest2.f1();
+sync_slave_with_master;
+connection master;
+
+
+# Final inspection which verifies how all statements of this test file
+# were written to the binary log.
+--replace_column 2 # 5 #
+show binlog events in 'master-bin.000001' from 98;
+
+
+# Restore log_bin_trust_function_creators to its original value.
+# This is a cleanup for all parts above where we tested stored
+# functions and triggers.
+set global log_bin_trust_function_creators=0;
+connection master;
+set global log_bin_trust_function_creators=0;
+
+# Clean up
+drop database mysqltest;
+drop database mysqltest2;
diff --git a/mysql-test/t/rpl_sp_effects-master.opt b/mysql-test/t/rpl_sp_effects-master.opt
new file mode 100644
index 00000000000..61dd7a6ad0e
--- /dev/null
+++ b/mysql-test/t/rpl_sp_effects-master.opt
@@ -0,0 +1 @@
+--log_bin_trust_routine_creators=1
diff --git a/mysql-test/t/rpl_sp_effects-slave.opt b/mysql-test/t/rpl_sp_effects-slave.opt
new file mode 100644
index 00000000000..61dd7a6ad0e
--- /dev/null
+++ b/mysql-test/t/rpl_sp_effects-slave.opt
@@ -0,0 +1 @@
+--log_bin_trust_routine_creators=1
diff --git a/mysql-test/t/rpl_sp_effects.test b/mysql-test/t/rpl_sp_effects.test
new file mode 100644
index 00000000000..9da5723b993
--- /dev/null
+++ b/mysql-test/t/rpl_sp_effects.test
@@ -0,0 +1,203 @@
+# Test of replication of stored procedures (WL#2146 for MySQL 5.0)
+
+source include/master-slave.inc;
+
+# ****************************************************************
+connection master;
+
+# cleanup
+--disable_warnings
+drop procedure if exists p1;
+drop procedure if exists p2;
+drop function if exists f1;
+drop table if exists t1,t2;
+drop view if exists v1;
+--enable_warnings
+create table t1 (a int);
+
+# 1. Test simple variables use.
+delimiter //;
+create procedure p1()
+begin
+ declare spv int default 0;
+ while spv < 5 do
+ insert into t1 values(spv+1);
+ set spv=spv+1;
+ end while;
+end//
+delimiter ;//
+
+call p1();
+
+sync_slave_with_master;
+connection slave;
+select * from t1;
+connection master;
+delete from t1;
+
+# 2. Test SP variable name
+delimiter //;
+create procedure p2()
+begin
+ declare a int default 4;
+ create table t2 as select a;
+end//
+delimiter ;//
+
+call p2();
+select * from t2;
+sync_slave_with_master;
+connection slave;
+select * from t2;
+
+connection master;
+drop procedure p1;
+drop procedure p2;
+drop table t2;
+
+# 3. Test FUNCTIONs in various places
+
+delimiter //;
+create function f1(x int) returns int
+begin
+ insert into t1 values(x);
+ return x+1;
+end//
+
+create procedure p1(a int, b int)
+begin
+ declare v int default f1(5);
+ if (f1(6)) then
+ select 'yes';
+ end if;
+ set v = f1(7);
+ while f1(8) < 1 do
+ select 'this cant be';
+ end while;
+
+end//
+delimiter ;//
+
+call p1(f1(1), f1(2));
+select * from t1;
+
+create table t2(a int);
+insert into t2 values (10),(11);
+select a,f1(a) from t2;
+
+# This shouldn't put separate 'call f1(3)' into binlog:
+insert into t2 select f1(3);
+select 'master:',a from t1;
+
+sync_slave_with_master;
+connection slave;
+select 'slave:',a from t1;
+
+connection master;
+drop procedure p1;
+delete from t1;
+delete from t2;
+
+# 4. VIEWs
+delete from t1;
+insert into t2 values(1),(2);
+create view v1 as select f1(a) from t2;
+select * from v1;
+select 'master:',a from t1;
+
+sync_slave_with_master;
+connection slave;
+select 'slave:',a from t1;
+
+connection master;
+drop view v1;
+delete from t1;
+
+# 5. Prepared statements.
+prepare s1 from 'select f1(?)';
+set @xx=123;
+execute s1 using @xx;
+select 'master:',a from t1;
+
+sync_slave_with_master;
+connection slave;
+select 'slave:',a from t1;
+
+connection master;
+delete from t1;
+
+# 5. Cursors.
+# t2 has (1),(2);
+delimiter //;
+create procedure p1(spv int)
+begin
+ declare c cursor for select f1(spv) from t2;
+ while (spv > 2) do
+ open c;
+ fetch c into spv;
+ close c;
+ set spv= spv - 10;
+ end while;
+end//
+delimiter ;//
+
+call p1(15);
+select 'master:',a from t1;
+sync_slave_with_master;
+connection slave;
+select 'slave:',a from t1;
+
+connection master;
+drop procedure p1;
+drop function f1;
+drop table t1,t2;
+
+# BUG#12637: User variables + SPs replication
+create table t1 (a int);
+delimiter //;
+create procedure p1()
+begin
+ insert into t1 values(@x);
+ set @x=@x+1;
+ insert into t1 values(@x);
+ if (f2()) then
+ insert into t1 values(1243);
+ end if;
+end//
+
+create function f2() returns int
+begin
+ insert into t1 values(@z);
+ set @z=@z+1;
+ insert into t1 values(@z);
+ return 0;
+end//
+
+create function f1() returns int
+begin
+ insert into t1 values(@y);
+ call p1();
+ return 0;
+end//
+
+delimiter ;//
+
+set @x=10;
+set @y=20;
+set @z=100;
+select f1();
+
+set @x=30;
+call p1();
+
+select 'master', a from t1;
+sync_slave_with_master;
+connection slave;
+select 'slave', a from t1;
+
+connection master;
+drop table t1;
+drop function f1;
+drop function f2;
+drop procedure p1;
+sync_slave_with_master;
diff --git a/mysql-test/t/rpl_ssl.test b/mysql-test/t/rpl_ssl.test
new file mode 100644
index 00000000000..bf4dcbf8af0
--- /dev/null
+++ b/mysql-test/t/rpl_ssl.test
@@ -0,0 +1,79 @@
+source include/have_ssl.inc;
+source include/master-slave.inc;
+
+# create a user for replication that requires ssl encryption
+connection master;
+grant replication slave on *.* to replssl@localhost require ssl;
+create table t1 (t int auto_increment, KEY(t));
+
+sync_slave_with_master;
+
+# Set slave to use SSL for connection to master
+stop slave;
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+eval change master to
+ master_user='replssl',
+ master_password='',
+ master_ssl=1,
+ master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem',
+ master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem',
+ master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem';
+start slave;
+
+# Switch to master and insert one record, then sync it to slave
+connection master;
+insert into t1 values(1);
+sync_slave_with_master;
+
+# The record should now be on slave
+select * from t1;
+
+# The slave is synced and waiting/reading from master
+# SHOW SLAVE STATUS will show "Waiting for master to send event"
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
+--replace_column 1 # 8 # 9 # 23 # 33 #
+query_vertical show slave status;
+
+# Stop the slave, as reported in bug#21871 it would hang
+STOP SLAVE;
+
+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 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 #
+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;
+}
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/rpl_temporary.test b/mysql-test/t/rpl_temporary.test
index bc1b0e64565..d09049af217 100644
--- a/mysql-test/t/rpl_temporary.test
+++ b/mysql-test/t/rpl_temporary.test
@@ -1,3 +1,6 @@
+# Test need anonymous user when connection are made as "zedjzlcsjhd"
+source include/add_anonymous_users.inc;
+
source include/master-slave.inc;
# Clean up old slave's binlogs.
@@ -20,8 +23,8 @@ connection master;
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
# We want to connect as an unprivileged user. But if we use user="" then this
-# will pick the Unix login, which will cause problems if you're running the test
-# as root.
+# will pick the Unix login, which will cause problems if you're running the
+# test as root.
connect (con3,localhost,zedjzlcsjhd,,);
# We are going to use SET PSEUDO_THREAD_ID in this test;
@@ -82,6 +85,7 @@ drop temporary table t3;
select * from t2;
--replace_result $VERSION VERSION
+--replace_column 2 # 5 #
show binlog events;
drop table t1, t2;
@@ -128,6 +132,33 @@ drop table t1,t2;
create temporary table t3 (f int);
sync_with_master;
+# The server will now close done
+
+#
+# Bug#17284 erroneous temp table cleanup on slave
+#
+
+connection master;
+create temporary table t4 (f int);
+create table t5 (f int);
+sync_with_master;
+# find dumper's $id
+source include/get_binlog_dump_thread_id.inc;
+insert into t4 values (1);
+# a hint how to do that in 5.1
+--replace_result $id "`select id from information_schema.processlist where command='Binlog Dump'`"
+eval kill $id; # to stimulate reconnection by slave w/o timeout
+insert into t5 select * from t4;
+save_master_pos;
+
+connection slave;
+sync_with_master;
+select * from t5 /* must be 1 after reconnection */;
+
+connection master;
+drop temporary table t4;
+drop table t5;
+
#
# BUG#17263 incorrect generation DROP temp tables
# Temporary tables of connection are dropped in batches
@@ -164,7 +195,14 @@ drop table t1;
#
#14157: utf8 encoding in binlog without set character_set_client
#
---exec $MYSQL --character-sets-dir=../sql/share/charsets/ --default-character-set=latin1 test -e 'create table t1 (a int); set names latin1; create temporary table `äöüÄÖÜ` (a int); insert into `äöüÄÖÜ` values (1); insert into t1 select * from `äöüÄÖÜ`'
+--write_file $MYSQLTEST_VARDIR/tmp/bug14157.sql
+create table t1 (a int);
+set names latin1;
+create temporary table `äöüÄÖÜ` (a int);
+insert into `äöüÄÖÜ` values (1);
+insert into t1 select * from `äöüÄÖÜ`
+EOF
+--exec $MYSQL --character-sets-dir=../sql/share/charsets/ --default-character-set=latin1 test < $MYSQLTEST_VARDIR/tmp/bug14157.sql
sync_slave_with_master;
#connection slave;
@@ -173,4 +211,7 @@ select * from t1;
connection master;
drop table t1;
-# End of 4.1 tests
+# Delete the anonymous users
+source include/delete_anonymous_users.inc;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/rpl_timezone-slave.opt b/mysql-test/t/rpl_timezone-slave.opt
index 8e43bfbbb7e..191182c329c 100644
--- a/mysql-test/t/rpl_timezone-slave.opt
+++ b/mysql-test/t/rpl_timezone-slave.opt
@@ -1 +1 @@
---default-time-zone=Europe/Moscow
+--default-time-zone=Japan
diff --git a/mysql-test/t/rpl_timezone.test b/mysql-test/t/rpl_timezone.test
index d371e8b62e5..28ca250340e 100644
--- a/mysql-test/t/rpl_timezone.test
+++ b/mysql-test/t/rpl_timezone.test
@@ -1,23 +1,41 @@
# Test of replication of time zones.
+
+# There is currently some bug possibly in prepared statements (this
+# test fails with --ps-protocol): sys_var_thd_time_zone::value_ptr()
+# is called only at prepare time, not at execution time. So,
+# thd->time_zone_used is not equal to 1 (it is back to 0, because of
+# reset_thd_for_next_command called at execution time), so the
+# timezone used in CONVERT_TZ is not binlogged. To debug (by Guilhem
+# and possibly Konstantin).
+
+--disable_ps_protocol
+
source include/master-slave.inc;
+# Save original timezone
+set @my_time_zone= @@global.time_zone;
+
# Some preparations
let $VERSION=`select version()`;
+set timestamp=100000000; # for fixed output of mysqlbinlog
create table t1 (t timestamp);
create table t2 (t char(32));
+connection slave;
+select @@time_zone;
+
#
# Let us check how well replication works when we are saving datetime
# value in TIMESTAMP field.
#
connection master;
select @@time_zone;
+insert into t1 values ('20050101000000'), ('20050611093902');
set time_zone='UTC';
insert into t1 values ('20040101000000'), ('20040611093902');
select * from t1;
-# On slave we still in 'Europe/Moscow' so we should see equivalent but
-# textually different values.
sync_slave_with_master;
+set time_zone='UTC';
select * from t1;
# Let us check also that setting of time_zone back to default also works
@@ -28,11 +46,29 @@ set time_zone='Europe/Moscow';
insert into t1 values ('20040101000000'), ('20040611093902');
select * from t1;
sync_slave_with_master;
+set time_zone='Europe/Moscow';
select * from t1;
connection master;
-# We should not see SET ONE_SHOT time_zone before second insert
---replace_result $VERSION VERSION
-show binlog events;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
+
+# Let us check with LOAD DATA INFILE
+# (we do it after mysqlbinlog because the temp files names are not constant)
+connection master;
+delete from t1;
+set time_zone='UTC';
+load data infile '../std_data_ln/rpl_timezone.dat' into table t1;
+select * from t1;
+sync_slave_with_master;
+set time_zone='UTC';
+select * from t1;
+set time_zone='Europe/Moscow';
+
+# Put back values of before the LOAD
+connection master;
+set time_zone='Europe/Moscow';
+delete from t1;
+insert into t1 values ('20040101000000'), ('20040611093902');
#
# Now let us check how well we replicate statments reading TIMESTAMP fields
@@ -53,10 +89,6 @@ delete from t2;
set timestamp=1000072000;
insert into t2 values (current_timestamp), (current_date), (current_time);
sync_slave_with_master;
-# Values in ouput of these to queries should differ because we are in
-# in 'MET' on master and in 'Europe/Moscow on slave...
-set timestamp=1000072000;
-select current_timestamp, current_date, current_time;
select * from t2;
#
@@ -72,15 +104,55 @@ sync_slave_with_master;
select * from t2;
#
-# Let us check that we are not allowing to set global time_zone with
+# Let us check that we are allowing to set global time_zone with
# replication
#
connection master;
---error 1105
set global time_zone='MET';
+#
+# Let us see if CONVERT_TZ(@@time_zone) replicates
+#
+delete from t2;
+set time_zone='UTC';
+insert into t2 values(convert_tz('2004-01-01 00:00:00','MET',@@time_zone));
+insert into t2 values(convert_tz('2005-01-01 00:00:00','MET','Japan'));
+select * from t2;
+sync_slave_with_master;
+select * from t2;
+
# Clean up
+connection master;
drop table t1, t2;
sync_slave_with_master;
-# End of 4.1 tests
+# Restore original timezone
+connection master;
+set global time_zone= @my_time_zone;
+
+--echo End of 4.1 tests
+
+#
+# Bug #29536: timestamp inconsistent in replication around 1970
+#
+connection master;
+
+CREATE TABLE t1 (a INT, b TIMESTAMP);
+INSERT INTO t1 VALUES (1, NOW());
+
+SET @@session.time_zone='Japan';
+UPDATE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1;
+SELECT * FROM t1 ORDER BY a;
+
+sync_slave_with_master;
+SET @@session.time_zone='Japan';
+# must procdure the same result as the SELECT on the master
+SELECT * FROM t1 ORDER BY a;
+
+SET @@session.time_zone = default;
+connection master;
+DROP TABLE t1;
+SET @@session.time_zone = default;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/rpl_trigger.test b/mysql-test/t/rpl_trigger.test
new file mode 100644
index 00000000000..faba89e7a73
--- /dev/null
+++ b/mysql-test/t/rpl_trigger.test
@@ -0,0 +1,469 @@
+#
+# Test of triggers with replication
+#
+
+source include/master-slave.inc;
+
+#
+# #12482: Triggers has side effects with auto_increment values
+#
+
+create table t1 (a int auto_increment, primary key (a), b int, rand_value double not null);
+create table t2 (a int auto_increment, primary key (a), b int);
+create table t3 (a int auto_increment, primary key (a), name varchar(64) not null, old_a int, old_b int, rand_value double not null);
+
+delimiter |;
+create trigger t1 before insert on t1 for each row
+begin
+ insert into t3 values (NULL, "t1", new.a, new.b, rand());
+end|
+
+create trigger t2 after insert on t2 for each row
+begin
+ insert into t3 values (NULL, "t2", new.a, new.b, rand());
+end|
+delimiter ;|
+
+insert into t3 values(100,"log",0,0,0);
+
+# Ensure we always have same random numbers
+SET @@RAND_SEED1=658490765, @@RAND_SEED2=635893186;
+
+# Emulate that we have rows 2-9 deleted on the slave
+insert into t1 values(1,1,rand()),(NULL,2,rand());
+insert into t2 (b) values(last_insert_id());
+insert into t2 values(3,0),(NULL,0);
+insert into t2 values(NULL,0),(500,0);
+
+select a,b, truncate(rand_value,4) from t1;
+select * from t2;
+select a,name, old_a, old_b, truncate(rand_value,4) from t3;
+save_master_pos;
+connection slave;
+sync_with_master;
+--disable_query_log
+select "--- On slave --" as "";
+--enable_query_log
+select a,b, truncate(rand_value,4) from t1;
+select * from t2;
+select a,name, old_a, old_b, truncate(rand_value,4) from t3;
+connection master;
+drop table t1,t2,t3;
+
+#
+# #12480: NOW() is not constant in a trigger
+# #12481: Using NOW() in a stored function breaks statement based replication
+#
+
+# Start by getting a lock on 'bug12480' to be able to use get_lock() as sleep()
+connect (con2,localhost,root,,);
+connection con2;
+select get_lock("bug12480",2);
+connection default;
+
+create table t1 (a datetime,b datetime, c datetime);
+--disable_warnings
+drop function if exists bug12480;
+--enable_warnings
+
+delimiter |;
+
+create function bug12480() returns datetime
+begin
+ set @a=get_lock("bug12480",2);
+ return now();
+end|
+
+create trigger t1_first before insert on t1
+for each row begin
+ set @a=get_lock("bug12480",2);
+ set new.b= now();
+ set new.c= bug12480();
+end
+|
+
+delimiter ;|
+insert into t1 set a = now();
+select a=b && a=c from t1;
+let $time=`select a from t1`;
+
+# Check that definer attribute is replicated properly:
+# - dump definers on the master;
+# - wait for the slave to synchronize with the master;
+# - dump definers on the slave;
+
+SELECT routine_name, definer
+FROM information_schema.routines;
+
+SELECT trigger_name, definer
+FROM information_schema.triggers;
+
+save_master_pos;
+connection slave;
+sync_with_master;
+--disable_query_log
+select "--- On slave --" as "";
+--enable_query_log
+
+# XXX: Definers of stored procedures and functions are not replicated. WL#2897
+# (Complete definer support in the stored routines) addresses this issue. So,
+# the result file is expected to be changed after implementation of this WL
+# item.
+
+SELECT routine_name, definer
+FROM information_schema.routines;
+
+SELECT trigger_name, definer
+FROM information_schema.triggers;
+
+select a=b && a=c from t1;
+--disable_query_log
+eval select a='$time' as 'test' from t1;
+--enable_query_log
+
+connection master;
+disconnect con2;
+
+truncate table t1;
+drop trigger t1_first;
+
+insert into t1 values ("2003-03-03","2003-03-03","2003-03-03"),(bug12480(),bug12480(),bug12480()),(now(),now(),now());
+select a=b && a=c from t1;
+
+drop function bug12480;
+drop table t1;
+
+#
+# #14614: Replication of tables with trigger generates error message if databases is changed
+# Note. The error message is emitted by _myfree() using fprintf() to the stderr
+# and because of that does not fall into the .result file.
+#
+
+create table t1 (i int);
+create table t2 (i int);
+
+delimiter |;
+create trigger tr1 before insert on t1 for each row
+begin
+ insert into t2 values (1);
+end|
+delimiter ;|
+
+create database other;
+use other;
+insert into test.t1 values (1);
+
+save_master_pos;
+connection slave;
+sync_with_master;
+
+connection master;
+use test;
+drop table t1,t2;
+drop database other;
+
+
+#
+# Test specific triggers including SELECT into var with replication
+# BUG#13227:
+# slave performs an update to the replicatable table, t1,
+# and modifies its local data, t3, by mean of its local trigger that uses
+# another local table t2.
+# Expected values are commented into queries.
+#
+# Body of the test executes in a loop since the problem occurred randomly.
+#
+
+let $max_rows=5;
+let $rnd=10;
+
+--echo test case for BUG#13227
+while ($rnd)
+{
+ --echo -------------------
+ echo $rnd;
+ --echo -------------------
+
+### SETUP
+
+--disable_warnings
+ connection master;
+ eval drop table if exists t1$rnd;
+ connection slave;
+ eval drop table if exists t2$rnd,t3$rnd;
+--enable_warnings
+
+ connection master;
+ eval create table t1$rnd (f1 int) /* 2 replicate */;
+ let $i=$max_rows;
+ while ($i)
+ {
+ eval insert into t1$rnd values (-$i);
+ dec $i;
+ }
+
+ sync_slave_with_master;
+#connection slave;
+ eval select * from t1$rnd;
+ delimiter |;
+ eval create trigger trg1$rnd before update on t1$rnd /* slave local */
+ for each row
+ begin
+ DECLARE r integer;
+ SELECT f2 INTO r FROM t2$rnd where f1=NEW.f1;
+ INSERT INTO t3$rnd values (r);
+ end|
+ delimiter ;|
+ eval create table t2$rnd (f1 int, f2 int) /* slave local */;
+ eval create table t3$rnd (f3 int) /* slave local */;
+ let $i=$max_rows;
+ while ($i)
+ {
+ eval insert into t2$rnd values ($i, $i*100);
+ dec $i;
+ }
+
+### Test
+
+#connection slave;
+
+# trigger works as specified when updates from slave
+ eval select * from t2$rnd;
+ eval UPDATE t1$rnd SET f1=$max_rows where f1=-$max_rows;
+ eval SELECT * from t1$rnd /* must be f1 $max_rows, 1 - $max_rows 2 - $max_rows ... -1 */;
+ eval SELECT * from t3$rnd /* must be f3 $max_rows*100 */;
+
+ connection master;
+ let $i=$max_rows;
+ while ($i)
+ {
+ eval UPDATE t1$rnd SET f1=$i where f1=-$i;
+ dec $i;
+ }
+
+ sync_slave_with_master;
+#connection slave;
+ eval SELECT * from t1$rnd /* must be f1 $max_rows ... 1 */;
+ eval SELECT * from t3$rnd /* must be f3 $max_rows * 100 ... 100 */;
+
+### CLEANUP
+#connection slave;
+ eval drop trigger trg1$rnd;
+ eval drop table t2$rnd,t3$rnd;
+
+ connection master;
+ eval drop table t1$rnd;
+
+ dec $rnd;
+}
+
+
+#
+# BUG#16266: Definer is not fully qualified error during replication.
+#
+# The idea of this test is to emulate replication of a trigger from the old
+# master (master w/o "DEFINER in triggers" support) to the new slave and check
+# that:
+# 1. the trigger on the slave will be replicated w/o errors;
+# 2. the trigger on the slave will be non-SUID (will have no DEFINER);
+# 3. the trigger can be activated later on the slave w/o errors.
+#
+# In order to emulate this kind of replication, we make the slave playing the binlog,
+# recorded by 5.0.16 master. This binlog contains the following statements:
+# CREATE TABLE t1(c INT);
+# CREATE TABLE t2(s CHAR(200));
+# CREATE TRIGGER trg1 AFTER INSERT ON t1
+# FOR EACH ROW
+# INSERT INTO t2 VALUES(CURRENT_USER());
+# INSERT INTO t1 VALUES(1);
+#
+
+# 1. Check that the trigger's replication is succeeded.
+
+# Stop the slave.
+
+connection slave;
+STOP SLAVE;
+
+# Replace master's binlog.
+
+connection master;
+FLUSH LOGS;
+exec cp $MYSQL_TEST_DIR/std_data/bug16266.000001 $MYSQLTEST_VARDIR/log/master-bin.000001;
+
+# Make the slave to replay the new binlog.
+
+connection slave;
+RESET SLAVE;
+START SLAVE;
+
+SELECT MASTER_POS_WAIT('master-bin.000001', 513) >= 0;
+
+# Check that the replication succeeded.
+
+SHOW TABLES LIKE 't_';
+SHOW TRIGGERS;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+# 2. Check that the trigger is non-SUID on the slave;
+# 3. Check that the trigger can be activated on the slave.
+
+INSERT INTO t1 VALUES(2);
+
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+# That's all, cleanup.
+
+DROP TRIGGER trg1;
+DROP TABLE t1;
+DROP TABLE t2;
+
+STOP SLAVE;
+RESET SLAVE;
+
+# The master should be clean.
+
+connection master;
+SHOW TABLES LIKE 't_';
+SHOW TRIGGERS;
+
+RESET MASTER;
+
+# Restart slave.
+
+connection slave;
+START SLAVE;
+
+
+#
+# BUG#20438: CREATE statements for views, stored routines and triggers can be
+# not replicable.
+#
+
+--echo
+--echo ---> Test for BUG#20438
+
+# Prepare environment.
+
+--echo
+--echo ---> Preparing environment...
+--echo ---> connection: master
+--connection master
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+
+--echo
+--echo ---> Synchronizing slave with master...
+
+--save_master_pos
+--connection slave
+--sync_with_master
+
+--echo
+--echo ---> connection: master
+--connection master
+
+# Test.
+
+--echo
+--echo ---> Creating objects...
+
+CREATE TABLE t1(c INT);
+CREATE TABLE t2(c INT);
+
+/*!50003 CREATE TRIGGER t1_bi BEFORE INSERT ON t1
+ FOR EACH ROW
+ INSERT INTO t2 VALUES(NEW.c * 10) */;
+
+--echo
+--echo ---> Inserting value...
+
+INSERT INTO t1 VALUES(1);
+
+--echo
+--echo ---> Checking on master...
+
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+--echo
+--echo ---> Synchronizing slave with master...
+
+--save_master_pos
+--connection slave
+--sync_with_master
+
+--echo ---> connection: master
+
+--echo
+--echo ---> Checking on slave...
+
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+# Cleanup.
+
+--echo
+--echo ---> connection: master
+--connection master
+
+--echo
+--echo ---> Cleaning up...
+
+DROP TABLE t1;
+DROP TABLE t2;
+
+--save_master_pos
+--connection slave
+--sync_with_master
+--connection master
+
+#
+# BUG#23703: DROP TRIGGER needs an IF EXISTS
+#
+
+connection master;
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1(a int, b varchar(50));
+
+-- error ER_TRG_DOES_NOT_EXIST
+drop trigger not_a_trigger;
+
+drop trigger if exists not_a_trigger;
+
+create trigger t1_bi before insert on t1
+for each row set NEW.b := "In trigger t1_bi";
+
+insert into t1 values (1, "a");
+drop trigger if exists t1_bi;
+insert into t1 values (2, "b");
+drop trigger if exists t1_bi;
+insert into t1 values (3, "c");
+
+select * from t1;
+
+save_master_pos;
+connection slave;
+sync_with_master;
+
+select * from t1;
+
+connection master;
+
+drop table t1;
+
+#
+# End of tests
+#
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/mysql-test/t/rpl_trunc_binlog.test b/mysql-test/t/rpl_trunc_binlog.test
deleted file mode 100644
index 9cdf1d8ddbd..00000000000
--- a/mysql-test/t/rpl_trunc_binlog.test
+++ /dev/null
@@ -1,27 +0,0 @@
-# We are testing if a binlog which contains BEGIN but not COMMIT (the
-# master did while writing the transaction to the binlog) triggers an
-# error on slave. So we use such a truncated binlog and simulate that
-# the master restarted after this.
-
-source include/master-slave.inc;
-
-connection slave;
-# If we are not supporting transactions in the slave, the unfinished transaction
-# won't cause any error, so we need to skip the test. In the 4.0 testsuite, the
-# slave always runs without InnoDB, so we check for BDB.
-source include/have_bdb.inc;
-stop slave;
-connection master;
-flush logs;
-system mv -f var/log/master-bin.000001 var/log/master-bin.000002;
-system cp std_data/trunc_binlog.000001 var/log/master-bin.000001;
-connection slave;
-reset slave;
-start slave;
-# can't sync_with_master so we must sleep
-sleep 3;
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 23 # 33 #
-show slave status;
-
-# End of 4.1 tests
diff --git a/mysql-test/t/rpl_until.test b/mysql-test/t/rpl_until.test
index 990f00fdc63..c404ea7e58b 100644
--- a/mysql-test/t/rpl_until.test
+++ b/mysql-test/t/rpl_until.test
@@ -24,14 +24,14 @@ show binlog events;
# try to replicate all queries until drop of t1
connection slave;
-start slave until master_log_file='master-bin.000001', master_log_pos=244;
+start slave until master_log_file='master-bin.000001', master_log_pos=319;
sleep 2;
wait_for_slave_to_stop;
# here table should be still not deleted
select * from t1;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 9 # 11 # 23 # 33 #
-show slave status;
+--query_vertical SHOW SLAVE STATUS
# this should fail right after start
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
@@ -41,16 +41,16 @@ sleep 2;
wait_for_slave_to_stop;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 9 # 11 # 23 # 33 #
-show slave status;
+--query_vertical SHOW SLAVE STATUS
# try replicate all until second insert to t2;
-start slave until relay_log_file='slave-relay-bin.000002', relay_log_pos=537;
-sleep 4;
+start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=746;
+sleep 2;
wait_for_slave_to_stop;
select * from t2;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 9 # 11 # 23 # 33 #
-show slave status;
+--query_vertical SHOW SLAVE STATUS
# clean up
start slave;
@@ -60,15 +60,14 @@ connection slave;
sync_with_master;
stop slave;
-# this should stop immideately
-start slave until master_log_file='master-bin.000001', master_log_pos=561;
-# 2 is not enough when running with valgrind
---real_sleep 4
+# this should stop immediately as we are already there
+start slave until master_log_file='master-bin.000001', master_log_pos=776;
+sleep 2;
wait_for_slave_to_stop;
# here the sql slave thread should be stopped
--replace_result $MASTER_MYPORT MASTER_MYPORT bin.000005 bin.000004 bin.000006 bin.000004 bin.000007 bin.000004
--replace_column 1 # 9 # 23 # 33 #
-show slave status;
+--query_vertical SHOW SLAVE STATUS
#testing various error conditions
--error 1277
@@ -81,8 +80,8 @@ start slave until master_log_file='master-bin.000001';
start slave until relay_log_file='slave-relay-bin.000002';
--error 1277
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
-
+# Warning should be given for second command
start slave sql_thread;
-start slave until master_log_file='master-bin.000001', master_log_pos=561;
+start slave until master_log_file='master-bin.000001', master_log_pos=776;
# End of 4.1 tests
diff --git a/mysql-test/t/rpl_user_variables.test b/mysql-test/t/rpl_user_variables.test
index 6597413c22e..8f8f0accbd1 100644
--- a/mysql-test/t/rpl_user_variables.test
+++ b/mysql-test/t/rpl_user_variables.test
@@ -46,18 +46,349 @@ save_master_pos;
connection slave;
sync_with_master;
select * from t1;
-show binlog events from 141;
-
+--replace_column 2 # 5 #
+show binlog events from 98;
#
# BUG19136: Crashing log-bin and uninitialized user variables in a derived table
# just to check nothing bad happens anymore
+#
connection master;
insert into t1 select * FROM (select @var1 union select @var2) AS t2;
drop table t1;
save_master_pos;
+--echo End of 4.1 tests.
+
+# BUG#20141
+# The following tests ensure that if user-defined variables are used in SF/Triggers
+# that they are replicated correctly. These tests should be run in both SBR and RBR
+# modes.
+
+# This test uses a procedure that inserts data values based on the value of a
+# user-defined variable. It also has a trigger that inserts data based on the
+# same variable. Successful test runs show that the @var is replicated
+# properly and that the procedure and trigger insert the correct data on the
+# slave.
+#
+# The test of stored procedure was included for completeness. Replication of stored
+# procedures was not directly affected by BUG#20141.
+#
+# This test was constructed for BUG#20141
+
+--disable_warnings
+DROP TABLE IF EXISTS t20;
+DROP TABLE IF EXISTS t21;
+DROP PROCEDURE IF EXISTS test.insert;
+--enable_warnings
+
+CREATE TABLE t20 (a VARCHAR(20));
+CREATE TABLE t21 (a VARCHAR(20));
+DELIMITER |;
+
+# Create a procedure that uses the @var for flow control
+
+CREATE PROCEDURE test.insert()
+BEGIN
+ IF (@VAR)
+ THEN
+ INSERT INTO test.t20 VALUES ('SP_TRUE');
+ ELSE
+ INSERT INTO test.t20 VALUES ('SP_FALSE');
+ END IF;
+END|
+
+# Create a trigger that uses the @var for flow control
+
+CREATE TRIGGER test.insert_bi BEFORE INSERT
+ ON test.t20 FOR EACH ROW
+ BEGIN
+ IF (@VAR)
+ THEN
+ INSERT INTO test.t21 VALUES ('TRIG_TRUE');
+ ELSE
+ INSERT INTO test.t21 VALUES ('TRIG_FALSE');
+ END IF;
+ END|
+DELIMITER ;|
+
+sync_slave_with_master;
+connection master;
+
+# Set @var and call the procedure, repeat with different values
+
+SET @VAR=0;
+CALL test.insert();
+SET @VAR=1;
+CALL test.insert();
+
+--echo On master: Check the tables for correct data
+
+SELECT * FROM t20;
+SELECT * FROM t21;
+
+sync_slave_with_master;
+
+--echo On slave: Check the tables for correct data and it matches master
+
+SELECT * FROM t20;
+SELECT * FROM t21;
+connection master;
+
+# Cleanup
+
+DROP TABLE t20;
+DROP TABLE t21;
+DROP PROCEDURE test.insert;
+
+# This test uses a stored function that uses user-defined variables to return data
+# This test was constructed for BUG#20141
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS test.square;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+
+# Create function that returns a value from @var. In this case, the square function
+
+CREATE FUNCTION test.square() RETURNS INTEGER DETERMINISTIC RETURN (@var * @var);
+
+sync_slave_with_master;
+connection master;
+
+# Set the @var to different values and insert them into a table
+
+SET @var = 1;
+INSERT INTO t1 VALUES (square());
+SET @var = 2;
+INSERT INTO t1 VALUES (square());
+SET @var = 3;
+INSERT INTO t1 VALUES (square());
+SET @var = 4;
+INSERT INTO t1 VALUES (square());
+SET @var = 5;
+INSERT INTO t1 VALUES (square());
+
+--echo On master: Retrieve the values from the table
+
+SELECT * FROM t1;
+
+sync_slave_with_master;
+
+--echo On slave: Retrieve the values from the table and verify they are the same as on master
+
+SELECT * FROM t1;
+
+connection master;
+
+# Cleanup
+
+DROP TABLE t1;
+DROP FUNCTION test.square;
+
+# This test uses stored functions that uses user-defined variables to return data
+# based on the use of @vars inside a function body.
+# This test was constructed for BUG#14914
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+--enable_warnings
+
+CREATE TABLE t1(a int);
+DELIMITER |;
+
+# Create a function that simply returns the value of an @var.
+# Create a function that uses an @var for flow control, creates and uses another
+# @var and sets its value to a value based on another @var.
+
+CREATE FUNCTION f1() returns int deterministic
+BEGIN
+ return @a;
+END |
+
+CREATE FUNCTION f2() returns int deterministic
+BEGIN
+ IF (@b > 0) then
+ SET @c = (@a + @b);
+ else
+ SET @c = (@a - 1);
+ END if;
+ return @c;
+END |
+DELIMITER ;|
+
+sync_slave_with_master;
+connection master;
+
+# Set an @var to a value and insert data into a table using the first function.
+# Set two more @vars to some values and insert data into a table using the second function.
+
+SET @a=500;
+INSERT INTO t1 values(f1());
+SET @b = 125;
+SET @c = 1;
+INSERT INTO t1 values(f2());
+
+sync_slave_with_master;
+
+--echo On master: Retrieve the values from the table
+
+SELECT * from t1;
+
+--echo On slave: Check the tables for correct data and it matches master
+
+SELECT * from t1;
+
+connection master;
+
+# Cleanup
+
+DROP TABLE t1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+
+# This test uses a function that changes a user-defined variable in its body. This test
+# will ensure the @vars are replicated when needed and not interrupt the normal execution
+# of the function on the slave. This also applies to triggers.
+#
+# This test was constructed for BUG#25167
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+CREATE TABLE t1 (i int);
+CREATE TABLE t2 (k int);
+DELIMITER |;
+
+# Create a trigger that inserts data into another table, changes the @var then inserts
+# another row with the modified value.
+
+CREATE trigger t1_bi before INSERT on t1 for each row
+BEGIN
+ INSERT INTO t2 values (@a);
+ SET @a:=42;
+ INSERT INTO t2 values (@a);
+END |
+DELIMITER ;|
+
+sync_slave_with_master;
+connection master;
+
+# Set the @var to a value then insert data into first table.
+
+SET @a:=100;
+INSERT INTO t1 values (5);
+
+--echo On master: Check to see that data was inserted correctly in both tables
+
+SELECT * from t1;
+SELECT * from t2;
+
+sync_slave_with_master;
+
+--echo On slave: Check the tables for correct data and it matches master
+
+SELECT * from t1;
+SELECT * from t2;
+
+connection master;
+drop table t1, t2;
+
+#
+# Bug #26842: master binary log contains invalid queries - replication fails
+#
+save_master_pos;
connection slave;
sync_with_master;
-stop slave;
+reset master;
+
+connection master;
+create table t1 (a int);
+prepare s from "insert into t1 values (@a),(?)";
+set @a=98; execute s using @a;
+prepare s from "insert into t1 values (?)";
+set @a=99; execute s using @a;
+prepare s from "insert into t1 select 100 limit ?";
+set @a=100; execute s using @a;
+
+save_master_pos;
+connection slave;
+sync_with_master;
+show binlog events from 98;
+select * from t1;
+connection master;
+drop table t1;
+
+#
+# Bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
+#
+connection master;
+create table t1(a int, b int);
+prepare s1 from 'insert into t1 values (@x:=@x+1, ?)';
+set @x=1; execute s1 using @x;
+select * from t1;
+sync_slave_with_master;
+connection slave;
+select * from t1;
+connection master;
+drop table t1;
+
+--echo End of 5.0 tests.
+
+# This test uses a stored function that uses user-defined variables to return data
+# The test ensures the value of the user-defined variable is replicated correctly
+# and in the correct order of assignment.
+# This test was constructed for BUG#20141
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+
+# Create two functions. One simply returns the user-defined variable. The other
+# returns a value based on the user-defined variable.
-# End of 4.1 tests
+CREATE FUNCTION f1() RETURNS INT RETURN @a;
+DELIMITER |;
+CREATE FUNCTION f2() RETURNS INT
+BEGIN
+ INSERT INTO t1 VALUES (10 + @a);
+ RETURN 0;
+END|
+DELIMITER ;|
+
+sync_slave_with_master;
+connection master;
+
+# Set the variable and execute the functions.
+
+SET @a:=123;
+SELECT f1(), f2();
+
+--echo On master: Check to see that data was inserted correctly
+
+INSERT INTO t1 VALUES(f1());
+SELECT * FROM t1;
+
+sync_slave_with_master;
+
+--echo On slave: Check the table for correct data and it matches master
+
+SELECT * FROM t1;
+
+connection master;
+
+# Cleanup
+
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP TABLE t1;
+
+sync_slave_with_master;
+stop slave;
diff --git a/mysql-test/t/rpl_variables-master.opt b/mysql-test/t/rpl_variables-master.opt
new file mode 100644
index 00000000000..a668c6bfbe8
--- /dev/null
+++ b/mysql-test/t/rpl_variables-master.opt
@@ -0,0 +1 @@
+--slave-skip-errors=3,100,137,643,1752
diff --git a/mysql-test/t/rpl_variables.test b/mysql-test/t/rpl_variables.test
index 8c5279c0420..d0801e524e4 100644
--- a/mysql-test/t/rpl_variables.test
+++ b/mysql-test/t/rpl_variables.test
@@ -1,6 +1,20 @@
source include/master-slave.inc;
+# Init for rstore of variable values
+set @my_slave_net_timeout =@@global.slave_net_timeout;
+
set global slave_net_timeout=100;
set global sql_slave_skip_counter=100;
# End of 4.1 tests
+
+# BUG #7800: Add various-slave related variables to SHOW VARIABLES
+show variables like 'slave_compressed_protocol';
+--replace_column 2 SLAVE_LOAD_TMPDIR
+show variables like 'slave_load_tmpdir';
+# We just set some arbitrary values in variables-master.opt so we can test
+# that a list of values works correctly
+show variables like 'slave_skip_errors';
+
+# Restore touched values
+set global slave_net_timeout =@my_slave_net_timeout;
diff --git a/mysql-test/t/rpl_view-slave.opt b/mysql-test/t/rpl_view-slave.opt
new file mode 100644
index 00000000000..79b3bf6174b
--- /dev/null
+++ b/mysql-test/t/rpl_view-slave.opt
@@ -0,0 +1 @@
+--replicate-ignore-table=test.foo
diff --git a/mysql-test/t/rpl_view.test b/mysql-test/t/rpl_view.test
new file mode 100644
index 00000000000..21748586130
--- /dev/null
+++ b/mysql-test/t/rpl_view.test
@@ -0,0 +1,164 @@
+source include/master-slave.inc;
+--disable_warnings
+drop table if exists t1,v1;
+drop view if exists t1,v1;
+sync_slave_with_master;
+reset master;
+--enable_warnings
+
+#
+# Check that createion drop of view is replicated, also check replication of
+# updating of view
+#
+connection master;
+create table t1 (a int);
+insert into t1 values (1);
+create view v1 as select a from t1;
+insert into v1 values (2);
+select * from v1 order by a;
+sync_slave_with_master;
+# view already have to be on slave
+select * from v1 order by a;
+connection master;
+update v1 set a=3 where a=1;
+select * from v1 order by a;
+sync_slave_with_master;
+select * from v1 order by a;
+connection master;
+delete from v1 where a=2;
+select * from v1 order by a;
+sync_slave_with_master;
+select * from v1 order by a;
+connection master;
+# 'alter view' internally maped to creation, but still check that it works
+alter view v1 as select a as b from t1;
+sync_slave_with_master;
+select * from v1 order by 1;
+connection master;
+drop view v1;
+sync_slave_with_master;
+#error, because view have to be removed from slave
+-- error 1146
+select * from v1 order by a;
+connection master;
+drop table t1;
+sync_slave_with_master;
+--replace_column 2 # 5 #
+show binlog events limit 1,100;
+
+
+
+#
+# BUG#20438: CREATE statements for views, stored routines and triggers can be
+# not replicable.
+#
+
+--echo
+--echo ---> Test for BUG#20438
+
+# Prepare environment.
+
+--echo
+--echo ---> Preparing environment...
+--echo ---> connection: master
+--connection master
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+--echo
+--echo ---> Synchronizing slave with master...
+
+--save_master_pos
+--connection slave
+--sync_with_master
+
+--echo
+--echo ---> connection: master
+--connection master
+
+# Test.
+
+--echo
+--echo ---> Creating objects...
+
+CREATE TABLE t1(c INT);
+
+/*!50003 CREATE VIEW v1 AS SELECT * FROM t1 */;
+
+--echo
+--echo ---> Inserting value...
+
+INSERT INTO t1 VALUES(1);
+
+--echo
+--echo ---> Checking on master...
+
+SELECT * FROM t1;
+
+--echo
+--echo ---> Synchronizing slave with master...
+
+--save_master_pos
+--connection slave
+--sync_with_master
+
+--echo ---> connection: master
+
+--echo
+--echo ---> Checking on slave...
+
+SELECT * FROM t1;
+
+# Cleanup.
+
+--echo
+--echo ---> connection: master
+--connection master
+
+--echo
+--echo ---> Cleaning up...
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+--save_master_pos
+--connection slave
+--sync_with_master
+--connection master
+
+#
+# BUG#19419: "VIEW: View that the column name is different
+# by master and slave is made".
+#
+connection master;
+create table t1(a int, b int);
+insert into t1 values (1, 1), (1, 2), (1, 3);
+create view v1(a, b) as select a, sum(b) from t1 group by a;
+
+sync_slave_with_master;
+explain v1;
+show create table v1;
+select * from v1;
+
+connection master;
+drop table t1;
+drop view v1;
+
+sync_slave_with_master;
+
+#
+# BUG#28244 CREATE VIEW breaks replication when view exists
+#
+connection master;
+CREATE TABLE t1(a INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+--error ER_TABLE_EXISTS_ERROR
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP VIEW v1;
+DROP TABLE t1;
+sync_slave_with_master;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/schema.test b/mysql-test/t/schema.test
new file mode 100644
index 00000000000..a08d9b38935
--- /dev/null
+++ b/mysql-test/t/schema.test
@@ -0,0 +1,14 @@
+#
+# Just a couple of tests to make sure that schema works.
+#
+# Drop mysqltest1 database, as it can left from the previous tests.
+#
+
+--disable_warnings
+drop database if exists mysqltest1;
+--enable_warnings
+
+create schema foo;
+show create schema foo;
+show schemas;
+drop schema foo;
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index 0dc179e9b4b..5c30a17e08e 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -7,9 +7,10 @@
#
--disable_warnings
-drop table if exists t1,t2,t3,t4;
+drop table if exists t1,t2,t3,t4,t11;
# The following may be left from older tests
-drop table if exists t1_1,t1_2,t9_1,t9_2;
+drop table if exists t1_1,t1_2,t9_1,t9_2,t1aa,t2aa;
+drop view if exists v1;
--enable_warnings
CREATE TABLE t1 (
@@ -1541,6 +1542,11 @@ select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.
select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
+
+select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+select count(*) from t2 left join t4 using (companynr) where companynr is not null;
+explain select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr is null;
delete from t2 where fld1=999999;
#
@@ -1549,11 +1555,19 @@ delete from t2 where fld1=999999;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
+
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
# Following can't be optimized
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
+explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
+explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
+
#
# Joins with forms.
#
@@ -1764,9 +1778,9 @@ DO benchmark(100,1+1),1,1;
# Bug #6449: do default;
#
---error 1064
+--error ER_PARSE_ERROR
do default;
---error 1054
+--error ER_BAD_FIELD_ERROR
do foobar;
#
@@ -1788,11 +1802,14 @@ DROP TABLE t1;
# Test of bug with SUM(CASE...)
#
-CREATE TABLE t1 (gvid int(10) unsigned default NULL, hmid int(10) unsigned default NULL, volid int(10) unsigned default NULL, mmid int(10) unsigned default NULL, hdid int(10) unsigned default NULL, fsid int(10) unsigned default NULL, ctid int(10) unsigned default NULL, dtid int(10) unsigned default NULL, cost int(10) unsigned default NULL, performance int(10) unsigned default NULL, serialnumber bigint(20) unsigned default NULL, monitored tinyint(3) unsigned default '1', removed tinyint(3) unsigned default '0', target tinyint(3) unsigned default '0', dt_modified timestamp(14) NOT NULL, name varchar(255) binary default NULL, description varchar(255) default NULL, UNIQUE KEY hmid (hmid,volid)) ENGINE=MyISAM;
+CREATE TABLE t1 (gvid int(10) unsigned default NULL, hmid int(10) unsigned default NULL, volid int(10) unsigned default NULL, mmid int(10) unsigned default NULL, hdid int(10) unsigned default NULL, fsid int(10) unsigned default NULL, ctid int(10) unsigned default NULL, dtid int(10) unsigned default NULL, cost int(10) unsigned default NULL, performance int(10) unsigned default NULL, serialnumber bigint(20) unsigned default NULL, monitored tinyint(3) unsigned default '1', removed tinyint(3) unsigned default '0', target tinyint(3) unsigned default '0', dt_modified timestamp NOT NULL, name varchar(255) binary default NULL, description varchar(255) default NULL, UNIQUE KEY hmid (hmid,volid)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (200001,2,1,1,100,1,1,1,0,0,0,1,0,1,20020425060057,'\\\\ARKIVIO-TESTPDC\\E$',''),(200002,2,2,1,101,1,1,1,0,0,0,1,0,1,20020425060057,'\\\\ARKIVIO-TESTPDC\\C$',''),(200003,1,3,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,20020425060427,'c:',NULL);
CREATE TABLE t2 ( hmid int(10) unsigned default NULL, volid int(10) unsigned default NULL, sampletid smallint(5) unsigned default NULL, sampletime datetime default NULL, samplevalue bigint(20) unsigned default NULL, KEY idx1 (hmid,volid,sampletid,sampletime)) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1,3,10,'2002-06-01 08:00:00',35),(1,3,1010,'2002-06-01 12:00:01',35);
+# Disable PS becasue we get more warnings from PS than from normal execution
+--disable_ps_protocol
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= 'wrong-date-value' AND b.sampletime < 'wrong-date-value' AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
+--enable_ps_protocol
# Testing the same select with NULL's instead of invalid datetime values
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= NULL AND b.sampletime < NULL AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
DROP TABLE t1,t2;
@@ -2118,8 +2135,8 @@ WHERE
drop table t1,t2,t3;
#
-# Bug #11482 4.1.12 produces different resultset for a complex query
-# than in previous 4.1.x
+# Bug #11482 Wrongly applied optimization was erroneously rejecting valid
+# rows
create table t1 (f1 int);
insert into t1 values (1),(NULL);
create table t2 (f2 int, f3 int, f4 int);
@@ -2200,31 +2217,21 @@ show table status like 't1%';
select 123 as a from t1 where f1 is null;
drop table t1,t11;
-# Bug 7672 Unknown column error in order clause
-#
-CREATE TABLE t1 (a INT, b INT);
-(SELECT a, b AS c FROM t1) ORDER BY c+1;
-(SELECT a, b AS c FROM t1) ORDER BY b+1;
-SELECT a, b AS c FROM t1 ORDER BY c+1;
-SELECT a, b AS c FROM t1 ORDER BY b+1;
-drop table t1;
-
#
# Bug #3874 (function in GROUP and LEFT JOIN)
#
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL, UNIQUE idx (a,b) );
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4);
-CREATE TABLE t2 ( a INT NOT NULL, b INT NOT NULL, c INT );
-INSERT INTO t2 VALUES ( 1,10,1), (1,10,2), (1,11,1), (1,11,2), (1,2,1), (1,2,2),
- (1,2,3);
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
+CREATE TABLE t2 ( a INT NOT NULL, b INT NOT NULL, e INT );
+INSERT INTO t2 VALUES ( 1,10,1), (1,10,2), (1,11,1), (1,11,2), (1,2,1), (1,2,2),(1,2,3);
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY t1.a, t1.b, c;
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY t2.a, t2.b, c;
-SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2,t1
+SELECT t2.a, t2.b, IF(t1.b IS NULL,'',e) AS c, COUNT(*) AS d FROM t2,t1
WHERE t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
DROP TABLE IF EXISTS t1, t2;
@@ -2294,7 +2301,7 @@ DROP TABLE t1;
#
CREATE TABLE t1 (i BIGINT UNSIGNED NOT NULL);
INSERT INTO t1 VALUES (10);
-SELECT i='1e+01',i=1e+01, i in (1e+01), i in ('1e+01') FROM t1;
+SELECT i='1e+01',i=1e+01, i in (1e+01,1e+01), i in ('1e+01','1e+01') FROM t1;
DROP TABLE t1;
#
@@ -2354,3 +2361,1127 @@ select hex(a), hex(b) from t1;
drop table t1;
--echo End of 4.1 tests
+
+#
+# Test for bug #6474
+#
+
+CREATE TABLE t1 (
+K2C4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '',
+K4N4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '0000',
+F2I4 int(11) NOT NULL default '0'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+INSERT INTO t1 VALUES
+('W%RT', '0100', 1),
+('W-RT', '0100', 1),
+('WART', '0100', 1),
+('WART', '0200', 1),
+('WERT', '0100', 2),
+('WORT','0200', 2),
+('WT', '0100', 2),
+('W_RT', '0100', 2),
+('WaRT', '0100', 3),
+('WART', '0300', 3),
+('WRT' , '0400', 3),
+('WURM', '0500', 3),
+('W%T', '0600', 4),
+('WA%T', '0700', 4),
+('WA_T', '0800', 4);
+
+SELECT K2C4, K4N4, F2I4 FROM t1
+ WHERE K2C4 = 'WART' AND
+ (F2I4 = 2 AND K2C4 = 'WART' OR (F2I4 = 2 OR K4N4 = '0200'));
+SELECT K2C4, K4N4, F2I4 FROM t1
+ WHERE K2C4 = 'WART' AND (K2C4 = 'WART' OR K4N4 = '0200');
+DROP TABLE t1;
+
+#
+# Bug#8670
+#
+create table t1 (a int, b int);
+create table t2 like t1;
+select t1.a from (t1 inner join t2 on t1.a=t2.a) where t2.a=1;
+select t1.a from ((t1 inner join t2 on t1.a=t2.a)) where t2.a=1;
+select x.a, y.a, z.a from ( (t1 x inner join t2 y on x.a=y.a) inner join t2 z on y.a=z.a) WHERE x.a=1;
+drop table t1,t2;
+
+#
+# Bug#9820
+#
+
+create table t1 (s1 varchar(5));
+insert into t1 values ('Wall');
+select min(s1) from t1 group by s1 with rollup;
+drop table t1;
+
+#
+# Bug#9799
+#
+
+create table t1 (s1 int) engine=myisam;
+insert into t1 values (0);
+select avg(distinct s1) from t1 group by s1 with rollup;
+drop table t1;
+
+#
+# Bug#9800
+#
+
+create table t1 (s1 int);
+insert into t1 values (null),(1);
+select distinct avg(s1) as x from t1 group by s1 with rollup;
+drop table t1;
+
+
+#
+# Test for bug #10084: STRAIGHT_JOIN with ON expression
+#
+
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (a int);
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+INSERT INTO t2 VALUES (2), (4), (6);
+
+SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
+
+EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
+EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #10650
+#
+
+select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
+
+#
+# Bug #11398 Bug in field_conv() results in wrong result of join with index
+#
+create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null);
+create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4));
+insert into t1 values (" 2", 2);
+insert into t2 values (" 2", " one "),(" 2", " two ");
+select * from t1 left join t2 on f1 = f3;
+drop table t1,t2;
+
+#
+# Bug #6558 Views: CREATE VIEW fails with JOIN ... USING
+#
+
+create table t1 (empnum smallint, grp int);
+create table t2 (empnum int, name char(5));
+insert into t1 values(1,1);
+insert into t2 values(1,'bob');
+create view v1 as select * from t2 inner join t1 using (empnum);
+select * from v1;
+drop table t1,t2;
+drop view v1;
+
+#
+# Bug #10646 Columns included in the join between two tables are ambigious
+# in the select
+#
+
+create table t1 (pk int primary key, b int);
+create table t2 (pk int primary key, c int);
+select pk from t1 inner join t2 using (pk);
+drop table t1,t2;
+
+#
+# Bug #10972 Natural join of view and underlying table gives wrong result
+#
+
+create table t1 (s1 int, s2 char(5), s3 decimal(10));
+create view v1 as select s1, s2, 'x' as s3 from t1;
+select * from t1 natural join v1;
+insert into t1 values (1,'x',5);
+select * from t1 natural join v1;
+drop table t1;
+drop view v1;
+
+#
+# Bug #6276 A SELECT that does a NATURAL OUTER JOIN without common
+# columns crashes server because of empty ON condition
+#
+
+create table t1(a1 int);
+create table t2(a2 int);
+insert into t1 values(1),(2);
+insert into t2 values(1),(2);
+create view v2 (c) as select a1 from t1;
+
+select * from t1 natural left join t2;
+select * from t1 natural right join t2;
+
+select * from v2 natural left join t2;
+select * from v2 natural right join t2;
+
+drop table t1, t2;
+drop view v2;
+
+
+#
+# Bug #4789 Incosistent results of more than 2-way natural joins due to
+# incorrect transformation to join ... on.
+#
+
+create table t1 (a int(10), t1_val int(10));
+create table t2 (b int(10), t2_val int(10));
+create table t3 (a int(10), b int(10));
+insert into t1 values (1,1),(2,2);
+insert into t2 values (1,1),(2,2),(3,3);
+insert into t3 values (1,1),(2,1),(3,1),(4,1);
+# the following two queries must return the same result
+select * from t1 natural join t2 natural join t3;
+select * from t1 natural join t3 natural join t2;
+drop table t1, t2, t3;
+
+
+#
+# Bug #12841: Server crash on DO IFNULL(NULL,NULL)
+#
+# (testing returning of int, decimal, real, string)
+DO IFNULL(NULL, NULL);
+SELECT CAST(IFNULL(NULL, NULL) AS DECIMAL);
+SELECT ABS(IFNULL(NULL, NULL));
+SELECT IFNULL(NULL, NULL);
+
+#
+# BUG #12595 (ESCAPE must be exactly one)
+#
+SET @OLD_SQL_MODE12595=@@SQL_MODE, @@SQL_MODE='';
+SHOW LOCAL VARIABLES LIKE 'SQL_MODE';
+
+CREATE TABLE BUG_12595(a varchar(100));
+INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an");
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%';
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
+-- error 1210
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
+# this should work when sql_mode is not NO_BACKSLASH_ESCAPES
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE '';
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '';
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE 0x5c;
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%';
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE '\\';
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha|%an' ESCAPE '|';
+
+SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
+SHOW LOCAL VARIABLES LIKE 'SQL_MODE';
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%';
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
+-- error 1210
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
+-- error 1210
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '\\';
+#this gives an error when NO_BACKSLASH_ESCAPES is set
+-- error 1210
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE '';
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE 0x5c;
+SELECT * FROM BUG_12595 WHERE a LIKE 'ha|%an' ESCAPE '|';
+-- error 1210
+SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\n%' ESCAPE '\n';
+
+SET @@SQL_MODE=@OLD_SQL_MODE12595;
+DROP TABLE BUG_12595;
+
+#
+# Bug #6495 Illogical requirement for column qualification in NATURAL join
+#
+
+create table t1 (a char(1));
+create table t2 (a char(1));
+insert into t1 values ('a'),('b'),('c');
+insert into t2 values ('b'),('c'),('d');
+select a from t1 natural join t2;
+select * from t1 natural join t2 where a = 'b';
+drop table t1, t2;
+
+#
+# Bug #12977 Compare table names with qualifying field tables only
+# for base tables, search all nested join operands of natural joins.
+#
+
+CREATE TABLE t1 (`id` TINYINT);
+CREATE TABLE t2 (`id` TINYINT);
+CREATE TABLE t3 (`id` TINYINT);
+INSERT INTO t1 VALUES (1),(2),(3);
+INSERT INTO t2 VALUES (2);
+INSERT INTO t3 VALUES (3);
+-- error 1052
+SELECT t1.id,t3.id FROM t1 JOIN t2 ON (t2.id=t1.id) LEFT JOIN t3 USING (id);
+-- error 1052
+SELECT t1.id,t3.id FROM t1 JOIN t2 ON (t2.notacolumn=t1.id) LEFT JOIN t3 USING (id);
+-- error 1052
+SELECT id,t3.id FROM t1 JOIN t2 ON (t2.id=t1.id) LEFT JOIN t3 USING (id);
+-- error 1052
+SELECT id,t3.id FROM (t1 JOIN t2 ON (t2.id=t1.id)) LEFT JOIN t3 USING (id);
+
+drop table t1, t2, t3;
+
+#
+# Bug #13067 JOIN xxx USING is case sensitive
+#
+
+create table t1 (a int(10),b int(10));
+create table t2 (a int(10),b int(10));
+insert into t1 values (1,10),(2,20),(3,30);
+insert into t2 values (1,10);
+# both queries should produce the same result
+select * from t1 inner join t2 using (A);
+select * from t1 inner join t2 using (a);
+drop table t1, t2;
+
+#
+# Bug #12943 Incorrect nesting of [INNER| CROSS] JOIN due to unspecified
+# associativity in the parser.
+#
+
+create table t1 (a int, c int);
+create table t2 (b int);
+create table t3 (b int, a int);
+create table t4 (c int);
+insert into t1 values (1,1);
+insert into t2 values (1);
+insert into t3 values (1,1);
+insert into t4 values (1);
+
+select * from t1 join t2 join t3 on (t2.b = t3.b and t1.a = t3.a);
+# Notice that ',' has lower priority than 'join', thus we have that:
+# t1, t2 join t3 <==> t1, (t2 join t3).
+-- error 1054
+select * from t1, t2 join t3 on (t2.b = t3.b and t1.a = t3.a);
+select * from t1 join t2 join t3 join t4 on (t1.a = t4.c and t2.b = t4.c);
+select * from t1 join t2 join t4 using (c);
+drop table t1, t2, t3, t4;
+
+#
+# Bug #12291 Table wasn't reinited for index scan after sequential scan
+#
+create table t1(x int, y int);
+create table t2(x int, y int);
+create table t3(x int, primary key(x));
+insert into t1 values (1, 1), (2, 1), (3, 1), (4, 3), (5, 6), (6, 6);
+insert into t2 values (1, 1), (2, 1), (3, 3), (4, 6), (5, 6);
+insert into t3 values (1), (2), (3), (4), (5);
+select t1.x, t3.x from t1, t2, t3 where t1.x = t2.x and t3.x >= t1.y and t3.x <= t2.y;
+drop table t1,t2,t3;
+
+#
+# Bug #13127 LEFT JOIN against a VIEW returns NULL instead of correct value
+#
+
+create table t1 (id char(16) not null default '', primary key (id));
+insert into t1 values ('100'),('101'),('102');
+create table t2 (id char(16) default null);
+insert into t2 values (1);
+create view v1 as select t1.id from t1;
+create view v2 as select t2.id from t2;
+create view v3 as select (t1.id+2) as id from t1 natural left join t2;
+
+# all queries must return the same result
+select t1.id from t1 left join v2 using (id);
+select t1.id from v2 right join t1 using (id);
+select t1.id from t1 left join v3 using (id);
+select * from t1 left join v2 using (id);
+select * from v2 right join t1 using (id);
+select * from t1 left join v3 using (id);
+
+select v1.id from v1 left join v2 using (id);
+select v1.id from v2 right join v1 using (id);
+select v1.id from v1 left join v3 using (id);
+select * from v1 left join v2 using (id);
+select * from v2 right join v1 using (id);
+select * from v1 left join v3 using (id);
+
+drop table t1, t2;
+drop view v1, v2, v3;
+
+#
+# Bug #13597 Column in ON condition not resolved if references a table in
+# nested right join.
+#
+
+create table t1 (id int(11) not null default '0');
+insert into t1 values (123),(191),(192);
+create table t2 (id char(16) character set utf8 not null);
+insert into t2 values ('58013'),('58014'),('58015'),('58016');
+create table t3 (a_id int(11) not null, b_id char(16) character set utf8);
+insert into t3 values (123,null),(123,null),(123,null),(123,null),(123,null),(123,'58013');
+
+# both queries are equivalent
+select count(*)
+from t1 inner join (t3 left join t2 on t2.id = t3.b_id) on t1.id = t3.a_id;
+
+select count(*)
+from t1 inner join (t2 right join t3 on t2.id = t3.b_id) on t1.id = t3.a_id;
+
+drop table t1,t2,t3;
+
+#
+# Bug #13832 Incorrect parse order of join productions due to unspecified
+# operator priorities results in incorrect join tree.
+#
+
+create table t1 (a int);
+create table t2 (b int);
+create table t3 (c int);
+select * from t1 join t2 join t3 on (t1.a=t3.c);
+select * from t1 join t2 left join t3 on (t1.a=t3.c);
+select * from t1 join t2 right join t3 on (t1.a=t3.c);
+select * from t1 join t2 straight_join t3 on (t1.a=t3.c);
+drop table t1, t2 ,t3;
+
+#
+# Bug #14093 Query takes a lot of time when date format is not valid
+# fix optimizes execution. so here we just check that returned set is
+# correct.
+create table t1(f1 int, f2 date);
+insert into t1 values(1,'2005-01-01'),(2,'2005-09-01'),(3,'2005-09-30'),
+ (4,'2005-10-01'),(5,'2005-12-30');
+# should return all records
+select * from t1 where f2 >= 0;
+select * from t1 where f2 >= '0000-00-00';
+# should return 4,5
+select * from t1 where f2 >= '2005-09-31';
+select * from t1 where f2 >= '2005-09-3a';
+# should return 1,2,3
+select * from t1 where f2 <= '2005-09-31';
+select * from t1 where f2 <= '2005-09-3a';
+drop table t1;
+
+#
+# Bug ##14662 ORDER BY on column of a view, with an alias of the same
+# column causes ambiguous
+#
+
+create table t1 (f1 int, f2 int);
+insert into t1 values (1, 30), (2, 20), (3, 10);
+create algorithm=merge view v1 as select f1, f2 from t1;
+create algorithm=merge view v2 (f2, f1) as select f1, f2 from t1;
+create algorithm=merge view v3 as select t1.f1 as f2, t1.f2 as f1 from t1;
+select t1.f1 as x1, f1 from t1 order by t1.f1;
+select v1.f1 as x1, f1 from v1 order by v1.f1;
+select v2.f1 as x1, f1 from v2 order by v2.f1;
+select v3.f1 as x1, f1 from v3 order by v3.f1;
+select f1, f2, v1.f1 as x1 from v1 order by v1.f1;
+select f1, f2, v2.f1 as x1 from v2 order by v2.f1;
+select f1, f2, v3.f1 as x1 from v3 order by v3.f1;
+drop table t1;
+drop view v1, v2, v3;
+
+#
+# Bug #15106: lost equality predicate of the form field=const in a join query
+#
+
+CREATE TABLE t1(key_a int4 NOT NULL, optimus varchar(32), PRIMARY KEY(key_a));
+CREATE TABLE t2(key_a int4 NOT NULL, prime varchar(32), PRIMARY KEY(key_a));
+CREATE table t3(key_a int4 NOT NULL, key_b int4 NOT NULL, foo varchar(32),
+ PRIMARY KEY(key_a,key_b));
+
+INSERT INTO t1 VALUES (0,'');
+INSERT INTO t1 VALUES (1,'i');
+INSERT INTO t1 VALUES (2,'j');
+INSERT INTO t1 VALUES (3,'k');
+
+INSERT INTO t2 VALUES (1,'r');
+INSERT INTO t2 VALUES (2,'s');
+INSERT INTO t2 VALUES (3,'t');
+
+INSERT INTO t3 VALUES (1,5,'x');
+INSERT INTO t3 VALUES (1,6,'y');
+INSERT INTO t3 VALUES (2,5,'xx');
+INSERT INTO t3 VALUES (2,6,'yy');
+INSERT INTO t3 VALUES (2,7,'zz');
+INSERT INTO t3 VALUES (3,5,'xxx');
+
+SELECT t2.key_a,foo
+ FROM t1 INNER JOIN t2 ON t1.key_a = t2.key_a
+ INNER JOIN t3 ON t1.key_a = t3.key_a
+ WHERE t2.key_a=2 and key_b=5;
+EXPLAIN SELECT t2.key_a,foo
+ FROM t1 INNER JOIN t2 ON t1.key_a = t2.key_a
+ INNER JOIN t3 ON t1.key_a = t3.key_a
+ WHERE t2.key_a=2 and key_b=5;
+
+SELECT t2.key_a,foo
+ FROM t1 INNER JOIN t2 ON t2.key_a = t1.key_a
+ INNER JOIN t3 ON t1.key_a = t3.key_a
+ WHERE t2.key_a=2 and key_b=5;
+EXPLAIN SELECT t2.key_a,foo
+ FROM t1 INNER JOIN t2 ON t2.key_a = t1.key_a
+ INNER JOIN t3 ON t1.key_a = t3.key_a
+ WHERE t2.key_a=2 and key_b=5;
+
+DROP TABLE t1,t2,t3;
+
+#
+# Bug#15347 Wrong result of subselect when records cache and set functions
+# are involved
+#
+create table t1 (f1 int);
+insert into t1 values(1),(2);
+create table t2 (f2 int, f3 int, key(f2));
+insert into t2 values(1,1),(2,2);
+create table t3 (f4 int not null);
+insert into t3 values (2),(2),(2);
+select f1,(select count(*) from t2,t3 where f2=f1 and f3=f4) as count from t1;
+drop table t1,t2,t3;
+
+#
+# Bug #15633 Evaluation of Item_equal for non-const table caused wrong
+# select result
+#
+create table t1 (f1 int unique);
+create table t2 (f2 int unique);
+create table t3 (f3 int unique);
+insert into t1 values(1),(2);
+insert into t2 values(1),(2);
+insert into t3 values(1),(NULL);
+select * from t3 where f3 is null;
+select t2.f2 from t1 left join t2 on f1=f2 join t3 on f1=f3 where f1=1;
+drop table t1,t2,t3;
+
+#
+# Bug#15268 Unchecked null value caused server crash
+#
+create table t1(f1 char, f2 char not null);
+insert into t1 values(null,'a');
+create table t2 (f2 char not null);
+insert into t2 values('b');
+select * from t1 left join t2 on f1=t2.f2 where t1.f2='a';
+drop table t1,t2;
+
+#
+# Bug#15538 unchecked table absense caused server crash.
+#
+--error 1064
+select * from (select * left join t on f1=f2) tt;
+
+#
+# Bug #16504: re-evaluation of Item_equal object after reading const table
+#
+
+CREATE TABLE t1 (sku int PRIMARY KEY, pr int);
+CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255));
+
+INSERT INTO t1 VALUES
+ (10, 10), (20, 10), (30, 20), (40, 30), (50, 10), (60, 10);
+
+INSERT INTO t2 VALUES
+ (10, 10, 'aaa'), (20, 10, 'bbb'), (30, 10, 'ccc'), (40, 20, 'ddd'),
+ (50, 10, 'eee'), (60, 20, 'fff'), (70, 20, 'ggg'), (80, 30, 'hhh');
+
+SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
+ FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
+EXPLAIN
+SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
+ FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
+
+
+DROP TABLE t1,t2;
+
+#
+# Bug#18712: Truncation problem (needs just documenting and test
+# cases to prevent fixing this accidently. It is intended behaviour)
+#
+
+CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
+INSERT t1 SET i = 0;
+UPDATE t1 SET i = -1;
+SELECT * FROM t1;
+UPDATE t1 SET i = CAST(i - 1 AS SIGNED);
+SELECT * FROM t1;
+UPDATE t1 SET i = i - 1;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# BUG#17379
+
+create table t1 (a int);
+insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, b int, c int, e int, primary key(a,b,c));
+insert into t2 select A.a, B.a, C.a, C.a from t1 A, t1 B, t1 C;
+analyze table t2;
+select 'In next EXPLAIN, B.rows must be exactly 10:' Z;
+
+explain select * from t2 A, t2 B where A.a=5 and A.b=5 and A.C<5
+ and B.a=5 and B.b=A.e and (B.b =1 or B.b = 3 or B.b=5);
+drop table t1, t2;
+
+#
+#Bug #18940: selection of optimal execution plan caused by equality
+# propagation (the bug was fixed by the patch for bug #17379)
+
+CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
+INSERT INTO t1 VALUES (1, 3), (9,4), (7,5), (4,5), (6,2),
+ (3,1), (5,1), (8,9), (2,2), (0,9);
+
+CREATE TABLE t2 (c int, d int, f int, INDEX(c,f));
+INSERT INTO t2 VALUES
+ (1,0,0), (1,0,1), (2,0,0), (2,0,1), (3,0,0), (4,0,1),
+ (5,0,0), (5,0,1), (6,0,0), (0,0,1), (7,0,0), (7,0,1),
+ (0,0,0), (0,0,1), (8,0,0), (8,0,1), (9,0,0), (9,0,1);
+
+EXPLAIN
+SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
+EXPLAIN
+SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
+
+DROP TABLE t1, t2;
+
+#
+# Bug #18895: BIT values cause joins to fail
+#
+create table t1 (
+ a int unsigned not null auto_increment primary key,
+ b bit not null,
+ c bit not null
+);
+
+create table t2 (
+ a int unsigned not null auto_increment primary key,
+ b bit not null,
+ c int unsigned not null,
+ d varchar(50)
+);
+
+insert into t1 (b,c) values (0,1), (0,1);
+insert into t2 (b,c) values (0,1);
+
+# Row 1 should succeed. Row 2 should fail. Both fail.
+select t1.a, t1.b + 0, t1.c + 0, t2.a, t2.b + 0, t2.c, t2.d
+from t1 left outer join t2 on t1.a = t2.c and t2.b <> 1
+where t1.b <> 1 order by t1.a;
+
+drop table t1,t2;
+
+#
+# Bug #20569: Garbage in DECIMAL results from some mathematical functions
+#
+SELECT 0.9888889889 * 1.011111411911;
+
+#
+# Bug #10977: No warning issued if a column name is truncated
+#
+prepare stmt from 'select 1 as " a "';
+execute stmt;
+
+#
+# Bug #21390: wrong estimate of rows after elimination of const tables
+#
+
+CREATE TABLE t1 (a int NOT NULL PRIMARY KEY, b int NOT NULL);
+INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
+
+CREATE TABLE t2 (c int NOT NULL, INDEX idx(c));
+INSERT INTO t2 VALUES
+ (1), (1), (1), (1), (1), (1), (1), (1),
+ (2), (2), (2), (2),
+ (3), (3),
+ (4);
+
+EXPLAIN SELECT b FROM t1, t2 WHERE b=c AND a=1;
+EXPLAIN SELECT b FROM t1, t2 WHERE b=c AND a=4;
+
+DROP TABLE t1, t2;
+
+#
+# No matches for a join after substitution of a const table
+#
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a int);
+INSERT INTO t1 VALUES (1,2), (2,NULL), (3,2);
+
+CREATE TABLE t2 (b int, c INT, INDEX idx1(b));
+INSERT INTO t2 VALUES (2,1), (3,2);
+
+CREATE TABLE t3 (d int, e int, INDEX idx1(d));
+INSERT INTO t3 VALUES (2,10), (2,20), (1,30), (2,40), (2,50);
+
+EXPLAIN
+SELECT * FROM t1 LEFT JOIN t2 ON t2.b=t1.a INNER JOIN t3 ON t3.d=t1.id
+ WHERE t1.id=2;
+SELECT * FROM t1 LEFT JOIN t2 ON t2.b=t1.a INNER JOIN t3 ON t3.d=t1.id
+ WHERE t1.id=2;
+
+DROP TABLE t1,t2,t3;
+
+#
+# Bug#20503: Server crash due to the ORDER clause isn't taken into account
+# while space allocation
+#
+create table t1 (c1 varchar(1), c2 int, c3 int, c4 int, c5 int, c6 int,
+c7 int, c8 int, c9 int, fulltext key (`c1`));
+select distinct match (`c1`) against ('z') , c2, c3, c4,c5, c6,c7, c8
+ from t1 where c9=1 order by c2, c2;
+drop table t1;
+
+#
+# Bug #22735: no equality propagation for BETWEEN and IN with STRING arguments
+#
+
+CREATE TABLE t1 (pk varchar(10) PRIMARY KEY, fk varchar(16));
+CREATE TABLE t2 (pk varchar(16) PRIMARY KEY, fk varchar(10));
+
+INSERT INTO t1 VALUES
+ ('d','dddd'), ('i','iii'), ('a','aa'), ('b','bb'), ('g','gg'),
+ ('e','eee'), ('c','cccc'), ('h','hhh'), ('j','jjj'), ('f','fff');
+INSERT INTO t2 VALUES
+ ('jjj', 'j'), ('cc','c'), ('ccc','c'), ('aaa', 'a'), ('jjjj','j'),
+ ('hhh','h'), ('gg','g'), ('fff','f'), ('ee','e'), ('ffff','f'),
+ ('bbb','b'), ('ff','f'), ('cccc','c'), ('dddd','d'), ('jj','j'),
+ ('aaaa','a'), ('bb','b'), ('eeee','e'), ('aa','a'), ('hh','h');
+
+EXPLAIN SELECT t2.*
+ FROM t1 JOIN t2 ON t2.fk=t1.pk
+ WHERE t2.fk < 'c' AND t2.pk=t1.fk;
+EXPLAIN SELECT t2.*
+ FROM t1 JOIN t2 ON t2.fk=t1.pk
+ WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
+EXPLAIN SELECT t2.*
+ FROM t1 JOIN t2 ON t2.fk=t1.pk
+ WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #22367: Optimizer uses ref join type instead of eq_ref for simple
+# join on strings
+#
+CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
+CREATE TABLE t2 (a int, b varchar(20) NOT NULL,
+ PRIMARY KEY (a), UNIQUE KEY (b));
+INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c');
+INSERT INTO t2 VALUES (1,'a'),(2,'b'),(3,'c');
+
+EXPLAIN SELECT t1.a FROM t1 LEFT JOIN t2 ON t2.b=t1.b WHERE t1.a=3;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #19579: predicates that become sargable after reading const tables
+# are not taken into account by optimizer
+#
+
+CREATE TABLE t1(id int PRIMARY KEY, b int, e int);
+CREATE TABLE t2(i int, a int, INDEX si(i), INDEX ai(a));
+CREATE TABLE t3(a int PRIMARY KEY, c char(4), INDEX ci(c));
+
+INSERT INTO t1 VALUES
+ (1,10,19), (2,20,22), (4,41,42), (9,93,95), (7, 77,79),
+ (6,63,67), (5,55,58), (3,38,39), (8,81,89);
+INSERT INTO t2 VALUES
+ (21,210), (41,410), (82,820), (83,830), (84,840),
+ (65,650), (51,510), (37,370), (94,940), (76,760),
+ (22,220), (33,330), (40,400), (95,950), (38,380),
+ (67,670), (88,880), (57,570), (96,960), (97,970);
+INSERT INTO t3 VALUES
+ (210,'bb'), (950,'ii'), (400,'ab'), (500,'ee'), (220,'gg'),
+ (440,'gg'), (310,'eg'), (380,'ee'), (840,'bb'), (830,'ff'),
+ (230,'aa'), (960,'ii'), (410,'aa'), (510,'ee'), (290,'bb'),
+ (450,'gg'), (320,'dd'), (390,'hh'), (850,'jj'), (860,'ff');
+
+EXPLAIN
+SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
+ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
+ t3.a=t2.a AND t3.c IN ('bb','ee');
+EXPLAIN
+SELECT t3.a FROM t1,t2,t3
+ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
+ t3.a=t2.a AND t3.c IN ('bb','ee') ;
+
+EXPLAIN
+SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
+ WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
+ t3.c IN ('bb','ee');
+EXPLAIN
+SELECT t3.a FROM t1,t2,t3
+ WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
+ t3.c IN ('bb','ee');
+
+DROP TABLE t1,t2,t3;
+
+#
+# WL3527: Extend IGNORE INDEX so places where index is ignored can
+# be specified
+#
+CREATE TABLE t1 (a INT, b INT, KEY (a)); INSERT INTO t1 VALUES (1,1),(2,2);
+EXPLAIN SELECT 1 FROM t1 WHERE a = 1;
+EXPLAIN SELECT 1 FROM t1 IGNORE INDEX FOR JOIN (a) WHERE a = 1;
+EXPLAIN SELECT 1 FROM t1 USE INDEX FOR JOIN (a) WHERE a = 1;
+EXPLAIN SELECT 1 FROM t1 FORCE INDEX FOR JOIN (a) WHERE a = 1;
+DROP TABLE t1;
+
+#
+# Bug#25172: Not checked buffer size leads to a server crash
+#
+CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int);
+CREATE TABLE t2 ( f11 int PRIMARY KEY );
+INSERT INTO t1 VALUES (1,1,1,0,0,0,0),(2,1,1,3,8,1,0),(3,1,1,4,12,1,0);
+INSERT INTO t2 VALUES (62);
+SELECT * FROM t1 LEFT JOIN t2 ON f11 = t1.checked_out GROUP BY f1 ORDER BY f2, f3, f4, f5 LIMIT 0, 1;
+DROP TABLE t1, t2;
+
+#
+# Bug#6298: LIMIT #, -1 no longer works to set start with no end limit
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1(a int);
+INSERT into t1 values (1), (2), (3);
+
+# LIMIT N, -1 was accepted by accident in 4.0, but was not intended.
+# This test verifies that this illegal construct is now properly detected.
+
+--error ER_PARSE_ERROR
+SELECT * FROM t1 LIMIT 2, -1;
+
+DROP TABLE t1;
+
+#
+# 25407: wrong estimate of NULL keys for unique indexes
+#
+
+CREATE TABLE t1 (
+ ID_with_null int NULL,
+ ID_better int NOT NULL,
+ INDEX idx1 (ID_with_null),
+ INDEX idx2 (ID_better)
+);
+
+INSERT INTO t1 VALUES (1,1), (2,1), (null,3), (null,3), (null,3), (null,3);
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID_with_null IS NULL;
+
+SELECT COUNT(*) FROM t1 WHERE ID_with_null IS NULL;
+SELECT COUNT(*) FROM t1 WHERE ID_better=1;
+
+EXPLAIN SELECT * FROM t1 WHERE ID_better=1 AND ID_with_null IS NULL;
+
+DROP INDEX idx1 ON t1;
+CREATE UNIQUE INDEX idx1 ON t1(ID_with_null);
+
+EXPLAIN SELECT * FROM t1 WHERE ID_better=1 AND ID_with_null IS NULL;
+
+DROP TABLE t1;
+
+CREATE TABLE t1 (
+ ID1_with_null int NULL,
+ ID2_with_null int NULL,
+ ID_better int NOT NULL,
+ INDEX idx1 (ID1_with_null, ID2_with_null),
+ INDEX idx2 (ID_better)
+);
+
+INSERT INTO t1 VALUES (1,1,1), (2,2,1), (3,null,3), (null,3,3), (null,null,3),
+ (3,null,3), (null,3,3), (null,null,3), (3,null,3), (null,3,3), (null,null,3);
+
+INSERT INTO t1 SELECT * FROM t1 WHERE ID1_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID2_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID1_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID2_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID1_with_null IS NULL;
+INSERT INTO t1 SELECT * FROM t1 WHERE ID2_with_null IS NULL;
+
+SELECT COUNT(*) FROM t1 WHERE ID1_with_null IS NULL AND ID2_with_null=3;
+SELECT COUNT(*) FROM t1 WHERE ID1_with_null=3 AND ID2_with_null IS NULL;
+SELECT COUNT(*) FROM t1 WHERE ID1_with_null IS NULL AND ID2_with_null IS NULL;
+SELECT COUNT(*) FROM t1 WHERE ID_better=1;
+
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null=3 ;
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null=3 AND ID2_with_null=3 IS NULL ;
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null IS NULL;
+
+DROP INDEX idx1 ON t1;
+CREATE UNIQUE INDEX idx1 ON t1(ID1_with_null,ID2_with_null);
+
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null=3 ;
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null=3 AND ID2_with_null IS NULL ;
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null IS NULL AND ID2_with_null IS NULL;
+EXPLAIN SELECT * FROM t1
+ WHERE ID_better=1 AND ID1_with_null IS NULL AND
+ (ID2_with_null=1 OR ID2_with_null=2);
+
+DROP TABLE t1;
+
+#
+# Bug #22344: InnoDB keys act strange on datetime vs timestamp comparison
+#
+CREATE TABLE t1 (a INT, ts TIMESTAMP, KEY ts(ts));
+INSERT INTO t1 VALUES (30,"2006-01-03 23:00:00"), (31,"2006-01-03 23:00:00");
+ANALYZE TABLE t1;
+
+CREATE TABLE t2 (a INT, dt1 DATETIME, dt2 DATETIME, PRIMARY KEY (a));
+INSERT INTO t2 VALUES (30, "2006-01-01 00:00:00", "2999-12-31 00:00:00");
+INSERT INTO t2 SELECT a+1,dt1,dt2 FROM t2;
+ANALYZE TABLE t2;
+
+EXPLAIN
+SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
+ AND t1.ts BETWEEN t2.dt1 AND t2.dt2
+ AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
+
+SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
+ AND t1.ts BETWEEN t2.dt1 AND t2.dt2
+ AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
+
+DROP TABLE t1,t2;
+#
+# Bug #22026: Warning when using IF statement and large unsigned bigint
+#
+
+create table t1 (a bigint unsigned);
+insert into t1 values
+ (if(1, 9223372036854775808, 1)),
+ (case when 1 then 9223372036854775808 else 1 end),
+ (coalesce(9223372036854775808, 1));
+select * from t1;
+drop table t1;
+create table t1 select
+ if(1, 9223372036854775808, 1) i,
+ case when 1 then 9223372036854775808 else 1 end c,
+ coalesce(9223372036854775808, 1) co;
+show create table t1;
+drop table t1;
+# Ensure we handle big values properly
+select
+ if(1, cast(1111111111111111111 as unsigned), 1) i,
+ case when 1 then cast(1111111111111111111 as unsigned) else 1 end c,
+ coalesce(cast(1111111111111111111 as unsigned), 1) co;
+
+#
+# Bug #22971: indexes on text columns are ignored for ref accesses
+#
+
+CREATE TABLE t1 (name varchar(255));
+CREATE TABLE t2 (name varchar(255), n int, KEY (name(3)));
+INSERT INTO t1 VALUES ('ccc'), ('bb'), ('cc '), ('aa '), ('aa');
+INSERT INTO t2 VALUES ('bb',1), ('aa',2), ('cc ',3);
+INSERT INTO t2 VALUES (concat('cc ', 0x06), 4);
+INSERT INTO t2 VALUES ('cc',5), ('bb ',6), ('cc ',7);
+SELECT * FROM t2;
+SELECT * FROM t2 ORDER BY name;
+SELECT name, LENGTH(name), n FROM t2 ORDER BY name;
+
+EXPLAIN SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+
+DROP TABLE t1,t2;
+
+CREATE TABLE t1 (name text);
+CREATE TABLE t2 (name text, n int, KEY (name(3)));
+INSERT INTO t1 VALUES ('ccc'), ('bb'), ('cc '), ('aa '), ('aa');
+INSERT INTO t2 VALUES ('bb',1), ('aa',2), ('cc ',3);
+INSERT INTO t2 VALUES (concat('cc ', 0x06), 4);
+INSERT INTO t2 VALUES ('cc',5), ('bb ',6), ('cc ',7);
+SELECT * FROM t2;
+SELECT * FROM t2 ORDER BY name;
+SELECT name, LENGTH(name), n FROM t2 ORDER BY name;
+
+EXPLAIN SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+SELECT name, LENGTH(name), n FROM t2 WHERE name='cc ';
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%';
+EXPLAIN SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+SELECT name , LENGTH(name), n FROM t2 WHERE name LIKE 'cc%' ORDER BY name;
+EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+SELECT * FROM t1 LEFT JOIN t2 ON t1.name=t2.name;
+
+DROP TABLE t1,t2;
+
+
+#
+# Bug #26963: join with predicates that contain fields from equalities evaluated
+# to constants after constant table substitution
+#
+
+CREATE TABLE t1 (
+ access_id int NOT NULL default '0',
+ name varchar(20) default NULL,
+ rank int NOT NULL default '0',
+ KEY idx (access_id)
+);
+
+CREATE TABLE t2 (
+ faq_group_id int NOT NULL default '0',
+ faq_id int NOT NULL default '0',
+ access_id int default NULL,
+ UNIQUE KEY idx1 (faq_id),
+ KEY idx2 (faq_group_id,faq_id)
+);
+
+INSERT INTO t1 VALUES
+ (1,'Everyone',2),(2,'Help',3),(3,'Technical Support',1),(4,'Chat User',4);
+INSERT INTO t2 VALUES
+ (261,265,1),(490,494,1);
+
+
+SELECT t2.faq_id
+ FROM t1 INNER JOIN t2 IGNORE INDEX (idx1)
+ ON (t1.access_id = t2.access_id)
+ LEFT JOIN t2 t
+ ON (t.faq_group_id = t2.faq_group_id AND
+ find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
+ WHERE
+ t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
+
+SELECT t2.faq_id
+ FROM t1 INNER JOIN t2
+ ON (t1.access_id = t2.access_id)
+ LEFT JOIN t2 t
+ ON (t.faq_group_id = t2.faq_group_id AND
+ find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
+ WHERE
+ t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
+
+DROP TABLE t1,t2;
+
+
+#
+# Bug #19372: Optimizer does not use index anymore when WHERE index NOT IN
+# () is added
+#
+CREATE TABLE t1 (a INT, b INT, KEY inx (b,a));
+
+INSERT INTO t1 VALUES (1,1), (1,2), (1,3), (1,4), (1,5), (1, 6), (1,7);
+EXPLAIN SELECT COUNT(*) FROM t1 f1 INNER JOIN t1 f2
+ ON ( f1.b=f2.b AND f1.a<f2.a )
+ WHERE 1 AND f1.b NOT IN (100,2232,3343,51111);
+DROP TABLE t1;
+
+#
+# Bug #27352: Incorrect result of nested selects instead of error reporting
+#
+
+CREATE TABLE t1 (c1 INT, c2 INT);
+INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
+
+let $n= 31;
+let $q= COUNT(c2);
+while ($n)
+{
+ let $q= (SELECT $q);
+ dec $n;
+}
+--disable_warnings
+eval EXPLAIN SELECT c1 FROM t1 WHERE $q > 0;
+--enable_warnings
+
+let $n= 64;
+let $q= COUNT(c2);
+while ($n)
+{
+ let $q= (SELECT $q);
+ dec $n;
+}
+--error ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+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;
+
+#
+# Bug #27695: Misleading warning when declaring all space column names and
+# truncation of one-space column names to zero length names.
+#
+
+--disable_ps_protocol
+
+SELECT 1 AS ` `;
+SELECT 1 AS ` `;
+SELECT 1 AS ` x`;
+
+CREATE VIEW v1 AS SELECT 1 AS ` `;
+SELECT `` FROM v1;
+
+CREATE VIEW v2 AS SELECT 1 AS ` `;
+SELECT `` FROM v2;
+
+CREATE VIEW v3 AS SELECT 1 AS ` x`;
+SELECT `x` FROM v3;
+
+DROP VIEW v1, v2, v3;
+
+--enable_ps_protocol
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/select_safe.test b/mysql-test/t/select_safe.test
index 236370bef03..481779e76d7 100644
--- a/mysql-test/t/select_safe.test
+++ b/mysql-test/t/select_safe.test
@@ -56,7 +56,6 @@ SELECT * from t1;
#
# Test MAX_SEEKS_FOR_KEY
#
-SELECT @@MAX_SEEKS_FOR_KEY;
analyze table t1;
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
explain select STRAIGHT_JOIN * from t1,t1 as t2 where t1.b=t2.b;
@@ -79,7 +78,7 @@ select * from (select * from t1) x;
set local max_join_size=1;
--error 1104
-select * from (select * from t1 a, t1 b) x;
+select * from (select a.a as aa, b.a as ba from t1 a, t1 b) x;
set local max_join_size=1;
--error 1104
diff --git a/mysql-test/t/shm-master.opt b/mysql-test/t/shm-master.opt
new file mode 100644
index 00000000000..d71395213b1
--- /dev/null
+++ b/mysql-test/t/shm-master.opt
@@ -0,0 +1 @@
+--skip-grant-tables --loose-shared-memory-base-name=HeyMrBaseNameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$MTR_BUILD_THREAD --loose-shared-memory=1
diff --git a/mysql-test/t/shm.test b/mysql-test/t/shm.test
new file mode 100644
index 00000000000..380607d8ebf
--- /dev/null
+++ b/mysql-test/t/shm.test
@@ -0,0 +1,19 @@
+# We currently only have shm support on windows, so in order
+# to optimize things we skip this test on all other platforms
+--source include/windows.inc
+
+# Only run this test if shared memory is avaliable
+let $shm= query_get_value("SHOW VARIABLES LIKE 'shared_memory'", Value, 1);
+if (`SELECT '$shm' != 'ON'`){
+ skip No shm support;
+}
+
+# Source select test case
+-- source include/common-tests.inc
+
+#
+# Bug #24924: shared-memory-base-name that is too long causes buffer overflow
+#
+--exec $MYSQLADMIN --no-defaults --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --shared-memory-base-name=HeyMrBaseNameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ping
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/show_check-master.opt b/mysql-test/t/show_check-master.opt
new file mode 100644
index 00000000000..7a438da06cc
--- /dev/null
+++ b/mysql-test/t/show_check-master.opt
@@ -0,0 +1 @@
+--log-slow-queries --log-long-format --log-queries-not-using-indexes --myisam-recover=""
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index 8be676d9a35..cae3c3e157c 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -7,7 +7,9 @@
--disable_warnings
drop table if exists t1,t2;
+drop table if exists t1aa,t2aa;
drop database if exists mysqltest;
+drop database if exists mysqltest1;
delete from mysql.user where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
delete from mysql.db where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
@@ -16,6 +18,12 @@ flush privileges;
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
check table t1 fast;
check table t1 fast;
check table t1 changed;
@@ -24,28 +32,58 @@ check table t1 changed;
check table t1 medium;
check table t1 extended;
show index from t1;
+--disable_metadata
--error 1062
insert into t1 values (5,5,5);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
optimize table t1;
+--disable_metadata
optimize table t1;
drop table t1;
#show variables;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
show variables like "wait_timeout%";
show variables like "WAIT_timeout%";
show variables like "this_doesn't_exists%";
show table status from test like "this_doesn't_exists%";
show databases;
show databases like "test%";
+--disable_metadata
#
# Check of show index
#
create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4));
insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
analyze table t1;
+--disable_metadata
show index from t1;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
+
repair table t1;
+--disable_metadata
show index from t1;
drop table t1;
@@ -104,7 +142,7 @@ drop table t1;
# Do a create table that tries to cover all types and options
#
create table t1 (
-type_bool bool not null,
+type_bool bool not null default 0,
type_tiny tinyint not null auto_increment primary key,
type_short smallint(3),
type_mediumint mediumint,
@@ -115,9 +153,9 @@ empty_char char(0),
type_char char(2),
type_varchar varchar(10),
type_timestamp timestamp not null,
-type_date date not null,
-type_time time not null,
-type_datetime datetime not null,
+type_date date not null default '0000-00-00',
+type_time time not null default '00:00:00',
+type_datetime datetime not null default '0000-00-00 00:00:00',
type_year year,
type_enum enum ('red', 'green', 'blue'),
type_set enum ('red', 'green', 'blue'),
@@ -175,16 +213,24 @@ CREATE TABLE `a/b` (i INT);
#CREATE TABLE ```ab````cd``` (i INT);
#SHOW CREATE TABLE ```ab````cd```;
#DROP TABLE ```ab````cd```;
-
+#
#CREATE TABLE ```a` (i INT);
#SHOW CREATE TABLE ```a`;
#DROP TABLE ```a`;
-
-SET sql_mode= 'ANSI_QUOTES';
-
+#
+#SET sql_mode= 'ANSI_QUOTES';
+#
#CREATE TABLE """a" (i INT);
#SHOW CREATE TABLE """a";
#DROP TABLE """a";
+#
+#Bug #4374 SHOW TABLE STATUS FROM ignores collation_connection
+#set names latin1;
+#create database `ä`;
+#create table `ä`.`ä` (a int) engine=heap;
+#--replace_column 7 # 8 # 9 #
+#show table status from `ä` LIKE 'ä';
+#drop database `ä`;
#########################################################
# end of part that must be uncommented when WL#1324 is done
#########################################################
@@ -213,7 +259,7 @@ select @@max_heap_table_size;
CREATE TABLE t1 (
a int(11) default NULL,
- KEY a TYPE BTREE (a)
+ KEY a USING BTREE (a)
) ENGINE=HEAP;
CREATE TABLE t2 (
@@ -224,7 +270,7 @@ CREATE TABLE t2 (
CREATE TABLE t3 (
a int(11) default NULL,
b int(11) default NULL,
- KEY a TYPE BTREE (a),
+ KEY a USING BTREE (a),
index(b)
) ENGINE=HEAP;
@@ -282,25 +328,25 @@ connect (con1,localhost,mysqltest_1,,mysqltest);
connection con1;
select * from t1;
show create database mysqltest;
---error 1044
+--error 1142
drop table t1;
--error 1044
drop database mysqltest;
connect (con2,localhost,mysqltest_2,,test);
connection con2;
---error 1044
+--error 1142
select * from mysqltest.t1;
--error 1044
show create database mysqltest;
---error 1044
+--error 1142
drop table mysqltest.t1;
--error 1044
drop database mysqltest;
connect (con3,localhost,mysqltest_3,,test);
connection con3;
---error 1044
+--error 1142
select * from mysqltest.t1;
--error 1044
show create database mysqltest;
@@ -315,7 +361,6 @@ delete from mysql.db
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
flush privileges;
-#Bug #4374 SHOW TABLE STATUS FROM ignores collation_connection
# This test fails on MAC OSX, so it is temporary disabled.
# This needs WL#1324 to be done.
#set names latin1;
@@ -382,7 +427,7 @@ DROP TABLE t1;
flush tables;
# Create a junk frm file on disk
-system echo "this is a junk file for test" >> var/master-data/test/t1.frm ;
+system echo "this is a junk file for test" >> $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
--replace_column 6 # 7 # 8 # 9 #
SHOW TABLE STATUS like 't1';
--error 1033
@@ -390,4 +435,413 @@ show create table t1;
drop table t1;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+#
+# BUG 12183 - SHOW OPEN TABLES behavior doesn't match grammar
+# First we close all open tables with FLUSH tables and then we open some.
+CREATE TABLE txt1(a int);
+CREATE TABLE tyt2(a int);
+CREATE TABLE urkunde(a int);
+FLUSH TABLES;
+SELECT 1 FROM mysql.db, mysql.proc, mysql.user, mysql.time_zone, mysql.time_zone_name, txt1, tyt2, urkunde LIMIT 0;
+SHOW OPEN TABLES;
+SHOW OPEN TABLES FROM mysql;
+SHOW OPEN TABLES FROM mysql LIKE 'u%';
+SHOW OPEN TABLES LIKE 't%';
+SHOW OPEN TABLES LIKE '%o%';
+FLUSH TABLES;
+SHOW OPEN TABLES;
+DROP TABLE txt1;
+DROP TABLE tyt2;
+DROP TABLE urkunde;
+#
+# BUG #12591 (SHOW TABLES FROM dbname produces wrong error message)
+#
+--error 1049
+SHOW TABLES FROM non_existing_database;
+
+
+#
+# Bug#17203: "sql_no_cache sql_cache" in views created from prepared
+# statement
+#
+# The problem was that initial user setting was forgotten, and current
+# runtime-determined values of the flags were shown instead.
+#
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+# Check that SHOW CREATE VIEW shows SQL_CACHE flag exaclty as
+# specified by the user.
+CREATE VIEW v1 AS SELECT 1;
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT SQL_CACHE 1;
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1;
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+# Usage of NOW() disables caching, but we still have show what the
+# user have specified.
+CREATE VIEW v1 AS SELECT NOW();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT SQL_CACHE NOW();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+# Check that SQL_NO_CACHE always wins.
+CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+# Check CREATE VIEW in a prepared statement in a procedure.
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ SET @s= 'CREATE VIEW v1 AS SELECT SQL_CACHE 1';
+ PREPARE stmt FROM @s;
+ EXECUTE stmt;
+ DROP PREPARE stmt;
+END |
+delimiter ;|
+CALL p1();
+SHOW CREATE VIEW v1;
+
+DROP PROCEDURE p1;
+DROP VIEW v1;
+
+
+#
+# Check that SHOW TABLES and SHOW COLUMNS give a error if there is no
+# referenced database and table respectively.
+#
+--error ER_BAD_DB_ERROR
+SHOW TABLES FROM no_such_database;
+--error ER_NO_SUCH_TABLE
+SHOW COLUMNS FROM no_such_table;
+
+
+#
+# Bug #19764: SHOW commands end up in the slow log as table scans
+#
+flush status;
+show status like 'slow_queries';
+show tables;
+show status like 'slow_queries';
+# Table scan query, to ensure that slow_queries does still get incremented
+# (mysqld is started with --log-queries-not-using-indexes)
+select 1 from information_schema.tables limit 1;
+show status like 'slow_queries';
+
+#
+# BUG#10491: Server returns data as charset binary SHOW CREATE TABLE or SELECT
+# FROM I_S.
+#
+
+#
+# Part 1: check that meta-data specifies not-binary character set.
+#
+
+# Ensure that all needed objects are dropped.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+# Create objects.
+
+CREATE DATABASE mysqltest1;
+
+CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+
+CREATE VIEW v1 AS SELECT 1;
+
+CREATE PROCEDURE p1() SELECT 1;
+
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+
+
+# Test.
+
+set names utf8;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
+
+--echo ----------------------------------------------------------------
+
+SHOW CHARACTER SET LIKE 'utf8';
+
+--echo ----------------------------------------------------------------
+
+SHOW COLLATION LIKE 'latin1_bin';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE DATABASE mysqltest1;
+
+--echo ----------------------------------------------------------------
+
+SHOW DATABASES LIKE 'mysqltest1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE TABLE t1;
+
+--echo ----------------------------------------------------------------
+
+SHOW INDEX FROM t1;
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ TABLE_CATALOG,
+ TABLE_SCHEMA,
+ TABLE_NAME,
+ TABLE_TYPE,
+ ENGINE,
+ ROW_FORMAT,
+ TABLE_COLLATION,
+ CREATE_OPTIONS,
+ TABLE_COMMENT
+FROM INFORMATION_SCHEMA.TABLES
+WHERE table_name = 't1';
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ TABLE_CATALOG,
+ TABLE_SCHEMA,
+ TABLE_NAME,
+ COLUMN_NAME,
+ COLUMN_DEFAULT,
+ IS_NULLABLE,
+ DATA_TYPE,
+ CHARACTER_SET_NAME,
+ COLLATION_NAME,
+ COLUMN_TYPE,
+ COLUMN_KEY,
+ EXTRA,
+ PRIVILEGES,
+ COLUMN_COMMENT
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 't1';
+
+--echo ----------------------------------------------------------------
+
+SHOW TABLES LIKE 't1';
+
+--echo ----------------------------------------------------------------
+
+SHOW COLUMNS FROM t1;
+
+--echo ----------------------------------------------------------------
+
+SHOW TRIGGERS LIKE 't1';
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ TRIGGER_CATALOG,
+ TRIGGER_SCHEMA,
+ TRIGGER_NAME,
+ EVENT_MANIPULATION,
+ EVENT_OBJECT_CATALOG,
+ EVENT_OBJECT_SCHEMA,
+ EVENT_OBJECT_TABLE,
+ ACTION_CONDITION,
+ ACTION_STATEMENT,
+ ACTION_ORIENTATION,
+ ACTION_TIMING,
+ ACTION_REFERENCE_OLD_TABLE,
+ ACTION_REFERENCE_NEW_TABLE,
+ ACTION_REFERENCE_OLD_ROW,
+ ACTION_REFERENCE_NEW_ROW,
+ SQL_MODE,
+ DEFINER
+FROM INFORMATION_SCHEMA.TRIGGERS
+WHERE trigger_name = 't1_bi';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE VIEW v1;
+
+--echo ----------------------------------------------------------------
+
+SELECT *
+FROM INFORMATION_SCHEMA.VIEWS
+WHERE table_name = 'v1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE PROCEDURE p1;
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ SPECIFIC_NAME,
+ ROUTINE_CATALOG,
+ ROUTINE_SCHEMA,
+ ROUTINE_NAME,
+ ROUTINE_TYPE,
+ DTD_IDENTIFIER,
+ ROUTINE_BODY,
+ ROUTINE_DEFINITION,
+ EXTERNAL_NAME,
+ EXTERNAL_LANGUAGE,
+ PARAMETER_STYLE,
+ IS_DETERMINISTIC,
+ SQL_DATA_ACCESS,
+ SQL_PATH,
+ SECURITY_TYPE,
+ SQL_MODE,
+ ROUTINE_COMMENT,
+ DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'p1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE FUNCTION f1;
+
+--echo ----------------------------------------------------------------
+
+SELECT
+ SPECIFIC_NAME,
+ ROUTINE_CATALOG,
+ ROUTINE_SCHEMA,
+ ROUTINE_NAME,
+ ROUTINE_TYPE,
+ DTD_IDENTIFIER,
+ ROUTINE_BODY,
+ ROUTINE_DEFINITION,
+ EXTERNAL_NAME,
+ EXTERNAL_LANGUAGE,
+ PARAMETER_STYLE,
+ IS_DETERMINISTIC,
+ SQL_DATA_ACCESS,
+ SQL_PATH,
+ SECURITY_TYPE,
+ SQL_MODE,
+ ROUTINE_COMMENT,
+ DEFINER
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE routine_name = 'f1';
+
+--echo ----------------------------------------------------------------
+
+--disable_metadata
+
+# Cleanup.
+
+DROP DATABASE mysqltest1;
+DROP TABLE t1;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+
+#
+# Part 2: check that table with non-latin1 characters are dumped/restored
+# correctly.
+#
+
+# Ensure that all needed objects are dropped.
+
+set names koi8r;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+--enable_warnings
+
+# Create objects.
+
+CREATE DATABASE mysqltest1;
+
+use mysqltest1;
+
+CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
+
+# Check:
+# - Dump mysqltest1;
+
+--echo
+--echo ---> Dumping mysqltest1 to show_check.mysqltest1.sql
+
+--exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+
+# - Clean mysqltest1;
+
+--echo
+--echo
+
+DROP DATABASE mysqltest1;
+
+# - Restore mysqltest1;
+
+--echo
+--echo
+
+--echo ---> Restoring mysqltest1...
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+
+# - Check definition of the table.
+
+SHOW CREATE TABLE mysqltest1.t1;
+
+# Cleanup.
+
+DROP DATABASE mysqltest1;
+use test;
+
+#
+# Bug #28808: log_queries_not_using_indexes variable dynamic change is ignored
+#
+flush status;
+show variables like "log_queries_not_using_indexes";
+select 1 from information_schema.tables limit 1;
+show status like 'slow_queries';
+set global log_queries_not_using_indexes=OFF;
+show variables like "log_queries_not_using_indexes";
+select 1 from information_schema.tables limit 1;
+show status like 'slow_queries';
+set global log_queries_not_using_indexes=ON;
+show variables like "log_queries_not_using_indexes";
+select 1 from information_schema.tables limit 1;
+show status like 'slow_queries';
+
+#
+# Bug #30088: Can't disable myisam-recover by a value of ""
+#
+show variables like 'myisam_recover_options';
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/skip_grants-master.opt b/mysql-test/t/skip_grants-master.opt
new file mode 100644
index 00000000000..5699a3387b8
--- /dev/null
+++ b/mysql-test/t/skip_grants-master.opt
@@ -0,0 +1 @@
+--skip-grant-tables
diff --git a/mysql-test/t/skip_grants.test b/mysql-test/t/skip_grants.test
new file mode 100644
index 00000000000..75694672a17
--- /dev/null
+++ b/mysql-test/t/skip_grants.test
@@ -0,0 +1,118 @@
+# This tests not performed with embedded server
+-- source include/not_embedded.inc
+
+use test;
+
+#
+# BUG#16777: Can not create trigger nor view w/o definer if --skip-grant-tables
+# specified
+#
+# Also, the following test cases have been moved here:
+# - test that we can create VIEW if privileges check switched off has been
+# moved here;
+# - test that we can create and drop procedure without warnings (BUG#9993);
+# - BUG#17595: "DROP FUNCTION IF EXISTS" crashes server;
+# - BUG#13504: creation view with DEFINER clause if --skip-grant-tables
+#
+
+# Prepare.
+
+--disable_warnings
+
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+DROP VIEW IF EXISTS v3;
+
+DROP TABLE IF EXISTS t1;
+
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+
+--enable_warnings
+
+# Test case.
+
+CREATE TABLE t1(c INT);
+
+# - try to create with implicit definer (definer would be ''@'');
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1
+ FOR EACH ROW
+ SET @a = 1;
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+CREATE PROCEDURE p1()
+ SELECT 1;
+
+CREATE FUNCTION f1() RETURNS INT
+ RETURN 1;
+
+# - try to create with explicit definer;
+
+CREATE DEFINER=a@b TRIGGER ti_ai AFTER INSERT ON t1
+ FOR EACH ROW
+ SET @b = 1;
+
+CREATE DEFINER=a@b VIEW v2 AS SELECT * FROM t1;
+
+CREATE DEFINER=a@b PROCEDURE p2()
+ SELECT 2;
+
+CREATE DEFINER=a@b FUNCTION f2() RETURNS INT
+ RETURN 2;
+
+# - try to create with explicit definer with empty host;
+
+CREATE DEFINER=a@'' TRIGGER ti_bu BEFORE UPDATE ON t1
+ FOR EACH ROW
+ SET @c = 1;
+
+CREATE DEFINER=a@'' VIEW v3 AS SELECT * FROM t1;
+
+CREATE DEFINER=a@'' PROCEDURE p3()
+ SELECT 3;
+
+CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
+ RETURN 3;
+
+# - check that empty host name is treated correctly;
+
+SHOW CREATE VIEW v3;
+
+SHOW CREATE PROCEDURE p3;
+
+SHOW CREATE FUNCTION f3;
+
+# Cleanup.
+
+DROP TRIGGER t1_bi;
+DROP TRIGGER ti_ai;
+DROP TRIGGER ti_bu;
+
+DROP VIEW v1;
+DROP VIEW v2;
+DROP VIEW v3;
+
+DROP TABLE t1;
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;
+
+#
+# Bug#26285 Selecting information_schema crahes server
+#
+select count(*) from information_schema.COLUMN_PRIVILEGES;
+select count(*) from information_schema.SCHEMA_PRIVILEGES;
+select count(*) from information_schema.TABLE_PRIVILEGES;
+select count(*) from information_schema.USER_PRIVILEGES;
diff --git a/mysql-test/t/skip_name_resolve.test b/mysql-test/t/skip_name_resolve.test
index 02339ca14c5..3f732c8912b 100644
--- a/mysql-test/t/skip_name_resolve.test
+++ b/mysql-test/t/skip_name_resolve.test
@@ -8,3 +8,13 @@ REVOKE ALL ON test.* FROM mysqltest_1@'127.0.0.1/255.255.255.255';
DROP USER mysqltest_1@'127.0.0.1/255.255.255.255';
# End of 4.1 tests
+
+# Bug #13407 "Remote connecting crashes server".
+# Server crashed when one used USER() function in connection for which
+# was impossible to obtain peer hostname.
+connect (con1, 127.0.0.1, root, , test, $MASTER_MYPORT, );
+--replace_column 1 #
+select user();
+--replace_column 1 <id> 3 <host> 5 <command> 6 <time> 7 <state> 8 <info>
+show processlist;
+connection default;
diff --git a/mysql-test/t/sp-big.test b/mysql-test/t/sp-big.test
new file mode 100644
index 00000000000..90a3a79dd53
--- /dev/null
+++ b/mysql-test/t/sp-big.test
@@ -0,0 +1,85 @@
+#
+# Bug #11602: SP with very large body not handled well
+#
+
+--disable_warnings
+drop procedure if exists test.longprocedure;
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (a int);
+insert into t1 values (1),(2),(3);
+
+let $body=`select repeat('select count(*) into out1 from t1;\n', 3072)`;
+
+delimiter //;
+--disable_query_log
+eval select length('$body') as length//
+eval create procedure test.longprocedure (out out1 int) deterministic
+begin
+ $body
+end//
+--enable_query_log
+
+delimiter ;//
+
+# this is larger than the length above, because it includes the 'begin' and
+# 'end' bits and some whitespace
+select length(routine_definition) from information_schema.routines where routine_schema = 'test' and routine_name = 'longprocedure';
+
+call test.longprocedure(@value); select @value;
+
+drop procedure test.longprocedure;
+drop table t1;
+#
+# Bug #9819 "Cursors: Mysql Server Crash while fetching from table with 5
+# million records.":
+# To really test the bug, increase the number of loop iterations ($1).
+# For 4 millions set $1 to 22.
+create table t1 (f1 char(100) , f2 mediumint , f3 int , f4 real, f5 numeric);
+insert into t1 (f1, f2, f3, f4, f5) values
+("This is a test case for for Bug#9819", 1, 2, 3.0, 4.598);
+create table t2 like t1;
+let $1=8;
+--disable_query_log
+--disable_result_log
+while ($1)
+{
+ eval insert into t1 select * from t1;
+ dec $1;
+}
+--enable_result_log
+--enable_query_log
+select count(*) from t1;
+select count(*) from t2;
+--disable_warnings
+drop procedure if exists p1;
+--enable_warnings
+delimiter |;
+create procedure p1()
+begin
+ declare done integer default 0;
+ declare vf1 char(100) ;
+ declare vf2 mediumint;
+ declare vf3 int ;
+ declare vf4 real ;
+ declare vf5 numeric ;
+ declare cur1 cursor for select f1,f2,f3,f4,f5 from t1;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open cur1;
+ while done <> 1 do
+ fetch cur1 into vf1, vf2, vf3, vf4, vf5;
+ if not done then
+ insert into t2 values (vf1, vf2, vf3, vf4, vf5);
+ end if;
+ end while;
+ close cur1;
+end|
+delimiter ;|
+call p1();
+select count(*) from t1;
+select count(*) from t2;
+select f1 from t1 limit 1;
+select f1 from t2 limit 1;
+drop procedure p1;
+drop table t1, t2;
diff --git a/mysql-test/t/sp-code.test b/mysql-test/t/sp-code.test
new file mode 100644
index 00000000000..10755f2bf8a
--- /dev/null
+++ b/mysql-test/t/sp-code.test
@@ -0,0 +1,524 @@
+#
+# Test the debugging feature "show procedure/function code <name>"
+#
+
+-- source include/have_debug.inc
+
+--disable_warnings
+drop procedure if exists empty;
+drop procedure if exists code_sample;
+--enable_warnings
+
+create procedure empty()
+begin
+end;
+show procedure code empty;
+drop procedure empty;
+
+create function almost_empty()
+ returns int
+ return 0;
+show function code almost_empty;
+drop function almost_empty;
+
+delimiter //;
+create procedure code_sample(x int, out err int, out nulls int)
+begin
+ declare count int default 0;
+
+ set nulls = 0;
+ begin
+ declare c cursor for select name from t1;
+ declare exit handler for not found close c;
+
+ open c;
+ loop
+ begin
+ declare n varchar(20);
+ declare continue handler for sqlexception set err=1;
+
+ fetch c into n;
+ if isnull(n) then
+ set nulls = nulls + 1;
+ else
+ set count = count + 1;
+ update t2 set idx = count where name=n;
+ end if;
+ end;
+ end loop;
+ end;
+ select t.name, t.idx from t2 t order by idx asc;
+end//
+delimiter ;//
+show procedure code code_sample;
+drop procedure code_sample;
+
+
+#
+# BUG#15737: Stored procedure optimizer bug with LEAVE
+#
+# This is a much more extensive test case than is strictly needed,
+# but it was kept as is for two reasons:
+# - The bug occurs under some quite special circumstances, so it
+# wasn't trivial to create a smaller test,
+# - There's some value in having another more complex code sample
+# in this test file. This might catch future code generation bugs
+# that doesn't show in behaviour in any obvious way.
+
+--disable_warnings
+drop procedure if exists sudoku_solve;
+--enable_warnings
+
+delimiter //;
+create procedure sudoku_solve(p_naive boolean, p_all boolean)
+ deterministic
+ modifies sql data
+begin
+ drop temporary table if exists sudoku_work, sudoku_schedule;
+
+ create temporary table sudoku_work
+ (
+ row smallint not null,
+ col smallint not null,
+ dig smallint not null,
+ cnt smallint,
+ key using btree (cnt),
+ key using btree (row),
+ key using btree (col),
+ unique key using hash (row,col)
+ );
+
+ create temporary table sudoku_schedule
+ (
+ idx int not null auto_increment primary key,
+ row smallint not null,
+ col smallint not null
+ );
+
+ call sudoku_init();
+
+ if p_naive then
+ update sudoku_work set cnt = 0 where dig = 0;
+ else
+ call sudoku_count();
+ end if;
+ insert into sudoku_schedule (row,col)
+ select row,col from sudoku_work where cnt is not null order by cnt desc;
+
+ begin
+ declare v_scounter bigint default 0;
+ declare v_i smallint default 1;
+ declare v_dig smallint;
+ declare v_schedmax smallint;
+
+ select count(*) into v_schedmax from sudoku_schedule;
+
+ more:
+ loop
+ begin
+ declare v_tcounter bigint default 0;
+
+ sched:
+ while v_i <= v_schedmax do
+ begin
+ declare v_row, v_col smallint;
+
+ select row,col into v_row,v_col from sudoku_schedule where v_i = idx;
+
+ select dig into v_dig from sudoku_work
+ where v_row = row and v_col = col;
+
+ case v_dig
+ when 0 then
+ set v_dig = 1;
+ update sudoku_work set dig = 1
+ where v_row = row and v_col = col;
+ when 9 then
+ if v_i > 0 then
+ update sudoku_work set dig = 0
+ where v_row = row and v_col = col;
+ set v_i = v_i - 1;
+ iterate sched;
+ else
+ select v_scounter as 'Solutions';
+ leave more;
+ end if;
+ else
+ set v_dig = v_dig + 1;
+ update sudoku_work set dig = v_dig
+ where v_row = row and v_col = col;
+ end case;
+
+ set v_tcounter = v_tcounter + 1;
+ if not sudoku_digit_ok(v_row, v_col, v_dig) then
+ iterate sched;
+ end if;
+ set v_i = v_i + 1;
+ end;
+ end while sched;
+
+ select dig from sudoku_work;
+ select v_tcounter as 'Tests';
+ set v_scounter = v_scounter + 1;
+
+ if p_all and v_i > 0 then
+ set v_i = v_i - 1;
+ else
+ leave more;
+ end if;
+ end;
+ end loop more;
+ end;
+
+ drop temporary table sudoku_work, sudoku_schedule;
+end//
+delimiter ;//
+
+# The interestings parts are where the code for the two "leave" are:
+# ...
+#| 26 | jump_if_not 30 (v_i@3 > 0) |
+# ...
+#| 30 | stmt 0 "select v_scounter as 'Solutions'" |
+#| 31 | jump 45 |
+# ...
+#| 42 | jump_if_not 45 (p_all@1 and (v_i@3 > 0)) |
+#| 43 | set v_i@3 (v_i@3 - 1) |
+#| 44 | jump 14 |
+#| 45 | stmt 9 "drop temporary table sudoku_work, sud..." |
+#+-----+-----------------------------------------------------------------------+
+# The bug appeared at position 42 (with the wrong destination).
+show procedure code sudoku_solve;
+
+drop procedure sudoku_solve;
+
+#
+# Bug#19194 (Right recursion in parser for CASE causes excessive stack
+# usage, limitation)
+# This bug also exposed a flaw in the generated code with nested case
+# statements
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS proc_19194_simple;
+DROP PROCEDURE IF EXISTS proc_19194_searched;
+DROP PROCEDURE IF EXISTS proc_19194_nested_1;
+DROP PROCEDURE IF EXISTS proc_19194_nested_2;
+DROP PROCEDURE IF EXISTS proc_19194_nested_3;
+DROP PROCEDURE IF EXISTS proc_19194_nested_4;
+--enable_warnings
+
+delimiter |;
+
+CREATE PROCEDURE proc_19194_simple(i int)
+BEGIN
+ DECLARE str CHAR(10);
+
+ CASE i
+ WHEN 1 THEN SET str="1";
+ WHEN 2 THEN SET str="2";
+ WHEN 3 THEN SET str="3";
+ ELSE SET str="unknown";
+ END CASE;
+
+ SELECT str;
+END|
+
+CREATE PROCEDURE proc_19194_searched(i int)
+BEGIN
+ DECLARE str CHAR(10);
+
+ CASE
+ WHEN i=1 THEN SET str="1";
+ WHEN i=2 THEN SET str="2";
+ WHEN i=3 THEN SET str="3";
+ ELSE SET str="unknown";
+ END CASE;
+
+ SELECT str;
+END|
+
+# Outer SIMPLE case, inner SEARCHED case
+CREATE PROCEDURE proc_19194_nested_1(i int, j int)
+BEGIN
+ DECLARE str_i CHAR(10);
+ DECLARE str_j CHAR(10);
+
+ CASE i
+ WHEN 10 THEN SET str_i="10";
+ WHEN 20 THEN
+ BEGIN
+ set str_i="20";
+ CASE
+ WHEN j=1 THEN SET str_j="1";
+ WHEN j=2 THEN SET str_j="2";
+ WHEN j=3 THEN SET str_j="3";
+ ELSE SET str_j="unknown";
+ END CASE;
+ select "i was 20";
+ END;
+ WHEN 30 THEN SET str_i="30";
+ WHEN 40 THEN SET str_i="40";
+ ELSE SET str_i="unknown";
+ END CASE;
+
+ SELECT str_i, str_j;
+END|
+
+# Outer SEARCHED case, inner SIMPLE case
+CREATE PROCEDURE proc_19194_nested_2(i int, j int)
+BEGIN
+ DECLARE str_i CHAR(10);
+ DECLARE str_j CHAR(10);
+
+ CASE
+ WHEN i=10 THEN SET str_i="10";
+ WHEN i=20 THEN
+ BEGIN
+ set str_i="20";
+ CASE j
+ WHEN 1 THEN SET str_j="1";
+ WHEN 2 THEN SET str_j="2";
+ WHEN 3 THEN SET str_j="3";
+ ELSE SET str_j="unknown";
+ END CASE;
+ select "i was 20";
+ END;
+ WHEN i=30 THEN SET str_i="30";
+ WHEN i=40 THEN SET str_i="40";
+ ELSE SET str_i="unknown";
+ END CASE;
+
+ SELECT str_i, str_j;
+END|
+
+# Outer SIMPLE case, inner SIMPLE case
+CREATE PROCEDURE proc_19194_nested_3(i int, j int)
+BEGIN
+ DECLARE str_i CHAR(10);
+ DECLARE str_j CHAR(10);
+
+ CASE i
+ WHEN 10 THEN SET str_i="10";
+ WHEN 20 THEN
+ BEGIN
+ set str_i="20";
+ CASE j
+ WHEN 1 THEN SET str_j="1";
+ WHEN 2 THEN SET str_j="2";
+ WHEN 3 THEN SET str_j="3";
+ ELSE SET str_j="unknown";
+ END CASE;
+ select "i was 20";
+ END;
+ WHEN 30 THEN SET str_i="30";
+ WHEN 40 THEN SET str_i="40";
+ ELSE SET str_i="unknown";
+ END CASE;
+
+ SELECT str_i, str_j;
+END|
+
+# Outer SEARCHED case, inner SEARCHED case
+CREATE PROCEDURE proc_19194_nested_4(i int, j int)
+BEGIN
+ DECLARE str_i CHAR(10);
+ DECLARE str_j CHAR(10);
+
+ CASE
+ WHEN i=10 THEN SET str_i="10";
+ WHEN i=20 THEN
+ BEGIN
+ set str_i="20";
+ CASE
+ WHEN j=1 THEN SET str_j="1";
+ WHEN j=2 THEN SET str_j="2";
+ WHEN j=3 THEN SET str_j="3";
+ ELSE SET str_j="unknown";
+ END CASE;
+ select "i was 20";
+ END;
+ WHEN i=30 THEN SET str_i="30";
+ WHEN i=40 THEN SET str_i="40";
+ ELSE SET str_i="unknown";
+ END CASE;
+
+ SELECT str_i, str_j;
+END|
+
+delimiter ;|
+
+SHOW PROCEDURE CODE proc_19194_simple;
+SHOW PROCEDURE CODE proc_19194_searched;
+SHOW PROCEDURE CODE proc_19194_nested_1;
+SHOW PROCEDURE CODE proc_19194_nested_2;
+SHOW PROCEDURE CODE proc_19194_nested_3;
+SHOW PROCEDURE CODE proc_19194_nested_4;
+
+CALL proc_19194_nested_1(10, 1);
+
+#
+# Before 19194, the generated code was:
+# 20 jump_if_not 23(27) 30
+# 21 set str_i@2 _latin1'30'
+# As opposed to the expected:
+# 20 jump_if_not 23(27) (case_expr@0 = 30)
+# 21 set str_i@2 _latin1'30'
+#
+# and as a result, this call returned "30",
+# because the expression 30 is always true,
+# masking the case 40, case 0 and the else.
+#
+CALL proc_19194_nested_1(25, 1);
+
+CALL proc_19194_nested_1(20, 1);
+CALL proc_19194_nested_1(20, 2);
+CALL proc_19194_nested_1(20, 3);
+CALL proc_19194_nested_1(20, 4);
+CALL proc_19194_nested_1(30, 1);
+CALL proc_19194_nested_1(40, 1);
+CALL proc_19194_nested_1(0, 0);
+
+CALL proc_19194_nested_2(10, 1);
+
+#
+# Before 19194, the generated code was:
+# 20 jump_if_not 23(27) (case_expr@0 = (i@0 = 30))
+# 21 set str_i@2 _latin1'30'
+# As opposed to the expected:
+# 20 jump_if_not 23(27) (i@0 = 30)
+# 21 set str_i@2 _latin1'30'
+# and as a result, this call crashed the server, because there is no
+# such variable as "case_expr@0".
+#
+CALL proc_19194_nested_2(25, 1);
+
+CALL proc_19194_nested_2(20, 1);
+CALL proc_19194_nested_2(20, 2);
+CALL proc_19194_nested_2(20, 3);
+CALL proc_19194_nested_2(20, 4);
+CALL proc_19194_nested_2(30, 1);
+CALL proc_19194_nested_2(40, 1);
+CALL proc_19194_nested_2(0, 0);
+
+CALL proc_19194_nested_3(10, 1);
+CALL proc_19194_nested_3(25, 1);
+CALL proc_19194_nested_3(20, 1);
+CALL proc_19194_nested_3(20, 2);
+CALL proc_19194_nested_3(20, 3);
+CALL proc_19194_nested_3(20, 4);
+CALL proc_19194_nested_3(30, 1);
+CALL proc_19194_nested_3(40, 1);
+CALL proc_19194_nested_3(0, 0);
+
+CALL proc_19194_nested_4(10, 1);
+CALL proc_19194_nested_4(25, 1);
+CALL proc_19194_nested_4(20, 1);
+CALL proc_19194_nested_4(20, 2);
+CALL proc_19194_nested_4(20, 3);
+CALL proc_19194_nested_4(20, 4);
+CALL proc_19194_nested_4(30, 1);
+CALL proc_19194_nested_4(40, 1);
+CALL proc_19194_nested_4(0, 0);
+
+DROP PROCEDURE proc_19194_simple;
+DROP PROCEDURE proc_19194_searched;
+DROP PROCEDURE proc_19194_nested_1;
+DROP PROCEDURE proc_19194_nested_2;
+DROP PROCEDURE proc_19194_nested_3;
+DROP PROCEDURE proc_19194_nested_4;
+
+#
+# Bug#19207: Final parenthesis omitted for CREATE INDEX in Stored
+# Procedure
+#
+# Wrong criteria was used to distinguish the case when there was no
+# lookahead performed in the parser. Bug affected only statements
+# ending in one-character token without any optional tail, like CREATE
+# INDEX and CALL.
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+CREATE PROCEDURE p1() CREATE INDEX idx ON t1 (c1);
+SHOW PROCEDURE CODE p1;
+
+DROP PROCEDURE p1;
+
+
+#
+# Bug#26977 exception handlers never hreturn
+#
+--disable_warnings
+drop table if exists t1;
+drop procedure if exists proc_26977_broken;
+drop procedure if exists proc_26977_works;
+--enable_warnings
+
+create table t1(a int unique);
+
+delimiter //;
+
+create procedure proc_26977_broken(v int)
+begin
+ declare i int default 5;
+
+ declare continue handler for sqlexception
+ begin
+ select 'caught something';
+ retry:
+ while i > 0 do
+ begin
+ set i = i - 1;
+ select 'looping', i;
+ end;
+ end while retry;
+ end;
+
+ select 'do something';
+ insert into t1 values (v);
+ select 'do something again';
+ insert into t1 values (v);
+end//
+
+create procedure proc_26977_works(v int)
+begin
+ declare i int default 5;
+
+ declare continue handler for sqlexception
+ begin
+ select 'caught something';
+ retry:
+ while i > 0 do
+ begin
+ set i = i - 1;
+ select 'looping', i;
+ end;
+ end while retry;
+ select 'optimizer: keep hreturn';
+ end;
+
+ select 'do something';
+ insert into t1 values (v);
+ select 'do something again';
+ insert into t1 values (v);
+end//
+delimiter ;//
+
+show procedure code proc_26977_broken;
+
+show procedure code proc_26977_works;
+
+## This caust an error because of jump short cut
+## optimization.
+call proc_26977_broken(1);
+
+## This works
+call proc_26977_works(2);
+
+drop table t1;
+drop procedure proc_26977_broken;
+drop procedure proc_26977_works;
+
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/sp-destruct.test b/mysql-test/t/sp-destruct.test
new file mode 100644
index 00000000000..c568e6bb8f4
--- /dev/null
+++ b/mysql-test/t/sp-destruct.test
@@ -0,0 +1,141 @@
+#
+# Destructive stored procedure tests
+#
+# We do horrible things to the mysql.proc table here, so any unexpected
+# failures here might leave it in an undetermined state.
+#
+# In the case of trouble you might want to skip this.
+#
+
+# Backup proc table
+--copy_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm $MYSQLTEST_VARDIR/tmp/proc.frm
+--copy_file $MYSQLTEST_VARDIR/master-data/mysql/proc.MYD $MYSQLTEST_VARDIR/tmp/proc.MYD
+--copy_file $MYSQLTEST_VARDIR/master-data/mysql/proc.MYI $MYSQLTEST_VARDIR/tmp/proc.MYI
+
+use test;
+
+--disable_warnings
+drop procedure if exists bug14233;
+drop function if exists bug14233;
+drop table if exists t1;
+drop view if exists v1;
+--enable_warnings
+
+create procedure bug14233()
+ set @x = 42;
+
+create function bug14233_f() returns int
+ return 42;
+
+create table t1 (id int);
+create trigger t1_ai after insert on t1 for each row call bug14233();
+
+# Unsupported tampering with the mysql.proc definition
+alter table mysql.proc drop type;
+--error ER_SP_PROC_TABLE_CORRUPT
+call bug14233();
+--error ER_SP_PROC_TABLE_CORRUPT
+create view v1 as select bug14233_f();
+--error ER_SP_PROC_TABLE_CORRUPT
+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
+--replace_result $MYSQLTEST_VARDIR . master-data// '' '\\' '/'
+--error ER_NOT_FORM_FILE
+call bug14233();
+--replace_result $MYSQLTEST_VARDIR . master-data// '' '\\' '/'
+--error ER_NOT_FORM_FILE
+create view v1 as select bug14233_f();
+--replace_result $MYSQLTEST_VARDIR . master-data// '' '\\' '/'
+--error ER_NOT_FORM_FILE
+insert into t1 values (0);
+
+flush table mysql.proc;
+
+# Drop the mysql.proc table
+--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
+--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.MYD
+--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.MYI
+--error ER_NO_SUCH_TABLE
+call bug14233();
+--error ER_NO_SUCH_TABLE
+create view v1 as select bug14233_f();
+--error ER_NO_SUCH_TABLE
+insert into t1 values (0);
+
+# Restore mysql.proc
+--copy_file $MYSQLTEST_VARDIR/tmp/proc.frm $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
+--copy_file $MYSQLTEST_VARDIR/tmp/proc.MYD $MYSQLTEST_VARDIR/master-data/mysql/proc.MYD
+--copy_file $MYSQLTEST_VARDIR/tmp/proc.MYI $MYSQLTEST_VARDIR/master-data/mysql/proc.MYI
+--remove_file $MYSQLTEST_VARDIR/tmp/proc.frm
+--remove_file $MYSQLTEST_VARDIR/tmp/proc.MYD
+--remove_file $MYSQLTEST_VARDIR/tmp/proc.MYI
+
+flush table mysql.proc;
+flush privileges;
+
+delete from mysql.proc where name like 'bug14233%';
+
+# Unsupported editing of mysql.proc, circumventing checks in "create ..."
+insert into mysql.proc
+(
+ db, name, type, specific_name, language, sql_data_access, is_deterministic,
+ security_type, param_list, returns, body, definer, created, modified,
+ sql_mode, comment
+)
+values
+(
+ 'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO',
+ 'DEFINER', '', 'int(10)',
+ 'select count(*) from mysql.user',
+ 'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+),
+(
+ 'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO',
+ 'DEFINER', '', 'int(10)',
+ 'begin declare x int; select count(*) into x from mysql.user; end',
+ 'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+),
+(
+ 'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO',
+ 'DEFINER', '', '',
+ 'alksj wpsj sa ^#!@ ',
+ 'root@localhost', NOW() , '0000-00-00 00:00:00', '', ''
+);
+
+--error ER_SP_PROC_TABLE_CORRUPT
+select bug14233_1();
+--error ER_SP_PROC_TABLE_CORRUPT
+create view v1 as select bug14233_1();
+
+--error ER_SP_PROC_TABLE_CORRUPT
+select bug14233_2();
+--error ER_SP_PROC_TABLE_CORRUPT
+create view v1 as select bug14233_2();
+
+--error ER_SP_PROC_TABLE_CORRUPT
+call bug14233_3();
+drop trigger t1_ai;
+create trigger t1_ai after insert on t1 for each row call bug14233_3();
+--error ER_SP_PROC_TABLE_CORRUPT
+insert into t1 values (0);
+
+# Clean-up
+drop trigger t1_ai;
+drop table t1;
+
+#
+# BUG#16303: erroneus stored procedures and functions should be droppable
+#
+drop function bug14233_1;
+drop function bug14233_2;
+drop procedure bug14233_3;
+# Assert: These should show nothing.
+show procedure status;
+show function status;
diff --git a/mysql-test/t/sp-dynamic.test b/mysql-test/t/sp-dynamic.test
new file mode 100644
index 00000000000..e6f4aae96ac
--- /dev/null
+++ b/mysql-test/t/sp-dynamic.test
@@ -0,0 +1,360 @@
+delimiter |;
+
+--disable_warnings
+drop procedure if exists p1|
+drop procedure if exists p2|
+--enable_warnings
+
+######################################################################
+# Test Dynamic SQL in stored procedures. #############################
+######################################################################
+#
+# A. Basics
+#
+create procedure p1()
+begin
+ prepare stmt from "select 1";
+ execute stmt;
+ execute stmt;
+ execute stmt;
+ deallocate prepare stmt;
+end|
+call p1()|
+call p1()|
+call p1()|
+drop procedure p1|
+#
+# B. Recursion. Recusion is disabled in SP, and recursive use of PS is not
+# possible as well.
+#
+create procedure p1()
+begin
+ execute stmt;
+end|
+prepare stmt from "call p1()"|
+# Allow SP resursion to be show that it has not influence here
+set @SAVE_SP_RECURSION_LEVELS=@@max_sp_recursion_depth|
+set @@max_sp_recursion_depth=100|
+--error ER_PS_NO_RECURSION
+execute stmt|
+--error ER_PS_NO_RECURSION
+execute stmt|
+--error ER_PS_NO_RECURSION
+execute stmt|
+--error ER_PS_NO_RECURSION
+call p1()|
+--error ER_PS_NO_RECURSION
+call p1()|
+--error ER_PS_NO_RECURSION
+call p1()|
+set @@max_sp_recursion_depth=@SAVE_SP_RECURSION_LEVELS|
+--error ER_SP_RECURSION_LIMIT
+call p1()|
+--error ER_SP_RECURSION_LIMIT
+call p1()|
+--error ER_SP_RECURSION_LIMIT
+call p1()|
+
+drop procedure p1|
+#
+# C. Create/drop a stored procedure in Dynamic SQL.
+# One cannot create stored procedure from a stored procedure because of
+# the way MySQL SP cache works: it's important that this limitation is not
+# possible to circumvent by means of Dynamic SQL.
+#
+create procedure p1()
+begin
+ prepare stmt from "create procedure p2() begin select 1; end";
+ execute stmt;
+ deallocate prepare stmt;
+end|
+--error ER_UNSUPPORTED_PS
+call p1()|
+--error ER_UNSUPPORTED_PS
+call p1()|
+drop procedure p1|
+create procedure p1()
+begin
+ prepare stmt from "drop procedure p2";
+ execute stmt;
+ deallocate prepare stmt;
+end|
+--error ER_UNSUPPORTED_PS
+call p1()|
+--error ER_UNSUPPORTED_PS
+call p1()|
+drop procedure p1|
+#
+# D. Create/Drop/Alter a table (a DDL that issues a commit) in Dynamic SQL.
+# (should work ok).
+#
+create procedure p1()
+begin
+ prepare stmt_drop from "drop table if exists t1";
+ execute stmt_drop;
+ prepare stmt from "create table t1 (a int)";
+ execute stmt;
+ insert into t1 (a) values (1);
+ select * from t1;
+ prepare stmt_alter from "alter table t1 add (b int)";
+ execute stmt_alter;
+ insert into t1 (a,b) values (2,1);
+ deallocate prepare stmt_alter;
+ deallocate prepare stmt;
+ deallocate prepare stmt_drop;
+end|
+call p1()|
+call p1()|
+drop procedure p1|
+#
+# A more real example (a case similar to submitted by 24/7).
+#
+create procedure p1()
+begin
+ set @tab_name=concat("tab_", replace(curdate(), '-', '_'));
+ set @drop_sql=concat("drop table if exists ", @tab_name);
+ set @create_sql=concat("create table ", @tab_name, " (a int)");
+ set @insert_sql=concat("insert into ", @tab_name, " values (1), (2), (3)");
+ set @select_sql=concat("select * from ", @tab_name);
+ select @tab_name;
+ select @drop_sql;
+ select @create_sql;
+ select @insert_sql;
+ select @select_sql;
+ prepare stmt_drop from @drop_sql;
+ execute stmt_drop;
+ prepare stmt from @create_sql;
+ execute stmt;
+ prepare stmt from @insert_sql;
+ execute stmt;
+ prepare stmt from @select_sql;
+ execute stmt;
+ execute stmt_drop;
+ deallocate prepare stmt;
+ deallocate prepare stmt_drop;
+end|
+--disable_result_log
+call p1()|
+call p1()|
+--enable_result_log
+drop procedure p1|
+#
+# E. Calling a stored procedure with Dynamic SQL
+# from a stored function (currently disabled).
+#
+create procedure p1()
+begin
+ prepare stmt_drop from "drop table if exists t1";
+ execute stmt_drop;
+ prepare stmt from "create table t1 (a int)";
+ execute stmt;
+ deallocate prepare stmt;
+ deallocate prepare stmt_drop;
+end|
+--disable_warnings
+drop function if exists f1|
+--enable_warnings
+create function f1(a int) returns int
+begin
+ call p1();
+ return 1;
+end|
+
+# Every stored procedure that contains Dynamic SQL is marked as
+# such. Stored procedures that contain Dynamic SQL are not
+# allowed in a stored function or trigger, and here we get the
+# corresponding error message.
+
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+select f1(0)|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+select f1(f1(0))|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+select f1(f1(f1(0)))|
+drop function f1|
+drop procedure p1|
+#
+# F. Rollback and cleanup lists management in Dynamic SQL.
+#
+create procedure p1()
+begin
+ drop table if exists t1;
+ create table t1 (id integer not null primary key,
+ name varchar(20) not null);
+ insert into t1 (id, name) values (1, 'aaa'), (2, 'bbb'), (3, 'ccc');
+ prepare stmt from "select name from t1";
+ execute stmt;
+ select name from t1;
+ execute stmt;
+ prepare stmt from
+ "select name from t1 where name=(select name from t1 where id=2)";
+ execute stmt;
+ select name from t1 where name=(select name from t1 where id=2);
+ execute stmt;
+end|
+call p1()|
+call p1()|
+drop procedure p1|
+#
+# H. Executing a statement prepared externally in SP.
+#
+prepare stmt from "select * from t1"|
+create procedure p1()
+begin
+ execute stmt;
+ deallocate prepare stmt;
+end|
+call p1()|
+--error ER_UNKNOWN_STMT_HANDLER
+call p1()|
+drop procedure p1|
+#
+# I. Use of an SP variable in Dynamic SQL is not possible and
+# this limitation is necessary for correct binary logging: prepared
+# statements do not substitute SP variables with their values for binlog, so
+# SP variables must be not accessible in Dynamic SQL.
+#
+create procedure p1()
+begin
+ declare a char(10);
+ set a="sp-variable";
+ set @a="mysql-variable";
+ prepare stmt from "select 'dynamic sql:', @a, a";
+ execute stmt;
+end|
+--error ER_BAD_FIELD_ERROR
+call p1()|
+--error ER_BAD_FIELD_ERROR
+call p1()|
+drop procedure p1|
+#
+# J. Use of placeholders in Dynamic SQL.
+#
+create procedure p1()
+begin
+ prepare stmt from 'select ? as a';
+ execute stmt using @a;
+end|
+set @a=1|
+call p1()|
+call p1()|
+drop procedure p1|
+#
+# K. Use of continue handlers with Dynamic SQL.
+#
+drop table if exists t1|
+drop table if exists t2|
+create table t1 (id integer primary key auto_increment,
+ stmt_text char(35), status varchar(20))|
+insert into t1 (stmt_text) values
+ ("select 1"), ("flush tables"), ("handler t1 open as ha"),
+ ("analyze table t1"), ("check table t1"), ("checksum table t1"),
+ ("check table t1"), ("optimize table t1"), ("repair table t1"),
+ ("describe extended select * from t1"),
+ ("help help"), ("show databases"), ("show tables"),
+ ("show table status"), ("show open tables"), ("show storage engines"),
+ ("insert into t1 (id) values (1)"), ("update t1 set status=''"),
+ ("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
+ ("create view v1 as select 1"), ("alter view v1 as select 2"),
+ ("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
+ ("drop table t2")|
+create procedure p1()
+begin
+ declare v_stmt_text varchar(255);
+ declare v_id integer;
+ declare done int default 0;
+ declare c cursor for select id, stmt_text from t1;
+ declare continue handler for 1295 -- ER_UNSUPPORTED_PS
+ set @status='not supported';
+ declare continue handler for 1064 -- ER_SYNTAX_ERROR
+ set @status='syntax error';
+ declare continue handler for sqlstate '02000' set done = 1;
+
+ prepare update_stmt from "update t1 set status=? where id=?";
+ open c;
+ repeat
+ if not done then
+ fetch c into v_id, v_stmt_text;
+ set @id=v_id, @stmt_text=v_stmt_text;
+ set @status="supported";
+ prepare stmt from @stmt_text;
+ execute update_stmt using @status, @id;
+ end if;
+ until done end repeat;
+ deallocate prepare update_stmt;
+end|
+call p1()|
+select * from t1|
+drop procedure p1|
+drop table t1|
+#
+# Bug#7115 "Prepared Statements: packet error if execution within stored
+# procedure".
+#
+prepare stmt from 'select 1'|
+create procedure p1() execute stmt|
+call p1()|
+call p1()|
+drop procedure p1|
+#
+# Bug#10975 "Prepared statements: crash if function deallocates"
+# Check that a prepared statement that is currently in use
+# can't be deallocated.
+#
+# a) Prepared statements and stored procedure cache:
+#
+# TODO: add when the corresponding bug (Bug #12093 "SP not found on second
+# PS execution if another thread drops other SP in between") is fixed.
+#
+# b) attempt to deallocate a prepared statement that is being executed
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function f1() returns int
+begin
+ deallocate prepare stmt;
+ return 1;
+end|
+
+# b)-2 a crash (#1) spotted by Sergey Petrunia during code review
+create procedure p1()
+begin
+ prepare stmt from 'select 1 A';
+ execute stmt;
+end|
+prepare stmt from 'call p1()'|
+--error ER_PS_NO_RECURSION
+execute stmt|
+--error ER_PS_NO_RECURSION
+execute stmt|
+drop procedure p1|
+
+#
+# Bug#10605 "Stored procedure with multiple SQL prepared statements
+# disconnects client"
+#
+--disable_warnings
+drop table if exists t1, t2|
+--enable_warnings
+create procedure p1 (a int) language sql deterministic
+begin
+ declare rsql varchar(100);
+ drop table if exists t1, t2;
+ set @rsql= "create table t1 (a int)";
+ select @rsql;
+ prepare pst from @rsql;
+ execute pst;
+ set @rsql= null;
+ set @rsql= "create table t2 (a int)";
+ select @rsql;
+ prepare pst from @rsql;
+ execute pst;
+ drop table if exists t1, t2;
+end|
+set @a:=0|
+call p1(@a)|
+select @a|
+call p1(@a)|
+select @a|
+drop procedure if exists p1|
+
+# End of the test
+delimiter ;|
diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test
new file mode 100644
index 00000000000..8133a2271a1
--- /dev/null
+++ b/mysql-test/t/sp-error.test
@@ -0,0 +1,2121 @@
+#
+# Stored PROCEDURE error tests
+#
+
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+
+# Make sure we don't have any procedures left.
+delete from mysql.proc;
+
+delimiter |;
+
+# This should give three syntax errors (sometimes crashed; bug #643)
+# (Unfortunately, this is not a 100% test, on some platforms this
+# passed despite the bug.)
+--error 1064
+create procedure syntaxerror(t int)|
+--error 1064
+create procedure syntaxerror(t int)|
+--error 1064
+create procedure syntaxerror(t int)|
+
+# Check that we get the right error, i.e. UDF declaration parses correctly,
+# but foo.so doesn't exist.
+# This generates an error message containing a misleading errno which
+# might vary between systems (it usually doesn't have anything to do with
+# the actual failing dlopen()).
+#--error 1126
+#create function foo returns real soname "foo.so"|
+
+
+--disable_warnings
+drop table if exists t3|
+--enable_warnings
+create table t3 ( x int )|
+insert into t3 values (2), (3)|
+
+create procedure bad_into(out param int)
+ select x from t3 into param|
+
+--error 1172
+call bad_into(@x)|
+
+drop procedure bad_into|
+drop table t3|
+
+
+create procedure proc1()
+ set @x = 42|
+
+create function func1() returns int
+ return 42|
+
+# Can't create recursively
+--error 1303
+create procedure foo()
+ create procedure bar() set @x=3|
+--error 1303
+create procedure foo()
+ create function bar() returns double return 2.3|
+
+# Already exists
+--error 1304
+create procedure proc1()
+ set @x = 42|
+--error 1304
+create function func1() returns int
+ return 42|
+
+drop procedure proc1|
+drop function func1|
+
+# Does not exist
+--error 1305
+alter procedure foo|
+--error 1305
+alter function foo|
+--error 1305
+drop procedure foo|
+--error 1305
+drop function foo|
+--error 1305
+call foo()|
+drop procedure if exists foo|
+--error 1305
+show create procedure foo|
+--error 1305
+show create function foo|
+
+# LEAVE/ITERATE with no match
+--error 1308
+create procedure foo()
+foo: loop
+ leave bar;
+end loop|
+--error 1308
+create procedure foo()
+foo: loop
+ iterate bar;
+end loop|
+--error 1308
+create procedure foo()
+foo: begin
+ iterate foo;
+end|
+
+# Redefining label
+--error 1309
+create procedure foo()
+foo: loop
+ foo: loop
+ set @x=2;
+ end loop foo;
+end loop foo|
+
+# End label mismatch
+--error 1310
+create procedure foo()
+foo: loop
+ set @x=2;
+end loop bar|
+
+# RETURN in FUNCTION only
+--error 1313
+create procedure foo()
+ return 42|
+
+# Wrong number of arguments
+create procedure p(x int)
+ set @x = x|
+create function f(x int) returns int
+ return x+42|
+
+--error 1318
+call p()|
+--error 1318
+call p(1, 2)|
+--error 1318
+select f()|
+--error 1318
+select f(1, 2)|
+
+drop procedure p|
+drop function f|
+
+--error 1319
+create procedure p(val int, out res int)
+begin
+ declare x int default 0;
+ declare continue handler for foo set x = 1;
+
+ insert into test.t1 values (val);
+ if (x) then
+ set res = 0;
+ else
+ set res = 1;
+ end if;
+end|
+
+--error 1319
+create procedure p(val int, out res int)
+begin
+ declare x int default 0;
+ declare foo condition for 1146;
+ declare continue handler for bar set x = 1;
+
+ insert into test.t1 values (val);
+ if (x) then
+ set res = 0;
+ else
+ set res = 1;
+ end if;
+end|
+
+--error 1320
+create function f(val int) returns int
+begin
+ declare x int;
+
+ set x = val+3;
+end|
+
+create function f(val int) returns int
+begin
+ declare x int;
+
+ set x = val+3;
+ if x < 4 then
+ return x;
+ end if;
+end|
+
+--error 1321
+select f(10)|
+
+drop function f|
+
+--error 1322
+create procedure p()
+begin
+ declare c cursor for insert into test.t1 values ("foo", 42);
+
+ open c;
+ close c;
+end|
+
+--error 1323
+create procedure p()
+begin
+ declare x int;
+ declare c cursor for select * into x from test.t limit 1;
+
+ open c;
+ close c;
+end|
+
+--error 1324
+create procedure p()
+begin
+ declare c cursor for select * from test.t;
+
+ open cc;
+ close c;
+end|
+
+--disable_warnings
+drop table if exists t1|
+--enable_warnings
+create table t1 (val int)|
+
+create procedure p()
+begin
+ declare c cursor for select * from test.t1;
+
+ open c;
+ open c;
+ close c;
+end|
+--error 1325
+call p()|
+drop procedure p|
+
+create procedure p()
+begin
+ declare c cursor for select * from test.t1;
+
+ open c;
+ close c;
+ close c;
+end|
+--error 1326
+call p()|
+drop procedure p|
+
+--error 1305
+alter procedure bar3 sql security invoker|
+
+drop table t1|
+
+--disable_warnings
+drop table if exists t1|
+--enable_warnings
+create table t1 (val int, x float)|
+insert into t1 values (42, 3.1), (19, 1.2)|
+
+--error 1327
+create procedure p()
+begin
+ declare x int;
+ declare c cursor for select * from t1;
+
+ open c;
+ fetch c into x, y;
+ close c;
+end|
+
+create procedure p()
+begin
+ declare x int;
+ declare c cursor for select * from t1;
+
+ open c;
+ fetch c into x;
+ close c;
+end|
+--error 1328
+call p()|
+drop procedure p|
+
+create procedure p()
+begin
+ declare x int;
+ declare y float;
+ declare z int;
+ declare c cursor for select * from t1;
+
+ open c;
+ fetch c into x, y, z;
+ close c;
+end|
+--error 1328
+call p()|
+drop procedure p|
+
+--error 1330
+create procedure p(in x int, x char(10))
+begin
+end|
+--error 1330
+create function p(x int, x char(10))
+begin
+end|
+
+--error 1331
+create procedure p()
+begin
+ declare x float;
+ declare x int;
+end|
+
+--error 1332
+create procedure p()
+begin
+ declare c condition for 1064;
+ declare c condition for 1065;
+end|
+
+--error 1333
+create procedure p()
+begin
+ declare c cursor for select * from t1;
+ declare c cursor for select field from t1;
+end|
+
+# USE is not allowed
+--error ER_SP_BADSTATEMENT
+create procedure u()
+ use sptmp|
+
+# Enforced standard order of declarations
+--error 1337
+create procedure p()
+begin
+ declare c cursor for select * from t1;
+ declare x int;
+end|
+--error 1337
+create procedure p()
+begin
+ declare x int;
+ declare continue handler for sqlstate '42S99' set x = 1;
+ declare foo condition for sqlstate '42S99';
+end|
+
+--error 1338
+create procedure p()
+begin
+ declare x int;
+ declare continue handler for sqlstate '42S99' set x = 1;
+ declare c cursor for select * from t1;
+end|
+
+# Check in and inout arguments.
+--disable_warnings
+drop procedure if exists p|
+--enable_warnings
+create procedure p(in x int, inout y int, out z int)
+begin
+ set y = x+y;
+ set z = x+y;
+end|
+
+set @tmp_x = 42|
+set @tmp_y = 3|
+set @tmp_z = 0|
+# For reference: this is ok
+call p(@tmp_x, @tmp_y, @tmp_z)|
+select @tmp_x, @tmp_y, @tmp_z|
+
+--error ER_SP_NOT_VAR_ARG
+call p(42, 43, @tmp_z)|
+--error ER_SP_NOT_VAR_ARG
+call p(42, @tmp_y, 43)|
+
+drop procedure p|
+
+
+#
+# Let us test that we can access mysql.proc table for routines
+# definitions lookup without locking it explicitly.
+#
+create procedure p() begin end|
+lock table t1 read|
+# This should succeed
+call p()|
+unlock tables|
+drop procedure p|
+# Let us check restrictions which this ability puts on mysql.proc locking.
+--error ER_WRONG_LOCK_OF_SYSTEM_TABLE
+lock tables t1 read, mysql.proc write|
+--error ER_WRONG_LOCK_OF_SYSTEM_TABLE
+lock tables mysql.proc write, mysql.user write|
+# Locking for read should be OK
+lock tables t1 read, mysql.proc read|
+unlock tables|
+# You also should be able lock only mysql.proc for write
+lock tables mysql.proc write|
+unlock tables|
+
+
+#
+# Check that in functions we don't allow to update tables which
+# are used by statements which invoke these functions.
+#
+--disable_warnings
+drop function if exists f1|
+--enable_warnings
+create function f1(i int) returns int
+begin
+ insert into t1 (val) values (i);
+ return 0;
+end|
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+select val, f1(val) from t1|
+# Table alias should not matter
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+select val, f1(val) from t1 as tab|
+select * from t1|
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+update t1 set val= f1(val)|
+select * from t1|
+# But this should be OK
+select f1(17)|
+select * from t1|
+# Cleanup
+delete from t1 where val= 17|
+drop function f1|
+
+
+#
+# BUG#1965
+#
+create procedure bug1965()
+begin
+ declare c cursor for select val from t1 order by valname;
+ open c;
+ close c;
+end|
+
+--error 1054
+call bug1965()|
+drop procedure bug1965|
+
+#
+# BUG#1966
+#
+--error 1327
+select 1 into a|
+
+#
+# BUG#1653
+#
+--disable_warnings
+drop table if exists t3|
+--enable_warnings
+create table t3 (column_1_0 int)|
+
+create procedure bug1653()
+ update t3 set column_1 = 0|
+
+--error 1054
+call bug1653()|
+drop table t3|
+create table t3 (column_1 int)|
+call bug1653()|
+
+drop procedure bug1653|
+drop table t3|
+
+#
+# BUG#2259
+#
+# Note: When this bug existed, it did not necessarily cause a crash
+# in all builds, but valgrind did give warnings.
+create procedure bug2259()
+begin
+ declare v1 int;
+ declare c1 cursor for select s1 from t1;
+
+ fetch c1 into v1;
+end|
+
+--error 1326
+call bug2259()|
+drop procedure bug2259|
+
+#
+# BUG#2272
+#
+create procedure bug2272()
+begin
+ declare v int;
+
+ update t1 set v = 42;
+end|
+
+insert into t1 values (666, 51.3)|
+--error 1054
+call bug2272()|
+delete from t1|
+drop procedure bug2272|
+
+#
+# BUG#2329
+#
+create procedure bug2329_1()
+begin
+ declare v int;
+
+ insert into t1 (v) values (5);
+end|
+
+create procedure bug2329_2()
+begin
+ declare v int;
+
+ replace t1 set v = 5;
+end|
+
+--error 1054
+call bug2329_1()|
+--error 1054
+call bug2329_2()|
+drop procedure bug2329_1|
+drop procedure bug2329_2|
+
+#
+# BUG#3287
+#
+create function bug3287() returns int
+begin
+ declare v int default null;
+
+ case
+ when v is not null then return 1;
+ end case;
+ return 2;
+end|
+--error 1339
+select bug3287()|
+drop function bug3287|
+
+create procedure bug3287(x int)
+case x
+when 0 then
+ insert into test.t1 values (x, 0.1);
+when 1 then
+ insert into test.t1 values (x, 1.1);
+end case|
+--error 1339
+call bug3287(2)|
+drop procedure bug3287|
+
+#
+# BUG#3297
+#
+--disable_warnings
+drop table if exists t3|
+--enable_warnings
+create table t3 (s1 int, primary key (s1))|
+insert into t3 values (5),(6)|
+
+create procedure bug3279(out y int)
+begin
+ declare x int default 0;
+ begin
+ declare exit handler for sqlexception set x = x+1;
+ insert into t3 values (5);
+ end;
+ if x < 2 then
+ set x = x+1;
+ insert into t3 values (6);
+ end if;
+ set y = x;
+end|
+
+set @x = 0|
+--error 1062
+call bug3279(@x)|
+select @x|
+drop procedure bug3279|
+drop table t3|
+
+#
+# BUG#3339
+#
+--error 1049
+create procedure nodb.bug3339() begin end|
+
+#
+# BUG#2653
+#
+create procedure bug2653_1(a int, out b int)
+ set b = aa|
+
+create procedure bug2653_2(a int, out b int)
+begin
+ if aa < 0 then
+ set b = - a;
+ else
+ set b = a;
+ end if;
+end|
+
+--error 1054
+call bug2653_1(1, @b)|
+--error 1054
+call bug2653_2(2, @b)|
+
+drop procedure bug2653_1|
+drop procedure bug2653_2|
+
+#
+# BUG#4344
+#
+--error 1357
+create procedure bug4344() drop procedure bug4344|
+--error 1357
+create procedure bug4344() drop function bug4344|
+
+#
+# BUG#3294: Stored procedure crash if table dropped before use
+# (Actually, when an error occurs within an error handler.)
+--disable_warnings
+drop procedure if exists bug3294|
+--enable_warnings
+create procedure bug3294()
+begin
+ declare continue handler for sqlexception drop table t5;
+ drop table t5;
+ drop table t5;
+end|
+
+create table t5 (x int)|
+--error 1051
+call bug3294()|
+drop procedure bug3294|
+
+#
+# BUG#876: Stored Procedures: Invalid SQLSTATE is allowed in
+# a DECLARE ? HANDLER FOR stmt.
+#
+--disable_warnings
+drop procedure if exists bug8776_1|
+drop procedure if exists bug8776_2|
+drop procedure if exists bug8776_3|
+drop procedure if exists bug8776_4|
+--enable_warnings
+--error ER_SP_BAD_SQLSTATE
+create procedure bug8776_1()
+begin
+ declare continue handler for sqlstate '42S0200test' begin end;
+ begin end;
+end|
+
+--error ER_SP_BAD_SQLSTATE
+create procedure bug8776_2()
+begin
+ declare continue handler for sqlstate '4200' begin end;
+ begin end;
+end|
+
+--error ER_SP_BAD_SQLSTATE
+create procedure bug8776_3()
+begin
+ declare continue handler for sqlstate '420000' begin end;
+ begin end;
+end|
+
+--error ER_SP_BAD_SQLSTATE
+create procedure bug8776_4()
+begin
+ declare continue handler for sqlstate '42x00' begin end;
+ begin end;
+end|
+
+
+#
+# BUG#6600: Stored procedure crash after repeated calls with check table
+#
+--error ER_SP_BADSTATEMENT
+create procedure bug6600()
+ check table t1|
+
+# Check these two as well, while we're at it. (Although it isn't really
+# related to the bug report, but to the fix.)
+--error ER_SP_BADSTATEMENT
+create procedure bug6600()
+ lock table t1 read|
+--error ER_SP_BADSTATEMENT
+create procedure bug6600()
+ unlock table t1|
+
+#
+# BUG#9566: explicit LOCK TABLE and store procedures result in illegal state
+#
+# We should not think that mysql.proc table does not exist if we are unable
+# to open it under LOCK TABLE or in prelocked mode.
+#
+--disable_warnings
+drop procedure if exists bug9566|
+--enable_warnings
+create procedure bug9566()
+begin
+ select * from t1;
+end|
+lock table t1 read|
+# This should fail since we forgot to lock mysql.proc for writing
+# explicitly, and we can't open mysql.proc for _writing_ if there
+# are locked tables.
+--error 1100
+alter procedure bug9566 comment 'Some comment'|
+unlock tables|
+# This should succeed
+drop procedure bug9566|
+
+
+#
+# BUG#7299: Stored procedures: exception handler catches not-found conditions
+#
+--disable_warnings
+drop procedure if exists bug7299|
+--enable_warnings
+create procedure bug7299()
+begin
+ declare v int;
+ declare c cursor for select val from t1;
+ declare exit handler for sqlexception select 'Error!';
+
+ open c;
+ fetch c into v;
+end|
+
+delete from t1|
+--error ER_SP_FETCH_NO_DATA
+call bug7299()|
+drop procedure bug7299|
+
+
+#
+# BUG#9073: Able to declare two handlers for same condition in same scope
+#
+--error ER_SP_DUP_HANDLER
+create procedure bug9073()
+begin
+ declare continue handler for sqlexception select 1;
+ declare continue handler for sqlexception select 2;
+end|
+--error ER_SP_DUP_HANDLER
+create procedure bug9073()
+begin
+ declare condname1 condition for 1234;
+ declare continue handler for condname1 select 1;
+ declare exit handler for condname1 select 2;
+end|
+--error ER_SP_DUP_HANDLER
+create procedure bug9073()
+begin
+ declare condname1 condition for sqlstate '42000';
+ declare condname2 condition for sqlstate '42000';
+ declare exit handler for condname1 select 1;
+ declare continue handler for condname2 select 2;
+end|
+--error ER_SP_DUP_HANDLER
+create procedure bug9073()
+begin
+ declare condname1 condition for sqlstate '42000';
+ declare exit handler for condname1 select 1;
+ declare exit handler for sqlstate '42000' select 2;
+end|
+
+# This should still work.
+--disable_warnings
+drop procedure if exists bug9073|
+--enable_warnings
+create procedure bug9073()
+begin
+ declare condname1 condition for sqlstate '42000';
+ declare continue handler for condname1 select 1;
+ begin
+ declare exit handler for sqlstate '42000' select 2;
+ begin
+ declare continue handler for sqlstate '42000' select 3;
+ end;
+ end;
+end|
+drop procedure bug9073|
+
+
+#
+# BUG#7047: Stored procedure crash if alter procedure
+#
+--error ER_SP_NO_DROP_SP
+create procedure bug7047()
+ alter procedure bug7047|
+--error ER_SP_NO_DROP_SP
+create function bug7047() returns int
+begin
+ alter function bug7047;
+ return 0;
+end|
+
+
+#
+# BUG#8408: Stored procedure crash if function contains SHOW
+# BUG#9058: Stored Procedures: Crash if function included SELECT
+#
+
+# Some things are caught when parsing
+--error ER_SP_NO_RETSET
+create function bug8408() returns int
+begin
+ select * from t1;
+ return 0;
+end|
+--error ER_SP_NO_RETSET
+create function bug8408() returns int
+begin
+ show warnings;
+ return 0;
+end|
+--error ER_SP_NO_RETSET
+create function bug8408(a int) returns int
+begin
+ declare b int;
+ select b;
+ return b;
+end|
+
+--disable_warnings
+drop function if exists bug8408_f|
+drop procedure if exists bug8408_p|
+--enable_warnings
+
+# Some things must be caught at invokation time
+create function bug8408_f() returns int
+begin
+ call bug8408_p();
+ return 0;
+end|
+create procedure bug8408_p()
+ select * from t1|
+
+call bug8408_p()|
+--error ER_SP_NO_RETSET
+select bug8408_f()|
+
+drop procedure bug8408_p|
+drop function bug8408_f|
+
+# But this is ok
+create function bug8408() returns int
+begin
+ declare n int default 0;
+ select count(*) into n from t1;
+ return n;
+end|
+
+insert into t1 value (2, 2.7), (3, 3.14), (7, 7.0)|
+select *,bug8408() from t1|
+
+drop function bug8408|
+delete from t1|
+
+
+#
+# BUG#10537: Server crashes while loading data file into table through
+# procedure.
+# Disable load until it's PS and SP safe
+--disable_warnings
+drop procedure if exists bug10537|
+--enable_warnings
+--error ER_SP_BADSTATEMENT
+create procedure bug10537()
+ load data local infile '/tmp/somefile' into table t1|
+
+
+#
+# BUG#8409: Stored procedure crash if function contains FLUSH
+#
+--disable_warnings
+drop function if exists bug8409|
+--enable_warnings
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409()
+ returns int
+begin
+ flush tables;
+ return 5;
+end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin reset query cache;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin reset master;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin reset slave;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush hosts;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush privileges;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush tables with read lock;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush tables;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush logs;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush status;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush slave;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush master;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush des_key_file;
+return 1; end|
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create function bug8409() returns int begin flush user_resources;
+return 1; end|
+
+
+#
+# BUG#9529: Stored Procedures: No Warning on truncation of procedure name
+# during creation.
+# BUG#17015: Routine name truncation not an error
+# When we started using utf8 for mysql.proc, this limit appeared
+# to be higher, but in reality the names were truncated.
+--error ER_TOO_LONG_IDENT
+create procedure bug9529_901234567890123456789012345678901234567890123456789012345()
+begin
+end|
+
+--disable_warnings
+drop procedure if exists bug17015_0123456789012345678901234567890123456789012345678901234|
+--enable_warnings
+# Check the upper limit, just to make sure.
+create procedure bug17015_0123456789012345678901234567890123456789012345678901234()
+begin
+end|
+
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like 'bug17015%'|
+drop procedure bug17015_0123456789012345678901234567890123456789012345678901234|
+
+
+#
+# BUG#10969: Stored procedures: crash if default() function
+#
+--disable_warnings
+drop procedure if exists bug10969|
+--enable_warnings
+--error ER_WRONG_COLUMN_NAME
+create procedure bug10969()
+begin
+ declare s1 int default 0;
+ select default(s1) from t30;
+end|
+
+# This should work
+create procedure bug10969()
+begin
+ declare s1 int default 0;
+ select default(t30.s1) from t30;
+end|
+
+drop procedure bug10969|
+
+
+drop table t1|
+
+delimiter ;|
+
+# BUG#9814: Closing a cursor that is not open
+create table t1(f1 int);
+create table t2(f1 int);
+
+delimiter |;
+CREATE PROCEDURE SP001()
+P1: BEGIN
+ DECLARE ENDTABLE INT DEFAULT 0;
+ DECLARE TEMP_NUM INT;
+ DECLARE TEMP_SUM INT;
+ DECLARE C1 CURSOR FOR SELECT F1 FROM t1;
+ DECLARE C2 CURSOR FOR SELECT F1 FROM t2;
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET ENDTABLE = 1;
+
+ SET ENDTABLE=0;
+ SET TEMP_SUM=0;
+ SET TEMP_NUM=0;
+
+ OPEN C1;
+
+ FETCH C1 INTO TEMP_NUM;
+ WHILE ENDTABLE = 0 DO
+ SET TEMP_SUM=TEMP_NUM+TEMP_SUM;
+ FETCH C1 INTO TEMP_NUM;
+ END WHILE;
+ SELECT TEMP_SUM;
+ CLOSE C1;
+ CLOSE C1;
+ SELECT 'end of proc';
+END P1|
+delimiter ;|
+--error 1326
+call SP001();
+drop procedure SP001;
+drop table t1, t2;
+
+# Bug #11394 "Recursion in SP crash server" and bug #11600 "Stored
+# procedures: crash with function calling itself".
+# We have to disable recursion since in many cases LEX and many
+# Item's can't be used in reentrant way nowdays.
+delimiter |;
+--disable_warnings
+drop function if exists bug11394|
+drop function if exists bug11394_1|
+drop function if exists bug11394_2|
+drop procedure if exists bug11394|
+--enable_warnings
+create function bug11394(i int) returns int
+begin
+ if i <= 0 then
+ return 0;
+ else
+ return (i in (100, 200, bug11394(i-1), 400));
+ end if;
+end|
+# If we allow recursive functions without additional modifications
+# this will crash server since Item for "IN" is not reenterable.
+--error 1424
+select bug11394(2)|
+drop function bug11394|
+create function bug11394_1(i int) returns int
+begin
+ if i <= 0 then
+ return 0;
+ else
+ return (select bug11394_1(i-1));
+ end if;
+end|
+# The following statement will crash because some LEX members responsible
+# for selects cannot be used in reentrant fashion.
+--error 1424
+select bug11394_1(2)|
+drop function bug11394_1|
+# Note that the following should be allowed since it does not contains
+# recursion
+create function bug11394_2(i int) returns int return i|
+select bug11394_2(bug11394_2(10))|
+drop function bug11394_2|
+create procedure bug11394(i int, j int)
+begin
+ if i > 0 then
+ call bug11394(i - 1,(select 1));
+ end if;
+end|
+--error ER_SP_RECURSION_LIMIT
+call bug11394(2, 1)|
+set @@max_sp_recursion_depth=10|
+call bug11394(2, 1)|
+set @@max_sp_recursion_depth=default|
+drop procedure bug11394|
+delimiter ;|
+
+
+#
+# BUG 12490 (Packets out of order if calling HELP CONTENTS from Stored Procedure)
+#
+--error ER_SP_BADSTATEMENT
+CREATE PROCEDURE BUG_12490() HELP CONTENTS;
+--error ER_SP_BADSTATEMENT
+CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
+CREATE TABLE t_bug_12490(a int);
+--error ER_SP_BADSTATEMENT
+CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
+DROP TABLE t_bug_12490;
+
+#
+# Bug#11834 "Re-execution of prepared statement with dropped function
+# crashes server". Also tests handling of prepared stmts which use
+# stored functions but does not require prelocking.
+#
+--disable_warnings
+drop function if exists bug11834_1;
+drop function if exists bug11834_2;
+--enable_warnings
+create function bug11834_1() returns int return 10;
+create function bug11834_2() returns int return bug11834_1();
+prepare stmt from "select bug11834_2()";
+execute stmt;
+# Re-execution of statement should not crash server.
+execute stmt;
+drop function bug11834_1;
+# Attempt to execute statement should return proper error and
+# should not crash server.
+--error ER_SP_DOES_NOT_EXIST
+execute stmt;
+deallocate prepare stmt;
+drop function bug11834_2;
+
+#
+# Bug#12953 "Stored procedures: crash if OPTIMIZE TABLE in function"
+#
+delimiter |;
+--disable_warnings
+DROP FUNCTION IF EXISTS bug12953|
+--enable_warnings
+--error ER_SP_NO_RETSET
+CREATE FUNCTION bug12953() RETURNS INT
+BEGIN
+ OPTIMIZE TABLE t1;
+ RETURN 1;
+END|
+delimiter ;|
+
+#
+# Bug##12995 "Inside function "Table 't4' was not locked with LOCK TABLES"
+#
+delimiter |;
+--disable_warnings
+DROP FUNCTION IF EXISTS bug12995|
+--enable_warnings
+--error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug12995() RETURNS INT
+BEGIN
+ HANDLER t1 OPEN;
+ RETURN 1;
+END|
+--error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug12995() RETURNS INT
+BEGIN
+ HANDLER t1 READ FIRST;
+ RETURN 1;
+END|
+--error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug12995() RETURNS INT
+BEGIN
+ HANDLER t1 CLOSE;
+ RETURN 1;
+END|
+--error 1305
+SELECT bug12995()|
+delimiter ;|
+
+
+#
+# BUG#12712: SET AUTOCOMMIT should fail within SP/functions/triggers
+#
+--disable_warnings
+drop procedure if exists bug12712;
+drop function if exists bug12712;
+--enable_warnings
+# Can...
+create procedure bug12712()
+ set session autocommit = 0;
+
+select @@autocommit;
+set @au = @@autocommit;
+call bug12712();
+select @@autocommit;
+set session autocommit = @au;
+
+delimiter |;
+create function bug12712()
+ returns int
+begin
+ call bug12712();
+ return 0;
+end|
+
+# Can't...
+--error ER_SP_CANT_SET_AUTOCOMMIT
+set @x = bug12712()|
+drop procedure bug12712|
+drop function bug12712|
+--error ER_SP_CANT_SET_AUTOCOMMIT
+create function bug12712()
+ returns int
+begin
+ set session autocommit = 0;
+ return 0;
+end|
+--error ER_SP_CANT_SET_AUTOCOMMIT
+create function bug12712()
+ returns int
+begin
+ set @@autocommit = 0;
+ return 0;
+end|
+--error ER_SP_CANT_SET_AUTOCOMMIT
+create function bug12712()
+ returns int
+begin
+ set local autocommit = 0;
+ return 0;
+end|
+delimiter ;|
+--error ER_SP_CANT_SET_AUTOCOMMIT
+create trigger bug12712
+ before insert on t1 for each row set session autocommit = 0;
+
+#
+# BUG#9367: Stored procedures: client hang after "show warnings"
+#
+--disable_parsing
+--disable_warnings
+drop procedure if exists bug9367;
+--enable_warnings
+create table t1 (s1 int);
+select s1 from t1;
+delimiter |;
+create procedure bug9367()
+begin
+ declare v int;
+ declare c cursor for select s1 from t1;
+ open c;
+ show warnings;
+ fetch c into v;
+ select v;
+end|
+delimiter ;|
+call bug9367();
+drop procedure bug9367;
+drop table t1;
+--enable_parsing
+
+#
+# BUG#13510: Setting password local variable changes current password
+#
+delimiter |;
+--disable_warnings
+drop procedure if exists bug13510_1|
+drop procedure if exists bug13510_2|
+drop procedure if exists bug13510_3|
+drop procedure if exists bug13510_4|
+--enable_warnings
+
+--error ER_SP_BAD_VAR_SHADOW
+create procedure bug13510_1()
+begin
+ declare password varchar(10);
+
+ set password = 'foo1';
+ select password;
+end|
+
+# Check that an error message is sent
+--error ER_PARSE_ERROR
+set names='foo2'|
+
+--error ER_SP_BAD_VAR_SHADOW
+create procedure bug13510_2()
+begin
+ declare names varchar(10);
+
+ set names = 'foo2';
+ select names;
+end|
+
+create procedure bug13510_3()
+begin
+ declare password varchar(10);
+
+ set `password` = 'foo3';
+ select password;
+end|
+
+create procedure bug13510_4()
+begin
+ declare names varchar(10);
+
+ set `names` = 'foo4';
+ select names;
+end|
+
+call bug13510_3()|
+call bug13510_4()|
+
+drop procedure bug13510_3|
+drop procedure bug13510_4|
+
+
+#
+# Test that statements which implicitly commit transaction are prohibited
+# in stored function and triggers. Attempt to create function or trigger
+# containing such statement should produce error (includes test for
+# bug #13627).
+#
+--disable_warnings
+drop function if exists bug_13627_f|
+--enable_warnings
+
+CREATE TABLE t1 (a int)|
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN DROP TRIGGER test1; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN DROP TRIGGER test1; return 1; END |
+
+-- error ER_SP_BADSTATEMENT
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN load table t1 from master; END |
+-- error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug_13627_f() returns int BEGIN load table t1 from master; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create table t2 (a int); END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN create table t2 (a int); return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create index t1_i on t1 (a); END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN create index t1_i on t1 (a); return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter table t1 add column b int; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN alter table t1 add column b int; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN rename table t1 to t2; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN rename table t1 to t2; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN truncate table t1; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN truncate table t1; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop table t1; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop table t1; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop index t1_i on t1; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop index t1_i on t1; return 1; END |
+
+-- error ER_SP_BADSTATEMENT
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN unlock tables; END |
+-- error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug_13627_f() returns int BEGIN unlock tables; return 1; END |
+
+-- error ER_SP_BADSTATEMENT
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN LOCK TABLE t1 READ; END |
+-- error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug_13627_f() returns int BEGIN LOCK TABLE t1 READ; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create database mysqltest; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN create database mysqltest; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop database mysqltest; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop database mysqltest; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create user 'mysqltest_1'; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+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 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 |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN rename user 'mysqltest_2' to 'mysqltest_1'; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN rename user 'mysqltest_2' to '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 create view v1 as select 1; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
+
+-- error ER_SP_BADSTATEMENT
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
+-- error ER_SP_BADSTATEMENT
+CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 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 view v1; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; return 1; END |
+
+-- error ER_SP_NO_RECURSIVE_CREATE
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create trigger tr2 before insert on t1 for each row do select 1; END |
+-- error ER_SP_NO_RECURSIVE_CREATE
+CREATE FUNCTION bug_13627_f() returns int BEGIN create trigger tr2 before insert on t1 for each row do select 1; return 1; END |
+
+-- error ER_SP_NO_DROP_SP
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop function bug_13627_f; END |
+-- error ER_SP_NO_DROP_SP
+CREATE FUNCTION bug_13627_f() returns int BEGIN drop function bug_13627_f; return 1; END |
+
+-- error ER_SP_NO_RECURSIVE_CREATE
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create function f2 () returns int return 1; END |
+-- error ER_SP_NO_RECURSIVE_CREATE
+CREATE FUNCTION bug_13627_f() returns int BEGIN create function f2 () returns int return 1; return 1; END |
+
+CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW
+ BEGIN
+ CREATE TEMPORARY TABLE t2 (a int);
+ DROP TEMPORARY TABLE t2;
+ END |
+CREATE FUNCTION bug_13627_f() returns int
+ BEGIN
+ CREATE TEMPORARY TABLE t2 (a int);
+ DROP TEMPORARY TABLE t2;
+ return 1;
+ END |
+
+drop table t1|
+drop function bug_13627_f|
+
+delimiter ;|
+
+# BUG#12329: "Bogus error msg when executing PS with stored procedure after
+# SP was re-created". See also test for related bug#13399 in trigger.test
+drop function if exists bug12329;
+--enable_warnings
+create table t1 as select 1 a;
+create table t2 as select 1 a;
+create function bug12329() returns int return (select a from t1);
+prepare stmt1 from 'select bug12329()';
+execute stmt1;
+drop function bug12329;
+create function bug12329() returns int return (select a+100 from t2);
+select bug12329();
+# Until we implement proper mechanism for invalidation of PS/SP when table
+# or SP's are changed the following statement will fail with 'Table ... was
+# not locked' error (this mechanism should be based on the new TDC).
+--error ER_NO_SUCH_TABLE
+execute stmt1;
+deallocate prepare stmt1;
+drop function bug12329;
+drop table t1, t2;
+
+#
+# Bug#13514 "server crash when create a stored procedure before choose a
+# database" and
+# Bug#13587 "Server crash when SP is created without database
+# selected"
+#
+create database mysqltest1;
+use mysqltest1;
+drop database mysqltest1;
+--error ER_NO_DB_ERROR
+create function f1() returns int return 1;
+delimiter |;
+--error ER_NO_DB_ERROR
+create procedure p1(out param1 int)
+begin
+ select count(*) into param1 from t3;
+end|
+delimiter ;|
+use test;
+
+
+#
+# BUG#13037: undefined variable in IF cause erroneous error-message
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug13037_p1;
+DROP PROCEDURE IF EXISTS bug13037_p2;
+DROP PROCEDURE IF EXISTS bug13037_p3;
+--enable_warnings
+
+delimiter |;
+
+CREATE PROCEDURE bug13037_p1()
+BEGIN
+ IF bug13037_foo THEN
+ SELECT 1;
+ END IF;
+END|
+
+CREATE PROCEDURE bug13037_p2()
+BEGIN
+ SET @bug13037_foo = bug13037_bar;
+END|
+
+CREATE PROCEDURE bug13037_p3()
+BEGIN
+ SELECT bug13037_foo;
+END|
+
+delimiter ;|
+
+--echo
+
+--error 1054
+CALL bug13037_p1();
+--error 1054
+CALL bug13037_p2();
+--error 1054
+CALL bug13037_p3();
+
+--error 1054
+CALL bug13037_p1();
+--error 1054
+CALL bug13037_p2();
+--error 1054
+CALL bug13037_p3();
+
+DROP PROCEDURE bug13037_p1;
+DROP PROCEDURE bug13037_p2;
+DROP PROCEDURE bug13037_p3;
+
+#
+# Bug#14569 "editing a stored procedure kills mysqld-nt"
+#
+create database mysqltest1;
+create database mysqltest2;
+use mysqltest1;
+drop database mysqltest1;
+create procedure mysqltest2.p1() select version();
+--error ER_NO_DB_ERROR
+create procedure p2() select version();
+use mysqltest2;
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status;
+drop database mysqltest2;
+use test;
+
+#
+# Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server"
+#
+delimiter |;
+--disable_warnings
+DROP FUNCTION IF EXISTS bug13012|
+--enable_warnings
+--error ER_SP_NO_RETSET
+CREATE FUNCTION bug13012() RETURNS INT
+BEGIN
+ REPAIR TABLE t1;
+ RETURN 1;
+END|
+--error ER_SP_NO_RETSET
+CREATE FUNCTION bug13012() RETURNS INT
+BEGIN
+ BACKUP TABLE t1 TO '/tmp';
+ RETURN 1;
+END|
+--error ER_SP_NO_RETSET
+CREATE FUNCTION bug13012() RETURNS INT
+BEGIN
+ RESTORE TABLE t1 FROM '/tmp';
+ RETURN 1;
+END|
+create table t1 (a int)|
+CREATE PROCEDURE bug13012_1() REPAIR TABLE t1|
+CREATE FUNCTION bug13012_2() RETURNS INT
+BEGIN
+ CALL bug13012_1();
+ RETURN 1;
+END|
+--error ER_SP_NO_RETSET
+SELECT bug13012_2()|
+drop table t1|
+drop procedure bug13012_1|
+drop function bug13012_2|
+delimiter ;|
+
+#
+# BUG#11555 "Stored procedures: current SP tables locking make
+# impossible view security". We should not expose names of tables
+# which are implicitly used by view (via stored routines/triggers).
+#
+# Note that SQL standard assumes that you simply won't be able drop table
+# and leave some objects (routines/views/triggers) which were depending on
+# it. Such objects should be dropped in advance (by default) or will be
+# dropped simultaneously with table (DROP TABLE with CASCADE clause).
+# So these tests probably should go away once we will implement standard
+# behavior.
+--disable_warnings
+drop function if exists bug11555_1;
+drop function if exists bug11555_2;
+drop view if exists v1, v2, v3, v4;
+--enable_warnings
+create function bug11555_1() returns int return (select max(i) from t1);
+create function bug11555_2() returns int return bug11555_1();
+# It is OK to report name of implicitly used table which is missing
+# when we create view.
+# For stored functions however, because of exceptions handlers, there is
+# no easy way to find out if a missing table makes the view invalid.
+create view v1 as select bug11555_1();
+drop view v1;
+create view v2 as select bug11555_2();
+drop view v2;
+# But we should hide name of missing implicitly used table when we use view
+create table t1 (i int);
+create view v1 as select bug11555_1();
+create view v2 as select bug11555_2();
+create view v3 as select * from v1;
+drop table t1;
+--error ER_VIEW_INVALID
+select * from v1;
+--error ER_VIEW_INVALID
+select * from v2;
+--error ER_VIEW_INVALID
+select * from v3;
+# Note that creation of view which depends on broken view is yet
+# another form of view usage.
+create view v4 as select * from v1;
+drop view v1, v2, v3, v4;
+# We also should hide details about broken triggers which are
+# invoked for view.
+drop function bug11555_1;
+drop function bug11555_2;
+create table t1 (i int);
+create table t2 (i int);
+create trigger t1_ai after insert on t1 for each row insert into t2 values (new.i);
+create view v1 as select * from t1;
+drop table t2;
+# Limitation, the desired error is ER_VIEW_INVALID
+--error ER_NO_SUCH_TABLE
+insert into v1 values (1);
+drop trigger t1_ai;
+create function bug11555_1() returns int return (select max(i) from t2);
+create trigger t1_ai after insert on t1 for each row set @a:=bug11555_1();
+# Limitation, the desired error is ER_VIEW_INVALID
+--error ER_NO_SUCH_TABLE
+insert into v1 values (2);
+drop function bug11555_1;
+drop table t1;
+drop view v1;
+
+#
+# BUG#15658: Server crashes after creating function as empty string
+#
+--disable_warnings
+drop procedure if exists ` bug15658`;
+--enable_warnings
+
+--error ER_SP_WRONG_NAME
+create procedure ``() select 1;
+--error ER_SP_WRONG_NAME
+create procedure ` `() select 1;
+--error ER_SP_WRONG_NAME
+create procedure `bug15658 `() select 1;
+--error ER_WRONG_DB_NAME
+create procedure ``.bug15658() select 1;
+--error ER_WRONG_DB_NAME
+create procedure `x `.bug15658() select 1;
+
+# This should work
+create procedure ` bug15658`() select 1;
+call ` bug15658`();
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status;
+drop procedure ` bug15658`;
+
+
+#
+# BUG#14270: Stored procedures: crash if load index
+#
+--disable_warnings
+drop function if exists bug14270;
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (s1 int primary key);
+
+delimiter |;
+--error ER_SP_NO_RETSET
+create function bug14270() returns int
+begin
+ load index into cache t1;
+ return 1;
+end|
+
+--error ER_SP_NO_RETSET
+create function bug14270() returns int
+begin
+ cache index t1 key (`primary`) in keycache1;
+ return 1;
+end|
+delimiter ;|
+
+drop table t1;
+
+
+#
+# BUG#15091: Sp Returns Unknown error in order clause....and
+# there is no order by clause
+#
+--disable_warnings
+drop procedure if exists bug15091;
+--enable_warnings
+
+delimiter |;
+create procedure bug15091()
+begin
+ declare selectstr varchar(6000) default ' ';
+ declare conditionstr varchar(5000) default '';
+
+ set selectstr = concat(selectstr,
+ ' and ',
+ c.operatorid,
+ 'in (',conditionstr, ')');
+end|
+delimiter ;|
+
+# The error message used to be:
+# ERROR 1109 (42S02): Unknown table 'c' in order clause
+# but is now rephrased to something less misleading:
+# ERROR 1109 (42S02): Unknown table 'c' in field list
+--error ER_UNKNOWN_TABLE
+call bug15091();
+
+drop procedure bug15091;
+
+
+#
+# BUG#16896: Stored function: unused AGGREGATE-clause in CREATE FUNCTION
+#
+--disable_warnings
+drop function if exists bug16896;
+--enable_warnings
+
+--error ER_PARSE_ERROR
+create aggregate function bug16896() returns int return 1;
+
+
+#
+# BUG#14702: misleading error message when syntax error in CREATE
+# PROCEDURE
+#
+# Misleading error message was given when IF NOT EXISTS was used in
+# CREATE PROCEDURE.
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug14702;
+--enable_warnings
+
+--error ER_PARSE_ERROR
+CREATE IF NOT EXISTS PROCEDURE bug14702()
+BEGIN
+END;
+
+--error ER_PARSE_ERROR
+CREATE PROCEDURE IF NOT EXISTS bug14702()
+BEGIN
+END;
+
+
+#
+# BUG#20953: create proc with a create view that uses local
+# vars/params should fail to create
+#
+# See test case for what syntax is forbidden in a view.
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+
+# We do not have to drop this procedure and view because they won't be
+# created.
+--error ER_VIEW_SELECT_CLAUSE
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO @a;
+--error ER_VIEW_SELECT_CLAUSE
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO DUMPFILE "file";
+--error ER_VIEW_SELECT_CLAUSE
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 INTO OUTFILE "file";
+--error ER_VIEW_SELECT_CLAUSE
+CREATE PROCEDURE bug20953()
+ CREATE VIEW v AS SELECT i FROM t1 PROCEDURE ANALYSE();
+--error ER_VIEW_SELECT_DERIVED
+CREATE PROCEDURE bug20953() CREATE VIEW v AS SELECT 1 FROM (SELECT 1) AS d1;
+--error ER_VIEW_SELECT_VARIABLE
+CREATE PROCEDURE bug20953(i INT) CREATE VIEW v AS SELECT i;
+delimiter |;
+--error ER_VIEW_SELECT_VARIABLE
+CREATE PROCEDURE bug20953()
+BEGIN
+ DECLARE i INT;
+ CREATE VIEW v AS SELECT i;
+END |
+delimiter ;|
+--error ER_VIEW_SELECT_VARIABLE
+PREPARE stmt FROM "CREATE VIEW v AS SELECT ?";
+
+DROP TABLE t1;
+
+
+#
+# BUG#24491 "using alias from source table in insert ... on duplicate key"
+#
+--disable_warnings
+drop tables if exists t1;
+drop procedure if exists bug24491;
+--enable_warnings
+create table t1 (id int primary key auto_increment, value varchar(10));
+insert into t1 (id, value) values (1, 'FIRST'), (2, 'SECOND'), (3, 'THIRD');
+# Let us create routine with INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
+# statement which in its ON DUPLICATE KEY clause erroneously tries to assign
+# value to a column which is mentioned only in SELECT part.
+create procedure bug24491()
+ insert into t1 (id, value) select * from (select 4 as i, 'FOURTH' as v) as y on duplicate key update v = 'DUP';
+# Both first and second calls to it should fail
+--error ER_BAD_FIELD_ERROR
+call bug24491();
+--error ER_BAD_FIELD_ERROR
+call bug24491();
+drop procedure bug24491;
+# And now the same test for more complex case which is more close
+# to the one that was reported originally.
+create procedure bug24491()
+ insert into t1 (id, value) select * from (select 4 as id, 'FOURTH' as value) as y on duplicate key update y.value = 'DUP';
+--error ER_BAD_FIELD_ERROR
+call bug24491();
+--error ER_BAD_FIELD_ERROR
+call bug24491();
+drop procedure bug24491;
+drop tables t1;
+
+#
+# BUG#18914: Calling certain SPs from triggers fail
+#
+# Failing to call a procedure that does implicit commit from a trigger
+# is a correct behaviour, however the error message was misleading.
+#
+# DROP TABLE IF EXISTS is also fixed to give correct error instead of
+# "Table doesn't exist".
+#
+--disable_warnings
+DROP FUNCTION IF EXISTS bug18914_f1;
+DROP FUNCTION IF EXISTS bug18914_f2;
+DROP PROCEDURE IF EXISTS bug18914_p1;
+DROP PROCEDURE IF EXISTS bug18914_p2;
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+
+CREATE PROCEDURE bug18914_p1() CREATE TABLE t2 (i INT);
+CREATE PROCEDURE bug18914_p2() DROP TABLE IF EXISTS no_such_table;
+
+delimiter |;
+CREATE FUNCTION bug18914_f1() RETURNS INT
+BEGIN
+ CALL bug18914_p1();
+ RETURN 1;
+END |
+
+CREATE FUNCTION bug18914_f2() RETURNS INT
+BEGIN
+ CALL bug18914_p2();
+ RETURN 1;
+END |
+delimiter ;|
+
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ CALL bug18914_p1();
+
+--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+INSERT INTO t1 VALUES (1);
+
+--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+SELECT bug18914_f1();
+
+--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+SELECT bug18914_f2();
+
+--error ER_NO_SUCH_TABLE
+SELECT * FROM t2;
+
+DROP FUNCTION bug18914_f1;
+DROP FUNCTION bug18914_f2;
+DROP PROCEDURE bug18914_p1;
+DROP PROCEDURE bug18914_p2;
+DROP TABLE t1;
+
+#
+# Bug#20713 (Functions will not not continue for SQLSTATE VALUE '42S02')
+#
+
+--disable_warnings
+drop table if exists bogus_table_20713;
+drop function if exists func_20713_a;
+drop function if exists func_20713_b;
+--enable_warnings
+
+create table bogus_table_20713( id int(10) not null primary key);
+insert into bogus_table_20713 values (1), (2), (3);
+
+delimiter //;
+
+create function func_20713_a() returns int(11)
+begin
+ declare id int;
+
+ declare continue handler for sqlexception set id=null;
+
+ set @in_func := 1;
+ set id = (select id from bogus_table_20713 where id = 3);
+ set @in_func := 2;
+
+ return id;
+end//
+
+create function func_20713_b() returns int(11)
+begin
+ declare id int;
+
+ declare continue handler for sqlstate value '42S02' set id=null;
+
+ set @in_func := 1;
+ set id = (select id from bogus_table_20713 where id = 3);
+ set @in_func := 2;
+
+ return id;
+end//
+
+delimiter ;//
+
+set @in_func := 0;
+select func_20713_a();
+select @in_func;
+
+set @in_func := 0;
+select func_20713_b();
+select @in_func;
+
+drop table bogus_table_20713;
+
+set @in_func := 0;
+select func_20713_a();
+select @in_func;
+
+set @in_func := 0;
+select func_20713_b();
+select @in_func;
+
+drop function if exists func_20713_a;
+drop function if exists func_20713_b;
+
+#
+# Bug#25345 (Cursors from Functions)
+#
+
+--disable_warnings
+drop table if exists table_25345_a;
+drop table if exists table_25345_b;
+drop procedure if exists proc_25345;
+drop function if exists func_25345;
+drop function if exists func_25345_b;
+--enable_warnings
+
+create table table_25345_a (a int);
+create table table_25345_b (b int);
+
+delimiter ||;
+
+create procedure proc_25345()
+begin
+ declare c1 cursor for select a from table_25345_a;
+ declare c2 cursor for select b from table_25345_b;
+
+ select 1 as result;
+end ||
+
+create function func_25345() returns int(11)
+begin
+ call proc_25345();
+ return 1;
+end ||
+
+create function func_25345_b() returns int(11)
+begin
+ declare c1 cursor for select a from table_25345_a;
+ declare c2 cursor for select b from table_25345_b;
+
+ return 1;
+end ||
+
+delimiter ;||
+
+call proc_25345();
+--error ER_SP_NO_RETSET
+select func_25345();
+select func_25345_b();
+
+drop table table_25345_a;
+
+call proc_25345();
+--error ER_SP_NO_RETSET
+select func_25345();
+select func_25345_b();
+
+drop table table_25345_b;
+drop procedure proc_25345;
+drop function func_25345;
+drop function func_25345_b;
+
+#
+# Bug#26503 (Illegal SQL exception handler code causes the server to crash)
+#
+
+delimiter //;
+
+--error ER_SP_LILABEL_MISMATCH
+create procedure proc_26503_error_1()
+begin
+retry:
+ repeat
+ begin
+ declare continue handler for sqlexception
+ begin
+ iterate retry;
+ end
+
+ select "do something";
+ end
+ until true end repeat retry;
+end//
+
+--error ER_SP_LILABEL_MISMATCH
+create procedure proc_26503_error_2()
+begin
+retry:
+ repeat
+ begin
+ declare continue handler for sqlexception
+ iterate retry;
+
+ select "do something";
+ end
+ until true end repeat retry;
+end//
+
+--error ER_SP_LILABEL_MISMATCH
+create procedure proc_26503_error_3()
+begin
+retry:
+ repeat
+ begin
+ declare continue handler for sqlexception
+ begin
+ leave retry;
+ end
+
+ select "do something";
+ end
+ until true end repeat retry;
+end//
+
+--error ER_SP_LILABEL_MISMATCH
+create procedure proc_26503_error_4()
+begin
+retry:
+ repeat
+ begin
+ declare continue handler for sqlexception
+ leave retry;
+
+ select "do something";
+ end
+ until true end repeat retry;
+end//
+
+delimiter ;//
+
+#
+# Bug#29816 Syntactically wrong query fails with misleading error message
+#
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest;
+--enable_warnings
+CREATE DATABASE mysqltest;
+USE mysqltest;
+DROP DATABASE mysqltest;
+# Both ER_SP_DOES_NOT_EXIST and ER_PARSE_ERROR are valid here,
+# the result is implementation dependent:
+# See Bug#29816 for details
+--error ER_SP_DOES_NOT_EXIST
+SELECT inexistent(), 1 + ,;
+--error ER_SP_DOES_NOT_EXIST
+SELECT inexistent();
+--error ER_PARSE_ERROR
+SELECT .inexistent();
+--error ER_PARSE_ERROR
+SELECT ..inexistent();
+USE test;
+
+#
+# BUG#NNNN: New bug synopsis
+#
+#--disable_warnings
+#drop procedure if exists bugNNNN|
+#--enable_warnings
+#create procedure bugNNNN...
diff --git a/mysql-test/t/sp-prelocking.test b/mysql-test/t/sp-prelocking.test
new file mode 100644
index 00000000000..966c59a5789
--- /dev/null
+++ b/mysql-test/t/sp-prelocking.test
@@ -0,0 +1,390 @@
+#
+# Tests of prelocking-free execution of stored procedures.
+# Currently two properties of prelocking-free SP execution are checked:
+# - It is possible to execute DDL statements in prelocking-free stored
+# procedure
+# - The same procedure can be called in prelocking-free mode and
+# in prelocked mode (from within a function).
+
+--disable_warnings
+drop database if exists mysqltest;
+drop table if exists t1, t2, t3, t4;
+drop procedure if exists sp1;
+drop procedure if exists sp2;
+drop procedure if exists sp3;
+drop procedure if exists sp4;
+drop function if exists f1;
+drop function if exists f2;
+drop function if exists f3;
+--enable_warnings
+
+# BUG#8072
+
+create database mysqltest;
+delimiter //;
+use mysqltest//
+create procedure sp1 ()
+begin
+ drop table if exists t1;
+ select 1 as "my-col";
+end;
+//
+delimiter ;//
+
+select database();
+call sp1();
+select database();
+
+use test;
+select database();
+call mysqltest.sp1();
+select database();
+
+drop procedure mysqltest.sp1;
+drop database mysqltest;
+
+# BUG#8766
+
+delimiter //;
+create procedure sp1()
+begin
+ create table t1 (a int);
+ insert into t1 values (10);
+end//
+
+create procedure sp2()
+begin
+ create table t2(a int);
+ insert into t2 values(1);
+ call sp1();
+end//
+
+create function f1() returns int
+begin
+ return (select max(a) from t1);
+end//
+
+create procedure sp3()
+begin
+ call sp1();
+ select 'func', f1();
+end//
+
+delimiter ;//
+
+call sp1();
+select 't1',a from t1;
+
+drop table t1;
+call sp2();
+select 't1',a from t1;
+select 't2',a from t2;
+drop table t1, t2;
+
+call sp3();
+select 't1',a from t1;
+
+drop table t1;
+
+drop procedure sp1;
+drop procedure sp2;
+drop procedure sp3;
+drop function f1;
+
+delimiter //;
+create procedure sp1()
+begin
+ create temporary table t2(a int);
+ insert into t2 select * from t1;
+end//
+
+create procedure sp2()
+begin
+ create temporary table t1 (a int);
+ insert into t1 values(1);
+ call sp1();
+ select 't1', a from t1;
+ select 't2', a from t2;
+ drop table t1;
+ drop table t2;
+end//
+
+delimiter ;//
+call sp2();
+
+drop procedure sp1;
+drop procedure sp2;
+
+# Miscelaneous tests
+create table t1 (a int);
+insert into t1 values(1),(2);
+create table t2 as select * from t1;
+create table t3 as select * from t1;
+create table t4 as select * from t1;
+delimiter //;
+create procedure sp1(a int)
+begin
+ select a;
+end //
+
+create function f1() returns int
+begin
+ return (select max(a) from t1);
+end //
+
+delimiter ;//
+
+CALL sp1(f1());
+
+#############
+delimiter //;
+create procedure sp2(a int)
+begin
+ select * from t3;
+ select a;
+end //
+
+create procedure sp3()
+begin
+ select * from t1;
+ call sp2(5);
+end //
+
+create procedure sp4()
+begin
+ select * from t2;
+ call sp3();
+end //
+
+delimiter ;//
+call sp4();
+
+drop procedure sp1;
+drop procedure sp2;
+drop procedure sp3;
+drop procedure sp4;
+drop function f1;
+
+# Test that prelocking state restoration works with cursors
+--disable_warnings
+drop view if exists v1;
+--enable_warnings
+delimiter //;
+
+create function f1(ab int) returns int
+begin
+ declare i int;
+ set i= (select max(a) from t1 where a < ab) ;
+ return i;
+end //
+
+create function f2(ab int) returns int
+begin
+ declare i int;
+ set i= (select max(a) from t2 where a < ab) ;
+ return i;
+end //
+
+create view v1 as
+ select t3.a as x, t4.a as y, f2(3) as z
+ from t3, t4 where t3.a = t4.a //
+
+create procedure sp1()
+begin
+ declare a int;
+ set a= (select f1(4) + count(*) A from t1, v1);
+end //
+
+
+create function f3() returns int
+begin
+ call sp1();
+ return 1;
+end //
+
+call sp1() //
+
+select f3() //
+select f3() //
+
+call sp1() //
+
+# ---------------
+drop procedure sp1//
+drop function f3//
+
+create procedure sp1()
+begin
+ declare x int;
+ declare c cursor for select f1(3) + count(*) from v1;
+ open c;
+ fetch c into x;
+end;//
+
+create function f3() returns int
+begin
+ call sp1();
+ return 1;
+end //
+
+call sp1() //
+call sp1() //
+
+select f3() //
+call sp1() //
+
+delimiter ;//
+drop view v1;
+drop table t1,t2,t3,t4;
+drop function f1;
+drop function f2;
+drop function f3;
+drop procedure sp1;
+
+#
+# Bug#15683 "crash, Function on nested VIEWs, Prepared statement"
+# Check that when creating the prelocking list a nested view
+# is not merged until it's used.
+#
+--disable_warnings
+drop table if exists t1;
+drop view if exists v1, v2, v3;
+drop function if exists bug15683;
+--enable_warnings
+create table t1 (f1 bigint, f2 varchar(20), f3 bigint);
+insert into t1 set f1 = 1, f2 = 'schoenenbourg', f3 = 1;
+create view v1 as select 1 from t1 union all select 1;
+create view v2 as select 1 from v1;
+create view v3 as select 1 as f1 from v2;
+
+delimiter |;
+create function bug15683() returns bigint
+begin
+return (select count(*) from v3);
+end|
+delimiter ;|
+
+prepare stmt from "select bug15683()";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+drop table t1;
+drop view v1, v2, v3;
+drop function bug15683;
+
+
+#
+# Bug#19634 "Re-execution of multi-delete which involve trigger/stored
+# function crashes server"
+#
+--disable_warnings
+drop table if exists t1, t2, t3;
+drop function if exists bug19634;
+--enable_warnings
+create table t1 (id int, data int);
+create table t2 (id int);
+create table t3 (data int);
+create function bug19634() returns int return (select count(*) from t3);
+prepare stmt from "delete t1 from t1, t2 where t1.id = t2.id and bug19634()";
+# This should not crash server
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+create trigger t1_bi before delete on t1 for each row insert into t3 values (old.data);
+prepare stmt from "delete t1 from t1, t2 where t1.id = t2.id";
+
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+drop function bug19634;
+drop table t1, t2, t3;
+
+#
+# Bug #27907 Misleading error message when opening/locking tables
+#
+
+--disable_warnings
+drop table if exists bug_27907_logs;
+drop table if exists bug_27907_t1;
+--enable_warnings
+
+create table bug_27907_logs (a int);
+create table bug_27907_t1 (a int);
+
+delimiter |;
+
+create trigger bug_27907_t1_ai after insert on bug_27907_t1
+for each row
+begin
+ insert into bug_27907_logs (a) values (1);
+end|
+
+delimiter ;|
+
+drop table bug_27907_logs;
+
+#
+# was failing before with error ER_NOT_LOCKED
+#
+--error ER_NO_SUCH_TABLE
+insert into bug_27907_t1(a) values (1);
+
+drop table bug_27907_t1;
+
+--echo
+--echo Bug#22427 create table if not exists + stored function results in
+--echo inconsistent behavior
+--echo
+--echo Add a test case, the bug itself was fixed by the patch for
+--echo Bug#20662
+--echo
+--disable_warnings
+drop table if exists t1;
+drop function if exists f_bug22427;
+--enable_warnings
+create table t1 (i int);
+insert into t1 values (1);
+create function f_bug22427() returns int return (select max(i) from t1);
+select f_bug22427();
+# Until this bug was fixed, the following emitted error
+# ERROR 1213: Deadlock found when trying to get lock
+create table if not exists t1 select f_bug22427() as i;
+--error ER_TABLE_EXISTS_ERROR
+create table t1 select f_bug22427() as i;
+drop table t1;
+drop function f_bug22427;
+
+--echo #
+--echo # Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables
+--echo #
+--disable_warnings
+DROP table IF EXISTS t1,t2;
+--enable_warnings
+CREATE TABLE t1 (c1 INT);
+CREATE TABLE t2 (c2 INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (2);
+DELIMITER //;
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+UPDATE t2 SET c2= c2 + 1;
+END//
+DELIMITER ;//
+--echo # Take a table lock on t1.
+--echo # This should pre-lock t2 through the trigger.
+LOCK TABLE t1 WRITE;
+INSERT INTO t1 VALUES (3);
+UNLOCK TABLES;
+LOCK TABLE t1 READ;
+--error ER_TABLE_NOT_LOCKED
+INSERT INTO t2 values(4);
+UNLOCK TABLES;
+SELECT * FROM t1;
+SELECT * FROM t2;
+DROP TRIGGER t1_ai;
+DROP TABLE t1, t2;
+
+--echo End of 5.0 tests
+
diff --git a/mysql-test/t/sp-security.test b/mysql-test/t/sp-security.test
new file mode 100644
index 00000000000..38c72fd4fa6
--- /dev/null
+++ b/mysql-test/t/sp-security.test
@@ -0,0 +1,888 @@
+#
+# Testing SQL SECURITY of stored procedures
+#
+
+# Can't test with embedded server that doesn't support grants
+-- source include/not_embedded.inc
+
+connect (con1root,localhost,root,,);
+
+connection con1root;
+use test;
+
+# Create user user1 with no particular access rights
+grant usage on *.* to user1@localhost;
+flush privileges;
+
+--disable_warnings
+drop table if exists t1;
+drop database if exists db1_secret;
+--enable_warnings
+# Create our secret database
+create database db1_secret;
+
+# Can create a procedure in other db
+create procedure db1_secret.dummy() begin end;
+drop procedure db1_secret.dummy;
+
+use db1_secret;
+
+create table t1 ( u varchar(64), i int );
+insert into t1 values('test', 0);
+
+# A test procedure and function
+create procedure stamp(i int)
+ insert into db1_secret.t1 values (user(), i);
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like 'stamp';
+
+delimiter |;
+create function db() returns varchar(64)
+begin
+ declare v varchar(64);
+
+ select u into v from t1 limit 1;
+
+ return v;
+end|
+delimiter ;|
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show function status like 'db';
+
+# root can, of course
+call stamp(1);
+select * from t1;
+select db();
+
+grant execute on procedure db1_secret.stamp to user1@'%';
+grant execute on function db1_secret.db to user1@'%';
+grant execute on procedure db1_secret.stamp to ''@'%';
+grant execute on function db1_secret.db to ''@'%';
+
+connect (con2user1,localhost,user1,,);
+connect (con3anon,localhost,anon,,);
+
+
+#
+# User1 can
+#
+connection con2user1;
+
+# This should work...
+call db1_secret.stamp(2);
+select db1_secret.db();
+
+# ...but not this
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from db1_secret.t1;
+
+# ...and not this
+--error ER_DBACCESS_DENIED_ERROR
+create procedure db1_secret.dummy() begin end;
+--error ER_SP_DOES_NOT_EXIST
+drop procedure db1_secret.dummy;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure db1_secret.stamp;
+--error ER_PROCACCESS_DENIED_ERROR
+drop function db1_secret.db;
+
+
+#
+# Anonymous can
+#
+connection con3anon;
+
+# This should work...
+call db1_secret.stamp(3);
+select db1_secret.db();
+
+# ...but not this
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from db1_secret.t1;
+
+# ...and not this
+--error ER_DBACCESS_DENIED_ERROR
+create procedure db1_secret.dummy() begin end;
+--error ER_SP_DOES_NOT_EXIST
+drop procedure db1_secret.dummy;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure db1_secret.stamp;
+--error ER_PROCACCESS_DENIED_ERROR
+drop function db1_secret.db;
+
+
+#
+# Check it out
+#
+connection con1root;
+select * from t1;
+
+#
+# Change to invoker's rights
+#
+alter procedure stamp sql security invoker;
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like 'stamp';
+
+alter function db sql security invoker;
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show function status like 'db';
+
+# root still can
+call stamp(4);
+select * from t1;
+select db();
+
+#
+# User1 cannot
+#
+connection con2user1;
+
+# This should not work
+--error ER_TABLEACCESS_DENIED_ERROR
+call db1_secret.stamp(5);
+--error ER_TABLEACCESS_DENIED_ERROR
+select db1_secret.db();
+
+#
+# Anonymous cannot
+#
+connection con3anon;
+
+# This should not work
+--error ER_TABLEACCESS_DENIED_ERROR
+call db1_secret.stamp(6);
+--error ER_TABLEACCESS_DENIED_ERROR
+select db1_secret.db();
+
+#
+# BUG#2777
+#
+
+connection con1root;
+--disable_warnings
+drop database if exists db2;
+--enable_warnings
+create database db2;
+
+use db2;
+
+create table t2 (s1 int);
+insert into t2 values (0);
+
+grant usage on db2.* to user1@localhost;
+grant select on db2.* to user1@localhost;
+grant usage on db2.* to user2@localhost;
+grant select,insert,update,delete,create routine on db2.* to user2@localhost;
+grant create routine on db2.* to user1@localhost;
+flush privileges;
+
+connection con2user1;
+use db2;
+
+create procedure p () insert into t2 values (1);
+
+# Check that this doesn't work.
+--error ER_TABLEACCESS_DENIED_ERROR
+call p();
+
+connect (con4user2,localhost,user2,,);
+
+connection con4user2;
+use db2;
+
+# This should not work, since p is executed with definer's (user1's) rights.
+--error ER_PROCACCESS_DENIED_ERROR
+call p();
+select * from t2;
+
+create procedure q () insert into t2 values (2);
+
+call q();
+select * from t2;
+
+connection con1root;
+grant usage on procedure db2.q to user2@localhost with grant option;
+
+connection con4user2;
+grant execute on procedure db2.q to user1@localhost;
+
+connection con2user1;
+use db2;
+
+# This should work
+call q();
+select * from t2;
+
+#
+# BUG#6030: Stored procedure has no appropriate DROP privilege
+# (or ALTER for that matter)
+
+# still connection con2user1 in db2
+
+# This should work:
+alter procedure p modifies sql data;
+drop procedure p;
+
+# This should NOT work
+--error ER_PROCACCESS_DENIED_ERROR
+alter procedure q modifies sql data;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure q;
+
+connection con1root;
+use db2;
+# But root always can
+alter procedure q modifies sql data;
+drop procedure q;
+
+
+# Clean up
+#Still connection con1root;
+disconnect con2user1;
+disconnect con3anon;
+disconnect con4user2;
+use test;
+select type,db,name from mysql.proc;
+drop database db1_secret;
+drop database db2;
+# Make sure the routines are gone
+select type,db,name from mysql.proc;
+# Get rid of the users
+delete from mysql.user where user='user1' or user='user2';
+delete from mysql.user where user='' and host='%';
+# And any routine privileges
+delete from mysql.procs_priv where user='user1' or user='user2';
+# Delete the grants to user ''@'%' that was created above
+delete from mysql.procs_priv where user='' and host='%';
+delete from mysql.db where user='user2';
+flush privileges;
+#
+# Test the new security acls
+#
+grant usage on *.* to usera@localhost;
+grant usage on *.* to userb@localhost;
+grant usage on *.* to userc@localhost;
+create database sptest;
+create table t1 ( u varchar(64), i int );
+create procedure sptest.p1(i int) insert into test.t1 values (user(), i);
+grant insert on t1 to usera@localhost;
+grant execute on procedure sptest.p1 to usera@localhost;
+show grants for usera@localhost;
+grant execute on procedure sptest.p1 to userc@localhost with grant option;
+show grants for userc@localhost;
+
+connect (con2usera,localhost,usera,,);
+connect (con3userb,localhost,userb,,);
+connect (con4userc,localhost,userc,,);
+
+connection con2usera;
+call sptest.p1(1);
+--error ER_PROCACCESS_DENIED_ERROR
+grant execute on procedure sptest.p1 to userb@localhost;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure sptest.p1;
+
+connection con3userb;
+--error ER_PROCACCESS_DENIED_ERROR
+call sptest.p1(2);
+--error ER_PROCACCESS_DENIED_ERROR
+grant execute on procedure sptest.p1 to userb@localhost;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure sptest.p1;
+
+connection con4userc;
+call sptest.p1(3);
+grant execute on procedure sptest.p1 to userb@localhost;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure sptest.p1;
+
+connection con3userb;
+call sptest.p1(4);
+--error ER_PROCACCESS_DENIED_ERROR
+grant execute on procedure sptest.p1 to userb@localhost;
+--error ER_PROCACCESS_DENIED_ERROR
+drop procedure sptest.p1;
+
+connection con1root;
+select * from t1;
+
+grant all privileges on procedure sptest.p1 to userc@localhost;
+show grants for userc@localhost;
+show grants for userb@localhost;
+
+connection con4userc;
+revoke all privileges on procedure sptest.p1 from userb@localhost;
+
+connection con1root;
+show grants for userb@localhost;
+
+#cleanup
+disconnect con4userc;
+disconnect con3userb;
+disconnect con2usera;
+use test;
+drop database sptest;
+delete from mysql.user where user='usera' or user='userb' or user='userc';
+delete from mysql.procs_priv where user='usera' or user='userb' or user='userc';
+delete from mysql.tables_priv where user='usera';
+flush privileges;
+drop table t1;
+
+#
+# BUG#9503: reseting correct parameters of thread after error in SP function
+#
+connect (root,localhost,root,,test);
+connection root;
+
+--disable_warnings
+drop function if exists bug_9503;
+--enable_warnings
+delimiter //;
+create database mysqltest//
+use mysqltest//
+create table t1 (s1 int)//
+grant select on t1 to user1@localhost//
+create function bug_9503 () returns int sql security invoker begin declare v int;
+select min(s1) into v from t1; return v; end//
+delimiter ;//
+
+connect (user1,localhost,user1,,test);
+connection user1;
+use mysqltest;
+-- error ER_PROCACCESS_DENIED_ERROR
+select bug_9503();
+
+connection root;
+grant execute on function bug_9503 to user1@localhost;
+
+connection user1;
+do 1;
+use test;
+
+disconnect user1;
+connection root;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
+drop function bug_9503;
+use test;
+drop database mysqltest;
+
+#
+# correct value from current_user() in function run from "security definer"
+# (BUG#7291)
+#
+connection con1root;
+use test;
+
+select current_user();
+select user();
+create procedure bug7291_0 () sql security invoker select current_user(), user();
+create procedure bug7291_1 () sql security definer call bug7291_0();
+create procedure bug7291_2 () sql security invoker call bug7291_0();
+grant execute on procedure bug7291_0 to user1@localhost;
+grant execute on procedure bug7291_1 to user1@localhost;
+grant execute on procedure bug7291_2 to user1@localhost;
+
+connect (user1,localhost,user1,,);
+connection user1;
+
+call bug7291_2();
+call bug7291_1();
+
+connection con1root;
+drop procedure bug7291_1;
+drop procedure bug7291_2;
+drop procedure bug7291_0;
+disconnect user1;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
+drop user user1@localhost;
+
+#
+# Bug #12318: Wrong error message when accessing an inaccessible stored
+# procedure in another database when the current database is
+# information_schema.
+#
+
+--disable_warnings
+drop database if exists mysqltest_1;
+--enable_warnings
+
+create database mysqltest_1;
+delimiter //;
+create procedure mysqltest_1.p1()
+begin
+ select 1 from dual;
+end//
+delimiter ;//
+
+grant usage on *.* to mysqltest_1@localhost;
+
+connect (n1,localhost,mysqltest_1,,information_schema,$MASTER_MYPORT,$MASTER_MYSOCK);
+connection n1;
+--error ER_PROCACCESS_DENIED_ERROR
+call mysqltest_1.p1();
+disconnect n1;
+# Test also without a current database
+connect (n2,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK);
+connection n2;
+--error ER_PROCACCESS_DENIED_ERROR
+call mysqltest_1.p1();
+disconnect n2;
+
+connection default;
+
+drop procedure mysqltest_1.p1;
+drop database mysqltest_1;
+
+revoke usage on *.* from mysqltest_1@localhost;
+drop user mysqltest_1@localhost;
+
+#
+# BUG#12812 create view calling a function works without execute right
+# on function
+delimiter |;
+--disable_warnings
+drop function if exists bug12812|
+--enable_warnings
+create function bug12812() returns char(2)
+begin
+ return 'ok';
+end;
+create user user_bug12812@localhost IDENTIFIED BY 'ABC'|
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (test_user_12812,localhost,user_bug12812,ABC,test)|
+--error ER_PROCACCESS_DENIED_ERROR
+SELECT test.bug12812()|
+--error ER_PROCACCESS_DENIED_ERROR
+CREATE VIEW v1 AS SELECT test.bug12812()|
+# Cleanup
+connection default|
+disconnect test_user_12812|
+DROP USER user_bug12812@localhost|
+drop function bug12812|
+delimiter ;|
+
+
+#
+# BUG#14834: Server denies to execute Stored Procedure
+#
+# The problem here was with '_' in the database name.
+#
+create database db_bug14834;
+
+create user user1_bug14834@localhost identified by '';
+# The exact name of the database (no wildcard)
+grant all on `db\_bug14834`.* to user1_bug14834@localhost;
+
+create user user2_bug14834@localhost identified by '';
+# The exact name of the database (no wildcard)
+grant all on `db\_bug14834`.* to user2_bug14834@localhost;
+
+create user user3_bug14834@localhost identified by '';
+# Wildcards in the database name
+grant all on `db__ug14834`.* to user3_bug14834@localhost;
+
+connect (user1_bug14834,localhost,user1_bug14834,,db_bug14834);
+# Create the procedure and check that we can call it
+create procedure p_bug14834() select user(), current_user();
+call p_bug14834();
+
+connect (user2_bug14834,localhost,user2_bug14834,,db_bug14834);
+# This didn't work before
+call p_bug14834();
+
+connect (user3_bug14834,localhost,user3_bug14834,,db_bug14834);
+# Should also work
+call p_bug14834();
+
+# Cleanup
+connection default;
+disconnect user1_bug14834;
+disconnect user2_bug14834;
+disconnect user3_bug14834;
+drop user user1_bug14834@localhost;
+drop user user2_bug14834@localhost;
+drop user user3_bug14834@localhost;
+drop database db_bug14834;
+
+
+#
+# BUG#14533: 'desc tbl' in stored procedure causes error
+# ER_TABLEACCESS_DENIED_ERROR
+#
+create database db_bug14533;
+use db_bug14533;
+create table t1 (id int);
+create user user_bug14533@localhost identified by '';
+
+create procedure bug14533_1()
+ sql security definer
+ desc db_bug14533.t1;
+
+create procedure bug14533_2()
+ sql security definer
+ select * from db_bug14533.t1;
+
+grant execute on procedure db_bug14533.bug14533_1 to user_bug14533@localhost;
+grant execute on procedure db_bug14533.bug14533_2 to user_bug14533@localhost;
+
+connect (user_bug14533,localhost,user_bug14533,,test);
+
+# These should work
+call db_bug14533.bug14533_1();
+call db_bug14533.bug14533_2();
+
+# For reference, these should not work
+--error ER_TABLEACCESS_DENIED_ERROR
+desc db_bug14533.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from db_bug14533.t1;
+
+# Cleanup
+connection default;
+disconnect user_bug14533;
+drop user user_bug14533@localhost;
+drop database db_bug14533;
+
+
+#
+# BUG#7787: Stored procedures: improper warning for "grant execute" statement
+#
+
+# Prepare.
+
+CREATE DATABASE db_bug7787;
+use db_bug7787;
+
+# Test.
+
+CREATE PROCEDURE p1()
+ SHOW INNODB STATUS;
+
+GRANT EXECUTE ON PROCEDURE p1 TO user_bug7787@localhost;
+
+# Cleanup.
+
+DROP DATABASE db_bug7787;
+drop user user_bug7787@localhost;
+use test;
+
+
+#
+# WL#2897: Complete definer support in the stored routines.
+#
+# The following cases are tested:
+# 1. check that if DEFINER-clause is not explicitly specified, stored routines
+# are created with CURRENT_USER privileges;
+# 2. check that if DEFINER-clause specifies non-current user, SUPER privilege
+# is required to create a stored routine;
+# 3. check that if DEFINER-clause specifies non-existent user, a warning is
+# emitted.
+# 4. check that SHOW CREATE PROCEDURE | FUNCTION works correctly;
+#
+# The following cases are tested in other test suites:
+# - check that mysqldump dumps new attribute correctly;
+# - check that slave replicates CREATE-statements with explicitly specified
+# DEFINER correctly.
+#
+
+# Setup the environment.
+
+--echo
+--echo ---> connection: root
+--connection con1root
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest;
+--enable_warnings
+
+CREATE DATABASE mysqltest;
+
+CREATE USER mysqltest_1@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_1@localhost;
+
+CREATE USER mysqltest_2@localhost;
+GRANT SUPER ON *.* TO mysqltest_2@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost;
+
+--connect (mysqltest_2_con,localhost,mysqltest_2,,mysqltest)
+--connect (mysqltest_1_con,localhost,mysqltest_1,,mysqltest)
+
+# test case (1).
+
+--echo
+--echo ---> connection: mysqltest_2_con
+--connection mysqltest_2_con
+
+use mysqltest;
+
+CREATE PROCEDURE wl2897_p1() SELECT 1;
+
+CREATE FUNCTION wl2897_f1() RETURNS INT RETURN 1;
+
+# test case (2).
+
+--echo
+--echo ---> connection: mysqltest_1_con
+--connection mysqltest_1_con
+
+use mysqltest;
+
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+CREATE DEFINER=root@localhost PROCEDURE wl2897_p2() SELECT 2;
+
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+CREATE DEFINER=root@localhost FUNCTION wl2897_f2() RETURNS INT RETURN 2;
+
+# test case (3).
+
+--echo
+--echo ---> connection: mysqltest_2_con
+--connection mysqltest_2_con
+
+use mysqltest;
+
+CREATE DEFINER='a @ b @ c'@localhost PROCEDURE wl2897_p3() SELECT 3;
+
+CREATE DEFINER='a @ b @ c'@localhost FUNCTION wl2897_f3() RETURNS INT RETURN 3;
+
+# test case (4).
+
+--echo
+--echo ---> connection: con1root
+--connection con1root
+
+use mysqltest;
+
+SHOW CREATE PROCEDURE wl2897_p1;
+SHOW CREATE PROCEDURE wl2897_p3;
+
+SHOW CREATE FUNCTION wl2897_f1;
+SHOW CREATE FUNCTION wl2897_f3;
+
+# Cleanup.
+
+DROP USER mysqltest_1@localhost;
+DROP USER mysqltest_2@localhost;
+
+DROP DATABASE mysqltest;
+
+--disconnect mysqltest_1_con
+--disconnect mysqltest_2_con
+
+
+#
+# BUG#13198: SP executes if definer does not exist
+#
+
+# Prepare environment.
+
+--echo
+--echo ---> connection: root
+--connection con1root
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest;
+--enable_warnings
+
+CREATE DATABASE mysqltest;
+
+CREATE USER mysqltest_1@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_1@localhost;
+
+CREATE USER mysqltest_2@localhost;
+GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost;
+
+--connect (mysqltest_1_con,localhost,mysqltest_1,,mysqltest)
+--connect (mysqltest_2_con,localhost,mysqltest_2,,mysqltest)
+
+# Create a procedure/function under u1.
+
+--echo
+--echo ---> connection: mysqltest_1_con
+--connection mysqltest_1_con
+
+use mysqltest;
+
+CREATE PROCEDURE bug13198_p1()
+ SELECT 1;
+
+CREATE FUNCTION bug13198_f1() RETURNS INT
+ RETURN 1;
+
+CALL bug13198_p1();
+
+SELECT bug13198_f1();
+
+# Check that u2 can call the procedure/function.
+
+--echo
+--echo ---> connection: mysqltest_2_con
+--connection mysqltest_2_con
+
+use mysqltest;
+
+CALL bug13198_p1();
+
+SELECT bug13198_f1();
+
+# Drop user u1 (definer of the object);
+
+--echo
+--echo ---> connection: root
+--connection con1root
+
+--disconnect mysqltest_1_con
+
+DROP USER mysqltest_1@localhost;
+
+# Check that u2 can not call the procedure/function.
+
+--echo
+--echo ---> connection: mysqltest_2_con
+--connection mysqltest_2_con
+
+use mysqltest;
+
+--error ER_NO_SUCH_USER
+CALL bug13198_p1();
+
+--error ER_NO_SUCH_USER
+SELECT bug13198_f1();
+
+# Cleanup.
+
+--echo
+--echo ---> connection: root
+--connection con1root
+
+--disconnect mysqltest_2_con
+
+DROP USER mysqltest_2@localhost;
+
+DROP DATABASE mysqltest;
+
+
+#
+# Bug#19857 - When a user with CREATE ROUTINE priv creates a routine,
+# it results in NULL p/w
+#
+
+# Can't test with embedded server that doesn't support grants
+
+GRANT USAGE ON *.* TO user19857@localhost IDENTIFIED BY 'meow';
+GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ROUTINE, ALTER ROUTINE ON test.* TO
+user19857@localhost;
+SELECT Host,User,Password FROM mysql.user WHERE User='user19857';
+
+--connect (mysqltest_2_con,localhost,user19857,meow,test)
+--echo
+--echo ---> connection: mysqltest_2_con
+--connection mysqltest_2_con
+
+use test;
+
+DELIMITER //;
+ CREATE PROCEDURE sp19857() DETERMINISTIC
+ BEGIN
+ DECLARE a INT;
+ SET a=1;
+ SELECT a;
+ END //
+DELIMITER ;//
+
+SHOW CREATE PROCEDURE test.sp19857;
+
+--disconnect mysqltest_2_con
+--connect (mysqltest_2_con,localhost,user19857,meow,test)
+--connection mysqltest_2_con
+
+DROP PROCEDURE IF EXISTS test.sp19857;
+
+--echo
+--echo ---> connection: root
+--connection con1root
+
+--disconnect mysqltest_2_con
+
+SELECT Host,User,Password FROM mysql.user WHERE User='user19857';
+
+DROP USER user19857@localhost;
+
+--disconnect con1root
+--connection default
+
+
+#
+# BUG#18630: Arguments of suid routine calculated in wrong security
+# context
+#
+# Arguments of suid routines were calculated in definer's security
+# context instead of caller's context thus creating security hole.
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP FUNCTION IF EXISTS f_suid;
+DROP PROCEDURE IF EXISTS p_suid;
+DROP FUNCTION IF EXISTS f_evil;
+--enable_warnings
+DELETE FROM mysql.user WHERE user LIKE 'mysqltest\_%';
+DELETE FROM mysql.db WHERE user LIKE 'mysqltest\_%';
+DELETE FROM mysql.tables_priv WHERE user LIKE 'mysqltest\_%';
+DELETE FROM mysql.columns_priv WHERE user LIKE 'mysqltest\_%';
+FLUSH PRIVILEGES;
+
+CREATE TABLE t1 (i INT);
+CREATE FUNCTION f_suid(i INT) RETURNS INT SQL SECURITY DEFINER RETURN 0;
+CREATE PROCEDURE p_suid(IN i INT) SQL SECURITY DEFINER SET @c:= 0;
+
+CREATE USER mysqltest_u1@localhost;
+# Thanks to this grant statement privileges of anonymous users on
+# 'test' database are not applicable for mysqltest_u1@localhost.
+GRANT EXECUTE ON test.* TO mysqltest_u1@localhost;
+
+delimiter |;
+CREATE DEFINER=mysqltest_u1@localhost FUNCTION f_evil () RETURNS INT
+ SQL SECURITY INVOKER
+BEGIN
+ SET @a:= CURRENT_USER();
+ SET @b:= (SELECT COUNT(*) FROM t1);
+ RETURN @b;
+END|
+delimiter ;|
+
+CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT f_evil();
+
+connect (conn1, localhost, mysqltest_u1,,);
+
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT COUNT(*) FROM t1;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT f_evil();
+SELECT @a, @b;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT f_suid(f_evil());
+SELECT @a, @b;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+CALL p_suid(f_evil());
+SELECT @a, @b;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT * FROM v1;
+SELECT @a, @b;
+
+disconnect conn1;
+connection default;
+
+DROP VIEW v1;
+DROP FUNCTION f_evil;
+DROP USER mysqltest_u1@localhost;
+DROP PROCEDURE p_suid;
+DROP FUNCTION f_suid;
+DROP TABLE t1;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/sp-threads.test b/mysql-test/t/sp-threads.test
new file mode 100644
index 00000000000..d8a8ce5dae7
--- /dev/null
+++ b/mysql-test/t/sp-threads.test
@@ -0,0 +1,185 @@
+# This test should work in embedded server after mysqltest is fixed
+-- source include/not_embedded.inc
+#
+# Testing stored procedures with multiple connections,
+# except security/privilege tests, they go to sp-security.test
+#
+
+connect (con1root,localhost,root,,);
+connect (con2root,localhost,root,,);
+connect (con3root,localhost,root,,);
+
+connection con1root;
+use test;
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (s1 int, s2 int, s3 int);
+
+delimiter //;
+create procedure bug4934()
+begin
+ insert into t1 values (1,0,1);
+end//
+delimiter ;//
+
+
+connection con2root;
+use test;
+
+call bug4934();
+select * from t1;
+
+
+connection con1root;
+
+drop table t1;
+create table t1 (s1 int, s2 int, s3 int);
+
+drop procedure bug4934;
+delimiter //;
+create procedure bug4934()
+begin
+end//
+delimiter ;//
+
+
+connection con2root;
+
+select * from t1;
+call bug4934();
+select * from t1;
+
+connection con1root;
+
+drop table t1;
+drop procedure bug4934;
+
+
+#
+# BUG #9486 "Can't perform multi-update in stored procedure"
+#
+--disable_warnings
+drop procedure if exists bug9486;
+drop table if exists t1, t2;
+--enable_warnings
+create table t1 (id1 int, val int);
+create table t2 (id2 int);
+
+create procedure bug9486()
+ update t1, t2 set val= 1 where id1=id2;
+call bug9486();
+# Let us check that SP invocation requires write lock for t2.
+connection con2root;
+lock tables t2 write;
+connection con1root;
+send call bug9486();
+connection con2root;
+--sleep 2
+# There should be call statement in locked state.
+--replace_column 1 # 3 localhost 6 #
+show processlist;
+unlock tables;
+connection con1root;
+reap;
+
+drop procedure bug9486;
+drop table t1, t2;
+
+#
+# BUG#11158: Can't perform multi-delete in stored procedure
+#
+--disable_warnings
+drop procedure if exists bug11158;
+--enable_warnings
+create procedure bug11158() delete t1 from t1, t2 where t1.id = t2.id;
+create table t1 (id int, j int);
+insert into t1 values (1, 1), (2, 2);
+create table t2 (id int);
+insert into t2 values (1);
+# Procedure should work and cause proper effect (delete only first row)
+call bug11158();
+select * from t1;
+# Also let us test that we obtain only read (and thus non exclusive) lock
+# for table from which we are not going to delete rows.
+connection con2root;
+lock tables t2 read;
+connection con1root;
+call bug11158();
+connection con2root;
+unlock tables;
+connection con1root;
+# Clean-up
+drop procedure bug11158;
+drop table t1, t2;
+
+#
+# BUG#11554: Server crashes on statement indirectly using non-cached function
+#
+--disable_warnings
+drop function if exists bug11554;
+drop view if exists v1;
+--enable_warnings
+create table t1 (i int);
+create function bug11554 () returns int return 1;
+create view v1 as select bug11554() as f;
+connection con2root;
+# This should not crash server
+insert into t1 (select f from v1);
+# Clean-up
+connection con1root;
+drop function bug11554;
+drop table t1;
+drop view v1;
+
+
+# BUG#12228
+--disable_warnings
+drop procedure if exists p1;
+drop procedure if exists p2;
+--enable_warnings
+
+connection con1root;
+delimiter |;
+create table t1 (s1 int)|
+create procedure p1() select * from t1|
+create procedure p2()
+begin
+ insert into t1 values (1);
+ call p1();
+ select * from t1;
+end|
+delimiter ;|
+
+connection con2root;
+use test;
+lock table t1 write;
+
+connection con1root;
+send call p2();
+
+connection con3root;
+use test;
+drop procedure p1;
+create procedure p1() select * from t1;
+
+connection con2root;
+unlock tables;
+
+connection con1root;
+# Crash will be here if we hit BUG#12228
+reap;
+
+drop procedure p1;
+drop procedure p2;
+drop table t1;
+
+#
+# BUG#NNNN: New bug synopsis
+#
+#--disable_warnings
+#drop procedure if exists bugNNNN;
+#--enable_warnings
+#create procedure bugNNNN...
+
diff --git a/mysql-test/t/sp-ucs2.test b/mysql-test/t/sp-ucs2.test
new file mode 100644
index 00000000000..7dd88b04871
--- /dev/null
+++ b/mysql-test/t/sp-ucs2.test
@@ -0,0 +1,28 @@
+-- source include/have_ucs2.inc
+
+delimiter |;
+
+#
+# BUG#17615: problem with character set
+#
+--disable_warnings
+drop function if exists bug17615|
+--enable_warnings
+
+create table t3 (a varchar(256) unicode)|
+
+create function bug17615() returns varchar(256) unicode
+begin
+ declare tmp_res varchar(256) unicode;
+ set tmp_res= 'foo string';
+ return tmp_res;
+end|
+
+insert into t3 values(bug17615())|
+select * from t3|
+
+drop function bug17615|
+drop table t3|
+
+
+delimiter ;|
diff --git a/mysql-test/t/sp-vars.test b/mysql-test/t/sp-vars.test
new file mode 100644
index 00000000000..2cc68b054d5
--- /dev/null
+++ b/mysql-test/t/sp-vars.test
@@ -0,0 +1,1414 @@
+###########################################################################
+#
+# Cleanup.
+#
+###########################################################################
+
+--disable_warnings
+
+# Drop stored routines (if any) for general SP-vars test cases. These routines
+# are created in include/sp-vars.inc file.
+
+DROP PROCEDURE IF EXISTS sp_vars_check_dflt;
+DROP PROCEDURE IF EXISTS sp_vars_check_assignment;
+DROP FUNCTION IF EXISTS sp_vars_check_ret1;
+DROP FUNCTION IF EXISTS sp_vars_check_ret2;
+DROP FUNCTION IF EXISTS sp_vars_check_ret3;
+DROP FUNCTION IF EXISTS sp_vars_check_ret4;
+DROP FUNCTION IF EXISTS sp_vars_div_zero;
+
+--enable_warnings
+
+###########################################################################
+#
+# Some general tests for SP-vars functionality.
+#
+###########################################################################
+
+# Create the procedure in ANSI mode. Check that all necessary warnings are
+# emitted properly.
+
+SET @@sql_mode = 'ansi';
+
+--source include/sp-vars.inc
+
+--echo
+--echo ---------------------------------------------------------------
+--echo Calling the routines, created in ANSI mode.
+--echo ---------------------------------------------------------------
+--echo
+
+CALL sp_vars_check_dflt();
+
+CALL sp_vars_check_assignment();
+
+SELECT sp_vars_check_ret1();
+
+SELECT sp_vars_check_ret2();
+
+SELECT sp_vars_check_ret3();
+
+SELECT sp_vars_check_ret4();
+
+SELECT sp_vars_div_zero();
+
+# Check that changing sql_mode after creating a store procedure does not
+# matter.
+
+SET @@sql_mode = 'traditional';
+
+--echo
+--echo ---------------------------------------------------------------
+--echo Calling in TRADITIONAL mode the routines, created in ANSI mode.
+--echo ---------------------------------------------------------------
+--echo
+
+CALL sp_vars_check_dflt();
+
+CALL sp_vars_check_assignment();
+
+SELECT sp_vars_check_ret1();
+
+SELECT sp_vars_check_ret2();
+
+SELECT sp_vars_check_ret3();
+
+SELECT sp_vars_check_ret4();
+
+SELECT sp_vars_div_zero();
+
+# Create the procedure in TRADITIONAL mode. Check that error will be thrown on
+# execution.
+
+DROP PROCEDURE sp_vars_check_dflt;
+DROP PROCEDURE sp_vars_check_assignment;
+DROP FUNCTION sp_vars_check_ret1;
+DROP FUNCTION sp_vars_check_ret2;
+DROP FUNCTION sp_vars_check_ret3;
+DROP FUNCTION sp_vars_check_ret4;
+DROP FUNCTION sp_vars_div_zero;
+
+--source include/sp-vars.inc
+
+--echo
+--echo ---------------------------------------------------------------
+--echo Calling the routines, created in TRADITIONAL mode.
+--echo ---------------------------------------------------------------
+--echo
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+CALL sp_vars_check_dflt();
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+CALL sp_vars_check_assignment();
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+SELECT sp_vars_check_ret1();
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+SELECT sp_vars_check_ret2();
+
+--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+SELECT sp_vars_check_ret3();
+
+# TODO: Is it an error, that only a warning is emitted here? Check the same
+# behaviour with tables.
+
+SELECT sp_vars_check_ret4();
+
+--error ER_DIVISION_BY_ZERO
+SELECT sp_vars_div_zero();
+
+SET @@sql_mode = 'ansi';
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE sp_vars_check_dflt;
+DROP PROCEDURE sp_vars_check_assignment;
+DROP FUNCTION sp_vars_check_ret1;
+DROP FUNCTION sp_vars_check_ret2;
+DROP FUNCTION sp_vars_check_ret3;
+DROP FUNCTION sp_vars_check_ret4;
+DROP FUNCTION sp_vars_div_zero;
+
+###########################################################################
+#
+# Tests for BIT data type.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BIT data type tests
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE v1 BIT;
+ DECLARE v2 BIT(1);
+ DECLARE v3 BIT(3) DEFAULT b'101';
+ DECLARE v4 BIT(64) DEFAULT 0x5555555555555555;
+ DECLARE v5 BIT(3);
+ DECLARE v6 BIT(64);
+ DECLARE v7 BIT(8) DEFAULT 128;
+ DECLARE v8 BIT(8) DEFAULT '128';
+ DECLARE v9 BIT(8) DEFAULT ' 128';
+ DECLARE v10 BIT(8) DEFAULT 'x 128';
+
+ SET v1 = v4;
+ SET v2 = 0;
+ SET v5 = v4; # check overflow
+ SET v6 = v3; # check padding
+
+ SELECT HEX(v1);
+ SELECT HEX(v2);
+ SELECT HEX(v3);
+ SELECT HEX(v4);
+ SELECT HEX(v5);
+ SELECT HEX(v6);
+ SELECT HEX(v7);
+ SELECT HEX(v8);
+ SELECT HEX(v9);
+ SELECT HEX(v10);
+END|
+delimiter ;|
+
+CALL p1();
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+
+###########################################################################
+#
+# Tests for CASE statements functionality:
+# - test for general functionality (scopes, nested cases, CASE in loops);
+# - test that if type of the CASE expression is changed on each iteration,
+# the execution will be correct.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo CASE expression tests.
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP TABLE IF EXISTS t1;
+
+#
+# Test case.
+#
+
+CREATE TABLE t1(log_msg VARCHAR(1024));
+
+delimiter |;
+
+CREATE PROCEDURE p1(arg VARCHAR(255))
+BEGIN
+ INSERT INTO t1 VALUES('p1: step1');
+
+ CASE arg * 10
+ WHEN 10 * 10 THEN
+ INSERT INTO t1 VALUES('p1: case1: on 10');
+ WHEN 10 * 10 + 10 * 10 THEN
+ BEGIN
+ CASE arg / 10
+ WHEN 1 THEN
+ INSERT INTO t1 VALUES('p1: case1: case2: on 1');
+ WHEN 2 THEN
+ BEGIN
+ DECLARE i TINYINT DEFAULT 10;
+
+ WHILE i > 0 DO
+ INSERT INTO t1 VALUES(CONCAT('p1: case1: case2: loop: i: ', i));
+
+ CASE MOD(i, 2)
+ WHEN 0 THEN
+ INSERT INTO t1 VALUES('p1: case1: case2: loop: i is even');
+ WHEN 1 THEN
+ INSERT INTO t1 VALUES('p1: case1: case2: loop: i is odd');
+ ELSE
+ INSERT INTO t1 VALUES('p1: case1: case2: loop: ERROR');
+ END CASE;
+
+ SET i = i - 1;
+ END WHILE;
+ END;
+ ELSE
+ INSERT INTO t1 VALUES('p1: case1: case2: ERROR');
+ END CASE;
+
+ CASE arg
+ WHEN 10 THEN
+ INSERT INTO t1 VALUES('p1: case1: case3: on 10');
+ WHEN 20 THEN
+ INSERT INTO t1 VALUES('p1: case1: case3: on 20');
+ ELSE
+ INSERT INTO t1 VALUES('p1: case1: case3: ERROR');
+ END CASE;
+ END;
+ ELSE
+ INSERT INTO t1 VALUES('p1: case1: ERROR');
+ END CASE;
+
+ CASE arg * 10
+ WHEN 10 * 10 THEN
+ INSERT INTO t1 VALUES('p1: case4: on 10');
+ WHEN 10 * 10 + 10 * 10 THEN
+ BEGIN
+ CASE arg / 10
+ WHEN 1 THEN
+ INSERT INTO t1 VALUES('p1: case4: case5: on 1');
+ WHEN 2 THEN
+ BEGIN
+ DECLARE i TINYINT DEFAULT 10;
+
+ WHILE i > 0 DO
+ INSERT INTO t1 VALUES(CONCAT('p1: case4: case5: loop: i: ', i));
+
+ CASE MOD(i, 2)
+ WHEN 0 THEN
+ INSERT INTO t1 VALUES('p1: case4: case5: loop: i is even');
+ WHEN 1 THEN
+ INSERT INTO t1 VALUES('p1: case4: case5: loop: i is odd');
+ ELSE
+ INSERT INTO t1 VALUES('p1: case4: case5: loop: ERROR');
+ END CASE;
+
+ SET i = i - 1;
+ END WHILE;
+ END;
+ ELSE
+ INSERT INTO t1 VALUES('p1: case4: case5: ERROR');
+ END CASE;
+
+ CASE arg
+ WHEN 10 THEN
+ INSERT INTO t1 VALUES('p1: case4: case6: on 10');
+ WHEN 20 THEN
+ INSERT INTO t1 VALUES('p1: case4: case6: on 20');
+ ELSE
+ INSERT INTO t1 VALUES('p1: case4: case6: ERROR');
+ END CASE;
+ END;
+ ELSE
+ INSERT INTO t1 VALUES('p1: case4: ERROR');
+ END CASE;
+END|
+
+CREATE PROCEDURE p2()
+BEGIN
+ DECLARE i TINYINT DEFAULT 3;
+
+ WHILE i > 0 DO
+ IF MOD(i, 2) = 0 THEN
+ SET @_test_session_var = 10;
+ ELSE
+ SET @_test_session_var = 'test';
+ END IF;
+
+ CASE @_test_session_var
+ WHEN 10 THEN
+ INSERT INTO t1 VALUES('p2: case: numerical type');
+ WHEN 'test' THEN
+ INSERT INTO t1 VALUES('p2: case: string type');
+ ELSE
+ INSERT INTO t1 VALUES('p2: case: ERROR');
+ END CASE;
+
+ SET i = i - 1;
+ END WHILE;
+END|
+
+delimiter ;|
+
+CALL p1(10);
+CALL p1(20);
+
+CALL p2();
+
+SELECT * FROM t1;
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP TABLE t1;
+
+###########################################################################
+#
+# Test case for BUG#14161: Stored procedure cannot retrieve bigint unsigned.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#14161
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+CREATE TABLE t1(col BIGINT UNSIGNED);
+
+INSERT INTO t1 VALUE(18446744073709551614);
+
+delimiter |;
+CREATE PROCEDURE p1(IN arg BIGINT UNSIGNED)
+BEGIN
+ SELECT arg;
+ SELECT * FROM t1;
+ SELECT * FROM t1 WHERE col = arg;
+END|
+delimiter ;|
+
+CALL p1(18446744073709551614);
+
+#
+# Cleanup.
+#
+
+DROP TABLE t1;
+DROP PROCEDURE p1;
+
+###########################################################################
+#
+# Test case for BUG#13705: parameters to stored procedures are not verified.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#13705
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+CREATE PROCEDURE p1(x VARCHAR(10), y CHAR(3)) READS SQL DATA
+BEGIN
+ SELECT x, y;
+END|
+delimiter ;|
+
+CALL p1('alpha', 'abc');
+CALL p1('alpha', 'abcdef');
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+
+###########################################################################
+#
+# Test case for BUG#13675: DATETIME/DATE type in store proc param seems to be
+# converted as varbinary.
+#
+# TODO: test case failed.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#13675
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+CREATE PROCEDURE p1(x DATETIME)
+BEGIN
+ CREATE TABLE t1 SELECT x;
+ SHOW CREATE TABLE t1;
+ DROP TABLE t1;
+END|
+delimiter ;|
+
+CALL p1(NOW());
+
+CALL p1('test');
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+
+###########################################################################
+#
+# Test case for BUG#12976: Boolean values reversed in stored procedures?
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#12976
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+--enable_warnings
+
+#
+# Test case.
+#
+
+CREATE TABLE t1(b BIT(1));
+
+INSERT INTO t1(b) VALUES(b'0'), (b'1');
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ SELECT HEX(b),
+ b = 0,
+ b = FALSE,
+ b IS FALSE,
+ b = 1,
+ b = TRUE,
+ b IS TRUE
+ FROM t1;
+END|
+
+CREATE PROCEDURE p2()
+BEGIN
+ DECLARE vb BIT(1);
+ SELECT b INTO vb FROM t1 WHERE b = 0;
+
+ SELECT HEX(vb),
+ vb = 0,
+ vb = FALSE,
+ vb IS FALSE,
+ vb = 1,
+ vb = TRUE,
+ vb IS TRUE;
+
+ SELECT b INTO vb FROM t1 WHERE b = 1;
+
+ SELECT HEX(vb),
+ vb = 0,
+ vb = FALSE,
+ vb IS FALSE,
+ vb = 1,
+ vb = TRUE,
+ vb IS TRUE;
+END|
+delimiter ;|
+
+call p1();
+
+call p2();
+
+#
+# Cleanup.
+#
+
+DROP TABLE t1;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+
+# Additional tests for Bug#12976
+
+--disable_warnings
+DROP TABLE IF EXISTS table_12976_a;
+DROP TABLE IF EXISTS table_12976_b;
+DROP PROCEDURE IF EXISTS proc_12976_a;
+DROP PROCEDURE IF EXISTS proc_12976_b;
+--enable_warnings
+
+CREATE TABLE table_12976_a (val bit(1));
+
+CREATE TABLE table_12976_b(
+ appname varchar(15),
+ emailperm bit not null default 1,
+ phoneperm bit not null default 0);
+
+insert into table_12976_b values ('A', b'1', b'1'), ('B', b'0', b'0');
+
+delimiter ||;
+CREATE PROCEDURE proc_12976_a()
+BEGIN
+ declare localvar bit(1);
+ SELECT val INTO localvar FROM table_12976_a;
+ SELECT coalesce(localvar, 1)+1, coalesce(val, 1)+1 FROM table_12976_a;
+END||
+
+CREATE PROCEDURE proc_12976_b(
+ name varchar(15),
+ out ep bit,
+ out msg varchar(10))
+BEGIN
+ SELECT emailperm into ep FROM table_12976_b where (appname = name);
+ IF ep is true THEN
+ SET msg = 'True';
+ ELSE
+ SET msg = 'False';
+ END IF;
+END||
+
+delimiter ;||
+
+INSERT table_12976_a VALUES (0);
+call proc_12976_a();
+UPDATE table_12976_a set val=1;
+call proc_12976_a();
+
+call proc_12976_b('A', @ep, @msg);
+select @ep, @msg;
+
+call proc_12976_b('B', @ep, @msg);
+select @ep, @msg;
+
+DROP TABLE table_12976_a;
+DROP TABLE table_12976_b;
+DROP PROCEDURE proc_12976_a;
+DROP PROCEDURE proc_12976_b;
+
+
+###########################################################################
+#
+# Test case for BUG#9572: Stored procedures: variable type declarations
+# ignored.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#9572
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+
+DROP PROCEDURE IF EXISTS p4;
+DROP PROCEDURE IF EXISTS p5;
+DROP PROCEDURE IF EXISTS p6;
+--enable_warnings
+
+#
+# Test case.
+#
+
+SET @@sql_mode = 'traditional';
+
+delimiter |;
+
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE v TINYINT DEFAULT 1e200;
+ SELECT v;
+END|
+
+CREATE PROCEDURE p2()
+BEGIN
+ DECLARE v DECIMAL(5) DEFAULT 1e200;
+ SELECT v;
+END|
+
+CREATE PROCEDURE p3()
+BEGIN
+ DECLARE v CHAR(5) DEFAULT 'abcdef';
+ SELECT v LIKE 'abc___';
+END|
+
+CREATE PROCEDURE p4(arg VARCHAR(2))
+BEGIN
+ DECLARE var VARCHAR(1);
+ SET var := arg;
+ SELECT arg, var;
+END|
+
+CREATE PROCEDURE p5(arg CHAR(2))
+BEGIN
+ DECLARE var CHAR(1);
+ SET var := arg;
+ SELECT arg, var;
+END|
+
+CREATE PROCEDURE p6(arg DECIMAL(2))
+BEGIN
+ DECLARE var DECIMAL(1);
+ SET var := arg;
+ SELECT arg, var;
+END|
+
+delimiter ;|
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+CALL p1();
+--error ER_WARN_DATA_OUT_OF_RANGE
+CALL p2();
+--error ER_DATA_TOO_LONG
+CALL p3();
+
+--error ER_DATA_TOO_LONG
+CALL p4('aaa');
+--error ER_DATA_TOO_LONG
+CALL p5('aa');
+--error ER_WARN_DATA_OUT_OF_RANGE
+CALL p6(10);
+
+#
+# Cleanup.
+#
+
+SET @@sql_mode = 'ansi';
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+
+DROP PROCEDURE p4;
+DROP PROCEDURE p5;
+DROP PROCEDURE p6;
+
+###########################################################################
+#
+# Test case for BUG#9078: STORED PROCDURE: Decimal digits are not displayed
+# when we use DECIMAL datatype.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#9078
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+CREATE PROCEDURE p1 (arg DECIMAL(64,2))
+BEGIN
+ DECLARE var DECIMAL(64,2);
+
+ SET var = arg;
+ SELECT var;
+END|
+delimiter ;|
+
+CALL p1(1929);
+CALL p1(1929.00);
+CALL p1(1929.003);
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+
+###########################################################################
+#
+# Test case for BUG#8768: Functions: For any unsigned data type, -ve values can
+# be passed and returned.
+#
+# TODO: there is a bug here -- the function created in ANSI mode should not
+# throw errors instead of warnings if called in TRADITIONAL mode.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#8768
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+# Create a function in ANSI mode.
+
+delimiter |;
+CREATE FUNCTION f1(arg TINYINT UNSIGNED) RETURNS TINYINT
+BEGIN
+ RETURN arg;
+END|
+delimiter ;|
+
+SELECT f1(-2500);
+
+# Call in TRADITIONAL mode the function created in ANSI mode.
+
+SET @@sql_mode = 'traditional';
+
+# TODO: a warning should be emitted here.
+--error ER_WARN_DATA_OUT_OF_RANGE
+SELECT f1(-2500);
+
+# Recreate the function in TRADITIONAL mode.
+
+DROP FUNCTION f1;
+
+delimiter |;
+CREATE FUNCTION f1(arg TINYINT UNSIGNED) RETURNS TINYINT
+BEGIN
+ RETURN arg;
+END|
+delimiter ;|
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+SELECT f1(-2500);
+
+#
+# Cleanup.
+#
+
+SET @@sql_mode = 'ansi';
+
+DROP FUNCTION f1;
+
+###########################################################################
+#
+# Test case for BUG#8769: Functions: For Int datatypes, out of range values can
+# be passed and returned.
+#
+# TODO: there is a bug here -- the function created in ANSI mode should not
+# throw errors instead of warnings if called in TRADITIONAL mode.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#8769
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+# Create a function in ANSI mode.
+
+delimiter |;
+CREATE FUNCTION f1(arg MEDIUMINT) RETURNS MEDIUMINT
+BEGIN
+ RETURN arg;
+END|
+delimiter ;|
+
+SELECT f1(8388699);
+
+# Call in TRADITIONAL mode the function created in ANSI mode.
+
+SET @@sql_mode = 'traditional';
+
+# TODO: a warning should be emitted here.
+--error ER_WARN_DATA_OUT_OF_RANGE
+SELECT f1(8388699);
+
+# Recreate the function in TRADITIONAL mode.
+
+DROP FUNCTION f1;
+
+delimiter |;
+CREATE FUNCTION f1(arg MEDIUMINT) RETURNS MEDIUMINT
+BEGIN
+ RETURN arg;
+END|
+delimiter ;|
+
+--error ER_WARN_DATA_OUT_OF_RANGE
+SELECT f1(8388699);
+
+#
+# Cleanup.
+#
+
+SET @@sql_mode = 'ansi';
+
+DROP FUNCTION f1;
+
+###########################################################################
+#
+# Test case for BUG#8702: Stored Procedures: No Error/Warning shown for
+# inappropriate data type matching.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#8702
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+CREATE TABLE t1(col VARCHAR(255));
+
+INSERT INTO t1(col) VALUES('Hello, world!');
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE sp_var INTEGER;
+
+ SELECT col INTO sp_var FROM t1 LIMIT 1;
+ SET @user_var = sp_var;
+
+ SELECT sp_var;
+ SELECT @user_var;
+END|
+delimiter ;|
+
+CALL p1();
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+DROP TABLE t1;
+
+###########################################################################
+#
+# Test case for BUG#12903: upper function does not work inside a function.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#12903
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+CREATE TABLE t1(txt VARCHAR(255));
+
+delimiter |;
+CREATE FUNCTION f1(arg VARCHAR(255)) RETURNS VARCHAR(255)
+BEGIN
+ DECLARE v1 VARCHAR(255);
+ DECLARE v2 VARCHAR(255);
+
+ SET v1 = CONCAT(LOWER(arg), UPPER(arg));
+ SET v2 = CONCAT(LOWER(v1), UPPER(v1));
+
+ INSERT INTO t1 VALUES(v1), (v2);
+
+ RETURN CONCAT(LOWER(arg), UPPER(arg));
+END|
+delimiter ;|
+
+SELECT f1('_aBcDe_');
+
+SELECT * FROM t1;
+
+#
+# Cleanup.
+#
+
+DROP FUNCTION f1;
+DROP TABLE t1;
+
+###########################################################################
+#
+# Test case for BUG#13808: ENUM type stored procedure parameter accepts
+# non-enumerated data.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#13808
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+
+CREATE PROCEDURE p1(arg ENUM('a', 'b'))
+BEGIN
+ SELECT arg;
+END|
+
+CREATE PROCEDURE p2(arg ENUM('a', 'b'))
+BEGIN
+ DECLARE var ENUM('c', 'd') DEFAULT arg;
+
+ SELECT arg, var;
+END|
+
+CREATE FUNCTION f1(arg ENUM('a', 'b')) RETURNS ENUM('c', 'd')
+BEGIN
+ RETURN arg;
+END|
+
+delimiter ;|
+
+CALL p1('c');
+
+CALL p2('a');
+
+SELECT f1('a');
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP FUNCTION f1;
+
+###########################################################################
+#
+# Test case for BUG#13909: Varchar Stored Procedure Parameter always BINARY
+# string (ignores CHARACTER SET).
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#13909
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+
+CREATE PROCEDURE p1(arg VARCHAR(255))
+BEGIN
+ SELECT CHARSET(arg);
+END|
+
+CREATE PROCEDURE p2(arg VARCHAR(255) CHARACTER SET UTF8)
+BEGIN
+ SELECT CHARSET(arg);
+END|
+
+delimiter ;|
+
+CALL p1('t');
+CALL p1(_UTF8 't');
+
+
+CALL p2('t');
+CALL p2(_LATIN1 't');
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+
+###########################################################################
+#
+# Test case for BUG#14188: BINARY variables have no 0x00 padding.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#14188
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+CREATE PROCEDURE p1(arg1 BINARY(2), arg2 VARBINARY(2))
+BEGIN
+ DECLARE var1 BINARY(2) DEFAULT 0x41;
+ DECLARE var2 VARBINARY(2) DEFAULT 0x42;
+
+ SELECT HEX(arg1), HEX(arg2);
+ SELECT HEX(var1), HEX(var2);
+END|
+delimiter ;|
+
+CALL p1(0x41, 0x42);
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+
+###########################################################################
+#
+# Test case for BUG#15148: Stored procedure variables accept non-scalar values.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#15148
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+CREATE TABLE t1(col1 TINYINT, col2 TINYINT);
+
+INSERT INTO t1 VALUES(1, 2), (11, 12);
+
+delimiter |;
+CREATE PROCEDURE p1(arg TINYINT)
+BEGIN
+ SELECT arg;
+END|
+delimiter ;|
+
+--error ER_OPERAND_COLUMNS
+CALL p1((1, 2));
+
+--error ER_OPERAND_COLUMNS
+CALL p1((SELECT * FROM t1 LIMIT 1));
+
+--error ER_OPERAND_COLUMNS
+CALL p1((SELECT col1, col2 FROM t1 LIMIT 1));
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+DROP TABLE t1;
+
+###########################################################################
+#
+# Test case for BUG#13613: substring function in stored procedure.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#13613
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+
+CREATE PROCEDURE p1(x VARCHAR(50))
+BEGIN
+ SET x = SUBSTRING(x, 1, 3);
+ SELECT x;
+END|
+
+CREATE FUNCTION f1(x VARCHAR(50)) RETURNS VARCHAR(50)
+BEGIN
+ RETURN SUBSTRING(x, 1, 3);
+END|
+
+delimiter ;|
+
+CALL p1('abcdef');
+
+SELECT f1('ABCDEF');
+
+#
+# Cleanup.
+#
+
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+
+###########################################################################
+#
+# Test case for BUG#13665: concat with '' produce incorrect results in SP.
+#
+###########################################################################
+
+--echo
+--echo ---------------------------------------------------------------
+--echo BUG#13665
+--echo ---------------------------------------------------------------
+--echo
+
+#
+# Prepare.
+#
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+#
+# Test case.
+#
+
+delimiter |;
+CREATE FUNCTION f1() RETURNS VARCHAR(20000)
+BEGIN
+ DECLARE var VARCHAR(2000);
+
+ SET var = '';
+ SET var = CONCAT(var, 'abc');
+ SET var = CONCAT(var, '');
+
+ RETURN var;
+END|
+delimiter ;|
+
+SELECT f1();
+
+#
+# Cleanup.
+#
+
+DROP FUNCTION f1;
+
+
+#
+# Bug#17226: Variable set in cursor on first iteration is assigned
+# second iterations value
+#
+# The problem was in incorrect handling of local variables of type
+# TEXT (BLOB).
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+delimiter |;
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE v_char VARCHAR(255);
+ DECLARE v_text TEXT DEFAULT '';
+
+ SET v_char = 'abc';
+
+ SET v_text = v_char;
+
+ SET v_char = 'def';
+
+ SET v_text = concat(v_text, '|', v_char);
+
+ SELECT v_text;
+END|
+delimiter ;|
+
+CALL p1();
+
+DROP PROCEDURE p1;
+
+#
+# Bug #27415 Text Variables in stored procedures
+# If the SP varible was also referenced on the right side
+# the result was corrupted.
+#
+DELIMITER |;
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug27415_text_test|
+DROP PROCEDURE IF EXISTS bug27415_text_test2|
+--enable_warnings
+
+CREATE PROCEDURE bug27415_text_test(entity_id_str_in text)
+BEGIN
+ DECLARE str_remainder text;
+
+ SET str_remainder = entity_id_str_in;
+
+ select 'before substr', str_remainder;
+ SET str_remainder = SUBSTRING(str_remainder, 3);
+ select 'after substr', str_remainder;
+END|
+
+CREATE PROCEDURE bug27415_text_test2(entity_id_str_in text)
+BEGIN
+ DECLARE str_remainder text;
+ DECLARE str_remainder2 text;
+
+ SET str_remainder2 = entity_id_str_in;
+ select 'before substr', str_remainder2;
+ SET str_remainder = SUBSTRING(str_remainder2, 3);
+ select 'after substr', str_remainder;
+END|
+
+CALL bug27415_text_test('a,b,c')|
+CALL bug27415_text_test('a,b,c')|
+CALL bug27415_text_test2('a,b,c')|
+CALL bug27415_text_test('a,b,c')|
+
+DROP PROCEDURE bug27415_text_test|
+DROP PROCEDURE bug27415_text_test2|
+
+DELIMITER ;|
+
+# End of 5.0 tests.
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
new file mode 100644
index 00000000000..785e7e3793c
--- /dev/null
+++ b/mysql-test/t/sp.test
@@ -0,0 +1,7705 @@
+#
+# Basic stored PROCEDURE tests
+#
+# Test cases for bugs are added at the end. See template there.
+#
+# Some tests that require --error go into sp-error.test
+# Tests that require inndb go into sp_trans.test
+# Tests that check privilege and security issues go to sp-security.test.
+# Tests that require multiple connections, except security/privilege tests,
+# go to sp-thread.
+# Tests that uses 'goto' to into sp-goto.test (currently disabled)
+# Tests that destroys system tables (e.g. mysql.proc) for error testing
+# go to sp-destruct.
+# Tests that require multibyte character sets, which are not always available,
+# go into separate files (e.g. sp-ucs2.test)
+
+use test;
+
+# Test tables
+#
+# t1 and t2 are reused throughout the file, and dropped at the end.
+# t3 and up are created and dropped when needed.
+#
+--disable_warnings
+drop table if exists t1,t2,t3,t4;
+drop view if exists v1;
+drop procedure if exists p1;
+drop procedure if exists p2;
+drop function if exists f1;
+drop function if exists f2;
+--enable_warnings
+create table t1 (
+ id char(16) not null default '',
+ data int not null
+);
+create table t2 (
+ s char(16),
+ i int,
+ d double
+);
+
+
+# Single statement, no params.
+--disable_warnings
+drop procedure if exists foo42;
+--enable_warnings
+create procedure foo42()
+ insert into test.t1 values ("foo", 42);
+
+call foo42();
+select * from t1;
+delete from t1;
+drop procedure foo42;
+
+
+# Single statement, two IN params.
+--disable_warnings
+drop procedure if exists bar;
+--enable_warnings
+create procedure bar(x char(16), y int)
+ insert into test.t1 values (x, y);
+
+call bar("bar", 666);
+select * from t1;
+delete from t1;
+# Don't drop procedure yet...
+
+
+# Now for multiple statements...
+delimiter |;
+
+# Empty statement
+--disable_warnings
+drop procedure if exists empty|
+--enable_warnings
+create procedure empty()
+begin
+end|
+
+call empty()|
+drop procedure empty|
+
+# Scope test. This is legal (warnings might be possible in the future,
+# but for the time being, we just accept it).
+--disable_warnings
+drop procedure if exists scope|
+--enable_warnings
+create procedure scope(a int, b float)
+begin
+ declare b int;
+ declare c float;
+
+ begin
+ declare c int;
+ end;
+end|
+
+drop procedure scope|
+
+# Two statements.
+--disable_warnings
+drop procedure if exists two|
+--enable_warnings
+create procedure two(x1 char(16), x2 char(16), y int)
+begin
+ insert into test.t1 values (x1, y);
+ insert into test.t1 values (x2, y);
+end|
+
+call two("one", "two", 3)|
+select * from t1|
+delete from t1|
+drop procedure two|
+
+
+# Simple test of local variables and SET.
+--disable_warnings
+drop procedure if exists locset|
+--enable_warnings
+create procedure locset(x char(16), y int)
+begin
+ declare z1, z2 int;
+ set z1 = y;
+ set z2 = z1+2;
+ insert into test.t1 values (x, z2);
+end|
+
+call locset("locset", 19)|
+select * from t1|
+delete from t1|
+drop procedure locset|
+
+
+# In some contexts local variables are not recognized
+# (and in some, you have to qualify the identifier).
+--disable_warnings
+drop procedure if exists setcontext|
+--enable_warnings
+create procedure setcontext()
+begin
+ declare data int default 2;
+
+ insert into t1 (id, data) values ("foo", 1);
+ replace t1 set data = data, id = "bar";
+ update t1 set id = "kaka", data = 3 where t1.data = data;
+end|
+
+call setcontext()|
+select * from t1|
+delete from t1|
+drop procedure setcontext|
+
+
+# Set things to null
+create table t3 ( d date, i int, f double, s varchar(32) )|
+
+--disable_warnings
+drop procedure if exists nullset|
+--enable_warnings
+create procedure nullset()
+begin
+ declare ld date;
+ declare li int;
+ declare lf double;
+ declare ls varchar(32);
+
+ set ld = null, li = null, lf = null, ls = null;
+ insert into t3 values (ld, li, lf, ls);
+
+ insert into t3 (i, f, s) values ((ld is null), 1, "ld is null"),
+ ((li is null), 1, "li is null"),
+ ((li = 0), null, "li = 0"),
+ ((lf is null), 1, "lf is null"),
+ ((lf = 0), null, "lf = 0"),
+ ((ls is null), 1, "ls is null");
+end|
+
+call nullset()|
+select * from t3|
+drop table t3|
+drop procedure nullset|
+
+
+# The peculiar (non-standard) mixture of variables types in SET.
+--disable_warnings
+drop procedure if exists mixset|
+--enable_warnings
+create procedure mixset(x char(16), y int)
+begin
+ declare z int;
+
+ set @z = y, z = 666, max_join_size = 100;
+ insert into test.t1 values (x, z);
+end|
+
+call mixset("mixset", 19)|
+show variables like 'max_join_size'|
+select id,data,@z from t1|
+delete from t1|
+drop procedure mixset|
+
+
+# Multiple CALL statements, one with OUT parameter.
+--disable_warnings
+drop procedure if exists zip|
+--enable_warnings
+create procedure zip(x char(16), y int)
+begin
+ declare z int;
+ call zap(y, z);
+ call bar(x, z);
+end|
+
+# SET local variables and OUT parameter.
+--disable_warnings
+drop procedure if exists zap|
+--enable_warnings
+create procedure zap(x int, out y int)
+begin
+ declare z int;
+ set z = x+1, y = z;
+end|
+
+call zip("zip", 99)|
+select * from t1|
+delete from t1|
+drop procedure zip|
+drop procedure bar|
+
+# Top-level OUT parameter
+call zap(7, @zap)|
+select @zap|
+
+drop procedure zap|
+
+
+# "Deep" calls...
+--disable_warnings
+drop procedure if exists c1|
+--enable_warnings
+create procedure c1(x int)
+ call c2("c", x)|
+--disable_warnings
+drop procedure if exists c2|
+--enable_warnings
+create procedure c2(s char(16), x int)
+ call c3(x, s)|
+--disable_warnings
+drop procedure if exists c3|
+--enable_warnings
+create procedure c3(x int, s char(16))
+ call c4("level", x, s)|
+--disable_warnings
+drop procedure if exists c4|
+--enable_warnings
+create procedure c4(l char(8), x int, s char(16))
+ insert into t1 values (concat(l,s), x)|
+
+call c1(42)|
+select * from t1|
+delete from t1|
+drop procedure c1|
+drop procedure c2|
+drop procedure c3|
+drop procedure c4|
+
+# INOUT test
+--disable_warnings
+drop procedure if exists iotest|
+--enable_warnings
+create procedure iotest(x1 char(16), x2 char(16), y int)
+begin
+ call inc2(x2, y);
+ insert into test.t1 values (x1, y);
+end|
+
+--disable_warnings
+drop procedure if exists inc2|
+--enable_warnings
+create procedure inc2(x char(16), y int)
+begin
+ call inc(y);
+ insert into test.t1 values (x, y);
+end|
+
+--disable_warnings
+drop procedure if exists inc|
+--enable_warnings
+create procedure inc(inout io int)
+ set io = io + 1|
+
+call iotest("io1", "io2", 1)|
+select * from t1|
+delete from t1|
+drop procedure iotest|
+drop procedure inc2|
+
+# Propagating top-level @-vars
+--disable_warnings
+drop procedure if exists incr|
+--enable_warnings
+create procedure incr(inout x int)
+ call inc(x)|
+
+# Before
+select @zap|
+call incr(@zap)|
+# After
+select @zap|
+
+drop procedure inc|
+drop procedure incr|
+
+# Call-by-value test
+# The expected result is:
+# ("cbv2", 4)
+# ("cbv1", 4711)
+--disable_warnings
+drop procedure if exists cbv1|
+--enable_warnings
+create procedure cbv1()
+begin
+ declare y int default 3;
+
+ call cbv2(y+1, y);
+ insert into test.t1 values ("cbv1", y);
+end|
+
+--disable_warnings
+drop procedure if exists cbv2|
+--enable_warnings
+create procedure cbv2(y1 int, inout y2 int)
+begin
+ set y2 = 4711;
+ insert into test.t1 values ("cbv2", y1);
+end|
+
+call cbv1()|
+select * from t1|
+delete from t1|
+drop procedure cbv1|
+drop procedure cbv2|
+
+
+# Subselect arguments
+
+insert into t2 values ("a", 1, 1.1), ("b", 2, 1.2), ("c", 3, 1.3)|
+
+--disable_warnings
+drop procedure if exists sub1|
+--enable_warnings
+create procedure sub1(id char(16), x int)
+ insert into test.t1 values (id, x)|
+
+--disable_warnings
+drop procedure if exists sub2|
+--enable_warnings
+create procedure sub2(id char(16))
+begin
+ declare x int;
+ set x = (select sum(t.i) from test.t2 t);
+ insert into test.t1 values (id, x);
+end|
+
+--disable_warnings
+drop procedure if exists sub3|
+--enable_warnings
+create function sub3(i int) returns int
+ return i+1|
+
+call sub1("sub1a", (select 7))|
+call sub1("sub1b", (select max(i) from t2))|
+--error ER_OPERAND_COLUMNS
+call sub1("sub1c", (select i,d from t2 limit 1))|
+call sub1("sub1d", (select 1 from (select 1) a))|
+call sub2("sub2")|
+select * from t1|
+select sub3((select max(i) from t2))|
+drop procedure sub1|
+drop procedure sub2|
+drop function sub3|
+delete from t1|
+delete from t2|
+
+# Basic tests of the flow control constructs
+
+# Just test on 'x'...
+--disable_warnings
+drop procedure if exists a0|
+--enable_warnings
+create procedure a0(x int)
+while x do
+ set x = x-1;
+ insert into test.t1 values ("a0", x);
+end while|
+
+call a0(3)|
+select * from t1|
+delete from t1|
+drop procedure a0|
+
+
+# The same, but with a more traditional test.
+--disable_warnings
+drop procedure if exists a|
+--enable_warnings
+create procedure a(x int)
+while x > 0 do
+ set x = x-1;
+ insert into test.t1 values ("a", x);
+end while|
+
+call a(3)|
+select * from t1|
+delete from t1|
+drop procedure a|
+
+
+# REPEAT
+--disable_warnings
+drop procedure if exists b|
+--enable_warnings
+create procedure b(x int)
+repeat
+ insert into test.t1 values (repeat("b",3), x);
+ set x = x-1;
+until x = 0 end repeat|
+
+call b(3)|
+select * from t1|
+delete from t1|
+drop procedure b|
+
+
+# Check that repeat isn't parsed the wrong way
+--disable_warnings
+drop procedure if exists b2|
+--enable_warnings
+create procedure b2(x int)
+repeat(select 1 into outfile 'b2');
+ insert into test.t1 values (repeat("b2",3), x);
+ set x = x-1;
+until x = 0 end repeat|
+
+# We don't actually want to call it.
+drop procedure b2|
+
+
+# Labelled WHILE with ITERATE (pointless really)
+--disable_warnings
+drop procedure if exists c|
+--enable_warnings
+create procedure c(x int)
+hmm: while x > 0 do
+ insert into test.t1 values ("c", x);
+ set x = x-1;
+ iterate hmm;
+ insert into test.t1 values ("x", x);
+end while hmm|
+
+call c(3)|
+select * from t1|
+delete from t1|
+drop procedure c|
+
+
+# Labelled WHILE with LEAVE
+--disable_warnings
+drop procedure if exists d|
+--enable_warnings
+create procedure d(x int)
+hmm: while x > 0 do
+ insert into test.t1 values ("d", x);
+ set x = x-1;
+ leave hmm;
+ insert into test.t1 values ("x", x);
+end while|
+
+call d(3)|
+select * from t1|
+delete from t1|
+drop procedure d|
+
+
+# LOOP, with simple IF statement
+--disable_warnings
+drop procedure if exists e|
+--enable_warnings
+create procedure e(x int)
+foo: loop
+ if x = 0 then
+ leave foo;
+ end if;
+ insert into test.t1 values ("e", x);
+ set x = x-1;
+end loop foo|
+
+call e(3)|
+select * from t1|
+delete from t1|
+drop procedure e|
+
+
+# A full IF statement
+--disable_warnings
+drop procedure if exists f|
+--enable_warnings
+create procedure f(x int)
+if x < 0 then
+ insert into test.t1 values ("f", 0);
+elseif x = 0 then
+ insert into test.t1 values ("f", 1);
+else
+ insert into test.t1 values ("f", 2);
+end if|
+
+call f(-2)|
+call f(0)|
+call f(4)|
+select * from t1|
+delete from t1|
+drop procedure f|
+
+
+# This form of CASE is really just syntactic sugar for IF-ELSEIF-...
+--disable_warnings
+drop procedure if exists g|
+--enable_warnings
+create procedure g(x int)
+case
+when x < 0 then
+ insert into test.t1 values ("g", 0);
+when x = 0 then
+ insert into test.t1 values ("g", 1);
+else
+ insert into test.t1 values ("g", 2);
+end case|
+
+call g(-42)|
+call g(0)|
+call g(1)|
+select * from t1|
+delete from t1|
+drop procedure g|
+
+
+# The "simple CASE"
+--disable_warnings
+drop procedure if exists h|
+--enable_warnings
+create procedure h(x int)
+case x
+when 0 then
+ insert into test.t1 values ("h0", x);
+when 1 then
+ insert into test.t1 values ("h1", x);
+else
+ insert into test.t1 values ("h?", x);
+end case|
+
+call h(0)|
+call h(1)|
+call h(17)|
+select * from t1|
+delete from t1|
+drop procedure h|
+
+
+# It's actually possible to LEAVE a BEGIN-END block
+--disable_warnings
+drop procedure if exists i|
+--enable_warnings
+create procedure i(x int)
+foo:
+begin
+ if x = 0 then
+ leave foo;
+ end if;
+ insert into test.t1 values ("i", x);
+end foo|
+
+call i(0)|
+call i(3)|
+select * from t1|
+delete from t1|
+drop procedure i|
+
+
+# SELECT with one of more result set sent back to the clinet
+insert into t1 values ("foo", 3), ("bar", 19)|
+insert into t2 values ("x", 9, 4.1), ("y", -1, 19.2), ("z", 3, 2.2)|
+
+--disable_warnings
+drop procedure if exists sel1|
+--enable_warnings
+create procedure sel1()
+begin
+ select * from t1;
+end|
+
+call sel1()|
+drop procedure sel1|
+
+--disable_warnings
+drop procedure if exists sel2|
+--enable_warnings
+create procedure sel2()
+begin
+ select * from t1;
+ select * from t2;
+end|
+
+call sel2()|
+drop procedure sel2|
+delete from t1|
+delete from t2|
+
+# SELECT INTO local variables
+--disable_warnings
+drop procedure if exists into_test|
+--enable_warnings
+create procedure into_test(x char(16), y int)
+begin
+ insert into test.t1 values (x, y);
+ select id,data into x,y from test.t1 limit 1;
+ insert into test.t1 values (concat(x, "2"), y+2);
+end|
+
+call into_test("into", 100)|
+select * from t1|
+delete from t1|
+drop procedure into_test|
+
+
+# SELECT INTO with a mix of local and global variables
+--disable_warnings
+drop procedure if exists into_tes2|
+--enable_warnings
+create procedure into_test2(x char(16), y int)
+begin
+ insert into test.t1 values (x, y);
+ select id,data into x,@z from test.t1 limit 1;
+ insert into test.t1 values (concat(x, "2"), y+2);
+end|
+
+call into_test2("into", 100)|
+select id,data,@z from t1|
+delete from t1|
+drop procedure into_test2|
+
+
+# SELECT * INTO ... (bug test)
+--disable_warnings
+drop procedure if exists into_test3|
+--enable_warnings
+create procedure into_test3()
+begin
+ declare x char(16);
+ declare y int;
+
+ select * into x,y from test.t1 limit 1;
+ insert into test.t2 values (x, y, 0.0);
+end|
+
+insert into t1 values ("into3", 19)|
+# Two call needed for bug test
+call into_test3()|
+call into_test3()|
+select * from t2|
+delete from t1|
+delete from t2|
+drop procedure into_test3|
+
+
+# SELECT INTO with no data is a warning ("no data", which we will
+# not see normally). When not caught, execution proceeds.
+--disable_warnings
+drop procedure if exists into_test4|
+--enable_warnings
+create procedure into_test4()
+begin
+ declare x int;
+
+ select data into x from test.t1 limit 1;
+ insert into test.t3 values ("into4", x);
+end|
+
+delete from t1|
+create table t3 ( s char(16), d int)|
+call into_test4()|
+select * from t3|
+insert into t1 values ("i4", 77)|
+call into_test4()|
+select * from t3|
+delete from t1|
+drop table t3|
+drop procedure into_test4|
+
+
+# These two (and the two procedures above) caused an assert() to fail in
+# sql_base.cc:lock_tables() at some point.
+--disable_warnings
+drop procedure if exists into_outfile|
+--enable_warnings
+--replace_result $MYSQLTEST_VARDIR ..
+eval create procedure into_outfile(x char(16), y int)
+begin
+ insert into test.t1 values (x, y);
+ select * into outfile "$MYSQLTEST_VARDIR/tmp/spout" from test.t1;
+ insert into test.t1 values (concat(x, "2"), y+2);
+end|
+
+# Check that file does not exists
+--error 1
+--file_exists $MYSQLTEST_VARDIR/tmp/spout
+call into_outfile("ofile", 1)|
+--remove_file $MYSQLTEST_VARDIR/tmp/spout
+delete from t1|
+drop procedure into_outfile|
+
+--disable_warnings
+drop procedure if exists into_dumpfile|
+--enable_warnings
+--replace_result $MYSQLTEST_VARDIR ..
+eval create procedure into_dumpfile(x char(16), y int)
+begin
+ insert into test.t1 values (x, y);
+ select * into dumpfile "$MYSQLTEST_VARDIR/tmp/spdump" from test.t1 limit 1;
+ insert into test.t1 values (concat(x, "2"), y+2);
+end|
+
+# Check that file does not exists
+--error 1
+--file_exists $MYSQLTEST_VARDIR/tmp/spdump
+call into_dumpfile("dfile", 1)|
+--remove_file $MYSQLTEST_VARDIR/tmp/spdump
+delete from t1|
+drop procedure into_dumpfile|
+
+--disable_warnings
+drop procedure if exists create_select|
+--enable_warnings
+create procedure create_select(x char(16), y int)
+begin
+ insert into test.t1 values (x, y);
+ create temporary table test.t3 select * from test.t1;
+ insert into test.t3 values (concat(x, "2"), y+2);
+end|
+
+call create_select("cs", 90)|
+select * from t1, t3|
+drop table t3|
+delete from t1|
+drop procedure create_select|
+
+
+# A minimal, constant FUNCTION.
+--disable_warnings
+drop function if exists e|
+--enable_warnings
+create function e() returns double
+ return 2.7182818284590452354|
+
+set @e = e()|
+select e(), @e|
+
+# A minimal function with one argument
+--disable_warnings
+drop function if exists inc|
+--enable_warnings
+create function inc(i int) returns int
+ return i+1|
+
+select inc(1), inc(99), inc(-71)|
+
+# A minimal function with two arguments
+--disable_warnings
+drop function if exists mul|
+--enable_warnings
+create function mul(x int, y int) returns int
+ return x*y|
+
+select mul(1,1), mul(3,5), mul(4711, 666)|
+
+# A minimal string function
+--disable_warnings
+drop function if exists append|
+--enable_warnings
+create function append(s1 char(8), s2 char(8)) returns char(16)
+ return concat(s1, s2)|
+
+select append("foo", "bar")|
+
+# A function with flow control
+--disable_warnings
+drop function if exists fac|
+--enable_warnings
+create function fac(n int unsigned) returns bigint unsigned
+begin
+ declare f bigint unsigned default 1;
+
+ while n > 1 do
+ set f = f * n;
+ set n = n - 1;
+ end while;
+ return f;
+end|
+
+select fac(1), fac(2), fac(5), fac(10)|
+
+# Nested calls
+--disable_warnings
+drop function if exists fun|
+--enable_warnings
+create function fun(d double, i int, u int unsigned) returns double
+ return mul(inc(i), fac(u)) / e()|
+
+select fun(2.3, 3, 5)|
+
+
+# Various function calls in differen statements
+
+insert into t2 values (append("xxx", "yyy"), mul(4,3), e())|
+insert into t2 values (append("a", "b"), mul(2,mul(3,4)), fun(1.7, 4, 6))|
+
+# Disable PS because double's give a bit different values
+--disable_ps_protocol
+select * from t2 where s = append("a", "b")|
+select * from t2 where i = mul(4,3) or i = mul(mul(3,4),2)|
+select * from t2 where d = e()|
+select * from t2|
+--enable_ps_protocol
+delete from t2|
+
+drop function e|
+drop function inc|
+drop function mul|
+drop function append|
+drop function fun|
+
+
+#
+# CONDITIONs and HANDLERs
+#
+
+--disable_warnings
+drop procedure if exists hndlr1|
+--enable_warnings
+create procedure hndlr1(val int)
+begin
+ declare x int default 0;
+ declare foo condition for 1136;
+ declare bar condition for sqlstate '42S98'; # Just for testing syntax
+ declare zip condition for sqlstate value '42S99'; # Just for testing syntax
+ declare continue handler for foo set x = 1;
+
+ insert into test.t1 values ("hndlr1", val, 2); # Too many values
+ if (x) then
+ insert into test.t1 values ("hndlr1", val); # This instead then
+ end if;
+end|
+
+call hndlr1(42)|
+select * from t1|
+delete from t1|
+drop procedure hndlr1|
+
+--disable_warnings
+drop procedure if exists hndlr2|
+--enable_warnings
+create procedure hndlr2(val int)
+begin
+ declare x int default 0;
+
+ begin
+ declare exit handler for sqlstate '21S01' set x = 1;
+
+ insert into test.t1 values ("hndlr2", val, 2); # Too many values
+ end;
+
+ insert into test.t1 values ("hndlr2", x);
+end|
+
+call hndlr2(42)|
+select * from t1|
+delete from t1|
+drop procedure hndlr2|
+
+
+--disable_warnings
+drop procedure if exists hndlr3|
+--enable_warnings
+create procedure hndlr3(val int)
+begin
+ declare x int default 0;
+ declare continue handler for sqlexception # Any error
+ begin
+ declare z int;
+
+ set z = 2 * val;
+ set x = 1;
+ end;
+
+ if val < 10 then
+ begin
+ declare y int;
+
+ set y = val + 10;
+ insert into test.t1 values ("hndlr3", y, 2); # Too many values
+ if x then
+ insert into test.t1 values ("hndlr3", y);
+ end if;
+ end;
+ end if;
+end|
+
+call hndlr3(3)|
+select * from t1|
+delete from t1|
+drop procedure hndlr3|
+
+
+# Variables might be uninitialized when using handlers
+# (Otherwise the compiler can detect if a variable is not set, but
+# not in this case.)
+create table t3 ( id char(16), data int )|
+
+--disable_warnings
+drop procedure if exists hndlr4|
+--enable_warnings
+create procedure hndlr4()
+begin
+ declare x int default 0;
+ declare val int; # No default
+ declare continue handler for sqlstate '02000' set x=1;
+
+ select data into val from test.t3 where id='z' limit 1; # No hits
+
+ insert into test.t3 values ('z', val);
+end|
+
+call hndlr4()|
+select * from t3|
+drop table t3|
+drop procedure hndlr4|
+
+
+#
+# Cursors
+#
+--disable_warnings
+drop procedure if exists cur1|
+--enable_warnings
+create procedure cur1()
+begin
+ declare a char(16);
+ declare b int;
+ declare c double;
+ declare done int default 0;
+ declare c cursor for select * from test.t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+
+ open c;
+ repeat
+ fetch c into a, b, c;
+ if not done then
+ insert into test.t1 values (a, b+c);
+ end if;
+ until done end repeat;
+ close c;
+end|
+
+insert into t2 values ("foo", 42, -1.9), ("bar", 3, 12.1), ("zap", 666, -3.14)|
+call cur1()|
+select * from t1|
+drop procedure cur1|
+
+create table t3 ( s char(16), i int )|
+
+--disable_warnings
+drop procedure if exists cur2|
+--enable_warnings
+create procedure cur2()
+begin
+ declare done int default 0;
+ declare c1 cursor for select id,data from test.t1;
+ declare c2 cursor for select i from test.t2;
+ declare continue handler for sqlstate '02000' set done = 1;
+
+ open c1;
+ open c2;
+ repeat
+ begin
+ declare a char(16);
+ declare b,c int;
+
+ fetch from c1 into a, b;
+ fetch next from c2 into c;
+ if not done then
+ if b < c then
+ insert into test.t3 values (a, b);
+ else
+ insert into test.t3 values (a, c);
+ end if;
+ end if;
+ end;
+ until done end repeat;
+ close c1;
+ close c2;
+end|
+
+call cur2()|
+select * from t3|
+delete from t1|
+delete from t2|
+drop table t3|
+drop procedure cur2|
+
+
+# The few characteristics we parse
+--disable_warnings
+drop procedure if exists chistics|
+--enable_warnings
+create procedure chistics()
+ language sql
+ modifies sql data
+ not deterministic
+ sql security definer
+ comment 'Characteristics procedure test'
+ insert into t1 values ("chistics", 1)|
+
+show create procedure chistics|
+# Call it, just to make sure.
+call chistics()|
+select * from t1|
+delete from t1|
+alter procedure chistics sql security invoker|
+show create procedure chistics|
+drop procedure chistics|
+
+--disable_warnings
+drop function if exists chistics|
+--enable_warnings
+create function chistics() returns int
+ language sql
+ deterministic
+ sql security invoker
+ comment 'Characteristics procedure test'
+ return 42|
+
+show create function chistics|
+# Call it, just to make sure.
+select chistics()|
+alter function chistics
+ no sql
+ comment 'Characteristics function test'|
+show create function chistics|
+drop function chistics|
+
+
+# Check mode settings
+insert into t1 values ("foo", 1), ("bar", 2), ("zip", 3)|
+
+set @@sql_mode = 'ANSI'|
+delimiter $|
+--disable_warnings
+drop procedure if exists modes$
+--enable_warnings
+create procedure modes(out c1 int, out c2 int)
+begin
+ declare done int default 0;
+ declare x int;
+ declare c cursor for select data from t1;
+ declare continue handler for sqlstate '02000' set done = 1;
+
+ select 1 || 2 into c1;
+ set c2 = 0;
+ open c;
+ repeat
+ fetch c into x;
+ if not done then
+ set c2 = c2 + 1;
+ end if;
+ until done end repeat;
+ close c;
+end$
+delimiter |$
+set @@sql_mode = ''|
+
+set sql_select_limit = 1|
+call modes(@c1, @c2)|
+set sql_select_limit = default|
+
+select @c1, @c2|
+delete from t1|
+drop procedure modes|
+
+
+# Check that dropping a database without routines works.
+# (Dropping with routines is tested in sp-security.test)
+# First an empty db.
+create database sp_db1|
+drop database sp_db1|
+
+# Again, with a table.
+create database sp_db2|
+use sp_db2|
+# Just put something in here...
+create table t3 ( s char(4), t int )|
+insert into t3 values ("abcd", 42), ("dcba", 666)|
+use test|
+drop database sp_db2|
+
+# And yet again, with just a procedure.
+create database sp_db3|
+use sp_db3|
+--disable_warnings
+drop procedure if exists dummy|
+--enable_warnings
+create procedure dummy(out x int)
+ set x = 42|
+use test|
+drop database sp_db3|
+# Check that it's gone
+select type,db,name from mysql.proc where db = 'sp_db3'|
+
+
+# ROW_COUNT() function after a CALL
+# We test the other cases here too, although it's not strictly SP specific
+--disable_warnings
+drop procedure if exists rc|
+--enable_warnings
+create procedure rc()
+begin
+ delete from t1;
+ insert into t1 values ("a", 1), ("b", 2), ("c", 3);
+end|
+
+call rc()|
+select row_count()|
+--disable_ps_protocol
+update t1 set data=42 where id = "b";
+select row_count()|
+--enable_ps_protocol
+delete from t1|
+select row_count()|
+delete from t1|
+select row_count()|
+select * from t1|
+select row_count()|
+drop procedure rc|
+
+
+#
+# Let us test how well new locking scheme works.
+#
+
+# Let us prepare playground
+--disable_warnings
+drop function if exists f0|
+drop function if exists f1|
+drop function if exists f2|
+drop function if exists f3|
+drop function if exists f4|
+drop function if exists f5|
+drop function if exists f6|
+drop function if exists f7|
+drop function if exists f8|
+drop function if exists f9|
+drop function if exists f10|
+drop function if exists f11|
+drop function if exists f12_1|
+drop function if exists f12_2|
+drop view if exists v0|
+drop view if exists v1|
+drop view if exists v2|
+--enable_warnings
+delete from t1|
+delete from t2|
+insert into t1 values ("a", 1), ("b", 2) |
+insert into t2 values ("a", 1, 1.0), ("b", 2, 2.0), ("c", 3, 3.0) |
+
+# Test the simplest function using tables
+create function f1() returns int
+ return (select sum(data) from t1)|
+select f1()|
+# This should work too (and give 2 rows as result)
+select id, f1() from t1|
+
+# Function which uses two instances of table simultaneously
+create function f2() returns int
+ return (select data from t1 where data <= (select sum(data) from t1) limit 1)|
+select f2()|
+select id, f2() from t1|
+
+# Function which uses the same table twice in different queries
+create function f3() returns int
+begin
+ declare n int;
+ declare m int;
+ set n:= (select min(data) from t1);
+ set m:= (select max(data) from t1);
+ return n < m;
+end|
+select f3()|
+select id, f3() from t1|
+
+# Calling two functions using same table
+select f1(), f3()|
+select id, f1(), f3() from t1|
+
+# Function which uses two different tables
+create function f4() returns double
+ return (select d from t1, t2 where t1.data = t2.i and t1.id= "b")|
+select f4()|
+select s, f4() from t2|
+
+# Recursive functions which due to this recursion require simultaneous
+# access to several instance of the same table won't work
+create function f5(i int) returns int
+begin
+ if i <= 0 then
+ return 0;
+ elseif i = 1 then
+ return (select count(*) from t1 where data = i);
+ else
+ return (select count(*) + f5( i - 1) from t1 where data = i);
+ end if;
+end|
+select f5(1)|
+# Since currently recursive functions are disallowed ER_SP_NO_RECURSION
+# error will be returned, once we will allow them error about
+# insufficient number of locked tables will be returned instead.
+--error ER_SP_NO_RECURSION
+select f5(2)|
+--error ER_SP_NO_RECURSION
+select f5(3)|
+
+# OTOH this should work
+create function f6() returns int
+begin
+ declare n int;
+ set n:= f1();
+ return (select count(*) from t1 where data <= f7() and data <= n);
+end|
+create function f7() returns int
+ return (select sum(data) from t1 where data <= f1())|
+select f6()|
+select id, f6() from t1|
+
+#
+# Let us test how new locking work with views
+#
+# The most trivial view
+create view v1 (a) as select f1()|
+select * from v1|
+select id, a from t1, v1|
+select * from v1, v1 as v|
+# A bit more complex construction
+create view v2 (a) as select a*10 from v1|
+select * from v2|
+select id, a from t1, v2|
+select * from v1, v2|
+
+# Nice example where the same view is used on
+# on different expression levels
+create function f8 () returns int
+ return (select count(*) from v2)|
+
+select *, f8() from v1|
+
+# Let us test what will happen if function is missing
+drop function f1|
+--error 1356
+select * from v1|
+
+# And what will happen if we have recursion which involves
+# views and functions ?
+create function f1() returns int
+ return (select sum(data) from t1) + (select sum(data) from v1)|
+--error ER_SP_NO_RECURSION
+select f1()|
+--error ER_SP_NO_RECURSION
+select * from v1|
+--error ER_SP_NO_RECURSION
+select * from v2|
+# Back to the normal cases
+drop function f1|
+create function f1() returns int
+ return (select sum(data) from t1)|
+
+# Let us also test some weird cases where no real tables is used
+create function f0() returns int
+ return (select * from (select 100) as r)|
+select f0()|
+select *, f0() from (select 1) as t|
+create view v0 as select f0()|
+select * from v0|
+select *, f0() from v0|
+
+#
+# Let us test how well prelocking works with explicit LOCK TABLES.
+#
+lock tables t1 read, t1 as t11 read|
+# These should work well
+select f3()|
+select id, f3() from t1 as t11|
+# Degenerate cases work too :)
+select f0()|
+select * from v0|
+select *, f0() from v0, (select 123) as d1|
+# But these should not !
+--error 1100
+select id, f3() from t1|
+--error 1100
+select f4()|
+unlock tables|
+
+# Let us test how LOCK TABLES which implicitly depends on functions
+# works
+lock tables v2 read, mysql.proc read|
+select * from v2|
+select * from v1|
+# These should not work as we have too little instances of tables locked
+--error 1100
+select * from v1, t1|
+--error 1100
+select f4()|
+unlock tables|
+
+# Tests for handling of temporary tables in functions.
+#
+# Unlike for permanent tables we should be able to create, use
+# and drop such tables in functions.
+#
+# Simplest function using temporary table. It is also test case for bug
+# #12198 "Temporary table aliasing does not work inside stored functions"
+create function f9() returns int
+begin
+ declare a, b int;
+ drop temporary table if exists t3;
+ create temporary table t3 (id int);
+ insert into t3 values (1), (2), (3);
+ set a:= (select count(*) from t3);
+ set b:= (select count(*) from t3 t3_alias);
+ return a + b;
+end|
+# This will emit warning as t3 was not existing before.
+select f9()|
+select f9() from t1 limit 1|
+
+# Function which uses both temporary and permanent tables.
+create function f10() returns int
+begin
+ drop temporary table if exists t3;
+ create temporary table t3 (id int);
+ insert into t3 select id from t4;
+ return (select count(*) from t3);
+end|
+# Check that we don't ignore completely tables used in function
+--error ER_NO_SUCH_TABLE
+select f10()|
+create table t4 as select 1 as id|
+select f10()|
+
+# Practical cases which we don't handle well (yet)
+#
+# Function which does not work because of well-known and documented
+# limitation of MySQL. We can't use the several instances of the
+# same temporary table in statement.
+create function f11() returns int
+begin
+ drop temporary table if exists t3;
+ create temporary table t3 (id int);
+ insert into t3 values (1), (2), (3);
+ return (select count(*) from t3 as a, t3 as b);
+end|
+--error ER_CANT_REOPEN_TABLE
+select f11()|
+--error ER_CANT_REOPEN_TABLE
+select f11() from t1|
+# Test that using a single table instance at a time works
+create function f12_1() returns int
+begin
+ drop temporary table if exists t3;
+ create temporary table t3 (id int);
+ insert into t3 values (1), (2), (3);
+ return f12_2();
+end|
+create function f12_2() returns int
+ return (select count(*) from t3)|
+
+drop temporary table t3|
+select f12_1()|
+select f12_1() from t1 limit 1|
+
+# Cleanup
+drop function f0|
+drop function f1|
+drop function f2|
+drop function f3|
+drop function f4|
+drop function f5|
+drop function f6|
+drop function f7|
+drop function f8|
+drop function f9|
+drop function f10|
+drop function f11|
+drop function f12_1|
+drop function f12_2|
+drop view v0|
+drop view v1|
+drop view v2|
+delete from t1 |
+delete from t2 |
+drop table t4|
+
+# End of non-bug tests
+
+
+#
+# Some "real" examples
+#
+
+# fac
+
+--disable_warnings
+drop table if exists t3|
+--enable_warnings
+create table t3 (n int unsigned not null primary key, f bigint unsigned)|
+
+--disable_warnings
+drop procedure if exists ifac|
+--enable_warnings
+create procedure ifac(n int unsigned)
+begin
+ declare i int unsigned default 1;
+
+ if n > 20 then
+ set n = 20; # bigint overflow otherwise
+ end if;
+ while i <= n do
+ begin
+ insert into test.t3 values (i, fac(i));
+ set i = i + 1;
+ end;
+ end while;
+end|
+
+call ifac(20)|
+select * from t3|
+drop table t3|
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show function status like '%f%'|
+drop procedure ifac|
+drop function fac|
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show function status like '%f%'|
+
+
+# primes
+
+--disable_warnings
+drop table if exists t3|
+--enable_warnings
+
+create table t3 (
+ i int unsigned not null primary key,
+ p bigint unsigned not null
+)|
+
+insert into t3 values
+ ( 0, 3), ( 1, 5), ( 2, 7), ( 3, 11), ( 4, 13),
+ ( 5, 17), ( 6, 19), ( 7, 23), ( 8, 29), ( 9, 31),
+ (10, 37), (11, 41), (12, 43), (13, 47), (14, 53),
+ (15, 59), (16, 61), (17, 67), (18, 71), (19, 73),
+ (20, 79), (21, 83), (22, 89), (23, 97), (24, 101),
+ (25, 103), (26, 107), (27, 109), (28, 113), (29, 127),
+ (30, 131), (31, 137), (32, 139), (33, 149), (34, 151),
+ (35, 157), (36, 163), (37, 167), (38, 173), (39, 179),
+ (40, 181), (41, 191), (42, 193), (43, 197), (44, 199)|
+
+--disable_warnings
+drop procedure if exists opp|
+--enable_warnings
+create procedure opp(n bigint unsigned, out pp bool)
+begin
+ declare r double;
+ declare b, s bigint unsigned default 0;
+
+ set r = sqrt(n);
+
+ again:
+ loop
+ if s = 45 then
+ set b = b+200, s = 0;
+ else
+ begin
+ declare p bigint unsigned;
+
+ select t.p into p from test.t3 t where t.i = s;
+ if b+p > r then
+ set pp = 1;
+ leave again;
+ end if;
+ if mod(n, b+p) = 0 then
+ set pp = 0;
+ leave again;
+ end if;
+ set s = s+1;
+ end;
+ end if;
+ end loop;
+end|
+
+--disable_warnings
+drop procedure if exists ip|
+--enable_warnings
+create procedure ip(m int unsigned)
+begin
+ declare p bigint unsigned;
+ declare i int unsigned;
+
+ set i=45, p=201;
+
+ while i < m do
+ begin
+ declare pp bool default 0;
+
+ call opp(p, pp);
+ if pp then
+ insert into test.t3 values (i, p);
+ set i = i+1;
+ end if;
+ set p = p+2;
+ end;
+ end while;
+end|
+show create procedure opp|
+--replace_column 4 'root@localhost' 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like '%p%'|
+
+# This isn't the fastest way in the world to compute prime numbers, so
+# don't be too ambitious. ;-)
+call ip(200)|
+# We don't want to select the entire table here, just pick a few
+# examples.
+# The expected result is:
+# i p
+# --- ----
+# 45 211
+# 100 557
+# 199 1229
+select * from t3 where i=45 or i=100 or i=199|
+drop table t3|
+drop procedure opp|
+drop procedure ip|
+--replace_column 4 'root@localhost' 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like '%p%'|
+
+
+# Fibonacci, for recursion test. (Yet Another Numerical series :)
+#
+--disable_warnings
+drop table if exists t3|
+--enable_warnings
+create table t3 ( f bigint unsigned not null )|
+
+# We deliberately do it the awkward way, fetching the last two
+# values from the table, in order to exercise various statements
+# and table accesses at each turn.
+--disable_warnings
+drop procedure if exists fib|
+--enable_warnings
+create procedure fib(n int unsigned)
+begin
+ if n > 1 then
+ begin
+ declare x, y bigint unsigned;
+ declare c cursor for select f from t3 order by f desc limit 2;
+
+ open c;
+ fetch c into y;
+ fetch c into x;
+ close c;
+ insert into t3 values (x+y);
+ call fib(n-1);
+ end;
+ end if;
+end|
+
+# Enable recursion
+set @@max_sp_recursion_depth= 20|
+
+# Minimum test: recursion of 3 levels
+
+insert into t3 values (0), (1)|
+
+call fib(3)|
+
+select * from t3 order by f asc|
+
+delete from t3|
+
+# The original test, 20 levels, ran into memory limits on some machines
+# and builds. Try 10 instead...
+
+insert into t3 values (0), (1)|
+
+call fib(10)|
+
+select * from t3 order by f asc|
+drop table t3|
+drop procedure fib|
+set @@max_sp_recursion_depth= 0|
+
+#
+# Comment & suid
+#
+
+--disable_warnings
+drop procedure if exists bar|
+--enable_warnings
+create procedure bar(x char(16), y int)
+ comment "111111111111" sql security invoker
+ insert into test.t1 values (x, y)|
+--replace_column 4 'root@localhost' 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like 'bar'|
+alter procedure bar comment "2222222222" sql security definer|
+alter procedure bar comment "3333333333"|
+alter procedure bar|
+show create procedure bar|
+--replace_column 4 'root@localhost' 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+show procedure status like 'bar'|
+drop procedure bar|
+
+#
+# rexecution
+#
+--disable_warnings
+drop procedure if exists p1|
+--enable_warnings
+create procedure p1 ()
+ select (select s1 from t3) from t3|
+
+create table t3 (s1 int)|
+
+call p1()|
+insert into t3 values (1)|
+call p1()|
+drop procedure p1|
+drop table t3|
+
+#
+# backticks
+#
+--disable_warnings
+drop function if exists foo|
+--enable_warnings
+create function `foo` () returns int
+ return 5|
+select `foo` ()|
+drop function `foo`|
+
+#
+# Implicit LOCK/UNLOCK TABLES for table access in functions
+#
+
+--disable_warnings
+drop function if exists t1max|
+--enable_warnings
+create function t1max() returns int
+begin
+ declare x int;
+ select max(data) into x from t1;
+ return x;
+end|
+
+insert into t1 values ("foo", 3), ("bar", 2), ("zip", 5), ("zap", 1)|
+select t1max()|
+drop function t1max|
+
+create table t3 (
+ v char(16) not null primary key,
+ c int unsigned not null
+)|
+
+create function getcount(s char(16)) returns int
+begin
+ declare x int;
+
+ select count(*) into x from t3 where v = s;
+ if x = 0 then
+ insert into t3 values (s, 1);
+ else
+ update t3 set c = c+1 where v = s;
+ end if;
+ return x;
+end|
+
+select * from t1 where data = getcount("bar")|
+select * from t3|
+select getcount("zip")|
+select getcount("zip")|
+select * from t3|
+select getcount(id) from t1 where data = 3|
+select getcount(id) from t1 where data = 5|
+select * from t3|
+drop table t3|
+drop function getcount|
+
+
+# Test cases for different combinations of condition handlers in nested
+# begin-end blocks in stored procedures.
+#
+# Note that the standard specifies that the most specific handler should
+# be triggered even if it's an outer handler masked by a less specific
+# handler in an inner block.
+# Note also that '02000' is more specific than NOT FOUND; there might be
+# other '02xxx' states, even if we currently do not issue them in any
+# situation (e.g. '02001').
+#
+# The combinations we test are these:
+#
+# Inner
+# errcode sqlstate not found sqlwarning sqlexception
+# Outer +------------+------------+------------+------------+------------+
+#errcode | h_ee (i) | h_es (o) | h_en (o) | h_ew (o) | h_ex (o) |
+#sqlstate | h_se (i) | h_ss (i) | h_sn (o) | h_sw (o) | h_sx (o) |
+#not found | h_ne (i) | h_ns (i) | h_nn (i) | | |
+#sqlwarning | h_we (i) | h_ws (i) | | h_ww (i) | |
+#sqlexception | h_xe (i) | h_xs (i) | | | h_xx (i) |
+# +------------+---------------------------------------------------+
+#
+# (i) means that the inner handler is the one that should be invoked,
+# (o) means that the outer handler should be invoked.
+#
+# ('not found', 'sqlwarning' and 'sqlexception' are mutually exclusive, hence
+# no tests for those combinations.)
+#
+
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists h_ee|
+drop procedure if exists h_es|
+drop procedure if exists h_en|
+drop procedure if exists h_ew|
+drop procedure if exists h_ex|
+drop procedure if exists h_se|
+drop procedure if exists h_ss|
+drop procedure if exists h_sn|
+drop procedure if exists h_sw|
+drop procedure if exists h_sx|
+drop procedure if exists h_ne|
+drop procedure if exists h_ns|
+drop procedure if exists h_nn|
+drop procedure if exists h_we|
+drop procedure if exists h_ws|
+drop procedure if exists h_ww|
+drop procedure if exists h_xe|
+drop procedure if exists h_xs|
+drop procedure if exists h_xx|
+--enable_warnings
+
+# smallint - to get out of range warnings
+# primary key - to get constraint errors
+create table t3 (a smallint primary key)|
+
+insert into t3 (a) values (1)|
+
+create procedure h_ee()
+ deterministic
+begin
+ declare continue handler for 1062 -- ER_DUP_ENTRY
+ select 'Outer (bad)' as 'h_ee';
+
+ begin
+ declare continue handler for 1062 -- ER_DUP_ENTRY
+ select 'Inner (good)' as 'h_ee';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_es()
+ deterministic
+begin
+ declare continue handler for 1062 -- ER_DUP_ENTRY
+ select 'Outer (good)' as 'h_es';
+
+ begin
+ -- integrity constraint violation
+ declare continue handler for sqlstate '23000'
+ select 'Inner (bad)' as 'h_es';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_en()
+ deterministic
+begin
+ declare continue handler for 1329 -- ER_SP_FETCH_NO_DATA
+ select 'Outer (good)' as 'h_en';
+
+ begin
+ declare x int;
+ declare continue handler for sqlstate '02000' -- no data
+ select 'Inner (bad)' as 'h_en';
+
+ select a into x from t3 where a = 42;
+ end;
+end|
+
+create procedure h_ew()
+ deterministic
+begin
+ declare continue handler for 1264 -- ER_WARN_DATA_OUT_OF_RANGE
+ select 'Outer (good)' as 'h_ew';
+
+ begin
+ declare continue handler for sqlwarning
+ select 'Inner (bad)' as 'h_ew';
+
+ insert into t3 values (123456789012);
+ end;
+ delete from t3;
+ insert into t3 values (1);
+end|
+
+create procedure h_ex()
+ deterministic
+begin
+ declare continue handler for 1062 -- ER_DUP_ENTRY
+ select 'Outer (good)' as 'h_ex';
+
+ begin
+ declare continue handler for sqlexception
+ select 'Inner (bad)' as 'h_ex';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_se()
+ deterministic
+begin
+ -- integrity constraint violation
+ declare continue handler for sqlstate '23000'
+ select 'Outer (bad)' as 'h_se';
+
+ begin
+ declare continue handler for 1062 -- ER_DUP_ENTRY
+ select 'Inner (good)' as 'h_se';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_ss()
+ deterministic
+begin
+ -- integrity constraint violation
+ declare continue handler for sqlstate '23000'
+ select 'Outer (bad)' as 'h_ss';
+
+ begin
+ -- integrity constraint violation
+ declare continue handler for sqlstate '23000'
+ select 'Inner (good)' as 'h_ss';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_sn()
+ deterministic
+begin
+ -- Note: '02000' is more specific than NOT FOUND ;
+ -- there might be other not found states
+ declare continue handler for sqlstate '02000' -- no data
+ select 'Outer (good)' as 'h_sn';
+
+ begin
+ declare x int;
+ declare continue handler for not found
+ select 'Inner (bad)' as 'h_sn';
+
+ select a into x from t3 where a = 42;
+ end;
+end|
+
+create procedure h_sw()
+ deterministic
+begin
+ -- data exception - numeric value out of range
+ declare continue handler for sqlstate '22003'
+ select 'Outer (good)' as 'h_sw';
+
+ begin
+ declare continue handler for sqlwarning
+ select 'Inner (bad)' as 'h_sw';
+
+ insert into t3 values (123456789012);
+ end;
+ delete from t3;
+ insert into t3 values (1);
+end|
+
+create procedure h_sx()
+ deterministic
+begin
+ -- integrity constraint violation
+ declare continue handler for sqlstate '23000'
+ select 'Outer (good)' as 'h_sx';
+
+ begin
+ declare continue handler for sqlexception
+ select 'Inner (bad)' as 'h_sx';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_ne()
+ deterministic
+begin
+ declare continue handler for not found
+ select 'Outer (bad)' as 'h_ne';
+
+ begin
+ declare x int;
+ declare continue handler for 1329 -- ER_SP_FETCH_NO_DATA
+ select 'Inner (good)' as 'h_ne';
+
+ select a into x from t3 where a = 42;
+ end;
+end|
+
+create procedure h_ns()
+ deterministic
+begin
+ declare continue handler for not found
+ select 'Outer (bad)' as 'h_ns';
+
+ begin
+ declare x int;
+ declare continue handler for sqlstate '02000' -- no data
+ select 'Inner (good)' as 'h_ns';
+
+ select a into x from t3 where a = 42;
+ end;
+end|
+
+create procedure h_nn()
+ deterministic
+begin
+ declare continue handler for not found
+ select 'Outer (bad)' as 'h_nn';
+
+ begin
+ declare x int;
+ declare continue handler for not found
+ select 'Inner (good)' as 'h_nn';
+
+ select a into x from t3 where a = 42;
+ end;
+end|
+
+create procedure h_we()
+ deterministic
+begin
+ declare continue handler for sqlwarning
+ select 'Outer (bad)' as 'h_we';
+
+ begin
+ declare continue handler for 1264 -- ER_WARN_DATA_OUT_OF_RANGE
+ select 'Inner (good)' as 'h_we';
+
+ insert into t3 values (123456789012);
+ end;
+ delete from t3;
+ insert into t3 values (1);
+end|
+
+create procedure h_ws()
+ deterministic
+begin
+ declare continue handler for sqlwarning
+ select 'Outer (bad)' as 'h_ws';
+
+ begin
+ -- data exception - numeric value out of range
+ declare continue handler for sqlstate '22003'
+ select 'Inner (good)' as 'h_ws';
+
+ insert into t3 values (123456789012);
+ end;
+ delete from t3;
+ insert into t3 values (1);
+end|
+
+create procedure h_ww()
+ deterministic
+begin
+ declare continue handler for sqlwarning
+ select 'Outer (bad)' as 'h_ww';
+
+ begin
+ declare continue handler for sqlwarning
+ select 'Inner (good)' as 'h_ww';
+
+ insert into t3 values (123456789012);
+ end;
+ delete from t3;
+ insert into t3 values (1);
+end|
+
+create procedure h_xe()
+ deterministic
+begin
+ declare continue handler for sqlexception
+ select 'Outer (bad)' as 'h_xe';
+
+ begin
+ declare continue handler for 1062 -- ER_DUP_ENTRY
+ select 'Inner (good)' as 'h_xe';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_xs()
+ deterministic
+begin
+ declare continue handler for sqlexception
+ select 'Outer (bad)' as 'h_xs';
+
+ begin
+ -- integrity constraint violation
+ declare continue handler for sqlstate '23000'
+ select 'Inner (good)' as 'h_xs';
+
+ insert into t3 values (1);
+ end;
+end|
+
+create procedure h_xx()
+ deterministic
+begin
+ declare continue handler for sqlexception
+ select 'Outer (bad)' as 'h_xx';
+
+ begin
+ declare continue handler for sqlexception
+ select 'Inner (good)' as 'h_xx';
+
+ insert into t3 values (1);
+ end;
+end|
+
+call h_ee()|
+call h_es()|
+call h_en()|
+call h_ew()|
+call h_ex()|
+call h_se()|
+call h_ss()|
+call h_sn()|
+call h_sw()|
+call h_sx()|
+call h_ne()|
+call h_ns()|
+call h_nn()|
+call h_we()|
+call h_ws()|
+call h_ww()|
+call h_xe()|
+call h_xs()|
+call h_xx()|
+
+drop table t3|
+drop procedure h_ee|
+drop procedure h_es|
+drop procedure h_en|
+drop procedure h_ew|
+drop procedure h_ex|
+drop procedure h_se|
+drop procedure h_ss|
+drop procedure h_sn|
+drop procedure h_sw|
+drop procedure h_sx|
+drop procedure h_ne|
+drop procedure h_ns|
+drop procedure h_nn|
+drop procedure h_we|
+drop procedure h_ws|
+drop procedure h_ww|
+drop procedure h_xe|
+drop procedure h_xs|
+drop procedure h_xx|
+
+
+#
+# Test cases for old bugs
+#
+
+#
+# BUG#822
+#
+--disable_warnings
+drop procedure if exists bug822|
+--enable_warnings
+create procedure bug822(a_id char(16), a_data int)
+begin
+ declare n int;
+ select count(*) into n from t1 where id = a_id and data = a_data;
+ if n = 0 then
+ insert into t1 (id, data) values (a_id, a_data);
+ end if;
+end|
+
+delete from t1|
+call bug822('foo', 42)|
+call bug822('foo', 42)|
+call bug822('bar', 666)|
+select * from t1|
+delete from t1|
+drop procedure bug822|
+
+#
+# BUG#1495
+#
+--disable_warnings
+drop procedure if exists bug1495|
+--enable_warnings
+create procedure bug1495()
+begin
+ declare x int;
+
+ select data into x from t1 order by id limit 1;
+ if x > 10 then
+ insert into t1 values ("less", x-10);
+ else
+ insert into t1 values ("more", x+10);
+ end if;
+end|
+
+insert into t1 values ('foo', 12)|
+call bug1495()|
+delete from t1 where id='foo'|
+insert into t1 values ('bar', 7)|
+call bug1495()|
+delete from t1 where id='bar'|
+select * from t1|
+delete from t1|
+drop procedure bug1495|
+
+#
+# BUG#1547
+#
+--disable_warnings
+drop procedure if exists bug1547|
+--enable_warnings
+create procedure bug1547(s char(16))
+begin
+ declare x int;
+
+ select data into x from t1 where s = id limit 1;
+ if x > 10 then
+ insert into t1 values ("less", x-10);
+ else
+ insert into t1 values ("more", x+10);
+ end if;
+end|
+
+insert into t1 values ("foo", 12), ("bar", 7)|
+call bug1547("foo")|
+call bug1547("bar")|
+select * from t1|
+delete from t1|
+drop procedure bug1547|
+
+#
+# BUG#1656
+#
+--disable_warnings
+drop table if exists t70|
+--enable_warnings
+create table t70 (s1 int,s2 int)|
+insert into t70 values (1,2)|
+
+--disable_warnings
+drop procedure if exists bug1656|
+--enable_warnings
+create procedure bug1656(out p1 int, out p2 int)
+ select * into p1, p1 from t70|
+
+call bug1656(@1, @2)|
+select @1, @2|
+drop table t70|
+drop procedure bug1656|
+
+#
+# BUG#1862
+#
+create table t3(a int)|
+
+--disable_warnings
+drop procedure if exists bug1862|
+--enable_warnings
+create procedure bug1862()
+begin
+ insert into t3 values(2);
+ flush tables;
+end|
+
+call bug1862()|
+# the second call caused a segmentation
+call bug1862()|
+select * from t3|
+drop table t3|
+drop procedure bug1862|
+
+#
+# BUG#1874
+#
+--disable_warnings
+drop procedure if exists bug1874|
+--enable_warnings
+create procedure bug1874()
+begin
+ declare x int;
+ declare y double;
+ select max(data) into x from t1;
+ insert into t2 values ("max", x, 0);
+ select min(data) into x from t1;
+ insert into t2 values ("min", x, 0);
+ select sum(data) into x from t1;
+ insert into t2 values ("sum", x, 0);
+ select avg(data) into y from t1;
+ insert into t2 values ("avg", 0, y);
+end|
+
+insert into t1 (data) values (3), (1), (5), (9), (4)|
+call bug1874()|
+select * from t2|
+delete from t1|
+delete from t2|
+drop procedure bug1874|
+
+#
+# BUG#2260
+#
+--disable_warnings
+drop procedure if exists bug2260|
+--enable_warnings
+create procedure bug2260()
+begin
+ declare v1 int;
+ declare c1 cursor for select data from t1;
+ declare continue handler for not found set @x2 = 1;
+
+ open c1;
+ fetch c1 into v1;
+ set @x2 = 2;
+ close c1;
+end|
+
+call bug2260()|
+select @x2|
+drop procedure bug2260|
+
+#
+# BUG#2267 "Lost connect if stored procedure has SHOW FUNCTION STATUS"
+#
+--disable_warnings
+drop procedure if exists bug2267_1|
+--enable_warnings
+create procedure bug2267_1()
+begin
+ show procedure status;
+end|
+
+--disable_warnings
+drop procedure if exists bug2267_2|
+--enable_warnings
+create procedure bug2267_2()
+begin
+ show function status;
+end|
+
+--disable_warnings
+drop procedure if exists bug2267_3|
+--enable_warnings
+create procedure bug2267_3()
+begin
+ show create procedure bug2267_1;
+end|
+
+--disable_warnings
+drop procedure if exists bug2267_4|
+drop function if exists bug2267_4|
+--enable_warnings
+create procedure bug2267_4()
+begin
+ show create function bug2267_4;
+end|
+create function bug2267_4() returns int return 100|
+
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+call bug2267_1()|
+--replace_column 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
+call bug2267_2()|
+call bug2267_3()|
+call bug2267_4()|
+
+drop procedure bug2267_1|
+drop procedure bug2267_2|
+drop procedure bug2267_3|
+drop procedure bug2267_4|
+drop function bug2267_4|
+
+#
+# BUG#2227
+#
+--disable_warnings
+drop procedure if exists bug2227|
+--enable_warnings
+create procedure bug2227(x int)
+begin
+ declare y float default 2.6;
+ declare z char(16) default "zzz";
+
+ select 1.3, x, y, 42, z;
+end|
+
+call bug2227(9)|
+drop procedure bug2227|
+
+#
+# BUG#2614 "Stored procedure with INSERT ... SELECT that does not
+# contain any tables crashes server"
+#
+--disable_warnings
+drop procedure if exists bug2614|
+--enable_warnings
+create procedure bug2614()
+begin
+ drop table if exists t3;
+ create table t3 (id int default '0' not null);
+ insert into t3 select 12;
+ insert into t3 select * from t3;
+end|
+
+--disable_warnings
+call bug2614()|
+--enable_warnings
+call bug2614()|
+drop table t3|
+drop procedure bug2614|
+
+#
+# BUG#2674
+#
+--disable_warnings
+drop function if exists bug2674|
+--enable_warnings
+create function bug2674() returns int
+ return @@sort_buffer_size|
+
+set @osbs = @@sort_buffer_size|
+set @@sort_buffer_size = 262000|
+select bug2674()|
+drop function bug2674|
+set @@sort_buffer_size = @osbs|
+
+#
+# BUG#3259
+#
+--disable_warnings
+drop procedure if exists bug3259_1 |
+--enable_warnings
+create procedure bug3259_1 () begin end|
+--disable_warnings
+drop procedure if exists BUG3259_2 |
+--enable_warnings
+create procedure BUG3259_2 () begin end|
+--disable_warnings
+drop procedure if exists Bug3259_3 |
+--enable_warnings
+create procedure Bug3259_3 () begin end|
+
+call BUG3259_1()|
+call BUG3259_1()|
+call bug3259_2()|
+call Bug3259_2()|
+call bug3259_3()|
+call bUG3259_3()|
+
+drop procedure bUg3259_1|
+drop procedure BuG3259_2|
+drop procedure BUG3259_3|
+
+#
+# BUG#2772
+#
+--disable_warnings
+drop function if exists bug2772|
+--enable_warnings
+create function bug2772() returns char(10) character set latin2
+ return 'a'|
+
+select bug2772()|
+drop function bug2772|
+
+#
+# BUG#2776
+#
+--disable_warnings
+drop procedure if exists bug2776_1|
+--enable_warnings
+create procedure bug2776_1(out x int)
+begin
+ declare v int;
+
+ set v = default;
+ set x = v;
+end|
+
+--disable_warnings
+drop procedure if exists bug2776_2|
+--enable_warnings
+create procedure bug2776_2(out x int)
+begin
+ declare v int default 42;
+
+ set v = default;
+ set x = v;
+end|
+
+set @x = 1|
+call bug2776_1(@x)|
+select @x|
+call bug2776_2(@x)|
+select @x|
+drop procedure bug2776_1|
+drop procedure bug2776_2|
+
+#
+# BUG#2780
+#
+create table t3 (s1 smallint)|
+
+insert into t3 values (123456789012)|
+
+--disable_warnings
+drop procedure if exists bug2780|
+--enable_warnings
+create procedure bug2780()
+begin
+ declare exit handler for sqlwarning set @x = 1;
+
+ set @x = 0;
+ insert into t3 values (123456789012);
+ insert into t3 values (0);
+end|
+
+call bug2780()|
+select @x|
+select * from t3|
+
+drop procedure bug2780|
+drop table t3|
+
+#
+# BUG#1863
+#
+create table t3 (content varchar(10) )|
+insert into t3 values ("test1")|
+insert into t3 values ("test2")|
+create table t4 (f1 int, rc int, t3 int)|
+
+--disable_warnings
+drop procedure if exists bug1863|
+--enable_warnings
+create procedure bug1863(in1 int)
+begin
+
+ declare ind int default 0;
+ declare t1 int;
+ declare t2 int;
+ declare t3 int;
+
+ declare rc int default 0;
+ declare continue handler for 1065 set rc = 1;
+
+ drop temporary table if exists temp_t1;
+ create temporary table temp_t1 (
+ f1 int auto_increment, f2 varchar(20), primary key (f1)
+ );
+
+ insert into temp_t1 (f2) select content from t3;
+
+ select f2 into t3 from temp_t1 where f1 = 10;
+
+ if (rc) then
+ insert into t4 values (1, rc, t3);
+ end if;
+
+ insert into t4 values (2, rc, t3);
+
+end|
+
+call bug1863(10)|
+call bug1863(10)|
+select * from t4|
+
+drop procedure bug1863|
+drop temporary table temp_t1;
+drop table t3, t4|
+
+#
+# BUG#2656
+#
+
+create table t3 (
+ OrderID int not null,
+ MarketID int,
+ primary key (OrderID)
+)|
+
+create table t4 (
+ MarketID int not null,
+ Market varchar(60),
+ Status char(1),
+ primary key (MarketID)
+)|
+
+insert t3 (OrderID,MarketID) values (1,1)|
+insert t3 (OrderID,MarketID) values (2,2)|
+insert t4 (MarketID,Market,Status) values (1,"MarketID One","A")|
+insert t4 (MarketID,Market,Status) values (2,"MarketID Two","A")|
+
+--disable_warnings
+drop procedure if exists bug2656_1|
+--enable_warnings
+create procedure bug2656_1()
+begin
+ select
+ m.Market
+ from t4 m JOIN t3 o
+ ON o.MarketID != 1 and o.MarketID = m.MarketID;
+end |
+
+--disable_warnings
+drop procedure if exists bug2656_2|
+--enable_warnings
+create procedure bug2656_2()
+begin
+ select
+ m.Market
+ from
+ t4 m, t3 o
+ where
+ m.MarketID != 1 and m.MarketID = o.MarketID;
+
+end |
+
+call bug2656_1()|
+call bug2656_1()|
+call bug2656_2()|
+call bug2656_2()|
+drop procedure bug2656_1|
+drop procedure bug2656_2|
+drop table t3, t4|
+
+
+#
+# BUG#3426
+#
+--disable_warnings
+drop procedure if exists bug3426|
+--enable_warnings
+create procedure bug3426(in_time int unsigned, out x int)
+begin
+ if in_time is null then
+ set @stamped_time=10;
+ set x=1;
+ else
+ set @stamped_time=in_time;
+ set x=2;
+ end if;
+end|
+
+call bug3426(1000, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+call bug3426(NULL, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+# Clear SP cache
+alter procedure bug3426 sql security invoker|
+call bug3426(NULL, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+call bug3426(1000, @i)|
+select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
+
+drop procedure bug3426|
+
+#
+# BUG#3734
+#
+create table t3 (
+ id int unsigned auto_increment not null primary key,
+ title VARCHAR(200),
+ body text,
+ fulltext (title,body)
+)|
+
+insert into t3 (title,body) values
+ ('MySQL Tutorial','DBMS stands for DataBase ...'),
+ ('How To Use MySQL Well','After you went through a ...'),
+ ('Optimizing MySQL','In this tutorial we will show ...'),
+ ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
+ ('MySQL vs. YourSQL','In the following database comparison ...'),
+ ('MySQL Security','When configured properly, MySQL ...')|
+
+--disable_warnings
+drop procedure if exists bug3734 |
+--enable_warnings
+create procedure bug3734 (param1 varchar(100))
+ select * from t3 where match (title,body) against (param1)|
+
+call bug3734('database')|
+call bug3734('Security')|
+
+drop procedure bug3734|
+drop table t3|
+
+#
+# BUG#3863
+#
+--disable_warnings
+drop procedure if exists bug3863|
+--enable_warnings
+create procedure bug3863()
+begin
+ set @a = 0;
+ while @a < 5 do
+ set @a = @a + 1;
+ end while;
+end|
+
+call bug3863()|
+select @a|
+call bug3863()|
+select @a|
+
+drop procedure bug3863|
+
+#
+# BUG#2460
+#
+
+create table t3 (
+ id int(10) unsigned not null default 0,
+ rid int(10) unsigned not null default 0,
+ msg text not null,
+ primary key (id),
+ unique key rid (rid, id)
+)|
+
+--disable_warnings
+drop procedure if exists bug2460_1|
+--enable_warnings
+create procedure bug2460_1(in v int)
+begin
+ ( select n0.id from t3 as n0 where n0.id = v )
+ union
+ ( select n0.id from t3 as n0, t3 as n1
+ where n0.id = n1.rid and n1.id = v )
+ union
+ ( select n0.id from t3 as n0, t3 as n1, t3 as n2
+ where n0.id = n1.rid and n1.id = n2.rid and n2.id = v );
+end|
+
+call bug2460_1(2)|
+call bug2460_1(2)|
+insert into t3 values (1, 1, 'foo'), (2, 1, 'bar'), (3, 1, 'zip zap')|
+call bug2460_1(2)|
+call bug2460_1(2)|
+
+--disable_warnings
+drop procedure if exists bug2460_2|
+--enable_warnings
+create procedure bug2460_2()
+begin
+ drop table if exists t3;
+ create temporary table t3 (s1 int);
+ insert into t3 select 1 union select 1;
+end|
+
+call bug2460_2()|
+call bug2460_2()|
+select * from t3|
+
+drop procedure bug2460_1|
+drop procedure bug2460_2|
+drop table t3|
+
+
+#
+# BUG#2564
+#
+set @@sql_mode = ''|
+--disable_warnings
+drop procedure if exists bug2564_1|
+--enable_warnings
+create procedure bug2564_1()
+ comment 'Joe''s procedure'
+ insert into `t1` values ("foo", 1)|
+
+set @@sql_mode = 'ANSI_QUOTES'|
+--disable_warnings
+drop procedure if exists bug2564_2|
+--enable_warnings
+create procedure bug2564_2()
+ insert into "t1" values ('foo', 1)|
+
+delimiter $|
+set @@sql_mode = ''$
+--disable_warnings
+drop function if exists bug2564_3$
+--enable_warnings
+create function bug2564_3(x int, y int) returns int
+ return x || y$
+
+set @@sql_mode = 'ANSI'$
+--disable_warnings
+drop function if exists bug2564_4$
+--enable_warnings
+create function bug2564_4(x int, y int) returns int
+ return x || y$
+delimiter |$
+
+set @@sql_mode = ''|
+show create procedure bug2564_1|
+show create procedure bug2564_2|
+show create function bug2564_3|
+show create function bug2564_4|
+
+drop procedure bug2564_1|
+drop procedure bug2564_2|
+drop function bug2564_3|
+drop function bug2564_4|
+
+#
+# BUG#3132
+#
+--disable_warnings
+drop function if exists bug3132|
+--enable_warnings
+create function bug3132(s char(20)) returns char(50)
+ return concat('Hello, ', s, '!')|
+
+select bug3132('Bob') union all select bug3132('Judy')|
+drop function bug3132|
+
+#
+# BUG#3843
+#
+--disable_warnings
+drop procedure if exists bug3843|
+--enable_warnings
+create procedure bug3843()
+ analyze table t1|
+
+# Testing for packets out of order
+call bug3843()|
+call bug3843()|
+select 1+2|
+
+drop procedure bug3843|
+
+#
+# BUG#3368
+#
+create table t3 ( s1 char(10) )|
+insert into t3 values ('a'), ('b')|
+
+--disable_warnings
+drop procedure if exists bug3368|
+--enable_warnings
+create procedure bug3368(v char(10))
+begin
+ select group_concat(v) from t3;
+end|
+
+call bug3368('x')|
+call bug3368('yz')|
+drop procedure bug3368|
+drop table t3|
+
+#
+# BUG#4579
+#
+create table t3 (f1 int, f2 int)|
+insert into t3 values (1,1)|
+
+--disable_warnings
+drop procedure if exists bug4579_1|
+--enable_warnings
+create procedure bug4579_1 ()
+begin
+ declare sf1 int;
+
+ select f1 into sf1 from t3 where f1=1 and f2=1;
+ update t3 set f2 = f2 + 1 where f1=1 and f2=1;
+ call bug4579_2();
+end|
+
+--disable_warnings
+drop procedure if exists bug4579_2|
+--enable_warnings
+create procedure bug4579_2 ()
+begin
+end|
+
+call bug4579_1()|
+call bug4579_1()|
+call bug4579_1()|
+
+drop procedure bug4579_1|
+drop procedure bug4579_2|
+drop table t3|
+
+#
+# BUG#2773: Function's data type ignored in stored procedures
+#
+--disable_warnings
+drop procedure if exists bug2773|
+--enable_warnings
+
+create function bug2773() returns int return null|
+create table t3 as select bug2773()|
+show create table t3|
+drop table t3|
+drop function bug2773|
+
+#
+# BUG#3788: Stored procedure packet error
+#
+--disable_warnings
+drop procedure if exists bug3788|
+--enable_warnings
+
+create function bug3788() returns date return cast("2005-03-04" as date)|
+select bug3788()|
+drop function bug3788|
+
+create function bug3788() returns binary(1) return 5|
+select bug3788()|
+drop function bug3788|
+
+
+#
+# BUG#4726
+#
+create table t3 (f1 int, f2 int, f3 int)|
+insert into t3 values (1,1,1)|
+
+--disable_warnings
+drop procedure if exists bug4726|
+--enable_warnings
+create procedure bug4726()
+begin
+ declare tmp_o_id INT;
+ declare tmp_d_id INT default 1;
+
+ while tmp_d_id <= 2 do
+ begin
+ select f1 into tmp_o_id from t3 where f2=1 and f3=1;
+ set tmp_d_id = tmp_d_id + 1;
+ end;
+ end while;
+end|
+
+call bug4726()|
+call bug4726()|
+call bug4726()|
+
+drop procedure bug4726|
+drop table t3|
+
+#
+# BUG#4318
+#
+
+--disable_parsing # Don't know if HANDLER commands can work with SPs, or at all..
+create table t3 (s1 int)|
+insert into t3 values (3), (4)|
+
+--disable_warnings
+drop procedure if exists bug4318|
+--enable_warnings
+create procedure bug4318()
+ handler t3 read next|
+
+handler t3 open|
+# Expect no results, as tables are closed, but there shouldn't be any errors
+call bug4318()|
+call bug4318()|
+handler t3 close|
+
+drop procedure bug4318|
+drop table t3|
+--enable_parsing
+
+#
+# BUG#4902: Stored procedure with SHOW WARNINGS leads to packet error
+#
+# Added tests for most other show commands we could find too.
+# (Skipping those already tested, and the ones depending on optional handlers.)
+#
+# Note: This will return a large number of results of different formats,
+# which makes it impossible to filter with --replace_column.
+# It's possible that some of these are not deterministic across
+# platforms. If so, just remove the offending command.
+#
+--disable_warnings
+drop procedure if exists bug4902|
+--enable_warnings
+create procedure bug4902()
+begin
+ show charset like 'foo';
+ show collation like 'foo';
+ show column types;
+ show create table t1;
+ show create database test;
+ show databases like 'foo';
+ show errors;
+ show columns from t1;
+ show keys from t1;
+ show open tables like 'foo';
+ show privileges;
+ show status like 'foo';
+ show tables like 'foo';
+ show variables like 'foo';
+ show warnings;
+end|
+--disable_parsing
+show binlog events|
+show storage engines|
+show master status|
+show slave hosts|
+show slave status|
+--enable_parsing
+
+call bug4902()|
+call bug4902()|
+
+drop procedure bug4902|
+
+#
+# BUG#4904
+#
+--disable_warnings
+drop procedure if exists bug4904|
+--enable_warnings
+create procedure bug4904()
+begin
+ declare continue handler for sqlstate 'HY000' begin end;
+
+ create table t2 as select * from t3;
+end|
+
+-- error 1146
+call bug4904()|
+
+drop procedure bug4904|
+
+create table t3 (s1 char character set latin1, s2 char character set latin2)|
+
+--disable_warnings
+drop procedure if exists bug4904|
+--enable_warnings
+create procedure bug4904 ()
+begin
+ declare continue handler for sqlstate 'HY000' begin end;
+
+ select s1 from t3 union select s2 from t3;
+end|
+
+call bug4904()|
+
+drop procedure bug4904|
+drop table t3|
+
+#
+# BUG#336
+#
+--disable_warnings
+drop procedure if exists bug336|
+--enable_warnings
+create procedure bug336(out y int)
+begin
+ declare x int;
+ set x = (select sum(t.data) from test.t1 t);
+ set y = x;
+end|
+
+insert into t1 values ("a", 2), ("b", 3)|
+call bug336(@y)|
+select @y|
+delete from t1|
+drop procedure bug336|
+
+#
+# BUG#3157
+#
+--disable_warnings
+drop procedure if exists bug3157|
+--enable_warnings
+create procedure bug3157()
+begin
+ if exists(select * from t1) then
+ set @n= @n + 1;
+ end if;
+ if (select count(*) from t1) then
+ set @n= @n + 1;
+ end if;
+end|
+
+set @n = 0|
+insert into t1 values ("a", 1)|
+call bug3157()|
+select @n|
+delete from t1|
+drop procedure bug3157|
+
+#
+# BUG#5251: mysql changes creation time of a procedure/function when altering
+#
+--disable_warnings
+drop procedure if exists bug5251|
+--enable_warnings
+create procedure bug5251()
+begin
+end|
+
+select created into @c1 from mysql.proc
+ where db='test' and name='bug5251'|
+--sleep 2
+alter procedure bug5251 comment 'foobar'|
+select count(*) from mysql.proc
+ where db='test' and name='bug5251' and created = @c1|
+
+drop procedure bug5251|
+
+#
+# BUG#5279: Stored procedure packets out of order if CHECKSUM TABLE
+#
+--disable_warnings
+drop procedure if exists bug5251|
+--enable_warnings
+create procedure bug5251()
+ checksum table t1|
+
+call bug5251()|
+call bug5251()|
+drop procedure bug5251|
+
+#
+# BUG#5287: Stored procedure crash if leave outside loop
+#
+--disable_warnings
+drop procedure if exists bug5287|
+--enable_warnings
+create procedure bug5287(param1 int)
+label1:
+ begin
+ declare c cursor for select 5;
+
+ loop
+ if param1 >= 0 then
+ leave label1;
+ end if;
+ end loop;
+end|
+call bug5287(1)|
+drop procedure bug5287|
+
+
+#
+# BUG#5307: Stored procedure allows statement after BEGIN ... END
+#
+--disable_warnings
+drop procedure if exists bug5307|
+--enable_warnings
+create procedure bug5307()
+begin
+end; set @x = 3|
+
+call bug5307()|
+select @x|
+drop procedure bug5307|
+
+#
+# BUG#5258: Stored procedure modified date is 0000-00-00
+# (This was a design flaw)
+--disable_warnings
+drop procedure if exists bug5258|
+--enable_warnings
+create procedure bug5258()
+begin
+end|
+
+--disable_warnings
+drop procedure if exists bug5258_aux|
+--enable_warnings
+create procedure bug5258_aux()
+begin
+ declare c, m char(19);
+
+ select created,modified into c,m from mysql.proc where name = 'bug5258';
+ if c = m then
+ select 'Ok';
+ else
+ select c, m;
+ end if;
+end|
+
+call bug5258_aux()|
+
+drop procedure bug5258|
+drop procedure bug5258_aux|
+
+#
+# BUG#4487: Stored procedure connection aborted if uninitialized char
+#
+--disable_warnings
+drop function if exists bug4487|
+--enable_warnings
+create function bug4487() returns char
+begin
+ declare v char;
+ return v;
+end|
+
+select bug4487()|
+drop function bug4487|
+
+
+#
+# BUG#4941: Stored procedure crash fetching null value into variable.
+#
+--disable_warnings
+drop procedure if exists bug4941|
+--enable_warnings
+--disable_warnings
+drop procedure if exists bug4941|
+--enable_warnings
+create procedure bug4941(out x int)
+begin
+ declare c cursor for select i from t2 limit 1;
+ open c;
+ fetch c into x;
+ close c;
+end|
+
+insert into t2 values (null, null, null)|
+set @x = 42|
+call bug4941(@x)|
+select @x|
+delete from t1|
+drop procedure bug4941|
+
+#
+# BUG#4905: Stored procedure doesn't clear for "Rows affected"
+#
+--disable_warnings
+drop procedure if exists bug4905|
+--enable_warnings
+
+create table t3 (s1 int,primary key (s1))|
+
+--disable_warnings
+drop procedure if exists bug4905|
+--enable_warnings
+create procedure bug4905()
+begin
+ declare v int;
+ declare continue handler for sqlstate '23000' set v = 5;
+
+ insert into t3 values (1);
+end|
+
+call bug4905()|
+select row_count()|
+call bug4905()|
+select row_count()|
+call bug4905()|
+select row_count()|
+select * from t3|
+
+drop procedure bug4905|
+drop table t3|
+
+#
+# BUG#6022: Stored procedure shutdown problem with self-calling function.
+#
+
+--disable_parsing # until we implement support for recursive stored functions.
+--disable_warnings
+drop function if exists bug6022|
+--enable_warnings
+
+--disable_warnings
+drop function if exists bug6022|
+--enable_warnings
+create function bug6022(x int) returns int
+begin
+ if x < 0 then
+ return 0;
+ else
+ return bug6022(x-1);
+ end if;
+end|
+
+select bug6022(5)|
+drop function bug6022|
+--enable_parsing
+
+#
+# BUG#6029: Stored procedure specific handlers should have priority
+#
+--disable_warnings
+drop procedure if exists bug6029|
+--enable_warnings
+
+--disable_warnings
+drop procedure if exists bug6029|
+--enable_warnings
+create procedure bug6029()
+begin
+ declare exit handler for 1136 select '1136';
+ declare exit handler for sqlstate '23000' select 'sqlstate 23000';
+ declare continue handler for sqlexception select 'sqlexception';
+
+ insert into t3 values (1);
+ insert into t3 values (1,2);
+end|
+
+create table t3 (s1 int, primary key (s1))|
+insert into t3 values (1)|
+call bug6029()|
+delete from t3|
+call bug6029()|
+
+drop procedure bug6029|
+drop table t3|
+
+#
+# BUG#8540: Local variable overrides an alias
+#
+--disable_warnings
+drop procedure if exists bug8540|
+--enable_warnings
+
+create procedure bug8540()
+begin
+ declare x int default 1;
+ select x as y, x+0 as z;
+end|
+
+call bug8540()|
+drop procedure bug8540|
+
+#
+# BUG#6642: Stored procedure crash if expression with set function
+#
+create table t3 (s1 int)|
+
+--disable_warnings
+drop procedure if exists bug6642|
+--enable_warnings
+
+create procedure bug6642()
+ select abs(count(s1)) from t3|
+
+call bug6642()|
+call bug6642()|
+drop procedure bug6642|
+
+#
+# BUG#7013: Stored procedure crash if group by ... with rollup
+#
+insert into t3 values (0),(1)|
+--disable_warnings
+drop procedure if exists bug7013|
+--enable_warnings
+create procedure bug7013()
+ select s1,count(s1) from t3 group by s1 with rollup|
+call bug7013()|
+call bug7013()|
+drop procedure bug7013|
+
+#
+# BUG#7743: 'Lost connection to MySQL server during query' on Stored Procedure
+#
+--disable_warnings
+drop table if exists t4|
+--enable_warnings
+create table t4 (
+ a mediumint(8) unsigned not null auto_increment,
+ b smallint(5) unsigned not null,
+ c char(32) not null,
+ primary key (a)
+) engine=myisam default charset=latin1|
+insert into t4 values (1, 2, 'oneword')|
+insert into t4 values (2, 2, 'anotherword')|
+
+--disable_warnings
+drop procedure if exists bug7743|
+--enable_warnings
+create procedure bug7743 ( searchstring char(28) )
+begin
+ declare var mediumint(8) unsigned;
+ select a into var from t4 where b = 2 and c = binary searchstring limit 1;
+ select var;
+end|
+
+call bug7743("oneword")|
+call bug7743("OneWord")|
+call bug7743("anotherword")|
+call bug7743("AnotherWord")|
+drop procedure bug7743|
+drop table t4|
+
+#
+# BUG#7992: SELECT .. INTO variable .. within Stored Procedure crashes
+# the server
+#
+delete from t3|
+insert into t3 values(1)|
+drop procedure if exists bug7992_1|
+drop procedure if exists bug7992_2|
+create procedure bug7992_1()
+begin
+ declare i int;
+ select max(s1)+1 into i from t3;
+end|
+create procedure bug7992_2()
+ insert into t3 (s1) select max(t4.s1)+1 from t3 as t4|
+
+call bug7992_1()|
+call bug7992_1()|
+call bug7992_2()|
+call bug7992_2()|
+
+drop procedure bug7992_1|
+drop procedure bug7992_2|
+drop table t3|
+
+#
+# BUG#8116: calling simple stored procedure twice in a row results
+# in server crash
+#
+create table t3 ( userid bigint(20) not null default 0 )|
+
+--disable_warnings
+drop procedure if exists bug8116|
+--enable_warnings
+create procedure bug8116(in _userid int)
+ select * from t3 where userid = _userid|
+
+call bug8116(42)|
+call bug8116(42)|
+drop procedure bug8116|
+drop table t3|
+
+#
+# BUG#6857: current_time() in STORED PROCEDURES
+#
+--disable_warnings
+drop procedure if exists bug6857|
+--enable_warnings
+create procedure bug6857(counter int)
+begin
+ declare t0, t1 int;
+ declare plus bool default 0;
+
+ set t0 = current_time();
+ while counter > 0 do
+ set counter = counter - 1;
+ end while;
+ set t1 = current_time();
+ if t1 > t0 then
+ set plus = 1;
+ end if;
+ select plus;
+end|
+
+# QQ: This is currently disabled. Not only does it slow down a normal test
+# run, it makes running with valgrind (or similar tools) extremely
+# painful.
+# Make sure this takes at least one second on all machines in all builds.
+# 30000 makes it about 3 seconds on an old 1.1GHz linux.
+#call bug6857(300000)|
+
+drop procedure bug6857|
+
+#
+# BUG#8757: Stored Procedures: Scope of Begin and End Statements do not
+# work properly.
+--disable_warnings
+drop procedure if exists bug8757|
+--enable_warnings
+create procedure bug8757()
+begin
+ declare x int;
+ declare c1 cursor for select data from t1 limit 1;
+
+ begin
+ declare y int;
+ declare c2 cursor for select i from t2 limit 1;
+
+ open c2;
+ fetch c2 into y;
+ close c2;
+ select 2,y;
+ end;
+ open c1;
+ fetch c1 into x;
+ close c1;
+ select 1,x;
+end|
+
+delete from t1|
+delete from t2|
+insert into t1 values ("x", 1)|
+insert into t2 values ("y", 2, 0.0)|
+
+call bug8757()|
+
+delete from t1|
+delete from t2|
+drop procedure bug8757|
+
+
+#
+# BUG#8762: Stored Procedures: Inconsistent behavior
+# of DROP PROCEDURE IF EXISTS statement.
+--disable_warnings
+drop procedure if exists bug8762|
+--enable_warnings
+# Doesn't exist
+drop procedure if exists bug8762; create procedure bug8762() begin end|
+# Does exist
+drop procedure if exists bug8762; create procedure bug8762() begin end|
+drop procedure bug8762|
+
+
+#
+# BUG#5240: Stored procedure crash if function has cursor declaration
+#
+--disable_warnings
+drop function if exists bug5240|
+--enable_warnings
+create function bug5240 () returns int
+begin
+ declare x int;
+ declare c cursor for select data from t1 limit 1;
+
+ open c;
+ fetch c into x;
+ close c;
+ return x;
+end|
+
+delete from t1|
+insert into t1 values ("answer", 42)|
+select id, bug5240() from t1|
+drop function bug5240|
+
+#
+# BUG#7992: rolling back temporary Item tree changes in SP
+#
+--disable_warnings
+drop procedure if exists p1|
+--enable_warnings
+create table t3(id int)|
+insert into t3 values(1)|
+create procedure bug7992()
+begin
+ declare i int;
+ select max(id)+1 into i from t3;
+end|
+
+call bug7992()|
+call bug7992()|
+drop procedure bug7992|
+drop table t3|
+delimiter ;|
+
+#
+# BUG#8849: problem with insert statement with table alias's
+#
+# Rolling back changes to AND/OR structure of ON and WHERE clauses in SP
+#
+
+delimiter |;
+create table t3 (
+ lpitnumber int(11) default null,
+ lrecordtype int(11) default null
+)|
+
+create table t4 (
+ lbsiid int(11) not null default '0',
+ ltradingmodeid int(11) not null default '0',
+ ltradingareaid int(11) not null default '0',
+ csellingprice decimal(19,4) default null,
+ primary key (lbsiid,ltradingmodeid,ltradingareaid)
+)|
+
+create table t5 (
+ lbsiid int(11) not null default '0',
+ ltradingareaid int(11) not null default '0',
+ primary key (lbsiid,ltradingareaid)
+)|
+
+--disable_warnings
+drop procedure if exists bug8849|
+--enable_warnings
+create procedure bug8849()
+begin
+ insert into t5
+ (
+ t5.lbsiid,
+ t5.ltradingareaid
+ )
+ select distinct t3.lpitnumber, t4.ltradingareaid
+ from
+ t4 join t3 on
+ t3.lpitnumber = t4.lbsiid
+ and t3.lrecordtype = 1
+ left join t4 as price01 on
+ price01.lbsiid = t4.lbsiid and
+ price01.ltradingmodeid = 1 and
+ t4.ltradingareaid = price01.ltradingareaid;
+end|
+
+call bug8849()|
+call bug8849()|
+call bug8849()|
+drop procedure bug8849|
+drop tables t3,t4,t5|
+
+#
+# BUG#8937: Stored Procedure: AVG() works as SUM() in SELECT ... INTO statement
+#
+--disable_warnings
+drop procedure if exists bug8937|
+--enable_warnings
+create procedure bug8937()
+begin
+ declare s,x,y,z int;
+ declare a float;
+
+ select sum(data),avg(data),min(data),max(data) into s,x,y,z from t1;
+ select s,x,y,z;
+ select avg(data) into a from t1;
+ select a;
+end|
+
+delete from t1|
+insert into t1 (data) values (1), (2), (3), (4), (6)|
+call bug8937()|
+
+drop procedure bug8937|
+delete from t1|
+
+
+#
+# BUG#6900: Stored procedure inner handler ignored
+# BUG#9074: STORED PROC: The scope of every handler declared is not
+# properly applied
+#
+--disable_warnings
+drop procedure if exists bug6900|
+drop procedure if exists bug9074|
+drop procedure if exists bug6900_9074|
+--enable_warnings
+
+create table t3 (w char unique, x char)|
+insert into t3 values ('a', 'b')|
+
+create procedure bug6900()
+begin
+ declare exit handler for sqlexception select '1';
+
+ begin
+ declare exit handler for sqlexception select '2';
+
+ insert into t3 values ('x', 'y', 'z');
+ end;
+end|
+
+create procedure bug9074()
+begin
+ declare x1, x2, x3, x4, x5, x6 int default 0;
+
+ begin
+ declare continue handler for sqlstate '23000' set x5 = 1;
+
+ insert into t3 values ('a', 'b');
+ set x6 = 1;
+ end;
+
+ begin1_label:
+ begin
+ declare continue handler for sqlstate '23000' set x1 = 1;
+
+ insert into t3 values ('a', 'b');
+ set x2 = 1;
+
+ begin2_label:
+ begin
+ declare exit handler for sqlstate '23000' set x3 = 1;
+
+ set x4= 1;
+ insert into t3 values ('a','b');
+ set x4= 0;
+ end begin2_label;
+ end begin1_label;
+
+ select x1, x2, x3, x4, x5, x6;
+end|
+
+create procedure bug6900_9074(z int)
+begin
+ declare exit handler for sqlstate '23000' select '23000';
+
+ begin
+ declare exit handler for sqlexception select 'sqlexception';
+
+ if z = 1 then
+ insert into t3 values ('a', 'b');
+ else
+ insert into t3 values ('x', 'y', 'z');
+ end if;
+ end;
+end|
+
+call bug6900()|
+call bug9074()|
+call bug6900_9074(0)|
+call bug6900_9074(1)|
+
+drop procedure bug6900|
+drop procedure bug9074|
+drop procedure bug6900_9074|
+drop table t3|
+
+
+#
+# BUG#7185: Stored procedure crash if identifier is AVG
+#
+--disable_warnings
+drop procedure if exists avg|
+--enable_warnings
+create procedure avg ()
+begin
+end|
+
+call avg ()|
+drop procedure avg|
+
+
+#
+# BUG#6129: Stored procedure won't display @@sql_mode value
+#
+--disable_warnings
+drop procedure if exists bug6129|
+--enable_warnings
+set @old_mode= @@sql_mode;
+set @@sql_mode= "ERROR_FOR_DIVISION_BY_ZERO";
+create procedure bug6129()
+ select @@sql_mode|
+call bug6129()|
+set @@sql_mode= "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO"|
+call bug6129()|
+set @@sql_mode= "NO_ZERO_IN_DATE"|
+call bug6129()|
+set @@sql_mode=@old_mode;
+
+drop procedure bug6129|
+
+
+#
+# BUG#9856: Stored procedures: crash if handler for sqlexception, not found
+#
+--disable_warnings
+drop procedure if exists bug9856|
+--enable_warnings
+create procedure bug9856()
+begin
+ declare v int;
+ declare c cursor for select data from t1;
+ declare exit handler for sqlexception, not found select '16';
+
+ open c;
+ fetch c into v;
+ select v;
+end|
+
+delete from t1|
+call bug9856()|
+call bug9856()|
+drop procedure bug9856|
+
+
+#
+# BUG##9674: Stored Procs: Using declared vars in algebric operation causes
+# system crash.
+#
+--disable_warnings
+drop procedure if exists bug9674_1|
+drop procedure if exists bug9674_2|
+--enable_warnings
+create procedure bug9674_1(out arg int)
+begin
+ declare temp_in1 int default 0;
+ declare temp_fl1 int default 0;
+
+ set temp_in1 = 100;
+ set temp_fl1 = temp_in1/10;
+ set arg = temp_fl1;
+end|
+
+create procedure bug9674_2()
+begin
+ declare v int default 100;
+
+ select v/10;
+end|
+
+call bug9674_1(@sptmp)|
+call bug9674_1(@sptmp)|
+select @sptmp|
+call bug9674_2()|
+call bug9674_2()|
+drop procedure bug9674_1|
+drop procedure bug9674_2|
+
+
+#
+# BUG#9598: stored procedure call within stored procedure overwrites IN variable
+#
+--disable_warnings
+drop procedure if exists bug9598_1|
+drop procedure if exists bug9598_2|
+--enable_warnings
+create procedure bug9598_1(in var_1 char(16),
+ out var_2 integer, out var_3 integer)
+begin
+ set var_2 = 50;
+ set var_3 = 60;
+end|
+
+create procedure bug9598_2(in v1 char(16),
+ in v2 integer,
+ in v3 integer,
+ in v4 integer,
+ in v5 integer)
+begin
+ select v1,v2,v3,v4,v5;
+ call bug9598_1(v1,@tmp1,@tmp2);
+ select v1,v2,v3,v4,v5;
+end|
+
+call bug9598_2('Test',2,3,4,5)|
+select @tmp1, @tmp2|
+
+drop procedure bug9598_1|
+drop procedure bug9598_2|
+
+
+#
+# BUG#9902: Crash with simple stored function using user defined variables
+#
+--disable_warnings
+drop procedure if exists bug9902|
+--enable_warnings
+create function bug9902() returns int(11)
+begin
+ set @x = @x + 1;
+ return @x;
+end|
+
+set @qcs1 = @@query_cache_size|
+set global query_cache_size = 100000|
+set @x = 1|
+insert into t1 values ("qc", 42)|
+select bug9902() from t1|
+select bug9902() from t1|
+select @x|
+
+set global query_cache_size = @qcs1|
+delete from t1|
+drop function bug9902|
+
+
+#
+# BUG#9102: Stored proccedures: function which returns blob causes crash
+#
+--disable_warnings
+drop function if exists bug9102|
+--enable_warnings
+create function bug9102() returns blob return 'a'|
+select bug9102()|
+drop function bug9102|
+
+
+#
+# BUG#7648: Stored procedure crash when invoking a function that returns a bit
+#
+--disable_warnings
+drop function if exists bug7648|
+--enable_warnings
+create function bug7648() returns bit(8) return 'a'|
+select bug7648()|
+drop function bug7648|
+
+
+#
+# BUG#9775: crash if create function that returns enum or set
+#
+--disable_warnings
+drop function if exists bug9775|
+--enable_warnings
+create function bug9775(v1 char(1)) returns enum('a','b') return v1|
+select bug9775('a'),bug9775('b'),bug9775('c')|
+drop function bug9775|
+create function bug9775(v1 int) returns enum('a','b') return v1|
+select bug9775(1),bug9775(2),bug9775(3)|
+drop function bug9775|
+
+create function bug9775(v1 char(1)) returns set('a','b') return v1|
+select bug9775('a'),bug9775('b'),bug9775('a,b'),bug9775('c')|
+drop function bug9775|
+create function bug9775(v1 int) returns set('a','b') return v1|
+select bug9775(1),bug9775(2),bug9775(3),bug9775(4)|
+drop function bug9775|
+
+
+#
+# BUG#8861: If Return is a YEAR data type, value is not shown in year format
+#
+--disable_warnings
+drop function if exists bug8861|
+--enable_warnings
+create function bug8861(v1 int) returns year return v1|
+select bug8861(05)|
+set @x = bug8861(05)|
+select @x|
+drop function bug8861|
+
+
+#
+# BUG#9004: Inconsistent behaviour of SP re. warnings
+#
+--disable_warnings
+drop procedure if exists bug9004_1|
+drop procedure if exists bug9004_2|
+--enable_warnings
+create procedure bug9004_1(x char(16))
+begin
+ insert into t1 values (x, 42);
+ insert into t1 values (x, 17);
+end|
+create procedure bug9004_2(x char(16))
+ call bug9004_1(x)|
+
+# Truncation warnings expected...
+call bug9004_1('12345678901234567')|
+call bug9004_2('12345678901234567890')|
+
+delete from t1|
+drop procedure bug9004_1|
+drop procedure bug9004_2|
+
+#
+# BUG#7293: Stored procedure crash with soundex
+#
+--disable_warnings
+drop procedure if exists bug7293|
+--enable_warnings
+insert into t1 values ('secret', 0)|
+create procedure bug7293(p1 varchar(100))
+begin
+ if exists (select id from t1 where soundex(p1)=soundex(id)) then
+ select 'yes';
+ end if;
+end;|
+call bug7293('secret')|
+call bug7293 ('secrete')|
+drop procedure bug7293|
+delete from t1|
+
+
+#
+# BUG#9841: Unexpected read lock when trying to update a view in a
+# stored procedure
+#
+--disable_warnings
+drop procedure if exists bug9841|
+drop view if exists v1|
+--enable_warnings
+
+create view v1 as select * from t1, t2 where id = s|
+create procedure bug9841 ()
+ update v1 set data = 10|
+call bug9841()|
+
+drop view v1|
+drop procedure bug9841|
+
+
+#
+# BUG#5963 subqueries in SET/IF
+#
+--disable_warnings
+drop procedure if exists bug5963|
+--enable_warnings
+
+create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
+create table t3 (s1 int)|
+insert into t3 values (5)|
+call bug5963_1()|
+call bug5963_1()|
+drop procedure bug5963_1|
+drop table t3|
+
+create procedure bug5963_2 (cfk_value int)
+begin
+ if cfk_value in (select cpk from t3) then
+ set @x = 5;
+ end if;
+ end;
+|
+create table t3 (cpk int)|
+insert into t3 values (1)|
+call bug5963_2(1)|
+call bug5963_2(1)|
+drop procedure bug5963_2|
+drop table t3|
+
+
+#
+# BUG#9559: Functions: Numeric Operations using -ve value gives incorrect
+# results.
+#
+--disable_warnings
+drop function if exists bug9559|
+--enable_warnings
+create function bug9559()
+ returns int
+begin
+ set @y = -6/2;
+ return @y;
+end|
+
+select bug9559()|
+
+drop function bug9559|
+
+
+#
+# BUG#10961: Stored procedures: crash if select * from dual
+#
+--disable_warnings
+drop procedure if exists bug10961|
+--enable_warnings
+# "select * from dual" results in an error, so the cursor will not open
+create procedure bug10961()
+begin
+ declare v char;
+ declare x int;
+ declare c cursor for select * from dual;
+ declare continue handler for sqlexception select x;
+
+ set x = 1;
+ open c;
+ set x = 2;
+ fetch c into v;
+ set x = 3;
+ close c;
+end|
+
+call bug10961()|
+call bug10961()|
+
+drop procedure bug10961|
+
+#
+# BUG #6866: Second call of a stored procedure using a view with on expressions
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug6866|
+--enable_warnings
+
+DROP VIEW IF EXISTS tv|
+DROP TABLE IF EXISTS tt1,tt2,tt3|
+
+CREATE TABLE tt1 (a1 int, a2 int, a3 int, data varchar(10))|
+CREATE TABLE tt2 (a2 int, data2 varchar(10))|
+CREATE TABLE tt3 (a3 int, data3 varchar(10))|
+
+INSERT INTO tt1 VALUES (1, 1, 4, 'xx')|
+
+INSERT INTO tt2 VALUES (1, 'a')|
+INSERT INTO tt2 VALUES (2, 'b')|
+INSERT INTO tt2 VALUES (3, 'c')|
+
+INSERT INTO tt3 VALUES (4, 'd')|
+INSERT INTO tt3 VALUES (5, 'e')|
+INSERT INTO tt3 VALUES (6, 'f')|
+
+CREATE VIEW tv AS
+SELECT tt1.*, tt2.data2, tt3.data3
+ FROM tt1 INNER JOIN tt2 ON tt1.a2 = tt2.a2
+ LEFT JOIN tt3 ON tt1.a3 = tt3.a3
+ ORDER BY tt1.a1, tt2.a2, tt3.a3|
+
+CREATE PROCEDURE bug6866 (_a1 int)
+BEGIN
+SELECT * FROM tv WHERE a1 = _a1;
+END|
+
+CALL bug6866(1)|
+CALL bug6866(1)|
+CALL bug6866(1)|
+
+DROP PROCEDURE bug6866;
+
+DROP VIEW tv|
+DROP TABLE tt1, tt2, tt3|
+
+#
+# BUG#10136: items cleunup
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug10136|
+--enable_warnings
+create table t3 ( name char(5) not null primary key, val float not null)|
+insert into t3 values ('aaaaa', 1), ('bbbbb', 2), ('ccccc', 3)|
+create procedure bug10136()
+begin
+ declare done int default 3;
+
+ repeat
+ select * from t3;
+ set done = done - 1;
+ until done <= 0 end repeat;
+
+end|
+call bug10136()|
+call bug10136()|
+call bug10136()|
+drop procedure bug10136|
+drop table t3|
+
+#
+# BUG#11529: crash server after use stored procedure
+#
+--disable_warnings
+drop procedure if exists bug11529|
+--enable_warnings
+create procedure bug11529()
+begin
+ declare c cursor for select id, data from t1 where data in (10,13);
+
+ open c;
+ begin
+ declare vid char(16);
+ declare vdata int;
+ declare exit handler for not found begin end;
+
+ while true do
+ fetch c into vid, vdata;
+ end while;
+ end;
+ close c;
+end|
+
+insert into t1 values
+ ('Name1', 10),
+ ('Name2', 11),
+ ('Name3', 12),
+ ('Name4', 13),
+ ('Name5', 14)|
+
+call bug11529()|
+call bug11529()|
+delete from t1|
+drop procedure bug11529|
+
+
+#
+# BUG#6063: Stored procedure labels are subject to restrictions (partial)
+# BUG#7088: Stored procedures: labels won't work if character set is utf8
+#
+--disable_warnings
+drop procedure if exists bug6063|
+drop procedure if exists bug7088_1|
+drop procedure if exists bug7088_2|
+--enable_warnings
+
+--disable_parsing # temporarily disabled until Bar fixes BUG#11986
+create procedure bug6063()
+ lâbel: begin end|
+call bug6063()|
+# QQ Known bug: this will not show the label correctly.
+show create procedure bug6063|
+
+set character set utf8|
+create procedure bug7088_1()
+ label1: begin end label1|
+create procedure bug7088_2()
+ läbel1: begin end|
+call bug7088_1()|
+call bug7088_2()|
+set character set default|
+show create procedure bug7088_1|
+show create procedure bug7088_2|
+
+drop procedure bug6063|
+drop procedure bug7088_1|
+drop procedure bug7088_2|
+--enable_parsing
+
+#
+# BUG#9565: "Wrong locking in stored procedure if a sub-sequent procedure
+# is called".
+#
+--disable_warnings
+drop procedure if exists bug9565_sub|
+drop procedure if exists bug9565|
+--enable_warnings
+create procedure bug9565_sub()
+begin
+ select * from t1;
+end|
+create procedure bug9565()
+begin
+ insert into t1 values ("one", 1);
+ call bug9565_sub();
+end|
+call bug9565()|
+delete from t1|
+drop procedure bug9565_sub|
+drop procedure bug9565|
+
+
+#
+# BUG#9538: SProc: Creation fails if we try to SET system variable
+# using @@var_name in proc
+#
+--disable_warnings
+drop procedure if exists bug9538|
+--enable_warnings
+create procedure bug9538()
+ set @@sort_buffer_size = 1000000|
+
+set @x = @@sort_buffer_size|
+set @@sort_buffer_size = 2000000|
+select @@sort_buffer_size|
+call bug9538()|
+select @@sort_buffer_size|
+set @@sort_buffer_size = @x|
+
+drop procedure bug9538|
+
+
+#
+# BUG#8692: Cursor fetch of empty string
+#
+--disable_warnings
+drop procedure if exists bug8692|
+--enable_warnings
+create table t3 (c1 varchar(5), c2 char(5), c3 enum('one','two'), c4 text, c5 blob, c6 char(5), c7 varchar(5))|
+insert into t3 values ('', '', '', '', '', '', NULL)|
+
+create procedure bug8692()
+begin
+ declare v1 VARCHAR(10);
+ declare v2 VARCHAR(10);
+ declare v3 VARCHAR(10);
+ declare v4 VARCHAR(10);
+ declare v5 VARCHAR(10);
+ declare v6 VARCHAR(10);
+ declare v7 VARCHAR(10);
+ declare c8692 cursor for select c1,c2,c3,c4,c5,c6,c7 from t3;
+ open c8692;
+ fetch c8692 into v1,v2,v3,v4,v5,v6,v7;
+ select v1, v2, v3, v4, v5, v6, v7;
+end|
+
+call bug8692()|
+drop procedure bug8692|
+drop table t3|
+
+#
+# Bug#10055 "Using stored function with information_schema causes empty
+# result set"
+#
+--disable_warnings
+drop function if exists bug10055|
+--enable_warnings
+create function bug10055(v char(255)) returns char(255) return lower(v)|
+# This select should not crash server and should return all fields in t1
+select t.column_name, bug10055(t.column_name)
+from information_schema.columns as t
+where t.table_schema = 'test' and t.table_name = 't1'|
+drop function bug10055|
+
+#
+# Bug #12297 "SP crashes the server if data inserted inside a lon loop"
+# The test for memleak bug, so actually there is no way to test it
+# from the suite. The test below could be used to check SP memory
+# consumption by passing large input parameter.
+#
+
+--disable_warnings
+drop procedure if exists bug12297|
+--enable_warnings
+
+create procedure bug12297(lim int)
+begin
+ set @x = 0;
+ repeat
+ insert into t1(id,data)
+ values('aa', @x);
+ set @x = @x + 1;
+ until @x >= lim
+ end repeat;
+end|
+
+call bug12297(10)|
+drop procedure bug12297|
+
+#
+# Bug #11247 "Stored procedures: Function calls in long loops leak memory"
+# One more memleak bug test. One could use this test to check that the memory
+# isn't leaking by increasing the input value for p_bug11247.
+#
+
+--disable_warnings
+drop function if exists f_bug11247|
+drop procedure if exists p_bug11247|
+--enable_warnings
+
+create function f_bug11247(param int)
+ returns int
+return param + 1|
+
+create procedure p_bug11247(lim int)
+begin
+ declare v int default 0;
+
+ while v < lim do
+ set v= f_bug11247(v);
+ end while;
+end|
+
+call p_bug11247(10)|
+drop function f_bug11247|
+drop procedure p_bug11247|
+#
+# BUG#12168: "'DECLARE CONTINUE HANDLER FOR NOT FOUND ...' in conditional
+# handled incorrectly"
+#
+--disable_warnings
+drop procedure if exists bug12168|
+drop table if exists t3, t4|
+--enable_warnings
+
+create table t3 (a int)|
+insert into t3 values (1),(2),(3),(4)|
+
+create table t4 (a int)|
+
+create procedure bug12168(arg1 char(1))
+begin
+ declare b, c integer;
+ if arg1 = 'a' then
+ begin
+ declare c1 cursor for select a from t3 where a % 2;
+ declare continue handler for not found set b = 1;
+ set b = 0;
+ open c1;
+ c1_repeat: repeat
+ fetch c1 into c;
+ if (b = 1) then
+ leave c1_repeat;
+ end if;
+
+ insert into t4 values (c);
+ until b = 1
+ end repeat;
+ end;
+ end if;
+ if arg1 = 'b' then
+ begin
+ declare c2 cursor for select a from t3 where not a % 2;
+ declare continue handler for not found set b = 1;
+ set b = 0;
+ open c2;
+ c2_repeat: repeat
+ fetch c2 into c;
+ if (b = 1) then
+ leave c2_repeat;
+ end if;
+
+ insert into t4 values (c);
+ until b = 1
+ end repeat;
+ end;
+ end if;
+end|
+
+call bug12168('a')|
+select * from t4|
+truncate t4|
+call bug12168('b')|
+select * from t4|
+truncate t4|
+call bug12168('a')|
+select * from t4|
+truncate t4|
+call bug12168('b')|
+select * from t4|
+truncate t4|
+drop table t3, t4|
+drop procedure if exists bug12168|
+
+#
+# Bug #11333 "Stored Procedure: Memory blow up on repeated SELECT ... INTO
+# query"
+# One more memleak bug. Use the test to check memory consumption.
+#
+
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug11333|
+--enable_warnings
+
+create table t3 (c1 char(128))|
+
+insert into t3 values
+ ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')|
+
+
+create procedure bug11333(i int)
+begin
+ declare tmp varchar(128);
+ set @x = 0;
+ repeat
+ select c1 into tmp from t3
+ where c1 = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
+ set @x = @x + 1;
+ until @x >= i
+ end repeat;
+end|
+
+call bug11333(10)|
+
+drop procedure bug11333|
+drop table t3|
+
+#
+# BUG#9048: Creating a function with char binary IN parameter fails
+#
+--disable_warnings
+drop function if exists bug9048|
+--enable_warnings
+create function bug9048(f1 char binary) returns char binary
+begin
+ set f1= concat( 'hello', f1 );
+ return f1;
+end|
+drop function bug9048|
+
+# Bug #12849 Stored Procedure: Crash on procedure call with CHAR type
+# 'INOUT' parameter
+#
+
+--disable_warnings
+drop procedure if exists bug12849_1|
+--enable_warnings
+create procedure bug12849_1(inout x char) select x into x|
+set @var='a'|
+call bug12849_1(@var)|
+select @var|
+drop procedure bug12849_1|
+
+--disable_warnings
+drop procedure if exists bug12849_2|
+--enable_warnings
+create procedure bug12849_2(inout foo varchar(15))
+begin
+select concat(foo, foo) INTO foo;
+end|
+set @var='abcd'|
+call bug12849_2(@var)|
+select @var|
+drop procedure bug12849_2|
+
+#
+# BUG#13133: Local variables in stored procedures are not initialized correctly.
+#
+--disable_warnings
+drop procedure if exists bug131333|
+drop function if exists bug131333|
+--enable_warnings
+create procedure bug131333()
+begin
+ begin
+ declare a int;
+
+ select a;
+ set a = 1;
+ select a;
+ end;
+ begin
+ declare b int;
+
+ select b;
+ end;
+end|
+
+create function bug131333()
+ returns int
+begin
+ begin
+ declare a int;
+
+ set a = 1;
+ end;
+ begin
+ declare b int;
+
+ return b;
+ end;
+end|
+
+call bug131333()|
+select bug131333()|
+
+drop procedure bug131333|
+drop function bug131333|
+
+#
+# BUG#12379: PROCEDURE with HANDLER calling FUNCTION with error get
+# strange result
+#
+--disable_warnings
+drop function if exists bug12379|
+drop procedure if exists bug12379_1|
+drop procedure if exists bug12379_2|
+drop procedure if exists bug12379_3|
+drop table if exists t3|
+--enable_warnings
+
+create table t3 (c1 char(1) primary key not null)|
+
+create function bug12379()
+ returns integer
+begin
+ insert into t3 values('X');
+ insert into t3 values('X');
+ return 0;
+end|
+
+create procedure bug12379_1()
+begin
+ declare exit handler for sqlexception select 42;
+
+ select bug12379();
+END|
+create procedure bug12379_2()
+begin
+ declare exit handler for sqlexception begin end;
+
+ select bug12379();
+end|
+create procedure bug12379_3()
+begin
+ select bug12379();
+end|
+
+--error 1062
+select bug12379()|
+select 1|
+call bug12379_1()|
+select 2|
+call bug12379_2()|
+select 3|
+--error 1062
+call bug12379_3()|
+select 4|
+
+drop function bug12379|
+drop procedure bug12379_1|
+drop procedure bug12379_2|
+drop procedure bug12379_3|
+drop table t3|
+
+#
+# Bug #13124 Stored Procedure using SELECT INTO crashes server
+#
+
+--disable_warnings
+drop procedure if exists bug13124|
+--enable_warnings
+create procedure bug13124()
+begin
+ declare y integer;
+ set @x=y;
+end|
+call bug13124()|
+drop procedure bug13124|
+
+#
+# Bug #12979 Stored procedures: crash if inout decimal parameter
+#
+
+# check NULL inout parameters processing
+
+--disable_warnings
+drop procedure if exists bug12979_1|
+--enable_warnings
+create procedure bug12979_1(inout d decimal(5)) set d = d / 2|
+set @bug12979_user_var = NULL|
+call bug12979_1(@bug12979_user_var)|
+drop procedure bug12979_1|
+
+# check NULL local variables processing
+
+--disable_warnings
+drop procedure if exists bug12979_2|
+--enable_warnings
+create procedure bug12979_2()
+begin
+declare internal_var decimal(5);
+set internal_var= internal_var / 2;
+select internal_var;
+end|
+call bug12979_2()|
+drop procedure bug12979_2|
+
+
+#
+# BUG#6127: Stored procedure handlers within handlers don't work
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug6127|
+--enable_warnings
+create table t3 (s1 int unique)|
+
+set @sm=@@sql_mode|
+set sql_mode='traditional'|
+
+create procedure bug6127()
+begin
+ declare continue handler for sqlstate '23000'
+ begin
+ declare continue handler for sqlstate '22003'
+ insert into t3 values (0);
+
+ insert into t3 values (1000000000000000);
+ end;
+
+ insert into t3 values (1);
+ insert into t3 values (1);
+end|
+
+call bug6127()|
+select * from t3|
+--error ER_DUP_ENTRY
+call bug6127()|
+select * from t3|
+set sql_mode=@sm|
+drop table t3|
+drop procedure bug6127|
+
+
+#
+# BUG#12589: Assert when creating temp. table from decimal stored procedure
+# variable
+#
+--disable_warnings
+drop procedure if exists bug12589_1|
+drop procedure if exists bug12589_2|
+drop procedure if exists bug12589_3|
+--enable_warnings
+create procedure bug12589_1()
+begin
+ declare spv1 decimal(3,3);
+ set spv1= 123.456;
+
+ set spv1 = 'test';
+ create temporary table tm1 as select spv1;
+ show create table tm1;
+ drop temporary table tm1;
+end|
+
+create procedure bug12589_2()
+begin
+ declare spv1 decimal(6,3);
+ set spv1= 123.456;
+
+ create temporary table tm1 as select spv1;
+ show create table tm1;
+ drop temporary table tm1;
+end|
+
+create procedure bug12589_3()
+begin
+ declare spv1 decimal(6,3);
+ set spv1= -123.456;
+
+ create temporary table tm1 as select spv1;
+ show create table tm1;
+ drop temporary table tm1;
+end|
+
+# Note: The type of the field will match the value, not the declared
+# type of the variable. (This is a type checking issue which
+# might be changed later.)
+
+# Warning expected from "set spv1 = 'test'", the value is set to decimal "0".
+call bug12589_1()|
+# No warnings here
+call bug12589_2()|
+call bug12589_3()|
+drop procedure bug12589_1|
+drop procedure bug12589_2|
+drop procedure bug12589_3|
+
+#
+# BUG#7049: Stored procedure CALL errors are ignored
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug7049_1|
+drop procedure if exists bug7049_2|
+drop procedure if exists bug7049_3|
+drop procedure if exists bug7049_4|
+drop function if exists bug7049_1|
+drop function if exists bug7049_2|
+--enable_warnings
+
+create table t3 ( x int unique )|
+
+create procedure bug7049_1()
+begin
+ insert into t3 values (42);
+ insert into t3 values (42);
+end|
+
+create procedure bug7049_2()
+begin
+ declare exit handler for sqlexception
+ select 'Caught it' as 'Result';
+
+ call bug7049_1();
+ select 'Missed it' as 'Result';
+end|
+
+create procedure bug7049_3()
+ call bug7049_1()|
+
+create procedure bug7049_4()
+begin
+ declare exit handler for sqlexception
+ select 'Caught it' as 'Result';
+
+ call bug7049_3();
+ select 'Missed it' as 'Result';
+end|
+
+create function bug7049_1()
+ returns int
+begin
+ insert into t3 values (42);
+ insert into t3 values (42);
+ return 42;
+end|
+
+create function bug7049_2()
+ returns int
+begin
+ declare x int default 0;
+ declare continue handler for sqlexception
+ set x = 1;
+
+ set x = bug7049_1();
+ return x;
+end|
+
+call bug7049_2()|
+select * from t3|
+delete from t3|
+call bug7049_4()|
+select * from t3|
+select bug7049_2()|
+
+drop table t3|
+drop procedure bug7049_1|
+drop procedure bug7049_2|
+drop procedure bug7049_3|
+drop procedure bug7049_4|
+drop function bug7049_1|
+drop function bug7049_2|
+
+
+#
+# BUG#13941: replace() string fuction behaves badly inside stored procedure
+# (BUG#13914: IFNULL is returning garbage in stored procedure)
+#
+--disable_warnings
+drop function if exists bug13941|
+drop procedure if exists bug13941|
+--enable_warnings
+
+create function bug13941(p_input_str text)
+ returns text
+begin
+ declare p_output_str text;
+
+ set p_output_str = p_input_str;
+
+ set p_output_str = replace(p_output_str, 'xyzzy', 'plugh');
+ set p_output_str = replace(p_output_str, 'test', 'prova');
+ set p_output_str = replace(p_output_str, 'this', 'questo');
+ set p_output_str = replace(p_output_str, ' a ', 'una ');
+ set p_output_str = replace(p_output_str, 'is', '');
+
+ return p_output_str;
+end|
+
+create procedure bug13941(out sout varchar(128))
+begin
+ set sout = 'Local';
+ set sout = ifnull(sout, 'DEF');
+end|
+
+# Note: The bug showed different behaviour in different types of builds,
+# giving garbage results in some, and seemingly working in others.
+# Running with valgrind (or purify) is the safe way to check that it's
+# really working correctly.
+select bug13941('this is a test')|
+call bug13941(@a)|
+select @a|
+
+drop function bug13941|
+drop procedure bug13941|
+
+
+#
+# BUG#13095: Cannot create VIEWs in prepared statements
+#
+
+delimiter ;|
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug13095;
+DROP TABLE IF EXISTS bug13095_t1;
+DROP VIEW IF EXISTS bug13095_v1;
+--enable_warnings
+
+delimiter |;
+
+CREATE PROCEDURE bug13095(tbl_name varchar(32))
+BEGIN
+ SET @str =
+ CONCAT("CREATE TABLE ", tbl_name, "(stuff char(15))");
+ SELECT @str;
+ PREPARE stmt FROM @str;
+ EXECUTE stmt;
+
+ SET @str =
+ CONCAT("INSERT INTO ", tbl_name, " VALUES('row1'),('row2'),('row3')" );
+ SELECT @str;
+ PREPARE stmt FROM @str;
+ EXECUTE stmt;
+
+ SET @str =
+ CONCAT("CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM ", tbl_name);
+ SELECT @str;
+ PREPARE stmt FROM @str;
+ EXECUTE stmt;
+
+ SELECT * FROM bug13095_v1;
+
+ SET @str =
+ "DROP VIEW bug13095_v1";
+ SELECT @str;
+ PREPARE stmt FROM @str;
+ EXECUTE stmt;
+END|
+
+delimiter ;|
+
+CALL bug13095('bug13095_t1');
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug13095;
+DROP VIEW IF EXISTS bug13095_v1;
+DROP TABLE IF EXISTS bug13095_t1;
+--enable_warnings
+
+delimiter |;
+
+#
+# BUG#1473: Dumping of stored functions seems to cause corruption in
+# the function body
+#
+--disable_warnings
+drop function if exists bug14723|
+drop procedure if exists bug14723|
+--enable_warnings
+
+delimiter ;;|
+/*!50003 create function bug14723()
+ returns bigint(20)
+main_loop: begin
+ return 42;
+end */;;
+show create function bug14723;;
+select bug14723();;
+
+/*!50003 create procedure bug14723()
+main_loop: begin
+ select 42;
+end */;;
+show create procedure bug14723;;
+call bug14723();;
+
+delimiter |;;
+
+drop function bug14723|
+drop procedure bug14723|
+
+#
+# Bug#14845 "mysql_stmt_fetch returns MYSQL_NO_DATA when COUNT(*) is 0"
+# Check that when fetching from a cursor, COUNT(*) works properly.
+#
+create procedure bug14845()
+begin
+ declare a char(255);
+ declare done int default 0;
+ declare c cursor for select count(*) from t1 where 1 = 0;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open c;
+ repeat
+ fetch c into a;
+ if not done then
+ select a;
+ end if;
+ until done end repeat;
+ close c;
+end|
+call bug14845()|
+drop procedure bug14845|
+
+#
+# BUG#13549 "Server crash with nested stored procedures".
+# Server should not crash when during execution of stored procedure
+# we have to parse trigger/function definition and this new trigger/
+# function has more local variables declared than invoking stored
+# procedure and last of these variables is used in argument of NOT
+# operator.
+#
+--disable_warnings
+drop procedure if exists bug13549_1|
+drop procedure if exists bug13549_2|
+--enable_warnings
+CREATE PROCEDURE `bug13549_2`()
+begin
+ call bug13549_1();
+end|
+CREATE PROCEDURE `bug13549_1`()
+begin
+ declare done int default 0;
+ set done= not done;
+end|
+CALL bug13549_2()|
+drop procedure bug13549_2|
+drop procedure bug13549_1|
+
+#
+# BUG#10100: function (and stored procedure?) recursivity problem
+#
+--disable_warnings
+drop function if exists bug10100f|
+drop procedure if exists bug10100p|
+drop procedure if exists bug10100t|
+drop procedure if exists bug10100pt|
+drop procedure if exists bug10100pv|
+drop procedure if exists bug10100pd|
+drop procedure if exists bug10100pc|
+--enable_warnings
+# routines with simple recursion
+create function bug10100f(prm int) returns int
+begin
+ if prm > 1 then
+ return prm * bug10100f(prm - 1);
+ end if;
+ return 1;
+end|
+create procedure bug10100p(prm int, inout res int)
+begin
+ set res = res * prm;
+ if prm > 1 then
+ call bug10100p(prm - 1, res);
+ end if;
+end|
+create procedure bug10100t(prm int)
+begin
+ declare res int;
+ set res = 1;
+ call bug10100p(prm, res);
+ select res;
+end|
+
+# a procedure which use tables and recursion
+create table t3 (a int)|
+insert into t3 values (0)|
+create view v1 as select a from t3;
+create procedure bug10100pt(level int, lim int)
+begin
+ if level < lim then
+ update t3 set a=level;
+ FLUSH TABLES;
+ call bug10100pt(level+1, lim);
+ else
+ select * from t3;
+ end if;
+end|
+# view & recursion
+create procedure bug10100pv(level int, lim int)
+begin
+ if level < lim then
+ update v1 set a=level;
+ FLUSH TABLES;
+ call bug10100pv(level+1, lim);
+ else
+ select * from v1;
+ end if;
+end|
+# dynamic sql & recursion
+prepare stmt2 from "select * from t3;";
+create procedure bug10100pd(level int, lim int)
+begin
+ if level < lim then
+ select level;
+ prepare stmt1 from "update t3 set a=a+2";
+ execute stmt1;
+ FLUSH TABLES;
+ execute stmt1;
+ FLUSH TABLES;
+ execute stmt1;
+ FLUSH TABLES;
+ deallocate prepare stmt1;
+ execute stmt2;
+ select * from t3;
+ call bug10100pd(level+1, lim);
+ else
+ execute stmt2;
+ end if;
+end|
+# cursor & recursion
+create procedure bug10100pc(level int, lim int)
+begin
+ declare lv int;
+ declare c cursor for select a from t3;
+ open c;
+ if level < lim then
+ select level;
+ fetch c into lv;
+ select lv;
+ update t3 set a=level+lv;
+ FLUSH TABLES;
+ call bug10100pc(level+1, lim);
+ else
+ select * from t3;
+ end if;
+ close c;
+end|
+
+set @@max_sp_recursion_depth=4|
+select @@max_sp_recursion_depth|
+-- error ER_SP_NO_RECURSION
+select bug10100f(3)|
+-- error ER_SP_NO_RECURSION
+select bug10100f(6)|
+call bug10100t(5)|
+call bug10100pt(1,5)|
+call bug10100pv(1,5)|
+update t3 set a=1|
+call bug10100pd(1,5)|
+select * from t3|
+update t3 set a=1|
+call bug10100pc(1,5)|
+select * from t3|
+set @@max_sp_recursion_depth=0|
+select @@max_sp_recursion_depth|
+-- error ER_SP_NO_RECURSION
+select bug10100f(5)|
+-- error ER_SP_RECURSION_LIMIT
+call bug10100t(5)|
+
+#end of the stack checking
+deallocate prepare stmt2|
+
+drop function bug10100f|
+drop procedure bug10100p|
+drop procedure bug10100t|
+drop procedure bug10100pt|
+drop procedure bug10100pv|
+drop procedure bug10100pd|
+drop procedure bug10100pc|
+drop view v1|
+
+#
+# BUG#13729: Stored procedures: packet error after exception handled
+#
+--disable_warnings
+drop procedure if exists bug13729|
+drop table if exists t3|
+--enable_warnings
+
+create table t3 (s1 int, primary key (s1))|
+
+insert into t3 values (1),(2)|
+
+create procedure bug13729()
+begin
+ declare continue handler for sqlexception select 55;
+
+ update t3 set s1 = 1;
+end|
+
+call bug13729()|
+# Used to cause Packets out of order
+select * from t3|
+
+drop procedure bug13729|
+drop table t3|
+
+#
+# BUG#14643: Stored Procedure: Continuing after failed var. initialization
+# crashes server.
+#
+--disable_warnings
+drop procedure if exists bug14643_1|
+drop procedure if exists bug14643_2|
+--enable_warnings
+
+create procedure bug14643_1()
+begin
+ declare continue handler for sqlexception select 'boo' as 'Handler';
+
+ begin
+ declare v int default undefined_var;
+
+ if v = 1 then
+ select 1;
+ else
+ select v, isnull(v);
+ end if;
+ end;
+end|
+
+create procedure bug14643_2()
+begin
+ declare continue handler for sqlexception select 'boo' as 'Handler';
+
+ case undefined_var
+ when 1 then
+ select 1;
+ else
+ select 2;
+ end case;
+
+ select undefined_var;
+end|
+
+call bug14643_1()|
+call bug14643_2()|
+
+drop procedure bug14643_1|
+drop procedure bug14643_2|
+
+#
+# BUG#14304: auto_increment field incorrect set in SP
+#
+--disable_warnings
+drop procedure if exists bug14304|
+drop table if exists t3, t4|
+--enable_warnings
+
+create table t3(a int primary key auto_increment)|
+create table t4(a int primary key auto_increment)|
+
+create procedure bug14304()
+begin
+ insert into t3 set a=null;
+ insert into t4 set a=null;
+ insert into t4 set a=null;
+ insert into t4 set a=null;
+ insert into t4 set a=null;
+ insert into t4 set a=null;
+ insert into t4 select null as a;
+
+ insert into t3 set a=null;
+ insert into t3 set a=null;
+
+ select * from t3;
+end|
+
+call bug14304()|
+
+drop procedure bug14304|
+drop table t3, t4|
+
+#
+# BUG#14376: MySQL crash on scoped variable (re)initialization
+#
+--disable_warnings
+drop procedure if exists bug14376|
+--enable_warnings
+
+create procedure bug14376()
+begin
+ declare x int default x;
+end|
+
+# Not the error we want, but that's what we got for now...
+--error ER_BAD_FIELD_ERROR
+call bug14376()|
+drop procedure bug14376|
+
+create procedure bug14376()
+begin
+ declare x int default 42;
+
+ begin
+ declare x int default x;
+
+ select x;
+ end;
+end|
+
+call bug14376()|
+
+drop procedure bug14376|
+
+create procedure bug14376(x int)
+begin
+ declare x int default x;
+
+ select x;
+end|
+
+call bug14376(4711)|
+
+drop procedure bug14376|
+
+#
+# Bug#5967 "Stored procedure declared variable used instead of column"
+# The bug should be fixed later.
+# Test precedence of names of parameters, variable declarations,
+# variable declarations in nested compound statements, table columns,
+# table columns in cursor declarations.
+# According to the standard, table columns take precedence over
+# variable declarations. In MySQL 5.0 it's vice versa.
+#
+
+--disable_warnings
+drop procedure if exists bug5967|
+drop table if exists t3|
+--enable_warnings
+create table t3 (a varchar(255))|
+insert into t3 (a) values ("a - table column")|
+create procedure bug5967(a varchar(255))
+begin
+ declare i varchar(255);
+ declare c cursor for select a from t3;
+ select a;
+ select a from t3 into i;
+ select i as 'Parameter takes precedence over table column'; open c;
+ fetch c into i;
+ close c;
+ select i as 'Parameter takes precedence over table column in cursors';
+ begin
+ declare a varchar(255) default 'a - local variable';
+ declare c1 cursor for select a from t3;
+ select a as 'A local variable takes precedence over parameter';
+ open c1;
+ fetch c1 into i;
+ close c1;
+ select i as 'A local variable takes precedence over parameter in cursors';
+ begin
+ declare a varchar(255) default 'a - local variable in a nested compound statement';
+ declare c2 cursor for select a from t3;
+ select a as 'A local variable in a nested compound statement takes precedence over a local variable in the outer statement';
+ select a from t3 into i;
+ select i as 'A local variable in a nested compound statement takes precedence over table column';
+ open c2;
+ fetch c2 into i;
+ close c2;
+ select i as 'A local variable in a nested compound statement takes precedence over table column in cursors';
+ end;
+ end;
+end|
+call bug5967("a - stored procedure parameter")|
+drop procedure bug5967|
+
+#
+# Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server"
+#
+--disable_warnings
+drop procedure if exists bug13012|
+--enable_warnings
+create procedure bug13012()
+BEGIN
+ REPAIR TABLE t1;
+ BACKUP TABLE t1 to '../tmp';
+ DROP TABLE t1;
+ RESTORE TABLE t1 FROM '../tmp';
+END|
+call bug13012()|
+drop procedure bug13012|
+create view v1 as select * from t1|
+create procedure bug13012()
+BEGIN
+ REPAIR TABLE t1,t2,t3,v1;
+ OPTIMIZE TABLE t1,t2,t3,v1;
+ ANALYZE TABLE t1,t2,t3,v1;
+END|
+call bug13012()|
+call bug13012()|
+call bug13012()|
+drop procedure bug13012|
+drop view v1;
+select * from t1|
+
+#
+# A test case for Bug#15392 "Server crashes during prepared statement
+# execute": make sure that stored procedure check for error conditions
+# properly and do not continue execution if an error has been set.
+#
+# It's necessary to use several DBs because in the original code
+# the successful return of mysql_change_db overrode the error from
+# execution.
+drop schema if exists mysqltest1|
+drop schema if exists mysqltest2|
+drop schema if exists mysqltest3|
+create schema mysqltest1|
+create schema mysqltest2|
+create schema mysqltest3|
+use mysqltest3|
+
+create procedure mysqltest1.p1 (out prequestid varchar(100))
+begin
+ call mysqltest2.p2('call mysqltest3.p3(1, 2)');
+end|
+
+create procedure mysqltest2.p2(in psql text)
+begin
+ declare lsql text;
+ set @lsql= psql;
+ prepare lstatement from @lsql;
+ execute lstatement;
+ deallocate prepare lstatement;
+end|
+
+create procedure mysqltest3.p3(in p1 int)
+begin
+ select p1;
+end|
+
+--error ER_SP_WRONG_NO_OF_ARGS
+call mysqltest1.p1(@rs)|
+--error ER_SP_WRONG_NO_OF_ARGS
+call mysqltest1.p1(@rs)|
+--error ER_SP_WRONG_NO_OF_ARGS
+call mysqltest1.p1(@rs)|
+drop schema if exists mysqltest1|
+drop schema if exists mysqltest2|
+drop schema if exists mysqltest3|
+use test|
+
+#
+# Bug#15441 "Running SP causes Server to Crash": check that an SP variable
+# can not be used in VALUES() function.
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug15441|
+--enable_warnings
+create table t3 (id int not null primary key, county varchar(25))|
+insert into t3 (id, county) values (1, 'York')|
+
+# First check that a stored procedure that refers to a parameter in VALUES()
+# function won't parse.
+
+create procedure bug15441(c varchar(25))
+begin
+ update t3 set id=2, county=values(c);
+end|
+--error ER_BAD_FIELD_ERROR
+call bug15441('county')|
+drop procedure bug15441|
+
+# Now check the case when there is an ambiguity between column names
+# and stored procedure parameters: the parser shall resolve the argument
+# of VALUES() function to the column name.
+
+# It's hard to deduce what county refers to in every case (INSERT statement):
+# 1st county refers to the column
+# 2nd county refers to the procedure parameter
+# 3d and 4th county refers to the column, again, but
+# for 4th county it has the value of SP parameter
+
+# In UPDATE statement, just check that values() function returns NULL for
+# non- INSERT...UPDATE statements, as stated in the manual.
+
+create procedure bug15441(county varchar(25))
+begin
+ declare c varchar(25) default "hello";
+
+ insert into t3 (id, county) values (1, county)
+ on duplicate key update county= values(county);
+ select * from t3;
+
+ update t3 set id=2, county=values(id);
+ select * from t3;
+end|
+call bug15441('Yale')|
+drop table t3|
+drop procedure bug15441|
+
+#
+# BUG#14498: Stored procedures: hang if undefined variable and exception
+#
+--disable_warnings
+drop procedure if exists bug14498_1|
+drop procedure if exists bug14498_2|
+drop procedure if exists bug14498_3|
+drop procedure if exists bug14498_4|
+drop procedure if exists bug14498_5|
+--enable_warnings
+
+create procedure bug14498_1()
+begin
+ declare continue handler for sqlexception select 'error' as 'Handler';
+
+ if v then
+ select 'yes' as 'v';
+ else
+ select 'no' as 'v';
+ end if;
+ select 'done' as 'End';
+end|
+
+create procedure bug14498_2()
+begin
+ declare continue handler for sqlexception select 'error' as 'Handler';
+
+ while v do
+ select 'yes' as 'v';
+ end while;
+ select 'done' as 'End';
+end|
+
+create procedure bug14498_3()
+begin
+ declare continue handler for sqlexception select 'error' as 'Handler';
+
+ repeat
+ select 'maybe' as 'v';
+ until v end repeat;
+ select 'done' as 'End';
+end|
+
+create procedure bug14498_4()
+begin
+ declare continue handler for sqlexception select 'error' as 'Handler';
+
+ case v
+ when 1 then
+ select '1' as 'v';
+ when 2 then
+ select '2' as 'v';
+ else
+ select '?' as 'v';
+ end case;
+ select 'done' as 'End';
+end|
+
+create procedure bug14498_5()
+begin
+ declare continue handler for sqlexception select 'error' as 'Handler';
+
+ case
+ when v = 1 then
+ select '1' as 'v';
+ when v = 2 then
+ select '2' as 'v';
+ else
+ select '?' as 'v';
+ end case;
+ select 'done' as 'End';
+end|
+
+call bug14498_1()|
+call bug14498_2()|
+call bug14498_3()|
+call bug14498_4()|
+call bug14498_5()|
+
+drop procedure bug14498_1|
+drop procedure bug14498_2|
+drop procedure bug14498_3|
+drop procedure bug14498_4|
+drop procedure bug14498_5|
+
+#
+# BUG#15231: Stored procedure bug with not found condition handler
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug15231_1|
+drop procedure if exists bug15231_2|
+drop procedure if exists bug15231_3|
+drop procedure if exists bug15231_4|
+--enable_warnings
+
+create table t3 (id int not null)|
+
+create procedure bug15231_1()
+begin
+ declare xid integer;
+ declare xdone integer default 0;
+ declare continue handler for not found set xdone = 1;
+
+ set xid=null;
+ call bug15231_2(xid);
+ select xid, xdone;
+end|
+
+create procedure bug15231_2(inout ioid integer)
+begin
+ select "Before NOT FOUND condition is triggered" as '1';
+ select id into ioid from t3 where id=ioid;
+ select "After NOT FOUND condtition is triggered" as '2';
+
+ if ioid is null then
+ set ioid=1;
+ end if;
+end|
+
+create procedure bug15231_3()
+begin
+ declare exit handler for sqlwarning
+ select 'Caught it (wrong)' as 'Result';
+
+ call bug15231_4();
+end|
+
+create procedure bug15231_4()
+begin
+ declare x decimal(2,1);
+
+ set x = 'zap';
+ select 'Missed it (correct)' as 'Result';
+end|
+
+call bug15231_1()|
+call bug15231_3()|
+
+drop table if exists t3|
+drop procedure if exists bug15231_1|
+drop procedure if exists bug15231_2|
+drop procedure if exists bug15231_3|
+drop procedure if exists bug15231_4|
+
+
+#
+# BUG#15011: error handler in nested block not activated
+#
+--disable_warnings
+drop procedure if exists bug15011|
+--enable_warnings
+
+create table t3 (c1 int primary key)|
+
+insert into t3 values (1)|
+
+create procedure bug15011()
+ deterministic
+begin
+ declare continue handler for 1062
+ select 'Outer' as 'Handler';
+
+ begin
+ declare continue handler for 1062
+ select 'Inner' as 'Handler';
+
+ insert into t3 values (1);
+ end;
+end|
+
+call bug15011()|
+
+drop procedure bug15011|
+drop table t3|
+
+
+#
+# BUG#17476: Stored procedure not returning data when it is called first
+# time per connection
+#
+--disable_warnings
+drop procedure if exists bug17476|
+--enable_warnings
+
+create table t3 ( d date )|
+insert into t3 values
+ ( '2005-01-01' ), ( '2005-01-02' ), ( '2005-01-03' ),
+ ( '2005-01-04' ), ( '2005-02-01' ), ( '2005-02-02' )|
+
+create procedure bug17476(pDateFormat varchar(10))
+ select date_format(t3.d, pDateFormat), count(*)
+ from t3
+ group by date_format(t3.d, pDateFormat)|
+
+call bug17476('%Y-%m')|
+call bug17476('%Y-%m')|
+
+drop table t3|
+drop procedure bug17476|
+
+
+#
+# BUG#16887: Cursor causes server segfault
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug16887|
+--enable_warnings
+
+create table t3 ( c varchar(1) )|
+
+insert into t3 values
+ (' '),('.'),(';'),(','),('-'),('_'),('('),(')'),('/'),('\\')|
+
+create procedure bug16887()
+begin
+ declare i int default 10;
+
+ again:
+ while i > 0 do
+ begin
+ declare breakchar varchar(1);
+ declare done int default 0;
+ declare t3_cursor cursor for select c from t3;
+ declare continue handler for not found set done = 1;
+
+ set i = i - 1;
+ select i;
+
+ if i = 3 then
+ iterate again;
+ end if;
+
+ open t3_cursor;
+
+ loop
+ fetch t3_cursor into breakchar;
+
+ if done = 1 then
+ begin
+ close t3_cursor;
+ iterate again;
+ end;
+ end if;
+ end loop;
+ end;
+ end while;
+end|
+
+call bug16887()|
+
+drop table t3|
+drop procedure bug16887|
+
+#
+# Bug#13575 SP funcs in select with distinct/group and order by can
+# produce bad data
+#
+# Disable warnings to allow test to run also without InnoDB
+--disable_warnings
+create table t3 (f1 int, f2 varchar(3), primary key(f1)) engine=innodb|
+--enable_warnings
+insert into t3 values (1,'aaa'),(2,'bbb'),(3,'ccc')|
+CREATE FUNCTION bug13575 ( p1 integer )
+returns varchar(3)
+BEGIN
+DECLARE v1 VARCHAR(10) DEFAULT null;
+SELECT f2 INTO v1 FROM t3 WHERE f1 = p1;
+RETURN v1;
+END|
+select distinct f1, bug13575(f1) from t3 order by f1|
+drop function bug13575;
+drop table t3|
+
+#
+# BUG#16474: SP crashed MySQL
+# (when using "order by localvar", where 'localvar' is just that.
+#
+--disable_warnings
+drop procedure if exists bug16474_1|
+drop procedure if exists bug16474_2|
+--enable_warnings
+
+delete from t1|
+insert into t1 values ('c', 2), ('b', 3), ('a', 1)|
+
+create procedure bug16474_1()
+begin
+ declare x int;
+
+ select id from t1 order by x;
+end|
+
+#
+# BUG#14945: Truncate table doesn't reset the auto_increment counter
+#
+--disable_warnings
+drop procedure if exists bug14945|
+--enable_warnings
+create table t3 (id int not null auto_increment primary key)|
+create procedure bug14945() deterministic truncate t3|
+insert into t3 values (null)|
+call bug14945()|
+insert into t3 values (null)|
+select * from t3|
+drop table t3|
+drop procedure bug14945|
+
+# This does NOT order by column index; variable is an expression.
+create procedure bug16474_2(x int)
+ select id from t1 order by x|
+
+call bug16474_1()|
+call bug16474_2(1)|
+call bug16474_2(2)|
+drop procedure bug16474_1|
+drop procedure bug16474_2|
+
+# For reference: user variables are expressions too and do not affect ordering.
+set @x = 2|
+select * from t1 order by @x|
+
+delete from t1|
+
+
+#
+# BUG#15728: LAST_INSERT_ID function inside a stored function returns 0
+#
+# The solution is not to reset last_insert_id on enter to sub-statement.
+#
+--disable_warnings
+drop function if exists bug15728|
+drop table if exists t3|
+--enable_warnings
+
+create table t3 (
+ id int not null auto_increment,
+ primary key (id)
+)|
+create function bug15728() returns int(11)
+ return last_insert_id()|
+
+insert into t3 values (0)|
+select last_insert_id()|
+select bug15728()|
+
+drop function bug15728|
+drop table t3|
+
+
+#
+# BUG#18787: Server crashed when calling a stored procedure containing
+# a misnamed function
+#
+--disable_warnings
+drop procedure if exists bug18787|
+--enable_warnings
+create procedure bug18787()
+begin
+ declare continue handler for sqlexception begin end;
+
+ select no_such_function();
+end|
+
+call bug18787()|
+drop procedure bug18787|
+
+
+#
+# BUG#18344: DROP DATABASE does not drop associated routines
+# (... if the database name is longer than 21 characters)
+#
+# 1234567890123456789012
+create database bug18344_012345678901|
+use bug18344_012345678901|
+create procedure bug18344() begin end|
+create procedure bug18344_2() begin end|
+
+create database bug18344_0123456789012|
+use bug18344_0123456789012|
+create procedure bug18344() begin end|
+create procedure bug18344_2() begin end|
+
+use test|
+
+select schema_name from information_schema.schemata where
+ schema_name like 'bug18344%'|
+select routine_name,routine_schema from information_schema.routines where
+ routine_schema like 'bug18344%'|
+
+drop database bug18344_012345678901|
+drop database bug18344_0123456789012|
+
+# Should be nothing left.
+select schema_name from information_schema.schemata where
+ schema_name like 'bug18344%'|
+select routine_name,routine_schema from information_schema.routines where
+ routine_schema like 'bug18344%'|
+
+
+#
+# BUG#12472/BUG#15137 'CREATE TABLE ... SELECT ... which explicitly or
+# implicitly uses stored function gives "Table not locked" error'.
+#
+--disable_warnings
+drop function if exists bug12472|
+--enable_warnings
+create function bug12472() returns int return (select count(*) from t1)|
+# Check case when function is used directly
+create table t3 as select bug12472() as i|
+show create table t3|
+select * from t3|
+drop table t3|
+# Check case when function is used indirectly through view
+create view v1 as select bug12472() as j|
+create table t3 as select * from v1|
+show create table t3|
+select * from t3|
+drop table t3|
+drop view v1|
+drop function bug12472|
+
+
+#
+# BUG#18587: Function that accepts and returns TEXT garbles data if longer than
+# 766 chars
+#
+
+# Prepare.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS bug18589_f1|
+DROP PROCEDURE IF EXISTS bug18589_p1|
+DROP PROCEDURE IF EXISTS bug18589_p2|
+--enable_warnings
+
+CREATE FUNCTION bug18589_f1(arg TEXT) RETURNS TEXT
+BEGIN
+ RETURN CONCAT(arg, "");
+END|
+
+CREATE PROCEDURE bug18589_p1(arg TEXT, OUT ret TEXT)
+BEGIN
+ SET ret = CONCAT(arg, "");
+END|
+
+CREATE PROCEDURE bug18589_p2(arg TEXT)
+BEGIN
+ DECLARE v TEXT;
+ CALL bug18589_p1(arg, v);
+ SELECT v;
+END|
+
+# Test case.
+
+SELECT bug18589_f1(REPEAT("a", 767))|
+
+SET @bug18589_v1 = ""|
+CALL bug18589_p1(REPEAT("a", 767), @bug18589_v1)|
+SELECT @bug18589_v1|
+
+CALL bug18589_p2(REPEAT("a", 767))|
+
+# Cleanup.
+
+DROP FUNCTION bug18589_f1|
+DROP PROCEDURE bug18589_p1|
+DROP PROCEDURE bug18589_p2|
+
+
+#
+# BUG#18037: Server crash when returning system variable in stored procedures
+# BUG#19633: Stack corruption in fix_fields()/THD::rollback_item_tree_changes()
+#
+
+# Prepare.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS bug18037_f1|
+DROP PROCEDURE IF EXISTS bug18037_p1|
+DROP PROCEDURE IF EXISTS bug18037_p2|
+--enable_warnings
+
+# Test case.
+
+CREATE FUNCTION bug18037_f1() RETURNS INT
+BEGIN
+ RETURN @@server_id;
+END|
+
+CREATE PROCEDURE bug18037_p1()
+BEGIN
+ DECLARE v INT DEFAULT @@server_id;
+END|
+
+CREATE PROCEDURE bug18037_p2()
+BEGIN
+ CASE @@server_id
+ WHEN -1 THEN
+ SELECT 0;
+ ELSE
+ SELECT 1;
+ END CASE;
+END|
+
+SELECT bug18037_f1()|
+CALL bug18037_p1()|
+CALL bug18037_p2()|
+
+# Cleanup.
+
+DROP FUNCTION bug18037_f1|
+DROP PROCEDURE bug18037_p1|
+DROP PROCEDURE bug18037_p2|
+
+#
+# Bug#17199: "Table not found" error occurs if the query contains a call
+# to a function from another database.
+# See also ps.test for an additional test case for this bug.
+#
+use test|
+create table t3 (i int)|
+insert into t3 values (1), (2)|
+create database mysqltest1|
+use mysqltest1|
+create function bug17199() returns varchar(2) deterministic return 'ok'|
+use test|
+select *, mysqltest1.bug17199() from t3|
+#
+# Bug#18444: Fully qualified stored function names don't work correctly
+# in select statements
+#
+use mysqltest1|
+create function bug18444(i int) returns int no sql deterministic return i + 1|
+use test|
+select mysqltest1.bug18444(i) from t3|
+drop database mysqltest1|
+#
+# Check that current database has no influence to a stored procedure
+#
+create database mysqltest1 charset=utf8|
+create database mysqltest2 charset=utf8|
+create procedure mysqltest1.p1()
+begin
+-- alters the default collation of database test
+ alter database character set koi8r;
+end|
+use mysqltest1|
+call p1()|
+show create database mysqltest1|
+show create database mysqltest2|
+alter database mysqltest1 character set utf8|
+use mysqltest2|
+call mysqltest1.p1()|
+show create database mysqltest1|
+show create database mysqltest2|
+drop database mysqltest1|
+drop database mysqltest2|
+#
+# Restore the old environemnt
+use test|
+#
+# Bug#15217 "Using a SP cursor on a table created with PREPARE fails with
+# weird error". Check that the code that is supposed to work at
+# the first execution of a stored procedure actually works for
+# sp_instr_copen.
+
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug15217|
+--enable_warnings
+create table t3 as select 1|
+create procedure bug15217()
+begin
+ declare var1 char(255);
+ declare cur1 cursor for select * from t3;
+ open cur1;
+ fetch cur1 into var1;
+ select concat('data was: /', var1, '/');
+ close cur1;
+end |
+# Returns expected result
+call bug15217()|
+flush tables |
+# Returns error with garbage as column name
+call bug15217()|
+drop table t3|
+drop procedure bug15217|
+
+
+#
+# BUG#21013: Performance Degrades when importing data that uses
+# Trigger and Stored Procedure
+#
+# This is a performance and memory leak test. Run with large number
+# passed to bug21013() procedure.
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug21013 |
+--enable_warnings
+
+CREATE PROCEDURE bug21013(IN lim INT)
+BEGIN
+ DECLARE i INT DEFAULT 0;
+ WHILE (i < lim) DO
+ SET @b = LOCATE(_latin1'b', @a, 1);
+ SET i = i + 1;
+ END WHILE;
+END |
+
+SET @a = _latin2"aaaaaaaaaa" |
+CALL bug21013(10) |
+
+DROP PROCEDURE bug21013 |
+
+
+#
+# BUG#16211: Stored function return type for strings is ignored
+#
+
+# Prepare: create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8|
+CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET utf8|
+
+# Test case:
+
+use mysqltest1|
+
+# - Create two stored functions -- with and without explicit CHARSET-clause
+# for return value;
+
+CREATE FUNCTION bug16211_f1() RETURNS CHAR(10)
+ RETURN ""|
+
+CREATE FUNCTION bug16211_f2() RETURNS CHAR(10) CHARSET koi8r
+ RETURN ""|
+
+CREATE FUNCTION mysqltest2.bug16211_f3() RETURNS CHAR(10)
+ RETURN ""|
+
+CREATE FUNCTION mysqltest2.bug16211_f4() RETURNS CHAR(10) CHARSET koi8r
+ RETURN ""|
+
+# - Check that CHARSET-clause is specified for the second function;
+
+SHOW CREATE FUNCTION bug16211_f1|
+SHOW CREATE FUNCTION bug16211_f2|
+
+SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
+SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f2"|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f3"|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f4"|
+
+SELECT CHARSET(bug16211_f1())|
+SELECT CHARSET(bug16211_f2())|
+
+SELECT CHARSET(mysqltest2.bug16211_f3())|
+SELECT CHARSET(mysqltest2.bug16211_f4())|
+
+# - Alter database character set.
+
+ALTER DATABASE mysqltest1 CHARACTER SET cp1251|
+ALTER DATABASE mysqltest2 CHARACTER SET cp1251|
+
+# - Check that CHARSET-clause has not changed.
+
+SHOW CREATE FUNCTION bug16211_f1|
+SHOW CREATE FUNCTION bug16211_f2|
+
+SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
+SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f2"|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f3"|
+
+SELECT dtd_identifier
+FROM INFORMATION_SCHEMA.ROUTINES
+WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f4"|
+
+SELECT CHARSET(bug16211_f1())|
+SELECT CHARSET(bug16211_f2())|
+
+SELECT CHARSET(mysqltest2.bug16211_f3())|
+SELECT CHARSET(mysqltest2.bug16211_f4())|
+
+# Cleanup.
+
+use test|
+
+DROP DATABASE mysqltest1|
+DROP DATABASE mysqltest2|
+
+
+#
+# BUG#16676: Database CHARSET not used for stored procedures
+#
+
+# Prepare: create database with fixed, pre-defined character set.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+--enable_warnings
+
+CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET utf8|
+
+# Test case:
+
+use mysqltest1|
+
+# - Create two stored procedures -- with and without explicit CHARSET-clause;
+
+CREATE PROCEDURE bug16676_p1(
+ IN p1 CHAR(10),
+ INOUT p2 CHAR(10),
+ OUT p3 CHAR(10))
+BEGIN
+ SELECT CHARSET(p1), COLLATION(p1);
+ SELECT CHARSET(p2), COLLATION(p2);
+ SELECT CHARSET(p3), COLLATION(p3);
+END|
+
+CREATE PROCEDURE bug16676_p2(
+ IN p1 CHAR(10) CHARSET koi8r,
+ INOUT p2 CHAR(10) CHARSET cp1251,
+ OUT p3 CHAR(10) CHARSET greek)
+BEGIN
+ SELECT CHARSET(p1), COLLATION(p1);
+ SELECT CHARSET(p2), COLLATION(p2);
+ SELECT CHARSET(p3), COLLATION(p3);
+END|
+
+# - Call procedures.
+
+SET @v2 = 'b'|
+SET @v3 = 'c'|
+
+CALL bug16676_p1('a', @v2, @v3)|
+CALL bug16676_p2('a', @v2, @v3)|
+
+# Cleanup.
+
+use test|
+
+DROP DATABASE mysqltest1|
+#
+# BUG#8153: Stored procedure with subquery and continue handler, wrong result
+#
+
+--disable_warnings
+drop table if exists t3|
+drop table if exists t4|
+drop procedure if exists bug8153_subselect|
+drop procedure if exists bug8153_subselect_a|
+drop procedure if exists bug8153_subselect_b|
+drop procedure if exists bug8153_proc_a|
+drop procedure if exists bug8153_proc_b|
+--enable_warnings
+
+create table t3 (a int)|
+create table t4 (a int)|
+insert into t3 values (1), (1), (2), (3)|
+insert into t4 values (1), (1)|
+
+## Testing the use case reported in Bug#8153
+
+create procedure bug8153_subselect()
+begin
+ declare continue handler for sqlexception
+ begin
+ select 'statement failed';
+ end;
+ update t3 set a=a+1 where (select a from t4 where a=1) is null;
+ select 'statement after update';
+end|
+
+call bug8153_subselect()|
+select * from t3|
+
+call bug8153_subselect()|
+select * from t3|
+
+drop procedure bug8153_subselect|
+
+## Testing a subselect with a non local handler
+
+create procedure bug8153_subselect_a()
+begin
+ declare continue handler for sqlexception
+ begin
+ select 'in continue handler';
+ end;
+
+ select 'reachable code a1';
+ call bug8153_subselect_b();
+ select 'reachable code a2';
+end|
+
+create procedure bug8153_subselect_b()
+begin
+ select 'reachable code b1';
+ update t3 set a=a+1 where (select a from t4 where a=1) is null;
+ select 'unreachable code b2';
+end|
+
+call bug8153_subselect_a()|
+select * from t3|
+
+call bug8153_subselect_a()|
+select * from t3|
+
+drop procedure bug8153_subselect_a|
+drop procedure bug8153_subselect_b|
+
+## Testing extra use cases, found while investigating
+## This is related to BUG#18787, with a non local handler
+
+create procedure bug8153_proc_a()
+begin
+ declare continue handler for sqlexception
+ begin
+ select 'in continue handler';
+ end;
+
+ select 'reachable code a1';
+ call bug8153_proc_b();
+ select 'reachable code a2';
+end|
+
+create procedure bug8153_proc_b()
+begin
+ select 'reachable code b1';
+ select no_such_function();
+ select 'unreachable code b2';
+end|
+
+call bug8153_proc_a()|
+
+drop procedure bug8153_proc_a|
+drop procedure bug8153_proc_b|
+drop table t3|
+drop table t4|
+
+#
+# BUG#19862: Sort with filesort by function evaluates function twice
+#
+--disable_warnings
+drop procedure if exists bug19862|
+--enable_warnings
+CREATE TABLE t11 (a INT)|
+CREATE TABLE t12 (a INT)|
+CREATE FUNCTION bug19862(x INT) RETURNS INT
+ BEGIN
+ INSERT INTO t11 VALUES (x);
+ RETURN x+1;
+ END|
+INSERT INTO t12 VALUES (1), (2)|
+SELECT bug19862(a) FROM t12 ORDER BY 1|
+SELECT * FROM t11|
+DROP TABLE t11, t12|
+DROP FUNCTION bug19862|
+# Bug#21002 "Derived table not selecting from a "real" table fails in JOINs"
+#
+# A regression caused by the fix for Bug#18444: for derived tables we should
+# set an empty string as the current database. They do not belong to any
+# database and must be usable even if there is no database
+# selected.
+--disable_warnings
+drop table if exists t3|
+drop database if exists mysqltest1|
+--enable_warnings
+create table t3 (a int)|
+insert into t3 (a) values (1), (2)|
+
+create database mysqltest1|
+use mysqltest1|
+drop database mysqltest1|
+
+# No current database
+select database()|
+
+select * from (select 1 as a) as t1 natural join (select * from test.t3) as t2|
+use test|
+drop table t3|
+
+
+#
+# Test for BUG#16899: Possible buffer overflow in handling of DEFINER-clause.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug16899_p1|
+DROP FUNCTION IF EXISTS bug16899_f1|
+--enable_warnings
+
+--error ER_WRONG_STRING_LENGTH
+CREATE DEFINER=1234567890abcdefGHIKL@localhost PROCEDURE bug16899_p1()
+BEGIN
+ SET @a = 1;
+END|
+
+--error ER_WRONG_STRING_LENGTH
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+ FUNCTION bug16899_f1() RETURNS INT
+BEGIN
+ RETURN 1;
+END|
+
+
+#
+# BUG#21416: SP: Recursion level higher than zero needed for non-recursive call
+#
+--disable_warnings
+drop procedure if exists bug21416|
+--enable_warnings
+create procedure bug21416() show create procedure bug21416|
+call bug21416()|
+drop procedure bug21416|
+
+
+#
+# BUG#21414: SP: Procedure undroppable, to some extent
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug21414|
+--enable_warnings
+
+CREATE PROCEDURE bug21414() SELECT 1|
+
+FLUSH TABLES WITH READ LOCK|
+
+--error ER_CANT_UPDATE_WITH_READLOCK
+DROP PROCEDURE bug21414|
+
+UNLOCK TABLES|
+
+--echo The following should succeed.
+DROP PROCEDURE bug21414|
+
+
+#
+# BUG#21311: Possible stack overrun if SP has non-latin1 name
+#
+set names utf8|
+--disable_warnings
+drop database if exists това_е_дълго_име_за_база_данни_нали|
+--enable_warnings
+create database това_е_дълго_име_за_база_данни_нали|
+INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_данни_нали','това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго','PROCEDURE','това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго','SQL','CONTAINS_SQL','NO','DEFINER','','','bad_body','root@localhost',now(), now(),'','')|
+--error ER_SP_PROC_TABLE_CORRUPT
+call това_е_дълго_име_за_база_данни_нали.това_е_процедура_Ñ_доÑта_дълго_име_нали_и_още_по_дълго()|
+drop database това_е_дълго_име_за_база_данни_нали|
+
+
+#
+# BUG#21493: Crash on the second call of a procedure containing
+# a select statement that uses an IN aggregating subquery
+#
+
+CREATE TABLE t3 (
+ Member_ID varchar(15) NOT NULL,
+ PRIMARY KEY (Member_ID)
+)|
+
+CREATE TABLE t4 (
+ ID int(10) unsigned NOT NULL auto_increment,
+ Member_ID varchar(15) NOT NULL default '',
+ Action varchar(12) NOT NULL,
+ Action_Date datetime NOT NULL,
+ Track varchar(15) default NULL,
+ User varchar(12) default NULL,
+ Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update
+ CURRENT_TIMESTAMP,
+ PRIMARY KEY (ID),
+ KEY Action (Action),
+ KEY Action_Date (Action_Date)
+)|
+
+
+INSERT INTO t3(Member_ID) VALUES
+ ('111111'), ('222222'), ('333333'), ('444444'), ('555555'), ('666666')|
+
+INSERT INTO t4(Member_ID, Action, Action_Date, Track) VALUES
+ ('111111', 'Disenrolled', '2006-03-01', 'CAD' ),
+ ('111111', 'Enrolled', '2006-03-01', 'CAD' ),
+ ('111111', 'Disenrolled', '2006-07-03', 'CAD' ),
+ ('222222', 'Enrolled', '2006-03-07', 'CAD' ),
+ ('222222', 'Enrolled', '2006-03-07', 'CHF' ),
+ ('222222', 'Disenrolled', '2006-08-02', 'CHF' ),
+ ('333333', 'Enrolled', '2006-03-01', 'CAD' ),
+ ('333333', 'Disenrolled', '2006-03-01', 'CAD' ),
+ ('444444', 'Enrolled', '2006-03-01', 'CAD' ),
+ ('555555', 'Disenrolled', '2006-03-01', 'CAD' ),
+ ('555555', 'Enrolled', '2006-07-21', 'CAD' ),
+ ('555555', 'Disenrolled', '2006-03-01', 'CHF' ),
+ ('666666', 'Enrolled', '2006-02-09', 'CAD' ),
+ ('666666', 'Enrolled', '2006-05-12', 'CHF' ),
+ ('666666', 'Disenrolled', '2006-06-01', 'CAD' )|
+
+--disable_warnings
+DROP FUNCTION IF EXISTS bug21493|
+--enable_warnings
+
+CREATE FUNCTION bug21493(paramMember VARCHAR(15)) RETURNS varchar(45)
+BEGIN
+DECLARE tracks VARCHAR(45);
+SELECT GROUP_CONCAT(Track SEPARATOR ', ') INTO tracks FROM t4
+ WHERE Member_ID=paramMember AND Action='Enrolled' AND
+ (Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t4
+ WHERE Member_ID=paramMember GROUP BY Track);
+RETURN tracks;
+END|
+
+SELECT bug21493('111111')|
+SELECT bug21493('222222')|
+
+SELECT bug21493(Member_ID) FROM t3|
+
+DROP FUNCTION bug21493|
+DROP TABLE t3,t4|
+
+#
+# Bug#20028 Function with select return no data
+#
+
+--disable_warnings
+drop function if exists func_20028_a|
+drop function if exists func_20028_b|
+drop function if exists func_20028_c|
+drop procedure if exists proc_20028_a|
+drop procedure if exists proc_20028_b|
+drop procedure if exists proc_20028_c|
+drop table if exists table_20028|
+--enable_warnings
+
+create table table_20028 (i int)|
+
+SET @save_sql_mode=@@sql_mode|
+
+SET sql_mode=''|
+
+create function func_20028_a() returns integer
+begin
+ declare temp integer;
+ select i into temp from table_20028 limit 1;
+ return ifnull(temp, 0);
+end|
+
+create function func_20028_b() returns integer
+begin
+ return func_20028_a();
+end|
+
+create function func_20028_c() returns integer
+begin
+ declare div_zero integer;
+ set SQL_MODE='TRADITIONAL';
+ select 1/0 into div_zero;
+ return div_zero;
+end|
+
+create procedure proc_20028_a()
+begin
+ declare temp integer;
+ select i into temp from table_20028 limit 1;
+end|
+
+create procedure proc_20028_b()
+begin
+ call proc_20028_a();
+end|
+
+create procedure proc_20028_c()
+begin
+ declare div_zero integer;
+ set SQL_MODE='TRADITIONAL';
+ select 1/0 into div_zero;
+end|
+
+select func_20028_a()|
+select func_20028_b()|
+--error ER_DIVISION_BY_ZERO
+select func_20028_c()|
+call proc_20028_a()|
+call proc_20028_b()|
+--error ER_DIVISION_BY_ZERO
+call proc_20028_c()|
+
+SET sql_mode='TRADITIONAL'|
+
+drop function func_20028_a|
+drop function func_20028_b|
+drop function func_20028_c|
+drop procedure proc_20028_a|
+drop procedure proc_20028_b|
+drop procedure proc_20028_c|
+
+create function func_20028_a() returns integer
+begin
+ declare temp integer;
+ select i into temp from table_20028 limit 1;
+ return ifnull(temp, 0);
+end|
+
+create function func_20028_b() returns integer
+begin
+ return func_20028_a();
+end|
+
+create function func_20028_c() returns integer
+begin
+ declare div_zero integer;
+ set SQL_MODE='';
+ select 1/0 into div_zero;
+ return div_zero;
+end|
+
+create procedure proc_20028_a()
+begin
+ declare temp integer;
+ select i into temp from table_20028 limit 1;
+end|
+
+create procedure proc_20028_b()
+begin
+ call proc_20028_a();
+end|
+
+create procedure proc_20028_c()
+begin
+ declare div_zero integer;
+ set SQL_MODE='';
+ select 1/0 into div_zero;
+end|
+
+select func_20028_a()|
+select func_20028_b()|
+select func_20028_c()|
+call proc_20028_a()|
+call proc_20028_b()|
+call proc_20028_c()|
+
+SET @@sql_mode=@save_sql_mode|
+
+drop function func_20028_a|
+drop function func_20028_b|
+drop function func_20028_c|
+drop procedure proc_20028_a|
+drop procedure proc_20028_b|
+drop procedure proc_20028_c|
+drop table table_20028|
+
+#
+# Bug#21462 Stored procedures with no arguments require parenthesis
+#
+
+--disable_warnings
+drop procedure if exists proc_21462_a|
+drop procedure if exists proc_21462_b|
+--enable_warnings
+
+create procedure proc_21462_a()
+begin
+ select "Called A";
+end|
+
+create procedure proc_21462_b(x int)
+begin
+ select "Called B";
+end|
+
+call proc_21462_a|
+call proc_21462_a()|
+-- error ER_SP_WRONG_NO_OF_ARGS
+call proc_21462_a(1)|
+
+-- error ER_SP_WRONG_NO_OF_ARGS
+call proc_21462_b|
+-- error ER_SP_WRONG_NO_OF_ARGS
+call proc_21462_b()|
+call proc_21462_b(1)|
+
+drop procedure proc_21462_a|
+drop procedure proc_21462_b|
+
+
+#
+# Bug#19733 "Repeated alter, or repeated create/drop, fails"
+# Check that CREATE/DROP INDEX is re-execution friendly.
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists proc_bug19733|
+--enable_warnings
+create table t3 (s1 int)|
+
+create procedure proc_bug19733()
+begin
+ declare v int default 0;
+ while v < 100 do
+ create index i on t3 (s1);
+ drop index i on t3;
+ set v = v + 1;
+ end while;
+end|
+
+call proc_bug19733()|
+call proc_bug19733()|
+call proc_bug19733()|
+
+drop procedure proc_bug19733|
+drop table t3|
+
+
+#
+# BUG#20492: Subsequent calls to stored procedure yeild incorrect
+# result if join is used
+#
+# Optimized ON expression in join wasn't properly saved for reuse.
+#
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1|
+DROP VIEW IF EXISTS v1, v2|
+DROP TABLE IF EXISTS t3, t4|
+--enable_warnings
+
+CREATE TABLE t3 (t3_id INT)|
+
+INSERT INTO t3 VALUES (0)|
+INSERT INTO t3 VALUES (1)|
+
+CREATE TABLE t4 (t4_id INT)|
+
+INSERT INTO t4 VALUES (2)|
+
+CREATE VIEW v1 AS
+SELECT t3.t3_id, t4.t4_id
+FROM t3 JOIN t4 ON t3.t3_id = 0|
+
+CREATE VIEW v2 AS
+SELECT t3.t3_id AS t3_id_1, v1.t3_id AS t3_id_2, v1.t4_id
+FROM t3 LEFT JOIN v1 ON t3.t3_id = 0|
+
+CREATE PROCEDURE p1() SELECT * FROM v2|
+
+# Results should not differ.
+CALL p1()|
+CALL p1()|
+
+DROP PROCEDURE p1|
+DROP VIEW v1, v2|
+DROP TABLE t3, t4|
+
+
+#
+# BUG#23760: ROW_COUNT() and store procedure not owrking together
+#
+--disable_warnings
+DROP TABLE IF EXISTS bug23760|
+DROP TABLE IF EXISTS bug23760_log|
+DROP PROCEDURE IF EXISTS bug23760_update_log|
+DROP PROCEDURE IF EXISTS bug23760_test_row_count|
+DROP FUNCTION IF EXISTS bug23760_rc_test|
+--enable_warnings
+CREATE TABLE bug23760 (
+ id INT NOT NULL AUTO_INCREMENT ,
+ num INT NOT NULL ,
+ PRIMARY KEY ( id )
+)|
+
+CREATE TABLE bug23760_log (
+ id INT NOT NULL AUTO_INCREMENT ,
+ reason VARCHAR(50)NULL ,
+ ammount INT NOT NULL ,
+ PRIMARY KEY ( id )
+)|
+
+CREATE PROCEDURE bug23760_update_log(r Varchar(50), a INT)
+BEGIN
+ INSERT INTO bug23760_log (reason, ammount) VALUES(r, a);
+END|
+
+CREATE PROCEDURE bug23760_test_row_count()
+BEGIN
+ UPDATE bug23760 SET num = num + 1;
+ CALL bug23760_update_log('Test is working', ROW_COUNT());
+ UPDATE bug23760 SET num = num - 1;
+END|
+
+
+CREATE PROCEDURE bug23760_test_row_count2(level INT)
+BEGIN
+ IF level THEN
+ UPDATE bug23760 SET num = num + 1;
+ CALL bug23760_update_log('Test2 is working', ROW_COUNT());
+ CALL bug23760_test_row_count2(level - 1);
+ END IF;
+END|
+
+CREATE FUNCTION bug23760_rc_test(in_var INT) RETURNS INT RETURN in_var|
+
+INSERT INTO bug23760 (num) VALUES (0), (1), (1), (2), (3), (5), (8)|
+SELECT ROW_COUNT()|
+
+CALL bug23760_test_row_count()|
+SELECT * FROM bug23760_log ORDER BY id|
+
+SET @save_max_sp_recursion= @@max_sp_recursion_depth|
+SELECT @save_max_sp_recursion|
+SET max_sp_recursion_depth= 5|
+SELECT @@max_sp_recursion_depth|
+CALL bug23760_test_row_count2(2)|
+SELECT ROW_COUNT()|
+SELECT * FROM bug23760_log ORDER BY id|
+SELECT * FROM bug23760 ORDER by ID|
+SET max_sp_recursion_depth= @save_max_sp_recursion|
+
+SELECT bug23760_rc_test(123)|
+INSERT INTO bug23760 (num) VALUES (13), (21), (34), (55)|
+SELECT bug23760_rc_test(ROW_COUNT())|
+
+DROP TABLE bug23760, bug23760_log|
+DROP PROCEDURE bug23760_update_log|
+DROP PROCEDURE bug23760_test_row_count|
+DROP PROCEDURE bug23760_test_row_count2|
+DROP FUNCTION bug23760_rc_test|
+
+#
+# BUG#24117: server crash on a FETCH with a cursor on a table which is not in
+# the table cache
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug24117|
+DROP TABLE IF EXISTS t3|
+--enable_warnings
+CREATE TABLE t3(c1 ENUM('abc'))|
+INSERT INTO t3 VALUES('abc')|
+CREATE PROCEDURE bug24117()
+BEGIN
+ DECLARE t3c1 ENUM('abc');
+ DECLARE mycursor CURSOR FOR SELECT c1 FROM t3;
+ OPEN mycursor;
+ FLUSH TABLES;
+ FETCH mycursor INTO t3c1;
+ CLOSE mycursor;
+END|
+CALL bug24117()|
+DROP PROCEDURE bug24117|
+DROP TABLE t3|
+
+#
+# Bug#8407(Stored functions/triggers ignore exception handler)
+#
+
+--disable_warnings
+drop function if exists func_8407_a|
+drop function if exists func_8407_b|
+--enable_warnings
+
+create function func_8407_a() returns int
+begin
+ declare x int;
+
+ declare continue handler for sqlexception
+ begin
+ end;
+
+ select 1 from no_such_view limit 1 into x;
+
+ return x;
+end|
+
+create function func_8407_b() returns int
+begin
+ declare x int default 0;
+
+ declare continue handler for sqlstate '42S02'
+ begin
+ set x:= x+1000;
+ end;
+
+ case (select 1 from no_such_view limit 1)
+ when 1 then set x:= x+1;
+ when 2 then set x:= x+2;
+ else set x:= x+100;
+ end case;
+ set x:=x + 500;
+
+ return x;
+end|
+
+select func_8407_a()|
+select func_8407_b()|
+
+drop function func_8407_a|
+drop function func_8407_b|
+
+#
+# Bug#26503 (Illegal SQL exception handler code causes the server to crash)
+#
+
+--disable_warnings
+drop table if exists table_26503|
+drop procedure if exists proc_26503_ok_1|
+drop procedure if exists proc_26503_ok_2|
+drop procedure if exists proc_26503_ok_3|
+drop procedure if exists proc_26503_ok_4|
+--enable_warnings
+
+create table table_26503(a int unique)|
+
+create procedure proc_26503_ok_1(v int)
+begin
+ declare i int default 5;
+
+ declare continue handler for sqlexception
+ begin
+ select 'caught something';
+ retry:
+ while i > 0 do
+ begin
+ set i = i - 1;
+ select 'looping', i;
+ iterate retry;
+ select 'dead code';
+ end;
+ end while retry;
+ select 'leaving handler';
+ end;
+
+ select 'do something';
+ insert into table_26503 values (v);
+ select 'do something again';
+ insert into table_26503 values (v);
+end|
+
+create procedure proc_26503_ok_2(v int)
+begin
+ declare i int default 5;
+
+ declare continue handler for sqlexception
+ begin
+ select 'caught something';
+ retry:
+ while i > 0 do
+ begin
+ set i = i - 1;
+ select 'looping', i;
+ leave retry;
+ select 'dead code';
+ end;
+ end while;
+ select 'leaving handler';
+ end;
+
+ select 'do something';
+ insert into table_26503 values (v);
+ select 'do something again';
+ insert into table_26503 values (v);
+end|
+
+## The outer retry label should not prevent using the inner label.
+
+create procedure proc_26503_ok_3(v int)
+begin
+ declare i int default 5;
+
+retry:
+ begin
+ declare continue handler for sqlexception
+ begin
+ select 'caught something';
+ retry:
+ while i > 0 do
+ begin
+ set i = i - 1;
+ select 'looping', i;
+ iterate retry;
+ select 'dead code';
+ end;
+ end while retry;
+ select 'leaving handler';
+ end;
+
+ select 'do something';
+ insert into table_26503 values (v);
+ select 'do something again';
+ insert into table_26503 values (v);
+ end;
+end|
+
+## The outer retry label should not prevent using the inner label.
+
+create procedure proc_26503_ok_4(v int)
+begin
+ declare i int default 5;
+
+retry:
+ begin
+ declare continue handler for sqlexception
+ begin
+ select 'caught something';
+ retry:
+ while i > 0 do
+ begin
+ set i = i - 1;
+ select 'looping', i;
+ leave retry;
+ select 'dead code';
+ end;
+ end while;
+ select 'leaving handler';
+ end;
+
+ select 'do something';
+ insert into table_26503 values (v);
+ select 'do something again';
+ insert into table_26503 values (v);
+ end;
+end|
+
+call proc_26503_ok_1(1)|
+call proc_26503_ok_2(2)|
+call proc_26503_ok_3(3)|
+call proc_26503_ok_4(4)|
+
+drop table table_26503|
+drop procedure proc_26503_ok_1|
+drop procedure proc_26503_ok_2|
+drop procedure proc_26503_ok_3|
+drop procedure proc_26503_ok_4|
+
+#
+# Bug#25373: Stored functions wasn't compared correctly which leads to a wrong
+# result.
+#
+--disable_warnings
+DROP FUNCTION IF EXISTS bug25373|
+--disable_warnings
+CREATE FUNCTION bug25373(p1 INTEGER) RETURNS INTEGER
+LANGUAGE SQL DETERMINISTIC
+RETURN p1;|
+CREATE TABLE t3 (f1 INT, f2 FLOAT)|
+INSERT INTO t3 VALUES (1, 3.4), (1, 2), (1, 0.9), (2, 8), (2, 7)|
+SELECT SUM(f2), bug25373(f1) FROM t3 GROUP BY bug25373(f1) WITH ROLLUP|
+DROP FUNCTION bug25373|
+DROP TABLE t3|
+
+
+#
+# BUG#25082: Default database change on trigger execution breaks replication.
+#
+# As it turned out, this bug has actually two bugs. So, here we have two test
+# cases -- one in sp.test, the other in sp-security.test.
+#
+
+#
+# Test case 1: error on dropping the current database.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1|
+DROP DATABASE IF EXISTS mysqltest2|
+--enable_warnings
+
+CREATE DATABASE mysqltest1|
+CREATE DATABASE mysqltest2|
+
+# Test.
+
+CREATE PROCEDURE mysqltest1.p1()
+ DROP DATABASE mysqltest2|
+
+use mysqltest2|
+
+CALL mysqltest1.p1()|
+
+SELECT DATABASE()|
+
+# Cleanup.
+
+DROP DATABASE mysqltest1|
+
+use test|
+
+
+#
+# Bug#20777: Function w BIGINT UNSIGNED shows diff. behaviour --ps-protocol
+--disable_warnings
+drop function if exists bug20777|
+drop table if exists examplebug20777|
+--enable_warnings
+create function bug20777(f1 bigint unsigned) returns bigint unsigned
+begin
+ set f1 = (f1 - 10); set f1 = (f1 + 10);
+return f1;
+end|
+delimiter ;|
+select bug20777(9223372036854775803) as '9223372036854775803 2**63-5';
+select bug20777(9223372036854775804) as '9223372036854775804 2**63-4';
+select bug20777(9223372036854775805) as '9223372036854775805 2**63-3';
+select bug20777(9223372036854775806) as '9223372036854775806 2**63-2';
+select bug20777(9223372036854775807) as '9223372036854775807 2**63-1';
+select bug20777(9223372036854775808) as '9223372036854775808 2**63+0';
+select bug20777(9223372036854775809) as '9223372036854775809 2**63+1';
+select bug20777(9223372036854775810) as '9223372036854775810 2**63+2';
+select bug20777(-9223372036854775808) as 'lower bounds signed bigint';
+select bug20777(9223372036854775807) as 'upper bounds signed bigint';
+select bug20777(0) as 'lower bounds unsigned bigint';
+select bug20777(18446744073709551615) as 'upper bounds unsigned bigint';
+select bug20777(18446744073709551616) as 'upper bounds unsigned bigint + 1';
+select bug20777(-1) as 'lower bounds unsigned bigint - 1';
+
+create table examplebug20777 as select
+ 0 as 'i',
+ bug20777(9223372036854775806) as '2**63-2',
+ bug20777(9223372036854775807) as '2**63-1',
+ bug20777(9223372036854775808) as '2**63',
+ bug20777(9223372036854775809) as '2**63+1',
+ bug20777(18446744073709551614) as '2**64-2',
+ bug20777(18446744073709551615) as '2**64-1',
+ bug20777(18446744073709551616) as '2**64',
+ bug20777(0) as '0',
+ bug20777(-1) as '-1';
+insert into examplebug20777 values (1, 9223372036854775806, 9223372036854775807, 223372036854775808, 9223372036854775809, 18446744073709551614, 18446744073709551615, 8446744073709551616, 0, -1);
+show create table examplebug20777;
+select * from examplebug20777 order by i;
+
+drop table examplebug20777;
+select bug20777(18446744073709551613)+1;
+drop function bug20777;
+delimiter |;
+
+
+#
+# BUG#5274: Stored procedure crash if length of CHAR variable too great.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP FUNCTION IF EXISTS bug5274_f1|
+DROP FUNCTION IF EXISTS bug5274_f2|
+--enable_warnings
+
+# Test.
+
+CREATE FUNCTION bug5274_f1(p1 CHAR) RETURNS CHAR
+ RETURN CONCAT(p1, p1)|
+
+CREATE FUNCTION bug5274_f2() RETURNS CHAR
+BEGIN
+ DECLARE v1 INT DEFAULT 0;
+ DECLARE v2 CHAR DEFAULT 'x';
+
+ WHILE v1 < 30 DO
+ SET v1 = v1 + 1;
+ SET v2 = bug5274_f1(v2);
+ END WHILE;
+
+ RETURN v2;
+END|
+
+SELECT bug5274_f2()|
+
+# Cleanup.
+
+DROP FUNCTION bug5274_f1|
+DROP FUNCTION bug5274_f2|
+
+#
+# Bug#21513 (SP having body starting with quoted label rendered unusable)
+#
+--disable_warnings
+drop procedure if exists proc_21513|
+--enable_warnings
+
+create procedure proc_21513()`my_label`:BEGIN END|
+show create procedure proc_21513|
+
+drop procedure proc_21513|
+
+#
+# BUG#NNNN: New bug synopsis
+#
+#--disable_warnings
+#drop procedure if exists bugNNNN|
+#--enable_warnings
+#create procedure bugNNNN...
+#
+# Add bugs above this line. Use existing tables t1 and t2 when
+# practical, or create table t3,t4 etc temporarily (and drop them).
+# NOTE: The delimiter is `|`, and not `;`. It is changed to `;`
+# at the end of the file!
+#
+
+delimiter ;|
+drop table t1,t2;
+
+# Disable warnings to allow test run without InnoDB
+--disable_warnings
+CREATE TABLE t1 (a int auto_increment primary key) engine=MyISAM;
+CREATE TABLE t2 (a int auto_increment primary key, b int) engine=innodb;
+--enable_warnings
+set @a=0;
+
+delimiter |;
+CREATE function bug27354() RETURNS int not deterministic
+begin
+insert into t1 values (null);
+set @a=@a+1;
+return @a;
+end|
+
+delimiter ;|
+update t2 set b=1 where a=bug27354();
+select count(t_1.a),count(t_2.a) from t1 as t_1, t2 as t_2 /* must be 0,0 */;
+insert into t2 values (1,1),(2,2),(3,3);
+update t2 set b=-b where a=bug27354();
+select * from t2 /* must return 1,-1 ... */;
+select count(*) from t1 /* must be 3 */;
+
+
+drop table t1,t2;
+drop function bug27354;
+
+#
+# Bug #28605: SHOW CREATE VIEW with views using stored_procedures no longer
+# showing SP names.
+#
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+
+CREATE FUNCTION metered(a INT) RETURNS INT RETURN 12;
+
+CREATE VIEW v1 AS SELECT test.metered(a) as metered FROM t1;
+
+SHOW CREATE VIEW v1;
+
+DROP VIEW v1;
+DROP FUNCTION metered;
+DROP TABLE t1;
+
+#
+# Bug#29834: Accessing a view column by name in SP/PS causes a memory leak.
+#
+# This is leak test. Run with large number assigned to $execute_cnt,
+# $p1_cnt, $p2_cnt, @p1_p2_cnt, $f1_normal_cnt or $f1_prep_cnt variables.
+#
+
+let $execute_cnt= 2;
+let $p1_cnt= 2;
+let $p2_cnt= 2;
+SET @p1_p2_cnt= 2;
+let $f1_normal_cnt= 2;
+let $f1_prep_cnt= 2;
+
+CREATE TABLE t1 (c1 INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+PREPARE s1 FROM 'SELECT c1 FROM v1';
+while ($execute_cnt)
+{
+ EXECUTE s1;
+ dec $execute_cnt;
+}
+
+DELIMITER |;
+
+CREATE PROCEDURE p1(IN loops BIGINT(19) UNSIGNED)
+BEGIN
+ WHILE loops > 0 DO
+ SELECT c1 FROM v1;
+ SET loops = loops - 1;
+ END WHILE;
+END|
+
+CREATE PROCEDURE p2(IN loops BIGINT(19) UNSIGNED)
+BEGIN
+ WHILE loops > 0 DO
+ SELECT c1 FROM v1;
+ CALL p1(@p1_p2_cnt);
+ SET loops = loops - 1;
+ END WHILE;
+END|
+
+CREATE FUNCTION f1(loops INT UNSIGNED)
+ RETURNS INT
+BEGIN
+ DECLARE tmp INT;
+ WHILE loops > 0 DO
+ SELECT c1 INTO tmp FROM v1;
+ SET loops = loops - 1;
+ END WHILE;
+ RETURN loops;
+END|
+
+DELIMITER ;|
+
+eval CALL p1($p1_cnt);
+eval CALL p2($p2_cnt);
+
+eval SELECT f1($f1_normal_cnt);
+
+eval PREPARE s1 FROM 'SELECT f1($f1_prep_cnt)';
+EXECUTE s1;
+EXECUTE s1;
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP FUNCTION f1;
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug#28551 "The warning 'No database selected' is reported when calling
+# stored procedures"
+#
+--disable_warnings
+drop database if exists mysqltest_db1;
+--enable_warnings
+create database mysqltest_db1;
+create procedure mysqltest_db1.sp_bug28551() begin end;
+call mysqltest_db1.sp_bug28551();
+show warnings;
+drop database mysqltest_db1;
+#
+# Bug#29050 Creation of a legal stored procedure fails if a database is not
+# selected prior
+#
+--disable_warnings
+drop database if exists mysqltest_db1;
+drop table if exists test.t1;
+--enable_warnings
+create database mysqltest_db1;
+use mysqltest_db1;
+# For the sake of its side effect
+drop database mysqltest_db1;
+# Now we have no current database selected.
+create table test.t1 (id int);
+insert into test.t1 (id) values (1);
+delimiter //;
+create procedure test.sp_bug29050() begin select * from t1; end//
+delimiter ;//
+show warnings;
+call test.sp_bug29050();
+show warnings;
+# Restore the old current database
+use test;
+drop procedure sp_bug29050;
+drop table t1;
+
+#
+# Bug #29338: no optimization for stored functions with a trivial body
+# always returning constant.
+#
+
+CREATE FUNCTION f1() RETURNS INT DETERMINISTIC RETURN 2;
+CREATE FUNCTION f2(I INT) RETURNS INT DETERMINISTIC RETURN 3;
+
+CREATE TABLE t1 (c1 INT, INDEX(c1));
+
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+
+CREATE VIEW v1 AS SELECT c1 FROM t1;
+
+EXPLAIN SELECT * FROM t1 WHERE c1=1;
+EXPLAIN SELECT * FROM t1 WHERE c1=f1();
+
+EXPLAIN SELECT * FROM v1 WHERE c1=1;
+EXPLAIN SELECT * FROM v1 WHERE c1=f1();
+
+EXPLAIN SELECT * FROM t1 WHERE c1=f2(10);
+EXPLAIN SELECT * FROM t1 WHERE c1=f2(c1);
+EXPLAIN SELECT * FROM t1 WHERE c1=f2(rand());
+
+
+DROP VIEW v1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP TABLE t1;
+
+#
+# Bug #30120 SP with local variables with non-ASCII names crashes server.
+#
+
+SET NAMES latin1;
+
+DELIMITER |;
+
+CREATE PROCEDURE p1()
+BEGIN
+ DECLARE áâä INT;
+ SELECT áâä;
+END|
+
+DELIMITER ;|
+
+CALL p1();
+
+SET NAMES default;
+DROP PROCEDURE p1;
+
+#
+# Bug#29408 Cannot find view in columns table if the selection contains a function
+#
+delimiter |;
+
+create function f1()
+ returns int(11)
+not deterministic
+contains sql
+sql security definer
+comment ''
+begin
+ declare x int(11);
+ set x=-1;
+ return x;
+end|
+
+delimiter ;|
+
+create view v1 as select 1 as one, f1() as days;
+
+connect (bug29408, localhost, root,,*NO-ONE*);
+connection bug29408;
+
+show create view test.v1;
+select column_name from information_schema.columns
+where table_name='v1' and table_schema='test';
+
+connection default;
+disconnect bug29408;
+drop view v1;
+drop function f1;
+
+#
+# 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;
+
+###########################################################################
+
+#
+# Bug#31035: select from function, group by result crasher.
+#
+
+###########################################################################
+
+--echo
+
+--echo #
+--echo # Bug#31035.
+--echo #
+
+--echo
+
+--echo #
+--echo # - Prepare.
+--echo #
+
+--echo
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+DROP FUNCTION IF EXISTS f4;
+--enable_warnings
+
+--echo
+
+--echo #
+--echo # - Create required objects.
+--echo #
+
+--echo
+
+CREATE TABLE t1(c1 INT);
+
+--echo
+
+INSERT INTO t1 VALUES (1), (2), (3);
+
+--echo
+
+CREATE FUNCTION f1()
+ RETURNS INT
+ NOT DETERMINISTIC
+ RETURN 1;
+
+--echo
+
+CREATE FUNCTION f2(p INT)
+ RETURNS INT
+ NOT DETERMINISTIC
+ RETURN 1;
+
+--echo
+
+CREATE FUNCTION f3()
+ RETURNS INT
+ DETERMINISTIC
+ RETURN 1;
+
+--echo
+
+CREATE FUNCTION f4(p INT)
+ RETURNS INT
+ DETERMINISTIC
+ RETURN 1;
+
+--echo
+
+--echo #
+--echo # - Check.
+--echo #
+
+--echo
+
+# Not deterministic function, no arguments.
+
+SELECT f1() AS a FROM t1 GROUP BY a;
+
+--echo
+
+# Not deterministic function, non-constant argument.
+
+SELECT f2(@a) AS a FROM t1 GROUP BY a;
+
+--echo
+
+# Deterministic function, no arguments.
+
+SELECT f3() AS a FROM t1 GROUP BY a;
+
+--echo
+
+# Deterministic function, constant argument.
+
+SELECT f4(0) AS a FROM t1 GROUP BY a;
+
+--echo
+
+# Deterministic function, non-constant argument.
+
+SELECT f4(@a) AS a FROM t1 GROUP BY a;
+
+--echo
+
+--echo #
+--echo # - Cleanup.
+--echo #
+
+--echo
+
+DROP TABLE t1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;
+DROP FUNCTION f4;
+
+--echo
+
+###########################################################################
+
+#
+# Bug#31191: JOIN in combination with stored function crashes the server.
+#
+
+###########################################################################
+
+--echo #
+--echo # Bug#31191.
+--echo #
+
+--echo
+
+--echo #
+--echo # - Prepare.
+--echo #
+
+--echo
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+--echo
+
+--echo #
+--echo # - Create required objects.
+--echo #
+
+--echo
+
+CREATE TABLE t1 (
+ id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ barcode INT(8) UNSIGNED ZEROFILL nOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE KEY barcode (barcode)
+);
+
+--echo
+
+INSERT INTO t1 (id, barcode) VALUES (1, 12345678);
+INSERT INTO t1 (id, barcode) VALUES (2, 12345679);
+
+--echo
+
+CREATE TABLE test.t2 (
+ id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ barcode BIGINT(11) UNSIGNED ZEROFILL NOT NULL,
+ PRIMARY KEY (id)
+);
+
+--echo
+
+INSERT INTO test.t2 (id, barcode) VALUES (1, 12345106708);
+INSERT INTO test.t2 (id, barcode) VALUES (2, 12345106709);
+
+--echo
+
+CREATE FUNCTION f1(p INT(8))
+ RETURNS BIGINT(11) UNSIGNED
+ READS SQL DATA
+ RETURN FLOOR(p/1000)*1000000 + 100000 + FLOOR((p MOD 1000)/10)*100 + (p MOD 10);
+
+--echo
+
+--echo #
+--echo # - Check.
+--echo #
+
+--echo
+
+SELECT DISTINCT t1.barcode, f1(t1.barcode)
+FROM t1
+INNER JOIN t2
+ON f1(t1.barcode) = t2.barcode
+WHERE t1.barcode=12345678;
+
+--echo
+
+--echo #
+--echo # - Cleanup.
+--echo #
+
+--echo
+
+DROP TABLE t1;
+DROP TABLE t2;
+DROP FUNCTION f1;
+
+--echo
+
+###########################################################################
+
+#
+# Bug#31226: Group by function crashes mysql.
+#
+
+###########################################################################
+
+--echo #
+--echo # Bug#31226.
+--echo #
+
+--echo
+
+--echo #
+--echo # - Prepare.
+--echo #
+
+--echo
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+--echo
+
+--echo #
+--echo # - Create required objects.
+--echo #
+
+--echo
+
+CREATE TABLE t1(id INT);
+
+--echo
+
+INSERT INTO t1 VALUES (1), (2), (3);
+
+--echo
+
+CREATE FUNCTION f1()
+ RETURNS DATETIME
+ NOT DETERMINISTIC NO SQL
+ RETURN NOW();
+
+--echo
+
+--echo #
+--echo # - Check.
+--echo #
+
+--echo
+
+--replace_column 1 <timestamp>
+SELECT f1() FROM t1 GROUP BY 1;
+
+--echo
+
+--echo #
+--echo # - Cleanup.
+--echo #
+
+--echo
+
+DROP TABLE t1;
+DROP FUNCTION f1;
+
+--echo
+
+###########################################################################
+
+#
+# Bug#28318 (CREATE FUNCTION (UDF) requires a schema)
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS db28318_a.t1;
+DROP PROCEDURE IF EXISTS db28318_b.t2;
+DROP DATABASE IF EXISTS db28318_a;
+DROP DATABASE IF EXISTS db28318_b;
+--enable_warnings
+
+CREATE DATABASE db28318_a;
+CREATE DATABASE db28318_b;
+
+CREATE PROCEDURE db28318_a.t1() SELECT "db28318_a.t1";
+CREATE PROCEDURE db28318_b.t2() CALL t1();
+
+use db28318_a;
+
+# In db28318_b.t2, t1 refers to db28318_b.t1
+--error ER_SP_DOES_NOT_EXIST
+CALL db28318_b.t2();
+
+DROP PROCEDURE db28318_a.t1;
+DROP PROCEDURE db28318_b.t2;
+DROP DATABASE db28318_a;
+DROP DATABASE db28318_b;
+
+
+--echo # ------------------------------------------------------------------
+--echo # -- End of 5.0 tests
+--echo # ------------------------------------------------------------------
diff --git a/mysql-test/t/sp_notembedded.test b/mysql-test/t/sp_notembedded.test
new file mode 100644
index 00000000000..4e18e69d3d2
--- /dev/null
+++ b/mysql-test/t/sp_notembedded.test
@@ -0,0 +1,287 @@
+# Can't test with embedded server
+-- source include/not_embedded.inc
+
+--sleep 2
+--disable_warnings
+drop table if exists t1,t3;
+--enable_warnings
+delimiter |;
+
+#
+# BUG#4902: Stored procedure with SHOW WARNINGS leads to packet error
+#
+# Added tests for show grants command
+--disable_warnings
+drop procedure if exists bug4902|
+--enable_warnings
+create procedure bug4902()
+begin
+ show grants for 'root'@'localhost';
+end|
+--disable_parsing
+show binlog events|
+show storage engines|
+show master status|
+show slave hosts|
+show slave status|
+--enable_parsing
+
+call bug4902()|
+call bug4902()|
+
+drop procedure bug4902|
+
+# We need separate SP for SHOW PROCESSLIST since we want use replace_column
+--disable_warnings
+drop procedure if exists bug4902_2|
+--enable_warnings
+create procedure bug4902_2()
+begin
+ show processlist;
+end|
+--replace_column 1 # 6 # 3 localhost
+call bug4902_2()|
+--replace_column 1 # 6 # 3 localhost
+call bug4902_2()|
+drop procedure bug4902_2|
+
+
+#
+# BUG#5278: Stored procedure packets out of order if SET PASSWORD.
+#
+--disable_warnings
+drop function if exists bug5278|
+--enable_warnings
+create function bug5278 () returns char
+begin
+ SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
+ return 'okay';
+end|
+
+--error 1133
+select bug5278()|
+--error 1133
+select bug5278()|
+drop function bug5278|
+
+
+--disable_warnings
+drop table if exists t1|
+--enable_warnings
+create table t1 (
+ id char(16) not null default '',
+ data int not null
+)|
+#
+# BUG#3583: query cache doesn't work for stored procedures
+#
+--disable_warnings
+drop procedure if exists bug3583|
+--enable_warnings
+--disable_warnings
+drop procedure if exists bug3583|
+--enable_warnings
+create procedure bug3583()
+begin
+ declare c int;
+
+ select * from t1;
+ select count(*) into c from t1;
+ select c;
+end|
+
+insert into t1 values ("x", 3), ("y", 5)|
+set @x = @@query_cache_size|
+set global query_cache_size = 10*1024*1024|
+
+flush status|
+flush query cache|
+show status like 'Qcache_hits'|
+call bug3583()|
+show status like 'Qcache_hits'|
+call bug3583()|
+call bug3583()|
+show status like 'Qcache_hits'|
+
+set global query_cache_size = @x|
+flush status|
+flush query cache|
+delete from t1|
+drop procedure bug3583|
+drop table t1|
+
+#
+# BUG#6807: Stored procedure crash if CREATE PROCEDURE ... KILL QUERY
+#
+--disable_warnings
+drop procedure if exists bug6807|
+--enable_warnings
+create procedure bug6807()
+begin
+ declare id int;
+
+ set id = connection_id();
+ kill query id;
+ select 'Not reached';
+end|
+
+--error 1317
+call bug6807()|
+--error 1317
+call bug6807()|
+
+drop procedure bug6807|
+
+
+#
+# BUG#10100: function (and stored procedure?) recursivity problem
+#
+--disable_warnings
+drop function if exists bug10100f|
+drop procedure if exists bug10100p|
+drop procedure if exists bug10100t|
+drop procedure if exists bug10100pt|
+drop procedure if exists bug10100pv|
+drop procedure if exists bug10100pd|
+drop procedure if exists bug10100pc|
+--enable_warnings
+# routines with simple recursion
+create function bug10100f(prm int) returns int
+begin
+ if prm > 1 then
+ return prm * bug10100f(prm - 1);
+ end if;
+ return 1;
+end|
+create procedure bug10100p(prm int, inout res int)
+begin
+ set res = res * prm;
+ if prm > 1 then
+ call bug10100p(prm - 1, res);
+ end if;
+end|
+create procedure bug10100t(prm int)
+begin
+ declare res int;
+ set res = 1;
+ call bug10100p(prm, res);
+ select res;
+end|
+
+# a procedure which use tables and recursion
+create table t3 (a int)|
+insert into t3 values (0)|
+create view v1 as select a from t3;
+create procedure bug10100pt(level int, lim int)
+begin
+ if level < lim then
+ update t3 set a=level;
+ FLUSH TABLES;
+ call bug10100pt(level+1, lim);
+ else
+ select * from t3;
+ end if;
+end|
+# view & recursion
+create procedure bug10100pv(level int, lim int)
+begin
+ if level < lim then
+ update v1 set a=level;
+ FLUSH TABLES;
+ call bug10100pv(level+1, lim);
+ else
+ select * from v1;
+ end if;
+end|
+# dynamic sql & recursion
+prepare stmt2 from "select * from t3;";
+create procedure bug10100pd(level int, lim int)
+begin
+ if level < lim then
+ select level;
+ prepare stmt1 from "update t3 set a=a+2";
+ execute stmt1;
+ FLUSH TABLES;
+ execute stmt1;
+ FLUSH TABLES;
+ execute stmt1;
+ FLUSH TABLES;
+ deallocate prepare stmt1;
+ execute stmt2;
+ select * from t3;
+ call bug10100pd(level+1, lim);
+ else
+ execute stmt2;
+ end if;
+end|
+# cursor & recursion
+create procedure bug10100pc(level int, lim int)
+begin
+ declare lv int;
+ declare c cursor for select a from t3;
+ open c;
+ if level < lim then
+ select level;
+ fetch c into lv;
+ select lv;
+ update t3 set a=level+lv;
+ FLUSH TABLES;
+ call bug10100pc(level+1, lim);
+ else
+ select * from t3;
+ end if;
+ close c;
+end|
+
+#end of the stack checking
+set @@max_sp_recursion_depth=255|
+set @var=1|
+#disable log because error about stack overrun contains numbers which
+#depend on a system
+-- disable_result_log
+-- error ER_STACK_OVERRUN_NEED_MORE
+call bug10100p(255, @var)|
+-- error ER_STACK_OVERRUN_NEED_MORE
+call bug10100pt(1,255)|
+-- error ER_STACK_OVERRUN_NEED_MORE
+call bug10100pv(1,255)|
+-- error ER_STACK_OVERRUN_NEED_MORE
+call bug10100pd(1,255)|
+-- error ER_STACK_OVERRUN_NEED_MORE
+call bug10100pc(1,255)|
+-- enable_result_log
+set @@max_sp_recursion_depth=0|
+
+deallocate prepare stmt2|
+
+drop function bug10100f|
+drop procedure bug10100p|
+drop procedure bug10100t|
+drop procedure bug10100pt|
+drop procedure bug10100pv|
+drop procedure bug10100pd|
+drop procedure bug10100pc|
+drop view v1|
+drop table t3|
+
+delimiter ;|
+
+#
+# Bug#15298 SHOW GRANTS FOR CURRENT_USER: Incorrect output in DEFINER context
+#
+--disable_warnings
+drop procedure if exists bug15298_1;
+drop procedure if exists bug15298_2;
+--enable_warnings
+grant all privileges on test.* to 'mysqltest_1'@'localhost';
+create procedure 15298_1 () sql security definer show grants for current_user;
+create procedure 15298_2 () sql security definer show grants;
+
+connect (con1,localhost,mysqltest_1,,test);
+call 15298_1();
+call 15298_2();
+
+connection default;
+drop user mysqltest_1@localhost;
+drop procedure 15298_1;
+drop procedure 15298_2;
diff --git a/mysql-test/t/sp_stress_case.test b/mysql-test/t/sp_stress_case.test
new file mode 100644
index 00000000000..1b5bd8991a9
--- /dev/null
+++ b/mysql-test/t/sp_stress_case.test
@@ -0,0 +1,89 @@
+#
+# Bug#19194 (Right recursion in parser for CASE causes excessive stack
+# usage, limitation)
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS proc_19194_codegen;
+DROP PROCEDURE IF EXISTS bug_19194_simple;
+DROP PROCEDURE IF EXISTS bug_19194_searched;
+--enable_warnings
+
+delimiter |;
+
+CREATE PROCEDURE proc_19194_codegen(
+ IN proc_name VARCHAR(50),
+ IN count INTEGER,
+ IN simple INTEGER,
+ OUT body MEDIUMTEXT)
+BEGIN
+ DECLARE code MEDIUMTEXT;
+ DECLARE i INT DEFAULT 1;
+
+ SET code = concat("CREATE PROCEDURE ", proc_name, "(i INT)\n");
+ SET code = concat(code, "BEGIN\n");
+ SET code = concat(code, " DECLARE str CHAR(10);\n");
+
+ IF (simple)
+ THEN
+ SET code = concat(code, " CASE i\n");
+ ELSE
+ SET code = concat(code, " CASE\n");
+ END IF;
+
+ WHILE (i <= count)
+ DO
+ IF (simple)
+ THEN
+ SET code = concat(code, " WHEN ", i, " THEN SET str=\"", i, "\";\n");
+ ELSE
+ SET code = concat(code, " WHEN i=", i, " THEN SET str=\"", i, "\";\n");
+ END IF;
+
+ SET i = i + 1;
+ END WHILE;
+
+ SET code = concat(code, " ELSE SET str=\"unknown\";\n");
+ SET code = concat(code, " END CASE;\n");
+ SET code = concat(code, " SELECT str;\n");
+
+ SET code = concat(code, "END\n");
+
+ SET body = code;
+END|
+
+delimiter ;|
+
+set @body="";
+call proc_19194_codegen("test_simple", 10, 1, @body);
+select @body;
+call proc_19194_codegen("test_searched", 10, 0, @body);
+select @body;
+
+--disable_query_log
+call proc_19194_codegen("bug_19194_simple", 5000, 1, @body);
+let $proc_body = `select @body`;
+eval $proc_body;
+call proc_19194_codegen("bug_19194_searched", 5000, 1, @body);
+let $proc_body = `select @body`;
+eval $proc_body;
+--enable_query_log
+
+CALL bug_19194_simple(1);
+CALL bug_19194_simple(2);
+CALL bug_19194_simple(1000);
+CALL bug_19194_simple(4998);
+CALL bug_19194_simple(4999);
+CALL bug_19194_simple(9999);
+
+CALL bug_19194_searched(1);
+CALL bug_19194_searched(2);
+CALL bug_19194_searched(1000);
+CALL bug_19194_searched(4998);
+CALL bug_19194_searched(4999);
+CALL bug_19194_searched(9999);
+
+DROP PROCEDURE proc_19194_codegen;
+DROP PROCEDURE bug_19194_simple;
+DROP PROCEDURE bug_19194_searched;
+
diff --git a/mysql-test/t/sp_trans.test b/mysql-test/t/sp_trans.test
new file mode 100644
index 00000000000..60f7e3326b4
--- /dev/null
+++ b/mysql-test/t/sp_trans.test
@@ -0,0 +1,565 @@
+#
+# tests that require InnoDB...
+#
+
+-- source include/have_log_bin.inc
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+
+delimiter |;
+
+#
+# BUG#8850: Truncate table in a stored procedure locks the tables
+#
+--disable_warnings
+drop procedure if exists bug8850|
+--enable_warnings
+create table t1 (a int) engine=innodb|
+create procedure bug8850()
+begin
+ truncate table t1; insert t1 values (1); rollback;
+end|
+
+set autocommit=0|
+insert t1 values (2)|
+call bug8850()|
+commit|
+select * from t1|
+
+call bug8850()|
+set autocommit=1|
+select * from t1|
+drop table t1|
+drop procedure bug8850|
+
+
+#
+# BUG#10015: Crash in InnoDB if stored routines are used
+# (crash happens in auto-commit mode)
+#
+--disable_warnings
+drop function if exists bug10015_1|
+drop function if exists bug10015_2|
+drop function if exists bug10015_3|
+drop function if exists bug10015_4|
+drop function if exists bug10015_5|
+drop function if exists bug10015_6|
+drop function if exists bug10015_7|
+drop procedure if exists bug10015_8|
+--enable_warnings
+create table t1 (id int) engine=innodb|
+create table t2 (id int primary key, j int) engine=innodb|
+insert into t1 values (1),(2),(3)|
+create function bug10015_1() returns int return (select count(*) from t1)|
+select *, bug10015_1() from t1|
+drop function bug10015_1|
+# Test couple of a bit more complex cases
+create function bug10015_2() returns int
+ begin
+ declare i, s int;
+ set i:= (select min(id) from t1);
+ set s:= (select max(id) from t1);
+ return (s - i);
+ end|
+select *, bug10015_2() from t1|
+drop function bug10015_2|
+create function bug10015_3() returns int
+ return (select max(a.id - b.id) from t1 as a, t1 as b where a.id >= b.id)|
+select *, bug10015_3() from t1|
+drop function bug10015_3|
+create function bug10015_4(i int) returns int
+ begin
+ declare m int;
+ set m:= (select max(id) from t2);
+ insert into t2 values (i, m);
+ return m;
+ end|
+select *, bug10015_4(id) from t1|
+select * from t2|
+drop function bug10015_4|
+# Now let us test how statement rollback works
+# This function will cause the whole stmt to be rolled back,
+# there should not be any traces left.
+create function bug10015_5(i int) returns int
+ begin
+ if (i = 5) then
+ insert into t2 values (1, 0);
+ end if;
+ return i;
+ end|
+--error 1062
+insert into t1 values (bug10015_5(4)), (bug10015_5(5))|
+select * from t1|
+drop function bug10015_5|
+# Thanks to error-handler this function should not cause rollback
+# of statement calling it. But insert statement in it should be
+# rolled back completely and don't leave any traces in t2.
+# Unfortunately we can't implement such behavior in 5.0, so it
+# is something to be fixed in later 5.* releases (TODO).
+create function bug10015_6(i int) returns int
+ begin
+ declare continue handler for sqlexception set @error_in_func:= 1;
+ if (i = 5) then
+ insert into t2 values (4, 0), (1, 0);
+ end if;
+ return i;
+ end|
+set @error_in_func:= 0|
+insert into t1 values (bug10015_6(5)), (bug10015_6(6))|
+select @error_in_func|
+select * from t1|
+select * from t2|
+drop function bug10015_6|
+# Let us test that we don't allow any statements causing transaction
+# commit in stored functions (we test only most interesting cases here).
+# Cases which can be caught at creation time:
+--error 1422
+create function bug10015_7() returns int
+ begin
+ alter table t1 add k int;
+ return 1;
+ end|
+--error 1422
+create function bug10015_7() returns int
+ begin
+ start transaction;
+ return 1;
+ end|
+--error 1422
+create function bug10015_7() returns int
+ begin
+ drop table t1;
+ return 1;
+ end|
+# It should be OK to drop temporary table.
+create function bug10015_7() returns int
+ begin
+ drop temporary table t1;
+ return 1;
+ end|
+drop function bug10015_7|
+--error 1422
+create function bug10015_7() returns int
+ begin
+ commit;
+ return 1;
+ end|
+# Now let us test cases which we can catch only at run-time:
+create function bug10015_7() returns int
+ begin
+ call bug10015_8();
+ return 1;
+ end|
+create procedure bug10015_8() alter table t1 add k int|
+--error 1422
+select *, bug10015_7() from t1|
+drop procedure bug10015_8|
+create procedure bug10015_8() start transaction|
+--error 1422
+select *, bug10015_7() from t1|
+drop procedure bug10015_8|
+# Again it is OK to drop temporary table
+# We are surpressing warnings since they are not essential
+create procedure bug10015_8() drop temporary table if exists t1_temp|
+--disable_warnings
+select *, bug10015_7() from t1|
+--enable_warnings
+drop procedure bug10015_8|
+create procedure bug10015_8() commit|
+--error 1422
+select *, bug10015_7() from t1|
+drop procedure bug10015_8|
+drop function bug10015_7|
+drop table t1, t2|
+
+
+#
+# BUG#13825 "Triggers: crash if release savepoint".
+# Also general test for handling of savepoints in stored routines.
+#
+# According to SQL standard we should establish new savepoint
+# level before executing stored function/trigger and destroy
+# this savepoint level after execution. Stored procedures by
+# default should be executed using the same savepoint level
+# as their caller (to execute stored procedure using new
+# savepoint level one should explicitly specify NEW SAVEPOINT
+# LEVEL clause in procedure creation statement which MySQL
+# does not support yet).
+--disable_warnings
+drop function if exists bug13825_0|
+drop function if exists bug13825_1|
+drop function if exists bug13825_2|
+drop function if exists bug13825_3|
+drop function if exists bug13825_4|
+drop function if exists bug13825_5|
+drop procedure if exists bug13825_0|
+drop procedure if exists bug13825_1|
+drop procedure if exists bug13825_2|
+drop table if exists t1|
+--enable_warnings
+create table t1 (i int) engine=innodb|
+create table t2 (i int) engine=innodb|
+create function bug13825_0() returns int
+begin
+ rollback to savepoint x;
+ return 1;
+end|
+create function bug13825_1() returns int
+begin
+ release savepoint x;
+ return 1;
+end|
+create function bug13825_2() returns int
+begin
+ insert into t1 values (2);
+ savepoint x;
+ insert into t1 values (3);
+ rollback to savepoint x;
+ insert into t1 values (4);
+ return 1;
+end|
+create procedure bug13825_0()
+begin
+ rollback to savepoint x;
+end|
+create procedure bug13825_1()
+begin
+ release savepoint x;
+end|
+create procedure bug13825_2()
+begin
+ savepoint x;
+end|
+insert into t2 values (1)|
+create trigger t2_bi before insert on t2 for each row
+ rollback to savepoint x|
+create trigger t2_bu before update on t2 for each row
+ release savepoint x|
+create trigger t2_bd before delete on t2 for each row
+begin
+ insert into t1 values (2);
+ savepoint x;
+ insert into t1 values (3);
+ rollback to savepoint x;
+ insert into t1 values (4);
+end|
+create function bug13825_3(rb int) returns int
+begin
+ insert into t1 values(1);
+ savepoint x;
+ insert into t1 values(2);
+ if rb then
+ rollback to savepoint x;
+ end if;
+ insert into t1 values(3);
+ return rb;
+end|
+create function bug13825_4() returns int
+begin
+ savepoint x;
+ insert into t1 values(2);
+ rollback to savepoint x;
+ return 0;
+end|
+create function bug13825_5(p int) returns int
+begin
+ savepoint x;
+ insert into t2 values(p);
+ rollback to savepoint x;
+ insert into t2 values(p+1);
+ return p;
+end|
+set autocommit= 0|
+# Test of savepoint level handling for stored functions and triggers
+begin |
+insert into t1 values (1)|
+savepoint x|
+--error ER_SP_DOES_NOT_EXIST
+set @a:= bug13825_0()|
+--error ER_SP_DOES_NOT_EXIST
+insert into t2 values (2)|
+--error ER_SP_DOES_NOT_EXIST
+set @a:= bug13825_1()|
+--error ER_SP_DOES_NOT_EXIST
+update t2 set i = 2|
+set @a:= bug13825_2()|
+select * from t1|
+rollback to savepoint x|
+select * from t1|
+delete from t2|
+select * from t1|
+rollback to savepoint x|
+select * from t1|
+# Of course savepoints set in function should not be visible from its caller
+release savepoint x|
+set @a:= bug13825_2()|
+select * from t1|
+--error ER_SP_DOES_NOT_EXIST
+rollback to savepoint x|
+delete from t1|
+commit|
+# Test of savepoint level handling for stored procedures
+begin|
+insert into t1 values (5)|
+savepoint x|
+insert into t1 values (6)|
+call bug13825_0()|
+select * from t1|
+call bug13825_1()|
+--error ER_SP_DOES_NOT_EXIST
+rollback to savepoint x|
+savepoint x|
+insert into t1 values (7)|
+call bug13825_2()|
+rollback to savepoint x|
+select * from t1|
+delete from t1|
+commit|
+set autocommit= 1|
+# Let us test that savepoints work inside of functions
+# even in auto-commit mode
+select bug13825_3(0)|
+select * from t1|
+delete from t1|
+select bug13825_3(1)|
+select * from t1|
+delete from t1|
+# Curious case: rolling back to savepoint which is set by first
+# statement in function should not rollback whole transaction.
+set autocommit= 0|
+begin|
+insert into t1 values (1)|
+set @a:= bug13825_4()|
+select * from t1|
+delete from t1|
+commit|
+set autocommit= 1|
+# Other curious case: savepoint in the middle of statement
+drop table t2|
+create table t2 (i int) engine=innodb|
+insert into t1 values (1), (bug13825_5(2)), (3)|
+select * from t1|
+select * from t2|
+# Cleanup
+drop function bug13825_0|
+drop function bug13825_1|
+drop function bug13825_2|
+drop function bug13825_3|
+drop function bug13825_4|
+drop function bug13825_5|
+drop procedure bug13825_0|
+drop procedure bug13825_1|
+drop procedure bug13825_2|
+drop table t1, t2|
+
+
+#
+# BUG#14840: CONTINUE handler problem
+#
+--disable_warnings
+drop table if exists t3|
+drop procedure if exists bug14840_1|
+drop procedure if exists bug14840_2|
+--enable_warnings
+
+create table t3
+(
+ x int,
+ y int,
+ primary key (x)
+) engine=InnoDB|
+
+# This used to hang the client since the insert returned with an
+# error status (left over from the update) even though it succeeded,
+# which caused the execution to end at that point.
+create procedure bug14840_1()
+begin
+ declare err int default 0;
+ declare continue handler for sqlexception
+ set err = err + 1;
+
+ start transaction;
+ update t3 set x = 1, y = 42 where x = 2;
+ insert into t3 values (3, 4711);
+ if err > 0 then
+ rollback;
+ else
+ commit;
+ end if;
+ select * from t3;
+end|
+
+# A simpler (non-transactional) case: insert at select should be done
+create procedure bug14840_2()
+begin
+ declare err int default 0;
+ declare continue handler for sqlexception
+ begin
+ set err = err + 1;
+ select err as 'Ping';
+ end;
+
+ update t3 set x = 1, y = 42 where x = 2;
+ update t3 set x = 1, y = 42 where x = 2;
+ insert into t3 values (3, 4711);
+ select * from t3;
+end|
+
+insert into t3 values (1, 3), (2, 5)|
+call bug14840_1()|
+
+delete from t3|
+insert into t3 values (1, 3), (2, 5)|
+call bug14840_2()|
+
+drop procedure bug14840_1|
+drop procedure bug14840_2|
+drop table t3|
+
+
+#
+# BUG#10656: Stored Procedure - Create index and Truncate table command error
+#
+--disable_warnings
+drop procedure if exists bug10656_create_index|
+drop procedure if exists bug10656_myjoin|
+drop procedure if exists bug10656_truncate_table|
+--enable_warnings
+
+CREATE TABLE t3 (
+ `ID` int(11) default NULL,
+ `txt` char(5) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1|
+
+INSERT INTO t3 (`ID`,`txt`) VALUES
+ (1,'a'), (2,'b'), (3,'c'), (4,'d')|
+
+CREATE TABLE t4 (
+ `ID` int(11) default NULL,
+ `txt` char(5) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1|
+
+INSERT INTO t4 (`ID`,`txt`) VALUES
+ (1,'a'), (2,'b'), (3,'c'), (4,'d')|
+
+create procedure bug10656_create_index()
+begin
+ create index bug10656_my_index on t3 (ID);
+end|
+call bug10656_create_index()|
+
+create procedure bug10656_myjoin()
+begin
+ update t3, t4 set t3.txt = t4.txt where t3.id = t4.id;
+end|
+call bug10656_myjoin()|
+
+create procedure bug10656_truncate_table()
+begin
+ truncate table t3;
+end|
+call bug10656_truncate_table()|
+
+
+drop procedure bug10656_create_index|
+drop procedure bug10656_myjoin|
+drop procedure bug10656_truncate_table|
+drop table t3, t4|
+
+#
+# BUG#3448
+#
+--disable_warnings
+create table t3 (
+ a int primary key,
+ ach char(1)
+) engine = innodb|
+
+create table t4 (
+ b int primary key,
+ bch char(1)
+) engine = innodb|
+--enable_warnings
+
+insert into t3 values (1 , 'aCh1' ) , ('2' , 'aCh2')|
+insert into t4 values (1 , 'bCh1' )|
+
+--disable_warnings
+drop procedure if exists bug3448|
+--enable_warnings
+create procedure bug3448()
+ select * from t3 inner join t4 on t3.a = t4.b|
+
+select * from t3 inner join t4 on t3.a = t4.b|
+call bug3448()|
+call bug3448()|
+
+drop procedure bug3448|
+drop table t3, t4|
+
+#
+# BUG#14210: "Simple query with > operator on large table gives server
+# crash"
+# Check that cursors work in case when HEAP tables are converted to
+# MyISAM
+#
+--disable_warnings
+drop procedure if exists bug14210|
+--enable_warnings
+set @@session.max_heap_table_size=16384|
+select @@session.max_heap_table_size|
+# To trigger the memory corruption the original table must be InnoDB.
+# No harm if it's not, so don't warn if the suite is run with --skip-innodb
+--disable_warnings
+create table t3 (a char(255)) engine=InnoDB|
+--enable_warnings
+create procedure bug14210_fill_table()
+begin
+ declare table_size, max_table_size int default 0;
+ select @@session.max_heap_table_size into max_table_size;
+ delete from t3;
+ insert into t3 (a) values (repeat('a', 255));
+ repeat
+ insert into t3 select a from t3;
+ select count(*)*255 from t3 into table_size;
+ until table_size > max_table_size*2 end repeat;
+end|
+call bug14210_fill_table()|
+drop procedure bug14210_fill_table|
+create table t4 like t3|
+
+create procedure bug14210()
+begin
+ declare a char(255);
+ declare done int default 0;
+ declare c cursor for select * from t3;
+ declare continue handler for sqlstate '02000' set done = 1;
+ open c;
+ repeat
+ fetch c into a;
+ if not done then
+ insert into t4 values (upper(a));
+ end if;
+ until done end repeat;
+ close c;
+end|
+call bug14210()|
+select count(*) from t4|
+
+drop table t3, t4|
+drop procedure bug14210|
+set @@session.max_heap_table_size=default|
+
+
+#
+# BUG#NNNN: New bug synopsis
+#
+#--disable_warnings
+#drop procedure if exists bugNNNN|
+#--enable_warnings
+#create procedure bugNNNN...
+
+delimiter ;|
diff --git a/mysql-test/t/sp_trans_log.test b/mysql-test/t/sp_trans_log.test
new file mode 100644
index 00000000000..3e440b3ccc1
--- /dev/null
+++ b/mysql-test/t/sp_trans_log.test
@@ -0,0 +1,33 @@
+-- source include/have_innodb.inc
+-- source include/have_log_bin.inc
+
+delimiter |;
+
+#
+# Bug #13270 INSERT,UPDATE,etc that calls func with side-effect does not binlog
+# Bug #23333 stored function + non-transac table + transac table =
+# breaks stmt-based binlog
+# Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF()
+#
+CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM|
+CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB|
+
+insert into t2 values (1,1)|
+
+create function bug23333()
+RETURNS int(11)
+DETERMINISTIC
+begin
+ insert into t1 values (null);
+ select count(*) from t1 into @a;
+ return @a;
+end|
+
+reset master|
+--error ER_DUP_ENTRY
+insert into t2 values (bug23333(),1)|
+--replace_column 2 # 5 # 6 #
+show binlog events from 98 /* with fixes for #23333 will show there is the query */|
+select count(*),@a from t1 /* must be 1,1 */|
+drop table t1, t2|
+
diff --git a/mysql-test/t/sql_mode.test b/mysql-test/t/sql_mode.test
index 7877f9acc40..2699cb66471 100644
--- a/mysql-test/t/sql_mode.test
+++ b/mysql-test/t/sql_mode.test
@@ -1,5 +1,6 @@
--disable_warnings
-drop table if exists t1;
+drop table if exists t1,t2,v1,v2;
+drop view if exists t1,t2,v1,v2;
--enable_warnings
CREATE TABLE `t1` (
@@ -99,3 +100,171 @@ show create table t1;
drop table t1;
# End of 4.1 tests
+
+#
+# test for
+# WL 1941 "NO_C_ESCAPES sql_mode"
+#
+# an sql_mode to disable \n, \r, \b, etc escapes in string literals. actually, to
+# disable special meaning of backslash completely. It's not in the SQL standard
+# and it causes some R/3 tests to fail.
+#
+
+SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='';
+show local variables like 'SQL_MODE';
+
+CREATE TABLE t1 (p int not null auto_increment, a varchar(20), primary key(p));
+INSERT t1 (a) VALUES
+('\\'),
+('\n'),
+('\b'),
+('\r'),
+('\t'),
+('\x'),
+('\a'),
+('\aa'),
+('\\a'),
+('\\aa'),
+('_'),
+('\_'),
+('\\_'),
+('\\\_'),
+('\\\\_'),
+('%'),
+('\%'),
+('\\%'),
+('\\\%'),
+('\\\\%')
+;
+
+SELECT p, hex(a) FROM t1;
+
+delete from t1 where a in ('\n','\r','\t', '\b');
+
+select
+ masks.p,
+ masks.a as mask,
+ examples.a as example
+from
+ t1 as masks
+ left join t1 as examples on examples.a LIKE masks.a
+order by masks.p, example;
+
+DROP TABLE t1;
+
+SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
+show local variables like 'SQL_MODE';
+
+CREATE TABLE t1 (p int not null auto_increment, a varchar(20), primary key(p));
+INSERT t1 (a) VALUES
+('\\'),
+('\n'),
+('\b'),
+('\r'),
+('\t'),
+('\x'),
+('\a'),
+('\aa'),
+('\\a'),
+('\\aa'),
+('_'),
+('\_'),
+('\\_'),
+('\\\_'),
+('\\\\_'),
+('%'),
+('\%'),
+('\\%'),
+('\\\%'),
+('\\\\%')
+;
+
+SELECT p, hex(a) FROM t1;
+
+delete from t1 where a in ('\n','\r','\t', '\b');
+
+select
+ masks.p,
+ masks.a as mask,
+ examples.a as example
+from
+ t1 as masks
+ left join t1 as examples on examples.a LIKE masks.a
+order by masks.p, example;
+
+DROP TABLE t1;
+
+# Bug #6368: Make sure backslashes mixed with doubled quotes are handled
+# correctly in NO_BACKSLASH_ESCAPES mode
+SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
+SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
+SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
+
+SET @@SQL_MODE='';
+SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
+SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
+
+#
+# Bug#6877: MySQL should give an error if the requested table type
+# is not available
+#
+
+set session sql_mode = 'NO_ENGINE_SUBSTITUTION';
+--error 1289
+create table t1 (a int) engine=isam;
+--error 1146
+show create table t1;
+drop table if exists t1;
+
+# for comparison, lets see the warnings...
+set session sql_mode = '';
+create table t1 (a int) engine=isam;
+show create table t1;
+drop table t1;
+
+#
+# Bug #6903: ANSI_QUOTES does not come into play with SHOW CREATE FUNCTION
+# or PROCEDURE because it displays the SQL_MODE used to create the routine.
+#
+SET @@SQL_MODE='';
+create function `foo` () returns int return 5;
+show create function `foo`;
+SET @@SQL_MODE='ANSI_QUOTES';
+show create function `foo`;
+drop function `foo`;
+
+create function `foo` () returns int return 5;
+show create function `foo`;
+SET @@SQL_MODE='';
+show create function `foo`;
+drop function `foo`;
+
+#
+# Bug #6903: ANSI_QUOTES should have effect for SHOW CREATE VIEW (Bug #6903)
+#
+SET @@SQL_MODE='';
+create table t1 (a int);
+create table t2 (a int);
+create view v1 as select a from t1;
+show create view v1;
+SET @@SQL_MODE='ANSI_QUOTES';
+show create view v1;
+# Test a view with a subselect, which will get shown incorrectly without
+# thd->lex->view_prepare_mode set properly.
+create view v2 as select a from t2 where a in (select a from v1);
+drop view v2, v1;
+drop table t1, t2;
+
+select @@sql_mode;
+set sql_mode=2097152;
+select @@sql_mode;
+# BUG#14675
+set sql_mode=4194304;
+select @@sql_mode;
+set sql_mode=16384+(65536*4);
+select @@sql_mode;
+--error 1231
+set sql_mode=2147483648; # that mode does not exist
+select @@sql_mode;
+
+SET @@SQL_MODE=@OLD_SQL_MODE;
diff --git a/mysql-test/t/ssl-big.test b/mysql-test/t/ssl-big.test
new file mode 100644
index 00000000000..099c64df08f
--- /dev/null
+++ b/mysql-test/t/ssl-big.test
@@ -0,0 +1,56 @@
+# Turn on ssl between the client and server
+# and run a number of tests
+
+-- source include/have_ssl.inc
+-- source include/big_test.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+#
+# Bug #29579 Clients using SSL can hang the server
+#
+
+connect (ssl_con,localhost,root,,,,,SSL);
+
+create table t1 (a int);
+
+disconnect ssl_con;
+
+
+--disable_query_log
+--disable_result_log
+
+let $count= 2000;
+while ($count)
+{
+ connect (ssl_con,localhost,root,,,,,SSL);
+
+ eval insert into t1 values ($count);
+ dec $count;
+
+ # This select causes the net buffer to fill as the server sends the results
+ # but the client doesn't reap the results. The results are larger each time
+ # through the loop, so that eventually the buffer is completely full
+ # at the exact moment the server attempts to the close the connection with
+ # the lock held.
+ send select * from t1;
+
+ # now send the quit the command so the server will initiate the shutdown.
+ send_quit ssl_con;
+
+ # if the server is hung, this will hang too:
+ connect (ssl_con2,localhost,root,,,,,SSL);
+
+ # no hang if we get here, close and retry
+ disconnect ssl_con2;
+ disconnect ssl_con;
+}
+--enable_query_log
+--enable_result_log
+
+connect (ssl_con,localhost,root,,,,,SSL);
+
+drop table t1;
+
diff --git a/mysql-test/t/ssl.test b/mysql-test/t/ssl.test
new file mode 100644
index 00000000000..a15f0212fbd
--- /dev/null
+++ b/mysql-test/t/ssl.test
@@ -0,0 +1,17 @@
+# Turn on ssl between the client and server
+# and run a number of tests
+
+-- source include/have_ssl.inc
+
+connect (ssl_con,localhost,root,,,,,SSL);
+
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
+
+# Source select test case
+-- source include/common-tests.inc
+
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
+
+
diff --git a/mysql-test/t/ssl_8k_key.test b/mysql-test/t/ssl_8k_key.test
new file mode 100644
index 00000000000..b4203e68445
--- /dev/null
+++ b/mysql-test/t/ssl_8k_key.test
@@ -0,0 +1,6 @@
+-- source include/have_ssl.inc
+#
+# Bug#29784 YaSSL assertion failure when reading 8k key.
+#
+--exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
+
diff --git a/mysql-test/t/ssl_compress.test b/mysql-test/t/ssl_compress.test
new file mode 100644
index 00000000000..23051c0e367
--- /dev/null
+++ b/mysql-test/t/ssl_compress.test
@@ -0,0 +1,22 @@
+# Turn on compression between the client and server
+# and run a number of tests
+
+-- source include/have_ssl.inc
+-- source include/have_compress.inc
+
+connect (ssl_compress_con,localhost,root,,,,,SSL COMPRESS);
+
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
+
+# Check compression turned on
+SHOW STATUS LIKE 'Compression';
+
+# Source select test case
+-- source include/common-tests.inc
+
+# Check ssl turned on
+SHOW STATUS LIKE 'Ssl_cipher';
+
+# Check compression turned on
+SHOW STATUS LIKE 'Compression';
diff --git a/mysql-test/t/ssl_connect.test b/mysql-test/t/ssl_connect.test
new file mode 100644
index 00000000000..31e581c9342
--- /dev/null
+++ b/mysql-test/t/ssl_connect.test
@@ -0,0 +1,13 @@
+
+-- source include/have_ssl.inc
+
+# Repeat connect/disconnect
+
+let $i=100;
+while ($i)
+{
+ connect (test_con1,localhost,root,,,,,SSL);
+ disconnect test_con1;
+ dec $i;
+}
+echo completed;
diff --git a/mysql-test/t/status.test b/mysql-test/t/status.test
index df8da26df57..33bba3a626a 100644
--- a/mysql-test/t/status.test
+++ b/mysql-test/t/status.test
@@ -1,3 +1,6 @@
+# embedded server causes different stat
+-- source include/not_embedded.inc
+
# PS causes different statistics
--disable_ps_protocol
@@ -22,11 +25,150 @@ connection con1;
--send
update t1 set n = 3;
connection con2;
-sleep 0.5;
+sleep 1;
unlock tables;
connection con1;
reap;
show status like 'Table_lock%';
drop table t1;
+disconnect con2;
+disconnect con1;
+connection default;
+
# End of 4.1 tests
+
+#
+# last_query_cost
+#
+
+select 1;
+show status like 'last_query_cost';
+
+#
+# Test for Bug #15933 max_used_connections is wrong after FLUSH STATUS
+# if connections are cached
+#
+#
+# The first suggested fix from the bug report was chosen
+# (see http://bugs.mysql.com/bug.php?id=15933):
+#
+# a) On flushing the status, set max_used_connections to
+# threads_connected, not to 0.
+#
+# b) Check if it is necessary to increment max_used_connections when
+# taking a thread from the cache as well as when creating new threads
+#
+
+# Wait for at most $disconnect_timeout seconds for disconnects to finish.
+let $disconnect_timeout = 10;
+
+# Wait for any previous disconnects to finish.
+FLUSH STATUS;
+--disable_query_log
+--disable_result_log
+eval SET @wait_left = $disconnect_timeout;
+let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
+eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
+let $wait_more = `SELECT @max_used_connections != 1 && @wait_left > 0`;
+while ($wait_more)
+{
+ sleep 1;
+ FLUSH STATUS;
+ SET @wait_left = @wait_left - 1;
+ let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
+ eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
+ let $wait_more = `SELECT @max_used_connections != 1 && @wait_left > 0`;
+}
+--enable_query_log
+--enable_result_log
+
+# Prerequisite.
+SHOW STATUS LIKE 'max_used_connections';
+
+# Save original setting.
+SET @save_thread_cache_size=@@thread_cache_size;
+SET GLOBAL thread_cache_size=3;
+
+connect (con1,localhost,root,,);
+connect (con2,localhost,root,,);
+
+connection con1;
+disconnect con2;
+
+# Check that max_used_connections still reflects maximum value.
+SHOW STATUS LIKE 'max_used_connections';
+
+# Check that after flush max_used_connections equals to current number
+# of connections. First wait for previous disconnect to finish.
+FLUSH STATUS;
+--disable_query_log
+--disable_result_log
+eval SET @wait_left = $disconnect_timeout;
+let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
+eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
+let $wait_more = `SELECT @max_used_connections != 2 && @wait_left > 0`;
+while ($wait_more)
+{
+ sleep 1;
+ FLUSH STATUS;
+ SET @wait_left = @wait_left - 1;
+ let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
+ eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
+ let $wait_more = `SELECT @max_used_connections != 2 && @wait_left > 0`;
+}
+--enable_query_log
+--enable_result_log
+# Check that we don't count disconnected thread any longer.
+SHOW STATUS LIKE 'max_used_connections';
+
+# Check that max_used_connections is updated when cached thread is
+# reused...
+connect (con2,localhost,root,,);
+SHOW STATUS LIKE 'max_used_connections';
+
+# ...and when new thread is created.
+connect (con3,localhost,root,,);
+SHOW STATUS LIKE 'max_used_connections';
+
+# Restore original setting.
+connection default;
+SET GLOBAL thread_cache_size=@save_thread_cache_size;
+
+disconnect con3;
+disconnect con2;
+disconnect con1;
+
+
+#
+# Bug #30377: EXPLAIN loses last_query_cost when used with UNION
+#
+
+CREATE TABLE t1 ( a INT );
+INSERT INTO t1 VALUES (1), (2);
+
+SELECT a FROM t1 LIMIT 1;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+EXPLAIN SELECT a FROM t1;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+EXPLAIN SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+SELECT a IN (SELECT a FROM t1) FROM t1 LIMIT 1;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+SELECT (SELECT a FROM t1 LIMIT 1) x FROM t1 LIMIT 1;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+SELECT * FROM t1 a, t1 b LIMIT 1;
+SHOW SESSION STATUS LIKE 'Last_query_cost';
+
+DROP TABLE t1;
+
+
+# End of 5.0 tests
diff --git a/mysql-test/t/strict.test b/mysql-test/t/strict.test
new file mode 100644
index 00000000000..2b71bf1093c
--- /dev/null
+++ b/mysql-test/t/strict.test
@@ -0,0 +1,1267 @@
+# Testing of "strict" mode
+
+-- source include/have_innodb.inc
+
+set @org_mode=@@sql_mode;
+set @@sql_mode='ansi,traditional';
+select @@sql_mode;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+# Test INSERT with DATE
+
+CREATE TABLE t1 (col1 date);
+INSERT INTO t1 VALUES('2004-01-01'),('2004-02-29');
+INSERT INTO t1 VALUES('0000-10-31');
+
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid date value>
+--error 1292
+INSERT INTO t1 VALUES('2004-0-31');
+--error 1292
+INSERT INTO t1 VALUES('2004-01-02'),('2004-0-31');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-0');
+--error 1292
+INSERT INTO t1 VALUES('2004-09-31');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-32');
+--error 1292
+INSERT INTO t1 VALUES('2003-02-29');
+--error 1292
+INSERT INTO t1 VALUES('2004-13-15');
+--error 1292
+INSERT INTO t1 VALUES('0000-00-00');
+# Standard says we should return SQLSTATE 22018
+--error 1292
+INSERT INTO t1 VALUES ('59');
+
+# Test the different related modes
+set @@sql_mode='STRICT_ALL_TABLES';
+INSERT INTO t1 VALUES('2004-01-03'),('2004-0-31');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_IN_DATE';
+--error 1292
+INSERT INTO t1 VALUES('2004-0-30');
+--error 1292
+INSERT INTO t1 VALUES('2004-01-04'),('2004-0-31'),('2004-01-05');
+INSERT INTO t1 VALUES('0000-00-00');
+INSERT IGNORE INTO t1 VALUES('2004-0-29');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_DATE';
+--error 1292
+INSERT INTO t1 VALUES('0000-00-00');
+INSERT IGNORE INTO t1 VALUES('0000-00-00');
+INSERT INTO t1 VALUES ('2004-0-30');
+--error 1292
+INSERT INTO t1 VALUES ('2004-2-30');
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT INTO t1 VALUES ('2004-2-30');
+set @@sql_mode='ansi,traditional';
+INSERT IGNORE INTO t1 VALUES('2004-02-29'),('2004-13-15'),('0000-00-00');
+
+select * from t1;
+drop table t1;
+
+# Test difference in behaviour with InnoDB and MyISAM tables
+
+set @@sql_mode='strict_trans_tables';
+CREATE TABLE t1 (col1 date) engine=myisam;
+--error 1292
+INSERT INTO t1 VALUES('2004-13-31'),('2004-1-1');
+INSERT INTO t1 VALUES ('2004-1-2'), ('2004-13-31'),('2004-1-3');
+INSERT IGNORE INTO t1 VALUES('2004-13-31'),('2004-1-4');
+--error 1292
+INSERT INTO t1 VALUES ('2003-02-29');
+INSERT ignore INTO t1 VALUES('2003-02-30');
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT ignore INTO t1 VALUES('2003-02-31');
+select * from t1;
+drop table t1;
+
+set @@sql_mode='strict_trans_tables';
+CREATE TABLE t1 (col1 date) engine=innodb;
+--error 1292
+INSERT INTO t1 VALUES('2004-13-31'),('2004-1-1');
+--error 1292
+INSERT INTO t1 VALUES ('2004-1-2'), ('2004-13-31'),('2004-1-3');
+INSERT IGNORE INTO t1 VALUES('2004-13-31'),('2004-1-4');
+--error 1292
+INSERT INTO t1 VALUES ('2003-02-29');
+INSERT ignore INTO t1 VALUES('2003-02-30');
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+INSERT ignore INTO t1 VALUES('2003-02-31');
+select * from t1;
+drop table t1;
+set @@sql_mode='ansi,traditional';
+
+# Test INSERT with DATETIME
+
+CREATE TABLE t1 (col1 datetime);
+INSERT INTO t1 VALUES('2004-10-31 15:30:00'),('2004-02-29 15:30:00');
+INSERT INTO t1 VALUES('0000-10-31 15:30:00');
+
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+--error 1292
+INSERT INTO t1 VALUES('2004-0-31 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-0 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-09-31 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-32 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2003-02-29 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-13-15 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('0000-00-00 15:30:00');
+# Standard says we should return SQLSTATE 22018
+--error 1292
+INSERT INTO t1 VALUES ('59');
+select * from t1;
+drop table t1;
+
+# Test INSERT with TIMESTAMP
+
+CREATE TABLE t1 (col1 timestamp);
+INSERT INTO t1 VALUES('2004-10-31 15:30:00'),('2004-02-29 15:30:00');
+
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+# Standard says we should return ok, but we can't as this is out of range
+--error 1292
+INSERT INTO t1 VALUES('0000-10-31 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-0-31 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-0 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-09-31 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-32 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2003-02-29 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-13-15 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-02-29 25:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-02-29 15:65:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-02-29 15:31:61');
+--error 1292
+INSERT INTO t1 VALUES('0000-00-00 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+INSERT IGNORE INTO t1 VALUES('0000-00-00 00:00:00');
+# Standard says we should return SQLSTATE 22018
+--error 1292
+INSERT INTO t1 VALUES ('59');
+
+set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';
+--error 1292
+INSERT INTO t1 VALUES('2004-0-31 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-0 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-10-32 15:30:00');
+--error 1292
+INSERT INTO t1 VALUES('2004-02-30 15:30:04');
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_IN_DATE';
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_DATE';
+--error 1292
+INSERT INTO t1 VALUES('0000-00-00 00:00:00');
+set @@sql_mode='ansi,traditional';
+SELECT * FROM t1;
+DROP TABLE t1;
+
+
+#### Test INSERT with STR_TO_DATE into DATE/DATETIME/TIMESTAMP
+
+CREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);
+
+INSERT INTO t1 (col1) VALUES (STR_TO_DATE('15.10.2004','%d.%m.%Y'));
+INSERT INTO t1 (col2) VALUES (STR_TO_DATE('15.10.2004 10.15','%d.%m.%Y %H.%i'));
+INSERT INTO t1 (col3) VALUES (STR_TO_DATE('15.10.2004 10.15','%d.%m.%Y %H.%i'));
+
+## Test INSERT with STR_TO_DATE into DATE
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid date value>
+
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));
+
+--error 1292
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col1) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));
+
+## Test INSERT with STR_TO_DATE into DATETIME
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));
+
+--error 1292
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col2) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));
+
+## Test INSERT with STR_TO_DATE into TIMESTAMP
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+
+--error 1292
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1292
+INSERT INTO t1 (col3) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));
+
+drop table t1;
+
+
+#### Test INSERT with CAST AS DATE/DATETIME into DATE/DATETIME/TIMESTAMP
+
+CREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);
+
+INSERT INTO t1 (col1) VALUES (CAST('2004-10-15' AS DATE));
+INSERT INTO t1 (col2) VALUES (CAST('2004-10-15 10:15' AS DATETIME));
+INSERT INTO t1 (col3) VALUES (CAST('2004-10-15 10:15' AS DATETIME));
+
+
+## Test INSERT with CAST AS DATE into DATE
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid date value>
+
+INSERT INTO t1 (col1) VALUES(CAST('0000-10-31' AS DATE));
+
+--error 1292
+INSERT INTO t1 (col1) VALUES(CAST('2004-10-0' AS DATE));
+--error 1292
+INSERT INTO t1 (col1) VALUES(CAST('2004-0-10' AS DATE));
+
+# deactivated because of Bug#8294
+# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE
+# --error 1292
+# INSERT INTO t1 (col1) VALUES(CAST('2004-9-31' AS DATE));
+# --error 1292
+# INSERT INTO t1 (col1) VALUES(CAST('2004-10-32' AS DATE));
+# --error 1292
+# INSERT INTO t1 (col1) VALUES(CAST('2003-02-29' AS DATE));
+# --error 1292
+# INSERT INTO t1 (col1) VALUES(CAST('2004-13-15' AS DATE));
+
+# deactivated because of Bug#6145
+# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
+--error 1292
+INSERT INTO t1 (col1) VALUES(CAST('0000-00-00' AS DATE));
+
+## Test INSERT with CAST AS DATETIME into DATETIME
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+
+INSERT INTO t1 (col2) VALUES(CAST('0000-10-31 15:30' AS DATETIME));
+
+--error 1292
+INSERT INTO t1 (col2) VALUES(CAST('2004-10-0 15:30' AS DATETIME));
+--error 1292
+INSERT INTO t1 (col2) VALUES(CAST('2004-0-10 15:30' AS DATETIME));
+
+# deactivated because of Bug#8294
+# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CAST('2004-9-31 15:30' AS DATETIME));
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CAST('2004-10-32 15:30' AS DATETIME));
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CAST('2003-02-29 15:30' AS DATETIME));
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CAST('2004-13-15 15:30' AS DATETIME));
+
+# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
+--error 1292
+INSERT INTO t1 (col2) VALUES(CAST('0000-00-00' AS DATETIME));
+
+## Test INSERT with CAST AS DATETIME into TIMESTAMP
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+--error 1292
+INSERT INTO t1 (col3) VALUES(CAST('0000-10-31 15:30' AS DATETIME));
+# should return OK
+# We accept this to be a failure
+
+--error 1292
+INSERT INTO t1 (col3) VALUES(CAST('2004-10-0 15:30' AS DATETIME));
+--error 1292
+INSERT INTO t1 (col3) VALUES(CAST('2004-0-10 15:30' AS DATETIME));
+# should return SQLSTATE 22007 <invalid datetime value>
+
+# deactivated because of Bug#8294
+# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CAST('2004-9-31 15:30' AS DATETIME));
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CAST('2004-10-32 15:30' AS DATETIME));
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CAST('2003-02-29 15:30' AS DATETIME));
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CAST('2004-13-15 15:30' AS DATETIME));
+
+# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
+--error 1292
+INSERT INTO t1 (col3) VALUES(CAST('0000-00-00' AS DATETIME));
+
+drop table t1;
+
+
+#### Test INSERT with CONVERT to DATE/DATETIME into DATE/DATETIME/TIMESTAMP
+
+CREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);
+
+INSERT INTO t1 (col1) VALUES (CONVERT('2004-10-15',DATE));
+INSERT INTO t1 (col2) VALUES (CONVERT('2004-10-15 10:15',DATETIME));
+INSERT INTO t1 (col3) VALUES (CONVERT('2004-10-15 10:15',DATETIME));
+
+
+## Test INSERT with CONVERT to DATE into DATE
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid date value>
+
+INSERT INTO t1 (col1) VALUES(CONVERT('0000-10-31' , DATE));
+
+--error 1292
+INSERT INTO t1 (col1) VALUES(CONVERT('2004-10-0' , DATE));
+--error 1292
+INSERT INTO t1 (col1) VALUES(CONVERT('2004-0-10' , DATE));
+
+# deactivated because of Bug#8294
+# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE
+#--error 1292
+#INSERT INTO t1 (col1) VALUES(CONVERT('2004-9-31' , DATE));
+#--error 1292
+#INSERT INTO t1 (col1) VALUES(CONVERT('2004-10-32' , DATE));
+#--error 1292
+#INSERT INTO t1 (col1) VALUES(CONVERT('2003-02-29' , DATE));
+#--error 1292
+#INSERT INTO t1 (col1) VALUES(CONVERT('2004-13-15',DATE));
+
+# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
+--error 1292
+INSERT INTO t1 (col1) VALUES(CONVERT('0000-00-00',DATE));
+
+## Test INSERT with CONVERT to DATETIME into DATETIME
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+
+INSERT INTO t1 (col2) VALUES(CONVERT('0000-10-31 15:30',DATETIME));
+
+--error 1292
+INSERT INTO t1 (col2) VALUES(CONVERT('2004-10-0 15:30',DATETIME));
+--error 1292
+INSERT INTO t1 (col2) VALUES(CONVERT('2004-0-10 15:30',DATETIME));
+
+# deactivated because of Bug#8294
+# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CONVERT('2004-9-31 15:30',DATETIME));
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CONVERT('2004-10-32 15:30',DATETIME));
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CONVERT('2003-02-29 15:30',DATETIME));
+#--error 1292
+#INSERT INTO t1 (col2) VALUES(CONVERT('2004-13-15 15:30',DATETIME));
+
+# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
+--error 1292
+INSERT INTO t1 (col2) VALUES(CONVERT('0000-00-00',DATETIME));
+
+## Test INSERT with CONVERT to DATETIME into DATETIME
+# All test cases expected to fail should return
+# SQLSTATE 22007 <invalid datetime value>
+--error 1292
+INSERT INTO t1 (col3) VALUES(CONVERT('0000-10-31 15:30',DATETIME));
+# should return OK
+# We accept this to be a failure
+
+--error 1292
+INSERT INTO t1 (col3) VALUES(CONVERT('2004-10-0 15:30',DATETIME));
+--error 1292
+INSERT INTO t1 (col3) VALUES(CONVERT('2004-0-10 15:30',DATETIME));
+
+# deactivated because of Bug#8294
+# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CONVERT('2004-9-31 15:30',DATETIME));
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CONVERT('2004-10-32 15:30',DATETIME));
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CONVERT('2003-02-29 15:30',DATETIME));
+#--error 1292
+#INSERT INTO t1 (col3) VALUES(CONVERT('2004-13-15 15:30',DATETIME));
+
+# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
+--error 1292
+INSERT INTO t1 (col3) VALUES(CONVERT('0000-00-00',DATETIME));
+
+drop table t1;
+
+
+# Test INSERT with TINYINT
+
+CREATE TABLE t1(col1 TINYINT, col2 TINYINT UNSIGNED);
+INSERT INTO t1 VALUES(-128,0),(0,0),(127,255),('-128','0'),('0','0'),('127','255'),(-128.0,0.0),(0.0,0.0),(127.0,255.0);
+# Test that we restored the mode checking properly after an ok query
+SELECT MOD(col1,0) FROM t1 WHERE col1 > 0 LIMIT 2;
+-- error 1264
+INSERT INTO t1 (col1) VALUES(-129);
+-- error 1264
+INSERT INTO t1 (col1) VALUES(128);
+-- error 1264
+INSERT INTO t1 (col2) VALUES(-1);
+-- error 1264
+INSERT INTO t1 (col2) VALUES(256);
+-- error 1264
+INSERT INTO t1 (col1) VALUES('-129');
+-- error 1264
+INSERT INTO t1 (col1) VALUES('128');
+-- error 1264
+INSERT INTO t1 (col2) VALUES('-1');
+-- error 1264
+INSERT INTO t1 (col2) VALUES('256');
+-- error 1264
+INSERT INTO t1 (col1) VALUES(128.0);
+-- error 1264
+INSERT INTO t1 (col2) VALUES(-1.0);
+-- error 1264
+INSERT INTO t1 (col2) VALUES(256.0);
+SELECT MOD(col1,0) FROM t1 WHERE col1 > 0 LIMIT 1;
+--error 1264
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+--error 1264
+UPDATE t1 SET col2=col2 + 50 WHERE col2 > 0;
+--error 1365
+UPDATE t1 SET col1=col1 / 0 WHERE col1 > 0;
+set @@sql_mode='ERROR_FOR_DIVISION_BY_ZERO';
+INSERT INTO t1 values (1/0,1/0);
+set @@sql_mode='ansi,traditional';
+SELECT MOD(col1,0) FROM t1 WHERE col1 > 0 LIMIT 2;
+# Should return SQLSTATE 22018 invalid character value for cast
+--error 1366
+INSERT INTO t1 (col1) VALUES ('');
+--error 1366
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 values (1/0,1/0);
+set @@sql_mode='ansi';
+INSERT INTO t1 values (1/0,1/0);
+set @@sql_mode='ansi,traditional';
+INSERT IGNORE INTO t1 VALUES('-129','-1'),('128','256');
+INSERT IGNORE INTO t1 VALUES(-129.0,-1.0),(128.0,256.0);
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with SMALLINT
+
+CREATE TABLE t1(col1 SMALLINT, col2 SMALLINT UNSIGNED);
+INSERT INTO t1 VALUES(-32768,0),(0,0),(32767,65535),('-32768','0'),('32767','65535'),(-32768.0,0.0),(32767.0,65535.0);
+
+--error 1264
+INSERT INTO t1 (col1) VALUES(-32769);
+--error 1264
+INSERT INTO t1 (col1) VALUES(32768);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1);
+--error 1264
+INSERT INTO t1 (col2) VALUES(65536);
+--error 1264
+INSERT INTO t1 (col1) VALUES('-32769');
+--error 1264
+INSERT INTO t1 (col1) VALUES('32768');
+--error 1264
+INSERT INTO t1 (col2) VALUES('-1');
+--error 1264
+INSERT INTO t1 (col2) VALUES('65536');
+--error 1264
+INSERT INTO t1 (col1) VALUES(-32769.0);
+--error 1264
+INSERT INTO t1 (col1) VALUES(32768.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(65536.0);
+--error 1264
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+--error 1264
+UPDATE t1 SET col2 = col2 + 50 WHERE col2 > 0;
+--error 1365
+UPDATE t1 SET col1 = col1 / 0 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+--error 1366
+INSERT INTO t1 (col1) VALUES ('');
+--error 1366
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 values (1/0,1/0);
+INSERT IGNORE INTO t1 VALUES(-32769,-1),(32768,65536);
+INSERT IGNORE INTO t1 VALUES('-32769','-1'),('32768','65536');
+INSERT IGNORE INTO t1 VALUES(-32769,-1.0),(32768.0,65536.0);
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with MEDIUMINT
+
+CREATE TABLE t1 (col1 MEDIUMINT, col2 MEDIUMINT UNSIGNED);
+INSERT INTO t1 VALUES(-8388608,0),(0,0),(8388607,16777215),('-8388608','0'),('8388607','16777215'),(-8388608.0,0.0),(8388607.0,16777215.0);
+--error 1264
+INSERT INTO t1 (col1) VALUES(-8388609);
+--error 1264
+INSERT INTO t1 (col1) VALUES(8388608);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1);
+--error 1264
+INSERT INTO t1 (col2) VALUES(16777216);
+--error 1264
+INSERT INTO t1 (col1) VALUES('-8388609');
+--error 1264
+INSERT INTO t1 (col1) VALUES('8388608');
+--error 1264
+INSERT INTO t1 (col2) VALUES('-1');
+--error 1264
+INSERT INTO t1 (col2) VALUES('16777216');
+--error 1264
+INSERT INTO t1 (col1) VALUES(-8388609.0);
+--error 1264
+INSERT INTO t1 (col1) VALUES(8388608.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(16777216.0);
+
+--error 1264
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+--error 1264
+UPDATE t1 SET col2 = col2 + 50 WHERE col2 > 0;
+--error 1365
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+--error 1366
+INSERT INTO t1 (col1) VALUES ('');
+--error 1366
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 values (1/0,1/0);
+INSERT IGNORE INTO t1 VALUES(-8388609,-1),(8388608,16777216);
+INSERT IGNORE INTO t1 VALUES('-8388609','-1'),('8388608','16777216');
+INSERT IGNORE INTO t1 VALUES(-8388609.0,-1.0),(8388608.0,16777216.0);
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with INT
+
+CREATE TABLE t1 (col1 INT, col2 INT UNSIGNED);
+INSERT INTO t1 VALUES(-2147483648,0),(0,0),(2147483647,4294967295),('-2147483648','0'),('2147483647','4294967295'),(-2147483648.0,0.0),(2147483647.0,4294967295.0);
+--error 1264
+INSERT INTO t1 (col1) VALUES(-2147483649);
+--error 1264
+INSERT INTO t1 (col1) VALUES(2147643648);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1);
+--error 1264
+INSERT INTO t1 (col2) VALUES(4294967296);
+--error 1264
+INSERT INTO t1 (col1) VALUES('-2147483649');
+--error 1264
+INSERT INTO t1 (col1) VALUES('2147643648');
+--error 1264
+INSERT INTO t1 (col2) VALUES('-1');
+--error 1264
+INSERT INTO t1 (col2) VALUES('4294967296');
+--error 1264
+INSERT INTO t1 (col1) VALUES(-2147483649.0);
+--error 1264
+INSERT INTO t1 (col1) VALUES(2147643648.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(4294967296.0);
+
+--error 1264
+UPDATE t1 SET col1 = col1 - 50 WHERE col1 < 0;
+--error 1264
+UPDATE t1 SET col2 =col2 + 50 WHERE col2 > 0;
+--error 1365
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+--error 1366
+INSERT INTO t1 (col1) VALUES ('');
+--error 1366
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 values (1/0,1/0);
+INSERT IGNORE INTO t1 values (-2147483649, -1),(2147643648,4294967296);
+INSERT IGNORE INTO t1 values ('-2147483649', '-1'),('2147643648','4294967296');
+INSERT IGNORE INTO t1 values (-2147483649.0, -1.0),(2147643648.0,4294967296.0);
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with BIGINT
+# Note that this doesn't behave 100 % to standard as we rotate
+# integers when it's too big/small (just like C)
+
+CREATE TABLE t1 (col1 BIGINT, col2 BIGINT UNSIGNED);
+INSERT INTO t1 VALUES(-9223372036854775808,0),(0,0),(9223372036854775807,18446744073709551615);
+INSERT INTO t1 VALUES('-9223372036854775808','0'),('9223372036854775807','18446744073709551615');
+INSERT INTO t1 VALUES(-9223372036854774000.0,0.0),(9223372036854775700.0,1844674407370954000.0);
+
+--error 1264
+INSERT INTO t1 (col1) VALUES(-9223372036854775809);
+--error 1264
+INSERT INTO t1 (col1) VALUES(9223372036854775808);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1);
+
+--error 1264
+INSERT INTO t1 (col2) VALUES(18446744073709551616);
+--error 1264
+INSERT INTO t1 (col1) VALUES('-9223372036854775809');
+--error 1264
+INSERT INTO t1 (col1) VALUES('9223372036854775808');
+--error 1264
+INSERT INTO t1 (col2) VALUES('-1');
+--error 1264
+INSERT INTO t1 (col2) VALUES('18446744073709551616');
+
+# Note that the following two double numbers are slighty bigger than max/min
+# bigint becasue of rounding errors when converting it to bigint
+--error 1264
+INSERT INTO t1 (col1) VALUES(-9223372036854785809.0);
+--error 1264
+INSERT INTO t1 (col1) VALUES(9223372036854785808.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(-1.0);
+--error 1264
+INSERT INTO t1 (col2) VALUES(18446744073709551616.0);
+
+# The following doesn't give an error as it's done in integer context
+# UPDATE t1 SET col1=col1 - 5000 WHERE col1 < 0;
+# UPDATE t1 SET col2 =col2 + 5000 WHERE col2 > 0;
+
+--error 1365
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+--error 1366
+INSERT INTO t1 (col1) VALUES ('');
+--error 1366
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 values (1/0,1/0);
+INSERT IGNORE INTO t1 VALUES(-9223372036854775809,-1),(9223372036854775808,18446744073709551616);
+INSERT IGNORE INTO t1 VALUES('-9223372036854775809','-1'),('9223372036854775808','18446744073709551616');
+INSERT IGNORE INTO t1 VALUES(-9223372036854785809.0,-1.0),(9223372036854785808.0,18446744073709551616.0);
+UPDATE IGNORE t1 SET col2=1/NULL where col1=0;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with NUMERIC
+
+CREATE TABLE t1 (col1 NUMERIC(4,2));
+INSERT INTO t1 VALUES (10.55),(10.5555),(0),(-10.55),(-10.5555),(11),(1e+01);
+# Note that the +/-10.5555 is inserted as +/-10.55, not +/-10.56 !
+INSERT INTO t1 VALUES ('10.55'),('10.5555'),('-10.55'),('-10.5555'),('11'),('1e+01');
+
+# The 2 following inserts should generate a warning, but doesn't yet
+# because NUMERIC works like DECIMAL
+--error 1264
+INSERT INTO t1 VALUES (101.55);
+--error 1264
+INSERT INTO t1 VALUES (101);
+--error 1264
+INSERT INTO t1 VALUES (-101.55);
+--error 1264
+INSERT INTO t1 VALUES (1010.55);
+--error 1264
+INSERT INTO t1 VALUES (1010);
+# The 2 following inserts should generate a warning, but doesn't yet
+# because NUMERIC works like DECIMAL
+--error 1264
+INSERT INTO t1 VALUES ('101.55');
+--error 1264
+INSERT INTO t1 VALUES ('101');
+--error 1264
+INSERT INTO t1 VALUES ('-101.55');
+--error 1264
+INSERT INTO t1 VALUES ('-1010.55');
+--error 1264
+INSERT INTO t1 VALUES ('-100E+1');
+--error 1366
+INSERT INTO t1 VALUES ('-100E');
+--error 1264
+UPDATE t1 SET col1 =col1 * 50000 WHERE col1 =11;
+--error 1365
+UPDATE t1 SET col1 =col1 / 0 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col1= MOD(col1,0) WHERE col1 > 0;
+#--error 1265
+--error 1366
+INSERT INTO t1 (col1) VALUES ('');
+#--error 1265
+--error 1366
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1366
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 values (1/0);
+INSERT IGNORE INTO t1 VALUES(1000),(-1000);
+INSERT IGNORE INTO t1 VALUES('1000'),('-1000');
+INSERT IGNORE INTO t1 VALUES(1000.0),(-1000.0);
+UPDATE IGNORE t1 SET col1=1/NULL where col1=0;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with FLOAT
+
+CREATE TABLE t1 (col1 FLOAT, col2 FLOAT UNSIGNED);
+INSERT INTO t1 VALUES (-1.1E-37,0),(+3.4E+38,+3.4E+38);
+INSERT INTO t1 VALUES ('-1.1E-37',0),('+3.4E+38','+3.4E+38');
+# We don't give warnings for underflow
+INSERT INTO t1 (col1) VALUES (3E-46);
+--error 1264
+INSERT INTO t1 (col1) VALUES (+3.4E+39);
+--error 1264
+INSERT INTO t1 (col2) VALUES (-1.1E-3);
+--error 1264
+INSERT INTO t1 (col1) VALUES ('+3.4E+39');
+--error 1264
+INSERT INTO t1 (col2) VALUES ('-1.1E-3');
+--error 1264
+UPDATE t1 SET col1 =col1 * 5000 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col2 =col2 / 0 WHERE col2 > 0;
+--error 1365
+UPDATE t1 SET col2= MOD(col2,0) WHERE col2 > 0;
+--error 1265
+INSERT INTO t1 (col1) VALUES ('');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 (col1) VALUES (1/0);
+INSERT IGNORE INTO t1 VALUES (+3.4E+39,-3.4E+39);
+INSERT IGNORE INTO t1 VALUES ('+3.4E+39','-3.4E+39');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Test INSERT with DOUBLE
+
+CREATE TABLE t1 (col1 DOUBLE PRECISION, col2 DOUBLE PRECISION UNSIGNED);
+INSERT INTO t1 VALUES (-2.2E-307,0),(2E-307,0),(+1.7E+308,+1.7E+308);
+INSERT INTO t1 VALUES ('-2.2E-307',0),('-2E-307',0),('+1.7E+308','+1.7E+308');
+# We don't give warnings for underflow
+INSERT INTO t1 (col1) VALUES (-2.2E-330);
+--error 1367,1264
+INSERT INTO t1 (col1) VALUES (+1.7E+309);
+--error 1264
+INSERT INTO t1 (col2) VALUES (-1.1E-3);
+--error 1264
+INSERT INTO t1 (col1) VALUES ('+1.8E+309');
+--error 1264
+INSERT INTO t1 (col2) VALUES ('-1.2E-3');
+--error 1264
+UPDATE t1 SET col1 =col1 * 5000 WHERE col1 > 0;
+--error 1365
+UPDATE t1 SET col2 =col2 / 0 WHERE col2 > 0;
+--error 1365
+UPDATE t1 SET col2= MOD(col2,0) WHERE col2 > 0;
+--error 1265
+INSERT INTO t1 (col1) VALUES ('');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('a59b');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('1a');
+INSERT IGNORE INTO t1 (col1) VALUES ('2a');
+INSERT IGNORE INTO t1 (col1) values (1/0);
+--error 1367
+INSERT IGNORE INTO t1 VALUES (+1.9E+309,-1.9E+309);
+INSERT IGNORE INTO t1 VALUES ('+2.0E+309','-2.0E+309');
+# stupid...
+--replace_result -0 0 1.7976931348623e+308 1.79769313486232e+308
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Testing INSERT with CHAR/VARCHAR
+
+CREATE TABLE t1 (col1 CHAR(5), col2 VARCHAR(6));
+INSERT INTO t1 VALUES ('hello', 'hello'),('he', 'he'),('hello ', 'hello ');
+--error 1406
+INSERT INTO t1 (col1) VALUES ('hellobob');
+--error 1406
+INSERT INTO t1 (col2) VALUES ('hellobob');
+INSERT INTO t1 (col2) VALUES ('hello ');
+--error 1406
+UPDATE t1 SET col1 ='hellobob' WHERE col1 ='he';
+--error 1406
+UPDATE t1 SET col2 ='hellobob' WHERE col2 ='he';
+INSERT IGNORE INTO t1 VALUES ('hellobob', 'hellobob');
+UPDATE IGNORE t1 SET col2 ='hellotrudy' WHERE col2 ='he';
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Testing INSERT with ENUM
+
+CREATE TABLE t1 (col1 enum('red','blue','green'));
+INSERT INTO t1 VALUES ('red'),('blue'),('green');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('yellow');
+--error 1265
+INSERT INTO t1 (col1) VALUES ('redd');
+--error 1265
+INSERT INTO t1 VALUES ('');
+--error 1265
+UPDATE t1 SET col1 ='yellow' WHERE col1 ='green';
+INSERT IGNORE INTO t1 VALUES ('yellow');
+UPDATE IGNORE t1 SET col1 ='yellow' WHERE col1 ='blue';
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Testing of insert of NULL in not NULL column
+
+CREATE TABLE t1 (col1 INT NOT NULL, col2 CHAR(5) NOT NULL, col3 DATE NOT NULL);
+INSERT INTO t1 VALUES (100, 'hello', '2004-08-20');
+INSERT INTO t1 (col1,col2,col3) VALUES (101, 'hell2', '2004-08-21');
+--error 1048
+INSERT INTO t1 (col1,col2,col3) VALUES (NULL, '', '2004-01-01');
+--error 1048
+INSERT INTO t1 (col1,col2,col3) VALUES (102, NULL, '2004-01-01');
+--error 1048
+INSERT INTO t1 VALUES (103,'',NULL);
+--error 1048
+UPDATE t1 SET col1=NULL WHERE col1 =100;
+--error 1048
+UPDATE t1 SET col2 =NULL WHERE col2 ='hello';
+--error 1048
+UPDATE t1 SET col2 =NULL where col3 IS NOT NULL;
+INSERT IGNORE INTO t1 values (NULL,NULL,NULL);
+SELECT * FROM t1;
+DROP TABLE t1;
+
+# Testing of default values
+
+CREATE TABLE t1 (col1 INT NOT NULL default 99, col2 CHAR(6) NOT NULL);
+SHOW CREATE TABLE t1;
+INSERT INTO t1 VALUES (1, 'hello');
+INSERT INTO t1 (col2) VALUES ('hello2');
+--error 1048
+INSERT INTO t1 (col2) VALUES (NULL);
+--error 1364
+INSERT INTO t1 (col1) VALUES (2);
+--error 1364
+INSERT INTO t1 VALUES(default(col1),default(col2));
+--error 1364
+INSERT INTO t1 (col1) SELECT 1;
+--error 1048
+INSERT INTO t1 SELECT 1,NULL;
+INSERT IGNORE INTO t1 values (NULL,NULL);
+INSERT IGNORE INTO t1 (col1) values (3);
+INSERT IGNORE INTO t1 () values ();
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug #9029 Traditional: Wrong SQLSTATE returned for string truncation
+#
+
+set sql_mode='traditional';
+create table t1 (charcol char(255), varcharcol varchar(255),
+binarycol binary(255), varbinarycol varbinary(255), tinytextcol tinytext,
+tinyblobcol tinyblob);
+--error 1406
+insert into t1 (charcol) values (repeat('x',256));
+--error 1406
+insert into t1 (varcharcol) values (repeat('x',256));
+--error 1406
+insert into t1 (binarycol) values (repeat('x',256));
+--error 1406
+insert into t1 (varbinarycol) values (repeat('x',256));
+--error 1406
+insert into t1 (tinytextcol) values (repeat('x',256));
+--error 1406
+insert into t1 (tinyblobcol) values (repeat('x',256));
+select * from t1;
+drop table t1;
+
+#
+# Bug #5902: STR_TO_DATE() didn't give errors in traditional mode
+#
+
+set sql_mode='traditional';
+create table t1 (col1 datetime);
+--error 1292
+insert into t1 values(STR_TO_DATE('31.10.2004 15.30 abc','%d.%m.%Y %H.%i'));
+--error 1411
+insert into t1 values(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
+--error 1411
+insert into t1 values(STR_TO_DATE('2004.12.12 22:22:33 AM','%Y.%m.%d %r'));
+--error 1411
+insert into t1 values(STR_TO_DATE('2004.12.12 abc','%Y.%m.%d %T'));
+set sql_mode='';
+insert into t1 values(STR_TO_DATE('31.10.2004 15.30 abc','%d.%m.%Y %H.%i'));
+insert into t1 values(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
+insert into t1 values(STR_TO_DATE('2004.12.12 22:22:33 AM','%Y.%m.%d %r'));
+insert into t1 values(STR_TO_DATE('2004.12.12 abc','%Y.%m.%d %T'));
+
+# Some correct values, just to test the functions
+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'));
+
+select * from t1;
+
+# Check that select don't abort even in strict mode (for now)
+set sql_mode='traditional';
+
+select count(*) from t1 where STR_TO_DATE('2004.12.12 10:22:61','%Y.%m.%d %T') IS NULL;
+
+drop table t1;
+
+#
+# Check insert with wrong CAST() (Bug #5912)
+#
+
+create table t1 (col1 char(3), col2 integer);
+--error 1292
+insert into t1 (col1) values (cast(1000 as char(3)));
+--error 1292
+insert into t1 (col1) values (cast(1000E+0 as char(3)));
+--error 1292
+insert into t1 (col1) values (cast(1000.0 as char(3)));
+--error 1292
+insert into t1 (col2) values (cast('abc' as signed integer));
+--error 1292
+insert into t1 (col2) values (10E+0 + 'a');
+--error 1292
+insert into t1 (col2) values (cast('10a' as unsigned integer));
+insert into t1 (col2) values (cast('10' as unsigned integer));
+insert into t1 (col2) values (cast('10' as signed integer));
+insert into t1 (col2) values (10E+0 + '0 ');
+select * from t1;
+drop table t1;
+
+#
+# Zero dates using numbers was not checked properly (Bug #5933 & #6145)
+#
+
+create table t1 (col1 date, col2 datetime, col3 timestamp);
+--error 1292
+insert into t1 values (0,0,0);
+--error 1292
+insert into t1 values (0.0,0.0,0.0);
+--error 1292
+insert into t1 (col1) values (convert('0000-00-00',date));
+--error 1292
+insert into t1 (col1) values (cast('0000-00-00' as date));
+
+set sql_mode='no_zero_date';
+insert into t1 values (0,0,0);
+insert into t1 values (0.0,0.0,0.0);
+drop table t1;
+set sql_mode='traditional';
+create table t1 (col1 date);
+insert ignore into t1 values ('0000-00-00');
+--error 1292
+insert into t1 select * from t1;
+insert ignore into t1 values ('0000-00-00');
+insert ignore into t1 (col1) values (cast('0000-00-00' as date));
+--error 1292
+insert into t1 select * from t1;
+--error 1292
+alter table t1 modify col1 datetime;
+alter ignore table t1 modify col1 datetime;
+--error 1292
+insert into t1 select * from t1;
+select * from t1;
+drop table t1;
+
+#
+# Test of inserting an invalid value via a stored procedure (Bug #5907)
+#
+create table t1 (col1 tinyint);
+drop procedure if exists t1;
+delimiter |;
+create procedure t1 () begin declare exit handler for sqlexception
+select'a'; insert into t1 values (200); end;|
+delimiter ;|
+call t1();
+select * from t1;
+drop procedure t1;
+drop table t1;
+
+#
+# Restore mode
+#
+set sql_mode=@org_mode;
+
+# Test fields with no default value that are NOT NULL (Bug #5986)
+SET @@sql_mode = 'traditional';
+CREATE TABLE t1 (i int not null);
+--error 1364
+INSERT INTO t1 VALUES ();
+--error 1364
+INSERT INTO t1 VALUES (DEFAULT);
+--error 1364
+INSERT INTO t1 VALUES (DEFAULT(i));
+ALTER TABLE t1 ADD j int;
+--error 1364
+INSERT INTO t1 SET j = 1;
+--error 1364
+INSERT INTO t1 SET j = 1, i = DEFAULT;
+--error 1364
+INSERT INTO t1 SET j = 1, i = DEFAULT(i);
+--error 1364
+INSERT INTO t1 VALUES (DEFAULT,1);
+DROP TABLE t1;
+SET @@sql_mode = '';
+CREATE TABLE t1 (i int not null);
+INSERT INTO t1 VALUES ();
+INSERT INTO t1 VALUES (DEFAULT);
+# DEFAULT(i) is an error even with the default sql_mode
+--error 1364
+INSERT INTO t1 VALUES (DEFAULT(i));
+ALTER TABLE t1 ADD j int;
+INSERT INTO t1 SET j = 1;
+INSERT INTO t1 SET j = 1, i = DEFAULT;
+--error 1364
+INSERT INTO t1 SET j = 1, i = DEFAULT(i);
+INSERT INTO t1 VALUES (DEFAULT,1);
+DROP TABLE t1;
+
+#
+# Bugs #8295 and #8296: varchar and varbinary conversion
+#
+
+set @@sql_mode='traditional';
+--error 1074
+create table t1(a varchar(65537));
+--error 1074
+create table t1(a varbinary(65537));
+
+#
+# Bug #9881: problem with altering table
+#
+
+set @@sql_mode='traditional';
+create table t1(a int, b date not null);
+alter table t1 modify a bigint unsigned not null;
+show create table t1;
+drop table t1;
+
+#
+# Bug #5906: handle invalid date due to conversion
+#
+set @@sql_mode='traditional';
+create table t1 (d date);
+--error 1292
+insert into t1 values ('2000-10-00');
+--error 1292
+insert into t1 values (1000);
+insert into t1 values ('2000-10-01');
+--error 1292
+update t1 set d = 1100;
+select * from t1;
+drop table t1;
+
+#
+# Bug #11964: alter table with timestamp field
+#
+
+set @@sql_mode='traditional';
+create table t1(a int, b timestamp);
+alter table t1 add primary key(a);
+show create table t1;
+drop table t1;
+create table t1(a int, b timestamp default 20050102030405);
+alter table t1 add primary key(a);
+show create table t1;
+drop table t1;
+
+#
+# BIT fields
+#
+
+set @@sql_mode='traditional';
+create table t1(a bit(2));
+--error 1406
+insert into t1 values(b'101');
+select * from t1;
+drop table t1;
+
+#
+# Bug#17626 CREATE TABLE ... SELECT failure with TRADITIONAL SQL mode
+#
+set sql_mode='traditional';
+create table t1 (date date not null);
+create table t2 select date from t1;
+show create table t2;
+drop table t2,t1;
+set @@sql_mode= @org_mode;
+
+#
+# Bug #13934 Silent truncation of table comments
+#
+set @@sql_mode='traditional';
+--error 1105
+create table t1 (i int)
+comment '123456789*123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*123456789*';
+--error 1105
+create table t1 (
+i int comment
+'123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*');
+set @@sql_mode= @org_mode;
+create table t1
+(i int comment
+ '123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*
+ 123456789*123456789*123456789*123456789*');
+
+select column_name, column_comment from information_schema.columns where
+table_schema = 'test' and table_name = 't1';
+drop table t1;
+
+set names utf8;
+create table t1 (i int)
+comment '123456789*123456789*123456789*123456789*123456789*123456789*';
+show create table t1;
+drop table t1;
+
+#
+# Bug #26359: Strings becoming truncated and converted to numbers under STRICT mode
+#
+set sql_mode= 'traditional';
+create table t1(col1 tinyint, col2 tinyint unsigned,
+ col3 smallint, col4 smallint unsigned,
+ col5 mediumint, col6 mediumint unsigned,
+ col7 int, col8 int unsigned,
+ col9 bigint, col10 bigint unsigned);
+--error 1366
+insert into t1(col1) values('-');
+--error 1366
+insert into t1(col2) values('+');
+--error 1366
+insert into t1(col3) values('-');
+--error 1366
+insert into t1(col4) values('+');
+--error 1366
+insert into t1(col5) values('-');
+--error 1366
+insert into t1(col6) values('+');
+--error 1366
+insert into t1(col7) values('-');
+--error 1366
+insert into t1(col8) values('+');
+--error 1366
+insert into t1(col9) values('-');
+--error 1366
+insert into t1(col10) values('+');
+drop table t1;
+
+#
+# Bug #27176: Assigning a string to an year column has unexpected results
+#
+set sql_mode='traditional';
+create table t1(a year);
+--error 1366
+insert into t1 values ('-');
+--error 1366
+insert into t1 values ('+');
+--error 1366
+insert into t1 values ('');
+--error 1265
+insert into t1 values ('2000a');
+--error 1265
+insert into t1 values ('2E3x');
+drop table t1;
+
+#
+# Bug#27069 set with identical elements are created
+#
+set sql_mode='traditional';
+--error 1291
+create table t1 (f1 set('a','a'));
+--error 1291
+create table t1 (f1 enum('a','a'));
+
+#
+# Bug #22824: strict, datetime, NULL, wrong warning
+#
+set @@sql_mode='NO_ZERO_DATE';
+create table t1(a datetime not null);
+select count(*) from t1 where a is null;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/strict_autoinc_1myisam.test b/mysql-test/t/strict_autoinc_1myisam.test
new file mode 100644
index 00000000000..d9ecce30974
--- /dev/null
+++ b/mysql-test/t/strict_autoinc_1myisam.test
@@ -0,0 +1,8 @@
+#
+# Bug#20573 Strict mode auto-increment
+#
+
+let $type= 'MYISAM' ;
+--source include/strict_autoinc.inc
+
+# end of test
diff --git a/mysql-test/t/strict_autoinc_2innodb.test b/mysql-test/t/strict_autoinc_2innodb.test
new file mode 100644
index 00000000000..83dfe950938
--- /dev/null
+++ b/mysql-test/t/strict_autoinc_2innodb.test
@@ -0,0 +1,10 @@
+-- source include/have_innodb.inc
+
+#
+# Bug#20573 Strict mode auto-increment
+#
+
+let $type= 'InnoDB' ;
+--source include/strict_autoinc.inc
+
+# end of test
diff --git a/mysql-test/t/strict_autoinc_3heap.test b/mysql-test/t/strict_autoinc_3heap.test
new file mode 100644
index 00000000000..f266ecdfda2
--- /dev/null
+++ b/mysql-test/t/strict_autoinc_3heap.test
@@ -0,0 +1,8 @@
+#
+# Bug#20573 Strict mode auto-increment
+#
+
+let $type= 'MEMORY' ;
+--source include/strict_autoinc.inc
+
+# end of test
diff --git a/mysql-test/t/strict_autoinc_4bdb.test b/mysql-test/t/strict_autoinc_4bdb.test
new file mode 100644
index 00000000000..10d6bfd41e7
--- /dev/null
+++ b/mysql-test/t/strict_autoinc_4bdb.test
@@ -0,0 +1,10 @@
+-- source include/have_bdb.inc
+
+#
+# Bug#20573 Strict mode auto-increment
+#
+
+let $type= 'BDB' ;
+--source include/strict_autoinc.inc
+
+# end of test
diff --git a/mysql-test/t/strict_autoinc_5ndb.test b/mysql-test/t/strict_autoinc_5ndb.test
new file mode 100644
index 00000000000..9e2090fddef
--- /dev/null
+++ b/mysql-test/t/strict_autoinc_5ndb.test
@@ -0,0 +1,10 @@
+-- source include/have_ndb.inc
+
+#
+# Bug#20573 Strict mode auto-increment
+#
+
+let $type= 'NDB' ;
+--source include/strict_autoinc.inc
+
+# end of test
diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test
index 978c8f26552..86d2aec870c 100644
--- a/mysql-test/t/subselect.test
+++ b/mysql-test/t/subselect.test
@@ -46,9 +46,9 @@ SELECT ROW(1,2,3) > (SELECT 1,2,1);
SELECT ROW(1,2,3) = (SELECT 1,2,NULL);
SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'a');
SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'b');
-SELECT (SELECT 1.5,2,'a') = ROW('b',2,'b');
+SELECT (SELECT 1.5,2,'a') = ROW('1.5b',2,'b');
SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a');
-SELECT (SELECT 1.5,2,'a') = ROW(1.5,'c','a');
+SELECT (SELECT 1.5,2,'a') = ROW(1.5,'2','a');
SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a');
-- error 1241
@@ -108,7 +108,7 @@ select * from t3 where a in (select a,b from t2);
-- error 1241
select * from t3 where a in (select * from t2);
insert into t4 values (12,7),(1,7),(10,9),(9,6),(7,6),(3,9),(1,10);
--- empty set
+# empty set
select b,max(a) as ma from t4 group by b having b < (select max(t2.a) from t2 where t2.b=t4.b);
insert into t2 values (2,10);
select b,max(a) as ma from t4 group by b having ma < (select max(t2.a) from t2 where t2.b=t4.b);
@@ -352,7 +352,9 @@ INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(a) FROM t2));
select * from t1;
INSERT INTO t1 (x) select (SELECT SUM(a)+1 FROM t2) FROM t2;
select * from t1;
+# After this, only data based on old t1 records should have been added.
INSERT INTO t1 (x) select (SELECT SUM(x)+2 FROM t1) FROM t2;
+select * from t1;
-- error 1054
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(x) FROM t2));
INSERT DELAYED INTO t1 (x) VALUES ((SELECT SUM(a) FROM t2));
@@ -507,6 +509,9 @@ select ROW(1, 1, 'a') IN (select b,a,c from t1 where c='b' or c='a');
select ROW(1, 1, 'a') IN (select b,a,c from t1 limit 2);
drop table t1;
+#
+# DO & SET
+#
create table t1 (a int);
insert into t1 values (1);
do @a:=(SELECT a from t1);
@@ -660,7 +665,7 @@ CREATE TABLE t2 (
) ENGINE=MyISAM;
INSERT INTO t2 VALUES ('AUS','Australia','Oceania','Australia and New Zealand',7741220.00,1901,18886000,79.8,351182.00,392911.00,'Australia','Constitutional Monarchy, Federation','Elisabeth II',135,'AU');
-INSERT INTO t2 VALUES ('AZE','Azerbaijan','Asia','Middle East',86600.00,1991,7734000,62.9,4127.00,4100.00,'Azärbaycan','Federal Republic','Heydär Äliyev',144,'AZ');
+INSERT INTO t2 VALUES ('AZE','Azerbaijan','Asia','Middle East',86600.00,1991,7734000,62.9,4127.00,4100.00,'Azärbaycan','Federal Republic','Heydär Äliyev',144,'AZ');
select t2.Continent, t1.Name, t1.Population from t2 LEFT JOIN t1 ON t2.Code = t1.t2 where t1.Population IN (select max(t1.Population) AS Population from t1, t2 where t1.t2 = t2.Code group by Continent);
@@ -691,7 +696,7 @@ CREATE TABLE `t1` (
INSERT INTO t1 VALUES (1);
UPDATE t1 SET i=i+(SELECT MAX(i) FROM (SELECT 1) t) WHERE i=(SELECT MAX(i));
UPDATE t1 SET i=i+1 WHERE i=(SELECT MAX(i));
--- error 1109
+-- error 1054
UPDATE t1 SET t.i=i+(SELECT MAX(i) FROM (SELECT 1) t);
select * from t1;
drop table t1;
@@ -1000,7 +1005,7 @@ create table t2 (s1 int);
select * from t1 where (select count(*) from t2 where t1.s2) = 1;
-- error 1054
select * from t1 where (select count(*) from t2 group by t1.s2) = 1;
--- error 1109
+-- error 1054
select count(*) from t2 group by t1.s2;
drop table t1, t2;
@@ -1128,7 +1133,9 @@ CREATE TABLE t2 (id INT);
INSERT INTO t1 VALUES (1), (2);
INSERT INTO t2 VALUES (1);
SELECT t1.id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id);
+SELECT id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id);
SELECT t1.id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id) ORDER BY t1.id;
+SELECT id, ( SELECT COUNT(t.id) FROM t2 AS t WHERE t.id = t1.id ) AS c FROM t1 LEFT JOIN t2 USING (id) ORDER BY id;
DROP TABLE t1,t2;
#
@@ -1519,7 +1526,7 @@ CREATE TABLE t1 (
) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('XXX','Xxxxx','Oceania','Xxxxxx',26.00,0,0,0,0,0,'Xxxxx','Xxxxx','Xxxxx',NULL,'XX');
INSERT INTO t1 VALUES ('ASM','American Samoa','Oceania','Polynesia',199.00,0,68000,75.1,334.00,NULL,'Amerika Samoa','US Territory','George W. Bush',54,'AS');
-INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF');
+INSERT INTO t1 VALUES ('ATF','French Southern territories','Antarctica','Antarctica',7780.00,0,0,NULL,0.00,NULL,'Terres australes françaises','Nonmetropolitan Territory of France','Jacques Chirac',NULL,'TF');
INSERT INTO t1 VALUES ('UMI','United States Minor Outlying Islands','Oceania','Micronesia/Caribbean',16.00,0,0,NULL,0.00,NULL,'United States Minor Outlying Islands','Dependent Territory of the US','George W. Bush',NULL,'UM');
/*!40000 ALTER TABLE t1 ENABLE KEYS */;
SELECT DISTINCT Continent AS c FROM t1 WHERE Code <> SOME ( SELECT Code FROM t1 WHERE Continent = c AND Population < 200);
@@ -1815,14 +1822,6 @@ SELECT * FROM t1
DROP TABLE t1,t2,t3;
#
-# BUG#10308: purge log with subselect
-# Bug#28553: mysqld crash in "purge master log before(select time from information_schema)"
-#
---error 1064
-purge master logs before (select adddate(current_timestamp(), interval -4 day));
-purge master logs before adddate(current_timestamp(), interval -4 day);
-
-#
# Bug#18503: Queries with a quantified subquery returning empty set may
# return a wrong result.
#
@@ -1996,7 +1995,7 @@ EXPLAIN SELECT a FROM t1 WHERE (SELECT 1 FROM DUAL WHERE 1=0) IS NULL;
DROP TABLE t1;
#
-# Bug 24653: sorting by expressions containing subselects
+# Bug 24653: sorting by expressions containing subselects
# that return more than one row
#
@@ -2008,12 +2007,12 @@ INSERT INTO t2 VALUES
(2,1), (1,3), (2,1), (4,4), (2,2), (1,4);
SELECT a FROM t1 ORDER BY (SELECT c FROM t2 WHERE b > 2 );
---error 1242
-SELECT a FROM t1 ORDER BY (SELECT c FROM t2 WHERE b > 1);
-SELECT a FROM t1 ORDER BY (SELECT c FROM t2 WHERE b > 2), a;
---error 1242
+--error 1242
+SELECT a FROM t1 ORDER BY (SELECT c FROM t2 WHERE b > 1);
+SELECT a FROM t1 ORDER BY (SELECT c FROM t2 WHERE b > 2), a;
+--error 1242
SELECT a FROM t1 ORDER BY (SELECT c FROM t2 WHERE b > 1), a;
-
+
SELECT b, MAX(c) FROM t2 GROUP BY b, (SELECT c FROM t2 WHERE b > 2);
--error 1242
SELECT b, MAX(c) FROM t2 GROUP BY b, (SELECT c FROM t2 WHERE b > 1);
@@ -2030,27 +2029,962 @@ SELECT a FROM t1 GROUP BY a
SELECT a FROM t1 GROUP BY a
HAVING IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 2 ORDER BY b)) > 3;
---error 1242
+--error 1242
SELECT a FROM t1 GROUP BY a
HAVING IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 1 ORDER BY b)) > 3;
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 2),
(SELECT c FROM t2 WHERE c=a AND b > 2 ORDER BY b));
--error 1242
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 1),
(SELECT c FROM t2 WHERE c=a AND b > 1 ORDER BY b));
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 2 ORDER BY b));
--error 1242
-SELECT a FROM t1
+SELECT a FROM t1
ORDER BY IFNULL((SELECT b FROM t2 WHERE b > 4),
(SELECT c FROM t2 WHERE c=a AND b > 1 ORDER BY b));
-DROP TABLE t1,t2;
+DROP TABLE t1,t2;
# End of 4.1 tests
+
+#
+#decimal-related tests
+#
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+insert into t1 values(2.2);
+
+select * from t1 where df <= all (select avg(df) from t1 group by df);
+select * from t1 where df >= all (select avg(df) from t1 group by df);
+drop table t1;
+
+create table t1 (df decimal(5,1));
+insert into t1 values(1.1);
+select 1.1 * exists(select * from t1);
+drop table t1;
+
+CREATE TABLE t1 (
+ grp int(11) default NULL,
+ a decimal(10,2) default NULL);
+
+insert into t1 values (1, 1), (2, 2), (2, 3), (3, 4), (3, 5), (3, 6), (NULL, NULL);
+select * from t1;
+select min(a) from t1 group by grp;
+drop table t1;
+
+#
+# Test for bug #9338: lame substitution of c1 instead of c2
+#
+
+CREATE table t1 ( c1 integer );
+INSERT INTO t1 VALUES ( 1 );
+INSERT INTO t1 VALUES ( 2 );
+INSERT INTO t1 VALUES ( 3 );
+
+CREATE TABLE t2 ( c2 integer );
+INSERT INTO t2 VALUES ( 1 );
+INSERT INTO t2 VALUES ( 4 );
+INSERT INTO t2 VALUES ( 5 );
+
+SELECT * FROM t1 LEFT JOIN t2 ON c1 = c2 WHERE c2 IN (1);
+
+SELECT * FROM t1 LEFT JOIN t2 ON c1 = c2
+ WHERE c2 IN ( SELECT c2 FROM t2 WHERE c2 IN ( 1 ) );
+
+DROP TABLE t1,t2;
+
+#
+# Test for bug #9516: wrong evaluation of not_null_tables attribute in SQ
+#
+CREATE TABLE t1 ( c1 integer );
+INSERT INTO t1 VALUES ( 1 );
+INSERT INTO t1 VALUES ( 2 );
+INSERT INTO t1 VALUES ( 3 );
+INSERT INTO t1 VALUES ( 6 );
+
+CREATE TABLE t2 ( c2 integer );
+INSERT INTO t2 VALUES ( 1 );
+INSERT INTO t2 VALUES ( 4 );
+INSERT INTO t2 VALUES ( 5 );
+INSERT INTO t2 VALUES ( 6 );
+
+CREATE TABLE t3 ( c3 integer );
+INSERT INTO t3 VALUES ( 7 );
+INSERT INTO t3 VALUES ( 8 );
+
+SELECT c1,c2 FROM t1 LEFT JOIN t2 ON c1 = c2
+ WHERE EXISTS (SELECT c3 FROM t3 WHERE c2 IS NULL );
+
+DROP TABLE t1,t2,t3;
+
+#
+# Item_int_with_ref check (BUG#10020)
+#
+CREATE TABLE `t1` (
+ `itemid` bigint(20) unsigned NOT NULL auto_increment,
+ `sessionid` bigint(20) unsigned default NULL,
+ `time` int(10) unsigned NOT NULL default '0',
+ `type` set('A','D','E','F','G','I','L','N','U') collate latin1_general_ci NOT
+NULL default '',
+ `data` text collate latin1_general_ci NOT NULL,
+ PRIMARY KEY (`itemid`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+INSERT INTO `t1` VALUES (1, 1, 1, 'D', '');
+CREATE TABLE `t2` (
+ `sessionid` bigint(20) unsigned NOT NULL auto_increment,
+ `pid` int(10) unsigned NOT NULL default '0',
+ `date` int(10) unsigned NOT NULL default '0',
+ `ip` varchar(15) collate latin1_general_ci NOT NULL default '',
+ PRIMARY KEY (`sessionid`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1');
+SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessionid WHERE e.sessionid = ( SELECT sessionid FROM t2 ORDER BY sessionid DESC LIMIT 1 ) GROUP BY s.ip HAVING count( e.itemid ) >0 LIMIT 0 , 30;
+drop tables t1,t2;
+
+#
+# Correct building of equal fields list (do not include outer
+# fields) (BUG#6384)
+#
+CREATE TABLE t1 (EMPNUM CHAR(3));
+CREATE TABLE t2 (EMPNUM CHAR(3) );
+INSERT INTO t1 VALUES ('E1'),('E2');
+INSERT INTO t2 VALUES ('E1');
+DELETE FROM t1
+WHERE t1.EMPNUM NOT IN
+ (SELECT t2.EMPNUM
+ FROM t2
+ WHERE t1.EMPNUM = t2.EMPNUM);
+select * from t1;
+DROP TABLE t1,t2;
+
+#
+# Test for bug #11487: range access in a subquery
+#
+
+CREATE TABLE t1(select_id BIGINT, values_id BIGINT);
+INSERT INTO t1 VALUES (1, 1);
+CREATE TABLE t2 (select_id BIGINT, values_id BIGINT,
+ PRIMARY KEY(select_id,values_id));
+INSERT INTO t2 VALUES (0, 1), (0, 2), (0, 3), (1, 5);
+
+SELECT values_id FROM t1
+WHERE values_id IN (SELECT values_id FROM t2
+ WHERE select_id IN (1, 0));
+SELECT values_id FROM t1
+WHERE values_id IN (SELECT values_id FROM t2
+ WHERE select_id BETWEEN 0 AND 1);
+SELECT values_id FROM t1
+WHERE values_id IN (SELECT values_id FROM t2
+ WHERE select_id = 0 OR select_id = 1);
+
+DROP TABLE t1, t2;
+
+# BUG#11821 : Select from subselect using aggregate function on an enum
+# segfaults:
+create table t1 (fld enum('0','1'));
+insert into t1 values ('1');
+select * from (select max(fld) from t1) as foo;
+drop table t1;
+
+#
+# Test for bug #11762: subquery with an aggregate function in HAVING
+#
+
+CREATE TABLE t1 (a int, b int);
+CREATE TABLE t2 (c int, d int);
+CREATE TABLE t3 (e int);
+
+INSERT INTO t1 VALUES
+ (1,10), (2,10), (1,20), (2,20), (3,20), (2,30), (4,40);
+INSERT INTO t2 VALUES
+ (2,10), (2,20), (4,10), (5,10), (3,20), (2,40);
+INSERT INTO t3 VALUES (10), (30), (10), (20) ;
+
+SELECT a, MAX(b), MIN(b) FROM t1 GROUP BY a;
+SELECT * FROM t2;
+SELECT * FROM t3;
+
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2 WHERE MAX(b)>20);
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2 WHERE MAX(b)<d);
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2 WHERE MAX(b)>d);
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2
+ WHERE d >= SOME(SELECT e FROM t3 WHERE MAX(b)=e));
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2
+ WHERE EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e <= d));
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2
+ WHERE d > SOME(SELECT e FROM t3 WHERE MAX(b)=e));
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2
+ WHERE EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e < d));
+SELECT a FROM t1 GROUP BY a
+ HAVING a IN (SELECT c FROM t2
+ WHERE MIN(b) < d AND
+ EXISTS(SELECT e FROM t3 WHERE MAX(b)=e AND e <= d));
+
+SELECT a, SUM(a) FROM t1 GROUP BY a;
+
+SELECT a FROM t1
+ WHERE EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) = c) GROUP BY a;
+SELECT a FROM t1 GROUP BY a
+ HAVING EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) = c);
+
+SELECT a FROM t1
+ WHERE a < 3 AND
+ EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) != c) GROUP BY a;
+SELECT a FROM t1
+ WHERE a < 3 AND
+ EXISTS(SELECT c FROM t2 GROUP BY c HAVING SUM(a) != c);
+
+SELECT t1.a FROM t1 GROUP BY t1.a
+ HAVING t1.a < ALL(SELECT t2.c FROM t2 GROUP BY t2.c
+ HAVING EXISTS(SELECT t3.e FROM t3 GROUP BY t3.e
+ HAVING SUM(t1.a+t2.c) < t3.e/4));
+SELECT t1.a FROM t1 GROUP BY t1.a
+ HAVING t1.a > ALL(SELECT t2.c FROM t2
+ WHERE EXISTS(SELECT t3.e FROM t3 GROUP BY t3.e
+ HAVING SUM(t1.a+t2.c) < t3.e/4));
+-- error 1111
+SELECT t1.a FROM t1 GROUP BY t1.a
+ HAVING t1.a > ALL(SELECT t2.c FROM t2
+ WHERE EXISTS(SELECT t3.e FROM t3
+ WHERE SUM(t1.a+t2.c) < t3.e/4));
+-- error 1111
+SELECT t1.a from t1 GROUP BY t1.a HAVING AVG(SUM(t1.b)) > 20;
+
+SELECT t1.a FROM t1 GROUP BY t1.a
+ HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
+ HAVING AVG(t2.c+SUM(t1.b)) > 20);
+SELECT t1.a FROM t1 GROUP BY t1.a
+ HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
+ HAVING AVG(SUM(t1.b)) > 20);
+
+SELECT t1.a, SUM(b) AS sum FROM t1 GROUP BY t1.a
+ HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
+ HAVING t2.c+sum > 20);
+
+DROP TABLE t1,t2,t3;
+
+#
+# Test for bug #16603: GROUP BY in a row subquery with a quantifier
+# when an index is defined on the grouping field
+
+CREATE TABLE t1 (a varchar(5), b varchar(10));
+INSERT INTO t1 VALUES
+ ('AAA', 5), ('BBB', 4), ('BBB', 1), ('CCC', 2),
+ ('CCC', 7), ('AAA', 2), ('AAA', 4), ('BBB', 3), ('AAA', 8);
+
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+EXPLAIN
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+
+ALTER TABLE t1 ADD INDEX(a);
+
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+EXPLAIN
+SELECT * FROM t1 WHERE (a,b) = ANY (SELECT a, max(b) FROM t1 GROUP BY a);
+
+DROP TABLE t1;
+
+#
+# Bug#17366: Unchecked Item_int results in server crash
+#
+create table t1( f1 int,f2 int);
+insert into t1 values (1,1),(2,2);
+select tt.t from (select 'crash1' as t, f2 from t1) as tt left join t1 on tt.t = 'crash2' and tt.f2 = t1.f2 where tt.t = 'crash1';
+drop table t1;
+
+#
+# Bug #18306: server crash on delete using subquery.
+#
+
+create table t1 (c int, key(c));
+insert into t1 values (1142477582), (1142455969);
+create table t2 (a int, b int);
+insert into t2 values (2, 1), (1, 0);
+delete from t1 where c <= 1140006215 and (select b from t2 where a = 2) = 1;
+drop table t1, t2;
+
+#
+# Bug #7549: Missing error message for invalid view selection with subquery
+#
+
+CREATE TABLE t1 (a INT);
+
+--error 1054
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE no_such_column = ANY (SELECT 1);
+--error 1054
+CREATE VIEW v2 AS SELECT * FROM t1 WHERE no_such_column = (SELECT 1);
+--error 1054
+SELECT * FROM t1 WHERE no_such_column = ANY (SELECT 1);
+
+DROP TABLE t1;
+
+#
+# Bug#19077: A nested materialized derived table is used before being populated.
+#
+create table t1 (i int, j bigint);
+insert into t1 values (1, 2), (2, 2), (3, 2);
+select * from (select min(i) from t1 where j=(select * from (select min(j) from t1) t2)) t3;
+drop table t1;
+
+#
+# Bug#19700: subselect returning BIGINT always returned it as SIGNED
+#
+CREATE TABLE t1 (i BIGINT UNSIGNED);
+INSERT INTO t1 VALUES (10000000000000000000); # > MAX SIGNED BIGINT 9323372036854775807
+INSERT INTO t1 VALUES (1);
+
+CREATE TABLE t2 (i BIGINT UNSIGNED);
+INSERT INTO t2 VALUES (10000000000000000000); # same as first table
+INSERT INTO t2 VALUES (1);
+
+/* simple test */
+SELECT t1.i FROM t1 JOIN t2 ON t1.i = t2.i;
+
+/* subquery test */
+SELECT t1.i FROM t1 WHERE t1.i = (SELECT MAX(i) FROM t2);
+
+/* subquery test with cast*/
+SELECT t1.i FROM t1 WHERE t1.i = CAST((SELECT MAX(i) FROM t2) AS UNSIGNED);
+
+DROP TABLE t1;
+DROP TABLE t2;
+
+#
+# Bug#20519: subselect with LIMIT M, N
+#
+
+CREATE TABLE t1 (
+ id bigint(20) unsigned NOT NULL auto_increment,
+ name varchar(255) NOT NULL,
+ PRIMARY KEY (id)
+);
+INSERT INTO t1 VALUES
+ (1, 'Balazs'), (2, 'Joe'), (3, 'Frank');
+
+CREATE TABLE t2 (
+ id bigint(20) unsigned NOT NULL auto_increment,
+ mid bigint(20) unsigned NOT NULL,
+ date date NOT NULL,
+ PRIMARY KEY (id)
+);
+INSERT INTO t2 VALUES
+ (1, 1, '2006-03-30'), (2, 2, '2006-04-06'), (3, 3, '2006-04-13'),
+ (4, 2, '2006-04-20'), (5, 1, '2006-05-01');
+
+SELECT *,
+ (SELECT date FROM t2 WHERE mid = t1.id
+ ORDER BY date DESC LIMIT 0, 1) AS date_last,
+ (SELECT date FROM t2 WHERE mid = t1.id
+ ORDER BY date DESC LIMIT 3, 1) AS date_next_to_last
+ FROM t1;
+SELECT *,
+ (SELECT COUNT(*) FROM t2 WHERE mid = t1.id
+ ORDER BY date DESC LIMIT 1, 1) AS date_count
+ FROM t1;
+SELECT *,
+ (SELECT date FROM t2 WHERE mid = t1.id
+ ORDER BY date DESC LIMIT 0, 1) AS date_last,
+ (SELECT date FROM t2 WHERE mid = t1.id
+ ORDER BY date DESC LIMIT 1, 1) AS date_next_to_last
+ FROM t1;
+DROP TABLE t1,t2;
+
+#
+# Bug#20869: subselect with range access by DESC
+#
+
+CREATE TABLE t1 (
+ i1 int(11) NOT NULL default '0',
+ i2 int(11) NOT NULL default '0',
+ t datetime NOT NULL default '0000-00-00 00:00:00',
+ PRIMARY KEY (i1,i2,t)
+);
+INSERT INTO t1 VALUES
+(24,1,'2005-03-03 16:31:31'),(24,1,'2005-05-27 12:40:07'),
+(24,1,'2005-05-27 12:40:08'),(24,1,'2005-05-27 12:40:10'),
+(24,1,'2005-05-27 12:40:25'),(24,1,'2005-05-27 12:40:30'),
+(24,2,'2005-03-03 13:43:05'),(24,2,'2005-03-03 16:23:31'),
+(24,2,'2005-03-03 16:31:30'),(24,2,'2005-05-27 12:37:02'),
+(24,2,'2005-05-27 12:40:06');
+
+CREATE TABLE t2 (
+ i1 int(11) NOT NULL default '0',
+ i2 int(11) NOT NULL default '0',
+ t datetime default NULL,
+ PRIMARY KEY (i1)
+);
+INSERT INTO t2 VALUES (24,1,'2006-06-20 12:29:40');
+
+EXPLAIN
+SELECT * FROM t1,t2
+ WHERE t1.t = (SELECT t1.t FROM t1
+ WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
+ ORDER BY t1.t DESC LIMIT 1);
+SELECT * FROM t1,t2
+ WHERE t1.t = (SELECT t1.t FROM t1
+ WHERE t1.t < t2.t AND t1.i2=1 AND t2.i1=t1.i1
+ ORDER BY t1.t DESC LIMIT 1);
+
+DROP TABLE t1, t2;
+
+#
+# Bug#14654 : Cannot select from the same table twice within a UNION
+# statement
+#
+CREATE TABLE t1 (i INT);
+
+(SELECT i FROM t1) UNION (SELECT i FROM t1);
+SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS
+ (
+ (SELECT i FROM t1) UNION
+ (SELECT i FROM t1)
+ );
+
+SELECT * FROM t1
+WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1)));
+
+#TODO:not supported
+--error 1064
+explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12))
+ from t1;
+#supported
+explain select * from t1 where not exists
+ ((select t11.i from t1 t11) union (select t12.i from t1 t12));
+
+DROP TABLE t1;
+
+#
+# Bug#21798: memory leak during query execution with subquery in column
+# list using a function
+#
+CREATE TABLE t1 (a VARCHAR(250), b INT auto_increment, PRIMARY KEY (b));
+insert into t1 (a) values (FLOOR(rand() * 100));
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+insert into t1 (a) select FLOOR(rand() * 100) from t1;
+
+SELECT a,
+ (SELECT REPEAT(' ',250) FROM t1 i1
+ WHERE i1.b=t1.a ORDER BY RAND() LIMIT 1) AS a
+FROM t1 ORDER BY a LIMIT 5;
+DROP TABLE t1;
+
+#
+# Bug #21540: Subqueries with no from and aggregate functions return
+# wrong results
+CREATE TABLE t1 (a INT, b INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t2 values (1);
+INSERT INTO t1 VALUES (1,1),(1,2),(2,3),(3,4);
+SELECT (SELECT COUNT(DISTINCT t1.b) from t2) FROM t1 GROUP BY t1.a;
+SELECT (SELECT COUNT(DISTINCT t1.b) from t2 union select 1 from t2 where 12 < 3)
+ FROM t1 GROUP BY t1.a;
+SELECT COUNT(DISTINCT t1.b), (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
+SELECT COUNT(DISTINCT t1.b),
+ (SELECT COUNT(DISTINCT t1.b) union select 1 from DUAL where 12 < 3)
+ FROM t1 GROUP BY t1.a;
+SELECT (
+ SELECT (
+ SELECT COUNT(DISTINCT t1.b)
+ )
+)
+FROM t1 GROUP BY t1.a;
+SELECT (
+ SELECT (
+ SELECT (
+ SELECT COUNT(DISTINCT t1.b)
+ )
+ )
+ FROM t1 GROUP BY t1.a LIMIT 1)
+FROM t1 t2
+GROUP BY t2.a;
+DROP TABLE t1,t2;
+
+#
+# Bug #21727: Correlated subquery that requires filesort:
+# slow with big sort_buffer_size
+#
+
+CREATE TABLE t1 (a int, b int auto_increment, PRIMARY KEY (b));
+CREATE TABLE t2 (x int auto_increment, y int, z int,
+ PRIMARY KEY (x), FOREIGN KEY (y) REFERENCES t1 (b));
+
+disable_query_log;
+let $1=3000;
+while ($1)
+{
+ eval INSERT INTO t1(a) VALUES(RAND()*1000);
+ eval SELECT MAX(b) FROM t1 INTO @id;
+ let $2=10;
+ while ($2)
+ {
+ eval INSERT INTO t2(y,z) VALUES(@id,RAND()*1000);
+ dec $2;
+ }
+ dec $1;
+}
+enable_query_log;
+
+SET SESSION sort_buffer_size = 32 * 1024;
+SELECT SQL_NO_CACHE COUNT(*)
+ FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
+ FROM t1) t;
+
+SET SESSION sort_buffer_size = 8 * 1024 * 1024;
+SELECT SQL_NO_CACHE COUNT(*)
+ FROM (SELECT a, b, (SELECT x FROM t2 WHERE y=b ORDER BY z DESC LIMIT 1) c
+ FROM t1) t;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #25219: EXIST subquery with UNION over a mix of
+# correlated and uncorrelated selects
+#
+
+CREATE TABLE t1 (id char(4) PRIMARY KEY, c int);
+CREATE TABLE t2 (c int);
+
+INSERT INTO t1 VALUES ('aa', 1);
+INSERT INTO t2 VALUES (1);
+
+SELECT * FROM t1
+ WHERE EXISTS (SELECT c FROM t2 WHERE c=1
+ UNION
+ SELECT c from t2 WHERE c=t1.c);
+
+INSERT INTO t1 VALUES ('bb', 2), ('cc', 3), ('dd',1);
+
+SELECT * FROM t1
+ WHERE EXISTS (SELECT c FROM t2 WHERE c=1
+ UNION
+ SELECT c from t2 WHERE c=t1.c);
+
+INSERT INTO t2 VALUES (2);
+CREATE TABLE t3 (c int);
+INSERT INTO t3 VALUES (1);
+
+SELECT * FROM t1
+ WHERE EXISTS (SELECT t2.c FROM t2 JOIN t3 ON t2.c=t3.c WHERE t2.c=1
+ UNION
+ SELECT c from t2 WHERE c=t1.c);
+
+DROP TABLE t1,t2,t3;
+
+#
+# Bug#23800: Outer fields in correlated subqueries is used in a temporary
+# table created for sorting.
+#
+CREATE TABLE t1(f1 int);
+CREATE TABLE t2(f2 int, f21 int, f3 timestamp);
+INSERT INTO t1 VALUES (1),(1),(2),(2);
+INSERT INTO t2 VALUES (1,1,"2004-02-29 11:11:11"), (2,2,"2004-02-29 11:11:11");
+SELECT ((SELECT f2 FROM t2 WHERE f21=f1 LIMIT 1) * COUNT(f1)) AS sq FROM t1 GROUP BY f1;
+SELECT (SELECT SUM(1) FROM t2 ttt GROUP BY t2.f3 LIMIT 1) AS tt FROM t2;
+PREPARE stmt1 FROM 'SELECT ((SELECT f2 FROM t2 WHERE f21=f1 LIMIT 1) * COUNT(f1)) AS sq FROM t1 GROUP BY f1';
+EXECUTE stmt1;
+EXECUTE stmt1;
+DEALLOCATE PREPARE stmt1;
+SELECT f2, AVG(f21),
+ (SELECT t.f3 FROM t2 AS t WHERE t2.f2=t.f2 AND t.f3=MAX(t2.f3)) AS test
+ FROM t2 GROUP BY f2;
+DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL);
+INSERT INTO t1 VALUES
+ (1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'),
+ (2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'), (3,3,'j'),
+ (3,2,'k'), (3,1,'l'), (1,9,'m');
+SELECT a, MAX(b),
+ (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) AS test
+ FROM t1 GROUP BY a;
+DROP TABLE t1;
+
+#
+# Bug#21904 (parser problem when using IN with a double "(())")
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+DROP TABLE IF EXISTS t1xt2;
+--enable_warnings
+
+CREATE TABLE t1 (
+ id_1 int(5) NOT NULL,
+ t varchar(4) DEFAULT NULL
+);
+
+CREATE TABLE t2 (
+ id_2 int(5) NOT NULL,
+ t varchar(4) DEFAULT NULL
+);
+
+CREATE TABLE t1xt2 (
+ id_1 int(5) NOT NULL,
+ id_2 int(5) NOT NULL
+);
+
+INSERT INTO t1 VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd');
+
+INSERT INTO t2 VALUES (2, 'bb'), (3, 'cc'), (4, 'dd'), (12, 'aa');
+
+INSERT INTO t1xt2 VALUES (2, 2), (3, 3), (4, 4);
+
+# subselect returns 0 rows
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN ((SELECT t1xt2.id_2 FROM t1xt2 where t1.id_1 = t1xt2.id_1)));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (((SELECT t1xt2.id_2 FROM t1xt2 where t1.id_1 = t1xt2.id_1))));
+
+insert INTO t1xt2 VALUES (1, 12);
+
+# subselect returns 1 row
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+
+insert INTO t1xt2 VALUES (2, 12);
+
+# subselect returns more than 1 row
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN ((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1)));
+
+SELECT DISTINCT t1.id_1 FROM t1 WHERE
+(12 NOT IN (((SELECT t1xt2.id_2 FROM t1xt2 WHERE t1.id_1 = t1xt2.id_1))));
+
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE t1xt2;
+
+#
+# Bug #26728: derived table with concatanation of literals in select list
+#
+
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (3), (1), (2);
+
+SELECT 'this is ' 'a test.' AS col1, a AS col2 FROM t1;
+SELECT * FROM (SELECT 'this is ' 'a test.' AS col1, a AS t2 FROM t1) t;
+
+DROP table t1;
+
+#
+# Bug #27257: COUNT(*) aggregated in outer query
+#
+
+CREATE TABLE t1 (a int, b int);
+CREATE TABLE t2 (m int, n int);
+INSERT INTO t1 VALUES (2,2), (2,2), (3,3), (3,3), (3,3), (4,4);
+INSERT INTO t2 VALUES (1,11), (2,22), (3,32), (4,44), (4,44);
+
+SELECT COUNT(*), a,
+ (SELECT m FROM t2 WHERE m = count(*) LIMIT 1)
+ FROM t1 GROUP BY a;
+
+SELECT COUNT(*), a,
+ (SELECT MIN(m) FROM t2 WHERE m = count(*))
+ FROM t1 GROUP BY a;
+
+SELECT COUNT(*), a
+ FROM t1 GROUP BY a
+ HAVING (SELECT MIN(m) FROM t2 WHERE m = count(*)) > 1;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #27229: GROUP_CONCAT in subselect with COUNT() as an argument
+#
+
+CREATE TABLE t1 (a int, b int);
+CREATE TABLE t2 (m int, n int);
+INSERT INTO t1 VALUES (2,2), (2,2), (3,3), (3,3), (3,3), (4,4);
+INSERT INTO t2 VALUES (1,11), (2,22), (3,32), (4,44), (4,44);
+
+SELECT COUNT(*) c, a,
+ (SELECT GROUP_CONCAT(COUNT(a)) FROM t2 WHERE m = a)
+ FROM t1 GROUP BY a;
+
+SELECT COUNT(*) c, a,
+ (SELECT GROUP_CONCAT(COUNT(a)+1) FROM t2 WHERE m = a)
+ FROM t1 GROUP BY a;
+
+DROP table t1,t2;
+
+#
+# Bug#27321: Wrong subquery result in a grouping select
+#
+CREATE TABLE t1 (a int, b INT, d INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b));
+INSERT INTO t1 VALUES (1,1,0,'a'), (1,2,0,'b'), (1,3,0,'c'), (1,4,0,'d'),
+(1,5,0,'e'), (2,1,0,'f'), (2,2,0,'g'), (2,3,0,'h'), (3,4,0,'i'), (3,3,0,'j'),
+(3,2,0,'k'), (3,1,0,'l'), (1,9,0,'m'), (1,0,10,'n'), (2,0,5,'o'), (3,0,7,'p');
+
+SELECT a, MAX(b),
+ (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b + 0)) as test
+ FROM t1 GROUP BY a;
+SELECT a x, MAX(b),
+ (SELECT t.c FROM t1 AS t WHERE x=t.a AND t.b=MAX(t1.b + 0)) as test
+ FROM t1 GROUP BY a;
+SELECT a, AVG(b),
+ (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) AS test
+ FROM t1 WHERE t1.d=0 GROUP BY a;
+
+SELECT tt.a,
+ (SELECT (SELECT c FROM t1 as t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
+ LIMIT 1) FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
+ FROM t1 as tt;
+
+SELECT tt.a,
+ (SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
+ LIMIT 1)
+ FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test
+ FROM t1 as tt GROUP BY tt.a;
+
+SELECT tt.a, MAX(
+ (SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a)
+ LIMIT 1)
+ FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1)) as test
+ FROM t1 as tt GROUP BY tt.a;
+
+DROP TABLE t1;
+#
+# Bug #27348: SET FUNCTION used in a subquery from WHERE condition
+#
+
+CREATE TABLE t1 (a int, b int);
+INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
+
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a;
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 1 GROUP BY a;
+
+SELECT a FROM t1 t0
+ WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a;
+
+SET @@sql_mode='ansi';
+--error 1111
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a;
+--error 1111
+SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 1 GROUP BY a;
+
+--error 1111
+SELECT a FROM t1 t0
+ WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a;
+
+SET @@sql_mode=default;
+
+DROP TABLE t1;
+
+#
+# Bug #27363: nested aggregates in outer, subquery / sum(select
+# count(outer))
+#
+CREATE TABLE t1 (a INT); INSERT INTO t1 values (1),(1),(1),(1);
+CREATE TABLE t2 (x INT); INSERT INTO t1 values (1000),(1001),(1002);
+
+--error ER_INVALID_GROUP_FUNC_USE
+SELECT SUM( (SELECT COUNT(a) FROM t2) ) FROM t1;
+--error ER_INVALID_GROUP_FUNC_USE
+SELECT SUM( (SELECT SUM(COUNT(a)) FROM t2) ) FROM t1;
+SELECT COUNT(1) FROM DUAL;
+
+--error ER_INVALID_GROUP_FUNC_USE
+SELECT SUM( (SELECT AVG( (SELECT t1.a FROM t2) ) FROM DUAL) ) FROM t1;
+
+--error ER_INVALID_GROUP_FUNC_USE
+SELECT
+ SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING t1.a < 12) ) FROM t2) )
+FROM t1;
+
+--error ER_INVALID_GROUP_FUNC_USE
+SELECT t1.a as XXA,
+ SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING XXA < 12) ) FROM t2) )
+FROM t1;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #27807: Server crash when executing subquery with EXPLAIN
+#
+CREATE TABLE t1 (a int, b int, KEY (a));
+INSERT INTO t1 VALUES (1,1),(2,1);
+EXPLAIN SELECT 1 FROM t1 WHERE a = (SELECT COUNT(*) FROM t1 GROUP BY b);
+DROP TABLE t1;
+
+#
+# Bug #28377: grouping query with a correlated subquery in WHERE condition
+#
+
+CREATE TABLE t1 (id int NOT NULL, st CHAR(2), INDEX idx(id));
+INSERT INTO t1 VALUES
+ (3,'FL'), (2,'GA'), (4,'FL'), (1,'GA'), (5,'NY'), (7,'FL'), (6,'NY');
+CREATE TABLE t2 (id int NOT NULL, INDEX idx(id));
+INSERT INTO t2 VALUES (7), (5), (1), (3);
+
+SELECT id, st FROM t1
+ WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
+SELECT id, st FROM t1
+ WHERE st IN ('GA','FL') AND EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
+ GROUP BY id;
+
+SELECT id, st FROM t1
+ WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id);
+SELECT id, st FROM t1
+ WHERE st IN ('GA','FL') AND NOT EXISTS(SELECT 1 FROM t2 WHERE t2.id=t1.id)
+ GROUP BY id;
+
+DROP TABLE t1,t2;
+
+#
+# Bug #28728: crash with EXPLAIN EXTENDED for a query with a derived table
+# over a grouping subselect
+#
+
+CREATE TABLE t1 (a int);
+
+INSERT INTO t1 VALUES (1), (2);
+
+EXPLAIN EXTENDED
+SELECT * FROM (SELECT count(*) FROM t1 GROUP BY a) as res;
+
+DROP TABLE t1;
+
+#
+# Bug #28811: crash for query containing subquery with ORDER BY and LIMIT 1
+#
+
+CREATE TABLE t1 (
+ a varchar(255) default NULL,
+ b timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ INDEX idx(a,b)
+);
+CREATE TABLE t2 (
+ a varchar(255) default NULL
+);
+
+INSERT INTO t1 VALUES ('abcdefghijk','2007-05-07 06:00:24');
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO `t1` VALUES ('asdf','2007-02-08 01:11:26');
+INSERT INTO `t2` VALUES ('abcdefghijk');
+INSERT INTO `t2` VALUES ('asdf');
+
+SET session sort_buffer_size=8192;
+
+SELECT (SELECT 1 FROM t1 WHERE t1.a=t2.a ORDER BY t1.b LIMIT 1) AS d1 FROM t2;
+
+DROP TABLE t1,t2;
+
+
+#
+# Bug #27333: subquery grouped for aggregate of outer query / no aggregate
+# of subquery
+#
+CREATE TABLE t1 (a INTEGER, b INTEGER);
+CREATE TABLE t2 (x INTEGER);
+INSERT INTO t1 VALUES (1,11), (2,22), (2,22);
+INSERT INTO t2 VALUES (1), (2);
+
+# wasn't failing, but should
+--error ER_SUBQUERY_NO_1_ROW
+SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a;
+
+# fails as it should
+--error ER_SUBQUERY_NO_1_ROW
+SELECT a, COUNT(b), (SELECT COUNT(b)+0 FROM t2) FROM t1 GROUP BY a;
+
+SELECT (SELECT SUM(t1.a)/AVG(t2.x) FROM t2) FROM t1;
+DROP TABLE t1,t2;
+
+# second test case from 27333
+CREATE TABLE t1 (a INT, b INT);
+INSERT INTO t1 VALUES (1, 2), (1,3), (1,4), (2,1), (2,2);
+
+# returns no rows, when it should
+SELECT a1.a, COUNT(*) FROM t1 a1 WHERE a1.a = 1
+AND EXISTS( SELECT a2.a FROM t1 a2 WHERE a2.a = a1.a)
+GROUP BY a1.a;
+DROP TABLE t1;
+
+#test cases from 29297
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+INSERT INTO t2 VALUES (1),(2);
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=0) FROM t1;
+--error ER_SUBQUERY_NO_1_ROW
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a!=0) FROM t1;
+SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1;
+DROP TABLE t1,t2;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/subselect3.test b/mysql-test/t/subselect3.test
new file mode 100644
index 00000000000..2f844c9cc21
--- /dev/null
+++ b/mysql-test/t/subselect3.test
@@ -0,0 +1,591 @@
+--disable_warnings
+drop table if exists t0, t1, t2, t3, t4;
+--enable_warnings
+
+#
+# 1. Subquery with GROUP/HAVING
+#
+create table t1 (oref int, grp int, ie int) ;
+insert into t1 (oref, grp, ie) values
+ (1, 1, 1),
+ (1, 1, 1),
+ (1, 2, NULL),
+
+ (2, 1, 3),
+
+ (3, 1, 4),
+ (3, 2, NULL);
+
+# Ok, for
+# select max(ie) from t1 where oref=PARAM group by grp
+# we'll have:
+# PARAM subquery result
+# 1 -> {(1), (NULL)} matching + NULL
+# 2 -> {(3)} non-matching
+# 3 -> {(3), (NULL)} non-matching + NULL
+# 4 -> {} empty set
+
+create table t2 (oref int, a int);
+insert into t2 values
+ (1, 1),
+ (2, 2),
+ (3, 3),
+ (4, NULL),
+ (2, NULL);
+
+# true, false, null, false, null
+select a, oref, a in (select max(ie)
+ from t1 where oref=t2.oref group by grp) Z from t2;
+
+# This must have a trigcond
+explain extended
+select a, oref, a in (select max(ie)
+ from t1 where oref=t2.oref group by grp) Z from t2;
+
+# This must not have a trigcond:
+explain extended
+select a, oref from t2
+where a in (select max(ie) from t1 where oref=t2.oref group by grp);
+select a, oref, a in (
+ select max(ie) from t1 where oref=t2.oref group by grp union
+ select max(ie) from t1 where oref=t2.oref group by grp
+ ) Z from t2;
+
+# Non-correlated subquery, 2 NULL evaluations
+create table t3 (a int);
+insert into t3 values (NULL), (NULL);
+flush status;
+select a in (select max(ie) from t1 where oref=4 group by grp) from t3;
+show status like 'Handler_read_rnd_next';
+select ' ^ This must show 11' Z;
+
+# This must show trigcond:
+explain extended select a in (select max(ie) from t1 where oref=4 group by grp) from t3;
+
+drop table t1, t2, t3;
+
+#
+# 2. Subquery handled with 'index_subquery':
+#
+create table t1 (a int, oref int, key(a));
+insert into t1 values
+ (1, 1),
+ (1, NULL),
+ (2, 3),
+ (2, NULL),
+ (3, NULL);
+
+create table t2 (a int, oref int);
+insert into t2 values (1, 1), (2,2), (NULL, 3), (NULL, 4);
+
+select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
+
+# The next explain shows "using index" but that is just incorrect display
+# (there is a bug filed about this).
+explain extended
+select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
+
+flush status;
+select oref, a from t2 where a in (select a from t1 where oref=t2.oref);
+# This will only show access to t2:
+show status like '%Handler_read_rnd_next';
+
+# Check that repeated NULL-scans are not cached (subq. is not correlated):
+delete from t2;
+insert into t2 values (NULL, 0),(NULL, 0), (NULL, 0), (NULL, 0);
+
+flush status;
+select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
+show status like '%Handler_read%';
+select 'No key lookups, seq reads: 29= 5 reads from t2 + 4 * 6 reads from t1.' Z;
+
+drop table t1, t2;
+
+#
+# 3. Subquery handled with 'unique_index_subquery':
+#
+create table t1 (a int, b int, primary key (a));
+insert into t1 values (1,1), (3,1),(100,1);
+
+create table t2 (a int, b int);
+insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0);
+
+select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ;
+
+drop table t1, t2;
+
+#
+# 4. Subquery that is a join, with ref access
+#
+create table t1 (a int, b int, key(a));
+insert into t1 values
+ (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9);
+
+create table t2 like t1;
+insert into t2 select * from t1;
+update t2 set b=1;
+
+create table t3 (a int, oref int);
+insert into t3 values (1, 1), (NULL,1), (NULL,0);
+select a, oref,
+ t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+
+# This must have trigcond in WHERE and HAVING:
+explain extended
+select a, oref,
+ t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+
+drop table t1, t2, t3;
+
+
+#
+# BUG#24085: Wrong query result for "NULL IN (SELECT ... UNION SELECT ...)"
+#
+
+# case 1: NULL IN (SELECT not_null_val FROM ...) w/o HAVING/GROUP-BY/etc
+create table t1 (a int NOT NULL, b int NOT NULL, key(a));
+insert into t1 values
+ (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9);
+
+create table t2 like t1;
+insert into t2 select * from t1;
+update t2 set b=1;
+
+create table t3 (a int, oref int);
+insert into t3 values (1, 1), (NULL,1), (NULL,0);
+select a, oref,
+ t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+
+--echo This must show a trig_cond:
+explain extended
+select a, oref,
+ t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z
+from t3;
+drop table t1,t2,t3;
+
+
+# case 2: NULL IN (SELECT not_null_val FROM) where SELECT has GROUP BY
+create table t1 (oref int, grp int);
+insert into t1 (oref, grp) values
+ (1, 1),
+ (1, 1);
+
+# Ok, for
+# select count(*) from t1 group by grp having grp=PARAM
+# we'll have:
+# PARAM subuqery result
+# 1 -> {(2)}
+# 2 -> {} - empty set
+create table t2 (oref int, a int);
+insert into t2 values
+ (1, NULL),
+ (2, NULL);
+
+select a, oref,
+ a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2;
+
+--echo This must show a trig_cond:
+explain extended
+select a, oref,
+ a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2;
+
+drop table t1, t2;
+
+create table t1 (a int, b int, primary key (a));
+insert into t1 values (1,1), (3,1),(100,1);
+create table t2 (a int, b int);
+insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0);
+
+select a,b, a in (select a from t1 where t1.b = t2.b union select a from
+t1 where t1.b = t2.b) Z from t2 ;
+select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ;
+drop table t1, t2;
+
+
+#
+# BUG#24127: Incorrect results of row-based subqueries with NULLs on the left side.
+#
+create table t3 (a int);
+insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
+create table t2 (a int, b int, oref int);
+insert into t2 values (NULL,1, 100), (NULL,2, 100);
+
+create table t1 (a int, b int, c int, key(a,b));
+insert into t1 select 2*A, 2*A, 100 from t3;
+
+# First test index subquery engine
+explain extended select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2;
+select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2;
+
+# Then check that we do turn off 'ref' scans in the subquery
+create table t4 (x int);
+insert into t4 select A.a + 10*B.a from t1 A, t1 B;
+explain extended
+ select a,b, oref,
+ (a,b) in (select a,b from t1,t4 where c=t2.oref) Z
+ from t2;
+select a,b, oref,
+ (a,b) in (select a,b from t1,t4 where c=t2.oref) Z
+from t2;
+
+drop table t1,t2,t3,t4;
+
+# More tests for tricky multi-column cases, where some of pushed-down
+# equalities are used for index lookups and some arent.
+create table t1 (oref char(4), grp int, ie1 int, ie2 int);
+insert into t1 (oref, grp, ie1, ie2) values
+ ('aa', 10, 2, 1),
+ ('aa', 10, 1, 1),
+ ('aa', 20, 2, 1),
+ ('bb', 10, 3, 1),
+ ('cc', 10, 4, 2),
+ ('cc', 20, 3, 2),
+
+ ('ee', 10, 2, 1),
+ ('ee', 10, 1, 2),
+
+ ('ff', 20, 2, 2),
+ ('ff', 20, 1, 2);
+create table t2 (oref char(4), a int, b int);
+insert into t2 values
+ ('ee', NULL, 1),
+ ('bb', 2, 1),
+ ('ff', 2, 2),
+ ('cc', 3, NULL),
+ ('bb', NULL, NULL),
+ ('aa', 1, 1),
+ ('dd', 1, NULL);
+alter table t1 add index idx(ie1,ie2);
+
+# cc 3 NULL NULL
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=3 and b is null ;
+insert into t2 values ('new1', 10,10);
+insert into t1 values ('new1', 1234, 10, NULL);
+# new1, 10, 10, NULL,
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10;
+explain extended
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10;
+drop table t1, t2;
+
+# Now test different column types:
+create table t1 (oref char(4), grp int, ie int);
+insert into t1 (oref, grp, ie) values
+ ('aa', 10, 2),
+ ('aa', 10, 1),
+ ('aa', 20, NULL),
+
+ ('bb', 10, 3),
+
+ ('cc', 10, 4),
+ ('cc', 20, NULL),
+
+ ('ee', 10, NULL),
+ ('ee', 10, NULL),
+
+ ('ff', 20, 2),
+ ('ff', 20, 1);
+
+create table t2 (oref char(4), a int);
+insert into t2 values
+ ('ee', NULL),
+ ('bb', 2),
+ ('ff', 2),
+ ('cc', 3),
+ ('aa', 1),
+ ('dd', NULL),
+ ('bb', NULL);
+
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+
+
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2;
+
+select oref, a from t2 where
+ a in (select min(ie) from t1 where oref=t2.oref group by grp);
+
+select oref, a from t2 where
+ a not in (select min(ie) from t1 where oref=t2.oref group by grp);
+
+#
+update t1 set ie=3 where oref='ff' and ie=1;
+
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by
+grp) Z from t2;
+
+
+select oref, a from t2 where a in (select min(ie) from t1 where
+oref=t2.oref group by grp);
+
+select oref, a from t2 where a not in (select min(ie) from t1 where
+oref=t2.oref group by grp);
+
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by
+grp having min(ie) > 1) Z from t2;
+
+select oref, a from t2 where a in (select min(ie) from t1 where
+oref=t2.oref group by grp having min(ie) > 1);
+
+select oref, a from t2 where a not in (select min(ie) from t1 where
+oref=t2.oref group by grp having min(ie) > 1);
+
+#
+alter table t1 add index idx(ie);
+
+explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+
+
+alter table t1 drop index idx;
+alter table t1 add index idx(oref,ie);
+
+explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+
+explain
+select oref, a,
+ a in (select min(ie) from t1 where oref=t2.oref
+ group by grp having min(ie) > 1) Z
+from t2;
+
+select oref, a,
+ a in (select min(ie) from t1 where oref=t2.oref
+ group by grp having min(ie) > 1) Z
+from t2;
+
+select oref, a from t2 where a in (select min(ie) from t1 where oref=t2.oref
+ group by grp having min(ie) > 1);
+
+select oref, a from t2 where a not in (select min(ie) from t1 where oref=t2.oref
+ group by grp having min(ie) > 1);
+
+drop table t1,t2;
+
+create table t1 (oref char(4), grp int, ie1 int, ie2 int);
+insert into t1 (oref, grp, ie1, ie2) values
+ ('aa', 10, 2, 1),
+ ('aa', 10, 1, 1),
+ ('aa', 20, 2, 1),
+
+ ('bb', 10, 3, 1),
+
+ ('cc', 10, 4, 2),
+ ('cc', 20, 3, 2),
+
+ ('ee', 10, 2, 1),
+ ('ee', 10, 1, 2),
+
+ ('ff', 20, 2, 2),
+ ('ff', 20, 1, 2);
+
+create table t2 (oref char(4), a int, b int);
+insert into t2 values
+ ('ee', NULL, 1),
+ ('bb', 2, 1),
+ ('ff', 2, 2),
+ ('cc', 3, NULL),
+ ('bb', NULL, NULL),
+ ('aa', 1, 1),
+ ('dd', 1, NULL);
+
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+
+select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref);
+
+select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref);
+
+select oref, a, b,
+ (a,b) in (select min(ie1),max(ie2) from t1
+ where oref=t2.oref group by grp) Z
+from t2;
+
+select oref, a, b from t2 where
+ (a,b) in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp);
+
+select oref, a, b from t2 where
+ (a,b) not in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp);
+
+alter table t1 add index idx(ie1,ie2);
+
+explain select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+
+select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref);
+
+select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref);
+
+explain extended
+select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
+
+drop table t1,t2;
+
+create table t1 (oref char(4), grp int, ie int primary key);
+insert into t1 (oref, grp, ie) values
+ ('aa', 10, 2),
+ ('aa', 10, 1),
+
+ ('bb', 10, 3),
+
+ ('cc', 10, 4),
+ ('cc', 20, 5),
+ ('cc', 10, 6);
+
+create table t2 (oref char(4), a int);
+insert into t2 values
+ ('ee', NULL),
+ ('bb', 2),
+ ('cc', 5),
+ ('cc', 2),
+ ('cc', NULL),
+ ('aa', 1),
+ ('bb', NULL);
+
+explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
+
+select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
+
+select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
+
+explain
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2;
+
+select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2;
+
+drop table t1,t2;
+
+#
+# BUG#24420: row-based IN suqueries with aggregation when the left operand
+# of the subquery predicate may contain NULL values
+#
+
+create table t1 (a int, b int);
+insert into t1 values (0,0), (2,2), (3,3);
+create table t2 (a int, b int);
+insert into t2 values (1,1), (3,3);
+
+select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1;
+
+insert into t2 values (NULL,4);
+select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1;
+
+drop table t1,t2;
+
+#
+# Bug #24484: Aggregate function used in column list subquery gives erroneous
+# error
+#
+CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b));
+INSERT INTO t1 VALUES (1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'),
+ (2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'),(3,3,'j'), (3,2,'k'), (3,1,'l'),
+ (1,9,'m');
+CREATE TABLE t2 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b));
+INSERT INTO t2 SELECT * FROM t1;
+
+# Gives error, but should work since it is (a, b) is the PK so only one
+# given match possible
+SELECT a, MAX(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b))
+ as test FROM t1 GROUP BY a;
+SELECT * FROM t1 GROUP by t1.a
+ HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c
+ HAVING MAX(t2.b+t1.a) < 10));
+
+SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c;
+
+SELECT a, MAX(b),
+ (SELECT COUNT(DISTINCT t.c) FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)
+ LIMIT 1)
+ as cnt,
+ (SELECT t.b FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1)
+ as t_b,
+ (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1)
+ as t_b,
+ (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) ORDER BY t.c LIMIT 1)
+ as t_b
+ FROM t1 GROUP BY a;
+
+SELECT a, MAX(b),
+ (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) as test
+ FROM t1 GROUP BY a;
+
+
+DROP TABLE t1, t2;
+
+
+#
+# Bug #27870: crash of an equijoin query with WHERE condition containing
+# a subquery predicate of the form <join attr> NOT IN (SELECT ...)
+#
+
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int, PRIMARY KEY(b));
+INSERT INTO t1 VALUES (1), (NULL), (4);
+INSERT INTO t2 VALUES (3), (1),(2), (5), (4), (7), (6);
+
+EXPLAIN EXTENDED
+SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1));
+SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1));
+SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1 WHERE a > 4));
+
+DROP TABLE t1,t2;
+
+#
+# Bug #28375: crash for NOT IN subquery predicate when left operand becomes NULL
+#
+
+CREATE TABLE t1 (id int);
+CREATE TABLE t2 (id int PRIMARY KEY);
+CREATE TABLE t3 (id int PRIMARY KEY, name varchar(10));
+INSERT INTO t1 VALUES (2), (NULL), (3), (1);
+INSERT INTO t2 VALUES (234), (345), (457);
+INSERT INTO t3 VALUES (222,'bbb'), (333,'ccc'), (111,'aaa');
+
+EXPLAIN
+SELECT * FROM t1
+ WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
+ WHERE t3.name='xxx' AND t2.id=t3.id);
+SELECT * FROM t1
+ WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
+ WHERE t3.name='xxx' AND t2.id=t3.id);
+
+SELECT (t1.id IN (SELECT t2.id FROM t2,t3
+ WHERE t3.name='xxx' AND t2.id=t3.id)) AS x
+ FROM t1;
+
+DROP TABLE t1,t2,t3;
+
+#
+# Bug #22855: Optimizer doesn't rewrite NOT IN subselects to a correlated
+# subquery
+#
+CREATE TABLE t1 (a INT NOT NULL);
+INSERT INTO t1 VALUES (1),(-1), (65),(66);
+
+CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY);
+INSERT INTO t2 VALUES (65),(66);
+
+SELECT a FROM t1 WHERE a NOT IN (65,66);
+SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
+EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/subselect_innodb.test b/mysql-test/t/subselect_innodb.test
index 3b1d2f393c2..573fe0c1810 100644
--- a/mysql-test/t/subselect_innodb.test
+++ b/mysql-test/t/subselect_innodb.test
@@ -161,3 +161,80 @@ deallocate prepare my_stmt;
drop table t1,t2;
# End of 4.1 tests
+
+CREATE TABLE t1 (
+ school_name varchar(45) NOT NULL,
+ country varchar(45) NOT NULL,
+ funds_requested float NOT NULL,
+ schooltype varchar(45) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+insert into t1 values ("the school", "USA", 1200, "Human");
+
+select count(country) as countrycount, sum(funds_requested) as smcnt,
+ country, (select sum(funds_requested) from t1) as total_funds
+from t1
+group by country;
+
+select count(country) as countrycount, sum(funds_requested) as smcnt,
+ country, (select sum(funds_requested) from t1) as total_funds
+from t1
+group by country;
+
+drop table t1;
+
+#
+# BUG#14342: wrong placement of subquery internals in complex queries
+#
+CREATE TABLE `t1` (
+ `t3_id` int NOT NULL,
+ `t1_id` int NOT NULL,
+ PRIMARY KEY (`t1_id`)
+);
+CREATE TABLE `t2` (
+ `t2_id` int NOT NULL,
+ `t1_id` int NOT NULL,
+ `b` int NOT NULL,
+ PRIMARY KEY (`t2_id`),
+ UNIQUE KEY `idx_t2_t1_b` (`t1_id`,`b`)
+) ENGINE=InnoDB;
+CREATE TABLE `t3` (
+ `t3_id` int NOT NULL
+);
+INSERT INTO `t3` VALUES (3);
+select
+ (SELECT rs.t2_id
+ FROM t2 rs
+ WHERE rs.t1_id=
+ (SELECT lt.t1_id
+ FROM t1 lt
+ WHERE lt.t3_id=a.t3_id)
+ ORDER BY b DESC LIMIT 1)
+from t3 AS a;
+# repeat above query in SP
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+delimiter //;
+create procedure p1()
+begin
+ declare done int default 3;
+ repeat
+ select
+ (SELECT rs.t2_id
+ FROM t2 rs
+ WHERE rs.t1_id=
+ (SELECT lt.t1_id
+ FROM t1 lt
+ WHERE lt.t3_id=a.t3_id)
+ ORDER BY b DESC LIMIT 1) as x
+ from t3 AS a;
+ set done= done-1;
+ until done <= 0 end repeat;
+end//
+delimiter ;//
+call p1();
+call p1();
+call p1();
+drop procedure p1;
+drop tables t1,t2,t3;
diff --git a/mysql-test/t/subselect_notembedded.test b/mysql-test/t/subselect_notembedded.test
new file mode 100644
index 00000000000..c112272e8ad
--- /dev/null
+++ b/mysql-test/t/subselect_notembedded.test
@@ -0,0 +1,9 @@
+-- source include/not_embedded.inc
+
+#
+# BUG#10308: purge log with subselect
+# Bug#28553: mysqld crash in "purge master log before(select time from information_schema)"
+#
+--error 1064
+purge master logs before (select adddate(current_timestamp(), interval -4 day));
+purge master logs before adddate(current_timestamp(), interval -4 day);
diff --git a/mysql-test/t/sum_distinct-big.test b/mysql-test/t/sum_distinct-big.test
new file mode 100644
index 00000000000..0859f4b3d89
--- /dev/null
+++ b/mysql-test/t/sum_distinct-big.test
@@ -0,0 +1,67 @@
+#
+# Various tests for SUM(DISTINCT ...)
+#
+
+--source include/big_test.inc
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+#
+# Test the case when distinct values doesn't fit in memory and
+# filesort is used (see uniques.cc:merge_walk)
+#
+
+CREATE TABLE t1 (id INTEGER);
+CREATE TABLE t2 (id INTEGER);
+
+INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
+INSERT INTO t1 (id) SELECT id FROM t1; /* 8 */
+INSERT INTO t1 (id) SELECT id FROM t1; /* 12 */
+INSERT INTO t1 (id) SELECT id FROM t1; /* 16 */
+INSERT INTO t1 (id) SELECT id FROM t1; /* 20 */
+INSERT INTO t1 (id) SELECT id FROM t1; /* 24 */
+INSERT INTO t1 SELECT id+1 FROM t1;
+INSERT INTO t1 SELECT id+2 FROM t1;
+INSERT INTO t1 SELECT id+4 FROM t1;
+INSERT INTO t1 SELECT id+8 FROM t1;
+INSERT INTO t1 SELECT id+16 FROM t1;
+INSERT INTO t1 SELECT id+32 FROM t1;
+INSERT INTO t1 SELECT id+64 FROM t1;
+INSERT INTO t1 SELECT id+128 FROM t1;
+INSERT INTO t1 SELECT id+256 FROM t1;
+INSERT INTO t1 SELECT id+512 FROM t1;
+
+# Just test that AVG(DISTINCT) is there
+SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
+SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
+
+INSERT INTO t1 SELECT id+1024 FROM t1;
+INSERT INTO t1 SELECT id+2048 FROM t1;
+INSERT INTO t1 SELECT id+4096 FROM t1;
+INSERT INTO t1 SELECT id+8192 FROM t1;
+INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
+
+# SELECT '++++++++++++++++++++++++++++++++++++++++++++++++++';
+
+SELECT SUM(DISTINCT id) sm FROM t1;
+SELECT SUM(DISTINCT id) sm FROM t2;
+SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
+
+# this limit for max_heap_table_size is set to force testing the case, when
+# all distinct sum values can not fit in memory and must be stored in a
+# temporary table
+
+SET max_heap_table_size=16384;
+
+# to check that max_heap_table_size was actually set (hard limit for minimum
+# max_heap_table_size is set in mysqld.cc):
+
+SHOW variables LIKE 'max_heap_table_size';
+
+SELECT SUM(DISTINCT id) sm FROM t1;
+SELECT SUM(DISTINCT id) sm FROM t2;
+SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
+
+DROP TABLE t1;
+DROP TABLE t2;
diff --git a/mysql-test/t/sum_distinct.test b/mysql-test/t/sum_distinct.test
new file mode 100644
index 00000000000..c58155a8e25
--- /dev/null
+++ b/mysql-test/t/sum_distinct.test
@@ -0,0 +1,95 @@
+#
+# Various tests for SUM(DISTINCT ...)
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+CREATE TABLE t1 (
+ id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ gender CHAR(1),
+ name VARCHAR(20)
+);
+
+# According to ANSI SQL, SUM(DISTINCT ...) should return NULL for empty
+# record set
+
+SELECT SUM(DISTINCT LENGTH(name)) s1 FROM t1;
+
+# According to ANSI SQL, SUM(DISTINCT ...) should return NULL for records sets
+# entirely consisting of NULLs
+
+INSERT INTO t1 (gender, name) VALUES (NULL, NULL);
+INSERT INTO t1 (gender, name) VALUES (NULL, NULL);
+INSERT INTO t1 (gender, name) VALUES (NULL, NULL);
+
+SELECT SUM(DISTINCT LENGTH(name)) s1 FROM t1;
+
+
+# Filling table with t1
+
+INSERT INTO t1 (gender, name) VALUES ('F', 'Helen'), ('F', 'Anastasia'),
+('F', 'Katherine'), ('F', 'Margo'), ('F', 'Magdalene'), ('F', 'Mary');
+
+CREATE TABLE t2 SELECT name FROM t1;
+
+SELECT (SELECT SUM(DISTINCT LENGTH(name)) FROM t1) FROM t2;
+
+DROP TABLE t2;
+
+INSERT INTO t1 (gender, name) VALUES ('F', 'Eva'), ('F', 'Sofia'),
+('F', 'Sara'), ('F', 'Golda'), ('F', 'Toba'), ('F', 'Victory'),
+('F', 'Faina'), ('F', 'Miriam'), ('F', 'Beki'), ('F', 'America'),
+('F', 'Susan'), ('F', 'Glory'), ('F', 'Priscilla'), ('F', 'Rosmary'),
+('F', 'Rose'), ('F', 'Margareth'), ('F', 'Elizabeth'), ('F', 'Meredith'),
+('F', 'Julie'), ('F', 'Xenia'), ('F', 'Zena'), ('F', 'Olga'),
+('F', 'Brunhilda'), ('F', 'Nataly'), ('F', 'Lara'), ('F', 'Svetlana'),
+('F', 'Grethem'), ('F', 'Irene');
+
+SELECT
+ SUM(DISTINCT LENGTH(name)) s1,
+ SUM(DISTINCT SUBSTRING(NAME, 1, 3)) s2,
+ SUM(DISTINCT LENGTH(SUBSTRING(name, 1, 4))) s3
+FROM t1;
+
+SELECT
+ SUM(DISTINCT LENGTH(g1.name)) s1,
+ SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
+ SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
+FROM t1 g1, t1 g2, t1 g3;
+
+SELECT
+ SUM(DISTINCT LENGTH(g1.name)) s1,
+ SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
+ SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
+FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
+
+# here we explicitly request summing through temporary table (so
+# Item_sum_sum_distinct::copy_or_same() is called)
+
+SELECT SQL_BUFFER_RESULT
+ SUM(DISTINCT LENGTH(name)) s1,
+ SUM(DISTINCT SUBSTRING(NAME, 1, 3)) s2,
+ SUM(DISTINCT LENGTH(SUBSTRING(name, 1, 4))) s3
+FROM t1;
+
+SELECT SQL_BUFFER_RESULT
+ SUM(DISTINCT LENGTH(g1.name)) s1,
+ SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2,
+ SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3
+FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10));
+
+# this test demonstrates that strings are automatically converted to numbers
+# before summing
+
+SET @l=1;
+UPDATE t1 SET name=CONCAT(name, @l:=@l+1);
+
+SELECT SUM(DISTINCT RIGHT(name, 1)) FROM t1;
+
+# this is a test case for ordinary t1
+
+SELECT SUM(DISTINCT id) FROM t1;
+SELECT SUM(DISTINCT id % 11) FROM t1;
+
+DROP TABLE t1;
diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test
index 40127a697ac..7eaeaa00c0a 100644
--- a/mysql-test/t/symlink.test
+++ b/mysql-test/t/symlink.test
@@ -43,7 +43,7 @@ drop table t2;
#
disable_query_log;
-eval create table t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQL_TEST_DIR/var/tmp" index directory="$MYSQL_TEST_DIR/var/run";
+eval create table t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQLTEST_VARDIR/tmp" index directory="$MYSQLTEST_VARDIR/run";
enable_query_log;
insert into t9 select * from t1;
@@ -51,7 +51,8 @@ check table t9;
optimize table t9;
repair table t9;
alter table t9 add column c int not null;
---replace_result $MYSQL_TEST_DIR TEST_DIR
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t9;
# Test renames
@@ -66,6 +67,9 @@ drop table t1;
# Note that we are using the above table t9 here!
#
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+SHOW CREATE TABLE t9;
+
disable_query_log;
--error 1103,1103
create table t1 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="tmp";
@@ -80,11 +84,13 @@ create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, p
--error 1103,1103
create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="not-hard-path";
---error 1,1
-eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="$MYSQL_TEST_DIR/var/run";
+# Should fail becasue the file t9.MYI already exist in 'run'
+--error 1,1,1105
+eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="$MYSQLTEST_VARDIR/run";
+# Should fail becasue the file t9.MYD already exist in 'tmp'
--error 1,1
-eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQL_TEST_DIR/var/tmp";
+eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQLTEST_VARDIR/tmp";
enable_query_log;
# Check moving table t9 from default database to mysqltest;
@@ -92,7 +98,7 @@ enable_query_log;
alter table t9 rename mysqltest.t9;
select count(*) from mysqltest.t9;
---replace_result $MYSQL_TEST_DIR TEST_DIR
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table mysqltest.t9;
drop database mysqltest;
@@ -102,18 +108,18 @@ drop database mysqltest;
create table t1 (a int not null) engine=myisam;
disable_query_log;
-eval alter table t1 data directory="$MYSQL_TEST_DIR/var/tmp";
+eval alter table t1 data directory="$MYSQLTEST_VARDIR/tmp";
enable_query_log;
---replace_result $MYSQL_TEST_DIR TEST_DIR
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
alter table t1 add b int;
disable_query_log;
-eval alter table t1 data directory="$MYSQL_TEST_DIR/var/log";
+eval alter table t1 data directory="$MYSQLTEST_VARDIR/log";
enable_query_log;
---replace_result $MYSQL_TEST_DIR TEST_DIR
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
disable_query_log;
-eval alter table t1 index directory="$MYSQL_TEST_DIR/var/log";
+eval alter table t1 index directory="$MYSQLTEST_VARDIR/log";
enable_query_log;
show create table t1;
drop table t1;
@@ -135,12 +141,12 @@ DROP TABLE t1;
# have been chosen. (Bug #8707)
#
disable_query_log;
-eval create table t1 (i int) data directory = "$MYSQL_TEST_DIR/var/master-data/test/";
+eval create table t1 (i int) data directory = "$MYSQLTEST_VARDIR/master-data/test/";
enable_query_log;
show create table t1;
drop table t1;
disable_query_log;
-eval create table t1 (i int) index directory = "$MYSQL_TEST_DIR/var/master-data/test/";
+eval create table t1 (i int) index directory = "$MYSQLTEST_VARDIR/master-data/test/";
enable_query_log;
show create table t1;
drop table t1;
@@ -153,20 +159,20 @@ connect (session2,localhost,root,,);
connection session1;
disable_query_log;
-eval create temporary table t1 (a int) engine=myisam data directory="$MYSQL_TEST_DIR/var/log" select 9 a;
+eval create temporary table t1 (a int) engine=myisam data directory="$MYSQLTEST_VARDIR/log" select 9 a;
enable_query_log;
# If running test suite with a non standard tmp dir, the "show create table"
# will print "DATA_DIRECTORY=". Use replace_result to mask it out
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
connection session2;
disable_query_log;
-eval create temporary table t1 (a int) engine=myisam data directory="$MYSQL_TEST_DIR/var/log" select 99 a;
+eval create temporary table t1 (a int) engine=myisam data directory="$MYSQLTEST_VARDIR/log" select 99 a;
enable_query_log;
# If running test suite with a non standard tmp dir, the "show create table"
# will print "DATA_DIRECTORY=". Use replace_result to mask it out
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
connection default;
@@ -182,23 +188,44 @@ connection default;
select * from t1;
drop table t1;
+--echo End of 4.1 tests
+
#
-# CREATE TABLE with DATA DIRECTORY option
+# Bug #29325: create table overwrites .MYD file of other table (datadir)
#
-# Protect ourselves from data left in tmp/ by a previos possibly failed
-# test
---system rm -f $MYSQLTEST_VARDIR/tmp/t1.*
+
+CREATE DATABASE db1;
+CREATE DATABASE db2;
+
+USE db2;
--disable_query_log
-eval prepare stmt from "create table t1 (c char(10)) data directory='$MYSQLTEST_VARDIR/tmp'";
+eval CREATE TABLE t1 (b INT) ENGINE MYISAM
+DATA DIRECTORY = '$MYSQLTEST_VARDIR/master-data/db1/';
--enable_query_log
-execute stmt;
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-show create table t1;
-drop table t1;
-execute stmt;
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-show create table t1;
-drop table t1;
-deallocate prepare stmt;
---echo End of 4.1 tests
+INSERT INTO db2.t1 VALUES (1);
+SELECT * FROM db2.t1;
+RESET QUERY CACHE;
+
+USE db1;
+
+#no warning from create table
+SET SESSION keep_files_on_create = TRUE;
+--disable_abort_on_error
+CREATE TABLE t1 (a INT) ENGINE MYISAM;
+--enable_abort_on_error
+
+CREATE TABLE t3 (a INT) Engine=MyISAM;
+INSERT INTO t3 VALUES (1),(2),(3);
+TRUNCATE TABLE t3;
+SELECT * from t3;
+
+SET SESSION keep_files_on_create = DEFAULT;
+
+DROP TABLE db2.t1, db1.t3;
+DROP DATABASE db1;
+DROP DATABASE db2;
+USE test;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/synchronization.test b/mysql-test/t/synchronization.test
index ec7c7dd6545..c7696195ee0 100644
--- a/mysql-test/t/synchronization.test
+++ b/mysql-test/t/synchronization.test
@@ -1,7 +1,12 @@
#
-# Test for Bug #2385 CREATE TABLE LIKE lacks locking on source and destination table
+# Test for Bug #2385 CREATE TABLE LIKE lacks locking on source and destination
+# table
#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
diff --git a/mysql-test/t/sysdate_is_now-master.opt b/mysql-test/t/sysdate_is_now-master.opt
new file mode 100644
index 00000000000..97a58d28032
--- /dev/null
+++ b/mysql-test/t/sysdate_is_now-master.opt
@@ -0,0 +1 @@
+--sysdate-is-now
diff --git a/mysql-test/t/sysdate_is_now.test b/mysql-test/t/sysdate_is_now.test
new file mode 100644
index 00000000000..166914e20c8
--- /dev/null
+++ b/mysql-test/t/sysdate_is_now.test
@@ -0,0 +1,11 @@
+#
+# BUG#15101 restore aliasing of SYSDATE to NOW in 5.0
+# this feature is activated via --sysdate-is-now mysqld init opt
+#
+# To test here
+# 1. SYSDATE() does not distiguish from NOW()
+# 2. SYSDATE() obeys set timestamp
+
+set timestamp=1;
+SELECT sleep(1),NOW()-SYSDATE() as zero;
+# End of 5.0 tests
diff --git a/mysql-test/t/system_mysql_db.test b/mysql-test/t/system_mysql_db.test
index 0892af77fb2..27c17da2731 100644
--- a/mysql-test/t/system_mysql_db.test
+++ b/mysql-test/t/system_mysql_db.test
@@ -2,6 +2,11 @@
# This test must examine integrity of system database "mysql"
#
+# First delete some tables maybe left over from previous tests
+--disable_warnings
+drop table if exists t1,t1aa,t2aa;
+--enable_warnings
+
-- disable_query_log
use mysql;
-- enable_query_log
diff --git a/mysql-test/t/system_mysql_db_fix-master.opt b/mysql-test/t/system_mysql_db_fix30020-master.opt
index 7e4fa9a3ee8..7e4fa9a3ee8 100644
--- a/mysql-test/t/system_mysql_db_fix-master.opt
+++ b/mysql-test/t/system_mysql_db_fix30020-master.opt
diff --git a/mysql-test/t/system_mysql_db_fix.test b/mysql-test/t/system_mysql_db_fix30020.test
index 5e8822569b7..23562807c14 100644
--- a/mysql-test/t/system_mysql_db_fix.test
+++ b/mysql-test/t/system_mysql_db_fix30020.test
@@ -1,9 +1,26 @@
# Embedded server doesn't support external clients
--source include/not_embedded.inc
+# Don't run this test if $MYSQL_FIX_SYSTEM_TABLES isn't set
+# to the location of mysql_fix_privilege_tables.sql
+if (`SELECT LENGTH("$MYSQL_FIX_SYSTEM_TABLES") <= 0`)
+{
+ skip Test need MYSQL_FIX_SYSTEM_TABLES;
+}
+
#
# This is the test for mysql_fix_privilege_tables
+# It checks that a system tables from mysql 3.20
+# can be upgraded to current system table format
#
+# Note: If this test fails, don't be confused about the errors reported
+# by mysql-test-run This shows warnings generated by
+# mysql_fix_system_tables which should be ignored.
+# Instead, concentrate on the errors in r/system_mysql_db.reject
+
+--disable_warnings
+drop table if exists t1,t1aa,t2aa;
+--enable_warnings
-- disable_result_log
-- disable_query_log
@@ -69,7 +86,8 @@ type=ISAM;
INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES ('localhost','', '','N','N','N','N','N','N','N','N','N');
--- exec $MYSQL_FIX_SYSTEM_TABLES --database=test
+# Call the "shell script" $MYSQL_FIX_SYSTEM_TABLES using system
+-- system $MYSQL_FIX_SYSTEM_TABLES --database=test > $MYSQLTEST_VARDIR/log/system_mysql_db_fix30020.log 2>&1
-- enable_query_log
-- enable_result_log
@@ -77,7 +95,7 @@ INSERT INTO user VALUES ('localhost','', '','N','N','N','N','N','N','N','N','
-- disable_query_log
-DROP TABLE db, host, user, func, tables_priv, columns_priv, help_category, help_keyword, help_relation, help_topic, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type;
+DROP TABLE db, host, user, func, tables_priv, columns_priv, procs_priv, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type;
-- enable_query_log
diff --git a/mysql-test/t/system_mysql_db_fix40123-master.opt b/mysql-test/t/system_mysql_db_fix40123-master.opt
new file mode 100644
index 00000000000..7e4fa9a3ee8
--- /dev/null
+++ b/mysql-test/t/system_mysql_db_fix40123-master.opt
@@ -0,0 +1 @@
+--result-file=system_mysql_db
diff --git a/mysql-test/t/system_mysql_db_fix40123.test b/mysql-test/t/system_mysql_db_fix40123.test
new file mode 100644
index 00000000000..012d05af3b8
--- /dev/null
+++ b/mysql-test/t/system_mysql_db_fix40123.test
@@ -0,0 +1,86 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+# Don't run this test if $MYSQL_FIX_PRIVILEGE_TABLES isn't set
+# to the location of mysql_fix_privilege_tables.sql
+if (`SELECT LENGTH("$MYSQL_FIX_PRIVILEGE_TABLES") <= 0`)
+{
+ skip Test need MYSQL_FIX_PRIVILEGE_TABLES;
+}
+
+#
+# This is the test for mysql_fix_privilege_tables
+# It checks that a system tables from mysql 4.1.23
+# can be upgraded to current system table format
+#
+# Note: If this test fails, don't be confused about the errors reported
+# by mysql-test-run This shows warnings generated by
+# mysql_fix_system_tables which should be ignored.
+# Instead, concentrate on the errors in r/system_mysql_db.reject
+
+--disable_warnings
+drop table if exists t1,t1aa,t2aa;
+--enable_warnings
+
+-- disable_result_log
+-- disable_query_log
+
+use test;
+
+# create system tables as in mysql-4.1.23
+# created by executing "./mysql_create_system_tables real ."
+
+set table_type=myisam;
+CREATE TABLE 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, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges';
+INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');
+INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');
+
+CREATE TABLE host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) 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, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges';
+
+
+CREATE TABLE user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Password char(41) 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, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_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, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_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, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges';
+INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
+ INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
+
+CREATE TABLE func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions';
+
+
+CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp(14), Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges';
+CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp(14), Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges';
+
+CREATE TABLE help_topic ( help_topic_id int unsigned not null, name varchar(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url varchar(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics';
+CREATE TABLE help_category ( help_category_id smallint unsigned not null, name varchar(64) not null, parent_category_id smallint unsigned null, url varchar(128) not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories';
+CREATE TABLE help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation';
+CREATE TABLE help_keyword ( help_keyword_id int unsigned not null, name varchar(64) not null, primary key (help_keyword_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help keywords';
+
+CREATE TABLE time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names';
+
+CREATE TABLE time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones';
+
+CREATE TABLE time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
+
+CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+
+CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
+
+
+# Run the mysql_fix_privilege_tables.sql using "mysql --force"
+--exec $MYSQL --force test < $MYSQL_FIX_PRIVILEGE_TABLES > $MYSQLTEST_VARDIR/log/system_mysql_db_fix40123.log 2>&1
+
+-- enable_query_log
+-- enable_result_log
+
+# Dump the tables that should be compared
+-- source include/system_db_struct.inc
+
+-- disable_query_log
+
+# Drop all tables created by this test
+DROP TABLE db, host, user, func, tables_priv, columns_priv, procs_priv, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type;
+
+-- enable_query_log
+
+# check that we dropped all system tables
+show tables;
+
+# End of 4.1 tests
diff --git a/mysql-test/t/temp_table-master.opt b/mysql-test/t/temp_table-master.opt
index 026d3d4640c..5ac2ca8495b 100644
--- a/mysql-test/t/temp_table-master.opt
+++ b/mysql-test/t/temp_table-master.opt
@@ -1 +1 @@
---tmpdir=$MYSQL_TEST_DIR/var//tmp
+--tmpdir=$MYSQLTEST_VARDIR//tmp
diff --git a/mysql-test/t/temp_table.test b/mysql-test/t/temp_table.test
index 69082840988..90f868f5932 100644
--- a/mysql-test/t/temp_table.test
+++ b/mysql-test/t/temp_table.test
@@ -1,9 +1,12 @@
+# mysqltest should be fixed
+-- source include/not_embedded.inc
#
# Test of temporary tables
#
--disable_warnings
drop table if exists t1,t2;
+drop view if exists v1;
--enable_warnings
CREATE TABLE t1 (c int not null, d char (10) not null);
@@ -90,6 +93,20 @@ select * from t1 group by d;
show status like "created_tmp%tables";
drop table t1;
+# Fix for BUG#8921: Check that temporary table is ingored by view commands.
+create temporary table v1 as select 'This is temp. table' A;
+create view v1 as select 'This is view' A;
+select * from v1;
+show create table v1;
+show create view v1;
+drop view v1;
+select * from v1;
+create view v1 as select 'This is view again' A;
+select * from v1;
+drop table v1;
+select * from v1;
+drop view v1;
+
# Bug #8497: tmpdir with extra slashes would cause failures
#
create table t1 (a int, b int, index(a), index(b));
@@ -146,3 +163,19 @@ DROP TABLE t1;
--echo End of 4.1 tests.
+
+#
+# Bug #24791: Union with AVG-groups generates wrong results
+#
+CREATE TABLE t1 ( c FLOAT( 20, 14 ) );
+INSERT INTO t1 VALUES( 12139 );
+
+CREATE TABLE t2 ( c FLOAT(30,18) );
+INSERT INTO t2 VALUES( 123456 );
+
+SELECT AVG( c ) FROM t1 UNION SELECT 1;
+SELECT 1 UNION SELECT AVG( c ) FROM t1;
+SELECT 1 UNION SELECT * FROM t2 UNION SELECT 1;
+SELECT c/1 FROM t1 UNION SELECT 1;
+
+DROP TABLE t1, t2;
diff --git a/mysql-test/t/timezone2.test b/mysql-test/t/timezone2.test
index 43f9a944be1..75e5d4bfe81 100644
--- a/mysql-test/t/timezone2.test
+++ b/mysql-test/t/timezone2.test
@@ -3,6 +3,7 @@
# Preparing playground
--disable_warnings
drop table if exists t1, t2;
+drop function if exists f1;
--enable_warnings
@@ -48,6 +49,11 @@ insert into t1 (i, ts) values
(unix_timestamp('2003-03-30 01:59:59'),'2003-03-30 01:59:59'),
(unix_timestamp('2003-03-30 02:30:00'),'2003-03-30 02:30:00'),
(unix_timestamp('2003-03-30 03:00:00'),'2003-03-30 03:00:00');
+# Values around and in spring time-gap
+insert into t1 (i, ts) values
+ (unix_timestamp(20030330015959),20030330015959),
+ (unix_timestamp(20030330023000),20030330023000),
+ (unix_timestamp(20030330030000),20030330030000);
# Normal value with DST
insert into t1 (i, ts) values
(unix_timestamp('2003-05-01 00:00:00'),'2003-05-01 00:00:00');
@@ -200,7 +206,7 @@ select convert_tz(ts, @@time_zone, 'Japan') from t1;
drop table t1;
#
-# Test for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index
+# Test for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index
# column". Queries in which one of time zone arguments of CONVERT_TZ() is
# determined as constant only at val() stage (not at fix_fields() stage),
# should not crash server.
@@ -217,3 +223,22 @@ select * from t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Test for bug #11081 "Using a CONVERT_TZ function in a stored function
+# or trigger fails".
+#
+create table t1 (ldt datetime, udt datetime);
+create function f1(i datetime) returns datetime
+ return convert_tz(i, 'UTC', 'Europe/Moscow');
+create trigger t1_bi before insert on t1 for each row
+ set new.udt:= convert_tz(new.ldt, 'Europe/Moscow', 'UTC');
+# This should work without errors
+insert into t1 (ldt) values ('2006-04-19 16:30:00');
+select * from t1;
+# This should work without errors as well
+select ldt, f1(udt) as ldt2 from t1;
+drop table t1;
+drop function f1;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/timezone_grant.test b/mysql-test/t/timezone_grant.test
index d02901b162b..450c1edc47e 100644
--- a/mysql-test/t/timezone_grant.test
+++ b/mysql-test/t/timezone_grant.test
@@ -1,6 +1,11 @@
# Embedded server testing does not support grants
-- source include/not_embedded.inc
+--disable_warnings
+drop tables if exists t1, t2;
+drop view if exists v1;
+--enable_warnings
+
#
# Test for bug #6116 "SET time_zone := ... requires access to mysql.time_zone
# tables". We should allow implicit access to time zone description tables
@@ -28,9 +33,9 @@ select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
where t1.a = t2.c and t2.d = (select max(d) from t2);
# But still these two statements should not work:
---error 1044
+--error 1142
select * from mysql.time_zone_name;
---error 1044
+--error 1142
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
#
@@ -82,3 +87,29 @@ flush privileges;
drop table t1, t2;
# End of 4.1 tests
+
+#
+# Additional test for bug #15153: CONVERT_TZ() is not allowed in all
+# places in views.
+#
+# Let us check that usage of CONVERT_TZ() function in view does not
+# require additional privileges.
+
+# Let us rely on that previous tests done proper cleanups
+create table t1 (a int, b datetime);
+insert into t1 values (1, 20010101000000), (2, 20020101000000);
+grant all privileges on test.* to mysqltest_1@localhost;
+connect (tzuser3, localhost, mysqltest_1,,);
+create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1;
+select * from v1;
+# Of course we should not be able select from mysql.time_zone tables
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from v1, mysql.time_zone;
+drop view v1;
+--error ER_TABLEACCESS_DENIED_ERROR
+create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone;
+connection default;
+drop table t1;
+drop user mysqltest_1@localhost;
+
+# End of 5.0 tests
diff --git a/mysql-test/t/trigger-compat.test b/mysql-test/t/trigger-compat.test
new file mode 100644
index 00000000000..f2e350cb161
--- /dev/null
+++ b/mysql-test/t/trigger-compat.test
@@ -0,0 +1,96 @@
+# Test case(s) in this file contain(s) GRANT/REVOKE statements, which are not
+# supported in embedded server. So, this test should not be run on embedded
+# server.
+
+-- source include/not_embedded.inc
+
+###########################################################################
+#
+# Tests for WL#2818:
+# - Check that triggers created w/o DEFINER information work well:
+# - create the first trigger;
+# - manually remove definer information from corresponding TRG file;
+# - create the second trigger (the first trigger will be reloaded; check
+# that we receive a warning);
+# - check that the triggers loaded correctly;
+#
+###########################################################################
+
+#
+# Prepare environment.
+#
+
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest_db1;
+--enable_warnings
+
+CREATE DATABASE mysqltest_db1;
+
+CREATE USER mysqltest_dfn@localhost;
+CREATE USER mysqltest_inv@localhost;
+
+GRANT SUPER ON *.* TO mysqltest_dfn@localhost;
+GRANT CREATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+#
+# Create a table and the first trigger.
+#
+
+--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
+--connection wl2818_definer_con
+--echo
+--echo ---> connection: wl2818_definer_con
+
+CREATE TABLE t1(num_value INT);
+CREATE TABLE t2(user_str TEXT);
+
+CREATE TRIGGER wl2818_trg1 BEFORE INSERT ON t1
+ FOR EACH ROW
+ INSERT INTO t2 VALUES(CURRENT_USER());
+
+#
+# Remove definers from TRG file.
+#
+
+--echo
+--echo ---> patching t1.TRG...
+
+--exec grep -v 'definers=' $MYSQLTEST_VARDIR/master-data/mysqltest_db1/t1.TRG > $MYSQLTEST_VARDIR/tmp/t1.TRG
+--exec mv $MYSQLTEST_VARDIR/tmp/t1.TRG $MYSQLTEST_VARDIR/master-data/mysqltest_db1/t1.TRG
+
+#
+# Create a new trigger.
+#
+
+--echo
+
+CREATE TRIGGER wl2818_trg2 AFTER INSERT ON t1
+ FOR EACH ROW
+ INSERT INTO t2 VALUES(CURRENT_USER());
+
+--echo
+
+SELECT trigger_name, definer FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+
+--echo
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+
+# Clean up
+DROP TRIGGER wl2818_trg1;
+DROP TRIGGER wl2818_trg2;
+disconnect wl2818_definer_con;
+connection default;
+use mysqltest_db1;
+DROP TABLE t1;
+DROP TABLE t2;
+DROP USER mysqltest_dfn@localhost;
+DROP USER mysqltest_inv@localhost;
+DROP DATABASE mysqltest_db1;
+
diff --git a/mysql-test/t/trigger-grant.test b/mysql-test/t/trigger-grant.test
new file mode 100644
index 00000000000..96bd6acd02d
--- /dev/null
+++ b/mysql-test/t/trigger-grant.test
@@ -0,0 +1,751 @@
+# Test case(s) in this file contain(s) GRANT/REVOKE statements, which are not
+# supported in embedded server. So, this test should not be run on embedded
+# server.
+
+-- source include/not_embedded.inc
+
+###########################################################################
+#
+# Tests for WL#2818:
+# - Check that triggers are executed under the authorization of the definer.
+# - Check DEFINER clause of CREATE TRIGGER statement;
+# - Check that SUPER privilege required to create a trigger with different
+# definer.
+# - Check that if the user specified as DEFINER does not exist, a warning
+# is emitted.
+# - Check that the definer of a trigger does not exist, the trigger will
+# not be activated.
+# - Check that SHOW TRIGGERS statement provides "Definer" column.
+# - Check that if trigger contains NEW/OLD variables, the definer must have
+# SELECT privilege on the subject table (aka BUG#15166/BUG#15196).
+#
+# Let's also check that user name part of definer can contain '@' symbol (to
+# check that triggers are not affected by BUG#13310 "incorrect user parsing
+# by SP").
+#
+###########################################################################
+
+#
+# Prepare environment.
+#
+
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest_db1;
+--enable_warnings
+
+CREATE DATABASE mysqltest_db1;
+
+CREATE USER mysqltest_dfn@localhost;
+CREATE USER mysqltest_inv@localhost;
+
+GRANT SUPER ON *.* TO mysqltest_dfn@localhost;
+GRANT CREATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+#
+# Check that triggers are executed under the authorization of the definer:
+# - create two tables under "definer";
+# - grant all privileges on the test db to "definer";
+# - grant all privileges on the first table to "invoker";
+# - grant only select privilege on the second table to "invoker";
+# - create a trigger, which inserts a row into the second table after
+# inserting into the first table.
+# - insert a row into the first table under "invoker". A row also should be
+# inserted into the second table.
+#
+
+--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
+--connection wl2818_definer_con
+--echo
+--echo ---> connection: wl2818_definer_con
+
+CREATE TABLE t1(num_value INT);
+CREATE TABLE t2(user_str TEXT);
+
+CREATE TRIGGER trg1 AFTER INSERT ON t1
+ FOR EACH ROW
+ INSERT INTO t2 VALUES(CURRENT_USER());
+
+--connection default
+--echo
+--echo ---> connection: default
+
+# Setup definer's privileges.
+
+GRANT ALL PRIVILEGES ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
+GRANT ALL PRIVILEGES ON mysqltest_db1.t2 TO mysqltest_dfn@localhost;
+
+# Setup invoker's privileges.
+
+GRANT ALL PRIVILEGES ON mysqltest_db1.t1
+ TO 'mysqltest_inv'@localhost;
+
+GRANT SELECT ON mysqltest_db1.t2
+ TO 'mysqltest_inv'@localhost;
+
+--connection wl2818_definer_con
+--echo
+--echo ---> connection: wl2818_definer_con
+
+use mysqltest_db1;
+
+INSERT INTO t1 VALUES(1);
+
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+--connect (wl2818_invoker_con,localhost,mysqltest_inv,,mysqltest_db1)
+--connection wl2818_invoker_con
+--echo
+--echo ---> connection: wl2818_invoker_con
+
+use mysqltest_db1;
+
+INSERT INTO t1 VALUES(2);
+
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+#
+# Check that if definer lost some privilege required to execute (activate) a
+# trigger, the trigger will not be activated:
+# - create a trigger on insert into the first table, which will insert a row
+# into the second table;
+# - revoke INSERT privilege on the second table from the definer;
+# - insert a row into the first table;
+# - check that an error has been risen;
+# - check that no row has been inserted into the second table;
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+use mysqltest_db1;
+
+REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost;
+
+--connection wl2818_invoker_con
+--echo
+--echo ---> connection: wl2818_invoker_con
+
+use mysqltest_db1;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES(3);
+
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+#
+# Check DEFINER clause of CREATE TRIGGER statement.
+#
+# NOTE: there is no dedicated TRIGGER privilege for CREATE TRIGGER statement.
+# SUPER privilege is used instead. I.e., if one invokes CREATE TRIGGER, it should
+# have SUPER privilege, so this test is meaningless right now.
+#
+# - Check that SUPER privilege required to create a trigger with different
+# definer:
+# - try to create a trigger with DEFINER="definer@localhost" under
+# "invoker";
+# - analyze error code;
+# - Check that if the user specified as DEFINER does not exist, a warning is
+# emitted:
+# - create a trigger with DEFINER="non_existent_user@localhost" from
+# "definer";
+# - check that a warning emitted;
+# - Check that the definer of a trigger does not exist, the trigger will not
+# be activated:
+# - activate just created trigger;
+# - check error code;
+#
+
+--connection wl2818_definer_con
+--echo
+--echo ---> connection: wl2818_definer_con
+
+use mysqltest_db1;
+
+DROP TRIGGER trg1;
+
+# Check that SUPER is required to specify different DEFINER.
+# NOTE: meaningless at the moment
+
+CREATE DEFINER='mysqltest_inv'@'localhost'
+ TRIGGER trg1 BEFORE INSERT ON t1
+ FOR EACH ROW
+ SET @new_sum = 0;
+
+# Create with non-existent user.
+
+CREATE DEFINER='mysqltest_nonexs'@'localhost'
+ TRIGGER trg2 AFTER INSERT ON t1
+ FOR EACH ROW
+ SET @new_sum = 0;
+
+# Check that trg2 will not be activated.
+
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES(6);
+
+#
+# Check that SHOW TRIGGERS statement provides "Definer" column.
+#
+
+SHOW TRIGGERS;
+
+#
+# Check that weird definer values do not break functionality. I.e. check the
+# following definer values:
+# - '';
+# - '@';
+# - '@abc@def@@';
+# - '@hostname';
+# - '@abc@def@@@hostname';
+#
+
+DROP TRIGGER trg1;
+DROP TRIGGER trg2;
+
+CREATE TRIGGER trg1 BEFORE INSERT ON t1
+ FOR EACH ROW
+ SET @a = 1;
+
+CREATE TRIGGER trg2 AFTER INSERT ON t1
+ FOR EACH ROW
+ SET @a = 2;
+
+CREATE TRIGGER trg3 BEFORE UPDATE ON t1
+ FOR EACH ROW
+ SET @a = 3;
+
+CREATE TRIGGER trg4 AFTER UPDATE ON t1
+ FOR EACH ROW
+ SET @a = 4;
+
+CREATE TRIGGER trg5 BEFORE DELETE ON t1
+ FOR EACH ROW
+ SET @a = 5;
+
+# Replace definers with the "weird" definers
+perl;
+use strict;
+use warnings;
+my $fname= "$ENV{'MYSQLTEST_VARDIR'}/master-data/mysqltest_db1/t1.TRG";
+open(FILE, "<", $fname) or die;
+my @content= grep($_ !~ /^definers=/, <FILE>);
+close FILE;
+open(FILE, ">", $fname) or die;
+# Use binary file mode to avoid CR/LF's being added on windows
+binmode FILE;
+print FILE @content;
+print FILE "definers='' '\@' '\@abc\@def\@\@' '\@hostname' '\@abcdef\@\@\@hostname'\n";
+close FILE;
+EOF
+
+--echo
+
+SELECT trigger_name, definer FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+
+--echo
+
+SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
+
+#
+# Cleanup
+#
+
+--connection default
+--echo
+--echo ---> connection: default
+
+DROP USER mysqltest_dfn@localhost;
+DROP USER mysqltest_inv@localhost;
+
+DROP DATABASE mysqltest_db1;
+
+###########################################################################
+#
+# BUG#15166: Wrong update [was: select/update] permissions required to execute
+# triggers.
+#
+# BUG#15196: Wrong select permission required to execute triggers.
+#
+###########################################################################
+
+#
+# Prepare environment.
+#
+
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest_db1;
+--enable_warnings
+
+CREATE DATABASE mysqltest_db1;
+
+use mysqltest_db1;
+
+# Tables for tesing table-level privileges:
+CREATE TABLE t1(col CHAR(20)); # table for "read-value" trigger
+CREATE TABLE t2(col CHAR(20)); # table for "write-value" trigger
+
+# Tables for tesing column-level privileges:
+CREATE TABLE t3(col CHAR(20)); # table for "read-value" trigger
+CREATE TABLE t4(col CHAR(20)); # table for "write-value" trigger
+
+CREATE USER mysqltest_u1@localhost;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost;
+GRANT SUPER ON *.* TO mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t1 TO mysqltest_u1@localhost; # to allow connect
+
+SET @mysqltest_var = NULL;
+
+--connect (bug15166_u1_con,localhost,mysqltest_u1,,mysqltest_db1)
+
+# parsing (CREATE TRIGGER) time:
+# - check that nor SELECT either UPDATE is required to execute triggger w/o
+# NEW/OLD variables.
+
+--connection default
+--echo
+--echo ---> connection: default
+
+use mysqltest_db1;
+
+REVOKE SELECT ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+GRANT DELETE ON mysqltest_db1.* TO mysqltest_u1@localhost;
+SHOW GRANTS FOR mysqltest_u1@localhost;
+
+--connection bug15166_u1_con
+--echo
+--echo ---> connection: bug15166_u1_con
+
+use mysqltest_db1;
+
+CREATE TRIGGER t1_trg_after_delete AFTER DELETE ON t1
+ FOR EACH ROW
+ SET @mysqltest_var = 'Hello, world!';
+
+# parsing (CREATE TRIGGER) time:
+# - check that UPDATE is not enough to read the value;
+# - check that UPDATE is required to modify the value;
+
+--connection default
+--echo
+--echo ---> connection: default
+
+use mysqltest_db1;
+
+GRANT UPDATE ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT UPDATE ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+
+GRANT UPDATE(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
+
+--connection bug15166_u1_con
+--echo
+--echo ---> connection: bug15166_u1_con
+
+use mysqltest_db1;
+
+# - table-level privileges
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t1_trg_err_1 BEFORE INSERT ON t1
+ FOR EACH ROW
+ SET @mysqltest_var = NEW.col;
+DROP TRIGGER t1_trg_err_1;
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t1_trg_err_2 BEFORE DELETE ON t1
+ FOR EACH ROW
+ SET @mysqltest_var = OLD.col;
+DROP TRIGGER t1_trg_err_2;
+
+CREATE TRIGGER t2_trg_before_insert BEFORE INSERT ON t2
+ FOR EACH ROW
+ SET NEW.col = 't2_trg_before_insert';
+
+# - column-level privileges
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t3_trg_err_1 BEFORE INSERT ON t3
+ FOR EACH ROW
+ SET @mysqltest_var = NEW.col;
+DROP TRIGGER t3_trg_err_1;
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t3_trg_err_2 BEFORE DELETE ON t3
+ FOR EACH ROW
+ SET @mysqltest_var = OLD.col;
+DROP TRIGGER t3_trg_err_2;
+
+CREATE TRIGGER t4_trg_before_insert BEFORE INSERT ON t4
+ FOR EACH ROW
+ SET NEW.col = 't4_trg_before_insert';
+
+# parsing (CREATE TRIGGER) time:
+# - check that SELECT is required to read the value;
+# - check that SELECT is not enough to modify the value;
+
+--connection default
+--echo
+--echo ---> connection: default
+
+use mysqltest_db1;
+
+REVOKE UPDATE ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+REVOKE UPDATE ON mysqltest_db1.t2 FROM mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+
+REVOKE UPDATE(col) ON mysqltest_db1.t3 FROM mysqltest_u1@localhost;
+REVOKE UPDATE(col) ON mysqltest_db1.t4 FROM mysqltest_u1@localhost;
+GRANT SELECT(col) on mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT SELECT(col) on mysqltest_db1.t4 TO mysqltest_u1@localhost;
+
+--connection bug15166_u1_con
+--echo
+--echo ---> connection: bug15166_u1_con
+
+use mysqltest_db1;
+
+# - table-level privileges
+
+CREATE TRIGGER t1_trg_after_insert AFTER INSERT ON t1
+ FOR EACH ROW
+ SET @mysqltest_var = NEW.col;
+
+CREATE TRIGGER t1_trg_after_update AFTER UPDATE ON t1
+ FOR EACH ROW
+ SET @mysqltest_var = OLD.col;
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t2_trg_err_1 BEFORE UPDATE ON t2
+ FOR EACH ROW
+ SET NEW.col = 't2_trg_err_1';
+DROP TRIGGER t2_trg_err_1;
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t2_trg_err_2 BEFORE UPDATE ON t2
+ FOR EACH ROW
+ SET NEW.col = CONCAT(OLD.col, '(updated)');
+DROP TRIGGER t2_trg_err_2;
+
+# - column-level privileges
+
+CREATE TRIGGER t3_trg_after_insert AFTER INSERT ON t3
+ FOR EACH ROW
+ SET @mysqltest_var = NEW.col;
+
+CREATE TRIGGER t3_trg_after_update AFTER UPDATE ON t3
+ FOR EACH ROW
+ SET @mysqltest_var = OLD.col;
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t4_trg_err_1 BEFORE UPDATE ON t4
+ FOR EACH ROW
+ SET NEW.col = 't4_trg_err_1';
+DROP TRIGGER t4_trg_err_1;
+
+# TODO: check privileges at CREATE TRIGGER time.
+# --error ER_COLUMNACCESS_DENIED_ERROR
+CREATE TRIGGER t4_trg_err_2 BEFORE UPDATE ON t4
+ FOR EACH ROW
+ SET NEW.col = CONCAT(OLD.col, '(updated)');
+DROP TRIGGER t4_trg_err_2;
+
+# execution time:
+# - check that UPDATE is not enough to read the value;
+# - check that UPDATE is required to modify the value;
+
+--connection default
+--echo
+--echo ---> connection: default
+
+use mysqltest_db1;
+
+REVOKE SELECT ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+REVOKE SELECT ON mysqltest_db1.t2 FROM mysqltest_u1@localhost;
+GRANT UPDATE ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT UPDATE ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+
+REVOKE SELECT(col) ON mysqltest_db1.t3 FROM mysqltest_u1@localhost;
+REVOKE SELECT(col) ON mysqltest_db1.t4 FROM mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT UPDATE(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
+
+# - table-level privileges
+
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES('line1');
+
+SELECT * FROM t1;
+SELECT @mysqltest_var;
+
+INSERT INTO t2 VALUES('line2');
+
+SELECT * FROM t2;
+
+# - column-level privileges
+
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t3 VALUES('t3_line1');
+
+SELECT * FROM t3;
+SELECT @mysqltest_var;
+
+INSERT INTO t4 VALUES('t4_line2');
+
+SELECT * FROM t4;
+
+# execution time:
+# - check that SELECT is required to read the value;
+# - check that SELECT is not enough to modify the value;
+
+--connection default
+--echo
+--echo ---> connection: default
+
+use mysqltest_db1;
+
+REVOKE UPDATE ON mysqltest_db1.t1 FROM mysqltest_u1@localhost;
+REVOKE UPDATE ON mysqltest_db1.t2 FROM mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t1 TO mysqltest_u1@localhost;
+GRANT SELECT ON mysqltest_db1.t2 TO mysqltest_u1@localhost;
+
+REVOKE UPDATE(col) ON mysqltest_db1.t3 FROM mysqltest_u1@localhost;
+REVOKE UPDATE(col) ON mysqltest_db1.t4 FROM mysqltest_u1@localhost;
+GRANT SELECT(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
+GRANT SELECT(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
+
+# - table-level privileges
+
+INSERT INTO t1 VALUES('line3');
+
+SELECT * FROM t1;
+SELECT @mysqltest_var;
+
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t2 VALUES('line4');
+
+SELECT * FROM t2;
+
+# - column-level privileges
+
+INSERT INTO t3 VALUES('t3_line2');
+
+SELECT * FROM t3;
+SELECT @mysqltest_var;
+
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t4 VALUES('t4_line2');
+
+SELECT * FROM t4;
+
+# execution time:
+# - check that nor SELECT either UPDATE is required to execute triggger w/o
+# NEW/OLD variables.
+
+DELETE FROM t1;
+
+SELECT @mysqltest_var;
+
+#
+# Cleanup.
+#
+
+DROP USER mysqltest_u1@localhost;
+
+DROP DATABASE mysqltest_db1;
+
+
+#
+# Test for bug #14635 Accept NEW.x as INOUT parameters to stored
+# procedures from within triggers
+#
+# We require UPDATE privilege when NEW.x passed as OUT parameter, and
+# SELECT and UPDATE when NEW.x passed as INOUT parameter.
+#
+DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
+DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
+FLUSH PRIVILEGES;
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest_db1;
+--enable_warnings
+
+CREATE DATABASE mysqltest_db1;
+USE mysqltest_db1;
+
+CREATE TABLE t1 (i1 INT);
+CREATE TABLE t2 (i1 INT);
+
+CREATE USER mysqltest_dfn@localhost;
+CREATE USER mysqltest_inv@localhost;
+
+GRANT EXECUTE, CREATE ROUTINE, SUPER ON *.* TO mysqltest_dfn@localhost;
+GRANT INSERT ON mysqltest_db1.* TO mysqltest_inv@localhost;
+
+connect (definer,localhost,mysqltest_dfn,,mysqltest_db1);
+connect (invoker,localhost,mysqltest_inv,,mysqltest_db1);
+
+connection definer;
+CREATE PROCEDURE p1(OUT i INT) DETERMINISTIC NO SQL SET i = 3;
+CREATE PROCEDURE p2(INOUT i INT) DETERMINISTIC NO SQL SET i = i * 5;
+
+# Check that having no privilege won't work.
+connection definer;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+ CALL p2(NEW.i1);
+
+connection invoker;
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES (7);
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t2 VALUES (11);
+
+connection definer;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+
+# Check that having only SELECT privilege is not enough.
+connection default;
+GRANT SELECT ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+connection definer;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+ CALL p2(NEW.i1);
+
+connection invoker;
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES (13);
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t2 VALUES (17);
+
+connection default;
+REVOKE SELECT ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+
+connection definer;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+
+# Check that having only UPDATE privilege is enough for OUT parameter,
+# but not for INOUT parameter.
+connection default;
+GRANT UPDATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+connection definer;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+ CALL p2(NEW.i1);
+
+connection invoker;
+INSERT INTO t1 VALUES (19);
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t2 VALUES (23);
+
+connection default;
+REVOKE UPDATE ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+
+connection definer;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+
+# Check that having SELECT and UPDATE privileges is enough.
+connection default;
+GRANT SELECT, UPDATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+connection definer;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW
+ CALL p2(NEW.i1);
+
+connection invoker;
+INSERT INTO t1 VALUES (29);
+INSERT INTO t2 VALUES (31);
+
+connection default;
+REVOKE SELECT, UPDATE ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+
+connection definer;
+DROP TRIGGER t2_bi;
+DROP TRIGGER t1_bi;
+
+connection default;
+DROP PROCEDURE p2;
+DROP PROCEDURE p1;
+
+# Check that late procedure redefining won't open a security hole.
+connection default;
+GRANT UPDATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
+
+connection definer;
+CREATE PROCEDURE p1(OUT i INT) DETERMINISTIC NO SQL SET i = 37;
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+
+connection invoker;
+INSERT INTO t1 VALUES (41);
+
+connection definer;
+DROP PROCEDURE p1;
+CREATE PROCEDURE p1(IN i INT) DETERMINISTIC NO SQL SET @v1 = i + 43;
+
+connection invoker;
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES (47);
+
+connection definer;
+DROP PROCEDURE p1;
+CREATE PROCEDURE p1(INOUT i INT) DETERMINISTIC NO SQL SET i = i + 51;
+
+connection invoker;
+--error ER_COLUMNACCESS_DENIED_ERROR
+INSERT INTO t1 VALUES (53);
+
+connection default;
+DROP PROCEDURE p1;
+REVOKE UPDATE ON mysqltest_db1.* FROM mysqltest_dfn@localhost;
+
+connection definer;
+DROP TRIGGER t1_bi;
+
+# Cleanup.
+disconnect definer;
+disconnect invoker;
+connection default;
+DROP USER mysqltest_inv@localhost;
+DROP USER mysqltest_dfn@localhost;
+DROP TABLE t2;
+DROP TABLE t1;
+DROP DATABASE mysqltest_db1;
+USE test;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/trigger-trans.test b/mysql-test/t/trigger-trans.test
new file mode 100644
index 00000000000..8103a1ba0b1
--- /dev/null
+++ b/mysql-test/t/trigger-trans.test
@@ -0,0 +1,132 @@
+# Tests which involve triggers and transactions
+# (or just InnoDB storage engine)
+--source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+# Test for bug #18153 "OPTIMIZE/ALTER on transactional tables corrupt
+# triggers/triggers are lost".
+
+create table t1 (a varchar(16), b int) engine=innodb;
+delimiter |;
+create trigger t1_bi before insert on t1 for each row
+begin
+ set new.a := upper(new.a);
+ set new.b := new.b + 3;
+end|
+delimiter ;|
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' and event_object_table = 't1';
+insert into t1 values ('The Lion', 10);
+select * from t1;
+optimize table t1;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' and event_object_table = 't1';
+insert into t1 values ('The Unicorn', 20);
+select * from t1;
+alter table t1 add column c int default 0;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' and event_object_table = 't1';
+insert into t1 values ('Alice', 30, 1);
+select * from t1;
+# Special tricky cases allowed by ALTER TABLE ... RENAME
+alter table t1 rename to t1;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' and event_object_table = 't1';
+insert into t1 values ('The Crown', 40, 1);
+select * from t1;
+alter table t1 rename to t1, add column d int default 0;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' and event_object_table = 't1';
+insert into t1 values ('The Pie', 50, 1, 1);
+select * from t1;
+drop table t1;
+
+--echo
+--echo Bug#26141 mixing table types in trigger causes full
+--echo table lock on innodb table
+--echo
+--echo Ensure we do not open and lock tables for the triggers we do not
+--echo fire.
+--echo
+--disable_warnings
+drop table if exists t1, t2, t3;
+drop trigger if exists trg_bug26141_au;
+drop trigger if exists trg_bug26141_ai;
+--enable_warnings
+# Note, for InnoDB to allow concurrent UPDATE and INSERT the
+# table must have a unique key.
+create table t1 (c int primary key) engine=innodb;
+create table t2 (c int) engine=myisam;
+create table t3 (c int) engine=myisam;
+insert into t1 (c) values (1);
+delimiter |;
+
+create trigger trg_bug26141_ai after insert on t1
+for each row
+begin
+ insert into t2 (c) values (1);
+# We need the 'sync' lock to synchronously wait in connection 2 till
+# the moment when the trigger acquired all the locks.
+ select release_lock("lock_bug26141_sync") into @a;
+# 1000 is time in seconds of lock wait timeout -- this is a way
+# to cause a manageable sleep up to 1000 seconds
+ select get_lock("lock_bug26141_wait", 1000) into @a;
+end|
+
+create trigger trg_bug26141_au after update on t1
+for each row
+begin
+ insert into t3 (c) values (1);
+end|
+delimiter ;|
+
+# Establish an alternative connection.
+--connect (connection_aux,localhost,root,,test,,)
+--connect (connection_update,localhost,root,,test,,)
+
+connection connection_aux;
+# Lock the wait lock, it must not be locked, so specify zero timeout.
+select get_lock("lock_bug26141_wait", 0);
+
+#
+connection default;
+#
+# Run the trigger synchronously
+#
+select get_lock("lock_bug26141_sync", /* must not be priorly locked */ 0);
+# Will acquire the table level locks, perform the insert into t2,
+# release the sync lock and block on the wait lock.
+send insert into t1 (c) values (2);
+
+connection connection_update;
+# Wait for the trigger to acquire its locks and unlock the sync lock.
+select get_lock("lock_bug26141_sync", 1000);
+#
+# This must continue: after the fix for the bug, we do not
+# open tables for t2, and with c=4 innobase allows the update
+# to run concurrently with insert.
+update t1 set c=3 where c=1;
+select release_lock("lock_bug26141_sync");
+connection connection_aux;
+select release_lock("lock_bug26141_wait");
+connection default;
+reap;
+select * from t1;
+select * from t2;
+select * from t3;
+
+# Drops the trigger as well.
+drop table t1, t2, t3;
+disconnect connection_update;
+disconnect connection_aux;
+
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test
new file mode 100644
index 00000000000..2f62ad38621
--- /dev/null
+++ b/mysql-test/t/trigger.test
@@ -0,0 +1,2220 @@
+# This test uses chmod, can't be run with root permissions
+-- source include/not_as_root.inc
+
+
+#
+# Basic triggers test
+#
+
+--disable_warnings
+drop table if exists t1, t2, t3, t4;
+drop view if exists v1;
+drop database if exists mysqltest;
+drop function if exists f1;
+drop function if exists f2;
+drop procedure if exists p1;
+--enable_warnings
+
+# Create additional connections used through test
+connect (addconroot1, localhost, root,,);
+connect (addconroot2, localhost, root,,);
+# Connection without current database set
+connect (addconwithoutdb, localhost, root,,*NO-ONE*);
+connection default;
+
+create table t1 (i int);
+
+# let us test some very simple trigger
+create trigger trg before insert on t1 for each row set @a:=1;
+set @a:=0;
+select @a;
+insert into t1 values (1);
+select @a;
+drop trigger trg;
+
+# let us test simple trigger reading some values
+create trigger trg before insert on t1 for each row set @a:=new.i;
+insert into t1 values (123);
+select @a;
+drop trigger trg;
+
+drop table t1;
+
+# Let us test before insert trigger
+# Such triggers can be used for setting complex default values
+create table t1 (i int not null, j int);
+delimiter |;
+create trigger trg before insert on t1 for each row
+begin
+ if isnull(new.j) then
+ set new.j:= new.i * 10;
+ end if;
+end|
+insert into t1 (i) values (1)|
+insert into t1 (i,j) values (2, 3)|
+select * from t1|
+drop trigger trg|
+drop table t1|
+delimiter ;|
+
+# After insert trigger
+# Useful for aggregating data
+create table t1 (i int not null primary key);
+create trigger trg after insert on t1 for each row
+ set @a:= if(@a,concat(@a, ":", new.i), new.i);
+set @a:="";
+insert into t1 values (2),(3),(4),(5);
+select @a;
+drop trigger trg;
+drop table t1;
+
+# PS doesn't work with multi-row statements
+--disable_ps_protocol
+# Before update trigger
+# (In future we will achieve this via proper error handling in triggers)
+create table t1 (aid int not null primary key, balance int not null default 0);
+insert into t1 values (1, 1000), (2,3000);
+delimiter |;
+create trigger trg before update on t1 for each row
+begin
+ declare loc_err varchar(255);
+ if abs(new.balance - old.balance) > 1000 then
+ set new.balance:= old.balance;
+ set loc_err := concat("Too big change for aid = ", new.aid);
+ set @update_failed:= if(@update_failed, concat(@a, ":", loc_err), loc_err);
+ end if;
+end|
+set @update_failed:=""|
+update t1 set balance=1500|
+select @update_failed;
+select * from t1|
+drop trigger trg|
+drop table t1|
+delimiter ;|
+--enable_ps_protocol
+
+# After update trigger
+create table t1 (i int);
+insert into t1 values (1),(2),(3),(4);
+create trigger trg after update on t1 for each row
+ set @total_change:=@total_change + new.i - old.i;
+set @total_change:=0;
+update t1 set i=3;
+select @total_change;
+drop trigger trg;
+drop table t1;
+
+# Before delete trigger
+# This can be used for aggregation too :)
+create table t1 (i int);
+insert into t1 values (1),(2),(3),(4);
+create trigger trg before delete on t1 for each row
+ set @del_sum:= @del_sum + old.i;
+set @del_sum:= 0;
+delete from t1 where i <= 3;
+select @del_sum;
+drop trigger trg;
+drop table t1;
+
+# After delete trigger.
+# Just run out of imagination.
+create table t1 (i int);
+insert into t1 values (1),(2),(3),(4);
+create trigger trg after delete on t1 for each row set @del:= 1;
+set @del:= 0;
+delete from t1 where i <> 0;
+select @del;
+drop trigger trg;
+drop table t1;
+
+# Several triggers on one table
+create table t1 (i int, j int);
+
+delimiter |;
+create trigger trg1 before insert on t1 for each row
+begin
+ if new.j > 10 then
+ set new.j := 10;
+ end if;
+end|
+create trigger trg2 before update on t1 for each row
+begin
+ if old.i % 2 = 0 then
+ set new.j := -1;
+ end if;
+end|
+create trigger trg3 after update on t1 for each row
+begin
+ if new.j = -1 then
+ set @fired:= "Yes";
+ end if;
+end|
+delimiter ;|
+set @fired:="";
+insert into t1 values (1,2),(2,3),(3,14);
+select @fired;
+select * from t1;
+update t1 set j= 20;
+select @fired;
+select * from t1;
+
+drop trigger trg1;
+drop trigger trg2;
+drop trigger trg3;
+drop table t1;
+
+
+# Let us test how triggers work for special forms of INSERT such as
+# REPLACE and INSERT ... ON DUPLICATE KEY UPDATE
+create table t1 (id int not null primary key, data int);
+create trigger t1_bi before insert on t1 for each row
+ set @log:= concat(@log, "(BEFORE_INSERT: new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_ai after insert on t1 for each row
+ set @log:= concat(@log, "(AFTER_INSERT: new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_bu before update on t1 for each row
+ set @log:= concat(@log, "(BEFORE_UPDATE: old=(id=", old.id, ", data=", old.data,
+ ") new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_au after update on t1 for each row
+ set @log:= concat(@log, "(AFTER_UPDATE: old=(id=", old.id, ", data=", old.data,
+ ") new=(id=", new.id, ", data=", new.data,"))");
+create trigger t1_bd before delete on t1 for each row
+ set @log:= concat(@log, "(BEFORE_DELETE: old=(id=", old.id, ", data=", old.data,"))");
+create trigger t1_ad after delete on t1 for each row
+ set @log:= concat(@log, "(AFTER_DELETE: old=(id=", old.id, ", data=", old.data,"))");
+# Simple INSERT - both triggers should be called
+set @log:= "";
+insert into t1 values (1, 1);
+select @log;
+# INSERT IGNORE for already existing key - only before trigger should fire
+set @log:= "";
+insert ignore t1 values (1, 2);
+select @log;
+# INSERT ... ON DUPLICATE KEY UPDATE ...
+set @log:= "";
+insert into t1 (id, data) values (1, 3), (2, 2) on duplicate key update data= data + 1;
+select @log;
+# REPLACE (also test for bug#13479 "REPLACE activates UPDATE trigger,
+# not the DELETE and INSERT triggers")
+# We define REPLACE as INSERT which DELETEs old rows which conflict with
+# row being inserted. So for the first record in statement below we will
+# call before insert trigger, then delete will be executed (and both delete
+# triggers should fire). Finally after insert trigger will be called.
+# For the second record we will just call both on insert triggers.
+set @log:= "";
+replace t1 values (1, 4), (3, 3);
+select @log;
+# Now we will drop ON DELETE triggers to test REPLACE which is internally
+# executed via update
+drop trigger t1_bd;
+drop trigger t1_ad;
+set @log:= "";
+replace t1 values (1, 5);
+select @log;
+
+# This also drops associated triggers
+drop table t1;
+
+
+#
+# Let us test triggers which access other tables.
+#
+# Trivial trigger which inserts data into another table
+create table t1 (id int primary key, data varchar(10), fk int);
+create table t2 (event varchar(100));
+create table t3 (id int primary key);
+create trigger t1_ai after insert on t1 for each row
+ insert into t2 values (concat("INSERT INTO t1 id=", new.id, " data='", new.data, "'"));
+insert into t1 (id, data) values (1, "one"), (2, "two");
+select * from t1;
+select * from t2;
+drop trigger t1_ai;
+# Trigger which uses couple of tables (and partially emulates FK constraint)
+delimiter |;
+create trigger t1_bi before insert on t1 for each row
+begin
+ if exists (select id from t3 where id=new.fk) then
+ insert into t2 values (concat("INSERT INTO t1 id=", new.id, " data='", new.data, "' fk=", new.fk));
+ else
+ insert into t2 values (concat("INSERT INTO t1 FAILED id=", new.id, " data='", new.data, "' fk=", new.fk));
+ set new.id= NULL;
+ end if;
+end|
+delimiter ;|
+insert into t3 values (1);
+--error ER_BAD_NULL_ERROR
+insert into t1 values (4, "four", 1), (5, "five", 2);
+select * from t1;
+select * from t2;
+drop table t1, t2, t3;
+# Trigger which invokes function
+create table t1 (id int primary key, data varchar(10));
+create table t2 (seq int);
+insert into t2 values (10);
+create function f1 () returns int return (select max(seq) from t2);
+delimiter |;
+create trigger t1_bi before insert on t1 for each row
+begin
+ if new.id > f1() then
+ set new.id:= f1();
+ end if;
+end|
+delimiter ;|
+insert into t1 values (1, "first");
+insert into t1 values (f1(), "max");
+select * from t1;
+drop table t1, t2;
+drop function f1;
+# Trigger which forces invocation of another trigger
+# (emulation of FK on delete cascade policy)
+create table t1 (id int primary key, fk_t2 int);
+create table t2 (id int primary key, fk_t3 int);
+create table t3 (id int primary key);
+insert into t1 values (1,1), (2,1), (3,2);
+insert into t2 values (1,1), (2,2);
+insert into t3 values (1), (2);
+create trigger t3_ad after delete on t3 for each row
+ delete from t2 where fk_t3=old.id;
+create trigger t2_ad after delete on t2 for each row
+ delete from t1 where fk_t2=old.id;
+delete from t3 where id = 1;
+select * from t1 left join (t2 left join t3 on t2.fk_t3 = t3.id) on t1.fk_t2 = t2.id;
+drop table t1, t2, t3;
+# Trigger which assigns value selected from table to field of row
+# being inserted/updated.
+create table t1 (id int primary key, copy int);
+create table t2 (id int primary key, data int);
+insert into t2 values (1,1), (2,2);
+create trigger t1_bi before insert on t1 for each row
+ set new.copy= (select data from t2 where id = new.id);
+create trigger t1_bu before update on t1 for each row
+ set new.copy= (select data from t2 where id = new.id);
+insert into t1 values (1,3), (2,4), (3,3);
+update t1 set copy= 1 where id = 2;
+select * from t1;
+drop table t1, t2;
+
+#
+# Test of wrong column specifiers in triggers
+#
+create table t1 (i int);
+create table t3 (i int);
+
+--error ER_TRG_NO_SUCH_ROW_IN_TRG
+create trigger trg before insert on t1 for each row set @a:= old.i;
+--error ER_TRG_NO_SUCH_ROW_IN_TRG
+create trigger trg before delete on t1 for each row set @a:= new.i;
+--error ER_TRG_CANT_CHANGE_ROW
+create trigger trg before update on t1 for each row set old.i:=1;
+--error ER_TRG_NO_SUCH_ROW_IN_TRG
+create trigger trg before delete on t1 for each row set new.i:=1;
+--error ER_TRG_CANT_CHANGE_ROW
+create trigger trg after update on t1 for each row set new.i:=1;
+--error ER_BAD_FIELD_ERROR
+create trigger trg before update on t1 for each row set new.j:=1;
+--error ER_BAD_FIELD_ERROR
+create trigger trg before update on t1 for each row set @a:=old.j;
+
+
+#
+# Let us test various trigger creation errors
+# Also quickly test table namespace (bug#5892/6182)
+#
+--error ER_NO_SUCH_TABLE
+create trigger trg before insert on t2 for each row set @a:=1;
+
+create trigger trg before insert on t1 for each row set @a:=1;
+--error ER_TRG_ALREADY_EXISTS
+create trigger trg after insert on t1 for each row set @a:=1;
+--error ER_NOT_SUPPORTED_YET
+create trigger trg2 before insert on t1 for each row set @a:=1;
+--error ER_TRG_ALREADY_EXISTS
+create trigger trg before insert on t3 for each row set @a:=1;
+create trigger trg2 before insert on t3 for each row set @a:=1;
+drop trigger trg2;
+drop trigger trg;
+
+--error ER_TRG_DOES_NOT_EXIST
+drop trigger trg;
+
+create view v1 as select * from t1;
+--error ER_WRONG_OBJECT
+create trigger trg before insert on v1 for each row set @a:=1;
+drop view v1;
+
+drop table t1;
+drop table t3;
+
+create temporary table t1 (i int);
+--error ER_TRG_ON_VIEW_OR_TEMP_TABLE
+create trigger trg before insert on t1 for each row set @a:=1;
+drop table t1;
+
+
+
+#
+# Tests for various trigger-related bugs
+#
+
+# Test for bug #5887 "Triggers with string literals cause errors".
+# New .FRM parser was not handling escaped strings properly.
+create table t1 (x1col char);
+create trigger tx1 before insert on t1 for each row set new.x1col = 'x';
+insert into t1 values ('y');
+drop trigger tx1;
+drop table t1;
+
+#
+# Test for bug #5890 "Triggers fail for DELETE without WHERE".
+# If we are going to delete all rows in table but DELETE triggers exist
+# we should perform row-by-row deletion instead of using optimized
+# delete_all_rows() method.
+#
+create table t1 (i int) engine=myisam;
+insert into t1 values (1), (2);
+create trigger trg1 before delete on t1 for each row set @del_before:= @del_before + old.i;
+create trigger trg2 after delete on t1 for each row set @del_after:= @del_after + old.i;
+set @del_before:=0, @del_after:= 0;
+delete from t1;
+select @del_before, @del_after;
+drop trigger trg1;
+drop trigger trg2;
+drop table t1;
+
+# Test for bug #5859 "DROP TABLE does not drop triggers". Trigger should not
+# magically reappear when we recreate dropped table.
+create table t1 (a int);
+create trigger trg1 before insert on t1 for each row set new.a= 10;
+drop table t1;
+create table t1 (a int);
+insert into t1 values ();
+select * from t1;
+drop table t1;
+
+# Test for bug #6559 "DROP DATABASE forgets to drop triggers".
+create database mysqltest;
+use mysqltest;
+create table t1 (i int);
+create trigger trg1 before insert on t1 for each row set @a:= 1;
+# This should succeed
+drop database mysqltest;
+use test;
+
+# Test for bug #8791
+# "Triggers: Allowed to create triggers on a subject table in a different DB".
+create database mysqltest;
+create table mysqltest.t1 (i int);
+--error ER_TRG_IN_WRONG_SCHEMA
+create trigger trg1 before insert on mysqltest.t1 for each row set @a:= 1;
+use mysqltest;
+--error ER_NO_SUCH_TABLE
+create trigger test.trg1 before insert on t1 for each row set @a:= 1;
+drop database mysqltest;
+use test;
+
+
+# Test for bug #5860 "Multi-table UPDATE does not activate update triggers"
+# We will also test how delete triggers wor for multi-table DELETE.
+create table t1 (i int, j int default 10, k int not null, key (k));
+create table t2 (i int);
+insert into t1 (i, k) values (1, 1);
+insert into t2 values (1);
+create trigger trg1 before update on t1 for each row set @a:= @a + new.j - old.j;
+create trigger trg2 after update on t1 for each row set @b:= "Fired";
+set @a:= 0, @b:= "";
+# Check that trigger works in case of update on the fly
+update t1, t2 set j = j + 10 where t1.i = t2.i;
+select @a, @b;
+insert into t1 values (2, 13, 2);
+insert into t2 values (2);
+set @a:= 0, @b:= "";
+# And now let us check that triggers work in case of multi-update which
+# is done through temporary tables...
+update t1, t2 set j = j + 15 where t1.i = t2.i and t1.k >= 2;
+select @a, @b;
+# Let us test delete triggers for multi-delete now.
+# We create triggers for both tables because we want test how they
+# work in both on-the-fly and via-temp-tables cases.
+create trigger trg3 before delete on t1 for each row set @c:= @c + old.j;
+create trigger trg4 before delete on t2 for each row set @d:= @d + old.i;
+create trigger trg5 after delete on t1 for each row set @e:= "After delete t1 fired";
+create trigger trg6 after delete on t2 for each row set @f:= "After delete t2 fired";
+set @c:= 0, @d:= 0, @e:= "", @f:= "";
+delete t1, t2 from t1, t2 where t1.i = t2.i;
+select @c, @d, @e, @f;
+# This also will drop triggers
+drop table t1, t2;
+
+# Test for bug #6812 "Triggers are not activated for INSERT ... SELECT".
+# (We also check the fact that trigger modifies some field does not affect
+# value of next record inserted).
+delimiter |;
+create table t1 (i int, j int default 10)|
+create table t2 (i int)|
+insert into t2 values (1), (2)|
+create trigger trg1 before insert on t1 for each row
+begin
+ if new.i = 1 then
+ set new.j := 1;
+ end if;
+end|
+create trigger trg2 after insert on t1 for each row set @a:= 1|
+set @a:= 0|
+insert into t1 (i) select * from t2|
+select * from t1|
+select @a|
+# This also will drop triggers
+drop table t1, t2|
+delimiter ;|
+
+# Test for bug #8755 "Trigger is not activated by LOAD DATA"
+create table t1 (i int, j int, k int);
+create trigger trg1 before insert on t1 for each row set new.k = new.i;
+create trigger trg2 after insert on t1 for each row set @b:= "Fired";
+set @b:="";
+# Test triggers with file with separators
+load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, i);
+select *, @b from t1;
+set @b:="";
+# Test triggers with fixed size row file
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (i, j);
+select *, @b from t1;
+# This also will drop triggers
+drop table t1;
+
+# Test for bug #5894 "Triggers with altered tables cause corrupt databases"
+# Also tests basic error handling for various kinds of triggers.
+create table t1 (i int, at int, k int, key(k)) engine=myisam;
+create table t2 (i int);
+insert into t1 values (1, 1, 1);
+# We need at least 3 elements in t2 to test multi-update properly
+insert into t2 values (1), (2), (3);
+# Create and then break "after" triggers
+create trigger ai after insert on t1 for each row set @a:= new.at;
+create trigger au after update on t1 for each row set @a:= new.at;
+create trigger ad after delete on t1 for each row set @a:= old.at;
+alter table t1 drop column at;
+# We still should be able select data from tables.
+select * from t1;
+# The following statements changing t1 should fail, but still cause
+# their main effect. This is because operation on the table row is
+# executed before "after" trigger and its effect cannot be rolled back
+# when whole statement fails, because t1 is MyISAM table.
+--error ER_BAD_FIELD_ERROR
+insert into t1 values (2, 1);
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+update t1 set k = 2 where i = 2;
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+delete from t1 where i = 2;
+select * from t1;
+# Should fail and insert only 1 row
+--error ER_BAD_FIELD_ERROR
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (i, k);
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+insert into t1 select 3, 3;
+select * from t1;
+# Multi-update working on the fly, again it will update only
+# one row even if more matches
+--error ER_BAD_FIELD_ERROR
+update t1, t2 set k = k + 10 where t1.i = t2.i;
+select * from t1;
+# The same for multi-update via temp table
+--error ER_BAD_FIELD_ERROR
+update t1, t2 set k = k + 10 where t1.i = t2.i and k < 3;
+select * from t1;
+# Multi-delete on the fly
+--error ER_BAD_FIELD_ERROR
+delete t1, t2 from t1 straight_join t2 where t1.i = t2.i;
+select * from t1;
+# And via temporary storage
+--error ER_BAD_FIELD_ERROR
+delete t2, t1 from t2 straight_join t1 where t1.i = t2.i;
+select * from t1;
+# Prepare table for testing of REPLACE and INSERT ... ON DUPLICATE KEY UPDATE
+alter table t1 add primary key (i);
+--error ER_BAD_FIELD_ERROR
+insert into t1 values (3, 4) on duplicate key update k= k + 10;
+select * from t1;
+# The following statement will delete old row and won't
+# insert new one since after delete trigger will fail.
+--error ER_BAD_FIELD_ERROR
+replace into t1 values (3, 3);
+select * from t1;
+# Also drops all triggers
+drop table t1, t2;
+
+create table t1 (i int, bt int, k int, key(k)) engine=myisam;
+create table t2 (i int);
+insert into t1 values (1, 1, 1), (2, 2, 2);
+insert into t2 values (1), (2), (3);
+# Create and then break "before" triggers
+create trigger bi before insert on t1 for each row set @a:= new.bt;
+create trigger bu before update on t1 for each row set @a:= new.bt;
+create trigger bd before delete on t1 for each row set @a:= old.bt;
+alter table t1 drop column bt;
+# The following statements changing t1 should fail and should not
+# cause any effect on table, since "before" trigger is executed
+# before operation on the table row.
+--error ER_BAD_FIELD_ERROR
+insert into t1 values (3, 3);
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+update t1 set i = 2;
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+delete from t1;
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (i, k);
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+insert into t1 select 3, 3;
+select * from t1;
+# Both types of multi-update (on the fly and via temp table)
+--error ER_BAD_FIELD_ERROR
+update t1, t2 set k = k + 10 where t1.i = t2.i;
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+update t1, t2 set k = k + 10 where t1.i = t2.i and k < 2;
+select * from t1;
+# Both types of multi-delete
+--error ER_BAD_FIELD_ERROR
+delete t1, t2 from t1 straight_join t2 where t1.i = t2.i;
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+delete t2, t1 from t2 straight_join t1 where t1.i = t2.i;
+select * from t1;
+# Let us test REPLACE/INSERT ... ON DUPLICATE KEY UPDATE.
+# To test properly code-paths different from those that are used
+# in ordinary INSERT we need to drop "before insert" trigger.
+alter table t1 add primary key (i);
+drop trigger bi;
+--error ER_BAD_FIELD_ERROR
+insert into t1 values (2, 4) on duplicate key update k= k + 10;
+select * from t1;
+--error ER_BAD_FIELD_ERROR
+replace into t1 values (2, 4);
+select * from t1;
+# Also drops all triggers
+drop table t1, t2;
+
+# Test for bug #5893 "Triggers with dropped functions cause crashes"
+# Appropriate error should be reported instead of crash.
+# Also test for bug #11889 "Server crashes when dropping trigger
+# using stored routine".
+--disable_warnings
+drop function if exists bug5893;
+--enable_warnings
+create table t1 (col1 int, col2 int);
+insert into t1 values (1, 2);
+create function bug5893 () returns int return 5;
+create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
+drop function bug5893;
+--error ER_SP_DOES_NOT_EXIST
+update t1 set col2 = 4;
+# This should not crash server too.
+drop trigger t1_bu;
+drop table t1;
+
+#
+# storing and restoring parsing modes for triggers (BUG#5891)
+#
+set sql_mode='ansi';
+create table t1 ("t1 column" int);
+create trigger t1_bi before insert on t1 for each row set new."t1 column" = 5;
+set sql_mode="";
+insert into t1 values (0);
+# create trigger with different sql_mode
+create trigger t1_af after insert on t1 for each row set @a=10;
+insert into t1 values (0);
+select * from t1;
+select @a;
+--replace_column 6 #
+show triggers;
+drop table t1;
+# check that rigger preserve sql_mode during execution
+set sql_mode="traditional";
+create table t1 (a date);
+-- error 1292
+insert into t1 values ('2004-01-00');
+set sql_mode="";
+create trigger t1_bi before insert on t1 for each row set new.a = '2004-01-00';
+set sql_mode="traditional";
+insert into t1 values ('2004-01-01');
+select * from t1;
+set sql_mode=default;
+show create table t1;
+--replace_column 6 #
+show triggers;
+drop table t1;
+
+# Test for bug #12280 "Triggers: crash if flush tables"
+# FLUSH TABLES and FLUSH PRIVILEGES should be disallowed inside
+# of functions and triggers.
+create table t1 (id int);
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row reset query cache;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row reset master;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row reset slave;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush hosts;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush tables with read lock;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush logs;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush status;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush slave;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush master;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush des_key_file;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush user_resources;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush tables;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+create trigger t1_ai after insert on t1 for each row flush privileges;
+--disable_warnings
+drop procedure if exists p1;
+--enable_warnings
+
+create trigger t1_ai after insert on t1 for each row call p1();
+create procedure p1() flush tables;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() reset query cache;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() reset master;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() reset slave;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush hosts;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush privileges;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush tables with read lock;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush tables;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush logs;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush status;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush slave;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush master;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush des_key_file;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+create procedure p1() flush user_resources;
+--error ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+insert into t1 values (0);
+
+drop procedure p1;
+drop table t1;
+
+# Test for bug #11973 "SELECT .. INTO var_name; in trigger cause
+# crash on update"
+
+create table t1 (id int, data int, username varchar(16));
+insert into t1 (id, data) values (1, 0);
+delimiter |;
+create trigger t1_whoupdated before update on t1 for each row
+begin
+ declare user varchar(32);
+ declare i int;
+ select user() into user;
+ set NEW.username = user;
+ select count(*) from ((select 1) union (select 2)) as d1 into i;
+end|
+delimiter ;|
+update t1 set data = 1;
+
+connection addconroot1;
+update t1 set data = 2;
+
+connection default;
+drop table t1;
+
+#
+# #11587 Trigger causes lost connection error
+#
+
+create table t1 (c1 int, c2 datetime);
+delimiter |;
+--error ER_SP_NO_RETSET
+create trigger tr1 before insert on t1 for each row
+begin
+ set new.c2= '2004-04-01';
+ select 'hello';
+end|
+delimiter ;|
+
+insert into t1 (c1) values (1),(2),(3);
+select * from t1;
+
+--disable_warnings
+drop procedure if exists bug11587;
+--enable_warnings
+
+delimiter |;
+create procedure bug11587(x char(16))
+begin
+ select "hello";
+ select "hello again";
+end|
+
+create trigger tr1 before insert on t1 for each row
+begin
+ call bug11587();
+ set new.c2= '2004-04-02';
+end|
+delimiter ;|
+
+--error ER_SP_NO_RETSET
+insert into t1 (c1) values (4),(5),(6);
+select * from t1;
+
+drop procedure bug11587;
+drop table t1;
+
+# Test for bug #11896 "Partial locking in case of recursive trigger
+# definitions". Recursion in triggers should not be allowed.
+# We also should not allow to change tables which are used in
+# statements invoking this trigger.
+create table t1 (f1 integer);
+create table t2 (f2 integer);
+create trigger t1_ai after insert on t1
+ for each row insert into t2 values (new.f1+1);
+create trigger t2_ai after insert on t2
+ for each row insert into t1 values (new.f2+1);
+# Allow SP resursion to be show that it has not influence here
+set @SAVE_SP_RECURSION_LEVELS=@@max_sp_recursion_depth;
+set @@max_sp_recursion_depth=100;
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+insert into t1 values (1);
+set @@max_sp_recursion_depth=@SAVE_SP_RECURSION_LEVELS;
+select * from t1;
+select * from t2;
+drop trigger t1_ai;
+drop trigger t2_ai;
+create trigger t1_bu before update on t1
+ for each row insert into t1 values (2);
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+update t1 set f1= 10;
+select * from t1;
+drop trigger t1_bu;
+create trigger t1_bu before update on t1
+ for each row delete from t1 where f1=new.f1;
+--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+update t1 set f1= 10;
+select * from t1;
+drop trigger t1_bu;
+# This should work tough
+create trigger t1_bi before insert on t1
+ for each row set new.f1=(select sum(f1) from t1);
+insert into t1 values (3);
+select * from t1;
+drop trigger t1_bi;
+drop tables t1, t2;
+
+# Tests for bug #12704 "Server crashes during trigger execution".
+# If we run DML statements and CREATE TRIGGER statements concurrently
+# it may happen that trigger will be created while DML statement is
+# waiting for table lock. In this case we have to reopen tables and
+# recalculate prelocking set.
+# Unfortunately these tests rely on the order in which tables are locked
+# by statement so they are non determenistic and are disabled.
+--disable_parsing
+create table t1 (id int);
+create table t2 (id int);
+create table t3 (id int);
+create function f1() returns int return (select max(id)+2 from t2);
+create view v1 as select f1() as f;
+
+# Let us check that we notice trigger at all
+connection addconroot1;
+lock tables t2 write;
+connection default;
+send insert into t1 values ((select max(id) from t2)), (2);
+--sleep 1
+connection addconroot2;
+create trigger t1_trg before insert on t1 for each row set NEW.id:= 1;
+connection addconroot1;
+unlock tables;
+connection default;
+reap;
+select * from t1;
+
+# Check that we properly calculate new prelocking set
+insert into t2 values (3);
+connection addconroot1;
+lock tables t2 write;
+connection default;
+send insert into t1 values ((select max(id) from t2)), (4);
+--sleep 1
+connection addconroot2;
+drop trigger t1_trg;
+create trigger t1_trg before insert on t1 for each row
+ insert into t3 values (new.id);
+connection addconroot1;
+unlock tables;
+connection default;
+reap;
+select * from t1;
+select * from t3;
+
+# We should be able to do this even if fancy views are involved
+connection addconroot1;
+lock tables t2 write;
+connection default;
+send insert into t1 values ((select max(f) from v1)), (6);
+--sleep 1
+connection addconroot2;
+drop trigger t1_trg;
+create trigger t1_trg before insert on t1 for each row
+ insert into t3 values (new.id + 100);
+connection addconroot1;
+unlock tables;
+connection default;
+reap;
+select * from t1;
+select * from t3;
+
+# This also should work for multi-update
+# Let us drop trigger to demonstrate that prelocking set is really
+# rebuilt
+drop trigger t1_trg;
+connection addconroot1;
+lock tables t2 write;
+connection default;
+send update t1, t2 set t1.id=10 where t1.id=t2.id;
+--sleep 1
+connection addconroot2;
+create trigger t1_trg before update on t1 for each row
+ insert into t3 values (new.id);
+connection addconroot1;
+unlock tables;
+connection default;
+reap;
+select * from t1;
+select * from t3;
+
+# And even for multi-update converted from ordinary update thanks to view
+drop view v1;
+drop trigger t1_trg;
+create view v1 as select t1.id as id1 from t1, t2 where t1.id= t2.id;
+insert into t2 values (10);
+connection addconroot1;
+lock tables t2 write;
+connection default;
+send update v1 set id1= 11;
+--sleep 1
+connection addconroot2;
+create trigger t1_trg before update on t1 for each row
+ insert into t3 values (new.id + 100);
+connection addconroot1;
+unlock tables;
+connection default;
+reap;
+select * from t1;
+select * from t3;
+
+drop function f1;
+drop view v1;
+drop table t1, t2, t3;
+--enable_parsing
+
+#
+# Test for bug #13399 "Crash when executing PS/SP which should activate
+# trigger which is now dropped". See also test for similar bug for stored
+# routines in sp-error.test (#12329).
+create table t1 (id int);
+create table t2 (id int);
+create trigger t1_bi before insert on t1 for each row insert into t2 values (new.id);
+prepare stmt1 from "insert into t1 values (10)";
+create procedure p1() insert into t1 values (10);
+call p1();
+# Actually it is enough to do FLUSH TABLES instead of DROP TRIGGER
+drop trigger t1_bi;
+# Server should not crash on these two statements
+execute stmt1;
+call p1();
+deallocate prepare stmt1;
+drop procedure p1;
+
+# Let us test more complex situation when we alter trigger in such way that
+# it uses different set of tables (or simply add new trigger).
+create table t3 (id int);
+create trigger t1_bi after insert on t1 for each row insert into t2 values (new.id);
+prepare stmt1 from "insert into t1 values (10)";
+create procedure p1() insert into t1 values (10);
+call p1();
+# Altering trigger forcing it use different set of tables
+drop trigger t1_bi;
+create trigger t1_bi after insert on t1 for each row insert into t3 values (new.id);
+# Until we implement proper mechanism for invalidation of PS/SP when table
+# or SP's are changed these two statements will fail with 'Table ... was
+# not locked' error (this mechanism should be based on the new TDC).
+--error ER_NO_SUCH_TABLE
+execute stmt1;
+--error ER_NO_SUCH_TABLE
+call p1();
+deallocate prepare stmt1;
+drop procedure p1;
+drop table t1, t2, t3;
+
+#
+# BUG#13549 "Server crash with nested stored procedures".
+# Server should not crash when during execution of stored procedure
+# we have to parse trigger/function definition and this new trigger/
+# function has more local variables declared than invoking stored
+# procedure and last of these variables is used in argument of NOT
+# operator.
+#
+create table t1 (a int);
+DELIMITER //;
+CREATE PROCEDURE `p1`()
+begin
+ insert into t1 values (1);
+end//
+create trigger trg before insert on t1 for each row
+begin
+ declare done int default 0;
+ set done= not done;
+end//
+DELIMITER ;//
+CALL p1();
+drop procedure p1;
+drop table t1;
+
+#
+# Test for bug #14863 "Triggers: crash if create and there is no current
+# database". We should not crash and give proper error when database for
+# trigger or its table is not specified and there is no current database.
+#
+connection addconwithoutdb;
+--error ER_NO_DB_ERROR
+create trigger t1_bi before insert on test.t1 for each row set @a:=0;
+--error ER_NO_SUCH_TABLE
+create trigger test.t1_bi before insert on t1 for each row set @a:=0;
+--error ER_NO_DB_ERROR
+drop trigger t1_bi;
+connection default;
+
+#
+# Tests for bug #13525 "Rename table does not keep info of triggers"
+# and bug #17866 "Problem with renaming table with triggers with fully
+# qualified subject table".
+#
+create table t1 (id int);
+create trigger t1_bi before insert on t1 for each row set @a:=new.id;
+create trigger t1_ai after insert on test.t1 for each row set @b:=new.id;
+insert into t1 values (101);
+select @a, @b;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test';
+rename table t1 to t2;
+# Trigger should work after rename
+insert into t2 values (102);
+select @a, @b;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test';
+# Let us check that the same works for simple ALTER TABLE ... RENAME
+alter table t2 rename to t3;
+insert into t3 values (103);
+select @a, @b;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test';
+# And for more complex ALTER TABLE
+alter table t3 rename to t4, add column val int default 0;
+insert into t4 values (104, 1);
+select @a, @b;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test';
+# .TRN file should be updated with new table name
+drop trigger t1_bi;
+drop trigger t1_ai;
+drop table t4;
+# Rename between different databases if triggers exist should fail
+create database mysqltest;
+use mysqltest;
+create table t1 (id int);
+create trigger t1_bi before insert on t1 for each row set @a:=new.id;
+insert into t1 values (101);
+select @a;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+--error ER_TRG_IN_WRONG_SCHEMA
+rename table t1 to test.t2;
+insert into t1 values (102);
+select @a;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+# There should be no fantom .TRN files
+--error ER_TRG_DOES_NOT_EXIST
+drop trigger test.t1_bi;
+# Let us also check handling of this restriction in ALTER TABLE ... RENAME
+--error ER_TRG_IN_WRONG_SCHEMA
+alter table t1 rename to test.t1;
+insert into t1 values (103);
+select @a;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+# Again there should be no fantom .TRN files
+--error ER_TRG_DOES_NOT_EXIST
+drop trigger test.t1_bi;
+--error ER_TRG_IN_WRONG_SCHEMA
+alter table t1 rename to test.t1, add column val int default 0;
+insert into t1 values (104);
+select @a;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test' or event_object_schema = 'mysqltest';
+# Table definition should not change
+show create table t1;
+# And once again check for fantom .TRN files
+--error ER_TRG_DOES_NOT_EXIST
+drop trigger test.t1_bi;
+drop trigger t1_bi;
+drop table t1;
+drop database mysqltest;
+use test;
+# And now let us check that the properly handle rename if there is some
+# error during it (that we rollback such renames completely).
+create table t1 (id int);
+create trigger t1_bi before insert on t1 for each row set @a:=new.id;
+create trigger t1_ai after insert on t1 for each row set @b:=new.id;
+insert into t1 values (101);
+select @a, @b;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test';
+# Trick which makes update of second .TRN file impossible
+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/ ''
+--error 1
+rename table t1 to t2;
+# 't1' should be still there and triggers should work correctly
+insert into t1 values (102);
+select @a, @b;
+select trigger_schema, trigger_name, event_object_schema,
+ event_object_table, action_statement from information_schema.triggers
+ where event_object_schema = 'test';
+chmod 0600 $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
+remove_file $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
+# Let us check that updates to .TRN files were rolled back too
+drop trigger t1_bi;
+drop trigger t1_ai;
+drop table t1;
+
+# Test for bug #16829 "Firing trigger with RETURN crashes the server"
+# RETURN is not supposed to be used anywhere except functions, so error
+# should be returned when one attempts to create trigger with RETURN.
+create table t1 (i int);
+--error ER_SP_BADRETURN
+create trigger t1_bi before insert on t1 for each row return 0;
+insert into t1 values (1);
+drop table t1;
+
+# Test for bug #17764 "Trigger crashes MyISAM table"
+#
+# Table was reported as crashed when it was subject table of trigger invoked
+# by insert statement which was executed with enabled bulk insert mode (which
+# is actually set of optimizations enabled by handler::start_bulk_insert())
+# and this trigger also explicitly referenced it.
+# The same problem arose when table to which bulk insert was done was also
+# referenced in function called by insert statement.
+create table t1 (a varchar(64), b int);
+create table t2 like t1;
+create trigger t1_ai after insert on t1 for each row
+ set @a:= (select max(a) from t1);
+insert into t1 (a) values
+ ("Twas"),("brillig"),("and"),("the"),("slithy"),("toves"),
+ ("Did"),("gyre"),("and"),("gimble"),("in"),("the"),("wabe");
+create trigger t2_ai after insert on t2 for each row
+ set @a:= (select max(a) from t2);
+insert into t2 select * from t1;
+load data infile '../std_data_ln/words.dat' into table t1 (a);
+drop trigger t1_ai;
+drop trigger t2_ai;
+# Test that the problem for functions is fixed as well
+create function f1() returns int return (select max(b) from t1);
+insert into t1 values
+ ("All",f1()),("mimsy",f1()),("were",f1()),("the",f1()),("borogoves",f1()),
+ ("And",f1()),("the",f1()),("mome", f1()),("raths",f1()),("outgrabe",f1());
+create function f2() returns int return (select max(b) from t2);
+insert into t2 select a, f2() from t1;
+load data infile '../std_data_ln/words.dat' into table t1 (a) set b:= f1();
+drop table t1, t2;
+drop function f1;
+drop function f2;
+
+#
+# Test for bug #16021 "Wrong index given to function in trigger" which
+# was caused by the same bulk insert optimization as bug #17764 but had
+# slightly different symptoms (instead of reporting table as crashed
+# storage engine reported error number 124)
+#
+create table t1(i int not null, j int not null, n numeric(15,2), primary key(i,j));
+create table t2(i int not null, n numeric(15,2), primary key(i));
+delimiter |;
+create trigger t1_ai after insert on t1 for each row
+begin
+ declare sn numeric(15,2);
+ select sum(n) into sn from t1 where i=new.i;
+ replace into t2 values(new.i, sn);
+end|
+delimiter ;|
+insert into t1 values
+ (1,1,10.00),(1,2,10.00),(1,3,10.00),(1,4,10.00),(1,5,10.00),
+ (1,6,10.00),(1,7,10.00),(1,8,10.00),(1,9,10.00),(1,10,10.00),
+ (1,11,10.00),(1,12,10.00),(1,13,10.00),(1,14,10.00),(1,15,10.00);
+select * from t1;
+select * from t2;
+drop tables t1, t2;
+
+#
+# Test for Bug #16461 connection_id() does not work properly inside trigger
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (
+ conn_id INT,
+ trigger_conn_id INT
+);
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ SET NEW.trigger_conn_id = CONNECTION_ID();
+
+INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1);
+
+connect (con1,localhost,root,,);
+INSERT INTO t1 (conn_id, trigger_conn_id) VALUES (CONNECTION_ID(), -1);
+connection default;
+disconnect con1;
+
+SELECT * FROM t1 WHERE conn_id != trigger_conn_id;
+
+DROP TRIGGER t1_bi;
+DROP TABLE t1;
+
+
+#
+# Bug#6951: Triggers/Traditional: SET @ result wrong
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (i1 INT);
+
+SET @save_sql_mode=@@sql_mode;
+
+SET SQL_MODE='';
+
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+ SET @x = 5/0;
+
+SET SQL_MODE='traditional';
+
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+ SET @x = 5/0;
+
+SET @x=1;
+INSERT INTO t1 VALUES (@x);
+SELECT @x;
+
+SET @x=2;
+UPDATE t1 SET i1 = @x;
+SELECT @x;
+
+SET SQL_MODE='';
+
+SET @x=3;
+INSERT INTO t1 VALUES (@x);
+SELECT @x;
+
+SET @x=4;
+UPDATE t1 SET i1 = @x;
+SELECT @x;
+
+SET @@sql_mode=@save_sql_mode;
+
+DROP TRIGGER t1_ai;
+DROP TRIGGER t1_au;
+DROP TABLE t1;
+
+
+#
+# Test for bug #14635 Accept NEW.x as INOUT parameters to stored
+# procedures from within triggers
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+--enable_warnings
+
+CREATE TABLE t1 (i1 INT);
+
+# Check that NEW.x pseudo variable is accepted as INOUT and OUT
+# parameter to stored routine.
+INSERT INTO t1 VALUES (3);
+CREATE PROCEDURE p1(OUT i1 INT) DETERMINISTIC NO SQL SET i1 = 5;
+CREATE PROCEDURE p2(INOUT i1 INT) DETERMINISTIC NO SQL SET i1 = i1 * 7;
+delimiter //;
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+ CALL p1(NEW.i1);
+ CALL p2(NEW.i1);
+END//
+delimiter ;//
+UPDATE t1 SET i1 = 11 WHERE i1 = 3;
+DROP TRIGGER t1_bu;
+DROP PROCEDURE p2;
+DROP PROCEDURE p1;
+
+# Check that OLD.x pseudo variable is not accepted as INOUT and OUT
+# parameter to stored routine.
+INSERT INTO t1 VALUES (13);
+CREATE PROCEDURE p1(OUT i1 INT) DETERMINISTIC NO SQL SET @a = 17;
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+ CALL p1(OLD.i1);
+--error ER_SP_NOT_VAR_ARG
+UPDATE t1 SET i1 = 19 WHERE i1 = 13;
+DROP TRIGGER t1_bu;
+DROP PROCEDURE p1;
+
+INSERT INTO t1 VALUES (23);
+CREATE PROCEDURE p1(INOUT i1 INT) DETERMINISTIC NO SQL SET @a = i1 * 29;
+CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
+ CALL p1(OLD.i1);
+--error ER_SP_NOT_VAR_ARG
+UPDATE t1 SET i1 = 31 WHERE i1 = 23;
+DROP TRIGGER t1_bu;
+DROP PROCEDURE p1;
+
+# Check that NEW.x pseudo variable is read-only in the AFTER TRIGGER.
+INSERT INTO t1 VALUES (37);
+CREATE PROCEDURE p1(OUT i1 INT) DETERMINISTIC NO SQL SET @a = 41;
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+--error ER_SP_NOT_VAR_ARG
+UPDATE t1 SET i1 = 43 WHERE i1 = 37;
+DROP TRIGGER t1_au;
+DROP PROCEDURE p1;
+
+INSERT INTO t1 VALUES (47);
+CREATE PROCEDURE p1(INOUT i1 INT) DETERMINISTIC NO SQL SET @a = i1 * 49;
+CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
+ CALL p1(NEW.i1);
+--error ER_SP_NOT_VAR_ARG
+UPDATE t1 SET i1 = 51 WHERE i1 = 47;
+DROP TRIGGER t1_au;
+DROP PROCEDURE p1;
+
+# Post requisite.
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug #18005: Creating a trigger on mysql.event leads to server crash on
+# scheduler startup
+#
+# Bug #18361: Triggers on mysql.user table cause server crash
+#
+# We don't allow triggers on the mysql schema
+delimiter |;
+--error ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+create trigger wont_work after update on mysql.user for each row
+begin
+ set @a:= 1;
+end|
+# Try when we're already using the mysql schema
+use mysql|
+--error ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+create trigger wont_work after update on event for each row
+begin
+ set @a:= 1;
+end|
+use test|
+delimiter ;|
+
+
+#
+# Test for BUG#16899: Possible buffer overflow in handling of DEFINER-clause.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+
+CREATE TABLE t1(c INT);
+CREATE TABLE t2(c INT);
+
+--error ER_WRONG_STRING_LENGTH
+CREATE DEFINER=1234567890abcdefGHIKL@localhost
+ TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
+
+--error ER_WRONG_STRING_LENGTH
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+ TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW SET @a = 2;
+
+# Cleanup.
+
+DROP TABLE t1;
+DROP TABLE t2;
+
+#
+# Bug#20028 Function with select return no data
+#
+
+--disable_warnings
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+drop table if exists t4;
+--enable_warnings
+
+SET @save_sql_mode=@@sql_mode;
+
+delimiter |;
+SET sql_mode='TRADITIONAL'|
+create table t1 (id int(10) not null primary key, v int(10) )|
+create table t2 (id int(10) not null primary key, v int(10) )|
+create table t3 (id int(10) not null primary key, v int(10) )|
+create table t4 (c int)|
+
+create trigger t4_bi before insert on t4 for each row set @t4_bi_called:=1|
+create trigger t4_bu before update on t4 for each row set @t4_bu_called:=1|
+
+insert into t1 values(10, 10)|
+set @a:=1/0|
+select 1/0 from t1|
+
+create trigger t1_bi before insert on t1 for each row set @a:=1/0|
+
+insert into t1 values(20, 20)|
+
+drop trigger t1_bi|
+create trigger t1_bi before insert on t1 for each row
+begin
+ insert into t2 values (new.id, new.v);
+ update t2 set v=v+1 where id= new.id;
+ replace t3 values (new.id, 0);
+ update t2, t3 set t2.v=new.v, t3.v=new.v where t2.id=t3.id;
+ create temporary table t5 select * from t1;
+ delete from t5;
+ insert into t5 select * from t1;
+ insert into t4 values (0);
+ set @check= (select count(*) from t5);
+ update t4 set c= @check;
+ drop temporary table t5;
+
+ set @a:=1/0;
+end|
+
+set @check=0, @t4_bi_called=0, @t4_bu_called=0|
+insert into t1 values(30, 30)|
+select @check, @t4_bi_called, @t4_bu_called|
+
+delimiter ;|
+
+SET @@sql_mode=@save_sql_mode;
+
+drop table t1;
+drop table t2;
+drop table t3;
+drop table t4;
+
+#
+# Bug#20670 "UPDATE using key and invoking trigger that modifies
+# this key does not stop"
+#
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (i int, j int key);
+insert into t1 values (1,1), (2,2), (3,3);
+create trigger t1_bu before update on t1 for each row
+ set new.j = new.j + 10;
+# This should not work indefinitely and should cause
+# expected result
+update t1 set i= i+ 10 where j > 2;
+select * from t1;
+drop table t1;
+
+#
+# Bug#23556 TRUNCATE TABLE still maps to DELETE
+#
+CREATE TABLE t1 (a INT PRIMARY KEY);
+CREATE TABLE t2 (a INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+
+CREATE TRIGGER trg_t1 BEFORE DELETE on t1 FOR EACH ROW
+ INSERT INTO t2 VALUES (OLD.a);
+
+FLUSH STATUS;
+TRUNCATE t1;
+SHOW STATUS LIKE 'handler_delete';
+SELECT COUNT(*) FROM t2;
+
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+DELETE FROM t2;
+
+FLUSH STATUS;
+DELETE FROM t1;
+SHOW STATUS LIKE 'handler_delete';
+SELECT COUNT(*) FROM t2;
+
+DROP TRIGGER trg_t1;
+DROP TABLE t1,t2;
+
+#
+# Bug #23651 "Server crashes when trigger which uses stored function
+# invoked from different connections".
+#
+--disable_warnings
+drop table if exists t1;
+drop function if exists f1;
+--enable_warnings
+create table t1 (i int);
+create function f1() returns int return 10;
+create trigger t1_bi before insert on t1 for each row set @a:= f1() + 10;
+insert into t1 values ();
+select @a;
+connection addconroot1;
+insert into t1 values ();
+select @a;
+connection default;
+drop table t1;
+drop function f1;
+
+#
+# Bug#23703: DROP TRIGGER needs an IF EXISTS
+#
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1(a int, b varchar(50));
+
+-- error ER_TRG_DOES_NOT_EXIST
+drop trigger not_a_trigger;
+
+drop trigger if exists not_a_trigger;
+
+create trigger t1_bi before insert on t1
+for each row set NEW.b := "In trigger t1_bi";
+
+insert into t1 values (1, "a");
+drop trigger if exists t1_bi;
+insert into t1 values (2, "b");
+drop trigger if exists t1_bi;
+insert into t1 values (3, "c");
+
+select * from t1;
+
+drop table t1;
+
+#
+# Bug#25398: crash when a trigger contains a SELECT with
+# trigger fields in the select list under DISTINCT
+#
+
+CREATE TABLE t1 (
+ id int NOT NULL DEFAULT '0',
+ a varchar(10) NOT NULL,
+ b varchar(10),
+ c varchar(10),
+ d timestamp NOT NULL,
+ PRIMARY KEY (id, a)
+);
+
+CREATE TABLE t2 (
+ fubar_id int unsigned NOT NULL DEFAULT '0',
+ last_change_time datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (fubar_id)
+);
+
+DELIMITER |;
+
+CREATE TRIGGER fubar_change
+ AFTER UPDATE ON t1
+ FOR EACH ROW
+ BEGIN
+ INSERT INTO t2 (fubar_id, last_change_time)
+ SELECT DISTINCT NEW.id AS fubar_id, NOW() AS last_change_time
+ FROM t1 WHERE (id = NEW.id) AND (OLD.c != NEW.c)
+ ON DUPLICATE KEY UPDATE
+ last_change_time =
+ IF((fubar_id = NEW.id)AND(OLD.c != NEW.c),NOW(),last_change_time);
+ END
+|
+
+DELIMITER ;|
+
+INSERT INTO t1 (id,a, b,c,d) VALUES
+ (1,'a','b','c',now()),(2,'a','b','c',now());
+
+UPDATE t1 SET c='Bang!' WHERE id=1;
+
+SELECT fubar_id FROM t2;
+
+DROP TABLE t1,t2;
+
+#
+# Bug#21285 (Incorrect message error deleting records in a table with a
+# trigger for inserting)
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS bug21825_A;
+DROP TABLE IF EXISTS bug21825_B;
+--enable_warnings
+
+CREATE TABLE bug21825_A (id int(10));
+CREATE TABLE bug21825_B (id int(10));
+
+delimiter //;
+
+CREATE TRIGGER trgA AFTER INSERT ON bug21825_A
+FOR EACH ROW
+BEGIN
+ INSERT INTO bug21825_B (id) values (1);
+END//
+delimiter ;//
+
+INSERT INTO bug21825_A (id) VALUES (10);
+INSERT INTO bug21825_A (id) VALUES (20);
+
+DROP TABLE bug21825_B;
+
+# Must pass, the missing table in the insert trigger should not matter.
+DELETE FROM bug21825_A WHERE id = 20;
+
+DROP TABLE bug21825_A;
+
+#
+# Bug#22580 (DROP TABLE in nested stored procedure causes strange dependancy
+# error)
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS bug22580_t1;
+DROP PROCEDURE IF EXISTS bug22580_proc_1;
+DROP PROCEDURE IF EXISTS bug22580_proc_2;
+--enable_warnings
+
+CREATE TABLE bug22580_t1 (a INT, b INT);
+
+DELIMITER ||;
+
+CREATE PROCEDURE bug22580_proc_2()
+BEGIN
+ DROP TABLE IF EXISTS bug22580_tmp;
+ CREATE TEMPORARY TABLE bug22580_tmp (a INT);
+ DROP TABLE bug22580_tmp;
+END||
+
+CREATE PROCEDURE bug22580_proc_1()
+BEGIN
+ CALL bug22580_proc_2();
+END||
+
+CREATE TRIGGER t1bu BEFORE UPDATE ON bug22580_t1
+FOR EACH ROW
+BEGIN
+ CALL bug22580_proc_1();
+END||
+
+DELIMITER ;||
+
+# Must pass, the actions of the update trigger should not matter
+INSERT INTO bug22580_t1 VALUES (1,1);
+
+DROP TABLE bug22580_t1;
+DROP PROCEDURE bug22580_proc_1;
+DROP PROCEDURE bug22580_proc_2;
+
+#
+# Bug#27006: AFTER UPDATE triggers not fired with INSERT ... ON DUPLICATE
+#
+--disable_warnings
+DROP TRIGGER IF EXISTS trg27006_a_update;
+DROP TRIGGER IF EXISTS trg27006_a_insert;
+--enable_warnings
+
+CREATE TABLE t1 (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `val` varchar(10) NOT NULL,
+ PRIMARY KEY (`id`)
+);
+CREATE TABLE t2 like t1;
+DELIMITER |;
+
+CREATE TRIGGER trg27006_a_insert AFTER INSERT ON t1 FOR EACH ROW
+BEGIN
+ insert into t2 values (NULL,new.val);
+END |
+CREATE TRIGGER trg27006_a_update AFTER UPDATE ON t1 FOR EACH ROW
+BEGIN
+ insert into t2 values (NULL,new.val);
+END |
+DELIMITER ;|
+
+INSERT INTO t1(val) VALUES ('test1'),('test2');
+SELECT * FROM t1;
+SELECT * FROM t2;
+INSERT INTO t1 VALUES (2,'test2') ON DUPLICATE KEY UPDATE val=VALUES(val);
+INSERT INTO t1 VALUES (2,'test3') ON DUPLICATE KEY UPDATE val=VALUES(val);
+INSERT INTO t1 VALUES (3,'test4') ON DUPLICATE KEY UPDATE val=VALUES(val);
+SELECT * FROM t1;
+SELECT * FROM t2;
+DROP TRIGGER trg27006_a_insert;
+DROP TRIGGER trg27006_a_update;
+drop table t1,t2;
+
+#
+# Bug #20903 "Crash when using CREATE TABLE .. SELECT and triggers"
+#
+
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+create table t1 (i int);
+create trigger t1_bi before insert on t1 for each row set new.i = 7;
+create trigger t1_ai after insert on t1 for each row set @a := 7;
+create table t2 (j int);
+insert into t2 values (1), (2);
+set @a:="";
+create table if not exists t1 select * from t2;
+select * from t1;
+select @a;
+# Let us check that trigger that involves table also works ok.
+drop trigger t1_bi;
+drop trigger t1_ai;
+create table t3 (isave int);
+create trigger t1_bi before insert on t1 for each row insert into t3 values (new.i);
+create table if not exists t1 select * from t2;
+select * from t1;
+select * from t3;
+drop table t1, t2, t3;
+
+disconnect addconroot1;
+disconnect addconroot2;
+disconnect addconwithoutdb;
+#
+# Bug #26162: Trigger DML ignores low_priority_updates setting
+#
+CREATE TABLE t1 (id INTEGER);
+CREATE TABLE t2 (id INTEGER);
+
+INSERT INTO t2 VALUES (1),(2);
+
+# trigger that produces the high priority insert, but should be low, adding
+# LOW_PRIORITY fixes this
+CREATE TRIGGER t1_test AFTER INSERT ON t1 FOR EACH ROW
+ INSERT INTO t2 VALUES (new.id);
+
+CONNECT (rl_holder, localhost, root,,);
+CONNECT (rl_acquirer, localhost, root,,);
+CONNECT (wl_acquirer, localhost, root,,);
+CONNECT (rl_contender, localhost, root,,);
+
+CONNECTION rl_holder;
+SELECT GET_LOCK('B26162',120);
+
+CONNECTION rl_acquirer;
+--send
+SELECT 'rl_acquirer', GET_LOCK('B26162',120), id FROM t2 WHERE id = 1;
+
+CONNECTION wl_acquirer;
+SET SESSION LOW_PRIORITY_UPDATES=1;
+SET GLOBAL LOW_PRIORITY_UPDATES=1;
+#need to wait for rl_acquirer to lock on the B26162 lock
+sleep 2;
+--send
+INSERT INTO t1 VALUES (5);
+
+CONNECTION rl_contender;
+# must not "see" the row inserted by the INSERT (as it must run before the
+# INSERT)
+--send
+SELECT 'rl_contender', id FROM t2 WHERE id > 1;
+
+CONNECTION rl_holder;
+#need to wait for wl_acquirer and rl_contender to lock on t2
+sleep 2;
+SELECT RELEASE_LOCK('B26162');
+
+CONNECTION rl_acquirer;
+--reap
+SELECT RELEASE_LOCK('B26162');
+CONNECTION wl_acquirer;
+--reap
+CONNECTION rl_contender;
+--reap
+
+CONNECTION default;
+DISCONNECT rl_acquirer;
+DISCONNECT wl_acquirer;
+DISCONNECT rl_contender;
+DISCONNECT rl_holder;
+
+DROP TRIGGER t1_test;
+DROP TABLE t1,t2;
+SET SESSION LOW_PRIORITY_UPDATES=DEFAULT;
+SET GLOBAL LOW_PRIORITY_UPDATES=DEFAULT;
+--echo
+--echo Bug#28502 Triggers that update another innodb table will block
+--echo on X lock unnecessarily
+--echo
+--echo Ensure we do not open and lock tables for triggers we do not fire.
+--echo
+--disable_warnings
+drop table if exists t1, t2;
+drop trigger if exists trg_bug28502_au;
+--enable_warnings
+
+create table t1 (id int, count int);
+create table t2 (id int);
+delimiter |;
+
+create trigger trg_bug28502_au before update on t2
+for each row
+begin
+ if (new.id is not null) then
+ update t1 set count= count + 1 where id = old.id;
+ end if;
+end|
+
+delimiter ;|
+insert into t1 (id, count) values (1, 0);
+
+lock table t1 write;
+
+--connect (connection_insert, localhost, root, , test, , )
+connection connection_insert;
+# Is expected to pass.
+insert into t2 set id=1;
+connection default;
+unlock tables;
+update t2 set id=1 where id=1;
+select * from t1;
+select * from t2;
+# Will drop the trigger
+drop table t1, t2;
+disconnect connection_insert;
+--echo
+--echo Additionally, provide test coverage for triggers and
+--echo all MySQL data changing commands.
+--echo
+--disable_warnings
+drop table if exists t1, t2, t1_op_log;
+drop view if exists v1;
+drop trigger if exists trg_bug28502_bi;
+drop trigger if exists trg_bug28502_ai;
+drop trigger if exists trg_bug28502_bu;
+drop trigger if exists trg_bug28502_au;
+drop trigger if exists trg_bug28502_bd;
+drop trigger if exists trg_bug28502_ad;
+--enable_warnings
+create table t1 (id int primary key auto_increment, operation varchar(255));
+create table t2 (id int primary key);
+create table t1_op_log(operation varchar(255));
+create view v1 as select * from t1;
+create trigger trg_bug28502_bi before insert on t1
+for each row
+ insert into t1_op_log (operation)
+ values (concat("Before INSERT, new=", new.operation));
+
+create trigger trg_bug28502_ai after insert on t1
+for each row
+ insert into t1_op_log (operation)
+ values (concat("After INSERT, new=", new.operation));
+
+create trigger trg_bug28502_bu before update on t1
+for each row
+ insert into t1_op_log (operation)
+ values (concat("Before UPDATE, new=", new.operation,
+ ", old=", old.operation));
+
+create trigger trg_bug28502_au after update on t1
+for each row
+ insert into t1_op_log (operation)
+ values (concat("After UPDATE, new=", new.operation,
+ ", old=", old.operation));
+
+create trigger trg_bug28502_bd before delete on t1
+for each row
+ insert into t1_op_log (operation)
+ values (concat("Before DELETE, old=", old.operation));
+
+create trigger trg_bug28502_ad after delete on t1
+for each row
+ insert into t1_op_log (operation)
+ values (concat("After DELETE, old=", old.operation));
+
+insert into t1 (operation) values ("INSERT");
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+update t1 set operation="UPDATE" where id=@id;
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+delete from t1 where id=@id;
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+insert into t1 (id, operation) values
+(NULL, "INSERT ON DUPLICATE KEY UPDATE, inserting a new key")
+on duplicate key update id=NULL, operation="Should never happen";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+insert into t1 (id, operation) values
+(@id, "INSERT ON DUPLICATE KEY UPDATE, the key value is the same")
+on duplicate key update id=NULL,
+operation="INSERT ON DUPLICATE KEY UPDATE, updating the duplicate";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+replace into t1 values (NULL, "REPLACE, inserting a new key");
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+replace into t1 values (@id, "REPLACE, deleting the duplicate");
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+create table if not exists t1
+select NULL, "CREATE TABLE ... SELECT, inserting a new key";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+create table if not exists t1 replace
+select @id, "CREATE TABLE ... REPLACE SELECT, deleting a duplicate key";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+insert into t1 (id, operation)
+select NULL, "INSERT ... SELECT, inserting a new key";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+insert into t1 (id, operation)
+select @id,
+"INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate"
+on duplicate key update id=NULL,
+operation="INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+replace into t1 (id, operation)
+select NULL, "REPLACE ... SELECT, inserting a new key";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+replace into t1 (id, operation)
+select @id, "REPLACE ... SELECT, deleting a duplicate";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+insert into t1 (id, operation) values (1, "INSERT for multi-DELETE");
+insert into t2 (id) values (1);
+
+delete t1.*, t2.* from t1, t2 where t1.id=1;
+
+select * from t1;
+select * from t2;
+select * from t1_op_log;
+truncate t1;
+truncate t2;
+truncate t1_op_log;
+
+insert into t1 (id, operation) values (1, "INSERT for multi-UPDATE");
+insert into t2 (id) values (1);
+update t1, t2 set t1.id=2, operation="multi-UPDATE" where t1.id=1;
+update t1, t2
+set t2.id=3, operation="multi-UPDATE, SET for t2, but the trigger is fired" where t1.id=2;
+
+select * from t1;
+select * from t2;
+select * from t1_op_log;
+truncate table t1;
+truncate table t2;
+truncate table t1_op_log;
+
+--echo
+--echo Now do the same but use a view instead of the base table.
+--echo
+
+insert into v1 (operation) values ("INSERT");
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+update v1 set operation="UPDATE" where id=@id;
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+delete from v1 where id=@id;
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+insert into v1 (id, operation) values
+(NULL, "INSERT ON DUPLICATE KEY UPDATE, inserting a new key")
+on duplicate key update id=NULL, operation="Should never happen";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+insert into v1 (id, operation) values
+(@id, "INSERT ON DUPLICATE KEY UPDATE, the key value is the same")
+on duplicate key update id=NULL,
+operation="INSERT ON DUPLICATE KEY UPDATE, updating the duplicate";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+replace into v1 values (NULL, "REPLACE, inserting a new key");
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+replace into v1 values (@id, "REPLACE, deleting the duplicate");
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+create table if not exists v1
+select NULL, "CREATE TABLE ... SELECT, inserting a new key";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+create table if not exists v1 replace
+select @id, "CREATE TABLE ... REPLACE SELECT, deleting a duplicate key";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+insert into v1 (id, operation)
+select NULL, "INSERT ... SELECT, inserting a new key";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+insert into v1 (id, operation)
+select @id,
+"INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate"
+on duplicate key update id=NULL,
+operation="INSERT ... SELECT ... ON DUPLICATE KEY UPDATE, updating a duplicate";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+replace into v1 (id, operation)
+select NULL, "REPLACE ... SELECT, inserting a new key";
+
+set @id=last_insert_id();
+
+select * from t1;
+select * from t1_op_log;
+truncate t1_op_log;
+
+replace into v1 (id, operation)
+select @id, "REPLACE ... SELECT, deleting a duplicate";
+
+select * from t1;
+select * from t1_op_log;
+truncate t1;
+truncate t1_op_log;
+
+insert into v1 (id, operation) values (1, "INSERT for multi-DELETE");
+insert into t2 (id) values (1);
+
+delete v1.*, t2.* from v1, t2 where v1.id=1;
+
+select * from t1;
+select * from t2;
+select * from t1_op_log;
+truncate t1;
+truncate t2;
+truncate t1_op_log;
+
+insert into v1 (id, operation) values (1, "INSERT for multi-UPDATE");
+insert into t2 (id) values (1);
+update v1, t2 set v1.id=2, operation="multi-UPDATE" where v1.id=1;
+update v1, t2
+set t2.id=3, operation="multi-UPDATE, SET for t2, but the trigger is fired" where v1.id=2;
+
+select * from t1;
+select * from t2;
+select * from t1_op_log;
+
+drop view v1;
+drop table t1, t2, t1_op_log;
+
+#
+# TODO: test LOAD DATA INFILE
+#
+--echo
+--echo Bug#27248 Triggers: error if insert affects temporary table
+--echo
+--echo The bug was fixed by the fix for Bug#26141
+--echo
+--disable_warnings
+drop table if exists t1;
+drop temporary table if exists t2;
+--enable_warnings
+create table t1 (s1 int);
+create temporary table t2 (s1 int);
+create trigger t1_bi before insert on t1 for each row insert into t2 values (0);
+create trigger t1_bd before delete on t1 for each row delete from t2;
+insert into t1 values (0);
+insert into t1 values (0);
+select * from t1;
+select * from t2;
+delete from t1;
+select * from t1;
+select * from t2;
+drop table t1;
+drop temporary table t2;
+--echo End of 5.0 tests
diff --git a/mysql-test/t/truncate.test b/mysql-test/t/truncate.test
index f806bd8ec17..ba5364bd324 100644
--- a/mysql-test/t/truncate.test
+++ b/mysql-test/t/truncate.test
@@ -52,3 +52,20 @@ SELECT * from t1;
drop table t1;
# End of 4.1 tests
+
+# Test for Bug#5507 "TRUNCATE should work with views"
+#
+# when it'll be fixed, the error should become 1347
+# (test.v1' is not BASE TABLE)
+#
+
+create table t1 (s1 int);
+insert into t1 (s1) values (1), (2), (3), (4), (5);
+create view v1 as select * from t1;
+--error 1146
+truncate table v1;
+drop view v1;
+drop table t1;
+
+# End of 5.0 tests
+
diff --git a/mysql-test/t/type_binary.test b/mysql-test/t/type_binary.test
new file mode 100644
index 00000000000..91eba9b328e
--- /dev/null
+++ b/mysql-test/t/type_binary.test
@@ -0,0 +1,102 @@
+# check 0x00 padding
+create table t1 (s1 binary(3));
+insert into t1 values (0x61), (0x6120), (0x612020);
+select hex(s1) from t1;
+drop table t1;
+
+# check that 0x00 is not stripped in val_str
+create table t1 (s1 binary(2), s2 varbinary(2));
+insert into t1 values (0x4100,0x4100);
+select length(concat('*',s1,'*',s2,'*')) from t1;
+delete from t1;
+insert into t1 values (0x4120,0x4120);
+select length(concat('*',s1,'*',s2,'*')) from t1;
+drop table t1;
+
+# check that trailing 0x00 and 0x20 do matter on comparison
+create table t1 (s1 varbinary(20), s2 varbinary(20));
+show create table t1;
+insert into t1 values (0x41,0x4100),(0x41,0x4120),(0x4100,0x4120);
+select hex(s1), hex(s2) from t1;
+select count(*) from t1 where s1 < s2;
+drop table t1;
+
+# check that trailing 0x00 do matter on filesort
+create table t1 (s1 varbinary(2), s2 varchar(1));
+insert into t1 values (0x41,'a'), (0x4100,'b'), (0x41,'c'), (0x4100,'d');
+select hex(s1),s2 from t1 order by s1,s2;
+drop table t1;
+
+# check that 0x01 is padded to 0x0100 and thus we get a duplicate value
+create table t1 (s1 binary(2) primary key);
+insert into t1 values (0x01);
+insert into t1 values (0x0120);
+--error 1062
+insert into t1 values (0x0100);
+select hex(s1) from t1 order by s1;
+# check index search
+select hex(s1) from t1 where s1=0x01;
+select hex(s1) from t1 where s1=0x0120;
+select hex(s1) from t1 where s1=0x0100;
+select count(distinct s1) from t1;
+alter table t1 drop primary key;
+# check non-indexed search
+select hex(s1) from t1 where s1=0x01;
+select hex(s1) from t1 where s1=0x0120;
+select hex(s1) from t1 where s1=0x0100;
+select count(distinct s1) from t1;
+drop table t1;
+
+# check that 0x01 is not padded, and all three values are unique
+create table t1 (s1 varbinary(2) primary key);
+insert into t1 values (0x01);
+insert into t1 values (0x0120);
+insert into t1 values (0x0100);
+select hex(s1) from t1 order by s1;
+# check index search
+select hex(s1) from t1 where s1=0x01;
+select hex(s1) from t1 where s1=0x0120;
+select hex(s1) from t1 where s1=0x0100;
+select count(distinct s1) from t1;
+alter table t1 drop primary key;
+# check non-indexed search
+select hex(s1) from t1 where s1=0x01;
+select hex(s1) from t1 where s1=0x0120;
+select hex(s1) from t1 where s1=0x0100;
+select count(distinct s1) from t1;
+drop table t1;
+
+# check that cast appends trailing zeros
+select hex(cast(0x10 as binary(2)));
+
+#
+# Bug #14299: BINARY space truncation should cause warning or error
+#
+create table t1 (b binary(2), vb varbinary(2));
+insert into t1 values(0x4120, 0x4120);
+insert into t1 values(0x412020, 0x412020);
+drop table t1;
+create table t1 (c char(2), vc varchar(2));
+insert into t1 values(0x4120, 0x4120);
+insert into t1 values(0x412020, 0x412020);
+drop table t1;
+
+set @old_sql_mode= @@sql_mode, sql_mode= 'traditional';
+create table t1 (b binary(2), vb varbinary(2));
+insert into t1 values(0x4120, 0x4120);
+--error ER_DATA_TOO_LONG
+insert into t1 values(0x412020, NULL);
+--error ER_DATA_TOO_LONG
+insert into t1 values(NULL, 0x412020);
+drop table t1;
+set @@sql_mode= @old_sql_mode;
+
+#
+# Bug#14171: Wrong default value for a BINARY field
+#
+create table t1(f1 int, f2 binary(2) not null, f3 char(2) not null);
+insert into t1 set f1=1;
+select hex(f2), hex(f3) from t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_bit.test b/mysql-test/t/type_bit.test
new file mode 100644
index 00000000000..4978f55d776
--- /dev/null
+++ b/mysql-test/t/type_bit.test
@@ -0,0 +1,321 @@
+#
+# testing of the BIT column type
+#
+
+select 0 + b'1';
+select 0 + b'0';
+select 0 + b'000001';
+select 0 + b'000011';
+select 0 + b'000101';
+select 0 + b'000000';
+select 0 + b'10000000';
+select 0 + b'11111111';
+select 0 + b'10000001';
+select 0 + b'1000000000000000';
+select 0 + b'1111111111111111';
+select 0 + b'1000000000000001';
+
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+
+--error 1439
+create table t1 (a bit(65));
+
+create table t1 (a bit(0));
+show create table t1;
+drop table t1;
+
+create table t1 (a bit(64));
+insert into t1 values
+(b'1111111111111111111111111111111111111111111111111111111111111111'),
+(b'1000000000000000000000000000000000000000000000000000000000000000'),
+(b'0000000000000000000000000000000000000000000000000000000000000001'),
+(b'1010101010101010101010101010101010101010101010101010101010101010'),
+(b'0101010101010101010101010101010101010101010101010101010101010101');
+select hex(a) from t1;
+drop table t1;
+
+create table t1 (a bit);
+insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001');
+select hex(a) from t1;
+--error 1062
+alter table t1 add unique (a);
+drop table t1;
+
+create table t1 (a bit(2));
+insert into t1 values (b'00'), (b'01'), (b'10'), (b'100');
+select a+0 from t1;
+alter table t1 add key (a);
+explain select a+0 from t1;
+select a+0 from t1;
+drop table t1;
+
+create table t1 (a bit(7), b bit(9), key(a, b));
+insert into t1 values
+(94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),
+(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),
+(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),
+(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),
+(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),
+(44, 307), (68, 454), (57, 135);
+explain select a+0 from t1;
+select a+0 from t1;
+explain select b+0 from t1;
+select b+0 from t1;
+explain select a+0, b+0 from t1;
+select a+0, b+0 from t1;
+explain select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+explain select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+set @@max_length_for_sort_data=0;
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+select hex(min(a)) from t1;
+select hex(min(b)) from t1;
+select hex(min(a)), hex(max(a)), hex(min(b)), hex(max(b)) from t1;
+drop table t1;
+
+create table t1 (a int not null, b bit, c bit(9), key(a, b, c));
+insert into t1 values
+(4, NULL, 1), (4, 0, 3), (2, 1, 4), (1, 1, 100), (4, 0, 23), (4, 0, 54),
+(56, 0, 22), (4, 1, 100), (23, 0, 1), (4, 0, 34);
+select a+0, b+0, c+0 from t1;
+select hex(min(b)) from t1 where a = 4;
+select hex(min(c)) from t1 where a = 4 and b = 0;
+select hex(max(b)) from t1;
+select a+0, b+0, c+0 from t1 where a = 4 and b = 0 limit 2;
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1;
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1 and c=100;
+select a+0, b+0, c+0 from t1 order by b desc;
+select a+0, b+0, c+0 from t1 order by c;
+drop table t1;
+
+create table t1(a bit(2), b bit(2));
+insert into t1 (a) values (0x01), (0x03), (0x02);
+update t1 set b= concat(a);
+select a+0, b+0 from t1;
+drop table t1;
+
+# Some magic numbers
+
+create table t1 (a bit(7), key(a));
+insert into t1 values (44), (57);
+select a+0 from t1;
+drop table t1;
+
+#
+# Test conversion to and from strings
+#
+create table t1 (a bit(3), b bit(12));
+insert into t1 values (7,(1<<12)-2), (0x01,0x01ff);
+select hex(a),hex(b) from t1;
+select hex(concat(a)),hex(concat(b)) from t1;
+drop table t1;
+
+#
+# Bug #9571: problem with primary key creation
+#
+
+create table t1(a int, b bit not null);
+alter table t1 add primary key (a);
+drop table t1;
+
+#
+# myisam <-> heap
+#
+
+create table t1 (a bit(19), b bit(5));
+insert into t1 values (1000, 10), (3, 8), (200, 6), (2303, 2), (12345, 4), (1, 0);
+select a+0, b+0 from t1;
+alter table t1 engine=heap;
+select a+0, b+0 from t1;
+alter table t1 add key(a, b);
+select a+0, b+0 from t1;
+alter table t1 engine=myisam;
+select a+0, b+0 from t1;
+create table t2 engine=heap select * from t1;
+select a+0, b+0 from t2;
+drop table t1;
+create table t1 select * from t2;
+select a+0, b+0 from t1;
+drop table t1, t2;
+
+#
+# Bug #10179: problem with NULLs and default values
+#
+
+create table t1 (a int, b time, c tinyint, d bool, e char(10), f bit(1),
+ g bit(1) NOT NULL default 1, h char(1) default 'a');
+insert into t1 set a=1;
+select hex(g), h from t1;
+drop table t1;
+
+create table t1 (a int, b time, c tinyint, d bool, e char(10), f bit(1),
+ g bit(1) NOT NULL default 1);
+insert into t1 set a=1;
+select hex(g) from t1;
+drop table t1;
+
+create table t1 (a int, b time, c tinyint, d bool, e char(10), f bit(1),
+ h char(1) default 'a') engine=myisam;
+insert into t1 set a=1;
+select h from t1;
+drop table t1;
+
+#
+# Bug #10539
+#
+
+create table t1 (a bit(8)) engine=heap;
+insert into t1 values ('1111100000');
+select a+0 from t1;
+drop table t1;
+
+#
+# Bug #11091: union
+#
+
+create table t1 (a bit(7));
+insert into t1 values (120), (0), (111);
+select a+0 from t1 union select a+0 from t1;
+select a+0 from t1 union select NULL;
+select NULL union select a+0 from t1;
+create table t2 select a from t1 union select a from t1;
+select a+0 from t2;
+show create table t2;
+drop table t1, t2;
+
+#
+# Bug #11572: view
+#
+
+create table t1 (id1 int(11), b1 bit(1));
+create table t2 (id2 int(11), b2 bit(1));
+insert into t1 values (1, 1), (2, 0), (3, 1);
+insert into t2 values (2, 1), (3, 0), (4, 0);
+create algorithm=undefined view v1 as
+ select b1+0, b2+0 from t1, t2 where id1 = id2 and b1 = 0
+ union
+ select b1+0, b2+0 from t1, t2 where id1 = id2 and b2 = 1;
+select * from v1;
+drop table t1, t2;
+drop view v1;
+
+#
+# Bug #10617: bulk-insert
+#
+
+create table t1(a bit(4));
+insert into t1(a) values (1), (2), (5), (4), (3);
+insert into t1 select * from t1;
+select a+0 from t1;
+drop table t1;
+
+#
+# join
+#
+
+create table t1 (a1 int(11), b1 bit(2));
+create table t2 (a2 int(11), b2 bit(2));
+insert into t1 values (1, 1), (2, 0), (3, 1), (4, 2);
+insert into t2 values (2, 1), (3, 0), (4, 1), (5, 2);
+select a1, a2, b1+0, b2+0 from t1 join t2 on a1 = a2;
+select a1, a2, b1+0, b2+0 from t1 join t2 on a1 = a2 order by a1;
+select a1, a2, b1+0, b2+0 from t1 join t2 on b1 = b2;
+select sum(a1), b1+0, b2+0 from t1 join t2 on b1 = b2 group by b1 order by 1;
+select 1 from t1 join t2 on b1 = b2 group by b1 order by 1;
+select b1+0,sum(b1), sum(b2) from t1 join t2 on b1 = b2 group by b1 order by 1;
+drop table t1, t2;
+
+#
+# Bug #13601: Wrong field length reported for BIT fields
+#
+create table t1 (a bit(7));
+insert into t1 values (0x60);
+--enable_metadata
+select * from t1;
+--disable_metadata
+drop table t1;
+
+#
+# Bug#15583: BIN()/OCT()/CONV() do not work with BIT values
+#
+create table bug15583(b BIT(8), n INT);
+insert into bug15583 values(128, 128);
+insert into bug15583 values(null, null);
+insert into bug15583 values(0, 0);
+insert into bug15583 values(255, 255);
+select hex(b), bin(b), oct(b), hex(n), bin(n), oct(n) from bug15583;
+select hex(b)=hex(n) as should_be_onetrue, bin(b)=bin(n) as should_be_onetrue, oct(b)=oct(n) as should_be_onetrue from bug15583;
+select hex(b + 0), bin(b + 0), oct(b + 0), hex(n), bin(n), oct(n) from bug15583;
+select conv(b, 10, 2), conv(b + 0, 10, 2) from bug15583;
+drop table bug15583;
+
+#
+# Bug #22271: data casting may affect data stored in the next column(s?)
+#
+
+create table t1(a bit(1), b smallint unsigned);
+insert into t1 (b, a) values ('2', '1');
+select hex(a), b from t1;
+drop table t1;
+
+#
+# type was not properly initalized, which caused key_copy to fail
+#
+
+create table t1(bit_field bit(2), int_field int, key a(bit_field));
+insert into t1 values (1,2);
+handler t1 open as t1;
+handler t1 read a=(1);
+handler t1 close;
+drop table t1;
+
+#
+# Bug #30219: GROUP BY a column of the BIT type
+#
+
+CREATE TABLE t1 (b BIT(2), a VARCHAR(5));
+INSERT INTO t1 (b, a) VALUES (1, "x"), (3, "zz"), (0, "y"), (3, "z");
+SELECT b+0, COUNT(DISTINCT a) FROM t1 GROUP BY b;
+DROP TABLE t1;
+
+CREATE TABLE t1 (a CHAR(5), b BIT(2));
+INSERT INTO t1 (b, a) VALUES (1, "x"), (3, "zz"), (0, "y"), (3, "z");
+SELECT b+0, COUNT(DISTINCT a) FROM t1 GROUP BY b;
+DROP TABLE t1;
+
+CREATE TABLE t1 (a INT, b BIT(2));
+INSERT INTO t1 (b, a) VALUES (1, 1), (3, 2), (0, 3), (3, 4);
+SELECT b+0, COUNT(DISTINCT a) FROM t1 GROUP BY b;
+DROP TABLE t1;
+
+#
+# Bug#30245: A wrong type of a BIT field is reported when grouped by it.
+#
+CREATE TABLE t1 (b BIT);
+INSERT INTO t1 (b) VALUES (1), (0);
+--enable_metadata
+--replace_column 1 #
+SELECT DISTINCT b FROM t1;
+--replace_column 1 #
+SELECT b FROM t1 GROUP BY b;
+--disable_metadata
+DROP TABLE t1;
+
+#
+# BUG#30324 Wrong query result for COUNT(DISTINCT(bit_column))
+#
+CREATE TABLE t1 (a int, b bit(2));
+INSERT INTO t1 VALUES (3, 2), (2, 3), (2, 0), (3, 2), (3, 1);
+SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a;
+DROP TABLE t1;
+
+create table t2 (a int, b bit(2), c char(10));
+INSERT INTO t2 VALUES (3, 2, 'two'), (2, 3, 'three'), (2, 0, 'zero'),
+ (3, 2, 'two'), (3, 1, 'one');
+SELECT COUNT(DISTINCT b,c) FROM t2 GROUP BY a;
+DROP TABLE t2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_bit_innodb.test b/mysql-test/t/type_bit_innodb.test
new file mode 100644
index 00000000000..dbca69d67f0
--- /dev/null
+++ b/mysql-test/t/type_bit_innodb.test
@@ -0,0 +1,147 @@
+--source include/have_innodb.inc
+#
+# testing of the BIT column type
+#
+
+select 0 + b'1';
+select 0 + b'0';
+select 0 + b'000001';
+select 0 + b'000011';
+select 0 + b'000101';
+select 0 + b'000000';
+select 0 + b'10000000';
+select 0 + b'11111111';
+select 0 + b'10000001';
+select 0 + b'1000000000000000';
+select 0 + b'1111111111111111';
+select 0 + b'1000000000000001';
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+--error 1439
+create table t1 (a bit(65)) engine=innodb;
+
+create table t1 (a bit(0)) engine=innodb;
+show create table t1;
+drop table t1;
+
+create table t1 (a bit(64)) engine=innodb;
+insert into t1 values
+(b'1111111111111111111111111111111111111111111111111111111111111111'),
+(b'1000000000000000000000000000000000000000000000000000000000000000'),
+(b'0000000000000000000000000000000000000000000000000000000000000001'),
+(b'1010101010101010101010101010101010101010101010101010101010101010'),
+(b'0101010101010101010101010101010101010101010101010101010101010101');
+select hex(a) from t1;
+drop table t1;
+
+create table t1 (a bit) engine=innodb;
+insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001');
+select hex(a) from t1;
+--error 1062
+alter table t1 add unique (a);
+drop table t1;
+
+create table t1 (a bit(2)) engine=innodb;
+insert into t1 values (b'00'), (b'01'), (b'10'), (b'100');
+select a+0 from t1;
+alter table t1 add key (a);
+explain select a+0 from t1;
+select a+0 from t1;
+drop table t1;
+
+create table t1 (a bit(7), b bit(9), key(a, b)) engine=innodb;
+insert into t1 values
+(94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),
+(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),
+(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),
+(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),
+(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),
+(44, 307), (68, 454), (57, 135);
+explain select a+0 from t1;
+select a+0 from t1;
+explain select b+0 from t1;
+select b+0 from t1;
+explain select a+0, b+0 from t1;
+select a+0, b+0 from t1;
+explain select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
+explain select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+set @@max_length_for_sort_data=0;
+select a+0, b+0 from t1 where a > 40 and a < 70 order by 2;
+select hex(min(a)) from t1;
+select hex(min(b)) from t1;
+select hex(min(a)), hex(max(a)), hex(min(b)), hex(max(b)) from t1;
+drop table t1;
+
+create table t1 (a int not null, b bit, c bit(9), key(a, b, c)) engine=innodb;
+insert into t1 values
+(4, NULL, 1), (4, 0, 3), (2, 1, 4), (1, 1, 100), (4, 0, 23), (4, 0, 54),
+(56, 0, 22), (4, 1, 100), (23, 0, 1), (4, 0, 34);
+select a+0, b+0, c+0 from t1;
+select hex(min(b)) from t1 where a = 4;
+select hex(min(c)) from t1 where a = 4 and b = 0;
+select hex(max(b)) from t1;
+select a+0, b+0, c+0 from t1 where a = 4 and b = 0 limit 2;
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1;
+select a+0, b+0, c+0 from t1 where a = 4 and b = 1 and c=100;
+select a+0, b+0, c+0 from t1 order by b desc;
+select a+0, b+0, c+0 from t1 order by c;
+drop table t1;
+
+create table t1(a bit(2), b bit(2)) engine=innodb;
+insert into t1 (a) values (0x01), (0x03), (0x02);
+update t1 set b= concat(a);
+select a+0, b+0 from t1;
+drop table t1;
+
+# Some magic numbers
+
+create table t1 (a bit(7), key(a)) engine=innodb;
+insert into t1 values (44), (57);
+select a+0 from t1;
+drop table t1;
+
+#
+# Test conversion to and from strings
+#
+create table t1 (a bit(3), b bit(12)) engine=innodb;
+insert into t1 values (7,(1<<12)-2), (0x01,0x01ff);
+select hex(a),hex(b) from t1;
+select hex(concat(a)),hex(concat(b)) from t1;
+drop table t1;
+
+#
+# Bug #9571: problem with primary key creation
+#
+
+create table t1(a int, b bit not null) engine=innodb;
+alter table t1 add primary key (a);
+drop table t1;
+
+#
+# altering tables
+#
+
+create table t1 (a bit, b bit(10)) engine=innodb;
+show create table t1;
+alter table t1 engine=heap;
+show create table t1;
+alter table t1 engine=innodb;
+show create table t1;
+drop table t1;
+
+#
+# Bug #13601: Wrong field length reported for BIT fields
+#
+create table t1 (a bit(7)) engine=innodb;
+insert into t1 values (0x60);
+--enable_metadata
+select * from t1;
+--disable_metadata
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test
index 2c3f4e5efce..ba9f374a24c 100644
--- a/mysql-test/t/type_blob.test
+++ b/mysql-test/t/type_blob.test
@@ -17,13 +17,13 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7;
CREATE TABLE t1 (a blob, b text, c blob(250), d text(70000), e text(70000000));
show columns from t1;
# PS doesn't give errors on prepare yet
---disable_ps_protocol
-CREATE TABLE t2 (a char(257), b varbinary(70000), c varchar(70000000));
---enable_ps_protocol
+CREATE TABLE t2 (a char(255), b varbinary(70000), c varchar(70000000));
+CREATE TABLE t4 (c varchar(65530) character set utf8 not null);
show columns from t2;
create table t3 (a long, b long byte);
show create TABLE t3;
-drop table t1,t2,t3;
+show create TABLE t4;
+drop table t1,t2,t3,t4;
#
# Check errors with blob
@@ -31,6 +31,10 @@ drop table t1,t2,t3;
--error 1074
CREATE TABLE t1 (a char(257) default "hello");
+--error 1074
+CREATE TABLE t2 (a char(256));
+--error 1074
+CREATE TABLE t1 (a varchar(70000) default "hello");
--error 1101
CREATE TABLE t2 (a blob default "hello");
@@ -63,9 +67,9 @@ select * from t1;
drop table t1;
#
-# test of blob, text, char and char binary
+# test of blob, text, char and varbinary
#
-create table t1 (t text,c char(10),b blob, d binary(10));
+create table t1 (t text,c char(10),b blob, d varbinary(10));
insert into t1 values (NULL,NULL,NULL,NULL);
insert into t1 values ("","","","");
insert into t1 values ("hello","hello","hello","hello");
@@ -300,25 +304,24 @@ drop table t1;
# Bug when blob is updated
#
-create table t1 (id integer auto_increment unique,imagem LONGBLOB not null);
+create table t1 (id integer auto_increment unique,imagem LONGBLOB not null default '');
insert into t1 (id) values (1);
# We have to clean up the path in the results for safe comparison
---replace_result $MYSQL_TEST_DIR ../..
-eval select
- charset(load_file('$MYSQL_TEST_DIR/std_data/words.dat')),
- collation(load_file('$MYSQL_TEST_DIR/std_data/words.dat')),
- coercibility(load_file('$MYSQL_TEST_DIR/std_data/words.dat'));
---replace_result $MYSQL_TEST_DIR ../..
-eval explain extended select
- charset(load_file('$MYSQL_TEST_DIR/std_data/words.dat')),
- collation(load_file('$MYSQL_TEST_DIR/std_data/words.dat')),
- coercibility(load_file('$MYSQL_TEST_DIR/std_data/words.dat'));
---replace_result $MYSQL_TEST_DIR ../..
-eval update t1 set imagem=load_file('$MYSQL_TEST_DIR/std_data/words.dat') where id=1;
+eval select
+ charset(load_file('../std_data_ln/words.dat')),
+ collation(load_file('../std_data_ln/words.dat')),
+ coercibility(load_file('../std_data_ln/words.dat'));
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval explain extended select
+ charset(load_file('$MYSQLTEST_VARDIR/std_data_ln/words.dat')),
+ collation(load_file('$MYSQLTEST_VARDIR/std_data_ln/words.dat')),
+ coercibility(load_file('$MYSQLTEST_VARDIR/std_data_ln/words.dat'));
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval update t1 set imagem=load_file('$MYSQLTEST_VARDIR/std_data_ln/words.dat') where id=1;
select if(imagem is null, "ERROR", "OK"),length(imagem) from t1 where id = 1;
drop table t1;
---replace_result $MYSQL_TEST_DIR ../..
-eval create table t1 select load_file('$MYSQL_TEST_DIR/std_data/words.dat') l;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval create table t1 select load_file('$MYSQLTEST_VARDIR/std_data_ln/words.dat') l;
# We mask out the Privileges column because it differs for embedded server
--replace_column 8 #
show full fields from t1;
@@ -326,10 +329,16 @@ drop table t1;
#
# Test blob's with end space (Bug #1651)
+# This is a bit changed since we now have true varchar
#
create table t1 (id integer primary key auto_increment, txt text not null, unique index txt_index (txt (20)));
+--error 1062
insert into t1 (txt) values ('Chevy'), ('Chevy ');
+--error 1062
+insert into t1 (txt) values ('Chevy'), ('CHEVY');
+alter table t1 drop index txt_index, add index txt_index (txt(20));
+insert into t1 (txt) values ('Chevy ');
select * from t1 where txt='Chevy';
select * from t1 where txt='Chevy ';
select * from t1 where txt='Chevy ' or txt='Chevy';
@@ -350,7 +359,7 @@ select * from t1 where txt > 'Chevy';
select * from t1 where txt >= 'Chevy';
drop table t1;
-create table t1 (id integer primary key auto_increment, txt text, unique index txt_index (txt (20)));
+create table t1 (id integer primary key auto_increment, txt text, index txt_index (txt (20)));
insert into t1 (txt) values ('Chevy'), ('Chevy '), (NULL);
select * from t1 where txt='Chevy' or txt is NULL;
explain select * from t1 where txt='Chevy' or txt is NULL;
@@ -385,3 +394,46 @@ select max(i) from t1 where c = '';
drop table t1;
# End of 4.1 tests
+
+#
+# Bug#11657: Creation of secondary index fails
+#
+create table t1 (a int, b int, c tinyblob, d int, e int);
+alter table t1 add primary key (a,b,c(255),d);
+alter table t1 add key (a,b,d,e);
+show create table t1;
+drop table t1;
+
+#
+# Test that blob's and varbinary are sorted according to length
+#
+
+CREATE table t1 (a blob);
+insert into t1 values ('b'),('a\0'),('a'),('a '),('aa'),(NULL);
+select hex(a) from t1 order by a;
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+alter table t1 modify a varbinary(5);
+select hex(a) from t1 order by a;
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+alter table t1 modify a char(5);
+select hex(a) from t1 order by a;
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+alter table t1 modify a binary(5);
+select hex(a) from t1 order by a;
+select hex(concat(a,'\0')) as b from t1 order by concat(a,'\0');
+drop table t1;
+
+#
+# Bug #19489: Inconsistent support for DEFAULT in TEXT columns
+#
+create table t1 (a text default '');
+show create table t1;
+insert into t1 values (default);
+select * from t1;
+drop table t1;
+set @@sql_mode='TRADITIONAL';
+--error ER_BLOB_CANT_HAVE_DEFAULT
+create table t1 (a text default '');
+set @@sql_mode='';
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_date.test b/mysql-test/t/type_date.test
index c6050753943..507537457d3 100644
--- a/mysql-test/t/type_date.test
+++ b/mysql-test/t/type_date.test
@@ -123,3 +123,71 @@ insert into t1 values ('2000-01-01','2000-01-02');
select 1 from t1 where cast('2000-01-01 12:01:01' as datetime) between start_date and end_date;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #23093: Implicit conversion of 9912101 to date does not match
+# cast(9912101 as date)
+#
+select @d:=1111, year(@d), month(@d), day(@d), cast(@d as date);
+select @d:=011111, year(@d), month(@d), day(@d), cast(@d as date);
+select @d:=1311, year(@d), month(@d), day(@d), cast(@d as date);
+create table t1 (d date , dt datetime , ts timestamp);
+insert into t1 values (9912101,9912101,9912101);
+insert into t1 values (11111,11111,11111);
+select * from t1;
+drop table t1;
+
+#
+# Bug #30942: select str_to_date from derived table returns varying results
+#
+CREATE TABLE t1 (
+ a INT
+);
+
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (NULL);
+
+SELECT str_to_date( '', a ) FROM t1;
+DROP TABLE t1;
+
+
+#
+# Bug #31221: Optimizer incorrectly identifies impossible WHERE clause
+#
+
+CREATE TABLE t1 (a DATE, b int, PRIMARY KEY (a,b));
+INSERT INTO t1 VALUES (DATE(NOW()), 1);
+SELECT COUNT(*) FROM t1 WHERE a = NOW();
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
+INSERT INTO t1 VALUES (DATE(NOW()), 2);
+SELECT COUNT(*) FROM t1 WHERE a = NOW();
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
+SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
+ALTER TABLE t1 DROP PRIMARY KEY;
+SELECT COUNT(*) FROM t1 WHERE a = NOW();
+EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
+
+DROP TABLE t1;
+
+#
+# Bug #28687: Search fails on '0000-00-00' date after sql_mode change
+#
+
+CREATE TABLE t1 (a DATE);
+CREATE TABLE t2 (a DATE);
+CREATE INDEX i ON t1 (a);
+INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
+INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
+SELECT * FROM t1 WHERE a = '0000-00-00';
+SELECT * FROM t2 WHERE a = '0000-00-00';
+SET SQL_MODE=TRADITIONAL;
+EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
+SELECT * FROM t1 WHERE a = '0000-00-00';
+SELECT * FROM t2 WHERE a = '0000-00-00';
+--error ER_TRUNCATED_WRONG_VALUE
+INSERT INTO t1 VALUES ('0000-00-00');
+SET SQL_MODE=DEFAULT;
+DROP TABLE t1,t2;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test
index 87b86b55fc9..08a94384aec 100644
--- a/mysql-test/t/type_datetime.test
+++ b/mysql-test/t/type_datetime.test
@@ -120,3 +120,222 @@ select cast('2006-12-05 22:10:10' as datetime) + 0;
# End of 4.1 tests
+
+#
+# Bug#21475: Wrongly applied constant propagation leads to a false comparison.
+#
+CREATE TABLE t1(a DATETIME NOT NULL);
+INSERT INTO t1 VALUES ('20060606155555');
+SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555");
+PREPARE s FROM 'SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555")';
+EXECUTE s;
+DROP PREPARE s;
+DROP TABLE t1;
+
+
+#
+# Bug 19491 (CAST DATE AS DECIMAL returns incorrect result
+#
+SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6));
+SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME) AS DECIMAL(20,6));
+SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6));
+SELECT CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6));
+
+
+#
+# Test of storing datetime into date fields
+#
+
+set @org_mode=@@sql_mode;
+create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
+show create table t1;
+insert into t1 values ();
+insert into t1 values ('2007-03-23 13:49:38','2007-03-23 13:49:38');
+set @@sql_mode='ansi,traditional';
+insert into t1 values ('2007-03-23 13:49:38','2007-03-23 13:49:38');
+insert into t1 set dt='2007-03-23 13:49:38',da=dt;
+# Test error handling
+--error 1292
+insert into t1 values ('2007-03-32','2007-03-23 13:49:38');
+select * from t1;
+drop table t1;
+--error 1067
+create table t1 (da date default '1962-03-32 23:33:34', dt datetime default '1962-03-03');
+--error 1067
+create table t1 (t time default '916:00:00 a');
+set @@sql_mode= @org_mode;
+
+
+#
+# Bug#27590: Wrong DATE/DATETIME comparison.
+#
+create table t1 (f1 date, f2 datetime, f3 timestamp);
+insert into t1(f1) values(curdate());
+select curdate() < now(), f1 < now(), cast(f1 as date) < now() from t1;
+delete from t1;
+insert into t1 values('2001-01-01','2001-01-01 01:01:01','2001-01-01 01:01:01');
+insert into t1 values('2001-02-05','2001-02-05 00:00:00','2001-02-05 01:01:01');
+insert into t1 values('2001-03-10','2001-03-09 01:01:01','2001-03-10 01:01:01');
+insert into t1 values('2001-04-15','2001-04-15 00:00:00','2001-04-15 00:00:00');
+insert into t1 values('2001-05-20','2001-05-20 01:01:01','2001-05-20 01:01:01');
+select f1, f3 from t1 where f1 >= '2001-02-05 00:00:00' and f3 <= '2001-04-15';
+select f1, f3 from t1 where f1 >= '2001-2-5 0:0:0' and f2 <= '2001-4-15';
+select f1, f2 from t1 where if(1, f1, 0) >= f2;
+select 1 from dual where cast('2001-1-1 2:3:4' as date) = cast('2001-01-01' as datetime);
+select f1, f2, f1 > f2, f1 = f2, f1 < f2 from t1;
+drop table t1;
+
+#
+# Bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
+#
+create table t1 (f1 date, f2 datetime, f3 timestamp);
+insert into t1 values('2001-01-01','2001-01-01 01:01:01','2001-01-01 01:01:01');
+insert into t1 values('2001-02-05','2001-02-05 00:00:00','2001-02-05 01:01:01');
+insert into t1 values('2001-03-10','2001-03-09 01:01:01','2001-03-10 01:01:01');
+insert into t1 values('2001-04-15','2001-04-15 00:00:00','2001-04-15 00:00:00');
+insert into t1 values('2001-05-20','2001-05-20 01:01:01','2001-05-20 01:01:01');
+select f2 from t1 where f2 between '2001-2-5' and '01-04-14';
+select f1, f2, f3 from t1 where f1 between f2 and f3;
+select f1, f2, f3 from t1 where cast(f1 as datetime) between f2 and
+ cast(f3 as date);
+select f2 from t1 where '2001-04-10 12:34:56' between f2 and '01-05-01';
+select f2, f3 from t1 where '01-03-10' between f2 and f3;
+select f2 from t1 where DATE(f2) between "2001-4-15" AND "01-4-15";
+SELECT 1 from dual where NOW() BETWEEN CURRENT_DATE() - INTERVAL 1 DAY AND CURRENT_DATE();
+drop table t1;
+
+#
+# Bug#28133: Wrong DATE/DATETIME comparison in IN() function.
+#
+create table t1 (f1 date);
+insert into t1 values('01-01-01'),('01-01-02'),('01-01-03');
+select * from t1 where f1 in ('01-01-01','2001-01-02','2001-01-03 00:00:00');
+create table t2(f2 datetime);
+insert into t2 values('01-01-01 00:00:00'),('01-02-03 12:34:56'),('02-04-06 11:22:33');
+select * from t2 where f2 in ('01-01-01','01-02-03 12:34:56','01-02-03');
+select * from t1,t2 where '01-01-02' in (f1, cast(f2 as date));
+select * from t1,t2 where '01-01-01' in (f1, '01-02-03');
+select * from t1,t2 where if(1,'01-02-03 12:34:56','') in (f1, f2);
+create table t3(f3 varchar(20));
+insert into t3 select * from t2;
+select * from t2,t3 where f2 in (f3,'03-04-05');
+select f1,f2,f3 from t1,t2,t3 where (f1,'1') in ((f2,'1'),(f3,'1'));
+select f1 from t1 where ('1',f1) in (('1','01-01-01'),('1','2001-1-1 0:0:0'),('1','02-02-02'));
+drop table t1,t2,t3;
+
+#
+# Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
+#
+select least(cast('01-01-01' as date), '01-01-02');
+select greatest(cast('01-01-01' as date), '01-01-02');
+select least(cast('01-01-01' as date), '01-01-02') + 0;
+select greatest(cast('01-01-01' as date), '01-01-02') + 0;
+select least(cast('01-01-01' as datetime), '01-01-02') + 0;
+select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed);
+select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(20,2));
+--disable_warnings
+DROP PROCEDURE IF EXISTS test27759 ;
+--enable_warnings
+DELIMITER |;
+CREATE PROCEDURE test27759()
+BEGIN
+declare v_a date default '2007-4-10';
+declare v_b date default '2007-4-11';
+declare v_c datetime default '2004-4-9 0:0:0';
+select v_a as a,v_b as b,
+ least( v_a, v_b ) as a_then_b,
+ least( v_b, v_a ) as b_then_a,
+ least( v_c, v_a ) as c_then_a;
+END;|
+DELIMITER ;|
+call test27759();
+drop procedure test27759;
+
+#
+# Bug#28208: Wrong result of a non-const STRING function with a const
+# DATETIME function.
+#
+create table t1 (f1 date);
+insert into t1 values (curdate());
+select left(f1,10) = curdate() from t1;
+drop table t1;
+
+#
+# Bug#28261: Wrong DATETIME comparison result when the GET_USER_VAR function
+# is involved.
+#
+create table t1(f1 date);
+insert into t1 values('01-01-01'),('02-02-02'),('01-01-01'),('02-02-02');
+set @bug28261='';
+select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
+select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
+select if(@bug28261 = f1, '', @bug28261:= f1) from t1;
+drop table t1;
+
+#
+# Bug#28778: Wrong result of BETWEEN when comparing a DATETIME field with an
+# integer constants.
+#
+create table t1(f1 datetime);
+insert into t1 values('2001-01-01'),('2002-02-02');
+select * from t1 where f1 between 20020101 and 20070101000000;
+select * from t1 where f1 between 2002010 and 20070101000000;
+select * from t1 where f1 between 20020101 and 2007010100000;
+drop table t1;
+
+--echo #
+--echo # Bug#27216: functions with parameters of different date types may
+--echo # return wrong type of the result.
+--echo #
+create table t1 (f1 date, f2 datetime, f3 varchar(20));
+create table t2 as select coalesce(f1,f1) as f4 from t1;
+desc t2;
+create table t3 as select coalesce(f1,f2) as f4 from t1;
+desc t3;
+create table t4 as select coalesce(f2,f2) as f4 from t1;
+desc t4;
+create table t5 as select coalesce(f1,f3) as f4 from t1;
+desc t5;
+create table t6 as select coalesce(f2,f3) as f4 from t1;
+desc t6;
+create table t7 as select coalesce(makedate(1997,1),f2) as f4 from t1;
+desc t7;
+create table t8 as select coalesce(cast('01-01-01' as datetime),f2) as f4
+ from t1;
+desc t8;
+create table t9 as select case when 1 then cast('01-01-01' as date)
+ when 0 then cast('01-01-01' as date) end as f4 from t1;
+desc t9;
+create table t10 as select case when 1 then cast('01-01-01' as datetime)
+ when 0 then cast('01-01-01' as datetime) end as f4 from t1;
+desc t10;
+create table t11 as select if(1, cast('01-01-01' as datetime),
+ cast('01-01-01' as date)) as f4 from t1;
+desc t11;
+create table t12 as select least(cast('01-01-01' as datetime),
+ cast('01-01-01' as date)) as f4 from t1;
+desc t12;
+create table t13 as select ifnull(cast('01-01-01' as datetime),
+ cast('01-01-01' as date)) as f4 from t1;
+desc t13;
+drop tables t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13;
+--echo ###################################################################
+#
+# Bug #31253: crash comparing datetime to double
+# Should return 1st row only. Crashes if NULL propagation fails.
+#
+create table t1 (f1 time);
+insert into t1 set f1 = '45:44:44';
+insert into t1 set f1 = '15:44:44';
+select * from t1 where (convert(f1,datetime)) != 1;
+drop table t1;
+
+#
+# Bug #31249: problem with convert(..., datetime)
+#
+create table t1 (a tinyint);
+insert into t1 values (), (), ();
+select sum(a) from t1 group by convert(a, datetime);
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_decimal.test b/mysql-test/t/type_decimal.test
index cc5e9278b12..4d61350a613 100644
--- a/mysql-test/t/type_decimal.test
+++ b/mysql-test/t/type_decimal.test
@@ -1,7 +1,7 @@
# bug in decimal() with negative numbers by kaido@tradenet.ee
--disable_warnings
-DROP TABLE IF EXISTS t1, t2, t3;
+DROP TABLE IF EXISTS t1, t2;
--enable_warnings
SET SQL_WARNINGS=1;
@@ -165,6 +165,8 @@ insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
+insert into t1 values ("1e+4294967296"),("1e-4294967296");
+insert into t1 values ("1e+18446744073709551615"),("1e+18446744073709551616"),("1e-9223372036854775807"),("1e-9223372036854775809");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1;
drop table t1;
@@ -201,6 +203,7 @@ insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
insert into t1 values (1e+100),(1e-100),(-1e+100);
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
+insert into t1 values (MID("987",1,2)),("987 "),("987.6e+2 ");
select * from t1;
drop table t1;
@@ -244,9 +247,8 @@ CREATE TABLE t1 (a_dec DECIMAL(-1,0));
CREATE TABLE t1 (a_dec DECIMAL(-2,1));
--error 1064
CREATE TABLE t1 (a_dec DECIMAL(-1,1));
+--error 1427
CREATE TABLE t1 (a_dec DECIMAL(0,11));
-SHOW CREATE TABLE t1;
-DROP TABLE t1;
#
# Zero prepend overflow bug
@@ -276,16 +278,152 @@ update t1 set b=a;
select * from t1;
drop table t1;
+--echo End of 4.1 tests
+
+#
+# Test for BUG#8397: decimal type in subselects (Item_cache_decimal)
+#
+CREATE TABLE t1
+(EMPNUM CHAR(3) NOT NULL,
+HOURS DECIMAL(5));
+CREATE TABLE t2
+(EMPNUM CHAR(3) NOT NULL,
+HOURS BIGINT);
+
+INSERT INTO t1 VALUES ('E1',40);
+INSERT INTO t1 VALUES ('E8',NULL);
+INSERT INTO t2 VALUES ('E1',40);
+
+SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t2);
+SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t1);
+
+DROP TABLE t1,t2;
+
+#
+# Test limits of decimal
+#
+create table t1 (d decimal(64,0));
+insert into t1 values (1);
+select * from t1;
+drop table t1;
+create table t1 (d decimal(5));
+show create table t1;
+drop table t1;
+create table t1 (d decimal);
+show create table t1;
+drop table t1;
+--error 1426
+create table t1 (d decimal(66,0));
+
#
-# Bug #13372 (decimal union)
+# Test example from manual
#
-create table t1 (d decimal(10,1));
-create table t2 (d decimal(10,9));
-insert into t1 values ("100000000.0");
-insert into t2 values ("1.23456780");
-create table t3 select * from t2 union select * from t1;
-select * from t3;
-show create table t3;
-drop table t1, t2, t3;
-
-# End of 4.1 tests
+
+CREATE TABLE t1 (i INT, d1 DECIMAL(9,2), d2 DECIMAL(9,2));
+INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
+(2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
+(2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),
+(4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),
+(5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20),
+(6, 0.00, 0.00), (6, -51.40, 0.00);
+
+SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1 GROUP BY i HAVING a <> b;
+SELECT i, ROUND(SUM(d1), 2) AS a, ROUND(SUM(d2), 2) AS b FROM t1 GROUP BY i
+HAVING a <> b;
+drop table t1;
+
+#
+# A test case for Bug#4956 "strange result, insert into longtext, parameter
+# with numeric value": ensure that conversion is done identically no matter
+# where the input data comes from.
+#
+create table t1 (c1 varchar(100), c2 longtext);
+insert into t1 set c1= 'non PS, 1.0 as constant', c2=1.0;
+prepare stmt from "insert into t1 set c1='PS, 1.0 as constant ', c2=1.0";
+execute stmt;
+set @a=1.0;
+insert into t1 set c1='non PS, 1.0 in parameter', c2=@a;
+prepare stmt from "insert into t1 set c1='PS, 1.0 in parameter ', c2=?";
+execute stmt using @a;
+select * from t1;
+deallocate prepare stmt;
+drop table t1;
+
+#
+# A test case for Bug#5673 "Rounding problem in 4.0.21 inserting decimal
+# value into a char field": this is a regression bug in 4.0 tree caused by
+# a fix for some other decimal conversion issue. The patch never was
+# approved to get into 4.0 (maybe because it was considered too intrusive)
+#
+
+create table t1 (
+ strippedproductid char(15) not null default '',
+ zlevelprice decimal(10,2) default null,
+ primary key (strippedproductid)
+);
+
+create table t2 (
+ productid char(15) not null default '',
+ zlevelprice char(21) default null,
+ primary key (productid)
+);
+
+insert into t1 values ('002trans','49.99');
+insert into t1 values ('003trans','39.98');
+insert into t1 values ('004trans','31.18');
+
+insert INTO t2 SELECT * FROM t1;
+
+select * from t2;
+drop table t1, t2;
+
+#
+# Bug #17826 'type_decimal' fails with ps-protocol
+#
+create table t1 (f1 decimal(5));
+insert into t1 values (40);
+flush tables;
+select f1 from t1 where f1 in (select f1 from t1);
+drop table t1;
+
+#
+# Bug#22183: Unhandled NULL caused server crash
+#
+create table t1 as
+ select from_days(s) as date,t
+ from (select 1 as s,'t' as t union select null, null ) as sub1;
+select group_concat(t) from t1 group by week(date)/10;
+drop table t1;
+
+#
+# Bug#28980: ROUND(<dec expr>, <int col>) returned double values
+#
+
+CREATE TABLE t1 (
+ qty decimal(16,6) default NULL,
+ dps tinyint(3) unsigned default NULL
+);
+INSERT INTO t1 VALUES (1.1325,3);
+
+SELECT ROUND(qty,3), dps, ROUND(qty,dps) FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug#31019: MOD() function and operator crashes MySQL when
+# divisor is very long and < 1
+#
+
+SELECT 1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS '%';
+SELECT MOD(1, .123456789123456789123456789123456789123456789123456789123456789123456789123456789) AS 'MOD()';
+
+# Bug #31227: memory overrun with decimal (6,6) and zerofill and group_concat
+# valgrind will complain about this (the group_concat(f2)) on unpatched mysqld.
+#
+create table t1 (f1 decimal(6,6),f2 decimal(6,6) zerofill);
+insert into t1 values (-0.123456,0.123456);
+select group_concat(f1),group_concat(f2) from t1;
+drop table t1;
+
+--echo End of 5.0 tests
+
diff --git a/mysql-test/t/type_enum.test b/mysql-test/t/type_enum.test
index 765c3b6d7cc..3dedb0018b1 100644
--- a/mysql-test/t/type_enum.test
+++ b/mysql-test/t/type_enum.test
@@ -174,3 +174,53 @@ SELECT id, c1 + 0, c1 FROM t1;
DROP TABLE t1;
--echo End of 4.1 tests
+
+#
+# Bug#28729: Field_enum wrongly reported an error while storing an empty string.
+#
+create table t1(f1 set('a','b'), index(f1));
+insert into t1 values(''),(''),('a'),('b');
+select * from t1 where f1='';
+drop table t1;
+
+#
+# Bug#29360: Confluence of the special 0 enum value with the normal empty string
+# value during field to field copy.
+#
+
+CREATE TABLE t1 (c1 ENUM('a', '', 'b'));
+INSERT INTO t1 (c1) VALUES ('b');
+INSERT INTO t1 (c1) VALUES ('');
+INSERT INTO t1 (c1) VALUES (0);
+INSERT INTO t1 (c1) VALUES ('');
+
+SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1;
+
+CREATE TABLE t2 SELECT * FROM t1;
+SELECT c1 + 0 FROM t2;
+
+DROP TABLE t1,t2;
+
+#
+# Bug#29661: Lookup by 0 for a primary index over a enum type
+#
+
+CREATE TABLE t1(a enum('a','b','c','d'));
+INSERT INTO t1 VALUES (4),(1),(0),(3);
+
+SELECT a FROM t1;
+
+EXPLAIN SELECT a FROM t1 WHERE a=0;
+SELECT a FROM t1 WHERE a=0;
+
+ALTER TABLE t1 ADD PRIMARY KEY (a);
+
+EXPLAIN SELECT a FROM t1 WHERE a=0;
+SELECT a FROM t1 WHERE a=0;
+
+DROP TABLE t1;
+
+
+
+
+
diff --git a/mysql-test/t/type_float.test b/mysql-test/t/type_float.test
index 8c22d22ca66..ed3abb12140 100644
--- a/mysql-test/t/type_float.test
+++ b/mysql-test/t/type_float.test
@@ -6,9 +6,7 @@
drop table if exists t1,t2;
--enable_warnings
---replace_result e-0 e- e+0 e+
SELECT 10,10.0,10.,.1e+2,100.0e-1;
---replace_result e-00 e-0
SELECT 6e-05, -6e-05, --6e-05, -6e-05+1.000000;
SELECT 1e1,1.e1,1.0e1,1e+1,1.e+1,1.0e+1,1e-1,1.e-1,1.0e-1;
SELECT 0.001e+1,0.001e-1, -0.001e+01,-0.001e-01;
@@ -21,7 +19,6 @@ create table t1 (f1 float(24),f2 float(52));
show full columns from t1;
insert into t1 values(10,10),(1e+5,1e+5),(1234567890,1234567890),(1e+10,1e+10),(1e+15,1e+15),(1e+20,1e+20),(1e+50,1e+50),(1e+150,1e+150);
insert into t1 values(-10,-10),(1e-5,1e-5),(1e-10,1e-10),(1e-15,1e-15),(1e-20,1e-20),(1e-50,1e-50),(1e-150,1e-150);
---replace_result e-0 e- e+0 e+
select * from t1;
drop table t1;
@@ -67,7 +64,7 @@ drop table t1;
# FLOAT/DOUBLE/DECIMAL handling
#
-create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(5,6));
+create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(7,6));
# We mask out Privileges column because it differs for embedded server
--replace_column 8 #
show full columns from t1;
@@ -79,11 +76,8 @@ select a from t1 order by a;
select min(a) from t1;
drop table t1;
+--error 1425
create table t1 (a float(200,100), b double(200,100));
-insert t1 values (1.0, 2.0);
-select * from t1;
-show create table t1;
-drop table t1;
#
# float in a char(1) field
@@ -122,10 +116,15 @@ drop table if exists t1;
# Check conversion of floats to character field (Bug #7774)
create table t1 (c char(20));
insert into t1 values (5e-28);
+# Expected result is "5e-28", but windows returns "5e-028"
+--replace_result 5e-028 5e-28
select * from t1;
drop table t1;
create table t1 (c char(6));
insert into t1 values (2e5),(2e6),(2e-4),(2e-5);
+# Expected result is "2e+06", but windows returns "2e+006"
+# Expected result is "2e-05", but windows returns "2e-005"
+--replace_result 2e+006 2e+06 2e-005 2e-05
select * from t1;
drop table t1;
@@ -214,3 +213,48 @@ select sum(b) s from t1 group by a having s <=> 0 order by s;
drop table t1;
--echo End of 4.1 tests
+
+#
+# bug #12694 (float(m,d) specifications)
+#
+
+--error 1427
+create table t1 (s1 float(0,2));
+--error 1427
+create table t1 (s1 float(1,2));
+
+#
+# MySQL Bugs: #11589: mysqltest --ps-protocol, strange output, float/double/real with zerofill
+#
+
+CREATE TABLE t1 (
+ f1 real zerofill,
+ f2 double zerofill,
+ f3 float zerofill);
+INSERT INTO t1 VALUES ( 0.314152e+1, 0.314152e+1, 0.314152e+1);
+
+let $my_stmt= select f1, f2, f3 FROM t1;
+eval PREPARE stmt1 FROM '$my_stmt';
+select f1, f2, f3 FROM t1;
+eval $my_stmt;
+EXECUTE stmt1;
+
+DROP TABLE t1;
+# Bug #28121 "INSERT or UPDATE into DOUBLE(200,0) field being truncated to 31 digits"
+#
+
+create table t1 (f1 double(200, 0));
+insert into t1 values (1e199), (-1e199);
+insert into t1 values (1e200), (-1e200);
+insert into t1 values (2e200), (-2e200);
+select f1 + 0e0 from t1;
+drop table t1;
+
+create table t1 (f1 float(30, 0));
+insert into t1 values (1e29), (-1e29);
+insert into t1 values (1e30), (-1e30);
+insert into t1 values (2e30), (-2e30);
+select f1 + 0e0 from t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/type_newdecimal-big.test b/mysql-test/t/type_newdecimal-big.test
new file mode 100644
index 00000000000..9a1104e4fe6
--- /dev/null
+++ b/mysql-test/t/type_newdecimal-big.test
@@ -0,0 +1,50 @@
+--source include/big_test.inc
+
+--disable_warnings
+drop procedure if exists sp1;
+--enable_warnings
+
+#
+#-- 2. Adding (one millionth) one million times should be the same as
+#-- adding 1. So a stored procedure with many iterations will show if
+#-- small errors accumulate.
+#
+
+delimiter //;
+#
+CREATE PROCEDURE sp1()
+BEGIN
+ DECLARE v1, v2, v3, v4 DECIMAL(28,12);
+ DECLARE v3_2, v4_2 DECIMAL(28, 12);
+ DECLARE counter INT;
+
+ SET v1 = 1;
+ SET v2 = 2;
+ SET v3 = 1000000000000;
+ SET v4 = 2000000000000;
+ SET counter = 0;
+
+ WHILE counter < 100000 DO
+ SET v1 = v1 + 0.000000000001;
+ SET v2 = v2 - 0.000000000001;
+ SET v3 = v3 + 1;
+ SET v4 = v4 - 1;
+ SET counter = counter + 1;
+ END WHILE;
+
+ SET v3_2 = v3 * 0.000000000001;
+ SET v4_2 = v4 * 0.000000000001;
+
+ SELECT v1, v2, v3, v3_2, v4, v4_2;
+END//
+#
+call sp1()//
+#-- should return
+# -- v1=1.0000001
+# -- v2=1.999999900000
+# -- v3=1.0000001
+# -- v4=1.999999900000
+#
+delimiter ;//
+#
+drop procedure sp1;
diff --git a/mysql-test/t/type_newdecimal.test b/mysql-test/t/type_newdecimal.test
new file mode 100644
index 00000000000..5a631b6163e
--- /dev/null
+++ b/mysql-test/t/type_newdecimal.test
@@ -0,0 +1,1200 @@
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+#
+# constant IN function test
+#
+select 1.1 IN (1.0, 1.2);
+select 1.1 IN (1.0, 1.2, 1.1, 1.4, 0.5);
+select 1.1 IN (1.0, 1.2, NULL, 1.4, 0.5);
+select 0.5 IN (1.0, 1.2, NULL, 1.4, 0.5);
+select 1 IN (1.11, 1.2, 1.1, 1.4, 1, 0.5);
+select 1 IN (1.11, 1.2, 1.1, 1.4, NULL, 0.5);
+
+#
+# case function test
+#
+select case 1.0 when 0.1 then "a" when 1.0 then "b" else "c" END;
+select case 0.1 when 0.1 then "a" when 1.0 then "b" else "c" END;
+select case 1 when 0.1 then "a" when 1.0 then "b" else "c" END;
+select case 1.0 when 0.1 then "a" when 1 then "b" else "c" END;
+select case 1.001 when 0.1 then "a" when 1 then "b" else "c" END;
+
+#
+# non constant IN test
+#
+create table t1 (a decimal(6,3));
+insert into t1 values (1.0), (NULL), (0.1);
+select * from t1;
+select 0.1 in (1.0, 1.2, 1.1, a, 1.4, 0.5) from t1;
+drop table t1;
+
+#
+# if function test
+#
+create table t1 select if(1, 1.1, 1.2), if(0, 1.1, 1.2), if(0.1, 1.1, 1.2), if(0, 1, 1.1), if(0, NULL, 1.2), if(1, 0.22e1, 1.1), if(1E0, 1.1, 1.2);
+select * from t1;
+show create table t1;
+drop table t1;
+
+#
+# NULLIF
+#
+create table t1 select nullif(1.1, 1.1), nullif(1.1, 1.2), nullif(1.1, 0.11e1), nullif(1.0, 1), nullif(1, 1.0), nullif(1, 1.1);
+select * from t1;
+show create table t1;
+drop table t1;
+
+#
+# saving in decimal field with overflow
+#
+
+create table t1 (a decimal(4,2));
+insert into t1 value (10000), (1.1e10), ("11111"), (100000.1);
+insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1);
+select a from t1;
+drop table t1;
+create table t1 (a decimal(4,2) unsigned);
+insert into t1 value (10000), (1.1e10), ("11111"), (100000.1);
+insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1);
+select a from t1;
+drop table t1;
+
+
+#
+# saving in field with overflow from decimal
+#
+create table t1 (a bigint);
+insert into t1 values (18446744073709551615.0);
+insert into t1 values (9223372036854775808.0);
+insert into t1 values (-18446744073709551615.0);
+select * from t1;
+drop table t1;
+create table t1 (a bigint unsigned);
+insert into t1 values (18446744073709551615.0);
+insert into t1 values (9223372036854775808.0);
+insert into t1 values (9999999999999999999999999.000);
+insert into t1 values (-1.0);
+select * from t1;
+drop table t1;
+create table t1 (a tinyint);
+insert into t1 values (18446744073709551615.0);
+insert into t1 values (9223372036854775808.0);
+select * from t1;
+drop table t1;
+
+#
+# test that functions create decimal fields
+#
+create table t1 select round(15.4,-1), truncate(-5678.123451,-3), abs(-1.1), -(-1.1);
+show create table t1;
+drop table t1;
+
+#
+# Trydy's tests
+#
+set session sql_mode='traditional';
+select 1e10/0e0;
+create table wl1612 (col1 int, col2 decimal(38,10), col3 numeric(38,10));
+insert into wl1612 values(1,12345678901234567890.1234567890,12345678901234567890.1234567890);
+select * from wl1612;
+insert into wl1612 values(2,01234567890123456789.0123456789,01234567890123456789.0123456789);
+select * from wl1612 where col1=2;
+insert into wl1612 values(3,1234567890123456789012345678.0123456789,1234567890123456789012345678.0123456789);
+select * from wl1612 where col1=3;
+
+select col1/0 from wl1612;
+select col2/0 from wl1612;
+select col3/0 from wl1612;
+
+insert into wl1612 values(5,5000.0005,5000.0005);
+insert into wl1612 values(6,5000.0005,5000.0005);
+select sum(col2),sum(col3) from wl1612;
+#select avg(col2),avg(col3) from wl1612;
+
+insert into wl1612 values(7,500000.000005,500000.000005);
+insert into wl1612 values(8,500000.000005,500000.000005);
+select sum(col2),sum(col3) from wl1612 where col1>4;
+#select avg(col2),avg(col3) from wl1612 where col1>4;
+
+#insert into wl1612 (col1,col2) values(9,123456789012345678901234567890);
+#insert into wl1612 (col1,col3) values(9,123456789012345678901234567890);
+
+insert into wl1612 (col1, col2) values(9,1.01234567891);
+insert into wl1612 (col1, col2) values(10,1.01234567894);
+insert into wl1612 (col1, col2) values(11,1.01234567895);
+insert into wl1612 (col1, col2) values(12,1.01234567896);
+select col1,col2 from wl1612 where col1>8;
+
+insert into wl1612 (col1, col3) values(13,1.01234567891);
+insert into wl1612 (col1, col3) values(14,1.01234567894);
+insert into wl1612 (col1, col3) values(15,1.01234567895);
+insert into wl1612 (col1, col3) values(16,1.01234567896);
+select col1,col3 from wl1612 where col1>12;
+
+select col1 from wl1612 where col1>4 and col2=1.01234567891;
+#-- should return 0 rows
+#
+select col1 from wl1612 where col1>4 and col2=1.0123456789;
+#-- should return col1 values 9 & 10
+#
+select col1 from wl1612 where col1>4 and col2<>1.0123456789;
+#-- should return col1 values 5,6,7,8,11,12
+#
+select col1 from wl1612 where col1>4 and col2<1.0123456789;
+#-- should return 0 rows
+#
+select col1 from wl1612 where col1>4 and col2<=1.0123456789;
+#-- should return col1 values 9 & 10
+#
+select col1 from wl1612 where col1>4 and col2>1.0123456789;
+#-- should return col1 values 5,6,7,8,11,12
+#
+select col1 from wl1612 where col1>4 and col2>=1.0123456789;
+#-- should return col1 values 5,6,7,8,910,11,12
+#
+#select col1, col2 from wl1612 where col1=11 or col1=12;
+select col1 from wl1612 where col1>4 and col2=1.012345679;
+#-- should return col1 values 11,12
+#
+select col1 from wl1612 where col1>4 and col2<>1.012345679;
+#-- should return col1 values 5,6,7,8,9,10
+#
+select col1 from wl1612 where col1>4 and col3=1.01234567891;
+#-- should return 0 rows
+#
+select col1 from wl1612 where col1>4 and col3=1.0123456789;
+#-- should return col1 values 13,14
+#
+select col1 from wl1612 where col1>4 and col3<>1.0123456789;
+#-- should return col1 values 5,6,7,8,15,16
+#
+select col1 from wl1612 where col1>4 and col3<1.0123456789;
+#-- should return 0 rows
+#
+select col1 from wl1612 where col1>4 and col3<=1.0123456789;
+#-- should return col1 values 13,14
+#
+select col1 from wl1612 where col1>4 and col3>1.0123456789;
+#-- should return col1 values 5,6,7,8,15,16
+#
+select col1 from wl1612 where col1>4 and col3>=1.0123456789;
+#-- should return col1 values 5,6,7,8,13,14,15,16
+#
+select col1 from wl1612 where col1>4 and col3=1.012345679;
+#-- should return col1 values 15,16
+#
+select col1 from wl1612 where col1>4 and col3<>1.012345679;
+#-- should return col1 values 5,6,7,8,13,14
+#
+drop table wl1612;
+#
+select 1/3;
+#
+select 0.8=0.7+0.1;
+#-- should return 1 (true)
+#
+select 0.7+0.1;
+#
+create table wl1612_1 (col1 int);
+insert into wl1612_1 values(10);
+#
+select * from wl1612_1 where 0.8=0.7+0.1;
+#--should return 1 row (col1=10)
+#
+select 0.07+0.07 from wl1612_1;
+#
+select 0.07-0.07 from wl1612_1;
+#
+select 0.07*0.07 from wl1612_1;
+#
+select 0.07/0.07 from wl1612_1;
+#
+drop table wl1612_1;
+#
+create table wl1612_2 (col1 decimal(10,2), col2 numeric(10,2));
+insert into wl1612_2 values(1,1);
+insert into wl1612_2 values(+1,+1);
+insert into wl1612_2 values(+01,+01);
+insert into wl1612_2 values(+001,+001);
+#
+select col1,count(*) from wl1612_2 group by col1;
+#
+select col2,count(*) from wl1612_2 group by col2;
+#
+drop table wl1612_2;
+#
+create table wl1612_3 (col1 decimal(10,2), col2 numeric(10,2));
+insert into wl1612_3 values('1','1');
+insert into wl1612_3 values('+1','+1');
+#
+insert into wl1612_3 values('+01','+01');
+insert into wl1612_3 values('+001','+001');
+#
+select col1,count(*) from wl1612_3 group by col1;
+#
+select col2,count(*) from wl1612_3 group by col2;
+#
+drop table wl1612_3;
+#
+select mod(234,10) ;
+#-- should return 4
+#
+select mod(234.567,10.555);
+#-- should return 2.357
+#
+select mod(-234.567,10.555);
+#-- should return -2.357
+#
+select mod(234.567,-10.555);
+#-- should return 2.357
+#
+select round(15.1);
+#-- should return 15
+#
+select round(15.4);
+#-- should return 15
+#
+select round(15.5);
+#-- should return 16
+#
+select round(15.6);
+#-- should return 16
+#
+select round(15.9);
+#-- should return 16
+#
+select round(-15.1);
+#-- should return -15
+#
+select round(-15.4);
+#-- should return -15
+#
+select round(-15.5);
+#-- should return -16
+#
+select round(-15.6);
+#-- should return -16
+#
+select round(-15.9);
+#-- should return -16
+#
+select round(15.1,1);
+#-- should return 15.1
+#
+select round(15.4,1);
+#-- should return 15.4
+#
+select round(15.5,1);
+#-- should return 15.5
+#
+select round(15.6,1);
+#-- should return 15.6
+#
+select round(15.9,1);
+#-- should return 15.9
+#
+select round(-15.1,1);
+#-- should return -15.1
+#
+select round(-15.4,1);
+#-- should return -15.4
+#
+select round(-15.5,1);
+#-- should return -15.5
+#
+select round(-15.6,1);
+#-- should return -15.6
+#
+select round(-15.9,1);
+#-- should return -15.9
+#
+select round(15.1,0);
+#-- should return 15
+#
+select round(15.4,0);
+#-- should return 15
+#
+select round(15.5,0);
+#-- should return 16
+#
+select round(15.6,0);
+#-- should return 16
+#
+select round(15.9,0);
+#-- should return 16
+#
+select round(-15.1,0);
+#-- should return -15
+#
+select round(-15.4,0);
+#-- should return -15
+#
+select round(-15.5,0);
+#-- should return -16
+#
+select round(-15.6,0);
+#-- should return -16
+#
+select round(-15.9,0);
+#-- should return -16
+#
+select round(15.1,-1);
+#-- should return 20
+#
+select round(15.4,-1);
+#-- should return 20
+#
+select round(15.5,-1);
+#-- should return 20
+#
+select round(15.6,-1);
+#-- should return 20
+#
+select round(15.9,-1);
+#-- should return 20
+#
+select round(-15.1,-1);
+#-- should return -20
+#
+select round(-15.4,-1);
+#-- should return -20
+#
+select round(-15.5,-1);
+#-- should return -20
+#
+select round(-15.6,-1);
+#-- should return -20
+#
+select round(-15.91,-1);
+#-- should return -20
+#
+select truncate(5678.123451,0);
+#-- should return 5678
+#
+select truncate(5678.123451,1);
+#-- should return 5678.1
+#
+select truncate(5678.123451,2);
+#-- should return 5678.12
+#
+select truncate(5678.123451,3);
+#-- should return 5678.123
+#
+select truncate(5678.123451,4);
+#-- should return 5678.1234
+#
+select truncate(5678.123451,5);
+#-- should return 5678.12345
+#
+select truncate(5678.123451,6);
+#-- should return 5678.123451
+#
+select truncate(5678.123451,-1);
+#-- should return 5670
+#
+select truncate(5678.123451,-2);
+#-- should return 5600
+#
+select truncate(5678.123451,-3);
+#-- should return 5000
+#
+select truncate(5678.123451,-4);
+#-- should return 0
+#
+select truncate(-5678.123451,0);
+#-- should return -5678
+#
+select truncate(-5678.123451,1);
+#-- should return -5678.1
+#
+select truncate(-5678.123451,2);
+#-- should return -5678.12
+#
+select truncate(-5678.123451,3);
+#-- should return -5678.123
+#
+select truncate(-5678.123451,4);
+#-- should return -5678.1234
+#
+select truncate(-5678.123451,5);
+#-- should return -5678.12345
+#
+select truncate(-5678.123451,6);
+#-- should return -5678.123451
+#
+select truncate(-5678.123451,-1);
+#-- should return -5670
+#
+select truncate(-5678.123451,-2);
+#-- should return -5600
+#
+select truncate(-5678.123451,-3);
+#-- should return -5000
+#
+select truncate(-5678.123451,-4);
+#-- should return 0
+#
+#drop table if exists wl1612_4;
+create table wl1612_4 (col1 int, col2 decimal(30,25), col3 numeric(30,25));
+#
+insert into wl1612_4 values(1,0.0123456789012345678912345,0.0123456789012345678912345);
+#
+select col2/9999999999 from wl1612_4 where col1=1;
+#
+select col3/9999999999 from wl1612_4 where col1=1;
+#
+select 9999999999/col2 from wl1612_4 where col1=1;
+#
+select 9999999999/col3 from wl1612_4 where col1=1;
+#
+select col2*9999999999 from wl1612_4 where col1=1;
+#
+select col3*9999999999 from wl1612_4 where col1=1;
+#
+insert into wl1612_4 values(2,55555.0123456789012345678912345,55555.0123456789012345678912345);
+#
+select col2/9999999999 from wl1612_4 where col1=2;
+#
+select col3/9999999999 from wl1612_4 where col1=2;
+#
+select 9999999999/col2 from wl1612_4 where col1=2;
+#
+select 9999999999/col3 from wl1612_4 where col1=2;
+#
+select col2*9999999999 from wl1612_4 where col1=2;
+#
+select col3*9999999999 from wl1612_4 where col1=2;
+#
+drop table wl1612_4;
+#
+#
+#
+#
+#-- Additional tests for WL#1612 Precision math
+#
+#-- Comparisons should show that a number is
+#-- exactly equal to its value as displayed.
+#
+set sql_mode='';
+#
+select 23.4 + (-41.7), 23.4 - (41.7) = -18.3;
+#
+select -18.3=-18.3;
+#
+select 18.3=18.3;
+#
+select -18.3=18.3;
+#
+select 0.8 = 0.7 + 0.1;
+
+#
+#-- It should be possible to define a column
+#-- with up to 38 digits precision either before
+#-- or after the decimal point. Any number which
+#-- is inserted, if it's within the range, should
+#-- be exactly the same as the number that gets
+#-- selected.
+#
+drop table if exists t1;
+#
+create table t1 (col1 decimal(38));
+#
+insert into t1 values (12345678901234567890123456789012345678);
+#
+select * from t1;
+#-- should return:
+#+----------------------------------------+
+#| col1 |
+#+----------------------------------------+
+#| 12345678901234567890123456789012345678 |
+#+----------------------------------------+
+#
+#drop table t1;
+#
+#create table t1 (col1 decimal(38,38));
+#
+#insert into t1 values (.12345678901234567890123456789012345678);
+#
+#select * from t1;
+#-- should return:
+#+------------------------------------------+
+#| col1 |
+#+------------------------------------------+
+#| 0.12345678901234567890123456789012345678 |
+#+------------------------------------------+
+#
+drop table t1;
+#
+create table t1 (col1 decimal(31,30));
+#
+insert into t1 values (0.00000000001);
+#
+select * from t1;
+#-- should return:
+#+---------------+
+#|col1 |
+#+---------------+
+#| 0.00000000001 |
+#+---------------+
+#
+drop table t1;
+#
+#-- The usual arithmetic operators / * + - should work.
+#
+#select 77777777777777777777777777777777777777 / 7777777777777777777777777777777777777 = 10;
+#-- should return 0 (false).
+#
+select 7777777777777777777777777777777777777 * 10;
+#-- should return 77777777777777777777777777777777777770
+#
+select .7777777777777777777777777777777777777 *
+ 1000000000000000000;
+#-- should return 777777777777777777.7777777777777777777
+#
+select .7777777777777777777777777777777777777 - 0.1;
+#-- should return .6777777777777777777777777777777777777
+#
+select .343434343434343434 + .343434343434343434;
+#-- should return .686868686868686868
+#
+#-- 5. All arithmetic functions mentioned in the
+#MySQL Reference Manual should work.
+#
+select abs(9999999999999999999999);
+#-- should return 9999999999999999999999
+#
+select abs(-9999999999999999999999);
+#-- should return 9999999999999999999999
+#
+select ceiling(999999999999999999);
+select ceiling(99999999999999999999);
+#-- should return 99999999999999999999
+#
+select ceiling(9.9999999999999999999);
+#-- should return 10
+#
+select ceiling(-9.9999999999999999999);
+#-- should return 9
+#
+select floor(999999999999999999);
+select floor(9999999999999999999999);
+#-- should return 9999999999999999999999
+#
+select floor(9.999999999999999999999);
+#-- should return 9
+#
+select floor(-9.999999999999999999999);
+#-- should return -10
+#
+select floor(-999999999999999999999.999);
+select ceiling(999999999999999999999.999);
+#
+#
+select 99999999999999999999999999999999999999 mod 3;
+#-- should return 0
+#
+select round(99999999999999999.999);
+#-- should return 100000000000000000
+#
+select round(-99999999999999999.999);
+#-- should return -100000000000000000
+#
+select round(99999999999999999.999,3);
+#-- should return 100000000000000000.000
+#
+select round(-99999999999999999.999,3);
+#-- should return -100000000000000000.000
+#
+select truncate(99999999999999999999999999999999999999,31);
+#-- should return 99999999999999999999999999999999999999.000
+#
+select truncate(99.999999999999999999999999999999999999,31);
+#-- should return 99.9999999999999999999999999999999
+#
+select truncate(99999999999999999999999999999999999999,-31);
+# should return 90000000000000000000000000000000
+#
+#-- 6. Set functions (AVG, SUM, COUNT) should work.
+#
+#drop table if exists t1;
+#
+#delimiter //
+#
+#create procedure p1 () begin
+# declare v1 int default 1; declare v2 decimal(0,38) default 0;
+# create table t1 (col1 decimal(0,38));
+# while v1 <= 10000 do
+# insert into t1 values (-v2);
+# set v2 = v2 + 0.00000000000000000000000000000000000001;
+# set v1 = v1 + 1;
+# end while;
+# select avg(col1),sum(col1),count(col1) from t1; end;//
+#
+#call p1()//
+#-- should return
+# -- avg(col1)=0.00000000000000000000000000000000000001 added 10,000 times, then divided by 10,000
+# -- sum(col1)=0.00000000000000000000000000000000000001 added 10,000 times
+#
+# -- count(col1)=10000
+#
+#delimiter ;//
+#
+#drop procedure p1;
+#drop table t1;
+#
+#-- When I say DECIMAL(x) I should be able to store x digits.
+#-- If I can't, there should be an error at CREATE time.
+#
+#drop table if exists t1;
+#
+#create table t1 (col1 decimal(254));
+#-- should return SQLSTATE 22003 numeric value out of range
+#
+#-- When I say DECIMAL(x,y) there should be no silent change of precision or
+#-- scale.
+#
+#drop table if exists t1;
+#
+#create table t1 (col1 decimal(0,38));
+#
+#show create table t1;
+#-- should return:
+#+-------+--------------------------------+
+#| Table | Create Table |
+#+-------+--------------------------------+
+#| t9 | CREATE TABLE `t1` ( |
+#|`s1` decimal(0,38) default NULL |
+#| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+#+-------+--------------------------------+
+#
+#drop table t1;
+#
+#-- From WL#1612 "The future" point 2.:
+#-- The standard requires that we treat numbers like "0.5" as
+#-- DECIMAL or NUMERIC, not as floating-point.
+#
+#drop table if exists t1;
+#
+#
+create table t1 as select 0.5;
+#
+show create table t1;
+#-- should return:
+#+-------+-----------------------------------+
+#| Table | Create Table |
+#+-------+-----------------------------------+
+#| t7 | CREATE TABLE `t1` ( |
+#| `0.5` decimal(3,1) NOT NULL default '0.0' |
+#| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+#+-------+-----------------------------------+
+#
+drop table t1;
+#
+#-- From WL#1612, "The future", point 3.: We have to start rounding correctly.
+#
+select round(1.5),round(2.5);
+#-- should return:
+#+------------+------------+
+#| round(1.5) | round(2.5) |
+#+------------+------------+
+#| 2 | 3 |
+#+------------+------------+
+#
+#-- From WL#1612, "The future", point 4.: "select 0.07 * 0.07;" should return 0.0049, not 0.00.
+#-- If operand#1 has scale X and operand#2 has scale Y, then result should have scale (X+Y).
+#
+select 0.07 * 0.07;
+#-- should return 0.0049
+#
+#-- From WL#1612, "The future", point 5.: Division by zero is an error.
+#
+set sql_mode='traditional';
+#
+select 1E-500 = 0;
+#-- should return 1 (true).
+#
+select 1 / 1E-500;
+#
+#-- should return SQLSTATE 22012 division by zero.
+#
+select 1 / 0;
+#-- should return SQLSTATE 22012 division by zero.
+#
+#+-------+
+#| 1 / 0 |
+#+-------+
+#| NULL |
+#+-------+
+#1 row in set, 1 warning (0.00 sec)
+#
+#-- From WL#1612 "The future" point 6.: Overflow is an error.
+#
+#set sql_mode='';
+#
+#select 1E300 * 1E300;
+#-- should return SQLSTATE 22003 numeric value out of range
+#
+#select 18446744073709551615 + 1;
+#-- should return SQLSTATE 22003 numeric value out of range
+#
+#-- 14. From WL#1612 "The future" point 7.:
+#-- If s1 is INTEGER and s2 is DECIMAL, then
+#-- "create table tk7 as select avg(s1),avg(s2) from tk;"
+#-- should not create a table with "double(17,4)" data types.
+#-- The result of AVG must still be exact numeric, with a
+#-- scale the same or greater than the operand's scale.
+#-- The result of SUM must still be exact numeric, with
+#-- a scale the same as the operand's scale.
+#
+#drop table if exists t1;
+#drop table if exists t2;
+#
+#create table t1 (col1 int, col2 decimal(5));
+#
+#create table t2 as select avg(col1),avg(col2) from t1;
+#
+#
+#show create table t2;
+#-- should return:
+#+-------+---------------------------------+
+#| Table | Create Table |
+#+-------+---------------------------------+
+#| t2 | CREATE TABLE `t2` ( |
+#| `avg(col1)` decimal(17,4) default NULL, |
+#| `avg(col2)` decimal(17,5) default NULL |
+#| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+#+-------+---------------------------------+
+#
+#drop table t2;
+#drop table t1;
+#
+#-- From WL#1612 "The future" point 8.: Stop storing leading "+" signs and
+# leading "0"s.
+#
+#drop table if exists t1;
+#
+#create table t1 (col1 decimal(5,2),col2 decimal(5) zerofill, col3 decimal(3,1));
+#
+#insert into t1 values (1,1,1);
+#
+#select col1 from t1 union select col2 from t1 union select col3 from t1;
+#
+#drop table t1;
+#
+#-- From WL#1612, The future" point 9.:
+#-- Accept the data type and precision and scale as the user
+#-- asks, or return an error, but don't change to something else.
+#
+#drop table if exists t1;
+#
+#create table t1 (col1 numeric(4,2));
+#
+#show create table t1;
+#
+#drop table t1;
+#
+#-- The scripts in the following bugs should work:
+#
+
+#BUG#559 Maximum precision for DECIMAL column ...
+#BUG#1499 INSERT/UPDATE into decimal field rounding problem
+#BUG#1845 Not correctly recognising value for decimal field
+#BUG#2493 Round function doesn't work correctly
+#BUG#2649 round(0.5) gives 0 (should be 1)
+#BUG#3612 impicite rounding of VARCHARS during aritchmetic operations...
+#BUG#3722 SELECT fails for certain values in Double(255,10) column.
+#BUG#4485 Floating point conversions are inconsistent
+#BUG#4891 MATH
+#BUG#5931 Out-of-range values are accepted
+#BUG#6048 Stored procedure causes operating system reboot
+#BUG#6053 DOUBLE PRECISION literal
+
+# Tests from 'traditional' mode tests
+#
+set sql_mode='ansi,traditional';
+#
+CREATE TABLE Sow6_2f (col1 NUMERIC(4,2));
+#-- should return OK
+INSERT INTO Sow6_2f VALUES (10.55);
+#-- should return OK
+INSERT INTO Sow6_2f VALUES (10.5555);
+#-- should return OK
+INSERT INTO Sow6_2f VALUES (-10.55);
+#-- should return OK
+INSERT INTO Sow6_2f VALUES (-10.5555);
+#-- should return OK
+INSERT INTO Sow6_2f VALUES (11);
+#-- should return OK
+-- error 1264
+INSERT INTO Sow6_2f VALUES (101.55);
+#-- should return SQLSTATE 22003 numeric value out of range
+-- error 1264
+UPDATE Sow6_2f SET col1 = col1 * 50 WHERE col1 = 11;
+#-- should return SQLSTATE 22003 numeric value out of range
+-- error 1365
+UPDATE Sow6_2f SET col1 = col1 / 0 WHERE col1 > 0;
+#-- should return SQLSTATE 22012 division by zero
+SELECT MOD(col1,0) FROM Sow6_2f;
+#-- should return SQLSTATE 22012 division by zero
+-- error 1366
+INSERT INTO Sow6_2f VALUES ('a59b');
+#-- should return SQLSTATE 22018 invalid character value for cast
+drop table Sow6_2f;
+
+#
+# bug#9501
+#
+select 10.3330000000000/12.34500000;
+
+#
+# Bug #10404
+#
+
+set sql_mode='';
+select 0/0;
+
+#
+# bug #9546
+#
+--disable_ps_protocol
+select 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 as x;
+select 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 as x;
+--enable_ps_protocol
+#
+# Bug #10004
+#
+select 0.190287977636363637 + 0.040372670 * 0 - 0;
+#
+# Bug #9527
+#
+select -0.123 * 0;
+
+#
+# Bug #10232
+#
+
+CREATE TABLE t1 (f1 DECIMAL (12,9), f2 DECIMAL(2,2));
+INSERT INTO t1 VALUES (10.5, 0);
+UPDATE t1 SET f1 = 4.5;
+SELECT * FROM t1;
+DROP TABLE t1;
+CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2));
+INSERT INTO t1 VALUES (9999999999999999999999999999999999, 0);
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug #10599: problem with NULL
+#
+
+select abs(10/0);
+select abs(NULL);
+
+#
+# Bug #9894 (negative to unsigned column)
+#
+set @@sql_mode='traditional';
+create table t1( d1 decimal(18) unsigned, d2 decimal(20) unsigned, d3 decimal (22) unsigned);
+--error 1264
+insert into t1 values(1,-1,-1);
+drop table t1;
+create table t1 (col1 decimal(5,2), col2 numeric(5,2));
+--error 1264
+insert into t1 values (999.999,999.999);
+--error 1264
+insert into t1 values (-999.999,-999.999);
+select * from t1;
+drop table t1;
+set sql_mode='';
+
+#
+# Bug #8425 (insufficient precision of the division)
+#
+set @sav_dpi= @@div_precision_increment;
+set @@div_precision_increment=15;
+create table t1 (col1 int, col2 decimal(30,25), col3 numeric(30,25));
+insert into t1 values (1,0.0123456789012345678912345,0.0123456789012345678912345);
+select col2/9999999999 from t1 where col1=1;
+select 9999999999/col2 from t1 where col1=1;
+select 77777777/7777777;
+drop table t1;
+set div_precision_increment= @sav_dpi;
+
+#
+# Bug #10896 (0.00 > -0.00)
+#
+create table t1 (a decimal(4,2));
+insert into t1 values (0.00);
+select * from t1 where a > -0.00;
+select * from t1 where a = -0.00;
+drop table t1;
+
+#
+# Bug #11215: a problem with LONGLONG_MIN
+#
+
+create table t1 (col1 bigint default -9223372036854775808);
+insert into t1 values (default);
+select * from t1;
+drop table t1;
+
+#
+# Bug #10891 (converting to decimal crashes server)
+#
+select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15));
+
+#
+# Bug #11708 (conversion to decimal fails in decimal part)
+#
+select ln(14000) c1, convert(ln(14000),decimal(5,3)) c2, cast(ln(14000) as decimal(5,3)) c3;
+--error 1427
+select convert(ln(14000),decimal(2,3)) c1;
+--error 1427
+select cast(ln(14000) as decimal(2,3)) c1;
+
+#
+# Bug #8449 (Silent column changes)
+#
+--error 1426
+create table t1 (sl decimal(70,30));
+--error 1425
+create table t1 (sl decimal(32,31));
+--error 1425
+create table t1 (sl decimal(0,38));
+--error 1427
+create table t1 (sl decimal(0,30));
+create table t1 (sl decimal(5, 5));
+show create table t1;
+drop table t1;
+# Test limits
+create table t1 (sl decimal(65, 30));
+show create table t1;
+drop table t1;
+
+#
+# Bug 11557 (DEFAULT values rounded improperly
+#
+create table t1 (
+ f1 decimal unsigned not null default 17.49,
+ f2 decimal unsigned not null default 17.68,
+ f3 decimal unsigned not null default 99.2,
+ f4 decimal unsigned not null default 99.7,
+ f5 decimal unsigned not null default 104.49,
+ f6 decimal unsigned not null default 199.91,
+ f7 decimal unsigned not null default 999.9,
+ f8 decimal unsigned not null default 9999.99);
+insert into t1 (f1) values (1);
+select * from t1;
+drop table t1;
+
+#
+# Bug 12173 (show create table fails)
+#
+create table t1 (
+ f0 decimal (30,30) zerofill not null DEFAULT 0,
+ f1 decimal (0,0) zerofill not null default 0);
+show create table t1;
+drop table t1;
+
+#
+# Bug 12938 (arithmetic loop's zero)
+#
+--disable_warnings
+drop procedure if exists wg2;
+--enable_warnings
+delimiter //;
+create procedure wg2()
+begin
+ declare v int default 1;
+ declare tdec decimal(5) default 0;
+ while v <= 9 do set tdec =tdec * 10;
+ select v, tdec;
+ set v = v + 1;
+ end while;
+end//
+
+call wg2()//
+
+delimiter ;//
+drop procedure wg2;
+
+#
+# Bug #12979 Stored procedures: crash if inout decimal parameter
+# (not a SP bug in fact)
+#
+
+select cast(@non_existing_user_var/2 as DECIMAL);
+
+#
+# Bug #13667 (Inconsistency for decimal(m,d) specification
+#
+--error 1427
+create table t (d decimal(0,10));
+
+#
+# Bug #14268 (bad FLOAT->DECIMAL conversion)
+#
+
+CREATE TABLE t1 (
+ my_float FLOAT,
+ my_double DOUBLE,
+ my_varchar VARCHAR(50),
+ my_decimal DECIMAL(65,30)
+);
+SHOW CREATE TABLE t1;
+
+let $max_power= 32;
+while ($max_power)
+{
+ eval INSERT INTO t1 SET my_float = 1.175494345e-$max_power,
+ my_double = 1.175494345e-$max_power,
+ my_varchar = '1.175494345e-$max_power';
+ dec $max_power;
+}
+SELECT my_float, my_double, my_varchar FROM t1;
+
+# Expected result 0.000000000011754943372854760000
+# On windows we get 0.000000000011754943372854770000
+# use replace_result to correct it
+--replace_result 0.000000000011754943372854770000 0.000000000011754943372854760000
+SELECT CAST(my_float AS DECIMAL(65,30)), my_float FROM t1;
+SELECT CAST(my_double AS DECIMAL(65,30)), my_double FROM t1;
+SELECT CAST(my_varchar AS DECIMAL(65,30)), my_varchar FROM t1;
+
+# We have to disable warnings here as the test in
+# Field_new_decimal::store(double):
+# if (nr2 != nr)
+# fails randomly depending on compiler options
+
+--disable_warnings
+UPDATE t1 SET my_decimal = my_float;
+
+# Expected result 0.000000000011754943372854760000
+# On windows we get 0.000000000011754943372854770000
+# use replace_result to correct it
+--replace_result 0.000000000011754943372854770000 0.000000000011754943372854760000
+SELECT my_decimal, my_float FROM t1;
+
+UPDATE t1 SET my_decimal = my_double;
+SELECT my_decimal, my_double FROM t1;
+--enable_warnings
+UPDATE t1 SET my_decimal = my_varchar;
+SELECT my_decimal, my_varchar FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug #13573 (Wrong data inserted for too big values)
+#
+
+create table t1 (c1 decimal(64));
+--disable_ps_protocol
+insert into t1 values(
+89000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
+insert into t1 values(
+99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 *
+99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999);
+--enable_ps_protocol
+insert into t1 values(1e100);
+select * from t1;
+drop table t1;
+
+#
+# Bug#19667 group by a decimal expression yields wrong result
+#
+create table t1 (i int, j int);
+insert into t1 values (1,1), (1,2), (2,3), (2,4);
+select i, count(distinct j) from t1 group by i;
+select i+0.0 as i2, count(distinct j) from t1 group by i2;
+drop table t1;
+
+create table t1(f1 decimal(20,6));
+insert into t1 values (CAST('10:11:12' AS date) + interval 14 microsecond);
+insert into t1 values (CAST('10:11:12' AS time));
+select * from t1;
+drop table t1;
+
+#
+# Bug #8663 (cant use bigint as input to CAST)
+#
+select cast(19999999999999999999 as unsigned);
+
+#
+# Bug #24558: Increasing decimal column length causes data loss
+#
+
+create table t1(a decimal(18));
+insert into t1 values(123456789012345678);
+alter table t1 modify column a decimal(19);
+select * from t1;
+drop table t1;
+
+#
+# Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
+#
+
+select cast(11.1234 as DECIMAL(3,2));
+select * from (select cast(11.1234 as DECIMAL(3,2))) t;
+
+select cast(a as DECIMAL(3,2))
+ from (select 11.1233 as a
+ UNION select 11.1234
+ UNION select 12.1234
+ ) t;
+
+select cast(a as DECIMAL(3,2)), count(*)
+ from (select 11.1233 as a
+ UNION select 11.1234
+ UNION select 12.1234
+ ) t group by 1;
+
+#
+# Bug #28361 Buffer overflow in DECIMAL code on Windows
+#
+
+create table t1 (s varchar(100));
+insert into t1 values (0.00000000010000000000000000364321973154977415791655470655996396089904010295867919921875);
+drop table t1;
+
+#
+# Bug #27984 Long Decimal Maths produces truncated results
+#
+
+SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
+
+#
+# Bug #29415: CAST AS DECIMAL(P,S) with too big precision/scale
+#
+
+SELECT CAST(1 AS decimal(65,10));
+--error ER_TOO_BIG_PRECISION
+SELECT CAST(1 AS decimal(66,10));
+
+SELECT CAST(1 AS decimal(65,30));
+--error ER_TOO_BIG_SCALE
+SELECT CAST(1 AS decimal(65,31));
+
+CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
+INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
+SELECT a+CAST(1 AS decimal(65,30)) AS aa, SUM(b) FROM t1 GROUP BY aa;
+--error ER_TOO_BIG_SCALE
+SELECT a+CAST(1 AS decimal(65,31)) AS aa, SUM(b) FROM t1 GROUP BY aa;
+
+DROP TABLE t1;
+
+#
+# Bug #29417: assertion abort for a grouping query with decimal user variable
+#
+
+CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
+INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
+
+SET @a= CAST(1 AS decimal);
+SELECT 1 FROM t1 GROUP BY @b := @a, @b;
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests
+
+
diff --git a/mysql-test/t/type_ranges.test b/mysql-test/t/type_ranges.test
index 945d3577046..03ee91f14d8 100644
--- a/mysql-test/t/type_ranges.test
+++ b/mysql-test/t/type_ranges.test
@@ -28,10 +28,10 @@ CREATE TABLE t1 (
date_time datetime,
blob_col blob,
tinyblob_col tinyblob,
- mediumblob_col mediumblob not null,
- longblob_col longblob not null,
- options enum('one','two','tree') not null,
- flags set('one','two','tree') not null,
+ mediumblob_col mediumblob not null default '',
+ longblob_col longblob not null default '',
+ options enum('one','two','tree') not null ,
+ flags set('one','two','tree') not null default '',
PRIMARY KEY (auto),
KEY (utiny),
KEY (tiny),
@@ -71,7 +71,7 @@ ALTER TABLE t1
add new_field char(10) default "new" not null,
change blob_col new_blob_col varchar(20),
change date_field date_field char(10),
-alter column string set default "new default",
+alter column string set default "newdefault",
alter short drop default,
DROP INDEX utiny,
DROP INDEX ushort,
@@ -132,11 +132,11 @@ select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and not (t1.string<=>t2.
drop table t2;
-create table t2 (primary key (auto)) select auto+1 as auto,1 as t1, "a" as t2, repeat("a",256) as t3, binary repeat("b",256) as t4 from t1;
+create table t2 (primary key (auto)) select auto+1 as auto,1 as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4, repeat('a',4096) as t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
# We mask out the Privileges column because it differs with embedded server
--replace_column 8 #
show full columns from t2;
-select * from t2;
+select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
drop table t1,t2;
create table t1 (c int);
@@ -158,12 +158,19 @@ create table t2 ( id integer unsigned not null primary key );
insert into t1 values (1), (2);
insert into t2 values (1);
select t1.id as id_A, t2.id as id_B from t1 left join t2 using ( id );
+select t1.id as id_A, t2.id as id_B from t1 left join t2 on (t1.id = t2.id);
create table t3 (id_A integer unsigned not null, id_B integer unsigned null );
insert into t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 using ( id );
select * from t3;
+delete from t3;
+insert into t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 on (t1.id = t2.id);
+select * from t3;
drop table t3;
create table t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 using ( id );
select * from t3;
+drop table t3;
+create table t3 select t1.id as id_A, t2.id as id_B from t1 left join t2 on (t1.id = t2.id);
+select * from t3;
drop table t1,t2,t3;
# End of 4.1 tests
diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test
index 56df3328246..b1c816f3371 100644
--- a/mysql-test/t/type_set.test
+++ b/mysql-test/t/type_set.test
@@ -39,3 +39,20 @@ SELECT c FROM t1 ORDER BY concat(c);
DROP TABLE t1;
# End of 4.1 tests
+
+#
+# Bug#27069 set with identical elements are created
+#
+--error 1097
+create table t1(f1
+set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17',
+'18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33',
+'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49',
+'50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','128'));
+create table t1(f1
+set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17',
+'18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33',
+'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49',
+'50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','1'));
+show create table t1;
+drop table t1;
diff --git a/mysql-test/t/type_time.test b/mysql-test/t/type_time.test
index cb7e4f85ad1..5fc763be7fe 100644
--- a/mysql-test/t/type_time.test
+++ b/mysql-test/t/type_time.test
@@ -40,3 +40,40 @@ drop table t1;
# ##########################################################
# End of 4.1 tests
+
+#
+# Bug#29555: Comparing time values as strings may lead to a wrong result.
+#
+select cast('100:55:50' as time) < cast('24:00:00' as time);
+select cast('100:55:50' as time) < cast('024:00:00' as time);
+select cast('300:55:50' as time) < cast('240:00:00' as time);
+select cast('100:55:50' as time) > cast('24:00:00' as time);
+select cast('100:55:50' as time) > cast('024:00:00' as time);
+select cast('300:55:50' as time) > cast('240:00:00' as time);
+create table t1 (f1 time);
+insert into t1 values ('24:00:00');
+select cast('24:00:00' as time) = (select f1 from t1);
+drop table t1;
+
+#
+# Bug#29739: Incorrect time comparison in BETWEEN.
+#
+create table t1(f1 time, f2 time);
+insert into t1 values('20:00:00','150:00:00');
+select 1 from t1 where cast('100:00:00' as time) between f1 and f2;
+drop table t1;
+
+#
+# Bug#29729: Wrong conversion error led to an empty result set.
+#
+CREATE TABLE t1 (
+ f2 date NOT NULL,
+ f3 int(11) unsigned NOT NULL default '0',
+ PRIMARY KEY (f3, f2)
+);
+insert into t1 values('2007-07-01', 1);
+insert into t1 values('2007-07-01', 2);
+insert into t1 values('2007-07-02', 1);
+insert into t1 values('2007-07-02', 2);
+SELECT sum(f3) FROM t1 where f2='2007-07-01 00:00:00' group by f2;
+drop table t1;
diff --git a/mysql-test/t/type_timestamp.test b/mysql-test/t/type_timestamp.test
index 81c547c32f6..7b4af9e0c69 100644
--- a/mysql-test/t/type_timestamp.test
+++ b/mysql-test/t/type_timestamp.test
@@ -6,6 +6,9 @@
drop table if exists t1,t2;
--enable_warnings
+# Set timezone to GMT-3, to make it possible to use "interval 3 hour"
+set time_zone="+03:00";
+
CREATE TABLE t1 (a int, t timestamp);
CREATE TABLE t2 (a int, t datetime);
SET TIMESTAMP=1234;
@@ -29,6 +32,8 @@ INSERT INTO t1 VALUES ("my value", "myKey","1999-04-02 00:00:00");
SELECT stamp FROM t1 WHERE id="myKey";
UPDATE t1 SET value="my value" WHERE id="myKey";
SELECT stamp FROM t1 WHERE id="myKey";
+UPDATE t1 SET id="myKey" WHERE value="my value";
+SELECT stamp FROM t1 WHERE id="myKey";
drop table t1;
create table t1 (a timestamp);
@@ -320,3 +325,17 @@ select * from t1;
drop table t1;
# End of 4.1 tests
+
+# Restore timezone to default
+set time_zone= @@global.time_zone;
+
+CREATE TABLE t1 (
+`id` int(11) NOT NULL auto_increment,
+`username` varchar(80) NOT NULL default '',
+`posted_on` timestamp NOT NULL default '0000-00-00 00:00:00',
+PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
+
+show fields from t1;
+select is_nullable from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t1' and COLUMN_NAME='posted_on';
+drop table t1;
diff --git a/mysql-test/t/type_varchar.test b/mysql-test/t/type_varchar.test
new file mode 100644
index 00000000000..0aa5fb92129
--- /dev/null
+++ b/mysql-test/t/type_varchar.test
@@ -0,0 +1,200 @@
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+
+create table t1 (v varchar(30), c char(3), e enum('abc','def','ghi'), t text);
+copy_file $MYSQL_TEST_DIR/std_data/vchar.frm $MYSQLTEST_VARDIR/master-data/test/vchar.frm;
+truncate table vchar;
+show create table t1;
+show create table vchar;
+insert into t1 values ('abc', 'de', 'ghi', 'jkl');
+insert into t1 values ('abc ', 'de ', 'ghi', 'jkl ');
+insert into t1 values ('abc ', 'd ', 'ghi', 'jkl ');
+insert into vchar values ('abc', 'de', 'ghi', 'jkl');
+insert into vchar values ('abc ', 'de ', 'ghi', 'jkl ');
+insert into vchar values ('abc ', 'd ', 'ghi', 'jkl ');
+select length(v),length(c),length(e),length(t) from t1;
+select length(v),length(c),length(e),length(t) from vchar;
+alter table vchar add i int;
+show create table vchar;
+select length(v),length(c),length(e),length(t) from vchar;
+drop table t1, vchar;
+create table t1 (v varchar(20));
+insert into t1 values('a ');
+select v='a' from t1;
+select binary v='a' from t1;
+select binary v='a ' from t1;
+insert into t1 values('a');
+--error 1062
+alter table t1 add primary key (v);
+drop table t1;
+create table t1 (v varbinary(20));
+insert into t1 values('a');
+insert into t1 values('a ');
+alter table t1 add primary key (v);
+drop table t1;
+
+#
+# Test with varchar of lengths 254,255,256,258 & 258 to ensure we don't
+# have any problems with varchar with one or two byte length_bytes
+#
+
+create table t1 (v varchar(254), index (v));
+insert into t1 values ("This is a test ");
+insert into t1 values ("Some sample data");
+insert into t1 values (" garbage ");
+insert into t1 values (" This is a test ");
+insert into t1 values ("This is a test");
+insert into t1 values ("Hello world");
+insert into t1 values ("Foo bar");
+insert into t1 values ("This is a test");
+insert into t1 values ("MySQL varchar test");
+insert into t1 values ("test MySQL varchar");
+insert into t1 values ("This is a long string to have some random length data included");
+insert into t1 values ("Short string");
+insert into t1 values ("VSS");
+insert into t1 values ("Some samples");
+insert into t1 values ("Bar foo");
+insert into t1 values ("Bye");
+let $i= 255;
+let $j= 5;
+while ($j)
+{
+ select * from t1 where v like 'This is a test' order by v;
+ select * from t1 where v='This is a test' order by v;
+ select * from t1 where v like 'S%' order by v;
+ explain select * from t1 where v like 'This is a test' order by v;
+ explain select * from t1 where v='This is a test' order by v;
+ explain select * from t1 where v like 'S%' order by v;
+ eval alter table t1 change v v varchar($i);
+ inc $i;
+ dec $j;
+}
+let $i= 258;
+let $j= 6;
+while ($j)
+{
+ select * from t1 where v like 'This is a test' order by v;
+ select * from t1 where v='This is a test' order by v;
+ select * from t1 where v like 'S%' order by v;
+ explain select * from t1 where v like 'This is a test' order by v;
+ explain select * from t1 where v='This is a test' order by v;
+ explain select * from t1 where v like 'S%' order by v;
+ eval alter table t1 change v v varchar($i);
+ dec $i;
+ dec $j;
+}
+alter table t1 change v v varchar(254), drop key v;
+
+# Test with length(varchar) > 256 and key < 256 (to ensure things works with
+# different kind of packing
+
+alter table t1 change v v varchar(300), add key (v(10));
+select * from t1 where v like 'This is a test' order by v;
+select * from t1 where v='This is a test' order by v;
+select * from t1 where v like 'S%' order by v;
+explain select * from t1 where v like 'This is a test' order by v;
+explain select * from t1 where v='This is a test' order by v;
+explain select * from t1 where v like 'S%' order by v;
+drop table t1;
+
+#
+# bug#9339 - meaningless Field_varstring::get_key_image
+#
+create table t1 (pkcol varchar(16), othercol varchar(16), primary key (pkcol));
+insert into t1 values ('test', 'something');
+update t1 set othercol='somethingelse' where pkcol='test';
+select * from t1;
+drop table t1;
+
+#
+# Bug #9489: problems with key handling
+#
+
+create table t1 (a int, b varchar(12));
+insert into t1 values (1, 'A'), (22, NULL);
+create table t2 (a int);
+insert into t2 values (22), (22);
+select t1.a, t1.b, min(t1.b) from t1 inner join t2 ON t2.a = t1.a
+ group by t1.b, t1.a;
+drop table t1, t2;
+
+#
+# Bug #10543: convert varchar with index to text
+#
+create table t1 (f1 varchar(65500));
+create index index1 on t1(f1(10));
+show create table t1;
+alter table t1 modify f1 varchar(255);
+show create table t1;
+alter table t1 modify f1 tinytext;
+show create table t1;
+drop table t1;
+
+#
+# BUG#15588: String overrun
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1(f1 VARCHAR(100) DEFAULT 'test');
+INSERT INTO t1 VALUES(SUBSTR(f1, 1, 3));
+DROP TABLE IF EXISTS t1;
+
+CREATE TABLE t1(f1 CHAR(100) DEFAULT 'test');
+INSERT INTO t1 VALUES(SUBSTR(f1, 1, 3));
+DROP TABLE IF EXISTS t1;
+
+#
+# Bug#14897 "ResultSet.getString("table.column") sometimes doesn't find the
+# column"
+# Test that after upgrading an old 4.1 VARCHAR column to 5.0 VARCHAR we preserve
+# the original column metadata.
+#
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+
+create table t3 (
+ id int(11),
+ en varchar(255) character set utf8,
+ cz varchar(255) character set utf8
+);
+remove_file $MYSQLTEST_VARDIR/master-data/test/t3.frm;
+copy_file $MYSQL_TEST_DIR/std_data/14897.frm $MYSQLTEST_VARDIR/master-data/test/t3.frm;
+truncate table t3;
+insert into t3 (id, en, cz) values
+(1,'en string 1','cz string 1'),
+(2,'en string 2','cz string 2'),
+(3,'en string 3','cz string 3');
+
+create table t1 (
+ id int(11),
+ name_id int(11)
+);
+insert into t1 (id, name_id) values (1,1), (2,3), (3,3);
+
+create table t2 (id int(11));
+insert into t2 (id) values (1), (2), (3);
+
+# max_length is different for varchar fields in ps-protocol and we can't
+# replace a single metadata column, disable PS protocol
+--disable_ps_protocol
+--enable_metadata
+select t1.*, t2.id, t3.en, t3.cz from t1 left join t2 on t1.id=t2.id
+left join t3 on t1.id=t3.id order by t3.id;
+--disable_metadata
+--enable_ps_protocol
+drop table t1, t2, t3;
+
+#
+# Bug #11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
+#
+CREATE TABLE t1 (a CHAR(2));
+INSERT INTO t1 VALUES (10), (50), (30), ('1a'), (60), ('t');
+SELECT a,(a + 0) FROM t1 ORDER BY a;
+SELECT a,(a DIV 2) FROM t1 ORDER BY a;
+SELECT a,CAST(a AS SIGNED) FROM t1 ORDER BY a;
+DROP TABLE t1;
diff --git a/mysql-test/t/type_year.test b/mysql-test/t/type_year.test
index 9744da24c02..0e174a556d6 100644
--- a/mysql-test/t/type_year.test
+++ b/mysql-test/t/type_year.test
@@ -21,4 +21,12 @@ insert into t1 values (now());
select if(y = now(), 1, 0) from t1;
drop table t1;
-# End of 4.1 tests
+#
+# Bug #27176: Assigning a string to an year column has unexpected results
+#
+create table t1(a year);
+insert into t1 values (2000.5), ('2000.5'), ('2001a'), ('2.001E3');
+select * from t1;
+drop table t1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/udf.test b/mysql-test/t/udf.test
new file mode 100644
index 00000000000..22b8ed10a49
--- /dev/null
+++ b/mysql-test/t/udf.test
@@ -0,0 +1,365 @@
+--source include/have_udf.inc
+#
+# To run this tests the "sql/udf_example.c" need to be compiled into
+# udf_example.so and LD_LIBRARY_PATH should be setup to point out where
+# the library are.
+#
+
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Create the example functions from udf_example
+#
+
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION myfunc_double RETURNS REAL SONAME "$UDF_EXAMPLE_LIB";
+
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+--error ER_CANT_FIND_DL_ENTRY
+eval CREATE FUNCTION myfunc_nonexist RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION sequence RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION lookup RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION reverse_lookup
+ RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE AGGREGATE FUNCTION avgcost
+ RETURNS REAL SONAME "$UDF_EXAMPLE_LIB";
+
+--error 0
+select myfunc_double();
+select myfunc_double(1);
+select myfunc_double(78654);
+--error 1305
+select myfunc_nonexist();
+select myfunc_int();
+--error 0
+select lookup();
+select lookup("127.0.0.1");
+--error 0
+select lookup(127,0,0,1);
+select lookup("localhost");
+--error 0
+select reverse_lookup();
+
+# These two functions should return "localhost", but it's
+# depending on configuration, so just call them and don't log the result
+--disable_result_log
+select reverse_lookup("127.0.0.1");
+select reverse_lookup(127,0,0,1);
+--enable_result_log
+
+select reverse_lookup("localhost");
+--error 0
+select avgcost();
+--error 0
+select avgcost(100,23.76);
+create table t1(sum int, price float(24));
+insert into t1 values(100, 50.00), (100, 100.00);
+select avgcost(sum, price) from t1;
+delete from t1;
+insert into t1 values(100, 54.33), (200, 199.99);
+select avgcost(sum, price) from t1;
+drop table t1;
+
+#------------------------------------------------------------------------
+# BUG#17261 Passing a variable from a stored procedure to UDF crashes mysqld
+#------------------------------------------------------------------------
+
+select metaphon('hello');
+
+delimiter //;
+CREATE PROCEDURE `XXX1`(in testval varchar(10))
+begin
+select metaphon(testval);
+end//
+delimiter ;//
+
+call XXX1('hello');
+drop procedure xxx1;
+
+delimiter //;
+CREATE PROCEDURE `XXX2`()
+begin
+declare testval varchar(10);
+set testval = 'hello';
+select metaphon(testval);
+end//
+delimiter ;//
+
+call XXX2();
+drop procedure xxx2;
+
+#
+# Bug#19904: UDF: not initialized *is_null per row
+#
+
+CREATE TABLE bug19904(n INT, v varchar(10));
+INSERT INTO bug19904 VALUES (1,'one'),(2,'two'),(NULL,NULL),(3,'three'),(4,'four');
+SELECT myfunc_double(n) AS f FROM bug19904;
+SELECT metaphon(v) AS f FROM bug19904;
+DROP TABLE bug19904;
+
+#
+# Bug#21269: DEFINER-clause is allowed for UDF-functions
+#
+
+--error ER_PARSE_ERROR
+CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse
+RETURNS STRING SONAME "should_not_parse.so";
+
+--error ER_PARSE_ERROR
+CREATE DEFINER=someone@somewhere FUNCTION should_not_parse
+RETURNS STRING SONAME "should_not_parse.so";
+#
+# Bug#19862: Sort with filesort by function evaluates function twice
+#
+create table t1(f1 int);
+insert into t1 values(1),(2);
+explain select myfunc_int(f1) from t1 order by 1;
+drop table t1;
+
+#
+# Bug #21809: Error 1356 while selecting from view with grouping though
+# underlying select OK.
+#
+CREATE TABLE t1(a INT, b INT); INSERT INTO t1 values (1,1),(2,2);
+
+DELIMITER ||;
+CREATE FUNCTION fn(a int) RETURNS int DETERMINISTIC
+BEGIN
+ RETURN a;
+END
+||
+DELIMITER ;||
+
+CREATE VIEW v1 AS SELECT a, fn(MIN(b)) as c FROM t1 GROUP BY a;
+
+SELECT myfunc_int(a AS attr_name) FROM t1;
+EXPLAIN EXTENDED SELECT myfunc_int(a AS attr_name) FROM t1;
+EXPLAIN EXTENDED SELECT myfunc_int(a) FROM t1;
+SELECT a,c FROM v1;
+
+--error ER_PARSE_ERROR
+SELECT a, fn(MIN(b) xx) as c FROM t1 GROUP BY a;
+--error ER_PARSE_ERROR
+SELECT myfunc_int(fn(MIN(b) xx)) as c FROM t1 GROUP BY a;
+--error ER_PARSE_ERROR
+SELECT myfunc_int(test.fn(MIN(b) xx)) as c FROM t1 GROUP BY a;
+
+SELECT myfunc_int(fn(MIN(b)) xx) as c FROM t1 GROUP BY a;
+SELECT myfunc_int(test.fn(MIN(b)) xx) as c FROM t1 GROUP BY a;
+
+EXPLAIN EXTENDED SELECT myfunc_int(MIN(b) xx) as c FROM t1 GROUP BY a;
+EXPLAIN EXTENDED SELECT test.fn(MIN(b)) as c FROM t1 GROUP BY a;
+EXPLAIN EXTENDED SELECT myfunc_int(fn(MIN(b))) as c FROM t1 GROUP BY a;
+EXPLAIN EXTENDED SELECT myfunc_int(test.fn(MIN(b))) as c FROM t1 GROUP BY a;
+SELECT myfunc_int(MIN(b) xx) as c FROM t1 GROUP BY a;
+SELECT test.fn(MIN(b)) as c FROM t1 GROUP BY a;
+SELECT myfunc_int(fn(MIN(b))) as c FROM t1 GROUP BY a;
+SELECT myfunc_int(test.fn(MIN(b))) as c FROM t1 GROUP BY a;
+DROP VIEW v1;
+DROP TABLE t1;
+DROP FUNCTION fn;
+
+--echo End of 5.0 tests.
+
+#
+# Drop the example functions from udf_example
+#
+
+DROP FUNCTION metaphon;
+DROP FUNCTION myfunc_double;
+--error ER_SP_DOES_NOT_EXIST
+DROP FUNCTION myfunc_nonexist;
+DROP FUNCTION myfunc_int;
+DROP FUNCTION sequence;
+DROP FUNCTION lookup;
+DROP FUNCTION reverse_lookup;
+DROP FUNCTION avgcost;
+
+#
+# Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove
+# the UDF
+#
+select * from mysql.func;
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION is_const RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+
+select IS_const(3);
+
+drop function IS_const;
+
+select * from mysql.func;
+
+--error 1305
+select is_const(3);
+
+#
+# Bug#18761: constant expression as UDF parameters not passed in as constant
+#
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION is_const RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+
+select
+ is_const(3) as const,
+ is_const(3.14) as const,
+ is_const('fnord') as const,
+ is_const(2+3) as const,
+ is_const(rand()) as 'nc rand()',
+ is_const(sin(3.14)) as const,
+ is_const(upper('test')) as const;
+
+create table bug18761 (n int);
+insert into bug18761 values (null),(2);
+select
+ is_const(3) as const,
+ is_const(3.14) as const,
+ is_const('fnord') as const,
+ is_const(2+3) as const,
+ is_const(2+n) as 'nc 2+n ',
+ is_const(sin(n)) as 'nc sin(n)',
+ is_const(sin(3.14)) as const,
+ is_const(upper('test')) as const,
+ is_const(rand()) as 'nc rand()',
+ is_const(n) as 'nc n ',
+ is_const(is_const(n)) as 'nc ic?(n)',
+ is_const(is_const('c')) as const
+from
+ bug18761;
+drop table bug18761;
+
+--error 1241
+select is_const((1,2,3));
+
+drop function if exists is_const;
+
+#
+# Bug #25382: Passing NULL to an UDF called from stored procedures
+# crashes server
+#
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION myfunc_double RETURNS REAL SONAME "$UDF_EXAMPLE_LIB";
+
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
+
+delimiter //;
+create function f1(p1 varchar(255))
+returns varchar(255)
+begin
+ return metaphon(p1);
+end//
+
+create function f2(p1 varchar(255))
+returns double
+begin
+ return myfunc_double(p1);
+end//
+
+create function f3(p1 varchar(255))
+returns double
+begin
+ return myfunc_int(p1);
+end//
+
+delimiter ;//
+
+select f3(NULL);
+select f2(NULL);
+select f1(NULL);
+
+drop function f1;
+drop function f2;
+drop function f3;
+drop function metaphon;
+drop function myfunc_double;
+drop function myfunc_int;
+
+#
+# Bug #28921: Queries containing UDF functions are cached
+#
+
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+create table t1 (a char);
+
+set GLOBAL query_cache_size=1355776;
+reset query cache;
+
+select metaphon('MySQL') from t1;
+show status like "Qcache_hits";
+show status like "Qcache_queries_in_cache";
+
+select metaphon('MySQL') from t1;
+show status like "Qcache_hits";
+show status like "Qcache_queries_in_cache";
+
+drop table t1;
+drop function metaphon;
+set GLOBAL query_cache_size=default;
+
+#
+# Bug#28318 CREATE FUNCTION (UDF) requires a schema
+#
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest;
+--enable_warnings
+CREATE DATABASE mysqltest;
+USE mysqltest;
+DROP DATABASE mysqltest;
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
+DROP FUNCTION metaphon;
+USE test;
+
+#
+# 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/mysql-test/t/union.test b/mysql-test/t/union.test
index 994546e9d97..22f09466b1c 100644
--- a/mysql-test/t/union.test
+++ b/mysql-test/t/union.test
@@ -5,9 +5,6 @@
--disable_warnings
drop table if exists t1,t2,t3,t4,t5,t6;
--enable_warnings
-# PS doesn't work correctly with found_rows: to be fixed
---disable_ps_protocol
-
CREATE TABLE t1 (a int not null, b char (10) not null);
insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');
@@ -258,7 +255,7 @@ create temporary table t1 select a from t1 union select a from t2;
drop temporary table t1;
--error 1093
create table t1 select a from t1 union select a from t2;
---error 1109
+--error 1054
select a from t1 union select a from t2 order by t2.a;
drop table t1,t2;
@@ -393,8 +390,8 @@ create table t1 SELECT da from t2 UNION select dt from t2;
select * from t1;
show create table t1;
drop table t1;
-create table t1 SELECT dt from t2 UNION select sc from t2;
-select * from t1;
+create table t1 SELECT dt from t2 UNION select trim(sc) from t2;
+select trim(dt) from t1;
show create table t1;
drop table t1;
create table t1 SELECT dt from t2 UNION select sv from t2;
@@ -744,6 +741,36 @@ create table t2 select a from t1 union select b from t1;
show columns from t2;
drop table t2, t1;
+#
+# Bug #14216: UNION + DECIMAL wrong values in result
+#
+create table t1 (f1 decimal(60,25), f2 decimal(60,25));
+insert into t1 values (0.0,0.0);
+select f1 from t1 union all select f2 from t1;
+select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
+union all
+select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
+drop table t1;
+create table t1 (f1 decimal(60,24), f2 decimal(60,24));
+insert into t1 values (0.0,0.0);
+select f1 from t1 union all select f2 from t1;
+select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
+union all
+select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
+drop table t1;
+
+#
+# Test that union with VARCHAR produces dynamic row tables
+#
+
+create table t1 (a varchar(5));
+create table t2 select * from t1 union select 'abcdefghijkl';
+show create table t2;
+select row_format from information_schema.TABLES where table_schema="test" and table_name="t2";
+alter table t2 ROW_FORMAT=fixed;
+show create table t2;
+drop table t1,t2;
+
#
# correct conversion long string to TEXT (BUG#10025)
#
@@ -765,22 +792,89 @@ select 99 union all select id from t1 order by 1;
select id from t1 union all select 99 order by 1;
drop table t1;
-#
-# Bug #14216: UNION + DECIMAL wrong values in result
+# End of 4.1 tests
+
#
-create table t1 (f1 decimal(60,25), f2 decimal(60,25));
-insert into t1 values (0.0,0.0);
-select f1 from t1 union all select f2 from t1;
-select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
-union all
-select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
-drop table t1;
-create table t1 (f1 decimal(60,24), f2 decimal(60,24));
-insert into t1 values (0.0,0.0);
-select f1 from t1 union all select f2 from t1;
-select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
-union all
-select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
-drop table t1;
+# Bug#12185: Data type aggregation may produce wrong result
+#
+create table t1(f1 char(1), f2 char(5), f3 binary(1), f4 binary(5), f5 timestamp, f6 varchar(1) character set utf8 collate utf8_general_ci, f7 text);
+create table t2 as select *, f6 as f8 from t1 union select *, f7 from t1;
+show create table t2;
+drop table t1, t2;
-# End of 4.1 tests
+#
+# Bug#18175: Union select over 129 tables with a sum function fails.
+#
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1)) union
+(select avg(1)) union (select avg(1)) union (select avg(1));
+
+#
+# Bug #16881: password() and union select
+# (The issue was poor handling of character set aggregation.)
+#
+select _utf8'12' union select _latin1'12345';
+
+#
+# Bug #26661: UNION with ORDER BY undefined column in FROM list
+#
+
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (3),(1),(2),(4),(1);
+
+SELECT a FROM (SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a) AS test;
+--error 1054
+SELECT a FROM (SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY c) AS test;
+
+DROP TABLE t1;
+
+#
+# Bug#23345: Wrongly allowed INTO in a non-last select of a UNION.
+#
+--error 1221
+(select 1 into @var) union (select 1);
+(select 1) union (select 1 into @var);
+select @var;
+--error 1172
+(select 2) union (select 1 into @var);
+--echo End of 5.0 tests
diff --git a/mysql-test/t/update.test b/mysql-test/t/update.test
index e5287eacbc8..f79c9e773aa 100644
--- a/mysql-test/t/update.test
+++ b/mysql-test/t/update.test
@@ -31,7 +31,7 @@ CREATE TABLE t1
clicks int(10) unsigned DEFAULT '0' NOT NULL,
iclicks int(10) unsigned DEFAULT '0' NOT NULL,
uclicks int(10) unsigned DEFAULT '0' NOT NULL,
- ts timestamp(14),
+ ts timestamp,
PRIMARY KEY (place_id,ts)
);
@@ -52,7 +52,7 @@ CREATE TABLE t1 (
replyto varchar(255) NOT NULL default '',
subject varchar(100) NOT NULL default '',
timestamp int(10) unsigned NOT NULL default '0',
- tstamp timestamp(14) NOT NULL,
+ tstamp timestamp NOT NULL,
status int(3) NOT NULL default '0',
type varchar(15) NOT NULL default '',
assignment int(10) unsigned NOT NULL default '0',
@@ -315,3 +315,119 @@ create table t1(f1 int);
update t1 set f2=1 order by f2;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #24035: performance degradation with condition int_field=big_decimal
+#
+
+CREATE TABLE t1 (
+ request_id int unsigned NOT NULL auto_increment,
+ user_id varchar(12) default NULL,
+ time_stamp datetime NOT NULL default '0000-00-00 00:00:00',
+ ip_address varchar(15) default NULL,
+ PRIMARY KEY (request_id),
+ KEY user_id_2 (user_id,time_stamp)
+);
+
+INSERT INTO t1 (user_id) VALUES ('user1');
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+INSERT INTO t1(user_id) SELECT user_id FROM t1;
+
+flush status;
+SELECT user_id FROM t1 WHERE request_id=9999999999999;
+show status like '%Handler_read%';
+SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
+show status like '%Handler_read%';
+UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
+show status like '%Handler_read%';
+UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
+show status like '%Handler_read%';
+
+DROP TABLE t1;
+
+#
+# Bug #24010: INSERT INTO ... SELECT fails on unique constraint with data it
+# doesn't select
+#
+CREATE TABLE t1 (
+
+ a INT(11),
+ quux decimal( 31, 30 ),
+
+ UNIQUE KEY bar (a),
+ KEY quux (quux)
+);
+
+INSERT INTO
+ t1 ( a, quux )
+VALUES
+ ( 1, 1 ),
+ ( 2, 0.1 );
+
+INSERT INTO t1( a )
+ SELECT @newA := 1 + a FROM t1 WHERE quux <= 0.1;
+
+SELECT * FROM t1;
+
+DROP TABLE t1;
+
+#
+# Bug #22364: Inconsistent "matched rows" when executing UPDATE
+#
+
+connect (con1,localhost,root,,test);
+connection con1;
+
+set tmp_table_size=1024;
+
+# Create the test tables
+create table t1 (id int, a int, key idx(a));
+create table t2 (id int unsigned not null auto_increment primary key, a int);
+insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
+insert into t2(a) select a from t2;
+insert into t2(a) select a from t2;
+insert into t2(a) select a from t2;
+update t2 set a=id;
+insert into t1 select * from t2;
+
+# Check that the number of matched rows is correct when the temporary
+# table is small enough to not be converted to MyISAM
+select count(*) from t1 join t2 on (t1.a=t2.a);
+--enable_info
+update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
+--disable_info
+
+# Increase table sizes
+insert into t2(a) select a from t2;
+update t2 set a=id;
+truncate t1;
+insert into t1 select * from t2;
+
+# Check that the number of matched rows is correct when the temporary
+# table has to be converted to MyISAM
+select count(*) from t1 join t2 on (t1.a=t2.a);
+--enable_info
+update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
+--disable_info
+
+# Check that the number of matched rows is correct when there are duplicate
+# key errors
+update t1 set a=1;
+update t2 set a=1;
+select count(*) from t1 join t2 on (t1.a=t2.a);
+--enable_info
+update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
+--disable_info
+
+drop table t1,t2;
+
+connection default;
+disconnect con1;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/user_limits.test b/mysql-test/t/user_limits.test
new file mode 100644
index 00000000000..af0f6545ac4
--- /dev/null
+++ b/mysql-test/t/user_limits.test
@@ -0,0 +1,169 @@
+#
+# Test behavior of various per-account limits (aka quotas)
+#
+
+# Requires privileges to be enabled
+-- source include/not_embedded.inc
+
+# Prepare play-ground
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (i int);
+# Just be sure that nothing will bother us
+delete from mysql.user where user like 'mysqltest\_%';
+delete from mysql.db where user like 'mysqltest\_%';
+delete from mysql.tables_priv where user like 'mysqltest\_%';
+delete from mysql.columns_priv where user like 'mysqltest\_%';
+flush privileges;
+
+# Limits doesn't work with prepared statements (yet)
+--disable_ps_protocol
+
+# Test of MAX_QUERIES_PER_HOUR limit
+grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2;
+# This ensures that counters are reset and makes test scheduling independent
+flush user_resources;
+connect (mqph, localhost, mysqltest_1,,);
+connection mqph;
+select * from t1;
+select * from t1;
+--error 1226
+select * from t1;
+connect (mqph2, localhost, mysqltest_1,,);
+connection mqph2;
+--error 1226
+select * from t1;
+# cleanup
+connection default;
+drop user mysqltest_1@localhost;
+disconnect mqph;
+disconnect mqph2;
+
+# Test of MAX_UPDATES_PER_HOUR limit
+grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2;
+flush user_resources;
+connect (muph, localhost, mysqltest_1,,);
+connection muph;
+select * from t1;
+select * from t1;
+select * from t1;
+delete from t1;
+delete from t1;
+--error 1226
+delete from t1;
+select * from t1;
+connect (muph2, localhost, mysqltest_1,,);
+connection muph2;
+--error 1226
+delete from t1;
+select * from t1;
+# Cleanup
+connection default;
+drop user mysqltest_1@localhost;
+disconnect muph;
+disconnect muph2;
+
+# Test of MAX_CONNECTIONS_PER_HOUR limit
+grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2;
+flush user_resources;
+connect (mcph1, localhost, mysqltest_1,,);
+connection mcph1;
+select * from t1;
+connect (mcph2, localhost, mysqltest_1,,);
+connection mcph2;
+select * from t1;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error 1226
+connect (mcph3, localhost, mysqltest_1,,);
+# Old connection is still ok
+select * from t1;
+# Let us try to close old connections and try again. This will also test that
+# counters are not thrown away if there are no connections for this user.
+disconnect mcph1;
+disconnect mcph2;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error 1226
+connect (mcph3, localhost, mysqltest_1,,);
+# Cleanup
+connection default;
+drop user mysqltest_1@localhost;
+
+# Test of MAX_USER_CONNECTIONS limit
+# We need this to reset internal mqh_used variable
+flush privileges;
+grant usage on *.* to mysqltest_1@localhost with max_user_connections 2;
+flush user_resources;
+connect (muc1, localhost, mysqltest_1,,);
+connection muc1;
+select * from t1;
+connect (muc2, localhost, mysqltest_1,,);
+connection muc2;
+select * from t1;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error 1226
+connect (muc3, localhost, mysqltest_1,,);
+# Closing of one of connections should help
+disconnect muc1;
+connect (muc3, localhost, mysqltest_1,,);
+select * from t1;
+# Changing of limit should also help (and immediately)
+connection default;
+grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
+flush user_resources;
+connect (muc4, localhost, mysqltest_1,,);
+connection muc4;
+select * from t1;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error 1226
+connect (muc5, localhost, mysqltest_1,,);
+# Clean up
+connection default;
+disconnect muc2;
+disconnect muc3;
+disconnect muc4;
+drop user mysqltest_1@localhost;
+
+# Now let us test interaction between global and per-account
+# max_user_connections limits
+select @@session.max_user_connections, @@global.max_user_connections;
+# Local max_user_connections variable can't be set directly
+# since this limit is per-account
+--error 1229
+set session max_user_connections= 2;
+# But it is ok to set global max_user_connections
+set global max_user_connections= 2;
+select @@session.max_user_connections, @@global.max_user_connections;
+# Let us check that global limit works
+grant usage on *.* to mysqltest_1@localhost;
+flush user_resources;
+connect (muca1, localhost, mysqltest_1,,);
+connection muca1;
+select @@session.max_user_connections, @@global.max_user_connections;
+connect (muca2, localhost, mysqltest_1,,);
+connection muca2;
+select * from t1;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error 1203
+connect (muca3, localhost, mysqltest_1,,);
+# Now we are testing that per-account limit prevails over gloabl limit
+connection default;
+grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
+flush user_resources;
+connect (muca3, localhost, mysqltest_1,,);
+connection muca3;
+select @@session.max_user_connections, @@global.max_user_connections;
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+--error 1226
+connect (muca4, localhost, mysqltest_1,,);
+# Cleanup
+connection default;
+disconnect muca1;
+disconnect muca2;
+disconnect muca3;
+set global max_user_connections= 0;
+drop user mysqltest_1@localhost;
+--enable_ps_protocol
+
+# Final cleanup
+drop table t1;
diff --git a/mysql-test/t/user_var-binlog.test b/mysql-test/t/user_var-binlog.test
index 6373a1cc426..57bf9df2fb0 100644
--- a/mysql-test/t/user_var-binlog.test
+++ b/mysql-test/t/user_var-binlog.test
@@ -1,5 +1,4 @@
-# Embedded server does not support binlogging
---source include/not_embedded.inc
+-- source include/have_log_bin.inc
# Check that user variables are binlogged correctly (BUG#3875)
create table t1 (a varchar(50));
@@ -10,12 +9,12 @@ INSERT INTO t1 VALUES(@`a b`);
set @var1= "';aaa";
SET @var2=char(ascii('a'));
insert into t1 values (@var1),(@var2);
-show binlog events from 79;
+show binlog events from 98;
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
# absolutely need variables names to be quoted and strings to be
# escaped).
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001
+--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
drop table t1;
# End of 4.1 tests
diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test
index 7691a574a2a..3a3e8f88f83 100644
--- a/mysql-test/t/user_var.test
+++ b/mysql-test/t/user_var.test
@@ -20,6 +20,7 @@ insert into t2 select distinct i from t1;
select * from t2;
select distinct t2.i,@vv1:=if(sv1.i,1,0),@vv2:=if(sv2.i,1,0),@vv3:=if(sv3.i,1,0), @vv1+@vv2+@vv3 from t2 left join t1 as sv1 on sv1.i=t2.i and sv1.v=1 left join t1 as sv2 on sv2.i=t2.i and sv2.v=2 left join t1 as sv3 on sv3.i=t2.i and sv3.v=3;
explain select * from t1 where i=@vv1;
+select @vv1,i,v from t1 where i=@vv1;
explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
explain select @vv1:=i from t1 where i=@vv1;
explain select * from t1 where i=@vv1;
@@ -69,6 +70,10 @@ create table t1 (i int not null);
insert t1 values (1),(2),(2),(3),(3),(3);
select @a:=0; select @a, @a:=@a+count(*), count(*), @a from t1 group by i;
select @a:=0; select @a+0, @a:=@a+0+count(*), count(*), @a+0 from t1 group by i;
+
+set @a=0;
+select @a,@a:="hello",@a,@a:=3,@a,@a:="hello again" from t1 group by i;
+select @a,@a:="hello",@a,@a:=3,@a,@a:="hello again" from t1 group by i;
drop table t1;
#
@@ -117,7 +122,7 @@ select coercibility(@v1),coercibility(@v2),coercibility(@v3),coercibility(@v4);
#
--error 1064
set session @honk=99;
---error 1105
+--error 1382
set one_shot @honk=99;
#
@@ -138,7 +143,97 @@ select @@Max_Allowed_Packet;
select @@version;
--replace_column 1 #
select @@global.version;
---replace_column 1 #
-select @@session.VERSION;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+# Bug #6598: problem with cast(NULL as signed integer);
+#
+
+set @first_var= NULL;
+create table t1 select @first_var;
+show create table t1;
+drop table t1;
+set @first_var= cast(NULL as signed integer);
+create table t1 select @first_var;
+show create table t1;
+drop table t1;
+set @first_var= NULL;
+create table t1 select @first_var;
+show create table t1;
+drop table t1;
+set @first_var= concat(NULL);
+create table t1 select @first_var;
+show create table t1;
+drop table t1;
+set @first_var=1;
+set @first_var= cast(NULL as CHAR);
+create table t1 select @first_var;
+show create table t1;
+drop table t1;
+
+#
+# Bug #7498 User variable SET saves SIGNED BIGINT as UNSIGNED BIGINT
+#
+
+# First part, set user var to large number and select it
+set @a=18446744071710965857;
+select @a;
+
+# Second part, set user var from large number in table
+# then select it
+CREATE TABLE `bigfailure` (
+ `afield` BIGINT UNSIGNED NOT NULL
+);
+INSERT INTO `bigfailure` VALUES (18446744071710965857);
+SELECT * FROM bigfailure;
+select * from (SELECT afield FROM bigfailure) as b;
+select * from bigfailure where afield = (SELECT afield FROM bigfailure);
+select * from bigfailure where afield = 18446744071710965857;
+# This is fixed in 5.0, to be uncommented there
+#select * from bigfailure where afield = '18446744071710965857';
+select * from bigfailure where afield = 18446744071710965856+1;
+
+SET @a := (SELECT afield FROM bigfailure);
+SELECT @a;
+SET @a := (select afield from (SELECT afield FROM bigfailure) as b);
+SELECT @a;
+SET @a := (select * from bigfailure where afield = (SELECT afield FROM bigfailure));
+SELECT @a;
+
+drop table bigfailure;
+
+#
+# Bug#16861: User defined variable can have a wrong value if a tmp table was
+# used.
+#
+create table t1(f1 int, f2 int);
+insert into t1 values (1,2),(2,3),(3,1);
+select @var:=f2 from t1 group by f1 order by f2 desc limit 1;
+select @var;
+create table t2 as select @var:=f2 from t1 group by f1 order by f2 desc limit 1;
+select * from t2;
+select @var;
+drop table t1,t2;
+
+#
+# Bug#19024 - SHOW COUNT(*) WARNINGS not return Errors
+#
+--error 1064
+insert into city 'blah';
+SHOW COUNT(*) WARNINGS;
+SHOW COUNT(*) ERRORS;
+
+#
+# Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.
+#
+create table t1(f1 int, f2 varchar(2), f3 float, f4 decimal(2,1));
+insert into t1 values
+ (1, "a", 1.5, 1.6), (1, "a", 1.5, 1.6), (2, "b", 2.5, 2.6),
+ (3, "c", 3.5, 3.6), (4, "d", 4.5, 4.6), (1, "a", 1.5, 1.6),
+ (3, "c", 3.5, 3.6), (1, "a", 1.5, 1.6);
+select @a:=f1, count(f1) from t1 group by 1 desc;
+select @a:=f1, count(f1) from t1 group by 1 asc;
+select @a:=f2, count(f2) from t1 group by 1 desc;
+select @a:=f3, count(f3) from t1 group by 1 desc;
+select @a:=f4, count(f4) from t1 group by 1 desc;
+drop table t1;
diff --git a/mysql-test/t/utils.sh b/mysql-test/t/utils.sh
new file mode 100644
index 00000000000..b3f4744947d
--- /dev/null
+++ b/mysql-test/t/utils.sh
@@ -0,0 +1,55 @@
+###########################################################################
+#
+# This file provides utility functions and is included by other scripts.
+#
+# The following global variables must be set before calling functions from this
+# file:
+# - basename -- base name of the calling script (main application);
+# - log_file -- where to store log records;
+#
+###########################################################################
+
+log()
+{
+ [ -z "$log_file" ] && return;
+
+ log_level="$1"
+ log_msg="$2"
+ ts=`date`
+
+ echo "[$ts] [$basename] [$log_level] $log_msg" >> "$log_file";
+}
+
+###########################################################################
+
+log_debug()
+{
+ log 'DEBUG' "$1"
+}
+
+###########################################################################
+
+log_info()
+{
+ log 'INFO' "$1"
+ echo "$1"
+}
+
+###########################################################################
+
+log_error()
+{
+ log 'ERROR' "$1"
+ echo "Error: $1"
+}
+
+###########################################################################
+
+quit()
+{
+ exit_status="$1"
+
+ log_debug "-- $basename: finished (exit_status: $exit_status) --"
+
+ exit $exit_status
+}
diff --git a/mysql-test/t/varbinary.test b/mysql-test/t/varbinary.test
index 5fbd116d7b8..2f0c1c83e84 100644
--- a/mysql-test/t/varbinary.test
+++ b/mysql-test/t/varbinary.test
@@ -1,3 +1,7 @@
+# This test uses chmod, can't be run with root permissions
+-- source include/not_as_root.inc
+
+
# Initialise
--disable_warnings
drop table if exists t1;
@@ -37,3 +41,46 @@ select x,xx from t1;
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #19371 VARBINARY() have trailing zeros after upgrade from 4.1
+#
+
+# Test with a saved table from 4.1
+copy_file std_data/bug19371.frm $MYSQLTEST_VARDIR/master-data/test/t1.frm;
+chmod 0777 $MYSQLTEST_VARDIR/master-data/test/t1.frm;
+copy_file std_data/bug19371.MYD $MYSQLTEST_VARDIR/master-data/test/t1.MYD;
+chmod 0777 $MYSQLTEST_VARDIR/master-data/test/t1.MYD;
+copy_file std_data/bug19371.MYI $MYSQLTEST_VARDIR/master-data/test/t1.MYI;
+chmod 0777 $MYSQLTEST_VARDIR/master-data/test/t1.MYI;
+
+# Everything _looks_ fine
+show create table t1;
+
+# But the length of the varbinary columns are too long
+select length(a), length(b) from t1;
+
+# Run CHECK TABLE, it should indicate table need a REPAIR TABLE
+CHECK TABLE t1 FOR UPGRADE;
+
+# Run REPAIR TABLE to alter the table and repair
+# the varbinary fields
+REPAIR TABLE t1;
+
+# Now check it's back to normal
+show create table t1;
+select length(a), length(b) from t1;
+insert into t1 values("ccc", "ddd");
+select length(a), length(b) from t1;
+select hex(a), hex(b) from t1;
+select concat("'", a, "'"), concat("'", b, "'") from t1;
+
+drop table t1;
+
+# Check that the fix does not affect table created with current version
+create table t1(a varbinary(255));
+insert into t1 values("aaa ");
+select length(a) from t1;
+alter table t1 modify a varchar(255);
+select length(a) from t1;
+
diff --git a/mysql-test/t/variables-big.test b/mysql-test/t/variables-big.test
new file mode 100644
index 00000000000..43326f3d016
--- /dev/null
+++ b/mysql-test/t/variables-big.test
@@ -0,0 +1,20 @@
+#
+# test variables big
+#
+
+--source include/big_test.inc
+
+#
+# Bug #27322 failure to allocate transaction_prealloc_size causes crash
+#
+
+set session transaction_prealloc_size=1024*1024*1024*1;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*2;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*3;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*4;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*5;
+show processlist;
diff --git a/mysql-test/t/variables-master.opt b/mysql-test/t/variables-master.opt
deleted file mode 100644
index a0577107f74..00000000000
--- a/mysql-test/t/variables-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---max_join_size=10
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 371cd6bc9b1..b661d0e8ae7 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -5,10 +5,54 @@
drop table if exists t1,t2;
--enable_warnings
-set @`test`=1,@TEST=3,@select=2,@t5=1.23456;
-select @test,@`select`,@TEST,@not_used;
+#
+# Bug #19263: variables.test doesn't clean up after itself (I/II -- save)
+#
+set @my_binlog_cache_size =@@global.binlog_cache_size;
+set @my_connect_timeout =@@global.connect_timeout;
+set @my_delayed_insert_timeout =@@global.delayed_insert_timeout;
+set @my_delayed_queue_size =@@global.delayed_queue_size;
+set @my_flush =@@global.flush;
+set @my_flush_time =@@global.flush_time;
+set @my_key_buffer_size =@@global.key_buffer_size;
+set @my_max_binlog_cache_size =@@global.max_binlog_cache_size;
+set @my_max_binlog_size =@@global.max_binlog_size;
+set @my_max_connect_errors =@@global.max_connect_errors;
+set @my_max_delayed_threads =@@global.max_delayed_threads;
+set @my_max_heap_table_size =@@global.max_heap_table_size;
+set @my_max_insert_delayed_threads=@@global.max_insert_delayed_threads;
+set @my_max_join_size =@@global.max_join_size;
+set @my_max_user_connections =@@global.max_user_connections;
+set @my_max_write_lock_count =@@global.max_write_lock_count;
+set @my_myisam_data_pointer_size =@@global.myisam_data_pointer_size;
+set @my_net_buffer_length =@@global.net_buffer_length;
+set @my_net_write_timeout =@@global.net_write_timeout;
+set @my_net_read_timeout =@@global.net_read_timeout;
+set @my_query_cache_limit =@@global.query_cache_limit;
+set @my_query_cache_type =@@global.query_cache_type;
+set @my_rpl_recovery_rank =@@global.rpl_recovery_rank;
+set @my_server_id =@@global.server_id;
+set @my_slow_launch_time =@@global.slow_launch_time;
+set @my_storage_engine =@@global.storage_engine;
+set @my_thread_cache_size =@@global.thread_cache_size;
+
+# case insensitivity tests (new in 5.0)
+set @`test`=1;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+set @TEST=2;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+set @"tEST"=3;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+set @`TeST`=4;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+select @`teST`:=5;
+select @test, @`test`, @TEST, @`TEST`, @"teSt";
+
+set @select=2,@t5=1.23456;
+select @`select`,@not_used;
set @test_int=10,@test_double=1e-10,@test_string="abcdeghi",@test_string2="abcdefghij",@select=NULL;
---replace_result e-0 e- e+0 e+
+# Expected result "1e-10", windows returns "1e-010"
+--replace_result 1e-010 1e-10
select @test_int,@test_double,@test_string,@test_string2,@select;
set @test_int="hello",@test_double="hello",@test_string="hello",@test_string2="hello";
select @test_int,@test_double,@test_string,@test_string2;
@@ -36,7 +80,7 @@ drop table t1;
#
# Test system variables
#
-
+set GLOBAL max_join_size=10;
set max_join_size=100;
show variables like 'max_join_size';
--replace_result 18446744073709551615 HA_POS_ERROR 4294967295 HA_POS_ERROR
@@ -60,16 +104,19 @@ explain extended select @@IDENTITY,last_insert_id(), @@identity;
set big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
-set global concurrent_insert=ON;
+set global concurrent_insert=2;
show variables like 'concurrent_insert';
set global concurrent_insert=1;
show variables like 'concurrent_insert';
set global concurrent_insert=0;
show variables like 'concurrent_insert';
-set global concurrent_insert=OFF;
-show variables like 'concurrent_insert';
set global concurrent_insert=DEFAULT;
-show variables like 'concurrent_insert';
+select @@concurrent_insert;
+
+set global timed_mutexes=ON;
+show variables like 'timed_mutexes';
+set global timed_mutexes=0;
+show variables like 'timed_mutexes';
set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="MERGE";
show local variables like 'storage_engine';
@@ -92,6 +139,7 @@ show global variables like 'net_%';
show session variables like 'net_%';
set net_buffer_length=1;
show variables like 'net_buffer_length';
+#warning 1292
set net_buffer_length=2000000000;
show variables like 'net_buffer_length';
@@ -153,7 +201,7 @@ set collation_connection=NULL;
set global autocommit=1;
--error 1238
select @@global.timestamp;
---error 1193
+--error 1238
set @@version='';
--error 1229
set @@concurrent_insert=1;
@@ -163,8 +211,6 @@ set @@global.sql_auto_is_null=1;
select @@global.sql_auto_is_null;
--error 1229
set myisam_max_sort_file_size=100;
---error 1229
-set myisam_max_extra_sort_file_size=100;
--error 1231
set @@SQL_WARNINGS=NULL;
@@ -211,9 +257,6 @@ set max_tmp_tables=100;
set global max_user_connections=100;
select @@max_user_connections;
set global max_write_lock_count=100;
-set global myisam_max_extra_sort_file_size=100;
-select @@myisam_max_extra_sort_file_size;
-set global myisam_max_sort_file_size=100;
set myisam_sort_buffer_size=100;
set net_buffer_length=100;
set net_read_timeout=100;
@@ -227,6 +270,10 @@ set global rpl_recovery_rank=100;
set global server_id=100;
set global slow_launch_time=100;
set sort_buffer_size=100;
+set @@max_sp_recursion_depth=10;
+select @@max_sp_recursion_depth;
+set @@max_sp_recursion_depth=0;
+select @@max_sp_recursion_depth;
set sql_auto_is_null=1;
select @@sql_auto_is_null;
set @@sql_auto_is_null=0;
@@ -243,6 +290,8 @@ select @@sql_max_join_size,@@max_join_size;
set sql_quote_show_create=1;
set sql_safe_updates=1;
set sql_select_limit=1;
+# reset it, so later tests don't get confused
+set sql_select_limit=default;
set sql_warnings=1;
set global table_cache=100;
set storage_engine=myisam;
@@ -254,6 +303,22 @@ set wait_timeout=100;
set log_warnings=1;
#
+# Bugs: #20392: INSERT_ID session variable has weird value
+#
+select @@session.insert_id;
+set @save_insert_id=@@session.insert_id;
+set session insert_id=20;
+select @@session.insert_id;
+
+set session last_insert_id=100;
+select @@session.insert_id;
+select @@session.last_insert_id;
+select @@session.insert_id;
+
+set @@session.insert_id=@save_insert_id;
+select @@session.insert_id;
+
+#
# key buffer
#
@@ -355,8 +420,8 @@ show create table t1;
drop table t1;
#
# What types and widths have variables?
-set @arg00= 8, @arg01= 8.8, @arg02= 'a string';
-create table t1 as select @arg00 as c1, @arg01 as c2, @arg02 as c3;
+set @arg00= 8, @arg01= 8.8, @arg02= 'a string', @arg03= 0.2e0;
+create table t1 as select @arg00 as c1, @arg01 as c2, @arg02 as c3, @arg03 as c4;
show create table t1;
drop table t1;
@@ -441,6 +506,30 @@ set lc_time_names=0;
select @@lc_time_names;
#
+# Bug #22648 LC_TIME_NAMES: Setting GLOBAL has no effect
+#
+select @@global.lc_time_names, @@lc_time_names;
+set @@global.lc_time_names=fr_FR;
+select @@global.lc_time_names, @@lc_time_names;
+--echo New connection
+connect (con1,localhost,root,,);
+connection con1;
+select @@global.lc_time_names, @@lc_time_names;
+set @@lc_time_names=ru_RU;
+select @@global.lc_time_names, @@lc_time_names;
+disconnect con1;
+connection default;
+--echo Returnung to default connection
+select @@global.lc_time_names, @@lc_time_names;
+set lc_time_names=default;
+select @@global.lc_time_names, @@lc_time_names;
+set @@global.lc_time_names=default;
+select @@global.lc_time_names, @@lc_time_names;
+set @@lc_time_names=default;
+select @@global.lc_time_names, @@lc_time_names;
+
+
+#
# Bug #13334: query_prealloc_size default less than minimum
#
set @test = @@query_prealloc_size;
@@ -455,3 +544,177 @@ select @@query_prealloc_size = @test;
set global sql_mode=repeat('a',80);
--echo End of 4.1 tests
+
+#
+# Bug#6282 Packet error with SELECT INTO
+#
+
+create table t1 (a int);
+select a into @x from t1;
+show warnings;
+drop table t1;
+
+#
+# Bug #10339: read only variables.
+#
+
+--error 1238
+set @@warning_count=1;
+--error 1238
+set @@global.error_count=1;
+
+#
+# Bug #10351: Setting ulong variable to > MAX_ULONG fails on 32-bit platform
+#
+
+set @@max_heap_table_size= 4294967296;
+select @@max_heap_table_size > 0;
+set global max_heap_table_size= 4294967296;
+select @@max_heap_table_size > 0;
+set @@max_heap_table_size= 4294967296;
+select @@max_heap_table_size > 0;
+
+#
+# Bug #11775 Variable character_set_system does not exist (sometimes)
+#
+select @@character_set_system;
+--error 1238
+set global character_set_system = latin1;
+--error 1238
+set @@global.version_compile_os='234';
+
+#
+# Check character_set_filesystem variable
+#
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=default;
+select @@character_set_filesystem;
+set @@global.character_set_filesystem=default;
+select @@global.character_set_filesystem;
+
+#
+# Bug #17849: Show sql_big_selects in SHOW VARIABLES
+#
+set @old_sql_big_selects = @@sql_big_selects;
+set @@sql_big_selects = 1;
+show variables like 'sql_big_selects';
+set @@sql_big_selects = @old_sql_big_selects;
+
+#
+# Bug #16195: SHOW VARIABLES doesn't report correctly sql_warnings and
+# sql_notes values
+#
+set @@sql_notes = 0, @@sql_warnings = 0;
+show variables like 'sql_notes';
+show variables like 'sql_warnings';
+set @@sql_notes = 1, @@sql_warnings = 1;
+show variables like 'sql_notes';
+show variables like 'sql_warnings';
+
+#
+# Bug #12792: @@system_time_zone is not SELECTable.
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 #
+select @@system_time_zone;
+
+#
+# Bug #15684: system variables cannot be SELECTed (e.g. @@version_comment)
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 # 2 # 3 # 4 #
+select @@version, @@version_comment, @@version_compile_machine,
+ @@version_compile_os;
+
+#
+# Bug #1039: make tmpdir and datadir available as @@variables (also included
+# basedir)
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 # 2 # 3 #
+select @@basedir, @@datadir, @@tmpdir;
+--replace_column 2 #
+show variables like 'basedir';
+--replace_column 2 #
+show variables like 'datadir';
+--replace_column 2 #
+show variables like 'tmpdir';
+
+#
+# Bug #19606: make ssl settings available via SHOW VARIABLES and @@variables
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 # 2 # 3 # 4 # 5 #
+select @@ssl_ca, @@ssl_capath, @@ssl_cert, @@ssl_cipher, @@ssl_key;
+--replace_column 2 #
+show variables like 'ssl%';
+
+#
+# Bug #19616: make log_queries_not_using_indexes available in SHOW VARIABLES
+# and as @@log_queries_not_using_indexes
+#
+select @@log_queries_not_using_indexes;
+show variables like 'log_queries_not_using_indexes';
+
+#
+# Bug#20908: Crash if select @@""
+#
+--error ER_PARSE_ERROR
+select @@"";
+--error ER_PARSE_ERROR
+select @@&;
+--error ER_PARSE_ERROR
+select @@@;
+
+#
+# Bug#20166 mysql-test-run.pl does not test system privilege tables creation
+#
+# Don't actually output, since it depends on the system
+--replace_column 1 #
+select @@hostname;
+--error 1238
+set @@hostname= "anothername";
+--replace_column 2 #
+show variables like 'hostname';
+
+--echo End of 5.0 tests
+
+# This is at the very after the versioned tests, since it involves doing
+# cleanup
+#
+# Bug #19263: variables.test doesn't clean up after itself (II/II --
+# restore)
+#
+set global binlog_cache_size =@my_binlog_cache_size;
+set global connect_timeout =@my_connect_timeout;
+set global delayed_insert_timeout =@my_delayed_insert_timeout;
+set global delayed_queue_size =@my_delayed_queue_size;
+set global flush =@my_flush;
+set global flush_time =@my_flush_time;
+set global key_buffer_size =@my_key_buffer_size;
+set global max_binlog_cache_size =default; #@my_max_binlog_cache_size;
+set global max_binlog_size =@my_max_binlog_size;
+set global max_connect_errors =@my_max_connect_errors;
+set global max_delayed_threads =@my_max_delayed_threads;
+set global max_heap_table_size =@my_max_heap_table_size;
+set global max_insert_delayed_threads=@my_max_insert_delayed_threads;
+set global max_join_size =@my_max_join_size;
+set global max_user_connections =@my_max_user_connections;
+set global max_write_lock_count =@my_max_write_lock_count;
+set global myisam_data_pointer_size =@my_myisam_data_pointer_size;
+set global net_buffer_length =@my_net_buffer_length;
+set global net_write_timeout =@my_net_write_timeout;
+set global net_read_timeout =@my_net_read_timeout;
+set global query_cache_limit =@my_query_cache_limit;
+set global query_cache_type =@my_query_cache_type;
+set global rpl_recovery_rank =@my_rpl_recovery_rank;
+set global server_id =@my_server_id;
+set global slow_launch_time =@my_slow_launch_time;
+set global storage_engine =@my_storage_engine;
+set global thread_cache_size =@my_thread_cache_size;
+
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
new file mode 100644
index 00000000000..0faa8e7a785
--- /dev/null
+++ b/mysql-test/t/view.test
@@ -0,0 +1,3460 @@
+--disable_warnings
+drop table if exists t1,t2,t3,t4,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
+drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
+drop database if exists mysqltest;
+--enable_warnings
+use test;
+
+#
+# some basic test of views and its functionality
+#
+
+# create view on nonexistent table
+-- error 1146
+create view v1 (c,d) as select a,b from t1;
+
+create temporary table t1 (a int, b int);
+# view on temporary table
+-- error 1352
+create view v1 (c) as select b+1 from t1;
+drop table t1;
+
+create table t1 (a int, b int);
+insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
+
+# view with variable
+-- error ER_VIEW_SELECT_VARIABLE
+create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
+-- error ER_VIEW_SELECT_VARIABLE
+create view v1 (c,d) as select a,b from t1
+ where a = @@global.max_user_connections;
+
+# simple view
+create view v1 (c) as select b+1 from t1;
+select c from v1;
+select is_updatable from information_schema.views where table_name='v1';
+
+# temporary table should not hide table of view
+create temporary table t1 (a int, b int);
+# this is empty
+select * from t1;
+# but this based on normal t1
+select c from v1;
+show create table v1;
+show create view v1;
+-- error 1347
+show create view t1;
+drop table t1;
+
+# try to use fields from underlying table
+-- error 1054
+select a from v1;
+-- error 1054
+select v1.a from v1;
+-- error 1054
+select b from v1;
+-- error 1054
+select v1.b from v1;
+
+# view with different algorithms (explain output differs)
+explain extended select c from v1;
+create algorithm=temptable view v2 (c) as select b+1 from t1;
+show create view v2;
+select c from v2;
+explain extended select c from v2;
+
+# try to use underlying table fields in VIEW creation process
+-- error 1054
+create view v3 (c) as select a+1 from v1;
+-- error 1054
+create view v3 (c) as select b+1 from v1;
+
+
+# VIEW on VIEW test with mixing different algorithms on different order
+create view v3 (c) as select c+1 from v1;
+select c from v3;
+explain extended select c from v3;
+create algorithm=temptable view v4 (c) as select c+1 from v2;
+select c from v4;
+explain extended select c from v4;
+create view v5 (c) as select c+1 from v2;
+select c from v5;
+explain extended select c from v5;
+create algorithm=temptable view v6 (c) as select c+1 from v1;
+select c from v6;
+explain extended select c from v6;
+
+# show table/table status test
+show tables;
+show full tables;
+--replace_column 8 # 12 # 13 #
+show table status;
+
+drop view v1,v2,v3,v4,v5,v6;
+
+#
+# alter/create view test
+#
+
+# view with subqueries of different types
+create view v1 (c,d,e,f) as select a,b,
+a in (select a+2 from t1), a = all (select a from t1) from t1;
+create view v2 as select c, d from v1;
+select * from v1;
+select * from v2;
+
+# try to create VIEW with name of existing VIEW
+-- error 1050
+create view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1;
+
+# 'or replace' should work in this case
+create or replace view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1;
+
+# try to ALTER unexisting VIEW
+drop view v2;
+-- error 1146
+alter view v2 as select c, d from v1;
+
+# 'or replace' on unexisting view
+create or replace view v2 as select c, d from v1;
+
+# alter view on existing view
+alter view v1 (c,d) as select a,max(b) from t1 group by a;
+
+# check that created view works
+select * from v1;
+select * from v2;
+
+# try to drop nonexistent VIEW
+-- error 1051
+drop view v100;
+
+# try to drop table with DROP VIEW
+-- error 1347
+drop view t1;
+
+# try to drop VIEW with DROP TABLE
+-- error 1051
+drop table v1;
+
+# try to drop table with DROP VIEW
+
+drop view v1,v2;
+drop table t1;
+
+#
+# outer left join with merged views
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+
+create view v1 (a) as select a+1 from t1;
+create view v2 (a) as select a-1 from t1;
+
+select * from t1 natural left join v1;
+select * from v2 natural left join t1;
+select * from v2 natural left join v1;
+
+drop view v1, v2;
+drop table t1;
+
+
+#
+# DISTINCT option for VIEW
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3), (1), (2), (3);
+create view v1 as select distinct a from t1;
+select * from v1;
+explain select * from v1;
+select * from t1;
+drop view v1;
+drop table t1;
+
+#
+# syntax compatibility
+#
+create table t1 (a int);
+-- error 1368
+create view v1 as select distinct a from t1 WITH CHECK OPTION;
+create view v1 as select a from t1 WITH CHECK OPTION;
+create view v2 as select a from t1 WITH CASCADED CHECK OPTION;
+create view v3 as select a from t1 WITH LOCAL CHECK OPTION;
+drop view v3 RESTRICT;
+drop view v2 CASCADE;
+drop view v1;
+drop table t1;
+
+#
+# aliases
+#
+create table t1 (a int, b int);
+insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
+create view v1 (c) as select b+1 from t1;
+select test.c from v1 test;
+create algorithm=temptable view v2 (c) as select b+1 from t1;
+select test.c from v2 test;
+select test1.* from v1 test1, v2 test2 where test1.c=test2.c;
+select test2.* from v1 test1, v2 test2 where test1.c=test2.c;
+drop table t1;
+drop view v1,v2;
+
+#
+# LIMIT clause test
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3), (4);
+create view v1 as select a+1 from t1 order by 1 desc limit 2;
+select * from v1;
+explain select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# CREATE ... SELECT view test
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3), (4);
+create view v1 as select a+1 from t1;
+create table t2 select * from v1;
+show columns from t2;
+select * from t2;
+drop view v1;
+drop table t1,t2;
+
+#
+# simple view + simple update
+#
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (10,2), (20,3), (30,4), (40,5), (50,10);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+select is_updatable from information_schema.views where table_name='v2';
+select is_updatable from information_schema.views where table_name='v1';
+# try to update expression
+-- error 1348
+update v1 set c=a+c;
+# try to update VIEW with forced TEMPORARY TABLE algorithm
+-- error 1288
+update v2 set a=a+c;
+# updatable field of updateable view
+update v1 set a=a+c;
+select * from v1;
+select * from t1;
+drop table t1;
+drop view v1,v2;
+
+#
+# simple view + simple multi-update
+#
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (10,2), (20,3), (30,4), (40,5), (50,10);
+create table t2 (x int);
+insert into t2 values (10), (20);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+# try to update expression
+-- error 1348
+update t2,v1 set v1.c=v1.a+v1.c where t2.x=v1.a;
+# try to update VIEW with forced TEMPORARY TABLE algorithm
+-- error 1288
+update t2,v2 set v2.a=v2.v2.a+c where t2.x=v2.a;
+# updatable field of updateable view
+update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.a;
+select * from v1;
+select * from t1;
+drop table t1,t2;
+drop view v1,v2;
+
+#
+# MERGE VIEW with WHERE clause
+#
+create table t1 (a int, b int, primary key(b));
+insert into t1 values (1,20), (2,30), (3,40), (4,50), (5,100);
+create view v1 (c) as select b from t1 where a<3;
+# simple select and explaint to be sure that it is MERGE
+select * from v1;
+explain extended select * from v1;
+# update test
+update v1 set c=c+1;
+select * from t1;
+# join of such VIEWs test
+create view v2 (c) as select b from t1 where a>=3;
+select * from v1, v2;
+drop view v1, v2;
+drop table t1;
+
+#
+# simple view + simple delete
+#
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (1,2), (2,3), (3,4), (4,5), (5,10);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+# try to update VIEW with forced TEMPORARY TABLE algorithm
+-- error 1288
+delete from v2 where c < 4;
+# updatable field of updateable view
+delete from v1 where c < 4;
+select * from v1;
+select * from t1;
+drop table t1;
+drop view v1,v2;
+
+#
+# simple view + simple multi-delete
+#
+create table t1 (a int, b int, primary key(a));
+insert into t1 values (1,2), (2,3), (3,4), (4,5), (5,10);
+create table t2 (x int);
+insert into t2 values (1), (2), (3), (4);
+create view v1 (a,c) as select a, b+1 from t1;
+create algorithm=temptable view v2 (a,c) as select a, b+1 from t1;
+# try to update VIEW with forced TEMPORARY TABLE algorithm
+-- error 1288
+delete v2 from t2,v2 where t2.x=v2.a;
+# updatable field of updateable view
+delete v1 from t2,v1 where t2.x=v1.a;
+select * from v1;
+select * from t1;
+drop table t1,t2;
+drop view v1,v2;
+
+#
+# key presence check
+#
+create table t1 (a int, b int, c int, primary key(a,b));
+insert into t1 values (10,2,-1), (20,3,-2), (30,4,-3), (40,5,-4), (50,10,-5);
+create view v1 (x,y) as select a, b from t1;
+create view v2 (x,y) as select a, c from t1;
+set updatable_views_with_limit=NO;
+update v1 set x=x+1;
+update v2 set x=x+1;
+update v1 set x=x+1 limit 1;
+-- error 1288
+update v2 set x=x+1 limit 1;
+set updatable_views_with_limit=YES;
+update v1 set x=x+1 limit 1;
+update v2 set x=x+1 limit 1;
+set updatable_views_with_limit=DEFAULT;
+show variables like "updatable_views_with_limit";
+select * from t1;
+drop table t1;
+drop view v1,v2;
+
+#
+# simple insert
+#
+create table t1 (a int, b int, c int, primary key(a,b));
+insert into t1 values (10,2,-1), (20,3,-2);
+create view v1 (x,y,z) as select c, b, a from t1;
+create view v2 (x,y) as select b, a from t1;
+create view v3 (x,y,z) as select b, a, b from t1;
+create view v4 (x,y,z) as select c+1, b, a from t1;
+create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1;
+# try insert to VIEW with fields duplicate
+-- error 1471
+insert into v3 values (-60,4,30);
+# try insert to VIEW with expression in SELECT list
+-- error 1471
+insert into v4 values (-60,4,30);
+# try insert to VIEW using temporary table algorithm
+-- error 1471
+insert into v5 values (-60,4,30);
+insert into v1 values (-60,4,30);
+insert into v1 (z,y,x) values (50,6,-100);
+insert into v2 values (5,40);
+select * from t1;
+drop table t1;
+drop view v1,v2,v3,v4,v5;
+
+#
+# insert ... select
+#
+create table t1 (a int, b int, c int, primary key(a,b));
+insert into t1 values (10,2,-1), (20,3,-2);
+create table t2 (a int, b int, c int, primary key(a,b));
+insert into t2 values (30,4,-60);
+create view v1 (x,y,z) as select c, b, a from t1;
+create view v2 (x,y) as select b, a from t1;
+create view v3 (x,y,z) as select b, a, b from t1;
+create view v4 (x,y,z) as select c+1, b, a from t1;
+create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1;
+# try insert to VIEW with fields duplicate
+-- error 1471
+insert into v3 select c, b, a from t2;
+# try insert to VIEW with expression in SELECT list
+-- error 1471
+insert into v4 select c, b, a from t2;
+# try insert to VIEW using temporary table algorithm
+-- error 1471
+insert into v5 select c, b, a from t2;
+insert into v1 select c, b, a from t2;
+insert into v1 (z,y,x) select a+20,b+2,-100 from t2;
+insert into v2 select b+1, a+10 from t2;
+select * from t1;
+drop table t1, t2;
+drop view v1,v2,v3,v4,v5;
+
+#
+# outer join based on VIEW with WHERE clause
+#
+create table t1 (a int, primary key(a));
+insert into t1 values (1), (2), (3);
+create view v1 (x) as select a from t1 where a > 1;
+select t1.a, v1.x from t1 left join v1 on (t1.a= v1.x);
+drop table t1;
+drop view v1;
+
+#
+# merging WHERE condition on VIEW on VIEW
+#
+create table t1 (a int, primary key(a));
+insert into t1 values (1), (2), (3), (200);
+create view v1 (x) as select a from t1 where a > 1;
+create view v2 (y) as select x from v1 where x < 100;
+select * from v2;
+drop table t1;
+drop view v1,v2;
+
+#
+# VIEW on non-updatable view
+#
+create table t1 (a int, primary key(a));
+insert into t1 values (1), (2), (3), (200);
+create ALGORITHM=TEMPTABLE view v1 (x) as select a from t1;
+create view v2 (y) as select x from v1;
+-- error 1288
+update v2 set y=10 where y=2;
+drop table t1;
+drop view v1,v2;
+
+#
+# auto_increment field out of VIEW
+#
+create table t1 (a int not null auto_increment, b int not null, primary key(a), unique(b));
+create view v1 (x) as select b from t1;
+insert into v1 values (1);
+select last_insert_id();
+insert into t1 (b) values (2);
+select last_insert_id();
+select * from t1;
+drop view v1;
+drop table t1;
+
+#
+# VIEW fields quoting
+#
+set sql_mode='ansi';
+create table t1 ("a*b" int);
+create view v1 as select "a*b" from t1;
+show create view v1;
+drop view v1;
+drop table t1;
+set sql_mode=default;
+
+#
+# VIEW without tables
+#
+create table t1 (t_column int);
+create view v1 as select 'a';
+select * from v1, t1;
+drop view v1;
+drop table t1;
+
+#
+# quote mark inside table name
+#
+create table `t1a``b` (col1 char(2));
+create view v1 as select * from `t1a``b`;
+select * from v1;
+describe v1;
+drop view v1;
+drop table `t1a``b`;
+
+#
+# Changing of underlying table
+#
+create table t1 (col1 char(5),col2 char(5));
+create view v1 as select * from t1;
+drop table t1;
+create table t1 (col1 char(5),newcol2 char(5));
+-- error 1356
+insert into v1 values('a','aa');
+drop table t1;
+-- error 1356
+select * from v1;
+drop view v1;
+
+#
+# check of duplication of column names
+#
+-- error 1060
+create view v1 (a,a) as select 'a','a';
+
+#
+# updatablity should be transitive
+#
+create table t1 (col1 int,col2 char(22));
+insert into t1 values(5,'Hello, world of views');
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+update v2 set col2='Hello, view world';
+select is_updatable from information_schema.views;
+select * from t1;
+drop view v2, v1;
+drop table t1;
+
+#
+# check 'use index' on view with temporary table
+#
+create table t1 (a int, b int);
+create view v1 as select a, sum(b) from t1 group by a;
+--error ER_WRONG_USAGE
+select b from v1 use index (some_index) where b=1;
+drop view v1;
+drop table t1;
+
+#
+# using VIEW fields several times in query resolved via temporary tables
+#
+create table t1 (col1 char(5),col2 char(5));
+create view v1 (col1,col2) as select col1,col2 from t1;
+insert into v1 values('s1','p1'),('s1','p2'),('s1','p3'),('s1','p4'),('s2','p1'),('s3','p2'),('s4','p4');
+select distinct first.col2 from t1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
+select distinct first.col2 from v1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
+drop view v1;
+drop table t1;
+
+#
+# Test of view updatability in prepared statement
+#
+create table t1 (a int);
+create view v1 as select a from t1;
+insert into t1 values (1);
+
+#update
+SET @v0 = '2';
+PREPARE stmt FROM 'UPDATE v1 SET a = ?';
+EXECUTE stmt USING @v0;
+DEALLOCATE PREPARE stmt;
+
+#insert without field list
+SET @v0 = '3';
+PREPARE stmt FROM 'insert into v1 values (?)';
+EXECUTE stmt USING @v0;
+DEALLOCATE PREPARE stmt;
+
+#insert with field list
+SET @v0 = '4';
+PREPARE stmt FROM 'insert into v1 (a) values (?)';
+EXECUTE stmt USING @v0;
+DEALLOCATE PREPARE stmt;
+
+select * from t1;
+
+drop view v1;
+drop table t1;
+
+#
+# error on preparation
+#
+-- error 1096
+CREATE VIEW v02 AS SELECT * FROM DUAL;
+SHOW TABLES;
+
+#
+# EXISTS with UNION VIEW
+#
+CREATE VIEW v1 AS SELECT EXISTS (SELECT 1 UNION SELECT 2);
+select * from v1;
+drop view v1;
+
+#
+# using VIEW where table is required
+#
+create table t1 (col1 int,col2 char(22));
+create view v1 as select * from t1;
+-- error 1347
+create index i1 on v1 (col1);
+drop view v1;
+drop table t1;
+
+#
+# connection_id(), pi(), current_user(), version() representation test
+#
+CREATE VIEW v1 (f1,f2,f3,f4) AS SELECT connection_id(), pi(), current_user(), version();
+SHOW CREATE VIEW v1;
+drop view v1;
+
+#
+# VIEW built over UNION
+#
+create table t1 (s1 int);
+create table t2 (s2 int);
+insert into t1 values (1), (2);
+insert into t2 values (2), (3);
+create view v1 as select * from t1,t2 union all select * from t1,t2;
+select * from v1;
+drop view v1;
+drop tables t1, t2;
+
+#
+# Aggregate functions in view list
+#
+create table t1 (col1 int);
+insert into t1 values (1);
+create view v1 as select count(*) from t1;
+insert into t1 values (null);
+select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# Showing VIEW with VIEWs in subquery
+#
+create table t1 (a int);
+create table t2 (a int);
+create view v1 as select a from t1;
+create view v2 as select a from t2 where a in (select a from v1);
+show create view v2;
+drop view v2, v1;
+drop table t1, t2;
+
+#
+# SHOW VIEW view with name with spaces
+#
+CREATE VIEW `v 1` AS select 5 AS `5`;
+show create view `v 1`;
+drop view `v 1`;
+
+#
+# Removing database with .frm archives
+#
+create database mysqltest;
+create table mysqltest.t1 (a int, b int);
+create view mysqltest.v1 as select a from mysqltest.t1;
+alter view mysqltest.v1 as select b from mysqltest.t1;
+alter view mysqltest.v1 as select a from mysqltest.t1;
+drop database mysqltest;
+
+#
+# VIEW with full text
+#
+CREATE TABLE t1 (c1 int not null auto_increment primary key, c2 varchar(20), fulltext(c2));
+insert into t1 (c2) VALUES ('real Beer'),('Water'),('Kossu'),('Coca-Cola'),('Vodka'),('Wine'),('almost real Beer');
+select * from t1 WHERE match (c2) against ('Beer');
+CREATE VIEW v1 AS SELECT * from t1 WHERE match (c2) against ('Beer');
+select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# distinct in temporary table with a VIEW
+#
+create table t1 (a int);
+insert into t1 values (1),(1),(2),(2),(3),(3);
+create view v1 as select a from t1;
+select distinct a from v1;
+select distinct a from v1 limit 2;
+select distinct a from t1 limit 2;
+prepare stmt1 from "select distinct a from v1 limit 2";
+execute stmt1;
+execute stmt1;
+deallocate prepare stmt1;
+drop view v1;
+drop table t1;
+
+#
+# aggregate function of aggregate function
+#
+create table t1 (tg_column bigint);
+create view v1 as select count(tg_column) as vg_column from t1;
+select avg(vg_column) from v1;
+drop view v1;
+drop table t1;
+
+#
+# VIEW of VIEW with column renaming
+#
+create table t1 (col1 bigint not null, primary key (col1));
+create table t2 (col1 bigint not null, key (col1));
+create view v1 as select * from t1;
+create view v2 as select * from t2;
+insert into v1 values (1);
+insert into v2 values (1);
+create view v3 (a,b) as select v1.col1 as a, v2.col1 as b from v1, v2 where v1.col1 = v2.col1;
+select * from v3;
+show create view v3;
+drop view v3, v2, v1;
+drop table t2, t1;
+
+#
+# VIEW based on functions with complex names
+#
+create function `f``1` () returns int return 5;
+create view v1 as select test.`f``1` ();
+show create view v1;
+select * from v1;
+drop view v1;
+drop function `f``1`;
+
+#
+# tested problem when function name length close to ALIGN_SIZE
+#
+create function x () returns int return 5;
+create view v1 as select x ();
+select * from v1;
+drop view v1;
+drop function x;
+
+#
+# VIEW with collation
+#
+create table t2 (col1 char collate latin1_german2_ci);
+create view v2 as select col1 collate latin1_german1_ci from t2;
+show create view v2;
+show create view v2;
+drop view v2;
+drop table t2;
+
+#
+# order by refers on integer field
+#
+create table t1 (a int);
+insert into t1 values (1), (2);
+create view v1 as select 5 from t1 order by 1;
+select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# VIEW over dropped function
+#
+create function x1 () returns int return 5;
+create table t1 (s1 int);
+create view v1 as select x1() from t1;
+drop function x1;
+-- error 1356
+select * from v1;
+--replace_column 8 # 12 # 13 #
+show table status;
+drop view v1;
+drop table t1;
+
+#
+# VIEW with floating point (long number) as column
+#
+create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
+show create view v1;
+drop view v1;
+
+#
+# VIEWs with national characters
+#
+set names utf8;
+create table tü (cü char);
+create view vü as select cü from tü;
+insert into vü values ('ü');
+select * from vü;
+drop view vü;
+drop table tü;
+set names latin1;
+
+#
+# problem with used_tables() of outer reference resolved in VIEW
+#
+create table t1 (a int, b int);
+insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
+create view v1(c) as select a+1 from t1 where b >= 4;
+select c from v1 where exists (select * from t1 where a=2 and b=c);
+drop view v1;
+drop table t1;
+
+#
+# view with cast operation
+#
+create view v1 as select cast(1 as char(3));
+show create view v1;
+select * from v1;
+drop view v1;
+
+#
+# renaming views
+#
+create table t1 (a int);
+create view v1 as select a from t1;
+create view v3 as select a from t1;
+create database mysqltest;
+-- error 1450
+rename table v1 to mysqltest.v1;
+rename table v1 to v2;
+--error 1050
+rename table v3 to v1, v2 to t1;
+drop table t1;
+drop view v2,v3;
+drop database mysqltest;
+
+#
+# bug handling from VIEWs
+#
+create view v1 as select 'a',1;
+create view v2 as select * from v1 union all select * from v1;
+create view v3 as select * from v2 where 1 = (select `1` from v2);
+create view v4 as select * from v3;
+-- error 1242
+select * from v4;
+drop view v4, v3, v2, v1;
+
+#
+# VIEW over SELECT with prohibited clauses
+#
+-- error 1350
+create view v1 as select 5 into @w;
+-- error 1350
+create view v1 as select 5 into outfile 'ttt';
+create table t1 (a int);
+-- error 1350
+create view v1 as select a from t1 procedure analyse();
+-- error ER_VIEW_SELECT_DERIVED
+create view v1 as select 1 from (select 1) as d1;
+drop table t1;
+
+#
+# INSERT into VIEW with ON DUPLICATE
+#
+create table t1 (s1 int, primary key (s1));
+create view v1 as select * from t1;
+insert into v1 values (1) on duplicate key update s1 = 7;
+insert into v1 values (1) on duplicate key update s1 = 7;
+select * from t1;
+drop view v1;
+drop table t1;
+
+#
+# test of updating and fetching from the same table check
+#
+create table t1 (col1 int);
+create table t2 (col1 int);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+create view v3 as select v2.col1 from v2,t2 where v2.col1 = t2.col1;
+-- error 1443
+update v2 set col1 = (select max(col1) from v1);
+-- error 1443
+update v2 set col1 = (select max(col1) from t1);
+-- error 1093
+update v2 set col1 = (select max(col1) from v2);
+-- error 1443
+update v2,t2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1;
+-- error 1443
+update t1,t2 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1;
+-- error 1093
+update v1,t2 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1;
+-- error 1443
+update t2,v2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1;
+-- error 1443
+update t2,t1 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1;
+-- error 1443
+update t2,v1 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1;
+-- error 1443
+update v2,t2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1;
+-- error 1093
+update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
+-- error 1443
+update v1,t2 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1;
+-- error 1093
+update t2,v2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1;
+-- error 1093
+update t2,t1 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
+-- error 1093
+update t2,v1 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1;
+-- error 1093
+update v2,t2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1;
+-- error 1443
+update t1,t2 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1;
+-- error 1443
+update v1,t2 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1;
+-- error 1443
+update t2,v2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1;
+-- error 1443
+update t2,t1 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1;
+-- error 1443
+update t2,v1 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1;
+-- error 1443
+update v3 set v3.col1 = (select max(col1) from v1);
+-- error 1443
+update v3 set v3.col1 = (select max(col1) from t1);
+-- error 1443
+update v3 set v3.col1 = (select max(col1) from v2);
+-- error 1093
+update v3 set v3.col1 = (select max(col1) from v3);
+-- error 1443
+delete from v2 where col1 = (select max(col1) from v1);
+-- error 1443
+delete from v2 where col1 = (select max(col1) from t1);
+-- error 1093
+delete from v2 where col1 = (select max(col1) from v2);
+-- error 1443
+delete v2 from v2,t2 where (select max(col1) from v1) > 0 and v2.col1 = t2.col1;
+-- error 1443
+delete t1 from t1,t2 where (select max(col1) from v1) > 0 and t1.col1 = t2.col1;
+-- error 1093
+delete v1 from v1,t2 where (select max(col1) from v1) > 0 and v1.col1 = t2.col1;
+-- error 1443
+delete v2 from v2,t2 where (select max(col1) from t1) > 0 and v2.col1 = t2.col1;
+-- error 1093
+delete t1 from t1,t2 where (select max(col1) from t1) > 0 and t1.col1 = t2.col1;
+-- error 1443
+delete v1 from v1,t2 where (select max(col1) from t1) > 0 and v1.col1 = t2.col1;
+-- error 1093
+delete v2 from v2,t2 where (select max(col1) from v2) > 0 and v2.col1 = t2.col1;
+-- error 1443
+delete t1 from t1,t2 where (select max(col1) from v2) > 0 and t1.col1 = t2.col1;
+-- error 1443
+delete v1 from v1,t2 where (select max(col1) from v2) > 0 and v1.col1 = t2.col1;
+-- error 1443
+insert into v2 values ((select max(col1) from v1));
+-- error 1443
+insert into t1 values ((select max(col1) from v1));
+-- error 1443
+insert into v2 values ((select max(col1) from v1));
+-- error 1443
+insert into v2 values ((select max(col1) from t1));
+-- error 1093
+insert into t1 values ((select max(col1) from t1));
+-- error 1443
+insert into v2 values ((select max(col1) from t1));
+-- error 1093
+insert into v2 values ((select max(col1) from v2));
+-- error 1443
+insert into t1 values ((select max(col1) from v2));
+-- error 1093
+insert into v2 values ((select max(col1) from v2));
+-- error 1443
+insert into v3 (col1) values ((select max(col1) from v1));
+-- error 1443
+insert into v3 (col1) values ((select max(col1) from t1));
+-- error 1443
+insert into v3 (col1) values ((select max(col1) from v2));
+#check with TZ tables in list
+-- error 1443
+insert into v3 (col1) values ((select CONVERT_TZ('20050101000000','UTC','MET') from v2));
+insert into v3 (col1) values ((select CONVERT_TZ('20050101000000','UTC','MET') from t2));
+-- error 1048
+insert into mysql.time_zone values ('', (select CONVERT_TZ('20050101000000','UTC','MET') from t2));
+# temporary table algorithm view should be equal to subquery in the from clause
+create algorithm=temptable view v4 as select * from t1;
+insert into t1 values (1),(2),(3);
+insert into t1 (col1) values ((select max(col1) from v4));
+select * from t1;
+
+drop view v4,v3,v2,v1;
+drop table t1,t2;
+
+#
+# HANDLER with VIEW
+#
+create table t1 (s1 int);
+create view v1 as select * from t1;
+-- error 1347
+handler v1 open as xx;
+drop view v1;
+drop table t1;
+
+#
+# view with WHERE in nested join
+#
+create table t1(a int);
+insert into t1 values (0), (1), (2), (3);
+create table t2 (a int);
+insert into t2 select a from t1 where a > 1;
+create view v1 as select a from t1 where a > 1;
+select * from t1 left join (t2 as t, v1) on v1.a=t1.a;
+select * from t1 left join (t2 as t, t2) on t2.a=t1.a;
+drop view v1;
+drop table t1, t2;
+
+#
+# Collation with view update
+#
+create table t1 (s1 char);
+create view v1 as select s1 collate latin1_german1_ci as s1 from t1;
+insert into v1 values ('a');
+select * from v1;
+update v1 set s1='b';
+select * from v1;
+update v1,t1 set v1.s1='c' where t1.s1=v1.s1;
+select * from v1;
+prepare stmt1 from "update v1,t1 set v1.s1=? where t1.s1=v1.s1";
+set @arg='d';
+execute stmt1 using @arg;
+select * from v1;
+set @arg='e';
+execute stmt1 using @arg;
+select * from v1;
+deallocate prepare stmt1;
+drop view v1;
+drop table t1;
+
+#
+# test view with LOCK TABLES (work around)
+#
+create table t1 (a int);
+create table t2 (a int);
+create view v1 as select * from t1;
+lock tables t1 read, v1 read;
+select * from v1;
+-- error 1100
+select * from t2;
+drop view v1;
+drop table t1, t2;
+
+#
+# WITH CHECK OPTION insert/update test
+#
+create table t1 (a int);
+create view v1 as select * from t1 where a < 2 with check option;
+# simple insert
+insert into v1 values(1);
+-- error 1369
+insert into v1 values(3);
+# simple insert with ignore
+insert ignore into v1 values (2),(3),(0);
+select * from t1;
+# prepare data for next check
+delete from t1;
+# INSERT SELECT test
+insert into v1 SELECT 1;
+-- error 1369
+insert into v1 SELECT 3;
+# prepare data for next check
+create table t2 (a int);
+insert into t2 values (2),(3),(0);
+# INSERT SELECT with ignore test
+insert ignore into v1 SELECT a from t2;
+select * from t1;
+#simple UPDATE test
+update v1 set a=-1 where a=0;
+-- error 1369
+update v1 set a=2 where a=1;
+select * from t1;
+# prepare data for next check
+update v1 set a=0 where a=0;
+insert into t2 values (1);
+# multiupdate test
+update v1,t2 set v1.a=v1.a-1 where v1.a=t2.a;
+select * from t1;
+# prepare data for next check
+update v1 set a=a+1;
+# multiupdate with ignore test
+update ignore v1,t2 set v1.a=v1.a+1 where v1.a=t2.a;
+select * from t1;
+
+drop view v1;
+drop table t1, t2;
+
+#
+# CASCADED/LOCAL CHECK OPTION test
+#
+create table t1 (a int);
+create view v1 as select * from t1 where a < 2 with check option;
+create view v2 as select * from v1 where a > 0 with local check option;
+create view v3 as select * from v1 where a > 0 with cascaded check option;
+insert into v2 values (1);
+insert into v3 values (1);
+-- error 1369
+insert into v2 values (0);
+-- error 1369
+insert into v3 values (0);
+insert into v2 values (2);
+-- error 1369
+insert into v3 values (2);
+select * from t1;
+drop view v3,v2,v1;
+drop table t1;
+
+#
+# CHECK OPTION with INSERT ... ON DUPLICATE KEY UPDATE
+#
+create table t1 (a int, primary key (a));
+create view v1 as select * from t1 where a < 2 with check option;
+insert into v1 values (1) on duplicate key update a=2;
+-- error 1369
+insert into v1 values (1) on duplicate key update a=2;
+insert ignore into v1 values (1) on duplicate key update a=2;
+select * from t1;
+drop view v1;
+drop table t1;
+
+#
+# check cyclic referencing protection on altering view
+#
+create table t1 (s1 int);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+-- error 1146
+alter view v1 as select * from v2;
+-- error 1146
+alter view v1 as select * from v1;
+-- error 1146
+create or replace view v1 as select * from v2;
+-- error 1146
+create or replace view v1 as select * from v1;
+drop view v2,v1;
+drop table t1;
+
+#
+# check altering differ options
+#
+create table t1 (a int);
+create view v1 as select * from t1;
+show create view v1;
+alter algorithm=undefined view v1 as select * from t1 with check option;
+show create view v1;
+alter algorithm=merge view v1 as select * from t1 with cascaded check option;
+show create view v1;
+alter algorithm=temptable view v1 as select * from t1;
+show create view v1;
+drop view v1;
+drop table t1;
+
+#
+# updating view with subquery in the WHERE clause
+#
+create table t1 (s1 int);
+create table t2 (s1 int);
+create view v2 as select * from t2 where s1 in (select s1 from t1);
+insert into v2 values (5);
+insert into t1 values (5);
+select * from v2;
+update v2 set s1 = 0;
+select * from v2;
+select * from t2;
+# check it with check option
+alter view v2 as select * from t2 where s1 in (select s1 from t1) with check option;
+insert into v2 values (5);
+-- error 1369
+update v2 set s1 = 1;
+insert into t1 values (1);
+update v2 set s1 = 1;
+select * from v2;
+select * from t2;
+# scheck how VIEWs with subqueries work with prepared statements
+prepare stmt1 from "select * from v2;";
+execute stmt1;
+insert into t1 values (0);
+execute stmt1;
+deallocate prepare stmt1;
+drop view v2;
+drop table t1, t2;
+
+#
+# test of substring_index with view
+#
+create table t1 (t time);
+create view v1 as select substring_index(t,':',2) as t from t1;
+insert into t1 (t) values ('12:24:10');
+select substring_index(t,':',2) from t1;
+select substring_index(t,':',2) from v1;
+drop view v1;
+drop table t1;
+
+#
+# test of cascaded check option for whiew without WHERE clause
+#
+create table t1 (s1 tinyint);
+create view v1 as select * from t1 where s1 <> 0 with local check option;
+create view v2 as select * from v1 with cascaded check option;
+-- error 1369
+insert into v2 values (0);
+drop view v2, v1;
+drop table t1;
+
+#
+# inserting single value with check option failed always get error
+#
+create table t1 (s1 int);
+create view v1 as select * from t1 where s1 < 5 with check option;
+#single value
+-- error 1369
+insert ignore into v1 values (6);
+#several values
+insert ignore into v1 values (6),(3);
+select * from t1;
+drop view v1;
+drop table t1;
+
+#
+# changing value by trigger and CHECK OPTION
+#
+create table t1 (s1 tinyint);
+create trigger t1_bi before insert on t1 for each row set new.s1 = 500;
+create view v1 as select * from t1 where s1 <> 127 with check option;
+-- error 1369
+insert into v1 values (0);
+select * from v1;
+select * from t1;
+drop trigger t1_bi;
+drop view v1;
+drop table t1;
+
+#
+# CASCADED should be used for all underlaying VIEWs
+#
+create table t1 (s1 tinyint);
+create view v1 as select * from t1 where s1 <> 0;
+create view v2 as select * from v1 where s1 <> 1 with cascaded check option;
+-- error 1369
+insert into v2 values (0);
+select * from v2;
+select * from t1;
+drop view v2, v1;
+drop table t1;
+
+#
+# LOAD DATA with view and CHECK OPTION
+#
+# fixed length fields
+create table t1 (a int, b char(10));
+create view v1 as select * from t1 where a != 0 with check option;
+-- error 1369
+load data infile '../std_data_ln/loaddata3.dat' into table v1 fields terminated by '' enclosed by '' ignore 1 lines;
+select * from t1;
+select * from v1;
+delete from t1;
+load data infile '../std_data_ln/loaddata3.dat' ignore into table v1 fields terminated by '' enclosed by '' ignore 1 lines;
+select * from t1;
+select * from v1;
+drop view v1;
+drop table t1;
+# variable length fields
+create table t1 (a text, b text);
+create view v1 as select * from t1 where a <> 'Field A' with check option;
+-- error 1369
+load data infile '../std_data_ln/loaddata2.dat' into table v1 fields terminated by ',' enclosed by '''';
+select concat('|',a,'|'), concat('|',b,'|') from t1;
+select concat('|',a,'|'), concat('|',b,'|') from v1;
+delete from t1;
+load data infile '../std_data_ln/loaddata2.dat' ignore into table v1 fields terminated by ',' enclosed by '''';
+select concat('|',a,'|'), concat('|',b,'|') from t1;
+select concat('|',a,'|'), concat('|',b,'|') from v1;
+drop view v1;
+drop table t1;
+
+#
+# Trys update table from which we select using views and subqueries
+#
+create table t1 (s1 smallint);
+create view v1 as select * from t1 where 20 < (select (s1) from t1);
+-- error 1471
+insert into v1 values (30);
+create view v2 as select * from t1;
+create view v3 as select * from t1 where 20 < (select (s1) from v2);
+-- error 1471
+insert into v3 values (30);
+create view v4 as select * from v2 where 20 < (select (s1) from t1);
+-- error 1471
+insert into v4 values (30);
+drop view v4, v3, v2, v1;
+drop table t1;
+
+#
+# CHECK TABLE with VIEW
+#
+create table t1 (a int);
+create view v1 as select * from t1;
+check table t1,v1;
+check table v1,t1;
+drop table t1;
+check table v1;
+drop view v1;
+
+#
+# merge of VIEW with several tables
+#
+create table t1 (a int);
+create table t2 (a int);
+create table t3 (a int);
+insert into t1 values (1), (2), (3);
+insert into t2 values (1), (3);
+insert into t3 values (1), (2), (4);
+# view over tables
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1 left join t2 on (t1.a=t2.a);
+select * from t3 left join v3 on (t3.a = v3.a);
+explain extended select * from t3 left join v3 on (t3.a = v3.a);
+# view over views
+create view v1 (a) as select a from t1;
+create view v2 (a) as select a from t2;
+create view v4 (a,b) as select v1.a as a, v2.a as b from v1 left join v2 on (v1.a=v2.a);
+select * from t3 left join v4 on (t3.a = v4.a);
+explain extended select * from t3 left join v4 on (t3.a = v4.a);
+# PS with view over views
+prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
+execute stmt1;
+execute stmt1;
+deallocate prepare stmt1;
+drop view v4,v3,v2,v1;
+drop tables t1,t2,t3;
+
+#
+# updating of join view
+#
+create table t1 (a int, primary key (a), b int);
+create table t2 (a int, primary key (a));
+insert into t1 values (1,100), (2,200);
+insert into t2 values (1), (3);
+# legal view for update
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2;
+update v3 set a= 10 where a=1;
+select * from t1;
+select * from t2;
+# view without primary key
+create view v2 (a,b) as select t1.b as a, t2.a as b from t1, t2;
+set updatable_views_with_limit=NO;
+-- error 1288
+update v2 set a= 10 where a=200 limit 1;
+set updatable_views_with_limit=DEFAULT;
+# just view selects
+select * from v3;
+select * from v2;
+# prepare statement with updating join view
+set @a= 10;
+set @b= 100;
+prepare stmt1 from "update v3 set a= ? where a=?";
+execute stmt1 using @a,@b;
+select * from v3;
+set @a= 300;
+set @b= 10;
+execute stmt1 using @a,@b;
+select * from v3;
+deallocate prepare stmt1;
+drop view v3,v2;
+drop tables t1,t2;
+
+#
+# inserting/deleting join view
+#
+create table t1 (a int, primary key (a), b int);
+create table t2 (a int, primary key (a), b int);
+insert into t2 values (1000, 2000);
+create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2;
+# inserting into join view without field list
+-- error 1394
+insert into v3 values (1,2);
+-- error 1394
+insert into v3 select * from t2;
+# inserting in several tables of join view
+-- error 1393
+insert into v3(a,b) values (1,2);
+-- error 1393
+insert into v3(a,b) select * from t2;
+# correct inserts into join view
+insert into v3(a) values (1);
+insert into v3(b) values (10);
+insert into v3(a) select a from t2;
+insert into v3(b) select b from t2;
+insert into v3(a) values (1) on duplicate key update a=a+10000+VALUES(a);
+select * from t1;
+select * from t2;
+# try delete from join view
+-- error 1395
+delete from v3;
+-- error 1395
+delete v3,t1 from v3,t1;
+-- error 1395
+delete t1,v3 from t1,v3;
+# delete from t1 just to reduce result set size
+delete from t1;
+# prepare statement with insert join view
+prepare stmt1 from "insert into v3(a) values (?);";
+set @a= 100;
+execute stmt1 using @a;
+set @a= 300;
+execute stmt1 using @a;
+deallocate prepare stmt1;
+prepare stmt1 from "insert into v3(a) select ?;";
+set @a= 101;
+execute stmt1 using @a;
+set @a= 301;
+execute stmt1 using @a;
+deallocate prepare stmt1;
+select * from v3;
+
+drop view v3;
+drop tables t1,t2;
+
+#
+# View field names should be case insensitive
+#
+create table t1(f1 int);
+create view v1 as select f1 from t1;
+select * from v1 where F1 = 1;
+drop view v1;
+drop table t1;
+
+#
+# Resolving view fields in subqueries in VIEW (Bug #6394)
+#
+create table t1(c1 int);
+create table t2(c2 int);
+insert into t1 values (1),(2),(3);
+insert into t2 values (1);
+SELECT c1 FROM t1 WHERE c1 IN (SELECT c2 FROM t2);
+SELECT c1 FROM t1 WHERE EXISTS (SELECT c2 FROM t2 WHERE c2 = c1);
+create view v1 as SELECT c1 FROM t1 WHERE c1 IN (SELECT c2 FROM t2);
+create view v2 as SELECT c1 FROM t1 WHERE EXISTS (SELECT c2 FROM t2 WHERE c2 = c1);
+select * from v1;
+select * from v2;
+select * from (select c1 from v2) X;
+drop view v2, v1;
+drop table t1, t2;
+
+#
+# view over other view setup (BUG#7433)
+#
+CREATE TABLE t1 (C1 INT, C2 INT);
+CREATE TABLE t2 (C2 INT);
+CREATE VIEW v1 AS SELECT C2 FROM t2;
+CREATE VIEW v2 AS SELECT C1 FROM t1 LEFT OUTER JOIN v1 USING (C2);
+SELECT * FROM v2;
+drop view v2, v1;
+drop table t1, t2;
+
+#
+# view and group_concat() (BUG#7116)
+#
+create table t1 (col1 char(5),col2 int,col3 int);
+insert into t1 values ('one',10,25), ('two',10,50), ('two',10,50), ('one',20,25), ('one',30,25);
+create view v1 as select * from t1;
+select col1,group_concat(col2,col3) from t1 group by col1;
+select col1,group_concat(col2,col3) from v1 group by col1;
+drop view v1;
+drop table t1;
+
+#
+# Item_ref resolved as view field (BUG#6894)
+#
+create table t1 (s1 int, s2 char);
+create view v1 as select s1, s2 from t1;
+-- error 1054
+select s2 from v1 vq1 where 2 = (select count(*) from v1 vq2 having vq1.s2 = vq2.s2);
+select s2 from v1 vq1 where 2 = (select count(*) aa from v1 vq2 having vq1.s2 = aa);
+drop view v1;
+drop table t1;
+
+#
+# Test case for bug #9398 CREATE TABLE with SELECT from a multi-table view
+#
+CREATE TABLE t1 (a1 int);
+CREATE TABLE t2 (a2 int);
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+INSERT INTO t2 VALUES (1), (2), (3);
+CREATE VIEW v1(a,b) AS SELECT a1,a2 FROM t1 JOIN t2 ON a1=a2 WHERE a1>1;
+
+SELECT * FROM v1;
+CREATE TABLE t3 SELECT * FROM v1;
+SELECT * FROM t3;
+
+DROP VIEW v1;
+DROP TABLE t1,t2,t3;
+
+#
+# Test for BUG#8703 "insert into table select from view crashes"
+#
+create table t1 (a int);
+create table t2 like t1;
+create table t3 like t1;
+create view v1 as select t1.a x, t2.a y from t1 join t2 where t1.a=t2.a;
+insert into t3 select x from v1;
+insert into t2 select x from v1;
+drop view v1;
+drop table t1,t2,t3;
+
+#
+# Test for BUG #6106: query over a view using subquery for the underlying table
+#
+
+CREATE TABLE t1 (col1 int PRIMARY KEY, col2 varchar(10));
+INSERT INTO t1 VALUES(1,'trudy');
+INSERT INTO t1 VALUES(2,'peter');
+INSERT INTO t1 VALUES(3,'sanja');
+INSERT INTO t1 VALUES(4,'monty');
+INSERT INTO t1 VALUES(5,'david');
+INSERT INTO t1 VALUES(6,'kent');
+INSERT INTO t1 VALUES(7,'carsten');
+INSERT INTO t1 VALUES(8,'ranger');
+INSERT INTO t1 VALUES(10,'matt');
+CREATE TABLE t2 (col1 int, col2 int, col3 char(1));
+INSERT INTO t2 VALUES (1,1,'y');
+INSERT INTO t2 VALUES (1,2,'y');
+INSERT INTO t2 VALUES (2,1,'n');
+INSERT INTO t2 VALUES (3,1,'n');
+INSERT INTO t2 VALUES (4,1,'y');
+INSERT INTO t2 VALUES (4,2,'n');
+INSERT INTO t2 VALUES (4,3,'n');
+INSERT INTO t2 VALUES (6,1,'n');
+INSERT INTO t2 VALUES (8,1,'y');
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+SELECT a.col1,a.col2,b.col2,b.col3
+ FROM t1 a LEFT JOIN t2 b ON a.col1=b.col1
+ WHERE b.col2 IS NULL OR
+ b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1);
+
+SELECT a.col1,a.col2,b.col2,b.col3
+ FROM v1 a LEFT JOIN t2 b ON a.col1=b.col1
+ WHERE b.col2 IS NULL OR
+ b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1);
+
+CREATE VIEW v2 AS SELECT * FROM t2;
+
+SELECT a.col1,a.col2,b.col2,b.col3
+ FROM v2 b RIGHT JOIN v1 a ON a.col1=b.col1
+ WHERE b.col2 IS NULL OR
+ b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1);
+
+# Tests from the report for bug #6107
+
+SELECT a.col1,a.col2,b.col2,b.col3
+ FROM v2 b RIGHT JOIN v1 a ON a.col1=b.col1
+ WHERE a.col1 IN (1,5,9) AND
+ (b.col2 IS NULL OR
+ b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1));
+
+CREATE VIEW v3 AS SELECT * FROM t1 WHERE col1 IN (1,5,9);
+
+SELECT a.col1,a.col2,b.col2,b.col3
+ FROM v2 b RIGHT JOIN v3 a ON a.col1=b.col1
+ WHERE b.col2 IS NULL OR
+ b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1);
+
+DROP VIEW v1,v2,v3;
+DROP TABLE t1,t2;
+
+#
+# BUG#8490 Select from views containing subqueries causes server to hang
+# forever.
+#
+create table t1 as select 1 A union select 2 union select 3;
+create table t2 as select * from t1;
+create view v1 as select * from t1 where a in (select * from t2);
+select * from v1 A, v1 B where A.a = B.a;
+create table t3 as select a a,a b from t2;
+create view v2 as select * from t3 where
+ a in (select * from t1) or b in (select * from t2);
+select * from v2 A, v2 B where A.a = B.b;
+drop view v1, v2;
+drop table t1, t2, t3;
+
+#
+# Test case for bug #8528: select from view over multi-table view
+#
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+INSERT INTO t1 VALUES (1), (2), (3), (4);
+INSERT INTO t2 VALUES (4), (2);
+
+CREATE VIEW v1 AS SELECT * FROM t1,t2 WHERE t1.a=t2.b;
+SELECT * FROM v1;
+CREATE VIEW v2 AS SELECT * FROM v1;
+SELECT * FROM v2;
+
+DROP VIEW v2,v1;
+
+DROP TABLE t1, t2;
+#
+# Correct restoring view name in SP table locking BUG#9758
+#
+create table t1 (a int);
+create view v1 as select sum(a) from t1 group by a;
+delimiter //;
+create procedure p1()
+begin
+select * from v1;
+end//
+delimiter ;//
+call p1();
+call p1();
+drop procedure p1;
+drop view v1;
+drop table t1;
+
+#
+# Bug#7422 "order by" doesn't work
+#
+CREATE TABLE t1(a char(2) primary key, b char(2));
+CREATE TABLE t2(a char(2), b char(2), index i(a));
+INSERT INTO t1 VALUES ('a','1'), ('b','2');
+INSERT INTO t2 VALUES ('a','5'), ('a','6'), ('b','5'), ('b','6');
+CREATE VIEW v1 AS
+ SELECT t1.b as c, t2.b as d FROM t1,t2 WHERE t1.a=t2.a;
+SELECT d, c FROM v1 ORDER BY d,c;
+DROP VIEW v1;
+DROP TABLE t1, t2;
+#
+# using sum(distinct ) & avg(distinct ) in views (BUG#7015)
+#
+create table t1 (s1 int);
+create view v1 as select sum(distinct s1) from t1;
+select * from v1;
+drop view v1;
+create view v1 as select avg(distinct s1) from t1;
+select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# using cast(... as decimal) in views (BUG#11387);
+#
+create view v1 as select cast(1 as decimal);
+select * from v1;
+drop view v1;
+
+#
+# Bug#11298 insert into select from VIEW produces incorrect result when
+# using ORDER BY
+create table t1(f1 int);
+create table t2(f2 int);
+insert into t1 values(1),(2),(3);
+insert into t2 values(1),(2),(3);
+create view v1 as select * from t1,t2 where f1=f2;
+create table t3 (f1 int, f2 int);
+insert into t3 select * from v1 order by 1;
+select * from t3;
+drop view v1;
+drop table t1,t2,t3;
+
+#
+# Generation unique names for columns, and correct names check (BUG#7448)
+#
+# names with ' and \
+create view v1 as select '\\','\\shazam';
+select * from v1;
+drop view v1;
+create view v1 as select '\'','\shazam';
+select * from v1;
+drop view v1;
+# autogenerated names differ by case only
+create view v1 as select 'k','K';
+select * from v1;
+drop view v1;
+create table t1 (s1 int);
+# same autogenerated names
+create view v1 as select s1, 's1' from t1;
+select * from v1;
+drop view v1;
+create view v1 as select 's1', s1 from t1;
+select * from v1;
+drop view v1;
+# set name as one of expected autogenerated
+create view v1 as select 's1', s1, 1 as My_exp_s1 from t1;
+select * from v1;
+drop view v1;
+create view v1 as select 1 as My_exp_s1, 's1', s1 from t1;
+select * from v1;
+drop view v1;
+# set name conflict with autogenerated names
+create view v1 as select 1 as s1, 's1', 's1' from t1;
+select * from v1;
+drop view v1;
+create view v1 as select 's1', 's1', 1 as s1 from t1;
+select * from v1;
+drop view v1;
+# underlying field name conflict with autogenerated names
+create view v1 as select s1, 's1', 's1' from t1;
+select * from v1;
+drop view v1;
+create view v1 as select 's1', 's1', s1 from t1;
+select * from v1;
+drop view v1;
+# underlying field name conflict with set name
+-- error 1060
+create view v1 as select 1 as s1, 's1', s1 from t1;
+-- error 1060
+create view v1 as select 's1', s1, 1 as s1 from t1;
+drop table t1;
+# set names differ by case only
+-- error 1060
+create view v1(k, K) as select 1,2;
+
+#
+# using time_format in view (BUG#7521)
+#
+create view v1 as SELECT TIME_FORMAT(SEC_TO_TIME(3600),'%H:%i') as t;
+select * from v1;
+drop view v1;
+
+#
+# evaluation constant functions in WHERE (BUG#4663)
+#
+create table t1 (a timestamp default now());
+create table t2 (b timestamp default now());
+create view v1 as select a,b,t1.a < now() from t1,t2 where t1.a < now();
+SHOW CREATE VIEW v1;
+drop view v1;
+drop table t1, t2;
+CREATE TABLE t1 ( a varchar(50) );
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = CURRENT_USER();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = VERSION();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = DATABASE();
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# checking views after some view with error (BUG#11337)
+#
+CREATE TABLE t1 (col1 time);
+CREATE TABLE t2 (col1 time);
+CREATE VIEW v1 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
+CREATE VIEW v2 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2;
+CREATE VIEW v3 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
+CREATE VIEW v4 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2;
+CREATE VIEW v5 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
+CREATE VIEW v6 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2;
+DROP TABLE t1;
+CHECK TABLE v1, v2, v3, v4, v5, v6;
+drop view v1, v2, v3, v4, v5, v6;
+drop table t2;
+
+--disable_warnings
+drop function if exists f1;
+drop function if exists f2;
+--enable_warnings
+CREATE TABLE t1 (col1 time);
+CREATE TABLE t2 (col1 time);
+CREATE TABLE t3 (col1 time);
+create function f1 () returns int return (select max(col1) from t1);
+create function f2 () returns int return (select max(col1) from t2);
+CREATE VIEW v1 AS SELECT f1() FROM t3;
+CREATE VIEW v2 AS SELECT f2() FROM t3;
+CREATE VIEW v3 AS SELECT f1() FROM t3;
+CREATE VIEW v4 AS SELECT f2() FROM t3;
+CREATE VIEW v5 AS SELECT f1() FROM t3;
+CREATE VIEW v6 AS SELECT f2() FROM t3;
+drop function f1;
+CHECK TABLE v1, v2, v3, v4, v5, v6;
+create function f1 () returns int return (select max(col1) from t1);
+DROP TABLE t1;
+CHECK TABLE v1, v2, v3, v4, v5, v6;
+drop function f1;
+drop function f2;
+drop view v1, v2, v3, v4, v5, v6;
+drop table t2,t3;
+
+#
+# bug #11325 Wrong date comparison in views
+#
+create table t1 (f1 date);
+insert into t1 values ('2005-01-01'),('2005-02-02');
+create view v1 as select * from t1;
+select * from v1 where f1='2005.02.02';
+select * from v1 where '2005.02.02'=f1;
+drop view v1;
+drop table t1;
+
+#
+# using encrypt & substring_index in view (BUG#7024)
+#
+CREATE VIEW v1 AS SELECT ENCRYPT("dhgdhgd");
+disable_result_log;
+SELECT * FROM v1;
+enable_result_log;
+drop view v1;
+CREATE VIEW v1 AS SELECT SUBSTRING_INDEX("dkjhgd:kjhdjh", ":", 1);
+SELECT * FROM v1;
+drop view v1;
+
+#
+# hide underlying tables names in case of imposibility to update (BUG#10773)
+#
+create table t1 (f59 int, f60 int, f61 int);
+insert into t1 values (19,41,32);
+create view v1 as select f59, f60 from t1 where f59 in
+ (select f59 from t1);
+-- error 1288
+update v1 set f60=2345;
+-- error 1443
+update t1 set f60=(select max(f60) from v1);
+drop view v1;
+drop table t1;
+
+#
+# Using var_samp with view (BUG#10651)
+#
+create table t1 (s1 int);
+create view v1 as select var_samp(s1) from t1;
+show create view v1;
+drop view v1;
+drop table t1;
+
+#
+# Correct inserting data check (absence of default value) for view
+# underlying tables (BUG#6443)
+#
+set sql_mode='strict_all_tables';
+CREATE TABLE t1 (col1 INT NOT NULL, col2 INT NOT NULL);
+CREATE VIEW v1 (vcol1) AS SELECT col1 FROM t1;
+CREATE VIEW v2 (vcol1) AS SELECT col1 FROM t1 WHERE col2 > 2;
+-- error 1364
+INSERT INTO t1 (col1) VALUES(12);
+-- error 1423
+INSERT INTO v1 (vcol1) VALUES(12);
+-- error 1423
+INSERT INTO v2 (vcol1) VALUES(12);
+set sql_mode=default;
+drop view v2,v1;
+drop table t1;
+
+#
+# Bug#11399 Use an alias in a select statement on a view
+#
+create table t1 (f1 int);
+insert into t1 values (1);
+create view v1 as select f1 from t1;
+select f1 as alias from v1;
+drop view v1;
+drop table t1;
+
+#
+# Test for bug #6120: SP cache to be invalidated when altering a view
+#
+
+CREATE TABLE t1 (s1 int, s2 int);
+INSERT INTO t1 VALUES (1,2);
+CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
+SELECT * FROM v1;
+CREATE PROCEDURE p1 () SELECT * FROM v1;
+CALL p1();
+ALTER VIEW v1 AS SELECT s1 AS s1, s2 AS s2 FROM t1;
+CALL p1();
+DROP VIEW v1;
+CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
+CALL p1();
+
+DROP PROCEDURE p1;
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Test for bug #11709 View was ordered by wrong column
+#
+create table t1 (f1 int, f2 int);
+create view v1 as select f1 as f3, f2 as f1 from t1;
+insert into t1 values (1,3),(2,1),(3,2);
+select * from v1 order by f1;
+drop view v1;
+drop table t1;
+
+#
+# Test for bug #11771: wrong query_id in SELECT * FROM <view>
+#
+CREATE TABLE t1 (f1 char);
+INSERT INTO t1 VALUES ('A');
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+INSERT INTO t1 VALUES('B');
+SELECT * FROM v1;
+SELECT * FROM t1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# opening table in correct locking mode (BUG#9597)
+#
+CREATE TABLE t1 ( bug_table_seq INTEGER NOT NULL);
+CREATE OR REPLACE VIEW v1 AS SELECT * from t1;
+DROP PROCEDURE IF EXISTS p1;
+delimiter //;
+CREATE PROCEDURE p1 ( )
+BEGIN
+ DO (SELECT @next := IFNULL(max(bug_table_seq),0) + 1 FROM v1);
+ INSERT INTO t1 VALUES (1);
+END //
+delimiter ;//
+CALL p1();
+DROP PROCEDURE p1;
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #11335 View redefines column types
+#
+create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
+create view v1 as select * from t1;
+desc v1;
+drop view v1;
+drop table t1;
+
+#
+# Bug #11760 Typo in Item_func_add_time::print() results in NULLs returned
+# subtime() in view
+create table t1(f1 datetime);
+insert into t1 values('2005.01.01 12:0:0');
+create view v1 as select f1, subtime(f1, '1:1:1') as sb from t1;
+select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# Test for bug #11412: query over a multitable view with GROUP_CONCAT
+#
+CREATE TABLE t1 (
+ aid int PRIMARY KEY,
+ fn varchar(20) NOT NULL,
+ ln varchar(20) NOT NULL
+);
+CREATE TABLE t2 (
+ aid int NOT NULL,
+ pid int NOT NULL
+);
+INSERT INTO t1 VALUES(1,'a','b'), (2,'c','d');
+INSERT INTO t2 values (1,1), (2,1), (2,2);
+
+CREATE VIEW v1 AS SELECT t1.*,t2.pid FROM t1,t2 WHERE t1.aid = t2.aid;
+
+SELECT pid,GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1) FROM t1,t2
+ WHERE t1.aid = t2.aid GROUP BY pid;
+SELECT pid,GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1) FROM v1 GROUP BY pid;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Test for bug #12382: SELECT * FROM view after INSERT command
+#
+
+CREATE TABLE t1 (id int PRIMARY KEY, f varchar(255));
+CREATE VIEW v1 AS SELECT id, f FROM t1 WHERE id <= 2;
+INSERT INTO t1 VALUES (2, 'foo2');
+INSERT INTO t1 VALUES (1, 'foo1');
+
+SELECT * FROM v1;
+SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Test for bug #12470: crash for a simple select from a view defined
+# as a join over 5 tables
+
+CREATE TABLE t1 (pk int PRIMARY KEY, b int);
+CREATE TABLE t2 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE TABLE t3 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE TABLE t4 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE TABLE t5 (pk int PRIMARY KEY, fk int, INDEX idx(fk));
+CREATE VIEW v1 AS
+ SELECT t1.pk as a FROM t1,t2,t3,t4,t5
+ WHERE t1.b IS NULL AND
+ t1.pk=t2.fk AND t2.pk=t3.fk AND t3.pk=t4.fk AND t4.pk=t5.fk;
+
+SELECT a FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1,t2,t3,t4,t5;
+
+#
+# Bug #12298 Typo in function name results in erroneous view being created.
+#
+create view v1 as select timestampdiff(day,'1997-01-01 00:00:00','1997-01-02 00:00:00') as f1;
+select * from v1;
+drop view v1;
+
+#
+# repeatable CREATE VIEW statement BUG#12468
+#
+create table t1(a int);
+create procedure p1() create view v1 as select * from t1;
+drop table t1;
+-- error 1146
+call p1();
+-- error 1146
+call p1();
+drop procedure p1;
+
+#
+# Bug #10624 Views with multiple UNION and UNION ALL produce incorrect results
+#
+create table t1 (f1 int);
+create table t2 (f1 int);
+insert into t1 values (1);
+insert into t2 values (2);
+create view v1 as select * from t1 union select * from t2 union all select * from t2;
+select * from v1;
+drop view v1;
+drop table t1,t2;
+#
+# Test for bug #10970: view referring a temporary table indirectly
+#
+
+CREATE TEMPORARY TABLE t1 (a int);
+CREATE FUNCTION f1 () RETURNS int RETURN (SELECT COUNT(*) FROM t1);
+-- error 1352
+CREATE VIEW v1 AS SELECT f1();
+
+DROP FUNCTION f1;
+DROP TABLE t1;
+
+#
+# BUG #12533 (crash on DESCRIBE <view> after renaming base table column)
+#
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+CREATE TABLE t1 (f4 CHAR(5));
+CREATE VIEW v1 AS SELECT * FROM t1;
+DESCRIBE v1;
+
+ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5);
+--error 1356
+DESCRIBE v1;
+DROP TABLE t1;
+DROP VIEW v1;
+
+#
+# Bug #12489 wrongly printed strcmp() function results in creation of broken
+# view
+create table t1 (f1 char);
+create view v1 as select strcmp(f1,'a') from t1;
+select * from v1;
+drop view v1;
+drop table t1;
+
+#
+# Bug #12922 if(sum(),...) with group from view returns wrong results
+#
+create table t1 (f1 int, f2 int,f3 int);
+insert into t1 values (1,10,20),(2,0,0);
+create view v1 as select * from t1;
+select if(sum(f1)>1,f2,f3) from v1 group by f1;
+drop view v1;
+drop table t1;
+# BUG#12941
+#
+--disable_warnings
+create table t1 (
+ r_object_id char(16) NOT NULL,
+ group_name varchar(32) NOT NULL
+) engine = InnoDB;
+
+create table t2 (
+ r_object_id char(16) NOT NULL,
+ i_position int(11) NOT NULL,
+ users_names varchar(32) default NULL
+) Engine = InnoDB;
+--enable_warnings
+
+create view v1 as select r_object_id, group_name from t1;
+create view v2 as select r_object_id, i_position, users_names from t2;
+
+create unique index r_object_id on t1(r_object_id);
+create index group_name on t1(group_name);
+create unique index r_object_id_i_position on t2(r_object_id,i_position);
+create index users_names on t2(users_names);
+
+insert into t1 values('120001a080000542','tstgroup1');
+insert into t2 values('120001a080000542',-1, 'guser01');
+insert into t2 values('120001a080000542',-2, 'guser02');
+
+select v1.r_object_id, v2.users_names from v1, v2
+where (v1.group_name='tstgroup1') and v2.r_object_id=v1.r_object_id
+order by users_names;
+
+drop view v1, v2;
+drop table t1, t2;
+
+# Bug #6808 - Views: CREATE VIEW v ... FROM t AS v fails
+#
+
+create table t1 (s1 int);
+create view abc as select * from t1 as abc;
+drop table t1;
+drop view abc;
+
+#
+# Bug #12993 View column rename broken in subselect
+#
+create table t1(f1 char(1));
+create view v1 as select * from t1;
+select * from (select f1 as f2 from v1) v where v.f2='a';
+drop view v1;
+drop table t1;
+
+#
+# Bug #11416 Server crash if using a view that uses function convert_tz
+#
+create view v1 as SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+select * from v1;
+drop view v1;
+
+#
+# Bugs #12963, #13000: wrong creation of VIEW with DAYNAME, DAYOFWEEK, and WEEKDAY
+#
+
+CREATE TABLE t1 (date DATE NOT NULL);
+INSERT INTO t1 VALUES ('2005-09-06');
+
+CREATE VIEW v1 AS SELECT DAYNAME(date) FROM t1;
+SHOW CREATE VIEW v1;
+
+CREATE VIEW v2 AS SELECT DAYOFWEEK(date) FROM t1;
+SHOW CREATE VIEW v2;
+
+CREATE VIEW v3 AS SELECT WEEKDAY(date) FROM t1;
+SHOW CREATE VIEW v3;
+
+SELECT DAYNAME('2005-09-06');
+SELECT DAYNAME(date) FROM t1;
+SELECT * FROM v1;
+
+SELECT DAYOFWEEK('2005-09-06');
+SELECT DAYOFWEEK(date) FROM t1;
+SELECT * FROM v2;
+
+SELECT WEEKDAY('2005-09-06');
+SELECT WEEKDAY(date) FROM t1;
+SELECT * FROM v3;
+
+DROP TABLE t1;
+DROP VIEW v1, v2, v3;
+
+#
+# Bug #13411: crash when using non-qualified view column in HAVING clause
+#
+
+CREATE TABLE t1 ( a int, b int );
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+CREATE VIEW v1 AS SELECT a,b FROM t1;
+SELECT t1.a FROM t1 GROUP BY t1.a HAVING a > 1;
+SELECT v1.a FROM v1 GROUP BY v1.a HAVING a > 1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #13410: failed name resolution for qualified view column in HAVING
+#
+
+CREATE TABLE t1 ( a int, b int );
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+CREATE VIEW v1 AS SELECT a,b FROM t1;
+SELECT t1.a FROM t1 GROUP BY t1.a HAVING t1.a > 1;
+SELECT v1.a FROM v1 GROUP BY v1.a HAVING v1.a > 1;
+SELECT t_1.a FROM t1 AS t_1 GROUP BY t_1.a HAVING t_1.a IN (1,2,3);
+SELECT v_1.a FROM v1 AS v_1 GROUP BY v_1.a HAVING v_1.a IN (1,2,3);
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #13327 view wasn't using index for const condition
+#
+
+CREATE TABLE t1 (a INT, b INT, INDEX(a,b));
+CREATE TABLE t2 LIKE t1;
+CREATE TABLE t3 (a INT);
+INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
+INSERT INTO t2 VALUES (1,1),(2,2),(3,3);
+INSERT INTO t3 VALUES (1),(2),(3);
+CREATE VIEW v1 AS SELECT t1.* FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
+CREATE VIEW v2 AS SELECT t3.* FROM t1,t3 WHERE t1.a=t3.a;
+EXPLAIN SELECT t1.* FROM t1 JOIN t2 WHERE t1.a=t2.a AND t1.b=t2.b AND t1.a=1;
+EXPLAIN SELECT * FROM v1 WHERE a=1;
+EXPLAIN SELECT * FROM v2 WHERE a=1;
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3;
+
+#
+# Bug #13622 Wrong view .frm created if some field's alias contain \n
+#
+create table t1 (f1 int);
+create view v1 as select t1.f1 as '123
+456' from t1;
+select * from v1;
+drop view v1;
+drop table t1;
+
+# Bug #14466 lost sort order in GROUP_CONCAT() in a view
+#
+create table t1 (f1 int, f2 int);
+insert into t1 values(1,1),(1,2),(1,3);
+create view v1 as select f1 ,group_concat(f2 order by f2 asc) from t1 group by f1;
+create view v2 as select f1 ,group_concat(f2 order by f2 desc) from t1 group by f1;
+select * from v1;
+select * from v2;
+drop view v1,v2;
+drop table t1;
+
+#
+# BUG#14026 Crash on second PS execution when using views
+#
+create table t1 (x int, y int);
+create table t2 (x int, y int, z int);
+create table t3 (x int, y int, z int);
+create table t4 (x int, y int, z int);
+
+create view v1 as
+select t1.x
+from (
+ (t1 join t2 on ((t1.y = t2.y)))
+ join
+ (t3 left join t4 on (t3.y = t4.y) and (t3.z = t4.z))
+);
+
+prepare stmt1 from "select count(*) from v1 where x = ?";
+set @parm1=1;
+
+execute stmt1 using @parm1;
+execute stmt1 using @parm1;
+drop view v1;
+drop table t1,t2,t3,t4;
+
+#
+# Bug #14540: OPTIMIZE, ANALYZE, REPAIR applied to not a view
+#
+
+CREATE TABLE t1(id INT);
+CREATE VIEW v1 AS SELECT id FROM t1;
+
+OPTIMIZE TABLE v1;
+ANALYZE TABLE v1;
+REPAIR TABLE v1;
+
+DROP TABLE t1;
+OPTIMIZE TABLE v1;
+ANALYZE TABLE v1;
+REPAIR TABLE v1;
+
+DROP VIEW v1;
+
+
+#
+# BUG#14719: Views DEFINER grammar is incorrect
+#
+
+create definer = current_user() sql security invoker view v1 as select 1;
+show create view v1;
+drop view v1;
+
+create definer = current_user sql security invoker view v1 as select 1;
+show create view v1;
+drop view v1;
+
+#
+# Bug #14816 test_if_order_by_key() expected only Item_fields.
+#
+create table t1 (id INT, primary key(id));
+insert into t1 values (1),(2);
+create view v1 as select * from t1;
+explain select id from v1 order by id;
+drop view v1;
+drop table t1;
+
+#
+# Bug #14850 Item_ref's values wasn't updated
+#
+create table t1(f1 int, f2 int);
+insert into t1 values (null, 10), (null,2);
+select f1, sum(f2) from t1 group by f1;
+create view v1 as select * from t1;
+select f1, sum(f2) from v1 group by f1;
+drop view v1;
+drop table t1;
+
+#
+# BUG#14885: incorrect SOURCE in view created in a procedure
+# TODO: here SOURCE string must be shown when it will be possible
+#
+--disable_warnings
+drop procedure if exists p1;
+--enable_warnings
+delimiter //;
+create procedure p1 () deterministic
+begin
+create view v1 as select 1;
+end;
+//
+delimiter ;//
+call p1();
+show create view v1;
+drop view v1;
+drop procedure p1;
+
+#
+# BUG#15096: using function with view for view creation
+#
+CREATE VIEW v1 AS SELECT 42 AS Meaning;
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+DELIMITER //;
+CREATE FUNCTION f1() RETURNS INTEGER
+BEGIN
+ DECLARE retn INTEGER;
+ SELECT Meaning FROM v1 INTO retn;
+ RETURN retn;
+END
+//
+DELIMITER ;//
+CREATE VIEW v2 AS SELECT f1();
+select * from v2;
+drop view v2,v1;
+drop function f1;
+
+#
+# Bug#14861: aliased column names are not preserved.
+#
+create table t1 (id numeric, warehouse_id numeric);
+create view v1 as select id from t1;
+create view v2 as
+select t1.warehouse_id, v1.id as receipt_id
+from t1, v1 where t1.id = v1.id;
+
+insert into t1 (id, warehouse_id) values(3, 2);
+insert into t1 (id, warehouse_id) values(4, 2);
+insert into t1 (id, warehouse_id) values(5, 1);
+
+select v2.receipt_id as alias1, v2.receipt_id as alias2 from v2
+order by v2.receipt_id;
+
+drop view v2, v1;
+drop table t1;
+
+#
+# Bug#16016: MIN/MAX optimization for views
+#
+
+CREATE TABLE t1 (a int PRIMARY KEY, b int);
+INSERT INTO t1 VALUES (2,20), (3,10), (1,10), (0,30), (5,10);
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+SELECT MAX(a) FROM t1;
+SELECT MAX(a) FROM v1;
+
+EXPLAIN SELECT MAX(a) FROM t1;
+EXPLAIN SELECT MAX(a) FROM v1;
+
+SELECT MIN(a) FROM t1;
+SELECT MIN(a) FROM v1;
+
+EXPLAIN SELECT MIN(a) FROM t1;
+EXPLAIN SELECT MIN(a) FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug#16382: grouping name is resolved against a view column name
+# which coincides with a select column name
+
+CREATE TABLE t1 (x varchar(10));
+INSERT INTO t1 VALUES (null), ('foo'), ('bar'), (null);
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+SELECT IF(x IS NULL, 'blank', 'not blank') FROM v1 GROUP BY x;
+SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM t1 GROUP BY x;
+SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM v1;
+SELECT IF(x IS NULL, 'blank', 'not blank') AS y FROM v1 GROUP BY y;
+SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM v1 GROUP BY x;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# BUG#15943: mysql_next_result hangs on invalid SHOW CREATE VIEW
+#
+
+delimiter //;
+drop table if exists t1;
+drop view if exists v1;
+create table t1 (id int);
+create view v1 as select * from t1;
+drop table t1;
+show create view v1;
+drop view v1;
+//
+delimiter ;//
+
+#
+# Bug#17726 Not checked empty list caused endless loop
+#
+create table t1(f1 int, f2 int);
+create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb
+.f1 and ta.f2=tb.f2;
+insert into t1 values(1,1),(2,2);
+create view v2 as select * from v1 where a > 1 with local check option;
+select * from v2;
+update v2 set b=3 where a=2;
+select * from v2;
+drop view v2, v1;
+drop table t1;
+
+#
+# Bug #18386: select from view over a table with ORDER BY view_col clause
+# given view_col is not an image of any column from the base table
+
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES (1), (2);
+
+CREATE VIEW v1 AS SELECT SQRT(a) my_sqrt FROM t1;
+
+SELECT my_sqrt FROM v1 ORDER BY my_sqrt;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #18237: invalid count optimization applied to an outer join with a view
+#
+
+CREATE TABLE t1 (id int PRIMARY KEY);
+CREATE TABLE t2 (id int PRIMARY KEY);
+
+INSERT INTO t1 VALUES (1), (3);
+INSERT INTO t2 VALUES (1), (2), (3);
+
+CREATE VIEW v2 AS SELECT * FROM t2;
+
+SELECT COUNT(*) FROM t1 LEFT JOIN t2 ON t1.id=t2.id;
+SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id;
+
+SELECT COUNT(*) FROM t1 LEFT JOIN v2 ON t1.id=v2.id;
+
+DROP VIEW v2;
+
+DROP TABLE t1, t2;
+
+#
+# Bug #16069: VIEW does return the same results as underlying SELECT
+# with WHERE condition containing BETWEEN over dates
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY,
+ td date DEFAULT NULL, KEY idx(td));
+
+INSERT INTO t1 VALUES
+ (1, '2005-01-01'), (2, '2005-01-02'), (3, '2005-01-02'),
+ (4, '2005-01-03'), (5, '2005-01-04'), (6, '2005-01-05'),
+ (7, '2005-01-05'), (8, '2005-01-05'), (9, '2005-01-06');
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+SELECT * FROM t1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
+SELECT * FROM v1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# BUG#14308: Recursive view definitions
+#
+# using view only
+create table t1 (a int);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+drop table t1;
+rename table v2 to t1;
+-- error ER_VIEW_RECURSIVE
+select * from v1;
+drop view t1, v1;
+# using SP function
+create table t1 (a int);
+delimiter //;
+create function f1() returns int
+begin
+ declare mx int;
+ select max(a) from t1 into mx;
+ return mx;
+end//
+delimiter ;//
+create view v1 as select f1() as a;
+create view v2 as select * from v1;
+drop table t1;
+rename table v2 to t1;
+-- error ER_SP_NO_RECURSION
+select * from v1;
+drop function f1;
+drop view t1, v1;
+
+#
+# Bug #15153: CONVERT_TZ() is not allowed in all places in VIEWs
+#
+# Error was reported when one tried to use CONVERT_TZ() function
+# select list of view which was processed using MERGE algorithm.
+# (Also see additional test in timezone_grant.test)
+create table t1 (dt datetime);
+insert into t1 values (20040101000000), (20050101000000), (20060101000000);
+# Let us test that convert_tz() can be used in view's select list
+create view v1 as select convert_tz(dt, 'UTC', 'Europe/Moscow') as ldt from t1;
+select * from v1;
+drop view v1;
+# And in its where part
+create view v1 as select * from t1 where convert_tz(dt, 'UTC', 'Europe/Moscow') >= 20050101000000;
+select * from v1;
+# Other interesting case - a view which uses convert_tz() function
+# through other view.
+create view v2 as select * from v1 where dt < 20060101000000;
+select * from v2;
+drop view v2;
+# And even more interesting case when view uses convert_tz() both
+# directly and indirectly
+create view v2 as select convert_tz(dt, 'UTC', 'Europe/Moscow') as ldt from v1;
+select * from v2;
+drop view v1, v2;
+drop table t1;
+
+#
+# Bug #19490: usage of view specified by a query with GROUP BY
+# an expression containing non-constant interval
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, d datetime);
+
+CREATE VIEW v1 AS
+SELECT id, date(d) + INTERVAL TIME_TO_SEC(d) SECOND AS t, COUNT(*)
+ FROM t1 GROUP BY id, t;
+
+SHOW CREATE VIEW v1;
+SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug#19077: A nested materialized view is used before being populated.
+#
+CREATE TABLE t1 (i INT, j BIGINT);
+INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2);
+CREATE VIEW v1 AS SELECT MIN(j) AS j FROM t1;
+CREATE VIEW v2 AS SELECT MIN(i) FROM t1 WHERE j = ( SELECT * FROM v1 );
+SELECT * FROM v2;
+DROP VIEW v2, v1;
+DROP TABLE t1;
+
+#
+# Bug #19573: VIEW with HAVING that refers an alias name
+#
+
+CREATE TABLE t1(
+ fName varchar(25) NOT NULL,
+ lName varchar(25) NOT NULL,
+ DOB date NOT NULL,
+ test_date date NOT NULL,
+ uID int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY);
+
+INSERT INTO t1(fName, lName, DOB, test_date) VALUES
+ ('Hank', 'Hill', '1964-09-29', '2007-01-01'),
+ ('Tom', 'Adams', '1908-02-14', '2007-01-01'),
+ ('Homer', 'Simpson', '1968-03-05', '2007-01-01');
+
+CREATE VIEW v1 AS
+ SELECT (year(test_date)-year(DOB)) AS Age
+ FROM t1 HAVING Age < 75;
+SHOW CREATE VIEW v1;
+
+SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75;
+SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #19089: wrong inherited dafault values in temp table views
+#
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
+INSERT INTO t1(id) VALUES (1), (2), (3), (4);
+INSERT INTO t1 VALUES (5,'yyy'), (6,'yyy');
+SELECT * FROM t1;
+
+CREATE VIEW v1(a, m) AS SELECT a, MIN(id) FROM t1 GROUP BY a;
+SELECT * FROM v1;
+
+CREATE TABLE t2 SELECT * FROM v1;
+INSERT INTO t2(m) VALUES (0);
+SELECT * FROM t2;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+CREATE TABLE t1 (id int PRIMARY KEY, e ENUM('a','b') NOT NULL DEFAULT 'b');
+INSERT INTO t1(id) VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (4,'a');
+SELECT * FROM t1;
+
+CREATE VIEW v1(m, e) AS SELECT MIN(id), e FROM t1 GROUP BY e;
+CREATE TABLE t2 SELECT * FROM v1;
+SELECT * FROM t2;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+
+#
+# Bug#16110: insert permitted into view col w/o default value
+#
+CREATE TABLE t1 (a INT NOT NULL, b INT NULL DEFAULT NULL);
+CREATE VIEW v1 AS SELECT a, b FROM t1;
+
+INSERT INTO v1 (b) VALUES (2);
+
+SET SQL_MODE = STRICT_ALL_TABLES;
+--error 1423
+INSERT INTO v1 (b) VALUES (4);
+SET SQL_MODE = '';
+
+SELECT * FROM t1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #18243: expression over a view column that with the REVERSE function
+#
+
+CREATE TABLE t1 (firstname text, surname text);
+INSERT INTO t1 VALUES
+ ("Bart","Simpson"),("Milhouse","van Houten"),("Montgomery","Burns");
+
+CREATE VIEW v1 AS SELECT CONCAT(firstname," ",surname) AS name FROM t1;
+SELECT CONCAT(LEFT(name,LENGTH(name)-INSTR(REVERSE(name)," ")),
+ LEFT(name,LENGTH(name)-INSTR(REVERSE(name)," "))) AS f1
+ FROM v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #19714: wrong type of a view column specified by an expressions over ints
+#
+
+CREATE TABLE t1 (i int, j int);
+CREATE VIEW v1 AS SELECT COALESCE(i,j) FROM t1;
+DESCRIBE v1;
+CREATE TABLE t2 SELECT COALESCE(i,j) FROM t1;
+DESCRIBE t2;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Bug #17526: views with TRIM functions
+#
+
+CREATE TABLE t1 (s varchar(10));
+INSERT INTO t1 VALUES ('yadda'), ('yady');
+
+SELECT TRIM(BOTH 'y' FROM s) FROM t1;
+CREATE VIEW v1 AS SELECT TRIM(BOTH 'y' FROM s) FROM t1;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+SELECT TRIM(LEADING 'y' FROM s) FROM t1;
+CREATE VIEW v1 AS SELECT TRIM(LEADING 'y' FROM s) FROM t1;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+SELECT TRIM(TRAILING 'y' FROM s) FROM t1;
+CREATE VIEW v1 AS SELECT TRIM(TRAILING 'y' FROM s) FROM t1;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+DROP TABLE t1;
+
+#
+#Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
+#
+CREATE TABLE t1 (x INT, y INT);
+CREATE ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1;
+SHOW CREATE VIEW v1;
+
+ALTER VIEW v1 AS SELECT x, y FROM t1;
+SHOW CREATE VIEW v1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+# Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE
+# clause is called
+#
+CREATE TABLE t1 (s1 char);
+INSERT INTO t1 VALUES ('Z');
+
+CREATE VIEW v1 AS SELECT s1 collate latin1_german1_ci AS col FROM t1;
+
+CREATE VIEW v2 (col) AS SELECT s1 collate latin1_german1_ci FROM t1;
+
+# either of these statements will cause crash
+INSERT INTO v1 (col) VALUES ('b');
+INSERT INTO v2 (col) VALUES ('c');
+
+SELECT s1 FROM t1;
+DROP VIEW v1, v2;
+DROP TABLE t1;
+
+#
+# Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE
+#
+CREATE TABLE t1 (id INT);
+CREATE VIEW v1 AS SELECT id FROM t1;
+SHOW TABLES;
+
+--error 1051
+DROP VIEW v2,v1;
+SHOW TABLES;
+
+CREATE VIEW v1 AS SELECT id FROM t1;
+--error 1347
+DROP VIEW t1,v1;
+SHOW TABLES;
+
+DROP TABLE t1;
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+#
+# Bug #21261: Wrong access rights was required for an insert to a view
+#
+CREATE DATABASE bug21261DB;
+USE bug21261DB;
+CONNECT (root,localhost,root,,bug21261DB);
+CONNECTION root;
+
+CREATE TABLE t1 (x INT);
+CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1;
+GRANT INSERT, UPDATE ON v1 TO 'user21261'@'localhost';
+GRANT INSERT, UPDATE ON t1 TO 'user21261'@'localhost';
+CREATE TABLE t2 (y INT);
+GRANT SELECT ON t2 TO 'user21261'@'localhost';
+
+CONNECT (user21261, localhost, user21261,, bug21261DB);
+CONNECTION user21261;
+INSERT INTO v1 (x) VALUES (5);
+UPDATE v1 SET x=1;
+CONNECTION root;
+GRANT SELECT ON v1 TO 'user21261'@'localhost';
+GRANT SELECT ON t1 TO 'user21261'@'localhost';
+CONNECTION user21261;
+UPDATE v1,t2 SET x=1 WHERE x=y;
+CONNECTION root;
+SELECT * FROM t1;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user21261'@'localhost';
+DROP USER 'user21261'@'localhost';
+DROP VIEW v1;
+DROP TABLE t1;
+DROP DATABASE bug21261DB;
+USE test;
+
+#
+# Bug #15950: NOW() optimized away in VIEWs
+#
+create table t1 (f1 datetime);
+create view v1 as select * from t1 where f1 between now() and now() + interval 1 minute;
+show create view v1;
+drop view v1;
+drop table t1;
+#
+# Test for BUG#16899: Possible buffer overflow in handling of DEFINER-clause.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+--enable_warnings
+
+CREATE TABLE t1(a INT, b INT);
+
+--error ER_WRONG_STRING_LENGTH
+CREATE DEFINER=1234567890abcdefGHIKL@localhost
+ VIEW v1 AS SELECT a FROM t1;
+
+--error ER_WRONG_STRING_LENGTH
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+ VIEW v2 AS SELECT b FROM t1;
+
+# Cleanup.
+
+DROP TABLE t1;
+
+
+#
+# BUG#17591: Updatable view not possible with trigger or stored
+# function
+#
+# During prelocking phase we didn't update lock type of view tables,
+# hence READ lock was always requested.
+#
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP VIEW IF EXISTS v1, v2;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+delimiter |;
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+ INSERT INTO v1 VALUES (0);
+ RETURN 0;
+END |
+delimiter ;|
+
+SELECT f1();
+
+CREATE ALGORITHM=TEMPTABLE VIEW v2 AS SELECT * FROM t1;
+
+delimiter |;
+CREATE FUNCTION f2() RETURNS INT
+BEGIN
+ INSERT INTO v2 VALUES (0);
+ RETURN 0;
+END |
+delimiter ;|
+
+--error ER_NON_INSERTABLE_TABLE
+SELECT f2();
+
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP VIEW v1, v2;
+DROP TABLE t1;
+
+#
+# Bug #5500: wrong select_type in EXPLAIN output for queries over views
+#
+
+CREATE TABLE t1 (s1 int);
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+EXPLAIN SELECT * FROM t1;
+EXPLAIN SELECT * FROM v1;
+
+INSERT INTO t1 VALUES (1), (3), (2);
+
+EXPLAIN SELECT * FROM t1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
+EXPLAIN SELECT * FROM v1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #5505: Wrong error message on INSERT into a view
+#
+create table t1 (s1 int);
+create view v1 as select s1 as a, s1 as b from t1;
+--error 1471
+insert into v1 values (1,1);
+update v1 set a = 5;
+drop view v1;
+drop table t1;
+
+#
+# Bug #21646: view qith a subquery in ON expression
+#
+
+CREATE TABLE t1(pk int PRIMARY KEY);
+CREATE TABLE t2(pk int PRIMARY KEY, fk int, ver int, org int);
+
+CREATE ALGORITHM=MERGE VIEW v1 AS
+SELECT t1.*
+ FROM t1 JOIN t2
+ ON t2.fk = t1.pk AND
+ t2.ver = (SELECT MAX(t.ver) FROM t2 t WHERE t.org = t2.org);
+SHOW WARNINGS;
+SHOW CREATE VIEW v1;
+
+DROP VIEW v1;
+DROP TABLE t1, t2;
+
+
+#
+# Bug#19111: TRIGGERs selecting from a VIEW on the firing base table
+# fail
+#
+# Allow to select from a view on a table being modified in a trigger
+# and stored function, since plain select is allowed there.
+#
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+DROP VIEW IF EXISTS v1;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (i INT);
+INSERT INTO t1 VALUES (1);
+
+CREATE VIEW v1 AS SELECT MAX(i) FROM t1;
+
+# Plain 'SET NEW.i = (SELECT MAX(i) FROM t1) + 1' works, so select
+# from a view should work too.
+CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
+ SET NEW.i = (SELECT * FROM v1) + 1;
+INSERT INTO t1 VALUES (1);
+
+# Plain 'RETURN (SELECT MAX(i) FROM t1)' works in INSERT, so select
+# from a view should work too.
+CREATE FUNCTION f1() RETURNS INT RETURN (SELECT * FROM v1);
+UPDATE t1 SET i= f1();
+
+DROP FUNCTION f1;
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #16813 (WITH CHECK OPTION doesn't work with UPDATE)
+#
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL);
+CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION;
+INSERT INTO v1 (val) VALUES (2);
+INSERT INTO v1 (val) VALUES (4);
+-- error 1369
+INSERT INTO v1 (val) VALUES (6);
+-- error 1369
+UPDATE v1 SET val=6 WHERE id=2;
+DROP VIEW v1;
+DROP TABLE t1;
+
+
+#
+# BUG#22584: last_insert_id not updated after inserting a record
+# through a updatable view
+#
+# We still do not update LAST_INSERT_ID if AUTO_INCREMENT column is
+# not accessible through a view. However, we do not reset the value
+# of LAST_INSERT_ID, but keep it unchanged.
+#
+--disable_warnings
+DROP VIEW IF EXISTS v1, v2;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
+CREATE VIEW v1 AS SELECT j FROM t1;
+CREATE VIEW v2 AS SELECT * FROM t1;
+
+INSERT INTO t1 (j) VALUES (1);
+SELECT LAST_INSERT_ID();
+
+INSERT INTO v1 (j) VALUES (2);
+--echo # LAST_INSERT_ID() should not change.
+SELECT LAST_INSERT_ID();
+
+INSERT INTO v2 (j) VALUES (3);
+--echo # LAST_INSERT_ID() should be updated.
+SELECT LAST_INSERT_ID();
+
+INSERT INTO v1 (j) SELECT j FROM t1;
+--echo # LAST_INSERT_ID() should not change.
+SELECT LAST_INSERT_ID();
+
+SELECT * FROM t1;
+
+DROP VIEW v1, v2;
+DROP TABLE t1;
+
+#
+# Bug #25580: !0 as an operand in a select expression of a view
+#
+
+CREATE VIEW v AS SELECT !0 * 5 AS x FROM DUAL;
+SHOW CREATE VIEW v;
+
+SELECT !0 * 5 AS x FROM DUAL;
+SELECT * FROM v;
+
+DROP VIEW v;
+
+#
+# BUG#24293: '\Z' token is not handled correctly in views
+#
+
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+CREATE VIEW v1 AS SELECT 'The\ZEnd';
+SELECT * FROM v1;
+
+SHOW CREATE VIEW v1;
+
+DROP VIEW v1;
+
+#
+# Bug #26124: BETWEEN over a view column of the DATETIME type
+#
+
+CREATE TABLE t1 (mydate DATETIME);
+INSERT INTO t1 VALUES
+ ('2007-01-01'), ('2007-01-02'), ('2007-01-30'), ('2007-01-31');
+
+CREATE VIEW v1 AS SELECT mydate from t1;
+
+SELECT * FROM t1 WHERE mydate BETWEEN '2007-01-01' AND '2007-01-31';
+SELECT * FROM v1 WHERE mydate BETWEEN '2007-01-01' AND '2007-01-31';
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #25931: update of a multi-table view with check option
+#
+
+CREATE TABLE t1 (a int);
+CREATE TABLE t2 (b int);
+INSERT INTO t1 VALUES (1), (2);
+INSERT INTO t2 VALUES (1), (2);
+
+CREATE VIEW v1 AS
+ SELECT t2.b FROM t1,t2 WHERE t1.a = t2.b WITH CHECK OPTION;
+
+SELECT * FROM v1;
+--error 1369
+UPDATE v1 SET b=3;
+SELECT * FROM v1;
+SELECT * FROM t1;
+SELECT * FROM t2;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Bug#12122: Views with ORDER BY can't be resolved using MERGE algorithm.
+#
+create table t1(f1 int, f2 int);
+insert into t1 values(1,2),(1,3),(1,1),(2,3),(2,1),(2,2);
+select * from t1;
+create view v1 as select * from t1 order by f2;
+select * from v1;
+explain extended select * from v1;
+select * from v1 order by f1;
+explain extended select * from v1 order by f1;
+drop view v1;
+drop table t1;
+
+#
+# Bug#26209: queries with GROUP BY and ORDER BY using views
+#
+
+CREATE TABLE t1 (
+ id int(11) NOT NULL PRIMARY KEY,
+ country varchar(32),
+ code int(11) default NULL
+);
+INSERT INTO t1 VALUES
+ (1,'ITALY',100),(2,'ITALY',200),(3,'FRANCE',100), (4,'ITALY',100);
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+SELECT code, COUNT(DISTINCT country) FROM t1 GROUP BY code ORDER BY MAX(id);
+SELECT code, COUNT(DISTINCT country) FROM v1 GROUP BY code ORDER BY MAX(id);
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# BUG#25897: Some queries are no longer possible after a CREATE VIEW
+# fails
+#
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+let $query = SELECT * FROM (SELECT 1) AS t;
+
+eval $query;
+--error ER_VIEW_SELECT_DERIVED
+eval CREATE VIEW v1 AS $query;
+--echo # Previously the following would fail.
+eval $query;
+
+#
+# Bug#24532: The return data type of IS TRUE is different from similar
+# operations
+#
+
+--disable_warnings
+drop view if exists view_24532_a;
+drop view if exists view_24532_b;
+drop table if exists table_24532;
+--enable_warnings
+
+create table table_24532 (
+ a int,
+ b bigint,
+ c int(4),
+ d bigint(48)
+);
+
+create view view_24532_a as
+select
+ a IS TRUE,
+ a IS NOT TRUE,
+ a IS FALSE,
+ a IS NOT FALSE,
+ a IS UNKNOWN,
+ a IS NOT UNKNOWN,
+ a is NULL,
+ a IS NOT NULL,
+ ISNULL(a),
+ b IS TRUE,
+ b IS NOT TRUE,
+ b IS FALSE,
+ b IS NOT FALSE,
+ b IS UNKNOWN,
+ b IS NOT UNKNOWN,
+ b is NULL,
+ b IS NOT NULL,
+ ISNULL(b),
+ c IS TRUE,
+ c IS NOT TRUE,
+ c IS FALSE,
+ c IS NOT FALSE,
+ c IS UNKNOWN,
+ c IS NOT UNKNOWN,
+ c is NULL,
+ c IS NOT NULL,
+ ISNULL(c),
+ d IS TRUE,
+ d IS NOT TRUE,
+ d IS FALSE,
+ d IS NOT FALSE,
+ d IS UNKNOWN,
+ d IS NOT UNKNOWN,
+ d is NULL,
+ d IS NOT NULL,
+ ISNULL(d)
+from table_24532;
+
+describe view_24532_a;
+
+create view view_24532_b as
+select
+ a IS TRUE,
+ if(ifnull(a, 0), 1, 0) as old_istrue,
+ a IS NOT TRUE,
+ if(ifnull(a, 0), 0, 1) as old_isnottrue,
+ a IS FALSE,
+ if(ifnull(a, 1), 0, 1) as old_isfalse,
+ a IS NOT FALSE,
+ if(ifnull(a, 1), 1, 0) as old_isnotfalse
+from table_24532;
+
+describe view_24532_b;
+
+show create view view_24532_b;
+
+insert into table_24532 values (0, 0, 0, 0);
+select * from view_24532_b;
+update table_24532 set a=1;
+select * from view_24532_b;
+update table_24532 set a=NULL;
+select * from view_24532_b;
+
+drop view view_24532_a;
+drop view view_24532_b;
+drop table table_24532;
+
+#
+# Bug#26560: view using subquery with a reference to an outer alias
+#
+
+CREATE TABLE t1 (
+ lid int NOT NULL PRIMARY KEY,
+ name char(10) NOT NULL
+);
+INSERT INTO t1 (lid, name) VALUES
+ (1, 'YES'), (2, 'NO');
+
+CREATE TABLE t2 (
+ id int NOT NULL PRIMARY KEY,
+ gid int NOT NULL,
+ lid int NOT NULL,
+ dt date
+);
+INSERT INTO t2 (id, gid, lid, dt) VALUES
+ (1, 1, 1, '2007-01-01'),(2, 1, 2, '2007-01-02'),
+ (3, 2, 2, '2007-02-01'),(4, 2, 1, '2007-02-02');
+
+SELECT DISTINCT t2.gid AS lgid,
+ (SELECT t1.name FROM t1, t2
+ WHERE t1.lid = t2.lid AND t2.gid = lgid
+ ORDER BY t2.dt DESC LIMIT 1
+ ) as clid
+ FROM t2;
+
+CREATE VIEW v1 AS
+SELECT DISTINCT t2.gid AS lgid,
+ (SELECT t1.name FROM t1, t2
+ WHERE t1.lid = t2.lid AND t2.gid = lgid
+ ORDER BY t2.dt DESC LIMIT 1
+ ) as clid
+ FROM t2;
+SELECT * FROM v1;
+
+DROP VIEW v1;
+DROP table t1,t2;
+
+#
+# Bug#27786: Inconsistent Operation Performing UNION On View With ORDER BY
+#
+CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3);
+CREATE VIEW v1 AS SELECT a FROM t1 ORDER BY a;
+
+SELECT * FROM t1 UNION SELECT * FROM v1;
+EXPLAIN SELECT * FROM t1 UNION SELECT * FROM v1;
+SELECT * FROM v1 UNION SELECT * FROM t1;
+EXPLAIN SELECT * FROM v1 UNION SELECT * FROM t1;
+SELECT * FROM t1 UNION SELECT * FROM v1 ORDER BY a;
+EXPLAIN SELECT * FROM t1 UNION SELECT * FROM v1 ORDER BY a;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #27921 View ignores precision for CAST()
+#
+CREATE VIEW v1 AS SELECT CAST( 1.23456789 AS DECIMAL( 7,5 ) ) AS col;
+SELECT * FROM v1;
+DESCRIBE v1;
+DROP VIEW v1;
+
+CREATE VIEW v1 AS SELECT CAST(1.23456789 AS DECIMAL(8,0)) AS col;
+SHOW CREATE VIEW v1;
+DROP VIEW v1;
+
+#
+# Bug #28716: CHECK OPTION expression is evaluated over expired record buffers
+# when VIEW is updated via temporary tables
+#
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (b INT, c INT DEFAULT 0);
+INSERT INTO t1 (a) VALUES (1), (2);
+INSERT INTO t2 (b) VALUES (1), (2);
+CREATE VIEW v1 AS SELECT t2.b,t2.c FROM t1, t2
+ WHERE t1.a=t2.b AND t2.b < 3 WITH CHECK OPTION;
+SELECT * FROM v1;
+UPDATE v1 SET c=1 WHERE b=1;
+SELECT * FROM v1;
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Bug #28561: update on multi-table view with CHECK OPTION and
+# a subquery in WHERE condition
+#
+
+CREATE TABLE t1 (id int);
+CREATE TABLE t2 (id int, c int DEFAULT 0);
+INSERT INTO t1 (id) VALUES (1);
+INSERT INTO t2 (id) VALUES (1);
+
+CREATE VIEW v1 AS
+ SELECT t2.c FROM t1, t2
+ WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
+
+UPDATE v1 SET c=1;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;
+
+#
+# Bug #27827: CHECK OPTION ignores ON conditions when updating
+# a multi-table view with CHECK OPTION.
+#
+
+CREATE TABLE t1 (a1 INT, c INT DEFAULT 0);
+CREATE TABLE t2 (a2 INT);
+CREATE TABLE t3 (a3 INT);
+CREATE TABLE t4 (a4 INT);
+INSERT INTO t1 (a1) VALUES (1),(2);
+INSERT INTO t2 (a2) VALUES (1),(2);
+INSERT INTO t3 (a3) VALUES (1),(2);
+INSERT INTO t4 (a4) VALUES (1),(2);
+
+CREATE VIEW v1 AS
+ SELECT t1.a1, t1.c FROM t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3
+ WITH CHECK OPTION;
+SELECT * FROM v1;
+--error 1369
+UPDATE v1 SET c=3;
+PREPARE t FROM 'UPDATE v1 SET c=3';
+--error 1369
+EXECUTE t;
+--error 1369
+EXECUTE t;
+--error 1369
+INSERT INTO v1(a1, c) VALUES (3, 3);
+UPDATE v1 SET c=1 WHERE a1=1;
+SELECT * FROM v1;
+SELECT * FROM t1;
+
+CREATE VIEW v2 AS SELECT t1.a1, t1.c
+ FROM (t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3)
+ JOIN (t3 JOIN t4 ON t3.a3=t4.a4)
+ ON t2.a2=t3.a3 WITH CHECK OPTION;
+SELECT * FROM v2;
+--error 1369
+UPDATE v2 SET c=3;
+PREPARE t FROM 'UPDATE v2 SET c=3';
+--error 1369
+EXECUTE t;
+--error 1369
+EXECUTE t;
+--error 1369
+INSERT INTO v2(a1, c) VALUES (3, 3);
+UPDATE v2 SET c=2 WHERE a1=1;
+SELECT * FROM v2;
+SELECT * FROM t1;
+
+DROP VIEW v1,v2;
+DROP TABLE t1,t2,t3,t4;
+
+#
+# Bug #29104: assertion abort for a query with a view column reference
+# in the GROUP BY list and a condition requiring the value
+# of another view column to be equal to a constant
+#
+
+CREATE TABLE t1 (a int, b int);
+INSERT INTO t1 VALUES (1,2), (2,2), (1,3), (1,2);
+
+CREATE VIEW v1 AS SELECT a, b+1 as b FROM t1;
+
+
+SELECT b, SUM(a) FROM v1 WHERE b=3 GROUP BY b;
+EXPLAIN SELECT b, SUM(a) FROM v1 WHERE b=3 GROUP BY b;
+
+SELECT a, SUM(b) FROM v1 WHERE b=3 GROUP BY a;
+EXPLAIN SELECT a, SUM(b) FROM v1 WHERE b=3 GROUP BY a;
+
+SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a;
+EXPLAIN SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+#
+# Bug #29392: SELECT over a multi-table view with ORDER BY
+# selecting the same view column with two different aliases
+#
+
+CREATE TABLE t1 (
+ person_id int NOT NULL PRIMARY KEY,
+ username varchar(40) default NULL,
+ status_flg char(1) NOT NULL default 'A'
+);
+
+CREATE TABLE t2 (
+ person_role_id int NOT NULL auto_increment PRIMARY KEY,
+ role_id int NOT NULL,
+ person_id int NOT NULL,
+ INDEX idx_person_id (person_id),
+ INDEX idx_role_id (role_id)
+);
+
+CREATE TABLE t3 (
+ role_id int NOT NULL auto_increment PRIMARY KEY,
+ role_name varchar(100) default NULL,
+ app_name varchar(40) NOT NULL,
+ INDEX idx_app_name(app_name)
+);
+
+CREATE VIEW v1 AS
+SELECT profile.person_id AS person_id
+ FROM t1 profile, t2 userrole, t3 role
+ WHERE userrole.person_id = profile.person_id AND
+ role.role_id = userrole.role_id AND
+ profile.status_flg = 'A'
+ ORDER BY profile.person_id,role.app_name,role.role_name;
+
+INSERT INTO t1 VALUES
+ (6,'Sw','A'), (-1136332546,'ols','e'), (0,' *\n','0'),
+ (-717462680,'ENTS Ta','0'), (-904346964,'ndard SQL\n','0');
+
+INSERT INTO t2 VALUES
+ (1,3,6),(2,4,7),(3,5,8),(4,6,9),(5,1,6),(6,1,7),(7,1,8),(8,1,9),(9,1,10);
+
+INSERT INTO t3 VALUES
+ (1,'NUCANS_APP_USER','NUCANSAPP'),(2,'NUCANS_TRGAPP_USER','NUCANSAPP'),
+ (3,'IA_INTAKE_COORDINATOR','IACANS'),(4,'IA_SCREENER','IACANS'),
+ (5,'IA_SUPERVISOR','IACANS'),(6,'IA_READONLY','IACANS'),
+ (7,'SOC_USER','SOCCANS'),(8,'CAYIT_USER','CAYITCANS'),
+ (9,'RTOS_DCFSPOS_SUPERVISOR','RTOS');
+
+EXPLAIN SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
+SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
+
+DROP VIEW v1;
+DROP TABLE t1,t2,t3;
+
+#
+# Bug#30020: Insufficient check led to a wrong info provided by the
+# information schema table.
+#
+create table t1 (i int);
+insert into t1 values (1), (2), (1), (3), (2), (4);
+create view v1 as select distinct i from t1;
+select * from v1;
+select table_name, is_updatable from information_schema.views
+ where table_name = 'v1';
+drop view v1;
+drop table t1;
+
+#
+# Bug #28701: SELECTs from VIEWs completely ignore USE/FORCE KEY, allowing
+# invalid statements
+#
+
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1),(2);
+CREATE VIEW v1 AS SELECT * FROM t1;
+--error ER_WRONG_USAGE
+SELECT * FROM v1 USE KEY(non_existant);
+--error ER_WRONG_USAGE
+SELECT * FROM v1 FORCE KEY(non_existant);
+--error ER_WRONG_USAGE
+SELECT * FROM v1 IGNORE KEY(non_existant);
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+
+#
+# Bug #28702: VIEWs defined with USE/FORCE KEY ignore that request
+#
+CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0,
+ PRIMARY KEY(a), KEY (b));
+INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),(),(),(),(),(),();
+CREATE VIEW v1 AS SELECT * FROM t1 FORCE KEY (PRIMARY,b) ORDER BY a;
+SHOW CREATE VIEW v1;
+EXPLAIN SELECT * FROM v1;
+CREATE VIEW v2 AS SELECT * FROM t1 USE KEY () ORDER BY a;
+SHOW CREATE VIEW v2;
+EXPLAIN SELECT * FROM v2;
+CREATE VIEW v3 AS SELECT * FROM t1 IGNORE KEY (b) ORDER BY a;
+SHOW CREATE VIEW v3;
+EXPLAIN SELECT * FROM v3;
+
+DROP VIEW v1;
+DROP VIEW v2;
+DROP VIEW v3;
+DROP TABLE t1;
+
+--echo End of 5.0 tests.
+
diff --git a/mysql-test/t/view_grant.test b/mysql-test/t/view_grant.test
new file mode 100644
index 00000000000..7f9eb4e1cff
--- /dev/null
+++ b/mysql-test/t/view_grant.test
@@ -0,0 +1,1187 @@
+# Can't test with embedded server
+-- source include/not_embedded.inc
+
+# simple test of grants
+grant create view on test.* to test@localhost;
+show grants for test@localhost;
+revoke create view on test.* from test@localhost;
+show grants for test@localhost;
+# The grant above creates a new user test@localhost, delete it
+drop user test@localhost;
+
+# grant create view test
+#
+connect (root,localhost,root,,test);
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int);
+create table mysqltest.t2 (a int, b int);
+
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+grant create view,select on test.* to mysqltest_1@localhost;
+
+connect (user1,localhost,mysqltest_1,,test);
+connection user1;
+
+-- error ER_SPECIFIC_ACCESS_DENIED_ERROR
+create definer=root@localhost view v1 as select * from mysqltest.t1;
+create view v1 as select * from mysqltest.t1;
+# try to modify view without DROP privilege on it
+-- error 1142
+alter view v1 as select * from mysqltest.t1;
+-- error 1142
+create or replace view v1 as select * from mysqltest.t1;
+# no CRETE VIEW privilege
+-- error 1142
+create view mysqltest.v2 as select * from mysqltest.t1;
+# no SELECT privilege
+-- error 1142
+create view v2 as select * from mysqltest.t2;
+
+connection root;
+# check view definer information
+show create view v1;
+
+grant create view,drop,select on test.* to mysqltest_1@localhost;
+
+connection user1;
+# following 'use' command is workaround of bug #9582 and should be removed
+# when that bug will be fixed
+use test;
+alter view v1 as select * from mysqltest.t1;
+create or replace view v1 as select * from mysqltest.t1;
+
+connection root;
+revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
+revoke all privileges on test.* from mysqltest_1@localhost;
+
+drop database mysqltest;
+drop view test.v1;
+
+#
+# grants per columns
+#
+# MERGE algorithm
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int);
+create view mysqltest.v1 (c,d) as select a+1,b+1 from mysqltest.t1;
+grant select (c) on mysqltest.v1 to mysqltest_1@localhost;
+
+connection user1;
+select c from mysqltest.v1;
+# there are no privileges on column 'd'
+-- error 1143
+select d from mysqltest.v1;
+
+connection root;
+revoke all privileges on mysqltest.v1 from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+
+# TEMPORARY TABLE algorithm
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int);
+create algorithm=temptable view mysqltest.v1 (c,d) as select a+1,b+1 from mysqltest.t1;
+grant select (c) on mysqltest.v1 to mysqltest_1@localhost;
+
+connection user1;
+select c from mysqltest.v1;
+# there are no privileges on column 'd'
+-- error 1143
+select d from mysqltest.v1;
+
+connection root;
+revoke all privileges on mysqltest.v1 from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+
+#
+# EXPLAIN rights
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+#prepare views and tables
+create table mysqltest.t1 (a int, b int);
+create table mysqltest.t2 (a int, b int);
+create view mysqltest.v1 (c,d) as select a+1,b+1 from mysqltest.t1;
+create algorithm=temptable view mysqltest.v2 (c,d) as select a+1,b+1 from mysqltest.t1;
+create view mysqltest.v3 (c,d) as select a+1,b+1 from mysqltest.t2;
+create algorithm=temptable view mysqltest.v4 (c,d) as select a+1,b+1 from mysqltest.t2;
+grant select on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.v2 to mysqltest_1@localhost;
+grant select on mysqltest.v3 to mysqltest_1@localhost;
+grant select on mysqltest.v4 to mysqltest_1@localhost;
+
+connection user1;
+# all selects works
+select c from mysqltest.v1;
+select c from mysqltest.v2;
+select c from mysqltest.v3;
+select c from mysqltest.v4;
+# test of show coluns
+show columns from mysqltest.v1;
+show columns from mysqltest.v2;
+# but explain/show do not
+-- error 1345
+explain select c from mysqltest.v1;
+-- error 1142
+show create view mysqltest.v1;
+-- error 1345
+explain select c from mysqltest.v2;
+-- error 1142
+show create view mysqltest.v2;
+-- error 1345
+explain select c from mysqltest.v3;
+-- error 1142
+show create view mysqltest.v3;
+-- error 1345
+explain select c from mysqltest.v4;
+-- error 1142
+show create view mysqltest.v4;
+
+# allow to see one of underlying table
+connection root;
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+connection user1;
+# EXPLAIN of view on above table works
+explain select c from mysqltest.v1;
+-- error 1142
+show create view mysqltest.v1;
+explain select c from mysqltest.v2;
+-- error 1142
+show create view mysqltest.v2;
+# but other EXPLAINs do not
+-- error 1345
+explain select c from mysqltest.v3;
+-- error 1142
+show create view mysqltest.v3;
+-- error 1345
+explain select c from mysqltest.v4;
+-- error 1142
+show create view mysqltest.v4;
+
+# allow to see any view in mysqltest database
+connection root;
+grant show view on mysqltest.* to mysqltest_1@localhost;
+connection user1;
+explain select c from mysqltest.v1;
+show create view mysqltest.v1;
+explain select c from mysqltest.v2;
+show create view mysqltest.v2;
+explain select c from mysqltest.v3;
+show create view mysqltest.v3;
+explain select c from mysqltest.v4;
+show create view mysqltest.v4;
+
+connection root;
+revoke all privileges on mysqltest.* from mysqltest_1@localhost;
+delete from mysql.user where user='mysqltest_1';
+drop database mysqltest;
+
+#
+# UPDATE privileges on VIEW columns and whole VIEW
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int, primary key(a));
+insert into mysqltest.t1 values (10,2), (20,3), (30,4), (40,5), (50,10);
+create table mysqltest.t2 (x int);
+insert into mysqltest.t2 values (3), (4), (5), (6);
+create view mysqltest.v1 (a,c) as select a, b+1 from mysqltest.t1;
+create view mysqltest.v2 (a,c) as select a, b from mysqltest.t1;
+create view mysqltest.v3 (a,c) as select a, b+1 from mysqltest.t1;
+
+grant update (a) on mysqltest.v2 to mysqltest_1@localhost;
+grant update on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.* to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+# update with rights on VIEW column
+update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.c;
+select * from t1;
+update v1 set a=a+c;
+select * from t1;
+# update with rights on whole VIEW
+update t2,v2 set v2.a=v2.a+v2.c where t2.x=v2.c;
+select * from t1;
+update v2 set a=a+c;
+select * from t1;
+# no rights on column
+-- error 1143
+update t2,v2 set v2.c=v2.a+v2.c where t2.x=v2.c;
+-- error 1143
+update v2 set c=a+c;
+# no rights for view
+-- error 1142
+update t2,v3 set v3.a=v3.a+v3.c where t2.x=v3.c;
+-- error 1142
+update v3 set a=a+c;
+
+use test;
+connection root;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# DELETE privileges on VIEW
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int, primary key(a));
+insert into mysqltest.t1 values (1,2), (2,3), (3,4), (4,5), (5,10);
+create table mysqltest.t2 (x int);
+insert into mysqltest.t2 values (3), (4), (5), (6);
+create view mysqltest.v1 (a,c) as select a, b+1 from mysqltest.t1;
+create view mysqltest.v2 (a,c) as select a, b+1 from mysqltest.t1;
+
+grant delete on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.* to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+# update with rights on VIEW column
+delete from v1 where c < 4;
+select * from t1;
+delete v1 from t2,v1 where t2.x=v1.c;
+select * from t1;
+# no rights for view
+-- error 1142
+delete v2 from t2,v2 where t2.x=v2.c;
+-- error 1142
+delete from v2 where c < 4;
+
+use test;
+connection root;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# insert privileges on VIEW
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int, primary key(a));
+insert into mysqltest.t1 values (1,2), (2,3);
+create table mysqltest.t2 (x int, y int);
+insert into mysqltest.t2 values (3,4);
+create view mysqltest.v1 (a,c) as select a, b from mysqltest.t1;
+create view mysqltest.v2 (a,c) as select a, b from mysqltest.t1;
+
+grant insert on mysqltest.v1 to mysqltest_1@localhost;
+grant select on mysqltest.* to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+# update with rights on VIEW column
+insert into v1 values (5,6);
+select * from t1;
+insert into v1 select x,y from t2;
+select * from t1;
+# no rights for view
+-- error 1142
+insert into v2 values (5,6);
+-- error 1142
+insert into v2 select x,y from t2;
+
+use test;
+connection root;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# test of CREATE VIEW privileges if we have limited privileges
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int);
+create table mysqltest.t2 (a int, b int);
+
+grant update on mysqltest.t1 to mysqltest_1@localhost;
+grant update(b) on mysqltest.t2 to mysqltest_1@localhost;
+grant create view,update on test.* to mysqltest_1@localhost;
+
+connection user1;
+
+create view v1 as select * from mysqltest.t1;
+create view v2 as select b from mysqltest.t2;
+# There are not rights on mysqltest.v1
+-- error 1142
+create view mysqltest.v1 as select * from mysqltest.t1;
+# There are not any rights on mysqltest.t2.a
+-- error 1143
+create view v3 as select a from mysqltest.t2;
+
+# give CREATE VIEW privileges (without any privileges for result column)
+connection root;
+create table mysqltest.v3 (b int);
+grant create view on mysqltest.v3 to mysqltest_1@localhost;
+drop table mysqltest.v3;
+connection user1;
+create view mysqltest.v3 as select b from mysqltest.t2;
+
+# give UPDATE privileges
+connection root;
+grant create view, update on mysqltest.v3 to mysqltest_1@localhost;
+drop view mysqltest.v3;
+connection user1;
+create view mysqltest.v3 as select b from mysqltest.t2;
+
+
+# Expression need select privileges
+-- error 1143
+create view v4 as select b+1 from mysqltest.t2;
+
+connection root;
+grant create view,update,select on test.* to mysqltest_1@localhost;
+connection user1;
+-- error 1143
+create view v4 as select b+1 from mysqltest.t2;
+
+connection root;
+grant update,select(b) on mysqltest.t2 to mysqltest_1@localhost;
+connection user1;
+create view v4 as select b+1 from mysqltest.t2;
+
+connection root;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+drop view v1,v2,v4;
+
+#
+# user with global DB privileges
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+create table mysqltest.t1 (a int);
+grant all privileges on mysqltest.* to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+create view v1 as select * from t1;
+use test;
+
+connection root;
+revoke all privileges on mysqltest.* from mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# view definer grants revoking
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+create table mysqltest.t1 (a int, b int);
+
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+grant create view,select on test.* to mysqltest_1@localhost;
+
+connection user1;
+
+create view v1 as select * from mysqltest.t1;
+
+connection root;
+# check view definer information
+show create view v1;
+revoke select on mysqltest.t1 from mysqltest_1@localhost;
+-- error ER_VIEW_INVALID
+select * from v1;
+grant select on mysqltest.t1 to mysqltest_1@localhost;
+select * from v1;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop view v1;
+drop database mysqltest;
+
+#
+# rights on execution of view underlying functiond (BUG#9505)
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+use mysqltest;
+create table t1 (a int);
+insert into t1 values (1);
+create table t2 (s1 int);
+--disable_warnings
+drop function if exists f2;
+--enable_warnings
+delimiter //;
+create function f2 () returns int begin declare v int; select s1 from t2
+into v; return v; end//
+delimiter ;//
+create algorithm=TEMPTABLE view v1 as select f2() from t1;
+create algorithm=MERGE view v2 as select f2() from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select f2() from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select f2() from t1;
+create SQL SECURITY INVOKER view v5 as select * from v4;
+grant select on v1 to mysqltest_1@localhost;
+grant select on v2 to mysqltest_1@localhost;
+grant select on v3 to mysqltest_1@localhost;
+grant select on v4 to mysqltest_1@localhost;
+grant select on v5 to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+select * from v1;
+select * from v2;
+-- error ER_VIEW_INVALID
+select * from v3;
+-- error ER_VIEW_INVALID
+select * from v4;
+-- error ER_VIEW_INVALID
+select * from v5;
+use test;
+
+connection root;
+drop view v1, v2, v3, v4, v5;
+drop function f2;
+drop table t1, t2;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# revertion of previous test, definer of view lost his/her rights to execute
+# function
+#
+
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+use mysqltest;
+create table t1 (a int);
+insert into t1 values (1);
+create table t2 (s1 int);
+--disable_warnings
+drop function if exists f2;
+--enable_warnings
+delimiter //;
+create function f2 () returns int begin declare v int; select s1 from t2
+into v; return v; end//
+delimiter ;//
+grant select on t1 to mysqltest_1@localhost;
+grant execute on function f2 to mysqltest_1@localhost;
+grant create view on mysqltest.* to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+create algorithm=TEMPTABLE view v1 as select f2() from t1;
+create algorithm=MERGE view v2 as select f2() from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select f2() from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select f2() from t1;
+use test;
+
+connection root;
+create view v5 as select * from v1;
+revoke execute on function f2 from mysqltest_1@localhost;
+-- error ER_VIEW_INVALID
+select * from v1;
+-- error ER_VIEW_INVALID
+select * from v2;
+select * from v3;
+select * from v4;
+-- error ER_VIEW_INVALID
+select * from v5;
+
+drop view v1, v2, v3, v4, v5;
+drop function f2;
+drop table t1, t2;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# definer/invoker rights for columns
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+use mysqltest;
+create table t1 (a int);
+create table v1 (a int);
+insert into t1 values (1);
+grant select on t1 to mysqltest_1@localhost;
+grant select on v1 to mysqltest_1@localhost;
+grant create view on mysqltest.* to mysqltest_1@localhost;
+drop table v1;
+
+connection user1;
+use mysqltest;
+create algorithm=TEMPTABLE view v1 as select *, a as b from t1;
+create algorithm=MERGE view v2 as select *, a as b from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select *, a as b from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select *, a as b from t1;
+create view v5 as select * from v1;
+use test;
+
+connection root;
+revoke select on t1 from mysqltest_1@localhost;
+-- error ER_VIEW_INVALID
+select * from v1;
+-- error ER_VIEW_INVALID
+select * from v2;
+select * from v3;
+select * from v4;
+-- error ER_VIEW_INVALID
+select * from v5;
+
+#drop view v1, v2, v3, v4, v5;
+drop table t1;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+use mysqltest;
+create table t1 (a int);
+insert into t1 values (1);
+create algorithm=TEMPTABLE view v1 as select *, a as b from t1;
+create algorithm=MERGE view v2 as select *, a as b from t1;
+create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select *, a as b from t1;
+create algorithm=MERGE SQL SECURITY INVOKER view v4 as select *, a as b from t1;
+create SQL SECURITY INVOKER view v5 as select * from v4;
+grant select on v1 to mysqltest_1@localhost;
+grant select on v2 to mysqltest_1@localhost;
+grant select on v3 to mysqltest_1@localhost;
+grant select on v4 to mysqltest_1@localhost;
+grant select on v5 to mysqltest_1@localhost;
+
+connection user1;
+use mysqltest;
+select * from v1;
+select * from v2;
+-- error ER_VIEW_INVALID
+select * from v3;
+-- error ER_VIEW_INVALID
+select * from v4;
+-- error ER_VIEW_INVALID
+select * from v5;
+use test;
+
+connection root;
+drop view v1, v2, v3, v4, v5;
+drop table t1;
+use test;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# BUG#14256: definer in view definition is not fully qualified
+#
+--disable_warnings
+drop view if exists v1;
+--enable_warnings
+
+# Backup anonymous users and remove them. (They get in the way of
+# the one we test with here otherwise.)
+create table t1 as select * from mysql.user where user='';
+delete from mysql.user where user='';
+flush privileges;
+
+# Create the test user
+grant all on test.* to 'test14256'@'%';
+
+connect (test14256,localhost,test14256,,test);
+connection test14256;
+use test;
+
+create view v1 as select 42;
+show create view v1;
+
+select definer into @v1def1 from information_schema.views
+ where table_schema = 'test' and table_name='v1';
+drop view v1;
+
+create definer=`test14256`@`%` view v1 as select 42;
+show create view v1;
+
+select definer into @v1def2 from information_schema.views
+ where table_schema = 'test' and table_name='v1';
+drop view v1;
+
+select @v1def1, @v1def2, @v1def1=@v1def2;
+
+connection root;
+drop user test14256;
+
+# Restore the anonymous users.
+insert into mysql.user select * from t1;
+flush privileges;
+
+drop table t1;
+
+#
+# BUG#14726: freeing stack variable in case of an error of opening
+# a view when we have locked tables with LOCK TABLES statement.
+#
+connection root;
+--disable_warnings
+create database mysqltest;
+--enable_warnings
+
+use mysqltest;
+CREATE TABLE t1 (i INT);
+CREATE VIEW v1 AS SELECT * FROM t1;
+SHOW CREATE VIEW v1;
+GRANT SELECT, LOCK TABLES ON mysqltest.* TO mysqltest_1@localhost;
+
+connection user1;
+
+use mysqltest;
+LOCK TABLES v1 READ;
+-- error ER_TABLEACCESS_DENIED_ERROR
+SHOW CREATE TABLE v1;
+UNLOCK TABLES;
+use test;
+
+connection root;
+use test;
+drop user mysqltest_1@localhost;
+drop database mysqltest;
+
+#
+# switch to default connaction
+#
+disconnect user1;
+disconnect root;
+connection default;
+
+#
+# DEFINER information check
+#
+create definer=some_user@`` sql security invoker view v1 as select 1;
+create definer=some_user@localhost sql security invoker view v2 as select 1;
+show create view v1;
+show create view v2;
+drop view v1;
+drop view v2;
+
+#
+# Bug#18681: View privileges are broken
+#
+CREATE DATABASE mysqltest1;
+CREATE USER readonly@localhost;
+CREATE TABLE mysqltest1.t1 (x INT);
+INSERT INTO mysqltest1.t1 VALUES (1), (2);
+CREATE SQL SECURITY INVOKER VIEW mysqltest1.v_t1 AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ts AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_ti AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tu AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tus AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_td AS SELECT * FROM mysqltest1.t1;
+CREATE SQL SECURITY DEFINER VIEW mysqltest1.v_tds AS SELECT * FROM mysqltest1.t1;
+GRANT SELECT, INSERT, UPDATE, DELETE ON mysqltest1.v_t1 TO readonly@localhost;
+GRANT SELECT ON mysqltest1.v_ts TO readonly@localhost;
+GRANT INSERT ON mysqltest1.v_ti TO readonly@localhost;
+GRANT UPDATE ON mysqltest1.v_tu TO readonly@localhost;
+GRANT UPDATE,SELECT ON mysqltest1.v_tus TO readonly@localhost;
+GRANT DELETE ON mysqltest1.v_td TO readonly@localhost;
+GRANT DELETE,SELECT ON mysqltest1.v_tds TO readonly@localhost;
+
+CONNECT (n1,localhost,readonly,,);
+CONNECTION n1;
+
+--error 1356
+SELECT * FROM mysqltest1.v_t1;
+--error 1356
+INSERT INTO mysqltest1.v_t1 VALUES(4);
+--error 1356
+DELETE FROM mysqltest1.v_t1 WHERE x = 1;
+--error 1356
+UPDATE mysqltest1.v_t1 SET x = 3 WHERE x = 2;
+--error 1356
+UPDATE mysqltest1.v_t1 SET x = 3;
+--error 1356
+DELETE FROM mysqltest1.v_t1;
+--error 1356
+SELECT 1 FROM mysqltest1.v_t1;
+--error 1142
+SELECT * FROM mysqltest1.t1;
+
+SELECT * FROM mysqltest1.v_ts;
+--error 1142
+SELECT * FROM mysqltest1.v_ts, mysqltest1.t1 WHERE mysqltest1.t1.x = mysqltest1.v_ts.x;
+--error 1142
+SELECT * FROM mysqltest1.v_ti;
+
+--error 1142
+INSERT INTO mysqltest1.v_ts VALUES (100);
+INSERT INTO mysqltest1.v_ti VALUES (100);
+
+--error 1142
+UPDATE mysqltest1.v_ts SET x= 200 WHERE x = 100;
+--error 1142
+UPDATE mysqltest1.v_ts SET x= 200;
+UPDATE mysqltest1.v_tu SET x= 200 WHERE x = 100;
+UPDATE mysqltest1.v_tus SET x= 200 WHERE x = 100;
+UPDATE mysqltest1.v_tu SET x= 200;
+
+--error 1142
+DELETE FROM mysqltest1.v_ts WHERE x= 200;
+--error 1142
+DELETE FROM mysqltest1.v_ts;
+--error 1143
+DELETE FROM mysqltest1.v_td WHERE x= 200;
+DELETE FROM mysqltest1.v_tds WHERE x= 200;
+DELETE FROM mysqltest1.v_td;
+
+CONNECTION default;
+DROP VIEW mysqltest1.v_tds;
+DROP VIEW mysqltest1.v_td;
+DROP VIEW mysqltest1.v_tus;
+DROP VIEW mysqltest1.v_tu;
+DROP VIEW mysqltest1.v_ti;
+DROP VIEW mysqltest1.v_ts;
+DROP VIEW mysqltest1.v_t1;
+DROP TABLE mysqltest1.t1;
+DROP USER readonly@localhost;
+DROP DATABASE mysqltest1;
+
+#
+# BUG#14875: Bad view DEFINER makes SHOW CREATE VIEW fail
+#
+CREATE TABLE t1 (a INT PRIMARY KEY);
+INSERT INTO t1 VALUES (1), (2), (3);
+CREATE DEFINER = 'no-such-user'@localhost VIEW v AS SELECT a from t1;
+#--warning 1448
+SHOW CREATE VIEW v;
+--error 1449
+SELECT * FROM v;
+DROP VIEW v;
+DROP TABLE t1;
+USE test;
+
+#
+# Bug#20363: Create view on just created view is now denied
+#
+eval CREATE USER mysqltest_db1@localhost identified by 'PWD';
+eval GRANT ALL ON mysqltest_db1.* TO mysqltest_db1@localhost WITH GRANT OPTION;
+
+# The session with the non root user is needed.
+--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
+connect (session1,localhost,mysqltest_db1,PWD,test);
+
+CREATE SCHEMA mysqltest_db1 ;
+USE mysqltest_db1 ;
+
+CREATE TABLE t1 (f1 INTEGER);
+
+CREATE VIEW view1 AS
+SELECT * FROM t1;
+SHOW CREATE VIEW view1;
+
+CREATE VIEW view2 AS
+SELECT * FROM view1;
+--echo # Here comes a suspicious warning
+SHOW CREATE VIEW view2;
+--echo # But the view view2 is usable
+SELECT * FROM view2;
+
+CREATE VIEW view3 AS
+SELECT * FROM view2;
+
+SELECT * from view3;
+
+connection default;
+DROP VIEW mysqltest_db1.view3;
+DROP VIEW mysqltest_db1.view2;
+DROP VIEW mysqltest_db1.view1;
+DROP TABLE mysqltest_db1.t1;
+DROP SCHEMA mysqltest_db1;
+DROP USER mysqltest_db1@localhost;
+#
+# BUG#20482: failure on Create join view with sources views/tables
+# in different schemas
+#
+--disable_warnings
+CREATE DATABASE test1;
+CREATE DATABASE test2;
+--enable_warnings
+
+CREATE TABLE test1.t0 (a VARCHAR(20));
+CREATE TABLE test2.t1 (a VARCHAR(20));
+CREATE VIEW test2.t3 AS SELECT * FROM test1.t0;
+CREATE OR REPLACE VIEW test.v1 AS
+ SELECT ta.a AS col1, tb.a AS col2 FROM test2.t3 ta, test2.t1 tb;
+
+DROP VIEW test.v1;
+DROP VIEW test2.t3;
+DROP TABLE test2.t1, test1.t0;
+DROP DATABASE test2;
+DROP DATABASE test1;
+
+
+#
+# BUG#20570: CURRENT_USER() in a VIEW with SQL SECURITY DEFINER
+# returns invoker name
+#
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+DROP VIEW IF EXISTS v2;
+DROP VIEW IF EXISTS v3;
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP PROCEDURE IF EXISTS p1;
+--enable_warnings
+
+CREATE SQL SECURITY DEFINER VIEW v1 AS SELECT CURRENT_USER() AS cu;
+
+CREATE FUNCTION f1() RETURNS VARCHAR(77) SQL SECURITY INVOKER
+ RETURN CURRENT_USER();
+CREATE SQL SECURITY DEFINER VIEW v2 AS SELECT f1() AS cu;
+
+CREATE PROCEDURE p1(OUT cu VARCHAR(77)) SQL SECURITY INVOKER
+ SET cu= CURRENT_USER();
+delimiter |;
+CREATE FUNCTION f2() RETURNS VARCHAR(77) SQL SECURITY INVOKER
+BEGIN
+ DECLARE cu VARCHAR(77);
+ CALL p1(cu);
+ RETURN cu;
+END|
+delimiter ;|
+CREATE SQL SECURITY DEFINER VIEW v3 AS SELECT f2() AS cu;
+
+CREATE USER mysqltest_u1@localhost;
+GRANT ALL ON test.* TO mysqltest_u1@localhost;
+
+connect (conn1, localhost, mysqltest_u1,,);
+
+--echo
+--echo The following tests should all return 1.
+--echo
+SELECT CURRENT_USER() = 'mysqltest_u1@localhost';
+SELECT f1() = 'mysqltest_u1@localhost';
+CALL p1(@cu);
+SELECT @cu = 'mysqltest_u1@localhost';
+SELECT f2() = 'mysqltest_u1@localhost';
+SELECT cu = 'root@localhost' FROM v1;
+SELECT cu = 'root@localhost' FROM v2;
+SELECT cu = 'root@localhost' FROM v3;
+
+disconnect conn1;
+connection default;
+
+DROP VIEW v3;
+DROP FUNCTION f2;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
+DROP VIEW v2;
+DROP VIEW v1;
+DROP USER mysqltest_u1@localhost;
+
+
+#
+# Bug#17254: Error for DEFINER security on VIEW provides too much info
+#
+connect (root,localhost,root,,);
+connection root;
+CREATE DATABASE db17254;
+USE db17254;
+CREATE TABLE t1 (f1 INT);
+INSERT INTO t1 VALUES (10),(20);
+CREATE USER def_17254@localhost;
+GRANT SELECT ON db17254.* TO def_17254@localhost;
+CREATE USER inv_17254@localhost;
+GRANT SELECT ON db17254.t1 TO inv_17254@localhost;
+GRANT CREATE VIEW ON db17254.* TO def_17254@localhost;
+
+connect (def,localhost,def_17254,,db17254);
+connection def;
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+connection root;
+DROP USER def_17254@localhost;
+
+connect (inv,localhost,inv_17254,,db17254);
+connection inv;
+--echo for a user
+--error 1142
+SELECT * FROM v1;
+
+connection root;
+--echo for a superuser
+--error 1449
+SELECT * FROM v1;
+DROP USER inv_17254@localhost;
+DROP DATABASE db17254;
+disconnect def;
+disconnect inv;
+
+
+#
+# BUG#24404: strange bug with view+permission+prepared statement
+#
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest_db1;
+DROP DATABASE IF EXISTS mysqltest_db2;
+--enable_warnings
+--error 0,ER_CANNOT_USER
+DROP USER mysqltest_u1;
+--error 0,ER_CANNOT_USER
+DROP USER mysqltest_u2;
+
+CREATE USER mysqltest_u1@localhost;
+CREATE USER mysqltest_u2@localhost;
+
+CREATE DATABASE mysqltest_db1;
+CREATE DATABASE mysqltest_db2;
+
+GRANT ALL ON mysqltest_db1.* TO mysqltest_u1@localhost WITH GRANT OPTION;
+GRANT ALL ON mysqltest_db2.* TO mysqltest_u2@localhost;
+
+connect (conn1, localhost, mysqltest_u1, , mysqltest_db1);
+
+CREATE TABLE t1 (i INT);
+INSERT INTO t1 VALUES (1);
+
+# Use view with subquery for better coverage.
+CREATE VIEW v1 AS SELECT i FROM t1 WHERE 1 IN (SELECT * FROM t1);
+
+CREATE TABLE t2 (s CHAR(7));
+INSERT INTO t2 VALUES ('public');
+
+GRANT SELECT ON v1 TO mysqltest_u2@localhost;
+GRANT SELECT ON t2 TO mysqltest_u2@localhost;
+
+connect (conn2, localhost, mysqltest_u2, , mysqltest_db2);
+
+SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2;
+PREPARE stmt1 FROM "SELECT * FROM mysqltest_db1.t2";
+EXECUTE stmt1;
+PREPARE stmt2 FROM "SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2";
+EXECUTE stmt2;
+
+connection conn1;
+# Make table 't2' private.
+REVOKE SELECT ON t2 FROM mysqltest_u2@localhost;
+UPDATE t2 SET s = 'private' WHERE s = 'public';
+
+connection conn2;
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT * FROM mysqltest_db1.v1, mysqltest_db1.t2;
+--error ER_TABLEACCESS_DENIED_ERROR
+EXECUTE stmt1;
+# Original bug was here: the statement didn't fail.
+--error ER_TABLEACCESS_DENIED_ERROR
+EXECUTE stmt2;
+
+# Cleanup.
+disconnect conn2;
+disconnect conn1;
+connection default;
+REVOKE ALL ON mysqltest_db1.* FROM mysqltest_u1@localhost;
+REVOKE ALL ON mysqltest_db2.* FROM mysqltest_u2@localhost;
+DROP DATABASE mysqltest_db1;
+DROP DATABASE mysqltest_db2;
+DROP USER mysqltest_u1@localhost;
+DROP USER mysqltest_u2@localhost;
+
+#
+# Bug#26813: The SUPER privilege is wrongly required to alter a view created
+# by another user.
+#
+connection root;
+CREATE DATABASE db26813;
+USE db26813;
+CREATE TABLE t1(f1 INT, f2 INT);
+CREATE VIEW v1 AS SELECT f1 FROM t1;
+CREATE VIEW v2 AS SELECT f1 FROM t1;
+CREATE VIEW v3 AS SELECT f1 FROM t1;
+CREATE USER u26813@localhost;
+GRANT DROP ON db26813.v1 TO u26813@localhost;
+GRANT CREATE VIEW ON db26813.v2 TO u26813@localhost;
+GRANT DROP, CREATE VIEW ON db26813.v3 TO u26813@localhost;
+GRANT SELECT ON db26813.t1 TO u26813@localhost;
+
+connect (u1,localhost,u26813,,db26813);
+connection u1;
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+ALTER VIEW v1 AS SELECT f2 FROM t1;
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+ALTER VIEW v2 AS SELECT f2 FROM t1;
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+ALTER VIEW v3 AS SELECT f2 FROM t1;
+
+connection root;
+SHOW CREATE VIEW v3;
+
+DROP USER u26813@localhost;
+DROP DATABASE db26813;
+disconnect u1;
+
+--echo #
+--echo # Bug#29908: A user can gain additional access through the ALTER VIEW.
+--echo #
+connection root;
+CREATE DATABASE mysqltest_29908;
+USE mysqltest_29908;
+CREATE TABLE t1(f1 INT, f2 INT);
+CREATE USER u29908_1@localhost;
+CREATE DEFINER = u29908_1@localhost VIEW v1 AS SELECT f1 FROM t1;
+CREATE DEFINER = u29908_1@localhost SQL SECURITY INVOKER VIEW v2 AS
+ SELECT f1 FROM t1;
+GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v1 TO u29908_1@localhost;
+GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_1@localhost;
+GRANT SELECT ON mysqltest_29908.t1 TO u29908_1@localhost;
+CREATE USER u29908_2@localhost;
+GRANT DROP, CREATE VIEW ON mysqltest_29908.v1 TO u29908_2@localhost;
+GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_2@localhost;
+GRANT SELECT ON mysqltest_29908.t1 TO u29908_2@localhost;
+
+connect (u2,localhost,u29908_2,,mysqltest_29908);
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+ALTER VIEW v1 AS SELECT f2 FROM t1;
+--error ER_SPECIFIC_ACCESS_DENIED_ERROR
+ALTER VIEW v2 AS SELECT f2 FROM t1;
+SHOW CREATE VIEW v2;
+
+connect (u1,localhost,u29908_1,,mysqltest_29908);
+ALTER VIEW v1 AS SELECT f2 FROM t1;
+SHOW CREATE VIEW v1;
+ALTER VIEW v2 AS SELECT f2 FROM t1;
+SHOW CREATE VIEW v2;
+
+connection root;
+ALTER VIEW v1 AS SELECT f1 FROM t1;
+SHOW CREATE VIEW v1;
+ALTER VIEW v2 AS SELECT f1 FROM t1;
+SHOW CREATE VIEW v2;
+
+DROP USER u29908_1@localhost;
+DROP USER u29908_2@localhost;
+DROP DATABASE mysqltest_29908;
+disconnect u1;
+disconnect u2;
+--echo #######################################################################
+
+#
+# BUG#24040: Create View don't succed with "all privileges" on a database.
+#
+
+# Prepare.
+
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+--enable_warnings
+
+CREATE DATABASE mysqltest1;
+CREATE DATABASE mysqltest2;
+
+# Test.
+
+CREATE TABLE mysqltest1.t1(c1 INT);
+CREATE TABLE mysqltest1.t2(c2 INT);
+CREATE TABLE mysqltest1.t3(c3 INT);
+CREATE TABLE mysqltest1.t4(c4 INT);
+
+INSERT INTO mysqltest1.t1 VALUES (11), (12), (13), (14);
+INSERT INTO mysqltest1.t2 VALUES (21), (22), (23), (24);
+INSERT INTO mysqltest1.t3 VALUES (31), (32), (33), (34);
+INSERT INTO mysqltest1.t4 VALUES (41), (42), (43), (44);
+
+GRANT SELECT ON mysqltest1.t1 TO mysqltest_u1@localhost;
+GRANT INSERT ON mysqltest1.t2 TO mysqltest_u1@localhost;
+GRANT SELECT, UPDATE ON mysqltest1.t3 TO mysqltest_u1@localhost;
+GRANT SELECT, DELETE ON mysqltest1.t4 TO mysqltest_u1@localhost;
+
+GRANT ALL PRIVILEGES ON mysqltest2.* TO mysqltest_u1@localhost;
+
+--connect (bug24040_con,localhost,mysqltest_u1,,mysqltest2)
+--echo
+--echo ---> connection: bug24040_con
+
+SELECT * FROM mysqltest1.t1;
+INSERT INTO mysqltest1.t2 VALUES(25);
+UPDATE mysqltest1.t3 SET c3 = 331 WHERE c3 = 31;
+DELETE FROM mysqltest1.t4 WHERE c4 = 44;
+
+CREATE VIEW v1 AS SELECT * FROM mysqltest1.t1;
+CREATE VIEW v2 AS SELECT * FROM mysqltest1.t2;
+CREATE VIEW v3 AS SELECT * FROM mysqltest1.t3;
+CREATE VIEW v4 AS SELECT * FROM mysqltest1.t4;
+
+SELECT * FROM v1;
+INSERT INTO v2 VALUES(26);
+UPDATE v3 SET c3 = 332 WHERE c3 = 32;
+DELETE FROM v4 WHERE c4 = 43;
+
+--error ER_COLUMNACCESS_DENIED_ERROR
+CREATE VIEW v12 AS SELECT c1, c2 FROM mysqltest1.t1, mysqltest1.t2;
+CREATE VIEW v13 AS SELECT c1, c3 FROM mysqltest1.t1, mysqltest1.t3;
+CREATE VIEW v14 AS SELECT c1, c4 FROM mysqltest1.t1, mysqltest1.t4;
+
+--error ER_COLUMNACCESS_DENIED_ERROR
+CREATE VIEW v21 AS SELECT c2, c1 FROM mysqltest1.t2, mysqltest1.t1;
+--error ER_COLUMNACCESS_DENIED_ERROR
+CREATE VIEW v23 AS SELECT c2, c3 FROM mysqltest1.t2, mysqltest1.t3;
+--error ER_COLUMNACCESS_DENIED_ERROR
+CREATE VIEW v24 AS SELECT c2, c4 FROM mysqltest1.t2, mysqltest1.t4;
+
+CREATE VIEW v31 AS SELECT c3, c1 FROM mysqltest1.t3, mysqltest1.t1;
+--error ER_COLUMNACCESS_DENIED_ERROR
+CREATE VIEW v32 AS SELECT c3, c2 FROM mysqltest1.t3, mysqltest1.t2;
+CREATE VIEW v34 AS SELECT c3, c4 FROM mysqltest1.t3, mysqltest1.t4;
+
+CREATE VIEW v41 AS SELECT c4, c1 FROM mysqltest1.t4, mysqltest1.t1;
+--error ER_COLUMNACCESS_DENIED_ERROR
+CREATE VIEW v42 AS SELECT c4, c2 FROM mysqltest1.t4, mysqltest1.t2;
+CREATE VIEW v43 AS SELECT c4, c3 FROM mysqltest1.t4, mysqltest1.t3;
+
+--connection default
+--echo
+--echo ---> connection: default
+
+SELECT * FROM mysqltest1.t1;
+SELECT * FROM mysqltest1.t2;
+SELECT * FROM mysqltest1.t3;
+SELECT * FROM mysqltest1.t4;
+
+# Cleanup.
+
+-- disconnect bug24040_con
+
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+DROP USER mysqltest_u1@localhost;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/wait_for_process.sh b/mysql-test/t/wait_for_process.sh
new file mode 100755
index 00000000000..2143ab2002f
--- /dev/null
+++ b/mysql-test/t/wait_for_process.sh
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+###########################################################################
+
+# NOTE: this script returns 0 (success) even in case of failure (except for
+# usage-error). This is because this script is executed under
+# mysql-test-run[.pl] and it's better to examine particular problem in log
+# file, than just having said that the test case has failed.
+
+###########################################################################
+
+basename=`basename "$0"`
+dirname=`dirname "$0"`
+
+###########################################################################
+
+. "$dirname/utils.sh"
+
+###########################################################################
+
+check_started()
+{
+ if [ ! -r "$pid_path" ]; then
+ log_debug "No PID-file ($pid_path) found -- not started."
+ return 1
+ fi
+
+ new_pid=`cat "$pid_path" 2>/dev/null`
+ err_code=$?
+
+ log_debug "err_code: $err_code; new_pid: $new_pid."
+
+ if [ $? -ne 0 -o -z "$new_pid" ]; then
+ log_debug "The process was not started."
+ return 1
+ fi
+
+ log_debug "The process was started."
+ return 0
+}
+
+###########################################################################
+
+check_stopped()
+{
+ if [ -r "$pid_path" ]; then
+ log_debug "PID-file '$pid_path' exists -- not stopped."
+ return 1
+ fi
+
+ log_debug "No PID-file ($pid_path) found -- stopped."
+ return 0
+}
+
+###########################################################################
+
+if [ $# -ne 4 ]; then
+ echo "Usage: $basename <pid file path> <total attempts> started|stopped <test id>"
+ exit 1
+fi
+
+pid_path="$1"
+total_attempts="$2"
+event="$3"
+test_id="$4"
+log_file="$MYSQLTEST_VARDIR/log/$test_id.script.log"
+
+log_debug "-- $basename: starting --"
+log_debug "pid_path: '$pid_path'"
+log_debug "total_attempts: '$total_attempts'"
+log_debug "event: '$event'"
+log_debug "test_id: '$test_id'"
+log_debug "log_file: '$log_file'"
+
+###########################################################################
+
+case "$event" in
+ started)
+ check_fn='check_started';
+ ;;
+
+ stopped)
+ check_fn='check_stopped';
+ ;;
+
+ *)
+ log_error "Invalid third argument ('started' or 'stopped' expected)."
+ quit 0
+esac
+
+###########################################################################
+
+cur_attempt=1
+
+while true; do
+
+ log_debug "cur_attempt: $cur_attempt."
+
+ if ( eval $check_fn ); then
+ log_info "Success: the process has been $event."
+ quit 0
+ fi
+
+ [ $cur_attempt -ge $total_attempts ] && break
+
+ log_debug "Sleeping for 1 second..."
+ sleep 1
+
+ cur_attempt=`expr $cur_attempt + 1`
+
+done
+
+log_error "The process has not been $event in $total_attempts secs."
+quit 0
diff --git a/mysql-test/t/wait_for_socket.sh b/mysql-test/t/wait_for_socket.sh
new file mode 100755
index 00000000000..2fa7d5c5b7e
--- /dev/null
+++ b/mysql-test/t/wait_for_socket.sh
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+###########################################################################
+
+# NOTE: this script returns 0 (success) even in case of failure (except for
+# usage-error). This is because this script is executed under
+# mysql-test-run[.pl] and it's better to examine particular problem in log
+# file, than just having said that the test case has failed.
+
+###########################################################################
+
+basename=`basename "$0"`
+dirname=`dirname "$0"`
+
+###########################################################################
+
+. "$dirname/utils.sh"
+
+###########################################################################
+
+if [ $# -ne 7 ]; then
+ echo "Usage: wait_for_socket.sh <executable path> <socket path> <username> <password> <db> <timeout> <test id>"
+ exit 1
+fi
+
+client_exe="$1"
+socket_path="$2"
+username="$3"
+password="$4"
+db="$5"
+total_timeout="$6"
+test_id="$7"
+log_file="$MYSQLTEST_VARDIR/log/$test_id.script.log"
+
+log_debug "-- $basename: starting --"
+log_debug "client_exe: '$client_exe'"
+log_debug "socket_path: '$socket_path'"
+log_debug "username: '$username'"
+log_debug "password: '$password'"
+log_debug "db: '$db'"
+log_debug "total_timeout: '$total_timeout'"
+log_debug "test_id: '$test_id'"
+log_debug "log_file: '$log_file'"
+
+###########################################################################
+
+if [ -z "$client_exe" ]; then
+ log_error "Invalid path to client executable ($client_exe)."
+ quit 0;
+fi
+
+if [ ! -x "$client_exe" ]; then
+ log_error "Client by path '$client_exe' is not available."
+ quit 0;
+fi
+
+if [ -z "$socket_path" ]; then
+ log_error "Invalid socket patch ($socket_path)."
+ quit 0
+fi
+
+###########################################################################
+
+client_args="--no-defaults --silent --socket=$socket_path --connect_timeout=1 "
+
+[ -n "$username" ] && client_args="$client_args --user=$username "
+[ -n "$password" ] && client_args="$client_args --password=$password "
+[ -n "$db" ] && client_args="$client_args $db"
+
+log_debug "client_args: '$client_args'"
+
+###########################################################################
+
+cur_attempt=1
+
+while true; do
+
+ log_debug "cur_attempt: $cur_attempt."
+
+ if ( echo 'quit' | "$client_exe" $client_args >/dev/null 2>&1 ); then
+ log_info "Success: server is ready to accept connection on socket."
+ quit 0
+ fi
+
+ [ $cur_attempt -ge $total_timeout ] && break
+
+ sleep 1
+
+ cur_attempt=`expr $cur_attempt + 1`
+
+done
+
+log_error "Server does not accept connections after $total_timeout seconds."
+quit 0
diff --git a/mysql-test/t/wait_timeout-master.opt b/mysql-test/t/wait_timeout-master.opt
index 0ad622e9677..9e5c2289eb2 100644
--- a/mysql-test/t/wait_timeout-master.opt
+++ b/mysql-test/t/wait_timeout-master.opt
@@ -1 +1 @@
---wait-timeout=2
+--wait-timeout=1
diff --git a/mysql-test/t/wait_timeout.test b/mysql-test/t/wait_timeout.test
index 4c1aeee5c04..9b9813f9655 100644
--- a/mysql-test/t/wait_timeout.test
+++ b/mysql-test/t/wait_timeout.test
@@ -4,11 +4,96 @@
#
# Bug #8731: wait_timeout does not work on Mac OS X
#
+
+
+# Connect with another connection and reset counters
+--disable_query_log
+connect (wait_con,localhost,root,,test,,);
+connection wait_con;
+set session wait_timeout=100;
+let $retries=300;
+set @aborted_clients= 0;
+--enable_query_log
+
+# Disable reconnect and do the query
+connection default;
+# If slow host (Valgrind...), we may have already timed out here.
+# So force a reconnect if necessary, using a dummy query. And issue a
+# 'flush status' to reset the 'aborted_clients' counter.
+--enable_reconnect
+select 0;
+flush status;
--disable_reconnect
select 1;
-# wait_timeout is 2, so we should get disconnected now
---sleep 5
---error 2006
+
+# Switch to wait_con and wait until server has aborted the connection
+--disable_query_log
+connection wait_con;
+while (!`select @aborted_clients`)
+{
+ sleep 0.1;
+ let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`;
+ eval set @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
+
+ dec $retries;
+ if (!$retries)
+ {
+ Failed to detect that client has been aborted;
+ }
+}
+--enable_query_log
+
+connection default;
+# When the connection is closed in this way, the error code should
+# be consistent see bug#2845 for an explanation
+# depending on platform/client, either errno 2006 or 2013 can occur below
+--error 2006,2013
+select 2;
+--enable_reconnect
+select 3;
+# Disconnect so that we will not be confused by a future abort from this
+# connection.
+disconnect default;
+
+#
+# Do the same test as above on a TCP connection
+# (which we get by specifying a ip adress)
+
+# Connect with another connection and reset counters
+--disable_query_log
+connection wait_con;
+flush status; # Reset counters
+let $retries=300;
+set @aborted_clients= 0;
+--enable_query_log
+
+connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
+--disable_reconnect
+select 1;
+
+# Switch to wait_con and wait until server has aborted the connection
+--disable_query_log
+connection wait_con;
+while (!`select @aborted_clients`)
+{
+ sleep 0.1;
+ let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`;
+ eval set @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
+
+ dec $retries;
+ if (!$retries)
+ {
+ Failed to detect that client has been aborted;
+ }
+}
+--enable_query_log
+
+connection con1;
+# When the connection is closed in this way, the error code should
+# be consistent see bug#2845 for an explanation
+# depending on platform/client, either errno 2006 or 2013 can occur below
+--error 2006,2013
select 2;
--enable_reconnect
select 3;
+disconnect con1;
diff --git a/mysql-test/t/warnings.test b/mysql-test/t/warnings.test
index aee03b39353..5e9d25aa09b 100644
--- a/mysql-test/t/warnings.test
+++ b/mysql-test/t/warnings.test
@@ -39,9 +39,8 @@ show warnings limit 1;
drop database if exists not_exists_db;
show count(*) warnings;
create table t1(id int);
-# PS doesn't give warnings on prepare
---disable_ps_protocol
create table if not exists t1(id int);
+--disable_ps_protocol
select @@warning_count;
--enable_ps_protocol
drop table t1;
@@ -51,7 +50,7 @@ drop table t1;
#
create table t1(a tinyint, b int not null, c date, d char(5));
-load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ',';
+load data infile '../std_data_ln/warnings_loaddata.dat' into table t1 fields terminated by ',';
# PS doesn't work good with @@warning_count
--disable_ps_protocol
select @@warning_count;
@@ -126,12 +125,9 @@ drop table t1;
# Test for deprecated TYPE= syntax
#
-# PS doesn't give warnings on prepare
---disable_ps_protocol
create table t1 (id int) type=heap;
alter table t1 type=myisam;
drop table t1;
---enable_ps_protocol
#
# Test for deprecated table_type variable
@@ -160,4 +156,60 @@ select * from t1 limit 1, 0;
select * from t1 limit 0, 0;
drop table t1;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+#
+# Bug#20778: strange characters in warning message 1366 when called in SP
+#
+
+let $engine_type= innodb;
+
+CREATE TABLE t1( f1 CHAR(20) );
+CREATE TABLE t2( f1 CHAR(20), f2 CHAR(25) );
+CREATE TABLE t3( f1 CHAR(20), f2 CHAR(25), f3 DATE );
+
+INSERT INTO t1 VALUES ( 'a`' );
+INSERT INTO t2 VALUES ( 'a`', 'a`' );
+INSERT INTO t3 VALUES ( 'a`', 'a`', '1000-01-1' );
+
+DROP PROCEDURE IF EXISTS sp1;
+DROP PROCEDURE IF EXISTS sp2;
+DROP PROCEDURE IF EXISTS sp3;
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+ DECLARE x NUMERIC ZEROFILL;
+ SELECT f1 INTO x FROM t1 LIMIT 1;
+END//
+CREATE PROCEDURE sp2()
+BEGIN
+ DECLARE x NUMERIC ZEROFILL;
+ SELECT f1 INTO x FROM t2 LIMIT 1;
+END//
+CREATE PROCEDURE sp3()
+BEGIN
+ DECLARE x NUMERIC ZEROFILL;
+ SELECT f1 INTO x FROM t3 LIMIT 1;
+END//
+delimiter ;//
+CALL sp1();
+CALL sp2();
+CALL sp3();
+
+DROP PROCEDURE IF EXISTS sp1;
+delimiter //;
+CREATE PROCEDURE sp1()
+BEGIN
+declare x numeric unsigned zerofill;
+SELECT f1 into x from t2 limit 1;
+END//
+delimiter ;//
+CALL sp1();
+DROP TABLE t1;
+DROP TABLE t2;
+DROP TABLE t3;
+DROP PROCEDURE sp1;
+DROP PROCEDURE sp2;
+DROP PROCEDURE sp3;
+
+--echo End of 5.0 tests
diff --git a/mysql-test/t/windows.test b/mysql-test/t/windows.test
index b5377a9b9b0..6976ee98750 100644
--- a/mysql-test/t/windows.test
+++ b/mysql-test/t/windows.test
@@ -27,3 +27,11 @@ CREATE TABLE t1 ( `ID` int(6) ) data directory 'c:/tmp/' index directory 'c:/tmp
drop table t1;
# End of 4.1 tests
+
+#
+# Bug #27811: The variable 'join_tab' is being used without being defined
+#
+CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (1,1);
+EXPLAIN SELECT * FROM t1 WHERE b = (SELECT max(2));
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/xa.test b/mysql-test/t/xa.test
new file mode 100644
index 00000000000..0d564727fe3
--- /dev/null
+++ b/mysql-test/t/xa.test
@@ -0,0 +1,76 @@
+#
+# WL#1756
+#
+-- source include/have_innodb.inc
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+create table t1 (a int) engine=innodb;
+xa start 'test1';
+insert t1 values (10);
+xa end 'test1';
+xa prepare 'test1';
+xa rollback 'test1';
+select * from t1;
+
+xa start 'test2';
+--error 1399
+xa start 'test-bad';
+insert t1 values (20);
+--error 1399
+xa prepare 'test2';
+xa end 'test2';
+xa prepare 'test2';
+xa commit 'test2';
+select * from t1;
+
+xa start 'testa','testb';
+insert t1 values (30);
+
+--error 1399
+commit;
+
+xa end 'testa','testb';
+
+--error 1399
+begin;
+--error 1399
+create table t2 (a int);
+
+connect (con1,localhost,root,,);
+connection con1;
+
+--error 1440
+xa start 'testa','testb';
+--error 1440
+xa start 'testa','testb', 123;
+
+# gtrid [ , bqual [ , formatID ] ]
+xa start 0x7465737462, 0x2030405060, 0xb;
+insert t1 values (40);
+xa end 'testb',' 0@P`',11;
+xa prepare 'testb',0x2030405060,11;
+
+--error 1399
+start transaction;
+
+xa recover;
+
+# uncomment the line below when binlog will be able to prepare
+#disconnect con1;
+connection default;
+
+xa prepare 'testa','testb';
+
+xa recover;
+
+--error 1397
+xa commit 'testb',0x2030405060,11;
+xa rollback 'testa','testb';
+
+--error 1064
+xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
+
+select * from t1;
+drop table t1;
+
diff --git a/mysql-test/valgrind.supp b/mysql-test/valgrind.supp
index 716dca491ce..e71f4541cfd 100644
--- a/mysql-test/valgrind.supp
+++ b/mysql-test/valgrind.supp
@@ -347,91 +347,19 @@
fun:_ZN19TransporterRegistry14forceSendCheckEi
}
+#
+# BUG#25463: Probable cause - slave thread doesn't have time to terminate properly
+# because rest of the server shuts down before that. The server shutdown code has
+# been fixed in 5.1 and there this leak should not happen. Suppression has been
+# approved by Monty.
+#
+# Important: do not propagate this rule to 5.1 tree!
+#
+
{
- OpenSSL_1
- Memcheck:Cond
- fun:BN_num_bits_word
- fun:BN_num_bits
- fun:BN_mod_exp_mont_consttime
- fun:BN_mod_exp_mont
- obj:*libcrypto.so.*
- obj:*libcrypto.so.*
- fun:DH_generate_key
- fun:ssl3_ctx_ctrl
- fun:SSL_CTX_ctrl
- fun:new_VioSSLAcceptorFd
- fun:main
-}
-
-{
- OpenSSL_2
- Memcheck:Value4
- fun:BN_num_bits_word
- fun:BN_num_bits
- fun:BN_mod_exp_mont_consttime
- fun:BN_mod_exp_mont
- obj:*libcrypto.so.*
- obj:*libcrypto.so.*
- fun:DH_generate_key
- fun:ssl3_ctx_ctrl
- fun:SSL_CTX_ctrl
- fun:new_VioSSLAcceptorFd
- fun:main
-}
-
-{
- OpenSSL_3
- Memcheck:Value4
- fun:BN_mod_exp_mont_consttime
- fun:BN_mod_exp_mont
- obj:*libcrypto.so.*
- obj:*libcrypto.so.*
- fun:DH_generate_key
- fun:ssl3_ctx_ctrl
- fun:SSL_CTX_ctrl
- fun:new_VioSSLAcceptorFd
- fun:main
-}
-
-{
- OpenSSL_4
- Memcheck:Cond
- fun:BN_bin2bn
- obj:*libcrypto.so.*
- obj:*libcrypto.so.*
- fun:DH_generate_key
- fun:ssl3_ctx_ctrl
- fun:SSL_CTX_ctrl
- fun:new_VioSSLAcceptorFd
- fun:main
-}
-
-{
- OpenSSL_5
- Memcheck:Leak
- fun:realloc
- obj:*libcrypto.so.*
- fun:CRYPTO_realloc
- fun:lh_insert
- fun:OBJ_NAME_add
- fun:EVP_add_cipher
- fun:OpenSSL_add_all_ciphers
- fun:OPENSSL_add_all_algorithms_noconf
- fun:new_VioSSLAcceptorFd
- fun:main
-}
-
-{
- OpenSSL_6
- Memcheck:Leak
- fun:malloc
- obj:*libcrypto.so.*
- fun:CRYPTO_malloc
- fun:lh_new
- fun:OBJ_NAME_init
- fun:OBJ_NAME_add
- fun:EVP_add_cipher
- fun:SSL_library_init
- fun:new_VioSSLAcceptorFd
- fun:main
+ Slave thread shutdown (BUG#25463)
+ Memcheck:Leak
+ fun:calloc
+ fun:my_thread_init
+ fun:handle_slave_io
}